From 31faa64a66ccfd7f49d6d2b779517dc7be9ddd7b Mon Sep 17 00:00:00 2001 From: "e.tatuzova" Date: Thu, 28 Sep 2023 16:30:52 +0400 Subject: [PATCH 01/10] Modular evm verifier infrastructure added#74 --- contracts/interfaces/modular_commitment.sol | 34 + .../interfaces/modular_gate_argument.sol | 24 + .../interfaces/modular_lookup_argument.sol | 27 + .../modular_permutation_argument.sol | 25 + contracts/interfaces/modular_verifier.sol | 30 + contracts/modular/circuit1/commitment.sol | 589 +++++++++++++++++ contracts/modular/circuit1/gate_argument.sol | 66 ++ .../modular/circuit1/lookup_argument.sol | 30 + .../modular/circuit1/modular_verifier.sol | 183 ++++++ contracts/modular/circuit1/params.json | 54 ++ .../modular/circuit1/permutation_argument.sol | 93 +++ contracts/modular/circuit1/proof.bin | 1 + contracts/modular/circuit2/commitment.sol | 588 +++++++++++++++++ contracts/modular/circuit2/gate_argument.sol | 68 ++ .../modular/circuit2/lookup_argument.sol | 30 + .../modular/circuit2/modular_verifier.sol | 183 ++++++ contracts/modular/circuit2/params.json | 52 ++ .../modular/circuit2/permutation_argument.sol | 93 +++ contracts/modular/circuit2/proof.bin | 1 + contracts/modular/circuit3/commitment.sol | 593 +++++++++++++++++ contracts/modular/circuit3/gate_argument.sol | 39 ++ .../modular/circuit3/lookup_argument.sol | 208 ++++++ .../modular/circuit3/modular_verifier.sol | 199 ++++++ contracts/modular/circuit3/params.json | 62 ++ .../modular/circuit3/permutation_argument.sol | 93 +++ contracts/modular/circuit3/proof.bin | 1 + contracts/modular/circuit4/commitment.sol | 593 +++++++++++++++++ contracts/modular/circuit4/gate_argument.sol | 52 ++ .../modular/circuit4/lookup_argument.sol | 208 ++++++ .../modular/circuit4/modular_verifier.sol | 199 ++++++ contracts/modular/circuit4/params.json | 65 ++ .../modular/circuit4/permutation_argument.sol | 93 +++ contracts/modular/circuit4/proof.bin | 1 + contracts/modular/circuit6/commitment.sol | 596 ++++++++++++++++++ contracts/modular/circuit6/gate_argument.sol | 39 ++ .../modular/circuit6/lookup_argument.sol | 240 +++++++ .../modular/circuit6/modular_verifier.sol | 199 ++++++ contracts/modular/circuit6/params.json | 63 ++ .../modular/circuit6/permutation_argument.sol | 93 +++ contracts/modular/circuit6/proof.bin | 1 + deploy/modular-verifier.js | 70 ++ hardhat.config.ts | 1 + tasks/modular-test.ts | 93 +++ 43 files changed, 5972 insertions(+) create mode 100644 contracts/interfaces/modular_commitment.sol create mode 100644 contracts/interfaces/modular_gate_argument.sol create mode 100644 contracts/interfaces/modular_lookup_argument.sol create mode 100644 contracts/interfaces/modular_permutation_argument.sol create mode 100644 contracts/interfaces/modular_verifier.sol create mode 100644 contracts/modular/circuit1/commitment.sol create mode 100644 contracts/modular/circuit1/gate_argument.sol create mode 100644 contracts/modular/circuit1/lookup_argument.sol create mode 100644 contracts/modular/circuit1/modular_verifier.sol create mode 100644 contracts/modular/circuit1/params.json create mode 100644 contracts/modular/circuit1/permutation_argument.sol create mode 100644 contracts/modular/circuit1/proof.bin create mode 100644 contracts/modular/circuit2/commitment.sol create mode 100644 contracts/modular/circuit2/gate_argument.sol create mode 100644 contracts/modular/circuit2/lookup_argument.sol create mode 100644 contracts/modular/circuit2/modular_verifier.sol create mode 100644 contracts/modular/circuit2/params.json create mode 100644 contracts/modular/circuit2/permutation_argument.sol create mode 100644 contracts/modular/circuit2/proof.bin create mode 100644 contracts/modular/circuit3/commitment.sol create mode 100644 contracts/modular/circuit3/gate_argument.sol create mode 100644 contracts/modular/circuit3/lookup_argument.sol create mode 100644 contracts/modular/circuit3/modular_verifier.sol create mode 100644 contracts/modular/circuit3/params.json create mode 100644 contracts/modular/circuit3/permutation_argument.sol create mode 100644 contracts/modular/circuit3/proof.bin create mode 100644 contracts/modular/circuit4/commitment.sol create mode 100644 contracts/modular/circuit4/gate_argument.sol create mode 100644 contracts/modular/circuit4/lookup_argument.sol create mode 100644 contracts/modular/circuit4/modular_verifier.sol create mode 100644 contracts/modular/circuit4/params.json create mode 100644 contracts/modular/circuit4/permutation_argument.sol create mode 100644 contracts/modular/circuit4/proof.bin create mode 100644 contracts/modular/circuit6/commitment.sol create mode 100644 contracts/modular/circuit6/gate_argument.sol create mode 100644 contracts/modular/circuit6/lookup_argument.sol create mode 100644 contracts/modular/circuit6/modular_verifier.sol create mode 100644 contracts/modular/circuit6/params.json create mode 100644 contracts/modular/circuit6/permutation_argument.sol create mode 100644 contracts/modular/circuit6/proof.bin create mode 100644 deploy/modular-verifier.js create mode 100644 tasks/modular-test.ts diff --git a/contracts/interfaces/modular_commitment.sol b/contracts/interfaces/modular_commitment.sol new file mode 100644 index 0000000..e5925b1 --- /dev/null +++ b/contracts/interfaces/modular_commitment.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) 2023 Elena Tatuzova +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// + +pragma solidity >=0.8.4; + +import "../types.sol"; + +interface ICommitmentScheme { + function initialize( + bytes32 tr_state_before + ) external returns(bytes32 tr_state_after); + + // Append commitments + function verify_eval( + bytes calldata blob, + uint256[5] memory commitments, + uint256 challenge, + bytes32 transcript_state_before + ) external view returns (bool); +} \ No newline at end of file diff --git a/contracts/interfaces/modular_gate_argument.sol b/contracts/interfaces/modular_gate_argument.sol new file mode 100644 index 0000000..08d7c97 --- /dev/null +++ b/contracts/interfaces/modular_gate_argument.sol @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) 2023 Elena Tatuzova +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity ^0.8.0; + +interface IGateArgument { + function verify( + bytes calldata blob, + uint256 theta + ) external view returns (uint256 F); +} diff --git a/contracts/interfaces/modular_lookup_argument.sol b/contracts/interfaces/modular_lookup_argument.sol new file mode 100644 index 0000000..64bb91c --- /dev/null +++ b/contracts/interfaces/modular_lookup_argument.sol @@ -0,0 +1,27 @@ +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) 2023 Elena Tatuzova +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity ^0.8.0; + +interface ILookupArgument { + function verify( + bytes calldata blob, // Table values and permutations' values + bytes calldata sorted, // Sorted batch values + uint256 lookup_commitment, // Lookup commitment + uint256 l0, + bytes32 tr_state_before // It's better than transfer all random values + ) external view returns (uint256[4] memory F, bytes32 tr_state_after); +} diff --git a/contracts/interfaces/modular_permutation_argument.sol b/contracts/interfaces/modular_permutation_argument.sol new file mode 100644 index 0000000..a8d188d --- /dev/null +++ b/contracts/interfaces/modular_permutation_argument.sol @@ -0,0 +1,25 @@ +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) 2023 Elena Tatuzova +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity ^0.8.0; + +interface IModularPermutationArgument { + function verify( + bytes calldata blob, + uint256 beta, + uint256 gamma + ) external view returns (uint256[3] memory F); +} diff --git a/contracts/interfaces/modular_verifier.sol b/contracts/interfaces/modular_verifier.sol new file mode 100644 index 0000000..a3dad08 --- /dev/null +++ b/contracts/interfaces/modular_verifier.sol @@ -0,0 +1,30 @@ +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) 2023 Elena Tatuzova +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity ^0.8.0; + +interface IModularVerifier { + function initialize( +// address permutation_argument_contract_address, + address lookup_argument_contract_address, + address gate_argument_contract_address, + address commitment_contract_address + ) external; + + function verify( + bytes calldata blob + ) external view; +} diff --git a/contracts/modular/circuit1/commitment.sol b/contracts/modular/circuit1/commitment.sol new file mode 100644 index 0000000..65f48f8 --- /dev/null +++ b/contracts/modular/circuit1/commitment.sol @@ -0,0 +1,589 @@ + +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) 2023 Generated by ZKLLVM-transpiler +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity >=0.8.4; + +import "../../cryptography/transcript.sol"; +import "../../interfaces/modular_commitment.sol"; +// Move away unused structures from types.sol +import "../../types.sol"; +import "../../basic_marshalling.sol"; +import "../../containers/merkle_verifier.sol"; +import "../../algebra/polynomial.sol"; +import "hardhat/console.sol"; + +contract modular_commitment_scheme_circuit1 { + uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; + uint64 constant batches_num = 4; + uint256 constant r = 3; + uint256 constant lambda = 40; + uint256 constant D0_size = 256; + uint256 constant max_degree = 15; + uint256 constant D0_omega = 23692685744005816481424929253249866475360293751445976741406164118468705843520; + uint256 constant unique_points = 4; + uint256 constant permutation_point = 2; + uint256 constant quotient_point = 0; + uint256 constant lookup_point = 140728064387152; + bytes constant points_ids = hex"01010101010101010303010100000000"; + uint256 constant omega = 14450201850503471296781915119640920297985789873634237091629829669980153907901; + uint256 _etha; + + struct commitment_state{ + bytes leaf_data; + uint256 roots_offset; + uint256 initial_data_offset; + uint256 initial_proof_offset; + uint256 round_proof_offset; + uint256 round_data_offset; + uint256[r] alphas; + uint64[batches_num] batch_sizes; + uint64 poly_num; + uint256 points_num; + uint256 theta; + uint256 x_index; + uint256 x; + uint256 max_batch; + uint256 domain_size; + uint256[] final_polynomial; + uint256 leaf_length; + uint256[][unique_points] denominators; + uint256[unique_points] factors; + uint256[][unique_points] combined_U; + uint256[][unique_points] unique_eval_points; + uint256[2] y; + uint256 j; + uint256 offset; + } + + function calculate_2points_interpolation(uint256[] memory xi, uint256[2] memory z, uint256 modulus) + internal pure returns(uint256[2] memory U){ +// require( xi.length == 2 ); + U[0] = addmod(mulmod(z[0], xi[1], modulus),modulus - mulmod(z[1], xi[0], modulus), modulus); + U[1] = addmod(z[1], modulus - z[0], modulus); + } + +// coeffs for zs on each degree can be precomputed if necessary + function calculate_3points_interpolation(uint256[] memory xi, uint256[3] memory z, uint256 modulus) + internal pure returns(uint256[3] memory U){ +// require( xi.length == 3 ); + z[0] = mulmod(z[0], addmod(xi[1], modulus - xi[2], modulus), modulus); + z[1] = mulmod(z[1], addmod(xi[2], modulus - xi[0], modulus), modulus); + z[2] = mulmod(z[2], addmod(xi[0], modulus - xi[1], modulus), modulus); + + U[0] = mulmod(z[0], mulmod(xi[1], xi[2], modulus), modulus); + U[0] = addmod(U[0], mulmod(z[1], mulmod(xi[0], xi[2], modulus), modulus), modulus); + U[0] = addmod(U[0], mulmod(z[2], mulmod(xi[0], xi[1], modulus), modulus), modulus); + + U[1] = modulus - mulmod(z[0], addmod(xi[1], xi[2], modulus), modulus); + U[1] = addmod(U[1], modulus - mulmod(z[1], addmod(xi[0], xi[2], modulus), modulus), modulus); + U[1] = addmod(U[1], modulus - mulmod(z[2], addmod(xi[0], xi[1], modulus), modulus), modulus); + + U[2] = addmod(z[0], addmod(z[1], z[2], modulus), modulus); + } + + function prepare_eval_points(uint256[][unique_points] memory result, uint256 xi) internal view { + uint256 inversed_omega = field.inverse_static(omega, modulus); + result[0] = new uint256[](1); + result[0][0] = xi; + result[1] = new uint256[](2); + result[1][0] = xi; + result[1][1] = _etha; + result[2] = new uint256[](2); + result[2][0] = xi; + result[2][1] = mulmod(xi, omega, modulus); + result[3] = new uint256[](3); + result[3][0] = xi; + result[3][1] = mulmod(xi, omega, modulus); + result[3][2] = _etha; + + } + + function prepare_U_V(bytes calldata blob, commitment_state memory state, uint256 xi) internal view returns(bool result){ + result = true; + uint64 ind = 0; + prepare_eval_points(state.unique_eval_points, xi); + // Prepare denominators + for( ind = 0; ind < state.unique_eval_points.length;){ + state.denominators[ind] = new uint256[](state.unique_eval_points[ind].length + 1); + if( state.unique_eval_points[ind].length == 1 ){ + state.factors[ind] = 1; + state.denominators[ind][0] = modulus - state.unique_eval_points[ind][0]; + state.denominators[ind][1] = 1; + } else + if( state.unique_eval_points[ind].length == 2 ){ + // xi1 - xi0 + state.factors[ind] = + addmod(state.unique_eval_points[ind][1], modulus - state.unique_eval_points[ind][0], modulus); + state.denominators[ind][2] = 1; + + state.denominators[ind][1] = + modulus - addmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][1], modulus); + + state.denominators[ind][0] = + mulmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][1], modulus); + state.denominators[ind][0] = mulmod(state.denominators[ind][0], state.factors[ind], modulus); + state.denominators[ind][1] = mulmod(state.denominators[ind][1], state.factors[ind], modulus); + state.denominators[ind][2] = mulmod(state.denominators[ind][2], state.factors[ind], modulus); + } else + if( state.unique_eval_points[ind].length == 3 ){ + state.factors[ind] = modulus - + mulmod( + mulmod( + addmod(state.unique_eval_points[ind][0], modulus - state.unique_eval_points[ind][1], modulus), + addmod(state.unique_eval_points[ind][1], modulus - state.unique_eval_points[ind][2], modulus), + modulus + ), + addmod(state.unique_eval_points[ind][2], modulus - state.unique_eval_points[ind][0], modulus), + modulus + ); + state.denominators[ind][3] = 1; + state.denominators[ind][2] = + modulus - addmod( + state.unique_eval_points[ind][0], + addmod(state.unique_eval_points[ind][1],state.unique_eval_points[ind][2], modulus), + modulus + ); + state.denominators[ind][1] = + addmod( + mulmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][1], modulus), + addmod( + mulmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][2], modulus), + mulmod(state.unique_eval_points[ind][1], state.unique_eval_points[ind][2], modulus), + modulus + ), + modulus + ); + state.denominators[ind][0] = + modulus - mulmod( + state.unique_eval_points[ind][0], + mulmod(state.unique_eval_points[ind][1],state.unique_eval_points[ind][2], modulus), + modulus + ); + state.denominators[ind][0] = mulmod(state.denominators[ind][0], state.factors[ind], modulus); + state.denominators[ind][1] = mulmod(state.denominators[ind][1], state.factors[ind], modulus); + state.denominators[ind][2] = mulmod(state.denominators[ind][2], state.factors[ind], modulus); + state.denominators[ind][3] = mulmod(state.denominators[ind][3], state.factors[ind], modulus); + } else { + console.log("UNPROCESSED number of evaluation points"); + return false; + } + unchecked{ind++;} + } + + // Prepare combined U + for( uint256 ind = 0; ind < unique_points;){ + uint256[] memory point = state.unique_eval_points[ind]; + state.combined_U[ind] = new uint256[](state.unique_eval_points[ind].length); + uint64 cur = 0; + uint256 offset = 0x8; + for( uint256 k = 0; k < batches_num;){ + for( uint256 i = 0; i < state.batch_sizes[k];){ + uint256 cur_point = 0; + if(cur < points_ids.length ) cur_point = uint8(points_ids[cur]); + else if(k == 2) cur_point = permutation_point; + else if(k == 3) cur_point = quotient_point; + else if(k == 4) cur_point = lookup_point; + else console.log("Wrong index"); + + polynomial.multiply_poly_on_coeff( + state.combined_U[ind], + state.theta, + modulus + ); + if( cur_point == ind ){ + if( point.length == 1 ){ + state.combined_U[ind][0] = addmod( + state.combined_U[ind][0], + basic_marshalling.get_uint256_be(blob, offset), + modulus + ); + } else + if( point.length == 2 ){ + uint256[2] memory tmp; + tmp[0] = basic_marshalling.get_uint256_be(blob, offset); + tmp[1] = basic_marshalling.get_uint256_be(blob, offset + 0x20); + tmp = calculate_2points_interpolation( + point, tmp, modulus + ); + state.combined_U[ind][0] = addmod(state.combined_U[ind][0], tmp[0], modulus); + state.combined_U[ind][1] = addmod(state.combined_U[ind][1], tmp[1], modulus); + } else + if( point.length == 3){ + uint256[3] memory tmp; + tmp[0] = basic_marshalling.get_uint256_be(blob, offset); + tmp[1] = basic_marshalling.get_uint256_be(blob, offset + 0x20); + tmp[2] = basic_marshalling.get_uint256_be(blob, offset + 0x40); + tmp = calculate_3points_interpolation( + point, tmp, modulus + ); + state.combined_U[ind][0] = addmod(state.combined_U[ind][0], tmp[0], modulus); + state.combined_U[ind][1] = addmod(state.combined_U[ind][1], tmp[1], modulus); + state.combined_U[ind][2] = addmod(state.combined_U[ind][2], tmp[2], modulus); + } else { + return false; + } + } + offset += state.unique_eval_points[cur_point].length * 0x20; + unchecked{i++;cur++;} + } + unchecked{k++;} + } + unchecked{ind++;} + } + } + + function compute_combined_Q(bytes calldata blob,commitment_state memory state) internal view returns(uint256[2] memory y){ + for(uint256 p = 0; p < unique_points; ){ + uint256[2] memory tmp; + uint256 offset = state.initial_data_offset - state.poly_num * 0x40; // Save initial data offset for future use; + uint256 cur = 0; + for(uint256 b = 0; b < batches_num;){ + for(uint256 j = 0; j < state.batch_sizes[b];){ + uint256 cur_point = 0; + if(cur < points_ids.length ) cur_point = uint8(points_ids[cur]); + else if(b == 2) cur_point = permutation_point; + else if(b == 3) cur_point = quotient_point; + else if(b == 4) cur_point = lookup_point; + else console.log("Wrong index"); + + tmp[0] = mulmod(tmp[0], state.theta, modulus); + tmp[1] = mulmod(tmp[1], state.theta, modulus); + + if(cur_point == p){ + tmp[0] = addmod(tmp[0], basic_marshalling.get_uint256_be(blob, offset), modulus); + tmp[1] = addmod(tmp[1], basic_marshalling.get_uint256_be(blob, offset + 0x20), modulus); + } + unchecked{offset += 0x40;j++; cur++;} + } + unchecked{b++;} + } + tmp[0] = mulmod(tmp[0], state.factors[p], modulus); + tmp[1] = mulmod(tmp[1], state.factors[p], modulus); + uint256 s = state.x; + tmp[0] = addmod(tmp[0], modulus - polynomial.evaluate(state.combined_U[p], s , modulus), modulus); + tmp[1] = addmod(tmp[1], modulus - polynomial.evaluate(state.combined_U[p], modulus - s, modulus), modulus); + tmp[0] = mulmod(tmp[0], field.inverse_static(polynomial.evaluate(state.denominators[p], s, modulus), modulus), modulus); + tmp[1] = mulmod(tmp[1], field.inverse_static(polynomial.evaluate(state.denominators[p], modulus - s, modulus), modulus), modulus); + y[0] = addmod(y[0], tmp[0], modulus); + y[1] = addmod(y[1], tmp[1], modulus); + unchecked{p++;} + } + } + + function initialize( + bytes32 tr_state_before + ) external returns(bytes32 tr_state_after){ + types.transcript_data memory tr_state; + tr_state.current_challenge = tr_state_before; + _etha = transcript.get_field_challenge(tr_state, modulus); + tr_state_after = tr_state.current_challenge; + } + + function copy_memory_pair_and_check(bytes calldata blob, uint256 proof_offset, bytes memory leaf, uint256[2] memory pair) + internal pure returns(bool b){ + uint256 c = pair[0]; + uint256 d = pair[1]; + assembly{ + mstore( + add(leaf, 0x20), + c + ) + mstore( + add(leaf, 0x40), + d + ) + } + if( !merkle_verifier.parse_verify_merkle_proof_bytes_be(blob, proof_offset, leaf, 0x40 )){ + return false; + } else { + return true; + } + } + + function copy_reverted_memory_pair_and_check(bytes calldata blob, uint256 proof_offset, bytes memory leaf, uint256[2] memory pair) + internal pure returns(bool b){ + uint256 c = pair[0]; + uint256 d = pair[1]; + assembly{ + mstore( + add(leaf, 0x20), + d + ) + mstore( + add(leaf, 0x40), + c + ) + } + if( !merkle_verifier.parse_verify_merkle_proof_bytes_be(blob, proof_offset, leaf, 0x40 )){ + return false; + } else { + return true; + } + } + + function copy_pairs_and_check(bytes calldata blob, uint256 offset, bytes memory leaf, uint256 size, uint256 proof_offset) + internal pure returns(bool b){ + uint256 offset2 = 0x20; + for(uint256 k = 0; k < size;){ + assembly{ + mstore( + add(leaf, offset2), + calldataload(add(blob.offset, offset)) + ) + mstore( + add(leaf, add(offset2, 0x20)), + calldataload(add(blob.offset, add(offset, 0x20))) + ) + } + unchecked{ + k++; offset2 += 0x40; offset += 0x40; + } + } + if( !merkle_verifier.parse_verify_merkle_proof_bytes_be(blob, proof_offset, leaf, offset2 - 0x20 )){ + return false; + } else { + return true; + } + } + + function copy_reverted_pairs_and_check(bytes calldata blob, uint256 offset, bytes memory leaf, uint256 size, uint256 proof_offset) + internal pure returns(bool){ + uint256 offset2 = 0x20; + for(uint256 k = 0; k < size;){ + assembly{ + mstore( + add(leaf, offset2), + calldataload(add(blob.offset, add(offset, 0x20))) + ) + mstore( + add(leaf, add(offset2, 0x20)), + calldataload(add(blob.offset, offset)) + ) + } + unchecked{ + k++; offset2 += 0x40; offset += 0x40; + } + } + if( !merkle_verifier.parse_verify_merkle_proof_bytes_be(blob, proof_offset, leaf, offset2 - 0x20 )){ + return false; + } else { + return true; + } + } + + function colinear_check(uint256 x, uint256[2] memory y, uint256 alpha, uint256 colinear_value) internal pure returns(bool){ + uint256 tmp; + tmp = addmod(y[0], y[1], modulus); + tmp = mulmod(tmp, x, modulus); + tmp = addmod( + tmp, + mulmod( + alpha, + addmod(y[0], modulus-y[1], modulus), + modulus + ), + modulus + ); + uint256 tmp1 = mulmod(colinear_value , 2, modulus); + tmp1 = mulmod(tmp1 , x, modulus); + if( tmp != tmp1 ){ + console.log("Colinear check failed"); + return false; + } + return true; + } + + function verify_eval( + bytes calldata blob, + uint256[5] memory commitments, + uint256 challenge, + bytes32 transcript_state + ) external view returns (bool){ + types.transcript_data memory tr_state; + tr_state.current_challenge = transcript_state; + commitment_state memory state; + { + uint256 offset; + + if (challenge!= transcript.get_field_challenge(tr_state, modulus)) return false; + + for(uint8 i = 0; i < batches_num;){ + transcript.update_transcript_b32(tr_state, bytes32(commitments[i])); + unchecked{i++;} + } + state.theta = transcript.get_field_challenge(tr_state, modulus); + + state.points_num = basic_marshalling.get_length(blob, 0x0); + unchecked{ + offset = 0x8 + state.points_num*0x20 + 0x8; + } + for(uint8 i = 0; i < batches_num;){ + state.batch_sizes[i] = uint64(uint8(blob[offset + 0x1])); + if( state.batch_sizes[i] > state.max_batch ) state.max_batch = state.batch_sizes[i]; + state.poly_num += state.batch_sizes[i]; + unchecked { i++; offset +=2;} + } + unchecked{ + offset += 0x8; + offset += state.poly_num; + state.roots_offset = offset + 0x8; + offset += 0x8; + } + for( uint8 i = 0; i < r;){ + transcript.update_transcript_b32(tr_state, bytes32(basic_marshalling.get_uint256_be(blob, offset + 0x8))); + state.alphas[i] = transcript.get_field_challenge(tr_state, modulus); + unchecked{i++; offset +=40; } + } + + + bytes calldata proof_of_work = blob[blob.length - 4:]; + transcript.update_transcript(tr_state, proof_of_work); + transcript.get_integral_challenge_be(tr_state, 4); + + + unchecked{ + offset += 0x8 + r; + state.initial_data_offset = offset + 0x8; + offset += 0x8 + 0x20*basic_marshalling.get_length(blob, offset); + } + + unchecked{ + state.round_data_offset = offset + 0x8; + offset += 0x8 + 0x20*basic_marshalling.get_length(blob, offset); + offset += 0x8; + } + state.initial_proof_offset = offset; + for(uint8 i = 0; i < lambda;){ + for(uint j = 0; j < batches_num;){ + if(basic_marshalling.get_uint256_be(blob, offset + 0x10) != commitments[j] ) return false; + offset = merkle_verifier.skip_merkle_proof_be(blob, offset); + unchecked{j++;} + } + unchecked{i++;} + } + offset += 0x8; + state.round_proof_offset = offset; + + for(uint256 i = 0; i < lambda;){ + for(uint256 j = 0; j < r;){ + if(basic_marshalling.get_uint256_be(blob, offset + 0x10) != basic_marshalling.get_uint256_be(blob, state.roots_offset + j * 40 + 0x8) ) return false; + offset = merkle_verifier.skip_merkle_proof_be(blob, offset); + unchecked{j++;} + } + unchecked{i++;} + } + + state.final_polynomial = new uint256[](basic_marshalling.get_length(blob, offset)); + unchecked{offset += 0x8;} + for (uint256 i = 0; i < state.final_polynomial.length;) { + state.final_polynomial[i] = basic_marshalling.get_uint256_be(blob, offset); + unchecked{ i++; offset+=0x20;} + } + } + if( state.final_polynomial.length > (( 1 << (field.log2(max_degree + 1) - r + 1) ) ) ){ + console.log("Wrong final poly degree"); + return false; + } + + if( !prepare_U_V(blob, state, challenge) ) return false; + + state.leaf_data = new bytes(state.max_batch * 0x40 + 0x40); + for(uint256 i = 0; i < lambda;){ + // Initial proofs + state.x_index = uint256(transcript.get_integral_challenge_be(tr_state, 8)) % D0_size; + state.x = field.pow_small(D0_omega, state.x_index, modulus); + state.domain_size = D0_size >> 1; + for(uint256 j = 0; j < batches_num;){ + if( state.x_index < state.domain_size ){ + if(!copy_pairs_and_check(blob, state.initial_data_offset, state.leaf_data, state.batch_sizes[j], state.initial_proof_offset)){ + console.log("Error in initial mekle proof"); + return false; + } + } else { + if(!copy_reverted_pairs_and_check(blob, state.initial_data_offset, state.leaf_data, state.batch_sizes[j], state.initial_proof_offset)){ + console.log("Error in initial mekle proof"); + return false; + } + } + state.leaf_length = state.batch_sizes[j] * 0x40; + state.initial_data_offset += state.batch_sizes[j] * 0x40; + state.initial_proof_offset = merkle_verifier.skip_merkle_proof_be(blob, state.initial_proof_offset); + unchecked{j++;} + } + { + state.y = compute_combined_Q(blob, state); + if( state.x_index < state.domain_size ){ + if( !copy_memory_pair_and_check(blob, state.round_proof_offset, state.leaf_data, state.y) ){ + console.log("Not validated!"); + return false; + } + }else{ + if( !copy_reverted_memory_pair_and_check(blob, state.round_proof_offset, state.leaf_data, state.y) ){ + console.log("Not validated!"); + return false; + } + } + } + if( !colinear_check(state.x, state.y, state.alphas[0], basic_marshalling.get_uint256_be(blob,state.round_data_offset)) ){ + console.log("Colinear check failed"); + return false; + } + + state.round_proof_offset = merkle_verifier.skip_merkle_proof_be(blob, state.round_proof_offset); + for(state.j = 1; state.j < r;){ + state.x_index %= state.domain_size; + state.x = mulmod(state.x, state.x, modulus); + state.domain_size >>= 1; + if( state.x_index < state.domain_size ){ + if(!copy_pairs_and_check(blob, state.round_data_offset, state.leaf_data, 1, state.round_proof_offset)) { + console.log("Error in round mekle proof"); + return false; + } + } else { + if(!copy_reverted_pairs_and_check(blob, state.round_data_offset, state.leaf_data, 1, state.round_proof_offset)) { + console.log("Error in round mekle proof"); + return false; + } + } + state.y[0] = basic_marshalling.get_uint256_be(blob, state.round_data_offset); + state.y[1] = basic_marshalling.get_uint256_be(blob, state.round_data_offset + 0x20); + if( !colinear_check(state.x, state.y, state.alphas[state.j], basic_marshalling.get_uint256_be(blob,state.round_data_offset + 0x40)) ){ + console.log("Round colinear check failed"); + return false; + } + unchecked{state.j++; state.round_data_offset += 0x40;} + state.round_proof_offset = merkle_verifier.skip_merkle_proof_be(blob, state.round_proof_offset); + } + + state.x = mulmod(state.x, state.x, modulus); + if(polynomial.evaluate(state.final_polynomial, state.x, modulus) != basic_marshalling.get_uint256_be(blob, state.round_data_offset)) { + console.log("Wrong final poly check"); + return false; + } + if(polynomial.evaluate(state.final_polynomial, modulus - state.x, modulus) != basic_marshalling.get_uint256_be(blob, state.round_data_offset + 0x20)){ + console.log("Wrong final poly check"); + return false; + } + state.round_data_offset += 0x40; + + unchecked{i++;} + } + console.log("EVALUATION PROOF verified"); + return true; + } +} + \ No newline at end of file diff --git a/contracts/modular/circuit1/gate_argument.sol b/contracts/modular/circuit1/gate_argument.sol new file mode 100644 index 0000000..8a95673 --- /dev/null +++ b/contracts/modular/circuit1/gate_argument.sol @@ -0,0 +1,66 @@ + +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) 2023 Generated by ZKLLVM-transpiler +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity >=0.8.4; + +import "../../types.sol"; +import "../../basic_marshalling.sol"; +import "../../interfaces/modular_gate_argument.sol"; +import "hardhat/console.sol"; + +contract modular_gate_argument_circuit1 is IGateArgument{ + uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; + + // Append commitments + function verify( + bytes calldata blob, + uint256 theta + ) external view returns (uint256 F){ + uint256 sum; + uint256 gate; + uint256 prod; + uint256 theta_acc=1; + gate = 0; + sum = 0; + prod = 28948022309329048855892746252171976963363056481941560715954676764349967630336; + prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 192), modulus); + sum = addmod(sum, prod, modulus); + prod = basic_marshalling.get_uint256_be(blob, 160); + sum = addmod(sum, prod, modulus); + prod = basic_marshalling.get_uint256_be(blob, 128); + sum = addmod(sum, prod, modulus); + gate = addmod(gate, mulmod(theta_acc, sum, modulus), modulus); + theta_acc = mulmod(theta_acc, theta, modulus); + gate = mulmod(gate, basic_marshalling.get_uint256_be(blob, 0), modulus); + F = addmod(F, gate, modulus); + + gate = 0; + sum = 0; + prod = 28948022309329048855892746252171976963363056481941560715954676764349967630336; + prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 192), modulus); + sum = addmod(sum, prod, modulus); + prod = basic_marshalling.get_uint256_be(blob, 128); + prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 160), modulus); + sum = addmod(sum, prod, modulus); + gate = addmod(gate, mulmod(theta_acc, sum, modulus), modulus); + theta_acc = mulmod(theta_acc, theta, modulus); + gate = mulmod(gate, basic_marshalling.get_uint256_be(blob, 64), modulus); + F = addmod(F, gate, modulus); + + + } +} \ No newline at end of file diff --git a/contracts/modular/circuit1/lookup_argument.sol b/contracts/modular/circuit1/lookup_argument.sol new file mode 100644 index 0000000..8eb7033 --- /dev/null +++ b/contracts/modular/circuit1/lookup_argument.sol @@ -0,0 +1,30 @@ + +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) 2023 Generated by ZKLLVM-transpiler +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity >=0.8.4; + +import "../../cryptography/transcript.sol"; +// Move away unused structures from types.sol +import "../../types.sol"; +import "../../basic_marshalling.sol"; +import "../../cryptography/transcript.sol"; +import "../../interfaces/modular_lookup_argument.sol"; +import "hardhat/console.sol"; + +library modular_lookup_argument_circuit1{ +} + \ No newline at end of file diff --git a/contracts/modular/circuit1/modular_verifier.sol b/contracts/modular/circuit1/modular_verifier.sol new file mode 100644 index 0000000..70d9ff9 --- /dev/null +++ b/contracts/modular/circuit1/modular_verifier.sol @@ -0,0 +1,183 @@ + +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) Generated by zkllvm-transpiler +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity >=0.8.4; + +import "../../cryptography/transcript.sol"; +// Move away unused structures from types.sol +import "../../types.sol"; +import "../../basic_marshalling.sol"; +import "../../interfaces/modular_verifier.sol"; +import "./commitment.sol"; +import "./gate_argument.sol"; +import "./lookup_argument.sol"; +import "./permutation_argument.sol"; +import "hardhat/console.sol"; +import "../../algebra/field.sol"; + +contract modular_verifier_circuit1 is IModularVerifier{ + uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; + bool constant use_lookups = false; + bytes32 constant vk1 = bytes32(0xd01dad89947ad38adc7e68ae52f8fb2a1c430fd535887b78fd3ac57a2cbc5f09); + bytes32 constant vk2 = bytes32(0xf347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703); + bytes32 transcript_state; + address _gate_argument_address; + address _permutation_argument_address; + address _lookup_argument_address; + address _commitment_contract_address; + uint64 constant sorted_columns = 0; + uint64 constant f_parts = 8; // Individually on parts + uint64 constant z_offset = 0xa1; + uint64 constant table_offset = z_offset + 0x80 * 4 + 0xc0; + uint64 constant table_end_offset = table_offset + 256; + uint64 constant quotient_offset = 320; + uint64 constant rows_amount = 16; + uint256 constant omega = 14450201850503471296781915119640920297985789873634237091629829669980153907901; + uint256 constant special_selectors_offset = z_offset + 4 * 0x80; + + function initialize( +// address permutation_argument_address, + address lookup_argument_address, + address gate_argument_address, + address commitment_contract_address + ) public{ + console.log("Initialize"); + types.transcript_data memory tr_state; + transcript.init_transcript(tr_state, hex""); + transcript.update_transcript_b32(tr_state, vk1); + transcript.update_transcript_b32(tr_state, vk2); + +// _permutation_argument_address = permutation_argument_address; + _lookup_argument_address = lookup_argument_address; + _gate_argument_address = gate_argument_address; + _commitment_contract_address = commitment_contract_address; + + ICommitmentScheme commitment_scheme = ICommitmentScheme(commitment_contract_address); + tr_state.current_challenge = commitment_scheme.initialize(tr_state.current_challenge); + transcript_state = tr_state.current_challenge; + } + + struct verifier_state{ + uint256 xi; + uint256 Z_at_xi; + uint256 l0; + uint256[f_parts] F; + } + + function verify( + bytes calldata blob + ) public view{ + verifier_state memory state; + uint256 gas = gasleft(); + uint256 xi = basic_marshalling.get_uint256_be(blob, 0x79); + state.Z_at_xi = addmod(field.pow_small(xi, rows_amount, modulus), modulus-1, modulus); + state.l0 = mulmod( + state.Z_at_xi, + field.inverse_static(mulmod(addmod(xi, modulus - 1, modulus), rows_amount, modulus), modulus), + modulus + ); + + //0. Check proof size + // No direct public input + + //1. Init transcript + types.transcript_data memory tr_state; + tr_state.current_challenge = transcript_state; + // TODO: Just do something with it + + { + //2. Push variable_values commitment to transcript + transcript.update_transcript_b32_by_offset_calldata(tr_state, blob, 0x9); + + //3. Permutation argument + uint256[3] memory permutation_argument = modular_permutation_argument_circuit1.verify( + blob[0xa1:865+320], + transcript.get_field_challenge(tr_state, modulus), + transcript.get_field_challenge(tr_state, modulus), + state.l0 + ); + state.F[0] = permutation_argument[0]; + state.F[1] = permutation_argument[1]; + state.F[2] = permutation_argument[2]; + } + + //No lookups + + //5. Push permutation batch to transcript + transcript.update_transcript_b32_by_offset_calldata(tr_state, blob, 0x31); + + { + //6. Gate argument + IGateArgument modular_gate_argument = IGateArgument(_gate_argument_address); + state.F[7] = modular_gate_argument.verify(blob[table_offset:table_end_offset], transcript.get_field_challenge(tr_state, modulus)); + } + + // No public input gate + + uint256 F_consolidated; + { + //7. Push quotient to transcript + for( uint8 i = 0; i < f_parts;){ + F_consolidated = addmod(F_consolidated, mulmod(state.F[i],transcript.get_field_challenge(tr_state, modulus), modulus), modulus); + unchecked{i++;} + } + uint256 points_num = basic_marshalling.get_length(blob, 0x79 + 0x20); + transcript.update_transcript_b32_by_offset_calldata(tr_state, blob, 0x59); + } + + bool b = true; + //8. Commitment scheme verify_eval + { + ICommitmentScheme commitment_scheme = ICommitmentScheme(_commitment_contract_address); + uint256[5] memory commitments; + commitments[0] = uint256(vk2); + for(uint16 i = 1; i < 4;){ + commitments[i] = basic_marshalling.get_uint256_be(blob, 0x9 + (i-1)*(0x28)); + unchecked{i++;} + } + if(!commitment_scheme.verify_eval( + blob[z_offset - 0x8:], commitments, xi, tr_state.current_challenge + )) { + console.log("Error from commitment scheme!"); + b = false; + } + } + + //9. Final check + { + uint256 T_consolidated; + uint256 factor = 1; + for(uint64 i = 0; i < uint64(uint8(blob[z_offset + basic_marshalling.get_length(blob, z_offset - 0x8) *0x20 + 0xf]));){ + T_consolidated = addmod( + T_consolidated, + mulmod(basic_marshalling.get_uint256_be(blob, table_offset + quotient_offset + i *0x20), factor, modulus), + modulus + ); + factor = mulmod(factor, state.Z_at_xi + 1, modulus); + unchecked{i++;} + } + if( F_consolidated != mulmod(T_consolidated, state.Z_at_xi, modulus) ) { + console.log("Error. Table does't satisfy constraint system"); + b = false; + } + if(b) console.log("SUCCESS!"); else console.log("FAILURE!"); + } + + console.log("Gas for verification:", gas-gasleft()); + } +} + \ No newline at end of file diff --git a/contracts/modular/circuit1/params.json b/contracts/modular/circuit1/params.json new file mode 100644 index 0000000..1ee69fe --- /dev/null +++ b/contracts/modular/circuit1/params.json @@ -0,0 +1,54 @@ +{ + "test_name": "circuit1", + "modulus": "28948022309329048855892746252171976963363056481941560715954676764349967630337", + "rows_amount": "16", + "usable_rows_amount": "13", + "omega": "14450201850503471296781915119640920297985789873634237091629829669980153907901", + "verification_key": "d01dad89947ad38adc7e68ae52f8fb2a1c430fd535887b78fd3ac57a2cbc5f09 f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703", + "ar_params": [ + "3", + "1", + "0", + "3" + ], + "columns_rotations_node": [ + [ + "0" + ], + [ + "0" + ], + [ + "0" + ], + [ + "0" + ], + [ + "0" + ], + [ + "0" + ] + ], + "commitment_params_node": { + "type": "LPC", + "r": "3", + "m": "2", + "lambda": "40", + "max_degree": "15", + "step_list": [ + "1", + "1", + "1" + ], + "D_omegas": [ + "23692685744005816481424929253249866475360293751445976741406164118468705843520", + "7356716530956153652314774863381845254278968224778478050456563329565810467774", + "17166126583027276163107155648953851600645935739886150467584901586847365754678" + ], + "grinding_params": { + "mask": "4294901760" + } + } +} diff --git a/contracts/modular/circuit1/permutation_argument.sol b/contracts/modular/circuit1/permutation_argument.sol new file mode 100644 index 0000000..13ad429 --- /dev/null +++ b/contracts/modular/circuit1/permutation_argument.sol @@ -0,0 +1,93 @@ + +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) 2023 Generated by ZKLLVM-transpiler +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity >=0.8.4; + +import "../../cryptography/transcript.sol"; +// Move away unused structures from types.sol +import "../../types.sol"; +import "../../basic_marshalling.sol"; +import "hardhat/console.sol"; + +library modular_permutation_argument_circuit1{ + uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; + uint256 constant permutation_size = 4; + uint256 constant special_selectors_offset = 4 * 0x80; + uint256 constant table_values_offset = 4 * 0x80 + 0xc0; + bytes constant zero_indices = hex"008000a000c000e000000020"; + + function uint16_from_two_bytes(bytes1 b1, bytes1 b2) internal pure returns( uint256 result){ + unchecked{ + result = uint8(b1); + result = result << 8; + result += uint8(b2); + } + } + + // Append commitments + function verify( + bytes calldata blob, + uint256 beta, + uint256 gamma, + uint256 l0 + ) internal view returns (uint256[3] memory F){ + uint256 V_P_value = basic_marshalling.get_uint256_be(blob, table_values_offset + 256); + uint256 h = 1; + uint256 g = 1; + + for(uint8 i = 0; i < permutation_size;){ + uint256 tmp = addmod( + gamma, + basic_marshalling.get_uint256_be( + blob, table_values_offset + uint16_from_two_bytes(zero_indices[i<<1], zero_indices[(i<<1)+1]) + ), + modulus + ); + + g = mulmod(g, addmod( + mulmod(beta, basic_marshalling.get_uint256_be(blob, (i *0x40 )), modulus), + tmp, + modulus + ), modulus); + h = mulmod(h, addmod( + mulmod(beta, basic_marshalling.get_uint256_be(blob, permutation_size * 0x40 + (i *0x40 )), modulus), + tmp, + modulus + ), + modulus + ); + unchecked{i++;} + } + + F[0] = mulmod(l0, addmod(1, modulus - V_P_value, modulus), modulus); + F[1] = mulmod( + addmod(addmod(1, modulus - basic_marshalling.get_uint256_be(blob, special_selectors_offset), modulus), modulus - basic_marshalling.get_uint256_be(blob, special_selectors_offset + 0x60), modulus), + addmod( + mulmod(basic_marshalling.get_uint256_be(blob, table_values_offset + 256 + 0x20), h, modulus), + modulus - mulmod(V_P_value, g, modulus), + modulus + ), + modulus + ); + F[2] = mulmod( + mulmod(basic_marshalling.get_uint256_be(blob, permutation_size * 0x80), V_P_value, modulus), + addmod(V_P_value, modulus-1, modulus), + modulus + ); + } +} + \ No newline at end of file diff --git a/contracts/modular/circuit1/proof.bin b/contracts/modular/circuit1/proof.bin new file mode 100644 index 0000000..67dc834 --- /dev/null +++ b/contracts/modular/circuit1/proof.bin @@ -0,0 +1 @@ +0x03000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b000000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d22591a13b2634c593195c4e7a7becf9aaa9d72bb81ee43264a34e309f9cc9a3c000000000000002222591a13b2634c593195c4e7a7becf9aaa9d72bb81ee43264a34e309f9cc9a3c1f1737f0f9693494b37fd517f70fe4d844c0e4dd11e9df8639a0be9abfccb55b2bbd82627bf07dbdf7ecd88646ba0e0510860bb1770d5d8840ae0d57e0ff032a1b7417b4df0e06e7817f2977d34f78391337465946f76b67edc9572bbeff8ac51ab38bec6bb274b5d7a03a9f61a24618ebca6f83375be85677deaff064fb0fcf094476885b462285877bcf57208d591d1b872dc6503b26d072945200bafdb5d70581bb9e1a7c478d3621251ce82b5e7c5666fb980231977924ff0dd7f8e74f092e5650a9c85eac9ba56b0cb3a2c2bd9189a3e4df9127c2123ce59a03a6f48d3322591a13b2634c593195c4e7a7becf9aaa9d72bb81ee43264a34e309f9cc9a3c1f1737f0f9693494b37fd517f70fe4d844c0e4dd11e9df8639a0be9abfccb55b2bbd82627bf07dbdf7ecd88646ba0e0510860bb1770d5d8840ae0d57e0ff032a1b7417b4df0e06e7817f2977d34f78391337465946f76b67edc9572bbeff8ac51ab38bec6bb274b5d7a03a9f61a24618ebca6f83375be85677deaff064fb0fcf094476885b462285877bcf57208d591d1b872dc6503b26d072945200bafdb5d70581bb9e1a7c478d3621251ce82b5e7c5666fb980231977924ff0dd7f8e74f092e5650a9c85eac9ba56b0cb3a2c2bd9189a3e4df9127c2123ce59a03a6f48d3305bf63ee04ca229f16d7d048df1fceef0191e4b0ae657a58aa02d2e8f7fe6499083d4ed2bc911eaee116f03f01b1ee4f037277f2bf2aca578b7634846e44cc2d0f3114c664f481e6028c47f122b53b12f6aa455ea26f54aad80ad778950b217724518ce536e84397b89379bded2ee2795702f6a0bf8f1193ed9f7893377ad03f145574c4841d565fa94a754cf77007a092f89f8d7fb08b5d4de240f47021727d2acd90c58b8637d005a76e69a474de1cc5f432a41724e855b2a0b19b71a521503c29bf7605ad30c0b3fcd6c62a163a5f6c4559ee2a6097e48e1270376dfb722a277b3d077e65208b010bc2f62957e87b900bd1f007ef61acf14649463be06cbb2bc64f8d626ea95190a65f9b55fc3537ea3cd0e1198bb8b5e88b6cf958fd20f7308efe88baf9b3bc3787b68d279234d783ef3e4064de84b20dc2a1d72eb2e0e305eceacfecfb11863bb4ff60386332fafba876d85d20c8414b91cead2a126d8b25ec650a8599804cd5d799c11929836be9542a6f55e2438e68e69ab7006827c223b79d472d2bafc594bc6bbd69b64d807c3baed0be76a7ee650f6c47b18122fe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013abd2a0cacd5c41b3b38371d29ab930af8937c502201543799c506f91b9ee9ce0d68f8b6f4ac966c198deef6fcc65738476698c756cb28a7568568fd40b6a6ef0000000000000008000c010402010302000000000000001302020202020202020303020201010101020101000000000000000300000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d4000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb716000000000000000301010100000000000005f03d02ddf8a637ca4243b1ba4392d93f3373120e47f4e9f01d5b996fb1bc75a83c02fd220759c835bdbc4e45bc6d26c0ccaf348ab4146308fe3d93c13b438a57c5310e55db3f16f34b5278a351de3e3c00b63fe377a35dcc24654a6ac4ae4c49280ef1aa24c0e90cb4ad875cae21c1c3ff6c06b58465ef2cf733e2c62851b3b6d93547ad483b72c0789c5b309957372c03286ba66214ee11632eec8310677d6dc50ab852b7c48d3f8763a4cf66a8c8d3fcf9daf299f45ee7b86a40addc9882923c0a666269293dc25b0dc7f2feb413dc0f40ffdbfa4372728185e9cb9e057324d535999d96d6c23da4f2380d014bec23f0e146bd01c5da869a1343654efa8cdb2c3d02ddf8a637ca4243b1ba4392d93f3373120e47f4e9f01d5b996fb1bc75a83c02fd220759c835bdbc4e45bc6d26c0ccaf348ab4146308fe3d93c13b438a57c5310e55db3f16f34b5278a351de3e3c00b63fe377a35dcc24654a6ac4ae4c49280ef1aa24c0e90cb4ad875cae21c1c3ff6c06b58465ef2cf733e2c62851b3b6d93547ad483b72c0789c5b309957372c03286ba66214ee11632eec8310677d6dc50ab852b7c48d3f8763a4cf66a8c8d3fcf9daf299f45ee7b86a40addc9882923c0a666269293dc25b0dc7f2feb413dc0f40ffdbfa4372728185e9cb9e057324d535999d96d6c23da4f2380d014bec23f0e146bd01c5da869a1343654efa8cdb2c2c760185232808422bd675dc68c88fa2fa25aa541c347b293e6a01b193ad38392b7c15a5c8a5dccaf33e75bd7716ebd06f3bdb7c105e2ab83a46622e41f92b3b1ee90c8ae9c69e2b70674c218703f6f2065f40f80bdced46efce7db166ac33f30111950151fa7564d8e8b7e258acaf8e3ec62061a3f9d8093785f51843bf586f1dd500863b47c729927d55ec3466e39e997a18ffa146c8afb7eec9c7926b99e236d7cc5cd8ae13e83dedd19210a2b3f87b7339deecc20387b6f0568997c22d842213aee59adbd8ed7cc13bc4bf4abeaf91d4ff2a161902cc556dbdb604916c5627bd43a85873b0ed2ff4749e3820e73271962c3e901f50aeba1604d635cd2a493ebeadfc4cf15e57b924f9966a73fa1d5a093a0cbc60c00ed6f07bab5dc868cb1559b6f899672a19cbf38b4e7d121134dc1163006b2331cbbccb16672ec818113c4fe108bd7108f097cffc121a5b6325e0ef58ad8e3b0a7b63691785318f5c6d2bfbb11f6c555a385474f23629d0bb395308de38cca296f07974493d1f999e261ffcfb86c58670343df12d4ec15c1e3301a31a78bb39559c3f0ade715ae469ab27d833df4d3f0dc1602cb240830a149b4778c2660a6f7a8b6155b706a83e338a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000112a029db4b15eeb396bf4c3c0e6464032dba4c9f591cd734ae99c92ebce8745d0e74dc07f2e0c765b53bd5a9e8ccded77ab9d9174e0fa1b05e70778a1c1939f231d75773485996b0c2ebdc0cf4ba8a3ac7075e880e1909ec0278d40e955b1d771ca03ca957085c49630204111031605e2aa78efc08c959ea4cce6e9f3072091616c169e274797228d864580298143fd3be0c935243df13cc5df250b14b6125fd293e961d8b868dd7279ba7fd67ebc02c643a05a9c56de54f3b3ae03bb49eda0431c7116c465f3acc39f5b80cf8653f2293f8479f4a0e69e23c8e628978e5bdf00e38ee93b9a0c533c60a47f3079ac0dd8e4e515cbf3e8f395c9ece63871a421138e3571d5fdc25fd21cc9840d9fa3bac7d059b2856612618634059e85c7cb5ad071ca8e2a023da02de3367bf2605c453a540fdd3b2ebd30335ecd704a3834a541c70b392df4cbdf1a8fef94441e32a5de801a3d98ab1da0b8b8cfdd5ce6f8c5d238f4c6d20b3420e570106bbbe1cd5a23a44f5227e9b1f100da03317319073a416c169e274797228d864580298143fd3be0c935243df13cc5df250b14b6125fd293e961d8b868dd7279ba7fd67ebc02c643a05a9c56de54f3b3ae03bb49eda0431c7116c465f3acc39f5b80cf8653f2293f8479f4a0e69e23c8e628978e5bdf00e38ee93b9a0c533c60a47f3079ac0dd8e4e515cbf3e8f395c9ece63871a421138e3571d5fdc25fd21cc9840d9fa3bac7d059b2856612618634059e85c7cb5ad071ca8e2a023da02de3367bf2605c453a540fdd3b2ebd30335ecd704a3834a541c70b392df4cbdf1a8fef94441e32a5de801a3d98ab1da0b8b8cfdd5ce6f8c5d238f4c6d20b3420e570106bbbe1cd5a23a44f5227e9b1f100da03317319073a421720972c98a8cd0d756d8db65d733de7e8f56990a884b5b1f83b7a9c21ddea134f1d6a76617217fd47de125b89fcae31a188d88d44b7b546abf76f17403ac252c5d6b4a55fb9d9bb3156954d358fc2d90612be02c40cbbd4defe225a1f8e23e06837d50a031adc2572f48a8dae20a09dc2ff7de0c2d1d51a54a145ec8692a4708cdc9b8d79600f86e696e1573f364e7d04fc220f9bb3dfb44fec897edc0907a13bfda527aae4104be5af0aa85ae5cfb758fe27d1962f3257e18fa138eb65f7d29505837b7819ec0b5f5d098a83f16a381e50cfd8f8c52c209b516bc58e1a2b30dfb57270d90d4bb953aa0a67759f44ad3951e24fa08f9846f369d53936ca8ba27910ea1645cacb1dfaae58f6d8e7167914fdc3ae3f15e97299d6c821be412e533b43e56945a584e22aa2f7df9e1b5a4f0304924d37f1e57bda3a12fd6c2b8ef1f791a14b43dab2e951b3ea76fe0ee4abaeab82bd151fa48b10c813ff7ea9ab22522242c33983a0e0432135d328a4eb517ead40bfcd11f54c64268b6497fc9360049d78c67a3116592c9fbcf82aa98536fc54bd881abb1d818cbe6d8050858cd2473e6170c054d6fd99a46830e356ef04a7dcca1bd988a558d00d2f66077f0cf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001301aa39fade16d58537f47ba8f6a59b5967ff19e1fbf0f43e9ec9fbf433081c11f6c2de0e222e4c909710b18ecf8962e678c9284760b56354ad6a35647e52f2c12965408d21b1d637958265ae40ff5de4872065571fb75a95c2277bdcc7261661e9ca8aea4406f93f212a0035980375201b2c041ea85df2326b577c2da7d433e18c9a65e9ae5bab13ad4f62d3fbee56ad22fa0754377246afce74eef4d0133c5273659a1651a454ec52b09d2c0411a955016f886c5d5d4b09c45e1fdb2fecc3c3bf03fd9067ca5762628cee23eba7b15f8a7894e4806bcfb575759bf810602d8040fc026f9835a89d9d7311dc14584ea299f0fadc1463c2041d5d72d7ef9fd292bb13f3d206f3b4ebecc0a6b39a4676d522b4a9742edcc7a4ffffd09851e0e34144ec0c2df90c4b14133f594c65b9892d01b4e64c65f2ca1492d33e37ae1f1cd1a763c31a22c2889b9fc3418203605223404aa0032be1310c4785e68999647012589c3ce5dd3d7764603cbe7dfc9faddee41eefbd68ee60ad4b4d2846669b90018c9a65e9ae5bab13ad4f62d3fbee56ad22fa0754377246afce74eef4d0133c5273659a1651a454ec52b09d2c0411a955016f886c5d5d4b09c45e1fdb2fecc3c3bf03fd9067ca5762628cee23eba7b15f8a7894e4806bcfb575759bf810602d8040fc026f9835a89d9d7311dc14584ea299f0fadc1463c2041d5d72d7ef9fd292bb13f3d206f3b4ebecc0a6b39a4676d522b4a9742edcc7a4ffffd09851e0e34144ec0c2df90c4b14133f594c65b9892d01b4e64c65f2ca1492d33e37ae1f1cd1a763c31a22c2889b9fc3418203605223404aa0032be1310c4785e68999647012589c3ce5dd3d7764603cbe7dfc9faddee41eefbd68ee60ad4b4d2846669b90028757e294665c0dca6fa79f6c97cc362b53a10e5705a3b159473a1e28537762732766736e429404ebb603d3277e6f096a35fe3fd6a63c767ea224998ab5e00122172ec4127f3ba4d5f328aa09aceaa4d3d0b84930004a52b64216c61870a2e121d9ffa93e426196287e6c0a904a96135171c7de4f2786b7b2c3faeeeed997ee90ecd42883420789cb2f166345a48c23b451e9cee7d1c56342aa1684d8b179b1b3a389416324dc28d5a7bb10ab9e42d3b557b28d4ce0b24a2f61bfd2ca111a0342ca101997c7ce95785d4abf611da03ae7f1b69a66a0dc1332162d83404ac2ad038eaff01efd8dabe412bae633e9bd4d5111992530074f5f31c85b12bd88815c9213682e4c8e57340e108697324879b4dd726536a3ff85462f7cf7a54fdfa553108b61c5e1575e5545d68f7b07da3d4b5ff6041eae4809b42d6575f7764a91b7c270400d71a1c871646a98b20bf46ee49058fff268a2d3a169260716c5ae8c0f732678eca6815489a950bd429056ed9257408fe56dbfd0bd4c6e8d34adea48d2724f6d87f5bf8eb08339319ea8004377dc2fd6079c50078cb9a582c54194c2d4a317f881cb05f7a354430401d5999c7836b6ec86f1d64c4dd6f267af8a7fbb77000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010f4884ebcf52b73edaf73a2ef3e1411ad11ca27061cf63cefff861d0b3dbcd200574260e3640941fa2aedc4ce2f5b1d7a280d947c522ddc9d59b8cc54e213f982669a670b41a2c5280f3de9ca59e477b05003f59ea52b4e3cd3ccb825112dc163413d9ed158142cb650e2ddfd77e4088d4f21df55af10af89bbcc1cde3c09d7428193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e11105939417e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e13781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e202a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b6965158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef62bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b28193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e11105939417e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e13781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e202a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b6965158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef62bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033de437650bfe98ec02cf7802101505b5bafdc5235dba1ae2bc0bb0babaeec77000000000000000000000000000000000000000000000000000000000000000008b533ecfd061144a25fc8cb7048305409d63faa91f86a7953364b8c5d1c263500000000000000000000000000000000000000000000000000000000000000003c9377634dc5fad3628cc04b914980af65861bfcc7d40c277ef7069808cb12ac000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011ea2fef64c9f29267bd6951891d97aaa1587256239737c749139b02bd37912830e0a459ae307a012a0648fc4f2b6baeddf0fdf50a03994af3ae9f72e84028ac1282a5c796a9727da30709624c424752a77fb4cdaf3d9be5bce462343205dd07d31f5ba651cf85fed5f9b703b0d4945124336b9ab6913646c5e4339be7bfd754009a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22309a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a2230f4e1eb91a1da31fc0412b600538131b50683612fe68b4da3684951448833410305442f86a318d2c88136575e4619f47ea936ec4b74eb9e62f41abd8689a1b79069905e02e02d8387c19bd3dcbb7baa7d9413faddb8f71dcf9dcb32297f41b6106887301806dbc3e19d032ea7e4059720b2a46eebfabb9612a0461482c62782f36cd476b360228fe65b0b9a7056b4e5a0b5a7377b47d56d368ebb0991693f19b24f22585549da1e68539d3d36cdc2659df7542b929ed878cea75f563d598676c341d97a4dc73a97662e78c57175999c52ca49aa3e01c1d3a1eede011f65dbb3e269424734e1ba68e022a2b54294083a4c0dcafd6e632d35eedbab19307bb11890631317c5c7efcb15bbcd0a4bb3bf5f09795fccc2de9e46551595d83e66f6bcf28782cd9c2e18f2eb6a9858025a548f0fdf03e07daefcbf96540864770399b803a2171f3a17617c9b1eee7e6aa98a744d88de87a4beefdf8e76504e2a295329d15d2a1b50cd98096e86063c746831555dea89af3bdedcf46655d53fb87596f53353e11f58507eb9dc94889fc83e10f893a95fd797c694e825301821fcfd3d1ae3f610ce7aac681806fece8b03418a7f5a478215213a510e45535f92e8f21b3d100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012d46d46b47c6a28c8990c8083c2f12801c7abe4207f5911e9f3339d9f320286d09fac9ce33039b9a030fc433451ec38dbd3934f7c8d84c5b6b048d2dc04827a01aebb2ee5fa00a72b765f1a1d27ca26a66016ce200751d069b38bef73a732ac50f02fd54355e90a7aaa94be565f1a990d104b1ba23cb7a50bdc5b24fbe2f8cf1269e6cd37938f2d8bce4aeaeb0f5b1713b751300ab9a20ad6c26c541de8510591961932c86c70d27431b51514f0a4e8ee6d185fb5db2d86e2d066bab217aefa8011820215e1cbe3bb077696974cc7735c275940f3e1bb810513a4782589951ba3ee7dfdea1e341c44f8896968b3388ca5fd104eccb31410b47f2e96aa766ae470578a0a6d68fb72a72550f0f47fe540ccc4be44c368a98519623658bbafe98a23a875f59297048d58daaf0f0b801abf355fab4afd2c260ca0309cb614501675f1b5b234230ce93d43ba94b4c67f7a43ffd7b757d10b4f997eeb0fbbaa6f8fb2a24a4dcbdcf316c2bc456b4b398085bc024cb237ef897ff83aa7c3532590704d7269e6cd37938f2d8bce4aeaeb0f5b1713b751300ab9a20ad6c26c541de8510591961932c86c70d27431b51514f0a4e8ee6d185fb5db2d86e2d066bab217aefa8011820215e1cbe3bb077696974cc7735c275940f3e1bb810513a4782589951ba3ee7dfdea1e341c44f8896968b3388ca5fd104eccb31410b47f2e96aa766ae470578a0a6d68fb72a72550f0f47fe540ccc4be44c368a98519623658bbafe98a23a875f59297048d58daaf0f0b801abf355fab4afd2c260ca0309cb614501675f1b5b234230ce93d43ba94b4c67f7a43ffd7b757d10b4f997eeb0fbbaa6f8fb2a24a4dcbdcf316c2bc456b4b398085bc024cb237ef897ff83aa7c3532590704d72256a7084415371e03a09af0c5e9eaef22518cb5c24cc2f8985c7adc3ba2275d23e05acac8a61cb993ec659c0d776d653174f6fb40fe18fe66557cc5aef96e891d346632101230652aed2e08b58ff02fb85157667fbd12938e868e28895fa9a007bac4c07890e1569b02f52c0b753f5d714001955f6fccc2da327d9f914ca22104371e0860c4a6721f59ff5befb1777b7a1f05f519d1b74b388c5ddefcf9939506b63c5784298261fdbcd42f0eaca7b5553714b0d469db00708bf2789107b57b3e2aefb3fdc36a87911a687680f69e292b5a7586b5396fea7aa6d6029b271a8c11c1adfd13df51e88b6d12f4c8b0f50a84ed479ac4e13d93ba2a32c692cd946533f0579fde0f34c6e16b75f5ce232f41531279794b06d084ea4344c4b8c212560f7703060bb5570f74d3fb958399eb74d829e54cd901369c0066cac3a1e560cd1c7d4f27373a4af6a313c9a16932525ba15f047df135b30eb3ab227b2174438120637bf5fd7292eb3cd32c758105d23add806b301422f8891b91030e8313ca9b130924584301a804419c19381a5491f0f891ec80cf3c5c2ced1f5566fe02fbd727c3c5602d2129ca10eb09c5123b6a7b040e5579b407bdbb1de3f870123d718400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012fcc211ba5bbde98415f65b3e666d814af6da02fa8ee19846682cb5684b26b431150b9dbb6d71b56ca4cd09c15ed3c7a7850176e7989bc123dfd2cdcef808ee2388572476562cc68dbcd0914b094d5dd9f9e999ae28cdcc3309a2246d75484df14a9c7b1a9f0c6f2680fed263c3282161f4691d7978e963bde103e2b222033b41a0c5110f2938a65d9acb749701ff358e6230b2fb183e128dd9a1498049990cb25f3aeef0d6c759a265348b68fe00ca73c238dcc57c917f2bb931c54fb666f36023d9554bce1b3fd405f946f309fc0bc3a2205f664f9739521a8051e16ffd3f53dc26aab431e4c02bfa06b90cf603f43e8249305a453858677852bcee9002c0c0b33eaa7b06883f241dde62bf31ec3ad22aa1dcff8df41e9a848199672ff23c934cc15584f977c0dbe2219d40ce13c52ff9c7b2c106db731f0e517568d00dc3838039546720a93bb49557edbbf99d261ad52950fdc5c499049687ff03efbb2ed07fc6ab98df56c44b6aa812440662d9e74f403ec2cf0af8b4fc4b0fcc1044d141a0c5110f2938a65d9acb749701ff358e6230b2fb183e128dd9a1498049990cb25f3aeef0d6c759a265348b68fe00ca73c238dcc57c917f2bb931c54fb666f36023d9554bce1b3fd405f946f309fc0bc3a2205f664f9739521a8051e16ffd3f53dc26aab431e4c02bfa06b90cf603f43e8249305a453858677852bcee9002c0c0b33eaa7b06883f241dde62bf31ec3ad22aa1dcff8df41e9a848199672ff23c934cc15584f977c0dbe2219d40ce13c52ff9c7b2c106db731f0e517568d00dc3838039546720a93bb49557edbbf99d261ad52950fdc5c499049687ff03efbb2ed07fc6ab98df56c44b6aa812440662d9e74f403ec2cf0af8b4fc4b0fcc1044d14385117c5c2a3e378cefc1a9644ac30b2575c45d18b5dbf42535daec6e3d905ff09c2663f182bb782f44bd828c1c15843eef1631836cdbde9d9da374ec7b6be9e1fa87d6b0d993e3c9a1422a538dd2eacbdf7743089b68789326f0b7bc1f2982d12de6db33131621a15e7c7b250760ba15a3a145ae7b5a8f5320b15e4f1b906db356bcf378df613176d12190ee844b73804a5268a1947c56996b545beb12ffe63137c3070180a5e5a5d7251a6d9dcee1df0fd0d1ee9fe89c209e4fa63c4ac69bb02b7096af95909d0a65940eb585f38428acbc67a60fb707a1050662c7b25ee261dcb283ae6997a81a070cc0a8a11dd230c4825751baf2e859b6cc284c279042c3ee6a58a97dd4264707d95a6d0edca15a76100bbdcb834ad8cc3079a26c7006437bda57c6e13a13b63a345aff28318a61175e1dc3ea9778f7b1fb6367006af1c2ed26f78dd02f11ae35fa904b3056f1361b509065d2b8a67bc4154b84bb6e58e1430eca796ac26e32ca825a35b89eb444bb4b780bf1cd08211969b478c2add8c26ad156d0dfef1d122f99052c253c2db6be7cbd662e708fc1ca5421658e29cd108e11dc9945785f97e81d5626a32f07db2da83dd0da38c8ec8c5bdb02049192d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000135976e411d72f967b8aceba596ad5300768fe02f747bdc07b40290fe9230c55e2b736471bc32858e81f42dd48d7677c53d9e59ae0c602719c3c49653273bfcf30fdbeb89ddd8aab99818f47500f75bd58109cce93af69c2631a5141123a8540424f40d0bd86ea80ac1a7f7d7b72a0102480af316f2caa0b59581b0e83e8379310f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b9130b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d43383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d124019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b007dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea510f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b9130b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d43383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d124019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b007dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea510a5a3a2d099e0f0d99fbe727865f7e3d88fd0d0c33dd52e13e5b28e6d2ed2b8e029a3a1c6f41964b9b68a7284459f07faaec11e2ecc625a37dbad47ff53f1375319a40474708858ea7169fe9fca304648ed91191eb49174efb17618c5f6b752120899be034bb367aeb6327c489f2fff9f9cbc864c35ab1152660e9397ff33a353fde85d7a1281db23d7a79666ae7d3aac22559ca2a02e23f4ebad1074f0bd582232394d4641ac26bffbf0e8312921ff232a0d35142b6d7ac52a7a582d1a4c55339d24e3b13b176137675c24434341c29d0daca0d4b50794a8b073a0aae8ca7571237f319d05ab81aa5bbca31f5e173ee541b4e6aca701512b448911f6f5b009d28b3f454c4513f025ed42e9b07b385a448c4218a5acbe5c0d4d64416f1df028c2198993f437ef68a2c797c6434da39d1d7c9c38890674aabbf8c96f0d6967c4625048fc1d7d4dfbe9e41ff71237a8cc0237a2f9047f26bf33b651dbfe18a04ce25f1cc386d4a495b4c7e832d649d4503020d5d926ee9cd68afc9956d52de9a4429b93a34cef87cdbf9202d41416a9c9d49765bc9d694f660104592d44b6156ab071c566cf0e9b7870f65477ccb6f4009d1817cdc9657df12f43a0fb86c9d677400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013a2ded64e515941056e7f07fd9dc286f1d70a8578828b20f1e7c974bf33a36b836f1e408c87deffa380af27147aae18d45928b8b18f6bf312fa1c5a8be48ad780d1597db48ef86f20fdaf352a3c7a17680123a583970cf7e42760bf476fcc9f50fa3d7e7c3c9d48cfb942ddcc6d659816f63c7b0c4615edd3a9474fb882e208b11f949260a7860af3a48fc447836cebe94e941f2a38afe4f78eb82219e7494112e06b6d9f5879f50c5b703bb87c931418d5d570965c1facc2041aecb618b6bf019de6dbe3459e36c236ced56591209b8c647b0c12869fe71c36c59bb1846e45426219241cba61c93dc9312a9a6edf6475bfee83ae0e2faa9d5c0d731e7b91bad015824b705c1711cb120a2afbd5a309b9ad941cdb77806019ec35ecd796275a23ea7db48fa3e8ee34edf5d5042a5cf64876d572e51d4f319fa69d21f869d8a5f06b8b7931cc7358f75a32d6eb2c2f30a063e490495581e0819d0da035eec4c2a3947486ce338ca708a5cd2914d3d0cf61c084ff773f4db137f5c56e9a113b3d711f949260a7860af3a48fc447836cebe94e941f2a38afe4f78eb82219e7494112e06b6d9f5879f50c5b703bb87c931418d5d570965c1facc2041aecb618b6bf019de6dbe3459e36c236ced56591209b8c647b0c12869fe71c36c59bb1846e45426219241cba61c93dc9312a9a6edf6475bfee83ae0e2faa9d5c0d731e7b91bad015824b705c1711cb120a2afbd5a309b9ad941cdb77806019ec35ecd796275a23ea7db48fa3e8ee34edf5d5042a5cf64876d572e51d4f319fa69d21f869d8a5f06b8b7931cc7358f75a32d6eb2c2f30a063e490495581e0819d0da035eec4c2a3947486ce338ca708a5cd2914d3d0cf61c084ff773f4db137f5c56e9a113b3d70943e9457065126661e34399d6f79a4c076da1681bfe633786e4a6c9df32664d2843200288f6cc4361de4f3164c7e4b3db2f6e4fa374218a50fc2fa0efdf246319c8a1f9be1557d74d52124d4282bf6d74cdcdfc08e07c55fe8f6cd47818f45f0970b8464c52f5bd79857d6e595e9cd20090f8673adc85d9924dc05f28bcc70e3a2b951d452b3873345dd109d4bc4a3626ea596db459701b0890214d9e88bd7a32b9a7cfc219347197a0d9971fef80e999127abc4a074004428a4259891e066c294de2c0e345b9866ab0e7725f2548a997f9f98e89f86efbd6d5010477d77ad737621577525ffb468c78fc42532e747607bfc4678c3cf49dbccaa56b9744768e34c5ac1eb8b4c44b688219e765f32076d4ddf6355ad625d96922e4d7368e698a12d904a55bf64e9154522a01b44c818964631421eb3052ace53cff13ecd55e34201dfc1fe803e5e2cc27d82b67fb83304f64a3c817a93727cc4a9ea72c695c311656b674728f867fcdd22c642154830125f80adee6aa699ece810555862f3f580acf87610a7178651cabe06bd15ae22deabaa7f097dde43b304e7e3d708019d70a67ced9e83816fd4db8933f0eaf4c825998777c4760005440ee6a295b2115760000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001030db31e3694b6cd1a81753d9216f3c29df89792c9d64813451257bfe776c3220702e50427b2875fb779175c01510d6702a33244df639bb8f8c37412a03a7ceb35fdfc2b21373a8b9295e9adca98b23d215e36514716a20d6d62437cd1ca6c271d287accf212979f1b695d5702790102a22899499397b26701e9b95fc1b107503ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f620591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f620591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f2c9449a2096eb369dcd74848e36e531fbeeebb0231c1e1dbf69ca078811f10b41917989447b2cc4575c26f35f25ddd13908b6d1d72c526ab2f12b8334faad3001932b894c9fdd7019a4f4658fa94b1a61f7dcbc35722e08f168ccc8f296c0e672b0dda7aab625e197ac62c2c9323d9a64b62fc81e1b2afd5950287c46a67989607d5fdd69f3ae3b55f91d9d6293e5881fae9422a0e3a98fb7332bde32324d44d0b088947b25487d40a8436018cc9936431ce83b75b30b8543582c62898849825380000000000000000000000000000001dfdc5dc882359f826078acf60000001380000000000000000000000000000001dfdc5dc882359f826078acf600000010d70e0ce98afc6cc63678c23ab21b0072140db4f664839547601e6ad2c78dcb725c9d20fe9cebc86ac47b48ae8b36a52bfb5774cbc3f2bce71e24cae4452b8660c06e898b7ad11ae80a72e8a180a42da3423bb2f683ba38fcc94dad64bcbe01816e760658d2de7ce507cff79aaf982d880f38fae4b47ade8a74f11d4a2b2cea61e8aa435cba9acca6c53f083385d4b7d080c25c6e5a4e26da68f1c706f8a0b773446fdbf1d6e8ace645cd3d0524fc3e2569b1f7947cdb31b71fc74954f90441200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010a721bdbebfd4a87b8fc792d5cb7226ff8ac409a2f6277002cabaaadd3e5593e17a3dc2c074853a60bb187593db4a4dfb11569f40664ea4f9e87442efb57c2723c9cc7ba985c6b201842c94af0abc04f343a6eb81de61572162028b43c965217357194b67a68a548c7170eab2d63b2172107db3a352b48090042a7c8b9f1403b307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab21307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab212876855487ff336836a0f33ee2a9bfb97c9b0acee0f75ff33fd9f20480d259f317d5b27a8f0deecd238b31e430f64e7826e281c766f5a2962b425b1437f015c30abe003460a462f4fc31a0637f8d253719132698391ea5d48d2a75d69693a9322b06f1edd79995c579b3c01d6adf168779937cc9dc173181c73c00ff50f7a9851b83557d474a36772934cb8e5ebddc87ce9238e19b25b31e33466ab0fb3febeb2e36e944259aad3e4e91a84798bb84f3e4c5dc3c1aee4ef030f95680f5f7d07e066c15e7ad9e05f7cc658e57a8230a048ef44719cc9716dd26c4473c13a2e98813daa8ef5b235c3dff368a1500f4526d8fc167282e6ec9e562304abc9dfc33c828bcd32c8ebbdf36c8b2b19c6669af4b2e65c346cf6e731044bd9ab7aae4973821199e54d94791c0c39dd9abb587658286230a49dfb335e1b801cef02fe23ed00cb9e82ea7610bcf34d053d66e0d11b0e771da75884eed1f17b2ffd9afe7f05701ade79b7ce560a2874a106d525815419ec400ee5eadb8ced2a385839e388abd2535d07942cda1a5768ba29ae871d85ffe0b6e7bc254e569adfd35c859f633ca3fdee13e0d9232dfc3a24457b7b01be9fbe19598938d1bf2e4df23c1b73055d9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000130d346460893857e2ae9fd474752068b6bed1ab5bdd20068147d163095b521dc0a8c26e5cb43292a62405ebff46a9accfdea998a0357edff1a8c8eb6b82d1f2734402a574c64c1c67187fdc0b5442a193659d406e1867d370bbc7a1c04e77c463325cef28d5e193333401f30b957499d0306bb9879c068f59af9c4887800dee207fc67f0d2530e47f91f36ded523f7e7013069392919e4978abc6e0f780c038c3803980f2dacf1b806e0c9212adc081921162fc2e03314840e70c2dd87f3fc7527ee07b41b9f4767dd9c125a29b3d78305f20e1dcd8176f5b5ae264d583c11bc1811f84be460b8982263eda5d64c287d1c548ade3bcb8225e37f0a9fa7c3ee4507a626848a1c6507540c5bc2d083358eb6e67ba0e7a06779c0df2cbbb92c58a93859d97b75e39af8abf3a43d2f7cca716b601d5b21ac91a1d84e043146d3a758263ec096b28df924a43dcace12900bc992806a2486220560c45bdfaa9dddbb4d19c13f694d7206db5bc23531ed6ff4368fc62ed7832af3bad4d15142622244b407fc67f0d2530e47f91f36ded523f7e7013069392919e4978abc6e0f780c038c3803980f2dacf1b806e0c9212adc081921162fc2e03314840e70c2dd87f3fc7527ee07b41b9f4767dd9c125a29b3d78305f20e1dcd8176f5b5ae264d583c11bc1811f84be460b8982263eda5d64c287d1c548ade3bcb8225e37f0a9fa7c3ee4507a626848a1c6507540c5bc2d083358eb6e67ba0e7a06779c0df2cbbb92c58a93859d97b75e39af8abf3a43d2f7cca716b601d5b21ac91a1d84e043146d3a758263ec096b28df924a43dcace12900bc992806a2486220560c45bdfaa9dddbb4d19c13f694d7206db5bc23531ed6ff4368fc62ed7832af3bad4d15142622244b438d203a95a964dcd04f32e9bedb4b5e23b1917c0e41b0285abe801d74d68fc483a62fff28d5891df29479787f8bea2b86f803c27fca435f42523dd0cd2500c9b2966fa1fd1fd27c783e642c2344845584073b30f2b6a48f7b905318f280be4a029778cfe7f9243c1e62fcd1581bfa68e0e8aabce474e017388dd8369939d87d20a0746754227cf71bca18dd550173e3ad24e73d8a0f44ae1e214e1e108a6ba953b46fd729348e089de4cba7f6f4ea45b95e0c022affd334a103386ca794078a82b0dda7aab625e197ac62c2c9323d9a64b62fc81e1b2afd5950287c46a6798961932b894c9fdd7019a4f4658fa94b1a61f7dcbc35722e08f168ccc8f296c0e6704ed0ecc0c65327958e9128d6663d4d6c6f364724643101acb7872343e53611f1c0a22e00c258142d5e72fa8db055aa8f081329d22c197761eca69a9a730f5f32538b209cd37aba1885df507f2acfc413c97b97fce2a5eb5f6cb02c4fe5b2f8110534ff9d459027065f1fc76c1f934d2585702b4455a57e875afa7d7df8197c01243e5688b6e66ea3f041149dec3c9a121d68148ad651019fe2bf9996f899fe51e65e8153ef87ea5e4362ebd6ef03b294d6305723608b49e0aa505fdb5e1c2a1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000111ca931a4036141b061abdcbe30ec63d27e05b3b5471ad61f3a8effa31a112f33118308bda408f507cdbf52bbcb0a8f56fb2c9d671a7fc220bda494806a217bb2ac23b51bfc00935ab2c80803fb5785594ca074dc49267411a8911d7eeb77d1e23ae487085c651ebc392ef36f61b1bc87670c2ffce957bdc492aabf50bdc190202fd220759c835bdbc4e45bc6d26c0ccaf348ab4146308fe3d93c13b438a57c53d02ddf8a637ca4243b1ba4392d93f3373120e47f4e9f01d5b996fb1bc75a83c0ef1aa24c0e90cb4ad875cae21c1c3ff6c06b58465ef2cf733e2c62851b3b6d9310e55db3f16f34b5278a351de3e3c00b63fe377a35dcc24654a6ac4ae4c49280ab852b7c48d3f8763a4cf66a8c8d3fcf9daf299f45ee7b86a40addc9882923c3547ad483b72c0789c5b309957372c03286ba66214ee11632eec8310677d6dc535999d96d6c23da4f2380d014bec23f0e146bd01c5da869a1343654efa8cdb2c0a666269293dc25b0dc7f2feb413dc0f40ffdbfa4372728185e9cb9e057324d502fd220759c835bdbc4e45bc6d26c0ccaf348ab4146308fe3d93c13b438a57c53d02ddf8a637ca4243b1ba4392d93f3373120e47f4e9f01d5b996fb1bc75a83c0ef1aa24c0e90cb4ad875cae21c1c3ff6c06b58465ef2cf733e2c62851b3b6d9310e55db3f16f34b5278a351de3e3c00b63fe377a35dcc24654a6ac4ae4c49280ab852b7c48d3f8763a4cf66a8c8d3fcf9daf299f45ee7b86a40addc9882923c3547ad483b72c0789c5b309957372c03286ba66214ee11632eec8310677d6dc535999d96d6c23da4f2380d014bec23f0e146bd01c5da869a1343654efa8cdb2c0a666269293dc25b0dc7f2feb413dc0f40ffdbfa4372728185e9cb9e057324d52b7c15a5c8a5dccaf33e75bd7716ebd06f3bdb7c105e2ab83a46622e41f92b3b2c760185232808422bd675dc68c88fa2fa25aa541c347b293e6a01b193ad38390111950151fa7564d8e8b7e258acaf8e3ec62061a3f9d8093785f51843bf586f1ee90c8ae9c69e2b70674c218703f6f2065f40f80bdced46efce7db166ac33f336d7cc5cd8ae13e83dedd19210a2b3f87b7339deecc20387b6f0568997c22d841dd500863b47c729927d55ec3466e39e997a18ffa146c8afb7eec9c7926b99e227bd43a85873b0ed2ff4749e3820e73271962c3e901f50aeba1604d635cd2a492213aee59adbd8ed7cc13bc4bf4abeaf91d4ff2a161902cc556dbdb604916c561559b6f899672a19cbf38b4e7d121134dc1163006b2331cbbccb16672ec818113ebeadfc4cf15e57b924f9966a73fa1d5a093a0cbc60c00ed6f07bab5dc868cb2bfbb11f6c555a385474f23629d0bb395308de38cca296f07974493d1f999e263c4fe108bd7108f097cffc121a5b6325e0ef58ad8e3b0a7b63691785318f5c6d27d833df4d3f0dc1602cb240830a149b4778c2660a6f7a8b6155b706a83e338a1ffcfb86c58670343df12d4ec15c1e3301a31a78bb39559c3f0ade715ae469ab00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010e74dc07f2e0c765b53bd5a9e8ccded77ab9d9174e0fa1b05e70778a1c1939f212a029db4b15eeb396bf4c3c0e6464032dba4c9f591cd734ae99c92ebce8745d1ca03ca957085c49630204111031605e2aa78efc08c959ea4cce6e9f3072091631d75773485996b0c2ebdc0cf4ba8a3ac7075e880e1909ec0278d40e955b1d772077dea666d302e9680c24a43d9ce3ab1eae47ce663b20eb61b77c8bd965303b1f882159992cfd1697f3db5bc2631c550398512da311d8303775b461269acfc622575940021f0e8f083cb7353410725754da350fec8db261b63b0ce13ef9f1251da8a6bffde0f170f7c348cacbef8da8cd6c63ec1cbf46b9e2f2240bc1060edc2bb4be400a9b48cb292f940a04523bb463b5d7578c2a89b15cccde8c3ae1b5b7144b41bff564b734d6d06bf5fbadc44bbe90c1a47d226f6a3c605260c51e4a4a1a87b74035086bf7cdede432159b2a858bb969c1a0edc5240478c5f626688c90257848bfcaf7940832121bcdea64d57a968d2f3a685f33f794b46af6d99773712077dea666d302e9680c24a43d9ce3ab1eae47ce663b20eb61b77c8bd965303b1f882159992cfd1697f3db5bc2631c550398512da311d8303775b461269acfc622575940021f0e8f083cb7353410725754da350fec8db261b63b0ce13ef9f1251da8a6bffde0f170f7c348cacbef8da8cd6c63ec1cbf46b9e2f2240bc1060edc2bb4be400a9b48cb292f940a04523bb463b5d7578c2a89b15cccde8c3ae1b5b7144b41bff564b734d6d06bf5fbadc44bbe90c1a47d226f6a3c605260c51e4a4a1a87b74035086bf7cdede432159b2a858bb969c1a0edc5240478c5f626688c90257848bfcaf7940832121bcdea64d57a968d2f3a685f33f794b46af6d99773713491d060b480d2277ac482a18116c2b0acd1df1c0e9efbef30eee71afcca7eb711f9ac5657cdc4686e45af78c4d5f4119758138f39ff1cd2738a1433d20761f8267aa804e96598e51944feeb0d9eebd8e9770699808f77d8146bb47a9a3344ca3f4cb718be32b1291c98d4e23c7a4e21740b2e921e5096323203ea9a4845e9211b2e5ba37de15a3d06059aa96c8150829737f0defefa1f5efbd2f7e17257acb83d64f974d71d67de509f63ef6ba54f1b8b9a0a7c317fa9f6213fa29360efa9803bd2f40d8e34788b54959263b588326a1d5f4036abf64c3c1925df5a8a20724010bfbec9263be0151b27200d2a4b7b93c94b5096e06d8f135092f0c3e6a23f8e194b7597a055b06276b08cffe4d0539d5315f3cedb8bc4f5eb9a7348f30ab774026c3b33d7ec50ad264bceba58da782cad12341200cfa1054d2a99449da48a05151914b17d55e55bf2a9a76b44c3fc325186d6eceaa89d03cf0d2fe380bd44150539a99f24e6498e7914925fd3d51aa4bbee91a91c7ff81b17c836532c31f2f70be96e900d36c5b3584e012836044699b5bc76f90e63a679a6884914c887ee783287704c7cdaa3a6b87bc6f5314475f6ad309a99bc272e5972e0c864fb342bf800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012ccd14d92a0f9b9363cd182c72d6d78f989b2c3d00ac5ace2d8e816194b48e0c30eb631864cfdc31a2368b25478eac1892cfc6ebe95f3874c999cc2bdcd86abb0fee2324568f12ecf3bce067e17322dcc02fcaa376d2befd659de5ddea7e015921cb3db2875461886c0ee787de315915eb465b2cf6e5ca13df9b9cd19ed40832246aae7b1b431e24be441a82a54e45ca2f1a3c90ae2c9cd406c0d4eb22cf09ec1b955184e4bce1db41bbe57d5ab1ba35f32c5c6b5b205c47926c5c01dd30f61536156867884f96b7b754848d3a875cf2a6f5fcdb54451decef69c6bdae0b319a09ea979877b0694848ab7b72c578a30d7b509c20b507db2ea9c36a2f51f4ce670e6b0a05a98df19694a696c224a4d0bcb9b38c588025b132485c1e006637f7fe3194f5fa56720e696b59693ddb5b2f4368930ca3892747e950d112ec99c808030817321c4fc5b7f0e740f1cab73813af7e3b24be776f7cdfd09f6514ff17d7f537e8cde3b03a480f18bf0e3548c7ec50a40b743d91dd7c3bc88dcbd800e8280c246aae7b1b431e24be441a82a54e45ca2f1a3c90ae2c9cd406c0d4eb22cf09ec1b955184e4bce1db41bbe57d5ab1ba35f32c5c6b5b205c47926c5c01dd30f61536156867884f96b7b754848d3a875cf2a6f5fcdb54451decef69c6bdae0b319a09ea979877b0694848ab7b72c578a30d7b509c20b507db2ea9c36a2f51f4ce670e6b0a05a98df19694a696c224a4d0bcb9b38c588025b132485c1e006637f7fe3194f5fa56720e696b59693ddb5b2f4368930ca3892747e950d112ec99c808030817321c4fc5b7f0e740f1cab73813af7e3b24be776f7cdfd09f6514ff17d7f537e8cde3b03a480f18bf0e3548c7ec50a40b743d91dd7c3bc88dcbd800e8280c20fab69d970642acfb5ec8a2abc5444465b0b444d90aafb7924d7bed7c48143807a68843b1e51597ea0705bcd34a39730fe58db8611a4b8e3e932c6d22f71a4f24b4459dcb3bf57ecaab9e344cd9840957583940bcb98d1a06a87753ca78dd0f398083291da8909a63c1f7a398a0375a72668f9747d8ff78341b19882ded12e02ffb0980b1d92e69e34bd072a0ef563ac87907bffbaca1ed542414aee2754ea601ea77a1030f3f3efb99c2dfb7fc0206aefa283c3b1ecab9f5a5c629d07e2772007bf1f8da6a6ca7a3472a0c75110da3bc4dcff3e11c4c535fed193f3ec76b490b2187913365744d524d4e406e29cfeab88c3a59fdee3972c9b904987d9ce0840454bff8e161eb1e50db3a300bd16e2c25bdbcfb2614cc10bcd64e8cb144ffb2202e27152b767ed9dbce78a8a09b6297146a4eb57077431829a9150aafeada1d2beb73bdadca028c6f8763115f1625ccb66a4c23e8396107dd41ff74c3251aa9045432a43daf5ed7c8fb03b986199cb3c21f0f46f451a3d11ba80cadd485af320924ab048258e64985ca5afd04805db29c508015f297eca20000fbf586be69be241ad75981e96ddfa08486b2dc72809c68648651371d9698c324c969569177f500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010d6ac3858e73432e64ab34975b8e0108f888640e3ba4e729ee7b3903d8bb342f20f634a309348c15aa3732aedc4f5dca312f790dcf8a4fc29d27ef50770d6e23233742f342402c5d6d5da4a3691e503f22757d98a8fa2b8b9763486848458b5a3500fda34f4fc7dbdd6aa29758b97277582b94713229a7035a7013df48c26a58167d061a091cbe6fb53239bd3b4d0803a1d7bc7db610da62362ef186623c8a902982f9e5f6e341904acdc642c4b2f7fc806edc7e533c1eb962fe3f669dc3757130711e822d8fb82e89fb20b22881281206f0157885074acf75bd86b2eb2eb4cf0f8ee17dd27047d17604df4dd77ed7ee1b5683838445ae4c236faa3a14d14b323235988ae3ce98e8b1e7a37aca85c859bbdca0667d3d8aba812c0eb797e988080dca67751c3167174e185c85357a37a66669f8958c0f6e6118012235681677f93b0bfab67308fc8b79863165f49ce9c0447b570c564cca51ba54b6cef78fa82504f405498cf703748679ce9a0b63163fddcb41efb3002ec9ded87a1e087057dc167d061a091cbe6fb53239bd3b4d0803a1d7bc7db610da62362ef186623c8a902982f9e5f6e341904acdc642c4b2f7fc806edc7e533c1eb962fe3f669dc3757130711e822d8fb82e89fb20b22881281206f0157885074acf75bd86b2eb2eb4cf0f8ee17dd27047d17604df4dd77ed7ee1b5683838445ae4c236faa3a14d14b323235988ae3ce98e8b1e7a37aca85c859bbdca0667d3d8aba812c0eb797e988080dca67751c3167174e185c85357a37a66669f8958c0f6e6118012235681677f93b0bfab67308fc8b79863165f49ce9c0447b570c564cca51ba54b6cef78fa82504f405498cf703748679ce9a0b63163fddcb41efb3002ec9ded87a1e087057dc2fe3922ca873c162838468ca41d2b126c20f23ed8c8f6ea39eb52c992dde754f3217d362b7ff0d86f7e9427389d9d0d9fe1c87f0ee68d310812357bdbf6acca312a3968db2b796893a52de00944a641251d82bef2ae4da62b85cd653d42eae9b36446919f348dae890318cb52dd74143a3ca07b9d86174c8e83d69cea1adb9821b403371f2a1012840e952dbfe89949b49a1daac6467a8988f6844f75eef342e3e23054270ed13a79518070fa51b1ed82c5208acf28367f028f244ade6330dc41fa87d6b0d993e3c9a1422a538dd2eacbdf7743089b68789326f0b7bc1f2982d12de6db33131621a15e7c7b250760ba15a3a145ae7b5a8f5320b15e4f1b906db2d71f1d35ea3d8c78816622c6524b7459faf044e02e22889564d4948ca50c7ae2045ccca50f80829241c0db60b335fe4fce338903cd2eed7192b6bd30970c9d41032501704d8d68f352d08ed6a87fd9848d66d26040d682bda75fe87613a69012044614dfd6ce647a4628030c55b5be66282a9cd40905d93c841c6905bd1ffef22d2a6858b72d923954db4276c406b2a8b10a7c2aecaa27b0075acc4b9a5040d276b63821ca7fbbb77e8167c71a92aee70f1fbb1d47b116af88f0aa2a2941e830000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001050215f6c627685289c41d462b669e0856a266f406b7ba7e7787b05f1ca21cab3237e0de62931252e900762f0addcf12a9291fa4997bb24a71092c11deed0c342c8c656004dbae2d8b9318dac557b39fec9e7cca760706f80c0d905c6a0d0062052d9c7ef192295f355b0dd1fa0b916e3bb41e8ffbf3396fc014adbe51839ea123abe28b5b974fd6a87f9347a4f9ad511d6701e1a9186eeb0a1126af23c180a41c541d74a468b02957806cb85b0652af04df971a60348a308f1c0a3ddc3e7f5d325b6cb8c9f48f314a7de06638e062954e75d7703ae0385ffffb5f91b2c783320da49347360b70ceb5821f99c71f9d6ad3d0c18bce6cc0bb9931d15b4d387ccf3bc91f9bf1c6cbf6747561ff1c61ecea21796a3d0a7a2e8d34614b117de58ff70436e0640e3934098b8a9e00e39e131600cd2ebefed2ca8e64cbe5db821a700a2aed9e0bb8e1fbd0464ae9fb8de9a0921e44af410f2f0453a131b3a3757bcfcf151261f4471e042fb9b5160472165f6e0401e9bafa1df4c7f7fb7d498a84303223abe28b5b974fd6a87f9347a4f9ad511d6701e1a9186eeb0a1126af23c180a41c541d74a468b02957806cb85b0652af04df971a60348a308f1c0a3ddc3e7f5d325b6cb8c9f48f314a7de06638e062954e75d7703ae0385ffffb5f91b2c783320da49347360b70ceb5821f99c71f9d6ad3d0c18bce6cc0bb9931d15b4d387ccf3bc91f9bf1c6cbf6747561ff1c61ecea21796a3d0a7a2e8d34614b117de58ff70436e0640e3934098b8a9e00e39e131600cd2ebefed2ca8e64cbe5db821a700a2aed9e0bb8e1fbd0464ae9fb8de9a0921e44af410f2f0453a131b3a3757bcfcf151261f4471e042fb9b5160472165f6e0401e9bafa1df4c7f7fb7d498a84303206904f122b74043351594908688b1c44ec222e9438ea5ee9713bff2dc8aae722049446918b5c2355ed130b5585ff686a190d82159c5487c3bb6015c6bc9a559a0d30bc8e4eafdd9d28bdef2d036d9fcf82923f6787180d598f702e8a37ec44150ca9d197e9d63edd9c27ef44ba8e9b7369a5b1ed6cf3b17b3674dadb682927f1063a182516a91903b031a9b46e08eafa09bdcd7fe81f765635d3c4628e01cd970b799aa8be79a2a7a870182d2247b42b5539582575c7afd64271b25bdc94f091080624bc02f2ba952bc81c10bb966c567f2ca808691faced5a5cb83030ba853228c32dca65323b21a71c166e77f2beb47a1c2a0035bd2cafec483a3af556fac62673eece7bf4d4e2b4e0afea43e7f00395945d3baa127ee1f97020467aefd39e050c95382b9ffdd465d6ed74207bf0c1f56fec7cc59ea51203a252a4ff690dde202a33b966c5237bbc5e72a48f8b338248e92e02c0004e6668aee36617a9660513f366f7bd424272e8087a32279cfb9c40736a471655382420259fed4ae9ef81197a630d78dce53af30d404f4d81abf2e4c758e44b7236700855915e2addb03705947276a3fde53431464e9fe52085c426c66ac71e04f120a65c39285e48738700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010e1162fd97b33407b47fde2afcba05b6b82bed949918fc7cdd0cb82879c992b7227f5e6db2517dda3a3fd32e9a59c68fb7e79aaf31657cf045f444b852b7d9942fd0c32a1c9d3c23334e78cd13fb89bc43d261f7baf851faed6803491b649aa43e9acd7fc7dbf6653167c61958912cb1f7cfda4c8015438a1466fe60fa8fe241039438a7b08638840d185421f618150dc0370e0ff389061f5fa0a8c68a2d035b3c6bc7584f79c77bf2e7abde09e7eaf2620f8aec15c3f2fc398c882675d2fca611e51b46729f1a944179a4a9ce786944c113464fc1ad1e9cde234be0b2e110c72e1ae4b98d60e56bbe865b56318796bb613352ac479fda7ebb09e50c4d1eef3a197988603d1b84e547603751085a0e57a319c692bf149ff4bd834a767e6553e22686779fc2e47b1ab89fc8aef7a5f1a87f2cd2694a385926dba9e676819aac1f3f5fa9e13189987a64e1149529c247b60d3a47e1b21a26ac1a63436377faa36900a0561ece7667859b1eeb6ad63db84a150c511a5732d26f7ec9ed8988055c98039438a7b08638840d185421f618150dc0370e0ff389061f5fa0a8c68a2d035b3c6bc7584f79c77bf2e7abde09e7eaf2620f8aec15c3f2fc398c882675d2fca611e51b46729f1a944179a4a9ce786944c113464fc1ad1e9cde234be0b2e110c72e1ae4b98d60e56bbe865b56318796bb613352ac479fda7ebb09e50c4d1eef3a197988603d1b84e547603751085a0e57a319c692bf149ff4bd834a767e6553e22686779fc2e47b1ab89fc8aef7a5f1a87f2cd2694a385926dba9e676819aac1f3f5fa9e13189987a64e1149529c247b60d3a47e1b21a26ac1a63436377faa36900a0561ece7667859b1eeb6ad63db84a150c511a5732d26f7ec9ed8988055c9807abbd0795ce72d377ec9a8a1b9e60b8336a5717d0d4a011f6c5def6f765e48828b1e146e5e25ce03fbed49ffac7ece4cd958fc989baa51def82f5bb177ccbf1096bdb8cb1e45971fdd5d4abd6bf7c5b58d842e620c6e775c527331eb844ee783be2685b238c56899d1873a8e8a6663b0f56f115302a96b62d21358cc9a244c4180000000000000000000000000000000cda795e837cdd6a5970f258e0000001180000000000000000000000000000000cda795e837cdd6a5970f258e000000129778cfe7f9243c1e62fcd1581bfa68e0e8aabce474e017388dd8369939d87d22966fa1fd1fd27c783e642c2344845584073b30f2b6a48f7b905318f280be4a033541fc51b7b437eb0d500dc559879b6578c1a983201dd743e5647890a3a7796011233acd71e10e12debe91f5370aa490224a2ca112842f0259e41be311481070c87f39bbca577af8d5528b02dfc185853351157e7d41d0d1d45221bf6a50f9b089514397327eeba32cd17fd5c6353b668287bf03781a683bd2dd9f1195060f908e8aa29c6c56e57ea2b67cc0ac199a5e2ff076a02fa604db434227397271167263db26cd5c9e777dc91c9c75375a4da5bce6c1c35700d10276d8ab1fe1738bc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013b197ac8f681b178cba572cd2cee566823c8ad53ca6a9256aa104194cef0510423ee695c1ffdf50a23d05371ff3db4360593c5d9a440faeb2072628839c72d2001df6cb348e4a5128471b65497b889e4bca3fdb23db53ac017383d871e6f70f806cc55d09acab1b171ebf338b28803b005a05c9b847e6414591fac8ab9dab5833e45b0d3f2c2471d7a0e8ff3dc7ce4ce6f86177b91d95d9579d2f55f3f76042601ba4f2c0d3db8e285f1700c23831b31b2c0818077739b861f5a3b8dc089fbdb375c7423bdcb63936248cfc34e707807a4841179b40aef7cfc6a07283d4e14ba08a38bdc42349c6c9db7303cb18f87f87dc287825542099e9cc329c4c2b1eb4714ce44b2b4f8f1e0eb6c0ed088325825ad79f3705f02c902895d60153286679e2b31bb4d4b070e1f1493f12f77cda7da74cca58baa4a30190fcfd0d7cd7998632807577d88dcb964991c4a12a8fbb8bc411b2835d1c0f3f115a5af7cfca0061517f8a8827723469b66e3b5ed57044743e12b70c6378c052a83878170035ff9ec3e45b0d3f2c2471d7a0e8ff3dc7ce4ce6f86177b91d95d9579d2f55f3f76042601ba4f2c0d3db8e285f1700c23831b31b2c0818077739b861f5a3b8dc089fbdb375c7423bdcb63936248cfc34e707807a4841179b40aef7cfc6a07283d4e14ba08a38bdc42349c6c9db7303cb18f87f87dc287825542099e9cc329c4c2b1eb4714ce44b2b4f8f1e0eb6c0ed088325825ad79f3705f02c902895d60153286679e2b31bb4d4b070e1f1493f12f77cda7da74cca58baa4a30190fcfd0d7cd7998632807577d88dcb964991c4a12a8fbb8bc411b2835d1c0f3f115a5af7cfca0061517f8a8827723469b66e3b5ed57044743e12b70c6378c052a83878170035ff9ec22cf7a8e71781afd80bd44e06f75d9cd051fabef1eb56ce735013f22a170216000126952516235da51347f21aa9d5468e367e06052894a617632e8b655470bf70c42471a85b17c45010c3e2e6106633a1870d8513b1446ea569e13e45d447ffc104b5cf0cc92c5b82bb82091989b5ea92d6ecc4cd809ea366c79aec71f326ffa07119218ed97c5fbfe0b4f0bfc240e3542bd5163c4d7a7a39cbabbb1152dea301f50bf9c5ed55f47d408d6d4829ca0a50492d975d9c7fb50c5a811e4180f15d106837d50a031adc2572f48a8dae20a09dc2ff7de0c2d1d51a54a145ec8692a472c5d6b4a55fb9d9bb3156954d358fc2d90612be02c40cbbd4defe225a1f8e23e1dd9447aa97f45fc45e8c6c1a8b8a42461d9717a3d09add7c9ce1a0abf52bab60fbdfaddda16f76525e84ffed50035f22e5ddea1fef2e34ee16f683dcdd094633994c49b0768ead5d994fda48bf5e7206f50d05b627e63e41fceee25ff32273021c8a0cc022892e74cdde5316e3d5377f958bf098bea1b58310df42491f0f94a1a699caf90b0815ce921b67c2d9d824251c02a6dd544715cc1f1971c9bd13c8d14f8511415700688482a08c63e64e47b55fde5ab9a3e39c7e5e926a8a9ab0261000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000115eea68d1e2bd2b4364fade4e851d61ad7365e0947c7c0d88ab673914849b73d377eeea9fcdc4dcbcbac90768a799671c9d2c7b85bcbc97cee8b2d5d50a06dee2e89b24171dceefb0f73c9b12885b8ab4af88baba9d5f91271133c4505ad196113422d30ef78777e0718b97fdb5b0654009a35abcb95df4ef0f3f3d8a1d173553d02ddf8a637ca4243b1ba4392d93f3373120e47f4e9f01d5b996fb1bc75a83c02fd220759c835bdbc4e45bc6d26c0ccaf348ab4146308fe3d93c13b438a57c5310e55db3f16f34b5278a351de3e3c00b63fe377a35dcc24654a6ac4ae4c49280ef1aa24c0e90cb4ad875cae21c1c3ff6c06b58465ef2cf733e2c62851b3b6d93547ad483b72c0789c5b309957372c03286ba66214ee11632eec8310677d6dc50ab852b7c48d3f8763a4cf66a8c8d3fcf9daf299f45ee7b86a40addc9882923c0a666269293dc25b0dc7f2feb413dc0f40ffdbfa4372728185e9cb9e057324d535999d96d6c23da4f2380d014bec23f0e146bd01c5da869a1343654efa8cdb2c3d02ddf8a637ca4243b1ba4392d93f3373120e47f4e9f01d5b996fb1bc75a83c02fd220759c835bdbc4e45bc6d26c0ccaf348ab4146308fe3d93c13b438a57c5310e55db3f16f34b5278a351de3e3c00b63fe377a35dcc24654a6ac4ae4c49280ef1aa24c0e90cb4ad875cae21c1c3ff6c06b58465ef2cf733e2c62851b3b6d93547ad483b72c0789c5b309957372c03286ba66214ee11632eec8310677d6dc50ab852b7c48d3f8763a4cf66a8c8d3fcf9daf299f45ee7b86a40addc9882923c0a666269293dc25b0dc7f2feb413dc0f40ffdbfa4372728185e9cb9e057324d535999d96d6c23da4f2380d014bec23f0e146bd01c5da869a1343654efa8cdb2c2c760185232808422bd675dc68c88fa2fa25aa541c347b293e6a01b193ad38392b7c15a5c8a5dccaf33e75bd7716ebd06f3bdb7c105e2ab83a46622e41f92b3b1ee90c8ae9c69e2b70674c218703f6f2065f40f80bdced46efce7db166ac33f30111950151fa7564d8e8b7e258acaf8e3ec62061a3f9d8093785f51843bf586f1dd500863b47c729927d55ec3466e39e997a18ffa146c8afb7eec9c7926b99e236d7cc5cd8ae13e83dedd19210a2b3f87b7339deecc20387b6f0568997c22d842213aee59adbd8ed7cc13bc4bf4abeaf91d4ff2a161902cc556dbdb604916c5627bd43a85873b0ed2ff4749e3820e73271962c3e901f50aeba1604d635cd2a493ebeadfc4cf15e57b924f9966a73fa1d5a093a0cbc60c00ed6f07bab5dc868cb1559b6f899672a19cbf38b4e7d121134dc1163006b2331cbbccb16672ec818113c4fe108bd7108f097cffc121a5b6325e0ef58ad8e3b0a7b63691785318f5c6d2bfbb11f6c555a385474f23629d0bb395308de38cca296f07974493d1f999e261ffcfb86c58670343df12d4ec15c1e3301a31a78bb39559c3f0ade715ae469ab27d833df4d3f0dc1602cb240830a149b4778c2660a6f7a8b6155b706a83e338a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000112a029db4b15eeb396bf4c3c0e6464032dba4c9f591cd734ae99c92ebce8745d0e74dc07f2e0c765b53bd5a9e8ccded77ab9d9174e0fa1b05e70778a1c1939f231d75773485996b0c2ebdc0cf4ba8a3ac7075e880e1909ec0278d40e955b1d771ca03ca957085c49630204111031605e2aa78efc08c959ea4cce6e9f30720916142fbfa54ba90f415cce321fb844d3edc8fccd375fc0fbbaf04d1f5e9689a1872bd0405ab456f0bea331cde047bb2c125949cbc4a98bfd60a8e0118e69765e7a24eebe3a7a4d4c46d006fa9e995823a4caa96918d577f18b18546bebf0b027a21b1141c585b2b3b92ff9056166a7dc5b579d2fe333d5079080d8c5010f4fd85f38a9b72463827d621022e518feb8b237b0c1db8418bdc580474bb9c1b370c628075648db9c7d829defdd1ae701474dc87184bd77f08f339b51e1772b4c8f39d91b5093b5f18c72ea50ae797cf99b7b15eaaee5a45680f712ffc5dd148133dec424af6c4a0e738d15af518683066484ea3797b357b2cc0208996753d87ecc213d142fbfa54ba90f415cce321fb844d3edc8fccd375fc0fbbaf04d1f5e9689a1872bd0405ab456f0bea331cde047bb2c125949cbc4a98bfd60a8e0118e69765e7a24eebe3a7a4d4c46d006fa9e995823a4caa96918d577f18b18546bebf0b027a21b1141c585b2b3b92ff9056166a7dc5b579d2fe333d5079080d8c5010f4fd85f38a9b72463827d621022e518feb8b237b0c1db8418bdc580474bb9c1b370c628075648db9c7d829defdd1ae701474dc87184bd77f08f339b51e1772b4c8f39d91b5093b5f18c72ea50ae797cf99b7b15eaaee5a45680f712ffc5dd148133dec424af6c4a0e738d15af518683066484ea3797b357b2cc0208996753d87ecc213d3d9d000d72a76e20d6b8687807415d47d0c422b094cc1d1f9a10deaf8daff3673f2dfc56a569b232fb0cd164124b4a1e052b4717ad55508e134cb9e5129703ba16cd476b360228fe65b0b9a7056b4e59fa3726f9afd6da459c5518229693f19a04f22585549da1e68539d3d36cdc2659ce51f63b25470aff1ddf5ced5598676b19a18f27e057600c869df33f58814e0c0f589684b7e9c954a2851f68d078b386165e70d81fa89ff379620cc0a77eb1f40a5c5c384f0ff180105cc548ef874c7c06887301806dbc3e19d032ea7e4059720b2a46eebfabb9612a0461482c62782f069905e02e02d8387c19bd3dcbb7baa7d9413faddb8f71dcf9dcb32297f41b612d3e5d8707fecb838d78079e0e2e1bb84a57aa8f0161a99086a1976b2baf64fb31e97f7e1a62f828b9e84050ed2b73fad35c1c170d5cb5aecfbcdfc1301f61453322e8fa845ee3f84ff9597992abf8947a23eb02db9fb1649f92651459092a250c49a1b45ea7f25482a0ac4ed04664e0eee8a9691c7d6901db9aa3abf48ba789168796af202ed7d6d64441efe438e03066abb1ce30edaa9751f0937626387a5b3b2a4af4f3090a24615865f0bab7589741152f134cc0b6c825f3d8b9db24829200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012b92de80b10d8f394dc650c899d2442f2350fe1034c0be9bab98c9656e24db05002ff4a700951079014f57661482059bdc89016c5a0546e30fdea3aefd92717d3989077b58444b28f69e71905d9ba74646bfad362a1ffc540522e45dc0ddca9b286fc5b453cec21a633f5f3b2fe1014038584abc6e37b3f24be1d104397ee665249ce80309109b574d0d81e6e9f37db0b9d02ecec52628a599bf3e5280d438c11b6317fcf6ef64a8b2f27e19160c824f68766a2d4426d075ff6df29a7f2bc7403710880f2d5308b48143898291c174735c83b811c724d904ce61d5c284251bc308ef77f0d2acf74b7ebc767d6e3e8b8cc5c2e0ea42282016cacb5b2a7bdae43e1352a84be29f2b868651af8cd8c7464045783468be8458a9a334691894b98acb2cad57b41d60d47979ae50732738b9bfdcce64934ac8a071f5f8c7d46b467536209d497b6d1bd9a09f986dc03be45f4139126d0faf48c23496d8dc8de79fb5f61f62b68492e4265f6067923fc41ba0bee9342bec5a0436e70254545f18604a0b249ce80309109b574d0d81e6e9f37db0b9d02ecec52628a599bf3e5280d438c11b6317fcf6ef64a8b2f27e19160c824f68766a2d4426d075ff6df29a7f2bc7403710880f2d5308b48143898291c174735c83b811c724d904ce61d5c284251bc308ef77f0d2acf74b7ebc767d6e3e8b8cc5c2e0ea42282016cacb5b2a7bdae43e1352a84be29f2b868651af8cd8c7464045783468be8458a9a334691894b98acb2cad57b41d60d47979ae50732738b9bfdcce64934ac8a071f5f8c7d46b467536209d497b6d1bd9a09f986dc03be45f4139126d0faf48c23496d8dc8de79fb5f61f62b68492e4265f6067923fc41ba0bee9342bec5a0436e70254545f18604a0b3c0068b6d952af884f3c1f7ae5606ad210c494decd7abdea80c4141b5f3364320ef7462e89aac0ab747d6d0c85f890aa963281e1861be3efdaab883c503e59ca02f405a676e0f99f03ea318e0654e1cf38af22a01da38f2197f8d851bf28cea71b9eceb63c35f6cdde95867ce752e536c65a2649c4cb3cc1cd1cf2610977294427014a71a5957c3d28c14e3212bde03f3763685f7cc11533799594ae6321390b35c7f5985639aad0be62a914bdc04ebfc54bc4197e2cf7ba767701e4cb6461472b56da9daf90bea4a3a7c39b77ada38654042d1ead0edf8fb46cf90e1e7e26e420bcc077335f6b276396b34c2ea13b943d7d444e6c603281f734403684b90c70282a2e40c7da0f5821730270248086bcd7baa1ac29d9d8a2de7997d7080a737013434c020a742bddb660be207b21722c5cff3823616acd718fb2882c15765a631f32d27c5c68ab510b6d02b267174416a15cf4b27bdf735e67f026479772658e27bc147602843de5f46746e2bf811d0c2ef23980454e5ddb9089a00e1f1bb4d619081d3c5e4176676a3d2ef9cdc7eed62c551d57be541dac133f1fe032b1979c0dd88c35708dc43de2459ec0dce2dbb9649cde4269491530f8f5d74777f849ab000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000137a947e1c4c0afd632116caa41e73c7fd994e67a157877840d365ade517f872e0ac5d185b1e258f24849f394b09e92cb943351187d2b242b02d6e25bfd45b440269dad10ee8d1b7161c2573b3f0f867014ff7c7fd27876ba5835d9db469eee932a9a3799c7ae984baf20db5d68b7fdadf76605e50f20ce9c7c060bfa7faeab5c2759def81fb4a064e60e51e087dc59e52077c2b7f76d095e5f0fbc787521049918a62107e04b5f9b19f1ae1f7823a61b01ced64411dfefbd3a1d74748adefb6804c15ad89e8721f87e479962a74dc1793b8302a3b93a43850fc71b9349a516fa3b3ea5276178de0781b8669d58b23e86e6c396585012b59689661559b65ae90717c6c63b18a3a9da7765feed4484c75e298f0d329e2351994ee389e0703972e2283939c4e75c5625889a0112bb7b38a1f8b78bc96b29a7824a49a70c8fc68d1f36e1df277b32514454fdfaa25697e4d6ad84a9010d639ee2f1448075311f3e69091e20d884cdaebbab02055da9681b2974c1effafbe95a38a7e8b077cee0c1982759def81fb4a064e60e51e087dc59e52077c2b7f76d095e5f0fbc787521049918a62107e04b5f9b19f1ae1f7823a61b01ced64411dfefbd3a1d74748adefb6804c15ad89e8721f87e479962a74dc1793b8302a3b93a43850fc71b9349a516fa3b3ea5276178de0781b8669d58b23e86e6c396585012b59689661559b65ae90717c6c63b18a3a9da7765feed4484c75e298f0d329e2351994ee389e0703972e2283939c4e75c5625889a0112bb7b38a1f8b78bc96b29a7824a49a70c8fc68d1f36e1df277b32514454fdfaa25697e4d6ad84a9010d639ee2f1448075311f3e69091e20d884cdaebbab02055da9681b2974c1effafbe95a38a7e8b077cee0c19812acd9bfd8eb5891fa2950d9166d6c5704da7e36dee8999df84ecbd043c4bea93fe5fded67744ae60caed44fa5d27bec77f1fc16dc625175eb36ce11ee3bccc8100c915fa51e4beb8f437eacd8b4034e5bc8e5ef3b841247cbce392774e4e2dd307ec680db40ffccc2ab40b590cc792e523f233bde32f6b55eddf86398af242f224873f76fc0aad5a7a7fec3cf49d55e3abeec31933fab9bacd5982572802b912da429b9a1e2119a74df7ca77a5dbdd57588d0efe6db01e287fb70a3bb7483612cde337a7b3c0ef134647820650c6ec7d5c865e563213bee2e943d34813d12542bb5219dd9c2b32a22408678731a30d64d099575cd588d66ee7e5d40520a43e32eacbcb0b294836bcef324243ff56879b7ccc74fe604d5dec5c6f260dfa3b8bb19c79fc3c3a674af714263ca4cc17abc5222cf0d542df1f48859f3308174493404ecc28fa1cbce07df28e781bfcd9b31c7964954ecf0d89e742feeefbc84df05183623b4bedd191fa4c34c4168aa12fbc608db7bfcc4548c26f886a3109403a529b6088278d5e59497691d09d4c60f682558db4f8888deeb613f2d907c708adf2a97f3a5e7e480eec6cbcf02690581c553939a86087ce00b9da69a78d140cb3a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012163288b24bdbaff3f796a23386f63517eb59acb99af98cea6f9a14ee29f9bb32e0f4cdb0e11ac1ac906ddea0a09c201225de585664e48198fefd0cffc080d5a00277a09f31d456c7e0fac0b2281d9f1112e32f430565ff089e227081f401af33db1824beeba4f3d540243bb52645a8f624b0505b6e24e637e8a9754a85b79b21dc6002afc4fa21af61cd54efd8b89c1acf8379388f85b56adbc974410da73342239ffd503b05de509e32ab10274763e754e616880549dc4eb7099a8ef258ccd14de00d6ed8e2a86ce902a8af3b9b0c81c4be3e99a3fd67a3254927a544440022b21ff291271d579316fd5750c464f3805fab5126f0d22a166d89e72abbbbfff28560432a3c6d4a208d0d4b6c2a073e86b34da93f9f237476279ab76a555400917a9fbcd5c392b5df72f2b493d5f8c17b711be680f5ac1d436b385765aaabff809ae14fd32e2272a2c142791cd224389b13479efc5d4291220d8c68a3aaa402a3651eb02cd1dd8d5d3ebd86e32ddbc7671121f0c4378d00978546a62c555bfd71dc6002afc4fa21af61cd54efd8b89c1acf8379388f85b56adbc974410da73342239ffd503b05de509e32ab10274763e754e616880549dc4eb7099a8ef258ccd14de00d6ed8e2a86ce902a8af3b9b0c81c4be3e99a3fd67a3254927a544440022b21ff291271d579316fd5750c464f3805fab5126f0d22a166d89e72abbbbfff28560432a3c6d4a208d0d4b6c2a073e86b34da93f9f237476279ab76a555400917a9fbcd5c392b5df72f2b493d5f8c17b711be680f5ac1d436b385765aaabff809ae14fd32e2272a2c142791cd224389b13479efc5d4291220d8c68a3aaa402a3651eb02cd1dd8d5d3ebd86e32ddbc7671121f0c4378d00978546a62c555bfd722230cc485bbab84940155c0bf0c8401c8a79d237206c0dcff12495b3ba1e4f7390fe01680599f504a043b01c76f876c5364a7c378ebf66a6ce17350f3d49da01761239d4fb718c435abbb5f2cc7dfe5b3f06a28fb937500bda236c456ee8c72239d3c6c76f208cbfc3674abe80a682cf4365a1ed0f2a375e20c939d130c63093326a8eae5cb8cc394796626755008d362208571f503b809042bf2f281364019255871089387996585f21e5758948287caa7f8eecf05b0dbe016608ca343226a35deebbf770653215ed8f66f67e195846f81dcd657970eecc79a1c91cd7bbaf42ed4592094d5c20a37991900b44bf299b57a75103585a46da1c84b9cc43c5b2a020b366090d650d63418d2b8b2d131adcdea24cd8dc90082b38e9135a4161fe111aa4456934d0a33a18aecf69ecb2da187f971ab32db9df2ed956b3bab8b6a820b98ad36f6d806a7d93cd721af2c6030e8270a2f6ef6722444c46242dc8b138432093b59a23225638c9c555772252b48487075855367c67a502d418d6278d517186bfbc0b92bfeee066bcb0ccab67140c06f1a7fa96b4bc2ee1122a1cd4d282635ff6cad3f6af56a5fbde81f504812ceba632de9f88a2085a70e270290b5000d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012e10d6188be05cdda8251c34df2d9ca22dfd109f0154e56f07d6003f38b191841b71e075cf36bd6b3294e909fb835092dbd48882e3c6e6c0fb5a2ccbbc24582627923649fbb50ffd0af0004c95ebb246fffb1c28228bca788c54b6b14fac17df3fa005d6a97a7c8d2ed5576e566c956a71162211e683f888a9424fe89caab7ed1e2f4f5c41ba4a11d00aebf19ff859c45c9a1b36ecfc0bc8ad3a37d40b29fc3821d0b0a3be45b5ee2ff5140e6007a63bc5ac7dc51c50ed52ebf2f918f4d603c916ec8ccd48a3725910369bb81fd9c0d58a75561a8e5248b42fc8b54a37d1ed1629137332b75c8da6efc96447e0263f2a97d142e17afab06769647ba2c82e12eb329ec0026b313bbd51110a989f40c42b92041588be4e726955be59861719a16d0d613ffd94cec442aeeef56760bf3bd4904283734afe86b2436ed766e8e65e943d19c00c17f62ab2955534fb1c43d4d97340a0b79ba150bbe1302cd77380271e02e63ff3e809d54d6aaacb04e3bc2b26af05f8446daba85fb7fd04158c7fd8e31e2f4f5c41ba4a11d00aebf19ff859c45c9a1b36ecfc0bc8ad3a37d40b29fc3821d0b0a3be45b5ee2ff5140e6007a63bc5ac7dc51c50ed52ebf2f918f4d603c916ec8ccd48a3725910369bb81fd9c0d58a75561a8e5248b42fc8b54a37d1ed1629137332b75c8da6efc96447e0263f2a97d142e17afab06769647ba2c82e12eb329ec0026b313bbd51110a989f40c42b92041588be4e726955be59861719a16d0d613ffd94cec442aeeef56760bf3bd4904283734afe86b2436ed766e8e65e943d19c00c17f62ab2955534fb1c43d4d97340a0b79ba150bbe1302cd77380271e02e63ff3e809d54d6aaacb04e3bc2b26af05f8446daba85fb7fd04158c7fd8e31c0b5f214cf6425a96b18a07a569a74bfa53b0b6abdc6390f04c46b3c1c3defa24ccad7658d3fce76b967f9164f4992c9a3a5e58bc031affc824a53fcd5b7fd80b4be4333bed2bd25c32590eb7a4670c482e784ac56040cdabb79588bbedac1b0ae7592f64362eeb6c7da0c74fa53312397567d73678fb7209bb2333079be66233475ae64d7defe0d5ffada663a3f0f30e3097cefae80e133599cf7681e1e6062a4e6df9ca7c2e87bf53a21ce4b833777f7f1e44f270fc1dca81e35497c1dbae0b1c6d120543e436936e95fa43bc68b3b65f1effa6059e337d95e49ae8412f0911acd2f7f68b42d753b5614c8cc1c64b2409747d4b9b759ed949810b46446b4716d122f2ca9976a16f12317dd7b9f68e0ddff6494e4685d559f5ea7dbda7391e2a6c584542264c049ea2e26e1b1c8fb15b30db6adff7b82d319bdf471435b9260fde19bbaa459fb55d624b6611c861459b77cd8f8120d6b8dd53bd583b8c31570e3d03e2e8f6fa44dca59b45727026e0963a6ee5cb4e431bc7017dfb18970ff0222c3d1aecc0f8d3102212122d3fd945e531c8a619be6341fe27bcbc2ffa08c42842d2026435d7415f2a31069373367c7f516ca43e7a03e56e0fe14e9993553b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000113f0439e0427c41bf2e47fbd9609319053d5f6af0ea8369eac16563602e2b6e33718e12439ca82ecaa0cd9f8d799db43158a08ee796e803972b3d5303a5988db1ea0898c9a19aaf9fe684d300ec4c84d4f63b18fbd6ca934a434237a56f0a36d1b20b3e68d4e0f50ee333c8fed67f502ccbf1e2d26fcacb3e22544b5bb4848732042ad6d44b85d8c2e6cf1da18bbb0083196e509bf2b27e7fb20497e0a4cbfab1fbd5292bb47a273d1930e25e7444ff7f0afb3f24a21d1339e0ce76ef5b34056214d63225799d3bce820b9427baa7028b3654738a93dd550b5470d9c337fbe551eb29cdda8662c4317df46bd84558fd76ee151c3600f23cae3e62350cc8041ac2682efabb60122b088a39e4c6a5430cb3c6d32233b9b385c5808e233017eb7a7197d105449fedd4f775c61b395abcf34e5d966d8cdb1c0bf41244eb9fe81485a008eae5a8e05ad72ab32177e13a4f3f7c74e2fbc0e212e7aeca4d838077996403f7151a571fa528d54cde881ec5b0c085af8693ffb2bcaa0ac8858b4f88669c12042ad6d44b85d8c2e6cf1da18bbb0083196e509bf2b27e7fb20497e0a4cbfab1fbd5292bb47a273d1930e25e7444ff7f0afb3f24a21d1339e0ce76ef5b34056214d63225799d3bce820b9427baa7028b3654738a93dd550b5470d9c337fbe551eb29cdda8662c4317df46bd84558fd76ee151c3600f23cae3e62350cc8041ac2682efabb60122b088a39e4c6a5430cb3c6d32233b9b385c5808e233017eb7a7197d105449fedd4f775c61b395abcf34e5d966d8cdb1c0bf41244eb9fe81485a008eae5a8e05ad72ab32177e13a4f3f7c74e2fbc0e212e7aeca4d838077996403f7151a571fa528d54cde881ec5b0c085af8693ffb2bcaa0ac8858b4f88669c106dcffedb22c4e77d8ed497e529531977a2201efff2be98cee73e2ebc342df13364dd1d7f616c318475ba546e39a93b592fb9adb0bdc5703588701952d70c6c81237f319d05ab81aa5bbca31f5e173ee541b4e6aca701512b448911f6f5b009d39d24e3b13b176137675c24434341c29d0daca0d4b50794a8b073a0aae8ca7571cf329bab9b670d0095d183e71880aee2a0befb493be15f73009bae80204efbe3530b26cc20d4b39891caf70150df9705e98ea421ae5b26cf16e8fdddd59bf99075da9215480f251dc912ce901a75f0c7f114709bf2cbee148ac2d79d61e1d1f1054f3532a8c6c8d1f1601dd4cc3d8731b676ebd75f715b6b82f9e6273bba6be24acd20a653dface2729932149d1bfcb9a4a58a0c1b81c40e5fcafe3843509c92352b408d5ff68a7694410471c6370eab5b216228d4570aad27ebca929cc815830d39d3364de4c60fcb4cea0244c19937759c6c39d7b666501ad782ee5ee5c6d0ab9730d5750a1962378aee49724c60264ae62835483fc8a05a0011af39c3d84392d9bb0f4ae0e7b73f9cdbdd049512386b39ffcf7b53d74b01cf90f5b6eb97937732e318680b588ac1835cef0c912c021d7b0449b222b655b312f5a2da7d1b5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000135c8600ce72278173bd0971c118a08ec595f8f03bb96a52a192edd1cfae49f0d37af72aff09ca1b55bf534fcf2f0ab982ef45088b04ad49bbba8879a51d990da1142900518ee9cf3ba120eb84afc3efe786bcea758bd944b16fd6c643f6671c12277aaff7086ecbc3a6e1c7b40634575a3918f9a192304c9ba151bb5c9a49f421c541d74a468b02957806cb85b0652af04df971a60348a308f1c0a3ddc3e7f5d23abe28b5b974fd6a87f9347a4f9ad511d6701e1a9186eeb0a1126af23c180a40da49347360b70ceb5821f99c71f9d6ad3d0c18bce6cc0bb9931d15b4d387ccf325b6cb8c9f48f314a7de06638e062954e75d7703ae0385ffffb5f91b2c783320436e0640e3934098b8a9e00e39e131600cd2ebefed2ca8e64cbe5db821a700a3bc91f9bf1c6cbf6747561ff1c61ecea21796a3d0a7a2e8d34614b117de58ff7151261f4471e042fb9b5160472165f6e0401e9bafa1df4c7f7fb7d498a8430322aed9e0bb8e1fbd0464ae9fb8de9a0921e44af410f2f0453a131b3a3757bcfcf1c541d74a468b02957806cb85b0652af04df971a60348a308f1c0a3ddc3e7f5d23abe28b5b974fd6a87f9347a4f9ad511d6701e1a9186eeb0a1126af23c180a40da49347360b70ceb5821f99c71f9d6ad3d0c18bce6cc0bb9931d15b4d387ccf325b6cb8c9f48f314a7de06638e062954e75d7703ae0385ffffb5f91b2c783320436e0640e3934098b8a9e00e39e131600cd2ebefed2ca8e64cbe5db821a700a3bc91f9bf1c6cbf6747561ff1c61ecea21796a3d0a7a2e8d34614b117de58ff7151261f4471e042fb9b5160472165f6e0401e9bafa1df4c7f7fb7d498a8430322aed9e0bb8e1fbd0464ae9fb8de9a0921e44af410f2f0453a131b3a3757bcfcf049446918b5c2355ed130b5585ff686a190d82159c5487c3bb6015c6bc9a559a06904f122b74043351594908688b1c44ec222e9438ea5ee9713bff2dc8aae7220ca9d197e9d63edd9c27ef44ba8e9b7369a5b1ed6cf3b17b3674dadb682927f10d30bc8e4eafdd9d28bdef2d036d9fcf82923f6787180d598f702e8a37ec44150b799aa8be79a2a7a870182d2247b42b5539582575c7afd64271b25bdc94f091063a182516a91903b031a9b46e08eafa09bdcd7fe81f765635d3c4628e01cd9728c32dca65323b21a71c166e77f2beb47a1c2a0035bd2cafec483a3af556fac6080624bc02f2ba952bc81c10bb966c567f2ca808691faced5a5cb83030ba8532050c95382b9ffdd465d6ed74207bf0c1f56fec7cc59ea51203a252a4ff690dde2673eece7bf4d4e2b4e0afea43e7f00395945d3baa127ee1f97020467aefd39e13f366f7bd424272e8087a32279cfb9c40736a471655382420259fed4ae9ef81202a33b966c5237bbc5e72a48f8b338248e92e02c0004e6668aee36617a9660505947276a3fde53431464e9fe52085c426c66ac71e04f120a65c39285e487387197a630d78dce53af30d404f4d81abf2e4c758e44b7236700855915e2addb0370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001227f5e6db2517dda3a3fd32e9a59c68fb7e79aaf31657cf045f444b852b7d9940e1162fd97b33407b47fde2afcba05b6b82bed949918fc7cdd0cb82879c992b73e9acd7fc7dbf6653167c61958912cb1f7cfda4c8015438a1466fe60fa8fe2412fd0c32a1c9d3c23334e78cd13fb89bc43d261f7baf851faed6803491b649aa417e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d28193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e1110593943781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e20087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e1158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c2a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b69652bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef617e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d28193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e1110593943781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e20087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e1158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c2a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b69652bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033de437650bfe98ec02cf7802101505b5bafdc5235dba1ae2bc0bb0babaeec77000000000000000000000000000000000000000000000000000000000000000008b533ecfd061144a25fc8cb7048305409d63faa91f86a7953364b8c5d1c263500000000000000000000000000000000000000000000000000000000000000003c9377634dc5fad3628cc04b914980af65861bfcc7d40c277ef7069808cb12ac00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010e0a459ae307a012a0648fc4f2b6baeddf0fdf50a03994af3ae9f72e84028ac11ea2fef64c9f29267bd6951891d97aaa1587256239737c749139b02bd379128331f5ba651cf85fed5f9b703b0d4945124336b9ab6913646c5e4339be7bfd7540282a5c796a9727da30709624c424752a77fb4cdaf3d9be5bce462343205dd07d0c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba03012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b05e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df622724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a331d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce0c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba03012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b05e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df622724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a331d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce312cc9aa27390f6d82121b4c5ff201eca0a8b2d71c84376a9f306311f4acc8893038b7caa7bfa85c7fbf171031b5cf9f0f66c15dd37163fa0972b60d2e9cfd0104753f1db54c5f349d475d447636608315b98bbee95b1f27814f4c7a4d1a3a653048def19a18f94914fbec57152ab9793e4540dea414cee909909ad1a82c44e8226f96a0239694c94985fd8422d699d907dbc59d4494aba283543616f587a52b2a231c3690d9c3d72636b4ecbcfd1424dececb3047cf2face6649a077b3b0ca4201999c4eec7662408cc690ea15e40466aba8f4a3bcb7b9a065d9bbc25a082902ad3c09af626c2b0144a6a7c5cffdeea86e22457bbbd0fcd3be7e5886860c680291f4d11b7c484d7e268773d047eef9c3a44e5ee2ff219a50fb1a7ee658e670c3557644874ff502f445add6061ddf4a009b0f59f5acca6f7dd202a13c347830c2cec6726e066468ef9cca66cea5c8d50575028b5bb468da38b02f407ce41ac531a8ad3ab785e38e061488c52f7872debfd85324cf37e7e5c1b09f3bd550dde023adffc93bfab224a897c4223ff9f77bfad0991e1fd558b21ac7043f7394f7bc33080a7619edc472fbc293eb23d89e4a10bc784030aead8ec9f999a2de3fff48f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000106bd3a72dd130e9de46a812d7c9a52183fda259061c5f905831cfae5e26c0dee0d4c31988b1090d1c3465cea676b2734b2b26aeb75348d1352fcaa0cd9861a300dc6a3d82a75152b691a47a53fa4f1d4ea2393628970ded1f7566c6aa4087dbf0feb5b5155ab1899538e4c17a2234c19c5ef8f3867ac655acb803934c5c5bd55189957b6849b67656bcf6964d2f8279c331cdc028c0f5023eef08b6a7b4e45bf2766a8497b64989a9430969b2d07d863ef29bcf97d3da8f7aa3ca58284b1ba423afeb690970904fb1b0d0ef81ed8c60cdd49b310b2ff97981185882768875cba0501496f68f6fb04e4f2f107e12739f344fce5eb564d618387a7a8c59778a34726f990d2f32d18e787414ad89a3bde3fc9561b6359ca1189f2e6e5110aa4cf9e19066f2d0cd2e71878beb52765c421c058f07d98af82e791a6464bdbf55b306302dfd41ebfe17c85a446763b032b573e87dabdfca50b6c5ef2fae68e35380e133d202be1401e837a5bb989c4fcd4a8c19a6bdaff64418cbca6324a5ecac7f1ee189957b6849b67656bcf6964d2f8279c331cdc028c0f5023eef08b6a7b4e45bf2766a8497b64989a9430969b2d07d863ef29bcf97d3da8f7aa3ca58284b1ba423afeb690970904fb1b0d0ef81ed8c60cdd49b310b2ff97981185882768875cba0501496f68f6fb04e4f2f107e12739f344fce5eb564d618387a7a8c59778a34726f990d2f32d18e787414ad89a3bde3fc9561b6359ca1189f2e6e5110aa4cf9e19066f2d0cd2e71878beb52765c421c058f07d98af82e791a6464bdbf55b306302dfd41ebfe17c85a446763b032b573e87dabdfca50b6c5ef2fae68e35380e133d202be1401e837a5bb989c4fcd4a8c19a6bdaff64418cbca6324a5ecac7f1ee2c8dec332a0eb07be2e85bf95e4ac03890d7fb75912b77ba0427fc136619570030f5a887043c2c32cc0ec57b270ef421399ca13b97e54b4f792a052157657ef30744c761362bdbe7773b833b22cf34e3465cc1ebfda0e15aef3b66fb079115f82292dd49cb92f74f66e7f1665b7c6250491256cf9c31655a41ca521258837037285a18dbff54b7c6e5c54077613a3b8b06117c59d53d3ee44e4f0578ce107f0c28d5db5b020c42c7feba021e2697437edb476a146aa9af08bf191f5a6e4390d32a8a0766c0e73aebd9f41489a19b5fb4e621e8c63975fad355c990da1a93021338734a4979e4e8528e9e439e4f541617d14bfa8b2a316ddd1146c396992f2dfc0eb51eb70a4436041858ab9710fc44a0c1dddc0275f623210d3838bbe842827c2edb4d2d9b97e8fe659fc213861028219217e7f281abc13710b8803f8be4036404a954924ab77f87344d13fc41688b33f4ecccf1ea11bfda953bd7a13cd542fc244b4cf4e16ade526852e47cb95417bc77e9d3e34d3932cebdc6e78f3f623cd53828ba7e914bb71f7ccfac0c7e602acfbabee9eb3a028d2777c251ee8efa383805e33efa36170875fb99b1cff33439824d54374d0c4283488aa5f0c01923047d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011786362307b1185337ee6ca38ed654991e5bed3cbc322545ad292858aaf5b8d707f2af4b22c6e2fa0c9fd5030a5992a44cd490ad66559b29a625147a884573cd28376b6b4b2b62d9915bb199d8ef4dc57784edd61a2f03a898a1104c81f69734151ed1b618b704742822fc64f2f56780331f0fc74405a8eb4d2401ee843526501bb21bbab7170e70c6b99ec5718f37fd9cf67834571ad16b92e9316a65c98474244de44548e8f18f3946613a8e70c802855020c7b23227b00643ff829a367b8d0a7a8aa593734833e1a019db37cc17f3cc43270da0ec24e2ac339539fcef96423585755a6c8cb7cc1e5fe624c833e80c560371ee6860d438ecf99bb3031069bf3464b53be14069036820814816fc77c2fd4fc344249cb86d5d01ea21f0adef4a0b9b4ac41ebf96fc97df7eb7e903883d24f6d5b7e4b040ae3c2b46cb0f5210b705f78a2b66420d1108a2866872ee56ce69746c6491dbb5b46c54cef5b365ac6e3a0875d499bdf2eef75d79978d11a931b8d22c97777143672cd861f74c9a53931bb21bbab7170e70c6b99ec5718f37fd9cf67834571ad16b92e9316a65c98474244de44548e8f18f3946613a8e70c802855020c7b23227b00643ff829a367b8d0a7a8aa593734833e1a019db37cc17f3cc43270da0ec24e2ac339539fcef96423585755a6c8cb7cc1e5fe624c833e80c560371ee6860d438ecf99bb3031069bf3464b53be14069036820814816fc77c2fd4fc344249cb86d5d01ea21f0adef4a0b9b4ac41ebf96fc97df7eb7e903883d24f6d5b7e4b040ae3c2b46cb0f5210b705f78a2b66420d1108a2866872ee56ce69746c6491dbb5b46c54cef5b365ac6e3a0875d499bdf2eef75d79978d11a931b8d22c97777143672cd861f74c9a539311ab0617b98f387b692853edbbad3440534fefe20f761e5863091197580993851c71de7f628ed293f3d02cd58aca8a280d14efd5708a48ca6ba2f2b5c360085113daa8ef5b235c3dff368a1500f4526d8fc167282e6ec9e562304abc9dfc33c8066c15e7ad9e05f7cc658e57a8230a048ef44719cc9716dd26c4473c13a2e98807736343ce73ec5036d4242212911fba5d8d7eec6ecd64204987f7ef8e1b2ce12e518ede69ca0c6a3f113c5ed7db1c0435192475a66873360ade7ee6597025d73b313b3a8dcb90293d41cbf6ffd70b1fdd0bda39fef20342f856b28243eef6120659f765fe09e7a1ca181535128d9015f6cfcbc44e18bf66553ab6fd4eba8e600587b29deea1e7a2320758f7169c9647f27335d9ac6f8e68fde17291365892b92ef166ee3456843b324d0730cb3a86f062a0805f98f149d238617d49dcac22ca2d91cd24094b1d024a434230427cf541012b831173fe64d62c6bdf9cc2e8cc7a22b9799db335cd1467d0e4ff10ec6235033df3a4e98b9154ec1493d8314048702dca263c90193f5ba3a8cc08cf81b5cd49c9ac27c58caf929618b7e7b80ba0941ced3a12590978c5ffff475c8d15f35c668caf5174975a5ecfef2ad6032cd67e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010fe70bcdc52ab1bea8e2dcd8de856e34954b11a6db55a2285668a51652ce9ab21c686fb89b444c8f0435ce21bfdbb7546788be0e58af13c048e86329ff3a485a03f5b06cc4398a0eee7d4535015c65a7f64b9ed0fe4a09ad5dc4a50f1c0a23ab10fdc8808341752c0f8222f2079f5baa7776b85c0e8baa3e6bab85fc1b7b23db392fe0c521b0d3013cae90a1574708afd01f83082845c7177f28a9c547495b2606d01f3ade4f2cfec3516f5ea8b8f750522715f3e10732041a048727b8b6a4db1def63d9a8741f062f68d326b4632b6e87832b38a428ff0717168d26646ec7ba22109c26578be0f9d0972cd94b9cd4919ac36dc36523fa148216a3c69b91384715acf3404a449b1eed0c1fc185efd9286102a623223308ec41165fe5f629e6a02a530cbfb5bb64e112f3e03e7a1026d7c143f2d8e719f02f5816d10709d619612c60c0417357079aa13c9ec79daf3dc9c2c6a5b3a1b23381ac42ae90ced1811f139f3fbe8ca8f8655ec361386250c2365f7ff348679ac599ecea825c312e7ee2392fe0c521b0d3013cae90a1574708afd01f83082845c7177f28a9c547495b2606d01f3ade4f2cfec3516f5ea8b8f750522715f3e10732041a048727b8b6a4db1def63d9a8741f062f68d326b4632b6e87832b38a428ff0717168d26646ec7ba22109c26578be0f9d0972cd94b9cd4919ac36dc36523fa148216a3c69b91384715acf3404a449b1eed0c1fc185efd9286102a623223308ec41165fe5f629e6a02a530cbfb5bb64e112f3e03e7a1026d7c143f2d8e719f02f5816d10709d619612c60c0417357079aa13c9ec79daf3dc9c2c6a5b3a1b23381ac42ae90ced1811f139f3fbe8ca8f8655ec361386250c2365f7ff348679ac599ecea825c312e7ee23c14b8dd46bf6801d973ded605a174d96eb14134ef64d701a2542071b42a88e71b3b01d241ff11d2394588569795b5a3e33b9236aea7b57681fbb40ae567f46e288ede07a8526146b6ece029510db9fe4f9e30d7d8ce4bd50d678ecb4dc84d9c1bb15812766fc39121e909ff572cc359cb611f54dd73243fe3b1d732dc77587b1797013207bc3233d77e55155225e45558620183d42d59f64d0284979d1e84a20e8bcabc3211b455fb5a4b3b654c134d6b4fb8cf11fdafbcbf8c0f2d83d82900145ab0bfe1474414e5fd8ed92aaf47728a6cce394340738f5664337b08eb544f39985f7f4292203ac12c8c92f0e6d329acd66f7f33712624e4ed516ddd501d1c30cb837a40322e5216009c8bf9a2cefbcf2677a45c65338d78207b916066b7271cb09e566c2d6f97d2b33b5fec24b74d15575450147a2f270dd6250c888e7fc82283ee9a6be5c0d5bdafe380fb5f970f4c88b946e12fa3c41f2805d81b45741f0718535274bc84e99d4cf11bd5d227e5c5252dedf604eacf744ddf89c1fe55db25556b80634fb1d3947a694073c73f78a54c5e0e85ecff8632438bb12e3b80440000e401f06b4729c1cc7a3b57e2868826dfba9050d1b6c5d16dba551e56e3ab0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001032b672ac0e49382e6995e2b2e34042f605eee546b8ca53b9868be2520ecf0df24c20b7d51ababed47c35ce9aed7b6f2a63f53a24af518a443ca63a2a7cd7fcc2a151cfc2844a5037da02611ec9305e0b6948fab61ac89a241d62d617abde4f50edb8b12d993dcc48bf93989f61a6ba375cf320f71851510708f4e5849e940d8179acb763de9c4f819160df8c8b1a84fb8df5ba0efb47d5944532e22316745ba28653489c2163b07e6e9f207374e57b069673d5b19987bc254da02cace98ba473605f94f3590d8d87d6e45dbeb78498e7a163128a53979a2bc72b5bdf7045ca109fa06b0ca6f27278291ba241487b671a83067d364137f78dcba7b2f08fba3600e1dde8c0bd43c3a73275d4b99596fc7d95491db14eb7bbf4988c901d315cf2131e22173f42bc3c58cd8a2b466a6903848f20720f4617d5c4fa467eb2cea30e0069558bc3b252d243fc4d279febf2ee71c60404b5f4c71a0d67ebc1c1f6d0ba4396aa743c4dad2dbc03b2d860140d11905e658b0aa00877ac2ae74d0e092f45d179acb763de9c4f819160df8c8b1a84fb8df5ba0efb47d5944532e22316745ba28653489c2163b07e6e9f207374e57b069673d5b19987bc254da02cace98ba473605f94f3590d8d87d6e45dbeb78498e7a163128a53979a2bc72b5bdf7045ca109fa06b0ca6f27278291ba241487b671a83067d364137f78dcba7b2f08fba3600e1dde8c0bd43c3a73275d4b99596fc7d95491db14eb7bbf4988c901d315cf2131e22173f42bc3c58cd8a2b466a6903848f20720f4617d5c4fa467eb2cea30e0069558bc3b252d243fc4d279febf2ee71c60404b5f4c71a0d67ebc1c1f6d0ba4396aa743c4dad2dbc03b2d860140d11905e658b0aa00877ac2ae74d0e092f45d06b2ff02768d923920199c026ab517127d95c4cce057487e4f26155032b253c8200dec7b878ab3e6805fa2f1ffabbc7ff4adba8581353d7bce07b093fafbe593007bf1f8da6a6ca7a3472a0c75110da3bc4dcff3e11c4c535fed193f3ec76b490b2187913365744d524d4e406e29cfeab88c3a59fdee3972c9b904987d9ce08421751c7492a7f4daefdd74798085715a3130b4caab2d82e6354c5073f4a30c423cbfac52563c913e3e90215e64f44a09988e140d596509ac0577406803c2e3ae36613bf28559c9975162fcd4f3ef25ab73c83427ccee2ac7bbad66e91d9b2078106a575d3cee30f604bbe7b259ebf018eedf9b52d8f7260e568f3fd860ad3bef1a41f37bc5ce34af0b1d8106849d9614511a386b7fb96e963d0fbc742efc999226b452e36b7cf36f223695cf54e8e081495015884c797cf9c3f0e4a9e643953e30c5f8d000c5418d297e9594e0828dafa0c5526946aa02c4e2a16e7bb51cdce011743bd5c57a8e7e1a9b6b1b2a9687a420d295817b78c071f09aea5f091b74d73dbf32a273ef958323c37f80875860ec2310c0dce4c0b814756db29413520a301da64f2c2b8e1b1705fb27ec4cc76e2f7d384c423687e10abafbfe994d115aac0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001332f131627a24e01f1e7489f7302bd5684e80bb8262032a2ab854cfd539ddf9f1e17e61d936f9748b8c669b7708456a22c552e662849fd2889a3c9f0346c10172ef585027453f51089f9e39226dcf635187793c72884a030e2d48ba61373e7ee2aac1949700351c00b2366f06da13929bf1e0610718a6a065a20658192b2a7cc233b71d5b1b9b94b37ea516b6d81d75713c2f380d31841dd7aeea14e31a9f1291cc48e2a4e4646b4c815ae94927e28a90e83a57b3634b73e1e3e8f9ece560ed83029392c78a09e7817939719238934b31e418f8c0cdf571c344ec4acf851b5cb0fd6c6d3875f6187e86c68e6dc76cb4d0405096ffc6da1ff64de6c4007ae4a3630ce1dde5b23185875e1f37db1ae077f307402c82475c83a3a024499d9988cf40f31e221a4dce7a78a1e0c824e51f880f1d29633e4d730e15f2aec532667730d34069557c7af79ba4d69c1747866257b8b7042f49a65fdd05683c43a3ffac0c10bf96aa838508645b2963e8b8799da8496d656076ee6fb4b42a96cb2c0053f40233b71d5b1b9b94b37ea516b6d81d75713c2f380d31841dd7aeea14e31a9f1291cc48e2a4e4646b4c815ae94927e28a90e83a57b3634b73e1e3e8f9ece560ed83029392c78a09e7817939719238934b31e418f8c0cdf571c344ec4acf851b5cb0fd6c6d3875f6187e86c68e6dc76cb4d0405096ffc6da1ff64de6c4007ae4a3630ce1dde5b23185875e1f37db1ae077f307402c82475c83a3a024499d9988cf40f31e221a4dce7a78a1e0c824e51f880f1d29633e4d730e15f2aec532667730d34069557c7af79ba4d69c1747866257b8b7042f49a65fdd05683c43a3ffac0c10bf96aa838508645b2963e8b8799da8496d656076ee6fb4b42a96cb2c0053f402a7ec2133463687786a3d6da6f64603c5c76ae7a7b94ea9472e074b664b00e7011e0733733a68d6175699e74a14c24218fe3749aa8e236ad740b308fba24068a0463d9290139d0e87c62aabc1b686981af18a36e31f98c3bf3bdc48a2fc5350b19cfe832b68abda9ad581d84909e7cc426c07454ec8235ce196775411bc843013e8cfac0eb91260d612b3986e68ad384b5921fc84dfa9daa494ef4b1ec3ae3ae2cb38ab090b4218007691cf9946757ff4743f7d9b57df82fca384081c1797ef527ba0c8147fe4844a8ef6668d2dd569ed454cb97387302e7142b452a2ef65a3c2200324024e69b70ced70d6d249c0adcdf0349867da0ff2750147c07c241622c21c507ddcad3d9bb62376355518dec00fb51ee15d5a5fb5cdbbc3035489b1c5b28227627ef4cd268cdac5ce6713734b666c5cdb20fffc4fd567ca79a3694c40831ad0f9a7f3e20eb39b6d5595b84ef4f5edaa5ae1eb8449f21e3b1b02316405f1b2e810273de52bbdef62e85b99713926d62edceae20c601d7e0135a51b1016d315729d910b57c6f27a034ebf43837227eec71b311d9dff95a41e0f2bb3b86ad2ba43c5da42fd2f2d91338cb960337d00f55c90227d687baeec5d7d22bbaa10500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010f6d46164db5b5e67bb431a87cf90961b8da2434d20f5deb489e1f4b4853227a12f71cc9b6fa0026e7a643b85b15acee6d4367d36ce4fa3de9b702f84c9437270fb355626f9a7bcca27eb705733290b9ffa4ac3695d4b78bcd05549cc17284b73ae27bf987b9dc8aa9dfc67611893ece9492af68597489f88d48efb3411989f1346195bce13462b2ec5586a702e9417bda372e8f4a90a2e972e33e026a02f9400b9e6a431ecb9d4d13aa7958fd16be84480f6a6cbebc56322649f2ea95fd06c105e7ecb06605ed7e9daba1430e8e476ab9f984dc4f9f4a20d9bb7258120ede3c3a18134f99fa128162545ebcf171b895684d141fb9adaefabf71be94edf121c51d879f71fe1da379145a264f48c76515a1df984d8e1c72a440a93bb85a4a572c2278608e01e25c86eba5d9b0b7389aea806700ae7b3086775883f534a5b5a8d513a61d39f694315d65c2bf8c6be4f96be4d0c78bb3f44afe10f3c8bfc373b3da2c59e2c6096bcea29a3d4073941b06943d75d1705558ae1d8839682d3c8c4c27346195bce13462b2ec5586a702e9417bda372e8f4a90a2e972e33e026a02f9400b9e6a431ecb9d4d13aa7958fd16be84480f6a6cbebc56322649f2ea95fd06c105e7ecb06605ed7e9daba1430e8e476ab9f984dc4f9f4a20d9bb7258120ede3c3a18134f99fa128162545ebcf171b895684d141fb9adaefabf71be94edf121c51d879f71fe1da379145a264f48c76515a1df984d8e1c72a440a93bb85a4a572c2278608e01e25c86eba5d9b0b7389aea806700ae7b3086775883f534a5b5a8d513a61d39f694315d65c2bf8c6be4f96be4d0c78bb3f44afe10f3c8bfc373b3da2c59e2c6096bcea29a3d4073941b06943d75d1705558ae1d8839682d3c8c4c273e2c1c70f1788dd278657d66ca3598829eb5d445d25fdee40e36a87298b8306636f638696b3494e042cc24ef0a03017341a810ea0e7082c785281a0594562fe9106a575d3cee30f604bbe7b259ebf018eedf9b52d8f7260e568f3fd860ad3bef36613bf28559c9975162fcd4f3ef25ab73c83427ccee2ac7bbad66e91d9b207809d8bfebd944e2f7b4da0e84adc98b19a3f6ee9a22a951db74cd7e2c5d95ed3a01c4b99e348afdfd40ba69c835715274d0e31bb3bc6133eab4d89fab5ece5e940782dfca70c9aa594da4e9702e692fcb1e53193fc3645ded8abf4aceae08c0e10a30d303645911520afcd87161e76f5a40a40c659a82c83eed862befbc8dfd4618bd631388308b5ddeae3ed6a97e21a61c31b6bef48f5cbab3a08ccb07dec11f329156e525792f5e9e4de150f7328058980f249a82b84750a7034f1669f53fba1e80937512ccba6b84e635edf3b4f9fc3b88ca110c4d7612d4bad2049221af0f13e552b579009cf78bed13f3c61ffcdcfc40660344420be61b0cf14e750bad89132a0e4ccfdd4dfdc86f0bb5fd290d1603cff81d1e0f7d63498562de4d0ddda3328ee72c2df12cc05efaeddcb75ca090dec35a5ddec9aec45042f143ef51833a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010f63ca87fb6554e5ccdd68f6b077d73a3bb4c5f84b96d2dfe59c58d05137448925147966ab80e921cc3c321a7d7b455142950ee3134e96c2468a4580c5224d922060b993a965e04147611162ef30911181d332b4cc5c8942f0e97b233c0920f40c5b60b0c50986ac5a055ceb11ebefe02922a1cc24c3ac3a94018cc07f765c4d3036b4f581afee8fdf581f5a12018200388315cef6b547c023c21149500f418d0fc94b0a7e50117020a7e0a5edfe7dffe9c3832d1297b15b756b1fa3aff0be74311188cb886fa8cf5cb89cc25a078a00b3bba216b5a37b6de742c3a7904c47be0eee773477905730a347633da5f875ff6e8af6e553a97dadb1ea6d456fb3b8433557abf9aa2e4c0ccf9b0fcbc225b2031bd65f7d704a7dd2b8c63f7ed17d66b30aa8540655d1b3f33064f0343dda4dfd0670397e99027b48e066f16e2e82994e0ab65be052e77c400e074efacabc7a0f021579830c4090af372a79c61773017b3549a41fad1883bff1f8b105354385f120311f78fd0c686c6202b726e88cfe863036b4f581afee8fdf581f5a12018200388315cef6b547c023c21149500f418d0fc94b0a7e50117020a7e0a5edfe7dffe9c3832d1297b15b756b1fa3aff0be74311188cb886fa8cf5cb89cc25a078a00b3bba216b5a37b6de742c3a7904c47be0eee773477905730a347633da5f875ff6e8af6e553a97dadb1ea6d456fb3b8433557abf9aa2e4c0ccf9b0fcbc225b2031bd65f7d704a7dd2b8c63f7ed17d66b30aa8540655d1b3f33064f0343dda4dfd0670397e99027b48e066f16e2e82994e0ab65be052e77c400e074efacabc7a0f021579830c4090af372a79c61773017b3549a41fad1883bff1f8b105354385f120311f78fd0c686c6202b726e88cfe860cbe3279c1e64a1d566b5c1eaac3940ff8145136fe969a8b76b7ecf32aa063480029b70123aa771183f8afbff82ebc0461e4fcc53bc4391374131ff4013f6ace115fcfb7bce18f5e289262aee8f357a54628277812e3ca9015a29d3ff9db660e3296b44d75b1560bfb3a37f7e677f07a0ae7aca8998cfc1967c301167d3ee94f12f1bb436dcb84174a163f64fcecd4d617419b5b0d03da5805ba4e5119e618251987c122e1c28f4154486dfa2c6e7d30c7a3d8cd6511b0dedc34c33364b166a7131323fab31a8c01f5421f08004353bc583a6504b90a2ebd8f60d3134c4d4c3a103cea00be7c9f63fab9dd5ce92d6b4e9abdebe16f5a148b1b925b2340250f8916de7d76c02ffc1562acc4e9394ee1f8aee33b1991c7cd45b6acf0dc81890a81051071e4b70c9e9021cd20cd1c411570ef5a7ce7da3b57c51524e8b5640763120d5a14206bd72e4c59ee12ce24d17cbb6abad0b0e7f806e9ecfe7d3d7fd2b2ad36af78383783435276e5b1d102acbf459a60b9c33ec30101b6dbe4c68fb7094f1a886a8e82f305db0ad742209cb053819275e178bc50a92523b77e92f4d8220c09689f8af9c5ca55aca4267f78c1fff14f2d057e9c29166638ccfe6faf4fed5a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000137af7aa1cbe1bb1aef819ee21e5617a853e144a08d7175e8bf66fe37e830da8a1743ca83d2c6f264edfa924942aa626873670c6075ad9dcecb4a312e6d8a99063141d70caededdc44ddb02dad3381b6cd6d223b15970036990964a1e148f7d9d01662d22cc70b9157b6d911ec7c158ca301840990bb61ce157330a178e654cd72d8b61d7a11876c0b10df40bbdbf6d510442f1c1d50581c29229b652d128da6d12749e285ee7893f4ef20bf4424092af1e03a73a3447775907037a9a2ed7259423b8e936257a51c37545c43ab4bd2294ae7aedd50d349d7a0f48fcd715cc441e1c4716c9da85ae3c8aba3bc54b42dd6b73cbab26fc185ba189e43415ea33bbe3329c8e0ebb6398d14a5cd52587b1ace723d973312f6d212b1a128e596cfd54940d6371f1449c672eb5a32ada784e5318fe6d25cad9dfd7f07f1aa2939302ab6d3d0ec649a8f1fc1673d029bba67860834c6b7501d13aba84b6d534f820f2a6e102f139b6570e03e98c2fd64459879f7cd5db23fa38123e96e257fbf4df0d59202d8b61d7a11876c0b10df40bbdbf6d510442f1c1d50581c29229b652d128da6d12749e285ee7893f4ef20bf4424092af1e03a73a3447775907037a9a2ed7259423b8e936257a51c37545c43ab4bd2294ae7aedd50d349d7a0f48fcd715cc441e1c4716c9da85ae3c8aba3bc54b42dd6b73cbab26fc185ba189e43415ea33bbe3329c8e0ebb6398d14a5cd52587b1ace723d973312f6d212b1a128e596cfd54940d6371f1449c672eb5a32ada784e5318fe6d25cad9dfd7f07f1aa2939302ab6d3d0ec649a8f1fc1673d029bba67860834c6b7501d13aba84b6d534f820f2a6e102f139b6570e03e98c2fd64459879f7cd5db23fa38123e96e257fbf4df0d592010e979751f94570177d2475e520792419b7df3443089c648cd1663390d9f36e003e4284423ab5d3e807bf34d1c1fc4829c7bd3e24771b3efca9f0374f2d0a4751d4151debb909c698a1974bf79d06c98068b8887bc2e4b5acc78cc6e960b93db3378e96abdb61bcbba1d3eabd7fed54d0690575ebb22e24a202a312fe5e0ea87198fc1d3a1c3ff54fa2aedadef70c86b10881bf45feda6e558187a05d26030e2096d8fdc990823e96e676a7a017ead61849f2e60fa6cc8af75caa97de161ff2d22e93a1f40a63561e25197d62f1262da3bb6ca1d5e4292cc264cffd5600b36180fa45d8cac23c643b27ac394666b91eec3ec8b2ce358039e572822d1bd184ab41f4f41787063dbde3fff083b3a9486a3d3dd34d58e4be8a0e0394f0227042c8e1ce97758d8a24a6e060d660308c3c8dabe66ffa56f03b63444904ff575e0e84f3dba94dbfb8bd0dbd2ca9a1eef9dcb9d621b0758bd27556f6569154f8b25bc2930715d12cf5870132067ac1d822bb23746bc136e44f94798ceb83bb9f5a85c7d0301a01494f864fbe98d05bc6bfda7365198fe1486a82386efc7b7c65444331a22345a22e32ba2e1011291d784facf1bb2e80de6a26f748644865c2be40e762100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012c106c75b7bf52c8583141f5aa326f09cf9ab65e81756d04969f03e8d839eddd1a8e9c9a7b2762b1022b7d6073ad76d6c8dd93172bb49b374f17145e6bccd00d34f2c7f3edc87c929cc9d80e186d8e092d17093ca030a7eca7a4a60988a3a6123ef6cf14ca521ddab2b858e3fd0daff72c830a2cb92510050fecebc246eebefd108ed26bfd32aae1dec64c409f2e4f7bca0d4329afb8b868ab60985c9a2f6f702f712d9402cd551e2139b3bf60d1b084583955d2599440b2edcc989065d0909112ca1c1bf1fd566959df7d431be78d6acffbb6d4654ea0efbfb5c8e202ed2d2f2d35e3e40e02a996a62082bce4187295524ae227a3fe582bd977680afd12d2d21df28c8bb9f2b00ec15d724f8b85c315eda3f929f13c2b93255fbb7d0ea1e1ea220d7374460d4ff13ea28db0747a3cea34a29fd21810cd8873cd756ff15e1e1715bcbebaa1bd7049c6d33b8db99ccf6d5fa6abd9a392e7a888844797492969902a4341455e428fb6392cc47246633092c29fed2265ba117310a8e955b6d69671108ed26bfd32aae1dec64c409f2e4f7bca0d4329afb8b868ab60985c9a2f6f702f712d9402cd551e2139b3bf60d1b084583955d2599440b2edcc989065d0909112ca1c1bf1fd566959df7d431be78d6acffbb6d4654ea0efbfb5c8e202ed2d2f2d35e3e40e02a996a62082bce4187295524ae227a3fe582bd977680afd12d2d21df28c8bb9f2b00ec15d724f8b85c315eda3f929f13c2b93255fbb7d0ea1e1ea220d7374460d4ff13ea28db0747a3cea34a29fd21810cd8873cd756ff15e1e1715bcbebaa1bd7049c6d33b8db99ccf6d5fa6abd9a392e7a888844797492969902a4341455e428fb6392cc47246633092c29fed2265ba117310a8e955b6d69671370839169df7b78b5a0148defe6aabaa83c9dc40c669ad15cb7c42f4003f0d5e0db860322eada24619182cc3d7f184094c0baff7c85ce0fb4f3abcd341efef0f1dcb283ae6997a81a070cc0a8a11dd230c4825751baf2e859b6cc284c279042c02b7096af95909d0a65940eb585f38428acbc67a60fb707a1050662c7b25ee2615eb48cba60f760fad6c1501de0fb560356c598e08a8bcc16601651973c3194f1c9ba25298bb2a47028fd555ab4384ede2c52efd68c373bcfe78bc473fe885ba0b7eefa3bd33a06063d5fdebd7b2698e901d739bf10a9bf08b95bff901ce168c1aa3dc4a7c9a46296f02a264dfbf8e14339446b6f5206dc280f8d3cc1f28971523680c80e312eaad8ba1e565e1910affc8fdc68a7c5930635c11f198c94a58c4068b102cc65e61f4d3b05e45dbc588f720fff417da90f3be40e5290c40a269d42a8acabf00e69bc60fc5eb405b1b43866882ab4ed6397070661d4c10b037b0ac071d0507bfebca3770c72d32a1b00e8c008b93ebcf52381505bf2eba9ad4dc1329520e354b361ca126ef5e29ac1fb03b7c22e0ee43538c4f5890484524ef29252345952357801c90a371d147472f85df7e2d47ff60cfa50cbac9c5552db35714000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000115ff16f79f02ea7286df5540edc3987d42c9bf5f2dd0daafd92fff6262c3d7331d365d65b735c1f01b5354414ecf51ad1ed8d5c2929b24f744d46dae2c8983d427bf16530cd2f8ec23fd970aeb0e1ad9f6d11fd31066a1c5994be3d4cc4ffb6702a4b824ead13f0ff2af5bf871ad38d6e5117a3f42a91ea6060e0e1e21eecf09346195bce13462b2ec5586a702e9417bda372e8f4a90a2e972e33e026a02f9400b9e6a431ecb9d4d13aa7958fd16be84480f6a6cbebc56322649f2ea95fd06c105e7ecb06605ed7e9daba1430e8e476ab9f984dc4f9f4a20d9bb7258120ede3c3a18134f99fa128162545ebcf171b895684d141fb9adaefabf71be94edf121c51d879f71fe1da379145a264f48c76515a1df984d8e1c72a440a93bb85a4a572c2278608e01e25c86eba5d9b0b7389aea806700ae7b3086775883f534a5b5a8d513a61d39f694315d65c2bf8c6be4f96be4d0c78bb3f44afe10f3c8bfc373b3da2c59e2c6096bcea29a3d4073941b06943d75d1705558ae1d8839682d3c8c4c27346195bce13462b2ec5586a702e9417bda372e8f4a90a2e972e33e026a02f9400b9e6a431ecb9d4d13aa7958fd16be84480f6a6cbebc56322649f2ea95fd06c105e7ecb06605ed7e9daba1430e8e476ab9f984dc4f9f4a20d9bb7258120ede3c3a18134f99fa128162545ebcf171b895684d141fb9adaefabf71be94edf121c51d879f71fe1da379145a264f48c76515a1df984d8e1c72a440a93bb85a4a572c2278608e01e25c86eba5d9b0b7389aea806700ae7b3086775883f534a5b5a8d513a61d39f694315d65c2bf8c6be4f96be4d0c78bb3f44afe10f3c8bfc373b3da2c59e2c6096bcea29a3d4073941b06943d75d1705558ae1d8839682d3c8c4c273e2c1c70f1788dd278657d66ca3598829eb5d445d25fdee40e36a87298b8306636f638696b3494e042cc24ef0a03017341a810ea0e7082c785281a0594562fe9106a575d3cee30f604bbe7b259ebf018eedf9b52d8f7260e568f3fd860ad3bef36613bf28559c9975162fcd4f3ef25ab73c83427ccee2ac7bbad66e91d9b207809d8bfebd944e2f7b4da0e84adc98b19a3f6ee9a22a951db74cd7e2c5d95ed3a01c4b99e348afdfd40ba69c835715274d0e31bb3bc6133eab4d89fab5ece5e940782dfca70c9aa594da4e9702e692fcb1e53193fc3645ded8abf4aceae08c0e10a30d303645911520afcd87161e76f5a40a40c659a82c83eed862befbc8dfd4618bd631388308b5ddeae3ed6a97e21a61c31b6bef48f5cbab3a08ccb07dec11f329156e525792f5e9e4de150f7328058980f249a82b84750a7034f1669f53fba1e80937512ccba6b84e635edf3b4f9fc3b88ca110c4d7612d4bad2049221af0f13e552b579009cf78bed13f3c61ffcdcfc40660344420be61b0cf14e750bad89132a0e4ccfdd4dfdc86f0bb5fd290d1603cff81d1e0f7d63498562de4d0ddda3328ee72c2df12cc05efaeddcb75ca090dec35a5ddec9aec45042f143ef51833a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010f63ca87fb6554e5ccdd68f6b077d73a3bb4c5f84b96d2dfe59c58d05137448925147966ab80e921cc3c321a7d7b455142950ee3134e96c2468a4580c5224d922060b993a965e04147611162ef30911181d332b4cc5c8942f0e97b233c0920f40c5b60b0c50986ac5a055ceb11ebefe02922a1cc24c3ac3a94018cc07f765c4d04fb4b24afed085c10ac559093db2e4594481b1db23d7460fbf910407b8adaed3b04b4db5012f7a3ef53aa6f6c24d1ba8dfe7dde570f84ba9d3420ac8475251418e877b76fa129cc535dabd2e347e75be56887947b3345e4ebdd514269b646a127178848905ed633aca2542d1cb818a43cde11678e19b336ad4fdfaa9649b9603c8a56952e25d0fda0d45b1e706784cb58c40cea5eb3645d0225655f108f61240375a96ad1da2f025f2ba4e18f987b34c9828c11aa9994be9707cb8def709edd2eb3b0e9e6bd14f42425c798320597f832b9dca3b44d1162a606372752cce5b0114c4f161942eb0bdbda3867cdfa6807ef8cbc5854ffe7b8f326f9c5ad331a5104fb4b24afed085c10ac559093db2e4594481b1db23d7460fbf910407b8adaed3b04b4db5012f7a3ef53aa6f6c24d1ba8dfe7dde570f84ba9d3420ac8475251418e877b76fa129cc535dabd2e347e75be56887947b3345e4ebdd514269b646a127178848905ed633aca2542d1cb818a43cde11678e19b336ad4fdfaa9649b9603c8a56952e25d0fda0d45b1e706784cb58c40cea5eb3645d0225655f108f61240375a96ad1da2f025f2ba4e18f987b34c9828c11aa9994be9707cb8def709edd2eb3b0e9e6bd14f42425c798320597f832b9dca3b44d1162a606372752cce5b0114c4f161942eb0bdbda3867cdfa6807ef8cbc5854ffe7b8f326f9c5ad331a510ae6154752b20435b6a4471c6fdf70d51db143f79e7a2d149f0adccb51d2988100907c67b25f66ca540e553f4c2f50e9425c1bbbab18d99db7ae7bd65e4bc2bb32e2b0b5fc6caa5ef77094557f322829acf08ca57da850357ae90249f088282438311cb7564af8cee29b6f6ea8906390e809c061e62a3e89de6dfe85ef61893705eaffc075b889f1f3bb63360cf2df1da71a4f5568b207dd458205b67d07225a03e5f2cd7d96ffe8b8fa4d2cea78c6c43a0a43173439528230d48be8bd57744521a7955fc7ee4dfa1582e6835fe42a899050b7e615ddd5acd2c17a7b33e5eb290ace91a85a8f3fa3482f6cbea39d35ab9be2369473ab95b6dd5cd29f9c0da9702fb94823ecb512138e358f6f75105aacf0bcaaa8a9836040a37061e0c343fb2f1b0e36037d297ac303debf1fa1c5157242ee901882a9b1b135e6b4b0efb591b532ff6b5f785b64e25d666e153290eb280e20e817b08bc0b38daafb2fbf09c5941f8eca0b21fc0f0e65bfdd084fa065503844c4f87dd8fe0693e5bce630e8b2280ef31017d0a781cbd53a318bba214d2fc8f12c7c45848404eda233c9fec690cd1b5bc161751e27f29352502ead127d77a827e566935a05f82e0dc43e5b4ba93c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010c3a43deb72151a8b87c2fb8e306b65c4a175ebf0af4c5e0ec1284757f1e6fc336285f416c9c7516b9fa6b61b65e5333facf1e86cea9539feb1e05818cd0256d2348f97fc60d3ca26ae34db733a54352a0df49e4f90c124ba893a77fe40ffef81ac0c6fcb94a1c7eacb007d0a1c4b2091be8298ea652439cbea1d5017b82fad400000000000000f02a557c90236a9499cc99d254416d516b13e9ae4a20cefbda8d2aab661fa9509e2751d1de9cc2513ad00fd692ff984f7ac54a4c75df54dc7f6428a01e7dce00573fd62b5ec299b7d10d49afbb6efc661d4e46ed66e55100a6c7e8cfd33e288cfb0bebfee4b4eff486ec7d96501b9481ee57d5fd712a58f97c629ed13d9ce009203956dbcb32809498560eba17a3803062645115c0ace0d459a6477c426accd6831160dda4241ecd8fa52524abe01eb801ecf233f8317976e762858efca24e12721d2814dedf118938e98d6d5c20577d6551a7854daa3a282adb04cb31c69b467a09e92c0d5cd553cace51bc8296d77d93a7c23cfa45f5525d4991885bb85de84820a63217965a9a4483aca816fdf23c4c8e90be186cb6667e486b86d5e9326dd025fb7e6fce94abc09425aad3a0eec1bc6093003fa156f61645e96705a1b087330c0426d4e21fac697e5b30c67d8501366a30ca149c5687d312fe8ae90d060d9c3eb3929a747fb5be7cd8adfd0619e72de7127fa44203c36df5ce80560014db5919d6a5dcaa756811600110fcd2cce5e43c51539b837a076b806aadf149ece3423caa08e8af5d748b18dbb0d46fc89153f8ff842ee8b54b404dc038c91cf2e55d3459989c1c1c8dde0a6aa45c23f0d0c81cfb03bef53a3736df0eadaae16e5b923a765a49b6f96df4e5d12247d4e8b7a3caba5f912a429945eb5b8ff33e0ea2742a7ff293a76b3326304cd7bdb5981cc8a7eaffe18d6acfe6a2624b4efc970a842037c6dbaf342f01cae70705ce06cb9ba95849d750ef7b5a666abff01083de711ab62ef633108c61e719838c16a4654bbb8738ae93cb6d98eff99376db151f292d3d7da843cdc8a217774d0a45a527193db77acb99985354b2f9519b346330df38a430b191aa3494f2cf7582ec4bf20a682982c2bdb275a3c6d87403ffd49b2e1c2a69ad965d953b2a9d697cbe0c4019215c11661e3fc5740fda6b331d8c8be61885196ca15fae41b2e206ec171c0e097b7100ee5d9a6902cdff87f88c50e6ef3232a002b53fb3e64851d7d76c82da5ad5d248ca80bfe23e3acd834680ca02062765614978ef061e869bf6e66f8d7d97bd5d1fd51962f527a9a31381f03774db29b7b0d766665d06e87d096c13cb112d249d2c52328a7dc5c7c3b7efc8ee8b1a3a5fe65e5c80678cef7f616604d3807bc35244352e6e19c5a5d4522e151187853cf128ca02690597d578cd419eaf42d0602bf36374dd5072f75efdfbba23bc1b28d19b1f1f999e30e32fd181d949c5ad4f2d28bd565339341ceba4f1d6c24afa21e61e503705c3f718040d41aa5522b7021620fb8807120cebe1664d36589dfb301c7d80b50a1f736574e0cdcdcb44f82e41dbe9913d7442109d4c13124e15993c6826867af2c5ff69e14c31d9dc566d327a828b04b20d5089f2c29be1e7bc3b29dec269ae6cf4f0e2f20b007eccb5e2c3d81e1f47967a501af30518ff89fa3a25d9a22a6a483e99ee02cd4a51b83b93e5a89c70fad3bd665db18a223da99ff92f47e162ab099383792511995ea526e0b0585b7d584175c08b3c4864e97a89141b6fd80cab95cea4820ecd2a24f9c183a0eaee3b8618d5807d90c2da23a05fe12441ae0c0767d7dc913556f30821cbb62da3afee95e1dd85a24e1fe5df499c251fa81c1c74d7a5d342a1553acc13a130a0894f1554c084aa4be23f08802538a71b013f562007d64ea52f7778c85ef61e25ae24776acb67b324833f99b50ce0262e643ac994d09c4756544245b4b270ba9ee2b0118b07487589d120ac42c4e6380a95f54590e53dc8ae5dd474eec1646396083f341454bd0413320c8801ff08e10021c429c5ba245f4cd60a4e94dd840098f47188c0b895215c6dcdca0b1be013386b92576953060cc81024ce94038585f3dd1cfc6cddeea9e60fec69fe7f3fad03a71b736fc737ceba95777df8cbfe15300c61f5b5ef17c057501e5f2d360b7018270e81e6b031e982f9b8d691f8b227e85f27719d5d629af967a22c4695b738322e8c11f31c3400606ae7e28b121c52c5f9959f6b5b08321dc566dd2f0195743e3200cc920b6e83eae59dd1b27ea8ff0f4f4202fe37ac7e428bd1850147578b0c85b8a2c493f3a4104e40f1d1203f6541f407b5e0229ec2c64139ba0bd3916a20e06c905b56546dfa574eb5ed9f84f751e26ba9ba4351780b8da5d5372c1bee13ff50f5cdefa65ddc0df39ea7c3bcd56992c9ab7b040d3557a59c2e3ca479b72b5237e37183105beecce9df768e7b92eae5f09a0f8931cf4a3fba80970a93141a31919029dde48cb9e91a9d0e79b7f04ef6e7677c50f4da94be595ff57abed40082f0aebc352f389816c847a5fc6f2d100f9bc3221affdbf4ba751d4ae7b6100a34c8c09a6a32ef631d167bdda279371eed14f9b2f252497ae56534c23332e40408ddfd1867b8efa541787082d2bd06341649f03fbf6a0fd6f576175d2305770f951fbee1aac11a4ca00cce8b6ff3645c6527f3bcf34504c4009db5ebc938f50890ddd86533937ae5c702226f0021b937db39993426542db85b935b768f14db041ebe4165010c16e456a6a8425e301420961432f4c80975234bf46a1637d05e21e61e503705c3f718040d41aa5522b7021620fb8807120cebe1664d36589dfb28d19b1f1f999e30e32fd181d949c5ad4f2d28bd565339341ceba4f1d6c24afa084555f718cc7aecbeff486d27a0134486c25632f66f10496a7c089f160d15e00441e8dcad0bdd998ebff90c84c00e4fffcbf4af8f4541ed6945f03a2e6e63ac26068e8eea05768bbf9f8611a8110ae8a155e550668f3c57a72838124ce871701af96512d2587330f51be4fbf271cf2f35491d2d1770fba5067da2a550736a29159e51ae0091c36b36c99850e876c78b71ae1ed0baa005e7b93082ba451ea581351967c1560d9ebcc46a46729b2820d8df952ae823ba45594f9c8884c7fc437429b7b0d766665d06e87d096c13cb112d249d2c52328a7dc5c7c3b7efc8ee8b1a2765614978ef061e869bf6e66f8d7d97bd5d1fd51962f527a9a31381f03774db3a5fe65e5c80678cef7f616604d3807bc35244352e6e19c5a5d4522e151187853cf128ca02690597d578cd419eaf42d0602bf36374dd5072f75efdfbba23bc1b28d19b1f1f999e30e32fd181d949c5ad4f2d28bd565339341ceba4f1d6c24afa21e61e503705c3f718040d41aa5522b7021620fb8807120cebe1664d36589dfb2a557c90236a9499cc99d254416d516b13e9ae4a20cefbda8d2aab661fa9509e2751d1de9cc2513ad00fd692ff984f7ac54a4c75df54dc7f6428a01e7dce00573fd62b5ec299b7d10d49afbb6efc661d4e46ed66e55100a6c7e8cfd33e288cfb0bebfee4b4eff486ec7d96501b9481ee57d5fd712a58f97c629ed13d9ce009203956dbcb32809498560eba17a3803062645115c0ace0d459a6477c426accd6831160dda4241ecd8fa52524abe01eb801ecf233f8317976e762858efca24e12723c6826867af2c5ff69e14c31d9dc566d327a828b04b20d5089f2c29be1e7bc3b301c7d80b50a1f736574e0cdcdcb44f82e41dbe9913d7442109d4c13124e159929dec269ae6cf4f0e2f20b007eccb5e2c3d81e1f47967a501af30518ff89fa3a25d9a22a6a483e99ee02cd4a51b83b93e5a89c70fad3bd665db18a223da99ff92f47e162ab099383792511995ea526e0b0585b7d584175c08b3c4864e97a89141b6fd80cab95cea4820ecd2a24f9c183a0eaee3b8618d5807d90c2da23a05fe106196626c55317668f23ef1387fed5295f5963f25bc587b881773abc252e9f8901c2efb95c46ade50083a9fcbffec856b385f5113651be6476a4ac6d8f68f0821fe7c55a27d12d22b03c31ed8fb0fb05b6484b3949571de9de0ec9ded978ee8708e71b68dfc360eebcdf8e139eac46ca40d9f7ca31a6a288ca4ffb2ca7a9ba7034591ba62c5abeef41bc74e7bccf06e3102121e0a0e5552b7040ddc02e9f73f8165e9dc92a44a338b97769dbc6cfe181412227d83d74f615988c2d7ede7b74fd302c827c471f67d137d565548bb2f7cb7bc628fc4b25084f8cad34a4b724aa11062b689a2742a606fd9fe419a1fd00ad184742eb74685536ffc4bc517615288d30bc2501492e8eea09c080ecc2d170ad0b5d37750b619ac608774dd279f47ee509df0c212b170b3689d19cc714fe3d93ac017966cb057cecc20f29d6ea35e3960021c429c5ba245f4cd60a4e94dd840098f47188c0b895215c6dcdca0b1be0130a95f54590e53dc8ae5dd474eec1646396083f341454bd0413320c8801ff08e101c2efb95c46ade50083a9fcbffec856b385f5113651be6476a4ac6d8f68f08206196626c55317668f23ef1387fed5295f5963f25bc587b881773abc252e9f891fe7c55a27d12d22b03c31ed8fb0fb05b6484b3949571de9de0ec9ded978ee8708e71b68dfc360eebcdf8e139eac46ca40d9f7ca31a6a288ca4ffb2ca7a9ba7034591ba62c5abeef41bc74e7bccf06e3102121e0a0e5552b7040ddc02e9f73f8165e9dc92a44a338b97769dbc6cfe181412227d83d74f615988c2d7ede7b74fd3651075bb5b9de9f92ff5c13e4184eb83ab273f0174d222d2cc3e80b062b52b622293686d8404fde7e07630beeca39799a0fc99aa7f47f4b0bf53d20d1d00b24041ebe4165010c16e456a6a8425e301420961432f4c80975234bf46a1637d05e0890ddd86533937ae5c702226f0021b937db39993426542db85b935b768f14db21e61e503705c3f718040d41aa5522b7021620fb8807120cebe1664d36589dfb28d19b1f1f999e30e32fd181d949c5ad4f2d28bd565339341ceba4f1d6c24afa3dad36f081cc5aac5ab54408a4c73ef46a520b4a2184680d258f5e1593ab9d281dd84350afabf48c8599f807d27a8feed3e4fde787d555e07b253b8f2f84fb883311ddd6ebdbdef739ff70735d2b451a490888f9937232f518591f92617355490a4d1ce3d852e7ba3d44141458d4d1f643c33e132aba3851d22cca816fa5de8d3eb3929a747fb5be7cd8adfd0619e72de7127fa44203c36df5ce80560014db590c0426d4e21fac697e5b30c67d8501366a30ca149c5687d312fe8ae90d060d9c2a557c90236a9499cc99d254416d516b13e9ae4a20cefbda8d2aab661fa9509e2751d1de9cc2513ad00fd692ff984f7ac54a4c75df54dc7f6428a01e7dce00573fd62b5ec299b7d10d49afbb6efc661d4e46ed66e55100a6c7e8cfd33e288cfb0bebfee4b4eff486ec7d96501b9481ee57d5fd712a58f97c629ed13d9ce009203956dbcb32809498560eba17a3803062645115c0ace0d459a6477c426accd6831160dda4241ecd8fa52524abe01eb801ecf233f8317976e762858efca24e127222293686d8404fde7e07630beeca39799a0fc99aa7f47f4b0bf53d20d1d00b243651075bb5b9de9f92ff5c13e4184eb83ab273f0174d222d2cc3e80b062b52b6041ebe4165010c16e456a6a8425e301420961432f4c80975234bf46a1637d05e0890ddd86533937ae5c702226f0021b937db39993426542db85b935b768f14db21e61e503705c3f718040d41aa5522b7021620fb8807120cebe1664d36589dfb28d19b1f1f999e30e32fd181d949c5ad4f2d28bd565339341ceba4f1d6c24afa13bea6f188c9cadbd698cd66d9871b2dc446a54d1231bddcd6c3e5baf2b5bdc43298775f3744ae067dc088f10aa8eca90e2c77d6beb2cd9a908211585862688d26f7c7d2b4a9d0e4e6ea84ef3936184a6085558fb97f3f801dd8428c64dbed7537b7a122b93b7426e1de2c2df2684b08678dfcab64d85e783a2d194a187131ae11ac6bcc11e473d515f4d57d42423fe80d560f082b3deb782bd66baaf3147241390b4da344baee52e53f0946415ca87c43ed3ab0b31c5fc8dcf69f941a0676b439b19213fa1c63e1a04b9c4f4ffb73fd1cb43d7fa6ac3672c8e0a7b52dcb9a47164ed893b1f3293b8950c597ed596582cf9abb67a366ad56c47c853d109d242325d9a22a6a483e99ee02cd4a51b83b93e5a89c70fad3bd665db18a223da99ff929dec269ae6cf4f0e2f20b007eccb5e2c3d81e1f47967a501af30518ff89fa3a2f47e162ab099383792511995ea526e0b0585b7d584175c08b3c4864e97a89141b6fd80cab95cea4820ecd2a24f9c183a0eaee3b8618d5807d90c2da23a05fe132091ca962b3e46a7aa9344bb72bdb47f3712522475e5bc1fb342775afe0311a2d194961c63f93dba5994bebccb5291d12a99069fa23b1a6110864d9dde55d9205fe56c967a900def752cbe03a5098acfdd929628ad3c4422586f2116ecc397a3263faa4dc3458d654198e35fca491b2342d0c8a140db6be7a740fa88c716e050a7e612fb5f48138ea3a4717698c6826f4d9e0098b33204fb5be0ca29df714a30039583fa0aae0ef10f997ac1a12803d3a22d0b349da31d5b9e1cdaf6f23d4512d6d1002d667b4f9a9baca9ac4dd23750fcbc07612b7848d52dfc576e4a15b22193de0b5a086d420029df9be42fb073ff2cab9226d2bb0e75979e2645b3aaafb37b7a122b93b7426e1de2c2df2684b08678dfcab64d85e783a2d194a187131ae26f7c7d2b4a9d0e4e6ea84ef3936184a6085558fb97f3f801dd8428c64dbed7511ac6bcc11e473d515f4d57d42423fe80d560f082b3deb782bd66baaf3147241390b4da344baee52e53f0946415ca87c43ed3ab0b31c5fc8dcf69f941a0676b434f06a06d31829d96ceeaee503790b38c3a95281950b9c25a6955b2cfac5660d1a51330ad2a05d2b750b9802f38c57d8801fd2d1e326ac38b34a61a4b603e3db0bd750ae301f1b8816b6cb90139b75cf5a9930b696898c8033f3e0babefd493f2dd3c0001f328b4494fa6b29243ad0cf72fd979d2cf7d08e2db9ee2b276792ee0c85b8a2c493f3a4104e40f1d1203f6541f407b5e0229ec2c64139ba0bd3916a3e3200cc920b6e83eae59dd1b27ea8ff0f4f4202fe37ac7e428bd1850147578b01c2efb95c46ade50083a9fcbffec856b385f5113651be6476a4ac6d8f68f08206196626c55317668f23ef1387fed5295f5963f25bc587b881773abc252e9f891fe7c55a27d12d22b03c31ed8fb0fb05b6484b3949571de9de0ec9ded978ee8708e71b68dfc360eebcdf8e139eac46ca40d9f7ca31a6a288ca4ffb2ca7a9ba7034591ba62c5abeef41bc74e7bccf06e3102121e0a0e5552b7040ddc02e9f73f8165e9dc92a44a338b97769dbc6cfe181412227d83d74f615988c2d7ede7b74fd1ab62ef633108c61e719838c16a4654bbb8738ae93cb6d98eff99376db151f292d3d7da843cdc8a217774d0a45a527193db77acb99985354b2f9519b346330df38a430b191aa3494f2cf7582ec4bf20a682982c2bdb275a3c6d87403ffd49b2e1c2a69ad965d953b2a9d697cbe0c4019215c11661e3fc5740fda6b331d8c8be61885196ca15fae41b2e206ec171c0e097b7100ee5d9a6902cdff87f88c50e6ef3232a002b53fb3e64851d7d76c82da5ad5d248ca80bfe23e3acd834680ca0206164ed893b1f3293b8950c597ed596582cf9abb67a366ad56c47c853d109d242339b19213fa1c63e1a04b9c4f4ffb73fd1cb43d7fa6ac3672c8e0a7b52dcb9a4725d9a22a6a483e99ee02cd4a51b83b93e5a89c70fad3bd665db18a223da99ff929dec269ae6cf4f0e2f20b007eccb5e2c3d81e1f47967a501af30518ff89fa3a2f47e162ab099383792511995ea526e0b0585b7d584175c08b3c4864e97a89141b6fd80cab95cea4820ecd2a24f9c183a0eaee3b8618d5807d90c2da23a05fe123eeff6b583b5b2496663d8c82d0ca17a76854f03a3d1c3ddb08f7d597940a121a60d9142b3a44583cc3816fa0c25e8d059a734211e6677ff520359907c81b512312af6e775a1a2c3bb928735ca9d58928a107408db046adbd509ef0f990e3d9018e459a993bedd21eb80c07ea867ec3f12a6929628cb7c120fefeff5ffb3a9d00bbc79edd6b7e6ec023e6e1df9acb39198bc13007fecbec6f3f347135e5f79a09fbf1d07933e3b93b0ff7e1a4041d2b1570ef8ccd0e86390060a5e0d734f15a01845246cf54dc560fc11c49c4db389e0e294dc8c455271e1d16f6f268271b620734934ba2fa3ccc34735afc0a061a2596285d9b488ea203da163cb9314cc7a30889f54328ef9d15152b61bbd7e2bdab3cc34abd6ca05a27a5de8b6a16b3442e3a76c25d43d085e4c52f0aa8e27b7d56688d3829e19935b7255671cda7ed0912351967c1560d9ebcc46a46729b2820d8df952ae823ba45594f9c8884c7fc4374159e51ae0091c36b36c99850e876c78b71ae1ed0baa005e7b93082ba451ea581062b689a2742a606fd9fe419a1fd00ad184742eb74685536ffc4bc517615288d302c827c471f67d137d565548bb2f7cb7bc628fc4b25084f8cad34a4b724aa1130bc2501492e8eea09c080ecc2d170ad0b5d37750b619ac608774dd279f47ee509df0c212b170b3689d19cc714fe3d93ac017966cb057cecc20f29d6ea35e3960021c429c5ba245f4cd60a4e94dd840098f47188c0b895215c6dcdca0b1be0130a95f54590e53dc8ae5dd474eec1646396083f341454bd0413320c8801ff08e12ecd796090b3a16047cae5a63d682abfe1119ecadd48386a6fac340c89e6a5e2128ea0abf0b6cc592dc2e9b378176e01908f240dfffbccbf856be0110d6037b03b32bd95a3224f9410fa8bc9716c9665dbff24f0a8ca155ae0939308a87c6dea1fff0ce97e672f1110ff8ba7b5173ce3a8ce1d70a871f20defe87fdb325d11f8165e9dc92a44a338b97769dbc6cfe181412227d83d74f615988c2d7ede7b74fd34591ba62c5abeef41bc74e7bccf06e3102121e0a0e5552b7040ddc02e9f73f82a027b7cafb17a2986ec25b4315dbc8b334aa6b919175298c5d3398d889c9ea836723115fb35172f229b96cca6dca300443b8ca7ab1f9950c62578a728950a151af96512d2587330f51be4fbf271cf2f35491d2d1770fba5067da2a550736a2926068e8eea05768bbf9f8611a8110ae8a155e550668f3c57a72838124ce87170159e51ae0091c36b36c99850e876c78b71ae1ed0baa005e7b93082ba451ea581351967c1560d9ebcc46a46729b2820d8df952ae823ba45594f9c8884c7fc43742ec31319426d5538592d1b5782272b4e32fa9b3d5de7a9d5b6173fd0364cada2108dc4f7c0966ec001f059742c668eba46838f0d8db66b0200d0c0ca55cb513808e71b68dfc360eebcdf8e139eac46ca40d9f7ca31a6a288ca4ffb2ca7a9ba701fe7c55a27d12d22b03c31ed8fb0fb05b6484b3949571de9de0ec9ded978ee8734591ba62c5abeef41bc74e7bccf06e3102121e0a0e5552b7040ddc02e9f73f8165e9dc92a44a338b97769dbc6cfe181412227d83d74f615988c2d7ede7b74fd00482b6f1d56bee6381ba3ce81a7f6d8fc263a69dbedc1ed441f2aefa80ea579227f88fcd6fbadf6af918e17f1a72a83190efd1cd380ada2aeb9425979d99bfa330b7d2d35182aa040f5d6cec6bd3649001e87b969b80c8bf6bd74098daa0e3f1def680f546cbad9cd78a9d48d7b879d8c43ab0d581315bfd2237d43d3006f193e180e7b5f85e9e861905d9bf6b4be8b2ca70f0ce24b2e3e598ae6b83f46deb10c9faaf3f719783f99a381278cea29d9249c3aabfc0f1d02af422486cdd40a441187a0a17c7ee002e72c57503a4213de511c05fded95e02e869524f416adb00c1e4aab13aad98f9020460a667f1990d34ea1145dd24eaedae0a68fe9f5aedff3018e459a993bedd21eb80c07ea867ec3f12a6929628cb7c120fefeff5ffb3a9d2312af6e775a1a2c3bb928735ca9d58928a107408db046adbd509ef0f990e3d900bbc79edd6b7e6ec023e6e1df9acb39198bc13007fecbec6f3f347135e5f79a09fbf1d07933e3b93b0ff7e1a4041d2b1570ef8ccd0e86390060a5e0d734f15a164359b6ca8818f7f7aa1d5e3f92620675fef26c51ae885c9a6f474faf082a13340c1f14a964945e3765c3757225184e989c0d3b82f07dd2ca5a526a34a00f9e09df0c212b170b3689d19cc714fe3d93ac017966cb057cecc20f29d6ea35e39630bc2501492e8eea09c080ecc2d170ad0b5d37750b619ac608774dd279f47ee50021c429c5ba245f4cd60a4e94dd840098f47188c0b895215c6dcdca0b1be0130a95f54590e53dc8ae5dd474eec1646396083f341454bd0413320c8801ff08e12ec31319426d5538592d1b5782272b4e32fa9b3d5de7a9d5b6173fd0364cada2108dc4f7c0966ec001f059742c668eba46838f0d8db66b0200d0c0ca55cb513808e71b68dfc360eebcdf8e139eac46ca40d9f7ca31a6a288ca4ffb2ca7a9ba701fe7c55a27d12d22b03c31ed8fb0fb05b6484b3949571de9de0ec9ded978ee8734591ba62c5abeef41bc74e7bccf06e3102121e0a0e5552b7040ddc02e9f73f8165e9dc92a44a338b97769dbc6cfe181412227d83d74f615988c2d7ede7b74fd1c7a16ba058812af9739f70e41704ac0aedb2307a021dbd336b7f1f821b5a20f2f74d603ed88c37d32ec0d0a94874233d5c1d259e2ed2ca919c8f4c6904ed15c0bebfee4b4eff486ec7d96501b9481ee57d5fd712a58f97c629ed13d9ce009203fd62b5ec299b7d10d49afbb6efc661d4e46ed66e55100a6c7e8cfd33e288cfb3956dbcb32809498560eba17a3803062645115c0ace0d459a6477c426accd6831160dda4241ecd8fa52524abe01eb801ecf233f8317976e762858efca24e127200000000000000a000000000000000690000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020168d2dae5908e276103440583e5e91e00075a90f2175709bf90956381663a353000000000000000100000000000000010000000000000020ca6c56e94dc3db3569b8aa66acc2394bd332e25aca38585f988144d360a7d0d30000000000000001000000000000000100000000000000204bb79970c2fb9ceeb2b3b825d98db63307bfbd367bb0eb605f16caa342d20f42000000000000000100000000000000000000000000000020c897f9cc214e1d82ae3fa75be40cec804be624b41c23e139bfad78e7e7d5fc3b000000000000000100000000000000010000000000000020cca38bcaaeed86d1c037ddb148bba22f6b95749f7f352486d9b2248d154972a4000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000069000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020ea39b356e9304b8cfbf68f82c585a449d32fe7be745ef5611e3ea754f2eabafc0000000000000001000000000000000100000000000000209a0722187a4b5424088f7a2e0ef119365189add036f54ccfbf7f3a122c00608d0000000000000001000000000000000100000000000000203d3437767a18c76c6b3ce58e0eaba9f957fb31192a19e2e3adf0c19d5ac4cda30000000000000001000000000000000000000000000000207fadb498e4408564c5da8cdaf1ddd40a060ac7be00e86d18a70cff218a853e5400000000000000010000000000000001000000000000002015dc39279a52d41ddbcaf227c199cbd51b1f711d661184752155a6495562235a000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000690000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000006900000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020b411a74ff31f1c6ba8fae80bfed498519b3ec18a2eada313acb4f7b7b2997a3b0000000000000001000000000000000100000000000000202780d1d9a2c7592a41e6a59139511ee2aef0d99d9db23fe438898262ea68f128000000000000000100000000000000010000000000000020bd214e04a0d15a2b5ac00a7ad42151c6d124291cbcf919f2a8b5311fd49008470000000000000001000000000000000000000000000000207a18ca5e193aa28605c4cd2e9b219710808aed7388ffc2616a116a897b71ab510000000000000001000000000000000100000000000000205c412ce971308b3c81ea6b705658f52dec02ecb3332ae0a2ccd740263bcc7a7b000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000050000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000000000000000000201630c0ac5b2565ede4810658c226e2e39c077a2aba66ba7b2ed5d0f90c5e94340000000000000001000000000000000100000000000000204447a886401319eabaa837dbf2e6633da15ddf83424342259464f374e35caacf00000000000000010000000000000000000000000000002093a0881cb11f378c3ee374298a66b649fae44fbb2f35e3704ab5f4655c883f85000000000000000100000000000000010000000000000020ca3dc5f22e4573bfae9e4282c195d191a87ba277e564f158302218ee7bcec57300000000000000010000000000000001000000000000002056e5e7ca74faee51ae45c7001256fed2e7e080dcb95a859867c22dcb1608665f000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000005000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000000000000000000002085d04c860ce7329714ccb8f5a6ed3e68d650d8cd359e373154cc9350e22f78c000000000000000010000000000000001000000000000002038f9389965a1255e737eb7b50b266491f8214deee249c7108d209f37a58f6479000000000000000100000000000000000000000000000020159fb7d1dbca35eff1d0f710637a19e2e36d57033adbce658e94920357d85089000000000000000100000000000000010000000000000020ea8b53cd7415ecfb610e991f3187dc70583ec968dd6f325946dad2d066766dd100000000000000010000000000000001000000000000002099796d2366d350a09cad2698ab80419a6869a2524f9cfcc2eb3055449273a24a0000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000050000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000000500000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020995ded890c46801bdf23afb5fafe03801f9b663cfb6e11e534a9dd82b15dd92100000000000000010000000000000001000000000000002067c05032372570f57ce0b0a5709a69faf8cd5b4f4816b0ebfaeebdc5ddb423f3000000000000000100000000000000000000000000000020808c6faf169e8190470dfac9fe647ef5fac0047b66fa4b6fdb48e599786a862f0000000000000001000000000000000100000000000000202ef4e1908e5c1feba751546a1b19b44ec3948b5b79fb15cbc254b6ae858d0622000000000000000100000000000000010000000000000020cf7b4774e00157cbbb3d3167eebc39e16fa993a1f6d067c9342e404e34e33a4a00000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e000000000000007c0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020f349e7cd0f414f4e15dcd0aa1f9c3474dd773d7afa79494e38d5df7e1348af340000000000000001000000000000000100000000000000203d84beb3d3cccdebf4fa1c20444750b03b865d1e0892df7ccd9c59e2399b6d2e0000000000000001000000000000000000000000000000202ecd8753fbd4e9753d3ab5792022235b0d61965948a9802845ac769c195f73920000000000000001000000000000000000000000000000204d5c20971314a886143fcf4f31e5b0fe465897f95edb2ebb496a671eb51686a3000000000000000100000000000000000000000000000020484695c1718ea9babdf0da4a169839654a70d31dfb7bfa030bd34c4fd296f173000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000007c000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000001000000000000002024d6b6bc0cc21691d2a09a710186f2f26b499486e9db0ce373f9d587aa5eaedc00000000000000010000000000000001000000000000002082474f8975f9e61e947359e94818613b5400a925b58a8e9b98a2baa0c4e780dc0000000000000001000000000000000000000000000000202ab79d9f3374ce44e12d2c803ade3b7883c480ea68b516a8844e29d1f144ce230000000000000001000000000000000000000000000000209ef4b79cde573ddf1a1cfe0df94952533f934e8712306ff6e1df26da2304bf2d000000000000000100000000000000000000000000000020eed5635aa9fe26e55ac534a89c39cf891254e6457318ced7e38ad88fc125ecc7000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000007c0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000007c00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000100000000000000201ec5e16e1b6c8278434f422dfd5acdf805b3ad05bf8629d51724f79de41b2dc40000000000000001000000000000000100000000000000206d5173454e4ea2a63308075da3a4dbdf97e7817505d90f43064e9c5604898384000000000000000100000000000000000000000000000020252d0142e29f6f046a2bf2cb488c2f50c948efdf554303dbdc36c746c9b0c6bd000000000000000100000000000000000000000000000020bcd18cc2e0a4ed036f070637e84e56eaa6c50f80555c3785ecb5cd923c93e4870000000000000001000000000000000000000000000000205f345c922e75b5ee09f6a30d4e99bc3797063459fe2e79c3075e31feffa4522f000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000500000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000202803e8a5c4741f7c0d695c19271ea397b47db4f231f512ff774635a50ae6998800000000000000010000000000000001000000000000002048bf88f7b93e2bcd99d8beb87e3ff5b0caf61388116f1938569c63ceebc3378b0000000000000001000000000000000100000000000000201d83882e46f5088affd079555b2c275d2386d81b8b37a98bfd2519fc364a4aa10000000000000001000000000000000100000000000000200bf7ab1c0d308f7966b26422ec6c126e5956a6ce55c01414a62362c696861137000000000000000100000000000000000000000000000020440141033be391d351cbd747235dd0dd8925385fcbdaf63ca3ce8096a77f70ba0000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000050000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000001000000000000002031e983d8252c220c7a157bf0b0e4d009860e59f0f25f27642db8cb4bf7a850c100000000000000010000000000000001000000000000002037442da0052c1e225d8fe6509d79b41db3636261de0513e141c9bffb94d9299f00000000000000010000000000000001000000000000002080791f87519ff3c06a911030e79b46f0075ebfa5b433792d826d53d2916e1fce000000000000000100000000000000010000000000000020a0b86bb2b9ed1d88c1716ee2897d7e5305051401751e458c39f027a27ad7553f0000000000000001000000000000000000000000000000204d271360d6ea5729d441a303230c4b3fd940e15129f6f043ffe200fe1412df3c000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000500000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000005000000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020d479910be32071faca712dc7f28fe9d846b00936dcb0a0c4f47c4f5f2e0d22880000000000000001000000000000000100000000000000203e852866bbd02607edf40a158be12015d6b47315429830d68df7177bfee8d7370000000000000001000000000000000100000000000000203123b1b063eb4477af1095ffa8004b86436aa43d1437d489a673b4afeea9807a0000000000000001000000000000000100000000000000201739593b6adf1df20681bdb468e8cf329b9aaa69ac06a77967055637d4ed0b720000000000000001000000000000000000000000000000204b2589cc642be6064ae59c9496cf16edb00687dfa69b285a43c510b78bfc57d30000000000000001000000000000000100000000000000204bf1e1669389897cdf60a4c21a8ebf7bc19a07905ce2001a19e2353ccbd0bc330000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000480000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020ffb8ea511c9c40bd80c5593dcc9f4a4c7ff81a92f67c57994745128efd1df9e300000000000000010000000000000001000000000000002060646d14fda94fd08e577bdea9fc1a671b1b5d8d53784a28110c0a7d605d91c60000000000000001000000000000000100000000000000202de906415b70ddf320e163f0338d5931f99bb6b0ab8e2c0a4267870082918637000000000000000100000000000000000000000000000020e2cfdef2e013593d17123ff3c49fb968341cf622151374e7b49d49569fdcf51e000000000000000100000000000000010000000000000020e6fbce7ccc80a578a93cc241360a739d0248edab1a37196cc8564d3cea08f1a90000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000048000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000001000000000000002058c1dec639dbc32d7f2479d28995dba824d4bd0381450788ebb3505f857fb6170000000000000001000000000000000100000000000000202140747e5055c2f19a76dc2e3323a6298f108573ca44fbcd516e443b3a3de44d000000000000000100000000000000010000000000000020510be7fbad823f5d64b32d46eca47d66aae275bfc6d23ab17983fe6df6578151000000000000000100000000000000000000000000000020ecb1f059ced073c0f1f4ab430f41a2243331d77e965de85e9fbb5ae14eed25980000000000000001000000000000000100000000000000201e2c25d0355b2435f10a6081fe0d1c18b2bcf5ac219aa03a7bf09921024c667f000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000480000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000004800000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000100000000000000209e8ec1c440731ee12b900a7d926144789fbf836c8dbaf92975c1b6cbc77d8867000000000000000100000000000000010000000000000020550fe6ea252d2938fe077b30927846557ff0ce990d12d10b29d1f5059e93437e000000000000000100000000000000010000000000000020b0e895ff3921662a70c6f86f8a240ccf60a76f0abe4eaeb51fcecb7efc8ff93b00000000000000010000000000000000000000000000002005a7d139ea1c50e2d46ee67598c7cccdfa30f9ddabe7cfc41f5862d2aabb182b000000000000000100000000000000010000000000000020653a458519e3320afef3854df67dd297919d49bad510656792603e8433e203430000000000000001000000000000000100000000000000204bf1e1669389897cdf60a4c21a8ebf7bc19a07905ce2001a19e2353ccbd0bc330000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb9000000000000001e0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020354be51518ac0dd91f26219f17e44719a158cf4fdd100c3f919a3981f113149f000000000000000100000000000000000000000000000020706cc8ac5e50d226053688830a31a7963f67b7a499e16df101a87cea86c1aeed0000000000000001000000000000000000000000000000208d2e2729a32aca8b2598698736e9fb6648f7a570764827ae42629ee8e0b363c40000000000000001000000000000000000000000000000208c23ceb38bdfeb620de2d6414912490a34ad95503da09b70a73e57ca9658817b00000000000000010000000000000000000000000000002067b848c6a8fd93922564ee17c6101e314bbd3846fcea2a0a759b6e14ee53062a000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d000000000000001e000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000100000000000000208ed4ca977c2167441b7cb04831df3ba03526c5d424958138c146503c57800fd100000000000000010000000000000000000000000000002069aa7cd5e7cdb89fd78a6dd640e079eaedaa0682d6b8fc2001514dedf61a381f0000000000000001000000000000000000000000000000202556fe526824a8a26854d8a628546f1d11f4f769eaba5f9e50313c2ef40b6ac4000000000000000100000000000000000000000000000020470c7d58bd807351d8c0392710e22aa86ff411e42398f3719c76ffa4b8e767ed00000000000000010000000000000000000000000000002081a27a248db0076bc7a7f51b5ccf3cf5b9e1c7455e27068c417e64832913ff410000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de000000000000001e0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000001e00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000100000000000000208a4852c9a2e2ff125c8dff77420c484478860d8fffd6d3746e34f8dd76e8c080000000000000000100000000000000000000000000000020d4b28a32e4a10b957b7a88241780fc6d16d6e3d3ddfe5d59dd04e72e1598176e0000000000000001000000000000000000000000000000205b9fe3fd37a8939ed0f64c1508fbb4ab344cb7b357b4cf7e58d097a831ff02ee0000000000000001000000000000000000000000000000209c18548fa45a3788494a882aca7eae1dcec93e21ee89a3ec07d3cc2d92b7a75d000000000000000100000000000000000000000000000020e31eb63203c4c86dcc10bca35f7905f868623039545d8b3017d8c39b9f6116d100000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000040000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000202cac98730dcde3a8d3993db1dca0f1985094bcb603acd679de1f2169353995980000000000000001000000000000000100000000000000204447a886401319eabaa837dbf2e6633da15ddf83424342259464f374e35caacf00000000000000010000000000000000000000000000002093a0881cb11f378c3ee374298a66b649fae44fbb2f35e3704ab5f4655c883f85000000000000000100000000000000010000000000000020ca3dc5f22e4573bfae9e4282c195d191a87ba277e564f158302218ee7bcec57300000000000000010000000000000001000000000000002056e5e7ca74faee51ae45c7001256fed2e7e080dcb95a859867c22dcb1608665f000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000004000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020039944d7b72e0b16c0425a2ee0ea494707e2737847468b67852c75844488e28a00000000000000010000000000000001000000000000002038f9389965a1255e737eb7b50b266491f8214deee249c7108d209f37a58f6479000000000000000100000000000000000000000000000020159fb7d1dbca35eff1d0f710637a19e2e36d57033adbce658e94920357d85089000000000000000100000000000000010000000000000020ea8b53cd7415ecfb610e991f3187dc70583ec968dd6f325946dad2d066766dd100000000000000010000000000000001000000000000002099796d2366d350a09cad2698ab80419a6869a2524f9cfcc2eb3055449273a24a0000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000040000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000000400000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000100000000000000204213b43486f6be4ba1e16835a46a0efc4a75028848343aeb079c1820e6d66e9d00000000000000010000000000000001000000000000002067c05032372570f57ce0b0a5709a69faf8cd5b4f4816b0ebfaeebdc5ddb423f3000000000000000100000000000000000000000000000020808c6faf169e8190470dfac9fe647ef5fac0047b66fa4b6fdb48e599786a862f0000000000000001000000000000000100000000000000202ef4e1908e5c1feba751546a1b19b44ec3948b5b79fb15cbc254b6ae858d0622000000000000000100000000000000010000000000000020cf7b4774e00157cbbb3d3167eebc39e16fa993a1f6d067c9342e404e34e33a4a00000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e000000000000006a0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703000000000000000700000000000000010000000000000001000000000000002002b1b7b579feecea1603adcefe60285831fc1ef6f92fb6df3d3907a02aa5cf36000000000000000100000000000000000000000000000020f4fa51ef0775ff149667acbb46117fb98f6af6f007ff719bcb42b30611e7d5570000000000000001000000000000000100000000000000204bb79970c2fb9ceeb2b3b825d98db63307bfbd367bb0eb605f16caa342d20f42000000000000000100000000000000000000000000000020c897f9cc214e1d82ae3fa75be40cec804be624b41c23e139bfad78e7e7d5fc3b000000000000000100000000000000010000000000000020cca38bcaaeed86d1c037ddb148bba22f6b95749f7f352486d9b2248d154972a4000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000006a000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020729123ca4d9a8d922dabefb9899d58e28f1fb034a770a85cb4b91a1ddc8bcb4a000000000000000100000000000000000000000000000020205cec1b82d9f0d6d449b3229673690e31ff7f138430659da23c7dcf8ba0980b0000000000000001000000000000000100000000000000203d3437767a18c76c6b3ce58e0eaba9f957fb31192a19e2e3adf0c19d5ac4cda30000000000000001000000000000000000000000000000207fadb498e4408564c5da8cdaf1ddd40a060ac7be00e86d18a70cff218a853e5400000000000000010000000000000001000000000000002015dc39279a52d41ddbcaf227c199cbd51b1f711d661184752155a6495562235a000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000006a0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000006a00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000100000000000000208c07a914068e90b61173a77e1b914b00970d53c1e5306d27e793c3698bc15a4e0000000000000001000000000000000000000000000000204810a4d0a61207ded71aeb4fe4fa059d9e3000d4407f432e9ee999ff895079d1000000000000000100000000000000010000000000000020bd214e04a0d15a2b5ac00a7ad42151c6d124291cbcf919f2a8b5311fd49008470000000000000001000000000000000000000000000000207a18ca5e193aa28605c4cd2e9b219710808aed7388ffc2616a116a897b71ab510000000000000001000000000000000100000000000000205c412ce971308b3c81ea6b705658f52dec02ecb3332ae0a2ccd740263bcc7a7b000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000630000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703000000000000000700000000000000010000000000000000000000000000002090a5c0dfecd68b96260de0e176f1daaa0cefbdbbf4bed734ac888093198137f20000000000000001000000000000000000000000000000205217f042c4103dfce290399af2d7f6e91b0303d9374068c157fddf417ac1466c0000000000000001000000000000000100000000000000208898e207f899afef2d8054a80f751d82d7922c515dc762bb6fe3ca09982a4a8c000000000000000100000000000000010000000000000020c333590dcb0e6145e72bd463f743db0abfaeb8772dc580c71cf682d91309ed1f000000000000000100000000000000010000000000000020cca38bcaaeed86d1c037ddb148bba22f6b95749f7f352486d9b2248d154972a4000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000063000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020f750a8df74970bf8b1f2cb625632f0010a1ebd07ceb50b9b55baeca9734481bc0000000000000001000000000000000000000000000000204437135e388dbbc0f4134ea178c5475160607cb1a13f453188a7b6009d99e7d20000000000000001000000000000000100000000000000204760ed6b8f37b8811c4472d07018ef33254862de57fd87fdcb222f78d35c0c3c000000000000000100000000000000010000000000000020231c9cddba9de91f81f082284626d72c840c35a049839db16d0798671da9a94e00000000000000010000000000000001000000000000002015dc39279a52d41ddbcaf227c199cbd51b1f711d661184752155a6495562235a000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000630000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000006300000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000000000000000000205ae1bdb7fd65e5b724a890e024d01cbf17c7d7da4f37a1acf94d982287b552be0000000000000001000000000000000000000000000000209def4bb721745767975c519652187717ac9df39e7dd95f4cf70cc5a58431187700000000000000010000000000000001000000000000002004ce2cc4d87e262ec2f5f995c0158bc7b0330315c341537e2539f463c075a8cf000000000000000100000000000000010000000000000020ccdfc1ce31f7c9c3c299e0c8c2dcba2323cfe7190c2ecab871962f8a14a10c5f0000000000000001000000000000000100000000000000205c412ce971308b3c81ea6b705658f52dec02ecb3332ae0a2ccd740263bcc7a7b000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000380000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020d2b0c172c88804b019623c0ab76fe68968ce29df8d16ea64dfe04da5a9dfac9e00000000000000010000000000000001000000000000002058ca14bea62f02472920c94cef064e2b62a2215697046a17b9b4a72b1f79519d0000000000000001000000000000000100000000000000208b6c0dbf8846167552cf8ae1f5eccfada0c9c12fa603ef04a1bcf5b2d8d640de00000000000000010000000000000000000000000000002038633c23221765310c92698cee8362c0d12200537889693a08f64eb0a28d0eb50000000000000001000000000000000000000000000000204cc7901d510046ae5f98d6b431c2a311cc066cdd794fd6e53cc30587ed00a61e0000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000038000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000100000000000000205540c6210c4ea6250903e6e934550eb8cc7cbf54238f042e0841ae6e6707d79a000000000000000100000000000000010000000000000020c9853024a416fef377cb4d8cfd6cccbacb7c1d28e5d801967cd0793b83fb0d660000000000000001000000000000000100000000000000200e020dc06db87756c28132502389a84e3c64cd7df4b64b8737793c282df50a32000000000000000100000000000000000000000000000020d0aef9b77b039100567fbec3deac5294b41ec41336a21a95a35be851fa112511000000000000000100000000000000000000000000000020f8cfb327d9517742fe31d66ff60129d85a3e464d22188d95a53c32e3132069560000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000380000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000003800000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020adb005fe708243d49b98a809c185d6154f6e4bf420cc455d04d6cf7f7d51661a000000000000000100000000000000010000000000000020b1c646c25625c8766b0fa6a1aff4bd5dc9ee0fc27074f54d2072a3d8cdbf1ded00000000000000010000000000000001000000000000002095a3bea66806a0a16ce3c74b0f3b32494e1345651cb0e438ed2e97385107e3430000000000000001000000000000000000000000000000206916699a45fdfb8384004d89c6a315b17df2f235f5b835b904c0db675c6a94010000000000000001000000000000000000000000000000208f995ec61c2dccbeb9c7fe1f9ab07ecdb151d4c25dee869fcddca0342e9f92e100000000000000010000000000000000000000000000002040fcfc6bb63dbae33d624e3777a816b50ebb7a75c3788096fb31802eed5badf20000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000060000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020cf9c9d36e50f3be003abb72eadda4014f3014d18f065cdcf3718c8ea27781d7f00000000000000010000000000000000000000000000002024dd71f470a74bc9d00007238db817e2951ab47beab380e9dfb9c9bf28a0a90c00000000000000010000000000000000000000000000002093a0881cb11f378c3ee374298a66b649fae44fbb2f35e3704ab5f4655c883f85000000000000000100000000000000010000000000000020ca3dc5f22e4573bfae9e4282c195d191a87ba277e564f158302218ee7bcec57300000000000000010000000000000001000000000000002056e5e7ca74faee51ae45c7001256fed2e7e080dcb95a859867c22dcb1608665f000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000006000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020918cc2cb0516abac2122f4106181be6c4332bef5202829ed0c2504e9d66cd1e8000000000000000100000000000000000000000000000020fa774f7f08a9caf5f4c2a4ec6081fa509a5e34d6de7388ccc80b06493b538fe8000000000000000100000000000000000000000000000020159fb7d1dbca35eff1d0f710637a19e2e36d57033adbce658e94920357d85089000000000000000100000000000000010000000000000020ea8b53cd7415ecfb610e991f3187dc70583ec968dd6f325946dad2d066766dd100000000000000010000000000000001000000000000002099796d2366d350a09cad2698ab80419a6869a2524f9cfcc2eb3055449273a24a0000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000060000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000000600000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020b92604315276e660d69e3d60848b4e1b545ac29935cb28e912408dde71a820870000000000000001000000000000000000000000000000207cdbe844b738198bfa602bed3dba6a064e3e226eb9af5f8121b0f4607ad4f1a5000000000000000100000000000000000000000000000020808c6faf169e8190470dfac9fe647ef5fac0047b66fa4b6fdb48e599786a862f0000000000000001000000000000000100000000000000202ef4e1908e5c1feba751546a1b19b44ec3948b5b79fb15cbc254b6ae858d0622000000000000000100000000000000010000000000000020cf7b4774e00157cbbb3d3167eebc39e16fa993a1f6d067c9342e404e34e33a4a00000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000080000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000204a53f8aa5563a4126d804c8c09573eaf7b11f1737462f4233ee1ca8e79b2fe1700000000000000010000000000000001000000000000002083a2f6a53dbc238e1c7586ea9611e237e37a614bcb4f7768a6898c1690777261000000000000000100000000000000010000000000000020f4788f282cc48569bec74e73b39f71e265eb51ef211aecf4d1a7add0f34d7b1600000000000000010000000000000000000000000000002074c92898599a40af39cc7a4aa694631d7e51488babfa65b017e19bd852de297900000000000000010000000000000001000000000000002056e5e7ca74faee51ae45c7001256fed2e7e080dcb95a859867c22dcb1608665f000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000008000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020c4de5c060dca988bf189eda5c60140625aacd31f1e597b11f25e29b804b060db00000000000000010000000000000001000000000000002090bdc5b63d04a30799f91a7b0908150577b6e9eaf000f749480ce0a150bb2ee3000000000000000100000000000000010000000000000020a52b91bce93e4fa0572db86458eba139088189bddae7d7b79620966038af80c50000000000000001000000000000000000000000000000208f3d18cc0b0da6433287a04f00ac88b64a41656e27ea9ddc94e4472173bebea600000000000000010000000000000001000000000000002099796d2366d350a09cad2698ab80419a6869a2524f9cfcc2eb3055449273a24a0000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000080000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000000800000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000100000000000000205c4f738a9a21105275d4f0008e7a912c3df4e7ab72c42baeb3e0fb0c5eb066a3000000000000000100000000000000010000000000000020e8cf9621ba8ddc6e223761a8d8e7388890bddaf015f6ffb65529064ef2f98608000000000000000100000000000000010000000000000020a4bff191e50d729d30375a40780a8f7b71683f4a524dd1a0f96ceb2b1c3359a1000000000000000100000000000000000000000000000020c00237dc35ffd084252306466001d905dafd040f1eef9871a7001cc4e9b4f108000000000000000100000000000000010000000000000020cf7b4774e00157cbbb3d3167eebc39e16fa993a1f6d067c9342e404e34e33a4a00000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000690000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020168d2dae5908e276103440583e5e91e00075a90f2175709bf90956381663a353000000000000000100000000000000010000000000000020ca6c56e94dc3db3569b8aa66acc2394bd332e25aca38585f988144d360a7d0d30000000000000001000000000000000100000000000000204bb79970c2fb9ceeb2b3b825d98db63307bfbd367bb0eb605f16caa342d20f42000000000000000100000000000000000000000000000020c897f9cc214e1d82ae3fa75be40cec804be624b41c23e139bfad78e7e7d5fc3b000000000000000100000000000000010000000000000020cca38bcaaeed86d1c037ddb148bba22f6b95749f7f352486d9b2248d154972a4000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000069000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020ea39b356e9304b8cfbf68f82c585a449d32fe7be745ef5611e3ea754f2eabafc0000000000000001000000000000000100000000000000209a0722187a4b5424088f7a2e0ef119365189add036f54ccfbf7f3a122c00608d0000000000000001000000000000000100000000000000203d3437767a18c76c6b3ce58e0eaba9f957fb31192a19e2e3adf0c19d5ac4cda30000000000000001000000000000000000000000000000207fadb498e4408564c5da8cdaf1ddd40a060ac7be00e86d18a70cff218a853e5400000000000000010000000000000001000000000000002015dc39279a52d41ddbcaf227c199cbd51b1f711d661184752155a6495562235a000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000690000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000006900000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020b411a74ff31f1c6ba8fae80bfed498519b3ec18a2eada313acb4f7b7b2997a3b0000000000000001000000000000000100000000000000202780d1d9a2c7592a41e6a59139511ee2aef0d99d9db23fe438898262ea68f128000000000000000100000000000000010000000000000020bd214e04a0d15a2b5ac00a7ad42151c6d124291cbcf919f2a8b5311fd49008470000000000000001000000000000000000000000000000207a18ca5e193aa28605c4cd2e9b219710808aed7388ffc2616a116a897b71ab510000000000000001000000000000000100000000000000205c412ce971308b3c81ea6b705658f52dec02ecb3332ae0a2ccd740263bcc7a7b000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb9000000000000005e0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020cfee36186406a9069377272e4f8d4c7b102c3cca4d30981acfcfd0ed4ba7846100000000000000010000000000000000000000000000002091f87159cb7ef9c51ade2808531bfc2fc6514c9f6cfea7e8bbe97aafa477d16f000000000000000100000000000000000000000000000020f476b958e87db8a02656f8467c6e5e45d866f25792959994b010cfab414a683f0000000000000001000000000000000000000000000000204ad6dc0cd0533f78182e33f1a845ac02537dc3fd9cd6a8afe705ed7185762a5c000000000000000100000000000000000000000000000020440141033be391d351cbd747235dd0dd8925385fcbdaf63ca3ce8096a77f70ba0000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000005e000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020036eeb3b83cb4ee9a123777daa92731be89d2fbf275a9402b3994dfed28f5c75000000000000000100000000000000000000000000000020de7e1aedd16874ba4da3786e9ec2e855e1fa1ddf8e3a39472a92f48313c40e610000000000000001000000000000000000000000000000200465cea58d937eb0fdb98fcaf6de41b5bc5a9ef8128bb64c6d5c79fe8b30bd02000000000000000100000000000000000000000000000020241e42aeb3c798b84ad9a34ccc6b26a5fb12fe91536ea9394f0e34b50690f3390000000000000001000000000000000000000000000000204d271360d6ea5729d441a303230c4b3fd940e15129f6f043ffe200fe1412df3c000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000005e0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000005e00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020fecae12ed4ded4cd8d4129d1c259318a374af063bdb821cc85b8a66125ec77870000000000000001000000000000000000000000000000204fa4ea9eee7f4826a051f13cea287aff6631d277919dfca5d8b58864817bfbdb000000000000000100000000000000000000000000000020bfc3833208072c06854906543f4c49a3ddc86f212ff116bde59fa27acaae0ba0000000000000000100000000000000000000000000000020196600714e2413375e79dfb52d0da692a476ee202a5b16a99a81d9e03b5b4da30000000000000001000000000000000000000000000000204b2589cc642be6064ae59c9496cf16edb00687dfa69b285a43c510b78bfc57d30000000000000001000000000000000100000000000000204bf1e1669389897cdf60a4c21a8ebf7bc19a07905ce2001a19e2353ccbd0bc330000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000210000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000000000000000000206911474270af54569299e2b38bfca119940ca8e6befd5cf0687b80e83731cbe80000000000000001000000000000000100000000000000201bed00a56dc7259f610c8a84317e61f276a3c9ecc32f9c93c61e9dd15cc5662d000000000000000100000000000000010000000000000020dda255470d0e3d9d6cdaa2fb7a505f6c7a4e24ad53cf261ae845d526ff84b25a0000000000000001000000000000000100000000000000205174f398ccc856cdbbef4aa77674b4b7eef12d39c064ad97e2c59fc16b229eba0000000000000001000000000000000100000000000000205d77fe2ccf9c9f8603070bd03123cd3455d47968e542db3d55abf5cd35b03d050000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000021000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020c5df72502aa22365c72e985da3516944058b38439156c5f80c6b65c6808d292700000000000000010000000000000001000000000000002000bb2662d809d1a3d8ced486506545d79aaab6a75ff37f7a36559dbd45ceb3d5000000000000000100000000000000010000000000000020635786b3451c8fcd72df2a7f9875620e9c4a9d61248ed35461e4ea6478f57b52000000000000000100000000000000010000000000000020a88fc00e48cff7ada818659ce1afb1d48fbf00ea30b15d29f469922cbe8e2d8c000000000000000100000000000000010000000000000020e7444cc161f3e7f01cf05762fb0fb97caf4bc92619aabc44b759df970816cdad0000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000210000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000002100000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000000000000000000206f5a88c1680575ddb4b73146e3334845431f7f4136074115cbd6fc0f22251c5300000000000000010000000000000001000000000000002003af2d3611ff90e0411cef9b07a8fa1ec04ee0432da0e3fe4d15751716d34dc50000000000000001000000000000000100000000000000200abf6089aab5b5799edf278c4c455edcc58bb48a6b4a77784f5c0229cd8031a9000000000000000100000000000000010000000000000020738ec93c8a9b7a0f5985915570b5f09db8fea468f04aef909e23d781767e0ee800000000000000010000000000000001000000000000002080f4c94164dc4597576888e1e7dfeeb82efbc11ac8b5ecc2b2df1058b8fa2b0500000000000000010000000000000000000000000000002040fcfc6bb63dbae33d624e3777a816b50ebb7a75c3788096fb31802eed5badf20000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000540000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000208c29f50c6a921e6c039421dd22522be89566bbd3b7a80fccac2bef837aaed014000000000000000100000000000000010000000000000020ae061b5194494d30b474e8ca84e30311d10fe173845210baede494005bcff504000000000000000100000000000000000000000000000020f02df779af74ece096b6b51019afda9aad006f692c3013a0d59e0d28d8c8933d0000000000000001000000000000000100000000000000200bf7ab1c0d308f7966b26422ec6c126e5956a6ce55c01414a62362c696861137000000000000000100000000000000000000000000000020440141033be391d351cbd747235dd0dd8925385fcbdaf63ca3ce8096a77f70ba0000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000054000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020bb5840b7a1b74f62bf274503506ad5438c0bc38e0c13ac476a270efd5f90e55d000000000000000100000000000000010000000000000020820cb12153954ed792168965679b90767ca6c7b93ae2a29fe9a015e858cbf22d0000000000000001000000000000000000000000000000206c2f42e175bc59959c539065448f0c9c2f330f12deb5a78d2b4137394d93105c000000000000000100000000000000010000000000000020a0b86bb2b9ed1d88c1716ee2897d7e5305051401751e458c39f027a27ad7553f0000000000000001000000000000000000000000000000204d271360d6ea5729d441a303230c4b3fd940e15129f6f043ffe200fe1412df3c000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000540000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000005400000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000100000000000000202d6c8553b3e39fa54fc4cbf1354ba1408549df83fd042d0921607e3284a4e2880000000000000001000000000000000100000000000000205a60431b036f2e867ddbf1571fde9158d1f41587974cc7a493865e5538159c9d0000000000000001000000000000000000000000000000208db6406dc1712292fe2ebc129fce00ffcb3097dbc760b312a755c402f977e3470000000000000001000000000000000100000000000000201739593b6adf1df20681bdb468e8cf329b9aaa69ac06a77967055637d4ed0b720000000000000001000000000000000000000000000000204b2589cc642be6064ae59c9496cf16edb00687dfa69b285a43c510b78bfc57d30000000000000001000000000000000100000000000000204bf1e1669389897cdf60a4c21a8ebf7bc19a07905ce2001a19e2353ccbd0bc330000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000610000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000000000000000000204fd16afe54ef0980c4de5a597f7fb006c9544966a7aecc8e50b76c962ea05bd8000000000000000100000000000000010000000000000020d2e2ba3fc80ee026557e5bfcac4bed00ed62af39a123d3ee482cbd1a0959035c0000000000000001000000000000000100000000000000208898e207f899afef2d8054a80f751d82d7922c515dc762bb6fe3ca09982a4a8c000000000000000100000000000000010000000000000020c333590dcb0e6145e72bd463f743db0abfaeb8772dc580c71cf682d91309ed1f000000000000000100000000000000010000000000000020cca38bcaaeed86d1c037ddb148bba22f6b95749f7f352486d9b2248d154972a4000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000061000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000000000000000000002043fecb6bbbc6c1fcc79d4b34116f29f10cdf12228fb5d4290369e89f0a49cd0800000000000000010000000000000001000000000000002040aaa91a76e76b209d5782919ffbac0c1b40c4d4763b7179e423c793cda2a3080000000000000001000000000000000100000000000000204760ed6b8f37b8811c4472d07018ef33254862de57fd87fdcb222f78d35c0c3c000000000000000100000000000000010000000000000020231c9cddba9de91f81f082284626d72c840c35a049839db16d0798671da9a94e00000000000000010000000000000001000000000000002015dc39279a52d41ddbcaf227c199cbd51b1f711d661184752155a6495562235a000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000610000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000006100000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020b60f00ac5aa100ed487f252c5f57453032591b4ad2b2358b7e4b2b5bf8116b1a000000000000000100000000000000010000000000000020be3c304600dee094ac7b11b22bc4c6940552fbc5f077a7e24a4a568ea0b7540d00000000000000010000000000000001000000000000002004ce2cc4d87e262ec2f5f995c0158bc7b0330315c341537e2539f463c075a8cf000000000000000100000000000000010000000000000020ccdfc1ce31f7c9c3c299e0c8c2dcba2323cfe7190c2ecab871962f8a14a10c5f0000000000000001000000000000000100000000000000205c412ce971308b3c81ea6b705658f52dec02ecb3332ae0a2ccd740263bcc7a7b000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000580000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000202504fee8f8249bef96af776eb332ba5c279d4b5faf52698ab16b566b360cf4c4000000000000000100000000000000010000000000000020f695333810f417c070461250ef73e1b8af356539b9aab8a34ce18f20f526b8fd000000000000000100000000000000010000000000000020a2108799ba60b14b4528e026d0f575f797028a9469cdfbc41cf7cb8c648a846a0000000000000001000000000000000000000000000000204ad6dc0cd0533f78182e33f1a845ac02537dc3fd9cd6a8afe705ed7185762a5c000000000000000100000000000000000000000000000020440141033be391d351cbd747235dd0dd8925385fcbdaf63ca3ce8096a77f70ba0000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000058000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000001000000000000002036acc3128799cdcc2d6dccdcdd3f5edb4a2be0a38974bd043f196bfc08d808fc00000000000000010000000000000001000000000000002032d6586d80836436349f4fb78b2bcf31ab64c798b96a8902e498edf92ed3a9cd000000000000000100000000000000010000000000000020dd80cacd766c514bea4e75a998238e23cceb858decbd9583d9466348cafc2b4b000000000000000100000000000000000000000000000020241e42aeb3c798b84ad9a34ccc6b26a5fb12fe91536ea9394f0e34b50690f3390000000000000001000000000000000000000000000000204d271360d6ea5729d441a303230c4b3fd940e15129f6f043ffe200fe1412df3c000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000580000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000005800000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000100000000000000203291ae88a8292ffb74515a8efd01da4fe6bc26d1d460f90acf492e0e0aa7f053000000000000000100000000000000010000000000000020b032f2797cd5a8598483a5ec123a07c8630f6c95b25a70984081a201c4e2a1b00000000000000001000000000000000100000000000000209f55b0d4ff746defcce8e220bf8a58f9e4506f61e04b70fe2556ece7b0d76fd1000000000000000100000000000000000000000000000020196600714e2413375e79dfb52d0da692a476ee202a5b16a99a81d9e03b5b4da30000000000000001000000000000000000000000000000204b2589cc642be6064ae59c9496cf16edb00687dfa69b285a43c510b78bfc57d30000000000000001000000000000000100000000000000204bf1e1669389897cdf60a4c21a8ebf7bc19a07905ce2001a19e2353ccbd0bc330000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000550000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000000000000000000207b9a1ab147df96a05747953bd82ceaf44b6ed4278d3351aba097e1d6b2fab33f000000000000000100000000000000010000000000000020ae061b5194494d30b474e8ca84e30311d10fe173845210baede494005bcff504000000000000000100000000000000000000000000000020f02df779af74ece096b6b51019afda9aad006f692c3013a0d59e0d28d8c8933d0000000000000001000000000000000100000000000000200bf7ab1c0d308f7966b26422ec6c126e5956a6ce55c01414a62362c696861137000000000000000100000000000000000000000000000020440141033be391d351cbd747235dd0dd8925385fcbdaf63ca3ce8096a77f70ba0000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000055000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000000000000000000202bfde982ad163fff7447b742c6c2fc2744e5f435c3c80ddc17c55656c4f349cd000000000000000100000000000000010000000000000020820cb12153954ed792168965679b90767ca6c7b93ae2a29fe9a015e858cbf22d0000000000000001000000000000000000000000000000206c2f42e175bc59959c539065448f0c9c2f330f12deb5a78d2b4137394d93105c000000000000000100000000000000010000000000000020a0b86bb2b9ed1d88c1716ee2897d7e5305051401751e458c39f027a27ad7553f0000000000000001000000000000000000000000000000204d271360d6ea5729d441a303230c4b3fd940e15129f6f043ffe200fe1412df3c000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000550000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000005500000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000000000000000000200518edfdc90344943614e006c23b0abed29b713a702bb24fb261adb9d830d8c00000000000000001000000000000000100000000000000205a60431b036f2e867ddbf1571fde9158d1f41587974cc7a493865e5538159c9d0000000000000001000000000000000000000000000000208db6406dc1712292fe2ebc129fce00ffcb3097dbc760b312a755c402f977e3470000000000000001000000000000000100000000000000201739593b6adf1df20681bdb468e8cf329b9aaa69ac06a77967055637d4ed0b720000000000000001000000000000000000000000000000204b2589cc642be6064ae59c9496cf16edb00687dfa69b285a43c510b78bfc57d30000000000000001000000000000000100000000000000204bf1e1669389897cdf60a4c21a8ebf7bc19a07905ce2001a19e2353ccbd0bc330000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000690000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020168d2dae5908e276103440583e5e91e00075a90f2175709bf90956381663a353000000000000000100000000000000010000000000000020ca6c56e94dc3db3569b8aa66acc2394bd332e25aca38585f988144d360a7d0d30000000000000001000000000000000100000000000000204bb79970c2fb9ceeb2b3b825d98db63307bfbd367bb0eb605f16caa342d20f42000000000000000100000000000000000000000000000020c897f9cc214e1d82ae3fa75be40cec804be624b41c23e139bfad78e7e7d5fc3b000000000000000100000000000000010000000000000020cca38bcaaeed86d1c037ddb148bba22f6b95749f7f352486d9b2248d154972a4000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000069000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020ea39b356e9304b8cfbf68f82c585a449d32fe7be745ef5611e3ea754f2eabafc0000000000000001000000000000000100000000000000209a0722187a4b5424088f7a2e0ef119365189add036f54ccfbf7f3a122c00608d0000000000000001000000000000000100000000000000203d3437767a18c76c6b3ce58e0eaba9f957fb31192a19e2e3adf0c19d5ac4cda30000000000000001000000000000000000000000000000207fadb498e4408564c5da8cdaf1ddd40a060ac7be00e86d18a70cff218a853e5400000000000000010000000000000001000000000000002015dc39279a52d41ddbcaf227c199cbd51b1f711d661184752155a6495562235a000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000690000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000006900000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020b411a74ff31f1c6ba8fae80bfed498519b3ec18a2eada313acb4f7b7b2997a3b0000000000000001000000000000000100000000000000202780d1d9a2c7592a41e6a59139511ee2aef0d99d9db23fe438898262ea68f128000000000000000100000000000000010000000000000020bd214e04a0d15a2b5ac00a7ad42151c6d124291cbcf919f2a8b5311fd49008470000000000000001000000000000000000000000000000207a18ca5e193aa28605c4cd2e9b219710808aed7388ffc2616a116a897b71ab510000000000000001000000000000000100000000000000205c412ce971308b3c81ea6b705658f52dec02ecb3332ae0a2ccd740263bcc7a7b000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000180000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703000000000000000700000000000000010000000000000001000000000000002089bad6834f4c246d3c4178d60e1a7402d7a777a23e9142d631f5ae67b62b75f900000000000000010000000000000001000000000000002010214618282eae8199fb12959e11cbc03fc216f2e26d885483c44dd1500f02b5000000000000000100000000000000010000000000000020b19c107e100ede570d154889a6c02538ece94377272412924433c14033b82edb0000000000000001000000000000000000000000000000208c23ceb38bdfeb620de2d6414912490a34ad95503da09b70a73e57ca9658817b00000000000000010000000000000000000000000000002067b848c6a8fd93922564ee17c6101e314bbd3846fcea2a0a759b6e14ee53062a000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000018000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000001000000000000002018d580ea941c4f08fdecf59b02ea8f309129dcbde68142ea8ac7cec61f97c143000000000000000100000000000000010000000000000020d682998e25a5fbcb3775a68416e2fab8f449a5fb9057a3b6af23027646c629470000000000000001000000000000000100000000000000206fbb63d499e0b1b5c50bb34cc0627d36caeab3783e498fb870f0d059a71cad20000000000000000100000000000000000000000000000020470c7d58bd807351d8c0392710e22aa86ff411e42398f3719c76ffa4b8e767ed00000000000000010000000000000000000000000000002081a27a248db0076bc7a7f51b5ccf3cf5b9e1c7455e27068c417e64832913ff410000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000180000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000001800000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020420f2ec2c248ecb5607ebc6734d079a540aee6ccb80e5ab0c967af0ec0eed30f0000000000000001000000000000000100000000000000207e25d8ece31a1de5fcb5a25e1b6e6ea13f082a485279fb4bfff008ed442251ad000000000000000100000000000000010000000000000020869d3e054e49814b69be93461996310cfeee356bfe04104adc8ee6b45d1298570000000000000001000000000000000000000000000000209c18548fa45a3788494a882aca7eae1dcec93e21ee89a3ec07d3cc2d92b7a75d000000000000000100000000000000000000000000000020e31eb63203c4c86dcc10bca35f7905f868623039545d8b3017d8c39b9f6116d100000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e000000000000007d0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000000000000000000206677ff1de3eab5e9b29b8b5c59b2977a8b60d9b2895a56831b6381c71c6d22ae0000000000000001000000000000000100000000000000203d84beb3d3cccdebf4fa1c20444750b03b865d1e0892df7ccd9c59e2399b6d2e0000000000000001000000000000000000000000000000202ecd8753fbd4e9753d3ab5792022235b0d61965948a9802845ac769c195f73920000000000000001000000000000000000000000000000204d5c20971314a886143fcf4f31e5b0fe465897f95edb2ebb496a671eb51686a3000000000000000100000000000000000000000000000020484695c1718ea9babdf0da4a169839654a70d31dfb7bfa030bd34c4fd296f173000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000007d000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020482d9b2bb7ef832e6fe194960701cb25a6e9167ec3107a83eb223c9aa05e19e900000000000000010000000000000001000000000000002082474f8975f9e61e947359e94818613b5400a925b58a8e9b98a2baa0c4e780dc0000000000000001000000000000000000000000000000202ab79d9f3374ce44e12d2c803ade3b7883c480ea68b516a8844e29d1f144ce230000000000000001000000000000000000000000000000209ef4b79cde573ddf1a1cfe0df94952533f934e8712306ff6e1df26da2304bf2d000000000000000100000000000000000000000000000020eed5635aa9fe26e55ac534a89c39cf891254e6457318ced7e38ad88fc125ecc7000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000007d0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000007d00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020b402934a787e0b02569d625358d131dc7acdd8acd7e4d376410314a3f42b20380000000000000001000000000000000100000000000000206d5173454e4ea2a63308075da3a4dbdf97e7817505d90f43064e9c5604898384000000000000000100000000000000000000000000000020252d0142e29f6f046a2bf2cb488c2f50c948efdf554303dbdc36c746c9b0c6bd000000000000000100000000000000000000000000000020bcd18cc2e0a4ed036f070637e84e56eaa6c50f80555c3785ecb5cd923c93e4870000000000000001000000000000000000000000000000205f345c922e75b5ee09f6a30d4e99bc3797063459fe2e79c3075e31feffa4522f000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb9000000000000007e0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020b782aa7eaea72c5380ded75fc76a02b41f70147c14be1b5ef055b77629fc5bab000000000000000100000000000000000000000000000020e6377433847885cf37e45054debb564d20b150c03c731c35544d18873c6fc80e0000000000000001000000000000000000000000000000202ecd8753fbd4e9753d3ab5792022235b0d61965948a9802845ac769c195f73920000000000000001000000000000000000000000000000204d5c20971314a886143fcf4f31e5b0fe465897f95edb2ebb496a671eb51686a3000000000000000100000000000000000000000000000020484695c1718ea9babdf0da4a169839654a70d31dfb7bfa030bd34c4fd296f173000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000007e000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020ce65a52b98dddd706a68273f7920918697bd68520b127620b85a53f34121f96f000000000000000100000000000000000000000000000020a9c4b3c744c5537998728fd2fbc3b94e03972295db498ff96c58bad33a968e830000000000000001000000000000000000000000000000202ab79d9f3374ce44e12d2c803ade3b7883c480ea68b516a8844e29d1f144ce230000000000000001000000000000000000000000000000209ef4b79cde573ddf1a1cfe0df94952533f934e8712306ff6e1df26da2304bf2d000000000000000100000000000000000000000000000020eed5635aa9fe26e55ac534a89c39cf891254e6457318ced7e38ad88fc125ecc7000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000007e0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000007e00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020a3ec2ca4c2cad220c3ff1c6236c5fb9e9ac9ac5764370b83ec724f57c91f4fb900000000000000010000000000000000000000000000002016479a7042ae183dbd5f3dd916e005f0c4c049b3d3e2bafd47b35c7641802139000000000000000100000000000000000000000000000020252d0142e29f6f046a2bf2cb488c2f50c948efdf554303dbdc36c746c9b0c6bd000000000000000100000000000000000000000000000020bcd18cc2e0a4ed036f070637e84e56eaa6c50f80555c3785ecb5cd923c93e4870000000000000001000000000000000000000000000000205f345c922e75b5ee09f6a30d4e99bc3797063459fe2e79c3075e31feffa4522f000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000670000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000000000000000000201260766c773eb106acd488c8b5315964a35aafaad7cdfc090db12ff5eb6072280000000000000001000000000000000000000000000000205f4102b0b8800e19f474637f55a226fec10861748b9fa2ec8bdae4826e142bb5000000000000000100000000000000000000000000000020786f95a2172647531fa82d40b84de37a8c8c7ed9f5255069d2aa70f6d62cd587000000000000000100000000000000010000000000000020c333590dcb0e6145e72bd463f743db0abfaeb8772dc580c71cf682d91309ed1f000000000000000100000000000000010000000000000020cca38bcaaeed86d1c037ddb148bba22f6b95749f7f352486d9b2248d154972a4000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000067000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000000000000000000206357e722c5dfca2d34a0f940228c6b897edbda69fb7edaf16c556932e70bfc09000000000000000100000000000000000000000000000020a208a8f0c84ba755ac34583a27706f071785155bb44e2c1c1b42da927f25c20200000000000000010000000000000000000000000000002033f11f3f1d395d654c44f337de010654fc274e24f3eb38f1d043e7dfd62e1485000000000000000100000000000000010000000000000020231c9cddba9de91f81f082284626d72c840c35a049839db16d0798671da9a94e00000000000000010000000000000001000000000000002015dc39279a52d41ddbcaf227c199cbd51b1f711d661184752155a6495562235a000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000670000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000006700000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000000000000000000205b3813244877cf501ab8ee88ad075fe0d497295350b089fb82cc4ab7f6504b8c000000000000000100000000000000000000000000000020f80772757f8c8cdbabda52736674cd5cfecab385704328c7d1a93a5476929a24000000000000000100000000000000000000000000000020a18f21e7e8468794ce9a72aafad56c67612abcaa36d917dc7026a967abbe5d10000000000000000100000000000000010000000000000020ccdfc1ce31f7c9c3c299e0c8c2dcba2323cfe7190c2ecab871962f8a14a10c5f0000000000000001000000000000000100000000000000205c412ce971308b3c81ea6b705658f52dec02ecb3332ae0a2ccd740263bcc7a7b000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb9000000000000001d0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020406b9effc4dae675bab2b16227168bdba5e13122f7bb7c07d614d33fc67bf5b2000000000000000100000000000000010000000000000020466a843d279e2d09cfb98b4604ad55550c4b32d858d74301ced48d4cf2a5f8a70000000000000001000000000000000000000000000000208d2e2729a32aca8b2598698736e9fb6648f7a570764827ae42629ee8e0b363c40000000000000001000000000000000000000000000000208c23ceb38bdfeb620de2d6414912490a34ad95503da09b70a73e57ca9658817b00000000000000010000000000000000000000000000002067b848c6a8fd93922564ee17c6101e314bbd3846fcea2a0a759b6e14ee53062a000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d000000000000001d000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000000000000000000204cd40976ac6f3b1453ffdd87822869a6c3fc585b2b5a1a4906a31acf86c01e84000000000000000100000000000000010000000000000020aaae5c36ffc93586fd6e7da9318b26f5cb0052b41e106f29d5e9b9ba2a05e64d0000000000000001000000000000000000000000000000202556fe526824a8a26854d8a628546f1d11f4f769eaba5f9e50313c2ef40b6ac4000000000000000100000000000000000000000000000020470c7d58bd807351d8c0392710e22aa86ff411e42398f3719c76ffa4b8e767ed00000000000000010000000000000000000000000000002081a27a248db0076bc7a7f51b5ccf3cf5b9e1c7455e27068c417e64832913ff410000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de000000000000001d0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000001d00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d000000000000000700000000000000010000000000000000000000000000002072ce46f21b014fd067b055a2644d764fe8135b2e0150f804b80147cb9fab23aa000000000000000100000000000000010000000000000020c31bbbd72bb9586b9aab8d27641760d6d6f84a81ce9f3cb898f5c21f7485c7210000000000000001000000000000000000000000000000205b9fe3fd37a8939ed0f64c1508fbb4ab344cb7b357b4cf7e58d097a831ff02ee0000000000000001000000000000000000000000000000209c18548fa45a3788494a882aca7eae1dcec93e21ee89a3ec07d3cc2d92b7a75d000000000000000100000000000000000000000000000020e31eb63203c4c86dcc10bca35f7905f868623039545d8b3017d8c39b9f6116d100000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e000000000000001a0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020ca0dbef3e95b581e5b9cfdefbe9025cfa08c7604dc04c5855dad14cacb178a0e0000000000000001000000000000000000000000000000202f79641d9c0a7238e695300b36fa1c5be4867aaf5047e715b0ab5ce5a4c9a1ef000000000000000100000000000000010000000000000020b19c107e100ede570d154889a6c02538ece94377272412924433c14033b82edb0000000000000001000000000000000000000000000000208c23ceb38bdfeb620de2d6414912490a34ad95503da09b70a73e57ca9658817b00000000000000010000000000000000000000000000002067b848c6a8fd93922564ee17c6101e314bbd3846fcea2a0a759b6e14ee53062a000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d000000000000001a000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000001000000000000002068f33381ba67c64e677ce00a04392cac412620297a4b432774de25b4007520360000000000000001000000000000000000000000000000206de41ae63863e4dcf765564dd0dfbcc8cfec4ff8f79ca1ef7f4bd578c9b90ab60000000000000001000000000000000100000000000000206fbb63d499e0b1b5c50bb34cc0627d36caeab3783e498fb870f0d059a71cad20000000000000000100000000000000000000000000000020470c7d58bd807351d8c0392710e22aa86ff411e42398f3719c76ffa4b8e767ed00000000000000010000000000000000000000000000002081a27a248db0076bc7a7f51b5ccf3cf5b9e1c7455e27068c417e64832913ff410000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de000000000000001a0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000001a00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000100000000000000202889219e13701491f371137cfb3bf66414bf74d1eb17872db6ca2775104e74fb000000000000000100000000000000000000000000000020ece74dd7d4249324bf2f808b9a98d1332d127a2d553d824fc80e3ef2711f2ba7000000000000000100000000000000010000000000000020869d3e054e49814b69be93461996310cfeee356bfe04104adc8ee6b45d1298570000000000000001000000000000000000000000000000209c18548fa45a3788494a882aca7eae1dcec93e21ee89a3ec07d3cc2d92b7a75d000000000000000100000000000000000000000000000020e31eb63203c4c86dcc10bca35f7905f868623039545d8b3017d8c39b9f6116d100000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000610000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000000000000000000204fd16afe54ef0980c4de5a597f7fb006c9544966a7aecc8e50b76c962ea05bd8000000000000000100000000000000010000000000000020d2e2ba3fc80ee026557e5bfcac4bed00ed62af39a123d3ee482cbd1a0959035c0000000000000001000000000000000100000000000000208898e207f899afef2d8054a80f751d82d7922c515dc762bb6fe3ca09982a4a8c000000000000000100000000000000010000000000000020c333590dcb0e6145e72bd463f743db0abfaeb8772dc580c71cf682d91309ed1f000000000000000100000000000000010000000000000020cca38bcaaeed86d1c037ddb148bba22f6b95749f7f352486d9b2248d154972a4000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000061000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000000000000000000002043fecb6bbbc6c1fcc79d4b34116f29f10cdf12228fb5d4290369e89f0a49cd0800000000000000010000000000000001000000000000002040aaa91a76e76b209d5782919ffbac0c1b40c4d4763b7179e423c793cda2a3080000000000000001000000000000000100000000000000204760ed6b8f37b8811c4472d07018ef33254862de57fd87fdcb222f78d35c0c3c000000000000000100000000000000010000000000000020231c9cddba9de91f81f082284626d72c840c35a049839db16d0798671da9a94e00000000000000010000000000000001000000000000002015dc39279a52d41ddbcaf227c199cbd51b1f711d661184752155a6495562235a000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000610000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000006100000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020b60f00ac5aa100ed487f252c5f57453032591b4ad2b2358b7e4b2b5bf8116b1a000000000000000100000000000000010000000000000020be3c304600dee094ac7b11b22bc4c6940552fbc5f077a7e24a4a568ea0b7540d00000000000000010000000000000001000000000000002004ce2cc4d87e262ec2f5f995c0158bc7b0330315c341537e2539f463c075a8cf000000000000000100000000000000010000000000000020ccdfc1ce31f7c9c3c299e0c8c2dcba2323cfe7190c2ecab871962f8a14a10c5f0000000000000001000000000000000100000000000000205c412ce971308b3c81ea6b705658f52dec02ecb3332ae0a2ccd740263bcc7a7b000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000500000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000202803e8a5c4741f7c0d695c19271ea397b47db4f231f512ff774635a50ae6998800000000000000010000000000000001000000000000002048bf88f7b93e2bcd99d8beb87e3ff5b0caf61388116f1938569c63ceebc3378b0000000000000001000000000000000100000000000000201d83882e46f5088affd079555b2c275d2386d81b8b37a98bfd2519fc364a4aa10000000000000001000000000000000100000000000000200bf7ab1c0d308f7966b26422ec6c126e5956a6ce55c01414a62362c696861137000000000000000100000000000000000000000000000020440141033be391d351cbd747235dd0dd8925385fcbdaf63ca3ce8096a77f70ba0000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000050000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000001000000000000002031e983d8252c220c7a157bf0b0e4d009860e59f0f25f27642db8cb4bf7a850c100000000000000010000000000000001000000000000002037442da0052c1e225d8fe6509d79b41db3636261de0513e141c9bffb94d9299f00000000000000010000000000000001000000000000002080791f87519ff3c06a911030e79b46f0075ebfa5b433792d826d53d2916e1fce000000000000000100000000000000010000000000000020a0b86bb2b9ed1d88c1716ee2897d7e5305051401751e458c39f027a27ad7553f0000000000000001000000000000000000000000000000204d271360d6ea5729d441a303230c4b3fd940e15129f6f043ffe200fe1412df3c000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000500000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000005000000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020d479910be32071faca712dc7f28fe9d846b00936dcb0a0c4f47c4f5f2e0d22880000000000000001000000000000000100000000000000203e852866bbd02607edf40a158be12015d6b47315429830d68df7177bfee8d7370000000000000001000000000000000100000000000000203123b1b063eb4477af1095ffa8004b86436aa43d1437d489a673b4afeea9807a0000000000000001000000000000000100000000000000201739593b6adf1df20681bdb468e8cf329b9aaa69ac06a77967055637d4ed0b720000000000000001000000000000000000000000000000204b2589cc642be6064ae59c9496cf16edb00687dfa69b285a43c510b78bfc57d30000000000000001000000000000000100000000000000204bf1e1669389897cdf60a4c21a8ebf7bc19a07905ce2001a19e2353ccbd0bc330000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb9000000000000003e0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020d759086dcad373073aae966a1f80b0ea984f7970ae87b7562247944a46cc0fad00000000000000010000000000000000000000000000002046ac07b7f7a61188086b6c4b68e04c2ab56f2c6523b241a09c8b73a6d2c4fd8600000000000000010000000000000000000000000000002003e351314794759cd9806174a52250b9cb8fa9581fa9e27d53e8a0c841303e0a00000000000000010000000000000000000000000000002038633c23221765310c92698cee8362c0d12200537889693a08f64eb0a28d0eb50000000000000001000000000000000000000000000000204cc7901d510046ae5f98d6b431c2a311cc066cdd794fd6e53cc30587ed00a61e0000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d000000000000003e000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020f16b86f848c233232511b38cf3bf3a52e6e9371050f48e1ca3cca4837a6035e200000000000000010000000000000000000000000000002036670a01fac60d516547b53a292308b7180d6cadb33e8c70762b23893e9541a4000000000000000100000000000000000000000000000020a9ab9c5ee7b9555a000953fc28810de93e021fd6c3bd175a54f424a6c2f67cc8000000000000000100000000000000000000000000000020d0aef9b77b039100567fbec3deac5294b41ec41336a21a95a35be851fa112511000000000000000100000000000000000000000000000020f8cfb327d9517742fe31d66ff60129d85a3e464d22188d95a53c32e3132069560000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de000000000000003e0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000003e00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d000000000000000700000000000000010000000000000001000000000000002027740ae449540eabd9ee1bbde232cae009ad7aed8d15a971e695d5254bfc234e0000000000000001000000000000000000000000000000202cbda8598c8494d01b63f8ad898e82f5bf191915bec6b423b5193aeed5358d8d00000000000000010000000000000000000000000000002051d1c8fbe14916c1ada979c389c6e526187b29de31453aab6ad0a7df0008d5d90000000000000001000000000000000000000000000000206916699a45fdfb8384004d89c6a315b17df2f235f5b835b904c0db675c6a94010000000000000001000000000000000000000000000000208f995ec61c2dccbeb9c7fe1f9ab07ecdb151d4c25dee869fcddca0342e9f92e100000000000000010000000000000000000000000000002040fcfc6bb63dbae33d624e3777a816b50ebb7a75c3788096fb31802eed5badf20000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e000000000000002b0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020d623fe35da47f495719c1f6db69f341f53505a77212301533194ee5bcce70a9700000000000000010000000000000000000000000000002036d642259a9610da09490a34cc56151eff1d21198923d9f37551523a0c1d7296000000000000000100000000000000010000000000000020feffaa714556b27a2dda8d1987f9b21b7c07cdbd2ba25dd553aa795bb22458060000000000000001000000000000000000000000000000201f4bfe7d2398692f0c7abdb85ed16895ef0857d4d738e32f167340e5542a22b20000000000000001000000000000000100000000000000205d77fe2ccf9c9f8603070bd03123cd3455d47968e542db3d55abf5cd35b03d050000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d000000000000002b000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020ea8dcf6e9c680237f2fc6cfa04e683c79883fc2f776847ceb27a222d9253e15c000000000000000100000000000000000000000000000020f94d3eb70abe97b6a0b31f4a89662535a8de6d8a3fd538bcfcf1bab5a45d8c97000000000000000100000000000000010000000000000020af1eb3d7d585cac460fb089230f35cc56b94ac9cafd3a68a235ce4dc2a8a3522000000000000000100000000000000000000000000000020b6d1fb90220eb827e5a0d6cff1a17436b1d8a5cbf6a2bec68975b0b2c4d80d8a000000000000000100000000000000010000000000000020e7444cc161f3e7f01cf05762fb0fb97caf4bc92619aabc44b759df970816cdad0000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de000000000000002b0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000002b00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020b9ec14f7d2b46214e006f6f5a67df9cd3e9f82c33e3cd643315f3bcf77704a030000000000000001000000000000000000000000000000201506a4df314278d041307279b80c15ed007f7c6959eb9f7c36af6db9fff4b23c000000000000000100000000000000010000000000000020f3e6159fd8f850f142ee2be2fd42aac619529f6794fa64fb9655b084de8deff0000000000000000100000000000000000000000000000020f7c430e5be26ecc9ace2846a2dd9aac8ff25889109484b43997f6080ae01699500000000000000010000000000000001000000000000002080f4c94164dc4597576888e1e7dfeeb82efbc11ac8b5ecc2b2df1058b8fa2b0500000000000000010000000000000000000000000000002040fcfc6bb63dbae33d624e3777a816b50ebb7a75c3788096fb31802eed5badf20000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000360000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020393764bdcd9e425bb2249d35607d0d215b4323c27dafd54ef03468a1109427700000000000000001000000000000000000000000000000205e0f50e6647448b37ecb900b2e98938852d04e3c7a8814ad45c8f5555096bfb500000000000000010000000000000000000000000000002015974e5cde8b68336383dff938d22e92f360b18ffe56429530ed75be9b66f34600000000000000010000000000000001000000000000002035603eb04728f46297d39deef07280b0efb1ad34cd06e614ab18bb44a27f7e2e0000000000000001000000000000000000000000000000204cc7901d510046ae5f98d6b431c2a311cc066cdd794fd6e53cc30587ed00a61e0000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000036000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000001000000000000002093eb35436b3f077a61626c36185d04ddb17027d3525ce85ca5c5af10053856a9000000000000000100000000000000000000000000000020eb939b7425a45e6af5ee8bbd51aa96cb2fd43c51864a08f260c6b1f8c2aca314000000000000000100000000000000000000000000000020617144785e76e054a86588f283941ec49cb303cfe7fa0c4860356593023b62a70000000000000001000000000000000100000000000000208167f508c5eb6be817a066fba8c0346e424b21acf020be61c9420e0d0fe6ef23000000000000000100000000000000000000000000000020f8cfb327d9517742fe31d66ff60129d85a3e464d22188d95a53c32e3132069560000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000360000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000003600000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020c81d8a1303ec8a042a1c8256b9993f049131b8dcc10dbdab3c8440bcca6eeed5000000000000000100000000000000000000000000000020e71ba0d2168fa3484961ca6a6263ba6305b6bcbfc7d076c7b11adb924bf3a74300000000000000010000000000000000000000000000002062f2b2903f1a7436363f3a5c5592a114e9fe69ef6adeb2631c9a458007c9663b0000000000000001000000000000000100000000000000204fcd2ada01b5d173195b35a487f5b16437dabdb84cce492f9d9213768cb11a090000000000000001000000000000000000000000000000208f995ec61c2dccbeb9c7fe1f9ab07ecdb151d4c25dee869fcddca0342e9f92e100000000000000010000000000000000000000000000002040fcfc6bb63dbae33d624e3777a816b50ebb7a75c3788096fb31802eed5badf20000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000140000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020cda62adf1897dd69a5d477188c1d7fc7d3f0d8707ff1abc9b07e315121f1f82a0000000000000001000000000000000100000000000000203f4103f6c5e041db2238dfa288c0fed4cd69dd9e9dfccbcbd45d686bccbb0f4d000000000000000100000000000000000000000000000020236a87f0094607aef55b5855bcf5d40e5a4d31eb60bcf52103d540e1255750fd000000000000000100000000000000010000000000000020e2acecbe8619d7478dee57fcb82511df4fa4f1bdb2d5253db0ff26c50b7344b300000000000000010000000000000000000000000000002067b848c6a8fd93922564ee17c6101e314bbd3846fcea2a0a759b6e14ee53062a000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000014000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000001000000000000002037ad0e26b487f4c1bd8fabb09c99fdd63c5113c06f0efe634a957d681e51d6d20000000000000001000000000000000100000000000000207690f6275b5b745ed602edf3d0e38ee9c8d29bef97c4ed21192216d29f29589c000000000000000100000000000000000000000000000020b6825f551393ddf40c3d0d57b2c88b4047463cc27d41309df512b8de3748521600000000000000010000000000000001000000000000002022828921a6b0f0bee2649772e95581d881e7c8e59ac79244530985451478d83800000000000000010000000000000000000000000000002081a27a248db0076bc7a7f51b5ccf3cf5b9e1c7455e27068c417e64832913ff410000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000140000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000001400000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020cbc15686cb5a1872d1c75ff425c9406b4cee642ef050733c4b16517d0f9b0d2f000000000000000100000000000000010000000000000020419750d457df4847a5ceed3b7646e2b5ad7aeabeef7d27d03a3fb4e527ce85000000000000000001000000000000000000000000000000208b1ad468560adbe36ce35d74c1d5fa810651d95caee843c247b8db9963999d5b00000000000000010000000000000001000000000000002016bdef74d3a4a3bf89aacb899b6f0c9002f0bb74b43dcea2dd6c6252a2ede355000000000000000100000000000000000000000000000020e31eb63203c4c86dcc10bca35f7905f868623039545d8b3017d8c39b9f6116d100000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000510000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000000000000000000201dce8110531ba734ee5ce98e273825cf6b0ed4c0b1d91177d71ddff22276446700000000000000010000000000000001000000000000002048bf88f7b93e2bcd99d8beb87e3ff5b0caf61388116f1938569c63ceebc3378b0000000000000001000000000000000100000000000000201d83882e46f5088affd079555b2c275d2386d81b8b37a98bfd2519fc364a4aa10000000000000001000000000000000100000000000000200bf7ab1c0d308f7966b26422ec6c126e5956a6ce55c01414a62362c696861137000000000000000100000000000000000000000000000020440141033be391d351cbd747235dd0dd8925385fcbdaf63ca3ce8096a77f70ba0000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000051000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020a3cbbb0667f9464f4dcf9e1b546201190b31c6a841192c79daf95ddea663c79500000000000000010000000000000001000000000000002037442da0052c1e225d8fe6509d79b41db3636261de0513e141c9bffb94d9299f00000000000000010000000000000001000000000000002080791f87519ff3c06a911030e79b46f0075ebfa5b433792d826d53d2916e1fce000000000000000100000000000000010000000000000020a0b86bb2b9ed1d88c1716ee2897d7e5305051401751e458c39f027a27ad7553f0000000000000001000000000000000000000000000000204d271360d6ea5729d441a303230c4b3fd940e15129f6f043ffe200fe1412df3c000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000510000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000005100000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d000000000000000700000000000000010000000000000000000000000000002053cc390d04e2e9e6100f1e6ca9fa5a4a679f84dec915b214fd24246103f1b56d0000000000000001000000000000000100000000000000203e852866bbd02607edf40a158be12015d6b47315429830d68df7177bfee8d7370000000000000001000000000000000100000000000000203123b1b063eb4477af1095ffa8004b86436aa43d1437d489a673b4afeea9807a0000000000000001000000000000000100000000000000201739593b6adf1df20681bdb468e8cf329b9aaa69ac06a77967055637d4ed0b720000000000000001000000000000000000000000000000204b2589cc642be6064ae59c9496cf16edb00687dfa69b285a43c510b78bfc57d30000000000000001000000000000000100000000000000204bf1e1669389897cdf60a4c21a8ebf7bc19a07905ce2001a19e2353ccbd0bc330000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000260000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000200532885162f334dcb979c295ccd7e114c25627c38abbe8344a62d3b4dd0193030000000000000001000000000000000000000000000000206646e85b38be67320dd5f242052434bb096fc2dd3addf7630266aefa790b07c7000000000000000100000000000000000000000000000020ec22875e1413e14f0b228057c008ca6093a9bcc7bb60d0bd9e92aaa0cf0b83610000000000000001000000000000000100000000000000205174f398ccc856cdbbef4aa77674b4b7eef12d39c064ad97e2c59fc16b229eba0000000000000001000000000000000100000000000000205d77fe2ccf9c9f8603070bd03123cd3455d47968e542db3d55abf5cd35b03d050000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000026000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000100000000000000205cc217a23b3b56fb7d7b4b1186cafac5396650cd5fc9cefd171d6e7dcc716f03000000000000000100000000000000000000000000000020ba86fb189507f2c681123bb98e433685488997ef80ef20ecfd7d745299e4c7df00000000000000010000000000000000000000000000002054c2a7e3d5246f862f53d205afda57fd943cfff4406a59fa2696999b1743dc66000000000000000100000000000000010000000000000020a88fc00e48cff7ada818659ce1afb1d48fbf00ea30b15d29f469922cbe8e2d8c000000000000000100000000000000010000000000000020e7444cc161f3e7f01cf05762fb0fb97caf4bc92619aabc44b759df970816cdad0000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000260000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000002600000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020a09b16eac1b785ee43928c9007a072723798cdef75bc4c5496b8d7f675939c3d00000000000000010000000000000000000000000000002044df9f5110073b3f1ffe881eae3bac9162053ab186cde304268de14c32095bba0000000000000001000000000000000000000000000000202f5d2b0dcf4bc4cc6aaeaf0b370ed5744b17239bc12f2916ecbc735ffffed915000000000000000100000000000000010000000000000020738ec93c8a9b7a0f5985915570b5f09db8fea468f04aef909e23d781767e0ee800000000000000010000000000000001000000000000002080f4c94164dc4597576888e1e7dfeeb82efbc11ac8b5ecc2b2df1058b8fa2b0500000000000000010000000000000000000000000000002040fcfc6bb63dbae33d624e3777a816b50ebb7a75c3788096fb31802eed5badf20000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000010000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020727653dd0ba5c260f42127d3913985b281e9ea7b231a6d3e7a283c39d193ce9b0000000000000001000000000000000100000000000000206555e950641c26f0150d14efc11a572e64fb0ffa9ee6a450a552495c26807510000000000000000100000000000000010000000000000020fead840665604a5a49e398fb78efac6fe1eb6f9b9330acae96d1f30f5ec2a112000000000000000100000000000000010000000000000020ca3dc5f22e4573bfae9e4282c195d191a87ba277e564f158302218ee7bcec57300000000000000010000000000000001000000000000002056e5e7ca74faee51ae45c7001256fed2e7e080dcb95a859867c22dcb1608665f000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000001000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000000000000000000002071c1a3db6bf2f3fbb6225379025b7c2af6fef00e97870cda238d7a252164edfe00000000000000010000000000000001000000000000002097030da7360a458af1b5de0ad0e77770fedada0480d022f05f634898465c9954000000000000000100000000000000010000000000000020442b7310681f9144ce05c5c0335794243b1628a10269ea3f920a1d69cf0170b4000000000000000100000000000000010000000000000020ea8b53cd7415ecfb610e991f3187dc70583ec968dd6f325946dad2d066766dd100000000000000010000000000000001000000000000002099796d2366d350a09cad2698ab80419a6869a2524f9cfcc2eb3055449273a24a0000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000010000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000000100000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000000000000000000200f7d3d47144478bb9935a9c51fc46b1b1a5a0c2193dde53d033cfc11a38eaa4a000000000000000100000000000000010000000000000020427991f215fe7e45997ccba33054721026a6c1327066c6b3403cf7227aed474c0000000000000001000000000000000100000000000000208ee52142db58fe442ca24e9577a242b6b0a01d185709369184976ec6ed203b4d0000000000000001000000000000000100000000000000202ef4e1908e5c1feba751546a1b19b44ec3948b5b79fb15cbc254b6ae858d0622000000000000000100000000000000010000000000000020cf7b4774e00157cbbb3d3167eebc39e16fa993a1f6d067c9342e404e34e33a4a00000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000320000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020673777488cf3d8a0b74ceebc5bcafced0f7c67203cea83d9e757c0af22d8b612000000000000000100000000000000000000000000000020a8b163b594b1ea8548436dc3b48197513fc9b45c735c5d964bdfe6fcc058a8b60000000000000001000000000000000100000000000000202d3d71c190cf6c43416cbe47335b0e25e426bc497ce5758c1606e0f1aa2ca3df00000000000000010000000000000001000000000000002035603eb04728f46297d39deef07280b0efb1ad34cd06e614ab18bb44a27f7e2e0000000000000001000000000000000000000000000000204cc7901d510046ae5f98d6b431c2a311cc066cdd794fd6e53cc30587ed00a61e0000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000032000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000100000000000000205e0c9389e88c9d1b6939317e6f78dcade394d14f5d60990c59db162fb62dba8d00000000000000010000000000000000000000000000002070c89f4cc302199fb888ede5542fcf52a05e788b646abb1466122cc5eb84938300000000000000010000000000000001000000000000002072ebca755ad2ef4b7250f091f16fa7df2d4de8ea26d8d83c79b0f03cc45baa930000000000000001000000000000000100000000000000208167f508c5eb6be817a066fba8c0346e424b21acf020be61c9420e0d0fe6ef23000000000000000100000000000000000000000000000020f8cfb327d9517742fe31d66ff60129d85a3e464d22188d95a53c32e3132069560000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000320000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000003200000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020a8857c9413964956bf694f5d8be5efa01c7f27329d2ed0d7899d74e91ff9c9a900000000000000010000000000000000000000000000002043609303b68813a54ec3832425a23f11fa8011424fb365ef839892c52ab5c39c0000000000000001000000000000000100000000000000208f09a045147135ca6ac409dfffdf05e0ba6f083e7f58e3398e069468e3349b100000000000000001000000000000000100000000000000204fcd2ada01b5d173195b35a487f5b16437dabdb84cce492f9d9213768cb11a090000000000000001000000000000000000000000000000208f995ec61c2dccbeb9c7fe1f9ab07ecdb151d4c25dee869fcddca0342e9f92e100000000000000010000000000000000000000000000002040fcfc6bb63dbae33d624e3777a816b50ebb7a75c3788096fb31802eed5badf20000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e000000000000000b0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000000000000000000201a89e481bba18dfa9d4416ef0205ba9c067ab904a04b02a35855188fff0ad57200000000000000010000000000000000000000000000002034eb72e07f1bf338a90c88f33d60e76f13297c61f81d3a00a186398991c46d9a000000000000000100000000000000010000000000000020f4788f282cc48569bec74e73b39f71e265eb51ef211aecf4d1a7add0f34d7b1600000000000000010000000000000000000000000000002074c92898599a40af39cc7a4aa694631d7e51488babfa65b017e19bd852de297900000000000000010000000000000001000000000000002056e5e7ca74faee51ae45c7001256fed2e7e080dcb95a859867c22dcb1608665f000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d000000000000000b000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020dd67b97f66f8ec35d2badf9cbecef66029be7519b0cb7fc3c98ef1b46effb6710000000000000001000000000000000000000000000000203fb1c1672356fe7d5dd51118e2141a18470022a596efa96d71df01663dbacaf7000000000000000100000000000000010000000000000020a52b91bce93e4fa0572db86458eba139088189bddae7d7b79620966038af80c50000000000000001000000000000000000000000000000208f3d18cc0b0da6433287a04f00ac88b64a41656e27ea9ddc94e4472173bebea600000000000000010000000000000001000000000000002099796d2366d350a09cad2698ab80419a6869a2524f9cfcc2eb3055449273a24a0000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de000000000000000b0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000000b00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000000000000000000201aa21278418c6eb518999151864c723ba9c303adef76f4352a5d327bfbb6cc08000000000000000100000000000000000000000000000020fa349777b0641ceddab988e29e07fa5f2661c6df69effb0174bada10a4a21fae000000000000000100000000000000010000000000000020a4bff191e50d729d30375a40780a8f7b71683f4a524dd1a0f96ceb2b1c3359a1000000000000000100000000000000000000000000000020c00237dc35ffd084252306466001d905dafd040f1eef9871a7001cc4e9b4f108000000000000000100000000000000010000000000000020cf7b4774e00157cbbb3d3167eebc39e16fa993a1f6d067c9342e404e34e33a4a00000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000340000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020e7e80bd549336feef20b84d8fc6dcac30affb2bad78de3f3114dc82e50a92a69000000000000000100000000000000010000000000000020bf66858a8f548d23da67e17eb30171bcd49e0cdf754ccdc73bfc4932c7b7d4f900000000000000010000000000000000000000000000002015974e5cde8b68336383dff938d22e92f360b18ffe56429530ed75be9b66f34600000000000000010000000000000001000000000000002035603eb04728f46297d39deef07280b0efb1ad34cd06e614ab18bb44a27f7e2e0000000000000001000000000000000000000000000000204cc7901d510046ae5f98d6b431c2a311cc066cdd794fd6e53cc30587ed00a61e0000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000034000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000100000000000000201cf50ad24d0b32a2a14eee85abe16d66f610b837b5dae23813e3de0aa89a7515000000000000000100000000000000010000000000000020beb80dff8ac0dc16ac9cb4cde80e4c9f02416d0ac6d10cb3918516b35d3ec44b000000000000000100000000000000000000000000000020617144785e76e054a86588f283941ec49cb303cfe7fa0c4860356593023b62a70000000000000001000000000000000100000000000000208167f508c5eb6be817a066fba8c0346e424b21acf020be61c9420e0d0fe6ef23000000000000000100000000000000000000000000000020f8cfb327d9517742fe31d66ff60129d85a3e464d22188d95a53c32e3132069560000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000340000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000003400000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020f3197a6bc4c2a13c1ccbdd9d35aa3a96039850dbef1a3d9b13f0d662dec230b100000000000000010000000000000001000000000000002022c6081ae426b1d9ce5335d2358368d2d7e03bf87b7e8fbd1b9445eab2fc4a2200000000000000010000000000000000000000000000002062f2b2903f1a7436363f3a5c5592a114e9fe69ef6adeb2631c9a458007c9663b0000000000000001000000000000000100000000000000204fcd2ada01b5d173195b35a487f5b16437dabdb84cce492f9d9213768cb11a090000000000000001000000000000000000000000000000208f995ec61c2dccbeb9c7fe1f9ab07ecdb151d4c25dee869fcddca0342e9f92e100000000000000010000000000000000000000000000002040fcfc6bb63dbae33d624e3777a816b50ebb7a75c3788096fb31802eed5badf20000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000010000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020727653dd0ba5c260f42127d3913985b281e9ea7b231a6d3e7a283c39d193ce9b0000000000000001000000000000000100000000000000206555e950641c26f0150d14efc11a572e64fb0ffa9ee6a450a552495c26807510000000000000000100000000000000010000000000000020fead840665604a5a49e398fb78efac6fe1eb6f9b9330acae96d1f30f5ec2a112000000000000000100000000000000010000000000000020ca3dc5f22e4573bfae9e4282c195d191a87ba277e564f158302218ee7bcec57300000000000000010000000000000001000000000000002056e5e7ca74faee51ae45c7001256fed2e7e080dcb95a859867c22dcb1608665f000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000001000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000000000000000000002071c1a3db6bf2f3fbb6225379025b7c2af6fef00e97870cda238d7a252164edfe00000000000000010000000000000001000000000000002097030da7360a458af1b5de0ad0e77770fedada0480d022f05f634898465c9954000000000000000100000000000000010000000000000020442b7310681f9144ce05c5c0335794243b1628a10269ea3f920a1d69cf0170b4000000000000000100000000000000010000000000000020ea8b53cd7415ecfb610e991f3187dc70583ec968dd6f325946dad2d066766dd100000000000000010000000000000001000000000000002099796d2366d350a09cad2698ab80419a6869a2524f9cfcc2eb3055449273a24a0000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000010000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000000100000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000000000000000000200f7d3d47144478bb9935a9c51fc46b1b1a5a0c2193dde53d033cfc11a38eaa4a000000000000000100000000000000010000000000000020427991f215fe7e45997ccba33054721026a6c1327066c6b3403cf7227aed474c0000000000000001000000000000000100000000000000208ee52142db58fe442ca24e9577a242b6b0a01d185709369184976ec6ed203b4d0000000000000001000000000000000100000000000000202ef4e1908e5c1feba751546a1b19b44ec3948b5b79fb15cbc254b6ae858d0622000000000000000100000000000000010000000000000020cf7b4774e00157cbbb3d3167eebc39e16fa993a1f6d067c9342e404e34e33a4a00000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000490000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000000000000000000201860564c2aeb744fc30bf71ecd6baf03d9be77372b25d31272281c9758e8169400000000000000010000000000000001000000000000002060646d14fda94fd08e577bdea9fc1a671b1b5d8d53784a28110c0a7d605d91c60000000000000001000000000000000100000000000000202de906415b70ddf320e163f0338d5931f99bb6b0ab8e2c0a4267870082918637000000000000000100000000000000000000000000000020e2cfdef2e013593d17123ff3c49fb968341cf622151374e7b49d49569fdcf51e000000000000000100000000000000010000000000000020e6fbce7ccc80a578a93cc241360a739d0248edab1a37196cc8564d3cea08f1a90000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000049000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000000000000000000002013793ef5fcfba02ad9248613c54da41f5d9cdda3d2f4a8b897a34ee0c6151cfa0000000000000001000000000000000100000000000000202140747e5055c2f19a76dc2e3323a6298f108573ca44fbcd516e443b3a3de44d000000000000000100000000000000010000000000000020510be7fbad823f5d64b32d46eca47d66aae275bfc6d23ab17983fe6df6578151000000000000000100000000000000000000000000000020ecb1f059ced073c0f1f4ab430f41a2243331d77e965de85e9fbb5ae14eed25980000000000000001000000000000000100000000000000201e2c25d0355b2435f10a6081fe0d1c18b2bcf5ac219aa03a7bf09921024c667f000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000490000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000004900000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000000000000000000207b7e7d813596e555cb7536807a4b6f1ac8fa4422dc4d38c4e5c8d011ba9ed6eb000000000000000100000000000000010000000000000020550fe6ea252d2938fe077b30927846557ff0ce990d12d10b29d1f5059e93437e000000000000000100000000000000010000000000000020b0e895ff3921662a70c6f86f8a240ccf60a76f0abe4eaeb51fcecb7efc8ff93b00000000000000010000000000000000000000000000002005a7d139ea1c50e2d46ee67598c7cccdfa30f9ddabe7cfc41f5862d2aabb182b000000000000000100000000000000010000000000000020653a458519e3320afef3854df67dd297919d49bad510656792603e8433e203430000000000000001000000000000000100000000000000204bf1e1669389897cdf60a4c21a8ebf7bc19a07905ce2001a19e2353ccbd0bc330000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb90000000000000078000000000000006900000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d4000000000000000700000000000000010000000000000000000000000000002043609cd6c56575e638e4556f3542711b3deda4667de73987824d5b00563087f100000000000000010000000000000001000000000000002080887f2e3189e45edcd0e775fa7fbf880a92630216c929ed7134f08e9ef2cf1e00000000000000010000000000000001000000000000002043932f3e384fbddfe1bd37deb7c0cab286f92cec12bfb0550d0b912548777824000000000000000100000000000000000000000000000020f85733e031fa6d105167a08b1c0c4aa7adf12f0649d84c9ccbd5093cfae1b9810000000000000001000000000000000100000000000000204e50d1a6000824f5cb7d9eb885680a1671d88dafc78a454b198d6c47b16595c9000000000000000100000000000000000000000000000020ea1d0f8669b9afe823f0be1e90c0d5799ac3fd8c4366cd231da9ab3e040ba5fd0000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad0000000000000029000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d00000000000000060000000000000001000000000000000000000000000000204cbc345704ec816cde6ce64bd82eacbf6f60c5d3c967cf3dd0797acd5855cc79000000000000000100000000000000010000000000000020dda727ff5aceb31fcd279f1f76b22ad6ff9fcb430cf35d04f3a27e4c9adbe598000000000000000100000000000000010000000000000020c785a107ccd44a8109eef6c62a2f7d66cf98c3c8c1e5f114493e8adc02afc02f000000000000000100000000000000000000000000000020d0212e386a105cf30b473e6cf1bedb9fdccedf2971be1402d648e94463b516b1000000000000000100000000000000010000000000000020d38ca383fe0726dc7c544c95a4ff50a46052b0e4bd3942c8249176238407541c000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f600000000000000090000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb7160000000000000005000000000000000100000000000000000000000000000020688ab9061b0d0dd9741c2805dd3de9ddacb65bbe8bb00727bbd85ddbd0d20a3c0000000000000001000000000000000100000000000000202dff2e1df9d9260694d6943eeed7ed299be05f30469e7d9962cf0b4350179ed100000000000000010000000000000001000000000000002071439899e46f8347a807ce2ad5a7677ad60be0abf0200bed21bfa750e2803fd900000000000000010000000000000000000000000000002053079eb9f250dc3c24e130d3cfe6b33850d7952eaf3358caa62c406b9951f6fb00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000000500000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d400000000000000070000000000000001000000000000000000000000000000200609d730339a973cd316874ba80a53c12a113bf866010e5af9370a821da71f25000000000000000100000000000000010000000000000020b3e4c372aa6367e8f86d28aa9369dc3363a62f77a8d8b1e20e1e7417d6e814d800000000000000010000000000000000000000000000002062a86c254e2a4365cebe59f263b2368974b31779e8358e2fc797f35717f53b7a0000000000000001000000000000000100000000000000209ec7c236e135c223fb251312761f2a9378a9423b3c5897609b9f00184e022be000000000000000010000000000000001000000000000002079c2ed00949e9f96d4f87c754bb9202bf16e0a8e3d3303ce659489a4962f82bf000000000000000100000000000000010000000000000020113e27b5901897167a0448d1dbb7d377e86eb7437aa10f6d9c449e12d269af880000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab1150000000000000005000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000006000000000000000100000000000000000000000000000020837d5b29fa360c9ff857978b44d8ae87081b508606a7807210f0a9699f8919de000000000000000100000000000000010000000000000020aca880a192545f491319ee360368631afdb16183f3190af6878506765774060400000000000000010000000000000000000000000000002043838477e9f1673f2d7e7ea665402abe8c8fd41f7961b10d7ff11934281c21c1000000000000000100000000000000010000000000000020ab3923d8895efbab25b1d9beeaad8c7acc3da96df78631e18214295fac01c5f2000000000000000100000000000000010000000000000020e9ebb4cf521fd9c5e6f70e93cbb3e25cc601550aa28b21d91e3249db3e747b1700000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd600000000000000050000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb71600000000000000050000000000000001000000000000000000000000000000201f50d40d04dc8bea176e530bc3d73b6f31e1e4fc1b865f86909f0fb1706c30ca000000000000000100000000000000010000000000000020bb0fd9899f25157d2fb62a3d74f25280d5a2afef47d86e8616ea234f150b8c370000000000000001000000000000000000000000000000206ad302f7496266239fd115a1b579a74dce557fa3e13c7170f4a261192829d6d70000000000000001000000000000000100000000000000200282245398e29bbcb055f5c06e1dfdc51199ecde0d784c712f1ef52fd142fe7a00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000007c00000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d40000000000000007000000000000000100000000000000010000000000000020e064e4ba894887a58b11e6706f390252f19f2ceb85419ab526596471d2212bab0000000000000001000000000000000100000000000000207bcea6b848bb93875b38f8cf49a8ea6918c9f3ea4996a0454042fe7aaa5a30a7000000000000000100000000000000000000000000000020bae9f68f6fa109668710d52e314c81a0736447ae63f82f8d30e2cf8b0fed55b800000000000000010000000000000000000000000000002095360d8b7bb69cdb3a0f776e371368dd76f29edb7f025682bf58ad24f7112bfd00000000000000010000000000000000000000000000002020e7a6a3a271902f8201f64eed3af53047f6ccca55a2d2233d2f9e66edb2130e000000000000000100000000000000000000000000000020ea1d0f8669b9afe823f0be1e90c0d5799ac3fd8c4366cd231da9ab3e040ba5fd0000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad000000000000003c000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d00000000000000060000000000000001000000000000000100000000000000200d53471b7d2a58b730f0ace02cd6f4e78125b7761ae61803cf4475543843c1d3000000000000000100000000000000010000000000000020c086053a3fd36eaf468d8e401388df994a2352b10be4e75992535fcc77b92ce60000000000000001000000000000000000000000000000208a9e287433581f6b9d56498db08e05d56d0bbf4e52cf85ccd0177e2a51392f3c000000000000000100000000000000000000000000000020109e4b15f3ee6308ead76f6ca587b7fcbef4e619101397ce8cc2504c9c5aadf7000000000000000100000000000000000000000000000020ca730090e7756d1979c0efd26d1191147ba040a03bf2f73f6ef36813aa05d3fc000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f6000000000000001c0000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb7160000000000000005000000000000000100000000000000010000000000000020c05107692c3e62231e6ff29c508ed6212ff0198e3a7675e55bc691eb9e9436500000000000000001000000000000000100000000000000208b3a86f131b9f3304c2a51ee420963bab9ab32369059c732ebf11fa824008fe7000000000000000100000000000000000000000000000020755753761e27de0c2ba56fb717cf6d81433daee5e14d738fd8b29367fa62ef5000000000000000010000000000000000000000000000002028bf280a9b60983357317cbee8d19467a1cf8ec7148c53d7bada7cd92ef19ad00000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000005000000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d4000000000000000700000000000000010000000000000001000000000000002008c155832d9d0ae510ebd92ef5dd08ed74726a66a799a66934ce165e63d9c3cb000000000000000100000000000000010000000000000020838fbf34ffc0b73c75af3f13704015c0e534e9efd82fa67bf1a6eb1f3525c7fe000000000000000100000000000000010000000000000020fed08d8f1e1ca3b4696fb2617fcec1831ff7782aac983c64b03ee1ded3061431000000000000000100000000000000010000000000000020d864edee9f548a784b6ffb182f4ae45cdd6077a8c8403b12657510c68899e168000000000000000100000000000000000000000000000020e7f239c394c0b7498d56f58ef3d17be39cf67a3054e7f253a475e15c2a75b9ea0000000000000001000000000000000100000000000000204ca795af155a2c7afd3b9e7575a9709140809b5e2fd6a6996408d80f7cbb64c00000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad0000000000000010000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d000000000000000600000000000000010000000000000001000000000000002075a6b53a1b5fd7044a8cf813693213ff0d58193bfdc0bc418b04adf2d526b562000000000000000100000000000000010000000000000020fe8ff67cae48a8825f0d7632e34ec0771065c7079994c81177447736ba2a0a73000000000000000100000000000000010000000000000020eca1f5cae72294c9e87bfbeaaef6e10a6d1690bc010fbf41f865a7027f599ea100000000000000010000000000000001000000000000002010d98525b43a4e9c9e72f1fff87bfb2fc5dc34645d0cb12c9f9387c082d0fd34000000000000000100000000000000000000000000000020fbb52e94d0613a9653eab6b27f7ddc0142800af7303d0d579d7c32d539f4933900000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd600000000000000100000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb7160000000000000005000000000000000100000000000000010000000000000020e8693cdb67d089fa6387e681eda2f9bde47bbcd38424b21b159dfd5ae9f01886000000000000000100000000000000010000000000000020535a39e609e7abe7c56e456d3d8d5c2ea750717e9f74c38bfabf529e3f333ee400000000000000010000000000000001000000000000002048f2a4d54acd77830ac8e25c135d3199bdcde7a3a69ecfbcf0c2f866d4cfb8e700000000000000010000000000000001000000000000002086b66390884356d6e0ba36d0a9c244fe6b858c6ee4773fc74d24113eaa363d050000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000004800000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d400000000000000070000000000000001000000000000000100000000000000204318518404907dc61dc3a1baef2b0b797187cdac1f43aa6b389dbf8d5a6cb8200000000000000001000000000000000100000000000000204a7b504fe903a484fbda0e9b89fc0f7891461cef78f1791b46faa673ea71a8d2000000000000000100000000000000010000000000000020ef334171ef36d500862572b144a473dde3c9e7351ae67eab71da6c8c8bfdd1c90000000000000001000000000000000000000000000000201863686499cab26760c4bc406bd87c45ee0eddea2b56a57b87448f64749186b80000000000000001000000000000000100000000000000208cc5e71a30a21c9c253015196dd0e4ce43441359f25bcff69dd2d76e3094b55f0000000000000001000000000000000100000000000000204ca795af155a2c7afd3b9e7575a9709140809b5e2fd6a6996408d80f7cbb64c00000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad0000000000000008000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000006000000000000000100000000000000010000000000000020aaefb3ea1ebd231e309c0effaf45ab8610b3cc657009fcf6c3456d1114265d69000000000000000100000000000000010000000000000020fddacde4f46a4d2a3a59776f3fc7f2f99482debb3940e61070f9e48efbdf82a6000000000000000100000000000000010000000000000020c35f57174d244bc93de5962cd3eafe8c7ce0bd4e411b8ea6d6dcec80f3235fad000000000000000100000000000000000000000000000020020ed5189b3c1f2a40e54dfe6de25896b013e0500d8c66842ecbc668174ae62b000000000000000100000000000000010000000000000020e9ebb4cf521fd9c5e6f70e93cbb3e25cc601550aa28b21d91e3249db3e747b1700000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd600000000000000080000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb716000000000000000500000000000000010000000000000001000000000000002000cea01495a73e46331b8a5087d2cd24470c01c74c5790084204726da2a862ed0000000000000001000000000000000100000000000000202dff2e1df9d9260694d6943eeed7ed299be05f30469e7d9962cf0b4350179ed100000000000000010000000000000001000000000000002071439899e46f8347a807ce2ad5a7677ad60be0abf0200bed21bfa750e2803fd900000000000000010000000000000000000000000000002053079eb9f250dc3c24e130d3cfe6b33850d7952eaf3358caa62c406b9951f6fb00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000001e00000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d40000000000000007000000000000000100000000000000010000000000000020826ad32f93eb44be39737b6579a52ed024a0a8574a2fb7396380ca6be6748d03000000000000000100000000000000000000000000000020c32aa3382726d2ed8b681297576ff2961915a0436c1f7bb0c2f26f1fd6eb9b3d0000000000000001000000000000000000000000000000208bf0eed998e140fa07a34d13571e1c4194e8bd1bb6a416f2990f08911685c67a000000000000000100000000000000000000000000000020553e242e957da0e4a74c97fa591461e21736d84be341f9093b3adf69633165440000000000000001000000000000000000000000000000204b193d9a2fb3439a6ec753384b5fdac5bf47e4638ac4d5ec34f71860616f7d26000000000000000100000000000000010000000000000020113e27b5901897167a0448d1dbb7d377e86eb7437aa10f6d9c449e12d269af880000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab115000000000000001e000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000006000000000000000100000000000000010000000000000020ace14c15d3f13ad1478fe2f7221525d9c1d60b083f694ee39cd63c62cabf7dcd000000000000000100000000000000000000000000000020cb7134f2166e0567e1a64ad18ef358fdd4e4b1e19d57cb05c4104b9e8166edee000000000000000100000000000000000000000000000020c3bb5f76e7bd5b66a7de5885d519979f4431077b88c76ca730c0c015236bb24700000000000000010000000000000000000000000000002057e4becd876b2e534f7f94cc742d05ce83b1fa998b6412364fd2d5369abd4511000000000000000100000000000000000000000000000020fbb52e94d0613a9653eab6b27f7ddc0142800af7303d0d579d7c32d539f4933900000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd6000000000000001e0000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb71600000000000000050000000000000001000000000000000100000000000000206fd88d6627cb51ce2b00b7a20c466e1d613a9f113e2a00cba576cadc4752e66b000000000000000100000000000000000000000000000020d7720b4b58150868a3443741546e82ad658ad115ed35b2c2042060056627332a000000000000000100000000000000000000000000000020755753761e27de0c2ba56fb717cf6d81433daee5e14d738fd8b29367fa62ef5000000000000000010000000000000000000000000000002028bf280a9b60983357317cbee8d19467a1cf8ec7148c53d7bada7cd92ef19ad00000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000000400000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d400000000000000070000000000000001000000000000000100000000000000203262ffe00481df3f2d4dee97034cb78f32646869299d08c2002bc33db4aa1130000000000000000100000000000000010000000000000020b3e4c372aa6367e8f86d28aa9369dc3363a62f77a8d8b1e20e1e7417d6e814d800000000000000010000000000000000000000000000002062a86c254e2a4365cebe59f263b2368974b31779e8358e2fc797f35717f53b7a0000000000000001000000000000000100000000000000209ec7c236e135c223fb251312761f2a9378a9423b3c5897609b9f00184e022be000000000000000010000000000000001000000000000002079c2ed00949e9f96d4f87c754bb9202bf16e0a8e3d3303ce659489a4962f82bf000000000000000100000000000000010000000000000020113e27b5901897167a0448d1dbb7d377e86eb7437aa10f6d9c449e12d269af880000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab1150000000000000004000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000006000000000000000100000000000000010000000000000020a934aaebd88310ae31ed896cd40b99173805a0f4af561a18c1959ee9ac2a3ffa000000000000000100000000000000010000000000000020aca880a192545f491319ee360368631afdb16183f3190af6878506765774060400000000000000010000000000000000000000000000002043838477e9f1673f2d7e7ea665402abe8c8fd41f7961b10d7ff11934281c21c1000000000000000100000000000000010000000000000020ab3923d8895efbab25b1d9beeaad8c7acc3da96df78631e18214295fac01c5f2000000000000000100000000000000010000000000000020e9ebb4cf521fd9c5e6f70e93cbb3e25cc601550aa28b21d91e3249db3e747b1700000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd600000000000000040000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb716000000000000000500000000000000010000000000000001000000000000002068f08d45405fe498fb4fd736761a77cc9cc5ecdc8261847a8333763d7188bb1b000000000000000100000000000000010000000000000020bb0fd9899f25157d2fb62a3d74f25280d5a2afef47d86e8616ea234f150b8c370000000000000001000000000000000000000000000000206ad302f7496266239fd115a1b579a74dce557fa3e13c7170f4a261192829d6d70000000000000001000000000000000100000000000000200282245398e29bbcb055f5c06e1dfdc51199ecde0d784c712f1ef52fd142fe7a00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000006a00000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d400000000000000070000000000000001000000000000000100000000000000200eafc1e1b6b24c7d3bbef436beb3128c2eeecb3a9dbf0b535baba3a3891b6eec000000000000000100000000000000000000000000000020f3152c1da90371aa53dbe7241ced242beb3557074b3c72c85f7719598be59b5600000000000000010000000000000001000000000000002043932f3e384fbddfe1bd37deb7c0cab286f92cec12bfb0550d0b912548777824000000000000000100000000000000000000000000000020f85733e031fa6d105167a08b1c0c4aa7adf12f0649d84c9ccbd5093cfae1b9810000000000000001000000000000000100000000000000204e50d1a6000824f5cb7d9eb885680a1671d88dafc78a454b198d6c47b16595c9000000000000000100000000000000000000000000000020ea1d0f8669b9afe823f0be1e90c0d5799ac3fd8c4366cd231da9ab3e040ba5fd0000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad000000000000002a000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d000000000000000600000000000000010000000000000001000000000000002004c22efd24a03b54487f91c925ebc75eff59908f67cfff992cf6b97cb472ee46000000000000000100000000000000000000000000000020164199ac661f0643ed3e40bc489a7c86c793617e24edb0e5a4f126e29888564c000000000000000100000000000000010000000000000020c785a107ccd44a8109eef6c62a2f7d66cf98c3c8c1e5f114493e8adc02afc02f000000000000000100000000000000000000000000000020d0212e386a105cf30b473e6cf1bedb9fdccedf2971be1402d648e94463b516b1000000000000000100000000000000010000000000000020d38ca383fe0726dc7c544c95a4ff50a46052b0e4bd3942c8249176238407541c000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f6000000000000000a0000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb716000000000000000500000000000000010000000000000001000000000000002066c80b1683cbb6ae555736cfd5ac97535bfea91663cc91e8a953183b13a47059000000000000000100000000000000000000000000000020c57eed22efa0ad64274179e1a683226dbe2088f942f0f1e942d5591106342bb800000000000000010000000000000001000000000000002071439899e46f8347a807ce2ad5a7677ad60be0abf0200bed21bfa750e2803fd900000000000000010000000000000000000000000000002053079eb9f250dc3c24e130d3cfe6b33850d7952eaf3358caa62c406b9951f6fb00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000006300000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d400000000000000070000000000000001000000000000000000000000000000200fde624a4f587d25b0563c15feedbc94199009e13e56362620aa64d9c08b704900000000000000010000000000000000000000000000002016339e0173a756ec50799562df5927365898d67c70c0830b78184ca41e81142900000000000000010000000000000001000000000000002021afe788ac31af4b11ef7f394e29ccceb8bb1151616522217b7258d27256685700000000000000010000000000000001000000000000002073a94e58c99ebe0edf773de28ec1717ed4b07539ca622abdac5d76d76b6a496f0000000000000001000000000000000100000000000000204e50d1a6000824f5cb7d9eb885680a1671d88dafc78a454b198d6c47b16595c9000000000000000100000000000000000000000000000020ea1d0f8669b9afe823f0be1e90c0d5799ac3fd8c4366cd231da9ab3e040ba5fd0000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad0000000000000023000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000006000000000000000100000000000000000000000000000020a6d607c9f2f3f1084eb838c5749cdba5b996553b449d726ca88d54d74e31e216000000000000000100000000000000000000000000000020773bc4c7c27c41430ffee385ec5c808485272762199886b1098e5680571bacd100000000000000010000000000000001000000000000002005959e9f458eb006e8dbc5a56687404d64b67c89677890e636112defb543d223000000000000000100000000000000010000000000000020e4f3c608663a27ed9a046dd2ea6cfa6c72508fff2ae84cebae55ed9eba51e2ca000000000000000100000000000000010000000000000020d38ca383fe0726dc7c544c95a4ff50a46052b0e4bd3942c8249176238407541c000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f600000000000000030000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb7160000000000000005000000000000000100000000000000000000000000000020d3652e740bdee709de72f10df92c362b09c029ea89cd2d7fbc004e2aaf27bed200000000000000010000000000000000000000000000002065f2d996d12c77de529c1f218dd2519357ce354ac49e581f6091f733a916f2d700000000000000010000000000000001000000000000002011363b65ff7c738d83af6e5d344c6566f286bd01b544c629adb93175b4f064970000000000000001000000000000000100000000000000200282245398e29bbcb055f5c06e1dfdc51199ecde0d784c712f1ef52fd142fe7a00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000003800000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d4000000000000000700000000000000010000000000000001000000000000002056f057141408f2eb2a99cbfc061e0178f5f5abf997fba02835a8bb1d93fd9e4e0000000000000001000000000000000100000000000000208981070ce323dce866a9a0d4a6f9d90defac47c59f207a18104d0570d2237dd8000000000000000100000000000000010000000000000020fe9922daa4fd105b4c6642933f33b23800ba3aeb33f2701346f193755a1858b50000000000000001000000000000000000000000000000209290771463853e16cc59740707ee1bbb664631bc8c1b58a7932ae346e0c16c4e000000000000000100000000000000000000000000000020deeb55e97dc611a451ec661f0f6a548de23e4909b63a2565b895ba61e8d002ef000000000000000100000000000000000000000000000020fbb638c189c1da035d1f63ff29391d2920eb4bd9b760bd5b5f84dbcaea676d040000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab1150000000000000038000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d00000000000000060000000000000001000000000000000100000000000000201603465efde5986ec8aff1fed324099e453bc5dad4cf51cf2febcb5a4e0046bc000000000000000100000000000000010000000000000020b160687c92ac720bb66e8974eb244ed621908c1fc732dedea5cb6454438f7764000000000000000100000000000000010000000000000020c067c68d47571db8122ed48de76c7e9b76870e3484185f2cda51d68170d31005000000000000000100000000000000000000000000000020109e4b15f3ee6308ead76f6ca587b7fcbef4e619101397ce8cc2504c9c5aadf7000000000000000100000000000000000000000000000020ca730090e7756d1979c0efd26d1191147ba040a03bf2f73f6ef36813aa05d3fc000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f600000000000000180000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb71600000000000000050000000000000001000000000000000100000000000000207efd8d1b861935e3f47d68976e1ee096db8665ff071dae91e42d92498d013b86000000000000000100000000000000010000000000000020e817308183c115f1fc1eac677eba677b7d8950f498a27f9e2272521727285f7d00000000000000010000000000000001000000000000002030531fd9431cd47ac82637bc43085ddde3a63de8868db6c93d1c7459f9137cd300000000000000010000000000000000000000000000002028bf280a9b60983357317cbee8d19467a1cf8ec7148c53d7bada7cd92ef19ad00000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000000600000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d40000000000000007000000000000000100000000000000010000000000000020d61fd397fc032d92e57866baadb6d8fe668538eb1e73d1710fdf97540c3802dd000000000000000100000000000000000000000000000020e3d2e1725a02cf29d216708cd432948ac39e625ba793eb8521626a2ca866d80b00000000000000010000000000000000000000000000002062a86c254e2a4365cebe59f263b2368974b31779e8358e2fc797f35717f53b7a0000000000000001000000000000000100000000000000209ec7c236e135c223fb251312761f2a9378a9423b3c5897609b9f00184e022be000000000000000010000000000000001000000000000002079c2ed00949e9f96d4f87c754bb9202bf16e0a8e3d3303ce659489a4962f82bf000000000000000100000000000000010000000000000020113e27b5901897167a0448d1dbb7d377e86eb7437aa10f6d9c449e12d269af880000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab1150000000000000006000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d000000000000000600000000000000010000000000000001000000000000002090cbe74ea02194055efe0dc5a41a2fb0b0ce98d2d3a34f4166a274200e635b4e000000000000000100000000000000000000000000000020f2795de5989931a34c8755486566f5d495fd57f2bd387a2ce7eef6881116dc2300000000000000010000000000000000000000000000002043838477e9f1673f2d7e7ea665402abe8c8fd41f7961b10d7ff11934281c21c1000000000000000100000000000000010000000000000020ab3923d8895efbab25b1d9beeaad8c7acc3da96df78631e18214295fac01c5f2000000000000000100000000000000010000000000000020e9ebb4cf521fd9c5e6f70e93cbb3e25cc601550aa28b21d91e3249db3e747b1700000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd600000000000000060000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb71600000000000000050000000000000001000000000000000100000000000000201fd4b6134479d7c8e61c73da358a84b53dc760fd31142901d1b4bb0e4590633a000000000000000100000000000000000000000000000020486e1bb072c641d035cbfd2b3e22f37a6ada1e3b06f2e3c6a21f71fc5a207aac0000000000000001000000000000000000000000000000206ad302f7496266239fd115a1b579a74dce557fa3e13c7170f4a261192829d6d70000000000000001000000000000000100000000000000200282245398e29bbcb055f5c06e1dfdc51199ecde0d784c712f1ef52fd142fe7a00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000000800000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d400000000000000070000000000000001000000000000000100000000000000201db1b0a6e83111d03a00dea3d095597b003f8c28952998a5ac15539a93d97db300000000000000010000000000000001000000000000002050d1b6e4c7682963fa360211e4a752a02ae8c1cb48ec2e542f3920442c6ef6bf000000000000000100000000000000010000000000000020d7185b6ef7846c634eefb50e4cfb826a08178d910180ad44795bc9e1e407f3bd0000000000000001000000000000000000000000000000202e1c38121e828022c78a35c84ef2b7ec45a335ee84e30559f73108e705e0c5f700000000000000010000000000000001000000000000002079c2ed00949e9f96d4f87c754bb9202bf16e0a8e3d3303ce659489a4962f82bf000000000000000100000000000000010000000000000020113e27b5901897167a0448d1dbb7d377e86eb7437aa10f6d9c449e12d269af880000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab1150000000000000008000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000006000000000000000100000000000000010000000000000020aaefb3ea1ebd231e309c0effaf45ab8610b3cc657009fcf6c3456d1114265d69000000000000000100000000000000010000000000000020fddacde4f46a4d2a3a59776f3fc7f2f99482debb3940e61070f9e48efbdf82a6000000000000000100000000000000010000000000000020c35f57174d244bc93de5962cd3eafe8c7ce0bd4e411b8ea6d6dcec80f3235fad000000000000000100000000000000000000000000000020020ed5189b3c1f2a40e54dfe6de25896b013e0500d8c66842ecbc668174ae62b000000000000000100000000000000010000000000000020e9ebb4cf521fd9c5e6f70e93cbb3e25cc601550aa28b21d91e3249db3e747b1700000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd600000000000000080000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb716000000000000000500000000000000010000000000000001000000000000002000cea01495a73e46331b8a5087d2cd24470c01c74c5790084204726da2a862ed0000000000000001000000000000000100000000000000202dff2e1df9d9260694d6943eeed7ed299be05f30469e7d9962cf0b4350179ed100000000000000010000000000000001000000000000002071439899e46f8347a807ce2ad5a7677ad60be0abf0200bed21bfa750e2803fd900000000000000010000000000000000000000000000002053079eb9f250dc3c24e130d3cfe6b33850d7952eaf3358caa62c406b9951f6fb00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000006900000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d4000000000000000700000000000000010000000000000000000000000000002043609cd6c56575e638e4556f3542711b3deda4667de73987824d5b00563087f100000000000000010000000000000001000000000000002080887f2e3189e45edcd0e775fa7fbf880a92630216c929ed7134f08e9ef2cf1e00000000000000010000000000000001000000000000002043932f3e384fbddfe1bd37deb7c0cab286f92cec12bfb0550d0b912548777824000000000000000100000000000000000000000000000020f85733e031fa6d105167a08b1c0c4aa7adf12f0649d84c9ccbd5093cfae1b9810000000000000001000000000000000100000000000000204e50d1a6000824f5cb7d9eb885680a1671d88dafc78a454b198d6c47b16595c9000000000000000100000000000000000000000000000020ea1d0f8669b9afe823f0be1e90c0d5799ac3fd8c4366cd231da9ab3e040ba5fd0000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad0000000000000029000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d00000000000000060000000000000001000000000000000000000000000000204cbc345704ec816cde6ce64bd82eacbf6f60c5d3c967cf3dd0797acd5855cc79000000000000000100000000000000010000000000000020dda727ff5aceb31fcd279f1f76b22ad6ff9fcb430cf35d04f3a27e4c9adbe598000000000000000100000000000000010000000000000020c785a107ccd44a8109eef6c62a2f7d66cf98c3c8c1e5f114493e8adc02afc02f000000000000000100000000000000000000000000000020d0212e386a105cf30b473e6cf1bedb9fdccedf2971be1402d648e94463b516b1000000000000000100000000000000010000000000000020d38ca383fe0726dc7c544c95a4ff50a46052b0e4bd3942c8249176238407541c000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f600000000000000090000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb7160000000000000005000000000000000100000000000000000000000000000020688ab9061b0d0dd9741c2805dd3de9ddacb65bbe8bb00727bbd85ddbd0d20a3c0000000000000001000000000000000100000000000000202dff2e1df9d9260694d6943eeed7ed299be05f30469e7d9962cf0b4350179ed100000000000000010000000000000001000000000000002071439899e46f8347a807ce2ad5a7677ad60be0abf0200bed21bfa750e2803fd900000000000000010000000000000000000000000000002053079eb9f250dc3c24e130d3cfe6b33850d7952eaf3358caa62c406b9951f6fb00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000005e00000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d400000000000000070000000000000001000000000000000100000000000000200f059f556c3db6d2c5812592d070eaa7271a1df9ce4715f36380ffda11d35948000000000000000100000000000000000000000000000020a38d74a2795340b5927064f4481ebec327452b02d4112e251e5269c1a1a5f67b0000000000000001000000000000000000000000000000202b9642230b7bf3feee28f9e4191861c90a2ed62e483c93f410fa8f79b3992ed80000000000000001000000000000000000000000000000202a846bbbbaf1e053b06a0bb8f3041ec8660d6fd40bbb7473d2b1e91fe008ee54000000000000000100000000000000000000000000000020e7f239c394c0b7498d56f58ef3d17be39cf67a3054e7f253a475e15c2a75b9ea0000000000000001000000000000000100000000000000204ca795af155a2c7afd3b9e7575a9709140809b5e2fd6a6996408d80f7cbb64c00000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad000000000000001e000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000006000000000000000100000000000000010000000000000020ace14c15d3f13ad1478fe2f7221525d9c1d60b083f694ee39cd63c62cabf7dcd000000000000000100000000000000000000000000000020cb7134f2166e0567e1a64ad18ef358fdd4e4b1e19d57cb05c4104b9e8166edee000000000000000100000000000000000000000000000020c3bb5f76e7bd5b66a7de5885d519979f4431077b88c76ca730c0c015236bb24700000000000000010000000000000000000000000000002057e4becd876b2e534f7f94cc742d05ce83b1fa998b6412364fd2d5369abd4511000000000000000100000000000000000000000000000020fbb52e94d0613a9653eab6b27f7ddc0142800af7303d0d579d7c32d539f4933900000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd6000000000000001e0000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb71600000000000000050000000000000001000000000000000100000000000000206fd88d6627cb51ce2b00b7a20c466e1d613a9f113e2a00cba576cadc4752e66b000000000000000100000000000000000000000000000020d7720b4b58150868a3443741546e82ad658ad115ed35b2c2042060056627332a000000000000000100000000000000000000000000000020755753761e27de0c2ba56fb717cf6d81433daee5e14d738fd8b29367fa62ef5000000000000000010000000000000000000000000000002028bf280a9b60983357317cbee8d19467a1cf8ec7148c53d7bada7cd92ef19ad00000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000002100000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d400000000000000070000000000000001000000000000000000000000000000207a65bf5b5472a654b9163b95ff070b5cb39b355aaf1cdf0d689ffcc4aa05a4600000000000000001000000000000000100000000000000206e8915743d0e7aaf6639bd54d8fc1d8cb8965ed6cb56feb1d13c213cfd550532000000000000000100000000000000010000000000000020139d4e94cc883d92ee2e45d1a28f82987daebcf5bfd2fa93188bbee74d9f146b000000000000000100000000000000010000000000000020197fef0590d7d2b89088f76246e61349a825bd6009b13bb0103a5a5ade2326ce00000000000000010000000000000001000000000000002046741959925884c1313b2341b9cef208234481e221f61a5dd7b22b5631e24c98000000000000000100000000000000000000000000000020fbb638c189c1da035d1f63ff29391d2920eb4bd9b760bd5b5f84dbcaea676d040000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab1150000000000000021000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d000000000000000600000000000000010000000000000000000000000000002074c07a34cc99f2504283d2471aa98e70c3dd4e2ee2abf9bfbe865b3603fd821800000000000000010000000000000001000000000000002003274a3b9d01c581a89369fa5e9a3b08a4b3009b4a88784562b4eba960f4e57200000000000000010000000000000001000000000000002005959e9f458eb006e8dbc5a56687404d64b67c89677890e636112defb543d223000000000000000100000000000000010000000000000020e4f3c608663a27ed9a046dd2ea6cfa6c72508fff2ae84cebae55ed9eba51e2ca000000000000000100000000000000010000000000000020d38ca383fe0726dc7c544c95a4ff50a46052b0e4bd3942c8249176238407541c000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f600000000000000010000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb716000000000000000500000000000000010000000000000000000000000000002092dc190aff1a5be9574e9362cc2c9939434f80288b8e1856412364fcd6a63187000000000000000100000000000000010000000000000020858945fcd02dafce48e632e41f9689536b4e66548e2f14c916c83c66a6d06e7700000000000000010000000000000001000000000000002011363b65ff7c738d83af6e5d344c6566f286bd01b544c629adb93175b4f064970000000000000001000000000000000100000000000000200282245398e29bbcb055f5c06e1dfdc51199ecde0d784c712f1ef52fd142fe7a00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000005400000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d400000000000000070000000000000001000000000000000100000000000000204594703f96b398a1e5420a5e6744c31c6d5e9e58baa8f79a68bcc94efcc4f5d2000000000000000100000000000000010000000000000020ac5150f2fe6faa4efa45f86b421ca665a1df43e5401494ec5f930550a1a2a5810000000000000001000000000000000000000000000000206ef35ad2bfce21fa1fd52a8bfe39eeb4ffcf890cf82e5aef1a76bf73dc94d564000000000000000100000000000000010000000000000020d864edee9f548a784b6ffb182f4ae45cdd6077a8c8403b12657510c68899e168000000000000000100000000000000000000000000000020e7f239c394c0b7498d56f58ef3d17be39cf67a3054e7f253a475e15c2a75b9ea0000000000000001000000000000000100000000000000204ca795af155a2c7afd3b9e7575a9709140809b5e2fd6a6996408d80f7cbb64c00000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad0000000000000014000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000006000000000000000100000000000000010000000000000020bd4e24e9383b4055d2f8adb1e0751f627c2faf49f809f1fced720e7acf7baeb9000000000000000100000000000000010000000000000020914634830ae59285928a28ae488e0e5273ebca53a320cea935202d06bd214c3a0000000000000001000000000000000000000000000000206658666c770331d0d45cb0f2b186115067839a2118ceaac27d23a4fa44ceb70700000000000000010000000000000001000000000000002010d98525b43a4e9c9e72f1fff87bfb2fc5dc34645d0cb12c9f9387c082d0fd34000000000000000100000000000000000000000000000020fbb52e94d0613a9653eab6b27f7ddc0142800af7303d0d579d7c32d539f4933900000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd600000000000000140000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb71600000000000000050000000000000001000000000000000100000000000000200c8af5fa5b0c10ef4ce058a00cd51885c717afde2f84bfe8f0eee280178c04bf000000000000000100000000000000010000000000000020586402f83101f3110ed73a69a92f752cafb87fdddd975fd4eb6df6719daa9d3f000000000000000100000000000000000000000000000020b84c7066ba730edc7e3f02ed64bcef5daa7a4af947ae50e5a733ce7c1eb4bbd500000000000000010000000000000001000000000000002086b66390884356d6e0ba36d0a9c244fe6b858c6ee4773fc74d24113eaa363d050000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000006100000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d4000000000000000700000000000000010000000000000000000000000000002043f116be981d96b5372eae77b221bba97124fe92cd5dbbeced88caf1fc840bee00000000000000010000000000000001000000000000002085b5219175d50ec6025287cb82d92f83f72601128eed10445b1a77020e560c6f00000000000000010000000000000001000000000000002021afe788ac31af4b11ef7f394e29ccceb8bb1151616522217b7258d27256685700000000000000010000000000000001000000000000002073a94e58c99ebe0edf773de28ec1717ed4b07539ca622abdac5d76d76b6a496f0000000000000001000000000000000100000000000000204e50d1a6000824f5cb7d9eb885680a1671d88dafc78a454b198d6c47b16595c9000000000000000100000000000000000000000000000020ea1d0f8669b9afe823f0be1e90c0d5799ac3fd8c4366cd231da9ab3e040ba5fd0000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad0000000000000021000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d000000000000000600000000000000010000000000000000000000000000002074c07a34cc99f2504283d2471aa98e70c3dd4e2ee2abf9bfbe865b3603fd821800000000000000010000000000000001000000000000002003274a3b9d01c581a89369fa5e9a3b08a4b3009b4a88784562b4eba960f4e57200000000000000010000000000000001000000000000002005959e9f458eb006e8dbc5a56687404d64b67c89677890e636112defb543d223000000000000000100000000000000010000000000000020e4f3c608663a27ed9a046dd2ea6cfa6c72508fff2ae84cebae55ed9eba51e2ca000000000000000100000000000000010000000000000020d38ca383fe0726dc7c544c95a4ff50a46052b0e4bd3942c8249176238407541c000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f600000000000000010000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb716000000000000000500000000000000010000000000000000000000000000002092dc190aff1a5be9574e9362cc2c9939434f80288b8e1856412364fcd6a63187000000000000000100000000000000010000000000000020858945fcd02dafce48e632e41f9689536b4e66548e2f14c916c83c66a6d06e7700000000000000010000000000000001000000000000002011363b65ff7c738d83af6e5d344c6566f286bd01b544c629adb93175b4f064970000000000000001000000000000000100000000000000200282245398e29bbcb055f5c06e1dfdc51199ecde0d784c712f1ef52fd142fe7a00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000005800000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d40000000000000007000000000000000100000000000000010000000000000020a6305bbbf3fbdf087a8ad244fc3312084d23d5fdd8331ce9233854f5133748cf000000000000000100000000000000010000000000000020a42e0416499c49bbf5478db441836c74f14e9676ccb1c6351b28e54da78c7525000000000000000100000000000000010000000000000020aa1615393cc94724f215604cc33fdd9436c575898d32736804b739ab65adbb270000000000000001000000000000000000000000000000202a846bbbbaf1e053b06a0bb8f3041ec8660d6fd40bbb7473d2b1e91fe008ee54000000000000000100000000000000000000000000000020e7f239c394c0b7498d56f58ef3d17be39cf67a3054e7f253a475e15c2a75b9ea0000000000000001000000000000000100000000000000204ca795af155a2c7afd3b9e7575a9709140809b5e2fd6a6996408d80f7cbb64c00000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad0000000000000018000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d000000000000000600000000000000010000000000000001000000000000002099949634d53ad214664f3d4468da0eb4ab5c52250269882ea8855e092a7cd497000000000000000100000000000000010000000000000020c2570e6437fd220fb7851947bca18c0f6bbc870ec3bf1375d5af3d711397aca30000000000000001000000000000000100000000000000202a45cda084f06b0726a17071823c8af99d096f8609e863cef3bbabd644d7ad7d00000000000000010000000000000000000000000000002057e4becd876b2e534f7f94cc742d05ce83b1fa998b6412364fd2d5369abd4511000000000000000100000000000000000000000000000020fbb52e94d0613a9653eab6b27f7ddc0142800af7303d0d579d7c32d539f4933900000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd600000000000000180000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb71600000000000000050000000000000001000000000000000100000000000000207efd8d1b861935e3f47d68976e1ee096db8665ff071dae91e42d92498d013b86000000000000000100000000000000010000000000000020e817308183c115f1fc1eac677eba677b7d8950f498a27f9e2272521727285f7d00000000000000010000000000000001000000000000002030531fd9431cd47ac82637bc43085ddde3a63de8868db6c93d1c7459f9137cd300000000000000010000000000000000000000000000002028bf280a9b60983357317cbee8d19467a1cf8ec7148c53d7bada7cd92ef19ad00000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000005500000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d4000000000000000700000000000000010000000000000000000000000000002022b64fac42b8e58e0c6ddc0aa9298f2b0de8ca3938b3a4d18fa84f734a598382000000000000000100000000000000010000000000000020ac5150f2fe6faa4efa45f86b421ca665a1df43e5401494ec5f930550a1a2a5810000000000000001000000000000000000000000000000206ef35ad2bfce21fa1fd52a8bfe39eeb4ffcf890cf82e5aef1a76bf73dc94d564000000000000000100000000000000010000000000000020d864edee9f548a784b6ffb182f4ae45cdd6077a8c8403b12657510c68899e168000000000000000100000000000000000000000000000020e7f239c394c0b7498d56f58ef3d17be39cf67a3054e7f253a475e15c2a75b9ea0000000000000001000000000000000100000000000000204ca795af155a2c7afd3b9e7575a9709140809b5e2fd6a6996408d80f7cbb64c00000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad0000000000000015000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000006000000000000000100000000000000000000000000000020673a09eccc910df37039193afb1f7b15d99b018e5c39da2a350d2ace7fe0e011000000000000000100000000000000010000000000000020914634830ae59285928a28ae488e0e5273ebca53a320cea935202d06bd214c3a0000000000000001000000000000000000000000000000206658666c770331d0d45cb0f2b186115067839a2118ceaac27d23a4fa44ceb70700000000000000010000000000000001000000000000002010d98525b43a4e9c9e72f1fff87bfb2fc5dc34645d0cb12c9f9387c082d0fd34000000000000000100000000000000000000000000000020fbb52e94d0613a9653eab6b27f7ddc0142800af7303d0d579d7c32d539f4933900000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd600000000000000150000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb716000000000000000500000000000000010000000000000000000000000000002068cbd7afc673baee476e7ab78dcd487b5f55adde4ec1111d1743ba61cb15a507000000000000000100000000000000010000000000000020586402f83101f3110ed73a69a92f752cafb87fdddd975fd4eb6df6719daa9d3f000000000000000100000000000000000000000000000020b84c7066ba730edc7e3f02ed64bcef5daa7a4af947ae50e5a733ce7c1eb4bbd500000000000000010000000000000001000000000000002086b66390884356d6e0ba36d0a9c244fe6b858c6ee4773fc74d24113eaa363d050000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000006900000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d4000000000000000700000000000000010000000000000000000000000000002043609cd6c56575e638e4556f3542711b3deda4667de73987824d5b00563087f100000000000000010000000000000001000000000000002080887f2e3189e45edcd0e775fa7fbf880a92630216c929ed7134f08e9ef2cf1e00000000000000010000000000000001000000000000002043932f3e384fbddfe1bd37deb7c0cab286f92cec12bfb0550d0b912548777824000000000000000100000000000000000000000000000020f85733e031fa6d105167a08b1c0c4aa7adf12f0649d84c9ccbd5093cfae1b9810000000000000001000000000000000100000000000000204e50d1a6000824f5cb7d9eb885680a1671d88dafc78a454b198d6c47b16595c9000000000000000100000000000000000000000000000020ea1d0f8669b9afe823f0be1e90c0d5799ac3fd8c4366cd231da9ab3e040ba5fd0000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad0000000000000029000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d00000000000000060000000000000001000000000000000000000000000000204cbc345704ec816cde6ce64bd82eacbf6f60c5d3c967cf3dd0797acd5855cc79000000000000000100000000000000010000000000000020dda727ff5aceb31fcd279f1f76b22ad6ff9fcb430cf35d04f3a27e4c9adbe598000000000000000100000000000000010000000000000020c785a107ccd44a8109eef6c62a2f7d66cf98c3c8c1e5f114493e8adc02afc02f000000000000000100000000000000000000000000000020d0212e386a105cf30b473e6cf1bedb9fdccedf2971be1402d648e94463b516b1000000000000000100000000000000010000000000000020d38ca383fe0726dc7c544c95a4ff50a46052b0e4bd3942c8249176238407541c000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f600000000000000090000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb7160000000000000005000000000000000100000000000000000000000000000020688ab9061b0d0dd9741c2805dd3de9ddacb65bbe8bb00727bbd85ddbd0d20a3c0000000000000001000000000000000100000000000000202dff2e1df9d9260694d6943eeed7ed299be05f30469e7d9962cf0b4350179ed100000000000000010000000000000001000000000000002071439899e46f8347a807ce2ad5a7677ad60be0abf0200bed21bfa750e2803fd900000000000000010000000000000000000000000000002053079eb9f250dc3c24e130d3cfe6b33850d7952eaf3358caa62c406b9951f6fb00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000001800000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d4000000000000000700000000000000010000000000000001000000000000002071e583cfd2b577cf57848ea394d68013e5fb81ee309d1a7c6d18bae44189ec0f0000000000000001000000000000000100000000000000207cc502b0e3a116095e43396d94a9fd07480f6fda23772581d07f3efa671322d50000000000000001000000000000000100000000000000200e0c68735daef847a6775b4aba1cf63f6ca726b1e1e43561b4e4f4c3f3f90a9f000000000000000100000000000000000000000000000020553e242e957da0e4a74c97fa591461e21736d84be341f9093b3adf69633165440000000000000001000000000000000000000000000000204b193d9a2fb3439a6ec753384b5fdac5bf47e4638ac4d5ec34f71860616f7d26000000000000000100000000000000010000000000000020113e27b5901897167a0448d1dbb7d377e86eb7437aa10f6d9c449e12d269af880000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab1150000000000000018000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d000000000000000600000000000000010000000000000001000000000000002099949634d53ad214664f3d4468da0eb4ab5c52250269882ea8855e092a7cd497000000000000000100000000000000010000000000000020c2570e6437fd220fb7851947bca18c0f6bbc870ec3bf1375d5af3d711397aca30000000000000001000000000000000100000000000000202a45cda084f06b0726a17071823c8af99d096f8609e863cef3bbabd644d7ad7d00000000000000010000000000000000000000000000002057e4becd876b2e534f7f94cc742d05ce83b1fa998b6412364fd2d5369abd4511000000000000000100000000000000000000000000000020fbb52e94d0613a9653eab6b27f7ddc0142800af7303d0d579d7c32d539f4933900000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd600000000000000180000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb71600000000000000050000000000000001000000000000000100000000000000207efd8d1b861935e3f47d68976e1ee096db8665ff071dae91e42d92498d013b86000000000000000100000000000000010000000000000020e817308183c115f1fc1eac677eba677b7d8950f498a27f9e2272521727285f7d00000000000000010000000000000001000000000000002030531fd9431cd47ac82637bc43085ddde3a63de8868db6c93d1c7459f9137cd300000000000000010000000000000000000000000000002028bf280a9b60983357317cbee8d19467a1cf8ec7148c53d7bada7cd92ef19ad00000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000007d00000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d40000000000000007000000000000000100000000000000000000000000000020c91c101b34f43248694b12726c590695c91278b35c2fb1e2230c0d3384ec10410000000000000001000000000000000100000000000000207bcea6b848bb93875b38f8cf49a8ea6918c9f3ea4996a0454042fe7aaa5a30a7000000000000000100000000000000000000000000000020bae9f68f6fa109668710d52e314c81a0736447ae63f82f8d30e2cf8b0fed55b800000000000000010000000000000000000000000000002095360d8b7bb69cdb3a0f776e371368dd76f29edb7f025682bf58ad24f7112bfd00000000000000010000000000000000000000000000002020e7a6a3a271902f8201f64eed3af53047f6ccca55a2d2233d2f9e66edb2130e000000000000000100000000000000000000000000000020ea1d0f8669b9afe823f0be1e90c0d5799ac3fd8c4366cd231da9ab3e040ba5fd0000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad000000000000003d000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d000000000000000600000000000000010000000000000000000000000000002056de1fc6a2e22fa973a322beb6e6b250d968dc16431907dd8b87e6a7b3af598a000000000000000100000000000000010000000000000020c086053a3fd36eaf468d8e401388df994a2352b10be4e75992535fcc77b92ce60000000000000001000000000000000000000000000000208a9e287433581f6b9d56498db08e05d56d0bbf4e52cf85ccd0177e2a51392f3c000000000000000100000000000000000000000000000020109e4b15f3ee6308ead76f6ca587b7fcbef4e619101397ce8cc2504c9c5aadf7000000000000000100000000000000000000000000000020ca730090e7756d1979c0efd26d1191147ba040a03bf2f73f6ef36813aa05d3fc000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f6000000000000001d0000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb71600000000000000050000000000000001000000000000000000000000000000200353d17934a09dce7bd1f40bf32774a4d1907e0e4a8a15800745653b226d58f70000000000000001000000000000000100000000000000208b3a86f131b9f3304c2a51ee420963bab9ab32369059c732ebf11fa824008fe7000000000000000100000000000000000000000000000020755753761e27de0c2ba56fb717cf6d81433daee5e14d738fd8b29367fa62ef5000000000000000010000000000000000000000000000002028bf280a9b60983357317cbee8d19467a1cf8ec7148c53d7bada7cd92ef19ad00000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000007e00000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d4000000000000000700000000000000010000000000000001000000000000002041233446caa022f95fe30530b317cf57b40e6b643c679c55ee162914e34ef0fb0000000000000001000000000000000000000000000000204630c8c8b3b53bd385552c07c903645c442f2d3bedc5695fd2a43eaa3eef067e000000000000000100000000000000000000000000000020bae9f68f6fa109668710d52e314c81a0736447ae63f82f8d30e2cf8b0fed55b800000000000000010000000000000000000000000000002095360d8b7bb69cdb3a0f776e371368dd76f29edb7f025682bf58ad24f7112bfd00000000000000010000000000000000000000000000002020e7a6a3a271902f8201f64eed3af53047f6ccca55a2d2233d2f9e66edb2130e000000000000000100000000000000000000000000000020ea1d0f8669b9afe823f0be1e90c0d5799ac3fd8c4366cd231da9ab3e040ba5fd0000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad000000000000003e000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d000000000000000600000000000000010000000000000001000000000000002068b29aa5c876d0cbf04ff9edcb5f3567367b4f4efba6d9d9a88e3af16d4416e9000000000000000100000000000000000000000000000020fea42220c9a462ce04763aba737be4a82950f5bc884cc901aedb2134b5c0e0e20000000000000001000000000000000000000000000000208a9e287433581f6b9d56498db08e05d56d0bbf4e52cf85ccd0177e2a51392f3c000000000000000100000000000000000000000000000020109e4b15f3ee6308ead76f6ca587b7fcbef4e619101397ce8cc2504c9c5aadf7000000000000000100000000000000000000000000000020ca730090e7756d1979c0efd26d1191147ba040a03bf2f73f6ef36813aa05d3fc000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f6000000000000001e0000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb71600000000000000050000000000000001000000000000000100000000000000206fd88d6627cb51ce2b00b7a20c466e1d613a9f113e2a00cba576cadc4752e66b000000000000000100000000000000000000000000000020d7720b4b58150868a3443741546e82ad658ad115ed35b2c2042060056627332a000000000000000100000000000000000000000000000020755753761e27de0c2ba56fb717cf6d81433daee5e14d738fd8b29367fa62ef5000000000000000010000000000000000000000000000002028bf280a9b60983357317cbee8d19467a1cf8ec7148c53d7bada7cd92ef19ad00000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000006700000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d4000000000000000700000000000000010000000000000000000000000000002068908036de11d25719ec7852f1e02626c53919bdcf6cd7f10107931ef9c27e4b0000000000000001000000000000000000000000000000204d1c1ef4d73a72a94048179dc7eb8b82cd777b1eabd86974ebf82dacada5939b000000000000000100000000000000000000000000000020920740eda570b4cc94435cc89276376320a42137773fe2b87f83af5b4c5bea0700000000000000010000000000000001000000000000002073a94e58c99ebe0edf773de28ec1717ed4b07539ca622abdac5d76d76b6a496f0000000000000001000000000000000100000000000000204e50d1a6000824f5cb7d9eb885680a1671d88dafc78a454b198d6c47b16595c9000000000000000100000000000000000000000000000020ea1d0f8669b9afe823f0be1e90c0d5799ac3fd8c4366cd231da9ab3e040ba5fd0000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad0000000000000027000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d00000000000000060000000000000001000000000000000000000000000000203764a15e802e9637f8544fba71a1f58b8a51039e87e27a1459e83ac519c6b5e200000000000000010000000000000000000000000000002042e68eb633e765ee232e66a3e4e69eca22ebb686780c812bf659dba54113932e000000000000000100000000000000000000000000000020f9b9892cc7818c8cc380abe58b4bea668e06ab779ecf71d9d7b88995304a9957000000000000000100000000000000010000000000000020e4f3c608663a27ed9a046dd2ea6cfa6c72508fff2ae84cebae55ed9eba51e2ca000000000000000100000000000000010000000000000020d38ca383fe0726dc7c544c95a4ff50a46052b0e4bd3942c8249176238407541c000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f600000000000000070000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb716000000000000000500000000000000010000000000000000000000000000002055d3824b9ec387124fe3755b224ec5f2f34c5d57ea8428b620b7673efe030587000000000000000100000000000000000000000000000020486e1bb072c641d035cbfd2b3e22f37a6ada1e3b06f2e3c6a21f71fc5a207aac0000000000000001000000000000000000000000000000206ad302f7496266239fd115a1b579a74dce557fa3e13c7170f4a261192829d6d70000000000000001000000000000000100000000000000200282245398e29bbcb055f5c06e1dfdc51199ecde0d784c712f1ef52fd142fe7a00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000001d00000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d40000000000000007000000000000000100000000000000000000000000000020237be40d921c2ea71c7c7138ff57d2bbc24cbcde99db53b02d1dd36d9f656787000000000000000100000000000000010000000000000020f47bef3499826abfe28e3f9ca75aa5e209e9dec924a9a42c946b6f16130f4c380000000000000001000000000000000000000000000000208bf0eed998e140fa07a34d13571e1c4194e8bd1bb6a416f2990f08911685c67a000000000000000100000000000000000000000000000020553e242e957da0e4a74c97fa591461e21736d84be341f9093b3adf69633165440000000000000001000000000000000000000000000000204b193d9a2fb3439a6ec753384b5fdac5bf47e4638ac4d5ec34f71860616f7d26000000000000000100000000000000010000000000000020113e27b5901897167a0448d1dbb7d377e86eb7437aa10f6d9c449e12d269af880000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab115000000000000001d000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000006000000000000000100000000000000000000000000000020a935caaf6412cdd425edcc3d6ce8f78f7193d0c19c36a6cc30c5787b7321ad48000000000000000100000000000000010000000000000020512e6b249e11ae303f24ccbf698d9af299ae55d4213429b7feafcedb8cf7dc74000000000000000100000000000000000000000000000020c3bb5f76e7bd5b66a7de5885d519979f4431077b88c76ca730c0c015236bb24700000000000000010000000000000000000000000000002057e4becd876b2e534f7f94cc742d05ce83b1fa998b6412364fd2d5369abd4511000000000000000100000000000000000000000000000020fbb52e94d0613a9653eab6b27f7ddc0142800af7303d0d579d7c32d539f4933900000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd6000000000000001d0000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb71600000000000000050000000000000001000000000000000000000000000000200353d17934a09dce7bd1f40bf32774a4d1907e0e4a8a15800745653b226d58f70000000000000001000000000000000100000000000000208b3a86f131b9f3304c2a51ee420963bab9ab32369059c732ebf11fa824008fe7000000000000000100000000000000000000000000000020755753761e27de0c2ba56fb717cf6d81433daee5e14d738fd8b29367fa62ef5000000000000000010000000000000000000000000000002028bf280a9b60983357317cbee8d19467a1cf8ec7148c53d7bada7cd92ef19ad00000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000001a00000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d40000000000000007000000000000000100000000000000010000000000000020c8ed62f6caf595a26433dead2edcdb9761f615e805adc4a9d24943cad002a518000000000000000100000000000000000000000000000020bf05d0ae3371c2cd4e4d9f232f9bee48dc36fbe93f316a56913d7c9ebd6fe5f20000000000000001000000000000000100000000000000200e0c68735daef847a6775b4aba1cf63f6ca726b1e1e43561b4e4f4c3f3f90a9f000000000000000100000000000000000000000000000020553e242e957da0e4a74c97fa591461e21736d84be341f9093b3adf69633165440000000000000001000000000000000000000000000000204b193d9a2fb3439a6ec753384b5fdac5bf47e4638ac4d5ec34f71860616f7d26000000000000000100000000000000010000000000000020113e27b5901897167a0448d1dbb7d377e86eb7437aa10f6d9c449e12d269af880000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab115000000000000001a000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000006000000000000000100000000000000010000000000000020cde1c3729390f1e3faba915c70efcde74ea9f16b5928dfe4fb0bd0487a85e03b0000000000000001000000000000000000000000000000200df6984d8703d88b79cf6016acf80b510626ee2b8500263c7e22889a627d90520000000000000001000000000000000100000000000000202a45cda084f06b0726a17071823c8af99d096f8609e863cef3bbabd644d7ad7d00000000000000010000000000000000000000000000002057e4becd876b2e534f7f94cc742d05ce83b1fa998b6412364fd2d5369abd4511000000000000000100000000000000000000000000000020fbb52e94d0613a9653eab6b27f7ddc0142800af7303d0d579d7c32d539f4933900000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd6000000000000001a0000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb7160000000000000005000000000000000100000000000000010000000000000020bb556492ab19bfa4df20a3ed632d49e41f0d18bb22dcd31587b92e817bbdec28000000000000000100000000000000000000000000000020abf902de98892e518448bab47ffa4fe2f615aadafb7e871dc4243a4700e4896900000000000000010000000000000001000000000000002030531fd9431cd47ac82637bc43085ddde3a63de8868db6c93d1c7459f9137cd300000000000000010000000000000000000000000000002028bf280a9b60983357317cbee8d19467a1cf8ec7148c53d7bada7cd92ef19ad00000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000006100000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d4000000000000000700000000000000010000000000000000000000000000002043f116be981d96b5372eae77b221bba97124fe92cd5dbbeced88caf1fc840bee00000000000000010000000000000001000000000000002085b5219175d50ec6025287cb82d92f83f72601128eed10445b1a77020e560c6f00000000000000010000000000000001000000000000002021afe788ac31af4b11ef7f394e29ccceb8bb1151616522217b7258d27256685700000000000000010000000000000001000000000000002073a94e58c99ebe0edf773de28ec1717ed4b07539ca622abdac5d76d76b6a496f0000000000000001000000000000000100000000000000204e50d1a6000824f5cb7d9eb885680a1671d88dafc78a454b198d6c47b16595c9000000000000000100000000000000000000000000000020ea1d0f8669b9afe823f0be1e90c0d5799ac3fd8c4366cd231da9ab3e040ba5fd0000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad0000000000000021000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d000000000000000600000000000000010000000000000000000000000000002074c07a34cc99f2504283d2471aa98e70c3dd4e2ee2abf9bfbe865b3603fd821800000000000000010000000000000001000000000000002003274a3b9d01c581a89369fa5e9a3b08a4b3009b4a88784562b4eba960f4e57200000000000000010000000000000001000000000000002005959e9f458eb006e8dbc5a56687404d64b67c89677890e636112defb543d223000000000000000100000000000000010000000000000020e4f3c608663a27ed9a046dd2ea6cfa6c72508fff2ae84cebae55ed9eba51e2ca000000000000000100000000000000010000000000000020d38ca383fe0726dc7c544c95a4ff50a46052b0e4bd3942c8249176238407541c000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f600000000000000010000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb716000000000000000500000000000000010000000000000000000000000000002092dc190aff1a5be9574e9362cc2c9939434f80288b8e1856412364fcd6a63187000000000000000100000000000000010000000000000020858945fcd02dafce48e632e41f9689536b4e66548e2f14c916c83c66a6d06e7700000000000000010000000000000001000000000000002011363b65ff7c738d83af6e5d344c6566f286bd01b544c629adb93175b4f064970000000000000001000000000000000100000000000000200282245398e29bbcb055f5c06e1dfdc51199ecde0d784c712f1ef52fd142fe7a00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000005000000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d4000000000000000700000000000000010000000000000001000000000000002008c155832d9d0ae510ebd92ef5dd08ed74726a66a799a66934ce165e63d9c3cb000000000000000100000000000000010000000000000020838fbf34ffc0b73c75af3f13704015c0e534e9efd82fa67bf1a6eb1f3525c7fe000000000000000100000000000000010000000000000020fed08d8f1e1ca3b4696fb2617fcec1831ff7782aac983c64b03ee1ded3061431000000000000000100000000000000010000000000000020d864edee9f548a784b6ffb182f4ae45cdd6077a8c8403b12657510c68899e168000000000000000100000000000000000000000000000020e7f239c394c0b7498d56f58ef3d17be39cf67a3054e7f253a475e15c2a75b9ea0000000000000001000000000000000100000000000000204ca795af155a2c7afd3b9e7575a9709140809b5e2fd6a6996408d80f7cbb64c00000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad0000000000000010000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d000000000000000600000000000000010000000000000001000000000000002075a6b53a1b5fd7044a8cf813693213ff0d58193bfdc0bc418b04adf2d526b562000000000000000100000000000000010000000000000020fe8ff67cae48a8825f0d7632e34ec0771065c7079994c81177447736ba2a0a73000000000000000100000000000000010000000000000020eca1f5cae72294c9e87bfbeaaef6e10a6d1690bc010fbf41f865a7027f599ea100000000000000010000000000000001000000000000002010d98525b43a4e9c9e72f1fff87bfb2fc5dc34645d0cb12c9f9387c082d0fd34000000000000000100000000000000000000000000000020fbb52e94d0613a9653eab6b27f7ddc0142800af7303d0d579d7c32d539f4933900000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd600000000000000100000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb7160000000000000005000000000000000100000000000000010000000000000020e8693cdb67d089fa6387e681eda2f9bde47bbcd38424b21b159dfd5ae9f01886000000000000000100000000000000010000000000000020535a39e609e7abe7c56e456d3d8d5c2ea750717e9f74c38bfabf529e3f333ee400000000000000010000000000000001000000000000002048f2a4d54acd77830ac8e25c135d3199bdcde7a3a69ecfbcf0c2f866d4cfb8e700000000000000010000000000000001000000000000002086b66390884356d6e0ba36d0a9c244fe6b858c6ee4773fc74d24113eaa363d050000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000003e00000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d40000000000000007000000000000000100000000000000010000000000000020557f0f2e216315d6d15598f2623fa689112e56fc039bb1a2f7877e80fd5c0940000000000000000100000000000000000000000000000020604357c2a77ed306e4c5035671d279dc661ec91a97602346a847e9a58d7a921a000000000000000100000000000000000000000000000020d3de34eea5942b5c4f9b033c1f54592182f4bbc01f6ff263b0374f38bc5ccd2b0000000000000001000000000000000000000000000000209290771463853e16cc59740707ee1bbb664631bc8c1b58a7932ae346e0c16c4e000000000000000100000000000000000000000000000020deeb55e97dc611a451ec661f0f6a548de23e4909b63a2565b895ba61e8d002ef000000000000000100000000000000000000000000000020fbb638c189c1da035d1f63ff29391d2920eb4bd9b760bd5b5f84dbcaea676d040000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab115000000000000003e000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d000000000000000600000000000000010000000000000001000000000000002068b29aa5c876d0cbf04ff9edcb5f3567367b4f4efba6d9d9a88e3af16d4416e9000000000000000100000000000000000000000000000020fea42220c9a462ce04763aba737be4a82950f5bc884cc901aedb2134b5c0e0e20000000000000001000000000000000000000000000000208a9e287433581f6b9d56498db08e05d56d0bbf4e52cf85ccd0177e2a51392f3c000000000000000100000000000000000000000000000020109e4b15f3ee6308ead76f6ca587b7fcbef4e619101397ce8cc2504c9c5aadf7000000000000000100000000000000000000000000000020ca730090e7756d1979c0efd26d1191147ba040a03bf2f73f6ef36813aa05d3fc000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f6000000000000001e0000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb71600000000000000050000000000000001000000000000000100000000000000206fd88d6627cb51ce2b00b7a20c466e1d613a9f113e2a00cba576cadc4752e66b000000000000000100000000000000000000000000000020d7720b4b58150868a3443741546e82ad658ad115ed35b2c2042060056627332a000000000000000100000000000000000000000000000020755753761e27de0c2ba56fb717cf6d81433daee5e14d738fd8b29367fa62ef5000000000000000010000000000000000000000000000002028bf280a9b60983357317cbee8d19467a1cf8ec7148c53d7bada7cd92ef19ad00000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000002b00000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d400000000000000070000000000000001000000000000000000000000000000201912bd30c2470a623c95b05ee8615dd8cd4d9d0a339e9f880b132c6268c453570000000000000001000000000000000000000000000000206bd813d61df47c4e823729ba6e41c8440932c41f3677f1b0052d144f17dc995f0000000000000001000000000000000100000000000000209e3acb9980f427a82e1ccc30bba3e5a136b605caa6e35a3a0dfb997ba349d7d40000000000000001000000000000000000000000000000204a8afcd5d27aa5bce45e8341a73aa2b9b2d46542f4bc92afca68d25b8b68db1c00000000000000010000000000000001000000000000002046741959925884c1313b2341b9cef208234481e221f61a5dd7b22b5631e24c98000000000000000100000000000000000000000000000020fbb638c189c1da035d1f63ff29391d2920eb4bd9b760bd5b5f84dbcaea676d040000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab115000000000000002b000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d000000000000000600000000000000010000000000000000000000000000002014fe920e7937ffc1669207cc97352bf38b8f96589a1d7d4a1ffc4d3454a75810000000000000000100000000000000000000000000000020164199ac661f0643ed3e40bc489a7c86c793617e24edb0e5a4f126e29888564c000000000000000100000000000000010000000000000020c785a107ccd44a8109eef6c62a2f7d66cf98c3c8c1e5f114493e8adc02afc02f000000000000000100000000000000000000000000000020d0212e386a105cf30b473e6cf1bedb9fdccedf2971be1402d648e94463b516b1000000000000000100000000000000010000000000000020d38ca383fe0726dc7c544c95a4ff50a46052b0e4bd3942c8249176238407541c000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f6000000000000000b0000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb7160000000000000005000000000000000100000000000000000000000000000020d8074cdbfd47cad225b98c305d9239af6369cd9c63165982fb1d937609c62938000000000000000100000000000000000000000000000020c57eed22efa0ad64274179e1a683226dbe2088f942f0f1e942d5591106342bb800000000000000010000000000000001000000000000002071439899e46f8347a807ce2ad5a7677ad60be0abf0200bed21bfa750e2803fd900000000000000010000000000000000000000000000002053079eb9f250dc3c24e130d3cfe6b33850d7952eaf3358caa62c406b9951f6fb00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000003600000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d400000000000000070000000000000001000000000000000100000000000000209281920b2953ccee51ea4ef85fa3fe231324385767b2ca0b71dc8d0932f2bf260000000000000001000000000000000000000000000000200e88360e0cd1e6e3fcd67c0a52fe947a8a86fd807173756d92e5ee0d29f8741600000000000000010000000000000000000000000000002099fbc47996161087965455500fa05500d46a6e0f6b21d75da0a510c55b08f51c000000000000000100000000000000010000000000000020d5b6f7ce4a4d55e6675c2e4660520d7bd4e7170362fd74ac95c6d297e57ac7ff000000000000000100000000000000000000000000000020deeb55e97dc611a451ec661f0f6a548de23e4909b63a2565b895ba61e8d002ef000000000000000100000000000000000000000000000020fbb638c189c1da035d1f63ff29391d2920eb4bd9b760bd5b5f84dbcaea676d040000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab1150000000000000036000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000006000000000000000100000000000000010000000000000020c7877ea2c601aa459e664e9b88abcb0b9627736063741d8f4eb2c67ba19f2cc30000000000000001000000000000000000000000000000205fb0e035a4876035abe3ba6363779f81f3b2e7a9d12521781f2c0fe1a72c0f5f000000000000000100000000000000000000000000000020affae4e619a5bee70f93443900691c5a533d089383865745ac62e9a4ac53b5a30000000000000001000000000000000100000000000000203126dc3efb4b611460c8ce1ea3d0731c71d5281f6f45dd81ac6202b342e89e03000000000000000100000000000000000000000000000020ca730090e7756d1979c0efd26d1191147ba040a03bf2f73f6ef36813aa05d3fc000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f600000000000000160000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb7160000000000000005000000000000000100000000000000010000000000000020144917d8079a0c92e17244b547dcda84bb3cc4297dfc56d111c62128cea7c911000000000000000100000000000000000000000000000020b0b841b018ed213697a4fa4a33c5cdda5c3c9f2897676b9083aa03098e4a01c4000000000000000100000000000000000000000000000020b84c7066ba730edc7e3f02ed64bcef5daa7a4af947ae50e5a733ce7c1eb4bbd500000000000000010000000000000001000000000000002086b66390884356d6e0ba36d0a9c244fe6b858c6ee4773fc74d24113eaa363d050000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000001400000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d400000000000000070000000000000001000000000000000100000000000000205439afb76147a6d8efb32152228e91947fe62cef059239d192e23d39dafd1d0c00000000000000010000000000000001000000000000002018d69319b51f12d06b1ead89f628aff24b302c31420f949d125d421b830a2128000000000000000100000000000000000000000000000020df5728fc05b9844724bd985e3740cbed2bc0b28650c2c51be917166870591f11000000000000000100000000000000010000000000000020dd00a360925bbb51181546498bc8dc9523d3fbddbceff6ebc20e3f0ba9bf167c0000000000000001000000000000000000000000000000204b193d9a2fb3439a6ec753384b5fdac5bf47e4638ac4d5ec34f71860616f7d26000000000000000100000000000000010000000000000020113e27b5901897167a0448d1dbb7d377e86eb7437aa10f6d9c449e12d269af880000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab1150000000000000014000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000006000000000000000100000000000000010000000000000020bd4e24e9383b4055d2f8adb1e0751f627c2faf49f809f1fced720e7acf7baeb9000000000000000100000000000000010000000000000020914634830ae59285928a28ae488e0e5273ebca53a320cea935202d06bd214c3a0000000000000001000000000000000000000000000000206658666c770331d0d45cb0f2b186115067839a2118ceaac27d23a4fa44ceb70700000000000000010000000000000001000000000000002010d98525b43a4e9c9e72f1fff87bfb2fc5dc34645d0cb12c9f9387c082d0fd34000000000000000100000000000000000000000000000020fbb52e94d0613a9653eab6b27f7ddc0142800af7303d0d579d7c32d539f4933900000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd600000000000000140000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb71600000000000000050000000000000001000000000000000100000000000000200c8af5fa5b0c10ef4ce058a00cd51885c717afde2f84bfe8f0eee280178c04bf000000000000000100000000000000010000000000000020586402f83101f3110ed73a69a92f752cafb87fdddd975fd4eb6df6719daa9d3f000000000000000100000000000000000000000000000020b84c7066ba730edc7e3f02ed64bcef5daa7a4af947ae50e5a733ce7c1eb4bbd500000000000000010000000000000001000000000000002086b66390884356d6e0ba36d0a9c244fe6b858c6ee4773fc74d24113eaa363d050000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000005100000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d400000000000000070000000000000001000000000000000000000000000000205b85f575f1a5b88e2ed5de6dc266458c280dcb2e5b8d89582ab85c0d2bb4dbd6000000000000000100000000000000010000000000000020838fbf34ffc0b73c75af3f13704015c0e534e9efd82fa67bf1a6eb1f3525c7fe000000000000000100000000000000010000000000000020fed08d8f1e1ca3b4696fb2617fcec1831ff7782aac983c64b03ee1ded3061431000000000000000100000000000000010000000000000020d864edee9f548a784b6ffb182f4ae45cdd6077a8c8403b12657510c68899e168000000000000000100000000000000000000000000000020e7f239c394c0b7498d56f58ef3d17be39cf67a3054e7f253a475e15c2a75b9ea0000000000000001000000000000000100000000000000204ca795af155a2c7afd3b9e7575a9709140809b5e2fd6a6996408d80f7cbb64c00000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad0000000000000011000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d000000000000000600000000000000010000000000000000000000000000002078a342cd4a4b3f77e515f5a885fb7498716a8430adc1898ddf717efa7fb7bd9f000000000000000100000000000000010000000000000020fe8ff67cae48a8825f0d7632e34ec0771065c7079994c81177447736ba2a0a73000000000000000100000000000000010000000000000020eca1f5cae72294c9e87bfbeaaef6e10a6d1690bc010fbf41f865a7027f599ea100000000000000010000000000000001000000000000002010d98525b43a4e9c9e72f1fff87bfb2fc5dc34645d0cb12c9f9387c082d0fd34000000000000000100000000000000000000000000000020fbb52e94d0613a9653eab6b27f7ddc0142800af7303d0d579d7c32d539f4933900000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd600000000000000110000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb716000000000000000500000000000000010000000000000000000000000000002024fe7f3bb26f9e88b669826f7c2d8659be17f27327b3a701785961aea65d92a2000000000000000100000000000000010000000000000020535a39e609e7abe7c56e456d3d8d5c2ea750717e9f74c38bfabf529e3f333ee400000000000000010000000000000001000000000000002048f2a4d54acd77830ac8e25c135d3199bdcde7a3a69ecfbcf0c2f866d4cfb8e700000000000000010000000000000001000000000000002086b66390884356d6e0ba36d0a9c244fe6b858c6ee4773fc74d24113eaa363d050000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000002600000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d40000000000000007000000000000000100000000000000010000000000000020e4f473bcbc8c064f320bfec9cb4730d6772612f8d57fcf39f78af3ef188a635f00000000000000010000000000000000000000000000002070c2862bc771c4f33efa333bb18bd665d52d10ebcb1588f119ef619548c6161a000000000000000100000000000000000000000000000020f38e25a3b1de91984d3f4d9c1f1a11f9c193fa97e250dabb6d534e5a78f66952000000000000000100000000000000010000000000000020197fef0590d7d2b89088f76246e61349a825bd6009b13bb0103a5a5ade2326ce00000000000000010000000000000001000000000000002046741959925884c1313b2341b9cef208234481e221f61a5dd7b22b5631e24c98000000000000000100000000000000000000000000000020fbb638c189c1da035d1f63ff29391d2920eb4bd9b760bd5b5f84dbcaea676d040000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab1150000000000000026000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d000000000000000600000000000000010000000000000001000000000000002080275434c0e643f6bddcf668bb574fd4acc23be9359bab635087104f12e8a3b400000000000000010000000000000000000000000000002042e68eb633e765ee232e66a3e4e69eca22ebb686780c812bf659dba54113932e000000000000000100000000000000000000000000000020f9b9892cc7818c8cc380abe58b4bea668e06ab779ecf71d9d7b88995304a9957000000000000000100000000000000010000000000000020e4f3c608663a27ed9a046dd2ea6cfa6c72508fff2ae84cebae55ed9eba51e2ca000000000000000100000000000000010000000000000020d38ca383fe0726dc7c544c95a4ff50a46052b0e4bd3942c8249176238407541c000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f600000000000000060000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb71600000000000000050000000000000001000000000000000100000000000000201fd4b6134479d7c8e61c73da358a84b53dc760fd31142901d1b4bb0e4590633a000000000000000100000000000000000000000000000020486e1bb072c641d035cbfd2b3e22f37a6ada1e3b06f2e3c6a21f71fc5a207aac0000000000000001000000000000000000000000000000206ad302f7496266239fd115a1b579a74dce557fa3e13c7170f4a261192829d6d70000000000000001000000000000000100000000000000200282245398e29bbcb055f5c06e1dfdc51199ecde0d784c712f1ef52fd142fe7a00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000000100000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d40000000000000007000000000000000100000000000000000000000000000020874b7bd1f3c3a6c84eec62d4ed462b197275c7ddd5e041deeb0f8c06e39c309b000000000000000100000000000000010000000000000020f5de7677a4e8d16707f08600ce53fb02374cf6f0fc8b69e34ef706b05cceab2c000000000000000100000000000000010000000000000020c523b6c0e7e62cc19ae96eae1dc1e5f6ab44bc28ecfe20944e91b73b59a24b2d0000000000000001000000000000000100000000000000209ec7c236e135c223fb251312761f2a9378a9423b3c5897609b9f00184e022be000000000000000010000000000000001000000000000002079c2ed00949e9f96d4f87c754bb9202bf16e0a8e3d3303ce659489a4962f82bf000000000000000100000000000000010000000000000020113e27b5901897167a0448d1dbb7d377e86eb7437aa10f6d9c449e12d269af880000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab1150000000000000001000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000006000000000000000100000000000000000000000000000020c647f305c320ccf2f76bb67093009bb661870562222f2b2157a4c30e7aaa4d69000000000000000100000000000000010000000000000020081a9ad3352b092b4c3da47ea7b948e9f45bfcc08bf63e98b29e6545ff7371960000000000000001000000000000000100000000000000206bb9c9b8ef67f85f465081dfb51336d4177175fb68b6f9080b52413d87698a1c000000000000000100000000000000010000000000000020ab3923d8895efbab25b1d9beeaad8c7acc3da96df78631e18214295fac01c5f2000000000000000100000000000000010000000000000020e9ebb4cf521fd9c5e6f70e93cbb3e25cc601550aa28b21d91e3249db3e747b1700000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd600000000000000010000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb716000000000000000500000000000000010000000000000000000000000000002092dc190aff1a5be9574e9362cc2c9939434f80288b8e1856412364fcd6a63187000000000000000100000000000000010000000000000020858945fcd02dafce48e632e41f9689536b4e66548e2f14c916c83c66a6d06e7700000000000000010000000000000001000000000000002011363b65ff7c738d83af6e5d344c6566f286bd01b544c629adb93175b4f064970000000000000001000000000000000100000000000000200282245398e29bbcb055f5c06e1dfdc51199ecde0d784c712f1ef52fd142fe7a00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000003200000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d4000000000000000700000000000000010000000000000001000000000000002071ce5c1f71b94759be764acdd141b7da6f74d7045bca6553ba7b726d065fd4440000000000000001000000000000000000000000000000205d5dca7fd44aedbbb82071dea2016fd95dc60add5031634cd7a27073cd639e57000000000000000100000000000000010000000000000020b1c67dd550b9dd0ad62422e5ecca7384701a9d42695d4a4cacf84dc34945e7bb000000000000000100000000000000010000000000000020d5b6f7ce4a4d55e6675c2e4660520d7bd4e7170362fd74ac95c6d297e57ac7ff000000000000000100000000000000000000000000000020deeb55e97dc611a451ec661f0f6a548de23e4909b63a2565b895ba61e8d002ef000000000000000100000000000000000000000000000020fbb638c189c1da035d1f63ff29391d2920eb4bd9b760bd5b5f84dbcaea676d040000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab1150000000000000032000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000006000000000000000100000000000000010000000000000020c07820824da97d1cf0309fea3282050e3054ead367f51c38d6b8d4e12450ad770000000000000001000000000000000000000000000000201535d57b3e46f812bb64bc634a85e5ebd9a959134c3a988926ce162661142f22000000000000000100000000000000010000000000000020485662cbb9287e9233dfcc6c9ef74ac5ce65e828036e9720d78c8b33b2b56fab0000000000000001000000000000000100000000000000203126dc3efb4b611460c8ce1ea3d0731c71d5281f6f45dd81ac6202b342e89e03000000000000000100000000000000000000000000000020ca730090e7756d1979c0efd26d1191147ba040a03bf2f73f6ef36813aa05d3fc000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f600000000000000120000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb716000000000000000500000000000000010000000000000001000000000000002046c37e8470fa10db9d1cd82cdcb1f141e9aefc7f8576e0f3aeaccd6869d46e1e0000000000000001000000000000000000000000000000207a51affb17c4f5c12f4fe9a5fd981373edacd16bdb1f8fd1a2125b835612e9d200000000000000010000000000000001000000000000002048f2a4d54acd77830ac8e25c135d3199bdcde7a3a69ecfbcf0c2f866d4cfb8e700000000000000010000000000000001000000000000002086b66390884356d6e0ba36d0a9c244fe6b858c6ee4773fc74d24113eaa363d050000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000000b00000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d40000000000000007000000000000000100000000000000000000000000000020ced954f9035d0fdc60e574bf1a170967ba2dc0948136aa33290699eff87d761e00000000000000010000000000000000000000000000002031091de7b5844f585991351a1c383bd96ea9e22959ed4924716ffbaf604222c2000000000000000100000000000000010000000000000020d7185b6ef7846c634eefb50e4cfb826a08178d910180ad44795bc9e1e407f3bd0000000000000001000000000000000000000000000000202e1c38121e828022c78a35c84ef2b7ec45a335ee84e30559f73108e705e0c5f700000000000000010000000000000001000000000000002079c2ed00949e9f96d4f87c754bb9202bf16e0a8e3d3303ce659489a4962f82bf000000000000000100000000000000010000000000000020113e27b5901897167a0448d1dbb7d377e86eb7437aa10f6d9c449e12d269af880000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab115000000000000000b000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d00000000000000060000000000000001000000000000000000000000000000200633d0c2468e1482b1ce634cd0f064a469a7dfa1939b28890745909b68dadfee0000000000000001000000000000000000000000000000202bc392256565ef2248a478105f1cf8ffe527b7c80f9749dba9945a5e226478ed000000000000000100000000000000010000000000000020c35f57174d244bc93de5962cd3eafe8c7ce0bd4e411b8ea6d6dcec80f3235fad000000000000000100000000000000000000000000000020020ed5189b3c1f2a40e54dfe6de25896b013e0500d8c66842ecbc668174ae62b000000000000000100000000000000010000000000000020e9ebb4cf521fd9c5e6f70e93cbb3e25cc601550aa28b21d91e3249db3e747b1700000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd6000000000000000b0000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb7160000000000000005000000000000000100000000000000000000000000000020d8074cdbfd47cad225b98c305d9239af6369cd9c63165982fb1d937609c62938000000000000000100000000000000000000000000000020c57eed22efa0ad64274179e1a683226dbe2088f942f0f1e942d5591106342bb800000000000000010000000000000001000000000000002071439899e46f8347a807ce2ad5a7677ad60be0abf0200bed21bfa750e2803fd900000000000000010000000000000000000000000000002053079eb9f250dc3c24e130d3cfe6b33850d7952eaf3358caa62c406b9951f6fb00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000003400000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d400000000000000070000000000000001000000000000000100000000000000203fcb725bd2a93b8a7528e9c0f5ada7da587a7a6d5f7e22c44e2b7419f2f10e1d0000000000000001000000000000000100000000000000204c16db0eaccd5c43388b6d0f9b627ba0d99ea19f9678104a5bda26469194423600000000000000010000000000000000000000000000002099fbc47996161087965455500fa05500d46a6e0f6b21d75da0a510c55b08f51c000000000000000100000000000000010000000000000020d5b6f7ce4a4d55e6675c2e4660520d7bd4e7170362fd74ac95c6d297e57ac7ff000000000000000100000000000000000000000000000020deeb55e97dc611a451ec661f0f6a548de23e4909b63a2565b895ba61e8d002ef000000000000000100000000000000000000000000000020fbb638c189c1da035d1f63ff29391d2920eb4bd9b760bd5b5f84dbcaea676d040000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab1150000000000000034000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d000000000000000600000000000000010000000000000001000000000000002015ee62a032f114d1309d27eb408f21ea199ac0aecae377419ba6e30c13b36d9f00000000000000010000000000000001000000000000002024a0bc966a139715b9813296e1553f660d716ebe25f17e2d3dc549d5e4e22225000000000000000100000000000000000000000000000020affae4e619a5bee70f93443900691c5a533d089383865745ac62e9a4ac53b5a30000000000000001000000000000000100000000000000203126dc3efb4b611460c8ce1ea3d0731c71d5281f6f45dd81ac6202b342e89e03000000000000000100000000000000000000000000000020ca730090e7756d1979c0efd26d1191147ba040a03bf2f73f6ef36813aa05d3fc000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f600000000000000140000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb71600000000000000050000000000000001000000000000000100000000000000200c8af5fa5b0c10ef4ce058a00cd51885c717afde2f84bfe8f0eee280178c04bf000000000000000100000000000000010000000000000020586402f83101f3110ed73a69a92f752cafb87fdddd975fd4eb6df6719daa9d3f000000000000000100000000000000000000000000000020b84c7066ba730edc7e3f02ed64bcef5daa7a4af947ae50e5a733ce7c1eb4bbd500000000000000010000000000000001000000000000002086b66390884356d6e0ba36d0a9c244fe6b858c6ee4773fc74d24113eaa363d050000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000000100000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d40000000000000007000000000000000100000000000000000000000000000020874b7bd1f3c3a6c84eec62d4ed462b197275c7ddd5e041deeb0f8c06e39c309b000000000000000100000000000000010000000000000020f5de7677a4e8d16707f08600ce53fb02374cf6f0fc8b69e34ef706b05cceab2c000000000000000100000000000000010000000000000020c523b6c0e7e62cc19ae96eae1dc1e5f6ab44bc28ecfe20944e91b73b59a24b2d0000000000000001000000000000000100000000000000209ec7c236e135c223fb251312761f2a9378a9423b3c5897609b9f00184e022be000000000000000010000000000000001000000000000002079c2ed00949e9f96d4f87c754bb9202bf16e0a8e3d3303ce659489a4962f82bf000000000000000100000000000000010000000000000020113e27b5901897167a0448d1dbb7d377e86eb7437aa10f6d9c449e12d269af880000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab1150000000000000001000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000006000000000000000100000000000000000000000000000020c647f305c320ccf2f76bb67093009bb661870562222f2b2157a4c30e7aaa4d69000000000000000100000000000000010000000000000020081a9ad3352b092b4c3da47ea7b948e9f45bfcc08bf63e98b29e6545ff7371960000000000000001000000000000000100000000000000206bb9c9b8ef67f85f465081dfb51336d4177175fb68b6f9080b52413d87698a1c000000000000000100000000000000010000000000000020ab3923d8895efbab25b1d9beeaad8c7acc3da96df78631e18214295fac01c5f2000000000000000100000000000000010000000000000020e9ebb4cf521fd9c5e6f70e93cbb3e25cc601550aa28b21d91e3249db3e747b1700000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd600000000000000010000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb716000000000000000500000000000000010000000000000000000000000000002092dc190aff1a5be9574e9362cc2c9939434f80288b8e1856412364fcd6a63187000000000000000100000000000000010000000000000020858945fcd02dafce48e632e41f9689536b4e66548e2f14c916c83c66a6d06e7700000000000000010000000000000001000000000000002011363b65ff7c738d83af6e5d344c6566f286bd01b544c629adb93175b4f064970000000000000001000000000000000100000000000000200282245398e29bbcb055f5c06e1dfdc51199ecde0d784c712f1ef52fd142fe7a00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000004900000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d4000000000000000700000000000000010000000000000000000000000000002028b2abadf940497469985339c457bd0ebcc9a55289755f55b34502a497bb95fb0000000000000001000000000000000100000000000000204a7b504fe903a484fbda0e9b89fc0f7891461cef78f1791b46faa673ea71a8d2000000000000000100000000000000010000000000000020ef334171ef36d500862572b144a473dde3c9e7351ae67eab71da6c8c8bfdd1c90000000000000001000000000000000000000000000000201863686499cab26760c4bc406bd87c45ee0eddea2b56a57b87448f64749186b80000000000000001000000000000000100000000000000208cc5e71a30a21c9c253015196dd0e4ce43441359f25bcff69dd2d76e3094b55f0000000000000001000000000000000100000000000000204ca795af155a2c7afd3b9e7575a9709140809b5e2fd6a6996408d80f7cbb64c00000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad0000000000000009000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000006000000000000000100000000000000000000000000000020308bdddf83502a77cd6851c005ca4f307c11300864266f4b8886621b82f952ae000000000000000100000000000000010000000000000020fddacde4f46a4d2a3a59776f3fc7f2f99482debb3940e61070f9e48efbdf82a6000000000000000100000000000000010000000000000020c35f57174d244bc93de5962cd3eafe8c7ce0bd4e411b8ea6d6dcec80f3235fad000000000000000100000000000000000000000000000020020ed5189b3c1f2a40e54dfe6de25896b013e0500d8c66842ecbc668174ae62b000000000000000100000000000000010000000000000020e9ebb4cf521fd9c5e6f70e93cbb3e25cc601550aa28b21d91e3249db3e747b1700000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd600000000000000090000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb7160000000000000005000000000000000100000000000000000000000000000020688ab9061b0d0dd9741c2805dd3de9ddacb65bbe8bb00727bbd85ddbd0d20a3c0000000000000001000000000000000100000000000000202dff2e1df9d9260694d6943eeed7ed299be05f30469e7d9962cf0b4350179ed100000000000000010000000000000001000000000000002071439899e46f8347a807ce2ad5a7677ad60be0abf0200bed21bfa750e2803fd900000000000000010000000000000000000000000000002053079eb9f250dc3c24e130d3cfe6b33850d7952eaf3358caa62c406b9951f6fb00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd0000000000000002055bdcb7ab4fb113fd99ef61c1cf7432177e585e6a86a912b7cfed29068d747a2cd6c34b09f002d24ab7e875aab36628be53f06c1639392b82fd961d7a3c8d8c6b8d19f1 \ No newline at end of file diff --git a/contracts/modular/circuit2/commitment.sol b/contracts/modular/circuit2/commitment.sol new file mode 100644 index 0000000..36ee515 --- /dev/null +++ b/contracts/modular/circuit2/commitment.sol @@ -0,0 +1,588 @@ + +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) 2023 Generated by ZKLLVM-transpiler +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity >=0.8.4; + +import "../../cryptography/transcript.sol"; +import "../../interfaces/modular_commitment.sol"; +// Move away unused structures from types.sol +import "../../types.sol"; +import "../../basic_marshalling.sol"; +import "../../containers/merkle_verifier.sol"; +import "../../algebra/polynomial.sol"; +import "hardhat/console.sol"; + +contract modular_commitment_scheme_circuit2 { + uint256 constant modulus = 52435875175126190479447740508185965837690552500527637822603658699938581184513; + uint64 constant batches_num = 4; + uint256 constant r = 3; + uint256 constant lambda = 1; + uint256 constant D0_size = 256; + uint256 constant max_degree = 15; + uint256 constant D0_omega = 36007022166693598376559747923784822035233416720563672082740011604939309541707; + uint256 constant unique_points = 5; + uint256 constant permutation_point = 3; + uint256 constant quotient_point = 1; + uint256 constant lookup_point = 94008216099072; + bytes constant points_ids = hex"02020202020202020404020200010101"; + uint256 constant omega = 14788168760825820622209131888203028446852016562542525606630160374691593895118; + uint256 _etha; + + struct commitment_state{ + bytes leaf_data; + uint256 roots_offset; + uint256 initial_data_offset; + uint256 initial_proof_offset; + uint256 round_proof_offset; + uint256 round_data_offset; + uint256[r] alphas; + uint64[batches_num] batch_sizes; + uint64 poly_num; + uint256 points_num; + uint256 theta; + uint256 x_index; + uint256 x; + uint256 max_batch; + uint256 domain_size; + uint256[] final_polynomial; + uint256 leaf_length; + uint256[][unique_points] denominators; + uint256[unique_points] factors; + uint256[][unique_points] combined_U; + uint256[][unique_points] unique_eval_points; + uint256[2] y; + uint256 j; + uint256 offset; + } + + function calculate_2points_interpolation(uint256[] memory xi, uint256[2] memory z, uint256 modulus) + internal pure returns(uint256[2] memory U){ +// require( xi.length == 2 ); + U[0] = addmod(mulmod(z[0], xi[1], modulus),modulus - mulmod(z[1], xi[0], modulus), modulus); + U[1] = addmod(z[1], modulus - z[0], modulus); + } + +// coeffs for zs on each degree can be precomputed if necessary + function calculate_3points_interpolation(uint256[] memory xi, uint256[3] memory z, uint256 modulus) + internal pure returns(uint256[3] memory U){ +// require( xi.length == 3 ); + z[0] = mulmod(z[0], addmod(xi[1], modulus - xi[2], modulus), modulus); + z[1] = mulmod(z[1], addmod(xi[2], modulus - xi[0], modulus), modulus); + z[2] = mulmod(z[2], addmod(xi[0], modulus - xi[1], modulus), modulus); + + U[0] = mulmod(z[0], mulmod(xi[1], xi[2], modulus), modulus); + U[0] = addmod(U[0], mulmod(z[1], mulmod(xi[0], xi[2], modulus), modulus), modulus); + U[0] = addmod(U[0], mulmod(z[2], mulmod(xi[0], xi[1], modulus), modulus), modulus); + + U[1] = modulus - mulmod(z[0], addmod(xi[1], xi[2], modulus), modulus); + U[1] = addmod(U[1], modulus - mulmod(z[1], addmod(xi[0], xi[2], modulus), modulus), modulus); + U[1] = addmod(U[1], modulus - mulmod(z[2], addmod(xi[0], xi[1], modulus), modulus), modulus); + + U[2] = addmod(z[0], addmod(z[1], z[2], modulus), modulus); + } + + function prepare_eval_points(uint256[][unique_points] memory result, uint256 xi) internal view { + uint256 inversed_omega = field.inverse_static(omega, modulus); + result[0] = new uint256[](2); + result[0][0] = mulmod(xi, inversed_omega, modulus); + result[0][1] = xi; + result[1] = new uint256[](1); + result[1][0] = xi; + result[2] = new uint256[](2); + result[2][0] = xi; + result[2][1] = _etha; + result[3] = new uint256[](2); + result[3][0] = xi; + result[3][1] = mulmod(xi, omega, modulus); + result[4] = new uint256[](3); + result[4][0] = xi; + result[4][1] = mulmod(xi, omega, modulus); + result[4][2] = _etha; + + } + + function prepare_U_V(bytes calldata blob, commitment_state memory state, uint256 xi) internal view returns(bool result){ + result = true; + uint64 ind = 0; + prepare_eval_points(state.unique_eval_points, xi); + // Prepare denominators + for( ind = 0; ind < state.unique_eval_points.length;){ + state.denominators[ind] = new uint256[](state.unique_eval_points[ind].length + 1); + if( state.unique_eval_points[ind].length == 1 ){ + state.factors[ind] = 1; + state.denominators[ind][0] = modulus - state.unique_eval_points[ind][0]; + state.denominators[ind][1] = 1; + } else + if( state.unique_eval_points[ind].length == 2 ){ + // xi1 - xi0 + state.factors[ind] = + addmod(state.unique_eval_points[ind][1], modulus - state.unique_eval_points[ind][0], modulus); + state.denominators[ind][2] = 1; + + state.denominators[ind][1] = + modulus - addmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][1], modulus); + + state.denominators[ind][0] = + mulmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][1], modulus); + state.denominators[ind][0] = mulmod(state.denominators[ind][0], state.factors[ind], modulus); + state.denominators[ind][1] = mulmod(state.denominators[ind][1], state.factors[ind], modulus); + state.denominators[ind][2] = mulmod(state.denominators[ind][2], state.factors[ind], modulus); + } else + if( state.unique_eval_points[ind].length == 3 ){ + state.factors[ind] = modulus - + mulmod( + mulmod( + addmod(state.unique_eval_points[ind][0], modulus - state.unique_eval_points[ind][1], modulus), + addmod(state.unique_eval_points[ind][1], modulus - state.unique_eval_points[ind][2], modulus), + modulus + ), + addmod(state.unique_eval_points[ind][2], modulus - state.unique_eval_points[ind][0], modulus), + modulus + ); + state.denominators[ind][3] = 1; + state.denominators[ind][2] = + modulus - addmod( + state.unique_eval_points[ind][0], + addmod(state.unique_eval_points[ind][1],state.unique_eval_points[ind][2], modulus), + modulus + ); + state.denominators[ind][1] = + addmod( + mulmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][1], modulus), + addmod( + mulmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][2], modulus), + mulmod(state.unique_eval_points[ind][1], state.unique_eval_points[ind][2], modulus), + modulus + ), + modulus + ); + state.denominators[ind][0] = + modulus - mulmod( + state.unique_eval_points[ind][0], + mulmod(state.unique_eval_points[ind][1],state.unique_eval_points[ind][2], modulus), + modulus + ); + state.denominators[ind][0] = mulmod(state.denominators[ind][0], state.factors[ind], modulus); + state.denominators[ind][1] = mulmod(state.denominators[ind][1], state.factors[ind], modulus); + state.denominators[ind][2] = mulmod(state.denominators[ind][2], state.factors[ind], modulus); + state.denominators[ind][3] = mulmod(state.denominators[ind][3], state.factors[ind], modulus); + } else { + console.log("UNPROCESSED number of evaluation points"); + return false; + } + unchecked{ind++;} + } + + // Prepare combined U + for( uint256 ind = 0; ind < unique_points;){ + uint256[] memory point = state.unique_eval_points[ind]; + state.combined_U[ind] = new uint256[](state.unique_eval_points[ind].length); + uint64 cur = 0; + uint256 offset = 0x8; + for( uint256 k = 0; k < batches_num;){ + for( uint256 i = 0; i < state.batch_sizes[k];){ + uint256 cur_point = 0; + if(cur < points_ids.length ) cur_point = uint8(points_ids[cur]); + else if(k == 2) cur_point = permutation_point; + else if(k == 3) cur_point = quotient_point; + else if(k == 4) cur_point = lookup_point; + else console.log("Wrong index"); + + polynomial.multiply_poly_on_coeff( + state.combined_U[ind], + state.theta, + modulus + ); + if( cur_point == ind ){ + if( point.length == 1 ){ + state.combined_U[ind][0] = addmod( + state.combined_U[ind][0], + basic_marshalling.get_uint256_be(blob, offset), + modulus + ); + } else + if( point.length == 2 ){ + uint256[2] memory tmp; + tmp[0] = basic_marshalling.get_uint256_be(blob, offset); + tmp[1] = basic_marshalling.get_uint256_be(blob, offset + 0x20); + tmp = calculate_2points_interpolation( + point, tmp, modulus + ); + state.combined_U[ind][0] = addmod(state.combined_U[ind][0], tmp[0], modulus); + state.combined_U[ind][1] = addmod(state.combined_U[ind][1], tmp[1], modulus); + } else + if( point.length == 3){ + uint256[3] memory tmp; + tmp[0] = basic_marshalling.get_uint256_be(blob, offset); + tmp[1] = basic_marshalling.get_uint256_be(blob, offset + 0x20); + tmp[2] = basic_marshalling.get_uint256_be(blob, offset + 0x40); + tmp = calculate_3points_interpolation( + point, tmp, modulus + ); + state.combined_U[ind][0] = addmod(state.combined_U[ind][0], tmp[0], modulus); + state.combined_U[ind][1] = addmod(state.combined_U[ind][1], tmp[1], modulus); + state.combined_U[ind][2] = addmod(state.combined_U[ind][2], tmp[2], modulus); + } else { + return false; + } + } + offset += state.unique_eval_points[cur_point].length * 0x20; + unchecked{i++;cur++;} + } + unchecked{k++;} + } + unchecked{ind++;} + } + } + + function compute_combined_Q(bytes calldata blob,commitment_state memory state) internal view returns(uint256[2] memory y){ + for(uint256 p = 0; p < unique_points; ){ + uint256[2] memory tmp; + uint256 offset = state.initial_data_offset - state.poly_num * 0x40; // Save initial data offset for future use; + uint256 cur = 0; + for(uint256 b = 0; b < batches_num;){ + for(uint256 j = 0; j < state.batch_sizes[b];){ + uint256 cur_point = 0; + if(cur < points_ids.length ) cur_point = uint8(points_ids[cur]); + else if(b == 2) cur_point = permutation_point; + else if(b == 3) cur_point = quotient_point; + else if(b == 4) cur_point = lookup_point; + else console.log("Wrong index"); + + tmp[0] = mulmod(tmp[0], state.theta, modulus); + tmp[1] = mulmod(tmp[1], state.theta, modulus); + + if(cur_point == p){ + tmp[0] = addmod(tmp[0], basic_marshalling.get_uint256_be(blob, offset), modulus); + tmp[1] = addmod(tmp[1], basic_marshalling.get_uint256_be(blob, offset + 0x20), modulus); + } + unchecked{offset += 0x40;j++; cur++;} + } + unchecked{b++;} + } + tmp[0] = mulmod(tmp[0], state.factors[p], modulus); + tmp[1] = mulmod(tmp[1], state.factors[p], modulus); + uint256 s = state.x; + tmp[0] = addmod(tmp[0], modulus - polynomial.evaluate(state.combined_U[p], s , modulus), modulus); + tmp[1] = addmod(tmp[1], modulus - polynomial.evaluate(state.combined_U[p], modulus - s, modulus), modulus); + tmp[0] = mulmod(tmp[0], field.inverse_static(polynomial.evaluate(state.denominators[p], s, modulus), modulus), modulus); + tmp[1] = mulmod(tmp[1], field.inverse_static(polynomial.evaluate(state.denominators[p], modulus - s, modulus), modulus), modulus); + y[0] = addmod(y[0], tmp[0], modulus); + y[1] = addmod(y[1], tmp[1], modulus); + unchecked{p++;} + } + } + + function initialize( + bytes32 tr_state_before + ) external returns(bytes32 tr_state_after){ + types.transcript_data memory tr_state; + tr_state.current_challenge = tr_state_before; + _etha = transcript.get_field_challenge(tr_state, modulus); + tr_state_after = tr_state.current_challenge; + } + + function copy_memory_pair_and_check(bytes calldata blob, uint256 proof_offset, bytes memory leaf, uint256[2] memory pair) + internal pure returns(bool b){ + uint256 c = pair[0]; + uint256 d = pair[1]; + assembly{ + mstore( + add(leaf, 0x20), + c + ) + mstore( + add(leaf, 0x40), + d + ) + } + if( !merkle_verifier.parse_verify_merkle_proof_bytes_be(blob, proof_offset, leaf, 0x40 )){ + return false; + } else { + return true; + } + } + + function copy_reverted_memory_pair_and_check(bytes calldata blob, uint256 proof_offset, bytes memory leaf, uint256[2] memory pair) + internal pure returns(bool b){ + uint256 c = pair[0]; + uint256 d = pair[1]; + assembly{ + mstore( + add(leaf, 0x20), + d + ) + mstore( + add(leaf, 0x40), + c + ) + } + if( !merkle_verifier.parse_verify_merkle_proof_bytes_be(blob, proof_offset, leaf, 0x40 )){ + return false; + } else { + return true; + } + } + + function copy_pairs_and_check(bytes calldata blob, uint256 offset, bytes memory leaf, uint256 size, uint256 proof_offset) + internal pure returns(bool b){ + uint256 offset2 = 0x20; + for(uint256 k = 0; k < size;){ + assembly{ + mstore( + add(leaf, offset2), + calldataload(add(blob.offset, offset)) + ) + mstore( + add(leaf, add(offset2, 0x20)), + calldataload(add(blob.offset, add(offset, 0x20))) + ) + } + unchecked{ + k++; offset2 += 0x40; offset += 0x40; + } + } + if( !merkle_verifier.parse_verify_merkle_proof_bytes_be(blob, proof_offset, leaf, offset2 - 0x20 )){ + return false; + } else { + return true; + } + } + + function copy_reverted_pairs_and_check(bytes calldata blob, uint256 offset, bytes memory leaf, uint256 size, uint256 proof_offset) + internal pure returns(bool){ + uint256 offset2 = 0x20; + for(uint256 k = 0; k < size;){ + assembly{ + mstore( + add(leaf, offset2), + calldataload(add(blob.offset, add(offset, 0x20))) + ) + mstore( + add(leaf, add(offset2, 0x20)), + calldataload(add(blob.offset, offset)) + ) + } + unchecked{ + k++; offset2 += 0x40; offset += 0x40; + } + } + if( !merkle_verifier.parse_verify_merkle_proof_bytes_be(blob, proof_offset, leaf, offset2 - 0x20 )){ + return false; + } else { + return true; + } + } + + function colinear_check(uint256 x, uint256[2] memory y, uint256 alpha, uint256 colinear_value) internal pure returns(bool){ + uint256 tmp; + tmp = addmod(y[0], y[1], modulus); + tmp = mulmod(tmp, x, modulus); + tmp = addmod( + tmp, + mulmod( + alpha, + addmod(y[0], modulus-y[1], modulus), + modulus + ), + modulus + ); + uint256 tmp1 = mulmod(colinear_value , 2, modulus); + tmp1 = mulmod(tmp1 , x, modulus); + if( tmp != tmp1 ){ + console.log("Colinear check failed"); + return false; + } + return true; + } + + function verify_eval( + bytes calldata blob, + uint256[5] memory commitments, + uint256 challenge, + bytes32 transcript_state + ) external view returns (bool){ + types.transcript_data memory tr_state; + tr_state.current_challenge = transcript_state; + commitment_state memory state; + { + uint256 offset; + + if (challenge!= transcript.get_field_challenge(tr_state, modulus)) return false; + + for(uint8 i = 0; i < batches_num;){ + transcript.update_transcript_b32(tr_state, bytes32(commitments[i])); + unchecked{i++;} + } + state.theta = transcript.get_field_challenge(tr_state, modulus); + + state.points_num = basic_marshalling.get_length(blob, 0x0); + unchecked{ + offset = 0x8 + state.points_num*0x20 + 0x8; + } + for(uint8 i = 0; i < batches_num;){ + state.batch_sizes[i] = uint64(uint8(blob[offset + 0x1])); + if( state.batch_sizes[i] > state.max_batch ) state.max_batch = state.batch_sizes[i]; + state.poly_num += state.batch_sizes[i]; + unchecked { i++; offset +=2;} + } + unchecked{ + offset += 0x8; + offset += state.poly_num; + state.roots_offset = offset + 0x8; + offset += 0x8; + } + for( uint8 i = 0; i < r;){ + transcript.update_transcript_b32(tr_state, bytes32(basic_marshalling.get_uint256_be(blob, offset + 0x8))); + state.alphas[i] = transcript.get_field_challenge(tr_state, modulus); + unchecked{i++; offset +=40; } + } + + + + unchecked{ + offset += 0x8 + r; + state.initial_data_offset = offset + 0x8; + offset += 0x8 + 0x20*basic_marshalling.get_length(blob, offset); + } + + unchecked{ + state.round_data_offset = offset + 0x8; + offset += 0x8 + 0x20*basic_marshalling.get_length(blob, offset); + offset += 0x8; + } + state.initial_proof_offset = offset; + for(uint8 i = 0; i < lambda;){ + for(uint j = 0; j < batches_num;){ + if(basic_marshalling.get_uint256_be(blob, offset + 0x10) != commitments[j] ) return false; + offset = merkle_verifier.skip_merkle_proof_be(blob, offset); + unchecked{j++;} + } + unchecked{i++;} + } + offset += 0x8; + state.round_proof_offset = offset; + + for(uint256 i = 0; i < lambda;){ + for(uint256 j = 0; j < r;){ + if(basic_marshalling.get_uint256_be(blob, offset + 0x10) != basic_marshalling.get_uint256_be(blob, state.roots_offset + j * 40 + 0x8) ) return false; + offset = merkle_verifier.skip_merkle_proof_be(blob, offset); + unchecked{j++;} + } + unchecked{i++;} + } + + state.final_polynomial = new uint256[](basic_marshalling.get_length(blob, offset)); + unchecked{offset += 0x8;} + for (uint256 i = 0; i < state.final_polynomial.length;) { + state.final_polynomial[i] = basic_marshalling.get_uint256_be(blob, offset); + unchecked{ i++; offset+=0x20;} + } + } + if( state.final_polynomial.length > (( 1 << (field.log2(max_degree + 1) - r + 1) ) ) ){ + console.log("Wrong final poly degree"); + return false; + } + + if( !prepare_U_V(blob, state, challenge) ) return false; + + state.leaf_data = new bytes(state.max_batch * 0x40 + 0x40); + for(uint256 i = 0; i < lambda;){ + // Initial proofs + state.x_index = uint256(transcript.get_integral_challenge_be(tr_state, 8)) % D0_size; + state.x = field.pow_small(D0_omega, state.x_index, modulus); + state.domain_size = D0_size >> 1; + for(uint256 j = 0; j < batches_num;){ + if( state.x_index < state.domain_size ){ + if(!copy_pairs_and_check(blob, state.initial_data_offset, state.leaf_data, state.batch_sizes[j], state.initial_proof_offset)){ + console.log("Error in initial mekle proof"); + return false; + } + } else { + if(!copy_reverted_pairs_and_check(blob, state.initial_data_offset, state.leaf_data, state.batch_sizes[j], state.initial_proof_offset)){ + console.log("Error in initial mekle proof"); + return false; + } + } + state.leaf_length = state.batch_sizes[j] * 0x40; + state.initial_data_offset += state.batch_sizes[j] * 0x40; + state.initial_proof_offset = merkle_verifier.skip_merkle_proof_be(blob, state.initial_proof_offset); + unchecked{j++;} + } + { + state.y = compute_combined_Q(blob, state); + if( state.x_index < state.domain_size ){ + if( !copy_memory_pair_and_check(blob, state.round_proof_offset, state.leaf_data, state.y) ){ + console.log("Not validated!"); + return false; + } + }else{ + if( !copy_reverted_memory_pair_and_check(blob, state.round_proof_offset, state.leaf_data, state.y) ){ + console.log("Not validated!"); + return false; + } + } + } + if( !colinear_check(state.x, state.y, state.alphas[0], basic_marshalling.get_uint256_be(blob,state.round_data_offset)) ){ + console.log("Colinear check failed"); + return false; + } + + state.round_proof_offset = merkle_verifier.skip_merkle_proof_be(blob, state.round_proof_offset); + for(state.j = 1; state.j < r;){ + state.x_index %= state.domain_size; + state.x = mulmod(state.x, state.x, modulus); + state.domain_size >>= 1; + if( state.x_index < state.domain_size ){ + if(!copy_pairs_and_check(blob, state.round_data_offset, state.leaf_data, 1, state.round_proof_offset)) { + console.log("Error in round mekle proof"); + return false; + } + } else { + if(!copy_reverted_pairs_and_check(blob, state.round_data_offset, state.leaf_data, 1, state.round_proof_offset)) { + console.log("Error in round mekle proof"); + return false; + } + } + state.y[0] = basic_marshalling.get_uint256_be(blob, state.round_data_offset); + state.y[1] = basic_marshalling.get_uint256_be(blob, state.round_data_offset + 0x20); + if( !colinear_check(state.x, state.y, state.alphas[state.j], basic_marshalling.get_uint256_be(blob,state.round_data_offset + 0x40)) ){ + console.log("Round colinear check failed"); + return false; + } + unchecked{state.j++; state.round_data_offset += 0x40;} + state.round_proof_offset = merkle_verifier.skip_merkle_proof_be(blob, state.round_proof_offset); + } + + state.x = mulmod(state.x, state.x, modulus); + if(polynomial.evaluate(state.final_polynomial, state.x, modulus) != basic_marshalling.get_uint256_be(blob, state.round_data_offset)) { + console.log("Wrong final poly check"); + return false; + } + if(polynomial.evaluate(state.final_polynomial, modulus - state.x, modulus) != basic_marshalling.get_uint256_be(blob, state.round_data_offset + 0x20)){ + console.log("Wrong final poly check"); + return false; + } + state.round_data_offset += 0x40; + + unchecked{i++;} + } + console.log("EVALUATION PROOF verified"); + return true; + } +} + \ No newline at end of file diff --git a/contracts/modular/circuit2/gate_argument.sol b/contracts/modular/circuit2/gate_argument.sol new file mode 100644 index 0000000..3d304a0 --- /dev/null +++ b/contracts/modular/circuit2/gate_argument.sol @@ -0,0 +1,68 @@ + +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) 2023 Generated by ZKLLVM-transpiler +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity >=0.8.4; + +import "../../types.sol"; +import "../../basic_marshalling.sol"; +import "../../interfaces/modular_gate_argument.sol"; +import "hardhat/console.sol"; + +contract modular_gate_argument_circuit2 is IGateArgument{ + uint256 constant modulus = 52435875175126190479447740508185965837690552500527637822603658699938581184513; + + // Append commitments + function verify( + bytes calldata blob, + uint256 theta + ) external view returns (uint256 F){ + uint256 sum; + uint256 gate; + uint256 prod; + uint256 theta_acc=1; + gate = 0; + sum = 0; + prod = basic_marshalling.get_uint256_be(blob, 192); + sum = addmod(sum, prod, modulus); + prod = 52435875175126190479447740508185965837690552500527637822603658699938581184512; + prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 224), modulus); + sum = addmod(sum, prod, modulus); + prod = basic_marshalling.get_uint256_be(blob, 160); + sum = addmod(sum, prod, modulus); + gate = addmod(gate, mulmod(theta_acc, sum, modulus), modulus); + theta_acc = mulmod(theta_acc, theta, modulus); + gate = mulmod(gate, basic_marshalling.get_uint256_be(blob, 0), modulus); + F = addmod(F, gate, modulus); + + gate = 0; + sum = 0; + prod = basic_marshalling.get_uint256_be(blob, 128); + sum = addmod(sum, prod, modulus); + prod = 52435875175126190479447740508185965837690552500527637822603658699938581184512; + prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 224), modulus); + sum = addmod(sum, prod, modulus); + prod = basic_marshalling.get_uint256_be(blob, 160); + prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 192), modulus); + sum = addmod(sum, prod, modulus); + gate = addmod(gate, mulmod(theta_acc, sum, modulus), modulus); + theta_acc = mulmod(theta_acc, theta, modulus); + gate = mulmod(gate, basic_marshalling.get_uint256_be(blob, 64), modulus); + F = addmod(F, gate, modulus); + + + } +} \ No newline at end of file diff --git a/contracts/modular/circuit2/lookup_argument.sol b/contracts/modular/circuit2/lookup_argument.sol new file mode 100644 index 0000000..91ba69a --- /dev/null +++ b/contracts/modular/circuit2/lookup_argument.sol @@ -0,0 +1,30 @@ + +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) 2023 Generated by ZKLLVM-transpiler +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity >=0.8.4; + +import "../../cryptography/transcript.sol"; +// Move away unused structures from types.sol +import "../../types.sol"; +import "../../basic_marshalling.sol"; +import "../../cryptography/transcript.sol"; +import "../../interfaces/modular_lookup_argument.sol"; +import "hardhat/console.sol"; + +library modular_lookup_argument_circuit2{ +} + \ No newline at end of file diff --git a/contracts/modular/circuit2/modular_verifier.sol b/contracts/modular/circuit2/modular_verifier.sol new file mode 100644 index 0000000..0424b0a --- /dev/null +++ b/contracts/modular/circuit2/modular_verifier.sol @@ -0,0 +1,183 @@ + +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) Generated by zkllvm-transpiler +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity >=0.8.4; + +import "../../cryptography/transcript.sol"; +// Move away unused structures from types.sol +import "../../types.sol"; +import "../../basic_marshalling.sol"; +import "../../interfaces/modular_verifier.sol"; +import "./commitment.sol"; +import "./gate_argument.sol"; +import "./lookup_argument.sol"; +import "./permutation_argument.sol"; +import "hardhat/console.sol"; +import "../../algebra/field.sol"; + +contract modular_verifier_circuit2 is IModularVerifier{ + uint256 constant modulus = 52435875175126190479447740508185965837690552500527637822603658699938581184513; + bool constant use_lookups = false; + bytes32 constant vk1 = bytes32(0x1154d6227897bca2848e9f5cb8eb7319c4c9f132830e93634656ba8282263a78); + bytes32 constant vk2 = bytes32(0xb024bd12fb5b07a167bc8a510f274a06946eac1240e823dd682ec71d18e04b4e); + bytes32 transcript_state; + address _gate_argument_address; + address _permutation_argument_address; + address _lookup_argument_address; + address _commitment_contract_address; + uint64 constant sorted_columns = 0; + uint64 constant f_parts = 8; // Individually on parts + uint64 constant z_offset = 0xa1; + uint64 constant table_offset = z_offset + 0x80 * 4 + 0xc0; + uint64 constant table_end_offset = table_offset + 288; + uint64 constant quotient_offset = 352; + uint64 constant rows_amount = 16; + uint256 constant omega = 14788168760825820622209131888203028446852016562542525606630160374691593895118; + uint256 constant special_selectors_offset = z_offset + 4 * 0x80; + + function initialize( +// address permutation_argument_address, + address lookup_argument_address, + address gate_argument_address, + address commitment_contract_address + ) public{ + console.log("Initialize"); + types.transcript_data memory tr_state; + transcript.init_transcript(tr_state, hex""); + transcript.update_transcript_b32(tr_state, vk1); + transcript.update_transcript_b32(tr_state, vk2); + +// _permutation_argument_address = permutation_argument_address; + _lookup_argument_address = lookup_argument_address; + _gate_argument_address = gate_argument_address; + _commitment_contract_address = commitment_contract_address; + + ICommitmentScheme commitment_scheme = ICommitmentScheme(commitment_contract_address); + tr_state.current_challenge = commitment_scheme.initialize(tr_state.current_challenge); + transcript_state = tr_state.current_challenge; + } + + struct verifier_state{ + uint256 xi; + uint256 Z_at_xi; + uint256 l0; + uint256[f_parts] F; + } + + function verify( + bytes calldata blob + ) public view{ + verifier_state memory state; + uint256 gas = gasleft(); + uint256 xi = basic_marshalling.get_uint256_be(blob, 0x79); + state.Z_at_xi = addmod(field.pow_small(xi, rows_amount, modulus), modulus-1, modulus); + state.l0 = mulmod( + state.Z_at_xi, + field.inverse_static(mulmod(addmod(xi, modulus - 1, modulus), rows_amount, modulus), modulus), + modulus + ); + + //0. Check proof size + // No direct public input + + //1. Init transcript + types.transcript_data memory tr_state; + tr_state.current_challenge = transcript_state; + // TODO: Just do something with it + + { + //2. Push variable_values commitment to transcript + transcript.update_transcript_b32_by_offset_calldata(tr_state, blob, 0x9); + + //3. Permutation argument + uint256[3] memory permutation_argument = modular_permutation_argument_circuit2.verify( + blob[0xa1:865+352], + transcript.get_field_challenge(tr_state, modulus), + transcript.get_field_challenge(tr_state, modulus), + state.l0 + ); + state.F[0] = permutation_argument[0]; + state.F[1] = permutation_argument[1]; + state.F[2] = permutation_argument[2]; + } + + //No lookups + + //5. Push permutation batch to transcript + transcript.update_transcript_b32_by_offset_calldata(tr_state, blob, 0x31); + + { + //6. Gate argument + IGateArgument modular_gate_argument = IGateArgument(_gate_argument_address); + state.F[7] = modular_gate_argument.verify(blob[table_offset:table_end_offset], transcript.get_field_challenge(tr_state, modulus)); + } + + // No public input gate + + uint256 F_consolidated; + { + //7. Push quotient to transcript + for( uint8 i = 0; i < f_parts;){ + F_consolidated = addmod(F_consolidated, mulmod(state.F[i],transcript.get_field_challenge(tr_state, modulus), modulus), modulus); + unchecked{i++;} + } + uint256 points_num = basic_marshalling.get_length(blob, 0x79 + 0x20); + transcript.update_transcript_b32_by_offset_calldata(tr_state, blob, 0x59); + } + + bool b = true; + //8. Commitment scheme verify_eval + { + ICommitmentScheme commitment_scheme = ICommitmentScheme(_commitment_contract_address); + uint256[5] memory commitments; + commitments[0] = uint256(vk2); + for(uint16 i = 1; i < 4;){ + commitments[i] = basic_marshalling.get_uint256_be(blob, 0x9 + (i-1)*(0x28)); + unchecked{i++;} + } + if(!commitment_scheme.verify_eval( + blob[z_offset - 0x8:], commitments, xi, tr_state.current_challenge + )) { + console.log("Error from commitment scheme!"); + b = false; + } + } + + //9. Final check + { + uint256 T_consolidated; + uint256 factor = 1; + for(uint64 i = 0; i < uint64(uint8(blob[z_offset + basic_marshalling.get_length(blob, z_offset - 0x8) *0x20 + 0xf]));){ + T_consolidated = addmod( + T_consolidated, + mulmod(basic_marshalling.get_uint256_be(blob, table_offset + quotient_offset + i *0x20), factor, modulus), + modulus + ); + factor = mulmod(factor, state.Z_at_xi + 1, modulus); + unchecked{i++;} + } + if( F_consolidated != mulmod(T_consolidated, state.Z_at_xi, modulus) ) { + console.log("Error. Table does't satisfy constraint system"); + b = false; + } + if(b) console.log("SUCCESS!"); else console.log("FAILURE!"); + } + + console.log("Gas for verification:", gas-gasleft()); + } +} + \ No newline at end of file diff --git a/contracts/modular/circuit2/params.json b/contracts/modular/circuit2/params.json new file mode 100644 index 0000000..c807d9a --- /dev/null +++ b/contracts/modular/circuit2/params.json @@ -0,0 +1,52 @@ +{ + "test_name": "circuit2", + "modulus": "52435875175126190479447740508185965837690552500527637822603658699938581184513", + "rows_amount": "16", + "usable_rows_amount": "13", + "omega": "14788168760825820622209131888203028446852016562542525606630160374691593895118", + "verification_key": "1154d6227897bca2848e9f5cb8eb7319c4c9f132830e93634656ba8282263a78 b024bd12fb5b07a167bc8a510f274a06946eac1240e823dd682ec71d18e04b4e", + "ar_params": [ + "3", + "1", + "0", + "3" + ], + "columns_rotations_node": [ + [ + "-1", + "0" + ], + [ + "0" + ], + [ + "0" + ], + [ + "0" + ], + [ + "0" + ], + [ + "0" + ] + ], + "commitment_params_node": { + "type": "LPC", + "r": "3", + "m": "2", + "lambda": "1", + "max_degree": "15", + "step_list": [ + "1", + "1", + "1" + ], + "D_omegas": [ + "36007022166693598376559747923784822035233416720563672082740011604939309541707", + "47309214877430199588914062438791732591241783999377560080318349803002842391998", + "31519469946562159605140591558550197856588417350474800936898404023113662197331" + ] + } +} diff --git a/contracts/modular/circuit2/permutation_argument.sol b/contracts/modular/circuit2/permutation_argument.sol new file mode 100644 index 0000000..c13e47f --- /dev/null +++ b/contracts/modular/circuit2/permutation_argument.sol @@ -0,0 +1,93 @@ + +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) 2023 Generated by ZKLLVM-transpiler +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity >=0.8.4; + +import "../../cryptography/transcript.sol"; +// Move away unused structures from types.sol +import "../../types.sol"; +import "../../basic_marshalling.sol"; +import "hardhat/console.sol"; + +library modular_permutation_argument_circuit2{ + uint256 constant modulus = 52435875175126190479447740508185965837690552500527637822603658699938581184513; + uint256 constant permutation_size = 4; + uint256 constant special_selectors_offset = 4 * 0x80; + uint256 constant table_values_offset = 4 * 0x80 + 0xc0; + bytes constant zero_indices = hex"00a000c000e0010000000020"; + + function uint16_from_two_bytes(bytes1 b1, bytes1 b2) internal pure returns( uint256 result){ + unchecked{ + result = uint8(b1); + result = result << 8; + result += uint8(b2); + } + } + + // Append commitments + function verify( + bytes calldata blob, + uint256 beta, + uint256 gamma, + uint256 l0 + ) internal view returns (uint256[3] memory F){ + uint256 V_P_value = basic_marshalling.get_uint256_be(blob, table_values_offset + 288); + uint256 h = 1; + uint256 g = 1; + + for(uint8 i = 0; i < permutation_size;){ + uint256 tmp = addmod( + gamma, + basic_marshalling.get_uint256_be( + blob, table_values_offset + uint16_from_two_bytes(zero_indices[i<<1], zero_indices[(i<<1)+1]) + ), + modulus + ); + + g = mulmod(g, addmod( + mulmod(beta, basic_marshalling.get_uint256_be(blob, (i *0x40 )), modulus), + tmp, + modulus + ), modulus); + h = mulmod(h, addmod( + mulmod(beta, basic_marshalling.get_uint256_be(blob, permutation_size * 0x40 + (i *0x40 )), modulus), + tmp, + modulus + ), + modulus + ); + unchecked{i++;} + } + + F[0] = mulmod(l0, addmod(1, modulus - V_P_value, modulus), modulus); + F[1] = mulmod( + addmod(addmod(1, modulus - basic_marshalling.get_uint256_be(blob, special_selectors_offset), modulus), modulus - basic_marshalling.get_uint256_be(blob, special_selectors_offset + 0x60), modulus), + addmod( + mulmod(basic_marshalling.get_uint256_be(blob, table_values_offset + 288 + 0x20), h, modulus), + modulus - mulmod(V_P_value, g, modulus), + modulus + ), + modulus + ); + F[2] = mulmod( + mulmod(basic_marshalling.get_uint256_be(blob, permutation_size * 0x80), V_P_value, modulus), + addmod(V_P_value, modulus-1, modulus), + modulus + ); + } +} + \ No newline at end of file diff --git a/contracts/modular/circuit2/proof.bin b/contracts/modular/circuit2/proof.bin new file mode 100644 index 0000000..048b5bd --- /dev/null +++ b/contracts/modular/circuit2/proof.bin @@ -0,0 +1 @@ +0x030000000000000020013611b353365b128ae8b2206f712e2ad2588195b161da79ce92a00b9c41f3610000000000000020476df1bec55dc3bf42113c6db952a2504babadbdec357fbfb731e78eed8c46e30000000000000020e3d82bdb0dce06df48a9101d8aa9e81d782060efbb68e3212a7b8b3dff7d1b464001a4ba7c4582fbf209fb2f6218772443690aa59d4d64946f094a78d58bfd9200000000000000264001a4ba7c4582fbf209fb2f6218772443690aa59d4d64946f094a78d58bfd921b02b1d914ea72056989679d7826ca1f9adbc9880002cf6daffb7f1fa3b332cd64428b1fe90e1d0b0498563391c5b9eddca65e7e4d22ac1209410950d6d3eefb4925359c68cba0ddaf87fd463f6daed7e844deb500155000cfe079de79e6639a063fe1ec65b1db9beccf4b38c29d0561121abd621bfc8c8440c7413bdfcb88d7304dd9fa371b70eeffd08ccb957867d20aeb86e7009bc009af235519554cb9322bbf2d76c7dd014379ab0e8d524b25a77ebb2daec3e7d79dc572c8a31e90bde16a45a7312e851bf898402981030726b3a4f5684b04458845c9f753b35519105c4001a4ba7c4582fbf209fb2f6218772443690aa59d4d64946f094a78d58bfd921b02b1d914ea72056989679d7826ca1f9adbc9880002cf6daffb7f1fa3b332cd25ea743799f1aa88521bd95d5ee2a19209a774c9d96b980344401bbef76c3cc23d9bd931d08eee60195862ede438d303f80e10fc9093f2a0920d1f3d2bed12c92eb1f2f1c12ce907b43f0ff3ee359560dc93090846ca04073ca8640ba0b5a2e85d118568c35ccff0c8e14aeb77fcd0a05ba585f78d646348b66c554b10625e600ae71a17d7bed1b3adc6be921206dc083c64238aeb5522fef476515f1f66eb2f3a68771f10abc9d88dbdf7ce531cd3044141f573048011fdb1b76e4ec34435a618b6791fa7f27ea2aeca29fccc25af5da431ec2b4ac67b92a583b6ce9b08f0a902b3f3b547e4142f15e66b6831742aa524eefbb6f67846e40220f863b5a32dbe3f1b4adcabfaa14cf2ee7ec3990f58d91ae75bfaaefe1327313d89eb23baf96f3914739c7945d90240de1dc43abd968baabf8aa6738509b019343b263024bffc6741ce5e39c97291cc07efc134faf0fd0fdd959980d807ec4c2e1a34f2e20ad3662761bdeda7376d374c58b68475ecfa30064120c27daa97edfbda94eecaeaff3d79275d8ed549003c2c8582cfc0d85beabc05b32d65b52413884167fd8c532e369369e984155e5f975bd41103c801ea569e500244152d768985604be0800b06295df7d91709893b29eb4a316e6324251a6054f39f9f154ceda4a4d2347984a93cd3d24de7686966f8fa3577ea539d516c0a16d46d0e2c283db58b157952ca531299474f6b537b6eb35e5ec9186b332e1882705c78e5a4a217b8b30051da60f706c642ff9946925c0dc0ef9fd3c0d8898c8abae6018ad5bad86a38b6f71dff9734a2549033beea58ad69a2592f0166aceb9849d79ec91966e862b3a9a46e3d3b6774954e99349cd832a314c07d2cdac6895ced4c5512d444ceba434c68a0911e3b0f7e5fae23e5625fe05984b5a0169a61920cace5d9f71db14bb817dc7451134d76825e555f6e46bc309eb7044dce87579de8f9f47be149bf807f4a5f03a5f7446bbda6006c330cd835ef08e9a780cb8c983ceab82afaa19b4c38f741baa7362f2e52ee0693770c21e21852029563f1567db0bd1b7d30a4319c541d417d658d338b9a7616d79c679e189d980e1c371e1093808cec757bcaf59a48b34cd58b394aaee8150734a38fb32b071099caa44ab05514acb7bf75ea263feb384bb9450e3dc8fe629560a6771c6e351f47d6fdd27354f51a6d033a2382003292cf2a2f0100640c73b584893ae4b6b73079045de71fd0e60a720e73c6d06cd01b9edb77910000000000000008000c01040201030500000000000000160202020202020202030302020201010102010101010100000000000000030000000000000020bb34c5953c0228e0ce2bc8ca4d0cd431362f6913e7316530e5b57753384ade33000000000000002088c7e6c7e7798be3e5011a6a026e58d0cee9886d3f31b35e18e1fdcde1f6b01500000000000000205667b785870480edb712884d2c4f76b6294ad02652da09ad92f2e41a177639290000000000000003010101000000000000002c205bf9e8afe7612dc1649310899759ba6ee1991fee0e510a7b9610b1db94977e5391ad6a79b61c1a71d544f7800a7e4ae4dc0ae311f00af48469ef4d246b68836e962e09a5b62af816862d6bb9819c13b46d8bdc8265db4a611a74de011024710557794983e752501cb3aa9c50203bf19f5018267d9880b49ee58b20feefdb904e8956508e4a3d176a502dc1d8c03469f88cfaf590d2d70ea7b932180770ff11256451029b534030c8e9aa4630e1a39b5b30a90d6f2b84f05846cde6f88f00f0560abee73d91b6831b49e02cc6ba0ed07ce44caaf5ca716a96105eac3416f9731de2e86bec0bc6c517eff7db42e7c934d6d957580a33ea9469efa152cbe9068e205bf9e8afe7612dc1649310899759ba6ee1991fee0e510a7b9610b1db94977e5391ad6a79b61c1a71d544f7800a7e4ae4dc0ae311f00af48469ef4d246b68830ab6c33dfccd051a061e5be8f49a732d4c6d36bdda9f91b11aa909e141c65114681fb1d4779c6468804f40328124c49aba8dced497226d41fc1057a7e49d1d814893c004ff2931562c8cc263146041b5e44b02604cd403c9c153ddb905e9fbcb5f3df663385aee9ad9fc0324242a96fa8e2b0c021bc0d147e386fab1d4cb658d42d6fd0f230228640319cc5551c8995adc570f61257b6aa75381cd80458a7bd1682a05ec669d7ccc3008aae9af714bd5f21c31e2bba2dee0e72dd17001b7439805743bb99f2d295c242ef55a30364a9ffd098b3fe03ecaf943226a7d6409e0656eaec809b777eba045e60bd8db5a064a11eac0dd877e3b6480d1cebe6edee1813ff83bb502dae89daf9d782eafc148517ae3d61ba8e7b4ffe220ada095520d311fd44117f9be5543cdfd0226c730103a092e9792a996660e36486ece71e5940d1cce04470d4a629d89859052f9a85d108e89bd85659a9781fab6e0c3f9f5d6483f09ce36fd7359439392fbceac7dcdff84b2d325f0ef02abcbb416fce7911bd00aaf06f24497638beddeebd3eaf22bd350f285a77cfe336965cff63200e66d2d48cfc83c9dae0ca5a598db07405ba8860db6c2819e06c5651fc0feb725b548495a2e5f105f5369eddb06f7a7130fba2358e33b63de632029c51fbe3c7ee57a23317b7ec7d5134903110566be672439aefb00ff82cf1be352cf6de5e528b0d2bd4b38c0d0329291aca67346741fea56b48add59c1e37284609a9ee3c0d33a591f0560e4cb76a30f32774058362a51502a2170578797bded2d25470e3f3cfd38d46191013077313133e24855e062dad9fbe492b8414e14e3f708baf48590c69aa14864ecf615b75ec124018b124052f916bcf74d7b12d698087d9c36004a625930721115fd2b46dc91ea07e3ff56015d0fb899b3b3386206f34c7203a221bdf1aa5e8db18649477c7d6fa8d0ed43cb72cff7c02bca9db1c5631f9a5fc4027dcdbf0fb906d6d996cc07aae56f4d586f4be3a558d036efbb9ba86b1dbe1c89d57f606dd4df39c5f434299aa6a1cd13a6b28cecf98fadf3fee2b87f1ce84b19d4beea0774d9e542f8d49f7412e60113a572d05d19e31eaf5fbdf64a72c666f244f98808916f80da7e1d306ff71d223bed8b11218ad2eaab57e247faaade8c22a0ec2221eac6e89f22728d46c99756ee3b020ec4f43070cc0da8bfd7ebb355e873208f2c8b58d4d287a54163fc6f13ebc252f3366a9749e2a652133f0d14a56779ddb64003750ecbd2c410bcb6c4f43ae8032b16099ac15e64952c245e7b31fee2f20604c74eea39b73a379b4550ce9d6900f497b917b545e92ceb630520732b1c2be947ef85b7f16fdd0598bb3481a2feee0391e2c3fadbaa4b675093263e37089a0d6a5f7b3787e53400750f8d269b2866512c254839fcb21d870fbb67499f14ac4c2582bf6552469cabf53783814405fd1b9b7c2a992fc4a82cc6a1017ad53783e432f3efed6f9a328513f4b2bf088927f15699026cf8e23cd18a839ebeea87d38c0000000000000006480ad252101ff70227858af984297abfd072213ef079ce9c7cf51231a2a7db1e31505874b0f0bcc3f6c75fd859ebb0618e9ddfad5ee8c46dd15d2389d0aa590967fa90be1e0c36697f6d0dd2725f7f5bf51cfabd02d9bca79893b626bd7231c639ef5d2216ffdeaad051fbd12a619d43e3aee7983cd716a02ca41c49fb9c93573081be8d66f6b8da82b52803bbab5ac20c04cdf2ffe32e81bd965f08e735017434bb65a007051349f7d268c5ffad4511088167210a3b666657f0fad0cb035b81000000000000000400000000000000240000000000000020b024bd12fb5b07a167bc8a510f274a06946eac1240e823dd682ec71d18e04b4e00000000000000070000000000000001000000000000000100000000000000200a328383bb2e1d145590576f030cb2b70d409fc4bb92c2b45eb94d0a9c57f07200000000000000010000000000000001000000000000002080195fff4b31c0666b9244a78ba7fb61a9b65be5cbca8cf7fb11944443bd15310000000000000001000000000000000000000000000000206cd7f59682dc55d91dadb529148e8ffb819cb7387a733fb4dc856744de61d89f0000000000000001000000000000000100000000000000205781471570a34296cafcc6dd1e6a633fc88729da8f0d55fc7bb320bcddcb78e50000000000000001000000000000000100000000000000209329417e4936e11df0051cd0626bd7f7ef081d32e3bb9bcfdbb72a61b096475e0000000000000001000000000000000000000000000000206addb5fc6e43b31d8575e4295b2d1e14344d5a8377dd15d5e73efdb9ec97a5fc000000000000000100000000000000010000000000000020564b02dc9ea4ce766caf42be67c77c94a3193983b90074fcc9626e7b3b0da76200000000000000240000000000000020013611b353365b128ae8b2206f712e2ad2588195b161da79ce92a00b9c41f3610000000000000007000000000000000100000000000000010000000000000020b5d136901d97f08171a1e49d925391d65f1b8f39b9373fd3854489f2a1ccd5ae0000000000000001000000000000000100000000000000206fbe60423e173246e7c8214ae112e811f4d0d2ea991519a7f01d4bbee31e66c800000000000000010000000000000000000000000000002051c37fe59b2cb80eb2b8df3610d19fb5d767b1f7e55b1d0ac86f5504396975cf000000000000000100000000000000010000000000000020230c46f6d901a7ddd5a455472c68d314ec3aa250a612ab0c23eea693ed4a0966000000000000000100000000000000010000000000000020a197a6c0748bb507a142057ae564ef3cc13b21448999254a32b6ea706d2a0c55000000000000000100000000000000000000000000000020edc5f8b2b5c8669b1f0c52cb3867c3ccc0debc575df741703611b04829e24ac3000000000000000100000000000000010000000000000020929c4c58090d4626368b3ef1c0c92ac63f84602a9c4ade0349309181148e4a3900000000000000240000000000000020476df1bec55dc3bf42113c6db952a2504babadbdec357fbfb731e78eed8c46e3000000000000000700000000000000010000000000000001000000000000002007c7becb3ec527c241badc24d7cf8326ee048a7a1a2a97f049d9b66569356abd000000000000000100000000000000010000000000000020221624ad8511ecd108ebb5b5bcfb069806cc471401013118960aca6115cc6e8b000000000000000100000000000000000000000000000020a008fceebeac29fa48e78aa6e8169fb3b210436a6240de9e7d6c610383123abc00000000000000010000000000000001000000000000002005d9182161260ff74f287cf915f8006f682eeb40d0357d4dbd7c5ea001b29dae000000000000000100000000000000010000000000000020c6de64e0cbc0fe22d574253d9bb5131ab0ad9a5e5cd0958fd98b7611d98397830000000000000001000000000000000000000000000000204d56ee39980d5e870d0931db1a5009c7a68416078e8720eacd8eefb438d5476d000000000000000100000000000000010000000000000020052cdbf879d0b85d8dda6f812a0da9aefa097254796ba99fe0a2beff0b1b569a00000000000000240000000000000020e3d82bdb0dce06df48a9101d8aa9e81d782060efbb68e3212a7b8b3dff7d1b460000000000000007000000000000000100000000000000010000000000000020d50700d8efdacdaa3f8cc41c99d4beb36e793f93e76ae5843df24b74d3c92de80000000000000001000000000000000100000000000000203674907c1205758c591e8624eea781d9d584b4c4dc4d18b272a5fe8dd38aa2640000000000000001000000000000000000000000000000207a69d32c6a4c133d1cad26ab5b1ff8373445006302fe2011c7b5ada31f5fd29b0000000000000001000000000000000100000000000000207813ea92ad153fff265b5c2de940fdedce26bc73964839f52a47f8fa4db4806400000000000000010000000000000001000000000000002089e037880b7874694fcaa5dc142bd9130f75b115cd28c9704ca9721007b943cd0000000000000001000000000000000000000000000000200258b8bdeedc95a4cd8b5a92e3379ed46362650c836146f8f940b0268b9dd7f8000000000000000100000000000000010000000000000020b9dd89226d41c06d29d2fea5271f595f4790f0946772cbc27578389af12ba845000000000000000300000000000000240000000000000020bb34c5953c0228e0ce2bc8ca4d0cd431362f6913e7316530e5b57753384ade330000000000000007000000000000000100000000000000010000000000000020f41284b2c7ad2a8a0da6593d265c875f769242f2ea8dda5ccf4bb0c79ae1b97f0000000000000001000000000000000100000000000000204293ea3b9829e09996e4214f28b27a042345e586fa9df5eb0916d4345d6ab002000000000000000100000000000000000000000000000020519c2e1fbe427d52c947e43f78f0b225d8d8e627d19e846d10b20a41e4c52d9a000000000000000100000000000000010000000000000020c9ab7ad8964e40b1684fd03d96cd86ad4310c52d1400d56a9c05444f9a6ae39c000000000000000100000000000000010000000000000020e23b59a9d733f64d358c28d4064d90260af92aa629dac155dd74ab5c79379dce0000000000000001000000000000000000000000000000205213675e85ea888ffdc91cea91d6ac203f406ac54807c26959de3781135034df000000000000000100000000000000010000000000000020d853f7737cf6a24bd8a3c5ec84a401bc47e08f1df732981649251f97e9f47e070000000000000024000000000000002088c7e6c7e7798be3e5011a6a026e58d0cee9886d3f31b35e18e1fdcde1f6b01500000000000000060000000000000001000000000000000100000000000000209765119c1b73fe70475222ef8bf379dd6be0bcc99cff3b2571493141ad6b5983000000000000000100000000000000010000000000000020d56afeac63d2c162d82035277228afa1a75282a606cc19001e8a220ce46f21d20000000000000001000000000000000000000000000000205d6d7d7ba2b3d21bd7922fd8a3977c58c57cb36015c6775d4e0a1ed098a2d351000000000000000100000000000000010000000000000020c195f85a60b508a00bb5ef08c1531fe8a7c2408ab7fc332182ad6ba82db157f0000000000000000100000000000000010000000000000020acef5117656f1a5f2419865e88d468c211a5fb2963d9471e4e78dea4f33b1d58000000000000000100000000000000000000000000000020eacf52a87cd99e963e531da340942f02dc2b2044737713c1e91504dfc81aae56000000000000000400000000000000205667b785870480edb712884d2c4f76b6294ad02652da09ad92f2e41a177639290000000000000005000000000000000100000000000000010000000000000020170e7c05c431f0986bc2593a7eec00f99ba190ab88d971b3d75449588c88e02a000000000000000100000000000000010000000000000020dd011c946e9958ce777c81065e17fd25ab1360d9026fc52b26c44f3ac0be53a000000000000000010000000000000000000000000000002022d304720ee8b9b860ea39d3ebb587eed59d0c974bfd7c2aef15712c56be247e0000000000000001000000000000000100000000000000209943d6b0ed654cb917ae8904f518f437e02d71baa122f1f947c743a6e2549213000000000000000100000000000000010000000000000020bb565a7b428686809dc2866521fc80c13592b9dcf5df999efc1155158e7f841900000000000000026c9565c04bcca4b656e0b468e27d3bec3421ec8b850e78738ac3acec591c2e7b6144deb9368b3879a7c915252d1be749a393227c3b7cec66dd50b0c936a2bb9e \ No newline at end of file diff --git a/contracts/modular/circuit3/commitment.sol b/contracts/modular/circuit3/commitment.sol new file mode 100644 index 0000000..d235b64 --- /dev/null +++ b/contracts/modular/circuit3/commitment.sol @@ -0,0 +1,593 @@ + +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) 2023 Generated by ZKLLVM-transpiler +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity >=0.8.4; + +import "../../cryptography/transcript.sol"; +import "../../interfaces/modular_commitment.sol"; +// Move away unused structures from types.sol +import "../../types.sol"; +import "../../basic_marshalling.sol"; +import "../../containers/merkle_verifier.sol"; +import "../../algebra/polynomial.sol"; +import "hardhat/console.sol"; + +contract modular_commitment_scheme_circuit3 { + uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; + uint64 constant batches_num = 5; + uint256 constant r = 2; + uint256 constant lambda = 40; + uint256 constant D0_size = 128; + uint256 constant max_degree = 7; + uint256 constant D0_omega = 7356716530956153652314774863381845254278968224778478050456563329565810467774; + uint256 constant unique_points = 5; + uint256 constant permutation_point = 2; + uint256 constant quotient_point = 0; + uint256 constant lookup_point = 4; + bytes constant points_ids = hex"010101010101010103030303030103000000"; + uint256 constant omega = 199455130043951077247265858823823987229570523056509026484192158816218200659; + uint256 _etha; + + struct commitment_state{ + bytes leaf_data; + uint256 roots_offset; + uint256 initial_data_offset; + uint256 initial_proof_offset; + uint256 round_proof_offset; + uint256 round_data_offset; + uint256[r] alphas; + uint64[batches_num] batch_sizes; + uint64 poly_num; + uint256 points_num; + uint256 theta; + uint256 x_index; + uint256 x; + uint256 max_batch; + uint256 domain_size; + uint256[] final_polynomial; + uint256 leaf_length; + uint256[][unique_points] denominators; + uint256[unique_points] factors; + uint256[][unique_points] combined_U; + uint256[][unique_points] unique_eval_points; + uint256[2] y; + uint256 j; + uint256 offset; + } + + function calculate_2points_interpolation(uint256[] memory xi, uint256[2] memory z, uint256 modulus) + internal pure returns(uint256[2] memory U){ +// require( xi.length == 2 ); + U[0] = addmod(mulmod(z[0], xi[1], modulus),modulus - mulmod(z[1], xi[0], modulus), modulus); + U[1] = addmod(z[1], modulus - z[0], modulus); + } + +// coeffs for zs on each degree can be precomputed if necessary + function calculate_3points_interpolation(uint256[] memory xi, uint256[3] memory z, uint256 modulus) + internal pure returns(uint256[3] memory U){ +// require( xi.length == 3 ); + z[0] = mulmod(z[0], addmod(xi[1], modulus - xi[2], modulus), modulus); + z[1] = mulmod(z[1], addmod(xi[2], modulus - xi[0], modulus), modulus); + z[2] = mulmod(z[2], addmod(xi[0], modulus - xi[1], modulus), modulus); + + U[0] = mulmod(z[0], mulmod(xi[1], xi[2], modulus), modulus); + U[0] = addmod(U[0], mulmod(z[1], mulmod(xi[0], xi[2], modulus), modulus), modulus); + U[0] = addmod(U[0], mulmod(z[2], mulmod(xi[0], xi[1], modulus), modulus), modulus); + + U[1] = modulus - mulmod(z[0], addmod(xi[1], xi[2], modulus), modulus); + U[1] = addmod(U[1], modulus - mulmod(z[1], addmod(xi[0], xi[2], modulus), modulus), modulus); + U[1] = addmod(U[1], modulus - mulmod(z[2], addmod(xi[0], xi[1], modulus), modulus), modulus); + + U[2] = addmod(z[0], addmod(z[1], z[2], modulus), modulus); + } + + function prepare_eval_points(uint256[][unique_points] memory result, uint256 xi) internal view { + uint256 inversed_omega = field.inverse_static(omega, modulus); + result[0] = new uint256[](1); + result[0][0] = xi; + result[1] = new uint256[](2); + result[1][0] = xi; + result[1][1] = _etha; + result[2] = new uint256[](2); + result[2][0] = xi; + result[2][1] = mulmod(xi, omega, modulus); + result[3] = new uint256[](3); + result[3][0] = xi; + result[3][1] = mulmod(xi, omega, modulus); + result[3][2] = _etha; + result[4] = new uint256[](3); + result[4][0] = xi; + result[4][1] = mulmod(xi, omega, modulus); + result[4][2] = mulmod(xi, field.pow_small(omega, 4, modulus), modulus); + + } + + function prepare_U_V(bytes calldata blob, commitment_state memory state, uint256 xi) internal view returns(bool result){ + result = true; + uint64 ind = 0; + prepare_eval_points(state.unique_eval_points, xi); + // Prepare denominators + for( ind = 0; ind < state.unique_eval_points.length;){ + state.denominators[ind] = new uint256[](state.unique_eval_points[ind].length + 1); + if( state.unique_eval_points[ind].length == 1 ){ + state.factors[ind] = 1; + state.denominators[ind][0] = modulus - state.unique_eval_points[ind][0]; + state.denominators[ind][1] = 1; + } else + if( state.unique_eval_points[ind].length == 2 ){ + // xi1 - xi0 + state.factors[ind] = + addmod(state.unique_eval_points[ind][1], modulus - state.unique_eval_points[ind][0], modulus); + state.denominators[ind][2] = 1; + + state.denominators[ind][1] = + modulus - addmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][1], modulus); + + state.denominators[ind][0] = + mulmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][1], modulus); + state.denominators[ind][0] = mulmod(state.denominators[ind][0], state.factors[ind], modulus); + state.denominators[ind][1] = mulmod(state.denominators[ind][1], state.factors[ind], modulus); + state.denominators[ind][2] = mulmod(state.denominators[ind][2], state.factors[ind], modulus); + } else + if( state.unique_eval_points[ind].length == 3 ){ + state.factors[ind] = modulus - + mulmod( + mulmod( + addmod(state.unique_eval_points[ind][0], modulus - state.unique_eval_points[ind][1], modulus), + addmod(state.unique_eval_points[ind][1], modulus - state.unique_eval_points[ind][2], modulus), + modulus + ), + addmod(state.unique_eval_points[ind][2], modulus - state.unique_eval_points[ind][0], modulus), + modulus + ); + state.denominators[ind][3] = 1; + state.denominators[ind][2] = + modulus - addmod( + state.unique_eval_points[ind][0], + addmod(state.unique_eval_points[ind][1],state.unique_eval_points[ind][2], modulus), + modulus + ); + state.denominators[ind][1] = + addmod( + mulmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][1], modulus), + addmod( + mulmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][2], modulus), + mulmod(state.unique_eval_points[ind][1], state.unique_eval_points[ind][2], modulus), + modulus + ), + modulus + ); + state.denominators[ind][0] = + modulus - mulmod( + state.unique_eval_points[ind][0], + mulmod(state.unique_eval_points[ind][1],state.unique_eval_points[ind][2], modulus), + modulus + ); + state.denominators[ind][0] = mulmod(state.denominators[ind][0], state.factors[ind], modulus); + state.denominators[ind][1] = mulmod(state.denominators[ind][1], state.factors[ind], modulus); + state.denominators[ind][2] = mulmod(state.denominators[ind][2], state.factors[ind], modulus); + state.denominators[ind][3] = mulmod(state.denominators[ind][3], state.factors[ind], modulus); + } else { + console.log("UNPROCESSED number of evaluation points"); + return false; + } + unchecked{ind++;} + } + + // Prepare combined U + for( uint256 ind = 0; ind < unique_points;){ + uint256[] memory point = state.unique_eval_points[ind]; + state.combined_U[ind] = new uint256[](state.unique_eval_points[ind].length); + uint64 cur = 0; + uint256 offset = 0x8; + for( uint256 k = 0; k < batches_num;){ + for( uint256 i = 0; i < state.batch_sizes[k];){ + uint256 cur_point = 0; + if(cur < points_ids.length ) cur_point = uint8(points_ids[cur]); + else if(k == 2) cur_point = permutation_point; + else if(k == 3) cur_point = quotient_point; + else if(k == 4) cur_point = lookup_point; + else console.log("Wrong index"); + + polynomial.multiply_poly_on_coeff( + state.combined_U[ind], + state.theta, + modulus + ); + if( cur_point == ind ){ + if( point.length == 1 ){ + state.combined_U[ind][0] = addmod( + state.combined_U[ind][0], + basic_marshalling.get_uint256_be(blob, offset), + modulus + ); + } else + if( point.length == 2 ){ + uint256[2] memory tmp; + tmp[0] = basic_marshalling.get_uint256_be(blob, offset); + tmp[1] = basic_marshalling.get_uint256_be(blob, offset + 0x20); + tmp = calculate_2points_interpolation( + point, tmp, modulus + ); + state.combined_U[ind][0] = addmod(state.combined_U[ind][0], tmp[0], modulus); + state.combined_U[ind][1] = addmod(state.combined_U[ind][1], tmp[1], modulus); + } else + if( point.length == 3){ + uint256[3] memory tmp; + tmp[0] = basic_marshalling.get_uint256_be(blob, offset); + tmp[1] = basic_marshalling.get_uint256_be(blob, offset + 0x20); + tmp[2] = basic_marshalling.get_uint256_be(blob, offset + 0x40); + tmp = calculate_3points_interpolation( + point, tmp, modulus + ); + state.combined_U[ind][0] = addmod(state.combined_U[ind][0], tmp[0], modulus); + state.combined_U[ind][1] = addmod(state.combined_U[ind][1], tmp[1], modulus); + state.combined_U[ind][2] = addmod(state.combined_U[ind][2], tmp[2], modulus); + } else { + return false; + } + } + offset += state.unique_eval_points[cur_point].length * 0x20; + unchecked{i++;cur++;} + } + unchecked{k++;} + } + unchecked{ind++;} + } + } + + function compute_combined_Q(bytes calldata blob,commitment_state memory state) internal view returns(uint256[2] memory y){ + for(uint256 p = 0; p < unique_points; ){ + uint256[2] memory tmp; + uint256 offset = state.initial_data_offset - state.poly_num * 0x40; // Save initial data offset for future use; + uint256 cur = 0; + for(uint256 b = 0; b < batches_num;){ + for(uint256 j = 0; j < state.batch_sizes[b];){ + uint256 cur_point = 0; + if(cur < points_ids.length ) cur_point = uint8(points_ids[cur]); + else if(b == 2) cur_point = permutation_point; + else if(b == 3) cur_point = quotient_point; + else if(b == 4) cur_point = lookup_point; + else console.log("Wrong index"); + + tmp[0] = mulmod(tmp[0], state.theta, modulus); + tmp[1] = mulmod(tmp[1], state.theta, modulus); + + if(cur_point == p){ + tmp[0] = addmod(tmp[0], basic_marshalling.get_uint256_be(blob, offset), modulus); + tmp[1] = addmod(tmp[1], basic_marshalling.get_uint256_be(blob, offset + 0x20), modulus); + } + unchecked{offset += 0x40;j++; cur++;} + } + unchecked{b++;} + } + tmp[0] = mulmod(tmp[0], state.factors[p], modulus); + tmp[1] = mulmod(tmp[1], state.factors[p], modulus); + uint256 s = state.x; + tmp[0] = addmod(tmp[0], modulus - polynomial.evaluate(state.combined_U[p], s , modulus), modulus); + tmp[1] = addmod(tmp[1], modulus - polynomial.evaluate(state.combined_U[p], modulus - s, modulus), modulus); + tmp[0] = mulmod(tmp[0], field.inverse_static(polynomial.evaluate(state.denominators[p], s, modulus), modulus), modulus); + tmp[1] = mulmod(tmp[1], field.inverse_static(polynomial.evaluate(state.denominators[p], modulus - s, modulus), modulus), modulus); + y[0] = addmod(y[0], tmp[0], modulus); + y[1] = addmod(y[1], tmp[1], modulus); + unchecked{p++;} + } + } + + function initialize( + bytes32 tr_state_before + ) external returns(bytes32 tr_state_after){ + types.transcript_data memory tr_state; + tr_state.current_challenge = tr_state_before; + _etha = transcript.get_field_challenge(tr_state, modulus); + tr_state_after = tr_state.current_challenge; + } + + function copy_memory_pair_and_check(bytes calldata blob, uint256 proof_offset, bytes memory leaf, uint256[2] memory pair) + internal pure returns(bool b){ + uint256 c = pair[0]; + uint256 d = pair[1]; + assembly{ + mstore( + add(leaf, 0x20), + c + ) + mstore( + add(leaf, 0x40), + d + ) + } + if( !merkle_verifier.parse_verify_merkle_proof_bytes_be(blob, proof_offset, leaf, 0x40 )){ + return false; + } else { + return true; + } + } + + function copy_reverted_memory_pair_and_check(bytes calldata blob, uint256 proof_offset, bytes memory leaf, uint256[2] memory pair) + internal pure returns(bool b){ + uint256 c = pair[0]; + uint256 d = pair[1]; + assembly{ + mstore( + add(leaf, 0x20), + d + ) + mstore( + add(leaf, 0x40), + c + ) + } + if( !merkle_verifier.parse_verify_merkle_proof_bytes_be(blob, proof_offset, leaf, 0x40 )){ + return false; + } else { + return true; + } + } + + function copy_pairs_and_check(bytes calldata blob, uint256 offset, bytes memory leaf, uint256 size, uint256 proof_offset) + internal pure returns(bool b){ + uint256 offset2 = 0x20; + for(uint256 k = 0; k < size;){ + assembly{ + mstore( + add(leaf, offset2), + calldataload(add(blob.offset, offset)) + ) + mstore( + add(leaf, add(offset2, 0x20)), + calldataload(add(blob.offset, add(offset, 0x20))) + ) + } + unchecked{ + k++; offset2 += 0x40; offset += 0x40; + } + } + if( !merkle_verifier.parse_verify_merkle_proof_bytes_be(blob, proof_offset, leaf, offset2 - 0x20 )){ + return false; + } else { + return true; + } + } + + function copy_reverted_pairs_and_check(bytes calldata blob, uint256 offset, bytes memory leaf, uint256 size, uint256 proof_offset) + internal pure returns(bool){ + uint256 offset2 = 0x20; + for(uint256 k = 0; k < size;){ + assembly{ + mstore( + add(leaf, offset2), + calldataload(add(blob.offset, add(offset, 0x20))) + ) + mstore( + add(leaf, add(offset2, 0x20)), + calldataload(add(blob.offset, offset)) + ) + } + unchecked{ + k++; offset2 += 0x40; offset += 0x40; + } + } + if( !merkle_verifier.parse_verify_merkle_proof_bytes_be(blob, proof_offset, leaf, offset2 - 0x20 )){ + return false; + } else { + return true; + } + } + + function colinear_check(uint256 x, uint256[2] memory y, uint256 alpha, uint256 colinear_value) internal pure returns(bool){ + uint256 tmp; + tmp = addmod(y[0], y[1], modulus); + tmp = mulmod(tmp, x, modulus); + tmp = addmod( + tmp, + mulmod( + alpha, + addmod(y[0], modulus-y[1], modulus), + modulus + ), + modulus + ); + uint256 tmp1 = mulmod(colinear_value , 2, modulus); + tmp1 = mulmod(tmp1 , x, modulus); + if( tmp != tmp1 ){ + console.log("Colinear check failed"); + return false; + } + return true; + } + + function verify_eval( + bytes calldata blob, + uint256[5] memory commitments, + uint256 challenge, + bytes32 transcript_state + ) external view returns (bool){ + types.transcript_data memory tr_state; + tr_state.current_challenge = transcript_state; + commitment_state memory state; + { + uint256 offset; + + if (challenge!= transcript.get_field_challenge(tr_state, modulus)) return false; + + for(uint8 i = 0; i < batches_num;){ + transcript.update_transcript_b32(tr_state, bytes32(commitments[i])); + unchecked{i++;} + } + state.theta = transcript.get_field_challenge(tr_state, modulus); + + state.points_num = basic_marshalling.get_length(blob, 0x0); + unchecked{ + offset = 0x8 + state.points_num*0x20 + 0x8; + } + for(uint8 i = 0; i < batches_num;){ + state.batch_sizes[i] = uint64(uint8(blob[offset + 0x1])); + if( state.batch_sizes[i] > state.max_batch ) state.max_batch = state.batch_sizes[i]; + state.poly_num += state.batch_sizes[i]; + unchecked { i++; offset +=2;} + } + unchecked{ + offset += 0x8; + offset += state.poly_num; + state.roots_offset = offset + 0x8; + offset += 0x8; + } + for( uint8 i = 0; i < r;){ + transcript.update_transcript_b32(tr_state, bytes32(basic_marshalling.get_uint256_be(blob, offset + 0x8))); + state.alphas[i] = transcript.get_field_challenge(tr_state, modulus); + unchecked{i++; offset +=40; } + } + + + bytes calldata proof_of_work = blob[blob.length - 4:]; + transcript.update_transcript(tr_state, proof_of_work); + transcript.get_integral_challenge_be(tr_state, 4); + + + unchecked{ + offset += 0x8 + r; + state.initial_data_offset = offset + 0x8; + offset += 0x8 + 0x20*basic_marshalling.get_length(blob, offset); + } + + unchecked{ + state.round_data_offset = offset + 0x8; + offset += 0x8 + 0x20*basic_marshalling.get_length(blob, offset); + offset += 0x8; + } + state.initial_proof_offset = offset; + for(uint8 i = 0; i < lambda;){ + for(uint j = 0; j < batches_num;){ + if(basic_marshalling.get_uint256_be(blob, offset + 0x10) != commitments[j] ) return false; + offset = merkle_verifier.skip_merkle_proof_be(blob, offset); + unchecked{j++;} + } + unchecked{i++;} + } + offset += 0x8; + state.round_proof_offset = offset; + + for(uint256 i = 0; i < lambda;){ + for(uint256 j = 0; j < r;){ + if(basic_marshalling.get_uint256_be(blob, offset + 0x10) != basic_marshalling.get_uint256_be(blob, state.roots_offset + j * 40 + 0x8) ) return false; + offset = merkle_verifier.skip_merkle_proof_be(blob, offset); + unchecked{j++;} + } + unchecked{i++;} + } + + state.final_polynomial = new uint256[](basic_marshalling.get_length(blob, offset)); + unchecked{offset += 0x8;} + for (uint256 i = 0; i < state.final_polynomial.length;) { + state.final_polynomial[i] = basic_marshalling.get_uint256_be(blob, offset); + unchecked{ i++; offset+=0x20;} + } + } + if( state.final_polynomial.length > (( 1 << (field.log2(max_degree + 1) - r + 1) ) ) ){ + console.log("Wrong final poly degree"); + return false; + } + + if( !prepare_U_V(blob, state, challenge) ) return false; + + state.leaf_data = new bytes(state.max_batch * 0x40 + 0x40); + for(uint256 i = 0; i < lambda;){ + // Initial proofs + state.x_index = uint256(transcript.get_integral_challenge_be(tr_state, 8)) % D0_size; + state.x = field.pow_small(D0_omega, state.x_index, modulus); + state.domain_size = D0_size >> 1; + for(uint256 j = 0; j < batches_num;){ + if( state.x_index < state.domain_size ){ + if(!copy_pairs_and_check(blob, state.initial_data_offset, state.leaf_data, state.batch_sizes[j], state.initial_proof_offset)){ + console.log("Error in initial mekle proof"); + return false; + } + } else { + if(!copy_reverted_pairs_and_check(blob, state.initial_data_offset, state.leaf_data, state.batch_sizes[j], state.initial_proof_offset)){ + console.log("Error in initial mekle proof"); + return false; + } + } + state.leaf_length = state.batch_sizes[j] * 0x40; + state.initial_data_offset += state.batch_sizes[j] * 0x40; + state.initial_proof_offset = merkle_verifier.skip_merkle_proof_be(blob, state.initial_proof_offset); + unchecked{j++;} + } + { + state.y = compute_combined_Q(blob, state); + if( state.x_index < state.domain_size ){ + if( !copy_memory_pair_and_check(blob, state.round_proof_offset, state.leaf_data, state.y) ){ + console.log("Not validated!"); + return false; + } + }else{ + if( !copy_reverted_memory_pair_and_check(blob, state.round_proof_offset, state.leaf_data, state.y) ){ + console.log("Not validated!"); + return false; + } + } + } + if( !colinear_check(state.x, state.y, state.alphas[0], basic_marshalling.get_uint256_be(blob,state.round_data_offset)) ){ + console.log("Colinear check failed"); + return false; + } + + state.round_proof_offset = merkle_verifier.skip_merkle_proof_be(blob, state.round_proof_offset); + for(state.j = 1; state.j < r;){ + state.x_index %= state.domain_size; + state.x = mulmod(state.x, state.x, modulus); + state.domain_size >>= 1; + if( state.x_index < state.domain_size ){ + if(!copy_pairs_and_check(blob, state.round_data_offset, state.leaf_data, 1, state.round_proof_offset)) { + console.log("Error in round mekle proof"); + return false; + } + } else { + if(!copy_reverted_pairs_and_check(blob, state.round_data_offset, state.leaf_data, 1, state.round_proof_offset)) { + console.log("Error in round mekle proof"); + return false; + } + } + state.y[0] = basic_marshalling.get_uint256_be(blob, state.round_data_offset); + state.y[1] = basic_marshalling.get_uint256_be(blob, state.round_data_offset + 0x20); + if( !colinear_check(state.x, state.y, state.alphas[state.j], basic_marshalling.get_uint256_be(blob,state.round_data_offset + 0x40)) ){ + console.log("Round colinear check failed"); + return false; + } + unchecked{state.j++; state.round_data_offset += 0x40;} + state.round_proof_offset = merkle_verifier.skip_merkle_proof_be(blob, state.round_proof_offset); + } + + state.x = mulmod(state.x, state.x, modulus); + if(polynomial.evaluate(state.final_polynomial, state.x, modulus) != basic_marshalling.get_uint256_be(blob, state.round_data_offset)) { + console.log("Wrong final poly check"); + return false; + } + if(polynomial.evaluate(state.final_polynomial, modulus - state.x, modulus) != basic_marshalling.get_uint256_be(blob, state.round_data_offset + 0x20)){ + console.log("Wrong final poly check"); + return false; + } + state.round_data_offset += 0x40; + + unchecked{i++;} + } + console.log("EVALUATION PROOF verified"); + return true; + } +} + \ No newline at end of file diff --git a/contracts/modular/circuit3/gate_argument.sol b/contracts/modular/circuit3/gate_argument.sol new file mode 100644 index 0000000..b0136b3 --- /dev/null +++ b/contracts/modular/circuit3/gate_argument.sol @@ -0,0 +1,39 @@ + +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) 2023 Generated by ZKLLVM-transpiler +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity >=0.8.4; + +import "../../types.sol"; +import "../../basic_marshalling.sol"; +import "../../interfaces/modular_gate_argument.sol"; +import "hardhat/console.sol"; + +contract modular_gate_argument_circuit3 is IGateArgument{ + uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; + + // Append commitments + function verify( + bytes calldata blob, + uint256 theta + ) external view returns (uint256 F){ + uint256 sum; + uint256 gate; + uint256 prod; + uint256 theta_acc=1; + + } +} \ No newline at end of file diff --git a/contracts/modular/circuit3/lookup_argument.sol b/contracts/modular/circuit3/lookup_argument.sol new file mode 100644 index 0000000..18c5254 --- /dev/null +++ b/contracts/modular/circuit3/lookup_argument.sol @@ -0,0 +1,208 @@ + +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) 2023 Generated by ZKLLVM-transpiler +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity >=0.8.4; + +import "../../cryptography/transcript.sol"; +// Move away unused structures from types.sol +import "../../types.sol"; +import "../../basic_marshalling.sol"; +import "../../cryptography/transcript.sol"; +import "../../interfaces/modular_lookup_argument.sol"; +import "hardhat/console.sol"; + +//contract modular_lookup_argument_circuit3 is ILookupArgument{ +library modular_lookup_argument_circuit3{ + uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; + uint8 constant tables = 1; + uint8 constant sorted_columns = 2; + uint8 constant lookup_options_num = 1; + uint8 constant lookup_constraints_num = 1; + + + struct lookup_state{ + uint256 theta; + uint256 beta; + uint256 gamma; + uint256 factor; + uint256 V_L_value; + uint256 V_L_shifted_value; + uint256 q_last; + uint256 q_blind; + uint256 mask; + uint256 shifted_mask; + uint256 selector_value; + uint256 shifted_selector_value; + uint256 theta_acc; + uint256 g; + uint256 h; + uint256 l_shifted; + } + + function verify( + bytes calldata zvalues, // Table values and permutations' values + bytes calldata sorted, // Sorted batch values + uint256 lookup_commitment, + uint256 l0, + bytes32 tr_state_before // It's better than transfer all random values + ) internal view returns (uint256[4] memory F, bytes32 tr_state_after){ + bytes calldata blob = zvalues[0xc0:]; + lookup_state memory state; + state.V_L_value = basic_marshalling.get_uint256_be(zvalues, 0xc0 + 544 + 0x40); + state.V_L_shifted_value = basic_marshalling.get_uint256_be(zvalues, 0xc0 + 544 + 0x60); + state.q_last = basic_marshalling.get_uint256_be(zvalues, 0x0); + state.q_blind = basic_marshalling.get_uint256_be(zvalues, 0x60); + state.mask = addmod(1, modulus - addmod(state.q_last , state.q_blind, modulus), modulus); + F[2] = state.mask; + + state.shifted_mask = addmod( + 1, + modulus - addmod(basic_marshalling.get_uint256_be(zvalues, 0x20) , basic_marshalling.get_uint256_be(zvalues, 0x80), modulus), + modulus + ); + + types.transcript_data memory tr_state; + tr_state.current_challenge = tr_state_before; + { + state.theta = transcript.get_field_challenge(tr_state, modulus); //theta + uint256 l; + state.g = 1; + state.h = 1; + + transcript.update_transcript_b32(tr_state, bytes32(lookup_commitment)); + state.beta = transcript.get_field_challenge(tr_state, modulus); //beta + state.gamma = transcript.get_field_challenge(tr_state, modulus); //gamma + state.factor = mulmod(addmod(1, state.beta, modulus), state.gamma, modulus); + + uint256 sum; + uint256 prod; + state.selector_value=basic_marshalling.get_uint256_be(blob, 288); + l = mulmod( 1,state.selector_value, modulus); + state.theta_acc=state.theta; + sum = 0; + prod = basic_marshalling.get_uint256_be(blob, 448); + sum = addmod(sum, prod, modulus); + + + l = addmod( l, mulmod( mulmod(state.theta_acc, state.selector_value, modulus), sum, modulus), modulus); + state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); + sum = 0; + prod = basic_marshalling.get_uint256_be(blob, 480); + sum = addmod(sum, prod, modulus); + + + l = addmod( l, mulmod( mulmod(state.theta_acc, state.selector_value, modulus), sum, modulus), modulus); + state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); + sum = 0; + prod = basic_marshalling.get_uint256_be(blob, 512); + sum = addmod(sum, prod, modulus); + + + l = addmod( l, mulmod( mulmod(state.theta_acc, state.selector_value, modulus), sum, modulus), modulus); + state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); +state.g = mulmod(state.g, mulmod(addmod(1, state.beta, modulus), addmod(l,state.gamma, modulus), modulus), modulus); + + state.selector_value=basic_marshalling.get_uint256_be(blob, 352); + state.shifted_selector_value=basic_marshalling.get_uint256_be(blob, 384); + l= mulmod( 1, state.selector_value, modulus); + state.l_shifted = mulmod( 1, state.shifted_selector_value, modulus); + state.theta_acc=state.theta; + l= addmod( l, mulmod(state.selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 0), modulus), modulus), modulus); + state.l_shifted = addmod( state.l_shifted, mulmod(state.shifted_selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 32), modulus), modulus), modulus); + state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); + l= addmod( l, mulmod(state.selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 96), modulus), modulus), modulus); + state.l_shifted = addmod( state.l_shifted, mulmod(state.shifted_selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 128), modulus), modulus), modulus); + state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); + l= addmod( l, mulmod(state.selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 192), modulus), modulus), modulus); + state.l_shifted = addmod( state.l_shifted, mulmod(state.shifted_selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 224), modulus), modulus), modulus); + state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); + l= mulmod( l, state.mask, modulus); + state.l_shifted = mulmod( state.l_shifted, state.shifted_mask, modulus); + state.g = mulmod(state.g, addmod( state.factor, addmod(l, mulmod(state.beta, state.l_shifted, modulus), modulus), modulus), modulus); + + + } + { + for(uint64 k = 0; k < 2;){ + state.mask = basic_marshalling.get_uint256_be(sorted, k*0x60); + state.shifted_mask = basic_marshalling.get_uint256_be(sorted, k*0x60 + 0x20); + state.h = mulmod( + state.h, + addmod( + addmod( + state.factor, + state.mask, + modulus + ), + mulmod(state.beta, state.shifted_mask , modulus), + modulus + ), + modulus + ); + unchecked{k++;} + } + } + + F[0] = mulmod( + l0, + addmod(1, modulus - state.V_L_value, modulus), + modulus + ); + F[1] = mulmod( + mulmod(state.q_last, state.V_L_value, modulus), + addmod(state.V_L_value, modulus-1, modulus), + modulus + ); + { + F[2] = mulmod( + F[2], + addmod( + mulmod(state.h, state.V_L_shifted_value, modulus), + modulus - mulmod(state.V_L_value, state.g, modulus), + modulus + ), + modulus + ); + } + { + for(uint64 i = 0; i < sorted_columns - 1;){ + state.beta = basic_marshalling.get_uint256_be(sorted, (i+1)*0x60); + state.gamma = modulus - basic_marshalling.get_uint256_be(sorted, (i)*0x60 + 0x40); + F[3] = addmod( + F[3], + mulmod( + mulmod( + transcript.get_field_challenge(tr_state, modulus), //alpha + l0, + modulus + ), + addmod( + state.beta, + state.gamma, + modulus + ), + modulus + ), + modulus + ); + unchecked{i++;} + } + } + tr_state_after = tr_state.current_challenge; + } +} + \ No newline at end of file diff --git a/contracts/modular/circuit3/modular_verifier.sol b/contracts/modular/circuit3/modular_verifier.sol new file mode 100644 index 0000000..ce9e673 --- /dev/null +++ b/contracts/modular/circuit3/modular_verifier.sol @@ -0,0 +1,199 @@ + +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) Generated by zkllvm-transpiler +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity >=0.8.4; + +import "../../cryptography/transcript.sol"; +// Move away unused structures from types.sol +import "../../types.sol"; +import "../../basic_marshalling.sol"; +import "../../interfaces/modular_verifier.sol"; +import "./commitment.sol"; +import "./gate_argument.sol"; +import "./lookup_argument.sol"; +import "./permutation_argument.sol"; +import "hardhat/console.sol"; +import "../../algebra/field.sol"; + +contract modular_verifier_circuit3 is IModularVerifier{ + uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; + bool constant use_lookups = false; + bytes32 constant vk1 = bytes32(0xc45106e20a95531a40e12ee49dc5b9e85fa30183f7c8ec3bce5f6a62694b1933); + bytes32 constant vk2 = bytes32(0xf7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e); + bytes32 transcript_state; + address _gate_argument_address; + address _permutation_argument_address; + address _lookup_argument_address; + address _commitment_contract_address; + uint64 constant sorted_columns = 2; + uint64 constant f_parts = 8; // Individually on parts + uint64 constant z_offset = 0xc9; + uint64 constant table_offset = z_offset + 0x80 * 4 + 0xc0; + uint64 constant table_end_offset = table_offset + 544; + uint64 constant quotient_offset = 672; + uint64 constant rows_amount = 8; + uint256 constant omega = 199455130043951077247265858823823987229570523056509026484192158816218200659; + uint256 constant special_selectors_offset = z_offset + 4 * 0x80; + + function initialize( +// address permutation_argument_address, + address lookup_argument_address, + address gate_argument_address, + address commitment_contract_address + ) public{ + console.log("Initialize"); + types.transcript_data memory tr_state; + transcript.init_transcript(tr_state, hex""); + transcript.update_transcript_b32(tr_state, vk1); + transcript.update_transcript_b32(tr_state, vk2); + +// _permutation_argument_address = permutation_argument_address; + _lookup_argument_address = lookup_argument_address; + _gate_argument_address = gate_argument_address; + _commitment_contract_address = commitment_contract_address; + + ICommitmentScheme commitment_scheme = ICommitmentScheme(commitment_contract_address); + tr_state.current_challenge = commitment_scheme.initialize(tr_state.current_challenge); + transcript_state = tr_state.current_challenge; + } + + struct verifier_state{ + uint256 xi; + uint256 Z_at_xi; + uint256 l0; + uint256[f_parts] F; + } + + function verify( + bytes calldata blob + ) public view{ + verifier_state memory state; + uint256 gas = gasleft(); + uint256 xi = basic_marshalling.get_uint256_be(blob, 0xa1); + state.Z_at_xi = addmod(field.pow_small(xi, rows_amount, modulus), modulus-1, modulus); + state.l0 = mulmod( + state.Z_at_xi, + field.inverse_static(mulmod(addmod(xi, modulus - 1, modulus), rows_amount, modulus), modulus), + modulus + ); + + //0. Check proof size + // No direct public input + + //1. Init transcript + types.transcript_data memory tr_state; + tr_state.current_challenge = transcript_state; + // TODO: Just do something with it + + { + //2. Push variable_values commitment to transcript + transcript.update_transcript_b32_by_offset_calldata(tr_state, blob, 0x9); + + //3. Permutation argument + uint256[3] memory permutation_argument = modular_permutation_argument_circuit3.verify( + blob[0xc9:905+672], + transcript.get_field_challenge(tr_state, modulus), + transcript.get_field_challenge(tr_state, modulus), + state.l0 + ); + state.F[0] = permutation_argument[0]; + state.F[1] = permutation_argument[1]; + state.F[2] = permutation_argument[2]; + } + + + { + uint256 lookup_offset = table_offset + quotient_offset + uint256(uint8(blob[z_offset + basic_marshalling.get_length(blob, z_offset - 0x8) *0x20 + 0xf])) * 0x20; + uint256[4] memory lookup_argument; + (lookup_argument, tr_state.current_challenge) = modular_lookup_argument_circuit3.verify( + blob[special_selectors_offset: table_offset + quotient_offset], + blob[lookup_offset:lookup_offset + sorted_columns * 0x20], + basic_marshalling.get_uint256_be(blob, 0x81), + state.l0, + tr_state.current_challenge + ); + state.F[3] = lookup_argument[0]; + state.F[4] = lookup_argument[1]; + state.F[5] = lookup_argument[2]; + state.F[6] = lookup_argument[3]; + } + + + //5. Push permutation batch to transcript + transcript.update_transcript_b32_by_offset_calldata(tr_state, blob, 0x31); + + { + //6. Gate argument + IGateArgument modular_gate_argument = IGateArgument(_gate_argument_address); + state.F[7] = modular_gate_argument.verify(blob[table_offset:table_end_offset], transcript.get_field_challenge(tr_state, modulus)); + } + + // No public input gate + + uint256 F_consolidated; + { + //7. Push quotient to transcript + for( uint8 i = 0; i < f_parts;){ + F_consolidated = addmod(F_consolidated, mulmod(state.F[i],transcript.get_field_challenge(tr_state, modulus), modulus), modulus); + unchecked{i++;} + } + uint256 points_num = basic_marshalling.get_length(blob, 0xa1 + 0x20); + transcript.update_transcript_b32_by_offset_calldata(tr_state, blob, 0x59); + } + + bool b = true; + //8. Commitment scheme verify_eval + { + ICommitmentScheme commitment_scheme = ICommitmentScheme(_commitment_contract_address); + uint256[5] memory commitments; + commitments[0] = uint256(vk2); + for(uint16 i = 1; i < 5;){ + commitments[i] = basic_marshalling.get_uint256_be(blob, 0x9 + (i-1)*(0x28)); + unchecked{i++;} + } + if(!commitment_scheme.verify_eval( + blob[z_offset - 0x8:], commitments, xi, tr_state.current_challenge + )) { + console.log("Error from commitment scheme!"); + b = false; + } + } + + //9. Final check + { + uint256 T_consolidated; + uint256 factor = 1; + for(uint64 i = 0; i < uint64(uint8(blob[z_offset + basic_marshalling.get_length(blob, z_offset - 0x8) *0x20 + 0xf]));){ + T_consolidated = addmod( + T_consolidated, + mulmod(basic_marshalling.get_uint256_be(blob, table_offset + quotient_offset + i *0x20), factor, modulus), + modulus + ); + factor = mulmod(factor, state.Z_at_xi + 1, modulus); + unchecked{i++;} + } + if( F_consolidated != mulmod(T_consolidated, state.Z_at_xi, modulus) ) { + console.log("Error. Table does't satisfy constraint system"); + b = false; + } + if(b) console.log("SUCCESS!"); else console.log("FAILURE!"); + } + + console.log("Gas for verification:", gas-gasleft()); + } +} + \ No newline at end of file diff --git a/contracts/modular/circuit3/params.json b/contracts/modular/circuit3/params.json new file mode 100644 index 0000000..f97c134 --- /dev/null +++ b/contracts/modular/circuit3/params.json @@ -0,0 +1,62 @@ +{ + "test_name": "circuit3", + "modulus": "28948022309329048855892746252171976963363056481941560715954676764349967630337", + "rows_amount": "8", + "usable_rows_amount": "4", + "omega": "199455130043951077247265858823823987229570523056509026484192158816218200659", + "verification_key": "c45106e20a95531a40e12ee49dc5b9e85fa30183f7c8ec3bce5f6a62694b1933 f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e", + "ar_params": [ + "3", + "0", + "3", + "3" + ], + "columns_rotations_node": [ + [ + "0" + ], + [ + "0" + ], + [ + "0" + ], + [ + "0", + "1" + ], + [ + "0", + "1" + ], + [ + "0", + "1" + ], + [ + "0" + ], + [ + "0", + "1" + ] + ], + "commitment_params_node": { + "type": "LPC", + "r": "2", + "m": "2", + "lambda": "40", + "max_degree": "7", + "step_list": [ + "1", + "1" + ], + "D_omegas": [ + "7356716530956153652314774863381845254278968224778478050456563329565810467774", + "17166126583027276163107155648953851600645935739886150467584901586847365754678" + ], + "grinding_params": { + "mask": "4294901760" + } + } +} diff --git a/contracts/modular/circuit3/permutation_argument.sol b/contracts/modular/circuit3/permutation_argument.sol new file mode 100644 index 0000000..0f78fee --- /dev/null +++ b/contracts/modular/circuit3/permutation_argument.sol @@ -0,0 +1,93 @@ + +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) 2023 Generated by ZKLLVM-transpiler +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity >=0.8.4; + +import "../../cryptography/transcript.sol"; +// Move away unused structures from types.sol +import "../../types.sol"; +import "../../basic_marshalling.sol"; +import "hardhat/console.sol"; + +library modular_permutation_argument_circuit3{ + uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; + uint256 constant permutation_size = 4; + uint256 constant special_selectors_offset = 4 * 0x80; + uint256 constant table_values_offset = 4 * 0x80 + 0xc0; + bytes constant zero_indices = hex"01c001e0020000000040008000c000e0"; + + function uint16_from_two_bytes(bytes1 b1, bytes1 b2) internal pure returns( uint256 result){ + unchecked{ + result = uint8(b1); + result = result << 8; + result += uint8(b2); + } + } + + // Append commitments + function verify( + bytes calldata blob, + uint256 beta, + uint256 gamma, + uint256 l0 + ) internal view returns (uint256[3] memory F){ + uint256 V_P_value = basic_marshalling.get_uint256_be(blob, table_values_offset + 544); + uint256 h = 1; + uint256 g = 1; + + for(uint8 i = 0; i < permutation_size;){ + uint256 tmp = addmod( + gamma, + basic_marshalling.get_uint256_be( + blob, table_values_offset + uint16_from_two_bytes(zero_indices[i<<1], zero_indices[(i<<1)+1]) + ), + modulus + ); + + g = mulmod(g, addmod( + mulmod(beta, basic_marshalling.get_uint256_be(blob, (i *0x40 )), modulus), + tmp, + modulus + ), modulus); + h = mulmod(h, addmod( + mulmod(beta, basic_marshalling.get_uint256_be(blob, permutation_size * 0x40 + (i *0x40 )), modulus), + tmp, + modulus + ), + modulus + ); + unchecked{i++;} + } + + F[0] = mulmod(l0, addmod(1, modulus - V_P_value, modulus), modulus); + F[1] = mulmod( + addmod(addmod(1, modulus - basic_marshalling.get_uint256_be(blob, special_selectors_offset), modulus), modulus - basic_marshalling.get_uint256_be(blob, special_selectors_offset + 0x60), modulus), + addmod( + mulmod(basic_marshalling.get_uint256_be(blob, table_values_offset + 544 + 0x20), h, modulus), + modulus - mulmod(V_P_value, g, modulus), + modulus + ), + modulus + ); + F[2] = mulmod( + mulmod(basic_marshalling.get_uint256_be(blob, permutation_size * 0x80), V_P_value, modulus), + addmod(V_P_value, modulus-1, modulus), + modulus + ); + } +} + \ No newline at end of file diff --git a/contracts/modular/circuit3/proof.bin b/contracts/modular/circuit3/proof.bin new file mode 100644 index 0000000..fb5ac32 --- /dev/null +++ b/contracts/modular/circuit3/proof.bin @@ -0,0 +1 @@ +0x0400000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d6000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f299941856000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f3293800000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f35b0f45589508478252e84f59c75045f361cbcd18e45c042935382e7bef544e7000000000000003735b0f45589508478252e84f59c75045f361cbcd18e45c042935382e7bef544e7343b8884869e63daf6dd0953387348368c7a4fe70ddf9f3c44b97c38fff8d0fe0c74c5abae929658b9e898cc0e4915db85754c27a228dcde7beccad2baca587f0529aa96a117f346d2512ea01a40691035492b93202a37bef2eaa968ffdc14f23e47dc5a68dcefbba18afbfc476d6d499b4a7cc62acc50586b9ff61da5f3ba7b19d054f12577c0621b95e92083420d510a6dd9dfa0d316babe954f0cff4c68ba37674dc40c50aeaa27b6ebed6523226f7f5a0beeb0c9ad4bb56b0ae03dc2a4630111a8b5bb56c1ea89ed8da2904a4294ef980f6611857f6e86902966fc7e0ba035b0f45589508478252e84f59c75045f361cbcd18e45c042935382e7bef544e7343b8884869e63daf6dd0953387348368c7a4fe70ddf9f3c44b97c38fff8d0fe0c74c5abae929658b9e898cc0e4915db85754c27a228dcde7beccad2baca587f0529aa96a117f346d2512ea01a40691035492b93202a37bef2eaa968ffdc14f23e47dc5a68dcefbba18afbfc476d6d499b4a7cc62acc50586b9ff61da5f3ba7b19d054f12577c0621b95e92083420d510a6dd9dfa0d316babe954f0cff4c68ba37674dc40c50aeaa27b6ebed6523226f7f5a0beeb0c9ad4bb56b0ae03dc2a4630111a8b5bb56c1ea89ed8da2904a4294ef980f6611857f6e86902966fc7e0ba000f91c6a9b196f2758554b28cfce9c4fc5b99f516a584a92673c6270b27c63490434da0a1e6aa85e9df5f05ed99e523e0a4d6b69ba2c7cd0c2439b0e8210f8b217751bf2a581542ee47b5ae7d4e0e02af7a71bc873c7f7385aba2bddea3a5ef61a96c1265e6fd1fce7f4d649a325e0535702631d747d9d4740ef4a140fd938773a6ab7648a2a850b7f48df0db54152ff4d48478c88c594101912a58ed6178a6e3dfbdbf08c58e4f3e916fa1a6f3e75208970c68882f242793123b14ab791cdf221068a24b09ebdfb8b9e22464fed6eed05196ac08e937ad22b6658422a585fe40369984a55d800e03417bc473d1e147000712bcc9be3966fc59b2c261352045e295b7fbed4e2420808d6b3101d2f0041fbb28c89a4e944619e14aae32632b0f22982aab9b585927e3f14b985f904622c92c1801f6035272e3e15dd81b6da46541cd1b01a9234159ceda831e7764f1caefacbff56d466fe016922bd33a84767320428994f647f501b7fa5a6746b98e0c986f9913eb8a053bc75ba3024743908f21cd1b01a9234159ceda831e7764f1caefacbff56d466fe016922bd33a847673219e6ed90a0526e61f50302c14419b2438ff644a944fb685d20b27f915c77be0b2810d8e2f6270a1cd3890c3c5e5c18991066713e9329e8403c9707e7899494b619e6ed90a0526e61f50302c14419b2438ff644a944fb685d20b27f915c77be0b3d0aef0e94c434b9a9f151793318c9a9630fcadac7a319832bdada96c3c819380a8934de66245079cab2dbcc48f1d119759451e3e57ba8e4d04f04d6e132a637203b4864e80c167d21bfee2eb36d311efb3d2b23704a94712ebde959bb996b902d84190e39619223887c598488c7e10b82ac1dc85d89981e13cedb079a6bb9e419e6ed90a0526e61f50302c14419b2438ff644a944fb685d20b27f915c77be0b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012e51459a658132a7f08e085236423193874800702e5dafe896cad9fbd6312834053981687ce7b96ac8299df817997a9c826e08d4f7f8834e7a9bed4b84e1ad4e2c5472ed9519cfe1a742d477767266b6c3d575e89190f5cf97af1cd52e0dea291a45aa62eaf0df7e96db983c1567f5d9f54949eab9f6f40d614ff1802a4a6574192ea31c79ee8db82785518bbd76c1e54f368a315ed82f4a2c3614b24cbe64e434879689e4d0613ae0d5f52ad43dd90e5ea7336e6414484bcb87f943201fcb960523a99c533aaeaf4065e3d2e62bb34c2f535effd232f1e9efd4973b6b984ea412e7e581436609f02a25faa41959029a50aedd0859bfd0b4fffeb2b5dc3ea3f31137ad4f1a87b75b557b600ff86867219f3ae040e32c96ca709b51366150f8a63bc940ca03b59002d895be5216b49e6906fb87bca82bb7f8f850493411047de736553157fae4c3191b3817e80467b1861ee9eebe695ea5c2787268c42fd12bec37fafdec9f245386daa66970c868ffc01d4e56430c1885cd81c6adf17fafa3950b12291cc2dc097712212be611cbb3e33a8810bfbc21ee37749c5adb9028e02a0bb7c43d455e6bf83fc69db2b49c9dff617f7a77479b149e5ac5bcc213589ce5000000000000000a000f0103020203060402000000000000001c02020202020202020303030303020301010102020101010101010303000000000000000200000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000002010100000000000008c03aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a061301911905583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee82546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d5791ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a883a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a623ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c31c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e3aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a061301911905583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee82546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d5791ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a883a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a623ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c31c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e3feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d0b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c365c6077ab0490bcaa9f5627c0f5cde99a59a31864ed553d57b8162b46e494bb3e4254bae5217d87eae55fff4904382ad728515da29225c1b52c2a7e458f79903cc40f2563957cd02b5394bc253c4d0448f634cd65e2e2c3d47c95b581077a621e6a494cbf36abaf8b8a6a8de1165276533eb64441a7a8777834e338713e3148017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e17f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a66373299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f100220b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c3feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d3e4254bae5217d87eae55fff4904382ad728515da29225c1b52c2a7e458f7990365c6077ab0490bcaa9f5627c0f5cde99a59a31864ed553d57b8162b46e494bb0b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c3feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010ca081f647c3a9cb55af2191e325034d8e2940d9b79efc1c18ee9f0c4138fea51de9b43833ee51c21ff92c81d6fd2f50c3802ad659cbc629141a343698505f8c0a8f8e62d2f1306bbf2d43e17c0517dcfd32d7a38db1caf43a9cbd1e94206cc1166f269f8e472b263338c159af33d7948f783bafbea141b1f184d144cada56c21d78b132bf84510b91d7d719fefa47b1b6050174a845e4a21a1948455ed4d670298d8696bb2005af943a452fd8c9a1980f1cb9ffa2b50b8ff004c5318e84da8b0fef6bffe733d3d4802d6157bcb75fb459a3fddd81f14279f85d0608e6259ac139fda498248c0ae6e88e00c5bb72499f01eed91fcf0a8f20b0102dddec385e0e20bad6e5ed7e32b427a948695375f7850ea214c1e2821b459f24701d11107c062c6bbab900f68a00c926bd02b763043eb93a1f8e4f8941ed81f2e4a26061919e3f91b24e70802320f126e25fdd38ddf95f74a462ed0a55f6fdbdf0495e42508223e5118034e43465b244ec6d1c1d68cb8b5e0b900de6a8fdd61cc01673e404d52250416b73f745f22bfe2d5ec50c202791db9ea95f6c3f8045349e515493acc72d1d361d159fe3d131a99fabe76fabef558ab13653ba938fef93e17ff11f6b0631183373aed342870969053de46eb2420ceca27eb0b66695b61c4c1f18aa7522022cffda2481eb068d3e4d4058a2500b01f7053d1590df008987dc090ed3023b1283ca168f30a596b046a343283cb8aba63becd34c87237579e4b78935596d621f39419cfcf4fde686d12bc819adc83e781ba39e40ae430178a878f7a089c00f12cf3b49a33500bcf5951796e4eafd130452457a50ba7038f18dad0c6c119bd12d30c4b65ccaff430a6ae8691b1502ed1df45381b89288e2a79f83e093ee64301e0c2870300903b0cbe975f27896f15ef354c2678a5738011e9730511c580b1421f3d78fcff6fc4f34168a0d87690ea12ef1d6947ef5c11a7a96009be3a7f4ed163cca30f02d1273fb8f4dbc5af2b6da7c1a9a0da11a25ce66998fbb8db8376229c335cf0fd2ed8c0470b243a50d4925a62bfeee6832d34d3293a1317247c89f2f2ff2f4b0e15c43e9cc84adc6bd92444a3e69481c35c3ec67d29dbcc49914e910d00d0b4f1ea3bc16337b5239426dbbd8082fb3ed17352f315a93303b66eb1812cf3b49a33500bcf5951796e4eafd130452457a50ba7038f18dad0c6c119bd12d30c4b65ccaff430a6ae8691b1502ed1df45381b89288e2a79f83e093ee64301e0c2870300903b0cbe975f27896f15ef354c2678a5738011e9730511c580b1421f3d78fcff6fc4f34168a0d87690ea12ef1d6947ef5c11a7a96009be3a7f4ed163cca30f02d1273fb8f4dbc5af2b6da7c1a9a0da11a25ce66998fbb8db8376229c335cf0fd2ed8c0470b243a50d4925a62bfeee6832d34d3293a1317247c89f2f2ff2f4b0e15c43e9cc84adc6bd92444a3e69481c35c3ec67d29dbcc49914e910d00d0b4f1ea3bc16337b5239426dbbd8082fb3ed17352f315a93303b66eb1830724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f62e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd606dddf9bcd0c2033836249932bf3ce970b3c1b1026f23e8e76c0903e838283321a92f6a61fce846b25c83d8fbcb76aa39feca1dc39a5ea305ae3ae246a618d053cab6d197f17180e56399a722450928f6d9116af63172aafb8dac171d79684af20f0072591fd810e96d65b79ca90d674ac9a437419480fec57f01490c6a71f531de7898ca0b76c5ccf8ea31d9866d81454a22428dfdbb89c3b361d9f92cb085725edd8763b0e9f24ec8bee196162f82280e8709816f727bdb7fdac9abcdb63e03c5f354a6809f5d8fc0d754f10b0845dec5a231524772141e6eba5461ed414fa0552acfb4136a8687c086867198f336159a70e0de3347500c25c57abf0d8fec12e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd630724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f61a92f6a61fce846b25c83d8fbcb76aa39feca1dc39a5ea305ae3ae246a618d0506dddf9bcd0c2033836249932bf3ce970b3c1b1026f23e8e76c0903e838283322e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd630724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013f04746b17ecc54f77bd72585a684e8fd03d61aafe9a442806af881b3210ae352b848eb10e9fdd59fd8c4de2526a6ca06d4ddc1141e84b695ae562ed60e64335025d6ea885215d0616c1ddbcc9104ddb5829422611d8c6bb4014f377b168c11110913e2f49daffcadbdd9040604f7943e36491ae951f3a1f3590c63cfe1b3bda1f15ab20061476ce9aa338bc3af0bdf901064f55847f47202dd4933248e9dfa506e0128752f4c77886ba5d531aef3d916a8c7f33926e7e7eaade0d218a0a580e289d5c26146efbb8b80b7c60c0616da75959fbd6f33b39a419d96ae3b60da6ad03ead49eeebaed8b0c8887189ed793cdd39cd1bf2f728e7cd0a4de0ac40cc21f18774eef9ada6ce3f881138985888be874da78a7926a3102ce2685f60f8c686a3a3ac4d0b3c443c86f7887a73230bb95f13b18138a2ac748c8a3dfadc3e8bc4704d882b645e0b51c301bbad7ce1792ca0af622b5c54b24d8709232705a9acfec31a581c646f4f1d9f4e275e595790818f819570447b99a4b0047f9064d1aa8fa1084487d01958b22500d5783ca00e6f1c5c7128548acb7043557fcce0e90a23e3ee92f0b88019ea10d9a7586e27ae525219f3d5a6a7a1c0bff7083033722758f3edab8a35df757cbd4bf9ac2f5119c89a1b215c871c13693296827575bded2031bb44fc94108eba44e98be22f7b693dd046de296c1fadb7659969a43894855f519a9ccc9665fb54d4f9fdce0598492b9c9d18b2d0c32a921fcb87014e0cad92b2c0c1664fc7fd450b1a01474530358a687391196c1a91cc37ca89931df0dc17f3eba218389931c1085d5c0807c3fe861039b4d0cde9c1394c0d3cc22092a60340145de7c766ce3ef7a2a3f7f83c0179f1eab4bef2ab0e586d85964caf6d59fcd39a2a791afdf8c529d2cc2826d3f89e488ee1d5033d87d795f6e38f62dd3e100065d586e502073ad62d33d7d92c0761b99587babd5747ba239bef7f6d22c1f01202d45d86f5dbd9d11dfcc8c223db176238c2ea0de068ef07872591ae52364fc1fd2ba2790a24262ee203373ddc24e89feba6a5b2b466a2b20bad7d21adc9b0520e25d3a2cd4b411595efebcab34774e6d2fb72c4386d87b27e15bac79b0f8ea1f1da2c5d32b4beea6a1014354cb88b1b516e1cfc5c620a0714bd540864f07173eba218389931c1085d5c0807c3fe861039b4d0cde9c1394c0d3cc22092a60340145de7c766ce3ef7a2a3f7f83c0179f1eab4bef2ab0e586d85964caf6d59fcd39a2a791afdf8c529d2cc2826d3f89e488ee1d5033d87d795f6e38f62dd3e100065d586e502073ad62d33d7d92c0761b99587babd5747ba239bef7f6d22c1f01202d45d86f5dbd9d11dfcc8c223db176238c2ea0de068ef07872591ae52364fc1fd2ba2790a24262ee203373ddc24e89feba6a5b2b466a2b20bad7d21adc9b0520e25d3a2cd4b411595efebcab34774e6d2fb72c4386d87b27e15bac79b0f8ea1f1da2c5d32b4beea6a1014354cb88b1b516e1cfc5c620a0714bd540864f07171daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff41b0c3367befdd9a23228379436fc2a4d6924fc2c37a8e525e8d89ba3eb52755414c0638803c42c3e8a992286d7a0db3f35b53d1ef9e28dd5cf90d2b16fe7461c3780608b24a9456ccb9f2045db37255b2c52432e9a501fe468cb58daa56815043e67bfa2358232f285f9c6aa48a670ae33bc882dc8695475516879500f531a3b1d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f31191ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a31870947f95bdea9c3c192cb3bbf7effe29d0fb7bf7284c1d7e0d66acf118ab01040c9277dc8c6351fd039b70656118046072e337c872d37814fdf794ba768ca328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff41daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f14c0638803c42c3e8a992286d7a0db3f35b53d1ef9e28dd5cf90d2b16fe7461c1b0c3367befdd9a23228379436fc2a4d6924fc2c37a8e525e8d89ba3eb527554328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff41daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001297a2925b86ebd281dd0242fd33fd7b431b7f63d6dc0b02deab5f4c74397d87724cefc30e5dd8624c3cbd01a99119d458c940f3e914a786ede765d6ff9a1250507e70f7da3875613b3f6aaf5a67988b08fa00fc8bc850e3fdfec3e38eb7fd44631fdaed1b0e13c8228b7001a4ee6a9b90d0c7d55e3f50cc9493ec43ad37ed874180c2787fda7438b2bbdaace6b7732f5818c7603906efd46347aa11cbf52fafc146c767d91de08ed68aff5bb76e22e34669207b4027748148fd2f460d93dbf253088351bb9cb73760969cae0772a22cb26799509a82193128592b4c48cd746203680d7ccca5b2160b3b1172d776ed871674c100e3fe5a86b8c702e46f30d43ab22dae2687aa531b16d537796f1bad9b85c03901f629972a2b05ec20b9077e2c6029f32f1f51afa93cf6a44ac7ace3c180315e052af956b7a98e470fdda389a7038c6488a4392b4cb74695b3a6e9a45e9709e8a7b9c126d54de2c4f2e935010fe035398fd74ddaba47b9c279635f7c4f088b2b1325b38c9e31bcceee583d685392d42ae22e26d0ac91e311119c8941d5a65d5b893524d753f997b17adf945b3e8222ac965a72a1efa3f76bbf0e3e7aebc8190974c60d95dd09b4d68234c6d63e5347fc70c0b90571f24f8addf4ac015375de58146ce807c5ad06d8b4b44137768152643b7b10d03d52adf0d751ba01e6a04f74f2e472baa328fea08a192c435e7389c4419858b12752ca473a33ca27494b7df76bf6f4f3c18c852f0dca6d06ac611bebeebfd945a733cfb112bfc5adccc71a90f719eaaa2e9e3c3ec251d8b498f1043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a1043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa126c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b3bede82a1ef51d40115086dd2213afb9fe7882b2741bc04a7341075fab56bcb4343eb86b56bb3939dafa46ac624a5b45ea704c4b192f810bfa86c6325ba37a541bbae18983592ea009d26ddcd2aae567ef8ab3ffcca434207997ebdc11a661320046ea7e137d4a3bf99df6b3c2c31ea4a10063e1a37556218da07592b2539d091883d6e1d3620a99d127d8cf8f9f75ddfae5984b4c8b4ceb80eeda5649fd19223ba6fdac0b77d30417b290295f5091155d781ed0d0a66a28e5a091ccf9031fab3319a2a83a6dd65b246c9f7d539b67b09c3b0afe9bcc31f641e4746e726732ac352254da5cad22b2bb31a255d43899f5be174c33d783688ffa31918b2d0e604e26c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa1343eb86b56bb3939dafa46ac624a5b45ea704c4b192f810bfa86c6325ba37a543bede82a1ef51d40115086dd2213afb9fe7882b2741bc04a7341075fab56bcb426c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012719559dffa53f78da0155bb28d1507a929316a24968e5eafa4268132d74a74e00a86bc3c3cea52cb0261a49a4ef43aa2d1634150ff783c9a7663d57ee93867f331b231586478b0586a67a461e4a7cefea358599dea3d418e1905b3134f173830c923ae78bdaff4be091fa9fd2dd45c775e3b1ec5d0531ececc3fa00cc1b3ddc170770535b42bb85d96215ae1f6448d54ccca1af0a59d3290eb1808e8b825d7135d96f5346c7fee33b88327de6933f2429e0857b3540bbd83b58d1db88704aa70cdbdd0c8d047325aec00d4172f3b2438d0ddde0f94caa553eda5ebb0b0af623082f7b63b92c90b858799612e668723c2316d9fd8f3783fcf50b4842891c8c5c2f8e1ba339d4c713d31edacc2f76bf1be30e0ac9ab0c6041a9cf700fafa2e34502f11c2b456fe3096c591ef984cd72c016218c456751f66fe836ca4e58b3b2ed38789db12f180832b126bc4920ba7242e25e848e244071f6a569ffb7149d906908763d308a0102ba98d2247b5a346e2788f99f98bb2fdedb41dc481c181edecc2b56c410770ec351114ad3e6aed505473faf7bb8d489226cda74e8fd56690e542416b378128866724c5cf923fda6c6cfa7b6d426de9db0a35a5396d3ef4a0979293bb73b2174b5123d59d7e5c4f378749de4afb88d17a6e110658c04f0d996ee1443d32dfae0e33534892eae94af2e2a0fa2ee914e0a81acc119e1305b9ad3fe26a165ef67211a5cad17c79063f35b92653a348cd64c85e8bd9f3c8af823692b3ab0e69fdedf4f3e21f3bb850642a553f331e2b6512a452a6c2583f0167c4748336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a0c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba0305e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df63a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b1d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce22724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a33336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a0c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba0305e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df63a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b1d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce22724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a330a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac629bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c3a1fd91331ac8e97af8356a18902d5d6cb9303a89611fe8d9d6f55ec0f200be1120d8f2f9cabf36cf829e0210d653a2833c4df016bdce7f4bb8826eb6390d7203cc6685db8543c231286b2845afb78b7ce5da7711fdf1afa1599b0f8a5e75f2d3b63fa20c08ef6946b68d1be6e6578e912c24f6d15ed51fa875cf830c4f8444e154726d1e457b749e5a32d9cb269c17087add08c554ac6163f1ba6dfbda977f43ebbdef2711d9803441a84e31a9d5ceddb174d378971a5aeaf3f8ea84a27c7941ec72c0c20573b5141e5d40e17d7293f3bb25cd5f92b26d68aa789660ac49eba06b8d7221f316ccd211c30eca2885f3786348b037a8ee4b5e05159fa94c46c3c29bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c0a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac6120d8f2f9cabf36cf829e0210d653a2833c4df016bdce7f4bb8826eb6390d7203a1fd91331ac8e97af8356a18902d5d6cb9303a89611fe8d9d6f55ec0f200be129bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c0a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012ee7cf40e9a75aa38cb64e66af9642a9169c9731eb57edb6b53369ec0446208c3b1e6a9982481bb6506650697a5dcd7822a320c657d46eb36ad741bbcadfabf11eccdedbc1a2134506b3b008b1992b2ad709e8cf9e180e564811ed9430647cee163f9bec6aa1ed6b98c97ed5c43deb881684b6a033004a73a655246bc4aa1d113206bfab9e791a088273c3ac3afd2e006f31ed3dbf2c54ecee900caa7a1a108020c70aea841759df5538b07c41016d329e965a95a9129f311d455f5e33d4d50b053a2d5104659714a47bfa3d4e0b1433021154efd45427a4590fe4e352ace9e7072e5903b5de133cadeeb465ab50a579fdbeab329bb363e0168f114701cad000277e93090ed9b5553571d0e7c5f3f44409e353f07b2402116c2ce4a9ea002cd400f43caf717d7ee4cedb6d07b1f157c7b54c4ea0e05e1721b14cc7e16548f90e12f4d2f5a47234506fdedc1cd8af6956bcd02fb698ab3ca4933a2d9e47a871fd3267d4e0c246875451ea6a2bc5e7eef5db3b4b37d1abb781485e78f398a6f6cc2d597b28717fcaa113b9e6328eb6b71ef9e0ea45b1890c30abc1e5dda62074002213fc6018175f2249ede6d81dc514f7ed85659a019dc6df890699f39f92a3cd1b538bc9c0abc6c5870fd9c5b7f0d839cce91198243bc8f966a9c8368c64cf7d39763f544375f7303d86992074646c787f09ee431a3a345f8d36cc3e6cecdbe51a0543ef5de1fa625abdd1f5defd3b7683ad368c2a8396501774e12f7420737223d0f543b2f69bd1cffecca6d09827df96554e5202157e090c6b17d32fed73463054c4fcf1c6656efbdf088592c1e3415b6c22c84fb1ee966e65bf8bd5bf46f20fab3b030e399a910420f77a6d3e1cbec6da7633b99b0a852ac771612a40b90f31a7d8f0b8dffb2aeb5b2a9bddc970466248e2f57292bd9d5c752af42cbc62b70e58270f472004d514a4d56422368fb9bffdb60696ba3b7e3cb805f8d3439d4a38473cb39c5fe7d698c7d50b54ef315f8498a3d720f6c8c002c243fddfaded9007b8c34c63a0182967382af4ab10cea09dadf524e856305b966aecef2052127119642f820ddf8730fbe72938a8abf6dd0de0cf437f9e0751a91690415e65a3cc269bd07df22078cf0418d6c7575409231465c9b889aef1c9f016a0aba19a5c353054c4fcf1c6656efbdf088592c1e3415b6c22c84fb1ee966e65bf8bd5bf46f20fab3b030e399a910420f77a6d3e1cbec6da7633b99b0a852ac771612a40b90f31a7d8f0b8dffb2aeb5b2a9bddc970466248e2f57292bd9d5c752af42cbc62b70e58270f472004d514a4d56422368fb9bffdb60696ba3b7e3cb805f8d3439d4a38473cb39c5fe7d698c7d50b54ef315f8498a3d720f6c8c002c243fddfaded9007b8c34c63a0182967382af4ab10cea09dadf524e856305b966aecef2052127119642f820ddf8730fbe72938a8abf6dd0de0cf437f9e0751a91690415e65a3cc269bd07df22078cf0418d6c7575409231465c9b889aef1c9f016a0aba19a5c35376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec2ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b203fc1dd0a13bd5456cb5eb5891a438e996ea04bfb6be14b9d3f424143cb7d10c619fecc3536a8d4db49740272e0dbbf7b6834c562baa120ecdc9ca4f1a53923322cc2720a52f1c8b3e645a5a14ab153afd19f76d4391f99ebffdf81ecf51e775d11f76b80533490007d130518a294847325d3679c416406b0948885d8d5135f3c2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd62dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a1aebe5602a8f012b625ab7294163b3f936535be6d1710961e568ba8e309576381b3b6514a5e576d3bf2166ce9c7de55051cce16420aa35ea7603aa0f35bf89c42ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec19fecc3536a8d4db49740272e0dbbf7b6834c562baa120ecdc9ca4f1a53923323fc1dd0a13bd5456cb5eb5891a438e996ea04bfb6be14b9d3f424143cb7d10c62ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000114748bc9e9a436ddb42ff39dd58dff74c3a95999948cf964fd8320e22ebd37f11d7c245924565ea63f328ec3cdc8a75fb5b8f40620db247169b30de13a5f67681ff71ff943b01723dbae8eb4270acf8754bedba40910c8f626d8bd567cbddd05043189efc387e02e23c581ef41179054ac9c8f8a1e00d9db2995d81eb60a46491f985c473c95a8599f8e5df94365ba8cff47d8d2fac9fc7d1f342862d6df20dd3d4eb3211b5fcafb155b272cdf111971823cdd68ed4e9b9487d36184d835635324448025650fa99db7ea47d6189c9dfb73fefec3390ce553547afc07a710e32836a5e982fa498942dd8813ae1f6b09318d10c4a993d4a3f860b62753e5623fff0baf3a21e8e7fcb337f89a48566c8f41c56ea46dc1f62d8f1ed07b3ef92da01e0c35773c0156b2e570d3a309c301f975de36543a62e72af4a27774a71d3be8521cad5f64396a57cbf6c140440b585cbadf7fac77a7d9be1b504b1024d305855b2ceb440dd0d4826adde4ce8a3e1f27096b514aed4a3a83e12640f8fa272596573182652ef4d3bc310e6a87fa34cafc35f83ea3b5356312605cf7c5cdbe9f10d91deb125994c36d924f3d451077b0cfe0ef27ac2a7dc3c0afd7d0ba03871406f4153ff2b7f4820a4e7bd3c8729539637ddfbc166805dce7616509a281759b5c3a20a2a06bd6ec70636fded53cb97a656c377f3f993fd5e5cfc27ef55a9d507d3e3893a3f47c8f4bb0393b432aa6425f95c9e02a189b1b4bfdbb8717a56d51345a094d094452ab7793ebb41687ae4ac74d8b09d563e7372d02ec7e074445ef9df0336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a0c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba0305e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df63a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b1d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce22724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a33336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a0c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba0305e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df63a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b1d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce22724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a330a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac629bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c3a1fd91331ac8e97af8356a18902d5d6cb9303a89611fe8d9d6f55ec0f200be1120d8f2f9cabf36cf829e0210d653a2833c4df016bdce7f4bb8826eb6390d7203cc6685db8543c231286b2845afb78b7ce5da7711fdf1afa1599b0f8a5e75f2d3b63fa20c08ef6946b68d1be6e6578e912c24f6d15ed51fa875cf830c4f8444e154726d1e457b749e5a32d9cb269c17087add08c554ac6163f1ba6dfbda977f43ebbdef2711d9803441a84e31a9d5ceddb174d378971a5aeaf3f8ea84a27c7941ec72c0c20573b5141e5d40e17d7293f3bb25cd5f92b26d68aa789660ac49eba06b8d7221f316ccd211c30eca2885f3786348b037a8ee4b5e05159fa94c46c3c29bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c0a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac6120d8f2f9cabf36cf829e0210d653a2833c4df016bdce7f4bb8826eb6390d7203a1fd91331ac8e97af8356a18902d5d6cb9303a89611fe8d9d6f55ec0f200be129bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c0a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012ee7cf40e9a75aa38cb64e66af9642a9169c9731eb57edb6b53369ec0446208c3b1e6a9982481bb6506650697a5dcd7822a320c657d46eb36ad741bbcadfabf11eccdedbc1a2134506b3b008b1992b2ad709e8cf9e180e564811ed9430647cee163f9bec6aa1ed6b98c97ed5c43deb881684b6a033004a73a655246bc4aa1d113206bfab9e791a088273c3ac3afd2e006f31ed3dbf2c54ecee900caa7a1a108020c70aea841759df5538b07c41016d329e965a95a9129f311d455f5e33d4d50b053a2d5104659714a47bfa3d4e0b1433021154efd45427a4590fe4e352ace9e7072e5903b5de133cadeeb465ab50a579fdbeab329bb363e0168f114701cad000277e93090ed9b5553571d0e7c5f3f44409e353f07b2402116c2ce4a9ea002cd400f43caf717d7ee4cedb6d07b1f157c7b54c4ea0e05e1721b14cc7e16548f90e12f4d2f5a47234506fdedc1cd8af6956bcd02fb698ab3ca4933a2d9e47a871fd3267d4e0c246875451ea6a2bc5e7eef5db3b4b37d1abb781485e78f398a6f6cc2d597b28717fcaa113b9e6328eb6b71ef9e0ea45b1890c30abc1e5dda62074002213fc6018175f2249ede6d81dc514f7ed85659a019dc6df890699f39f92a3cd1b538bc9c0abc6c5870fd9c5b7f0d839cce91198243bc8f966a9c8368c64cf7d39763f544375f7303d86992074646c787f09ee431a3a345f8d36cc3e6cecdbe51a0543ef5de1fa625abdd1f5defd3b7683ad368c2a8396501774e12f7420737223d0f543b2f69bd1cffecca6d09827df96554e5202157e090c6b17d32fed73460070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae02347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f3dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc620b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de6371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a8708e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae02347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f3dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc620b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de6371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a8708e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000123947f204892e06ab1520ebd3db2c70e7017ba6ef91f100c1a4d1e95983aed42000000000000000000000000000000000000000000000000000000000000000016eb661adc0bd75f8671b6b35469c6b19c01e509e4e8d2544302029a850f29c6250a17192d335c2019d33221571844872016cff5cbda9b820fca59e724d502bb02f6899e9600716cfa1adb1c190c3cad6138421c92ab4f52fda2bf971933c0090e7e2de006f09a30f68c90825ce6b9505e4bf1c5b114eb6c16da00e562a1b8eb19e3cd430a688219def940460d8111bbb2579d12e197eaabd9429f6778cb78c00533707a10866f6a7af9950cbbfcc54c913416c1107bba384d4d74e7c984e77c0ff4dea5b7c29830bf1466358164523b01a575a9cac775f63ac454df1212969c39f6275002d8763aead6f5952d84cad5529aba06196dc2e2f0d1eafece8740983589e18252a676761d1ab5cfc7bf5f6f671f5a81a6558c6e55f7de31bf12ae7e3db2422c6c457433785c245b74ac7b9a3b99c20dbff4688f941d40dd9db2a73606a51e2b010c99c67233702a0c078749652e49dbcccfb7c75ac87e3db2ff155108c8595d888a8ffceb745ce0a07444cd5ff16d07dd0a222d40d2d0a692b4027b16bf8c2515ddfdff1dc6c078c053f9fa1b99f542067455b006438339aa9ba43d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003b9e758ae3cf4a360111446f6309d4e0b97c76a054c3cef3055e7cbfbf7586fc04618a751c30b5c9feeebb909cf62b1f68ca225bb4892a2893ceb42d408a79052a184bb6730c730e0556562cef3128631653ed31829f2650b623ac0abd4ba2e815e7b4498cf38cf1faa9a9d310ced79d0bf2abca86add2cae30984e242b45d1912797a903f3e3f461aafaee0abf5c9ef08cfd7037134d440c32ac96eb27a2e852d86856fc0c1c0b9e550511f540a36111976c1f8981824dad602677e4d85d17c1c5f64d13c373c5e856e6a635bccf1ab09c89a152cbb2c2836a8be3c7c62e89823a09b2ec3c8c3a17a91959ca4330e55187dfee6dc91ccf3628472b0839d17693b9e758ae3cf4a360111446f6309d4e0b97c76a054c3cef3055e7cbfbf7586fc04618a751c30b5c9feeebb909cf62b1f68ca225bb4892a2893ceb42d408a79052a184bb6730c730e0556562cef3128631653ed31829f2650b623ac0abd4ba2e815e7b4498cf38cf1faa9a9d310ced79d0bf2abca86add2cae30984e242b45d1912797a903f3e3f461aafaee0abf5c9ef08cfd7037134d440c32ac96eb27a2e852d86856fc0c1c0b9e550511f540a36111976c1f8981824dad602677e4d85d17c1c5f64d13c373c5e856e6a635bccf1ab09c89a152cbb2c2836a8be3c7c62e89823a09b2ec3c8c3a17a91959ca4330e55187dfee6dc91ccf3628472b0839d176928a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e870b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc19dbc672f45c591d4620260144ca4c78e2a9b5b0c29f0483ee09c0cef1690f98325e65080be82714960db7414d9bb120e71d89a040970bc046d3e3bbea1285283f44c25fd17a50b971a117c3fa0049706d29179dae17d2e59e1ca03a77ab527d24b9719897af366a8aee83ab7091b28346d90278f468950f8d056030c45aaf4b3319a2a83a6dd65b246c9f7d539b67b09c3b0afe9bcc31f641e4746e726732ac352254da5cad22b2bb31a255d43899f5be174c33d783688ffa31918b2d0e604e26c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa10b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc28a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e87325e65080be82714960db7414d9bb120e71d89a040970bc046d3e3bbea12852819dbc672f45c591d4620260144ca4c78e2a9b5b0c29f0483ee09c0cef1690f980b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc28a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e870000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011e64d7a5f880404cb22a773b945eeae13c8b70aaf8ec5c4b5e65584021baa35413339dbd31dcb0a7a9f0eba7ac759fc74385f811bc41d0c2fdaa0e7736dd045a2ee6a038180908ec2df479ee5719e3b075a492c3fd80a9e68429546f8a605476227b4590f02a32cf52ee4a9a20a266436c771df82ed4c056d01bdd6d6690f7020aa851ff68746b44441c071546895fdb3ee01f0a7c51e7a1bf4ee89ccfb823b3071d0a3bdf38d7510a0406fbf430b88b14a8e7a87a4b84eeb942a643a8f54d1635a879ee2eee37c0a21b3dae8062887d3a8f4572faad99efc39be3599c12d1db079eacea32029f29e03dd87c5c9d180aff5acb150a90cb09fed898912ea661d036c61bf929a9a8675cda5e495a81be4ae6b77f0ecbe4882df100fd0fe9edc4c21efdf22d26ee79c6f694cf5e775d59788f9c685004330cda164fe249ad44338138e83df9d68064f8ffa7ef7331abefe4d3dd388e1d81ff16cd8fa02c805507090c3a4cb96642ca02f552b1b0426c6c9903c402bccec99417fbba0a1757f7f3cf3e10a1c27d1ca603bb8bf9437fc84516ec2e4da307c06c9d5c43673cf1b0fcbb115cd5c60c7a83bfa21bd3c72cb386fffb38023cab666672d885189454021b1238cac76bf1f0e87abc4ce24480eb0865f1a4f7d669b6bcec95e3d0d5ca931c2d0cc5a8d538d1934e0e99ab396e494390f97706fc15a577c836666d0b42d9592f006389aa17a3f9d64671b329480fcf341c1453110e3012d00a040257959115df0ab34cad6c641fd87f5c965d692792cb2a67972dd011fa9122cc47c1e6ae823d09c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b09c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b39ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e2e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae9682c52dbd4b3e6e09e1ee805e79005f0bc5d1ef5ded4e43494b88e3889b14b0e982b262cc5955e65935d7d23c1946687e15b1143b0d92ac231ce3dd27d0547e1a618c9d9804d1af74f9e6525b58fa140978c05cc06abfbd4d3afdd2faa1c9c215527f0fe2bdb474e59eadb6476d794884dafac34e825f9c1ef1ac1b293f21ba637125c534548436e43bf17fe0c04c54749cf0b77aa2d2eed5e1e60a2d2e8abc0510461dda8d89f9244340ca170b871686ead72c0f6aeea72a59dcc85f5bf2f6861063701d30cbb53d7978d008cd3615854317feab4f9fde2db6584c6b4ea9b95e5068b7cb70c4e968fe90a321a45ecb6c221e359af3f511fa60b4bca61ced1e0ae2e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae96839ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e2b262cc5955e65935d7d23c1946687e15b1143b0d92ac231ce3dd27d0547e1a62c52dbd4b3e6e09e1ee805e79005f0bc5d1ef5ded4e43494b88e3889b14b0e982e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae96839ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011e8194fcd5a97700e739a2f24cafd61b4491112661802452831399f4fe0c2c8304f1693e7f720fc0c3e18e66c0f74ed58aee9ea6d8ea1a90efa817954a6939683d467807ed19df7dcb1ceee2577eefd4e488a3c3c519bc76d0e4c2cb85206c0e2d6115c69853abf63db380f5e7d691c62c5a27f45b4c89b995ef9862f6785fb821940a88b1c2aabd86e2311d2f0f16003f34554a35b3cae9b830c25258d4bef21c7558cd368b780e43fbc21e63a2c0f9d6c3d00afbdacaf095ad69ad3c69e8a12ca6b7c480511320f61c38b01e256472115e384cb1544b7c6c2c1809fa6756d5305ca7610ebe8c0334c175749c19abf108e4a6592cab85d824bbab119e65411e3aa039b1d5849ce36dac25aedc8381f4062ac089c68ee62dd6428e1f0d566c3316ec15fcf1ac9caa211dd3405d08e01d84341f34d2680d29e84ee4680f0e4bfc050014b77c11e98c6a93b167065919941eb20a49513ac5583bb51cf96d9cee0b2af2f2dcb7cee2ab8e2a8bb6de75f04c1cf0f878528fc1ca448e58f9669fe8ff19973d43497a56cc8039c2fde9cefe0ca1897f3d9d53193ccd03467b4e269ac635d63a45401cd2f6dd6e0a0cc2acce0a45dcd0a215d3b9d367c53955f78c7d073e7305b385fdf1e74396fb4b21010478ea9706bfaa4809440d935417dbbc764d1b5056a52a88e47bb79c7bb73ad4e6877ad11d5462f9149f56ecb0ac0ae8d29e1858d0c3bb0ce172cbb5ba468bd5ab4a8293f62e449ac1f2153c56c6b9406ff1195b8d569bdad6892038a85deab533ace8629f62faa985bfeb64bd1fbf9848cc004ebed66970c16a21963c211e797937651cc016ab64496cde10a4ab01eef4183fb14129968f3e95de69c3dee18686c8bd29d8e55de8afaebb1c8c41fe110be90189ba300f33c712a7ef2ca5985f5e14f98fc07158f56f205653375709aac4783e7645cff0cc38ed5810d35a67a0a1eb28b6d88ab05789fb42d9f995f6553b8907b0a2f04c02e35d47abdf3bf9dcd668dfcec236bccb2ba1afa014b33055d658384f5d0fb3fd1ca2b85420c4062329974277d6c54c81cd79e98d1c39cfaa29a926732eb17c0e70d2665b5c2be150300c5f09cb11aff7da286e20677ff1ad2fb8198cd14e83f18f2d99a4a3d41eafcff3c33ccdea59551ef32b0cc96d0e52d049004ebed66970c16a21963c211e797937651cc016ab64496cde10a4ab01eef4183fb14129968f3e95de69c3dee18686c8bd29d8e55de8afaebb1c8c41fe110be90189ba300f33c712a7ef2ca5985f5e14f98fc07158f56f205653375709aac4783e7645cff0cc38ed5810d35a67a0a1eb28b6d88ab05789fb42d9f995f6553b8907b0a2f04c02e35d47abdf3bf9dcd668dfcec236bccb2ba1afa014b33055d658384f5d0fb3fd1ca2b85420c4062329974277d6c54c81cd79e98d1c39cfaa29a926732eb17c0e70d2665b5c2be150300c5f09cb11aff7da286e20677ff1ad2fb8198cd14e83f18f2d99a4a3d41eafcff3c33ccdea59551ef32b0cc96d0e52d049132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c83614840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d312621c309b8df1d6ee7cbca9bfcd74b2155283f7f40c031072555d9c4921004fa11368a5f1c57c90e2de4bea01fe3d14d78d2c113bea4189c5616e3288490080c960cf4d744869d6bb7ca44679edfd6ace4ee3f7c43864249b03768ed6a74a65a6a17dcd04956966bc87edd991719d6b3a0ba18caa2e4cd1d4bae3ffb819913f9ef299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f100220b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c3feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d14840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d3126132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c836368a5f1c57c90e2de4bea01fe3d14d78d2c113bea4189c5616e3288490080c9621c309b8df1d6ee7cbca9bfcd74b2155283f7f40c031072555d9c4921004fa1114840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d3126132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c8360000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010417ce60b81f5d93402842298d3a4a6f81c1913be3733ea19018c7baa6c7ad10141c2bceea5020ec0faf6fb722728727252d1b6d2a9b5882c5445c2b1c18291e0bdb8570501fe074ca6387e5bd21b8246e6e92a65925eff87061b365aeaf5573327a75568ca78b3dd093ffb70d52df0270e5999bac051ad7dcda13790024b4e60625955caad9277e35f9c24f94a96431973a4b777dd684425b75989b42c338bf185b760648e239a0477c370353807aa28d91386c22a8ae8b3cd5c7929a4605f22497328cda46113060b00d82ee5e798f4e6f4775f3fe35d1fa8d1af0d2e128fc16168a45cff1a50180ce167417c4d22bc8cb5ebcba31de763bba3fbddab6f9fb3ed181d6fffd854adb6bf948933971033cfb55fc8347e8ca7716b0a60027a1022217f868f67cdafb1ba2f0f07050ff04ed3a5295a04fec2718d8cf5e8ecf871d17258ee9660e8359d89793be1db90d1ebf4ff54a29542a528ed627a8f258e76a3db0c518f0257c6ab70441614045cd8629a8a17841bfa296dbd743c1838994702f8e0e0549806a0878a53203698d8b2f442fa42c9e53b49b5561ca5f6fcde31e1fdf69834016bfbae5029b0742ee40e7a336abb314d31e74df66b571d5e534af1e4fb56ce2983fd5ab6d85cbc0e3f944dd84badb100294c496a16b8f1a1e0ea5121d885aac16bce04234bf586a69e1b70d39d763e8780d56544c30c3efbc4f44116cff76456b56c9bcd034ca67b4b8ca64e547cf1807cf810117aeeb2f8c05ca0a0768d40b7432e712f46c67d1cf522273565c1c15b982099958bc415bcf18713ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f620591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f620591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd62dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a24814e4fc4db6a41252ae13b604cfd91c0e9402633f45edd20bf70694bb1ebd40077e5fb96e4c541295b118291d98c7c81fb25e82959ce50f0f6e2140dc9b6cf11a7ebcbd7de1a58204c5573477a531c0a59e21ef22ada2803ed9657cfe94bb02d11f1bece483e5c430c5546a5cb8506ed18fc518858c674907a716dfa488ae92ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec36bc066bad4f192cbdf19e4a06169f22f64d1f342a06c9e1b7b20cb69f53d57911d68caa2862c78883eaee78094d9fb69b4c1aed67ae908a1a76c75ec48901252dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd60077e5fb96e4c541295b118291d98c7c81fb25e82959ce50f0f6e2140dc9b6cf24814e4fc4db6a41252ae13b604cfd91c0e9402633f45edd20bf70694bb1ebd42dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011b3f7b2c59e296eb5771ffa8a0513670c6690ac15ce4874cb1abf8c59282e5931d178c1ffbd7b43f8baf55bb7e41601e1ba014390e719b1df7312f7020cff8242e76e28009775d9b6d5ba313168a7b8935322ab49e52559512a1d7970ba8dced0cedaf38d8e0aeeb91a810769f3d42999302e60ef8f74e093050ce4bc858c82c1fa84db60eb2fb58575c1a45e3bd90e14639cf4c5864d53629d1549af3fdc65a2229e52468b31a7d99e0083b3edbef91ef31731092ce6514102a8b5bd68a7bbe25a05d5faea5a36f679188b861652bf9610d2bc752bf34e6ae07bebe0ee5c73030e3b610b2f58efd8da09fb9278f817a483b8b974bd69150f2af938190ab93dd03d4ee64f52c84157a248d5128068a107e5f3913becc7fe3a84be0f20f85841430e993885c5e0aa66e6b0d9f2655fde2a0c478ccb1a38e63f44fe3b1adb816fa380893e29d53313ee150dcdcbd0b1f96215ecfe3d40f7216761a101ce268ddec194ae4c07ab0980760c1c97043d51df673480d3ec7f8b78b7afacdbd8f644bbc2a21d19bdeef8f408fa9033c6c8d3ede480455db80c251a531f654687e2e2b87254ba5ecaaa79a82cdfec9ce3fee8d389f61fa043264816b02d22b68c784ec463d8445151fc71c17374e3032a9232f12580e18f7adc6dfd93259f40111d572c2020190433d08b119e4710ce74050e6edf815392ae9062821d0d64f594aa456f107c8d2897952587d1eae593de311cc758fef1a9c935794268488d79503c807f90ac5867daa8910807c0c130b6de81a34953e7168725a9e1ae3fd82ddb4611a523054c4fcf1c6656efbdf088592c1e3415b6c22c84fb1ee966e65bf8bd5bf46f20fab3b030e399a910420f77a6d3e1cbec6da7633b99b0a852ac771612a40b90f31a7d8f0b8dffb2aeb5b2a9bddc970466248e2f57292bd9d5c752af42cbc62b70e58270f472004d514a4d56422368fb9bffdb60696ba3b7e3cb805f8d3439d4a38473cb39c5fe7d698c7d50b54ef315f8498a3d720f6c8c002c243fddfaded9007b8c34c63a0182967382af4ab10cea09dadf524e856305b966aecef2052127119642f820ddf8730fbe72938a8abf6dd0de0cf437f9e0751a91690415e65a3cc269bd07df22078cf0418d6c7575409231465c9b889aef1c9f016a0aba19a5c353054c4fcf1c6656efbdf088592c1e3415b6c22c84fb1ee966e65bf8bd5bf46f20fab3b030e399a910420f77a6d3e1cbec6da7633b99b0a852ac771612a40b90f31a7d8f0b8dffb2aeb5b2a9bddc970466248e2f57292bd9d5c752af42cbc62b70e58270f472004d514a4d56422368fb9bffdb60696ba3b7e3cb805f8d3439d4a38473cb39c5fe7d698c7d50b54ef315f8498a3d720f6c8c002c243fddfaded9007b8c34c63a0182967382af4ab10cea09dadf524e856305b966aecef2052127119642f820ddf8730fbe72938a8abf6dd0de0cf437f9e0751a91690415e65a3cc269bd07df22078cf0418d6c7575409231465c9b889aef1c9f016a0aba19a5c35376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec2ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b203fc1dd0a13bd5456cb5eb5891a438e996ea04bfb6be14b9d3f424143cb7d10c619fecc3536a8d4db49740272e0dbbf7b6834c562baa120ecdc9ca4f1a53923322cc2720a52f1c8b3e645a5a14ab153afd19f76d4391f99ebffdf81ecf51e775d11f76b80533490007d130518a294847325d3679c416406b0948885d8d5135f3c2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd62dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a1aebe5602a8f012b625ab7294163b3f936535be6d1710961e568ba8e309576381b3b6514a5e576d3bf2166ce9c7de55051cce16420aa35ea7603aa0f35bf89c42ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec19fecc3536a8d4db49740272e0dbbf7b6834c562baa120ecdc9ca4f1a53923323fc1dd0a13bd5456cb5eb5891a438e996ea04bfb6be14b9d3f424143cb7d10c62ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000114748bc9e9a436ddb42ff39dd58dff74c3a95999948cf964fd8320e22ebd37f11d7c245924565ea63f328ec3cdc8a75fb5b8f40620db247169b30de13a5f67681ff71ff943b01723dbae8eb4270acf8754bedba40910c8f626d8bd567cbddd05043189efc387e02e23c581ef41179054ac9c8f8a1e00d9db2995d81eb60a46491f985c473c95a8599f8e5df94365ba8cff47d8d2fac9fc7d1f342862d6df20dd3d4eb3211b5fcafb155b272cdf111971823cdd68ed4e9b9487d36184d835635324448025650fa99db7ea47d6189c9dfb73fefec3390ce553547afc07a710e32836a5e982fa498942dd8813ae1f6b09318d10c4a993d4a3f860b62753e5623fff0baf3a21e8e7fcb337f89a48566c8f41c56ea46dc1f62d8f1ed07b3ef92da01e0c35773c0156b2e570d3a309c301f975de36543a62e72af4a27774a71d3be8521cad5f64396a57cbf6c140440b585cbadf7fac77a7d9be1b504b1024d305855b2ceb440dd0d4826adde4ce8a3e1f27096b514aed4a3a83e12640f8fa272596573182652ef4d3bc310e6a87fa34cafc35f83ea3b5356312605cf7c5cdbe9f10d91deb125994c36d924f3d451077b0cfe0ef27ac2a7dc3c0afd7d0ba03871406f4153ff2b7f4820a4e7bd3c8729539637ddfbc166805dce7616509a281759b5c3a20a2a06bd6ec70636fded53cb97a656c377f3f993fd5e5cfc27ef55a9d507d3e3893a3f47c8f4bb0393b432aa6425f95c9e02a189b1b4bfdbb8717a56d51345a094d094452ab7793ebb41687ae4ac74d8b09d563e7372d02ec7e074445ef9df006d01f3ade4f2cfec3516f5ea8b8f750522715f3e10732041a048727b8b6a4db392fe0c521b0d3013cae90a1574708afd01f83082845c7177f28a9c547495b2622109c26578be0f9d0972cd94b9cd4919ac36dc36523fa148216a3c69b9138471def63d9a8741f062f68d326b4632b6e87832b38a428ff0717168d26646ec7ba2a530cbfb5bb64e112f3e03e7a1026d7c143f2d8e719f02f5816d10709d6196115acf3404a449b1eed0c1fc185efd9286102a623223308ec41165fe5f629e6a0139f3fbe8ca8f8655ec361386250c2365f7ff348679ac599ecea825c312e7ee22c60c0417357079aa13c9ec79daf3dc9c2c6a5b3a1b23381ac42ae90ced1811f06d01f3ade4f2cfec3516f5ea8b8f750522715f3e10732041a048727b8b6a4db392fe0c521b0d3013cae90a1574708afd01f83082845c7177f28a9c547495b2622109c26578be0f9d0972cd94b9cd4919ac36dc36523fa148216a3c69b9138471def63d9a8741f062f68d326b4632b6e87832b38a428ff0717168d26646ec7ba2a530cbfb5bb64e112f3e03e7a1026d7c143f2d8e719f02f5816d10709d6196115acf3404a449b1eed0c1fc185efd9286102a623223308ec41165fe5f629e6a0139f3fbe8ca8f8655ec361386250c2365f7ff348679ac599ecea825c312e7ee22c60c0417357079aa13c9ec79daf3dc9c2c6a5b3a1b23381ac42ae90ced1811f3d2ad1c5a84311902048eec5362fc54d0d1d9ccb0b08409046fae480f0b3a5db0c8e75409cfea4dee8d5ef0552162e0956ef2a6901d74c5dc30d8531f7fd750d18feb59e5cebd38751961ac5f4cefed536989e6b2d170dc6623897a3e613e6f61d48035b5dd27609a54b076f82eb0dd4a9e7cc58d8a35782c6196083313afe252b6cafcd3bc4e5b8c69471cd7bca04a4f717a6e20530fc461fa526b0175e2f412086b2eafdf76640fc5f5320e2730039d2f047b90cdd543c39fe58c2e01f06f731db538e220d9050deb695a20721092fd516be72dcbf54583fa16ac019dccee5387802b35ef46d465536c7a5125bfe9b85eeefae2986b2a5c1676fce05f4e000059566e6dec5172aa9a3d8a9347fd6550f6f1691a37f82eac53d94a6e7613a4813923ea18517c0e7c6fac4d117b9917c9f0728c9ec39dbb77de85b5c17f2c7f40c8e75409cfea4dee8d5ef0552162e0956ef2a6901d74c5dc30d8531f7fd750d3d2ad1c5a84311902048eec5362fc54d0d1d9ccb0b08409046fae480f0b3a5db1d48035b5dd27609a54b076f82eb0dd4a9e7cc58d8a35782c6196083313afe2518feb59e5cebd38751961ac5f4cefed536989e6b2d170dc6623897a3e613e6f60c8e75409cfea4dee8d5ef0552162e0956ef2a6901d74c5dc30d8531f7fd750d3d2ad1c5a84311902048eec5362fc54d0d1d9ccb0b08409046fae480f0b3a5db0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011ed202334f90f666ed0a8d4737350de57c42a5176e33ab573a104ad86be318a5071a30fa794ba702078665d0da48c1e018accf516f9736df63a2117c2aec1c2a29cb1588820fbd616563f974b0c2493f7f84b5386ff3f321002072cf03a3d6ba3630fb936564993605d834dcdc3612e2f35591ab1ad6941357061b3377fc334d3d2acaf23af01ef3f35590a84815d635abbb1f0fda56346179c0e512063255590cd81e6b35e9710078eabab682c25187713bd1d1ad2aba9a0fb742b26b79316b0c088c8bbf5e9b9d3cef640aa0a5f8510a57664a07bec449e55352fdc86bb36412af9d9b66aee4052ee899583cd80d662f8c59a398cf214bbe4d2f31a5a6d8123e341aa50eca492f9cc5be6fb34bc944d50997d185949ea7f72e8bee3209e557399580320f6738dfe790d5e9d29708f848eff029006a8726ed67e25ec177c8ea2901f969aa7b89cac166b30719ec0dc1fc0855ae70d9b977b4c67f75f05019413fb9852c38a87c712aeae60682e1ab7a4721008cfbad9dd1ceaf4c75d60377461d6bb872fe2aa95f1b6bcedebf520814ac4d2da58246bb31fca5486b809e60b73201bf158b6c8064423bfe2bed29c4023b19223a30e017de38233765c514b7162441da64fe05dd50898df5abd1b141918774580b03b3013a0b363617bffae4601e007165b8b4b16cfc1f995f42096304a5570b69043ca814795cfc54bd0585dc08053979b1b5ecd9656e37f2527be13ae4d242c328548cf10cca4a4d63c860112aac3a074cb3a9f9d9fbf8cdc30cca539ffaf89eb4ce7d4315e4051f2fe419ba09c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b09c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b39ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e2e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae9682c52dbd4b3e6e09e1ee805e79005f0bc5d1ef5ded4e43494b88e3889b14b0e982b262cc5955e65935d7d23c1946687e15b1143b0d92ac231ce3dd27d0547e1a618c9d9804d1af74f9e6525b58fa140978c05cc06abfbd4d3afdd2faa1c9c215527f0fe2bdb474e59eadb6476d794884dafac34e825f9c1ef1ac1b293f21ba637125c534548436e43bf17fe0c04c54749cf0b77aa2d2eed5e1e60a2d2e8abc0510461dda8d89f9244340ca170b871686ead72c0f6aeea72a59dcc85f5bf2f6861063701d30cbb53d7978d008cd3615854317feab4f9fde2db6584c6b4ea9b95e5068b7cb70c4e968fe90a321a45ecb6c221e359af3f511fa60b4bca61ced1e0ae2e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae96839ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e2b262cc5955e65935d7d23c1946687e15b1143b0d92ac231ce3dd27d0547e1a62c52dbd4b3e6e09e1ee805e79005f0bc5d1ef5ded4e43494b88e3889b14b0e982e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae96839ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011e8194fcd5a97700e739a2f24cafd61b4491112661802452831399f4fe0c2c8304f1693e7f720fc0c3e18e66c0f74ed58aee9ea6d8ea1a90efa817954a6939683d467807ed19df7dcb1ceee2577eefd4e488a3c3c519bc76d0e4c2cb85206c0e2d6115c69853abf63db380f5e7d691c62c5a27f45b4c89b995ef9862f6785fb821940a88b1c2aabd86e2311d2f0f16003f34554a35b3cae9b830c25258d4bef21c7558cd368b780e43fbc21e63a2c0f9d6c3d00afbdacaf095ad69ad3c69e8a12ca6b7c480511320f61c38b01e256472115e384cb1544b7c6c2c1809fa6756d5305ca7610ebe8c0334c175749c19abf108e4a6592cab85d824bbab119e65411e3aa039b1d5849ce36dac25aedc8381f4062ac089c68ee62dd6428e1f0d566c3316ec15fcf1ac9caa211dd3405d08e01d84341f34d2680d29e84ee4680f0e4bfc050014b77c11e98c6a93b167065919941eb20a49513ac5583bb51cf96d9cee0b2af2f2dcb7cee2ab8e2a8bb6de75f04c1cf0f878528fc1ca448e58f9669fe8ff19973d43497a56cc8039c2fde9cefe0ca1897f3d9d53193ccd03467b4e269ac635d63a45401cd2f6dd6e0a0cc2acce0a45dcd0a215d3b9d367c53955f78c7d073e7305b385fdf1e74396fb4b21010478ea9706bfaa4809440d935417dbbc764d1b5056a52a88e47bb79c7bb73ad4e6877ad11d5462f9149f56ecb0ac0ae8d29e1858d0c3bb0ce172cbb5ba468bd5ab4a8293f62e449ac1f2153c56c6b9406ff1195b8d569bdad6892038a85deab533ace8629f62faa985bfeb64bd1fbf9848cc05583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee83aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a06130191191ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a882546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d579059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a63a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b1c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e23ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c305583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee83aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a06130191191ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a882546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d579059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a63a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b1c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e23ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c30b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c3feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d3e4254bae5217d87eae55fff4904382ad728515da29225c1b52c2a7e458f7990365c6077ab0490bcaa9f5627c0f5cde99a59a31864ed553d57b8162b46e494bb1e6a494cbf36abaf8b8a6a8de1165276533eb64441a7a8777834e338713e31483cc40f2563957cd02b5394bc253c4d0448f634cd65e2e2c3d47c95b581077a6217f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a66373017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f10022299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c3feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d0b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c365c6077ab0490bcaa9f5627c0f5cde99a59a31864ed553d57b8162b46e494bb3e4254bae5217d87eae55fff4904382ad728515da29225c1b52c2a7e458f79903feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d0b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011de9b43833ee51c21ff92c81d6fd2f50c3802ad659cbc629141a343698505f8c0ca081f647c3a9cb55af2191e325034d8e2940d9b79efc1c18ee9f0c4138fea5166f269f8e472b263338c159af33d7948f783bafbea141b1f184d144cada56c20a8f8e62d2f1306bbf2d43e17c0517dcfd32d7a38db1caf43a9cbd1e94206cc1298d8696bb2005af943a452fd8c9a1980f1cb9ffa2b50b8ff004c5318e84da8b1d78b132bf84510b91d7d719fefa47b1b6050174a845e4a21a1948455ed4d67039fda498248c0ae6e88e00c5bb72499f01eed91fcf0a8f20b0102dddec385e0e0fef6bffe733d3d4802d6157bcb75fb459a3fddd81f14279f85d0608e6259ac12c6bbab900f68a00c926bd02b763043eb93a1f8e4f8941ed81f2e4a26061919e20bad6e5ed7e32b427a948695375f7850ea214c1e2821b459f24701d11107c0623e5118034e43465b244ec6d1c1d68cb8b5e0b900de6a8fdd61cc01673e404d53f91b24e70802320f126e25fdd38ddf95f74a462ed0a55f6fdbdf0495e4250822d1d361d159fe3d131a99fabe76fabef558ab13653ba938fef93e17ff11f6b062250416b73f745f22bfe2d5ec50c202791db9ea95f6c3f8045349e515493acc7022cffda2481eb068d3e4d4058a2500b01f7053d1590df008987dc090ed3023b31183373aed342870969053de46eb2420ceca27eb0b66695b61c4c1f18aa75221f39419cfcf4fde686d12bc819adc83e781ba39e40ae430178a878f7a089c00f1283ca168f30a596b046a343283cb8aba63becd34c87237579e4b78935596d6208ccf4d3a5e93ecf17c6dce5a8ee2a604a4de7693506ce6caa2463287a5d817937330b2c5a16c130e839231a5711d59fd7f8b192d4462aaeef08cdc485a27e882c00c8223d8e3a0b76e2507c4ca6d3e17385850e0922081f52b5efca63d3875d13ff37ddc271c5f4891daf83b3592c1eaec113ee002af0fc467741229c2c78a41c03e8ab33c72239526b926d7f422366dac7ce5211c33d49d2061c2cf321a4ce23fc1754cc38ddc6ad946d9280bddc99477ecaa9f789bbd1c72714c00cde5b330c138b5802e3ab1e9c19dc237c4ab1020159d5a246364039e7c42b06bfa8380433ec74a7fd1c54e163e623dc83b54efe20ecc359c316b8e1b16905e64057c7fd08ccf4d3a5e93ecf17c6dce5a8ee2a604a4de7693506ce6caa2463287a5d817937330b2c5a16c130e839231a5711d59fd7f8b192d4462aaeef08cdc485a27e882c00c8223d8e3a0b76e2507c4ca6d3e17385850e0922081f52b5efca63d3875d13ff37ddc271c5f4891daf83b3592c1eaec113ee002af0fc467741229c2c78a41c03e8ab33c72239526b926d7f422366dac7ce5211c33d49d2061c2cf321a4ce23fc1754cc38ddc6ad946d9280bddc99477ecaa9f789bbd1c72714c00cde5b330c138b5802e3ab1e9c19dc237c4ab1020159d5a246364039e7c42b06bfa8380433ec74a7fd1c54e163e623dc83b54efe20ecc359c316b8e1b16905e64057c7fd2c9c5447ae1258463f3aab447a9f9906b7afbc722f2eeaa83dc7e2d2b05d15550da9914a1efea3e5e652d1bebf32fb2c4a8339fdf7e114fbb9026c3948d1e57b2f88cd896630976eca8ac22f2adf184cc2b4645146ab150c6247ed9a6d5f932316314ce4ccbe6c650fe7c0cd9b4e53807fa5d736a4dedd86d9482533997172103e2fec4c22bc0606f517e84bdbc4fc4683af0d0cc8e9a0d899c86c7a92f2e02201ca60058835e4b33bb84051b36cb487a4c816ecb306e5b4b0d20bc0aaea31ba18016098aa02665e1acfd881bf89573a1e3d6325e54235c9d8ace9a6067e91ef2dbe6d83ddfab2bb8ed281dd777263c51dec4d6493a42f57b175e1d9c27561691b32ecdb06154ad4de0590c2867c0b6df9c5abeae1a5be2bd2c68bbf2f7682962ac0ac6f9b58736d8b9902a0567227960edc30fc3065398d32cc71a5620401190da9914a1efea3e5e652d1bebf32fb2c4a8339fdf7e114fbb9026c3948d1e57b2c9c5447ae1258463f3aab447a9f9906b7afbc722f2eeaa83dc7e2d2b05d155516314ce4ccbe6c650fe7c0cd9b4e53807fa5d736a4dedd86d9482533997172102f88cd896630976eca8ac22f2adf184cc2b4645146ab150c6247ed9a6d5f93230da9914a1efea3e5e652d1bebf32fb2c4a8339fdf7e114fbb9026c3948d1e57b2c9c5447ae1258463f3aab447a9f9906b7afbc722f2eeaa83dc7e2d2b05d15550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011430f4f801a8271eb3d73408f7da99fcefa922515e93a7b46eec28b8df0c6a8f14dcf979cbf287a5de45d2b8e5ae0226f308f7a4da8aed189e8e2c79f7c37a05047dbe3bbcd6b2f21f4d6858282144a53ea60f0c85d4d55137824e314e9a270b0d233107c4a669441e6c174d705eb6c57ca8daecadf48d72a3a356cf946f902d270bc520cf996d53f9c3b60f67ab76ad6f23376f0e971314c45c66ddcee2c3f703d73eec17d2cb25f31a9c58c7a30308877062344d73b617a9bca49a636f0e6a3c1a60aaa0583eadd829fc0c66189f6e7f579c282b5c4b52ca1064ec00b83ef1345b1db4a644a273d41fec5d3bda9a19a694982be329673355e56f577c2cb6cb045b087472d374ec5a29ca57394a9a6c3f49031ae34198eeeaa99de73989a99931963d1023a63ec5126e0105d659627ef77fb4ff80c450ef6577983a641fa57d136210c5afdc091226029252f09bbcb510e3f8206904003fab3c50a2464e304e2b563fc2fea288ccb1072e9d514e038b3742e1f6a2495713a7611fc7e941f1842337e99dc08c781ae730af600fdc2f42821f6149f4c2ffa2da45a2b2c4b5325e2c358deac90ab1a876771daa9c9f9cd46546ee95be63d36d5a82dd1e80fde56f38caad08441e7ba811a0c1e900aa42b23325d1b7ac30be6b952c013565d8938c3bcc808adcadeb7d1a2fe347c991bdd472816784d42fbf0c4dc50083ac31dd5b0c6dc22b433589dad88e97a81294de52a0963ab2171bd51d106a89cf43f2417a13d270024c8df8ddaf303cedaf5905f902fa0d0b2544a00c725e4109a436276e35eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5600a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa10da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c8525044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b61584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff772a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a35eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5600a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa10da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c8525044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b61584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff772a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a3ba6fdac0b77d30417b290295f5091155d781ed0d0a66a28e5a091ccf9031fab1883d6e1d3620a99d127d8cf8f9f75ddfae5984b4c8b4ceb80eeda5649fd192224ff23c9ef564404035232cfac86bff1f167a1fec94aa581f2811e5a255aa8c206d607a831cfde5e13d364376489391afac7d8dd2c1d95a0d949d75c97a51e741dc393bba5987af7a09770b5534817ad1166f535085b6aba31e508f8cc4d8ed43e3e384bf13dfde462d8f3db4225ec5fa16abba8710b18a36e808962f7ac6f68291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa126c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b28a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e870b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc1883d6e1d3620a99d127d8cf8f9f75ddfae5984b4c8b4ceb80eeda5649fd19223ba6fdac0b77d30417b290295f5091155d781ed0d0a66a28e5a091ccf9031fab06d607a831cfde5e13d364376489391afac7d8dd2c1d95a0d949d75c97a51e7424ff23c9ef564404035232cfac86bff1f167a1fec94aa581f2811e5a255aa8c21883d6e1d3620a99d127d8cf8f9f75ddfae5984b4c8b4ceb80eeda5649fd19223ba6fdac0b77d30417b290295f5091155d781ed0d0a66a28e5a091ccf9031fab0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013e0291ccacd9446592a86d83ad35a2e584dd80b93c7c13047545729b90000ac91fcfd3b8ce8ac4fb3a1c7982e94afdd34ff1d8b7d3954cb49a63baffd5a1313715422e46242c9621968b743a47e6491cf92718ca2afaf622f313493bfb9bf733202ade52e2e33316acd09801357525c995676e24fe74b19301b80c7f668582121d27b9c80cb76ab8ad3f758b265e529a94afb3f7f4ad3d954cc3ff0ec70fd5b7261c75df981710ba8623a2aa6de23de24cffb50b98ebf450d8586d2e423834d42c737958ff6172e4ee458359e80e8af09a93fe2c8270c137d2a2ec6e6059bf4e27ee37a8613e9c277b0a89c65b539265a8889c46918f6b1cbcf0a6a981256cbe1c49d015215fa8951c0073a984f7169b9ec28c2f53259684cade813083b582cf28d8c929ed5151a128b9e20a01f3842ce71d28d9e976feb1eab61f3435e39b0204e4e0d9324d66322a34b1c104ca66eb943deffea994720bc1adfa26ccc9e49f3ba6dc38207406cdeb6c552906aa3b4f9b1b932e677684422993b3ceb91889782a150e43f7d34b24aecbe4fb1dafb928d94e8cdc79891331c01d23df74e0e74c2558694491c3de9eaedbe80f8ecc12ee0e17c303399dbfde74ab5bf1d0d230812e46bacd58414ad8b2a3e30de22b19f21eea42561fe35319defdd02ab95b03f6316f53ea46798045a68ae26c8114e454dba54eff64ca5150927a6dc171864f701feca56e6a4535a4738165df67126e35bab5c0267454e90241a3eae046339f042db534d10342d77a68a80227dea0e1e3815a4c8e4b041be5a7b21be964f3296b09a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22309a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a223022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c167cfef734a5fd046d46933e9ef83d8ee4eb029f5a344e2d13fa045055f26b2e2295afaabac21f4e0a11ffb4e8de9e5bbb1afbdd358923103fc7ddd9e92eb6ee0b45f4fb3203a579f75898884ba773de8b74c16da0c98fb3b4a53a4a4f9c399a34819967d4332e1af1d8e800d34bbb8e694c88b8f1d5feb0267be1d368a9293e174fbaaf88be79d412b9672c9d372a7d2fa63a6f94bf935c8b22a38f99927d5421fb658f6072cee97b6dab3dcbac82009de512e271ab489886ab5369ed4941f1093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a2295afaabac21f4e0a11ffb4e8de9e5bbb1afbdd358923103fc7ddd9e92eb6ee167cfef734a5fd046d46933e9ef83d8ee4eb029f5a344e2d13fa045055f26b2e04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011768fc0352b6294a4028a8e8933a6818697a8e06b90608a8a9b97070b47e316c2eca2cee5c74c37dc5b2da2fdf4bcf613cf7eb1e53ac41ae072a5e3c720998003f6bdfc13942191f3ce7e6b989957c75c1dcd57a976945ce83059a39000965e5157697ba7f39e3dbff32124e746e41e0c23d8815e96c68fdcba5d8043abae52f18c60c94f266e95422b4706c6a2a19d26f4861557e3f98dce538905a7bf07d241765a35c4e1e696934bed075d98a901392b56aaa0d8d68c5ffc7262e4843009607fa65e8a39eab8d053af531f12f38263a44451f163897f9baf9dfb382a9dc3403d2aab9a5709245ab684689b1c51ea0b27da49e3c9eb487dc7b7a3059e1b9b435121a2f265584dfb25c583274650a297ed121461d5d233420ff9c6a7223fb251bff12826a8b9f1da550d7c380894ef69d8f027f19e1a2dd1016bc51f7be3f9f207d58af6067abb1563e52a04842a326de160139eb61c328f00641833d13666c088535a94101b098a570dcf169ccc23fdadcc528451f2b4c1673eb4207c671662bab8b85ea0398583c52a433039575f609c2d199225296a36d4258a12c96a24123c1ec029f93916b215528d7a8e65620dda37e4690d43c6cc7862730191c758c3599890be1cebec06bd47ed8181ea45d739ce5b53c6df1e7cff3e4edcb15790820a09b0c6eca9cb55beb302c017661522c4a30a15457e54a4019f2034c5a7bc81536057523636f287193253eeb2e8ba8e329cc0a2950fed13f25f33ca144312f249261294175ba9709894ea4f33944b6538a025f7bc0bc20ecc601fd27aaad12115d66ca497f22362f624a448983cf73313d94e49457c6f8cbfac6bb70a4b1292ea29935b680ddc9d09db5bb767c308cf109041774f53222cd326a318f5b4ed816d301f36f7bab0eeceb7356af930d3fd3ed4f7adc69e9c062b8b0bc333775cc292cfe0c908454f113148ca9506cf2c04e5949812ce30f5b36748030ccc88a35321f09c12d6a574aa09940b16ddf423f015bf46a44c497a6546e42c000154cfb0de0f63ed295a8b55f66bf4e9220bdc120eaa491c488617544beee2cffeab3063a9b30c5e313b47522fe4377255c4b3a9ff7fb1f3bf00aecda9fbaf9006a80e40564cf3a1cec4b8add01bc88daa3b4c5824e9ddccd5cee2ebe8d75f3ff957f1d115d66ca497f22362f624a448983cf73313d94e49457c6f8cbfac6bb70a4b1292ea29935b680ddc9d09db5bb767c308cf109041774f53222cd326a318f5b4ed816d301f36f7bab0eeceb7356af930d3fd3ed4f7adc69e9c062b8b0bc333775cc292cfe0c908454f113148ca9506cf2c04e5949812ce30f5b36748030ccc88a35321f09c12d6a574aa09940b16ddf423f015bf46a44c497a6546e42c000154cfb0de0f63ed295a8b55f66bf4e9220bdc120eaa491c488617544beee2cffeab3063a9b30c5e313b47522fe4377255c4b3a9ff7fb1f3bf00aecda9fbaf9006a80e40564cf3a1cec4b8add01bc88daa3b4c5824e9ddccd5cee2ebe8d75f3ff957f1d1de7898ca0b76c5ccf8ea31d9866d81454a22428dfdbb89c3b361d9f92cb085725edd8763b0e9f24ec8bee196162f82280e8709816f727bdb7fdac9abcdb63e0361129f14f4b1aefd01185a3fe0c49f013dd96fc53d5e0c426559301a04dc26c0619740bd4eed98e73d3e9250829e5d95b25063ac7f1311918d1049e100bd16017fc8f74b8d0ce7f16db6861c1b227711d06bf7f513dc311e352313df4a2358b059ee4ca5843ca9dd6348d8a2d2f4192dade01a821d47e6e944b73d7a99b6e762e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd630724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f61b9d5a2a50c6d8a61acdf312b101a31352f3356636139aeb9593bce4d5ce2092004c37cf170d22355a2c252313a00e318136f39a3ea0096dd1ef1c2bb8c26fb525edd8763b0e9f24ec8bee196162f82280e8709816f727bdb7fdac9abcdb63e01de7898ca0b76c5ccf8ea31d9866d81454a22428dfdbb89c3b361d9f92cb08570619740bd4eed98e73d3e9250829e5d95b25063ac7f1311918d1049e100bd160361129f14f4b1aefd01185a3fe0c49f013dd96fc53d5e0c426559301a04dc26c25edd8763b0e9f24ec8bee196162f82280e8709816f727bdb7fdac9abcdb63e01de7898ca0b76c5ccf8ea31d9866d81454a22428dfdbb89c3b361d9f92cb08570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012ff579f0bb88cfaf75b0f802d2077a76780fcb1499e5f3af9af524bc942b7436328dcb4e8a26de0e6a391fb41c8dc557bddea5659535af451a2f99aadd88dfad0be6ced5d5672a8919440af5a6e94bed533ee7154589f7e2681a495d8850a2d71873b10c54a22568a9ac8d715f662e638f91cbbb52dd8bace82f052f9a26919406274fdc79e8ca62631790d0d79ef67699c81f38b597ce5c56def747fd40a1782d16613becc47df0ad0e7e6275cf77adb35e8e078f4acc774b764cbcfd540f5827a1e6442a4558166dd01b02b9c31272a13313ef48f6adf04a17d57449fd5df504dec39cacc5b95c2b7a3fa2842f87d4185abad520b3493c9736571f4f145c0b12c9454f0f57ece7b62dd7d28bf9beb7fd66e38f073b7a1b8535cdda683c1e4d30874a7b797469d90a42c0f55f2e639d797f56ffd5c8acf8c4f235f9fb4ed2e224669a476f804f35f7aed0ef0072fc512eb40ba0b7b3e7b209216ca070e9adab06845db3766c41f13f6a7c606e642a2e4b8685649543da3434a8d998883ac3f5347f540fd5af4d3a500fdd5a83f88c0f9ac93b47b07e95a02571e858ec24ea021aee2378b3e7dc890d97efb0288340074c9d149802a83d700f569778598e2dcb1ef6c85ffa37bb9088068156cfa4fb6ee2c9df6437dda4fb235d27142e8e804d3b61ad13c4c6dd944c955d818b6a5dcb501752a537a356f7d0792f4606f80f7d33d73fe3935457f45159a611c6e9f8ae2b74149f6c91ccd715fb2c2d8289793125d4f826119d083c98be6b2fc177e0a358ee5e85fa42425622f027d0e1caddc21961932c86c70d27431b51514f0a4e8ee6d185fb5db2d86e2d066bab217aefa8269e6cd37938f2d8bce4aeaeb0f5b1713b751300ab9a20ad6c26c541de8510593ee7dfdea1e341c44f8896968b3388ca5fd104eccb31410b47f2e96aa766ae47011820215e1cbe3bb077696974cc7735c275940f3e1bb810513a4782589951ba3a875f59297048d58daaf0f0b801abf355fab4afd2c260ca0309cb614501675f0578a0a6d68fb72a72550f0f47fe540ccc4be44c368a98519623658bbafe98a224a4dcbdcf316c2bc456b4b398085bc024cb237ef897ff83aa7c3532590704d71b5b234230ce93d43ba94b4c67f7a43ffd7b757d10b4f997eeb0fbbaa6f8fb2a1961932c86c70d27431b51514f0a4e8ee6d185fb5db2d86e2d066bab217aefa8269e6cd37938f2d8bce4aeaeb0f5b1713b751300ab9a20ad6c26c541de8510593ee7dfdea1e341c44f8896968b3388ca5fd104eccb31410b47f2e96aa766ae47011820215e1cbe3bb077696974cc7735c275940f3e1bb810513a4782589951ba3a875f59297048d58daaf0f0b801abf355fab4afd2c260ca0309cb614501675f0578a0a6d68fb72a72550f0f47fe540ccc4be44c368a98519623658bbafe98a224a4dcbdcf316c2bc456b4b398085bc024cb237ef897ff83aa7c3532590704d71b5b234230ce93d43ba94b4c67f7a43ffd7b757d10b4f997eeb0fbbaa6f8fb2a1ec72c0c20573b5141e5d40e17d7293f3bb25cd5f92b26d68aa789660ac49eba06b8d7221f316ccd211c30eca2885f3786348b037a8ee4b5e05159fa94c46c3c3d59014f69be98d543ecc610bbc474da4a8b39c44545a65c5ee2e50b2743e32d1d26fb8256b8bf0c591134f489dc02af381b105a599a404e687e996e393311e0287bd883b55b35450ec49422bdfee8fdcdd3e4ecc788cc255aa02c2508ff39cf1f59c4fdd1c19803734be79a78a02561b7dfef291e91b238d3f0bd788c2122ba34ab22fea15d89c74a4ca0d1cbdd19b18c8dc4699b5e6d44a70b9e363033d8121dff3c5197fd00d1d0a0de7643244f7892ab4a9b26b3f4238af227929b22c0733ebbdef2711d9803441a84e31a9d5ceddb174d378971a5aeaf3f8ea84a27c794154726d1e457b749e5a32d9cb269c17087add08c554ac6163f1ba6dfbda977f406b8d7221f316ccd211c30eca2885f3786348b037a8ee4b5e05159fa94c46c3c1ec72c0c20573b5141e5d40e17d7293f3bb25cd5f92b26d68aa789660ac49eba1d26fb8256b8bf0c591134f489dc02af381b105a599a404e687e996e393311e03d59014f69be98d543ecc610bbc474da4a8b39c44545a65c5ee2e50b2743e32d06b8d7221f316ccd211c30eca2885f3786348b037a8ee4b5e05159fa94c46c3c1ec72c0c20573b5141e5d40e17d7293f3bb25cd5f92b26d68aa789660ac49eba00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000105b2b8cac3cb8cfbc14ff449881d981bb4b3fcfcbaea1fa63c75a212dd0b2388273cc86d024a00b9e3071db011fdfc788f98aea3da2022a9f6e9f41aca533aea08be0b715878d1726ea9013f66c498be9ab21316806ec537a6e58d451e1d64071952c9effbfd3114b461f7a06631b5c2a4dfe22355024ab76b489917b661f5093290bafbe8769e576919bafbf26e4c5a2216c342c615d04fecf3cfeeab0e90df2980953d958ab8caa309971169538b7826e921ed5e842cd9e39bae8a749f81e2294e0417c4edfb199149746a0485bb8d74ca9ab58cfcdee910bebab5523946181f20a35155c57048ad58fc698f6426343bcceed063be47ffe3384e221fa350bc3e36731d652282dfa0ceba9f7f935a1da1e93d6b7c8394ac65dc93d4225ae4103c0ee34d4e9ab49c206d22d3410d91eb3a2ee92c7b44bb62947a942f50839436373cef41aa80a5158c81d4e71e0c722fc7c88e2b3d7efc046ea9fb99fff04ed62e1090a8bc13dc1a1acd3fd53c23399284d384eb8021383fd29e8d08b620de313021b59b996ef2bfa601d9cf05d1bf710296a6bf495257b7b3a3f8d26f9086671f4bc1ecf0283703b7a5f33ba6aa0ca5e4cfa92069d47b58812486fed6229166382ed65cfddcfae8c856654c969163fe2db96d13a9c3ef71f77333a228f279540e4f0b016669607bb3b212e029f61a1d15f241ce45e712c66d47a95b30e65fed0e41aa4f5dae64783560862a74598e92a386434e8ba66d2b740f1fbf2a56ea432db6bdc8462d89954464c199addebdaecfbf583129840f03ab6fb95302ba6b9c10af26a590440962b4cea4ae015489f620f21bbd6dcaa8855c78e49560062fcd2f50d95a6fbbf69d4b315b51feab760a01547d3e9b8250963cb44c579ff9d034136bc13bd1542eed8809376606a6b1ce8273f1b71ba8517f352f45fde01eef002c943ec42eabd11277f6c899f9594e319fd2a744eda4a79c63fdeaef1fe11101211ac62b16a4eaa3a82e14fe2141790869fd1f9780fc9e6070bf2d08609aaaff1ee539d4e95b155c57d1eb01debe86f7b849796488505abb286e03e49f6555022585ded77138953248e668f6a6475d29cd646bfd725525ab01617f4fe30556f91a7a21288ec76acdb719970959b8a2d654e22cfe96f7d37097cbb19d1cfaa90810af26a590440962b4cea4ae015489f620f21bbd6dcaa8855c78e49560062fcd2f50d95a6fbbf69d4b315b51feab760a01547d3e9b8250963cb44c579ff9d034136bc13bd1542eed8809376606a6b1ce8273f1b71ba8517f352f45fde01eef002c943ec42eabd11277f6c899f9594e319fd2a744eda4a79c63fdeaef1fe11101211ac62b16a4eaa3a82e14fe2141790869fd1f9780fc9e6070bf2d08609aaaff1ee539d4e95b155c57d1eb01debe86f7b849796488505abb286e03e49f6555022585ded77138953248e668f6a6475d29cd646bfd725525ab01617f4fe30556f91a7a21288ec76acdb719970959b8a2d654e22cfe96f7d37097cbb19d1cfaa9081dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb0b0b59e3d76049a3cbcc543bafb2590ac18882a0454dfa958b5471d33d0dec0c0c2b75fbbe433ef24de4054a1dd9f66a53f2af49bd4023946d9757847ed174641c2e4ebab1756f0f23f502c605b001645fb9918dbd52634ba85793651b5f2f2c0a334d4c31960a61c9844aa2a55418924f410c8ce6bb75206c10b6ccadee8d3b2ffd27410ccdcfe329ef02841829f506167fb6b8093ab9645e6cf50c6372453900d80c97a5ca3f42024809990a5e4078724776135e9285751f43bb068f1f5ed12e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b33ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba0af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb1dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970c2b75fbbe433ef24de4054a1dd9f66a53f2af49bd4023946d9757847ed174640b0b59e3d76049a3cbcc543bafb2590ac18882a0454dfa958b5471d33d0dec0c0af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb1dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee19700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000103faa7143dfc81ea6c0725fbd6cc165760bcb5f95d58ab194f259f4c8ea0c6e12e7497a9a6b8da38b53da1e6b0e170f840f28fee3a3ba2fdb023793353b3b3592d98812b6b5c7d202fcaccec7b8efffe4fd6d2260ca4dacb8c14a992ec4e99a93523fff8f12408db029c43d72f02f48be49667ea942ca4d71348f4ff25ac5a5e3e244f7265f4f5a20b85d3ea3057a1396e973d7b526b008c89ac664a0deeb82914c67838700d39f2cbbce3e75aae415a2b04b8afcf0e882710684bc05f6f2579163d38107ac89366ef9376f7db904855d91ed7fe63834c5c36ab59ec99fd3d6225e315305c203defd506d80bd61c5734ef12318482a8f0d4276526d7efa118e51f2584d8f3888269774fbc5950bb158a246ecfb87855e87f9ce732532ece40283f63329cbdd5ec86fee116a15725aca1c85a34208a2539e419fd46198ad176b63dbe495a5f1befdf04a1b1c3d1d5a489b850a41981e61ba7ab4d8bdd4fb63aef14b7cee9a3976e0e32eb602445670d1287201a70f87e981671519120d5e9b789373858ca46f01f4394e5158a070d9c12ef2f9a77e73a8f611e7f2f318b149a1d18351ebe42a70a7fc8c2b780a56e3003f836b567cbec43af1649509fba9e7db0064cbf4b3016d0c25c7e2e6615c05c3eb192491b7357eb3474e117d946f69ef528964428b973dba2257c76cc921713e8e23d152b63b549bf21ed56300a3d8d2b376092171e922d60bc89ced9c627be04a1b82ee83f17a7a2b86e0ec9bd56ae161ea73aaa503384a817580357370eab6b7d3b6efbdb01a5b28d467541776a1856307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab21307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab211d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f31191ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a33e487bd6867df07d9ec1655272d545d836af65b6e200b39c8a448d47b53f7bd123701802f019376baeb767fee133c1f3dc99bb5c30df62439261b00de2d7c131fadffc2b1154b6729eb1fbe7e0fde2dae0bd0b60207b2e40ecc3f5492bd3c20163a206aa9162cf827adc731a5cdb7db8fbc61aa5764c85a123a61e921fdf31e328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff41daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f2e26f67ab7b96cbd66298cf342505f2dedb559fa4be2273dd01899d6c3abb17105f957432b4d66c307dd8d7a9f77a65b49b53376dadd9b2290ea826fd6568a541ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a1d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f3119123701802f019376baeb767fee133c1f3dc99bb5c30df62439261b00de2d7c1333e487bd6867df07d9ec1655272d545d836af65b6e200b39c8a448d47b53f7bd1ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a1d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f3119000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001129ad4057bde586d4b233c58ecfd98bc4cf60f80e032b1d8e3f160aadb80afa7322ba21b19df597346bab1b232449876bb877544fbd6f57eb66e0be2a1ddd6fc324e8bb5dde8126175b7fe32eb5f3a5736e311ed109f1292acb290d2b4c7451a3add579a45b98bcfee30a2b51a9b31719f22c19ecf86a7a93f59662fafe0884927843023c7959ddb9d9fa62fb78d13c0e4ccc18033bca5356f2a45574f618728068a412297b3e04c0fd5db5fc35b349eb80b47829f69150d4eb11ffe16e2cca523a54087288325c870fd71523d0540e5acc6ec843ec35cafb82abe9a08d418520ccfa34ba028202d654fa57d4b54f358b2d94da43329bdcdc2894affb0b715fb373cc4bf79036e40b10c3d05b43b8c0fafea7942426b5f56ffdf42d48447883b3019a6d3141507ba8209e62cd76a753cb43da13bbd815e5e0ff73d4677e3ad7329a6c580ebfc4ba615d758b53835690f42b7e31331e9e546365454722b038c100abd62f2a760a7af316240ac9599dd603fa6aa364199c26e0e61cb8590bcd5392b4d94fdb632873510ae475b6cb4b5cec5c33b52bd8d2cb475fb16712a05964f241fe28ad364a28e4cf985af3fc7164821a3148cf599a65bbecd69601bad817e3ee49991f5ca60bbc106de59c9b47af3e5699e14b851e33d272cf0b3d30aeb820d0b1cb26a947654ca74c13b63e1cbad3d9bc939d41ec1dd5ba448b51f0569b03269f17c53abec81b015ec02c5de398817db92db89b356e80ffaa379d672d24303eed6599963ce4ab7955bdc3c3a091cafacb2bb84595bc9d4e4ab7366a2467424fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a6021551b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a707121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a1ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec20f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f0463930c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c824fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a6021551b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a707121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a1ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec20f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f0463930c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c809e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f10022299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c37ecb8b7278ef89d6864ef9dbf9021f38c404e2dd31c721606d7a5bc8011efd5149786017ebe61cd3033d4fb7f00cfc465a497b1464343a1a46eb7f2ed9b5de00168feb3ec5487731f5a78c05dbf2354012ffa5efe36b383af6c5d5787f595aa2368a8d9f0df500d29c787f59bee3d31a7284c876cd8b378363c8b9485c4beaf132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c83614840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d3126017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e17f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a66373299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f10022149786017ebe61cd3033d4fb7f00cfc465a497b1464343a1a46eb7f2ed9b5de037ecb8b7278ef89d6864ef9dbf9021f38c404e2dd31c721606d7a5bc8011efd5299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f1002200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000127d9a11a1346b0c8207d8123e198121c7449ea9681d843e6f151d0dc93d2ff900f9a88c30f1b87df9ac76e59de024fe9ab35728181948abf2a96dd729623d06604fb6f4b9d1c6139dbaa8cb0683ae711f1613224da9c7c589efbb85ed84bdcdb045708edd29a5a59c410ae9d02ade76927c1218e07689725221d9a8edcde6e6c22b9055b4171a7c84688b08b47e7a480cb1cb24ba676788b4f0aa5d5f477a1690fd85d5b0459d2d8364dc03d9164d30fa26ceae5868285d65f012a8b7de34df92a329c0dd0152b92baf13e28276b29d1db4501433e788ddec920e166ec9ffee431787fd0aef86e99bc082cf8082a63f676d63f7ce65c473eea3aeac4a753ad332c66a37920ccb3e03e553d61f2dae9e9ae0d84fcf57f2ac35763bb340a064010170e682cadc511fd3763d6eacbba3e92451589ce14b2f4c824d13fe538f54e031e498a3bf3b4a5c65aca015a4f18ac9dd3bf8a126c13c2827acc82c1214d240d1c60709e89b8ec0d280a52ef346063d1226225d1daf9e9af56513f094d40286f387aa014d50f83870ac2d98843a1e74fae290a110fede75636b7abd7b78c1b2d16f2d773b487a63c52e4f38268d9e4c7393d45cea338ebb9fe10d3f98e26fca02d42a4b61cb41c0382fcfee97dffb49fc4565854b50a17deb5a9f9151f40ab1626f27d0ec5157f7ef8c87d8c2796d3cdf84cd7f45ff9a8b26164f57f8390c3f62a08f7ae479289bb3daddc32ba543552ea3720348a33f3af3c3764b32ba296a1202b428771f5a59cfa079644dffeb7d9b92dc35b61056335420d1b6fd3ca53072536d7ae9327c01d3159ed3ae3849187e4fded6c3b9bbd494a7b15ae78e51dfe1ac928516cd83fe2cea612c51c7b6e783d48ab8fcdb13bd24eb21b3e871ae2033a123668dfc6c091f6c1a2267196d7a7346871251770c037420d0a8e5c7995f405edc99720393f6e093e5dd98e692858edde27d6f1dc38e45720265ea3866a0d225b100c5ee1c2d9d1c82ac037f236437cefd1c94fffdca5e58c7113ce5fedc01da4eff3a11e3d262e37d53fc80dc9bca556c732b94d1c75b3a0bfd931a012412bc7503dda68ce4118e8d5c117bb0f512c21e6f67d655d064963d38907dfa4be1438afc2259731bee7172a3ee844f0aef624b2058be79c154fc95d63f8205b432536d7ae9327c01d3159ed3ae3849187e4fded6c3b9bbd494a7b15ae78e51dfe1ac928516cd83fe2cea612c51c7b6e783d48ab8fcdb13bd24eb21b3e871ae2033a123668dfc6c091f6c1a2267196d7a7346871251770c037420d0a8e5c7995f405edc99720393f6e093e5dd98e692858edde27d6f1dc38e45720265ea3866a0d225b100c5ee1c2d9d1c82ac037f236437cefd1c94fffdca5e58c7113ce5fedc01da4eff3a11e3d262e37d53fc80dc9bca556c732b94d1c75b3a0bfd931a012412bc7503dda68ce4118e8d5c117bb0f512c21e6f67d655d064963d38907dfa4be1438afc2259731bee7172a3ee844f0aef624b2058be79c154fc95d63f8205b43235b5f0d6a17565734c6c297adb20db96542cc678885f50ad8c48986405d7d6b047780b393c9324d25d3cf2c8399bf9cb8b67dbfc80f7d2ddb11c11af25663f7075b39653009afe58d1a961603a54b8d15568374b04917877bfd58681d935c2010d1e6d9d215c776184ad825cb0ee71ceef6cb60086e6f5b69598de3afb8c2800be4ad38b63252cf522e79cf1172ea5b6203471877c931e56d82a593fcfacd0d32513673718a90eea7455c1ff3810b1de027cadb97bf44267bda36f5bdeeb14704ed39a11be374a6c61c5e56b99bfcc18cf3844790a53d75fbd6e84fb2bdf573150a02f1be7f1ef6e5d539f61024406f5775519521d6cc7c9950525f5fa4aada0c42ba95e57d85e81e62e43ece358248321ec92aa5f4b75b78640b9689961a6a1d8394ba2e4adcaeaef721748559b459a82e03b51fc3c9ede424d047bd7ed5f2047780b393c9324d25d3cf2c8399bf9cb8b67dbfc80f7d2ddb11c11af25663f7235b5f0d6a17565734c6c297adb20db96542cc678885f50ad8c48986405d7d6b10d1e6d9d215c776184ad825cb0ee71ceef6cb60086e6f5b69598de3afb8c280075b39653009afe58d1a961603a54b8d15568374b04917877bfd58681d935c20047780b393c9324d25d3cf2c8399bf9cb8b67dbfc80f7d2ddb11c11af25663f7235b5f0d6a17565734c6c297adb20db96542cc678885f50ad8c48986405d7d6b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001201fa32b70a5354ac9ec742d499009f3300ae07180bf3fe7823a2ff1d3ed11cc1d73f6431154cc34ef67ccd2aebe8057d0a07d89c811a4f466f2e58bf5cca9280b9deb39e867659a048902f746a3d92f3e57fa372153b6541a013ebedd7ddf4a07bea451d610de24d841a81523abe9da9c3d1eec59cb21c472059ae0320d66c92664546f89a48810da601561987dbbc1ca3d75b6d6d2066cfa33f15e31ca1edd2da3bc938f5da0fc79b698efea8a3412a4f015065f32b6f74217dccb2f7d766d3a013818ed9db718b7138bdbb1d95cb602e761b035553e619b414e4b808e262922e0b56edced8b072b8f4d16396c0f3a62544d0ce094786cffc4d9bb63ee494510571165cce3c00e4ab15fde1ecaba27103c18aeeadee569ba3e8bf7042a0df2322ca10e6f564afd4d47d85bd7adb4ce5b97d122e6be3ff254e78582da043856355732d2afebf79b7cef9fe3fd85d82aef90ab3284acac1b0747f74973937e5d06f26679a38ea31b1d24d86f0936f55d39ea8972ebfbc1f591c29850ad1ae6b936c00d0e24a829b04a4a54e138a23a62a2feb06c0ff1c6b9ff6858f6c16220fb18ad6a7a64ef0013135d782973d991b444679f73a3350c56356026da8450f6d20d330e2a612e898bad579c42074294b6a6992ccdb3f335f326fbb4858feada252a4eae85a9de5e9a80884e1cf813ee0f5162831c9247e903a51f701ee5e316ef397ae214745c156d482a4e6c218a5d3a1f053534e766cd0843509df325862dc416db28a3eaa95adaff71688ed2182631416daa0fb4f2e3302d082e6283a1674d2f50d95a6fbbf69d4b315b51feab760a01547d3e9b8250963cb44c579ff9d03410af26a590440962b4cea4ae015489f620f21bbd6dcaa8855c78e49560062fcd2c943ec42eabd11277f6c899f9594e319fd2a744eda4a79c63fdeaef1fe11101136bc13bd1542eed8809376606a6b1ce8273f1b71ba8517f352f45fde01eef001ee539d4e95b155c57d1eb01debe86f7b849796488505abb286e03e49f655502211ac62b16a4eaa3a82e14fe2141790869fd1f9780fc9e6070bf2d08609aaaff1a7a21288ec76acdb719970959b8a2d654e22cfe96f7d37097cbb19d1cfaa9082585ded77138953248e668f6a6475d29cd646bfd725525ab01617f4fe30556f92f50d95a6fbbf69d4b315b51feab760a01547d3e9b8250963cb44c579ff9d03410af26a590440962b4cea4ae015489f620f21bbd6dcaa8855c78e49560062fcd2c943ec42eabd11277f6c899f9594e319fd2a744eda4a79c63fdeaef1fe11101136bc13bd1542eed8809376606a6b1ce8273f1b71ba8517f352f45fde01eef001ee539d4e95b155c57d1eb01debe86f7b849796488505abb286e03e49f655502211ac62b16a4eaa3a82e14fe2141790869fd1f9780fc9e6070bf2d08609aaaff1a7a21288ec76acdb719970959b8a2d654e22cfe96f7d37097cbb19d1cfaa9082585ded77138953248e668f6a6475d29cd646bfd725525ab01617f4fe30556f90af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb1dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970c2b75fbbe433ef24de4054a1dd9f66a53f2af49bd4023946d9757847ed174640b0b59e3d76049a3cbcc543bafb2590ac18882a0454dfa958b5471d33d0dec0c0a334d4c31960a61c9844aa2a55418924f410c8ce6bb75206c10b6ccadee8d3b1c2e4ebab1756f0f23f502c605b001645fb9918dbd52634ba85793651b5f2f2c00d80c97a5ca3f42024809990a5e4078724776135e9285751f43bb068f1f5ed12ffd27410ccdcfe329ef02841829f506167fb6b8093ab9645e6cf50c637245393ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba2e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b31dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb0b0b59e3d76049a3cbcc543bafb2590ac18882a0454dfa958b5471d33d0dec0c0c2b75fbbe433ef24de4054a1dd9f66a53f2af49bd4023946d9757847ed174641dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012e7497a9a6b8da38b53da1e6b0e170f840f28fee3a3ba2fdb023793353b3b35903faa7143dfc81ea6c0725fbd6cc165760bcb5f95d58ab194f259f4c8ea0c6e13523fff8f12408db029c43d72f02f48be49667ea942ca4d71348f4ff25ac5a5e2d98812b6b5c7d202fcaccec7b8efffe4fd6d2260ca4dacb8c14a992ec4e99a914c67838700d39f2cbbce3e75aae415a2b04b8afcf0e882710684bc05f6f25793e244f7265f4f5a20b85d3ea3057a1396e973d7b526b008c89ac664a0deeb82925e315305c203defd506d80bd61c5734ef12318482a8f0d4276526d7efa118e5163d38107ac89366ef9376f7db904855d91ed7fe63834c5c36ab59ec99fd3d623f63329cbdd5ec86fee116a15725aca1c85a34208a2539e419fd46198ad176b61f2584d8f3888269774fbc5950bb158a246ecfb87855e87f9ce732532ece402814b7cee9a3976e0e32eb602445670d1287201a70f87e981671519120d5e9b7893dbe495a5f1befdf04a1b1c3d1d5a489b850a41981e61ba7ab4d8bdd4fb63aef18351ebe42a70a7fc8c2b780a56e3003f836b567cbec43af1649509fba9e7db0373858ca46f01f4394e5158a070d9c12ef2f9a77e73a8f611e7f2f318b149a1d28964428b973dba2257c76cc921713e8e23d152b63b549bf21ed56300a3d8d2b064cbf4b3016d0c25c7e2e6615c05c3eb192491b7357eb3474e117d946f69ef51ea73aaa503384a817580357370eab6b7d3b6efbdb01a5b28d467541776a1856376092171e922d60bc89ced9c627be04a1b82ee83f17a7a2b86e0ec9bd56ae161a6142eabad9ac1231abb2237fe06e217b0cce090905d80c1b5ce78973f1c619259ebd15452653edce544ddc801f91dea739caf30047210f7dd049638c0e39e803e64e95a6405c5af85a7ab17f6226a722b2d4351a834605567623d543b8de7b3c19b16a59bfa3a507a5854e809dd958ff93c4c6eec9b31642b70d17bc472186137f88ec3f41cdc6d9c465777ceac143ad7e250984905e1ab04eb32a529c58672c807713c0be3239263b9a8883153ebc74c873f284bc9b00e8de7dc2ad63a79a217dac9d3c4904e240d5fb557095c652413020338d84dd69d85c4ee69d0dba021e825362c3b6fb1dbf2a04aa8f6a39ade11678c87bc81bb1c0d0e20662f245ff1a6142eabad9ac1231abb2237fe06e217b0cce090905d80c1b5ce78973f1c619259ebd15452653edce544ddc801f91dea739caf30047210f7dd049638c0e39e803e64e95a6405c5af85a7ab17f6226a722b2d4351a834605567623d543b8de7b3c19b16a59bfa3a507a5854e809dd958ff93c4c6eec9b31642b70d17bc472186137f88ec3f41cdc6d9c465777ceac143ad7e250984905e1ab04eb32a529c58672c807713c0be3239263b9a8883153ebc74c873f284bc9b00e8de7dc2ad63a79a217dac9d3c4904e240d5fb557095c652413020338d84dd69d85c4ee69d0dba021e825362c3b6fb1dbf2a04aa8f6a39ade11678c87bc81bb1c0d0e20662f245ff2d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a0b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4821da14ca1a199664fe96c00dfdadc6f774cb0099050339947762320acbda4f921298a8342161460a0a63944925900c28283b9c6ae2cb874a22758361d7811b5e63af4d6266fcb4016eda88f0b8382f0829b30347c5384622320af607712e403341ea98dd2ad29467824de238bd178f586fa625f611b07b7a7fd42b73123ce40682e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b33ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba0af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb1dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4822d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a298a8342161460a0a63944925900c28283b9c6ae2cb874a22758361d7811b5e61da14ca1a199664fe96c00dfdadc6f774cb0099050339947762320acbda4f9210b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4822d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011fa50446e895affd0c882ffff31e6a129f7497fa47c50d567465bb5befd0d9311a7f80a864a1db5e1e1817d3a45978ed1594c742ff1b0e87ba569baced13d53334053265fa7428b94f366826202e389c7d81035a35044d91b62acc62728eff210bcac40c467248b59e9d337db61e5db8b06a5e50a4bfb8d33f271f31bd332e22289139b492aea1152c45e2db3c3351edc39b126ca2fcda0968b9ed647987dd87174165f9a4ad6683cdbdf9ead43c1106981bb64c0703586797e455485d91b4283efda4a93da79866e0375520d44df8fe385b98e9f88964fe96c63b0c2e6555e20a548a884c6a1c01a6948d07121ca6ff38daf0c134ee162d4e1169a331d0edf90eaafc81c888770de760347d3b2523e747f1366dc7ec2342fb2a55dc52fa602724dde2bc5dab69ca1a4195896926ef3279e5b00eab69a3cdd973e6538c1a2fef002847ff9ea73b089e1e214cb762f65451013e9c7a29d6121e67466780287939345e18629a81357b28d58efe1f05f349baa04f9fd280f9843c365550cdf1c0542f8004e8de1bab07ad4741ab68273f2a3f82cd0b6ffbb85f3a7b33c67c2725711fed729fab7b7ebbb0608b5f44548ceca7e382d4432b1ab0fa4d4c0ac98bf25c1670fa54cb87976aee4ff43710d5e274cba69ff154acad34afa4b80faca8887c2eeb30abe3f935fe2871a65bfb56be6c63d6fc9b20a138a408d01f39c4f332e11fc34e82227bbee0824d3e890145c1852bde95ebfc50b1ca27225ae73e3026bf0f4f9323cea9f65187610adb5c151c24ae99cfe3e0b4f2e1ebd36f43bba6d8c107fc67f0d2530e47f91f36ded523f7e7013069392919e4978abc6e0f780c038c3803980f2dacf1b806e0c9212adc081921162fc2e03314840e70c2dd87f3fc7527ee07b41b9f4767dd9c125a29b3d78305f20e1dcd8176f5b5ae264d583c11bc1811f84be460b8982263eda5d64c287d1c548ade3bcb8225e37f0a9fa7c3ee4507a626848a1c6507540c5bc2d083358eb6e67ba0e7a06779c0df2cbbb92c58a93859d97b75e39af8abf3a43d2f7cca716b601d5b21ac91a1d84e043146d3a758263ec096b28df924a43dcace12900bc992806a2486220560c45bdfaa9dddbb4d19c13f694d7206db5bc23531ed6ff4368fc62ed7832af3bad4d15142622244b407fc67f0d2530e47f91f36ded523f7e7013069392919e4978abc6e0f780c038c3803980f2dacf1b806e0c9212adc081921162fc2e03314840e70c2dd87f3fc7527ee07b41b9f4767dd9c125a29b3d78305f20e1dcd8176f5b5ae264d583c11bc1811f84be460b8982263eda5d64c287d1c548ade3bcb8225e37f0a9fa7c3ee4507a626848a1c6507540c5bc2d083358eb6e67ba0e7a06779c0df2cbbb92c58a93859d97b75e39af8abf3a43d2f7cca716b601d5b21ac91a1d84e043146d3a758263ec096b28df924a43dcace12900bc992806a2486220560c45bdfaa9dddbb4d19c13f694d7206db5bc23531ed6ff4368fc62ed7832af3bad4d15142622244b4174fbaaf88be79d412b9672c9d372a7d2fa63a6f94bf935c8b22a38f99927d5421fb658f6072cee97b6dab3dcbac82009de512e271ab489886ab5369ed4941f1349a6923199a3b527343dd168fc0c3443c3898792a4ab48ef884d6895f3b63a4121a769dfd347beffe95107f075b903e3ac94c2ce1e461b32807945719e8dd1a0d59dd55308f221e8b7b9adc30ff608a8d3a58f05c6accbda67dc57cd7b9e0ae326db10dd5a7b1765db5e5acedf3cee26786f1363634c1a634a356a0e08b822a04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a0427665ed95b17a0576af512ebc575a225cca770747fc11a85e3405b33ad6bb002137e04dacf9afbc347f2bf066d88f624070fedb8de8410940ab528ab8fc49c21fb658f6072cee97b6dab3dcbac82009de512e271ab489886ab5369ed4941f1174fbaaf88be79d412b9672c9d372a7d2fa63a6f94bf935c8b22a38f99927d54121a769dfd347beffe95107f075b903e3ac94c2ce1e461b32807945719e8dd1a349a6923199a3b527343dd168fc0c3443c3898792a4ab48ef884d6895f3b63a421fb658f6072cee97b6dab3dcbac82009de512e271ab489886ab5369ed4941f1174fbaaf88be79d412b9672c9d372a7d2fa63a6f94bf935c8b22a38f99927d540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011bbf3756a9f9137394503221961b99e063883a1b8d8cf15eb126df0ab4b99b703b6b3db1313d01a06cbfcf2c961bb7725a04d6885e354779aea97b5820dd58a11bdabd6bf3eb9926845fd71b5a35af2bdc6c5000721b1a2344500a9a0dbc57c90c94349c8fb28e09647e7391f2d2535ced0e796b3988a2d336cfd0379fc604de3f13e25998af91a499210fb3af909b80bbbe28f97a8c2820b0bc1a3d2fe5de261a3e7522d105b19c6e63a3749a22130d9feab9d7f21636c0d853b06bddf5742f175c40f7543e9ee9a0bbcccd1ad15953fee4e303bfb7a55eeb45c5b114b63bbd3544718131ce48bc9ef81edf124a682dc92f7d080b15ac017c3850e090802fd63704349ab2f7238b51fac6fd5ce3aaab5fb4100ec041b475c1fb1005761bc8a330f3ee57361cc25a628a806cce8918ac6075cef08a0cc0d47a23fcf8e0ff6466060fb666f280ed2b28526b82efb680a5d8b72fce5833e351bf281e921e54da582d7156d67488d686560f4d8fffc51227b9beb7d98f82193cc40415be69d6a7f50c4980c4acb1fb2ee0028e1685cd66f2cf5171b1de3498929e89a0d62b0cda820323f6c3dce52e947da53ef426ae6523f5ce4531cba54161fd11ae0e1aa63d4a277fc0e234ad623a406a778cc3ba987d28d14dbb279d8aded15317d8f5b40e591270c6caa7c1c0d62149cb576c34a31592af30cd7405919bce022b14b3c424a1008d7e75d5aeda56ee67429e32f0bae244bdcc9573fcfe766039316f579203b80455d0cfb8fe2d22d6a4d1b48a76e9807ac65a1e245a103ad1a3e25399733bfb00a31cd9ef8679794deeb656fd6b01c97550149e556476b314244fb708d44fc33f5ce32610798686b21149a90294fe36acf6845db3e882688508e135f72bb03e032f9041ada05f5e85a98fb2f31708ef4a906717aaf6517f64b58e932c258ecf3cd06fbe525fa0a17a56704d0ce8f710d7b631e45e56a79c3477a259d3da71320fedd1486421dcd89c4fce7ebf732cac74d2037656cf977cf78bc8dfdcbbca0b30122eb79bde232763b03181408cd353ad749585b27d619ea1a1680d234435f60fa51669f4a9503b0d8f0879bd3fdf5e25d37853a8c0fc553c8dbb724faaf236305ae9960b56afc4f270f78642c020a1fc7320a8608bfcc65c9f757ab0550dcb00a31cd9ef8679794deeb656fd6b01c97550149e556476b314244fb708d44fc33f5ce32610798686b21149a90294fe36acf6845db3e882688508e135f72bb03e032f9041ada05f5e85a98fb2f31708ef4a906717aaf6517f64b58e932c258ecf3cd06fbe525fa0a17a56704d0ce8f710d7b631e45e56a79c3477a259d3da71320fedd1486421dcd89c4fce7ebf732cac74d2037656cf977cf78bc8dfdcbbca0b30122eb79bde232763b03181408cd353ad749585b27d619ea1a1680d234435f60fa51669f4a9503b0d8f0879bd3fdf5e25d37853a8c0fc553c8dbb724faaf236305ae9960b56afc4f270f78642c020a1fc7320a8608bfcc65c9f757ab0550dcb3ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba2e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b3170b49fa45ed99ffcaf8036f11a7da96f3eb56355a6bc1b4d4b673c252a8f14e3b674a1b1f59259eb7e969b60f76d978f3840665a081434844ed7e08ae52a3490dcea87c142cd7194c851c76df44aa147c540709bc62f27ba33ec049f82126cf0bcfbb7d08c7af75c601962075b73bf4f6f7f3d7a8dc2e33e18626713e911ccc2d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a0b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4822ffd27410ccdcfe329ef02841829f506167fb6b8093ab9645e6cf50c6372453900d80c97a5ca3f42024809990a5e4078724776135e9285751f43bb068f1f5ed12e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b33ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba3b674a1b1f59259eb7e969b60f76d978f3840665a081434844ed7e08ae52a349170b49fa45ed99ffcaf8036f11a7da96f3eb56355a6bc1b4d4b673c252a8f14e2e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b33ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013de055bf769969a0d87c3732e7fc15d1476bb72f2d745244a1708a43a12c4bd50d3cad54271aec049264abf74889272d7b788d9f14eb8b09c44d1797a5e238a40019e45972881cdc6e800be6e6880fef95827e3d3d827fb1920179c642db899a119eed0cfdd4fb6fceed08e05e02fff939da308463a1a37b8c9c06686a7560511584be5a4fceec1d27f3e16e127815a558dfd6fa21bb13ef11315d1aa840772437b3714110b268d7517dd82fcc4648b1684ecdc7ccdf0bda0df74c936e81201022416c2a4523bd0ae53d3e56b25dc9e04384f22f76a661a5f4d6f6c283bcddf01ea6970ce8a65d0e376df7f6963cc9c27bf99992ccfa7f8cce50f82669f488983f7ccf2034516165fb7c25c10fdc51d13201f615afdeed22218b19e171fe2945337e319a24af782e7134704cf00b6a588479bd183aa88ebde651c0d64830b8df12407cdfa540b790da4c69ecc3034bde4ae9ce95d11049290a9fa5b5dbcaf8de33bdf4da489f0af5ccff1a4a3333f128f4aa09554dd8351e2c82592dc2d171762b0e6e2eb0cee4c50c1aed1a2ef72ce050d83dcb43145ec67755ccb69a75d70b245f0959d8c844fe518cdff07d849f36968e121470127449bd72b31aab3d40c2159fb3998dabc633be095bc345029beb8f3afe61f0fecc404c57ecff4c37f87d18042836cfe6d7098376209694fd930a5b0a7088b9a99140ba8fc84cf29f2b000a9617799cf1ab708a0697a20039ecfdc32da3939ea64e16a0fe27cf4c48e0012d5cb2fc345a38db8e47dc9a763fdc1c510a8c09a047d27d81450b2096e016162d30c4b65ccaff430a6ae8691b1502ed1df45381b89288e2a79f83e093ee643012cf3b49a33500bcf5951796e4eafd130452457a50ba7038f18dad0c6c119bd121f3d78fcff6fc4f34168a0d87690ea12ef1d6947ef5c11a7a96009be3a7f4ed1e0c2870300903b0cbe975f27896f15ef354c2678a5738011e9730511c580b1429c335cf0fd2ed8c0470b243a50d4925a62bfeee6832d34d3293a1317247c89f163cca30f02d1273fb8f4dbc5af2b6da7c1a9a0da11a25ce66998fbb8db8376210d00d0b4f1ea3bc16337b5239426dbbd8082fb3ed17352f315a93303b66eb182f2ff2f4b0e15c43e9cc84adc6bd92444a3e69481c35c3ec67d29dbcc49914e92d30c4b65ccaff430a6ae8691b1502ed1df45381b89288e2a79f83e093ee643012cf3b49a33500bcf5951796e4eafd130452457a50ba7038f18dad0c6c119bd121f3d78fcff6fc4f34168a0d87690ea12ef1d6947ef5c11a7a96009be3a7f4ed1e0c2870300903b0cbe975f27896f15ef354c2678a5738011e9730511c580b1429c335cf0fd2ed8c0470b243a50d4925a62bfeee6832d34d3293a1317247c89f163cca30f02d1273fb8f4dbc5af2b6da7c1a9a0da11a25ce66998fbb8db8376210d00d0b4f1ea3bc16337b5239426dbbd8082fb3ed17352f315a93303b66eb182f2ff2f4b0e15c43e9cc84adc6bd92444a3e69481c35c3ec67d29dbcc49914e92e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd630724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f61a92f6a61fce846b25c83d8fbcb76aa39feca1dc39a5ea305ae3ae246a618d0506dddf9bcd0c2033836249932bf3ce970b3c1b1026f23e8e76c0903e8382833220f0072591fd810e96d65b79ca90d674ac9a437419480fec57f01490c6a71f533cab6d197f17180e56399a722450928f6d9116af63172aafb8dac171d79684af25edd8763b0e9f24ec8bee196162f82280e8709816f727bdb7fdac9abcdb63e01de7898ca0b76c5ccf8ea31d9866d81454a22428dfdbb89c3b361d9f92cb08570552acfb4136a8687c086867198f336159a70e0de3347500c25c57abf0d8fec13c5f354a6809f5d8fc0d754f10b0845dec5a231524772141e6eba5461ed414fa30724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f62e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd606dddf9bcd0c2033836249932bf3ce970b3c1b1026f23e8e76c0903e838283321a92f6a61fce846b25c83d8fbcb76aa39feca1dc39a5ea305ae3ae246a618d0530724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f62e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012b848eb10e9fdd59fd8c4de2526a6ca06d4ddc1141e84b695ae562ed60e643353f04746b17ecc54f77bd72585a684e8fd03d61aafe9a442806af881b3210ae3510913e2f49daffcadbdd9040604f7943e36491ae951f3a1f3590c63cfe1b3bda025d6ea885215d0616c1ddbcc9104ddb5829422611d8c6bb4014f377b168c11106e0128752f4c77886ba5d531aef3d916a8c7f33926e7e7eaade0d218a0a580e1f15ab20061476ce9aa338bc3af0bdf901064f55847f47202dd4933248e9dfa503ead49eeebaed8b0c8887189ed793cdd39cd1bf2f728e7cd0a4de0ac40cc21f289d5c26146efbb8b80b7c60c0616da75959fbd6f33b39a419d96ae3b60da6ad3a3ac4d0b3c443c86f7887a73230bb95f13b18138a2ac748c8a3dfadc3e8bc4718774eef9ada6ce3f881138985888be874da78a7926a3102ce2685f60f8c686a31a581c646f4f1d9f4e275e595790818f819570447b99a4b0047f9064d1aa8fa04d882b645e0b51c301bbad7ce1792ca0af622b5c54b24d8709232705a9acfec3ee92f0b88019ea10d9a7586e27ae525219f3d5a6a7a1c0bff7083033722758f1084487d01958b22500d5783ca00e6f1c5c7128548acb7043557fcce0e90a23e1bb44fc94108eba44e98be22f7b693dd046de296c1fadb7659969a43894855f53edab8a35df757cbd4bf9ac2f5119c89a1b215c871c13693296827575bded2032c0c1664fc7fd450b1a01474530358a687391196c1a91cc37ca89931df0dc17f19a9ccc9665fb54d4f9fdce0598492b9c9d18b2d0c32a921fcb87014e0cad92b3188e3736946f3bf517c077eb5300c2b271757a63931e99ac339705544006eeb0e771c8c96b90c40ae83f8814acff3d4fb2f4155d01b0f80d5f3c097bbff911637ac71410e62c2bc976c257989f03cd75ca0eb4b0212a4b304979ee354022a9408538ebef19d3d436893da86760fc328c5a5adb1073a546894959209abfdd56d165e364547edcdaef51cbb5fb1b13034460a3486e5295310b24156bca40ad4e029a1c9bab81232510ae344a04e4ecfcbdc3c64752423a60ae6ebda305bf52b212fd70f5a67a5046ac98fa8de7875f1053bec6da67081a637e21980c23436285f1028f0a5985afb9536705721878a0efae65a2b5598cb52e3b713b02acbc9d7a23188e3736946f3bf517c077eb5300c2b271757a63931e99ac339705544006eeb0e771c8c96b90c40ae83f8814acff3d4fb2f4155d01b0f80d5f3c097bbff911637ac71410e62c2bc976c257989f03cd75ca0eb4b0212a4b304979ee354022a9408538ebef19d3d436893da86760fc328c5a5adb1073a546894959209abfdd56d165e364547edcdaef51cbb5fb1b13034460a3486e5295310b24156bca40ad4e029a1c9bab81232510ae344a04e4ecfcbdc3c64752423a60ae6ebda305bf52b212fd70f5a67a5046ac98fa8de7875f1053bec6da67081a637e21980c23436285f1028f0a5985afb9536705721878a0efae65a2b5598cb52e3b713b02acbc9d7a2305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe2ae365370673405b45f215f38dce27567140ad8f6ba49ea88e18629f6325aa0d1b8ff0c9a7809eabeb8f51554571a7d5285ef1a041b40a55e30ed8a0c3d2236a197c72c4ccb103b028475e963f041edf0457e1b288d586454f04237818425ece26bbfed82d1828baee8720e0a208b1b44b74061ef724dd8e083522442f783e5d02137e04dacf9afbc347f2bf066d88f624070fedb8de8410940ab528ab8fc49c0427665ed95b17a0576af512ebc575a225cca770747fc11a85e3405b33ad6bb0174fbaaf88be79d412b9672c9d372a7d2fa63a6f94bf935c8b22a38f99927d5421fb658f6072cee97b6dab3dcbac82009de512e271ab489886ab5369ed4941f1093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e1b8ff0c9a7809eabeb8f51554571a7d5285ef1a041b40a55e30ed8a0c3d2236a2ae365370673405b45f215f38dce27567140ad8f6ba49ea88e18629f6325aa0d093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011dedcc54ff9f8351efcdaa6ec489fe96c3dfd774d79f53cb0cf4019f0a8aa2530532b24d144d3df8ba1b3af03d4544bd45781153ac42a63204ab27fe6b75a00f32f77ac8b25c5a40abe9015f4e298beaa5500c04ac5b94af13987f6f05c3e35a314112e60cfb9df3a1ad299faaf948b7b2f9b39ff94ecd90163180da74d3865012e8c149dd24425feebf10ae7968aac15f0b348ab8ddf709bd8cb8dfb5c6ca182b22c84b4f41cae2815a813ad1c73f058a8274b49453da18ba2f4d8c75e18d922eaa03e6ae752741fafd4b581f181c03b6d05f38ee6391a5420da11814542b1c1918f11340d76730a9abb40005d27c1b889b09dd70649e45ac4f2ecc301177ee380d11ff0fe1d542bf123d5cc6f81f59de67cff0125269a7ba1433c1184f8b2e250c8b52b1c867d674f992ae911430cb08730f4335bce338ff7184fa67ffb6e30f9d0dd6783ae08ca32eb09ae4b96cc929f35599a5443c89a6b1271d7096131228156a16eda045b4dc01c9ad93531d98eea8d6662f160abb10cd8a0790615163077a1a83de64a9cfa4041f94361de7b0fc8c9918d1e0059625274bc295e9355507f35d04ab327ff3b9a3ad76765de465c8931dcad7f9d45e76740321afc9e27733db4b3d90175611854ebe74518b437db8d9cfb5a17ce43676660c428005a4aa192ddde24ed13432c5427808c111ee6c91c29a45bb1a3171208d54df47fa99150eaa585b7adf0384f3f8be68382eea44f70e5f56aa36a7b1d1c3ecaa3e016d1d0d23e79fe87766c9f5e1592caa2041034a7b26b37dbafa16b37da0297edc4fa017e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d28193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e1110593943781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e20087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e1158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c2a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b69652bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef617e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d28193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e1110593943781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e20087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e1158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c2a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b69652bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef6288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc73502405abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b31a541dc9aede8050ad6648812a33cfcce3efbd5a696c6d22401470b7af361c4e377596ab5d4f14c7435038a9742be3e6d0ecea3606fad6a74a40d15db38cafde3aaa9a47453df473718afecd5a9f3c813f8ab265d7735b30cf3d9aa31345b8bf29f67f7b332db09cf5bad95713cd823005366f75182a210df2f8ccf2a0536bd63ccafc6418112053d1c539dc198ca765b3a8d0cc38d47492143067a7a046f720305d9e4e7bb0cfb3b7ab6f2a16664d9d00ffe6e15a8f452fe648d4b20ee2b079077596ab5d4f14c7435038a9742be3e6b737f77900011bd2975eecabf38cafdd2a541dc9aede8050ad6648812a33cfccec8163996bbfab69265fbcf2ef361c4e05abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b3288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc735024377596ab5d4f14c7435038a9742be3e6d0ecea3606fad6a74a40d15db38cafde1a541dc9aede8050ad6648812a33cfcce3efbd5a696c6d22401470b7af361c4e05abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b3288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc7350240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011b8c83f59739f174245a9d39c1564be6f697eaae027a246d6f62ef7eb25e2bed15a71fa3e4bd6b4d0784a8b7d6c10312d2bb140fd7bbef1c3569abecd12e7b7e128635c1e3f36fb3c558df18a08816d3cde40f45fad4a9a962b169100bcef4d80f93110bc1bf6acff6178d72f3fba2e90f0d836c58bdbe230f5c4e26963aa5e31d2bb2c46f7219e420184aedd9cad68c9eb7615fc4844a02cf82c2cdf6dee9940bf88c893574e850f325ba7b57b730492ea6f6e098adeb9a82817b4837f57683300f118bffede9bf6a1b089a082be5009bc462acb38cb10135c42d08344d26882ddb46107020150d7159dc61447f7450fefc207fbfed47993668257b816e89d024f6907b762d9cae49e30d91b048cc20309c649008ad73d20bbf2cef1b26f8421e75e1c64dcd3e7e8ccc77bf484aafc32a446b41c4b8fd22e43c01a948241b892466513b3aa77d71d02fa23fbf39de781c137bfdd3bee472236abb977470fde601a1f934f293de88492dbb217da681682a0af1135f254abc58a330d8e6511e0f29ad293d3d824fcb09f3b2bd2b2d751ab474a3d5e0e96a7b95d2a003562019a225c04e4b4c14d9f853b41a4d814e56fc32f1ac09d23d68949ef5dfcdef92fe2b14fcb1c7dca15f1080984165b3757c1b52e1e93b84ccc1a4827697eb0553f9a61518a235be48fe4064b068a1b9f2a8e2be3c2f949cebec7cb2dc82a523243b582a2367af9f6914f7c8f97657697fc994152320e65bdeb611e3ffdbabf6c21d1b0cb6110136e488aa295b43fb2c0debbf072d6f65b83bfde7c42bbd8ab8fe910f3f5ce32610798686b21149a90294fe36acf6845db3e882688508e135f72bb03e00a31cd9ef8679794deeb656fd6b01c97550149e556476b314244fb708d44fc33cd06fbe525fa0a17a56704d0ce8f710d7b631e45e56a79c3477a259d3da7132032f9041ada05f5e85a98fb2f31708ef4a906717aaf6517f64b58e932c258ecf30122eb79bde232763b03181408cd353ad749585b27d619ea1a1680d234435f60fedd1486421dcd89c4fce7ebf732cac74d2037656cf977cf78bc8dfdcbbca0b305ae9960b56afc4f270f78642c020a1fc7320a8608bfcc65c9f757ab0550dcb0fa51669f4a9503b0d8f0879bd3fdf5e25d37853a8c0fc553c8dbb724faaf2363f5ce32610798686b21149a90294fe36acf6845db3e882688508e135f72bb03e00a31cd9ef8679794deeb656fd6b01c97550149e556476b314244fb708d44fc33cd06fbe525fa0a17a56704d0ce8f710d7b631e45e56a79c3477a259d3da7132032f9041ada05f5e85a98fb2f31708ef4a906717aaf6517f64b58e932c258ecf30122eb79bde232763b03181408cd353ad749585b27d619ea1a1680d234435f60fedd1486421dcd89c4fce7ebf732cac74d2037656cf977cf78bc8dfdcbbca0b305ae9960b56afc4f270f78642c020a1fc7320a8608bfcc65c9f757ab0550dcb0fa51669f4a9503b0d8f0879bd3fdf5e25d37853a8c0fc553c8dbb724faaf2362e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b33ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba3b674a1b1f59259eb7e969b60f76d978f3840665a081434844ed7e08ae52a349170b49fa45ed99ffcaf8036f11a7da96f3eb56355a6bc1b4d4b673c252a8f14e0bcfbb7d08c7af75c601962075b73bf4f6f7f3d7a8dc2e33e18626713e911ccc0dcea87c142cd7194c851c76df44aa147c540709bc62f27ba33ec049f82126cf0b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4822d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a00d80c97a5ca3f42024809990a5e4078724776135e9285751f43bb068f1f5ed12ffd27410ccdcfe329ef02841829f506167fb6b8093ab9645e6cf50c637245393ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba2e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b3170b49fa45ed99ffcaf8036f11a7da96f3eb56355a6bc1b4d4b673c252a8f14e3b674a1b1f59259eb7e969b60f76d978f3840665a081434844ed7e08ae52a3493ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba2e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010d3cad54271aec049264abf74889272d7b788d9f14eb8b09c44d1797a5e238a43de055bf769969a0d87c3732e7fc15d1476bb72f2d745244a1708a43a12c4bd5119eed0cfdd4fb6fceed08e05e02fff939da308463a1a37b8c9c06686a7560510019e45972881cdc6e800be6e6880fef95827e3d3d827fb1920179c642db899a37b3714110b268d7517dd82fcc4648b1684ecdc7ccdf0bda0df74c936e8120101584be5a4fceec1d27f3e16e127815a558dfd6fa21bb13ef11315d1aa84077241ea6970ce8a65d0e376df7f6963cc9c27bf99992ccfa7f8cce50f82669f4889822416c2a4523bd0ae53d3e56b25dc9e04384f22f76a661a5f4d6f6c283bcddf0337e319a24af782e7134704cf00b6a588479bd183aa88ebde651c0d64830b8df3f7ccf2034516165fb7c25c10fdc51d13201f615afdeed22218b19e171fe294533bdf4da489f0af5ccff1a4a3333f128f4aa09554dd8351e2c82592dc2d1717612407cdfa540b790da4c69ecc3034bde4ae9ce95d11049290a9fa5b5dbcaf8de245f0959d8c844fe518cdff07d849f36968e121470127449bd72b31aab3d40c22b0e6e2eb0cee4c50c1aed1a2ef72ce050d83dcb43145ec67755ccb69a75d70b18042836cfe6d7098376209694fd930a5b0a7088b9a99140ba8fc84cf29f2b00159fb3998dabc633be095bc345029beb8f3afe61f0fecc404c57ecff4c37f87d2d5cb2fc345a38db8e47dc9a763fdc1c510a8c09a047d27d81450b2096e016160a9617799cf1ab708a0697a20039ecfdc32da3939ea64e16a0fe27cf4c48e001200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af2150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f3981eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c69269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f6196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af2150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f3981eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c69269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f6196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b305d9e4e7bb0cfb3b7ab6f2a16664d9d00ffe6e15a8f452fe648d4b20ee2b0793ccafc6418112053d1c539dc198ca765b3a8d0cc38d47492143067a7a046f7200cc3da9332bfc4c2de3e80fe3391c67cfd20927847a5a0e2f07a246a7573e31806138aba397e4b359850d5fb9c7b448092c3e7d23790979247670115db6275521d89216596cd5ffcdba10ea510a72867528d858a39e4f1abc51139fd0eef252f0717f85ce19e45138ba4c97f5dc59649cfed0354ac6b917763f7fcaba4a9ff65288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc73502405abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b33335039be7eedfac2e3ac623e673589a8852baecd7723f5e37deadf71fb908e23fa261b1844f304c485490d5e999b2633afba4d7b5b76ec065c640ecb11d4f893ccafc6418112053d1c539dc198ca765b3a8d0cc38d47492143067a7a046f720305d9e4e7bb0cfb3b7ab6f2a16664d9d00ffe6e15a8f452fe648d4b20ee2b07906138aba397e4b359850d5fb9c7b448092c3e7d23790979247670115db6275520cc3da9332bfc4c2de3e80fe3391c67cfd20927847a5a0e2f07a246a7573e3183ccafc6418112053d1c539dc198ca765b3a8d0cc38d47492143067a7a046f720305d9e4e7bb0cfb3b7ab6f2a16664d9d00ffe6e15a8f452fe648d4b20ee2b07900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000109fa99daa58230b33c76e5c73f7ee82fa9ebccf7e8600b7c0865b2b480b8a2951a4ef048fd214d3b1fd00ccb356cb23305b4b5f8c03f51e003da89e0e28345421cf8fa1b5a8723ebd96f7c2d70f0e28074d9f6154464c2e35fdc9d5599422fe608572a85af70524a81f485ac0ad877b0d9ef201aa803ef9c00b4dedf69b38acb33d72a2445768b2e1a74044287294267c504417ddd7953bba823fb953b8c75931e8e556ddaa53ed132e59ba876a18e7e2f4d5467e72ad3dd846e05e5aa96c301213163b020e9245fb704b71c11746e66206a26e9958d1c13b010bec4da282cb332a12444cb1cf554552cd4781050d5980f211f7bdcdf4d407d34a007fc3a245220ed2e93d0ffbf32e4388cba197268096a8b6714cd3d90f59df599196a426a3b3a5b3f1c279bc2572b87d9a22f93a64a9e63e05c73fdd3bd87f3ea0a071f2cde2a160a8d27d93908347270ea94deadd02188176c223f430e635343a3dc49850c1a98720428d8f9b5c4a9bb55adedd079f6f22273ae86a169e7f2efb235ee7b650f6336919514b003944e5494da84066ff9dd3222f6294ef56661206a308f7466000a40f6f48279bfc9597875d1f7c5a6cb4284c0b3b08aff353a2e7a1523a36607d8a8819df16d305cee6f12f5f1625e8f770da87ad09f04d1ec303d00cf12a30161402a5a3b0a7b8cd68bd0d65844ac88a17b23da42706bd49b64d3f6621d4f3998ef0d0bc1b06fc97b11854f0fe9513e8529fe496964346f634a2233e5bf68277d3947cafbf229a9586b083cc633367c3268e5896267421f330fa1ca6518221a6142eabad9ac1231abb2237fe06e217b0cce090905d80c1b5ce78973f1c619259ebd15452653edce544ddc801f91dea739caf30047210f7dd049638c0e39e803e64e95a6405c5af85a7ab17f6226a722b2d4351a834605567623d543b8de7b3c19b16a59bfa3a507a5854e809dd958ff93c4c6eec9b31642b70d17bc472186137f88ec3f41cdc6d9c465777ceac143ad7e250984905e1ab04eb32a529c58672c807713c0be3239263b9a8883153ebc74c873f284bc9b00e8de7dc2ad63a79a217dac9d3c4904e240d5fb557095c652413020338d84dd69d85c4ee69d0dba021e825362c3b6fb1dbf2a04aa8f6a39ade11678c87bc81bb1c0d0e20662f245ff1a6142eabad9ac1231abb2237fe06e217b0cce090905d80c1b5ce78973f1c619259ebd15452653edce544ddc801f91dea739caf30047210f7dd049638c0e39e803e64e95a6405c5af85a7ab17f6226a722b2d4351a834605567623d543b8de7b3c19b16a59bfa3a507a5854e809dd958ff93c4c6eec9b31642b70d17bc472186137f88ec3f41cdc6d9c465777ceac143ad7e250984905e1ab04eb32a529c58672c807713c0be3239263b9a8883153ebc74c873f284bc9b00e8de7dc2ad63a79a217dac9d3c4904e240d5fb557095c652413020338d84dd69d85c4ee69d0dba021e825362c3b6fb1dbf2a04aa8f6a39ade11678c87bc81bb1c0d0e20662f245ff2d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a0b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4821da14ca1a199664fe96c00dfdadc6f774cb0099050339947762320acbda4f921298a8342161460a0a63944925900c28283b9c6ae2cb874a22758361d7811b5e63af4d6266fcb4016eda88f0b8382f0829b30347c5384622320af607712e403341ea98dd2ad29467824de238bd178f586fa625f611b07b7a7fd42b73123ce40682e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b33ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba0af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb1dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4822d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a298a8342161460a0a63944925900c28283b9c6ae2cb874a22758361d7811b5e61da14ca1a199664fe96c00dfdadc6f774cb0099050339947762320acbda4f9210b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4822d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011fa50446e895affd0c882ffff31e6a129f7497fa47c50d567465bb5befd0d9311a7f80a864a1db5e1e1817d3a45978ed1594c742ff1b0e87ba569baced13d53334053265fa7428b94f366826202e389c7d81035a35044d91b62acc62728eff210bcac40c467248b59e9d337db61e5db8b06a5e50a4bfb8d33f271f31bd332e22289139b492aea1152c45e2db3c3351edc39b126ca2fcda0968b9ed647987dd87174165f9a4ad6683cdbdf9ead43c1106981bb64c0703586797e455485d91b4283efda4a93da79866e0375520d44df8fe385b98e9f88964fe96c63b0c2e6555e20a548a884c6a1c01a6948d07121ca6ff38daf0c134ee162d4e1169a331d0edf90eaafc81c888770de760347d3b2523e747f1366dc7ec2342fb2a55dc52fa602724dde2bc5dab69ca1a4195896926ef3279e5b00eab69a3cdd973e6538c1a2fef002847ff9ea73b089e1e214cb762f65451013e9c7a29d6121e67466780287939345e18629a81357b28d58efe1f05f349baa04f9fd280f9843c365550cdf1c0542f8004e8de1bab07ad4741ab68273f2a3f82cd0b6ffbb85f3a7b33c67c2725711fed729fab7b7ebbb0608b5f44548ceca7e382d4432b1ab0fa4d4c0ac98bf25c1670fa54cb87976aee4ff43710d5e274cba69ff154acad34afa4b80faca8887c2eeb30abe3f935fe2871a65bfb56be6c63d6fc9b20a138a408d01f39c4f332e11fc34e82227bbee0824d3e890145c1852bde95ebfc50b1ca27225ae73e3026bf0f4f9323cea9f65187610adb5c151c24ae99cfe3e0b4f2e1ebd36f43bba6d8c109c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b09c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b39ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e2e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae9682c52dbd4b3e6e09e1ee805e79005f0bc5d1ef5ded4e43494b88e3889b14b0e982b262cc5955e65935d7d23c1946687e15b1143b0d92ac231ce3dd27d0547e1a618c9d9804d1af74f9e6525b58fa140978c05cc06abfbd4d3afdd2faa1c9c215527f0fe2bdb474e59eadb6476d794884dafac34e825f9c1ef1ac1b293f21ba637125c534548436e43bf17fe0c04c54749cf0b77aa2d2eed5e1e60a2d2e8abc0510461dda8d89f9244340ca170b871686ead72c0f6aeea72a59dcc85f5bf2f6861063701d30cbb53d7978d008cd3615854317feab4f9fde2db6584c6b4ea9b95e5068b7cb70c4e968fe90a321a45ecb6c221e359af3f511fa60b4bca61ced1e0ae2e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae96839ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e2b262cc5955e65935d7d23c1946687e15b1143b0d92ac231ce3dd27d0547e1a62c52dbd4b3e6e09e1ee805e79005f0bc5d1ef5ded4e43494b88e3889b14b0e982e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae96839ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011e8194fcd5a97700e739a2f24cafd61b4491112661802452831399f4fe0c2c8304f1693e7f720fc0c3e18e66c0f74ed58aee9ea6d8ea1a90efa817954a6939683d467807ed19df7dcb1ceee2577eefd4e488a3c3c519bc76d0e4c2cb85206c0e2d6115c69853abf63db380f5e7d691c62c5a27f45b4c89b995ef9862f6785fb821940a88b1c2aabd86e2311d2f0f16003f34554a35b3cae9b830c25258d4bef21c7558cd368b780e43fbc21e63a2c0f9d6c3d00afbdacaf095ad69ad3c69e8a12ca6b7c480511320f61c38b01e256472115e384cb1544b7c6c2c1809fa6756d5305ca7610ebe8c0334c175749c19abf108e4a6592cab85d824bbab119e65411e3aa039b1d5849ce36dac25aedc8381f4062ac089c68ee62dd6428e1f0d566c3316ec15fcf1ac9caa211dd3405d08e01d84341f34d2680d29e84ee4680f0e4bfc050014b77c11e98c6a93b167065919941eb20a49513ac5583bb51cf96d9cee0b2af2f2dcb7cee2ab8e2a8bb6de75f04c1cf0f878528fc1ca448e58f9669fe8ff19973d43497a56cc8039c2fde9cefe0ca1897f3d9d53193ccd03467b4e269ac635d63a45401cd2f6dd6e0a0cc2acce0a45dcd0a215d3b9d367c53955f78c7d073e7305b385fdf1e74396fb4b21010478ea9706bfaa4809440d935417dbbc764d1b5056a52a88e47bb79c7bb73ad4e6877ad11d5462f9149f56ecb0ac0ae8d29e1858d0c3bb0ce172cbb5ba468bd5ab4a8293f62e449ac1f2153c56c6b9406ff1195b8d569bdad6892038a85deab533ace8629f62faa985bfeb64bd1fbf9848cc18a62107e04b5f9b19f1ae1f7823a61b01ced64411dfefbd3a1d74748adefb682759def81fb4a064e60e51e087dc59e52077c2b7f76d095e5f0fbc78752104993b3ea5276178de0781b8669d58b23e86e6c396585012b59689661559b65ae90704c15ad89e8721f87e479962a74dc1793b8302a3b93a43850fc71b9349a516fa283939c4e75c5625889a0112bb7b38a1f8b78bc96b29a7824a49a70c8fc68d1f17c6c63b18a3a9da7765feed4484c75e298f0d329e2351994ee389e0703972e2091e20d884cdaebbab02055da9681b2974c1effafbe95a38a7e8b077cee0c19836e1df277b32514454fdfaa25697e4d6ad84a9010d639ee2f1448075311f3e6918a62107e04b5f9b19f1ae1f7823a61b01ced64411dfefbd3a1d74748adefb682759def81fb4a064e60e51e087dc59e52077c2b7f76d095e5f0fbc78752104993b3ea5276178de0781b8669d58b23e86e6c396585012b59689661559b65ae90704c15ad89e8721f87e479962a74dc1793b8302a3b93a43850fc71b9349a516fa283939c4e75c5625889a0112bb7b38a1f8b78bc96b29a7824a49a70c8fc68d1f17c6c63b18a3a9da7765feed4484c75e298f0d329e2351994ee389e0703972e2091e20d884cdaebbab02055da9681b2974c1effafbe95a38a7e8b077cee0c19836e1df277b32514454fdfaa25697e4d6ad84a9010d639ee2f1448075311f3e69154726d1e457b749e5a32d9cb269c17087add08c554ac6163f1ba6dfbda977f43ebbdef2711d9803441a84e31a9d5ceddb174d378971a5aeaf3f8ea84a27c7942ecab19fa4984e587f65c960abe312a14911f43b6a89c4fc00189825fe5ed7753d32489c05f2625a56dc841f8715cf00bafcb8f4d2a0ba91dd13c518f9cfe90713724f0ac1b4c5188c3274dfe3b442f0a5f988438b3c9aff9885f6af3af876cb24b81373b72e6d9ef1bd0f62e5acaeb018dfd59ea142d8d96b43818d2fe72caf29bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c0a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac634ab22fea15d89c74a4ca0d1cbdd19b18c8dc4699b5e6d44a70b9e363033d8121dff3c5197fd00d1d0a0de7643244f7892ab4a9b26b3f4238af227929b22c0733ebbdef2711d9803441a84e31a9d5ceddb174d378971a5aeaf3f8ea84a27c794154726d1e457b749e5a32d9cb269c17087add08c554ac6163f1ba6dfbda977f43d32489c05f2625a56dc841f8715cf00bafcb8f4d2a0ba91dd13c518f9cfe9072ecab19fa4984e587f65c960abe312a14911f43b6a89c4fc00189825fe5ed7753ebbdef2711d9803441a84e31a9d5ceddb174d378971a5aeaf3f8ea84a27c794154726d1e457b749e5a32d9cb269c17087add08c554ac6163f1ba6dfbda977f4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001150346e04ef75c825ea58de669c4722fec4507fd927b6a9cc11c1d752c01a2082e289a36beec474521fbafe255a478d7708a2f26d4069a396be5f267e79fdc84271cc5dc2338990c25b0cf6bfd13fe9517aab83a9e9ca1298259bf10ad3f648321199c6076c599e6dd7524a7b93b6c38fe4194c45bf908e9ce0020fa4cf23d5b17f689467b40bf3f1e26b061288dec8a83eca77307e625bd3e5f424a2902bbad38db0ebf41f00b1e2430dac732b1f9538b660c4f5471df192133fa98d75ebe7d01171cc27b8cd4cfeaa00e4925b08b97455da8624287e3d6f045174f86e425f6277b0d7b0e129860ed31b803d00a5558a79e29ca6509c027a3b0212ca93f0fff32b5528a791c41a0138cac54d49496ae8deb725078083e61df30a59f7e5e827d0c56f4eed2aba9d8e66f938ba1cd90c25da6322dd1fd95df541b148ba1fb645e31e486ecd0c41f8576c64088be2d8a374bc1ce807827fd7f0f80701520796fc10a1b63b53e1df4daa23be2eb336b2549e999462f5d90cd788cfd453062de28073ddf2583b44797b135dbe028fe4ad956f72f9b0b52d0974c828b6e9f7656f735118e5204d54f921227cbece1ae30f2bff036b4d460563bc3b23d1131cf5c20983be7b3cc6d9fe66753b064a06b878aab2b657f34acb54deb8cb6acd44625bd2c23cbdebd866eb86c0fcee40911ca8a9603891ea4be3d47fca90ecefae60e63c131ee9f3e305cd0801e0804c8944789927dc060ebd54b5ddf2b9d44e6d8d7cd9c0b001cc4b9d7ca0f7c576c80e04bd258c29fdd5a8944d08704a475b9b389a0f80175af5850c48b5312811458ce6b91ca32d6cfe591513b4e62e362a21d6f8f153e8a50a7af3b74aced7eeba731946e35ef6fc91677fbbdcd3649ce4ae29070ec074c6cb993d6b89f5c8565bc0819d8f2fe320f7bd6962887ee70ed2a932dcb6938b393466c294760a37a9a43f7e6270d2414898032b6d093aabc43c26cd23498247e1f9fe3319b1cce9afcac28813cbef6fa4d6b30eecaa7a834a1d4dfe4f90d1b81e0601cce64e331650353d77ec3412b4c4b90d85e2e73f0f88f18201b06f436769e1f6ff807900906ef5cca862fba8e56511fe210030f16acc74e5f78dd3f098961e09007f86ff6f910a33579d04593f047dc273cf60c8280699ea08722c20175af5850c48b5312811458ce6b91ca32d6cfe591513b4e62e362a21d6f8f153e8a50a7af3b74aced7eeba731946e35ef6fc91677fbbdcd3649ce4ae29070ec074c6cb993d6b89f5c8565bc0819d8f2fe320f7bd6962887ee70ed2a932dcb6938b393466c294760a37a9a43f7e6270d2414898032b6d093aabc43c26cd23498247e1f9fe3319b1cce9afcac28813cbef6fa4d6b30eecaa7a834a1d4dfe4f90d1b81e0601cce64e331650353d77ec3412b4c4b90d85e2e73f0f88f18201b06f436769e1f6ff807900906ef5cca862fba8e56511fe210030f16acc74e5f78dd3f098961e09007f86ff6f910a33579d04593f047dc273cf60c8280699ea08722c23fa261b1844f304c485490d5e999b2633afba4d7b5b76ec065c640ecb11d4f893335039be7eedfac2e3ac623e673589a8852baecd7723f5e37deadf71fb908e209ec7545c681b4ca67af2a046384bb7f75cdbe6ccac2a6b49ee44b25649d8aaf033c256ccd403b3d21c17f01cc6e39830b7113c6baad9d63f5d127d0ca8c1ce918e807a31e61baec745b3680a23a69b641364929583aeb16689e9bcadb56009c0276de9a6932a003245ef15aef58d798be95c6f3cac18ae207855e797110dad22a541dc9aede8050ad6648812a33cfccec8163996bbfab69265fbcf2ef361c4e077596ab5d4f14c7435038a9742be3e6b737f77900011bd2975eecabf38cafdd288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc73502405abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b33335039be7eedfac2e3ac623e673589a8852baecd7723f5e37deadf71fb908e23fa261b1844f304c485490d5e999b2633afba4d7b5b76ec065c640ecb11d4f89033c256ccd403b3d21c17f01cc6e39830b7113c6baad9d63f5d127d0ca8c1ce909ec7545c681b4ca67af2a046384bb7f75cdbe6ccac2a6b49ee44b25649d8aaf3335039be7eedfac2e3ac623e673589a8852baecd7723f5e37deadf71fb908e23fa261b1844f304c485490d5e999b2633afba4d7b5b76ec065c640ecb11d4f8900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100606f0f394cdb14e52d7e42b8d96317ce5d15da7a97fa290fdf4d0f4fa8ecb010b4c57d90ebf79cc886a546aec72d1b2a25fedb5277408d0b54243bb1738f5d0f4c8401c7c910b2c903a54aa6696bf81c711454aa2412d751fb7e16b3d62cbe3344a123f27092e2d7f8b16c4f71b37c752d8a45c2d74905db8bbf4d332fdd4f1ebc29f59913939e26bcce6f4868bc687517ae32232098cca9420a7b6a45b98d18a3a053ac2467cc92e0baae90658c88f256b0fa5b75d7ad156df5d27f56ceca19b1662db41eb4a528ec1ce6e2f07605d386a1a4048778f3c10576f104620c6739d62957e6dc24551eaa9c8ad69da4dd875b47dce68745b99daee1a75059b8401eafef175bf83a01dcf5958f2ef414d820497704be3d015540d86135169516b615d5d7d7202bf182a4f50d9af66aefd17a65d13e61f63aeaab0fa365d258f0ff26b80ce967fee341e3391bd64a45ace7c77ac4c8798ab4b52049c799cc26cf4e1979eb0536388502a941649b177a1110a426583fd01dd7f708ccc105f6be339e1a9815ccb79a44f0e2a5d81401f901ac7b42f107cc4ef6eef6f6ba7f032b638334d561bbd1fce4d27b01f4f6aa82ca6a6c235ed7e6d7dc213dd1c5524287b44a1cb7b824a9db42173a460cba12f8fcb678332e85fd484a5154bb1c553851fdb03e954d0648466e5013db0256ae3219fd425d1ff3b2e9255d1b24f54c042217301b009713025f921af2801e957db4be3a60f481b8223f549057bb8176060986c22d1c4cd84325506112a2c5128ffe7455234742d0e2465182a7ebbbf66f8a2e082994104ae8e0b8c6b498ef4a340e1f5dca7130cbfc365dfcbac8513f99314e91166befb5171f47394b6710b5cbf1e0a257d568300d169b1ede64dfad66ceb1700fe451768c639be186fcac7304469cd48d622907d128ea9cda620376fdf688d2301bae89739c641e7903538cfbb9632b94e46ff438240e7ebecb2d760209772f0f759750bdf20b67a2ef5e3f15611026a0a4342b0c7f9bf4aabce065f5d0ac19308a68af420df4985d10a1c0ea9eefd981a264d0fccd5d26ee7050870a2f53e80d4bf493b5ba39062eacd73b6ae550c100ee6bdb353112abbc833110cd135c7c32b40b6c4a45c6f9d15328c4951aaf3f21582d20d41be66fdca9ffdc32eca3852994104ae8e0b8c6b498ef4a340e1f5dca7130cbfc365dfcbac8513f99314e91166befb5171f47394b6710b5cbf1e0a257d568300d169b1ede64dfad66ceb1700fe451768c639be186fcac7304469cd48d622907d128ea9cda620376fdf688d2301bae89739c641e7903538cfbb9632b94e46ff438240e7ebecb2d760209772f0f759750bdf20b67a2ef5e3f15611026a0a4342b0c7f9bf4aabce065f5d0ac19308a68af420df4985d10a1c0ea9eefd981a264d0fccd5d26ee7050870a2f53e80d4bf493b5ba39062eacd73b6ae550c100ee6bdb353112abbc833110cd135c7c32b40b6c4a45c6f9d15328c4951aaf3f21582d20d41be66fdca9ffdc32eca38522e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d570ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b03dae1cefa8b3e8651b5641fb8f11cb8a8245710ca4daeeb318975e771a9c6270944c8b525cef9aeb6196bfeccb204f8c0abd5e804a7bd874b22c345a0839749374a86518aad0cff9744827bab36a25272529f9a68b28b9c99ecea69bdbe3fe42179eb6829f66ce011798143af6163c3437fa534bd33624c60dcfeade441f79311fa42639b21ecaf1ed4e983217b62a6709fcf49a5422b064a6309c8e2c557662260f666d094d1a6403be2dc098fb8f586eb4ad8166745ba69d9a8268d67ce951663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac53a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f21620ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b22e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d570944c8b525cef9aeb6196bfeccb204f8c0abd5e804a7bd874b22c345a083974903dae1cefa8b3e8651b5641fb8f11cb8a8245710ca4daeeb318975e771a9c6270ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b22e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d57000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001220957af418cb9b6e475a0ffdf66127f6f7911b18ee0dbb53e69156b418700df3f0c640b60bcce9d9dacf3d347d8344c654e319fa4a5e454d031381ee7b55c67321fcde986b442860587e2eeca80a37cc409a3d4a7eef0ebae5b22c27156f97d08ebe50569cc1afc61cb59db2e80de17f5c38e61e266aa49d9a67c2c8393fa1d20aa93b49f4fbf793afd3a30019152584d4d9cce426dcd7c711cc712b3a2cf1d3485262a49bcd62b92a2cfca12984b17cb223b4cc92d409e4c585a91c8ec3f6421b5ca57e91b682d9b704ded7cb7fe9d2abf7b5144a389cd6d7f693aa8dfa4aa21109883bc7238c50da8f04cce374ac532a8091abd7fc08fbb493c9cfd6fbdf13bc17e7ade4f52988d3b2955268cc07449e47cbb0a9fc206fb74c38c22a5ed3b04d08ec323b93a949624451f0e5f9aadc3d62fb0e1f95686a45d57d01b4c84d9208255d86aa1c5664c3eae47414f0c280a23ad4757763c9dff03f72f42a0301d2b6ce68a650afebc294a04a72c5544596a8df40283efdd91d56f16d60aaa866108bb90ba84973052a3060b5705820b465eb85dfb4b7a4a690283fbd0cb2cc63106b1e6ce04fff970baa1c1b3a6f9c0d0666758e85e5f8f8b991753137a86519b38750511b3989a96394e9e0235e7cbdc616433ac9f6a3c57089c1fcc35ec0c010aa26faf70b587195d607880d11954be91bb16a057b29651b480558cb1aa40d32fce2bec747aae841a7824c4e3eb21758a4dfcdaad60acf70a3023e552f0bf1f3e196273ae7fee472292b95d36e0aff3b57be60f455e1ed5169f02b797646db81b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac24fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a60215507121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a7235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec21ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f30c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c80f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f046391b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac24fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a60215507121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a7235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec21ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f30c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c80f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f04639299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f10022149786017ebe61cd3033d4fb7f00cfc465a497b1464343a1a46eb7f2ed9b5de037ecb8b7278ef89d6864ef9dbf9021f38c404e2dd31c721606d7a5bc8011efd52368a8d9f0df500d29c787f59bee3d31a7284c876cd8b378363c8b9485c4beaf0168feb3ec5487731f5a78c05dbf2354012ffa5efe36b383af6c5d5787f595aa14840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d3126132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c83617f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a66373017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f10022299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c37ecb8b7278ef89d6864ef9dbf9021f38c404e2dd31c721606d7a5bc8011efd5149786017ebe61cd3033d4fb7f00cfc465a497b1464343a1a46eb7f2ed9b5de009e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f10022299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010f9a88c30f1b87df9ac76e59de024fe9ab35728181948abf2a96dd729623d06627d9a11a1346b0c8207d8123e198121c7449ea9681d843e6f151d0dc93d2ff90045708edd29a5a59c410ae9d02ade76927c1218e07689725221d9a8edcde6e6c04fb6f4b9d1c6139dbaa8cb0683ae711f1613224da9c7c589efbb85ed84bdcdb0fd85d5b0459d2d8364dc03d9164d30fa26ceae5868285d65f012a8b7de34df922b9055b4171a7c84688b08b47e7a480cb1cb24ba676788b4f0aa5d5f477a16931787fd0aef86e99bc082cf8082a63f676d63f7ce65c473eea3aeac4a753ad332a329c0dd0152b92baf13e28276b29d1db4501433e788ddec920e166ec9ffee4170e682cadc511fd3763d6eacbba3e92451589ce14b2f4c824d13fe538f54e032c66a37920ccb3e03e553d61f2dae9e9ae0d84fcf57f2ac35763bb340a0640101c60709e89b8ec0d280a52ef346063d1226225d1daf9e9af56513f094d40286f1e498a3bf3b4a5c65aca015a4f18ac9dd3bf8a126c13c2827acc82c1214d240d16f2d773b487a63c52e4f38268d9e4c7393d45cea338ebb9fe10d3f98e26fca0387aa014d50f83870ac2d98843a1e74fae290a110fede75636b7abd7b78c1b2d26f27d0ec5157f7ef8c87d8c2796d3cdf84cd7f45ff9a8b26164f57f8390c3f62d42a4b61cb41c0382fcfee97dffb49fc4565854b50a17deb5a9f9151f40ab16202b428771f5a59cfa079644dffeb7d9b92dc35b61056335420d1b6fd3ca53072a08f7ae479289bb3daddc32ba543552ea3720348a33f3af3c3764b32ba296a100000000000000a03bc351b1c4c3feb76cf38577f895a78cf981d374ef830e76a2aeacd8fe2e5df0325d2bff4c93e2e124c37a1cfcab013567656e570cff2674553e6ef4e0b5d6c61f9147954d57a6aed72b58b2cdba48c20432722dd0c7cc87f080f23dbefd72b1098b6a2d7ead0c312771f4b457fa2ec159bcf80b1d6cbb2b95f19d0621be60af3868f1fc4154ada4d89d01031f989ca739845260c59a5d76fa0a76fd12a885f613dddc3bc414dca0d05c78f14722bcf01b1794b46a71a8244d426d21300fe75a2905530de72e0fcf19466e4164a45f14cf5e3fd54aa79e63273aec686f437f1800175eb4e4d6a310e556df25c110186e8e912a63a38ce9505f37a2db717854481a8635031bf9ee44576390ac071f7672c1372b0801ea3399ec23f1c239d849a9154e659d10cb67735d98081af522b78d9193f816089a45029aa55f3c5070dec02ac29b3a2caec32c74dbad1a058829f8569919081c9336e9cdc471d37697a3d03e5a16889f55efb389c1a04d202c4d8b299cea2cdaee49e551db4e5d6a242f912ae80ca176cc7259f41b1d4a89cf3ca853f4a285f298b1b0b08fecb4efe5d24b1480bfb4177d46f36473f582664bbf3ded3bcdefbd5f096425d09f0ebe3943372bbd640075b27bddfe2306e543517bbf58e7b88df6319d7c030f0c3d8d49851e3d5f4dc256523702007a4681e262fbc4274e4aa7014fe3531c90b3f353724e43227a46d7526d8822a0c80982e3c39c2eacfa22f2063459c0c64a2431e9b39a4f28d8c0eef6e44ce7147cd48993a9db894e097469267715e47a641c92706499d91ddbdde635dd1d29298e4fecd5d5ec057b71b6435eb0e5073accddeee9fa79890b40d3dc962795b6d50efd7a4fde8b7de27db3f58f83a2ac4ba5b154f6c159d7361ebc55c9018a70848bbf7696b464b46ba0e4bffc5ed2f9aec0a09cdaaa66523ffc2552798ae1768f0d46ee8e010c9a74300e50a260a810d98fb73a7d8162f008956c6d6a2135cac6b4db4d3843dfca4b9a151efff7be3f516e5280cacec7982087455561e37d1537e87219ed7097b912555519ee3cc97435043cc315ed0bc8227a46d7526d8822a0c80982e3c39c2eacfa22f2063459c0c64a2431e9b39a4f28d8c0eef6e44ce7147cd48993a9db894e097469267715e47a641c92706499d91ddbdde635dd1d29298e4fecd5d5ec057b71b6435eb0e5073accddeee9fa79890b40d3dc962795b6d50efd7a4fde8b7de27db3f58f83a2ac4ba5b154f6c159d724cd3d73bcec04a086d943b11a50b9e5bf4c4ea3fd1411ae37b301cbf711d17b36a44512406db600148f1eb001ed71379753d51a901da1b816ac90e7d853b8f538fefc2de7e30a7e68bc498de164b442d2fafce6b4f37068349383204aba4a3f301db594e421a86195e103d9444fc340ad3b064e428e1066eb0c3d10960189220c894be0097594896891e5bfdba9363e21758f49fb9073f00b9f3c1d2dc734ab2a0e1a294738127745d3e2333cd3c31edd98b3eab8eb8e12b09c64869385ade13d5f4dc256523702007a4681e262fbc4274e4aa7014fe3531c90b3f353724e432bbd640075b27bddfe2306e543517bbf58e7b88df6319d7c030f0c3d8d49851e0837e1a9b0b428e63400481beaee9e5612ba535afb2ddee2612f0dbd343c23fe3372ebdfbea8ce399b737a865eacee23a5001068cdbdb38d21720e3ebe8cbbaf290df54e88e32cef331ddbd06752ed212279984ccd4574beffd4161812cddafd000ebc74432185f0cb7f7196be618a623b75d1ec20ef12f4869e792bcdedf8631dd6ba8a32a474f2cbb5161a007d059303a22ab12905e063b00298e0eda34a312a08fa239afb09c2a988c51112da46edfdfbe0294838a0e483d9a8a5a2e47928098b6a2d7ead0c312771f4b457fa2ec159bcf80b1d6cbb2b95f19d0621be60af1f9147954d57a6aed72b58b2cdba48c20432722dd0c7cc87f080f23dbefd72b13ffc2552798ae1768f0d46ee8e010c9a74300e50a260a810d98fb73a7d8162f0361ebc55c9018a70848bbf7696b464b46ba0e4bffc5ed2f9aec0a09cdaaa665208956c6d6a2135cac6b4db4d3843dfca4b9a151efff7be3f516e5280cacec7982087455561e37d1537e87219ed7097b912555519ee3cc97435043cc315ed0bc8361ebc55c9018a70848bbf7696b464b46ba0e4bffc5ed2f9aec0a09cdaaa66523ffc2552798ae1768f0d46ee8e010c9a74300e50a260a810d98fb73a7d8162f008956c6d6a2135cac6b4db4d3843dfca4b9a151efff7be3f516e5280cacec7982087455561e37d1537e87219ed7097b912555519ee3cc97435043cc315ed0bc82c473fd576be448a6add5680c72779f6ff12d6c95f585f21c0621343d3749ba03520541c90fcdf95d823782eb41b1dda87da802d96d0150c116bde29f26a8e9e2aad12c86d92187812490ac1ef04f4b4d3988f6ef5f60b3e58140d9f036f4b9d3e6f9efa5e729a67ec5442a536af82ceac9d73c6018b7590c78bb291dd4c87c40837e1a9b0b428e63400481beaee9e5612ba535afb2ddee2612f0dbd343c23fe3372ebdfbea8ce399b737a865eacee23a5001068cdbdb38d21720e3ebe8cbbaf290df54e88e32cef331ddbd06752ed212279984ccd4574beffd4161812cddafd000ebc74432185f0cb7f7196be618a623b75d1ec20ef12f4869e792bcdedf8633bc351b1c4c3feb76cf38577f895a78cf981d374ef830e76a2aeacd8fe2e5df0325d2bff4c93e2e124c37a1cfcab013567656e570cff2674553e6ef4e0b5d6c61f9147954d57a6aed72b58b2cdba48c20432722dd0c7cc87f080f23dbefd72b1098b6a2d7ead0c312771f4b457fa2ec159bcf80b1d6cbb2b95f19d0621be60af183622740a517b6d712ccc4180b56fccb474e54f2117b6501ddac1c9ee26e4c925ec30431abaf7e692098d5d7df2f3df203516b857d28f908ecdc54fcda0726b02cb2bc0a45fbdad7a39c64e537809c3b416fae89a0d8a1c582b2a8ab41438562651860227a4f53284638718d23c6dbfa9d86f505426fd972e4764b92ca79b0a1480bfb4177d46f36473f582664bbf3ded3bcdefbd5f096425d09f0ebe3943372ae80ca176cc7259f41b1d4a89cf3ca853f4a285f298b1b0b08fecb4efe5d24b2bbd640075b27bddfe2306e543517bbf58e7b88df6319d7c030f0c3d8d49851e3d5f4dc256523702007a4681e262fbc4274e4aa7014fe3531c90b3f353724e431540891272c824fb1e2c56ee54b95bf183eb29672173cfd84c803e1d7d20b17d038e1b5339850e19e2fc7911af89d082259638b3aae10185dcd6bb52e07137e7112929cb51eb80593e6c023a95db602854a404133b0f58e87eaf657b0856be6d17f387f77a193286c0314b2c8fd9175b094b6625b3252ecb07c329c8d86514f313dddc3bc414dca0d05c78f14722bcf01b1794b46a71a8244d426d21300fe75a3868f1fc4154ada4d89d01031f989ca739845260c59a5d76fa0a76fd12a885f62905530de72e0fcf19466e4164a45f14cf5e3fd54aa79e63273aec686f437f1800175eb4e4d6a310e556df25c110186e8e912a63a38ce9505f37a2db717854481d647b97770c00c07d845646c2c84adc20b603a4b421dc328d587bbabad02ddc0d48af011e998a83d42ba66cce6232af248518aa83a6713fc4956fe85a83960a0b40d3dc962795b6d50efd7a4fde8b7de27db3f58f83a2ac4ba5b154f6c159d71ddbdde635dd1d29298e4fecd5d5ec057b71b6435eb0e5073accddeee9fa798915988938a63e304c86c4701d0de48f1f626cc25520a23a339a2f011f44fb11442af302f56af9429b0a0c4a4489b0dfa9728f61ef279f74796adf511fea96138815305178ca22644fb423c8b6fd96feb152839780e9a8f4460e06449c11f3afd013ec604a01e24e904a7984b0281d78d20b6bd2b8048b936d786c4aa7cec82390154e659d10cb67735d98081af522b78d9193f816089a45029aa55f3c5070dec01a8635031bf9ee44576390ac071f7672c1372b0801ea3399ec23f1c239d849a92ac29b3a2caec32c74dbad1a058829f8569919081c9336e9cdc471d37697a3d03e5a16889f55efb389c1a04d202c4d8b299cea2cdaee49e551db4e5d6a242f912a08fa239afb09c2a988c51112da46edfdfbe0294838a0e483d9a8a5a2e479281dd6ba8a32a474f2cbb5161a007d059303a22ab12905e063b00298e0eda34a31098b6a2d7ead0c312771f4b457fa2ec159bcf80b1d6cbb2b95f19d0621be60af1f9147954d57a6aed72b58b2cdba48c20432722dd0c7cc87f080f23dbefd72b10adb5dec1e545be6efa40ec41f15f6315fc9b97c723490e6062511ed5810a971284cd649ef540f6801ed1879ea71e0ebb2eb820e40ad67524e74949d03be085329e92d96ecea737ff89a586d7b598d4906907c0c49287dd516821ec374443ced3f33842bdf1a3f600602f4f9aa5aea3a79a58728ae5902fa091da16d6c77967415988938a63e304c86c4701d0de48f1f626cc25520a23a339a2f011f44fb11442af302f56af9429b0a0c4a4489b0dfa9728f61ef279f74796adf511fea96138815305178ca22644fb423c8b6fd96feb152839780e9a8f4460e06449c11f3afd013ec604a01e24e904a7984b0281d78d20b6bd2b8048b936d786c4aa7cec82390223cb81ffbad18dacc73b19520996231a0b3d97c82370f62acc2aae30d0f10ea1337ee10d212d48ba9b06ec950692448ca8eb5e999faff07e0cb2f4532cbc25813ec604a01e24e904a7984b0281d78d20b6bd2b8048b936d786c4aa7cec8239015305178ca22644fb423c8b6fd96feb152839780e9a8f4460e06449c11f3afd0038e1b5339850e19e2fc7911af89d082259638b3aae10185dcd6bb52e07137e71540891272c824fb1e2c56ee54b95bf183eb29672173cfd84c803e1d7d20b17d112929cb51eb80593e6c023a95db602854a404133b0f58e87eaf657b0856be6d17f387f77a193286c0314b2c8fd9175b094b6625b3252ecb07c329c8d86514f31337ee10d212d48ba9b06ec950692448ca8eb5e999faff07e0cb2f4532cbc258223cb81ffbad18dacc73b19520996231a0b3d97c82370f62acc2aae30d0f10ea13ec604a01e24e904a7984b0281d78d20b6bd2b8048b936d786c4aa7cec8239015305178ca22644fb423c8b6fd96feb152839780e9a8f4460e06449c11f3afd03868f1fc4154ada4d89d01031f989ca739845260c59a5d76fa0a76fd12a885f613dddc3bc414dca0d05c78f14722bcf01b1794b46a71a8244d426d21300fe75a2905530de72e0fcf19466e4164a45f14cf5e3fd54aa79e63273aec686f437f1800175eb4e4d6a310e556df25c110186e8e912a63a38ce9505f37a2db71785448384ec62a428d3b92c23f95ed860ecd81f89b88c6f437ef76055ace077faf2c3824e2c7cef01cf1a6438c74d27e45fb4d9e21c8c8a3e6fc4363ea64ef922ae27217f387f77a193286c0314b2c8fd9175b094b6625b3252ecb07c329c8d86514f3112929cb51eb80593e6c023a95db602854a404133b0f58e87eaf657b0856be6d12f040c501ba43b57ea6f6eb3d2e877608e34cd16194c358aa96a6f6f3e297130f67e159915255f945b2e7ee050b70f915abcb465ab4202542c64ab1f528f09507d0e40e121f1f4e8986f7a480f5a0b08021963f96fe62fbe20ae41eda1286ec214bcdb4b9e59391751655c2a4bed6d2ddcdd3f9573624b7a467ab2506a94c741337ee10d212d48ba9b06ec950692448ca8eb5e999faff07e0cb2f4532cbc258223cb81ffbad18dacc73b19520996231a0b3d97c82370f62acc2aae30d0f10ea13ec604a01e24e904a7984b0281d78d20b6bd2b8048b936d786c4aa7cec8239015305178ca22644fb423c8b6fd96feb152839780e9a8f4460e06449c11f3afd00f67e159915255f945b2e7ee050b70f915abcb465ab4202542c64ab1f528f09512f040c501ba43b57ea6f6eb3d2e877608e34cd16194c358aa96a6f6f3e2971307d0e40e121f1f4e8986f7a480f5a0b08021963f96fe62fbe20ae41eda1286ec214bcdb4b9e59391751655c2a4bed6d2ddcdd3f9573624b7a467ab2506a94c74223cb81ffbad18dacc73b19520996231a0b3d97c82370f62acc2aae30d0f10ea1337ee10d212d48ba9b06ec950692448ca8eb5e999faff07e0cb2f4532cbc25813ec604a01e24e904a7984b0281d78d20b6bd2b8048b936d786c4aa7cec8239015305178ca22644fb423c8b6fd96feb152839780e9a8f4460e06449c11f3afd00837e1a9b0b428e63400481beaee9e5612ba535afb2ddee2612f0dbd343c23fe3372ebdfbea8ce399b737a865eacee23a5001068cdbdb38d21720e3ebe8cbbaf290df54e88e32cef331ddbd06752ed212279984ccd4574beffd4161812cddafd000ebc74432185f0cb7f7196be618a623b75d1ec20ef12f4869e792bcdedf86328d8c0eef6e44ce7147cd48993a9db894e097469267715e47a641c92706499d9227a46d7526d8822a0c80982e3c39c2eacfa22f2063459c0c64a2431e9b39a4f1ddbdde635dd1d29298e4fecd5d5ec057b71b6435eb0e5073accddeee9fa79890b40d3dc962795b6d50efd7a4fde8b7de27db3f58f83a2ac4ba5b154f6c159d73421652f80dfa1c471acc003a4e13536ab5fd0ea76b20c092e8986c28ff83b721f86ab10cb0b24dad0ee3be3217cc79d764fcaa83178cd9076b5b3fbf66834f4214bcdb4b9e59391751655c2a4bed6d2ddcdd3f9573624b7a467ab2506a94c7407d0e40e121f1f4e8986f7a480f5a0b08021963f96fe62fbe20ae41eda1286ec319abe9b685d329b315c1c7e71a7b703cf7f2b1517c6ca4a2a7460d30423cc56260fc33950306a005105c0d9bc887de9f26676d2a9f45f06b26f6356e74ef0621dbeb5b85635924604eced52f3004f0ebf7f13424a460dc509ac44ae5efde0c70b5dfc0a75cf2099f9b0601432b428749e7056f6a3ee79ee7cc64a9581bdf2992a08fa239afb09c2a988c51112da46edfdfbe0294838a0e483d9a8a5a2e479281dd6ba8a32a474f2cbb5161a007d059303a22ab12905e063b00298e0eda34a31098b6a2d7ead0c312771f4b457fa2ec159bcf80b1d6cbb2b95f19d0621be60af1f9147954d57a6aed72b58b2cdba48c20432722dd0c7cc87f080f23dbefd72b100000000000000c800000000000000390000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e00000000000000060000000000000001000000000000000000000000000000205a8a6d6822d757b39053f2d696b440911b98fb855bd584870549e7ded4c8f784000000000000000100000000000000010000000000000020ea132e6ad465bc3d576d24943e8eb110cbbe9e0822e43ab2b485cff78cfe7bbf0000000000000001000000000000000100000000000000206402373ddcb71c9fa2bfe1d2d9097bfb1e67c3a16c2603e6850eedece20f804700000000000000010000000000000000000000000000002093496aa9b95cdfb66da9c0d5bc5df817484a2a333e9349baecc93bd74a2ca4730000000000000001000000000000000000000000000000209fbca920ee0c87a956f99c4f1362a800f24be48892fb636d69c31e2a28f6ac89000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000003900000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000000000000000000020b9754dbc7d8d3eefeff2097a536bf8392001674a00a2100b0f5362195773d33800000000000000010000000000000001000000000000002087acc052c4befcbc863390a53bc9fe76ddf39509151f111da33e34eefa9c20bb000000000000000100000000000000010000000000000020ec80243d3ec903cb562c8eacb603f6c834430b23f15d562812829d19ab4c355c0000000000000001000000000000000000000000000000200c0b006e9ce5ab8dee54461051bb96c286fd71b34dc6edc2cc81ccb3100d316500000000000000010000000000000000000000000000002009d96f34c0d0d0c579558695e2590b6b8a00dc82f66b0ed035313048e74ae7cb000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000039000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000000000000000000201434b750fa4c79a6abbb555e49c6de275c5917f1a7745ce0f094cc6f45451d50000000000000000100000000000000010000000000000020e25b16e92ce565166fe90f1c3edb66f7f7a147fe1eb50d049a44d69786c76df90000000000000001000000000000000100000000000000208e2274770ab1400a8d4a14228b5b83fbbc2f8b567f0d93bae220f05170b20030000000000000000100000000000000000000000000000020a724c8ade8149e1cc611772680cb6d18385ad3f0e4e5bb60e4780827cedd136c0000000000000001000000000000000000000000000000209e4aa536330b2d7a31d018a0c66389dc79b3652f4ba9a731d52185c1d2764761000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000039000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020deed836067856071ea7a63330beedf7de96c65e2598acaca714fc1e308998f90000000000000000100000000000000010000000000000020f33d0621a9be5d0bc10fb9ba479d2c92b9442af4ac19c6bc422738323447ccbf0000000000000001000000000000000100000000000000204b85a596b27c62a80e804a5f440e38fd1798e192f2e4faf6c9d937e152644b4f000000000000000100000000000000000000000000000020488cdfd2909dddf32aafba620adfd844cf7f0e6eae4371d0ed616315e9b3d1e900000000000000010000000000000000000000000000002068e96971008bee2f90df118bffada99c074a0d2c49bfc1b99915b2dcf51048a20000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000003900000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000000000000000000202c3deceeaa53a4fd7cb0576d0c27372976b9f6f95317d05b21ccc995dfa7f60500000000000000010000000000000001000000000000002004eac4235e209d96bd17c310b61b8b64f2de73bff9eedc68f3d5329676b3529100000000000000010000000000000001000000000000002090d7b0bcec2a4257083160dd8ffbec8f4d56bdf900f2859e017373f837e3c55e0000000000000001000000000000000000000000000000200aeeef018d0928774997734b759241fff2f2f118735c3cc567f475600c93c6450000000000000001000000000000000000000000000000209c3cc5f2e03bbb6fbb6a00377debdbb0ff07e93db8e65b607e9ce577d2bff4060000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000260000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e000000000000000600000000000000010000000000000001000000000000002002264f66321999533318a66b630c922ed2c8afd79f75ad3ad7e2546988d2c229000000000000000100000000000000000000000000000020ce6cbec44c6750b87c769f2196e739261249641951d381617e8405bbf0202556000000000000000100000000000000000000000000000020e8b9aa258428d11be94220c2dd6dc9be6f7dfbf6c563495f34ac19fe54c7a02b000000000000000100000000000000010000000000000020acd5d62b97e6c33a02d4331e361fc284fac3d4751616f3f316c28ea08f63c5d000000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002600000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000100000000000000205e9bb0baae243491c7eb032dee99b7d36c82ec05b60e64eddd17c8be11cd6d5600000000000000010000000000000000000000000000002060fdc81936cb56fefc4ae765ed50a0407b33f19eff3eee870f07317cdb2ef330000000000000000100000000000000000000000000000020ed1cdc4693f53dc4db6ac19967a9854c6557cdba9dd1ef73aabe5680048340b900000000000000010000000000000001000000000000002039c719fa3f6fd86de45cdcbe116bc929d735098bfd57ba95c955727b3f86087f0000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000026000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000010000000000000020dc8aa5c3c55a97bdb7bd81ca0c78663eb6c0009ca983ed54c552867d176e3004000000000000000100000000000000000000000000000020a09e4a0cff4a2719030a0f657ce42c12a2cd4cc27b8cdfd21d1cbcf868b7190b00000000000000010000000000000000000000000000002057270586231d0130eb017de9b965c71be11d39fda49cb46ecc4fc4cf2baff38a000000000000000100000000000000010000000000000020a814a34f76af1733811481d105364da0ad5c6889b20ac62ec695d95bad6ccfa40000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000026000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000010000000000000020d9d44b09d08b8219649fee03bc1d8d6f144f9d725dc46d7d1cd32c7712d6cd30000000000000000100000000000000000000000000000020a9887501139d04ce4e8fa79b998c30f58c8d5ba78c911d4db7001a5436dc18fd0000000000000001000000000000000000000000000000208acf7b66bc86786435ec6708d199d5b065b2e43f560fdf2547c4cd28ea0352ab000000000000000100000000000000010000000000000020609f06fb0f917dd5aff48faaa7c9a26932b0164e4ceb2fcb49512a7126aed0240000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002600000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000010000000000000020884f313cc7a8412ea0712b8a5714e7da07720e79a0b4fd720bc61b0bf836cec400000000000000010000000000000000000000000000002032ce4870dfa2fb4284adb38aa43f49a3a3c28255497b93a85731134cd0486a2d000000000000000100000000000000000000000000000020d8d5941d890c32e24cc840a8ee7a932a739bad1dbbbe6985a9d3ea1a07252ddc000000000000000100000000000000010000000000000020581702be02dcae0d01501fe971bb01119d074a9fa43014b6ad4081e583d632e900000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000230000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000000000000000000020a9d3552f35a3b146b916ecafa15b906c5add1ec933ca9cba051f2f922830d2ae000000000000000100000000000000000000000000000020a1cf4fcf6b4c5272378721d94cae5230337db475b12639f089ecd14272235296000000000000000100000000000000010000000000000020bc7a78bb3c611e1b5f11dcbff023f3a085ed0bf8ecd7f9ece0c033dcabf6b6fc000000000000000100000000000000010000000000000020acd5d62b97e6c33a02d4331e361fc284fac3d4751616f3f316c28ea08f63c5d000000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002300000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000000000000000000020d546ef1f0e27c625cd1a42a9bd0e822dd1f8e2799bc24069109b0793320bbced0000000000000001000000000000000000000000000000207055df64fb4b8fa8d3782b1a47cb27ffdd974e7ce64f3d2e86c91905d32cf2e5000000000000000100000000000000010000000000000020b956db54d172694c1630b069cbb2710ecdaacf116a26dcabdef5e48e9f4e783c00000000000000010000000000000001000000000000002039c719fa3f6fd86de45cdcbe116bc929d735098bfd57ba95c955727b3f86087f0000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000023000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000000000000000000209200bfaa351e2967f2fc54764d972b7f8e00847d3f6e6fad04c1499eaaafa40d000000000000000100000000000000000000000000000020985c4188d8e7254f787ee9c79ad36055d80ccf27b4944a8eabbd5fe550b5c33500000000000000010000000000000001000000000000002087e4224ac05bf39143e5b2b8f31e6ff5c9879040db1e5c52a6074d35b63b457f000000000000000100000000000000010000000000000020a814a34f76af1733811481d105364da0ad5c6889b20ac62ec695d95bad6ccfa40000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000023000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f32938000000000000000600000000000000010000000000000000000000000000002072832eabee4d2394be19da019859394a2dece85dacf6dcf800f646033b065c04000000000000000100000000000000000000000000000020ca0664d700126a9fe07df61ee5ef4256a47f6538c636d54d6fa2789f4f9ed53d0000000000000001000000000000000100000000000000200998593abc6ae74ad4db1e3faee5a7426d83e0283ebfbba81490532b53fb3c67000000000000000100000000000000010000000000000020609f06fb0f917dd5aff48faaa7c9a26932b0164e4ceb2fcb49512a7126aed0240000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002300000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000000000000000000020c4cf0884a911747c8bdab3616e880562f218bb45ebca6b9b3466ee45050879e900000000000000010000000000000000000000000000002070b761bbe1a12b3e3924a1a4715dfefdbd10c1f0e149a866baff3973cb6aeffa000000000000000100000000000000010000000000000020d51dbff523abfb61534f3ecb97144bf53b03b4e9ba33067030fe9ec8101607cb000000000000000100000000000000010000000000000020581702be02dcae0d01501fe971bb01119d074a9fa43014b6ad4081e583d632e900000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000010000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000000000000000000020767a689909871821a06a373e9b587cc568cea87792317f5b3abb5ddd9ca6c359000000000000000100000000000000010000000000000020634594a54a3ecf1f4589730560dd9d0b8bc9e1561285bbfee3748d98ea0da35f0000000000000001000000000000000100000000000000209976a44019a2cc25e24d8e0128101ba53e738bdd0bad7d83caec1a8da22b1500000000000000000100000000000000010000000000000020407e1d016b2156134625c6c0acace3fca412163392f1c4920830c79723de997b000000000000000100000000000000010000000000000020659b6b070f44812ca2ffc215c67485587dd0d144e05eb3647148b4f5ca7360120000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000000100000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000000000000000000020756e52a4d940aed4b19471722db1b0f36cb3a58e6645651ae95985d0859986fe000000000000000100000000000000010000000000000020185f7f0d727176797003911a517f775becf44208e97882249031521efd13e60200000000000000010000000000000001000000000000002061c5b4eb1c0a7e74093fb022c5f5951fb2c504423b1f2e8e1f5cb5c30c6896090000000000000001000000000000000100000000000000204bc065f3dd3e3b30a0dac92ed91cf22f8259a480aa87d1c980b53b9a86e52a01000000000000000100000000000000010000000000000020dbce0776e37eb7c2a9e60b3254ce5ea6bed0db83c8c2e6b120494c0d9ed2a76b000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f0000000000000001000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000000000000000000206a21cf8dad19b95d6976b80a0ea46f71e5acaeb0d7ce0c952c612cb0e1b39b50000000000000000100000000000000010000000000000020038abde83aa667d0593b65b0be784caf2a567a1f56f609be7c79d4a4eca6556000000000000000010000000000000001000000000000002098c6a10d6e69554c9a66612e611bde1613925c85c294eac9ae4153c688311745000000000000000100000000000000010000000000000020a4de7176464be9124785e24d63c211255e653cd53798f2b73611e5f15feef7c70000000000000001000000000000000100000000000000207e13fb6690e345dd8bdf6ed863b9142988ca740ed6091c9fae658b221f7d7334000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a0000000000000001000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f3293800000000000000060000000000000001000000000000000000000000000000208254de19a26a51e2c3efe2de447c330663d42d71497f66d76cbae45a84e24a4c000000000000000100000000000000010000000000000020128769e0198c6ed1e41b6f18e1416c5d8447b78da326db64eb3a16e5ab5c7abc0000000000000001000000000000000100000000000000209ee50eb11a3de3483219cd22981a0f0b1d7086e1372d0840adab511808b3142a000000000000000100000000000000010000000000000020d2ac9a6c10a81d256c41bc67e07527d5a36e5dc54a2c6b984bb939fbc8ccd413000000000000000100000000000000010000000000000020cc3aa606fdcbf96592df9e3ecf28c535384ef37bff659d91d2f5982a3a391cb0000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000000100000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000000000000000000020205ab1166cdd5236fd2fc0f67bc609abb7292e61bd1a7c4785cc1b331f05a72f000000000000000100000000000000010000000000000020104351b77693ba3c1b45c85533542bc6dbd5726b5cf5447c12b9f193d2931fca000000000000000100000000000000010000000000000020e98f654c7d4a4d72873302de6fc89a06a256de8b10b07b607e786bfeb6213059000000000000000100000000000000010000000000000020482529a81b98175b81ad742dd6e90b5edefabf8d4cb4e27a6d7438b3191f6bad000000000000000100000000000000010000000000000020af9f96d3edd125bc1e0a105b9ffdc8e3024dc69325a78b2a02611964156a8e7a000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b9272000000000000001f0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000000000000000000020d8fd6c31b297b06ec8cedef4e547fc71427987a2c64e406b71148ddd42bb420a000000000000000100000000000000000000000000000020a6a1702db35b748e42f0f110ec40716f747145613b2b25986a5c3dc74e1ab13a000000000000000100000000000000000000000000000020ab170dad02da8e5a4c268e132c454adc4b6729b907eb3b0647e0b75ba06ca1ae000000000000000100000000000000000000000000000020261c2de001295b8ae6db8a3110d2d193b80167fee59f8f542a00ce1709747a6900000000000000010000000000000000000000000000002028d0668b3b0bb626ddb7371edbb5222936f68264e2cfb9376038323928d12a950000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000001f00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000205e6599843a8bfbe75ddeb3d418b0d88fc52aa4be4edbcf3d696e60c3f106e1080000000000000001000000000000000000000000000000203a2146e92a3ad3706b36813e4c45136f975811c6589e6331024a956042e7768c00000000000000010000000000000000000000000000002024299b0256071ee4c8943b75440fdb14cb0a87a9d470ca0d23930e470c29fd2d00000000000000010000000000000000000000000000002068af7e3f604105e672bb008f7f6497a71b4230ffaedefc6e201e3a965f80aad9000000000000000100000000000000000000000000000020d7f7d11996573b5da0d2cbe7d58b7d9ee40d6b31bbfd992e1387dae096d31597000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f000000000000001f000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f299941856000000000000000600000000000000010000000000000000000000000000002036561d9f344965bc8216ec0e2d9880e53598efc303d646a26e1a4dd53648983f000000000000000100000000000000000000000000000020d556e53e89946cc6a63053d2f237bd42df808fd51872fe3a16ac4cf4f89b865e0000000000000001000000000000000000000000000000201f0f92e1ba9dfc9c805ddaed879861bdc05c3a78b978e8bb3a8c041349d557fb0000000000000001000000000000000000000000000000202f82c0c1a186d9e1264fb0ac164a09274cdc7fa84262a440da9649a8aa36aaef000000000000000100000000000000000000000000000020824ce8426988565f955f44ee03d626fea805a15ec4db70b129a69a2d7b15a5aa000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a000000000000001f000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020183d0ffee9a19383e2806b2c6ed73c2eb138ef696f30de1a14a5afdab1d16abd0000000000000001000000000000000000000000000000207d27cce8e7d4819cb9c3a6e141c2d34d37acb8e1fc1075a3bb2d20b8408e984c0000000000000001000000000000000000000000000000208e9ca24717ee2452a64953880cd16ce2ed80e0ab655a248e3a0d70cb8d9ef4b8000000000000000100000000000000000000000000000020cbb94a1fa90daec34851502087bc06a9b8934f9e2e87d1242484cea77e968a42000000000000000100000000000000000000000000000020d488fb112c8e7e22dfab501043651ee3017cc449d7e2043156d45aaf96580343000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000001f00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f000000000000000600000000000000010000000000000000000000000000002072fee7ed27465e7307ca816750847f68b589444b0d01a065a5f23b352818d5b10000000000000001000000000000000000000000000000202671dd30be892f7113a73cf7f3a8445d53ddc40a8e9973ee587af2a0c1606cb80000000000000001000000000000000000000000000000201a61d9687a39c69fc39cbb583e8569c27f226321d4438d1f17092925ea3cf032000000000000000100000000000000000000000000000020c1e67f4fe465546990e3ad91e731dd95b1c88152d8ecc54d60d94cbfdca528650000000000000001000000000000000000000000000000200b1317ae38b570b4c049c419190fae276bb0ef81fc42fd65f1a137ebd541d9ae000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b9272000000000000003c0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000010000000000000020218082b41cfa41d4c64ce9224ed3833644389533fd9a858bc3f817ad52382529000000000000000100000000000000010000000000000020bcf05d3c5eb71fed288eb4b419a188c8860206b533025c802ed5cd504e55c1b00000000000000001000000000000000000000000000000207a1b3b2568d13a2eef371f9a6406e1e5ea8ea67cf4f7c3e9e841cfc385002de400000000000000010000000000000000000000000000002093496aa9b95cdfb66da9c0d5bc5df817484a2a333e9349baecc93bd74a2ca4730000000000000001000000000000000000000000000000209fbca920ee0c87a956f99c4f1362a800f24be48892fb636d69c31e2a28f6ac89000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000003c00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000100000000000000203a3eb56fb5169a0d4af4df327ff0e4fc2a92b36d4502ecf07be5de233a419fcd0000000000000001000000000000000100000000000000208b25ecd6ff537916132b0a2c9828a23713e826894f39c2af049fb06a056e2443000000000000000100000000000000000000000000000020ca4326b0ac9a40f7962046fbc2ae4a247b71dee20ff8514aa46bc9a7f710d2460000000000000001000000000000000000000000000000200c0b006e9ce5ab8dee54461051bb96c286fd71b34dc6edc2cc81ccb3100d316500000000000000010000000000000000000000000000002009d96f34c0d0d0c579558695e2590b6b8a00dc82f66b0ed035313048e74ae7cb000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc000000000000003c000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f299941856000000000000000600000000000000010000000000000001000000000000002047daa61a055f328185aaf797494e69028c4580769c701d9ced9ee62c93bb0cd900000000000000010000000000000001000000000000002070475275547a4e19ad5111cbc2761f67ebbb11db7b19d3e5da5b0a1829c4ec5a0000000000000001000000000000000000000000000000205863974ae834cb6f7cdda3179a5eb9db26199ae6501319daa7e9350565a01a52000000000000000100000000000000000000000000000020a724c8ade8149e1cc611772680cb6d18385ad3f0e4e5bb60e4780827cedd136c0000000000000001000000000000000000000000000000209e4aa536330b2d7a31d018a0c66389dc79b3652f4ba9a731d52185c1d2764761000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e000000000000003c000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000010000000000000020e7e880c0271d8bbb762151274053eb5387087ee11edf17aa5c2a62d86b1240de0000000000000001000000000000000100000000000000200bbb509da79f5f8b438035f866b33e7d35ea0d24c196577e58c711e996e9d67a000000000000000100000000000000000000000000000020e0d59165174c1b01a1778b0c00ea048f351711781eb9b7905bac635125041c7c000000000000000100000000000000000000000000000020488cdfd2909dddf32aafba620adfd844cf7f0e6eae4371d0ed616315e9b3d1e900000000000000010000000000000000000000000000002068e96971008bee2f90df118bffada99c074a0d2c49bfc1b99915b2dcf51048a20000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000003c00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f000000000000000600000000000000010000000000000001000000000000002074d82bac807ca26403177015863222205cef6dec7e0c4a7d3ac57d28e79987c6000000000000000100000000000000010000000000000020b2bd6c7bce44e8cb1dd2c1ada3f46a4ef84aa70a4f6d582427f82789c25091290000000000000001000000000000000000000000000000207307458ebfa1b463080bdf0c8b226e68af95d3ce03c81f574dc53886fc92c5510000000000000001000000000000000000000000000000200aeeef018d0928774997734b759241fff2f2f118735c3cc567f475600c93c6450000000000000001000000000000000000000000000000209c3cc5f2e03bbb6fbb6a00377debdbb0ff07e93db8e65b607e9ce577d2bff4060000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f8000000000000001f0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000000000000000000020d8fd6c31b297b06ec8cedef4e547fc71427987a2c64e406b71148ddd42bb420a000000000000000100000000000000000000000000000020a6a1702db35b748e42f0f110ec40716f747145613b2b25986a5c3dc74e1ab13a000000000000000100000000000000000000000000000020ab170dad02da8e5a4c268e132c454adc4b6729b907eb3b0647e0b75ba06ca1ae000000000000000100000000000000000000000000000020261c2de001295b8ae6db8a3110d2d193b80167fee59f8f542a00ce1709747a6900000000000000010000000000000000000000000000002028d0668b3b0bb626ddb7371edbb5222936f68264e2cfb9376038323928d12a950000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000001f00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000205e6599843a8bfbe75ddeb3d418b0d88fc52aa4be4edbcf3d696e60c3f106e1080000000000000001000000000000000000000000000000203a2146e92a3ad3706b36813e4c45136f975811c6589e6331024a956042e7768c00000000000000010000000000000000000000000000002024299b0256071ee4c8943b75440fdb14cb0a87a9d470ca0d23930e470c29fd2d00000000000000010000000000000000000000000000002068af7e3f604105e672bb008f7f6497a71b4230ffaedefc6e201e3a965f80aad9000000000000000100000000000000000000000000000020d7f7d11996573b5da0d2cbe7d58b7d9ee40d6b31bbfd992e1387dae096d31597000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f000000000000001f000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f299941856000000000000000600000000000000010000000000000000000000000000002036561d9f344965bc8216ec0e2d9880e53598efc303d646a26e1a4dd53648983f000000000000000100000000000000000000000000000020d556e53e89946cc6a63053d2f237bd42df808fd51872fe3a16ac4cf4f89b865e0000000000000001000000000000000000000000000000201f0f92e1ba9dfc9c805ddaed879861bdc05c3a78b978e8bb3a8c041349d557fb0000000000000001000000000000000000000000000000202f82c0c1a186d9e1264fb0ac164a09274cdc7fa84262a440da9649a8aa36aaef000000000000000100000000000000000000000000000020824ce8426988565f955f44ee03d626fea805a15ec4db70b129a69a2d7b15a5aa000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a000000000000001f000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020183d0ffee9a19383e2806b2c6ed73c2eb138ef696f30de1a14a5afdab1d16abd0000000000000001000000000000000000000000000000207d27cce8e7d4819cb9c3a6e141c2d34d37acb8e1fc1075a3bb2d20b8408e984c0000000000000001000000000000000000000000000000208e9ca24717ee2452a64953880cd16ce2ed80e0ab655a248e3a0d70cb8d9ef4b8000000000000000100000000000000000000000000000020cbb94a1fa90daec34851502087bc06a9b8934f9e2e87d1242484cea77e968a42000000000000000100000000000000000000000000000020d488fb112c8e7e22dfab501043651ee3017cc449d7e2043156d45aaf96580343000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000001f00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f000000000000000600000000000000010000000000000000000000000000002072fee7ed27465e7307ca816750847f68b589444b0d01a065a5f23b352818d5b10000000000000001000000000000000000000000000000202671dd30be892f7113a73cf7f3a8445d53ddc40a8e9973ee587af2a0c1606cb80000000000000001000000000000000000000000000000201a61d9687a39c69fc39cbb583e8569c27f226321d4438d1f17092925ea3cf032000000000000000100000000000000000000000000000020c1e67f4fe465546990e3ad91e731dd95b1c88152d8ecc54d60d94cbfdca528650000000000000001000000000000000000000000000000200b1317ae38b570b4c049c419190fae276bb0ef81fc42fd65f1a137ebd541d9ae000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b927200000000000000100000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e00000000000000060000000000000001000000000000000100000000000000209058d03acc19a8bc5340a3803edc6e374875e4317924b7874af789b8309248dc000000000000000100000000000000010000000000000020516f64bfc51bc004bb05716451c926f5dba83d635199714f6c0eadd58d93efd60000000000000001000000000000000100000000000000200c9de449bb53c4d3ff3de2e3de5583618b02e5f4d842cb51120fcb0705bce2050000000000000001000000000000000100000000000000201ec85a72ab785b7c48cb10710fca42c4de34b9d99094486a7cb14fb0a459812f00000000000000010000000000000000000000000000002028d0668b3b0bb626ddb7371edbb5222936f68264e2cfb9376038323928d12a950000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000001000000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000100000000000000209422eaba572d0230b9db8deeee6952d3bda2f4db8004c7c723b03d7a19252e2100000000000000010000000000000001000000000000002064692406dac2faece78ae6e7c3c9c555173148e15ceda94cc162ed9ce7b88ac50000000000000001000000000000000100000000000000208331eff39080c5e921f7c00619019db156a8598c1869a62be83587b5322ba54700000000000000010000000000000001000000000000002048060202f26e09afa01220fe2b845539f7f28e73ab6b16690996cf8c05046244000000000000000100000000000000000000000000000020d7f7d11996573b5da0d2cbe7d58b7d9ee40d6b31bbfd992e1387dae096d31597000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f0000000000000010000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000100000000000000201629ca3ff4a2ed91bb100ec345fe010146b9f4f0be75a77509ae16513dd4fe0d0000000000000001000000000000000100000000000000204b86bc2c3198c3bf594b472abd611a3235fa1a607f9fb736f1f08f1671b4730000000000000000010000000000000001000000000000002012512ccbf3baa32e59f7532d63c9d35c7b894cb9479c9edcbe5e610d613f92570000000000000001000000000000000100000000000000200aed2038bedd56c46aa92e044dbb04e9d6d047ddb3819c31056472a336358fb2000000000000000100000000000000000000000000000020824ce8426988565f955f44ee03d626fea805a15ec4db70b129a69a2d7b15a5aa000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a0000000000000010000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f3293800000000000000060000000000000001000000000000000100000000000000209a329f0413ac474176ecca4647f69df6c51fec62d899de69a02cce13c6c0e5000000000000000001000000000000000100000000000000200f549d309e2c4517d858da3f696bb6db8dd3ea8de89d64df7ef3b933546e88c2000000000000000100000000000000010000000000000020ecc01f0a50e51a5220ea92b3ffdb280ab65eb082fd2b9abb9493aba6e6bd8af00000000000000001000000000000000100000000000000204e291298e718e4215dade20a34700b89a0336d8bede04b427e3792a09b3a48cb000000000000000100000000000000000000000000000020d488fb112c8e7e22dfab501043651ee3017cc449d7e2043156d45aaf96580343000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000001000000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000100000000000000206c5c84d1c336ce7447c1cc239aa4e8667be8aec4a418e03dd409ed420dd75cc8000000000000000100000000000000010000000000000020af0ebc5c462c6289fc5ac745cee7ffa729b715fb9728148bdc7beb06509bb162000000000000000100000000000000010000000000000020a25d9f27f69d1fa72e34576a35a754dbd543ba6fc98029a6c29b58d62a739c3d000000000000000100000000000000010000000000000020b4bfefcc77fb1c06d34fae0ff743553b71633d0f2755a6c510a2a7a843af6fbe0000000000000001000000000000000000000000000000200b1317ae38b570b4c049c419190fae276bb0ef81fc42fd65f1a137ebd541d9ae000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b927200000000000000110000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e00000000000000060000000000000001000000000000000000000000000000208cb54734c4d7f5b9b1c960092a47e177b16eb9ff003c498efa1d9780d33c3d78000000000000000100000000000000010000000000000020516f64bfc51bc004bb05716451c926f5dba83d635199714f6c0eadd58d93efd60000000000000001000000000000000100000000000000200c9de449bb53c4d3ff3de2e3de5583618b02e5f4d842cb51120fcb0705bce2050000000000000001000000000000000100000000000000201ec85a72ab785b7c48cb10710fca42c4de34b9d99094486a7cb14fb0a459812f00000000000000010000000000000000000000000000002028d0668b3b0bb626ddb7371edbb5222936f68264e2cfb9376038323928d12a950000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000001100000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000201e990e27f0d7976bf2adbd60e20384da0125b76e2885a96aa707bcb054108b0d00000000000000010000000000000001000000000000002064692406dac2faece78ae6e7c3c9c555173148e15ceda94cc162ed9ce7b88ac50000000000000001000000000000000100000000000000208331eff39080c5e921f7c00619019db156a8598c1869a62be83587b5322ba54700000000000000010000000000000001000000000000002048060202f26e09afa01220fe2b845539f7f28e73ab6b16690996cf8c05046244000000000000000100000000000000000000000000000020d7f7d11996573b5da0d2cbe7d58b7d9ee40d6b31bbfd992e1387dae096d31597000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f0000000000000011000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000000000000000000200d73c1dad4ac3ed5fb3b2aac1d8c53d8e962a01cdb8353c33eea4fcef6ff28950000000000000001000000000000000100000000000000204b86bc2c3198c3bf594b472abd611a3235fa1a607f9fb736f1f08f1671b4730000000000000000010000000000000001000000000000002012512ccbf3baa32e59f7532d63c9d35c7b894cb9479c9edcbe5e610d613f92570000000000000001000000000000000100000000000000200aed2038bedd56c46aa92e044dbb04e9d6d047ddb3819c31056472a336358fb2000000000000000100000000000000000000000000000020824ce8426988565f955f44ee03d626fea805a15ec4db70b129a69a2d7b15a5aa000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a0000000000000011000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f32938000000000000000600000000000000010000000000000000000000000000002040371248d7160cc6c882cd07b45bab36da53eae866a0cdca536d440c12984ff30000000000000001000000000000000100000000000000200f549d309e2c4517d858da3f696bb6db8dd3ea8de89d64df7ef3b933546e88c2000000000000000100000000000000010000000000000020ecc01f0a50e51a5220ea92b3ffdb280ab65eb082fd2b9abb9493aba6e6bd8af00000000000000001000000000000000100000000000000204e291298e718e4215dade20a34700b89a0336d8bede04b427e3792a09b3a48cb000000000000000100000000000000000000000000000020d488fb112c8e7e22dfab501043651ee3017cc449d7e2043156d45aaf96580343000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000001100000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f000000000000000600000000000000010000000000000000000000000000002062e2d6891fe340ec212625ae8767e24e5155c550dc02ab23cc028b00636fcc66000000000000000100000000000000010000000000000020af0ebc5c462c6289fc5ac745cee7ffa729b715fb9728148bdc7beb06509bb162000000000000000100000000000000010000000000000020a25d9f27f69d1fa72e34576a35a754dbd543ba6fc98029a6c29b58d62a739c3d000000000000000100000000000000010000000000000020b4bfefcc77fb1c06d34fae0ff743553b71633d0f2755a6c510a2a7a843af6fbe0000000000000001000000000000000000000000000000200b1317ae38b570b4c049c419190fae276bb0ef81fc42fd65f1a137ebd541d9ae000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b9272000000000000001e0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000010000000000000020ba15f8caa378deb827f35ab84ee3c8ef16117ea97e57e0f20b14ae88d236b6ff000000000000000100000000000000000000000000000020a6a1702db35b748e42f0f110ec40716f747145613b2b25986a5c3dc74e1ab13a000000000000000100000000000000000000000000000020ab170dad02da8e5a4c268e132c454adc4b6729b907eb3b0647e0b75ba06ca1ae000000000000000100000000000000000000000000000020261c2de001295b8ae6db8a3110d2d193b80167fee59f8f542a00ce1709747a6900000000000000010000000000000000000000000000002028d0668b3b0bb626ddb7371edbb5222936f68264e2cfb9376038323928d12a950000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000001e00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d6000000000000000600000000000000010000000000000001000000000000002085351021aea650c4597031fb7dc932b99054b360e97ca572bb6bece35ae11bdf0000000000000001000000000000000000000000000000203a2146e92a3ad3706b36813e4c45136f975811c6589e6331024a956042e7768c00000000000000010000000000000000000000000000002024299b0256071ee4c8943b75440fdb14cb0a87a9d470ca0d23930e470c29fd2d00000000000000010000000000000000000000000000002068af7e3f604105e672bb008f7f6497a71b4230ffaedefc6e201e3a965f80aad9000000000000000100000000000000000000000000000020d7f7d11996573b5da0d2cbe7d58b7d9ee40d6b31bbfd992e1387dae096d31597000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f000000000000001e000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000010000000000000020f821bc8956540d674f85944695ec2cdab831a2a389a2d11a3d7cb0e72d70c402000000000000000100000000000000000000000000000020d556e53e89946cc6a63053d2f237bd42df808fd51872fe3a16ac4cf4f89b865e0000000000000001000000000000000000000000000000201f0f92e1ba9dfc9c805ddaed879861bdc05c3a78b978e8bb3a8c041349d557fb0000000000000001000000000000000000000000000000202f82c0c1a186d9e1264fb0ac164a09274cdc7fa84262a440da9649a8aa36aaef000000000000000100000000000000000000000000000020824ce8426988565f955f44ee03d626fea805a15ec4db70b129a69a2d7b15a5aa000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a000000000000001e000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f32938000000000000000600000000000000010000000000000001000000000000002030d6b49905be576af2c974f08de40dec367587e3f626cc9bc52f04670a7003580000000000000001000000000000000000000000000000207d27cce8e7d4819cb9c3a6e141c2d34d37acb8e1fc1075a3bb2d20b8408e984c0000000000000001000000000000000000000000000000208e9ca24717ee2452a64953880cd16ce2ed80e0ab655a248e3a0d70cb8d9ef4b8000000000000000100000000000000000000000000000020cbb94a1fa90daec34851502087bc06a9b8934f9e2e87d1242484cea77e968a42000000000000000100000000000000000000000000000020d488fb112c8e7e22dfab501043651ee3017cc449d7e2043156d45aaf96580343000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000001e00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000100000000000000208f526051780fa2a3d112fdedee88168162589e00a4943c032e8b91bc4c53d9840000000000000001000000000000000000000000000000202671dd30be892f7113a73cf7f3a8445d53ddc40a8e9973ee587af2a0c1606cb80000000000000001000000000000000000000000000000201a61d9687a39c69fc39cbb583e8569c27f226321d4438d1f17092925ea3cf032000000000000000100000000000000000000000000000020c1e67f4fe465546990e3ad91e731dd95b1c88152d8ecc54d60d94cbfdca528650000000000000001000000000000000000000000000000200b1317ae38b570b4c049c419190fae276bb0ef81fc42fd65f1a137ebd541d9ae000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b927200000000000000090000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000000000000000000020de69d45a7cfdd721b028a24fe71015f76f5aa7a273602588540d7177b2032e810000000000000001000000000000000100000000000000203b055f5ec21cdd2d321937c699cc5b005cfd392544e209343f6f4bc3609d50a8000000000000000100000000000000010000000000000020212011d70596d8f444a02b2551c63793bb6214725d0b1d4e2d024902a719d74d00000000000000010000000000000000000000000000002063b18099f915d818ff11dd06d2b4924e18e1b43d1a7d80c4018a6828759c3e2c000000000000000100000000000000010000000000000020659b6b070f44812ca2ffc215c67485587dd0d144e05eb3647148b4f5ca7360120000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000000900000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000208fb27fefef947575d8370fca7cbc77cc2ab56337c6ba1ef2b114401465fe10880000000000000001000000000000000100000000000000205c4181331efc246b6fd787984126b3c735f6b747840454826726ab672228df2000000000000000010000000000000001000000000000002008c5fc936786cf9d0af43c12be03cc772b25837622cd42f08df1c66e5e116a2a000000000000000100000000000000000000000000000020bd75800a626d45803e0ac76b5c093b70cab826c1e74d4cd0ce8e6c36106f95bc000000000000000100000000000000010000000000000020dbce0776e37eb7c2a9e60b3254ce5ea6bed0db83c8c2e6b120494c0d9ed2a76b000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f0000000000000009000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000000000000000000020572da483fb877b90672fbd6cd281dd1d8fc1e3519c9d5b6b2f16f62721a72816000000000000000100000000000000010000000000000020a7170bc0cfb0066ee2a6bc38ae323cf6155ef29a640796587131389fc7ddd196000000000000000100000000000000010000000000000020f87937c3d7f9ea889556bed01a00031a67448288e6ad311f669b4408eebc01ac000000000000000100000000000000000000000000000020842c39bed54d7be108142ed95a58b534014e03e9871691ec932be839f2294f4d0000000000000001000000000000000100000000000000207e13fb6690e345dd8bdf6ed863b9142988ca740ed6091c9fae658b221f7d7334000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a0000000000000009000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f3293800000000000000060000000000000001000000000000000000000000000000202a8823c954f6384a513c97041a12b9202fbc85be6b543238fa04ae9a70393fff00000000000000010000000000000001000000000000002076f0d827402b47129db7da8669550ecbc1c84eddedb8bef62b4d08efce600e37000000000000000100000000000000010000000000000020ad2c19c26d0488214886b03e7e4bc57d130a100d9e13ced4921d6472e2238a2e0000000000000001000000000000000000000000000000201de5bb3d887c07d54506473a20db02428ebc54d6a3c978c792d0e6f1f4de0511000000000000000100000000000000010000000000000020cc3aa606fdcbf96592df9e3ecf28c535384ef37bff659d91d2f5982a3a391cb0000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000000900000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000000000000000000020b266d01eb13c2bc656133dab42c1ec116ca3f28544f99eaba9cc7c89fe419fdd0000000000000001000000000000000100000000000000201df9ab42d54f8ea624eecc57fce828882c6b80c722d86bb88d11443ff87766af000000000000000100000000000000010000000000000020630f361882ada56a075e947b144639b306577494cfa2d14d2fd11f09586072a00000000000000001000000000000000000000000000000206e8232a0c61d237a50e6dcca4dcea8b407b71864d02b4c647447bc948ffe8ebc000000000000000100000000000000010000000000000020af9f96d3edd125bc1e0a105b9ffdc8e3024dc69325a78b2a02611964156a8e7a000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b9272000000000000001c0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000010000000000000020e3587c4b87cfa21fbef795afb84015f00eeec779982508e4e4777bb7c8c3e7ef00000000000000010000000000000001000000000000002012edb90efc6a65c82406e9e729c69705717bb9213763989a3e429db69b1fa1be000000000000000100000000000000000000000000000020ab170dad02da8e5a4c268e132c454adc4b6729b907eb3b0647e0b75ba06ca1ae000000000000000100000000000000000000000000000020261c2de001295b8ae6db8a3110d2d193b80167fee59f8f542a00ce1709747a6900000000000000010000000000000000000000000000002028d0668b3b0bb626ddb7371edbb5222936f68264e2cfb9376038323928d12a950000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000001c00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000010000000000000020cc15f3502bc1908d357811f4f0f1f25d88acdd0691457037a57c5191c683847b000000000000000100000000000000010000000000000020070faa4b0f39e22d43da05eaf01eaa74ae4dfa9cf3b4f146bc3076585fa9c02700000000000000010000000000000000000000000000002024299b0256071ee4c8943b75440fdb14cb0a87a9d470ca0d23930e470c29fd2d00000000000000010000000000000000000000000000002068af7e3f604105e672bb008f7f6497a71b4230ffaedefc6e201e3a965f80aad9000000000000000100000000000000000000000000000020d7f7d11996573b5da0d2cbe7d58b7d9ee40d6b31bbfd992e1387dae096d31597000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f000000000000001c000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000010000000000000020e45ea0ef92a87114b48b4dc2f56781fce286f690846172fedffd2cda9e29b6a50000000000000001000000000000000100000000000000201581a9112f15b5db73805221511d3b17bb0b44a8d5bdb5961d05b119e83069f80000000000000001000000000000000000000000000000201f0f92e1ba9dfc9c805ddaed879861bdc05c3a78b978e8bb3a8c041349d557fb0000000000000001000000000000000000000000000000202f82c0c1a186d9e1264fb0ac164a09274cdc7fa84262a440da9649a8aa36aaef000000000000000100000000000000000000000000000020824ce8426988565f955f44ee03d626fea805a15ec4db70b129a69a2d7b15a5aa000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a000000000000001c000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f32938000000000000000600000000000000010000000000000001000000000000002002bb23f385d33b1fdd83f3c47b2936586909c02ed6cfb9703e2e998321832e48000000000000000100000000000000010000000000000020ab7aae7bbf9e20bdeb1ab6bbe7a70c6cd858e5d76f9f05de9e38ec9f931a3ec50000000000000001000000000000000000000000000000208e9ca24717ee2452a64953880cd16ce2ed80e0ab655a248e3a0d70cb8d9ef4b8000000000000000100000000000000000000000000000020cbb94a1fa90daec34851502087bc06a9b8934f9e2e87d1242484cea77e968a42000000000000000100000000000000000000000000000020d488fb112c8e7e22dfab501043651ee3017cc449d7e2043156d45aaf96580343000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000001c00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000100000000000000200f375dbba5f3588b95d031e9297728953db05ef7da46e721b77d820ce428649a000000000000000100000000000000010000000000000020d5f15fb4972b5ea2159a542111a45a1ff217a413588328aa49a47ed613fc70570000000000000001000000000000000000000000000000201a61d9687a39c69fc39cbb583e8569c27f226321d4438d1f17092925ea3cf032000000000000000100000000000000000000000000000020c1e67f4fe465546990e3ad91e731dd95b1c88152d8ecc54d60d94cbfdca528650000000000000001000000000000000000000000000000200b1317ae38b570b4c049c419190fae276bb0ef81fc42fd65f1a137ebd541d9ae000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b9272000000000000003c0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000010000000000000020218082b41cfa41d4c64ce9224ed3833644389533fd9a858bc3f817ad52382529000000000000000100000000000000010000000000000020bcf05d3c5eb71fed288eb4b419a188c8860206b533025c802ed5cd504e55c1b00000000000000001000000000000000000000000000000207a1b3b2568d13a2eef371f9a6406e1e5ea8ea67cf4f7c3e9e841cfc385002de400000000000000010000000000000000000000000000002093496aa9b95cdfb66da9c0d5bc5df817484a2a333e9349baecc93bd74a2ca4730000000000000001000000000000000000000000000000209fbca920ee0c87a956f99c4f1362a800f24be48892fb636d69c31e2a28f6ac89000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000003c00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000100000000000000203a3eb56fb5169a0d4af4df327ff0e4fc2a92b36d4502ecf07be5de233a419fcd0000000000000001000000000000000100000000000000208b25ecd6ff537916132b0a2c9828a23713e826894f39c2af049fb06a056e2443000000000000000100000000000000000000000000000020ca4326b0ac9a40f7962046fbc2ae4a247b71dee20ff8514aa46bc9a7f710d2460000000000000001000000000000000000000000000000200c0b006e9ce5ab8dee54461051bb96c286fd71b34dc6edc2cc81ccb3100d316500000000000000010000000000000000000000000000002009d96f34c0d0d0c579558695e2590b6b8a00dc82f66b0ed035313048e74ae7cb000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc000000000000003c000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f299941856000000000000000600000000000000010000000000000001000000000000002047daa61a055f328185aaf797494e69028c4580769c701d9ced9ee62c93bb0cd900000000000000010000000000000001000000000000002070475275547a4e19ad5111cbc2761f67ebbb11db7b19d3e5da5b0a1829c4ec5a0000000000000001000000000000000000000000000000205863974ae834cb6f7cdda3179a5eb9db26199ae6501319daa7e9350565a01a52000000000000000100000000000000000000000000000020a724c8ade8149e1cc611772680cb6d18385ad3f0e4e5bb60e4780827cedd136c0000000000000001000000000000000000000000000000209e4aa536330b2d7a31d018a0c66389dc79b3652f4ba9a731d52185c1d2764761000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e000000000000003c000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000010000000000000020e7e880c0271d8bbb762151274053eb5387087ee11edf17aa5c2a62d86b1240de0000000000000001000000000000000100000000000000200bbb509da79f5f8b438035f866b33e7d35ea0d24c196577e58c711e996e9d67a000000000000000100000000000000000000000000000020e0d59165174c1b01a1778b0c00ea048f351711781eb9b7905bac635125041c7c000000000000000100000000000000000000000000000020488cdfd2909dddf32aafba620adfd844cf7f0e6eae4371d0ed616315e9b3d1e900000000000000010000000000000000000000000000002068e96971008bee2f90df118bffada99c074a0d2c49bfc1b99915b2dcf51048a20000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000003c00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f000000000000000600000000000000010000000000000001000000000000002074d82bac807ca26403177015863222205cef6dec7e0c4a7d3ac57d28e79987c6000000000000000100000000000000010000000000000020b2bd6c7bce44e8cb1dd2c1ada3f46a4ef84aa70a4f6d582427f82789c25091290000000000000001000000000000000000000000000000207307458ebfa1b463080bdf0c8b226e68af95d3ce03c81f574dc53886fc92c5510000000000000001000000000000000000000000000000200aeeef018d0928774997734b759241fff2f2f118735c3cc567f475600c93c6450000000000000001000000000000000000000000000000209c3cc5f2e03bbb6fbb6a00377debdbb0ff07e93db8e65b607e9ce577d2bff4060000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f8000000000000000a0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000010000000000000020fc983dd7daafc6f9bd09f56cfae3edef56984b36f007d57cca6deebaf9cb6b27000000000000000100000000000000000000000000000020f95f23851afcff04d1ad49b881508c3633308363c1babb0c2d30123584655b30000000000000000100000000000000010000000000000020212011d70596d8f444a02b2551c63793bb6214725d0b1d4e2d024902a719d74d00000000000000010000000000000000000000000000002063b18099f915d818ff11dd06d2b4924e18e1b43d1a7d80c4018a6828759c3e2c000000000000000100000000000000010000000000000020659b6b070f44812ca2ffc215c67485587dd0d144e05eb3647148b4f5ca7360120000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000000a00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000010000000000000020963ce7fa16a7bc2faf8b5a019fb2698e0bf100a32aad4b5a538b4dc1b308bbb6000000000000000100000000000000000000000000000020e13c705067783e7c197b6024479054eeb56690f491a37b0fd27a62af0a9483bb00000000000000010000000000000001000000000000002008c5fc936786cf9d0af43c12be03cc772b25837622cd42f08df1c66e5e116a2a000000000000000100000000000000000000000000000020bd75800a626d45803e0ac76b5c093b70cab826c1e74d4cd0ce8e6c36106f95bc000000000000000100000000000000010000000000000020dbce0776e37eb7c2a9e60b3254ce5ea6bed0db83c8c2e6b120494c0d9ed2a76b000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f000000000000000a000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f299941856000000000000000600000000000000010000000000000001000000000000002000e9a8116be3eaa04fd3a9b8fe498439df65050c6d2ba8297979c140197d72ee000000000000000100000000000000000000000000000020f79665195ed0ea8504d75eaff65e22a7a3deedec016d749801fc7edf8d55a3fe000000000000000100000000000000010000000000000020f87937c3d7f9ea889556bed01a00031a67448288e6ad311f669b4408eebc01ac000000000000000100000000000000000000000000000020842c39bed54d7be108142ed95a58b534014e03e9871691ec932be839f2294f4d0000000000000001000000000000000100000000000000207e13fb6690e345dd8bdf6ed863b9142988ca740ed6091c9fae658b221f7d7334000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a000000000000000a000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000010000000000000020b8271596523f0175c8f35996cef48923561a67284d14747b3a97002e7f568a50000000000000000100000000000000000000000000000020b35ae75cacfa782fb60ee04267aae26f074cefcea47f96b174716052e98d7657000000000000000100000000000000010000000000000020ad2c19c26d0488214886b03e7e4bc57d130a100d9e13ced4921d6472e2238a2e0000000000000001000000000000000000000000000000201de5bb3d887c07d54506473a20db02428ebc54d6a3c978c792d0e6f1f4de0511000000000000000100000000000000010000000000000020cc3aa606fdcbf96592df9e3ecf28c535384ef37bff659d91d2f5982a3a391cb0000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000000a00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000010000000000000020d1fb2c8ea549af99b4a3ecb033283f236df6907d524f78289927652d8c75ee710000000000000001000000000000000000000000000000208de78120231f2b5d2bd8a35ce33c53d3c7094f877ce43c2ba48f9fccc6e57305000000000000000100000000000000010000000000000020630f361882ada56a075e947b144639b306577494cfa2d14d2fd11f09586072a00000000000000001000000000000000000000000000000206e8232a0c61d237a50e6dcca4dcea8b407b71864d02b4c647447bc948ffe8ebc000000000000000100000000000000010000000000000020af9f96d3edd125bc1e0a105b9ffdc8e3024dc69325a78b2a02611964156a8e7a000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b9272000000000000001e0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000010000000000000020ba15f8caa378deb827f35ab84ee3c8ef16117ea97e57e0f20b14ae88d236b6ff000000000000000100000000000000000000000000000020a6a1702db35b748e42f0f110ec40716f747145613b2b25986a5c3dc74e1ab13a000000000000000100000000000000000000000000000020ab170dad02da8e5a4c268e132c454adc4b6729b907eb3b0647e0b75ba06ca1ae000000000000000100000000000000000000000000000020261c2de001295b8ae6db8a3110d2d193b80167fee59f8f542a00ce1709747a6900000000000000010000000000000000000000000000002028d0668b3b0bb626ddb7371edbb5222936f68264e2cfb9376038323928d12a950000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000001e00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d6000000000000000600000000000000010000000000000001000000000000002085351021aea650c4597031fb7dc932b99054b360e97ca572bb6bece35ae11bdf0000000000000001000000000000000000000000000000203a2146e92a3ad3706b36813e4c45136f975811c6589e6331024a956042e7768c00000000000000010000000000000000000000000000002024299b0256071ee4c8943b75440fdb14cb0a87a9d470ca0d23930e470c29fd2d00000000000000010000000000000000000000000000002068af7e3f604105e672bb008f7f6497a71b4230ffaedefc6e201e3a965f80aad9000000000000000100000000000000000000000000000020d7f7d11996573b5da0d2cbe7d58b7d9ee40d6b31bbfd992e1387dae096d31597000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f000000000000001e000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000010000000000000020f821bc8956540d674f85944695ec2cdab831a2a389a2d11a3d7cb0e72d70c402000000000000000100000000000000000000000000000020d556e53e89946cc6a63053d2f237bd42df808fd51872fe3a16ac4cf4f89b865e0000000000000001000000000000000000000000000000201f0f92e1ba9dfc9c805ddaed879861bdc05c3a78b978e8bb3a8c041349d557fb0000000000000001000000000000000000000000000000202f82c0c1a186d9e1264fb0ac164a09274cdc7fa84262a440da9649a8aa36aaef000000000000000100000000000000000000000000000020824ce8426988565f955f44ee03d626fea805a15ec4db70b129a69a2d7b15a5aa000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a000000000000001e000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f32938000000000000000600000000000000010000000000000001000000000000002030d6b49905be576af2c974f08de40dec367587e3f626cc9bc52f04670a7003580000000000000001000000000000000000000000000000207d27cce8e7d4819cb9c3a6e141c2d34d37acb8e1fc1075a3bb2d20b8408e984c0000000000000001000000000000000000000000000000208e9ca24717ee2452a64953880cd16ce2ed80e0ab655a248e3a0d70cb8d9ef4b8000000000000000100000000000000000000000000000020cbb94a1fa90daec34851502087bc06a9b8934f9e2e87d1242484cea77e968a42000000000000000100000000000000000000000000000020d488fb112c8e7e22dfab501043651ee3017cc449d7e2043156d45aaf96580343000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000001e00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000100000000000000208f526051780fa2a3d112fdedee88168162589e00a4943c032e8b91bc4c53d9840000000000000001000000000000000000000000000000202671dd30be892f7113a73cf7f3a8445d53ddc40a8e9973ee587af2a0c1606cb80000000000000001000000000000000000000000000000201a61d9687a39c69fc39cbb583e8569c27f226321d4438d1f17092925ea3cf032000000000000000100000000000000000000000000000020c1e67f4fe465546990e3ad91e731dd95b1c88152d8ecc54d60d94cbfdca528650000000000000001000000000000000000000000000000200b1317ae38b570b4c049c419190fae276bb0ef81fc42fd65f1a137ebd541d9ae000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b927200000000000000390000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e00000000000000060000000000000001000000000000000000000000000000205a8a6d6822d757b39053f2d696b440911b98fb855bd584870549e7ded4c8f784000000000000000100000000000000010000000000000020ea132e6ad465bc3d576d24943e8eb110cbbe9e0822e43ab2b485cff78cfe7bbf0000000000000001000000000000000100000000000000206402373ddcb71c9fa2bfe1d2d9097bfb1e67c3a16c2603e6850eedece20f804700000000000000010000000000000000000000000000002093496aa9b95cdfb66da9c0d5bc5df817484a2a333e9349baecc93bd74a2ca4730000000000000001000000000000000000000000000000209fbca920ee0c87a956f99c4f1362a800f24be48892fb636d69c31e2a28f6ac89000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000003900000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000000000000000000020b9754dbc7d8d3eefeff2097a536bf8392001674a00a2100b0f5362195773d33800000000000000010000000000000001000000000000002087acc052c4befcbc863390a53bc9fe76ddf39509151f111da33e34eefa9c20bb000000000000000100000000000000010000000000000020ec80243d3ec903cb562c8eacb603f6c834430b23f15d562812829d19ab4c355c0000000000000001000000000000000000000000000000200c0b006e9ce5ab8dee54461051bb96c286fd71b34dc6edc2cc81ccb3100d316500000000000000010000000000000000000000000000002009d96f34c0d0d0c579558695e2590b6b8a00dc82f66b0ed035313048e74ae7cb000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000039000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000000000000000000201434b750fa4c79a6abbb555e49c6de275c5917f1a7745ce0f094cc6f45451d50000000000000000100000000000000010000000000000020e25b16e92ce565166fe90f1c3edb66f7f7a147fe1eb50d049a44d69786c76df90000000000000001000000000000000100000000000000208e2274770ab1400a8d4a14228b5b83fbbc2f8b567f0d93bae220f05170b20030000000000000000100000000000000000000000000000020a724c8ade8149e1cc611772680cb6d18385ad3f0e4e5bb60e4780827cedd136c0000000000000001000000000000000000000000000000209e4aa536330b2d7a31d018a0c66389dc79b3652f4ba9a731d52185c1d2764761000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000039000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020deed836067856071ea7a63330beedf7de96c65e2598acaca714fc1e308998f90000000000000000100000000000000010000000000000020f33d0621a9be5d0bc10fb9ba479d2c92b9442af4ac19c6bc422738323447ccbf0000000000000001000000000000000100000000000000204b85a596b27c62a80e804a5f440e38fd1798e192f2e4faf6c9d937e152644b4f000000000000000100000000000000000000000000000020488cdfd2909dddf32aafba620adfd844cf7f0e6eae4371d0ed616315e9b3d1e900000000000000010000000000000000000000000000002068e96971008bee2f90df118bffada99c074a0d2c49bfc1b99915b2dcf51048a20000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000003900000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000000000000000000202c3deceeaa53a4fd7cb0576d0c27372976b9f6f95317d05b21ccc995dfa7f60500000000000000010000000000000001000000000000002004eac4235e209d96bd17c310b61b8b64f2de73bff9eedc68f3d5329676b3529100000000000000010000000000000001000000000000002090d7b0bcec2a4257083160dd8ffbec8f4d56bdf900f2859e017373f837e3c55e0000000000000001000000000000000000000000000000200aeeef018d0928774997734b759241fff2f2f118735c3cc567f475600c93c6450000000000000001000000000000000000000000000000209c3cc5f2e03bbb6fbb6a00377debdbb0ff07e93db8e65b607e9ce577d2bff4060000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000270000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e000000000000000600000000000000010000000000000000000000000000002082b4607dd2121124fe913ac73d6cfb7d23edb46c45a7c6c239e251b989b417ef000000000000000100000000000000000000000000000020ce6cbec44c6750b87c769f2196e739261249641951d381617e8405bbf0202556000000000000000100000000000000000000000000000020e8b9aa258428d11be94220c2dd6dc9be6f7dfbf6c563495f34ac19fe54c7a02b000000000000000100000000000000010000000000000020acd5d62b97e6c33a02d4331e361fc284fac3d4751616f3f316c28ea08f63c5d000000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002700000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000201aa4caab70d09b9a3b78992c54084bc326e346f6b26246624e3524dfbe50833200000000000000010000000000000000000000000000002060fdc81936cb56fefc4ae765ed50a0407b33f19eff3eee870f07317cdb2ef330000000000000000100000000000000000000000000000020ed1cdc4693f53dc4db6ac19967a9854c6557cdba9dd1ef73aabe5680048340b900000000000000010000000000000001000000000000002039c719fa3f6fd86de45cdcbe116bc929d735098bfd57ba95c955727b3f86087f0000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000027000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000000000000000000020f952df45f42865be94d69c9c7d21933b3e0ad8d0f63ee3775b0d79f285368945000000000000000100000000000000000000000000000020a09e4a0cff4a2719030a0f657ce42c12a2cd4cc27b8cdfd21d1cbcf868b7190b00000000000000010000000000000000000000000000002057270586231d0130eb017de9b965c71be11d39fda49cb46ecc4fc4cf2baff38a000000000000000100000000000000010000000000000020a814a34f76af1733811481d105364da0ad5c6889b20ac62ec695d95bad6ccfa40000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000027000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f32938000000000000000600000000000000010000000000000000000000000000002011bce33f5446454b228452a0d5cdaae5a71b16116ff1a05e37598b6a6304a5fb000000000000000100000000000000000000000000000020a9887501139d04ce4e8fa79b998c30f58c8d5ba78c911d4db7001a5436dc18fd0000000000000001000000000000000000000000000000208acf7b66bc86786435ec6708d199d5b065b2e43f560fdf2547c4cd28ea0352ab000000000000000100000000000000010000000000000020609f06fb0f917dd5aff48faaa7c9a26932b0164e4ceb2fcb49512a7126aed0240000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002700000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000000000000000000020e63e257a41621044bcf901c3ac3eb320a79baad09ea4c038e67f28ae28f16c3b00000000000000010000000000000000000000000000002032ce4870dfa2fb4284adb38aa43f49a3a3c28255497b93a85731134cd0486a2d000000000000000100000000000000000000000000000020d8d5941d890c32e24cc840a8ee7a932a739bad1dbbbe6985a9d3ea1a07252ddc000000000000000100000000000000010000000000000020581702be02dcae0d01501fe971bb01119d074a9fa43014b6ad4081e583d632e900000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000210000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e000000000000000600000000000000010000000000000000000000000000002066f812c8736a357f21436863a2199724f4144d4194234ebf039cc87839d8dde7000000000000000100000000000000010000000000000020af164518d52f638f864af4f96b17dfd11b54180898cac80dde9aad0b48c73071000000000000000100000000000000010000000000000020bc7a78bb3c611e1b5f11dcbff023f3a085ed0bf8ecd7f9ece0c033dcabf6b6fc000000000000000100000000000000010000000000000020acd5d62b97e6c33a02d4331e361fc284fac3d4751616f3f316c28ea08f63c5d000000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002100000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000201e990e27f0d7976bf2adbd60e20384da0125b76e2885a96aa707bcb054108b0d00000000000000010000000000000001000000000000002036011e620f239613805346976c01d6be477f0546303a35d8e91f936c5ab738e1000000000000000100000000000000010000000000000020b956db54d172694c1630b069cbb2710ecdaacf116a26dcabdef5e48e9f4e783c00000000000000010000000000000001000000000000002039c719fa3f6fd86de45cdcbe116bc929d735098bfd57ba95c955727b3f86087f0000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000021000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000000000000000000200d73c1dad4ac3ed5fb3b2aac1d8c53d8e962a01cdb8353c33eea4fcef6ff2895000000000000000100000000000000010000000000000020c820cc49df62aac9d357ded86aed16cba909fd75f816a8472db6832966708c8600000000000000010000000000000001000000000000002087e4224ac05bf39143e5b2b8f31e6ff5c9879040db1e5c52a6074d35b63b457f000000000000000100000000000000010000000000000020a814a34f76af1733811481d105364da0ad5c6889b20ac62ec695d95bad6ccfa40000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000021000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f32938000000000000000600000000000000010000000000000000000000000000002027192bb21c5c75b1e4d1bceb03a2c9ecf9d790b79d41e58c9d6359ce386f90dd0000000000000001000000000000000100000000000000201ff906e1ce9f3c5394fe409e7fef7a28a7d4469cb7e925e64acda39d98cc90870000000000000001000000000000000100000000000000200998593abc6ae74ad4db1e3faee5a7426d83e0283ebfbba81490532b53fb3c67000000000000000100000000000000010000000000000020609f06fb0f917dd5aff48faaa7c9a26932b0164e4ceb2fcb49512a7126aed0240000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002100000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000000000000000000020ca9c2c3725a394cda6baef5123dbe0ffd486e41377832cba5fdaa56ec79bdc3e00000000000000010000000000000001000000000000002078a9e98bb67d6a58ed5f47d03ff761fa75a0a090d14ed86341258ccae9faf3ee000000000000000100000000000000010000000000000020d51dbff523abfb61534f3ecb97144bf53b03b4e9ba33067030fe9ec8101607cb000000000000000100000000000000010000000000000020581702be02dcae0d01501fe971bb01119d074a9fa43014b6ad4081e583d632e900000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000240000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000010000000000000020a87e7ee5e09866aa006873cab1460c1595522fe9a3acc138dad90ccb048f09ec000000000000000100000000000000010000000000000020066b8498c9e05c82628c3565d3c18ea8674927640352cc9cf607415abf97f900000000000000000100000000000000000000000000000020e8b9aa258428d11be94220c2dd6dc9be6f7dfbf6c563495f34ac19fe54c7a02b000000000000000100000000000000010000000000000020acd5d62b97e6c33a02d4331e361fc284fac3d4751616f3f316c28ea08f63c5d000000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002400000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000010000000000000020880821cc48160488eb5d29feb2eead9cb25a07f610d5e1bca1435122b800416e000000000000000100000000000000010000000000000020e67415e2ce919b1302dfc211e39471d29a76795f1d4e6edbbdfc1856b5b2c153000000000000000100000000000000000000000000000020ed1cdc4693f53dc4db6ac19967a9854c6557cdba9dd1ef73aabe5680048340b900000000000000010000000000000001000000000000002039c719fa3f6fd86de45cdcbe116bc929d735098bfd57ba95c955727b3f86087f0000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000024000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000010000000000000020fa9aad6d2aace9a80704234a97da2dba93d14ea85b33d5c1a5b4f53de563f172000000000000000100000000000000010000000000000020bab7b86d13eda577e6efdf77bb504d22b0694d137022f14012aa8cd0fa75d1ee00000000000000010000000000000000000000000000002057270586231d0130eb017de9b965c71be11d39fda49cb46ecc4fc4cf2baff38a000000000000000100000000000000010000000000000020a814a34f76af1733811481d105364da0ad5c6889b20ac62ec695d95bad6ccfa40000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000024000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f3293800000000000000060000000000000001000000000000000100000000000000206434f87e734d29f9fd95399e82117674b990519a1379e6299d995792ed6d5633000000000000000100000000000000010000000000000020d7916d25af4bc31f4e809d04d5f70e0e2de17c037477afbb033a4ae7810e8b900000000000000001000000000000000000000000000000208acf7b66bc86786435ec6708d199d5b065b2e43f560fdf2547c4cd28ea0352ab000000000000000100000000000000010000000000000020609f06fb0f917dd5aff48faaa7c9a26932b0164e4ceb2fcb49512a7126aed0240000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002400000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000010000000000000020a7dfffac5fa2be54bfdaf88836fe9efe9e2f64482ae91878275e5ec2d36f450d00000000000000010000000000000001000000000000002000e0cc80f37570010eccdc5f1ef31956596028e3cc7f6e72de18bb35cd4650ce000000000000000100000000000000000000000000000020d8d5941d890c32e24cc840a8ee7a932a739bad1dbbbe6985a9d3ea1a07252ddc000000000000000100000000000000010000000000000020581702be02dcae0d01501fe971bb01119d074a9fa43014b6ad4081e583d632e900000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000060000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e00000000000000060000000000000001000000000000000100000000000000206068ff0ed4c4759abee34f335fafeb3a13303d5877af767f4d37506f840e35fd00000000000000010000000000000000000000000000002067ca165ae9157ffd65aedc2702decce7ef87efbecc65c1f23c346100aac99a2f000000000000000100000000000000000000000000000020c8a9706d43613feef1f7182c33ec47958f103c466f0a5c331ae15d21af056b2a000000000000000100000000000000010000000000000020407e1d016b2156134625c6c0acace3fca412163392f1c4920830c79723de997b000000000000000100000000000000010000000000000020659b6b070f44812ca2ffc215c67485587dd0d144e05eb3647148b4f5ca7360120000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000000600000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000010000000000000020fcd2644366aa4cae1f5315462954dec50920d49904205bac2012ebd91921cafc000000000000000100000000000000000000000000000020c2867e1f4cc937dde4acfa436b33c068e26654c057a2da6ff57d5a652187de31000000000000000100000000000000000000000000000020a83ce3f6822f2805da6f235cd57c1e49249433b8646938623efd0a040bb1ded60000000000000001000000000000000100000000000000204bc065f3dd3e3b30a0dac92ed91cf22f8259a480aa87d1c980b53b9a86e52a01000000000000000100000000000000010000000000000020dbce0776e37eb7c2a9e60b3254ce5ea6bed0db83c8c2e6b120494c0d9ed2a76b000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f0000000000000006000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000100000000000000207d8105c33b0d4263758d71e48168235f66e18ab7c8cc5fa652509c4e455b85b8000000000000000100000000000000000000000000000020656c686dc65309b719de95affaf2db67a6d00e7c86975a6214fd698dc72b431b00000000000000010000000000000000000000000000002057b19820ae67477ff0fc9a389396aeb670b7c8e05836cc5910b5ddb99ab4caf9000000000000000100000000000000010000000000000020a4de7176464be9124785e24d63c211255e653cd53798f2b73611e5f15feef7c70000000000000001000000000000000100000000000000207e13fb6690e345dd8bdf6ed863b9142988ca740ed6091c9fae658b221f7d7334000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a0000000000000006000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000010000000000000020ef7a130cfe37c0592cee783c87bcfa81f15f7d690e68179b0414f67da128a1a70000000000000001000000000000000000000000000000205b062cf5dbdcf741c88519621043425bdaff3163299494ea1e4e9aa1874fe4800000000000000001000000000000000000000000000000202ca61985fbc5910957e78a916da8508a3ead835fe2a43c85aafb20f5955f0ca0000000000000000100000000000000010000000000000020d2ac9a6c10a81d256c41bc67e07527d5a36e5dc54a2c6b984bb939fbc8ccd413000000000000000100000000000000010000000000000020cc3aa606fdcbf96592df9e3ecf28c535384ef37bff659d91d2f5982a3a391cb0000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000000600000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000010000000000000020ef8bf5707389ad5617236dd6d6c686a18f46eeb869921a2ad1e9a65fcfa6576d0000000000000001000000000000000000000000000000208dab85c8435dfd66280327b9cc5337f894bd670f9c80df0ba684f0a3f6ff807c0000000000000001000000000000000000000000000000206dd7a46816110430442508860c306738f4a9a0455d87cb1fe469f761064972aa000000000000000100000000000000010000000000000020482529a81b98175b81ad742dd6e90b5edefabf8d4cb4e27a6d7438b3191f6bad000000000000000100000000000000010000000000000020af9f96d3edd125bc1e0a105b9ffdc8e3024dc69325a78b2a02611964156a8e7a000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b9272000000000000000f0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000000000000000000020719a7a35adda0dd9428798c975730f35a62ffd9ee5f58d5ce5167156e67084f50000000000000001000000000000000000000000000000208035ed95221b11da3949bac40001ffa91e1aa82f0256b8cfe76c7f4bf0fd1c4e0000000000000001000000000000000000000000000000207c45dea365dfaace9be8fa260c352ec46e78980143459a4daee0f8ae4c5f9c3900000000000000010000000000000000000000000000002063b18099f915d818ff11dd06d2b4924e18e1b43d1a7d80c4018a6828759c3e2c000000000000000100000000000000010000000000000020659b6b070f44812ca2ffc215c67485587dd0d144e05eb3647148b4f5ca7360120000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000000f00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000000000000000000020b58422241e3aec6a19e7b35858365ab1aa6effa0786c660d8553d9a441f39bb1000000000000000100000000000000000000000000000020f29066e56b551bd94c1d9b20ea9837e3018816f6bbe6996254212afb712566ef000000000000000100000000000000000000000000000020a2765aabd8364f95fefd13729dd6fca6eac9c34f87cf4395c6b2b47a49a90ea9000000000000000100000000000000000000000000000020bd75800a626d45803e0ac76b5c093b70cab826c1e74d4cd0ce8e6c36106f95bc000000000000000100000000000000010000000000000020dbce0776e37eb7c2a9e60b3254ce5ea6bed0db83c8c2e6b120494c0d9ed2a76b000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f000000000000000f000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000000000000000000020abc4d89550572f555b5891e6efb7dbe2935c8f9ac12e51201cb0e7678ab7fcdf000000000000000100000000000000000000000000000020080a9a3f42f4a54cbb835bb52d64ef91d01db5403bdb3911d536aea3f9233f3a000000000000000100000000000000000000000000000020b4e9d6c8ba000d4455adade97f30d5cc513f15422d1dcec0ca5dd87320e49f8b000000000000000100000000000000000000000000000020842c39bed54d7be108142ed95a58b534014e03e9871691ec932be839f2294f4d0000000000000001000000000000000100000000000000207e13fb6690e345dd8bdf6ed863b9142988ca740ed6091c9fae658b221f7d7334000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a000000000000000f000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020a8006aa982f9039a3a2c8aa8579e3c1fc0fa64648c0ae719c2b447cc85aceabd00000000000000010000000000000000000000000000002090339d4d9d726a053742ce39f20998afadf10f29edee03a234c6eb48b105dc45000000000000000100000000000000000000000000000020b4f6da852bb23c13945601e08434ddf7c6c4e89b8d6af5158e57f6fb31c8153d0000000000000001000000000000000000000000000000201de5bb3d887c07d54506473a20db02428ebc54d6a3c978c792d0e6f1f4de0511000000000000000100000000000000010000000000000020cc3aa606fdcbf96592df9e3ecf28c535384ef37bff659d91d2f5982a3a391cb0000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000000f00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f000000000000000600000000000000010000000000000000000000000000002039e257cc4f35788ed43e34433cf2e200d063d51f68ce81ec9f272b948ece0cfd00000000000000010000000000000000000000000000002070919a53202cdeca4903368941c5d387f2cf9f35819747b391647c50e7a103630000000000000001000000000000000000000000000000204e2be0e6e47bf5def4c851e05d186e60b38edd78b0f533be635747623bfd38660000000000000001000000000000000000000000000000206e8232a0c61d237a50e6dcca4dcea8b407b71864d02b4c647447bc948ffe8ebc000000000000000100000000000000010000000000000020af9f96d3edd125bc1e0a105b9ffdc8e3024dc69325a78b2a02611964156a8e7a000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b9272000000000000002d0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e000000000000000600000000000000010000000000000000000000000000002075aefc18f34d0b9d24d3058dba57805ca214d7a2ef5015acfbd1d6dc24784f3a000000000000000100000000000000010000000000000020de539e059aab5793737ab7b6fdd8bd25a14d6221d0d1e94746b7eedd1a695c1b000000000000000100000000000000000000000000000020e8afd6f17c85f21e9f54e435f94a58f7a0002387aeb95b1f945e236e876fb79c000000000000000100000000000000000000000000000020bc2ec48a0ffda0d4d83b497975512e07ddaa2af9c054c3050454c1844d04b72f00000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002d00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000203f065963dc5f827189e63eb7d30fef121bf103875ef233f576ba79373f5e0d1a000000000000000100000000000000010000000000000020efebc253627a341429c9abadf466e6f234321ae2329a1eff0b4623090b8255fb000000000000000100000000000000000000000000000020a41aea614e3c42d5512e485f565d0b5cbdbe584b64aa66bcbcb365fe0aee5b920000000000000001000000000000000000000000000000201dbcfe2b985f1976717c36ba364b4855be4e3991bd1679509516db11cedec7830000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc000000000000002d000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000000000000000000020567491f6309e85f31072a8600cc25ad68a6cb210e9575af989900bca9accc061000000000000000100000000000000010000000000000020045cb3bae5c83f22f010f74c7d82e124ca984a74c53dec23f6011dd20fa1a7da000000000000000100000000000000000000000000000020c9e07df65a2734fdc8ada731511056ceb96e0401caf52c9ebc4e0cfa6a1d2cfa000000000000000100000000000000000000000000000020291814bb23ca041a829cd777ab17a74972cca1d409306698f066b2b12b5b7e450000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e000000000000002d000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020fb91b4582294afb1b43d2468cac5095e5d6fb16ef5bf595aa6b45e3dbc0256ad0000000000000001000000000000000100000000000000208c692dfb3b3d159d3dd5e5985d705f1093973f88ee5561519510e3a20bd734a400000000000000010000000000000000000000000000002034acd2eb98e0c00613dddfde79e2ed59b03091057dd67328a1f2a20fcc30be400000000000000001000000000000000000000000000000207afc3d3f377ea328d0a546da843425d8cd2f61d21026ec31c026288cb3d0698b0000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002d00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f000000000000000600000000000000010000000000000000000000000000002016a3ba51172d2f53ba9fad3c21587fe75b52d7e378cfcf01eb7fecf1d235a8ad000000000000000100000000000000010000000000000020bd73e161e1e45359b0e9c8889819790eabe432440193232b2131d1f1b779c3880000000000000001000000000000000000000000000000207d62274328992c25ecf4a1832951db6fc2f6220d551c0ba04cb7fb7ced5be8a8000000000000000100000000000000000000000000000020d3e115a5a233331eea0c9d1a61f910fb1ddbd717686aaafe4459fc88d54a083e00000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000030000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000000000000000000020e3eda4ff4131e9d50c4e1b30b3fdfbc7666cafe598b33ea7ec6a7dfc746882640000000000000001000000000000000000000000000000203613cb120b2f2975315e760505b179b65712ad13a44c120548e3994dea630cac0000000000000001000000000000000100000000000000209976a44019a2cc25e24d8e0128101ba53e738bdd0bad7d83caec1a8da22b1500000000000000000100000000000000010000000000000020407e1d016b2156134625c6c0acace3fca412163392f1c4920830c79723de997b000000000000000100000000000000010000000000000020659b6b070f44812ca2ffc215c67485587dd0d144e05eb3647148b4f5ca7360120000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000000300000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000000000000000000020ce5207c1efa11695498c32d3b02c09903ed2f951e404843f3480fcbbf7d9587b000000000000000100000000000000000000000000000020d33251146c9bd59a58c273ee3ca84520f45dc00b56606f29155743126e02603b00000000000000010000000000000001000000000000002061c5b4eb1c0a7e74093fb022c5f5951fb2c504423b1f2e8e1f5cb5c30c6896090000000000000001000000000000000100000000000000204bc065f3dd3e3b30a0dac92ed91cf22f8259a480aa87d1c980b53b9a86e52a01000000000000000100000000000000010000000000000020dbce0776e37eb7c2a9e60b3254ce5ea6bed0db83c8c2e6b120494c0d9ed2a76b000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f0000000000000003000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000000000000000000205e57791a50c984b6b9bb11df72fbe8ead7611d5fbbbb1fde2c9f6ca001e3dbf200000000000000010000000000000000000000000000002014004ab029eb12ac1bbfc12bfb4fb3112e55c46e90c1ee691ed8bc36417a2d9300000000000000010000000000000001000000000000002098c6a10d6e69554c9a66612e611bde1613925c85c294eac9ae4153c688311745000000000000000100000000000000010000000000000020a4de7176464be9124785e24d63c211255e653cd53798f2b73611e5f15feef7c70000000000000001000000000000000100000000000000207e13fb6690e345dd8bdf6ed863b9142988ca740ed6091c9fae658b221f7d7334000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a0000000000000003000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f32938000000000000000600000000000000010000000000000000000000000000002056eb38c40ce68d5cd8e95158a0028c5d89bc5658464fad550014da7006c79c93000000000000000100000000000000000000000000000020c15f16573a80f06e1daa20bcbf7091006df20f702348956739551ffe4c3868030000000000000001000000000000000100000000000000209ee50eb11a3de3483219cd22981a0f0b1d7086e1372d0840adab511808b3142a000000000000000100000000000000010000000000000020d2ac9a6c10a81d256c41bc67e07527d5a36e5dc54a2c6b984bb939fbc8ccd413000000000000000100000000000000010000000000000020cc3aa606fdcbf96592df9e3ecf28c535384ef37bff659d91d2f5982a3a391cb0000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000000300000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000000000000000000206e2343713e5ac93fb226ad8336de20b09df4879ab409d9bd31704260ecd2385000000000000000010000000000000000000000000000002051f6631c86c379672c14a62460decb29165cd65db29c3c813e2433ebe1acc94a000000000000000100000000000000010000000000000020e98f654c7d4a4d72873302de6fc89a06a256de8b10b07b607e786bfeb6213059000000000000000100000000000000010000000000000020482529a81b98175b81ad742dd6e90b5edefabf8d4cb4e27a6d7438b3191f6bad000000000000000100000000000000010000000000000020af9f96d3edd125bc1e0a105b9ffdc8e3024dc69325a78b2a02611964156a8e7a000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b927200000000000000290000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e00000000000000060000000000000001000000000000000000000000000000201b81605c89f82931ba1f9c40f6a11252716f4b02a1405f25e3c8d9342ae5141d000000000000000100000000000000010000000000000020a7ab07465b54611179f5d8b3f01dda40efa5ef6a7beb7ddea184943d0014654c0000000000000001000000000000000100000000000000201fc30593ec7d427903dd1f55256e3ffc19a85f70cf2a8e7c0acb4f0a53f1effe000000000000000100000000000000000000000000000020bc2ec48a0ffda0d4d83b497975512e07ddaa2af9c054c3050454c1844d04b72f00000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002900000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000202abc88d2e3de401ab2c938e2d0e3c6ace5b030a54d9aeff0e9218e717f5d843c0000000000000001000000000000000100000000000000206eda94265d040faabf44625d55ab8b4ec7a5f1ec78d8b49e877a868ec6619d3900000000000000010000000000000001000000000000002029ddc1ae85781550b5b8262839b67495818dab865d8bb41a08d9d715a8f5ad470000000000000001000000000000000000000000000000201dbcfe2b985f1976717c36ba364b4855be4e3991bd1679509516db11cedec7830000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000029000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000000000000000000020a99d428a8f4af26c826a4ed7482597440fc869f53f585c86c7250ec11b21a8d8000000000000000100000000000000010000000000000020f27a29d328bdc6caa0ee3f0f6f7c703890f1805c474144e4bcbc87eab56c5335000000000000000100000000000000010000000000000020b21fce2155f8766d6e3d49a87773c41a486b0eb7dabcbfc0cf2963f7b34ecd33000000000000000100000000000000000000000000000020291814bb23ca041a829cd777ab17a74972cca1d409306698f066b2b12b5b7e450000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000029000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f3293800000000000000060000000000000001000000000000000000000000000000206f1230ee39fa4b475a68ca2c21a0a52a3a2d008ace0147d9367ca0b19fbf44b300000000000000010000000000000001000000000000002054f128363693244ccfcb0f852cc53499930006a76f4f8ad53422282d7ba2b1a900000000000000010000000000000001000000000000002032906f8b355f4c2d6b639a6899bcadf4e2cb7fcba76d4ccb412d5c24053801490000000000000001000000000000000000000000000000207afc3d3f377ea328d0a546da843425d8cd2f61d21026ec31c026288cb3d0698b0000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002900000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000000000000000000203e4b5489c39040df94e04b61ae4144d75b3731c552cb2872ea3522b56365e3bb0000000000000001000000000000000100000000000000203b71c8650663ac45104b87aeb469737990a8040255ea025b39bbd29956133147000000000000000100000000000000010000000000000020bbdfd0dd1887a478722c75ca8033a8a2201ecbe77561ec5505c4f7fa0b2fc07f000000000000000100000000000000000000000000000020d3e115a5a233331eea0c9d1a61f910fb1ddbd717686aaafe4459fc88d54a083e00000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f8000000000000002b0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e000000000000000600000000000000010000000000000000000000000000002061cfcaf3abbfaf060d0b53beb3ff1eb4e9923e49873a62b8f2f787d8b5a899190000000000000001000000000000000000000000000000202126eaa429043d207bc31ac0492a95b87916ef3a837b0de7fe9e539054aad1fc0000000000000001000000000000000100000000000000201fc30593ec7d427903dd1f55256e3ffc19a85f70cf2a8e7c0acb4f0a53f1effe000000000000000100000000000000000000000000000020bc2ec48a0ffda0d4d83b497975512e07ddaa2af9c054c3050454c1844d04b72f00000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002b00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000206255d43873b7b75be7cd4e8b0b219cb154af5bb3311754d0462b22dc2b14067e000000000000000100000000000000000000000000000020bc71bb4cd134708a5c1ae6a9909a7062ea805c915ae91379dbc944a73895479f00000000000000010000000000000001000000000000002029ddc1ae85781550b5b8262839b67495818dab865d8bb41a08d9d715a8f5ad470000000000000001000000000000000000000000000000201dbcfe2b985f1976717c36ba364b4855be4e3991bd1679509516db11cedec7830000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc000000000000002b000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000000000000000000208d00adc26372a899eccef502932866d4f43fa5dc239f3670c3aa9a17c630c3e90000000000000001000000000000000000000000000000200d1596615dfc5a5b9db6a95acdad88935034862ea7d81602ed52beca7ddc10c1000000000000000100000000000000010000000000000020b21fce2155f8766d6e3d49a87773c41a486b0eb7dabcbfc0cf2963f7b34ecd33000000000000000100000000000000000000000000000020291814bb23ca041a829cd777ab17a74972cca1d409306698f066b2b12b5b7e450000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e000000000000002b000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020c2662e5a1722b6a5fb781e770e5ae202e52a072f1699d62023b34b97c3b7a664000000000000000100000000000000000000000000000020ede423867df6a5e010be077da1b68626a1fa76bb0e44bf0c569934de8bb4003500000000000000010000000000000001000000000000002032906f8b355f4c2d6b639a6899bcadf4e2cb7fcba76d4ccb412d5c24053801490000000000000001000000000000000000000000000000207afc3d3f377ea328d0a546da843425d8cd2f61d21026ec31c026288cb3d0698b0000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002b00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000000000000000000202882c2da6bbde8b5670630244874d1c7d8bd36d156328ddd10e8f16333966b0f000000000000000100000000000000000000000000000020af8a1f56cf96d57df78368effb90dfbcef3078b07d9d59e9fba5fb26a1a88112000000000000000100000000000000010000000000000020bbdfd0dd1887a478722c75ca8033a8a2201ecbe77561ec5505c4f7fa0b2fc07f000000000000000100000000000000000000000000000020d3e115a5a233331eea0c9d1a61f910fb1ddbd717686aaafe4459fc88d54a083e00000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f8000000000000002d0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e000000000000000600000000000000010000000000000000000000000000002075aefc18f34d0b9d24d3058dba57805ca214d7a2ef5015acfbd1d6dc24784f3a000000000000000100000000000000010000000000000020de539e059aab5793737ab7b6fdd8bd25a14d6221d0d1e94746b7eedd1a695c1b000000000000000100000000000000000000000000000020e8afd6f17c85f21e9f54e435f94a58f7a0002387aeb95b1f945e236e876fb79c000000000000000100000000000000000000000000000020bc2ec48a0ffda0d4d83b497975512e07ddaa2af9c054c3050454c1844d04b72f00000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002d00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000203f065963dc5f827189e63eb7d30fef121bf103875ef233f576ba79373f5e0d1a000000000000000100000000000000010000000000000020efebc253627a341429c9abadf466e6f234321ae2329a1eff0b4623090b8255fb000000000000000100000000000000000000000000000020a41aea614e3c42d5512e485f565d0b5cbdbe584b64aa66bcbcb365fe0aee5b920000000000000001000000000000000000000000000000201dbcfe2b985f1976717c36ba364b4855be4e3991bd1679509516db11cedec7830000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc000000000000002d000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000000000000000000020567491f6309e85f31072a8600cc25ad68a6cb210e9575af989900bca9accc061000000000000000100000000000000010000000000000020045cb3bae5c83f22f010f74c7d82e124ca984a74c53dec23f6011dd20fa1a7da000000000000000100000000000000000000000000000020c9e07df65a2734fdc8ada731511056ceb96e0401caf52c9ebc4e0cfa6a1d2cfa000000000000000100000000000000000000000000000020291814bb23ca041a829cd777ab17a74972cca1d409306698f066b2b12b5b7e450000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e000000000000002d000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020fb91b4582294afb1b43d2468cac5095e5d6fb16ef5bf595aa6b45e3dbc0256ad0000000000000001000000000000000100000000000000208c692dfb3b3d159d3dd5e5985d705f1093973f88ee5561519510e3a20bd734a400000000000000010000000000000000000000000000002034acd2eb98e0c00613dddfde79e2ed59b03091057dd67328a1f2a20fcc30be400000000000000001000000000000000000000000000000207afc3d3f377ea328d0a546da843425d8cd2f61d21026ec31c026288cb3d0698b0000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002d00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f000000000000000600000000000000010000000000000000000000000000002016a3ba51172d2f53ba9fad3c21587fe75b52d7e378cfcf01eb7fecf1d235a8ad000000000000000100000000000000010000000000000020bd73e161e1e45359b0e9c8889819790eabe432440193232b2131d1f1b779c3880000000000000001000000000000000000000000000000207d62274328992c25ecf4a1832951db6fc2f6220d551c0ba04cb7fb7ced5be8a8000000000000000100000000000000000000000000000020d3e115a5a233331eea0c9d1a61f910fb1ddbd717686aaafe4459fc88d54a083e00000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f8000000000000003d0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000000000000000000020ace9659a3eca3c2a1cccbc983ead796d78a748e3786946462f4d9d1fdc3e34ac000000000000000100000000000000010000000000000020bcf05d3c5eb71fed288eb4b419a188c8860206b533025c802ed5cd504e55c1b00000000000000001000000000000000000000000000000207a1b3b2568d13a2eef371f9a6406e1e5ea8ea67cf4f7c3e9e841cfc385002de400000000000000010000000000000000000000000000002093496aa9b95cdfb66da9c0d5bc5df817484a2a333e9349baecc93bd74a2ca4730000000000000001000000000000000000000000000000209fbca920ee0c87a956f99c4f1362a800f24be48892fb636d69c31e2a28f6ac89000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000003d00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000000000000000000020c15d51cf18b6ba8c12ed152e4a515b632b24633b5f6b22f7103649e18d6f1f9e0000000000000001000000000000000100000000000000208b25ecd6ff537916132b0a2c9828a23713e826894f39c2af049fb06a056e2443000000000000000100000000000000000000000000000020ca4326b0ac9a40f7962046fbc2ae4a247b71dee20ff8514aa46bc9a7f710d2460000000000000001000000000000000000000000000000200c0b006e9ce5ab8dee54461051bb96c286fd71b34dc6edc2cc81ccb3100d316500000000000000010000000000000000000000000000002009d96f34c0d0d0c579558695e2590b6b8a00dc82f66b0ed035313048e74ae7cb000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc000000000000003d000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000000000000000000020938fa0a6b1c2b75bdf6f4ba90387cbcf0b23762fb05befccb17d0cea24fe684000000000000000010000000000000001000000000000002070475275547a4e19ad5111cbc2761f67ebbb11db7b19d3e5da5b0a1829c4ec5a0000000000000001000000000000000000000000000000205863974ae834cb6f7cdda3179a5eb9db26199ae6501319daa7e9350565a01a52000000000000000100000000000000000000000000000020a724c8ade8149e1cc611772680cb6d18385ad3f0e4e5bb60e4780827cedd136c0000000000000001000000000000000000000000000000209e4aa536330b2d7a31d018a0c66389dc79b3652f4ba9a731d52185c1d2764761000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e000000000000003d000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020f6d0f9998a4caeaedf31272eebc9c4f6855dfc972528fca3c6aedb2b52959ee40000000000000001000000000000000100000000000000200bbb509da79f5f8b438035f866b33e7d35ea0d24c196577e58c711e996e9d67a000000000000000100000000000000000000000000000020e0d59165174c1b01a1778b0c00ea048f351711781eb9b7905bac635125041c7c000000000000000100000000000000000000000000000020488cdfd2909dddf32aafba620adfd844cf7f0e6eae4371d0ed616315e9b3d1e900000000000000010000000000000000000000000000002068e96971008bee2f90df118bffada99c074a0d2c49bfc1b99915b2dcf51048a20000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000003d00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f000000000000000600000000000000010000000000000000000000000000002078d73dc05e52ee7c8e19682c5f83941c32eccea8702643ba4954454340dd7d48000000000000000100000000000000010000000000000020b2bd6c7bce44e8cb1dd2c1ada3f46a4ef84aa70a4f6d582427f82789c25091290000000000000001000000000000000000000000000000207307458ebfa1b463080bdf0c8b226e68af95d3ce03c81f574dc53886fc92c5510000000000000001000000000000000000000000000000200aeeef018d0928774997734b759241fff2f2f118735c3cc567f475600c93c6450000000000000001000000000000000000000000000000209c3cc5f2e03bbb6fbb6a00377debdbb0ff07e93db8e65b607e9ce577d2bff4060000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000040000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e00000000000000060000000000000001000000000000000100000000000000209b78a7ddb1bdf726d695cf1b5960843be18843d5f9fcd02b2632d5c5a2dd6e330000000000000001000000000000000100000000000000202feb59037d37e58c7ae6981240627157e2d56c7ce73366769597e4a404b62e4c000000000000000100000000000000000000000000000020c8a9706d43613feef1f7182c33ec47958f103c466f0a5c331ae15d21af056b2a000000000000000100000000000000010000000000000020407e1d016b2156134625c6c0acace3fca412163392f1c4920830c79723de997b000000000000000100000000000000010000000000000020659b6b070f44812ca2ffc215c67485587dd0d144e05eb3647148b4f5ca7360120000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000000400000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000010000000000000020b715b8dc2b4f2279715881cde68ae43f478d157a6332f5469da1e301742325780000000000000001000000000000000100000000000000208c082649fedb2d6d1df100e532a8001567a341813a6a0fe1b04813431f53cd33000000000000000100000000000000000000000000000020a83ce3f6822f2805da6f235cd57c1e49249433b8646938623efd0a040bb1ded60000000000000001000000000000000100000000000000204bc065f3dd3e3b30a0dac92ed91cf22f8259a480aa87d1c980b53b9a86e52a01000000000000000100000000000000010000000000000020dbce0776e37eb7c2a9e60b3254ce5ea6bed0db83c8c2e6b120494c0d9ed2a76b000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f0000000000000004000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000010000000000000020d064e61c274d95bb5e9e0234973dcc2f97dfef3bb3efcb34c8d9a5cbf845a26c0000000000000001000000000000000100000000000000206c7de327c4cde9c353811da48a1929a019d15fb4d30226f8005d95a3a5043ff200000000000000010000000000000000000000000000002057b19820ae67477ff0fc9a389396aeb670b7c8e05836cc5910b5ddb99ab4caf9000000000000000100000000000000010000000000000020a4de7176464be9124785e24d63c211255e653cd53798f2b73611e5f15feef7c70000000000000001000000000000000100000000000000207e13fb6690e345dd8bdf6ed863b9142988ca740ed6091c9fae658b221f7d7334000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a0000000000000004000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f32938000000000000000600000000000000010000000000000001000000000000002037f3c3334c4ccdf4c7af03a4e98d09045fbf91bd4aeda27221f4074fc87ae2f40000000000000001000000000000000100000000000000200145bfa689a590a70838a593886aa43d2fcfc263d3156b731a198b5f60d17cb80000000000000001000000000000000000000000000000202ca61985fbc5910957e78a916da8508a3ead835fe2a43c85aafb20f5955f0ca0000000000000000100000000000000010000000000000020d2ac9a6c10a81d256c41bc67e07527d5a36e5dc54a2c6b984bb939fbc8ccd413000000000000000100000000000000010000000000000020cc3aa606fdcbf96592df9e3ecf28c535384ef37bff659d91d2f5982a3a391cb0000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000000400000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000010000000000000020acd025f157bb36e8a2a301e8d6d88f75bfd49283ffaf5d492c67b4a729a0984f0000000000000001000000000000000100000000000000202ff68e275e9f3c1b3b7f743a4782f617731151b00ff2a2b3c7ad2c740a85ee730000000000000001000000000000000000000000000000206dd7a46816110430442508860c306738f4a9a0455d87cb1fe469f761064972aa000000000000000100000000000000010000000000000020482529a81b98175b81ad742dd6e90b5edefabf8d4cb4e27a6d7438b3191f6bad000000000000000100000000000000010000000000000020af9f96d3edd125bc1e0a105b9ffdc8e3024dc69325a78b2a02611964156a8e7a000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b9272000000000000001d0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e000000000000000600000000000000010000000000000000000000000000002064c557d55375fb980243316cc094e1409b4134756a1742dc867410611a380c9300000000000000010000000000000001000000000000002012edb90efc6a65c82406e9e729c69705717bb9213763989a3e429db69b1fa1be000000000000000100000000000000000000000000000020ab170dad02da8e5a4c268e132c454adc4b6729b907eb3b0647e0b75ba06ca1ae000000000000000100000000000000000000000000000020261c2de001295b8ae6db8a3110d2d193b80167fee59f8f542a00ce1709747a6900000000000000010000000000000000000000000000002028d0668b3b0bb626ddb7371edbb5222936f68264e2cfb9376038323928d12a950000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000001d00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000209cd7e98a2d2e09ab57fbd65b8471e6f11d77a24e5ca150505ee781dbd33e9756000000000000000100000000000000010000000000000020070faa4b0f39e22d43da05eaf01eaa74ae4dfa9cf3b4f146bc3076585fa9c02700000000000000010000000000000000000000000000002024299b0256071ee4c8943b75440fdb14cb0a87a9d470ca0d23930e470c29fd2d00000000000000010000000000000000000000000000002068af7e3f604105e672bb008f7f6497a71b4230ffaedefc6e201e3a965f80aad9000000000000000100000000000000000000000000000020d7f7d11996573b5da0d2cbe7d58b7d9ee40d6b31bbfd992e1387dae096d31597000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f000000000000001d000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000000000000000000201d6a369b05cc67293f0393af51a7d4056bc52be5156909401e804d159169447b0000000000000001000000000000000100000000000000201581a9112f15b5db73805221511d3b17bb0b44a8d5bdb5961d05b119e83069f80000000000000001000000000000000000000000000000201f0f92e1ba9dfc9c805ddaed879861bdc05c3a78b978e8bb3a8c041349d557fb0000000000000001000000000000000000000000000000202f82c0c1a186d9e1264fb0ac164a09274cdc7fa84262a440da9649a8aa36aaef000000000000000100000000000000000000000000000020824ce8426988565f955f44ee03d626fea805a15ec4db70b129a69a2d7b15a5aa000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a000000000000001d000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020dbdb6a4cc8b17c5ea2d125c6af18f1a5a232cbda042546a5e8b8a220e858de5e000000000000000100000000000000010000000000000020ab7aae7bbf9e20bdeb1ab6bbe7a70c6cd858e5d76f9f05de9e38ec9f931a3ec50000000000000001000000000000000000000000000000208e9ca24717ee2452a64953880cd16ce2ed80e0ab655a248e3a0d70cb8d9ef4b8000000000000000100000000000000000000000000000020cbb94a1fa90daec34851502087bc06a9b8934f9e2e87d1242484cea77e968a42000000000000000100000000000000000000000000000020d488fb112c8e7e22dfab501043651ee3017cc449d7e2043156d45aaf96580343000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000001d00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000000000000000000207bebb1b5de11152457d291912534c5ffe07f4ef1797e65901fa68e2f90056fb7000000000000000100000000000000010000000000000020d5f15fb4972b5ea2159a542111a45a1ff217a413588328aa49a47ed613fc70570000000000000001000000000000000000000000000000201a61d9687a39c69fc39cbb583e8569c27f226321d4438d1f17092925ea3cf032000000000000000100000000000000000000000000000020c1e67f4fe465546990e3ad91e731dd95b1c88152d8ecc54d60d94cbfdca528650000000000000001000000000000000000000000000000200b1317ae38b570b4c049c419190fae276bb0ef81fc42fd65f1a137ebd541d9ae000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b927200000000000000260000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e000000000000000600000000000000010000000000000001000000000000002002264f66321999533318a66b630c922ed2c8afd79f75ad3ad7e2546988d2c229000000000000000100000000000000000000000000000020ce6cbec44c6750b87c769f2196e739261249641951d381617e8405bbf0202556000000000000000100000000000000000000000000000020e8b9aa258428d11be94220c2dd6dc9be6f7dfbf6c563495f34ac19fe54c7a02b000000000000000100000000000000010000000000000020acd5d62b97e6c33a02d4331e361fc284fac3d4751616f3f316c28ea08f63c5d000000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002600000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000100000000000000205e9bb0baae243491c7eb032dee99b7d36c82ec05b60e64eddd17c8be11cd6d5600000000000000010000000000000000000000000000002060fdc81936cb56fefc4ae765ed50a0407b33f19eff3eee870f07317cdb2ef330000000000000000100000000000000000000000000000020ed1cdc4693f53dc4db6ac19967a9854c6557cdba9dd1ef73aabe5680048340b900000000000000010000000000000001000000000000002039c719fa3f6fd86de45cdcbe116bc929d735098bfd57ba95c955727b3f86087f0000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000026000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000010000000000000020dc8aa5c3c55a97bdb7bd81ca0c78663eb6c0009ca983ed54c552867d176e3004000000000000000100000000000000000000000000000020a09e4a0cff4a2719030a0f657ce42c12a2cd4cc27b8cdfd21d1cbcf868b7190b00000000000000010000000000000000000000000000002057270586231d0130eb017de9b965c71be11d39fda49cb46ecc4fc4cf2baff38a000000000000000100000000000000010000000000000020a814a34f76af1733811481d105364da0ad5c6889b20ac62ec695d95bad6ccfa40000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000026000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000010000000000000020d9d44b09d08b8219649fee03bc1d8d6f144f9d725dc46d7d1cd32c7712d6cd30000000000000000100000000000000000000000000000020a9887501139d04ce4e8fa79b998c30f58c8d5ba78c911d4db7001a5436dc18fd0000000000000001000000000000000000000000000000208acf7b66bc86786435ec6708d199d5b065b2e43f560fdf2547c4cd28ea0352ab000000000000000100000000000000010000000000000020609f06fb0f917dd5aff48faaa7c9a26932b0164e4ceb2fcb49512a7126aed0240000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002600000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000010000000000000020884f313cc7a8412ea0712b8a5714e7da07720e79a0b4fd720bc61b0bf836cec400000000000000010000000000000000000000000000002032ce4870dfa2fb4284adb38aa43f49a3a3c28255497b93a85731134cd0486a2d000000000000000100000000000000000000000000000020d8d5941d890c32e24cc840a8ee7a932a739bad1dbbbe6985a9d3ea1a07252ddc000000000000000100000000000000010000000000000020581702be02dcae0d01501fe971bb01119d074a9fa43014b6ad4081e583d632e900000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000140000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000010000000000000020d13b1182595fb7c8fd9c38b06609e98ff298f43b1dfe5d8b5ca476009ca9b933000000000000000100000000000000010000000000000020c6b381e0454db795b5b8e2c00528e8909b1dd390294e937bf0b6fb4466a5dbee0000000000000001000000000000000000000000000000204ea8cf9cce17e7e1cd760ecafb340641ca9c38dc3307fbbd00021b4d76fbf0ae0000000000000001000000000000000100000000000000201ec85a72ab785b7c48cb10710fca42c4de34b9d99094486a7cb14fb0a459812f00000000000000010000000000000000000000000000002028d0668b3b0bb626ddb7371edbb5222936f68264e2cfb9376038323928d12a950000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000001400000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000010000000000000020892d112af16dd31aa00e78a4b486da7d03ccf553eeed08d731856f357b0d56730000000000000001000000000000000100000000000000204e89e96754b7e307d08e159877a517f8dae2dd670159ccae091ca417e29e0b160000000000000001000000000000000000000000000000205b81613de55d7495bc7e3454f119dc5ff6d98575a97ce0feed94a8a81ef4c58300000000000000010000000000000001000000000000002048060202f26e09afa01220fe2b845539f7f28e73ab6b16690996cf8c05046244000000000000000100000000000000000000000000000020d7f7d11996573b5da0d2cbe7d58b7d9ee40d6b31bbfd992e1387dae096d31597000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f0000000000000014000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000100000000000000203991f987ae43bdb2cb460f4b9117a831f120c1df621ef35f441c88f7b2fe768e00000000000000010000000000000001000000000000002041a778046c93dbd5892bb63389616c7fdabbff935eb68f5452f508f9f65f89050000000000000001000000000000000000000000000000202563891c5fdc655c709322f431d4685310ab6de8a04381b461a35a918206b74b0000000000000001000000000000000100000000000000200aed2038bedd56c46aa92e044dbb04e9d6d047ddb3819c31056472a336358fb2000000000000000100000000000000000000000000000020824ce8426988565f955f44ee03d626fea805a15ec4db70b129a69a2d7b15a5aa000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a0000000000000014000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000010000000000000020f065628a8cc1acb32c10fca6cce7ff62f54b3006f7fc53109fe3de9eb63070c7000000000000000100000000000000010000000000000020197823063594ed9cdc1422e186f0f109a3276a516115aaf6b8d28dafd7912882000000000000000100000000000000000000000000000020719cc0a76d30bc5fc3d188278907a26c1bb12d95f610d264295d81fa4961caf70000000000000001000000000000000100000000000000204e291298e718e4215dade20a34700b89a0336d8bede04b427e3792a09b3a48cb000000000000000100000000000000000000000000000020d488fb112c8e7e22dfab501043651ee3017cc449d7e2043156d45aaf96580343000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000001400000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000010000000000000020e6547ddea77102bb5b0769fa0ec49ae2993ebcb244cbd2d69f3bfd6fb3737cb90000000000000001000000000000000100000000000000200cbd009198ff0a8e110c81761a286e88fd0450ed686f921f3937fd0895542325000000000000000100000000000000000000000000000020b7d60652bb0211f3ad5aed0c840caa5d9da58707a326e5389e94ec43ff4bd2f1000000000000000100000000000000010000000000000020b4bfefcc77fb1c06d34fae0ff743553b71633d0f2755a6c510a2a7a843af6fbe0000000000000001000000000000000000000000000000200b1317ae38b570b4c049c419190fae276bb0ef81fc42fd65f1a137ebd541d9ae000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b927200000000000000280000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000010000000000000020e2efc0c8de247c9438c3cdc5219227339f21ddd9caa55bab11035618652dd797000000000000000100000000000000010000000000000020a7ab07465b54611179f5d8b3f01dda40efa5ef6a7beb7ddea184943d0014654c0000000000000001000000000000000100000000000000201fc30593ec7d427903dd1f55256e3ffc19a85f70cf2a8e7c0acb4f0a53f1effe000000000000000100000000000000000000000000000020bc2ec48a0ffda0d4d83b497975512e07ddaa2af9c054c3050454c1844d04b72f00000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002800000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000100000000000000208cfd329d11d0511e44efb6c45cb19bbd79f020872b1914221f03f74772df0f780000000000000001000000000000000100000000000000206eda94265d040faabf44625d55ab8b4ec7a5f1ec78d8b49e877a868ec6619d3900000000000000010000000000000001000000000000002029ddc1ae85781550b5b8262839b67495818dab865d8bb41a08d9d715a8f5ad470000000000000001000000000000000000000000000000201dbcfe2b985f1976717c36ba364b4855be4e3991bd1679509516db11cedec7830000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000028000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000010000000000000020189815d4b7880b6e5b19f3f1fc059d7abc004a1c7efbd8330127640e1d8d5c52000000000000000100000000000000010000000000000020f27a29d328bdc6caa0ee3f0f6f7c703890f1805c474144e4bcbc87eab56c5335000000000000000100000000000000010000000000000020b21fce2155f8766d6e3d49a87773c41a486b0eb7dabcbfc0cf2963f7b34ecd33000000000000000100000000000000000000000000000020291814bb23ca041a829cd777ab17a74972cca1d409306698f066b2b12b5b7e450000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000028000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f3293800000000000000060000000000000001000000000000000100000000000000208fcc56b1c6d457aa8bcf6531f86007bd0c1554aaeb03e10977438cba39aa920500000000000000010000000000000001000000000000002054f128363693244ccfcb0f852cc53499930006a76f4f8ad53422282d7ba2b1a900000000000000010000000000000001000000000000002032906f8b355f4c2d6b639a6899bcadf4e2cb7fcba76d4ccb412d5c24053801490000000000000001000000000000000000000000000000207afc3d3f377ea328d0a546da843425d8cd2f61d21026ec31c026288cb3d0698b0000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002800000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000010000000000000020f398ecc257c9c2a22b7cfdd2ee9df79a0764838bfc331ec8ea9acf0cad0b814f0000000000000001000000000000000100000000000000203b71c8650663ac45104b87aeb469737990a8040255ea025b39bbd29956133147000000000000000100000000000000010000000000000020bbdfd0dd1887a478722c75ca8033a8a2201ecbe77561ec5505c4f7fa0b2fc07f000000000000000100000000000000000000000000000020d3e115a5a233331eea0c9d1a61f910fb1ddbd717686aaafe4459fc88d54a083e00000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f8000000000000001d0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e000000000000000600000000000000010000000000000000000000000000002064c557d55375fb980243316cc094e1409b4134756a1742dc867410611a380c9300000000000000010000000000000001000000000000002012edb90efc6a65c82406e9e729c69705717bb9213763989a3e429db69b1fa1be000000000000000100000000000000000000000000000020ab170dad02da8e5a4c268e132c454adc4b6729b907eb3b0647e0b75ba06ca1ae000000000000000100000000000000000000000000000020261c2de001295b8ae6db8a3110d2d193b80167fee59f8f542a00ce1709747a6900000000000000010000000000000000000000000000002028d0668b3b0bb626ddb7371edbb5222936f68264e2cfb9376038323928d12a950000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000001d00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000209cd7e98a2d2e09ab57fbd65b8471e6f11d77a24e5ca150505ee781dbd33e9756000000000000000100000000000000010000000000000020070faa4b0f39e22d43da05eaf01eaa74ae4dfa9cf3b4f146bc3076585fa9c02700000000000000010000000000000000000000000000002024299b0256071ee4c8943b75440fdb14cb0a87a9d470ca0d23930e470c29fd2d00000000000000010000000000000000000000000000002068af7e3f604105e672bb008f7f6497a71b4230ffaedefc6e201e3a965f80aad9000000000000000100000000000000000000000000000020d7f7d11996573b5da0d2cbe7d58b7d9ee40d6b31bbfd992e1387dae096d31597000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f000000000000001d000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000000000000000000201d6a369b05cc67293f0393af51a7d4056bc52be5156909401e804d159169447b0000000000000001000000000000000100000000000000201581a9112f15b5db73805221511d3b17bb0b44a8d5bdb5961d05b119e83069f80000000000000001000000000000000000000000000000201f0f92e1ba9dfc9c805ddaed879861bdc05c3a78b978e8bb3a8c041349d557fb0000000000000001000000000000000000000000000000202f82c0c1a186d9e1264fb0ac164a09274cdc7fa84262a440da9649a8aa36aaef000000000000000100000000000000000000000000000020824ce8426988565f955f44ee03d626fea805a15ec4db70b129a69a2d7b15a5aa000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a000000000000001d000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020dbdb6a4cc8b17c5ea2d125c6af18f1a5a232cbda042546a5e8b8a220e858de5e000000000000000100000000000000010000000000000020ab7aae7bbf9e20bdeb1ab6bbe7a70c6cd858e5d76f9f05de9e38ec9f931a3ec50000000000000001000000000000000000000000000000208e9ca24717ee2452a64953880cd16ce2ed80e0ab655a248e3a0d70cb8d9ef4b8000000000000000100000000000000000000000000000020cbb94a1fa90daec34851502087bc06a9b8934f9e2e87d1242484cea77e968a42000000000000000100000000000000000000000000000020d488fb112c8e7e22dfab501043651ee3017cc449d7e2043156d45aaf96580343000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000001d00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000000000000000000207bebb1b5de11152457d291912534c5ffe07f4ef1797e65901fa68e2f90056fb7000000000000000100000000000000010000000000000020d5f15fb4972b5ea2159a542111a45a1ff217a413588328aa49a47ed613fc70570000000000000001000000000000000000000000000000201a61d9687a39c69fc39cbb583e8569c27f226321d4438d1f17092925ea3cf032000000000000000100000000000000000000000000000020c1e67f4fe465546990e3ad91e731dd95b1c88152d8ecc54d60d94cbfdca528650000000000000001000000000000000000000000000000200b1317ae38b570b4c049c419190fae276bb0ef81fc42fd65f1a137ebd541d9ae000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b927200000000000000080000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000010000000000000020b2a09e1bba6978bd8c32031dac637f0f3d5206749723d885b5db7c283e254cac0000000000000001000000000000000100000000000000203b055f5ec21cdd2d321937c699cc5b005cfd392544e209343f6f4bc3609d50a8000000000000000100000000000000010000000000000020212011d70596d8f444a02b2551c63793bb6214725d0b1d4e2d024902a719d74d00000000000000010000000000000000000000000000002063b18099f915d818ff11dd06d2b4924e18e1b43d1a7d80c4018a6828759c3e2c000000000000000100000000000000010000000000000020659b6b070f44812ca2ffc215c67485587dd0d144e05eb3647148b4f5ca7360120000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000000800000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d6000000000000000600000000000000010000000000000001000000000000002025553f8f686626057f8d663cb54d66c5a84f60cbc033a86e180f41c8543523ce0000000000000001000000000000000100000000000000205c4181331efc246b6fd787984126b3c735f6b747840454826726ab672228df2000000000000000010000000000000001000000000000002008c5fc936786cf9d0af43c12be03cc772b25837622cd42f08df1c66e5e116a2a000000000000000100000000000000000000000000000020bd75800a626d45803e0ac76b5c093b70cab826c1e74d4cd0ce8e6c36106f95bc000000000000000100000000000000010000000000000020dbce0776e37eb7c2a9e60b3254ce5ea6bed0db83c8c2e6b120494c0d9ed2a76b000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f0000000000000008000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f299941856000000000000000600000000000000010000000000000001000000000000002028d53f53d8529a7e90d5ccae7564158bec1af6fa3a5a8ba8cbfb9aa9a6aa048c000000000000000100000000000000010000000000000020a7170bc0cfb0066ee2a6bc38ae323cf6155ef29a640796587131389fc7ddd196000000000000000100000000000000010000000000000020f87937c3d7f9ea889556bed01a00031a67448288e6ad311f669b4408eebc01ac000000000000000100000000000000000000000000000020842c39bed54d7be108142ed95a58b534014e03e9871691ec932be839f2294f4d0000000000000001000000000000000100000000000000207e13fb6690e345dd8bdf6ed863b9142988ca740ed6091c9fae658b221f7d7334000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a0000000000000008000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000010000000000000020b54a72cb89ccf52e566d99215fd66a8ab35c3e9c5fa456e5a43fc8eb9aa1832100000000000000010000000000000001000000000000002076f0d827402b47129db7da8669550ecbc1c84eddedb8bef62b4d08efce600e37000000000000000100000000000000010000000000000020ad2c19c26d0488214886b03e7e4bc57d130a100d9e13ced4921d6472e2238a2e0000000000000001000000000000000000000000000000201de5bb3d887c07d54506473a20db02428ebc54d6a3c978c792d0e6f1f4de0511000000000000000100000000000000010000000000000020cc3aa606fdcbf96592df9e3ecf28c535384ef37bff659d91d2f5982a3a391cb0000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000000800000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000010000000000000020bcf5094d09b6b17179ba3436f1b7be98ca6ba41a91456421e20664fb7f7443820000000000000001000000000000000100000000000000201df9ab42d54f8ea624eecc57fce828882c6b80c722d86bb88d11443ff87766af000000000000000100000000000000010000000000000020630f361882ada56a075e947b144639b306577494cfa2d14d2fd11f09586072a00000000000000001000000000000000000000000000000206e8232a0c61d237a50e6dcca4dcea8b407b71864d02b4c647447bc948ffe8ebc000000000000000100000000000000010000000000000020af9f96d3edd125bc1e0a105b9ffdc8e3024dc69325a78b2a02611964156a8e7a000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b9272000000000000003d0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000000000000000000020ace9659a3eca3c2a1cccbc983ead796d78a748e3786946462f4d9d1fdc3e34ac000000000000000100000000000000010000000000000020bcf05d3c5eb71fed288eb4b419a188c8860206b533025c802ed5cd504e55c1b00000000000000001000000000000000000000000000000207a1b3b2568d13a2eef371f9a6406e1e5ea8ea67cf4f7c3e9e841cfc385002de400000000000000010000000000000000000000000000002093496aa9b95cdfb66da9c0d5bc5df817484a2a333e9349baecc93bd74a2ca4730000000000000001000000000000000000000000000000209fbca920ee0c87a956f99c4f1362a800f24be48892fb636d69c31e2a28f6ac89000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000003d00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000000000000000000020c15d51cf18b6ba8c12ed152e4a515b632b24633b5f6b22f7103649e18d6f1f9e0000000000000001000000000000000100000000000000208b25ecd6ff537916132b0a2c9828a23713e826894f39c2af049fb06a056e2443000000000000000100000000000000000000000000000020ca4326b0ac9a40f7962046fbc2ae4a247b71dee20ff8514aa46bc9a7f710d2460000000000000001000000000000000000000000000000200c0b006e9ce5ab8dee54461051bb96c286fd71b34dc6edc2cc81ccb3100d316500000000000000010000000000000000000000000000002009d96f34c0d0d0c579558695e2590b6b8a00dc82f66b0ed035313048e74ae7cb000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc000000000000003d000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000000000000000000020938fa0a6b1c2b75bdf6f4ba90387cbcf0b23762fb05befccb17d0cea24fe684000000000000000010000000000000001000000000000002070475275547a4e19ad5111cbc2761f67ebbb11db7b19d3e5da5b0a1829c4ec5a0000000000000001000000000000000000000000000000205863974ae834cb6f7cdda3179a5eb9db26199ae6501319daa7e9350565a01a52000000000000000100000000000000000000000000000020a724c8ade8149e1cc611772680cb6d18385ad3f0e4e5bb60e4780827cedd136c0000000000000001000000000000000000000000000000209e4aa536330b2d7a31d018a0c66389dc79b3652f4ba9a731d52185c1d2764761000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e000000000000003d000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020f6d0f9998a4caeaedf31272eebc9c4f6855dfc972528fca3c6aedb2b52959ee40000000000000001000000000000000100000000000000200bbb509da79f5f8b438035f866b33e7d35ea0d24c196577e58c711e996e9d67a000000000000000100000000000000000000000000000020e0d59165174c1b01a1778b0c00ea048f351711781eb9b7905bac635125041c7c000000000000000100000000000000000000000000000020488cdfd2909dddf32aafba620adfd844cf7f0e6eae4371d0ed616315e9b3d1e900000000000000010000000000000000000000000000002068e96971008bee2f90df118bffada99c074a0d2c49bfc1b99915b2dcf51048a20000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000003d00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f000000000000000600000000000000010000000000000000000000000000002078d73dc05e52ee7c8e19682c5f83941c32eccea8702643ba4954454340dd7d48000000000000000100000000000000010000000000000020b2bd6c7bce44e8cb1dd2c1ada3f46a4ef84aa70a4f6d582427f82789c25091290000000000000001000000000000000000000000000000207307458ebfa1b463080bdf0c8b226e68af95d3ce03c81f574dc53886fc92c5510000000000000001000000000000000000000000000000200aeeef018d0928774997734b759241fff2f2f118735c3cc567f475600c93c6450000000000000001000000000000000000000000000000209c3cc5f2e03bbb6fbb6a00377debdbb0ff07e93db8e65b607e9ce577d2bff4060000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f8000000000000001e0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000010000000000000020ba15f8caa378deb827f35ab84ee3c8ef16117ea97e57e0f20b14ae88d236b6ff000000000000000100000000000000000000000000000020a6a1702db35b748e42f0f110ec40716f747145613b2b25986a5c3dc74e1ab13a000000000000000100000000000000000000000000000020ab170dad02da8e5a4c268e132c454adc4b6729b907eb3b0647e0b75ba06ca1ae000000000000000100000000000000000000000000000020261c2de001295b8ae6db8a3110d2d193b80167fee59f8f542a00ce1709747a6900000000000000010000000000000000000000000000002028d0668b3b0bb626ddb7371edbb5222936f68264e2cfb9376038323928d12a950000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000001e00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d6000000000000000600000000000000010000000000000001000000000000002085351021aea650c4597031fb7dc932b99054b360e97ca572bb6bece35ae11bdf0000000000000001000000000000000000000000000000203a2146e92a3ad3706b36813e4c45136f975811c6589e6331024a956042e7768c00000000000000010000000000000000000000000000002024299b0256071ee4c8943b75440fdb14cb0a87a9d470ca0d23930e470c29fd2d00000000000000010000000000000000000000000000002068af7e3f604105e672bb008f7f6497a71b4230ffaedefc6e201e3a965f80aad9000000000000000100000000000000000000000000000020d7f7d11996573b5da0d2cbe7d58b7d9ee40d6b31bbfd992e1387dae096d31597000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f000000000000001e000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000010000000000000020f821bc8956540d674f85944695ec2cdab831a2a389a2d11a3d7cb0e72d70c402000000000000000100000000000000000000000000000020d556e53e89946cc6a63053d2f237bd42df808fd51872fe3a16ac4cf4f89b865e0000000000000001000000000000000000000000000000201f0f92e1ba9dfc9c805ddaed879861bdc05c3a78b978e8bb3a8c041349d557fb0000000000000001000000000000000000000000000000202f82c0c1a186d9e1264fb0ac164a09274cdc7fa84262a440da9649a8aa36aaef000000000000000100000000000000000000000000000020824ce8426988565f955f44ee03d626fea805a15ec4db70b129a69a2d7b15a5aa000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a000000000000001e000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f32938000000000000000600000000000000010000000000000001000000000000002030d6b49905be576af2c974f08de40dec367587e3f626cc9bc52f04670a7003580000000000000001000000000000000000000000000000207d27cce8e7d4819cb9c3a6e141c2d34d37acb8e1fc1075a3bb2d20b8408e984c0000000000000001000000000000000000000000000000208e9ca24717ee2452a64953880cd16ce2ed80e0ab655a248e3a0d70cb8d9ef4b8000000000000000100000000000000000000000000000020cbb94a1fa90daec34851502087bc06a9b8934f9e2e87d1242484cea77e968a42000000000000000100000000000000000000000000000020d488fb112c8e7e22dfab501043651ee3017cc449d7e2043156d45aaf96580343000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000001e00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000100000000000000208f526051780fa2a3d112fdedee88168162589e00a4943c032e8b91bc4c53d9840000000000000001000000000000000000000000000000202671dd30be892f7113a73cf7f3a8445d53ddc40a8e9973ee587af2a0c1606cb80000000000000001000000000000000000000000000000201a61d9687a39c69fc39cbb583e8569c27f226321d4438d1f17092925ea3cf032000000000000000100000000000000000000000000000020c1e67f4fe465546990e3ad91e731dd95b1c88152d8ecc54d60d94cbfdca528650000000000000001000000000000000000000000000000200b1317ae38b570b4c049c419190fae276bb0ef81fc42fd65f1a137ebd541d9ae000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b9272000000000000003f0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e00000000000000060000000000000001000000000000000000000000000000205d4c779ca056d5a43fdb294c291c55feb6effb474b2ffa15a47c7826b94cf035000000000000000100000000000000000000000000000020e847feaf559ce80754223c34cd9f84ef8630f27f2ec5da9b17c0184e56ac0bbe0000000000000001000000000000000000000000000000207a1b3b2568d13a2eef371f9a6406e1e5ea8ea67cf4f7c3e9e841cfc385002de400000000000000010000000000000000000000000000002093496aa9b95cdfb66da9c0d5bc5df817484a2a333e9349baecc93bd74a2ca4730000000000000001000000000000000000000000000000209fbca920ee0c87a956f99c4f1362a800f24be48892fb636d69c31e2a28f6ac89000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000003f00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000000000000000000020837fe16eb995227a7f26513d8857ff01ce7279bd091bf82978429b062e6c7e0c000000000000000100000000000000000000000000000020133681acf78f078b649528d2bc4ebbf814409928ff3b11c5c2888bc599bdb55c000000000000000100000000000000000000000000000020ca4326b0ac9a40f7962046fbc2ae4a247b71dee20ff8514aa46bc9a7f710d2460000000000000001000000000000000000000000000000200c0b006e9ce5ab8dee54461051bb96c286fd71b34dc6edc2cc81ccb3100d316500000000000000010000000000000000000000000000002009d96f34c0d0d0c579558695e2590b6b8a00dc82f66b0ed035313048e74ae7cb000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc000000000000003f000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000000000000000000020d833267e4e1548dcec354bdd387dc676d52a3c6577c9bde310a8ea9b7d1462ae0000000000000001000000000000000000000000000000209ba171b4bbcf3a9c543a04d5d142e4e190ad4d81bcd4c08138e05f5dc9127d9e0000000000000001000000000000000000000000000000205863974ae834cb6f7cdda3179a5eb9db26199ae6501319daa7e9350565a01a52000000000000000100000000000000000000000000000020a724c8ade8149e1cc611772680cb6d18385ad3f0e4e5bb60e4780827cedd136c0000000000000001000000000000000000000000000000209e4aa536330b2d7a31d018a0c66389dc79b3652f4ba9a731d52185c1d2764761000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e000000000000003f000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020eca7ca33c2bb4170ac3f035f05468eeb2191e8082d35f89f81cd2a2b7468d41200000000000000010000000000000000000000000000002005ecb630e13c931db03887d2de361943a7433cd3a25d69061ef78222bc734cd6000000000000000100000000000000000000000000000020e0d59165174c1b01a1778b0c00ea048f351711781eb9b7905bac635125041c7c000000000000000100000000000000000000000000000020488cdfd2909dddf32aafba620adfd844cf7f0e6eae4371d0ed616315e9b3d1e900000000000000010000000000000000000000000000002068e96971008bee2f90df118bffada99c074a0d2c49bfc1b99915b2dcf51048a20000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000003f00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f000000000000000600000000000000010000000000000000000000000000002016a091d31a88cdd9cdcf3c9cf1ef4ce3622029681073cb148d36577414b8df7d000000000000000100000000000000000000000000000020680c853dc6a0b371601382d940b4b0d046a42c04dba51c8b8801bcceaddb6f9f0000000000000001000000000000000000000000000000207307458ebfa1b463080bdf0c8b226e68af95d3ce03c81f574dc53886fc92c5510000000000000001000000000000000000000000000000200aeeef018d0928774997734b759241fff2f2f118735c3cc567f475600c93c6450000000000000001000000000000000000000000000000209c3cc5f2e03bbb6fbb6a00377debdbb0ff07e93db8e65b607e9ce577d2bff4060000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000380000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e000000000000000600000000000000010000000000000001000000000000002025fed04d69e49303c22cd2fadc0112c6978ec8f20f8fa8fe454102aaef8bd64a000000000000000100000000000000010000000000000020ea132e6ad465bc3d576d24943e8eb110cbbe9e0822e43ab2b485cff78cfe7bbf0000000000000001000000000000000100000000000000206402373ddcb71c9fa2bfe1d2d9097bfb1e67c3a16c2603e6850eedece20f804700000000000000010000000000000000000000000000002093496aa9b95cdfb66da9c0d5bc5df817484a2a333e9349baecc93bd74a2ca4730000000000000001000000000000000000000000000000209fbca920ee0c87a956f99c4f1362a800f24be48892fb636d69c31e2a28f6ac89000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000003800000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000100000000000000204ee0c0b2ff1aa3546421e9e97f4f6196aa1e08d2fe0cb62b9340e2067d59b73f00000000000000010000000000000001000000000000002087acc052c4befcbc863390a53bc9fe76ddf39509151f111da33e34eefa9c20bb000000000000000100000000000000010000000000000020ec80243d3ec903cb562c8eacb603f6c834430b23f15d562812829d19ab4c355c0000000000000001000000000000000000000000000000200c0b006e9ce5ab8dee54461051bb96c286fd71b34dc6edc2cc81ccb3100d316500000000000000010000000000000000000000000000002009d96f34c0d0d0c579558695e2590b6b8a00dc82f66b0ed035313048e74ae7cb000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000038000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f299941856000000000000000600000000000000010000000000000001000000000000002076cf6d425c75d99e7c14d61eac345baaa286bf62aa616e1b43f2880d426fa226000000000000000100000000000000010000000000000020e25b16e92ce565166fe90f1c3edb66f7f7a147fe1eb50d049a44d69786c76df90000000000000001000000000000000100000000000000208e2274770ab1400a8d4a14228b5b83fbbc2f8b567f0d93bae220f05170b20030000000000000000100000000000000000000000000000020a724c8ade8149e1cc611772680cb6d18385ad3f0e4e5bb60e4780827cedd136c0000000000000001000000000000000000000000000000209e4aa536330b2d7a31d018a0c66389dc79b3652f4ba9a731d52185c1d2764761000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000038000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f32938000000000000000600000000000000010000000000000001000000000000002079de3766568509821bc323df29732f79a7231f97a7156c07f5f9c900dd040a30000000000000000100000000000000010000000000000020f33d0621a9be5d0bc10fb9ba479d2c92b9442af4ac19c6bc422738323447ccbf0000000000000001000000000000000100000000000000204b85a596b27c62a80e804a5f440e38fd1798e192f2e4faf6c9d937e152644b4f000000000000000100000000000000000000000000000020488cdfd2909dddf32aafba620adfd844cf7f0e6eae4371d0ed616315e9b3d1e900000000000000010000000000000000000000000000002068e96971008bee2f90df118bffada99c074a0d2c49bfc1b99915b2dcf51048a20000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000003800000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000100000000000000200809765dfcbcb9e1615204c8e0c08810d94b3e8b1dcc5a958d5c4b63a0b152d000000000000000010000000000000001000000000000002004eac4235e209d96bd17c310b61b8b64f2de73bff9eedc68f3d5329676b3529100000000000000010000000000000001000000000000002090d7b0bcec2a4257083160dd8ffbec8f4d56bdf900f2859e017373f837e3c55e0000000000000001000000000000000000000000000000200aeeef018d0928774997734b759241fff2f2f118735c3cc567f475600c93c6450000000000000001000000000000000000000000000000209c3cc5f2e03bbb6fbb6a00377debdbb0ff07e93db8e65b607e9ce577d2bff4060000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000050000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e000000000000000600000000000000010000000000000000000000000000002080605255e64754fe39bbae7765c123629a4c2da652e7b7a845d118f9eb022af90000000000000001000000000000000100000000000000202feb59037d37e58c7ae6981240627157e2d56c7ce73366769597e4a404b62e4c000000000000000100000000000000000000000000000020c8a9706d43613feef1f7182c33ec47958f103c466f0a5c331ae15d21af056b2a000000000000000100000000000000010000000000000020407e1d016b2156134625c6c0acace3fca412163392f1c4920830c79723de997b000000000000000100000000000000010000000000000020659b6b070f44812ca2ffc215c67485587dd0d144e05eb3647148b4f5ca7360120000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000000500000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000000000000000000020deadcf14c5fb6c6e0ee09890e8998329b274d6fbc7b15f827288c5fddf2e888c0000000000000001000000000000000100000000000000208c082649fedb2d6d1df100e532a8001567a341813a6a0fe1b04813431f53cd33000000000000000100000000000000000000000000000020a83ce3f6822f2805da6f235cd57c1e49249433b8646938623efd0a040bb1ded60000000000000001000000000000000100000000000000204bc065f3dd3e3b30a0dac92ed91cf22f8259a480aa87d1c980b53b9a86e52a01000000000000000100000000000000010000000000000020dbce0776e37eb7c2a9e60b3254ce5ea6bed0db83c8c2e6b120494c0d9ed2a76b000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f0000000000000005000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000000000000000000020669356750c87158b6d053a2ff3d07f379c15d4a67e1c0567f4312cd1b2060e510000000000000001000000000000000100000000000000206c7de327c4cde9c353811da48a1929a019d15fb4d30226f8005d95a3a5043ff200000000000000010000000000000000000000000000002057b19820ae67477ff0fc9a389396aeb670b7c8e05836cc5910b5ddb99ab4caf9000000000000000100000000000000010000000000000020a4de7176464be9124785e24d63c211255e653cd53798f2b73611e5f15feef7c70000000000000001000000000000000100000000000000207e13fb6690e345dd8bdf6ed863b9142988ca740ed6091c9fae658b221f7d7334000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a0000000000000005000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020aa21819af434e5f2fac4e429c98e35053be9498009d29363fe03ff776eeb0b9f0000000000000001000000000000000100000000000000200145bfa689a590a70838a593886aa43d2fcfc263d3156b731a198b5f60d17cb80000000000000001000000000000000000000000000000202ca61985fbc5910957e78a916da8508a3ead835fe2a43c85aafb20f5955f0ca0000000000000000100000000000000010000000000000020d2ac9a6c10a81d256c41bc67e07527d5a36e5dc54a2c6b984bb939fbc8ccd413000000000000000100000000000000010000000000000020cc3aa606fdcbf96592df9e3ecf28c535384ef37bff659d91d2f5982a3a391cb0000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000000500000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000000000000000000020010bc528b5465e9f3de0de8b8d47925b1d3655bf436b91380249b00eeb8d94400000000000000001000000000000000100000000000000202ff68e275e9f3c1b3b7f743a4782f617731151b00ff2a2b3c7ad2c740a85ee730000000000000001000000000000000000000000000000206dd7a46816110430442508860c306738f4a9a0455d87cb1fe469f761064972aa000000000000000100000000000000010000000000000020482529a81b98175b81ad742dd6e90b5edefabf8d4cb4e27a6d7438b3191f6bad000000000000000100000000000000010000000000000020af9f96d3edd125bc1e0a105b9ffdc8e3024dc69325a78b2a02611964156a8e7a000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b927200000000000000290000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e00000000000000060000000000000001000000000000000000000000000000201b81605c89f82931ba1f9c40f6a11252716f4b02a1405f25e3c8d9342ae5141d000000000000000100000000000000010000000000000020a7ab07465b54611179f5d8b3f01dda40efa5ef6a7beb7ddea184943d0014654c0000000000000001000000000000000100000000000000201fc30593ec7d427903dd1f55256e3ffc19a85f70cf2a8e7c0acb4f0a53f1effe000000000000000100000000000000000000000000000020bc2ec48a0ffda0d4d83b497975512e07ddaa2af9c054c3050454c1844d04b72f00000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002900000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000202abc88d2e3de401ab2c938e2d0e3c6ace5b030a54d9aeff0e9218e717f5d843c0000000000000001000000000000000100000000000000206eda94265d040faabf44625d55ab8b4ec7a5f1ec78d8b49e877a868ec6619d3900000000000000010000000000000001000000000000002029ddc1ae85781550b5b8262839b67495818dab865d8bb41a08d9d715a8f5ad470000000000000001000000000000000000000000000000201dbcfe2b985f1976717c36ba364b4855be4e3991bd1679509516db11cedec7830000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000029000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000000000000000000020a99d428a8f4af26c826a4ed7482597440fc869f53f585c86c7250ec11b21a8d8000000000000000100000000000000010000000000000020f27a29d328bdc6caa0ee3f0f6f7c703890f1805c474144e4bcbc87eab56c5335000000000000000100000000000000010000000000000020b21fce2155f8766d6e3d49a87773c41a486b0eb7dabcbfc0cf2963f7b34ecd33000000000000000100000000000000000000000000000020291814bb23ca041a829cd777ab17a74972cca1d409306698f066b2b12b5b7e450000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000029000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f3293800000000000000060000000000000001000000000000000000000000000000206f1230ee39fa4b475a68ca2c21a0a52a3a2d008ace0147d9367ca0b19fbf44b300000000000000010000000000000001000000000000002054f128363693244ccfcb0f852cc53499930006a76f4f8ad53422282d7ba2b1a900000000000000010000000000000001000000000000002032906f8b355f4c2d6b639a6899bcadf4e2cb7fcba76d4ccb412d5c24053801490000000000000001000000000000000000000000000000207afc3d3f377ea328d0a546da843425d8cd2f61d21026ec31c026288cb3d0698b0000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002900000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000000000000000000203e4b5489c39040df94e04b61ae4144d75b3731c552cb2872ea3522b56365e3bb0000000000000001000000000000000100000000000000203b71c8650663ac45104b87aeb469737990a8040255ea025b39bbd29956133147000000000000000100000000000000010000000000000020bbdfd0dd1887a478722c75ca8033a8a2201ecbe77561ec5505c4f7fa0b2fc07f000000000000000100000000000000000000000000000020d3e115a5a233331eea0c9d1a61f910fb1ddbd717686aaafe4459fc88d54a083e00000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f80000000000000050000000000000003900000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a00000000000000060000000000000001000000000000000000000000000000201d4e6c0712764147149ef25466d16fc7c33065b2c6565136c41c38fe01046650000000000000000100000000000000010000000000000020c9c0b321b083e72b287c1f5f27bd58c8853f81a58ea7aa78fc4880a0b3e1a20300000000000000010000000000000001000000000000002088d8b2c047feeef326c27ee57ed797854d67aa1709f8a7128818fa62e55a7001000000000000000100000000000000000000000000000020e66c07583081e267c33c835ae197bdafb24712978d6aac9d0f53e986147fea4200000000000000010000000000000000000000000000002024e7c960723bc5ff5c693ca69cc078c6710037929d28ae1a94c75c99daed9c020000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000190000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000000000000000000205de6a68433963cf0c7857d87422df14e10c32724c7cfd2bf5af7cd6a9a11536000000000000000010000000000000001000000000000002049b93df03a2d9f677c69e5781a260e352ca40353ad1badb8e1d6a023c5bcf21e0000000000000001000000000000000100000000000000209a1a091707d63ca2fc90adc03b3ff0bbe24e5d43365c4f0d46f796825fa264d0000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000002600000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020b2eed6e0a8e84ed3bbd514720df2e18dcd3a57a71ab7d4a45bc12f0759a67301000000000000000100000000000000000000000000000020700a3f92944e6a87bc423009506865591e99810e7ab4554df985ec922f18aea40000000000000001000000000000000000000000000000200fb793038444977c354fee118941457e8f5cc8bd6d0c982f4e159d367c2849e70000000000000001000000000000000100000000000000206325b9ede6b47ca05a9aef70d48140c5ba36217b5522573795eae3ae5ed72147000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000060000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000100000000000000201280f1bcea43a07ba8a787f1c57cacf0d325dbc28386d88b7ef10b15697e2beb00000000000000010000000000000000000000000000002085f465dc62741704ec2a6392ac90942a708a72037ede0e36ab09f775b3603c05000000000000000100000000000000000000000000000020c60fac2a2326940613ae844e1963c0b7722fb786b5c848e6e5cf4560b78ff515000000000000000100000000000000010000000000000020fb11825034e1e6f44af2363fb0e9dd5bb9f3a69d7ac16add55263b9f77626b880000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000002300000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a00000000000000060000000000000001000000000000000000000000000000208559f1fb8d215280bdc9e28ba319b8cc31b793b78c37e9fe1ebdff20e4bc69f100000000000000010000000000000000000000000000002012a0ef251e1c1d23cf149ec9cc670fbe5eeabf753d5a562eeff8a916060216930000000000000001000000000000000100000000000000204fd5e258ba7ff0f4bad07c49f2daf5f54e385148ca793245ffe062d67a02bbda0000000000000001000000000000000100000000000000206325b9ede6b47ca05a9aef70d48140c5ba36217b5522573795eae3ae5ed72147000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000030000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce25000000000000000500000000000000010000000000000000000000000000002094351d233e310dcc0ef8069de2cfa8b909f9e00bd6acf0b54ad1a43a7c1a5fec000000000000000100000000000000000000000000000020ec109daf6825ed91a9d90ad3b60af2ef73dd22a7eba66a8e0388fcbfe194b548000000000000000100000000000000010000000000000020d6eb504e9ef75a7779807884ffd88863c349a65c2d2bdb0014046feb1ccb2ded000000000000000100000000000000010000000000000020fb11825034e1e6f44af2363fb0e9dd5bb9f3a69d7ac16add55263b9f77626b880000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000000100000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020993f6747863d1184669b0175cc4b96dc9d1210e7cb7b97de894eee69c37a356a0000000000000001000000000000000100000000000000205e6da68da3ea9ad273f16ccdd48c3376274c734878296f6641f81e4d32b76656000000000000000100000000000000010000000000000020a7f7e46fa2884bc9ae411e1aeb83a2faf804a1d64b37e7b44cd72d7dd7a386270000000000000001000000000000000100000000000000203bab5ae19c3a6928a4468d0b856ea71595871c296f9e5ef991de19ee35356de0000000000000000100000000000000010000000000000020cab72ad06a11034c52eef8fc9375f208dcf827280d9757a6c0fa58f455a95b700000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b00000000000000010000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000000000000000000020da04e460913c32b9095fbe1a31f18a0841cf863632676c76517b769f1af8989200000000000000010000000000000001000000000000002075e379d2002547c4b271f443c8a80a0014464bb265311e488f1ed171187359eb000000000000000100000000000000010000000000000020d6eb504e9ef75a7779807884ffd88863c349a65c2d2bdb0014046feb1ccb2ded000000000000000100000000000000010000000000000020fb11825034e1e6f44af2363fb0e9dd5bb9f3a69d7ac16add55263b9f77626b880000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000001f00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a00000000000000060000000000000001000000000000000000000000000000201725838680c0bb2b54b3e60370c133a78a6621d7a69726dcdd173526c3e6b9ba0000000000000001000000000000000000000000000000205c83ece4383148347a1b938c80a649b18433f1e821241773a02351a95f6cf96c000000000000000100000000000000000000000000000020364ea361605912860ae69330ee197e81f5cf2aee5ee01238f89915c19e1b674f0000000000000001000000000000000000000000000000200178800a41369b66440e7a4d50b9cb10df27ae7b6096e93b35223a002189a50300000000000000010000000000000000000000000000002061bca55e64c007d6883994dba531cf815f2ac6477e2b8a7319ae51a4a14601ac0000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b000000000000001f0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce25000000000000000500000000000000010000000000000000000000000000002036e0725d8ea78d84622388e50be26e1800667f9718316fa6e5b5641327374dc70000000000000001000000000000000000000000000000204cd898605e569c9a3b4c9527c494b330f36420f151c4dc20e00933ca34fe5564000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000003c00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020c8349b495099bc7ff6e93c98c5758cb16d0fb610423adfee7b5ebae82d9bf08b0000000000000001000000000000000100000000000000202cd4647ce0dd828333f071d6897d8725115df161b3afee5fd00125b915a8e6cc000000000000000100000000000000000000000000000020897ff236f9146b3986820c1eab71fcb6935e6cf4a73d36131649a0459221c9d7000000000000000100000000000000000000000000000020e66c07583081e267c33c835ae197bdafb24712978d6aac9d0f53e986147fea4200000000000000010000000000000000000000000000002024e7c960723bc5ff5c693ca69cc078c6710037929d28ae1a94c75c99daed9c020000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a000000000000001c0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000100000000000000201d3adddcc76832796a7d70940da113cf90641a65120164763ef419c25e741b4e00000000000000010000000000000001000000000000002043952c83787323ed02967f6874b2568ab0c8c37159ec8878675f257f475a7c81000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000001f00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a00000000000000060000000000000001000000000000000000000000000000201725838680c0bb2b54b3e60370c133a78a6621d7a69726dcdd173526c3e6b9ba0000000000000001000000000000000000000000000000205c83ece4383148347a1b938c80a649b18433f1e821241773a02351a95f6cf96c000000000000000100000000000000000000000000000020364ea361605912860ae69330ee197e81f5cf2aee5ee01238f89915c19e1b674f0000000000000001000000000000000000000000000000200178800a41369b66440e7a4d50b9cb10df27ae7b6096e93b35223a002189a50300000000000000010000000000000000000000000000002061bca55e64c007d6883994dba531cf815f2ac6477e2b8a7319ae51a4a14601ac0000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b000000000000001f0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce25000000000000000500000000000000010000000000000000000000000000002036e0725d8ea78d84622388e50be26e1800667f9718316fa6e5b5641327374dc70000000000000001000000000000000000000000000000204cd898605e569c9a3b4c9527c494b330f36420f151c4dc20e00933ca34fe5564000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000001000000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020b660ee564c133a610165e48112fb0a175922f823f84f6282301659dc78edae0400000000000000010000000000000001000000000000002034bd988f572837b892d565ca36ec2229eebe7090d1d2a6223e05180a2397d49d000000000000000100000000000000010000000000000020126e43fc89be56f6dbf774b292faf494d961bf902703368c3f4d27760b5429a6000000000000000100000000000000010000000000000020eb4e0651e828a84fae3111cd7f737af87f306934914a308793a6b7f27908b58b00000000000000010000000000000000000000000000002061bca55e64c007d6883994dba531cf815f2ac6477e2b8a7319ae51a4a14601ac0000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b00000000000000100000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce25000000000000000500000000000000010000000000000001000000000000002093990098c78699790934bf5a0c6d3ac96c48795e4a954236f7b2b376929eba8e000000000000000100000000000000010000000000000020d5420860789793bbdf4b32db486f7422102cfca8d1c25ae72abfd1b0dbd9accb000000000000000100000000000000010000000000000020ff353585f4318a2bc8ec891d323f97568b7b25040c702374c551ef4e9a3b1b61000000000000000100000000000000010000000000000020bf60b679b8e9b0759c4d05cdd1cce271d5bfb1e58f558b4e85891de0e584c083000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000001100000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a000000000000000600000000000000010000000000000000000000000000002035d35851605b34059cfd1dfe469a96d5c39d7c6872ccd382aee93e24389b917c00000000000000010000000000000001000000000000002034bd988f572837b892d565ca36ec2229eebe7090d1d2a6223e05180a2397d49d000000000000000100000000000000010000000000000020126e43fc89be56f6dbf774b292faf494d961bf902703368c3f4d27760b5429a6000000000000000100000000000000010000000000000020eb4e0651e828a84fae3111cd7f737af87f306934914a308793a6b7f27908b58b00000000000000010000000000000000000000000000002061bca55e64c007d6883994dba531cf815f2ac6477e2b8a7319ae51a4a14601ac0000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b00000000000000110000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000000000000000000020e9ff178f86227be39b9b0d6381bf83f3c7ad683bc12c5f44db96f62adad40c1d000000000000000100000000000000010000000000000020d5420860789793bbdf4b32db486f7422102cfca8d1c25ae72abfd1b0dbd9accb000000000000000100000000000000010000000000000020ff353585f4318a2bc8ec891d323f97568b7b25040c702374c551ef4e9a3b1b61000000000000000100000000000000010000000000000020bf60b679b8e9b0759c4d05cdd1cce271d5bfb1e58f558b4e85891de0e584c083000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000001e00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020bed3d57f1a0f265d35c741f468fe5ae25b80a9d8cce0bb511ce6d02c5f45496a0000000000000001000000000000000000000000000000205c83ece4383148347a1b938c80a649b18433f1e821241773a02351a95f6cf96c000000000000000100000000000000000000000000000020364ea361605912860ae69330ee197e81f5cf2aee5ee01238f89915c19e1b674f0000000000000001000000000000000000000000000000200178800a41369b66440e7a4d50b9cb10df27ae7b6096e93b35223a002189a50300000000000000010000000000000000000000000000002061bca55e64c007d6883994dba531cf815f2ac6477e2b8a7319ae51a4a14601ac0000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b000000000000001e0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000010000000000000020bab8714776f13ede8b6c14d2f9fa1dbc18ce6f336b8b592c0ea67c23f48608820000000000000001000000000000000000000000000000204cd898605e569c9a3b4c9527c494b330f36420f151c4dc20e00933ca34fe5564000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000000900000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a00000000000000060000000000000001000000000000000000000000000000204be7f590eb9344dd875819add7cb8a42e2072589f30801dc3c1fc2a0ed3bdd7f0000000000000001000000000000000100000000000000207f1a19165bceb32d754c643a39696fac86e2414996354784c22f2e02c92f527c0000000000000001000000000000000100000000000000206b8664c253c857f4081b903f24cd144c3fecea41bad9c9bbc6dede7aec8206d200000000000000010000000000000000000000000000002032f5d2fcd66c6d1be270028a1b13801252fc376fa82b764868eec39365d7ad3d000000000000000100000000000000010000000000000020cab72ad06a11034c52eef8fc9375f208dcf827280d9757a6c0fa58f455a95b700000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b00000000000000090000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000000000000000000205c957fe18e200f67dcfdaff6ac0e79f330938d1f8ded2406740505d688bec0ad000000000000000100000000000000010000000000000020e1b6449da70162184206e3c54f8a1bc62dc59e315ed2d859457c4a36e0692d1200000000000000010000000000000001000000000000002012efdb19f3477e740c260ab39237e12947930f9d6371304227e0478ea58af45d00000000000000010000000000000000000000000000002016bfa36762c0536ae259ab6ab17bacf98951fc37dcb1f69229fd857fd86fb9110000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000001c00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020bd40693648bcf4063a2ce36449fb2340b0936108f3e17da0f35d0c1b9cfdc7ee00000000000000010000000000000001000000000000002031576616dfc8f01227203acd3c8aaf85a0fe1fadd2d720eccd06200027580a85000000000000000100000000000000000000000000000020364ea361605912860ae69330ee197e81f5cf2aee5ee01238f89915c19e1b674f0000000000000001000000000000000000000000000000200178800a41369b66440e7a4d50b9cb10df27ae7b6096e93b35223a002189a50300000000000000010000000000000000000000000000002061bca55e64c007d6883994dba531cf815f2ac6477e2b8a7319ae51a4a14601ac0000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b000000000000001c0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000100000000000000201d3adddcc76832796a7d70940da113cf90641a65120164763ef419c25e741b4e00000000000000010000000000000001000000000000002043952c83787323ed02967f6874b2568ab0c8c37159ec8878675f257f475a7c81000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000003c00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020c8349b495099bc7ff6e93c98c5758cb16d0fb610423adfee7b5ebae82d9bf08b0000000000000001000000000000000100000000000000202cd4647ce0dd828333f071d6897d8725115df161b3afee5fd00125b915a8e6cc000000000000000100000000000000000000000000000020897ff236f9146b3986820c1eab71fcb6935e6cf4a73d36131649a0459221c9d7000000000000000100000000000000000000000000000020e66c07583081e267c33c835ae197bdafb24712978d6aac9d0f53e986147fea4200000000000000010000000000000000000000000000002024e7c960723bc5ff5c693ca69cc078c6710037929d28ae1a94c75c99daed9c020000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a000000000000001c0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000100000000000000201d3adddcc76832796a7d70940da113cf90641a65120164763ef419c25e741b4e00000000000000010000000000000001000000000000002043952c83787323ed02967f6874b2568ab0c8c37159ec8878675f257f475a7c81000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000000a00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a000000000000000600000000000000010000000000000001000000000000002050df00aae0130b1180a1f07ed26c2af1dfdbcf8ffd76dfff27d68e8aa7264386000000000000000100000000000000000000000000000020796e91eaa6d396ab877ec7a84e1d8d084a69dda27b152a4575ba94f9231676720000000000000001000000000000000100000000000000206b8664c253c857f4081b903f24cd144c3fecea41bad9c9bbc6dede7aec8206d200000000000000010000000000000000000000000000002032f5d2fcd66c6d1be270028a1b13801252fc376fa82b764868eec39365d7ad3d000000000000000100000000000000010000000000000020cab72ad06a11034c52eef8fc9375f208dcf827280d9757a6c0fa58f455a95b700000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b000000000000000a0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000010000000000000020adcfc7399b7f54dffa210b62ef9f387bf9917135f9a0dd7cbeaed6332ddc96610000000000000001000000000000000000000000000000201b537d90761f18e0d990acfbad3607f40acbb8ff91ca128b4f6cf4f27d967f3500000000000000010000000000000001000000000000002012efdb19f3477e740c260ab39237e12947930f9d6371304227e0478ea58af45d00000000000000010000000000000000000000000000002016bfa36762c0536ae259ab6ab17bacf98951fc37dcb1f69229fd857fd86fb9110000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000001e00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020bed3d57f1a0f265d35c741f468fe5ae25b80a9d8cce0bb511ce6d02c5f45496a0000000000000001000000000000000000000000000000205c83ece4383148347a1b938c80a649b18433f1e821241773a02351a95f6cf96c000000000000000100000000000000000000000000000020364ea361605912860ae69330ee197e81f5cf2aee5ee01238f89915c19e1b674f0000000000000001000000000000000000000000000000200178800a41369b66440e7a4d50b9cb10df27ae7b6096e93b35223a002189a50300000000000000010000000000000000000000000000002061bca55e64c007d6883994dba531cf815f2ac6477e2b8a7319ae51a4a14601ac0000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b000000000000001e0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000010000000000000020bab8714776f13ede8b6c14d2f9fa1dbc18ce6f336b8b592c0ea67c23f48608820000000000000001000000000000000000000000000000204cd898605e569c9a3b4c9527c494b330f36420f151c4dc20e00933ca34fe5564000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000003900000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a00000000000000060000000000000001000000000000000000000000000000201d4e6c0712764147149ef25466d16fc7c33065b2c6565136c41c38fe01046650000000000000000100000000000000010000000000000020c9c0b321b083e72b287c1f5f27bd58c8853f81a58ea7aa78fc4880a0b3e1a20300000000000000010000000000000001000000000000002088d8b2c047feeef326c27ee57ed797854d67aa1709f8a7128818fa62e55a7001000000000000000100000000000000000000000000000020e66c07583081e267c33c835ae197bdafb24712978d6aac9d0f53e986147fea4200000000000000010000000000000000000000000000002024e7c960723bc5ff5c693ca69cc078c6710037929d28ae1a94c75c99daed9c020000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000190000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000000000000000000205de6a68433963cf0c7857d87422df14e10c32724c7cfd2bf5af7cd6a9a11536000000000000000010000000000000001000000000000002049b93df03a2d9f677c69e5781a260e352ca40353ad1badb8e1d6a023c5bcf21e0000000000000001000000000000000100000000000000209a1a091707d63ca2fc90adc03b3ff0bbe24e5d43365c4f0d46f796825fa264d0000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000002700000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020a32b8fa6da08fbe0b9cad3ce20107f7872df48a824f037353340421b38e7dbf4000000000000000100000000000000000000000000000020700a3f92944e6a87bc423009506865591e99810e7ab4554df985ec922f18aea40000000000000001000000000000000000000000000000200fb793038444977c354fee118941457e8f5cc8bd6d0c982f4e159d367c2849e70000000000000001000000000000000100000000000000206325b9ede6b47ca05a9aef70d48140c5ba36217b5522573795eae3ae5ed72147000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000070000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000000000000000000020100afdb629c627e0a376a74b7076687862ab1e2f5f03a2337e087be51135150c00000000000000010000000000000000000000000000002085f465dc62741704ec2a6392ac90942a708a72037ede0e36ab09f775b3603c05000000000000000100000000000000000000000000000020c60fac2a2326940613ae844e1963c0b7722fb786b5c848e6e5cf4560b78ff515000000000000000100000000000000010000000000000020fb11825034e1e6f44af2363fb0e9dd5bb9f3a69d7ac16add55263b9f77626b880000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000002100000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020a11ad082b9b214587c295afdda8c3320bc23eb59713044956d98f288c29bdbf1000000000000000100000000000000010000000000000020d793c571a44628031e4199c577e6651c7ede504551022e3ee6e9cf46b43d9b070000000000000001000000000000000100000000000000204fd5e258ba7ff0f4bad07c49f2daf5f54e385148ca793245ffe062d67a02bbda0000000000000001000000000000000100000000000000206325b9ede6b47ca05a9aef70d48140c5ba36217b5522573795eae3ae5ed72147000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000010000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000000000000000000020da04e460913c32b9095fbe1a31f18a0841cf863632676c76517b769f1af8989200000000000000010000000000000001000000000000002075e379d2002547c4b271f443c8a80a0014464bb265311e488f1ed171187359eb000000000000000100000000000000010000000000000020d6eb504e9ef75a7779807884ffd88863c349a65c2d2bdb0014046feb1ccb2ded000000000000000100000000000000010000000000000020fb11825034e1e6f44af2363fb0e9dd5bb9f3a69d7ac16add55263b9f77626b880000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000002400000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a00000000000000060000000000000001000000000000000100000000000000206c83b8e07133f63c38f013df39924d80cff3d1044f34cd1d9e3daa576d641c100000000000000001000000000000000100000000000000205714ca1ee71e5f917f25d92459ada5330a51f3117b7531c8d05e44e521816c960000000000000001000000000000000000000000000000200fb793038444977c354fee118941457e8f5cc8bd6d0c982f4e159d367c2849e70000000000000001000000000000000100000000000000206325b9ede6b47ca05a9aef70d48140c5ba36217b5522573795eae3ae5ed72147000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000040000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000010000000000000020b8800186623d507294b834b02e75760a085165c96bafd444ace1ec4f6726aacb0000000000000001000000000000000100000000000000209862d0445442827e216b27b80886d6d9907158f5890ffb1fd69a1a5a81af89fe000000000000000100000000000000000000000000000020c60fac2a2326940613ae844e1963c0b7722fb786b5c848e6e5cf4560b78ff515000000000000000100000000000000010000000000000020fb11825034e1e6f44af2363fb0e9dd5bb9f3a69d7ac16add55263b9f77626b880000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000000600000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a00000000000000060000000000000001000000000000000100000000000000207e8249ce76aad5f84cdabb9a63e8ad9aa22859f2208b75845adb814280e64b0e000000000000000100000000000000000000000000000020688e345058319870b596fba44541ab46847590cab8811e07afd920158832e9d7000000000000000100000000000000000000000000000020cb3c9625eb492289ae401c2efcfcf5d50feffee71cbcf4a0388efa7e8d2794470000000000000001000000000000000100000000000000203bab5ae19c3a6928a4468d0b856ea71595871c296f9e5ef991de19ee35356de0000000000000000100000000000000010000000000000020cab72ad06a11034c52eef8fc9375f208dcf827280d9757a6c0fa58f455a95b700000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b00000000000000060000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000100000000000000201280f1bcea43a07ba8a787f1c57cacf0d325dbc28386d88b7ef10b15697e2beb00000000000000010000000000000000000000000000002085f465dc62741704ec2a6392ac90942a708a72037ede0e36ab09f775b3603c05000000000000000100000000000000000000000000000020c60fac2a2326940613ae844e1963c0b7722fb786b5c848e6e5cf4560b78ff515000000000000000100000000000000010000000000000020fb11825034e1e6f44af2363fb0e9dd5bb9f3a69d7ac16add55263b9f77626b880000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000000f00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020a52d5a8887f55bfccb569c6671ed80b71f626fa840bb727e72e5f7f1201e5ba1000000000000000100000000000000000000000000000020c06b98b77be88b5057d5e9cc3c94fe1061f7c7a20250e17ba2b0ce8c1e9cb0270000000000000001000000000000000000000000000000208ba4b5db269e5f06cef1e69b14d5cd9ad9600d46ed13a0b48552d2cc8385b15200000000000000010000000000000000000000000000002032f5d2fcd66c6d1be270028a1b13801252fc376fa82b764868eec39365d7ad3d000000000000000100000000000000010000000000000020cab72ad06a11034c52eef8fc9375f208dcf827280d9757a6c0fa58f455a95b700000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b000000000000000f0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000000000000000000207c12d6d188e6d5d2df9286bf728211bd8607d6c266c3cb4411b8cb0639f1dad60000000000000001000000000000000000000000000000204a3936e2e522b670f552461431080ac7eb854242c1ff9742f92193781c20a5700000000000000001000000000000000000000000000000200e22d9749d60e0d540bb83ff2935afe6d6bd2f52cf199124a9320637f1e3df8300000000000000010000000000000000000000000000002016bfa36762c0536ae259ab6ab17bacf98951fc37dcb1f69229fd857fd86fb9110000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000002d00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a00000000000000060000000000000001000000000000000000000000000000200f072dbcc8a4e690a8a935b2f15ef06319eab4d457230ff7a31cf4e58084ec11000000000000000100000000000000010000000000000020e7c5e246a2b95e2edeee5f88b23ad6c80b8656b62fb64c213e3ef443860be5d400000000000000010000000000000000000000000000002089c932bfaee7d2bdaf7488749db3a6bf2763de81d20569f77b9fc12113731624000000000000000100000000000000000000000000000020a2331e4c69f49cc61b3158951e5e40e4c60ceac04b3caf1611d2a5eaf5f352fe000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a000000000000000d0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000000000000000000020eaceb0df2bd65e2b2fb0521ed1a45f240de92714c6007235da4479ce1c6e8367000000000000000100000000000000010000000000000020a1e8ee366ec4fb2e0704572f237151577cdd7c13611c3913441c718ffcf183090000000000000001000000000000000000000000000000200e22d9749d60e0d540bb83ff2935afe6d6bd2f52cf199124a9320637f1e3df8300000000000000010000000000000000000000000000002016bfa36762c0536ae259ab6ab17bacf98951fc37dcb1f69229fd857fd86fb9110000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000000300000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020ceb2525139b684fae176a32af4bac2bcc6596be509ee8bbd939db475a1cd5f3d0000000000000001000000000000000000000000000000206ac34deaf7ceb5abc2f720aae41f2875b6042f4b1cd4563463f7e992888903d4000000000000000100000000000000010000000000000020a7f7e46fa2884bc9ae411e1aeb83a2faf804a1d64b37e7b44cd72d7dd7a386270000000000000001000000000000000100000000000000203bab5ae19c3a6928a4468d0b856ea71595871c296f9e5ef991de19ee35356de0000000000000000100000000000000010000000000000020cab72ad06a11034c52eef8fc9375f208dcf827280d9757a6c0fa58f455a95b700000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b00000000000000030000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce25000000000000000500000000000000010000000000000000000000000000002094351d233e310dcc0ef8069de2cfa8b909f9e00bd6acf0b54ad1a43a7c1a5fec000000000000000100000000000000000000000000000020ec109daf6825ed91a9d90ad3b60af2ef73dd22a7eba66a8e0388fcbfe194b548000000000000000100000000000000010000000000000020d6eb504e9ef75a7779807884ffd88863c349a65c2d2bdb0014046feb1ccb2ded000000000000000100000000000000010000000000000020fb11825034e1e6f44af2363fb0e9dd5bb9f3a69d7ac16add55263b9f77626b880000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000002900000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020047c0517c3d760697c7bf2d1bf32625f639094b05944f018f5cfb19847ec2075000000000000000100000000000000010000000000000020a83483e2fc9d818b2c5091dca8c826d520c3d80dfab7bd073e2f69081526e21f000000000000000100000000000000010000000000000020a3698d2bb846956a4f0e328f7f58fe2d3de4dc78469c3520aa648af402bd431e000000000000000100000000000000000000000000000020a2331e4c69f49cc61b3158951e5e40e4c60ceac04b3caf1611d2a5eaf5f352fe000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000090000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000000000000000000205c957fe18e200f67dcfdaff6ac0e79f330938d1f8ded2406740505d688bec0ad000000000000000100000000000000010000000000000020e1b6449da70162184206e3c54f8a1bc62dc59e315ed2d859457c4a36e0692d1200000000000000010000000000000001000000000000002012efdb19f3477e740c260ab39237e12947930f9d6371304227e0478ea58af45d00000000000000010000000000000000000000000000002016bfa36762c0536ae259ab6ab17bacf98951fc37dcb1f69229fd857fd86fb9110000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000002b00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020e13f1dccb88d9ec20e9908b156f9ae0cb8e0348ad728aea906bec322e02961e80000000000000001000000000000000000000000000000209d33024f264e56892f94df99fa14e797a7839c1eae54741eb3b7f3470a35f648000000000000000100000000000000010000000000000020a3698d2bb846956a4f0e328f7f58fe2d3de4dc78469c3520aa648af402bd431e000000000000000100000000000000000000000000000020a2331e4c69f49cc61b3158951e5e40e4c60ceac04b3caf1611d2a5eaf5f352fe000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a000000000000000b0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce25000000000000000500000000000000010000000000000000000000000000002026ec57a2ddfb8e5c455799d78e5e1d5fa3c88905dbce6501061408cd9b48405f0000000000000001000000000000000000000000000000201b537d90761f18e0d990acfbad3607f40acbb8ff91ca128b4f6cf4f27d967f3500000000000000010000000000000001000000000000002012efdb19f3477e740c260ab39237e12947930f9d6371304227e0478ea58af45d00000000000000010000000000000000000000000000002016bfa36762c0536ae259ab6ab17bacf98951fc37dcb1f69229fd857fd86fb9110000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000002d00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a00000000000000060000000000000001000000000000000000000000000000200f072dbcc8a4e690a8a935b2f15ef06319eab4d457230ff7a31cf4e58084ec11000000000000000100000000000000010000000000000020e7c5e246a2b95e2edeee5f88b23ad6c80b8656b62fb64c213e3ef443860be5d400000000000000010000000000000000000000000000002089c932bfaee7d2bdaf7488749db3a6bf2763de81d20569f77b9fc12113731624000000000000000100000000000000000000000000000020a2331e4c69f49cc61b3158951e5e40e4c60ceac04b3caf1611d2a5eaf5f352fe000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a000000000000000d0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000000000000000000020eaceb0df2bd65e2b2fb0521ed1a45f240de92714c6007235da4479ce1c6e8367000000000000000100000000000000010000000000000020a1e8ee366ec4fb2e0704572f237151577cdd7c13611c3913441c718ffcf183090000000000000001000000000000000000000000000000200e22d9749d60e0d540bb83ff2935afe6d6bd2f52cf199124a9320637f1e3df8300000000000000010000000000000000000000000000002016bfa36762c0536ae259ab6ab17bacf98951fc37dcb1f69229fd857fd86fb9110000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000003d00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020b559b849ea63b933df931f5431732bd739b245bad9c12914eae279ddb28127a20000000000000001000000000000000100000000000000202cd4647ce0dd828333f071d6897d8725115df161b3afee5fd00125b915a8e6cc000000000000000100000000000000000000000000000020897ff236f9146b3986820c1eab71fcb6935e6cf4a73d36131649a0459221c9d7000000000000000100000000000000000000000000000020e66c07583081e267c33c835ae197bdafb24712978d6aac9d0f53e986147fea4200000000000000010000000000000000000000000000002024e7c960723bc5ff5c693ca69cc078c6710037929d28ae1a94c75c99daed9c020000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a000000000000001d0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000000000000000000020743d21415e8ded44dc758d10126165cc69a6c70dd61daf76d0afd6b4980d566c00000000000000010000000000000001000000000000002043952c83787323ed02967f6874b2568ab0c8c37159ec8878675f257f475a7c81000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000000400000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020340da0421914b7a05bc7a70a573bb95801337d759a5d4cf87479791f85f1e281000000000000000100000000000000010000000000000020f864bb060b739b82d8ffbf4ed8eb1cbc55e9055705b9ff946dde3ce7ed3f040c000000000000000100000000000000000000000000000020cb3c9625eb492289ae401c2efcfcf5d50feffee71cbcf4a0388efa7e8d2794470000000000000001000000000000000100000000000000203bab5ae19c3a6928a4468d0b856ea71595871c296f9e5ef991de19ee35356de0000000000000000100000000000000010000000000000020cab72ad06a11034c52eef8fc9375f208dcf827280d9757a6c0fa58f455a95b700000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b00000000000000040000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000010000000000000020b8800186623d507294b834b02e75760a085165c96bafd444ace1ec4f6726aacb0000000000000001000000000000000100000000000000209862d0445442827e216b27b80886d6d9907158f5890ffb1fd69a1a5a81af89fe000000000000000100000000000000000000000000000020c60fac2a2326940613ae844e1963c0b7722fb786b5c848e6e5cf4560b78ff515000000000000000100000000000000010000000000000020fb11825034e1e6f44af2363fb0e9dd5bb9f3a69d7ac16add55263b9f77626b880000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000001d00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020c6e9e8f5f183e6a18ae47b9c5d84289a45106548f52c0dafe560a7544dd072b000000000000000010000000000000001000000000000002031576616dfc8f01227203acd3c8aaf85a0fe1fadd2d720eccd06200027580a85000000000000000100000000000000000000000000000020364ea361605912860ae69330ee197e81f5cf2aee5ee01238f89915c19e1b674f0000000000000001000000000000000000000000000000200178800a41369b66440e7a4d50b9cb10df27ae7b6096e93b35223a002189a50300000000000000010000000000000000000000000000002061bca55e64c007d6883994dba531cf815f2ac6477e2b8a7319ae51a4a14601ac0000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b000000000000001d0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000000000000000000020743d21415e8ded44dc758d10126165cc69a6c70dd61daf76d0afd6b4980d566c00000000000000010000000000000001000000000000002043952c83787323ed02967f6874b2568ab0c8c37159ec8878675f257f475a7c81000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000002600000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020b2eed6e0a8e84ed3bbd514720df2e18dcd3a57a71ab7d4a45bc12f0759a67301000000000000000100000000000000000000000000000020700a3f92944e6a87bc423009506865591e99810e7ab4554df985ec922f18aea40000000000000001000000000000000000000000000000200fb793038444977c354fee118941457e8f5cc8bd6d0c982f4e159d367c2849e70000000000000001000000000000000100000000000000206325b9ede6b47ca05a9aef70d48140c5ba36217b5522573795eae3ae5ed72147000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000060000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000100000000000000201280f1bcea43a07ba8a787f1c57cacf0d325dbc28386d88b7ef10b15697e2beb00000000000000010000000000000000000000000000002085f465dc62741704ec2a6392ac90942a708a72037ede0e36ab09f775b3603c05000000000000000100000000000000000000000000000020c60fac2a2326940613ae844e1963c0b7722fb786b5c848e6e5cf4560b78ff515000000000000000100000000000000010000000000000020fb11825034e1e6f44af2363fb0e9dd5bb9f3a69d7ac16add55263b9f77626b880000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000001400000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a000000000000000600000000000000010000000000000001000000000000002015f13a63e6e66a0384ae3940b5c12b5b63b951ea2864fa11da141b2a045428d60000000000000001000000000000000100000000000000201cb670eb1278127a062270a9af0404d26d0e94a1d7bf7346cd1258e13e151ec200000000000000010000000000000000000000000000002075c82b16eeab40fac71fc7b5daaf20759128e3ae4a2440cc391c55dbfc4526ea000000000000000100000000000000010000000000000020eb4e0651e828a84fae3111cd7f737af87f306934914a308793a6b7f27908b58b00000000000000010000000000000000000000000000002061bca55e64c007d6883994dba531cf815f2ac6477e2b8a7319ae51a4a14601ac0000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b00000000000000140000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000010000000000000020c7993784b950ed07cfa4c762cb8f108f9fbc533be123f0aba562817367d1033a00000000000000010000000000000001000000000000002081274907689d7f4463b7ddd2ab484481450ccc3969be250f387c7c3772e8e77500000000000000010000000000000000000000000000002027c01932b99e3f386091bb61e047d2b80acbd0b3901b0a925079bd4e20713b3b000000000000000100000000000000010000000000000020bf60b679b8e9b0759c4d05cdd1cce271d5bfb1e58f558b4e85891de0e584c083000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000002800000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020d973699b0333cf6f884bd71773ea22bd4441f771d7e202b1c3d38ef3f0eabf3e000000000000000100000000000000010000000000000020a83483e2fc9d818b2c5091dca8c826d520c3d80dfab7bd073e2f69081526e21f000000000000000100000000000000010000000000000020a3698d2bb846956a4f0e328f7f58fe2d3de4dc78469c3520aa648af402bd431e000000000000000100000000000000000000000000000020a2331e4c69f49cc61b3158951e5e40e4c60ceac04b3caf1611d2a5eaf5f352fe000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000080000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000100000000000000201cbef5e48bae942923c6d18d7958197b9ce2e3235793bd9ffb86842783262211000000000000000100000000000000010000000000000020e1b6449da70162184206e3c54f8a1bc62dc59e315ed2d859457c4a36e0692d1200000000000000010000000000000001000000000000002012efdb19f3477e740c260ab39237e12947930f9d6371304227e0478ea58af45d00000000000000010000000000000000000000000000002016bfa36762c0536ae259ab6ab17bacf98951fc37dcb1f69229fd857fd86fb9110000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000001d00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020c6e9e8f5f183e6a18ae47b9c5d84289a45106548f52c0dafe560a7544dd072b000000000000000010000000000000001000000000000002031576616dfc8f01227203acd3c8aaf85a0fe1fadd2d720eccd06200027580a85000000000000000100000000000000000000000000000020364ea361605912860ae69330ee197e81f5cf2aee5ee01238f89915c19e1b674f0000000000000001000000000000000000000000000000200178800a41369b66440e7a4d50b9cb10df27ae7b6096e93b35223a002189a50300000000000000010000000000000000000000000000002061bca55e64c007d6883994dba531cf815f2ac6477e2b8a7319ae51a4a14601ac0000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b000000000000001d0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000000000000000000020743d21415e8ded44dc758d10126165cc69a6c70dd61daf76d0afd6b4980d566c00000000000000010000000000000001000000000000002043952c83787323ed02967f6874b2568ab0c8c37159ec8878675f257f475a7c81000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000000800000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020d8f57319c3c14a3763222369cc2ca1a759f1a115a09e22099ad1c3f30b968e1a0000000000000001000000000000000100000000000000207f1a19165bceb32d754c643a39696fac86e2414996354784c22f2e02c92f527c0000000000000001000000000000000100000000000000206b8664c253c857f4081b903f24cd144c3fecea41bad9c9bbc6dede7aec8206d200000000000000010000000000000000000000000000002032f5d2fcd66c6d1be270028a1b13801252fc376fa82b764868eec39365d7ad3d000000000000000100000000000000010000000000000020cab72ad06a11034c52eef8fc9375f208dcf827280d9757a6c0fa58f455a95b700000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b00000000000000080000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000100000000000000201cbef5e48bae942923c6d18d7958197b9ce2e3235793bd9ffb86842783262211000000000000000100000000000000010000000000000020e1b6449da70162184206e3c54f8a1bc62dc59e315ed2d859457c4a36e0692d1200000000000000010000000000000001000000000000002012efdb19f3477e740c260ab39237e12947930f9d6371304227e0478ea58af45d00000000000000010000000000000000000000000000002016bfa36762c0536ae259ab6ab17bacf98951fc37dcb1f69229fd857fd86fb9110000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000003d00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020b559b849ea63b933df931f5431732bd739b245bad9c12914eae279ddb28127a20000000000000001000000000000000100000000000000202cd4647ce0dd828333f071d6897d8725115df161b3afee5fd00125b915a8e6cc000000000000000100000000000000000000000000000020897ff236f9146b3986820c1eab71fcb6935e6cf4a73d36131649a0459221c9d7000000000000000100000000000000000000000000000020e66c07583081e267c33c835ae197bdafb24712978d6aac9d0f53e986147fea4200000000000000010000000000000000000000000000002024e7c960723bc5ff5c693ca69cc078c6710037929d28ae1a94c75c99daed9c020000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a000000000000001d0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000000000000000000020743d21415e8ded44dc758d10126165cc69a6c70dd61daf76d0afd6b4980d566c00000000000000010000000000000001000000000000002043952c83787323ed02967f6874b2568ab0c8c37159ec8878675f257f475a7c81000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000001e00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020bed3d57f1a0f265d35c741f468fe5ae25b80a9d8cce0bb511ce6d02c5f45496a0000000000000001000000000000000000000000000000205c83ece4383148347a1b938c80a649b18433f1e821241773a02351a95f6cf96c000000000000000100000000000000000000000000000020364ea361605912860ae69330ee197e81f5cf2aee5ee01238f89915c19e1b674f0000000000000001000000000000000000000000000000200178800a41369b66440e7a4d50b9cb10df27ae7b6096e93b35223a002189a50300000000000000010000000000000000000000000000002061bca55e64c007d6883994dba531cf815f2ac6477e2b8a7319ae51a4a14601ac0000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b000000000000001e0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000010000000000000020bab8714776f13ede8b6c14d2f9fa1dbc18ce6f336b8b592c0ea67c23f48608820000000000000001000000000000000000000000000000204cd898605e569c9a3b4c9527c494b330f36420f151c4dc20e00933ca34fe5564000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000003f00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020a0c5f8d8f37c0396f9c73fb39e50b4569da374fac8b9deb71a8eb2d7c194356a0000000000000001000000000000000000000000000000207edb8977ea6e8b5aab8ac54c422e854a363cd7d64b2db12ea3a1c18f5ecf63c0000000000000000100000000000000000000000000000020897ff236f9146b3986820c1eab71fcb6935e6cf4a73d36131649a0459221c9d7000000000000000100000000000000000000000000000020e66c07583081e267c33c835ae197bdafb24712978d6aac9d0f53e986147fea4200000000000000010000000000000000000000000000002024e7c960723bc5ff5c693ca69cc078c6710037929d28ae1a94c75c99daed9c020000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a000000000000001f0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce25000000000000000500000000000000010000000000000000000000000000002036e0725d8ea78d84622388e50be26e1800667f9718316fa6e5b5641327374dc70000000000000001000000000000000000000000000000204cd898605e569c9a3b4c9527c494b330f36420f151c4dc20e00933ca34fe5564000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000003800000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a000000000000000600000000000000010000000000000001000000000000002040aa7e5cffc72bb5c8fec8da28a63ff6f8500713c40bf5347c38161307d92a66000000000000000100000000000000010000000000000020c9c0b321b083e72b287c1f5f27bd58c8853f81a58ea7aa78fc4880a0b3e1a20300000000000000010000000000000001000000000000002088d8b2c047feeef326c27ee57ed797854d67aa1709f8a7128818fa62e55a7001000000000000000100000000000000000000000000000020e66c07583081e267c33c835ae197bdafb24712978d6aac9d0f53e986147fea4200000000000000010000000000000000000000000000002024e7c960723bc5ff5c693ca69cc078c6710037929d28ae1a94c75c99daed9c020000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000180000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000100000000000000206c7e55fc4f90a1593b82c2eeee1b68c1335e58b991f31e72c14171e9049acbc500000000000000010000000000000001000000000000002049b93df03a2d9f677c69e5781a260e352ca40353ad1badb8e1d6a023c5bcf21e0000000000000001000000000000000100000000000000209a1a091707d63ca2fc90adc03b3ff0bbe24e5d43365c4f0d46f796825fa264d0000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000000500000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020e58f1d683e6449d3061adefe19ffa668e5062e5fdad3290408c2831c340fdbeb000000000000000100000000000000010000000000000020f864bb060b739b82d8ffbf4ed8eb1cbc55e9055705b9ff946dde3ce7ed3f040c000000000000000100000000000000000000000000000020cb3c9625eb492289ae401c2efcfcf5d50feffee71cbcf4a0388efa7e8d2794470000000000000001000000000000000100000000000000203bab5ae19c3a6928a4468d0b856ea71595871c296f9e5ef991de19ee35356de0000000000000000100000000000000010000000000000020cab72ad06a11034c52eef8fc9375f208dcf827280d9757a6c0fa58f455a95b700000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b00000000000000050000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000000000000000000209f4055c1389510a1fd40b1a01c5849ccedde94acf1de1af219172f7e7bf78cd20000000000000001000000000000000100000000000000209862d0445442827e216b27b80886d6d9907158f5890ffb1fd69a1a5a81af89fe000000000000000100000000000000000000000000000020c60fac2a2326940613ae844e1963c0b7722fb786b5c848e6e5cf4560b78ff515000000000000000100000000000000010000000000000020fb11825034e1e6f44af2363fb0e9dd5bb9f3a69d7ac16add55263b9f77626b880000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000002900000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020047c0517c3d760697c7bf2d1bf32625f639094b05944f018f5cfb19847ec2075000000000000000100000000000000010000000000000020a83483e2fc9d818b2c5091dca8c826d520c3d80dfab7bd073e2f69081526e21f000000000000000100000000000000010000000000000020a3698d2bb846956a4f0e328f7f58fe2d3de4dc78469c3520aa648af402bd431e000000000000000100000000000000000000000000000020a2331e4c69f49cc61b3158951e5e40e4c60ceac04b3caf1611d2a5eaf5f352fe000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000090000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000000000000000000205c957fe18e200f67dcfdaff6ac0e79f330938d1f8ded2406740505d688bec0ad000000000000000100000000000000010000000000000020e1b6449da70162184206e3c54f8a1bc62dc59e315ed2d859457c4a36e0692d1200000000000000010000000000000001000000000000002012efdb19f3477e740c260ab39237e12947930f9d6371304227e0478ea58af45d00000000000000010000000000000000000000000000002016bfa36762c0536ae259ab6ab17bacf98951fc37dcb1f69229fd857fd86fb9110000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e0000000000000002148e58e16602596fff4ea6b392da3bc1aef7b51c771a43d9c33947a1f05de9b01b8f5cb37e1f4ef196925d25b175877efe435131cb73cc8d27d2f56ea5a39f72327c0be9 \ No newline at end of file diff --git a/contracts/modular/circuit4/commitment.sol b/contracts/modular/circuit4/commitment.sol new file mode 100644 index 0000000..fdfdde0 --- /dev/null +++ b/contracts/modular/circuit4/commitment.sol @@ -0,0 +1,593 @@ + +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) 2023 Generated by ZKLLVM-transpiler +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity >=0.8.4; + +import "../../cryptography/transcript.sol"; +import "../../interfaces/modular_commitment.sol"; +// Move away unused structures from types.sol +import "../../types.sol"; +import "../../basic_marshalling.sol"; +import "../../containers/merkle_verifier.sol"; +import "../../algebra/polynomial.sol"; +import "hardhat/console.sol"; + +contract modular_commitment_scheme_circuit4 { + uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; + uint64 constant batches_num = 5; + uint256 constant r = 2; + uint256 constant lambda = 40; + uint256 constant D0_size = 128; + uint256 constant max_degree = 7; + uint256 constant D0_omega = 7356716530956153652314774863381845254278968224778478050456563329565810467774; + uint256 constant unique_points = 5; + uint256 constant permutation_point = 2; + uint256 constant quotient_point = 0; + uint256 constant lookup_point = 4; + bytes constant points_ids = hex"01010101010101010303030303010103000000"; + uint256 constant omega = 199455130043951077247265858823823987229570523056509026484192158816218200659; + uint256 _etha; + + struct commitment_state{ + bytes leaf_data; + uint256 roots_offset; + uint256 initial_data_offset; + uint256 initial_proof_offset; + uint256 round_proof_offset; + uint256 round_data_offset; + uint256[r] alphas; + uint64[batches_num] batch_sizes; + uint64 poly_num; + uint256 points_num; + uint256 theta; + uint256 x_index; + uint256 x; + uint256 max_batch; + uint256 domain_size; + uint256[] final_polynomial; + uint256 leaf_length; + uint256[][unique_points] denominators; + uint256[unique_points] factors; + uint256[][unique_points] combined_U; + uint256[][unique_points] unique_eval_points; + uint256[2] y; + uint256 j; + uint256 offset; + } + + function calculate_2points_interpolation(uint256[] memory xi, uint256[2] memory z, uint256 modulus) + internal pure returns(uint256[2] memory U){ +// require( xi.length == 2 ); + U[0] = addmod(mulmod(z[0], xi[1], modulus),modulus - mulmod(z[1], xi[0], modulus), modulus); + U[1] = addmod(z[1], modulus - z[0], modulus); + } + +// coeffs for zs on each degree can be precomputed if necessary + function calculate_3points_interpolation(uint256[] memory xi, uint256[3] memory z, uint256 modulus) + internal pure returns(uint256[3] memory U){ +// require( xi.length == 3 ); + z[0] = mulmod(z[0], addmod(xi[1], modulus - xi[2], modulus), modulus); + z[1] = mulmod(z[1], addmod(xi[2], modulus - xi[0], modulus), modulus); + z[2] = mulmod(z[2], addmod(xi[0], modulus - xi[1], modulus), modulus); + + U[0] = mulmod(z[0], mulmod(xi[1], xi[2], modulus), modulus); + U[0] = addmod(U[0], mulmod(z[1], mulmod(xi[0], xi[2], modulus), modulus), modulus); + U[0] = addmod(U[0], mulmod(z[2], mulmod(xi[0], xi[1], modulus), modulus), modulus); + + U[1] = modulus - mulmod(z[0], addmod(xi[1], xi[2], modulus), modulus); + U[1] = addmod(U[1], modulus - mulmod(z[1], addmod(xi[0], xi[2], modulus), modulus), modulus); + U[1] = addmod(U[1], modulus - mulmod(z[2], addmod(xi[0], xi[1], modulus), modulus), modulus); + + U[2] = addmod(z[0], addmod(z[1], z[2], modulus), modulus); + } + + function prepare_eval_points(uint256[][unique_points] memory result, uint256 xi) internal view { + uint256 inversed_omega = field.inverse_static(omega, modulus); + result[0] = new uint256[](1); + result[0][0] = xi; + result[1] = new uint256[](2); + result[1][0] = xi; + result[1][1] = _etha; + result[2] = new uint256[](2); + result[2][0] = xi; + result[2][1] = mulmod(xi, omega, modulus); + result[3] = new uint256[](3); + result[3][0] = xi; + result[3][1] = mulmod(xi, omega, modulus); + result[3][2] = _etha; + result[4] = new uint256[](3); + result[4][0] = xi; + result[4][1] = mulmod(xi, omega, modulus); + result[4][2] = mulmod(xi, field.pow_small(omega, 5, modulus), modulus); + + } + + function prepare_U_V(bytes calldata blob, commitment_state memory state, uint256 xi) internal view returns(bool result){ + result = true; + uint64 ind = 0; + prepare_eval_points(state.unique_eval_points, xi); + // Prepare denominators + for( ind = 0; ind < state.unique_eval_points.length;){ + state.denominators[ind] = new uint256[](state.unique_eval_points[ind].length + 1); + if( state.unique_eval_points[ind].length == 1 ){ + state.factors[ind] = 1; + state.denominators[ind][0] = modulus - state.unique_eval_points[ind][0]; + state.denominators[ind][1] = 1; + } else + if( state.unique_eval_points[ind].length == 2 ){ + // xi1 - xi0 + state.factors[ind] = + addmod(state.unique_eval_points[ind][1], modulus - state.unique_eval_points[ind][0], modulus); + state.denominators[ind][2] = 1; + + state.denominators[ind][1] = + modulus - addmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][1], modulus); + + state.denominators[ind][0] = + mulmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][1], modulus); + state.denominators[ind][0] = mulmod(state.denominators[ind][0], state.factors[ind], modulus); + state.denominators[ind][1] = mulmod(state.denominators[ind][1], state.factors[ind], modulus); + state.denominators[ind][2] = mulmod(state.denominators[ind][2], state.factors[ind], modulus); + } else + if( state.unique_eval_points[ind].length == 3 ){ + state.factors[ind] = modulus - + mulmod( + mulmod( + addmod(state.unique_eval_points[ind][0], modulus - state.unique_eval_points[ind][1], modulus), + addmod(state.unique_eval_points[ind][1], modulus - state.unique_eval_points[ind][2], modulus), + modulus + ), + addmod(state.unique_eval_points[ind][2], modulus - state.unique_eval_points[ind][0], modulus), + modulus + ); + state.denominators[ind][3] = 1; + state.denominators[ind][2] = + modulus - addmod( + state.unique_eval_points[ind][0], + addmod(state.unique_eval_points[ind][1],state.unique_eval_points[ind][2], modulus), + modulus + ); + state.denominators[ind][1] = + addmod( + mulmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][1], modulus), + addmod( + mulmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][2], modulus), + mulmod(state.unique_eval_points[ind][1], state.unique_eval_points[ind][2], modulus), + modulus + ), + modulus + ); + state.denominators[ind][0] = + modulus - mulmod( + state.unique_eval_points[ind][0], + mulmod(state.unique_eval_points[ind][1],state.unique_eval_points[ind][2], modulus), + modulus + ); + state.denominators[ind][0] = mulmod(state.denominators[ind][0], state.factors[ind], modulus); + state.denominators[ind][1] = mulmod(state.denominators[ind][1], state.factors[ind], modulus); + state.denominators[ind][2] = mulmod(state.denominators[ind][2], state.factors[ind], modulus); + state.denominators[ind][3] = mulmod(state.denominators[ind][3], state.factors[ind], modulus); + } else { + console.log("UNPROCESSED number of evaluation points"); + return false; + } + unchecked{ind++;} + } + + // Prepare combined U + for( uint256 ind = 0; ind < unique_points;){ + uint256[] memory point = state.unique_eval_points[ind]; + state.combined_U[ind] = new uint256[](state.unique_eval_points[ind].length); + uint64 cur = 0; + uint256 offset = 0x8; + for( uint256 k = 0; k < batches_num;){ + for( uint256 i = 0; i < state.batch_sizes[k];){ + uint256 cur_point = 0; + if(cur < points_ids.length ) cur_point = uint8(points_ids[cur]); + else if(k == 2) cur_point = permutation_point; + else if(k == 3) cur_point = quotient_point; + else if(k == 4) cur_point = lookup_point; + else console.log("Wrong index"); + + polynomial.multiply_poly_on_coeff( + state.combined_U[ind], + state.theta, + modulus + ); + if( cur_point == ind ){ + if( point.length == 1 ){ + state.combined_U[ind][0] = addmod( + state.combined_U[ind][0], + basic_marshalling.get_uint256_be(blob, offset), + modulus + ); + } else + if( point.length == 2 ){ + uint256[2] memory tmp; + tmp[0] = basic_marshalling.get_uint256_be(blob, offset); + tmp[1] = basic_marshalling.get_uint256_be(blob, offset + 0x20); + tmp = calculate_2points_interpolation( + point, tmp, modulus + ); + state.combined_U[ind][0] = addmod(state.combined_U[ind][0], tmp[0], modulus); + state.combined_U[ind][1] = addmod(state.combined_U[ind][1], tmp[1], modulus); + } else + if( point.length == 3){ + uint256[3] memory tmp; + tmp[0] = basic_marshalling.get_uint256_be(blob, offset); + tmp[1] = basic_marshalling.get_uint256_be(blob, offset + 0x20); + tmp[2] = basic_marshalling.get_uint256_be(blob, offset + 0x40); + tmp = calculate_3points_interpolation( + point, tmp, modulus + ); + state.combined_U[ind][0] = addmod(state.combined_U[ind][0], tmp[0], modulus); + state.combined_U[ind][1] = addmod(state.combined_U[ind][1], tmp[1], modulus); + state.combined_U[ind][2] = addmod(state.combined_U[ind][2], tmp[2], modulus); + } else { + return false; + } + } + offset += state.unique_eval_points[cur_point].length * 0x20; + unchecked{i++;cur++;} + } + unchecked{k++;} + } + unchecked{ind++;} + } + } + + function compute_combined_Q(bytes calldata blob,commitment_state memory state) internal view returns(uint256[2] memory y){ + for(uint256 p = 0; p < unique_points; ){ + uint256[2] memory tmp; + uint256 offset = state.initial_data_offset - state.poly_num * 0x40; // Save initial data offset for future use; + uint256 cur = 0; + for(uint256 b = 0; b < batches_num;){ + for(uint256 j = 0; j < state.batch_sizes[b];){ + uint256 cur_point = 0; + if(cur < points_ids.length ) cur_point = uint8(points_ids[cur]); + else if(b == 2) cur_point = permutation_point; + else if(b == 3) cur_point = quotient_point; + else if(b == 4) cur_point = lookup_point; + else console.log("Wrong index"); + + tmp[0] = mulmod(tmp[0], state.theta, modulus); + tmp[1] = mulmod(tmp[1], state.theta, modulus); + + if(cur_point == p){ + tmp[0] = addmod(tmp[0], basic_marshalling.get_uint256_be(blob, offset), modulus); + tmp[1] = addmod(tmp[1], basic_marshalling.get_uint256_be(blob, offset + 0x20), modulus); + } + unchecked{offset += 0x40;j++; cur++;} + } + unchecked{b++;} + } + tmp[0] = mulmod(tmp[0], state.factors[p], modulus); + tmp[1] = mulmod(tmp[1], state.factors[p], modulus); + uint256 s = state.x; + tmp[0] = addmod(tmp[0], modulus - polynomial.evaluate(state.combined_U[p], s , modulus), modulus); + tmp[1] = addmod(tmp[1], modulus - polynomial.evaluate(state.combined_U[p], modulus - s, modulus), modulus); + tmp[0] = mulmod(tmp[0], field.inverse_static(polynomial.evaluate(state.denominators[p], s, modulus), modulus), modulus); + tmp[1] = mulmod(tmp[1], field.inverse_static(polynomial.evaluate(state.denominators[p], modulus - s, modulus), modulus), modulus); + y[0] = addmod(y[0], tmp[0], modulus); + y[1] = addmod(y[1], tmp[1], modulus); + unchecked{p++;} + } + } + + function initialize( + bytes32 tr_state_before + ) external returns(bytes32 tr_state_after){ + types.transcript_data memory tr_state; + tr_state.current_challenge = tr_state_before; + _etha = transcript.get_field_challenge(tr_state, modulus); + tr_state_after = tr_state.current_challenge; + } + + function copy_memory_pair_and_check(bytes calldata blob, uint256 proof_offset, bytes memory leaf, uint256[2] memory pair) + internal pure returns(bool b){ + uint256 c = pair[0]; + uint256 d = pair[1]; + assembly{ + mstore( + add(leaf, 0x20), + c + ) + mstore( + add(leaf, 0x40), + d + ) + } + if( !merkle_verifier.parse_verify_merkle_proof_bytes_be(blob, proof_offset, leaf, 0x40 )){ + return false; + } else { + return true; + } + } + + function copy_reverted_memory_pair_and_check(bytes calldata blob, uint256 proof_offset, bytes memory leaf, uint256[2] memory pair) + internal pure returns(bool b){ + uint256 c = pair[0]; + uint256 d = pair[1]; + assembly{ + mstore( + add(leaf, 0x20), + d + ) + mstore( + add(leaf, 0x40), + c + ) + } + if( !merkle_verifier.parse_verify_merkle_proof_bytes_be(blob, proof_offset, leaf, 0x40 )){ + return false; + } else { + return true; + } + } + + function copy_pairs_and_check(bytes calldata blob, uint256 offset, bytes memory leaf, uint256 size, uint256 proof_offset) + internal pure returns(bool b){ + uint256 offset2 = 0x20; + for(uint256 k = 0; k < size;){ + assembly{ + mstore( + add(leaf, offset2), + calldataload(add(blob.offset, offset)) + ) + mstore( + add(leaf, add(offset2, 0x20)), + calldataload(add(blob.offset, add(offset, 0x20))) + ) + } + unchecked{ + k++; offset2 += 0x40; offset += 0x40; + } + } + if( !merkle_verifier.parse_verify_merkle_proof_bytes_be(blob, proof_offset, leaf, offset2 - 0x20 )){ + return false; + } else { + return true; + } + } + + function copy_reverted_pairs_and_check(bytes calldata blob, uint256 offset, bytes memory leaf, uint256 size, uint256 proof_offset) + internal pure returns(bool){ + uint256 offset2 = 0x20; + for(uint256 k = 0; k < size;){ + assembly{ + mstore( + add(leaf, offset2), + calldataload(add(blob.offset, add(offset, 0x20))) + ) + mstore( + add(leaf, add(offset2, 0x20)), + calldataload(add(blob.offset, offset)) + ) + } + unchecked{ + k++; offset2 += 0x40; offset += 0x40; + } + } + if( !merkle_verifier.parse_verify_merkle_proof_bytes_be(blob, proof_offset, leaf, offset2 - 0x20 )){ + return false; + } else { + return true; + } + } + + function colinear_check(uint256 x, uint256[2] memory y, uint256 alpha, uint256 colinear_value) internal pure returns(bool){ + uint256 tmp; + tmp = addmod(y[0], y[1], modulus); + tmp = mulmod(tmp, x, modulus); + tmp = addmod( + tmp, + mulmod( + alpha, + addmod(y[0], modulus-y[1], modulus), + modulus + ), + modulus + ); + uint256 tmp1 = mulmod(colinear_value , 2, modulus); + tmp1 = mulmod(tmp1 , x, modulus); + if( tmp != tmp1 ){ + console.log("Colinear check failed"); + return false; + } + return true; + } + + function verify_eval( + bytes calldata blob, + uint256[5] memory commitments, + uint256 challenge, + bytes32 transcript_state + ) external view returns (bool){ + types.transcript_data memory tr_state; + tr_state.current_challenge = transcript_state; + commitment_state memory state; + { + uint256 offset; + + if (challenge!= transcript.get_field_challenge(tr_state, modulus)) return false; + + for(uint8 i = 0; i < batches_num;){ + transcript.update_transcript_b32(tr_state, bytes32(commitments[i])); + unchecked{i++;} + } + state.theta = transcript.get_field_challenge(tr_state, modulus); + + state.points_num = basic_marshalling.get_length(blob, 0x0); + unchecked{ + offset = 0x8 + state.points_num*0x20 + 0x8; + } + for(uint8 i = 0; i < batches_num;){ + state.batch_sizes[i] = uint64(uint8(blob[offset + 0x1])); + if( state.batch_sizes[i] > state.max_batch ) state.max_batch = state.batch_sizes[i]; + state.poly_num += state.batch_sizes[i]; + unchecked { i++; offset +=2;} + } + unchecked{ + offset += 0x8; + offset += state.poly_num; + state.roots_offset = offset + 0x8; + offset += 0x8; + } + for( uint8 i = 0; i < r;){ + transcript.update_transcript_b32(tr_state, bytes32(basic_marshalling.get_uint256_be(blob, offset + 0x8))); + state.alphas[i] = transcript.get_field_challenge(tr_state, modulus); + unchecked{i++; offset +=40; } + } + + + bytes calldata proof_of_work = blob[blob.length - 4:]; + transcript.update_transcript(tr_state, proof_of_work); + transcript.get_integral_challenge_be(tr_state, 4); + + + unchecked{ + offset += 0x8 + r; + state.initial_data_offset = offset + 0x8; + offset += 0x8 + 0x20*basic_marshalling.get_length(blob, offset); + } + + unchecked{ + state.round_data_offset = offset + 0x8; + offset += 0x8 + 0x20*basic_marshalling.get_length(blob, offset); + offset += 0x8; + } + state.initial_proof_offset = offset; + for(uint8 i = 0; i < lambda;){ + for(uint j = 0; j < batches_num;){ + if(basic_marshalling.get_uint256_be(blob, offset + 0x10) != commitments[j] ) return false; + offset = merkle_verifier.skip_merkle_proof_be(blob, offset); + unchecked{j++;} + } + unchecked{i++;} + } + offset += 0x8; + state.round_proof_offset = offset; + + for(uint256 i = 0; i < lambda;){ + for(uint256 j = 0; j < r;){ + if(basic_marshalling.get_uint256_be(blob, offset + 0x10) != basic_marshalling.get_uint256_be(blob, state.roots_offset + j * 40 + 0x8) ) return false; + offset = merkle_verifier.skip_merkle_proof_be(blob, offset); + unchecked{j++;} + } + unchecked{i++;} + } + + state.final_polynomial = new uint256[](basic_marshalling.get_length(blob, offset)); + unchecked{offset += 0x8;} + for (uint256 i = 0; i < state.final_polynomial.length;) { + state.final_polynomial[i] = basic_marshalling.get_uint256_be(blob, offset); + unchecked{ i++; offset+=0x20;} + } + } + if( state.final_polynomial.length > (( 1 << (field.log2(max_degree + 1) - r + 1) ) ) ){ + console.log("Wrong final poly degree"); + return false; + } + + if( !prepare_U_V(blob, state, challenge) ) return false; + + state.leaf_data = new bytes(state.max_batch * 0x40 + 0x40); + for(uint256 i = 0; i < lambda;){ + // Initial proofs + state.x_index = uint256(transcript.get_integral_challenge_be(tr_state, 8)) % D0_size; + state.x = field.pow_small(D0_omega, state.x_index, modulus); + state.domain_size = D0_size >> 1; + for(uint256 j = 0; j < batches_num;){ + if( state.x_index < state.domain_size ){ + if(!copy_pairs_and_check(blob, state.initial_data_offset, state.leaf_data, state.batch_sizes[j], state.initial_proof_offset)){ + console.log("Error in initial mekle proof"); + return false; + } + } else { + if(!copy_reverted_pairs_and_check(blob, state.initial_data_offset, state.leaf_data, state.batch_sizes[j], state.initial_proof_offset)){ + console.log("Error in initial mekle proof"); + return false; + } + } + state.leaf_length = state.batch_sizes[j] * 0x40; + state.initial_data_offset += state.batch_sizes[j] * 0x40; + state.initial_proof_offset = merkle_verifier.skip_merkle_proof_be(blob, state.initial_proof_offset); + unchecked{j++;} + } + { + state.y = compute_combined_Q(blob, state); + if( state.x_index < state.domain_size ){ + if( !copy_memory_pair_and_check(blob, state.round_proof_offset, state.leaf_data, state.y) ){ + console.log("Not validated!"); + return false; + } + }else{ + if( !copy_reverted_memory_pair_and_check(blob, state.round_proof_offset, state.leaf_data, state.y) ){ + console.log("Not validated!"); + return false; + } + } + } + if( !colinear_check(state.x, state.y, state.alphas[0], basic_marshalling.get_uint256_be(blob,state.round_data_offset)) ){ + console.log("Colinear check failed"); + return false; + } + + state.round_proof_offset = merkle_verifier.skip_merkle_proof_be(blob, state.round_proof_offset); + for(state.j = 1; state.j < r;){ + state.x_index %= state.domain_size; + state.x = mulmod(state.x, state.x, modulus); + state.domain_size >>= 1; + if( state.x_index < state.domain_size ){ + if(!copy_pairs_and_check(blob, state.round_data_offset, state.leaf_data, 1, state.round_proof_offset)) { + console.log("Error in round mekle proof"); + return false; + } + } else { + if(!copy_reverted_pairs_and_check(blob, state.round_data_offset, state.leaf_data, 1, state.round_proof_offset)) { + console.log("Error in round mekle proof"); + return false; + } + } + state.y[0] = basic_marshalling.get_uint256_be(blob, state.round_data_offset); + state.y[1] = basic_marshalling.get_uint256_be(blob, state.round_data_offset + 0x20); + if( !colinear_check(state.x, state.y, state.alphas[state.j], basic_marshalling.get_uint256_be(blob,state.round_data_offset + 0x40)) ){ + console.log("Round colinear check failed"); + return false; + } + unchecked{state.j++; state.round_data_offset += 0x40;} + state.round_proof_offset = merkle_verifier.skip_merkle_proof_be(blob, state.round_proof_offset); + } + + state.x = mulmod(state.x, state.x, modulus); + if(polynomial.evaluate(state.final_polynomial, state.x, modulus) != basic_marshalling.get_uint256_be(blob, state.round_data_offset)) { + console.log("Wrong final poly check"); + return false; + } + if(polynomial.evaluate(state.final_polynomial, modulus - state.x, modulus) != basic_marshalling.get_uint256_be(blob, state.round_data_offset + 0x20)){ + console.log("Wrong final poly check"); + return false; + } + state.round_data_offset += 0x40; + + unchecked{i++;} + } + console.log("EVALUATION PROOF verified"); + return true; + } +} + \ No newline at end of file diff --git a/contracts/modular/circuit4/gate_argument.sol b/contracts/modular/circuit4/gate_argument.sol new file mode 100644 index 0000000..f707a54 --- /dev/null +++ b/contracts/modular/circuit4/gate_argument.sol @@ -0,0 +1,52 @@ + +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) 2023 Generated by ZKLLVM-transpiler +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity >=0.8.4; + +import "../../types.sol"; +import "../../basic_marshalling.sol"; +import "../../interfaces/modular_gate_argument.sol"; +import "hardhat/console.sol"; + +contract modular_gate_argument_circuit4 is IGateArgument{ + uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; + + // Append commitments + function verify( + bytes calldata blob, + uint256 theta + ) external view returns (uint256 F){ + uint256 sum; + uint256 gate; + uint256 prod; + uint256 theta_acc=1; + gate = 0; + sum = 0; + prod = 28948022309329048855892746252171976963363056481941560715954676764349967630336; + prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 576), modulus); + sum = addmod(sum, prod, modulus); + prod = basic_marshalling.get_uint256_be(blob, 512); + prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 544), modulus); + sum = addmod(sum, prod, modulus); + gate = addmod(gate, mulmod(theta_acc, sum, modulus), modulus); + theta_acc = mulmod(theta_acc, theta, modulus); + gate = mulmod(gate, basic_marshalling.get_uint256_be(blob, 352), modulus); + F = addmod(F, gate, modulus); + + + } +} \ No newline at end of file diff --git a/contracts/modular/circuit4/lookup_argument.sol b/contracts/modular/circuit4/lookup_argument.sol new file mode 100644 index 0000000..f2b49bd --- /dev/null +++ b/contracts/modular/circuit4/lookup_argument.sol @@ -0,0 +1,208 @@ + +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) 2023 Generated by ZKLLVM-transpiler +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity >=0.8.4; + +import "../../cryptography/transcript.sol"; +// Move away unused structures from types.sol +import "../../types.sol"; +import "../../basic_marshalling.sol"; +import "../../cryptography/transcript.sol"; +import "../../interfaces/modular_lookup_argument.sol"; +import "hardhat/console.sol"; + +//contract modular_lookup_argument_circuit4 is ILookupArgument{ +library modular_lookup_argument_circuit4{ + uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; + uint8 constant tables = 1; + uint8 constant sorted_columns = 2; + uint8 constant lookup_options_num = 1; + uint8 constant lookup_constraints_num = 1; + + + struct lookup_state{ + uint256 theta; + uint256 beta; + uint256 gamma; + uint256 factor; + uint256 V_L_value; + uint256 V_L_shifted_value; + uint256 q_last; + uint256 q_blind; + uint256 mask; + uint256 shifted_mask; + uint256 selector_value; + uint256 shifted_selector_value; + uint256 theta_acc; + uint256 g; + uint256 h; + uint256 l_shifted; + } + + function verify( + bytes calldata zvalues, // Table values and permutations' values + bytes calldata sorted, // Sorted batch values + uint256 lookup_commitment, + uint256 l0, + bytes32 tr_state_before // It's better than transfer all random values + ) internal view returns (uint256[4] memory F, bytes32 tr_state_after){ + bytes calldata blob = zvalues[0xc0:]; + lookup_state memory state; + state.V_L_value = basic_marshalling.get_uint256_be(zvalues, 0xc0 + 608 + 0x40); + state.V_L_shifted_value = basic_marshalling.get_uint256_be(zvalues, 0xc0 + 608 + 0x60); + state.q_last = basic_marshalling.get_uint256_be(zvalues, 0x0); + state.q_blind = basic_marshalling.get_uint256_be(zvalues, 0x60); + state.mask = addmod(1, modulus - addmod(state.q_last , state.q_blind, modulus), modulus); + F[2] = state.mask; + + state.shifted_mask = addmod( + 1, + modulus - addmod(basic_marshalling.get_uint256_be(zvalues, 0x20) , basic_marshalling.get_uint256_be(zvalues, 0x80), modulus), + modulus + ); + + types.transcript_data memory tr_state; + tr_state.current_challenge = tr_state_before; + { + state.theta = transcript.get_field_challenge(tr_state, modulus); //theta + uint256 l; + state.g = 1; + state.h = 1; + + transcript.update_transcript_b32(tr_state, bytes32(lookup_commitment)); + state.beta = transcript.get_field_challenge(tr_state, modulus); //beta + state.gamma = transcript.get_field_challenge(tr_state, modulus); //gamma + state.factor = mulmod(addmod(1, state.beta, modulus), state.gamma, modulus); + + uint256 sum; + uint256 prod; + state.selector_value=basic_marshalling.get_uint256_be(blob, 288); + l = mulmod( 1,state.selector_value, modulus); + state.theta_acc=state.theta; + sum = 0; + prod = basic_marshalling.get_uint256_be(blob, 512); + sum = addmod(sum, prod, modulus); + + + l = addmod( l, mulmod( mulmod(state.theta_acc, state.selector_value, modulus), sum, modulus), modulus); + state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); + sum = 0; + prod = basic_marshalling.get_uint256_be(blob, 544); + sum = addmod(sum, prod, modulus); + + + l = addmod( l, mulmod( mulmod(state.theta_acc, state.selector_value, modulus), sum, modulus), modulus); + state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); + sum = 0; + prod = basic_marshalling.get_uint256_be(blob, 576); + sum = addmod(sum, prod, modulus); + + + l = addmod( l, mulmod( mulmod(state.theta_acc, state.selector_value, modulus), sum, modulus), modulus); + state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); +state.g = mulmod(state.g, mulmod(addmod(1, state.beta, modulus), addmod(l,state.gamma, modulus), modulus), modulus); + + state.selector_value=basic_marshalling.get_uint256_be(blob, 416); + state.shifted_selector_value=basic_marshalling.get_uint256_be(blob, 448); + l= mulmod( 1, state.selector_value, modulus); + state.l_shifted = mulmod( 1, state.shifted_selector_value, modulus); + state.theta_acc=state.theta; + l= addmod( l, mulmod(state.selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 0), modulus), modulus), modulus); + state.l_shifted = addmod( state.l_shifted, mulmod(state.shifted_selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 32), modulus), modulus), modulus); + state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); + l= addmod( l, mulmod(state.selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 96), modulus), modulus), modulus); + state.l_shifted = addmod( state.l_shifted, mulmod(state.shifted_selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 128), modulus), modulus), modulus); + state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); + l= addmod( l, mulmod(state.selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 192), modulus), modulus), modulus); + state.l_shifted = addmod( state.l_shifted, mulmod(state.shifted_selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 224), modulus), modulus), modulus); + state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); + l= mulmod( l, state.mask, modulus); + state.l_shifted = mulmod( state.l_shifted, state.shifted_mask, modulus); + state.g = mulmod(state.g, addmod( state.factor, addmod(l, mulmod(state.beta, state.l_shifted, modulus), modulus), modulus), modulus); + + + } + { + for(uint64 k = 0; k < 2;){ + state.mask = basic_marshalling.get_uint256_be(sorted, k*0x60); + state.shifted_mask = basic_marshalling.get_uint256_be(sorted, k*0x60 + 0x20); + state.h = mulmod( + state.h, + addmod( + addmod( + state.factor, + state.mask, + modulus + ), + mulmod(state.beta, state.shifted_mask , modulus), + modulus + ), + modulus + ); + unchecked{k++;} + } + } + + F[0] = mulmod( + l0, + addmod(1, modulus - state.V_L_value, modulus), + modulus + ); + F[1] = mulmod( + mulmod(state.q_last, state.V_L_value, modulus), + addmod(state.V_L_value, modulus-1, modulus), + modulus + ); + { + F[2] = mulmod( + F[2], + addmod( + mulmod(state.h, state.V_L_shifted_value, modulus), + modulus - mulmod(state.V_L_value, state.g, modulus), + modulus + ), + modulus + ); + } + { + for(uint64 i = 0; i < sorted_columns - 1;){ + state.beta = basic_marshalling.get_uint256_be(sorted, (i+1)*0x60); + state.gamma = modulus - basic_marshalling.get_uint256_be(sorted, (i)*0x60 + 0x40); + F[3] = addmod( + F[3], + mulmod( + mulmod( + transcript.get_field_challenge(tr_state, modulus), //alpha + l0, + modulus + ), + addmod( + state.beta, + state.gamma, + modulus + ), + modulus + ), + modulus + ); + unchecked{i++;} + } + } + tr_state_after = tr_state.current_challenge; + } +} + \ No newline at end of file diff --git a/contracts/modular/circuit4/modular_verifier.sol b/contracts/modular/circuit4/modular_verifier.sol new file mode 100644 index 0000000..4346a08 --- /dev/null +++ b/contracts/modular/circuit4/modular_verifier.sol @@ -0,0 +1,199 @@ + +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) Generated by zkllvm-transpiler +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity >=0.8.4; + +import "../../cryptography/transcript.sol"; +// Move away unused structures from types.sol +import "../../types.sol"; +import "../../basic_marshalling.sol"; +import "../../interfaces/modular_verifier.sol"; +import "./commitment.sol"; +import "./gate_argument.sol"; +import "./lookup_argument.sol"; +import "./permutation_argument.sol"; +import "hardhat/console.sol"; +import "../../algebra/field.sol"; + +contract modular_verifier_circuit4 is IModularVerifier{ + uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; + bool constant use_lookups = false; + bytes32 constant vk1 = bytes32(0x28b2cce92671307faa718cbf16c4bfcd3e17a5d19781f04a6b3a407d3d488dcd); + bytes32 constant vk2 = bytes32(0x716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1); + bytes32 transcript_state; + address _gate_argument_address; + address _permutation_argument_address; + address _lookup_argument_address; + address _commitment_contract_address; + uint64 constant sorted_columns = 2; + uint64 constant f_parts = 8; // Individually on parts + uint64 constant z_offset = 0xc9; + uint64 constant table_offset = z_offset + 0x80 * 4 + 0xc0; + uint64 constant table_end_offset = table_offset + 608; + uint64 constant quotient_offset = 736; + uint64 constant rows_amount = 8; + uint256 constant omega = 199455130043951077247265858823823987229570523056509026484192158816218200659; + uint256 constant special_selectors_offset = z_offset + 4 * 0x80; + + function initialize( +// address permutation_argument_address, + address lookup_argument_address, + address gate_argument_address, + address commitment_contract_address + ) public{ + console.log("Initialize"); + types.transcript_data memory tr_state; + transcript.init_transcript(tr_state, hex""); + transcript.update_transcript_b32(tr_state, vk1); + transcript.update_transcript_b32(tr_state, vk2); + +// _permutation_argument_address = permutation_argument_address; + _lookup_argument_address = lookup_argument_address; + _gate_argument_address = gate_argument_address; + _commitment_contract_address = commitment_contract_address; + + ICommitmentScheme commitment_scheme = ICommitmentScheme(commitment_contract_address); + tr_state.current_challenge = commitment_scheme.initialize(tr_state.current_challenge); + transcript_state = tr_state.current_challenge; + } + + struct verifier_state{ + uint256 xi; + uint256 Z_at_xi; + uint256 l0; + uint256[f_parts] F; + } + + function verify( + bytes calldata blob + ) public view{ + verifier_state memory state; + uint256 gas = gasleft(); + uint256 xi = basic_marshalling.get_uint256_be(blob, 0xa1); + state.Z_at_xi = addmod(field.pow_small(xi, rows_amount, modulus), modulus-1, modulus); + state.l0 = mulmod( + state.Z_at_xi, + field.inverse_static(mulmod(addmod(xi, modulus - 1, modulus), rows_amount, modulus), modulus), + modulus + ); + + //0. Check proof size + // No direct public input + + //1. Init transcript + types.transcript_data memory tr_state; + tr_state.current_challenge = transcript_state; + // TODO: Just do something with it + + { + //2. Push variable_values commitment to transcript + transcript.update_transcript_b32_by_offset_calldata(tr_state, blob, 0x9); + + //3. Permutation argument + uint256[3] memory permutation_argument = modular_permutation_argument_circuit4.verify( + blob[0xc9:905+736], + transcript.get_field_challenge(tr_state, modulus), + transcript.get_field_challenge(tr_state, modulus), + state.l0 + ); + state.F[0] = permutation_argument[0]; + state.F[1] = permutation_argument[1]; + state.F[2] = permutation_argument[2]; + } + + + { + uint256 lookup_offset = table_offset + quotient_offset + uint256(uint8(blob[z_offset + basic_marshalling.get_length(blob, z_offset - 0x8) *0x20 + 0xf])) * 0x20; + uint256[4] memory lookup_argument; + (lookup_argument, tr_state.current_challenge) = modular_lookup_argument_circuit4.verify( + blob[special_selectors_offset: table_offset + quotient_offset], + blob[lookup_offset:lookup_offset + sorted_columns * 0x20], + basic_marshalling.get_uint256_be(blob, 0x81), + state.l0, + tr_state.current_challenge + ); + state.F[3] = lookup_argument[0]; + state.F[4] = lookup_argument[1]; + state.F[5] = lookup_argument[2]; + state.F[6] = lookup_argument[3]; + } + + + //5. Push permutation batch to transcript + transcript.update_transcript_b32_by_offset_calldata(tr_state, blob, 0x31); + + { + //6. Gate argument + IGateArgument modular_gate_argument = IGateArgument(_gate_argument_address); + state.F[7] = modular_gate_argument.verify(blob[table_offset:table_end_offset], transcript.get_field_challenge(tr_state, modulus)); + } + + // No public input gate + + uint256 F_consolidated; + { + //7. Push quotient to transcript + for( uint8 i = 0; i < f_parts;){ + F_consolidated = addmod(F_consolidated, mulmod(state.F[i],transcript.get_field_challenge(tr_state, modulus), modulus), modulus); + unchecked{i++;} + } + uint256 points_num = basic_marshalling.get_length(blob, 0xa1 + 0x20); + transcript.update_transcript_b32_by_offset_calldata(tr_state, blob, 0x59); + } + + bool b = true; + //8. Commitment scheme verify_eval + { + ICommitmentScheme commitment_scheme = ICommitmentScheme(_commitment_contract_address); + uint256[5] memory commitments; + commitments[0] = uint256(vk2); + for(uint16 i = 1; i < 5;){ + commitments[i] = basic_marshalling.get_uint256_be(blob, 0x9 + (i-1)*(0x28)); + unchecked{i++;} + } + if(!commitment_scheme.verify_eval( + blob[z_offset - 0x8:], commitments, xi, tr_state.current_challenge + )) { + console.log("Error from commitment scheme!"); + b = false; + } + } + + //9. Final check + { + uint256 T_consolidated; + uint256 factor = 1; + for(uint64 i = 0; i < uint64(uint8(blob[z_offset + basic_marshalling.get_length(blob, z_offset - 0x8) *0x20 + 0xf]));){ + T_consolidated = addmod( + T_consolidated, + mulmod(basic_marshalling.get_uint256_be(blob, table_offset + quotient_offset + i *0x20), factor, modulus), + modulus + ); + factor = mulmod(factor, state.Z_at_xi + 1, modulus); + unchecked{i++;} + } + if( F_consolidated != mulmod(T_consolidated, state.Z_at_xi, modulus) ) { + console.log("Error. Table does't satisfy constraint system"); + b = false; + } + if(b) console.log("SUCCESS!"); else console.log("FAILURE!"); + } + + console.log("Gas for verification:", gas-gasleft()); + } +} + \ No newline at end of file diff --git a/contracts/modular/circuit4/params.json b/contracts/modular/circuit4/params.json new file mode 100644 index 0000000..0227c04 --- /dev/null +++ b/contracts/modular/circuit4/params.json @@ -0,0 +1,65 @@ +{ + "test_name": "circuit4", + "modulus": "28948022309329048855892746252171976963363056481941560715954676764349967630337", + "rows_amount": "8", + "usable_rows_amount": "5", + "omega": "199455130043951077247265858823823987229570523056509026484192158816218200659", + "verification_key": "28b2cce92671307faa718cbf16c4bfcd3e17a5d19781f04a6b3a407d3d488dcd 716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1", + "ar_params": [ + "3", + "0", + "3", + "3" + ], + "columns_rotations_node": [ + [ + "0" + ], + [ + "0" + ], + [ + "0" + ], + [ + "0", + "1" + ], + [ + "0", + "1" + ], + [ + "0", + "1" + ], + [ + "0" + ], + [ + "0" + ], + [ + "0", + "1" + ] + ], + "commitment_params_node": { + "type": "LPC", + "r": "2", + "m": "2", + "lambda": "40", + "max_degree": "7", + "step_list": [ + "1", + "1" + ], + "D_omegas": [ + "7356716530956153652314774863381845254278968224778478050456563329565810467774", + "17166126583027276163107155648953851600645935739886150467584901586847365754678" + ], + "grinding_params": { + "mask": "4294901760" + } + } +} diff --git a/contracts/modular/circuit4/permutation_argument.sol b/contracts/modular/circuit4/permutation_argument.sol new file mode 100644 index 0000000..fa530d9 --- /dev/null +++ b/contracts/modular/circuit4/permutation_argument.sol @@ -0,0 +1,93 @@ + +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) 2023 Generated by ZKLLVM-transpiler +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity >=0.8.4; + +import "../../cryptography/transcript.sol"; +// Move away unused structures from types.sol +import "../../types.sol"; +import "../../basic_marshalling.sol"; +import "hardhat/console.sol"; + +library modular_permutation_argument_circuit4{ + uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; + uint256 constant permutation_size = 4; + uint256 constant special_selectors_offset = 4 * 0x80; + uint256 constant table_values_offset = 4 * 0x80 + 0xc0; + bytes constant zero_indices = hex"02000220024000000040008000c000e00100"; + + function uint16_from_two_bytes(bytes1 b1, bytes1 b2) internal pure returns( uint256 result){ + unchecked{ + result = uint8(b1); + result = result << 8; + result += uint8(b2); + } + } + + // Append commitments + function verify( + bytes calldata blob, + uint256 beta, + uint256 gamma, + uint256 l0 + ) internal view returns (uint256[3] memory F){ + uint256 V_P_value = basic_marshalling.get_uint256_be(blob, table_values_offset + 608); + uint256 h = 1; + uint256 g = 1; + + for(uint8 i = 0; i < permutation_size;){ + uint256 tmp = addmod( + gamma, + basic_marshalling.get_uint256_be( + blob, table_values_offset + uint16_from_two_bytes(zero_indices[i<<1], zero_indices[(i<<1)+1]) + ), + modulus + ); + + g = mulmod(g, addmod( + mulmod(beta, basic_marshalling.get_uint256_be(blob, (i *0x40 )), modulus), + tmp, + modulus + ), modulus); + h = mulmod(h, addmod( + mulmod(beta, basic_marshalling.get_uint256_be(blob, permutation_size * 0x40 + (i *0x40 )), modulus), + tmp, + modulus + ), + modulus + ); + unchecked{i++;} + } + + F[0] = mulmod(l0, addmod(1, modulus - V_P_value, modulus), modulus); + F[1] = mulmod( + addmod(addmod(1, modulus - basic_marshalling.get_uint256_be(blob, special_selectors_offset), modulus), modulus - basic_marshalling.get_uint256_be(blob, special_selectors_offset + 0x60), modulus), + addmod( + mulmod(basic_marshalling.get_uint256_be(blob, table_values_offset + 608 + 0x20), h, modulus), + modulus - mulmod(V_P_value, g, modulus), + modulus + ), + modulus + ); + F[2] = mulmod( + mulmod(basic_marshalling.get_uint256_be(blob, permutation_size * 0x80), V_P_value, modulus), + addmod(V_P_value, modulus-1, modulus), + modulus + ); + } +} + \ No newline at end of file diff --git a/contracts/modular/circuit4/proof.bin b/contracts/modular/circuit4/proof.bin new file mode 100644 index 0000000..b21d8dc --- /dev/null +++ b/contracts/modular/circuit4/proof.bin @@ -0,0 +1 @@ +0x040000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d700000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb180000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d327b0d16751a465232f2181aec250c511d722d0fc80c4f283fae78db223f96cb0000000000000039327b0d16751a465232f2181aec250c511d722d0fc80c4f283fae78db223f96cb2f5497c3241d226f7a598e125b70d4977a432d3256a5cca609eecd9708197ef73c67417049835f9afeba78869cb93d952c67165acc56a07672e0c980ab3df1f42ca6f6cfb491ac2d63bfc65bc93426f4fc7c1707955613eb6622712c287f7ad02e0447316f90de06f9a45aa10f9e33e954e90bd5d87d3de1d9af2bcf5835b9c01f42d20e86d85ce2f2bedfcaee04c2c88798a831cec778463324a315ca7d660d261563f72dd45622e035c5254e17038e41b970391e8b4a1674e44845b90ca0bd1c4e1a48a239d06ebdba5ef6a617cdea616e1700f74b6727cd5ccd92f472fe3f327b0d16751a465232f2181aec250c511d722d0fc80c4f283fae78db223f96cb2f5497c3241d226f7a598e125b70d4977a432d3256a5cca609eecd9708197ef73c67417049835f9afeba78869cb93d952c67165acc56a07672e0c980ab3df1f42ca6f6cfb491ac2d63bfc65bc93426f4fc7c1707955613eb6622712c287f7ad02e0447316f90de06f9a45aa10f9e33e954e90bd5d87d3de1d9af2bcf5835b9c01f42d20e86d85ce2f2bedfcaee04c2c88798a831cec778463324a315ca7d660d261563f72dd45622e035c5254e17038e41b970391e8b4a1674e44845b90ca0bd1c4e1a48a239d06ebdba5ef6a617cdea616e1700f74b6727cd5ccd92f472fe3f2d0ad27e9cdc35ae7f029d045a9ee1264ad9b87df284ea8ec30721138edbc4dc2e0513a9e37a324d5bec2bdd52422f5572e50f9a603aed830cf885fd376e8580213512f755aea8bd75050bd7d649b6613b649871744b991958a487efc18cae330d6c03bdcc41fa6ea6f2d5a28898bbc461de4ed30558eb1eec4a006d236b9f1810f431fbcd688ceee17e0e0b5613b9ec7d240bfa443cb2efadcd7471dff369471efa2279781ce1bd13c856bbc25d85030f7e4f6209ce07f8a25cc8572e6e973a07f0cb6a6cd261f092161b3423070892edfcb031f027f6a71fd01578951301b31b7dfcbb00fdbd06eeeb21d935a934c62546dd9731ddaf6e14cbae0e5c3f57d2243c65637777d1ee46c13fa6d368a503c6ea125afaa809f6121faf4f7e8634ec2f9758a45b1fbfb114ad5e5fb7268addfacdb39df8de9ab175bf73a33609611e3183f420191a7214d2e19de89c15d6db0e4ebf5720f7dd7efe84c55be8d7d5f010f4eb1c5290c61346203e82423cee59a6035bfd481bad6865fea0ccb30cc0122e0513a9e37a324d5bec2bdd52422f5572e50f9a603aed830cf885fd376e858019ebb7c089582fa33629ef56d0c4d93d9d5e3993993a023fac04c0685da47c343a73f59d35fce36e759ee3b753f2f4d97d01cf186f5e7c532c780e32ceef3b1d03f6e4c91f3c427f21495ad6b7e4078ceda5eda778cb763f811521c64f1dc070294fd51015a092e0a6b142a1790ecb1bae622443b27626f464a54e0c2be735a0058929c396e1cfe2da0a8d591cc86315758e91ab116f236de9dc0f6c4db89c0e3fd0ca8f3234758577329d6c6758c49bf9aa4a2494805125375911931004ba96211b4cc4743a31c5e78efc48533c61b8e6d5d9f910897f14db1708121ee1370d17841619b3679d957e1e617bca8633c024f01b0cba812f067610ba5c164a168f13cc23004f2aabbc9b7f05ca258e0b57a543e2bfb5ac023244bc9a46a0276b7805694d041d0c9aab3281bf7e59f3f7c9c191cd0228e0f01535146768f398959710e96fc42fba5e69b0131cd7b3a149271a1582a0916ccb1b389d76a1edb94cc10bcc33705419b9740be0d97c08d00bc66a788f5f20199224b87e9f46b13fbe3a0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000110f667450a7574cb9d1d0912ac36d60a3c869f9fd149911fe0f86a52fa4e72fe398709c46a83e346445463e967b9e725825d34751a81f7b68434a5d33fc3124219c4bfb5dd35f718bce7ae1cb33193ed1c61a20b35495d6140a97fb2b6da37a73f4cfa0c06e801097a03c96c559838e6fa5ba08b5f947584bf02948e08fa80cb252639ddaa4e17c98948a6854b4c509eeffb69776d4f385aea193ab07b81964432fd713579adaca53735c319006da7078fffddeb9129920b427126eda9afff002f995c860d831b5bf34f387386996fadabc41dc7974300dcf3479f47488949210ca14eb83b12b3f887a9a6ed540eaf3b5dcbd8e1c963017b5f5d05aa90f6908f3ff7251b08995e55e7ba9e7a859c903c08e6a7757756060827ce0fbd6dbe93600f3dca02799d48538dd4c0490bdfee28697478a942198a3dc1a6e93962718f3b04bbd8d0a0cca42812037505fc1365df4ccd16105d237183bde67569696832e21ae485dd296bac5a2ee214f13faaf86380cb024dd55ded15bdfd8c729f81768f0bcdbfe7613b95abd6f7da21b0929eb3a2b7838b32e642c7a2fc1b408bc7995f37930d707fa9c5583acca7f8524ff36429d17b2ab97b893aa359a59acea510db000000000000000a00100103020203060402000000000000001d020202020202020203030303030202030101010202010101010101030300000000000000020000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a7849900000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000002010100000000000009100145de7c766ce3ef7a2a3f7f83c0179f1eab4bef2ab0e586d85964caf6d59fcd3eba218389931c1085d5c0807c3fe861039b4d0cde9c1394c0d3cc22092a6034065d586e502073ad62d33d7d92c0761b99587babd5747ba239bef7f6d22c1f0139a2a791afdf8c529d2cc2826d3f89e488ee1d5033d87d795f6e38f62dd3e1001fd2ba2790a24262ee203373ddc24e89feba6a5b2b466a2b20bad7d21adc9b05202d45d86f5dbd9d11dfcc8c223db176238c2ea0de068ef07872591ae52364fc1f1da2c5d32b4beea6a1014354cb88b1b516e1cfc5c620a0714bd540864f071720e25d3a2cd4b411595efebcab34774e6d2fb72c4386d87b27e15bac79b0f8ea0145de7c766ce3ef7a2a3f7f83c0179f1eab4bef2ab0e586d85964caf6d59fcd3eba218389931c1085d5c0807c3fe861039b4d0cde9c1394c0d3cc22092a6034065d586e502073ad62d33d7d92c0761b99587babd5747ba239bef7f6d22c1f0139a2a791afdf8c529d2cc2826d3f89e488ee1d5033d87d795f6e38f62dd3e1001fd2ba2790a24262ee203373ddc24e89feba6a5b2b466a2b20bad7d21adc9b05202d45d86f5dbd9d11dfcc8c223db176238c2ea0de068ef07872591ae52364fc1f1da2c5d32b4beea6a1014354cb88b1b516e1cfc5c620a0714bd540864f071720e25d3a2cd4b411595efebcab34774e6d2fb72c4386d87b27e15bac79b0f8ea31870947f95bdea9c3c192cb3bbf7effe29d0fb7bf7284c1d7e0d66acf118ab01040c9277dc8c6351fd039b70656118046072e337c872d37814fdf794ba768ca23395a400a684d94c6d78fbb9be15c3f755ec66343bd022f90dd2d33a0d5bb6d0acb6a404135136d1257fddd30a618cd231dcdf8bb21b7ee6788bc2a9fab0c8a20aff83835a5b4ccf729e3b4b253bd1f7d7324fa0ce86a7dfa7275830f1bf16423a3be95ea9f18d2ba1bdc9e20d742dd3d63c827f198de024754695b2fac8ef30f2d75830767eebf3d2ec7ab5e591790e76cd7fa3992cd0c5af72eed276f9b0d3aea6a4f9e6c98e1713851647dc952661f58279d7f9aa9ecb65c91af23d535b8328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff41daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f0e9b28b272c02d11c9386c8f3a096b2194e24ee296dde17998ff0afab4195ecc07b3c99b61e73f8c0eddc62acc9a1fce8d7809e368c4ace8b061ea854a2e59952b3f9c77fc3bd3c17566dd79285f24c0ec915bdd0f6a6b45c99c5e3b9018b9e624f3cc984102265dcdd7c86bc903d5b2b9219ccfd1a413f5b054954914ad8aae0d9535253cea21b1c3288e55a6ff883ef8e2c72bf8af28661332775036c2b547326acadac315de4e3cd771aa590077c12963d1d0109dd0b585fab99cc93d4abb0366d727d9aaca990ea776cb40f747b75dcdca7f4a4ed488981fa6800244c6c43da2a966592536649a711dff3bf0f4a74cc16ad1468aaed09b587ee85389e9c0267ca9f3f1945e342c34313d36bf9ef44b73028df942f4e884208fbe278e376d04e8dc5b86627028ee830fa2a491533bf63ded5c31b1fd784bc6cfe9059dfc0926ebd1db0b50273aecb094013254112043d1fdff1322837eb6f0ff3f9f605059238710505a577658d68dfa8ace1d6b145ebeac700fe356c93f241d5a50fef1be000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010a4b695336fadffb16221ad56b88e309067aabfea983e419540e87388a687bb1365e35b2285db7a3b4bb01ba336d515e8f0a2b46652a1900d40f53b300b79b111a681287f0c2239678da0a86fc0e5f21979cc1997ace336bf82a325897914ca60ddbb77e73eb884a924bed63c47cb5789ac9f481f6090483dccfb7cdc075d1c62b5f384106e22c1ae0e22d0568f5c72c8537845943df75acad4ee959c08c13012abc9d3523b121867aaaae3dece77b60da4c8c4a66f74a3a1ca15020a160346c07fd0ddc9e8b90becc6269c2d3c35e890ea7c59c46bf11da87800bf0e4299a6c389d2b34774646c1bf6a37c919794404f60d5300c02fd2ddc7c9ae96f0446cab30f72ec3d251ad975ffeb2ed3fedfbe5d7370b854a632341e531bed3f736460925fb45e63515e7116b768671088b6af7ec7db33b4a5b6a8316aeca6773fe1cb206dbb13b198cd694977a105e7a27430076094f4914d7b1611ddfeabac5ed8031272bad86d83b6db2a2a2ba9e210f957bf525e12b6f996b4e3e0cc17fa944a95c0a924fc1d4f13a68d683b2191a5a1c0692c030c5f8ec9ae2cf2d982ace99bc491c343804c8d526091accc94dea8aae47476dbd14c18793d25c10aef75ed549193409777425b01f9ded89477e0f80a19fefa115aae8210baf99b782a50300e03f207ccdf9bf29ee99bd623a4e3d76d0860d6fab12c44c844e962f1ed2d8069bf42589aa8de58cc8c40c56b71d5acd3ac1fe3d01c51aea3b697d79ca9bfca144fc056af1c011043449180435166dca3417109c14d4dbbf9c5964e742bb5bcea5ab166befb5171f47394b6710b5cbf1e0a257d568300d169b1ede64dfad66ceb1702994104ae8e0b8c6b498ef4a340e1f5dca7130cbfc365dfcbac8513f99314e91301bae89739c641e7903538cfbb9632b94e46ff438240e7ebecb2d760209772f0fe451768c639be186fcac7304469cd48d622907d128ea9cda620376fdf688d2308a68af420df4985d10a1c0ea9eefd981a264d0fccd5d26ee7050870a2f53e80f759750bdf20b67a2ef5e3f15611026a0a4342b0c7f9bf4aabce065f5d0ac1932b40b6c4a45c6f9d15328c4951aaf3f21582d20d41be66fdca9ffdc32eca3850d4bf493b5ba39062eacd73b6ae550c100ee6bdb353112abbc833110cd135c7c166befb5171f47394b6710b5cbf1e0a257d568300d169b1ede64dfad66ceb1702994104ae8e0b8c6b498ef4a340e1f5dca7130cbfc365dfcbac8513f99314e91301bae89739c641e7903538cfbb9632b94e46ff438240e7ebecb2d760209772f0fe451768c639be186fcac7304469cd48d622907d128ea9cda620376fdf688d2308a68af420df4985d10a1c0ea9eefd981a264d0fccd5d26ee7050870a2f53e80f759750bdf20b67a2ef5e3f15611026a0a4342b0c7f9bf4aabce065f5d0ac1932b40b6c4a45c6f9d15328c4951aaf3f21582d20d41be66fdca9ffdc32eca3850d4bf493b5ba39062eacd73b6ae550c100ee6bdb353112abbc833110cd135c7c1663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac53a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f216232e0e89af62d4b5e0a44b1fdae3b06376c9123be386de90ef339f6846a620c8509ae342a78dbce2f652ce83bc8df13cae92ffd4acd96c384d84b5b62829aa4c6374baf5ec512737c4b30713f1f990aee557a2b2289954c4678ebb40fec4e4b6d03c88a181de5af86bd618c7ca6d2d1c6c23247c7fb1d7c35badde3a77e53e275325f6801ed604899667b4ebb69d9690e57da2a8bdf801b1adb26780d848343d034dc26445dfc3d86f0c6ad853b8e90dc59275b991680e24ef59731a1d97c84bd0ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b22e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d57145a40e4099c34ab09aab12529be4211daaf783bee3df5d9e430c580d2149a242a2adbcd6a52d4ca8f75b25d259380a1098272a199bd1f2a1d40b13cab90e27536bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b93c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db13d9536a1756b57977f4cfff193accd1791336c49366844ba2d645ce68c53b622c26ac95e8a94a86880b3000e6c5332ea933623775e674cff656eb1e973ac4a03a998bf321f5873907bda1c579b15469252f09b41549c90c25bb492d05df9dd2038d9370f2da1f034ab6518e9781106389888a8eb86fb388fc3d26233186f1cd05a06bc828158da87456245d79afa1ca157baa314ba970c65ae2cbcce9fac79716e4a49a1b1c4b95fe7d9cc2d55b61df509e66a0525a66ff73b12c1bd7c770781b46465e3c70ecdd0e0c1e20f972013085ffaeb6c71900bacd61867f0ccbf332144935ee1906a5e834dc3540b285bc5db948c446c33a5e145c1cfc9c2b639cdc0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000128b6a949a98557ed661e6826f439e37e39883f66796807c1d29bd8c7539573c13862ce210ececfd7b817620860447ff78784eb4af321ec9e27f05f2f5451fb7f356c858080243e1e23de689290cad1f7b21140c5de4b42fba634ba11bf40976e370de234df18b90befbdd86f6241e033a5567b925e424b3431d49176644332f13c1c369f65a8036f57a9622d36d32789cbbe43fb1dd06c4a411a763ef3c7c68d006729907bbbb0701b54ec80756375bbb23ac04b26ea12d9960b88de06309b931abbcf488bb24808d0bd73de67365292544be194cda24be6eeeec39813da259229dfc5f2619a8ca7ed352c44841d419997ad2f90c972db3b924c8d26d49d6b7f1545615bddd133386439065ecf62171e476d75d6b61e77fcfdd3900175065dd027a8b8dcfb45f46c55f981d2759b2f1afdfd79ad2e4adf4367d9c634a1e5163f1776ea8efab940e51556ef6f596294c934755fe32a21f74c75b6d4478110ab0a19a7564b8f6a72600324c1fd94a05db797bd21ebf14589e62e349092cccb5e23391461b3f2e57800b721cf56f9bfdf240d6b58cf3827e1e584156d5d44179cc92db22612aae0e8713a2eac100b24eb29ef092e078b9945eb40560ab1e957689a215685f16a27bf505bca890225026fc6a8f5b0beb5cb0fa6c9a52e1047fb5f6135e6a3f2ab3f9e8b29bb7eef83eb94d7b55a800a5959abb30d09086746bc794034a6d4b4686fb6374f2d7d744e477ceb23a2374c9877b52b2063c9e7a646c83e33a582321fdd9e31ce493fe240721b5cfe37bb00d527b4e45ad82fb81b84b0350f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b9130b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d43383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d124019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b007dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea510f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b9130b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d43383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d124019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b007dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea5111fa42639b21ecaf1ed4e983217b62a6709fcf49a5422b064a6309c8e2c557662260f666d094d1a6403be2dc098fb8f586eb4ad8166745ba69d9a8268d67ce9503c88a181de5af86bd618c7ca6d2d1c6c23247c7fb1d7c35badde3a77e53e275374baf5ec512737c4b30713f1f990aee557a2b2289954c4678ebb40fec4e4b6d266251b54c6d2543d21425e07ec0aeda47502ad99e9fa2f46262cd952d3d00001d0e91854489c12ebe7a3fe60a253723a77be6156df5a2af0472425de5c64eb83db11dddd7e8aad9d0c5bf60ddc65996faec969496034479f8b4e1d72b5460f71b1353dbdcbacf05d7f8445e7cd1ac7ebae5ae3a8fe2a96f0215074076abd6801663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac53a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f216202eff5c09eb16740fed884a0786270bd6ae9367ba870daf98c4d5f53a9b3eff5056cb4030f4d5c2e8923e36a4a17988b6c366788df71a22da6be18e7fead30e22a3d338446f863ca23c98a0037b1cb92ef7481ea68ed51df93ec437c9ee6c62726535a3a6a58badd7493abe4d6d73c1c6827bbfd729d60364f9505a38649e601301085dfc548f37337410e1c479fc2a5308028246c3666793aae28f7afd7a4c60fef7a203ab70c8cc8bef1e3b8603d5af1c670d79d1692a25e7f07f550285b3c281f93e31b34c66a0ff541d2cd57a4a516a589dfc5c9fb6ba41a0552a66384b42874107e8464d0280042e2131e84929d24f10459d211d3fefd31e5aecb934f293b9b9b6f33cfb0e18d68814e958b6db9b5634adb0005aeb525e72228d614a125008c65389bff019e72a20f5676b60d140e987fe94291f05692d89335cbe536953153c2f24ce09e84fcc108675d0bc4c137c3b7a57c161035da38e899e79afdf616c7495d0db7faf2cd22059a40ec09290076b48b998d2d040e8c73b2e7a029cb000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010a77e9e2f5c9decde3c20ac365dfbd881bb3a6615ab59a4bc66ec21a656a02370a8707af17b0bdc3c79b03a9aa1c77d11043bf7da8f3ec65f4b62939256255bd0cf32af0920cb6833e2cdd4973cc95d06f74be2b9aad1564e7286aa2ed6d06800c2a3727a02fd3971b7aa1e8e8568118580029b7fef5509b22eeb3adc92b78c71c5f476cf73bbc76acda0532c29b2b591f3b519d36348a564b9a73bb4075952835dfc1b6e62bc2c247e921b0cf47cb6fda329ea076c19be4dfd56fc6df5c6c1714e1d4eefcde0402e1d6c3a5432a6e4863d03732a589d725c8e4301e17557a2309c2935864dc5a321329feb8892d4af3a6d9ec40362b97d82ade559a657c26de0b489ccfde5c0bcbe5c0c3948ae38f38dd4471c97b39a178330567d9a231eae50b06fe4b17d38a2bcbde1ea7e1397baf2176522bf83dbfe322371590bd7576911dd5fab42cd695f3411fa4640fb7c0b36935ade1c97bb339a9d35369919d43273e64e353793dd299c839c63ad1c5569e045884d953cf76fa46c20b9a0693b6dd2064891125f464f32054d0d8845492b045cfe28c63f755d1e2d34efc4010c7320661feb577d1fb7ed0fbaa8e8090379d945e0b4e567cd8e3486af825ed5e3e303934756291c8abbcd7f241acd35c9b22791f37bc792f637e4aab7ca2b0d6abd01f5301c210dbd291f1004a3d61ff27e4aa6df87d83183c6e72b38c42c4cb551e2c71d1c379ab97722272a31c67b8dd6aefc44b12907aa6dc31366fb7dec2529725867672bb5711393fc37039853258ec1f670c1e0af9944c1c8f7b473668138e1dcb6a7e37beb060963ff69ec240c9dbacbf88d2179940f941cc64926ad0c37622349581c8414f9f69c009613dbf362475871029f1b3b8225760cc5a952f3c8b14f9147716b971e2ef3fd119cb43f14a1b307a22636452a716a395021613d14c2b06eb88e9468e1d10c02ee634bc0eb607161ed9a5e8a67482899beae9ec2eb528dd6653719f396eac3f1580f853b67265abc9afe7a8a427d804b81d6e63167b172299ac8e60c69153c0ea7f07ac498dbc9acf4c21a454f3c12878cf919ce9860c52ffa1381c1f295d3b6b84d9a2903b9587257b6a6449746c9005cc27ef706433ad005ec7e3e0d6a2c4947b265d6fc48cbf73809ee8afa72c9d2b20d8108f9d1dcb6a7e37beb060963ff69ec240c9dbacbf88d2179940f941cc64926ad0c37622349581c8414f9f69c009613dbf362475871029f1b3b8225760cc5a952f3c8b14f9147716b971e2ef3fd119cb43f14a1b307a22636452a716a395021613d14c2b06eb88e9468e1d10c02ee634bc0eb607161ed9a5e8a67482899beae9ec2eb528dd6653719f396eac3f1580f853b67265abc9afe7a8a427d804b81d6e63167b172299ac8e60c69153c0ea7f07ac498dbc9acf4c21a454f3c12878cf919ce9860c52ffa1381c1f295d3b6b84d9a2903b9587257b6a6449746c9005cc27ef706433ad005ec7e3e0d6a2c4947b265d6fc48cbf73809ee8afa72c9d2b20d8108f9d1883d6e1d3620a99d127d8cf8f9f75ddfae5984b4c8b4ceb80eeda5649fd19223ba6fdac0b77d30417b290295f5091155d781ed0d0a66a28e5a091ccf9031fab11b3b2cdd522bbab58a1c1e190509f255ef725a55de7262c784576be6a96be2731e58121b4e86da8dee5935258eb584177732ffc36cb6ca749c9dad8b2f3761719da8e2638861c7ac4e5de71bdfc3b42ec37f154f40bbed4c5e50965a0156c061e34c8c6e8e486192e6d95d7e579bb63a7782fdbfb459376a1965feef865efee3e3e384bf13dfde462d8f3db4225ec5fa16abba8710b18a36e808962f7ac6f681dc393bba5987af7a09770b5534817ad1166f535085b6aba31e508f8cc4d8ed43319a2a83a6dd65b246c9f7d539b67b09c3b0afe9bcc31f641e4746e726732ac352254da5cad22b2bb31a255d43899f5be174c33d783688ffa31918b2d0e604e0aa3e0aca0ab123197ca10f0f185664dc33a2a61899b9f56735ccae3c626ebfd29d24250f6b4670e24020e24c8b498f21c523a29da50193ccb3c7dc6b4ca3bbb15c87650577b39bad636654ee00feafcc869db0b5eda86039ff8dfd84b6c28b9127381323f9fbf530967dc8447c416a96fa1e32b0b281b6702eff53454096a4120a62175face17081b04c2f90bd751072c9927d390a4168f3ef47f3a1e5dc86c1f59de8a0531e8f7e4fb3d06f428aef8f5ad712878a8e28c5a38b1b2e1a237963254dea6813b5da4ca9e67e206eeee4fc0d3611637a897ab461015a03a40fbd6361de49f64eb062c88dfecab38be6b904f621dd66dbffe0a97285d8c9d573ea20cb7cf6098d89ae50fef09a9a52427e0b57002e699f8f3f444aa83972adc05083152fefe2d5cb4a80ad8e58ce10bd791ddfd5c517bb3be0a724b1c650caba07b248346947a06877699c6c27985c22d8d9eba78c992069da8ad851e0d75cf575b3d2f2bba4dd6036b377d60076ead05fb8b55a4846f3919a0bd5897c34a6fa31f000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013bfc7e73437838e941b30bc55061f707991cd2401354c928f11e5192bf21e287035215d03f19280475a0f7ade56c805c1844414cc6c7d5d43a32a1284d95ce391d3fcb31ea3f5602987f50cc5bbb4475d99cc487083d941c3422ac153733720e2987767e938f49ceb5a136300f1e279cac702f6413ec0e1f1c2a4a13a5a071070497ee2cc3cfcc130de9ab77fe00412adbd8f866d1433d7961a006ecaf71901229c3fc6f09addff66efa2fd9a1d9e12d03e791a1b55ffd381da08b433e64641d190f7ad9252eb310a3a596fde4803fbb4eaa3bb4e76dde92364395274005f9382ab9a4351600987b3e651dabc9b2f143ba201dcb6344d44e429e7765930d512929cba85ffaa56e69dcf6d1d70d50bf49eee553df7a8c8aa43c72c9862a16a2b23ea623d76a45e4baed8cbf35c1e550e1468e42f45b8566c7a4f019682e1e641a182d041c749fa4cdd9110de7845d7072a18733798f8c49a085be99b7c34fa0362009a1baeb97477f6d4e64928dc03d8cbcde0901aebc1f669d29814f37a339632b2d0d3fdf2db142d977d3c9146a8728db1fca83c67b75f017c4426f32265c113b997a86be98af2f17d8a79df07a43252154bc52fd45b1e0aca7359ffb48a9523e090563f5590aeadeb9e728d72c4df9640af804d59902e74f293a946de26caa260ccb5add26884100a711aa70f34b3d58c265a7dba74c6346dbcebdba5ca1323e267348d1f97e5582faff576cc0b6d3742b0f3556ed1dd67b36e9f86b7040571263cd3c2a53bd6ce3dae3a79032d8d65daee09f378858f5256b36f3e042368c2536d7ae9327c01d3159ed3ae3849187e4fded6c3b9bbd494a7b15ae78e51dfe1ac928516cd83fe2cea612c51c7b6e783d48ab8fcdb13bd24eb21b3e871ae2033a123668dfc6c091f6c1a2267196d7a7346871251770c037420d0a8e5c7995f405edc99720393f6e093e5dd98e692858edde27d6f1dc38e45720265ea3866a0d225b100c5ee1c2d9d1c82ac037f236437cefd1c94fffdca5e58c7113ce5fedc01da4eff3a11e3d262e37d53fc80dc9bca556c732b94d1c75b3a0bfd931a012412bc7503dda68ce4118e8d5c117bb0f512c21e6f67d655d064963d38907dfa4be1438afc2259731bee7172a3ee844f0aef624b2058be79c154fc95d63f8205b432536d7ae9327c01d3159ed3ae3849187e4fded6c3b9bbd494a7b15ae78e51dfe1ac928516cd83fe2cea612c51c7b6e783d48ab8fcdb13bd24eb21b3e871ae2033a123668dfc6c091f6c1a2267196d7a7346871251770c037420d0a8e5c7995f405edc99720393f6e093e5dd98e692858edde27d6f1dc38e45720265ea3866a0d225b100c5ee1c2d9d1c82ac037f236437cefd1c94fffdca5e58c7113ce5fedc01da4eff3a11e3d262e37d53fc80dc9bca556c732b94d1c75b3a0bfd931a012412bc7503dda68ce4118e8d5c117bb0f512c21e6f67d655d064963d38907dfa4be1438afc2259731bee7172a3ee844f0aef624b2058be79c154fc95d63f8205b431d8394ba2e4adcaeaef721748559b459a82e03b51fc3c9ede424d047bd7ed5f20c42ba95e57d85e81e62e43ece358248321ec92aa5f4b75b78640b9689961a6a29d7a4ab01bed336de2374a17e4b97338f6f18bb99d246b53105b90d6014862f048f2c43ec98418df9e7f3e6fcd964d4bcd802356279b7fff0f5824d2622a81622fd51b03acc233e68925827f0ef75cc95274a555a5a6f94cde32383b3c2300e1945226cd708e68d1e2209d7f1c11660f0b044e6400af76672c727c8f2c63f4c284898ae85facafdfae320ee674e0a7af23650af192b3280d49b71d5f31b72de198183a5524851440ba9092293be000c102bcf54e9e649aa7462137a51fb0ed1235b5f0d6a17565734c6c297adb20db96542cc678885f50ad8c48986405d7d6b047780b393c9324d25d3cf2c8399bf9cb8b67dbfc80f7d2ddb11c11af25663f733b78cf9b412db73acc90b9342beb7b17ffc913fc85ea41e2158f0352faeae6f1a2416346f6b199301dfede424ccd873dbda7c06df07bd43968350a9f0a292a838a4c69acff6501a72e569e9fc5ab4730cf015875903e1941d2fd884e26ca3e22f2e19262dea3889e7b527da34f118e3334fcd9c00de89c02fd3a30950473d82342d45e73c2d1dcd4d119abd78c0f4d6543997c790f46466421e1769f0163feb0bd2ba18c3d2e232b2ee6542873f0b29ce0d0134785894b5570f19830fe9c0170e90e8f12de563c256702278f092e4e0796a16a39b211ce96b6f5c3e75091c4a04fcb0e85ac75a0a9b808ddf9524397b69ddea2fa46b65744f635d41fffaf2f63753f8130bb7935f079ed33a7350673bedb3a28e7f0b158660978aa568fe02212fb033017608a7eeb724388fefafffe31880726230674b9504b00319baa73ae4008dcc09ae5e6788bb64034ae180d718e24b52e4742c453c426f7d255fae77793545d96a45aa6ea5b92264f0af8d52cf8cb9b0dfd1fa9c6267318b3d4644f513000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013769680ab63ecaaa42f8ab36cd66071708a2092eac40d4bcd1a97750935c16ea1c428f5987e7d988549776d3adea067071117d4bb5bfe93e7a61b8d04cc5f820284b5da7a60543715d6653c3980ddba964857a83c5cafbcad90ca93b001b3cb71192ccd429ffdbc33aa873528306cce2255869f1d9ba59460593e3621570b2d3239f6ce8c9f23e62596ec8f37e6e31ed8c76e70904e8f35f797c8a954a24535739ba21805083a82be21081957508895078ac3ff3736569df5b0bd1e72752aa5337db9bcb4ac132597251f3b093662863fd5d4dbae9d1fc1bfbb91ae0a4df128715e4191838c6793ce0eedab46ff7b40164355b4a01ab049aac1eefe1908de0cd31a797bcba476347af908a47d925f2a663551021bf9e945010ac36526111fa440d4a88041f79eab2e03f25862a7f0810ed5b6621615e0714cc984d7a339791c928863c8f9ef45b6b0eb9134ea8f240d7bc51318de808699b926f674f8747edc83e2fa18cd7d7619f88f63a82436b21b35ee4e23402b613ea1f28e45c442a92c11e09572d16c06d9feae7d91a9ed14422424ae2e69455324ec3fe0a0ee088ec1308bd30998705f2d20668a24c6613862b97e30af4261efc6667403d134ce6194f3f81097312b287125a4e93f391ba19eefa0c9e08927568eca7576db1b86ccf2f271d30f55850fbae657e196e6e3a1cf67a77b046d03ff6135fe2efeb931f0c0832e5503b02f958392f4330a9e8e4f2e1b570c14a26affe22782838b527a815621c8b64a2287ca5fa58fbeeca7385f50968b8f99cf0e65780efc575385c628e211cc48e2a4e4646b4c815ae94927e28a90e83a57b3634b73e1e3e8f9ece560ed8233b71d5b1b9b94b37ea516b6d81d75713c2f380d31841dd7aeea14e31a9f1290fd6c6d3875f6187e86c68e6dc76cb4d0405096ffc6da1ff64de6c4007ae4a363029392c78a09e7817939719238934b31e418f8c0cdf571c344ec4acf851b5cb0f31e221a4dce7a78a1e0c824e51f880f1d29633e4d730e15f2aec532667730d30ce1dde5b23185875e1f37db1ae077f307402c82475c83a3a024499d9988cf40bf96aa838508645b2963e8b8799da8496d656076ee6fb4b42a96cb2c0053f4034069557c7af79ba4d69c1747866257b8b7042f49a65fdd05683c43a3ffac0c11cc48e2a4e4646b4c815ae94927e28a90e83a57b3634b73e1e3e8f9ece560ed8233b71d5b1b9b94b37ea516b6d81d75713c2f380d31841dd7aeea14e31a9f1290fd6c6d3875f6187e86c68e6dc76cb4d0405096ffc6da1ff64de6c4007ae4a363029392c78a09e7817939719238934b31e418f8c0cdf571c344ec4acf851b5cb0f31e221a4dce7a78a1e0c824e51f880f1d29633e4d730e15f2aec532667730d30ce1dde5b23185875e1f37db1ae077f307402c82475c83a3a024499d9988cf40bf96aa838508645b2963e8b8799da8496d656076ee6fb4b42a96cb2c0053f4034069557c7af79ba4d69c1747866257b8b7042f49a65fdd05683c43a3ffac0c11ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a1d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f311920aff83835a5b4ccf729e3b4b253bd1f7d7324fa0ce86a7dfa7275830f1bf16423a3be95ea9f18d2ba1bdc9e20d742dd3d63c827f198de024754695b2fac8ef32deb307a3d1a7844d20e88da87b5ae0239b5c2e49342701737b9c664a4fd6d6924100b05774826b954c1e98cabc2dcf1725adab78078c802023ab2171a81caa3163a206aa9162cf827adc731a5cdb7db8fbc61aa5764c85a123a61e921fdf31e1fadffc2b1154b6729eb1fbe7e0fde2dae0bd0b60207b2e40ecc3f5492bd3c201040c9277dc8c6351fd039b70656118046072e337c872d37814fdf794ba768ca31870947f95bdea9c3c192cb3bbf7effe29d0fb7bf7284c1d7e0d66acf118ab03cb23cbf15913dc054ca1de6bfdee2e625b5cc8cb24762ca766016a63e8e293110f547f27e8c939e20c0942da06ea810edca7ce96c3f85ea1afab3e442288e8602ab940240dea4835ca7ab615f5689414d24670783d804d16e1d682914e4b3843f1c3e6d3646005b86ea2120e2bf073edb7fd6e3b821ad27eb134dbb05d43ff711248aba4782c5d998e6189623970a418ccdf04bcdb2792b2f69c2ab45d328d52edb7545b87d3a266719e769dc68f5be9578a8b03b9a7ff069c36e41ba2cd72d2d10b39c2f1645cc01a99235367599e57f0e201e4ec69b56a8323d637852922c2866ec9cb15c9ae9333529f9f2541a47498e1fffa5c813daa3bb58b6876177b139c8b393e6a72d1901d4fcf923510b95a9f97d2909021e1d9d877d4eaebd801a08540edcc5608cced4eda1c8a87ce8c0786a68fd495a1f56ea9c69b451170c4d082d55f68a8bde205940f75059172d7b5c9584d34f5312c32978d6dfccea1d5e2ff9ab10e3d96d21b6d790e7862d8c07c02900f4e937d8691774b9a0b7ec68110000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000120fe12e94514ed9e6fb6097760209aee0fbc1e83f28b3008e31fc52950e3cd2d1e1e1668904858edc87a80c74f9dd1c9a18c94d5d492be5d79b946d43d67bb913ce4e145b5edeec99900715e8c6976a22fad316aae05fd5cc1f266138929342c17ffd22873b7821ed9ebd186a4d9bbc1896944fcef88c17bca2c0c9740a44ec21425180a54e8949694e33d2d54626d381fb430071238b3a83fa316af909421411e24b5b3ca000b6e91cf547af3cafb184343d142592df6328136fa33746e89a62c83bfd921f2b43677014e0e65650937e5e37750bc4e8d26e5465edd088ca179006e8b928111830a2a02ef3b2c094e4d78f63c0e421d83f528e79182367d3e16212f6e9495779d23a305d85e881d3635344bee20145bafc65a7efdd6121dbfc30e627c37611255143236096f368cdca2ffcc1c6d99642d26e0de61557915088b08b1355cd0baf2ec17e1ee3918b13bff77235bed8e8cc151bde4d10791a9939f35ffba8a41e783211bc1b8c03ce2d25a0ed87d183e094c2c46b741975956c7b035af22aa767f1b0442e18ab60d1f7a45b3fb409d6bd025eb3f1cd044d8f2b7263117651c2747456dae6ef0b0f7c550084879463957f101e5854ea7ca547c4e3d093b577582a2a168be37808ee5a4741c6329ca001e8f74423bf352b4e25d354c18544816517035f454c11b7495e464d7360949f9db45595ad90e08658bc051d6253bc2a63f90715c5616ed44564ead7a83705ed50c3b039d237ad6004558b7d5187806379a1cadf07431ecc12b1b8afbfbda66a072e09c36ef326a2c878d57251b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac24fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a60215507121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a7235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec21ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f30c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c80f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f046391b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac24fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a60215507121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a7235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec21ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f30c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c80f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f04639017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e17f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a663731319406bfd32611570a209b85b38e49dd7727b21099400a3c3bf232a29135eb21ffaa18c3bc1139049500403dfb0a68045256159afd6c550275472c9aa6b8c62350c1986d63d0d76252cd4dcc0096252448ef72e67695958363393bbcb800d6809d0f28df34f89daacb5b062f76ba5e1e124926c9ceb5a5f7656919f3a5e969e3e1997b507db4b065917a029279c8555c9999921841a1143b015554215aee3521d14c0bd1af0dd795dc65f20deb61a24d29b51f0237079f79c9c23abdc96c858299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f1002216e46a214a91f5a2912ec35c5d5d4b79d789ffa45cc5f6dc24235ed2181770fc34e4bffb46072d0886c1b4271f2e319c53d84677f770f003368061821a4847f82b6879fe81419e32cfcc2b0480ff303bbca2014ac309b579f4be78fa1264a22208134748d8710762979b1062406fde0c96064ace3630870592558b307fee102d2182408ef8ba9b1382df281ec38ac2874e7b4cace7a5cba04d24afe99b73a2001e7dbf71074564ec7d20d7e13c753d78d3cb4c4f21a72d7b4c088103648c5e023164c1bf1ae2029777c3dff21ba619fc2d7be784efdf6974468338c28562f49a1ddb5f9dd3728cc1a88ec687c309f77977b9eadfb71caad3f97d8a2b06242527139156c72428edfcdf747c06e9ecb574ec529da3e5e8af3e18d31d2e6cf2792520b9838c8bf1f913cb129c5f382e42b09a3bb74a02db998692e998d8cda653cb1148533ee7c56e033c9b467730eea5565ea5e36f213886c3bf0536c63236cb2e298132be8b07ab8b4f9508f89714bae10d2ce2ad0930ba29727d0be1dd05d42e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011b7c0cebe7f0abdc2e6fbbb7af15d33a9bcbfcc5d77da633614554754419a764171aee187091111a19d3984a064c173b821aecd6bf4cfc25b5a6ad6b41c8bdf73c5b813daf9b2d6a68219fe6b8f4a25c419780cd3e92388f389cf9b0250a51380e89457941a583d24abe81016def215c20b8e9fd750f8d331f360635bb775f1d2400d6c301d9a66e1dbaf8a4c3f4916b46aa3bfe71ea2fe48302024a33f8312802d546f3288eca99667e6710c83d44975601a0e8cbe56139529e462bd7222ca4179c6b9f539642b3200b6c67fe444a27e92602af3f57ce0a996fdfdc25082a671a07874f99f0681aabca4c6a91cbc0da23c6f183d00cbdb935087f8999ac55bd1c2329da30cd1dd33cabeb05c1c01fccd42d31999903e89a5929e676ce7dc2551c9cc0f3bf68e8e48d2eb4fb1a073d79dd4f4eebf41d74fa20b1e5134be7d28d1dfde1e30d8f60d0a207a02c2f41206b915f6beab5381a756793e126ce0b9458313fd2989b4642eba0eabb340c627fd19d7db66e0e7b9ef96e796af0e327c3d13f74d921816327c00708d46651c6c00fbe459744edc8e76f8c6575aba318850a2751aea51c6338b1ea47a700b31e0a3e3e2eef91d5f84061380602638a5680593f7d2f7d19b1890b6acd25a4ace10f5312fdeae4e58bac51ae50a46cc2adb0620ec4ae8b86660c946e198070c1bcffd6561e63faaf89f76f4ee4b962a9c8a8ab008e61e29236aae85dc42fa17035d21e98d0442801c21f441c0910e71a88a08620d3462c6dd6151616518c66abec97fa058c23f3c8c0bcfff6a1c3ef618e3b2d30b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b913383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d0c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d4019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d12407dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea51382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b030b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b913383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d0c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d4019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d12407dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea51382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b02260f666d094d1a6403be2dc098fb8f586eb4ad8166745ba69d9a8268d67ce9511fa42639b21ecaf1ed4e983217b62a6709fcf49a5422b064a6309c8e2c55766374baf5ec512737c4b30713f1f990aee557a2b2289954c4678ebb40fec4e4b6d03c88a181de5af86bd618c7ca6d2d1c6c23247c7fb1d7c35badde3a77e53e2751d0e91854489c12ebe7a3fe60a253723a77be6156df5a2af0472425de5c64eb8266251b54c6d2543d21425e07ec0aeda47502ad99e9fa2f46262cd952d3d00001b1353dbdcbacf05d7f8445e7cd1ac7ebae5ae3a8fe2a96f0215074076abd6803db11dddd7e8aad9d0c5bf60ddc65996faec969496034479f8b4e1d72b5460f73a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f21621663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac5056cb4030f4d5c2e8923e36a4a17988b6c366788df71a22da6be18e7fead30e202eff5c09eb16740fed884a0786270bd6ae9367ba870daf98c4d5f53a9b3eff526535a3a6a58badd7493abe4d6d73c1c6827bbfd729d60364f9505a38649e6012a3d338446f863ca23c98a0037b1cb92ef7481ea68ed51df93ec437c9ee6c6270fef7a203ab70c8cc8bef1e3b8603d5af1c670d79d1692a25e7f07f550285b3c301085dfc548f37337410e1c479fc2a5308028246c3666793aae28f7afd7a4c62874107e8464d0280042e2131e84929d24f10459d211d3fefd31e5aecb934f29281f93e31b34c66a0ff541d2cd57a4a516a589dfc5c9fb6ba41a0552a66384b4008c65389bff019e72a20f5676b60d140e987fe94291f05692d89335cbe536953b9b9b6f33cfb0e18d68814e958b6db9b5634adb0005aeb525e72228d614a12516c7495d0db7faf2cd22059a40ec09290076b48b998d2d040e8c73b2e7a029cb3153c2f24ce09e84fcc108675d0bc4c137c3b7a57c161035da38e899e79afdf6000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010a8707af17b0bdc3c79b03a9aa1c77d11043bf7da8f3ec65f4b62939256255bd0a77e9e2f5c9decde3c20ac365dfbd881bb3a6615ab59a4bc66ec21a656a02370c2a3727a02fd3971b7aa1e8e8568118580029b7fef5509b22eeb3adc92b78c70cf32af0920cb6833e2cdd4973cc95d06f74be2b9aad1564e7286aa2ed6d068035dfc1b6e62bc2c247e921b0cf47cb6fda329ea076c19be4dfd56fc6df5c6c171c5f476cf73bbc76acda0532c29b2b591f3b519d36348a564b9a73bb4075952809c2935864dc5a321329feb8892d4af3a6d9ec40362b97d82ade559a657c26de14e1d4eefcde0402e1d6c3a5432a6e4863d03732a589d725c8e4301e17557a230b06fe4b17d38a2bcbde1ea7e1397baf2176522bf83dbfe322371590bd7576910b489ccfde5c0bcbe5c0c3948ae38f38dd4471c97b39a178330567d9a231eae53e64e353793dd299c839c63ad1c5569e045884d953cf76fa46c20b9a0693b6dd1dd5fab42cd695f3411fa4640fb7c0b36935ade1c97bb339a9d35369919d43270661feb577d1fb7ed0fbaa8e8090379d945e0b4e567cd8e3486af825ed5e3e302064891125f464f32054d0d8845492b045cfe28c63f755d1e2d34efc4010c7321f5301c210dbd291f1004a3d61ff27e4aa6df87d83183c6e72b38c42c4cb551e3934756291c8abbcd7f241acd35c9b22791f37bc792f637e4aab7ca2b0d6abd025867672bb5711393fc37039853258ec1f670c1e0af9944c1c8f7b473668138e2c71d1c379ab97722272a31c67b8dd6aefc44b12907aa6dc31366fb7dec252973f7851abb156cb6739a501506af6998436c3b9c6f29924ce57eaaef8e9e8b1b10087ae544ea93498c65afeaf9509667beb82df3516b3d44d414281f416174e503d59985a76b1f9042039069216d0ff9488b83cf297c9d39952e0a728918b787102a667a5894e06fbdfc6f96de92f006b998e5c0971832582464c89c46e74879032bff9c45179dd14a11d20da7214fde6227eccccd1bd3d9039ae8016d7b95a310d40063bae8622eb5ee2df258deb0219ffc7cc2f378fbb8b5f7eb0d62846a5d03dbfe0d5976151672591a4443a68f57e45a6350bfccb487e54e0edab369ec2f202401f2a689eae98da6e5bbbc5970a81dca063f00c81b09d444c4341c9613d0f3f7851abb156cb6739a501506af6998436c3b9c6f29924ce57eaaef8e9e8b1b10087ae544ea93498c65afeaf9509667beb82df3516b3d44d414281f416174e503d59985a76b1f9042039069216d0ff9488b83cf297c9d39952e0a728918b787102a667a5894e06fbdfc6f96de92f006b998e5c0971832582464c89c46e74879032bff9c45179dd14a11d20da7214fde6227eccccd1bd3d9039ae8016d7b95a310d40063bae8622eb5ee2df258deb0219ffc7cc2f378fbb8b5f7eb0d62846a5d03dbfe0d5976151672591a4443a68f57e45a6350bfccb487e54e0edab369ec2f202401f2a689eae98da6e5bbbc5970a81dca063f00c81b09d444c4341c9613d0f22fcff711ca6bb32171257895548f0d889e96121e743e2acc701e0bb637c5d8c1709b395ecdd7145b01f3db15cfa8cf1b8327eec8beea5431732cb0848e630a2175d00b7496acbb3cad3ade4d111c09ca445547256472b19d767238b1261166d28dc7e252513eebac458628145af069a4448e5e8d986d3278bc8f7f87848681133344d73b017b132f8d56944460562a818030f10c6e7f3f5ab73756535f51485187f19f3795326291a6b847dcde48b5b0a81e564babc6fc94b1522922479628125aaf1e2c9010a440122aa407ebc526668c09d23dd234ac591af55df4f50776a1a5ac1cb8c0d0b01ce0d2d21f211fccbb35570dab98620e4561093bf72d276bd18016098aa02665e1acfd881bf89573a1e3d6325e54235c9d8ace9a6067e91ef2dbe6d83ddfab2bb8ed281dd777263c51dec4d6493a42f57b175e1d9c275616937fc6e8d7aefd53437c728d31a72535ecbdb4265dd2dcf74daeef15a4150a68f137d79fd3ffc47b94c4db488e2b6d36d906210b07df58f245196bc068e7451fb05a5ffd799ee791a1e19fa91d9a54e8af417e367cbc1eb54fac42ca68a228c090019ce44ee0e9fff8b885fcd5d566c7425cb3426a3d780b0f6316dec3ed1674f17e79253bbf3c65e8f4778b46232eac5f8722eff416ab518e27b7bb9c7ad2aa128186dac440c39a170b8874b9dcd153a29d469fcc7e24402b6b1b5333852d56130dcb4e7a13cb5ed8bae207e7610e4fdffa0ee90739971477e45e784f5dca77006b5f132d6fbbd870e510bed4180585f2177a249470efdb27f5364efb766b2a92195c802fda7a3401e6d140ff054c2b3a0657944568734b030fffbf1a1ca2bcc1c94766a54690c32b3f9a02f2ca935b62440dce504266f3ccf3cd7b20a890a3b001c68662aa1972171f18a20fa480318f0ecf9bc4d4655fb872571f48a45a57d24620ba7b3d3864cd0d13ff35d4864b0595987e30d4e2f63bed0362e0beeadd8000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012d8ba258f1590a88a08c954d872b461b235dc3fb7a0f738a3231609ccd7ebaee0b3b98460c0562002438b90520642091b6425ea0ea3816753f13047c9fda976910051aa534f633cc52b9ba6c9413b59f475a3ced669edea4b85a8766e46adbb4310e50b3ca8bac9be01d60e7020ea2af0633bb8513dd8c25d5260d3d02f37cf30cbdbc40f2cdbb9c4d450d588cb5f9a0157d11813fb20659191e2ac8f9303780205bd21bc42932b339852138226785ee7657da8d879a3e27087382e10613e4fc0dd591452dfb883e4d0579efa6e3796ac69e926ac7993e244c4385e78cf159e83516fad49251dc2ea70eee670ac436d261a917199d52cbccdb1e9acb2142da1435c9a5748b2d3bcab0190d24763904da37ec95e2e8bbdda0463af587f52f4cb10747233508650666f8b2d9cc16c788fd13f5d4ea923b587db312048550246af5157668eff7678cd7235cb93bb0ffa54de03bf96cee64e23f69a9cddb6fcd113e33178311718a9a13fa9728bde96a2c7d017bed2cdde7b8b05d7ac5cc584eb6512c1c7b95c9e9ca6e0a965de72518373dcc4e02fa359f92e7422d6507d7fccec43aaa0c30d3dc9603e6ba1d7fdfcc9310302683dc8e2194e9823e13075572369f08d9e4eb676a8f653b9490e70a13028317ff44c0b9c8e64debbc6afa299c609c2e714aa77d3b4be8051db5cb7532162d30622e20b40b1764390059d2538c14231bcfa7c5e1dc5a0c25baa42d4f571a9cc8a6ec00060378a9dfdaf179311eb42112abb62187a2f0ac83f9cd7d99bb50172577b56846c2bc1ea42ba10a32d1580a09423384f0d74a20ce8bb048dcd97d6222ae78c1c3540d2ab8e53c646732492636bdcc7b0f28b5df31744fb72326829dff98203a45f8ebf0e047f48898cdb6db2e4b0198b43472a408ba716c503f72eaad685bc8d0a441d59c7a2df603fb6dbe11b4fe674bcb8d5bf7458e93afc08d1574de3d3338a8b745fcb302f6fc049243277707fb85063d342ba4371d913d3e94fc35fff7f74e5dd942db530713e924b31888f8047af9c2cbd45bc8e26ec2c16b2610990411fe9b425651dde5ec16db4e055327e9991f3204da351393d63238e8863a34e3b8a0e9eb82c10c5c638db77c3aacd81666e0cdfb25caec6c29cdc7179c0c641850ac0f30166c24909c72488509423384f0d74a20ce8bb048dcd97d6222ae78c1c3540d2ab8e53c646732492636bdcc7b0f28b5df31744fb72326829dff98203a45f8ebf0e047f48898cdb6db2e4b0198b43472a408ba716c503f72eaad685bc8d0a441d59c7a2df603fb6dbe11b4fe674bcb8d5bf7458e93afc08d1574de3d3338a8b745fcb302f6fc049243277707fb85063d342ba4371d913d3e94fc35fff7f74e5dd942db530713e924b31888f8047af9c2cbd45bc8e26ec2c16b2610990411fe9b425651dde5ec16db4e055327e9991f3204da351393d63238e8863a34e3b8a0e9eb82c10c5c638db77c3aacd81666e0cdfb25caec6c29cdc7179c0c641850ac0f30166c24909c7248850000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000237b25f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007ec7aff70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000119249ca0850aa900000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000e6277c8bac2b2a848cf929bda627942c7e1b9ac4e7f511c4dd859470bc49ec8307edf8c72285ca4d6e280fde0a3122daa6e860eb0ac5072b81c3d44d633980b266e7df29c4cd49fc7cce1a338b05bbc1ec1361be8d8ec60b2bc20163a32973f1c7ac47172e0c11feeed8dd817b9442326121fc12e1e9fe696c59962ca7cc79c0f37ff427ff13f2577bb55722033258fef2797b6426da93bad5dc56b65dcd82e14674dbaa78b2d8a36d8e842eef752793b78a1a023dfa598ea96e8687ee157d6358343508b3d7f8f73237b8e6cf5b00f59db6e64c0ca2ddd455ca101226ba0021f1a2589da86127188cbe2bd941268e904b327a1c594636267db7017a8c96a151cf2bf8b943815c37057d5f5ed471ed1b5930fae9b5d5b04e411d669a9d0be3e2f0a8a1f6ab8259b57e2a498052c5c264bcb993723b1a7555be6e8f0ea16abca07d7099ad45f4a924dc6cfd49556d1d29f5acc1fe341ec989cd652463e84566622dfb326c958d7c00af7250dd64e1e548acb9da682cfcd4369a19b53ca1266b903e6d49fd46d88b1e65956592e96abf94f62503437a46171c19cabce635c9ea90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000a2aa147f25394c707ece2babf233e0a1301a729fd3d5e338d4650c71b6e4ce2167d061a091cbe6fb53239bd3b4d0803a1d7bc7db610da62362ef186623c8a902982f9e5f6e341904acdc642c4b2f7fc806edc7e533c1eb962fe3f669dc3757130711e822d8fb82e89fb20b22881281206f0157885074acf75bd86b2eb2eb4cf0f8ee17dd27047d17604df4dd77ed7ee1b5683838445ae4c236faa3a14d14b323235988ae3ce98e8b1e7a37aca85c859bbdca0667d3d8aba812c0eb797e988080dca67751c3167174e185c85357a37a66669f8958c0f6e6118012235681677f93b0bfab67308fc8b79863165f49ce9c0447b570c564cca51ba54b6cef78fa82504f405498cf703748679ce9a0b63163fddcb41efb3002ec9ded87a1e087057dc167d061a091cbe6fb53239bd3b4d0803a1d7bc7db610da62362ef186623c8a902982f9e5f6e341904acdc642c4b2f7fc806edc7e533c1eb962fe3f669dc3757130711e822d8fb82e89fb20b22881281206f0157885074acf75bd86b2eb2eb4cf0f8ee17dd27047d17604df4dd77ed7ee1b5683838445ae4c236faa3a14d14b323235988ae3ce98e8b1e7a37aca85c859bbdca0667d3d8aba812c0eb797e988080dca67751c3167174e185c85357a37a66669f8958c0f6e6118012235681677f93b0bfab67308fc8b79863165f49ce9c0447b570c564cca51ba54b6cef78fa82504f405498cf703748679ce9a0b63163fddcb41efb3002ec9ded87a1e087057dc25d748e65cffce8e1cf09924474a2e4fe7a8905061b1795b5a6792092ffcf4f90cf4744978dfa55935648e4fcab96ebd33e91eef20a37884bc15fd66c82c3f0310bd10672d5ad277e743b3964de956c989de2c98edf5232c2bb60ef008a66dce1223dc277bc3bc099279c7ae8696045e665e40faa556cf48884b19d8df5eaf553770ba7500d2a77b885a6e4b3ba0df84e485d504803ed74304deff67013e092d0c0a4154e40c2e2e1c318c762a15901802af7f7c0c739541a6229a3d1de7a7f33e69c8cebf0c352fc78c84a7593737392c05e8dbde96a0b602aeeff211da43f235a2d47907377ed6757fb66a488bc3e870c5f37d2b41fa1a6f352361f6a885da31db538e220d9050deb695a20721092fd516be72dcbf54583fa16ac019dccee5387802b35ef46d465536c7a5125bfe9b85eeefae2986b2a5c1676fce05f4e0003cdd3171d8a6ba1b12f5c44018b64cdd7c174aa5c11c0951e92f3baecf5f282f23bcddc963198d0d17d8bb3c7880c7979d283543419769d9a6fe661967c16bd0096ba6b275a55ef9fbcbb3456acc7ae6b0bfdc12b9a65c94130f8ff3c75c9d3b20e7af8f0b5c9e9d3821aa01aeb08ce487ff39124352b14e54cc19ad587511aa10f3a3ff16b0f1b3a694eba058707c4b4d178560996ca309ead55112c167bd3c2f0c5c00e94f0e4c596b145fa78f83b4d52f139b6fe05611ae57dfda3e9842c606d249ff486b1cc2d9fe76bf5fbdd8350c6342f6e6f7e01b9b802c5ffeda99bd36be89d95108034cf0334b6e5e3951d1ffda7f98472e79f93f4cd9b254a5dc032961764c6627611eb9a9e6bc9fccfeeb58e68581b4ca7059dbac587cbac91c203357f1aaa6a6427cfe6dc8fb8bdedf4ef632cc44ac160d7ea03918c1999638db24705055e608d44df1a9c1677f8cc7f010379da30598a5961755f199e64a55512bfe70687418e800d3948eac8f8f7d6121b28c2b99158cc735837858999ae5f4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010a2db6e10fe8d859f432374e7b71f72918d78ccee3c53f528ff770eff1a4b02f36821f647fef4b145d2a198dfc3b7ce4ec88fa6a1bda1cc14568878f3f4585f10a6b96b632953446120fc0847d65ce3122ddbabccc2829f35d4e029568749a5429e7df07ae4bcb25f83b3be6fa09447d209f78fcc19f824dac2c2aa412a5fe40171cec7b585bcc89066fc5c2bd6f6b753749d094e33811aa87150266184a39cb3cb0b1ece2f5e0374e5009aaf740ccd59300e945f53b369fbd26cfb1fbaf50e73cca7b9658e89b6ba192a9c0c59b2dfe188e80d910ad85521d65e04d0e1ece0b269b071a7bd8149e6223d34cb0a8a5da83fcc4c5340950d0230879e41dcf5a461b0280e3c0f6076df20d395a6f23876611c3a1e9bc9f56eabb1a72c4b208966b1fbf74b0b8c89287ce946d26bb5151d23c3d817fa60d92a7fdf9cab161dd83891e3fb5a1a390e4c9bdfeb41f03a6a0347bdf75de81de00eb51114d16e64092950a7344e00d97e43e96bbcc494945d5ddac27836504c95c7370364c024e33f12726f0c331c34be94c6e2da60b600ab7f2b481e4e36d28061960cb1879ac54ef4b3fd5c494da7a77258322d55ba4da125b47f2a1f3569921b763a05f95811a161811a111513cbf468834b8cf0e0bc620f96dc01fd5ffa1160394224b5476df00422a5a6a3e4e0db35d4a23587c5d6959754536ffdccef2764f50b1e2905b94fa221fdf5687427065d4325f962bba0f9222518e41a1f5e344caddc1242fb43d15d91c0bea39ee43535ed64c73950824f1b0bb9918830895c08daaffda5908ddf65f28193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e11105939417e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e13781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e202a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b6965158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef62bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b28193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e11105939417e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e13781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e202a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b6965158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef62bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b077596ab5d4f14c7435038a9742be3e6b737f77900011bd2975eecabf38cafdd2a541dc9aede8050ad6648812a33cfccec8163996bbfab69265fbcf2ef361c4e3000000000000000000000000000000019b4f2bd06f9bad4b2e1e4b1c00000013000000000000000000000000000000019b4f2bd06f9bad4b2e1e4b1c0000001054e43e7d570affb9aee4854bf65e29645e89aff47a48510591b37be81e7333b1bbf6cf08a9fcae4eaea8d7a724774b3c8891d34d51de544ba34750fec2c590536098084ccd24f630a4526a8ec327dd02e337604f5c9549b72cafc70dfac942c255565b8bac20b8c8e750132a560c37ef3df331436801a7896862ec06cba474305abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b3288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc735024182ccb0627001b850504582c756dce7c72a060e0b10fd66001d0bbca3d909fac28e0e5d239105f5b80d47da2bc3f88cdacf4a3d170591082de15897ab082ec95088a6954a2b0eb38bcafc7568bd41c195159aec6025222744eec5f8f4c73502425abe23651217faf5299b77ed5cc30333e56dba19fe08bf95918c03550c9e3b42000000000000000000000000000000011234c7e04a67c8dcc969876800000012000000000000000000000000000000011234c7e04a67c8dcc969876800000011a445bcde13d619922120c75871bddf6a20508c883af01ae4687ee02b259ab463828fcf707ae2c920e818f8098f8d61f319c2608d9288f962be01c3b3eeb51d431f8fa47c15f532744d391fba64d1b81ef2ae1069e3f43afda1cb6dd3c0e142615b4f676a1281fbed91d170cc14c3dc2d1056baf914e1e96e8f4176419a3e460249c9d5d84bf3733bdca1aaa501db2430deb40e37229c347e09afcb52448a50a0e47a2ed0231e42e685bc077703b2ad299bdbbafa86f8d3bed02509b76d607ad0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000104d03f6a5d6f0a13608cd503e6279c9c9406eda3fc29af3f15ae8275615d27a63dad24e872ff7cfb2ac12cebc8f22f00496c97539621d09fd225cd510c9c9f85074e237773b0f74a2eb7982f01c28d7600c8bc5ef9817a395ec1f881969cc4d9184211339322df5bfc426420e4150c8a14d205fd809596c4570b4b5b71d3bd6c3f1af53251d49d546405570926f91223f344adebf01132a6a88db547127fadf82e3220570fc3d10525461f26970a6c9636aa2428a37196b61fab63dccea8d4592a320aaeb3f0fc5769e818e465b79b3c67c11e5b9713634ab1c71cafb8c57b2937fc37789af9d8b04b71fcd5a2f3e2044efae83a52a64cfc6fa143ab7a8c690a1910efef74ef68d7252321c29a7ac30d4739d7c205f740a430f3bd48b460440f1fbcf4de61bb150cdcdc1d0d92f88db476c2e067571dabe45b5fa0ec8d8412bd099d70afa9677ff0035e4f912b27a58b9174457eda2dc087cbd918dbafbfd7cc022be0994a6cb5556431d186ed61eda3170a32b4f66eeb1c7b6440fce609f10f0783a7029d0ca5c3eff4f44b8e1ffbec53bd16b01e1160475dfaa54e5e9b1d311f42e0c400b9baae015b871b76c4ce618670d72a9c62ce6dcd43a1d3ced3e8311f6bb00cf1d48007226dae5f7e469c922a119978a097a3e56b24ff3ba583eacc26724152bf26609546159e89d76d0d72d10350133ac8eedaab8b39468f5af34c3ddb75782fdaf4c973d76e5edb9985a9ab31e8dbdf0bcf858956cfce9328eba10c8a1e6a2b399303443a4d2938bd0c0fb6595ba12a2dba113da5ea33a29c339835eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5600a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa10da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c8525044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b61584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff772a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a35eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5600a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa10da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c8525044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b61584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff772a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a0b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc28a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e8719da8e2638861c7ac4e5de71bdfc3b42ec37f154f40bbed4c5e50965a0156c061e34c8c6e8e486192e6d95d7e579bb63a7782fdbfb459376a1965feef865efee30c952866824f5b6d2e4327f33892b0af948d2089edcd99d46a4f26b26117ff80b9d798a0dcfe0f4f594784ce33add8e74da0a4ddf0a85c629a61dd7bc644bcd24b9719897af366a8aee83ab7091b28346d90278f468950f8d056030c45aaf4b3f44c25fd17a50b971a117c3fa0049706d29179dae17d2e59e1ca03a77ab527d3ba6fdac0b77d30417b290295f5091155d781ed0d0a66a28e5a091ccf9031fab1883d6e1d3620a99d127d8cf8f9f75ddfae5984b4c8b4ceb80eeda5649fd192231ee6849847258958971d9ae42381ea0477e13551c4028b2ff47442f0f4dc7a012690cd9d017db824bb35cd43115f352b53b40cc7ba2dd80a2b593ac3aaca8331b00dc3610a9bbfbfcadcd305379400e30def6fd40025399a6ac1292daa557403929f857ce3021a1ec2c9bc89b76c6e5277ec01edd2f637abfe35990685ae18e027d05543d47b1622b85f460c3d9ca3035f95eb1f37706ae25bd383c90a83e1e3d82faabc2b84e9dd47a0b9f3c2635cfec4d3a4a15d5f26d736ff8b06f57c1e41a290bc88da8ba157758a6d48daf57831ff71d7fbb4cd194440fea00d0b11aec39d4cf9d47392fd7b152df23e1a037f8a22104d34150ff396e0aee4ebb1f2fa804bce27eff843bf647278bb7b513c62b8659430159cd3854790caf5f81b49022366e38d66a96b79a1aa5e948325488ccb0207da12bca988284b392e1078c474c0b136c32c83c65b255a828d189cce7e709d6ddb06a7a6ecfc0a26f4b0c87a87116b6a3f2d2650cd015b4d309fbc7066cb1e43e004519241f9df01b83e652fbb20000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000120bf1bb15e8f5e40a639ed44f109d9278892caf10bb66972a5152e1cf4b3c03911a427607856af0dafc97add3630ab48dbb7bc7ad3dbc2713311a3532bb62bf632f60dad22c5bc7a2bee5148a107b84bdcdb26eb2b7c1951e66f9168c314e1432ed21efa0c746c69fab1cc037fa2d6fc0c6db184fddd952b90097e8ee664064705185a913b10a0f1e4eeacc2cc93dedc5bb7dddb84445ab31847956454f29e46135f6c83d6d79113d6d4c4a77ca6315b33a3838d5fcd759caf70cf7db6ee0d620e14cb12fdb68ffb82416bf4ef793d09327459e8aadb8df8c78c433889cf39c61cc3ba936aeeac4993de8c45e0ece308b7edaaec13c9e398fa5d4c4c1b8ea6082e1b239c948fa2474b092ce0e76584d268e6141462f9a1e203a2bc3751b14e8e0c57715ddf82cc519805a024111b326ee64675b3e0884b11b942c833e413a13314b633f2bc6d853fa78abbdf9de02ce5c98d0053c599493701394fcb346cfd0b028bef44db099fea0dc8cf12dbcf193f3a9177cb3af424065562247392cbc5673ca611ca2e39a1b9db01a05917024ca69f1969e8c416a1885cc82b1a162e593c2a2075fc6f8cbeb8164edb0dede27da75d5b1cedffaa864867a34cf51740ac271a6084c615f2cfb0b57ec56a75c6fc367b161ffe17965e7f83fc958924fa691e35fa020395d432f4ebf535b1b4d6184738e30ad8bc015be9bad33e04cc6c88ec33c0624e0eb86bfba2860a6bd4ed1b3ee61884667a7323cc41136868543cf3c311e54f09f2d2af6be1c7994d2d20a19e23ae505316615e0399ff361a1b80af461868ca50534a180d97ff23a878e088b0b9569c85b0a15d666c23ded157fceeba279735afacb5e7f26800dc57871f774f68effc7658ab9bb52d09521ba80311473a0bf391a0727843f7fbb24a5c62ab737c6a75a069d9d9e483862929b7f0a9a105f40c6e5f8d87bc08044db5a39d548ca5dc235b9f731f3715a707c3480f5660223bc1d8223c5953d7ea7b73cded5940e4f9e831ec0d5d082cea0a1c97b350211dc43e27ddc3a6ac2815848c3212a6bf3d4cb0ca1d3f9c136c4326d0684cafe02b2ac938ab2dbea33794694305a2be443454570189a8def1ae37d0b4f68090a314d536c754d2415cc86b96bcfa5d41bbedf241fa7fa41a29eaf56038097f6f5e1868ca50534a180d97ff23a878e088b0b9569c85b0a15d666c23ded157fceeba279735afacb5e7f26800dc57871f774f68effc7658ab9bb52d09521ba80311473a0bf391a0727843f7fbb24a5c62ab737c6a75a069d9d9e483862929b7f0a9a105f40c6e5f8d87bc08044db5a39d548ca5dc235b9f731f3715a707c3480f5660223bc1d8223c5953d7ea7b73cded5940e4f9e831ec0d5d082cea0a1c97b350211dc43e27ddc3a6ac2815848c3212a6bf3d4cb0ca1d3f9c136c4326d0684cafe02b2ac938ab2dbea33794694305a2be443454570189a8def1ae37d0b4f68090a314d536c754d2415cc86b96bcfa5d41bbedf241fa7fa41a29eaf56038097f6f5e31db538e220d9050deb695a20721092fd516be72dcbf54583fa16ac019dccee5387802b35ef46d465536c7a5125bfe9b85eeefae2986b2a5c1676fce05f4e00023021aac0542e01e3d3987e97d79f39cd27f941f636cc0d00835459d20b09ad31982e98a15de4a381e3a7d551ccf9cc68ad84958227ac4e27f238298c029b4101223dc277bc3bc099279c7ae8696045e665e40faa556cf48884b19d8df5eaf5510bd10672d5ad277e743b3964de956c989de2c98edf5232c2bb60ef008a66dce1289db3057a4bc83df0866f8ff39451243583580c422fb6f8153920daf8d794b39698787e2178f75e3eb5df55f03bfcc86afb91a4deb5512d84fed6547efbced059566e6dec5172aa9a3d8a9347fd6550f6f1691a37f82eac53d94a6e7613a4813923ea18517c0e7c6fac4d117b9917c9f0728c9ec39dbb77de85b5c17f2c7f41e2e1d7c5fcfea37aeab5424b0ab9476690dc076b1ca648a2e6db415fd465748082dcadc2e2d79f36f9e21e1898a364e4c1d68a164e701539767dd6a09e476fa2b2291c5d8af8f90e40fe2747b6503339cf6df65d26ddd0eea83b17cc572964b2e0513c28b2d48818c8ebb05d0d4649e33c5f8f1c6987aaef1cf6f7339e16bf3179053245397cea91d151da363ab71b6fdefb69be63401576c9b5620ad7fce57286facdbac683156e2eae25c9c548e492456e2602318f7c42c91dacc528031ab22dcb4038673d38fdebf54a533bfa327e05020298ea6a9a0b0291c40a42eff022230ddbd7c0e4d2c17908fbcd758dc23e2e0520fd416e66019388ea76805b13c3b951dfbb541c920ecf11a56eb630fb49f57668ac5dc2899757c45c5c2b80a780567fb70a1a4c3b09a72af4e1bae758b8d7ab59227297f5ce75d2a0b02507b681f8f69ab78c491d353f650b11bb42ef24f6ab3af2597c084436d37992b68ab75108c99b1047534afce97b810251fbcbef4808ec523608e187330f9aefecf2e410000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000116e6d1078d18315cc4ba0fd5ae1b5952d0ab6a7049afde11582ca4110d5a6fb703b756ff2e003ea1127a58f27cf9f2f845da7449692cdd8af88cdf6ef4f0a9d40f8664c25ddddd94b63caa61abc60aec4d9b84da6757a73a462031c1fb9ecff41aefe8a28f9924646d373dde082ad8353ef10958c5c20e83417b083bb7eac84127a6c7902bd2f80eb467a45563d6288e7d6f78e6e90cbfb1ab532ec26470260d1a29f3e67193f1987e8c5369f277106d65a50416090f2431823a92421ab8382f085ff53545cba8237f0e4fede7f009349bddee8fe29797194228a45eeabb56b31f8bdb3555116ae7f69c013579883ee02874843338667a8c02aeb7b085bc1eed142d054b0750224dccedd5aeb6ddf84defaee9d7841c95dfb33c6ba18ab8ab7138dde59d50c6f9c09c8057ffe7fef015c44aed1dbe458bd60ef1e9c86d99ebfe1c0a29d3f129cb6189ee86b5afae9c055801e8ab1351d2f7ea96151a6e01aaf9092e8262e5c8d5a20a99329abbd0892b4b76a49d1177e1d05bc84f2fdc0675e73d137a7e3587f2674adccc29c833904a1cb8ff2e4cab9523264ffa3ec3a3568f29b30d48683e6e0aa673af3d3cb13a03dfbb87a8771592ad9e1b7dd069cbaed427428b95d39e3165ebf2a7ac8d087154e51c9c8ae752285ba2881fd32d48664e18e683afdde41c1310a03f55116549bcd18c068e1afc7e0cb02360fec9b2291c06f52f0791ea5343210941ec256e09ca0158362c5781702d03d76f01cf4705d315cc2cbef6a2e13c3e28b9979e795d69bdc59099d6577a2e34912cded843df603803980f2dacf1b806e0c9212adc081921162fc2e03314840e70c2dd87f3fc7507fc67f0d2530e47f91f36ded523f7e7013069392919e4978abc6e0f780c038c1811f84be460b8982263eda5d64c287d1c548ade3bcb8225e37f0a9fa7c3ee4527ee07b41b9f4767dd9c125a29b3d78305f20e1dcd8176f5b5ae264d583c11bc3859d97b75e39af8abf3a43d2f7cca716b601d5b21ac91a1d84e043146d3a75807a626848a1c6507540c5bc2d083358eb6e67ba0e7a06779c0df2cbbb92c58a919c13f694d7206db5bc23531ed6ff4368fc62ed7832af3bad4d15142622244b4263ec096b28df924a43dcace12900bc992806a2486220560c45bdfaa9dddbb4d3803980f2dacf1b806e0c9212adc081921162fc2e03314840e70c2dd87f3fc7507fc67f0d2530e47f91f36ded523f7e7013069392919e4978abc6e0f780c038c1811f84be460b8982263eda5d64c287d1c548ade3bcb8225e37f0a9fa7c3ee4527ee07b41b9f4767dd9c125a29b3d78305f20e1dcd8176f5b5ae264d583c11bc3859d97b75e39af8abf3a43d2f7cca716b601d5b21ac91a1d84e043146d3a75807a626848a1c6507540c5bc2d083358eb6e67ba0e7a06779c0df2cbbb92c58a919c13f694d7206db5bc23531ed6ff4368fc62ed7832af3bad4d15142622244b4263ec096b28df924a43dcace12900bc992806a2486220560c45bdfaa9dddbb4d0427665ed95b17a0576af512ebc575a225cca770747fc11a85e3405b33ad6bb002137e04dacf9afbc347f2bf066d88f624070fedb8de8410940ab528ab8fc49c0df3103f23d9644fa72a1b6c1b961a9c14fca4bc6d64a098a22453fbe63b716a3286eb1e3ecaa056affbea5789533a4e1831888b716c307e647a2160b3ab9f08125598985b4ae56415db9e2bb332c7ecbf1e5b2ee5b48d128e16c3f52244ff7e208231a5dff2845246ca0cf5e27115659713ebef7caa9effabbd28b13d9ef25224281da4a46558c590fba2a76d7976627296ba2565c13b814a8cd3526bf9236b1c1053f85563d3a585d2dccf73935a30dd352dac1a3928520cac7269dbc179c021fb658f6072cee97b6dab3dcbac82009de512e271ab489886ab5369ed4941f1174fbaaf88be79d412b9672c9d372a7d2fa63a6f94bf935c8b22a38f99927d542bb8d14cbed8fa33ebdcf81756d77b6012cba58c3352a47fad441cad6767416e06a4fd9419c06adc19a2ad4699e30d08387f0d465988af971f1e8b895e959ff22de5896202cb8410016aef80f8a46fc1e77d4ccf2768976871259c95e61722e80b6596dce665c4ad8cbc22e9703f3cbbe60e0082df02448ca0a85a63a0c49c5e1695ceb27a0d0a3beeb188545b6d4544b7d7125f92a9040be602f9064c84a594296a314d85f2f5c4114e77aba492babb6a6f869c76a3f50fb32a37e6b37b5a6e3f1858b750413b60496f9849ec7d72c369d82fa997917837b88f6a52cbbc67060023499bed77d3c3c88ec6b44e02f18ca969e0d487a8d011981b8053ad09b1783653f59e9bf1faef7a499849c547fe73b54ec20fc3c408c92e742023f6c7a326385fa67e26f337d2f1a2d946af0c95214715e75c02716fe0ef050d5b0af6897403dca0f7143e83b53f2d43c79f890cadd7a37d99c1d0b78f343e2cdc77add7f01deabecde58a92b17b552996164e406218672adf573cda0d7fa426bfc945f0ee000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010e5ce0d4f1dc22e26d3d7d0e6378d1ad1bbd3d6a7f683e7be9bf7f33ba1bec1434b0434593178a8577012af7afafed2fca903a76ab6e5056269c0b629476da7f330e847146cdea05eb96df652546725300d5bc6bc1e803ce415d1ad34766ee3618410465d07103fcd8ef33602b9a9c5e2a01a5aaba8041adc32a259d626f5c7136730aebb6cdec711ed05465d53410da53ce75daeacec4628b691b52924cf25b2faea96f026aa45b5b6a8605ae78ca09d1c68bd56a70b9b0976aeebc3e63cf203f3a347af0fafeb1841941c078342c834369a3130f55b5ff95575e1b02976ed83b0bb774678c15d48f3dde32e57cd829e662c20ab02e0bd37bdd26e6541ff34323880ad2c52ed77db68bdfaffb498d173717209ed6875e5034ee16b3dbc7412b002901bd77899c9c89b3c44780e8ea25fe2edb99dbb1754c3578c67ba17156c62e323405d145476ad3253b6c8094cb09972dd692c6d2fb3ad0e8f94d11cc8f81065cab114f724c08b78c20e253fe913acb05b118c71cddca0fac52da06bf82311cfb34c03f37c0e2c94c990c85250ce96cc30da1f5600d39ffd9cb8c6304406209cb53065e8e9f8f2803e25a7fbfbd646d6ae038c514217b2b647b95ca6ac5002470a04dfd3f24cf533fd1d3ce68fc4057f7f48699368afaf4398d3b640323980a5dafade3e02f0db3a0853e140623644754810d6f92229baf7addaacb4afae9002318cd2d1f542bcc1288772473d5a6ab395ebbe95d3805baf2530a7aae05e01aa2d39deef31722d543c8d5d63a74d5d2618a76d93bb37d478c53594324a34b2982f9e5f6e341904acdc642c4b2f7fc806edc7e533c1eb962fe3f669dc37571167d061a091cbe6fb53239bd3b4d0803a1d7bc7db610da62362ef186623c8a900f8ee17dd27047d17604df4dd77ed7ee1b5683838445ae4c236faa3a14d14b3230711e822d8fb82e89fb20b22881281206f0157885074acf75bd86b2eb2eb4cf0dca67751c3167174e185c85357a37a66669f8958c0f6e6118012235681677f93235988ae3ce98e8b1e7a37aca85c859bbdca0667d3d8aba812c0eb797e9880804f405498cf703748679ce9a0b63163fddcb41efb3002ec9ded87a1e087057dc3b0bfab67308fc8b79863165f49ce9c0447b570c564cca51ba54b6cef78fa8252982f9e5f6e341904acdc642c4b2f7fc806edc7e533c1eb962fe3f669dc37571167d061a091cbe6fb53239bd3b4d0803a1d7bc7db610da62362ef186623c8a900f8ee17dd27047d17604df4dd77ed7ee1b5683838445ae4c236faa3a14d14b3230711e822d8fb82e89fb20b22881281206f0157885074acf75bd86b2eb2eb4cf0dca67751c3167174e185c85357a37a66669f8958c0f6e6118012235681677f93235988ae3ce98e8b1e7a37aca85c859bbdca0667d3d8aba812c0eb797e9880804f405498cf703748679ce9a0b63163fddcb41efb3002ec9ded87a1e087057dc3b0bfab67308fc8b79863165f49ce9c0447b570c564cca51ba54b6cef78fa8250cf4744978dfa55935648e4fcab96ebd33e91eef20a37884bc15fd66c82c3f0325d748e65cffce8e1cf09924474a2e4fe7a8905061b1795b5a6792092ffcf4f91223dc277bc3bc099279c7ae8696045e665e40faa556cf48884b19d8df5eaf5510bd10672d5ad277e743b3964de956c989de2c98edf5232c2bb60ef008a66dce0c0a4154e40c2e2e1c318c762a15901802af7f7c0c739541a6229a3d1de7a7f33770ba7500d2a77b885a6e4b3ba0df84e485d504803ed74304deff67013e092d35a2d47907377ed6757fb66a488bc3e870c5f37d2b41fa1a6f352361f6a885da3e69c8cebf0c352fc78c84a7593737392c05e8dbde96a0b602aeeff211da43f2387802b35ef46d465536c7a5125bfe9b85eeefae2986b2a5c1676fce05f4e00031db538e220d9050deb695a20721092fd516be72dcbf54583fa16ac019dccee523bcddc963198d0d17d8bb3c7880c7979d283543419769d9a6fe661967c16bd03cdd3171d8a6ba1b12f5c44018b64cdd7c174aa5c11c0951e92f3baecf5f282f20e7af8f0b5c9e9d3821aa01aeb08ce487ff39124352b14e54cc19ad587511aa096ba6b275a55ef9fbcbb3456acc7ae6b0bfdc12b9a65c94130f8ff3c75c9d3b2f0c5c00e94f0e4c596b145fa78f83b4d52f139b6fe05611ae57dfda3e9842c610f3a3ff16b0f1b3a694eba058707c4b4d178560996ca309ead55112c167bd3c36be89d95108034cf0334b6e5e3951d1ffda7f98472e79f93f4cd9b254a5dc0306d249ff486b1cc2d9fe76bf5fbdd8350c6342f6e6f7e01b9b802c5ffeda99bd3357f1aaa6a6427cfe6dc8fb8bdedf4ef632cc44ac160d7ea03918c1999638db2961764c6627611eb9a9e6bc9fccfeeb58e68581b4ca7059dbac587cbac91c202bfe70687418e800d3948eac8f8f7d6121b28c2b99158cc735837858999ae5f424705055e608d44df1a9c1677f8cc7f010379da30598a5961755f199e64a55510000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000136821f647fef4b145d2a198dfc3b7ce4ec88fa6a1bda1cc14568878f3f4585f10a2db6e10fe8d859f432374e7b71f72918d78ccee3c53f528ff770eff1a4b02f29e7df07ae4bcb25f83b3be6fa09447d209f78fcc19f824dac2c2aa412a5fe400a6b96b632953446120fc0847d65ce3122ddbabccc2829f35d4e029568749a543cb0b1ece2f5e0374e5009aaf740ccd59300e945f53b369fbd26cfb1fbaf50e7171cec7b585bcc89066fc5c2bd6f6b753749d094e33811aa87150266184a39cb269b071a7bd8149e6223d34cb0a8a5da83fcc4c5340950d0230879e41dcf5a463cca7b9658e89b6ba192a9c0c59b2dfe188e80d910ad85521d65e04d0e1ece0b1fbf74b0b8c89287ce946d26bb5151d23c3d817fa60d92a7fdf9cab161dd83891b0280e3c0f6076df20d395a6f23876611c3a1e9bc9f56eabb1a72c4b208966b0a7344e00d97e43e96bbcc494945d5ddac27836504c95c7370364c024e33f1271e3fb5a1a390e4c9bdfeb41f03a6a0347bdf75de81de00eb51114d16e64092953fd5c494da7a77258322d55ba4da125b47f2a1f3569921b763a05f95811a161826f0c331c34be94c6e2da60b600ab7f2b481e4e36d28061960cb1879ac54ef4b2a5a6a3e4e0db35d4a23587c5d6959754536ffdccef2764f50b1e2905b94fa2211a111513cbf468834b8cf0e0bc620f96dc01fd5ffa1160394224b5476df00421c0bea39ee43535ed64c73950824f1b0bb9918830895c08daaffda5908ddf65f1fdf5687427065d4325f962bba0f9222518e41a1f5e344caddc1242fb43d15d9363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545409c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad0f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a030dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f34537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e23a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d366363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545409c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad0f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a030dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f34537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e23a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d366063701d30cbb53d7978d008cd3615854317feab4f9fde2db6584c6b4ea9b95e5068b7cb70c4e968fe90a321a45ecb6c221e359af3f511fa60b4bca61ced1e0ae24ef2af288a311bbc5f02334c1052f8d299158fbdf2cdf5668b90bc81aac4bc125c75f1da7984a0e35ddd3cd4a1939fa3b3b9c2f959314eead426e27e2792dea0fec9db111a2bc701c877b6b49a793338e01242570cdb4629ba3d7dc2df4aef00c92b2d6b47058a06fbcb270dfd3adfdc463f7d18316e233d08b9f3170c2b1cd32e8f9e51b4996ea4ec2ea7f70712a16cff1a2df425c7ddac327a68cc9da51c90c5c2e6ebc54236c27fc8b5428590d0438e98e29fe47dd99a493d90f276de6ae2e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae96839ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e1077f591920208286e763acdb3280fb019c294548137c4442d22d87a3b88b5fb0150d0e603d5b11e21fffc0c6b34c7f9f61c2b730739d728c23e55906609311914d9d33a6aa19a6ca282dc3e6b99781ec735554b302236e9caef5e6ffab81e5c13ad242b4c191f61e117fa186ffa0f43c527a31d3468c486e09ef8634eb4f16a1ad9f810f690e544399e4ef64805b2645d573ecb5f0946ae44bc2833bbf5f7ff252607ef096f1abbc661b109b7fa4d9bc4ef5a30aa43b26d547108b9440a08030b99b4380e9852d09d4d3f429ae71fd9b7b67180a51cd77a40a90f425731b61e09f8e1db3ca04b645314b952499dc5904d1f08d4266877c80b8ddb708ceaeb5638e4ac231e9ebd0840980bd7438d6c07532595fdc48a5e49fb718a55d00f9c4c172b0a27a39d1b5547a8fa2fde710bc1529fed6709923a030b3b7bab52ce855215d378cc315615486fcb976fd99f317e9f9f9107ddec4e434d7310058cc5660c35544cf6d0a33887c3b572cd0ae80891507f950486096ef20dbabbf616fc68dd0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000130b32deae74b0a529803f0a478cfac7299eadee2ec880f76a59fdef7485a68fb078503315b24d2c7043ff5d024828414d18ad6007d7ddd714daee9d9e055e9c33788be35e26c9b9d1d531b1143796a9cf9b4c75f35246b42c0a7af8b10f297601e0c79f1b68eaa9fdad2b663a328edf4930427d1ff423134dc00fd727e19093135d078c5231040a10cee3dfc8a117a113d7b7cdbbf207c2acccb35f3ea9b6a7620a09d5be58a05953c99557ed3b8509407e5b01362a62e330ed4825c5bd3054d0ceacb50e680e1ca88cde11ebbbebd81008047e388b697a16e02fbb8a43dc4b22a14d972f7e1e7084c6b6ba702d70b6389e622fd8e2d46c00e5122ab735544dd3b6f933ed6a909fe31cf234260960409f48f84eedf278102a4f3c8299f8b532c3ecd52aa46b501ea11dbe259d1650a84b587e37cc514304c2480ae97310088ae3c15f4f58186723e3d7d1843ce29bc4ce00352a2b1ac446b155348297fdc13b929340a5d4c49801263bed7e1a8a0daf8cc9cd8c35324221c7cd7696740a36e183ea31420db4068d97451e8e7709dd75c46ddf316999919eb56d7138d5f357ad3282373a5c285f7987cfe927f9446f2f1b59693c02a280de56d946481ce398a90037519031d15062d2ddfeee960a5baac7d5949aa9a9b684cbcc1b3d7e03f454713e03265369b69744a0dc91dfad25cb5e6c16b0a94d646aeb7edf892f6001e27000197dc1952e0db74c77baf6ed8b66d12fa416f880099ddf4cad8e7cd3ddac819c5f00ae3e0c4906f7bd59d2b7e28b8dd2081f5dc02b1bcef96f96dac19c2b9142fbfa54ba90f415cce321fb844d3edc8fccd375fc0fbbaf04d1f5e9689a1872bd0405ab456f0bea331cde047bb2c125949cbc4a98bfd60a8e0118e69765e7a24eebe3a7a4d4c46d006fa9e995823a4caa96918d577f18b18546bebf0b027a21b1141c585b2b3b92ff9056166a7dc5b579d2fe333d5079080d8c5010f4fd85f38a9b72463827d621022e518feb8b237b0c1db8418bdc580474bb9c1b370c628075648db9c7d829defdd1ae701474dc87184bd77f08f339b51e1772b4c8f39d91b5093b5f18c72ea50ae797cf99b7b15eaaee5a45680f712ffc5dd148133dec424af6c4a0e738d15af518683066484ea3797b357b2cc0208996753d87ecc213d142fbfa54ba90f415cce321fb844d3edc8fccd375fc0fbbaf04d1f5e9689a1872bd0405ab456f0bea331cde047bb2c125949cbc4a98bfd60a8e0118e69765e7a24eebe3a7a4d4c46d006fa9e995823a4caa96918d577f18b18546bebf0b027a21b1141c585b2b3b92ff9056166a7dc5b579d2fe333d5079080d8c5010f4fd85f38a9b72463827d621022e518feb8b237b0c1db8418bdc580474bb9c1b370c628075648db9c7d829defdd1ae701474dc87184bd77f08f339b51e1772b4c8f39d91b5093b5f18c72ea50ae797cf99b7b15eaaee5a45680f712ffc5dd148133dec424af6c4a0e738d15af518683066484ea3797b357b2cc0208996753d87ecc213d2ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec08283f8b0e460d52c58913fad78e1fc4cce8aa7552f29062c225dd92e0b0220d0905d69e666e3b2a0d6d173f142cef7678532cc741da81bb8790348d2c293b4d248677f56dd7dd830c3d4eba7dc5a9491cd36a974b3715b2c93e973495bd87023f12e6d50c19d3afe7194b499f780b8254280277f27d10a690611b5074a3acfb11f76b80533490007d130518a294847325d3679c416406b0948885d8d5135f3c2cc2720a52f1c8b3e645a5a14ab153afd19f76d4391f99ebffdf81ecf51e775d36bc066bad4f192cbdf19e4a06169f22f64d1f342a06c9e1b7b20cb69f53d57911d68caa2862c78883eaee78094d9fb69b4c1aed67ae908a1a76c75ec48901252dcc61308ccdd0f07246c9274194c18a8befc9595e813ea573fa5d8eabafe912249ee770786f97c5ae19a5a2efede4059fcfcc794a65d5959bef42d651d7ed920907c64532b347c431682ff5de12a6dabb7611c175de7b7450d0d6b0e16f72d53f8accd0a2fe98f110745ccc315197fed62328601bd6def78157fd64826d63ca3731399b0a50803bad7d417dd4c5072442708fd0177ce405cf87403f1ce671b108cec664f5af7fc45282be822b3af8dbdfd6092bf1d01515c9a5f0ade3198e512f1036d1600cac4f47e6cf66cf8487455d71fb0d1761afb1afa47b6bf14ad09230fa7706f6f078f58341642a935386102a6f71e80efd56f2cd8182cd8e998a021d1d79d64f91761ffe1e23c499994c0016fffc91d83e4890252e18cad9ab3916157d11e3a9a16f60e2e81c68214fd0ab61cdb7ef1d46a68550c3015eedf62ead16bd55a5c6e8246e648bded0201ad9403cb02501a4d0a793a94c1cb7c1bf1fc3237d971c33f0b03edb4ee33fb01df000ca2ee7c78b752f9f9ec552d46c20f5df00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001021a53c05253c3377fe4f8ab4ad7342e57e6beca62afbd63c24bd4fe62ee4879166ce83389c73f6f7328d6e1a0c5cc840aa38c96461cb0734da32f0e236fbeae1ae4b257707e187fd5f8ee4a7eab21aa53c01c7196222c8abf775a5414c0ee5936b2e4e70e243a0d9f430a09b7eb877700cf2b9953eae963815073388927244534e951429a1257756ef11551bb5ad49337340aaec28eb381451a2ddbbbbea9f230dd7acae7032735d1fcca7d0fcfe459d5e9e3f1c361b21b463e0392ee73c7472d3000000a54861edac8192564abc129528b590bd2750e75bee7005dad3a97890dc727ed4d17875a133ed220ac09c7b0bd131268ee89fa7bd8fa692ca54a9057094a6f48a4447df30f8432d034fa29655c66276960b6f27d91611aa0ab534ef81ab90c891bf7d78a71555b4ddcacf844c7284210b17545f8ede4953ce0def6771fc9f730b29183e0a73db5d86e198756126fc506d2d2f93dd2685a17a7b0099114fea9db4a40dbe140d2821b493289d4c0406f19625c619514cd80c1c8ac37290598b872220ebcd9d3ba20684cb0baed97684be9fb3134f4aa0662417acc9e0c212dcf547bb7a3981d965afeb8340f6042c5a1f0bf42f9c08137e4e0b2a26756230f2d5aa362eb94a56c4e6fa856f0bf90f45850a1a8f2418bab94f5a49714d6091f527ba57305b849c1c94c6840833a355b8930e69d00f9ef9fd77d8f9e7b9a36b7945c5ce9adfb5a1fa2c9235cf6c98a3859c16f3951c208ea66d06b67427f323b3e7298e546a27ad92883b892c8e62412317a48f53fd22a9c76855ffa35722f712d9402cd551e2139b3bf60d1b084583955d2599440b2edcc989065d09091108ed26bfd32aae1dec64c409f2e4f7bca0d4329afb8b868ab60985c9a2f6f702d35e3e40e02a996a62082bce4187295524ae227a3fe582bd977680afd12d2d212ca1c1bf1fd566959df7d431be78d6acffbb6d4654ea0efbfb5c8e202ed2d2f220d7374460d4ff13ea28db0747a3cea34a29fd21810cd8873cd756ff15e1e171df28c8bb9f2b00ec15d724f8b85c315eda3f929f13c2b93255fbb7d0ea1e1ea2a4341455e428fb6392cc47246633092c29fed2265ba117310a8e955b6d6967115bcbebaa1bd7049c6d33b8db99ccf6d5fa6abd9a392e7a888844797492969902f712d9402cd551e2139b3bf60d1b084583955d2599440b2edcc989065d09091108ed26bfd32aae1dec64c409f2e4f7bca0d4329afb8b868ab60985c9a2f6f702d35e3e40e02a996a62082bce4187295524ae227a3fe582bd977680afd12d2d212ca1c1bf1fd566959df7d431be78d6acffbb6d4654ea0efbfb5c8e202ed2d2f220d7374460d4ff13ea28db0747a3cea34a29fd21810cd8873cd756ff15e1e171df28c8bb9f2b00ec15d724f8b85c315eda3f929f13c2b93255fbb7d0ea1e1ea2a4341455e428fb6392cc47246633092c29fed2265ba117310a8e955b6d6967115bcbebaa1bd7049c6d33b8db99ccf6d5fa6abd9a392e7a888844797492969900c8e75409cfea4dee8d5ef0552162e0956ef2a6901d74c5dc30d8531f7fd750d3d2ad1c5a84311902048eec5362fc54d0d1d9ccb0b08409046fae480f0b3a5db3770ba7500d2a77b885a6e4b3ba0df84e485d504803ed74304deff67013e092d0c0a4154e40c2e2e1c318c762a15901802af7f7c0c739541a6229a3d1de7a7f3056c76fcd7d4129f8a9b55f4dd156d58979175a140dd320ee4503c47ce211f0217b29c747f0d5edefba72ec64e6b377f9a78b5c73523d49800dbcbdc49d9c3dd2086b2eafdf76640fc5f5320e2730039d2f047b90cdd543c39fe58c2e01f06f72b6cafcd3bc4e5b8c69471cd7bca04a4f717a6e20530fc461fa526b0175e2f410cf4744978dfa55935648e4fcab96ebd33e91eef20a37884bc15fd66c82c3f0325d748e65cffce8e1cf09924474a2e4fe7a8905061b1795b5a6792092ffcf4f9286e91a8dd16f2bdc7d4ddde5a8f60f56a1109c0a449f2deec8581e4eed1b9d5313585fe94eba91719e1ac1b6b3ad4462550ff1f579e997a7fff4e750a0377ed3c00d04a622eb3a58ecfa2af7248f2720918328a9083ce966a6ddd4106c481c936caece573b0c041c38584c49fbaaa9b34c015b0fb1e1c65453ce31bf164b23516298764052ee51771df098b2afec422216fa23a2ed2553b10064b37d6c78cd029d6789bfad11ae88e20f674d5013bde00d6f6c1da7aa3e08926e5b52938733233148781b5d9f35b45ecfe960013193deb53bfc92a5ebef32e49a721a6c3fab307b78fa745ce3e48f92bcf1ae6c4180327b8f5a0752066619603557bf60d02ce39f18d312d072febc353b20a6fa73c76c48573cbf5a2a8b23dc1d2695ab2966a22f47a161f861fe79cbb877be7324b61d04caf0fbb4fd16f0b1bf76158b58e043bc28975f110ef2eb5579759751b7628e308988c62dc619de5c4ac2c27159c4a3298c9221ded95ac01a72dc6ff08134a93b38655434c464d27f00e013a60a17b0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000113cb477c29c1040fd9a4f7e0d9e33db9c87db963e01d54d7bbdffd67b722ae6c213f6d2332583d96f95059ad3c5b564339a9e66ac0b6d92ccdd258b1fdb2ad7124e8946fcf8f435cb8a645ce4f37c98d2cd053c207e687cac7400c356e0571b825c6740a332ea7ed1fb98edb5c92d5703c34fb26743efecf994f79736383b27311905319edd779f8b931099aa2985b82c446ce41bf0beb5395cfe6023480c4bf273d13855397de049c0720c3c3d0296ce349af76f094462a70e51b48007708bd2b5e332781f9c0075c22c93e70b84f8da901243952a65e5e92a30e94c276fb2b3dbb94e76b995358ce1cc59eb843ca9e8c22f43d62b01fcee36c807bfef1086d2df77232fdce50f12a20205091bcafb74a0b5e06e8dba0fd3f384711abe02ae12ea7203c468885f86cfa32c10a2a3800bbc06f194ff76841e998d1fcf4e806fc349febbd4ae40eb69636ece7a5f4bdcae288e140b482f4f96d2caf9aadc22a5e3da89f7d2246d9df5e86078f525eb5600c34a13b412c42cea11d10668e30dd140f00c11d765a7e4e2fc32f6c46364a4e466b67f511cd2fd7bca97861af69c6ee17c5c6a9276be223c18d4bfabeae7fff93c285e5a8a6fedd6e94cec07e053e74087a90f3ba0afc6b4c2004a0b6c32022329480f1c84808be31a3bc8f2d69a39c3aa1a0fab3049de59faa88c94aab23dddfbe2e61a9b69f4eb262848282c1f9391f4d37126dd73fe1e8d8c7be4fddc1c87badfc01835cdd31310c37e0c1bba0353538dbeade74432a3bc87698926e6c518906ce6d61e4d57406bdbdb03d990cea1bb21bbab7170e70c6b99ec5718f37fd9cf67834571ad16b92e9316a65c98474244de44548e8f18f3946613a8e70c802855020c7b23227b00643ff829a367b8d0a7a8aa593734833e1a019db37cc17f3cc43270da0ec24e2ac339539fcef96423585755a6c8cb7cc1e5fe624c833e80c560371ee6860d438ecf99bb3031069bf3464b53be14069036820814816fc77c2fd4fc344249cb86d5d01ea21f0adef4a0b9b4ac41ebf96fc97df7eb7e903883d24f6d5b7e4b040ae3c2b46cb0f5210b705f78a2b66420d1108a2866872ee56ce69746c6491dbb5b46c54cef5b365ac6e3a0875d499bdf2eef75d79978d11a931b8d22c97777143672cd861f74c9a53931bb21bbab7170e70c6b99ec5718f37fd9cf67834571ad16b92e9316a65c98474244de44548e8f18f3946613a8e70c802855020c7b23227b00643ff829a367b8d0a7a8aa593734833e1a019db37cc17f3cc43270da0ec24e2ac339539fcef96423585755a6c8cb7cc1e5fe624c833e80c560371ee6860d438ecf99bb3031069bf3464b53be14069036820814816fc77c2fd4fc344249cb86d5d01ea21f0adef4a0b9b4ac41ebf96fc97df7eb7e903883d24f6d5b7e4b040ae3c2b46cb0f5210b705f78a2b66420d1108a2866872ee56ce69746c6491dbb5b46c54cef5b365ac6e3a0875d499bdf2eef75d79978d11a931b8d22c97777143672cd861f74c9a5393150a02f1be7f1ef6e5d539f61024406f5775519521d6cc7c9950525f5fa4aada04ed39a11be374a6c61c5e56b99bfcc18cf3844790a53d75fbd6e84fb2bdf5731945226cd708e68d1e2209d7f1c11660f0b044e6400af76672c727c8f2c63f4c22fd51b03acc233e68925827f0ef75cc95274a555a5a6f94cde32383b3c2300e00def3c798623305e3bde40c330bc212eb2a37209efcc5dd23bc28e0fddc535c10ba3b497946b8354436b36b51cf41e4ead546ea6e0434895375ccb17bec7e611d25875cfeffa995e2c2b704c8971c6cd81281a2f1984477d9436a4530e3889521105c4f28bd3a2816b11eea3c5cd90c6a1890511df03194101972448a05f5bf1d8394ba2e4adcaeaef721748559b459a82e03b51fc3c9ede424d047bd7ed5f20c42ba95e57d85e81e62e43ece358248321ec92aa5f4b75b78640b9689961a6a120ee7fe99c32d94c83d26a1badd411caa3c8492d596baae97f71cc73a3063390347d2f56610b3dad9030ed5e74d36adc8320338a651d1d837bdbe6b990fff2c11b0daa16a77fa7bfc08bc31fe1aa92fda210280a76b35388d15b6c4ad9515dc181574aea950681ad151498155748d72002bca5f1e4d4c10cf732519997fda81056e200b84fa7493dda5d7f32fe526e7a802395601767ddd14b1ab2e23fefb723a91dff47b058b6c225a280cd01ad9187a445fa607d67b3e847b85bedc0104900918ce0b24768cd6060f447dc95d4436cb0f2ff0e466dc641c36045749faf77d22a9272f3e71df56bc77339b55283352b2f3407b845a1878c2e6d25c721a31fb081b2a1939670d96fc5dce2740255e35cc0b254f0695721f62b244543d87fdd708e1a236dae6abb3bc3f08a690884325a66b4c6232ce73b1fcd9b8f4b572963e1573f2adced93c033a5ce5968b69cc12ffa221ee9e4cb855d527f37ccfba127a3cff04bb2dcf2ae6f9d6c52e85200ea6b6e4e9f75fc11003f305086c45ac93bd000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010bb243d747d82a6ece3ef447c99bd34432cae6cdc0fec5ee9e3cb199c1b34ce42b8fde2f219231c0b45075b2f9aad9b55acf42d3b66b8b20705a824031b73aab2fe9103f37389585a5ba695d6aaf337f4f283ef3d831154759cfa6f0d558250a3b717688d578a902b8b957b522f3d28d355a9e047338ba6b632872fdb8f0a9b73a445a3a9396ab18618eb4de3eb46ac3f937bc84f2535a9b2e94e001f5f491d81f1f2e6fb706ea3164f1484d224f85d527e6a2e379e9c3d3178dcbb44528e8e6344ae9c649c7f90362305ccefaa608272d5084788c3289021389e374f35c90ff134fd4bf3f483c5aa14a51bc6355f581977f6f06983e0eca9342512508aeb6e128e6be26d952675fcd09d7d531bb8688d4782fdda5eb02e57b610be8ee39a02c2182f54f9d523557fe779be87175ca718deddcc17f96e1e245f64f34f897f4d91f97b6562da9c0108f41b0034bed6f837470429c97c8187ace675e562c9f2b282807db3179dbf966358522bfc5cdb4e9a88295ff92b73fa9d9392a84e0b11a7c30501b0ab7477a3c6efbf6bccd65b75a3d6d5f73a4537cebec83fdf2b608471336766cbbe67ee635825484aa377f12f3bf0727631f6daae4d7e77a1c7766be500e2de25eade73631cd63e67f1ad82d7dd6ea2725e7a2449482eaf37da35ac6b1138f744a42be61669e0b5f3793df67d93994562c35296f89c5dc7ab24de5b77216815155984d47bfb1a19158d9b3fdceee33f5b038f17d38e4f88d126575d50c3a25e023d95e5b12cea4ec763a9e0935d99a028337f615cf4065bc18f910fb0c392fe0c521b0d3013cae90a1574708afd01f83082845c7177f28a9c547495b2606d01f3ade4f2cfec3516f5ea8b8f750522715f3e10732041a048727b8b6a4db1def63d9a8741f062f68d326b4632b6e87832b38a428ff0717168d26646ec7ba22109c26578be0f9d0972cd94b9cd4919ac36dc36523fa148216a3c69b91384715acf3404a449b1eed0c1fc185efd9286102a623223308ec41165fe5f629e6a02a530cbfb5bb64e112f3e03e7a1026d7c143f2d8e719f02f5816d10709d619612c60c0417357079aa13c9ec79daf3dc9c2c6a5b3a1b23381ac42ae90ced1811f139f3fbe8ca8f8655ec361386250c2365f7ff348679ac599ecea825c312e7ee2392fe0c521b0d3013cae90a1574708afd01f83082845c7177f28a9c547495b2606d01f3ade4f2cfec3516f5ea8b8f750522715f3e10732041a048727b8b6a4db1def63d9a8741f062f68d326b4632b6e87832b38a428ff0717168d26646ec7ba22109c26578be0f9d0972cd94b9cd4919ac36dc36523fa148216a3c69b91384715acf3404a449b1eed0c1fc185efd9286102a623223308ec41165fe5f629e6a02a530cbfb5bb64e112f3e03e7a1026d7c143f2d8e719f02f5816d10709d619612c60c0417357079aa13c9ec79daf3dc9c2c6a5b3a1b23381ac42ae90ced1811f139f3fbe8ca8f8655ec361386250c2365f7ff348679ac599ecea825c312e7ee2059566e6dec5172aa9a3d8a9347fd6550f6f1691a37f82eac53d94a6e7613a4813923ea18517c0e7c6fac4d117b9917c9f0728c9ec39dbb77de85b5c17f2c7f417b29c747f0d5edefba72ec64e6b377f9a78b5c73523d49800dbcbdc49d9c3dd056c76fcd7d4129f8a9b55f4dd156d58979175a140dd320ee4503c47ce211f021982e98a15de4a381e3a7d551ccf9cc68ad84958227ac4e27f238298c029b41023021aac0542e01e3d3987e97d79f39cd27f941f636cc0d00835459d20b09ad3050677f3fbf312253e0cb6aa64722ca4ba97811b221105e7eb47c412fdf2550c2f062553ca50a1e0feff84673d50ce7cbfedc241de7a9bcced6f1e540a9074bf0c8e75409cfea4dee8d5ef0552162e0956ef2a6901d74c5dc30d8531f7fd750d3d2ad1c5a84311902048eec5362fc54d0d1d9ccb0b08409046fae480f0b3a5db2a3ff9f143391cb0057e30eb6ab8f39014b675f1106fe80eaad99188c8d021de3525f6d381069c27cfb34f98040ff7fb38ddd51a08c3901890805f76000f4a2822b7fca4a22d89f65ab4f8907d14f22b785ecca330a9a198d313d069cec501dd27014a61a3142c78ae69e53a0b31012aebadfa90dc35eb5536f4994919ec190c258d2adef9ea78663a6c09cb46e52cde8d87c8d42eee5a2425461cd5de115c031a72d52106158799c593f634b91ad32194bed027da5e9ef773e7141721eea3ff3b313325997970a4fbd920417fb2e85d6980b4b41c8dbda7f6e62e1f8a93f36907645017cee91ceb048c6b7dd0663d0f3d1ec509d843175c0552e7fc9c610f0e0519dc6b0e7f2e4beac8a740a1a5135f489d52917b6994c99bdb3289d52b8d1f00499aea413f517375aca5dbd4c4014e2fbf809faaf1afb4a73ce650dccc2396263f29ede34d1824ca1254cd9412bb9e16afc60c8e1719fdef1cfab112d167172adabf5f3658e02e97228d3ca7d989eca81fabbb129a9aa70f2aee51e9ebf0c000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001226f0ca104f3a04470668785e25e247904178728439101eba606dbbd36dd3dd03f1d95fdd6a67f2508831bffa80324fdae75523081aa27eaad2666f758eeb0173971ae629015508e8071e0f43ea4016956a2cc091d6c0896ef9d81a4a9824d8101e12200dad3a5658431ff4a87030f8fe692a7203b2c9f8e6dffb84ee494ec4731e5e65925cec12e1f9682e72f68778bdebc0853d9ff7bc86cb6c0c7cc65479104fea01c56e20f894681ec402634d9607b7d990c1a08554994114cc204bf477d002cbfd5e527ec0d58119deaec31fe477fdf1cb1808e51af61dc749b7c46e16a2532ec129ad6a6dbfdd5ec3b13898963aa7d5b9d4352c3cdfe5853d6c481eca81392df8d8496607c030f07d3a343e774f147f0ac98f43590f51c0598d9475c8d266cf9cbd547b7fc7f21964e24e90d83ca7b4611c6e877f05736153a2899b32a15d8769fae0dccce8cfa9179c2411bafc0fcbe4c427f58dcafe0f4a48c8e0f781dfc6f10a0ec8f201d555ff292bc76ca17b925f5605d517d1a6903276d261ea70287360dbe1f8b093ab01d96d5b9c054bb0d9f88198f83779e8568bcd2cda94b243f51b8dfa6d568b6a05dd02f2b09f91f204e52a0e4ab3d8cb8de655aa15c173159b7ddb4f41a70915da03d00c7e13af292923fd2af1e46dd517977632805910677ea1363e8381a22dbc9afd8da7acb7fbec031bc32d3f78c4464a2f9437eda1cf80def7d3d6c2f1c3af049f38c8238dd20fe0407c970a432d1a19184effdb610ec8b2f9976102b688c1bffcb6a0794cbe3ff3ed31f490474ccb1c9de06b8ab200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af2150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f3981eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c69269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f6196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af2150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f3981eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c69269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f6196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b3fa261b1844f304c485490d5e999b2633afba4d7b5b76ec065c640ecb11d4f893335039be7eedfac2e3ac623e673589a8852baecd7723f5e37deadf71fb908e20d2178e1ae70947695e9f02849f81419e46b869c9b3b2b3e23e1146ac456939012de871e518f6b896a160fd7b607ebe62cb7c5e1696b514fa8b5840bbba96c711ab1bc182a8f50046511b7ab409a1d69cb3ab17ebd01f77d737b60b7fe18ccc60440930f7560351b151572858db88b4c489a2f492f8897491262236693d3a6fc18e807a31e61baec745b3680a23a69b641364929583aeb16689e9bcadb56009c0276de9a6932a003245ef15aef58d798be95c6f3cac18ae207855e797110dad2305d9e4e7bb0cfb3b7ab6f2a16664d9d00ffe6e15a8f452fe648d4b20ee2b0793ccafc6418112053d1c539dc198ca765b3a8d0cc38d47492143067a7a046f7200ab1bc182a8f50046511b7ab409a1d69c2a90b3fbaaeb9368d30147cbe18ccc63440930f7560351b151572858db88b4c624f22063682521dc544081853d3a6fd333c256ccd403b3d21c17f01cc6e398325260683c1a75838a8b30c828a8c1cea39ec7545c681b4ca67af2a046384bb7f8f82b129d1bc618951c62fd7249d8ab036712908b52f1ae94ffc4525b2e1921d93c3ceb3921fdcc22dafd5c7ea4525cb098ed6f74ad0e516b003bada4d1e6de28e82ca48772d1c596b7d5b2515bada371476f7f0418a188bce33c767b16ab51566c5ed0f628ae7c761fd6d53dc1e5b750273da48d4c40fdf42e6ca331ce3eeaa5ab2c5e8a983e28c633542b8196eb40e24c7a57b2b28bd2e7ba204f74ab73408fe9654e42597177a621e21d5999aa200396cee24d19d09c1a957aad59d0893f3a26bc4bd66b95165cac9c6d5e4a1ee6f287885421c27eebf4878809e3469d7653ef6fdcaf17c216dd4fd1e3d4f61309a3d2824b7f487a090c293e280409afe5274e1b949aeed1535201d3ef6255eacc9000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012c3e8dc90e5342a941518ccd748aba2b4721a98e8a6a3d135d3b32f7aa50c55225b82e34be1132b5e2e8e694199064f6d13b8f2dbea904c3a94b1c6f2bf29a1e34ad5841080c7021e845ec17c1410ad895a13fb1b85ef63231de016b8ca2260323d89b59200134d960e361c06fe566a998e9c2e080f6ed222d4d30ebe8834dd10dc3cb6fa6510f504dcde7fa2ace6ea83e79525ebacbf94cf8864edf66a2482e38207533988378f679e55c76ac531f86e1e07d7bc0b142b710ef906739f38988016caf89250b1edfaba525b82b0e85897f9e296f4aae77ce4427eb7a835e50e707e58d36e0b586dfed7177b836ec08c15ddfc90138387973a153ccaa998756a9014e31619a0e6c13186a1cb7f70d6761f92d8af6d80ebf037292c4bec136e651364515bf1b3e22cfe943328e6ef713ea84a4feab7ac772ad6586dc1418f9b94a05902990fbbe08c99d1b9ee8adee4d3263834deeb2202aad4415d1c4de138b531e3f86c95ef7571b670f3cb1bee32d60dfaa952fb13d9480d0490563d3a6f7e729a7dc71d54b9700bba9efc617392a603a0e63983f1a3a87973fffdc04fc9e873d1eab54c87ac97135a68ba0edab9fedc266233e84a6ed492d2b7833287266dc3b132dfe0ff0f34aa4463292ce3db728be35a111aaa9323aa74cb7badcb068302721ccb3b4b684a4b6eaedf1200d4ba1556005f30f9ebc1dd920cf09cc466ebd0ab629e7499f39e0a1a91c0e7ae4e1498165b479c34373b90ddd9146e46620e83273e588b1d61a4b9fd2c8e338c7cdd959fb9cf96c3c2c43fe7d977eff3e4f370070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae02347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f3dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc620b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de6371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a8708e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae02347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f3dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc620b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de6371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a8708e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000120a5727f10920d2ed355f92027d470712a1592a769897f168a0b6e68c604707b00000000000000000000000000000000000000000000000000000000000000012d06401b3a66e4139b297cd4b3d3a3663681db797975cfc270f133a14f3306dc391736e54b79e7ae472277a7e2d3190f3a5483aa80d567f6a32e5ce4848100e80111c994035bfd29e7a8f5c2f8457e42769f8f05eaafe12affb1e57f27cb2a990daa56e58e5e7603b06cd0f41ea8dd44c0e2998531442abb154cc64a83496986149889988cb4b3c50630ac997daf23de052a4806d82e3bf34ebb31d8413d5e440c623be64bd4db3e3144f3bbb389552b9c9e0d86eaf3c22b4cbe70c59d2e764304fbc593e0d5b8254c8c2b04c056d32c1a129c12dca00b63fb264c633191458d32ae14b9ed91eee60165cba416fc03259542ec6e2bb9b21e5f9b3a870c7678920ee9be70ba2ca6c2c724a85da547738462ab7bf780e18be5eb96ac9012d08c2237956e8acd460812feb11340198521d8a5543ea7c34558ad1dec0d835fb2c6ff293db7f6aa6d664a21db98bdf0ea6ae56a853c204d17e87d8bba1b4642d13b983d88cfcff358fa27cf74e2a913fa5f6891ef4ab676a93f5338b15cc8ea9dc9cb00000000000000000000000000000000000000000000000000000000000000013c9764cc45452ec3f97fa7b4e9f4e8cffc6cc126e22a4f2fc6648f2674a66e430a2aa147f25394c707ece2babf233e0a1301a729fd3d5e338d4650c71b6e4ce2000000000000000000000000000000000000000000000000000000000000000009a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22309a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a223305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe2622cbee39cde689d2d8a050b771f7a2c3b1ba52e62b09b30c8e93c520f6ada1196338b4638e14cfd60159eba3a4b37353ad4a5d4d9e176d1f2d58b8452241f00440361a1ec224d7d8d5ea28a83a7d57f8b8b730acf476f957ec35112a3fa61608e7ffa7a6007171ca846ab5c221a555d35b9aacf9f95610076d0f3575dc681c197c72c4ccb103b028475e963f041edf0457e1b288d586454f04237818425ece26bbfed82d1828baee8720e0a208b1b44b74061ef724dd8e083522442f783e5d022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c12334659429b892780000594c3d097f40db55bed1a591791fa10890d107b17803b6eeac5e4cb11c87a80550d4b74dfa3eb8d23386b65868e6be730962988072429830108cb5a02fb92b96cc16107c2713d5b965caf18aaee85332c9caa0d94d41d6a5055453de0b1f5ee004b172161a4672b9d1ed3c3d60b5965531316d1491424c267bffeb4a92a1f9ff71e8aab92bd8fcca320299f15f903a95dc267de98681b3d9840014b56d5e06008e175546d429279f5dbdfade3229583d32a9821679a1e22508bdcc8ca104f46de0fc9d1737554ba08bb071822942663bb0cee9e84140c8ac5202115762157a1529827c2e00f7e960fdd5311af7e4fa55c1811548213126bf232a1ed417db4317b25c23dae63d7f5b621606c989ec93c31394b0cf7661f2fffc157e62556b93d11ea232d6fb8ae29c6e24675395bd6336c4d98a302ea348c0a3028a70a8ee6a031c09267a1b71d37f74bcdf37f88cc5a55928e3d47b615b962b4a86d3a12d56308edfd4d1cea050d376cb3e98c12a29fdc61ef0cfe9f000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010d13031eb4f5f795c9b353451a6284d7dd90cbc4e4b373418d51c7a6b516ed9a315e4caab8ebb41e0daa5a00575304a889ab3933e8630c6370fc24a263f488110053cccd31476d61af5cf3f31f752a2e2710d3876dccc1f008af99209bb1f1991ff865e458e19a8c0c68a4c72806ddcc481cb33585f9f77dd01cbf01bd26b72917a8dd415857a1c6097d1bab09b35da370b2a3142b13c2db5ff678d1fc120c7f36bd7f84207e30f93e5eae35d528db09d688f4cacb5703ffee96c90c42557b4732af05954e7fa5052e0107827c23d68973e5bda58174797aa2b551c3d77bce3e2a6358ca17aff0ea6e556b222e40ce3c196c1489c4644bb8cd3be1c9901744cf2d99274bd540dcda0bda4a5d3660fa423a974e1511483684e99e7bb955294919347fa15e01ef8349a2ea3064372ce8ba8d00ea49ad265050be1e96883bb78df705f2b8c8ede0505932e1b80cb94f6c92f87573c052c85a102ae13d077247d1d33a9a4ac116888429f960d2b1ed7e4d6b5ad2eae9c25d7ef3f7d60b4d513efc58141e03e35207d5e893fa3bdc8175f398f0f7e29ff7939b82e8b37b7b823f7d7e12a883e34bbe8a895d563f8a836ed6b4e9360b3ac2e09332428acba6ab2f87e41b3ee8a57eb508a93720665d4071da2fbb76099d61db76ed824b33ffabe865840f13b6704ad18e0a8406211f97d2adadd47ce1c96748e725c67107e7fbfd8a131fb2aa845a14f621b4975ade8002b9c112a66f381b0597550971caddaf464fde03245003a6f85958f4735b8917e9e4c810b279843567449aad2920d2a2214a413eba218389931c1085d5c0807c3fe861039b4d0cde9c1394c0d3cc22092a60340145de7c766ce3ef7a2a3f7f83c0179f1eab4bef2ab0e586d85964caf6d59fcd39a2a791afdf8c529d2cc2826d3f89e488ee1d5033d87d795f6e38f62dd3e100065d586e502073ad62d33d7d92c0761b99587babd5747ba239bef7f6d22c1f01202d45d86f5dbd9d11dfcc8c223db176238c2ea0de068ef07872591ae52364fc1fd2ba2790a24262ee203373ddc24e89feba6a5b2b466a2b20bad7d21adc9b0520e25d3a2cd4b411595efebcab34774e6d2fb72c4386d87b27e15bac79b0f8ea1f1da2c5d32b4beea6a1014354cb88b1b516e1cfc5c620a0714bd540864f07173eba218389931c1085d5c0807c3fe861039b4d0cde9c1394c0d3cc22092a60340145de7c766ce3ef7a2a3f7f83c0179f1eab4bef2ab0e586d85964caf6d59fcd39a2a791afdf8c529d2cc2826d3f89e488ee1d5033d87d795f6e38f62dd3e100065d586e502073ad62d33d7d92c0761b99587babd5747ba239bef7f6d22c1f01202d45d86f5dbd9d11dfcc8c223db176238c2ea0de068ef07872591ae52364fc1fd2ba2790a24262ee203373ddc24e89feba6a5b2b466a2b20bad7d21adc9b0520e25d3a2cd4b411595efebcab34774e6d2fb72c4386d87b27e15bac79b0f8ea1f1da2c5d32b4beea6a1014354cb88b1b516e1cfc5c620a0714bd540864f07171040c9277dc8c6351fd039b70656118046072e337c872d37814fdf794ba768ca31870947f95bdea9c3c192cb3bbf7effe29d0fb7bf7284c1d7e0d66acf118ab00acb6a404135136d1257fddd30a618cd231dcdf8bb21b7ee6788bc2a9fab0c8a23395a400a684d94c6d78fbb9be15c3f755ec66343bd022f90dd2d33a0d5bb6d23a3be95ea9f18d2ba1bdc9e20d742dd3d63c827f198de024754695b2fac8ef320aff83835a5b4ccf729e3b4b253bd1f7d7324fa0ce86a7dfa7275830f1bf1643aea6a4f9e6c98e1713851647dc952661f58279d7f9aa9ecb65c91af23d535b80f2d75830767eebf3d2ec7ab5e591790e76cd7fa3992cd0c5af72eed276f9b0d1daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff407b3c99b61e73f8c0eddc62acc9a1fce8d7809e368c4ace8b061ea854a2e59950e9b28b272c02d11c9386c8f3a096b2194e24ee296dde17998ff0afab4195ecc24f3cc984102265dcdd7c86bc903d5b2b9219ccfd1a413f5b054954914ad8aae2b3f9c77fc3bd3c17566dd79285f24c0ec915bdd0f6a6b45c99c5e3b9018b9e6326acadac315de4e3cd771aa590077c12963d1d0109dd0b585fab99cc93d4abb0d9535253cea21b1c3288e55a6ff883ef8e2c72bf8af28661332775036c2b5473da2a966592536649a711dff3bf0f4a74cc16ad1468aaed09b587ee85389e9c00366d727d9aaca990ea776cb40f747b75dcdca7f4a4ed488981fa6800244c6c404e8dc5b86627028ee830fa2a491533bf63ded5c31b1fd784bc6cfe9059dfc09267ca9f3f1945e342c34313d36bf9ef44b73028df942f4e884208fbe278e376d238710505a577658d68dfa8ace1d6b145ebeac700fe356c93f241d5a50fef1be26ebd1db0b50273aecb094013254112043d1fdff1322837eb6f0ff3f9f60505900000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001365e35b2285db7a3b4bb01ba336d515e8f0a2b46652a1900d40f53b300b79b110a4b695336fadffb16221ad56b88e309067aabfea983e419540e87388a687bb10ddbb77e73eb884a924bed63c47cb5789ac9f481f6090483dccfb7cdc075d1c61a681287f0c2239678da0a86fc0e5f21979cc1997ace336bf82a325897914ca62abc9d3523b121867aaaae3dece77b60da4c8c4a66f74a3a1ca15020a160346c2b5f384106e22c1ae0e22d0568f5c72c8537845943df75acad4ee959c08c1301389d2b34774646c1bf6a37c919794404f60d5300c02fd2ddc7c9ae96f0446cab07fd0ddc9e8b90becc6269c2d3c35e890ea7c59c46bf11da87800bf0e4299a6c25fb45e63515e7116b768671088b6af7ec7db33b4a5b6a8316aeca6773fe1cb230f72ec3d251ad975ffeb2ed3fedfbe5d7370b854a632341e531bed3f7364609272bad86d83b6db2a2a2ba9e210f957bf525e12b6f996b4e3e0cc17fa944a95c06dbb13b198cd694977a105e7a27430076094f4914d7b1611ddfeabac5ed80311c343804c8d526091accc94dea8aae47476dbd14c18793d25c10aef75ed549190a924fc1d4f13a68d683b2191a5a1c0692c030c5f8ec9ae2cf2d982ace99bc49207ccdf9bf29ee99bd623a4e3d76d0860d6fab12c44c844e962f1ed2d8069bf43409777425b01f9ded89477e0f80a19fefa115aae8210baf99b782a50300e03f056af1c011043449180435166dca3417109c14d4dbbf9c5964e742bb5bcea5ab2589aa8de58cc8c40c56b71d5acd3ac1fe3d01c51aea3b697d79ca9bfca144fc1a0c5110f2938a65d9acb749701ff358e6230b2fb183e128dd9a1498049990cb25f3aeef0d6c759a265348b68fe00ca73c238dcc57c917f2bb931c54fb666f36023d9554bce1b3fd405f946f309fc0bc3a2205f664f9739521a8051e16ffd3f53dc26aab431e4c02bfa06b90cf603f43e8249305a453858677852bcee9002c0c0b33eaa7b06883f241dde62bf31ec3ad22aa1dcff8df41e9a848199672ff23c934cc15584f977c0dbe2219d40ce13c52ff9c7b2c106db731f0e517568d00dc3838039546720a93bb49557edbbf99d261ad52950fdc5c499049687ff03efbb2ed07fc6ab98df56c44b6aa812440662d9e74f403ec2cf0af8b4fc4b0fcc1044d141a0c5110f2938a65d9acb749701ff358e6230b2fb183e128dd9a1498049990cb25f3aeef0d6c759a265348b68fe00ca73c238dcc57c917f2bb931c54fb666f36023d9554bce1b3fd405f946f309fc0bc3a2205f664f9739521a8051e16ffd3f53dc26aab431e4c02bfa06b90cf603f43e8249305a453858677852bcee9002c0c0b33eaa7b06883f241dde62bf31ec3ad22aa1dcff8df41e9a848199672ff23c934cc15584f977c0dbe2219d40ce13c52ff9c7b2c106db731f0e517568d00dc3838039546720a93bb49557edbbf99d261ad52950fdc5c499049687ff03efbb2ed07fc6ab98df56c44b6aa812440662d9e74f403ec2cf0af8b4fc4b0fcc1044d142bf93842bf2d60223b1a98080fb866156c1f2eaba5c51d58b80b9996a54f20521f58081e26b71aa87374afb67ad656bae9ece3c89aa1828ad674a7ce51fc0803092d97c34e376b63e44ee2fdb8edc57dd52d967f44e9ff11340a69a0945aacef2c797c664f8e13589e5ead5f295b5206dee5742872158b36e1ef11847e977ecb1fc6a3ef7a30a81709d7aa355992354fd93d1e3d53a2b055a2af3bfc2322aee703f684053292e56a23cc9aa6cf6b481f2ec93b24a323cd8de4386d69771a4f5c3b6083e83a3101c8fe49cbe38339cea235a1335c2cfe1fdcbe3c2fb529bb46c71498bf37af7cfc63f445cf665c6222ca0d8e409dd2ef75ba85c41d973a7f3e993756d5b8b269cb43b4e1645cd9b858f5a91fbb368bec1f0b8c14c58ce7233b7207b0d5bcc9ec3b3519e1c387b96fd2b5b394f2a19894a21b9af910b00e9f708306cf81ca6ad3fdf4972e1d738dd85ec054785bab7d8bdbe07aefc38d83be276c27469200a42a10d013c8970bb8dc072a21c18c0acb8810d68f2b9ba0038cab1f0ad92ff9f29b3479e09684fa3759d46ce0f9d3d11e9ddcb1ad172db5c65632c1342e7b7b89bad1feee2ca2ea5bce573e7bbada0705e2e47579f6a8872f6c793503285a3d28aef944c6b4c1727dea01b72d64e12f86093a96121e1d05b7b6c23e3cd7a5c2d75106bb394b3e8d8215fe48f4e1b7cc8343be85870f13e748493dc43655823159d8d1ce380dbd1c14bf6d3336008977f7bb5191c9192039afe71be30d42cb5ae6191885acbe1534d3054fc02f2fac439064302b3ef74add2df34a6a2d8fd9f1ce454c0635d443f57e8ec8b11a2132606bfc6f2b71ff02b4154415d922e3ded4e925d3b6f2c652e5c0181a77d8c8580fc6740713560ec817db6bd5401885e438654ba2be937c8a0fba77003ffc99fa15f2ee20babfee08fd127b22ce39453ff00865a201f8f3c7b3f07840e8abc542eba74a4f0bac3dec698e409876000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013ec029fdf22c156bbbcb574a1274ef6fec62ed9759180a9760b42d6ed227175a36bf9ba887e7e716de8aadebecb41f0c98aad7ee225d8be41e604593202bd176150874745b4aa38324c37d831498279c41b729880c4a59c6b7e4ea357940f7600dda66445e116dc5085aaca2e11b5a2ac3459ef85f8c0921555fbe7ed785b20633404ac6aeeb2cafe7d94b6bdbe89a796bb6d71c0596e3b6806732931ca12a880e9d360772d42ea0bcda299ddcc4a17777c13b181c458d157bbca439f0a31f7b2307cc1081202fd1322c691bf1b853d06f9d93a0350fe130684888592fd6c1400c18faa47c67f30afe155297b7db1799eb459967502cbd8760eb0c4be962a33514a20dfdab36aff9d433a6946be717198deab445d801e44734e8d14f3f0dc6ba2cf6e40f706678e0839718f1a1f08b308cbf1b0df7c836c11a5ab0adcb1d6136022ba45c10d521807b0d0172762971c05ecfc9a33a7f47a7f7d75d0b88d5e33917a2166c9f76981983d321d00a57585367d1ba4b5069cd453de12860345eb73a2f01f58756d90814e2c9635a7dc3e1bc6a7d210d54fb8e7bc3ceabeb10e9770637c4923f46ed585d0e87180c8720e89191f765c96ec59955009ccc241c858e5d1b30e5564a36846ed2dce437914476482c27f9c46d188ccdaa6cafd7049705cd190ca69e235e65b127cb8c8a69337e89eb0f0e24cfd225968a719eda068f4f0d30e11768b612d78b263d0082b87976deec17b3c199565f1398537c79cf3e69f339b6fd6b15755f3603f66b6ba17d51dbb083e0985302f855705e36b42b22a60f307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab21307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab2105f957432b4d66c307dd8d7a9f77a65b49b53376dadd9b2290ea826fd6568a542e26f67ab7b96cbd66298cf342505f2dedb559fa4be2273dd01899d6c3abb1712deb307a3d1a7844d20e88da87b5ae0239b5c2e49342701737b9c664a4fd6d6924100b05774826b954c1e98cabc2dcf1725adab78078c802023ab2171a81caa30ec70c44d876c57b82bb950c382934e3ec0009a81f04f2b33ea650419990bbc82ce53ced07446ce4cbfeaaa0f4abcb1f9db63b2df513b703b1ed32ba27a6c3e40fc904ba5d072ee14ffa59026c6d13d5bb675dec29e5aa4d2a4c867015ef710c3a4edb1848cd58bf5e6cc00d6fb556214b5da1ab8f47ccabe7073a2c35555fb91d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f31191ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a1992768519abd8e8951392e968cf4db10f1dd7a0da26aaa1a62f0c6c393bc852101e972d11acba7992d63a5c908d275ef0ce68952f83c017a99d2f00c87c7f500c1b7842979820f82613e9aad8d2aba29edba2a09b2cede1d088e81884ac08452dc8fe7fd0fe6c894514898011ecc3e0e47cfd46463f02f7600715ec21d283ef2f77047d0e1c7a4879e578c0ea7cf20369732ea22bed5d313918c5c4a8acad2c1088fb82f1e385b7861a873f15830dfcb8d36a59dd5f9bea60146b28575352d6375bccb18b0fd92243402133e92cf0ae0d144355637174f70ad33e0d7adcf1120837b5db930569aeb0a58cb69d9c1eebfa543ed590f4dbd7ab467955c697efe830b3d249d20407599973ab2e7c9ff70698d567d586551ce814de9c4359c055af2765fdca285db5a5038441b2508a08907f337dd00cc10fe01f77008c1ad1321b09458a5a2ac03e280e2439c5b52a340fe2887a766dff6fac915be5db095269c234f1f8b99d07fc6a6a107411613145e7285086ab7d2a116333c2013ec858bed40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000127507c82b06708bb6a9717d68439661eb4783bbd278abe13348eb5e1d87eeb9b3af11802d4c3837bdcb42365e24bc34e014a5f8110f1719544ce832d399511a40d9e5dd8248e4266b4e822938b414bfb2a8f684de8bf993b35877109eae6400c098b6fc0b1ef54f17ab889eefa11d3702faf6b19abec6d62ba7e8fa028d0e8782dea5c3e8563ff37074343911cfa9a57f0a7c4edd5e61abc5f430f81b7d9b8a33d685c55a3ec64c11340e25784dcc4a5cdf312cf9356a34a397781ac7793a1b515536a308bc5617760a6be85c893b81dc184efd7ed3392bc817a829b66ba3af60e7d7f1871bccbd38adad9bdadaaa2ec5813e91f142083bc9a7b54aeba8986a333e732d4976d0e6f9981ea45c85072094f25e431b929f78d66cabe58d30663281778d40a5d27bd0ac8680106777c8b671e20f6bd5a827c23527c4fc0fddad0960b3d1c73fd9bbd279a6f5515114d97070f2db3a622f31e9d65b9cc47e4c2e31937118ed393c14ba8d7aaddc9779b355a9ca54b6681c686c34115e1051eb4c48134522716ac22c0c7bfad9c64448949991bffac8ed9769c355155f04d2d0a9e34327460aff1a39faa31a2df02c05b80b4e074da47ea4a8b9b731587c20064672f14934a8d7f27476bde835989813f84c5d7c237f3ccb54d86daa5b3870231befb1b7bc406ce5b8be9d3dbe4400160ddb35f7580140b7f1c6e3c435c76f1e9b30b0279772332f0b6115d410fd6107e5b29d47fe25292d3c58357e43da6507da8cc1081000b6e275c9bb5d2ef5cfa5f96c0ac57d06ba2a66b9217c75859a41550e52668f72cd19bb61bafadc0b19db3eb2763baec2ffdc90835dbcf92ed0874b005199708d32e6449e450523f4e624c14d8be8baccc0b83f0e5bd5d9dfff78b4ffc000cd3e0180a8e8a6e64c378148397c48bd2d1fbd9063dba7f864bda2a4770163ff32c1fe7f57175919b3c87eb7c683b9673c7003046bb6119a6e512d5b88feb004023607834c8b427f7d1586691f6d6bb1e19eb3d1f34a47d9f7b42d365306e3fbfdc9f87cb374bd8082ea7996e092967287f10cc2dc4771b8db5aa2c9acf930140b0e25907eb84c7d716ba00d9d231a7968198319c0736741d684e20f9f2263ebf4f1da6f8147b3828e945ff262dce7ab01763d7b0f1e5250fc89edf060ddb2668f72cd19bb61bafadc0b19db3eb2763baec2ffdc90835dbcf92ed0874b005199708d32e6449e450523f4e624c14d8be8baccc0b83f0e5bd5d9dfff78b4ffc000cd3e0180a8e8a6e64c378148397c48bd2d1fbd9063dba7f864bda2a4770163ff32c1fe7f57175919b3c87eb7c683b9673c7003046bb6119a6e512d5b88feb004023607834c8b427f7d1586691f6d6bb1e19eb3d1f34a47d9f7b42d365306e3fbfdc9f87cb374bd8082ea7996e092967287f10cc2dc4771b8db5aa2c9acf930140b0e25907eb84c7d716ba00d9d231a7968198319c0736741d684e20f9f2263ebf4f1da6f8147b3828e945ff262dce7ab01763d7b0f1e5250fc89edf060ddb2e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd630724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f61a46bed708c16235cb9c186ca9175c721eb5ae41fb05e0c288f491f8b19f1d502b4085717c45478d689456807af22b83da8f7ea5fa2b9cbe7a5a0446adb462a1018b32a08bd577cb0759e12c12649b35b1950d0243bdc98db464389292a984711e33c15bb7c48e9229bac840ac06e645d5d917c31e7bc20a0d2539cb4b8d780c20f0072591fd810e96d65b79ca90d674ac9a437419480fec57f01490c6a71f533cab6d197f17180e56399a722450928f6d9116af63172aafb8dac171d79684af1b9d5a2a50c6d8a61acdf312b101a31352f3356636139aeb9593bce4d5ce2092004c37cf170d22355a2c252313a00e318136f39a3ea0096dd1ef1c2bb8c26fb53249af9699e9ea525b62fe68f6e1b1c46bcb95f0b45f3551185d73e8421e481c27ee001d24a97247a1813c16a38047c166ea93e4cb42cafcd837ca103cc53473379c5c91db2092bad76b66d01070e525c572a3fe9793aa51dab9cb9432f746dd244d35678cb368209d8eb165b430cc1f30fe1dfde66cf32325f63e695b99496c375024c2c41370857d3f41acfcd0d6f4443bb06458f3a0e408caaf687a34d72808afdb3d3bec8f7a82c0be53032f290bde0ae897b05958379062818485cb28da3334e994848be329d5ab8e5a292ead05fdeb7a21baed02d43ff62c78bb88b9d211582c96f6c0f6a021fc3457eeab27159178f8779b3398a0dad0dcb982ad9c0214c91780fdfbc2b2c10b9fdcfc2c576d053e067361b983fdf2be3fe138423f302b5c85389c581cc650ccaf07df394dbcf0109f155e909eb3e552a63d45af806120f7d5d6ced029b80cab01917100ea9758be41f64d594a4f04f502c98e9b071c254ed3b0d1fc182dc8e9bf21ad88be641d916636653a84a6dda134a1dd04d0100000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100749c73b74ac4976bd02d6f70a1008e8084ff990fd0df4e8a657dfc65dddb643a0e998840ce496eabc79f100c99dd7a36b3fe06836bd61e62fdd300359ce625003d6dd9997dd9ef285cc47995e2058aebd2439ca088612f0150223f8b3a55982a95f277af3e070b6006f640f836ca9e201e17808bc7b1761a26cfb82011093b383bdd02c7bf676223e587d162e271dfe746b4c3cbcb6ff25a342993107cf0df2c3a53e8d6c91cf732593c3bbbef6523aa9d90bef0b0bda7c16411982843dcdc27fd83ed1e7611f168e5e4808a3d6dd5202c4e79e169d430a72d5bab32df1eb32d8c196e33363be156b580a93c5e91900932e1baadf7c8e1e0920f0babfba2ae3d084d7034ad1227c0515704a1624cda790009c14d16634dc56544444f76ce060f5cd3fe7a706ab154287e3c400facd0d5060599b2e487bdd222fc07fa647f5a16b83bfd6c9e824a4fa1d2758898bb56dcd70f14781711e192e197eef444b1250498acc6ac07f7b397c940e31748e20de919eadd7fe85ddf1123f919cc55dcf717ed8e6a93094bdd633bf9df7e13b10dfa63073d0aab521a5bb7948685cb68ad0ed8f95c0abd14948e14818786d1193fdfcae69dafc8dc9acf86b29ba7a39cb538c9a262938c35a3991ad4fff632cb82bc3ab453b7acd40a96ff1eb07728d189260a15b787ce01b3e347d4ebea719d34c43c991a2a5dd772dde50fa94f7452962a66edc96557f35ecb395509e926c38a8471a73e8ae519dc390102ade473e22700d4290506f0be83523d51ca8eb1852537a6a8bc188a87c1bbbb162d307ea003115d66ca497f22362f624a448983cf73313d94e49457c6f8cbfac6bb70a4b1292ea29935b680ddc9d09db5bb767c308cf109041774f53222cd326a318f5b4ed816d301f36f7bab0eeceb7356af930d3fd3ed4f7adc69e9c062b8b0bc333775cc292cfe0c908454f113148ca9506cf2c04e5949812ce30f5b36748030ccc88a35321f09c12d6a574aa09940b16ddf423f015bf46a44c497a6546e42c000154cfb0de0f63ed295a8b55f66bf4e9220bdc120eaa491c488617544beee2cffeab3063a9b30c5e313b47522fe4377255c4b3a9ff7fb1f3bf00aecda9fbaf9006a80e40564cf3a1cec4b8add01bc88daa3b4c5824e9ddccd5cee2ebe8d75f3ff957f1d115d66ca497f22362f624a448983cf73313d94e49457c6f8cbfac6bb70a4b1292ea29935b680ddc9d09db5bb767c308cf109041774f53222cd326a318f5b4ed816d301f36f7bab0eeceb7356af930d3fd3ed4f7adc69e9c062b8b0bc333775cc292cfe0c908454f113148ca9506cf2c04e5949812ce30f5b36748030ccc88a35321f09c12d6a574aa09940b16ddf423f015bf46a44c497a6546e42c000154cfb0de0f63ed295a8b55f66bf4e9220bdc120eaa491c488617544beee2cffeab3063a9b30c5e313b47522fe4377255c4b3a9ff7fb1f3bf00aecda9fbaf9006a80e40564cf3a1cec4b8add01bc88daa3b4c5824e9ddccd5cee2ebe8d75f3ff957f1d004c37cf170d22355a2c252313a00e318136f39a3ea0096dd1ef1c2bb8c26fb51b9d5a2a50c6d8a61acdf312b101a31352f3356636139aeb9593bce4d5ce209235c4f222383df8ba75e56080ea6c3bbe92a6a3621535d756546676d5e78b52b72a7c19e1842800e85905f612572842c62a7869d09b2a8f491c6a78a63a3db0cf1a46bed708c16235cb9c186ca9175c721eb5ae41fb05e0c288f491f8b19f1d502b4085717c45478d689456807af22b83da8f7ea5fa2b9cbe7a5a0446adb462a10c046e23bcd5776c2c8723e0dede967c92c06ae4568f26a370b4f0ffae34a42c16601d9d3215ef76e668e6333240007f97a16cf03fab90f7b0da9ad7b38db7d51de7898ca0b76c5ccf8ea31d9866d81454a22428dfdbb89c3b361d9f92cb085725edd8763b0e9f24ec8bee196162f82280e8709816f727bdb7fdac9abcdb63e01bd1f1779496da00d2f5f998bb7bf7a7d04abb443ec3aa503d58ca8b4448a1c1097446cd3409d61f924f1ec126f911c98e21fd6d0f5a65acee520d24f941daac09eed60eb0b4e5102fee7a5c01f3b6100e6901ffb577185772d79deb5fb23d9639e68bf42b1126718c2c16daf7d61a26c72192c1415bc802805c2c4eeff42ea22400fd9875a645eb43628c42a090bdedafc72a63a7cce9b55407223da2d6d9b71bff02678a59ba14bc9d73bd5f6f4212727f6e9861800f6645260eaf5d29264b1f17a6640f5980da8e66c1026617ef264b06a452e8ffc42583d0d9706762a7a922d836ffc41f2a6831b1f8f7f66d14dbe4cf1b4b597d12ffd59238c06145620f2ee43afdffcca5149f2cf4aad9d71db3e6a2a25a4ebe0ca2cb9095aae5e26f990e879580137db37ec8f1e2f9011058f4846e3eadab2bb42ff4e175f0ee1ee79e16772d07454af02fd6e430006d619ade3af5aff6d5d1c9b6a6f02c5d364139371e5730752baf48bcb053b536005f47a82f26e417a2bececb280666a93236e2980000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000132e9a7f250f8a473957cd197f3b48991abc75b6685a0d416a5556fd47d0a108b06040a59a4bf6f6970ffe446852415816ca1fe4db73158246bd3f8b9b5fa2ac53e5ffd3bb4442b133c5c52eed49c96c1f34d744251bcfe740f561a5b4bd31a7115a9d4ab0c3ec79b117331c0df854f2e78c93e295106028dce200035fe1f7e3f289d4d66681c2fcd03a4204b39527c8f126a6af7fa837a5b1ee76bb7995260dd04cc5311cdbc852c0448f8520bf7d20e1069c31f088ff0efcc057b44bb7fbfe7399ff672d5ae79aa69e7bbe980780738aa8a95e801e02f9ddaa703bfbb54079c290352f4027de62e807185cf9f763467c4d5ada6d82030714bc24c58add1cada0709a1ec18da4de3d68f5073a444e564b7c8b444c4b05879fe24852fdc2c1844197f52865629192f8997926c3bade4ac0773b22259343c13fccc745026577ad4240197efae10fff016c3add45fb875de652d2d514f8527fe320bedc2ac5a977c1c83d834b65f514147e69823de0467b9b9022054d77608304ab233414b46704c0b208c9716d130290494bc7ce77bae4c5943523eeb925dd90e0282ad890791551ba5fb2f86f53048ecbbbeea1d691c0180ea9b9bcee1d0dc1d3bc474a467740d3fd83543c56f4ceb065a4d3a59bb5a0e77576535076a1ea4e741c302062c41d11448e93988e837c72f6685d4ad4ac59a799249cb527ffd954aa66f44d0d16cd833995bc9a70451bd395aeddd37e3a9a189c90f516b689c02c98dbcc1564329e003e922102c072619cbd316660e9451d6331e3d71315275564404fc28ad3311502077dea666d302e9680c24a43d9ce3ab1eae47ce663b20eb61b77c8bd965303b1f882159992cfd1697f3db5bc2631c550398512da311d8303775b461269acfc622575940021f0e8f083cb7353410725754da350fec8db261b63b0ce13ef9f1251da8a6bffde0f170f7c348cacbef8da8cd6c63ec1cbf46b9e2f2240bc1060edc2bb4be400a9b48cb292f940a04523bb463b5d7578c2a89b15cccde8c3ae1b5b7144b41bff564b734d6d06bf5fbadc44bbe90c1a47d226f6a3c605260c51e4a4a1a87b74035086bf7cdede432159b2a858bb969c1a0edc5240478c5f626688c90257848bfcaf7940832121bcdea64d57a968d2f3a685f33f794b46af6d99773712077dea666d302e9680c24a43d9ce3ab1eae47ce663b20eb61b77c8bd965303b1f882159992cfd1697f3db5bc2631c550398512da311d8303775b461269acfc622575940021f0e8f083cb7353410725754da350fec8db261b63b0ce13ef9f1251da8a6bffde0f170f7c348cacbef8da8cd6c63ec1cbf46b9e2f2240bc1060edc2bb4be400a9b48cb292f940a04523bb463b5d7578c2a89b15cccde8c3ae1b5b7144b41bff564b734d6d06bf5fbadc44bbe90c1a47d226f6a3c605260c51e4a4a1a87b74035086bf7cdede432159b2a858bb969c1a0edc5240478c5f626688c90257848bfcaf7940832121bcdea64d57a968d2f3a685f33f794b46af6d99773710a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac629bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c0574b614904f04d06536b5cfbd25bc253f053f3efab39148f663b7b5deec33cf340e52de04aef29b278901aaca40eaafc3602d624e75ececc9c33045c86e16ae334663237c54b81bb6440c12f58e10e91a591b277bfeba39ca0dce7258cc3867336701f1127b21ca8e6725b4e67a769f455e78a51b8319d7bd1dfbf17a5b9fa53cc6685db8543c231286b2845afb78b7ce5da7711fdf1afa1599b0f8a5e75f2d3b63fa20c08ef6946b68d1be6e6578e912c24f6d15ed51fa875cf830c4f8444e1dff3c5197fd00d1d0a0de7643244f7892ab4a9b26b3f4238af227929b22c07334ab22fea15d89c74a4ca0d1cbdd19b18c8dc4699b5e6d44a70b9e363033d81211b17fb361efdf24cb3abc2464ccb6aa775cde4a4c2754d9834cd93847d782b31b78dc6e97e20355ecb0be28efd52a08e5f548e10231010243b8092fe3f60add3078abbf82471a760d2090327ca3dfe9b30f3b2045527bb00df4629e529c216d2231b390b71370230dccef15925d89406c29d3e47cbfe5b82409632a78ba77193bcd88c0e0e990aec2d3ef60b0c6c63848c80fb2b34107870015f5552268495c0432773f1f166f513d2c109f4f3939c7d97e8949560bf19499173b97dd97b6a63e15b8f365a20e326a6fa362cd74e24abd6f02b8a34743b7b3be969a7d8dbdf10ac81e4943ecd3d4d16028affe36b69914dc146b0153c1aa1f34e81a0b8fa2370b0a35b16de847545cfd38faef8d66f73aee5b637b2344bdd294244c08022f913b0575b392953bde602ca791365165c2de05ce9b0f0bae1ff45c755b06a2d46b1e4bb15c7693f25be2f89287e6e7c24ecd0dabf0bd9a52056ee5a40658f980e5326cd18c1de9e560ff6bcdae90a42ca1e5f3040d3b2f4446a4052003ebfe6fcf0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000119a17c8330b8a675c33aaf2324f1864457aecfbdd47cfd2a8da15f906e5079390928df1e3253d7862e7aeec95fcb650bd83852eff1975a7465371f2c550c1e2536d62a2e5383894a2a214170c415ccc21e42bd11a99d0b9cb098cf73fdc524bd34c41c04f291f7e9f76b184c6ac7677fd52bbc6a6a240c37b1dc3fcfc6206fbc18ea143b2d9567610a1e461d975257b6ea5ac5c78de5189bd6821a87b58196b12d1978ffef02b2a08d3eb5b5b91d7770ba78b9a262165fc90ccab296fd9187691f6a1fd6cf6d835787a674e6a370e7a0391553c7e214734ac73a81c6880873d2329d772178add1a379eb9287229f8039311f87ce4c91ea881e5bf881eb35c1820293638b456ebb71d4a6b8ea1707c97a6b0a3c4b47fe94c18e95551deab55c5b129617ce57add42047c135535add33b3544806ce96205cf08412db9afa83bce815871830abc310e6a03c4a21890d5ff97afc04d9c49398de2ed428ad9c1f90b53582bd5c417df26bed9343d6ca2785b97f8bb96e9c07abca312c85460727c3bb36d5725a39241cded1c55f5c976111d0c7478056bd21be88a3424669362254982ff1156c64a243931f8b1c0a6d83b87d352d0680069f6948212931a5f74cb0cb038d4a0364be949a49c2a26e2b7735f4c4a5fb72c4b6acef0ab22e8eedc1d80c35c7b408824d9e316e1bbe25a25f3c0b6023b95498e7e83794d77e3322c56a8a154a7c51f782f7e94a7c7fc6f9ec39b8fcc8396eca843ecfb37dd05ccaf9945611ed5a25ad13a7fcbb364624228512a46ac50536546c61e5c267335d7d9ca7e73f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc6202347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de60b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b08e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a873f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc6202347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de60b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b08e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a87000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000120a5727f10920d2ed355f92027d470712a1592a769897f168a0b6e68c604707b391736e54b79e7ae472277a7e2d3190f3a5483aa80d567f6a32e5ce4848100e82d06401b3a66e4139b297cd4b3d3a3663681db797975cfc270f133a14f3306dc0daa56e58e5e7603b06cd0f41ea8dd44c0e2998531442abb154cc64a834969860111c994035bfd29e7a8f5c2f8457e42769f8f05eaafe12affb1e57f27cb2a990c623be64bd4db3e3144f3bbb389552b9c9e0d86eaf3c22b4cbe70c59d2e7643149889988cb4b3c50630ac997daf23de052a4806d82e3bf34ebb31d8413d5e4432ae14b9ed91eee60165cba416fc03259542ec6e2bb9b21e5f9b3a870c76789204fbc593e0d5b8254c8c2b04c056d32c1a129c12dca00b63fb264c633191458d37956e8acd460812feb11340198521d8a5543ea7c34558ad1dec0d835fb2c6ff0ee9be70ba2ca6c2c724a85da547738462ab7bf780e18be5eb96ac9012d08c223d88cfcff358fa27cf74e2a913fa5f6891ef4ab676a93f5338b15cc8ea9dc9cb293db7f6aa6d664a21db98bdf0ea6ae56a853c204d17e87d8bba1b4642d13b983c9764cc45452ec3f97fa7b4e9f4e8cffc6cc126e22a4f2fc6648f2674a66e43000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000a2aa147f25394c707ece2babf233e0a1301a729fd3d5e338d4650c71b6e4ce20bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb0bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb0ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b22e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d57285e227dcac39affcaa9a3843ff26167e7011a6f7ac8f89a3b79077718e6e22b1c8da40b524441fd2cc45ebff9a1c1e345dfa49e131e3120c317c2ab7c76eff609ae342a78dbce2f652ce83bc8df13cae92ffd4acd96c384d84b5b62829aa4c632e0e89af62d4b5e0a44b1fdae3b06376c9123be386de90ef339f6846a620c852179eb6829f66ce011798143af6163c3437fa534bd33624c60dcfeade441f793374a86518aad0cff9744827bab36a25272529f9a68b28b9c99ecea69bdbe3fe4274d3dc3a846fc8924f1055fbf4f5ad5848b4b6ec07c76e6079ee428f532d63220e6a6375b0b5eaeeb6fc87a8cbfa390fbf15474932bbe08a8d6ecbb879cb51f0d76be4296c17db6228e74b86fb1e591ab624512c8b43fba93293f0a00ee873b2a2c97f9bb3fbeda5575233ccdd411259fc4b5e4b8b63c39d2f879a756b057f107a36be71870ee0d0f16f09c5fc3ee7f6a569ed8c56b2b20ec67598eeffda89c00907813eae16d2b0149dd3dec4b0fe6f3df680e84f010b22ae146688cd1e2b526bcc5afbd658f5e23a72821d3044aee90abe3603b8c6633dcbd9dc06860f37e19433a50429a70a1dc58d7de2cfbb511919ab59bcdc092e7bc6f932c979f0c8434effe4336f17d922115b0a8515a1e969a769c06c1714d07ce36ef2489c21a191f02f6c545dc8ebc6db3a6ce87e3d6f78da992b181e2a4d027fa96a3a67608430999eee6f03a86b1e50b6a4f51fa8db048d556502782ce088764e73b2ee2737a108e0fe3d08e6d608fe3b484a40563cea9ed3ade0dfdd6fc3ff2dd4544ed124e08d572bc0aee440ff0ec37719da7f51661f86a386bf61c5a29f58e0a82dad0dc2b44267b05ad2ac24113453310b262278a13b7ef3d07eaab1c8003e6f3278a85000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011d00ec549971c292f587f30ee7eb3083a2d55e8cadced26d37f41e61674e80903581b7a99c99f9aee99d046680bcf2e6d63758cbd14dfd23e49e780b95f386bd277900fc9bf20155476f4d234f62c3240a2332b038416e0f4a0ffe4ef1113b9d193008c40ba7a7211d545a02ce2a8b7ef405d8c8baa07f1928fb47813c3b5ed320ff57ed9d49434f3dce32bc68031c5bc4549ce15c8f0c37eacf5d8b898185fc1b0a072557eafac5ccf452afc0038454b5c15892c17c82da9efd4409a7644e1133fea03cb16706d909905f78728f56d9fdb841d08b0afb550b892b972c2f92ea1b96553cb900f62a044bd83da34c1008801ed2d66ae32450850679d4ef0ac704349971f393264e1cc19723f72edc91e4a5e643744e7b4d7c394f42e3b59c07f432883149aa58232e1f32e1e69b55969adfef68e0a3a42576e113e53cf3173cdf2d09fb7bd0172b03a99e6cb6236880a75c654dbb212e00ea903aca6abb13822d060f69491a1198412261076f16f48ff7da88ee971f4670052698bbf8a474232a020b6498aff15a6e04a05dfe7c0a87eea29ab8d424129ef391211a4e81f8de5124bb232dedd50603ecb01d6888da425f3793350696618fc19a1d2cd3ab7627113b5ca202fa06838e35d2bd9253dfd29068a83c4dbc34dcb2d3553ad6b1ca52c00c237e18663899fa8edc0f40f4f1b023acbb22772e35cd4c95765b95efe83e4f269d8925d0103fdf695a6ecb5b84f947b4a926294821d20142ec93450b60c8d03ee6c05863616b740c4576e363851a71a25e193f57b5dfd1a7695ce646cf8e7d09c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b09c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b068b7cb70c4e968fe90a321a45ecb6c221e359af3f511fa60b4bca61ced1e0ae063701d30cbb53d7978d008cd3615854317feab4f9fde2db6584c6b4ea9b95e525c75f1da7984a0e35ddd3cd4a1939fa3b3b9c2f959314eead426e27e2792dea24ef2af288a311bbc5f02334c1052f8d299158fbdf2cdf5668b90bc81aac4bc10c92b2d6b47058a06fbcb270dfd3adfdc463f7d18316e233d08b9f3170c2b1cd0fec9db111a2bc701c877b6b49a793338e01242570cdb4629ba3d7dc2df4aef00c5c2e6ebc54236c27fc8b5428590d0438e98e29fe47dd99a493d90f276de6ae32e8f9e51b4996ea4ec2ea7f70712a16cff1a2df425c7ddac327a68cc9da51c939ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e2e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae9680150d0e603d5b11e21fffc0c6b34c7f9f61c2b730739d728c23e5590660931191077f591920208286e763acdb3280fb019c294548137c4442d22d87a3b88b5fb13ad242b4c191f61e117fa186ffa0f43c527a31d3468c486e09ef8634eb4f16a14d9d33a6aa19a6ca282dc3e6b99781ec735554b302236e9caef5e6ffab81e5c252607ef096f1abbc661b109b7fa4d9bc4ef5a30aa43b26d547108b9440a08031ad9f810f690e544399e4ef64805b2645d573ecb5f0946ae44bc2833bbf5f7ff09f8e1db3ca04b645314b952499dc5904d1f08d4266877c80b8ddb708ceaeb560b99b4380e9852d09d4d3f429ae71fd9b7b67180a51cd77a40a90f425731b61e172b0a27a39d1b5547a8fa2fde710bc1529fed6709923a030b3b7bab52ce855238e4ac231e9ebd0840980bd7438d6c07532595fdc48a5e49fb718a55d00f9c4c35544cf6d0a33887c3b572cd0ae80891507f950486096ef20dbabbf616fc68dd15d378cc315615486fcb976fd99f317e9f9f9107ddec4e434d7310058cc5660c00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001078503315b24d2c7043ff5d024828414d18ad6007d7ddd714daee9d9e055e9c330b32deae74b0a529803f0a478cfac7299eadee2ec880f76a59fdef7485a68fb1e0c79f1b68eaa9fdad2b663a328edf4930427d1ff423134dc00fd727e1909313788be35e26c9b9d1d531b1143796a9cf9b4c75f35246b42c0a7af8b10f2976020a09d5be58a05953c99557ed3b8509407e5b01362a62e330ed4825c5bd3054d35d078c5231040a10cee3dfc8a117a113d7b7cdbbf207c2acccb35f3ea9b6a762a14d972f7e1e7084c6b6ba702d70b6389e622fd8e2d46c00e5122ab735544dd0ceacb50e680e1ca88cde11ebbbebd81008047e388b697a16e02fbb8a43dc4b23ecd52aa46b501ea11dbe259d1650a84b587e37cc514304c2480ae97310088ae3b6f933ed6a909fe31cf234260960409f48f84eedf278102a4f3c8299f8b532c29340a5d4c49801263bed7e1a8a0daf8cc9cd8c35324221c7cd7696740a36e183c15f4f58186723e3d7d1843ce29bc4ce00352a2b1ac446b155348297fdc13b9282373a5c285f7987cfe927f9446f2f1b59693c02a280de56d946481ce398a903ea31420db4068d97451e8e7709dd75c46ddf316999919eb56d7138d5f357ad313e03265369b69744a0dc91dfad25cb5e6c16b0a94d646aeb7edf892f6001e27037519031d15062d2ddfeee960a5baac7d5949aa9a9b684cbcc1b3d7e03f454719c5f00ae3e0c4906f7bd59d2b7e28b8dd2081f5dc02b1bcef96f96dac19c2b9000197dc1952e0db74c77baf6ed8b66d12fa416f880099ddf4cad8e7cd3ddac828193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e11105939417e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e13781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e202a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b6965158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef62bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b28193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e11105939417e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e13781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e202a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b6965158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef62bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b077596ab5d4f14c7435038a9742be3e6b737f77900011bd2975eecabf38cafdd2a541dc9aede8050ad6648812a33cfccec8163996bbfab69265fbcf2ef361c4e3000000000000000000000000000000019b4f2bd06f9bad4b2e1e4b1c00000013000000000000000000000000000000019b4f2bd06f9bad4b2e1e4b1c0000001054e43e7d570affb9aee4854bf65e29645e89aff47a48510591b37be81e7333b1bbf6cf08a9fcae4eaea8d7a724774b3c8891d34d51de544ba34750fec2c590536098084ccd24f630a4526a8ec327dd02e337604f5c9549b72cafc70dfac942c255565b8bac20b8c8e750132a560c37ef3df331436801a7896862ec06cba474305abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b3288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc735024182ccb0627001b850504582c756dce7c72a060e0b10fd66001d0bbca3d909fac28e0e5d239105f5b80d47da2bc3f88cdacf4a3d170591082de15897ab082ec95088a6954a2b0eb38bcafc7568bd41c195159aec6025222744eec5f8f4c73502425abe23651217faf5299b77ed5cc30333e56dba19fe08bf95918c03550c9e3b42000000000000000000000000000000011234c7e04a67c8dcc969876800000012000000000000000000000000000000011234c7e04a67c8dcc969876800000011a445bcde13d619922120c75871bddf6a20508c883af01ae4687ee02b259ab463828fcf707ae2c920e818f8098f8d61f319c2608d9288f962be01c3b3eeb51d431f8fa47c15f532744d391fba64d1b81ef2ae1069e3f43afda1cb6dd3c0e142615b4f676a1281fbed91d170cc14c3dc2d1056baf914e1e96e8f4176419a3e460249c9d5d84bf3733bdca1aaa501db2430deb40e37229c347e09afcb52448a50a0e47a2ed0231e42e685bc077703b2ad299bdbbafa86f8d3bed02509b76d607ad0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000104d03f6a5d6f0a13608cd503e6279c9c9406eda3fc29af3f15ae8275615d27a63dad24e872ff7cfb2ac12cebc8f22f00496c97539621d09fd225cd510c9c9f85074e237773b0f74a2eb7982f01c28d7600c8bc5ef9817a395ec1f881969cc4d9184211339322df5bfc426420e4150c8a14d205fd809596c4570b4b5b71d3bd6c3f1af53251d49d546405570926f91223f344adebf01132a6a88db547127fadf82e3220570fc3d10525461f26970a6c9636aa2428a37196b61fab63dccea8d4592a320aaeb3f0fc5769e818e465b79b3c67c11e5b9713634ab1c71cafb8c57b2937fc37789af9d8b04b71fcd5a2f3e2044efae83a52a64cfc6fa143ab7a8c690a1910efef74ef68d7252321c29a7ac30d4739d7c205f740a430f3bd48b460440f1fbcf4de61bb150cdcdc1d0d92f88db476c2e067571dabe45b5fa0ec8d8412bd099d70afa9677ff0035e4f912b27a58b9174457eda2dc087cbd918dbafbfd7cc022be0994a6cb5556431d186ed61eda3170a32b4f66eeb1c7b6440fce609f10f0783a7029d0ca5c3eff4f44b8e1ffbec53bd16b01e1160475dfaa54e5e9b1d311f42e0c400b9baae015b871b76c4ce618670d72a9c62ce6dcd43a1d3ced3e8311f6bb00cf1d48007226dae5f7e469c922a119978a097a3e56b24ff3ba583eacc26724152bf26609546159e89d76d0d72d10350133ac8eedaab8b39468f5af34c3ddb75782fdaf4c973d76e5edb9985a9ab31e8dbdf0bcf858956cfce9328eba10c8a1e6a2b399303443a4d2938bd0c0fb6595ba12a2dba113da5ea33a29c33981043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a1043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a352254da5cad22b2bb31a255d43899f5be174c33d783688ffa31918b2d0e604e3319a2a83a6dd65b246c9f7d539b67b09c3b0afe9bcc31f641e4746e726732ac06cb934fc247fa8d561ee4874ddb15c44061367e9c9857ba790f75d47e485c66012515c31c4d62deb68da72f0eaef3954e35414c7d634f15b8a251c3e93c47a811b3b2cdd522bbab58a1c1e190509f255ef725a55de7262c784576be6a96be2731e58121b4e86da8dee5935258eb584177732ffc36cb6ca749c9dad8b2f3761701964ace5f996e004463cc51a0e0974be4467bf3704d77d22853a8ba1554a8c22267e92a09901923b82bcf1dc9b164a7ad75052728e5f70769a126c426b15905291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa126c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b2b8e40f40da8d8261d87a0534e4cda684b2f16fa51f2e5013e2a80240aac2a2d101a49e89dccf3c20d53292a3e6513a4fca4c6dc28c40702523309daab596604041217d5e10ae2bfeeaf7922ddec504623ce1649953138d125ec298d54a9434e0bc14794a944c6c62505b9539db5a4ba37d64cb0f01d780f9ea66abaa45c85ae1d512c57e2f29ca04e363a2e738b7cb3d3d12ff33cf1abf2a1eb949626fb09f422aed3a81d0d635fb1c9c5d18c74834c4e756908cc5b4d28f7419c56d904f60e043b25663d9755f9fbb6a4130f8737eabb14f2e1c112f7b7b71edd8adb66f6bf1255d3b75ecfa0964dd0d265dbb756b1e74a8685096654c1b47263efb854e5f2399b47e3b01812f3f4d3065d3e3557c16e72ab335fa0a3c7fc688c14e7ac6d1118def51becb1802129cef3e8958ea490a2dc90e2554d4ad2cdfe2384dc7fb99b2b333315bc9db3e6b3312b5a267179daaf67f999b551aad7c03fd47ae5b608160a06902c07401192f1e43e5923d22ed0438008714d50604f5832f178914706ec0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000107e96bf24bac030919fd64aeffb0ee3ca1e99c41e8a914885475ac0a78c9118920c34952dc034c28455855f033ef82bb4c7146b3b870634b07f2617e576d36061d57fe81da3397061b2598b14b06289aba1cfe1931a046619842bf303916350a03b280cb16e29225275093c28d9432e348ada832662c66167135d64f08b696ea2b35d7f4d8c21cffc869cd87e10ff9fc1ec9342ef40968f61d56b3d3f93d442a0e87157031d6a1ef5989da55af490d830da9957196c449e498a8577c156084931221c76e6d0286efe21915d76c7972e436655be883735258764943b51781862c2c13fb493a026e9559689bf256cb2d6021d89c1ed59744d7d2d11c9627c812ce0dc3c9a17be96a5236a7de81f28921770e97f94f2c476f115f838bac0cfc93510dca8f9bc7019d6b634cfe098b80edb5374e94449b13bbce19f66244f7514b3c1387bb451a699a31340dcf5d798eb28dd49798fb52bdb18ae196c750de0137153c0a5a0a889cb255463a294f1d9402af93f8bc96e826f1fa0bed5d2b8b17c6081dc2311089bfa7b3d949498d083630e228c088a56ae5bd015715069c0b353b79090456b61406b8be180731d9fcae996bb16d65354f8e71b3d42940862239c9e930baa722c2fc6ba58d319537f0c174bda6025fbf82ba8e2095a6ca6d56149b1c07f2bab4e3ffea13da7c074c0bfa7d9068e6db30f05073e84730ba3fe18e16242a5281631db4874ceb71489395b19c323cc2ec93f5e86955d0e66987c99cdf6739b0730006d398fc66876d28ecea27263327d99308b02aeda875eac4b43e22d722349581c8414f9f69c009613dbf362475871029f1b3b8225760cc5a952f3c8b1dcb6a7e37beb060963ff69ec240c9dbacbf88d2179940f941cc64926ad0c3762b06eb88e9468e1d10c02ee634bc0eb607161ed9a5e8a67482899beae9ec2eb514f9147716b971e2ef3fd119cb43f14a1b307a22636452a716a395021613d14c172299ac8e60c69153c0ea7f07ac498dbc9acf4c21a454f3c12878cf919ce98628dd6653719f396eac3f1580f853b67265abc9afe7a8a427d804b81d6e63167b33ad005ec7e3e0d6a2c4947b265d6fc48cbf73809ee8afa72c9d2b20d8108f9d0c52ffa1381c1f295d3b6b84d9a2903b9587257b6a6449746c9005cc27ef706422349581c8414f9f69c009613dbf362475871029f1b3b8225760cc5a952f3c8b1dcb6a7e37beb060963ff69ec240c9dbacbf88d2179940f941cc64926ad0c3762b06eb88e9468e1d10c02ee634bc0eb607161ed9a5e8a67482899beae9ec2eb514f9147716b971e2ef3fd119cb43f14a1b307a22636452a716a395021613d14c172299ac8e60c69153c0ea7f07ac498dbc9acf4c21a454f3c12878cf919ce98628dd6653719f396eac3f1580f853b67265abc9afe7a8a427d804b81d6e63167b33ad005ec7e3e0d6a2c4947b265d6fc48cbf73809ee8afa72c9d2b20d8108f9d0c52ffa1381c1f295d3b6b84d9a2903b9587257b6a6449746c9005cc27ef70643ba6fdac0b77d30417b290295f5091155d781ed0d0a66a28e5a091ccf9031fab1883d6e1d3620a99d127d8cf8f9f75ddfae5984b4c8b4ceb80eeda5649fd192231e58121b4e86da8dee5935258eb584177732ffc36cb6ca749c9dad8b2f3761711b3b2cdd522bbab58a1c1e190509f255ef725a55de7262c784576be6a96be271e34c8c6e8e486192e6d95d7e579bb63a7782fdbfb459376a1965feef865efee19da8e2638861c7ac4e5de71bdfc3b42ec37f154f40bbed4c5e50965a0156c061dc393bba5987af7a09770b5534817ad1166f535085b6aba31e508f8cc4d8ed43e3e384bf13dfde462d8f3db4225ec5fa16abba8710b18a36e808962f7ac6f68352254da5cad22b2bb31a255d43899f5be174c33d783688ffa31918b2d0e604e3319a2a83a6dd65b246c9f7d539b67b09c3b0afe9bcc31f641e4746e726732ac29d24250f6b4670e24020e24c8b498f21c523a29da50193ccb3c7dc6b4ca3bbb0aa3e0aca0ab123197ca10f0f185664dc33a2a61899b9f56735ccae3c626ebfd127381323f9fbf530967dc8447c416a96fa1e32b0b281b6702eff53454096a4115c87650577b39bad636654ee00feafcc869db0b5eda86039ff8dfd84b6c28b91f59de8a0531e8f7e4fb3d06f428aef8f5ad712878a8e28c5a38b1b2e1a2379620a62175face17081b04c2f90bd751072c9927d390a4168f3ef47f3a1e5dc86c361de49f64eb062c88dfecab38be6b904f621dd66dbffe0a97285d8c9d573ea23254dea6813b5da4ca9e67e206eeee4fc0d3611637a897ab461015a03a40fbd63152fefe2d5cb4a80ad8e58ce10bd791ddfd5c517bb3be0a724b1c650caba07b0cb7cf6098d89ae50fef09a9a52427e0b57002e699f8f3f444aa83972adc05083d2f2bba4dd6036b377d60076ead05fb8b55a4846f3919a0bd5897c34a6fa31f248346947a06877699c6c27985c22d8d9eba78c992069da8ad851e0d75cf575b00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001035215d03f19280475a0f7ade56c805c1844414cc6c7d5d43a32a1284d95ce393bfc7e73437838e941b30bc55061f707991cd2401354c928f11e5192bf21e2872987767e938f49ceb5a136300f1e279cac702f6413ec0e1f1c2a4a13a5a071071d3fcb31ea3f5602987f50cc5bbb4475d99cc487083d941c3422ac153733720e29c3fc6f09addff66efa2fd9a1d9e12d03e791a1b55ffd381da08b433e64641d0497ee2cc3cfcc130de9ab77fe00412adbd8f866d1433d7961a006ecaf7190122ab9a4351600987b3e651dabc9b2f143ba201dcb6344d44e429e7765930d5129190f7ad9252eb310a3a596fde4803fbb4eaa3bb4e76dde92364395274005f9383ea623d76a45e4baed8cbf35c1e550e1468e42f45b8566c7a4f019682e1e641a29cba85ffaa56e69dcf6d1d70d50bf49eee553df7a8c8aa43c72c9862a16a2b22009a1baeb97477f6d4e64928dc03d8cbcde0901aebc1f669d29814f37a33963182d041c749fa4cdd9110de7845d7072a18733798f8c49a085be99b7c34fa0363b997a86be98af2f17d8a79df07a43252154bc52fd45b1e0aca7359ffb48a9522b2d0d3fdf2db142d977d3c9146a8728db1fca83c67b75f017c4426f32265c11260ccb5add26884100a711aa70f34b3d58c265a7dba74c6346dbcebdba5ca1323e090563f5590aeadeb9e728d72c4df9640af804d59902e74f293a946de26caa1263cd3c2a53bd6ce3dae3a79032d8d65daee09f378858f5256b36f3e042368c3e267348d1f97e5582faff576cc0b6d3742b0f3556ed1dd67b36e9f86b7040571043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a1043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a352254da5cad22b2bb31a255d43899f5be174c33d783688ffa31918b2d0e604e3319a2a83a6dd65b246c9f7d539b67b09c3b0afe9bcc31f641e4746e726732ac06cb934fc247fa8d561ee4874ddb15c44061367e9c9857ba790f75d47e485c66012515c31c4d62deb68da72f0eaef3954e35414c7d634f15b8a251c3e93c47a811b3b2cdd522bbab58a1c1e190509f255ef725a55de7262c784576be6a96be2731e58121b4e86da8dee5935258eb584177732ffc36cb6ca749c9dad8b2f3761701964ace5f996e004463cc51a0e0974be4467bf3704d77d22853a8ba1554a8c22267e92a09901923b82bcf1dc9b164a7ad75052728e5f70769a126c426b15905291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa126c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b2b8e40f40da8d8261d87a0534e4cda684b2f16fa51f2e5013e2a80240aac2a2d101a49e89dccf3c20d53292a3e6513a4fca4c6dc28c40702523309daab596604041217d5e10ae2bfeeaf7922ddec504623ce1649953138d125ec298d54a9434e0bc14794a944c6c62505b9539db5a4ba37d64cb0f01d780f9ea66abaa45c85ae1d512c57e2f29ca04e363a2e738b7cb3d3d12ff33cf1abf2a1eb949626fb09f422aed3a81d0d635fb1c9c5d18c74834c4e756908cc5b4d28f7419c56d904f60e043b25663d9755f9fbb6a4130f8737eabb14f2e1c112f7b7b71edd8adb66f6bf1255d3b75ecfa0964dd0d265dbb756b1e74a8685096654c1b47263efb854e5f2399b47e3b01812f3f4d3065d3e3557c16e72ab335fa0a3c7fc688c14e7ac6d1118def51becb1802129cef3e8958ea490a2dc90e2554d4ad2cdfe2384dc7fb99b2b333315bc9db3e6b3312b5a267179daaf67f999b551aad7c03fd47ae5b608160a06902c07401192f1e43e5923d22ed0438008714d50604f5832f178914706ec0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000107e96bf24bac030919fd64aeffb0ee3ca1e99c41e8a914885475ac0a78c9118920c34952dc034c28455855f033ef82bb4c7146b3b870634b07f2617e576d36061d57fe81da3397061b2598b14b06289aba1cfe1931a046619842bf303916350a03b280cb16e29225275093c28d9432e348ada832662c66167135d64f08b696ea2b35d7f4d8c21cffc869cd87e10ff9fc1ec9342ef40968f61d56b3d3f93d442a0e87157031d6a1ef5989da55af490d830da9957196c449e498a8577c156084931221c76e6d0286efe21915d76c7972e436655be883735258764943b51781862c2c13fb493a026e9559689bf256cb2d6021d89c1ed59744d7d2d11c9627c812ce0dc3c9a17be96a5236a7de81f28921770e97f94f2c476f115f838bac0cfc93510dca8f9bc7019d6b634cfe098b80edb5374e94449b13bbce19f66244f7514b3c1387bb451a699a31340dcf5d798eb28dd49798fb52bdb18ae196c750de0137153c0a5a0a889cb255463a294f1d9402af93f8bc96e826f1fa0bed5d2b8b17c6081dc2311089bfa7b3d949498d083630e228c088a56ae5bd015715069c0b353b79090456b61406b8be180731d9fcae996bb16d65354f8e71b3d42940862239c9e930baa722c2fc6ba58d319537f0c174bda6025fbf82ba8e2095a6ca6d56149b1c07f2bab4e3ffea13da7c074c0bfa7d9068e6db30f05073e84730ba3fe18e16242a5281631db4874ceb71489395b19c323cc2ec93f5e86955d0e66987c99cdf6739b0730006d398fc66876d28ecea27263327d99308b02aeda875eac4b43e22d73ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f620591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f620591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f11d68caa2862c78883eaee78094d9fb69b4c1aed67ae908a1a76c75ec489012536bc066bad4f192cbdf19e4a06169f22f64d1f342a06c9e1b7b20cb69f53d57912aac1a59c78a2b8a13ff2c356ff5ddb259d2538cc45ce530648a90a8728eaaf09bbdf8fe995ac146b6973388bc2ed59adf49fb0089ffd8ad272064a6e75e15708283f8b0e460d52c58913fad78e1fc4cce8aa7552f29062c225dd92e0b0220d0905d69e666e3b2a0d6d173f142cef7678532cc741da81bb8790348d2c293b4d1c0c545aa2bdb7106c3d18e0e089a52c307d2b53c1fd744562f39fadedfb16f52539ce1ab71bf03b306a3c65323082b11c9d2833d618dd553afeba6647d312752d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd62dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a2caeb7807c1dead5d1c662b55553c90de9bc150c9e29a6158b6474c7766da90f0818bd7372880ed9f4866288b3a4faf8aa3496432b0a99467ec41ef0a0cce8471b7eb1b03b2495bedad51ec49fb3026e615d58d5d5589a3e786dc083b44e142e3f881a04691b3abed6a4ee7d6e267383a04b7313dff32acaa8364ed8f23649332db440267a9bd1688c896e542803f8483ad70d72b4284e6d66e13605bde462a5124bbfd985642e97737691abd7fc07b7e76f8b895524aaae324bfae7421b9d5d122a8587982e6be632a23fc9dbcce77cb1ba4823216044f6870ecc147fbabf071bc55174ba1f98f0ed2982fbf715bbe6dac2a312401b9040042270e1ff681a6d2396a014bd6e68b6f5af40670776c22dacea3ee1deaac3515b15eae00bbeeac617a2dccd15da37108193045195e9fed45e1190756979938d365996be129f014c167d2c13c149d04c397d98f1f551c2a1e2d5496310af3af6b5a73fa833435a1b19f0dea5696a07d3bbbb1fc88d2ad0c0f2e0e42dbff1e9cf134cda5f79df0abd00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001109e3b25d6eaf227fcaf6d36cb42f35b70edae9536ad3e8c281bc3efe27564ea25c08d36b406d862018fa2c12c472e995c06991d4ddbecb194b4c8d8741d61c23acd73965099bfdb1a39790b5937fa86465afff38b90d12574c58d75d9143c4c13b89c971068be68d03ee086ef53bdd72f9c87f4fd937248fd0502bc575adcb618d437a051b06d00c4990ea827be0a13141e5eca8a731b5ca2c748f2ff26371e2840f927accd85703a44e33dc9bf5e394ae4903e809881b54364be44909933cf0c82e3661104272e8be924b6d85e340fc9fbeb7931a7a5a4d7d47e0e6b200c6c2c62d5989c69004e45bf771b3c689ea0b5f72b14659ab50f624e46dd54b6b800222f920842118da3636574311bee35529523fcc9daa4629711376fa41bb84853331da19e722f5098cbcd9e4035d8f543b20b7264068f50ab17fa9b4d17502e5210a754b8e43785af6b2d2bbc6374597bd2ac186b1348e78a5148034363e5b58c1008240c96edfdb25fd46f88a486ceca942de7411d764f5f8c81888aaca000e31181dfa4a722e64aab728be07d3e637646b1c2150a3f361cf013909855bc8e7f1544a821f6a37a2745ddef8687a666d7937c2bc5b034f8983b2ab689d7b276e3089d8d1afe8f64e30f17b10ce34b6e11d8d9cfde5c30ae3b11546afc2e20ece3256c1f510228dbf043a8f43b711018b8e59c777c3aa5e7e5bbb4f69905f4baca02f140478b774cbfbab23255d9cf11d576b1902c5434a2ded74483df583967121ce8cac8cce45bea593e69dbe8b0c86c0358479e0c889ca4fa87ad0123f99d3c1b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac24fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a60215507121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a7235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec21ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f30c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c80f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f046391b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac24fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a60215507121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a7235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec21ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f30c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c80f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f04639017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e17f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a663731319406bfd32611570a209b85b38e49dd7727b21099400a3c3bf232a29135eb21ffaa18c3bc1139049500403dfb0a68045256159afd6c550275472c9aa6b8c62350c1986d63d0d76252cd4dcc0096252448ef72e67695958363393bbcb800d6809d0f28df34f89daacb5b062f76ba5e1e124926c9ceb5a5f7656919f3a5e969e3e1997b507db4b065917a029279c8555c9999921841a1143b015554215aee3521d14c0bd1af0dd795dc65f20deb61a24d29b51f0237079f79c9c23abdc96c858299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f1002216e46a214a91f5a2912ec35c5d5d4b79d789ffa45cc5f6dc24235ed2181770fc34e4bffb46072d0886c1b4271f2e319c53d84677f770f003368061821a4847f82b6879fe81419e32cfcc2b0480ff303bbca2014ac309b579f4be78fa1264a22208134748d8710762979b1062406fde0c96064ace3630870592558b307fee102d2182408ef8ba9b1382df281ec38ac2874e7b4cace7a5cba04d24afe99b73a2001e7dbf71074564ec7d20d7e13c753d78d3cb4c4f21a72d7b4c088103648c5e023164c1bf1ae2029777c3dff21ba619fc2d7be784efdf6974468338c28562f49a1ddb5f9dd3728cc1a88ec687c309f77977b9eadfb71caad3f97d8a2b06242527139156c72428edfcdf747c06e9ecb574ec529da3e5e8af3e18d31d2e6cf2792520b9838c8bf1f913cb129c5f382e42b09a3bb74a02db998692e998d8cda653cb1148533ee7c56e033c9b467730eea5565ea5e36f213886c3bf0536c63236cb2e298132be8b07ab8b4f9508f89714bae10d2ce2ad0930ba29727d0be1dd05d42e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011b7c0cebe7f0abdc2e6fbbb7af15d33a9bcbfcc5d77da633614554754419a764171aee187091111a19d3984a064c173b821aecd6bf4cfc25b5a6ad6b41c8bdf73c5b813daf9b2d6a68219fe6b8f4a25c419780cd3e92388f389cf9b0250a51380e89457941a583d24abe81016def215c20b8e9fd750f8d331f360635bb775f1d2400d6c301d9a66e1dbaf8a4c3f4916b46aa3bfe71ea2fe48302024a33f8312802d546f3288eca99667e6710c83d44975601a0e8cbe56139529e462bd7222ca4179c6b9f539642b3200b6c67fe444a27e92602af3f57ce0a996fdfdc25082a671a07874f99f0681aabca4c6a91cbc0da23c6f183d00cbdb935087f8999ac55bd1c2329da30cd1dd33cabeb05c1c01fccd42d31999903e89a5929e676ce7dc2551c9cc0f3bf68e8e48d2eb4fb1a073d79dd4f4eebf41d74fa20b1e5134be7d28d1dfde1e30d8f60d0a207a02c2f41206b915f6beab5381a756793e126ce0b9458313fd2989b4642eba0eabb340c627fd19d7db66e0e7b9ef96e796af0e327c3d13f74d921816327c00708d46651c6c00fbe459744edc8e76f8c6575aba318850a2751aea51c6338b1ea47a700b31e0a3e3e2eef91d5f84061380602638a5680593f7d2f7d19b1890b6acd25a4ace10f5312fdeae4e58bac51ae50a46cc2adb0620ec4ae8b86660c946e198070c1bcffd6561e63faaf89f76f4ee4b962a9c8a8ab008e61e29236aae85dc42fa17035d21e98d0442801c21f441c0910e71a88a08620d3462c6dd6151616518c66abec97fa058c23f3c8c0bcfff6a1c3ef618e3b2d333cc7f239e90d1e250d652ea9f7cc12e697f5c2ca7e415f0989cd766d6487350cc3380dc616f2e1daf29ad1560833ed3baea3393eceb7bc8fa36376929b78cc002fe7bb218d4196b942f9e951d6fc5df7dd68ddcf43626ccafc3f9c22f6a4053fd01844de72be6946bd0616ae2903a22a69301e3a0996aece30f150dd095bfc00ef86a7a7c247f19e4ee18e9932edd5d7530c550c50ec1ff6ed3e0caed134193f107958583db80e61b11e7166cd122a4af38ca6fcfc0cfba23ff2e0512ecbe804ada14646cb67b8178a67c8fdfea52d349f3da93d949c9fd2a2363f6a16047d3b525eb9b9349847e875983702015ad2eda75b52cbb85c7bc68afaad95e9fb84333cc7f239e90d1e250d652ea9f7cc12e697f5c2ca7e415f0989cd766d6487350cc3380dc616f2e1daf29ad1560833ed3baea3393eceb7bc8fa36376929b78cc002fe7bb218d4196b942f9e951d6fc5df7dd68ddcf43626ccafc3f9c22f6a4053fd01844de72be6946bd0616ae2903a22a69301e3a0996aece30f150dd095bfc00ef86a7a7c247f19e4ee18e9932edd5d7530c550c50ec1ff6ed3e0caed134193f107958583db80e61b11e7166cd122a4af38ca6fcfc0cfba23ff2e0512ecbe804ada14646cb67b8178a67c8fdfea52d349f3da93d949c9fd2a2363f6a16047d3b525eb9b9349847e875983702015ad2eda75b52cbb85c7bc68afaad95e9fb8404c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a208231a5dff2845246ca0cf5e27115659713ebef7caa9effabbd28b13d9ef252125598985b4ae56415db9e2bb332c7ecbf1e5b2ee5b48d128e16c3f52244ff7e2622cbee39cde689d2d8a050b771f7a2c3b1ba52e62b09b30c8e93c520f6ada1196338b4638e14cfd60159eba3a4b37353ad4a5d4d9e176d1f2d58b8452241f034819967d4332e1af1d8e800d34bbb8e694c88b8f1d5feb0267be1d368a9293e0b45f4fb3203a579f75898884ba773de8b74c16da0c98fb3b4a53a4a4f9c399a0427665ed95b17a0576af512ebc575a225cca770747fc11a85e3405b33ad6bb002137e04dacf9afbc347f2bf066d88f624070fedb8de8410940ab528ab8fc49c2a63020858900b61abae8a795fac74fabc6a7183931f80ac647ac8d64b3653b7224b385c098e8641a085c4a165c658c92708e50a47976d7d269a67edbafeaa0c1abd3511536821dc461c7d674732bae6dda3b9d00728c5266be63961803211442b7daf5260c290bfd4966a6aab0043b18e76968a2f8279204734ed0f5f0b1f0a18a9b70c789886e082d48aa840c531f0b99ca9e24e4a4115d7db8438d4a24ca8275648f38767791f7d2b7557bf3ace0f68a9ef19bb02b805c151acb42b5db35a23e054061327a7c9571ea70ee5b73a96f27e1aaaa0f6927cdb0d2d0023302a5e079d3c4a3984534e9a1e1a05c5287678db9a52fa805cde2ce96101aa7145d9a92fc356a68748e55d4849f3d557684c3121039f66861a52041680e64e70fe95e7226811957ced1c531ab83a9d26259f01417eeacfa7adcfbb06f5e1f3d0a4a3621cb200ed1e00deea310e9d373424918f15d4eec78deac73500d097af03eb0bab1968894d3b8efdef31a81c71469cf2901592a3b796ca5416fb908a7a90861ef600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001211175519adcdf78898a939563ef4c9761188e998167e220fd75ce33e7f954020df2fa69b4154327bc93d841be1d2c8ad0dc7eb158746a0efacfcbe18df64abc277e220ed91ec495e1e25d034e93540257d24841fbea12e977e10e1a57b4697e3d7118ea079ba657224a97f8126377941ced20bcd109a9a6164092361853620c04d53c9f7e5dd803af7fd5264edb8ddbb41cae166daa1f5a5cbfe4aaa012371e357d27cff8328a62daa64fce6d46eee79747433b6fd1dffe2114b81aa520d23d1a49a8d0bdd7802e3443fd92c049fe51d5f581f3e7e9f1db83696443313d76b716f3d98db462f74154a54b60f2eb9d02bf157af0f44c9590ba9c3a8187781a903a5455af27480e3f8f47f29769270c5034fe2e826038e7f1a465819f47d94d7211b4f57ffb37e5cf59eaaedb5b406a7d2140e1ca1291201a7f5e7949f9aa5d9f11287f52879263aaf5d8fa7afb6fc62287b7389d721231c2f28ab914ab7368c219876c025a96e1d9c83c4a06c514a2981033d3c3d11fc39ab6ab91ea2ad850fe0a25fba0fe2112738f7150298927361d531fc4c8117076b9042ae073506ed7e91ca08c259fa54dfe61df2b3d7bbd9430870e2912a903b7fc271366aedd002d791323fd0c824acd06b582ff9746b49298a1eccad3cc55796eb4fe2faeb9a6defd13295ebfcb3d35c474fa3f625a07624ec78269d8d9c5308cf0fbefabee98f56a29ea3d489b6b3729952c1510573ea379eecaa46eec297ebe5f1cd2f4bd60ab6322fc935f44d9d4727cebcdfc4e84f1c46b08f91c87cba1864c7794ab2d67506600000000000000a030616ad831836177181ad416d7c80b2cd741599f7eb06d1863b2dee410d4e8641ebe36197264d4d99cf4903a73e8d5d011d93acd7afbf1327c0e6c37b606430a1a3b4b42f3c62d81e6f6fad4f0c03d557d2ce545385ae3694fb3901fafe7936618de89a4d4d8f90b7a7c23516f3e186f67393434899a80d4233dcb12976baf19357c6a6e93e94cb578b4443fb222cc26796d981f12b15c531b28538840d998e705224a24583644849d9233e119a9242bdde2cc4314d1b7ffbb43800e0c18452e2a4fafed8d2c2ad255e9a5cc50e126478a818c94dd9c69b4fd91885815c2267808ca24fa3b72fbbb0b89785a0f1d2f7d59e48ce4e458fa88755fd2da31911c07326f8d2bce67658660659f5bbc22cb53e35dee6b9a66d535853501b2fd8d3d4f2b142c957034f82ea5477af0d046ec9380b8a840ae94e5eebf4a7f416267598108ca24fa3b72fbbb0b89785a0f1d2f7d59e48ce4e458fa88755fd2da31911c072a4fafed8d2c2ad255e9a5cc50e126478a818c94dd9c69b4fd91885815c22678249622323839671dbc9b5f26755c65a1740785970986be62acf9fa9ca77448af18824cc13f45bd015a89595e1627fe326c2406cbc26f3c430b4d2e0c0422f9b912a2ace629efdd85c57307f00b0492fff4b6029a3bab02faafca2837343df408207728019eaf49079c00163654f9c2c4efb016df864a6142c32732fb13154e770a50ed7c87e5e67337157c6881e9274803977a9a3288dc871be61535b19ffc74078c30d9c5424aa96d6a7f7737bd5360a692f591d5f0700808ab881cb84d1ae1151e3cc39e4b45b0554078321e992af91a68ea27239b8e006fc8b5d06cb172f81dfb98242a53e0dd0c32a5f441652acbc9fd2f529e59d63d0328a561daa1cf870d9c3c6a44c3de21ccc3edbaeddab9ad3a05bfc34fb95e8b180cbcd99391d02b3b6690f8420fda7c9a2040611eaa0d8f9846a6de271912a1231d4c955279794c18de89a4d4d8f90b7a7c23516f3e186f67393434899a80d4233dcb12976baf191a3b4b42f3c62d81e6f6fad4f0c03d557d2ce545385ae3694fb3901fafe793661194abef1973f31fe1c4823525ecd01b8f69f8569c0075821d57d685daded7ca1223c91f985609b6fdf8f139d77896f5c359f190354bbff9e1d4e67fe56e045406c257c4dc609b8b235f142bb4baca80674666d4ab603336e838789560ac5ee82c577d22ec3e8b023e1409faab438b447d1fb2a5169531068ab8e29ce6a6e397326f8d2bce67658660659f5bbc22cb53e35dee6b9a66d535853501b2fd8d3d4f2b142c957034f82ea5477af0d046ec9380b8a840ae94e5eebf4a7f416267598108ca24fa3b72fbbb0b89785a0f1d2f7d59e48ce4e458fa88755fd2da31911c072a4fafed8d2c2ad255e9a5cc50e126478a818c94dd9c69b4fd91885815c22678350af28cf50d07e85ee8bb610a8de384110f35b53bea85fc9f1def69f17e90a13a64aeb75b21987af3c5ef0b1f2c38921dd1e74fd8bba460b94c7bc2d86bf240061a0ac41155f3132be7cc29b2de0dbb6f212be72c835ab85299f748fa1a09932cffca23b749337a358b51fcad2048097544ed9295720985205763e94d3938ec06382274c7aae00f249210b3a20f72c7a4889eabad5224dd5d69df6d54bd8c5730095558e3cd33a7e3b598231fdeaa7d08a9d30b07d62aad0c9e52e4eba27e260439175b9728426087f0539296b211cdd0fe54dbe69411764f8438ec3a2fc3ea2ee0bd8c3176e42cd982ca93c94c43f71367c49ddb6152c7236d22460d237e952a29237cfcb41825395a65938834b1dc738270e0620e68573c730a42d8b949cc15e69d0a0f3ab75884abb08752dd7c8951aa2d85cedbcc917f956d058521c85a15b060356566b459b7ab399654de855cef941f3908dc307a2e1b6289910993b31d6974b263387233a9c7e4900b1fd067f4d1fa40b91933c344d5f8a8b649aecc08dc6490001c3d8d33900bcb8c1cb2de1e6a5f20705e6849b2dad24c33bb41f92f920ed953e2dfe4275dc6a0c03028239f44b71d2fa1bb0add2b09a7cef5cd4b1fd2429721a8eb4e48eba013a3516d2a2a737c6f875379285f6a01d33eeab5ad13479250a6f63b3f18877e12bcace89ab9f29d0a3aa1eb151387595f08688cd238a8df3c2192c8e8e5cbac6126fa4e7860dd2b1d189d8782ea7b7b84064ba4f82261202491aa01e71f032d87a5b6f5ed7a5e438e8beb4d4e7828b05dfb038d85207728019eaf49079c00163654f9c2c4efb016df864a6142c32732fb13154e7712a2ace629efdd85c57307f00b0492fff4b6029a3bab02faafca2837343df40821a5b776fc4f6f93a2714b8e11cc8e0614c0e6a3abb2ee34117ee6a1be9455fd366cf656227dafddbb7c30c46b56ebcde179760493e1ac5a4d63f6a090770cc21d6974b263387233a9c7e4900b1fd067f4d1fa40b91933c344d5f8a8b649aecc15b060356566b459b7ab399654de855cef941f3908dc307a2e1b6289910993b3352439bd2bf9ec09b614c22cabef48e43fa35326a73b6b04059abb30dbe269a51ba0b287294e138adc897092f7c0901a51b39fb1d8d914ed3f638ead35944710119447be3fa03c08a7cc35fccf5114a0fb10526fa4599062adac853ad2d78fa121858d2988feea84b9a6e82990ad4123e955c70a1d9bd3dac544d5f7747bb2de2a29237cfcb41825395a65938834b1dc738270e0620e68573c730a42d8b949cc15e69d0a0f3ab75884abb08752dd7c8951aa2d85cedbcc917f956d058521c85a15b060356566b459b7ab399654de855cef941f3908dc307a2e1b6289910993b31d6974b263387233a9c7e4900b1fd067f4d1fa40b91933c344d5f8a8b649aecc21c441b658c60cec60b52b64731121129d647bafd4b15a0a580aa66c5d3b409d183bd92449addf66d839370ec4e71706b5d5a32e88c65cc81d5ad929d319340b1e4b9d5f89f2d74925b66c1dde9212117d32a09649316d4bae9dd9bca92e47d514ce37883eac4f443bbcb208816c43b3673378e378c3f6f1c45381759e24faaa05deb1c833c96d9d9976e0d7bebbfe3f0e4ff90a1301f12a010e81137259498d3fa62e062c74cb70f4745a0d4b3ce73cb16d75e0ce4f3a5576f7b502c8eccb93319cde9b7fd5804e8324ac18aae5b7af1cd5338b1185e8268ea9076ff398b662017cf64c48c9a63ede4e720db5189e15c790e5eeb06f7c16e44853c253ba8c1d366cf656227dafddbb7c30c46b56ebcde179760493e1ac5a4d63f6a090770cc221a5b776fc4f6f93a2714b8e11cc8e0614c0e6a3abb2ee34117ee6a1be9455fd1d6974b263387233a9c7e4900b1fd067f4d1fa40b91933c344d5f8a8b649aecc15b060356566b459b7ab399654de855cef941f3908dc307a2e1b6289910993b3355e12a7bdc11f2155d5c98fd64240cc999ffb4e8bc7c8b2753cbd5f107a269010e73d561fd29eb1219dccfdc84cecc45555f697d2f0c119e7efc8ec327f36ff1dfb98242a53e0dd0c32a5f441652acbc9fd2f529e59d63d0328a561daa1cf87151e3cc39e4b45b0554078321e992af91a68ea27239b8e006fc8b5d06cb172f815e69d0a0f3ab75884abb08752dd7c8951aa2d85cedbcc917f956d058521c85a2a29237cfcb41825395a65938834b1dc738270e0620e68573c730a42d8b949cc15b060356566b459b7ab399654de855cef941f3908dc307a2e1b6289910993b31d6974b263387233a9c7e4900b1fd067f4d1fa40b91933c344d5f8a8b649aecc2f920ed953e2dfe4275dc6a0c03028239f44b71d2fa1bb0add2b09a7cef5cd4b08dc6490001c3d8d33900bcb8c1cb2de1e6a5f20705e6849b2dad24c33bb41f91fd2429721a8eb4e48eba013a3516d2a2a737c6f875379285f6a01d33eeab5ad13479250a6f63b3f18877e12bcace89ab9f29d0a3aa1eb151387595f08688cd2346094bf8b478389bf6fe54cb16f94421bc02db3540cc279a3bdeff4325a392e2d8061c6f3fc57ae543c0449e4d7f6b2f2745ba46749bd730d2532443a2c313a2ee0bd8c3176e42cd982ca93c94c43f71367c49ddb6152c7236d22460d237e950439175b9728426087f0539296b211cdd0fe54dbe69411764f8438ec3a2fc3ea1ba0b287294e138adc897092f7c0901a51b39fb1d8d914ed3f638ead35944710352439bd2bf9ec09b614c22cabef48e43fa35326a73b6b04059abb30dbe269a5119447be3fa03c08a7cc35fccf5114a0fb10526fa4599062adac853ad2d78fa121858d2988feea84b9a6e82990ad4123e955c70a1d9bd3dac544d5f7747bb2de30616ad831836177181ad416d7c80b2cd741599f7eb06d1863b2dee410d4e8641ebe36197264d4d99cf4903a73e8d5d011d93acd7afbf1327c0e6c37b606430a1a3b4b42f3c62d81e6f6fad4f0c03d557d2ce545385ae3694fb3901fafe7936618de89a4d4d8f90b7a7c23516f3e186f67393434899a80d4233dcb12976baf191a3eb64dada400aa3bafa6667497c15b9de431fb2f15d9756790d684b1f2f9051c81054f8692c8223b8fd15d0ff93c4c04ed6aa972e3a2a1360c3bf270e389211f667dc61866bd39e7a2022ac183304526c46f9a28e0d8e2c0134e4edaf74a8813b35721b038695379d11bfb9e7b257fbda1a9df99148b5ab2de0ce36c5bf7f71ebe36197264d4d99cf4903a73e8d5d011d93acd7afbf1327c0e6c37b606430a30616ad831836177181ad416d7c80b2cd741599f7eb06d1863b2dee410d4e8641a3b4b42f3c62d81e6f6fad4f0c03d557d2ce545385ae3694fb3901fafe7936618de89a4d4d8f90b7a7c23516f3e186f67393434899a80d4233dcb12976baf191a590196c7e963bf1fff2dfe5471edceb9e67546cecf1c9e7aa3451ad26eec260ae92505475dd4227890186628f7dfd032c3d6228e28beb831537722dcfbbe6425fd8f2ea2d5ed1a53fcb0d641340ea41b4ecac25877ab298770ab08ba5c4fca0d1c45b925c939730d766d501eca4720c9174eb7697db913eb80b0298cf6f2b52a67c9eec68de9ccd99bf35115830208a8d80182f448a8d8e7bb44b4abf7e16908787dc954e6cd40a9c858b7c548d892039e152615f1522bee0c22ab5183e8f10d1c45b925c939730d766d501eca4720c9174eb7697db913eb80b0298cf6f2b525fd8f2ea2d5ed1a53fcb0d641340ea41b4ecac25877ab298770ab08ba5c4fca3f210f8273076c9cc515abfea4942975a4e678676bb61cd8f791e266ef5f4eda2a0f2655804b72199da091a21b97c6dae6944baccb3b919abfc059ce53f0c2ea29ab7ff27c9a0e4d1ec836de4000fde587a8d3477e7a60981eec9cbfdee6a978096e54f54c05184042aae7481ffd57df5cbd4632437b03a55404be72686c9907346094bf8b478389bf6fe54cb16f94421bc02db3540cc279a3bdeff4325a392e2d8061c6f3fc57ae543c0449e4d7f6b2f2745ba46749bd730d2532443a2c313a2ee0bd8c3176e42cd982ca93c94c43f71367c49ddb6152c7236d22460d237e950439175b9728426087f0539296b211cdd0fe54dbe69411764f8438ec3a2fc3ea2b142c957034f82ea5477af0d046ec9380b8a840ae94e5eebf4a7f4162675981326f8d2bce67658660659f5bbc22cb53e35dee6b9a66d535853501b2fd8d3d4f08ca24fa3b72fbbb0b89785a0f1d2f7d59e48ce4e458fa88755fd2da31911c072a4fafed8d2c2ad255e9a5cc50e126478a818c94dd9c69b4fd91885815c2267821c441b658c60cec60b52b64731121129d647bafd4b15a0a580aa66c5d3b409d183bd92449addf66d839370ec4e71706b5d5a32e88c65cc81d5ad929d319340b1e4b9d5f89f2d74925b66c1dde9212117d32a09649316d4bae9dd9bca92e47d514ce37883eac4f443bbcb208816c43b3673378e378c3f6f1c45381759e24faaa08dc6490001c3d8d33900bcb8c1cb2de1e6a5f20705e6849b2dad24c33bb41f92f920ed953e2dfe4275dc6a0c03028239f44b71d2fa1bb0add2b09a7cef5cd4b1fd2429721a8eb4e48eba013a3516d2a2a737c6f875379285f6a01d33eeab5ad13479250a6f63b3f18877e12bcace89ab9f29d0a3aa1eb151387595f08688cd22261202491aa01e71f032d87a5b6f5ed7a5e438e8beb4d4e7828b05dfb038d8538a8df3c2192c8e8e5cbac6126fa4e7860dd2b1d189d8782ea7b7b84064ba4f8207728019eaf49079c00163654f9c2c4efb016df864a6142c32732fb13154e7712a2ace629efdd85c57307f00b0492fff4b6029a3bab02faafca2837343df408249622323839671dbc9b5f26755c65a1740785970986be62acf9fa9ca77448af18824cc13f45bd015a89595e1627fe326c2406cbc26f3c430b4d2e0c0422f9b912a2ace629efdd85c57307f00b0492fff4b6029a3bab02faafca2837343df408207728019eaf49079c00163654f9c2c4efb016df864a6142c32732fb13154e772261202491aa01e71f032d87a5b6f5ed7a5e438e8beb4d4e7828b05dfb038d8538a8df3c2192c8e8e5cbac6126fa4e7860dd2b1d189d8782ea7b7b84064ba4f8207728019eaf49079c00163654f9c2c4efb016df864a6142c32732fb13154e7712a2ace629efdd85c57307f00b0492fff4b6029a3bab02faafca2837343df40800188636aa67b820d7ab5bdac05eca5efd48cab1a6790384cb645c4e28e19e061285084f2015fdbfb65cfbad8dddf85edc1a2875df67a7573e53913948bec1be017cf64c48c9a63ede4e720db5189e15c790e5eeb06f7c16e44853c253ba8c1d319cde9b7fd5804e8324ac18aae5b7af1cd5338b1185e8268ea9076ff398b6621194abef1973f31fe1c4823525ecd01b8f69f8569c0075821d57d685daded7ca1223c91f985609b6fdf8f139d77896f5c359f190354bbff9e1d4e67fe56e045406c257c4dc609b8b235f142bb4baca80674666d4ab603336e838789560ac5ee82c577d22ec3e8b023e1409faab438b447d1fb2a5169531068ab8e29ce6a6e3972d716eb8ca4f2988e6f978e7d9e09417a8c99428322e4501066e4ed912d24b2119ec13570b24c5d1a25be6c5daa53b238146740dbe3c0a84cf7ebbd3889d790f21858d2988feea84b9a6e82990ad4123e955c70a1d9bd3dac544d5f7747bb2de119447be3fa03c08a7cc35fccf5114a0fb10526fa4599062adac853ad2d78fa100000000000000c800000000000000230000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000000000000000000002024f3af1b1647bb312c015a48502bdcba582529e56718776c1cf05694f83b3cf10000000000000001000000000000000000000000000000204b06bb483c21112f9cdd7eff56256a5630233353d836a5d668685bfdc6a4041e000000000000000100000000000000010000000000000020d80cc5cdbb0ec297cddfda4fd988de76b705f83576117fb5ed10b48a9b959bb0000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000230000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d700000000000000060000000000000001000000000000000000000000000000202be5b721f66cc6681fe5359f069c154e05e04221085880823ddb2fb35bed24a6000000000000000100000000000000000000000000000020c24bd4eaecf1b5c095cb7eac429e2ce90102f0ca60ff52a74fe5db4e953d8dd0000000000000000100000000000000010000000000000020a6eed3c09c5170a5d3c1062c3341c3036d029b89aae503c842e393d743e237ba0000000000000001000000000000000100000000000000203748da9612449e691c1f511a0efbeea445902a0cf00e315044ae222a6d0782d4000000000000000100000000000000010000000000000020adb8eaef73a8ceab26782ef60dd0142232fb9a5368bfb15c680181cf9256dd4d0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000002300000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000000000000000000020569d90b86503309433c7c99e5827ea62ee4ba020d2fb88a703c1f9e7bedb5b38000000000000000100000000000000000000000000000020a12f1b8c7f69eaa4f69aba8dc45f0ab3eff1ba06591468b63e11ec3c445e7ee50000000000000001000000000000000100000000000000208be58086853322c8773837b8c2d02f28fab5061c05f7e6ead40677855b6fb0680000000000000001000000000000000100000000000000204dabc344807c3be9f234ac57b07ac45d289ed74a80a158626d7735db33f22982000000000000000100000000000000010000000000000020380598ae7bc649d61608add40bfb9a587ce84ee9065865c8db1413f481d6dece000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b3500000000000000230000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb1800000000000000060000000000000001000000000000000000000000000000204b1c046191b69bcd33083df78f376ee183bbd08b39418e196718005800bb7a4f000000000000000100000000000000000000000000000020e3f83e35974ade46e1fe5aa51ecfb305ab4e1590369f9dec3078707aaf362f9d0000000000000001000000000000000100000000000000201977fdcf5661682556211603e997740023bc80e839a6dd5f44ed1335f0782e9e000000000000000100000000000000010000000000000020ef01a7c4ec3aea147cea8c1deb0ea39d6727493b384745fdac406d90cfbc0b33000000000000000100000000000000010000000000000020c7597d99c829d6efca97aa7e6ecd776d45c68e6dd9306fc794c4d2cee7e84c9f000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c1300000000000000230000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d0000000000000006000000000000000100000000000000000000000000000020c698c2634348509f708c4ef37ef1366bd8af0880fc88034bbf74f621a30333ed0000000000000001000000000000000000000000000000207ce772ccbc0ae2213cb947f11e4f01759238d1dc202de57f34dc74e798702e300000000000000001000000000000000100000000000000203f935f4aa83ceb889ec651c6c84d27f3bdbeb24bb028db70a3e821f3cd2e1f5e000000000000000100000000000000010000000000000020d980f4b45192828a9b5afbba0e11fe28b001e86e3b4b3a6e2f6172abc19d8be9000000000000000100000000000000010000000000000020757ff2f05cfaff6ea60a6597e42ed2757cd955e4cafcfb47ec86f9b10b51230b0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb16637400000000000000050000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020df632d8f7473aa2a266c94e0516913189d640957a4f03bdfca986886fba478de000000000000000100000000000000010000000000000020358c6702aa7ce3c8bdcd46a395295b533449972ac93e65796c809d3843af3e0a0000000000000001000000000000000000000000000000205653a7aef6c658c2fe00a9e102931ec0732cfb210b3c0f9786685131d83170b8000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000050000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d700000000000000060000000000000001000000000000000000000000000000203cc4d6f4068b2a3d2716264bab165a69ad04d9e3d16f90f56db4c5c2b14b75f30000000000000001000000000000000100000000000000204bdfd55727a4e8fe6e049768544b76e865da33953297497345b5034a1911585c0000000000000001000000000000000000000000000000203ad7fd5698e5be58de7990f933f6c7898b23643b5b9d816deaf9a417c23dd6210000000000000001000000000000000100000000000000201372e78c2c052b784180de542aa47eb2bb53d01169303993faf60c8d554b2f730000000000000001000000000000000100000000000000202cd923c9ad51045bfc9d9d6b2b0efad39d54053793269cc7b5293263cd4556ad00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000000500000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000000000000000000020da986286568ddd8f7d7003877738b6a6b05de67bca9e495f4a3b66f7384f878e00000000000000010000000000000001000000000000002015a4b0b0a407ffced35f42a201c1feab2727efdc00c38f7c4448627d366a3a380000000000000001000000000000000000000000000000203cb9947cedec25457c2378eb9b5b9f2c3987a6ee66012008ec2e902a544eb76f0000000000000001000000000000000100000000000000205174975bfdad7ff3af610fceab74f94ceda7360eaa76c78283f4bb4ba38cc30a00000000000000010000000000000001000000000000002066cf4d9926cdae82b6d9904873c2298bf88ff7798aff52ac7e80595bfebf56340000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b400000000000000050000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb1800000000000000060000000000000001000000000000000000000000000000201a12cfcb5fd072ec03ced0329427689faca3fbc03ceaea71c630e0dcfe62e4e6000000000000000100000000000000010000000000000020ad9166747b5d8d8f22b57aca30444a6c24aad17de4326fb6eac4fd474cab7996000000000000000100000000000000000000000000000020e8c2bb93a11dcf6040e149b57365ddc89686d90e4f80320a11731d6c268b54340000000000000001000000000000000100000000000000207eb1197c546bbc4e4a76048b12fa374c548aeba420b06d0659b57873e8f44b1700000000000000010000000000000001000000000000002062b119579f2ce99141f7a10eeb446a695c116edde54c9c8d3d41d0f6d978f97d000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a6100000000000000050000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d000000000000000600000000000000010000000000000000000000000000002042ad61f260aba0879e17239af95c2c60a84f2b0a2c301d487aac8cf9c6f3e44d000000000000000100000000000000010000000000000020186f223eebe6496ab3644dc79fe4a478eb1259742d0e8d7b4769e763da37722d0000000000000001000000000000000000000000000000208db56a61d427e46a782c8337a38ae7d73ddd6afd046087d3b3ad987f33397413000000000000000100000000000000010000000000000020891c853160123425a2c10c5935d96515b19498fdfbc3cb4d6c7dd56bb01ebe0a00000000000000010000000000000001000000000000002042a34b3906a2d85259fdd02f30f238b8f4b9b88b27d8a6bf5fabaa6d7c12ab0600000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b7740100000000000000350000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000207c94017f1fb6147ba3e921f88be16fe2b5cefa8f7a8b23bc85945becaf18382a000000000000000100000000000000010000000000000020c362cab2e6c4dc6ea82bb6f4ded48e2f8eb7e24ef0fa0baea7e88c5951f51ecf000000000000000100000000000000000000000000000020cacc7d788bbdb1c4d5dbf47f8afd9ed9b975d2203ba1769a80caa833f3fbb946000000000000000100000000000000010000000000000020f006cf8352bbf180ccb81999dec2d0377abf32ec1a119242758d07bf00181499000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000350000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d7000000000000000600000000000000010000000000000000000000000000002018a3b4c013647e1cfbf47871cb8b302ef9e473e62e01e9b067d5aeeb28e6103f0000000000000001000000000000000100000000000000203e9e1794e3ab8bcb877795560281d553e8d564cc0d8995ad218383984a27419800000000000000010000000000000000000000000000002033e7006db572644806c9d21830fc317d488d3eb37ab16177312161c83c96782e0000000000000001000000000000000100000000000000204704b2369bbb85eb35028b1dca7bb4fdd6aebd6e5749c4e94ddc7511a99d762e000000000000000100000000000000000000000000000020834d4a08f12e109ba3842642aba51324307db48367fe911f6f90ea4c90f658af0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000003500000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000000000000000000020e03e120bfea592791e0d8050ef119a6873beb1bcfa609b8aec6e00b998e4f52a0000000000000001000000000000000100000000000000204a5b2a11f8cc938e3d0997b8019e221c2da65049f3b278610fa9d8ac32e1998f000000000000000100000000000000000000000000000020d07b5012f25eb800ad0beb08df3a44b29e04313e7734d3f8b8d179deee3be79a000000000000000100000000000000010000000000000020ee29b766915a0b2bb8b3eed1a190e616f1054d1263bae454ff4b2c87c790d9f2000000000000000100000000000000000000000000000020e46de27951e7cf912bad485c8e6567eda41b075c193f312ae312f934169d3978000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b3500000000000000350000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb1800000000000000060000000000000001000000000000000000000000000000201eedfe555ecca0619357190efb72a2e0e891f0b2b578f5de7b0b2e4a3d67deb10000000000000001000000000000000100000000000000208e95ab803c0030b813a2496f4d8a902ce53652d50f4cffc6c5b46000ec6a9314000000000000000100000000000000000000000000000020239bbe1e783db329778bbdd317b229e92841e96b97e289b59ab7e65b7f8c697d000000000000000100000000000000010000000000000020fb4a60a9e1d778020d976922d17f02aa13de150f1ef9e070600c13e05e0cd3360000000000000001000000000000000000000000000000207b1b03ed11100190943c68158379b874102af65549a0dc5eb9bee52b887a1e5b000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c1300000000000000350000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d000000000000000600000000000000010000000000000000000000000000002052b20cbc892b02518f02ab01926164804a7f7707717d68262e04dda0f035122c000000000000000100000000000000010000000000000020445c5a1265a05ae3066b3916cf28f84c966cd53c4deebf7b241e510336742355000000000000000100000000000000000000000000000020e2e289844f36439c5d859f51d56bbc4b13a514529349a51a6cc18a699b5c2cb80000000000000001000000000000000100000000000000206fd0c241d082dddc763476a7c884f0f9949e0d0c60b662c9718f6a9990d86306000000000000000100000000000000000000000000000020c32a41143c0bed20f51da2399f8c92440338c8c1a4f71184e98747946cf91d0d0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb16637400000000000000310000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020de0239826f84300a4b930455833368a3b5ed681fe8962cfb4af828dc999da678000000000000000100000000000000010000000000000020b07fc62d561ac62b44d2a42d32b92ea5c1cc6bd1a2aaec7fc3bc3511de391ed20000000000000001000000000000000100000000000000205f3c867463c166fd9c0125885c51251e20c9b8d44030db7f8c699a0f747c2522000000000000000100000000000000010000000000000020f006cf8352bbf180ccb81999dec2d0377abf32ec1a119242758d07bf00181499000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000310000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d700000000000000060000000000000001000000000000000000000000000000201e990e27f0d7976bf2adbd60e20384da0125b76e2885a96aa707bcb054108b0d000000000000000100000000000000010000000000000020be315ca75a50a54647d6af6765170e8e260e2447ed5ba5b6c28e49cb9624ac8500000000000000010000000000000001000000000000002069bbf4e45f7cf39db228623b3f31279cf0279d75ab35bdc78bf8e5c11af26e2d0000000000000001000000000000000100000000000000204704b2369bbb85eb35028b1dca7bb4fdd6aebd6e5749c4e94ddc7511a99d762e000000000000000100000000000000000000000000000020834d4a08f12e109ba3842642aba51324307db48367fe911f6f90ea4c90f658af0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000003100000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000000000000000000020b97f093e23b2895b7de60bcf4223312f9129d8958945267c56f18a65dfd1fef80000000000000001000000000000000100000000000000203883af7544d26da8ce7644195720c73ab1e9fb5c37365aebac74a689d570c016000000000000000100000000000000010000000000000020b3dcc758a9e7e412a304b6eea80be32762cacd880a436e5c9f74b9147fc2af5b000000000000000100000000000000010000000000000020ee29b766915a0b2bb8b3eed1a190e616f1054d1263bae454ff4b2c87c790d9f2000000000000000100000000000000000000000000000020e46de27951e7cf912bad485c8e6567eda41b075c193f312ae312f934169d3978000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b3500000000000000310000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb1800000000000000060000000000000001000000000000000000000000000000208e81de10eb36dc9520ba4eab03023c233b7d200d834d94cdf3348f54895a5a1d000000000000000100000000000000010000000000000020bf4ed2215edd6feabe994b2473f201a59e5ea07ac0cbddb7e290c9f4bff7e566000000000000000100000000000000010000000000000020e6b0f46fb0cf4fad5f91e9a53771ca0f6326860e4e3112c40366b8b61d16fe08000000000000000100000000000000010000000000000020fb4a60a9e1d778020d976922d17f02aa13de150f1ef9e070600c13e05e0cd3360000000000000001000000000000000000000000000000207b1b03ed11100190943c68158379b874102af65549a0dc5eb9bee52b887a1e5b000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c1300000000000000310000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d0000000000000006000000000000000100000000000000000000000000000020d20d6a382c07d2115635b18e66695dfdaab93828db45674bc5ca2ad77a77305e0000000000000001000000000000000100000000000000203a2d04d0af50a10de82b7f1346324dd6aa93ab36d183810b0ddbbf44b95ba319000000000000000100000000000000010000000000000020bff790245007621d0f42d4c74e91a01ca1c7d45cfab67dc367cb6aab6570faa10000000000000001000000000000000100000000000000206fd0c241d082dddc763476a7c884f0f9949e0d0c60b662c9718f6a9990d86306000000000000000100000000000000000000000000000020c32a41143c0bed20f51da2399f8c92440338c8c1a4f71184e98747946cf91d0d0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb166374000000000000002b0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000202cc0a05107243620d3b647e265e82b8acebe905524da6da10e8bac593830a70900000000000000010000000000000000000000000000002064f12c9571923baec5fcc14481a7dfea3e02c1bfc8c062111edc34018395b7160000000000000001000000000000000100000000000000200ebe305ff48b2729427a6d3d9c605f9d8749d8a7f371875c0845a2841f05d610000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000002b0000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000000000000000000020a8ad856a7652d98d0c61f1f062edb9a3fe280f07df10db1252e185fabda6bbe100000000000000010000000000000000000000000000002001ca22f5f6f565ebc8cf6898b01e3982e7d217a07578883ba64a263ef5c28703000000000000000100000000000000010000000000000020aa8aaf7a9f2c4682ba9ba18998b5c7d9b5cec92d7d415f46af51866ad5d812c8000000000000000100000000000000000000000000000020de2df1a2bf6ab8bcb15302a439c8c59b426846d84a9a27c4f8cf974ecb5fc439000000000000000100000000000000010000000000000020adb8eaef73a8ceab26782ef60dd0142232fb9a5368bfb15c680181cf9256dd4d0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000002b00000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000000000000000000020fda552c5ca409b53109e02ee877c3594fc86265dfc70b9830cc0a56cd2e877d400000000000000010000000000000000000000000000002025ff8306245f7fe571c0349290a7be1bf895df290cf10339195c6999962b523200000000000000010000000000000001000000000000002012b2c25f0cf4525c6320e52750c92201fd654fce8944a872da5475b3d695badf0000000000000001000000000000000000000000000000201358541e6063a73bd5d17001b4e53dbcb7fdfa7e49ab2bda0741eb1f96553a39000000000000000100000000000000010000000000000020380598ae7bc649d61608add40bfb9a587ce84ee9065865c8db1413f481d6dece000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b35000000000000002b0000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb180000000000000006000000000000000100000000000000000000000000000020fb081ed0b66a97db003cc1b974f6ac159a25c24475f533727105a982163f7fec00000000000000010000000000000000000000000000002096ee2fc6e93824458606178354a7a00d4970e0b2c917c8b244f4a6c6d3c2e98e000000000000000100000000000000010000000000000020b77914e384a9047e3473fb351a9618aeab0e1f21754de24d9a50f7e34bd0f4e40000000000000001000000000000000000000000000000206dddcecd3e91e63334cc6fdbdc96a088e83a1ca9fc3e29ba5eda5ebb2decdce6000000000000000100000000000000010000000000000020c7597d99c829d6efca97aa7e6ecd776d45c68e6dd9306fc794c4d2cee7e84c9f000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c13000000000000002b0000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d000000000000000600000000000000010000000000000000000000000000002060c3679e22a252ece5ead9564b1c1f1f679a7d98a0517741b01ccd04bfdc72d3000000000000000100000000000000000000000000000020a985c851b448bc4a96b5437be4a584a5e549027156d04631b14ca427e292e115000000000000000100000000000000010000000000000020423a01aa2ffd993dfde30c95c6a57e30516214d0d8193fe602e5153aa78b7b69000000000000000100000000000000000000000000000020f29018eb67b28e0544e686c0f4bd5c31b00a7fc35696d87214de6da96160c60b000000000000000100000000000000010000000000000020757ff2f05cfaff6ea60a6597e42ed2757cd955e4cafcfb47ec86f9b10b51230b0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb16637400000000000000130000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020a51adb0dd5ff6139015f567454f916303ab3f39c830603b281712da0359980d000000000000000010000000000000000000000000000002077c77d7b993f04ae31fa6b6da7dff3c353004c11a049302a478e5dac04d508cf00000000000000010000000000000001000000000000002038c257c4acc7ae148c5c9b4409c82130df8554a30c1e722962697197980c56fb000000000000000100000000000000010000000000000020f158609c6b12d3609bdf1c7797edb538f985fe8ac4171f066b1d7b9c43c7bc3b0000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000130000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000000000000000000020fd9d9e400710596403b0ae049cec2b70b34facf8fb080ab8956cfb31c8bf7d9f000000000000000100000000000000000000000000000020c3807ec5f80a4e76ca630fc9b23c56d8237187af623941d2ed970f60cd51976c0000000000000001000000000000000100000000000000202a626f6e71a7040977f48f0331876fcd1bdf2afd39133fc91c8f911e06ecb5500000000000000001000000000000000100000000000000200af3a1e8f7893929d070fc6e79b7461d01674e4931d207f9ff44d0ec44d192ef000000000000000100000000000000000000000000000020b2179105904f600227797c6ccdb8959ff4252a36710715b942b644ee0a59f58d00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000001300000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c100000000000000060000000000000001000000000000000000000000000000206066300c9cb551cca764c0c41d3c9d95c9f587dbe4c74bb24032a5379cb56fd3000000000000000100000000000000000000000000000020b1cdfad78e6c2e96cb5505f5b487b05e69045ed6472bcdd5e14dac230b5a01f2000000000000000100000000000000010000000000000020c870cc5991224fe875c03d99dbfef8fbfeb41d1b1f43d327e63022667b3237e5000000000000000100000000000000010000000000000020ca595177c9eb6f3096754da5b9601c287818bfb8ed6752a05163c032b4d4c069000000000000000100000000000000000000000000000020286aa95516a0434f8968e2729d4c92308c9456ebf4a1d0d9d335e067c147e9ab0000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b400000000000000130000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb1800000000000000060000000000000001000000000000000000000000000000201be30fec72593c922e1fb8dd662d841d9cd0f7b58f19b4eb4dc2319aad93a23d000000000000000100000000000000000000000000000020031a8a34fb478e28af611966b2b8e1059869e10362a64db0f43d595ea412918e000000000000000100000000000000010000000000000020888cb07446656d63b2a096d8b1b156d05205811b0e48ebab0e2714854ab470de0000000000000001000000000000000100000000000000204a78e9eb44fea21926a2ac4fb17955446eb663b8130f9780a83ae405bdad6dbc00000000000000010000000000000000000000000000002059afffcfe907b7f651d0f62f3664c228c07fabe8b4015f54f0801603277ddbca000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a6100000000000000130000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d0000000000000006000000000000000100000000000000000000000000000020c9c6d6043c59524417655a5b42956e821dc2113337400069cd92342f28ce8ce5000000000000000100000000000000000000000000000020c74c3928c752eaf0d0080facafd37c21a8412e300fca7acf824a73a046c8b2900000000000000001000000000000000100000000000000202ab2bc596dfd3283c0f38816f230153ec7e09812548f97c0b3065918e43e8b250000000000000001000000000000000100000000000000209551c6da21b704f16621143cf4ae3bb0037aaa9f71b9ddbac1d1dc4d7841e9f2000000000000000100000000000000000000000000000020096a6ccd52081fca061f3bc4d84b362ef4fd8c1a120c9febbbfdfb49dadb617100000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b7740100000000000000290000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020afda8f08f851e66f41a25326acc738e8538b2349a3b415bc8993aee72bcbde67000000000000000100000000000000010000000000000020c600a084e5647679dce1e61667cd049aa01cd0b29e54cfef6b28350be80914810000000000000001000000000000000100000000000000200ebe305ff48b2729427a6d3d9c605f9d8749d8a7f371875c0845a2841f05d610000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000290000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000000000000000000020488dfd6cdb4f2e80929c5debb43a8b534761d20b7ba517b6fcefd831965d9a380000000000000001000000000000000100000000000000209f9bee513a75283462112f1ca2af8bd157d6c94c1864112cb461c22194cbc552000000000000000100000000000000010000000000000020aa8aaf7a9f2c4682ba9ba18998b5c7d9b5cec92d7d415f46af51866ad5d812c8000000000000000100000000000000000000000000000020de2df1a2bf6ab8bcb15302a439c8c59b426846d84a9a27c4f8cf974ecb5fc439000000000000000100000000000000010000000000000020adb8eaef73a8ceab26782ef60dd0142232fb9a5368bfb15c680181cf9256dd4d0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000002900000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000000000000000000020e820af01f14a35f54d5ebc8c69106dfe81cef61b5747ae8871f5505fefaa5c0600000000000000010000000000000001000000000000002057c569142e0c8f3bce388044ed66a39869c151160cb706b3171385e0a76a63be00000000000000010000000000000001000000000000002012b2c25f0cf4525c6320e52750c92201fd654fce8944a872da5475b3d695badf0000000000000001000000000000000000000000000000201358541e6063a73bd5d17001b4e53dbcb7fdfa7e49ab2bda0741eb1f96553a39000000000000000100000000000000010000000000000020380598ae7bc649d61608add40bfb9a587ce84ee9065865c8db1413f481d6dece000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b3500000000000000290000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb180000000000000006000000000000000100000000000000000000000000000020113e6bffa721e99e5d152594ba218f72e88742a06444f6286cffe63f5302e865000000000000000100000000000000010000000000000020f3293fb0f8fd810a186fbb5893e3954cd589abe33c61b368af3ae4a93febdf7d000000000000000100000000000000010000000000000020b77914e384a9047e3473fb351a9618aeab0e1f21754de24d9a50f7e34bd0f4e40000000000000001000000000000000000000000000000206dddcecd3e91e63334cc6fdbdc96a088e83a1ca9fc3e29ba5eda5ebb2decdce6000000000000000100000000000000010000000000000020c7597d99c829d6efca97aa7e6ecd776d45c68e6dd9306fc794c4d2cee7e84c9f000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c1300000000000000290000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d0000000000000006000000000000000100000000000000000000000000000020004c671ec0b3253de1c92ce54aefc9d3fd7628afe456557f80d4b4085bed631a000000000000000100000000000000010000000000000020f4e381e57cf0a37c06afa28615f52017494385618b33413cba97767de25cf7b0000000000000000100000000000000010000000000000020423a01aa2ffd993dfde30c95c6a57e30516214d0d8193fe602e5153aa78b7b69000000000000000100000000000000000000000000000020f29018eb67b28e0544e686c0f4bd5c31b00a7fc35696d87214de6da96160c60b000000000000000100000000000000010000000000000020757ff2f05cfaff6ea60a6597e42ed2757cd955e4cafcfb47ec86f9b10b51230b0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb16637400000000000000350000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000207c94017f1fb6147ba3e921f88be16fe2b5cefa8f7a8b23bc85945becaf18382a000000000000000100000000000000010000000000000020c362cab2e6c4dc6ea82bb6f4ded48e2f8eb7e24ef0fa0baea7e88c5951f51ecf000000000000000100000000000000000000000000000020cacc7d788bbdb1c4d5dbf47f8afd9ed9b975d2203ba1769a80caa833f3fbb946000000000000000100000000000000010000000000000020f006cf8352bbf180ccb81999dec2d0377abf32ec1a119242758d07bf00181499000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000350000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d7000000000000000600000000000000010000000000000000000000000000002018a3b4c013647e1cfbf47871cb8b302ef9e473e62e01e9b067d5aeeb28e6103f0000000000000001000000000000000100000000000000203e9e1794e3ab8bcb877795560281d553e8d564cc0d8995ad218383984a27419800000000000000010000000000000000000000000000002033e7006db572644806c9d21830fc317d488d3eb37ab16177312161c83c96782e0000000000000001000000000000000100000000000000204704b2369bbb85eb35028b1dca7bb4fdd6aebd6e5749c4e94ddc7511a99d762e000000000000000100000000000000000000000000000020834d4a08f12e109ba3842642aba51324307db48367fe911f6f90ea4c90f658af0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000003500000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000000000000000000020e03e120bfea592791e0d8050ef119a6873beb1bcfa609b8aec6e00b998e4f52a0000000000000001000000000000000100000000000000204a5b2a11f8cc938e3d0997b8019e221c2da65049f3b278610fa9d8ac32e1998f000000000000000100000000000000000000000000000020d07b5012f25eb800ad0beb08df3a44b29e04313e7734d3f8b8d179deee3be79a000000000000000100000000000000010000000000000020ee29b766915a0b2bb8b3eed1a190e616f1054d1263bae454ff4b2c87c790d9f2000000000000000100000000000000000000000000000020e46de27951e7cf912bad485c8e6567eda41b075c193f312ae312f934169d3978000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b3500000000000000350000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb1800000000000000060000000000000001000000000000000000000000000000201eedfe555ecca0619357190efb72a2e0e891f0b2b578f5de7b0b2e4a3d67deb10000000000000001000000000000000100000000000000208e95ab803c0030b813a2496f4d8a902ce53652d50f4cffc6c5b46000ec6a9314000000000000000100000000000000000000000000000020239bbe1e783db329778bbdd317b229e92841e96b97e289b59ab7e65b7f8c697d000000000000000100000000000000010000000000000020fb4a60a9e1d778020d976922d17f02aa13de150f1ef9e070600c13e05e0cd3360000000000000001000000000000000000000000000000207b1b03ed11100190943c68158379b874102af65549a0dc5eb9bee52b887a1e5b000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c1300000000000000350000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d000000000000000600000000000000010000000000000000000000000000002052b20cbc892b02518f02ab01926164804a7f7707717d68262e04dda0f035122c000000000000000100000000000000010000000000000020445c5a1265a05ae3066b3916cf28f84c966cd53c4deebf7b241e510336742355000000000000000100000000000000000000000000000020e2e289844f36439c5d859f51d56bbc4b13a514529349a51a6cc18a699b5c2cb80000000000000001000000000000000100000000000000206fd0c241d082dddc763476a7c884f0f9949e0d0c60b662c9718f6a9990d86306000000000000000100000000000000000000000000000020c32a41143c0bed20f51da2399f8c92440338c8c1a4f71184e98747946cf91d0d0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb16637400000000000000070000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020456e1d938e6648c4c29adf636e5183251a0ac349a008beb793b036853b4408e700000000000000010000000000000000000000000000002089f5f06a3eaa9feb6107ff18a664d8234f172a437fa0bd092c38efcfada850fb0000000000000001000000000000000000000000000000205653a7aef6c658c2fe00a9e102931ec0732cfb210b3c0f9786685131d83170b8000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000070000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d7000000000000000600000000000000010000000000000000000000000000002000bd34523e8c12c5fb78b0dfe518f0273d9d3a1f871b2752eb15c5a3cf6abe760000000000000001000000000000000000000000000000207bacd651a6b08d81c088f00a770346b0d1768e7ec85064689f582e046c302b130000000000000001000000000000000000000000000000203ad7fd5698e5be58de7990f933f6c7898b23643b5b9d816deaf9a417c23dd6210000000000000001000000000000000100000000000000201372e78c2c052b784180de542aa47eb2bb53d01169303993faf60c8d554b2f730000000000000001000000000000000100000000000000202cd923c9ad51045bfc9d9d6b2b0efad39d54053793269cc7b5293263cd4556ad00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000000700000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000000000000000000020acada65404b557523613fa3f7dffbacdf0759555117af3c4f5f519a8d7f0b8e40000000000000001000000000000000000000000000000208452af58f9ed0dbc14acbaa578cb5485a8503d7ee98bb6ae5dc5f153fb8628250000000000000001000000000000000000000000000000203cb9947cedec25457c2378eb9b5b9f2c3987a6ee66012008ec2e902a544eb76f0000000000000001000000000000000100000000000000205174975bfdad7ff3af610fceab74f94ceda7360eaa76c78283f4bb4ba38cc30a00000000000000010000000000000001000000000000002066cf4d9926cdae82b6d9904873c2298bf88ff7798aff52ac7e80595bfebf56340000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b400000000000000070000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb180000000000000006000000000000000100000000000000000000000000000020a03263d3e92b976fd0697d9e594d3f34cf011dcbd9340a75ac15e9e8f05ae0780000000000000001000000000000000000000000000000200024a7a0e916ea7fce2928db6dda2e9e4a515de80cbc986d22ad2e8ff707b1d2000000000000000100000000000000000000000000000020e8c2bb93a11dcf6040e149b57365ddc89686d90e4f80320a11731d6c268b54340000000000000001000000000000000100000000000000207eb1197c546bbc4e4a76048b12fa374c548aeba420b06d0659b57873e8f44b1700000000000000010000000000000001000000000000002062b119579f2ce99141f7a10eeb446a695c116edde54c9c8d3d41d0f6d978f97d000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a6100000000000000070000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d00000000000000060000000000000001000000000000000000000000000000207af61e01d7248138bef72f24397a12b1db30f02e2bdd3efa626db028d8a06f2a00000000000000010000000000000000000000000000002015c04c24102b69e60dc617bd642e1e1925fe64c3f3fb3be6c6afd64c9ca2c8d10000000000000001000000000000000000000000000000208db56a61d427e46a782c8337a38ae7d73ddd6afd046087d3b3ad987f33397413000000000000000100000000000000010000000000000020891c853160123425a2c10c5935d96515b19498fdfbc3cb4d6c7dd56bb01ebe0a00000000000000010000000000000001000000000000002042a34b3906a2d85259fdd02f30f238b8f4b9b88b27d8a6bf5fabaa6d7c12ab0600000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b7740100000000000000200000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000001000000000000002099c439552bc012b331f78711afcc02ab45f65be8ef9aef37b56c34fe5ec62561000000000000000100000000000000010000000000000020d3a8480b820bd6c782f5a7d8bc820d929996e9b8ab64d37789aa88140ba71654000000000000000100000000000000010000000000000020d80cc5cdbb0ec297cddfda4fd988de76b705f83576117fb5ed10b48a9b959bb0000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000200000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d7000000000000000600000000000000010000000000000001000000000000002030e6f340cd028a17639f6f312ae53a1cd81725f1375afcc8813813bd95a3dd2a000000000000000100000000000000010000000000000020bf61ac34db989373521cd06dc70a945f3e56ef96fbde05ecbb37b0d7b1e9ed0b000000000000000100000000000000010000000000000020a6eed3c09c5170a5d3c1062c3341c3036d029b89aae503c842e393d743e237ba0000000000000001000000000000000100000000000000203748da9612449e691c1f511a0efbeea445902a0cf00e315044ae222a6d0782d4000000000000000100000000000000010000000000000020adb8eaef73a8ceab26782ef60dd0142232fb9a5368bfb15c680181cf9256dd4d0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000002000000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020e71be17f145711830d96e74e37b492de01a3c49f3245874ff1cbc6ebb44291b4000000000000000100000000000000010000000000000020f70908251f98981e5ffca8177855753acbc26969f6d69c1f16fc2c3b036ffd6c0000000000000001000000000000000100000000000000208be58086853322c8773837b8c2d02f28fab5061c05f7e6ead40677855b6fb0680000000000000001000000000000000100000000000000204dabc344807c3be9f234ac57b07ac45d289ed74a80a158626d7735db33f22982000000000000000100000000000000010000000000000020380598ae7bc649d61608add40bfb9a587ce84ee9065865c8db1413f481d6dece000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b3500000000000000200000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb180000000000000006000000000000000100000000000000010000000000000020a0ef53296f9e83d63c9a80dc483d4a408ca6597be6fa89ba8b216a80f2290a0f000000000000000100000000000000010000000000000020043168d186aaeea0e9e9f3b273b2844c6bf5cfc132394831702c0d098815860c0000000000000001000000000000000100000000000000201977fdcf5661682556211603e997740023bc80e839a6dd5f44ed1335f0782e9e000000000000000100000000000000010000000000000020ef01a7c4ec3aea147cea8c1deb0ea39d6727493b384745fdac406d90cfbc0b33000000000000000100000000000000010000000000000020c7597d99c829d6efca97aa7e6ecd776d45c68e6dd9306fc794c4d2cee7e84c9f000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c1300000000000000200000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d0000000000000006000000000000000100000000000000010000000000000020969dddb32c807a9e65fbf191ab32497f73daee476a7322b52158e4b1e6b3c5ce0000000000000001000000000000000100000000000000205ace42c1f1bceaddeb2c4174889e3fbc8490969fc35812d4932983c46b42290c0000000000000001000000000000000100000000000000203f935f4aa83ceb889ec651c6c84d27f3bdbeb24bb028db70a3e821f3cd2e1f5e000000000000000100000000000000010000000000000020d980f4b45192828a9b5afbba0e11fe28b001e86e3b4b3a6e2f6172abc19d8be9000000000000000100000000000000010000000000000020757ff2f05cfaff6ea60a6597e42ed2757cd955e4cafcfb47ec86f9b10b51230b0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb166374000000000000002a0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000203da14c802e0b1caa6a7fdb57b49c71543b810414a29c1963edc1c2674d7504e500000000000000010000000000000000000000000000002064f12c9571923baec5fcc14481a7dfea3e02c1bfc8c062111edc34018395b7160000000000000001000000000000000100000000000000200ebe305ff48b2729427a6d3d9c605f9d8749d8a7f371875c0845a2841f05d610000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000002a0000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d700000000000000060000000000000001000000000000000100000000000000202b879cf039bc119f8962e5fcd67148df06a8b1defc43711ef972159394dccf2000000000000000010000000000000000000000000000002001ca22f5f6f565ebc8cf6898b01e3982e7d217a07578883ba64a263ef5c28703000000000000000100000000000000010000000000000020aa8aaf7a9f2c4682ba9ba18998b5c7d9b5cec92d7d415f46af51866ad5d812c8000000000000000100000000000000000000000000000020de2df1a2bf6ab8bcb15302a439c8c59b426846d84a9a27c4f8cf974ecb5fc439000000000000000100000000000000010000000000000020adb8eaef73a8ceab26782ef60dd0142232fb9a5368bfb15c680181cf9256dd4d0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000002a00000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020eef267b2f93774e7f79f1cc449383b364bd2d7bfdca55b70ea97e9598529f38a00000000000000010000000000000000000000000000002025ff8306245f7fe571c0349290a7be1bf895df290cf10339195c6999962b523200000000000000010000000000000001000000000000002012b2c25f0cf4525c6320e52750c92201fd654fce8944a872da5475b3d695badf0000000000000001000000000000000000000000000000201358541e6063a73bd5d17001b4e53dbcb7fdfa7e49ab2bda0741eb1f96553a39000000000000000100000000000000010000000000000020380598ae7bc649d61608add40bfb9a587ce84ee9065865c8db1413f481d6dece000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b35000000000000002a0000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb18000000000000000600000000000000010000000000000001000000000000002052a1d33f620fe09c1647d3c7e228eea85b52961f5d5f3771372ce567f0112bcb00000000000000010000000000000000000000000000002096ee2fc6e93824458606178354a7a00d4970e0b2c917c8b244f4a6c6d3c2e98e000000000000000100000000000000010000000000000020b77914e384a9047e3473fb351a9618aeab0e1f21754de24d9a50f7e34bd0f4e40000000000000001000000000000000000000000000000206dddcecd3e91e63334cc6fdbdc96a088e83a1ca9fc3e29ba5eda5ebb2decdce6000000000000000100000000000000010000000000000020c7597d99c829d6efca97aa7e6ecd776d45c68e6dd9306fc794c4d2cee7e84c9f000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c13000000000000002a0000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d00000000000000060000000000000001000000000000000100000000000000202db88c5be87f87cb16a3aeb8bc4012ff3957b15bbf0fa995d75de08580b74648000000000000000100000000000000000000000000000020a985c851b448bc4a96b5437be4a584a5e549027156d04631b14ca427e292e115000000000000000100000000000000010000000000000020423a01aa2ffd993dfde30c95c6a57e30516214d0d8193fe602e5153aa78b7b69000000000000000100000000000000000000000000000020f29018eb67b28e0544e686c0f4bd5c31b00a7fc35696d87214de6da96160c60b000000000000000100000000000000010000000000000020757ff2f05cfaff6ea60a6597e42ed2757cd955e4cafcfb47ec86f9b10b51230b0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb16637400000000000000280000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000203fc4f8175b9c92350566386ba4636deeb2ec6d4187f6d0d3208c3db577ee4c1a000000000000000100000000000000010000000000000020c600a084e5647679dce1e61667cd049aa01cd0b29e54cfef6b28350be80914810000000000000001000000000000000100000000000000200ebe305ff48b2729427a6d3d9c605f9d8749d8a7f371875c0845a2841f05d610000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000280000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000010000000000000020ff6f6655fe0735826a6d70429961f5593d2818d2dab010dae0a3abb68a0fdbc50000000000000001000000000000000100000000000000209f9bee513a75283462112f1ca2af8bd157d6c94c1864112cb461c22194cbc552000000000000000100000000000000010000000000000020aa8aaf7a9f2c4682ba9ba18998b5c7d9b5cec92d7d415f46af51866ad5d812c8000000000000000100000000000000000000000000000020de2df1a2bf6ab8bcb15302a439c8c59b426846d84a9a27c4f8cf974ecb5fc439000000000000000100000000000000010000000000000020adb8eaef73a8ceab26782ef60dd0142232fb9a5368bfb15c680181cf9256dd4d0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000002800000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020e85d96fec3a6507cb57112edfe7e33cd7c17a1bea23cafeb6446dc341e7c1fec00000000000000010000000000000001000000000000002057c569142e0c8f3bce388044ed66a39869c151160cb706b3171385e0a76a63be00000000000000010000000000000001000000000000002012b2c25f0cf4525c6320e52750c92201fd654fce8944a872da5475b3d695badf0000000000000001000000000000000000000000000000201358541e6063a73bd5d17001b4e53dbcb7fdfa7e49ab2bda0741eb1f96553a39000000000000000100000000000000010000000000000020380598ae7bc649d61608add40bfb9a587ce84ee9065865c8db1413f481d6dece000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b3500000000000000280000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb1800000000000000060000000000000001000000000000000100000000000000202e4bbc0d83afad6229babb666e584c56ef9bcc9b26e67a2d85f6ea8666f56ef4000000000000000100000000000000010000000000000020f3293fb0f8fd810a186fbb5893e3954cd589abe33c61b368af3ae4a93febdf7d000000000000000100000000000000010000000000000020b77914e384a9047e3473fb351a9618aeab0e1f21754de24d9a50f7e34bd0f4e40000000000000001000000000000000000000000000000206dddcecd3e91e63334cc6fdbdc96a088e83a1ca9fc3e29ba5eda5ebb2decdce6000000000000000100000000000000010000000000000020c7597d99c829d6efca97aa7e6ecd776d45c68e6dd9306fc794c4d2cee7e84c9f000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c1300000000000000280000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d0000000000000006000000000000000100000000000000010000000000000020eeb1dac8a39aea60d4db1d7dd20432d1d1dc195a841fadaaf47afcf343ff8715000000000000000100000000000000010000000000000020f4e381e57cf0a37c06afa28615f52017494385618b33413cba97767de25cf7b0000000000000000100000000000000010000000000000020423a01aa2ffd993dfde30c95c6a57e30516214d0d8193fe602e5153aa78b7b69000000000000000100000000000000000000000000000020f29018eb67b28e0544e686c0f4bd5c31b00a7fc35696d87214de6da96160c60b000000000000000100000000000000010000000000000020757ff2f05cfaff6ea60a6597e42ed2757cd955e4cafcfb47ec86f9b10b51230b0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb16637400000000000000210000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000208ce1cc949d66e29c2c057237e5763104b0ae5ea1586e63baefa724176f8b6022000000000000000100000000000000010000000000000020d3a8480b820bd6c782f5a7d8bc820d929996e9b8ab64d37789aa88140ba71654000000000000000100000000000000010000000000000020d80cc5cdbb0ec297cddfda4fd988de76b705f83576117fb5ed10b48a9b959bb0000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000210000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000000000000000000020b16a9bdf162fda00fc0e70eb3cceae666ae1ab99f20ce87968b758365151f4c2000000000000000100000000000000010000000000000020bf61ac34db989373521cd06dc70a945f3e56ef96fbde05ecbb37b0d7b1e9ed0b000000000000000100000000000000010000000000000020a6eed3c09c5170a5d3c1062c3341c3036d029b89aae503c842e393d743e237ba0000000000000001000000000000000100000000000000203748da9612449e691c1f511a0efbeea445902a0cf00e315044ae222a6d0782d4000000000000000100000000000000010000000000000020adb8eaef73a8ceab26782ef60dd0142232fb9a5368bfb15c680181cf9256dd4d0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000002100000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000000000000000000020edd6e91502d2b977f092e4202cc7cda95aba7b5d737f548a5e85763668ded664000000000000000100000000000000010000000000000020f70908251f98981e5ffca8177855753acbc26969f6d69c1f16fc2c3b036ffd6c0000000000000001000000000000000100000000000000208be58086853322c8773837b8c2d02f28fab5061c05f7e6ead40677855b6fb0680000000000000001000000000000000100000000000000204dabc344807c3be9f234ac57b07ac45d289ed74a80a158626d7735db33f22982000000000000000100000000000000010000000000000020380598ae7bc649d61608add40bfb9a587ce84ee9065865c8db1413f481d6dece000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b3500000000000000210000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb18000000000000000600000000000000010000000000000000000000000000002093e22b4e50491503d5bdc6873fe093f51b5badbda8fd72b96029aaeb22e14747000000000000000100000000000000010000000000000020043168d186aaeea0e9e9f3b273b2844c6bf5cfc132394831702c0d098815860c0000000000000001000000000000000100000000000000201977fdcf5661682556211603e997740023bc80e839a6dd5f44ed1335f0782e9e000000000000000100000000000000010000000000000020ef01a7c4ec3aea147cea8c1deb0ea39d6727493b384745fdac406d90cfbc0b33000000000000000100000000000000010000000000000020c7597d99c829d6efca97aa7e6ecd776d45c68e6dd9306fc794c4d2cee7e84c9f000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c1300000000000000210000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d000000000000000600000000000000010000000000000000000000000000002062fc8ac95257388610adce146896b0fe164c35de3615315ce37c94362c3ca12c0000000000000001000000000000000100000000000000205ace42c1f1bceaddeb2c4174889e3fbc8490969fc35812d4932983c46b42290c0000000000000001000000000000000100000000000000203f935f4aa83ceb889ec651c6c84d27f3bdbeb24bb028db70a3e821f3cd2e1f5e000000000000000100000000000000010000000000000020d980f4b45192828a9b5afbba0e11fe28b001e86e3b4b3a6e2f6172abc19d8be9000000000000000100000000000000010000000000000020757ff2f05cfaff6ea60a6597e42ed2757cd955e4cafcfb47ec86f9b10b51230b0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb166374000000000000003a0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000001000000000000002066841718146867c46697817f5ad4a32f40d77c108be7ddf292d547603ec7cce50000000000000001000000000000000000000000000000202a1591c11c677fc468a4483f514231a56ae5d435542b52abb4669a83798d4aa4000000000000000100000000000000010000000000000020f8aa5e6a5b89d4a39d02bfe4f6c3c38deda3ec6df5ade3707863ea2453f03b73000000000000000100000000000000000000000000000020228ad46578c60a8ae293c5203eb65e05045bb3651cc7f9dca5fdd52a9c021f9f000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000003a0000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d700000000000000060000000000000001000000000000000100000000000000200bd85abbc5447b9b91ce701f90f6ec3cdd2f6a6d5b995c1f894f1559863639e7000000000000000100000000000000000000000000000020a3382282565a2348379a8809d1633bce19f9b402e7df81ac45b49df9833ab4ee000000000000000100000000000000010000000000000020b86cbaa5f3ebbb54eabe58b561586e965d9be0d57d09c912670f297c1aa770ee000000000000000100000000000000000000000000000020ae2681625695656544908c6600da3d5e23732255a026f79142419ed6e5de801c000000000000000100000000000000000000000000000020834d4a08f12e109ba3842642aba51324307db48367fe911f6f90ea4c90f658af0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000003a00000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020bac6e5d9254049e95681f17d6c253418b95c1b4cbf4c4ca683ac642f7d2d268e0000000000000001000000000000000000000000000000208ea721d5471e754fe3835bb2d9612855948a98e9fa312507f5105b5f0e6710f5000000000000000100000000000000010000000000000020ff8415d95946f6defc522f860ad50edcd65ce4c87d413722e09bd10ebadcd8a90000000000000001000000000000000000000000000000206034a4e1125241ee68cbda27dde8d3a427ff22a049d81b822fa9a05d5c54d5c2000000000000000100000000000000000000000000000020e46de27951e7cf912bad485c8e6567eda41b075c193f312ae312f934169d3978000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b35000000000000003a0000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb18000000000000000600000000000000010000000000000001000000000000002074526f96161c1ce64b926036a502640765c9faef6f1614f073dff7cd0b7a479c000000000000000100000000000000000000000000000020566f54a9600fb9da3bcb98fc5ca4ff69493071e9dae250688e84c129dad987080000000000000001000000000000000100000000000000206ba37105ae627754adaf682291022bf869c50df44eed569f1f1821a00c6323f50000000000000001000000000000000000000000000000206371b95d2487c52a39ef0f5c7e63ca7d4f519524144f4b89a5f2a8b15e474ced0000000000000001000000000000000000000000000000207b1b03ed11100190943c68158379b874102af65549a0dc5eb9bee52b887a1e5b000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c13000000000000003a0000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d0000000000000006000000000000000100000000000000010000000000000020a73429a4f016c315ad660fee4b27ecb64008b6efe3853687d501bbd7335e22dd0000000000000001000000000000000000000000000000203c212c4969bb2eef8fcd103405df7e68349db0d98b71d01fd4e3a0d700614bc9000000000000000100000000000000010000000000000020f19a0b6b665194a8579431914fd2cda6bb8fdefe398f63ee82982271c13f0c180000000000000001000000000000000000000000000000208d91b60990ea1fb4ea3fa2328a10287c6aff5d15d99af6a4932822cea35a074d000000000000000100000000000000000000000000000020c32a41143c0bed20f51da2399f8c92440338c8c1a4f71184e98747946cf91d0d0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb16637400000000000000040000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000205825f928f03cd4d9f2cc8a75322b12c7865a1397104c644c6e89be16cfebaa6a000000000000000100000000000000010000000000000020358c6702aa7ce3c8bdcd46a395295b533449972ac93e65796c809d3843af3e0a0000000000000001000000000000000000000000000000205653a7aef6c658c2fe00a9e102931ec0732cfb210b3c0f9786685131d83170b8000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000040000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000010000000000000020bb967f04553aa97bf02ce7e0f8e69e564a41a76853c27b65e40984dd736d4de00000000000000001000000000000000100000000000000204bdfd55727a4e8fe6e049768544b76e865da33953297497345b5034a1911585c0000000000000001000000000000000000000000000000203ad7fd5698e5be58de7990f933f6c7898b23643b5b9d816deaf9a417c23dd6210000000000000001000000000000000100000000000000201372e78c2c052b784180de542aa47eb2bb53d01169303993faf60c8d554b2f730000000000000001000000000000000100000000000000202cd923c9ad51045bfc9d9d6b2b0efad39d54053793269cc7b5293263cd4556ad00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000000400000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020641e2dbc71c39e4ff90a5d26fada4e6045611f7e25f1887f99150d516b2199d100000000000000010000000000000001000000000000002015a4b0b0a407ffced35f42a201c1feab2727efdc00c38f7c4448627d366a3a380000000000000001000000000000000000000000000000203cb9947cedec25457c2378eb9b5b9f2c3987a6ee66012008ec2e902a544eb76f0000000000000001000000000000000100000000000000205174975bfdad7ff3af610fceab74f94ceda7360eaa76c78283f4bb4ba38cc30a00000000000000010000000000000001000000000000002066cf4d9926cdae82b6d9904873c2298bf88ff7798aff52ac7e80595bfebf56340000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b400000000000000040000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb1800000000000000060000000000000001000000000000000100000000000000205358665320ec64c3eb2d603f5c22b48301304b5c1f81a8622cb2233e10d22e08000000000000000100000000000000010000000000000020ad9166747b5d8d8f22b57aca30444a6c24aad17de4326fb6eac4fd474cab7996000000000000000100000000000000000000000000000020e8c2bb93a11dcf6040e149b57365ddc89686d90e4f80320a11731d6c268b54340000000000000001000000000000000100000000000000207eb1197c546bbc4e4a76048b12fa374c548aeba420b06d0659b57873e8f44b1700000000000000010000000000000001000000000000002062b119579f2ce99141f7a10eeb446a695c116edde54c9c8d3d41d0f6d978f97d000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a6100000000000000040000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d0000000000000006000000000000000100000000000000010000000000000020ef7b90f44a675e8b6722f0bdc925fedbe07591e0f9244c8314a54a16a9b0b069000000000000000100000000000000010000000000000020186f223eebe6496ab3644dc79fe4a478eb1259742d0e8d7b4769e763da37722d0000000000000001000000000000000000000000000000208db56a61d427e46a782c8337a38ae7d73ddd6afd046087d3b3ad987f33397413000000000000000100000000000000010000000000000020891c853160123425a2c10c5935d96515b19498fdfbc3cb4d6c7dd56bb01ebe0a00000000000000010000000000000001000000000000002042a34b3906a2d85259fdd02f30f238b8f4b9b88b27d8a6bf5fabaa6d7c12ab0600000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b77401000000000000002a0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000203da14c802e0b1caa6a7fdb57b49c71543b810414a29c1963edc1c2674d7504e500000000000000010000000000000000000000000000002064f12c9571923baec5fcc14481a7dfea3e02c1bfc8c062111edc34018395b7160000000000000001000000000000000100000000000000200ebe305ff48b2729427a6d3d9c605f9d8749d8a7f371875c0845a2841f05d610000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000002a0000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d700000000000000060000000000000001000000000000000100000000000000202b879cf039bc119f8962e5fcd67148df06a8b1defc43711ef972159394dccf2000000000000000010000000000000000000000000000002001ca22f5f6f565ebc8cf6898b01e3982e7d217a07578883ba64a263ef5c28703000000000000000100000000000000010000000000000020aa8aaf7a9f2c4682ba9ba18998b5c7d9b5cec92d7d415f46af51866ad5d812c8000000000000000100000000000000000000000000000020de2df1a2bf6ab8bcb15302a439c8c59b426846d84a9a27c4f8cf974ecb5fc439000000000000000100000000000000010000000000000020adb8eaef73a8ceab26782ef60dd0142232fb9a5368bfb15c680181cf9256dd4d0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000002a00000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020eef267b2f93774e7f79f1cc449383b364bd2d7bfdca55b70ea97e9598529f38a00000000000000010000000000000000000000000000002025ff8306245f7fe571c0349290a7be1bf895df290cf10339195c6999962b523200000000000000010000000000000001000000000000002012b2c25f0cf4525c6320e52750c92201fd654fce8944a872da5475b3d695badf0000000000000001000000000000000000000000000000201358541e6063a73bd5d17001b4e53dbcb7fdfa7e49ab2bda0741eb1f96553a39000000000000000100000000000000010000000000000020380598ae7bc649d61608add40bfb9a587ce84ee9065865c8db1413f481d6dece000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b35000000000000002a0000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb18000000000000000600000000000000010000000000000001000000000000002052a1d33f620fe09c1647d3c7e228eea85b52961f5d5f3771372ce567f0112bcb00000000000000010000000000000000000000000000002096ee2fc6e93824458606178354a7a00d4970e0b2c917c8b244f4a6c6d3c2e98e000000000000000100000000000000010000000000000020b77914e384a9047e3473fb351a9618aeab0e1f21754de24d9a50f7e34bd0f4e40000000000000001000000000000000000000000000000206dddcecd3e91e63334cc6fdbdc96a088e83a1ca9fc3e29ba5eda5ebb2decdce6000000000000000100000000000000010000000000000020c7597d99c829d6efca97aa7e6ecd776d45c68e6dd9306fc794c4d2cee7e84c9f000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c13000000000000002a0000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d00000000000000060000000000000001000000000000000100000000000000202db88c5be87f87cb16a3aeb8bc4012ff3957b15bbf0fa995d75de08580b74648000000000000000100000000000000000000000000000020a985c851b448bc4a96b5437be4a584a5e549027156d04631b14ca427e292e115000000000000000100000000000000010000000000000020423a01aa2ffd993dfde30c95c6a57e30516214d0d8193fe602e5153aa78b7b69000000000000000100000000000000000000000000000020f29018eb67b28e0544e686c0f4bd5c31b00a7fc35696d87214de6da96160c60b000000000000000100000000000000010000000000000020757ff2f05cfaff6ea60a6597e42ed2757cd955e4cafcfb47ec86f9b10b51230b0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb166374000000000000001e0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000205b22e826fa41eab497f0d44485ed30b89e70dc3b8991721ecacea7676a1160ba000000000000000100000000000000000000000000000020a99b7e2901520fe9aa438e0b1d9ff1d42abd1e4774fe50a7af9abfdd5aeb49f0000000000000000100000000000000000000000000000020cd05d024922075f0d2191dff6b6b8977913542096c687b1aa6a6880a30f4f1780000000000000001000000000000000000000000000000207a1424d413417eb28a018fd1d76958181366ee57c4d59ae0034a29ddbb1d2b590000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000001e0000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000010000000000000020fffa47f999332d217b19eabd033573400a15630199197996e7e966d946928621000000000000000100000000000000000000000000000020e4abb87721ae1731bc6aee7f24bfdd8424c2c6d8fbd25e4e6d14f0b8b89a9664000000000000000100000000000000000000000000000020222c544f148f9e2b69e62cf11604f62aedfeda5a2bf20333ab12db04391e1a6d0000000000000001000000000000000000000000000000203258c2185d1d63acd1aab64a5513a9468432cf501909d54ec3aa84f0a8f84962000000000000000100000000000000000000000000000020b2179105904f600227797c6ccdb8959ff4252a36710715b942b644ee0a59f58d00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000001e00000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020debcf67c70d7ff29fee1f88827155d5410763847b214bd82213c780b45e8f7a700000000000000010000000000000000000000000000002065d85d8c2a0115a8cf0c8a7e9d003cfe4b02af86cf2e9b981a364b28d8d281f00000000000000001000000000000000000000000000000209aa1948e3d99cb3b036e7ef33e14ce04a4e5cc9bddb460b8d2d06114c32e7a4e000000000000000100000000000000000000000000000020ce8ff34b824516fef1d61fe9556d5193458470c305764910ea9218ddaa9ad9ba000000000000000100000000000000000000000000000020286aa95516a0434f8968e2729d4c92308c9456ebf4a1d0d9d335e067c147e9ab0000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b4000000000000001e0000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb180000000000000006000000000000000100000000000000010000000000000020d1b29b21587f2d8214fe81ce26413e3fa76302367383381cd12269ff3aa3b319000000000000000100000000000000000000000000000020a59ae923fd8f26d96a5ee4e9945c4d1b7c0ce303eda6b4151426537cecb84b8500000000000000010000000000000000000000000000002029724ed730bbc4b42c8b49d3b94cce1548c55b75c5515c93ca1f583d8fe255fe000000000000000100000000000000000000000000000020340ed050ea4713aa4ad4c013afbd38231c302d097b43c9bf5b9952d7fedb3ed500000000000000010000000000000000000000000000002059afffcfe907b7f651d0f62f3664c228c07fabe8b4015f54f0801603277ddbca000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a61000000000000001e0000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d0000000000000006000000000000000100000000000000010000000000000020968ec45a2b99b74562efa3d959a153c08585a8e4e85407b6f4a28296a0bd5e85000000000000000100000000000000000000000000000020a3b1bc416c9ea8007ee12b4a820af52d380d61ee7cd216690c8d8ba08ebcfbe500000000000000010000000000000000000000000000002015afb35775e6e2eda131732d194c3d3679db33fd87ecb15fcfc9cf3438b28ec20000000000000001000000000000000000000000000000203dbbc5b1a055b07e8b25c1203a98ebcf464623a32a8902f4070142539176922e000000000000000100000000000000000000000000000020096a6ccd52081fca061f3bc4d84b362ef4fd8c1a120c9febbbfdfb49dadb617100000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b77401000000000000000c0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020724ffd0f25aa4e243d2c307552ed37381703107372320593eb3a4d313b319f910000000000000001000000000000000100000000000000207632194eaa79882c73a99557dd547ccd6fd120c5b43667fce4768d60ee466a6d000000000000000100000000000000000000000000000020266533c386eaecf62505c82a33fc748ed3dfb0dd1f1c3b6ef1c350f30907840f000000000000000100000000000000000000000000000020a07353c5029eac2f5fb14b7aaa839b9ff2b01dd6feeb51c341820462ab766306000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000000c0000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000010000000000000020b7af4df2e4e1bef32bf51b93f5fb9fe1ca7be512f8d2cf8bc8b40f8ec4d8dc4200000000000000010000000000000001000000000000002036c527f38ba150c745e5ae60411f506098bdf86cb6bd564da89d0942607645f9000000000000000100000000000000000000000000000020d03ccda124d8800a1d33a7f93024a19b8baeea9c3821b098841700302b63eba70000000000000001000000000000000000000000000000202717b608b77aec8c8d8783630dec709b54718844e1012ddc67432a406a63feb90000000000000001000000000000000100000000000000202cd923c9ad51045bfc9d9d6b2b0efad39d54053793269cc7b5293263cd4556ad00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000000c00000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020f2de7e53c6ddf83de89a41a069bc40c29843df888863c94c0acd6e6895fb9f4800000000000000010000000000000001000000000000002076228b8e531b8d5f997dc80ac27dbbd7324fb2a1b8ac2d0b3b030ff98f3dc24400000000000000010000000000000000000000000000002031fc562ddf11fc88d6bdf3109fec4ff50707e4f54d9c887b58d44b4e09be82bc000000000000000100000000000000000000000000000020a162e2cf345ada1eea741227964abb3ee016cf2ce04810595bc3b201b9d0363200000000000000010000000000000001000000000000002066cf4d9926cdae82b6d9904873c2298bf88ff7798aff52ac7e80595bfebf56340000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b4000000000000000c0000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb180000000000000006000000000000000100000000000000010000000000000020c8c079b139e63e1100ad917d4916dc2348f0df28c22ccd71c7554bd539222f70000000000000000100000000000000010000000000000020d7d8938cd35ffba8310bb2658a1141cee2126174b14b47ecce22cb407bc9ca1e00000000000000010000000000000000000000000000002061afce6e37c92c01cdbe7efe726e19c630545464c6895e32251a3599df43f1f300000000000000010000000000000000000000000000002095636ea8fb795fa91608dfead769f20d6afc0ed00898ce84ee0e4435366f835000000000000000010000000000000001000000000000002062b119579f2ce99141f7a10eeb446a695c116edde54c9c8d3d41d0f6d978f97d000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a61000000000000000c0000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d0000000000000006000000000000000100000000000000010000000000000020e3e8a31a2ecf4d072ddfe9b1eda29d40deae4ddd4037c5f06583b6a3dc863d69000000000000000100000000000000010000000000000020045d09690e69bb8eb4c8fd50ee15fac62e81141637c0f4e53ccec618f53b89920000000000000001000000000000000000000000000000200316d6940988b1b812e40a0f10d4fa36f0b3357de03a86711510b72df4241d26000000000000000100000000000000000000000000000020bae2fdf379a6a2f75540a7eabfee073c764f32513ff612f046db0c7935764b2500000000000000010000000000000001000000000000002042a34b3906a2d85259fdd02f30f238b8f4b9b88b27d8a6bf5fabaa6d7c12ab0600000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b77401000000000000001a0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000001000000000000002009cefee4d021530099af80f0676e54eff00d072d7fd616fcdb2288ae33ddb24800000000000000010000000000000000000000000000002025869b3bfc83d2ac9e22b0435bc7b9eecebd9af67bb1ab70c73af73bbfb82aaa00000000000000010000000000000001000000000000002041b447898ab19c91b1dbde93ea50c40354c2647926dd2df1d267edeeb4fa5b900000000000000001000000000000000000000000000000207a1424d413417eb28a018fd1d76958181366ee57c4d59ae0034a29ddbb1d2b590000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000001a0000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000010000000000000020b62dcb3b686ab9d15afa2b8bef976d3bd5a06560ac75ced764cc2aa9179c3f34000000000000000100000000000000000000000000000020ad1c1e61efd3347399cf357ef818754d0a59af530b4a7cf6f1a8006b8cabbf41000000000000000100000000000000010000000000000020f49ee3cf725e461ee703238ed32a63c62a4ef9bf0cc5bcabe7293fc2d7f1d14a0000000000000001000000000000000000000000000000203258c2185d1d63acd1aab64a5513a9468432cf501909d54ec3aa84f0a8f84962000000000000000100000000000000000000000000000020b2179105904f600227797c6ccdb8959ff4252a36710715b942b644ee0a59f58d00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000001a00000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020dd340652eaf1514dbff25c0f7257bf2c2c3e460b0db73864120ca688f7a3a6d20000000000000001000000000000000000000000000000207be4ecad6a428c1249e6b7abfbd56cbd707113af1095ce941083f63d982cd4ce00000000000000010000000000000001000000000000002023edfc8b702ed16d0be187572518938574ede83c38d974c56d1466591283316c000000000000000100000000000000000000000000000020ce8ff34b824516fef1d61fe9556d5193458470c305764910ea9218ddaa9ad9ba000000000000000100000000000000000000000000000020286aa95516a0434f8968e2729d4c92308c9456ebf4a1d0d9d335e067c147e9ab0000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b4000000000000001a0000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb180000000000000006000000000000000100000000000000010000000000000020420ce98a88c394e6d0d91d641dcb1e3f9be4aec22a54b3651f87d633c18051820000000000000001000000000000000000000000000000202f80212845c4cb7b806f51a1e2bf511286c7bc245ea2228a0a8fe4fc2069bb370000000000000001000000000000000100000000000000205cfdb0b1b80f97bcb16568f9f091afade9ed23e488cd250cf9ae81ad08e1f2b6000000000000000100000000000000000000000000000020340ed050ea4713aa4ad4c013afbd38231c302d097b43c9bf5b9952d7fedb3ed500000000000000010000000000000000000000000000002059afffcfe907b7f651d0f62f3664c228c07fabe8b4015f54f0801603277ddbca000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a61000000000000001a0000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d00000000000000060000000000000001000000000000000100000000000000201ed23ab2aa110598237369fb53113a8437c426e2a7741c1e24ce266c92fc372e0000000000000001000000000000000000000000000000203daa53d434d2bec33aa133c8d906b3044259b6ad818197f70ceb36362944eba8000000000000000100000000000000010000000000000020dfca9354a547970921d50d4e6d17f365f63f8680bafa75ff8f1b7a75b045d8560000000000000001000000000000000000000000000000203dbbc5b1a055b07e8b25c1203a98ebcf464623a32a8902f4070142539176922e000000000000000100000000000000000000000000000020096a6ccd52081fca061f3bc4d84b362ef4fd8c1a120c9febbbfdfb49dadb617100000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b77401000000000000001b0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020e097336d0e54d4b51bef6341212b3daee6914bfccc3d4748234515ed2eacb31000000000000000010000000000000000000000000000002025869b3bfc83d2ac9e22b0435bc7b9eecebd9af67bb1ab70c73af73bbfb82aaa00000000000000010000000000000001000000000000002041b447898ab19c91b1dbde93ea50c40354c2647926dd2df1d267edeeb4fa5b900000000000000001000000000000000000000000000000207a1424d413417eb28a018fd1d76958181366ee57c4d59ae0034a29ddbb1d2b590000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000001b0000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d700000000000000060000000000000001000000000000000000000000000000200c18aba3ab48c1a768e46c27afc61cd282a124d8197b903c63a59611683f2e27000000000000000100000000000000000000000000000020ad1c1e61efd3347399cf357ef818754d0a59af530b4a7cf6f1a8006b8cabbf41000000000000000100000000000000010000000000000020f49ee3cf725e461ee703238ed32a63c62a4ef9bf0cc5bcabe7293fc2d7f1d14a0000000000000001000000000000000000000000000000203258c2185d1d63acd1aab64a5513a9468432cf501909d54ec3aa84f0a8f84962000000000000000100000000000000000000000000000020b2179105904f600227797c6ccdb8959ff4252a36710715b942b644ee0a59f58d00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000001b00000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000000000000000000020616a1cb8b4565c88f4aca936a0d2de0f1aa77009da20a52e95e8cd6931710dd00000000000000001000000000000000000000000000000207be4ecad6a428c1249e6b7abfbd56cbd707113af1095ce941083f63d982cd4ce00000000000000010000000000000001000000000000002023edfc8b702ed16d0be187572518938574ede83c38d974c56d1466591283316c000000000000000100000000000000000000000000000020ce8ff34b824516fef1d61fe9556d5193458470c305764910ea9218ddaa9ad9ba000000000000000100000000000000000000000000000020286aa95516a0434f8968e2729d4c92308c9456ebf4a1d0d9d335e067c147e9ab0000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b4000000000000001b0000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb1800000000000000060000000000000001000000000000000000000000000000207ba7b5f5b18e1f575e4485c70b6b8fdbd1564620dd64c2bf4846f82232ec2bce0000000000000001000000000000000000000000000000202f80212845c4cb7b806f51a1e2bf511286c7bc245ea2228a0a8fe4fc2069bb370000000000000001000000000000000100000000000000205cfdb0b1b80f97bcb16568f9f091afade9ed23e488cd250cf9ae81ad08e1f2b6000000000000000100000000000000000000000000000020340ed050ea4713aa4ad4c013afbd38231c302d097b43c9bf5b9952d7fedb3ed500000000000000010000000000000000000000000000002059afffcfe907b7f651d0f62f3664c228c07fabe8b4015f54f0801603277ddbca000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a61000000000000001b0000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d000000000000000600000000000000010000000000000000000000000000002007cbdd1f39ef0f825813636ec92f5a8e422507a460749b59258da0f0fc4f40740000000000000001000000000000000000000000000000203daa53d434d2bec33aa133c8d906b3044259b6ad818197f70ceb36362944eba8000000000000000100000000000000010000000000000020dfca9354a547970921d50d4e6d17f365f63f8680bafa75ff8f1b7a75b045d8560000000000000001000000000000000000000000000000203dbbc5b1a055b07e8b25c1203a98ebcf464623a32a8902f4070142539176922e000000000000000100000000000000000000000000000020096a6ccd52081fca061f3bc4d84b362ef4fd8c1a120c9febbbfdfb49dadb617100000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b77401000000000000000a0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020830cac5372557c41ac9b09dd391f7171f652c82fd8d5c14d98c72acaa20c91e100000000000000010000000000000000000000000000002077631bed7d662ca95d374bb50963259dbae6fd85816b13bb5b057a5a051aa21b00000000000000010000000000000001000000000000002093c99af014a3514bdcc84cdf0e72d42f20038a64dcba4071efdcce4cf6a76949000000000000000100000000000000000000000000000020a07353c5029eac2f5fb14b7aaa839b9ff2b01dd6feeb51c341820462ab766306000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000000a0000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d700000000000000060000000000000001000000000000000100000000000000204fd80535945f7ec99e2004d7c04842594cc42daed5131cf8425a463f9a100235000000000000000100000000000000000000000000000020edae1c731416814de66db1976989688f81babb0b326988541acc7739462be38d00000000000000010000000000000001000000000000002002787897e3345ad97fbaea5abe99dc06b3ff2f1e985d7bebb35dfffc022992450000000000000001000000000000000000000000000000202717b608b77aec8c8d8783630dec709b54718844e1012ddc67432a406a63feb90000000000000001000000000000000100000000000000202cd923c9ad51045bfc9d9d6b2b0efad39d54053793269cc7b5293263cd4556ad00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000000a00000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020d1f4e8d7d2c1f310961420bc2896c166208f996b386185f699797b345e389ceb000000000000000100000000000000000000000000000020a7d7d0117069d7a9d78a7f8f07a9b932cbca377f801a890920b77ab80af603ce0000000000000001000000000000000100000000000000201926ae885440fe37c31c8ad3fc2ba16d5893e5262917d477f5697cf01bfb70d4000000000000000100000000000000000000000000000020a162e2cf345ada1eea741227964abb3ee016cf2ce04810595bc3b201b9d0363200000000000000010000000000000001000000000000002066cf4d9926cdae82b6d9904873c2298bf88ff7798aff52ac7e80595bfebf56340000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b4000000000000000a0000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb180000000000000006000000000000000100000000000000010000000000000020743a8fb38d82bd716973711869bc108257b66c8f97733de1a2d1a73bce27b8e5000000000000000100000000000000000000000000000020522370aedc6fab56c51df746785fd78166c22c32c032ec3a3988cfe6da3667c4000000000000000100000000000000010000000000000020d120700c0b95fd9797cdc107b6faa789549df42acc2582fa45d0637f9be7306400000000000000010000000000000000000000000000002095636ea8fb795fa91608dfead769f20d6afc0ed00898ce84ee0e4435366f835000000000000000010000000000000001000000000000002062b119579f2ce99141f7a10eeb446a695c116edde54c9c8d3d41d0f6d978f97d000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a61000000000000000a0000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d00000000000000060000000000000001000000000000000100000000000000200996072014445935e397652c261e86e56b7e42f47cd7cb92b2e5eb8010e6dc5e00000000000000010000000000000000000000000000002023a874a32d5f87b756f0bce20f0f839967608b7bff9f5d558f1de4c3f9935b240000000000000001000000000000000100000000000000207a21029cabbb2c4206ff844a94dac363860cff6eb8e7eac86a5284abc222b1f4000000000000000100000000000000000000000000000020bae2fdf379a6a2f75540a7eabfee073c764f32513ff612f046db0c7935764b2500000000000000010000000000000001000000000000002042a34b3906a2d85259fdd02f30f238b8f4b9b88b27d8a6bf5fabaa6d7c12ab0600000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b7740100000000000000080000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000001000000000000002042339e5d10b0a87ad4fe4a5593bdc05cee398a4a18ea7f97778781f69ff9d23900000000000000010000000000000001000000000000002014aa8e29f77d6a5fb881904df608256632c6604fbfb5192158e0932c0baf514500000000000000010000000000000001000000000000002093c99af014a3514bdcc84cdf0e72d42f20038a64dcba4071efdcce4cf6a76949000000000000000100000000000000000000000000000020a07353c5029eac2f5fb14b7aaa839b9ff2b01dd6feeb51c341820462ab766306000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000080000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d700000000000000060000000000000001000000000000000100000000000000209d0ba68c444c306407f2c94462eea722d4d5e667293b3cef1f097bb3d8aecadf000000000000000100000000000000010000000000000020005e98da69a3ec89560f0f6a8c6ba0b7d075bdef07b93b633dd787041e200c4100000000000000010000000000000001000000000000002002787897e3345ad97fbaea5abe99dc06b3ff2f1e985d7bebb35dfffc022992450000000000000001000000000000000000000000000000202717b608b77aec8c8d8783630dec709b54718844e1012ddc67432a406a63feb90000000000000001000000000000000100000000000000202cd923c9ad51045bfc9d9d6b2b0efad39d54053793269cc7b5293263cd4556ad00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000000800000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020793ca4d6893da010c96a494732536d04386a66415373773f093f1c455e634e32000000000000000100000000000000010000000000000020d2127a6d15c083b904c04f4ac72fe6e71191760b011452b3d32c1bf1551a5e4a0000000000000001000000000000000100000000000000201926ae885440fe37c31c8ad3fc2ba16d5893e5262917d477f5697cf01bfb70d4000000000000000100000000000000000000000000000020a162e2cf345ada1eea741227964abb3ee016cf2ce04810595bc3b201b9d0363200000000000000010000000000000001000000000000002066cf4d9926cdae82b6d9904873c2298bf88ff7798aff52ac7e80595bfebf56340000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b400000000000000080000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb18000000000000000600000000000000010000000000000001000000000000002000362dbce9e7ed6da51bf5b63ee09bf42476d3280eb7611f8920589d39ea78f4000000000000000100000000000000010000000000000020dc9b1331542e052e7dff105d6a496d355df2c1262d1973f519fc8f91d981a27a000000000000000100000000000000010000000000000020d120700c0b95fd9797cdc107b6faa789549df42acc2582fa45d0637f9be7306400000000000000010000000000000000000000000000002095636ea8fb795fa91608dfead769f20d6afc0ed00898ce84ee0e4435366f835000000000000000010000000000000001000000000000002062b119579f2ce99141f7a10eeb446a695c116edde54c9c8d3d41d0f6d978f97d000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a6100000000000000080000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d00000000000000060000000000000001000000000000000100000000000000207850bc26378ac698b56c97bdd728e368c3810667380dd326af6f8b0c193cba180000000000000001000000000000000100000000000000208a30897e7a5177936a7a864e387c25474c5b68354d1b2b9f9ef65a6e0e18b5420000000000000001000000000000000100000000000000207a21029cabbb2c4206ff844a94dac363860cff6eb8e7eac86a5284abc222b1f4000000000000000100000000000000000000000000000020bae2fdf379a6a2f75540a7eabfee073c764f32513ff612f046db0c7935764b2500000000000000010000000000000001000000000000002042a34b3906a2d85259fdd02f30f238b8f4b9b88b27d8a6bf5fabaa6d7c12ab0600000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b7740100000000000000100000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020c47d7bebc8c15f325d831bf339e2d3309c7c8d22969ec6186bc0568046427bd7000000000000000100000000000000010000000000000020640867ed08a3ecabe4859b1b36a9e35eed961ff22f4ecb3f19f23eafd153979300000000000000010000000000000001000000000000002038c257c4acc7ae148c5c9b4409c82130df8554a30c1e722962697197980c56fb000000000000000100000000000000010000000000000020f158609c6b12d3609bdf1c7797edb538f985fe8ac4171f066b1d7b9c43c7bc3b0000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000100000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000010000000000000020130a60e32dbd45ce9fc1b38fb7a669cdfeefe86646f07a007ad1c302c84fd44a000000000000000100000000000000010000000000000020673d9bbdec4018e14c00b2977d46d6e3186f61529a1d3aa6709075bc73340a850000000000000001000000000000000100000000000000202a626f6e71a7040977f48f0331876fcd1bdf2afd39133fc91c8f911e06ecb5500000000000000001000000000000000100000000000000200af3a1e8f7893929d070fc6e79b7461d01674e4931d207f9ff44d0ec44d192ef000000000000000100000000000000000000000000000020b2179105904f600227797c6ccdb8959ff4252a36710715b942b644ee0a59f58d00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000001000000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020ea8cea3ec0884436a9fbac1ea6185827098a86aef32ceb7a4f021b978692489e00000000000000010000000000000001000000000000002043986ee4c957e4292c15e9defee9da9b1a4a8a4b515966573d63201e2c89fe6d000000000000000100000000000000010000000000000020c870cc5991224fe875c03d99dbfef8fbfeb41d1b1f43d327e63022667b3237e5000000000000000100000000000000010000000000000020ca595177c9eb6f3096754da5b9601c287818bfb8ed6752a05163c032b4d4c069000000000000000100000000000000000000000000000020286aa95516a0434f8968e2729d4c92308c9456ebf4a1d0d9d335e067c147e9ab0000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b400000000000000100000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb1800000000000000060000000000000001000000000000000100000000000000205fde01bcabc9f5354006259d8fc9785ec621c736a3aea38f578535ac2c885d67000000000000000100000000000000010000000000000020f891f620b9769620492d95e458b6d7b94d13e8255bde98a906a32a5dd3255a54000000000000000100000000000000010000000000000020888cb07446656d63b2a096d8b1b156d05205811b0e48ebab0e2714854ab470de0000000000000001000000000000000100000000000000204a78e9eb44fea21926a2ac4fb17955446eb663b8130f9780a83ae405bdad6dbc00000000000000010000000000000000000000000000002059afffcfe907b7f651d0f62f3664c228c07fabe8b4015f54f0801603277ddbca000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a6100000000000000100000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d00000000000000060000000000000001000000000000000100000000000000202be4c273fd75394c22300bdc6e86b4d2154dddef0c11974d1f297d9f9995801b0000000000000001000000000000000100000000000000203312f3095cca6255a119c1aa7ee6908222e40b6c0f7ab629770bf029481433960000000000000001000000000000000100000000000000202ab2bc596dfd3283c0f38816f230153ec7e09812548f97c0b3065918e43e8b250000000000000001000000000000000100000000000000209551c6da21b704f16621143cf4ae3bb0037aaa9f71b9ddbac1d1dc4d7841e9f2000000000000000100000000000000000000000000000020096a6ccd52081fca061f3bc4d84b362ef4fd8c1a120c9febbbfdfb49dadb617100000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b7740100000000000000240000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020c24fc0a3e994aa4053143723d1ff953730e09d80308264f57f5e25286c7dcad00000000000000001000000000000000100000000000000204f58496d9785dbfafadd8f41e3167831200b5d8065731cf35b12e0f683eb6aba0000000000000001000000000000000000000000000000204cb7b4fa816710180675ddbc955531f8a709d427faf5200cdc6737874e060a55000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000240000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d700000000000000060000000000000001000000000000000100000000000000205f6df37a820d22d39fdce2f8d551c6b6001b8b2dfec260e5a4d390b6ca944b8e000000000000000100000000000000010000000000000020b2720063c476882634c19fc4d6c878d8fb04af27fefc9623d3a31ea94d8e4c790000000000000001000000000000000000000000000000204438ff7b5d1a6f1ba1dacb34bcf27f03ad6020662e5879560c4487113b1b3a2b0000000000000001000000000000000100000000000000203748da9612449e691c1f511a0efbeea445902a0cf00e315044ae222a6d0782d4000000000000000100000000000000010000000000000020adb8eaef73a8ceab26782ef60dd0142232fb9a5368bfb15c680181cf9256dd4d0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000002400000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020e8c30b8a9708b2578351519fa49cba68b96c8873d3891209f6e1f0d1999fc044000000000000000100000000000000010000000000000020f705f5aee1654cdf892b51dbb807ab8002d144a06d9cd892d74f14b895db6978000000000000000100000000000000000000000000000020f545027ef5098b4875773fbbaa1a000416a3b694a192855ba9a6324f5429a3450000000000000001000000000000000100000000000000204dabc344807c3be9f234ac57b07ac45d289ed74a80a158626d7735db33f22982000000000000000100000000000000010000000000000020380598ae7bc649d61608add40bfb9a587ce84ee9065865c8db1413f481d6dece000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b3500000000000000240000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb18000000000000000600000000000000010000000000000001000000000000002000b853f37ad6bda413fe46bc9c4340c67f69526f8c608c196ca7b1c0594550b30000000000000001000000000000000100000000000000207bb5994b047fe97ed83d5ce91aa636b88b8f52abe16bc1bc0b665514f42c7e1c00000000000000010000000000000000000000000000002024dfa3e1a434cf7ad7a4157884500858ee112d5f389f98b7af8c3a925cb1ef9b000000000000000100000000000000010000000000000020ef01a7c4ec3aea147cea8c1deb0ea39d6727493b384745fdac406d90cfbc0b33000000000000000100000000000000010000000000000020c7597d99c829d6efca97aa7e6ecd776d45c68e6dd9306fc794c4d2cee7e84c9f000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c1300000000000000240000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d000000000000000600000000000000010000000000000001000000000000002098c6f19473ba9f6250cb206b42991780a4a804559375b5e6d7ac075066d1c8400000000000000001000000000000000100000000000000204167e708541ce4fe66e843fcc785268529ed6e066c85c8166c6907f3b5b83f390000000000000001000000000000000000000000000000200c8a991805d2acdc4adcae4bd62d06db4b8812a1b6a287bb79aba1cdeb67e1cd000000000000000100000000000000010000000000000020d980f4b45192828a9b5afbba0e11fe28b001e86e3b4b3a6e2f6172abc19d8be9000000000000000100000000000000010000000000000020757ff2f05cfaff6ea60a6597e42ed2757cd955e4cafcfb47ec86f9b10b51230b0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb16637400000000000000230000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000000000000000000002024f3af1b1647bb312c015a48502bdcba582529e56718776c1cf05694f83b3cf10000000000000001000000000000000000000000000000204b06bb483c21112f9cdd7eff56256a5630233353d836a5d668685bfdc6a4041e000000000000000100000000000000010000000000000020d80cc5cdbb0ec297cddfda4fd988de76b705f83576117fb5ed10b48a9b959bb0000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000230000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d700000000000000060000000000000001000000000000000000000000000000202be5b721f66cc6681fe5359f069c154e05e04221085880823ddb2fb35bed24a6000000000000000100000000000000000000000000000020c24bd4eaecf1b5c095cb7eac429e2ce90102f0ca60ff52a74fe5db4e953d8dd0000000000000000100000000000000010000000000000020a6eed3c09c5170a5d3c1062c3341c3036d029b89aae503c842e393d743e237ba0000000000000001000000000000000100000000000000203748da9612449e691c1f511a0efbeea445902a0cf00e315044ae222a6d0782d4000000000000000100000000000000010000000000000020adb8eaef73a8ceab26782ef60dd0142232fb9a5368bfb15c680181cf9256dd4d0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000002300000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000000000000000000020569d90b86503309433c7c99e5827ea62ee4ba020d2fb88a703c1f9e7bedb5b38000000000000000100000000000000000000000000000020a12f1b8c7f69eaa4f69aba8dc45f0ab3eff1ba06591468b63e11ec3c445e7ee50000000000000001000000000000000100000000000000208be58086853322c8773837b8c2d02f28fab5061c05f7e6ead40677855b6fb0680000000000000001000000000000000100000000000000204dabc344807c3be9f234ac57b07ac45d289ed74a80a158626d7735db33f22982000000000000000100000000000000010000000000000020380598ae7bc649d61608add40bfb9a587ce84ee9065865c8db1413f481d6dece000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b3500000000000000230000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb1800000000000000060000000000000001000000000000000000000000000000204b1c046191b69bcd33083df78f376ee183bbd08b39418e196718005800bb7a4f000000000000000100000000000000000000000000000020e3f83e35974ade46e1fe5aa51ecfb305ab4e1590369f9dec3078707aaf362f9d0000000000000001000000000000000100000000000000201977fdcf5661682556211603e997740023bc80e839a6dd5f44ed1335f0782e9e000000000000000100000000000000010000000000000020ef01a7c4ec3aea147cea8c1deb0ea39d6727493b384745fdac406d90cfbc0b33000000000000000100000000000000010000000000000020c7597d99c829d6efca97aa7e6ecd776d45c68e6dd9306fc794c4d2cee7e84c9f000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c1300000000000000230000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d0000000000000006000000000000000100000000000000000000000000000020c698c2634348509f708c4ef37ef1366bd8af0880fc88034bbf74f621a30333ed0000000000000001000000000000000000000000000000207ce772ccbc0ae2213cb947f11e4f01759238d1dc202de57f34dc74e798702e300000000000000001000000000000000100000000000000203f935f4aa83ceb889ec651c6c84d27f3bdbeb24bb028db70a3e821f3cd2e1f5e000000000000000100000000000000010000000000000020d980f4b45192828a9b5afbba0e11fe28b001e86e3b4b3a6e2f6172abc19d8be9000000000000000100000000000000010000000000000020757ff2f05cfaff6ea60a6597e42ed2757cd955e4cafcfb47ec86f9b10b51230b0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb16637400000000000000020000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000204c4213b8ed6ea438e76fb7a3f0ddfebfefa23ab51e70c6c91df1ad3848bb66df000000000000000100000000000000000000000000000020bc0e1e4d069a85667d831c6131bf23b47a10f808276f2d639351a2b29c6601f100000000000000010000000000000001000000000000002049b18f4c7c36a3e31f7aea5854ff3a4295357e9b4683efeb0cc263602c4cd838000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000020000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000010000000000000020771446b7e40aa9a6633bc1913a01e6b6ce6f1146eff4ddf43ad9c56ed742a4a6000000000000000100000000000000000000000000000020dc14af937edda2c22b7ffa6483569ab01a39d89d704697b5587dfa925d8c8ed900000000000000010000000000000001000000000000002020b2ded527ef4d18477ef5189fbf04e7010dad20d213e6906cbbf7251e5dff110000000000000001000000000000000100000000000000201372e78c2c052b784180de542aa47eb2bb53d01169303993faf60c8d554b2f730000000000000001000000000000000100000000000000202cd923c9ad51045bfc9d9d6b2b0efad39d54053793269cc7b5293263cd4556ad00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000000200000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c100000000000000060000000000000001000000000000000100000000000000204e39183d47f9e77f5619e1ff4bd1bd4b53b3c6bed69f0b1b11cb067ca1814efe0000000000000001000000000000000000000000000000207d5d9807167443cfaa21edae3e117b03db3428a11fc2998ac147e793e4581937000000000000000100000000000000010000000000000020c8f2099faeeea72a24c9ccbd3f29429113314e612b99bcc60f4aca9f40edcff70000000000000001000000000000000100000000000000205174975bfdad7ff3af610fceab74f94ceda7360eaa76c78283f4bb4ba38cc30a00000000000000010000000000000001000000000000002066cf4d9926cdae82b6d9904873c2298bf88ff7798aff52ac7e80595bfebf56340000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b400000000000000020000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb18000000000000000600000000000000010000000000000001000000000000002012e7e9f8af701299d1355e124013265d29dfc951fdce5b51283144e29b531bb300000000000000010000000000000000000000000000002076948a5ac8edc5ec12604ae61a9c6748ddc2111fc526a4a8127bd9cbe59ee673000000000000000100000000000000010000000000000020f2e68171c870737d8303eff5134ad13bf74b874440e0f7adb4e08b5b3ab25b8b0000000000000001000000000000000100000000000000207eb1197c546bbc4e4a76048b12fa374c548aeba420b06d0659b57873e8f44b1700000000000000010000000000000001000000000000002062b119579f2ce99141f7a10eeb446a695c116edde54c9c8d3d41d0f6d978f97d000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a6100000000000000020000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d00000000000000060000000000000001000000000000000100000000000000206d89f2c8f0d544341019efa227eca3d2d2b4f011a3346a26f2b650037773b2c10000000000000001000000000000000000000000000000201a861beee7db7276755b43047e6d30fba18563e26efd08932d1d994d8e16ae740000000000000001000000000000000100000000000000204ccc0340fb28e76bd05ea41a75c2ef813e00d47e6b2efe520e36822dd996d8d6000000000000000100000000000000010000000000000020891c853160123425a2c10c5935d96515b19498fdfbc3cb4d6c7dd56bb01ebe0a00000000000000010000000000000001000000000000002042a34b3906a2d85259fdd02f30f238b8f4b9b88b27d8a6bf5fabaa6d7c12ab0600000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b7740100000000000000030000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000206ff0195a134c259fe7543028850c1e5cad27da7360a4eaae4414e0bfdccdba62000000000000000100000000000000000000000000000020bc0e1e4d069a85667d831c6131bf23b47a10f808276f2d639351a2b29c6601f100000000000000010000000000000001000000000000002049b18f4c7c36a3e31f7aea5854ff3a4295357e9b4683efeb0cc263602c4cd838000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000030000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000000000000000000020cb8d738d8c7fde362309ed4fea4dceebd50db606d8d754a03ccbe1ca6670fa33000000000000000100000000000000000000000000000020dc14af937edda2c22b7ffa6483569ab01a39d89d704697b5587dfa925d8c8ed900000000000000010000000000000001000000000000002020b2ded527ef4d18477ef5189fbf04e7010dad20d213e6906cbbf7251e5dff110000000000000001000000000000000100000000000000201372e78c2c052b784180de542aa47eb2bb53d01169303993faf60c8d554b2f730000000000000001000000000000000100000000000000202cd923c9ad51045bfc9d9d6b2b0efad39d54053793269cc7b5293263cd4556ad00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000000300000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000000000000000000020520213489a96228d6861997a49994d7ed56e8310c8fc186feb25e177f96edcfa0000000000000001000000000000000000000000000000207d5d9807167443cfaa21edae3e117b03db3428a11fc2998ac147e793e4581937000000000000000100000000000000010000000000000020c8f2099faeeea72a24c9ccbd3f29429113314e612b99bcc60f4aca9f40edcff70000000000000001000000000000000100000000000000205174975bfdad7ff3af610fceab74f94ceda7360eaa76c78283f4bb4ba38cc30a00000000000000010000000000000001000000000000002066cf4d9926cdae82b6d9904873c2298bf88ff7798aff52ac7e80595bfebf56340000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b400000000000000030000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb18000000000000000600000000000000010000000000000000000000000000002069f63200090b76657b9da3959d395c7f8297fb6f29afc3c2ba81ffc340f0f88700000000000000010000000000000000000000000000002076948a5ac8edc5ec12604ae61a9c6748ddc2111fc526a4a8127bd9cbe59ee673000000000000000100000000000000010000000000000020f2e68171c870737d8303eff5134ad13bf74b874440e0f7adb4e08b5b3ab25b8b0000000000000001000000000000000100000000000000207eb1197c546bbc4e4a76048b12fa374c548aeba420b06d0659b57873e8f44b1700000000000000010000000000000001000000000000002062b119579f2ce99141f7a10eeb446a695c116edde54c9c8d3d41d0f6d978f97d000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a6100000000000000030000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d000000000000000600000000000000010000000000000000000000000000002097698781b966658d98ca4a4588533961dfae6d3ae186b8574149d4b6b3c91ddf0000000000000001000000000000000000000000000000201a861beee7db7276755b43047e6d30fba18563e26efd08932d1d994d8e16ae740000000000000001000000000000000100000000000000204ccc0340fb28e76bd05ea41a75c2ef813e00d47e6b2efe520e36822dd996d8d6000000000000000100000000000000010000000000000020891c853160123425a2c10c5935d96515b19498fdfbc3cb4d6c7dd56bb01ebe0a00000000000000010000000000000001000000000000002042a34b3906a2d85259fdd02f30f238b8f4b9b88b27d8a6bf5fabaa6d7c12ab0600000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b7740100000000000000360000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020d6ab637747cd4cf07614af7517bc5b895262c631bcb8c17be442d7ffb446d0d1000000000000000100000000000000000000000000000020af10c5c4dbfe0ae7d40ae80cbb399ff0ef8a3020aceee74eebf5f5da0a49f123000000000000000100000000000000000000000000000020cacc7d788bbdb1c4d5dbf47f8afd9ed9b975d2203ba1769a80caa833f3fbb946000000000000000100000000000000010000000000000020f006cf8352bbf180ccb81999dec2d0377abf32ec1a119242758d07bf00181499000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000360000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d700000000000000060000000000000001000000000000000100000000000000205f223508d84f994434a1b9f1c910be590b4faac30c2633a47897da152034115300000000000000010000000000000000000000000000002057a7e759c6e08b939c29e88892af514211dfd94428401cfd44d8d0e8c7dae5f700000000000000010000000000000000000000000000002033e7006db572644806c9d21830fc317d488d3eb37ab16177312161c83c96782e0000000000000001000000000000000100000000000000204704b2369bbb85eb35028b1dca7bb4fdd6aebd6e5749c4e94ddc7511a99d762e000000000000000100000000000000000000000000000020834d4a08f12e109ba3842642aba51324307db48367fe911f6f90ea4c90f658af0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000003600000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020740d8b63cc035a2736e1b15ccdb4a06e90a9aac2a8a01e027c19b3af6fc2e55c000000000000000100000000000000000000000000000020ad4ddcfe6231fdd5f6dd4fddb1e8ed67707bcb668db8f35f0412d3a592544f3f000000000000000100000000000000000000000000000020d07b5012f25eb800ad0beb08df3a44b29e04313e7734d3f8b8d179deee3be79a000000000000000100000000000000010000000000000020ee29b766915a0b2bb8b3eed1a190e616f1054d1263bae454ff4b2c87c790d9f2000000000000000100000000000000000000000000000020e46de27951e7cf912bad485c8e6567eda41b075c193f312ae312f934169d3978000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b3500000000000000360000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb18000000000000000600000000000000010000000000000001000000000000002017cdb3c08e89e231e1f391a370d0084d734aa68d422b7fc9dfdcae55831e2fa100000000000000010000000000000000000000000000002096c9fcdfa3bedeb7f3b10cc505a9c5a2c838e8745bbccda7ed67c75e79e34323000000000000000100000000000000000000000000000020239bbe1e783db329778bbdd317b229e92841e96b97e289b59ab7e65b7f8c697d000000000000000100000000000000010000000000000020fb4a60a9e1d778020d976922d17f02aa13de150f1ef9e070600c13e05e0cd3360000000000000001000000000000000000000000000000207b1b03ed11100190943c68158379b874102af65549a0dc5eb9bee52b887a1e5b000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c1300000000000000360000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d000000000000000600000000000000010000000000000001000000000000002070a4232be2da1c25f9f2b1fa23cc324ab23fefc0b3786fcf5f0e77a05e5bf371000000000000000100000000000000000000000000000020961749bc51afc0f2a49ef01e9a8998ae98fa48576b25d4ea5dd9a295b504a7a5000000000000000100000000000000000000000000000020e2e289844f36439c5d859f51d56bbc4b13a514529349a51a6cc18a699b5c2cb80000000000000001000000000000000100000000000000206fd0c241d082dddc763476a7c884f0f9949e0d0c60b662c9718f6a9990d86306000000000000000100000000000000000000000000000020c32a41143c0bed20f51da2399f8c92440338c8c1a4f71184e98747946cf91d0d0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb16637400000000000000060000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000203d5b9727368ca9ce4a7f482bc655ef03aaaa2f3a7626915974c97708214ac21e00000000000000010000000000000000000000000000002089f5f06a3eaa9feb6107ff18a664d8234f172a437fa0bd092c38efcfada850fb0000000000000001000000000000000000000000000000205653a7aef6c658c2fe00a9e102931ec0732cfb210b3c0f9786685131d83170b8000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000060000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d700000000000000060000000000000001000000000000000100000000000000209dd09c7a8d081d2fc6fab61db737fe12a6ffdc95c1fd6e49f9f230b98ff9a9310000000000000001000000000000000000000000000000207bacd651a6b08d81c088f00a770346b0d1768e7ec85064689f582e046c302b130000000000000001000000000000000000000000000000203ad7fd5698e5be58de7990f933f6c7898b23643b5b9d816deaf9a417c23dd6210000000000000001000000000000000100000000000000201372e78c2c052b784180de542aa47eb2bb53d01169303993faf60c8d554b2f730000000000000001000000000000000100000000000000202cd923c9ad51045bfc9d9d6b2b0efad39d54053793269cc7b5293263cd4556ad00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000000600000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020e7b479c3f16f0c2f91a816a447dc6af4a6cf8b1002c06ddd1b08e6f9d952fa780000000000000001000000000000000000000000000000208452af58f9ed0dbc14acbaa578cb5485a8503d7ee98bb6ae5dc5f153fb8628250000000000000001000000000000000000000000000000203cb9947cedec25457c2378eb9b5b9f2c3987a6ee66012008ec2e902a544eb76f0000000000000001000000000000000100000000000000205174975bfdad7ff3af610fceab74f94ceda7360eaa76c78283f4bb4ba38cc30a00000000000000010000000000000001000000000000002066cf4d9926cdae82b6d9904873c2298bf88ff7798aff52ac7e80595bfebf56340000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b400000000000000060000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb180000000000000006000000000000000100000000000000010000000000000020a544d4844b52b046a4961e455c810eefe7bcaa5c12a8d81d36b3a03c58cf0c530000000000000001000000000000000000000000000000200024a7a0e916ea7fce2928db6dda2e9e4a515de80cbc986d22ad2e8ff707b1d2000000000000000100000000000000000000000000000020e8c2bb93a11dcf6040e149b57365ddc89686d90e4f80320a11731d6c268b54340000000000000001000000000000000100000000000000207eb1197c546bbc4e4a76048b12fa374c548aeba420b06d0659b57873e8f44b1700000000000000010000000000000001000000000000002062b119579f2ce99141f7a10eeb446a695c116edde54c9c8d3d41d0f6d978f97d000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a6100000000000000060000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d000000000000000600000000000000010000000000000001000000000000002078025b5d8e237f7600ebb2abd43ab66da48e2cbf31005cee47886491134fa9b700000000000000010000000000000000000000000000002015c04c24102b69e60dc617bd642e1e1925fe64c3f3fb3be6c6afd64c9ca2c8d10000000000000001000000000000000000000000000000208db56a61d427e46a782c8337a38ae7d73ddd6afd046087d3b3ad987f33397413000000000000000100000000000000010000000000000020891c853160123425a2c10c5935d96515b19498fdfbc3cb4d6c7dd56bb01ebe0a00000000000000010000000000000001000000000000002042a34b3906a2d85259fdd02f30f238b8f4b9b88b27d8a6bf5fabaa6d7c12ab0600000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b77401000000000000002f0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020187d6fc731ee3b7c74d0699a8a6aa921686bda392d9dbe628763e70ea0a4b2d2000000000000000100000000000000000000000000000020295e30ac0c53913c15b9f6857b753d9130839813b975f8c117da751871679a2c0000000000000001000000000000000000000000000000200ae4da6dd0ba3dba590cdc5b458241d43b05d834be20f06226ed69dfe3f4feff000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000002f0000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000000000000000000020e31fd7410cd14b4e45bd7af948ae9eaa3cdfce359243f6082a2b7e2c54af7668000000000000000100000000000000000000000000000020e7840446dde19f454809c735e79f7190c25aabd2545b4ee305ffe4f54b029a8e000000000000000100000000000000000000000000000020d64b26c6ac124d3db1d6fb425f829797c96b63e725e8ec370d64766babc57a36000000000000000100000000000000000000000000000020de2df1a2bf6ab8bcb15302a439c8c59b426846d84a9a27c4f8cf974ecb5fc439000000000000000100000000000000010000000000000020adb8eaef73a8ceab26782ef60dd0142232fb9a5368bfb15c680181cf9256dd4d0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000002f00000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c1000000000000000600000000000000010000000000000000000000000000002097366fe5592ec6b9ded03e390c2750215c49ef344b3bf270ac25ce042afd99430000000000000001000000000000000000000000000000208ce486714500c3f4fa571b0d5b7f85a62484b15fd16f000ac39b1da0e1f8786d0000000000000001000000000000000000000000000000203e84ddc11d925cb8b3f9098dede260545f4bf8f5766fccbb1ab1cdbeb871038d0000000000000001000000000000000000000000000000201358541e6063a73bd5d17001b4e53dbcb7fdfa7e49ab2bda0741eb1f96553a39000000000000000100000000000000010000000000000020380598ae7bc649d61608add40bfb9a587ce84ee9065865c8db1413f481d6dece000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b35000000000000002f0000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb180000000000000006000000000000000100000000000000000000000000000020700fa4b493f74efbf0ed8debdc867014d9d196bbd85aeb81eac8d98ed02b2ece000000000000000100000000000000000000000000000020c4f79ae381c5400c1225a6dfad13e7b56cea4070e247d912ceefe6470e53910b000000000000000100000000000000000000000000000020c5f265a5fb41bfb76bca6b9a0f1275ec220966ca5981a71399d7c48864a84f310000000000000001000000000000000000000000000000206dddcecd3e91e63334cc6fdbdc96a088e83a1ca9fc3e29ba5eda5ebb2decdce6000000000000000100000000000000010000000000000020c7597d99c829d6efca97aa7e6ecd776d45c68e6dd9306fc794c4d2cee7e84c9f000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c13000000000000002f0000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d00000000000000060000000000000001000000000000000000000000000000200c319ec5d1861de3f5be8e69e4af7ba6a3be2ec37d7317be3123f47c2bf0572c000000000000000100000000000000000000000000000020c38e33b5100aad302da216d67ff2af1c5cf559ae9e275c3bfaf4ffaf87b015f8000000000000000100000000000000000000000000000020c58380a46e6b76642f8e6693f4c59928add4db62d4061d866802ca0ecbfc8d0b000000000000000100000000000000000000000000000020f29018eb67b28e0544e686c0f4bd5c31b00a7fc35696d87214de6da96160c60b000000000000000100000000000000010000000000000020757ff2f05cfaff6ea60a6597e42ed2757cd955e4cafcfb47ec86f9b10b51230b0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb16637400000000000000100000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020c47d7bebc8c15f325d831bf339e2d3309c7c8d22969ec6186bc0568046427bd7000000000000000100000000000000010000000000000020640867ed08a3ecabe4859b1b36a9e35eed961ff22f4ecb3f19f23eafd153979300000000000000010000000000000001000000000000002038c257c4acc7ae148c5c9b4409c82130df8554a30c1e722962697197980c56fb000000000000000100000000000000010000000000000020f158609c6b12d3609bdf1c7797edb538f985fe8ac4171f066b1d7b9c43c7bc3b0000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000100000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000010000000000000020130a60e32dbd45ce9fc1b38fb7a669cdfeefe86646f07a007ad1c302c84fd44a000000000000000100000000000000010000000000000020673d9bbdec4018e14c00b2977d46d6e3186f61529a1d3aa6709075bc73340a850000000000000001000000000000000100000000000000202a626f6e71a7040977f48f0331876fcd1bdf2afd39133fc91c8f911e06ecb5500000000000000001000000000000000100000000000000200af3a1e8f7893929d070fc6e79b7461d01674e4931d207f9ff44d0ec44d192ef000000000000000100000000000000000000000000000020b2179105904f600227797c6ccdb8959ff4252a36710715b942b644ee0a59f58d00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000001000000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020ea8cea3ec0884436a9fbac1ea6185827098a86aef32ceb7a4f021b978692489e00000000000000010000000000000001000000000000002043986ee4c957e4292c15e9defee9da9b1a4a8a4b515966573d63201e2c89fe6d000000000000000100000000000000010000000000000020c870cc5991224fe875c03d99dbfef8fbfeb41d1b1f43d327e63022667b3237e5000000000000000100000000000000010000000000000020ca595177c9eb6f3096754da5b9601c287818bfb8ed6752a05163c032b4d4c069000000000000000100000000000000000000000000000020286aa95516a0434f8968e2729d4c92308c9456ebf4a1d0d9d335e067c147e9ab0000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b400000000000000100000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb1800000000000000060000000000000001000000000000000100000000000000205fde01bcabc9f5354006259d8fc9785ec621c736a3aea38f578535ac2c885d67000000000000000100000000000000010000000000000020f891f620b9769620492d95e458b6d7b94d13e8255bde98a906a32a5dd3255a54000000000000000100000000000000010000000000000020888cb07446656d63b2a096d8b1b156d05205811b0e48ebab0e2714854ab470de0000000000000001000000000000000100000000000000204a78e9eb44fea21926a2ac4fb17955446eb663b8130f9780a83ae405bdad6dbc00000000000000010000000000000000000000000000002059afffcfe907b7f651d0f62f3664c228c07fabe8b4015f54f0801603277ddbca000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a6100000000000000100000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d00000000000000060000000000000001000000000000000100000000000000202be4c273fd75394c22300bdc6e86b4d2154dddef0c11974d1f297d9f9995801b0000000000000001000000000000000100000000000000203312f3095cca6255a119c1aa7ee6908222e40b6c0f7ab629770bf029481433960000000000000001000000000000000100000000000000202ab2bc596dfd3283c0f38816f230153ec7e09812548f97c0b3065918e43e8b250000000000000001000000000000000100000000000000209551c6da21b704f16621143cf4ae3bb0037aaa9f71b9ddbac1d1dc4d7841e9f2000000000000000100000000000000000000000000000020096a6ccd52081fca061f3bc4d84b362ef4fd8c1a120c9febbbfdfb49dadb617100000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b7740100000000000000150000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020dffef2b6289ca42b6b10811bf557d0f0473b5148078520d4dd2c3c9e071683cf000000000000000100000000000000010000000000000020934ab4c6e53dcf48d451f6ed7e4af86b758dd8dba6533f4175725e2e5845afc500000000000000010000000000000000000000000000002026fce9aa21f1ef53b559859e81595b7ea9f4a7505a8a6c162b86994251034ce3000000000000000100000000000000010000000000000020f158609c6b12d3609bdf1c7797edb538f985fe8ac4171f066b1d7b9c43c7bc3b0000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000150000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d700000000000000060000000000000001000000000000000000000000000000203a820c2e0a94d4fd9a6a97134e490757d4cff787898b03143693ba52a52e5b22000000000000000100000000000000010000000000000020ed4e952f4ffebc9ce86ed2885d594c83d3ec4c4c15350e69772e94a8d909acfb00000000000000010000000000000000000000000000002093e03ca32d277a055197b2f4be063f2430c60102c5f873e991019e1ffd7801c10000000000000001000000000000000100000000000000200af3a1e8f7893929d070fc6e79b7461d01674e4931d207f9ff44d0ec44d192ef000000000000000100000000000000000000000000000020b2179105904f600227797c6ccdb8959ff4252a36710715b942b644ee0a59f58d00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000001500000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c100000000000000060000000000000001000000000000000000000000000000203e65071baf68fbb9c7f34587e4ff0f5cbd370d395b470236ed5565d9facf35760000000000000001000000000000000100000000000000208b3ae1f14a3158318f6d8749aefcde0b3b2207eb7fb5eb331b5b1bd02036fa1900000000000000010000000000000000000000000000002073d818c2d86bd95f54a19c4f8a4f06873a25f0c32b41c1d315ce89c23348844c000000000000000100000000000000010000000000000020ca595177c9eb6f3096754da5b9601c287818bfb8ed6752a05163c032b4d4c069000000000000000100000000000000000000000000000020286aa95516a0434f8968e2729d4c92308c9456ebf4a1d0d9d335e067c147e9ab0000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b400000000000000150000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb18000000000000000600000000000000010000000000000000000000000000002029fc4e5ea169b7e7d1ddc2cb3bc1171130ed993774610c01a3b0a0f50e6a537a00000000000000010000000000000001000000000000002037d2f9f4120cafaa112326ce31e64fe36cc7bfa0a5c48da73380f1f881776bf6000000000000000100000000000000000000000000000020fe06453f85c1bc9eddbfa944877be7a42cd814e96c88fcdadeb7af22e34e39db0000000000000001000000000000000100000000000000204a78e9eb44fea21926a2ac4fb17955446eb663b8130f9780a83ae405bdad6dbc00000000000000010000000000000000000000000000002059afffcfe907b7f651d0f62f3664c228c07fabe8b4015f54f0801603277ddbca000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a6100000000000000150000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d00000000000000060000000000000001000000000000000000000000000000209fa305d1cd348f6d1bfc3b55422013db9588c6238f48ef3c660a7e16373120c6000000000000000100000000000000010000000000000020d176755e283ed870229a974a0b3f28344fd2c0b64378b46e835451652723719400000000000000010000000000000000000000000000002070ac0afac757320c7b8afba642269c8ebda9fdf302952e6c56d04d5ea75f879e0000000000000001000000000000000100000000000000209551c6da21b704f16621143cf4ae3bb0037aaa9f71b9ddbac1d1dc4d7841e9f2000000000000000100000000000000000000000000000020096a6ccd52081fca061f3bc4d84b362ef4fd8c1a120c9febbbfdfb49dadb617100000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b77401000000000000001e0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000205b22e826fa41eab497f0d44485ed30b89e70dc3b8991721ecacea7676a1160ba000000000000000100000000000000000000000000000020a99b7e2901520fe9aa438e0b1d9ff1d42abd1e4774fe50a7af9abfdd5aeb49f0000000000000000100000000000000000000000000000020cd05d024922075f0d2191dff6b6b8977913542096c687b1aa6a6880a30f4f1780000000000000001000000000000000000000000000000207a1424d413417eb28a018fd1d76958181366ee57c4d59ae0034a29ddbb1d2b590000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000001e0000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000010000000000000020fffa47f999332d217b19eabd033573400a15630199197996e7e966d946928621000000000000000100000000000000000000000000000020e4abb87721ae1731bc6aee7f24bfdd8424c2c6d8fbd25e4e6d14f0b8b89a9664000000000000000100000000000000000000000000000020222c544f148f9e2b69e62cf11604f62aedfeda5a2bf20333ab12db04391e1a6d0000000000000001000000000000000000000000000000203258c2185d1d63acd1aab64a5513a9468432cf501909d54ec3aa84f0a8f84962000000000000000100000000000000000000000000000020b2179105904f600227797c6ccdb8959ff4252a36710715b942b644ee0a59f58d00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000001e00000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020debcf67c70d7ff29fee1f88827155d5410763847b214bd82213c780b45e8f7a700000000000000010000000000000000000000000000002065d85d8c2a0115a8cf0c8a7e9d003cfe4b02af86cf2e9b981a364b28d8d281f00000000000000001000000000000000000000000000000209aa1948e3d99cb3b036e7ef33e14ce04a4e5cc9bddb460b8d2d06114c32e7a4e000000000000000100000000000000000000000000000020ce8ff34b824516fef1d61fe9556d5193458470c305764910ea9218ddaa9ad9ba000000000000000100000000000000000000000000000020286aa95516a0434f8968e2729d4c92308c9456ebf4a1d0d9d335e067c147e9ab0000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b4000000000000001e0000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb180000000000000006000000000000000100000000000000010000000000000020d1b29b21587f2d8214fe81ce26413e3fa76302367383381cd12269ff3aa3b319000000000000000100000000000000000000000000000020a59ae923fd8f26d96a5ee4e9945c4d1b7c0ce303eda6b4151426537cecb84b8500000000000000010000000000000000000000000000002029724ed730bbc4b42c8b49d3b94cce1548c55b75c5515c93ca1f583d8fe255fe000000000000000100000000000000000000000000000020340ed050ea4713aa4ad4c013afbd38231c302d097b43c9bf5b9952d7fedb3ed500000000000000010000000000000000000000000000002059afffcfe907b7f651d0f62f3664c228c07fabe8b4015f54f0801603277ddbca000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a61000000000000001e0000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d0000000000000006000000000000000100000000000000010000000000000020968ec45a2b99b74562efa3d959a153c08585a8e4e85407b6f4a28296a0bd5e85000000000000000100000000000000000000000000000020a3b1bc416c9ea8007ee12b4a820af52d380d61ee7cd216690c8d8ba08ebcfbe500000000000000010000000000000000000000000000002015afb35775e6e2eda131732d194c3d3679db33fd87ecb15fcfc9cf3438b28ec20000000000000001000000000000000000000000000000203dbbc5b1a055b07e8b25c1203a98ebcf464623a32a8902f4070142539176922e000000000000000100000000000000000000000000000020096a6ccd52081fca061f3bc4d84b362ef4fd8c1a120c9febbbfdfb49dadb617100000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b7740100000000000000280000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000203fc4f8175b9c92350566386ba4636deeb2ec6d4187f6d0d3208c3db577ee4c1a000000000000000100000000000000010000000000000020c600a084e5647679dce1e61667cd049aa01cd0b29e54cfef6b28350be80914810000000000000001000000000000000100000000000000200ebe305ff48b2729427a6d3d9c605f9d8749d8a7f371875c0845a2841f05d610000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000280000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000010000000000000020ff6f6655fe0735826a6d70429961f5593d2818d2dab010dae0a3abb68a0fdbc50000000000000001000000000000000100000000000000209f9bee513a75283462112f1ca2af8bd157d6c94c1864112cb461c22194cbc552000000000000000100000000000000010000000000000020aa8aaf7a9f2c4682ba9ba18998b5c7d9b5cec92d7d415f46af51866ad5d812c8000000000000000100000000000000000000000000000020de2df1a2bf6ab8bcb15302a439c8c59b426846d84a9a27c4f8cf974ecb5fc439000000000000000100000000000000010000000000000020adb8eaef73a8ceab26782ef60dd0142232fb9a5368bfb15c680181cf9256dd4d0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000002800000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020e85d96fec3a6507cb57112edfe7e33cd7c17a1bea23cafeb6446dc341e7c1fec00000000000000010000000000000001000000000000002057c569142e0c8f3bce388044ed66a39869c151160cb706b3171385e0a76a63be00000000000000010000000000000001000000000000002012b2c25f0cf4525c6320e52750c92201fd654fce8944a872da5475b3d695badf0000000000000001000000000000000000000000000000201358541e6063a73bd5d17001b4e53dbcb7fdfa7e49ab2bda0741eb1f96553a39000000000000000100000000000000010000000000000020380598ae7bc649d61608add40bfb9a587ce84ee9065865c8db1413f481d6dece000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b3500000000000000280000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb1800000000000000060000000000000001000000000000000100000000000000202e4bbc0d83afad6229babb666e584c56ef9bcc9b26e67a2d85f6ea8666f56ef4000000000000000100000000000000010000000000000020f3293fb0f8fd810a186fbb5893e3954cd589abe33c61b368af3ae4a93febdf7d000000000000000100000000000000010000000000000020b77914e384a9047e3473fb351a9618aeab0e1f21754de24d9a50f7e34bd0f4e40000000000000001000000000000000000000000000000206dddcecd3e91e63334cc6fdbdc96a088e83a1ca9fc3e29ba5eda5ebb2decdce6000000000000000100000000000000010000000000000020c7597d99c829d6efca97aa7e6ecd776d45c68e6dd9306fc794c4d2cee7e84c9f000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c1300000000000000280000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d0000000000000006000000000000000100000000000000010000000000000020eeb1dac8a39aea60d4db1d7dd20432d1d1dc195a841fadaaf47afcf343ff8715000000000000000100000000000000010000000000000020f4e381e57cf0a37c06afa28615f52017494385618b33413cba97767de25cf7b0000000000000000100000000000000010000000000000020423a01aa2ffd993dfde30c95c6a57e30516214d0d8193fe602e5153aa78b7b69000000000000000100000000000000000000000000000020f29018eb67b28e0544e686c0f4bd5c31b00a7fc35696d87214de6da96160c60b000000000000000100000000000000010000000000000020757ff2f05cfaff6ea60a6597e42ed2757cd955e4cafcfb47ec86f9b10b51230b0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb16637400000000000000010000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000207a810149b56beb7c711c05676c1721fd4595513d55341729b655fdf6bc7c6e9d000000000000000100000000000000010000000000000020c74fc5b5363c08b2d56ef59ce1523608b22b04f93198fc444fbc86eb42093a0b00000000000000010000000000000001000000000000002049b18f4c7c36a3e31f7aea5854ff3a4295357e9b4683efeb0cc263602c4cd838000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000010000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d7000000000000000600000000000000010000000000000000000000000000002053f27a3fac139541ac1ad4fae785e1c654a940bd42e0dd80e54f6b109ce8f94d00000000000000010000000000000001000000000000002046306a267bb05948133a12d6c0bd15c261e6f3adb74e261219114da8493e33d600000000000000010000000000000001000000000000002020b2ded527ef4d18477ef5189fbf04e7010dad20d213e6906cbbf7251e5dff110000000000000001000000000000000100000000000000201372e78c2c052b784180de542aa47eb2bb53d01169303993faf60c8d554b2f730000000000000001000000000000000100000000000000202cd923c9ad51045bfc9d9d6b2b0efad39d54053793269cc7b5293263cd4556ad00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000000100000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c1000000000000000600000000000000010000000000000000000000000000002060181705ea022b67c15ca667295008f5a23b314e40329f36e2877e583ed285710000000000000001000000000000000100000000000000208cc3e21732f2e38f2fa6455c17cffefb25e8977e710b876f4853ff281a07db5e000000000000000100000000000000010000000000000020c8f2099faeeea72a24c9ccbd3f29429113314e612b99bcc60f4aca9f40edcff70000000000000001000000000000000100000000000000205174975bfdad7ff3af610fceab74f94ceda7360eaa76c78283f4bb4ba38cc30a00000000000000010000000000000001000000000000002066cf4d9926cdae82b6d9904873c2298bf88ff7798aff52ac7e80595bfebf56340000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b400000000000000010000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb180000000000000006000000000000000100000000000000000000000000000020d81a55f5d4386f799ffc0cfdade307f1dc08719a3fc6f593af2c22c474b0ef92000000000000000100000000000000010000000000000020f97cf57802b4a8493a57a400c63a54abcd02b1720175842833ec3521d7d67b06000000000000000100000000000000010000000000000020f2e68171c870737d8303eff5134ad13bf74b874440e0f7adb4e08b5b3ab25b8b0000000000000001000000000000000100000000000000207eb1197c546bbc4e4a76048b12fa374c548aeba420b06d0659b57873e8f44b1700000000000000010000000000000001000000000000002062b119579f2ce99141f7a10eeb446a695c116edde54c9c8d3d41d0f6d978f97d000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a6100000000000000010000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d000000000000000600000000000000010000000000000000000000000000002001db2cc54d84c79e3e2298b06212b53c3248277a32a407d991b68244c4ba30af000000000000000100000000000000010000000000000020781a341288c6b442334e5cbb024772e0cab8f5b535d090e46818358070fe2cab0000000000000001000000000000000100000000000000204ccc0340fb28e76bd05ea41a75c2ef813e00d47e6b2efe520e36822dd996d8d6000000000000000100000000000000010000000000000020891c853160123425a2c10c5935d96515b19498fdfbc3cb4d6c7dd56bb01ebe0a00000000000000010000000000000001000000000000002042a34b3906a2d85259fdd02f30f238b8f4b9b88b27d8a6bf5fabaa6d7c12ab0600000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b7740100000000000000310000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020de0239826f84300a4b930455833368a3b5ed681fe8962cfb4af828dc999da678000000000000000100000000000000010000000000000020b07fc62d561ac62b44d2a42d32b92ea5c1cc6bd1a2aaec7fc3bc3511de391ed20000000000000001000000000000000100000000000000205f3c867463c166fd9c0125885c51251e20c9b8d44030db7f8c699a0f747c2522000000000000000100000000000000010000000000000020f006cf8352bbf180ccb81999dec2d0377abf32ec1a119242758d07bf00181499000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000310000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d700000000000000060000000000000001000000000000000000000000000000201e990e27f0d7976bf2adbd60e20384da0125b76e2885a96aa707bcb054108b0d000000000000000100000000000000010000000000000020be315ca75a50a54647d6af6765170e8e260e2447ed5ba5b6c28e49cb9624ac8500000000000000010000000000000001000000000000002069bbf4e45f7cf39db228623b3f31279cf0279d75ab35bdc78bf8e5c11af26e2d0000000000000001000000000000000100000000000000204704b2369bbb85eb35028b1dca7bb4fdd6aebd6e5749c4e94ddc7511a99d762e000000000000000100000000000000000000000000000020834d4a08f12e109ba3842642aba51324307db48367fe911f6f90ea4c90f658af0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000003100000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000000000000000000020b97f093e23b2895b7de60bcf4223312f9129d8958945267c56f18a65dfd1fef80000000000000001000000000000000100000000000000203883af7544d26da8ce7644195720c73ab1e9fb5c37365aebac74a689d570c016000000000000000100000000000000010000000000000020b3dcc758a9e7e412a304b6eea80be32762cacd880a436e5c9f74b9147fc2af5b000000000000000100000000000000010000000000000020ee29b766915a0b2bb8b3eed1a190e616f1054d1263bae454ff4b2c87c790d9f2000000000000000100000000000000000000000000000020e46de27951e7cf912bad485c8e6567eda41b075c193f312ae312f934169d3978000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b3500000000000000310000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb1800000000000000060000000000000001000000000000000000000000000000208e81de10eb36dc9520ba4eab03023c233b7d200d834d94cdf3348f54895a5a1d000000000000000100000000000000010000000000000020bf4ed2215edd6feabe994b2473f201a59e5ea07ac0cbddb7e290c9f4bff7e566000000000000000100000000000000010000000000000020e6b0f46fb0cf4fad5f91e9a53771ca0f6326860e4e3112c40366b8b61d16fe08000000000000000100000000000000010000000000000020fb4a60a9e1d778020d976922d17f02aa13de150f1ef9e070600c13e05e0cd3360000000000000001000000000000000000000000000000207b1b03ed11100190943c68158379b874102af65549a0dc5eb9bee52b887a1e5b000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c1300000000000000310000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d0000000000000006000000000000000100000000000000000000000000000020d20d6a382c07d2115635b18e66695dfdaab93828db45674bc5ca2ad77a77305e0000000000000001000000000000000100000000000000203a2d04d0af50a10de82b7f1346324dd6aa93ab36d183810b0ddbbf44b95ba319000000000000000100000000000000010000000000000020bff790245007621d0f42d4c74e91a01ca1c7d45cfab67dc367cb6aab6570faa10000000000000001000000000000000100000000000000206fd0c241d082dddc763476a7c884f0f9949e0d0c60b662c9718f6a9990d86306000000000000000100000000000000000000000000000020c32a41143c0bed20f51da2399f8c92440338c8c1a4f71184e98747946cf91d0d0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb16637400000000000000010000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000207a810149b56beb7c711c05676c1721fd4595513d55341729b655fdf6bc7c6e9d000000000000000100000000000000010000000000000020c74fc5b5363c08b2d56ef59ce1523608b22b04f93198fc444fbc86eb42093a0b00000000000000010000000000000001000000000000002049b18f4c7c36a3e31f7aea5854ff3a4295357e9b4683efeb0cc263602c4cd838000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000010000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d7000000000000000600000000000000010000000000000000000000000000002053f27a3fac139541ac1ad4fae785e1c654a940bd42e0dd80e54f6b109ce8f94d00000000000000010000000000000001000000000000002046306a267bb05948133a12d6c0bd15c261e6f3adb74e261219114da8493e33d600000000000000010000000000000001000000000000002020b2ded527ef4d18477ef5189fbf04e7010dad20d213e6906cbbf7251e5dff110000000000000001000000000000000100000000000000201372e78c2c052b784180de542aa47eb2bb53d01169303993faf60c8d554b2f730000000000000001000000000000000100000000000000202cd923c9ad51045bfc9d9d6b2b0efad39d54053793269cc7b5293263cd4556ad00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000000100000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c1000000000000000600000000000000010000000000000000000000000000002060181705ea022b67c15ca667295008f5a23b314e40329f36e2877e583ed285710000000000000001000000000000000100000000000000208cc3e21732f2e38f2fa6455c17cffefb25e8977e710b876f4853ff281a07db5e000000000000000100000000000000010000000000000020c8f2099faeeea72a24c9ccbd3f29429113314e612b99bcc60f4aca9f40edcff70000000000000001000000000000000100000000000000205174975bfdad7ff3af610fceab74f94ceda7360eaa76c78283f4bb4ba38cc30a00000000000000010000000000000001000000000000002066cf4d9926cdae82b6d9904873c2298bf88ff7798aff52ac7e80595bfebf56340000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b400000000000000010000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb180000000000000006000000000000000100000000000000000000000000000020d81a55f5d4386f799ffc0cfdade307f1dc08719a3fc6f593af2c22c474b0ef92000000000000000100000000000000010000000000000020f97cf57802b4a8493a57a400c63a54abcd02b1720175842833ec3521d7d67b06000000000000000100000000000000010000000000000020f2e68171c870737d8303eff5134ad13bf74b874440e0f7adb4e08b5b3ab25b8b0000000000000001000000000000000100000000000000207eb1197c546bbc4e4a76048b12fa374c548aeba420b06d0659b57873e8f44b1700000000000000010000000000000001000000000000002062b119579f2ce99141f7a10eeb446a695c116edde54c9c8d3d41d0f6d978f97d000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a6100000000000000010000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d000000000000000600000000000000010000000000000000000000000000002001db2cc54d84c79e3e2298b06212b53c3248277a32a407d991b68244c4ba30af000000000000000100000000000000010000000000000020781a341288c6b442334e5cbb024772e0cab8f5b535d090e46818358070fe2cab0000000000000001000000000000000100000000000000204ccc0340fb28e76bd05ea41a75c2ef813e00d47e6b2efe520e36822dd996d8d6000000000000000100000000000000010000000000000020891c853160123425a2c10c5935d96515b19498fdfbc3cb4d6c7dd56bb01ebe0a00000000000000010000000000000001000000000000002042a34b3906a2d85259fdd02f30f238b8f4b9b88b27d8a6bf5fabaa6d7c12ab0600000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b77401000000000000001c0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020dc473fbc2982536b3551210ff22dbfb86908bbdebdf4f9fcee59b94ae742f3e7000000000000000100000000000000010000000000000020f09e0551c369e8794e51f609fb64bc262c407f13317ebef64c17a4fb128e2b29000000000000000100000000000000000000000000000020cd05d024922075f0d2191dff6b6b8977913542096c687b1aa6a6880a30f4f1780000000000000001000000000000000000000000000000207a1424d413417eb28a018fd1d76958181366ee57c4d59ae0034a29ddbb1d2b590000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000001c0000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000010000000000000020b9caf53fb588988ca6a42b09516bd955b3a33ea84df73447ebe9131bc81d12cb000000000000000100000000000000010000000000000020dfe2fcd8a19655c028bba13eee57ed0a4d7dcf98a27d12bc8b84dc4382166763000000000000000100000000000000000000000000000020222c544f148f9e2b69e62cf11604f62aedfeda5a2bf20333ab12db04391e1a6d0000000000000001000000000000000000000000000000203258c2185d1d63acd1aab64a5513a9468432cf501909d54ec3aa84f0a8f84962000000000000000100000000000000000000000000000020b2179105904f600227797c6ccdb8959ff4252a36710715b942b644ee0a59f58d00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000001c00000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020f26ceac37dc1c5b639209dc9adf229b4d3e0dec12fd3f017af1d187262fca0a900000000000000010000000000000001000000000000002027b2fd6c73a8f4d624e7aa7d5cf31b3504fb105004d3f49241636659ca496c450000000000000001000000000000000000000000000000209aa1948e3d99cb3b036e7ef33e14ce04a4e5cc9bddb460b8d2d06114c32e7a4e000000000000000100000000000000000000000000000020ce8ff34b824516fef1d61fe9556d5193458470c305764910ea9218ddaa9ad9ba000000000000000100000000000000000000000000000020286aa95516a0434f8968e2729d4c92308c9456ebf4a1d0d9d335e067c147e9ab0000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b4000000000000001c0000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb180000000000000006000000000000000100000000000000010000000000000020e6ae1e2a2a16dd0764c007a2b18da60db7a4192bbe632c330f0376cfd02871620000000000000001000000000000000100000000000000201e59fed8685bb04f916136d066d01be8fe139100aa56f2ba3739835ecda3f6fe00000000000000010000000000000000000000000000002029724ed730bbc4b42c8b49d3b94cce1548c55b75c5515c93ca1f583d8fe255fe000000000000000100000000000000000000000000000020340ed050ea4713aa4ad4c013afbd38231c302d097b43c9bf5b9952d7fedb3ed500000000000000010000000000000000000000000000002059afffcfe907b7f651d0f62f3664c228c07fabe8b4015f54f0801603277ddbca000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a61000000000000001c0000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d00000000000000060000000000000001000000000000000100000000000000207e3f47f301949288faf8f455f7a66f0c32d87a6f940058769ec8a0dd75702ddd000000000000000100000000000000010000000000000020501c50cc712c262d8090223e69727f48350b264e5a910f26371920ffaa706eac00000000000000010000000000000000000000000000002015afb35775e6e2eda131732d194c3d3679db33fd87ecb15fcfc9cf3438b28ec20000000000000001000000000000000000000000000000203dbbc5b1a055b07e8b25c1203a98ebcf464623a32a8902f4070142539176922e000000000000000100000000000000000000000000000020096a6ccd52081fca061f3bc4d84b362ef4fd8c1a120c9febbbfdfb49dadb617100000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b7740100000000000000290000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020afda8f08f851e66f41a25326acc738e8538b2349a3b415bc8993aee72bcbde67000000000000000100000000000000010000000000000020c600a084e5647679dce1e61667cd049aa01cd0b29e54cfef6b28350be80914810000000000000001000000000000000100000000000000200ebe305ff48b2729427a6d3d9c605f9d8749d8a7f371875c0845a2841f05d610000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000290000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000000000000000000020488dfd6cdb4f2e80929c5debb43a8b534761d20b7ba517b6fcefd831965d9a380000000000000001000000000000000100000000000000209f9bee513a75283462112f1ca2af8bd157d6c94c1864112cb461c22194cbc552000000000000000100000000000000010000000000000020aa8aaf7a9f2c4682ba9ba18998b5c7d9b5cec92d7d415f46af51866ad5d812c8000000000000000100000000000000000000000000000020de2df1a2bf6ab8bcb15302a439c8c59b426846d84a9a27c4f8cf974ecb5fc439000000000000000100000000000000010000000000000020adb8eaef73a8ceab26782ef60dd0142232fb9a5368bfb15c680181cf9256dd4d0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000002900000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000000000000000000020e820af01f14a35f54d5ebc8c69106dfe81cef61b5747ae8871f5505fefaa5c0600000000000000010000000000000001000000000000002057c569142e0c8f3bce388044ed66a39869c151160cb706b3171385e0a76a63be00000000000000010000000000000001000000000000002012b2c25f0cf4525c6320e52750c92201fd654fce8944a872da5475b3d695badf0000000000000001000000000000000000000000000000201358541e6063a73bd5d17001b4e53dbcb7fdfa7e49ab2bda0741eb1f96553a39000000000000000100000000000000010000000000000020380598ae7bc649d61608add40bfb9a587ce84ee9065865c8db1413f481d6dece000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b3500000000000000290000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb180000000000000006000000000000000100000000000000000000000000000020113e6bffa721e99e5d152594ba218f72e88742a06444f6286cffe63f5302e865000000000000000100000000000000010000000000000020f3293fb0f8fd810a186fbb5893e3954cd589abe33c61b368af3ae4a93febdf7d000000000000000100000000000000010000000000000020b77914e384a9047e3473fb351a9618aeab0e1f21754de24d9a50f7e34bd0f4e40000000000000001000000000000000000000000000000206dddcecd3e91e63334cc6fdbdc96a088e83a1ca9fc3e29ba5eda5ebb2decdce6000000000000000100000000000000010000000000000020c7597d99c829d6efca97aa7e6ecd776d45c68e6dd9306fc794c4d2cee7e84c9f000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c1300000000000000290000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d0000000000000006000000000000000100000000000000000000000000000020004c671ec0b3253de1c92ce54aefc9d3fd7628afe456557f80d4b4085bed631a000000000000000100000000000000010000000000000020f4e381e57cf0a37c06afa28615f52017494385618b33413cba97767de25cf7b0000000000000000100000000000000010000000000000020423a01aa2ffd993dfde30c95c6a57e30516214d0d8193fe602e5153aa78b7b69000000000000000100000000000000000000000000000020f29018eb67b28e0544e686c0f4bd5c31b00a7fc35696d87214de6da96160c60b000000000000000100000000000000010000000000000020757ff2f05cfaff6ea60a6597e42ed2757cd955e4cafcfb47ec86f9b10b51230b0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb16637400000000000000340000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020a51a1dc62392f295b15fe1655ecfe34f6022071edf8acb2dd4f0b8ebef99ec59000000000000000100000000000000010000000000000020c362cab2e6c4dc6ea82bb6f4ded48e2f8eb7e24ef0fa0baea7e88c5951f51ecf000000000000000100000000000000000000000000000020cacc7d788bbdb1c4d5dbf47f8afd9ed9b975d2203ba1769a80caa833f3fbb946000000000000000100000000000000010000000000000020f006cf8352bbf180ccb81999dec2d0377abf32ec1a119242758d07bf00181499000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000340000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000010000000000000020125da266de270d2c33ef5e2bd07b5513533ee2e453fce963fec68694d7a61bdd0000000000000001000000000000000100000000000000203e9e1794e3ab8bcb877795560281d553e8d564cc0d8995ad218383984a27419800000000000000010000000000000000000000000000002033e7006db572644806c9d21830fc317d488d3eb37ab16177312161c83c96782e0000000000000001000000000000000100000000000000204704b2369bbb85eb35028b1dca7bb4fdd6aebd6e5749c4e94ddc7511a99d762e000000000000000100000000000000000000000000000020834d4a08f12e109ba3842642aba51324307db48367fe911f6f90ea4c90f658af0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000003400000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020bd4acfc4319c5be81ae721a8b143458e07b339aabc33824aeaadca64402079fa0000000000000001000000000000000100000000000000204a5b2a11f8cc938e3d0997b8019e221c2da65049f3b278610fa9d8ac32e1998f000000000000000100000000000000000000000000000020d07b5012f25eb800ad0beb08df3a44b29e04313e7734d3f8b8d179deee3be79a000000000000000100000000000000010000000000000020ee29b766915a0b2bb8b3eed1a190e616f1054d1263bae454ff4b2c87c790d9f2000000000000000100000000000000000000000000000020e46de27951e7cf912bad485c8e6567eda41b075c193f312ae312f934169d3978000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b3500000000000000340000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb18000000000000000600000000000000010000000000000001000000000000002030260a74f1fb2c2aeb13c96d1d2b3802bda84da97829393537247297234b964a0000000000000001000000000000000100000000000000208e95ab803c0030b813a2496f4d8a902ce53652d50f4cffc6c5b46000ec6a9314000000000000000100000000000000000000000000000020239bbe1e783db329778bbdd317b229e92841e96b97e289b59ab7e65b7f8c697d000000000000000100000000000000010000000000000020fb4a60a9e1d778020d976922d17f02aa13de150f1ef9e070600c13e05e0cd3360000000000000001000000000000000000000000000000207b1b03ed11100190943c68158379b874102af65549a0dc5eb9bee52b887a1e5b000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c1300000000000000340000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d0000000000000006000000000000000100000000000000010000000000000020119a57ed2fb3e2a79fc62ae66ca6582afd74176dcf3ad7570996ba4bdbf89921000000000000000100000000000000010000000000000020445c5a1265a05ae3066b3916cf28f84c966cd53c4deebf7b241e510336742355000000000000000100000000000000000000000000000020e2e289844f36439c5d859f51d56bbc4b13a514529349a51a6cc18a699b5c2cb80000000000000001000000000000000100000000000000206fd0c241d082dddc763476a7c884f0f9949e0d0c60b662c9718f6a9990d86306000000000000000100000000000000000000000000000020c32a41143c0bed20f51da2399f8c92440338c8c1a4f71184e98747946cf91d0d0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb166374000000000000005000000000000000230000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000000000000000000020c69f72107a0931ceb999886d209eb055503f997e19af49114f790d82869d6d5800000000000000010000000000000000000000000000002040a1b0ec891e3e4b29768f5b3776dffb7b731cc1d7014627cda9eaf19dfc222f00000000000000010000000000000001000000000000002003aa62736754773d1c1e34df70c48d106cfded69c708d9db1697cb4ee01930810000000000000001000000000000000100000000000000208624d0e8f8f0956a5d5c260ed559f1345f56b8f1c4c72837362dd95c8e252fb6000000000000000100000000000000010000000000000020ff95de509db243842ef124b7d5e65df0de205aca3d5041e84169d6a6270c1ebf000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000000300000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000000000000000000020f8b7eab045f938fabc0d7536e613ebf49334ffa4569eedb3a9d5b5e2c57cd49e000000000000000100000000000000000000000000000020f968296ed3e4f05216b970e7ac1352937342fe8f6a0ba8eac7f860c936eaa26d0000000000000001000000000000000100000000000000202efaefe650b6a09bb0544fc75df2049d3eaff975d8a83bc4ddd2ed7432989dde000000000000000100000000000000010000000000000020386031671100ec0f3f461144754f53d671c227627b4c8756a9081748efae4628000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c00000000000000050000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a78499000000000000000600000000000000010000000000000000000000000000002031f8e0846340f56abfcdf7952eb462bcf6e6e93f4a9013c014c73c2c6811b9e5000000000000000100000000000000010000000000000020aeab55260b1ba548fbd8487d41f49a25f2f2f4019762475a302533417615068f000000000000000100000000000000000000000000000020db2d182450d1582bc458538f3de6566903c4265e6332b188c4676a669ba9c1860000000000000001000000000000000100000000000000206e7ab1781b04aa6141dc2e5ec57fe06ea8152a892f0a879bbbe7e9fdd5844dde0000000000000001000000000000000100000000000000200601bcff1f6a53d3ccc41814e1b94ccb9988c71c56c5e82808399710863fd6aa000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000000500000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af000000000000000500000000000000010000000000000000000000000000002045a5473b6af3199d813528111cc4e1a1b4669a7883957518fe325c64ece3ce5f00000000000000010000000000000001000000000000002080c3cda29133b887375ea990180aa867c5d7c7d49f94e022701578b2590c925a00000000000000010000000000000000000000000000002067f7ad1fd0876288f08b31df54e7360964190721667ca03b23af092d0988cd8b000000000000000100000000000000010000000000000020386031671100ec0f3f461144754f53d671c227627b4c8756a9081748efae4628000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c00000000000000350000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a78499000000000000000600000000000000010000000000000000000000000000002045acf8f74ba36b9b4d335cee401637c55d2283bac744a0b01f4dbbe853436463000000000000000100000000000000010000000000000020d6ceaac07c67b0a64c32369a1ea6e4166caf4b1a9150fa9ea43382fa85666468000000000000000100000000000000000000000000000020626bd02f932e3615391bee938a0412ecd1cd2272cfae1e47459923ef7178acef0000000000000001000000000000000100000000000000208979ca75873db793654bcd0bbd1c0a1b39715385670b7e9dbae4aebbec52741c00000000000000010000000000000000000000000000002022ba410a643a755f99923873c2476ceb16eb3912cee23c769c03e3a3dfb8fdb6000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000001500000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000000000000000000020ef3bd30345aeca9ca4f5c0cc8f6aedcf661ef74b3f9951f0801f7892662a92c4000000000000000100000000000000010000000000000020f9d0417bf9c22af0fd7c868a9d85a01ec82f2143ba064a0a099f6035f93505250000000000000001000000000000000000000000000000200972dca85cd3134096a5bde319d17a7ab979d0601af82b3df452fefb94b18ac10000000000000001000000000000000100000000000000200977b8e1fd7874daaddf632b94685d29e83f5319019eeb81f47e898b13eb460900000000000000010000000000000000000000000000002077c9c9aec58a87ab556bdacd713816fab67361b53271400fea3b965772a212d100000000000000310000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000000000000000000020e0597d120abf0a6e2737ce63359387104d37f3ad9bffd46f56e0895ba29fabba00000000000000010000000000000001000000000000002022bd49adc4089daadb82d2b8890d9211639ed30654c204fd632819dd71ebd90b00000000000000010000000000000001000000000000002032e5e8cdbc4e6649fb68d951f01f7b4ddc33c53c95e2849b11cdea3452b290280000000000000001000000000000000100000000000000208979ca75873db793654bcd0bbd1c0a1b39715385670b7e9dbae4aebbec52741c00000000000000010000000000000000000000000000002022ba410a643a755f99923873c2476ceb16eb3912cee23c769c03e3a3dfb8fdb6000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000001100000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000000000000000000020f7df057732d020bd297e289b4e02deed9da08858b6bda0193b5de737425239b600000000000000010000000000000001000000000000002010dfd10688b4b565aefb4bc19700ec82a9d85b0444f5835048d093a690402a74000000000000000100000000000000010000000000000020b05c8a4918c2b948ea22ac1ea9e8788f6b4dab63bb0d3072af2ab349c7d7407c0000000000000001000000000000000100000000000000200977b8e1fd7874daaddf632b94685d29e83f5319019eeb81f47e898b13eb460900000000000000010000000000000000000000000000002077c9c9aec58a87ab556bdacd713816fab67361b53271400fea3b965772a212d1000000000000002b0000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a7849900000000000000060000000000000001000000000000000000000000000000204b04f7909eabf1952ba069a517915419e5c8959749c6f202e42de1fa9bf4c1bf00000000000000010000000000000000000000000000002033f0d99e7b69aeae232685fab6ec8b220d0016dc7d72e1506931857484633a6f000000000000000100000000000000010000000000000020868ae6d8928dd7afd1e2e7b535bad43f09eb31d51303d76bfca0cb316a54f5af000000000000000100000000000000000000000000000020a63bb163c7044092808beeaff40be31a89a0ee9533dcef2e6c738b4b6979d59c000000000000000100000000000000010000000000000020ff95de509db243842ef124b7d5e65df0de205aca3d5041e84169d6a6270c1ebf000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000000b00000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af00000000000000050000000000000001000000000000000000000000000000206767ff0226bb716540dfa49937c02dd3c18b86a8785f96ce20996a6f93ea18690000000000000001000000000000000000000000000000200f1e94db735c359c097ef7a2e820fba3bcf38bdccd8dfbd09e0efc7894b0ec5b000000000000000100000000000000010000000000000020bb30daaa93d8088060f02ea33b18e11aed7d16099147f6b8e5f593044d4cb4b4000000000000000100000000000000000000000000000020e10154432454cbafd56b1d3571f2843202f86b982be342deddd0566e03beb9ad000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c00000000000000130000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000000000000000000020684268d0778744420eca0b77ce0ddbebb45c7451c586318eea998309982b779c0000000000000001000000000000000000000000000000207adb99130d34166df15fc30b818fbbd8c519bf5f1325eb51f08f0ce8c58ce3e7000000000000000100000000000000010000000000000020594598b94b3a250a7dbb87154c780574f287309aa45c3818c0470aa50fb5a5c40000000000000001000000000000000100000000000000207702d029a3b5fdf2fa631e6d8ef28554a2b7d70da56fee22828557afd1f056040000000000000001000000000000000000000000000000209ff4bc626f01cd895eacc32ee783bc5849b39341a7454cd58013ff7f06dedcef000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000001300000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af00000000000000050000000000000001000000000000000000000000000000204682779cbc997ff03256f1898f31115c082dc28ee7afc067e03f29abbc44c034000000000000000100000000000000000000000000000020f02c41ae560209644e2346dad2585347737796eb48c9141ba7295e57e3fc999c000000000000000100000000000000010000000000000020b05c8a4918c2b948ea22ac1ea9e8788f6b4dab63bb0d3072af2ab349c7d7407c0000000000000001000000000000000100000000000000200977b8e1fd7874daaddf632b94685d29e83f5319019eeb81f47e898b13eb460900000000000000010000000000000000000000000000002077c9c9aec58a87ab556bdacd713816fab67361b53271400fea3b965772a212d100000000000000290000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000000000000000000020d170d00dc89cea59bdb2cdad253b48bd5994ad2e0d93f24722737a2fbf72b0d00000000000000001000000000000000100000000000000209c46e22db1efdc1c556fa27e42e1de6cfba132d5e7937cde7141c527099745fa000000000000000100000000000000010000000000000020868ae6d8928dd7afd1e2e7b535bad43f09eb31d51303d76bfca0cb316a54f5af000000000000000100000000000000000000000000000020a63bb163c7044092808beeaff40be31a89a0ee9533dcef2e6c738b4b6979d59c000000000000000100000000000000010000000000000020ff95de509db243842ef124b7d5e65df0de205aca3d5041e84169d6a6270c1ebf000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000000900000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af00000000000000050000000000000001000000000000000000000000000000201703619e4686c3babe4c017d34bf800c1478a6876e01a8831278359afed2f356000000000000000100000000000000010000000000000020e06052f87b3f12b879dbbda42c74687a41e5c4eccd9e9718dc16d31887760491000000000000000100000000000000010000000000000020bb30daaa93d8088060f02ea33b18e11aed7d16099147f6b8e5f593044d4cb4b4000000000000000100000000000000000000000000000020e10154432454cbafd56b1d3571f2843202f86b982be342deddd0566e03beb9ad000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c00000000000000350000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a78499000000000000000600000000000000010000000000000000000000000000002045acf8f74ba36b9b4d335cee401637c55d2283bac744a0b01f4dbbe853436463000000000000000100000000000000010000000000000020d6ceaac07c67b0a64c32369a1ea6e4166caf4b1a9150fa9ea43382fa85666468000000000000000100000000000000000000000000000020626bd02f932e3615391bee938a0412ecd1cd2272cfae1e47459923ef7178acef0000000000000001000000000000000100000000000000208979ca75873db793654bcd0bbd1c0a1b39715385670b7e9dbae4aebbec52741c00000000000000010000000000000000000000000000002022ba410a643a755f99923873c2476ceb16eb3912cee23c769c03e3a3dfb8fdb6000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000001500000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000000000000000000020ef3bd30345aeca9ca4f5c0cc8f6aedcf661ef74b3f9951f0801f7892662a92c4000000000000000100000000000000010000000000000020f9d0417bf9c22af0fd7c868a9d85a01ec82f2143ba064a0a099f6035f93505250000000000000001000000000000000000000000000000200972dca85cd3134096a5bde319d17a7ab979d0601af82b3df452fefb94b18ac10000000000000001000000000000000100000000000000200977b8e1fd7874daaddf632b94685d29e83f5319019eeb81f47e898b13eb460900000000000000010000000000000000000000000000002077c9c9aec58a87ab556bdacd713816fab67361b53271400fea3b965772a212d100000000000000070000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000000000000000000020b7afd0d292553767666fdaf25c467fae22f369c30f81d0dd85e41aded585dfbe0000000000000001000000000000000000000000000000203a20386f35f9e243ab1628db1f33726be2a9d88947d54dfe10c93ad79b2e451b000000000000000100000000000000000000000000000020db2d182450d1582bc458538f3de6566903c4265e6332b188c4676a669ba9c1860000000000000001000000000000000100000000000000206e7ab1781b04aa6141dc2e5ec57fe06ea8152a892f0a879bbbe7e9fdd5844dde0000000000000001000000000000000100000000000000200601bcff1f6a53d3ccc41814e1b94ccb9988c71c56c5e82808399710863fd6aa000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000000700000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af00000000000000050000000000000001000000000000000000000000000000209755aebdf7cde926a60aee0143b988330b7a9ed3fab9b66277dae5ac31d08c0f000000000000000100000000000000000000000000000020e2d92c3f50b59d68948d274148c7da36c5eaa88d4df8f8b769ee731e260ae00300000000000000010000000000000000000000000000002067f7ad1fd0876288f08b31df54e7360964190721667ca03b23af092d0988cd8b000000000000000100000000000000010000000000000020386031671100ec0f3f461144754f53d671c227627b4c8756a9081748efae4628000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c00000000000000200000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a7849900000000000000060000000000000001000000000000000100000000000000207317ae14d3a36be1d8705cb1373c7338ce3d188069ec0db7cbdd4167f42c40f4000000000000000100000000000000010000000000000020c31527a9ceb5ecd3ac65e93fce6271e33f08761cc90829289fde86a3ac30a6cf00000000000000010000000000000001000000000000002003aa62736754773d1c1e34df70c48d106cfded69c708d9db1697cb4ee01930810000000000000001000000000000000100000000000000208624d0e8f8f0956a5d5c260ed559f1345f56b8f1c4c72837362dd95c8e252fb6000000000000000100000000000000010000000000000020ff95de509db243842ef124b7d5e65df0de205aca3d5041e84169d6a6270c1ebf000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000000000000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000010000000000000020f351796e9955077f966b88e23e29281aac4d810067c843951e489e267c8bcd82000000000000000100000000000000010000000000000020b1240eb0ef003415e82c3b6c90d732666ed1da3c7e6ce7ead2f7217d059dba9d0000000000000001000000000000000100000000000000202efaefe650b6a09bb0544fc75df2049d3eaff975d8a83bc4ddd2ed7432989dde000000000000000100000000000000010000000000000020386031671100ec0f3f461144754f53d671c227627b4c8756a9081748efae4628000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c000000000000002a0000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a7849900000000000000060000000000000001000000000000000100000000000000203dc2569473c288dbc8d9496daf21ee02ff24448382bd02c16972f1817dc0062200000000000000010000000000000000000000000000002033f0d99e7b69aeae232685fab6ec8b220d0016dc7d72e1506931857484633a6f000000000000000100000000000000010000000000000020868ae6d8928dd7afd1e2e7b535bad43f09eb31d51303d76bfca0cb316a54f5af000000000000000100000000000000000000000000000020a63bb163c7044092808beeaff40be31a89a0ee9533dcef2e6c738b4b6979d59c000000000000000100000000000000010000000000000020ff95de509db243842ef124b7d5e65df0de205aca3d5041e84169d6a6270c1ebf000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000000a00000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af00000000000000050000000000000001000000000000000100000000000000208715b7a270c79459ceb828f7973e6a1f96b9d1ebefa15faa22e43c65fc9495fa0000000000000001000000000000000000000000000000200f1e94db735c359c097ef7a2e820fba3bcf38bdccd8dfbd09e0efc7894b0ec5b000000000000000100000000000000010000000000000020bb30daaa93d8088060f02ea33b18e11aed7d16099147f6b8e5f593044d4cb4b4000000000000000100000000000000000000000000000020e10154432454cbafd56b1d3571f2843202f86b982be342deddd0566e03beb9ad000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c00000000000000280000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a7849900000000000000060000000000000001000000000000000100000000000000200de76128d7a385bc1af6ecf71de92c322ee92ce0a67336d1382df9dd31359c610000000000000001000000000000000100000000000000209c46e22db1efdc1c556fa27e42e1de6cfba132d5e7937cde7141c527099745fa000000000000000100000000000000010000000000000020868ae6d8928dd7afd1e2e7b535bad43f09eb31d51303d76bfca0cb316a54f5af000000000000000100000000000000000000000000000020a63bb163c7044092808beeaff40be31a89a0ee9533dcef2e6c738b4b6979d59c000000000000000100000000000000010000000000000020ff95de509db243842ef124b7d5e65df0de205aca3d5041e84169d6a6270c1ebf000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000000800000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000010000000000000020b942405a493aa5d9a83fbe5cc0faa76de9acfc3510805056973fe7c811921596000000000000000100000000000000010000000000000020e06052f87b3f12b879dbbda42c74687a41e5c4eccd9e9718dc16d31887760491000000000000000100000000000000010000000000000020bb30daaa93d8088060f02ea33b18e11aed7d16099147f6b8e5f593044d4cb4b4000000000000000100000000000000000000000000000020e10154432454cbafd56b1d3571f2843202f86b982be342deddd0566e03beb9ad000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c00000000000000210000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a78499000000000000000600000000000000010000000000000000000000000000002016caa67e55fc9e37e33ea22590d5a9951b3e032319a563d90a875c84cadeb8ac000000000000000100000000000000010000000000000020c31527a9ceb5ecd3ac65e93fce6271e33f08761cc90829289fde86a3ac30a6cf00000000000000010000000000000001000000000000002003aa62736754773d1c1e34df70c48d106cfded69c708d9db1697cb4ee01930810000000000000001000000000000000100000000000000208624d0e8f8f0956a5d5c260ed559f1345f56b8f1c4c72837362dd95c8e252fb6000000000000000100000000000000010000000000000020ff95de509db243842ef124b7d5e65df0de205aca3d5041e84169d6a6270c1ebf000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000000100000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000000000000000000020fbd0afd6a2565130a294eafa826bb9368a0f904fe9a1baa7dbd9149986dda23f000000000000000100000000000000010000000000000020b1240eb0ef003415e82c3b6c90d732666ed1da3c7e6ce7ead2f7217d059dba9d0000000000000001000000000000000100000000000000202efaefe650b6a09bb0544fc75df2049d3eaff975d8a83bc4ddd2ed7432989dde000000000000000100000000000000010000000000000020386031671100ec0f3f461144754f53d671c227627b4c8756a9081748efae4628000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c000000000000003a0000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000010000000000000020a0d83f22dcbf8ad067ac2da0566aea152a7399d38783ff114aa0b0f78363c58f000000000000000100000000000000000000000000000020f5cbdd53f6c23c7e894fd1c2a9762604c89fecfd9e31133a7bb6bac53860ea3d000000000000000100000000000000010000000000000020df77e3e26895b78c42e249a07a5acd406c918c2e048cdaa24118466eb28192fd000000000000000100000000000000000000000000000020a477c4ad9d269637cd16237172285c3b10661892f40abbafde1caebfbdd674e800000000000000010000000000000000000000000000002022ba410a643a755f99923873c2476ceb16eb3912cee23c769c03e3a3dfb8fdb6000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000001a00000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000010000000000000020e81726a0238670e9eda67e75c96ab68fdec138b1e78736eaf7187d265eb805d400000000000000010000000000000000000000000000002006cbba3ef60444526fb2d30e77ebee7cfc92bca63f67e84108c47175b0cf761500000000000000010000000000000001000000000000002077dab7f709460e04a57b907618d99f28b43281fc3f6efb51d613dde3be607f470000000000000001000000000000000000000000000000208431414d63476460c32bbfa4cb99ee87313f878d671a131aa704e34b140597f600000000000000010000000000000000000000000000002077c9c9aec58a87ab556bdacd713816fab67361b53271400fea3b965772a212d100000000000000040000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a7849900000000000000060000000000000001000000000000000100000000000000201b503f2904905dac135d63612f9c3ec56c77a6c3454072735ad42718ecf59d7b000000000000000100000000000000010000000000000020aeab55260b1ba548fbd8487d41f49a25f2f2f4019762475a302533417615068f000000000000000100000000000000000000000000000020db2d182450d1582bc458538f3de6566903c4265e6332b188c4676a669ba9c1860000000000000001000000000000000100000000000000206e7ab1781b04aa6141dc2e5ec57fe06ea8152a892f0a879bbbe7e9fdd5844dde0000000000000001000000000000000100000000000000200601bcff1f6a53d3ccc41814e1b94ccb9988c71c56c5e82808399710863fd6aa000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000000400000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000010000000000000020ec1fb2e5f6ff40388c2b569bb0d8d544fba1c15c8ede359ca3328cd7314f6ed100000000000000010000000000000001000000000000002080c3cda29133b887375ea990180aa867c5d7c7d49f94e022701578b2590c925a00000000000000010000000000000000000000000000002067f7ad1fd0876288f08b31df54e7360964190721667ca03b23af092d0988cd8b000000000000000100000000000000010000000000000020386031671100ec0f3f461144754f53d671c227627b4c8756a9081748efae4628000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c000000000000002a0000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a7849900000000000000060000000000000001000000000000000100000000000000203dc2569473c288dbc8d9496daf21ee02ff24448382bd02c16972f1817dc0062200000000000000010000000000000000000000000000002033f0d99e7b69aeae232685fab6ec8b220d0016dc7d72e1506931857484633a6f000000000000000100000000000000010000000000000020868ae6d8928dd7afd1e2e7b535bad43f09eb31d51303d76bfca0cb316a54f5af000000000000000100000000000000000000000000000020a63bb163c7044092808beeaff40be31a89a0ee9533dcef2e6c738b4b6979d59c000000000000000100000000000000010000000000000020ff95de509db243842ef124b7d5e65df0de205aca3d5041e84169d6a6270c1ebf000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000000a00000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af00000000000000050000000000000001000000000000000100000000000000208715b7a270c79459ceb828f7973e6a1f96b9d1ebefa15faa22e43c65fc9495fa0000000000000001000000000000000000000000000000200f1e94db735c359c097ef7a2e820fba3bcf38bdccd8dfbd09e0efc7894b0ec5b000000000000000100000000000000010000000000000020bb30daaa93d8088060f02ea33b18e11aed7d16099147f6b8e5f593044d4cb4b4000000000000000100000000000000000000000000000020e10154432454cbafd56b1d3571f2843202f86b982be342deddd0566e03beb9ad000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c000000000000001e0000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a78499000000000000000600000000000000010000000000000001000000000000002089416afbd53e0e7d8d3c46ff431b1c003bef3db0eabde5ca27ddda3fe516218d0000000000000001000000000000000000000000000000206aa301a2a0105f9d3b3f3bd424eb22d3f0bc486083c94b124ab6a03a10c27fcd000000000000000100000000000000000000000000000020c90960d37d8b1147ae0b0e112e4e27c594c3d797c9fcb12d6c7adf455fa123c8000000000000000100000000000000000000000000000020d30b4459edd0f8e82197858ef6018b7151a51fe3ca9eebf3bf63bed2a4bfaaec0000000000000001000000000000000000000000000000209ff4bc626f01cd895eacc32ee783bc5849b39341a7454cd58013ff7f06dedcef000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000001e00000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000010000000000000020bf12dd95e0eff7e456ea833ff6479073931e62179e5a86483b0adf9e20249ce3000000000000000100000000000000000000000000000020478d821645fbfe9f725c7fd97dca405fc99ed284eba10f8e3b559999e9e489f00000000000000001000000000000000000000000000000209b03c94b2e686f76fd84b8a686b26899fbfc903226b5db0de8cac907fa19a6c50000000000000001000000000000000000000000000000208431414d63476460c32bbfa4cb99ee87313f878d671a131aa704e34b140597f600000000000000010000000000000000000000000000002077c9c9aec58a87ab556bdacd713816fab67361b53271400fea3b965772a212d1000000000000000c0000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a7849900000000000000060000000000000001000000000000000100000000000000202db5aa2a781574e743dc109773ec531fd8a3c997ffec185d1c76a15214ce3544000000000000000100000000000000010000000000000020dbf20232f427bcca4f527db037ffeadc7bca802d147a6d7223f08d91354cd3340000000000000001000000000000000000000000000000208e2d2a4d3708adf7b5a83578dc77147f05a5ebe38dc97e3816232238e9ae8e1a000000000000000100000000000000000000000000000020cc623722bf54ed0416db646462b15f1a451a3bf3db055f6e9aec054eab4d9f610000000000000001000000000000000100000000000000200601bcff1f6a53d3ccc41814e1b94ccb9988c71c56c5e82808399710863fd6aa000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000000c00000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000010000000000000020532a25ae288e637532a5b710a80d3a5fd0c2b72c7cc54b4c53042c755db78e5600000000000000010000000000000001000000000000002046a1ee521b5d9c73029ddb5997428cf70a0191389b1fc9bb76cfa7b5e1c27488000000000000000100000000000000000000000000000020db7949f733391c69265c151180caa41295298ce45472debc910e360746e782b7000000000000000100000000000000000000000000000020e10154432454cbafd56b1d3571f2843202f86b982be342deddd0566e03beb9ad000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c000000000000001a0000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a7849900000000000000060000000000000001000000000000000100000000000000200ef0313b8bbc3db28d343d3fcc649d9b717d3e900183b64f759f24181daec697000000000000000100000000000000000000000000000020f25e661653f019ebf5e532993827043b29123575c00856975d25d3065af1918b0000000000000001000000000000000100000000000000202f0fe0ac73f3d4591cf755985cbd8471c9c5ec342d32fccec68fb10abb9a1ca9000000000000000100000000000000000000000000000020d30b4459edd0f8e82197858ef6018b7151a51fe3ca9eebf3bf63bed2a4bfaaec0000000000000001000000000000000000000000000000209ff4bc626f01cd895eacc32ee783bc5849b39341a7454cd58013ff7f06dedcef000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000001a00000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000010000000000000020e81726a0238670e9eda67e75c96ab68fdec138b1e78736eaf7187d265eb805d400000000000000010000000000000000000000000000002006cbba3ef60444526fb2d30e77ebee7cfc92bca63f67e84108c47175b0cf761500000000000000010000000000000001000000000000002077dab7f709460e04a57b907618d99f28b43281fc3f6efb51d613dde3be607f470000000000000001000000000000000000000000000000208431414d63476460c32bbfa4cb99ee87313f878d671a131aa704e34b140597f600000000000000010000000000000000000000000000002077c9c9aec58a87ab556bdacd713816fab67361b53271400fea3b965772a212d1000000000000001b0000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000000000000000000020b61aa5d013745285269ed0d744d6b0f27ba21ce966b4050c66c59ccfb35ad3df000000000000000100000000000000000000000000000020f25e661653f019ebf5e532993827043b29123575c00856975d25d3065af1918b0000000000000001000000000000000100000000000000202f0fe0ac73f3d4591cf755985cbd8471c9c5ec342d32fccec68fb10abb9a1ca9000000000000000100000000000000000000000000000020d30b4459edd0f8e82197858ef6018b7151a51fe3ca9eebf3bf63bed2a4bfaaec0000000000000001000000000000000000000000000000209ff4bc626f01cd895eacc32ee783bc5849b39341a7454cd58013ff7f06dedcef000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000001b00000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000000000000000000020491133f276bfa6308677243d525c14607ee3752986a84db09dbb28a66bb8104300000000000000010000000000000000000000000000002006cbba3ef60444526fb2d30e77ebee7cfc92bca63f67e84108c47175b0cf761500000000000000010000000000000001000000000000002077dab7f709460e04a57b907618d99f28b43281fc3f6efb51d613dde3be607f470000000000000001000000000000000000000000000000208431414d63476460c32bbfa4cb99ee87313f878d671a131aa704e34b140597f600000000000000010000000000000000000000000000002077c9c9aec58a87ab556bdacd713816fab67361b53271400fea3b965772a212d1000000000000000a0000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a7849900000000000000060000000000000001000000000000000100000000000000205b36cbb5c039e5afaa6f865376af325322c58dcb16e98912c3f50b984f65e641000000000000000100000000000000000000000000000020119e382fe07bd0b0b7ab027688e9c0fd4d34273ae0361723f6be6074d90a83ff000000000000000100000000000000010000000000000020463c99343489734cf401d150a84448067c0aeb8d6cf72cd2a818b27cb2be3745000000000000000100000000000000000000000000000020cc623722bf54ed0416db646462b15f1a451a3bf3db055f6e9aec054eab4d9f610000000000000001000000000000000100000000000000200601bcff1f6a53d3ccc41814e1b94ccb9988c71c56c5e82808399710863fd6aa000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000000a00000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af00000000000000050000000000000001000000000000000100000000000000208715b7a270c79459ceb828f7973e6a1f96b9d1ebefa15faa22e43c65fc9495fa0000000000000001000000000000000000000000000000200f1e94db735c359c097ef7a2e820fba3bcf38bdccd8dfbd09e0efc7894b0ec5b000000000000000100000000000000010000000000000020bb30daaa93d8088060f02ea33b18e11aed7d16099147f6b8e5f593044d4cb4b4000000000000000100000000000000000000000000000020e10154432454cbafd56b1d3571f2843202f86b982be342deddd0566e03beb9ad000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c00000000000000080000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000010000000000000020f80afc89bc5aa56764e38434471ff483aa4680533b495ab8c6ebac4df68fb00b000000000000000100000000000000010000000000000020bbbb2d4bf7097a3ba36b3cacf5be82b073e3b469940aa64efda7ae5d64899179000000000000000100000000000000010000000000000020463c99343489734cf401d150a84448067c0aeb8d6cf72cd2a818b27cb2be3745000000000000000100000000000000000000000000000020cc623722bf54ed0416db646462b15f1a451a3bf3db055f6e9aec054eab4d9f610000000000000001000000000000000100000000000000200601bcff1f6a53d3ccc41814e1b94ccb9988c71c56c5e82808399710863fd6aa000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000000800000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000010000000000000020b942405a493aa5d9a83fbe5cc0faa76de9acfc3510805056973fe7c811921596000000000000000100000000000000010000000000000020e06052f87b3f12b879dbbda42c74687a41e5c4eccd9e9718dc16d31887760491000000000000000100000000000000010000000000000020bb30daaa93d8088060f02ea33b18e11aed7d16099147f6b8e5f593044d4cb4b4000000000000000100000000000000000000000000000020e10154432454cbafd56b1d3571f2843202f86b982be342deddd0566e03beb9ad000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c00000000000000100000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a78499000000000000000600000000000000010000000000000001000000000000002084bab0ea852d74ce5f1205213453c0957786ea965866d51487913e67e4f896dc000000000000000100000000000000010000000000000020065982e1c28a38ce051ec2a164f79c3b723dec2d4eb0e70a2b4cd46cd5728609000000000000000100000000000000010000000000000020594598b94b3a250a7dbb87154c780574f287309aa45c3818c0470aa50fb5a5c40000000000000001000000000000000100000000000000207702d029a3b5fdf2fa631e6d8ef28554a2b7d70da56fee22828557afd1f056040000000000000001000000000000000000000000000000209ff4bc626f01cd895eacc32ee783bc5849b39341a7454cd58013ff7f06dedcef000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000001000000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af00000000000000050000000000000001000000000000000100000000000000203b285a0a467861b21a71c39683ca0b1b668fc01fce6b22e72e2d286d7673099900000000000000010000000000000001000000000000002010dfd10688b4b565aefb4bc19700ec82a9d85b0444f5835048d093a690402a74000000000000000100000000000000010000000000000020b05c8a4918c2b948ea22ac1ea9e8788f6b4dab63bb0d3072af2ab349c7d7407c0000000000000001000000000000000100000000000000200977b8e1fd7874daaddf632b94685d29e83f5319019eeb81f47e898b13eb460900000000000000010000000000000000000000000000002077c9c9aec58a87ab556bdacd713816fab67361b53271400fea3b965772a212d100000000000000240000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000010000000000000020e0294de28238b6db0ec334bb5cd67cd93cdddaf830e1076b4c2405189a84cd140000000000000001000000000000000100000000000000202b13b1b4e6d6676e1fa9614c609e0a07e0564b06a8ed3e3e5f1d02071fa2820e000000000000000100000000000000000000000000000020b698bdf3c4912a1d7d569be7f91561b5868f204fdd48e497c12d6ab95b21a2ac0000000000000001000000000000000100000000000000208624d0e8f8f0956a5d5c260ed559f1345f56b8f1c4c72837362dd95c8e252fb6000000000000000100000000000000010000000000000020ff95de509db243842ef124b7d5e65df0de205aca3d5041e84169d6a6270c1ebf000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000000400000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000010000000000000020ec1fb2e5f6ff40388c2b569bb0d8d544fba1c15c8ede359ca3328cd7314f6ed100000000000000010000000000000001000000000000002080c3cda29133b887375ea990180aa867c5d7c7d49f94e022701578b2590c925a00000000000000010000000000000000000000000000002067f7ad1fd0876288f08b31df54e7360964190721667ca03b23af092d0988cd8b000000000000000100000000000000010000000000000020386031671100ec0f3f461144754f53d671c227627b4c8756a9081748efae4628000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c00000000000000230000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000000000000000000020c69f72107a0931ceb999886d209eb055503f997e19af49114f790d82869d6d5800000000000000010000000000000000000000000000002040a1b0ec891e3e4b29768f5b3776dffb7b731cc1d7014627cda9eaf19dfc222f00000000000000010000000000000001000000000000002003aa62736754773d1c1e34df70c48d106cfded69c708d9db1697cb4ee01930810000000000000001000000000000000100000000000000208624d0e8f8f0956a5d5c260ed559f1345f56b8f1c4c72837362dd95c8e252fb6000000000000000100000000000000010000000000000020ff95de509db243842ef124b7d5e65df0de205aca3d5041e84169d6a6270c1ebf000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000000300000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000000000000000000020f8b7eab045f938fabc0d7536e613ebf49334ffa4569eedb3a9d5b5e2c57cd49e000000000000000100000000000000000000000000000020f968296ed3e4f05216b970e7ac1352937342fe8f6a0ba8eac7f860c936eaa26d0000000000000001000000000000000100000000000000202efaefe650b6a09bb0544fc75df2049d3eaff975d8a83bc4ddd2ed7432989dde000000000000000100000000000000010000000000000020386031671100ec0f3f461144754f53d671c227627b4c8756a9081748efae4628000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c00000000000000020000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000010000000000000020dceb00b54eef012562c589cbd1933da29d30aff528adacfd8f01778a7527e0c20000000000000001000000000000000000000000000000201969cd6e2bab5d91eca12ec6d02a6050223ae57f8aff97b69322b3f1e1e9a2b7000000000000000100000000000000010000000000000020444f614d3d491d4e2c08a3f52820366e5f3a1526c5d58d358fb1e58633e4d20b0000000000000001000000000000000100000000000000206e7ab1781b04aa6141dc2e5ec57fe06ea8152a892f0a879bbbe7e9fdd5844dde0000000000000001000000000000000100000000000000200601bcff1f6a53d3ccc41814e1b94ccb9988c71c56c5e82808399710863fd6aa000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000000200000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000010000000000000020dad9259c70e9b671ce33f839c0657303f4a84f974a65e73e0da92c83820ada0b000000000000000100000000000000000000000000000020f968296ed3e4f05216b970e7ac1352937342fe8f6a0ba8eac7f860c936eaa26d0000000000000001000000000000000100000000000000202efaefe650b6a09bb0544fc75df2049d3eaff975d8a83bc4ddd2ed7432989dde000000000000000100000000000000010000000000000020386031671100ec0f3f461144754f53d671c227627b4c8756a9081748efae4628000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c00000000000000030000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a78499000000000000000600000000000000010000000000000000000000000000002099cbfae788bb21e98f530fc6189351755786a874126a3e753b8eba95cd7ff4e80000000000000001000000000000000000000000000000201969cd6e2bab5d91eca12ec6d02a6050223ae57f8aff97b69322b3f1e1e9a2b7000000000000000100000000000000010000000000000020444f614d3d491d4e2c08a3f52820366e5f3a1526c5d58d358fb1e58633e4d20b0000000000000001000000000000000100000000000000206e7ab1781b04aa6141dc2e5ec57fe06ea8152a892f0a879bbbe7e9fdd5844dde0000000000000001000000000000000100000000000000200601bcff1f6a53d3ccc41814e1b94ccb9988c71c56c5e82808399710863fd6aa000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000000300000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000000000000000000020f8b7eab045f938fabc0d7536e613ebf49334ffa4569eedb3a9d5b5e2c57cd49e000000000000000100000000000000000000000000000020f968296ed3e4f05216b970e7ac1352937342fe8f6a0ba8eac7f860c936eaa26d0000000000000001000000000000000100000000000000202efaefe650b6a09bb0544fc75df2049d3eaff975d8a83bc4ddd2ed7432989dde000000000000000100000000000000010000000000000020386031671100ec0f3f461144754f53d671c227627b4c8756a9081748efae4628000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c00000000000000360000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000010000000000000020ddc997859234984e53e91953405116cb8ad48db38b60dc8e3206ff9b264ecd46000000000000000100000000000000000000000000000020f1ca9dcd120c66fb1ebff2f94b202c064a19ddde70936b0f5b92d87ab408d7d3000000000000000100000000000000000000000000000020626bd02f932e3615391bee938a0412ecd1cd2272cfae1e47459923ef7178acef0000000000000001000000000000000100000000000000208979ca75873db793654bcd0bbd1c0a1b39715385670b7e9dbae4aebbec52741c00000000000000010000000000000000000000000000002022ba410a643a755f99923873c2476ceb16eb3912cee23c769c03e3a3dfb8fdb6000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000001600000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000010000000000000020cc4cc421cb402e120895a59b9bf883ab73a825f30265524533f96570a512dbbb0000000000000001000000000000000000000000000000208b3e53ddff02275259e1548b8a0673ce76932c109bfcfda8d5657151d9e1c6b30000000000000001000000000000000000000000000000200972dca85cd3134096a5bde319d17a7ab979d0601af82b3df452fefb94b18ac10000000000000001000000000000000100000000000000200977b8e1fd7874daaddf632b94685d29e83f5319019eeb81f47e898b13eb460900000000000000010000000000000000000000000000002077c9c9aec58a87ab556bdacd713816fab67361b53271400fea3b965772a212d100000000000000060000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a78499000000000000000600000000000000010000000000000001000000000000002010a30407f258d879602e0e3f0dceb04db1f35dabdb3d5d78e75dcf5a40beb1870000000000000001000000000000000000000000000000203a20386f35f9e243ab1628db1f33726be2a9d88947d54dfe10c93ad79b2e451b000000000000000100000000000000000000000000000020db2d182450d1582bc458538f3de6566903c4265e6332b188c4676a669ba9c1860000000000000001000000000000000100000000000000206e7ab1781b04aa6141dc2e5ec57fe06ea8152a892f0a879bbbe7e9fdd5844dde0000000000000001000000000000000100000000000000200601bcff1f6a53d3ccc41814e1b94ccb9988c71c56c5e82808399710863fd6aa000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000000600000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000010000000000000020650f2dc5351738c424615dd077113f5b1eee946da0c478d4123557cd9e99597d000000000000000100000000000000000000000000000020e2d92c3f50b59d68948d274148c7da36c5eaa88d4df8f8b769ee731e260ae00300000000000000010000000000000000000000000000002067f7ad1fd0876288f08b31df54e7360964190721667ca03b23af092d0988cd8b000000000000000100000000000000010000000000000020386031671100ec0f3f461144754f53d671c227627b4c8756a9081748efae4628000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c000000000000002f0000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000000000000000000020682bc84563f1bf6d2e864c6c525dad09df2d06b7f7ec0d2813507703a7a34b1500000000000000010000000000000000000000000000002070bb41d0837c0bb7d144d607372011f7791f2480775a7b2dc13a200f041f46380000000000000001000000000000000000000000000000200eeea20245e587b3c79187605792fd067868fe7d8a2ad6f6fc450719949500af000000000000000100000000000000000000000000000020a63bb163c7044092808beeaff40be31a89a0ee9533dcef2e6c738b4b6979d59c000000000000000100000000000000010000000000000020ff95de509db243842ef124b7d5e65df0de205aca3d5041e84169d6a6270c1ebf000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000000f00000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af00000000000000050000000000000001000000000000000000000000000000206879c25a21a9952f8083a1ba80192bd77dadadb034c8bec159fb37e5ac2814ff0000000000000001000000000000000000000000000000205c10f601bcf93f78555d76d436a50e1895ce67971404e9e35fd4f749f332930c000000000000000100000000000000000000000000000020db7949f733391c69265c151180caa41295298ce45472debc910e360746e782b7000000000000000100000000000000000000000000000020e10154432454cbafd56b1d3571f2843202f86b982be342deddd0566e03beb9ad000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c00000000000000100000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a78499000000000000000600000000000000010000000000000001000000000000002084bab0ea852d74ce5f1205213453c0957786ea965866d51487913e67e4f896dc000000000000000100000000000000010000000000000020065982e1c28a38ce051ec2a164f79c3b723dec2d4eb0e70a2b4cd46cd5728609000000000000000100000000000000010000000000000020594598b94b3a250a7dbb87154c780574f287309aa45c3818c0470aa50fb5a5c40000000000000001000000000000000100000000000000207702d029a3b5fdf2fa631e6d8ef28554a2b7d70da56fee22828557afd1f056040000000000000001000000000000000000000000000000209ff4bc626f01cd895eacc32ee783bc5849b39341a7454cd58013ff7f06dedcef000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000001000000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af00000000000000050000000000000001000000000000000100000000000000203b285a0a467861b21a71c39683ca0b1b668fc01fce6b22e72e2d286d7673099900000000000000010000000000000001000000000000002010dfd10688b4b565aefb4bc19700ec82a9d85b0444f5835048d093a690402a74000000000000000100000000000000010000000000000020b05c8a4918c2b948ea22ac1ea9e8788f6b4dab63bb0d3072af2ab349c7d7407c0000000000000001000000000000000100000000000000200977b8e1fd7874daaddf632b94685d29e83f5319019eeb81f47e898b13eb460900000000000000010000000000000000000000000000002077c9c9aec58a87ab556bdacd713816fab67361b53271400fea3b965772a212d100000000000000150000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000000000000000000020583063db8f12c0ad350855b837212be307c0839fe47946fa2437b5a741c4223600000000000000010000000000000001000000000000002042166a8b570b42cb09d1cfc4055227064d897ddfb1290c453d55fcd8c07c720d000000000000000100000000000000000000000000000020ad35a5ffdc1126feb8a4df32cfb091dca1b2ad14deddbf30ca976c676e2c33240000000000000001000000000000000100000000000000207702d029a3b5fdf2fa631e6d8ef28554a2b7d70da56fee22828557afd1f056040000000000000001000000000000000000000000000000209ff4bc626f01cd895eacc32ee783bc5849b39341a7454cd58013ff7f06dedcef000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000001500000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000000000000000000020ef3bd30345aeca9ca4f5c0cc8f6aedcf661ef74b3f9951f0801f7892662a92c4000000000000000100000000000000010000000000000020f9d0417bf9c22af0fd7c868a9d85a01ec82f2143ba064a0a099f6035f93505250000000000000001000000000000000000000000000000200972dca85cd3134096a5bde319d17a7ab979d0601af82b3df452fefb94b18ac10000000000000001000000000000000100000000000000200977b8e1fd7874daaddf632b94685d29e83f5319019eeb81f47e898b13eb460900000000000000010000000000000000000000000000002077c9c9aec58a87ab556bdacd713816fab67361b53271400fea3b965772a212d1000000000000001e0000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a78499000000000000000600000000000000010000000000000001000000000000002089416afbd53e0e7d8d3c46ff431b1c003bef3db0eabde5ca27ddda3fe516218d0000000000000001000000000000000000000000000000206aa301a2a0105f9d3b3f3bd424eb22d3f0bc486083c94b124ab6a03a10c27fcd000000000000000100000000000000000000000000000020c90960d37d8b1147ae0b0e112e4e27c594c3d797c9fcb12d6c7adf455fa123c8000000000000000100000000000000000000000000000020d30b4459edd0f8e82197858ef6018b7151a51fe3ca9eebf3bf63bed2a4bfaaec0000000000000001000000000000000000000000000000209ff4bc626f01cd895eacc32ee783bc5849b39341a7454cd58013ff7f06dedcef000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000001e00000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000010000000000000020bf12dd95e0eff7e456ea833ff6479073931e62179e5a86483b0adf9e20249ce3000000000000000100000000000000000000000000000020478d821645fbfe9f725c7fd97dca405fc99ed284eba10f8e3b559999e9e489f00000000000000001000000000000000000000000000000209b03c94b2e686f76fd84b8a686b26899fbfc903226b5db0de8cac907fa19a6c50000000000000001000000000000000000000000000000208431414d63476460c32bbfa4cb99ee87313f878d671a131aa704e34b140597f600000000000000010000000000000000000000000000002077c9c9aec58a87ab556bdacd713816fab67361b53271400fea3b965772a212d100000000000000280000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a7849900000000000000060000000000000001000000000000000100000000000000200de76128d7a385bc1af6ecf71de92c322ee92ce0a67336d1382df9dd31359c610000000000000001000000000000000100000000000000209c46e22db1efdc1c556fa27e42e1de6cfba132d5e7937cde7141c527099745fa000000000000000100000000000000010000000000000020868ae6d8928dd7afd1e2e7b535bad43f09eb31d51303d76bfca0cb316a54f5af000000000000000100000000000000000000000000000020a63bb163c7044092808beeaff40be31a89a0ee9533dcef2e6c738b4b6979d59c000000000000000100000000000000010000000000000020ff95de509db243842ef124b7d5e65df0de205aca3d5041e84169d6a6270c1ebf000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000000800000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000010000000000000020b942405a493aa5d9a83fbe5cc0faa76de9acfc3510805056973fe7c811921596000000000000000100000000000000010000000000000020e06052f87b3f12b879dbbda42c74687a41e5c4eccd9e9718dc16d31887760491000000000000000100000000000000010000000000000020bb30daaa93d8088060f02ea33b18e11aed7d16099147f6b8e5f593044d4cb4b4000000000000000100000000000000000000000000000020e10154432454cbafd56b1d3571f2843202f86b982be342deddd0566e03beb9ad000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c00000000000000010000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000000000000000000020a805c9d85db272717f3495dc562d5ec4c8546e20dce0a86247c868434df43867000000000000000100000000000000010000000000000020c0b0c96eecd0b639c972756cffed688d2b487c87a58a6a2fb849e4a6599eb437000000000000000100000000000000010000000000000020444f614d3d491d4e2c08a3f52820366e5f3a1526c5d58d358fb1e58633e4d20b0000000000000001000000000000000100000000000000206e7ab1781b04aa6141dc2e5ec57fe06ea8152a892f0a879bbbe7e9fdd5844dde0000000000000001000000000000000100000000000000200601bcff1f6a53d3ccc41814e1b94ccb9988c71c56c5e82808399710863fd6aa000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000000100000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000000000000000000020fbd0afd6a2565130a294eafa826bb9368a0f904fe9a1baa7dbd9149986dda23f000000000000000100000000000000010000000000000020b1240eb0ef003415e82c3b6c90d732666ed1da3c7e6ce7ead2f7217d059dba9d0000000000000001000000000000000100000000000000202efaefe650b6a09bb0544fc75df2049d3eaff975d8a83bc4ddd2ed7432989dde000000000000000100000000000000010000000000000020386031671100ec0f3f461144754f53d671c227627b4c8756a9081748efae4628000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c00000000000000310000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000000000000000000020e0597d120abf0a6e2737ce63359387104d37f3ad9bffd46f56e0895ba29fabba00000000000000010000000000000001000000000000002022bd49adc4089daadb82d2b8890d9211639ed30654c204fd632819dd71ebd90b00000000000000010000000000000001000000000000002032e5e8cdbc4e6649fb68d951f01f7b4ddc33c53c95e2849b11cdea3452b290280000000000000001000000000000000100000000000000208979ca75873db793654bcd0bbd1c0a1b39715385670b7e9dbae4aebbec52741c00000000000000010000000000000000000000000000002022ba410a643a755f99923873c2476ceb16eb3912cee23c769c03e3a3dfb8fdb6000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000001100000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000000000000000000020f7df057732d020bd297e289b4e02deed9da08858b6bda0193b5de737425239b600000000000000010000000000000001000000000000002010dfd10688b4b565aefb4bc19700ec82a9d85b0444f5835048d093a690402a74000000000000000100000000000000010000000000000020b05c8a4918c2b948ea22ac1ea9e8788f6b4dab63bb0d3072af2ab349c7d7407c0000000000000001000000000000000100000000000000200977b8e1fd7874daaddf632b94685d29e83f5319019eeb81f47e898b13eb460900000000000000010000000000000000000000000000002077c9c9aec58a87ab556bdacd713816fab67361b53271400fea3b965772a212d100000000000000010000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000000000000000000020a805c9d85db272717f3495dc562d5ec4c8546e20dce0a86247c868434df43867000000000000000100000000000000010000000000000020c0b0c96eecd0b639c972756cffed688d2b487c87a58a6a2fb849e4a6599eb437000000000000000100000000000000010000000000000020444f614d3d491d4e2c08a3f52820366e5f3a1526c5d58d358fb1e58633e4d20b0000000000000001000000000000000100000000000000206e7ab1781b04aa6141dc2e5ec57fe06ea8152a892f0a879bbbe7e9fdd5844dde0000000000000001000000000000000100000000000000200601bcff1f6a53d3ccc41814e1b94ccb9988c71c56c5e82808399710863fd6aa000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000000100000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000000000000000000020fbd0afd6a2565130a294eafa826bb9368a0f904fe9a1baa7dbd9149986dda23f000000000000000100000000000000010000000000000020b1240eb0ef003415e82c3b6c90d732666ed1da3c7e6ce7ead2f7217d059dba9d0000000000000001000000000000000100000000000000202efaefe650b6a09bb0544fc75df2049d3eaff975d8a83bc4ddd2ed7432989dde000000000000000100000000000000010000000000000020386031671100ec0f3f461144754f53d671c227627b4c8756a9081748efae4628000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c000000000000001c0000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a78499000000000000000600000000000000010000000000000001000000000000002056b642432079f79978aa4becba1178cc4d7ef06625a9962f9696e2e7e2dfb743000000000000000100000000000000010000000000000020c84e319b18b940ad3ad6a99a2ca9b6cc2e5afb3b4f873b5b835c768dd6251405000000000000000100000000000000000000000000000020c90960d37d8b1147ae0b0e112e4e27c594c3d797c9fcb12d6c7adf455fa123c8000000000000000100000000000000000000000000000020d30b4459edd0f8e82197858ef6018b7151a51fe3ca9eebf3bf63bed2a4bfaaec0000000000000001000000000000000000000000000000209ff4bc626f01cd895eacc32ee783bc5849b39341a7454cd58013ff7f06dedcef000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000001c00000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000010000000000000020df696b09f0523edaa17afaac03f62d83412c3d8c8a29b5378cd47be7a2e6b953000000000000000100000000000000010000000000000020e4bceedf6223751cfd58f40f913114cae93baa2639b13154fc55187ec63453770000000000000001000000000000000000000000000000209b03c94b2e686f76fd84b8a686b26899fbfc903226b5db0de8cac907fa19a6c50000000000000001000000000000000000000000000000208431414d63476460c32bbfa4cb99ee87313f878d671a131aa704e34b140597f600000000000000010000000000000000000000000000002077c9c9aec58a87ab556bdacd713816fab67361b53271400fea3b965772a212d100000000000000290000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000000000000000000020d170d00dc89cea59bdb2cdad253b48bd5994ad2e0d93f24722737a2fbf72b0d00000000000000001000000000000000100000000000000209c46e22db1efdc1c556fa27e42e1de6cfba132d5e7937cde7141c527099745fa000000000000000100000000000000010000000000000020868ae6d8928dd7afd1e2e7b535bad43f09eb31d51303d76bfca0cb316a54f5af000000000000000100000000000000000000000000000020a63bb163c7044092808beeaff40be31a89a0ee9533dcef2e6c738b4b6979d59c000000000000000100000000000000010000000000000020ff95de509db243842ef124b7d5e65df0de205aca3d5041e84169d6a6270c1ebf000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000000900000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af00000000000000050000000000000001000000000000000000000000000000201703619e4686c3babe4c017d34bf800c1478a6876e01a8831278359afed2f356000000000000000100000000000000010000000000000020e06052f87b3f12b879dbbda42c74687a41e5c4eccd9e9718dc16d31887760491000000000000000100000000000000010000000000000020bb30daaa93d8088060f02ea33b18e11aed7d16099147f6b8e5f593044d4cb4b4000000000000000100000000000000000000000000000020e10154432454cbafd56b1d3571f2843202f86b982be342deddd0566e03beb9ad000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c00000000000000340000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a7849900000000000000060000000000000001000000000000000100000000000000209e7706c7e4b41100f1151171acd9db254a5d2da045723e1c124c6f68c2230625000000000000000100000000000000010000000000000020d6ceaac07c67b0a64c32369a1ea6e4166caf4b1a9150fa9ea43382fa85666468000000000000000100000000000000000000000000000020626bd02f932e3615391bee938a0412ecd1cd2272cfae1e47459923ef7178acef0000000000000001000000000000000100000000000000208979ca75873db793654bcd0bbd1c0a1b39715385670b7e9dbae4aebbec52741c00000000000000010000000000000000000000000000002022ba410a643a755f99923873c2476ceb16eb3912cee23c769c03e3a3dfb8fdb6000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000001400000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000010000000000000020dae63158ad845c64205cc257a03d2d49695acc93f54d3bc5dd89970135f9623c000000000000000100000000000000010000000000000020f9d0417bf9c22af0fd7c868a9d85a01ec82f2143ba064a0a099f6035f93505250000000000000001000000000000000000000000000000200972dca85cd3134096a5bde319d17a7ab979d0601af82b3df452fefb94b18ac10000000000000001000000000000000100000000000000200977b8e1fd7874daaddf632b94685d29e83f5319019eeb81f47e898b13eb460900000000000000010000000000000000000000000000002077c9c9aec58a87ab556bdacd713816fab67361b53271400fea3b965772a212d10000000000000002398cea73e44f9346b0b98f132fff2ae28356593ae5a12eac860f460fa3a9a1400aac2ce7b2d8af19d736c47f66b2e6eb6fee949d0a3fdbe562a223c9968622ab488cd8e4 \ No newline at end of file diff --git a/contracts/modular/circuit6/commitment.sol b/contracts/modular/circuit6/commitment.sol new file mode 100644 index 0000000..2bf8f3c --- /dev/null +++ b/contracts/modular/circuit6/commitment.sol @@ -0,0 +1,596 @@ + +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) 2023 Generated by ZKLLVM-transpiler +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity >=0.8.4; + +import "../../cryptography/transcript.sol"; +import "../../interfaces/modular_commitment.sol"; +// Move away unused structures from types.sol +import "../../types.sol"; +import "../../basic_marshalling.sol"; +import "../../containers/merkle_verifier.sol"; +import "../../algebra/polynomial.sol"; +import "hardhat/console.sol"; + +contract modular_commitment_scheme_circuit6 { + uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; + uint64 constant batches_num = 5; + uint256 constant r = 2; + uint256 constant lambda = 40; + uint256 constant D0_size = 128; + uint256 constant max_degree = 7; + uint256 constant D0_omega = 7356716530956153652314774863381845254278968224778478050456563329565810467774; + uint256 constant unique_points = 6; + uint256 constant permutation_point = 3; + uint256 constant quotient_point = 1; + uint256 constant lookup_point = 5; + bytes constant points_ids = hex"020202020202020204040404040402020001"; + uint256 constant omega = 199455130043951077247265858823823987229570523056509026484192158816218200659; + uint256 _etha; + + struct commitment_state{ + bytes leaf_data; + uint256 roots_offset; + uint256 initial_data_offset; + uint256 initial_proof_offset; + uint256 round_proof_offset; + uint256 round_data_offset; + uint256[r] alphas; + uint64[batches_num] batch_sizes; + uint64 poly_num; + uint256 points_num; + uint256 theta; + uint256 x_index; + uint256 x; + uint256 max_batch; + uint256 domain_size; + uint256[] final_polynomial; + uint256 leaf_length; + uint256[][unique_points] denominators; + uint256[unique_points] factors; + uint256[][unique_points] combined_U; + uint256[][unique_points] unique_eval_points; + uint256[2] y; + uint256 j; + uint256 offset; + } + + function calculate_2points_interpolation(uint256[] memory xi, uint256[2] memory z, uint256 modulus) + internal pure returns(uint256[2] memory U){ +// require( xi.length == 2 ); + U[0] = addmod(mulmod(z[0], xi[1], modulus),modulus - mulmod(z[1], xi[0], modulus), modulus); + U[1] = addmod(z[1], modulus - z[0], modulus); + } + +// coeffs for zs on each degree can be precomputed if necessary + function calculate_3points_interpolation(uint256[] memory xi, uint256[3] memory z, uint256 modulus) + internal pure returns(uint256[3] memory U){ +// require( xi.length == 3 ); + z[0] = mulmod(z[0], addmod(xi[1], modulus - xi[2], modulus), modulus); + z[1] = mulmod(z[1], addmod(xi[2], modulus - xi[0], modulus), modulus); + z[2] = mulmod(z[2], addmod(xi[0], modulus - xi[1], modulus), modulus); + + U[0] = mulmod(z[0], mulmod(xi[1], xi[2], modulus), modulus); + U[0] = addmod(U[0], mulmod(z[1], mulmod(xi[0], xi[2], modulus), modulus), modulus); + U[0] = addmod(U[0], mulmod(z[2], mulmod(xi[0], xi[1], modulus), modulus), modulus); + + U[1] = modulus - mulmod(z[0], addmod(xi[1], xi[2], modulus), modulus); + U[1] = addmod(U[1], modulus - mulmod(z[1], addmod(xi[0], xi[2], modulus), modulus), modulus); + U[1] = addmod(U[1], modulus - mulmod(z[2], addmod(xi[0], xi[1], modulus), modulus), modulus); + + U[2] = addmod(z[0], addmod(z[1], z[2], modulus), modulus); + } + + function prepare_eval_points(uint256[][unique_points] memory result, uint256 xi) internal view { + uint256 inversed_omega = field.inverse_static(omega, modulus); + result[0] = new uint256[](2); + result[0][0] = mulmod(xi, inversed_omega, modulus); + result[0][1] = xi; + result[1] = new uint256[](1); + result[1][0] = xi; + result[2] = new uint256[](2); + result[2][0] = xi; + result[2][1] = _etha; + result[3] = new uint256[](2); + result[3][0] = xi; + result[3][1] = mulmod(xi, omega, modulus); + result[4] = new uint256[](3); + result[4][0] = xi; + result[4][1] = mulmod(xi, omega, modulus); + result[4][2] = _etha; + result[5] = new uint256[](3); + result[5][0] = xi; + result[5][1] = mulmod(xi, omega, modulus); + result[5][2] = mulmod(xi, field.pow_small(omega, 6, modulus), modulus); + + } + + function prepare_U_V(bytes calldata blob, commitment_state memory state, uint256 xi) internal view returns(bool result){ + result = true; + uint64 ind = 0; + prepare_eval_points(state.unique_eval_points, xi); + // Prepare denominators + for( ind = 0; ind < state.unique_eval_points.length;){ + state.denominators[ind] = new uint256[](state.unique_eval_points[ind].length + 1); + if( state.unique_eval_points[ind].length == 1 ){ + state.factors[ind] = 1; + state.denominators[ind][0] = modulus - state.unique_eval_points[ind][0]; + state.denominators[ind][1] = 1; + } else + if( state.unique_eval_points[ind].length == 2 ){ + // xi1 - xi0 + state.factors[ind] = + addmod(state.unique_eval_points[ind][1], modulus - state.unique_eval_points[ind][0], modulus); + state.denominators[ind][2] = 1; + + state.denominators[ind][1] = + modulus - addmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][1], modulus); + + state.denominators[ind][0] = + mulmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][1], modulus); + state.denominators[ind][0] = mulmod(state.denominators[ind][0], state.factors[ind], modulus); + state.denominators[ind][1] = mulmod(state.denominators[ind][1], state.factors[ind], modulus); + state.denominators[ind][2] = mulmod(state.denominators[ind][2], state.factors[ind], modulus); + } else + if( state.unique_eval_points[ind].length == 3 ){ + state.factors[ind] = modulus - + mulmod( + mulmod( + addmod(state.unique_eval_points[ind][0], modulus - state.unique_eval_points[ind][1], modulus), + addmod(state.unique_eval_points[ind][1], modulus - state.unique_eval_points[ind][2], modulus), + modulus + ), + addmod(state.unique_eval_points[ind][2], modulus - state.unique_eval_points[ind][0], modulus), + modulus + ); + state.denominators[ind][3] = 1; + state.denominators[ind][2] = + modulus - addmod( + state.unique_eval_points[ind][0], + addmod(state.unique_eval_points[ind][1],state.unique_eval_points[ind][2], modulus), + modulus + ); + state.denominators[ind][1] = + addmod( + mulmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][1], modulus), + addmod( + mulmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][2], modulus), + mulmod(state.unique_eval_points[ind][1], state.unique_eval_points[ind][2], modulus), + modulus + ), + modulus + ); + state.denominators[ind][0] = + modulus - mulmod( + state.unique_eval_points[ind][0], + mulmod(state.unique_eval_points[ind][1],state.unique_eval_points[ind][2], modulus), + modulus + ); + state.denominators[ind][0] = mulmod(state.denominators[ind][0], state.factors[ind], modulus); + state.denominators[ind][1] = mulmod(state.denominators[ind][1], state.factors[ind], modulus); + state.denominators[ind][2] = mulmod(state.denominators[ind][2], state.factors[ind], modulus); + state.denominators[ind][3] = mulmod(state.denominators[ind][3], state.factors[ind], modulus); + } else { + console.log("UNPROCESSED number of evaluation points"); + return false; + } + unchecked{ind++;} + } + + // Prepare combined U + for( uint256 ind = 0; ind < unique_points;){ + uint256[] memory point = state.unique_eval_points[ind]; + state.combined_U[ind] = new uint256[](state.unique_eval_points[ind].length); + uint64 cur = 0; + uint256 offset = 0x8; + for( uint256 k = 0; k < batches_num;){ + for( uint256 i = 0; i < state.batch_sizes[k];){ + uint256 cur_point = 0; + if(cur < points_ids.length ) cur_point = uint8(points_ids[cur]); + else if(k == 2) cur_point = permutation_point; + else if(k == 3) cur_point = quotient_point; + else if(k == 4) cur_point = lookup_point; + else console.log("Wrong index"); + + polynomial.multiply_poly_on_coeff( + state.combined_U[ind], + state.theta, + modulus + ); + if( cur_point == ind ){ + if( point.length == 1 ){ + state.combined_U[ind][0] = addmod( + state.combined_U[ind][0], + basic_marshalling.get_uint256_be(blob, offset), + modulus + ); + } else + if( point.length == 2 ){ + uint256[2] memory tmp; + tmp[0] = basic_marshalling.get_uint256_be(blob, offset); + tmp[1] = basic_marshalling.get_uint256_be(blob, offset + 0x20); + tmp = calculate_2points_interpolation( + point, tmp, modulus + ); + state.combined_U[ind][0] = addmod(state.combined_U[ind][0], tmp[0], modulus); + state.combined_U[ind][1] = addmod(state.combined_U[ind][1], tmp[1], modulus); + } else + if( point.length == 3){ + uint256[3] memory tmp; + tmp[0] = basic_marshalling.get_uint256_be(blob, offset); + tmp[1] = basic_marshalling.get_uint256_be(blob, offset + 0x20); + tmp[2] = basic_marshalling.get_uint256_be(blob, offset + 0x40); + tmp = calculate_3points_interpolation( + point, tmp, modulus + ); + state.combined_U[ind][0] = addmod(state.combined_U[ind][0], tmp[0], modulus); + state.combined_U[ind][1] = addmod(state.combined_U[ind][1], tmp[1], modulus); + state.combined_U[ind][2] = addmod(state.combined_U[ind][2], tmp[2], modulus); + } else { + return false; + } + } + offset += state.unique_eval_points[cur_point].length * 0x20; + unchecked{i++;cur++;} + } + unchecked{k++;} + } + unchecked{ind++;} + } + } + + function compute_combined_Q(bytes calldata blob,commitment_state memory state) internal view returns(uint256[2] memory y){ + for(uint256 p = 0; p < unique_points; ){ + uint256[2] memory tmp; + uint256 offset = state.initial_data_offset - state.poly_num * 0x40; // Save initial data offset for future use; + uint256 cur = 0; + for(uint256 b = 0; b < batches_num;){ + for(uint256 j = 0; j < state.batch_sizes[b];){ + uint256 cur_point = 0; + if(cur < points_ids.length ) cur_point = uint8(points_ids[cur]); + else if(b == 2) cur_point = permutation_point; + else if(b == 3) cur_point = quotient_point; + else if(b == 4) cur_point = lookup_point; + else console.log("Wrong index"); + + tmp[0] = mulmod(tmp[0], state.theta, modulus); + tmp[1] = mulmod(tmp[1], state.theta, modulus); + + if(cur_point == p){ + tmp[0] = addmod(tmp[0], basic_marshalling.get_uint256_be(blob, offset), modulus); + tmp[1] = addmod(tmp[1], basic_marshalling.get_uint256_be(blob, offset + 0x20), modulus); + } + unchecked{offset += 0x40;j++; cur++;} + } + unchecked{b++;} + } + tmp[0] = mulmod(tmp[0], state.factors[p], modulus); + tmp[1] = mulmod(tmp[1], state.factors[p], modulus); + uint256 s = state.x; + tmp[0] = addmod(tmp[0], modulus - polynomial.evaluate(state.combined_U[p], s , modulus), modulus); + tmp[1] = addmod(tmp[1], modulus - polynomial.evaluate(state.combined_U[p], modulus - s, modulus), modulus); + tmp[0] = mulmod(tmp[0], field.inverse_static(polynomial.evaluate(state.denominators[p], s, modulus), modulus), modulus); + tmp[1] = mulmod(tmp[1], field.inverse_static(polynomial.evaluate(state.denominators[p], modulus - s, modulus), modulus), modulus); + y[0] = addmod(y[0], tmp[0], modulus); + y[1] = addmod(y[1], tmp[1], modulus); + unchecked{p++;} + } + } + + function initialize( + bytes32 tr_state_before + ) external returns(bytes32 tr_state_after){ + types.transcript_data memory tr_state; + tr_state.current_challenge = tr_state_before; + _etha = transcript.get_field_challenge(tr_state, modulus); + tr_state_after = tr_state.current_challenge; + } + + function copy_memory_pair_and_check(bytes calldata blob, uint256 proof_offset, bytes memory leaf, uint256[2] memory pair) + internal pure returns(bool b){ + uint256 c = pair[0]; + uint256 d = pair[1]; + assembly{ + mstore( + add(leaf, 0x20), + c + ) + mstore( + add(leaf, 0x40), + d + ) + } + if( !merkle_verifier.parse_verify_merkle_proof_bytes_be(blob, proof_offset, leaf, 0x40 )){ + return false; + } else { + return true; + } + } + + function copy_reverted_memory_pair_and_check(bytes calldata blob, uint256 proof_offset, bytes memory leaf, uint256[2] memory pair) + internal pure returns(bool b){ + uint256 c = pair[0]; + uint256 d = pair[1]; + assembly{ + mstore( + add(leaf, 0x20), + d + ) + mstore( + add(leaf, 0x40), + c + ) + } + if( !merkle_verifier.parse_verify_merkle_proof_bytes_be(blob, proof_offset, leaf, 0x40 )){ + return false; + } else { + return true; + } + } + + function copy_pairs_and_check(bytes calldata blob, uint256 offset, bytes memory leaf, uint256 size, uint256 proof_offset) + internal pure returns(bool b){ + uint256 offset2 = 0x20; + for(uint256 k = 0; k < size;){ + assembly{ + mstore( + add(leaf, offset2), + calldataload(add(blob.offset, offset)) + ) + mstore( + add(leaf, add(offset2, 0x20)), + calldataload(add(blob.offset, add(offset, 0x20))) + ) + } + unchecked{ + k++; offset2 += 0x40; offset += 0x40; + } + } + if( !merkle_verifier.parse_verify_merkle_proof_bytes_be(blob, proof_offset, leaf, offset2 - 0x20 )){ + return false; + } else { + return true; + } + } + + function copy_reverted_pairs_and_check(bytes calldata blob, uint256 offset, bytes memory leaf, uint256 size, uint256 proof_offset) + internal pure returns(bool){ + uint256 offset2 = 0x20; + for(uint256 k = 0; k < size;){ + assembly{ + mstore( + add(leaf, offset2), + calldataload(add(blob.offset, add(offset, 0x20))) + ) + mstore( + add(leaf, add(offset2, 0x20)), + calldataload(add(blob.offset, offset)) + ) + } + unchecked{ + k++; offset2 += 0x40; offset += 0x40; + } + } + if( !merkle_verifier.parse_verify_merkle_proof_bytes_be(blob, proof_offset, leaf, offset2 - 0x20 )){ + return false; + } else { + return true; + } + } + + function colinear_check(uint256 x, uint256[2] memory y, uint256 alpha, uint256 colinear_value) internal pure returns(bool){ + uint256 tmp; + tmp = addmod(y[0], y[1], modulus); + tmp = mulmod(tmp, x, modulus); + tmp = addmod( + tmp, + mulmod( + alpha, + addmod(y[0], modulus-y[1], modulus), + modulus + ), + modulus + ); + uint256 tmp1 = mulmod(colinear_value , 2, modulus); + tmp1 = mulmod(tmp1 , x, modulus); + if( tmp != tmp1 ){ + console.log("Colinear check failed"); + return false; + } + return true; + } + + function verify_eval( + bytes calldata blob, + uint256[5] memory commitments, + uint256 challenge, + bytes32 transcript_state + ) external view returns (bool){ + types.transcript_data memory tr_state; + tr_state.current_challenge = transcript_state; + commitment_state memory state; + { + uint256 offset; + + if (challenge!= transcript.get_field_challenge(tr_state, modulus)) return false; + + for(uint8 i = 0; i < batches_num;){ + transcript.update_transcript_b32(tr_state, bytes32(commitments[i])); + unchecked{i++;} + } + state.theta = transcript.get_field_challenge(tr_state, modulus); + + state.points_num = basic_marshalling.get_length(blob, 0x0); + unchecked{ + offset = 0x8 + state.points_num*0x20 + 0x8; + } + for(uint8 i = 0; i < batches_num;){ + state.batch_sizes[i] = uint64(uint8(blob[offset + 0x1])); + if( state.batch_sizes[i] > state.max_batch ) state.max_batch = state.batch_sizes[i]; + state.poly_num += state.batch_sizes[i]; + unchecked { i++; offset +=2;} + } + unchecked{ + offset += 0x8; + offset += state.poly_num; + state.roots_offset = offset + 0x8; + offset += 0x8; + } + for( uint8 i = 0; i < r;){ + transcript.update_transcript_b32(tr_state, bytes32(basic_marshalling.get_uint256_be(blob, offset + 0x8))); + state.alphas[i] = transcript.get_field_challenge(tr_state, modulus); + unchecked{i++; offset +=40; } + } + + + bytes calldata proof_of_work = blob[blob.length - 4:]; + transcript.update_transcript(tr_state, proof_of_work); + transcript.get_integral_challenge_be(tr_state, 4); + + + unchecked{ + offset += 0x8 + r; + state.initial_data_offset = offset + 0x8; + offset += 0x8 + 0x20*basic_marshalling.get_length(blob, offset); + } + + unchecked{ + state.round_data_offset = offset + 0x8; + offset += 0x8 + 0x20*basic_marshalling.get_length(blob, offset); + offset += 0x8; + } + state.initial_proof_offset = offset; + for(uint8 i = 0; i < lambda;){ + for(uint j = 0; j < batches_num;){ + if(basic_marshalling.get_uint256_be(blob, offset + 0x10) != commitments[j] ) return false; + offset = merkle_verifier.skip_merkle_proof_be(blob, offset); + unchecked{j++;} + } + unchecked{i++;} + } + offset += 0x8; + state.round_proof_offset = offset; + + for(uint256 i = 0; i < lambda;){ + for(uint256 j = 0; j < r;){ + if(basic_marshalling.get_uint256_be(blob, offset + 0x10) != basic_marshalling.get_uint256_be(blob, state.roots_offset + j * 40 + 0x8) ) return false; + offset = merkle_verifier.skip_merkle_proof_be(blob, offset); + unchecked{j++;} + } + unchecked{i++;} + } + + state.final_polynomial = new uint256[](basic_marshalling.get_length(blob, offset)); + unchecked{offset += 0x8;} + for (uint256 i = 0; i < state.final_polynomial.length;) { + state.final_polynomial[i] = basic_marshalling.get_uint256_be(blob, offset); + unchecked{ i++; offset+=0x20;} + } + } + if( state.final_polynomial.length > (( 1 << (field.log2(max_degree + 1) - r + 1) ) ) ){ + console.log("Wrong final poly degree"); + return false; + } + + if( !prepare_U_V(blob, state, challenge) ) return false; + + state.leaf_data = new bytes(state.max_batch * 0x40 + 0x40); + for(uint256 i = 0; i < lambda;){ + // Initial proofs + state.x_index = uint256(transcript.get_integral_challenge_be(tr_state, 8)) % D0_size; + state.x = field.pow_small(D0_omega, state.x_index, modulus); + state.domain_size = D0_size >> 1; + for(uint256 j = 0; j < batches_num;){ + if( state.x_index < state.domain_size ){ + if(!copy_pairs_and_check(blob, state.initial_data_offset, state.leaf_data, state.batch_sizes[j], state.initial_proof_offset)){ + console.log("Error in initial mekle proof"); + return false; + } + } else { + if(!copy_reverted_pairs_and_check(blob, state.initial_data_offset, state.leaf_data, state.batch_sizes[j], state.initial_proof_offset)){ + console.log("Error in initial mekle proof"); + return false; + } + } + state.leaf_length = state.batch_sizes[j] * 0x40; + state.initial_data_offset += state.batch_sizes[j] * 0x40; + state.initial_proof_offset = merkle_verifier.skip_merkle_proof_be(blob, state.initial_proof_offset); + unchecked{j++;} + } + { + state.y = compute_combined_Q(blob, state); + if( state.x_index < state.domain_size ){ + if( !copy_memory_pair_and_check(blob, state.round_proof_offset, state.leaf_data, state.y) ){ + console.log("Not validated!"); + return false; + } + }else{ + if( !copy_reverted_memory_pair_and_check(blob, state.round_proof_offset, state.leaf_data, state.y) ){ + console.log("Not validated!"); + return false; + } + } + } + if( !colinear_check(state.x, state.y, state.alphas[0], basic_marshalling.get_uint256_be(blob,state.round_data_offset)) ){ + console.log("Colinear check failed"); + return false; + } + + state.round_proof_offset = merkle_verifier.skip_merkle_proof_be(blob, state.round_proof_offset); + for(state.j = 1; state.j < r;){ + state.x_index %= state.domain_size; + state.x = mulmod(state.x, state.x, modulus); + state.domain_size >>= 1; + if( state.x_index < state.domain_size ){ + if(!copy_pairs_and_check(blob, state.round_data_offset, state.leaf_data, 1, state.round_proof_offset)) { + console.log("Error in round mekle proof"); + return false; + } + } else { + if(!copy_reverted_pairs_and_check(blob, state.round_data_offset, state.leaf_data, 1, state.round_proof_offset)) { + console.log("Error in round mekle proof"); + return false; + } + } + state.y[0] = basic_marshalling.get_uint256_be(blob, state.round_data_offset); + state.y[1] = basic_marshalling.get_uint256_be(blob, state.round_data_offset + 0x20); + if( !colinear_check(state.x, state.y, state.alphas[state.j], basic_marshalling.get_uint256_be(blob,state.round_data_offset + 0x40)) ){ + console.log("Round colinear check failed"); + return false; + } + unchecked{state.j++; state.round_data_offset += 0x40;} + state.round_proof_offset = merkle_verifier.skip_merkle_proof_be(blob, state.round_proof_offset); + } + + state.x = mulmod(state.x, state.x, modulus); + if(polynomial.evaluate(state.final_polynomial, state.x, modulus) != basic_marshalling.get_uint256_be(blob, state.round_data_offset)) { + console.log("Wrong final poly check"); + return false; + } + if(polynomial.evaluate(state.final_polynomial, modulus - state.x, modulus) != basic_marshalling.get_uint256_be(blob, state.round_data_offset + 0x20)){ + console.log("Wrong final poly check"); + return false; + } + state.round_data_offset += 0x40; + + unchecked{i++;} + } + console.log("EVALUATION PROOF verified"); + return true; + } +} + \ No newline at end of file diff --git a/contracts/modular/circuit6/gate_argument.sol b/contracts/modular/circuit6/gate_argument.sol new file mode 100644 index 0000000..21584bf --- /dev/null +++ b/contracts/modular/circuit6/gate_argument.sol @@ -0,0 +1,39 @@ + +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) 2023 Generated by ZKLLVM-transpiler +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity >=0.8.4; + +import "../../types.sol"; +import "../../basic_marshalling.sol"; +import "../../interfaces/modular_gate_argument.sol"; +import "hardhat/console.sol"; + +contract modular_gate_argument_circuit6 is IGateArgument{ + uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; + + // Append commitments + function verify( + bytes calldata blob, + uint256 theta + ) external view returns (uint256 F){ + uint256 sum; + uint256 gate; + uint256 prod; + uint256 theta_acc=1; + + } +} \ No newline at end of file diff --git a/contracts/modular/circuit6/lookup_argument.sol b/contracts/modular/circuit6/lookup_argument.sol new file mode 100644 index 0000000..36c9292 --- /dev/null +++ b/contracts/modular/circuit6/lookup_argument.sol @@ -0,0 +1,240 @@ + +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) 2023 Generated by ZKLLVM-transpiler +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity >=0.8.4; + +import "../../cryptography/transcript.sol"; +// Move away unused structures from types.sol +import "../../types.sol"; +import "../../basic_marshalling.sol"; +import "../../cryptography/transcript.sol"; +import "../../interfaces/modular_lookup_argument.sol"; +import "hardhat/console.sol"; + +//contract modular_lookup_argument_circuit6 is ILookupArgument{ +library modular_lookup_argument_circuit6{ + uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; + uint8 constant tables = 1; + uint8 constant sorted_columns = 7; + uint8 constant lookup_options_num = 4; + uint8 constant lookup_constraints_num = 3; + + + struct lookup_state{ + uint256 theta; + uint256 beta; + uint256 gamma; + uint256 factor; + uint256 V_L_value; + uint256 V_L_shifted_value; + uint256 q_last; + uint256 q_blind; + uint256 mask; + uint256 shifted_mask; + uint256 selector_value; + uint256 shifted_selector_value; + uint256 theta_acc; + uint256 g; + uint256 h; + uint256 l_shifted; + } + + function verify( + bytes calldata zvalues, // Table values and permutations' values + bytes calldata sorted, // Sorted batch values + uint256 lookup_commitment, + uint256 l0, + bytes32 tr_state_before // It's better than transfer all random values + ) internal view returns (uint256[4] memory F, bytes32 tr_state_after){ + bytes calldata blob = zvalues[0xc0:]; + lookup_state memory state; + state.V_L_value = basic_marshalling.get_uint256_be(zvalues, 0xc0 + 608 + 0x40); + state.V_L_shifted_value = basic_marshalling.get_uint256_be(zvalues, 0xc0 + 608 + 0x60); + state.q_last = basic_marshalling.get_uint256_be(zvalues, 0x0); + state.q_blind = basic_marshalling.get_uint256_be(zvalues, 0x60); + state.mask = addmod(1, modulus - addmod(state.q_last , state.q_blind, modulus), modulus); + F[2] = state.mask; + + state.shifted_mask = addmod( + 1, + modulus - addmod(basic_marshalling.get_uint256_be(zvalues, 0x20) , basic_marshalling.get_uint256_be(zvalues, 0x80), modulus), + modulus + ); + + types.transcript_data memory tr_state; + tr_state.current_challenge = tr_state_before; + { + state.theta = transcript.get_field_challenge(tr_state, modulus); //theta + uint256 l; + state.g = 1; + state.h = 1; + + transcript.update_transcript_b32(tr_state, bytes32(lookup_commitment)); + state.beta = transcript.get_field_challenge(tr_state, modulus); //beta + state.gamma = transcript.get_field_challenge(tr_state, modulus); //gamma + state.factor = mulmod(addmod(1, state.beta, modulus), state.gamma, modulus); + + uint256 sum; + uint256 prod; + state.selector_value=basic_marshalling.get_uint256_be(blob, 384); + l = mulmod( 1,state.selector_value, modulus); + state.theta_acc=state.theta; + sum = 0; + prod = basic_marshalling.get_uint256_be(blob, 544); + sum = addmod(sum, prod, modulus); + + + l = addmod( l, mulmod( mulmod(state.theta_acc, state.selector_value, modulus), sum, modulus), modulus); + state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); +state.g = mulmod(state.g, mulmod(addmod(1, state.beta, modulus), addmod(l,state.gamma, modulus), modulus), modulus); + l = mulmod( 2,state.selector_value, modulus); + state.theta_acc=state.theta; + sum = 0; + prod = basic_marshalling.get_uint256_be(blob, 576); + sum = addmod(sum, prod, modulus); + + + l = addmod( l, mulmod( mulmod(state.theta_acc, state.selector_value, modulus), sum, modulus), modulus); + state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); +state.g = mulmod(state.g, mulmod(addmod(1, state.beta, modulus), addmod(l,state.gamma, modulus), modulus), modulus); + state.selector_value=basic_marshalling.get_uint256_be(blob, 448); + l = mulmod( 2,state.selector_value, modulus); + state.theta_acc=state.theta; + sum = 0; + prod = basic_marshalling.get_uint256_be(blob, 544); + sum = addmod(sum, prod, modulus); + prod = basic_marshalling.get_uint256_be(blob, 512); + sum = addmod(sum, prod, modulus); + + + l = addmod( l, mulmod( mulmod(state.theta_acc, state.selector_value, modulus), sum, modulus), modulus); + state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); +state.g = mulmod(state.g, mulmod(addmod(1, state.beta, modulus), addmod(l,state.gamma, modulus), modulus), modulus); + + state.selector_value=basic_marshalling.get_uint256_be(blob, 288); + state.shifted_selector_value=basic_marshalling.get_uint256_be(blob, 320); + l= mulmod( 1, state.selector_value, modulus); + state.l_shifted = mulmod( 1, state.shifted_selector_value, modulus); + state.theta_acc=state.theta; + l= addmod( l, mulmod(state.selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 0), modulus), modulus), modulus); + state.l_shifted = addmod( state.l_shifted, mulmod(state.shifted_selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 32), modulus), modulus), modulus); + state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); + l= mulmod( l, state.mask, modulus); + state.l_shifted = mulmod( state.l_shifted, state.shifted_mask, modulus); + state.g = mulmod(state.g, addmod( state.factor, addmod(l, mulmod(state.beta, state.l_shifted, modulus), modulus), modulus), modulus); + state.selector_value=basic_marshalling.get_uint256_be(blob, 288); + state.shifted_selector_value=basic_marshalling.get_uint256_be(blob, 320); + l= mulmod( 2, state.selector_value, modulus); + state.l_shifted = mulmod( 2, state.shifted_selector_value, modulus); + state.theta_acc=state.theta; + l= addmod( l, mulmod(state.selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 0), modulus), modulus), modulus); + state.l_shifted = addmod( state.l_shifted, mulmod(state.shifted_selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 32), modulus), modulus), modulus); + state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); + l= mulmod( l, state.mask, modulus); + state.l_shifted = mulmod( state.l_shifted, state.shifted_mask, modulus); + state.g = mulmod(state.g, addmod( state.factor, addmod(l, mulmod(state.beta, state.l_shifted, modulus), modulus), modulus), modulus); + l= mulmod( 2, state.selector_value, modulus); + state.l_shifted = mulmod( 2, state.shifted_selector_value, modulus); + state.theta_acc=state.theta; + l= addmod( l, mulmod(state.selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 96), modulus), modulus), modulus); + state.l_shifted = addmod( state.l_shifted, mulmod(state.shifted_selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 128), modulus), modulus), modulus); + state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); + l= mulmod( l, state.mask, modulus); + state.l_shifted = mulmod( state.l_shifted, state.shifted_mask, modulus); + state.g = mulmod(state.g, addmod( state.factor, addmod(l, mulmod(state.beta, state.l_shifted, modulus), modulus), modulus), modulus); + l= mulmod( 2, state.selector_value, modulus); + state.l_shifted = mulmod( 2, state.shifted_selector_value, modulus); + state.theta_acc=state.theta; + l= addmod( l, mulmod(state.selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 192), modulus), modulus), modulus); + state.l_shifted = addmod( state.l_shifted, mulmod(state.shifted_selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 224), modulus), modulus), modulus); + state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); + l= mulmod( l, state.mask, modulus); + state.l_shifted = mulmod( state.l_shifted, state.shifted_mask, modulus); + state.g = mulmod(state.g, addmod( state.factor, addmod(l, mulmod(state.beta, state.l_shifted, modulus), modulus), modulus), modulus); + + + } + { + for(uint64 k = 0; k < 7;){ + state.mask = basic_marshalling.get_uint256_be(sorted, k*0x60); + state.shifted_mask = basic_marshalling.get_uint256_be(sorted, k*0x60 + 0x20); + state.h = mulmod( + state.h, + addmod( + addmod( + state.factor, + state.mask, + modulus + ), + mulmod(state.beta, state.shifted_mask , modulus), + modulus + ), + modulus + ); + unchecked{k++;} + } + } + + F[0] = mulmod( + l0, + addmod(1, modulus - state.V_L_value, modulus), + modulus + ); + F[1] = mulmod( + mulmod(state.q_last, state.V_L_value, modulus), + addmod(state.V_L_value, modulus-1, modulus), + modulus + ); + { + F[2] = mulmod( + F[2], + addmod( + mulmod(state.h, state.V_L_shifted_value, modulus), + modulus - mulmod(state.V_L_value, state.g, modulus), + modulus + ), + modulus + ); + } + { + for(uint64 i = 0; i < sorted_columns - 1;){ + state.beta = basic_marshalling.get_uint256_be(sorted, (i+1)*0x60); + state.gamma = modulus - basic_marshalling.get_uint256_be(sorted, (i)*0x60 + 0x40); + F[3] = addmod( + F[3], + mulmod( + mulmod( + transcript.get_field_challenge(tr_state, modulus), //alpha + l0, + modulus + ), + addmod( + state.beta, + state.gamma, + modulus + ), + modulus + ), + modulus + ); + unchecked{i++;} + } + } + tr_state_after = tr_state.current_challenge; + } +} + \ No newline at end of file diff --git a/contracts/modular/circuit6/modular_verifier.sol b/contracts/modular/circuit6/modular_verifier.sol new file mode 100644 index 0000000..b24eb9c --- /dev/null +++ b/contracts/modular/circuit6/modular_verifier.sol @@ -0,0 +1,199 @@ + +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) Generated by zkllvm-transpiler +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity >=0.8.4; + +import "../../cryptography/transcript.sol"; +// Move away unused structures from types.sol +import "../../types.sol"; +import "../../basic_marshalling.sol"; +import "../../interfaces/modular_verifier.sol"; +import "./commitment.sol"; +import "./gate_argument.sol"; +import "./lookup_argument.sol"; +import "./permutation_argument.sol"; +import "hardhat/console.sol"; +import "../../algebra/field.sol"; + +contract modular_verifier_circuit6 is IModularVerifier{ + uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; + bool constant use_lookups = false; + bytes32 constant vk1 = bytes32(0xfea6e42db0467c50e77d424afd0d4a1ab72abd18869974ea22808fb0a672d668); + bytes32 constant vk2 = bytes32(0xf3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7); + bytes32 transcript_state; + address _gate_argument_address; + address _permutation_argument_address; + address _lookup_argument_address; + address _commitment_contract_address; + uint64 constant sorted_columns = 7; + uint64 constant f_parts = 8; // Individually on parts + uint64 constant z_offset = 0xc9; + uint64 constant table_offset = z_offset + 0x80 * 4 + 0xc0; + uint64 constant table_end_offset = table_offset + 608; + uint64 constant quotient_offset = 736; + uint64 constant rows_amount = 8; + uint256 constant omega = 199455130043951077247265858823823987229570523056509026484192158816218200659; + uint256 constant special_selectors_offset = z_offset + 4 * 0x80; + + function initialize( +// address permutation_argument_address, + address lookup_argument_address, + address gate_argument_address, + address commitment_contract_address + ) public{ + console.log("Initialize"); + types.transcript_data memory tr_state; + transcript.init_transcript(tr_state, hex""); + transcript.update_transcript_b32(tr_state, vk1); + transcript.update_transcript_b32(tr_state, vk2); + +// _permutation_argument_address = permutation_argument_address; + _lookup_argument_address = lookup_argument_address; + _gate_argument_address = gate_argument_address; + _commitment_contract_address = commitment_contract_address; + + ICommitmentScheme commitment_scheme = ICommitmentScheme(commitment_contract_address); + tr_state.current_challenge = commitment_scheme.initialize(tr_state.current_challenge); + transcript_state = tr_state.current_challenge; + } + + struct verifier_state{ + uint256 xi; + uint256 Z_at_xi; + uint256 l0; + uint256[f_parts] F; + } + + function verify( + bytes calldata blob + ) public view{ + verifier_state memory state; + uint256 gas = gasleft(); + uint256 xi = basic_marshalling.get_uint256_be(blob, 0xa1); + state.Z_at_xi = addmod(field.pow_small(xi, rows_amount, modulus), modulus-1, modulus); + state.l0 = mulmod( + state.Z_at_xi, + field.inverse_static(mulmod(addmod(xi, modulus - 1, modulus), rows_amount, modulus), modulus), + modulus + ); + + //0. Check proof size + // No direct public input + + //1. Init transcript + types.transcript_data memory tr_state; + tr_state.current_challenge = transcript_state; + // TODO: Just do something with it + + { + //2. Push variable_values commitment to transcript + transcript.update_transcript_b32_by_offset_calldata(tr_state, blob, 0x9); + + //3. Permutation argument + uint256[3] memory permutation_argument = modular_permutation_argument_circuit6.verify( + blob[0xc9:905+736], + transcript.get_field_challenge(tr_state, modulus), + transcript.get_field_challenge(tr_state, modulus), + state.l0 + ); + state.F[0] = permutation_argument[0]; + state.F[1] = permutation_argument[1]; + state.F[2] = permutation_argument[2]; + } + + + { + uint256 lookup_offset = table_offset + quotient_offset + uint256(uint8(blob[z_offset + basic_marshalling.get_length(blob, z_offset - 0x8) *0x20 + 0xf])) * 0x20; + uint256[4] memory lookup_argument; + (lookup_argument, tr_state.current_challenge) = modular_lookup_argument_circuit6.verify( + blob[special_selectors_offset: table_offset + quotient_offset], + blob[lookup_offset:lookup_offset + sorted_columns * 0x20], + basic_marshalling.get_uint256_be(blob, 0x81), + state.l0, + tr_state.current_challenge + ); + state.F[3] = lookup_argument[0]; + state.F[4] = lookup_argument[1]; + state.F[5] = lookup_argument[2]; + state.F[6] = lookup_argument[3]; + } + + + //5. Push permutation batch to transcript + transcript.update_transcript_b32_by_offset_calldata(tr_state, blob, 0x31); + + { + //6. Gate argument + IGateArgument modular_gate_argument = IGateArgument(_gate_argument_address); + state.F[7] = modular_gate_argument.verify(blob[table_offset:table_end_offset], transcript.get_field_challenge(tr_state, modulus)); + } + + // No public input gate + + uint256 F_consolidated; + { + //7. Push quotient to transcript + for( uint8 i = 0; i < f_parts;){ + F_consolidated = addmod(F_consolidated, mulmod(state.F[i],transcript.get_field_challenge(tr_state, modulus), modulus), modulus); + unchecked{i++;} + } + uint256 points_num = basic_marshalling.get_length(blob, 0xa1 + 0x20); + transcript.update_transcript_b32_by_offset_calldata(tr_state, blob, 0x59); + } + + bool b = true; + //8. Commitment scheme verify_eval + { + ICommitmentScheme commitment_scheme = ICommitmentScheme(_commitment_contract_address); + uint256[5] memory commitments; + commitments[0] = uint256(vk2); + for(uint16 i = 1; i < 5;){ + commitments[i] = basic_marshalling.get_uint256_be(blob, 0x9 + (i-1)*(0x28)); + unchecked{i++;} + } + if(!commitment_scheme.verify_eval( + blob[z_offset - 0x8:], commitments, xi, tr_state.current_challenge + )) { + console.log("Error from commitment scheme!"); + b = false; + } + } + + //9. Final check + { + uint256 T_consolidated; + uint256 factor = 1; + for(uint64 i = 0; i < uint64(uint8(blob[z_offset + basic_marshalling.get_length(blob, z_offset - 0x8) *0x20 + 0xf]));){ + T_consolidated = addmod( + T_consolidated, + mulmod(basic_marshalling.get_uint256_be(blob, table_offset + quotient_offset + i *0x20), factor, modulus), + modulus + ); + factor = mulmod(factor, state.Z_at_xi + 1, modulus); + unchecked{i++;} + } + if( F_consolidated != mulmod(T_consolidated, state.Z_at_xi, modulus) ) { + console.log("Error. Table does't satisfy constraint system"); + b = false; + } + if(b) console.log("SUCCESS!"); else console.log("FAILURE!"); + } + + console.log("Gas for verification:", gas-gasleft()); + } +} + \ No newline at end of file diff --git a/contracts/modular/circuit6/params.json b/contracts/modular/circuit6/params.json new file mode 100644 index 0000000..bc75e19 --- /dev/null +++ b/contracts/modular/circuit6/params.json @@ -0,0 +1,63 @@ +{ + "test_name": "circuit6", + "modulus": "28948022309329048855892746252171976963363056481941560715954676764349967630337", + "rows_amount": "8", + "usable_rows_amount": "6", + "omega": "199455130043951077247265858823823987229570523056509026484192158816218200659", + "verification_key": "fea6e42db0467c50e77d424afd0d4a1ab72abd18869974ea22808fb0a672d668 f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7", + "ar_params": [ + "2", + "0", + "3", + "2" + ], + "columns_rotations_node": [ + [ + "-1", + "0" + ], + [ + "0" + ], + [ + "0", + "1" + ], + [ + "0", + "1" + ], + [ + "0", + "1" + ], + [ + "0", + "1" + ], + [ + "0" + ], + [ + "0" + ] + ], + "commitment_params_node": { + "type": "LPC", + "r": "2", + "m": "2", + "lambda": "40", + "max_degree": "7", + "step_list": [ + "1", + "1" + ], + "D_omegas": [ + "7356716530956153652314774863381845254278968224778478050456563329565810467774", + "17166126583027276163107155648953851600645935739886150467584901586847365754678" + ], + "grinding_params": { + "mask": "4294901760" + } + } +} diff --git a/contracts/modular/circuit6/permutation_argument.sol b/contracts/modular/circuit6/permutation_argument.sol new file mode 100644 index 0000000..770bcca --- /dev/null +++ b/contracts/modular/circuit6/permutation_argument.sol @@ -0,0 +1,93 @@ + +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) 2023 Generated by ZKLLVM-transpiler +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity >=0.8.4; + +import "../../cryptography/transcript.sol"; +// Move away unused structures from types.sol +import "../../types.sol"; +import "../../basic_marshalling.sol"; +import "hardhat/console.sol"; + +library modular_permutation_argument_circuit6{ + uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; + uint256 constant permutation_size = 4; + uint256 constant special_selectors_offset = 4 * 0x80; + uint256 constant table_values_offset = 4 * 0x80 + 0xc0; + bytes constant zero_indices = hex"0220024000000040008000c001000120"; + + function uint16_from_two_bytes(bytes1 b1, bytes1 b2) internal pure returns( uint256 result){ + unchecked{ + result = uint8(b1); + result = result << 8; + result += uint8(b2); + } + } + + // Append commitments + function verify( + bytes calldata blob, + uint256 beta, + uint256 gamma, + uint256 l0 + ) internal view returns (uint256[3] memory F){ + uint256 V_P_value = basic_marshalling.get_uint256_be(blob, table_values_offset + 608); + uint256 h = 1; + uint256 g = 1; + + for(uint8 i = 0; i < permutation_size;){ + uint256 tmp = addmod( + gamma, + basic_marshalling.get_uint256_be( + blob, table_values_offset + uint16_from_two_bytes(zero_indices[i<<1], zero_indices[(i<<1)+1]) + ), + modulus + ); + + g = mulmod(g, addmod( + mulmod(beta, basic_marshalling.get_uint256_be(blob, (i *0x40 )), modulus), + tmp, + modulus + ), modulus); + h = mulmod(h, addmod( + mulmod(beta, basic_marshalling.get_uint256_be(blob, permutation_size * 0x40 + (i *0x40 )), modulus), + tmp, + modulus + ), + modulus + ); + unchecked{i++;} + } + + F[0] = mulmod(l0, addmod(1, modulus - V_P_value, modulus), modulus); + F[1] = mulmod( + addmod(addmod(1, modulus - basic_marshalling.get_uint256_be(blob, special_selectors_offset), modulus), modulus - basic_marshalling.get_uint256_be(blob, special_selectors_offset + 0x60), modulus), + addmod( + mulmod(basic_marshalling.get_uint256_be(blob, table_values_offset + 608 + 0x20), h, modulus), + modulus - mulmod(V_P_value, g, modulus), + modulus + ), + modulus + ); + F[2] = mulmod( + mulmod(basic_marshalling.get_uint256_be(blob, permutation_size * 0x80), V_P_value, modulus), + addmod(V_P_value, modulus-1, modulus), + modulus + ); + } +} + \ No newline at end of file diff --git a/contracts/modular/circuit6/proof.bin b/contracts/modular/circuit6/proof.bin new file mode 100644 index 0000000..91c16b3 --- /dev/null +++ b/contracts/modular/circuit6/proof.bin @@ -0,0 +1 @@ +0x040000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce3d3a8f8d81436844b678547d3d20b7b7be7a0c0e8a5a4510adf617deaa9d96b800000000000000533d3a8f8d81436844b678547d3d20b7b7be7a0c0e8a5a4510adf617deaa9d96b80d48b9f9a1f52577da4d5cb94d65e04052d79db412bde4a0173fa42abd6d4a453224cdc3865109579059a67231a396962f47d8588e8f74e50119b3a55513f194026ba1e029c9bb574382cf9e82fd61417bef7b8854687e04db1103e8b32273583ab804d19f952eb5d1c0403af831f0ee85936ec6ace65d2639f8ef73a963b7e10c1a2960d0f0a8b4518e0e188ef2e6476bad69a9a60a76184755138b7fac40b8259818181de9e98d18c14126d8f9b4a812c6c5f13b4bed50bd27e98e4ef297613c82cee414b34b8597c6467acabe7f651a6310503e344e7964a961b97e5d43983d3a8f8d81436844b678547d3d20b7b7be7a0c0e8a5a4510adf617deaa9d96b80d48b9f9a1f52577da4d5cb94d65e04052d79db412bde4a0173fa42abd6d4a453224cdc3865109579059a67231a396962f47d8588e8f74e50119b3a55513f194026ba1e029c9bb574382cf9e82fd61417bef7b8854687e04db1103e8b32273583ab804d19f952eb5d1c0403af831f0ee85936ec6ace65d2639f8ef73a963b7e10c1a2960d0f0a8b4518e0e188ef2e6476bad69a9a60a76184755138b7fac40b8259818181de9e98d18c14126d8f9b4a812c6c5f13b4bed50bd27e98e4ef297613c82cee414b34b8597c6467acabe7f651a6310503e344e7964a961b97e5d4398128f8a24a08cbc388863a4569c9ec3406c6fdaca3f293bfc1a566618eae1f0cf39f39c8ae2555127d6769e056a75829b6e64395d65c12113c66f7ed9679d579e38fb1266f415fbd2618cfb2426d85025c3e9ac6c13d4ce1cb5709b216b4da6b2007e7570ed913c580ae1bf3ee0590b4b81bd7f940d8f2c60e154873b222973ae128f8a24a08cbc388863a4569c9ec3406c6fdaca3f293bfc1a566618eae1f0cf1af710639a33a9ee25a99551d3fd807e70499333913a0f7ce486c5d6cd45a1b6139cfdf5e92d476a4cf4705997aeae2521b3e1b01676adcecd258e71cc0ee63a33f3dafbe9dfc401830b4ce5f743d0666d40c4be264658029cda6bdb60b5b6bd378ae8b217281e98232cf4c6dc2b21498547a11fd3025f8ab5fc7ade97636da707104a0366db0a5e2b94a3074a06162c36ae2f6336ecc272ec39b0a137d7ec5e32ebce59b79f5367725f44df72213aa26c1077fbe1b47f7469657486196a0a412fb0a4b594cb133a84d3b178be4595d031abfaaf17d83f3aa7f7c86c6477497e2eae502060d43a49498079a0df382cddf513d875f2aaf61168ccf327cf7c0ebe23ecae7aba988b5b0b2fecbd26e03229ab5009f82dd02754e068cbc188172ed739f429a1fa53e4b8ea5cf81151d917a9c6df281fe390dd60fc915b3d85c942d223e3dc02b2bc5a30c6200a22bd44ae67e58f9e87d8df6664955257647bf5013b32fe63df8f8cb6479643fe651892aed8e7fb9e3c602068c6703ff5ac8b5743e824d458cd7f86fdba1387bf56c6d2174e370b3a80acf28f008c4d6010f5d0c5922cf2006a71e2076f6cba9c6a8308317434193e9dbc9490be9d824398f2f49b852c0ddd3571b65a3f78c96f8a052a2f5c1059f2586d8b149d986300e1c76cb79b23e3dc02b2bc5a30c6200a22bd44ae67e58f9e87d8df6664955257647bf5013b24d458cd7f86fdba1387bf56c6d2174e370b3a80acf28f008c4d6010f5d0c59211a7a90df9e4041bfe3b2c117c06baa248fe784b0f63de047276e65de4e2a36710f59242b9052e645bd7fc8a1e5da9f6d82d8d2bdd0f4f32481328d517b4b8573c97a45d2d4cf698d2eee0603ef763c8cbd9b3a187efdfca0b1d588e2d0e01ab000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010905a2dc234910cb25288a4e509a3e089386b210ea221604615f096671b71f3c2c0875a35538fda5fe7135583ec55d8325864e8a609ec7a01bb3acef59df164405f19c2874594b966898c597bd9a26fc0217e142ae56165270586e16a4e32f33266891bea2d6e255433d81594234760ff287e64c5705e592f82ecd90cda317ab080a273baac6c762eee7faa52c69bc9370b057a068568d75aab682e63f6e8b3920e453b82544c329d549f97b4b792dde3e21b3e14f38242c28da535ea2a5349f3f8e5fcb76a5060e2663fc6978bea70d23c0854b96869da6158a27e39813f8bf0e5a4ae432b39398bd9bbb5d5b9b9d9355be1d365b0b1bff0fbc0d0376cfb50534971161f868db4f70642adf22d1dca6004082d4b94daf47374e3fd4abc9b7d10d55019997a29f3ae5e2515a19b33db4793343d6e40589291881623b9e1ae89b0a4d613772c70f3af3619b10ced3e1b5adf47c9e842742acb0c76c6d449f92352ea70b254d642cd6e09788ab2cef95983403454652448940e31a5633294b63962f38bdc97cb117234a7d31f2e1db0e7205830993dc1c52626cebf1be649b68ed2afa5fe32da34343b8c1bb9d795a69f1c7537d3e8af4919a7a12e3e5211813732f98028cf848394607c10d7fcf5894dca51d9eacd62e032b298daf613f8b200b10d13e56ed55530f7d067308ab51ccb653cbaef973de127db73be9f5f90aa0532cd677ac44ef685185166d2e0ebbe3f56f67dbf643cd82c6296623313def9fdd3d40cd899ca0f74caf426bb860e96728558596935442ef4b79bfe504f5e9762e0a3b42b7ed0bd78253b2fe1437c1d957884fc5332e87c46b539a55bb5c285f4f24903148650634a8750a0c74e59270b6686a3f3e148dde05ffb150459394c4bd0467f3825b2897ea9a6907cd797aaf2b005c115d6631421e5a2c1f5b7a7809323c51a699a2c4e9323b218b875dd8d04214f677f1431137b0020220676d68892f2407f3ac4b3815071f568933ec90e39f6d25ddfe9bb68e99f7348b5fe99529d9045f542c0dc57211b0fc7807e0f681c7a4e670f46f0dfbe43b67abb36ef7365c1f322b25f0001d50b04878c19b3b58b0c3d2e3d4d3380bf5b3d6781169e3d0463b721497a442ca60bfc2449bf4215979e770d2caa7a9d9d7c06897e3f77d204624cf4d5045c8a10e897852542db668688a3b380fc326b5bb8b1ee9066da61fd3268b0dca419e4f918e50bbec926ca201f89e102416b0441a9a5853466edee94b279dd35f2686be29e379db418c40e9626a668887cb4dbf1c668f8db08f2d57331fc71217e489cddbfa44ac285f85ade124200c134f53be8ce40286aca7a329b912a447df74cac78d83441238f8843f6963382ddb083938fe342e0df7b24509262fc15ec8c1b7e2136560fd7fe39b857e40edff74c7ca0d40a47982a8e344c1400b5c9cf2033eba6cb8e166dc1307cdf7cd937f970f40f3b13f279583c79aa0d4096fad50b08417c4c138d19f344a06b95b879ca1bfe047563333708a300da89c027136629cce359213091211f63d366ea644c104765c8bf911597b69bb1ba9492b4bde9b06814703721ca2442a6c1034ffa1a0731bbe3d9521882cb04ccd18633ba9b89e13ab8a54069b024703a3c00a25662516a7696fd2094458da5f719e7101c3493cb5e6f02c1792371ee9188fdc428273721f3621f79a5a95452c5888eb3cd4caf7cadc86810c5f6d9c5aba55eaa8031f9ff20c9afdc71a99f0b920776800551e32042b1ce6dad9fbdd0bc7d5a36c547c3dbde53b8dad50cc9e09d3b0a6000000000000000a00100102020203110407000000000000002c0202020202020202030303030303020202010202010101010101010101010101010101010103030303030303000000000000000200000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a83000000000000000201010000000000000dc02042ad6d44b85d8c2e6cf1da18bbb0083196e509bf2b27e7fb20497e0a4cbfab1fbd5292bb47a273d1930e25e7444ff7f0afb3f24a21d1339e0ce76ef5b34056214d63225799d3bce820b9427baa7028b3654738a93dd550b5470d9c337fbe551eb29cdda8662c4317df46bd84558fd76ee151c3600f23cae3e62350cc8041ac2682efabb60122b088a39e4c6a5430cb3c6d32233b9b385c5808e233017eb7a7197d105449fedd4f775c61b395abcf34e5d966d8cdb1c0bf41244eb9fe81485a008eae5a8e05ad72ab32177e13a4f3f7c74e2fbc0e212e7aeca4d838077996403f7151a571fa528d54cde881ec5b0c085af8693ffb2bcaa0ac8858b4f88669c12042ad6d44b85d8c2e6cf1da18bbb0083196e509bf2b27e7fb20497e0a4cbfab1fbd5292bb47a273d1930e25e7444ff7f0afb3f24a21d1339e0ce76ef5b34056214d63225799d3bce820b9427baa7028b3654738a93dd550b5470d9c337fbe551eb29cdda8662c4317df46bd84558fd76ee151c3600f23cae3e62350cc8041ac2682efabb60122b088a39e4c6a5430cb3c6d32233b9b385c5808e233017eb7a7197d105449fedd4f775c61b395abcf34e5d966d8cdb1c0bf41244eb9fe81485a008eae5a8e05ad72ab32177e13a4f3f7c74e2fbc0e212e7aeca4d838077996403f7151a571fa528d54cde881ec5b0c085af8693ffb2bcaa0ac8858b4f88669c11dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb3ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba2e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b3333a6c18bf778e668d61325e69e25d3175cee5aaec8d1f3ab9c818b7019ff2af38225810aa0ced9279f11d7bb6bd5fdb922d34fcb89ee3ac44c8fa2bd5f655bb1f13ecf097788ed6fe452dff23942fdd3aebe7d16e25130c9d72d7314d671511286dc7c63ba70a6f3ad2c69ff9b9934f66601e89f4eb87d44b977e5f7d9dc8451c70686c6ccf34410eeff581bdaac669356723247562a74c0d699d751c4452860d81d8e6f70b78783550c923d3f6e1e2e57f77b631c25142f146fe065f2b794c225eb35e5e6699b01693ff2025239088d5968f6bb9195fd4230a1040425b06e116757cbde9eb9f5f59c6bb6da6ff3d7d9e8cd24ddc94847971d4facf87ee4a1c2336bff60430d8f218dc08b92f81d10147de057f17abe549424dcb46d17a65b20672a3fef6b96f4283b5bdf1bf29328392c5f009dc8244c23714beeeeb608f54225eb35e5e6699b01693ff2025239088d5968f6bb9195fd4230a1040425b06e116757cbde9eb9f5f59c6bb6da6ff3d7d9e8cd24ddc94847971d4facf87ee4a1c38662d8c8a7f6e98923bce98a078383cb5374959d82050e73967420cfd5a9f1d0efc8eaf834a91e880738cea5c93016e019afc2a8baedc193c9aa4078bc0d01128eaaf5c682dca9e3e9bcb995b249dd1d5422e441f47e5c763df16589d0162082764446c7e659e68d03d15bd4e3273c62b646b709304fa3ac8b33ada13456715000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011974fef18f827df4c9a7dcefff81e6177b37d3e50f1ecfdd5a0953988d54f975085783be7ebed980189aed7aee51d3b6adc701e3997302de59651ce58b77c6151a0b853f36085a6ff261fe0b8c2a739a18ebd971369065ddc81cbf0b30feb51229f4180f8f5f7e5c9f46d588ee89b96b4fced4fb1bf04778a262d5f5565a440c233afdcd8f68eb202166f04de910cd128aa6590f182834840cb5a7c761a76a4e068abe14f1f9255f7888f758cbc414db60485754729fa4619245806ab4d11d5d20305f557d8f10a086ea890f5a9d16e0fd2663b3240188faadfc2d7d237f5d4d245ba5d16286c91933052e378b6e7cca1bb13b6707826c7f7619a6e6ba048765293284a0f301d939b3c716450c6ba98c8078047862e0d8ba908f37054eb9efd902b09b97f16acbe813abb424aac62ec266a83be2151515a524160a22b34fa8ea1c97e26ed71d32dbca1015f9fa937cf089ba8a72bdfad2054966ee9fca931e8437d29b1fc80b8a6f0be0b121d4e567067fc1cc390159b4672d9acc8fee2d98db39adba27bf7881f73e7bd9e8fd10f9f71ee832f9faf805a3d5db5dce1d1c05dd0d597f5815b9e5f5cadc4fdf6fcbb82b7ba679ad0375cb0571b80f28d3721ba3327eacbd699ad352573b1699da44c58a51e5a76da9461e7ac93dfdea68ca470c2e300bd77faf5592d4c5c8f324a444d3eaea351415252905c2cee1a3a74e283f204a5563c30de1fadabb7a566a4d29a73dae424ba39d93abceac855ca8a65c270f45b8d5d243b4e156b61e3f10efa72f47956bf613f4888f7cf8e4a05016337916b093399ab6e7416c0ec8a1aa86e15897c2fe208fbd7cf5c7ea5e73ac411817071e81482627e2c339451fde11de52a5b9a0f0abb28f0f2451afc3ae0618ef3738378f6600033838ea5633366b3226fa95ca37b7f96b30c3b6149da809a4c9b20278d84b9f71b6813f877d7db185d9882f772349d5131fc09583a95ed049ef78137cbd08e3f1c53184007911d97b95dd83bbf26a99a1afd268d4fa3dd51d6a1f1a2fafc29c99d49457da0f8e8cd063079748ac8aac1c033a061d783f36819c0f070a3f7862bb2b32f310a79dbe5282ef68a7541d8058f98545b1108d7902006f17cd9aa792be1cf2a1380c64f430b0ea67849db2b265ed3b281eff6ff4589f4d125802917890f670cf20276ecc13873374fea641103f2b9da7f237d7c0e4a11003d35e6357b85ad8183e9efca35fc088ea296e797a7aa317bef81665ef20795135affd2a1d9c056155dad9cf5438f637ed367d3d55b50668413d13f7a1d99f713934591c2e644d6d8472e4ccc4086420ee67828c6a94948d003b16e86d40b34432c229e35d106a8d3ae3ee8654d9819f49a1141a559d394a46003a2661ca27b833abb3543f325fb9e48c389478775902b753064c6dc42ffbf9347c2a246dad7d1d5acd4be3d7bb6d3ac7bf6efc7947e71a732e3d325dfb821148622453032993195eafb658fb4245b49bf6313ca83efeafb1af6512e6af66f03c0099ab623bb20300153a7252108404de011b042b08f6a7c5bc178448550669ebf9d15cd7984902a03c5b25b83b83e088806a1b964ef895169f950cf713346b0e8d9248de03581e6a80d12034e89b484c3c0273e8bc03e5d4e00f1940e1107a14883099dc88de2f882b38777a6ba1fcbc736f6c4c401eebf56f1cd75cddf58ae90e87095dfeb611ae699331955bdabc2571830f71f2e5a747d6fcc2fe90821d4219ff1b11ef9c26a34d30ecb48a9acf540a152c247adf4aff4cb752cddac1960dc7f7991944d81778261d92ed186abb9e7363ec63b305bc3fb622211056742a4e2017d20e1a1a39b37aec41781e78247ee23ddd2abb3bc880d43d9d48503e4bf72cc4b11105ca1991d3689bfbfccd32cd83db7367d20ebdb5ff3c8d1e2d84c535334e3a371d852a80e6dea74b39fb9612b92810c93812bae8e00de5554f3d0f297b5e9929b8e425507b32ed33c41d781bde75f29c74002ccea0b04436f7a1583ce378a175b103031ce534c1811d9dd7d9aca5acbf64069577b308d4660b764c4f67bea5bea0210c4ff3f3c4fddfb07ccaa43ad5a9b1a6bb1213f03e148ca662dd4d82080f8bf5173c2eb73cf8df3fc3e539b8ee2b5b33fe197d06697ae47f5b0ec2746a31dd5c34f3eb5c037fdbfb9239073e7d5f4c09eaa657f08f6e11faccae34e088b33e00165f64aa2c07dd5905a3103418cd0fdf92bacd7649250961260dc24a98f75c49108ed26bfd32aae1dec64c409f2e4f7bca0d4329afb8b868ab60985c9a2f6f702f712d9402cd551e2139b3bf60d1b084583955d2599440b2edcc989065d0909112ca1c1bf1fd566959df7d431be78d6acffbb6d4654ea0efbfb5c8e202ed2d2f2d35e3e40e02a996a62082bce4187295524ae227a3fe582bd977680afd12d2d21df28c8bb9f2b00ec15d724f8b85c315eda3f929f13c2b93255fbb7d0ea1e1ea220d7374460d4ff13ea28db0747a3cea34a29fd21810cd8873cd756ff15e1e1715bcbebaa1bd7049c6d33b8db99ccf6d5fa6abd9a392e7a888844797492969902a4341455e428fb6392cc47246633092c29fed2265ba117310a8e955b6d69671108ed26bfd32aae1dec64c409f2e4f7bca0d4329afb8b868ab60985c9a2f6f702f712d9402cd551e2139b3bf60d1b084583955d2599440b2edcc989065d0909112ca1c1bf1fd566959df7d431be78d6acffbb6d4654ea0efbfb5c8e202ed2d2f2d35e3e40e02a996a62082bce4187295524ae227a3fe582bd977680afd12d2d21df28c8bb9f2b00ec15d724f8b85c315eda3f929f13c2b93255fbb7d0ea1e1ea220d7374460d4ff13ea28db0747a3cea34a29fd21810cd8873cd756ff15e1e1715bcbebaa1bd7049c6d33b8db99ccf6d5fa6abd9a392e7a888844797492969902a4341455e428fb6392cc47246633092c29fed2265ba117310a8e955b6d6967113923ea18517c0e7c6fac4d117b9917c9f0728c9ec39dbb77de85b5c17f2c7f4059566e6dec5172aa9a3d8a9347fd6550f6f1691a37f82eac53d94a6e7613a48387802b35ef46d465536c7a5125bfe9b85eeefae2986b2a5c1676fce05f4e00031db538e220d9050deb695a20721092fd516be72dcbf54583fa16ac019dccee51d7fc490211442a89bda54e307c18b2d6a33e4d61c37a7bc14225d70a1b8807923096f3065f532e86a57ac40df2077670a0043ede4ae3acb82a22513f9e11ce7208638785079210403ebcf053fb691039dc5feb64d5e55135b61c9172354fdb210a15e6790d8e4b82fe087135089323ffd067829bc177774d67da45e03ba2635140f7c93a4f215a82cf6beb8864c0e021c398fe6116c383d633ad8f237112c89209fd7b79a22778c407ba6c5dcfb5a08d6ca01be1025bc844dde9f67b13c165627014a61a3142c78ae69e53a0b31012aebadfa90dc35eb5536f4994919ec190c22b7fca4a22d89f65ab4f8907d14f22b785ecca330a9a198d313d069cec501dd33f5beab1bf3d1d1e3ce7389d5ea6fe81f97197ffcd963d9f30a96afe218580f088f458aff2d588477a591b4c45f207b3dc0c3f7890e21d8944e3185fec1f6d527014a61a3142c78ae69e53a0b31012aebadfa90dc35eb5536f4994919ec190c22b7fca4a22d89f65ab4f8907d14f22b785ecca330a9a198d313d069cec501dd3a6062f8bed79a7290db04404bed85d1455cedb45b7edbdbef148a4f3c86af6437373bc09f874b246bdd243aa3a7ee522cd025a946a3141b6bc285444d615ca42c79e53ec9984e496984223ced8d8384645fa1f12c9aa5392af1497abcc6f05b021f2fcfbe0d85665fbff7fc15e24e6be53d4d744bb712d51515dbdea77c9a16000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010de687ecd9819abfdec2fc8e4d16f24ff819bf0bc09f73327c05aa144882746918396787c4be3140b7700df76687548aa43dac930bdd8a5b3be73fe76bbf72d11c5783ef19ff1b3b85d56685f515efbf7ec43a10063adb174e2a816dc29c200c32d713e6aa05c64d8b922abdee7091c844423628fdd8b9425f4a50ea57a409752a10ab1cb7ba28055aeb5ea16be416c94d94791d5be7c49d84494968990d976602b2bfd231b41cd357caa0dc63b9e13cf2adfb8a7e062b316840e66ee64bf0f314995e0f67000690b09fd41a3a1235a405eabf8d8c6e71937a10103c3bcf58d000a69b11a5b8c63f90f13ea46220c773e3f900520b0429287bf393ce9b991c73321ea68a7e92318a8c005fab5c56d1dfb8fd5577762b094d102f13258d16e5da0eda98836c84203beb7093f04222052e06cddbd626dfabbce078111e8a8bb4d73b1134525d67601151e34ac7fbe0664636fcc0511b72c9e881d5d8c578c8fd752320835a739a174b3985aac714e98e144d42b0f1b47dd737d9f4e9219a445be7337e0812b0510826d543731c19ceea8d6865e29217e167b4fda8b4943da11fa801196b0a0a01cde7c0f4f330fa42e9ab10ab7ee65860f5e0563e4f126db920e7008e8b33ef700ded8ce68b14bf7cddcf9fa9f1cbc01ae51e6693b389c0dd07c13f48066252ba32f9707186fe8ccd1c3bdb6704de3318b519729614b72070b773042518fe847b37f59295d54ce23e45f26a5a000197dafd0b0431a14924acddb30c98e0a94c1ffca5a43ce4c1573e93c31f5729015ffd5475f0c694cd8e7d44552412cd49e5753a4295b98f3467eba0fbc192303c05762437b39442c5385f680519c992fd06a2d1cedd535bedc9643d249c16936fe3e95a28b2547a8ce7e8d0ce1399c9508feb42a376979828165fea6eb36d2fcec8c084aeab4cec76c592950a0d7bb3e863366f1b45e1b56aa32029ed05f632a4e3e52fc71db465cd2b592039318d26150dcf428fa98c11420612ab43003b95a88bbc92719e5affbe37fc9f910c98194e59dc9febbb9308aff698840f877b04d3b87912d594e2eb480c2e8cc53db347f95cdfada47b5452ecf5ef66bd4c5f87289de654b27881cf1dad5d75bf35feca1c82e6f741f47a6a2b24908180101d4303310d17e8a70f049148acc3452c0740538dce9ecd3870b884b1f46a4b0e36bd563d232988c778f525df1bc29331dcb1183b522a61b0eb53faa9596d02572a681f4d7a6e93f5322194f1bfa27337f028c8183e72eacb516961ec55805b5fcf87815ca90d177c0423b7fdbb25a23cb3895f6359ae757ac0a9c5ee1701933f2cbe5657f56ea251c56c5f8f0eb04832d0f88b5118ca1de4f7d3f7e481c0b88e37bafdcec590f8772e14ea4d4d4a152c274c832cd0ac793c0fbeccf17a2370d5380f10d2b2f8b3e5d1f905af035da92d2df8e51731041f68df766ca01cedfb596a4919682b7d1fdf86a41ebe9a152424fb9bf7e1e23f914fe074a60be4aad6cd9f485a61f425cfe5880a770e7b87fc138d3718726c9124ab777e48401f97edc47c8b0b7d6df06ed24e66639954b0d7348c0f1974a5d7f5ae9cdcbfc5ada0a88422a1c9fe59eca6d4af4e7e2d086036062f2c0b42e0ab1c3c7ca1f390b47654057a9abf42edccd80db73041bc287383172ee5553d226974d5510977d1835f9b10b4ebc7f543ca415b23a3ec5d1ae2f2305f629135be8fde599f04e2feae1ded0ef9f2b2865bc93bfb9b21e188ee872024b0e3809476913c149076f2d7fad7ff6ca5d01ec74624bbce307511cd0fe3c20f5df003dcce58c198390a9f825865bb87a9183baa4743ca9aa4726f17dfc8c5315d6297d151d572c9e1d9a803f638499e1dba4d0ef33e9d357d59c459c4a7a32211741776b27c8cf7da9481a5765a7e70c8ad232b699ae754dc7f8f46094401292c866815e32facbaf21218d6a67809b9086d5124bea12c61c80d097e008c6536a85662599ea854649f90e6430fbabc51ee62166753a0b6be9d05701ef1e6672aa91d0a2109b027bd7092bc99afcff53acef62bc660e4120a120aa3487893f01a00bf3b0447c024993c6c8977e12a404be63473b512b0d6adaaa8ac1ea59a141ce0b16516c9217f1df089fe53b105752689bba0e95ed2c3b201433b44a3438c203a187cf628a2e055d262fbf60400f2a067d24a45549294580ad1bbb53f33b9381e4b7f201163411ffcc6d6d4a568b4318ecd3def8122cb9fad20bfb1b932b1039438a7b08638840d185421f618150dc0370e0ff389061f5fa0a8c68a2d035b3c6bc7584f79c77bf2e7abde09e7eaf2620f8aec15c3f2fc398c882675d2fca611e51b46729f1a944179a4a9ce786944c113464fc1ad1e9cde234be0b2e110c72e1ae4b98d60e56bbe865b56318796bb613352ac479fda7ebb09e50c4d1eef3a197988603d1b84e547603751085a0e57a319c692bf149ff4bd834a767e6553e22686779fc2e47b1ab89fc8aef7a5f1a87f2cd2694a385926dba9e676819aac1f3f5fa9e13189987a64e1149529c247b60d3a47e1b21a26ac1a63436377faa36900a0561ece7667859b1eeb6ad63db84a150c511a5732d26f7ec9ed8988055c98039438a7b08638840d185421f618150dc0370e0ff389061f5fa0a8c68a2d035b3c6bc7584f79c77bf2e7abde09e7eaf2620f8aec15c3f2fc398c882675d2fca611e51b46729f1a944179a4a9ce786944c113464fc1ad1e9cde234be0b2e110c72e1ae4b98d60e56bbe865b56318796bb613352ac479fda7ebb09e50c4d1eef3a197988603d1b84e547603751085a0e57a319c692bf149ff4bd834a767e6553e22686779fc2e47b1ab89fc8aef7a5f1a87f2cd2694a385926dba9e676819aac1f3f5fa9e13189987a64e1149529c247b60d3a47e1b21a26ac1a63436377faa36900a0561ece7667859b1eeb6ad63db84a150c511a5732d26f7ec9ed8988055c9836bc066bad4f192cbdf19e4a06169f22f64d1f342a06c9e1b7b20cb69f53d57911d68caa2862c78883eaee78094d9fb69b4c1aed67ae908a1a76c75ec48901252ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec08a16f39db930aa46c04d98a0ed3505cce76287f52f1f5bd01502952c6adb8cf110e76f7b02ece9c3982ecb3f70fe1da83530d64b42225be0ca1b006d5dbe60e0649f14fe91b305e9d3d81fd359391ee448e6af68430ee284c7dbeee81bd26c91a87ef68d7e5bb567fac868b158eee0225989799cc4336bf346c10bf5b624af23a613834ed46c0f20fbb2de129cd6a2a0a80d21a19174d504d9a97fc5a8b6e5909f05442c5b704f241fd71377c641d2be4ff2d19d1a65d63a743118b73a8f2233f881a04691b3abed6a4ee7d6e267383a04b7313dff32acaa8364ed8f23649331b7eb1b03b2495bedad51ec49fb3026e615d58d5d5589a3e786dc083b44e142e1a73ff6493aa3bea38ffa5a6af8a277cb45835fea8173b10f471d87a22cbbf6a36ba16c4e10a0c9299f685933c30e7beb32a3a39f602d028ee716a92ea0d9df23f881a04691b3abed6a4ee7d6e267383a04b7313dff32acaa8364ed8f23649331b7eb1b03b2495bedad51ec49fb3026e615d58d5d5589a3e786dc083b44e142e0f15e09123ba90bd78c74047a27156ac0061fb892a103f1e8d25de4eec125a6710a053cb8a05daa1354e682c4d61caaa6b12666947d98caeb03d4be4a8b7c84115f0bd67710a6ed9d6e76ea28f7a6a78f1a85c8fec8c86baa4f4f46de5c233553ff5b167d67afb9647e7697f0b2ce1af6882d79efb74d3dccb9966325a7c9f73000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013c2f3ef48060cd9b37d7b5bbba64287e1eae4cb185b44030e610d4eb1cdbafd92848f0977cd92b524e16b9d3cce0d8f90aa09999462dfaef6bb3b5ad0fb97d2c22b9156cb1fad51dbcb4544c9208bed5e2ffc10a5b9d1a212c6bf7ea6380cfe01e692205aed27661f9fe9270c933c27a485df879b8560d3060004c5d1c169e6e2a15f5be49114273db407dfde1e768efcd646e5bf08c0b8e4a03976c7b1dfaef1e3920348555cca0a9e75da2e236f6dd8c935eaf09aae44d7a1471aa06270b770271b73e394b19d4f60c43d63f6b2d42e8548cd54f489b253a8843401e068876262bc152ce56967bc0a27961c9fba4a53cd393ca9300913ced81603c15985b3a2494054dc630557433a142d4c50aa072b79b66e43c87a0fea057040a79b4a9f0360fad028787c24c6d1d4d5cc0569fbd7c5c53dba5a5cf8c5fd2759a2b2977423512476de112728e2aba924c43180da980d7ac0671b1248c9972196eefaaf6172e7aefbf1674b7e72cc3264354de4c408a00c6ff50726009954e83aeffc9996226e17afcd10cd30d34d6db3410d34f58df99451205226886ee7d4ae7d4e970c0138df703471a6b26286edbb48460b3ffed1fac80f786589ad29532f7416757d013a85ffd03460d48e3d73f39ccc8ad63222435657e93a046bc66eeaa2c34788a38c5089e7ed7cfa1f3226ece1a8d1c34f66f3441c3943f2e29cc27e749c49d8a0532b09d6bb5b6bf5b75d97e7105e9af2be206cc7cefce29c87ba73cfaed5b692b5345902e2297cd7e3a5b85c5037f99dfd560eb75a1df18de04e6cecccf215037dc81110706fc24fa19906c6172fe2977bf2896d3df6f24584e7c86722e38cf119ecc5cee4309dc9c517bc9c43f2418ea6edf79a9d5a9127f21c9d5c7a8dc2034fe1d956f6b36e731d679456530ac9d065d5a6831b7c591c6d7b432b46bed6222583023d93572299996f75108b6ce57dc9ce40fb5a69d8bd42a75dcd741a44d1fbf10535b6dc5c52bc562461aaedc33f4128a22244232062e507a340f2335952e5d980b7092affa1c1032c19172d236ba2baf1e75c6bc236347e74ef00f367138f2c70c458b02c873069c30b5143ef80c549a163181e9f82b027897626c026b1b57d65d95a9782f965f11933ead0f5988422c1087734faecb46214bc98c64cb0451532b88220fff4a5bbbf4b81c7d0afca54da8cb188c8312036ac29f15c70e04b5336dd7bbe56123095e006665f924b384348838d35d38a609a0bdbc681ead29c727289afc2fe36fb56ccbb73acb1a7de3ddad0c80de34b8b81d8eb2ea21ff0fb9c62d3c503d9c4e73f18441906c5933b93870bdfd65356b5ad095f8eae99433b1531f1176d512232b0ab12eecb3a732c305d2b46f6764cda4b35201f8ed3d2e1277636728e294be954cf1a2651fb4945c495c2e8d8dababfb387241e4fb921b47e7b15c5fdf5b5d3239548c2e474a931d0e1c0403ded70a3d8c21b0e439c23da6d5bb023f2c06d3dcfe6399ec175704912526666059205f0c35c9fc7c998f34734f20e1a4f3921115b643eda3905cc5109e47c24184ab78e52de79cf3b70811bda469713909755a37047a0c8472cd38aec26c439f417f11cb8b5e06e67a3b331aa57dacdb8ae2e7888fe5b0686fb234d05933ceace36407a3029b7dafe08f36ced51490b7b6092a26eeb2607cc2b13b699dfdc8664565ae729c2fa7b192652dc7acb217e934b36e67ca57b56c9782b800b134ee32f74345703a9c93197e2000dd0d52709aaffd1d494580e3e821744575735bc7cfb0c81a9d7d3b3cbeb4e8321b7527c292831517586c756e14b8c5a925db08935711dd9b0a294e5d5aa95a3983d4558a4ad9619c952a0ece3d5ec3b658649c86c9d5e0e8a95c76b15e0d0610a40d8ef63d0a3bdb75fad0daff85a0d07dae4e684123cf26b4e56b0f7a17ab1798744b205df21730e826e022662be996dcab261051d35ec5362c5e4c6e2ebb1c3fa6ae92d515a3869ce90a080f121f98c4fab2221c078d34814d96a4b353a6376ef1735c87f41c72a4726bfeb0326a9514cca997617cebce099589d389618e2bb7279f09f4c44904f39db8c4dd65d152997cdced164604d7fd15b488b8cf4026f5de54896c62fb8c268a2fa2ac8236920e37f7dc28cd51b1bc38220d53a8853ccfcfa6091347f112d2e69a1e11a8a29e7bcba3de133be17f7b36706ee9d1201829e710fd757296fb841fe5198b5c7384c716cfbc0bc13dade864a3e41af10d279735afacb5e7f26800dc57871f774f68effc7658ab9bb52d09521ba80311471868ca50534a180d97ff23a878e088b0b9569c85b0a15d666c23ded157fceeba05f40c6e5f8d87bc08044db5a39d548ca5dc235b9f731f3715a707c3480f56603a0bf391a0727843f7fbb24a5c62ab737c6a75a069d9d9e483862929b7f0a9a11dc43e27ddc3a6ac2815848c3212a6bf3d4cb0ca1d3f9c136c4326d0684cafe0223bc1d8223c5953d7ea7b73cded5940e4f9e831ec0d5d082cea0a1c97b3502114d536c754d2415cc86b96bcfa5d41bbedf241fa7fa41a29eaf56038097f6f5e2b2ac938ab2dbea33794694305a2be443454570189a8def1ae37d0b4f68090a3279735afacb5e7f26800dc57871f774f68effc7658ab9bb52d09521ba80311471868ca50534a180d97ff23a878e088b0b9569c85b0a15d666c23ded157fceeba05f40c6e5f8d87bc08044db5a39d548ca5dc235b9f731f3715a707c3480f56603a0bf391a0727843f7fbb24a5c62ab737c6a75a069d9d9e483862929b7f0a9a11dc43e27ddc3a6ac2815848c3212a6bf3d4cb0ca1d3f9c136c4326d0684cafe0223bc1d8223c5953d7ea7b73cded5940e4f9e831ec0d5d082cea0a1c97b3502114d536c754d2415cc86b96bcfa5d41bbedf241fa7fa41a29eaf56038097f6f5e2b2ac938ab2dbea33794694305a2be443454570189a8def1ae37d0b4f68090a30cf4744978dfa55935648e4fcab96ebd33e91eef20a37884bc15fd66c82c3f0325d748e65cffce8e1cf09924474a2e4fe7a8905061b1795b5a6792092ffcf4f90c8e75409cfea4dee8d5ef0552162e0956ef2a6901d74c5dc30d8531f7fd750d3d2ad1c5a84311902048eec5362fc54d0d1d9ccb0b08409046fae480f0b3a5db3e931241cf5826b9779137b9a1a7819616c5463d2814eb14e110093721fa3bd811162f1cc2ad33ce766db368fe82685b3cd50576cfe6c01b51d9ccf364774dfb2319800d08273fcb903989c20b1a420c57ed98a45ccb7649bd84f6d2dc439427003070990ee80eb0616833c41480cedc8e4db8d866d995e417fa6bc9494660210adc3ab488576f5ea193f81430469ab5924f16f2f012790662820e92257cd3f2310bd05d83c073b7cd8c67410195c2d026b7b7e4aa7f5dd54b8d8e8058575ec320e7af8f0b5c9e9d3821aa01aeb08ce487ff39124352b14e54cc19ad587511aa096ba6b275a55ef9fbcbb3456acc7ae6b0bfdc12b9a65c94130f8ff3c75c9d3b267d1675ea21b5c7e1c582aae3306339976e4fa3e6d234391a09ae543fd64bf21cfde553fabd1fe1c2c6781682860c634fc704dca5e0384b90f7eb4fdf4f652f20e7af8f0b5c9e9d3821aa01aeb08ce487ff39124352b14e54cc19ad587511aa096ba6b275a55ef9fbcbb3456acc7ae6b0bfdc12b9a65c94130f8ff3c75c9d3b0f2e2b062af0fa63517d9f91ae2cf69e906051e662605ef0cc3a3149d2f17c1a0b2d98f8b06c6bff74bdfce1c07a9a1ce9c1225316d8fab5cbbf6f829aa3ae1f13841cd92f5247b98798c966510dfd854452b26a449fbe42f3ab274e1ca4a3253de2ce184907e496af231c60ab82308ab69d902855a87be5fea815327f17d27d000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012a3c801690e1ef1370ac79dddf5be4c81c17d7cd58f484360a7d5a3066cdb0391462a4333cd7331a0f324532cf2585912b2f8051899be206dabfbd96b0ba222d0183ffa40e839d4a8e7340656f7ee8d6318f0d1b5333ac7724656731babd337e3952eb496e0874d8993bc7a82461d318b7496b1f9a4d58e7833514b6cc9cdd63216f575d5e44db34664b280c2c5fdbb788279d086647e586edc66d5d9e60a1472eba4782de50f8d0a2f7d5c6041aa019fb685a44b0d20368b6a6ef8693466d2b26c535991bcb96c2809901b5e213e46f63437ad6760778cbb365e7abd4b168541cc1009b083d375a6a0b4515330996b67e2bbb56a67e16312146a8aedc887c973503d2eac4c9262bb11389fbd34f5282e6fdb44adbd0a44061b3e70d857eb1e21ca122a81b64df2ffa12893520f9193531735455d1e7db18087a84148df8e510381ad19ae5772e4251103cf3c89fb8df2d3a46e8105b6e51589829100edf5bd010ae80f80c522bf1db33ff484450a1b6518670e20dba3fdaf6ed3f44edf5eacb234334ceeff5046263c6d64f7476752fec8a3f3904b52bfe6180f69e2c5bc15308af8fcb17c40d73d677e59eaaab33afb106456ee05102cf30a7731251bb51480ef5aff1ba73a217020f1007d0a88672086b832dd4d8098bd81ee3b63f1bf4f02660e4c3a2dcdb0bfb7c96b049de44b5e4c792266e8095d553416f2e7263511b3b1349e365e2dc69dce0ecb400a4eb7bfd2cae631921d693fd449f1fd8aaf22b21e11abf77aa3bedc3943007c1566945b607f68291df3a4d25e7cbdde9b4ebc01cd3199a5a4437c135e2fa367a35bdecfe909f9545f7961a0d0d73c2c3e36dcd059df823ef28d6f0fb8c7aa9e4e2b4c48c766b1cc3ac064beed58d3423f3e6e4102c47e4c3b497bf492bc151f0b7b29c79fb3605d5882dbf402be0219f61c8e00340dacd80068c7cbe7f3593f922d3f88a27e795e01f8f0dadfe8d946e8454401caec02d6ac7b676fc89a84312e4a6aef773a8825457590f596bdfefb7fc15401d133982d91237d31fee88c532ed1b7ad715dd60fbed0396d6047ff2c9bab83439d88d0e9311ed6db95ed72d47b665bc31a5f49ff7fc528f8ec0b1a2667f4e4f09a16d6914568c53e2a3c7b73a29e3fb6a0d694f068b554257f9a686477f125c31fb4260d1fcc5d46331d77890376b1d245c0f964d48293c348c3c261a01d994139e77042c662f7a9ad2edc472ab641f869ddd34f4eac6b1deb14c0039c4770e135e86a03f841795a6f68326aa98a8772994f61a537a82470fece00eb2619c811a6494e7a925dfcba2b3e52bcc144ebda3d643e5f88a0c29831c0a537ca96bd02b635d529aba7b09a4bbc91b3235340fe316b5b7f68f09d0487ca6647e0bb5f215cd60183ddb2c97f25c0dc96ec55c658bf038d8c5201eac6b3becab3b03ccef09897ce0fa67970be9d11858a826fa5ae3c2f7e32150912e5e960d664a5dae512b82adfc7a9d65f2075c431b8f8b77e9e8451a3e307d4e41f18d4753e86b8e600a8aeba5c4ac87f59a538f34a7417ac867101e34c15032e5343ad4b7e34d8bd11a8a9d32f5a4ac68098408bbf3e911c2f53bf6f56c55f1dc9e397a37604d45f51b2e61fac4c8f171ac536132e4184209104ca39b1ddbe4caf9f99b350a74d2733ba873b9c6f787fa6fa7d24dc1506300dd9f8f88dd5834e54b883bca1bc6e9483a7d3961f8ef1c7daa4275206217b06eeb76b88ceb2c47b88ce6542a09b650c0148eb637d330aad6358a6f5e9650ae74636a47dd8dd1df2883833f8f8a670fda38e291af269cf6210e8a8f5029bd4ab6565024b0a28112d7ea8c8ceb8915581d39d6b52d2afa233295337185e42d8ca5ceaf6390182cb9f0f47c9d28abb985c6262cd8c9a66375f05196ce534fa5e1c50a59de9d5d7b961d347a3838abf7f01b1499d7720dc598a0c985e53d6cd8b77d2c8e1e5ad1936eb285d05f09443e91b22ff8ca6c1867062d41ff0e9bb5548f39235f7a7a9b306da01360b83a238d465a0eb310ce43ba474ef3a44f66a731c6269a1543f8f52afe2e64a2917ffccede5f2d7e2fd9908251c25957f096ef8e4b5086d2318658026e490e98217c5f9ca2391a4946f238763db848ca7692aa3fcbff1dda66b42808bce2b490631422c351822200939028c1f38ca6494b49d05602f1f2153654a9e7f36c93d4fe9d0184ef080ef02ffed1b603840f248b4605e32e21bc441a2dd14f7b559214e9b7945a45fa000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae0591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f62000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae0591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f622ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec1aebe5602a8f012b625ab7294163b3f936535be6d1710961e568ba8e309576381b3b6514a5e576d3bf2166ce9c7de55051cce16420aa35ea7603aa0f35bf89c4244521909e9b5acaa5db43f72f0a2bded449be25c8721acd65d44008e053c49932cc9fbaa6d221ba27e3b44f177f938d7cf171c02263a9cf8842e050c65a2734116c00ea9c1bc19f9ce433c485676e245b517df10c7d8af760bb4090478102c130829fcdd5cb1e6f7a29844c0e178b8700403eb47f15271b1118dea6527d1a212c5d4b3e60675d3250e23f8668dfd240a7423c157d20d058309cdf5d913961fb3a8199c7a3ef2b4cc57459924fd31ff0909d51ace7c3bf6a7b2ec6871d20ad6d0907c64532b347c431682ff5de12a6dabb7611c175de7b7450d0d6b0e16f72d53f8accd0a2fe98f110745ccc315197fed62328601bd6def78157fd64826d63ca36442070166a53eb94968cc7743d12a67451f94c00acfb90c6bb2aa2918a1eab2d553e5a63875d475ec00d3ca900a224fca973c33d072ac892e487e278d715530907c64532b347c431682ff5de12a6dabb7611c175de7b7450d0d6b0e16f72d53f8accd0a2fe98f110745ccc315197fed62328601bd6def78157fd64826d63ca361b610458503e21cc7bcaddffd4c073cee6d5401b86507fc7c72dd3b4a955f109c1fbf2566a63c825bf1ff8710a009e236d575acfacb1acad288f8beceab4b60569ad0dc0c0b377be335a2556ed27aebcc777b6acff66af49ae51d867faff9b2c952ce6a0f7c287027da7ef3b47604988337ab1466a894e4633d445cbeb045500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001336090e278c2fd2a038b67492acedc64bf5298f1a580be1dd2842011db9252a62485a5efdd9f0c34307e49c6fa2a72cc339f08db3ff1a57700c992d8068f54f312da3ac5a30b48d457f190dbe1048054c0aea0cfbaf4ea9e1e1c4a8b6893c6bc26e67a30d913a45c110b96e01e1f1b5fcb5913ab041e3587195bf12bab8dfdde0c6f79f4f8314cba889c9e4b8c0674bbfb4e6d9107d425fa0dbeb6b0decbf4251ff5322b2c83e728f9fdc86cf214f3add8f65f706664e38af68b87c8ce13068305b6e33879ba510e657df3757bfd16e307bc5162bf7f7de70011c7bf75238560387bd233e367daf18a8ff7707128af22f92b437d2c76af9a8aff77adee9acb2b2890c247a0ec665d66c65750d4e7579edc2fd1aa91d21a32f58bf76b30af612036c748b5efef5e4d465e1df8511cdcd0fae891ba08343aedd0824163708f482b0961d45f0ad3bec92aa9114efe9e54aaeb55f21ba88f167d730520d70937378631cbb6af1008eb0aeedf9b9b93ada284df3b84f835bc5351dabf0e4c1dfc7bb824ae12afc97e753968042bb631f2e7942a8ad2591f4c204237809dc6a351bbea0b92055b8bbe2d61c2055ee444338bc94451c7cbc1c31aeafb7b7f28ae8f8b8f2dc7fef6c77de1d848808b0a78342fea34988885bdbe21d40267bf1b147ec71e3e62048830ddb3bac6d8e922760136867c25a3efa91b1889088692b86efc83b43f42cd6bf19146c83f1310f0a7f9b8692f790f1413be6852616263e1fd8aad42144d20850a3dc04dea0f201b25e75c64f2746ff854c0f56cc0cd9d1f55be47553edc029c526c9a8e6bcf3104aa6d261829208a9e8e85b91e80ecda5119e2a6c30cb7b84d7dbf229e41106598079a984040aecee3d450aef52175ca3c45aa318a2fdd02117a90461ef2380b498ba1906471d42c4b22767d74240ce8ccf6b2238b2694614bc482aeeff395d42c018ce6889b27e7e7a729cdda3ed6304747daf62623dd36fa856d61418894a8e50077a41cec8689ccf8f40834dd96b496b9a031f11908118117790dfdb8e0cfbeb0ff38b9b9f5efd09dfad623e43a870654af036b0fab5f9139d7da9c476fd8aaae4da055531279d76303dabf36d619a184c92eb128287e6308a9124e008164b7a983ef1540eeb6c01806174b835a837811a9f462201df6731425556c43b866b490a89dfd2d709083cab59d6c6cfb37af4db9360206cd7c75f8fc8b8cc00d17a957ae678fac91b0745c74dd334a37588e91f2e7be24a4c15417802e71b57d3e1e8f14da3450da928ce94bece367a218747c40a57234d558a2907c10804a929f825bdd91af86d89b4893ba23e4b821b1db70077c8b3ebea84117096390a80f7daa23fad4081c71d8b8bfdbab7d7a54315a503c63342693074fd3da432919c79f66772ade8b97c432358e5b8b3e24cf9fb4dbee2db7310b7bca832b284568064ede27301748151cd02e418b06ab650fbded3d36d1b820e26b4f8e99919f6bf49eb9369e01a4318b3509475cd17bc3db73a6244af71b1f7008c90517c4e56737577bff3e7f54d430127098b001bcbc76c79a36742af10431d4e03a265f47cb95ff999f6c8f3efcb9ffce5d3045e3c9c77c20b3f20b9306c0d99db6adb0cd724def4ca15bb2d5d5f757c5d2e8db36a7da448a708542c93dcd15db5eecf7b7d4084ec448388596704adac3c9b6203aeb8d03bdc61f6d6e3f11911cd3ddb31226fd22d50130f5098dc03a5179adfe12375a2209c293c2840f68d2604e790002e2105ff92c960b88f054b072277999c21fa2c7052f4a2f871d7385ebf5d0482406a6f1927eda5c3144631d9424009ba53b74139f37f15ba70b8bfe67464ed5f8ca1bb081cc9401b2347cf197ff013376907f302be325b0ef054090ca73bab27aa4488faf1fc6b00e5728b3d13885803ea30ac51acac7aa460d34c0f8ba61e91c913b38f19db7e1c878345946ee375b3159939a9410f296030ba7ac467451b46af508effaff79153e0c1dc7886e7720faaac235f76052759a17c9239cc2a944f51681c15459317eb851e1a10f48cd0c833d4e7a2e9d4554533a9925dfdf50bc482f88cad15c68ef4ec4d1a3f045d8805848f9632826006e4c163396c0aabf399995af50d443902d865c33373c3c75529b9a3636bb613069100f11fc55fc9168b1af7c1c3c66d060d322d31d638de85cda65595862d643ae681d3f33d2502901a5c743e333ef2a0c9e0142c8f40b4b0ac23c8d1b769623186b00a31cd9ef8679794deeb656fd6b01c97550149e556476b314244fb708d44fc33f5ce32610798686b21149a90294fe36acf6845db3e882688508e135f72bb03e032f9041ada05f5e85a98fb2f31708ef4a906717aaf6517f64b58e932c258ecf3cd06fbe525fa0a17a56704d0ce8f710d7b631e45e56a79c3477a259d3da71320fedd1486421dcd89c4fce7ebf732cac74d2037656cf977cf78bc8dfdcbbca0b30122eb79bde232763b03181408cd353ad749585b27d619ea1a1680d234435f60fa51669f4a9503b0d8f0879bd3fdf5e25d37853a8c0fc553c8dbb724faaf236305ae9960b56afc4f270f78642c020a1fc7320a8608bfcc65c9f757ab0550dcb00a31cd9ef8679794deeb656fd6b01c97550149e556476b314244fb708d44fc33f5ce32610798686b21149a90294fe36acf6845db3e882688508e135f72bb03e032f9041ada05f5e85a98fb2f31708ef4a906717aaf6517f64b58e932c258ecf3cd06fbe525fa0a17a56704d0ce8f710d7b631e45e56a79c3477a259d3da71320fedd1486421dcd89c4fce7ebf732cac74d2037656cf977cf78bc8dfdcbbca0b30122eb79bde232763b03181408cd353ad749585b27d619ea1a1680d234435f60fa51669f4a9503b0d8f0879bd3fdf5e25d37853a8c0fc553c8dbb724faaf236305ae9960b56afc4f270f78642c020a1fc7320a8608bfcc65c9f757ab0550dcb0b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4822d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a0af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb1dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1971ff13de4018ac2f204d8e0cb4a7c30f750cb2b2ec36ed94c33f890ef98225aba181ccd4d1b3c80f4b8c727f6526322ec76bec9aa4b2b38cf1447328166df4fe00804a96ca16c5a8c7e9573fafa97145f3de7ef8b9a2c4f92876ec904cc8e00d4243364fff85335141c1dd1584ef14afcac6b8156563c1859d08fa716ef4bddf906950214b2ea38a5f0f7c7a5a6a6ee9328253d0e0cad482ac7e284531768c1d903696c13ac367d18219cc9b7f7bb935a0cb57b9e7d3ce80eb9cf043b476aeea23b371581b99384b87ebf50a3233893e1b81926a8343faa5cdd11a28ad748bad3359e1e56f9048a6cad77bb79ff4fa19cf2f49f1f3cda8d9839cc3e751b48e93929ccc29d5fdca54237500629f8b665e1a0a2b8da0d73bcdbe3ba78313c766d853495dd25ed74aa44720598ce08b31b8d4542494e72066f37b2aca7f0b51fa1f23b371581b99384b87ebf50a3233893e1b81926a8343faa5cdd11a28ad748bad3359e1e56f9048a6cad77bb79ff4fa19cf2f49f1f3cda8d9839cc3e751b48e9391f108ec3c7ef869d02896f8b3c0b7d7cb830bccc66e346831da855b968bc44501e94e4976340e93b0663ee9582fed85a9ce4a40372e66e86b5ecab50f32a30103b7597ecefc6f08451661d567ed34c62acb1aa3fa3be10cbda7f7cf038d48d231c7786e392cf9d1cfd45fd81883c3ac7031fcaa2a1d6f4f07e74fe2b7f19c02b00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001056fbf803868d0d5107b6f133fb59e81919517f0faac25ee5a2e456ea7f8180030fe84c7b0c718b542d1763591b6133ec8f8aa268166dab84eadfbb2a7a1c2190e874a6dbadf6343747ed7d2b13ed0ff9211b31dba0e0fa7d9335d5d267d11822d5a9be0118a196f4bf3b47f93e87c8363a5528f7dee51914dcf7bb9fe5859ed26949b7af8a509bae87e3d607cee1c08259e0669227ea3287ca7238075908f28273be8ecc3565780beeae2ca302f4c862d94feec1026365f1633bab6d8edaa85270da8299e69bcb624369bfbf29b0906197ab5fdeeb51bbd7930f8bea78a9d0b136c16ef22284c4bf0bb00543422a3595b8e5aa9f03fbb88995c4446c206915c036f179109c173c8cdd6adb2018f2f72ee9c94694bf46d08b84ac554cffbe4e70a311ddcca9e1ba89fc105ce346db6c21397a31e7af10f2f709fbd98ce674e0f0f5d900abc8a411c9d634e38ad168f27331fab84277596a15b65220e335b34771d76b4446026671d15893e6164e9f21875e82c2bb6f567f23c2deb79797217d50c48692d16da0df4b3c1fec44a792f63e248ebbd59929c1be936e7cb83c84c2639c3ddeeb82ad666951f9bda91e9e14a5932b5b481601d31216958a5c951c6ba30a428f1c4f6b6ad5b8d43943c6e764a9e0d4be51559719ba41146b73e67339a0d50329ef8973ebbe76dd552587367c050375892a52b21d1e8f0e9d139ca8ef412968a76e97abf3a8f66bb284c13054d99cf979eb8825dbe02ce1b02e3e127b701f206adc03cb12dd0d9987f38276868698c6af2f0fd031101e5520674ba7d700c0371439d94eb04a049d52f261433e3cdc903b85dd14f9d69c1fa70394fe32d378af93e812f1d0c27dda17d95adf4800f4a603f42cdd5973518d51a0ccae0471854534ca2a2b3e0b1bf69dc832b7bb58f534f73b8991ac093733d09c23c20f12e5c435a6609a36c49a9214f0b34d01b1404897a0f187bba5797c36fcfb62bee041a4be580ae461ae48f7af5b7bb8169d8a6f81dc95b815693372fd7dad0846235ffc865a4c7c2a86bc0017e5237633304e3e8313e2cf0ed2a5ac4413625d2eb1f162358e75f6928134a83f4421c454ab94524f738e536fbe50c033ce285a5463a37a41252e54a5c836bcd845d65b1632104da945859797f8b82df37760a5903078dc7f9371341eb056490e1cf6de23019fffab1f10c124443f742255cc51b1614393dafa5049ca77d7260bd30226a78fe582b05b4307718030ded102de6b2341195710f9002654f6d2b6fae8244341d0c0590ca4737aae9bb34b6659dffb744152c61a59cd9b3a4de4d37c8e62c03b3e4309bdbca55582e0128da8667ccaace058f6d595d631dbfbca02115b9150833f1d02cc59b7ef351b390706433f577b805506a924180d1498104c34d1914cbf1a04827009af8b531bffa0e95a24cc7ee35c8d7c9088eb1f67d6e1f69d8d1c08d2a54b7ab6810dd4bebf663d764fbbae80fbd510d3771b9571538607573fed913a5ab42a1417c121dd9bef31ba65edb8636d0a89c209c6b10e197412045ab243d0d8bb54f82123e7cc865e5475399759a0395ed5c89f3ca9471d9545d1c4b3782c9bbe82df8fb6274e1e70c709a3f9f00191efdf567050d0f4a6a5d336c4bc72f9dfb0513285c686d578a9135e1bf924f1d069a2210312a870b66364e161ed271a6ab54f07e09939120c1406595c8d2e01894a7aef2eb3c9f1c3fb1a5999f6990ae1759f066df907b38de6110073efa56030920fa964d8e608653fa29b372e19c419e005b354fd4d2e4a09f2e1b1969dd1277acac7e2a5611d081e21f03ec564c781c01618637434fef6465c6add2369c1a46e505d08291015279945457926cd0897ca11c3191999781d1c42615e4b7be27c428c559fb9c5fc7f5010290ab74779865d9aee221311f1ec26f6948bf297d0fef237cdd2c92335b02335da90a8b18065bc264b9e5c8ef317c1d1adfec05860adf4da1a0b4abb4643ee6694e1629b7adaefab6e1b4c7802718c25353e78a9038ab8da8ff7c6b42fb9141a07bbbf17a7a4da70bcb1d4a080cebe609a88774d709c19fb1ec7b25db89ab5a0b96e77073fdf40dd7dd9ef2851299dad55073a5631dfd36250e94ab56a46fab2bf905ad1fd82a0f3b5bac92de008f9a27ec11fe6c375bb24a155f801bd4658229fa65ffe94bf2d0f13d996a30d4be2592a4acc0fc3e9fdf1954cf2e7b714cbf52f725237397ac6e021d0481610cc960227d436c13200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af2150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f3981eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c69269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f6196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af2150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f3981eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c69269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f6196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b05abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b3288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc735024077596ab5d4f14c7435038a9742be3e6b737f77900011bd2975eecabf38cafdd2a541dc9aede8050ad6648812a33cfccec8163996bbfab69265fbcf2ef361c4e38fc1c0df7b9b2919072952602cbf7174ee45ebbee63633b443106eed2c1c2ec1153c84f592e126fc3f1f0f20bbadd94f35f1eb7f65990d2549a7aba8284127f075dd1b117312a9d8a06c31011344d9a01dfa69bf89621b429bb8f33dbae0d8601270d2f56ecea3e1b2a75e90d93be05ba29bbd650f57dde8784b3a68dc781f708ea80bab1eb868323ca07cb55c73606bee844de917a21bfbfa6dc19489d7fda192e3ee660fd39226aee0bea6ad54ddb98f9abab4929986c135f5323816ea52136138aba397e4b359850d5fb9c7b4480ac78da8f3e8a5266fa48e5c79b6275533cc3da9332bfc4c2de3e80fe3391c67d16d585354e9f5bb7a35c091c3573e31932de871e518f6b896a160fd7b607ebe63ddb125f6e11cddd754c1c823ba96c722d2178e1ae70947695e9f02849f81419f58ed31a9fe1a7cbf077ace14456939136138aba397e4b359850d5fb9c7b4480ac78da8f3e8a5266fa48e5c79b6275533cc3da9332bfc4c2de3e80fe3391c67d16d585354e9f5bb7a35c091c3573e31932e1a0ad09302e70affa09e470781c2abeef38d65fd74e4803791df012bb0f593c625bb64ab2b757e5284ac022d5876bf056564363c44708847247197895b0c21a11e6e1221d2678b0b7f4724a7c3af635a4eb6524c792b204012892c8c117f505ee191edde2d9874f480b8db583c509db7e6118dfdee9dbc8956fe3b73ee8140000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000139c516fab2c20672884dae9452babcfcebd9fcabf7ada26db2f8d3e9cb8b4cd91ba056b0f20b46506f4c000f1201e8cdde7f854d450c3dad932d31d5aca5b80d0b121cba96ec529d2d1e2e9ee54c20fd2ee2b743681a7548fe2cb7388c2f5ab6192dbc3f098943cd345bd0c183c7216668743845b8690a06beef88c2e51413583a99a31f863e8de44bb987c06465b1d8a0a6754840900295db53776efd12a39f0c01eaa0f8d44c5276dae767b03bffb8a8ef9b8447a04c61b896aae47e51738a343521ad7e6e33b1bfba13b9189dbf9f4e84579ff37899f7b83945ec72f088be2dfe9c60863d14da7f602c4da95679ba7146d185572c9e5f82e2d2d80fe7229f3a6b47a8796a64b68a258ed5e46481b16736c491aca39ad9f8aa2fcb0f6db5e714f0fecf4ab9dbdd56f2b56a2baf8216aac54a95bdb3236ebe28e2f69c5423083cb20ade9fce23c6f66a13f9641f589f17672923cfeea8c27c0d1030b375ed8c355bea702bf5a63b8b907c12a139f8300d5459e981f2b9097d77c36f517b2021114855889ad0d63df4c2f7f1de84920ec613fd1b14914f8afc2960194957c8432181c1083fd703015786c4aa63bcd88fc2267f8da26334329aba3512124aac7e2b804fbd95b8753ea55c9df884e4096dd9440e209e3db5be43d2f047f179acae2b917c63dbeb05959d7ea87108d5f5ed85ea382e34c5b9527f1aa89cf26d59802456ddaaa7f873ebb780ef1c0b0dd46f23fa76809709757e20968767acb285d6318cb84ab82eddede4a82e07a2e04e14e565ef11ed0359f313b96c7fe8d272991e67ac92ba3c83c497ca0c89dcd14617c5cfbd0bc70c254ee4049107336590761f0412e7a1364797ace0100ae2afddcf6ea1723bd6d322e98230a25ae8187ad40d2e01e65dad69c98d73231e77bae126b630717fffe85b22a0d6e30cf0124ea139a586d68f72577180ee277844f46a03df68e37b2b8e446564509a875fb03a91281c13fe0fffc0281735dcbcfa0d4df105ad0584f5d1a398ff0641a2d7e5dbcc2d64216b3a6ec8f601a33df438bf4c9cac0f26bd673ce18703a0adea37319368084d10868cf5834015b52bb99019f5eec83f7dce93056b13e475cfab539a1fbc09da4551c6e56539295ea819d8d2b855d613a5c989715ad8f80d1f4da5fdee210947d48fb87cff5c4f53d85682b43b0535595413afedc08186e94361d759ccf91c73104647bb14e306b7447b50e160a3a8bccac6775b86d336d913db3856cad736ffa968174d7a3dbc52c307dab6e9a766d4efa461c3911a3ade8f61151b83a40e4196755d9198999b92bc1421d55cd7f90146a2e547f2d58d7fa70b96fbbb6325053b2a140b62b74eceddc5437159eced82d10a5494ccf3f119a1223c8fce153269f8f80fcb794f54a20a154e8cc7de430de7f1fd1963b50c1a82683619002a3c5a525d50e9777ae5e94b0de21eb2373d62d26925ef4389525b771072c6c2962215635acdb1949992e6af16dc376519067715f15edd001509657f3858c67dde15a4e906ef7f06e750e5cf90d78e67d7e7dd87736dc0cbe8f3edb86b1c020912312928232f0704c39ba75853b97b23ab58c3767058f73f42f6caeecb0705c0f5094fd77f363c3f3aa89a72e51f3566046a91252b1ab8dcb3653c0b5cde14eeba053cf7baac2936af71ac44fbf68ba8d263a16dda07d9f59071bd0650e668aae426c35c6ec0a4019b04f956b416ed0b16e6d15166f20ac2cf03990619ff6ea6f004a05d662828d605fd69dc9c6c6725ad9d41e86a180b439449a4b05f8ee6a15a2240aeb558e2464acee65d29f1acaab0e3e49d313ef8de0879e3f22551d54a911a1aef2c44bc3534610a0157a059304cd6052e8f193b0fc292e5e80d627cc2e501fa59854d5fe8aa2723553e37af4810a65684fa4828107f212f3b305362eabc327d94c930e75cc5f2d91d0da495a7c263cfb7bdfd0ceaf2e779b2ca104ed5eb148f7b630e75dcea9b51c0ef7c17c17dfa09fc2c7c715731b5f975cb338379ca2acac6ec14c76541967a6197e4834f44e0a8b5b0a653e5049e8ca870416a22e330fdb4b45a9d9307315c9413cd4b3240c1d039068be61b53c641ffe217fa42ca2a4688546ee9ee6f1e2b3920092fd1913e8613509a8214ffa9d0df6bee5bca940de6c362de4476b96adf4a95b01d90e047b59b594aeed5da15bef1e9f80bf3bc2d19e914e60dc779d64eafd4fb377b7711233651015f20c9bc7f085dd589a3a62982f9e5f6e341904acdc642c4b2f7fc806edc7e533c1eb962fe3f669dc37571167d061a091cbe6fb53239bd3b4d0803a1d7bc7db610da62362ef186623c8a900f8ee17dd27047d17604df4dd77ed7ee1b5683838445ae4c236faa3a14d14b3230711e822d8fb82e89fb20b22881281206f0157885074acf75bd86b2eb2eb4cf0dca67751c3167174e185c85357a37a66669f8958c0f6e6118012235681677f93235988ae3ce98e8b1e7a37aca85c859bbdca0667d3d8aba812c0eb797e9880804f405498cf703748679ce9a0b63163fddcb41efb3002ec9ded87a1e087057dc3b0bfab67308fc8b79863165f49ce9c0447b570c564cca51ba54b6cef78fa8252982f9e5f6e341904acdc642c4b2f7fc806edc7e533c1eb962fe3f669dc37571167d061a091cbe6fb53239bd3b4d0803a1d7bc7db610da62362ef186623c8a900f8ee17dd27047d17604df4dd77ed7ee1b5683838445ae4c236faa3a14d14b3230711e822d8fb82e89fb20b22881281206f0157885074acf75bd86b2eb2eb4cf0dca67751c3167174e185c85357a37a66669f8958c0f6e6118012235681677f93235988ae3ce98e8b1e7a37aca85c859bbdca0667d3d8aba812c0eb797e9880804f405498cf703748679ce9a0b63163fddcb41efb3002ec9ded87a1e087057dc3b0bfab67308fc8b79863165f49ce9c0447b570c564cca51ba54b6cef78fa8250c8e75409cfea4dee8d5ef0552162e0956ef2a6901d74c5dc30d8531f7fd750d3d2ad1c5a84311902048eec5362fc54d0d1d9ccb0b08409046fae480f0b3a5db059566e6dec5172aa9a3d8a9347fd6550f6f1691a37f82eac53d94a6e7613a4813923ea18517c0e7c6fac4d117b9917c9f0728c9ec39dbb77de85b5c17f2c7f4398ac8dd772bd7e2a1144df4ac2e83f0f1260852cbd7b88ab526753260b1d55b323e3b1d1c123ee2d30ecf582d1704b82f8c69a0244896ce6975d78eb7138e94258eda5162155a1e6b227b61e79b402a733e081b6fe9e3f0cb69d2d682885e430434db985e86002ba4aa672f4bbc59bf8bebd928dd5e473ec5c452796e0b09981009c37c9a306bc2b1bba0395b6b5d56f419cbaa5fdefadd683544dd5136156111831ac16c4903152a4239377cbfff45223f0a73686799ab4316bc0d50b85a723c00d04a622eb3a58ecfa2af7248f2720918328a9083ce966a6ddd4106c481c936caece573b0c041c38584c49fbaaa9b34c015b0fb1e1c65453ce31bf164b2352ddc23d8843c43f66d8638517969fba1bbe8580163f629d310e2171420a150ad2f42ef98d2a52d8818bc4c69b216a93698686c631b57d5ef6d7721fcf75992343c00d04a622eb3a58ecfa2af7248f2720918328a9083ce966a6ddd4106c481c936caece573b0c041c38584c49fbaaa9b34c015b0fb1e1c65453ce31bf164b23521d2275d6ccb8610651e006efbc7688745da81f9d6cf35ba02d29903ccdf39f73bc95e32f83baf30923c70cba94a09bacd1b72f30b60fea40bb84f77449cd8712e3cdc54208e7efca87dbf1c739ac37304752cd66d2b7e6c955d21b9a1bdfdf8235e84e291d8b87bf6ced88b65e874c5d3771337d78ca9ba4b51d60dd62870680000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000126caca2710371ab3e7d4634dc66a75717d01b49171f8e0fd37d6fb3bb128edf52fbc458e04da0f485d380a0594dcc3539b152de9414c055c9c3ab642ed69c6e33647bd84336d686bb04b996bcbd9722a2e06eef2e6538a63dc51571b721467b43d9f88f1d9fb2827e87df2410ef07171f8c21c7f393aaca3cc87c5067fed9f87146b6a10079ad9a40069e36e04b18d4d2330fb5f1bdb7b61d475b570777b980b1003c64fa305370a264c7c554517dc1aaccde1301a70d22da0dc73438dacc2f81b24798013225c56ecde8789e6268036083c917b9f830831613e7fb8681fe8290e594038a29ae3074a17d96246f8e9b6007d0bd2e3155cd325dffbcdee1c63773fb22947b7efa005f83bc42be21681f2f9efe4e98676642335b04cc8ba01e49f1035829e8aa9ba1ee00287c6b1580a366a24ab2217f5c76add5d7973d3bb8e2c0d9dd7cb7dadefe14ccc300e1266ea174192ac9905eff4b5632c86c3d77b8d5333c5af33de645644446cd1c133ba8ac070cde47cebd4525802c5c0488839aca01a63086320af99b252b90ef479860b38db9fa3673cc8808ebf936fff95056707160f372abac6d65703502beb926e9c027be2e45edf4e8f650cf7435bf061f5fa1e6576ed6f0cd431fc543edfa67d765e0d254dd84cb506db259b7fac690632ca1add0ba830726cda83111f1e470312a1e6600ace2ef3a04d5162eb7922a9e8a10c96bbef84274f21b703accc16af04635523c3e0247a25f131c74705c24e0bb025e5c9a6ae0a8377f481adf643fccb24a98a2df2764c3f96f2ead526d382516400a79f6a14a7152b213afa96c47cbb87e860b4290357800e30cf53c47d1177142fdbaa0c65955643353da58c27ea36a2844db90699c09ef8f61d1838378b757136bd129a476893f17b0600ec529b37b5c4ea038ed82a88fd140fa00faa13e33512711d1fee47b63796efe869a2ce35b750e1366c188f6f883d24f57be1cd5fce3646fe7bafc540599e2f1bbfa85fdbb16919c5511feb697fa124b61eec29e9fa29834a6a089a3b3c9bc482311a7816e8d6bb9068de914bb094706bf34a83cb78063d73b55cdd643c0299f1bbedc95e3887252febdf83603904b45c324cc5d746301a8ddffb3b9f2d6406e1cadf3fbbc8bc7bb16aa543c916ac78692b5ff9e7c3110b0edcb4d261c055cb1bfe99808a91770bd93de36d1da0147342c770ffceaf3647ab416be3b88ef6fa73bf51e8398a18a33757742525916cf1208d299a51790648e98c57357d06a4a226dc27dc223563089df5cd499b0742ff80174543bdc41c482bb4021895ee8e9ec81fb5c3ea1eb63f0b02f28b05493182263095205b333e9d43f8a1ba3bbefe741a21b09b4ac6892064419e6d5d47c161ae80d4f621d7042fa340edae865a6ad2a0d06c5ca3155601862796b48e83a65bf746c5b5ef622fac79e450206fa09e534bfc4863347fd33bf626fc0d745b0027f924f99122ec0aa062281c70684d0766126869dcedb55807829f2aeeea487b664010fa8d298b3b43f826a530c8d710bb454c84307976822f8350f19fd468c75f89eca1a2222d1587df333d7bb1eaf7fd14337654a7e14fc781d425c842f179fc9ecb9a9b2fec2c3fc49b9076d523ed12c6ab330cda023aeaf79447e1bc1d4d09e72f3d2cdcb207ca40b3ef7e111bc5ae7e8dcf2c24af5ab99aa65805364279f03f3f0cc75efd1f63370f9a8008cf6d0a32e0e46cc98765440b7b2adddd36fa285e7a05a21d3b1ef08ecd50744c4f487d00fe66305de2012335f8e927d833a78363ce518e095d2ef44ae08b88571d2a53fc5e6e3e03fe60bc1b9d3267df2ba23ce380bb06137c260943114996cf0cdb8b6c23a67c9958c29ffabd5bfbcc919536c48d5a3b1813308f2db3390a6ab3df373575e0c4571dd2f9129b2b5169d342602f99cd1b0c7918141f1f2374bce9345ad26119e80cc5d89181a3112f3276e67186acd59aac022abd269db0bb7b00e19808332a4ef0d088d416f343e2f5e987c05cfb06e2b999384428c4a3cae8211773a9a6e5da91e8476cd152da118cb1c551c7ebd4881c5a0f46d96e1061db003ec6e043b1a6390246c70535aa6f0a0ef50cc92f289118390bef54297dc7d81a63d4a159f52e8420c0e13823f5bafe380324e2544b12667c128fafe7c4ad573dff2d99cc915ff410c39068556f7960e8dfb008f970ee66191b4050ce0a5fc54d7ba3d9e3cf74738a53f296a74bb7048b38cd95ff46c718792668f72cd19bb61bafadc0b19db3eb2763baec2ffdc90835dbcf92ed0874b005199708d32e6449e450523f4e624c14d8be8baccc0b83f0e5bd5d9dfff78b4ffc000cd3e0180a8e8a6e64c378148397c48bd2d1fbd9063dba7f864bda2a4770163ff32c1fe7f57175919b3c87eb7c683b9673c7003046bb6119a6e512d5b88feb004023607834c8b427f7d1586691f6d6bb1e19eb3d1f34a47d9f7b42d365306e3fbfdc9f87cb374bd8082ea7996e092967287f10cc2dc4771b8db5aa2c9acf930140b0e25907eb84c7d716ba00d9d231a7968198319c0736741d684e20f9f2263ebf4f1da6f8147b3828e945ff262dce7ab01763d7b0f1e5250fc89edf060ddb2668f72cd19bb61bafadc0b19db3eb2763baec2ffdc90835dbcf92ed0874b005199708d32e6449e450523f4e624c14d8be8baccc0b83f0e5bd5d9dfff78b4ffc000cd3e0180a8e8a6e64c378148397c48bd2d1fbd9063dba7f864bda2a4770163ff32c1fe7f57175919b3c87eb7c683b9673c7003046bb6119a6e512d5b88feb004023607834c8b427f7d1586691f6d6bb1e19eb3d1f34a47d9f7b42d365306e3fbfdc9f87cb374bd8082ea7996e092967287f10cc2dc4771b8db5aa2c9acf930140b0e25907eb84c7d716ba00d9d231a7968198319c0736741d684e20f9f2263ebf4f1da6f8147b3828e945ff262dce7ab01763d7b0f1e5250fc89edf060ddb3c5f354a6809f5d8fc0d754f10b0845dec5a231524772141e6eba5461ed414fa0552acfb4136a8687c086867198f336159a70e0de3347500c25c57abf0d8fec11de7898ca0b76c5ccf8ea31d9866d81454a22428dfdbb89c3b361d9f92cb085725edd8763b0e9f24ec8bee196162f82280e8709816f727bdb7fdac9abcdb63e027541176da83940bcddba5bf8fca313a0cf166a61adf78fb1346d8c784dd7d832d20453530a536138a5e783467eae3615daf0175f4fbd68ec917cd7f4275be39227540383b7afdf410f271f0e0351c0831df6f510d3bd8407f2ed3eb70f5bc710acae72a2f689511f97308548c27da6e25827a2532409dc67754fc46b0e92e44011c70368251cafa3a9d1d43276700552c4966997ab9e345bb35caec036d63d52d9984b2636e7d95d7648d19f09250ebbdbbed363f3f0389a1539eebd5e1d9b6256d0959e0317b94da37c2704348955c8259f71fcfa70eeb3e4982c8959e72fd3922206432f3dfcc7c9db66cd40c3169170a7debe25aba8d226ca0ae7c7d7cd025b94128f73e9dca3463e79356e8a38e0390eaba0e47185910389ef44e60e2b214bf7a8e83bab872976ba97f850dd47c47b71a560f215c5d1ed32ca6524b9d61256d0959e0317b94da37c2704348955c8259f71fcfa70eeb3e4982c8959e72fd3922206432f3dfcc7c9db66cd40c3169170a7debe25aba8d226ca0ae7c7d7cd0329ddd45c033c4b974f5c69e817f38e0b7e372a10efe002fe216b02c6e096a451ebf442a165ed5e1357a20e37e386581a3fa76f4dc1376666070db5da5722d303af6c54949efd354650ab457ea339501956fdad9ecd50a3bdce40c04ecb92ac62964e54c1ceedbdb96032106619cc3317c2473828a4e520042cf5b3936a555970000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100607eee70a3d04d8f2e46b78510e1019a2a6e1b2552d91d97106732842278a70c8c301f35962716c9a55bfff1de7d950e9732fafefd0b637969a6d0215d855b1316fabf15537d0b9a0b600ff880374404161616017a981c4babbd53ff6e00a1037ede193333077bda67bb0a26f6d82fb5b3b19c2d3b4d1bba6e724ec0a76f753a00476bb60dabd0eef1503717330f85220e6534a011addb21bb2f94bf23cfc338a8ce885aeff77c3aa481b7f61599abb5eee7fe5de7745bb33f34f732647b890cfef7a68ea4eb5b6de3c53679550828eeed32e3a17bf9921c6732fe109f3bc239f14385a7cb9df4a058a6e602fb24669cd45dc59650187aef3d61c086946765096255006e4c666568963b6a50b728069d2812e309d80f2284c37c1e83cfed50087033f9e1a3a6ef0da5d4ede5b0e1fa35bcc1ed28d8f881bce95b330abdc644244f2e6cb40c0d87bd829994021811cc52eafa7804f1fde6605544c56c53ce170e37de82193ad1eeafa89ebebb22ac13192212fc5f5bd7faa90fa30098d0cc342dec56eabc0d586a3c231b7e290877c672805bebd9adf7079210e4b14e03614d0b14654842aec44db78e537a2c47ddccd5c43b4dbf14086debef091e2320b38731fa66b960a0f6387228f6a2393fcfbb06e7ede822901de2f2f55c5a400396a1357aa1a7a3ea981f72d731fbdf50ff51422aa0c7de5be31fdced9473f48d66a52877da5c40b33d20112edb42b56fbdb3ee63e0bc4128df8fedd545f49c1de9e923bbbd5b2ea984f045eff2879c75a636ee6d7974921204ccd2cfe8cdb005d8c038a489659e077d482441706a1a2c21c27edc7ba1cf45756563282e68cd0dc1c017b9b1bfffe47cb3bc193a6d07c39b1db26e46e6962edd638442aee2fd254109032c43072e804d5008f3f75715a973db02fcd9b95313d639e7f7096ba81c013639299ca290155568ef88f795dc611160d0b63f63a206f033fee207b03e6a76cc3d8c988e2bc6017c59ddad868eb622df2764faeae16048a70a873b8fa0cec4a71220b0c6c51fd2cc320e93e73e47f16ac8b48220f65cd921f090379c4d561de70fde2a5d527e63043f7e7eff45a9efd6d941165545bae8b1038da06420994db418227ea3cdcb7b2f3e5a0f1a11318092e788faaa8a9d629b2a7088993a15b08f03efb3983bf4203282304cb5c40769b29e18fd1a662345a2d686983b256c66c73aaf2550b237f053da9ccf56ac358083d7e949834dde6d7869ccebac8b1f69200a176f74d030ecb54187afda1fb22f89e1ea6c38fff7bb476a7300044ed14d8f31a35fe8e9da3551fc2bc6e3a84d3880c2833e6da482b94f82116843847f9c6f0eb443f5b964a55056a0fdbfb11314c010cdac9fc740eb4ccfa7b98b8d96d5d511f5c6cba433215872f48390fafd1db0e045d842036c69348706ebfc63c1463306880482679eb0f96b782fa7c935136e529397ffee88d77449163614427fee73387203063724a39e01b03a83d698d9f839b51583e7593466cb46dcf6b8ed9d423e90beb83d5230979ce4eeba94259c427c40bc010327ec89e7993aeff7168ae42411d31e26cd60748607752ff6bc85600325064aae0f0357fd292d718905654c18eaf6b948706449a24a329c1cea5066c7155f5fda45a733fdb98899304d33d60616b0ba8ae6ea0a1b86a4b1c74f936168de364893cf88b6f89c9fb41ef87f8e3b149029230405c0d99ec06d1540d9aaf03dc5a3c23859bf1e38a893cc9f04380d9bf7bb53607ddc500e38f5ddb08b8ac57cda14c891325f11d435619a0fa1a53d188a595167836aa8b6688b6fbdb6f92c8f52f86dd758eaec90c173ee859971176ffe5bd6548eeb9b2f4cb6c4883cee702100c9e0eb1bf0e256efa9cbdc30e11401c5b8d52a220b023a5af6911ffb32237b5342f8a6a75d1cc50f163518720e3c5f8860edec0b32ec913d88257b9b451cbc679e1c041ae7bc7f1aa495c0b6141e8db1b912736601f73f77cf45c3c941117b3f339d7a701cd633946e83bb07ed32216ab9798c558a9fc8c91f4ca42b4c1dc0072704465286a855fdb1f91e53cc38a7fd3f1606b6a29ec02afcbf83ce7ba12dbefa75cf31c02ae4069502ef8e130e97b6d799e5e1b4cf00c307aa098df900e5c9d346986f34d145b88869879de704d7206279c1268e2b9ee39aec52ef51081f4f172bb71335978ae420c42f413f350dad5f90435e9951c823414a7fc448d457df8c10a59c3488e5a2ba6e2662dd000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae0591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f62000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae0591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f622ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec1aebe5602a8f012b625ab7294163b3f936535be6d1710961e568ba8e309576381b3b6514a5e576d3bf2166ce9c7de55051cce16420aa35ea7603aa0f35bf89c4244521909e9b5acaa5db43f72f0a2bded449be25c8721acd65d44008e053c49932cc9fbaa6d221ba27e3b44f177f938d7cf171c02263a9cf8842e050c65a2734116c00ea9c1bc19f9ce433c485676e245b517df10c7d8af760bb4090478102c130829fcdd5cb1e6f7a29844c0e178b8700403eb47f15271b1118dea6527d1a212c5d4b3e60675d3250e23f8668dfd240a7423c157d20d058309cdf5d913961fb3a8199c7a3ef2b4cc57459924fd31ff0909d51ace7c3bf6a7b2ec6871d20ad6d0907c64532b347c431682ff5de12a6dabb7611c175de7b7450d0d6b0e16f72d53f8accd0a2fe98f110745ccc315197fed62328601bd6def78157fd64826d63ca36442070166a53eb94968cc7743d12a67451f94c00acfb90c6bb2aa2918a1eab2d553e5a63875d475ec00d3ca900a224fca973c33d072ac892e487e278d715530907c64532b347c431682ff5de12a6dabb7611c175de7b7450d0d6b0e16f72d53f8accd0a2fe98f110745ccc315197fed62328601bd6def78157fd64826d63ca361b610458503e21cc7bcaddffd4c073cee6d5401b86507fc7c72dd3b4a955f109c1fbf2566a63c825bf1ff8710a009e236d575acfacb1acad288f8beceab4b60569ad0dc0c0b377be335a2556ed27aebcc777b6acff66af49ae51d867faff9b2c952ce6a0f7c287027da7ef3b47604988337ab1466a894e4633d445cbeb045500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001336090e278c2fd2a038b67492acedc64bf5298f1a580be1dd2842011db9252a62485a5efdd9f0c34307e49c6fa2a72cc339f08db3ff1a57700c992d8068f54f312da3ac5a30b48d457f190dbe1048054c0aea0cfbaf4ea9e1e1c4a8b6893c6bc26e67a30d913a45c110b96e01e1f1b5fcb5913ab041e3587195bf12bab8dfdde0c6f79f4f8314cba889c9e4b8c0674bbfb4e6d9107d425fa0dbeb6b0decbf4251ff5322b2c83e728f9fdc86cf214f3add8f65f706664e38af68b87c8ce13068305b6e33879ba510e657df3757bfd16e307bc5162bf7f7de70011c7bf75238560387bd233e367daf18a8ff7707128af22f92b437d2c76af9a8aff77adee9acb2b2890c247a0ec665d66c65750d4e7579edc2fd1aa91d21a32f58bf76b30af612036c748b5efef5e4d465e1df8511cdcd0fae891ba08343aedd0824163708f482b0961d45f0ad3bec92aa9114efe9e54aaeb55f21ba88f167d730520d70937378631cbb6af1008eb0aeedf9b9b93ada284df3b84f835bc5351dabf0e4c1dfc7bb824ae12afc97e753968042bb631f2e7942a8ad2591f4c204237809dc6a351bbea0b92055b8bbe2d61c2055ee444338bc94451c7cbc1c31aeafb7b7f28ae8f8b8f2dc7fef6c77de1d848808b0a78342fea34988885bdbe21d40267bf1b147ec71e3e62048830ddb3bac6d8e922760136867c25a3efa91b1889088692b86efc83b43f42cd6bf19146c83f1310f0a7f9b8692f790f1413be6852616263e1fd8aad42144d20850a3dc04dea0f201b25e75c64f2746ff854c0f56cc0cd9d1f55be47553edc029c526c9a8e6bcf3104aa6d261829208a9e8e85b91e80ecda5119e2a6c30cb7b84d7dbf229e41106598079a984040aecee3d450aef52175ca3c45aa318a2fdd02117a90461ef2380b498ba1906471d42c4b22767d74240ce8ccf6b2238b2694614bc482aeeff395d42c018ce6889b27e7e7a729cdda3ed6304747daf62623dd36fa856d61418894a8e50077a41cec8689ccf8f40834dd96b496b9a031f11908118117790dfdb8e0cfbeb0ff38b9b9f5efd09dfad623e43a870654af036b0fab5f9139d7da9c476fd8aaae4da055531279d76303dabf36d619a184c92eb128287e6308a9124e008164b7a983ef1540eeb6c01806174b835a837811a9f462201df6731425556c43b866b490a89dfd2d709083cab59d6c6cfb37af4db9360206cd7c75f8fc8b8cc00d17a957ae678fac91b0745c74dd334a37588e91f2e7be24a4c15417802e71b57d3e1e8f14da3450da928ce94bece367a218747c40a57234d558a2907c10804a929f825bdd91af86d89b4893ba23e4b821b1db70077c8b3ebea84117096390a80f7daa23fad4081c71d8b8bfdbab7d7a54315a503c63342693074fd3da432919c79f66772ade8b97c432358e5b8b3e24cf9fb4dbee2db7310b7bca832b284568064ede27301748151cd02e418b06ab650fbded3d36d1b820e26b4f8e99919f6bf49eb9369e01a4318b3509475cd17bc3db73a6244af71b1f7008c90517c4e56737577bff3e7f54d430127098b001bcbc76c79a36742af10431d4e03a265f47cb95ff999f6c8f3efcb9ffce5d3045e3c9c77c20b3f20b9306c0d99db6adb0cd724def4ca15bb2d5d5f757c5d2e8db36a7da448a708542c93dcd15db5eecf7b7d4084ec448388596704adac3c9b6203aeb8d03bdc61f6d6e3f11911cd3ddb31226fd22d50130f5098dc03a5179adfe12375a2209c293c2840f68d2604e790002e2105ff92c960b88f054b072277999c21fa2c7052f4a2f871d7385ebf5d0482406a6f1927eda5c3144631d9424009ba53b74139f37f15ba70b8bfe67464ed5f8ca1bb081cc9401b2347cf197ff013376907f302be325b0ef054090ca73bab27aa4488faf1fc6b00e5728b3d13885803ea30ac51acac7aa460d34c0f8ba61e91c913b38f19db7e1c878345946ee375b3159939a9410f296030ba7ac467451b46af508effaff79153e0c1dc7886e7720faaac235f76052759a17c9239cc2a944f51681c15459317eb851e1a10f48cd0c833d4e7a2e9d4554533a9925dfdf50bc482f88cad15c68ef4ec4d1a3f045d8805848f9632826006e4c163396c0aabf399995af50d443902d865c33373c3c75529b9a3636bb613069100f11fc55fc9168b1af7c1c3c66d060d322d31d638de85cda65595862d643ae681d3f33d2502901a5c743e333ef2a0c9e0142c8f40b4b0ac23c8d1b769623186b1043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a1043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a3ba6fdac0b77d30417b290295f5091155d781ed0d0a66a28e5a091ccf9031fab1883d6e1d3620a99d127d8cf8f9f75ddfae5984b4c8b4ceb80eeda5649fd19220b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc28a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e871e6e0637fbd2eec7f53d9274a1ec6abff0bb5a737b45b8caa2d0031846ce7ac63e2a62af0c0ec157b4163e558a1589e5f2ba4a4494e1c6ac46d6793eed0d61503aaf8c3339f1ab672444e10a08c0dc0efc9e314ea9c148b218529c30eafd8e0a2b14b240c176e1fde32638dfea6520d5983e5f855c8c72873458769e662a2ceb1d6a0e5afb7cf7e470de56335d310ff0d4c2db1069fa5d8157b7ebacf070fb0905658bc419c6b4c20a8cbfb280bf03d8dbdbe0984d0a63bd1af5ba6f8911e8a8127381323f9fbf530967dc8447c416a96fa1e32b0b281b6702eff53454096a4115c87650577b39bad636654ee00feafcc869db0b5eda86039ff8dfd84b6c28b939346cb03db80572a9e11b78b224ea3be1e5627d6cb4a161201dbb1881b7a39c3edaea3ce3b29d21497258d0f1510c6ad41157af8be9aa05e08adf2916c3b85a127381323f9fbf530967dc8447c416a96fa1e32b0b281b6702eff53454096a4115c87650577b39bad636654ee00feafcc869db0b5eda86039ff8dfd84b6c28b934761c56d9a6ab9e0cee6c30965ac7b11eeda95b5ddf4f44eef550241f34736f0449890edf67f0677e5f047159bb2bced988e9b9e5f9d9a6b9a2a48bcfb3a4fd38bced1e1d8bc9a790db5d472120a66ca345ff07dbf6e8f34f5022a02ee5bd121f8fc5838989633c2fc5e829102d2ad3d856dbf8b4b8c732ea91593fcb830eb5000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010c9b2b0c6661ba16b2309acd4d5b3fe89beba39d90785c24dc0a488c4b04da651e254f5071752bf62f33abc8f91018776028b024c8c5a5ece963f8fad2f094a734b32bff81e93c7172034d1306901f4db246105ce00d3bb065f664f9f325b1d90d230424878c2711a2ef0a0322c07a2817fad32ba93d2fb35f174d5b6a9cf151067289bb0778b8fa746b0a799b80dc87eadeef899eefe23e902cf50046a5bb5132378a73d5728f8cd172ee93b9df88c4c7c1ab82fe74b4f31fca9d35d2015a2a1268b50da14219255360064af61deb726b12d8267c62023ea3f56c755e06468605ab5b4ec7d9e30230398cb1f080d1cb39fd156759c8a5e86aa57a097fcb22a10ef7f69c10370942a0d9c4825ed3849413e54c80d75e2ceb98564e55db57a922325f389f00cb2cbf14236a908dce2237b2d0f066fe1b07868ffa455bfcda155b27a2289d7ed72c7a5ee3fb349fe47eb8da9bcfd8aba3c503641698c0c6a4967a04a753461c47362f98f1b638ac0b0059bde1850c809d35dbb46086d3e6dea82624fbdf0c4c64a1c772daf407aa27b90344bccbd8819cb746ff98396f39db924826f0a3dc161d06b46fb2644f14ea98501a3d37ed725d6d9ffd076d2e534fe75919898e5708f1c6a4dd715b4b9f29f00d5145786c681303d76c88f0e98f0255e82ceaf160d9da28bb9b00a6f9b48356f38783fa482e43fa17f7c25a0cac491c672b8fe5b9c8bf8566ec29c63256aa89208ef857e095c7b63872aa08176e518f5a2b34b0db23d51c28711c2ab53bf3f1566b36c76c20079f9b613d3918363d12eb2035d61222f1b68db2c2881ff49ed3138a3b9b01c0291fd602083811c4db8480022cc686f16c7c86fb07992f39bcde5a18286fd8589d9fec8943328d20c8e58c18baad7d113b0cfe968f00768588c3fd8e900b9a6d6a5c198c2a14b02208828d1f61fe14db897d897e7e4034377b01708e877c33531e4a56bad28d691692465f1e6048fc93b73f2586af1e1797b36b13c61eba8041137eba1923cba9c1d72b3622b3d1ea0fa6e4c1d46e578f0d3f4c899b2012f8c903f0851b60ebf3371df5573543cb914e33ff514994be99d5352cba994e175928857bbf04be17458795e2d21d16d90fc2c3c25365f482b5292d9f59a4c4a8478b0c6e7f21ac8e8dc8f537330a0b8f41800ce8330d56d8ecd3837db0c301cf11a6c8bbf91f64b59e4fdaf9dc3248fb02caed93e6eadb4f51d92416813ee772ef261859b05501f98711309f1a3370fd2a6f62bd6f1cff35bd7d8479048eab7ee4d2a58c2732d526c7c0eb4e593852b53a43872f4ad8064cc6849da26b2ecf44cbd121375a0bbaad31de78bc6402892cd8adc7788e1aebace438ef5f82e0dbb97fe3a764a547c3bed721b34c9a25ab39de58c4741cf1d04b1f9a7d57bded8f52ee3b13981e9c9fdcdcdc56f0a0303ee639bb30be4ba0f0936006be9e9eba6a73ae4d3de9fd4f2024f70ae4b74c123751faf441d9759c6fd4371afd9afcf427a512857f85f785b189f3a33e5ff613b10a602adc54590f34eae1a7bb1d15295b5f0e06549ce197d4ba5129987fc71a0d7d985fe80c72b5fbe43c09205dbf47734fff16e3408f1a4326906c9a72893c951f165126ab066dc8918a589a779b4e5f25f32ce8c046bb9e39b5293114ee20653851bb857da9a76f5dcb45045b574d35c88e7811cdcc264d88e9fbd394b026596d5ce36bfdece7a620b98e0b4b2206a8fe37983725439df54dd6d1ed14d222c9f36149317c018235d8db0c11883616287822b7703c3e9651c9d075ccd3f51d6ab8fc089778bcaa140e6622b86ef3950b87939737cf1d3d2464cc4473e60e250aeb72dd551e031d61a6e7fb8c366bb4ff65c636d6e343abb03422e9b8e5932551fadbd3444ff1f79443ac4eb3b5cae3eb5cb81e2e5279fa0cddb3a8d64c080c75f886d5e85e33962ae725386da4a7595ad073e0ecd1b1fd3f9ab122bf2c980d5f595f0aacfdd97e51bc978a28f68c976b907410fb0440efa8204a75f230fd35321d9e73e91c323c22a0561c6ffe06fc8aa8355e380434c6f2a1dab96b268120bc66a4be615214f335a587de413d0914dd848ef28c854141f3e7aef586e9563faf32beeea17a4f948ca2ffc69a3090776cedb19fa234528965a73c499778bf294e2f839e64cb4bbe384e36d70d99d2be92c850e6e6643103f7a9da67adee0b0dca2bd5864f524af4912ad0f6e53a8de875fdebcb9deb1ab05d6764e46a2c311bb21bbab7170e70c6b99ec5718f37fd9cf67834571ad16b92e9316a65c98474244de44548e8f18f3946613a8e70c802855020c7b23227b00643ff829a367b8d0a7a8aa593734833e1a019db37cc17f3cc43270da0ec24e2ac339539fcef96423585755a6c8cb7cc1e5fe624c833e80c560371ee6860d438ecf99bb3031069bf3464b53be14069036820814816fc77c2fd4fc344249cb86d5d01ea21f0adef4a0b9b4ac41ebf96fc97df7eb7e903883d24f6d5b7e4b040ae3c2b46cb0f5210b705f78a2b66420d1108a2866872ee56ce69746c6491dbb5b46c54cef5b365ac6e3a0875d499bdf2eef75d79978d11a931b8d22c97777143672cd861f74c9a53931bb21bbab7170e70c6b99ec5718f37fd9cf67834571ad16b92e9316a65c98474244de44548e8f18f3946613a8e70c802855020c7b23227b00643ff829a367b8d0a7a8aa593734833e1a019db37cc17f3cc43270da0ec24e2ac339539fcef96423585755a6c8cb7cc1e5fe624c833e80c560371ee6860d438ecf99bb3031069bf3464b53be14069036820814816fc77c2fd4fc344249cb86d5d01ea21f0adef4a0b9b4ac41ebf96fc97df7eb7e903883d24f6d5b7e4b040ae3c2b46cb0f5210b705f78a2b66420d1108a2866872ee56ce69746c6491dbb5b46c54cef5b365ac6e3a0875d499bdf2eef75d79978d11a931b8d22c97777143672cd861f74c9a539314cda1b9433fb43ff84e3aab6e2756c437f9c72677fb7a3897b566ae006fdb553fa1f2a2d0b4cce733cb9590433d6813522b16e9db2173a58e4bcaea7364b2a4047780b393c9324d25d3cf2c8399bf9cb8b67dbfc80f7d2ddb11c11af25663f7235b5f0d6a17565734c6c297adb20db96542cc678885f50ad8c48986405d7d6b27fbc0adb0b3b292c8898ac7ef5270fdc69e1a16eaeda4a0afa69ec5b276274b1537ec91b8aa7d53887d0be2d9d8fb901b2d2c2b519e1694db7df63c6a54bc502c546fa00213944899f0e4562f8175b07f669eb688d62629e35630af44a866c512b36c7dab377db212cdabd48a6b28d193e3a2e31d87d4915f3827e4340f9e5a3da1a3df29b2ea8129c4d6ef0070d81370801f15826b97c5c3631eee2babcb8c39f5330312ec00e2e58e4caa74920636dd961c4ebf7df4466eec0e7fb0f3b8191a7822fd4379938ac37b11e940096756ff778aeb234d4a59ae01fd8d83a3a64c3f7f199596e90012e876866389b6d5da0737e3ed987bb8b480526e0e8ebefa0326badd9328f71972e1ddf6280e3ee99f31965415c94201b5266609240d39c0b61d02ae4fc533dcc1976da7d80f108a338d1f4ea6aef28986cb4a0d694c3dcff41a7822fd4379938ac37b11e940096756ff778aeb234d4a59ae01fd8d83a3a64c3f7f199596e90012e876866389b6d5da0737e3ed987bb8b480526e0e8ebefa03031060e555d3908a15606f9b9176a68b5f71de640d35569bafb394be4a1c56ce0afea80e76f8e7ff5aa7a328f3016fcc07ba05e67c505a216f77273bbc56176834af88f362cef095458c07ef5f5f968e39c804037ab9fe11684d57b5ab34fd551e04327b4407de7118ee0e11332dac8ef6a9c5bab918d5abeb6e55591420d5fa000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012bf752afac75a9f54029b54c99aff1a93e3fa618ab1ec7a6bbae26bb29344abf1f3639ae923b5c6b8921907701449098315d9723b3691bb2daa2cdca58f1061735ff7b934bf080286db6c61f790f27653366a9cead85404a1ea35190f5e23c2a01b2f701f82aa47cfc85102aaec5ebaeeb95b90b2d6e13e250249ffc13cc4c313ab763c24b094d5f6425b66485563145dd59408b7246b500884eaf1d6d810bf327ee5f0395e52aa9c9e4b590b07fa73f1d2aa6d7ec065815378496fae38002b0220bd3f9409e9b7efd466bcceeb8fb7bc164e5591cf6fd6f038cdfec67fb079e30e92135b6925b5ff8adceef68509d4add63e21c45667c1ae44893618a88ca050abb395a6b46db90b7fd19b2d8175d1cbb5b8865bf24cbc4b99057311ec86bd62fcf37ee80cd07610c3af5c983dedefd68d4d320a65319a2ded83d70e365c12c09bf8aa35fa3d194eb99905d53c154d8177952617abd71941622b395786bcbe8292e4a364ff9a67067edb4b0d1cd645ea80c04eb43c4df9a061800d84f091a82135fe525a21ac5eedbd6457898729ccfde770c7a1a3fe004fa6cd0515b48a5d816e849559dd4c52c485419362c3f8cdcee79d679058494fb8fbcf819a0c6b74e169c1f5654bb54a7e01fd8a6dc62040e3b81eef2905716df3d8a32fe617c06ff2667ead2d7ffeeb66127c65168ddaa91aedf589401526dff16adc2156d6c5af9168cbe656a0c0912432586ef57172af0cda89e69957d4a56cda0774f9a43581333555d99ff8d640f66317ddf6d72ef133c2ef6374d80646ab469452f1a3883d421fc59f579c2152703316a0f09f0432f19703fd1fef84d956a50d7979509d37436bd082c460b4cdd54990e6992f1d30fbe3f24a98b979f315c5d455ec859edff193585749de58adf39c37d39d5cd4d00e8203327c917de78f0edf8dc5a4d2615034194115b5525b189b9b459669dbdf286f09f001cd84f5950b06694c843bb9815b0f4bdad93db1fe1f16a8df9dc65d0a6a2b12e6ee158d6774afaaf4775ef032b4cdd35c795127416f4e1af46da72bb8657d79f85c6b66a9eee6b014e84ddbe12f2b59289c302934f6a00c1b44c604d570e664b6b3ca8e4202b1a22631d4f093a47917138a6d6c5bcbd9bc404b6c675ab38bdfabb3a937996e176c9f6992d083b5e1be48e6636745405cff5bd3ad82e2c3a0da74b37ba35a821709025345105320a1a74f763267a0ee5dc9f344dcb678eeb10e32eb0922e1f142647d519f6402ba0f201cbef7d65c57faf06f65c6700b3e224180c1bd82c80cdbdcdb1b344fc386119381f88b8c3524fca2bde418d9480234327ee7b8c0d2d10e9f6ea10525e2d75d5ba8d8de6070f2ff08bdbb4de02f0f2ff15d7f2d5393e5efa5d2b4993ed159a374f3b0a691a503ed78e2124647b9dfe7002bc5792f4af7861983bb3aacb241cc1db36094e525008f90b0708593665daa95e22b5a298d52b9f21c8ed38d51e8e3f0dd7448dbcd03664c25f92c7590e83cfd20b3978cbdffd0b54f06dd6d813321810254eee59c3a87bd741696ea2db2056d6b8402daf256a1265c4beb0ca188afa81778bedeffe352aadcdb3ec8c63433ecc72d3f814430074d2d573a11007c7033c7d4953279ff14aec2d831efcd9a203c9a040e438737343917998f97417e4abba0391041b5714355d333c452dede058e406a3216bd69fbe336a8ba0bb2591a2b76b32e950476f70af8bf40cd6fb4ce43df4a3a137acea98c5b732757202dd0ebb807806a28a05637a2ffa90c4a078590f56bbb709ef1cfe473db5767427dc95cf5c60ac431c97bf01c98c3b42272f462086483956c4b30bf43c101b500817e6ca68f00e2a8add93e3d4fe87a42d65575949bfbaa1f1ded04b1df569dd3e41790c32fe9aa9870b9bfb147b401dd6acce11466da5f6766bcc17744f455f353d3909759dff4674442319dc3f4e834d332c6dbf9a0f8371fd700a3482048515c0cacd236190bcd51ab3005d797996040b139ea4247d1babd7310eedcc0ef5226e76dd422a369d445dbce7444b275bf0eb988b62a7b4c94a3ecd40739b590838d57f4d8bbba607eec07df9f0661237bc1590a83c8ba27fdac542c5acfe066320ef9269e0789bb393b591fa5f6390a5bedf8d5bd4c11699b3087fcb2ab02b8e010aaaa98e12d6b17dd13c44dc36dd33ab4acdf8a4d64eb3d598bc5ff4dd6cf531f045551687bdd63a0d42549c29e838db3acad997c11078746507bc7685575e3c10a0708141d6f1d8fbd1cbbb5cb256ee4eeddae80d4551f2d19dd7d0ea978403ef5f8f7ebe290e27042e3444a34da933f7ab21213fb3c9a65b93152f15687d2c532232864932b93ceb18faa8cf7bb21e704156630e762b596351831494f59013acddcd79b6cd46c314e7055730844e03d657a5a63e82f03fc9df69eb6b0a711d9faafc9f6dfd9e30977ce54c0d6a7a315d7bbbd3616385f36904c866e8cbcd2260550360920261cf68831ab3f29585f0e91d4035eb9595a5c42c2499173434141e56ef1d25f416f2f5707a7c431462b24638b30e4cff668eb2b610028bfaff2be1a910e2da0be90d0a8f8583bceb9d70006048fafff9b50a7a7adcfd7405023c10a0708141d6f1d8fbd1cbbb5cb256ee4eeddae80d4551f2d19dd7d0ea978403ef5f8f7ebe290e27042e3444a34da933f7ab21213fb3c9a65b93152f15687d2c532232864932b93ceb18faa8cf7bb21e704156630e762b596351831494f59013acddcd79b6cd46c314e7055730844e03d657a5a63e82f03fc9df69eb6b0a711d9faafc9f6dfd9e30977ce54c0d6a7a315d7bbbd3616385f36904c866e8cbcd2260550360920261cf68831ab3f29585f0e91d4035eb9595a5c42c2499173434141e56ef1d25f416f2f5707a7c431462b24638b30e4cff668eb2b610028bfaff2be1a910e2da0be90d0a8f8583bceb9d70006048fafff9b50a7a7adcfd740502047780b393c9324d25d3cf2c8399bf9cb8b67dbfc80f7d2ddb11c11af25663f7235b5f0d6a17565734c6c297adb20db96542cc678885f50ad8c48986405d7d6b0c42ba95e57d85e81e62e43ece358248321ec92aa5f4b75b78640b9689961a6a1d8394ba2e4adcaeaef721748559b459a82e03b51fc3c9ede424d047bd7ed5f205682e66e4d4e3e110c77a8c8a99157e458083d2f44607ed61b3bf227eb3af883e7a7fdb477f2bb4f0f6ccead36e55ba20681c3394e062d6b2ed3399304d47471922e5d1fb020394dd2821c25180dc3e3321bdd10d90c028078e97f6955f6c6b10edae3c951891c5011736df837e492ef59109a2da0b80319adbfc445cc8503f3c2685010205e5af841b2ae776f910330df776943e8f859246497892d002922139146f4fed7028268d1a97e4d9bfe1e58be6946724960155214c2d9c9df415892a588b156ad5d323f5acee3df494c159aa7dcdca0aa3871c49e07bebd1558c2e2a170946a91eae03366ce1fdbccffd7ddfa71046487966c1dc20b5aca27f01cc2f45c4b686b947cabbc94c94ae30be1b377152119b48c49245b7643b841381a13f210c38679dccfa1c421bf3ccf43ded371c61db6a50333e7571080c0223aca62a588b156ad5d323f5acee3df494c159aa7dcdca0aa3871c49e07bebd1558c2e2a170946a91eae03366ce1fdbccffd7ddfa71046487966c1dc20b5aca27f01cc13cac49b8404196a97d8f2064db041f2cf7b8492ac52b9ce9cb1fe683c7faa321b7f020f56b6b753d1983b5737bb0ba95256daaf17a53031f238b6ce2f62315836d9dd61f68818922d5e20566b3a887293f884a502f0da0daadc70319884f6df31283748b12b4f460adaea53fc7e63b6a4ddd017d7f12d44ccb156b9068ef07e0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000123d15c6cf5b2ff04ca2ebc36660a421c4d92b1abd7d5786caa8bfb28bb9b2920388e1fbf4805edc57dc63f35c682bb1916094b2842f7a9003d3616e18ac02b292f07b4e23387df66b986935f0b24df080618476cef9231a3812acaa7a1eed3e32e3c8a3728e804a8596b26db79fc5ff2b0c4d7f09d5a0456ad512c15d32af5af021f10602d06a5d2ccc8f5eb851cca89610e212ab1e6273448bf7af59b6e600d0a8f3373719ab70c49c71651ba0c61f10e528ac82844d09bccbba7d42b92d52824a754ec74f12909c1ca21a244adc53d06d7f299c3f53704ba1bf8873f271e851f3b84cf6b1eb90794a81abbe03653dbc739f8cc3a0c0bffcd4cad09575245012ba5a144a6ec5ae95aaa978f571997a5adbe8c116ef6485af400e3be03574143230e2656a122d50260f34bca674e582e30832a1a5ac109768943c6ca27e0c8a732e32ea4d6501911cc5b91516ef74308e5f04b664d6f7c48b3a1d3896c828fad3c1e2844c61b9cc3d48a73362ebdf6953b744a8b840436d5be2a106411438ff20bf209d5a28445cdee48be58752ab4b99484336ccac3101b3c9e8daa316fcde91e3d47e5f5f6609967d11cdc2ef8a75aa1fc5c7b3cdae16143d5cbc8f1b691400733bb7562d493fc5eb962d73063e9acac3f8c0f8a89de8e1979e962d410418e079f5580d15ed97c1af81c262ee7969d4b12abb123c6fd451cee34132aa5da890cdb07b85959bdeb9b6cc70271b7a6b765072014eb30a6d697618182f3732290061951a3da2c4951efcb6ba2c8e0a3ddc0cd1d1dd2b5f3395e41d1c830a32035052842f9389305524975514bf80dd7e43ea8830d075944dca85171065bef945d329dffda50ab20e6a34452835b3df5ac781f5b0828ad4a30e4338a7f68d022c01d22c76911cc15c4e38585e3d2611d4e1549f704cd8d6f9fd64c40af5564c29424738ac1aae4a8515b18248b0474033f0b7e9299aeddcdf6c9816598cc9ae2183003779aa90b0fb3a2591ef61d490649ee9be71a586eccbb2be6d53573518bcb07812f05d371414bbd9ff918dd3c458f4d04e7bc813f3cbdcdb0ea3dcf5c69c13f8d7a4247c078b6df222330cdefd6e447d31d1f2f53d5101fbb45bdcf4c3ae21033136bf7c39f4bda3bbb091e34fbb068fc03414ae648ba3d1c723f08435f2215da41a35d5703bd7c3b08c06429eef68178530b00e4ecce67badd5243fc443736001c435587fab61bcf55e48367e9c9b39d37de91f86bc6e6542df43acd37471d36d046e6623ee15b6d8aa2e8f0f36fe1b69e40eb11ec126adf448848af15fe12afd6177394a62813c4efb57e6f25dbb8302a649d59254457ac8220a932965528f6c8daf13f95c605443b926e0dfea46b4c7c8f63c5926e0490c83a1ac4b6fb280753f6bfc58eac3ae787e8a7e67032d71a7e623994ca18539f479512de092409151033f76a0ae3a6686f46224971563a3d57a537cba3447293869e475470e73caa939543c41b21e9c4eaed8b6f52c54fe4fa7299ebfb37436761ed819cb7cf12813dbd81125b8cdfb4f808742cb5d4244d2ba7780d6333edf4cd34b00544e11a70d69b25a9e881b1bcbe7154cf78b23c52b153a24aeb6aa86f0d54ddea76e7259ba9767dc196db85838cba914042996b9427438988657ba1ae5f71044ebded1edff62292415f70c3f51d12671ec611b4f854e21a33ac7e45f097c9c797241634cd4e3decfd794d5a94c6a31e05c4ea1ca93481ed165e097b3cbe781a6435d5052d57b718a856056861cc260ab4917a233435f0e18670a878aedefe7e39595d21493255da7a05ee0a6638faf14a5482d80f02dc6ae8aa86defbd67400b87cc313d1cbae03799718874959aa9d075b736ad75e198c3f388c27804725874949151d8fc5c6137b7bd3141d689fb3467df58dcbfd814bfaa2749506a74c2ef5eace1c2b83ca1f8d1de8a795b4f0bb46a180e8b7b596771017535e93245071bd3c2622ea3ee0989cfcba1aab44d70830647a55c9c52822d10fe80d468161c3b92a8d3be0fde06478ec08da4c38c68384e1969a3aa3ae4c62209ae812e9120500cf571e41cd6e4ddb5ef02da34c0cd71646312dfcafb45fae9127273f0c7154f4cd9e2bf787c7f7ff5620a49aa3f12a605ef2e63a6eac85a32f94e874b467fb30ec0a3fedf7b594a1726560fd522498509660a15ef2c8055d5a3f0dd558d81e26b1e3298c53383d788b671306a0b4de920c9007e4b1b920b4512b08fe8f2e47a0e4fe01b938c18aafe9f5a5f8c82f74aec414c547645d28ad43ba56624d06ca0357563e46c73e7550160a5a0737d08b513beb5cff349ee09fb56142cae3e635fca8ab089e1bc7b56f91cc3ddbe8ed4769d467da64f5d1cb6252a3afeb8121f210b4ae3761e4384a906e33c2241712b8962b9847e1a32a3deaa677e941afcb0def4b532b168ae68b2dd8fd354b8ca26511260743f8cd18f8eb9d326f9985a9ba53876614e9751974d22702cab4735d9aeed9f8de4dcbe310615be92993ab4345ac789b1770b680b7e53cf20a79bf2bf955be23ed083688c0b326a962780989a3a1a4fb288f497f481ac30df58640d406aa41dc353e62734899d27236b527635c5e5b0601b938c18aafe9f5a5f8c82f74aec414c547645d28ad43ba56624d06ca0357563e46c73e7550160a5a0737d08b513beb5cff349ee09fb56142cae3e635fca8ab089e1bc7b56f91cc3ddbe8ed4769d467da64f5d1cb6252a3afeb8121f210b4ae3761e4384a906e33c2241712b8962b9847e1a32a3deaa677e941afcb0def4b532b168ae68b2dd8fd354b8ca26511260743f8cd18f8eb9d326f9985a9ba53876614e9751974d22702cab4735d9aeed9f8de4dcbe310615be92993ab4345ac789b1770b680b7e53cf20a79bf2bf955be23ed083688c0b326a962780989a3a1a4fb288f497f481ac30df58640d406aa41dc353e62734899d27236b527635c5e5b061709b395ecdd7145b01f3db15cfa8cf1b8327eec8beea5431732cb0848e630a222fcff711ca6bb32171257895548f0d889e96121e743e2acc701e0bb637c5d8c0da9914a1efea3e5e652d1bebf32fb2c4a8339fdf7e114fbb9026c3948d1e57b2c9c5447ae1258463f3aab447a9f9906b7afbc722f2eeaa83dc7e2d2b05d155533a4ffe89edcd0f48aad7d03e65501a41b7d74f235434cbff622390271badfbd2f471ecd1901253cbe48eaa120449f9234db7f1c3147cc3c8e3fb3d6972ce325342607414525f0f244575c06b9051fe8d87579b36878d034c5195e9fabd1e4480b851e031aa982bf54cacf7a607f2848d70c572722c46bc9dae7622a49d99f510135ab3b28af7ffa8a647da0600d1571c58671cfae1a084b8a512712f1d0d7b403c7fe1b372dad396937bed633bfae834ed80fe183ca0ee02804e6e1799e906b0019ce44ee0e9fff8b885fcd5d566c7425cb3426a3d780b0f6316dec3ed1674f05a5ffd799ee791a1e19fa91d9a54e8af417e367cbc1eb54fac42ca68a228c091b4cbb1ff423ead4698df08fe3d277e21f90e011857d3edcc8f7f9ab6e47e9e53066ac473546ec87a9b2fd323017762102f41463fc2724e22d909e4bec268d220019ce44ee0e9fff8b885fcd5d566c7425cb3426a3d780b0f6316dec3ed1674f05a5ffd799ee791a1e19fa91d9a54e8af417e367cbc1eb54fac42ca68a228c0933433d04e39ffc58fceb24afe797a46d21befe26c689749b8a1e717957e9d44729a42d5b33a5fbc474dd296aefa8dc2f5ad052f4ef2e4e18a22584d2d91aa07c117c9622de397e962557565f70fd345458ee8e39b33b9558b12367e5fa9f69d229046ee0f0dcb6363aed4e6af29471baa8493b25a6797fd821a59b4dc988e94d000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010ae5e1c31e3dea274a29f365cca89ce2cd8bbd59bb260ba0f948aa29ff615de8069aab16392e5f2f8c08e45422d50e9d48917c11c8d8ce2c2d3aa9f162df05310adaff094fac946f669d95068093c208633b3124d48da57a6238ecb981746d5f36d12cc17bc9533e17f684d120cb3e383e5504d9b896cf03cb01174fa66600de3d924c250f4c16f3b19317066901d92b76fc502fe1125197ffb5471608269b17368c11cf2334db393e8e633775bbd875a57a0c5f6cf0b22642a6bc7252190c8031cd7bf65d4262177fe45c4de58637b74ffee0eb212fdc7b56cb769066f246cc28e468a10e833c2d8cb63e443f4f846b8124a364c9e4c1751c151144e5215b8821326b8a7d28b37ce3f638bcfa59520f1d35935e5f683f8f1217ed58662c1c911c308994507343633f4cc67ae61c0f1bec66bf00bd02d253bb5b42d75f999f971646c10c99e4127b72622e3fbc32bdd7fc14e16abe028853f2e3fc94cf179b470ef11dd5ca1f95a9a5b648659b735f9afa7b06005a84e2b4cb52de33c4669df82b11d0a4b23ac3756b32e30889a48d45b27d68b02185ac8ab1d6749dd971c5173edb3df744e691ce8e8876dcf4e21624841e9ca370ccb96c3125854bc4b78b87296e0c67897e1df68f892ce505cbdb1389af652e99aaea6585d36d015199ce4916c7e52ca9325d01b26c44540036bfce646ae3a33784cb916736a2b642ac4da30b4b242abad0dec7bbfbedafa2c5b8fade5ce3c7e0b0e06a935c7337fe92afb61602582187bd0c7c3fad239abe99d557023daa916686ed8580e0416eb5c5d3ec3fc1197c0a3435980e96bd5f9d8b7ba224a0d06c72184ab9d4daf44c58ebba7507244c1bcc43209309c939e927767d3bff5e7e9b589c63b2fd45317aa35ed89528f804a08fb995ebca098cfab33d2c5172d49035583faeeafacfaf9e4c6161bb25d77f434ae9abc454d952c7da5d1bac94ff7d2199a0e70e33dea3d36517b183362a936554ae8fe2683c8f577355c49e02e036913874ab5617804d0b1e63c22b04dab80764641fc85a0a6347bf3a388233be588ad7b91dd24c63e9f6f4d018aa2560d9e7e8e42415919f43645523e8ab27c86ad5a4410200b4d5de6fc0dc44861afeab13008b489c6f407442ec429c02f4fc7b5182ae971bf77d18b184387095290f0606da7a22ed047b8e059de1a1eb120b2733674bb3aa681af5d52dfe8002147f3ff91b05cf8c6b73537d4b1667c161382574aa1e80d3ae160395e9cb6b670e89f91b4fd15a16148130fd6f85c9edef4bc5638fe0ffb941e9a7b850cadacd3ffa6a48a632ef7a70900eb47993be7702476e2e79205f6ae6deea62674376360d476d9833391f4c4eb118aac84cf64b2f49a9415cf9001d5a6c8db1b17222c50b8862e5eb9c20927e091b946f34a952c45742c2d19feba81bacef58532261301f68f86c17222cda220331598e7b4a911ae910b1bb2e24024e6e2f70bfc25d6a286689730d2d647e2bba1d0b59c3f9abd7028181305efb773b02e179d75997a320b94e4040d20185d01a26333376817aec6fda273ba1a567d3d91cc53cc160220beac6b9bf419fa6644d45bca878aa700b75a3bd627097a5f0b7e6024e3af9e8398ffc5fc6a4e8acf5b20d0442def277ec636ee6b028ff937e3cd3df06c614483004dddc20cfaddc947cf882f225a4ee38e31fd3458da0c64d6cab8366ad44d42602a83b4f524cd22d1838be5f4c04f432bdf24e6776f8d6b6e99b5e87df0547180e575a42acb0c05fdae10967e50e5e5a1d9c75b24d420d813d09d21450bbc60de661a6bbe9e6268e2d10ada8e936ee69599d6d76f603cbb72544304c83f1463ad0249f703f7085cbc2e7ab07769bdb249f9842ab0c3f4ceeb224660c52525f1bbad9d57bbec1599b15c5afcff483416d05824686767a019724e21dcebd109f175fbc686d7b2a1daa67fe6848c0210d9d4a629f3a15563a0f7fb42a9533a3df21cd5fa300c90bb6cdb0d6c674905362432a926a21c8d13e909199250e44597c27b76197c871e9ae703af8564d225b84375e8aac8fbb32a29f6a69c79925b03d1c9496bb275d11a3c27737306f29c03d47248a70949f92f5229efe1b8d75a52f003835714b2db7e3864465028c9423e0841a6ee2810a8b810661d5d7df7b454521768e062a8d9855e731be74e274786401332dc9a3832cd4ab963526da7038c0328a7c5bd1f99b0b397b24d4ff43f41043e1f272afd4b9de928a5c23039a4a3e07fc67f0d2530e47f91f36ded523f7e7013069392919e4978abc6e0f780c038c3803980f2dacf1b806e0c9212adc081921162fc2e03314840e70c2dd87f3fc7527ee07b41b9f4767dd9c125a29b3d78305f20e1dcd8176f5b5ae264d583c11bc1811f84be460b8982263eda5d64c287d1c548ade3bcb8225e37f0a9fa7c3ee4507a626848a1c6507540c5bc2d083358eb6e67ba0e7a06779c0df2cbbb92c58a93859d97b75e39af8abf3a43d2f7cca716b601d5b21ac91a1d84e043146d3a758263ec096b28df924a43dcace12900bc992806a2486220560c45bdfaa9dddbb4d19c13f694d7206db5bc23531ed6ff4368fc62ed7832af3bad4d15142622244b407fc67f0d2530e47f91f36ded523f7e7013069392919e4978abc6e0f780c038c3803980f2dacf1b806e0c9212adc081921162fc2e03314840e70c2dd87f3fc7527ee07b41b9f4767dd9c125a29b3d78305f20e1dcd8176f5b5ae264d583c11bc1811f84be460b8982263eda5d64c287d1c548ade3bcb8225e37f0a9fa7c3ee4507a626848a1c6507540c5bc2d083358eb6e67ba0e7a06779c0df2cbbb92c58a93859d97b75e39af8abf3a43d2f7cca716b601d5b21ac91a1d84e043146d3a758263ec096b28df924a43dcace12900bc992806a2486220560c45bdfaa9dddbb4d19c13f694d7206db5bc23531ed6ff4368fc62ed7832af3bad4d15142622244b4022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe3c5e0dfc420c69b8c9b3968ca82c303773d9405e4373769d106110b3c354aee60eeb52736737c5c7a697ae19115a5291fec04fecfee0f22623b96d927f9cf3ad15d27a9825d93d77f0a3aaa1ff2d82aeb30fcd210bcbefd00fb4ee4c9e8c4a14149d5bca08406f150526211d7557f9140e65bf051012d9af0cde2aa0009749ff09e437dc891ec8fdf70cfd0004032c519b5a4699efb5e4a68d1195507485747000de7ccfe8e196534955e0d75660c2d1b84bb8d42768604310e8bbf10258cf2b2b7daf5260c290bfd4966a6aab0043b18e76968a2f8279204734ed0f5f0b1f0a1abd3511536821dc461c7d674732bae6dda3b9d00728c5266be63961803211440d7914e1c1355fa9500415a876acc5b20a15107097e0c89d34b30f8c4c5460fa320cefc0dc269bb058d5e493e469e5640d49f43f9be85882f708dcf119c48e982b7daf5260c290bfd4966a6aab0043b18e76968a2f8279204734ed0f5f0b1f0a1abd3511536821dc461c7d674732bae6dda3b9d00728c5266be63961803211440a95bdee31c777d68838a75272997eb832f4a11c14d012c3820d499b616f85f40811d7197ba6f42d9e57094d812fc94cfaa98e5d8b21ba31da637c1f31d634d6000b071bfcdb0198dea869c46d8559903303c03a59a41b588d87f84c507121743d93101115f0e7276d99796959ebfdddb8bcf3468415a5d9e86ee272ae0b8c63000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011187cae737f998539f30593e5acde66ef4c1d24cef7b2032586af6c5c406a62a095b8a4d83a371cd6036a24928fb6d0cd2e1f2ba1cac5922bbcb513f51ce6e932dd9e1381fcac849c1a9cd8eac65b737e7463ba1a9f22222894b819adb9de45231e8fbbaf938b796fb94b868b48e790d4baf62c02a5e0dfcf778c2e85f28fadf05c1a79f8ce1e67ab2c848f64ce3cecd4d047babef789d26ada2de8913271beb283f82c661dcce390764c790158df425ee3c589a56298099d03a0ac9f3632ba129d5184726f5949e9b65ef035114c69df656cf39a2241e3f8c3bc7d2e39f7d8d18734ba2ca28bb039009934e2a2dceb6c2e1e7a0c6488876aca08a956612f1d1371d31141b9073aa64cdb646dd8bb1c23309e83a9fc334158149dc3e45ca85cb0cba322ba5e5b3b10d24ce32e7e7540b3f9e4f014456e291e017fc8132bf833d04731e1bf98283979aa28d72549bd3b4dcb26e560a9e0fcf0bceb0817f4d27780d658665bf2403a7947a2519e2525cf831f2a4192cacc9047ff2fcddf90b3db4356c047e3ad711f3e677b9cb6a92bddc0b6182d57566d8bafeaa184d74294da60a9bfb7615778a5414515613d5d8c1b4ae1d8041bf91f4a392083a31fcef75f51890f2f58adf42d757c651dc4e34b781a2ec66092e50d6725d616e112d40da5f3d5d88b421a09124d9003da502301098510e0ea9a0f3bc0db95d07a43dd42ff6012e64393a282adc344fc26e147962a119d67877bb56ba6d82f9de7904636331099863db30584eacb0c3366c812df6d48b70283cd4cd796791049699cf35780e024eabb1cc11d43a61af302880539465df41598cedb599bc8a2edbbf31712f79213f9c333c8b8cd0e54f3c5b67f072cc58c651afffc2e21c43e92bd60290cc8f3b377888fdb1b4d45e00a3a8426fe8ad2bf43a9ac0c77011db704125e0319c3e253a9fe5cfd5669a2da33cf222e3e9be45cde11f17d2f51a6b2893a97edba8e6053e9767d26222fc3b64e4c933e6c3740cfe57fa3a16c81abcaa3881577fd2962fc54bec30dc58db192f101acc32af3f65ab92c02c8692cc1bb81d9e937bb1f4143d6ddf67ee2119c60c9e8d201548418491f4996f9d665a599d13d8cdb61fe32cacd74a6de20cf1c71ed2d9e2ebdd3b2bf7c27b2357ac3deeed12add8f90e1e315db79f66f9985bea1b50e504ae6a9741bc0b0ee077d51f2271cbe1779e3b55144c081913205b308e8909e0a20eb0a34038d832e099c5d1e7588b31c9915f682c4d3519ed8d7f6a91a28cd3c427d6f348ed173660f1d773db2318da37bbefd41aed0f56248bf001e0c9efe0900b1d6db61be347af65774bebb41c2fdc2f9a4419cb161976024efe12620d861c902a4afa08ed3663ceb6506701cd483a0278362c37b9197c296c3f546d60a4a4613f365fa7d3f71b00e2173f28fb946868e5f0287c7af994c1f323f05840eb742e20ef1f32d345eb20d9914218e08d8cda7c2227694bf2e5f6edfe204272ffefa047b9eb5db372585a88323bdae8520082973811b2c76287017ce6167d5e1862f4238d32fd3d1546178d5a64fecd0e89db399a0516faf1b213f6b3295ab7794fd5f35b9fa1a8665fa8132b6494bdf82296de7e017a6a63213cba0645b282a1f23a11abfc64f73542f44f01b1267f42d12d0c4e0918c2f2e87ba316c72afc860a710d5c1fb9ac7c23daf290ba4a292d41b9e6b609e4bbc928301e13efd6d26e9848372660cbf770d82516c92dcb60688516d62e33e5d6e7db7abf1c4d62af207eb0667427455cd1bbaa0c456fbc7e8b59796ca33352f87136a46a8904335ac5eeb00afd8920ca1c6ccaaae5fdb495d544dc367b028fa990c5223caa07244e8e1f1e025dad839bae254af8e876ceb8bd25f5eb4a07c89da41521f0e610edd92f9596f89305f6956871d2e8afed6722962f653deb29f905821f66f88dec805744d2e8669dd5f92bdb6bfa05c1ca3eebcaf849f3123305642148d1385e70b7b7a20183556e116aee1cfe0bff484f14539ca1a1b758345ae2cc69f21c2197f3bc3066ff9d5156bcc816f16b1b26574e6dda243edff31540a833720b1f11d8ab5c534bc63d2d61911ea7b37c6bdb42b2adc22658bbcf26ff053d1851358b19cedc1243f5830f5e8c69f69aa54b1d22918264406a47482c61f1fcc36b4446d66210f261dc1c77569642319745036c87bd21e613660fff2c59e0993fa5d871d0b507ff97fbe2b9994482cb4d3d7739cd767559395751f40a3c6892c6708b8cc90155c7c0c8ec5cc902a5371b9647667e34fc70bac3ed0c35c3976d398f747336feaa383f3713a35943f3c4edb6b1b51af8347c453c12f5332e0adde032b9bfed06ace6c3ec9dcfed0d3a1389ef65007708ee33a5d3a13c0cd1f5221fcd464012f953193c13623035395ee87f5d941b222442b95a2c5ec53fe6365560fda0bfa1216081d39f150f3a6e576d95c60daf87a5143b3d2226290019c9aa9f025f405ede9f7e2c60eaf0e7d8418e7386eb6c11881cb1c2ddd9d83f7f0faae4f423be25a6e289221b694b9b0d5133c7aa5fff4184a17431aabec90080f0551b0bdc41da591d76dde496b4873947c841a2991c57a88f78ce5541380a3c6892c6708b8cc90155c7c0c8ec5cc902a5371b9647667e34fc70bac3ed0c35c3976d398f747336feaa383f3713a35943f3c4edb6b1b51af8347c453c12f5332e0adde032b9bfed06ace6c3ec9dcfed0d3a1389ef65007708ee33a5d3a13c0cd1f5221fcd464012f953193c13623035395ee87f5d941b222442b95a2c5ec53fe6365560fda0bfa1216081d39f150f3a6e576d95c60daf87a5143b3d2226290019c9aa9f025f405ede9f7e2c60eaf0e7d8418e7386eb6c11881cb1c2ddd9d83f7f0faae4f423be25a6e289221b694b9b0d5133c7aa5fff4184a17431aabec90080f0551b0bdc41da591d76dde496b4873947c841a2991c57a88f78ce554138004c37cf170d22355a2c252313a00e318136f39a3ea0096dd1ef1c2bb8c26fb51b9d5a2a50c6d8a61acdf312b101a31352f3356636139aeb9593bce4d5ce209230724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f62e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd638709587a5684be366fed5b4d585796e7a7e5ccf560909712327421873ae33ae3cad42d00b1c85898c8734a7773fcde6e6af3362fc537e8d1fe577eb4c0800a32a1ac3d118f0c53456a73980df4807bea044cdd1d80f8a0ac83026c45229679b1e2dfe94e27245c14963a6ee4e6e50a81ef6143d149d890fa3d060d4fbcce9c8373208b0487abcc23f2dbc50176c88c08aa57f0078482afdc8ee361b7c5ae30736ce8f7204cdcd52921112439e0939cffed0e736b34ba50a088e2a713f722f8e09eed60eb0b4e5102fee7a5c01f3b6100e6901ffb577185772d79deb5fb23d9639e68bf42b1126718c2c16daf7d61a26c72192c1415bc802805c2c4eeff42ea20f418309f1eb8d78abf6e2c31b82e9716810100d98ab8d583533f597508b3c573645c13e931b1c4a88398c2a08869e8491351cda5c85f028ce1aa0a80ec8439b09eed60eb0b4e5102fee7a5c01f3b6100e6901ffb577185772d79deb5fb23d9639e68bf42b1126718c2c16daf7d61a26c72192c1415bc802805c2c4eeff42ea216df7a7d080a4d5fa8af5a4de365fc933464af4f2dd044899bfd96096321c93f355ed8523277b12299f0b41c0bc3ce0eac2f5a3a6cca7897cb72e55c27a04357022f7c2be1996e659f2ae0423bdcab2b92b1509920a153ec14ec52fdd998daf81974d93eb787e26a65c74a5f7852fca1a04793027ad5420efdbaa79e0308a4be000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012cfc686998578bbc528a235c52c048181cde6ace9a55dcec268b19fae840456226869c25d765527879214489c485eaef42179c8d7469c644ec9dd6439f2d420718dc79265b5739066bbb690679102e0085c43f67b897330c628f65baf21526032d150f8aa42c436c6a90017f61b36014aff57254c611425ca856f38765ee07bb2b45d38ac9a6c1590041cb90d855b9970f8e5f81ab33d29e4902bbf4a7cdc80821297efe786737c56ef993f48b7f504297820f0e21c5ebfe14f104382ab6a98232f22c0b25b3159bfc1cc30cfa76ebaa93d0592c12bf084b7da18d1e1470065a05d445d97cb51b408fdc03bed618eaefd7d8379f6e987d09544fb32a3921df812c19d3aeb3fbcb9b0b05fea444152104971ae47fe95830bc15423ac2463f3c6526a5771a8ee9b26d8b94da4944b1ed5654847d4dd0576b728efea09b691eff210e35ea2f656cec7512f90d0967ac0ff3aac489e3e5374715a2417a7dc1db10a43762c1ce759c54d86d0bf990212d78f68021fbf815cd77f579a8d15bb9f1d813102c162cc1162e7942a335b16772b8fcb0132fa81857e09c991f1a84261154ad005d4603e22b5bfe82383f467feb60b1827bfbf15e1ff07c5afc3f25ca80d7b81118ba62ddbf5ce048e9186ba13e371723e2d30d68a19ff1107d9c43b4c4a2f426555b40a8668c63285417d3183555c96818fa896bd0f7115b32ba5f5f868f4521d609bb525ecea1521ab1ae9b8a9cdb6bab59d3ab460b8282b710675bab3667386f098465baa1b61d83a8806c6269e32c9d835b2225c5220717b496350de2332d84beb41b03fd1724abb4ac73e0d1c8dc50624d4b5ba21ffd02e20a96d95d321839a61d0eaf91f3b255e1ddbabd5e157aed725e7b0619630d90b3a0648bdbc41e078b4944e7231c240465ba5b0ebd5cb481c7c3aadba779fdcbfd6bb2fb666829f5477867e3f6af1ec8b7dcd0bebf1a230d55fc7d303b0bac3985b4dec283cd2ea0764eac4b312dbedf5a267379d17ff19013a2d3531358ed25658d73bb55d837dfec4c1afa930d50528c1590678de5267fe7f0eb8d57279ba6a24b8f4c0d4c2d9e84e510c054d602a17a6cf18f1403eb70bbda0305077c822c0e4c58ccbe82272b00ab27b6ad753b56421448e301af675bee64b0d877030f6450626a42f13507db839bd685e01589f20f3dcf67377fa1460e9115e37899452f4bb96cac851a08cf61e9c6d40f857961f1d6e1cd81513868893f4edd98e860272b26ab503362203893f8f7d2d85338553ed9ecb29f2514b89a9f2c0fa4765e2452a5c08e0396231f8d35e479b1fd177e94a4a5ea667bcbf464d027ffd5dcf0be90ba465ff69b1a7fd610c4f0f5dda07e0023059e4f375804120f9bd980bc5013683a0c1255153cc237a38dec1b28f74273d5200ca46727c3a87462f08eaef869176d02d7901f1d31c5513ad5659a9e7cadd913d5a6c117d3c86760034c97b94ff0f9c4a2c797155b7390fef474d600d626deeb4eaacf4126b96ca0b44a482e55c6574987af6505d3c569cd7bc98f15eaea0ce424a7ce5abb118bbe4d85b1c152a0abffcca7c92848715b86ff72929afa2a7ca67830ae2cfebaf356ae88506925a0c415a95dd0227c08157561ee8c33546c3142c0322072a3af729b404c21e8603a89be067d7432b7378bc30a511d3ca39b6ce0a66510618474902a1034bccfa648563232e158185afc64ed1dd95f6880226df775e69e0665f692b363c718a1df688c31f6dd8b2a4de93e927dc9ce7336b5f272fe108ff2917a0d00c0404a00e6542e5f529e720b9c3cfcee7f98d97bf6affacae98a02e4ee4b59c2f5c8adbff644507aee32e92c129be989d05dfb8e950e7206b5efe2c2afd594e09599e38e825fe96346fab1389905e25922550316fa99c4245cfcb8e2c5675d3af81267d48e095c10fdb2761e416e25e40ab6e851d8ee4f1b198df30140f27bce278aaaaab4d4ee83437b43151751d142f3db5d11b783f8f91cf635f940861a07a1970a42e81d9fcbf90ff03a36e06307d60f0eaef3bcbdadc0f54e21b64a4114ad96e97f40aa0d3ef433672256ea0f9c6a0180001c8448c7b56c5f478211503185c4961794100749a6245d1fafc4d7088dfd060e248851a03cbf34e6adf5bbbc2462343b5ceed0b903ad4c03eb476001ca78d81ebd202a694a670417a81086aa85bb4fb958afa3529e570c0359e64c7590234c96e492bfcc161aef4a355556a6c7b13d79c1edaa723a75a00175af5850c48b5312811458ce6b91ca32d6cfe591513b4e62e362a21d6f8f153e8a50a7af3b74aced7eeba731946e35ef6fc91677fbbdcd3649ce4ae29070ec074c6cb993d6b89f5c8565bc0819d8f2fe320f7bd6962887ee70ed2a932dcb6938b393466c294760a37a9a43f7e6270d2414898032b6d093aabc43c26cd23498247e1f9fe3319b1cce9afcac28813cbef6fa4d6b30eecaa7a834a1d4dfe4f90d1b81e0601cce64e331650353d77ec3412b4c4b90d85e2e73f0f88f18201b06f436769e1f6ff807900906ef5cca862fba8e56511fe210030f16acc74e5f78dd3f098961e09007f86ff6f910a33579d04593f047dc273cf60c8280699ea08722c20175af5850c48b5312811458ce6b91ca32d6cfe591513b4e62e362a21d6f8f153e8a50a7af3b74aced7eeba731946e35ef6fc91677fbbdcd3649ce4ae29070ec074c6cb993d6b89f5c8565bc0819d8f2fe320f7bd6962887ee70ed2a932dcb6938b393466c294760a37a9a43f7e6270d2414898032b6d093aabc43c26cd23498247e1f9fe3319b1cce9afcac28813cbef6fa4d6b30eecaa7a834a1d4dfe4f90d1b81e0601cce64e331650353d77ec3412b4c4b90d85e2e73f0f88f18201b06f436769e1f6ff807900906ef5cca862fba8e56511fe210030f16acc74e5f78dd3f098961e09007f86ff6f910a33579d04593f047dc273cf60c8280699ea08722c2077596ab5d4f14c7435038a9742be3e6b737f77900011bd2975eecabf38cafdd2a541dc9aede8050ad6648812a33cfccec8163996bbfab69265fbcf2ef361c4e3ccafc6418112053d1c539dc198ca765b3a8d0cc38d47492143067a7a046f720305d9e4e7bb0cfb3b7ab6f2a16664d9d00ffe6e15a8f452fe648d4b20ee2b07931badafdbd1585cbb98145ff82a67b2f4b94bd1185102716f6439295fc619aea082c04067244a0b5097d8b2535880d4cabeea64b093c8e2fbe2f9efa66a6c0b31c6ee9a4ea8a1de768f02ab03dcb07adc00e8df3875dda40e7b43f757aa22b9d04876f1607ec1f21a67e209f6284fe4c7ccd257f0cb85ebbb023cd3dfa983334267ceff7a04b06a8d83d580e8df1512faded984c128ca45819e749ca9567c1af040e9a8bcd91fc37df3499f205924265fc241caf3d6bbfeefcecac04c976ac69088a6954a2b0eb38bcafc7568bd41c195159aec6025222744eec5f8f4c73502425abe23651217faf5299b77ed5cc30333e56dba19fe08bf95918c03550c9e3b43bbf6cf08a9fcae4eaea8d7a724774b3d9ac69b2d9c461d286cb0d866c2c5906254e43e7d570affb9aee4854bf65e296570be77d4c4b019e25b1d03501e7333c088a6954a2b0eb38bcafc7568bd41c195159aec6025222744eec5f8f4c73502425abe23651217faf5299b77ed5cc30333e56dba19fe08bf95918c03550c9e3b40ab3dd7cfd2e7576040fe118cb024201e5fb0fdc73ba943e4683ceb37811baec2a3ee9812f3090437e31217f6865778fb5a98e584059fc534b6617f334ebb60031e264877c5e553862612e00351893f16315253663be2277ae09f2777a152fcd33620fb263f4112a3adaff0bc34a2080c2dcdad222c0f81619573ca3ac4c8d78000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013015666894c1d9cfe843453239b3192cb9cf52d8eb6d810b74517d714e9c5d8b3ddbcccf08506395890fc291621447b4d251bc851ff40f22b2a7cef285664d11071733132b294ce190eaaabfee699fc76f889a04c9126b704f55f1bc2eaf87b826689d94a6b067327f7af982e551ef168529a981d555cff9ffa600b74ebfaeaa19537e5dfa8afb86ee07669e2fed3e22c5e9137d513b332147a5e83e0ef3880a0157d5ca16a2e1b6bbf476ac3836c698c47e9fe81b8d779c738d32442654f16824bb3bfaf540dadc6421ca1aa021d442563e71aa168bccc057b7a29b851714e509a3114909bc30cd7911e26d9e5f0eaf7561bebad8fa22b58470a308eabdf98e3801ce569ec9abf5f36abf19e0f4d880ac96772612d0f1dfeedb9c699d5a983f3dfa9dc92bd13ae8bf737304bbbb821256941a50aa8a9e68b1de7a11850e4bfd317d8cf65603bf719eac5f848e6321d382ac5ca2d8a14e831be9911890b8d2fc193519326d8ede26f34e629137a08a81a15d1eb1d860351b3c0cd3883229bd4e1dc1887aab7b583e5f7c44094adaec67e1232dd59a1b27eaa6c170c1447de0c230c9937ab02426c72e179e549a7e14a3bab61f0e4d13f5555a5d1f5a591f52be0bc37314394ae9e9fc116bb10ca802c0d7ac854e92eae10665961305d26750ed12884a47e2ac54c5ff64e1e95715b85dc8965c79ecfe2c95a1700812abd806c7067c9a619c51c58d80d36732fd0e02a5e5276f97bbed0ced62620fe311498510344887cf9a898a48aface7dfd47588d71600175ee33bad4ebe342246edfb10a00e6a796fcb4a819c7c1d113dbbdabb7151a11cb36e27aa435be10e1a516e16eb16c2f3546e7c8655974558aaa53d4ff57f6796e7343cff8a392b462a62385e633d7a979dbca2f10c98855a7812a550059a2effd47c26e4bc647e6461b98d17ab12a277897f0580106c49918b6488f01735fdf665a9316857573c1046fe3199c8353417c0b431fd0932a45b97d42b9f37477bc6503557adaee51e6d17ae25b36a0c232bc31eaf49c1f81f6369fbc25ad18c33408ddca44f950fd2e74dc92a71ae33a3c8b6c7601983861a08f5581a00166f35a54e69e61cbe030899031c71b14335190bb0f2f42f014b5bd5e1e587b12f11c7cd34c49d155bdd58698308240708037ec7971f9f42edaca514da6601b6454d61bcdf7cf2a6a132bdfb1a7bb79b662b650080d58f6b8dddd97505d798cf9f4ad431ad3071ac250e8893964a4a5a310c8b87cb9bb6e57d96a89e935f555419bcc96081091deb96eb86e8c4aeefa2472ac1eb581833d45adeb43a5157a94a2798a6cc03cad11e5fd5c54da420f17b6c1e42a80e4318d4422d28c9f2060c4b0d28db0fca6cda45fe512062d61cd82d5b3b030d9cdc4ded4dec65e0a5109ff0c037f06446a1cbda34e53b68ea0898312100f3c5967c2ed24699e7408c46ae8830c230d3ef0ec5564fbfaaa08b3776e16414a510ebe0d6f14c4400c78df80ac5b77e512cee17bff1867b7b1496ac353f2e188340141bac339e927add21ad0047dce5ce358d535f6193143672860832b05429b39455f8067bc3f29db16f7db37a0919b0d62453de8483c1c211be4f8969b101807babc44558ef0505cc6dfa195d0a94040fd547e2a3a2eb823baf40b91ef53899f7dec19c6e0f91dea30809b6e071ee09cd0051d034c1ebac19e75f066a230c207f07e033cdbeaf936755d6e29838ed3873f98299dd719ad0ca8b9ae4c3821a6be887813cd79191b350a93870aff261f9878cea556f6014ebfdc515d161a008f92374651e045728c12b67da8f32bf2fdbde7d695848397e35944033a18702372c1bda5fcc2e984272d89bf9ca398dc1a0bfd773e6715be55c1fc3703c1d5d3bc81846cf6d937eb9a34eb55413e8880407fd07650f9d4d1f964aff44ee7d8831537579566b5a8758144763441f109be380e07dfadcf7cb22191f690ec1fbb62015ad33039890175e6dd07ed40e7b04f762d7525f1c2896600f89c4258547a22fe8fa2067cc42e4cd6bf053c8947503adb634087febcfb54049a3229e5e07e61574e70b320788ecfc70b38ceff31a9fb57d7bf2edd615eef552286cc602f1a632550aac48fd4bdf39391ff9cf4db59d211d7e7c2e2bfb62aba4bd99b034976019a0986157b9d6801e169b9282d742e74f0a643b2e48ed3e20b75e25c4cfcc7138d3be135f832740898600d1cdf12d7e1877ff32e4b9382dc7777499a24d7c5b11e1bb53348f5c861f5584405a79ecff3b80f28d8e1ea9b0b74450a59280f4c62e1e44accb70a379e0aa7bbfa5861300e6c5a66e7b2e4f6ae1e8e0476d7f0b3b1968a8a006ccce9e9cab9541c461a0fc073e23c7bd4c5757fb28624edc84c7dd2697575ff933316163546abe3b9e5f041b0875344c00a1c39e04ce9e237b38243f0b4b20220009190f59ea48d5e824ec01f019eaa930bb9c4e9cba9d4e97e75000f4b4dfddfff6e6f0a615b72a17db1420567f11601c3d7f4a90764fb16818b13b3877a0aa002d7d4cc1936c2d88b89b80961da528bfc59f245ae15e88f7848c04c7885f55ffd282b33e6c93d2774764a1b07b56e08d337c74d24f8e77087b7511e1bb53348f5c861f5584405a79ecff3b80f28d8e1ea9b0b74450a59280f4c62e1e44accb70a379e0aa7bbfa5861300e6c5a66e7b2e4f6ae1e8e0476d7f0b3b1968a8a006ccce9e9cab9541c461a0fc073e23c7bd4c5757fb28624edc84c7dd2697575ff933316163546abe3b9e5f041b0875344c00a1c39e04ce9e237b38243f0b4b20220009190f59ea48d5e824ec01f019eaa930bb9c4e9cba9d4e97e75000f4b4dfddfff6e6f0a615b72a17db1420567f11601c3d7f4a90764fb16818b13b3877a0aa002d7d4cc1936c2d88b89b80961da528bfc59f245ae15e88f7848c04c7885f55ffd282b33e6c93d2774764a1b07b56e08d337c74d24f8e77087b753c45ae4868a6aa3509ead71f15fb75699d7ae17f13dc248de26c8da6687adeda286fce36c7c6dcd354f645d87fd9dc5a5263fc02d1038a65afc7a75c3bff737607b0d5bcc9ec3b3519e1c387b96fd2b5b394f2a19894a21b9af910b00e9f70833756d5b8b269cb43b4e1645cd9b858f5a91fbb368bec1f0b8c14c58ce7233b72080bb0154dd19857ab16716a59b9c322965f949922d7ea62c13144b31785d4e8225672761d053a3b33c986f1cccebeed69b8b8e0a662584daee4a3ecf52a66cd1782f3648f5f97fab6cffd97e671a8e081a4c4eb09e44539e7576d632a1620152797257afe2f111cdb0e3bbebe59b5f3dc92ce3bff292a8b804d9d9d0af15abb18516e57d087ff20e8f083a084ec8dc7c764bbc55bdb0e98701f57dd92f3e79f3301ada54f979d50c4a4e51f1080b742c1cf5bd8daa4f471b8e3db019aaa496f1cb173dca6b5ffed68beb5a2b5be612609907a0ecb87a902de801bb536e9a8a3344023cdc6a1f7c6bb0dbdc296b5649aff30e50f19322488d79f8c47378e30ca3c097bfacd6d1a95dc3365593094b7e0f37d5dd766292b8db4f4c38388e5b0a620395c1085cf57e8f62855caa66dcab049097abeb5aa48c5f67df4f0dcdd511b1cb173dca6b5ffed68beb5a2b5be612609907a0ecb87a902de801bb536e9a8a3344023cdc6a1f7c6bb0dbdc296b5649aff30e50f19322488d79f8c47378e30ca021a6f771c408bd88a901dd721981f59a087cf85587cb14110ced3a83385ec632d0aa953aba7d168ce11c0e8db8dd1a1eb570c7e5f0f0e5002a7e04eb52f96e32b94d149f123c361dd0b7836d5606428b102dd67edc867ec0d3ddbd9fa27dfea21b966eeaf0a79183ebf2f7c5dac28acaff7c79e658b0710b4f098de02a728d600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001177c2cea326619f4b5da118b9c2469b93a7cba5219ec79c86a54845a1dbbab40121e67c9a6459d238274a1f927f42fef697f829c8f7c50b05bef2faffe9bc2a90b61823f546e46300bef9e85d1ce80ef57bfc4cd101e9d1a6f8ea5966a7b941f37de561294203fdf197e092935c197fc283bb2ce0947ec3219fb3e1cd0179d733b06df43e8ed9e9cdcfcfeaaa3488e7b27d76c228aa9347b359e48e92432e0001f14285d7a3c2d84ecc25e0849d1005f06ee6e68c89283b3819c3dc72d81b8ef05980131bb382999f85ef82c456a9a493129b64410e99d6c2cb1e9edeb1e0f5a0d0a3ee8327f78420167b7e141fd1f558ce75bc39920bb6ef32845a2dac9f0543ae0e423119f69f1133bfe73bb7e283b7fcbca3bbfa61655044eb065d4d2c666259947cd5802d28cd389ec8c061850de0e072009c5a0ea82e8874e8b100459d4286ef451a6f4e32c9f02bb73c42e846f74cbaf3955d628bcd9537c08bf38dabe30e54d791eb4a82049dbf9f6d538e3aee14f6f36dd9fcce0801501587f3c05fd30a0f16d50a641a223a94837e87a3063ef43af36273ff0395269d90823ca98d73e2c351af5044658f8d87244ffe55aabbbfb81a5327a6ad53e98ac57144e45350c44773cbf6cb1fe9a637476387f9235ef5e83abcfabe6eb02922e2a33dfd49135b701890e25da70336a11698abf36ad6afe02b4786c9f6973e3f0352926d9fb3a03ea0db3cf7990d5e08ef836d8981e583a8a30edd817130e53179920fb38ef322bf498d1d292cff272381e9db2303ca789063f9552dac318d5b5689c4f8af308e27f55ae2c9a668dd6026601fe91eab20d2d9141ef83ee4d3db3eecce2e26002a130e16c6daad32669d0e75f1d02c7e9525e5f7561a7811a9f09b3955ac0e43bcebc3780d3079b05582c9d5bdc7f89a436cae9af3f88a86c2ed78b6bb6a7321760735befa039479de8ff56fdbd2e6b05ae6853ec9753be0c6e3d6764653262013a3854e60b6d90d43d424b2016395700678af234b7730e4e3a72390a7d372d151bd7203585fcf5807756463c2d36fa5b68c6234beb5b22b65ab937d92af6141a20d81676653bd037a774fcda9c6ef8cdba85143eb09accfe1d657551a1b4c522602b46d7ee185ed0c7a09faa4409f3e969bea4fbc643be44c791a4917e29282d9c0ce48c4b5520de0fceda1ee11e2e1c2fe8e8520df498e9574452dd5320d61c856a445d07b4da880618307be00d50ce10c4605b1a3c30e67a71ac5dfe01c31e4c6c6ac2ee012e40442c3a201e85cacd2f8549a2f5280703c38fe62de583961c6559a147209e0e21248299ae83a6e89de0b98eac6762bfccd69dd6e7bd309e1538464a933ed0c542e23e54b7f2641f768303d0be92e68198a0df83b9899f82153a3e533418b4a4da089961be57319ecd98c6f55220e1f22f07a26e77508938055fab8ab1ff9f8d83bf6acbe4594e71330e4a5aed292362e692551d88b5cc223fe06cc0ceb1bec0e839c14ee5c0035c479c55675cb6304817aeb078bb5440fc3b01d9c26c3a118e14485147660637df2bf8f4b99724ce3f4475e04264ea838c218a7c2f9cd1a77fbfa00db2cdea3a9cc102126b8011b80e7e1604fa172ce6773ad021452b35467aad19ae03dd4072513ffeef0a661230515ae7edb6dca76a9e361ae4212a77db44895d20148754663cc38b16541b4898ddf6508bad477eb315327985c19a605b51300a17898d4f77603778db35a84d562344c1e53564e92db126d56ba4c19c82ec45f403b7ba04f89c504b8877a7418ad51264f6e8750b722b298aeaa96ceabd612996ec19905ae263ac92cc8bd9b910c12ad682afb612db5e202070616b6fe6f4e21dd03ae482ca3ab3ab1b1f4425e1da61a7be9c8bc16c4c1249c207d4dd4557835389832d08c19156fc4447427c5db1b1dfeb785e72331a19f6934c0bea0d714b7d9fcfaf46d03c5c4552e6d68b5ae15e4daf4b58bf981d154332b6a23deb351449baa4d93952f7bc3fd6afee2be7b52a123e992361ad5608bfc23a796a3bf460565d89af1bff0d2feebbe70e78fae7376fc925a47599060fe3709b4cab4e0a302a0f0714ff1e66810b7eb3369cdf32e9755d0196110dbf086c8d31794ebfc9bdf546d48494749086a809a0819b0d0ab7ccad1cad9892840842447ad6e802a7cbe72648949c96c7c0ea8bcf7ba4a505b374a0995f49a5cd23d39a62288d57d31deb7a79b6eba3d1883578c053cb150f71ea348dd09a12960cc3380dc616f2e1daf29ad1560833ed3baea3393eceb7bc8fa36376929b78cc333cc7f239e90d1e250d652ea9f7cc12e697f5c2ca7e415f0989cd766d6487353fd01844de72be6946bd0616ae2903a22a69301e3a0996aece30f150dd095bfc002fe7bb218d4196b942f9e951d6fc5df7dd68ddcf43626ccafc3f9c22f6a4053f107958583db80e61b11e7166cd122a4af38ca6fcfc0cfba23ff2e0512ecbe800ef86a7a7c247f19e4ee18e9932edd5d7530c550c50ec1ff6ed3e0caed134193b525eb9b9349847e875983702015ad2eda75b52cbb85c7bc68afaad95e9fb8404ada14646cb67b8178a67c8fdfea52d349f3da93d949c9fd2a2363f6a16047d0cc3380dc616f2e1daf29ad1560833ed3baea3393eceb7bc8fa36376929b78cc333cc7f239e90d1e250d652ea9f7cc12e697f5c2ca7e415f0989cd766d6487353fd01844de72be6946bd0616ae2903a22a69301e3a0996aece30f150dd095bfc002fe7bb218d4196b942f9e951d6fc5df7dd68ddcf43626ccafc3f9c22f6a4053f107958583db80e61b11e7166cd122a4af38ca6fcfc0cfba23ff2e0512ecbe800ef86a7a7c247f19e4ee18e9932edd5d7530c550c50ec1ff6ed3e0caed134193b525eb9b9349847e875983702015ad2eda75b52cbb85c7bc68afaad95e9fb8404ada14646cb67b8178a67c8fdfea52d349f3da93d949c9fd2a2363f6a16047d305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe21fb658f6072cee97b6dab3dcbac82009de512e271ab489886ab5369ed4941f1174fbaaf88be79d412b9672c9d372a7d2fa63a6f94bf935c8b22a38f99927d5419c548ca9f9dfc811f060388dc34312ebbbfedf557f4edd6da91e2bc28bb6d080e9e371204e023d84fcbffc3c9e32ceb0e6f399a5fb326b02d035825e0f5085529544df698600b6afca5234fc15afd6487b612d0a789592ca90a2f047aff552921b1c8bc5f1587521d72013b3d8a1520cdbc193c6fec62b1b9a395ab530b75b732240c69883823cae0b119108c5d1d4df05cdd73f40d336d0e29c0dcf8a2f9e920fbc3ff3ee6885787280385159093b42aaa6085bead2afe32ddf04411cf6ceb29830108cb5a02fb92b96cc16107c2713d5b965caf18aaee85332c9caa0d94d41d6a5055453de0b1f5ee004b172161a4672b9d1ed3c3d60b5965531316d149142daa6767a4b51a9bea2461d44ccd381363283dcd23986c090b166cf7ddbb00841f7dce5a200d7badb935f30a1d8eea9a8b32ad0c8ca25a1bed70083bc2610db029830108cb5a02fb92b96cc16107c2713d5b965caf18aaee85332c9caa0d94d41d6a5055453de0b1f5ee004b172161a4672b9d1ed3c3d60b5965531316d14914363a93455912758cbef0f321536da45d42153b946a659d28cbdaf372349c19a72b44b35ca9e572ef50c2a9f4bd50496ad7fce118c528eb2780d5446b1ea753ee0d3e3d7a3355277eda9be4ebd55d8475fa06a3372da7c7cbba15d14accc0e920348acf4ea477c7f15627c36c3e6f28ef025ef61d14fd396322a8841653cb5de000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001244b65de8a82138faabb0e49529eac9141c917419fc9f38a98116de86a0a3d5739284779d5c3640466cbd85aa51c7fce68e5d73bdc25ec9d80c422d7c589418412c3e9644290aca7643bd7fdbbf921d2e7d4482fd69a5d854794f056b8b5f92e3e326cfada652cbe9cb04af13903d4215fc95f9b02d07fc34f9a0df0e8d7d3f717cef9cbe2e4584ab427a29454d48fcb3584bf29dd264ba917823b0bab689472054513f331484ebcc4e61645126b42906cb1da9b111c880ac74eedb88072220b26324ceb544c1c582588f628fcca15e617a52295a7dc59ec42b8651639d9ca123849de0b1f44a43683bb2bc267e8cf7770c859616ec72f1a7c27ea920a701c8433b9562d475397e616bfc395804fbaf9c69a56fb44ced5a717c1c9379cdea27809caf5e1b4dc47246749f89d3b366bc00edbbf6e270586a2dc932ba09f398b1f3c46a7f616654d8555155fcceb6ab6c5137a27cbaa51bbaad21f41ec0d27c5811f0c3b01bb5a05d3280a7e61e911d2af3cf47120d68e21862b9a56e4ae017a80164ef13bed1f5748343fdd9a2edcb36405bf625d67798fc3613d5d51a141072f22bae62f6c05c2a69659552962f27dbbf7a5ebfccbff4d620a821c8596b3793f2a186319c5bf092e5fd9d159ad82c420507201b60c33a4257c54f02962f959c7325a528ab09f5f8899d0d543edcbd8a164130471c3c7becb99827bb0302670e92b0e7ef5ba2e111d167f0aefaf2b0baaa440d82a40c5afa9ac020e1e9283d975379db68d0538f20adc23010a9576ffd720119cc25c13567fe8ba6d232e10a227357fa93f01f60adeeb90b1ed1370b6dc889532434566fd19432da7f12cbec111067e5676656dd3e7bc1832eabf633fc9b874b4a2003a9abd90c2319c98d453360bb1d6b6a6661c986ef1be8540bf51d4b89b3a5d27a3dccf94c8b1fecd19999015d18c38c01e6e4ba5ce646ebc565bd874f1cd00f77b89256799ca4c13ad36e12b34756e73429eed1fdc38d130205c39793c8fc056b6ce66440aa1e1575a01511d6bd8d13e94c7bbcf973462d985072fe01ae044956bf6ea17c55efa621d0320167cb3ce945b12e1afbdc22e4e2a9e48a898927761b1de36a04e20509aecb1f50462c7a171516aae9a58d26bf00806accbf34af6783b2e60cd7846877ea4dc0f2507bfafe6535ea2c67962fe475f070bb0df086680db921acb0fe9e2785aa98935d875503c2d098fcc9ca399d6d09c23b8b165fcc94c4446e1faec32eca43c5939244edc162b3028e4314cd0d1e4116e0bce006b753bf1aad721b94b7498ff4907eab3d30ac2c5d91da82b5e77a60a720f3c3430ec6c3f793c784d84452b980d200145b0168e735a65a40325f35dd94ce3149bfc6c986da171d38a0c50f30887322397182d48383649f26c63e53777e2a37b37259d4c883ce232dbb12eb66c5928ded956cf8849f247740432546624df5d563a2e867c6c60d717d853605bccc833180616aede2bfe146e0f8e1d09dbd50dfb38152feb6d97fb9d9bd7000f29432544e0d4b24cf2071f4b62fe8213eee5b3769d12f2ba07fd90adc6638152b06414243bdf83b75e619936c60149a58d291b27d6e540ddfad1a66eaa81e5528f1e05e43bd3e3714e479d92eb722b41a65780cd442278f93bc9bc43c8161def90e33575f1617a00c9d5bfc459767978eadc1d07cd48d03572aa00317dd02aab0b901b4116b2e4c0e633d75853553373f6bfd84f16cca183a6982a165393d07d4fbf38aa60dff7e657430b37b5e793203b98f6ee121afa46ffa35a040c24ccf0f76306245a3f9da5745d56416b43c8688ee3888185f9d8c85a66a81850cef3fb29812547c55acac46b799aa4474c64d717ec9eafff4a7df3cf0b96c68b560d721eda2546a4509723b2a3dcf55f99839d0aac11053c4d36a0cd43047b7004a341b310129ea869e63921d644cc44271c1bdde2aef55b06d4f3b3d78e3891cad523c0d237017ad6081bf5fc09393d2fcec094b2094c5307c6f8ba984fdf54f1c0bc4704266934978eb84365d49fc917b90cad093406c5c1169112b1872bcf5bd9d930332346ed39bc86422b99dac6e58b8f9d3f2deeda5ea4a6a3c22afd9e7da2ed6bee045ac196f0d5841684c5eba40249f22c27ae0a94a5ce625573594f9999909aa614c81cbbb2708205cb048a1f2d8ed46117fcc7cc7ea097a8db8abfa60709061d1be623aa2d1462070b2fa97a9ae004225f35fe8fe945617bcf753dc2714e4b931cc48e2a4e4646b4c815ae94927e28a90e83a57b3634b73e1e3e8f9ece560ed8233b71d5b1b9b94b37ea516b6d81d75713c2f380d31841dd7aeea14e31a9f1290fd6c6d3875f6187e86c68e6dc76cb4d0405096ffc6da1ff64de6c4007ae4a363029392c78a09e7817939719238934b31e418f8c0cdf571c344ec4acf851b5cb0f31e221a4dce7a78a1e0c824e51f880f1d29633e4d730e15f2aec532667730d30ce1dde5b23185875e1f37db1ae077f307402c82475c83a3a024499d9988cf40bf96aa838508645b2963e8b8799da8496d656076ee6fb4b42a96cb2c0053f4034069557c7af79ba4d69c1747866257b8b7042f49a65fdd05683c43a3ffac0c11cc48e2a4e4646b4c815ae94927e28a90e83a57b3634b73e1e3e8f9ece560ed8233b71d5b1b9b94b37ea516b6d81d75713c2f380d31841dd7aeea14e31a9f1290fd6c6d3875f6187e86c68e6dc76cb4d0405096ffc6da1ff64de6c4007ae4a363029392c78a09e7817939719238934b31e418f8c0cdf571c344ec4acf851b5cb0f31e221a4dce7a78a1e0c824e51f880f1d29633e4d730e15f2aec532667730d30ce1dde5b23185875e1f37db1ae077f307402c82475c83a3a024499d9988cf40bf96aa838508645b2963e8b8799da8496d656076ee6fb4b42a96cb2c0053f4034069557c7af79ba4d69c1747866257b8b7042f49a65fdd05683c43a3ffac0c12e26f67ab7b96cbd66298cf342505f2dedb559fa4be2273dd01899d6c3abb17105f957432b4d66c307dd8d7a9f77a65b49b53376dadd9b2290ea826fd6568a54328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff41daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f00344d74eb36915306adaf8e9269821e7f7d18fdbe18f81e064f72ed1f9b4231350512464b4176111b7ecf3178e1c6e6184b4c23c0e9cf8ce8968bfbfb15a651252145f4002eb00160145f0eec0955828f1a4069016d1ba01aeb4dc2c8b7d5d9318e6b93413a1ae9d9e25f87b4ff2113104ee04abf7d7bda6215e3899271cfa9256bedfdcbed166f3cf67200d7192e89a3a7176b008c5abbb6eb7fa995de2f2c1149a31f1b218ba1c8eef40229e00b9f2dbe6d8f3381345e94107f4c3810633a2dc8fe7fd0fe6c894514898011ecc3e0e47cfd46463f02f7600715ec21d283ef0c1b7842979820f82613e9aad8d2aba29edba2a09b2cede1d088e81884ac08451f5007c7ca5a4b3308d61c4b4dac42e0a4d37401fc648e9d9ebabb69f0e40e9e1c5c416a1560e72d45e42361df28bd22e4e2d0d417b41b1951d8c791d053710f2dc8fe7fd0fe6c894514898011ecc3e0e47cfd46463f02f7600715ec21d283ef0c1b7842979820f82613e9aad8d2aba29edba2a09b2cede1d088e81884ac08453562aee8f7a28ff53d85c82af2b2c4b62a7f46a64c75f9a3660b96c6158572c61fc73eead6333badf5df9ee3421bb5e9dbb6deb4f98b94acf990650b08a40ff92fa5a2aadccd2e9ffa2bc6e004b3375ec34ca678354628c05b546f56129bdfb53ab7cb4e81dacd418f777781db75c8b2866ee6c2134e3c7f8c058ccdb3799eaa000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013d8cafdf5857cfc3c437758e1ae5fad87006cbdb256abe3b0f243fc7d9f6db3007cffcb784c4d9a1ba4af974f04d0de1eb0dfd38264091556e357ec587eeda3a3e3bb7cc93d012cd9d4f25a80a80bdcbee2655fc322560a25997a171f85b401c2ebbabf1c297531dee6f57ebac801cc1223c3d321264e346efdfa4872d03c1060e27756d3a7dc1db59335f4c639e74ef34ef81bf2d243635e02df7a538ec7a780fa1d6b30edce4af4a0bbe8d6afac1b667a4cb8901f58ce3794a6694171810b02e112361f23ab4f9acb0a88bbb101f667fd13fde7c41b01e4740ba2408527d97080f61e32fdec4ff5a5748bbaf79d828866dc1b806616205304e1e41ab95ffb72b90b8dbb2e5705005fc80f3bac5bd0cfa99c81463a8fe4da0dcffa6d6a2b7ad17a1553918e23a25d73e0d20d88f346b603979114de19a2a9909e9aa7b7ff80c098eceab3f9cbf2d3e9c5274ff0d4c88328e99640facfe891c6193d3d58f65dd175a1840290de1697f59f00483e5397fba1d7ff0e29e2f4dd9cb53703e237bc43e3b502b63690888d30fa4f316cf24e28e7423f50288fbb6c1cd72e1be10841b185acb014084cb90f6600be658ed86658abde950b27676f1a7f39136cd1f016f16582360f1fa843be481ce256e21513b2d82dc58e9edc2ed5b1677a033a4bee02b67553bd57031388272634dddfd5661bb5505cf3a836f79f9475fbf8c2967c60209a426a440c50d2023501697235f892fa3ddbf079151036941670eb8d3c97901e9386ef3680f94f89be4fc41b351b758e4809827d9e431a9c8f8c7183083ed00092886c1fccf402ef2258ee3c9de288c7ce94299cffb808287692835829f9208a356543ef151c17e159f9633300f2b747aaf3c332f0abf1e62001e2607734f308cfe3deef128b770298eaef9dacd1356a1e4c40be51a1159c1eea9682b0eea0b5e91775773a4922f7ba171d63b439775435cdce3b1db9b8619ce860cfb06ba03dbe07a53c89a13ada115ebd2937d11a6b4430d0c7ced4be7e73e03b8a3aaf035797475bc7880d1bf1620ee75b98d954e18021c011bf25bc8d5047bfa701b61003b40b586726f00cd406a3b59ed95d6b332244b1c6749e49ccfffa7af9a644603352f2f75a529c5bde14cce7bd3d0fbbb1b44cfeb3d61d61948d570c4f0890837c7de6b85556c502f70bc6927cdaff3f2c6de686b44e826592308574ab60c3427f2a6a3c7d7cb3970632cbfc08c42c44c888c34c927dba88f8b44d6464876f5364643aceaa755164e1bd9f12a11d7982e7987b0730f7600226d122c355ce31632f1150ef180141d4d6873a7268ad841e3e46bef20a55fe1180697341bb0c36e22fbf6db2c8b3dff194c45ace168833a3b117d5f4a55295555fdc264aa60b81322932c0b69f70f0222bc1141b2d070f3d3c0350281d6acad07fea38d293368b536abb9739494b9554a622d35d7f5ba535d25352afa2406b08d6cf3cae95b5d2f2256ef20f05cc0cf2a64a3967aec7bddd9efd343752f1f5089607dd0c4cc73b1119b5cc5485889b5305c9c18a160f6383a98a03b29d4102f49f1a7381f3628ff05295cd1bed188d58e32dfc7073340c137d180790fa50873ad1a822808bc998e39e101ba5605e40e6bdad622f1d791641b64ca5becd27951add88839716076b411b163242b231cb406d267d155ad452401eea25466754b1da2c8b023c327b8290349228fe09139b9e928d7f4669cf527f7dba9bbb0b5b0c222f8c87b783bd9ea1271dcd084716689384f4b173514296b1561831ec7821fd94066c30d3ee9bedb307c46de1ea93f7730a8ed4ce69c5e8747802b008e1f9266d53e89afceeb755d201d09b1c8e3b0c2669810a9ae47c60736da73ed8ab22f1a584c0a717279f8482a3311622e3e369149308a4695d8aa4eb3e9142fed77c3923123e7070d1a8be314ebc87dcabe28ac1c5c3e90d12274d2be98c3e8686125e5145d04d54d82dcb6275b5839225b60eeb3f4a1379caae4e74848dc6e5e65bab6cb767c3fec34ff76376440b37a25d88085a9d23959c59e8d8e9288f785d1521eae9a96849d57903619ed3dbafe9e2fee0df36828425202c18d7b719af761e0222687010b0bba09613be520282aa89578fa31a01a6a7d948eb481e423996b925c9ff6fa6e70401ecd3163b82f4814ac2690d5d123fbee34048ff3845b28522037963e10b66ce948e52afa2748bb5cf2225ea983e5b9ca5fe8b8a9b74d43d3763244b59704b53555262668f72cd19bb61bafadc0b19db3eb2763baec2ffdc90835dbcf92ed0874b005199708d32e6449e450523f4e624c14d8be8baccc0b83f0e5bd5d9dfff78b4ffc000cd3e0180a8e8a6e64c378148397c48bd2d1fbd9063dba7f864bda2a4770163ff32c1fe7f57175919b3c87eb7c683b9673c7003046bb6119a6e512d5b88feb004023607834c8b427f7d1586691f6d6bb1e19eb3d1f34a47d9f7b42d365306e3fbfdc9f87cb374bd8082ea7996e092967287f10cc2dc4771b8db5aa2c9acf930140b0e25907eb84c7d716ba00d9d231a7968198319c0736741d684e20f9f2263ebf4f1da6f8147b3828e945ff262dce7ab01763d7b0f1e5250fc89edf060ddb2668f72cd19bb61bafadc0b19db3eb2763baec2ffdc90835dbcf92ed0874b005199708d32e6449e450523f4e624c14d8be8baccc0b83f0e5bd5d9dfff78b4ffc000cd3e0180a8e8a6e64c378148397c48bd2d1fbd9063dba7f864bda2a4770163ff32c1fe7f57175919b3c87eb7c683b9673c7003046bb6119a6e512d5b88feb004023607834c8b427f7d1586691f6d6bb1e19eb3d1f34a47d9f7b42d365306e3fbfdc9f87cb374bd8082ea7996e092967287f10cc2dc4771b8db5aa2c9acf930140b0e25907eb84c7d716ba00d9d231a7968198319c0736741d684e20f9f2263ebf4f1da6f8147b3828e945ff262dce7ab01763d7b0f1e5250fc89edf060ddb3c5f354a6809f5d8fc0d754f10b0845dec5a231524772141e6eba5461ed414fa0552acfb4136a8687c086867198f336159a70e0de3347500c25c57abf0d8fec11de7898ca0b76c5ccf8ea31d9866d81454a22428dfdbb89c3b361d9f92cb085725edd8763b0e9f24ec8bee196162f82280e8709816f727bdb7fdac9abcdb63e027541176da83940bcddba5bf8fca313a0cf166a61adf78fb1346d8c784dd7d832d20453530a536138a5e783467eae3615daf0175f4fbd68ec917cd7f4275be39227540383b7afdf410f271f0e0351c0831df6f510d3bd8407f2ed3eb70f5bc710acae72a2f689511f97308548c27da6e25827a2532409dc67754fc46b0e92e44011c70368251cafa3a9d1d43276700552c4966997ab9e345bb35caec036d63d52d9984b2636e7d95d7648d19f09250ebbdbbed363f3f0389a1539eebd5e1d9b6256d0959e0317b94da37c2704348955c8259f71fcfa70eeb3e4982c8959e72fd3922206432f3dfcc7c9db66cd40c3169170a7debe25aba8d226ca0ae7c7d7cd025b94128f73e9dca3463e79356e8a38e0390eaba0e47185910389ef44e60e2b214bf7a8e83bab872976ba97f850dd47c47b71a560f215c5d1ed32ca6524b9d61256d0959e0317b94da37c2704348955c8259f71fcfa70eeb3e4982c8959e72fd3922206432f3dfcc7c9db66cd40c3169170a7debe25aba8d226ca0ae7c7d7cd0329ddd45c033c4b974f5c69e817f38e0b7e372a10efe002fe216b02c6e096a451ebf442a165ed5e1357a20e37e386581a3fa76f4dc1376666070db5da5722d303af6c54949efd354650ab457ea339501956fdad9ecd50a3bdce40c04ecb92ac62964e54c1ceedbdb96032106619cc3317c2473828a4e520042cf5b3936a555970000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100607eee70a3d04d8f2e46b78510e1019a2a6e1b2552d91d97106732842278a70c8c301f35962716c9a55bfff1de7d950e9732fafefd0b637969a6d0215d855b1316fabf15537d0b9a0b600ff880374404161616017a981c4babbd53ff6e00a1037ede193333077bda67bb0a26f6d82fb5b3b19c2d3b4d1bba6e724ec0a76f753a00476bb60dabd0eef1503717330f85220e6534a011addb21bb2f94bf23cfc338a8ce885aeff77c3aa481b7f61599abb5eee7fe5de7745bb33f34f732647b890cfef7a68ea4eb5b6de3c53679550828eeed32e3a17bf9921c6732fe109f3bc239f14385a7cb9df4a058a6e602fb24669cd45dc59650187aef3d61c086946765096255006e4c666568963b6a50b728069d2812e309d80f2284c37c1e83cfed50087033f9e1a3a6ef0da5d4ede5b0e1fa35bcc1ed28d8f881bce95b330abdc644244f2e6cb40c0d87bd829994021811cc52eafa7804f1fde6605544c56c53ce170e37de82193ad1eeafa89ebebb22ac13192212fc5f5bd7faa90fa30098d0cc342dec56eabc0d586a3c231b7e290877c672805bebd9adf7079210e4b14e03614d0b14654842aec44db78e537a2c47ddccd5c43b4dbf14086debef091e2320b38731fa66b960a0f6387228f6a2393fcfbb06e7ede822901de2f2f55c5a400396a1357aa1a7a3ea981f72d731fbdf50ff51422aa0c7de5be31fdced9473f48d66a52877da5c40b33d20112edb42b56fbdb3ee63e0bc4128df8fedd545f49c1de9e923bbbd5b2ea984f045eff2879c75a636ee6d7974921204ccd2cfe8cdb005d8c038a489659e077d482441706a1a2c21c27edc7ba1cf45756563282e68cd0dc1c017b9b1bfffe47cb3bc193a6d07c39b1db26e46e6962edd638442aee2fd254109032c43072e804d5008f3f75715a973db02fcd9b95313d639e7f7096ba81c013639299ca290155568ef88f795dc611160d0b63f63a206f033fee207b03e6a76cc3d8c988e2bc6017c59ddad868eb622df2764faeae16048a70a873b8fa0cec4a71220b0c6c51fd2cc320e93e73e47f16ac8b48220f65cd921f090379c4d561de70fde2a5d527e63043f7e7eff45a9efd6d941165545bae8b1038da06420994db418227ea3cdcb7b2f3e5a0f1a11318092e788faaa8a9d629b2a7088993a15b08f03efb3983bf4203282304cb5c40769b29e18fd1a662345a2d686983b256c66c73aaf2550b237f053da9ccf56ac358083d7e949834dde6d7869ccebac8b1f69200a176f74d030ecb54187afda1fb22f89e1ea6c38fff7bb476a7300044ed14d8f31a35fe8e9da3551fc2bc6e3a84d3880c2833e6da482b94f82116843847f9c6f0eb443f5b964a55056a0fdbfb11314c010cdac9fc740eb4ccfa7b98b8d96d5d511f5c6cba433215872f48390fafd1db0e045d842036c69348706ebfc63c1463306880482679eb0f96b782fa7c935136e529397ffee88d77449163614427fee73387203063724a39e01b03a83d698d9f839b51583e7593466cb46dcf6b8ed9d423e90beb83d5230979ce4eeba94259c427c40bc010327ec89e7993aeff7168ae42411d31e26cd60748607752ff6bc85600325064aae0f0357fd292d718905654c18eaf6b948706449a24a329c1cea5066c7155f5fda45a733fdb98899304d33d60616b0ba8ae6ea0a1b86a4b1c74f936168de364893cf88b6f89c9fb41ef87f8e3b149029230405c0d99ec06d1540d9aaf03dc5a3c23859bf1e38a893cc9f04380d9bf7bb53607ddc500e38f5ddb08b8ac57cda14c891325f11d435619a0fa1a53d188a595167836aa8b6688b6fbdb6f92c8f52f86dd758eaec90c173ee859971176ffe5bd6548eeb9b2f4cb6c4883cee702100c9e0eb1bf0e256efa9cbdc30e11401c5b8d52a220b023a5af6911ffb32237b5342f8a6a75d1cc50f163518720e3c5f8860edec0b32ec913d88257b9b451cbc679e1c041ae7bc7f1aa495c0b6141e8db1b912736601f73f77cf45c3c941117b3f339d7a701cd633946e83bb07ed32216ab9798c558a9fc8c91f4ca42b4c1dc0072704465286a855fdb1f91e53cc38a7fd3f1606b6a29ec02afcbf83ce7ba12dbefa75cf31c02ae4069502ef8e130e97b6d799e5e1b4cf00c307aa098df900e5c9d346986f34d145b88869879de704d7206279c1268e2b9ee39aec52ef51081f4f172bb71335978ae420c42f413f350dad5f90435e9951c823414a7fc448d457df8c10a59c3488e5a2ba6e2662dd142fbfa54ba90f415cce321fb844d3edc8fccd375fc0fbbaf04d1f5e9689a1872bd0405ab456f0bea331cde047bb2c125949cbc4a98bfd60a8e0118e69765e7a24eebe3a7a4d4c46d006fa9e995823a4caa96918d577f18b18546bebf0b027a21b1141c585b2b3b92ff9056166a7dc5b579d2fe333d5079080d8c5010f4fd85f38a9b72463827d621022e518feb8b237b0c1db8418bdc580474bb9c1b370c628075648db9c7d829defdd1ae701474dc87184bd77f08f339b51e1772b4c8f39d91b5093b5f18c72ea50ae797cf99b7b15eaaee5a45680f712ffc5dd148133dec424af6c4a0e738d15af518683066484ea3797b357b2cc0208996753d87ecc213d142fbfa54ba90f415cce321fb844d3edc8fccd375fc0fbbaf04d1f5e9689a1872bd0405ab456f0bea331cde047bb2c125949cbc4a98bfd60a8e0118e69765e7a24eebe3a7a4d4c46d006fa9e995823a4caa96918d577f18b18546bebf0b027a21b1141c585b2b3b92ff9056166a7dc5b579d2fe333d5079080d8c5010f4fd85f38a9b72463827d621022e518feb8b237b0c1db8418bdc580474bb9c1b370c628075648db9c7d829defdd1ae701474dc87184bd77f08f339b51e1772b4c8f39d91b5093b5f18c72ea50ae797cf99b7b15eaaee5a45680f712ffc5dd148133dec424af6c4a0e738d15af518683066484ea3797b357b2cc0208996753d87ecc213d1aebe5602a8f012b625ab7294163b3f936535be6d1710961e568ba8e309576381b3b6514a5e576d3bf2166ce9c7de55051cce16420aa35ea7603aa0f35bf89c42d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd62dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a2246abbfbdad4cf426e08de505e53d908fdc5a264898b9fbbb1eca3cad9dd35b0921f7e41df776f9a63500f53f202facebeff31ff4c585a0e33131f38d113375204caeb5ac6124abb79c81a6a19a8027cb61b130b60d07929e69f35e738023680a58a6b1bb44d147ad5b7547bbce66ae6e2f742307dfe918a4c7e041939fdfa1080e6d81701605b88e8fe29d75b30637c8e7bc4b6ef3526fa68a394d415259b902e9a38713200bee778f7d92c4d550d06bcb9c07610c21ec37033bee762336d0260133cac9572b24b68bfd8d1f244084ba11d3994eabd82ebc908bfb5ac6dcd0003e22f5ec42aba934a14a76e5bc7166b3a64d009d6bad7e59eaefa93482ef3c37d7c074f1b9f2ad3a76ec052871e03b555dee86b65a68b8d707535a1f4fddf536fa29619991c4d5f292e8c0ebd31089a9f36c34c7727760119cfc5fd3d6c4b5260133cac9572b24b68bfd8d1f244084ba11d3994eabd82ebc908bfb5ac6dcd0003e22f5ec42aba934a14a76e5bc7166b3a64d009d6bad7e59eaefa93482ef3c159ccc1cd5aef05c89390c3e27eb9d8e9457105d717bc3eb5c44f7cfea68a6d30966dd1122b6fcf92c09f607d587193df7a76c20971e10e3fabfe5c24aff0d263bfda5ff818d195984b2ae0e354a2a49744164e4923ced605972104bf05729032e1beb3136ed7c365c7e79d0300e898e986731e0a1a8a35b018727dacf6a04490000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000122259c882b93051d67873f65c14df9940dba975dfc085fc0890bfe8f429f48d22f26947cfb4ae17ed968b2d153f234cc995bf52f28016ea4a65ee017578528a12fe6450f2e7b6b9a484cef6477f9e089cc56323652b67b59303e95d9ab33034a304ee394ae6e02d7a181c725aa69421c4c7af7797001d01f145915f5f0ac768414784a2777c751992604199d363a29c1bf2f7fe0aeee1439507a2d8b409abad6104149ed510e8aa0b47ea4b4cc543f759dfdccb7ec34071951d5057d47870b3b379d84b4920bf93fb5adf0ea25ac2979bf8cf6adbadb9fae29a2a5c905d2270e0c5b15334d343c341d6ee63c7a17f6f21c4bc68f2ceeca736b48d037bcf5df4e2c8b92526c0ddc821bebd64e6f625c43face6c3342e2b7c3cc5a3aca433518d805c11bfa014ff71528ef2d713b687c5e3d559d9fed9a555e097cd7d6dfcbb6523773e82ff97a436d530ea2d89deca9b8f02961bb5958ce09ec0fb4960982da3c02d33fb89d382a38136ee7e5b7944f35e5946c006ae0e8ec27d62251195be4453318080bcf62b1807aae586c99b8f82facc322cb829d7cd1ea77eeb66ce9d5d00be9ba7b4d9a95e85596ae17ad58f4f093c27cd106284eba9eba48cb6a5d0bfe02b5db3b3f700a12f8e504ce5e0125694fc1c53ce007ac80f7f56d3b722d48992ba70b7cfcacc83c64f07c9838491f47478f6b2a05d30c67edfda387649aa5f92548f1817076eadb2dcd77d934d26eec9dcdb0dc4894f229954dca96f7fee11735ee7b5418b4a6254f15bd2ea020eaa3b71534d4cee93403c367b42c0d39f2de273e27f69bf92505635b968247316bcd8abbb7d5cd4b2e6535cf273a57c6d098244d4af7ee55c8d1c822ca95a147534aa440b07ae06ee7c8d183a8a8a4df539d23e9582022f11ed7b5487d839f469f71c8fbff1e9c3be115a4f4bcb6cd4e28f83cffb9f0533d6221c5b34677cff41c3bee7e8c361609a4c9fac44a752022fbc03152efcda475de75f058ca22b15042dd2a9c29c0eae917917ca63f34ef8a5b2b3c852344bda6fcb640e1ccf77b8db325c901c595385a9c358fec55e2115f43c4316ea77800844ef92d1ca90b61e5b2ec8b0e42639e563fb0721d91b4404164771c31f0e83b2093ecbda5e1d708bd1788be8ec6c506f25be53017f318f1152b5f02e501a3289fc8f7b94923a51a845fbadc1274b4c8f708faf06e4a3e04e311d93d145106c6daa939d3abf70f09ff21e9a479c6143e43ea06908a171e9ba8ea7011de97acd40bc958389d4f3f0c0712ce2761f4a54870aa30bd02729dc49cfe921a442063bc453b9fb1633c84f6eb284c920b8bc7c432a506329d17e606f60d5e0015bac258e06613d304eabba101eb8d49fcb6630cdd024df76529cc257f5be807b08604903894e078c463c145d7ef295bfea8dd2a08f5bb8d0ebb9d85405d2135688ce836ef801989e4b773ae57daf4a63acdd69d414d9b74ca6c594d32968e111b1da3705092a94b75ad1f52be9fc981a1cbd63672688c3db8e119e4118baf290b8a24461ad045404ca6d2a7a9d48708235be1b85f86784ba8a7ec0ee4c3e33640f7f9cf782e70cb5d1bf0611a76d2198447053e7aa8f898f8d0f148e4ac421e47c05c69a7aac61eef3202305298d1485a7bbe21d886894eabe2f263c835f42c03ac266488a24afd2a2e51c668afc46dcddfb783c6fa9242c85a5cb6556949034f4fcfc35af9cd19671f9bfe4f0e3aa9c019323e0c254b592d2cc172394fb932455f5e6c01b57924bfe1cf88a7836d678b08841141a7910ccfd13568e6be423620226fcdc6283f8cccd2856d409d112e1068132b9d0fa8abb47b4618e1dddd1197fa03c38817494942cb24996ccaf756b09709e62cfe9efac0392dbdfc44861e39928c9d22815ec3a79a11a404bab38bdf5609033cb24acd35072714db7a7c24d28b2791f829b909082fa96a31bf8e48038187a058d8b4e0d1456b06beac3f2fff5fdcb9ca0365c11840fdbf06e8e74f50131a43138d742cb79e73b9b9113e1c4f56a82da298d29d59e531737fb29fcd083c3fc17edeaa116fd83955d0d89e139ca084ddcecaa131c9a52d0b5e847172ca92acd74e1734d846bc6eedd55bf522468f324447290a037c65f959ba929ae311f2d2b52d9580d07701cfc38ead1220f119d47e6af03c557b18e0bece4e97902e00dacb0b08ecc11ace984095d0c1383c17799b4c66b0210e86fde12d2ab8e2d0dd37752aa0671fc94a5d897b8811244de44548e8f18f3946613a8e70c802855020c7b23227b00643ff829a367b8d1bb21bbab7170e70c6b99ec5718f37fd9cf67834571ad16b92e9316a65c984743585755a6c8cb7cc1e5fe624c833e80c560371ee6860d438ecf99bb3031069bf0a7a8aa593734833e1a019db37cc17f3cc43270da0ec24e2ac339539fcef96420b9b4ac41ebf96fc97df7eb7e903883d24f6d5b7e4b040ae3c2b46cb0f5210b73464b53be14069036820814816fc77c2fd4fc344249cb86d5d01ea21f0adef4a3a0875d499bdf2eef75d79978d11a931b8d22c97777143672cd861f74c9a539305f78a2b66420d1108a2866872ee56ce69746c6491dbb5b46c54cef5b365ac6e244de44548e8f18f3946613a8e70c802855020c7b23227b00643ff829a367b8d1bb21bbab7170e70c6b99ec5718f37fd9cf67834571ad16b92e9316a65c984743585755a6c8cb7cc1e5fe624c833e80c560371ee6860d438ecf99bb3031069bf0a7a8aa593734833e1a019db37cc17f3cc43270da0ec24e2ac339539fcef96420b9b4ac41ebf96fc97df7eb7e903883d24f6d5b7e4b040ae3c2b46cb0f5210b73464b53be14069036820814816fc77c2fd4fc344249cb86d5d01ea21f0adef4a3a0875d499bdf2eef75d79978d11a931b8d22c97777143672cd861f74c9a539305f78a2b66420d1108a2866872ee56ce69746c6491dbb5b46c54cef5b365ac6e3fa1f2a2d0b4cce733cb9590433d6813522b16e9db2173a58e4bcaea7364b2a414cda1b9433fb43ff84e3aab6e2756c437f9c72677fb7a3897b566ae006fdb55235b5f0d6a17565734c6c297adb20db96542cc678885f50ad8c48986405d7d6b047780b393c9324d25d3cf2c8399bf9cb8b67dbfc80f7d2ddb11c11af25663f71537ec91b8aa7d53887d0be2d9d8fb901b2d2c2b519e1694db7df63c6a54bc5027fbc0adb0b3b292c8898ac7ef5270fdc69e1a16eaeda4a0afa69ec5b276274b12b36c7dab377db212cdabd48a6b28d193e3a2e31d87d4915f3827e4340f9e5a2c546fa00213944899f0e4562f8175b07f669eb688d62629e35630af44a866c539f5330312ec00e2e58e4caa74920636dd961c4ebf7df4466eec0e7fb0f3b8193da1a3df29b2ea8129c4d6ef0070d81370801f15826b97c5c3631eee2babcb8c3f7f199596e90012e876866389b6d5da0737e3ed987bb8b480526e0e8ebefa031a7822fd4379938ac37b11e940096756ff778aeb234d4a59ae01fd8d83a3a64c1d02ae4fc533dcc1976da7d80f108a338d1f4ea6aef28986cb4a0d694c3dcff426badd9328f71972e1ddf6280e3ee99f31965415c94201b5266609240d39c0b63f7f199596e90012e876866389b6d5da0737e3ed987bb8b480526e0e8ebefa031a7822fd4379938ac37b11e940096756ff778aeb234d4a59ae01fd8d83a3a64c0afea80e76f8e7ff5aa7a328f3016fcc07ba05e67c505a216f77273bbc561768031060e555d3908a15606f9b9176a68b5f71de640d35569bafb394be4a1c56ce1e04327b4407de7118ee0e11332dac8ef6a9c5bab918d5abeb6e55591420d5fa34af88f362cef095458c07ef5f5f968e39c804037ab9fe11684d57b5ab34fd55000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011f3639ae923b5c6b8921907701449098315d9723b3691bb2daa2cdca58f106172bf752afac75a9f54029b54c99aff1a93e3fa618ab1ec7a6bbae26bb29344abf01b2f701f82aa47cfc85102aaec5ebaeeb95b90b2d6e13e250249ffc13cc4c3135ff7b934bf080286db6c61f790f27653366a9cead85404a1ea35190f5e23c2a27ee5f0395e52aa9c9e4b590b07fa73f1d2aa6d7ec065815378496fae38002b03ab763c24b094d5f6425b66485563145dd59408b7246b500884eaf1d6d810bf330e92135b6925b5ff8adceef68509d4add63e21c45667c1ae44893618a88ca05220bd3f9409e9b7efd466bcceeb8fb7bc164e5591cf6fd6f038cdfec67fb079e2fcf37ee80cd07610c3af5c983dedefd68d4d320a65319a2ded83d70e365c12c0abb395a6b46db90b7fd19b2d8175d1cbb5b8865bf24cbc4b99057311ec86bd6292e4a364ff9a67067edb4b0d1cd645ea80c04eb43c4df9a061800d84f091a8209bf8aa35fa3d194eb99905d53c154d8177952617abd71941622b395786bcbe816e849559dd4c52c485419362c3f8cdcee79d679058494fb8fbcf819a0c6b74e135fe525a21ac5eedbd6457898729ccfde770c7a1a3fe004fa6cd0515b48a5d82667ead2d7ffeeb66127c65168ddaa91aedf589401526dff16adc2156d6c5af9169c1f5654bb54a7e01fd8a6dc62040e3b81eef2905716df3d8a32fe617c06ff33555d99ff8d640f66317ddf6d72ef133c2ef6374d80646ab469452f1a3883d4168cbe656a0c0912432586ef57172af0cda89e69957d4a56cda0774f9a43581336bd082c460b4cdd54990e6992f1d30fbe3f24a98b979f315c5d455ec859edff21fc59f579c2152703316a0f09f0432f19703fd1fef84d956a50d7979509d374034194115b5525b189b9b459669dbdf286f09f001cd84f5950b06694c843bb98193585749de58adf39c37d39d5cd4d00e8203327c917de78f0edf8dc5a4d26152b4cdd35c795127416f4e1af46da72bb8657d79f85c6b66a9eee6b014e84ddbe15b0f4bdad93db1fe1f16a8df9dc65d0a6a2b12e6ee158d6774afaaf4775ef033a47917138a6d6c5bcbd9bc404b6c675ab38bdfabb3a937996e176c9f6992d0812f2b59289c302934f6a00c1b44c604d570e664b6b3ca8e4202b1a22631d4f09320a1a74f763267a0ee5dc9f344dcb678eeb10e32eb0922e1f142647d519f6403b5e1be48e6636745405cff5bd3ad82e2c3a0da74b37ba35a821709025345105386119381f88b8c3524fca2bde418d9480234327ee7b8c0d2d10e9f6ea10525e2ba0f201cbef7d65c57faf06f65c6700b3e224180c1bd82c80cdbdcdb1b344fc159a374f3b0a691a503ed78e2124647b9dfe7002bc5792f4af7861983bb3aacb2d75d5ba8d8de6070f2ff08bdbb4de02f0f2ff15d7f2d5393e5efa5d2b4993ed1e8e3f0dd7448dbcd03664c25f92c7590e83cfd20b3978cbdffd0b54f06dd6d8241cc1db36094e525008f90b0708593665daa95e22b5a298d52b9f21c8ed38d5188afa81778bedeffe352aadcdb3ec8c63433ecc72d3f814430074d2d573a11013321810254eee59c3a87bd741696ea2db2056d6b8402daf256a1265c4beb0ca17e4abba0391041b5714355d333c452dede058e406a3216bd69fbe336a8ba0bb07c7033c7d4953279ff14aec2d831efcd9a203c9a040e438737343917998f97402dd0ebb807806a28a05637a2ffa90c4a078590f56bbb709ef1cfe473db576742591a2b76b32e950476f70af8bf40cd6fb4ce43df4a3a137acea98c5b73275720817e6ca68f00e2a8add93e3d4fe87a42d65575949bfbaa1f1ded04b1df569dd27dc95cf5c60ac431c97bf01c98c3b42272f462086483956c4b30bf43c101b50353d3909759dff4674442319dc3f4e834d332c6dbf9a0f8371fd700a348204853e41790c32fe9aa9870b9bfb147b401dd6acce11466da5f6766bcc17744f455f226e76dd422a369d445dbce7444b275bf0eb988b62a7b4c94a3ecd40739b590815c0cacd236190bcd51ab3005d797996040b139ea4247d1babd7310eedcc0ef520ef9269e0789bb393b591fa5f6390a5bedf8d5bd4c11699b3087fcb2ab02b8e38d57f4d8bbba607eec07df9f0661237bc1590a83c8ba27fdac542c5acfe066331f045551687bdd63a0d42549c29e838db3acad997c11078746507bc7685575e010aaaa98e12d6b17dd13c44dc36dd33ab4acdf8a4d64eb3d598bc5ff4dd6cf504447ebb2e0c0cc392d2aa3da6a1046d81222366fa0810d7c39a23789e0c14c33bbb8144d1f3f33c6d2d55c2595efb92a12475950f44e843d5930d7461f3eb3e155679a7e63c3fd1de1d53344125162385aab102e2285436d202b15b163c67cf2aa9865819c3c02e21e2accbbedae9dc9c9be7f92724a4e4c72a7f91e9c398322ab060477f2d3f195692a00545b96eb17a0edc12617cabf680e045da6f2e070a154f9fb880d2c0e6a96d5ffaba46914ea837bce9a7d04d25184ceb1290d1f8f71571e1657be23b7eb0dd201a5c9f2976fb768167cb88707db8d9ca7d2be6232f2a8e1e9a841dc4814f22dfe5a360d68926d017943dc4889de053666fd419dcd204447ebb2e0c0cc392d2aa3da6a1046d81222366fa0810d7c39a23789e0c14c33bbb8144d1f3f33c6d2d55c2595efb92a12475950f44e843d5930d7461f3eb3e155679a7e63c3fd1de1d53344125162385aab102e2285436d202b15b163c67cf2aa9865819c3c02e21e2accbbedae9dc9c9be7f92724a4e4c72a7f91e9c398322ab060477f2d3f195692a00545b96eb17a0edc12617cabf680e045da6f2e070a154f9fb880d2c0e6a96d5ffaba46914ea837bce9a7d04d25184ceb1290d1f8f71571e1657be23b7eb0dd201a5c9f2976fb768167cb88707db8d9ca7d2be6232f2a8e1e9a841dc4814f22dfe5a360d68926d017943dc4889de053666fd419dcd207b0d5bcc9ec3b3519e1c387b96fd2b5b394f2a19894a21b9af910b00e9f70833756d5b8b269cb43b4e1645cd9b858f5a91fbb368bec1f0b8c14c58ce7233b721f58081e26b71aa87374afb67ad656bae9ece3c89aa1828ad674a7ce51fc08032bf93842bf2d60223b1a98080fb866156c1f2eaba5c51d58b80b9996a54f205210f2a3bb933c5f2334705efb7e5eacc905cdee72fee63e5801331c1b10e55a0713cd3a761f7bae399c1d60639242345b9812a2f21d03b3353fa06420f9b91cae3995e7873927a13502b6192329789137bcd7c993feb1677033fe328de0e3c6c922b565266bb40f51a83d3711d452e8bfa074ec76547c251db79e0040601e4b7a3b216f825b016b5def0dbec59aa48aa33c53b21e6053005cb79918855995d1d13d606673ea20e906837f9cd56b5b4a89bb6e873bbc0ca838f6d923dd5c2609ea14ed73f58795739d2941253b223860e2f8434a6c3504d3a3f5980e465ccc7c270fc80889a8d8136b359ff7bc739cf0e0d554fa19a68de234036ef5cf47add62918f722250f5caa2272a98cc1cbb9d68f84c4c291d616d47527bf786e9f64877c1caff2048e68d49a1004039b168f40f52f4e4815e0e8b5d2ee3a02b6738da43f14ed73f58795739d2941253b223860e2f8434a6c3504d3a3f5980e465ccc7c270fc80889a8d8136b359ff7bc739cf0e0d554fa19a68de234036ef5cf47add6291d30fa7bdca175bbac53f802205cbf899a25d2c4679c4c7ff9f43db8209d4ee12689156b25c89a73d81c25d542a4301e7ffa8978bcc2a6102a662092a838de841794d9e1510ad422efa3567baa1e00868080d6995694d0d102194aa86b34289a34ae8aeec3d0a58b9dc07b54c14f75109d0a93b92081f744a03e8a49f386b20b0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000133d75fc8a6dd719fe3d3cdf49a7910e0b433b007dcc9edf56330bfa03eeedbb209f74fbe6de2ae73c668b9c8d424b8a974df8f11d133e575b571a6d450f5e8c501ac0d5677dbe925292a3c4f2d1b01bd51cb2e4a9dbd42c9e45a135d43e8cc40025f872cdb863fdc21430efb22a64ba4ca8db9c5a38449104bcd5bade7a58f422f69cb6eda02ed10f7c19056f01220e0bd6df949fc09d961ed51d43d7dcf88583cc89ef3b2626226fe1b83e145814d04ac1105c31081365c3784fab425b0e753292b89658283c624fe55ec02f57040495bf07e91cc560cca781d8b28d36213ac09201d6e43067c90765d84e2083f428fdf1e933757004b110b2e91db73e3028a3d7574d82eaf3c872bb05239f412082765616f7726018f9cb32da1c59b91357e25c158ba44bf75d7f3a437fac8c2cef46db61ec4dd7f1e73a4d0fda7a7c88976290ec1f9a9fb536454867a1a616332e2cd589e2c6cc361a25335c6da7c2e5aed254a3e6ff0291ccbd84b4372715dc433cc0e86c65dd8e73d9c5113e7c200a38029ce20f0359b742c557094430d7d66f79789b4a0968c453bcc8c719b3f477a94380a4e633d80c2f71cf43c7f9dc75275f8f3a015ee553319291e196555c7c3ce029a672c35fdbfde798473ab36062a5fc31c082c29c3556df6b24f66371b1383362ab76127f6d167f2d2384cb21e45b77515576cfa7fe56c444a304660386ed51210c7bd61bcb7434a00830b05a391f5aeba20ab0ef0341f68cee9c21c8a87372042ba0d4186ccbf50d91eacb3235a0070b809bb94355944966b4fa5a8ba1356136a763ddad6a72bbfc101c4d69142ade5a53a622a892d92302fef7ee820d65129dc95ec7405c060df0c8413db0bc51fb29b76834b9f80e6b7d1f779cb344142362265453a2611e4b084f907a8f40e74ab10060017cacc4a667b7d319e9f883a3ec5dd787f773014b2f8b9caa65cc48284f9eb8a572ce9d5dae6ecdcc755c96d21b880191a10de207ce0a94d2a6fb5499ad6957e312139f7736180abe31eb5e024ba5124d81670dfb98e9346010c6222df93617dd4a745e9f3df529e5f8d4f1538c3bf1c199111207c49f1f2459a118fdaa63d7a105bdedc1f73f08fa0a8f91903e64243bfc89f53c466e2afbd0781ab5cbd90c8aee70d81237bb4482638ec062c44010727939c3e3b19944a137086c0b59975f40af1fe4f4abcad0be6da3ca624a9d2598f98a474b801c7b26ecaa63fc8a658f98db3aaf44888695cb4479ea7066b8077208090b3bb98b65a293c5ce7d3dae342124aa4ba4fa17d18b4c444973a54e32506952bc3c9756024b7fe5e78d17d52bd2a864a644a1434e78dc1174036e98f91c7e044ebd8ad0a0521e184dbd5e008ae4da4b8e40aad7077a9f20d4730d30a088a6ab7798f4f754ca25cfbbeae36ea70bfebe3d7bf840112634ae5270363cacb2312fa4a3cadcea91c9c52445aaae5860d4b2d1625b95ce1e33deec23c8141b1ec41054df6c71d7685f1e3bab7e19102816e457535089c332082aa3017ded6cdba7022c27bebbcb8ecfaae55fbd0546b1cc403852607ad80cb54308f35ea7c8a9bf0b91d270d6af4cd6294b0ad432b401090fdcb6f9ad41ad8cad7f60d2978fbda7a900c1d7df2bd04c0d6b972521a3671de06e9d79eced6df60f7e62e1ef4d4e649247f63e28d1b734e6350b3d21419fe9b780da954bf61d62c773f101f4c10815af2ea8cf8c036a6311be4186f1170593e41698ed39d0b5f82c76102fc01e900d3f206a8252d7eaf83995574fdda7fb8d93124ff2a4eb061083b8c33adf85469b0cf51097a890b4ab580fbd458a32ee6e9148768e5159939770f893598f006814df8379643bdc827d09a2a3511fdf9f716fdb37323c5c2270e0e3a126caf581a44efed72ab07fa6a304f4a1fc583d04125333b6ca50b7d62db0ec50db69d727dc7bb1718243a4d418ced78d055200aa1cd1126e01de00fc90dc6861e7aef306f552e139c35db8ab204ebf3d4e5428723a919f00537ac8876a4f8d3085a9d754bdda0064e3949e44187278f9097c753aef0672d8309de40220a701213b4362afaee5cb97a8ff6287425b21b781f4705eae17d8bf85b3d22cae0472900a24087ee0b311ac4728dcbbf1eb272823c6318f7a34a01d34fb944426353b006faf0f4fb07b11cd958f35d62f02a579b2c1f5825d18609eba24b1e3bec2f551d2699eaef11952ad6f74addcea4207317354c10e9e74b35ddcbbb2aa6255cc53f7851abb156cb6739a501506af6998436c3b9c6f29924ce57eaaef8e9e8b1b10087ae544ea93498c65afeaf9509667beb82df3516b3d44d414281f416174e503d59985a76b1f9042039069216d0ff9488b83cf297c9d39952e0a728918b787102a667a5894e06fbdfc6f96de92f006b998e5c0971832582464c89c46e74879032bff9c45179dd14a11d20da7214fde6227eccccd1bd3d9039ae8016d7b95a310d40063bae8622eb5ee2df258deb0219ffc7cc2f378fbb8b5f7eb0d62846a5d03dbfe0d5976151672591a4443a68f57e45a6350bfccb487e54e0edab369ec2f202401f2a689eae98da6e5bbbc5970a81dca063f00c81b09d444c4341c9613d0f3f7851abb156cb6739a501506af6998436c3b9c6f29924ce57eaaef8e9e8b1b10087ae544ea93498c65afeaf9509667beb82df3516b3d44d414281f416174e503d59985a76b1f9042039069216d0ff9488b83cf297c9d39952e0a728918b787102a667a5894e06fbdfc6f96de92f006b998e5c0971832582464c89c46e74879032bff9c45179dd14a11d20da7214fde6227eccccd1bd3d9039ae8016d7b95a310d40063bae8622eb5ee2df258deb0219ffc7cc2f378fbb8b5f7eb0d62846a5d03dbfe0d5976151672591a4443a68f57e45a6350bfccb487e54e0edab369ec2f202401f2a689eae98da6e5bbbc5970a81dca063f00c81b09d444c4341c9613d0f2c9c5447ae1258463f3aab447a9f9906b7afbc722f2eeaa83dc7e2d2b05d15550da9914a1efea3e5e652d1bebf32fb2c4a8339fdf7e114fbb9026c3948d1e57b2ac0ac6f9b58736d8b9902a0567227960edc30fc3065398d32cc71a5620401191b32ecdb06154ad4de0590c2867c0b6df9c5abeae1a5be2bd2c68bbf2f7682960dd0ae184d005c939bca7b69cee29254f77bca2721921649c08956f39f7f26f825c4068e93fc72390510b6dcf7548b9fe416a538e12783a0801a41c7e1d00a49344786f08804e466db8b8c9e644ddc6cfa2b36dcc7c728b7ab476189774ecfd5216eacd9888cc8bca9478fcddd3ab67aa2d834db55bb347387aece5067ed285302b6d53a273e12c7cc35c2e499ce4b6ca3422eb981e069145cef3b4f05f2621135998f1a4af402d58a1d3bdbc15b9a0d1f4a581b877c3b1611c4e89b0eac48193ae491c4d89a8190a659d03db77bdb9e825b902128ae97c5a97d5c752b29882d3f22214230e9aae720d7c4fcfac7a22be206e8e953d0e945cde4803b8139060328a2ff48b695344c352c521b2eee3f637e014489b305ce01c1c60d61ed9ee995172381dadaec11453ba79d7eba50f965ddfdb3132fc625f40d6438f487b797f13ae491c4d89a8190a659d03db77bdb9e825b902128ae97c5a97d5c752b29882d3f22214230e9aae720d7c4fcfac7a22be206e8e953d0e945cde4803b8139060320518d8bc26fd983f3f578a3fe46ba955bf441c39c12cf59698303bff64fba9e0d94740995ba1c0070d2e56ae35f95f6532975159f22b635d1e3247e08744dbc1a83f470e497ae82e81d7fcbb4faa4b3b672d872536d0738a8060109fe4b8664245c9140f2eead544c062e35d941773a8c6d99adf55ad825ff189af24c650137000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011d914b39c4a65196ad29e1d95f407ac05366f1145bf878d68802840467ce51dc3d6c9359fd789a423d8ec2f5b5c551c199fae98035de0c66880ea26610c4ed1b163e7061f78716f773a7da6938ee4dcd55004f33259108a6026c4918ca921ee22d080fedd4867f4c29feea171642a2d920866871fe83a3dfda068b007ca58c3b1b509cafa1ce47b7ba5082acc5c5079d54df796dc2911e310cce686bde0e28910f06af2613e0df1dc2c345bd1acd13445c35dd62db99df602abc7364c5294cb1399aff7cfc48e588b067a71a922ddb8749a2f47c419c9b3a02db907412dc591b0b78b9600b31b1cbc00cec36421db6a321cbe3acc4b385559e980204f7972dd910c449e17edca3d4f2b68a74b55c991e21541f8452f05ceae1b5b3a5cc8a414b0d6829e7e057f35000bd4fdba36b2cd436f77d202489c59c4d593a57bfda8f4e042bfc20ee7fcce5e66561d9f87827dc8841fe090c8cc16ac941b3218fddae8d149caa99ac42b270c12fad7210dc2698c818773a3f27483434188a2685fe7d8f345b297cc315cf8de11e88e031f86c2048d47c862cce9d1c861a7c93216459702b51e3b1a5372b43ce40fbe26da22a93aa09a3860c3be4c449e517cf78fd87a1373c52e211649da652eddfc13842bc4463139aba0c3a92181eca3173c7de28bc3acef31f38a4cf1ec5caf11b756c9d2cdb9bd6c17c7ff50d32ab2eabd870906b323c86a976afdc61a164eab005f426e93f931f0c5e920bee7456a1d47e8721f327f44ce2b72e22d0e61317b8649cfc39a5e3e2cc1fe57b772638e48f73d9c2971631c9fc9f61d019ac7db8218dc229ba76de074d8dd69525dea339001ee192640a02067a60f29fdee5162d61dab1cfe6a85b1b7eae37cb6d8c30215a68a1c4f83dbb9cee6c829f8d56138a29e7c041accbecc48150ae041234dc9d4dca76c742360246316c619521c06e96a08696ff8264c1c63e2d97ee61a59cd96353b60fca3a03a1ba6362b661fc13a627cd8e3bf80caf4b1ad3c1974d2e14baeb14f7317f39b7ab28da639a3bfa1162a32c7037e339705ce3c8a7579bb92d27e8466bc4073170a667dd82226c2f38b8c51ebaff7af149c3c2fdfb34273a36a9530e144a0c0c3fe7f91378bdf97156c57d428f298ec10d76bd4b8fd22029624f79781ed46f29b818f103e8a35541174fc987fc3f55a6a9fbff5b0e7d89e55400fb525ef5e9004fa22673fd485332ba29c1ce0a085112dd181927dbd1fc6bdf1d15ae6d0f250019829ed55ad1bebc2184a7df4bc609f6a1089c1086b22aa4aadb277f12df6b1625c6ee70fb37a31fb31bcfcf8e2a4d139bd5978c75d8d581b9f01d227d719e0d90fb0136f148b6f1aa81a1236fdea334a68cb52fbf290ba7a181886f70846a1384bc0fa9427a863eae60febc3cf7e7789ecfe57612767fe76634b879191d8113dde3d749d2bbc519388434bcbd13c67a9893c1d883edc0eb2081c674926876028ab5fb0146d0a1a92f0b1e5060ef90cd4d9eb1807c0178ce377f19b8967c3725c4fd18236f9699a703879a64766ad58c0ebbe77882c36da772bd62a783a12f01204d0da6465da38dd43e80c863b4ca1613354e51498452e4561234269710001bd765fb1eeb3f36d4c8b446f646ce590820217e23922aeb1b554e46df91d7a736748441509597119b45ba0f39f2492e34192adba2f2a4642e1f7f6270624a9a0be6cb81677b008c8e7d3e7f52964bb8bfda39fc107cf03cf9136812b48028d3307c85f68ece99344a6c1c1e68a62cc9c6de699968f355e50f158d375a99195f33ab1db5ef71531951185fb6b319454b7f1ecc0773a15b53df78122cd8ae65ec28e55a4252c602cede126b473a703af5b4ca45c66915552a6bdf4376fa4f4bd125f98be31baf19fef5e2f04918d3b3197d73ef354f465b4012e4fc17f7d10fa52a75070a0d75fd44a3d4de065ee615a758bd33d41b51ff15f10b7295ccfb06a82d245611bdd65cd11860aab190773e55373e676f00f66ae2c0d10bd1e918e59f29dede0331cfe1a0bf460d6ccfc3a87803c49c76bc5876d609a55d7e6969f6f438a9b5710f8dedf1ae5421eb194421b316c874f76e86a85abca19d0bdd69d7542947b96c9dbea17b21eeacac7beb7c40ed2bd97356003230b33962ddfbb408a30214b310f0d31b89923ce3deeee1232a4bfaee660c1d8b0425d9c06319c859443f329be394e30129aab6f8a1520ca8ed8aade36a6e7deb9f04fc2ed4c730b141108ed26bfd32aae1dec64c409f2e4f7bca0d4329afb8b868ab60985c9a2f6f702f712d9402cd551e2139b3bf60d1b084583955d2599440b2edcc989065d0909112ca1c1bf1fd566959df7d431be78d6acffbb6d4654ea0efbfb5c8e202ed2d2f2d35e3e40e02a996a62082bce4187295524ae227a3fe582bd977680afd12d2d21df28c8bb9f2b00ec15d724f8b85c315eda3f929f13c2b93255fbb7d0ea1e1ea220d7374460d4ff13ea28db0747a3cea34a29fd21810cd8873cd756ff15e1e1715bcbebaa1bd7049c6d33b8db99ccf6d5fa6abd9a392e7a888844797492969902a4341455e428fb6392cc47246633092c29fed2265ba117310a8e955b6d69671108ed26bfd32aae1dec64c409f2e4f7bca0d4329afb8b868ab60985c9a2f6f702f712d9402cd551e2139b3bf60d1b084583955d2599440b2edcc989065d0909112ca1c1bf1fd566959df7d431be78d6acffbb6d4654ea0efbfb5c8e202ed2d2f2d35e3e40e02a996a62082bce4187295524ae227a3fe582bd977680afd12d2d21df28c8bb9f2b00ec15d724f8b85c315eda3f929f13c2b93255fbb7d0ea1e1ea220d7374460d4ff13ea28db0747a3cea34a29fd21810cd8873cd756ff15e1e1715bcbebaa1bd7049c6d33b8db99ccf6d5fa6abd9a392e7a888844797492969902a4341455e428fb6392cc47246633092c29fed2265ba117310a8e955b6d6967113923ea18517c0e7c6fac4d117b9917c9f0728c9ec39dbb77de85b5c17f2c7f4059566e6dec5172aa9a3d8a9347fd6550f6f1691a37f82eac53d94a6e7613a48387802b35ef46d465536c7a5125bfe9b85eeefae2986b2a5c1676fce05f4e00031db538e220d9050deb695a20721092fd516be72dcbf54583fa16ac019dccee51d7fc490211442a89bda54e307c18b2d6a33e4d61c37a7bc14225d70a1b8807923096f3065f532e86a57ac40df2077670a0043ede4ae3acb82a22513f9e11ce7208638785079210403ebcf053fb691039dc5feb64d5e55135b61c9172354fdb210a15e6790d8e4b82fe087135089323ffd067829bc177774d67da45e03ba2635140f7c93a4f215a82cf6beb8864c0e021c398fe6116c383d633ad8f237112c89209fd7b79a22778c407ba6c5dcfb5a08d6ca01be1025bc844dde9f67b13c165627014a61a3142c78ae69e53a0b31012aebadfa90dc35eb5536f4994919ec190c22b7fca4a22d89f65ab4f8907d14f22b785ecca330a9a198d313d069cec501dd33f5beab1bf3d1d1e3ce7389d5ea6fe81f97197ffcd963d9f30a96afe218580f088f458aff2d588477a591b4c45f207b3dc0c3f7890e21d8944e3185fec1f6d527014a61a3142c78ae69e53a0b31012aebadfa90dc35eb5536f4994919ec190c22b7fca4a22d89f65ab4f8907d14f22b785ecca330a9a198d313d069cec501dd3a6062f8bed79a7290db04404bed85d1455cedb45b7edbdbef148a4f3c86af6437373bc09f874b246bdd243aa3a7ee522cd025a946a3141b6bc285444d615ca42c79e53ec9984e496984223ced8d8384645fa1f12c9aa5392af1497abcc6f05b021f2fcfbe0d85665fbff7fc15e24e6be53d4d744bb712d51515dbdea77c9a16000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010de687ecd9819abfdec2fc8e4d16f24ff819bf0bc09f73327c05aa144882746918396787c4be3140b7700df76687548aa43dac930bdd8a5b3be73fe76bbf72d11c5783ef19ff1b3b85d56685f515efbf7ec43a10063adb174e2a816dc29c200c32d713e6aa05c64d8b922abdee7091c844423628fdd8b9425f4a50ea57a409752a10ab1cb7ba28055aeb5ea16be416c94d94791d5be7c49d84494968990d976602b2bfd231b41cd357caa0dc63b9e13cf2adfb8a7e062b316840e66ee64bf0f314995e0f67000690b09fd41a3a1235a405eabf8d8c6e71937a10103c3bcf58d000a69b11a5b8c63f90f13ea46220c773e3f900520b0429287bf393ce9b991c73321ea68a7e92318a8c005fab5c56d1dfb8fd5577762b094d102f13258d16e5da0eda98836c84203beb7093f04222052e06cddbd626dfabbce078111e8a8bb4d73b1134525d67601151e34ac7fbe0664636fcc0511b72c9e881d5d8c578c8fd752320835a739a174b3985aac714e98e144d42b0f1b47dd737d9f4e9219a445be7337e0812b0510826d543731c19ceea8d6865e29217e167b4fda8b4943da11fa801196b0a0a01cde7c0f4f330fa42e9ab10ab7ee65860f5e0563e4f126db920e7008e8b33ef700ded8ce68b14bf7cddcf9fa9f1cbc01ae51e6693b389c0dd07c13f48066252ba32f9707186fe8ccd1c3bdb6704de3318b519729614b72070b773042518fe847b37f59295d54ce23e45f26a5a000197dafd0b0431a14924acddb30c98e0a94c1ffca5a43ce4c1573e93c31f5729015ffd5475f0c694cd8e7d44552412cd49e5753a4295b98f3467eba0fbc192303c05762437b39442c5385f680519c992fd06a2d1cedd535bedc9643d249c16936fe3e95a28b2547a8ce7e8d0ce1399c9508feb42a376979828165fea6eb36d2fcec8c084aeab4cec76c592950a0d7bb3e863366f1b45e1b56aa32029ed05f632a4e3e52fc71db465cd2b592039318d26150dcf428fa98c11420612ab43003b95a88bbc92719e5affbe37fc9f910c98194e59dc9febbb9308aff698840f877b04d3b87912d594e2eb480c2e8cc53db347f95cdfada47b5452ecf5ef66bd4c5f87289de654b27881cf1dad5d75bf35feca1c82e6f741f47a6a2b24908180101d4303310d17e8a70f049148acc3452c0740538dce9ecd3870b884b1f46a4b0e36bd563d232988c778f525df1bc29331dcb1183b522a61b0eb53faa9596d02572a681f4d7a6e93f5322194f1bfa27337f028c8183e72eacb516961ec55805b5fcf87815ca90d177c0423b7fdbb25a23cb3895f6359ae757ac0a9c5ee1701933f2cbe5657f56ea251c56c5f8f0eb04832d0f88b5118ca1de4f7d3f7e481c0b88e37bafdcec590f8772e14ea4d4d4a152c274c832cd0ac793c0fbeccf17a2370d5380f10d2b2f8b3e5d1f905af035da92d2df8e51731041f68df766ca01cedfb596a4919682b7d1fdf86a41ebe9a152424fb9bf7e1e23f914fe074a60be4aad6cd9f485a61f425cfe5880a770e7b87fc138d3718726c9124ab777e48401f97edc47c8b0b7d6df06ed24e66639954b0d7348c0f1974a5d7f5ae9cdcbfc5ada0a88422a1c9fe59eca6d4af4e7e2d086036062f2c0b42e0ab1c3c7ca1f390b47654057a9abf42edccd80db73041bc287383172ee5553d226974d5510977d1835f9b10b4ebc7f543ca415b23a3ec5d1ae2f2305f629135be8fde599f04e2feae1ded0ef9f2b2865bc93bfb9b21e188ee872024b0e3809476913c149076f2d7fad7ff6ca5d01ec74624bbce307511cd0fe3c20f5df003dcce58c198390a9f825865bb87a9183baa4743ca9aa4726f17dfc8c5315d6297d151d572c9e1d9a803f638499e1dba4d0ef33e9d357d59c459c4a7a32211741776b27c8cf7da9481a5765a7e70c8ad232b699ae754dc7f8f46094401292c866815e32facbaf21218d6a67809b9086d5124bea12c61c80d097e008c6536a85662599ea854649f90e6430fbabc51ee62166753a0b6be9d05701ef1e6672aa91d0a2109b027bd7092bc99afcff53acef62bc660e4120a120aa3487893f01a00bf3b0447c024993c6c8977e12a404be63473b512b0d6adaaa8ac1ea59a141ce0b16516c9217f1df089fe53b105752689bba0e95ed2c3b201433b44a3438c203a187cf628a2e055d262fbf60400f2a067d24a45549294580ad1bbb53f33b9381e4b7f201163411ffcc6d6d4a568b4318ecd3def8122cb9fad20bfb1b932b10c6a5a22c9f1ec21e26f9d72cef81074d6f17160818e39ed3c7ec8fb8159456e3395a5dd360e13de1d90628d3107ef8b4b55279b87bebf2e5cae67f17ea6ba933e13c2adf1b99ca96c2e133e0ad8524832b736e287c721a22e79ece986be5b2601ec3d520e46635693d1ecc1f527adb7ef8f62198185d7796ab344037941a4db3662cd65b8a00f4f1ce6603636399b687479ae7c81afc3bc83acdcdba1b7c7ba099d329a475ff0b0e3199fc9c9c66497adccea7f879d355f158054115e4838470fee02fc9b204c8b907fe10f0f200909bd46047e633aee402dab8c962896e69e3011fd0364dfb3746f801ef0f0dff6f66500947da6120adb6b81a456d76919630c6a5a22c9f1ec21e26f9d72cef81074d6f17160818e39ed3c7ec8fb8159456e3395a5dd360e13de1d90628d3107ef8b4b55279b87bebf2e5cae67f17ea6ba933e13c2adf1b99ca96c2e133e0ad8524832b736e287c721a22e79ece986be5b2601ec3d520e46635693d1ecc1f527adb7ef8f62198185d7796ab344037941a4db3662cd65b8a00f4f1ce6603636399b687479ae7c81afc3bc83acdcdba1b7c7ba099d329a475ff0b0e3199fc9c9c66497adccea7f879d355f158054115e4838470fee02fc9b204c8b907fe10f0f200909bd46047e633aee402dab8c962896e69e3011fd0364dfb3746f801ef0f0dff6f66500947da6120adb6b81a456d769196331870947f95bdea9c3c192cb3bbf7effe29d0fb7bf7284c1d7e0d66acf118ab01040c9277dc8c6351fd039b70656118046072e337c872d37814fdf794ba768ca1d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f31191ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a34a1d408a815218dd978d85cbabe63906fcb6edc584daec2c3ecebe09c9ba6e63e844b86b8c4f590bdf70d22aa7ffb46cef2f868facb733f6021b5cd75c6b3b20cdfe26095404455247b2bba849a1b548587d63d802de2b14f45ff566d17486037474a7ffdcfb565c32df73d979327c405c73d83f718ebb906410d73dd2a691506fb559fd2cded1180d261ade475b90a049b867c6e953e68a9eae362c128b6c03b6d97230c19cc65a61d650d6c2e045fdfebc3d59be318deace7d9def82280222b3f9c77fc3bd3c17566dd79285f24c0ec915bdd0f6a6b45c99c5e3b9018b9e624f3cc984102265dcdd7c86bc903d5b2b9219ccfd1a413f5b054954914ad8aae3138f3bb27893a847d446af3c7d6cb1c36468f53ea4806685a86e0ab666f443a131ac312f8bb931b3401555f0b5434e084905dce14394217e73ffe32d8593c1e2b3f9c77fc3bd3c17566dd79285f24c0ec915bdd0f6a6b45c99c5e3b9018b9e624f3cc984102265dcdd7c86bc903d5b2b9219ccfd1a413f5b054954914ad8aae2dfed48371c9f855640784531bd81b773f85ab89213b8fc7041e8924d164644132bf5dd61a8bb466ba2bfb8ed336fff23c99937404c94f5defa67e21c52d48483356b95de9c03a5378e6a62748800e267bb614d097743e02271e4a015c44bc2d224bd8a8b797c9cafd761b76d756f1c8a16228e93bde4810bd0f4ca1dda5c58800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001268e5b82f57225b1b0c66aa1e50ffbb14ce58073f4a703c5fa52ce71ecdcfc1924543b014c24df7d782e03a962924971785c1d6b0ae9b029ae2ab47ae8baad70306ad4512057c295cbd78b07cb8e1816508963cd8851a6ad9c2397a6ccaed75303b798ac4a672e41653c2d63c77acb13bbb4cd2a4e87877dd0ff16033cdc8564391b657ccc9a8d3e26ab37009bcfbbf9bebc4fdaae62f5c522f320bb6d37e94c26e1bc6f724121e560da9615d941b178b62e46d8a4120938c2c63dfa6a819164267d2cff1dd56eb16270a0fb14a84966ce6c9381a22d4ead25544e586cb8de333d82fc20d72cbe5f76366c92d13208a66425272f5a3b344b208f5228ca2946c4234e17b36a2696c06cc14680a4f3d02db87c50080b347908e8829c1e2961e123067984d5040fb99199e7dfdfe61c02d6fb300259ff59526371864401cdc367ca189a72c27d4c0235960f0c51f688614a4ea14ab0647db99b7eac3da047ed58f4134f76e3f646ac0e49736e717a728e69dd9e9a2135f3a83312653b6b29452a3a1a64de4d7410bb560520c7ca7d1928cb987e3232efbbd632438dc29fd74e289d2774cd12da0474a320f5280e5cd29567efe0b711b4582e6f1875fb66bf6528432fe1b42dd73236debb3f923a9b77a80205c8adfaa4fbcf24d1802a0b5e5ec8473284ff121cfd86f5162b417e8afa0d212199fe61cd0bdaa07172cae2293a020e0f0530f42235b14f0a05e7fb61fd05c4cf8a02e246f5500718fc1cfce524ebdd0b9a05637d526309fe52c08a54fc37b39f8617e053209a35b6e7911311f56a8b1dd1c2a86fa96b9cbffe14ca1f1f1e69cd28304cef3a48cfb615136893799d780dbe7ca0ad99bfeed3513399fa56bf3e3082cfba2cb3e74c7860809f63fb442608c57c5d685584e7ae2fe12f028b1cab1ad9c668361fc89c07b3d9bb002e624d1dd111979f82e418ceaa9a6bfe1cff87b9e76cc0cd3d0386c7252b42502e17be12d6967d7c01a84f1a435ad8fb5b7c04a2180d93de88ee5bdabfeccd9c0d12f1287e8f3f50267ef3ded562a46d4bdd6ecb277f04000aea309159274968c512cf077dcec7abd507534f3c19f0c4519c8b6cb259f13b6151106dc6790de8f888260943447c29fa173eb3e574ff7bff0ebd2b2acf251e7682e2b207c116fd882bd5200f15d47e4270695ad7c5655214690b6cbd75eb3b8b03f4e3ab00ea1d6df8b537bb13ac786097a6cc5bd80d24d7653503efbb3f73b91ebad4cea5f6e7aa823503f79abf3b9a9d6c360d4ef3768b4ca8a74ea8708d25bf39d5e078a8c00207161438f1c3e398aff8a6cd340016db5ff521c1a174ce8e5300369f3cab7d6372af3853b90acbeb66462c445eac67af9bbe686295cb373a35bc23f7d9c25b32697f2f4dc68d5a44c484861f4827963f838e2f35e903116a521e59c71e77b76e6d6d2100c9a6c3740f6e72959b7fb43bab18ea5351673feb0dc0109001e8298d74232013e8c07fec6794431c0d4f973e061dea62937cc676e38b96fa5da82a5cb89b11572cb1801e0c67d54bafdef7acfa784cd7d285937a2021547383157f11da6a1111a075c3a63c53d86f98132b2f7ce4b6ef98bd8c0f66fbeff43b5c77dcbd01227e39362d66411689f7b35333e738ed5f1f8b1314444889177b7c47e7cc7977062449005d344c243123eda48c346b8387a8c1e7cbd9a3d1463ff688232a69dc1808fe3c6691431aace6cb7865936719d548f411c78183038e414e0536065e7c0dcaaedbf8f9c578a670acbde0f8e04ac57b17cd3ea4d4067ab0a6b24c55d6eb020e5943452ac0657cb61bcb9dc76d3f0a5f3a62077ceff216a32a2f4f75fe94095a78d7a4c6d680cb0e906e4e61d26b7db841077ff49f9e0d594f9cc631df5f1b043d3332bcafd22072cef8d4bdf7e3d860a7a267d39332870c4b4f836d8b5a052ce591625623820423f30dd8354c35ca7b9591dfb80643612c96a00a3249903c0e820dc24176e9f1b94cdb75c94620a777e94d908b7dbfa8f949ee4711803f052f33ac7806f59f2c5bc158cd0c167bcbdec802494d66021da7fd1ab7288f250982ee97418adf91a1bb9f9fc036850566c892a78437e100cddf3befe9e2d1cd10f4b15b95a099765259531cc58dbb3483294d9588d4af181b072edeb3149f3003528959949e73e0742252b986dba4e951c000d0671b28a29bdc2acdf45cc4ac30d370d4a42bc162fbf23b147c871d4867f5194dc95f87c96657921384741a9826d7d19ebdd9ac7d92fd15bf76ac0c8e8ee8ed4c0a8ee02a961690b9e00e476a19282e61422653826d02ea408953f371935dabaffebe18f10316a0331ff1b89702371819b5405e73def16cbd515c3ec863b8d78818e3758222e940da6047650f3dc8e7e64abfa18c210e9342aea3c137be8dc173f06983997643f0129fb89af20b1378808a41d8435ab71fb296cd39e9f29c35a87c714b8aae8e4443e164f94b34ec877f75be27bca548e04d6932c6162faa63538cdbad90ea9eeca91e9b06b637615a82b3493950c5939e7cf2022191bd0d0c4a6e3679b568c7555366f8de77089ea57d4cb6c6af3a6c61830dfdde6e65398cb19b167f663065db999907218a26d7d19ebdd9ac7d92fd15bf76ac0c8e8ee8ed4c0a8ee02a961690b9e00e476a19282e61422653826d02ea408953f371935dabaffebe18f10316a0331ff1b89702371819b5405e73def16cbd515c3ec863b8d78818e3758222e940da6047650f3dc8e7e64abfa18c210e9342aea3c137be8dc173f06983997643f0129fb89af20b1378808a41d8435ab71fb296cd39e9f29c35a87c714b8aae8e4443e164f94b34ec877f75be27bca548e04d6932c6162faa63538cdbad90ea9eeca91e9b06b637615a82b3493950c5939e7cf2022191bd0d0c4a6e3679b568c7555366f8de77089ea57d4cb6c6af3a6c61830dfdde6e65398cb19b167f663065db999907218a1b32ecdb06154ad4de0590c2867c0b6df9c5abeae1a5be2bd2c68bbf2f7682962ac0ac6f9b58736d8b9902a0567227960edc30fc3065398d32cc71a56204011918016098aa02665e1acfd881bf89573a1e3d6325e54235c9d8ace9a6067e91ef2dbe6d83ddfab2bb8ed281dd777263c51dec4d6493a42f57b175e1d9c2756169159e4d980063e383331784cf2275dba53739b7217559359441426a28b206079c078c626b9bf67b62c0b171159a29bfeca4385ad26c276ddfa700ed9f4d9dee2426a7cd2000abc589e390c0cb19ee3a22fd89b5084f98d42935341200b2cecd5319e05ebc9d038638cbfba629c3ce466d5fccc92c3003e910204e0d4f2ac00e7e35b065466712eb434122f65cb85415faaf9ae65c740e7b37ce803635ceaea75105965d8f35b8e6ce817ee5c9fd8adc681406ad0d03afc563c7379517df851a7129ceb31b3341939af0183f3264b1ac7fa2a0c1c5646e1b94bfe50bb9668e8df21077327699cf689135753dd0d520e7b35f9234aac2a1e40f36e5435292a06cdf0ccbb28c4fe84ecd072a96bbb9fa9d580a4389eb42650525edb9bb87ca0aeb7d2780e60c86acd9d6e5947b82321b74a517c4b3974e9089524e180e5adb869d8129ceb31b3341939af0183f3264b1ac7fa2a0c1c5646e1b94bfe50bb9668e8df21077327699cf689135753dd0d520e7b35f9234aac2a1e40f36e5435292a06cdf2d68dffd31258773093f2dbef488710d0ca218f4aa0097d347b8b1ae4d3e01ac35aa01f462866b29b5c8acc3c368bf24e3d2ebe12ed21e3d08f8321abf9a9b7715137347744b592ea298b9487c93edfe9f69e25a2e95cc61ed2ecd06dd946be1306b87b4bc9e7204fd22a1ed1fda6bf2a3eb863e8a4f10a47262919f5e434113000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013aa87bb7efd2cec2ee368aa77e5af6ee5fd840c158cc0900232cb3bdf30c0ad33072182bd7475f8d95d1f5aa4bc0bce23034d3d7b09b0e6474c398466fd24c88300582eb6bea079cce73a116c01595bbc8282f55a4013f175ab8796d152dbe700e28f427548bda5ffe8006d7309d75eb62e8402c7f9be968e70e4b8abe979e57397de244c23b75e2d077417b5c8452f1e202ea6ef9f42362ecd1006c55cbfc640126528fb2772a6dbf1e914d435581050931442fdc5d95cd421b9306d24a63d8150152e938f9f8f6163b9f53a4f07433db746eb337eed324a9498c79c6e00cce005f2b516be55106b645ab176a8677e36c810da7942ecd1ccf07034dd8711f261399fbdf11de5371a87f6e98851a4caa66f470eee0a886880e95b591dc440f920c1dbec70ceb8bbf34f1b08c95c98f7675839c53d083436ef26dcc89ef7c16fc26e034c3bceb70cb73da5ea32acf4481012ac6bb2141e9b2061232da62fd40820ca228c4f48572ee3f6c0d59da84c1ac5b0554c8dd63c7a9d38e1800c1aca71207633673687ea3087cbc2c7740e9990da90adc06ae49acb22e4cb84384c3cd211d97993bd4b8b4b07420b98b48cb313927c4a52b9daa379e4b31187568fff6f10c7db2e5be773112258081a649b63ef8f9ada71197a6922cab4ae47c79fa87a506eafc856be25d7de1ea3c3db7d7f344cbac7585f77cd79f5c001d503a6ce611260f564cff19ba63a79502641dd9da68ab39109e16fb29712de28001d46d1084072d1cfb0d7f174a011e789e80eb754833a02c199f77254d8f5e9993e3132af110486a43d786edb7ce99a55aec0a694721d58486bddbdd21f105264e2e7965952b3ee2b75bbced44f8888e04272e2b50fea0d501cd6c6934ca8b3441bf759e2a0042f66e00c82cd472befd9c8ab3050883c4d529eac8e7ef1e366fd2eb50516a3d1c4549f3e750fe9076edb07fb4a08b92587fc9bf831cc9844c5e34f015d5590124a7738720057ef8904a0ccda722d3110d385383a18e5d42cefc0e3ce5a6870ebd42155f5dee8037b9b66d20477001d179771f18c833ea770d41efe9323a300e149462bd9254412b5fcef0351be6f521b5e008bad1430da7adea03ede9f4900838bd5742cdd661470b4dd29ec452d1bbdca97151a848bfd815337659a2ccf90132d598405efcabfcd6ef8fcb3ff974a0840ba25b972bc0a3bbbd654b8c4b8d0be8faa50dea52e79e57c7cc8a4efb5c6365cf81902f7c2752088ec43f66b7ce153c1e68d95c15e061a1369a00efaafbe941302d52834a3722cf8d0d92feac1c16fc377fcad1c80be3e39e6568d60eb08f7c36e1b74600d36aca224144adf7d52daa2842ba169b38a4c9f4268d0d5e3c028c0143f0fe4ca21d3ab504446211e724929a123f20303596e1cfea666a2456667b368573bf0ee2fa92e0fd0df60a88056c2070c023e346016b85fd6576d233007ce7ff8c879085fd001ee8e34e18582dc83d8c5279c2300d0a90f4d68315fb87ad2eaaa2b0c49c43dee148f98180162934478e29a541dbd53443f9650b3d5d618ef43366c782c4853cb7df499dfdab02f199aa4fe327e83abc5fa95826797a728dcb0a9c6a9e661c770c2f689c5b2a348ea2c1165f684ffdb95a0e29e902e0e94c1f7dda4f270ecddeb5d148aade4316116a180def8f23a5e07f56a8b2e0b217cfa46f6cace27cae01a6e68960dad211e3a0b9c70141e39cca94dea2a2c483341074b1a00855c7500371e6ac2860ec01f430ad2ce807243166a487a32af78bf0e3d1469e68d7c4633dedc9790bc9033cf5f4997a6d2284273957ad542c363199f4ebdec47da7b702c037bc7a7479033ffb8347698d702b7787a23e51bff1d419428ebdf28617ae5c334ad3fbe072222a524c6bcd7d519352a7115ba6c0c5bbe1605fd72159dd197b162c4cfdcecebf1e2616fa15824fd2f0996cf6c03da73108cdc6b6e939c357ba9b9e8d450c377b0eb33893f01617a38c2beb63733d36cb6539ec05c1e419f7be275b5e2787c7c907c554d81d7898ef8d9bc7250455fa5f4828749d415ad9a2b961ca95b8d4cd8d18f0f3e88c69b3325dfb966282b718d51c11249c4e763d6f2cd65c3ecfe4db7d38226eead6601297dfe643efa08072d1ef354346f05c96f394f7b43d6ddd2f2d2c8c82abf52e525d0554d967ebcec6d0fda3aec96075edd17d64a5b116ffe81d1dfdc9ca63f37fec920459f7c1b3dfe79eacf3da2568f667ac9d21b388dc2a9205583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee83aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a06130191191ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a882546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d579059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a63a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b1c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e23ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c305583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee83aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a06130191191ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a882546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d579059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a63a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b1c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e23ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c3017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e17f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a66373132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c83614840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d31262084ff4eaf933d6bc5e8c80a6d386cf8915c72d09b721619ee695ae36cebe4621f5af3dbb9b764e06388b88c8ae25f7a7275bfb8e202712160cfad61b5bc73ef398f614735db5469d4e59f20f2345e22d9b2ae524ebbb628ea9a24fec8e30f0907bb5847f3ec89cd59900a77cd11b5b93e4e9cc3e7a81b21a34e34673562c4cf08e5b7ee0f136a61bd9204360bf642cbc56347a0da0cb8daaf842450dcb7999020e7576a254c589f1b44c49b053e6896e604e8ae80f95b2742d55558ff28c21b2b6879fe81419e32cfcc2b0480ff303bbca2014ac309b579f4be78fa1264a22208134748d8710762979b1062406fde0c96064ace3630870592558b307fee102d2b53331cec0a24ee2f94d881baf668692f9fdf19849125ffc37b4188d5d2389e1389d8f7dd827262a24dacbdfc7e9fcaf613aa817fc38db7e90ee3d2300c6b692b6879fe81419e32cfcc2b0480ff303bbca2014ac309b579f4be78fa1264a22208134748d8710762979b1062406fde0c96064ace3630870592558b307fee102d19a05d5dbccfdf9e3210a6b67798410dc2a2d9ac30fad00a082694f3512232f3095341a8d43c5773684b92297784b30a229fbe166ff382b5a03cab0b872930ad230a8efe605b8b311af384ea662bb972fba7d96f527d71f3430c44a8ef2d33931746ad698f636962fe7915542f1d6f9137bf72a79df62c34b6f1b26a2e2c008d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001223aab5427463ef8b619ea7353cc4799a55d30fa142646503581606e7d5ab8fa0cfd6a5c45f5de7cf371403cf795a635927a317e0fd2367394c05a8484f232a90b266232fdebb932350a3da7cca1f34e59079fc855d5f37be979a0e1dfc6a4fd2a2aa5bb16e89d9af696234930bf7ad8c3eb2c517ebe0a7d7d9793e7093e6e930b84a84d933b8d7cf8109307659e0c622200e7bb67e2d862caad39876674f92e35821d9261805509641481412c34252181f7f011a1f726e1a850a1baebe1c1f739b70073c162a928c4b9a0621ff969b5c51a2f74847fe0843ffbfc0aa20e91c30585135fe105f005660464039fc6b38283b6d89c23480ded8a0dd67367f36ce122e50c052955f09effdf1ea85ae2df1d1c4f49e6193f109ee367e5cac7dfc345111ef3471e93694a5125d06a1b26c55270416f585674654a3284468aa3b617ac3f9115a4577173bd34838aad2667eadb65f5e139b230ffba2241d2d687aa010821b0a95546cd989bd62b791b43dab6176d9e6794d7664d302d47adbacd8a5b6b23f1640e0e7f46c2c8da8d211a707980493a3fcd321911ebf3610265a2ad9ac03180601e20bc51ae3032c3f73f86f211ad7996ea159517c6743e3185ba5337133a48d1c5c00894ceb06e08bde00d4bce75abbe63cc4fdb395d6cbcaca87ef34d1b3989bb4b83e9cff0262c4ad0ff8b4248283e5a8a56f8282515bf078d09b37408c396bbc1ed32c79235f06c5e2ae910b1a98d167c4315f24d31408c2c5fe57e0094c2d036e93c931fbf49462677d56315a176c660d5ef9115bf405338d038bb2577acf22127bb5804721cbd729ece0cc124adf335b00fc3f4cc93eaca6ff53b317014bde03b059294308581996d88b21c46a9e6773ef08fe9fcd437eda975ac0f5501e7eabe3c8ae39352b9ecdfcfe48d2c2ea547bb8cbd159847569c6938b81617ace47c3974b720298cc38e7bbce7993ca9d71105cac2809eb84f359085a71e6bf72024402bd72517b47a3b69acb397219c070b22128cdd9614a82668785b2bba1ad97c31f7d3f74917668d1991f7523e115719f70133dbadf82485d1a8100526dc0851f5ea5e969253ef6cd4b66d94d90fb6f6a5755cba4729ac2678d6fa2a1ee4c8bc3c6317b0b6c61d5bd8eb0fb244d07a4df756e5f712a6800f2f5e7623f44ca7a2cde4fa2e67282bacd260257cf83d2e587f4ef508c728ae0071348d2500aca29fae28469b0398c55cdb5cfab6becd975d895f7153ba84fe0449c4802acc7050ab91502527bb7255e8ce918883673a186e8a52bda68acccaec0f57153739e43ff33fba1be402354abf9ea7e0204140ea328b66f8f8d0b1b71321330c307a54de57586f6bde0101331bbfd8854dd117a6c6ddedea0eb522f9fb3dd6553e43d21c69e7dbdeedcabb2ded259bc10ed17cdcc45bbaf7f9d6bb33e67ebe101a61ac194f539a200fadec11d05c27c73c49f167cf3f57541821d4a2fb9764ce07baa737f5eba737fb78ef0156150b61a31ea23a952794f59f26f3271b41e1b720d46960fb349c3f5ad9b0c34ef8bfd74b3d9d1d0e9784648da6f29d00bc8d0d08bd5d5934efc20aab9e17f23d820153621427626424152ea2e0d41655ed83050f7702a73dbbae96123f591da39f2a48ddddc92830158fb7896386c70ac3478b2d7c4a8ebfd668c698dd44734daa7d7c8c6278f17b7cf4679521219645ff792c1a8c6a1dee06d862edd566f634c8f1abe30b7408543daca3d04a5a94601f2f1234126a170fd565bd71ad54d77811f229079bcbb028cf9e4cebfd1e9c6efcfeec06e542c82d5debc4d7b86864713ee117f117c1e281ffd112629b9b51e630b4ec02efd29731936025e4f43f0fc555877f2bda88790f81a156e0e9a0035ca9182d3a080ce33f2b61dca6d90bc5bc2a1aca1d2e0cdbc49863c40b49b6923789c5a73a7c18679b99b9adafcaed2a48c27434f77e838fdadf54f4051ef3a99a381ae306cf30731ef9fc3336af64bcfedb05c0d4ca09383f917d525525365aec00ca0800dabe1876acb9310cfe219330dbbb51198d52704e5b2d53da4020493b69aaf8364bec04a7ff97f00ebda37173928cebff7f2ce8d89754e9f75bae82f20ab7243f66c1d91f42b5beb9eb72661158cdcddb9978c34681751b10c25d5e75be42863073297d216bb5bab667c4b73ec650c7e6ce227ad0c84fc5aa2f68547e3c2b481959ca90598858fa95eba29f590ee39e4ac562a3c7e97323489b01d201cd78f109c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b09c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b0461dda8d89f9244340ca170b871686ead72c0f6aeea72a59dcc85f5bf2f6861125c534548436e43bf17fe0c04c54749cf0b77aa2d2eed5e1e60a2d2e8abc05121658174cef8b7ca01d1325c91a7d18b8dc8db38e6a8a2490f75e8322349c5891292d7ad405fa37806d82528bc3fe8435a85e151b1fdf1f84a5868f532008b701712904481ea91840a767ee6fb814cc3d2571a51c249d288fff9855569f29e602dc0305b7814d160885c828f8813c73f8b14b706ab63d2e9b2a9ed101d552303318a2782ee9f07fe7791ee9af1046298eda0d2bd364b019713221215c83e29d2131511cf8891eeeb9e35101f1116fcd9ee74bb944ca0b7473a6704d45e2ce8740c5237c904e44f8c390ea5afe6d43465bfaba69ea892100bb3705ddce24ee8440ccbb6b02792ad4dce07ba2548d480a5e46e5c1bf4881bce63fc0d59ced2a6aa2bb184a615bdb14baf6be323fde7045de6d2b3dfe994d2135fbcd31b12dbe8b12110f9e4034c391bd12b4f831b670ab88ed7298059072989aa40eee8a6918de41a38a0e25867b5f1ca222c32b5e6c605e70afccc73b9e42cebeac2c51d86d2181b10d50d775cee443a0fdccb3efad072f8b540002a2019c530742524e553b4412bb184a615bdb14baf6be323fde7045de6d2b3dfe994d2135fbcd31b12dbe8b12110f9e4034c391bd12b4f831b670ab88ed7298059072989aa40eee8a6918de414c7fdf99c9d7a30ff3f01c0b93149cb8de54c3c414bfb601e2f1eb0b4b3cf940553443c2d805de874378ad9b92ee825f6e754db6ddcd5ac5490e8ee5cff8b6a11a42964603b8a286e2d3721e0df820220b0ec0a91b6b59d6f68eb4153b3f35638cb244aae9baae5a6ccf5d3e7886e59d73c790067a454ca52ea0989ba90ac6500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001156348d528d433e102c8225ba67e953c9b8e9443c73d4d04f42a007897905b4a1b464eae9b04bc632d550c1c409b9aac1d2e68f4027ab18d758d805a2c9d4f6a3e9388a4ddc125237014b838ef51b609a4a2611bfa45eda9f9b7e4657d023700220d8733efe28948123ecf03f3c386beeb84d270ee0a88c0c38c1385a096fe6516bc9272fdcf243d3fdfa5d641549432b2c06425fb8719d0b0aca5af23b093311c361f97825b8d682887e7fdc03b75eb22e6b589410cf86084ab5f6829f956543dbddfcbb9728dd7535fe74d1fc80c06400471844929a89f38cd795cd04f84953f91dd744e6ef0d5d34447f0e98780328b53d5de25cfc3791e419f53bd144574024253cc3b392ebb55bc27320e560f3f7f19d3c5429dcb6c94596b45d701c4a93c5e89ac75ef23ab9fa0def836f94a6b722db8a6e42a64a45b22dab4c34b80aa3db8b3f059c4e81f642f62f06fa5d4f10bacb25769ce51dee6f8ef2804500a8722d73456b86fdedeaf8395b6b41e59ac7548ec8a3cb68d45b57ed4c18de1367220271994fb7f2a0408a1780217fc3e728f75b944a2f93a6d3a275557ef347d26189159cfc171fae458b3fae7fcdf36ddf84417e01e2a39e1acc9f2085377b8f92f6b1b8fe3b958d5c221cba67a61e5339bcd07ce911c7f864ed5b097564131fa0dc077e2d8958b161a0b3a14807380bd98eff6a10da066bf6e2b5d67f40a55d6348fff8fcc20efd03149904023d2eec122aeb2589977720556eb4d5ea4fc13ae07f104bc98938bfed81d3bf41aacec07c01dbf96ba93159caa43f576c3daac7c1a6d7557b2e88e410ef1ecf0741c6c5a513a94d51f3bf928e4b38634489e46dd0d14d431f33082059505b6c9f0cb2a161268b20e9229127f394e6329fb0b0e0f0bd710efeaec4e9b022a520fd98ba4321d50060c1103f10e7ebb4ac7640dc7473951b6ef46f4fcbe9c5fad5f44b61ac380a14d48cea13bf6d6ce6ad774b30e9e1c5c236966368a9f132541bc79e52877933833941b2d3ab56ec0049b331ed7102241f0fc829f592a254ae012c3067990dd1f8c90a9d263170efd887231b913043257215cb79ed40b26ed32ce3cf75233df6ab65d3b4989c469ee0b68d05b9cf43ba85c2ee954276d7856bde17395127d0cc6d22e5d781e417b434c34f8e5c14910e2a674adc2d24d666acd068f6b38b04d87214ab9d62ab88e482e8e46213c2a0c63114075e963d8340da7cde56c137698973b7063ea43fb08aae0ac25fcd83f0cc95f96f2d11417ae2fd9553d5e2fb0d4699b2e1eb9b32350455c1f30706ad1282f3ce57f837297c8f7c9f3e509ab1b9fea8f43976d3a030566126228e292222e6a80be81cbd7fb2e71a62920c8a679b86b286a90c5f5d1e13b691ad797ccf4240b7fcc8b71a19c1038689b44a5f9c41ae30e1c40d82749b4689c31d09c53732edc062d02af22736a15654ad527c7085b1d49c57c651d9564841f69974424a212d9424652587669fd74181f6eba6223990cd4644384a9dd16d6522905d4c649308ac740cd2f5d239ec21b3b7d7b5b85a8b3fc6a0e36ba745fadeb74c2bcb5f311312282b35f3a47d577c1b7d4ab9eacc0c62bb4e82f30d11ce3bc215608313f28b5bed89c71473869964ab062ade8b669218c0d5c71d8d117aa40aadc925812133267c9235df8ba453a5abd3659558df9fab2729f417328cb943d8327bd082219db108e63728b70a5499948787610bde21fb1dd43e69bc5856d9b99f9b8e6532a25ede904791ec88c7b0f8adaf1cce3c6424583c944b8a1e54f42572b95c07a0fa2897e8c02fd5c055ad2e407c74b584f710c3200f87c05c71bb48c7820353e249bdb5f99dc605fbca2f2fdaf1e25079369f1f88fe4a9d0c81cdf2a0e75955f098b64fbd5647856b909383f9990c522f2420015be89b46b21c022ada4f4953b3ae57996b98f8172e712e57070d307e66c690e2fd97988b661a380d4bd3a502907928d026441b57bd9b5ee6f4bb3a3fce8cb5d228ef193654af79d2c4586ccb220cbd709d0539414b8b70a43baee0e43c8561bf0d3a37fdd409c1805733e99003fc2ed9bb52bc345d77b89f7b195deef2a23e8f580945777d61652888e314cd03980c88f45996294fa78604d51f8c5c65a458d3a2c64e0c4f7acb8d68a4fed901d1eed877e59715418cf6139ec9cdafe79d44a80052699093e3e145aeae796ae2698d2b1e820c6f436f0cf2fef15337b17b9bb48934066e0f5fc0f4206df3ed52d30c4b65ccaff430a6ae8691b1502ed1df45381b89288e2a79f83e093ee643012cf3b49a33500bcf5951796e4eafd130452457a50ba7038f18dad0c6c119bd121f3d78fcff6fc4f34168a0d87690ea12ef1d6947ef5c11a7a96009be3a7f4ed1e0c2870300903b0cbe975f27896f15ef354c2678a5738011e9730511c580b1429c335cf0fd2ed8c0470b243a50d4925a62bfeee6832d34d3293a1317247c89f163cca30f02d1273fb8f4dbc5af2b6da7c1a9a0da11a25ce66998fbb8db8376210d00d0b4f1ea3bc16337b5239426dbbd8082fb3ed17352f315a93303b66eb182f2ff2f4b0e15c43e9cc84adc6bd92444a3e69481c35c3ec67d29dbcc49914e92d30c4b65ccaff430a6ae8691b1502ed1df45381b89288e2a79f83e093ee643012cf3b49a33500bcf5951796e4eafd130452457a50ba7038f18dad0c6c119bd121f3d78fcff6fc4f34168a0d87690ea12ef1d6947ef5c11a7a96009be3a7f4ed1e0c2870300903b0cbe975f27896f15ef354c2678a5738011e9730511c580b1429c335cf0fd2ed8c0470b243a50d4925a62bfeee6832d34d3293a1317247c89f163cca30f02d1273fb8f4dbc5af2b6da7c1a9a0da11a25ce66998fbb8db8376210d00d0b4f1ea3bc16337b5239426dbbd8082fb3ed17352f315a93303b66eb182f2ff2f4b0e15c43e9cc84adc6bd92444a3e69481c35c3ec67d29dbcc49914e91de7898ca0b76c5ccf8ea31d9866d81454a22428dfdbb89c3b361d9f92cb085725edd8763b0e9f24ec8bee196162f82280e8709816f727bdb7fdac9abcdb63e0004c37cf170d22355a2c252313a00e318136f39a3ea0096dd1ef1c2bb8c26fb51b9d5a2a50c6d8a61acdf312b101a31352f3356636139aeb9593bce4d5ce20923bb002b473868b3ae217ab0fdfc7adb3529a48c0cecdead747c452c5b185346825d14e1d68db3daa98fab36ee6c227d822709121ef286bfeff5667784fa49e1a3271e227098b30c63020e94b6f540484d6067d34742a0b9ec2e6bb89664638693788da072119af66a35ec9c22a7467c251a9557141a55cfad4b9facde944fcc01037b1dfce718d4e54e2fbc22550d05d4ffad9acc5a4e422836db263e5027003041ee9642095ddc34c2368c7d5abcc985cc4482726ca79b23dd3ddd8d71a7cc13159f97d5134211bdc683fa5831c115d35b484e0c21ccdd7932b08e4bdc034011057e8c8580c7d259bad9e10a723a662104cac42458ec86b161cf40d51ecdfbb21cc3ea4483b716dd64537bf53f919ba4c6d8138ead137118c07f721b47287f63e74cd5f742a8834f8a61ed3ed9b64ca70b18bf9c58f2f8de4c8f85a6d567b913159f97d5134211bdc683fa5831c115d35b484e0c21ccdd7932b08e4bdc034011057e8c8580c7d259bad9e10a723a662104cac42458ec86b161cf40d51ecdfbb38a4ddf0cdaf5d29779a2e695cf634d223455b30594c7e098337ed7b16f65592317aec65c84f4503e572d574859a9ee83786912475583625c7db4cd1fd5ea12519af46d72ef93a5dc982dca82234f288a4929d34bd197741482b27d409b54d4b0795f53b7f04a5d04115d43825b1860e1d1a75e473adba1abbad2f1d9f37c45200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001277951907bfe8481fe8c0fb3168ebc8d9ade4f82519f3014607913dcd66927093231de7ca90163569ad0cf59c270a567c7981adf86f67403d4d95b3b73a6a4fa240f1d838163248361148e609168e2b90cf3fa6a8e729394b2f7ed43591f8ed221dadf098af36675aa1d64c147b2862258bcd60cc1a7cab8112c568ca715c15129bd9bb3d7cab43dada62a9ae44256cf39ef22b3c74af650fffa51b29669d0071b5c0bde796f09556bf69fab52ad3c33212cdf85f45540ebb456551b3e42370d317fd6c49075a75ab26cbe21b87a09b1d50e5f690fab427b0e0f959431867bb90dcf997d777cbed489d969e886a057ccfa129a45d19fd7a1f288656522105e363f88cdd8a29a7ad5229c758ad1c8ffc6824123c7b5dc0606acbfa7ff7cf7ff73126d35ca12196fbdfe6ef8c6c9a068ffbb19fc2d5d0f2d90a00e5138dd4985920db8d2800fabee76072e696771bd7f73eb02f35c93a6ac7c5128f8847f25bf4e3f2bb23c04e0a33ae84e0273d6d3bef859e3650f45919f23f1a87a80b679dadf3d8b9c10fa3b1799aa5c307837f6bb48db3af91bfee6fc051d0084e27c8b256a22efb8e5b713a6f52c57394cd949a33e0cc2f5847fa1810f4712b336d263ea502e1cf1f00da9fddae38f93dc56b149b56f5299f6b6e82166d0eae6bc558801660b2436227a09b58578c15998cf635e22ce4bd977930db63b82bc9a8166150d823c4cf21c6c5c87a0da259f77af2b0b587bf0590140b660cfb51429dbf94a5f5202b33bdb7b4c0e3f81c7a5466a59e108d9242eed9a0d19b52a0e9ca0d7177ad2162ad541394f1a9cb1c99c1c725cb25b5dbeddbc7c3f5f70483af11701eb5fe50d00572fc2a00e287eaadc9a0b8533d91c5d887c925de20c1420eef96f0ec6ff26766d0f0c3c255c0e2734255f2f049139e524e2c30f45fcfdb1a7e40a5ab50430d153834e6e8d38732248275f8d1bbfb0789fcda3aa56a7b0e9519928af301824d86fa3fcfe68f72746a45e72013c206bc1bd33135328b9e93446214b723762330270812d4cc7fb37527382103813341489b4a87b59b7cbb4b3cfc4498f820208c055343c8a9eb5690524d19844866727d60ec1b8533021983ab07ddf0c82601a701c1cccba2ab47f263b7796f3a17784ebf267163683d37f090ba519b6c49e0b4c9bb93d8b9d9488d991660906a8a2055444fbd6cc12de4c3f05e9b634bfb11fdb478d8725cde5610560028952a8d7fd9ae1a65115e63125cfcff047f309e90e88c5e67dad77a182079acf22ed43a1c37ef70633a2e27e9ccaa0e83a09d3392b4cf1523e5d7bab9b96c685553f7d677008b5a82c470dccca0eeda73de7a6a2349911c51f73492706919c71d94626ad509a5472b666dac550d0aa2bcdb8dfad0445ccf35d8c160c727a87682da457129dca9634e041af3605e5355355e2f6d03119385363199bb2230098e6dafda208361e1d5bbb2c70eec87bdb94f56cf9410c6fc3b85f89ca08d35eff9e15d33191fc448a58f953efb5a5fe99c62de8a68e1e4153e74ef09cd7cef20a8c9800df124e1814cfb1bd748dc8c1f74b256f84082dd922799ae72981314432ae9f7d9e5bc2a50b2100090766a170ac384bdf64de0f79f51d68982bbda60bfb7610c98f40e950d0a083635f46aa831b4eafce034a0bf58aa48bdfeb5e198899ebc50f7ec362d5cc46075850b9d9e34e31a59a675f3156b2a7a1fc2ce2bc30a800081d39625428a17188624e33f389f6e4e1aa6ef22f0597eefafa219c8c48a516c345744795bcdd7e2a0511d929bc54cf061d12c81f2f8dce7e0e990fa1380169cc3cd3a865d7c76a01db02b8cdf063ba980d53781826b8dcc49e185088313e5534c8b2ad58e1beb509c4e59f2cb0c98083a61ba21037bfb2e62e324f3a2b3ea11ab830069b4948f7ccdfb472574d51b8f58d7c3e3178f50655e0bc2f2ba99090ab3a92742662f378695810e6d40a929b1a303d903e0994fee4ce9881bbf366d52c9a1ed3e4e84e94365f38900232536470986f0b3de3c2bdb19d677d681be2d4a36f8a7539970ec2f2d3a8b7a7c6bfe55b63c42c005d714f77d890fd54881bd91c81074381cf9ea5df2d65a4c182c80590ed4fee36687de9f899422d7b188ec093f6451972f7e08bd7657b75f34ac70670c7651d2b19d4748007a67c65c7b4ecf21debe5e60272634fc35b6568bacd6be3b5c25a2e30b86941372361cb3c2130d31cab093eee89add43bc9651e4991e406aaf3512f712d9402cd551e2139b3bf60d1b084583955d2599440b2edcc989065d09091108ed26bfd32aae1dec64c409f2e4f7bca0d4329afb8b868ab60985c9a2f6f702d35e3e40e02a996a62082bce4187295524ae227a3fe582bd977680afd12d2d212ca1c1bf1fd566959df7d431be78d6acffbb6d4654ea0efbfb5c8e202ed2d2f220d7374460d4ff13ea28db0747a3cea34a29fd21810cd8873cd756ff15e1e171df28c8bb9f2b00ec15d724f8b85c315eda3f929f13c2b93255fbb7d0ea1e1ea2a4341455e428fb6392cc47246633092c29fed2265ba117310a8e955b6d6967115bcbebaa1bd7049c6d33b8db99ccf6d5fa6abd9a392e7a888844797492969902f712d9402cd551e2139b3bf60d1b084583955d2599440b2edcc989065d09091108ed26bfd32aae1dec64c409f2e4f7bca0d4329afb8b868ab60985c9a2f6f702d35e3e40e02a996a62082bce4187295524ae227a3fe582bd977680afd12d2d212ca1c1bf1fd566959df7d431be78d6acffbb6d4654ea0efbfb5c8e202ed2d2f220d7374460d4ff13ea28db0747a3cea34a29fd21810cd8873cd756ff15e1e171df28c8bb9f2b00ec15d724f8b85c315eda3f929f13c2b93255fbb7d0ea1e1ea2a4341455e428fb6392cc47246633092c29fed2265ba117310a8e955b6d6967115bcbebaa1bd7049c6d33b8db99ccf6d5fa6abd9a392e7a88884479749296990059566e6dec5172aa9a3d8a9347fd6550f6f1691a37f82eac53d94a6e7613a4813923ea18517c0e7c6fac4d117b9917c9f0728c9ec39dbb77de85b5c17f2c7f431db538e220d9050deb695a20721092fd516be72dcbf54583fa16ac019dccee5387802b35ef46d465536c7a5125bfe9b85eeefae2986b2a5c1676fce05f4e00023096f3065f532e86a57ac40df2077670a0043ede4ae3acb82a22513f9e11ce71d7fc490211442a89bda54e307c18b2d6a33e4d61c37a7bc14225d70a1b8807910a15e6790d8e4b82fe087135089323ffd067829bc177774d67da45e03ba2635208638785079210403ebcf053fb691039dc5feb64d5e55135b61c9172354fdb2209fd7b79a22778c407ba6c5dcfb5a08d6ca01be1025bc844dde9f67b13c1656140f7c93a4f215a82cf6beb8864c0e021c398fe6116c383d633ad8f237112c8922b7fca4a22d89f65ab4f8907d14f22b785ecca330a9a198d313d069cec501dd27014a61a3142c78ae69e53a0b31012aebadfa90dc35eb5536f4994919ec190c088f458aff2d588477a591b4c45f207b3dc0c3f7890e21d8944e3185fec1f6d533f5beab1bf3d1d1e3ce7389d5ea6fe81f97197ffcd963d9f30a96afe218580f22b7fca4a22d89f65ab4f8907d14f22b785ecca330a9a198d313d069cec501dd27014a61a3142c78ae69e53a0b31012aebadfa90dc35eb5536f4994919ec190c37373bc09f874b246bdd243aa3a7ee522cd025a946a3141b6bc285444d615ca43a6062f8bed79a7290db04404bed85d1455cedb45b7edbdbef148a4f3c86af64021f2fcfbe0d85665fbff7fc15e24e6be53d4d744bb712d51515dbdea77c9a162c79e53ec9984e496984223ced8d8384645fa1f12c9aa5392af1497abcc6f05b0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000118396787c4be3140b7700df76687548aa43dac930bdd8a5b3be73fe76bbf72d10de687ecd9819abfdec2fc8e4d16f24ff819bf0bc09f73327c05aa144882746932d713e6aa05c64d8b922abdee7091c844423628fdd8b9425f4a50ea57a409751c5783ef19ff1b3b85d56685f515efbf7ec43a10063adb174e2a816dc29c200c02b2bfd231b41cd357caa0dc63b9e13cf2adfb8a7e062b316840e66ee64bf0f32a10ab1cb7ba28055aeb5ea16be416c94d94791d5be7c49d84494968990d976600a69b11a5b8c63f90f13ea46220c773e3f900520b0429287bf393ce9b991c7314995e0f67000690b09fd41a3a1235a405eabf8d8c6e71937a10103c3bcf58d00eda98836c84203beb7093f04222052e06cddbd626dfabbce078111e8a8bb4d7321ea68a7e92318a8c005fab5c56d1dfb8fd5577762b094d102f13258d16e5da2320835a739a174b3985aac714e98e144d42b0f1b47dd737d9f4e9219a445be73b1134525d67601151e34ac7fbe0664636fcc0511b72c9e881d5d8c578c8fd7501196b0a0a01cde7c0f4f330fa42e9ab10ab7ee65860f5e0563e4f126db920e7337e0812b0510826d543731c19ceea8d6865e29217e167b4fda8b4943da11fa83f48066252ba32f9707186fe8ccd1c3bdb6704de3318b519729614b72070b773008e8b33ef700ded8ce68b14bf7cddcf9fa9f1cbc01ae51e6693b389c0dd07c10c98e0a94c1ffca5a43ce4c1573e93c31f5729015ffd5475f0c694cd8e7d4455042518fe847b37f59295d54ce23e45f26a5a000197dafd0b0431a14924acddb319c992fd06a2d1cedd535bedc9643d249c16936fe3e95a28b2547a8ce7e8d0ce2412cd49e5753a4295b98f3467eba0fbc192303c05762437b39442c5385f68050d7bb3e863366f1b45e1b56aa32029ed05f632a4e3e52fc71db465cd2b5920391399c9508feb42a376979828165fea6eb36d2fcec8c084aeab4cec76c592950a0c98194e59dc9febbb9308aff698840f877b04d3b87912d594e2eb480c2e8cc5318d26150dcf428fa98c11420612ab43003b95a88bbc92719e5affbe37fc9f9135feca1c82e6f741f47a6a2b24908180101d4303310d17e8a70f049148acc3453db347f95cdfada47b5452ecf5ef66bd4c5f87289de654b27881cf1dad5d75bf31dcb1183b522a61b0eb53faa9596d02572a681f4d7a6e93f5322194f1bfa2732c0740538dce9ecd3870b884b1f46a4b0e36bd563d232988c778f525df1bc2933cb3895f6359ae757ac0a9c5ee1701933f2cbe5657f56ea251c56c5f8f0eb04837f028c8183e72eacb516961ec55805b5fcf87815ca90d177c0423b7fdbb25a22c274c832cd0ac793c0fbeccf17a2370d5380f10d2b2f8b3e5d1f905af035da932d0f88b5118ca1de4f7d3f7e481c0b88e37bafdcec590f8772e14ea4d4d4a1524fb9bf7e1e23f914fe074a60be4aad6cd9f485a61f425cfe5880a770e7b87fc2d2df8e51731041f68df766ca01cedfb596a4919682b7d1fdf86a41ebe9a1524348c0f1974a5d7f5ae9cdcbfc5ada0a88422a1c9fe59eca6d4af4e7e2d086036138d3718726c9124ab777e48401f97edc47c8b0b7d6df06ed24e66639954b0d7172ee5553d226974d5510977d1835f9b10b4ebc7f543ca415b23a3ec5d1ae2f2062f2c0b42e0ab1c3c7ca1f390b47654057a9abf42edccd80db73041bc28738324b0e3809476913c149076f2d7fad7ff6ca5d01ec74624bbce307511cd0fe3c2305f629135be8fde599f04e2feae1ded0ef9f2b2865bc93bfb9b21e188ee8720315d6297d151d572c9e1d9a803f638499e1dba4d0ef33e9d357d59c459c4a7a30f5df003dcce58c198390a9f825865bb87a9183baa4743ca9aa4726f17dfc8c5292c866815e32facbaf21218d6a67809b9086d5124bea12c61c80d097e008c652211741776b27c8cf7da9481a5765a7e70c8ad232b699ae754dc7f8f460944012aa91d0a2109b027bd7092bc99afcff53acef62bc660e4120a120aa3487893f036a85662599ea854649f90e6430fbabc51ee62166753a0b6be9d05701ef1e6671ce0b16516c9217f1df089fe53b105752689bba0e95ed2c3b201433b44a3438c1a00bf3b0447c024993c6c8977e12a404be63473b512b0d6adaaa8ac1ea59a14381e4b7f201163411ffcc6d6d4a568b4318ecd3def8122cb9fad20bfb1b932b1203a187cf628a2e055d262fbf60400f2a067d24a45549294580ad1bbb53f33b93aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a061301911905583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee82546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d5791ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a883a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a623ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c31c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e3aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a061301911905583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee82546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d5791ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a883a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a623ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c31c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e17f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a66373017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e14840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d3126132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c8361f5af3dbb9b764e06388b88c8ae25f7a7275bfb8e202712160cfad61b5bc73ef2084ff4eaf933d6bc5e8c80a6d386cf8915c72d09b721619ee695ae36cebe46207bb5847f3ec89cd59900a77cd11b5b93e4e9cc3e7a81b21a34e34673562c4cf398f614735db5469d4e59f20f2345e22d9b2ae524ebbb628ea9a24fec8e30f0920e7576a254c589f1b44c49b053e6896e604e8ae80f95b2742d55558ff28c21b08e5b7ee0f136a61bd9204360bf642cbc56347a0da0cb8daaf842450dcb7999008134748d8710762979b1062406fde0c96064ace3630870592558b307fee102d2b6879fe81419e32cfcc2b0480ff303bbca2014ac309b579f4be78fa1264a2221389d8f7dd827262a24dacbdfc7e9fcaf613aa817fc38db7e90ee3d2300c6b692b53331cec0a24ee2f94d881baf668692f9fdf19849125ffc37b4188d5d2389e08134748d8710762979b1062406fde0c96064ace3630870592558b307fee102d2b6879fe81419e32cfcc2b0480ff303bbca2014ac309b579f4be78fa1264a222095341a8d43c5773684b92297784b30a229fbe166ff382b5a03cab0b872930ad19a05d5dbccfdf9e3210a6b67798410dc2a2d9ac30fad00a082694f3512232f31746ad698f636962fe7915542f1d6f9137bf72a79df62c34b6f1b26a2e2c008d230a8efe605b8b311af384ea662bb972fba7d96f527d71f3430c44a8ef2d3393000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010cfd6a5c45f5de7cf371403cf795a635927a317e0fd2367394c05a8484f232a9223aab5427463ef8b619ea7353cc4799a55d30fa142646503581606e7d5ab8fa2a2aa5bb16e89d9af696234930bf7ad8c3eb2c517ebe0a7d7d9793e7093e6e930b266232fdebb932350a3da7cca1f34e59079fc855d5f37be979a0e1dfc6a4fd35821d9261805509641481412c34252181f7f011a1f726e1a850a1baebe1c1f70b84a84d933b8d7cf8109307659e0c622200e7bb67e2d862caad39876674f92e0585135fe105f005660464039fc6b38283b6d89c23480ded8a0dd67367f36ce139b70073c162a928c4b9a0621ff969b5c51a2f74847fe0843ffbfc0aa20e91c3111ef3471e93694a5125d06a1b26c55270416f585674654a3284468aa3b617ac22e50c052955f09effdf1ea85ae2df1d1c4f49e6193f109ee367e5cac7dfc34521b0a95546cd989bd62b791b43dab6176d9e6794d7664d302d47adbacd8a5b6b3f9115a4577173bd34838aad2667eadb65f5e139b230ffba2241d2d687aa01083180601e20bc51ae3032c3f73f86f211ad7996ea159517c6743e3185ba53371323f1640e0e7f46c2c8da8d211a707980493a3fcd321911ebf3610265a2ad9ac01b3989bb4b83e9cff0262c4ad0ff8b4248283e5a8a56f8282515bf078d09b3743a48d1c5c00894ceb06e08bde00d4bce75abbe63cc4fdb395d6cbcaca87ef34d0094c2d036e93c931fbf49462677d56315a176c660d5ef9115bf405338d038bb08c396bbc1ed32c79235f06c5e2ae910b1a98d167c4315f24d31408c2c5fe57e317014bde03b059294308581996d88b21c46a9e6773ef08fe9fcd437eda975ac2577acf22127bb5804721cbd729ece0cc124adf335b00fc3f4cc93eaca6ff53b1617ace47c3974b720298cc38e7bbce7993ca9d71105cac2809eb84f359085a70f5501e7eabe3c8ae39352b9ecdfcfe48d2c2ea547bb8cbd159847569c6938b82bba1ad97c31f7d3f74917668d1991f7523e115719f70133dbadf82485d1a8101e6bf72024402bd72517b47a3b69acb397219c070b22128cdd9614a82668785b2a1ee4c8bc3c6317b0b6c61d5bd8eb0fb244d07a4df756e5f712a6800f2f5e760526dc0851f5ea5e969253ef6cd4b66d94d90fb6f6a5755cba4729ac2678d6fa2500aca29fae28469b0398c55cdb5cfab6becd975d895f7153ba84fe0449c48023f44ca7a2cde4fa2e67282bacd260257cf83d2e587f4ef508c728ae0071348d3739e43ff33fba1be402354abf9ea7e0204140ea328b66f8f8d0b1b71321330c2acc7050ab91502527bb7255e8ce918883673a186e8a52bda68acccaec0f57153e43d21c69e7dbdeedcabb2ded259bc10ed17cdcc45bbaf7f9d6bb33e67ebe10307a54de57586f6bde0101331bbfd8854dd117a6c6ddedea0eb522f9fb3dd65507baa737f5eba737fb78ef0156150b61a31ea23a952794f59f26f3271b41e1b71a61ac194f539a200fadec11d05c27c73c49f167cf3f57541821d4a2fb9764ce08bd5d5934efc20aab9e17f23d820153621427626424152ea2e0d41655ed830520d46960fb349c3f5ad9b0c34ef8bfd74b3d9d1d0e9784648da6f29d00bc8d0d2d7c4a8ebfd668c698dd44734daa7d7c8c6278f17b7cf4679521219645ff792c0f7702a73dbbae96123f591da39f2a48ddddc92830158fb7896386c70ac3478b34126a170fd565bd71ad54d77811f229079bcbb028cf9e4cebfd1e9c6efcfeec1a8c6a1dee06d862edd566f634c8f1abe30b7408543daca3d04a5a94601f2f1202efd29731936025e4f43f0fc555877f2bda88790f81a156e0e9a0035ca9182d06e542c82d5debc4d7b86864713ee117f117c1e281ffd112629b9b51e630b4ec3a7c18679b99b9adafcaed2a48c27434f77e838fdadf54f4051ef3a99a381ae33a080ce33f2b61dca6d90bc5bc2a1aca1d2e0cdbc49863c40b49b6923789c5a700dabe1876acb9310cfe219330dbbb51198d52704e5b2d53da4020493b69aaf806cf30731ef9fc3336af64bcfedb05c0d4ca09383f917d525525365aec00ca083f66c1d91f42b5beb9eb72661158cdcddb9978c34681751b10c25d5e75be4286364bec04a7ff97f00ebda37173928cebff7f2ce8d89754e9f75bae82f20ab7241959ca90598858fa95eba29f590ee39e4ac562a3c7e97323489b01d201cd78f13073297d216bb5bab667c4b73ec650c7e6ce227ad0c84fc5aa2f68547e3c2b482759def81fb4a064e60e51e087dc59e52077c2b7f76d095e5f0fbc787521049918a62107e04b5f9b19f1ae1f7823a61b01ced64411dfefbd3a1d74748adefb6804c15ad89e8721f87e479962a74dc1793b8302a3b93a43850fc71b9349a516fa3b3ea5276178de0781b8669d58b23e86e6c396585012b59689661559b65ae90717c6c63b18a3a9da7765feed4484c75e298f0d329e2351994ee389e0703972e2283939c4e75c5625889a0112bb7b38a1f8b78bc96b29a7824a49a70c8fc68d1f36e1df277b32514454fdfaa25697e4d6ad84a9010d639ee2f1448075311f3e69091e20d884cdaebbab02055da9681b2974c1effafbe95a38a7e8b077cee0c1982759def81fb4a064e60e51e087dc59e52077c2b7f76d095e5f0fbc787521049918a62107e04b5f9b19f1ae1f7823a61b01ced64411dfefbd3a1d74748adefb6804c15ad89e8721f87e479962a74dc1793b8302a3b93a43850fc71b9349a516fa3b3ea5276178de0781b8669d58b23e86e6c396585012b59689661559b65ae90717c6c63b18a3a9da7765feed4484c75e298f0d329e2351994ee389e0703972e2283939c4e75c5625889a0112bb7b38a1f8b78bc96b29a7824a49a70c8fc68d1f36e1df277b32514454fdfaa25697e4d6ad84a9010d639ee2f1448075311f3e69091e20d884cdaebbab02055da9681b2974c1effafbe95a38a7e8b077cee0c19829bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c0a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac61ec72c0c20573b5141e5d40e17d7293f3bb25cd5f92b26d68aa789660ac49eba06b8d7221f316ccd211c30eca2885f3786348b037a8ee4b5e05159fa94c46c3c2ac7dc6372c289c0e0fd0bf2af4eb26fe87da6d58098575c173b5f3988bc286d00120ee4967571f55c23da6ff0262095069566c72741b0cac7d213ce1f205c2c15c05e370623ba7025fdb75e8b2260b19e7aff57d470e8a1ffe2bc46e4607be7326d69a221d8f6439dc6ab6c5f5980251f0dc37465f72fe842106e1ebc2d034a1a546ac894e941a4a59b3502dc626f04444e58cda130edfc1961806fa8bd952605a80cfa1b553d889d86c25dd7ae7ef3303b64a6ec290a4844dde716df5191132231b390b71370230dccef15925d89406c29d3e47cbfe5b82409632a78ba77193078abbf82471a760d2090327ca3dfe9b30f3b2045527bb00df4629e529c216d3778da629b6b276cf3701cb244c74ab0f3d7a470d20aabce63250a0a3663ef0d2f348ab1f364b279513b151597413cd76bdfef5bc57728432406c0599cc3e9002231b390b71370230dccef15925d89406c29d3e47cbfe5b82409632a78ba77193078abbf82471a760d2090327ca3dfe9b30f3b2045527bb00df4629e529c216d01b45dec38bcdb257c6e1ca0601f52175fc27b8a9d76ec13187260de27c85bba2ca3601c105c391d1d268a7a162b8dad7919be97cb5c3932319837a037a3feee06a54aeb0ea272ff416df18dd6b678418f0dfb32ec0ca218dd010b72d48ec2a43abdae7bbb6cce8015ea075975742d675f99b8e7c861b27d969d92054b387597000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013df66ef37b45e940d06a9534dd7a11e3d4e860288d92aa8058db84156e9fcf541455ae4cd36b3acaf1af1001419680391a6051867618429967867575c7e057f0065b8ca58073bc91abb1e82db8ccf71e4989aa8ac309d24811c7418e032d49853648341f6d5a02a402b0ced457e3df09f4189077a43392c265480b06d00c463a0dcc9a02f89bd899b071de70332be0d10420e3de8a27484bfd020a999d4a4233146d92a5ec1900210786b5bcadbc74a308b82297112a52c779f605c5cee8da77371211be3b80c1ac5a723436b518760fab58c0c1a41cfcf316aa421b83fd5eb1068dcad61c2e4cebbbc3ddbf578621bb9ac2b992440cd17610249e622fa1f18226c533f7495692936308a3576a292b61069994aaf7c19186a067fb876e27bf6636171e8ccc05b79eb4a527872a064eb2ab5cd9636fa95656fa4ae1e2dd405b3c2ded7582d409fbef78fb449a23ca29fe24a00b6efb2fb6538c4962e097f800392b2f1acd6aa8b869655fcb4e05f3f77b77f9c1f35b842aedf571f1157a8ec64b27c338972172337717b05e1d5c5f7f31786ae819f7d2b38e4d75a0c83a8a46c514f420306f7afcc54c4e2ec02752120cfaf04c461e611f5418af042f525809600de10d56a1ed259689591fed4252bc13b6c7bad77ed2629c42c527d84d1eb80f15c893fc96823f081d3a282362637c2a5916e9d8891dbfde21fde1a5a09380c6114682cd79b91b154678241117252e6f120da73ffa9010f544205c9f5c9f28b009267456d38daa62ed211e9ef59bf3f7df8012a5acf9f5a94962cf8ef5a156a31fa819463f405a42f7f3782f8b27b80af9680b779357b1dc7a26eb5ee67b550d0c896c26d8ffe346e1e1f1a2c27fe8c9bf77fe6db3b31c38a68ef55ef04cfeec377ec832519f02fba7c87ee238e7002d7eece5cd6d1a71621880511040847ac13e7a18e87bce44949517ba7e0a296b2dc063dff7199fd61d004aad304b559ec8273e776a7b9cefef01d72964ad52a05959cf6c3a83d8f2b6d605bdbbebda6240336863ea5ade575f807dbfc9e10f4606d4c9f5d1d9548a96cb215ad85a522b84268f730e34944a59d8cc183857b11021cedc4c37027726e4bb5dcd66b722539b2e0b7e94e9a3b63e22288fd029c67597bf9958e46047fba66fd74073546695990b4537d0d6a825bcbd486648d0053607278800c1291a856e99133bbfa28fb83326336c64a47cc38a0da5eeb711491ad97776c02665641c856d38ab0b34053fa128d9fe107facd11050fa590f730af787027deb3e06c77d5087f584376c52d2c338953b3ff87a88053d831681e38c2bc402c2f2134e34c3d87c01ff2251736b2132683766685fe852c207984ba3ebb50c0e036227114512069bdbd20520916aa43da051ba78ae364c079d93125eda16d8841d6ea72e4b476c977ac187a7fe58dc36700e1d0406a71374015aa2c2d4e1f23c9116d9965d216b219d2247880f7a8a0da6ac705574f459b61bd991ec9e5746bf37e5c5ab3a459a324608d5c2fe5c851fa818d4a545e7628531910192bf1404295b37d1f1f05173452b93c9d4b92ead3e787885e930cd2d77db91654e959b3a9c90de1aa5db3da19077183da20b38dd1ac727ed40a6d75eb2d76045ee7b3c3476ccd84ed20dc5f8d3c75f44f723df051233e6b711528ed4b8d57a3704b230e7d8c1ca105d7959a82a8c97b9b8ec525e211742e160aa747736eea1c6973d644c86708ae1770b52f71bd910a94e47597a30d6ae06e2b3dec3e0a4a214a3f4862dd5fe5344567a6fd080bd5c00893f3d540796c8578d001ada1bd8776d5f4eae88eb761514e902d213f9ba062465d08546367045eb2e5789c627d4ab4f8bbc97efd1a691940926f28e4071a7fae9616bf928e3904035263f93f54b4757db136a136d63c9ae414e873ac5b5221bfb5141f500d4df46c46254c9f795f2fc35901698c5bae75f71e25ee9e2c88949d9ddc58a36511bef585bb03a260638c83b6c5be0608d64a83bdab3d51d9ac76a465bc98a038ff846763f9361253c6998bcdce58ec9ce28ff6cf2eb3ad9f0f89bb0b72781135584952d280f9391465bf0d25e76388b91c0c6db8db62ebb374fae56df8a8c08a444d2f8a843f165a648fc4d116b82c814f8096125212101bfc0b0479f6d0d29ffad749e86b5e9b248665957ab6a4853490b9eb787fe5195281d7a52edc4893f8ca0519b610872917ad9cf37e5dc1a70a2803feeeceb6d98198c35f5a6535f273659a1651a454ec52b09d2c0411a955016f886c5d5d4b09c45e1fdb2fecc3c18c9a65e9ae5bab13ad4f62d3fbee56ad22fa0754377246afce74eef4d0133c5040fc026f9835a89d9d7311dc14584ea299f0fadc1463c2041d5d72d7ef9fd293bf03fd9067ca5762628cee23eba7b15f8a7894e4806bcfb575759bf810602d8144ec0c2df90c4b14133f594c65b9892d01b4e64c65f2ca1492d33e37ae1f1cd2bb13f3d206f3b4ebecc0a6b39a4676d522b4a9742edcc7a4ffffd09851e0e342589c3ce5dd3d7764603cbe7dfc9faddee41eefbd68ee60ad4b4d2846669b9001a763c31a22c2889b9fc3418203605223404aa0032be1310c4785e6899964701273659a1651a454ec52b09d2c0411a955016f886c5d5d4b09c45e1fdb2fecc3c18c9a65e9ae5bab13ad4f62d3fbee56ad22fa0754377246afce74eef4d0133c5040fc026f9835a89d9d7311dc14584ea299f0fadc1463c2041d5d72d7ef9fd293bf03fd9067ca5762628cee23eba7b15f8a7894e4806bcfb575759bf810602d8144ec0c2df90c4b14133f594c65b9892d01b4e64c65f2ca1492d33e37ae1f1cd2bb13f3d206f3b4ebecc0a6b39a4676d522b4a9742edcc7a4ffffd09851e0e342589c3ce5dd3d7764603cbe7dfc9faddee41eefbd68ee60ad4b4d2846669b9001a763c31a22c2889b9fc3418203605223404aa0032be1310c4785e68999647012e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae96839ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e063701d30cbb53d7978d008cd3615854317feab4f9fde2db6584c6b4ea9b95e5068b7cb70c4e968fe90a321a45ecb6c221e359af3f511fa60b4bca61ced1e0ae0b9d90bc231deab9fbad0ff1ff13f02ca70bf11681df59bf6186e96beb36b7c6327b0d54846bc907968217491a2e1f64a5c30f5445af69a1e3f6cb4cc860a50d28195a152cd208f2c4e4a9ac2e5409cec58031981492e73baa535c5f957b79bb19d901a5c7717318f89933297074a6cc87be19978908dcfdf77d2a69c88f77f62ac2b008e416aeeeafb8a4253e3370b83b612a6bc2c356527172338398a504b204e17d8fd40d9829b837761a68a944f973d44b371156dac561a2e1ff66d6c6fd38e58eab6857393e8ea4b8586fd99eba2182edb057fb16c88919d7bb220dc0653b12ca76a70122037a049f2cde0e1b14e91267d649f8769469e1aa59333c90960b41e1f0b09aa7824dbcb664749ee603ce47cc5e7bdd0b0b0e4d49a10ab980b53f74a81f7fa0b447ae11409d967f8383968528ccf8e2e93a07ae304ef26bf8f738e58eab6857393e8ea4b8586fd99eba2182edb057fb16c88919d7bb220dc0653b12ca76a70122037a049f2cde0e1b14e91267d649f8769469e1aa59333c90961faad0632f8b972d2ffcea1e587a41dd38a25adc8b1f2f61cd204204c2369986057f15baddf44b0fd34bff1acdefc34c4b6c3515065c5b0627db35f81d5e43fb3a910bea7a4493512292dc5c935bf23fef4edea2048a585cee3ee7b878a5685d3affa66676e437a0c872f6ada43c1d647f9787471e01888e1af5b6437915f7fc0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100c31e39aeb3e026c7b2d09b35d1db4ed4c8522a60e81f7912c8d754be6855e906c7fb49c21aefa40ec558b9e5a2d2caa10f03c52da7d8568632f61068cb86bb2b4c169579d5c0222dbcc3acf2a3c27139679eb9df242b7244e9f4e50a5966321cbfb6370df4847a3d34ea10733d75b37853676011b49c5f82121a232b25252b3e32f5658155b81d8d34cead07f86f4e80ac1258a790a8fbbbb35c02ad2613442fdb2d841d3a655d991e489b057dbe77459eec1fb79dc4018d522d07c29cc5bd32c6f6e406c32aa1bb83a2dbc9471fa66d9bdf6e1b8b3696db5a944806924f333241c34302c27ea6fd4080d5754dc1549f34196b811037b46b2a471222197cc224dfc289ea6387f3b68a349aee2da27eaff7ce3d42dfcd63d5754a249a073a860b4da4b6be384b59bf751f82c0f8dbe96d5627df459abeaa10f58748241a828d304ef90f6b990372b390bf6d714b8b8479a3b111d744a9a6479ec06dcde2a311122d00d2d3a7f9c4c28f238351e59b2c4bf3f5a3b34d7178bc306763535270183186c88eb4e34c9e3e153936eb01735632fca001b1b61f66f814fcc75f5885d1131a6e128f53bbdc59777aef09132778a6ced5db831c9565834fedf22341080b38ab429ac365985ab9bf159bfe43dc2cde7d10f233a4d762048d825e7e5cae093ae84b0e7d80a74ae21252715570a90639a6d2668e405918a8f99942b33b9bdb37f989cd5a01c36fee466bed3707f3dc44f495dabcec628240eadd91660a2ec2214b3184509c9710e0a7294ed1f8e72d7e869bc1aceaac5463adb5239b1282ba3bdaa5a77ee05c340f922f790626486a8c97c482f938bb50eb0f4d1495265c701e6b497661f3f828f1c6800c26f390c855ba5f26f761f8a826c3ff75eb71616814c77731dcdb73f7296a7658e287e6462fb03abda907dcc1fa4d0b597bbfa696243af082755ef66af0627935f50a38b417d26dc952b83e88f65bd1e2eaf6aec40287fb3927ea547d280378dde562310dbfdeec147370401825d693052151955a1d6035588cc7d5621909bd1238ad06af18513818b83ad4ffebc45a35b21beb862ea6316054a1614c7274e1b5ef1416935dd899486bdfee02e51dda4eef7ceeba199d8ce3e5db2de9b9dcca9c05906c4935772c2d0e2aa9b1c47e774faefc4f883fb61a9877b69145e8cd76c69895cf6e3b3c08998260eae8fb14ead59eab23982157a4fbd3ae874c586b9e052f4030baedd3091733ee23f90bdad78e439278091134c0d7641de24bbb47eafd2a47685341f60dab0ab3f706b3ebd372fcfaa1a510f387447e44c99e1938916b4edca4b73baf9afccbf2f407358e1aeebbbd125c1d08d25848b28e9bac715b03e764d7013f1127f8dcca25b4e12ca4dd91d7fe821db8f87a8d12ae552a63a1b956f3beefd5015790357fe67b379ad9ff7ad2b88825f9eaa9141752d01a47a2c37bdf985eef03ddb24af903eadfa4642095873a3d024cf6bf7487cb3b66ff49f8af95e92ae4466f15be7f2b748e7810b7956fdedd18aa875a024def81cdb2a027a5cc3378d7f0fd696fd1f357e3e4234aa99bfc3e275a45d44488d7c34d6403a60c675857ea295317c4056cbbae4757e78747eb1e2ba1c6f663a5946c79946422566707926cc96aab8954ee683014cd39bac045f80caaf97ce84eb99e0563d55c183235223436107fae5d76679b095fc5806f6c040e5398a00cf3b5724aba21b02c00c2d3a93192d66b444200ee492554506baf4228cecd11a83aab00690987e9b151df104c55c6d1d654e7d0ff3c13dea1c65b4d330e5087a4e03e95ca582557fc0a3f95e08e28987f1ddee1ccd0f794338d28da3520b594ae3288f8e1f707cb7fa09ab591ae0d3cd27be7fc3be74d98beeb74f303371a5f76294309011c1ba3fd9afea4facc6154f58a99b3344afdf06a932b800b6e48c6a6778517996aa564b19019cdafd5983467e0864a67f5d1b5e998071b0d2642b753950cccd60c7783e877b94fbe9473a9207ad0d6c7bb7cb7161ea0252a78a7e34e9f4f9aef3a116e4a2c7480b83590fd31b313625435f6f7b8e299380ef1748b2b4b6d32751c02fa3e97035ee42fe6195bf2c1703be133bbbb47855331ef6afe2e68affd2a30c6070bff276bd2a567e48be9b0e228268a7c9c68acef1c2219a65da737d96f2ef3a3d5a99c427622d3fd83d70adfb6c8d4f538cfdb1505e7c1f15fb49c58469d918d1aaa543378b7e45f9aecd28af5cc9410b5798c0e3e46c73e7550160a5a0737d08b513beb5cff349ee09fb56142cae3e635fca8ab01b938c18aafe9f5a5f8c82f74aec414c547645d28ad43ba56624d06ca0357563761e4384a906e33c2241712b8962b9847e1a32a3deaa677e941afcb0def4b53089e1bc7b56f91cc3ddbe8ed4769d467da64f5d1cb6252a3afeb8121f210b4ae14e9751974d22702cab4735d9aeed9f8de4dcbe310615be92993ab4345ac789b2b168ae68b2dd8fd354b8ca26511260743f8cd18f8eb9d326f9985a9ba538766288f497f481ac30df58640d406aa41dc353e62734899d27236b527635c5e5b061770b680b7e53cf20a79bf2bf955be23ed083688c0b326a962780989a3a1a4fb3e46c73e7550160a5a0737d08b513beb5cff349ee09fb56142cae3e635fca8ab01b938c18aafe9f5a5f8c82f74aec414c547645d28ad43ba56624d06ca0357563761e4384a906e33c2241712b8962b9847e1a32a3deaa677e941afcb0def4b53089e1bc7b56f91cc3ddbe8ed4769d467da64f5d1cb6252a3afeb8121f210b4ae14e9751974d22702cab4735d9aeed9f8de4dcbe310615be92993ab4345ac789b2b168ae68b2dd8fd354b8ca26511260743f8cd18f8eb9d326f9985a9ba538766288f497f481ac30df58640d406aa41dc353e62734899d27236b527635c5e5b061770b680b7e53cf20a79bf2bf955be23ed083688c0b326a962780989a3a1a4fb22fcff711ca6bb32171257895548f0d889e96121e743e2acc701e0bb637c5d8c1709b395ecdd7145b01f3db15cfa8cf1b8327eec8beea5431732cb0848e630a22c9c5447ae1258463f3aab447a9f9906b7afbc722f2eeaa83dc7e2d2b05d15550da9914a1efea3e5e652d1bebf32fb2c4a8339fdf7e114fbb9026c3948d1e57b2f471ecd1901253cbe48eaa120449f9234db7f1c3147cc3c8e3fb3d6972ce32533a4ffe89edcd0f48aad7d03e65501a41b7d74f235434cbff622390271badfbd0b851e031aa982bf54cacf7a607f2848d70c572722c46bc9dae7622a49d99f51342607414525f0f244575c06b9051fe8d87579b36878d034c5195e9fabd1e44803c7fe1b372dad396937bed633bfae834ed80fe183ca0ee02804e6e1799e906b0135ab3b28af7ffa8a647da0600d1571c58671cfae1a084b8a512712f1d0d7b405a5ffd799ee791a1e19fa91d9a54e8af417e367cbc1eb54fac42ca68a228c090019ce44ee0e9fff8b885fcd5d566c7425cb3426a3d780b0f6316dec3ed1674f3066ac473546ec87a9b2fd323017762102f41463fc2724e22d909e4bec268d221b4cbb1ff423ead4698df08fe3d277e21f90e011857d3edcc8f7f9ab6e47e9e505a5ffd799ee791a1e19fa91d9a54e8af417e367cbc1eb54fac42ca68a228c090019ce44ee0e9fff8b885fcd5d566c7425cb3426a3d780b0f6316dec3ed1674f29a42d5b33a5fbc474dd296aefa8dc2f5ad052f4ef2e4e18a22584d2d91aa07c33433d04e39ffc58fceb24afe797a46d21befe26c689749b8a1e717957e9d44729046ee0f0dcb6363aed4e6af29471baa8493b25a6797fd821a59b4dc988e94d117c9622de397e962557565f70fd345458ee8e39b33b9558b12367e5fa9f69d200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001069aab16392e5f2f8c08e45422d50e9d48917c11c8d8ce2c2d3aa9f162df05310ae5e1c31e3dea274a29f365cca89ce2cd8bbd59bb260ba0f948aa29ff615de836d12cc17bc9533e17f684d120cb3e383e5504d9b896cf03cb01174fa66600de0adaff094fac946f669d95068093c208633b3124d48da57a6238ecb981746d5f368c11cf2334db393e8e633775bbd875a57a0c5f6cf0b22642a6bc7252190c803d924c250f4c16f3b19317066901d92b76fc502fe1125197ffb5471608269b1728e468a10e833c2d8cb63e443f4f846b8124a364c9e4c1751c151144e5215b8831cd7bf65d4262177fe45c4de58637b74ffee0eb212fdc7b56cb769066f246cc1c308994507343633f4cc67ae61c0f1bec66bf00bd02d253bb5b42d75f999f9721326b8a7d28b37ce3f638bcfa59520f1d35935e5f683f8f1217ed58662c1c910ef11dd5ca1f95a9a5b648659b735f9afa7b06005a84e2b4cb52de33c4669df81646c10c99e4127b72622e3fbc32bdd7fc14e16abe028853f2e3fc94cf179b473edb3df744e691ce8e8876dcf4e21624841e9ca370ccb96c3125854bc4b78b872b11d0a4b23ac3756b32e30889a48d45b27d68b02185ac8ab1d6749dd971c51716c7e52ca9325d01b26c44540036bfce646ae3a33784cb916736a2b642ac4da3296e0c67897e1df68f892ce505cbdb1389af652e99aaea6585d36d015199ce491602582187bd0c7c3fad239abe99d557023daa916686ed8580e0416eb5c5d3ec0b4b242abad0dec7bbfbedafa2c5b8fade5ce3c7e0b0e06a935c7337fe92afb607244c1bcc43209309c939e927767d3bff5e7e9b589c63b2fd45317aa35ed8953fc1197c0a3435980e96bd5f9d8b7ba224a0d06c72184ab9d4daf44c58ebba7525d77f434ae9abc454d952c7da5d1bac94ff7d2199a0e70e33dea3d36517b18328f804a08fb995ebca098cfab33d2c5172d49035583faeeafacfaf9e4c6161bb04dab80764641fc85a0a6347bf3a388233be588ad7b91dd24c63e9f6f4d018aa362a936554ae8fe2683c8f577355c49e02e036913874ab5617804d0b1e63c22b1afeab13008b489c6f407442ec429c02f4fc7b5182ae971bf77d18b1843870952560d9e7e8e42415919f43645523e8ab27c86ad5a4410200b4d5de6fc0dc4486147f3ff91b05cf8c6b73537d4b1667c161382574aa1e80d3ae160395e9cb6b67290f0606da7a22ed047b8e059de1a1eb120b2733674bb3aa681af5d52dfe80023ffa6a48a632ef7a70900eb47993be7702476e2e79205f6ae6deea62674376360e89f91b4fd15a16148130fd6f85c9edef4bc5638fe0ffb941e9a7b850cadacd0b8862e5eb9c20927e091b946f34a952c45742c2d19feba81bacef58532261300d476d9833391f4c4eb118aac84cf64b2f49a9415cf9001d5a6c8db1b17222c5286689730d2d647e2bba1d0b59c3f9abd7028181305efb773b02e179d75997a31f68f86c17222cda220331598e7b4a911ae910b1bb2e24024e6e2f70bfc25d6a0beac6b9bf419fa6644d45bca878aa700b75a3bd627097a5f0b7e6024e3af9e820b94e4040d20185d01a26333376817aec6fda273ba1a567d3d91cc53cc160223004dddc20cfaddc947cf882f225a4ee38e31fd3458da0c64d6cab8366ad44d4398ffc5fc6a4e8acf5b20d0442def277ec636ee6b028ff937e3cd3df06c61448180e575a42acb0c05fdae10967e50e5e5a1d9c75b24d420d813d09d21450bbc62602a83b4f524cd22d1838be5f4c04f432bdf24e6776f8d6b6e99b5e87df05473ad0249f703f7085cbc2e7ab07769bdb249f9842ab0c3f4ceeb224660c52525f0de661a6bbe9e6268e2d10ada8e936ee69599d6d76f603cbb72544304c83f146175fbc686d7b2a1daa67fe6848c0210d9d4a629f3a15563a0f7fb42a9533a3df1bbad9d57bbec1599b15c5afcff483416d05824686767a019724e21dcebd109f27b76197c871e9ae703af8564d225b84375e8aac8fbb32a29f6a69c79925b03d21cd5fa300c90bb6cdb0d6c674905362432a926a21c8d13e909199250e44597c003835714b2db7e3864465028c9423e0841a6ee2810a8b810661d5d7df7b45451c9496bb275d11a3c27737306f29c03d47248a70949f92f5229efe1b8d75a52f328a7c5bd1f99b0b397b24d4ff43f41043e1f272afd4b9de928a5c23039a4a3e21768e062a8d9855e731be74e274786401332dc9a3832cd4ab963526da7038c007fc67f0d2530e47f91f36ded523f7e7013069392919e4978abc6e0f780c038c3803980f2dacf1b806e0c9212adc081921162fc2e03314840e70c2dd87f3fc7527ee07b41b9f4767dd9c125a29b3d78305f20e1dcd8176f5b5ae264d583c11bc1811f84be460b8982263eda5d64c287d1c548ade3bcb8225e37f0a9fa7c3ee4507a626848a1c6507540c5bc2d083358eb6e67ba0e7a06779c0df2cbbb92c58a93859d97b75e39af8abf3a43d2f7cca716b601d5b21ac91a1d84e043146d3a758263ec096b28df924a43dcace12900bc992806a2486220560c45bdfaa9dddbb4d19c13f694d7206db5bc23531ed6ff4368fc62ed7832af3bad4d15142622244b407fc67f0d2530e47f91f36ded523f7e7013069392919e4978abc6e0f780c038c3803980f2dacf1b806e0c9212adc081921162fc2e03314840e70c2dd87f3fc7527ee07b41b9f4767dd9c125a29b3d78305f20e1dcd8176f5b5ae264d583c11bc1811f84be460b8982263eda5d64c287d1c548ade3bcb8225e37f0a9fa7c3ee4507a626848a1c6507540c5bc2d083358eb6e67ba0e7a06779c0df2cbbb92c58a93859d97b75e39af8abf3a43d2f7cca716b601d5b21ac91a1d84e043146d3a758263ec096b28df924a43dcace12900bc992806a2486220560c45bdfaa9dddbb4d19c13f694d7206db5bc23531ed6ff4368fc62ed7832af3bad4d15142622244b4022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe3c5e0dfc420c69b8c9b3968ca82c303773d9405e4373769d106110b3c354aee60eeb52736737c5c7a697ae19115a5291fec04fecfee0f22623b96d927f9cf3ad15d27a9825d93d77f0a3aaa1ff2d82aeb30fcd210bcbefd00fb4ee4c9e8c4a14149d5bca08406f150526211d7557f9140e65bf051012d9af0cde2aa0009749ff09e437dc891ec8fdf70cfd0004032c519b5a4699efb5e4a68d1195507485747000de7ccfe8e196534955e0d75660c2d1b84bb8d42768604310e8bbf10258cf2b2b7daf5260c290bfd4966a6aab0043b18e76968a2f8279204734ed0f5f0b1f0a1abd3511536821dc461c7d674732bae6dda3b9d00728c5266be63961803211440d7914e1c1355fa9500415a876acc5b20a15107097e0c89d34b30f8c4c5460fa320cefc0dc269bb058d5e493e469e5640d49f43f9be85882f708dcf119c48e982b7daf5260c290bfd4966a6aab0043b18e76968a2f8279204734ed0f5f0b1f0a1abd3511536821dc461c7d674732bae6dda3b9d00728c5266be63961803211440a95bdee31c777d68838a75272997eb832f4a11c14d012c3820d499b616f85f40811d7197ba6f42d9e57094d812fc94cfaa98e5d8b21ba31da637c1f31d634d6000b071bfcdb0198dea869c46d8559903303c03a59a41b588d87f84c507121743d93101115f0e7276d99796959ebfdddb8bcf3468415a5d9e86ee272ae0b8c63000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011187cae737f998539f30593e5acde66ef4c1d24cef7b2032586af6c5c406a62a095b8a4d83a371cd6036a24928fb6d0cd2e1f2ba1cac5922bbcb513f51ce6e932dd9e1381fcac849c1a9cd8eac65b737e7463ba1a9f22222894b819adb9de45231e8fbbaf938b796fb94b868b48e790d4baf62c02a5e0dfcf778c2e85f28fadf05c1a79f8ce1e67ab2c848f64ce3cecd4d047babef789d26ada2de8913271beb283f82c661dcce390764c790158df425ee3c589a56298099d03a0ac9f3632ba129d5184726f5949e9b65ef035114c69df656cf39a2241e3f8c3bc7d2e39f7d8d18734ba2ca28bb039009934e2a2dceb6c2e1e7a0c6488876aca08a956612f1d1371d31141b9073aa64cdb646dd8bb1c23309e83a9fc334158149dc3e45ca85cb0cba322ba5e5b3b10d24ce32e7e7540b3f9e4f014456e291e017fc8132bf833d04731e1bf98283979aa28d72549bd3b4dcb26e560a9e0fcf0bceb0817f4d27780d658665bf2403a7947a2519e2525cf831f2a4192cacc9047ff2fcddf90b3db4356c047e3ad711f3e677b9cb6a92bddc0b6182d57566d8bafeaa184d74294da60a9bfb7615778a5414515613d5d8c1b4ae1d8041bf91f4a392083a31fcef75f51890f2f58adf42d757c651dc4e34b781a2ec66092e50d6725d616e112d40da5f3d5d88b421a09124d9003da502301098510e0ea9a0f3bc0db95d07a43dd42ff6012e64393a282adc344fc26e147962a119d67877bb56ba6d82f9de7904636331099863db30584eacb0c3366c812df6d48b70283cd4cd796791049699cf35780e024eabb1cc11d43a61af302880539465df41598cedb599bc8a2edbbf31712f79213f9c333c8b8cd0e54f3c5b67f072cc58c651afffc2e21c43e92bd60290cc8f3b377888fdb1b4d45e00a3a8426fe8ad2bf43a9ac0c77011db704125e0319c3e253a9fe5cfd5669a2da33cf222e3e9be45cde11f17d2f51a6b2893a97edba8e6053e9767d26222fc3b64e4c933e6c3740cfe57fa3a16c81abcaa3881577fd2962fc54bec30dc58db192f101acc32af3f65ab92c02c8692cc1bb81d9e937bb1f4143d6ddf67ee2119c60c9e8d201548418491f4996f9d665a599d13d8cdb61fe32cacd74a6de20cf1c71ed2d9e2ebdd3b2bf7c27b2357ac3deeed12add8f90e1e315db79f66f9985bea1b50e504ae6a9741bc0b0ee077d51f2271cbe1779e3b55144c081913205b308e8909e0a20eb0a34038d832e099c5d1e7588b31c9915f682c4d3519ed8d7f6a91a28cd3c427d6f348ed173660f1d773db2318da37bbefd41aed0f56248bf001e0c9efe0900b1d6db61be347af65774bebb41c2fdc2f9a4419cb161976024efe12620d861c902a4afa08ed3663ceb6506701cd483a0278362c37b9197c296c3f546d60a4a4613f365fa7d3f71b00e2173f28fb946868e5f0287c7af994c1f323f05840eb742e20ef1f32d345eb20d9914218e08d8cda7c2227694bf2e5f6edfe204272ffefa047b9eb5db372585a88323bdae8520082973811b2c76287017ce6167d5e1862f4238d32fd3d1546178d5a64fecd0e89db399a0516faf1b213f6b3295ab7794fd5f35b9fa1a8665fa8132b6494bdf82296de7e017a6a63213cba0645b282a1f23a11abfc64f73542f44f01b1267f42d12d0c4e0918c2f2e87ba316c72afc860a710d5c1fb9ac7c23daf290ba4a292d41b9e6b609e4bbc928301e13efd6d26e9848372660cbf770d82516c92dcb60688516d62e33e5d6e7db7abf1c4d62af207eb0667427455cd1bbaa0c456fbc7e8b59796ca33352f87136a46a8904335ac5eeb00afd8920ca1c6ccaaae5fdb495d544dc367b028fa990c5223caa07244e8e1f1e025dad839bae254af8e876ceb8bd25f5eb4a07c89da41521f0e610edd92f9596f89305f6956871d2e8afed6722962f653deb29f905821f66f88dec805744d2e8669dd5f92bdb6bfa05c1ca3eebcaf849f3123305642148d1385e70b7b7a20183556e116aee1cfe0bff484f14539ca1a1b758345ae2cc69f21c2197f3bc3066ff9d5156bcc816f16b1b26574e6dda243edff31540a833720b1f11d8ab5c534bc63d2d61911ea7b37c6bdb42b2adc22658bbcf26ff053d1851358b19cedc1243f5830f5e8c69f69aa54b1d22918264406a47482c61f1fcc36b4446d66210f261dc1c77569642319745036c87bd21e613660fff2c59e0993fa5d871d0b507ff97fbe2b9994482cb4d3d7739cd767559395751f41dcb6a7e37beb060963ff69ec240c9dbacbf88d2179940f941cc64926ad0c37622349581c8414f9f69c009613dbf362475871029f1b3b8225760cc5a952f3c8b14f9147716b971e2ef3fd119cb43f14a1b307a22636452a716a395021613d14c2b06eb88e9468e1d10c02ee634bc0eb607161ed9a5e8a67482899beae9ec2eb528dd6653719f396eac3f1580f853b67265abc9afe7a8a427d804b81d6e63167b172299ac8e60c69153c0ea7f07ac498dbc9acf4c21a454f3c12878cf919ce9860c52ffa1381c1f295d3b6b84d9a2903b9587257b6a6449746c9005cc27ef706433ad005ec7e3e0d6a2c4947b265d6fc48cbf73809ee8afa72c9d2b20d8108f9d1dcb6a7e37beb060963ff69ec240c9dbacbf88d2179940f941cc64926ad0c37622349581c8414f9f69c009613dbf362475871029f1b3b8225760cc5a952f3c8b14f9147716b971e2ef3fd119cb43f14a1b307a22636452a716a395021613d14c2b06eb88e9468e1d10c02ee634bc0eb607161ed9a5e8a67482899beae9ec2eb528dd6653719f396eac3f1580f853b67265abc9afe7a8a427d804b81d6e63167b172299ac8e60c69153c0ea7f07ac498dbc9acf4c21a454f3c12878cf919ce9860c52ffa1381c1f295d3b6b84d9a2903b9587257b6a6449746c9005cc27ef706433ad005ec7e3e0d6a2c4947b265d6fc48cbf73809ee8afa72c9d2b20d8108f9d28a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e870b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa126c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b0656a0cf4c32a485099d4b8e3389c827090d82d1172db3667feac40730816f133ecad465c6944b325598776b427052e58c94c13e930403f45b0a408f56709bd724287a8653234caea67c56793cdbaaa0456cdf7b43e6c05ddaa6c0253a47d6d505cf217419e4f71e44fd795ce3ce932c1a1bc93cb728baa1d0df0aa69bab50142df7a41daa41939712174d67499152bc832f079a0136eead02e44982e442929e040a5288c7f4cfcfd8259e43e9af00a99f1296f2d19b0da9d22eea413fc016fb3929f857ce3021a1ec2c9bc89b76c6e5277ec01edd2f637abfe35990685ae18e1b00dc3610a9bbfbfcadcd305379400e30def6fd40025399a6ac1292daa557402e4c4d322add4454a75e3e1e6faf60dac34f7356ab65d2ef20e7ba2e956941db0e1a7ede4b179257211a6cada714a7beaad368ffd2818c744f6356144d0c89eb3929f857ce3021a1ec2c9bc89b76c6e5277ec01edd2f637abfe35990685ae18e1b00dc3610a9bbfbfcadcd305379400e30def6fd40025399a6ac1292daa55740190bc849c6cc0fa2291678edafeb50c4de0cf9d755fc8a4ccb8f51b6f6658fbd17df197f7963519b60d235ea5e84d4c70ee43aaa3132314de8f8d1323d04e2e22911e10add893cf446db47e86bcd7e9f77789975c10d99de23dc121ecfb4666b04f01b47703ef466a3800e140606ac5f261b504a8f435ea4a8e67b7b9c989470000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011ee2b619655dcd8bb2bc40315f170c5818dfb04e6129d3962eb5c861c89021cc33c5a45b51b12b3ac2d342948ba72eebeaff0ff7fb38fb6b6d8a898aefa392033658e452c65440bb0957f3d8bda32910333edd71af5e22916f01c6ad9d8760f402a16ed3962a226f53c7baf8d949a160697684da8044c6cf69343935883098ab3a096ec52ca3676e505a7fc4fd4ed5f99992473d67348a6734453d499a48e4e226386a890af379d820172a67a9427d674c833427e7bfbf4001f5ff3f7a8e5b6537620727e4533bcc7947275e2857ee056d93428060edb975ccceea88185c806f3006818b3197b4f9d26449900ba353cddc0d83a1ab490fe92601e5e54b5133fd0ba03762ffb660f03b466c8ba0934f26e129dc4504e0c2d586ce848ed827544534f922a5e3f45892f23885127770c4147972b300996da885aaf43e43ce1770ae3fabdbb03ce5a42a270de08977d7d094436126dec73743d204611ef6631db0e3262ec2deb05201560b8e060ea121ab83cf86e50dee35c4b608787ad17566d8d4084c66733f999c77875e6249dbba1070face3addd01032075790ec57da9f59ca05660989ed5fd2460977a96f0aa1b483a1c3fc1ae42314285402014c8633621510cc69ab327e663e6433ede17dd1e9cfcf8fd26a5b3bb53c71920937d73bb6fd1a401ddf5fd0b047466e0ce74a2026fb912dc8594c0eb99bc855e2a74d37f9ce31866913a7a606827a5ffdf18c2c6d051f2110258ac88e002dc1deeb6eb1a2e030b577476c00c26e8a64cf038cf0531af1dabccc38acd34434827667a22404913134c97513f504efae19fa5d9d979d042786b5ba14e57ad1daa2c97b8e38132939e5c2d24970558002b8e4c8bc36c3861778d03f47fe170b2b2bb3bd20ebb2fc09047ad2196719a59d08a9230f8f5c6fbbdbd27698499ff5654814c6140c31ff3db14454be44c88b93b8d4b99965b86ade60b34a72aacc33779fbc11c77b15502ba83a12e604703ffbf84a2c90a67d99975b537d2e2c0409ff997fa137175ae824f9522e2a9bd8e17e9d62ce2dffb2bc9ab78cc780bbd69f0abeb67168012f5f2fdb7896b2a34c7771dec43103af5d0ccd62ed233a7a1d82462f4928c36868c82532ed9c94a687ef5b8e8ac08c46b606939bafc53a7f213567f73ff9476661082d2e9bb2b446f5638970e8e2fac2813c14a836c2b77287f59d2061272fbbbcdf1f09bf2acc1d1d7ec9bfc099bdb2c1f1099ebf51de3486bc21251d6bc587a0911460503c038eabd31cc5173f3ac51356fb95fd4b90befb8fbe79205f1655daa33c5799917a58201ca7721c41a10e91bb6d524634e3ef74502326d418fd41dec82e5fabcfcebca4ddbf586a04a567a8aab8bd7cb8063d78b082d68330c97db61a1398d265b4fe5001ed100eeccb91aa21c5e8380115e8246dbd0469bf3a52df553c83b6701f841e9a02c6483d6340d3a9307e0f29ebb0a3c7fa707f5b418b36a208d528ff980d825934226fa1515d33deacdf9a6109ef13186014ed6e9710daa42be517d39826daacc06a8d775b5a43547d37aa3dbc73034aaa13c6e09aa3a3350340441adf05e1a7cddcf584cbc3d2be23db42cb9390bcb4b7597eabc631e938242c1279e89fad16b17a6f0d94c7888c64f459faabdff6a05e817169f6a6a2eb21215f06a10943c40597af7c864ec2520154c1e4d297900f063315ff5742b7f402b9ffd5cb349e5ad460cbed199c936637bc34b6030eb868b10a03c202ed10821b4b9bb2d63cab11e75704dc0963850a304460da3c53eabd14029885a604c8ed0be271086f4ad3aa5a2259f0fc3bdacd3840d72d8f88218bef3fa8ac6371504705cd0a21e01e0105025cdacedf4a4e587101a701dcf754693ea2f1d724a97a5905d50fcc0b1ad6f28ca3a5caf0763160cc80546898a3084a27d24d77ae462c48207564ea3d9aa196746ddb33d65989c19686e9e692c6b06b5de08cd405331a2609b5a2ad80f697967214406a4bf9260e8f4159f2d2ab68a1cbe5b0deeea475563dc51cdda90d2898ab4bea5a681f3b6b3f0c7abd6a2d1cd9ec30154a1e7437a838e52ace54a522ebb07e6fa5c24917f43ea235131de8ce61078e1297b251eff4204776cd5a7f4ebb3ae674f07cce9b568a6e169ca404b6ebd04cadd35eff3c6e106e9e8a25d0c4102fc1da892186b264d18b9da0457a36cf233d2503c0ef3bc429036356df186db49ee19e5a689fd322d406c4aa08362a6b10255eaa3e0d8b2d3e8a50a7af3b74aced7eeba731946e35ef6fc91677fbbdcd3649ce4ae29070ec0175af5850c48b5312811458ce6b91ca32d6cfe591513b4e62e362a21d6f8f1538b393466c294760a37a9a43f7e6270d2414898032b6d093aabc43c26cd23498074c6cb993d6b89f5c8565bc0819d8f2fe320f7bd6962887ee70ed2a932dcb691b81e0601cce64e331650353d77ec3412b4c4b90d85e2e73f0f88f18201b06f4247e1f9fe3319b1cce9afcac28813cbef6fa4d6b30eecaa7a834a1d4dfe4f90d098961e09007f86ff6f910a33579d04593f047dc273cf60c8280699ea08722c236769e1f6ff807900906ef5cca862fba8e56511fe210030f16acc74e5f78dd3f3e8a50a7af3b74aced7eeba731946e35ef6fc91677fbbdcd3649ce4ae29070ec0175af5850c48b5312811458ce6b91ca32d6cfe591513b4e62e362a21d6f8f1538b393466c294760a37a9a43f7e6270d2414898032b6d093aabc43c26cd23498074c6cb993d6b89f5c8565bc0819d8f2fe320f7bd6962887ee70ed2a932dcb691b81e0601cce64e331650353d77ec3412b4c4b90d85e2e73f0f88f18201b06f4247e1f9fe3319b1cce9afcac28813cbef6fa4d6b30eecaa7a834a1d4dfe4f90d098961e09007f86ff6f910a33579d04593f047dc273cf60c8280699ea08722c236769e1f6ff807900906ef5cca862fba8e56511fe210030f16acc74e5f78dd3f2a541dc9aede8050ad6648812a33cfccec8163996bbfab69265fbcf2ef361c4e077596ab5d4f14c7435038a9742be3e6b737f77900011bd2975eecabf38cafdd305d9e4e7bb0cfb3b7ab6f2a16664d9d00ffe6e15a8f452fe648d4b20ee2b0793ccafc6418112053d1c539dc198ca765b3a8d0cc38d47492143067a7a046f720082c04067244a0b5097d8b2535880d4cabeea64b093c8e2fbe2f9efa66a6c0b331badafdbd1585cbb98145ff82a67b2f4b94bd1185102716f6439295fc619aea04876f1607ec1f21a67e209f6284fe4c7ccd257f0cb85ebbb023cd3dfa9833341c6ee9a4ea8a1de768f02ab03dcb07adc00e8df3875dda40e7b43f757aa22b9d040e9a8bcd91fc37df3499f205924265fc241caf3d6bbfeefcecac04c976ac69267ceff7a04b06a8d83d580e8df1512faded984c128ca45819e749ca9567c1af25abe23651217faf5299b77ed5cc30333e56dba19fe08bf95918c03550c9e3b4088a6954a2b0eb38bcafc7568bd41c195159aec6025222744eec5f8f4c735024254e43e7d570affb9aee4854bf65e296570be77d4c4b019e25b1d03501e7333c3bbf6cf08a9fcae4eaea8d7a724774b3d9ac69b2d9c461d286cb0d866c2c590625abe23651217faf5299b77ed5cc30333e56dba19fe08bf95918c03550c9e3b4088a6954a2b0eb38bcafc7568bd41c195159aec6025222744eec5f8f4c7350242a3ee9812f3090437e31217f6865778fb5a98e584059fc534b6617f334ebb6000ab3dd7cfd2e7576040fe118cb024201e5fb0fdc73ba943e4683ceb37811baec33620fb263f4112a3adaff0bc34a2080c2dcdad222c0f81619573ca3ac4c8d7831e264877c5e553862612e00351893f16315253663be2277ae09f2777a152fcd000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013ddbcccf08506395890fc291621447b4d251bc851ff40f22b2a7cef285664d113015666894c1d9cfe843453239b3192cb9cf52d8eb6d810b74517d714e9c5d8b26689d94a6b067327f7af982e551ef168529a981d555cff9ffa600b74ebfaeaa071733132b294ce190eaaabfee699fc76f889a04c9126b704f55f1bc2eaf87b80157d5ca16a2e1b6bbf476ac3836c698c47e9fe81b8d779c738d32442654f16819537e5dfa8afb86ee07669e2fed3e22c5e9137d513b332147a5e83e0ef3880a09a3114909bc30cd7911e26d9e5f0eaf7561bebad8fa22b58470a308eabdf98e24bb3bfaf540dadc6421ca1aa021d442563e71aa168bccc057b7a29b851714e53dfa9dc92bd13ae8bf737304bbbb821256941a50aa8a9e68b1de7a11850e4bfd3801ce569ec9abf5f36abf19e0f4d880ac96772612d0f1dfeedb9c699d5a983f193519326d8ede26f34e629137a08a81a15d1eb1d860351b3c0cd3883229bd4e317d8cf65603bf719eac5f848e6321d382ac5ca2d8a14e831be9911890b8d2fc30c9937ab02426c72e179e549a7e14a3bab61f0e4d13f5555a5d1f5a591f52be1dc1887aab7b583e5f7c44094adaec67e1232dd59a1b27eaa6c170c1447de0c212884a47e2ac54c5ff64e1e95715b85dc8965c79ecfe2c95a1700812abd806c70bc37314394ae9e9fc116bb10ca802c0d7ac854e92eae10665961305d26750ed344887cf9a898a48aface7dfd47588d71600175ee33bad4ebe342246edfb10a0067c9a619c51c58d80d36732fd0e02a5e5276f97bbed0ced62620fe31149851016c2f3546e7c8655974558aaa53d4ff57f6796e7343cff8a392b462a62385e630e6a796fcb4a819c7c1d113dbbdabb7151a11cb36e27aa435be10e1a516e16eb12a277897f0580106c49918b6488f01735fdf665a9316857573c1046fe3199c83d7a979dbca2f10c98855a7812a550059a2effd47c26e4bc647e6461b98d17ab0c232bc31eaf49c1f81f6369fbc25ad18c33408ddca44f950fd2e74dc92a71ae353417c0b431fd0932a45b97d42b9f37477bc6503557adaee51e6d17ae25b36a35190bb0f2f42f014b5bd5e1e587b12f11c7cd34c49d155bdd5869830824070833a3c8b6c7601983861a08f5581a00166f35a54e69e61cbe030899031c71b1432b650080d58f6b8dddd97505d798cf9f4ad431ad3071ac250e8893964a4a5a31037ec7971f9f42edaca514da6601b6454d61bcdf7cf2a6a132bdfb1a7bb79b662ac1eb581833d45adeb43a5157a94a2798a6cc03cad11e5fd5c54da420f17b6c0c8b87cb9bb6e57d96a89e935f555419bcc96081091deb96eb86e8c4aeefa2473b030d9cdc4ded4dec65e0a5109ff0c037f06446a1cbda34e53b68ea089831211e42a80e4318d4422d28c9f2060c4b0d28db0fca6cda45fe512062d61cd82d5b14a510ebe0d6f14c4400c78df80ac5b77e512cee17bff1867b7b1496ac353f2e00f3c5967c2ed24699e7408c46ae8830c230d3ef0ec5564fbfaaa08b3776e16429b39455f8067bc3f29db16f7db37a0919b0d62453de8483c1c211be4f8969b1188340141bac339e927add21ad0047dce5ce358d535f6193143672860832b0543899f7dec19c6e0f91dea30809b6e071ee09cd0051d034c1ebac19e75f066a2301807babc44558ef0505cc6dfa195d0a94040fd547e2a3a2eb823baf40b91ef51a6be887813cd79191b350a93870aff261f9878cea556f6014ebfdc515d161a00c207f07e033cdbeaf936755d6e29838ed3873f98299dd719ad0ca8b9ae4c382372c1bda5fcc2e984272d89bf9ca398dc1a0bfd773e6715be55c1fc3703c1d5d08f92374651e045728c12b67da8f32bf2fdbde7d695848397e35944033a1870231537579566b5a8758144763441f109be380e07dfadcf7cb22191f690ec1fbb63bc81846cf6d937eb9a34eb55413e8880407fd07650f9d4d1f964aff44ee7d882fe8fa2067cc42e4cd6bf053c8947503adb634087febcfb54049a3229e5e07e62015ad33039890175e6dd07ed40e7b04f762d7525f1c2896600f89c4258547a232550aac48fd4bdf39391ff9cf4db59d211d7e7c2e2bfb62aba4bd99b03497601574e70b320788ecfc70b38ceff31a9fb57d7bf2edd615eef552286cc602f1a638d3be135f832740898600d1cdf12d7e1877ff32e4b9382dc7777499a24d7c5b19a0986157b9d6801e169b9282d742e74f0a643b2e48ed3e20b75e25c4cfcc7126d7d19ebdd9ac7d92fd15bf76ac0c8e8ee8ed4c0a8ee02a961690b9e00e476a19282e61422653826d02ea408953f371935dabaffebe18f10316a0331ff1b89702371819b5405e73def16cbd515c3ec863b8d78818e3758222e940da6047650f3dc8e7e64abfa18c210e9342aea3c137be8dc173f06983997643f0129fb89af20b1378808a41d8435ab71fb296cd39e9f29c35a87c714b8aae8e4443e164f94b34ec877f75be27bca548e04d6932c6162faa63538cdbad90ea9eeca91e9b06b637615a82b3493950c5939e7cf2022191bd0d0c4a6e3679b568c7555366f8de77089ea57d4cb6c6af3a6c61830dfdde6e65398cb19b167f663065db999907218a26d7d19ebdd9ac7d92fd15bf76ac0c8e8ee8ed4c0a8ee02a961690b9e00e476a19282e61422653826d02ea408953f371935dabaffebe18f10316a0331ff1b89702371819b5405e73def16cbd515c3ec863b8d78818e3758222e940da6047650f3dc8e7e64abfa18c210e9342aea3c137be8dc173f06983997643f0129fb89af20b1378808a41d8435ab71fb296cd39e9f29c35a87c714b8aae8e4443e164f94b34ec877f75be27bca548e04d6932c6162faa63538cdbad90ea9eeca91e9b06b637615a82b3493950c5939e7cf2022191bd0d0c4a6e3679b568c7555366f8de77089ea57d4cb6c6af3a6c61830dfdde6e65398cb19b167f663065db999907218a1b32ecdb06154ad4de0590c2867c0b6df9c5abeae1a5be2bd2c68bbf2f7682962ac0ac6f9b58736d8b9902a0567227960edc30fc3065398d32cc71a56204011918016098aa02665e1acfd881bf89573a1e3d6325e54235c9d8ace9a6067e91ef2dbe6d83ddfab2bb8ed281dd777263c51dec4d6493a42f57b175e1d9c2756169159e4d980063e383331784cf2275dba53739b7217559359441426a28b206079c078c626b9bf67b62c0b171159a29bfeca4385ad26c276ddfa700ed9f4d9dee2426a7cd2000abc589e390c0cb19ee3a22fd89b5084f98d42935341200b2cecd5319e05ebc9d038638cbfba629c3ce466d5fccc92c3003e910204e0d4f2ac00e7e35b065466712eb434122f65cb85415faaf9ae65c740e7b37ce803635ceaea75105965d8f35b8e6ce817ee5c9fd8adc681406ad0d03afc563c7379517df851a7129ceb31b3341939af0183f3264b1ac7fa2a0c1c5646e1b94bfe50bb9668e8df21077327699cf689135753dd0d520e7b35f9234aac2a1e40f36e5435292a06cdf0ccbb28c4fe84ecd072a96bbb9fa9d580a4389eb42650525edb9bb87ca0aeb7d2780e60c86acd9d6e5947b82321b74a517c4b3974e9089524e180e5adb869d8129ceb31b3341939af0183f3264b1ac7fa2a0c1c5646e1b94bfe50bb9668e8df21077327699cf689135753dd0d520e7b35f9234aac2a1e40f36e5435292a06cdf2d68dffd31258773093f2dbef488710d0ca218f4aa0097d347b8b1ae4d3e01ac35aa01f462866b29b5c8acc3c368bf24e3d2ebe12ed21e3d08f8321abf9a9b7715137347744b592ea298b9487c93edfe9f69e25a2e95cc61ed2ecd06dd946be1306b87b4bc9e7204fd22a1ed1fda6bf2a3eb863e8a4f10a47262919f5e434113000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013aa87bb7efd2cec2ee368aa77e5af6ee5fd840c158cc0900232cb3bdf30c0ad33072182bd7475f8d95d1f5aa4bc0bce23034d3d7b09b0e6474c398466fd24c88300582eb6bea079cce73a116c01595bbc8282f55a4013f175ab8796d152dbe700e28f427548bda5ffe8006d7309d75eb62e8402c7f9be968e70e4b8abe979e57397de244c23b75e2d077417b5c8452f1e202ea6ef9f42362ecd1006c55cbfc640126528fb2772a6dbf1e914d435581050931442fdc5d95cd421b9306d24a63d8150152e938f9f8f6163b9f53a4f07433db746eb337eed324a9498c79c6e00cce005f2b516be55106b645ab176a8677e36c810da7942ecd1ccf07034dd8711f261399fbdf11de5371a87f6e98851a4caa66f470eee0a886880e95b591dc440f920c1dbec70ceb8bbf34f1b08c95c98f7675839c53d083436ef26dcc89ef7c16fc26e034c3bceb70cb73da5ea32acf4481012ac6bb2141e9b2061232da62fd40820ca228c4f48572ee3f6c0d59da84c1ac5b0554c8dd63c7a9d38e1800c1aca71207633673687ea3087cbc2c7740e9990da90adc06ae49acb22e4cb84384c3cd211d97993bd4b8b4b07420b98b48cb313927c4a52b9daa379e4b31187568fff6f10c7db2e5be773112258081a649b63ef8f9ada71197a6922cab4ae47c79fa87a506eafc856be25d7de1ea3c3db7d7f344cbac7585f77cd79f5c001d503a6ce611260f564cff19ba63a79502641dd9da68ab39109e16fb29712de28001d46d1084072d1cfb0d7f174a011e789e80eb754833a02c199f77254d8f5e9993e3132af110486a43d786edb7ce99a55aec0a694721d58486bddbdd21f105264e2e7965952b3ee2b75bbced44f8888e04272e2b50fea0d501cd6c6934ca8b3441bf759e2a0042f66e00c82cd472befd9c8ab3050883c4d529eac8e7ef1e366fd2eb50516a3d1c4549f3e750fe9076edb07fb4a08b92587fc9bf831cc9844c5e34f015d5590124a7738720057ef8904a0ccda722d3110d385383a18e5d42cefc0e3ce5a6870ebd42155f5dee8037b9b66d20477001d179771f18c833ea770d41efe9323a300e149462bd9254412b5fcef0351be6f521b5e008bad1430da7adea03ede9f4900838bd5742cdd661470b4dd29ec452d1bbdca97151a848bfd815337659a2ccf90132d598405efcabfcd6ef8fcb3ff974a0840ba25b972bc0a3bbbd654b8c4b8d0be8faa50dea52e79e57c7cc8a4efb5c6365cf81902f7c2752088ec43f66b7ce153c1e68d95c15e061a1369a00efaafbe941302d52834a3722cf8d0d92feac1c16fc377fcad1c80be3e39e6568d60eb08f7c36e1b74600d36aca224144adf7d52daa2842ba169b38a4c9f4268d0d5e3c028c0143f0fe4ca21d3ab504446211e724929a123f20303596e1cfea666a2456667b368573bf0ee2fa92e0fd0df60a88056c2070c023e346016b85fd6576d233007ce7ff8c879085fd001ee8e34e18582dc83d8c5279c2300d0a90f4d68315fb87ad2eaaa2b0c49c43dee148f98180162934478e29a541dbd53443f9650b3d5d618ef43366c782c4853cb7df499dfdab02f199aa4fe327e83abc5fa95826797a728dcb0a9c6a9e661c770c2f689c5b2a348ea2c1165f684ffdb95a0e29e902e0e94c1f7dda4f270ecddeb5d148aade4316116a180def8f23a5e07f56a8b2e0b217cfa46f6cace27cae01a6e68960dad211e3a0b9c70141e39cca94dea2a2c483341074b1a00855c7500371e6ac2860ec01f430ad2ce807243166a487a32af78bf0e3d1469e68d7c4633dedc9790bc9033cf5f4997a6d2284273957ad542c363199f4ebdec47da7b702c037bc7a7479033ffb8347698d702b7787a23e51bff1d419428ebdf28617ae5c334ad3fbe072222a524c6bcd7d519352a7115ba6c0c5bbe1605fd72159dd197b162c4cfdcecebf1e2616fa15824fd2f0996cf6c03da73108cdc6b6e939c357ba9b9e8d450c377b0eb33893f01617a38c2beb63733d36cb6539ec05c1e419f7be275b5e2787c7c907c554d81d7898ef8d9bc7250455fa5f4828749d415ad9a2b961ca95b8d4cd8d18f0f3e88c69b3325dfb966282b718d51c11249c4e763d6f2cd65c3ecfe4db7d38226eead6601297dfe643efa08072d1ef354346f05c96f394f7b43d6ddd2f2d2c8c82abf52e525d0554d967ebcec6d0fda3aec96075edd17d64a5b116ffe81d1dfdc9ca63f37fec920459f7c1b3dfe79eacf3da2568f667ac9d21b388dc2a9200000000000000a038f8666a8f5b18861e830ba16a45d01337a4c2d22eea229ab21d4c8017a791f21e1f3a1bb1cf998548706b0e7c8abdf92e2b9337575f15b7436fae1917879a94283d5b45709dcc156d9498d5d54ca799b8de019e9b1ed5e1ee4726e3eca945df09742fb876632389f27014702f60bba00ced4ddab84d10de05b382edacbf87b006c26c8e38d6ef6ea085b0db1fb82997c120dda95d4dd964aa47663e46fd6eaa0b15677cb85368f5b2d2b6b28bd48ceb670af5c749b8788fb9f15ceb51aad6e53070df3e3b9994eba4efbd7f3260b29cb3dec813da3b4abddfbe95dc5d5095ab0140abbfab675ab3bb14efc6d24cb09d11ec876579309c02143c13f53c1837e404d5dc338122079c36d8b5b63951bd9bb25dcbc7432b2f5944fc96d67688224d1b5ce6b8a4c48302b02e277db3c38c2977cf4ac57f6982990470708cd6feee06129479efdace14f6bc897d82e5c8159dae9236a306ebb6afd94fe4c3f37f35761f1d110e0c32daa8a37b2fc31ee54d9c173918d64c8030101aaac50da5e998190b15677cb85368f5b2d2b6b28bd48ceb670af5c749b8788fb9f15ceb51aad6e506c26c8e38d6ef6ea085b0db1fb82997c120dda95d4dd964aa47663e46fd6eaa3070df3e3b9994eba4efbd7f3260b29cb3dec813da3b4abddfbe95dc5d5095ab0140abbfab675ab3bb14efc6d24cb09d11ec876579309c02143c13f53c1837e4342a4f5170a1d2bd34f61d2dbb915c98bdd56098fd8cc0b56b1f6e102573dfbd26a4d0c676d265d7cd41a4ac745ab4c52709c2905440f08e70dee6e229ac9f501f1d110e0c32daa8a37b2fc31ee54d9c173918d64c8030101aaac50da5e99819129479efdace14f6bc897d82e5c8159dae9236a306ebb6afd94fe4c3f37f357638bb12dc98da5f465f87d2d723f74f04f7f8d6e7b42df41aadb8f91e7031ded82b2f2fa13355b1e222c3558712397e11d389a5c0e3382fe51b52998afd46840309742fb876632389f27014702f60bba00ced4ddab84d10de05b382edacbf87b0283d5b45709dcc156d9498d5d54ca799b8de019e9b1ed5e1ee4726e3eca945df366f5f3038e780a900a7a3408452b712b8d7d4e357dce5600e1bca586675aa262e7a4b3aa8edc29e90c1451cc729ad5437dc9ee8f5a6acaccb64d63d70d2f4772204247b7c5c90714bec524268455a6e2b9e9f218e8894b6ad667a0598560f930fad66826aa45f2e14185b039c6808cb9a2cb057c4e3520946942fcc0112bdfc22c1a0e0946ec2220d61e75e75c8a092a55e02e015304f47d3aa6a0be017f12906686e1887c1a8ad88845021fbac040d1f3bca694edec8de545afe3323e758a70140abbfab675ab3bb14efc6d24cb09d11ec876579309c02143c13f53c1837e43070df3e3b9994eba4efbd7f3260b29cb3dec813da3b4abddfbe95dc5d5095ab07ae6eabfc1bccd5d0ce3590d7258f2d97a1d238789b2ff4fba024ca13c79fe1174c08103a0f37e76ed94e274e6f35343e4f3b50a1a623c915899a9b2433009c01b40cfe6a93d9e2dfc628c084229a01636402983ed0297daaca2db2b2928e652ffd7dff7c6d15bc803e8485808ac93862674ce1149bbd4249307c1ee6d63f2a342a4f5170a1d2bd34f61d2dbb915c98bdd56098fd8cc0b56b1f6e102573dfbd26a4d0c676d265d7cd41a4ac745ab4c52709c2905440f08e70dee6e229ac9f501f1d110e0c32daa8a37b2fc31ee54d9c173918d64c8030101aaac50da5e99819129479efdace14f6bc897d82e5c8159dae9236a306ebb6afd94fe4c3f37f357623fce06adc8b6697e912465803900f1da76b84604742c92d13149b345196df5e07a223b4cfb6298c2898096325d5ebbfe1b6e9e1273fd33df76446eee75594e32747acdcfc50dd7c439431422de1fee85f4dddcdfdf52c1c97476ce3154bb7860a69de20eab012231c707c03d6cb6451667d71ab5576baa35cb33cee841d16090da9c53a4a37c5e04da0af19dc59a37022054efa8988d0a222e67f821e37232b090ed0b8ec5feda80acd69da4e12b003802e4cee29e0af2a10e78b7fb7df91723b5e0d809e87b82739fe15aa61597c0d21e70aaea6a3056e0915d3f3d890a15b36537d7d487937782606979ba353e72cc62addc6b615da6d841206cac0d82c353db88b8a4db56b3f9ca7433822b44b5fbc7a87ecf0e47509ea51a115da03cbf62690c186890da46bf42942e1cfe0bc4fb05e15e070146e60074bb03dec8d0ecd36537d7d487937782606979ba353e72cc62addc6b615da6d841206cac0d82c353b5e0d809e87b82739fe15aa61597c0d21e70aaea6a3056e0915d3f3d890a15b02c3a7580f95225a28f18b73f4ed73aae230c6e111fbd1e06ae2ca7b3490a4d31726a284ea11d0c37e19a7af28dc470d658db27f2fad6417c3144c80d84da66e2523bb945d6e3cb116982400ec74aa7c89bd30b6bac6dbdb8922b8f20ac615d10c8dcf698992b2ee496c89451838b8bd3c0e1ec298a50ae46ad7f0df8ea2b7be3bc61b8134156372da7f445076844ba42478baf83a509268a1a17dda5c995ab30b4c114cf5036572c0b4df726cc43d5f7f45913bb62f266cb02d6b4beb96f3a32ed2cec540b00d8d74642c499111136f88108eaf8bc921d4222f09976aced44902debc38a650e211eba080fc739c4fca3dbac0c9c7a2c4ebd1cba03a2e99f946174c08103a0f37e76ed94e274e6f35343e4f3b50a1a623c915899a9b2433009c07ae6eabfc1bccd5d0ce3590d7258f2d97a1d238789b2ff4fba024ca13c79fe101b40cfe6a93d9e2dfc628c084229a01636402983ed0297daaca2db2b2928e652ffd7dff7c6d15bc803e8485808ac93862674ce1149bbd4249307c1ee6d63f2a3ac908508bf618bbdf9d30048ccf949052214f6ccf98552ffd88b44b36442eef1b4f30489f8f6730783886ac44b5622bee7d0f7900937514e78f38618f1ac1d50fad66826aa45f2e14185b039c6808cb9a2cb057c4e3520946942fcc0112bdfc2204247b7c5c90714bec524268455a6e2b9e9f218e8894b6ad667a0598560f932c900060087f7b611f417324436207fbb53db0bc8de00faa334c31b1db0895d732cfc86818aa0309dd37a51ee589b680e87a097684286e8196ae3900cfa4afe80965fb89aadbe00db2be161a1ff3fb68ecdbd15e5cabeef41480023b66963685284b8f743c250f91ad46972be4b967d0d8ef7e1af6bff7cbdf7aa79632d2970a1c80280fd91981a5c1546c19c1f0f985789effd6ee3af4754e69c733b28d948b176f8e260b2878a88cb60f3177c7d899f2aeedab35a7b5eb8532abfba1e9ac7f02debc38a650e211eba080fc739c4fca3dbac0c9c7a2c4ebd1cba03a2e99f9462ed2cec540b00d8d74642c499111136f88108eaf8bc921d4222f09976aced4491210685a4d9e484463f7b302f6e72230d0c3eb0c2617a4051f685cc1c44c0a931c4358ffc251975021d01bfbed9470cbcb92cfb3b7ba76124f3f8d9bba9d7f860a48ed80ecd10f4d1bfcc8f68bd879cb98446f95d3854d1c3a6051ae4a8d955527689d7cfa2fe0524407e44f78d4e96e2d86dfe37fe699a3b99a58234edb383a07ae6eabfc1bccd5d0ce3590d7258f2d97a1d238789b2ff4fba024ca13c79fe1174c08103a0f37e76ed94e274e6f35343e4f3b50a1a623c915899a9b2433009c01b40cfe6a93d9e2dfc628c084229a01636402983ed0297daaca2db2b2928e652ffd7dff7c6d15bc803e8485808ac93862674ce1149bbd4249307c1ee6d63f2a1b5ce6b8a4c48302b02e277db3c38c2977cf4ac57f6982990470708cd6feee0604d5dc338122079c36d8b5b63951bd9bb25dcbc7432b2f5944fc96d67688224d129479efdace14f6bc897d82e5c8159dae9236a306ebb6afd94fe4c3f37f35761f1d110e0c32daa8a37b2fc31ee54d9c173918d64c8030101aaac50da5e998190da9c53a4a37c5e04da0af19dc59a37022054efa8988d0a222e67f821e37232b090ed0b8ec5feda80acd69da4e12b003802e4cee29e0af2a10e78b7fb7df91723b5e0d809e87b82739fe15aa61597c0d21e70aaea6a3056e0915d3f3d890a15b36537d7d487937782606979ba353e72cc62addc6b615da6d841206cac0d82c35169433ba78af8d72c0bb9c0098cdd71c5fd43e5be2fbf100271a2e9e8258c6ab050de6817381b7562c09eaca5b47c58a118041271f5df40a3456c3046fa182f6284b8f743c250f91ad46972be4b967d0d8ef7e1af6bff7cbdf7aa79632d2970a0965fb89aadbe00db2be161a1ff3fb68ecdbd15e5cabeef41480023b669636853cd7a6e6579e2aab3818ff0944a64f3c4ac05772b4e41d2b8d0e97c9412ae4d1243ff240bc15a56b0a1a6ce1ba91512e7c8d68e31dd510126a65ad904e9e5f4e0c8dcf698992b2ee496c89451838b8bd3c0e1ec298a50ae46ad7f0df8ea2b7be2523bb945d6e3cb116982400ec74aa7c89bd30b6bac6dbdb8922b8f20ac615d106c26c8e38d6ef6ea085b0db1fb82997c120dda95d4dd964aa47663e46fd6eaa0b15677cb85368f5b2d2b6b28bd48ceb670af5c749b8788fb9f15ceb51aad6e53070df3e3b9994eba4efbd7f3260b29cb3dec813da3b4abddfbe95dc5d5095ab0140abbfab675ab3bb14efc6d24cb09d11ec876579309c02143c13f53c1837e41c4358ffc251975021d01bfbed9470cbcb92cfb3b7ba76124f3f8d9bba9d7f861210685a4d9e484463f7b302f6e72230d0c3eb0c2617a4051f685cc1c44c0a930a48ed80ecd10f4d1bfcc8f68bd879cb98446f95d3854d1c3a6051ae4a8d955527689d7cfa2fe0524407e44f78d4e96e2d86dfe37fe699a3b99a58234edb383a1726a284ea11d0c37e19a7af28dc470d658db27f2fad6417c3144c80d84da66e02c3a7580f95225a28f18b73f4ed73aae230c6e111fbd1e06ae2ca7b3490a4d32523bb945d6e3cb116982400ec74aa7c89bd30b6bac6dbdb8922b8f20ac615d10c8dcf698992b2ee496c89451838b8bd3c0e1ec298a50ae46ad7f0df8ea2b7be151c213beab4d6d39a9b907b4bcd79ba78a9b3d928382351318111615de33102254a6337df8c21c690bcb8ab0db82e726bcdc47fe0ec8b7f3553ad4eb15835e70afafb0997cec08b76d319cb1c1aff7a42b3790f085032b55064d72feadd2aa026b68ff44f322f13e931937ae89263bf8317d66a4b1bb40aa395d2a1ae8ba2ef040e96d144f3866cb4a9f5145524679a8641287d8eaf1514adcbe1f2c569b06e1be2d0845ebaf259c70f9192932e571565cbd442c0f3f9dec51bceae4e9fef2c01bc02cfe161279829dc68eb993116cd1df4c9770beae923c2bc5d9edb78a6a72ff5882e059fc8073628445a6b7c4c6ca7d686024780fd9c313e4c32bdf026e8151570bcfdab9eeac4ee1c93fb5bb3e82f1ba6d11dcc889d2c9a38265208986d06f1fb8ad9841f8be4a8fec1fc10e2d8e7b8ec5fd3078dbf4e7a33dd12a456752ffd7dff7c6d15bc803e8485808ac93862674ce1149bbd4249307c1ee6d63f2a01b40cfe6a93d9e2dfc628c084229a01636402983ed0297daaca2db2b2928e6506c26c8e38d6ef6ea085b0db1fb82997c120dda95d4dd964aa47663e46fd6eaa0b15677cb85368f5b2d2b6b28bd48ceb670af5c749b8788fb9f15ceb51aad6e53070df3e3b9994eba4efbd7f3260b29cb3dec813da3b4abddfbe95dc5d5095ab0140abbfab675ab3bb14efc6d24cb09d11ec876579309c02143c13f53c1837e4151c213beab4d6d39a9b907b4bcd79ba78a9b3d928382351318111615de33102254a6337df8c21c690bcb8ab0db82e726bcdc47fe0ec8b7f3553ad4eb15835e70afafb0997cec08b76d319cb1c1aff7a42b3790f085032b55064d72feadd2aa026b68ff44f322f13e931937ae89263bf8317d66a4b1bb40aa395d2a1ae8ba2ef2adc2cdde1252182ebb8affd2d63380a64f530629b93689615f3d83934ec7acb2c1c5fcdffdef02a6da847933ebdb2a28dcff4d5a831821920c2c3185277121c06e86e525f8a8d130b2d8c6c943cd0da66c0df3fbc378cf74b211d9f6323228a2ac91cab8776628c54d720d97070925f5f0a7039973459c8a8d98c323645ab051be2d0845ebaf259c70f9192932e571565cbd442c0f3f9dec51bceae4e9fef2c040e96d144f3866cb4a9f5145524679a8641287d8eaf1514adcbe1f2c569b06e01bc02cfe161279829dc68eb993116cd1df4c9770beae923c2bc5d9edb78a6a72ff5882e059fc8073628445a6b7c4c6ca7d686024780fd9c313e4c32bdf026e802c3a7580f95225a28f18b73f4ed73aae230c6e111fbd1e06ae2ca7b3490a4d31726a284ea11d0c37e19a7af28dc470d658db27f2fad6417c3144c80d84da66e2523bb945d6e3cb116982400ec74aa7c89bd30b6bac6dbdb8922b8f20ac615d10c8dcf698992b2ee496c89451838b8bd3c0e1ec298a50ae46ad7f0df8ea2b7be3bc61b8134156372da7f445076844ba42478baf83a509268a1a17dda5c995ab30b4c114cf5036572c0b4df726cc43d5f7f45913bb62f266cb02d6b4beb96f3a32ed2cec540b00d8d74642c499111136f88108eaf8bc921d4222f09976aced44902debc38a650e211eba080fc739c4fca3dbac0c9c7a2c4ebd1cba03a2e99f94605e2466a10dcd4849ebdb65184b54a79e0971c0e562f82d579c3f703b4df2af00980987a503c5e8b38d699016ee615cb830c166a46634ada08015241aedbf02e0a69de20eab012231c707c03d6cb6451667d71ab5576baa35cb33cee841d16092747acdcfc50dd7c439431422de1fee85f4dddcdfdf52c1c97476ce3154bb7863ac908508bf618bbdf9d30048ccf949052214f6ccf98552ffd88b44b36442eef1b4f30489f8f6730783886ac44b5622bee7d0f7900937514e78f38618f1ac1d50fad66826aa45f2e14185b039c6808cb9a2cb057c4e3520946942fcc0112bdfc2204247b7c5c90714bec524268455a6e2b9e9f218e8894b6ad667a0598560f931726a284ea11d0c37e19a7af28dc470d658db27f2fad6417c3144c80d84da66e02c3a7580f95225a28f18b73f4ed73aae230c6e111fbd1e06ae2ca7b3490a4d32523bb945d6e3cb116982400ec74aa7c89bd30b6bac6dbdb8922b8f20ac615d10c8dcf698992b2ee496c89451838b8bd3c0e1ec298a50ae46ad7f0df8ea2b7be00000000000000c8000000000000000d0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020b2bd9166fb292fd068715be077faabd5100a082db2ee30b660a7a840a453295e00000000000000010000000000000001000000000000002057d79dbf8ed8b8aa3585c69adf87ef75ce64bdf75ac79a37fcbc979ba37b0a3e000000000000000100000000000000000000000000000020e4531c0cf3964a849077d3f66aca1c780770dbd36f02f9e591cac1251871b88a0000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000000d0000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000000000000000000020320aa9dd5bd9dfcc7442a714a676da72c0bdf0d7b2a15463d62eb475026e96e7000000000000000100000000000000010000000000000020920dd15da9fce8803a46e117f3bde4385758fa2c44ba27dbc3937f8baf01861c000000000000000100000000000000000000000000000020eca4f5bb23e627e638206c61a58db0cd43d08147488056042781720921e9368d0000000000000001000000000000000000000000000000207f33eb1404cd0d875f2a95096d3541a8c1bb93415e8452ab893bd3cc530fea91000000000000000100000000000000010000000000000020f674d9bdc01a18975efa6d78c277539fb49e84aa12b432ce63398cf89654de330000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e000000000000000d0000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a8800000000000000060000000000000001000000000000000000000000000000202a05081821acd73991ddf30aa338e9e68d07d308036f5dee685421d0d664b8d4000000000000000100000000000000010000000000000020051696269ac35a890ff7e9e4bbb7d8699dd1f163f8b92e31bd7f9bb9a3d3711d0000000000000001000000000000000000000000000000208f58a05abc7469791260ad32f6254652370e83827c5f4899db30373c5fb349d7000000000000000100000000000000000000000000000020556b729f832f5d5ffb8c80a2e7f2028be68aa00b113f1182ccd5b7dd03cf096b000000000000000100000000000000010000000000000020e40cceacfe78cff9600b2e46e186ce0d04d352b2cebea854211cefeeb27f1594000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f000000000000000d0000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000000000000000000200716e1cd19237a14d001c5fce43116dfeb224c29086cdd85310949c3149acc09000000000000000100000000000000010000000000000020ad6eb4d9af43f66533a5dd28066af159e6b7b570e5aa940df86b2188b353fe2d000000000000000100000000000000000000000000000020d0607adac9be75983ca414c106315aeb1e834536c7c95a91f7097ab7a15cc628000000000000000100000000000000000000000000000020e7b0a01e52a73870d50a26535d8010fbace9e15d9f75bc0eba0ae2c00cbc16bb000000000000000100000000000000010000000000000020a1510c0b06e39f12e300709d413f8d80016cf37775e3d9332cf787ff7cb437e5000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000000d00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce00000000000000060000000000000001000000000000000000000000000000203d06d0c34c78f1ebbfd1c215c8a936a84907cfe58e6dfe5a5397d697c2f559f90000000000000001000000000000000100000000000000208750516438595b9df11acf617be3bd72dd21c1520fb6bcd4661e9e216369528100000000000000010000000000000000000000000000002047c75ff74c1b8e081c36a6caeccb645ba7fa9feeee2d24f32be3641c6d42ac55000000000000000100000000000000000000000000000020142099038968e9066c8b40ca01903ceeb912fb3a306618ef9c7c457deb8c2893000000000000000100000000000000010000000000000020869859afc4e5681a25a5915521c2a426157dff8e26309759aca12cb8232c3452000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f000000000000001a0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020867f4e7838d3464819f68d32891adc5d0d944835deee9dfab0413a6187f910fc0000000000000001000000000000000000000000000000208cdaf05b84ace4e1b630d731222e016e66fbb851f5088ed3b8479b35f2e863df000000000000000100000000000000010000000000000020087a599f409cb7bacc0662f1cbc4762c6f1a1276b1ec901eff46c07ae65a8c6900000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001a0000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000010000000000000020e5ecb7820c1559658e07aa1dfdaecc4ff7c4d98cc1f131c33d23209c08d147830000000000000001000000000000000000000000000000208140f72e890683cb0c86fb877ded36f4581aa354be3f8c83c99cdf487616e223000000000000000100000000000000010000000000000020d5f571e96d09d56c95ef3b63617cb7cee704c9452fc2678d7d203894421831080000000000000001000000000000000000000000000000201a65e1cc35663dd11d7c5292a59632955075838a0e28f828ed0f1b9b6ab71d9a0000000000000001000000000000000000000000000000201a981d9e84479953754937a102c43e70395029db74bfc2fab12b49c5843d9e430000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e000000000000001a0000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a8800000000000000060000000000000001000000000000000100000000000000209e06882b623b6943341a694086619a2fd57ffb9268685d9270f1c231cf6509ab0000000000000001000000000000000000000000000000205d0f50bf7175a98da247397af17cc975263baf8610471446956ab2cc098fb962000000000000000100000000000000010000000000000020fc3ecba6f88a03bd0fd0081ef31474e57c5e048a180b0f85a74f120f987b913e000000000000000100000000000000000000000000000020985c653902cfbc26788a0a66a2ca25303ad6ea2c2dce45d07ccb47361456c58a000000000000000100000000000000000000000000000020d93b16ca33c69462349cdf25972305037f4521a14049e5a3a75b32e9bee8ab86000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f000000000000001a0000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e0000000000000006000000000000000100000000000000010000000000000020688d94c978c01533c571c99c0eadc6d6449ac9d21c6f1d6226a57898600d1f7e00000000000000010000000000000000000000000000002053850efa1e113a85767b04b049dcd9b2edfb79f7593c8cf90eb4201d4d120f1e0000000000000001000000000000000100000000000000204cc2265dd408d41a199f389594a4d4a755b0b092e6d7724a02ea1a784d18ed7b000000000000000100000000000000000000000000000020b9f8380e2fe3e057f633ea7d58642469bf1143bc7afd2f6ab6cdfafe1a969e7e0000000000000001000000000000000000000000000000209eb7ba4269788b7b97d4252aa2205ef7ba6c9ab3e416ab745d4640aff201076a000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000001a00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce00000000000000060000000000000001000000000000000100000000000000204e77550bd03ecae860c98e4d792432503504a4d7885bb20ee7add50e5a41486a0000000000000001000000000000000000000000000000205661635468d204fececbb4edd8c70496c972c64f65793287d79c677f971f92d90000000000000001000000000000000100000000000000204d013d6b7368c0727be310b46a9ccff9f35de639469cd026aca3e818f732ab2b0000000000000001000000000000000000000000000000209ffe2f8254f8dfda50ac81447c6e6970a53d6f72fc2e89d44cf63d609b971c480000000000000001000000000000000000000000000000204e59b970588c516635072f9eb5ffd6017c806bd61413f1d8d7108febcebe4793000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f000000000000002c0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000100000000000000203143eaf6c1aa46c7aacd87875465de486e36c316b7a0b8bddd6c1517dc726d4d000000000000000100000000000000010000000000000020f10b3d1735c0e4a98365cd6a45c7b241ee1170e0a7ba2fc4a24bab4dfa03f86b000000000000000100000000000000000000000000000020a99ec68e5e702c95d72c271dfc6b7fba83a95d182bfe10c3b55beafee6b02033000000000000000100000000000000000000000000000020bc7cafa2d5bbcd43a2687bac1aaae39ea07c2b052355ee18f7bed28530381a1900000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba3610000000000000002c0000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a300000000000000060000000000000001000000000000000100000000000000202f44186eb43b2e65da381b64ca325acf28ed9d38a91cf07c9ceb1a4881b6cd9600000000000000010000000000000001000000000000002041d8eb40c4a638642c89f93be4a4e1f213cc286de2db3b5f109133cc1ae3b662000000000000000100000000000000000000000000000020900041d0e0b2821e3bd5268406a8a42b3b15133dfa984bd944d9286bd70dce62000000000000000100000000000000000000000000000020a51ce5ba7b44478bcdec8a411d8349eeb36854bb15c20351152e1e50b360d7bd0000000000000001000000000000000100000000000000206075e3c137d83b1533f8eb7c9350d8bc540f7c17d14f427c4b1f1569724c9c9f000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf3554000000000000002c0000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000010000000000000020f64a9a649c435fd1e0ca97145ca4cd78df5b79ec9cd706679764e8333da64216000000000000000100000000000000010000000000000020827dbebba78c620c9ccc00928e09ce842cf637fdb1af88bc13216878a92ca6a60000000000000001000000000000000000000000000000200212ec683135f2c5536847cb1e270bfed25c358367fb0c0cffbc497f821351500000000000000001000000000000000000000000000000206d8458687217e86e52d9138ff093ca35b4e8533ca8cdd768b3ea57415f64e8a90000000000000001000000000000000100000000000000209898665151c8643d367f337a0c2eeb715a6080b039ae6b00481ab48b488fc8c90000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb000000000000002c0000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000100000000000000209b6d4fc0268fa4a4825822f7279ea30f254e3e5d5f2dd6023b8e4a128e8d0a400000000000000001000000000000000100000000000000203440167be41595a840c522d3aaf386ce0d3c07450271cb0a56062156579d79e30000000000000001000000000000000000000000000000209a02cbb403c1ae6e399a5a51c1e88a18bfd9de611f7c24f1756fa77981a5413e0000000000000001000000000000000000000000000000209d208af5249585c0326402a6c6970251fae890b4c592ee88f15cc20a235ef8fb000000000000000100000000000000010000000000000020ab56a12205d0c8e0e402ade0769ddecf9b594f3d7db8254cb25540877c795f65000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000002c00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce000000000000000600000000000000010000000000000001000000000000002012d5b57b8be907db8b5919a8a2f2481a0443536ab29fb334c49d54a2a83f61140000000000000001000000000000000100000000000000207a4da6635f64fb0a723df32288cb96eac074acdaa9d1ab4a0f47d69a789250c1000000000000000100000000000000000000000000000020d69d791eef291d18b1d5bc0d2ddecdb8f7192ef5119037c23a2c2757c30fdf90000000000000000100000000000000000000000000000020626301e6b2a07f50dbdb59c4961faaebda7a023d1a4b426b95b4bc4be4bd17750000000000000001000000000000000100000000000000206ee562063ccf55f6adc30345f7d34f6c30fba9f1634f24a99a4c5c6e7e6de3b5000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a000000000000003a0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020a703b232dee813c8a4137b1352104a2a2f5c76b3c228071d496a01947240f1e0000000000000000100000000000000000000000000000020d6ba9716b244280517fc338189ee3d18ef53ca399f72746f13fab57a2218a56500000000000000010000000000000001000000000000002013cba62cb82888bb083b50937d466b49f9391c00299bd77abb46de4352465093000000000000000100000000000000000000000000000020a3c68cdf76781d19db7aa603f4cd91ea38edfc0b5126585e0c4cc27eb1121e50000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba3610000000000000003a0000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000010000000000000020fc0ca5e757400056d0d6aab3b8b484c17293530a53d06fd30f84d6b5afe3f656000000000000000100000000000000000000000000000020b7f346d3c6e9ee9c10bf69f4a5012938bba47cf08d9407ad04f62eb982def018000000000000000100000000000000010000000000000020294a02d54abb3df02e3246385cc62ff7ce7229b010690ce8690c31f967c45b48000000000000000100000000000000000000000000000020c8d8760ce542c5a702bcabcb4fef6e52d4233083d54c3cc37568102e3f21b0ec0000000000000001000000000000000000000000000000204784f6834025b9259cfebec8cffeb00373b1af30dde25a8e3b68097f0573e1f4000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf3554000000000000003a0000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000010000000000000020952034ff6d2df75248d090e90e618eece2d6405552d1e11c14aa8462b32a54cb000000000000000100000000000000000000000000000020d8782e4efe62d509ff62ebc3452cb7c1da046dfba54e6bcbebc8e43f64a294b8000000000000000100000000000000010000000000000020a699562990c3412fc55d466a3e6d9bcf5a7122ba4c59059e9715120d545c05d400000000000000010000000000000000000000000000002021d1315b8b30976711b2a1eb7d34dc8b98eb6fcd1048d35af300a0e1afc757f600000000000000010000000000000000000000000000002081164d64a302850b69a6f61885a59bcff6f1ab23c424b6d2a9d63914f94a1e420000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb000000000000003a0000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000100000000000000202973eeea5f6ad9dd36f039ff5259ed484e4649dc8a00ddfe5280fc67d4c8c26d0000000000000001000000000000000000000000000000204274e3afc8d623149b5c62c06d228d2a7d27988adb2fd2d2238b2fb7457a71cd000000000000000100000000000000010000000000000020ff7f832f632893365f82d73c7d532c6bd3b7716ef7d7e7934d9ed9ee15104724000000000000000100000000000000000000000000000020362c41d2cff677621fedd9b9572a01b4275f6960c9701d92b3b8f403c3843124000000000000000100000000000000000000000000000020cff6591dfe8cb9d421049bf180fabeb267dc54e2b75083b1c94c48eeb9a2fbe9000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000003a00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000010000000000000020da59dcadb399644cb94524ce0a309a798bad46458bdc8003377a3449601998a90000000000000001000000000000000000000000000000205d34478ec6e110ef108a99b633c23e028d58ee30e849b459c4806c49166e70fd0000000000000001000000000000000100000000000000205bbf6df18c13b21ec0b39c6471ce58786a1bbd3b55eb1c1bcf04b80eb8446ddb000000000000000100000000000000000000000000000020f7c60fc0242ab4dfbc4e7ed03bd9eaacbe7d3b976a9239dc44a6f083d47d210d0000000000000001000000000000000000000000000000208af78be0e621a70f818b523c1d4675b967f8ca602f0292dfbd3b6cb3b77c3830000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a000000000000001c0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000001000000000000002037b6c67d542cc82de1bdb70e49b269e367dd16e912af30b78c822650621202e20000000000000001000000000000000100000000000000202ec5ed8b835c098bcf1fbaa0f4aab5053575fbe2dd675f6a8528d2ae539d073300000000000000010000000000000000000000000000002070f93532da12d95bd9b02b2acb02b74a3a532fbd8d1ec178ca7acf3e54865fb800000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001c0000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a3000000000000000600000000000000010000000000000001000000000000002024849e8d957482bb921ab1fbe8134241a44f7e9de2c516b7a4e85f90e85c3511000000000000000100000000000000010000000000000020590d9c432f285808f63451f8d6c0a1260cf0a604784325d45bb0ea5e63f474c20000000000000001000000000000000000000000000000205b277784934640de1faad045f97aa33ead0988f94dacc9c53e4166dbb115452f0000000000000001000000000000000000000000000000201a65e1cc35663dd11d7c5292a59632955075838a0e28f828ed0f1b9b6ab71d9a0000000000000001000000000000000000000000000000201a981d9e84479953754937a102c43e70395029db74bfc2fab12b49c5843d9e430000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e000000000000001c0000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a8800000000000000060000000000000001000000000000000100000000000000207fdebb0e9dba24fa37602559407b99dd55ea4ffb80c5689dfdd314663cd464c90000000000000001000000000000000100000000000000206a335c82a94227739b09dfafb636354f448b023d2721cf42e0629a778d731cec000000000000000100000000000000000000000000000020489d99d4593c9f7d7ef11873a6c49aafdfb74ac5f21eb6af1c6ee02f3ffb8a2f000000000000000100000000000000000000000000000020985c653902cfbc26788a0a66a2ca25303ad6ea2c2dce45d07ccb47361456c58a000000000000000100000000000000000000000000000020d93b16ca33c69462349cdf25972305037f4521a14049e5a3a75b32e9bee8ab86000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f000000000000001c0000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e0000000000000006000000000000000100000000000000010000000000000020efdae9d81fd2ca0096d5aee41b21de66488c5140026824db3cd9c8e1763de84f00000000000000010000000000000001000000000000002051704f70a8aa51bd314aab357c177ac12119cd35d4c15df8f63ac290257fb714000000000000000100000000000000000000000000000020a807a1722dd073782a8272fa29a97e18cc1fcb02a95519aa71a538bc94a590e3000000000000000100000000000000000000000000000020b9f8380e2fe3e057f633ea7d58642469bf1143bc7afd2f6ab6cdfafe1a969e7e0000000000000001000000000000000000000000000000209eb7ba4269788b7b97d4252aa2205ef7ba6c9ab3e416ab745d4640aff201076a000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000001c00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce000000000000000600000000000000010000000000000001000000000000002079831fbf32c16db507b5d2af52b0e46fbad3771bf773a6c2273a65297cd2526f000000000000000100000000000000010000000000000020648403802e5d55e3d3786042b30a6d3cb7e6df509b21c13f1d237517167a83e200000000000000010000000000000000000000000000002075430e07a240300ae52c953b5ec016f510b635876be55ed1ecf612dffb92990b0000000000000001000000000000000000000000000000209ffe2f8254f8dfda50ac81447c6e6970a53d6f72fc2e89d44cf63d609b971c480000000000000001000000000000000000000000000000204e59b970588c516635072f9eb5ffd6017c806bd61413f1d8d7108febcebe4793000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f000000000000001d0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020a89096b06ea97fc764549f477ec35dc13b208ea05aea251072e9bc82b6f3a78e0000000000000001000000000000000100000000000000202ec5ed8b835c098bcf1fbaa0f4aab5053575fbe2dd675f6a8528d2ae539d073300000000000000010000000000000000000000000000002070f93532da12d95bd9b02b2acb02b74a3a532fbd8d1ec178ca7acf3e54865fb800000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001d0000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000000000000000000020b0109e99c5dc752bfee63ab2d3960d9f6e29ace7797b150c1a3135d8bda3e962000000000000000100000000000000010000000000000020590d9c432f285808f63451f8d6c0a1260cf0a604784325d45bb0ea5e63f474c20000000000000001000000000000000000000000000000205b277784934640de1faad045f97aa33ead0988f94dacc9c53e4166dbb115452f0000000000000001000000000000000000000000000000201a65e1cc35663dd11d7c5292a59632955075838a0e28f828ed0f1b9b6ab71d9a0000000000000001000000000000000000000000000000201a981d9e84479953754937a102c43e70395029db74bfc2fab12b49c5843d9e430000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e000000000000001d0000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a88000000000000000600000000000000010000000000000000000000000000002034d22a403ecd0dc4c365b3650da637ef4ec639fb9cd5d2b566df77b479d254590000000000000001000000000000000100000000000000206a335c82a94227739b09dfafb636354f448b023d2721cf42e0629a778d731cec000000000000000100000000000000000000000000000020489d99d4593c9f7d7ef11873a6c49aafdfb74ac5f21eb6af1c6ee02f3ffb8a2f000000000000000100000000000000000000000000000020985c653902cfbc26788a0a66a2ca25303ad6ea2c2dce45d07ccb47361456c58a000000000000000100000000000000000000000000000020d93b16ca33c69462349cdf25972305037f4521a14049e5a3a75b32e9bee8ab86000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f000000000000001d0000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000000000000000000202a5fdf74737c8f6a43429b00f9b68be0f28fca20ce52d06cbcbc6c3168fe428d00000000000000010000000000000001000000000000002051704f70a8aa51bd314aab357c177ac12119cd35d4c15df8f63ac290257fb714000000000000000100000000000000000000000000000020a807a1722dd073782a8272fa29a97e18cc1fcb02a95519aa71a538bc94a590e3000000000000000100000000000000000000000000000020b9f8380e2fe3e057f633ea7d58642469bf1143bc7afd2f6ab6cdfafe1a969e7e0000000000000001000000000000000000000000000000209eb7ba4269788b7b97d4252aa2205ef7ba6c9ab3e416ab745d4640aff201076a000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000001d00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000000000000000000020aacef8144d0aaa9c2a0ca40d2dc95841d11907a2a4555144969c3937ebd7fe3d000000000000000100000000000000010000000000000020648403802e5d55e3d3786042b30a6d3cb7e6df509b21c13f1d237517167a83e200000000000000010000000000000000000000000000002075430e07a240300ae52c953b5ec016f510b635876be55ed1ecf612dffb92990b0000000000000001000000000000000000000000000000209ffe2f8254f8dfda50ac81447c6e6970a53d6f72fc2e89d44cf63d609b971c480000000000000001000000000000000000000000000000204e59b970588c516635072f9eb5ffd6017c806bd61413f1d8d7108febcebe4793000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f00000000000000080000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020657f400c23f985ef1ba27d0e61eec710dc328bb9ca9d9fcbbed56910fe31e4490000000000000001000000000000000100000000000000204e8bc169e0bffb7af86e442b025c73a9c0e2c8fcbfdcbdbfd7d568446045f1ae000000000000000100000000000000010000000000000020f7575ab7c2207c8a39c727bb104d9b7c0105c5ae631fc01ee25378fbc615b0d20000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000080000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000010000000000000020cc0f1e88acadc270e58547f095d41024d314617f6857a57276076ac7013d929d000000000000000100000000000000010000000000000020365faf9d4f2617ac85e85655583b336257b16695a31927343364637953760d7200000000000000010000000000000001000000000000002013d14b381120b5bf3e50be8082945bcab9ff68ae60b49158622bb0bdcdb513f30000000000000001000000000000000000000000000000207f33eb1404cd0d875f2a95096d3541a8c1bb93415e8452ab893bd3cc530fea91000000000000000100000000000000010000000000000020f674d9bdc01a18975efa6d78c277539fb49e84aa12b432ce63398cf89654de330000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e00000000000000080000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a8800000000000000060000000000000001000000000000000100000000000000207c093edc1d316a87c6f40888ea29e7b6f3140dbe38af585e8837f9aeb0d8172b0000000000000001000000000000000100000000000000209e54f8b518fde13c6b19dc6fa571c0e11fdeaad73188e893de28466eac1886ce0000000000000001000000000000000100000000000000201e601b594927843632982fc282235dfee77b9c21997d4f2aaab32451c59b939e000000000000000100000000000000000000000000000020556b729f832f5d5ffb8c80a2e7f2028be68aa00b113f1182ccd5b7dd03cf096b000000000000000100000000000000010000000000000020e40cceacfe78cff9600b2e46e186ce0d04d352b2cebea854211cefeeb27f1594000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f00000000000000080000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000100000000000000201007511eff2b57926ed6a09bb01db3212d3c58b433cd892b79c314179fc16b06000000000000000100000000000000010000000000000020c000cbdc7147347a3028888481308e00d5d9eb191983a915f7f252d616d16cc6000000000000000100000000000000010000000000000020d514ba05ee09db66c53d6fea826e5169cee5c5f858b32cf798aea18463bbff6a000000000000000100000000000000000000000000000020e7b0a01e52a73870d50a26535d8010fbace9e15d9f75bc0eba0ae2c00cbc16bb000000000000000100000000000000010000000000000020a1510c0b06e39f12e300709d413f8d80016cf37775e3d9332cf787ff7cb437e5000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000000800000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000010000000000000020a3338de9d2e6b6efdd428b4b8121190331f8afd171b42c6abbce6ff7b9c46bed00000000000000010000000000000001000000000000002003dc9b545556b88e3a8a56d6948e16302ab10ebcd74c3b4dfeebd045264cf2d7000000000000000100000000000000010000000000000020e2d1d645aa1491df7a22465a64245aef796656a1c91387cc00b336cb8db93a4f000000000000000100000000000000000000000000000020142099038968e9066c8b40ca01903ceeb912fb3a306618ef9c7c457deb8c2893000000000000000100000000000000010000000000000020869859afc4e5681a25a5915521c2a426157dff8e26309759aca12cb8232c3452000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f000000000000002a0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000001000000000000002029933cdd58706d69a594c9d24cac81d89a2aca731c11be9267c9a7d6c46556710000000000000001000000000000000000000000000000207389759a61afbc01d58e739b1599d7588a2a6faba16eb514210d5cedf79e0b34000000000000000100000000000000010000000000000020a346fbbeee725da089a6715dac946ab17533f7a77d571694ca1f1b28abb7d944000000000000000100000000000000000000000000000020bc7cafa2d5bbcd43a2687bac1aaae39ea07c2b052355ee18f7bed28530381a1900000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba3610000000000000002a0000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000010000000000000020f455353fb6fddfcbec06bbaef07205e128a20673749299fdcbeba1f977cf2dcd000000000000000100000000000000000000000000000020cbb9751f19b05fd8cafa9b0cf995c2264c9339af14376000307d567d4edf3b400000000000000001000000000000000100000000000000203547113af63ad8e61d104e845bc7bd94f46e699da72fc56d4cf252b88c72d482000000000000000100000000000000000000000000000020a51ce5ba7b44478bcdec8a411d8349eeb36854bb15c20351152e1e50b360d7bd0000000000000001000000000000000100000000000000206075e3c137d83b1533f8eb7c9350d8bc540f7c17d14f427c4b1f1569724c9c9f000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf3554000000000000002a0000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000010000000000000020dffc5e5de45cbba0637bcb42f469b3808faca89b90727e8efc4561db9aa44b4c000000000000000100000000000000000000000000000020e843789852e901f0615732e2265025ec28d45081d6374488264b032d64ef08f10000000000000001000000000000000100000000000000207227287ef1043ec37d0a201d022d15e42297a01a946813d933dba5d6630032b60000000000000001000000000000000000000000000000206d8458687217e86e52d9138ff093ca35b4e8533ca8cdd768b3ea57415f64e8a90000000000000001000000000000000100000000000000209898665151c8643d367f337a0c2eeb715a6080b039ae6b00481ab48b488fc8c90000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb000000000000002a0000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000100000000000000200aec919c0f5e348f60093b967591d040be204f2249504883b69174a44bae984000000000000000010000000000000000000000000000002079a896fd9e75b33ef51efd2e04ab3cf8bd8660359c9f21f7dc9e05d6cbaec1900000000000000001000000000000000100000000000000206d3d4fb0fa281a7f9e028b803d8a4aa225d1ba02f34ac4ddbcc7a4f20df718af0000000000000001000000000000000000000000000000209d208af5249585c0326402a6c6970251fae890b4c592ee88f15cc20a235ef8fb000000000000000100000000000000010000000000000020ab56a12205d0c8e0e402ade0769ddecf9b594f3d7db8254cb25540877c795f65000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000002a00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce00000000000000060000000000000001000000000000000100000000000000203bc5ed02d1a45b0c1089e7d6f9d5798844b087345712faca5c0cb3836b5f490c000000000000000100000000000000000000000000000020accb0572eff1c8585502df9d1e27bf4be0958d77c6290930b26bc03c9ebf5bb30000000000000001000000000000000100000000000000205af1ddec7a4ff15ca116e9d45258202fb6719b2245f7f0b4321be7bca697bb4a000000000000000100000000000000000000000000000020626301e6b2a07f50dbdb59c4961faaebda7a023d1a4b426b95b4bc4be4bd17750000000000000001000000000000000100000000000000206ee562063ccf55f6adc30345f7d34f6c30fba9f1634f24a99a4c5c6e7e6de3b5000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a00000000000000360000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020c3a4db706c3c3b07e0984d10824acb5797a59a8b4d40d709cfa0452e6ee0f23400000000000000010000000000000000000000000000002015ad821dcbca21c0f24f28f58131f9ab7767c0d6fbf621d34a2c84ab7b24c75e000000000000000100000000000000000000000000000020f4d1e64380a2c05ab0dc64ea31b5e288a4325921fa907811ded50419cc51d1ad00000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000360000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000010000000000000020f633ed75184d4a7e757e8c2a25212067732a2af11f6ba2ddc33ed719ebaf044e000000000000000100000000000000000000000000000020f1e2b6347ac2739a9b466267fbd2550305432721d16af954e722390ced51f508000000000000000100000000000000000000000000000020a3b4187c6753dc9ef8e78915ad0d5a86516efe76949a7e97bde2b7c7f7ced146000000000000000100000000000000010000000000000020683add9032495c3da8b6bd81434dde36b862a0aa24bfc4921623d38f6d42ce9e0000000000000001000000000000000000000000000000204784f6834025b9259cfebec8cffeb00373b1af30dde25a8e3b68097f0573e1f4000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf355400000000000000360000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000010000000000000020f406c28d6ab2004ecc82788f7e58b86e0f4e803c0038d67c292fdc0c28d5c5ef000000000000000100000000000000000000000000000020ed27bfab2e7f35c0e874f1cea2ac0d0e57387c04f2dcec17c69645f45c45dc61000000000000000100000000000000000000000000000020cc57c137940830e48f40c451bdc74b12071485f1ad6ffba3e2ab01a9c482cb080000000000000001000000000000000100000000000000205efe682d733ff9220f6e865648ba8a56c69380880c1b4f659a8bf126240ceeb500000000000000010000000000000000000000000000002081164d64a302850b69a6f61885a59bcff6f1ab23c424b6d2a9d63914f94a1e420000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb00000000000000360000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000100000000000000208fb7545027f7d19fcd4da696a6bf239fc744defe5b382690b579a98b1dad5be100000000000000010000000000000000000000000000002071d15c01a1238d45abb8e3144cfa8f392b83afd290d498bf6719cd6131e12f2b00000000000000010000000000000000000000000000002058034b10ba7cfc2c36a16ab5d61a39a246370d0f4b9ad70756884cc55b6f8d0900000000000000010000000000000001000000000000002074d0092f6c300f43760e0459a111c8fd56d2fe92366d550b7a221827dc9ed2dc000000000000000100000000000000000000000000000020cff6591dfe8cb9d421049bf180fabeb267dc54e2b75083b1c94c48eeb9a2fbe9000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000003600000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000010000000000000020fba6d08c6ba7f143746d8ae4460a07bfce7ab4306b15d53e3d4b6892ec8c1c68000000000000000100000000000000000000000000000020a83ed7937cc008c4f5c47eab905b2c4437bdd9fb5bf17fbfc689d4d4a802e0b900000000000000010000000000000000000000000000002060eff9ce86435865bbc177c269e76fb0f849d4a5a9c70083537cf0ad9059f438000000000000000100000000000000010000000000000020b2b1f9a9da970f658f42768224e216c42e11acbca318b0a65a9fd00cb5e0c9980000000000000001000000000000000000000000000000208af78be0e621a70f818b523c1d4675b967f8ca602f0292dfbd3b6cb3b77c3830000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a000000000000001c0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000001000000000000002037b6c67d542cc82de1bdb70e49b269e367dd16e912af30b78c822650621202e20000000000000001000000000000000100000000000000202ec5ed8b835c098bcf1fbaa0f4aab5053575fbe2dd675f6a8528d2ae539d073300000000000000010000000000000000000000000000002070f93532da12d95bd9b02b2acb02b74a3a532fbd8d1ec178ca7acf3e54865fb800000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001c0000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a3000000000000000600000000000000010000000000000001000000000000002024849e8d957482bb921ab1fbe8134241a44f7e9de2c516b7a4e85f90e85c3511000000000000000100000000000000010000000000000020590d9c432f285808f63451f8d6c0a1260cf0a604784325d45bb0ea5e63f474c20000000000000001000000000000000000000000000000205b277784934640de1faad045f97aa33ead0988f94dacc9c53e4166dbb115452f0000000000000001000000000000000000000000000000201a65e1cc35663dd11d7c5292a59632955075838a0e28f828ed0f1b9b6ab71d9a0000000000000001000000000000000000000000000000201a981d9e84479953754937a102c43e70395029db74bfc2fab12b49c5843d9e430000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e000000000000001c0000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a8800000000000000060000000000000001000000000000000100000000000000207fdebb0e9dba24fa37602559407b99dd55ea4ffb80c5689dfdd314663cd464c90000000000000001000000000000000100000000000000206a335c82a94227739b09dfafb636354f448b023d2721cf42e0629a778d731cec000000000000000100000000000000000000000000000020489d99d4593c9f7d7ef11873a6c49aafdfb74ac5f21eb6af1c6ee02f3ffb8a2f000000000000000100000000000000000000000000000020985c653902cfbc26788a0a66a2ca25303ad6ea2c2dce45d07ccb47361456c58a000000000000000100000000000000000000000000000020d93b16ca33c69462349cdf25972305037f4521a14049e5a3a75b32e9bee8ab86000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f000000000000001c0000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e0000000000000006000000000000000100000000000000010000000000000020efdae9d81fd2ca0096d5aee41b21de66488c5140026824db3cd9c8e1763de84f00000000000000010000000000000001000000000000002051704f70a8aa51bd314aab357c177ac12119cd35d4c15df8f63ac290257fb714000000000000000100000000000000000000000000000020a807a1722dd073782a8272fa29a97e18cc1fcb02a95519aa71a538bc94a590e3000000000000000100000000000000000000000000000020b9f8380e2fe3e057f633ea7d58642469bf1143bc7afd2f6ab6cdfafe1a969e7e0000000000000001000000000000000000000000000000209eb7ba4269788b7b97d4252aa2205ef7ba6c9ab3e416ab745d4640aff201076a000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000001c00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce000000000000000600000000000000010000000000000001000000000000002079831fbf32c16db507b5d2af52b0e46fbad3771bf773a6c2273a65297cd2526f000000000000000100000000000000010000000000000020648403802e5d55e3d3786042b30a6d3cb7e6df509b21c13f1d237517167a83e200000000000000010000000000000000000000000000002075430e07a240300ae52c953b5ec016f510b635876be55ed1ecf612dffb92990b0000000000000001000000000000000000000000000000209ffe2f8254f8dfda50ac81447c6e6970a53d6f72fc2e89d44cf63d609b971c480000000000000001000000000000000000000000000000204e59b970588c516635072f9eb5ffd6017c806bd61413f1d8d7108febcebe4793000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f00000000000000010000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020ce2da5dd3f1d2499114e62007db0bc8b52860a97086c4d1d9b291f96e0ac9c2e000000000000000100000000000000010000000000000020fc1dbba6f9b455616fa548f07000bd186f0be1060371081b1c952c87cb2969850000000000000001000000000000000100000000000000205bc3e12c36d4a2e20b1b195ac346c64db1219ed22eb08085da4d26fcd4973a5e0000000000000001000000000000000100000000000000209dc48d41a2d4c25b90ae286b21502aabe4177429574808eac78aed0ba9b970ba00000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000010000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a3000000000000000600000000000000010000000000000000000000000000002020e463879ca91215f6ecad044b8d903cd8e1b976858803010318f174d3d7c00a000000000000000100000000000000010000000000000020eab0124714357419c82aa6b9fc67bfe0f2d6c5ba5aef9a9c6df813dff96cd2e80000000000000001000000000000000100000000000000203846fd3e36aeab07b7b1149be12abaec4d198301c7f4ccd5c462b83d505bf578000000000000000100000000000000010000000000000020f8bc11deec21302e1f51f9e237aedb8aa5251d7676c7f5048dedcd657f7133fc000000000000000100000000000000010000000000000020f674d9bdc01a18975efa6d78c277539fb49e84aa12b432ce63398cf89654de330000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e00000000000000010000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000000000000000000020b2c38a800288dcec6ef1593ab0b78edc47703f1a83b454dc56c3f820e8d5d118000000000000000100000000000000010000000000000020b1464354ea8f4837c1fc57de33d11dc40824d0aa9801f9697aa31e991e67bf290000000000000001000000000000000100000000000000202f4dae3f3abefdcef8e804a8550409e8107cfcda485796ec05ed01a647dd20780000000000000001000000000000000100000000000000201e5d518201338ae65645a43790fcc881148a862ced5662dd2f3d4fa272096c30000000000000000100000000000000010000000000000020e40cceacfe78cff9600b2e46e186ce0d04d352b2cebea854211cefeeb27f1594000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f00000000000000010000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000000000000000000207125acf898834eb0e8e1013e63541455fbd6dd19b747f442192de123351fcdc70000000000000001000000000000000100000000000000201e9013d6c777f8d7415338d318d8b199145c4208c4771262d14ba9fff01ffa0600000000000000010000000000000001000000000000002069a21d672f2da0e3b1597c5c5632f215bde7dcc270ed7fbf814232fbdc4993600000000000000001000000000000000100000000000000201e0e5ee3509d87c942d6eecc539d80cd51775918b908b745d7ab410f52b8a562000000000000000100000000000000010000000000000020a1510c0b06e39f12e300709d413f8d80016cf37775e3d9332cf787ff7cb437e5000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000000100000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000000000000000000020d0b67569c44dba76fcb005ec4cf9a5a689ec05993b8a54228e881965257bfa05000000000000000100000000000000010000000000000020766d125ba1ecd094c63c9ec0a9e1a0d19ebca2e1c2442c4307356d177331f52a000000000000000100000000000000010000000000000020e711eb9d7015bf6d75e0398e5bc0c1a5bcd17f5d847c5afd256642cb6930a546000000000000000100000000000000010000000000000020be6d505b52ce59b71864d77730ffeb8628fe75575331c760db510ad311a24443000000000000000100000000000000010000000000000020869859afc4e5681a25a5915521c2a426157dff8e26309759aca12cb8232c3452000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f000000000000001b0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020c26d26b74acdd23d9b0155fbf8a8563a59c86a826119cd98d5e72857ecef75c00000000000000001000000000000000000000000000000208cdaf05b84ace4e1b630d731222e016e66fbb851f5088ed3b8479b35f2e863df000000000000000100000000000000010000000000000020087a599f409cb7bacc0662f1cbc4762c6f1a1276b1ec901eff46c07ae65a8c6900000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001b0000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000000000000000000020be2ce71510689cec8c1bfbd417ef2733a1ccea07200e6785e4bff8e91c15f2e80000000000000001000000000000000000000000000000208140f72e890683cb0c86fb877ded36f4581aa354be3f8c83c99cdf487616e223000000000000000100000000000000010000000000000020d5f571e96d09d56c95ef3b63617cb7cee704c9452fc2678d7d203894421831080000000000000001000000000000000000000000000000201a65e1cc35663dd11d7c5292a59632955075838a0e28f828ed0f1b9b6ab71d9a0000000000000001000000000000000000000000000000201a981d9e84479953754937a102c43e70395029db74bfc2fab12b49c5843d9e430000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e000000000000001b0000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a88000000000000000600000000000000010000000000000000000000000000002042187ca44d24d43efd1dd619f90aef9a61178f853e0f6d77b5e0ab4744814e2a0000000000000001000000000000000000000000000000205d0f50bf7175a98da247397af17cc975263baf8610471446956ab2cc098fb962000000000000000100000000000000010000000000000020fc3ecba6f88a03bd0fd0081ef31474e57c5e048a180b0f85a74f120f987b913e000000000000000100000000000000000000000000000020985c653902cfbc26788a0a66a2ca25303ad6ea2c2dce45d07ccb47361456c58a000000000000000100000000000000000000000000000020d93b16ca33c69462349cdf25972305037f4521a14049e5a3a75b32e9bee8ab86000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f000000000000001b0000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000000000000000000205c97271f82b2d21afc4a4df7bb146c200a5e0ea96bca962c92854d5335ffe6e300000000000000010000000000000000000000000000002053850efa1e113a85767b04b049dcd9b2edfb79f7593c8cf90eb4201d4d120f1e0000000000000001000000000000000100000000000000204cc2265dd408d41a199f389594a4d4a755b0b092e6d7724a02ea1a784d18ed7b000000000000000100000000000000000000000000000020b9f8380e2fe3e057f633ea7d58642469bf1143bc7afd2f6ab6cdfafe1a969e7e0000000000000001000000000000000000000000000000209eb7ba4269788b7b97d4252aa2205ef7ba6c9ab3e416ab745d4640aff201076a000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000001b00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000000000000000000020f7975317e94d2c310349fe97d7e016b158908ee2c379940c28507f5badf18e810000000000000001000000000000000000000000000000205661635468d204fececbb4edd8c70496c972c64f65793287d79c677f971f92d90000000000000001000000000000000100000000000000204d013d6b7368c0727be310b46a9ccff9f35de639469cd026aca3e818f732ab2b0000000000000001000000000000000000000000000000209ffe2f8254f8dfda50ac81447c6e6970a53d6f72fc2e89d44cf63d609b971c480000000000000001000000000000000000000000000000204e59b970588c516635072f9eb5ffd6017c806bd61413f1d8d7108febcebe4793000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f000000000000000b0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020ad82ea2a45d85b48e6c82ed5ce28deab27d4ccdf080aa1d4cce08b7c9106cc24000000000000000100000000000000000000000000000020dfa1f4a78895997367f9cc44c38621692b6fc048ae50b225156222237c41470e000000000000000100000000000000010000000000000020f7575ab7c2207c8a39c727bb104d9b7c0105c5ae631fc01ee25378fbc615b0d20000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000000b0000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000000000000000000020cd43d13c76c200d077bb52432a9ce254d5617643c205ce8a5a54c32aef2325bb00000000000000010000000000000000000000000000002028e0b13739e849baecb54edea5630c67498ebf690afbae8176352521697fc19400000000000000010000000000000001000000000000002013d14b381120b5bf3e50be8082945bcab9ff68ae60b49158622bb0bdcdb513f30000000000000001000000000000000000000000000000207f33eb1404cd0d875f2a95096d3541a8c1bb93415e8452ab893bd3cc530fea91000000000000000100000000000000010000000000000020f674d9bdc01a18975efa6d78c277539fb49e84aa12b432ce63398cf89654de330000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e000000000000000b0000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000000000000000000020647fde57b6384c82096acc647f2b20b2a8c82b9d5c51b6362dfe46859b42279c000000000000000100000000000000000000000000000020ffa6b5a4b5fd30f3557f785646d6ee58379f2523d6bbdde6780bc950fb0aec130000000000000001000000000000000100000000000000201e601b594927843632982fc282235dfee77b9c21997d4f2aaab32451c59b939e000000000000000100000000000000000000000000000020556b729f832f5d5ffb8c80a2e7f2028be68aa00b113f1182ccd5b7dd03cf096b000000000000000100000000000000010000000000000020e40cceacfe78cff9600b2e46e186ce0d04d352b2cebea854211cefeeb27f1594000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f000000000000000b0000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000000000000000000208c1b44554c6d94bffd9d103dcab56a6cca19225d8b80ebb83362764576af813c00000000000000010000000000000000000000000000002028a460e6880a4e76fbde19c30fe02332da8004ea821101be5cfe8c2e1ee60ce0000000000000000100000000000000010000000000000020d514ba05ee09db66c53d6fea826e5169cee5c5f858b32cf798aea18463bbff6a000000000000000100000000000000000000000000000020e7b0a01e52a73870d50a26535d8010fbace9e15d9f75bc0eba0ae2c00cbc16bb000000000000000100000000000000010000000000000020a1510c0b06e39f12e300709d413f8d80016cf37775e3d9332cf787ff7cb437e5000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000000b00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce00000000000000060000000000000001000000000000000000000000000000201402955f3a57b41f305d9a4d39fa9fd355bd14ac5c685b3948bbfc714675cc530000000000000001000000000000000000000000000000203bab8a9e9007be7e8c56a1bde60ddda6138821056a7c45bab91bcabfcf500376000000000000000100000000000000010000000000000020e2d1d645aa1491df7a22465a64245aef796656a1c91387cc00b336cb8db93a4f000000000000000100000000000000000000000000000020142099038968e9066c8b40ca01903ceeb912fb3a306618ef9c7c457deb8c2893000000000000000100000000000000010000000000000020869859afc4e5681a25a5915521c2a426157dff8e26309759aca12cb8232c3452000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f00000000000000170000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020a0c329674d73730336f6ce60133ccf4aac3865051d354d21037187f6396071b3000000000000000100000000000000000000000000000020864e47462260929d60876a0babd915b08229a85eed60fe22ac85ec61ee1e866e000000000000000100000000000000000000000000000020080b28b1dece6dde43a662bb2943cbbcfb4977254ddfb567d20ec3694d07decc000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000170000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a300000000000000060000000000000001000000000000000000000000000000205bd98a1b491cc72eb05e18deecafdb001f85e6128a43343d3ff0be37e78fe64f0000000000000001000000000000000000000000000000200e7d351888311da505d48edf530347f157d2abfcab987c09de8b0beef61251bf0000000000000001000000000000000000000000000000207990f75efecb15381ee2ea49b218b85f7e3d2cd5a557af793a918c688444cb36000000000000000100000000000000010000000000000020fd279d1406b4d83c0a17f7b257f972ea35ed0ca71fef42b15831ef20a873d2060000000000000001000000000000000000000000000000201a981d9e84479953754937a102c43e70395029db74bfc2fab12b49c5843d9e430000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e00000000000000170000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000000000000000000020a086ae4f0127f6c9909beabf093667b871ff438149eab70e246ffb25d3fddabb000000000000000100000000000000000000000000000020d4552976af65c083f953d52f4a52bbc52fc0ce914e2a0410d0b8cb54949d05b00000000000000001000000000000000000000000000000206535303184ae9576b8965697bba2837e9653eaea428214efe5545f1a41781af4000000000000000100000000000000010000000000000020a11b098ffdb0fd764d32c6c94f850ae43c76bdac4f696dfb63d217ca7ca3565b000000000000000100000000000000000000000000000020d93b16ca33c69462349cdf25972305037f4521a14049e5a3a75b32e9bee8ab86000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f00000000000000170000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e0000000000000006000000000000000100000000000000000000000000000020aa7f59eec92558617b3eedd98a1f0c3c0e5557078bc4cf26ffa0b525495cf57d000000000000000100000000000000000000000000000020ba868704c113d607b0f29432afc6c0a3b96bbd5e37e09fc3e9551e024d2e294a0000000000000001000000000000000000000000000000203d240926443a3df74455eaa63032b4a1917a7ba86b68c8b52488cb5c14e7152c00000000000000010000000000000001000000000000002067c75ae00e580df332b6c9eb358990101505a1fcfad9143ca32a4fa708c2dd6a0000000000000001000000000000000000000000000000209eb7ba4269788b7b97d4252aa2205ef7ba6c9ab3e416ab745d4640aff201076a000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000001700000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce00000000000000060000000000000001000000000000000000000000000000204410f5d9249c107f35825cec6de0fff5d3e59e38d0c300b08927a78dff598e27000000000000000100000000000000000000000000000020929ae53c8c74f4b9989951280c1e0f853226f925fc21b6c7169bd80647f361b8000000000000000100000000000000000000000000000020fdad0b48ef4cbe9ae1572e41e999fc911b15aa624f42f18504d156ebfdb1852c0000000000000001000000000000000100000000000000209a71d9e1dce988e719e83d71d00c9525487a282b50022cc6154fc960fd2355f00000000000000001000000000000000000000000000000204e59b970588c516635072f9eb5ffd6017c806bd61413f1d8d7108febcebe4793000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f00000000000000040000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020ad29f157986a63e236232935b94d48a682c4e8c6359a4acfb61d5ce97d6618e900000000000000010000000000000001000000000000002051eb7c5f8572912a00b4d921a0269e737f961978a81975a7117df74f933d6478000000000000000100000000000000000000000000000020e2c28e037d30a9b1cafa16794e336898558e512395cfcbdeb25f5f9c08dba0820000000000000001000000000000000100000000000000209dc48d41a2d4c25b90ae286b21502aabe4177429574808eac78aed0ba9b970ba00000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000040000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a300000000000000060000000000000001000000000000000100000000000000204d8cbedc0ba430818025f4a7a34b0e80b405c7396a376791ffeda9c7f12e218b0000000000000001000000000000000100000000000000205002af866aa997e8c793ae0820b0401e66879fbfb375385e2924581f675a7ce600000000000000010000000000000000000000000000002037e321427dc8a93667d9e53d72f976e66ef694ed439402c8b04bd59a2a16a558000000000000000100000000000000010000000000000020f8bc11deec21302e1f51f9e237aedb8aa5251d7676c7f5048dedcd657f7133fc000000000000000100000000000000010000000000000020f674d9bdc01a18975efa6d78c277539fb49e84aa12b432ce63398cf89654de330000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e00000000000000040000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000010000000000000020341937366db2c11b6453e4d6e11e6657736857c2188f6cefbfa2f1d96933a8c8000000000000000100000000000000010000000000000020178c19aada458d055f305c25678fbc848772b18a45b56515c1c896a26ad32d620000000000000001000000000000000000000000000000200fe8624bf18d0bf250ca0d738d3ae9b69eae414c22fee76dbcd19d27aafb18320000000000000001000000000000000100000000000000201e5d518201338ae65645a43790fcc881148a862ced5662dd2f3d4fa272096c30000000000000000100000000000000010000000000000020e40cceacfe78cff9600b2e46e186ce0d04d352b2cebea854211cefeeb27f1594000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f00000000000000040000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000100000000000000200fdb6d18775f7560197e221d6d35b90ce6a7530ad741bb804a0ae8bc7d636138000000000000000100000000000000010000000000000020473804d1f8c0cc25b880ac1b2910777bc6000c1ec4d4c384881b627d77c727810000000000000001000000000000000000000000000000201b90e90c86f1056ea0a09f49027a3005a07ddfc1081f399df53cdfd1cbd242800000000000000001000000000000000100000000000000201e0e5ee3509d87c942d6eecc539d80cd51775918b908b745d7ab410f52b8a562000000000000000100000000000000010000000000000020a1510c0b06e39f12e300709d413f8d80016cf37775e3d9332cf787ff7cb437e5000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000000400000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000010000000000000020220fb311907c9d85439d1eec5e9ffbfba87c4012c353bd8715c2ea1879cb1b390000000000000001000000000000000100000000000000207836d324a1cd8d31deb3c84cb8df9edc7537a827b7648c7af740d7259cfd7fd60000000000000001000000000000000000000000000000205d6f40bbd0dcdbf87dd934c270f43c6d6bc47105677bd050547cd995af6f48f3000000000000000100000000000000010000000000000020be6d505b52ce59b71864d77730ffeb8628fe75575331c760db510ad311a24443000000000000000100000000000000010000000000000020869859afc4e5681a25a5915521c2a426157dff8e26309759aca12cb8232c3452000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f00000000000000160000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000001000000000000002042cb2165201ab8ea41affe9fbc23ef70f009dba666b45581fe56a336d6b425f7000000000000000100000000000000000000000000000020864e47462260929d60876a0babd915b08229a85eed60fe22ac85ec61ee1e866e000000000000000100000000000000000000000000000020080b28b1dece6dde43a662bb2943cbbcfb4977254ddfb567d20ec3694d07decc000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000160000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a3000000000000000600000000000000010000000000000001000000000000002052f41021c9dba410ed61e16039b2f4f6efc1686ef6c3d8744277fe138c529a100000000000000001000000000000000000000000000000200e7d351888311da505d48edf530347f157d2abfcab987c09de8b0beef61251bf0000000000000001000000000000000000000000000000207990f75efecb15381ee2ea49b218b85f7e3d2cd5a557af793a918c688444cb36000000000000000100000000000000010000000000000020fd279d1406b4d83c0a17f7b257f972ea35ed0ca71fef42b15831ef20a873d2060000000000000001000000000000000000000000000000201a981d9e84479953754937a102c43e70395029db74bfc2fab12b49c5843d9e430000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e00000000000000160000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a8800000000000000060000000000000001000000000000000100000000000000202942101d2d49ad78c463c4a3ea136209fdb94f19c8339f98255c65f1c4666001000000000000000100000000000000000000000000000020d4552976af65c083f953d52f4a52bbc52fc0ce914e2a0410d0b8cb54949d05b00000000000000001000000000000000000000000000000206535303184ae9576b8965697bba2837e9653eaea428214efe5545f1a41781af4000000000000000100000000000000010000000000000020a11b098ffdb0fd764d32c6c94f850ae43c76bdac4f696dfb63d217ca7ca3565b000000000000000100000000000000000000000000000020d93b16ca33c69462349cdf25972305037f4521a14049e5a3a75b32e9bee8ab86000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f00000000000000160000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e0000000000000006000000000000000100000000000000010000000000000020655f15dbb4de358ef6b5c1a8a9ff7a3446a303cb8b1417331bf0cec80085096e000000000000000100000000000000000000000000000020ba868704c113d607b0f29432afc6c0a3b96bbd5e37e09fc3e9551e024d2e294a0000000000000001000000000000000000000000000000203d240926443a3df74455eaa63032b4a1917a7ba86b68c8b52488cb5c14e7152c00000000000000010000000000000001000000000000002067c75ae00e580df332b6c9eb358990101505a1fcfad9143ca32a4fa708c2dd6a0000000000000001000000000000000000000000000000209eb7ba4269788b7b97d4252aa2205ef7ba6c9ab3e416ab745d4640aff201076a000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000001600000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000010000000000000020f6586d97c2bca29bd5b3acf6692373125501f32705bfc55f12d323c002328f60000000000000000100000000000000000000000000000020929ae53c8c74f4b9989951280c1e0f853226f925fc21b6c7169bd80647f361b8000000000000000100000000000000000000000000000020fdad0b48ef4cbe9ae1572e41e999fc911b15aa624f42f18504d156ebfdb1852c0000000000000001000000000000000100000000000000209a71d9e1dce988e719e83d71d00c9525487a282b50022cc6154fc960fd2355f00000000000000001000000000000000000000000000000204e59b970588c516635072f9eb5ffd6017c806bd61413f1d8d7108febcebe4793000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f00000000000000380000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020d5d9e84739c0813f71d0359e99b9765469d7a41ef279c691c2254c026b06582900000000000000010000000000000001000000000000002092254bddc93af51db85c84258645a7368b11c67713d9b7edb7798f818a67b7d100000000000000010000000000000001000000000000002013cba62cb82888bb083b50937d466b49f9391c00299bd77abb46de4352465093000000000000000100000000000000000000000000000020a3c68cdf76781d19db7aa603f4cd91ea38edfc0b5126585e0c4cc27eb1121e50000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000380000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a300000000000000060000000000000001000000000000000100000000000000209799d522f91cea6449054c0d6b58a6c37ffd0692a60e5d460d535143695d2f23000000000000000100000000000000010000000000000020635807ed33baab6f198f635e7bde04f28bdf05155f98b23d273079a5ed07af51000000000000000100000000000000010000000000000020294a02d54abb3df02e3246385cc62ff7ce7229b010690ce8690c31f967c45b48000000000000000100000000000000000000000000000020c8d8760ce542c5a702bcabcb4fef6e52d4233083d54c3cc37568102e3f21b0ec0000000000000001000000000000000000000000000000204784f6834025b9259cfebec8cffeb00373b1af30dde25a8e3b68097f0573e1f4000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf355400000000000000380000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000010000000000000020f3d60bc9f4c6d9a39587df8dcfbc280d25b17d807b2b85194e25b3cbf9a81def000000000000000100000000000000010000000000000020d650faeed357d70ab1be131df066d705ed2f678c29cd43c2fca665cb823c2609000000000000000100000000000000010000000000000020a699562990c3412fc55d466a3e6d9bcf5a7122ba4c59059e9715120d545c05d400000000000000010000000000000000000000000000002021d1315b8b30976711b2a1eb7d34dc8b98eb6fcd1048d35af300a0e1afc757f600000000000000010000000000000000000000000000002081164d64a302850b69a6f61885a59bcff6f1ab23c424b6d2a9d63914f94a1e420000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb00000000000000380000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e000000000000000600000000000000010000000000000001000000000000002026a8566d3a02bec6d352e8605bf6b96adafbb7d5f9067c735685b73b5a636b8a000000000000000100000000000000010000000000000020b3f12f78257ad5ac17c62e93d0e044fd1ee7eb9f634f5e185fd055875e73e1c2000000000000000100000000000000010000000000000020ff7f832f632893365f82d73c7d532c6bd3b7716ef7d7e7934d9ed9ee15104724000000000000000100000000000000000000000000000020362c41d2cff677621fedd9b9572a01b4275f6960c9701d92b3b8f403c3843124000000000000000100000000000000000000000000000020cff6591dfe8cb9d421049bf180fabeb267dc54e2b75083b1c94c48eeb9a2fbe9000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000003800000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce00000000000000060000000000000001000000000000000100000000000000200c4f64765121dcd1fb313c3839ca313622fa406d4b12a5455cd0dccbddac0870000000000000000100000000000000010000000000000020c08a3491343dcfc471495cc386a7f3c5ed9f533ed64ef21fe446eb48ffc9d0bc0000000000000001000000000000000100000000000000205bbf6df18c13b21ec0b39c6471ce58786a1bbd3b55eb1c1bcf04b80eb8446ddb000000000000000100000000000000000000000000000020f7c60fc0242ab4dfbc4e7ed03bd9eaacbe7d3b976a9239dc44a6f083d47d210d0000000000000001000000000000000000000000000000208af78be0e621a70f818b523c1d4675b967f8ca602f0292dfbd3b6cb3b77c3830000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a00000000000000320000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000100000000000000204551b7e47f6ca2d50d8dcfc72d7f82c5bf816540ff8972425307a26bbfcc903800000000000000010000000000000000000000000000002020357880fc8e6dd74df46742da252f118fdb87961923030914ba2e8adf16cb52000000000000000100000000000000010000000000000020d668a432d047c9e275f7c7d20e0a761a44ce7e63d76a8974123279ebd303ad5300000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000320000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000010000000000000020c8c7a78a6f51883dc3da2c94c9e4f3b56c8085e560d2fbe0f6610a2f6faf04fd000000000000000100000000000000000000000000000020f1317bfb982fb0c9bc2679aa653b3c5bf4e8fed7ab02435967a00c65b4407787000000000000000100000000000000010000000000000020896a9feb27176097287962314c1d6a9ab80a44327e072493d27b9a4b8e2303b0000000000000000100000000000000010000000000000020683add9032495c3da8b6bd81434dde36b862a0aa24bfc4921623d38f6d42ce9e0000000000000001000000000000000000000000000000204784f6834025b9259cfebec8cffeb00373b1af30dde25a8e3b68097f0573e1f4000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf355400000000000000320000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000010000000000000020a8b0f4939f1954963e25b120239cd99dfed52b5c6af3cbd915b3d1beabb13daf0000000000000001000000000000000000000000000000201b0f060eabc242fefd82c2636d58a4214fceb77d5abe8bd6cc40a752b911a490000000000000000100000000000000010000000000000020962eb8f3bc8178022d18678330a12f6cf8cf744e7f7485fab75396ae04fd960e0000000000000001000000000000000100000000000000205efe682d733ff9220f6e865648ba8a56c69380880c1b4f659a8bf126240ceeb500000000000000010000000000000000000000000000002081164d64a302850b69a6f61885a59bcff6f1ab23c424b6d2a9d63914f94a1e420000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb00000000000000320000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000100000000000000206529023e928dd0b78b11d7d0e8559ed713e42bf553e69f4325eb7989f0432512000000000000000100000000000000000000000000000020b6196925b467298067e6d585a6d2f53a1eaa4185e4d739d6e1a1f820d9d77ea70000000000000001000000000000000100000000000000202ed3c2ae4ed52c7b0ab3c93636ba4028040eb2b1c82fd72cff7c660f51decd7a00000000000000010000000000000001000000000000002074d0092f6c300f43760e0459a111c8fd56d2fe92366d550b7a221827dc9ed2dc000000000000000100000000000000000000000000000020cff6591dfe8cb9d421049bf180fabeb267dc54e2b75083b1c94c48eeb9a2fbe9000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000003200000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000010000000000000020a6e547555b040b46536cc6668aca9d615424f59f7bc3ea1e4ba10bd308d6a1c2000000000000000100000000000000000000000000000020eec1438672d20fdc1bd7769a784bc640049727a10deebb878cd61b177be9bba3000000000000000100000000000000010000000000000020ff8df1196c7b3e0066145e192be0b21aa8cfb416c709da99c945ed85ddf8a80a000000000000000100000000000000010000000000000020b2b1f9a9da970f658f42768224e216c42e11acbca318b0a65a9fd00cb5e0c9980000000000000001000000000000000000000000000000208af78be0e621a70f818b523c1d4675b967f8ca602f0292dfbd3b6cb3b77c3830000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a00000000000000340000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020353923cb446bd5d538f5a935fecea5ee5c5ac14750aa609ff64d5b43ce7bfb2500000000000000010000000000000001000000000000002019594bf3fa8c4ace4d35341a4d29a3224bf349b4111630660fbc89ec6aac104c000000000000000100000000000000000000000000000020f4d1e64380a2c05ab0dc64ea31b5e288a4325921fa907811ded50419cc51d1ad00000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000340000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000010000000000000020affeddca3df2b272b2e647192e95bd7c2dbdf6f0c23bb033bf2e0a041566674c0000000000000001000000000000000100000000000000205851ef1a3e9089d762aaaa41527ce6ccaa1cc487cfbdc69b6ae91ce884951efe000000000000000100000000000000000000000000000020a3b4187c6753dc9ef8e78915ad0d5a86516efe76949a7e97bde2b7c7f7ced146000000000000000100000000000000010000000000000020683add9032495c3da8b6bd81434dde36b862a0aa24bfc4921623d38f6d42ce9e0000000000000001000000000000000000000000000000204784f6834025b9259cfebec8cffeb00373b1af30dde25a8e3b68097f0573e1f4000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf355400000000000000340000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a8800000000000000060000000000000001000000000000000100000000000000205d2689c695f37f994edfaf0f9717d8cc92ccb2de3b3be54f0fea298e54877283000000000000000100000000000000010000000000000020f067a02c6cb6b079175645ae3fe835d9670717008ec0922321733d6d62f37ad7000000000000000100000000000000000000000000000020cc57c137940830e48f40c451bdc74b12071485f1ad6ffba3e2ab01a9c482cb080000000000000001000000000000000100000000000000205efe682d733ff9220f6e865648ba8a56c69380880c1b4f659a8bf126240ceeb500000000000000010000000000000000000000000000002081164d64a302850b69a6f61885a59bcff6f1ab23c424b6d2a9d63914f94a1e420000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb00000000000000340000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000100000000000000202d3e62b11329a7daaf87113878bcf94884194ba2781e8eb9ea48cbb2292d3d0e00000000000000010000000000000001000000000000002016289abae28ceaed5d88261580fcedae2b4385b1f99d14694ef2f72ae723f22700000000000000010000000000000000000000000000002058034b10ba7cfc2c36a16ab5d61a39a246370d0f4b9ad70756884cc55b6f8d0900000000000000010000000000000001000000000000002074d0092f6c300f43760e0459a111c8fd56d2fe92366d550b7a221827dc9ed2dc000000000000000100000000000000000000000000000020cff6591dfe8cb9d421049bf180fabeb267dc54e2b75083b1c94c48eeb9a2fbe9000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000003400000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000010000000000000020568472c562294390ba5f881e5e609b00bae144bc88764887bb0225dc4b7bbe7e00000000000000010000000000000001000000000000002020ee8a221207fcc24216af3bebc8f30d1c896b52af2c6c9df0595bcebc2a66ef00000000000000010000000000000000000000000000002060eff9ce86435865bbc177c269e76fb0f849d4a5a9c70083537cf0ad9059f438000000000000000100000000000000010000000000000020b2b1f9a9da970f658f42768224e216c42e11acbca318b0a65a9fd00cb5e0c9980000000000000001000000000000000000000000000000208af78be0e621a70f818b523c1d4675b967f8ca602f0292dfbd3b6cb3b77c3830000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a00000000000000130000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000000000000000000002090b33c873032a5ec45b5f67351f43f1b225ffd1fb110a4b7260789aee51a15d00000000000000001000000000000000000000000000000200314646f9ee1f2da5ba523b66c95aea6a8139895748d499e7ea045d702e5076c000000000000000100000000000000010000000000000020931fc0f60710e5550ab975b9da43260c532daa1aa0981b844a267625739ffb1b000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000130000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a300000000000000060000000000000001000000000000000000000000000000208fefbdf6bbdd5508379a951a4f6822dbd2752df889c9df7867fdf8b02506f53300000000000000010000000000000000000000000000002092e68ec7e5cc159082ac481d721bf0a0829e4101d1807dc64816786699f1cb0d000000000000000100000000000000010000000000000020adf3ffd60907628b5c70ec26cde5cd9f556ee72ae07b0f7cd7f4c79241a547fa000000000000000100000000000000010000000000000020fd279d1406b4d83c0a17f7b257f972ea35ed0ca71fef42b15831ef20a873d2060000000000000001000000000000000000000000000000201a981d9e84479953754937a102c43e70395029db74bfc2fab12b49c5843d9e430000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e00000000000000130000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a88000000000000000600000000000000010000000000000000000000000000002020f05b049cbf065398b2472c8abd2a21941ee3facd9af31ad311239470ed997c00000000000000010000000000000000000000000000002079101df1ccb9d74ba98c04ced8841498a9aff0603275bc75d7aed57c7c674cc90000000000000001000000000000000100000000000000201470f67d775bab56b2e085069a4ce68f9ba61671c5539e78d0ec46b09b7d187b000000000000000100000000000000010000000000000020a11b098ffdb0fd764d32c6c94f850ae43c76bdac4f696dfb63d217ca7ca3565b000000000000000100000000000000000000000000000020d93b16ca33c69462349cdf25972305037f4521a14049e5a3a75b32e9bee8ab86000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f00000000000000130000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e0000000000000006000000000000000100000000000000000000000000000020fd734886c7fe675fef5a13d63286dea396a2454ba5bc78e29cb95ad3f426cf1d00000000000000010000000000000000000000000000002099a1d687dcd83e924e557e9cdd9862f2914353a09ec8c420e10979d8267f5ea600000000000000010000000000000001000000000000002084e8363bb4ee641b5c08788fa89837d07d24e51e2008962c2cad0fe06853468400000000000000010000000000000001000000000000002067c75ae00e580df332b6c9eb358990101505a1fcfad9143ca32a4fa708c2dd6a0000000000000001000000000000000000000000000000209eb7ba4269788b7b97d4252aa2205ef7ba6c9ab3e416ab745d4640aff201076a000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000001300000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce000000000000000600000000000000010000000000000000000000000000002043b5b2f21fcf90bbd446ac9fa68bd0a54dd191687852806bc3026356a2348a8c0000000000000001000000000000000000000000000000201c16c0332a22c65ac40e14f079ec5b62bb6a9f77ec50114b829dd34d33ad4997000000000000000100000000000000010000000000000020b36bd36a5f34c20ca416ac2e412e7d9f186d653afb0d5da1f9b39a8dd833f3280000000000000001000000000000000100000000000000209a71d9e1dce988e719e83d71d00c9525487a282b50022cc6154fc960fd2355f00000000000000001000000000000000000000000000000204e59b970588c516635072f9eb5ffd6017c806bd61413f1d8d7108febcebe4793000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f00000000000000360000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020c3a4db706c3c3b07e0984d10824acb5797a59a8b4d40d709cfa0452e6ee0f23400000000000000010000000000000000000000000000002015ad821dcbca21c0f24f28f58131f9ab7767c0d6fbf621d34a2c84ab7b24c75e000000000000000100000000000000000000000000000020f4d1e64380a2c05ab0dc64ea31b5e288a4325921fa907811ded50419cc51d1ad00000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000360000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000010000000000000020f633ed75184d4a7e757e8c2a25212067732a2af11f6ba2ddc33ed719ebaf044e000000000000000100000000000000000000000000000020f1e2b6347ac2739a9b466267fbd2550305432721d16af954e722390ced51f508000000000000000100000000000000000000000000000020a3b4187c6753dc9ef8e78915ad0d5a86516efe76949a7e97bde2b7c7f7ced146000000000000000100000000000000010000000000000020683add9032495c3da8b6bd81434dde36b862a0aa24bfc4921623d38f6d42ce9e0000000000000001000000000000000000000000000000204784f6834025b9259cfebec8cffeb00373b1af30dde25a8e3b68097f0573e1f4000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf355400000000000000360000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000010000000000000020f406c28d6ab2004ecc82788f7e58b86e0f4e803c0038d67c292fdc0c28d5c5ef000000000000000100000000000000000000000000000020ed27bfab2e7f35c0e874f1cea2ac0d0e57387c04f2dcec17c69645f45c45dc61000000000000000100000000000000000000000000000020cc57c137940830e48f40c451bdc74b12071485f1ad6ffba3e2ab01a9c482cb080000000000000001000000000000000100000000000000205efe682d733ff9220f6e865648ba8a56c69380880c1b4f659a8bf126240ceeb500000000000000010000000000000000000000000000002081164d64a302850b69a6f61885a59bcff6f1ab23c424b6d2a9d63914f94a1e420000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb00000000000000360000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000100000000000000208fb7545027f7d19fcd4da696a6bf239fc744defe5b382690b579a98b1dad5be100000000000000010000000000000000000000000000002071d15c01a1238d45abb8e3144cfa8f392b83afd290d498bf6719cd6131e12f2b00000000000000010000000000000000000000000000002058034b10ba7cfc2c36a16ab5d61a39a246370d0f4b9ad70756884cc55b6f8d0900000000000000010000000000000001000000000000002074d0092f6c300f43760e0459a111c8fd56d2fe92366d550b7a221827dc9ed2dc000000000000000100000000000000000000000000000020cff6591dfe8cb9d421049bf180fabeb267dc54e2b75083b1c94c48eeb9a2fbe9000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000003600000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000010000000000000020fba6d08c6ba7f143746d8ae4460a07bfce7ab4306b15d53e3d4b6892ec8c1c68000000000000000100000000000000000000000000000020a83ed7937cc008c4f5c47eab905b2c4437bdd9fb5bf17fbfc689d4d4a802e0b900000000000000010000000000000000000000000000002060eff9ce86435865bbc177c269e76fb0f849d4a5a9c70083537cf0ad9059f438000000000000000100000000000000010000000000000020b2b1f9a9da970f658f42768224e216c42e11acbca318b0a65a9fd00cb5e0c9980000000000000001000000000000000000000000000000208af78be0e621a70f818b523c1d4675b967f8ca602f0292dfbd3b6cb3b77c3830000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a000000000000000c0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020c85af4484a55018f037779039e4af40967235a50df4e34940d889e279e7db7d800000000000000010000000000000001000000000000002057d79dbf8ed8b8aa3585c69adf87ef75ce64bdf75ac79a37fcbc979ba37b0a3e000000000000000100000000000000000000000000000020e4531c0cf3964a849077d3f66aca1c780770dbd36f02f9e591cac1251871b88a0000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000000c0000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a3000000000000000600000000000000010000000000000001000000000000002032179107c4274f4ec0d6cbe96888a0b1a5ab53209313f02026a4aef4d63193f4000000000000000100000000000000010000000000000020920dd15da9fce8803a46e117f3bde4385758fa2c44ba27dbc3937f8baf01861c000000000000000100000000000000000000000000000020eca4f5bb23e627e638206c61a58db0cd43d08147488056042781720921e9368d0000000000000001000000000000000000000000000000207f33eb1404cd0d875f2a95096d3541a8c1bb93415e8452ab893bd3cc530fea91000000000000000100000000000000010000000000000020f674d9bdc01a18975efa6d78c277539fb49e84aa12b432ce63398cf89654de330000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e000000000000000c0000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000010000000000000020cebc9d6286447d78ddfc4d06c49cad9ee7723c40cce7b6e889a8c75678258958000000000000000100000000000000010000000000000020051696269ac35a890ff7e9e4bbb7d8699dd1f163f8b92e31bd7f9bb9a3d3711d0000000000000001000000000000000000000000000000208f58a05abc7469791260ad32f6254652370e83827c5f4899db30373c5fb349d7000000000000000100000000000000000000000000000020556b729f832f5d5ffb8c80a2e7f2028be68aa00b113f1182ccd5b7dd03cf096b000000000000000100000000000000010000000000000020e40cceacfe78cff9600b2e46e186ce0d04d352b2cebea854211cefeeb27f1594000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f000000000000000c0000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e000000000000000600000000000000010000000000000001000000000000002053101ebab11456a84accc264e99f6549d47419328dd9accd1a4336999b8d67c4000000000000000100000000000000010000000000000020ad6eb4d9af43f66533a5dd28066af159e6b7b570e5aa940df86b2188b353fe2d000000000000000100000000000000000000000000000020d0607adac9be75983ca414c106315aeb1e834536c7c95a91f7097ab7a15cc628000000000000000100000000000000000000000000000020e7b0a01e52a73870d50a26535d8010fbace9e15d9f75bc0eba0ae2c00cbc16bb000000000000000100000000000000010000000000000020a1510c0b06e39f12e300709d413f8d80016cf37775e3d9332cf787ff7cb437e5000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000000c00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce00000000000000060000000000000001000000000000000100000000000000207baf1b28e4429150a7d90808e1060920ee9970bd3dcf0f0c3024670c864c5e480000000000000001000000000000000100000000000000208750516438595b9df11acf617be3bd72dd21c1520fb6bcd4661e9e216369528100000000000000010000000000000000000000000000002047c75ff74c1b8e081c36a6caeccb645ba7fa9feeee2d24f32be3641c6d42ac55000000000000000100000000000000000000000000000020142099038968e9066c8b40ca01903ceeb912fb3a306618ef9c7c457deb8c2893000000000000000100000000000000010000000000000020869859afc4e5681a25a5915521c2a426157dff8e26309759aca12cb8232c3452000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f000000000000001b0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020c26d26b74acdd23d9b0155fbf8a8563a59c86a826119cd98d5e72857ecef75c00000000000000001000000000000000000000000000000208cdaf05b84ace4e1b630d731222e016e66fbb851f5088ed3b8479b35f2e863df000000000000000100000000000000010000000000000020087a599f409cb7bacc0662f1cbc4762c6f1a1276b1ec901eff46c07ae65a8c6900000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001b0000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000000000000000000020be2ce71510689cec8c1bfbd417ef2733a1ccea07200e6785e4bff8e91c15f2e80000000000000001000000000000000000000000000000208140f72e890683cb0c86fb877ded36f4581aa354be3f8c83c99cdf487616e223000000000000000100000000000000010000000000000020d5f571e96d09d56c95ef3b63617cb7cee704c9452fc2678d7d203894421831080000000000000001000000000000000000000000000000201a65e1cc35663dd11d7c5292a59632955075838a0e28f828ed0f1b9b6ab71d9a0000000000000001000000000000000000000000000000201a981d9e84479953754937a102c43e70395029db74bfc2fab12b49c5843d9e430000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e000000000000001b0000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a88000000000000000600000000000000010000000000000000000000000000002042187ca44d24d43efd1dd619f90aef9a61178f853e0f6d77b5e0ab4744814e2a0000000000000001000000000000000000000000000000205d0f50bf7175a98da247397af17cc975263baf8610471446956ab2cc098fb962000000000000000100000000000000010000000000000020fc3ecba6f88a03bd0fd0081ef31474e57c5e048a180b0f85a74f120f987b913e000000000000000100000000000000000000000000000020985c653902cfbc26788a0a66a2ca25303ad6ea2c2dce45d07ccb47361456c58a000000000000000100000000000000000000000000000020d93b16ca33c69462349cdf25972305037f4521a14049e5a3a75b32e9bee8ab86000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f000000000000001b0000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000000000000000000205c97271f82b2d21afc4a4df7bb146c200a5e0ea96bca962c92854d5335ffe6e300000000000000010000000000000000000000000000002053850efa1e113a85767b04b049dcd9b2edfb79f7593c8cf90eb4201d4d120f1e0000000000000001000000000000000100000000000000204cc2265dd408d41a199f389594a4d4a755b0b092e6d7724a02ea1a784d18ed7b000000000000000100000000000000000000000000000020b9f8380e2fe3e057f633ea7d58642469bf1143bc7afd2f6ab6cdfafe1a969e7e0000000000000001000000000000000000000000000000209eb7ba4269788b7b97d4252aa2205ef7ba6c9ab3e416ab745d4640aff201076a000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000001b00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000000000000000000020f7975317e94d2c310349fe97d7e016b158908ee2c379940c28507f5badf18e810000000000000001000000000000000000000000000000205661635468d204fececbb4edd8c70496c972c64f65793287d79c677f971f92d90000000000000001000000000000000100000000000000204d013d6b7368c0727be310b46a9ccff9f35de639469cd026aca3e818f732ab2b0000000000000001000000000000000000000000000000209ffe2f8254f8dfda50ac81447c6e6970a53d6f72fc2e89d44cf63d609b971c480000000000000001000000000000000000000000000000204e59b970588c516635072f9eb5ffd6017c806bd61413f1d8d7108febcebe4793000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f00000000000000220000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000001000000000000002090f64acbc54d1d7de04bcf60062085279e19def76c0e94668cecf8b2cff15dc9000000000000000100000000000000000000000000000020c1d918bfc6a90fe225a1ed5b38fd5f39628d83f18dd4387d4b4ab6a9b10e1767000000000000000100000000000000010000000000000020cd2cd9ad2c779aa3995be1014c80f94a5247dc5109218180e006fbbe588ce2d800000000000000010000000000000001000000000000002020ca2ebe06b78b863c42ebd67e820162645990710fb2212c31964405270d49be00000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000220000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a3000000000000000600000000000000010000000000000001000000000000002023911cd36cc324d6dd3f3600002485510e9459d75c2db59d3f6f8097b5992f1c000000000000000100000000000000000000000000000020b28153801013196bd96b679ce004e87328412d2c1b68fbb397623153ba92b00c000000000000000100000000000000010000000000000020ede4e4a41f57152c1b750b24e01ae1649edd1315aacb244e657b56b14ef5784500000000000000010000000000000001000000000000002084f6816c02225d43d59199a238dfb4de2537f60a1e92977e098360d4e3fe72aa0000000000000001000000000000000100000000000000206075e3c137d83b1533f8eb7c9350d8bc540f7c17d14f427c4b1f1569724c9c9f000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf355400000000000000220000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000010000000000000020f164d054a710ef5c86c64bbb57349a810a7cf053932a961c69f55344408c0a130000000000000001000000000000000000000000000000200433e592e28a119e5b8bcf88433f9638c9d7655d1b38a2df3dd6584985eb6fee0000000000000001000000000000000100000000000000200a5ed1534b408d22e4f598a473d5b7875766c8c8687fb39a562eb89d14ac0b4f0000000000000001000000000000000100000000000000203f6b840cb4e34f4994155017551b931865ea5dd10d97abe75bdaafa1666c7a760000000000000001000000000000000100000000000000209898665151c8643d367f337a0c2eeb715a6080b039ae6b00481ab48b488fc8c90000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb00000000000000220000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e0000000000000006000000000000000100000000000000010000000000000020af1a900edbe568b7c2d6035cfae44fd9b755bc41323506ad656231f9874e9659000000000000000100000000000000000000000000000020a4f3cdabba2f622c0f912079bd0988ab23bf4e9d6373da9e47b525620fb4808600000000000000010000000000000001000000000000002029a8f62e5422d6a87bc74324fdb5ac7332c76491a347800bfeea38626c4a65d7000000000000000100000000000000010000000000000020022b96b4353242652890aa9b4993fda2fafc708e471032a9d08ff3e693f7a2a2000000000000000100000000000000010000000000000020ab56a12205d0c8e0e402ade0769ddecf9b594f3d7db8254cb25540877c795f65000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000002200000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce000000000000000600000000000000010000000000000001000000000000002065eb854307daaf6b02c37ca1ba297bd5232c3915a707fe7bd81128ff77abc5b40000000000000001000000000000000000000000000000203f200d4b792fdd32bd627938a54f099f1362695255c57f92521a15271fa525170000000000000001000000000000000100000000000000209d0dc70f3a29ca2f1879d82cf2d5fec098f7f63d5a7d29e5de4662d37138c939000000000000000100000000000000010000000000000020fa894684c31f8ecca74861c3e4a7964b8259cd8308005ad94691eed570d75a0f0000000000000001000000000000000100000000000000206ee562063ccf55f6adc30345f7d34f6c30fba9f1634f24a99a4c5c6e7e6de3b5000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a00000000000000070000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020c999afc4670b92c57b5bdc1307bc519e96e3f6ce67a073eed8ce5ef11f19e6e90000000000000001000000000000000000000000000000209f204347ecc49a4dd4d3f69e4b19d6830b85a828d152c59461d5362f5cb21db2000000000000000100000000000000000000000000000020e2c28e037d30a9b1cafa16794e336898558e512395cfcbdeb25f5f9c08dba0820000000000000001000000000000000100000000000000209dc48d41a2d4c25b90ae286b21502aabe4177429574808eac78aed0ba9b970ba00000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000070000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a300000000000000060000000000000001000000000000000000000000000000204e745a7f779270e6894ba71f5e3a5a56211b2d293c0f40a26e2f007925260f11000000000000000100000000000000000000000000000020949e8e9614f6615c8c2617c2f7d140face217b1d5bfe579ca5d9109158f2fa3500000000000000010000000000000000000000000000002037e321427dc8a93667d9e53d72f976e66ef694ed439402c8b04bd59a2a16a558000000000000000100000000000000010000000000000020f8bc11deec21302e1f51f9e237aedb8aa5251d7676c7f5048dedcd657f7133fc000000000000000100000000000000010000000000000020f674d9bdc01a18975efa6d78c277539fb49e84aa12b432ce63398cf89654de330000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e00000000000000070000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a8800000000000000060000000000000001000000000000000000000000000000205e03f553959bb05256244e73e9730deff8927eeb63f0e64792167d2c259308870000000000000001000000000000000000000000000000208a4d1972a6bd65d5d8f6e1393c9f68e739c53ec5523929eb403b0aa0b2b19c260000000000000001000000000000000000000000000000200fe8624bf18d0bf250ca0d738d3ae9b69eae414c22fee76dbcd19d27aafb18320000000000000001000000000000000100000000000000201e5d518201338ae65645a43790fcc881148a862ced5662dd2f3d4fa272096c30000000000000000100000000000000010000000000000020e40cceacfe78cff9600b2e46e186ce0d04d352b2cebea854211cefeeb27f1594000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f00000000000000070000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e000000000000000600000000000000010000000000000000000000000000002084b22fc994b1bee9ee8d99bae4b1284e3e7eef003cd4225fc0a27e7f7345698300000000000000010000000000000000000000000000002039017d704a888f94a2cca8b000038adfbb055630466203aaf554bcd4191908840000000000000001000000000000000000000000000000201b90e90c86f1056ea0a09f49027a3005a07ddfc1081f399df53cdfd1cbd242800000000000000001000000000000000100000000000000201e0e5ee3509d87c942d6eecc539d80cd51775918b908b745d7ab410f52b8a562000000000000000100000000000000010000000000000020a1510c0b06e39f12e300709d413f8d80016cf37775e3d9332cf787ff7cb437e5000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000000700000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce00000000000000060000000000000001000000000000000000000000000000205db0b9adb3c47a913f223a349c08b04cc257439c5abea7244e0d6d916ced9ed4000000000000000100000000000000000000000000000020cb3552556af6556ca3960bd871b9ebef1eb6e11926d52e72f98049db1dbf82490000000000000001000000000000000000000000000000205d6f40bbd0dcdbf87dd934c270f43c6d6bc47105677bd050547cd995af6f48f3000000000000000100000000000000010000000000000020be6d505b52ce59b71864d77730ffeb8628fe75575331c760db510ad311a24443000000000000000100000000000000010000000000000020869859afc4e5681a25a5915521c2a426157dff8e26309759aca12cb8232c3452000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f000000000000001a0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020867f4e7838d3464819f68d32891adc5d0d944835deee9dfab0413a6187f910fc0000000000000001000000000000000000000000000000208cdaf05b84ace4e1b630d731222e016e66fbb851f5088ed3b8479b35f2e863df000000000000000100000000000000010000000000000020087a599f409cb7bacc0662f1cbc4762c6f1a1276b1ec901eff46c07ae65a8c6900000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001a0000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000010000000000000020e5ecb7820c1559658e07aa1dfdaecc4ff7c4d98cc1f131c33d23209c08d147830000000000000001000000000000000000000000000000208140f72e890683cb0c86fb877ded36f4581aa354be3f8c83c99cdf487616e223000000000000000100000000000000010000000000000020d5f571e96d09d56c95ef3b63617cb7cee704c9452fc2678d7d203894421831080000000000000001000000000000000000000000000000201a65e1cc35663dd11d7c5292a59632955075838a0e28f828ed0f1b9b6ab71d9a0000000000000001000000000000000000000000000000201a981d9e84479953754937a102c43e70395029db74bfc2fab12b49c5843d9e430000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e000000000000001a0000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a8800000000000000060000000000000001000000000000000100000000000000209e06882b623b6943341a694086619a2fd57ffb9268685d9270f1c231cf6509ab0000000000000001000000000000000000000000000000205d0f50bf7175a98da247397af17cc975263baf8610471446956ab2cc098fb962000000000000000100000000000000010000000000000020fc3ecba6f88a03bd0fd0081ef31474e57c5e048a180b0f85a74f120f987b913e000000000000000100000000000000000000000000000020985c653902cfbc26788a0a66a2ca25303ad6ea2c2dce45d07ccb47361456c58a000000000000000100000000000000000000000000000020d93b16ca33c69462349cdf25972305037f4521a14049e5a3a75b32e9bee8ab86000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f000000000000001a0000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e0000000000000006000000000000000100000000000000010000000000000020688d94c978c01533c571c99c0eadc6d6449ac9d21c6f1d6226a57898600d1f7e00000000000000010000000000000000000000000000002053850efa1e113a85767b04b049dcd9b2edfb79f7593c8cf90eb4201d4d120f1e0000000000000001000000000000000100000000000000204cc2265dd408d41a199f389594a4d4a755b0b092e6d7724a02ea1a784d18ed7b000000000000000100000000000000000000000000000020b9f8380e2fe3e057f633ea7d58642469bf1143bc7afd2f6ab6cdfafe1a969e7e0000000000000001000000000000000000000000000000209eb7ba4269788b7b97d4252aa2205ef7ba6c9ab3e416ab745d4640aff201076a000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000001a00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce00000000000000060000000000000001000000000000000100000000000000204e77550bd03ecae860c98e4d792432503504a4d7885bb20ee7add50e5a41486a0000000000000001000000000000000000000000000000205661635468d204fececbb4edd8c70496c972c64f65793287d79c677f971f92d90000000000000001000000000000000100000000000000204d013d6b7368c0727be310b46a9ccff9f35de639469cd026aca3e818f732ab2b0000000000000001000000000000000000000000000000209ffe2f8254f8dfda50ac81447c6e6970a53d6f72fc2e89d44cf63d609b971c480000000000000001000000000000000000000000000000204e59b970588c516635072f9eb5ffd6017c806bd61413f1d8d7108febcebe4793000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f00000000000000330000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020729f9a4842e47471ec9eb0fc15695f30feec4440cdeba085eca4d8ffa6fca96500000000000000010000000000000000000000000000002020357880fc8e6dd74df46742da252f118fdb87961923030914ba2e8adf16cb52000000000000000100000000000000010000000000000020d668a432d047c9e275f7c7d20e0a761a44ce7e63d76a8974123279ebd303ad5300000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000330000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000000000000000000020383f1d4f95171de62ba07c6291d291093906c3e2ec647216ab16b758d92cb56c000000000000000100000000000000000000000000000020f1317bfb982fb0c9bc2679aa653b3c5bf4e8fed7ab02435967a00c65b4407787000000000000000100000000000000010000000000000020896a9feb27176097287962314c1d6a9ab80a44327e072493d27b9a4b8e2303b0000000000000000100000000000000010000000000000020683add9032495c3da8b6bd81434dde36b862a0aa24bfc4921623d38f6d42ce9e0000000000000001000000000000000000000000000000204784f6834025b9259cfebec8cffeb00373b1af30dde25a8e3b68097f0573e1f4000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf355400000000000000330000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000000000000000000020223330c07050f7c309ebb135423dbdff813e4eb8e485f556b4d5b9d561f2225a0000000000000001000000000000000000000000000000201b0f060eabc242fefd82c2636d58a4214fceb77d5abe8bd6cc40a752b911a490000000000000000100000000000000010000000000000020962eb8f3bc8178022d18678330a12f6cf8cf744e7f7485fab75396ae04fd960e0000000000000001000000000000000100000000000000205efe682d733ff9220f6e865648ba8a56c69380880c1b4f659a8bf126240ceeb500000000000000010000000000000000000000000000002081164d64a302850b69a6f61885a59bcff6f1ab23c424b6d2a9d63914f94a1e420000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb00000000000000330000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000000000000000000204ff478e39d6d772e9c1aa2117a50c25700deffc58174bb52779c2bdde5ce722c000000000000000100000000000000000000000000000020b6196925b467298067e6d585a6d2f53a1eaa4185e4d739d6e1a1f820d9d77ea70000000000000001000000000000000100000000000000202ed3c2ae4ed52c7b0ab3c93636ba4028040eb2b1c82fd72cff7c660f51decd7a00000000000000010000000000000001000000000000002074d0092f6c300f43760e0459a111c8fd56d2fe92366d550b7a221827dc9ed2dc000000000000000100000000000000000000000000000020cff6591dfe8cb9d421049bf180fabeb267dc54e2b75083b1c94c48eeb9a2fbe9000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000003300000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce00000000000000060000000000000001000000000000000000000000000000207bdd63e3046b9bc16def1625c86497e3036645380ef6d957308782f92386b0bc000000000000000100000000000000000000000000000020eec1438672d20fdc1bd7769a784bc640049727a10deebb878cd61b177be9bba3000000000000000100000000000000010000000000000020ff8df1196c7b3e0066145e192be0b21aa8cfb416c709da99c945ed85ddf8a80a000000000000000100000000000000010000000000000020b2b1f9a9da970f658f42768224e216c42e11acbca318b0a65a9fd00cb5e0c9980000000000000001000000000000000000000000000000208af78be0e621a70f818b523c1d4675b967f8ca602f0292dfbd3b6cb3b77c3830000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a00000000000000370000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000204a103b4fc3a3b9a902c447394074f9393b9a8d0b2c9623792908b8ca3f90ba5f00000000000000010000000000000000000000000000002015ad821dcbca21c0f24f28f58131f9ab7767c0d6fbf621d34a2c84ab7b24c75e000000000000000100000000000000000000000000000020f4d1e64380a2c05ab0dc64ea31b5e288a4325921fa907811ded50419cc51d1ad00000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000370000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000000000000000000020409b33e23bccea2ebaa2a862cf0d4f810b1112bde7b18e21bc791aea126bc64d000000000000000100000000000000000000000000000020f1e2b6347ac2739a9b466267fbd2550305432721d16af954e722390ced51f508000000000000000100000000000000000000000000000020a3b4187c6753dc9ef8e78915ad0d5a86516efe76949a7e97bde2b7c7f7ced146000000000000000100000000000000010000000000000020683add9032495c3da8b6bd81434dde36b862a0aa24bfc4921623d38f6d42ce9e0000000000000001000000000000000000000000000000204784f6834025b9259cfebec8cffeb00373b1af30dde25a8e3b68097f0573e1f4000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf355400000000000000370000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a8800000000000000060000000000000001000000000000000000000000000000201b2d925cf3e0fa70e61f75f6c1aa1db5391f88486b43113416f067f1f58e2d24000000000000000100000000000000000000000000000020ed27bfab2e7f35c0e874f1cea2ac0d0e57387c04f2dcec17c69645f45c45dc61000000000000000100000000000000000000000000000020cc57c137940830e48f40c451bdc74b12071485f1ad6ffba3e2ab01a9c482cb080000000000000001000000000000000100000000000000205efe682d733ff9220f6e865648ba8a56c69380880c1b4f659a8bf126240ceeb500000000000000010000000000000000000000000000002081164d64a302850b69a6f61885a59bcff6f1ab23c424b6d2a9d63914f94a1e420000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb00000000000000370000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e0000000000000006000000000000000100000000000000000000000000000020da7cad3e904b31225c80fe4f0a7324dba57e74e56d7f87513342bdc25d5fdb8700000000000000010000000000000000000000000000002071d15c01a1238d45abb8e3144cfa8f392b83afd290d498bf6719cd6131e12f2b00000000000000010000000000000000000000000000002058034b10ba7cfc2c36a16ab5d61a39a246370d0f4b9ad70756884cc55b6f8d0900000000000000010000000000000001000000000000002074d0092f6c300f43760e0459a111c8fd56d2fe92366d550b7a221827dc9ed2dc000000000000000100000000000000000000000000000020cff6591dfe8cb9d421049bf180fabeb267dc54e2b75083b1c94c48eeb9a2fbe9000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000003700000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000000000000000000020b7b5adf5d8740395c6792663e1d9843916399a5314eb421cad37205cd5bd4961000000000000000100000000000000000000000000000020a83ed7937cc008c4f5c47eab905b2c4437bdd9fb5bf17fbfc689d4d4a802e0b900000000000000010000000000000000000000000000002060eff9ce86435865bbc177c269e76fb0f849d4a5a9c70083537cf0ad9059f438000000000000000100000000000000010000000000000020b2b1f9a9da970f658f42768224e216c42e11acbca318b0a65a9fd00cb5e0c9980000000000000001000000000000000000000000000000208af78be0e621a70f818b523c1d4675b967f8ca602f0292dfbd3b6cb3b77c3830000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a00000000000000390000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020c5bfbba30acd27adf9049b86e741c9aed9f0aa634f4c011c25fe4d6bc0e6e2ec00000000000000010000000000000001000000000000002092254bddc93af51db85c84258645a7368b11c67713d9b7edb7798f818a67b7d100000000000000010000000000000001000000000000002013cba62cb82888bb083b50937d466b49f9391c00299bd77abb46de4352465093000000000000000100000000000000000000000000000020a3c68cdf76781d19db7aa603f4cd91ea38edfc0b5126585e0c4cc27eb1121e50000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000390000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a3000000000000000600000000000000010000000000000000000000000000002003e7ebf935872d865aa222634bb9d9453f00a5f04dc9505bd0066f5e43c8a76b000000000000000100000000000000010000000000000020635807ed33baab6f198f635e7bde04f28bdf05155f98b23d273079a5ed07af51000000000000000100000000000000010000000000000020294a02d54abb3df02e3246385cc62ff7ce7229b010690ce8690c31f967c45b48000000000000000100000000000000000000000000000020c8d8760ce542c5a702bcabcb4fef6e52d4233083d54c3cc37568102e3f21b0ec0000000000000001000000000000000000000000000000204784f6834025b9259cfebec8cffeb00373b1af30dde25a8e3b68097f0573e1f4000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf355400000000000000390000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000000000000000000020e275636da75455cffb8f8f077fe80d5602e801eef6cc32598e1fda05bb1f6183000000000000000100000000000000010000000000000020d650faeed357d70ab1be131df066d705ed2f678c29cd43c2fca665cb823c2609000000000000000100000000000000010000000000000020a699562990c3412fc55d466a3e6d9bcf5a7122ba4c59059e9715120d545c05d400000000000000010000000000000000000000000000002021d1315b8b30976711b2a1eb7d34dc8b98eb6fcd1048d35af300a0e1afc757f600000000000000010000000000000000000000000000002081164d64a302850b69a6f61885a59bcff6f1ab23c424b6d2a9d63914f94a1e420000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb00000000000000390000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e000000000000000600000000000000010000000000000000000000000000002093e4d920dd654a8bb8f1caa9eba11e41497d977b0ec0ba514b6878d570715e2c000000000000000100000000000000010000000000000020b3f12f78257ad5ac17c62e93d0e044fd1ee7eb9f634f5e185fd055875e73e1c2000000000000000100000000000000010000000000000020ff7f832f632893365f82d73c7d532c6bd3b7716ef7d7e7934d9ed9ee15104724000000000000000100000000000000000000000000000020362c41d2cff677621fedd9b9572a01b4275f6960c9701d92b3b8f403c3843124000000000000000100000000000000000000000000000020cff6591dfe8cb9d421049bf180fabeb267dc54e2b75083b1c94c48eeb9a2fbe9000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000003900000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000000000000000000020f2ace7cdc3ed7ced031127aa77edc01adb5c64928fb8f2964c2f54a11a25e188000000000000000100000000000000010000000000000020c08a3491343dcfc471495cc386a7f3c5ed9f533ed64ef21fe446eb48ffc9d0bc0000000000000001000000000000000100000000000000205bbf6df18c13b21ec0b39c6471ce58786a1bbd3b55eb1c1bcf04b80eb8446ddb000000000000000100000000000000000000000000000020f7c60fc0242ab4dfbc4e7ed03bd9eaacbe7d3b976a9239dc44a6f083d47d210d0000000000000001000000000000000000000000000000208af78be0e621a70f818b523c1d4675b967f8ca602f0292dfbd3b6cb3b77c3830000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a000000000000001e0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000001000000000000002017458b640f162e7d2ffc58f6689da16dfa3d46aee041a56d60baba3307c3c593000000000000000100000000000000000000000000000020a2502a6ae92a724a6e2a3a94ad93bd71bd29b046475706a32afa43f571c551f200000000000000010000000000000000000000000000002070f93532da12d95bd9b02b2acb02b74a3a532fbd8d1ec178ca7acf3e54865fb800000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001e0000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000010000000000000020eab10fd512a9eee7fd22ab459d23447fe8ac1fb115d37a5a541143cc9c6bff95000000000000000100000000000000000000000000000020d6444544150a0ccf2813ded52812edd79d92cc0e892556b473ca9b5f91aaf4850000000000000001000000000000000000000000000000205b277784934640de1faad045f97aa33ead0988f94dacc9c53e4166dbb115452f0000000000000001000000000000000000000000000000201a65e1cc35663dd11d7c5292a59632955075838a0e28f828ed0f1b9b6ab71d9a0000000000000001000000000000000000000000000000201a981d9e84479953754937a102c43e70395029db74bfc2fab12b49c5843d9e430000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e000000000000001e0000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a88000000000000000600000000000000010000000000000001000000000000002058d67016e758348c14ae8cde34351321a39652e068f192a594a821883298a2c80000000000000001000000000000000000000000000000203b6049c6612d3128428341062af3689d686ec3a0b0402eded18d1e0ee13601dc000000000000000100000000000000000000000000000020489d99d4593c9f7d7ef11873a6c49aafdfb74ac5f21eb6af1c6ee02f3ffb8a2f000000000000000100000000000000000000000000000020985c653902cfbc26788a0a66a2ca25303ad6ea2c2dce45d07ccb47361456c58a000000000000000100000000000000000000000000000020d93b16ca33c69462349cdf25972305037f4521a14049e5a3a75b32e9bee8ab86000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f000000000000001e0000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e0000000000000006000000000000000100000000000000010000000000000020cf3dd8265db2856af3792b0cc924af4f4a8cc0163e00cc03502a2d28b9ab9d25000000000000000100000000000000000000000000000020dbab8bc80c8dedcd31d0617c7338b7a018f597b54f13edc0b09277846b60ce45000000000000000100000000000000000000000000000020a807a1722dd073782a8272fa29a97e18cc1fcb02a95519aa71a538bc94a590e3000000000000000100000000000000000000000000000020b9f8380e2fe3e057f633ea7d58642469bf1143bc7afd2f6ab6cdfafe1a969e7e0000000000000001000000000000000000000000000000209eb7ba4269788b7b97d4252aa2205ef7ba6c9ab3e416ab745d4640aff201076a000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000001e00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000010000000000000020ae5df9583918ab7ab2e46d84e28c3064ecc46196053c1c0125a9681fe14661a50000000000000001000000000000000000000000000000207afcba8a668566e03d3eac5880a22d4a50154bb2e81654b6b03f0f808560880200000000000000010000000000000000000000000000002075430e07a240300ae52c953b5ec016f510b635876be55ed1ecf612dffb92990b0000000000000001000000000000000000000000000000209ffe2f8254f8dfda50ac81447c6e6970a53d6f72fc2e89d44cf63d609b971c480000000000000001000000000000000000000000000000204e59b970588c516635072f9eb5ffd6017c806bd61413f1d8d7108febcebe4793000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f00000000000000260000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020da1157aa4780521bd2d6e8115a35057d3a013d07ed28ea65fcf8e215eea3fe3b00000000000000010000000000000000000000000000002065495ff47c8a31364d3c3c58f071d7c1aa52f198d9059056dd041a1f272fa7d1000000000000000100000000000000000000000000000020254ad08d8f651887ccdedd4264cbe8ac8a820f273e7e6a6eec9571b2bee83fed00000000000000010000000000000001000000000000002020ca2ebe06b78b863c42ebd67e820162645990710fb2212c31964405270d49be00000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000260000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a300000000000000060000000000000001000000000000000100000000000000204c8b40f568528024a12cf722e0ebe8da31f018bcb92fabd9c17b58a6b6842253000000000000000100000000000000000000000000000020ff900d648cea7e57d0142eef6e674d673d64c334d467056ff86c298b7ba0cdf3000000000000000100000000000000000000000000000020a5a2158ac2c2f55dab8f0bef5280169b1947b47eaca88ed441304c84a477295200000000000000010000000000000001000000000000002084f6816c02225d43d59199a238dfb4de2537f60a1e92977e098360d4e3fe72aa0000000000000001000000000000000100000000000000206075e3c137d83b1533f8eb7c9350d8bc540f7c17d14f427c4b1f1569724c9c9f000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf355400000000000000260000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a8800000000000000060000000000000001000000000000000100000000000000202b62589c6c53e511437da963343f41f1909332532f89623f9ef8462d28c6dbf5000000000000000100000000000000000000000000000020bdba69fcbdf120daff98d83aa5bda637c253b8ea984253a22771013b9ed67d220000000000000001000000000000000000000000000000207bb16805c0f3922a2f33da1b1ac7b5da3c53e6a3e010bc518d55ad0976dcf6d40000000000000001000000000000000100000000000000203f6b840cb4e34f4994155017551b931865ea5dd10d97abe75bdaafa1666c7a760000000000000001000000000000000100000000000000209898665151c8643d367f337a0c2eeb715a6080b039ae6b00481ab48b488fc8c90000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb00000000000000260000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000100000000000000205206e4d2aef443e771b23ef9265a2e18707fffd7c0ea867057a865ad11b0ef0e0000000000000001000000000000000000000000000000206fe169005acbcc231f0860bed3f036d94f8ace3843901e648095c7be939cf33a000000000000000100000000000000000000000000000020de6dfe1f2ba0824c38609ccf671fad30cb1f4029982d1ec1427c1928e7daa09b000000000000000100000000000000010000000000000020022b96b4353242652890aa9b4993fda2fafc708e471032a9d08ff3e693f7a2a2000000000000000100000000000000010000000000000020ab56a12205d0c8e0e402ade0769ddecf9b594f3d7db8254cb25540877c795f65000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000002600000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000010000000000000020124697830fe08fbe692dcabcb3cb723f1f61ce3879f542932950ba914e8452d1000000000000000100000000000000000000000000000020044465ae5636fbbc6afe51d536148dea4aeda1e8587057660979b8dda2224096000000000000000100000000000000000000000000000020c7f54df89cac219c9ba563352a4e223a2101f825e37b1a0c33f4259a932ded07000000000000000100000000000000010000000000000020fa894684c31f8ecca74861c3e4a7964b8259cd8308005ad94691eed570d75a0f0000000000000001000000000000000100000000000000206ee562063ccf55f6adc30345f7d34f6c30fba9f1634f24a99a4c5c6e7e6de3b5000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a000000000000001a0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020867f4e7838d3464819f68d32891adc5d0d944835deee9dfab0413a6187f910fc0000000000000001000000000000000000000000000000208cdaf05b84ace4e1b630d731222e016e66fbb851f5088ed3b8479b35f2e863df000000000000000100000000000000010000000000000020087a599f409cb7bacc0662f1cbc4762c6f1a1276b1ec901eff46c07ae65a8c6900000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001a0000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000010000000000000020e5ecb7820c1559658e07aa1dfdaecc4ff7c4d98cc1f131c33d23209c08d147830000000000000001000000000000000000000000000000208140f72e890683cb0c86fb877ded36f4581aa354be3f8c83c99cdf487616e223000000000000000100000000000000010000000000000020d5f571e96d09d56c95ef3b63617cb7cee704c9452fc2678d7d203894421831080000000000000001000000000000000000000000000000201a65e1cc35663dd11d7c5292a59632955075838a0e28f828ed0f1b9b6ab71d9a0000000000000001000000000000000000000000000000201a981d9e84479953754937a102c43e70395029db74bfc2fab12b49c5843d9e430000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e000000000000001a0000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a8800000000000000060000000000000001000000000000000100000000000000209e06882b623b6943341a694086619a2fd57ffb9268685d9270f1c231cf6509ab0000000000000001000000000000000000000000000000205d0f50bf7175a98da247397af17cc975263baf8610471446956ab2cc098fb962000000000000000100000000000000010000000000000020fc3ecba6f88a03bd0fd0081ef31474e57c5e048a180b0f85a74f120f987b913e000000000000000100000000000000000000000000000020985c653902cfbc26788a0a66a2ca25303ad6ea2c2dce45d07ccb47361456c58a000000000000000100000000000000000000000000000020d93b16ca33c69462349cdf25972305037f4521a14049e5a3a75b32e9bee8ab86000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f000000000000001a0000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e0000000000000006000000000000000100000000000000010000000000000020688d94c978c01533c571c99c0eadc6d6449ac9d21c6f1d6226a57898600d1f7e00000000000000010000000000000000000000000000002053850efa1e113a85767b04b049dcd9b2edfb79f7593c8cf90eb4201d4d120f1e0000000000000001000000000000000100000000000000204cc2265dd408d41a199f389594a4d4a755b0b092e6d7724a02ea1a784d18ed7b000000000000000100000000000000000000000000000020b9f8380e2fe3e057f633ea7d58642469bf1143bc7afd2f6ab6cdfafe1a969e7e0000000000000001000000000000000000000000000000209eb7ba4269788b7b97d4252aa2205ef7ba6c9ab3e416ab745d4640aff201076a000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000001a00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce00000000000000060000000000000001000000000000000100000000000000204e77550bd03ecae860c98e4d792432503504a4d7885bb20ee7add50e5a41486a0000000000000001000000000000000000000000000000205661635468d204fececbb4edd8c70496c972c64f65793287d79c677f971f92d90000000000000001000000000000000100000000000000204d013d6b7368c0727be310b46a9ccff9f35de639469cd026aca3e818f732ab2b0000000000000001000000000000000000000000000000209ffe2f8254f8dfda50ac81447c6e6970a53d6f72fc2e89d44cf63d609b971c480000000000000001000000000000000000000000000000204e59b970588c516635072f9eb5ffd6017c806bd61413f1d8d7108febcebe4793000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f00000000000000390000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020c5bfbba30acd27adf9049b86e741c9aed9f0aa634f4c011c25fe4d6bc0e6e2ec00000000000000010000000000000001000000000000002092254bddc93af51db85c84258645a7368b11c67713d9b7edb7798f818a67b7d100000000000000010000000000000001000000000000002013cba62cb82888bb083b50937d466b49f9391c00299bd77abb46de4352465093000000000000000100000000000000000000000000000020a3c68cdf76781d19db7aa603f4cd91ea38edfc0b5126585e0c4cc27eb1121e50000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000390000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a3000000000000000600000000000000010000000000000000000000000000002003e7ebf935872d865aa222634bb9d9453f00a5f04dc9505bd0066f5e43c8a76b000000000000000100000000000000010000000000000020635807ed33baab6f198f635e7bde04f28bdf05155f98b23d273079a5ed07af51000000000000000100000000000000010000000000000020294a02d54abb3df02e3246385cc62ff7ce7229b010690ce8690c31f967c45b48000000000000000100000000000000000000000000000020c8d8760ce542c5a702bcabcb4fef6e52d4233083d54c3cc37568102e3f21b0ec0000000000000001000000000000000000000000000000204784f6834025b9259cfebec8cffeb00373b1af30dde25a8e3b68097f0573e1f4000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf355400000000000000390000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000000000000000000020e275636da75455cffb8f8f077fe80d5602e801eef6cc32598e1fda05bb1f6183000000000000000100000000000000010000000000000020d650faeed357d70ab1be131df066d705ed2f678c29cd43c2fca665cb823c2609000000000000000100000000000000010000000000000020a699562990c3412fc55d466a3e6d9bcf5a7122ba4c59059e9715120d545c05d400000000000000010000000000000000000000000000002021d1315b8b30976711b2a1eb7d34dc8b98eb6fcd1048d35af300a0e1afc757f600000000000000010000000000000000000000000000002081164d64a302850b69a6f61885a59bcff6f1ab23c424b6d2a9d63914f94a1e420000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb00000000000000390000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e000000000000000600000000000000010000000000000000000000000000002093e4d920dd654a8bb8f1caa9eba11e41497d977b0ec0ba514b6878d570715e2c000000000000000100000000000000010000000000000020b3f12f78257ad5ac17c62e93d0e044fd1ee7eb9f634f5e185fd055875e73e1c2000000000000000100000000000000010000000000000020ff7f832f632893365f82d73c7d532c6bd3b7716ef7d7e7934d9ed9ee15104724000000000000000100000000000000000000000000000020362c41d2cff677621fedd9b9572a01b4275f6960c9701d92b3b8f403c3843124000000000000000100000000000000000000000000000020cff6591dfe8cb9d421049bf180fabeb267dc54e2b75083b1c94c48eeb9a2fbe9000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000003900000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000000000000000000020f2ace7cdc3ed7ced031127aa77edc01adb5c64928fb8f2964c2f54a11a25e188000000000000000100000000000000010000000000000020c08a3491343dcfc471495cc386a7f3c5ed9f533ed64ef21fe446eb48ffc9d0bc0000000000000001000000000000000100000000000000205bbf6df18c13b21ec0b39c6471ce58786a1bbd3b55eb1c1bcf04b80eb8446ddb000000000000000100000000000000000000000000000020f7c60fc0242ab4dfbc4e7ed03bd9eaacbe7d3b976a9239dc44a6f083d47d210d0000000000000001000000000000000000000000000000208af78be0e621a70f818b523c1d4675b967f8ca602f0292dfbd3b6cb3b77c3830000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a000000000000003f0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020e806c4a23f82fc487b6c081e18e128bb84880b3267559d06a5125a57514d087a00000000000000010000000000000000000000000000002018b1612eb1dad97c59689c51b208232a96f3bc2f7825df0cd725412e93bc97040000000000000001000000000000000000000000000000201d0f1670f4690edbf111d45e385b2241e1ec7c0d7e483f87ab326686bca0511f000000000000000100000000000000000000000000000020a3c68cdf76781d19db7aa603f4cd91ea38edfc0b5126585e0c4cc27eb1121e50000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba3610000000000000003f0000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000000000000000000020f6195394df3d0cd7bc9ea80250ac09fc95c96281aa1d0be11af0ca367bdfc0460000000000000001000000000000000000000000000000200912cbb39f1a61d0bcbaa0fa9c58064c4d88de692b875949644133580c94fc260000000000000001000000000000000000000000000000202c99f0a5aaeafaa469bf962fca310895c5383c7ef34551847537f9de939b90a2000000000000000100000000000000000000000000000020c8d8760ce542c5a702bcabcb4fef6e52d4233083d54c3cc37568102e3f21b0ec0000000000000001000000000000000000000000000000204784f6834025b9259cfebec8cffeb00373b1af30dde25a8e3b68097f0573e1f4000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf3554000000000000003f0000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000000000000000000020c99deb8cef4d6186c8595da87067d33de43d6a20061b7a47d4c871b096d337b30000000000000001000000000000000000000000000000207621cc792aae2305014673075b7ab71f27ef3188bc6e00d20f8d99ad10329adb000000000000000100000000000000000000000000000020c4f4d428247a2232496d269585138e28e792d4b4fbbcf65f6c15f6a6e9af92af00000000000000010000000000000000000000000000002021d1315b8b30976711b2a1eb7d34dc8b98eb6fcd1048d35af300a0e1afc757f600000000000000010000000000000000000000000000002081164d64a302850b69a6f61885a59bcff6f1ab23c424b6d2a9d63914f94a1e420000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb000000000000003f0000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e0000000000000006000000000000000100000000000000000000000000000020e0975f3d38aa788c6f0367e9cd7338e028542719375f75c3268ba30356f3c69d0000000000000001000000000000000000000000000000207c956d809480cdfd537d43ca40ff5d89f2990a84c39fc60ffe2006c0e71b3fd90000000000000001000000000000000000000000000000205b7de88e2c73b367239725a4f8639f3432f8314ee82918960b65846fc7137542000000000000000100000000000000000000000000000020362c41d2cff677621fedd9b9572a01b4275f6960c9701d92b3b8f403c3843124000000000000000100000000000000000000000000000020cff6591dfe8cb9d421049bf180fabeb267dc54e2b75083b1c94c48eeb9a2fbe9000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000003f00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce00000000000000060000000000000001000000000000000000000000000000205a69a4bfbea407f2cb2bb6bb47022d31b56ee769159649d09a5ff53d5394cf5e000000000000000100000000000000000000000000000020f457735f35611cbf719aa6c8555223848dc3e174810d8234d3313fa90b5c3e99000000000000000100000000000000000000000000000020afe999b9e080d307a2333dcbbe090a64228512a5b48458b1f8bc6ddcc863caa9000000000000000100000000000000000000000000000020f7c60fc0242ab4dfbc4e7ed03bd9eaacbe7d3b976a9239dc44a6f083d47d210d0000000000000001000000000000000000000000000000208af78be0e621a70f818b523c1d4675b967f8ca602f0292dfbd3b6cb3b77c3830000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a000000000000003e0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000100000000000000201bcd8849d2cc8843ae0be9cc15927515d0a888ef485e413e5f3179f75a8c006400000000000000010000000000000000000000000000002018b1612eb1dad97c59689c51b208232a96f3bc2f7825df0cd725412e93bc97040000000000000001000000000000000000000000000000201d0f1670f4690edbf111d45e385b2241e1ec7c0d7e483f87ab326686bca0511f000000000000000100000000000000000000000000000020a3c68cdf76781d19db7aa603f4cd91ea38edfc0b5126585e0c4cc27eb1121e50000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba3610000000000000003e0000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000010000000000000020129133941d7af79f4d80f51d8e215e0dcebed368d988e87237ef5ee134e3bd870000000000000001000000000000000000000000000000200912cbb39f1a61d0bcbaa0fa9c58064c4d88de692b875949644133580c94fc260000000000000001000000000000000000000000000000202c99f0a5aaeafaa469bf962fca310895c5383c7ef34551847537f9de939b90a2000000000000000100000000000000000000000000000020c8d8760ce542c5a702bcabcb4fef6e52d4233083d54c3cc37568102e3f21b0ec0000000000000001000000000000000000000000000000204784f6834025b9259cfebec8cffeb00373b1af30dde25a8e3b68097f0573e1f4000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf3554000000000000003e0000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000010000000000000020de04d2769d4377b8d7f7a3168acc3fda9ec016ffcb1e58dda8bb2e6b9dc77fae0000000000000001000000000000000000000000000000207621cc792aae2305014673075b7ab71f27ef3188bc6e00d20f8d99ad10329adb000000000000000100000000000000000000000000000020c4f4d428247a2232496d269585138e28e792d4b4fbbcf65f6c15f6a6e9af92af00000000000000010000000000000000000000000000002021d1315b8b30976711b2a1eb7d34dc8b98eb6fcd1048d35af300a0e1afc757f600000000000000010000000000000000000000000000002081164d64a302850b69a6f61885a59bcff6f1ab23c424b6d2a9d63914f94a1e420000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb000000000000003e0000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e000000000000000600000000000000010000000000000001000000000000002064d728adbfd58262891ce2fd5b46835a808562fe572f0551ebe703eb4836c7d60000000000000001000000000000000000000000000000207c956d809480cdfd537d43ca40ff5d89f2990a84c39fc60ffe2006c0e71b3fd90000000000000001000000000000000000000000000000205b7de88e2c73b367239725a4f8639f3432f8314ee82918960b65846fc7137542000000000000000100000000000000000000000000000020362c41d2cff677621fedd9b9572a01b4275f6960c9701d92b3b8f403c3843124000000000000000100000000000000000000000000000020cff6591dfe8cb9d421049bf180fabeb267dc54e2b75083b1c94c48eeb9a2fbe9000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000003e00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce00000000000000060000000000000001000000000000000100000000000000200e4d81553ef804c7e42586835f9cb1a73385eaa5e56f312b3160c3cfe2c780db000000000000000100000000000000000000000000000020f457735f35611cbf719aa6c8555223848dc3e174810d8234d3313fa90b5c3e99000000000000000100000000000000000000000000000020afe999b9e080d307a2333dcbbe090a64228512a5b48458b1f8bc6ddcc863caa9000000000000000100000000000000000000000000000020f7c60fc0242ab4dfbc4e7ed03bd9eaacbe7d3b976a9239dc44a6f083d47d210d0000000000000001000000000000000000000000000000208af78be0e621a70f818b523c1d4675b967f8ca602f0292dfbd3b6cb3b77c3830000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a00000000000000170000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020a0c329674d73730336f6ce60133ccf4aac3865051d354d21037187f6396071b3000000000000000100000000000000000000000000000020864e47462260929d60876a0babd915b08229a85eed60fe22ac85ec61ee1e866e000000000000000100000000000000000000000000000020080b28b1dece6dde43a662bb2943cbbcfb4977254ddfb567d20ec3694d07decc000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000170000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a300000000000000060000000000000001000000000000000000000000000000205bd98a1b491cc72eb05e18deecafdb001f85e6128a43343d3ff0be37e78fe64f0000000000000001000000000000000000000000000000200e7d351888311da505d48edf530347f157d2abfcab987c09de8b0beef61251bf0000000000000001000000000000000000000000000000207990f75efecb15381ee2ea49b218b85f7e3d2cd5a557af793a918c688444cb36000000000000000100000000000000010000000000000020fd279d1406b4d83c0a17f7b257f972ea35ed0ca71fef42b15831ef20a873d2060000000000000001000000000000000000000000000000201a981d9e84479953754937a102c43e70395029db74bfc2fab12b49c5843d9e430000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e00000000000000170000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000000000000000000020a086ae4f0127f6c9909beabf093667b871ff438149eab70e246ffb25d3fddabb000000000000000100000000000000000000000000000020d4552976af65c083f953d52f4a52bbc52fc0ce914e2a0410d0b8cb54949d05b00000000000000001000000000000000000000000000000206535303184ae9576b8965697bba2837e9653eaea428214efe5545f1a41781af4000000000000000100000000000000010000000000000020a11b098ffdb0fd764d32c6c94f850ae43c76bdac4f696dfb63d217ca7ca3565b000000000000000100000000000000000000000000000020d93b16ca33c69462349cdf25972305037f4521a14049e5a3a75b32e9bee8ab86000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f00000000000000170000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e0000000000000006000000000000000100000000000000000000000000000020aa7f59eec92558617b3eedd98a1f0c3c0e5557078bc4cf26ffa0b525495cf57d000000000000000100000000000000000000000000000020ba868704c113d607b0f29432afc6c0a3b96bbd5e37e09fc3e9551e024d2e294a0000000000000001000000000000000000000000000000203d240926443a3df74455eaa63032b4a1917a7ba86b68c8b52488cb5c14e7152c00000000000000010000000000000001000000000000002067c75ae00e580df332b6c9eb358990101505a1fcfad9143ca32a4fa708c2dd6a0000000000000001000000000000000000000000000000209eb7ba4269788b7b97d4252aa2205ef7ba6c9ab3e416ab745d4640aff201076a000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000001700000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce00000000000000060000000000000001000000000000000000000000000000204410f5d9249c107f35825cec6de0fff5d3e59e38d0c300b08927a78dff598e27000000000000000100000000000000000000000000000020929ae53c8c74f4b9989951280c1e0f853226f925fc21b6c7169bd80647f361b8000000000000000100000000000000000000000000000020fdad0b48ef4cbe9ae1572e41e999fc911b15aa624f42f18504d156ebfdb1852c0000000000000001000000000000000100000000000000209a71d9e1dce988e719e83d71d00c9525487a282b50022cc6154fc960fd2355f00000000000000001000000000000000000000000000000204e59b970588c516635072f9eb5ffd6017c806bd61413f1d8d7108febcebe4793000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f00000000000000040000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020ad29f157986a63e236232935b94d48a682c4e8c6359a4acfb61d5ce97d6618e900000000000000010000000000000001000000000000002051eb7c5f8572912a00b4d921a0269e737f961978a81975a7117df74f933d6478000000000000000100000000000000000000000000000020e2c28e037d30a9b1cafa16794e336898558e512395cfcbdeb25f5f9c08dba0820000000000000001000000000000000100000000000000209dc48d41a2d4c25b90ae286b21502aabe4177429574808eac78aed0ba9b970ba00000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000040000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a300000000000000060000000000000001000000000000000100000000000000204d8cbedc0ba430818025f4a7a34b0e80b405c7396a376791ffeda9c7f12e218b0000000000000001000000000000000100000000000000205002af866aa997e8c793ae0820b0401e66879fbfb375385e2924581f675a7ce600000000000000010000000000000000000000000000002037e321427dc8a93667d9e53d72f976e66ef694ed439402c8b04bd59a2a16a558000000000000000100000000000000010000000000000020f8bc11deec21302e1f51f9e237aedb8aa5251d7676c7f5048dedcd657f7133fc000000000000000100000000000000010000000000000020f674d9bdc01a18975efa6d78c277539fb49e84aa12b432ce63398cf89654de330000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e00000000000000040000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000010000000000000020341937366db2c11b6453e4d6e11e6657736857c2188f6cefbfa2f1d96933a8c8000000000000000100000000000000010000000000000020178c19aada458d055f305c25678fbc848772b18a45b56515c1c896a26ad32d620000000000000001000000000000000000000000000000200fe8624bf18d0bf250ca0d738d3ae9b69eae414c22fee76dbcd19d27aafb18320000000000000001000000000000000100000000000000201e5d518201338ae65645a43790fcc881148a862ced5662dd2f3d4fa272096c30000000000000000100000000000000010000000000000020e40cceacfe78cff9600b2e46e186ce0d04d352b2cebea854211cefeeb27f1594000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f00000000000000040000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000100000000000000200fdb6d18775f7560197e221d6d35b90ce6a7530ad741bb804a0ae8bc7d636138000000000000000100000000000000010000000000000020473804d1f8c0cc25b880ac1b2910777bc6000c1ec4d4c384881b627d77c727810000000000000001000000000000000000000000000000201b90e90c86f1056ea0a09f49027a3005a07ddfc1081f399df53cdfd1cbd242800000000000000001000000000000000100000000000000201e0e5ee3509d87c942d6eecc539d80cd51775918b908b745d7ab410f52b8a562000000000000000100000000000000010000000000000020a1510c0b06e39f12e300709d413f8d80016cf37775e3d9332cf787ff7cb437e5000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000000400000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000010000000000000020220fb311907c9d85439d1eec5e9ffbfba87c4012c353bd8715c2ea1879cb1b390000000000000001000000000000000100000000000000207836d324a1cd8d31deb3c84cb8df9edc7537a827b7648c7af740d7259cfd7fd60000000000000001000000000000000000000000000000205d6f40bbd0dcdbf87dd934c270f43c6d6bc47105677bd050547cd995af6f48f3000000000000000100000000000000010000000000000020be6d505b52ce59b71864d77730ffeb8628fe75575331c760db510ad311a24443000000000000000100000000000000010000000000000020869859afc4e5681a25a5915521c2a426157dff8e26309759aca12cb8232c3452000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f00000000000000310000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020e7cde93b02f69b3bdfec265c0a80e30146008063d4d41d7952e09fef525ba56900000000000000010000000000000001000000000000002088b9c36ce6c205415134c822e13277bf26dc808cf4164d31fb3feb408d5a5e06000000000000000100000000000000010000000000000020d668a432d047c9e275f7c7d20e0a761a44ce7e63d76a8974123279ebd303ad5300000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000310000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a300000000000000060000000000000001000000000000000000000000000000209a08d4167dd497190fd45acf9002d380b4bccfa4516d724073519f6dcaa34ff3000000000000000100000000000000010000000000000020b0a5c9f4ba24f931dc0d8797b9b7d94ac0e24f7f1394c989b2b3deb7b02a3087000000000000000100000000000000010000000000000020896a9feb27176097287962314c1d6a9ab80a44327e072493d27b9a4b8e2303b0000000000000000100000000000000010000000000000020683add9032495c3da8b6bd81434dde36b862a0aa24bfc4921623d38f6d42ce9e0000000000000001000000000000000000000000000000204784f6834025b9259cfebec8cffeb00373b1af30dde25a8e3b68097f0573e1f4000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf355400000000000000310000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000000000000000000020318af26b5a9fac9e737ab1e2a72b518f39f1bf9d858c6438563f24288a56c55d000000000000000100000000000000010000000000000020713efae07f6429403f580c43cfbe9cb6adc93ac3ce57a2be43a4ccfc9eef75d4000000000000000100000000000000010000000000000020962eb8f3bc8178022d18678330a12f6cf8cf744e7f7485fab75396ae04fd960e0000000000000001000000000000000100000000000000205efe682d733ff9220f6e865648ba8a56c69380880c1b4f659a8bf126240ceeb500000000000000010000000000000000000000000000002081164d64a302850b69a6f61885a59bcff6f1ab23c424b6d2a9d63914f94a1e420000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb00000000000000310000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e0000000000000006000000000000000100000000000000000000000000000020d2a9298ba0c634323271095fbe23173bececbdab147d0932fc7e61121f0de0180000000000000001000000000000000100000000000000200d73c313211f71a4f79de78944a8cb15dfb250054f7cf6be5475e16254e67e2e0000000000000001000000000000000100000000000000202ed3c2ae4ed52c7b0ab3c93636ba4028040eb2b1c82fd72cff7c660f51decd7a00000000000000010000000000000001000000000000002074d0092f6c300f43760e0459a111c8fd56d2fe92366d550b7a221827dc9ed2dc000000000000000100000000000000000000000000000020cff6591dfe8cb9d421049bf180fabeb267dc54e2b75083b1c94c48eeb9a2fbe9000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000003100000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce000000000000000600000000000000010000000000000000000000000000002037cfc732d7f110c5164ab57a25daa1f573308f9c371c88eae3f22b1d81276d84000000000000000100000000000000010000000000000020ed9a8f0b8b78cf46af46bb1640e6b42249db653000d30e9226d77a4288a2d3e5000000000000000100000000000000010000000000000020ff8df1196c7b3e0066145e192be0b21aa8cfb416c709da99c945ed85ddf8a80a000000000000000100000000000000010000000000000020b2b1f9a9da970f658f42768224e216c42e11acbca318b0a65a9fd00cb5e0c9980000000000000001000000000000000000000000000000208af78be0e621a70f818b523c1d4675b967f8ca602f0292dfbd3b6cb3b77c3830000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a00000000000000380000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020d5d9e84739c0813f71d0359e99b9765469d7a41ef279c691c2254c026b06582900000000000000010000000000000001000000000000002092254bddc93af51db85c84258645a7368b11c67713d9b7edb7798f818a67b7d100000000000000010000000000000001000000000000002013cba62cb82888bb083b50937d466b49f9391c00299bd77abb46de4352465093000000000000000100000000000000000000000000000020a3c68cdf76781d19db7aa603f4cd91ea38edfc0b5126585e0c4cc27eb1121e50000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000380000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a300000000000000060000000000000001000000000000000100000000000000209799d522f91cea6449054c0d6b58a6c37ffd0692a60e5d460d535143695d2f23000000000000000100000000000000010000000000000020635807ed33baab6f198f635e7bde04f28bdf05155f98b23d273079a5ed07af51000000000000000100000000000000010000000000000020294a02d54abb3df02e3246385cc62ff7ce7229b010690ce8690c31f967c45b48000000000000000100000000000000000000000000000020c8d8760ce542c5a702bcabcb4fef6e52d4233083d54c3cc37568102e3f21b0ec0000000000000001000000000000000000000000000000204784f6834025b9259cfebec8cffeb00373b1af30dde25a8e3b68097f0573e1f4000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf355400000000000000380000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000010000000000000020f3d60bc9f4c6d9a39587df8dcfbc280d25b17d807b2b85194e25b3cbf9a81def000000000000000100000000000000010000000000000020d650faeed357d70ab1be131df066d705ed2f678c29cd43c2fca665cb823c2609000000000000000100000000000000010000000000000020a699562990c3412fc55d466a3e6d9bcf5a7122ba4c59059e9715120d545c05d400000000000000010000000000000000000000000000002021d1315b8b30976711b2a1eb7d34dc8b98eb6fcd1048d35af300a0e1afc757f600000000000000010000000000000000000000000000002081164d64a302850b69a6f61885a59bcff6f1ab23c424b6d2a9d63914f94a1e420000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb00000000000000380000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e000000000000000600000000000000010000000000000001000000000000002026a8566d3a02bec6d352e8605bf6b96adafbb7d5f9067c735685b73b5a636b8a000000000000000100000000000000010000000000000020b3f12f78257ad5ac17c62e93d0e044fd1ee7eb9f634f5e185fd055875e73e1c2000000000000000100000000000000010000000000000020ff7f832f632893365f82d73c7d532c6bd3b7716ef7d7e7934d9ed9ee15104724000000000000000100000000000000000000000000000020362c41d2cff677621fedd9b9572a01b4275f6960c9701d92b3b8f403c3843124000000000000000100000000000000000000000000000020cff6591dfe8cb9d421049bf180fabeb267dc54e2b75083b1c94c48eeb9a2fbe9000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000003800000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce00000000000000060000000000000001000000000000000100000000000000200c4f64765121dcd1fb313c3839ca313622fa406d4b12a5455cd0dccbddac0870000000000000000100000000000000010000000000000020c08a3491343dcfc471495cc386a7f3c5ed9f533ed64ef21fe446eb48ffc9d0bc0000000000000001000000000000000100000000000000205bbf6df18c13b21ec0b39c6471ce58786a1bbd3b55eb1c1bcf04b80eb8446ddb000000000000000100000000000000000000000000000020f7c60fc0242ab4dfbc4e7ed03bd9eaacbe7d3b976a9239dc44a6f083d47d210d0000000000000001000000000000000000000000000000208af78be0e621a70f818b523c1d4675b967f8ca602f0292dfbd3b6cb3b77c3830000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a00000000000000370000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000204a103b4fc3a3b9a902c447394074f9393b9a8d0b2c9623792908b8ca3f90ba5f00000000000000010000000000000000000000000000002015ad821dcbca21c0f24f28f58131f9ab7767c0d6fbf621d34a2c84ab7b24c75e000000000000000100000000000000000000000000000020f4d1e64380a2c05ab0dc64ea31b5e288a4325921fa907811ded50419cc51d1ad00000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000370000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000000000000000000020409b33e23bccea2ebaa2a862cf0d4f810b1112bde7b18e21bc791aea126bc64d000000000000000100000000000000000000000000000020f1e2b6347ac2739a9b466267fbd2550305432721d16af954e722390ced51f508000000000000000100000000000000000000000000000020a3b4187c6753dc9ef8e78915ad0d5a86516efe76949a7e97bde2b7c7f7ced146000000000000000100000000000000010000000000000020683add9032495c3da8b6bd81434dde36b862a0aa24bfc4921623d38f6d42ce9e0000000000000001000000000000000000000000000000204784f6834025b9259cfebec8cffeb00373b1af30dde25a8e3b68097f0573e1f4000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf355400000000000000370000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a8800000000000000060000000000000001000000000000000000000000000000201b2d925cf3e0fa70e61f75f6c1aa1db5391f88486b43113416f067f1f58e2d24000000000000000100000000000000000000000000000020ed27bfab2e7f35c0e874f1cea2ac0d0e57387c04f2dcec17c69645f45c45dc61000000000000000100000000000000000000000000000020cc57c137940830e48f40c451bdc74b12071485f1ad6ffba3e2ab01a9c482cb080000000000000001000000000000000100000000000000205efe682d733ff9220f6e865648ba8a56c69380880c1b4f659a8bf126240ceeb500000000000000010000000000000000000000000000002081164d64a302850b69a6f61885a59bcff6f1ab23c424b6d2a9d63914f94a1e420000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb00000000000000370000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e0000000000000006000000000000000100000000000000000000000000000020da7cad3e904b31225c80fe4f0a7324dba57e74e56d7f87513342bdc25d5fdb8700000000000000010000000000000000000000000000002071d15c01a1238d45abb8e3144cfa8f392b83afd290d498bf6719cd6131e12f2b00000000000000010000000000000000000000000000002058034b10ba7cfc2c36a16ab5d61a39a246370d0f4b9ad70756884cc55b6f8d0900000000000000010000000000000001000000000000002074d0092f6c300f43760e0459a111c8fd56d2fe92366d550b7a221827dc9ed2dc000000000000000100000000000000000000000000000020cff6591dfe8cb9d421049bf180fabeb267dc54e2b75083b1c94c48eeb9a2fbe9000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000003700000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000000000000000000020b7b5adf5d8740395c6792663e1d9843916399a5314eb421cad37205cd5bd4961000000000000000100000000000000000000000000000020a83ed7937cc008c4f5c47eab905b2c4437bdd9fb5bf17fbfc689d4d4a802e0b900000000000000010000000000000000000000000000002060eff9ce86435865bbc177c269e76fb0f849d4a5a9c70083537cf0ad9059f438000000000000000100000000000000010000000000000020b2b1f9a9da970f658f42768224e216c42e11acbca318b0a65a9fd00cb5e0c9980000000000000001000000000000000000000000000000208af78be0e621a70f818b523c1d4675b967f8ca602f0292dfbd3b6cb3b77c3830000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a0000000000000050000000000000000d00000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb000000000000000600000000000000010000000000000000000000000000002071c306821da77d90cca75909d4723c7ebd76db31a8311d917215c6d2c4121a99000000000000000100000000000000010000000000000020b5d8028192b06d850cbb31980d3b26a26176308c663782b22dc1755dfb0855a9000000000000000100000000000000000000000000000020d9180fd695f770b896cd2047f04677b62d0f486e33a9baa1b371715cc9c62cc1000000000000000100000000000000000000000000000020a1d360eac3fc5fbf8ba6d2d676c62da70a542ed0bb1d71803a49f6f78904448e00000000000000010000000000000001000000000000002091d104f48591eedca3134cbc2dee83273b96d0013e1fcc9ec5513a468d9dc665000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a22000000000000000d0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a8300000000000000050000000000000001000000000000000000000000000000201e41214884f6bfeaf320fa93ba5e966d6ef537096153b260e6b4101d9003c8d10000000000000001000000000000000100000000000000209df944cf495d6d91667567e49d1e9358a853566bb86f77ebb55d2da307d4185f0000000000000001000000000000000000000000000000209a559eb88d8d4c28b5e2655e113eb756e9f0ff0aae1bf5684d53451ee05e6fee000000000000000100000000000000000000000000000020548c028f166dddf19c7e1f2a375f8903f71cb3485f2486fe38e0970416239d14000000000000000100000000000000010000000000000020de5dde63dfc3f6e466bd10c5856bb6d41db0dcfdbb936ca408e97eafb31abf08000000000000001a00000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb00000000000000060000000000000001000000000000000100000000000000205a1b5910f312d4608a3c659658a5813375927117518986b58880ce34c493d16e000000000000000100000000000000000000000000000020e8800c3b12103f7baca525762dc6c6ab39e353edb8d4a91818c74f26252f91ff000000000000000100000000000000010000000000000020148badf58a4a39212166da12bcb05e4aa25d68467c3f16f84d99b4dea0326d24000000000000000100000000000000000000000000000020b63e3c8ab8dd78a0e05d556971048f310d542f94a21bad8c2fdef3950d991cd100000000000000010000000000000000000000000000002031e28da72f5e0c50cfb866400335e08c4532bf8c1fe7f55ed3cea803a23d3a04000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a22000000000000001a0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a83000000000000000500000000000000010000000000000001000000000000002095358652dc9b7e806741bd7a1a28ef5823bf88801fd6df29ebbfe532f9b20b61000000000000000100000000000000000000000000000020fc0138ea57ddae922a4c26719ad5766149f8a9085c0dc238ae06cb20cccadf9e0000000000000001000000000000000100000000000000201662783cef0484008223d0d8042a91d0a2306f72dee6e5230b53a3a0a8726981000000000000000100000000000000000000000000000020391fbd1fcdaa6f8c54238c393418e55145a4219a27d87cc8eb1b8f44bfa251ed0000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000002c00000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb00000000000000060000000000000001000000000000000100000000000000203678b0e46824bde1b2e95033d877475a8486d878a3a9727b90574eb297a3ca7400000000000000010000000000000001000000000000002077baa3476a198f656ea8b094e88defa6db6a9ccc3d7333cd9ccae6c6515dd9500000000000000001000000000000000000000000000000207974eb55baa2788a39cbcc1baca21e3add81d794ddbd2f86d4b9efc52013f8f700000000000000010000000000000000000000000000002015dfca77b790207e7bcd361fb916e3f854f1297ab053e2c8585aeb8be0fcc82600000000000000010000000000000001000000000000002065ff132f45c9c53e731bb529fae6dd22f22474adffe354d1ff7976e50904c1d40000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea0000000000000000c0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a8300000000000000050000000000000001000000000000000100000000000000202c8ca1ff5b3444e7aa249afd027aa4c29afe47721e755864ea86efba513b0f7d0000000000000001000000000000000100000000000000209df944cf495d6d91667567e49d1e9358a853566bb86f77ebb55d2da307d4185f0000000000000001000000000000000000000000000000209a559eb88d8d4c28b5e2655e113eb756e9f0ff0aae1bf5684d53451ee05e6fee000000000000000100000000000000000000000000000020548c028f166dddf19c7e1f2a375f8903f71cb3485f2486fe38e0970416239d14000000000000000100000000000000010000000000000020de5dde63dfc3f6e466bd10c5856bb6d41db0dcfdbb936ca408e97eafb31abf08000000000000003a00000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb000000000000000600000000000000010000000000000001000000000000002009f06c99cf066a87e20be6bbb6b0615de4d1961810315aa47fa34149408ab1c600000000000000010000000000000000000000000000002021ad7c1393145913b0ea21f4f8701c3ca11ce348b113a2925121e03e859136970000000000000001000000000000000100000000000000209bde0dfeabc1facd61a53fac487e482eddd902fdb8861fc72e69db538a96c4c8000000000000000100000000000000000000000000000020566193c8484b82d6aa4a68be3e17aaa200baeef660c4a5810395c167ce233d93000000000000000100000000000000000000000000000020c936d6a17c00b11114c73c6012099a95c04441d0574b09355ce26ada9acffc090000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea0000000000000001a0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a83000000000000000500000000000000010000000000000001000000000000002095358652dc9b7e806741bd7a1a28ef5823bf88801fd6df29ebbfe532f9b20b61000000000000000100000000000000000000000000000020fc0138ea57ddae922a4c26719ad5766149f8a9085c0dc238ae06cb20cccadf9e0000000000000001000000000000000100000000000000201662783cef0484008223d0d8042a91d0a2306f72dee6e5230b53a3a0a8726981000000000000000100000000000000000000000000000020391fbd1fcdaa6f8c54238c393418e55145a4219a27d87cc8eb1b8f44bfa251ed0000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000001c00000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb00000000000000060000000000000001000000000000000100000000000000200704d795375b5a2cd6fff1f48c3308f9d352fa8427fe51431a1ae61abb222a700000000000000001000000000000000100000000000000200e8b98f92fcefc7cf149991197ab71468d96e879012eea8a4d9187f1714d656e000000000000000100000000000000000000000000000020e2112783e8dafb034d198bcc16dc02add0cc269a302ecc95594cc88071121f6e000000000000000100000000000000000000000000000020b63e3c8ab8dd78a0e05d556971048f310d542f94a21bad8c2fdef3950d991cd100000000000000010000000000000000000000000000002031e28da72f5e0c50cfb866400335e08c4532bf8c1fe7f55ed3cea803a23d3a04000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a22000000000000001c0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a83000000000000000500000000000000010000000000000001000000000000002060e9f14c59dde9b23e3f0082d7923aa1ab1220aeaa2d72c2cac5e25f85bcf744000000000000000100000000000000010000000000000020605c3b689d3ef306df03a81adecd17c90530b321c29fb38bb48e1e2f946a0d29000000000000000100000000000000000000000000000020f856d0214bc2760574876c2950446833614710df8efcacfa25ced5a5748eec36000000000000000100000000000000000000000000000020391fbd1fcdaa6f8c54238c393418e55145a4219a27d87cc8eb1b8f44bfa251ed0000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000001d00000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb000000000000000600000000000000010000000000000000000000000000002057bdc30c9081bbf78560f330b1fac3dcf6db802f28e003c27583ff3b766502300000000000000001000000000000000100000000000000200e8b98f92fcefc7cf149991197ab71468d96e879012eea8a4d9187f1714d656e000000000000000100000000000000000000000000000020e2112783e8dafb034d198bcc16dc02add0cc269a302ecc95594cc88071121f6e000000000000000100000000000000000000000000000020b63e3c8ab8dd78a0e05d556971048f310d542f94a21bad8c2fdef3950d991cd100000000000000010000000000000000000000000000002031e28da72f5e0c50cfb866400335e08c4532bf8c1fe7f55ed3cea803a23d3a04000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a22000000000000001d0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a830000000000000005000000000000000100000000000000000000000000000020d711b16cb964bac6a22e63b274cef4bb971c96a008291000a9546dc8d5524e21000000000000000100000000000000010000000000000020605c3b689d3ef306df03a81adecd17c90530b321c29fb38bb48e1e2f946a0d29000000000000000100000000000000000000000000000020f856d0214bc2760574876c2950446833614710df8efcacfa25ced5a5748eec36000000000000000100000000000000000000000000000020391fbd1fcdaa6f8c54238c393418e55145a4219a27d87cc8eb1b8f44bfa251ed0000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000000800000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb000000000000000600000000000000010000000000000001000000000000002014b998f9e08dd63de83ab2d19851c3deb4e8c744b131254ff2d6e2f2ee779ba7000000000000000100000000000000010000000000000020e77c149fd2e2ed85e93ae8544c116a43cf2f30a88fe0ee8e01853043f5df3331000000000000000100000000000000010000000000000020caf9ab1ae5f1864e6173741419989d4f58e6d02c9f415cdae9e4023e876c2ea8000000000000000100000000000000000000000000000020a1d360eac3fc5fbf8ba6d2d676c62da70a542ed0bb1d71803a49f6f78904448e00000000000000010000000000000001000000000000002091d104f48591eedca3134cbc2dee83273b96d0013e1fcc9ec5513a468d9dc665000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a2200000000000000080000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a8300000000000000050000000000000001000000000000000100000000000000208359d0fc94d95999cd0e2962c3c676c1898c6f31af1377f214316629692593440000000000000001000000000000000100000000000000209ee98f63de6a8f0d6d58269d0d8a462a87140267eb9211be41686f87e0635cdf000000000000000100000000000000010000000000000020c526543aa17911e46a468844b21614361d085130359aed7e61f2d8cf0fd0aebf000000000000000100000000000000000000000000000020548c028f166dddf19c7e1f2a375f8903f71cb3485f2486fe38e0970416239d14000000000000000100000000000000010000000000000020de5dde63dfc3f6e466bd10c5856bb6d41db0dcfdbb936ca408e97eafb31abf08000000000000002a00000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000006000000000000000100000000000000010000000000000020fe17486b4bde82612dff9a882f04653efb3ce794d19cf44eae947054e664c8ab000000000000000100000000000000000000000000000020c90181c049f71bd19337e64f0866e6aed82fbbf4e2b525d7468b5b446e296f9c000000000000000100000000000000010000000000000020804aa0f7b48c9a5ca2412f858ea440f8d0cb5d8acbee97ddca2bf6e2822fbb8b00000000000000010000000000000000000000000000002015dfca77b790207e7bcd361fb916e3f854f1297ab053e2c8585aeb8be0fcc82600000000000000010000000000000001000000000000002065ff132f45c9c53e731bb529fae6dd22f22474adffe354d1ff7976e50904c1d40000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea0000000000000000a0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a830000000000000005000000000000000100000000000000010000000000000020b2ef8cfae661c9bd8231bd3a0a4bb26b8ae3b59ac4072d4122a8d953b0c6054c0000000000000001000000000000000000000000000000209fdede93cf458de343777e7fc253adbc3e5bbbe3ef058904c9b4211bd0e2f1e1000000000000000100000000000000010000000000000020c526543aa17911e46a468844b21614361d085130359aed7e61f2d8cf0fd0aebf000000000000000100000000000000000000000000000020548c028f166dddf19c7e1f2a375f8903f71cb3485f2486fe38e0970416239d14000000000000000100000000000000010000000000000020de5dde63dfc3f6e466bd10c5856bb6d41db0dcfdbb936ca408e97eafb31abf08000000000000003600000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000006000000000000000100000000000000010000000000000020bf6283471b192bbf6ba52c03d9ce015b948c3ebd241df636ade54e35bf43275d0000000000000001000000000000000000000000000000207dd5aa8d2530d93caa316187599833eef056664343e51529c749c5a10f13b7660000000000000001000000000000000000000000000000203be60965851fc1e4596093328467449598768ec1d49268b3921cefeaab4f4a33000000000000000100000000000000010000000000000020048fe6e1b15d94b5b8aeab46ca6cee0e1bf40001aa53c4393cd2f52420374103000000000000000100000000000000000000000000000020c936d6a17c00b11114c73c6012099a95c04441d0574b09355ce26ada9acffc090000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea000000000000000160000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a8300000000000000050000000000000001000000000000000100000000000000209b089b935479579f2a97305be7a5fb02fce12e4b9d47a3c843b8c9929a042734000000000000000100000000000000000000000000000020d018dd1db731e67338329bac46601b58403782c9fdb4446dc7c71feb4961a44f000000000000000100000000000000000000000000000020d8d12539a28b8d2e1e502961a0aa12b28af30d40efba974ef85d6b5f8394d2c10000000000000001000000000000000100000000000000204cf0f4f16f86c0a8d1aaeadcca2981a4866214b444f6f856ff41a8c1baa48bc20000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000001c00000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb00000000000000060000000000000001000000000000000100000000000000200704d795375b5a2cd6fff1f48c3308f9d352fa8427fe51431a1ae61abb222a700000000000000001000000000000000100000000000000200e8b98f92fcefc7cf149991197ab71468d96e879012eea8a4d9187f1714d656e000000000000000100000000000000000000000000000020e2112783e8dafb034d198bcc16dc02add0cc269a302ecc95594cc88071121f6e000000000000000100000000000000000000000000000020b63e3c8ab8dd78a0e05d556971048f310d542f94a21bad8c2fdef3950d991cd100000000000000010000000000000000000000000000002031e28da72f5e0c50cfb866400335e08c4532bf8c1fe7f55ed3cea803a23d3a04000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a22000000000000001c0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a83000000000000000500000000000000010000000000000001000000000000002060e9f14c59dde9b23e3f0082d7923aa1ab1220aeaa2d72c2cac5e25f85bcf744000000000000000100000000000000010000000000000020605c3b689d3ef306df03a81adecd17c90530b321c29fb38bb48e1e2f946a0d29000000000000000100000000000000000000000000000020f856d0214bc2760574876c2950446833614710df8efcacfa25ced5a5748eec36000000000000000100000000000000000000000000000020391fbd1fcdaa6f8c54238c393418e55145a4219a27d87cc8eb1b8f44bfa251ed0000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000000100000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb00000000000000060000000000000001000000000000000000000000000000202fe10ebce964b2e90b37d79c732c3ac57fc4ecf66442c2b1f03969626b25cece000000000000000100000000000000010000000000000020f7841346a6981b703fb8d4e067544d396090c02f56561f8c99caf9f260b74b5e00000000000000010000000000000001000000000000002099a3ad4654fa1f827c2e2fcc334cc7708db10f7b09ba8147f370d5b0fddbbd5b000000000000000100000000000000010000000000000020ce7a4b6c2268f96cc47cbcd6a9f6fa92df7d2f06ea56db9a682530cf75f365e400000000000000010000000000000001000000000000002091d104f48591eedca3134cbc2dee83273b96d0013e1fcc9ec5513a468d9dc665000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a2200000000000000010000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a830000000000000005000000000000000100000000000000000000000000000020e0aa28ba4360319ac2165e1230048b5c9330c581898ce5348f4035705223f364000000000000000100000000000000010000000000000020d1eae510f430b213e92d473baf3119639dd5fb2069ddb6c905dee2cdd8e749cc000000000000000100000000000000010000000000000020918d11dfc06f8e62889d24d598ff01c0c48184943b9b628e8b9ff615f6c7a0b4000000000000000100000000000000010000000000000020aaa2bb1d25834f13d7ba48ed7f635247a1c62b02e29899bea646aaac749de56b000000000000000100000000000000010000000000000020de5dde63dfc3f6e466bd10c5856bb6d41db0dcfdbb936ca408e97eafb31abf08000000000000001b00000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000006000000000000000100000000000000000000000000000020b27c6894ed8fdd4dfd24c6e74302133a92c563a46559d157dbba5cc111ba1e45000000000000000100000000000000000000000000000020e8800c3b12103f7baca525762dc6c6ab39e353edb8d4a91818c74f26252f91ff000000000000000100000000000000010000000000000020148badf58a4a39212166da12bcb05e4aa25d68467c3f16f84d99b4dea0326d24000000000000000100000000000000000000000000000020b63e3c8ab8dd78a0e05d556971048f310d542f94a21bad8c2fdef3950d991cd100000000000000010000000000000000000000000000002031e28da72f5e0c50cfb866400335e08c4532bf8c1fe7f55ed3cea803a23d3a04000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a22000000000000001b0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a8300000000000000050000000000000001000000000000000000000000000000207466ea22a3e76c2dacecdecae9424bbdfe94ba8cb33a526200d226e4614f1d58000000000000000100000000000000000000000000000020fc0138ea57ddae922a4c26719ad5766149f8a9085c0dc238ae06cb20cccadf9e0000000000000001000000000000000100000000000000201662783cef0484008223d0d8042a91d0a2306f72dee6e5230b53a3a0a8726981000000000000000100000000000000000000000000000020391fbd1fcdaa6f8c54238c393418e55145a4219a27d87cc8eb1b8f44bfa251ed0000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000000b00000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000006000000000000000100000000000000000000000000000020ed28b13aa315aac6ef7f826f41237ee6c09a6b3321b6214005e326497fd9c451000000000000000100000000000000000000000000000020d9c6420af4ba3251b8a11fd7e2e555209a96250eeb6f482b4eb1970a86b6d455000000000000000100000000000000010000000000000020caf9ab1ae5f1864e6173741419989d4f58e6d02c9f415cdae9e4023e876c2ea8000000000000000100000000000000000000000000000020a1d360eac3fc5fbf8ba6d2d676c62da70a542ed0bb1d71803a49f6f78904448e00000000000000010000000000000001000000000000002091d104f48591eedca3134cbc2dee83273b96d0013e1fcc9ec5513a468d9dc665000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a22000000000000000b0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a830000000000000005000000000000000100000000000000000000000000000020b2a091c34470143f94dc2c4430b4cb80c9f0abc3e150ddecf7eb1c593185c47b0000000000000001000000000000000000000000000000209fdede93cf458de343777e7fc253adbc3e5bbbe3ef058904c9b4211bd0e2f1e1000000000000000100000000000000010000000000000020c526543aa17911e46a468844b21614361d085130359aed7e61f2d8cf0fd0aebf000000000000000100000000000000000000000000000020548c028f166dddf19c7e1f2a375f8903f71cb3485f2486fe38e0970416239d14000000000000000100000000000000010000000000000020de5dde63dfc3f6e466bd10c5856bb6d41db0dcfdbb936ca408e97eafb31abf08000000000000001700000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb000000000000000600000000000000010000000000000000000000000000002092483be61616ee1aa2e2bd19ed7c98869bb49ef93d14c7295b6c60cda86149870000000000000001000000000000000000000000000000202cd39244e27f043774a6e8ccee8a4491d4fb632b137f36ab2e985c1b6d7bfb000000000000000001000000000000000000000000000000200e646c5068e1a4a1202a81fa3802d77e38cb65275c80a6c1c32e11c077f8fc75000000000000000100000000000000010000000000000020c50f746a66cbe3f7c453b7db7946b7c68579bb62222abd7d3fee65dc6b8fe16100000000000000010000000000000000000000000000002031e28da72f5e0c50cfb866400335e08c4532bf8c1fe7f55ed3cea803a23d3a04000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a2200000000000000170000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a830000000000000005000000000000000100000000000000000000000000000020487e532681ea17a4a51c9274f60911a3cd630848d363b410d720e90eb40a42f8000000000000000100000000000000000000000000000020d018dd1db731e67338329bac46601b58403782c9fdb4446dc7c71feb4961a44f000000000000000100000000000000000000000000000020d8d12539a28b8d2e1e502961a0aa12b28af30d40efba974ef85d6b5f8394d2c10000000000000001000000000000000100000000000000204cf0f4f16f86c0a8d1aaeadcca2981a4866214b444f6f856ff41a8c1baa48bc20000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000000400000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb00000000000000060000000000000001000000000000000100000000000000206c442da8a274cf5f7dd82c58cfff0c0dc1d7ba18df2523e250b50856e4bd29b1000000000000000100000000000000010000000000000020123a176214e18ad49f00cfe98ee962cdb2b617c58d77c4c61f9f70f369571f000000000000000001000000000000000000000000000000205d13caf204c8e1a9fee074c24756a8fd8970ada5757fc08eec68e673b7b9b927000000000000000100000000000000010000000000000020ce7a4b6c2268f96cc47cbcd6a9f6fa92df7d2f06ea56db9a682530cf75f365e400000000000000010000000000000001000000000000002091d104f48591eedca3134cbc2dee83273b96d0013e1fcc9ec5513a468d9dc665000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a2200000000000000040000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a83000000000000000500000000000000010000000000000001000000000000002010c2a49374f4c2e06a410295eeb89a82dbfcf62ecf4dc02369ffea35abdea03a0000000000000001000000000000000100000000000000209874768faef252a16a36b859809b1dcca738f0b57c48e09caf1d97a44f8505d5000000000000000100000000000000000000000000000020fecd39ef89a84774e39ebf1b07b9702b210a51d1877e9568ffce398ff357f8f4000000000000000100000000000000010000000000000020aaa2bb1d25834f13d7ba48ed7f635247a1c62b02e29899bea646aaac749de56b000000000000000100000000000000010000000000000020de5dde63dfc3f6e466bd10c5856bb6d41db0dcfdbb936ca408e97eafb31abf08000000000000001600000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000006000000000000000100000000000000010000000000000020f229c26caf3739b14f38ca4d1e9532cf5f845ce98e91b48a4d4125e3a9465af30000000000000001000000000000000000000000000000202cd39244e27f043774a6e8ccee8a4491d4fb632b137f36ab2e985c1b6d7bfb000000000000000001000000000000000000000000000000200e646c5068e1a4a1202a81fa3802d77e38cb65275c80a6c1c32e11c077f8fc75000000000000000100000000000000010000000000000020c50f746a66cbe3f7c453b7db7946b7c68579bb62222abd7d3fee65dc6b8fe16100000000000000010000000000000000000000000000002031e28da72f5e0c50cfb866400335e08c4532bf8c1fe7f55ed3cea803a23d3a04000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a2200000000000000160000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a8300000000000000050000000000000001000000000000000100000000000000209b089b935479579f2a97305be7a5fb02fce12e4b9d47a3c843b8c9929a042734000000000000000100000000000000000000000000000020d018dd1db731e67338329bac46601b58403782c9fdb4446dc7c71feb4961a44f000000000000000100000000000000000000000000000020d8d12539a28b8d2e1e502961a0aa12b28af30d40efba974ef85d6b5f8394d2c10000000000000001000000000000000100000000000000204cf0f4f16f86c0a8d1aaeadcca2981a4866214b444f6f856ff41a8c1baa48bc20000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000003800000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000006000000000000000100000000000000010000000000000020bc408186d1d26e6d684583666cd869e915f850c3fd2018129008a7c758ecbe8b00000000000000010000000000000001000000000000002079253c06a2e3906b50e659bcc62c44e93bbce186aaa0b3c4c7a8845c21ae4bd20000000000000001000000000000000100000000000000209bde0dfeabc1facd61a53fac487e482eddd902fdb8861fc72e69db538a96c4c8000000000000000100000000000000000000000000000020566193c8484b82d6aa4a68be3e17aaa200baeef660c4a5810395c167ce233d93000000000000000100000000000000000000000000000020c936d6a17c00b11114c73c6012099a95c04441d0574b09355ce26ada9acffc090000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea000000000000000180000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a830000000000000005000000000000000100000000000000010000000000000020aa7b977b09e8560c1a762ab6f1cbc78e67e5a3c4319341cbc39da87f9749066d000000000000000100000000000000010000000000000020453acbf91e876725932970ac250f0440edf4c948964445e4972e04528117ca9e0000000000000001000000000000000100000000000000201662783cef0484008223d0d8042a91d0a2306f72dee6e5230b53a3a0a8726981000000000000000100000000000000000000000000000020391fbd1fcdaa6f8c54238c393418e55145a4219a27d87cc8eb1b8f44bfa251ed0000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000003200000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000006000000000000000100000000000000010000000000000020776afe34bcf1e93203ac4bf74cb145ea2eea257a99253b2f4bec3914eb56e3330000000000000001000000000000000000000000000000200432ff91f01b86b294c2005e51576a2dec098cc5ca95e79a7f3a6d5b27d487fd00000000000000010000000000000001000000000000002040c489b2ee691ca1230488acd6234d66cd90125b482ff691c8b4c5e026735564000000000000000100000000000000010000000000000020048fe6e1b15d94b5b8aeab46ca6cee0e1bf40001aa53c4393cd2f52420374103000000000000000100000000000000000000000000000020c936d6a17c00b11114c73c6012099a95c04441d0574b09355ce26ada9acffc090000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea000000000000000120000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a830000000000000005000000000000000100000000000000010000000000000020e5d54508ddc290d1934af1a2d269fec0b07ab289a31fb4223bfc35af17db6d860000000000000001000000000000000000000000000000202c62936b14559e1cc8a3ea0c4cf738e7dcda733cedcee96e948b9c3bceb0a095000000000000000100000000000000010000000000000020422cd668d3f30526fa9bac414d4ecf51571bcfd19f9f2008814b39a5916e94940000000000000001000000000000000100000000000000204cf0f4f16f86c0a8d1aaeadcca2981a4866214b444f6f856ff41a8c1baa48bc20000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000003400000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb00000000000000060000000000000001000000000000000100000000000000200e8cc09206c30aa7da9da90636a0224912121ed11c7794c72ba52c537e08a5d700000000000000010000000000000001000000000000002094fa7242185ff51623eb868b6a73f48d9bf83b57fd797029f3c1d3938a43e90d0000000000000001000000000000000000000000000000203be60965851fc1e4596093328467449598768ec1d49268b3921cefeaab4f4a33000000000000000100000000000000010000000000000020048fe6e1b15d94b5b8aeab46ca6cee0e1bf40001aa53c4393cd2f52420374103000000000000000100000000000000000000000000000020c936d6a17c00b11114c73c6012099a95c04441d0574b09355ce26ada9acffc090000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea000000000000000140000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a830000000000000005000000000000000100000000000000010000000000000020509174c004feb10be0dfb90af81a0d0d326e0b1256cee0e901bea677450aef6100000000000000010000000000000001000000000000002057e39904a86229fa19ef9b9a3afe69d81c802a846a435d4c34372bd40d456ce6000000000000000100000000000000000000000000000020d8d12539a28b8d2e1e502961a0aa12b28af30d40efba974ef85d6b5f8394d2c10000000000000001000000000000000100000000000000204cf0f4f16f86c0a8d1aaeadcca2981a4866214b444f6f856ff41a8c1baa48bc20000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000001300000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000006000000000000000100000000000000000000000000000020e028834fc970b6f1b0f6506bb980e898792d5a969555d226e3c992ccfcd09aa6000000000000000100000000000000000000000000000020200d1c08555fab6e6be9537c843e1d7c5e1c44346b1776c96b76719a0c7c347a0000000000000001000000000000000100000000000000206d4af71c6daf81e696b185d99dc3ccf4ad6fb721362ffa046a3bb83565121789000000000000000100000000000000010000000000000020c50f746a66cbe3f7c453b7db7946b7c68579bb62222abd7d3fee65dc6b8fe16100000000000000010000000000000000000000000000002031e28da72f5e0c50cfb866400335e08c4532bf8c1fe7f55ed3cea803a23d3a04000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a2200000000000000130000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a8300000000000000050000000000000001000000000000000000000000000000202fba7e831ec7fd9817e72cbd63a1599b696bc74a0fccda9eda93040fb33d278d0000000000000001000000000000000000000000000000202c62936b14559e1cc8a3ea0c4cf738e7dcda733cedcee96e948b9c3bceb0a095000000000000000100000000000000010000000000000020422cd668d3f30526fa9bac414d4ecf51571bcfd19f9f2008814b39a5916e94940000000000000001000000000000000100000000000000204cf0f4f16f86c0a8d1aaeadcca2981a4866214b444f6f856ff41a8c1baa48bc20000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000003600000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000006000000000000000100000000000000010000000000000020bf6283471b192bbf6ba52c03d9ce015b948c3ebd241df636ade54e35bf43275d0000000000000001000000000000000000000000000000207dd5aa8d2530d93caa316187599833eef056664343e51529c749c5a10f13b7660000000000000001000000000000000000000000000000203be60965851fc1e4596093328467449598768ec1d49268b3921cefeaab4f4a33000000000000000100000000000000010000000000000020048fe6e1b15d94b5b8aeab46ca6cee0e1bf40001aa53c4393cd2f52420374103000000000000000100000000000000000000000000000020c936d6a17c00b11114c73c6012099a95c04441d0574b09355ce26ada9acffc090000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea000000000000000160000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a8300000000000000050000000000000001000000000000000100000000000000209b089b935479579f2a97305be7a5fb02fce12e4b9d47a3c843b8c9929a042734000000000000000100000000000000000000000000000020d018dd1db731e67338329bac46601b58403782c9fdb4446dc7c71feb4961a44f000000000000000100000000000000000000000000000020d8d12539a28b8d2e1e502961a0aa12b28af30d40efba974ef85d6b5f8394d2c10000000000000001000000000000000100000000000000204cf0f4f16f86c0a8d1aaeadcca2981a4866214b444f6f856ff41a8c1baa48bc20000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000000c00000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb00000000000000060000000000000001000000000000000100000000000000205700fbcccba4d45a3a1691f341417e15efac967ac08774e7df0569dcaa404b9f000000000000000100000000000000010000000000000020b5d8028192b06d850cbb31980d3b26a26176308c663782b22dc1755dfb0855a9000000000000000100000000000000000000000000000020d9180fd695f770b896cd2047f04677b62d0f486e33a9baa1b371715cc9c62cc1000000000000000100000000000000000000000000000020a1d360eac3fc5fbf8ba6d2d676c62da70a542ed0bb1d71803a49f6f78904448e00000000000000010000000000000001000000000000002091d104f48591eedca3134cbc2dee83273b96d0013e1fcc9ec5513a468d9dc665000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a22000000000000000c0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a8300000000000000050000000000000001000000000000000100000000000000202c8ca1ff5b3444e7aa249afd027aa4c29afe47721e755864ea86efba513b0f7d0000000000000001000000000000000100000000000000209df944cf495d6d91667567e49d1e9358a853566bb86f77ebb55d2da307d4185f0000000000000001000000000000000000000000000000209a559eb88d8d4c28b5e2655e113eb756e9f0ff0aae1bf5684d53451ee05e6fee000000000000000100000000000000000000000000000020548c028f166dddf19c7e1f2a375f8903f71cb3485f2486fe38e0970416239d14000000000000000100000000000000010000000000000020de5dde63dfc3f6e466bd10c5856bb6d41db0dcfdbb936ca408e97eafb31abf08000000000000001b00000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000006000000000000000100000000000000000000000000000020b27c6894ed8fdd4dfd24c6e74302133a92c563a46559d157dbba5cc111ba1e45000000000000000100000000000000000000000000000020e8800c3b12103f7baca525762dc6c6ab39e353edb8d4a91818c74f26252f91ff000000000000000100000000000000010000000000000020148badf58a4a39212166da12bcb05e4aa25d68467c3f16f84d99b4dea0326d24000000000000000100000000000000000000000000000020b63e3c8ab8dd78a0e05d556971048f310d542f94a21bad8c2fdef3950d991cd100000000000000010000000000000000000000000000002031e28da72f5e0c50cfb866400335e08c4532bf8c1fe7f55ed3cea803a23d3a04000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a22000000000000001b0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a8300000000000000050000000000000001000000000000000000000000000000207466ea22a3e76c2dacecdecae9424bbdfe94ba8cb33a526200d226e4614f1d58000000000000000100000000000000000000000000000020fc0138ea57ddae922a4c26719ad5766149f8a9085c0dc238ae06cb20cccadf9e0000000000000001000000000000000100000000000000201662783cef0484008223d0d8042a91d0a2306f72dee6e5230b53a3a0a8726981000000000000000100000000000000000000000000000020391fbd1fcdaa6f8c54238c393418e55145a4219a27d87cc8eb1b8f44bfa251ed0000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000002200000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb00000000000000060000000000000001000000000000000100000000000000206cb5d4fcdd7ce95f327299647a25a24509b088b28b34d57f586d1d03e3aa5b940000000000000001000000000000000000000000000000208a55f47ba8ddc6e794ad7627b45c863327fa4286a6511e22fc90ceab2f1f3b54000000000000000100000000000000010000000000000020876c24d27ee448e6f553d3a64fc97b0420f70f50ddfc57c198e223b97c661cf60000000000000001000000000000000100000000000000200457e841c87d4814dff80cd2c79138748eb52c28f362e8bf4b72964d5d1c75c300000000000000010000000000000001000000000000002065ff132f45c9c53e731bb529fae6dd22f22474adffe354d1ff7976e50904c1d40000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea000000000000000020000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a830000000000000005000000000000000100000000000000010000000000000020da64a01de7fb9003785b6c605b33c6d2755b5fd4b3b38f40f5b0e9b649a862a3000000000000000100000000000000000000000000000020ab2bad79d423c8d5d8bcde4cea0a1726c92a9f3e39443b1fd89d499c4430d6a8000000000000000100000000000000010000000000000020918d11dfc06f8e62889d24d598ff01c0c48184943b9b628e8b9ff615f6c7a0b4000000000000000100000000000000010000000000000020aaa2bb1d25834f13d7ba48ed7f635247a1c62b02e29899bea646aaac749de56b000000000000000100000000000000010000000000000020de5dde63dfc3f6e466bd10c5856bb6d41db0dcfdbb936ca408e97eafb31abf08000000000000000700000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb00000000000000060000000000000001000000000000000000000000000000206476e1fa30445a81616fae9774c4dce6d54f16eacdacc359286cc29dd8c41e0c0000000000000001000000000000000000000000000000203c0f081650865ca548a55fad61332af0f2080996bfd12a91ea010e6e7fe8439e0000000000000001000000000000000000000000000000205d13caf204c8e1a9fee074c24756a8fd8970ada5757fc08eec68e673b7b9b927000000000000000100000000000000010000000000000020ce7a4b6c2268f96cc47cbcd6a9f6fa92df7d2f06ea56db9a682530cf75f365e400000000000000010000000000000001000000000000002091d104f48591eedca3134cbc2dee83273b96d0013e1fcc9ec5513a468d9dc665000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a2200000000000000070000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a8300000000000000050000000000000001000000000000000000000000000000208adfb85cf98a5b2bcf9255423ef273e3765dbccda4bc1626812930d06a8794740000000000000001000000000000000000000000000000206dea52fbe6fcf6e4f01b42912ad4e2bfb31c9637b883841298dc852043756e55000000000000000100000000000000000000000000000020fecd39ef89a84774e39ebf1b07b9702b210a51d1877e9568ffce398ff357f8f4000000000000000100000000000000010000000000000020aaa2bb1d25834f13d7ba48ed7f635247a1c62b02e29899bea646aaac749de56b000000000000000100000000000000010000000000000020de5dde63dfc3f6e466bd10c5856bb6d41db0dcfdbb936ca408e97eafb31abf08000000000000001a00000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb00000000000000060000000000000001000000000000000100000000000000205a1b5910f312d4608a3c659658a5813375927117518986b58880ce34c493d16e000000000000000100000000000000000000000000000020e8800c3b12103f7baca525762dc6c6ab39e353edb8d4a91818c74f26252f91ff000000000000000100000000000000010000000000000020148badf58a4a39212166da12bcb05e4aa25d68467c3f16f84d99b4dea0326d24000000000000000100000000000000000000000000000020b63e3c8ab8dd78a0e05d556971048f310d542f94a21bad8c2fdef3950d991cd100000000000000010000000000000000000000000000002031e28da72f5e0c50cfb866400335e08c4532bf8c1fe7f55ed3cea803a23d3a04000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a22000000000000001a0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a83000000000000000500000000000000010000000000000001000000000000002095358652dc9b7e806741bd7a1a28ef5823bf88801fd6df29ebbfe532f9b20b61000000000000000100000000000000000000000000000020fc0138ea57ddae922a4c26719ad5766149f8a9085c0dc238ae06cb20cccadf9e0000000000000001000000000000000100000000000000201662783cef0484008223d0d8042a91d0a2306f72dee6e5230b53a3a0a8726981000000000000000100000000000000000000000000000020391fbd1fcdaa6f8c54238c393418e55145a4219a27d87cc8eb1b8f44bfa251ed0000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000003300000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000006000000000000000100000000000000000000000000000020223f524738e6680d29364e7805b7b897622499fa8a06b0a3d3e1dc338d1140c20000000000000001000000000000000000000000000000200432ff91f01b86b294c2005e51576a2dec098cc5ca95e79a7f3a6d5b27d487fd00000000000000010000000000000001000000000000002040c489b2ee691ca1230488acd6234d66cd90125b482ff691c8b4c5e026735564000000000000000100000000000000010000000000000020048fe6e1b15d94b5b8aeab46ca6cee0e1bf40001aa53c4393cd2f52420374103000000000000000100000000000000000000000000000020c936d6a17c00b11114c73c6012099a95c04441d0574b09355ce26ada9acffc090000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea000000000000000130000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a8300000000000000050000000000000001000000000000000000000000000000202fba7e831ec7fd9817e72cbd63a1599b696bc74a0fccda9eda93040fb33d278d0000000000000001000000000000000000000000000000202c62936b14559e1cc8a3ea0c4cf738e7dcda733cedcee96e948b9c3bceb0a095000000000000000100000000000000010000000000000020422cd668d3f30526fa9bac414d4ecf51571bcfd19f9f2008814b39a5916e94940000000000000001000000000000000100000000000000204cf0f4f16f86c0a8d1aaeadcca2981a4866214b444f6f856ff41a8c1baa48bc20000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000003700000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb00000000000000060000000000000001000000000000000000000000000000206c50fbe64bd158e21d3625fb581b1bbfc320ca9e8263d132c6f781fd6868d0770000000000000001000000000000000000000000000000207dd5aa8d2530d93caa316187599833eef056664343e51529c749c5a10f13b7660000000000000001000000000000000000000000000000203be60965851fc1e4596093328467449598768ec1d49268b3921cefeaab4f4a33000000000000000100000000000000010000000000000020048fe6e1b15d94b5b8aeab46ca6cee0e1bf40001aa53c4393cd2f52420374103000000000000000100000000000000000000000000000020c936d6a17c00b11114c73c6012099a95c04441d0574b09355ce26ada9acffc090000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea000000000000000170000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a830000000000000005000000000000000100000000000000000000000000000020487e532681ea17a4a51c9274f60911a3cd630848d363b410d720e90eb40a42f8000000000000000100000000000000000000000000000020d018dd1db731e67338329bac46601b58403782c9fdb4446dc7c71feb4961a44f000000000000000100000000000000000000000000000020d8d12539a28b8d2e1e502961a0aa12b28af30d40efba974ef85d6b5f8394d2c10000000000000001000000000000000100000000000000204cf0f4f16f86c0a8d1aaeadcca2981a4866214b444f6f856ff41a8c1baa48bc20000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000003900000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb00000000000000060000000000000001000000000000000000000000000000208a4c86ff673fa0d8b0560733cc7ade98e9b37666966f521c67da39fea25d659400000000000000010000000000000001000000000000002079253c06a2e3906b50e659bcc62c44e93bbce186aaa0b3c4c7a8845c21ae4bd20000000000000001000000000000000100000000000000209bde0dfeabc1facd61a53fac487e482eddd902fdb8861fc72e69db538a96c4c8000000000000000100000000000000000000000000000020566193c8484b82d6aa4a68be3e17aaa200baeef660c4a5810395c167ce233d93000000000000000100000000000000000000000000000020c936d6a17c00b11114c73c6012099a95c04441d0574b09355ce26ada9acffc090000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea000000000000000190000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a830000000000000005000000000000000100000000000000000000000000000020927e61219e0bf8a0b58b12e56c72a79a605d529e953f94aeeec188619b4538e5000000000000000100000000000000010000000000000020453acbf91e876725932970ac250f0440edf4c948964445e4972e04528117ca9e0000000000000001000000000000000100000000000000201662783cef0484008223d0d8042a91d0a2306f72dee6e5230b53a3a0a8726981000000000000000100000000000000000000000000000020391fbd1fcdaa6f8c54238c393418e55145a4219a27d87cc8eb1b8f44bfa251ed0000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000001e00000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000006000000000000000100000000000000010000000000000020cc4aba6e5ac1466693096a9eb3b54131483ca932d95852b7ba8d25fecf72ecaf00000000000000010000000000000000000000000000002045ade049de8b0bffcaebd811c35cf1aec9b8bfa521ea2a9c2e3a1dc32ea21b14000000000000000100000000000000000000000000000020e2112783e8dafb034d198bcc16dc02add0cc269a302ecc95594cc88071121f6e000000000000000100000000000000000000000000000020b63e3c8ab8dd78a0e05d556971048f310d542f94a21bad8c2fdef3950d991cd100000000000000010000000000000000000000000000002031e28da72f5e0c50cfb866400335e08c4532bf8c1fe7f55ed3cea803a23d3a04000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a22000000000000001e0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a8300000000000000050000000000000001000000000000000100000000000000208688ac43c01e5e0603fb3111b3f3d598dc3b54b4bb418ea09557cc6ea45c7d93000000000000000100000000000000000000000000000020e56cc72928458e3282ead7985ca53ad0909d163c29e970c89c663e9f4b2c162e000000000000000100000000000000000000000000000020f856d0214bc2760574876c2950446833614710df8efcacfa25ced5a5748eec36000000000000000100000000000000000000000000000020391fbd1fcdaa6f8c54238c393418e55145a4219a27d87cc8eb1b8f44bfa251ed0000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000002600000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000006000000000000000100000000000000010000000000000020d909e57fe17ce06b8fc692b02f2eb44c10d67f4e597b033e607d25bcdd8f468b0000000000000001000000000000000000000000000000205062e63a4a79dfc6d2a73398e4be950d7a7f8384d7101d2c9731c7734e43c6b6000000000000000100000000000000000000000000000020b49876d24a4fbfbec6e2d62660e2a08e53f90eaee4aed0a3a4b4a7eb466fb7110000000000000001000000000000000100000000000000200457e841c87d4814dff80cd2c79138748eb52c28f362e8bf4b72964d5d1c75c300000000000000010000000000000001000000000000002065ff132f45c9c53e731bb529fae6dd22f22474adffe354d1ff7976e50904c1d40000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea000000000000000060000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a8300000000000000050000000000000001000000000000000100000000000000208455ca787314ac1dd4b2ba529ed6b0f4c3883f9833e93fd3a4448d2f4a2984b30000000000000001000000000000000000000000000000206dea52fbe6fcf6e4f01b42912ad4e2bfb31c9637b883841298dc852043756e55000000000000000100000000000000000000000000000020fecd39ef89a84774e39ebf1b07b9702b210a51d1877e9568ffce398ff357f8f4000000000000000100000000000000010000000000000020aaa2bb1d25834f13d7ba48ed7f635247a1c62b02e29899bea646aaac749de56b000000000000000100000000000000010000000000000020de5dde63dfc3f6e466bd10c5856bb6d41db0dcfdbb936ca408e97eafb31abf08000000000000001a00000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb00000000000000060000000000000001000000000000000100000000000000205a1b5910f312d4608a3c659658a5813375927117518986b58880ce34c493d16e000000000000000100000000000000000000000000000020e8800c3b12103f7baca525762dc6c6ab39e353edb8d4a91818c74f26252f91ff000000000000000100000000000000010000000000000020148badf58a4a39212166da12bcb05e4aa25d68467c3f16f84d99b4dea0326d24000000000000000100000000000000000000000000000020b63e3c8ab8dd78a0e05d556971048f310d542f94a21bad8c2fdef3950d991cd100000000000000010000000000000000000000000000002031e28da72f5e0c50cfb866400335e08c4532bf8c1fe7f55ed3cea803a23d3a04000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a22000000000000001a0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a83000000000000000500000000000000010000000000000001000000000000002095358652dc9b7e806741bd7a1a28ef5823bf88801fd6df29ebbfe532f9b20b61000000000000000100000000000000000000000000000020fc0138ea57ddae922a4c26719ad5766149f8a9085c0dc238ae06cb20cccadf9e0000000000000001000000000000000100000000000000201662783cef0484008223d0d8042a91d0a2306f72dee6e5230b53a3a0a8726981000000000000000100000000000000000000000000000020391fbd1fcdaa6f8c54238c393418e55145a4219a27d87cc8eb1b8f44bfa251ed0000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000003900000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb00000000000000060000000000000001000000000000000000000000000000208a4c86ff673fa0d8b0560733cc7ade98e9b37666966f521c67da39fea25d659400000000000000010000000000000001000000000000002079253c06a2e3906b50e659bcc62c44e93bbce186aaa0b3c4c7a8845c21ae4bd20000000000000001000000000000000100000000000000209bde0dfeabc1facd61a53fac487e482eddd902fdb8861fc72e69db538a96c4c8000000000000000100000000000000000000000000000020566193c8484b82d6aa4a68be3e17aaa200baeef660c4a5810395c167ce233d93000000000000000100000000000000000000000000000020c936d6a17c00b11114c73c6012099a95c04441d0574b09355ce26ada9acffc090000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea000000000000000190000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a830000000000000005000000000000000100000000000000000000000000000020927e61219e0bf8a0b58b12e56c72a79a605d529e953f94aeeec188619b4538e5000000000000000100000000000000010000000000000020453acbf91e876725932970ac250f0440edf4c948964445e4972e04528117ca9e0000000000000001000000000000000100000000000000201662783cef0484008223d0d8042a91d0a2306f72dee6e5230b53a3a0a8726981000000000000000100000000000000000000000000000020391fbd1fcdaa6f8c54238c393418e55145a4219a27d87cc8eb1b8f44bfa251ed0000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000003f00000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000006000000000000000100000000000000000000000000000020ab7c5b2e2294d8a592aca56e3c94c9933d3733765b88fa96a8304e361663c4e6000000000000000100000000000000000000000000000020f3c3f3666ad5d60b533257c31f351d3af43504faaccfa329606cefcbf96d320d00000000000000010000000000000000000000000000002004178e56005cc05e23c4caaaa7171d16a4f44c8b3ca07798f9d3abda2c84fa99000000000000000100000000000000000000000000000020566193c8484b82d6aa4a68be3e17aaa200baeef660c4a5810395c167ce233d93000000000000000100000000000000000000000000000020c936d6a17c00b11114c73c6012099a95c04441d0574b09355ce26ada9acffc090000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea0000000000000001f0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a830000000000000005000000000000000100000000000000000000000000000020628d65b290315f2142b372ddc6ec9b91b92fd4e530394d9a7aea6434ad7a5c37000000000000000100000000000000000000000000000020e56cc72928458e3282ead7985ca53ad0909d163c29e970c89c663e9f4b2c162e000000000000000100000000000000000000000000000020f856d0214bc2760574876c2950446833614710df8efcacfa25ced5a5748eec36000000000000000100000000000000000000000000000020391fbd1fcdaa6f8c54238c393418e55145a4219a27d87cc8eb1b8f44bfa251ed0000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000003e00000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000006000000000000000100000000000000010000000000000020982efe943de905beaa23bc168acb1904460e2711ab3b5509791f76084cdfd1a0000000000000000100000000000000000000000000000020f3c3f3666ad5d60b533257c31f351d3af43504faaccfa329606cefcbf96d320d00000000000000010000000000000000000000000000002004178e56005cc05e23c4caaaa7171d16a4f44c8b3ca07798f9d3abda2c84fa99000000000000000100000000000000000000000000000020566193c8484b82d6aa4a68be3e17aaa200baeef660c4a5810395c167ce233d93000000000000000100000000000000000000000000000020c936d6a17c00b11114c73c6012099a95c04441d0574b09355ce26ada9acffc090000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea0000000000000001e0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a8300000000000000050000000000000001000000000000000100000000000000208688ac43c01e5e0603fb3111b3f3d598dc3b54b4bb418ea09557cc6ea45c7d93000000000000000100000000000000000000000000000020e56cc72928458e3282ead7985ca53ad0909d163c29e970c89c663e9f4b2c162e000000000000000100000000000000000000000000000020f856d0214bc2760574876c2950446833614710df8efcacfa25ced5a5748eec36000000000000000100000000000000000000000000000020391fbd1fcdaa6f8c54238c393418e55145a4219a27d87cc8eb1b8f44bfa251ed0000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000001700000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb000000000000000600000000000000010000000000000000000000000000002092483be61616ee1aa2e2bd19ed7c98869bb49ef93d14c7295b6c60cda86149870000000000000001000000000000000000000000000000202cd39244e27f043774a6e8ccee8a4491d4fb632b137f36ab2e985c1b6d7bfb000000000000000001000000000000000000000000000000200e646c5068e1a4a1202a81fa3802d77e38cb65275c80a6c1c32e11c077f8fc75000000000000000100000000000000010000000000000020c50f746a66cbe3f7c453b7db7946b7c68579bb62222abd7d3fee65dc6b8fe16100000000000000010000000000000000000000000000002031e28da72f5e0c50cfb866400335e08c4532bf8c1fe7f55ed3cea803a23d3a04000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a2200000000000000170000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a830000000000000005000000000000000100000000000000000000000000000020487e532681ea17a4a51c9274f60911a3cd630848d363b410d720e90eb40a42f8000000000000000100000000000000000000000000000020d018dd1db731e67338329bac46601b58403782c9fdb4446dc7c71feb4961a44f000000000000000100000000000000000000000000000020d8d12539a28b8d2e1e502961a0aa12b28af30d40efba974ef85d6b5f8394d2c10000000000000001000000000000000100000000000000204cf0f4f16f86c0a8d1aaeadcca2981a4866214b444f6f856ff41a8c1baa48bc20000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000000400000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb00000000000000060000000000000001000000000000000100000000000000206c442da8a274cf5f7dd82c58cfff0c0dc1d7ba18df2523e250b50856e4bd29b1000000000000000100000000000000010000000000000020123a176214e18ad49f00cfe98ee962cdb2b617c58d77c4c61f9f70f369571f000000000000000001000000000000000000000000000000205d13caf204c8e1a9fee074c24756a8fd8970ada5757fc08eec68e673b7b9b927000000000000000100000000000000010000000000000020ce7a4b6c2268f96cc47cbcd6a9f6fa92df7d2f06ea56db9a682530cf75f365e400000000000000010000000000000001000000000000002091d104f48591eedca3134cbc2dee83273b96d0013e1fcc9ec5513a468d9dc665000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a2200000000000000040000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a83000000000000000500000000000000010000000000000001000000000000002010c2a49374f4c2e06a410295eeb89a82dbfcf62ecf4dc02369ffea35abdea03a0000000000000001000000000000000100000000000000209874768faef252a16a36b859809b1dcca738f0b57c48e09caf1d97a44f8505d5000000000000000100000000000000000000000000000020fecd39ef89a84774e39ebf1b07b9702b210a51d1877e9568ffce398ff357f8f4000000000000000100000000000000010000000000000020aaa2bb1d25834f13d7ba48ed7f635247a1c62b02e29899bea646aaac749de56b000000000000000100000000000000010000000000000020de5dde63dfc3f6e466bd10c5856bb6d41db0dcfdbb936ca408e97eafb31abf08000000000000003100000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000006000000000000000100000000000000000000000000000020c68dfd32ce520a1722b89bb00ddc5147c281ca204f713b0bb4276f93240fd29b000000000000000100000000000000010000000000000020ec677a347dc4cda65e161d40b370cb69adbcc0a7cd9a05711ff1b37d6c0f519a00000000000000010000000000000001000000000000002040c489b2ee691ca1230488acd6234d66cd90125b482ff691c8b4c5e026735564000000000000000100000000000000010000000000000020048fe6e1b15d94b5b8aeab46ca6cee0e1bf40001aa53c4393cd2f52420374103000000000000000100000000000000000000000000000020c936d6a17c00b11114c73c6012099a95c04441d0574b09355ce26ada9acffc090000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea000000000000000110000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a8300000000000000050000000000000001000000000000000000000000000000209a09596a2a745c140be898b552b00cf6de31afa15adb60e166812036bef4c07000000000000000010000000000000001000000000000002081d8969a4ef844eba11068ca8e8cfed874e790e9b45c5d7386acfecd72038c04000000000000000100000000000000010000000000000020422cd668d3f30526fa9bac414d4ecf51571bcfd19f9f2008814b39a5916e94940000000000000001000000000000000100000000000000204cf0f4f16f86c0a8d1aaeadcca2981a4866214b444f6f856ff41a8c1baa48bc20000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000003800000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000006000000000000000100000000000000010000000000000020bc408186d1d26e6d684583666cd869e915f850c3fd2018129008a7c758ecbe8b00000000000000010000000000000001000000000000002079253c06a2e3906b50e659bcc62c44e93bbce186aaa0b3c4c7a8845c21ae4bd20000000000000001000000000000000100000000000000209bde0dfeabc1facd61a53fac487e482eddd902fdb8861fc72e69db538a96c4c8000000000000000100000000000000000000000000000020566193c8484b82d6aa4a68be3e17aaa200baeef660c4a5810395c167ce233d93000000000000000100000000000000000000000000000020c936d6a17c00b11114c73c6012099a95c04441d0574b09355ce26ada9acffc090000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea000000000000000180000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a830000000000000005000000000000000100000000000000010000000000000020aa7b977b09e8560c1a762ab6f1cbc78e67e5a3c4319341cbc39da87f9749066d000000000000000100000000000000010000000000000020453acbf91e876725932970ac250f0440edf4c948964445e4972e04528117ca9e0000000000000001000000000000000100000000000000201662783cef0484008223d0d8042a91d0a2306f72dee6e5230b53a3a0a8726981000000000000000100000000000000000000000000000020391fbd1fcdaa6f8c54238c393418e55145a4219a27d87cc8eb1b8f44bfa251ed0000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000003700000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb00000000000000060000000000000001000000000000000000000000000000206c50fbe64bd158e21d3625fb581b1bbfc320ca9e8263d132c6f781fd6868d0770000000000000001000000000000000000000000000000207dd5aa8d2530d93caa316187599833eef056664343e51529c749c5a10f13b7660000000000000001000000000000000000000000000000203be60965851fc1e4596093328467449598768ec1d49268b3921cefeaab4f4a33000000000000000100000000000000010000000000000020048fe6e1b15d94b5b8aeab46ca6cee0e1bf40001aa53c4393cd2f52420374103000000000000000100000000000000000000000000000020c936d6a17c00b11114c73c6012099a95c04441d0574b09355ce26ada9acffc090000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea000000000000000170000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a830000000000000005000000000000000100000000000000000000000000000020487e532681ea17a4a51c9274f60911a3cd630848d363b410d720e90eb40a42f8000000000000000100000000000000000000000000000020d018dd1db731e67338329bac46601b58403782c9fdb4446dc7c71feb4961a44f000000000000000100000000000000000000000000000020d8d12539a28b8d2e1e502961a0aa12b28af30d40efba974ef85d6b5f8394d2c10000000000000001000000000000000100000000000000204cf0f4f16f86c0a8d1aaeadcca2981a4866214b444f6f856ff41a8c1baa48bc20000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000000238d8c57ef38077cfb00256a30256b19cf408f43aae5c6fedc693ed5f4cb466c8136ed7791953a3ace00c96923aaccf8b76d1ff133a1c5a52520a66895a6fc51d455241d5 \ No newline at end of file diff --git a/deploy/modular-verifier.js b/deploy/modular-verifier.js new file mode 100644 index 0000000..5cae7d4 --- /dev/null +++ b/deploy/modular-verifier.js @@ -0,0 +1,70 @@ +const hre = require('hardhat') +const { getNamedAccounts } = hre +const fs = require('fs'); +const path = require('path'); +const losslessJSON = require('lossless-json'); + +function get_subfolders(dir) { + const files = fs.readdirSync(dir, { withFileTypes: true }); + const result = []; + + for (const file of files) { + if (file.isDirectory()) { + result.push(file.name); + } + } + return result; +} + +module.exports = async function() { + const {deployments, getNamedAccounts} = hre; + const {deploy} = deployments; + const {deployer, tokenOwner} = await getNamedAccounts(); + + + let circuits = get_subfolders("./contracts/modular"); + + for(k in circuits){ + let addrs = {}; +/* let libs = losslessJSON.parse(fs.readFileSync("./contracts/zkllvm/"+circuits[k]+"/linked_libs_list.json", 'utf8')); + let deployedLib = {} + for (let lib of libs){ + await deploy(lib, { + from: deployer, + log: true, + }); + deployedLib[lib] = (await hre.deployments.get(lib)).address + }*/ + commitment_contract = await deploy("modular_commitment_scheme_" + circuits[k], { + from: deployer, + libraries : [], //deployedLib, + log : true, + }); +/* + permutation_argument_contract = await deploy("modular_permutation_argument_" + circuits[k], { + from: deployer, + libraries : [], //deployedLib, + log : true, + }); +*/ + lookup_argument_contract = await deploy("modular_lookup_argument_" + circuits[k], { + from: deployer, + libraries : [], //deployedLib, + log : true, + }); + + gate_argument_contract = await deploy("modular_gate_argument_" + circuits[k], { + from: deployer, + libraries : [], //deployedLib, + log : true, + }); + + verifier_contract = await deploy("modular_verifier_" + circuits[k], { + from: deployer, + libraries : [], //deployedLib, + log : true, + }); + } +} + +module.exports.tags = ['ModularVerifierFixture']; diff --git a/hardhat.config.ts b/hardhat.config.ts index 0f303a4..2c8da25 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -6,6 +6,7 @@ require('hardhat-deploy-ethers'); require('hardhat-contract-sizer'); import './tasks/verify-zkllvm-output' +import './tasks/modular-test' const SEPOLIA_PRIVATE_KEY="SEPOLIA_PRIVATE_KEY" const SEPOLIA_ALCHEMY_KEY="SEPOLIA_ALCHEMY_KEY" diff --git a/tasks/modular-test.ts b/tasks/modular-test.ts new file mode 100644 index 0000000..f7935df --- /dev/null +++ b/tasks/modular-test.ts @@ -0,0 +1,93 @@ +import {task} from "hardhat/config"; +import fs from "fs"; +import path from "path"; +import losslessJSON from "lossless-json"; + +function get_subfolders(dir) { + const files = fs.readdirSync(dir, { withFileTypes: true }); + const result = []; + + for (const file of files) { + if (file.isDirectory()) { + result.push(file.name); + } + } + return result; +} + +function loadProof(proof_path){ + return fs.readFileSync(path.resolve(__dirname, proof_path), 'utf8'); +} + + +task("modular-tests") + .setAction(async (hre) => { + console.log("Verify proof in modular style"); + let modular_path = "../contracts/modular/"; + let circuits = get_subfolders(path.resolve(__dirname, modular_path)); +// await deployments.fixture(['ModularVerifierFixture']); + + for(const k in circuits){ + let circuit = circuits[k]; + let folder_path = modular_path + circuit; + await deployments.fixture(['ModularVerifierFixture']); +// const permutation_argument_contract = await ethers.getContract("modular_permutation_argument_"+circuit); + const lookup_argument_contract = await ethers.getContract("modular_lookup_argument_"+circuit); + const gate_argument_contract = await ethers.getContract("modular_gate_argument_"+circuit); + const commitment_contract = await ethers.getContract("modular_commitment_scheme_"+circuit); + + const verifier_contract = await ethers.getContract("modular_verifier_"+circuit); + await verifier_contract.initialize( +// permutation_argument_contract.address, + lookup_argument_contract.address, + gate_argument_contract.address, + commitment_contract.address + ); + + let proof_path = folder_path + "/proof.bin"; + console.log("Verify :",proof_path); + let proof = loadProof(proof_path); + await verifier_contract.verify(proof, {gasLimit: 30_500_000}); + console.log("===================================="); + +// proof_path = folder_path + "/proof2.bin"; +// console.log("Verify :",proof_path); +// proof = loadProof(proof_path); +// await verifier_contract.verify(proof, {gasLimit: 30_500_000}); + + } +}); + +task("modular-test") + .addParam("test") + .setAction(async (test, hre) => { + console.log("Run modular verifier for:",test.test); + let modular_path = "../contracts/modular/"; + + let circuit = test.test; + let folder_path = modular_path + circuit; + await deployments.fixture(['ModularVerifierFixture']); +// const permutation_argument_contract = await ethers.getContract("modular_permutation_argument_"+circuit); + const lookup_argument_contract = await ethers.getContract("modular_lookup_argument_"+circuit); + const gate_argument_contract = await ethers.getContract("modular_gate_argument_"+circuit); + const commitment_contract = await ethers.getContract("modular_commitment_scheme_"+circuit); + + const verifier_contract = await ethers.getContract("modular_verifier_"+circuit); + await verifier_contract.initialize( +// permutation_argument_contract.address, + lookup_argument_contract.address, + gate_argument_contract.address, + commitment_contract.address + ); + + let proof_path = folder_path + "/proof.bin"; + console.log("Verify :",proof_path); + let proof = loadProof(proof_path); + await verifier_contract.verify(proof, {gasLimit: 30_500_000}); + console.log("===================================="); + +// proof_path = folder_path + "/proof2.bin"; +// console.log("Verify :",proof_path); +// proof = loadProof(proof_path); +// await verifier_contract.verify(proof, {gasLimit: 30_500_000}); +}); \ No newline at end of file From 5ec697a20f8a39eac0c8ed98f1fea59ac65bd388 Mon Sep 17 00:00:00 2001 From: "e.tatuzova" Date: Sun, 1 Oct 2023 22:26:22 +0400 Subject: [PATCH 02/10] Gate argument updated #74 --- contracts/modular/circuit1/commitment.sol | 13 ++--- contracts/modular/circuit1/gate_0.sol | 52 ++++++++++++++++++ contracts/modular/circuit1/gate_1.sol | 51 ++++++++++++++++++ contracts/modular/circuit1/gate_argument.sol | 37 +++---------- .../modular/circuit1/gate_libs_list.json | 4 ++ .../modular/circuit1/gate_linked_libs.json | 4 ++ .../modular/circuit1/modular_verifier.sol | 9 ++-- .../modular/circuit1/permutation_argument.sol | 2 +- contracts/modular/circuit2/commitment.sol | 13 ++--- contracts/modular/circuit2/gate_0.sol | 52 ++++++++++++++++++ contracts/modular/circuit2/gate_1.sol | 53 +++++++++++++++++++ contracts/modular/circuit2/gate_argument.sol | 39 +++----------- .../modular/circuit2/gate_libs_list.json | 4 ++ .../modular/circuit2/gate_linked_libs.json | 4 ++ .../modular/circuit2/modular_verifier.sol | 9 ++-- .../modular/circuit2/permutation_argument.sol | 2 +- contracts/modular/circuit2/proof.bin | 2 +- contracts/modular/circuit3/commitment.sol | 11 ++-- contracts/modular/circuit3/gate_argument.sol | 8 +-- .../modular/circuit3/gate_libs_list.json | 2 + .../modular/circuit3/gate_linked_libs.json | 2 + .../modular/circuit3/lookup_argument.sol | 6 +-- .../modular/circuit3/modular_verifier.sol | 15 +++--- .../modular/circuit3/permutation_argument.sol | 2 +- contracts/modular/circuit4/commitment.sol | 11 ++-- contracts/modular/circuit4/gate_0.sol | 51 ++++++++++++++++++ contracts/modular/circuit4/gate_argument.sol | 21 ++------ .../modular/circuit4/gate_libs_list.json | 3 ++ .../modular/circuit4/gate_linked_libs.json | 3 ++ .../modular/circuit4/lookup_argument.sol | 6 +-- .../modular/circuit4/modular_verifier.sol | 15 +++--- .../modular/circuit4/permutation_argument.sol | 2 +- contracts/modular/circuit4/proof.bin | 2 +- contracts/modular/circuit6/commitment.sol | 11 ++-- contracts/modular/circuit6/gate_argument.sol | 8 +-- .../modular/circuit6/gate_libs_list.json | 2 + .../modular/circuit6/gate_linked_libs.json | 2 + .../modular/circuit6/lookup_argument.sol | 6 +-- .../modular/circuit6/modular_verifier.sol | 15 +++--- .../modular/circuit6/permutation_argument.sol | 2 +- contracts/modular/circuit6/proof.bin | 2 +- deploy/modular-verifier.js | 20 +++---- 42 files changed, 412 insertions(+), 166 deletions(-) create mode 100644 contracts/modular/circuit1/gate_0.sol create mode 100644 contracts/modular/circuit1/gate_1.sol create mode 100644 contracts/modular/circuit1/gate_libs_list.json create mode 100644 contracts/modular/circuit1/gate_linked_libs.json create mode 100644 contracts/modular/circuit2/gate_0.sol create mode 100644 contracts/modular/circuit2/gate_1.sol create mode 100644 contracts/modular/circuit2/gate_libs_list.json create mode 100644 contracts/modular/circuit2/gate_linked_libs.json create mode 100644 contracts/modular/circuit3/gate_libs_list.json create mode 100644 contracts/modular/circuit3/gate_linked_libs.json create mode 100644 contracts/modular/circuit4/gate_0.sol create mode 100644 contracts/modular/circuit4/gate_libs_list.json create mode 100644 contracts/modular/circuit4/gate_linked_libs.json create mode 100644 contracts/modular/circuit6/gate_libs_list.json create mode 100644 contracts/modular/circuit6/gate_linked_libs.json diff --git a/contracts/modular/circuit1/commitment.sol b/contracts/modular/circuit1/commitment.sol index 65f48f8..d688670 100644 --- a/contracts/modular/circuit1/commitment.sol +++ b/contracts/modular/circuit1/commitment.sol @@ -26,7 +26,7 @@ import "../../containers/merkle_verifier.sol"; import "../../algebra/polynomial.sol"; import "hardhat/console.sol"; -contract modular_commitment_scheme_circuit1 { +library modular_commitment_scheme_circuit1 { uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; uint64 constant batches_num = 4; uint256 constant r = 3; @@ -37,10 +37,10 @@ contract modular_commitment_scheme_circuit1 { uint256 constant unique_points = 4; uint256 constant permutation_point = 2; uint256 constant quotient_point = 0; - uint256 constant lookup_point = 140728064387152; + uint256 constant lookup_point = 94511721702704; bytes constant points_ids = hex"01010101010101010303010100000000"; uint256 constant omega = 14450201850503471296781915119640920297985789873634237091629829669980153907901; - uint256 _etha; + uint256 constant _etha = 14062721881273474090606415031361994540585550571695842571456013353340629726555; struct commitment_state{ bytes leaf_data; @@ -286,10 +286,11 @@ contract modular_commitment_scheme_circuit1 { function initialize( bytes32 tr_state_before - ) external returns(bytes32 tr_state_after){ + ) internal returns(bytes32 tr_state_after){ types.transcript_data memory tr_state; tr_state.current_challenge = tr_state_before; - _etha = transcript.get_field_challenge(tr_state, modulus); + uint256 etha = transcript.get_field_challenge(tr_state, modulus); + require(etha == _etha, "Wrong etha"); tr_state_after = tr_state.current_challenge; } @@ -412,7 +413,7 @@ contract modular_commitment_scheme_circuit1 { uint256[5] memory commitments, uint256 challenge, bytes32 transcript_state - ) external view returns (bool){ + ) internal view returns (bool){ types.transcript_data memory tr_state; tr_state.current_challenge = transcript_state; commitment_state memory state; diff --git a/contracts/modular/circuit1/gate_0.sol b/contracts/modular/circuit1/gate_0.sol new file mode 100644 index 0000000..3de3b84 --- /dev/null +++ b/contracts/modular/circuit1/gate_0.sol @@ -0,0 +1,52 @@ + +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) 2023 -- Generated by zkllvm-transpiler +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity >=0.8.4; + +import "../../../contracts/basic_marshalling.sol"; +import "./gate_argument.sol"; + +library gate_circuit1_0{ + uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; + + function evaluate_gate_be( + bytes calldata blob, + uint256 theta, + uint256 theta_acc + ) external pure returns (uint256 F, uint256) { + uint256 sum; + uint256 gate; + uint256 prod; + + gate = 0; + sum = 0; + prod = 28948022309329048855892746252171976963363056481941560715954676764349967630336; + prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 192), modulus); + sum = addmod(sum, prod, modulus); + prod = basic_marshalling.get_uint256_be(blob, 160); + sum = addmod(sum, prod, modulus); + prod = basic_marshalling.get_uint256_be(blob, 128); + sum = addmod(sum, prod, modulus); + gate = addmod(gate, mulmod(theta_acc, sum, modulus), modulus); + theta_acc = mulmod(theta_acc, theta, modulus); + gate = mulmod(gate, basic_marshalling.get_uint256_be(blob, 0), modulus); + F = addmod(F, gate, modulus); + + return( F, theta_acc ); + } +} + \ No newline at end of file diff --git a/contracts/modular/circuit1/gate_1.sol b/contracts/modular/circuit1/gate_1.sol new file mode 100644 index 0000000..fd6f983 --- /dev/null +++ b/contracts/modular/circuit1/gate_1.sol @@ -0,0 +1,51 @@ + +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) 2023 -- Generated by zkllvm-transpiler +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity >=0.8.4; + +import "../../../contracts/basic_marshalling.sol"; +import "./gate_argument.sol"; + +library gate_circuit1_1{ + uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; + + function evaluate_gate_be( + bytes calldata blob, + uint256 theta, + uint256 theta_acc + ) external pure returns (uint256 F, uint256) { + uint256 sum; + uint256 gate; + uint256 prod; + + gate = 0; + sum = 0; + prod = 28948022309329048855892746252171976963363056481941560715954676764349967630336; + prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 192), modulus); + sum = addmod(sum, prod, modulus); + prod = basic_marshalling.get_uint256_be(blob, 128); + prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 160), modulus); + sum = addmod(sum, prod, modulus); + gate = addmod(gate, mulmod(theta_acc, sum, modulus), modulus); + theta_acc = mulmod(theta_acc, theta, modulus); + gate = mulmod(gate, basic_marshalling.get_uint256_be(blob, 64), modulus); + F = addmod(F, gate, modulus); + + return( F, theta_acc ); + } +} + \ No newline at end of file diff --git a/contracts/modular/circuit1/gate_argument.sol b/contracts/modular/circuit1/gate_argument.sol index 8a95673..70d9976 100644 --- a/contracts/modular/circuit1/gate_argument.sol +++ b/contracts/modular/circuit1/gate_argument.sol @@ -21,6 +21,9 @@ import "../../types.sol"; import "../../basic_marshalling.sol"; import "../../interfaces/modular_gate_argument.sol"; import "hardhat/console.sol"; +import "./gate_0.sol"; +import "./gate_1.sol"; + contract modular_gate_argument_circuit1 is IGateArgument{ uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; @@ -30,37 +33,11 @@ contract modular_gate_argument_circuit1 is IGateArgument{ bytes calldata blob, uint256 theta ) external view returns (uint256 F){ - uint256 sum; - uint256 gate; - uint256 prod; - uint256 theta_acc=1; - gate = 0; - sum = 0; - prod = 28948022309329048855892746252171976963363056481941560715954676764349967630336; - prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 192), modulus); - sum = addmod(sum, prod, modulus); - prod = basic_marshalling.get_uint256_be(blob, 160); - sum = addmod(sum, prod, modulus); - prod = basic_marshalling.get_uint256_be(blob, 128); - sum = addmod(sum, prod, modulus); - gate = addmod(gate, mulmod(theta_acc, sum, modulus), modulus); - theta_acc = mulmod(theta_acc, theta, modulus); - gate = mulmod(gate, basic_marshalling.get_uint256_be(blob, 0), modulus); - F = addmod(F, gate, modulus); - - gate = 0; - sum = 0; - prod = 28948022309329048855892746252171976963363056481941560715954676764349967630336; - prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 192), modulus); - sum = addmod(sum, prod, modulus); - prod = basic_marshalling.get_uint256_be(blob, 128); - prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 160), modulus); - sum = addmod(sum, prod, modulus); - gate = addmod(gate, mulmod(theta_acc, sum, modulus), modulus); - theta_acc = mulmod(theta_acc, theta, modulus); - gate = mulmod(gate, basic_marshalling.get_uint256_be(blob, 64), modulus); - F = addmod(F, gate, modulus); + uint256 theta_acc = 1; + uint256 eval; + (eval, theta_acc) = gate_circuit1_0.evaluate_gate_be( blob, theta, theta_acc ); F = addmod(F, eval, modulus); + (eval, theta_acc) = gate_circuit1_1.evaluate_gate_be( blob, theta, theta_acc ); F = addmod(F, eval, modulus); } } \ No newline at end of file diff --git a/contracts/modular/circuit1/gate_libs_list.json b/contracts/modular/circuit1/gate_libs_list.json new file mode 100644 index 0000000..df84e4e --- /dev/null +++ b/contracts/modular/circuit1/gate_libs_list.json @@ -0,0 +1,4 @@ +[ +"gate_circuit1_0", +"gate_circuit1_1" +] diff --git a/contracts/modular/circuit1/gate_linked_libs.json b/contracts/modular/circuit1/gate_linked_libs.json new file mode 100644 index 0000000..df84e4e --- /dev/null +++ b/contracts/modular/circuit1/gate_linked_libs.json @@ -0,0 +1,4 @@ +[ +"gate_circuit1_0", +"gate_circuit1_1" +] diff --git a/contracts/modular/circuit1/modular_verifier.sol b/contracts/modular/circuit1/modular_verifier.sol index 70d9ff9..85293fb 100644 --- a/contracts/modular/circuit1/modular_verifier.sol +++ b/contracts/modular/circuit1/modular_verifier.sol @@ -66,8 +66,9 @@ contract modular_verifier_circuit1 is IModularVerifier{ _gate_argument_address = gate_argument_address; _commitment_contract_address = commitment_contract_address; - ICommitmentScheme commitment_scheme = ICommitmentScheme(commitment_contract_address); - tr_state.current_challenge = commitment_scheme.initialize(tr_state.current_challenge); +// ICommitmentScheme commitment_scheme = ICommitmentScheme(commitment_contract_address); +// tr_state.current_challenge = commitment_scheme.initialize(tr_state.current_challenge); + tr_state.current_challenge = modular_commitment_scheme_circuit1.initialize(tr_state.current_challenge); transcript_state = tr_state.current_challenge; } @@ -142,14 +143,14 @@ contract modular_verifier_circuit1 is IModularVerifier{ bool b = true; //8. Commitment scheme verify_eval { - ICommitmentScheme commitment_scheme = ICommitmentScheme(_commitment_contract_address); +// ICommitmentScheme commitment_scheme = ICommitmentScheme(_commitment_contract_address); uint256[5] memory commitments; commitments[0] = uint256(vk2); for(uint16 i = 1; i < 4;){ commitments[i] = basic_marshalling.get_uint256_be(blob, 0x9 + (i-1)*(0x28)); unchecked{i++;} } - if(!commitment_scheme.verify_eval( + if(!modular_commitment_scheme_circuit1.verify_eval( blob[z_offset - 0x8:], commitments, xi, tr_state.current_challenge )) { console.log("Error from commitment scheme!"); diff --git a/contracts/modular/circuit1/permutation_argument.sol b/contracts/modular/circuit1/permutation_argument.sol index 13ad429..b0f9f85 100644 --- a/contracts/modular/circuit1/permutation_argument.sol +++ b/contracts/modular/circuit1/permutation_argument.sol @@ -49,7 +49,7 @@ library modular_permutation_argument_circuit1{ uint256 h = 1; uint256 g = 1; - for(uint8 i = 0; i < permutation_size;){ + for(uint256 i = 0; i < permutation_size;){ uint256 tmp = addmod( gamma, basic_marshalling.get_uint256_be( diff --git a/contracts/modular/circuit2/commitment.sol b/contracts/modular/circuit2/commitment.sol index 36ee515..e71d267 100644 --- a/contracts/modular/circuit2/commitment.sol +++ b/contracts/modular/circuit2/commitment.sol @@ -26,7 +26,7 @@ import "../../containers/merkle_verifier.sol"; import "../../algebra/polynomial.sol"; import "hardhat/console.sol"; -contract modular_commitment_scheme_circuit2 { +library modular_commitment_scheme_circuit2 { uint256 constant modulus = 52435875175126190479447740508185965837690552500527637822603658699938581184513; uint64 constant batches_num = 4; uint256 constant r = 3; @@ -37,10 +37,10 @@ contract modular_commitment_scheme_circuit2 { uint256 constant unique_points = 5; uint256 constant permutation_point = 3; uint256 constant quotient_point = 1; - uint256 constant lookup_point = 94008216099072; + uint256 constant lookup_point = 94511721624960; bytes constant points_ids = hex"02020202020202020404020200010101"; uint256 constant omega = 14788168760825820622209131888203028446852016562542525606630160374691593895118; - uint256 _etha; + uint256 constant _etha = 12217208067492249031102872072655908974751031861422067257283053495957748658893; struct commitment_state{ bytes leaf_data; @@ -289,10 +289,11 @@ contract modular_commitment_scheme_circuit2 { function initialize( bytes32 tr_state_before - ) external returns(bytes32 tr_state_after){ + ) internal returns(bytes32 tr_state_after){ types.transcript_data memory tr_state; tr_state.current_challenge = tr_state_before; - _etha = transcript.get_field_challenge(tr_state, modulus); + uint256 etha = transcript.get_field_challenge(tr_state, modulus); + require(etha == _etha, "Wrong etha"); tr_state_after = tr_state.current_challenge; } @@ -415,7 +416,7 @@ contract modular_commitment_scheme_circuit2 { uint256[5] memory commitments, uint256 challenge, bytes32 transcript_state - ) external view returns (bool){ + ) internal view returns (bool){ types.transcript_data memory tr_state; tr_state.current_challenge = transcript_state; commitment_state memory state; diff --git a/contracts/modular/circuit2/gate_0.sol b/contracts/modular/circuit2/gate_0.sol new file mode 100644 index 0000000..c7b42fe --- /dev/null +++ b/contracts/modular/circuit2/gate_0.sol @@ -0,0 +1,52 @@ + +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) 2023 -- Generated by zkllvm-transpiler +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity >=0.8.4; + +import "../../../contracts/basic_marshalling.sol"; +import "./gate_argument.sol"; + +library gate_circuit2_0{ + uint256 constant modulus = 52435875175126190479447740508185965837690552500527637822603658699938581184513; + + function evaluate_gate_be( + bytes calldata blob, + uint256 theta, + uint256 theta_acc + ) external pure returns (uint256 F, uint256) { + uint256 sum; + uint256 gate; + uint256 prod; + + gate = 0; + sum = 0; + prod = basic_marshalling.get_uint256_be(blob, 192); + sum = addmod(sum, prod, modulus); + prod = 52435875175126190479447740508185965837690552500527637822603658699938581184512; + prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 224), modulus); + sum = addmod(sum, prod, modulus); + prod = basic_marshalling.get_uint256_be(blob, 160); + sum = addmod(sum, prod, modulus); + gate = addmod(gate, mulmod(theta_acc, sum, modulus), modulus); + theta_acc = mulmod(theta_acc, theta, modulus); + gate = mulmod(gate, basic_marshalling.get_uint256_be(blob, 0), modulus); + F = addmod(F, gate, modulus); + + return( F, theta_acc ); + } +} + \ No newline at end of file diff --git a/contracts/modular/circuit2/gate_1.sol b/contracts/modular/circuit2/gate_1.sol new file mode 100644 index 0000000..2c431b2 --- /dev/null +++ b/contracts/modular/circuit2/gate_1.sol @@ -0,0 +1,53 @@ + +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) 2023 -- Generated by zkllvm-transpiler +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity >=0.8.4; + +import "../../../contracts/basic_marshalling.sol"; +import "./gate_argument.sol"; + +library gate_circuit2_1{ + uint256 constant modulus = 52435875175126190479447740508185965837690552500527637822603658699938581184513; + + function evaluate_gate_be( + bytes calldata blob, + uint256 theta, + uint256 theta_acc + ) external pure returns (uint256 F, uint256) { + uint256 sum; + uint256 gate; + uint256 prod; + + gate = 0; + sum = 0; + prod = basic_marshalling.get_uint256_be(blob, 128); + sum = addmod(sum, prod, modulus); + prod = 52435875175126190479447740508185965837690552500527637822603658699938581184512; + prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 224), modulus); + sum = addmod(sum, prod, modulus); + prod = basic_marshalling.get_uint256_be(blob, 160); + prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 192), modulus); + sum = addmod(sum, prod, modulus); + gate = addmod(gate, mulmod(theta_acc, sum, modulus), modulus); + theta_acc = mulmod(theta_acc, theta, modulus); + gate = mulmod(gate, basic_marshalling.get_uint256_be(blob, 64), modulus); + F = addmod(F, gate, modulus); + + return( F, theta_acc ); + } +} + \ No newline at end of file diff --git a/contracts/modular/circuit2/gate_argument.sol b/contracts/modular/circuit2/gate_argument.sol index 3d304a0..6a404fb 100644 --- a/contracts/modular/circuit2/gate_argument.sol +++ b/contracts/modular/circuit2/gate_argument.sol @@ -21,6 +21,9 @@ import "../../types.sol"; import "../../basic_marshalling.sol"; import "../../interfaces/modular_gate_argument.sol"; import "hardhat/console.sol"; +import "./gate_0.sol"; +import "./gate_1.sol"; + contract modular_gate_argument_circuit2 is IGateArgument{ uint256 constant modulus = 52435875175126190479447740508185965837690552500527637822603658699938581184513; @@ -30,39 +33,11 @@ contract modular_gate_argument_circuit2 is IGateArgument{ bytes calldata blob, uint256 theta ) external view returns (uint256 F){ - uint256 sum; - uint256 gate; - uint256 prod; - uint256 theta_acc=1; - gate = 0; - sum = 0; - prod = basic_marshalling.get_uint256_be(blob, 192); - sum = addmod(sum, prod, modulus); - prod = 52435875175126190479447740508185965837690552500527637822603658699938581184512; - prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 224), modulus); - sum = addmod(sum, prod, modulus); - prod = basic_marshalling.get_uint256_be(blob, 160); - sum = addmod(sum, prod, modulus); - gate = addmod(gate, mulmod(theta_acc, sum, modulus), modulus); - theta_acc = mulmod(theta_acc, theta, modulus); - gate = mulmod(gate, basic_marshalling.get_uint256_be(blob, 0), modulus); - F = addmod(F, gate, modulus); - - gate = 0; - sum = 0; - prod = basic_marshalling.get_uint256_be(blob, 128); - sum = addmod(sum, prod, modulus); - prod = 52435875175126190479447740508185965837690552500527637822603658699938581184512; - prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 224), modulus); - sum = addmod(sum, prod, modulus); - prod = basic_marshalling.get_uint256_be(blob, 160); - prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 192), modulus); - sum = addmod(sum, prod, modulus); - gate = addmod(gate, mulmod(theta_acc, sum, modulus), modulus); - theta_acc = mulmod(theta_acc, theta, modulus); - gate = mulmod(gate, basic_marshalling.get_uint256_be(blob, 64), modulus); - F = addmod(F, gate, modulus); + uint256 theta_acc = 1; + uint256 eval; + (eval, theta_acc) = gate_circuit2_0.evaluate_gate_be( blob, theta, theta_acc ); F = addmod(F, eval, modulus); + (eval, theta_acc) = gate_circuit2_1.evaluate_gate_be( blob, theta, theta_acc ); F = addmod(F, eval, modulus); } } \ No newline at end of file diff --git a/contracts/modular/circuit2/gate_libs_list.json b/contracts/modular/circuit2/gate_libs_list.json new file mode 100644 index 0000000..28309ff --- /dev/null +++ b/contracts/modular/circuit2/gate_libs_list.json @@ -0,0 +1,4 @@ +[ +"gate_circuit2_0", +"gate_circuit2_1" +] diff --git a/contracts/modular/circuit2/gate_linked_libs.json b/contracts/modular/circuit2/gate_linked_libs.json new file mode 100644 index 0000000..28309ff --- /dev/null +++ b/contracts/modular/circuit2/gate_linked_libs.json @@ -0,0 +1,4 @@ +[ +"gate_circuit2_0", +"gate_circuit2_1" +] diff --git a/contracts/modular/circuit2/modular_verifier.sol b/contracts/modular/circuit2/modular_verifier.sol index 0424b0a..25cf994 100644 --- a/contracts/modular/circuit2/modular_verifier.sol +++ b/contracts/modular/circuit2/modular_verifier.sol @@ -66,8 +66,9 @@ contract modular_verifier_circuit2 is IModularVerifier{ _gate_argument_address = gate_argument_address; _commitment_contract_address = commitment_contract_address; - ICommitmentScheme commitment_scheme = ICommitmentScheme(commitment_contract_address); - tr_state.current_challenge = commitment_scheme.initialize(tr_state.current_challenge); +// ICommitmentScheme commitment_scheme = ICommitmentScheme(commitment_contract_address); +// tr_state.current_challenge = commitment_scheme.initialize(tr_state.current_challenge); + tr_state.current_challenge = modular_commitment_scheme_circuit2.initialize(tr_state.current_challenge); transcript_state = tr_state.current_challenge; } @@ -142,14 +143,14 @@ contract modular_verifier_circuit2 is IModularVerifier{ bool b = true; //8. Commitment scheme verify_eval { - ICommitmentScheme commitment_scheme = ICommitmentScheme(_commitment_contract_address); +// ICommitmentScheme commitment_scheme = ICommitmentScheme(_commitment_contract_address); uint256[5] memory commitments; commitments[0] = uint256(vk2); for(uint16 i = 1; i < 4;){ commitments[i] = basic_marshalling.get_uint256_be(blob, 0x9 + (i-1)*(0x28)); unchecked{i++;} } - if(!commitment_scheme.verify_eval( + if(!modular_commitment_scheme_circuit2.verify_eval( blob[z_offset - 0x8:], commitments, xi, tr_state.current_challenge )) { console.log("Error from commitment scheme!"); diff --git a/contracts/modular/circuit2/permutation_argument.sol b/contracts/modular/circuit2/permutation_argument.sol index c13e47f..c1db346 100644 --- a/contracts/modular/circuit2/permutation_argument.sol +++ b/contracts/modular/circuit2/permutation_argument.sol @@ -49,7 +49,7 @@ library modular_permutation_argument_circuit2{ uint256 h = 1; uint256 g = 1; - for(uint8 i = 0; i < permutation_size;){ + for(uint256 i = 0; i < permutation_size;){ uint256 tmp = addmod( gamma, basic_marshalling.get_uint256_be( diff --git a/contracts/modular/circuit2/proof.bin b/contracts/modular/circuit2/proof.bin index 048b5bd..da21927 100644 --- a/contracts/modular/circuit2/proof.bin +++ b/contracts/modular/circuit2/proof.bin @@ -1 +1 @@ -0x030000000000000020013611b353365b128ae8b2206f712e2ad2588195b161da79ce92a00b9c41f3610000000000000020476df1bec55dc3bf42113c6db952a2504babadbdec357fbfb731e78eed8c46e30000000000000020e3d82bdb0dce06df48a9101d8aa9e81d782060efbb68e3212a7b8b3dff7d1b464001a4ba7c4582fbf209fb2f6218772443690aa59d4d64946f094a78d58bfd9200000000000000264001a4ba7c4582fbf209fb2f6218772443690aa59d4d64946f094a78d58bfd921b02b1d914ea72056989679d7826ca1f9adbc9880002cf6daffb7f1fa3b332cd64428b1fe90e1d0b0498563391c5b9eddca65e7e4d22ac1209410950d6d3eefb4925359c68cba0ddaf87fd463f6daed7e844deb500155000cfe079de79e6639a063fe1ec65b1db9beccf4b38c29d0561121abd621bfc8c8440c7413bdfcb88d7304dd9fa371b70eeffd08ccb957867d20aeb86e7009bc009af235519554cb9322bbf2d76c7dd014379ab0e8d524b25a77ebb2daec3e7d79dc572c8a31e90bde16a45a7312e851bf898402981030726b3a4f5684b04458845c9f753b35519105c4001a4ba7c4582fbf209fb2f6218772443690aa59d4d64946f094a78d58bfd921b02b1d914ea72056989679d7826ca1f9adbc9880002cf6daffb7f1fa3b332cd25ea743799f1aa88521bd95d5ee2a19209a774c9d96b980344401bbef76c3cc23d9bd931d08eee60195862ede438d303f80e10fc9093f2a0920d1f3d2bed12c92eb1f2f1c12ce907b43f0ff3ee359560dc93090846ca04073ca8640ba0b5a2e85d118568c35ccff0c8e14aeb77fcd0a05ba585f78d646348b66c554b10625e600ae71a17d7bed1b3adc6be921206dc083c64238aeb5522fef476515f1f66eb2f3a68771f10abc9d88dbdf7ce531cd3044141f573048011fdb1b76e4ec34435a618b6791fa7f27ea2aeca29fccc25af5da431ec2b4ac67b92a583b6ce9b08f0a902b3f3b547e4142f15e66b6831742aa524eefbb6f67846e40220f863b5a32dbe3f1b4adcabfaa14cf2ee7ec3990f58d91ae75bfaaefe1327313d89eb23baf96f3914739c7945d90240de1dc43abd968baabf8aa6738509b019343b263024bffc6741ce5e39c97291cc07efc134faf0fd0fdd959980d807ec4c2e1a34f2e20ad3662761bdeda7376d374c58b68475ecfa30064120c27daa97edfbda94eecaeaff3d79275d8ed549003c2c8582cfc0d85beabc05b32d65b52413884167fd8c532e369369e984155e5f975bd41103c801ea569e500244152d768985604be0800b06295df7d91709893b29eb4a316e6324251a6054f39f9f154ceda4a4d2347984a93cd3d24de7686966f8fa3577ea539d516c0a16d46d0e2c283db58b157952ca531299474f6b537b6eb35e5ec9186b332e1882705c78e5a4a217b8b30051da60f706c642ff9946925c0dc0ef9fd3c0d8898c8abae6018ad5bad86a38b6f71dff9734a2549033beea58ad69a2592f0166aceb9849d79ec91966e862b3a9a46e3d3b6774954e99349cd832a314c07d2cdac6895ced4c5512d444ceba434c68a0911e3b0f7e5fae23e5625fe05984b5a0169a61920cace5d9f71db14bb817dc7451134d76825e555f6e46bc309eb7044dce87579de8f9f47be149bf807f4a5f03a5f7446bbda6006c330cd835ef08e9a780cb8c983ceab82afaa19b4c38f741baa7362f2e52ee0693770c21e21852029563f1567db0bd1b7d30a4319c541d417d658d338b9a7616d79c679e189d980e1c371e1093808cec757bcaf59a48b34cd58b394aaee8150734a38fb32b071099caa44ab05514acb7bf75ea263feb384bb9450e3dc8fe629560a6771c6e351f47d6fdd27354f51a6d033a2382003292cf2a2f0100640c73b584893ae4b6b73079045de71fd0e60a720e73c6d06cd01b9edb77910000000000000008000c01040201030500000000000000160202020202020202030302020201010102010101010100000000000000030000000000000020bb34c5953c0228e0ce2bc8ca4d0cd431362f6913e7316530e5b57753384ade33000000000000002088c7e6c7e7798be3e5011a6a026e58d0cee9886d3f31b35e18e1fdcde1f6b01500000000000000205667b785870480edb712884d2c4f76b6294ad02652da09ad92f2e41a177639290000000000000003010101000000000000002c205bf9e8afe7612dc1649310899759ba6ee1991fee0e510a7b9610b1db94977e5391ad6a79b61c1a71d544f7800a7e4ae4dc0ae311f00af48469ef4d246b68836e962e09a5b62af816862d6bb9819c13b46d8bdc8265db4a611a74de011024710557794983e752501cb3aa9c50203bf19f5018267d9880b49ee58b20feefdb904e8956508e4a3d176a502dc1d8c03469f88cfaf590d2d70ea7b932180770ff11256451029b534030c8e9aa4630e1a39b5b30a90d6f2b84f05846cde6f88f00f0560abee73d91b6831b49e02cc6ba0ed07ce44caaf5ca716a96105eac3416f9731de2e86bec0bc6c517eff7db42e7c934d6d957580a33ea9469efa152cbe9068e205bf9e8afe7612dc1649310899759ba6ee1991fee0e510a7b9610b1db94977e5391ad6a79b61c1a71d544f7800a7e4ae4dc0ae311f00af48469ef4d246b68830ab6c33dfccd051a061e5be8f49a732d4c6d36bdda9f91b11aa909e141c65114681fb1d4779c6468804f40328124c49aba8dced497226d41fc1057a7e49d1d814893c004ff2931562c8cc263146041b5e44b02604cd403c9c153ddb905e9fbcb5f3df663385aee9ad9fc0324242a96fa8e2b0c021bc0d147e386fab1d4cb658d42d6fd0f230228640319cc5551c8995adc570f61257b6aa75381cd80458a7bd1682a05ec669d7ccc3008aae9af714bd5f21c31e2bba2dee0e72dd17001b7439805743bb99f2d295c242ef55a30364a9ffd098b3fe03ecaf943226a7d6409e0656eaec809b777eba045e60bd8db5a064a11eac0dd877e3b6480d1cebe6edee1813ff83bb502dae89daf9d782eafc148517ae3d61ba8e7b4ffe220ada095520d311fd44117f9be5543cdfd0226c730103a092e9792a996660e36486ece71e5940d1cce04470d4a629d89859052f9a85d108e89bd85659a9781fab6e0c3f9f5d6483f09ce36fd7359439392fbceac7dcdff84b2d325f0ef02abcbb416fce7911bd00aaf06f24497638beddeebd3eaf22bd350f285a77cfe336965cff63200e66d2d48cfc83c9dae0ca5a598db07405ba8860db6c2819e06c5651fc0feb725b548495a2e5f105f5369eddb06f7a7130fba2358e33b63de632029c51fbe3c7ee57a23317b7ec7d5134903110566be672439aefb00ff82cf1be352cf6de5e528b0d2bd4b38c0d0329291aca67346741fea56b48add59c1e37284609a9ee3c0d33a591f0560e4cb76a30f32774058362a51502a2170578797bded2d25470e3f3cfd38d46191013077313133e24855e062dad9fbe492b8414e14e3f708baf48590c69aa14864ecf615b75ec124018b124052f916bcf74d7b12d698087d9c36004a625930721115fd2b46dc91ea07e3ff56015d0fb899b3b3386206f34c7203a221bdf1aa5e8db18649477c7d6fa8d0ed43cb72cff7c02bca9db1c5631f9a5fc4027dcdbf0fb906d6d996cc07aae56f4d586f4be3a558d036efbb9ba86b1dbe1c89d57f606dd4df39c5f434299aa6a1cd13a6b28cecf98fadf3fee2b87f1ce84b19d4beea0774d9e542f8d49f7412e60113a572d05d19e31eaf5fbdf64a72c666f244f98808916f80da7e1d306ff71d223bed8b11218ad2eaab57e247faaade8c22a0ec2221eac6e89f22728d46c99756ee3b020ec4f43070cc0da8bfd7ebb355e873208f2c8b58d4d287a54163fc6f13ebc252f3366a9749e2a652133f0d14a56779ddb64003750ecbd2c410bcb6c4f43ae8032b16099ac15e64952c245e7b31fee2f20604c74eea39b73a379b4550ce9d6900f497b917b545e92ceb630520732b1c2be947ef85b7f16fdd0598bb3481a2feee0391e2c3fadbaa4b675093263e37089a0d6a5f7b3787e53400750f8d269b2866512c254839fcb21d870fbb67499f14ac4c2582bf6552469cabf53783814405fd1b9b7c2a992fc4a82cc6a1017ad53783e432f3efed6f9a328513f4b2bf088927f15699026cf8e23cd18a839ebeea87d38c0000000000000006480ad252101ff70227858af984297abfd072213ef079ce9c7cf51231a2a7db1e31505874b0f0bcc3f6c75fd859ebb0618e9ddfad5ee8c46dd15d2389d0aa590967fa90be1e0c36697f6d0dd2725f7f5bf51cfabd02d9bca79893b626bd7231c639ef5d2216ffdeaad051fbd12a619d43e3aee7983cd716a02ca41c49fb9c93573081be8d66f6b8da82b52803bbab5ac20c04cdf2ffe32e81bd965f08e735017434bb65a007051349f7d268c5ffad4511088167210a3b666657f0fad0cb035b81000000000000000400000000000000240000000000000020b024bd12fb5b07a167bc8a510f274a06946eac1240e823dd682ec71d18e04b4e00000000000000070000000000000001000000000000000100000000000000200a328383bb2e1d145590576f030cb2b70d409fc4bb92c2b45eb94d0a9c57f07200000000000000010000000000000001000000000000002080195fff4b31c0666b9244a78ba7fb61a9b65be5cbca8cf7fb11944443bd15310000000000000001000000000000000000000000000000206cd7f59682dc55d91dadb529148e8ffb819cb7387a733fb4dc856744de61d89f0000000000000001000000000000000100000000000000205781471570a34296cafcc6dd1e6a633fc88729da8f0d55fc7bb320bcddcb78e50000000000000001000000000000000100000000000000209329417e4936e11df0051cd0626bd7f7ef081d32e3bb9bcfdbb72a61b096475e0000000000000001000000000000000000000000000000206addb5fc6e43b31d8575e4295b2d1e14344d5a8377dd15d5e73efdb9ec97a5fc000000000000000100000000000000010000000000000020564b02dc9ea4ce766caf42be67c77c94a3193983b90074fcc9626e7b3b0da76200000000000000240000000000000020013611b353365b128ae8b2206f712e2ad2588195b161da79ce92a00b9c41f3610000000000000007000000000000000100000000000000010000000000000020b5d136901d97f08171a1e49d925391d65f1b8f39b9373fd3854489f2a1ccd5ae0000000000000001000000000000000100000000000000206fbe60423e173246e7c8214ae112e811f4d0d2ea991519a7f01d4bbee31e66c800000000000000010000000000000000000000000000002051c37fe59b2cb80eb2b8df3610d19fb5d767b1f7e55b1d0ac86f5504396975cf000000000000000100000000000000010000000000000020230c46f6d901a7ddd5a455472c68d314ec3aa250a612ab0c23eea693ed4a0966000000000000000100000000000000010000000000000020a197a6c0748bb507a142057ae564ef3cc13b21448999254a32b6ea706d2a0c55000000000000000100000000000000000000000000000020edc5f8b2b5c8669b1f0c52cb3867c3ccc0debc575df741703611b04829e24ac3000000000000000100000000000000010000000000000020929c4c58090d4626368b3ef1c0c92ac63f84602a9c4ade0349309181148e4a3900000000000000240000000000000020476df1bec55dc3bf42113c6db952a2504babadbdec357fbfb731e78eed8c46e3000000000000000700000000000000010000000000000001000000000000002007c7becb3ec527c241badc24d7cf8326ee048a7a1a2a97f049d9b66569356abd000000000000000100000000000000010000000000000020221624ad8511ecd108ebb5b5bcfb069806cc471401013118960aca6115cc6e8b000000000000000100000000000000000000000000000020a008fceebeac29fa48e78aa6e8169fb3b210436a6240de9e7d6c610383123abc00000000000000010000000000000001000000000000002005d9182161260ff74f287cf915f8006f682eeb40d0357d4dbd7c5ea001b29dae000000000000000100000000000000010000000000000020c6de64e0cbc0fe22d574253d9bb5131ab0ad9a5e5cd0958fd98b7611d98397830000000000000001000000000000000000000000000000204d56ee39980d5e870d0931db1a5009c7a68416078e8720eacd8eefb438d5476d000000000000000100000000000000010000000000000020052cdbf879d0b85d8dda6f812a0da9aefa097254796ba99fe0a2beff0b1b569a00000000000000240000000000000020e3d82bdb0dce06df48a9101d8aa9e81d782060efbb68e3212a7b8b3dff7d1b460000000000000007000000000000000100000000000000010000000000000020d50700d8efdacdaa3f8cc41c99d4beb36e793f93e76ae5843df24b74d3c92de80000000000000001000000000000000100000000000000203674907c1205758c591e8624eea781d9d584b4c4dc4d18b272a5fe8dd38aa2640000000000000001000000000000000000000000000000207a69d32c6a4c133d1cad26ab5b1ff8373445006302fe2011c7b5ada31f5fd29b0000000000000001000000000000000100000000000000207813ea92ad153fff265b5c2de940fdedce26bc73964839f52a47f8fa4db4806400000000000000010000000000000001000000000000002089e037880b7874694fcaa5dc142bd9130f75b115cd28c9704ca9721007b943cd0000000000000001000000000000000000000000000000200258b8bdeedc95a4cd8b5a92e3379ed46362650c836146f8f940b0268b9dd7f8000000000000000100000000000000010000000000000020b9dd89226d41c06d29d2fea5271f595f4790f0946772cbc27578389af12ba845000000000000000300000000000000240000000000000020bb34c5953c0228e0ce2bc8ca4d0cd431362f6913e7316530e5b57753384ade330000000000000007000000000000000100000000000000010000000000000020f41284b2c7ad2a8a0da6593d265c875f769242f2ea8dda5ccf4bb0c79ae1b97f0000000000000001000000000000000100000000000000204293ea3b9829e09996e4214f28b27a042345e586fa9df5eb0916d4345d6ab002000000000000000100000000000000000000000000000020519c2e1fbe427d52c947e43f78f0b225d8d8e627d19e846d10b20a41e4c52d9a000000000000000100000000000000010000000000000020c9ab7ad8964e40b1684fd03d96cd86ad4310c52d1400d56a9c05444f9a6ae39c000000000000000100000000000000010000000000000020e23b59a9d733f64d358c28d4064d90260af92aa629dac155dd74ab5c79379dce0000000000000001000000000000000000000000000000205213675e85ea888ffdc91cea91d6ac203f406ac54807c26959de3781135034df000000000000000100000000000000010000000000000020d853f7737cf6a24bd8a3c5ec84a401bc47e08f1df732981649251f97e9f47e070000000000000024000000000000002088c7e6c7e7798be3e5011a6a026e58d0cee9886d3f31b35e18e1fdcde1f6b01500000000000000060000000000000001000000000000000100000000000000209765119c1b73fe70475222ef8bf379dd6be0bcc99cff3b2571493141ad6b5983000000000000000100000000000000010000000000000020d56afeac63d2c162d82035277228afa1a75282a606cc19001e8a220ce46f21d20000000000000001000000000000000000000000000000205d6d7d7ba2b3d21bd7922fd8a3977c58c57cb36015c6775d4e0a1ed098a2d351000000000000000100000000000000010000000000000020c195f85a60b508a00bb5ef08c1531fe8a7c2408ab7fc332182ad6ba82db157f0000000000000000100000000000000010000000000000020acef5117656f1a5f2419865e88d468c211a5fb2963d9471e4e78dea4f33b1d58000000000000000100000000000000000000000000000020eacf52a87cd99e963e531da340942f02dc2b2044737713c1e91504dfc81aae56000000000000000400000000000000205667b785870480edb712884d2c4f76b6294ad02652da09ad92f2e41a177639290000000000000005000000000000000100000000000000010000000000000020170e7c05c431f0986bc2593a7eec00f99ba190ab88d971b3d75449588c88e02a000000000000000100000000000000010000000000000020dd011c946e9958ce777c81065e17fd25ab1360d9026fc52b26c44f3ac0be53a000000000000000010000000000000000000000000000002022d304720ee8b9b860ea39d3ebb587eed59d0c974bfd7c2aef15712c56be247e0000000000000001000000000000000100000000000000209943d6b0ed654cb917ae8904f518f437e02d71baa122f1f947c743a6e2549213000000000000000100000000000000010000000000000020bb565a7b428686809dc2866521fc80c13592b9dcf5df999efc1155158e7f841900000000000000026c9565c04bcca4b656e0b468e27d3bec3421ec8b850e78738ac3acec591c2e7b6144deb9368b3879a7c915252d1be749a393227c3b7cec66dd50b0c936a2bb9e \ No newline at end of file +0x030000000000000020854db0ae86569361024692d5064f60f768ff6651b15c077c47d5294078e82a5200000000000000200d42ef66d4b798560099ee547506be356e5b82f8e575a39a1a86617555016cc900000000000000200087858048a0556ea53d0ddc1aabbb237ef3a66a6e3dd1deb7b0610c180095101201a57f05d28bcea2db3f8d49da0c8a3042b38348b78d086bc9c7f8633b089100000000000000261201a57f05d28bcea2db3f8d49da0c8a3042b38348b78d086bc9c7f8633b08911b02b1d914ea72056989679d7826ca1f9adbc9880002cf6daffb7f1fa3b332cd0a1ddf25ff24555e40c4e4d4fb547fc1fe154493fd067f3bf28477cbb69d3bf64925359c68cba0ddaf87fd463f6daed7e844deb500155000cfe079de79e6639a46d11a09f9fe5593c56241d2df4f7e4df294e00beb2d7aa3a19f4691fe4ca3ba304dd9fa371b70eeffd08ccb957867d20aeb86e7009bc009af235519554cb932200118f92f7e61e998c86ca3f4a5140c531b90476e44ea7d6b5aee01f4187a126a45a7312e851bf898402981030726b3a4f5684b04458845c9f753b35519105c1201a57f05d28bcea2db3f8d49da0c8a3042b38348b78d086bc9c7f8633b08911b02b1d914ea72056989679d7826ca1f9adbc9880002cf6daffb7f1fa3b332cd702a51c7343586f1e10bb83ca41a1faa390f1891621c60b6938dace9ec1a3a1b3d9bd931d08eee60195862ede438d303f80e10fc9093f2a0920d1f3d2bed12c9160764dd2d77e2053d68a42444b3bf4a56d10f44a591a65cd6962f186d70dd915d118568c35ccff0c8e14aeb77fcd0a05ba585f78d646348b66c554b10625e604f97ecea488e27622192e4220e4d9fc3f6e3eff90fec0ceca2be96ca13aa56c03a68771f10abc9d88dbdf7ce531cd3044141f573048011fdb1b76e4ec34435a6724d706311299a8eddeaa59750540978653cf0781eba65a7a4821aee54f1209d2c15f4987b285a2933fd7ab0bcdf37db25838584986a6fa5c354850936d476213f1b4adcabfaa14cf2ee7ec3990f58d91ae75bfaaefe1327313d89eb23baf96f24ea6967ba21d610db8a45c528695d96bc0ef98a07e2c7154e3053eb7eec70da363642e0ca68dd18c7c0d3d56d2ebba3108d5ac73d310411acedfe8215be7258662761bdeda7376d374c58b68475ecfa30064120c27daa97edfbda94eecaeaff68ad335e58e4d1f811abfbb1dd2525192dd56c4a750b60665a7d4736de63834f369369e984155e5f975bd41103c801ea569e500244152d768985604be0800b0648bbb8409a8374e8f026f89d1e9932afbeea7ad9e83ebe921a9e525645bf9ef73cd3d24de7686966f8fa3577ea539d516c0a16d46d0e2c283db58b157952ca5337e61e6eae18d8b1667cae953068d5671650e67c9f5527828cfbb1ddbbfb67795a5736e14316a8f074fe53d592044f67b074426ac9200f1f5de16ad9b99145842afe781b7d94d4fcbf6f7e8222d3cace640eac5cba90a6a9c280b5557407dd2a364f5a490a35af5a44af66fd56da0e6f9fc7d1f2e74ba771a22a90a6b0634ebc3fd234eb37c4312d38e0749d7bb2c35b2c2b7da8fac3b47d04ca053422e04e961c0d18e19a5b0e8a6d573c2f03e7952392c2d15f5beafd41396ffc839f86722c4318a09e0d9472ff41112033b51f5833eb23ef62979858e58f36be91e3756efb1b3f4a168e87fae2f4713d5f51254b6be9d4ad7908775a2bb517bcb01441979e0b383371fe9d37ab8569c822ba3ea123b4aefd1c0736728d997a0eb0c45af07126ee376b96c14a13cdd1c41748a935789d97ddd1598cf6a85c2b35e59e0eb84756f89f9ff36507640f6bc14d684d7f2ac432d369a81bc556d5699a839fe5e47b734fb5d9bc56d59f4ea53280a535bb81161ce37e6cf8bb955cdb5853e4414f760000000000000008000c010402010305000000000000001602020202020202020303020202010101020101010101000000000000000300000000000000202d0b7a4a2d4b8f00da8be9aba24df1db4a12ed8fdbc88543cea2d8790205e72b0000000000000020d46c20e374e0ccc7d178e7fb88fa8e8198e68de4df6e88a0394e563cd37119b600000000000000204244a5de83a9a223cd84cbad9b5652580599f87961f8c8394f90a33d7545ae020000000000000003010101000000000000002c59449d9a302401865eec2340271598ef87c0551ac0e33765241de8ab6c75208d1aa909b8f9797bc1d44db4c7e28c3f15cbfd4ee83f1b2499dbe21753938adf742d3c0a9780e898439853be98e16df672138e1fac463eb7c8fcd15cb4f733e3d646b19cbba8b4e5049ae6196f2833e193402f8456b9bfa436032ea34a08cc1c2b54c8fb7e33212f48c3d6861e16be0d13e16795afebba4e80e9b988f4c26b3ad81f24abd4f67c4dff6f6351e9f2e3caf172560e5314440d7e1646770a3d94c5290dda9bd395d4d8945abc72aa6f0923708720e3c07220598b6412beb650ee9be366130b7f93c8a4b3d87d655d9a98b494cc9cc0428dde02739bed4148af11641e59449d9a302401865eec2340271598ef87c0551ac0e33765241de8ab6c75208d1aa909b8f9797bc1d44db4c7e28c3f15cbfd4ee83f1b2499dbe21753938adf74098075adfcf1b7a6c99a4162b11dc83f281d406cf941f0b333df0ea0d41918f852061e3efce7d6a31c13adb6d32058c5e6f146e48bb62cc073c87c31947d2c576e6edc17ff8312bbea15c0acd860433b08b0780611745e64de96ca9086f2591f19165cb1bef36c435f3cc0ce1670f796dc30fbf37d725244b35ed0068bf3eb0b3e5f05bcd475ab6f415ff6d5973865f5a782325e0fc5100bc78b7faa51e9c95c2b60a5c08b07811425a960d4011f29545b141179d7070f55c000de45e86a555f0f72324e4b0ebd9cf57c82079cc9eca04ee13a23d09856ada685567c3b8d302a678164c95551eb09e79cdd1a2bd563208567ddec90035da244ec56869a86018d60a41dafb4b73a0bd7cf7b9dc0e4d2a518a76b75942c5fa7d3fb5e2ab95696d75dafb266d3e9f628388ec0e8d99c4c84fa35fa528304e52afc5445f3bb5bb1ba5b770570665379e8ca0bae6815730dfde681d04f8d5222554baec904fa3225e5474527427adda5b16a94aa3ab7f3a60a7ce8b9200bec2685dfaeb4f256a16e1871ebfbb2f6e61d05e865543c5b587058cd4896a3844a0f86249225bf862dbabc497e0ae517d1c167367c08a568a0a10610d1878571cc356b84c1ca831ef6828228b0d209cd5913d65f98f4a73b7964288b3e59e951d6010b09967042f029ef466fd9fc4c56ed7a3d18b3d4a13c69c0eb40fee991b7fd552776c02d6765fe454b56bacddd5eed62f796d4994d657a715ac6b93d6f9513101e83c86d20566b1c3e1c82d06230aa06a4cae86d7d091b2ca320759cc8a4bf48fa0df07e7527e98651523a23a9bd5b563473b00ca35f1e499cefc280d29d1e46201e155516daea2bce54119fc51534a8f5ec96d4035cabb9ee8a913cbfe266eef3cef47a6253c57c1d5afb9166c9239109c54c9dfeb858bd92e6c0f779781cc60e829549d2aa547517035fc5992668f0fd135c7bec1eeb31ce142558a12f837fe3384964501a03e69747b5419812c519fcbb1f3dcbd605972d36c443603aeae9b98dafb375b0c02ffd12dccac05ceddbd8438c76e1bbf5bdc75c59fc9d8f889fef7073cc223d41c0e30951d8c508c68ea4ef087d8ac8973e12f212e16840febe3265e5813a4ad0870f247dd0792caf73d159e66358839b960a087f7a5359a5f9b8c86fc29fa98199a2532dd13aae7088d643b7502f83a968ef4d91d0da08f0e1245730479f3e27ab4d1b312215e9e1f006ede5e81d953e182b291b7c9ae559b1afe0f2d9d03d11821120a0cae86a609ecf1d400047952d3726efdfbda6883c874d6891a17a426ed8b8603ee0a128f495266c5d1f82d37dfcfed10f984aacaffc5e4b5bd0c0bc438093049541714fe967d87b70895dfb4dd2362751b828855b04032605dd4b1470b76b4434161e917a67bec0eeae10a0c25f44530e88f5b6a8856848c59c352c430e242cb836b4037d7bf183da6ea99f60e4015f6956ef365012b10ca57495a75da5825eab34e6648285d7e59433aa7af2d64dda2441ad2eaa6fdef03c0aad26fd116f0000000000000006009ce3168071be74df56db90cb7bd797a9d01e277ccc9cba98d587f1c5c927c81a9769963f58c2b68de0bff24818f88608730b0b073c1546fe755a83c2b40d1702d70863531b962beb81df4f1f2fe9ce16590f558d8bdf6fe90b8f9ddb4f11ec122580d72a520930162e2aed8aee03ce2d997ea1ba405ffe3fd55a53221cc625288fa3ee00a6347c107bbdfc955bd1a444a9b575972f1fef7fb86c1bfacdfca745986166cb87c1d1630db174659addf16cf76fc3f07341dc2e9dee4777ba3dc60000000000000004000000000000005a0000000000000020b024bd12fb5b07a167bc8a510f274a06946eac1240e823dd682ec71d18e04b4e00000000000000070000000000000001000000000000000100000000000000201dba87b548f296ea9efc52957e260ea1a785dd708b0458ff7f1ed74a3263a86d0000000000000001000000000000000000000000000000200670200ce8840d42c287eb3020f13a6f38a3edcce46c10cf3525c1dcb96d3f820000000000000001000000000000000100000000000000209dae199a4e50f8ed1b4aac58675d7c022a948d70707593b776f9ea726e1937230000000000000001000000000000000000000000000000208b4cfcd55a35f9bf1484306fbe9ca3c7d8eff4fdb35bf57fdbc04d2881ba460b00000000000000010000000000000000000000000000002089519a6d88a150b09627d8adb69500fcbed330b3fcd7c922d9d68ccafe3d00db000000000000000100000000000000010000000000000020c32a0d03207fdc70dd7f1a4f65654f7f921570d423753644507fb723e9043ef2000000000000000100000000000000000000000000000020a5791a4d1fb68b8c5de94b338a0e0ba2ce64eca86311b65648af6a74b0fb4d91000000000000005a0000000000000020854db0ae86569361024692d5064f60f768ff6651b15c077c47d5294078e82a520000000000000007000000000000000100000000000000010000000000000020c9d838020cabf76d82c2a91375046daf23a4ade5761d0a127d18d6b62934f7d9000000000000000100000000000000000000000000000020bb146516a86122721799ec57494448ec2aecf3a6670823305166decc18f0e31a00000000000000010000000000000001000000000000002072401628417a0a31b6a6dcdb065531d349a57f403b233378c43a06b64f81c34c0000000000000001000000000000000000000000000000205fb3837dce71dcc83df63eca25f064b25cd4526a367a39245bae797d98b4c9970000000000000001000000000000000000000000000000207244fdbb4f056731dc6358a5c20501330651e47f53635ced3bcbe87896590c46000000000000000100000000000000010000000000000020f3b93eff1548b1ba20efcf3ec374b407dc304a16e304e768487603f04d2d83f8000000000000000100000000000000000000000000000020d08f418015e26f87ab305d6495e2980b749476529fd09451dc5c6bb35abed44c000000000000005a00000000000000200d42ef66d4b798560099ee547506be356e5b82f8e575a39a1a86617555016cc90000000000000007000000000000000100000000000000010000000000000020afd1c61804bd72958f37e749b00043eb6a5da797b4265136065b4ae09c6478e3000000000000000100000000000000000000000000000020985f4b08f9a9f7e002cf14c7c4a73a10f8228ff2ed9327789606c71342f57e41000000000000000100000000000000010000000000000020814007c95719ac2ac5d8baa791db89a7f6e74f415029c8a027aefe672042021400000000000000010000000000000000000000000000002097c8ad9c5842229377e4f462da79f62d991238bcecfa3b6076d8ecda4a72d0d1000000000000000100000000000000000000000000000020d39eff938802c3986d8600384880ca5ca7ca105dff89ea3947bfa90a4d8310a1000000000000000100000000000000010000000000000020396c915d4f23be9584523adb4046fb95e5ea814875d9ca172cbb3e1f33aad5720000000000000001000000000000000000000000000000205a2c89c4e4836c808df21f4d5e09e279e68db17e34d0488d24587be35c859331000000000000005a00000000000000200087858048a0556ea53d0ddc1aabbb237ef3a66a6e3dd1deb7b0610c1800951000000000000000070000000000000001000000000000000100000000000000201bbac59e0066cd82a8f61f39da3ae2e83f6177fe94b7ff3c6dd02a5bec9292ac000000000000000100000000000000000000000000000020bb8fd1326c537dd7ebbeaf0da328f3bfe80d52daec81c1477abc2e8f77b145eb00000000000000010000000000000001000000000000002041ff6780a59cf3ca7bbb55b7dff5d3edb0de5c906490ac3cc016c9afa75bc395000000000000000100000000000000000000000000000020195000eac039c5ed1f06845f273a2c5d55863293dca420724cf08a3478714c960000000000000001000000000000000000000000000000201a2449d5d309ac721ab62ecbe752724722c553972fb04235d8f3958be4c53ce60000000000000001000000000000000100000000000000201a84bfd57af98de74539d42274943820978c193398e520b3fcea50e153d9cea6000000000000000100000000000000000000000000000020feb4f4e231475905cf0afb3ea8b862c9c50a7ef7f9f38cf77e7ae933b015c7640000000000000003000000000000005a00000000000000202d0b7a4a2d4b8f00da8be9aba24df1db4a12ed8fdbc88543cea2d8790205e72b0000000000000007000000000000000100000000000000010000000000000020832f2ac3968c4883c5de12af3fad9d838543d2f004fb202a64a2dbda3c45a2b70000000000000001000000000000000000000000000000206cadbc4703d89e227234d81ed920b77165e01264b84f3cee516dfd9f14b4d9b80000000000000001000000000000000100000000000000208c1479900ae70c2948148ba82dc8952344dfb712cf9bec53a30e8761abfded4e000000000000000100000000000000000000000000000020808d8dee3bdfb3972b4c010419f9687b433b9a6bfc1d0265fae372d3b8535c32000000000000000100000000000000000000000000000020c9e45a825b38a15c7b76f1c91dd9003ea6bad620d7223e1083b02321664aeb5c000000000000000100000000000000010000000000000020f3a4e052f21ec37153e09e0ba08cf1ffe49b70d2105a0d194b2ed9e99767d49f0000000000000001000000000000000000000000000000204e056f30e36f122ed53c57e058e0b366aae4533f6d40b2b1a0a90563b6271698000000000000001a0000000000000020d46c20e374e0ccc7d178e7fb88fa8e8198e68de4df6e88a0394e563cd37119b60000000000000006000000000000000100000000000000010000000000000020fcb381b5196fa040afe3c0ca22f35c6d2ae6697fa0e028843630ac1395135551000000000000000100000000000000000000000000000020b84dd00b135fe405b15b1909781a56c9f3067ac72e54a93246c2ec3441abb2460000000000000001000000000000000100000000000000207d07f9d411cd54b356ce64f239812fcc1fbfc33a2bd707811573f76b19dc082d000000000000000100000000000000000000000000000020f746638172456dfe58394e7028f1ce797775e3a016f02499d2345a838aa85bb8000000000000000100000000000000000000000000000020ab9d69c817f799fcdc50b290ebd1c1f029bd971a2f8e73dd2da5c6896579d4bf000000000000000100000000000000010000000000000020a6ed916d033f3ed39d1053cf4f9431328e436811bd37286c7a6461adeed9bfdd000000000000001a00000000000000204244a5de83a9a223cd84cbad9b5652580599f87961f8c8394f90a33d7545ae02000000000000000500000000000000010000000000000001000000000000002096cbc5e23757f5ece9d1cf9c3d2ce85b50b4ebc7f01f1a3ebc02523a7f208d1000000000000000010000000000000000000000000000002082d40a063a5094636c862344fbe4999827a29aa962edb6ee9d3be54ecebe957000000000000000010000000000000001000000000000002002a145e811dbcaa772a0d872d84d2eece431c9676d1931bcb25b636fc024b7f800000000000000010000000000000000000000000000002055a2b8cdac5432f02dd3b3f210b31620f30aa753ff68c18618ad879459762a0200000000000000010000000000000000000000000000002091964f97b1c5e91495f11b39b8fd96ae5624edf56e6440752943cb0286b5e46c0000000000000002710ad653fae5b9cad361a3bc824c43cd82af649e43d05ee5572b2d3139441d3714cdac8660f330ae4003ac8cfd7e32e49abacbb16b931a7eb8efed3655287981 \ No newline at end of file diff --git a/contracts/modular/circuit3/commitment.sol b/contracts/modular/circuit3/commitment.sol index d235b64..e675f27 100644 --- a/contracts/modular/circuit3/commitment.sol +++ b/contracts/modular/circuit3/commitment.sol @@ -26,7 +26,7 @@ import "../../containers/merkle_verifier.sol"; import "../../algebra/polynomial.sol"; import "hardhat/console.sol"; -contract modular_commitment_scheme_circuit3 { +library modular_commitment_scheme_circuit3 { uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; uint64 constant batches_num = 5; uint256 constant r = 2; @@ -40,7 +40,7 @@ contract modular_commitment_scheme_circuit3 { uint256 constant lookup_point = 4; bytes constant points_ids = hex"010101010101010103030303030103000000"; uint256 constant omega = 199455130043951077247265858823823987229570523056509026484192158816218200659; - uint256 _etha; + uint256 constant _etha = 23625454313544905426346299048229678104684481021196451178545456502003633541374; struct commitment_state{ bytes leaf_data; @@ -290,10 +290,11 @@ contract modular_commitment_scheme_circuit3 { function initialize( bytes32 tr_state_before - ) external returns(bytes32 tr_state_after){ + ) internal returns(bytes32 tr_state_after){ types.transcript_data memory tr_state; tr_state.current_challenge = tr_state_before; - _etha = transcript.get_field_challenge(tr_state, modulus); + uint256 etha = transcript.get_field_challenge(tr_state, modulus); + require(etha == _etha, "Wrong etha"); tr_state_after = tr_state.current_challenge; } @@ -416,7 +417,7 @@ contract modular_commitment_scheme_circuit3 { uint256[5] memory commitments, uint256 challenge, bytes32 transcript_state - ) external view returns (bool){ + ) internal view returns (bool){ types.transcript_data memory tr_state; tr_state.current_challenge = transcript_state; commitment_state memory state; diff --git a/contracts/modular/circuit3/gate_argument.sol b/contracts/modular/circuit3/gate_argument.sol index b0136b3..2b4a577 100644 --- a/contracts/modular/circuit3/gate_argument.sol +++ b/contracts/modular/circuit3/gate_argument.sol @@ -22,6 +22,7 @@ import "../../basic_marshalling.sol"; import "../../interfaces/modular_gate_argument.sol"; import "hardhat/console.sol"; + contract modular_gate_argument_circuit3 is IGateArgument{ uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; @@ -30,10 +31,9 @@ contract modular_gate_argument_circuit3 is IGateArgument{ bytes calldata blob, uint256 theta ) external view returns (uint256 F){ - uint256 sum; - uint256 gate; - uint256 prod; - uint256 theta_acc=1; + uint256 theta_acc = 1; + uint256 eval; + } } \ No newline at end of file diff --git a/contracts/modular/circuit3/gate_libs_list.json b/contracts/modular/circuit3/gate_libs_list.json new file mode 100644 index 0000000..0d4f101 --- /dev/null +++ b/contracts/modular/circuit3/gate_libs_list.json @@ -0,0 +1,2 @@ +[ +] diff --git a/contracts/modular/circuit3/gate_linked_libs.json b/contracts/modular/circuit3/gate_linked_libs.json new file mode 100644 index 0000000..0d4f101 --- /dev/null +++ b/contracts/modular/circuit3/gate_linked_libs.json @@ -0,0 +1,2 @@ +[ +] diff --git a/contracts/modular/circuit3/lookup_argument.sol b/contracts/modular/circuit3/lookup_argument.sol index 18c5254..eef5497 100644 --- a/contracts/modular/circuit3/lookup_argument.sol +++ b/contracts/modular/circuit3/lookup_argument.sol @@ -25,8 +25,8 @@ import "../../cryptography/transcript.sol"; import "../../interfaces/modular_lookup_argument.sol"; import "hardhat/console.sol"; -//contract modular_lookup_argument_circuit3 is ILookupArgument{ -library modular_lookup_argument_circuit3{ +contract modular_lookup_argument_circuit3 is ILookupArgument{ +//library modular_lookup_argument_circuit3{ uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; uint8 constant tables = 1; uint8 constant sorted_columns = 2; @@ -59,7 +59,7 @@ library modular_lookup_argument_circuit3{ uint256 lookup_commitment, uint256 l0, bytes32 tr_state_before // It's better than transfer all random values - ) internal view returns (uint256[4] memory F, bytes32 tr_state_after){ + ) external view returns (uint256[4] memory F, bytes32 tr_state_after){ bytes calldata blob = zvalues[0xc0:]; lookup_state memory state; state.V_L_value = basic_marshalling.get_uint256_be(zvalues, 0xc0 + 544 + 0x40); diff --git a/contracts/modular/circuit3/modular_verifier.sol b/contracts/modular/circuit3/modular_verifier.sol index ce9e673..841912b 100644 --- a/contracts/modular/circuit3/modular_verifier.sol +++ b/contracts/modular/circuit3/modular_verifier.sol @@ -66,8 +66,9 @@ contract modular_verifier_circuit3 is IModularVerifier{ _gate_argument_address = gate_argument_address; _commitment_contract_address = commitment_contract_address; - ICommitmentScheme commitment_scheme = ICommitmentScheme(commitment_contract_address); - tr_state.current_challenge = commitment_scheme.initialize(tr_state.current_challenge); +// ICommitmentScheme commitment_scheme = ICommitmentScheme(commitment_contract_address); +// tr_state.current_challenge = commitment_scheme.initialize(tr_state.current_challenge); + tr_state.current_challenge = modular_commitment_scheme_circuit3.initialize(tr_state.current_challenge); transcript_state = tr_state.current_challenge; } @@ -119,9 +120,11 @@ contract modular_verifier_circuit3 is IModularVerifier{ { uint256 lookup_offset = table_offset + quotient_offset + uint256(uint8(blob[z_offset + basic_marshalling.get_length(blob, z_offset - 0x8) *0x20 + 0xf])) * 0x20; uint256[4] memory lookup_argument; - (lookup_argument, tr_state.current_challenge) = modular_lookup_argument_circuit3.verify( + ILookupArgument lookup_contract = ILookupArgument(_lookup_argument_address); + (lookup_argument, tr_state.current_challenge) = lookup_contract.verify( +// (lookup_argument, tr_state.current_challenge) = modular_lookup_argument_circuit3.verify( blob[special_selectors_offset: table_offset + quotient_offset], - blob[lookup_offset:lookup_offset + sorted_columns * 0x20], + blob[lookup_offset:lookup_offset + sorted_columns * 0x60], basic_marshalling.get_uint256_be(blob, 0x81), state.l0, tr_state.current_challenge @@ -158,14 +161,14 @@ contract modular_verifier_circuit3 is IModularVerifier{ bool b = true; //8. Commitment scheme verify_eval { - ICommitmentScheme commitment_scheme = ICommitmentScheme(_commitment_contract_address); +// ICommitmentScheme commitment_scheme = ICommitmentScheme(_commitment_contract_address); uint256[5] memory commitments; commitments[0] = uint256(vk2); for(uint16 i = 1; i < 5;){ commitments[i] = basic_marshalling.get_uint256_be(blob, 0x9 + (i-1)*(0x28)); unchecked{i++;} } - if(!commitment_scheme.verify_eval( + if(!modular_commitment_scheme_circuit3.verify_eval( blob[z_offset - 0x8:], commitments, xi, tr_state.current_challenge )) { console.log("Error from commitment scheme!"); diff --git a/contracts/modular/circuit3/permutation_argument.sol b/contracts/modular/circuit3/permutation_argument.sol index 0f78fee..cbd31b6 100644 --- a/contracts/modular/circuit3/permutation_argument.sol +++ b/contracts/modular/circuit3/permutation_argument.sol @@ -49,7 +49,7 @@ library modular_permutation_argument_circuit3{ uint256 h = 1; uint256 g = 1; - for(uint8 i = 0; i < permutation_size;){ + for(uint256 i = 0; i < permutation_size;){ uint256 tmp = addmod( gamma, basic_marshalling.get_uint256_be( diff --git a/contracts/modular/circuit4/commitment.sol b/contracts/modular/circuit4/commitment.sol index fdfdde0..e5a9bd5 100644 --- a/contracts/modular/circuit4/commitment.sol +++ b/contracts/modular/circuit4/commitment.sol @@ -26,7 +26,7 @@ import "../../containers/merkle_verifier.sol"; import "../../algebra/polynomial.sol"; import "hardhat/console.sol"; -contract modular_commitment_scheme_circuit4 { +library modular_commitment_scheme_circuit4 { uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; uint64 constant batches_num = 5; uint256 constant r = 2; @@ -40,7 +40,7 @@ contract modular_commitment_scheme_circuit4 { uint256 constant lookup_point = 4; bytes constant points_ids = hex"01010101010101010303030303010103000000"; uint256 constant omega = 199455130043951077247265858823823987229570523056509026484192158816218200659; - uint256 _etha; + uint256 constant _etha = 21408166461546097750498338983278817919292759452620061815139466303960054857463; struct commitment_state{ bytes leaf_data; @@ -290,10 +290,11 @@ contract modular_commitment_scheme_circuit4 { function initialize( bytes32 tr_state_before - ) external returns(bytes32 tr_state_after){ + ) internal returns(bytes32 tr_state_after){ types.transcript_data memory tr_state; tr_state.current_challenge = tr_state_before; - _etha = transcript.get_field_challenge(tr_state, modulus); + uint256 etha = transcript.get_field_challenge(tr_state, modulus); + require(etha == _etha, "Wrong etha"); tr_state_after = tr_state.current_challenge; } @@ -416,7 +417,7 @@ contract modular_commitment_scheme_circuit4 { uint256[5] memory commitments, uint256 challenge, bytes32 transcript_state - ) external view returns (bool){ + ) internal view returns (bool){ types.transcript_data memory tr_state; tr_state.current_challenge = transcript_state; commitment_state memory state; diff --git a/contracts/modular/circuit4/gate_0.sol b/contracts/modular/circuit4/gate_0.sol new file mode 100644 index 0000000..3721784 --- /dev/null +++ b/contracts/modular/circuit4/gate_0.sol @@ -0,0 +1,51 @@ + +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) 2023 -- Generated by zkllvm-transpiler +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity >=0.8.4; + +import "../../../contracts/basic_marshalling.sol"; +import "./gate_argument.sol"; + +library gate_circuit4_0{ + uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; + + function evaluate_gate_be( + bytes calldata blob, + uint256 theta, + uint256 theta_acc + ) external pure returns (uint256 F, uint256) { + uint256 sum; + uint256 gate; + uint256 prod; + + gate = 0; + sum = 0; + prod = 28948022309329048855892746252171976963363056481941560715954676764349967630336; + prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 576), modulus); + sum = addmod(sum, prod, modulus); + prod = basic_marshalling.get_uint256_be(blob, 512); + prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 544), modulus); + sum = addmod(sum, prod, modulus); + gate = addmod(gate, mulmod(theta_acc, sum, modulus), modulus); + theta_acc = mulmod(theta_acc, theta, modulus); + gate = mulmod(gate, basic_marshalling.get_uint256_be(blob, 352), modulus); + F = addmod(F, gate, modulus); + + return( F, theta_acc ); + } +} + \ No newline at end of file diff --git a/contracts/modular/circuit4/gate_argument.sol b/contracts/modular/circuit4/gate_argument.sol index f707a54..1812011 100644 --- a/contracts/modular/circuit4/gate_argument.sol +++ b/contracts/modular/circuit4/gate_argument.sol @@ -21,6 +21,8 @@ import "../../types.sol"; import "../../basic_marshalling.sol"; import "../../interfaces/modular_gate_argument.sol"; import "hardhat/console.sol"; +import "./gate_0.sol"; + contract modular_gate_argument_circuit4 is IGateArgument{ uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; @@ -30,23 +32,10 @@ contract modular_gate_argument_circuit4 is IGateArgument{ bytes calldata blob, uint256 theta ) external view returns (uint256 F){ - uint256 sum; - uint256 gate; - uint256 prod; - uint256 theta_acc=1; - gate = 0; - sum = 0; - prod = 28948022309329048855892746252171976963363056481941560715954676764349967630336; - prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 576), modulus); - sum = addmod(sum, prod, modulus); - prod = basic_marshalling.get_uint256_be(blob, 512); - prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 544), modulus); - sum = addmod(sum, prod, modulus); - gate = addmod(gate, mulmod(theta_acc, sum, modulus), modulus); - theta_acc = mulmod(theta_acc, theta, modulus); - gate = mulmod(gate, basic_marshalling.get_uint256_be(blob, 352), modulus); - F = addmod(F, gate, modulus); + uint256 theta_acc = 1; + uint256 eval; + (eval, theta_acc) = gate_circuit4_0.evaluate_gate_be( blob, theta, theta_acc ); F = addmod(F, eval, modulus); } } \ No newline at end of file diff --git a/contracts/modular/circuit4/gate_libs_list.json b/contracts/modular/circuit4/gate_libs_list.json new file mode 100644 index 0000000..ee835c4 --- /dev/null +++ b/contracts/modular/circuit4/gate_libs_list.json @@ -0,0 +1,3 @@ +[ +"gate_circuit4_0" +] diff --git a/contracts/modular/circuit4/gate_linked_libs.json b/contracts/modular/circuit4/gate_linked_libs.json new file mode 100644 index 0000000..ee835c4 --- /dev/null +++ b/contracts/modular/circuit4/gate_linked_libs.json @@ -0,0 +1,3 @@ +[ +"gate_circuit4_0" +] diff --git a/contracts/modular/circuit4/lookup_argument.sol b/contracts/modular/circuit4/lookup_argument.sol index f2b49bd..133485f 100644 --- a/contracts/modular/circuit4/lookup_argument.sol +++ b/contracts/modular/circuit4/lookup_argument.sol @@ -25,8 +25,8 @@ import "../../cryptography/transcript.sol"; import "../../interfaces/modular_lookup_argument.sol"; import "hardhat/console.sol"; -//contract modular_lookup_argument_circuit4 is ILookupArgument{ -library modular_lookup_argument_circuit4{ +contract modular_lookup_argument_circuit4 is ILookupArgument{ +//library modular_lookup_argument_circuit4{ uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; uint8 constant tables = 1; uint8 constant sorted_columns = 2; @@ -59,7 +59,7 @@ library modular_lookup_argument_circuit4{ uint256 lookup_commitment, uint256 l0, bytes32 tr_state_before // It's better than transfer all random values - ) internal view returns (uint256[4] memory F, bytes32 tr_state_after){ + ) external view returns (uint256[4] memory F, bytes32 tr_state_after){ bytes calldata blob = zvalues[0xc0:]; lookup_state memory state; state.V_L_value = basic_marshalling.get_uint256_be(zvalues, 0xc0 + 608 + 0x40); diff --git a/contracts/modular/circuit4/modular_verifier.sol b/contracts/modular/circuit4/modular_verifier.sol index 4346a08..6274de7 100644 --- a/contracts/modular/circuit4/modular_verifier.sol +++ b/contracts/modular/circuit4/modular_verifier.sol @@ -66,8 +66,9 @@ contract modular_verifier_circuit4 is IModularVerifier{ _gate_argument_address = gate_argument_address; _commitment_contract_address = commitment_contract_address; - ICommitmentScheme commitment_scheme = ICommitmentScheme(commitment_contract_address); - tr_state.current_challenge = commitment_scheme.initialize(tr_state.current_challenge); +// ICommitmentScheme commitment_scheme = ICommitmentScheme(commitment_contract_address); +// tr_state.current_challenge = commitment_scheme.initialize(tr_state.current_challenge); + tr_state.current_challenge = modular_commitment_scheme_circuit4.initialize(tr_state.current_challenge); transcript_state = tr_state.current_challenge; } @@ -119,9 +120,11 @@ contract modular_verifier_circuit4 is IModularVerifier{ { uint256 lookup_offset = table_offset + quotient_offset + uint256(uint8(blob[z_offset + basic_marshalling.get_length(blob, z_offset - 0x8) *0x20 + 0xf])) * 0x20; uint256[4] memory lookup_argument; - (lookup_argument, tr_state.current_challenge) = modular_lookup_argument_circuit4.verify( + ILookupArgument lookup_contract = ILookupArgument(_lookup_argument_address); + (lookup_argument, tr_state.current_challenge) = lookup_contract.verify( +// (lookup_argument, tr_state.current_challenge) = modular_lookup_argument_circuit4.verify( blob[special_selectors_offset: table_offset + quotient_offset], - blob[lookup_offset:lookup_offset + sorted_columns * 0x20], + blob[lookup_offset:lookup_offset + sorted_columns * 0x60], basic_marshalling.get_uint256_be(blob, 0x81), state.l0, tr_state.current_challenge @@ -158,14 +161,14 @@ contract modular_verifier_circuit4 is IModularVerifier{ bool b = true; //8. Commitment scheme verify_eval { - ICommitmentScheme commitment_scheme = ICommitmentScheme(_commitment_contract_address); +// ICommitmentScheme commitment_scheme = ICommitmentScheme(_commitment_contract_address); uint256[5] memory commitments; commitments[0] = uint256(vk2); for(uint16 i = 1; i < 5;){ commitments[i] = basic_marshalling.get_uint256_be(blob, 0x9 + (i-1)*(0x28)); unchecked{i++;} } - if(!commitment_scheme.verify_eval( + if(!modular_commitment_scheme_circuit4.verify_eval( blob[z_offset - 0x8:], commitments, xi, tr_state.current_challenge )) { console.log("Error from commitment scheme!"); diff --git a/contracts/modular/circuit4/permutation_argument.sol b/contracts/modular/circuit4/permutation_argument.sol index fa530d9..e74a4df 100644 --- a/contracts/modular/circuit4/permutation_argument.sol +++ b/contracts/modular/circuit4/permutation_argument.sol @@ -49,7 +49,7 @@ library modular_permutation_argument_circuit4{ uint256 h = 1; uint256 g = 1; - for(uint8 i = 0; i < permutation_size;){ + for(uint256 i = 0; i < permutation_size;){ uint256 tmp = addmod( gamma, basic_marshalling.get_uint256_be( diff --git a/contracts/modular/circuit4/proof.bin b/contracts/modular/circuit4/proof.bin index b21d8dc..11af0a0 100644 --- a/contracts/modular/circuit4/proof.bin +++ b/contracts/modular/circuit4/proof.bin @@ -1 +1 @@ -0x040000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d700000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb180000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d327b0d16751a465232f2181aec250c511d722d0fc80c4f283fae78db223f96cb0000000000000039327b0d16751a465232f2181aec250c511d722d0fc80c4f283fae78db223f96cb2f5497c3241d226f7a598e125b70d4977a432d3256a5cca609eecd9708197ef73c67417049835f9afeba78869cb93d952c67165acc56a07672e0c980ab3df1f42ca6f6cfb491ac2d63bfc65bc93426f4fc7c1707955613eb6622712c287f7ad02e0447316f90de06f9a45aa10f9e33e954e90bd5d87d3de1d9af2bcf5835b9c01f42d20e86d85ce2f2bedfcaee04c2c88798a831cec778463324a315ca7d660d261563f72dd45622e035c5254e17038e41b970391e8b4a1674e44845b90ca0bd1c4e1a48a239d06ebdba5ef6a617cdea616e1700f74b6727cd5ccd92f472fe3f327b0d16751a465232f2181aec250c511d722d0fc80c4f283fae78db223f96cb2f5497c3241d226f7a598e125b70d4977a432d3256a5cca609eecd9708197ef73c67417049835f9afeba78869cb93d952c67165acc56a07672e0c980ab3df1f42ca6f6cfb491ac2d63bfc65bc93426f4fc7c1707955613eb6622712c287f7ad02e0447316f90de06f9a45aa10f9e33e954e90bd5d87d3de1d9af2bcf5835b9c01f42d20e86d85ce2f2bedfcaee04c2c88798a831cec778463324a315ca7d660d261563f72dd45622e035c5254e17038e41b970391e8b4a1674e44845b90ca0bd1c4e1a48a239d06ebdba5ef6a617cdea616e1700f74b6727cd5ccd92f472fe3f2d0ad27e9cdc35ae7f029d045a9ee1264ad9b87df284ea8ec30721138edbc4dc2e0513a9e37a324d5bec2bdd52422f5572e50f9a603aed830cf885fd376e8580213512f755aea8bd75050bd7d649b6613b649871744b991958a487efc18cae330d6c03bdcc41fa6ea6f2d5a28898bbc461de4ed30558eb1eec4a006d236b9f1810f431fbcd688ceee17e0e0b5613b9ec7d240bfa443cb2efadcd7471dff369471efa2279781ce1bd13c856bbc25d85030f7e4f6209ce07f8a25cc8572e6e973a07f0cb6a6cd261f092161b3423070892edfcb031f027f6a71fd01578951301b31b7dfcbb00fdbd06eeeb21d935a934c62546dd9731ddaf6e14cbae0e5c3f57d2243c65637777d1ee46c13fa6d368a503c6ea125afaa809f6121faf4f7e8634ec2f9758a45b1fbfb114ad5e5fb7268addfacdb39df8de9ab175bf73a33609611e3183f420191a7214d2e19de89c15d6db0e4ebf5720f7dd7efe84c55be8d7d5f010f4eb1c5290c61346203e82423cee59a6035bfd481bad6865fea0ccb30cc0122e0513a9e37a324d5bec2bdd52422f5572e50f9a603aed830cf885fd376e858019ebb7c089582fa33629ef56d0c4d93d9d5e3993993a023fac04c0685da47c343a73f59d35fce36e759ee3b753f2f4d97d01cf186f5e7c532c780e32ceef3b1d03f6e4c91f3c427f21495ad6b7e4078ceda5eda778cb763f811521c64f1dc070294fd51015a092e0a6b142a1790ecb1bae622443b27626f464a54e0c2be735a0058929c396e1cfe2da0a8d591cc86315758e91ab116f236de9dc0f6c4db89c0e3fd0ca8f3234758577329d6c6758c49bf9aa4a2494805125375911931004ba96211b4cc4743a31c5e78efc48533c61b8e6d5d9f910897f14db1708121ee1370d17841619b3679d957e1e617bca8633c024f01b0cba812f067610ba5c164a168f13cc23004f2aabbc9b7f05ca258e0b57a543e2bfb5ac023244bc9a46a0276b7805694d041d0c9aab3281bf7e59f3f7c9c191cd0228e0f01535146768f398959710e96fc42fba5e69b0131cd7b3a149271a1582a0916ccb1b389d76a1edb94cc10bcc33705419b9740be0d97c08d00bc66a788f5f20199224b87e9f46b13fbe3a0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000110f667450a7574cb9d1d0912ac36d60a3c869f9fd149911fe0f86a52fa4e72fe398709c46a83e346445463e967b9e725825d34751a81f7b68434a5d33fc3124219c4bfb5dd35f718bce7ae1cb33193ed1c61a20b35495d6140a97fb2b6da37a73f4cfa0c06e801097a03c96c559838e6fa5ba08b5f947584bf02948e08fa80cb252639ddaa4e17c98948a6854b4c509eeffb69776d4f385aea193ab07b81964432fd713579adaca53735c319006da7078fffddeb9129920b427126eda9afff002f995c860d831b5bf34f387386996fadabc41dc7974300dcf3479f47488949210ca14eb83b12b3f887a9a6ed540eaf3b5dcbd8e1c963017b5f5d05aa90f6908f3ff7251b08995e55e7ba9e7a859c903c08e6a7757756060827ce0fbd6dbe93600f3dca02799d48538dd4c0490bdfee28697478a942198a3dc1a6e93962718f3b04bbd8d0a0cca42812037505fc1365df4ccd16105d237183bde67569696832e21ae485dd296bac5a2ee214f13faaf86380cb024dd55ded15bdfd8c729f81768f0bcdbfe7613b95abd6f7da21b0929eb3a2b7838b32e642c7a2fc1b408bc7995f37930d707fa9c5583acca7f8524ff36429d17b2ab97b893aa359a59acea510db000000000000000a00100103020203060402000000000000001d020202020202020203030303030202030101010202010101010101030300000000000000020000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a7849900000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000002010100000000000009100145de7c766ce3ef7a2a3f7f83c0179f1eab4bef2ab0e586d85964caf6d59fcd3eba218389931c1085d5c0807c3fe861039b4d0cde9c1394c0d3cc22092a6034065d586e502073ad62d33d7d92c0761b99587babd5747ba239bef7f6d22c1f0139a2a791afdf8c529d2cc2826d3f89e488ee1d5033d87d795f6e38f62dd3e1001fd2ba2790a24262ee203373ddc24e89feba6a5b2b466a2b20bad7d21adc9b05202d45d86f5dbd9d11dfcc8c223db176238c2ea0de068ef07872591ae52364fc1f1da2c5d32b4beea6a1014354cb88b1b516e1cfc5c620a0714bd540864f071720e25d3a2cd4b411595efebcab34774e6d2fb72c4386d87b27e15bac79b0f8ea0145de7c766ce3ef7a2a3f7f83c0179f1eab4bef2ab0e586d85964caf6d59fcd3eba218389931c1085d5c0807c3fe861039b4d0cde9c1394c0d3cc22092a6034065d586e502073ad62d33d7d92c0761b99587babd5747ba239bef7f6d22c1f0139a2a791afdf8c529d2cc2826d3f89e488ee1d5033d87d795f6e38f62dd3e1001fd2ba2790a24262ee203373ddc24e89feba6a5b2b466a2b20bad7d21adc9b05202d45d86f5dbd9d11dfcc8c223db176238c2ea0de068ef07872591ae52364fc1f1da2c5d32b4beea6a1014354cb88b1b516e1cfc5c620a0714bd540864f071720e25d3a2cd4b411595efebcab34774e6d2fb72c4386d87b27e15bac79b0f8ea31870947f95bdea9c3c192cb3bbf7effe29d0fb7bf7284c1d7e0d66acf118ab01040c9277dc8c6351fd039b70656118046072e337c872d37814fdf794ba768ca23395a400a684d94c6d78fbb9be15c3f755ec66343bd022f90dd2d33a0d5bb6d0acb6a404135136d1257fddd30a618cd231dcdf8bb21b7ee6788bc2a9fab0c8a20aff83835a5b4ccf729e3b4b253bd1f7d7324fa0ce86a7dfa7275830f1bf16423a3be95ea9f18d2ba1bdc9e20d742dd3d63c827f198de024754695b2fac8ef30f2d75830767eebf3d2ec7ab5e591790e76cd7fa3992cd0c5af72eed276f9b0d3aea6a4f9e6c98e1713851647dc952661f58279d7f9aa9ecb65c91af23d535b8328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff41daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f0e9b28b272c02d11c9386c8f3a096b2194e24ee296dde17998ff0afab4195ecc07b3c99b61e73f8c0eddc62acc9a1fce8d7809e368c4ace8b061ea854a2e59952b3f9c77fc3bd3c17566dd79285f24c0ec915bdd0f6a6b45c99c5e3b9018b9e624f3cc984102265dcdd7c86bc903d5b2b9219ccfd1a413f5b054954914ad8aae0d9535253cea21b1c3288e55a6ff883ef8e2c72bf8af28661332775036c2b547326acadac315de4e3cd771aa590077c12963d1d0109dd0b585fab99cc93d4abb0366d727d9aaca990ea776cb40f747b75dcdca7f4a4ed488981fa6800244c6c43da2a966592536649a711dff3bf0f4a74cc16ad1468aaed09b587ee85389e9c0267ca9f3f1945e342c34313d36bf9ef44b73028df942f4e884208fbe278e376d04e8dc5b86627028ee830fa2a491533bf63ded5c31b1fd784bc6cfe9059dfc0926ebd1db0b50273aecb094013254112043d1fdff1322837eb6f0ff3f9f605059238710505a577658d68dfa8ace1d6b145ebeac700fe356c93f241d5a50fef1be000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010a4b695336fadffb16221ad56b88e309067aabfea983e419540e87388a687bb1365e35b2285db7a3b4bb01ba336d515e8f0a2b46652a1900d40f53b300b79b111a681287f0c2239678da0a86fc0e5f21979cc1997ace336bf82a325897914ca60ddbb77e73eb884a924bed63c47cb5789ac9f481f6090483dccfb7cdc075d1c62b5f384106e22c1ae0e22d0568f5c72c8537845943df75acad4ee959c08c13012abc9d3523b121867aaaae3dece77b60da4c8c4a66f74a3a1ca15020a160346c07fd0ddc9e8b90becc6269c2d3c35e890ea7c59c46bf11da87800bf0e4299a6c389d2b34774646c1bf6a37c919794404f60d5300c02fd2ddc7c9ae96f0446cab30f72ec3d251ad975ffeb2ed3fedfbe5d7370b854a632341e531bed3f736460925fb45e63515e7116b768671088b6af7ec7db33b4a5b6a8316aeca6773fe1cb206dbb13b198cd694977a105e7a27430076094f4914d7b1611ddfeabac5ed8031272bad86d83b6db2a2a2ba9e210f957bf525e12b6f996b4e3e0cc17fa944a95c0a924fc1d4f13a68d683b2191a5a1c0692c030c5f8ec9ae2cf2d982ace99bc491c343804c8d526091accc94dea8aae47476dbd14c18793d25c10aef75ed549193409777425b01f9ded89477e0f80a19fefa115aae8210baf99b782a50300e03f207ccdf9bf29ee99bd623a4e3d76d0860d6fab12c44c844e962f1ed2d8069bf42589aa8de58cc8c40c56b71d5acd3ac1fe3d01c51aea3b697d79ca9bfca144fc056af1c011043449180435166dca3417109c14d4dbbf9c5964e742bb5bcea5ab166befb5171f47394b6710b5cbf1e0a257d568300d169b1ede64dfad66ceb1702994104ae8e0b8c6b498ef4a340e1f5dca7130cbfc365dfcbac8513f99314e91301bae89739c641e7903538cfbb9632b94e46ff438240e7ebecb2d760209772f0fe451768c639be186fcac7304469cd48d622907d128ea9cda620376fdf688d2308a68af420df4985d10a1c0ea9eefd981a264d0fccd5d26ee7050870a2f53e80f759750bdf20b67a2ef5e3f15611026a0a4342b0c7f9bf4aabce065f5d0ac1932b40b6c4a45c6f9d15328c4951aaf3f21582d20d41be66fdca9ffdc32eca3850d4bf493b5ba39062eacd73b6ae550c100ee6bdb353112abbc833110cd135c7c166befb5171f47394b6710b5cbf1e0a257d568300d169b1ede64dfad66ceb1702994104ae8e0b8c6b498ef4a340e1f5dca7130cbfc365dfcbac8513f99314e91301bae89739c641e7903538cfbb9632b94e46ff438240e7ebecb2d760209772f0fe451768c639be186fcac7304469cd48d622907d128ea9cda620376fdf688d2308a68af420df4985d10a1c0ea9eefd981a264d0fccd5d26ee7050870a2f53e80f759750bdf20b67a2ef5e3f15611026a0a4342b0c7f9bf4aabce065f5d0ac1932b40b6c4a45c6f9d15328c4951aaf3f21582d20d41be66fdca9ffdc32eca3850d4bf493b5ba39062eacd73b6ae550c100ee6bdb353112abbc833110cd135c7c1663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac53a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f216232e0e89af62d4b5e0a44b1fdae3b06376c9123be386de90ef339f6846a620c8509ae342a78dbce2f652ce83bc8df13cae92ffd4acd96c384d84b5b62829aa4c6374baf5ec512737c4b30713f1f990aee557a2b2289954c4678ebb40fec4e4b6d03c88a181de5af86bd618c7ca6d2d1c6c23247c7fb1d7c35badde3a77e53e275325f6801ed604899667b4ebb69d9690e57da2a8bdf801b1adb26780d848343d034dc26445dfc3d86f0c6ad853b8e90dc59275b991680e24ef59731a1d97c84bd0ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b22e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d57145a40e4099c34ab09aab12529be4211daaf783bee3df5d9e430c580d2149a242a2adbcd6a52d4ca8f75b25d259380a1098272a199bd1f2a1d40b13cab90e27536bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b93c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db13d9536a1756b57977f4cfff193accd1791336c49366844ba2d645ce68c53b622c26ac95e8a94a86880b3000e6c5332ea933623775e674cff656eb1e973ac4a03a998bf321f5873907bda1c579b15469252f09b41549c90c25bb492d05df9dd2038d9370f2da1f034ab6518e9781106389888a8eb86fb388fc3d26233186f1cd05a06bc828158da87456245d79afa1ca157baa314ba970c65ae2cbcce9fac79716e4a49a1b1c4b95fe7d9cc2d55b61df509e66a0525a66ff73b12c1bd7c770781b46465e3c70ecdd0e0c1e20f972013085ffaeb6c71900bacd61867f0ccbf332144935ee1906a5e834dc3540b285bc5db948c446c33a5e145c1cfc9c2b639cdc0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000128b6a949a98557ed661e6826f439e37e39883f66796807c1d29bd8c7539573c13862ce210ececfd7b817620860447ff78784eb4af321ec9e27f05f2f5451fb7f356c858080243e1e23de689290cad1f7b21140c5de4b42fba634ba11bf40976e370de234df18b90befbdd86f6241e033a5567b925e424b3431d49176644332f13c1c369f65a8036f57a9622d36d32789cbbe43fb1dd06c4a411a763ef3c7c68d006729907bbbb0701b54ec80756375bbb23ac04b26ea12d9960b88de06309b931abbcf488bb24808d0bd73de67365292544be194cda24be6eeeec39813da259229dfc5f2619a8ca7ed352c44841d419997ad2f90c972db3b924c8d26d49d6b7f1545615bddd133386439065ecf62171e476d75d6b61e77fcfdd3900175065dd027a8b8dcfb45f46c55f981d2759b2f1afdfd79ad2e4adf4367d9c634a1e5163f1776ea8efab940e51556ef6f596294c934755fe32a21f74c75b6d4478110ab0a19a7564b8f6a72600324c1fd94a05db797bd21ebf14589e62e349092cccb5e23391461b3f2e57800b721cf56f9bfdf240d6b58cf3827e1e584156d5d44179cc92db22612aae0e8713a2eac100b24eb29ef092e078b9945eb40560ab1e957689a215685f16a27bf505bca890225026fc6a8f5b0beb5cb0fa6c9a52e1047fb5f6135e6a3f2ab3f9e8b29bb7eef83eb94d7b55a800a5959abb30d09086746bc794034a6d4b4686fb6374f2d7d744e477ceb23a2374c9877b52b2063c9e7a646c83e33a582321fdd9e31ce493fe240721b5cfe37bb00d527b4e45ad82fb81b84b0350f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b9130b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d43383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d124019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b007dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea510f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b9130b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d43383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d124019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b007dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea5111fa42639b21ecaf1ed4e983217b62a6709fcf49a5422b064a6309c8e2c557662260f666d094d1a6403be2dc098fb8f586eb4ad8166745ba69d9a8268d67ce9503c88a181de5af86bd618c7ca6d2d1c6c23247c7fb1d7c35badde3a77e53e275374baf5ec512737c4b30713f1f990aee557a2b2289954c4678ebb40fec4e4b6d266251b54c6d2543d21425e07ec0aeda47502ad99e9fa2f46262cd952d3d00001d0e91854489c12ebe7a3fe60a253723a77be6156df5a2af0472425de5c64eb83db11dddd7e8aad9d0c5bf60ddc65996faec969496034479f8b4e1d72b5460f71b1353dbdcbacf05d7f8445e7cd1ac7ebae5ae3a8fe2a96f0215074076abd6801663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac53a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f216202eff5c09eb16740fed884a0786270bd6ae9367ba870daf98c4d5f53a9b3eff5056cb4030f4d5c2e8923e36a4a17988b6c366788df71a22da6be18e7fead30e22a3d338446f863ca23c98a0037b1cb92ef7481ea68ed51df93ec437c9ee6c62726535a3a6a58badd7493abe4d6d73c1c6827bbfd729d60364f9505a38649e601301085dfc548f37337410e1c479fc2a5308028246c3666793aae28f7afd7a4c60fef7a203ab70c8cc8bef1e3b8603d5af1c670d79d1692a25e7f07f550285b3c281f93e31b34c66a0ff541d2cd57a4a516a589dfc5c9fb6ba41a0552a66384b42874107e8464d0280042e2131e84929d24f10459d211d3fefd31e5aecb934f293b9b9b6f33cfb0e18d68814e958b6db9b5634adb0005aeb525e72228d614a125008c65389bff019e72a20f5676b60d140e987fe94291f05692d89335cbe536953153c2f24ce09e84fcc108675d0bc4c137c3b7a57c161035da38e899e79afdf616c7495d0db7faf2cd22059a40ec09290076b48b998d2d040e8c73b2e7a029cb000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010a77e9e2f5c9decde3c20ac365dfbd881bb3a6615ab59a4bc66ec21a656a02370a8707af17b0bdc3c79b03a9aa1c77d11043bf7da8f3ec65f4b62939256255bd0cf32af0920cb6833e2cdd4973cc95d06f74be2b9aad1564e7286aa2ed6d06800c2a3727a02fd3971b7aa1e8e8568118580029b7fef5509b22eeb3adc92b78c71c5f476cf73bbc76acda0532c29b2b591f3b519d36348a564b9a73bb4075952835dfc1b6e62bc2c247e921b0cf47cb6fda329ea076c19be4dfd56fc6df5c6c1714e1d4eefcde0402e1d6c3a5432a6e4863d03732a589d725c8e4301e17557a2309c2935864dc5a321329feb8892d4af3a6d9ec40362b97d82ade559a657c26de0b489ccfde5c0bcbe5c0c3948ae38f38dd4471c97b39a178330567d9a231eae50b06fe4b17d38a2bcbde1ea7e1397baf2176522bf83dbfe322371590bd7576911dd5fab42cd695f3411fa4640fb7c0b36935ade1c97bb339a9d35369919d43273e64e353793dd299c839c63ad1c5569e045884d953cf76fa46c20b9a0693b6dd2064891125f464f32054d0d8845492b045cfe28c63f755d1e2d34efc4010c7320661feb577d1fb7ed0fbaa8e8090379d945e0b4e567cd8e3486af825ed5e3e303934756291c8abbcd7f241acd35c9b22791f37bc792f637e4aab7ca2b0d6abd01f5301c210dbd291f1004a3d61ff27e4aa6df87d83183c6e72b38c42c4cb551e2c71d1c379ab97722272a31c67b8dd6aefc44b12907aa6dc31366fb7dec2529725867672bb5711393fc37039853258ec1f670c1e0af9944c1c8f7b473668138e1dcb6a7e37beb060963ff69ec240c9dbacbf88d2179940f941cc64926ad0c37622349581c8414f9f69c009613dbf362475871029f1b3b8225760cc5a952f3c8b14f9147716b971e2ef3fd119cb43f14a1b307a22636452a716a395021613d14c2b06eb88e9468e1d10c02ee634bc0eb607161ed9a5e8a67482899beae9ec2eb528dd6653719f396eac3f1580f853b67265abc9afe7a8a427d804b81d6e63167b172299ac8e60c69153c0ea7f07ac498dbc9acf4c21a454f3c12878cf919ce9860c52ffa1381c1f295d3b6b84d9a2903b9587257b6a6449746c9005cc27ef706433ad005ec7e3e0d6a2c4947b265d6fc48cbf73809ee8afa72c9d2b20d8108f9d1dcb6a7e37beb060963ff69ec240c9dbacbf88d2179940f941cc64926ad0c37622349581c8414f9f69c009613dbf362475871029f1b3b8225760cc5a952f3c8b14f9147716b971e2ef3fd119cb43f14a1b307a22636452a716a395021613d14c2b06eb88e9468e1d10c02ee634bc0eb607161ed9a5e8a67482899beae9ec2eb528dd6653719f396eac3f1580f853b67265abc9afe7a8a427d804b81d6e63167b172299ac8e60c69153c0ea7f07ac498dbc9acf4c21a454f3c12878cf919ce9860c52ffa1381c1f295d3b6b84d9a2903b9587257b6a6449746c9005cc27ef706433ad005ec7e3e0d6a2c4947b265d6fc48cbf73809ee8afa72c9d2b20d8108f9d1883d6e1d3620a99d127d8cf8f9f75ddfae5984b4c8b4ceb80eeda5649fd19223ba6fdac0b77d30417b290295f5091155d781ed0d0a66a28e5a091ccf9031fab11b3b2cdd522bbab58a1c1e190509f255ef725a55de7262c784576be6a96be2731e58121b4e86da8dee5935258eb584177732ffc36cb6ca749c9dad8b2f3761719da8e2638861c7ac4e5de71bdfc3b42ec37f154f40bbed4c5e50965a0156c061e34c8c6e8e486192e6d95d7e579bb63a7782fdbfb459376a1965feef865efee3e3e384bf13dfde462d8f3db4225ec5fa16abba8710b18a36e808962f7ac6f681dc393bba5987af7a09770b5534817ad1166f535085b6aba31e508f8cc4d8ed43319a2a83a6dd65b246c9f7d539b67b09c3b0afe9bcc31f641e4746e726732ac352254da5cad22b2bb31a255d43899f5be174c33d783688ffa31918b2d0e604e0aa3e0aca0ab123197ca10f0f185664dc33a2a61899b9f56735ccae3c626ebfd29d24250f6b4670e24020e24c8b498f21c523a29da50193ccb3c7dc6b4ca3bbb15c87650577b39bad636654ee00feafcc869db0b5eda86039ff8dfd84b6c28b9127381323f9fbf530967dc8447c416a96fa1e32b0b281b6702eff53454096a4120a62175face17081b04c2f90bd751072c9927d390a4168f3ef47f3a1e5dc86c1f59de8a0531e8f7e4fb3d06f428aef8f5ad712878a8e28c5a38b1b2e1a237963254dea6813b5da4ca9e67e206eeee4fc0d3611637a897ab461015a03a40fbd6361de49f64eb062c88dfecab38be6b904f621dd66dbffe0a97285d8c9d573ea20cb7cf6098d89ae50fef09a9a52427e0b57002e699f8f3f444aa83972adc05083152fefe2d5cb4a80ad8e58ce10bd791ddfd5c517bb3be0a724b1c650caba07b248346947a06877699c6c27985c22d8d9eba78c992069da8ad851e0d75cf575b3d2f2bba4dd6036b377d60076ead05fb8b55a4846f3919a0bd5897c34a6fa31f000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013bfc7e73437838e941b30bc55061f707991cd2401354c928f11e5192bf21e287035215d03f19280475a0f7ade56c805c1844414cc6c7d5d43a32a1284d95ce391d3fcb31ea3f5602987f50cc5bbb4475d99cc487083d941c3422ac153733720e2987767e938f49ceb5a136300f1e279cac702f6413ec0e1f1c2a4a13a5a071070497ee2cc3cfcc130de9ab77fe00412adbd8f866d1433d7961a006ecaf71901229c3fc6f09addff66efa2fd9a1d9e12d03e791a1b55ffd381da08b433e64641d190f7ad9252eb310a3a596fde4803fbb4eaa3bb4e76dde92364395274005f9382ab9a4351600987b3e651dabc9b2f143ba201dcb6344d44e429e7765930d512929cba85ffaa56e69dcf6d1d70d50bf49eee553df7a8c8aa43c72c9862a16a2b23ea623d76a45e4baed8cbf35c1e550e1468e42f45b8566c7a4f019682e1e641a182d041c749fa4cdd9110de7845d7072a18733798f8c49a085be99b7c34fa0362009a1baeb97477f6d4e64928dc03d8cbcde0901aebc1f669d29814f37a339632b2d0d3fdf2db142d977d3c9146a8728db1fca83c67b75f017c4426f32265c113b997a86be98af2f17d8a79df07a43252154bc52fd45b1e0aca7359ffb48a9523e090563f5590aeadeb9e728d72c4df9640af804d59902e74f293a946de26caa260ccb5add26884100a711aa70f34b3d58c265a7dba74c6346dbcebdba5ca1323e267348d1f97e5582faff576cc0b6d3742b0f3556ed1dd67b36e9f86b7040571263cd3c2a53bd6ce3dae3a79032d8d65daee09f378858f5256b36f3e042368c2536d7ae9327c01d3159ed3ae3849187e4fded6c3b9bbd494a7b15ae78e51dfe1ac928516cd83fe2cea612c51c7b6e783d48ab8fcdb13bd24eb21b3e871ae2033a123668dfc6c091f6c1a2267196d7a7346871251770c037420d0a8e5c7995f405edc99720393f6e093e5dd98e692858edde27d6f1dc38e45720265ea3866a0d225b100c5ee1c2d9d1c82ac037f236437cefd1c94fffdca5e58c7113ce5fedc01da4eff3a11e3d262e37d53fc80dc9bca556c732b94d1c75b3a0bfd931a012412bc7503dda68ce4118e8d5c117bb0f512c21e6f67d655d064963d38907dfa4be1438afc2259731bee7172a3ee844f0aef624b2058be79c154fc95d63f8205b432536d7ae9327c01d3159ed3ae3849187e4fded6c3b9bbd494a7b15ae78e51dfe1ac928516cd83fe2cea612c51c7b6e783d48ab8fcdb13bd24eb21b3e871ae2033a123668dfc6c091f6c1a2267196d7a7346871251770c037420d0a8e5c7995f405edc99720393f6e093e5dd98e692858edde27d6f1dc38e45720265ea3866a0d225b100c5ee1c2d9d1c82ac037f236437cefd1c94fffdca5e58c7113ce5fedc01da4eff3a11e3d262e37d53fc80dc9bca556c732b94d1c75b3a0bfd931a012412bc7503dda68ce4118e8d5c117bb0f512c21e6f67d655d064963d38907dfa4be1438afc2259731bee7172a3ee844f0aef624b2058be79c154fc95d63f8205b431d8394ba2e4adcaeaef721748559b459a82e03b51fc3c9ede424d047bd7ed5f20c42ba95e57d85e81e62e43ece358248321ec92aa5f4b75b78640b9689961a6a29d7a4ab01bed336de2374a17e4b97338f6f18bb99d246b53105b90d6014862f048f2c43ec98418df9e7f3e6fcd964d4bcd802356279b7fff0f5824d2622a81622fd51b03acc233e68925827f0ef75cc95274a555a5a6f94cde32383b3c2300e1945226cd708e68d1e2209d7f1c11660f0b044e6400af76672c727c8f2c63f4c284898ae85facafdfae320ee674e0a7af23650af192b3280d49b71d5f31b72de198183a5524851440ba9092293be000c102bcf54e9e649aa7462137a51fb0ed1235b5f0d6a17565734c6c297adb20db96542cc678885f50ad8c48986405d7d6b047780b393c9324d25d3cf2c8399bf9cb8b67dbfc80f7d2ddb11c11af25663f733b78cf9b412db73acc90b9342beb7b17ffc913fc85ea41e2158f0352faeae6f1a2416346f6b199301dfede424ccd873dbda7c06df07bd43968350a9f0a292a838a4c69acff6501a72e569e9fc5ab4730cf015875903e1941d2fd884e26ca3e22f2e19262dea3889e7b527da34f118e3334fcd9c00de89c02fd3a30950473d82342d45e73c2d1dcd4d119abd78c0f4d6543997c790f46466421e1769f0163feb0bd2ba18c3d2e232b2ee6542873f0b29ce0d0134785894b5570f19830fe9c0170e90e8f12de563c256702278f092e4e0796a16a39b211ce96b6f5c3e75091c4a04fcb0e85ac75a0a9b808ddf9524397b69ddea2fa46b65744f635d41fffaf2f63753f8130bb7935f079ed33a7350673bedb3a28e7f0b158660978aa568fe02212fb033017608a7eeb724388fefafffe31880726230674b9504b00319baa73ae4008dcc09ae5e6788bb64034ae180d718e24b52e4742c453c426f7d255fae77793545d96a45aa6ea5b92264f0af8d52cf8cb9b0dfd1fa9c6267318b3d4644f513000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013769680ab63ecaaa42f8ab36cd66071708a2092eac40d4bcd1a97750935c16ea1c428f5987e7d988549776d3adea067071117d4bb5bfe93e7a61b8d04cc5f820284b5da7a60543715d6653c3980ddba964857a83c5cafbcad90ca93b001b3cb71192ccd429ffdbc33aa873528306cce2255869f1d9ba59460593e3621570b2d3239f6ce8c9f23e62596ec8f37e6e31ed8c76e70904e8f35f797c8a954a24535739ba21805083a82be21081957508895078ac3ff3736569df5b0bd1e72752aa5337db9bcb4ac132597251f3b093662863fd5d4dbae9d1fc1bfbb91ae0a4df128715e4191838c6793ce0eedab46ff7b40164355b4a01ab049aac1eefe1908de0cd31a797bcba476347af908a47d925f2a663551021bf9e945010ac36526111fa440d4a88041f79eab2e03f25862a7f0810ed5b6621615e0714cc984d7a339791c928863c8f9ef45b6b0eb9134ea8f240d7bc51318de808699b926f674f8747edc83e2fa18cd7d7619f88f63a82436b21b35ee4e23402b613ea1f28e45c442a92c11e09572d16c06d9feae7d91a9ed14422424ae2e69455324ec3fe0a0ee088ec1308bd30998705f2d20668a24c6613862b97e30af4261efc6667403d134ce6194f3f81097312b287125a4e93f391ba19eefa0c9e08927568eca7576db1b86ccf2f271d30f55850fbae657e196e6e3a1cf67a77b046d03ff6135fe2efeb931f0c0832e5503b02f958392f4330a9e8e4f2e1b570c14a26affe22782838b527a815621c8b64a2287ca5fa58fbeeca7385f50968b8f99cf0e65780efc575385c628e211cc48e2a4e4646b4c815ae94927e28a90e83a57b3634b73e1e3e8f9ece560ed8233b71d5b1b9b94b37ea516b6d81d75713c2f380d31841dd7aeea14e31a9f1290fd6c6d3875f6187e86c68e6dc76cb4d0405096ffc6da1ff64de6c4007ae4a363029392c78a09e7817939719238934b31e418f8c0cdf571c344ec4acf851b5cb0f31e221a4dce7a78a1e0c824e51f880f1d29633e4d730e15f2aec532667730d30ce1dde5b23185875e1f37db1ae077f307402c82475c83a3a024499d9988cf40bf96aa838508645b2963e8b8799da8496d656076ee6fb4b42a96cb2c0053f4034069557c7af79ba4d69c1747866257b8b7042f49a65fdd05683c43a3ffac0c11cc48e2a4e4646b4c815ae94927e28a90e83a57b3634b73e1e3e8f9ece560ed8233b71d5b1b9b94b37ea516b6d81d75713c2f380d31841dd7aeea14e31a9f1290fd6c6d3875f6187e86c68e6dc76cb4d0405096ffc6da1ff64de6c4007ae4a363029392c78a09e7817939719238934b31e418f8c0cdf571c344ec4acf851b5cb0f31e221a4dce7a78a1e0c824e51f880f1d29633e4d730e15f2aec532667730d30ce1dde5b23185875e1f37db1ae077f307402c82475c83a3a024499d9988cf40bf96aa838508645b2963e8b8799da8496d656076ee6fb4b42a96cb2c0053f4034069557c7af79ba4d69c1747866257b8b7042f49a65fdd05683c43a3ffac0c11ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a1d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f311920aff83835a5b4ccf729e3b4b253bd1f7d7324fa0ce86a7dfa7275830f1bf16423a3be95ea9f18d2ba1bdc9e20d742dd3d63c827f198de024754695b2fac8ef32deb307a3d1a7844d20e88da87b5ae0239b5c2e49342701737b9c664a4fd6d6924100b05774826b954c1e98cabc2dcf1725adab78078c802023ab2171a81caa3163a206aa9162cf827adc731a5cdb7db8fbc61aa5764c85a123a61e921fdf31e1fadffc2b1154b6729eb1fbe7e0fde2dae0bd0b60207b2e40ecc3f5492bd3c201040c9277dc8c6351fd039b70656118046072e337c872d37814fdf794ba768ca31870947f95bdea9c3c192cb3bbf7effe29d0fb7bf7284c1d7e0d66acf118ab03cb23cbf15913dc054ca1de6bfdee2e625b5cc8cb24762ca766016a63e8e293110f547f27e8c939e20c0942da06ea810edca7ce96c3f85ea1afab3e442288e8602ab940240dea4835ca7ab615f5689414d24670783d804d16e1d682914e4b3843f1c3e6d3646005b86ea2120e2bf073edb7fd6e3b821ad27eb134dbb05d43ff711248aba4782c5d998e6189623970a418ccdf04bcdb2792b2f69c2ab45d328d52edb7545b87d3a266719e769dc68f5be9578a8b03b9a7ff069c36e41ba2cd72d2d10b39c2f1645cc01a99235367599e57f0e201e4ec69b56a8323d637852922c2866ec9cb15c9ae9333529f9f2541a47498e1fffa5c813daa3bb58b6876177b139c8b393e6a72d1901d4fcf923510b95a9f97d2909021e1d9d877d4eaebd801a08540edcc5608cced4eda1c8a87ce8c0786a68fd495a1f56ea9c69b451170c4d082d55f68a8bde205940f75059172d7b5c9584d34f5312c32978d6dfccea1d5e2ff9ab10e3d96d21b6d790e7862d8c07c02900f4e937d8691774b9a0b7ec68110000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000120fe12e94514ed9e6fb6097760209aee0fbc1e83f28b3008e31fc52950e3cd2d1e1e1668904858edc87a80c74f9dd1c9a18c94d5d492be5d79b946d43d67bb913ce4e145b5edeec99900715e8c6976a22fad316aae05fd5cc1f266138929342c17ffd22873b7821ed9ebd186a4d9bbc1896944fcef88c17bca2c0c9740a44ec21425180a54e8949694e33d2d54626d381fb430071238b3a83fa316af909421411e24b5b3ca000b6e91cf547af3cafb184343d142592df6328136fa33746e89a62c83bfd921f2b43677014e0e65650937e5e37750bc4e8d26e5465edd088ca179006e8b928111830a2a02ef3b2c094e4d78f63c0e421d83f528e79182367d3e16212f6e9495779d23a305d85e881d3635344bee20145bafc65a7efdd6121dbfc30e627c37611255143236096f368cdca2ffcc1c6d99642d26e0de61557915088b08b1355cd0baf2ec17e1ee3918b13bff77235bed8e8cc151bde4d10791a9939f35ffba8a41e783211bc1b8c03ce2d25a0ed87d183e094c2c46b741975956c7b035af22aa767f1b0442e18ab60d1f7a45b3fb409d6bd025eb3f1cd044d8f2b7263117651c2747456dae6ef0b0f7c550084879463957f101e5854ea7ca547c4e3d093b577582a2a168be37808ee5a4741c6329ca001e8f74423bf352b4e25d354c18544816517035f454c11b7495e464d7360949f9db45595ad90e08658bc051d6253bc2a63f90715c5616ed44564ead7a83705ed50c3b039d237ad6004558b7d5187806379a1cadf07431ecc12b1b8afbfbda66a072e09c36ef326a2c878d57251b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac24fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a60215507121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a7235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec21ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f30c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c80f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f046391b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac24fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a60215507121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a7235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec21ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f30c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c80f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f04639017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e17f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a663731319406bfd32611570a209b85b38e49dd7727b21099400a3c3bf232a29135eb21ffaa18c3bc1139049500403dfb0a68045256159afd6c550275472c9aa6b8c62350c1986d63d0d76252cd4dcc0096252448ef72e67695958363393bbcb800d6809d0f28df34f89daacb5b062f76ba5e1e124926c9ceb5a5f7656919f3a5e969e3e1997b507db4b065917a029279c8555c9999921841a1143b015554215aee3521d14c0bd1af0dd795dc65f20deb61a24d29b51f0237079f79c9c23abdc96c858299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f1002216e46a214a91f5a2912ec35c5d5d4b79d789ffa45cc5f6dc24235ed2181770fc34e4bffb46072d0886c1b4271f2e319c53d84677f770f003368061821a4847f82b6879fe81419e32cfcc2b0480ff303bbca2014ac309b579f4be78fa1264a22208134748d8710762979b1062406fde0c96064ace3630870592558b307fee102d2182408ef8ba9b1382df281ec38ac2874e7b4cace7a5cba04d24afe99b73a2001e7dbf71074564ec7d20d7e13c753d78d3cb4c4f21a72d7b4c088103648c5e023164c1bf1ae2029777c3dff21ba619fc2d7be784efdf6974468338c28562f49a1ddb5f9dd3728cc1a88ec687c309f77977b9eadfb71caad3f97d8a2b06242527139156c72428edfcdf747c06e9ecb574ec529da3e5e8af3e18d31d2e6cf2792520b9838c8bf1f913cb129c5f382e42b09a3bb74a02db998692e998d8cda653cb1148533ee7c56e033c9b467730eea5565ea5e36f213886c3bf0536c63236cb2e298132be8b07ab8b4f9508f89714bae10d2ce2ad0930ba29727d0be1dd05d42e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011b7c0cebe7f0abdc2e6fbbb7af15d33a9bcbfcc5d77da633614554754419a764171aee187091111a19d3984a064c173b821aecd6bf4cfc25b5a6ad6b41c8bdf73c5b813daf9b2d6a68219fe6b8f4a25c419780cd3e92388f389cf9b0250a51380e89457941a583d24abe81016def215c20b8e9fd750f8d331f360635bb775f1d2400d6c301d9a66e1dbaf8a4c3f4916b46aa3bfe71ea2fe48302024a33f8312802d546f3288eca99667e6710c83d44975601a0e8cbe56139529e462bd7222ca4179c6b9f539642b3200b6c67fe444a27e92602af3f57ce0a996fdfdc25082a671a07874f99f0681aabca4c6a91cbc0da23c6f183d00cbdb935087f8999ac55bd1c2329da30cd1dd33cabeb05c1c01fccd42d31999903e89a5929e676ce7dc2551c9cc0f3bf68e8e48d2eb4fb1a073d79dd4f4eebf41d74fa20b1e5134be7d28d1dfde1e30d8f60d0a207a02c2f41206b915f6beab5381a756793e126ce0b9458313fd2989b4642eba0eabb340c627fd19d7db66e0e7b9ef96e796af0e327c3d13f74d921816327c00708d46651c6c00fbe459744edc8e76f8c6575aba318850a2751aea51c6338b1ea47a700b31e0a3e3e2eef91d5f84061380602638a5680593f7d2f7d19b1890b6acd25a4ace10f5312fdeae4e58bac51ae50a46cc2adb0620ec4ae8b86660c946e198070c1bcffd6561e63faaf89f76f4ee4b962a9c8a8ab008e61e29236aae85dc42fa17035d21e98d0442801c21f441c0910e71a88a08620d3462c6dd6151616518c66abec97fa058c23f3c8c0bcfff6a1c3ef618e3b2d30b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b913383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d0c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d4019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d12407dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea51382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b030b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b913383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d0c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d4019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d12407dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea51382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b02260f666d094d1a6403be2dc098fb8f586eb4ad8166745ba69d9a8268d67ce9511fa42639b21ecaf1ed4e983217b62a6709fcf49a5422b064a6309c8e2c55766374baf5ec512737c4b30713f1f990aee557a2b2289954c4678ebb40fec4e4b6d03c88a181de5af86bd618c7ca6d2d1c6c23247c7fb1d7c35badde3a77e53e2751d0e91854489c12ebe7a3fe60a253723a77be6156df5a2af0472425de5c64eb8266251b54c6d2543d21425e07ec0aeda47502ad99e9fa2f46262cd952d3d00001b1353dbdcbacf05d7f8445e7cd1ac7ebae5ae3a8fe2a96f0215074076abd6803db11dddd7e8aad9d0c5bf60ddc65996faec969496034479f8b4e1d72b5460f73a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f21621663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac5056cb4030f4d5c2e8923e36a4a17988b6c366788df71a22da6be18e7fead30e202eff5c09eb16740fed884a0786270bd6ae9367ba870daf98c4d5f53a9b3eff526535a3a6a58badd7493abe4d6d73c1c6827bbfd729d60364f9505a38649e6012a3d338446f863ca23c98a0037b1cb92ef7481ea68ed51df93ec437c9ee6c6270fef7a203ab70c8cc8bef1e3b8603d5af1c670d79d1692a25e7f07f550285b3c301085dfc548f37337410e1c479fc2a5308028246c3666793aae28f7afd7a4c62874107e8464d0280042e2131e84929d24f10459d211d3fefd31e5aecb934f29281f93e31b34c66a0ff541d2cd57a4a516a589dfc5c9fb6ba41a0552a66384b4008c65389bff019e72a20f5676b60d140e987fe94291f05692d89335cbe536953b9b9b6f33cfb0e18d68814e958b6db9b5634adb0005aeb525e72228d614a12516c7495d0db7faf2cd22059a40ec09290076b48b998d2d040e8c73b2e7a029cb3153c2f24ce09e84fcc108675d0bc4c137c3b7a57c161035da38e899e79afdf6000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010a8707af17b0bdc3c79b03a9aa1c77d11043bf7da8f3ec65f4b62939256255bd0a77e9e2f5c9decde3c20ac365dfbd881bb3a6615ab59a4bc66ec21a656a02370c2a3727a02fd3971b7aa1e8e8568118580029b7fef5509b22eeb3adc92b78c70cf32af0920cb6833e2cdd4973cc95d06f74be2b9aad1564e7286aa2ed6d068035dfc1b6e62bc2c247e921b0cf47cb6fda329ea076c19be4dfd56fc6df5c6c171c5f476cf73bbc76acda0532c29b2b591f3b519d36348a564b9a73bb4075952809c2935864dc5a321329feb8892d4af3a6d9ec40362b97d82ade559a657c26de14e1d4eefcde0402e1d6c3a5432a6e4863d03732a589d725c8e4301e17557a230b06fe4b17d38a2bcbde1ea7e1397baf2176522bf83dbfe322371590bd7576910b489ccfde5c0bcbe5c0c3948ae38f38dd4471c97b39a178330567d9a231eae53e64e353793dd299c839c63ad1c5569e045884d953cf76fa46c20b9a0693b6dd1dd5fab42cd695f3411fa4640fb7c0b36935ade1c97bb339a9d35369919d43270661feb577d1fb7ed0fbaa8e8090379d945e0b4e567cd8e3486af825ed5e3e302064891125f464f32054d0d8845492b045cfe28c63f755d1e2d34efc4010c7321f5301c210dbd291f1004a3d61ff27e4aa6df87d83183c6e72b38c42c4cb551e3934756291c8abbcd7f241acd35c9b22791f37bc792f637e4aab7ca2b0d6abd025867672bb5711393fc37039853258ec1f670c1e0af9944c1c8f7b473668138e2c71d1c379ab97722272a31c67b8dd6aefc44b12907aa6dc31366fb7dec252973f7851abb156cb6739a501506af6998436c3b9c6f29924ce57eaaef8e9e8b1b10087ae544ea93498c65afeaf9509667beb82df3516b3d44d414281f416174e503d59985a76b1f9042039069216d0ff9488b83cf297c9d39952e0a728918b787102a667a5894e06fbdfc6f96de92f006b998e5c0971832582464c89c46e74879032bff9c45179dd14a11d20da7214fde6227eccccd1bd3d9039ae8016d7b95a310d40063bae8622eb5ee2df258deb0219ffc7cc2f378fbb8b5f7eb0d62846a5d03dbfe0d5976151672591a4443a68f57e45a6350bfccb487e54e0edab369ec2f202401f2a689eae98da6e5bbbc5970a81dca063f00c81b09d444c4341c9613d0f3f7851abb156cb6739a501506af6998436c3b9c6f29924ce57eaaef8e9e8b1b10087ae544ea93498c65afeaf9509667beb82df3516b3d44d414281f416174e503d59985a76b1f9042039069216d0ff9488b83cf297c9d39952e0a728918b787102a667a5894e06fbdfc6f96de92f006b998e5c0971832582464c89c46e74879032bff9c45179dd14a11d20da7214fde6227eccccd1bd3d9039ae8016d7b95a310d40063bae8622eb5ee2df258deb0219ffc7cc2f378fbb8b5f7eb0d62846a5d03dbfe0d5976151672591a4443a68f57e45a6350bfccb487e54e0edab369ec2f202401f2a689eae98da6e5bbbc5970a81dca063f00c81b09d444c4341c9613d0f22fcff711ca6bb32171257895548f0d889e96121e743e2acc701e0bb637c5d8c1709b395ecdd7145b01f3db15cfa8cf1b8327eec8beea5431732cb0848e630a2175d00b7496acbb3cad3ade4d111c09ca445547256472b19d767238b1261166d28dc7e252513eebac458628145af069a4448e5e8d986d3278bc8f7f87848681133344d73b017b132f8d56944460562a818030f10c6e7f3f5ab73756535f51485187f19f3795326291a6b847dcde48b5b0a81e564babc6fc94b1522922479628125aaf1e2c9010a440122aa407ebc526668c09d23dd234ac591af55df4f50776a1a5ac1cb8c0d0b01ce0d2d21f211fccbb35570dab98620e4561093bf72d276bd18016098aa02665e1acfd881bf89573a1e3d6325e54235c9d8ace9a6067e91ef2dbe6d83ddfab2bb8ed281dd777263c51dec4d6493a42f57b175e1d9c275616937fc6e8d7aefd53437c728d31a72535ecbdb4265dd2dcf74daeef15a4150a68f137d79fd3ffc47b94c4db488e2b6d36d906210b07df58f245196bc068e7451fb05a5ffd799ee791a1e19fa91d9a54e8af417e367cbc1eb54fac42ca68a228c090019ce44ee0e9fff8b885fcd5d566c7425cb3426a3d780b0f6316dec3ed1674f17e79253bbf3c65e8f4778b46232eac5f8722eff416ab518e27b7bb9c7ad2aa128186dac440c39a170b8874b9dcd153a29d469fcc7e24402b6b1b5333852d56130dcb4e7a13cb5ed8bae207e7610e4fdffa0ee90739971477e45e784f5dca77006b5f132d6fbbd870e510bed4180585f2177a249470efdb27f5364efb766b2a92195c802fda7a3401e6d140ff054c2b3a0657944568734b030fffbf1a1ca2bcc1c94766a54690c32b3f9a02f2ca935b62440dce504266f3ccf3cd7b20a890a3b001c68662aa1972171f18a20fa480318f0ecf9bc4d4655fb872571f48a45a57d24620ba7b3d3864cd0d13ff35d4864b0595987e30d4e2f63bed0362e0beeadd8000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012d8ba258f1590a88a08c954d872b461b235dc3fb7a0f738a3231609ccd7ebaee0b3b98460c0562002438b90520642091b6425ea0ea3816753f13047c9fda976910051aa534f633cc52b9ba6c9413b59f475a3ced669edea4b85a8766e46adbb4310e50b3ca8bac9be01d60e7020ea2af0633bb8513dd8c25d5260d3d02f37cf30cbdbc40f2cdbb9c4d450d588cb5f9a0157d11813fb20659191e2ac8f9303780205bd21bc42932b339852138226785ee7657da8d879a3e27087382e10613e4fc0dd591452dfb883e4d0579efa6e3796ac69e926ac7993e244c4385e78cf159e83516fad49251dc2ea70eee670ac436d261a917199d52cbccdb1e9acb2142da1435c9a5748b2d3bcab0190d24763904da37ec95e2e8bbdda0463af587f52f4cb10747233508650666f8b2d9cc16c788fd13f5d4ea923b587db312048550246af5157668eff7678cd7235cb93bb0ffa54de03bf96cee64e23f69a9cddb6fcd113e33178311718a9a13fa9728bde96a2c7d017bed2cdde7b8b05d7ac5cc584eb6512c1c7b95c9e9ca6e0a965de72518373dcc4e02fa359f92e7422d6507d7fccec43aaa0c30d3dc9603e6ba1d7fdfcc9310302683dc8e2194e9823e13075572369f08d9e4eb676a8f653b9490e70a13028317ff44c0b9c8e64debbc6afa299c609c2e714aa77d3b4be8051db5cb7532162d30622e20b40b1764390059d2538c14231bcfa7c5e1dc5a0c25baa42d4f571a9cc8a6ec00060378a9dfdaf179311eb42112abb62187a2f0ac83f9cd7d99bb50172577b56846c2bc1ea42ba10a32d1580a09423384f0d74a20ce8bb048dcd97d6222ae78c1c3540d2ab8e53c646732492636bdcc7b0f28b5df31744fb72326829dff98203a45f8ebf0e047f48898cdb6db2e4b0198b43472a408ba716c503f72eaad685bc8d0a441d59c7a2df603fb6dbe11b4fe674bcb8d5bf7458e93afc08d1574de3d3338a8b745fcb302f6fc049243277707fb85063d342ba4371d913d3e94fc35fff7f74e5dd942db530713e924b31888f8047af9c2cbd45bc8e26ec2c16b2610990411fe9b425651dde5ec16db4e055327e9991f3204da351393d63238e8863a34e3b8a0e9eb82c10c5c638db77c3aacd81666e0cdfb25caec6c29cdc7179c0c641850ac0f30166c24909c72488509423384f0d74a20ce8bb048dcd97d6222ae78c1c3540d2ab8e53c646732492636bdcc7b0f28b5df31744fb72326829dff98203a45f8ebf0e047f48898cdb6db2e4b0198b43472a408ba716c503f72eaad685bc8d0a441d59c7a2df603fb6dbe11b4fe674bcb8d5bf7458e93afc08d1574de3d3338a8b745fcb302f6fc049243277707fb85063d342ba4371d913d3e94fc35fff7f74e5dd942db530713e924b31888f8047af9c2cbd45bc8e26ec2c16b2610990411fe9b425651dde5ec16db4e055327e9991f3204da351393d63238e8863a34e3b8a0e9eb82c10c5c638db77c3aacd81666e0cdfb25caec6c29cdc7179c0c641850ac0f30166c24909c7248850000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000237b25f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007ec7aff70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000119249ca0850aa900000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000e6277c8bac2b2a848cf929bda627942c7e1b9ac4e7f511c4dd859470bc49ec8307edf8c72285ca4d6e280fde0a3122daa6e860eb0ac5072b81c3d44d633980b266e7df29c4cd49fc7cce1a338b05bbc1ec1361be8d8ec60b2bc20163a32973f1c7ac47172e0c11feeed8dd817b9442326121fc12e1e9fe696c59962ca7cc79c0f37ff427ff13f2577bb55722033258fef2797b6426da93bad5dc56b65dcd82e14674dbaa78b2d8a36d8e842eef752793b78a1a023dfa598ea96e8687ee157d6358343508b3d7f8f73237b8e6cf5b00f59db6e64c0ca2ddd455ca101226ba0021f1a2589da86127188cbe2bd941268e904b327a1c594636267db7017a8c96a151cf2bf8b943815c37057d5f5ed471ed1b5930fae9b5d5b04e411d669a9d0be3e2f0a8a1f6ab8259b57e2a498052c5c264bcb993723b1a7555be6e8f0ea16abca07d7099ad45f4a924dc6cfd49556d1d29f5acc1fe341ec989cd652463e84566622dfb326c958d7c00af7250dd64e1e548acb9da682cfcd4369a19b53ca1266b903e6d49fd46d88b1e65956592e96abf94f62503437a46171c19cabce635c9ea90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000a2aa147f25394c707ece2babf233e0a1301a729fd3d5e338d4650c71b6e4ce2167d061a091cbe6fb53239bd3b4d0803a1d7bc7db610da62362ef186623c8a902982f9e5f6e341904acdc642c4b2f7fc806edc7e533c1eb962fe3f669dc3757130711e822d8fb82e89fb20b22881281206f0157885074acf75bd86b2eb2eb4cf0f8ee17dd27047d17604df4dd77ed7ee1b5683838445ae4c236faa3a14d14b323235988ae3ce98e8b1e7a37aca85c859bbdca0667d3d8aba812c0eb797e988080dca67751c3167174e185c85357a37a66669f8958c0f6e6118012235681677f93b0bfab67308fc8b79863165f49ce9c0447b570c564cca51ba54b6cef78fa82504f405498cf703748679ce9a0b63163fddcb41efb3002ec9ded87a1e087057dc167d061a091cbe6fb53239bd3b4d0803a1d7bc7db610da62362ef186623c8a902982f9e5f6e341904acdc642c4b2f7fc806edc7e533c1eb962fe3f669dc3757130711e822d8fb82e89fb20b22881281206f0157885074acf75bd86b2eb2eb4cf0f8ee17dd27047d17604df4dd77ed7ee1b5683838445ae4c236faa3a14d14b323235988ae3ce98e8b1e7a37aca85c859bbdca0667d3d8aba812c0eb797e988080dca67751c3167174e185c85357a37a66669f8958c0f6e6118012235681677f93b0bfab67308fc8b79863165f49ce9c0447b570c564cca51ba54b6cef78fa82504f405498cf703748679ce9a0b63163fddcb41efb3002ec9ded87a1e087057dc25d748e65cffce8e1cf09924474a2e4fe7a8905061b1795b5a6792092ffcf4f90cf4744978dfa55935648e4fcab96ebd33e91eef20a37884bc15fd66c82c3f0310bd10672d5ad277e743b3964de956c989de2c98edf5232c2bb60ef008a66dce1223dc277bc3bc099279c7ae8696045e665e40faa556cf48884b19d8df5eaf553770ba7500d2a77b885a6e4b3ba0df84e485d504803ed74304deff67013e092d0c0a4154e40c2e2e1c318c762a15901802af7f7c0c739541a6229a3d1de7a7f33e69c8cebf0c352fc78c84a7593737392c05e8dbde96a0b602aeeff211da43f235a2d47907377ed6757fb66a488bc3e870c5f37d2b41fa1a6f352361f6a885da31db538e220d9050deb695a20721092fd516be72dcbf54583fa16ac019dccee5387802b35ef46d465536c7a5125bfe9b85eeefae2986b2a5c1676fce05f4e0003cdd3171d8a6ba1b12f5c44018b64cdd7c174aa5c11c0951e92f3baecf5f282f23bcddc963198d0d17d8bb3c7880c7979d283543419769d9a6fe661967c16bd0096ba6b275a55ef9fbcbb3456acc7ae6b0bfdc12b9a65c94130f8ff3c75c9d3b20e7af8f0b5c9e9d3821aa01aeb08ce487ff39124352b14e54cc19ad587511aa10f3a3ff16b0f1b3a694eba058707c4b4d178560996ca309ead55112c167bd3c2f0c5c00e94f0e4c596b145fa78f83b4d52f139b6fe05611ae57dfda3e9842c606d249ff486b1cc2d9fe76bf5fbdd8350c6342f6e6f7e01b9b802c5ffeda99bd36be89d95108034cf0334b6e5e3951d1ffda7f98472e79f93f4cd9b254a5dc032961764c6627611eb9a9e6bc9fccfeeb58e68581b4ca7059dbac587cbac91c203357f1aaa6a6427cfe6dc8fb8bdedf4ef632cc44ac160d7ea03918c1999638db24705055e608d44df1a9c1677f8cc7f010379da30598a5961755f199e64a55512bfe70687418e800d3948eac8f8f7d6121b28c2b99158cc735837858999ae5f4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010a2db6e10fe8d859f432374e7b71f72918d78ccee3c53f528ff770eff1a4b02f36821f647fef4b145d2a198dfc3b7ce4ec88fa6a1bda1cc14568878f3f4585f10a6b96b632953446120fc0847d65ce3122ddbabccc2829f35d4e029568749a5429e7df07ae4bcb25f83b3be6fa09447d209f78fcc19f824dac2c2aa412a5fe40171cec7b585bcc89066fc5c2bd6f6b753749d094e33811aa87150266184a39cb3cb0b1ece2f5e0374e5009aaf740ccd59300e945f53b369fbd26cfb1fbaf50e73cca7b9658e89b6ba192a9c0c59b2dfe188e80d910ad85521d65e04d0e1ece0b269b071a7bd8149e6223d34cb0a8a5da83fcc4c5340950d0230879e41dcf5a461b0280e3c0f6076df20d395a6f23876611c3a1e9bc9f56eabb1a72c4b208966b1fbf74b0b8c89287ce946d26bb5151d23c3d817fa60d92a7fdf9cab161dd83891e3fb5a1a390e4c9bdfeb41f03a6a0347bdf75de81de00eb51114d16e64092950a7344e00d97e43e96bbcc494945d5ddac27836504c95c7370364c024e33f12726f0c331c34be94c6e2da60b600ab7f2b481e4e36d28061960cb1879ac54ef4b3fd5c494da7a77258322d55ba4da125b47f2a1f3569921b763a05f95811a161811a111513cbf468834b8cf0e0bc620f96dc01fd5ffa1160394224b5476df00422a5a6a3e4e0db35d4a23587c5d6959754536ffdccef2764f50b1e2905b94fa221fdf5687427065d4325f962bba0f9222518e41a1f5e344caddc1242fb43d15d91c0bea39ee43535ed64c73950824f1b0bb9918830895c08daaffda5908ddf65f28193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e11105939417e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e13781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e202a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b6965158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef62bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b28193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e11105939417e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e13781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e202a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b6965158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef62bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b077596ab5d4f14c7435038a9742be3e6b737f77900011bd2975eecabf38cafdd2a541dc9aede8050ad6648812a33cfccec8163996bbfab69265fbcf2ef361c4e3000000000000000000000000000000019b4f2bd06f9bad4b2e1e4b1c00000013000000000000000000000000000000019b4f2bd06f9bad4b2e1e4b1c0000001054e43e7d570affb9aee4854bf65e29645e89aff47a48510591b37be81e7333b1bbf6cf08a9fcae4eaea8d7a724774b3c8891d34d51de544ba34750fec2c590536098084ccd24f630a4526a8ec327dd02e337604f5c9549b72cafc70dfac942c255565b8bac20b8c8e750132a560c37ef3df331436801a7896862ec06cba474305abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b3288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc735024182ccb0627001b850504582c756dce7c72a060e0b10fd66001d0bbca3d909fac28e0e5d239105f5b80d47da2bc3f88cdacf4a3d170591082de15897ab082ec95088a6954a2b0eb38bcafc7568bd41c195159aec6025222744eec5f8f4c73502425abe23651217faf5299b77ed5cc30333e56dba19fe08bf95918c03550c9e3b42000000000000000000000000000000011234c7e04a67c8dcc969876800000012000000000000000000000000000000011234c7e04a67c8dcc969876800000011a445bcde13d619922120c75871bddf6a20508c883af01ae4687ee02b259ab463828fcf707ae2c920e818f8098f8d61f319c2608d9288f962be01c3b3eeb51d431f8fa47c15f532744d391fba64d1b81ef2ae1069e3f43afda1cb6dd3c0e142615b4f676a1281fbed91d170cc14c3dc2d1056baf914e1e96e8f4176419a3e460249c9d5d84bf3733bdca1aaa501db2430deb40e37229c347e09afcb52448a50a0e47a2ed0231e42e685bc077703b2ad299bdbbafa86f8d3bed02509b76d607ad0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000104d03f6a5d6f0a13608cd503e6279c9c9406eda3fc29af3f15ae8275615d27a63dad24e872ff7cfb2ac12cebc8f22f00496c97539621d09fd225cd510c9c9f85074e237773b0f74a2eb7982f01c28d7600c8bc5ef9817a395ec1f881969cc4d9184211339322df5bfc426420e4150c8a14d205fd809596c4570b4b5b71d3bd6c3f1af53251d49d546405570926f91223f344adebf01132a6a88db547127fadf82e3220570fc3d10525461f26970a6c9636aa2428a37196b61fab63dccea8d4592a320aaeb3f0fc5769e818e465b79b3c67c11e5b9713634ab1c71cafb8c57b2937fc37789af9d8b04b71fcd5a2f3e2044efae83a52a64cfc6fa143ab7a8c690a1910efef74ef68d7252321c29a7ac30d4739d7c205f740a430f3bd48b460440f1fbcf4de61bb150cdcdc1d0d92f88db476c2e067571dabe45b5fa0ec8d8412bd099d70afa9677ff0035e4f912b27a58b9174457eda2dc087cbd918dbafbfd7cc022be0994a6cb5556431d186ed61eda3170a32b4f66eeb1c7b6440fce609f10f0783a7029d0ca5c3eff4f44b8e1ffbec53bd16b01e1160475dfaa54e5e9b1d311f42e0c400b9baae015b871b76c4ce618670d72a9c62ce6dcd43a1d3ced3e8311f6bb00cf1d48007226dae5f7e469c922a119978a097a3e56b24ff3ba583eacc26724152bf26609546159e89d76d0d72d10350133ac8eedaab8b39468f5af34c3ddb75782fdaf4c973d76e5edb9985a9ab31e8dbdf0bcf858956cfce9328eba10c8a1e6a2b399303443a4d2938bd0c0fb6595ba12a2dba113da5ea33a29c339835eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5600a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa10da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c8525044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b61584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff772a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a35eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5600a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa10da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c8525044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b61584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff772a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a0b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc28a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e8719da8e2638861c7ac4e5de71bdfc3b42ec37f154f40bbed4c5e50965a0156c061e34c8c6e8e486192e6d95d7e579bb63a7782fdbfb459376a1965feef865efee30c952866824f5b6d2e4327f33892b0af948d2089edcd99d46a4f26b26117ff80b9d798a0dcfe0f4f594784ce33add8e74da0a4ddf0a85c629a61dd7bc644bcd24b9719897af366a8aee83ab7091b28346d90278f468950f8d056030c45aaf4b3f44c25fd17a50b971a117c3fa0049706d29179dae17d2e59e1ca03a77ab527d3ba6fdac0b77d30417b290295f5091155d781ed0d0a66a28e5a091ccf9031fab1883d6e1d3620a99d127d8cf8f9f75ddfae5984b4c8b4ceb80eeda5649fd192231ee6849847258958971d9ae42381ea0477e13551c4028b2ff47442f0f4dc7a012690cd9d017db824bb35cd43115f352b53b40cc7ba2dd80a2b593ac3aaca8331b00dc3610a9bbfbfcadcd305379400e30def6fd40025399a6ac1292daa557403929f857ce3021a1ec2c9bc89b76c6e5277ec01edd2f637abfe35990685ae18e027d05543d47b1622b85f460c3d9ca3035f95eb1f37706ae25bd383c90a83e1e3d82faabc2b84e9dd47a0b9f3c2635cfec4d3a4a15d5f26d736ff8b06f57c1e41a290bc88da8ba157758a6d48daf57831ff71d7fbb4cd194440fea00d0b11aec39d4cf9d47392fd7b152df23e1a037f8a22104d34150ff396e0aee4ebb1f2fa804bce27eff843bf647278bb7b513c62b8659430159cd3854790caf5f81b49022366e38d66a96b79a1aa5e948325488ccb0207da12bca988284b392e1078c474c0b136c32c83c65b255a828d189cce7e709d6ddb06a7a6ecfc0a26f4b0c87a87116b6a3f2d2650cd015b4d309fbc7066cb1e43e004519241f9df01b83e652fbb20000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000120bf1bb15e8f5e40a639ed44f109d9278892caf10bb66972a5152e1cf4b3c03911a427607856af0dafc97add3630ab48dbb7bc7ad3dbc2713311a3532bb62bf632f60dad22c5bc7a2bee5148a107b84bdcdb26eb2b7c1951e66f9168c314e1432ed21efa0c746c69fab1cc037fa2d6fc0c6db184fddd952b90097e8ee664064705185a913b10a0f1e4eeacc2cc93dedc5bb7dddb84445ab31847956454f29e46135f6c83d6d79113d6d4c4a77ca6315b33a3838d5fcd759caf70cf7db6ee0d620e14cb12fdb68ffb82416bf4ef793d09327459e8aadb8df8c78c433889cf39c61cc3ba936aeeac4993de8c45e0ece308b7edaaec13c9e398fa5d4c4c1b8ea6082e1b239c948fa2474b092ce0e76584d268e6141462f9a1e203a2bc3751b14e8e0c57715ddf82cc519805a024111b326ee64675b3e0884b11b942c833e413a13314b633f2bc6d853fa78abbdf9de02ce5c98d0053c599493701394fcb346cfd0b028bef44db099fea0dc8cf12dbcf193f3a9177cb3af424065562247392cbc5673ca611ca2e39a1b9db01a05917024ca69f1969e8c416a1885cc82b1a162e593c2a2075fc6f8cbeb8164edb0dede27da75d5b1cedffaa864867a34cf51740ac271a6084c615f2cfb0b57ec56a75c6fc367b161ffe17965e7f83fc958924fa691e35fa020395d432f4ebf535b1b4d6184738e30ad8bc015be9bad33e04cc6c88ec33c0624e0eb86bfba2860a6bd4ed1b3ee61884667a7323cc41136868543cf3c311e54f09f2d2af6be1c7994d2d20a19e23ae505316615e0399ff361a1b80af461868ca50534a180d97ff23a878e088b0b9569c85b0a15d666c23ded157fceeba279735afacb5e7f26800dc57871f774f68effc7658ab9bb52d09521ba80311473a0bf391a0727843f7fbb24a5c62ab737c6a75a069d9d9e483862929b7f0a9a105f40c6e5f8d87bc08044db5a39d548ca5dc235b9f731f3715a707c3480f5660223bc1d8223c5953d7ea7b73cded5940e4f9e831ec0d5d082cea0a1c97b350211dc43e27ddc3a6ac2815848c3212a6bf3d4cb0ca1d3f9c136c4326d0684cafe02b2ac938ab2dbea33794694305a2be443454570189a8def1ae37d0b4f68090a314d536c754d2415cc86b96bcfa5d41bbedf241fa7fa41a29eaf56038097f6f5e1868ca50534a180d97ff23a878e088b0b9569c85b0a15d666c23ded157fceeba279735afacb5e7f26800dc57871f774f68effc7658ab9bb52d09521ba80311473a0bf391a0727843f7fbb24a5c62ab737c6a75a069d9d9e483862929b7f0a9a105f40c6e5f8d87bc08044db5a39d548ca5dc235b9f731f3715a707c3480f5660223bc1d8223c5953d7ea7b73cded5940e4f9e831ec0d5d082cea0a1c97b350211dc43e27ddc3a6ac2815848c3212a6bf3d4cb0ca1d3f9c136c4326d0684cafe02b2ac938ab2dbea33794694305a2be443454570189a8def1ae37d0b4f68090a314d536c754d2415cc86b96bcfa5d41bbedf241fa7fa41a29eaf56038097f6f5e31db538e220d9050deb695a20721092fd516be72dcbf54583fa16ac019dccee5387802b35ef46d465536c7a5125bfe9b85eeefae2986b2a5c1676fce05f4e00023021aac0542e01e3d3987e97d79f39cd27f941f636cc0d00835459d20b09ad31982e98a15de4a381e3a7d551ccf9cc68ad84958227ac4e27f238298c029b4101223dc277bc3bc099279c7ae8696045e665e40faa556cf48884b19d8df5eaf5510bd10672d5ad277e743b3964de956c989de2c98edf5232c2bb60ef008a66dce1289db3057a4bc83df0866f8ff39451243583580c422fb6f8153920daf8d794b39698787e2178f75e3eb5df55f03bfcc86afb91a4deb5512d84fed6547efbced059566e6dec5172aa9a3d8a9347fd6550f6f1691a37f82eac53d94a6e7613a4813923ea18517c0e7c6fac4d117b9917c9f0728c9ec39dbb77de85b5c17f2c7f41e2e1d7c5fcfea37aeab5424b0ab9476690dc076b1ca648a2e6db415fd465748082dcadc2e2d79f36f9e21e1898a364e4c1d68a164e701539767dd6a09e476fa2b2291c5d8af8f90e40fe2747b6503339cf6df65d26ddd0eea83b17cc572964b2e0513c28b2d48818c8ebb05d0d4649e33c5f8f1c6987aaef1cf6f7339e16bf3179053245397cea91d151da363ab71b6fdefb69be63401576c9b5620ad7fce57286facdbac683156e2eae25c9c548e492456e2602318f7c42c91dacc528031ab22dcb4038673d38fdebf54a533bfa327e05020298ea6a9a0b0291c40a42eff022230ddbd7c0e4d2c17908fbcd758dc23e2e0520fd416e66019388ea76805b13c3b951dfbb541c920ecf11a56eb630fb49f57668ac5dc2899757c45c5c2b80a780567fb70a1a4c3b09a72af4e1bae758b8d7ab59227297f5ce75d2a0b02507b681f8f69ab78c491d353f650b11bb42ef24f6ab3af2597c084436d37992b68ab75108c99b1047534afce97b810251fbcbef4808ec523608e187330f9aefecf2e410000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000116e6d1078d18315cc4ba0fd5ae1b5952d0ab6a7049afde11582ca4110d5a6fb703b756ff2e003ea1127a58f27cf9f2f845da7449692cdd8af88cdf6ef4f0a9d40f8664c25ddddd94b63caa61abc60aec4d9b84da6757a73a462031c1fb9ecff41aefe8a28f9924646d373dde082ad8353ef10958c5c20e83417b083bb7eac84127a6c7902bd2f80eb467a45563d6288e7d6f78e6e90cbfb1ab532ec26470260d1a29f3e67193f1987e8c5369f277106d65a50416090f2431823a92421ab8382f085ff53545cba8237f0e4fede7f009349bddee8fe29797194228a45eeabb56b31f8bdb3555116ae7f69c013579883ee02874843338667a8c02aeb7b085bc1eed142d054b0750224dccedd5aeb6ddf84defaee9d7841c95dfb33c6ba18ab8ab7138dde59d50c6f9c09c8057ffe7fef015c44aed1dbe458bd60ef1e9c86d99ebfe1c0a29d3f129cb6189ee86b5afae9c055801e8ab1351d2f7ea96151a6e01aaf9092e8262e5c8d5a20a99329abbd0892b4b76a49d1177e1d05bc84f2fdc0675e73d137a7e3587f2674adccc29c833904a1cb8ff2e4cab9523264ffa3ec3a3568f29b30d48683e6e0aa673af3d3cb13a03dfbb87a8771592ad9e1b7dd069cbaed427428b95d39e3165ebf2a7ac8d087154e51c9c8ae752285ba2881fd32d48664e18e683afdde41c1310a03f55116549bcd18c068e1afc7e0cb02360fec9b2291c06f52f0791ea5343210941ec256e09ca0158362c5781702d03d76f01cf4705d315cc2cbef6a2e13c3e28b9979e795d69bdc59099d6577a2e34912cded843df603803980f2dacf1b806e0c9212adc081921162fc2e03314840e70c2dd87f3fc7507fc67f0d2530e47f91f36ded523f7e7013069392919e4978abc6e0f780c038c1811f84be460b8982263eda5d64c287d1c548ade3bcb8225e37f0a9fa7c3ee4527ee07b41b9f4767dd9c125a29b3d78305f20e1dcd8176f5b5ae264d583c11bc3859d97b75e39af8abf3a43d2f7cca716b601d5b21ac91a1d84e043146d3a75807a626848a1c6507540c5bc2d083358eb6e67ba0e7a06779c0df2cbbb92c58a919c13f694d7206db5bc23531ed6ff4368fc62ed7832af3bad4d15142622244b4263ec096b28df924a43dcace12900bc992806a2486220560c45bdfaa9dddbb4d3803980f2dacf1b806e0c9212adc081921162fc2e03314840e70c2dd87f3fc7507fc67f0d2530e47f91f36ded523f7e7013069392919e4978abc6e0f780c038c1811f84be460b8982263eda5d64c287d1c548ade3bcb8225e37f0a9fa7c3ee4527ee07b41b9f4767dd9c125a29b3d78305f20e1dcd8176f5b5ae264d583c11bc3859d97b75e39af8abf3a43d2f7cca716b601d5b21ac91a1d84e043146d3a75807a626848a1c6507540c5bc2d083358eb6e67ba0e7a06779c0df2cbbb92c58a919c13f694d7206db5bc23531ed6ff4368fc62ed7832af3bad4d15142622244b4263ec096b28df924a43dcace12900bc992806a2486220560c45bdfaa9dddbb4d0427665ed95b17a0576af512ebc575a225cca770747fc11a85e3405b33ad6bb002137e04dacf9afbc347f2bf066d88f624070fedb8de8410940ab528ab8fc49c0df3103f23d9644fa72a1b6c1b961a9c14fca4bc6d64a098a22453fbe63b716a3286eb1e3ecaa056affbea5789533a4e1831888b716c307e647a2160b3ab9f08125598985b4ae56415db9e2bb332c7ecbf1e5b2ee5b48d128e16c3f52244ff7e208231a5dff2845246ca0cf5e27115659713ebef7caa9effabbd28b13d9ef25224281da4a46558c590fba2a76d7976627296ba2565c13b814a8cd3526bf9236b1c1053f85563d3a585d2dccf73935a30dd352dac1a3928520cac7269dbc179c021fb658f6072cee97b6dab3dcbac82009de512e271ab489886ab5369ed4941f1174fbaaf88be79d412b9672c9d372a7d2fa63a6f94bf935c8b22a38f99927d542bb8d14cbed8fa33ebdcf81756d77b6012cba58c3352a47fad441cad6767416e06a4fd9419c06adc19a2ad4699e30d08387f0d465988af971f1e8b895e959ff22de5896202cb8410016aef80f8a46fc1e77d4ccf2768976871259c95e61722e80b6596dce665c4ad8cbc22e9703f3cbbe60e0082df02448ca0a85a63a0c49c5e1695ceb27a0d0a3beeb188545b6d4544b7d7125f92a9040be602f9064c84a594296a314d85f2f5c4114e77aba492babb6a6f869c76a3f50fb32a37e6b37b5a6e3f1858b750413b60496f9849ec7d72c369d82fa997917837b88f6a52cbbc67060023499bed77d3c3c88ec6b44e02f18ca969e0d487a8d011981b8053ad09b1783653f59e9bf1faef7a499849c547fe73b54ec20fc3c408c92e742023f6c7a326385fa67e26f337d2f1a2d946af0c95214715e75c02716fe0ef050d5b0af6897403dca0f7143e83b53f2d43c79f890cadd7a37d99c1d0b78f343e2cdc77add7f01deabecde58a92b17b552996164e406218672adf573cda0d7fa426bfc945f0ee000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010e5ce0d4f1dc22e26d3d7d0e6378d1ad1bbd3d6a7f683e7be9bf7f33ba1bec1434b0434593178a8577012af7afafed2fca903a76ab6e5056269c0b629476da7f330e847146cdea05eb96df652546725300d5bc6bc1e803ce415d1ad34766ee3618410465d07103fcd8ef33602b9a9c5e2a01a5aaba8041adc32a259d626f5c7136730aebb6cdec711ed05465d53410da53ce75daeacec4628b691b52924cf25b2faea96f026aa45b5b6a8605ae78ca09d1c68bd56a70b9b0976aeebc3e63cf203f3a347af0fafeb1841941c078342c834369a3130f55b5ff95575e1b02976ed83b0bb774678c15d48f3dde32e57cd829e662c20ab02e0bd37bdd26e6541ff34323880ad2c52ed77db68bdfaffb498d173717209ed6875e5034ee16b3dbc7412b002901bd77899c9c89b3c44780e8ea25fe2edb99dbb1754c3578c67ba17156c62e323405d145476ad3253b6c8094cb09972dd692c6d2fb3ad0e8f94d11cc8f81065cab114f724c08b78c20e253fe913acb05b118c71cddca0fac52da06bf82311cfb34c03f37c0e2c94c990c85250ce96cc30da1f5600d39ffd9cb8c6304406209cb53065e8e9f8f2803e25a7fbfbd646d6ae038c514217b2b647b95ca6ac5002470a04dfd3f24cf533fd1d3ce68fc4057f7f48699368afaf4398d3b640323980a5dafade3e02f0db3a0853e140623644754810d6f92229baf7addaacb4afae9002318cd2d1f542bcc1288772473d5a6ab395ebbe95d3805baf2530a7aae05e01aa2d39deef31722d543c8d5d63a74d5d2618a76d93bb37d478c53594324a34b2982f9e5f6e341904acdc642c4b2f7fc806edc7e533c1eb962fe3f669dc37571167d061a091cbe6fb53239bd3b4d0803a1d7bc7db610da62362ef186623c8a900f8ee17dd27047d17604df4dd77ed7ee1b5683838445ae4c236faa3a14d14b3230711e822d8fb82e89fb20b22881281206f0157885074acf75bd86b2eb2eb4cf0dca67751c3167174e185c85357a37a66669f8958c0f6e6118012235681677f93235988ae3ce98e8b1e7a37aca85c859bbdca0667d3d8aba812c0eb797e9880804f405498cf703748679ce9a0b63163fddcb41efb3002ec9ded87a1e087057dc3b0bfab67308fc8b79863165f49ce9c0447b570c564cca51ba54b6cef78fa8252982f9e5f6e341904acdc642c4b2f7fc806edc7e533c1eb962fe3f669dc37571167d061a091cbe6fb53239bd3b4d0803a1d7bc7db610da62362ef186623c8a900f8ee17dd27047d17604df4dd77ed7ee1b5683838445ae4c236faa3a14d14b3230711e822d8fb82e89fb20b22881281206f0157885074acf75bd86b2eb2eb4cf0dca67751c3167174e185c85357a37a66669f8958c0f6e6118012235681677f93235988ae3ce98e8b1e7a37aca85c859bbdca0667d3d8aba812c0eb797e9880804f405498cf703748679ce9a0b63163fddcb41efb3002ec9ded87a1e087057dc3b0bfab67308fc8b79863165f49ce9c0447b570c564cca51ba54b6cef78fa8250cf4744978dfa55935648e4fcab96ebd33e91eef20a37884bc15fd66c82c3f0325d748e65cffce8e1cf09924474a2e4fe7a8905061b1795b5a6792092ffcf4f91223dc277bc3bc099279c7ae8696045e665e40faa556cf48884b19d8df5eaf5510bd10672d5ad277e743b3964de956c989de2c98edf5232c2bb60ef008a66dce0c0a4154e40c2e2e1c318c762a15901802af7f7c0c739541a6229a3d1de7a7f33770ba7500d2a77b885a6e4b3ba0df84e485d504803ed74304deff67013e092d35a2d47907377ed6757fb66a488bc3e870c5f37d2b41fa1a6f352361f6a885da3e69c8cebf0c352fc78c84a7593737392c05e8dbde96a0b602aeeff211da43f2387802b35ef46d465536c7a5125bfe9b85eeefae2986b2a5c1676fce05f4e00031db538e220d9050deb695a20721092fd516be72dcbf54583fa16ac019dccee523bcddc963198d0d17d8bb3c7880c7979d283543419769d9a6fe661967c16bd03cdd3171d8a6ba1b12f5c44018b64cdd7c174aa5c11c0951e92f3baecf5f282f20e7af8f0b5c9e9d3821aa01aeb08ce487ff39124352b14e54cc19ad587511aa096ba6b275a55ef9fbcbb3456acc7ae6b0bfdc12b9a65c94130f8ff3c75c9d3b2f0c5c00e94f0e4c596b145fa78f83b4d52f139b6fe05611ae57dfda3e9842c610f3a3ff16b0f1b3a694eba058707c4b4d178560996ca309ead55112c167bd3c36be89d95108034cf0334b6e5e3951d1ffda7f98472e79f93f4cd9b254a5dc0306d249ff486b1cc2d9fe76bf5fbdd8350c6342f6e6f7e01b9b802c5ffeda99bd3357f1aaa6a6427cfe6dc8fb8bdedf4ef632cc44ac160d7ea03918c1999638db2961764c6627611eb9a9e6bc9fccfeeb58e68581b4ca7059dbac587cbac91c202bfe70687418e800d3948eac8f8f7d6121b28c2b99158cc735837858999ae5f424705055e608d44df1a9c1677f8cc7f010379da30598a5961755f199e64a55510000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000136821f647fef4b145d2a198dfc3b7ce4ec88fa6a1bda1cc14568878f3f4585f10a2db6e10fe8d859f432374e7b71f72918d78ccee3c53f528ff770eff1a4b02f29e7df07ae4bcb25f83b3be6fa09447d209f78fcc19f824dac2c2aa412a5fe400a6b96b632953446120fc0847d65ce3122ddbabccc2829f35d4e029568749a543cb0b1ece2f5e0374e5009aaf740ccd59300e945f53b369fbd26cfb1fbaf50e7171cec7b585bcc89066fc5c2bd6f6b753749d094e33811aa87150266184a39cb269b071a7bd8149e6223d34cb0a8a5da83fcc4c5340950d0230879e41dcf5a463cca7b9658e89b6ba192a9c0c59b2dfe188e80d910ad85521d65e04d0e1ece0b1fbf74b0b8c89287ce946d26bb5151d23c3d817fa60d92a7fdf9cab161dd83891b0280e3c0f6076df20d395a6f23876611c3a1e9bc9f56eabb1a72c4b208966b0a7344e00d97e43e96bbcc494945d5ddac27836504c95c7370364c024e33f1271e3fb5a1a390e4c9bdfeb41f03a6a0347bdf75de81de00eb51114d16e64092953fd5c494da7a77258322d55ba4da125b47f2a1f3569921b763a05f95811a161826f0c331c34be94c6e2da60b600ab7f2b481e4e36d28061960cb1879ac54ef4b2a5a6a3e4e0db35d4a23587c5d6959754536ffdccef2764f50b1e2905b94fa2211a111513cbf468834b8cf0e0bc620f96dc01fd5ffa1160394224b5476df00421c0bea39ee43535ed64c73950824f1b0bb9918830895c08daaffda5908ddf65f1fdf5687427065d4325f962bba0f9222518e41a1f5e344caddc1242fb43d15d9363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545409c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad0f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a030dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f34537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e23a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d366363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545409c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad0f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a030dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f34537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e23a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d366063701d30cbb53d7978d008cd3615854317feab4f9fde2db6584c6b4ea9b95e5068b7cb70c4e968fe90a321a45ecb6c221e359af3f511fa60b4bca61ced1e0ae24ef2af288a311bbc5f02334c1052f8d299158fbdf2cdf5668b90bc81aac4bc125c75f1da7984a0e35ddd3cd4a1939fa3b3b9c2f959314eead426e27e2792dea0fec9db111a2bc701c877b6b49a793338e01242570cdb4629ba3d7dc2df4aef00c92b2d6b47058a06fbcb270dfd3adfdc463f7d18316e233d08b9f3170c2b1cd32e8f9e51b4996ea4ec2ea7f70712a16cff1a2df425c7ddac327a68cc9da51c90c5c2e6ebc54236c27fc8b5428590d0438e98e29fe47dd99a493d90f276de6ae2e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae96839ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e1077f591920208286e763acdb3280fb019c294548137c4442d22d87a3b88b5fb0150d0e603d5b11e21fffc0c6b34c7f9f61c2b730739d728c23e55906609311914d9d33a6aa19a6ca282dc3e6b99781ec735554b302236e9caef5e6ffab81e5c13ad242b4c191f61e117fa186ffa0f43c527a31d3468c486e09ef8634eb4f16a1ad9f810f690e544399e4ef64805b2645d573ecb5f0946ae44bc2833bbf5f7ff252607ef096f1abbc661b109b7fa4d9bc4ef5a30aa43b26d547108b9440a08030b99b4380e9852d09d4d3f429ae71fd9b7b67180a51cd77a40a90f425731b61e09f8e1db3ca04b645314b952499dc5904d1f08d4266877c80b8ddb708ceaeb5638e4ac231e9ebd0840980bd7438d6c07532595fdc48a5e49fb718a55d00f9c4c172b0a27a39d1b5547a8fa2fde710bc1529fed6709923a030b3b7bab52ce855215d378cc315615486fcb976fd99f317e9f9f9107ddec4e434d7310058cc5660c35544cf6d0a33887c3b572cd0ae80891507f950486096ef20dbabbf616fc68dd0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000130b32deae74b0a529803f0a478cfac7299eadee2ec880f76a59fdef7485a68fb078503315b24d2c7043ff5d024828414d18ad6007d7ddd714daee9d9e055e9c33788be35e26c9b9d1d531b1143796a9cf9b4c75f35246b42c0a7af8b10f297601e0c79f1b68eaa9fdad2b663a328edf4930427d1ff423134dc00fd727e19093135d078c5231040a10cee3dfc8a117a113d7b7cdbbf207c2acccb35f3ea9b6a7620a09d5be58a05953c99557ed3b8509407e5b01362a62e330ed4825c5bd3054d0ceacb50e680e1ca88cde11ebbbebd81008047e388b697a16e02fbb8a43dc4b22a14d972f7e1e7084c6b6ba702d70b6389e622fd8e2d46c00e5122ab735544dd3b6f933ed6a909fe31cf234260960409f48f84eedf278102a4f3c8299f8b532c3ecd52aa46b501ea11dbe259d1650a84b587e37cc514304c2480ae97310088ae3c15f4f58186723e3d7d1843ce29bc4ce00352a2b1ac446b155348297fdc13b929340a5d4c49801263bed7e1a8a0daf8cc9cd8c35324221c7cd7696740a36e183ea31420db4068d97451e8e7709dd75c46ddf316999919eb56d7138d5f357ad3282373a5c285f7987cfe927f9446f2f1b59693c02a280de56d946481ce398a90037519031d15062d2ddfeee960a5baac7d5949aa9a9b684cbcc1b3d7e03f454713e03265369b69744a0dc91dfad25cb5e6c16b0a94d646aeb7edf892f6001e27000197dc1952e0db74c77baf6ed8b66d12fa416f880099ddf4cad8e7cd3ddac819c5f00ae3e0c4906f7bd59d2b7e28b8dd2081f5dc02b1bcef96f96dac19c2b9142fbfa54ba90f415cce321fb844d3edc8fccd375fc0fbbaf04d1f5e9689a1872bd0405ab456f0bea331cde047bb2c125949cbc4a98bfd60a8e0118e69765e7a24eebe3a7a4d4c46d006fa9e995823a4caa96918d577f18b18546bebf0b027a21b1141c585b2b3b92ff9056166a7dc5b579d2fe333d5079080d8c5010f4fd85f38a9b72463827d621022e518feb8b237b0c1db8418bdc580474bb9c1b370c628075648db9c7d829defdd1ae701474dc87184bd77f08f339b51e1772b4c8f39d91b5093b5f18c72ea50ae797cf99b7b15eaaee5a45680f712ffc5dd148133dec424af6c4a0e738d15af518683066484ea3797b357b2cc0208996753d87ecc213d142fbfa54ba90f415cce321fb844d3edc8fccd375fc0fbbaf04d1f5e9689a1872bd0405ab456f0bea331cde047bb2c125949cbc4a98bfd60a8e0118e69765e7a24eebe3a7a4d4c46d006fa9e995823a4caa96918d577f18b18546bebf0b027a21b1141c585b2b3b92ff9056166a7dc5b579d2fe333d5079080d8c5010f4fd85f38a9b72463827d621022e518feb8b237b0c1db8418bdc580474bb9c1b370c628075648db9c7d829defdd1ae701474dc87184bd77f08f339b51e1772b4c8f39d91b5093b5f18c72ea50ae797cf99b7b15eaaee5a45680f712ffc5dd148133dec424af6c4a0e738d15af518683066484ea3797b357b2cc0208996753d87ecc213d2ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec08283f8b0e460d52c58913fad78e1fc4cce8aa7552f29062c225dd92e0b0220d0905d69e666e3b2a0d6d173f142cef7678532cc741da81bb8790348d2c293b4d248677f56dd7dd830c3d4eba7dc5a9491cd36a974b3715b2c93e973495bd87023f12e6d50c19d3afe7194b499f780b8254280277f27d10a690611b5074a3acfb11f76b80533490007d130518a294847325d3679c416406b0948885d8d5135f3c2cc2720a52f1c8b3e645a5a14ab153afd19f76d4391f99ebffdf81ecf51e775d36bc066bad4f192cbdf19e4a06169f22f64d1f342a06c9e1b7b20cb69f53d57911d68caa2862c78883eaee78094d9fb69b4c1aed67ae908a1a76c75ec48901252dcc61308ccdd0f07246c9274194c18a8befc9595e813ea573fa5d8eabafe912249ee770786f97c5ae19a5a2efede4059fcfcc794a65d5959bef42d651d7ed920907c64532b347c431682ff5de12a6dabb7611c175de7b7450d0d6b0e16f72d53f8accd0a2fe98f110745ccc315197fed62328601bd6def78157fd64826d63ca3731399b0a50803bad7d417dd4c5072442708fd0177ce405cf87403f1ce671b108cec664f5af7fc45282be822b3af8dbdfd6092bf1d01515c9a5f0ade3198e512f1036d1600cac4f47e6cf66cf8487455d71fb0d1761afb1afa47b6bf14ad09230fa7706f6f078f58341642a935386102a6f71e80efd56f2cd8182cd8e998a021d1d79d64f91761ffe1e23c499994c0016fffc91d83e4890252e18cad9ab3916157d11e3a9a16f60e2e81c68214fd0ab61cdb7ef1d46a68550c3015eedf62ead16bd55a5c6e8246e648bded0201ad9403cb02501a4d0a793a94c1cb7c1bf1fc3237d971c33f0b03edb4ee33fb01df000ca2ee7c78b752f9f9ec552d46c20f5df00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001021a53c05253c3377fe4f8ab4ad7342e57e6beca62afbd63c24bd4fe62ee4879166ce83389c73f6f7328d6e1a0c5cc840aa38c96461cb0734da32f0e236fbeae1ae4b257707e187fd5f8ee4a7eab21aa53c01c7196222c8abf775a5414c0ee5936b2e4e70e243a0d9f430a09b7eb877700cf2b9953eae963815073388927244534e951429a1257756ef11551bb5ad49337340aaec28eb381451a2ddbbbbea9f230dd7acae7032735d1fcca7d0fcfe459d5e9e3f1c361b21b463e0392ee73c7472d3000000a54861edac8192564abc129528b590bd2750e75bee7005dad3a97890dc727ed4d17875a133ed220ac09c7b0bd131268ee89fa7bd8fa692ca54a9057094a6f48a4447df30f8432d034fa29655c66276960b6f27d91611aa0ab534ef81ab90c891bf7d78a71555b4ddcacf844c7284210b17545f8ede4953ce0def6771fc9f730b29183e0a73db5d86e198756126fc506d2d2f93dd2685a17a7b0099114fea9db4a40dbe140d2821b493289d4c0406f19625c619514cd80c1c8ac37290598b872220ebcd9d3ba20684cb0baed97684be9fb3134f4aa0662417acc9e0c212dcf547bb7a3981d965afeb8340f6042c5a1f0bf42f9c08137e4e0b2a26756230f2d5aa362eb94a56c4e6fa856f0bf90f45850a1a8f2418bab94f5a49714d6091f527ba57305b849c1c94c6840833a355b8930e69d00f9ef9fd77d8f9e7b9a36b7945c5ce9adfb5a1fa2c9235cf6c98a3859c16f3951c208ea66d06b67427f323b3e7298e546a27ad92883b892c8e62412317a48f53fd22a9c76855ffa35722f712d9402cd551e2139b3bf60d1b084583955d2599440b2edcc989065d09091108ed26bfd32aae1dec64c409f2e4f7bca0d4329afb8b868ab60985c9a2f6f702d35e3e40e02a996a62082bce4187295524ae227a3fe582bd977680afd12d2d212ca1c1bf1fd566959df7d431be78d6acffbb6d4654ea0efbfb5c8e202ed2d2f220d7374460d4ff13ea28db0747a3cea34a29fd21810cd8873cd756ff15e1e171df28c8bb9f2b00ec15d724f8b85c315eda3f929f13c2b93255fbb7d0ea1e1ea2a4341455e428fb6392cc47246633092c29fed2265ba117310a8e955b6d6967115bcbebaa1bd7049c6d33b8db99ccf6d5fa6abd9a392e7a888844797492969902f712d9402cd551e2139b3bf60d1b084583955d2599440b2edcc989065d09091108ed26bfd32aae1dec64c409f2e4f7bca0d4329afb8b868ab60985c9a2f6f702d35e3e40e02a996a62082bce4187295524ae227a3fe582bd977680afd12d2d212ca1c1bf1fd566959df7d431be78d6acffbb6d4654ea0efbfb5c8e202ed2d2f220d7374460d4ff13ea28db0747a3cea34a29fd21810cd8873cd756ff15e1e171df28c8bb9f2b00ec15d724f8b85c315eda3f929f13c2b93255fbb7d0ea1e1ea2a4341455e428fb6392cc47246633092c29fed2265ba117310a8e955b6d6967115bcbebaa1bd7049c6d33b8db99ccf6d5fa6abd9a392e7a888844797492969900c8e75409cfea4dee8d5ef0552162e0956ef2a6901d74c5dc30d8531f7fd750d3d2ad1c5a84311902048eec5362fc54d0d1d9ccb0b08409046fae480f0b3a5db3770ba7500d2a77b885a6e4b3ba0df84e485d504803ed74304deff67013e092d0c0a4154e40c2e2e1c318c762a15901802af7f7c0c739541a6229a3d1de7a7f3056c76fcd7d4129f8a9b55f4dd156d58979175a140dd320ee4503c47ce211f0217b29c747f0d5edefba72ec64e6b377f9a78b5c73523d49800dbcbdc49d9c3dd2086b2eafdf76640fc5f5320e2730039d2f047b90cdd543c39fe58c2e01f06f72b6cafcd3bc4e5b8c69471cd7bca04a4f717a6e20530fc461fa526b0175e2f410cf4744978dfa55935648e4fcab96ebd33e91eef20a37884bc15fd66c82c3f0325d748e65cffce8e1cf09924474a2e4fe7a8905061b1795b5a6792092ffcf4f9286e91a8dd16f2bdc7d4ddde5a8f60f56a1109c0a449f2deec8581e4eed1b9d5313585fe94eba91719e1ac1b6b3ad4462550ff1f579e997a7fff4e750a0377ed3c00d04a622eb3a58ecfa2af7248f2720918328a9083ce966a6ddd4106c481c936caece573b0c041c38584c49fbaaa9b34c015b0fb1e1c65453ce31bf164b23516298764052ee51771df098b2afec422216fa23a2ed2553b10064b37d6c78cd029d6789bfad11ae88e20f674d5013bde00d6f6c1da7aa3e08926e5b52938733233148781b5d9f35b45ecfe960013193deb53bfc92a5ebef32e49a721a6c3fab307b78fa745ce3e48f92bcf1ae6c4180327b8f5a0752066619603557bf60d02ce39f18d312d072febc353b20a6fa73c76c48573cbf5a2a8b23dc1d2695ab2966a22f47a161f861fe79cbb877be7324b61d04caf0fbb4fd16f0b1bf76158b58e043bc28975f110ef2eb5579759751b7628e308988c62dc619de5c4ac2c27159c4a3298c9221ded95ac01a72dc6ff08134a93b38655434c464d27f00e013a60a17b0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000113cb477c29c1040fd9a4f7e0d9e33db9c87db963e01d54d7bbdffd67b722ae6c213f6d2332583d96f95059ad3c5b564339a9e66ac0b6d92ccdd258b1fdb2ad7124e8946fcf8f435cb8a645ce4f37c98d2cd053c207e687cac7400c356e0571b825c6740a332ea7ed1fb98edb5c92d5703c34fb26743efecf994f79736383b27311905319edd779f8b931099aa2985b82c446ce41bf0beb5395cfe6023480c4bf273d13855397de049c0720c3c3d0296ce349af76f094462a70e51b48007708bd2b5e332781f9c0075c22c93e70b84f8da901243952a65e5e92a30e94c276fb2b3dbb94e76b995358ce1cc59eb843ca9e8c22f43d62b01fcee36c807bfef1086d2df77232fdce50f12a20205091bcafb74a0b5e06e8dba0fd3f384711abe02ae12ea7203c468885f86cfa32c10a2a3800bbc06f194ff76841e998d1fcf4e806fc349febbd4ae40eb69636ece7a5f4bdcae288e140b482f4f96d2caf9aadc22a5e3da89f7d2246d9df5e86078f525eb5600c34a13b412c42cea11d10668e30dd140f00c11d765a7e4e2fc32f6c46364a4e466b67f511cd2fd7bca97861af69c6ee17c5c6a9276be223c18d4bfabeae7fff93c285e5a8a6fedd6e94cec07e053e74087a90f3ba0afc6b4c2004a0b6c32022329480f1c84808be31a3bc8f2d69a39c3aa1a0fab3049de59faa88c94aab23dddfbe2e61a9b69f4eb262848282c1f9391f4d37126dd73fe1e8d8c7be4fddc1c87badfc01835cdd31310c37e0c1bba0353538dbeade74432a3bc87698926e6c518906ce6d61e4d57406bdbdb03d990cea1bb21bbab7170e70c6b99ec5718f37fd9cf67834571ad16b92e9316a65c98474244de44548e8f18f3946613a8e70c802855020c7b23227b00643ff829a367b8d0a7a8aa593734833e1a019db37cc17f3cc43270da0ec24e2ac339539fcef96423585755a6c8cb7cc1e5fe624c833e80c560371ee6860d438ecf99bb3031069bf3464b53be14069036820814816fc77c2fd4fc344249cb86d5d01ea21f0adef4a0b9b4ac41ebf96fc97df7eb7e903883d24f6d5b7e4b040ae3c2b46cb0f5210b705f78a2b66420d1108a2866872ee56ce69746c6491dbb5b46c54cef5b365ac6e3a0875d499bdf2eef75d79978d11a931b8d22c97777143672cd861f74c9a53931bb21bbab7170e70c6b99ec5718f37fd9cf67834571ad16b92e9316a65c98474244de44548e8f18f3946613a8e70c802855020c7b23227b00643ff829a367b8d0a7a8aa593734833e1a019db37cc17f3cc43270da0ec24e2ac339539fcef96423585755a6c8cb7cc1e5fe624c833e80c560371ee6860d438ecf99bb3031069bf3464b53be14069036820814816fc77c2fd4fc344249cb86d5d01ea21f0adef4a0b9b4ac41ebf96fc97df7eb7e903883d24f6d5b7e4b040ae3c2b46cb0f5210b705f78a2b66420d1108a2866872ee56ce69746c6491dbb5b46c54cef5b365ac6e3a0875d499bdf2eef75d79978d11a931b8d22c97777143672cd861f74c9a5393150a02f1be7f1ef6e5d539f61024406f5775519521d6cc7c9950525f5fa4aada04ed39a11be374a6c61c5e56b99bfcc18cf3844790a53d75fbd6e84fb2bdf5731945226cd708e68d1e2209d7f1c11660f0b044e6400af76672c727c8f2c63f4c22fd51b03acc233e68925827f0ef75cc95274a555a5a6f94cde32383b3c2300e00def3c798623305e3bde40c330bc212eb2a37209efcc5dd23bc28e0fddc535c10ba3b497946b8354436b36b51cf41e4ead546ea6e0434895375ccb17bec7e611d25875cfeffa995e2c2b704c8971c6cd81281a2f1984477d9436a4530e3889521105c4f28bd3a2816b11eea3c5cd90c6a1890511df03194101972448a05f5bf1d8394ba2e4adcaeaef721748559b459a82e03b51fc3c9ede424d047bd7ed5f20c42ba95e57d85e81e62e43ece358248321ec92aa5f4b75b78640b9689961a6a120ee7fe99c32d94c83d26a1badd411caa3c8492d596baae97f71cc73a3063390347d2f56610b3dad9030ed5e74d36adc8320338a651d1d837bdbe6b990fff2c11b0daa16a77fa7bfc08bc31fe1aa92fda210280a76b35388d15b6c4ad9515dc181574aea950681ad151498155748d72002bca5f1e4d4c10cf732519997fda81056e200b84fa7493dda5d7f32fe526e7a802395601767ddd14b1ab2e23fefb723a91dff47b058b6c225a280cd01ad9187a445fa607d67b3e847b85bedc0104900918ce0b24768cd6060f447dc95d4436cb0f2ff0e466dc641c36045749faf77d22a9272f3e71df56bc77339b55283352b2f3407b845a1878c2e6d25c721a31fb081b2a1939670d96fc5dce2740255e35cc0b254f0695721f62b244543d87fdd708e1a236dae6abb3bc3f08a690884325a66b4c6232ce73b1fcd9b8f4b572963e1573f2adced93c033a5ce5968b69cc12ffa221ee9e4cb855d527f37ccfba127a3cff04bb2dcf2ae6f9d6c52e85200ea6b6e4e9f75fc11003f305086c45ac93bd000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010bb243d747d82a6ece3ef447c99bd34432cae6cdc0fec5ee9e3cb199c1b34ce42b8fde2f219231c0b45075b2f9aad9b55acf42d3b66b8b20705a824031b73aab2fe9103f37389585a5ba695d6aaf337f4f283ef3d831154759cfa6f0d558250a3b717688d578a902b8b957b522f3d28d355a9e047338ba6b632872fdb8f0a9b73a445a3a9396ab18618eb4de3eb46ac3f937bc84f2535a9b2e94e001f5f491d81f1f2e6fb706ea3164f1484d224f85d527e6a2e379e9c3d3178dcbb44528e8e6344ae9c649c7f90362305ccefaa608272d5084788c3289021389e374f35c90ff134fd4bf3f483c5aa14a51bc6355f581977f6f06983e0eca9342512508aeb6e128e6be26d952675fcd09d7d531bb8688d4782fdda5eb02e57b610be8ee39a02c2182f54f9d523557fe779be87175ca718deddcc17f96e1e245f64f34f897f4d91f97b6562da9c0108f41b0034bed6f837470429c97c8187ace675e562c9f2b282807db3179dbf966358522bfc5cdb4e9a88295ff92b73fa9d9392a84e0b11a7c30501b0ab7477a3c6efbf6bccd65b75a3d6d5f73a4537cebec83fdf2b608471336766cbbe67ee635825484aa377f12f3bf0727631f6daae4d7e77a1c7766be500e2de25eade73631cd63e67f1ad82d7dd6ea2725e7a2449482eaf37da35ac6b1138f744a42be61669e0b5f3793df67d93994562c35296f89c5dc7ab24de5b77216815155984d47bfb1a19158d9b3fdceee33f5b038f17d38e4f88d126575d50c3a25e023d95e5b12cea4ec763a9e0935d99a028337f615cf4065bc18f910fb0c392fe0c521b0d3013cae90a1574708afd01f83082845c7177f28a9c547495b2606d01f3ade4f2cfec3516f5ea8b8f750522715f3e10732041a048727b8b6a4db1def63d9a8741f062f68d326b4632b6e87832b38a428ff0717168d26646ec7ba22109c26578be0f9d0972cd94b9cd4919ac36dc36523fa148216a3c69b91384715acf3404a449b1eed0c1fc185efd9286102a623223308ec41165fe5f629e6a02a530cbfb5bb64e112f3e03e7a1026d7c143f2d8e719f02f5816d10709d619612c60c0417357079aa13c9ec79daf3dc9c2c6a5b3a1b23381ac42ae90ced1811f139f3fbe8ca8f8655ec361386250c2365f7ff348679ac599ecea825c312e7ee2392fe0c521b0d3013cae90a1574708afd01f83082845c7177f28a9c547495b2606d01f3ade4f2cfec3516f5ea8b8f750522715f3e10732041a048727b8b6a4db1def63d9a8741f062f68d326b4632b6e87832b38a428ff0717168d26646ec7ba22109c26578be0f9d0972cd94b9cd4919ac36dc36523fa148216a3c69b91384715acf3404a449b1eed0c1fc185efd9286102a623223308ec41165fe5f629e6a02a530cbfb5bb64e112f3e03e7a1026d7c143f2d8e719f02f5816d10709d619612c60c0417357079aa13c9ec79daf3dc9c2c6a5b3a1b23381ac42ae90ced1811f139f3fbe8ca8f8655ec361386250c2365f7ff348679ac599ecea825c312e7ee2059566e6dec5172aa9a3d8a9347fd6550f6f1691a37f82eac53d94a6e7613a4813923ea18517c0e7c6fac4d117b9917c9f0728c9ec39dbb77de85b5c17f2c7f417b29c747f0d5edefba72ec64e6b377f9a78b5c73523d49800dbcbdc49d9c3dd056c76fcd7d4129f8a9b55f4dd156d58979175a140dd320ee4503c47ce211f021982e98a15de4a381e3a7d551ccf9cc68ad84958227ac4e27f238298c029b41023021aac0542e01e3d3987e97d79f39cd27f941f636cc0d00835459d20b09ad3050677f3fbf312253e0cb6aa64722ca4ba97811b221105e7eb47c412fdf2550c2f062553ca50a1e0feff84673d50ce7cbfedc241de7a9bcced6f1e540a9074bf0c8e75409cfea4dee8d5ef0552162e0956ef2a6901d74c5dc30d8531f7fd750d3d2ad1c5a84311902048eec5362fc54d0d1d9ccb0b08409046fae480f0b3a5db2a3ff9f143391cb0057e30eb6ab8f39014b675f1106fe80eaad99188c8d021de3525f6d381069c27cfb34f98040ff7fb38ddd51a08c3901890805f76000f4a2822b7fca4a22d89f65ab4f8907d14f22b785ecca330a9a198d313d069cec501dd27014a61a3142c78ae69e53a0b31012aebadfa90dc35eb5536f4994919ec190c258d2adef9ea78663a6c09cb46e52cde8d87c8d42eee5a2425461cd5de115c031a72d52106158799c593f634b91ad32194bed027da5e9ef773e7141721eea3ff3b313325997970a4fbd920417fb2e85d6980b4b41c8dbda7f6e62e1f8a93f36907645017cee91ceb048c6b7dd0663d0f3d1ec509d843175c0552e7fc9c610f0e0519dc6b0e7f2e4beac8a740a1a5135f489d52917b6994c99bdb3289d52b8d1f00499aea413f517375aca5dbd4c4014e2fbf809faaf1afb4a73ce650dccc2396263f29ede34d1824ca1254cd9412bb9e16afc60c8e1719fdef1cfab112d167172adabf5f3658e02e97228d3ca7d989eca81fabbb129a9aa70f2aee51e9ebf0c000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001226f0ca104f3a04470668785e25e247904178728439101eba606dbbd36dd3dd03f1d95fdd6a67f2508831bffa80324fdae75523081aa27eaad2666f758eeb0173971ae629015508e8071e0f43ea4016956a2cc091d6c0896ef9d81a4a9824d8101e12200dad3a5658431ff4a87030f8fe692a7203b2c9f8e6dffb84ee494ec4731e5e65925cec12e1f9682e72f68778bdebc0853d9ff7bc86cb6c0c7cc65479104fea01c56e20f894681ec402634d9607b7d990c1a08554994114cc204bf477d002cbfd5e527ec0d58119deaec31fe477fdf1cb1808e51af61dc749b7c46e16a2532ec129ad6a6dbfdd5ec3b13898963aa7d5b9d4352c3cdfe5853d6c481eca81392df8d8496607c030f07d3a343e774f147f0ac98f43590f51c0598d9475c8d266cf9cbd547b7fc7f21964e24e90d83ca7b4611c6e877f05736153a2899b32a15d8769fae0dccce8cfa9179c2411bafc0fcbe4c427f58dcafe0f4a48c8e0f781dfc6f10a0ec8f201d555ff292bc76ca17b925f5605d517d1a6903276d261ea70287360dbe1f8b093ab01d96d5b9c054bb0d9f88198f83779e8568bcd2cda94b243f51b8dfa6d568b6a05dd02f2b09f91f204e52a0e4ab3d8cb8de655aa15c173159b7ddb4f41a70915da03d00c7e13af292923fd2af1e46dd517977632805910677ea1363e8381a22dbc9afd8da7acb7fbec031bc32d3f78c4464a2f9437eda1cf80def7d3d6c2f1c3af049f38c8238dd20fe0407c970a432d1a19184effdb610ec8b2f9976102b688c1bffcb6a0794cbe3ff3ed31f490474ccb1c9de06b8ab200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af2150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f3981eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c69269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f6196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af2150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f3981eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c69269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f6196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b3fa261b1844f304c485490d5e999b2633afba4d7b5b76ec065c640ecb11d4f893335039be7eedfac2e3ac623e673589a8852baecd7723f5e37deadf71fb908e20d2178e1ae70947695e9f02849f81419e46b869c9b3b2b3e23e1146ac456939012de871e518f6b896a160fd7b607ebe62cb7c5e1696b514fa8b5840bbba96c711ab1bc182a8f50046511b7ab409a1d69cb3ab17ebd01f77d737b60b7fe18ccc60440930f7560351b151572858db88b4c489a2f492f8897491262236693d3a6fc18e807a31e61baec745b3680a23a69b641364929583aeb16689e9bcadb56009c0276de9a6932a003245ef15aef58d798be95c6f3cac18ae207855e797110dad2305d9e4e7bb0cfb3b7ab6f2a16664d9d00ffe6e15a8f452fe648d4b20ee2b0793ccafc6418112053d1c539dc198ca765b3a8d0cc38d47492143067a7a046f7200ab1bc182a8f50046511b7ab409a1d69c2a90b3fbaaeb9368d30147cbe18ccc63440930f7560351b151572858db88b4c624f22063682521dc544081853d3a6fd333c256ccd403b3d21c17f01cc6e398325260683c1a75838a8b30c828a8c1cea39ec7545c681b4ca67af2a046384bb7f8f82b129d1bc618951c62fd7249d8ab036712908b52f1ae94ffc4525b2e1921d93c3ceb3921fdcc22dafd5c7ea4525cb098ed6f74ad0e516b003bada4d1e6de28e82ca48772d1c596b7d5b2515bada371476f7f0418a188bce33c767b16ab51566c5ed0f628ae7c761fd6d53dc1e5b750273da48d4c40fdf42e6ca331ce3eeaa5ab2c5e8a983e28c633542b8196eb40e24c7a57b2b28bd2e7ba204f74ab73408fe9654e42597177a621e21d5999aa200396cee24d19d09c1a957aad59d0893f3a26bc4bd66b95165cac9c6d5e4a1ee6f287885421c27eebf4878809e3469d7653ef6fdcaf17c216dd4fd1e3d4f61309a3d2824b7f487a090c293e280409afe5274e1b949aeed1535201d3ef6255eacc9000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012c3e8dc90e5342a941518ccd748aba2b4721a98e8a6a3d135d3b32f7aa50c55225b82e34be1132b5e2e8e694199064f6d13b8f2dbea904c3a94b1c6f2bf29a1e34ad5841080c7021e845ec17c1410ad895a13fb1b85ef63231de016b8ca2260323d89b59200134d960e361c06fe566a998e9c2e080f6ed222d4d30ebe8834dd10dc3cb6fa6510f504dcde7fa2ace6ea83e79525ebacbf94cf8864edf66a2482e38207533988378f679e55c76ac531f86e1e07d7bc0b142b710ef906739f38988016caf89250b1edfaba525b82b0e85897f9e296f4aae77ce4427eb7a835e50e707e58d36e0b586dfed7177b836ec08c15ddfc90138387973a153ccaa998756a9014e31619a0e6c13186a1cb7f70d6761f92d8af6d80ebf037292c4bec136e651364515bf1b3e22cfe943328e6ef713ea84a4feab7ac772ad6586dc1418f9b94a05902990fbbe08c99d1b9ee8adee4d3263834deeb2202aad4415d1c4de138b531e3f86c95ef7571b670f3cb1bee32d60dfaa952fb13d9480d0490563d3a6f7e729a7dc71d54b9700bba9efc617392a603a0e63983f1a3a87973fffdc04fc9e873d1eab54c87ac97135a68ba0edab9fedc266233e84a6ed492d2b7833287266dc3b132dfe0ff0f34aa4463292ce3db728be35a111aaa9323aa74cb7badcb068302721ccb3b4b684a4b6eaedf1200d4ba1556005f30f9ebc1dd920cf09cc466ebd0ab629e7499f39e0a1a91c0e7ae4e1498165b479c34373b90ddd9146e46620e83273e588b1d61a4b9fd2c8e338c7cdd959fb9cf96c3c2c43fe7d977eff3e4f370070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae02347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f3dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc620b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de6371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a8708e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae02347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f3dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc620b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de6371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a8708e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000120a5727f10920d2ed355f92027d470712a1592a769897f168a0b6e68c604707b00000000000000000000000000000000000000000000000000000000000000012d06401b3a66e4139b297cd4b3d3a3663681db797975cfc270f133a14f3306dc391736e54b79e7ae472277a7e2d3190f3a5483aa80d567f6a32e5ce4848100e80111c994035bfd29e7a8f5c2f8457e42769f8f05eaafe12affb1e57f27cb2a990daa56e58e5e7603b06cd0f41ea8dd44c0e2998531442abb154cc64a83496986149889988cb4b3c50630ac997daf23de052a4806d82e3bf34ebb31d8413d5e440c623be64bd4db3e3144f3bbb389552b9c9e0d86eaf3c22b4cbe70c59d2e764304fbc593e0d5b8254c8c2b04c056d32c1a129c12dca00b63fb264c633191458d32ae14b9ed91eee60165cba416fc03259542ec6e2bb9b21e5f9b3a870c7678920ee9be70ba2ca6c2c724a85da547738462ab7bf780e18be5eb96ac9012d08c2237956e8acd460812feb11340198521d8a5543ea7c34558ad1dec0d835fb2c6ff293db7f6aa6d664a21db98bdf0ea6ae56a853c204d17e87d8bba1b4642d13b983d88cfcff358fa27cf74e2a913fa5f6891ef4ab676a93f5338b15cc8ea9dc9cb00000000000000000000000000000000000000000000000000000000000000013c9764cc45452ec3f97fa7b4e9f4e8cffc6cc126e22a4f2fc6648f2674a66e430a2aa147f25394c707ece2babf233e0a1301a729fd3d5e338d4650c71b6e4ce2000000000000000000000000000000000000000000000000000000000000000009a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22309a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a223305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe2622cbee39cde689d2d8a050b771f7a2c3b1ba52e62b09b30c8e93c520f6ada1196338b4638e14cfd60159eba3a4b37353ad4a5d4d9e176d1f2d58b8452241f00440361a1ec224d7d8d5ea28a83a7d57f8b8b730acf476f957ec35112a3fa61608e7ffa7a6007171ca846ab5c221a555d35b9aacf9f95610076d0f3575dc681c197c72c4ccb103b028475e963f041edf0457e1b288d586454f04237818425ece26bbfed82d1828baee8720e0a208b1b44b74061ef724dd8e083522442f783e5d022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c12334659429b892780000594c3d097f40db55bed1a591791fa10890d107b17803b6eeac5e4cb11c87a80550d4b74dfa3eb8d23386b65868e6be730962988072429830108cb5a02fb92b96cc16107c2713d5b965caf18aaee85332c9caa0d94d41d6a5055453de0b1f5ee004b172161a4672b9d1ed3c3d60b5965531316d1491424c267bffeb4a92a1f9ff71e8aab92bd8fcca320299f15f903a95dc267de98681b3d9840014b56d5e06008e175546d429279f5dbdfade3229583d32a9821679a1e22508bdcc8ca104f46de0fc9d1737554ba08bb071822942663bb0cee9e84140c8ac5202115762157a1529827c2e00f7e960fdd5311af7e4fa55c1811548213126bf232a1ed417db4317b25c23dae63d7f5b621606c989ec93c31394b0cf7661f2fffc157e62556b93d11ea232d6fb8ae29c6e24675395bd6336c4d98a302ea348c0a3028a70a8ee6a031c09267a1b71d37f74bcdf37f88cc5a55928e3d47b615b962b4a86d3a12d56308edfd4d1cea050d376cb3e98c12a29fdc61ef0cfe9f000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010d13031eb4f5f795c9b353451a6284d7dd90cbc4e4b373418d51c7a6b516ed9a315e4caab8ebb41e0daa5a00575304a889ab3933e8630c6370fc24a263f488110053cccd31476d61af5cf3f31f752a2e2710d3876dccc1f008af99209bb1f1991ff865e458e19a8c0c68a4c72806ddcc481cb33585f9f77dd01cbf01bd26b72917a8dd415857a1c6097d1bab09b35da370b2a3142b13c2db5ff678d1fc120c7f36bd7f84207e30f93e5eae35d528db09d688f4cacb5703ffee96c90c42557b4732af05954e7fa5052e0107827c23d68973e5bda58174797aa2b551c3d77bce3e2a6358ca17aff0ea6e556b222e40ce3c196c1489c4644bb8cd3be1c9901744cf2d99274bd540dcda0bda4a5d3660fa423a974e1511483684e99e7bb955294919347fa15e01ef8349a2ea3064372ce8ba8d00ea49ad265050be1e96883bb78df705f2b8c8ede0505932e1b80cb94f6c92f87573c052c85a102ae13d077247d1d33a9a4ac116888429f960d2b1ed7e4d6b5ad2eae9c25d7ef3f7d60b4d513efc58141e03e35207d5e893fa3bdc8175f398f0f7e29ff7939b82e8b37b7b823f7d7e12a883e34bbe8a895d563f8a836ed6b4e9360b3ac2e09332428acba6ab2f87e41b3ee8a57eb508a93720665d4071da2fbb76099d61db76ed824b33ffabe865840f13b6704ad18e0a8406211f97d2adadd47ce1c96748e725c67107e7fbfd8a131fb2aa845a14f621b4975ade8002b9c112a66f381b0597550971caddaf464fde03245003a6f85958f4735b8917e9e4c810b279843567449aad2920d2a2214a413eba218389931c1085d5c0807c3fe861039b4d0cde9c1394c0d3cc22092a60340145de7c766ce3ef7a2a3f7f83c0179f1eab4bef2ab0e586d85964caf6d59fcd39a2a791afdf8c529d2cc2826d3f89e488ee1d5033d87d795f6e38f62dd3e100065d586e502073ad62d33d7d92c0761b99587babd5747ba239bef7f6d22c1f01202d45d86f5dbd9d11dfcc8c223db176238c2ea0de068ef07872591ae52364fc1fd2ba2790a24262ee203373ddc24e89feba6a5b2b466a2b20bad7d21adc9b0520e25d3a2cd4b411595efebcab34774e6d2fb72c4386d87b27e15bac79b0f8ea1f1da2c5d32b4beea6a1014354cb88b1b516e1cfc5c620a0714bd540864f07173eba218389931c1085d5c0807c3fe861039b4d0cde9c1394c0d3cc22092a60340145de7c766ce3ef7a2a3f7f83c0179f1eab4bef2ab0e586d85964caf6d59fcd39a2a791afdf8c529d2cc2826d3f89e488ee1d5033d87d795f6e38f62dd3e100065d586e502073ad62d33d7d92c0761b99587babd5747ba239bef7f6d22c1f01202d45d86f5dbd9d11dfcc8c223db176238c2ea0de068ef07872591ae52364fc1fd2ba2790a24262ee203373ddc24e89feba6a5b2b466a2b20bad7d21adc9b0520e25d3a2cd4b411595efebcab34774e6d2fb72c4386d87b27e15bac79b0f8ea1f1da2c5d32b4beea6a1014354cb88b1b516e1cfc5c620a0714bd540864f07171040c9277dc8c6351fd039b70656118046072e337c872d37814fdf794ba768ca31870947f95bdea9c3c192cb3bbf7effe29d0fb7bf7284c1d7e0d66acf118ab00acb6a404135136d1257fddd30a618cd231dcdf8bb21b7ee6788bc2a9fab0c8a23395a400a684d94c6d78fbb9be15c3f755ec66343bd022f90dd2d33a0d5bb6d23a3be95ea9f18d2ba1bdc9e20d742dd3d63c827f198de024754695b2fac8ef320aff83835a5b4ccf729e3b4b253bd1f7d7324fa0ce86a7dfa7275830f1bf1643aea6a4f9e6c98e1713851647dc952661f58279d7f9aa9ecb65c91af23d535b80f2d75830767eebf3d2ec7ab5e591790e76cd7fa3992cd0c5af72eed276f9b0d1daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff407b3c99b61e73f8c0eddc62acc9a1fce8d7809e368c4ace8b061ea854a2e59950e9b28b272c02d11c9386c8f3a096b2194e24ee296dde17998ff0afab4195ecc24f3cc984102265dcdd7c86bc903d5b2b9219ccfd1a413f5b054954914ad8aae2b3f9c77fc3bd3c17566dd79285f24c0ec915bdd0f6a6b45c99c5e3b9018b9e6326acadac315de4e3cd771aa590077c12963d1d0109dd0b585fab99cc93d4abb0d9535253cea21b1c3288e55a6ff883ef8e2c72bf8af28661332775036c2b5473da2a966592536649a711dff3bf0f4a74cc16ad1468aaed09b587ee85389e9c00366d727d9aaca990ea776cb40f747b75dcdca7f4a4ed488981fa6800244c6c404e8dc5b86627028ee830fa2a491533bf63ded5c31b1fd784bc6cfe9059dfc09267ca9f3f1945e342c34313d36bf9ef44b73028df942f4e884208fbe278e376d238710505a577658d68dfa8ace1d6b145ebeac700fe356c93f241d5a50fef1be26ebd1db0b50273aecb094013254112043d1fdff1322837eb6f0ff3f9f60505900000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001365e35b2285db7a3b4bb01ba336d515e8f0a2b46652a1900d40f53b300b79b110a4b695336fadffb16221ad56b88e309067aabfea983e419540e87388a687bb10ddbb77e73eb884a924bed63c47cb5789ac9f481f6090483dccfb7cdc075d1c61a681287f0c2239678da0a86fc0e5f21979cc1997ace336bf82a325897914ca62abc9d3523b121867aaaae3dece77b60da4c8c4a66f74a3a1ca15020a160346c2b5f384106e22c1ae0e22d0568f5c72c8537845943df75acad4ee959c08c1301389d2b34774646c1bf6a37c919794404f60d5300c02fd2ddc7c9ae96f0446cab07fd0ddc9e8b90becc6269c2d3c35e890ea7c59c46bf11da87800bf0e4299a6c25fb45e63515e7116b768671088b6af7ec7db33b4a5b6a8316aeca6773fe1cb230f72ec3d251ad975ffeb2ed3fedfbe5d7370b854a632341e531bed3f7364609272bad86d83b6db2a2a2ba9e210f957bf525e12b6f996b4e3e0cc17fa944a95c06dbb13b198cd694977a105e7a27430076094f4914d7b1611ddfeabac5ed80311c343804c8d526091accc94dea8aae47476dbd14c18793d25c10aef75ed549190a924fc1d4f13a68d683b2191a5a1c0692c030c5f8ec9ae2cf2d982ace99bc49207ccdf9bf29ee99bd623a4e3d76d0860d6fab12c44c844e962f1ed2d8069bf43409777425b01f9ded89477e0f80a19fefa115aae8210baf99b782a50300e03f056af1c011043449180435166dca3417109c14d4dbbf9c5964e742bb5bcea5ab2589aa8de58cc8c40c56b71d5acd3ac1fe3d01c51aea3b697d79ca9bfca144fc1a0c5110f2938a65d9acb749701ff358e6230b2fb183e128dd9a1498049990cb25f3aeef0d6c759a265348b68fe00ca73c238dcc57c917f2bb931c54fb666f36023d9554bce1b3fd405f946f309fc0bc3a2205f664f9739521a8051e16ffd3f53dc26aab431e4c02bfa06b90cf603f43e8249305a453858677852bcee9002c0c0b33eaa7b06883f241dde62bf31ec3ad22aa1dcff8df41e9a848199672ff23c934cc15584f977c0dbe2219d40ce13c52ff9c7b2c106db731f0e517568d00dc3838039546720a93bb49557edbbf99d261ad52950fdc5c499049687ff03efbb2ed07fc6ab98df56c44b6aa812440662d9e74f403ec2cf0af8b4fc4b0fcc1044d141a0c5110f2938a65d9acb749701ff358e6230b2fb183e128dd9a1498049990cb25f3aeef0d6c759a265348b68fe00ca73c238dcc57c917f2bb931c54fb666f36023d9554bce1b3fd405f946f309fc0bc3a2205f664f9739521a8051e16ffd3f53dc26aab431e4c02bfa06b90cf603f43e8249305a453858677852bcee9002c0c0b33eaa7b06883f241dde62bf31ec3ad22aa1dcff8df41e9a848199672ff23c934cc15584f977c0dbe2219d40ce13c52ff9c7b2c106db731f0e517568d00dc3838039546720a93bb49557edbbf99d261ad52950fdc5c499049687ff03efbb2ed07fc6ab98df56c44b6aa812440662d9e74f403ec2cf0af8b4fc4b0fcc1044d142bf93842bf2d60223b1a98080fb866156c1f2eaba5c51d58b80b9996a54f20521f58081e26b71aa87374afb67ad656bae9ece3c89aa1828ad674a7ce51fc0803092d97c34e376b63e44ee2fdb8edc57dd52d967f44e9ff11340a69a0945aacef2c797c664f8e13589e5ead5f295b5206dee5742872158b36e1ef11847e977ecb1fc6a3ef7a30a81709d7aa355992354fd93d1e3d53a2b055a2af3bfc2322aee703f684053292e56a23cc9aa6cf6b481f2ec93b24a323cd8de4386d69771a4f5c3b6083e83a3101c8fe49cbe38339cea235a1335c2cfe1fdcbe3c2fb529bb46c71498bf37af7cfc63f445cf665c6222ca0d8e409dd2ef75ba85c41d973a7f3e993756d5b8b269cb43b4e1645cd9b858f5a91fbb368bec1f0b8c14c58ce7233b7207b0d5bcc9ec3b3519e1c387b96fd2b5b394f2a19894a21b9af910b00e9f708306cf81ca6ad3fdf4972e1d738dd85ec054785bab7d8bdbe07aefc38d83be276c27469200a42a10d013c8970bb8dc072a21c18c0acb8810d68f2b9ba0038cab1f0ad92ff9f29b3479e09684fa3759d46ce0f9d3d11e9ddcb1ad172db5c65632c1342e7b7b89bad1feee2ca2ea5bce573e7bbada0705e2e47579f6a8872f6c793503285a3d28aef944c6b4c1727dea01b72d64e12f86093a96121e1d05b7b6c23e3cd7a5c2d75106bb394b3e8d8215fe48f4e1b7cc8343be85870f13e748493dc43655823159d8d1ce380dbd1c14bf6d3336008977f7bb5191c9192039afe71be30d42cb5ae6191885acbe1534d3054fc02f2fac439064302b3ef74add2df34a6a2d8fd9f1ce454c0635d443f57e8ec8b11a2132606bfc6f2b71ff02b4154415d922e3ded4e925d3b6f2c652e5c0181a77d8c8580fc6740713560ec817db6bd5401885e438654ba2be937c8a0fba77003ffc99fa15f2ee20babfee08fd127b22ce39453ff00865a201f8f3c7b3f07840e8abc542eba74a4f0bac3dec698e409876000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013ec029fdf22c156bbbcb574a1274ef6fec62ed9759180a9760b42d6ed227175a36bf9ba887e7e716de8aadebecb41f0c98aad7ee225d8be41e604593202bd176150874745b4aa38324c37d831498279c41b729880c4a59c6b7e4ea357940f7600dda66445e116dc5085aaca2e11b5a2ac3459ef85f8c0921555fbe7ed785b20633404ac6aeeb2cafe7d94b6bdbe89a796bb6d71c0596e3b6806732931ca12a880e9d360772d42ea0bcda299ddcc4a17777c13b181c458d157bbca439f0a31f7b2307cc1081202fd1322c691bf1b853d06f9d93a0350fe130684888592fd6c1400c18faa47c67f30afe155297b7db1799eb459967502cbd8760eb0c4be962a33514a20dfdab36aff9d433a6946be717198deab445d801e44734e8d14f3f0dc6ba2cf6e40f706678e0839718f1a1f08b308cbf1b0df7c836c11a5ab0adcb1d6136022ba45c10d521807b0d0172762971c05ecfc9a33a7f47a7f7d75d0b88d5e33917a2166c9f76981983d321d00a57585367d1ba4b5069cd453de12860345eb73a2f01f58756d90814e2c9635a7dc3e1bc6a7d210d54fb8e7bc3ceabeb10e9770637c4923f46ed585d0e87180c8720e89191f765c96ec59955009ccc241c858e5d1b30e5564a36846ed2dce437914476482c27f9c46d188ccdaa6cafd7049705cd190ca69e235e65b127cb8c8a69337e89eb0f0e24cfd225968a719eda068f4f0d30e11768b612d78b263d0082b87976deec17b3c199565f1398537c79cf3e69f339b6fd6b15755f3603f66b6ba17d51dbb083e0985302f855705e36b42b22a60f307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab21307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab2105f957432b4d66c307dd8d7a9f77a65b49b53376dadd9b2290ea826fd6568a542e26f67ab7b96cbd66298cf342505f2dedb559fa4be2273dd01899d6c3abb1712deb307a3d1a7844d20e88da87b5ae0239b5c2e49342701737b9c664a4fd6d6924100b05774826b954c1e98cabc2dcf1725adab78078c802023ab2171a81caa30ec70c44d876c57b82bb950c382934e3ec0009a81f04f2b33ea650419990bbc82ce53ced07446ce4cbfeaaa0f4abcb1f9db63b2df513b703b1ed32ba27a6c3e40fc904ba5d072ee14ffa59026c6d13d5bb675dec29e5aa4d2a4c867015ef710c3a4edb1848cd58bf5e6cc00d6fb556214b5da1ab8f47ccabe7073a2c35555fb91d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f31191ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a1992768519abd8e8951392e968cf4db10f1dd7a0da26aaa1a62f0c6c393bc852101e972d11acba7992d63a5c908d275ef0ce68952f83c017a99d2f00c87c7f500c1b7842979820f82613e9aad8d2aba29edba2a09b2cede1d088e81884ac08452dc8fe7fd0fe6c894514898011ecc3e0e47cfd46463f02f7600715ec21d283ef2f77047d0e1c7a4879e578c0ea7cf20369732ea22bed5d313918c5c4a8acad2c1088fb82f1e385b7861a873f15830dfcb8d36a59dd5f9bea60146b28575352d6375bccb18b0fd92243402133e92cf0ae0d144355637174f70ad33e0d7adcf1120837b5db930569aeb0a58cb69d9c1eebfa543ed590f4dbd7ab467955c697efe830b3d249d20407599973ab2e7c9ff70698d567d586551ce814de9c4359c055af2765fdca285db5a5038441b2508a08907f337dd00cc10fe01f77008c1ad1321b09458a5a2ac03e280e2439c5b52a340fe2887a766dff6fac915be5db095269c234f1f8b99d07fc6a6a107411613145e7285086ab7d2a116333c2013ec858bed40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000127507c82b06708bb6a9717d68439661eb4783bbd278abe13348eb5e1d87eeb9b3af11802d4c3837bdcb42365e24bc34e014a5f8110f1719544ce832d399511a40d9e5dd8248e4266b4e822938b414bfb2a8f684de8bf993b35877109eae6400c098b6fc0b1ef54f17ab889eefa11d3702faf6b19abec6d62ba7e8fa028d0e8782dea5c3e8563ff37074343911cfa9a57f0a7c4edd5e61abc5f430f81b7d9b8a33d685c55a3ec64c11340e25784dcc4a5cdf312cf9356a34a397781ac7793a1b515536a308bc5617760a6be85c893b81dc184efd7ed3392bc817a829b66ba3af60e7d7f1871bccbd38adad9bdadaaa2ec5813e91f142083bc9a7b54aeba8986a333e732d4976d0e6f9981ea45c85072094f25e431b929f78d66cabe58d30663281778d40a5d27bd0ac8680106777c8b671e20f6bd5a827c23527c4fc0fddad0960b3d1c73fd9bbd279a6f5515114d97070f2db3a622f31e9d65b9cc47e4c2e31937118ed393c14ba8d7aaddc9779b355a9ca54b6681c686c34115e1051eb4c48134522716ac22c0c7bfad9c64448949991bffac8ed9769c355155f04d2d0a9e34327460aff1a39faa31a2df02c05b80b4e074da47ea4a8b9b731587c20064672f14934a8d7f27476bde835989813f84c5d7c237f3ccb54d86daa5b3870231befb1b7bc406ce5b8be9d3dbe4400160ddb35f7580140b7f1c6e3c435c76f1e9b30b0279772332f0b6115d410fd6107e5b29d47fe25292d3c58357e43da6507da8cc1081000b6e275c9bb5d2ef5cfa5f96c0ac57d06ba2a66b9217c75859a41550e52668f72cd19bb61bafadc0b19db3eb2763baec2ffdc90835dbcf92ed0874b005199708d32e6449e450523f4e624c14d8be8baccc0b83f0e5bd5d9dfff78b4ffc000cd3e0180a8e8a6e64c378148397c48bd2d1fbd9063dba7f864bda2a4770163ff32c1fe7f57175919b3c87eb7c683b9673c7003046bb6119a6e512d5b88feb004023607834c8b427f7d1586691f6d6bb1e19eb3d1f34a47d9f7b42d365306e3fbfdc9f87cb374bd8082ea7996e092967287f10cc2dc4771b8db5aa2c9acf930140b0e25907eb84c7d716ba00d9d231a7968198319c0736741d684e20f9f2263ebf4f1da6f8147b3828e945ff262dce7ab01763d7b0f1e5250fc89edf060ddb2668f72cd19bb61bafadc0b19db3eb2763baec2ffdc90835dbcf92ed0874b005199708d32e6449e450523f4e624c14d8be8baccc0b83f0e5bd5d9dfff78b4ffc000cd3e0180a8e8a6e64c378148397c48bd2d1fbd9063dba7f864bda2a4770163ff32c1fe7f57175919b3c87eb7c683b9673c7003046bb6119a6e512d5b88feb004023607834c8b427f7d1586691f6d6bb1e19eb3d1f34a47d9f7b42d365306e3fbfdc9f87cb374bd8082ea7996e092967287f10cc2dc4771b8db5aa2c9acf930140b0e25907eb84c7d716ba00d9d231a7968198319c0736741d684e20f9f2263ebf4f1da6f8147b3828e945ff262dce7ab01763d7b0f1e5250fc89edf060ddb2e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd630724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f61a46bed708c16235cb9c186ca9175c721eb5ae41fb05e0c288f491f8b19f1d502b4085717c45478d689456807af22b83da8f7ea5fa2b9cbe7a5a0446adb462a1018b32a08bd577cb0759e12c12649b35b1950d0243bdc98db464389292a984711e33c15bb7c48e9229bac840ac06e645d5d917c31e7bc20a0d2539cb4b8d780c20f0072591fd810e96d65b79ca90d674ac9a437419480fec57f01490c6a71f533cab6d197f17180e56399a722450928f6d9116af63172aafb8dac171d79684af1b9d5a2a50c6d8a61acdf312b101a31352f3356636139aeb9593bce4d5ce2092004c37cf170d22355a2c252313a00e318136f39a3ea0096dd1ef1c2bb8c26fb53249af9699e9ea525b62fe68f6e1b1c46bcb95f0b45f3551185d73e8421e481c27ee001d24a97247a1813c16a38047c166ea93e4cb42cafcd837ca103cc53473379c5c91db2092bad76b66d01070e525c572a3fe9793aa51dab9cb9432f746dd244d35678cb368209d8eb165b430cc1f30fe1dfde66cf32325f63e695b99496c375024c2c41370857d3f41acfcd0d6f4443bb06458f3a0e408caaf687a34d72808afdb3d3bec8f7a82c0be53032f290bde0ae897b05958379062818485cb28da3334e994848be329d5ab8e5a292ead05fdeb7a21baed02d43ff62c78bb88b9d211582c96f6c0f6a021fc3457eeab27159178f8779b3398a0dad0dcb982ad9c0214c91780fdfbc2b2c10b9fdcfc2c576d053e067361b983fdf2be3fe138423f302b5c85389c581cc650ccaf07df394dbcf0109f155e909eb3e552a63d45af806120f7d5d6ced029b80cab01917100ea9758be41f64d594a4f04f502c98e9b071c254ed3b0d1fc182dc8e9bf21ad88be641d916636653a84a6dda134a1dd04d0100000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100749c73b74ac4976bd02d6f70a1008e8084ff990fd0df4e8a657dfc65dddb643a0e998840ce496eabc79f100c99dd7a36b3fe06836bd61e62fdd300359ce625003d6dd9997dd9ef285cc47995e2058aebd2439ca088612f0150223f8b3a55982a95f277af3e070b6006f640f836ca9e201e17808bc7b1761a26cfb82011093b383bdd02c7bf676223e587d162e271dfe746b4c3cbcb6ff25a342993107cf0df2c3a53e8d6c91cf732593c3bbbef6523aa9d90bef0b0bda7c16411982843dcdc27fd83ed1e7611f168e5e4808a3d6dd5202c4e79e169d430a72d5bab32df1eb32d8c196e33363be156b580a93c5e91900932e1baadf7c8e1e0920f0babfba2ae3d084d7034ad1227c0515704a1624cda790009c14d16634dc56544444f76ce060f5cd3fe7a706ab154287e3c400facd0d5060599b2e487bdd222fc07fa647f5a16b83bfd6c9e824a4fa1d2758898bb56dcd70f14781711e192e197eef444b1250498acc6ac07f7b397c940e31748e20de919eadd7fe85ddf1123f919cc55dcf717ed8e6a93094bdd633bf9df7e13b10dfa63073d0aab521a5bb7948685cb68ad0ed8f95c0abd14948e14818786d1193fdfcae69dafc8dc9acf86b29ba7a39cb538c9a262938c35a3991ad4fff632cb82bc3ab453b7acd40a96ff1eb07728d189260a15b787ce01b3e347d4ebea719d34c43c991a2a5dd772dde50fa94f7452962a66edc96557f35ecb395509e926c38a8471a73e8ae519dc390102ade473e22700d4290506f0be83523d51ca8eb1852537a6a8bc188a87c1bbbb162d307ea003115d66ca497f22362f624a448983cf73313d94e49457c6f8cbfac6bb70a4b1292ea29935b680ddc9d09db5bb767c308cf109041774f53222cd326a318f5b4ed816d301f36f7bab0eeceb7356af930d3fd3ed4f7adc69e9c062b8b0bc333775cc292cfe0c908454f113148ca9506cf2c04e5949812ce30f5b36748030ccc88a35321f09c12d6a574aa09940b16ddf423f015bf46a44c497a6546e42c000154cfb0de0f63ed295a8b55f66bf4e9220bdc120eaa491c488617544beee2cffeab3063a9b30c5e313b47522fe4377255c4b3a9ff7fb1f3bf00aecda9fbaf9006a80e40564cf3a1cec4b8add01bc88daa3b4c5824e9ddccd5cee2ebe8d75f3ff957f1d115d66ca497f22362f624a448983cf73313d94e49457c6f8cbfac6bb70a4b1292ea29935b680ddc9d09db5bb767c308cf109041774f53222cd326a318f5b4ed816d301f36f7bab0eeceb7356af930d3fd3ed4f7adc69e9c062b8b0bc333775cc292cfe0c908454f113148ca9506cf2c04e5949812ce30f5b36748030ccc88a35321f09c12d6a574aa09940b16ddf423f015bf46a44c497a6546e42c000154cfb0de0f63ed295a8b55f66bf4e9220bdc120eaa491c488617544beee2cffeab3063a9b30c5e313b47522fe4377255c4b3a9ff7fb1f3bf00aecda9fbaf9006a80e40564cf3a1cec4b8add01bc88daa3b4c5824e9ddccd5cee2ebe8d75f3ff957f1d004c37cf170d22355a2c252313a00e318136f39a3ea0096dd1ef1c2bb8c26fb51b9d5a2a50c6d8a61acdf312b101a31352f3356636139aeb9593bce4d5ce209235c4f222383df8ba75e56080ea6c3bbe92a6a3621535d756546676d5e78b52b72a7c19e1842800e85905f612572842c62a7869d09b2a8f491c6a78a63a3db0cf1a46bed708c16235cb9c186ca9175c721eb5ae41fb05e0c288f491f8b19f1d502b4085717c45478d689456807af22b83da8f7ea5fa2b9cbe7a5a0446adb462a10c046e23bcd5776c2c8723e0dede967c92c06ae4568f26a370b4f0ffae34a42c16601d9d3215ef76e668e6333240007f97a16cf03fab90f7b0da9ad7b38db7d51de7898ca0b76c5ccf8ea31d9866d81454a22428dfdbb89c3b361d9f92cb085725edd8763b0e9f24ec8bee196162f82280e8709816f727bdb7fdac9abcdb63e01bd1f1779496da00d2f5f998bb7bf7a7d04abb443ec3aa503d58ca8b4448a1c1097446cd3409d61f924f1ec126f911c98e21fd6d0f5a65acee520d24f941daac09eed60eb0b4e5102fee7a5c01f3b6100e6901ffb577185772d79deb5fb23d9639e68bf42b1126718c2c16daf7d61a26c72192c1415bc802805c2c4eeff42ea22400fd9875a645eb43628c42a090bdedafc72a63a7cce9b55407223da2d6d9b71bff02678a59ba14bc9d73bd5f6f4212727f6e9861800f6645260eaf5d29264b1f17a6640f5980da8e66c1026617ef264b06a452e8ffc42583d0d9706762a7a922d836ffc41f2a6831b1f8f7f66d14dbe4cf1b4b597d12ffd59238c06145620f2ee43afdffcca5149f2cf4aad9d71db3e6a2a25a4ebe0ca2cb9095aae5e26f990e879580137db37ec8f1e2f9011058f4846e3eadab2bb42ff4e175f0ee1ee79e16772d07454af02fd6e430006d619ade3af5aff6d5d1c9b6a6f02c5d364139371e5730752baf48bcb053b536005f47a82f26e417a2bececb280666a93236e2980000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000132e9a7f250f8a473957cd197f3b48991abc75b6685a0d416a5556fd47d0a108b06040a59a4bf6f6970ffe446852415816ca1fe4db73158246bd3f8b9b5fa2ac53e5ffd3bb4442b133c5c52eed49c96c1f34d744251bcfe740f561a5b4bd31a7115a9d4ab0c3ec79b117331c0df854f2e78c93e295106028dce200035fe1f7e3f289d4d66681c2fcd03a4204b39527c8f126a6af7fa837a5b1ee76bb7995260dd04cc5311cdbc852c0448f8520bf7d20e1069c31f088ff0efcc057b44bb7fbfe7399ff672d5ae79aa69e7bbe980780738aa8a95e801e02f9ddaa703bfbb54079c290352f4027de62e807185cf9f763467c4d5ada6d82030714bc24c58add1cada0709a1ec18da4de3d68f5073a444e564b7c8b444c4b05879fe24852fdc2c1844197f52865629192f8997926c3bade4ac0773b22259343c13fccc745026577ad4240197efae10fff016c3add45fb875de652d2d514f8527fe320bedc2ac5a977c1c83d834b65f514147e69823de0467b9b9022054d77608304ab233414b46704c0b208c9716d130290494bc7ce77bae4c5943523eeb925dd90e0282ad890791551ba5fb2f86f53048ecbbbeea1d691c0180ea9b9bcee1d0dc1d3bc474a467740d3fd83543c56f4ceb065a4d3a59bb5a0e77576535076a1ea4e741c302062c41d11448e93988e837c72f6685d4ad4ac59a799249cb527ffd954aa66f44d0d16cd833995bc9a70451bd395aeddd37e3a9a189c90f516b689c02c98dbcc1564329e003e922102c072619cbd316660e9451d6331e3d71315275564404fc28ad3311502077dea666d302e9680c24a43d9ce3ab1eae47ce663b20eb61b77c8bd965303b1f882159992cfd1697f3db5bc2631c550398512da311d8303775b461269acfc622575940021f0e8f083cb7353410725754da350fec8db261b63b0ce13ef9f1251da8a6bffde0f170f7c348cacbef8da8cd6c63ec1cbf46b9e2f2240bc1060edc2bb4be400a9b48cb292f940a04523bb463b5d7578c2a89b15cccde8c3ae1b5b7144b41bff564b734d6d06bf5fbadc44bbe90c1a47d226f6a3c605260c51e4a4a1a87b74035086bf7cdede432159b2a858bb969c1a0edc5240478c5f626688c90257848bfcaf7940832121bcdea64d57a968d2f3a685f33f794b46af6d99773712077dea666d302e9680c24a43d9ce3ab1eae47ce663b20eb61b77c8bd965303b1f882159992cfd1697f3db5bc2631c550398512da311d8303775b461269acfc622575940021f0e8f083cb7353410725754da350fec8db261b63b0ce13ef9f1251da8a6bffde0f170f7c348cacbef8da8cd6c63ec1cbf46b9e2f2240bc1060edc2bb4be400a9b48cb292f940a04523bb463b5d7578c2a89b15cccde8c3ae1b5b7144b41bff564b734d6d06bf5fbadc44bbe90c1a47d226f6a3c605260c51e4a4a1a87b74035086bf7cdede432159b2a858bb969c1a0edc5240478c5f626688c90257848bfcaf7940832121bcdea64d57a968d2f3a685f33f794b46af6d99773710a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac629bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c0574b614904f04d06536b5cfbd25bc253f053f3efab39148f663b7b5deec33cf340e52de04aef29b278901aaca40eaafc3602d624e75ececc9c33045c86e16ae334663237c54b81bb6440c12f58e10e91a591b277bfeba39ca0dce7258cc3867336701f1127b21ca8e6725b4e67a769f455e78a51b8319d7bd1dfbf17a5b9fa53cc6685db8543c231286b2845afb78b7ce5da7711fdf1afa1599b0f8a5e75f2d3b63fa20c08ef6946b68d1be6e6578e912c24f6d15ed51fa875cf830c4f8444e1dff3c5197fd00d1d0a0de7643244f7892ab4a9b26b3f4238af227929b22c07334ab22fea15d89c74a4ca0d1cbdd19b18c8dc4699b5e6d44a70b9e363033d81211b17fb361efdf24cb3abc2464ccb6aa775cde4a4c2754d9834cd93847d782b31b78dc6e97e20355ecb0be28efd52a08e5f548e10231010243b8092fe3f60add3078abbf82471a760d2090327ca3dfe9b30f3b2045527bb00df4629e529c216d2231b390b71370230dccef15925d89406c29d3e47cbfe5b82409632a78ba77193bcd88c0e0e990aec2d3ef60b0c6c63848c80fb2b34107870015f5552268495c0432773f1f166f513d2c109f4f3939c7d97e8949560bf19499173b97dd97b6a63e15b8f365a20e326a6fa362cd74e24abd6f02b8a34743b7b3be969a7d8dbdf10ac81e4943ecd3d4d16028affe36b69914dc146b0153c1aa1f34e81a0b8fa2370b0a35b16de847545cfd38faef8d66f73aee5b637b2344bdd294244c08022f913b0575b392953bde602ca791365165c2de05ce9b0f0bae1ff45c755b06a2d46b1e4bb15c7693f25be2f89287e6e7c24ecd0dabf0bd9a52056ee5a40658f980e5326cd18c1de9e560ff6bcdae90a42ca1e5f3040d3b2f4446a4052003ebfe6fcf0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000119a17c8330b8a675c33aaf2324f1864457aecfbdd47cfd2a8da15f906e5079390928df1e3253d7862e7aeec95fcb650bd83852eff1975a7465371f2c550c1e2536d62a2e5383894a2a214170c415ccc21e42bd11a99d0b9cb098cf73fdc524bd34c41c04f291f7e9f76b184c6ac7677fd52bbc6a6a240c37b1dc3fcfc6206fbc18ea143b2d9567610a1e461d975257b6ea5ac5c78de5189bd6821a87b58196b12d1978ffef02b2a08d3eb5b5b91d7770ba78b9a262165fc90ccab296fd9187691f6a1fd6cf6d835787a674e6a370e7a0391553c7e214734ac73a81c6880873d2329d772178add1a379eb9287229f8039311f87ce4c91ea881e5bf881eb35c1820293638b456ebb71d4a6b8ea1707c97a6b0a3c4b47fe94c18e95551deab55c5b129617ce57add42047c135535add33b3544806ce96205cf08412db9afa83bce815871830abc310e6a03c4a21890d5ff97afc04d9c49398de2ed428ad9c1f90b53582bd5c417df26bed9343d6ca2785b97f8bb96e9c07abca312c85460727c3bb36d5725a39241cded1c55f5c976111d0c7478056bd21be88a3424669362254982ff1156c64a243931f8b1c0a6d83b87d352d0680069f6948212931a5f74cb0cb038d4a0364be949a49c2a26e2b7735f4c4a5fb72c4b6acef0ab22e8eedc1d80c35c7b408824d9e316e1bbe25a25f3c0b6023b95498e7e83794d77e3322c56a8a154a7c51f782f7e94a7c7fc6f9ec39b8fcc8396eca843ecfb37dd05ccaf9945611ed5a25ad13a7fcbb364624228512a46ac50536546c61e5c267335d7d9ca7e73f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc6202347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de60b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b08e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a873f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc6202347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de60b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b08e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a87000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000120a5727f10920d2ed355f92027d470712a1592a769897f168a0b6e68c604707b391736e54b79e7ae472277a7e2d3190f3a5483aa80d567f6a32e5ce4848100e82d06401b3a66e4139b297cd4b3d3a3663681db797975cfc270f133a14f3306dc0daa56e58e5e7603b06cd0f41ea8dd44c0e2998531442abb154cc64a834969860111c994035bfd29e7a8f5c2f8457e42769f8f05eaafe12affb1e57f27cb2a990c623be64bd4db3e3144f3bbb389552b9c9e0d86eaf3c22b4cbe70c59d2e7643149889988cb4b3c50630ac997daf23de052a4806d82e3bf34ebb31d8413d5e4432ae14b9ed91eee60165cba416fc03259542ec6e2bb9b21e5f9b3a870c76789204fbc593e0d5b8254c8c2b04c056d32c1a129c12dca00b63fb264c633191458d37956e8acd460812feb11340198521d8a5543ea7c34558ad1dec0d835fb2c6ff0ee9be70ba2ca6c2c724a85da547738462ab7bf780e18be5eb96ac9012d08c223d88cfcff358fa27cf74e2a913fa5f6891ef4ab676a93f5338b15cc8ea9dc9cb293db7f6aa6d664a21db98bdf0ea6ae56a853c204d17e87d8bba1b4642d13b983c9764cc45452ec3f97fa7b4e9f4e8cffc6cc126e22a4f2fc6648f2674a66e43000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000a2aa147f25394c707ece2babf233e0a1301a729fd3d5e338d4650c71b6e4ce20bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb0bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb0ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b22e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d57285e227dcac39affcaa9a3843ff26167e7011a6f7ac8f89a3b79077718e6e22b1c8da40b524441fd2cc45ebff9a1c1e345dfa49e131e3120c317c2ab7c76eff609ae342a78dbce2f652ce83bc8df13cae92ffd4acd96c384d84b5b62829aa4c632e0e89af62d4b5e0a44b1fdae3b06376c9123be386de90ef339f6846a620c852179eb6829f66ce011798143af6163c3437fa534bd33624c60dcfeade441f793374a86518aad0cff9744827bab36a25272529f9a68b28b9c99ecea69bdbe3fe4274d3dc3a846fc8924f1055fbf4f5ad5848b4b6ec07c76e6079ee428f532d63220e6a6375b0b5eaeeb6fc87a8cbfa390fbf15474932bbe08a8d6ecbb879cb51f0d76be4296c17db6228e74b86fb1e591ab624512c8b43fba93293f0a00ee873b2a2c97f9bb3fbeda5575233ccdd411259fc4b5e4b8b63c39d2f879a756b057f107a36be71870ee0d0f16f09c5fc3ee7f6a569ed8c56b2b20ec67598eeffda89c00907813eae16d2b0149dd3dec4b0fe6f3df680e84f010b22ae146688cd1e2b526bcc5afbd658f5e23a72821d3044aee90abe3603b8c6633dcbd9dc06860f37e19433a50429a70a1dc58d7de2cfbb511919ab59bcdc092e7bc6f932c979f0c8434effe4336f17d922115b0a8515a1e969a769c06c1714d07ce36ef2489c21a191f02f6c545dc8ebc6db3a6ce87e3d6f78da992b181e2a4d027fa96a3a67608430999eee6f03a86b1e50b6a4f51fa8db048d556502782ce088764e73b2ee2737a108e0fe3d08e6d608fe3b484a40563cea9ed3ade0dfdd6fc3ff2dd4544ed124e08d572bc0aee440ff0ec37719da7f51661f86a386bf61c5a29f58e0a82dad0dc2b44267b05ad2ac24113453310b262278a13b7ef3d07eaab1c8003e6f3278a85000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011d00ec549971c292f587f30ee7eb3083a2d55e8cadced26d37f41e61674e80903581b7a99c99f9aee99d046680bcf2e6d63758cbd14dfd23e49e780b95f386bd277900fc9bf20155476f4d234f62c3240a2332b038416e0f4a0ffe4ef1113b9d193008c40ba7a7211d545a02ce2a8b7ef405d8c8baa07f1928fb47813c3b5ed320ff57ed9d49434f3dce32bc68031c5bc4549ce15c8f0c37eacf5d8b898185fc1b0a072557eafac5ccf452afc0038454b5c15892c17c82da9efd4409a7644e1133fea03cb16706d909905f78728f56d9fdb841d08b0afb550b892b972c2f92ea1b96553cb900f62a044bd83da34c1008801ed2d66ae32450850679d4ef0ac704349971f393264e1cc19723f72edc91e4a5e643744e7b4d7c394f42e3b59c07f432883149aa58232e1f32e1e69b55969adfef68e0a3a42576e113e53cf3173cdf2d09fb7bd0172b03a99e6cb6236880a75c654dbb212e00ea903aca6abb13822d060f69491a1198412261076f16f48ff7da88ee971f4670052698bbf8a474232a020b6498aff15a6e04a05dfe7c0a87eea29ab8d424129ef391211a4e81f8de5124bb232dedd50603ecb01d6888da425f3793350696618fc19a1d2cd3ab7627113b5ca202fa06838e35d2bd9253dfd29068a83c4dbc34dcb2d3553ad6b1ca52c00c237e18663899fa8edc0f40f4f1b023acbb22772e35cd4c95765b95efe83e4f269d8925d0103fdf695a6ecb5b84f947b4a926294821d20142ec93450b60c8d03ee6c05863616b740c4576e363851a71a25e193f57b5dfd1a7695ce646cf8e7d09c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b09c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b068b7cb70c4e968fe90a321a45ecb6c221e359af3f511fa60b4bca61ced1e0ae063701d30cbb53d7978d008cd3615854317feab4f9fde2db6584c6b4ea9b95e525c75f1da7984a0e35ddd3cd4a1939fa3b3b9c2f959314eead426e27e2792dea24ef2af288a311bbc5f02334c1052f8d299158fbdf2cdf5668b90bc81aac4bc10c92b2d6b47058a06fbcb270dfd3adfdc463f7d18316e233d08b9f3170c2b1cd0fec9db111a2bc701c877b6b49a793338e01242570cdb4629ba3d7dc2df4aef00c5c2e6ebc54236c27fc8b5428590d0438e98e29fe47dd99a493d90f276de6ae32e8f9e51b4996ea4ec2ea7f70712a16cff1a2df425c7ddac327a68cc9da51c939ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e2e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae9680150d0e603d5b11e21fffc0c6b34c7f9f61c2b730739d728c23e5590660931191077f591920208286e763acdb3280fb019c294548137c4442d22d87a3b88b5fb13ad242b4c191f61e117fa186ffa0f43c527a31d3468c486e09ef8634eb4f16a14d9d33a6aa19a6ca282dc3e6b99781ec735554b302236e9caef5e6ffab81e5c252607ef096f1abbc661b109b7fa4d9bc4ef5a30aa43b26d547108b9440a08031ad9f810f690e544399e4ef64805b2645d573ecb5f0946ae44bc2833bbf5f7ff09f8e1db3ca04b645314b952499dc5904d1f08d4266877c80b8ddb708ceaeb560b99b4380e9852d09d4d3f429ae71fd9b7b67180a51cd77a40a90f425731b61e172b0a27a39d1b5547a8fa2fde710bc1529fed6709923a030b3b7bab52ce855238e4ac231e9ebd0840980bd7438d6c07532595fdc48a5e49fb718a55d00f9c4c35544cf6d0a33887c3b572cd0ae80891507f950486096ef20dbabbf616fc68dd15d378cc315615486fcb976fd99f317e9f9f9107ddec4e434d7310058cc5660c00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001078503315b24d2c7043ff5d024828414d18ad6007d7ddd714daee9d9e055e9c330b32deae74b0a529803f0a478cfac7299eadee2ec880f76a59fdef7485a68fb1e0c79f1b68eaa9fdad2b663a328edf4930427d1ff423134dc00fd727e1909313788be35e26c9b9d1d531b1143796a9cf9b4c75f35246b42c0a7af8b10f2976020a09d5be58a05953c99557ed3b8509407e5b01362a62e330ed4825c5bd3054d35d078c5231040a10cee3dfc8a117a113d7b7cdbbf207c2acccb35f3ea9b6a762a14d972f7e1e7084c6b6ba702d70b6389e622fd8e2d46c00e5122ab735544dd0ceacb50e680e1ca88cde11ebbbebd81008047e388b697a16e02fbb8a43dc4b23ecd52aa46b501ea11dbe259d1650a84b587e37cc514304c2480ae97310088ae3b6f933ed6a909fe31cf234260960409f48f84eedf278102a4f3c8299f8b532c29340a5d4c49801263bed7e1a8a0daf8cc9cd8c35324221c7cd7696740a36e183c15f4f58186723e3d7d1843ce29bc4ce00352a2b1ac446b155348297fdc13b9282373a5c285f7987cfe927f9446f2f1b59693c02a280de56d946481ce398a903ea31420db4068d97451e8e7709dd75c46ddf316999919eb56d7138d5f357ad313e03265369b69744a0dc91dfad25cb5e6c16b0a94d646aeb7edf892f6001e27037519031d15062d2ddfeee960a5baac7d5949aa9a9b684cbcc1b3d7e03f454719c5f00ae3e0c4906f7bd59d2b7e28b8dd2081f5dc02b1bcef96f96dac19c2b9000197dc1952e0db74c77baf6ed8b66d12fa416f880099ddf4cad8e7cd3ddac828193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e11105939417e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e13781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e202a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b6965158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef62bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b28193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e11105939417e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e13781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e202a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b6965158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef62bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b077596ab5d4f14c7435038a9742be3e6b737f77900011bd2975eecabf38cafdd2a541dc9aede8050ad6648812a33cfccec8163996bbfab69265fbcf2ef361c4e3000000000000000000000000000000019b4f2bd06f9bad4b2e1e4b1c00000013000000000000000000000000000000019b4f2bd06f9bad4b2e1e4b1c0000001054e43e7d570affb9aee4854bf65e29645e89aff47a48510591b37be81e7333b1bbf6cf08a9fcae4eaea8d7a724774b3c8891d34d51de544ba34750fec2c590536098084ccd24f630a4526a8ec327dd02e337604f5c9549b72cafc70dfac942c255565b8bac20b8c8e750132a560c37ef3df331436801a7896862ec06cba474305abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b3288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc735024182ccb0627001b850504582c756dce7c72a060e0b10fd66001d0bbca3d909fac28e0e5d239105f5b80d47da2bc3f88cdacf4a3d170591082de15897ab082ec95088a6954a2b0eb38bcafc7568bd41c195159aec6025222744eec5f8f4c73502425abe23651217faf5299b77ed5cc30333e56dba19fe08bf95918c03550c9e3b42000000000000000000000000000000011234c7e04a67c8dcc969876800000012000000000000000000000000000000011234c7e04a67c8dcc969876800000011a445bcde13d619922120c75871bddf6a20508c883af01ae4687ee02b259ab463828fcf707ae2c920e818f8098f8d61f319c2608d9288f962be01c3b3eeb51d431f8fa47c15f532744d391fba64d1b81ef2ae1069e3f43afda1cb6dd3c0e142615b4f676a1281fbed91d170cc14c3dc2d1056baf914e1e96e8f4176419a3e460249c9d5d84bf3733bdca1aaa501db2430deb40e37229c347e09afcb52448a50a0e47a2ed0231e42e685bc077703b2ad299bdbbafa86f8d3bed02509b76d607ad0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000104d03f6a5d6f0a13608cd503e6279c9c9406eda3fc29af3f15ae8275615d27a63dad24e872ff7cfb2ac12cebc8f22f00496c97539621d09fd225cd510c9c9f85074e237773b0f74a2eb7982f01c28d7600c8bc5ef9817a395ec1f881969cc4d9184211339322df5bfc426420e4150c8a14d205fd809596c4570b4b5b71d3bd6c3f1af53251d49d546405570926f91223f344adebf01132a6a88db547127fadf82e3220570fc3d10525461f26970a6c9636aa2428a37196b61fab63dccea8d4592a320aaeb3f0fc5769e818e465b79b3c67c11e5b9713634ab1c71cafb8c57b2937fc37789af9d8b04b71fcd5a2f3e2044efae83a52a64cfc6fa143ab7a8c690a1910efef74ef68d7252321c29a7ac30d4739d7c205f740a430f3bd48b460440f1fbcf4de61bb150cdcdc1d0d92f88db476c2e067571dabe45b5fa0ec8d8412bd099d70afa9677ff0035e4f912b27a58b9174457eda2dc087cbd918dbafbfd7cc022be0994a6cb5556431d186ed61eda3170a32b4f66eeb1c7b6440fce609f10f0783a7029d0ca5c3eff4f44b8e1ffbec53bd16b01e1160475dfaa54e5e9b1d311f42e0c400b9baae015b871b76c4ce618670d72a9c62ce6dcd43a1d3ced3e8311f6bb00cf1d48007226dae5f7e469c922a119978a097a3e56b24ff3ba583eacc26724152bf26609546159e89d76d0d72d10350133ac8eedaab8b39468f5af34c3ddb75782fdaf4c973d76e5edb9985a9ab31e8dbdf0bcf858956cfce9328eba10c8a1e6a2b399303443a4d2938bd0c0fb6595ba12a2dba113da5ea33a29c33981043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a1043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a352254da5cad22b2bb31a255d43899f5be174c33d783688ffa31918b2d0e604e3319a2a83a6dd65b246c9f7d539b67b09c3b0afe9bcc31f641e4746e726732ac06cb934fc247fa8d561ee4874ddb15c44061367e9c9857ba790f75d47e485c66012515c31c4d62deb68da72f0eaef3954e35414c7d634f15b8a251c3e93c47a811b3b2cdd522bbab58a1c1e190509f255ef725a55de7262c784576be6a96be2731e58121b4e86da8dee5935258eb584177732ffc36cb6ca749c9dad8b2f3761701964ace5f996e004463cc51a0e0974be4467bf3704d77d22853a8ba1554a8c22267e92a09901923b82bcf1dc9b164a7ad75052728e5f70769a126c426b15905291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa126c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b2b8e40f40da8d8261d87a0534e4cda684b2f16fa51f2e5013e2a80240aac2a2d101a49e89dccf3c20d53292a3e6513a4fca4c6dc28c40702523309daab596604041217d5e10ae2bfeeaf7922ddec504623ce1649953138d125ec298d54a9434e0bc14794a944c6c62505b9539db5a4ba37d64cb0f01d780f9ea66abaa45c85ae1d512c57e2f29ca04e363a2e738b7cb3d3d12ff33cf1abf2a1eb949626fb09f422aed3a81d0d635fb1c9c5d18c74834c4e756908cc5b4d28f7419c56d904f60e043b25663d9755f9fbb6a4130f8737eabb14f2e1c112f7b7b71edd8adb66f6bf1255d3b75ecfa0964dd0d265dbb756b1e74a8685096654c1b47263efb854e5f2399b47e3b01812f3f4d3065d3e3557c16e72ab335fa0a3c7fc688c14e7ac6d1118def51becb1802129cef3e8958ea490a2dc90e2554d4ad2cdfe2384dc7fb99b2b333315bc9db3e6b3312b5a267179daaf67f999b551aad7c03fd47ae5b608160a06902c07401192f1e43e5923d22ed0438008714d50604f5832f178914706ec0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000107e96bf24bac030919fd64aeffb0ee3ca1e99c41e8a914885475ac0a78c9118920c34952dc034c28455855f033ef82bb4c7146b3b870634b07f2617e576d36061d57fe81da3397061b2598b14b06289aba1cfe1931a046619842bf303916350a03b280cb16e29225275093c28d9432e348ada832662c66167135d64f08b696ea2b35d7f4d8c21cffc869cd87e10ff9fc1ec9342ef40968f61d56b3d3f93d442a0e87157031d6a1ef5989da55af490d830da9957196c449e498a8577c156084931221c76e6d0286efe21915d76c7972e436655be883735258764943b51781862c2c13fb493a026e9559689bf256cb2d6021d89c1ed59744d7d2d11c9627c812ce0dc3c9a17be96a5236a7de81f28921770e97f94f2c476f115f838bac0cfc93510dca8f9bc7019d6b634cfe098b80edb5374e94449b13bbce19f66244f7514b3c1387bb451a699a31340dcf5d798eb28dd49798fb52bdb18ae196c750de0137153c0a5a0a889cb255463a294f1d9402af93f8bc96e826f1fa0bed5d2b8b17c6081dc2311089bfa7b3d949498d083630e228c088a56ae5bd015715069c0b353b79090456b61406b8be180731d9fcae996bb16d65354f8e71b3d42940862239c9e930baa722c2fc6ba58d319537f0c174bda6025fbf82ba8e2095a6ca6d56149b1c07f2bab4e3ffea13da7c074c0bfa7d9068e6db30f05073e84730ba3fe18e16242a5281631db4874ceb71489395b19c323cc2ec93f5e86955d0e66987c99cdf6739b0730006d398fc66876d28ecea27263327d99308b02aeda875eac4b43e22d722349581c8414f9f69c009613dbf362475871029f1b3b8225760cc5a952f3c8b1dcb6a7e37beb060963ff69ec240c9dbacbf88d2179940f941cc64926ad0c3762b06eb88e9468e1d10c02ee634bc0eb607161ed9a5e8a67482899beae9ec2eb514f9147716b971e2ef3fd119cb43f14a1b307a22636452a716a395021613d14c172299ac8e60c69153c0ea7f07ac498dbc9acf4c21a454f3c12878cf919ce98628dd6653719f396eac3f1580f853b67265abc9afe7a8a427d804b81d6e63167b33ad005ec7e3e0d6a2c4947b265d6fc48cbf73809ee8afa72c9d2b20d8108f9d0c52ffa1381c1f295d3b6b84d9a2903b9587257b6a6449746c9005cc27ef706422349581c8414f9f69c009613dbf362475871029f1b3b8225760cc5a952f3c8b1dcb6a7e37beb060963ff69ec240c9dbacbf88d2179940f941cc64926ad0c3762b06eb88e9468e1d10c02ee634bc0eb607161ed9a5e8a67482899beae9ec2eb514f9147716b971e2ef3fd119cb43f14a1b307a22636452a716a395021613d14c172299ac8e60c69153c0ea7f07ac498dbc9acf4c21a454f3c12878cf919ce98628dd6653719f396eac3f1580f853b67265abc9afe7a8a427d804b81d6e63167b33ad005ec7e3e0d6a2c4947b265d6fc48cbf73809ee8afa72c9d2b20d8108f9d0c52ffa1381c1f295d3b6b84d9a2903b9587257b6a6449746c9005cc27ef70643ba6fdac0b77d30417b290295f5091155d781ed0d0a66a28e5a091ccf9031fab1883d6e1d3620a99d127d8cf8f9f75ddfae5984b4c8b4ceb80eeda5649fd192231e58121b4e86da8dee5935258eb584177732ffc36cb6ca749c9dad8b2f3761711b3b2cdd522bbab58a1c1e190509f255ef725a55de7262c784576be6a96be271e34c8c6e8e486192e6d95d7e579bb63a7782fdbfb459376a1965feef865efee19da8e2638861c7ac4e5de71bdfc3b42ec37f154f40bbed4c5e50965a0156c061dc393bba5987af7a09770b5534817ad1166f535085b6aba31e508f8cc4d8ed43e3e384bf13dfde462d8f3db4225ec5fa16abba8710b18a36e808962f7ac6f68352254da5cad22b2bb31a255d43899f5be174c33d783688ffa31918b2d0e604e3319a2a83a6dd65b246c9f7d539b67b09c3b0afe9bcc31f641e4746e726732ac29d24250f6b4670e24020e24c8b498f21c523a29da50193ccb3c7dc6b4ca3bbb0aa3e0aca0ab123197ca10f0f185664dc33a2a61899b9f56735ccae3c626ebfd127381323f9fbf530967dc8447c416a96fa1e32b0b281b6702eff53454096a4115c87650577b39bad636654ee00feafcc869db0b5eda86039ff8dfd84b6c28b91f59de8a0531e8f7e4fb3d06f428aef8f5ad712878a8e28c5a38b1b2e1a2379620a62175face17081b04c2f90bd751072c9927d390a4168f3ef47f3a1e5dc86c361de49f64eb062c88dfecab38be6b904f621dd66dbffe0a97285d8c9d573ea23254dea6813b5da4ca9e67e206eeee4fc0d3611637a897ab461015a03a40fbd63152fefe2d5cb4a80ad8e58ce10bd791ddfd5c517bb3be0a724b1c650caba07b0cb7cf6098d89ae50fef09a9a52427e0b57002e699f8f3f444aa83972adc05083d2f2bba4dd6036b377d60076ead05fb8b55a4846f3919a0bd5897c34a6fa31f248346947a06877699c6c27985c22d8d9eba78c992069da8ad851e0d75cf575b00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001035215d03f19280475a0f7ade56c805c1844414cc6c7d5d43a32a1284d95ce393bfc7e73437838e941b30bc55061f707991cd2401354c928f11e5192bf21e2872987767e938f49ceb5a136300f1e279cac702f6413ec0e1f1c2a4a13a5a071071d3fcb31ea3f5602987f50cc5bbb4475d99cc487083d941c3422ac153733720e29c3fc6f09addff66efa2fd9a1d9e12d03e791a1b55ffd381da08b433e64641d0497ee2cc3cfcc130de9ab77fe00412adbd8f866d1433d7961a006ecaf7190122ab9a4351600987b3e651dabc9b2f143ba201dcb6344d44e429e7765930d5129190f7ad9252eb310a3a596fde4803fbb4eaa3bb4e76dde92364395274005f9383ea623d76a45e4baed8cbf35c1e550e1468e42f45b8566c7a4f019682e1e641a29cba85ffaa56e69dcf6d1d70d50bf49eee553df7a8c8aa43c72c9862a16a2b22009a1baeb97477f6d4e64928dc03d8cbcde0901aebc1f669d29814f37a33963182d041c749fa4cdd9110de7845d7072a18733798f8c49a085be99b7c34fa0363b997a86be98af2f17d8a79df07a43252154bc52fd45b1e0aca7359ffb48a9522b2d0d3fdf2db142d977d3c9146a8728db1fca83c67b75f017c4426f32265c11260ccb5add26884100a711aa70f34b3d58c265a7dba74c6346dbcebdba5ca1323e090563f5590aeadeb9e728d72c4df9640af804d59902e74f293a946de26caa1263cd3c2a53bd6ce3dae3a79032d8d65daee09f378858f5256b36f3e042368c3e267348d1f97e5582faff576cc0b6d3742b0f3556ed1dd67b36e9f86b7040571043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a1043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a352254da5cad22b2bb31a255d43899f5be174c33d783688ffa31918b2d0e604e3319a2a83a6dd65b246c9f7d539b67b09c3b0afe9bcc31f641e4746e726732ac06cb934fc247fa8d561ee4874ddb15c44061367e9c9857ba790f75d47e485c66012515c31c4d62deb68da72f0eaef3954e35414c7d634f15b8a251c3e93c47a811b3b2cdd522bbab58a1c1e190509f255ef725a55de7262c784576be6a96be2731e58121b4e86da8dee5935258eb584177732ffc36cb6ca749c9dad8b2f3761701964ace5f996e004463cc51a0e0974be4467bf3704d77d22853a8ba1554a8c22267e92a09901923b82bcf1dc9b164a7ad75052728e5f70769a126c426b15905291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa126c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b2b8e40f40da8d8261d87a0534e4cda684b2f16fa51f2e5013e2a80240aac2a2d101a49e89dccf3c20d53292a3e6513a4fca4c6dc28c40702523309daab596604041217d5e10ae2bfeeaf7922ddec504623ce1649953138d125ec298d54a9434e0bc14794a944c6c62505b9539db5a4ba37d64cb0f01d780f9ea66abaa45c85ae1d512c57e2f29ca04e363a2e738b7cb3d3d12ff33cf1abf2a1eb949626fb09f422aed3a81d0d635fb1c9c5d18c74834c4e756908cc5b4d28f7419c56d904f60e043b25663d9755f9fbb6a4130f8737eabb14f2e1c112f7b7b71edd8adb66f6bf1255d3b75ecfa0964dd0d265dbb756b1e74a8685096654c1b47263efb854e5f2399b47e3b01812f3f4d3065d3e3557c16e72ab335fa0a3c7fc688c14e7ac6d1118def51becb1802129cef3e8958ea490a2dc90e2554d4ad2cdfe2384dc7fb99b2b333315bc9db3e6b3312b5a267179daaf67f999b551aad7c03fd47ae5b608160a06902c07401192f1e43e5923d22ed0438008714d50604f5832f178914706ec0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000107e96bf24bac030919fd64aeffb0ee3ca1e99c41e8a914885475ac0a78c9118920c34952dc034c28455855f033ef82bb4c7146b3b870634b07f2617e576d36061d57fe81da3397061b2598b14b06289aba1cfe1931a046619842bf303916350a03b280cb16e29225275093c28d9432e348ada832662c66167135d64f08b696ea2b35d7f4d8c21cffc869cd87e10ff9fc1ec9342ef40968f61d56b3d3f93d442a0e87157031d6a1ef5989da55af490d830da9957196c449e498a8577c156084931221c76e6d0286efe21915d76c7972e436655be883735258764943b51781862c2c13fb493a026e9559689bf256cb2d6021d89c1ed59744d7d2d11c9627c812ce0dc3c9a17be96a5236a7de81f28921770e97f94f2c476f115f838bac0cfc93510dca8f9bc7019d6b634cfe098b80edb5374e94449b13bbce19f66244f7514b3c1387bb451a699a31340dcf5d798eb28dd49798fb52bdb18ae196c750de0137153c0a5a0a889cb255463a294f1d9402af93f8bc96e826f1fa0bed5d2b8b17c6081dc2311089bfa7b3d949498d083630e228c088a56ae5bd015715069c0b353b79090456b61406b8be180731d9fcae996bb16d65354f8e71b3d42940862239c9e930baa722c2fc6ba58d319537f0c174bda6025fbf82ba8e2095a6ca6d56149b1c07f2bab4e3ffea13da7c074c0bfa7d9068e6db30f05073e84730ba3fe18e16242a5281631db4874ceb71489395b19c323cc2ec93f5e86955d0e66987c99cdf6739b0730006d398fc66876d28ecea27263327d99308b02aeda875eac4b43e22d73ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f620591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f620591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f11d68caa2862c78883eaee78094d9fb69b4c1aed67ae908a1a76c75ec489012536bc066bad4f192cbdf19e4a06169f22f64d1f342a06c9e1b7b20cb69f53d57912aac1a59c78a2b8a13ff2c356ff5ddb259d2538cc45ce530648a90a8728eaaf09bbdf8fe995ac146b6973388bc2ed59adf49fb0089ffd8ad272064a6e75e15708283f8b0e460d52c58913fad78e1fc4cce8aa7552f29062c225dd92e0b0220d0905d69e666e3b2a0d6d173f142cef7678532cc741da81bb8790348d2c293b4d1c0c545aa2bdb7106c3d18e0e089a52c307d2b53c1fd744562f39fadedfb16f52539ce1ab71bf03b306a3c65323082b11c9d2833d618dd553afeba6647d312752d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd62dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a2caeb7807c1dead5d1c662b55553c90de9bc150c9e29a6158b6474c7766da90f0818bd7372880ed9f4866288b3a4faf8aa3496432b0a99467ec41ef0a0cce8471b7eb1b03b2495bedad51ec49fb3026e615d58d5d5589a3e786dc083b44e142e3f881a04691b3abed6a4ee7d6e267383a04b7313dff32acaa8364ed8f23649332db440267a9bd1688c896e542803f8483ad70d72b4284e6d66e13605bde462a5124bbfd985642e97737691abd7fc07b7e76f8b895524aaae324bfae7421b9d5d122a8587982e6be632a23fc9dbcce77cb1ba4823216044f6870ecc147fbabf071bc55174ba1f98f0ed2982fbf715bbe6dac2a312401b9040042270e1ff681a6d2396a014bd6e68b6f5af40670776c22dacea3ee1deaac3515b15eae00bbeeac617a2dccd15da37108193045195e9fed45e1190756979938d365996be129f014c167d2c13c149d04c397d98f1f551c2a1e2d5496310af3af6b5a73fa833435a1b19f0dea5696a07d3bbbb1fc88d2ad0c0f2e0e42dbff1e9cf134cda5f79df0abd00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001109e3b25d6eaf227fcaf6d36cb42f35b70edae9536ad3e8c281bc3efe27564ea25c08d36b406d862018fa2c12c472e995c06991d4ddbecb194b4c8d8741d61c23acd73965099bfdb1a39790b5937fa86465afff38b90d12574c58d75d9143c4c13b89c971068be68d03ee086ef53bdd72f9c87f4fd937248fd0502bc575adcb618d437a051b06d00c4990ea827be0a13141e5eca8a731b5ca2c748f2ff26371e2840f927accd85703a44e33dc9bf5e394ae4903e809881b54364be44909933cf0c82e3661104272e8be924b6d85e340fc9fbeb7931a7a5a4d7d47e0e6b200c6c2c62d5989c69004e45bf771b3c689ea0b5f72b14659ab50f624e46dd54b6b800222f920842118da3636574311bee35529523fcc9daa4629711376fa41bb84853331da19e722f5098cbcd9e4035d8f543b20b7264068f50ab17fa9b4d17502e5210a754b8e43785af6b2d2bbc6374597bd2ac186b1348e78a5148034363e5b58c1008240c96edfdb25fd46f88a486ceca942de7411d764f5f8c81888aaca000e31181dfa4a722e64aab728be07d3e637646b1c2150a3f361cf013909855bc8e7f1544a821f6a37a2745ddef8687a666d7937c2bc5b034f8983b2ab689d7b276e3089d8d1afe8f64e30f17b10ce34b6e11d8d9cfde5c30ae3b11546afc2e20ece3256c1f510228dbf043a8f43b711018b8e59c777c3aa5e7e5bbb4f69905f4baca02f140478b774cbfbab23255d9cf11d576b1902c5434a2ded74483df583967121ce8cac8cce45bea593e69dbe8b0c86c0358479e0c889ca4fa87ad0123f99d3c1b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac24fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a60215507121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a7235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec21ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f30c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c80f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f046391b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac24fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a60215507121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a7235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec21ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f30c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c80f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f04639017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e17f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a663731319406bfd32611570a209b85b38e49dd7727b21099400a3c3bf232a29135eb21ffaa18c3bc1139049500403dfb0a68045256159afd6c550275472c9aa6b8c62350c1986d63d0d76252cd4dcc0096252448ef72e67695958363393bbcb800d6809d0f28df34f89daacb5b062f76ba5e1e124926c9ceb5a5f7656919f3a5e969e3e1997b507db4b065917a029279c8555c9999921841a1143b015554215aee3521d14c0bd1af0dd795dc65f20deb61a24d29b51f0237079f79c9c23abdc96c858299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f1002216e46a214a91f5a2912ec35c5d5d4b79d789ffa45cc5f6dc24235ed2181770fc34e4bffb46072d0886c1b4271f2e319c53d84677f770f003368061821a4847f82b6879fe81419e32cfcc2b0480ff303bbca2014ac309b579f4be78fa1264a22208134748d8710762979b1062406fde0c96064ace3630870592558b307fee102d2182408ef8ba9b1382df281ec38ac2874e7b4cace7a5cba04d24afe99b73a2001e7dbf71074564ec7d20d7e13c753d78d3cb4c4f21a72d7b4c088103648c5e023164c1bf1ae2029777c3dff21ba619fc2d7be784efdf6974468338c28562f49a1ddb5f9dd3728cc1a88ec687c309f77977b9eadfb71caad3f97d8a2b06242527139156c72428edfcdf747c06e9ecb574ec529da3e5e8af3e18d31d2e6cf2792520b9838c8bf1f913cb129c5f382e42b09a3bb74a02db998692e998d8cda653cb1148533ee7c56e033c9b467730eea5565ea5e36f213886c3bf0536c63236cb2e298132be8b07ab8b4f9508f89714bae10d2ce2ad0930ba29727d0be1dd05d42e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011b7c0cebe7f0abdc2e6fbbb7af15d33a9bcbfcc5d77da633614554754419a764171aee187091111a19d3984a064c173b821aecd6bf4cfc25b5a6ad6b41c8bdf73c5b813daf9b2d6a68219fe6b8f4a25c419780cd3e92388f389cf9b0250a51380e89457941a583d24abe81016def215c20b8e9fd750f8d331f360635bb775f1d2400d6c301d9a66e1dbaf8a4c3f4916b46aa3bfe71ea2fe48302024a33f8312802d546f3288eca99667e6710c83d44975601a0e8cbe56139529e462bd7222ca4179c6b9f539642b3200b6c67fe444a27e92602af3f57ce0a996fdfdc25082a671a07874f99f0681aabca4c6a91cbc0da23c6f183d00cbdb935087f8999ac55bd1c2329da30cd1dd33cabeb05c1c01fccd42d31999903e89a5929e676ce7dc2551c9cc0f3bf68e8e48d2eb4fb1a073d79dd4f4eebf41d74fa20b1e5134be7d28d1dfde1e30d8f60d0a207a02c2f41206b915f6beab5381a756793e126ce0b9458313fd2989b4642eba0eabb340c627fd19d7db66e0e7b9ef96e796af0e327c3d13f74d921816327c00708d46651c6c00fbe459744edc8e76f8c6575aba318850a2751aea51c6338b1ea47a700b31e0a3e3e2eef91d5f84061380602638a5680593f7d2f7d19b1890b6acd25a4ace10f5312fdeae4e58bac51ae50a46cc2adb0620ec4ae8b86660c946e198070c1bcffd6561e63faaf89f76f4ee4b962a9c8a8ab008e61e29236aae85dc42fa17035d21e98d0442801c21f441c0910e71a88a08620d3462c6dd6151616518c66abec97fa058c23f3c8c0bcfff6a1c3ef618e3b2d333cc7f239e90d1e250d652ea9f7cc12e697f5c2ca7e415f0989cd766d6487350cc3380dc616f2e1daf29ad1560833ed3baea3393eceb7bc8fa36376929b78cc002fe7bb218d4196b942f9e951d6fc5df7dd68ddcf43626ccafc3f9c22f6a4053fd01844de72be6946bd0616ae2903a22a69301e3a0996aece30f150dd095bfc00ef86a7a7c247f19e4ee18e9932edd5d7530c550c50ec1ff6ed3e0caed134193f107958583db80e61b11e7166cd122a4af38ca6fcfc0cfba23ff2e0512ecbe804ada14646cb67b8178a67c8fdfea52d349f3da93d949c9fd2a2363f6a16047d3b525eb9b9349847e875983702015ad2eda75b52cbb85c7bc68afaad95e9fb84333cc7f239e90d1e250d652ea9f7cc12e697f5c2ca7e415f0989cd766d6487350cc3380dc616f2e1daf29ad1560833ed3baea3393eceb7bc8fa36376929b78cc002fe7bb218d4196b942f9e951d6fc5df7dd68ddcf43626ccafc3f9c22f6a4053fd01844de72be6946bd0616ae2903a22a69301e3a0996aece30f150dd095bfc00ef86a7a7c247f19e4ee18e9932edd5d7530c550c50ec1ff6ed3e0caed134193f107958583db80e61b11e7166cd122a4af38ca6fcfc0cfba23ff2e0512ecbe804ada14646cb67b8178a67c8fdfea52d349f3da93d949c9fd2a2363f6a16047d3b525eb9b9349847e875983702015ad2eda75b52cbb85c7bc68afaad95e9fb8404c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a208231a5dff2845246ca0cf5e27115659713ebef7caa9effabbd28b13d9ef252125598985b4ae56415db9e2bb332c7ecbf1e5b2ee5b48d128e16c3f52244ff7e2622cbee39cde689d2d8a050b771f7a2c3b1ba52e62b09b30c8e93c520f6ada1196338b4638e14cfd60159eba3a4b37353ad4a5d4d9e176d1f2d58b8452241f034819967d4332e1af1d8e800d34bbb8e694c88b8f1d5feb0267be1d368a9293e0b45f4fb3203a579f75898884ba773de8b74c16da0c98fb3b4a53a4a4f9c399a0427665ed95b17a0576af512ebc575a225cca770747fc11a85e3405b33ad6bb002137e04dacf9afbc347f2bf066d88f624070fedb8de8410940ab528ab8fc49c2a63020858900b61abae8a795fac74fabc6a7183931f80ac647ac8d64b3653b7224b385c098e8641a085c4a165c658c92708e50a47976d7d269a67edbafeaa0c1abd3511536821dc461c7d674732bae6dda3b9d00728c5266be63961803211442b7daf5260c290bfd4966a6aab0043b18e76968a2f8279204734ed0f5f0b1f0a18a9b70c789886e082d48aa840c531f0b99ca9e24e4a4115d7db8438d4a24ca8275648f38767791f7d2b7557bf3ace0f68a9ef19bb02b805c151acb42b5db35a23e054061327a7c9571ea70ee5b73a96f27e1aaaa0f6927cdb0d2d0023302a5e079d3c4a3984534e9a1e1a05c5287678db9a52fa805cde2ce96101aa7145d9a92fc356a68748e55d4849f3d557684c3121039f66861a52041680e64e70fe95e7226811957ced1c531ab83a9d26259f01417eeacfa7adcfbb06f5e1f3d0a4a3621cb200ed1e00deea310e9d373424918f15d4eec78deac73500d097af03eb0bab1968894d3b8efdef31a81c71469cf2901592a3b796ca5416fb908a7a90861ef600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001211175519adcdf78898a939563ef4c9761188e998167e220fd75ce33e7f954020df2fa69b4154327bc93d841be1d2c8ad0dc7eb158746a0efacfcbe18df64abc277e220ed91ec495e1e25d034e93540257d24841fbea12e977e10e1a57b4697e3d7118ea079ba657224a97f8126377941ced20bcd109a9a6164092361853620c04d53c9f7e5dd803af7fd5264edb8ddbb41cae166daa1f5a5cbfe4aaa012371e357d27cff8328a62daa64fce6d46eee79747433b6fd1dffe2114b81aa520d23d1a49a8d0bdd7802e3443fd92c049fe51d5f581f3e7e9f1db83696443313d76b716f3d98db462f74154a54b60f2eb9d02bf157af0f44c9590ba9c3a8187781a903a5455af27480e3f8f47f29769270c5034fe2e826038e7f1a465819f47d94d7211b4f57ffb37e5cf59eaaedb5b406a7d2140e1ca1291201a7f5e7949f9aa5d9f11287f52879263aaf5d8fa7afb6fc62287b7389d721231c2f28ab914ab7368c219876c025a96e1d9c83c4a06c514a2981033d3c3d11fc39ab6ab91ea2ad850fe0a25fba0fe2112738f7150298927361d531fc4c8117076b9042ae073506ed7e91ca08c259fa54dfe61df2b3d7bbd9430870e2912a903b7fc271366aedd002d791323fd0c824acd06b582ff9746b49298a1eccad3cc55796eb4fe2faeb9a6defd13295ebfcb3d35c474fa3f625a07624ec78269d8d9c5308cf0fbefabee98f56a29ea3d489b6b3729952c1510573ea379eecaa46eec297ebe5f1cd2f4bd60ab6322fc935f44d9d4727cebcdfc4e84f1c46b08f91c87cba1864c7794ab2d67506600000000000000a030616ad831836177181ad416d7c80b2cd741599f7eb06d1863b2dee410d4e8641ebe36197264d4d99cf4903a73e8d5d011d93acd7afbf1327c0e6c37b606430a1a3b4b42f3c62d81e6f6fad4f0c03d557d2ce545385ae3694fb3901fafe7936618de89a4d4d8f90b7a7c23516f3e186f67393434899a80d4233dcb12976baf19357c6a6e93e94cb578b4443fb222cc26796d981f12b15c531b28538840d998e705224a24583644849d9233e119a9242bdde2cc4314d1b7ffbb43800e0c18452e2a4fafed8d2c2ad255e9a5cc50e126478a818c94dd9c69b4fd91885815c2267808ca24fa3b72fbbb0b89785a0f1d2f7d59e48ce4e458fa88755fd2da31911c07326f8d2bce67658660659f5bbc22cb53e35dee6b9a66d535853501b2fd8d3d4f2b142c957034f82ea5477af0d046ec9380b8a840ae94e5eebf4a7f416267598108ca24fa3b72fbbb0b89785a0f1d2f7d59e48ce4e458fa88755fd2da31911c072a4fafed8d2c2ad255e9a5cc50e126478a818c94dd9c69b4fd91885815c22678249622323839671dbc9b5f26755c65a1740785970986be62acf9fa9ca77448af18824cc13f45bd015a89595e1627fe326c2406cbc26f3c430b4d2e0c0422f9b912a2ace629efdd85c57307f00b0492fff4b6029a3bab02faafca2837343df408207728019eaf49079c00163654f9c2c4efb016df864a6142c32732fb13154e770a50ed7c87e5e67337157c6881e9274803977a9a3288dc871be61535b19ffc74078c30d9c5424aa96d6a7f7737bd5360a692f591d5f0700808ab881cb84d1ae1151e3cc39e4b45b0554078321e992af91a68ea27239b8e006fc8b5d06cb172f81dfb98242a53e0dd0c32a5f441652acbc9fd2f529e59d63d0328a561daa1cf870d9c3c6a44c3de21ccc3edbaeddab9ad3a05bfc34fb95e8b180cbcd99391d02b3b6690f8420fda7c9a2040611eaa0d8f9846a6de271912a1231d4c955279794c18de89a4d4d8f90b7a7c23516f3e186f67393434899a80d4233dcb12976baf191a3b4b42f3c62d81e6f6fad4f0c03d557d2ce545385ae3694fb3901fafe793661194abef1973f31fe1c4823525ecd01b8f69f8569c0075821d57d685daded7ca1223c91f985609b6fdf8f139d77896f5c359f190354bbff9e1d4e67fe56e045406c257c4dc609b8b235f142bb4baca80674666d4ab603336e838789560ac5ee82c577d22ec3e8b023e1409faab438b447d1fb2a5169531068ab8e29ce6a6e397326f8d2bce67658660659f5bbc22cb53e35dee6b9a66d535853501b2fd8d3d4f2b142c957034f82ea5477af0d046ec9380b8a840ae94e5eebf4a7f416267598108ca24fa3b72fbbb0b89785a0f1d2f7d59e48ce4e458fa88755fd2da31911c072a4fafed8d2c2ad255e9a5cc50e126478a818c94dd9c69b4fd91885815c22678350af28cf50d07e85ee8bb610a8de384110f35b53bea85fc9f1def69f17e90a13a64aeb75b21987af3c5ef0b1f2c38921dd1e74fd8bba460b94c7bc2d86bf240061a0ac41155f3132be7cc29b2de0dbb6f212be72c835ab85299f748fa1a09932cffca23b749337a358b51fcad2048097544ed9295720985205763e94d3938ec06382274c7aae00f249210b3a20f72c7a4889eabad5224dd5d69df6d54bd8c5730095558e3cd33a7e3b598231fdeaa7d08a9d30b07d62aad0c9e52e4eba27e260439175b9728426087f0539296b211cdd0fe54dbe69411764f8438ec3a2fc3ea2ee0bd8c3176e42cd982ca93c94c43f71367c49ddb6152c7236d22460d237e952a29237cfcb41825395a65938834b1dc738270e0620e68573c730a42d8b949cc15e69d0a0f3ab75884abb08752dd7c8951aa2d85cedbcc917f956d058521c85a15b060356566b459b7ab399654de855cef941f3908dc307a2e1b6289910993b31d6974b263387233a9c7e4900b1fd067f4d1fa40b91933c344d5f8a8b649aecc08dc6490001c3d8d33900bcb8c1cb2de1e6a5f20705e6849b2dad24c33bb41f92f920ed953e2dfe4275dc6a0c03028239f44b71d2fa1bb0add2b09a7cef5cd4b1fd2429721a8eb4e48eba013a3516d2a2a737c6f875379285f6a01d33eeab5ad13479250a6f63b3f18877e12bcace89ab9f29d0a3aa1eb151387595f08688cd238a8df3c2192c8e8e5cbac6126fa4e7860dd2b1d189d8782ea7b7b84064ba4f82261202491aa01e71f032d87a5b6f5ed7a5e438e8beb4d4e7828b05dfb038d85207728019eaf49079c00163654f9c2c4efb016df864a6142c32732fb13154e7712a2ace629efdd85c57307f00b0492fff4b6029a3bab02faafca2837343df40821a5b776fc4f6f93a2714b8e11cc8e0614c0e6a3abb2ee34117ee6a1be9455fd366cf656227dafddbb7c30c46b56ebcde179760493e1ac5a4d63f6a090770cc21d6974b263387233a9c7e4900b1fd067f4d1fa40b91933c344d5f8a8b649aecc15b060356566b459b7ab399654de855cef941f3908dc307a2e1b6289910993b3352439bd2bf9ec09b614c22cabef48e43fa35326a73b6b04059abb30dbe269a51ba0b287294e138adc897092f7c0901a51b39fb1d8d914ed3f638ead35944710119447be3fa03c08a7cc35fccf5114a0fb10526fa4599062adac853ad2d78fa121858d2988feea84b9a6e82990ad4123e955c70a1d9bd3dac544d5f7747bb2de2a29237cfcb41825395a65938834b1dc738270e0620e68573c730a42d8b949cc15e69d0a0f3ab75884abb08752dd7c8951aa2d85cedbcc917f956d058521c85a15b060356566b459b7ab399654de855cef941f3908dc307a2e1b6289910993b31d6974b263387233a9c7e4900b1fd067f4d1fa40b91933c344d5f8a8b649aecc21c441b658c60cec60b52b64731121129d647bafd4b15a0a580aa66c5d3b409d183bd92449addf66d839370ec4e71706b5d5a32e88c65cc81d5ad929d319340b1e4b9d5f89f2d74925b66c1dde9212117d32a09649316d4bae9dd9bca92e47d514ce37883eac4f443bbcb208816c43b3673378e378c3f6f1c45381759e24faaa05deb1c833c96d9d9976e0d7bebbfe3f0e4ff90a1301f12a010e81137259498d3fa62e062c74cb70f4745a0d4b3ce73cb16d75e0ce4f3a5576f7b502c8eccb93319cde9b7fd5804e8324ac18aae5b7af1cd5338b1185e8268ea9076ff398b662017cf64c48c9a63ede4e720db5189e15c790e5eeb06f7c16e44853c253ba8c1d366cf656227dafddbb7c30c46b56ebcde179760493e1ac5a4d63f6a090770cc221a5b776fc4f6f93a2714b8e11cc8e0614c0e6a3abb2ee34117ee6a1be9455fd1d6974b263387233a9c7e4900b1fd067f4d1fa40b91933c344d5f8a8b649aecc15b060356566b459b7ab399654de855cef941f3908dc307a2e1b6289910993b3355e12a7bdc11f2155d5c98fd64240cc999ffb4e8bc7c8b2753cbd5f107a269010e73d561fd29eb1219dccfdc84cecc45555f697d2f0c119e7efc8ec327f36ff1dfb98242a53e0dd0c32a5f441652acbc9fd2f529e59d63d0328a561daa1cf87151e3cc39e4b45b0554078321e992af91a68ea27239b8e006fc8b5d06cb172f815e69d0a0f3ab75884abb08752dd7c8951aa2d85cedbcc917f956d058521c85a2a29237cfcb41825395a65938834b1dc738270e0620e68573c730a42d8b949cc15b060356566b459b7ab399654de855cef941f3908dc307a2e1b6289910993b31d6974b263387233a9c7e4900b1fd067f4d1fa40b91933c344d5f8a8b649aecc2f920ed953e2dfe4275dc6a0c03028239f44b71d2fa1bb0add2b09a7cef5cd4b08dc6490001c3d8d33900bcb8c1cb2de1e6a5f20705e6849b2dad24c33bb41f91fd2429721a8eb4e48eba013a3516d2a2a737c6f875379285f6a01d33eeab5ad13479250a6f63b3f18877e12bcace89ab9f29d0a3aa1eb151387595f08688cd2346094bf8b478389bf6fe54cb16f94421bc02db3540cc279a3bdeff4325a392e2d8061c6f3fc57ae543c0449e4d7f6b2f2745ba46749bd730d2532443a2c313a2ee0bd8c3176e42cd982ca93c94c43f71367c49ddb6152c7236d22460d237e950439175b9728426087f0539296b211cdd0fe54dbe69411764f8438ec3a2fc3ea1ba0b287294e138adc897092f7c0901a51b39fb1d8d914ed3f638ead35944710352439bd2bf9ec09b614c22cabef48e43fa35326a73b6b04059abb30dbe269a5119447be3fa03c08a7cc35fccf5114a0fb10526fa4599062adac853ad2d78fa121858d2988feea84b9a6e82990ad4123e955c70a1d9bd3dac544d5f7747bb2de30616ad831836177181ad416d7c80b2cd741599f7eb06d1863b2dee410d4e8641ebe36197264d4d99cf4903a73e8d5d011d93acd7afbf1327c0e6c37b606430a1a3b4b42f3c62d81e6f6fad4f0c03d557d2ce545385ae3694fb3901fafe7936618de89a4d4d8f90b7a7c23516f3e186f67393434899a80d4233dcb12976baf191a3eb64dada400aa3bafa6667497c15b9de431fb2f15d9756790d684b1f2f9051c81054f8692c8223b8fd15d0ff93c4c04ed6aa972e3a2a1360c3bf270e389211f667dc61866bd39e7a2022ac183304526c46f9a28e0d8e2c0134e4edaf74a8813b35721b038695379d11bfb9e7b257fbda1a9df99148b5ab2de0ce36c5bf7f71ebe36197264d4d99cf4903a73e8d5d011d93acd7afbf1327c0e6c37b606430a30616ad831836177181ad416d7c80b2cd741599f7eb06d1863b2dee410d4e8641a3b4b42f3c62d81e6f6fad4f0c03d557d2ce545385ae3694fb3901fafe7936618de89a4d4d8f90b7a7c23516f3e186f67393434899a80d4233dcb12976baf191a590196c7e963bf1fff2dfe5471edceb9e67546cecf1c9e7aa3451ad26eec260ae92505475dd4227890186628f7dfd032c3d6228e28beb831537722dcfbbe6425fd8f2ea2d5ed1a53fcb0d641340ea41b4ecac25877ab298770ab08ba5c4fca0d1c45b925c939730d766d501eca4720c9174eb7697db913eb80b0298cf6f2b52a67c9eec68de9ccd99bf35115830208a8d80182f448a8d8e7bb44b4abf7e16908787dc954e6cd40a9c858b7c548d892039e152615f1522bee0c22ab5183e8f10d1c45b925c939730d766d501eca4720c9174eb7697db913eb80b0298cf6f2b525fd8f2ea2d5ed1a53fcb0d641340ea41b4ecac25877ab298770ab08ba5c4fca3f210f8273076c9cc515abfea4942975a4e678676bb61cd8f791e266ef5f4eda2a0f2655804b72199da091a21b97c6dae6944baccb3b919abfc059ce53f0c2ea29ab7ff27c9a0e4d1ec836de4000fde587a8d3477e7a60981eec9cbfdee6a978096e54f54c05184042aae7481ffd57df5cbd4632437b03a55404be72686c9907346094bf8b478389bf6fe54cb16f94421bc02db3540cc279a3bdeff4325a392e2d8061c6f3fc57ae543c0449e4d7f6b2f2745ba46749bd730d2532443a2c313a2ee0bd8c3176e42cd982ca93c94c43f71367c49ddb6152c7236d22460d237e950439175b9728426087f0539296b211cdd0fe54dbe69411764f8438ec3a2fc3ea2b142c957034f82ea5477af0d046ec9380b8a840ae94e5eebf4a7f4162675981326f8d2bce67658660659f5bbc22cb53e35dee6b9a66d535853501b2fd8d3d4f08ca24fa3b72fbbb0b89785a0f1d2f7d59e48ce4e458fa88755fd2da31911c072a4fafed8d2c2ad255e9a5cc50e126478a818c94dd9c69b4fd91885815c2267821c441b658c60cec60b52b64731121129d647bafd4b15a0a580aa66c5d3b409d183bd92449addf66d839370ec4e71706b5d5a32e88c65cc81d5ad929d319340b1e4b9d5f89f2d74925b66c1dde9212117d32a09649316d4bae9dd9bca92e47d514ce37883eac4f443bbcb208816c43b3673378e378c3f6f1c45381759e24faaa08dc6490001c3d8d33900bcb8c1cb2de1e6a5f20705e6849b2dad24c33bb41f92f920ed953e2dfe4275dc6a0c03028239f44b71d2fa1bb0add2b09a7cef5cd4b1fd2429721a8eb4e48eba013a3516d2a2a737c6f875379285f6a01d33eeab5ad13479250a6f63b3f18877e12bcace89ab9f29d0a3aa1eb151387595f08688cd22261202491aa01e71f032d87a5b6f5ed7a5e438e8beb4d4e7828b05dfb038d8538a8df3c2192c8e8e5cbac6126fa4e7860dd2b1d189d8782ea7b7b84064ba4f8207728019eaf49079c00163654f9c2c4efb016df864a6142c32732fb13154e7712a2ace629efdd85c57307f00b0492fff4b6029a3bab02faafca2837343df408249622323839671dbc9b5f26755c65a1740785970986be62acf9fa9ca77448af18824cc13f45bd015a89595e1627fe326c2406cbc26f3c430b4d2e0c0422f9b912a2ace629efdd85c57307f00b0492fff4b6029a3bab02faafca2837343df408207728019eaf49079c00163654f9c2c4efb016df864a6142c32732fb13154e772261202491aa01e71f032d87a5b6f5ed7a5e438e8beb4d4e7828b05dfb038d8538a8df3c2192c8e8e5cbac6126fa4e7860dd2b1d189d8782ea7b7b84064ba4f8207728019eaf49079c00163654f9c2c4efb016df864a6142c32732fb13154e7712a2ace629efdd85c57307f00b0492fff4b6029a3bab02faafca2837343df40800188636aa67b820d7ab5bdac05eca5efd48cab1a6790384cb645c4e28e19e061285084f2015fdbfb65cfbad8dddf85edc1a2875df67a7573e53913948bec1be017cf64c48c9a63ede4e720db5189e15c790e5eeb06f7c16e44853c253ba8c1d319cde9b7fd5804e8324ac18aae5b7af1cd5338b1185e8268ea9076ff398b6621194abef1973f31fe1c4823525ecd01b8f69f8569c0075821d57d685daded7ca1223c91f985609b6fdf8f139d77896f5c359f190354bbff9e1d4e67fe56e045406c257c4dc609b8b235f142bb4baca80674666d4ab603336e838789560ac5ee82c577d22ec3e8b023e1409faab438b447d1fb2a5169531068ab8e29ce6a6e3972d716eb8ca4f2988e6f978e7d9e09417a8c99428322e4501066e4ed912d24b2119ec13570b24c5d1a25be6c5daa53b238146740dbe3c0a84cf7ebbd3889d790f21858d2988feea84b9a6e82990ad4123e955c70a1d9bd3dac544d5f7747bb2de119447be3fa03c08a7cc35fccf5114a0fb10526fa4599062adac853ad2d78fa100000000000000c800000000000000230000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000000000000000000002024f3af1b1647bb312c015a48502bdcba582529e56718776c1cf05694f83b3cf10000000000000001000000000000000000000000000000204b06bb483c21112f9cdd7eff56256a5630233353d836a5d668685bfdc6a4041e000000000000000100000000000000010000000000000020d80cc5cdbb0ec297cddfda4fd988de76b705f83576117fb5ed10b48a9b959bb0000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000230000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d700000000000000060000000000000001000000000000000000000000000000202be5b721f66cc6681fe5359f069c154e05e04221085880823ddb2fb35bed24a6000000000000000100000000000000000000000000000020c24bd4eaecf1b5c095cb7eac429e2ce90102f0ca60ff52a74fe5db4e953d8dd0000000000000000100000000000000010000000000000020a6eed3c09c5170a5d3c1062c3341c3036d029b89aae503c842e393d743e237ba0000000000000001000000000000000100000000000000203748da9612449e691c1f511a0efbeea445902a0cf00e315044ae222a6d0782d4000000000000000100000000000000010000000000000020adb8eaef73a8ceab26782ef60dd0142232fb9a5368bfb15c680181cf9256dd4d0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000002300000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000000000000000000020569d90b86503309433c7c99e5827ea62ee4ba020d2fb88a703c1f9e7bedb5b38000000000000000100000000000000000000000000000020a12f1b8c7f69eaa4f69aba8dc45f0ab3eff1ba06591468b63e11ec3c445e7ee50000000000000001000000000000000100000000000000208be58086853322c8773837b8c2d02f28fab5061c05f7e6ead40677855b6fb0680000000000000001000000000000000100000000000000204dabc344807c3be9f234ac57b07ac45d289ed74a80a158626d7735db33f22982000000000000000100000000000000010000000000000020380598ae7bc649d61608add40bfb9a587ce84ee9065865c8db1413f481d6dece000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b3500000000000000230000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb1800000000000000060000000000000001000000000000000000000000000000204b1c046191b69bcd33083df78f376ee183bbd08b39418e196718005800bb7a4f000000000000000100000000000000000000000000000020e3f83e35974ade46e1fe5aa51ecfb305ab4e1590369f9dec3078707aaf362f9d0000000000000001000000000000000100000000000000201977fdcf5661682556211603e997740023bc80e839a6dd5f44ed1335f0782e9e000000000000000100000000000000010000000000000020ef01a7c4ec3aea147cea8c1deb0ea39d6727493b384745fdac406d90cfbc0b33000000000000000100000000000000010000000000000020c7597d99c829d6efca97aa7e6ecd776d45c68e6dd9306fc794c4d2cee7e84c9f000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c1300000000000000230000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d0000000000000006000000000000000100000000000000000000000000000020c698c2634348509f708c4ef37ef1366bd8af0880fc88034bbf74f621a30333ed0000000000000001000000000000000000000000000000207ce772ccbc0ae2213cb947f11e4f01759238d1dc202de57f34dc74e798702e300000000000000001000000000000000100000000000000203f935f4aa83ceb889ec651c6c84d27f3bdbeb24bb028db70a3e821f3cd2e1f5e000000000000000100000000000000010000000000000020d980f4b45192828a9b5afbba0e11fe28b001e86e3b4b3a6e2f6172abc19d8be9000000000000000100000000000000010000000000000020757ff2f05cfaff6ea60a6597e42ed2757cd955e4cafcfb47ec86f9b10b51230b0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb16637400000000000000050000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020df632d8f7473aa2a266c94e0516913189d640957a4f03bdfca986886fba478de000000000000000100000000000000010000000000000020358c6702aa7ce3c8bdcd46a395295b533449972ac93e65796c809d3843af3e0a0000000000000001000000000000000000000000000000205653a7aef6c658c2fe00a9e102931ec0732cfb210b3c0f9786685131d83170b8000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000050000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d700000000000000060000000000000001000000000000000000000000000000203cc4d6f4068b2a3d2716264bab165a69ad04d9e3d16f90f56db4c5c2b14b75f30000000000000001000000000000000100000000000000204bdfd55727a4e8fe6e049768544b76e865da33953297497345b5034a1911585c0000000000000001000000000000000000000000000000203ad7fd5698e5be58de7990f933f6c7898b23643b5b9d816deaf9a417c23dd6210000000000000001000000000000000100000000000000201372e78c2c052b784180de542aa47eb2bb53d01169303993faf60c8d554b2f730000000000000001000000000000000100000000000000202cd923c9ad51045bfc9d9d6b2b0efad39d54053793269cc7b5293263cd4556ad00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000000500000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000000000000000000020da986286568ddd8f7d7003877738b6a6b05de67bca9e495f4a3b66f7384f878e00000000000000010000000000000001000000000000002015a4b0b0a407ffced35f42a201c1feab2727efdc00c38f7c4448627d366a3a380000000000000001000000000000000000000000000000203cb9947cedec25457c2378eb9b5b9f2c3987a6ee66012008ec2e902a544eb76f0000000000000001000000000000000100000000000000205174975bfdad7ff3af610fceab74f94ceda7360eaa76c78283f4bb4ba38cc30a00000000000000010000000000000001000000000000002066cf4d9926cdae82b6d9904873c2298bf88ff7798aff52ac7e80595bfebf56340000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b400000000000000050000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb1800000000000000060000000000000001000000000000000000000000000000201a12cfcb5fd072ec03ced0329427689faca3fbc03ceaea71c630e0dcfe62e4e6000000000000000100000000000000010000000000000020ad9166747b5d8d8f22b57aca30444a6c24aad17de4326fb6eac4fd474cab7996000000000000000100000000000000000000000000000020e8c2bb93a11dcf6040e149b57365ddc89686d90e4f80320a11731d6c268b54340000000000000001000000000000000100000000000000207eb1197c546bbc4e4a76048b12fa374c548aeba420b06d0659b57873e8f44b1700000000000000010000000000000001000000000000002062b119579f2ce99141f7a10eeb446a695c116edde54c9c8d3d41d0f6d978f97d000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a6100000000000000050000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d000000000000000600000000000000010000000000000000000000000000002042ad61f260aba0879e17239af95c2c60a84f2b0a2c301d487aac8cf9c6f3e44d000000000000000100000000000000010000000000000020186f223eebe6496ab3644dc79fe4a478eb1259742d0e8d7b4769e763da37722d0000000000000001000000000000000000000000000000208db56a61d427e46a782c8337a38ae7d73ddd6afd046087d3b3ad987f33397413000000000000000100000000000000010000000000000020891c853160123425a2c10c5935d96515b19498fdfbc3cb4d6c7dd56bb01ebe0a00000000000000010000000000000001000000000000002042a34b3906a2d85259fdd02f30f238b8f4b9b88b27d8a6bf5fabaa6d7c12ab0600000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b7740100000000000000350000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000207c94017f1fb6147ba3e921f88be16fe2b5cefa8f7a8b23bc85945becaf18382a000000000000000100000000000000010000000000000020c362cab2e6c4dc6ea82bb6f4ded48e2f8eb7e24ef0fa0baea7e88c5951f51ecf000000000000000100000000000000000000000000000020cacc7d788bbdb1c4d5dbf47f8afd9ed9b975d2203ba1769a80caa833f3fbb946000000000000000100000000000000010000000000000020f006cf8352bbf180ccb81999dec2d0377abf32ec1a119242758d07bf00181499000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000350000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d7000000000000000600000000000000010000000000000000000000000000002018a3b4c013647e1cfbf47871cb8b302ef9e473e62e01e9b067d5aeeb28e6103f0000000000000001000000000000000100000000000000203e9e1794e3ab8bcb877795560281d553e8d564cc0d8995ad218383984a27419800000000000000010000000000000000000000000000002033e7006db572644806c9d21830fc317d488d3eb37ab16177312161c83c96782e0000000000000001000000000000000100000000000000204704b2369bbb85eb35028b1dca7bb4fdd6aebd6e5749c4e94ddc7511a99d762e000000000000000100000000000000000000000000000020834d4a08f12e109ba3842642aba51324307db48367fe911f6f90ea4c90f658af0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000003500000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000000000000000000020e03e120bfea592791e0d8050ef119a6873beb1bcfa609b8aec6e00b998e4f52a0000000000000001000000000000000100000000000000204a5b2a11f8cc938e3d0997b8019e221c2da65049f3b278610fa9d8ac32e1998f000000000000000100000000000000000000000000000020d07b5012f25eb800ad0beb08df3a44b29e04313e7734d3f8b8d179deee3be79a000000000000000100000000000000010000000000000020ee29b766915a0b2bb8b3eed1a190e616f1054d1263bae454ff4b2c87c790d9f2000000000000000100000000000000000000000000000020e46de27951e7cf912bad485c8e6567eda41b075c193f312ae312f934169d3978000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b3500000000000000350000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb1800000000000000060000000000000001000000000000000000000000000000201eedfe555ecca0619357190efb72a2e0e891f0b2b578f5de7b0b2e4a3d67deb10000000000000001000000000000000100000000000000208e95ab803c0030b813a2496f4d8a902ce53652d50f4cffc6c5b46000ec6a9314000000000000000100000000000000000000000000000020239bbe1e783db329778bbdd317b229e92841e96b97e289b59ab7e65b7f8c697d000000000000000100000000000000010000000000000020fb4a60a9e1d778020d976922d17f02aa13de150f1ef9e070600c13e05e0cd3360000000000000001000000000000000000000000000000207b1b03ed11100190943c68158379b874102af65549a0dc5eb9bee52b887a1e5b000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c1300000000000000350000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d000000000000000600000000000000010000000000000000000000000000002052b20cbc892b02518f02ab01926164804a7f7707717d68262e04dda0f035122c000000000000000100000000000000010000000000000020445c5a1265a05ae3066b3916cf28f84c966cd53c4deebf7b241e510336742355000000000000000100000000000000000000000000000020e2e289844f36439c5d859f51d56bbc4b13a514529349a51a6cc18a699b5c2cb80000000000000001000000000000000100000000000000206fd0c241d082dddc763476a7c884f0f9949e0d0c60b662c9718f6a9990d86306000000000000000100000000000000000000000000000020c32a41143c0bed20f51da2399f8c92440338c8c1a4f71184e98747946cf91d0d0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb16637400000000000000310000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020de0239826f84300a4b930455833368a3b5ed681fe8962cfb4af828dc999da678000000000000000100000000000000010000000000000020b07fc62d561ac62b44d2a42d32b92ea5c1cc6bd1a2aaec7fc3bc3511de391ed20000000000000001000000000000000100000000000000205f3c867463c166fd9c0125885c51251e20c9b8d44030db7f8c699a0f747c2522000000000000000100000000000000010000000000000020f006cf8352bbf180ccb81999dec2d0377abf32ec1a119242758d07bf00181499000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000310000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d700000000000000060000000000000001000000000000000000000000000000201e990e27f0d7976bf2adbd60e20384da0125b76e2885a96aa707bcb054108b0d000000000000000100000000000000010000000000000020be315ca75a50a54647d6af6765170e8e260e2447ed5ba5b6c28e49cb9624ac8500000000000000010000000000000001000000000000002069bbf4e45f7cf39db228623b3f31279cf0279d75ab35bdc78bf8e5c11af26e2d0000000000000001000000000000000100000000000000204704b2369bbb85eb35028b1dca7bb4fdd6aebd6e5749c4e94ddc7511a99d762e000000000000000100000000000000000000000000000020834d4a08f12e109ba3842642aba51324307db48367fe911f6f90ea4c90f658af0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000003100000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000000000000000000020b97f093e23b2895b7de60bcf4223312f9129d8958945267c56f18a65dfd1fef80000000000000001000000000000000100000000000000203883af7544d26da8ce7644195720c73ab1e9fb5c37365aebac74a689d570c016000000000000000100000000000000010000000000000020b3dcc758a9e7e412a304b6eea80be32762cacd880a436e5c9f74b9147fc2af5b000000000000000100000000000000010000000000000020ee29b766915a0b2bb8b3eed1a190e616f1054d1263bae454ff4b2c87c790d9f2000000000000000100000000000000000000000000000020e46de27951e7cf912bad485c8e6567eda41b075c193f312ae312f934169d3978000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b3500000000000000310000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb1800000000000000060000000000000001000000000000000000000000000000208e81de10eb36dc9520ba4eab03023c233b7d200d834d94cdf3348f54895a5a1d000000000000000100000000000000010000000000000020bf4ed2215edd6feabe994b2473f201a59e5ea07ac0cbddb7e290c9f4bff7e566000000000000000100000000000000010000000000000020e6b0f46fb0cf4fad5f91e9a53771ca0f6326860e4e3112c40366b8b61d16fe08000000000000000100000000000000010000000000000020fb4a60a9e1d778020d976922d17f02aa13de150f1ef9e070600c13e05e0cd3360000000000000001000000000000000000000000000000207b1b03ed11100190943c68158379b874102af65549a0dc5eb9bee52b887a1e5b000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c1300000000000000310000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d0000000000000006000000000000000100000000000000000000000000000020d20d6a382c07d2115635b18e66695dfdaab93828db45674bc5ca2ad77a77305e0000000000000001000000000000000100000000000000203a2d04d0af50a10de82b7f1346324dd6aa93ab36d183810b0ddbbf44b95ba319000000000000000100000000000000010000000000000020bff790245007621d0f42d4c74e91a01ca1c7d45cfab67dc367cb6aab6570faa10000000000000001000000000000000100000000000000206fd0c241d082dddc763476a7c884f0f9949e0d0c60b662c9718f6a9990d86306000000000000000100000000000000000000000000000020c32a41143c0bed20f51da2399f8c92440338c8c1a4f71184e98747946cf91d0d0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb166374000000000000002b0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000202cc0a05107243620d3b647e265e82b8acebe905524da6da10e8bac593830a70900000000000000010000000000000000000000000000002064f12c9571923baec5fcc14481a7dfea3e02c1bfc8c062111edc34018395b7160000000000000001000000000000000100000000000000200ebe305ff48b2729427a6d3d9c605f9d8749d8a7f371875c0845a2841f05d610000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000002b0000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000000000000000000020a8ad856a7652d98d0c61f1f062edb9a3fe280f07df10db1252e185fabda6bbe100000000000000010000000000000000000000000000002001ca22f5f6f565ebc8cf6898b01e3982e7d217a07578883ba64a263ef5c28703000000000000000100000000000000010000000000000020aa8aaf7a9f2c4682ba9ba18998b5c7d9b5cec92d7d415f46af51866ad5d812c8000000000000000100000000000000000000000000000020de2df1a2bf6ab8bcb15302a439c8c59b426846d84a9a27c4f8cf974ecb5fc439000000000000000100000000000000010000000000000020adb8eaef73a8ceab26782ef60dd0142232fb9a5368bfb15c680181cf9256dd4d0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000002b00000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000000000000000000020fda552c5ca409b53109e02ee877c3594fc86265dfc70b9830cc0a56cd2e877d400000000000000010000000000000000000000000000002025ff8306245f7fe571c0349290a7be1bf895df290cf10339195c6999962b523200000000000000010000000000000001000000000000002012b2c25f0cf4525c6320e52750c92201fd654fce8944a872da5475b3d695badf0000000000000001000000000000000000000000000000201358541e6063a73bd5d17001b4e53dbcb7fdfa7e49ab2bda0741eb1f96553a39000000000000000100000000000000010000000000000020380598ae7bc649d61608add40bfb9a587ce84ee9065865c8db1413f481d6dece000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b35000000000000002b0000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb180000000000000006000000000000000100000000000000000000000000000020fb081ed0b66a97db003cc1b974f6ac159a25c24475f533727105a982163f7fec00000000000000010000000000000000000000000000002096ee2fc6e93824458606178354a7a00d4970e0b2c917c8b244f4a6c6d3c2e98e000000000000000100000000000000010000000000000020b77914e384a9047e3473fb351a9618aeab0e1f21754de24d9a50f7e34bd0f4e40000000000000001000000000000000000000000000000206dddcecd3e91e63334cc6fdbdc96a088e83a1ca9fc3e29ba5eda5ebb2decdce6000000000000000100000000000000010000000000000020c7597d99c829d6efca97aa7e6ecd776d45c68e6dd9306fc794c4d2cee7e84c9f000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c13000000000000002b0000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d000000000000000600000000000000010000000000000000000000000000002060c3679e22a252ece5ead9564b1c1f1f679a7d98a0517741b01ccd04bfdc72d3000000000000000100000000000000000000000000000020a985c851b448bc4a96b5437be4a584a5e549027156d04631b14ca427e292e115000000000000000100000000000000010000000000000020423a01aa2ffd993dfde30c95c6a57e30516214d0d8193fe602e5153aa78b7b69000000000000000100000000000000000000000000000020f29018eb67b28e0544e686c0f4bd5c31b00a7fc35696d87214de6da96160c60b000000000000000100000000000000010000000000000020757ff2f05cfaff6ea60a6597e42ed2757cd955e4cafcfb47ec86f9b10b51230b0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb16637400000000000000130000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020a51adb0dd5ff6139015f567454f916303ab3f39c830603b281712da0359980d000000000000000010000000000000000000000000000002077c77d7b993f04ae31fa6b6da7dff3c353004c11a049302a478e5dac04d508cf00000000000000010000000000000001000000000000002038c257c4acc7ae148c5c9b4409c82130df8554a30c1e722962697197980c56fb000000000000000100000000000000010000000000000020f158609c6b12d3609bdf1c7797edb538f985fe8ac4171f066b1d7b9c43c7bc3b0000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000130000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000000000000000000020fd9d9e400710596403b0ae049cec2b70b34facf8fb080ab8956cfb31c8bf7d9f000000000000000100000000000000000000000000000020c3807ec5f80a4e76ca630fc9b23c56d8237187af623941d2ed970f60cd51976c0000000000000001000000000000000100000000000000202a626f6e71a7040977f48f0331876fcd1bdf2afd39133fc91c8f911e06ecb5500000000000000001000000000000000100000000000000200af3a1e8f7893929d070fc6e79b7461d01674e4931d207f9ff44d0ec44d192ef000000000000000100000000000000000000000000000020b2179105904f600227797c6ccdb8959ff4252a36710715b942b644ee0a59f58d00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000001300000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c100000000000000060000000000000001000000000000000000000000000000206066300c9cb551cca764c0c41d3c9d95c9f587dbe4c74bb24032a5379cb56fd3000000000000000100000000000000000000000000000020b1cdfad78e6c2e96cb5505f5b487b05e69045ed6472bcdd5e14dac230b5a01f2000000000000000100000000000000010000000000000020c870cc5991224fe875c03d99dbfef8fbfeb41d1b1f43d327e63022667b3237e5000000000000000100000000000000010000000000000020ca595177c9eb6f3096754da5b9601c287818bfb8ed6752a05163c032b4d4c069000000000000000100000000000000000000000000000020286aa95516a0434f8968e2729d4c92308c9456ebf4a1d0d9d335e067c147e9ab0000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b400000000000000130000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb1800000000000000060000000000000001000000000000000000000000000000201be30fec72593c922e1fb8dd662d841d9cd0f7b58f19b4eb4dc2319aad93a23d000000000000000100000000000000000000000000000020031a8a34fb478e28af611966b2b8e1059869e10362a64db0f43d595ea412918e000000000000000100000000000000010000000000000020888cb07446656d63b2a096d8b1b156d05205811b0e48ebab0e2714854ab470de0000000000000001000000000000000100000000000000204a78e9eb44fea21926a2ac4fb17955446eb663b8130f9780a83ae405bdad6dbc00000000000000010000000000000000000000000000002059afffcfe907b7f651d0f62f3664c228c07fabe8b4015f54f0801603277ddbca000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a6100000000000000130000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d0000000000000006000000000000000100000000000000000000000000000020c9c6d6043c59524417655a5b42956e821dc2113337400069cd92342f28ce8ce5000000000000000100000000000000000000000000000020c74c3928c752eaf0d0080facafd37c21a8412e300fca7acf824a73a046c8b2900000000000000001000000000000000100000000000000202ab2bc596dfd3283c0f38816f230153ec7e09812548f97c0b3065918e43e8b250000000000000001000000000000000100000000000000209551c6da21b704f16621143cf4ae3bb0037aaa9f71b9ddbac1d1dc4d7841e9f2000000000000000100000000000000000000000000000020096a6ccd52081fca061f3bc4d84b362ef4fd8c1a120c9febbbfdfb49dadb617100000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b7740100000000000000290000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020afda8f08f851e66f41a25326acc738e8538b2349a3b415bc8993aee72bcbde67000000000000000100000000000000010000000000000020c600a084e5647679dce1e61667cd049aa01cd0b29e54cfef6b28350be80914810000000000000001000000000000000100000000000000200ebe305ff48b2729427a6d3d9c605f9d8749d8a7f371875c0845a2841f05d610000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000290000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000000000000000000020488dfd6cdb4f2e80929c5debb43a8b534761d20b7ba517b6fcefd831965d9a380000000000000001000000000000000100000000000000209f9bee513a75283462112f1ca2af8bd157d6c94c1864112cb461c22194cbc552000000000000000100000000000000010000000000000020aa8aaf7a9f2c4682ba9ba18998b5c7d9b5cec92d7d415f46af51866ad5d812c8000000000000000100000000000000000000000000000020de2df1a2bf6ab8bcb15302a439c8c59b426846d84a9a27c4f8cf974ecb5fc439000000000000000100000000000000010000000000000020adb8eaef73a8ceab26782ef60dd0142232fb9a5368bfb15c680181cf9256dd4d0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000002900000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000000000000000000020e820af01f14a35f54d5ebc8c69106dfe81cef61b5747ae8871f5505fefaa5c0600000000000000010000000000000001000000000000002057c569142e0c8f3bce388044ed66a39869c151160cb706b3171385e0a76a63be00000000000000010000000000000001000000000000002012b2c25f0cf4525c6320e52750c92201fd654fce8944a872da5475b3d695badf0000000000000001000000000000000000000000000000201358541e6063a73bd5d17001b4e53dbcb7fdfa7e49ab2bda0741eb1f96553a39000000000000000100000000000000010000000000000020380598ae7bc649d61608add40bfb9a587ce84ee9065865c8db1413f481d6dece000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b3500000000000000290000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb180000000000000006000000000000000100000000000000000000000000000020113e6bffa721e99e5d152594ba218f72e88742a06444f6286cffe63f5302e865000000000000000100000000000000010000000000000020f3293fb0f8fd810a186fbb5893e3954cd589abe33c61b368af3ae4a93febdf7d000000000000000100000000000000010000000000000020b77914e384a9047e3473fb351a9618aeab0e1f21754de24d9a50f7e34bd0f4e40000000000000001000000000000000000000000000000206dddcecd3e91e63334cc6fdbdc96a088e83a1ca9fc3e29ba5eda5ebb2decdce6000000000000000100000000000000010000000000000020c7597d99c829d6efca97aa7e6ecd776d45c68e6dd9306fc794c4d2cee7e84c9f000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c1300000000000000290000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d0000000000000006000000000000000100000000000000000000000000000020004c671ec0b3253de1c92ce54aefc9d3fd7628afe456557f80d4b4085bed631a000000000000000100000000000000010000000000000020f4e381e57cf0a37c06afa28615f52017494385618b33413cba97767de25cf7b0000000000000000100000000000000010000000000000020423a01aa2ffd993dfde30c95c6a57e30516214d0d8193fe602e5153aa78b7b69000000000000000100000000000000000000000000000020f29018eb67b28e0544e686c0f4bd5c31b00a7fc35696d87214de6da96160c60b000000000000000100000000000000010000000000000020757ff2f05cfaff6ea60a6597e42ed2757cd955e4cafcfb47ec86f9b10b51230b0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb16637400000000000000350000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000207c94017f1fb6147ba3e921f88be16fe2b5cefa8f7a8b23bc85945becaf18382a000000000000000100000000000000010000000000000020c362cab2e6c4dc6ea82bb6f4ded48e2f8eb7e24ef0fa0baea7e88c5951f51ecf000000000000000100000000000000000000000000000020cacc7d788bbdb1c4d5dbf47f8afd9ed9b975d2203ba1769a80caa833f3fbb946000000000000000100000000000000010000000000000020f006cf8352bbf180ccb81999dec2d0377abf32ec1a119242758d07bf00181499000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000350000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d7000000000000000600000000000000010000000000000000000000000000002018a3b4c013647e1cfbf47871cb8b302ef9e473e62e01e9b067d5aeeb28e6103f0000000000000001000000000000000100000000000000203e9e1794e3ab8bcb877795560281d553e8d564cc0d8995ad218383984a27419800000000000000010000000000000000000000000000002033e7006db572644806c9d21830fc317d488d3eb37ab16177312161c83c96782e0000000000000001000000000000000100000000000000204704b2369bbb85eb35028b1dca7bb4fdd6aebd6e5749c4e94ddc7511a99d762e000000000000000100000000000000000000000000000020834d4a08f12e109ba3842642aba51324307db48367fe911f6f90ea4c90f658af0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000003500000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000000000000000000020e03e120bfea592791e0d8050ef119a6873beb1bcfa609b8aec6e00b998e4f52a0000000000000001000000000000000100000000000000204a5b2a11f8cc938e3d0997b8019e221c2da65049f3b278610fa9d8ac32e1998f000000000000000100000000000000000000000000000020d07b5012f25eb800ad0beb08df3a44b29e04313e7734d3f8b8d179deee3be79a000000000000000100000000000000010000000000000020ee29b766915a0b2bb8b3eed1a190e616f1054d1263bae454ff4b2c87c790d9f2000000000000000100000000000000000000000000000020e46de27951e7cf912bad485c8e6567eda41b075c193f312ae312f934169d3978000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b3500000000000000350000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb1800000000000000060000000000000001000000000000000000000000000000201eedfe555ecca0619357190efb72a2e0e891f0b2b578f5de7b0b2e4a3d67deb10000000000000001000000000000000100000000000000208e95ab803c0030b813a2496f4d8a902ce53652d50f4cffc6c5b46000ec6a9314000000000000000100000000000000000000000000000020239bbe1e783db329778bbdd317b229e92841e96b97e289b59ab7e65b7f8c697d000000000000000100000000000000010000000000000020fb4a60a9e1d778020d976922d17f02aa13de150f1ef9e070600c13e05e0cd3360000000000000001000000000000000000000000000000207b1b03ed11100190943c68158379b874102af65549a0dc5eb9bee52b887a1e5b000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c1300000000000000350000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d000000000000000600000000000000010000000000000000000000000000002052b20cbc892b02518f02ab01926164804a7f7707717d68262e04dda0f035122c000000000000000100000000000000010000000000000020445c5a1265a05ae3066b3916cf28f84c966cd53c4deebf7b241e510336742355000000000000000100000000000000000000000000000020e2e289844f36439c5d859f51d56bbc4b13a514529349a51a6cc18a699b5c2cb80000000000000001000000000000000100000000000000206fd0c241d082dddc763476a7c884f0f9949e0d0c60b662c9718f6a9990d86306000000000000000100000000000000000000000000000020c32a41143c0bed20f51da2399f8c92440338c8c1a4f71184e98747946cf91d0d0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb16637400000000000000070000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020456e1d938e6648c4c29adf636e5183251a0ac349a008beb793b036853b4408e700000000000000010000000000000000000000000000002089f5f06a3eaa9feb6107ff18a664d8234f172a437fa0bd092c38efcfada850fb0000000000000001000000000000000000000000000000205653a7aef6c658c2fe00a9e102931ec0732cfb210b3c0f9786685131d83170b8000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000070000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d7000000000000000600000000000000010000000000000000000000000000002000bd34523e8c12c5fb78b0dfe518f0273d9d3a1f871b2752eb15c5a3cf6abe760000000000000001000000000000000000000000000000207bacd651a6b08d81c088f00a770346b0d1768e7ec85064689f582e046c302b130000000000000001000000000000000000000000000000203ad7fd5698e5be58de7990f933f6c7898b23643b5b9d816deaf9a417c23dd6210000000000000001000000000000000100000000000000201372e78c2c052b784180de542aa47eb2bb53d01169303993faf60c8d554b2f730000000000000001000000000000000100000000000000202cd923c9ad51045bfc9d9d6b2b0efad39d54053793269cc7b5293263cd4556ad00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000000700000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000000000000000000020acada65404b557523613fa3f7dffbacdf0759555117af3c4f5f519a8d7f0b8e40000000000000001000000000000000000000000000000208452af58f9ed0dbc14acbaa578cb5485a8503d7ee98bb6ae5dc5f153fb8628250000000000000001000000000000000000000000000000203cb9947cedec25457c2378eb9b5b9f2c3987a6ee66012008ec2e902a544eb76f0000000000000001000000000000000100000000000000205174975bfdad7ff3af610fceab74f94ceda7360eaa76c78283f4bb4ba38cc30a00000000000000010000000000000001000000000000002066cf4d9926cdae82b6d9904873c2298bf88ff7798aff52ac7e80595bfebf56340000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b400000000000000070000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb180000000000000006000000000000000100000000000000000000000000000020a03263d3e92b976fd0697d9e594d3f34cf011dcbd9340a75ac15e9e8f05ae0780000000000000001000000000000000000000000000000200024a7a0e916ea7fce2928db6dda2e9e4a515de80cbc986d22ad2e8ff707b1d2000000000000000100000000000000000000000000000020e8c2bb93a11dcf6040e149b57365ddc89686d90e4f80320a11731d6c268b54340000000000000001000000000000000100000000000000207eb1197c546bbc4e4a76048b12fa374c548aeba420b06d0659b57873e8f44b1700000000000000010000000000000001000000000000002062b119579f2ce99141f7a10eeb446a695c116edde54c9c8d3d41d0f6d978f97d000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a6100000000000000070000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d00000000000000060000000000000001000000000000000000000000000000207af61e01d7248138bef72f24397a12b1db30f02e2bdd3efa626db028d8a06f2a00000000000000010000000000000000000000000000002015c04c24102b69e60dc617bd642e1e1925fe64c3f3fb3be6c6afd64c9ca2c8d10000000000000001000000000000000000000000000000208db56a61d427e46a782c8337a38ae7d73ddd6afd046087d3b3ad987f33397413000000000000000100000000000000010000000000000020891c853160123425a2c10c5935d96515b19498fdfbc3cb4d6c7dd56bb01ebe0a00000000000000010000000000000001000000000000002042a34b3906a2d85259fdd02f30f238b8f4b9b88b27d8a6bf5fabaa6d7c12ab0600000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b7740100000000000000200000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000001000000000000002099c439552bc012b331f78711afcc02ab45f65be8ef9aef37b56c34fe5ec62561000000000000000100000000000000010000000000000020d3a8480b820bd6c782f5a7d8bc820d929996e9b8ab64d37789aa88140ba71654000000000000000100000000000000010000000000000020d80cc5cdbb0ec297cddfda4fd988de76b705f83576117fb5ed10b48a9b959bb0000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000200000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d7000000000000000600000000000000010000000000000001000000000000002030e6f340cd028a17639f6f312ae53a1cd81725f1375afcc8813813bd95a3dd2a000000000000000100000000000000010000000000000020bf61ac34db989373521cd06dc70a945f3e56ef96fbde05ecbb37b0d7b1e9ed0b000000000000000100000000000000010000000000000020a6eed3c09c5170a5d3c1062c3341c3036d029b89aae503c842e393d743e237ba0000000000000001000000000000000100000000000000203748da9612449e691c1f511a0efbeea445902a0cf00e315044ae222a6d0782d4000000000000000100000000000000010000000000000020adb8eaef73a8ceab26782ef60dd0142232fb9a5368bfb15c680181cf9256dd4d0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000002000000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020e71be17f145711830d96e74e37b492de01a3c49f3245874ff1cbc6ebb44291b4000000000000000100000000000000010000000000000020f70908251f98981e5ffca8177855753acbc26969f6d69c1f16fc2c3b036ffd6c0000000000000001000000000000000100000000000000208be58086853322c8773837b8c2d02f28fab5061c05f7e6ead40677855b6fb0680000000000000001000000000000000100000000000000204dabc344807c3be9f234ac57b07ac45d289ed74a80a158626d7735db33f22982000000000000000100000000000000010000000000000020380598ae7bc649d61608add40bfb9a587ce84ee9065865c8db1413f481d6dece000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b3500000000000000200000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb180000000000000006000000000000000100000000000000010000000000000020a0ef53296f9e83d63c9a80dc483d4a408ca6597be6fa89ba8b216a80f2290a0f000000000000000100000000000000010000000000000020043168d186aaeea0e9e9f3b273b2844c6bf5cfc132394831702c0d098815860c0000000000000001000000000000000100000000000000201977fdcf5661682556211603e997740023bc80e839a6dd5f44ed1335f0782e9e000000000000000100000000000000010000000000000020ef01a7c4ec3aea147cea8c1deb0ea39d6727493b384745fdac406d90cfbc0b33000000000000000100000000000000010000000000000020c7597d99c829d6efca97aa7e6ecd776d45c68e6dd9306fc794c4d2cee7e84c9f000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c1300000000000000200000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d0000000000000006000000000000000100000000000000010000000000000020969dddb32c807a9e65fbf191ab32497f73daee476a7322b52158e4b1e6b3c5ce0000000000000001000000000000000100000000000000205ace42c1f1bceaddeb2c4174889e3fbc8490969fc35812d4932983c46b42290c0000000000000001000000000000000100000000000000203f935f4aa83ceb889ec651c6c84d27f3bdbeb24bb028db70a3e821f3cd2e1f5e000000000000000100000000000000010000000000000020d980f4b45192828a9b5afbba0e11fe28b001e86e3b4b3a6e2f6172abc19d8be9000000000000000100000000000000010000000000000020757ff2f05cfaff6ea60a6597e42ed2757cd955e4cafcfb47ec86f9b10b51230b0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb166374000000000000002a0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000203da14c802e0b1caa6a7fdb57b49c71543b810414a29c1963edc1c2674d7504e500000000000000010000000000000000000000000000002064f12c9571923baec5fcc14481a7dfea3e02c1bfc8c062111edc34018395b7160000000000000001000000000000000100000000000000200ebe305ff48b2729427a6d3d9c605f9d8749d8a7f371875c0845a2841f05d610000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000002a0000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d700000000000000060000000000000001000000000000000100000000000000202b879cf039bc119f8962e5fcd67148df06a8b1defc43711ef972159394dccf2000000000000000010000000000000000000000000000002001ca22f5f6f565ebc8cf6898b01e3982e7d217a07578883ba64a263ef5c28703000000000000000100000000000000010000000000000020aa8aaf7a9f2c4682ba9ba18998b5c7d9b5cec92d7d415f46af51866ad5d812c8000000000000000100000000000000000000000000000020de2df1a2bf6ab8bcb15302a439c8c59b426846d84a9a27c4f8cf974ecb5fc439000000000000000100000000000000010000000000000020adb8eaef73a8ceab26782ef60dd0142232fb9a5368bfb15c680181cf9256dd4d0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000002a00000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020eef267b2f93774e7f79f1cc449383b364bd2d7bfdca55b70ea97e9598529f38a00000000000000010000000000000000000000000000002025ff8306245f7fe571c0349290a7be1bf895df290cf10339195c6999962b523200000000000000010000000000000001000000000000002012b2c25f0cf4525c6320e52750c92201fd654fce8944a872da5475b3d695badf0000000000000001000000000000000000000000000000201358541e6063a73bd5d17001b4e53dbcb7fdfa7e49ab2bda0741eb1f96553a39000000000000000100000000000000010000000000000020380598ae7bc649d61608add40bfb9a587ce84ee9065865c8db1413f481d6dece000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b35000000000000002a0000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb18000000000000000600000000000000010000000000000001000000000000002052a1d33f620fe09c1647d3c7e228eea85b52961f5d5f3771372ce567f0112bcb00000000000000010000000000000000000000000000002096ee2fc6e93824458606178354a7a00d4970e0b2c917c8b244f4a6c6d3c2e98e000000000000000100000000000000010000000000000020b77914e384a9047e3473fb351a9618aeab0e1f21754de24d9a50f7e34bd0f4e40000000000000001000000000000000000000000000000206dddcecd3e91e63334cc6fdbdc96a088e83a1ca9fc3e29ba5eda5ebb2decdce6000000000000000100000000000000010000000000000020c7597d99c829d6efca97aa7e6ecd776d45c68e6dd9306fc794c4d2cee7e84c9f000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c13000000000000002a0000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d00000000000000060000000000000001000000000000000100000000000000202db88c5be87f87cb16a3aeb8bc4012ff3957b15bbf0fa995d75de08580b74648000000000000000100000000000000000000000000000020a985c851b448bc4a96b5437be4a584a5e549027156d04631b14ca427e292e115000000000000000100000000000000010000000000000020423a01aa2ffd993dfde30c95c6a57e30516214d0d8193fe602e5153aa78b7b69000000000000000100000000000000000000000000000020f29018eb67b28e0544e686c0f4bd5c31b00a7fc35696d87214de6da96160c60b000000000000000100000000000000010000000000000020757ff2f05cfaff6ea60a6597e42ed2757cd955e4cafcfb47ec86f9b10b51230b0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb16637400000000000000280000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000203fc4f8175b9c92350566386ba4636deeb2ec6d4187f6d0d3208c3db577ee4c1a000000000000000100000000000000010000000000000020c600a084e5647679dce1e61667cd049aa01cd0b29e54cfef6b28350be80914810000000000000001000000000000000100000000000000200ebe305ff48b2729427a6d3d9c605f9d8749d8a7f371875c0845a2841f05d610000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000280000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000010000000000000020ff6f6655fe0735826a6d70429961f5593d2818d2dab010dae0a3abb68a0fdbc50000000000000001000000000000000100000000000000209f9bee513a75283462112f1ca2af8bd157d6c94c1864112cb461c22194cbc552000000000000000100000000000000010000000000000020aa8aaf7a9f2c4682ba9ba18998b5c7d9b5cec92d7d415f46af51866ad5d812c8000000000000000100000000000000000000000000000020de2df1a2bf6ab8bcb15302a439c8c59b426846d84a9a27c4f8cf974ecb5fc439000000000000000100000000000000010000000000000020adb8eaef73a8ceab26782ef60dd0142232fb9a5368bfb15c680181cf9256dd4d0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000002800000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020e85d96fec3a6507cb57112edfe7e33cd7c17a1bea23cafeb6446dc341e7c1fec00000000000000010000000000000001000000000000002057c569142e0c8f3bce388044ed66a39869c151160cb706b3171385e0a76a63be00000000000000010000000000000001000000000000002012b2c25f0cf4525c6320e52750c92201fd654fce8944a872da5475b3d695badf0000000000000001000000000000000000000000000000201358541e6063a73bd5d17001b4e53dbcb7fdfa7e49ab2bda0741eb1f96553a39000000000000000100000000000000010000000000000020380598ae7bc649d61608add40bfb9a587ce84ee9065865c8db1413f481d6dece000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b3500000000000000280000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb1800000000000000060000000000000001000000000000000100000000000000202e4bbc0d83afad6229babb666e584c56ef9bcc9b26e67a2d85f6ea8666f56ef4000000000000000100000000000000010000000000000020f3293fb0f8fd810a186fbb5893e3954cd589abe33c61b368af3ae4a93febdf7d000000000000000100000000000000010000000000000020b77914e384a9047e3473fb351a9618aeab0e1f21754de24d9a50f7e34bd0f4e40000000000000001000000000000000000000000000000206dddcecd3e91e63334cc6fdbdc96a088e83a1ca9fc3e29ba5eda5ebb2decdce6000000000000000100000000000000010000000000000020c7597d99c829d6efca97aa7e6ecd776d45c68e6dd9306fc794c4d2cee7e84c9f000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c1300000000000000280000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d0000000000000006000000000000000100000000000000010000000000000020eeb1dac8a39aea60d4db1d7dd20432d1d1dc195a841fadaaf47afcf343ff8715000000000000000100000000000000010000000000000020f4e381e57cf0a37c06afa28615f52017494385618b33413cba97767de25cf7b0000000000000000100000000000000010000000000000020423a01aa2ffd993dfde30c95c6a57e30516214d0d8193fe602e5153aa78b7b69000000000000000100000000000000000000000000000020f29018eb67b28e0544e686c0f4bd5c31b00a7fc35696d87214de6da96160c60b000000000000000100000000000000010000000000000020757ff2f05cfaff6ea60a6597e42ed2757cd955e4cafcfb47ec86f9b10b51230b0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb16637400000000000000210000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000208ce1cc949d66e29c2c057237e5763104b0ae5ea1586e63baefa724176f8b6022000000000000000100000000000000010000000000000020d3a8480b820bd6c782f5a7d8bc820d929996e9b8ab64d37789aa88140ba71654000000000000000100000000000000010000000000000020d80cc5cdbb0ec297cddfda4fd988de76b705f83576117fb5ed10b48a9b959bb0000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000210000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000000000000000000020b16a9bdf162fda00fc0e70eb3cceae666ae1ab99f20ce87968b758365151f4c2000000000000000100000000000000010000000000000020bf61ac34db989373521cd06dc70a945f3e56ef96fbde05ecbb37b0d7b1e9ed0b000000000000000100000000000000010000000000000020a6eed3c09c5170a5d3c1062c3341c3036d029b89aae503c842e393d743e237ba0000000000000001000000000000000100000000000000203748da9612449e691c1f511a0efbeea445902a0cf00e315044ae222a6d0782d4000000000000000100000000000000010000000000000020adb8eaef73a8ceab26782ef60dd0142232fb9a5368bfb15c680181cf9256dd4d0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000002100000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000000000000000000020edd6e91502d2b977f092e4202cc7cda95aba7b5d737f548a5e85763668ded664000000000000000100000000000000010000000000000020f70908251f98981e5ffca8177855753acbc26969f6d69c1f16fc2c3b036ffd6c0000000000000001000000000000000100000000000000208be58086853322c8773837b8c2d02f28fab5061c05f7e6ead40677855b6fb0680000000000000001000000000000000100000000000000204dabc344807c3be9f234ac57b07ac45d289ed74a80a158626d7735db33f22982000000000000000100000000000000010000000000000020380598ae7bc649d61608add40bfb9a587ce84ee9065865c8db1413f481d6dece000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b3500000000000000210000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb18000000000000000600000000000000010000000000000000000000000000002093e22b4e50491503d5bdc6873fe093f51b5badbda8fd72b96029aaeb22e14747000000000000000100000000000000010000000000000020043168d186aaeea0e9e9f3b273b2844c6bf5cfc132394831702c0d098815860c0000000000000001000000000000000100000000000000201977fdcf5661682556211603e997740023bc80e839a6dd5f44ed1335f0782e9e000000000000000100000000000000010000000000000020ef01a7c4ec3aea147cea8c1deb0ea39d6727493b384745fdac406d90cfbc0b33000000000000000100000000000000010000000000000020c7597d99c829d6efca97aa7e6ecd776d45c68e6dd9306fc794c4d2cee7e84c9f000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c1300000000000000210000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d000000000000000600000000000000010000000000000000000000000000002062fc8ac95257388610adce146896b0fe164c35de3615315ce37c94362c3ca12c0000000000000001000000000000000100000000000000205ace42c1f1bceaddeb2c4174889e3fbc8490969fc35812d4932983c46b42290c0000000000000001000000000000000100000000000000203f935f4aa83ceb889ec651c6c84d27f3bdbeb24bb028db70a3e821f3cd2e1f5e000000000000000100000000000000010000000000000020d980f4b45192828a9b5afbba0e11fe28b001e86e3b4b3a6e2f6172abc19d8be9000000000000000100000000000000010000000000000020757ff2f05cfaff6ea60a6597e42ed2757cd955e4cafcfb47ec86f9b10b51230b0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb166374000000000000003a0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000001000000000000002066841718146867c46697817f5ad4a32f40d77c108be7ddf292d547603ec7cce50000000000000001000000000000000000000000000000202a1591c11c677fc468a4483f514231a56ae5d435542b52abb4669a83798d4aa4000000000000000100000000000000010000000000000020f8aa5e6a5b89d4a39d02bfe4f6c3c38deda3ec6df5ade3707863ea2453f03b73000000000000000100000000000000000000000000000020228ad46578c60a8ae293c5203eb65e05045bb3651cc7f9dca5fdd52a9c021f9f000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000003a0000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d700000000000000060000000000000001000000000000000100000000000000200bd85abbc5447b9b91ce701f90f6ec3cdd2f6a6d5b995c1f894f1559863639e7000000000000000100000000000000000000000000000020a3382282565a2348379a8809d1633bce19f9b402e7df81ac45b49df9833ab4ee000000000000000100000000000000010000000000000020b86cbaa5f3ebbb54eabe58b561586e965d9be0d57d09c912670f297c1aa770ee000000000000000100000000000000000000000000000020ae2681625695656544908c6600da3d5e23732255a026f79142419ed6e5de801c000000000000000100000000000000000000000000000020834d4a08f12e109ba3842642aba51324307db48367fe911f6f90ea4c90f658af0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000003a00000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020bac6e5d9254049e95681f17d6c253418b95c1b4cbf4c4ca683ac642f7d2d268e0000000000000001000000000000000000000000000000208ea721d5471e754fe3835bb2d9612855948a98e9fa312507f5105b5f0e6710f5000000000000000100000000000000010000000000000020ff8415d95946f6defc522f860ad50edcd65ce4c87d413722e09bd10ebadcd8a90000000000000001000000000000000000000000000000206034a4e1125241ee68cbda27dde8d3a427ff22a049d81b822fa9a05d5c54d5c2000000000000000100000000000000000000000000000020e46de27951e7cf912bad485c8e6567eda41b075c193f312ae312f934169d3978000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b35000000000000003a0000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb18000000000000000600000000000000010000000000000001000000000000002074526f96161c1ce64b926036a502640765c9faef6f1614f073dff7cd0b7a479c000000000000000100000000000000000000000000000020566f54a9600fb9da3bcb98fc5ca4ff69493071e9dae250688e84c129dad987080000000000000001000000000000000100000000000000206ba37105ae627754adaf682291022bf869c50df44eed569f1f1821a00c6323f50000000000000001000000000000000000000000000000206371b95d2487c52a39ef0f5c7e63ca7d4f519524144f4b89a5f2a8b15e474ced0000000000000001000000000000000000000000000000207b1b03ed11100190943c68158379b874102af65549a0dc5eb9bee52b887a1e5b000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c13000000000000003a0000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d0000000000000006000000000000000100000000000000010000000000000020a73429a4f016c315ad660fee4b27ecb64008b6efe3853687d501bbd7335e22dd0000000000000001000000000000000000000000000000203c212c4969bb2eef8fcd103405df7e68349db0d98b71d01fd4e3a0d700614bc9000000000000000100000000000000010000000000000020f19a0b6b665194a8579431914fd2cda6bb8fdefe398f63ee82982271c13f0c180000000000000001000000000000000000000000000000208d91b60990ea1fb4ea3fa2328a10287c6aff5d15d99af6a4932822cea35a074d000000000000000100000000000000000000000000000020c32a41143c0bed20f51da2399f8c92440338c8c1a4f71184e98747946cf91d0d0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb16637400000000000000040000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000205825f928f03cd4d9f2cc8a75322b12c7865a1397104c644c6e89be16cfebaa6a000000000000000100000000000000010000000000000020358c6702aa7ce3c8bdcd46a395295b533449972ac93e65796c809d3843af3e0a0000000000000001000000000000000000000000000000205653a7aef6c658c2fe00a9e102931ec0732cfb210b3c0f9786685131d83170b8000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000040000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000010000000000000020bb967f04553aa97bf02ce7e0f8e69e564a41a76853c27b65e40984dd736d4de00000000000000001000000000000000100000000000000204bdfd55727a4e8fe6e049768544b76e865da33953297497345b5034a1911585c0000000000000001000000000000000000000000000000203ad7fd5698e5be58de7990f933f6c7898b23643b5b9d816deaf9a417c23dd6210000000000000001000000000000000100000000000000201372e78c2c052b784180de542aa47eb2bb53d01169303993faf60c8d554b2f730000000000000001000000000000000100000000000000202cd923c9ad51045bfc9d9d6b2b0efad39d54053793269cc7b5293263cd4556ad00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000000400000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020641e2dbc71c39e4ff90a5d26fada4e6045611f7e25f1887f99150d516b2199d100000000000000010000000000000001000000000000002015a4b0b0a407ffced35f42a201c1feab2727efdc00c38f7c4448627d366a3a380000000000000001000000000000000000000000000000203cb9947cedec25457c2378eb9b5b9f2c3987a6ee66012008ec2e902a544eb76f0000000000000001000000000000000100000000000000205174975bfdad7ff3af610fceab74f94ceda7360eaa76c78283f4bb4ba38cc30a00000000000000010000000000000001000000000000002066cf4d9926cdae82b6d9904873c2298bf88ff7798aff52ac7e80595bfebf56340000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b400000000000000040000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb1800000000000000060000000000000001000000000000000100000000000000205358665320ec64c3eb2d603f5c22b48301304b5c1f81a8622cb2233e10d22e08000000000000000100000000000000010000000000000020ad9166747b5d8d8f22b57aca30444a6c24aad17de4326fb6eac4fd474cab7996000000000000000100000000000000000000000000000020e8c2bb93a11dcf6040e149b57365ddc89686d90e4f80320a11731d6c268b54340000000000000001000000000000000100000000000000207eb1197c546bbc4e4a76048b12fa374c548aeba420b06d0659b57873e8f44b1700000000000000010000000000000001000000000000002062b119579f2ce99141f7a10eeb446a695c116edde54c9c8d3d41d0f6d978f97d000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a6100000000000000040000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d0000000000000006000000000000000100000000000000010000000000000020ef7b90f44a675e8b6722f0bdc925fedbe07591e0f9244c8314a54a16a9b0b069000000000000000100000000000000010000000000000020186f223eebe6496ab3644dc79fe4a478eb1259742d0e8d7b4769e763da37722d0000000000000001000000000000000000000000000000208db56a61d427e46a782c8337a38ae7d73ddd6afd046087d3b3ad987f33397413000000000000000100000000000000010000000000000020891c853160123425a2c10c5935d96515b19498fdfbc3cb4d6c7dd56bb01ebe0a00000000000000010000000000000001000000000000002042a34b3906a2d85259fdd02f30f238b8f4b9b88b27d8a6bf5fabaa6d7c12ab0600000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b77401000000000000002a0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000203da14c802e0b1caa6a7fdb57b49c71543b810414a29c1963edc1c2674d7504e500000000000000010000000000000000000000000000002064f12c9571923baec5fcc14481a7dfea3e02c1bfc8c062111edc34018395b7160000000000000001000000000000000100000000000000200ebe305ff48b2729427a6d3d9c605f9d8749d8a7f371875c0845a2841f05d610000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000002a0000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d700000000000000060000000000000001000000000000000100000000000000202b879cf039bc119f8962e5fcd67148df06a8b1defc43711ef972159394dccf2000000000000000010000000000000000000000000000002001ca22f5f6f565ebc8cf6898b01e3982e7d217a07578883ba64a263ef5c28703000000000000000100000000000000010000000000000020aa8aaf7a9f2c4682ba9ba18998b5c7d9b5cec92d7d415f46af51866ad5d812c8000000000000000100000000000000000000000000000020de2df1a2bf6ab8bcb15302a439c8c59b426846d84a9a27c4f8cf974ecb5fc439000000000000000100000000000000010000000000000020adb8eaef73a8ceab26782ef60dd0142232fb9a5368bfb15c680181cf9256dd4d0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000002a00000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020eef267b2f93774e7f79f1cc449383b364bd2d7bfdca55b70ea97e9598529f38a00000000000000010000000000000000000000000000002025ff8306245f7fe571c0349290a7be1bf895df290cf10339195c6999962b523200000000000000010000000000000001000000000000002012b2c25f0cf4525c6320e52750c92201fd654fce8944a872da5475b3d695badf0000000000000001000000000000000000000000000000201358541e6063a73bd5d17001b4e53dbcb7fdfa7e49ab2bda0741eb1f96553a39000000000000000100000000000000010000000000000020380598ae7bc649d61608add40bfb9a587ce84ee9065865c8db1413f481d6dece000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b35000000000000002a0000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb18000000000000000600000000000000010000000000000001000000000000002052a1d33f620fe09c1647d3c7e228eea85b52961f5d5f3771372ce567f0112bcb00000000000000010000000000000000000000000000002096ee2fc6e93824458606178354a7a00d4970e0b2c917c8b244f4a6c6d3c2e98e000000000000000100000000000000010000000000000020b77914e384a9047e3473fb351a9618aeab0e1f21754de24d9a50f7e34bd0f4e40000000000000001000000000000000000000000000000206dddcecd3e91e63334cc6fdbdc96a088e83a1ca9fc3e29ba5eda5ebb2decdce6000000000000000100000000000000010000000000000020c7597d99c829d6efca97aa7e6ecd776d45c68e6dd9306fc794c4d2cee7e84c9f000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c13000000000000002a0000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d00000000000000060000000000000001000000000000000100000000000000202db88c5be87f87cb16a3aeb8bc4012ff3957b15bbf0fa995d75de08580b74648000000000000000100000000000000000000000000000020a985c851b448bc4a96b5437be4a584a5e549027156d04631b14ca427e292e115000000000000000100000000000000010000000000000020423a01aa2ffd993dfde30c95c6a57e30516214d0d8193fe602e5153aa78b7b69000000000000000100000000000000000000000000000020f29018eb67b28e0544e686c0f4bd5c31b00a7fc35696d87214de6da96160c60b000000000000000100000000000000010000000000000020757ff2f05cfaff6ea60a6597e42ed2757cd955e4cafcfb47ec86f9b10b51230b0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb166374000000000000001e0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000205b22e826fa41eab497f0d44485ed30b89e70dc3b8991721ecacea7676a1160ba000000000000000100000000000000000000000000000020a99b7e2901520fe9aa438e0b1d9ff1d42abd1e4774fe50a7af9abfdd5aeb49f0000000000000000100000000000000000000000000000020cd05d024922075f0d2191dff6b6b8977913542096c687b1aa6a6880a30f4f1780000000000000001000000000000000000000000000000207a1424d413417eb28a018fd1d76958181366ee57c4d59ae0034a29ddbb1d2b590000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000001e0000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000010000000000000020fffa47f999332d217b19eabd033573400a15630199197996e7e966d946928621000000000000000100000000000000000000000000000020e4abb87721ae1731bc6aee7f24bfdd8424c2c6d8fbd25e4e6d14f0b8b89a9664000000000000000100000000000000000000000000000020222c544f148f9e2b69e62cf11604f62aedfeda5a2bf20333ab12db04391e1a6d0000000000000001000000000000000000000000000000203258c2185d1d63acd1aab64a5513a9468432cf501909d54ec3aa84f0a8f84962000000000000000100000000000000000000000000000020b2179105904f600227797c6ccdb8959ff4252a36710715b942b644ee0a59f58d00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000001e00000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020debcf67c70d7ff29fee1f88827155d5410763847b214bd82213c780b45e8f7a700000000000000010000000000000000000000000000002065d85d8c2a0115a8cf0c8a7e9d003cfe4b02af86cf2e9b981a364b28d8d281f00000000000000001000000000000000000000000000000209aa1948e3d99cb3b036e7ef33e14ce04a4e5cc9bddb460b8d2d06114c32e7a4e000000000000000100000000000000000000000000000020ce8ff34b824516fef1d61fe9556d5193458470c305764910ea9218ddaa9ad9ba000000000000000100000000000000000000000000000020286aa95516a0434f8968e2729d4c92308c9456ebf4a1d0d9d335e067c147e9ab0000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b4000000000000001e0000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb180000000000000006000000000000000100000000000000010000000000000020d1b29b21587f2d8214fe81ce26413e3fa76302367383381cd12269ff3aa3b319000000000000000100000000000000000000000000000020a59ae923fd8f26d96a5ee4e9945c4d1b7c0ce303eda6b4151426537cecb84b8500000000000000010000000000000000000000000000002029724ed730bbc4b42c8b49d3b94cce1548c55b75c5515c93ca1f583d8fe255fe000000000000000100000000000000000000000000000020340ed050ea4713aa4ad4c013afbd38231c302d097b43c9bf5b9952d7fedb3ed500000000000000010000000000000000000000000000002059afffcfe907b7f651d0f62f3664c228c07fabe8b4015f54f0801603277ddbca000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a61000000000000001e0000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d0000000000000006000000000000000100000000000000010000000000000020968ec45a2b99b74562efa3d959a153c08585a8e4e85407b6f4a28296a0bd5e85000000000000000100000000000000000000000000000020a3b1bc416c9ea8007ee12b4a820af52d380d61ee7cd216690c8d8ba08ebcfbe500000000000000010000000000000000000000000000002015afb35775e6e2eda131732d194c3d3679db33fd87ecb15fcfc9cf3438b28ec20000000000000001000000000000000000000000000000203dbbc5b1a055b07e8b25c1203a98ebcf464623a32a8902f4070142539176922e000000000000000100000000000000000000000000000020096a6ccd52081fca061f3bc4d84b362ef4fd8c1a120c9febbbfdfb49dadb617100000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b77401000000000000000c0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020724ffd0f25aa4e243d2c307552ed37381703107372320593eb3a4d313b319f910000000000000001000000000000000100000000000000207632194eaa79882c73a99557dd547ccd6fd120c5b43667fce4768d60ee466a6d000000000000000100000000000000000000000000000020266533c386eaecf62505c82a33fc748ed3dfb0dd1f1c3b6ef1c350f30907840f000000000000000100000000000000000000000000000020a07353c5029eac2f5fb14b7aaa839b9ff2b01dd6feeb51c341820462ab766306000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000000c0000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000010000000000000020b7af4df2e4e1bef32bf51b93f5fb9fe1ca7be512f8d2cf8bc8b40f8ec4d8dc4200000000000000010000000000000001000000000000002036c527f38ba150c745e5ae60411f506098bdf86cb6bd564da89d0942607645f9000000000000000100000000000000000000000000000020d03ccda124d8800a1d33a7f93024a19b8baeea9c3821b098841700302b63eba70000000000000001000000000000000000000000000000202717b608b77aec8c8d8783630dec709b54718844e1012ddc67432a406a63feb90000000000000001000000000000000100000000000000202cd923c9ad51045bfc9d9d6b2b0efad39d54053793269cc7b5293263cd4556ad00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000000c00000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020f2de7e53c6ddf83de89a41a069bc40c29843df888863c94c0acd6e6895fb9f4800000000000000010000000000000001000000000000002076228b8e531b8d5f997dc80ac27dbbd7324fb2a1b8ac2d0b3b030ff98f3dc24400000000000000010000000000000000000000000000002031fc562ddf11fc88d6bdf3109fec4ff50707e4f54d9c887b58d44b4e09be82bc000000000000000100000000000000000000000000000020a162e2cf345ada1eea741227964abb3ee016cf2ce04810595bc3b201b9d0363200000000000000010000000000000001000000000000002066cf4d9926cdae82b6d9904873c2298bf88ff7798aff52ac7e80595bfebf56340000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b4000000000000000c0000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb180000000000000006000000000000000100000000000000010000000000000020c8c079b139e63e1100ad917d4916dc2348f0df28c22ccd71c7554bd539222f70000000000000000100000000000000010000000000000020d7d8938cd35ffba8310bb2658a1141cee2126174b14b47ecce22cb407bc9ca1e00000000000000010000000000000000000000000000002061afce6e37c92c01cdbe7efe726e19c630545464c6895e32251a3599df43f1f300000000000000010000000000000000000000000000002095636ea8fb795fa91608dfead769f20d6afc0ed00898ce84ee0e4435366f835000000000000000010000000000000001000000000000002062b119579f2ce99141f7a10eeb446a695c116edde54c9c8d3d41d0f6d978f97d000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a61000000000000000c0000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d0000000000000006000000000000000100000000000000010000000000000020e3e8a31a2ecf4d072ddfe9b1eda29d40deae4ddd4037c5f06583b6a3dc863d69000000000000000100000000000000010000000000000020045d09690e69bb8eb4c8fd50ee15fac62e81141637c0f4e53ccec618f53b89920000000000000001000000000000000000000000000000200316d6940988b1b812e40a0f10d4fa36f0b3357de03a86711510b72df4241d26000000000000000100000000000000000000000000000020bae2fdf379a6a2f75540a7eabfee073c764f32513ff612f046db0c7935764b2500000000000000010000000000000001000000000000002042a34b3906a2d85259fdd02f30f238b8f4b9b88b27d8a6bf5fabaa6d7c12ab0600000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b77401000000000000001a0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000001000000000000002009cefee4d021530099af80f0676e54eff00d072d7fd616fcdb2288ae33ddb24800000000000000010000000000000000000000000000002025869b3bfc83d2ac9e22b0435bc7b9eecebd9af67bb1ab70c73af73bbfb82aaa00000000000000010000000000000001000000000000002041b447898ab19c91b1dbde93ea50c40354c2647926dd2df1d267edeeb4fa5b900000000000000001000000000000000000000000000000207a1424d413417eb28a018fd1d76958181366ee57c4d59ae0034a29ddbb1d2b590000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000001a0000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000010000000000000020b62dcb3b686ab9d15afa2b8bef976d3bd5a06560ac75ced764cc2aa9179c3f34000000000000000100000000000000000000000000000020ad1c1e61efd3347399cf357ef818754d0a59af530b4a7cf6f1a8006b8cabbf41000000000000000100000000000000010000000000000020f49ee3cf725e461ee703238ed32a63c62a4ef9bf0cc5bcabe7293fc2d7f1d14a0000000000000001000000000000000000000000000000203258c2185d1d63acd1aab64a5513a9468432cf501909d54ec3aa84f0a8f84962000000000000000100000000000000000000000000000020b2179105904f600227797c6ccdb8959ff4252a36710715b942b644ee0a59f58d00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000001a00000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020dd340652eaf1514dbff25c0f7257bf2c2c3e460b0db73864120ca688f7a3a6d20000000000000001000000000000000000000000000000207be4ecad6a428c1249e6b7abfbd56cbd707113af1095ce941083f63d982cd4ce00000000000000010000000000000001000000000000002023edfc8b702ed16d0be187572518938574ede83c38d974c56d1466591283316c000000000000000100000000000000000000000000000020ce8ff34b824516fef1d61fe9556d5193458470c305764910ea9218ddaa9ad9ba000000000000000100000000000000000000000000000020286aa95516a0434f8968e2729d4c92308c9456ebf4a1d0d9d335e067c147e9ab0000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b4000000000000001a0000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb180000000000000006000000000000000100000000000000010000000000000020420ce98a88c394e6d0d91d641dcb1e3f9be4aec22a54b3651f87d633c18051820000000000000001000000000000000000000000000000202f80212845c4cb7b806f51a1e2bf511286c7bc245ea2228a0a8fe4fc2069bb370000000000000001000000000000000100000000000000205cfdb0b1b80f97bcb16568f9f091afade9ed23e488cd250cf9ae81ad08e1f2b6000000000000000100000000000000000000000000000020340ed050ea4713aa4ad4c013afbd38231c302d097b43c9bf5b9952d7fedb3ed500000000000000010000000000000000000000000000002059afffcfe907b7f651d0f62f3664c228c07fabe8b4015f54f0801603277ddbca000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a61000000000000001a0000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d00000000000000060000000000000001000000000000000100000000000000201ed23ab2aa110598237369fb53113a8437c426e2a7741c1e24ce266c92fc372e0000000000000001000000000000000000000000000000203daa53d434d2bec33aa133c8d906b3044259b6ad818197f70ceb36362944eba8000000000000000100000000000000010000000000000020dfca9354a547970921d50d4e6d17f365f63f8680bafa75ff8f1b7a75b045d8560000000000000001000000000000000000000000000000203dbbc5b1a055b07e8b25c1203a98ebcf464623a32a8902f4070142539176922e000000000000000100000000000000000000000000000020096a6ccd52081fca061f3bc4d84b362ef4fd8c1a120c9febbbfdfb49dadb617100000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b77401000000000000001b0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020e097336d0e54d4b51bef6341212b3daee6914bfccc3d4748234515ed2eacb31000000000000000010000000000000000000000000000002025869b3bfc83d2ac9e22b0435bc7b9eecebd9af67bb1ab70c73af73bbfb82aaa00000000000000010000000000000001000000000000002041b447898ab19c91b1dbde93ea50c40354c2647926dd2df1d267edeeb4fa5b900000000000000001000000000000000000000000000000207a1424d413417eb28a018fd1d76958181366ee57c4d59ae0034a29ddbb1d2b590000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000001b0000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d700000000000000060000000000000001000000000000000000000000000000200c18aba3ab48c1a768e46c27afc61cd282a124d8197b903c63a59611683f2e27000000000000000100000000000000000000000000000020ad1c1e61efd3347399cf357ef818754d0a59af530b4a7cf6f1a8006b8cabbf41000000000000000100000000000000010000000000000020f49ee3cf725e461ee703238ed32a63c62a4ef9bf0cc5bcabe7293fc2d7f1d14a0000000000000001000000000000000000000000000000203258c2185d1d63acd1aab64a5513a9468432cf501909d54ec3aa84f0a8f84962000000000000000100000000000000000000000000000020b2179105904f600227797c6ccdb8959ff4252a36710715b942b644ee0a59f58d00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000001b00000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000000000000000000020616a1cb8b4565c88f4aca936a0d2de0f1aa77009da20a52e95e8cd6931710dd00000000000000001000000000000000000000000000000207be4ecad6a428c1249e6b7abfbd56cbd707113af1095ce941083f63d982cd4ce00000000000000010000000000000001000000000000002023edfc8b702ed16d0be187572518938574ede83c38d974c56d1466591283316c000000000000000100000000000000000000000000000020ce8ff34b824516fef1d61fe9556d5193458470c305764910ea9218ddaa9ad9ba000000000000000100000000000000000000000000000020286aa95516a0434f8968e2729d4c92308c9456ebf4a1d0d9d335e067c147e9ab0000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b4000000000000001b0000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb1800000000000000060000000000000001000000000000000000000000000000207ba7b5f5b18e1f575e4485c70b6b8fdbd1564620dd64c2bf4846f82232ec2bce0000000000000001000000000000000000000000000000202f80212845c4cb7b806f51a1e2bf511286c7bc245ea2228a0a8fe4fc2069bb370000000000000001000000000000000100000000000000205cfdb0b1b80f97bcb16568f9f091afade9ed23e488cd250cf9ae81ad08e1f2b6000000000000000100000000000000000000000000000020340ed050ea4713aa4ad4c013afbd38231c302d097b43c9bf5b9952d7fedb3ed500000000000000010000000000000000000000000000002059afffcfe907b7f651d0f62f3664c228c07fabe8b4015f54f0801603277ddbca000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a61000000000000001b0000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d000000000000000600000000000000010000000000000000000000000000002007cbdd1f39ef0f825813636ec92f5a8e422507a460749b59258da0f0fc4f40740000000000000001000000000000000000000000000000203daa53d434d2bec33aa133c8d906b3044259b6ad818197f70ceb36362944eba8000000000000000100000000000000010000000000000020dfca9354a547970921d50d4e6d17f365f63f8680bafa75ff8f1b7a75b045d8560000000000000001000000000000000000000000000000203dbbc5b1a055b07e8b25c1203a98ebcf464623a32a8902f4070142539176922e000000000000000100000000000000000000000000000020096a6ccd52081fca061f3bc4d84b362ef4fd8c1a120c9febbbfdfb49dadb617100000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b77401000000000000000a0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020830cac5372557c41ac9b09dd391f7171f652c82fd8d5c14d98c72acaa20c91e100000000000000010000000000000000000000000000002077631bed7d662ca95d374bb50963259dbae6fd85816b13bb5b057a5a051aa21b00000000000000010000000000000001000000000000002093c99af014a3514bdcc84cdf0e72d42f20038a64dcba4071efdcce4cf6a76949000000000000000100000000000000000000000000000020a07353c5029eac2f5fb14b7aaa839b9ff2b01dd6feeb51c341820462ab766306000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000000a0000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d700000000000000060000000000000001000000000000000100000000000000204fd80535945f7ec99e2004d7c04842594cc42daed5131cf8425a463f9a100235000000000000000100000000000000000000000000000020edae1c731416814de66db1976989688f81babb0b326988541acc7739462be38d00000000000000010000000000000001000000000000002002787897e3345ad97fbaea5abe99dc06b3ff2f1e985d7bebb35dfffc022992450000000000000001000000000000000000000000000000202717b608b77aec8c8d8783630dec709b54718844e1012ddc67432a406a63feb90000000000000001000000000000000100000000000000202cd923c9ad51045bfc9d9d6b2b0efad39d54053793269cc7b5293263cd4556ad00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000000a00000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020d1f4e8d7d2c1f310961420bc2896c166208f996b386185f699797b345e389ceb000000000000000100000000000000000000000000000020a7d7d0117069d7a9d78a7f8f07a9b932cbca377f801a890920b77ab80af603ce0000000000000001000000000000000100000000000000201926ae885440fe37c31c8ad3fc2ba16d5893e5262917d477f5697cf01bfb70d4000000000000000100000000000000000000000000000020a162e2cf345ada1eea741227964abb3ee016cf2ce04810595bc3b201b9d0363200000000000000010000000000000001000000000000002066cf4d9926cdae82b6d9904873c2298bf88ff7798aff52ac7e80595bfebf56340000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b4000000000000000a0000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb180000000000000006000000000000000100000000000000010000000000000020743a8fb38d82bd716973711869bc108257b66c8f97733de1a2d1a73bce27b8e5000000000000000100000000000000000000000000000020522370aedc6fab56c51df746785fd78166c22c32c032ec3a3988cfe6da3667c4000000000000000100000000000000010000000000000020d120700c0b95fd9797cdc107b6faa789549df42acc2582fa45d0637f9be7306400000000000000010000000000000000000000000000002095636ea8fb795fa91608dfead769f20d6afc0ed00898ce84ee0e4435366f835000000000000000010000000000000001000000000000002062b119579f2ce99141f7a10eeb446a695c116edde54c9c8d3d41d0f6d978f97d000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a61000000000000000a0000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d00000000000000060000000000000001000000000000000100000000000000200996072014445935e397652c261e86e56b7e42f47cd7cb92b2e5eb8010e6dc5e00000000000000010000000000000000000000000000002023a874a32d5f87b756f0bce20f0f839967608b7bff9f5d558f1de4c3f9935b240000000000000001000000000000000100000000000000207a21029cabbb2c4206ff844a94dac363860cff6eb8e7eac86a5284abc222b1f4000000000000000100000000000000000000000000000020bae2fdf379a6a2f75540a7eabfee073c764f32513ff612f046db0c7935764b2500000000000000010000000000000001000000000000002042a34b3906a2d85259fdd02f30f238b8f4b9b88b27d8a6bf5fabaa6d7c12ab0600000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b7740100000000000000080000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000001000000000000002042339e5d10b0a87ad4fe4a5593bdc05cee398a4a18ea7f97778781f69ff9d23900000000000000010000000000000001000000000000002014aa8e29f77d6a5fb881904df608256632c6604fbfb5192158e0932c0baf514500000000000000010000000000000001000000000000002093c99af014a3514bdcc84cdf0e72d42f20038a64dcba4071efdcce4cf6a76949000000000000000100000000000000000000000000000020a07353c5029eac2f5fb14b7aaa839b9ff2b01dd6feeb51c341820462ab766306000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000080000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d700000000000000060000000000000001000000000000000100000000000000209d0ba68c444c306407f2c94462eea722d4d5e667293b3cef1f097bb3d8aecadf000000000000000100000000000000010000000000000020005e98da69a3ec89560f0f6a8c6ba0b7d075bdef07b93b633dd787041e200c4100000000000000010000000000000001000000000000002002787897e3345ad97fbaea5abe99dc06b3ff2f1e985d7bebb35dfffc022992450000000000000001000000000000000000000000000000202717b608b77aec8c8d8783630dec709b54718844e1012ddc67432a406a63feb90000000000000001000000000000000100000000000000202cd923c9ad51045bfc9d9d6b2b0efad39d54053793269cc7b5293263cd4556ad00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000000800000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020793ca4d6893da010c96a494732536d04386a66415373773f093f1c455e634e32000000000000000100000000000000010000000000000020d2127a6d15c083b904c04f4ac72fe6e71191760b011452b3d32c1bf1551a5e4a0000000000000001000000000000000100000000000000201926ae885440fe37c31c8ad3fc2ba16d5893e5262917d477f5697cf01bfb70d4000000000000000100000000000000000000000000000020a162e2cf345ada1eea741227964abb3ee016cf2ce04810595bc3b201b9d0363200000000000000010000000000000001000000000000002066cf4d9926cdae82b6d9904873c2298bf88ff7798aff52ac7e80595bfebf56340000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b400000000000000080000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb18000000000000000600000000000000010000000000000001000000000000002000362dbce9e7ed6da51bf5b63ee09bf42476d3280eb7611f8920589d39ea78f4000000000000000100000000000000010000000000000020dc9b1331542e052e7dff105d6a496d355df2c1262d1973f519fc8f91d981a27a000000000000000100000000000000010000000000000020d120700c0b95fd9797cdc107b6faa789549df42acc2582fa45d0637f9be7306400000000000000010000000000000000000000000000002095636ea8fb795fa91608dfead769f20d6afc0ed00898ce84ee0e4435366f835000000000000000010000000000000001000000000000002062b119579f2ce99141f7a10eeb446a695c116edde54c9c8d3d41d0f6d978f97d000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a6100000000000000080000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d00000000000000060000000000000001000000000000000100000000000000207850bc26378ac698b56c97bdd728e368c3810667380dd326af6f8b0c193cba180000000000000001000000000000000100000000000000208a30897e7a5177936a7a864e387c25474c5b68354d1b2b9f9ef65a6e0e18b5420000000000000001000000000000000100000000000000207a21029cabbb2c4206ff844a94dac363860cff6eb8e7eac86a5284abc222b1f4000000000000000100000000000000000000000000000020bae2fdf379a6a2f75540a7eabfee073c764f32513ff612f046db0c7935764b2500000000000000010000000000000001000000000000002042a34b3906a2d85259fdd02f30f238b8f4b9b88b27d8a6bf5fabaa6d7c12ab0600000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b7740100000000000000100000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020c47d7bebc8c15f325d831bf339e2d3309c7c8d22969ec6186bc0568046427bd7000000000000000100000000000000010000000000000020640867ed08a3ecabe4859b1b36a9e35eed961ff22f4ecb3f19f23eafd153979300000000000000010000000000000001000000000000002038c257c4acc7ae148c5c9b4409c82130df8554a30c1e722962697197980c56fb000000000000000100000000000000010000000000000020f158609c6b12d3609bdf1c7797edb538f985fe8ac4171f066b1d7b9c43c7bc3b0000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000100000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000010000000000000020130a60e32dbd45ce9fc1b38fb7a669cdfeefe86646f07a007ad1c302c84fd44a000000000000000100000000000000010000000000000020673d9bbdec4018e14c00b2977d46d6e3186f61529a1d3aa6709075bc73340a850000000000000001000000000000000100000000000000202a626f6e71a7040977f48f0331876fcd1bdf2afd39133fc91c8f911e06ecb5500000000000000001000000000000000100000000000000200af3a1e8f7893929d070fc6e79b7461d01674e4931d207f9ff44d0ec44d192ef000000000000000100000000000000000000000000000020b2179105904f600227797c6ccdb8959ff4252a36710715b942b644ee0a59f58d00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000001000000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020ea8cea3ec0884436a9fbac1ea6185827098a86aef32ceb7a4f021b978692489e00000000000000010000000000000001000000000000002043986ee4c957e4292c15e9defee9da9b1a4a8a4b515966573d63201e2c89fe6d000000000000000100000000000000010000000000000020c870cc5991224fe875c03d99dbfef8fbfeb41d1b1f43d327e63022667b3237e5000000000000000100000000000000010000000000000020ca595177c9eb6f3096754da5b9601c287818bfb8ed6752a05163c032b4d4c069000000000000000100000000000000000000000000000020286aa95516a0434f8968e2729d4c92308c9456ebf4a1d0d9d335e067c147e9ab0000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b400000000000000100000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb1800000000000000060000000000000001000000000000000100000000000000205fde01bcabc9f5354006259d8fc9785ec621c736a3aea38f578535ac2c885d67000000000000000100000000000000010000000000000020f891f620b9769620492d95e458b6d7b94d13e8255bde98a906a32a5dd3255a54000000000000000100000000000000010000000000000020888cb07446656d63b2a096d8b1b156d05205811b0e48ebab0e2714854ab470de0000000000000001000000000000000100000000000000204a78e9eb44fea21926a2ac4fb17955446eb663b8130f9780a83ae405bdad6dbc00000000000000010000000000000000000000000000002059afffcfe907b7f651d0f62f3664c228c07fabe8b4015f54f0801603277ddbca000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a6100000000000000100000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d00000000000000060000000000000001000000000000000100000000000000202be4c273fd75394c22300bdc6e86b4d2154dddef0c11974d1f297d9f9995801b0000000000000001000000000000000100000000000000203312f3095cca6255a119c1aa7ee6908222e40b6c0f7ab629770bf029481433960000000000000001000000000000000100000000000000202ab2bc596dfd3283c0f38816f230153ec7e09812548f97c0b3065918e43e8b250000000000000001000000000000000100000000000000209551c6da21b704f16621143cf4ae3bb0037aaa9f71b9ddbac1d1dc4d7841e9f2000000000000000100000000000000000000000000000020096a6ccd52081fca061f3bc4d84b362ef4fd8c1a120c9febbbfdfb49dadb617100000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b7740100000000000000240000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020c24fc0a3e994aa4053143723d1ff953730e09d80308264f57f5e25286c7dcad00000000000000001000000000000000100000000000000204f58496d9785dbfafadd8f41e3167831200b5d8065731cf35b12e0f683eb6aba0000000000000001000000000000000000000000000000204cb7b4fa816710180675ddbc955531f8a709d427faf5200cdc6737874e060a55000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000240000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d700000000000000060000000000000001000000000000000100000000000000205f6df37a820d22d39fdce2f8d551c6b6001b8b2dfec260e5a4d390b6ca944b8e000000000000000100000000000000010000000000000020b2720063c476882634c19fc4d6c878d8fb04af27fefc9623d3a31ea94d8e4c790000000000000001000000000000000000000000000000204438ff7b5d1a6f1ba1dacb34bcf27f03ad6020662e5879560c4487113b1b3a2b0000000000000001000000000000000100000000000000203748da9612449e691c1f511a0efbeea445902a0cf00e315044ae222a6d0782d4000000000000000100000000000000010000000000000020adb8eaef73a8ceab26782ef60dd0142232fb9a5368bfb15c680181cf9256dd4d0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000002400000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020e8c30b8a9708b2578351519fa49cba68b96c8873d3891209f6e1f0d1999fc044000000000000000100000000000000010000000000000020f705f5aee1654cdf892b51dbb807ab8002d144a06d9cd892d74f14b895db6978000000000000000100000000000000000000000000000020f545027ef5098b4875773fbbaa1a000416a3b694a192855ba9a6324f5429a3450000000000000001000000000000000100000000000000204dabc344807c3be9f234ac57b07ac45d289ed74a80a158626d7735db33f22982000000000000000100000000000000010000000000000020380598ae7bc649d61608add40bfb9a587ce84ee9065865c8db1413f481d6dece000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b3500000000000000240000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb18000000000000000600000000000000010000000000000001000000000000002000b853f37ad6bda413fe46bc9c4340c67f69526f8c608c196ca7b1c0594550b30000000000000001000000000000000100000000000000207bb5994b047fe97ed83d5ce91aa636b88b8f52abe16bc1bc0b665514f42c7e1c00000000000000010000000000000000000000000000002024dfa3e1a434cf7ad7a4157884500858ee112d5f389f98b7af8c3a925cb1ef9b000000000000000100000000000000010000000000000020ef01a7c4ec3aea147cea8c1deb0ea39d6727493b384745fdac406d90cfbc0b33000000000000000100000000000000010000000000000020c7597d99c829d6efca97aa7e6ecd776d45c68e6dd9306fc794c4d2cee7e84c9f000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c1300000000000000240000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d000000000000000600000000000000010000000000000001000000000000002098c6f19473ba9f6250cb206b42991780a4a804559375b5e6d7ac075066d1c8400000000000000001000000000000000100000000000000204167e708541ce4fe66e843fcc785268529ed6e066c85c8166c6907f3b5b83f390000000000000001000000000000000000000000000000200c8a991805d2acdc4adcae4bd62d06db4b8812a1b6a287bb79aba1cdeb67e1cd000000000000000100000000000000010000000000000020d980f4b45192828a9b5afbba0e11fe28b001e86e3b4b3a6e2f6172abc19d8be9000000000000000100000000000000010000000000000020757ff2f05cfaff6ea60a6597e42ed2757cd955e4cafcfb47ec86f9b10b51230b0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb16637400000000000000230000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000000000000000000002024f3af1b1647bb312c015a48502bdcba582529e56718776c1cf05694f83b3cf10000000000000001000000000000000000000000000000204b06bb483c21112f9cdd7eff56256a5630233353d836a5d668685bfdc6a4041e000000000000000100000000000000010000000000000020d80cc5cdbb0ec297cddfda4fd988de76b705f83576117fb5ed10b48a9b959bb0000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000230000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d700000000000000060000000000000001000000000000000000000000000000202be5b721f66cc6681fe5359f069c154e05e04221085880823ddb2fb35bed24a6000000000000000100000000000000000000000000000020c24bd4eaecf1b5c095cb7eac429e2ce90102f0ca60ff52a74fe5db4e953d8dd0000000000000000100000000000000010000000000000020a6eed3c09c5170a5d3c1062c3341c3036d029b89aae503c842e393d743e237ba0000000000000001000000000000000100000000000000203748da9612449e691c1f511a0efbeea445902a0cf00e315044ae222a6d0782d4000000000000000100000000000000010000000000000020adb8eaef73a8ceab26782ef60dd0142232fb9a5368bfb15c680181cf9256dd4d0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000002300000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000000000000000000020569d90b86503309433c7c99e5827ea62ee4ba020d2fb88a703c1f9e7bedb5b38000000000000000100000000000000000000000000000020a12f1b8c7f69eaa4f69aba8dc45f0ab3eff1ba06591468b63e11ec3c445e7ee50000000000000001000000000000000100000000000000208be58086853322c8773837b8c2d02f28fab5061c05f7e6ead40677855b6fb0680000000000000001000000000000000100000000000000204dabc344807c3be9f234ac57b07ac45d289ed74a80a158626d7735db33f22982000000000000000100000000000000010000000000000020380598ae7bc649d61608add40bfb9a587ce84ee9065865c8db1413f481d6dece000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b3500000000000000230000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb1800000000000000060000000000000001000000000000000000000000000000204b1c046191b69bcd33083df78f376ee183bbd08b39418e196718005800bb7a4f000000000000000100000000000000000000000000000020e3f83e35974ade46e1fe5aa51ecfb305ab4e1590369f9dec3078707aaf362f9d0000000000000001000000000000000100000000000000201977fdcf5661682556211603e997740023bc80e839a6dd5f44ed1335f0782e9e000000000000000100000000000000010000000000000020ef01a7c4ec3aea147cea8c1deb0ea39d6727493b384745fdac406d90cfbc0b33000000000000000100000000000000010000000000000020c7597d99c829d6efca97aa7e6ecd776d45c68e6dd9306fc794c4d2cee7e84c9f000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c1300000000000000230000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d0000000000000006000000000000000100000000000000000000000000000020c698c2634348509f708c4ef37ef1366bd8af0880fc88034bbf74f621a30333ed0000000000000001000000000000000000000000000000207ce772ccbc0ae2213cb947f11e4f01759238d1dc202de57f34dc74e798702e300000000000000001000000000000000100000000000000203f935f4aa83ceb889ec651c6c84d27f3bdbeb24bb028db70a3e821f3cd2e1f5e000000000000000100000000000000010000000000000020d980f4b45192828a9b5afbba0e11fe28b001e86e3b4b3a6e2f6172abc19d8be9000000000000000100000000000000010000000000000020757ff2f05cfaff6ea60a6597e42ed2757cd955e4cafcfb47ec86f9b10b51230b0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb16637400000000000000020000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000204c4213b8ed6ea438e76fb7a3f0ddfebfefa23ab51e70c6c91df1ad3848bb66df000000000000000100000000000000000000000000000020bc0e1e4d069a85667d831c6131bf23b47a10f808276f2d639351a2b29c6601f100000000000000010000000000000001000000000000002049b18f4c7c36a3e31f7aea5854ff3a4295357e9b4683efeb0cc263602c4cd838000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000020000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000010000000000000020771446b7e40aa9a6633bc1913a01e6b6ce6f1146eff4ddf43ad9c56ed742a4a6000000000000000100000000000000000000000000000020dc14af937edda2c22b7ffa6483569ab01a39d89d704697b5587dfa925d8c8ed900000000000000010000000000000001000000000000002020b2ded527ef4d18477ef5189fbf04e7010dad20d213e6906cbbf7251e5dff110000000000000001000000000000000100000000000000201372e78c2c052b784180de542aa47eb2bb53d01169303993faf60c8d554b2f730000000000000001000000000000000100000000000000202cd923c9ad51045bfc9d9d6b2b0efad39d54053793269cc7b5293263cd4556ad00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000000200000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c100000000000000060000000000000001000000000000000100000000000000204e39183d47f9e77f5619e1ff4bd1bd4b53b3c6bed69f0b1b11cb067ca1814efe0000000000000001000000000000000000000000000000207d5d9807167443cfaa21edae3e117b03db3428a11fc2998ac147e793e4581937000000000000000100000000000000010000000000000020c8f2099faeeea72a24c9ccbd3f29429113314e612b99bcc60f4aca9f40edcff70000000000000001000000000000000100000000000000205174975bfdad7ff3af610fceab74f94ceda7360eaa76c78283f4bb4ba38cc30a00000000000000010000000000000001000000000000002066cf4d9926cdae82b6d9904873c2298bf88ff7798aff52ac7e80595bfebf56340000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b400000000000000020000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb18000000000000000600000000000000010000000000000001000000000000002012e7e9f8af701299d1355e124013265d29dfc951fdce5b51283144e29b531bb300000000000000010000000000000000000000000000002076948a5ac8edc5ec12604ae61a9c6748ddc2111fc526a4a8127bd9cbe59ee673000000000000000100000000000000010000000000000020f2e68171c870737d8303eff5134ad13bf74b874440e0f7adb4e08b5b3ab25b8b0000000000000001000000000000000100000000000000207eb1197c546bbc4e4a76048b12fa374c548aeba420b06d0659b57873e8f44b1700000000000000010000000000000001000000000000002062b119579f2ce99141f7a10eeb446a695c116edde54c9c8d3d41d0f6d978f97d000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a6100000000000000020000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d00000000000000060000000000000001000000000000000100000000000000206d89f2c8f0d544341019efa227eca3d2d2b4f011a3346a26f2b650037773b2c10000000000000001000000000000000000000000000000201a861beee7db7276755b43047e6d30fba18563e26efd08932d1d994d8e16ae740000000000000001000000000000000100000000000000204ccc0340fb28e76bd05ea41a75c2ef813e00d47e6b2efe520e36822dd996d8d6000000000000000100000000000000010000000000000020891c853160123425a2c10c5935d96515b19498fdfbc3cb4d6c7dd56bb01ebe0a00000000000000010000000000000001000000000000002042a34b3906a2d85259fdd02f30f238b8f4b9b88b27d8a6bf5fabaa6d7c12ab0600000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b7740100000000000000030000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000206ff0195a134c259fe7543028850c1e5cad27da7360a4eaae4414e0bfdccdba62000000000000000100000000000000000000000000000020bc0e1e4d069a85667d831c6131bf23b47a10f808276f2d639351a2b29c6601f100000000000000010000000000000001000000000000002049b18f4c7c36a3e31f7aea5854ff3a4295357e9b4683efeb0cc263602c4cd838000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000030000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000000000000000000020cb8d738d8c7fde362309ed4fea4dceebd50db606d8d754a03ccbe1ca6670fa33000000000000000100000000000000000000000000000020dc14af937edda2c22b7ffa6483569ab01a39d89d704697b5587dfa925d8c8ed900000000000000010000000000000001000000000000002020b2ded527ef4d18477ef5189fbf04e7010dad20d213e6906cbbf7251e5dff110000000000000001000000000000000100000000000000201372e78c2c052b784180de542aa47eb2bb53d01169303993faf60c8d554b2f730000000000000001000000000000000100000000000000202cd923c9ad51045bfc9d9d6b2b0efad39d54053793269cc7b5293263cd4556ad00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000000300000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000000000000000000020520213489a96228d6861997a49994d7ed56e8310c8fc186feb25e177f96edcfa0000000000000001000000000000000000000000000000207d5d9807167443cfaa21edae3e117b03db3428a11fc2998ac147e793e4581937000000000000000100000000000000010000000000000020c8f2099faeeea72a24c9ccbd3f29429113314e612b99bcc60f4aca9f40edcff70000000000000001000000000000000100000000000000205174975bfdad7ff3af610fceab74f94ceda7360eaa76c78283f4bb4ba38cc30a00000000000000010000000000000001000000000000002066cf4d9926cdae82b6d9904873c2298bf88ff7798aff52ac7e80595bfebf56340000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b400000000000000030000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb18000000000000000600000000000000010000000000000000000000000000002069f63200090b76657b9da3959d395c7f8297fb6f29afc3c2ba81ffc340f0f88700000000000000010000000000000000000000000000002076948a5ac8edc5ec12604ae61a9c6748ddc2111fc526a4a8127bd9cbe59ee673000000000000000100000000000000010000000000000020f2e68171c870737d8303eff5134ad13bf74b874440e0f7adb4e08b5b3ab25b8b0000000000000001000000000000000100000000000000207eb1197c546bbc4e4a76048b12fa374c548aeba420b06d0659b57873e8f44b1700000000000000010000000000000001000000000000002062b119579f2ce99141f7a10eeb446a695c116edde54c9c8d3d41d0f6d978f97d000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a6100000000000000030000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d000000000000000600000000000000010000000000000000000000000000002097698781b966658d98ca4a4588533961dfae6d3ae186b8574149d4b6b3c91ddf0000000000000001000000000000000000000000000000201a861beee7db7276755b43047e6d30fba18563e26efd08932d1d994d8e16ae740000000000000001000000000000000100000000000000204ccc0340fb28e76bd05ea41a75c2ef813e00d47e6b2efe520e36822dd996d8d6000000000000000100000000000000010000000000000020891c853160123425a2c10c5935d96515b19498fdfbc3cb4d6c7dd56bb01ebe0a00000000000000010000000000000001000000000000002042a34b3906a2d85259fdd02f30f238b8f4b9b88b27d8a6bf5fabaa6d7c12ab0600000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b7740100000000000000360000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020d6ab637747cd4cf07614af7517bc5b895262c631bcb8c17be442d7ffb446d0d1000000000000000100000000000000000000000000000020af10c5c4dbfe0ae7d40ae80cbb399ff0ef8a3020aceee74eebf5f5da0a49f123000000000000000100000000000000000000000000000020cacc7d788bbdb1c4d5dbf47f8afd9ed9b975d2203ba1769a80caa833f3fbb946000000000000000100000000000000010000000000000020f006cf8352bbf180ccb81999dec2d0377abf32ec1a119242758d07bf00181499000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000360000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d700000000000000060000000000000001000000000000000100000000000000205f223508d84f994434a1b9f1c910be590b4faac30c2633a47897da152034115300000000000000010000000000000000000000000000002057a7e759c6e08b939c29e88892af514211dfd94428401cfd44d8d0e8c7dae5f700000000000000010000000000000000000000000000002033e7006db572644806c9d21830fc317d488d3eb37ab16177312161c83c96782e0000000000000001000000000000000100000000000000204704b2369bbb85eb35028b1dca7bb4fdd6aebd6e5749c4e94ddc7511a99d762e000000000000000100000000000000000000000000000020834d4a08f12e109ba3842642aba51324307db48367fe911f6f90ea4c90f658af0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000003600000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020740d8b63cc035a2736e1b15ccdb4a06e90a9aac2a8a01e027c19b3af6fc2e55c000000000000000100000000000000000000000000000020ad4ddcfe6231fdd5f6dd4fddb1e8ed67707bcb668db8f35f0412d3a592544f3f000000000000000100000000000000000000000000000020d07b5012f25eb800ad0beb08df3a44b29e04313e7734d3f8b8d179deee3be79a000000000000000100000000000000010000000000000020ee29b766915a0b2bb8b3eed1a190e616f1054d1263bae454ff4b2c87c790d9f2000000000000000100000000000000000000000000000020e46de27951e7cf912bad485c8e6567eda41b075c193f312ae312f934169d3978000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b3500000000000000360000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb18000000000000000600000000000000010000000000000001000000000000002017cdb3c08e89e231e1f391a370d0084d734aa68d422b7fc9dfdcae55831e2fa100000000000000010000000000000000000000000000002096c9fcdfa3bedeb7f3b10cc505a9c5a2c838e8745bbccda7ed67c75e79e34323000000000000000100000000000000000000000000000020239bbe1e783db329778bbdd317b229e92841e96b97e289b59ab7e65b7f8c697d000000000000000100000000000000010000000000000020fb4a60a9e1d778020d976922d17f02aa13de150f1ef9e070600c13e05e0cd3360000000000000001000000000000000000000000000000207b1b03ed11100190943c68158379b874102af65549a0dc5eb9bee52b887a1e5b000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c1300000000000000360000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d000000000000000600000000000000010000000000000001000000000000002070a4232be2da1c25f9f2b1fa23cc324ab23fefc0b3786fcf5f0e77a05e5bf371000000000000000100000000000000000000000000000020961749bc51afc0f2a49ef01e9a8998ae98fa48576b25d4ea5dd9a295b504a7a5000000000000000100000000000000000000000000000020e2e289844f36439c5d859f51d56bbc4b13a514529349a51a6cc18a699b5c2cb80000000000000001000000000000000100000000000000206fd0c241d082dddc763476a7c884f0f9949e0d0c60b662c9718f6a9990d86306000000000000000100000000000000000000000000000020c32a41143c0bed20f51da2399f8c92440338c8c1a4f71184e98747946cf91d0d0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb16637400000000000000060000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000203d5b9727368ca9ce4a7f482bc655ef03aaaa2f3a7626915974c97708214ac21e00000000000000010000000000000000000000000000002089f5f06a3eaa9feb6107ff18a664d8234f172a437fa0bd092c38efcfada850fb0000000000000001000000000000000000000000000000205653a7aef6c658c2fe00a9e102931ec0732cfb210b3c0f9786685131d83170b8000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000060000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d700000000000000060000000000000001000000000000000100000000000000209dd09c7a8d081d2fc6fab61db737fe12a6ffdc95c1fd6e49f9f230b98ff9a9310000000000000001000000000000000000000000000000207bacd651a6b08d81c088f00a770346b0d1768e7ec85064689f582e046c302b130000000000000001000000000000000000000000000000203ad7fd5698e5be58de7990f933f6c7898b23643b5b9d816deaf9a417c23dd6210000000000000001000000000000000100000000000000201372e78c2c052b784180de542aa47eb2bb53d01169303993faf60c8d554b2f730000000000000001000000000000000100000000000000202cd923c9ad51045bfc9d9d6b2b0efad39d54053793269cc7b5293263cd4556ad00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000000600000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020e7b479c3f16f0c2f91a816a447dc6af4a6cf8b1002c06ddd1b08e6f9d952fa780000000000000001000000000000000000000000000000208452af58f9ed0dbc14acbaa578cb5485a8503d7ee98bb6ae5dc5f153fb8628250000000000000001000000000000000000000000000000203cb9947cedec25457c2378eb9b5b9f2c3987a6ee66012008ec2e902a544eb76f0000000000000001000000000000000100000000000000205174975bfdad7ff3af610fceab74f94ceda7360eaa76c78283f4bb4ba38cc30a00000000000000010000000000000001000000000000002066cf4d9926cdae82b6d9904873c2298bf88ff7798aff52ac7e80595bfebf56340000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b400000000000000060000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb180000000000000006000000000000000100000000000000010000000000000020a544d4844b52b046a4961e455c810eefe7bcaa5c12a8d81d36b3a03c58cf0c530000000000000001000000000000000000000000000000200024a7a0e916ea7fce2928db6dda2e9e4a515de80cbc986d22ad2e8ff707b1d2000000000000000100000000000000000000000000000020e8c2bb93a11dcf6040e149b57365ddc89686d90e4f80320a11731d6c268b54340000000000000001000000000000000100000000000000207eb1197c546bbc4e4a76048b12fa374c548aeba420b06d0659b57873e8f44b1700000000000000010000000000000001000000000000002062b119579f2ce99141f7a10eeb446a695c116edde54c9c8d3d41d0f6d978f97d000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a6100000000000000060000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d000000000000000600000000000000010000000000000001000000000000002078025b5d8e237f7600ebb2abd43ab66da48e2cbf31005cee47886491134fa9b700000000000000010000000000000000000000000000002015c04c24102b69e60dc617bd642e1e1925fe64c3f3fb3be6c6afd64c9ca2c8d10000000000000001000000000000000000000000000000208db56a61d427e46a782c8337a38ae7d73ddd6afd046087d3b3ad987f33397413000000000000000100000000000000010000000000000020891c853160123425a2c10c5935d96515b19498fdfbc3cb4d6c7dd56bb01ebe0a00000000000000010000000000000001000000000000002042a34b3906a2d85259fdd02f30f238b8f4b9b88b27d8a6bf5fabaa6d7c12ab0600000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b77401000000000000002f0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020187d6fc731ee3b7c74d0699a8a6aa921686bda392d9dbe628763e70ea0a4b2d2000000000000000100000000000000000000000000000020295e30ac0c53913c15b9f6857b753d9130839813b975f8c117da751871679a2c0000000000000001000000000000000000000000000000200ae4da6dd0ba3dba590cdc5b458241d43b05d834be20f06226ed69dfe3f4feff000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000002f0000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000000000000000000020e31fd7410cd14b4e45bd7af948ae9eaa3cdfce359243f6082a2b7e2c54af7668000000000000000100000000000000000000000000000020e7840446dde19f454809c735e79f7190c25aabd2545b4ee305ffe4f54b029a8e000000000000000100000000000000000000000000000020d64b26c6ac124d3db1d6fb425f829797c96b63e725e8ec370d64766babc57a36000000000000000100000000000000000000000000000020de2df1a2bf6ab8bcb15302a439c8c59b426846d84a9a27c4f8cf974ecb5fc439000000000000000100000000000000010000000000000020adb8eaef73a8ceab26782ef60dd0142232fb9a5368bfb15c680181cf9256dd4d0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000002f00000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c1000000000000000600000000000000010000000000000000000000000000002097366fe5592ec6b9ded03e390c2750215c49ef344b3bf270ac25ce042afd99430000000000000001000000000000000000000000000000208ce486714500c3f4fa571b0d5b7f85a62484b15fd16f000ac39b1da0e1f8786d0000000000000001000000000000000000000000000000203e84ddc11d925cb8b3f9098dede260545f4bf8f5766fccbb1ab1cdbeb871038d0000000000000001000000000000000000000000000000201358541e6063a73bd5d17001b4e53dbcb7fdfa7e49ab2bda0741eb1f96553a39000000000000000100000000000000010000000000000020380598ae7bc649d61608add40bfb9a587ce84ee9065865c8db1413f481d6dece000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b35000000000000002f0000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb180000000000000006000000000000000100000000000000000000000000000020700fa4b493f74efbf0ed8debdc867014d9d196bbd85aeb81eac8d98ed02b2ece000000000000000100000000000000000000000000000020c4f79ae381c5400c1225a6dfad13e7b56cea4070e247d912ceefe6470e53910b000000000000000100000000000000000000000000000020c5f265a5fb41bfb76bca6b9a0f1275ec220966ca5981a71399d7c48864a84f310000000000000001000000000000000000000000000000206dddcecd3e91e63334cc6fdbdc96a088e83a1ca9fc3e29ba5eda5ebb2decdce6000000000000000100000000000000010000000000000020c7597d99c829d6efca97aa7e6ecd776d45c68e6dd9306fc794c4d2cee7e84c9f000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c13000000000000002f0000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d00000000000000060000000000000001000000000000000000000000000000200c319ec5d1861de3f5be8e69e4af7ba6a3be2ec37d7317be3123f47c2bf0572c000000000000000100000000000000000000000000000020c38e33b5100aad302da216d67ff2af1c5cf559ae9e275c3bfaf4ffaf87b015f8000000000000000100000000000000000000000000000020c58380a46e6b76642f8e6693f4c59928add4db62d4061d866802ca0ecbfc8d0b000000000000000100000000000000000000000000000020f29018eb67b28e0544e686c0f4bd5c31b00a7fc35696d87214de6da96160c60b000000000000000100000000000000010000000000000020757ff2f05cfaff6ea60a6597e42ed2757cd955e4cafcfb47ec86f9b10b51230b0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb16637400000000000000100000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020c47d7bebc8c15f325d831bf339e2d3309c7c8d22969ec6186bc0568046427bd7000000000000000100000000000000010000000000000020640867ed08a3ecabe4859b1b36a9e35eed961ff22f4ecb3f19f23eafd153979300000000000000010000000000000001000000000000002038c257c4acc7ae148c5c9b4409c82130df8554a30c1e722962697197980c56fb000000000000000100000000000000010000000000000020f158609c6b12d3609bdf1c7797edb538f985fe8ac4171f066b1d7b9c43c7bc3b0000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000100000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000010000000000000020130a60e32dbd45ce9fc1b38fb7a669cdfeefe86646f07a007ad1c302c84fd44a000000000000000100000000000000010000000000000020673d9bbdec4018e14c00b2977d46d6e3186f61529a1d3aa6709075bc73340a850000000000000001000000000000000100000000000000202a626f6e71a7040977f48f0331876fcd1bdf2afd39133fc91c8f911e06ecb5500000000000000001000000000000000100000000000000200af3a1e8f7893929d070fc6e79b7461d01674e4931d207f9ff44d0ec44d192ef000000000000000100000000000000000000000000000020b2179105904f600227797c6ccdb8959ff4252a36710715b942b644ee0a59f58d00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000001000000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020ea8cea3ec0884436a9fbac1ea6185827098a86aef32ceb7a4f021b978692489e00000000000000010000000000000001000000000000002043986ee4c957e4292c15e9defee9da9b1a4a8a4b515966573d63201e2c89fe6d000000000000000100000000000000010000000000000020c870cc5991224fe875c03d99dbfef8fbfeb41d1b1f43d327e63022667b3237e5000000000000000100000000000000010000000000000020ca595177c9eb6f3096754da5b9601c287818bfb8ed6752a05163c032b4d4c069000000000000000100000000000000000000000000000020286aa95516a0434f8968e2729d4c92308c9456ebf4a1d0d9d335e067c147e9ab0000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b400000000000000100000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb1800000000000000060000000000000001000000000000000100000000000000205fde01bcabc9f5354006259d8fc9785ec621c736a3aea38f578535ac2c885d67000000000000000100000000000000010000000000000020f891f620b9769620492d95e458b6d7b94d13e8255bde98a906a32a5dd3255a54000000000000000100000000000000010000000000000020888cb07446656d63b2a096d8b1b156d05205811b0e48ebab0e2714854ab470de0000000000000001000000000000000100000000000000204a78e9eb44fea21926a2ac4fb17955446eb663b8130f9780a83ae405bdad6dbc00000000000000010000000000000000000000000000002059afffcfe907b7f651d0f62f3664c228c07fabe8b4015f54f0801603277ddbca000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a6100000000000000100000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d00000000000000060000000000000001000000000000000100000000000000202be4c273fd75394c22300bdc6e86b4d2154dddef0c11974d1f297d9f9995801b0000000000000001000000000000000100000000000000203312f3095cca6255a119c1aa7ee6908222e40b6c0f7ab629770bf029481433960000000000000001000000000000000100000000000000202ab2bc596dfd3283c0f38816f230153ec7e09812548f97c0b3065918e43e8b250000000000000001000000000000000100000000000000209551c6da21b704f16621143cf4ae3bb0037aaa9f71b9ddbac1d1dc4d7841e9f2000000000000000100000000000000000000000000000020096a6ccd52081fca061f3bc4d84b362ef4fd8c1a120c9febbbfdfb49dadb617100000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b7740100000000000000150000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020dffef2b6289ca42b6b10811bf557d0f0473b5148078520d4dd2c3c9e071683cf000000000000000100000000000000010000000000000020934ab4c6e53dcf48d451f6ed7e4af86b758dd8dba6533f4175725e2e5845afc500000000000000010000000000000000000000000000002026fce9aa21f1ef53b559859e81595b7ea9f4a7505a8a6c162b86994251034ce3000000000000000100000000000000010000000000000020f158609c6b12d3609bdf1c7797edb538f985fe8ac4171f066b1d7b9c43c7bc3b0000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000150000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d700000000000000060000000000000001000000000000000000000000000000203a820c2e0a94d4fd9a6a97134e490757d4cff787898b03143693ba52a52e5b22000000000000000100000000000000010000000000000020ed4e952f4ffebc9ce86ed2885d594c83d3ec4c4c15350e69772e94a8d909acfb00000000000000010000000000000000000000000000002093e03ca32d277a055197b2f4be063f2430c60102c5f873e991019e1ffd7801c10000000000000001000000000000000100000000000000200af3a1e8f7893929d070fc6e79b7461d01674e4931d207f9ff44d0ec44d192ef000000000000000100000000000000000000000000000020b2179105904f600227797c6ccdb8959ff4252a36710715b942b644ee0a59f58d00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000001500000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c100000000000000060000000000000001000000000000000000000000000000203e65071baf68fbb9c7f34587e4ff0f5cbd370d395b470236ed5565d9facf35760000000000000001000000000000000100000000000000208b3ae1f14a3158318f6d8749aefcde0b3b2207eb7fb5eb331b5b1bd02036fa1900000000000000010000000000000000000000000000002073d818c2d86bd95f54a19c4f8a4f06873a25f0c32b41c1d315ce89c23348844c000000000000000100000000000000010000000000000020ca595177c9eb6f3096754da5b9601c287818bfb8ed6752a05163c032b4d4c069000000000000000100000000000000000000000000000020286aa95516a0434f8968e2729d4c92308c9456ebf4a1d0d9d335e067c147e9ab0000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b400000000000000150000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb18000000000000000600000000000000010000000000000000000000000000002029fc4e5ea169b7e7d1ddc2cb3bc1171130ed993774610c01a3b0a0f50e6a537a00000000000000010000000000000001000000000000002037d2f9f4120cafaa112326ce31e64fe36cc7bfa0a5c48da73380f1f881776bf6000000000000000100000000000000000000000000000020fe06453f85c1bc9eddbfa944877be7a42cd814e96c88fcdadeb7af22e34e39db0000000000000001000000000000000100000000000000204a78e9eb44fea21926a2ac4fb17955446eb663b8130f9780a83ae405bdad6dbc00000000000000010000000000000000000000000000002059afffcfe907b7f651d0f62f3664c228c07fabe8b4015f54f0801603277ddbca000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a6100000000000000150000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d00000000000000060000000000000001000000000000000000000000000000209fa305d1cd348f6d1bfc3b55422013db9588c6238f48ef3c660a7e16373120c6000000000000000100000000000000010000000000000020d176755e283ed870229a974a0b3f28344fd2c0b64378b46e835451652723719400000000000000010000000000000000000000000000002070ac0afac757320c7b8afba642269c8ebda9fdf302952e6c56d04d5ea75f879e0000000000000001000000000000000100000000000000209551c6da21b704f16621143cf4ae3bb0037aaa9f71b9ddbac1d1dc4d7841e9f2000000000000000100000000000000000000000000000020096a6ccd52081fca061f3bc4d84b362ef4fd8c1a120c9febbbfdfb49dadb617100000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b77401000000000000001e0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000205b22e826fa41eab497f0d44485ed30b89e70dc3b8991721ecacea7676a1160ba000000000000000100000000000000000000000000000020a99b7e2901520fe9aa438e0b1d9ff1d42abd1e4774fe50a7af9abfdd5aeb49f0000000000000000100000000000000000000000000000020cd05d024922075f0d2191dff6b6b8977913542096c687b1aa6a6880a30f4f1780000000000000001000000000000000000000000000000207a1424d413417eb28a018fd1d76958181366ee57c4d59ae0034a29ddbb1d2b590000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000001e0000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000010000000000000020fffa47f999332d217b19eabd033573400a15630199197996e7e966d946928621000000000000000100000000000000000000000000000020e4abb87721ae1731bc6aee7f24bfdd8424c2c6d8fbd25e4e6d14f0b8b89a9664000000000000000100000000000000000000000000000020222c544f148f9e2b69e62cf11604f62aedfeda5a2bf20333ab12db04391e1a6d0000000000000001000000000000000000000000000000203258c2185d1d63acd1aab64a5513a9468432cf501909d54ec3aa84f0a8f84962000000000000000100000000000000000000000000000020b2179105904f600227797c6ccdb8959ff4252a36710715b942b644ee0a59f58d00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000001e00000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020debcf67c70d7ff29fee1f88827155d5410763847b214bd82213c780b45e8f7a700000000000000010000000000000000000000000000002065d85d8c2a0115a8cf0c8a7e9d003cfe4b02af86cf2e9b981a364b28d8d281f00000000000000001000000000000000000000000000000209aa1948e3d99cb3b036e7ef33e14ce04a4e5cc9bddb460b8d2d06114c32e7a4e000000000000000100000000000000000000000000000020ce8ff34b824516fef1d61fe9556d5193458470c305764910ea9218ddaa9ad9ba000000000000000100000000000000000000000000000020286aa95516a0434f8968e2729d4c92308c9456ebf4a1d0d9d335e067c147e9ab0000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b4000000000000001e0000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb180000000000000006000000000000000100000000000000010000000000000020d1b29b21587f2d8214fe81ce26413e3fa76302367383381cd12269ff3aa3b319000000000000000100000000000000000000000000000020a59ae923fd8f26d96a5ee4e9945c4d1b7c0ce303eda6b4151426537cecb84b8500000000000000010000000000000000000000000000002029724ed730bbc4b42c8b49d3b94cce1548c55b75c5515c93ca1f583d8fe255fe000000000000000100000000000000000000000000000020340ed050ea4713aa4ad4c013afbd38231c302d097b43c9bf5b9952d7fedb3ed500000000000000010000000000000000000000000000002059afffcfe907b7f651d0f62f3664c228c07fabe8b4015f54f0801603277ddbca000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a61000000000000001e0000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d0000000000000006000000000000000100000000000000010000000000000020968ec45a2b99b74562efa3d959a153c08585a8e4e85407b6f4a28296a0bd5e85000000000000000100000000000000000000000000000020a3b1bc416c9ea8007ee12b4a820af52d380d61ee7cd216690c8d8ba08ebcfbe500000000000000010000000000000000000000000000002015afb35775e6e2eda131732d194c3d3679db33fd87ecb15fcfc9cf3438b28ec20000000000000001000000000000000000000000000000203dbbc5b1a055b07e8b25c1203a98ebcf464623a32a8902f4070142539176922e000000000000000100000000000000000000000000000020096a6ccd52081fca061f3bc4d84b362ef4fd8c1a120c9febbbfdfb49dadb617100000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b7740100000000000000280000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000203fc4f8175b9c92350566386ba4636deeb2ec6d4187f6d0d3208c3db577ee4c1a000000000000000100000000000000010000000000000020c600a084e5647679dce1e61667cd049aa01cd0b29e54cfef6b28350be80914810000000000000001000000000000000100000000000000200ebe305ff48b2729427a6d3d9c605f9d8749d8a7f371875c0845a2841f05d610000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000280000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000010000000000000020ff6f6655fe0735826a6d70429961f5593d2818d2dab010dae0a3abb68a0fdbc50000000000000001000000000000000100000000000000209f9bee513a75283462112f1ca2af8bd157d6c94c1864112cb461c22194cbc552000000000000000100000000000000010000000000000020aa8aaf7a9f2c4682ba9ba18998b5c7d9b5cec92d7d415f46af51866ad5d812c8000000000000000100000000000000000000000000000020de2df1a2bf6ab8bcb15302a439c8c59b426846d84a9a27c4f8cf974ecb5fc439000000000000000100000000000000010000000000000020adb8eaef73a8ceab26782ef60dd0142232fb9a5368bfb15c680181cf9256dd4d0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000002800000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020e85d96fec3a6507cb57112edfe7e33cd7c17a1bea23cafeb6446dc341e7c1fec00000000000000010000000000000001000000000000002057c569142e0c8f3bce388044ed66a39869c151160cb706b3171385e0a76a63be00000000000000010000000000000001000000000000002012b2c25f0cf4525c6320e52750c92201fd654fce8944a872da5475b3d695badf0000000000000001000000000000000000000000000000201358541e6063a73bd5d17001b4e53dbcb7fdfa7e49ab2bda0741eb1f96553a39000000000000000100000000000000010000000000000020380598ae7bc649d61608add40bfb9a587ce84ee9065865c8db1413f481d6dece000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b3500000000000000280000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb1800000000000000060000000000000001000000000000000100000000000000202e4bbc0d83afad6229babb666e584c56ef9bcc9b26e67a2d85f6ea8666f56ef4000000000000000100000000000000010000000000000020f3293fb0f8fd810a186fbb5893e3954cd589abe33c61b368af3ae4a93febdf7d000000000000000100000000000000010000000000000020b77914e384a9047e3473fb351a9618aeab0e1f21754de24d9a50f7e34bd0f4e40000000000000001000000000000000000000000000000206dddcecd3e91e63334cc6fdbdc96a088e83a1ca9fc3e29ba5eda5ebb2decdce6000000000000000100000000000000010000000000000020c7597d99c829d6efca97aa7e6ecd776d45c68e6dd9306fc794c4d2cee7e84c9f000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c1300000000000000280000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d0000000000000006000000000000000100000000000000010000000000000020eeb1dac8a39aea60d4db1d7dd20432d1d1dc195a841fadaaf47afcf343ff8715000000000000000100000000000000010000000000000020f4e381e57cf0a37c06afa28615f52017494385618b33413cba97767de25cf7b0000000000000000100000000000000010000000000000020423a01aa2ffd993dfde30c95c6a57e30516214d0d8193fe602e5153aa78b7b69000000000000000100000000000000000000000000000020f29018eb67b28e0544e686c0f4bd5c31b00a7fc35696d87214de6da96160c60b000000000000000100000000000000010000000000000020757ff2f05cfaff6ea60a6597e42ed2757cd955e4cafcfb47ec86f9b10b51230b0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb16637400000000000000010000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000207a810149b56beb7c711c05676c1721fd4595513d55341729b655fdf6bc7c6e9d000000000000000100000000000000010000000000000020c74fc5b5363c08b2d56ef59ce1523608b22b04f93198fc444fbc86eb42093a0b00000000000000010000000000000001000000000000002049b18f4c7c36a3e31f7aea5854ff3a4295357e9b4683efeb0cc263602c4cd838000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000010000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d7000000000000000600000000000000010000000000000000000000000000002053f27a3fac139541ac1ad4fae785e1c654a940bd42e0dd80e54f6b109ce8f94d00000000000000010000000000000001000000000000002046306a267bb05948133a12d6c0bd15c261e6f3adb74e261219114da8493e33d600000000000000010000000000000001000000000000002020b2ded527ef4d18477ef5189fbf04e7010dad20d213e6906cbbf7251e5dff110000000000000001000000000000000100000000000000201372e78c2c052b784180de542aa47eb2bb53d01169303993faf60c8d554b2f730000000000000001000000000000000100000000000000202cd923c9ad51045bfc9d9d6b2b0efad39d54053793269cc7b5293263cd4556ad00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000000100000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c1000000000000000600000000000000010000000000000000000000000000002060181705ea022b67c15ca667295008f5a23b314e40329f36e2877e583ed285710000000000000001000000000000000100000000000000208cc3e21732f2e38f2fa6455c17cffefb25e8977e710b876f4853ff281a07db5e000000000000000100000000000000010000000000000020c8f2099faeeea72a24c9ccbd3f29429113314e612b99bcc60f4aca9f40edcff70000000000000001000000000000000100000000000000205174975bfdad7ff3af610fceab74f94ceda7360eaa76c78283f4bb4ba38cc30a00000000000000010000000000000001000000000000002066cf4d9926cdae82b6d9904873c2298bf88ff7798aff52ac7e80595bfebf56340000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b400000000000000010000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb180000000000000006000000000000000100000000000000000000000000000020d81a55f5d4386f799ffc0cfdade307f1dc08719a3fc6f593af2c22c474b0ef92000000000000000100000000000000010000000000000020f97cf57802b4a8493a57a400c63a54abcd02b1720175842833ec3521d7d67b06000000000000000100000000000000010000000000000020f2e68171c870737d8303eff5134ad13bf74b874440e0f7adb4e08b5b3ab25b8b0000000000000001000000000000000100000000000000207eb1197c546bbc4e4a76048b12fa374c548aeba420b06d0659b57873e8f44b1700000000000000010000000000000001000000000000002062b119579f2ce99141f7a10eeb446a695c116edde54c9c8d3d41d0f6d978f97d000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a6100000000000000010000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d000000000000000600000000000000010000000000000000000000000000002001db2cc54d84c79e3e2298b06212b53c3248277a32a407d991b68244c4ba30af000000000000000100000000000000010000000000000020781a341288c6b442334e5cbb024772e0cab8f5b535d090e46818358070fe2cab0000000000000001000000000000000100000000000000204ccc0340fb28e76bd05ea41a75c2ef813e00d47e6b2efe520e36822dd996d8d6000000000000000100000000000000010000000000000020891c853160123425a2c10c5935d96515b19498fdfbc3cb4d6c7dd56bb01ebe0a00000000000000010000000000000001000000000000002042a34b3906a2d85259fdd02f30f238b8f4b9b88b27d8a6bf5fabaa6d7c12ab0600000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b7740100000000000000310000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020de0239826f84300a4b930455833368a3b5ed681fe8962cfb4af828dc999da678000000000000000100000000000000010000000000000020b07fc62d561ac62b44d2a42d32b92ea5c1cc6bd1a2aaec7fc3bc3511de391ed20000000000000001000000000000000100000000000000205f3c867463c166fd9c0125885c51251e20c9b8d44030db7f8c699a0f747c2522000000000000000100000000000000010000000000000020f006cf8352bbf180ccb81999dec2d0377abf32ec1a119242758d07bf00181499000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000310000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d700000000000000060000000000000001000000000000000000000000000000201e990e27f0d7976bf2adbd60e20384da0125b76e2885a96aa707bcb054108b0d000000000000000100000000000000010000000000000020be315ca75a50a54647d6af6765170e8e260e2447ed5ba5b6c28e49cb9624ac8500000000000000010000000000000001000000000000002069bbf4e45f7cf39db228623b3f31279cf0279d75ab35bdc78bf8e5c11af26e2d0000000000000001000000000000000100000000000000204704b2369bbb85eb35028b1dca7bb4fdd6aebd6e5749c4e94ddc7511a99d762e000000000000000100000000000000000000000000000020834d4a08f12e109ba3842642aba51324307db48367fe911f6f90ea4c90f658af0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000003100000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000000000000000000020b97f093e23b2895b7de60bcf4223312f9129d8958945267c56f18a65dfd1fef80000000000000001000000000000000100000000000000203883af7544d26da8ce7644195720c73ab1e9fb5c37365aebac74a689d570c016000000000000000100000000000000010000000000000020b3dcc758a9e7e412a304b6eea80be32762cacd880a436e5c9f74b9147fc2af5b000000000000000100000000000000010000000000000020ee29b766915a0b2bb8b3eed1a190e616f1054d1263bae454ff4b2c87c790d9f2000000000000000100000000000000000000000000000020e46de27951e7cf912bad485c8e6567eda41b075c193f312ae312f934169d3978000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b3500000000000000310000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb1800000000000000060000000000000001000000000000000000000000000000208e81de10eb36dc9520ba4eab03023c233b7d200d834d94cdf3348f54895a5a1d000000000000000100000000000000010000000000000020bf4ed2215edd6feabe994b2473f201a59e5ea07ac0cbddb7e290c9f4bff7e566000000000000000100000000000000010000000000000020e6b0f46fb0cf4fad5f91e9a53771ca0f6326860e4e3112c40366b8b61d16fe08000000000000000100000000000000010000000000000020fb4a60a9e1d778020d976922d17f02aa13de150f1ef9e070600c13e05e0cd3360000000000000001000000000000000000000000000000207b1b03ed11100190943c68158379b874102af65549a0dc5eb9bee52b887a1e5b000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c1300000000000000310000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d0000000000000006000000000000000100000000000000000000000000000020d20d6a382c07d2115635b18e66695dfdaab93828db45674bc5ca2ad77a77305e0000000000000001000000000000000100000000000000203a2d04d0af50a10de82b7f1346324dd6aa93ab36d183810b0ddbbf44b95ba319000000000000000100000000000000010000000000000020bff790245007621d0f42d4c74e91a01ca1c7d45cfab67dc367cb6aab6570faa10000000000000001000000000000000100000000000000206fd0c241d082dddc763476a7c884f0f9949e0d0c60b662c9718f6a9990d86306000000000000000100000000000000000000000000000020c32a41143c0bed20f51da2399f8c92440338c8c1a4f71184e98747946cf91d0d0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb16637400000000000000010000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000207a810149b56beb7c711c05676c1721fd4595513d55341729b655fdf6bc7c6e9d000000000000000100000000000000010000000000000020c74fc5b5363c08b2d56ef59ce1523608b22b04f93198fc444fbc86eb42093a0b00000000000000010000000000000001000000000000002049b18f4c7c36a3e31f7aea5854ff3a4295357e9b4683efeb0cc263602c4cd838000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000010000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d7000000000000000600000000000000010000000000000000000000000000002053f27a3fac139541ac1ad4fae785e1c654a940bd42e0dd80e54f6b109ce8f94d00000000000000010000000000000001000000000000002046306a267bb05948133a12d6c0bd15c261e6f3adb74e261219114da8493e33d600000000000000010000000000000001000000000000002020b2ded527ef4d18477ef5189fbf04e7010dad20d213e6906cbbf7251e5dff110000000000000001000000000000000100000000000000201372e78c2c052b784180de542aa47eb2bb53d01169303993faf60c8d554b2f730000000000000001000000000000000100000000000000202cd923c9ad51045bfc9d9d6b2b0efad39d54053793269cc7b5293263cd4556ad00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000000100000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c1000000000000000600000000000000010000000000000000000000000000002060181705ea022b67c15ca667295008f5a23b314e40329f36e2877e583ed285710000000000000001000000000000000100000000000000208cc3e21732f2e38f2fa6455c17cffefb25e8977e710b876f4853ff281a07db5e000000000000000100000000000000010000000000000020c8f2099faeeea72a24c9ccbd3f29429113314e612b99bcc60f4aca9f40edcff70000000000000001000000000000000100000000000000205174975bfdad7ff3af610fceab74f94ceda7360eaa76c78283f4bb4ba38cc30a00000000000000010000000000000001000000000000002066cf4d9926cdae82b6d9904873c2298bf88ff7798aff52ac7e80595bfebf56340000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b400000000000000010000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb180000000000000006000000000000000100000000000000000000000000000020d81a55f5d4386f799ffc0cfdade307f1dc08719a3fc6f593af2c22c474b0ef92000000000000000100000000000000010000000000000020f97cf57802b4a8493a57a400c63a54abcd02b1720175842833ec3521d7d67b06000000000000000100000000000000010000000000000020f2e68171c870737d8303eff5134ad13bf74b874440e0f7adb4e08b5b3ab25b8b0000000000000001000000000000000100000000000000207eb1197c546bbc4e4a76048b12fa374c548aeba420b06d0659b57873e8f44b1700000000000000010000000000000001000000000000002062b119579f2ce99141f7a10eeb446a695c116edde54c9c8d3d41d0f6d978f97d000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a6100000000000000010000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d000000000000000600000000000000010000000000000000000000000000002001db2cc54d84c79e3e2298b06212b53c3248277a32a407d991b68244c4ba30af000000000000000100000000000000010000000000000020781a341288c6b442334e5cbb024772e0cab8f5b535d090e46818358070fe2cab0000000000000001000000000000000100000000000000204ccc0340fb28e76bd05ea41a75c2ef813e00d47e6b2efe520e36822dd996d8d6000000000000000100000000000000010000000000000020891c853160123425a2c10c5935d96515b19498fdfbc3cb4d6c7dd56bb01ebe0a00000000000000010000000000000001000000000000002042a34b3906a2d85259fdd02f30f238b8f4b9b88b27d8a6bf5fabaa6d7c12ab0600000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b77401000000000000001c0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020dc473fbc2982536b3551210ff22dbfb86908bbdebdf4f9fcee59b94ae742f3e7000000000000000100000000000000010000000000000020f09e0551c369e8794e51f609fb64bc262c407f13317ebef64c17a4fb128e2b29000000000000000100000000000000000000000000000020cd05d024922075f0d2191dff6b6b8977913542096c687b1aa6a6880a30f4f1780000000000000001000000000000000000000000000000207a1424d413417eb28a018fd1d76958181366ee57c4d59ae0034a29ddbb1d2b590000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000001c0000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000010000000000000020b9caf53fb588988ca6a42b09516bd955b3a33ea84df73447ebe9131bc81d12cb000000000000000100000000000000010000000000000020dfe2fcd8a19655c028bba13eee57ed0a4d7dcf98a27d12bc8b84dc4382166763000000000000000100000000000000000000000000000020222c544f148f9e2b69e62cf11604f62aedfeda5a2bf20333ab12db04391e1a6d0000000000000001000000000000000000000000000000203258c2185d1d63acd1aab64a5513a9468432cf501909d54ec3aa84f0a8f84962000000000000000100000000000000000000000000000020b2179105904f600227797c6ccdb8959ff4252a36710715b942b644ee0a59f58d00000000000000010000000000000001000000000000002077351a12e7e97916d03544367da9416a506b209004c9623187e0a948b0b6b15b000000000000001c00000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020f26ceac37dc1c5b639209dc9adf229b4d3e0dec12fd3f017af1d187262fca0a900000000000000010000000000000001000000000000002027b2fd6c73a8f4d624e7aa7d5cf31b3504fb105004d3f49241636659ca496c450000000000000001000000000000000000000000000000209aa1948e3d99cb3b036e7ef33e14ce04a4e5cc9bddb460b8d2d06114c32e7a4e000000000000000100000000000000000000000000000020ce8ff34b824516fef1d61fe9556d5193458470c305764910ea9218ddaa9ad9ba000000000000000100000000000000000000000000000020286aa95516a0434f8968e2729d4c92308c9456ebf4a1d0d9d335e067c147e9ab0000000000000001000000000000000100000000000000208a72688ecbcc4949c684dbf8130308ef18c7c2bcaad4576c6757afd0ffac63b4000000000000001c0000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb180000000000000006000000000000000100000000000000010000000000000020e6ae1e2a2a16dd0764c007a2b18da60db7a4192bbe632c330f0376cfd02871620000000000000001000000000000000100000000000000201e59fed8685bb04f916136d066d01be8fe139100aa56f2ba3739835ecda3f6fe00000000000000010000000000000000000000000000002029724ed730bbc4b42c8b49d3b94cce1548c55b75c5515c93ca1f583d8fe255fe000000000000000100000000000000000000000000000020340ed050ea4713aa4ad4c013afbd38231c302d097b43c9bf5b9952d7fedb3ed500000000000000010000000000000000000000000000002059afffcfe907b7f651d0f62f3664c228c07fabe8b4015f54f0801603277ddbca000000000000000100000000000000010000000000000020eba3bbf363f58c81480b3c114ad9fdce06d5f0a8f15f12ffed12107bb9ee5a61000000000000001c0000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d00000000000000060000000000000001000000000000000100000000000000207e3f47f301949288faf8f455f7a66f0c32d87a6f940058769ec8a0dd75702ddd000000000000000100000000000000010000000000000020501c50cc712c262d8090223e69727f48350b264e5a910f26371920ffaa706eac00000000000000010000000000000000000000000000002015afb35775e6e2eda131732d194c3d3679db33fd87ecb15fcfc9cf3438b28ec20000000000000001000000000000000000000000000000203dbbc5b1a055b07e8b25c1203a98ebcf464623a32a8902f4070142539176922e000000000000000100000000000000000000000000000020096a6ccd52081fca061f3bc4d84b362ef4fd8c1a120c9febbbfdfb49dadb617100000000000000010000000000000001000000000000002001263e10d44b4ce3940a914a57a4e37452c1bd821fa73455b07a391050b7740100000000000000290000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020afda8f08f851e66f41a25326acc738e8538b2349a3b415bc8993aee72bcbde67000000000000000100000000000000010000000000000020c600a084e5647679dce1e61667cd049aa01cd0b29e54cfef6b28350be80914810000000000000001000000000000000100000000000000200ebe305ff48b2729427a6d3d9c605f9d8749d8a7f371875c0845a2841f05d610000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000290000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000000000000000000020488dfd6cdb4f2e80929c5debb43a8b534761d20b7ba517b6fcefd831965d9a380000000000000001000000000000000100000000000000209f9bee513a75283462112f1ca2af8bd157d6c94c1864112cb461c22194cbc552000000000000000100000000000000010000000000000020aa8aaf7a9f2c4682ba9ba18998b5c7d9b5cec92d7d415f46af51866ad5d812c8000000000000000100000000000000000000000000000020de2df1a2bf6ab8bcb15302a439c8c59b426846d84a9a27c4f8cf974ecb5fc439000000000000000100000000000000010000000000000020adb8eaef73a8ceab26782ef60dd0142232fb9a5368bfb15c680181cf9256dd4d0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000002900000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000000000000000000020e820af01f14a35f54d5ebc8c69106dfe81cef61b5747ae8871f5505fefaa5c0600000000000000010000000000000001000000000000002057c569142e0c8f3bce388044ed66a39869c151160cb706b3171385e0a76a63be00000000000000010000000000000001000000000000002012b2c25f0cf4525c6320e52750c92201fd654fce8944a872da5475b3d695badf0000000000000001000000000000000000000000000000201358541e6063a73bd5d17001b4e53dbcb7fdfa7e49ab2bda0741eb1f96553a39000000000000000100000000000000010000000000000020380598ae7bc649d61608add40bfb9a587ce84ee9065865c8db1413f481d6dece000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b3500000000000000290000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb180000000000000006000000000000000100000000000000000000000000000020113e6bffa721e99e5d152594ba218f72e88742a06444f6286cffe63f5302e865000000000000000100000000000000010000000000000020f3293fb0f8fd810a186fbb5893e3954cd589abe33c61b368af3ae4a93febdf7d000000000000000100000000000000010000000000000020b77914e384a9047e3473fb351a9618aeab0e1f21754de24d9a50f7e34bd0f4e40000000000000001000000000000000000000000000000206dddcecd3e91e63334cc6fdbdc96a088e83a1ca9fc3e29ba5eda5ebb2decdce6000000000000000100000000000000010000000000000020c7597d99c829d6efca97aa7e6ecd776d45c68e6dd9306fc794c4d2cee7e84c9f000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c1300000000000000290000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d0000000000000006000000000000000100000000000000000000000000000020004c671ec0b3253de1c92ce54aefc9d3fd7628afe456557f80d4b4085bed631a000000000000000100000000000000010000000000000020f4e381e57cf0a37c06afa28615f52017494385618b33413cba97767de25cf7b0000000000000000100000000000000010000000000000020423a01aa2ffd993dfde30c95c6a57e30516214d0d8193fe602e5153aa78b7b69000000000000000100000000000000000000000000000020f29018eb67b28e0544e686c0f4bd5c31b00a7fc35696d87214de6da96160c60b000000000000000100000000000000010000000000000020757ff2f05cfaff6ea60a6597e42ed2757cd955e4cafcfb47ec86f9b10b51230b0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb16637400000000000000340000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020a51a1dc62392f295b15fe1655ecfe34f6022071edf8acb2dd4f0b8ebef99ec59000000000000000100000000000000010000000000000020c362cab2e6c4dc6ea82bb6f4ded48e2f8eb7e24ef0fa0baea7e88c5951f51ecf000000000000000100000000000000000000000000000020cacc7d788bbdb1c4d5dbf47f8afd9ed9b975d2203ba1769a80caa833f3fbb946000000000000000100000000000000010000000000000020f006cf8352bbf180ccb81999dec2d0377abf32ec1a119242758d07bf00181499000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000340000000000000020b1085f51dca5db33c47a89741875cac8381fb76255c844f57218f35af1bf16d70000000000000006000000000000000100000000000000010000000000000020125da266de270d2c33ef5e2bd07b5513533ee2e453fce963fec68694d7a61bdd0000000000000001000000000000000100000000000000203e9e1794e3ab8bcb877795560281d553e8d564cc0d8995ad218383984a27419800000000000000010000000000000000000000000000002033e7006db572644806c9d21830fc317d488d3eb37ab16177312161c83c96782e0000000000000001000000000000000100000000000000204704b2369bbb85eb35028b1dca7bb4fdd6aebd6e5749c4e94ddc7511a99d762e000000000000000100000000000000000000000000000020834d4a08f12e109ba3842642aba51324307db48367fe911f6f90ea4c90f658af0000000000000001000000000000000000000000000000207c67007d1fe0f96bbda4b5e185423089336d1cb10f182b4f215ab61de1244ce2000000000000003400000000000000201f11d8db9f8f046ea74a004d9dd42d4dea28e0100d61ede45abee7103ba654c10000000000000006000000000000000100000000000000010000000000000020bd4acfc4319c5be81ae721a8b143458e07b339aabc33824aeaadca64402079fa0000000000000001000000000000000100000000000000204a5b2a11f8cc938e3d0997b8019e221c2da65049f3b278610fa9d8ac32e1998f000000000000000100000000000000000000000000000020d07b5012f25eb800ad0beb08df3a44b29e04313e7734d3f8b8d179deee3be79a000000000000000100000000000000010000000000000020ee29b766915a0b2bb8b3eed1a190e616f1054d1263bae454ff4b2c87c790d9f2000000000000000100000000000000000000000000000020e46de27951e7cf912bad485c8e6567eda41b075c193f312ae312f934169d3978000000000000000100000000000000000000000000000020776fdc47efd88688ac113bb1881cf677ca1982d4e3ef8e4a8fa078fd87e62b3500000000000000340000000000000020fdd5e98d14f086aed4402c7c5d7f9bb681a6a9987b228b07e5d351a0f6c4cb18000000000000000600000000000000010000000000000001000000000000002030260a74f1fb2c2aeb13c96d1d2b3802bda84da97829393537247297234b964a0000000000000001000000000000000100000000000000208e95ab803c0030b813a2496f4d8a902ce53652d50f4cffc6c5b46000ec6a9314000000000000000100000000000000000000000000000020239bbe1e783db329778bbdd317b229e92841e96b97e289b59ab7e65b7f8c697d000000000000000100000000000000010000000000000020fb4a60a9e1d778020d976922d17f02aa13de150f1ef9e070600c13e05e0cd3360000000000000001000000000000000000000000000000207b1b03ed11100190943c68158379b874102af65549a0dc5eb9bee52b887a1e5b000000000000000100000000000000000000000000000020d63d9a19d2137b9be65f2f25502201c7f9c387cef31172c7fdf5ff74b4096c1300000000000000340000000000000020591ce0d77f30ea2d9eb2548b982f4fbcd6d8ee9a7ba21469c0cbc14878c59a9d0000000000000006000000000000000100000000000000010000000000000020119a57ed2fb3e2a79fc62ae66ca6582afd74176dcf3ad7570996ba4bdbf89921000000000000000100000000000000010000000000000020445c5a1265a05ae3066b3916cf28f84c966cd53c4deebf7b241e510336742355000000000000000100000000000000000000000000000020e2e289844f36439c5d859f51d56bbc4b13a514529349a51a6cc18a699b5c2cb80000000000000001000000000000000100000000000000206fd0c241d082dddc763476a7c884f0f9949e0d0c60b662c9718f6a9990d86306000000000000000100000000000000000000000000000020c32a41143c0bed20f51da2399f8c92440338c8c1a4f71184e98747946cf91d0d0000000000000001000000000000000000000000000000204110fc1951a8a0fc0a01512a8ba18e80f5fc1f4c8d470bd4f1af5f31bb166374000000000000005000000000000000230000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000000000000000000020c69f72107a0931ceb999886d209eb055503f997e19af49114f790d82869d6d5800000000000000010000000000000000000000000000002040a1b0ec891e3e4b29768f5b3776dffb7b731cc1d7014627cda9eaf19dfc222f00000000000000010000000000000001000000000000002003aa62736754773d1c1e34df70c48d106cfded69c708d9db1697cb4ee01930810000000000000001000000000000000100000000000000208624d0e8f8f0956a5d5c260ed559f1345f56b8f1c4c72837362dd95c8e252fb6000000000000000100000000000000010000000000000020ff95de509db243842ef124b7d5e65df0de205aca3d5041e84169d6a6270c1ebf000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000000300000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000000000000000000020f8b7eab045f938fabc0d7536e613ebf49334ffa4569eedb3a9d5b5e2c57cd49e000000000000000100000000000000000000000000000020f968296ed3e4f05216b970e7ac1352937342fe8f6a0ba8eac7f860c936eaa26d0000000000000001000000000000000100000000000000202efaefe650b6a09bb0544fc75df2049d3eaff975d8a83bc4ddd2ed7432989dde000000000000000100000000000000010000000000000020386031671100ec0f3f461144754f53d671c227627b4c8756a9081748efae4628000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c00000000000000050000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a78499000000000000000600000000000000010000000000000000000000000000002031f8e0846340f56abfcdf7952eb462bcf6e6e93f4a9013c014c73c2c6811b9e5000000000000000100000000000000010000000000000020aeab55260b1ba548fbd8487d41f49a25f2f2f4019762475a302533417615068f000000000000000100000000000000000000000000000020db2d182450d1582bc458538f3de6566903c4265e6332b188c4676a669ba9c1860000000000000001000000000000000100000000000000206e7ab1781b04aa6141dc2e5ec57fe06ea8152a892f0a879bbbe7e9fdd5844dde0000000000000001000000000000000100000000000000200601bcff1f6a53d3ccc41814e1b94ccb9988c71c56c5e82808399710863fd6aa000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000000500000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af000000000000000500000000000000010000000000000000000000000000002045a5473b6af3199d813528111cc4e1a1b4669a7883957518fe325c64ece3ce5f00000000000000010000000000000001000000000000002080c3cda29133b887375ea990180aa867c5d7c7d49f94e022701578b2590c925a00000000000000010000000000000000000000000000002067f7ad1fd0876288f08b31df54e7360964190721667ca03b23af092d0988cd8b000000000000000100000000000000010000000000000020386031671100ec0f3f461144754f53d671c227627b4c8756a9081748efae4628000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c00000000000000350000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a78499000000000000000600000000000000010000000000000000000000000000002045acf8f74ba36b9b4d335cee401637c55d2283bac744a0b01f4dbbe853436463000000000000000100000000000000010000000000000020d6ceaac07c67b0a64c32369a1ea6e4166caf4b1a9150fa9ea43382fa85666468000000000000000100000000000000000000000000000020626bd02f932e3615391bee938a0412ecd1cd2272cfae1e47459923ef7178acef0000000000000001000000000000000100000000000000208979ca75873db793654bcd0bbd1c0a1b39715385670b7e9dbae4aebbec52741c00000000000000010000000000000000000000000000002022ba410a643a755f99923873c2476ceb16eb3912cee23c769c03e3a3dfb8fdb6000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000001500000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000000000000000000020ef3bd30345aeca9ca4f5c0cc8f6aedcf661ef74b3f9951f0801f7892662a92c4000000000000000100000000000000010000000000000020f9d0417bf9c22af0fd7c868a9d85a01ec82f2143ba064a0a099f6035f93505250000000000000001000000000000000000000000000000200972dca85cd3134096a5bde319d17a7ab979d0601af82b3df452fefb94b18ac10000000000000001000000000000000100000000000000200977b8e1fd7874daaddf632b94685d29e83f5319019eeb81f47e898b13eb460900000000000000010000000000000000000000000000002077c9c9aec58a87ab556bdacd713816fab67361b53271400fea3b965772a212d100000000000000310000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000000000000000000020e0597d120abf0a6e2737ce63359387104d37f3ad9bffd46f56e0895ba29fabba00000000000000010000000000000001000000000000002022bd49adc4089daadb82d2b8890d9211639ed30654c204fd632819dd71ebd90b00000000000000010000000000000001000000000000002032e5e8cdbc4e6649fb68d951f01f7b4ddc33c53c95e2849b11cdea3452b290280000000000000001000000000000000100000000000000208979ca75873db793654bcd0bbd1c0a1b39715385670b7e9dbae4aebbec52741c00000000000000010000000000000000000000000000002022ba410a643a755f99923873c2476ceb16eb3912cee23c769c03e3a3dfb8fdb6000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000001100000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000000000000000000020f7df057732d020bd297e289b4e02deed9da08858b6bda0193b5de737425239b600000000000000010000000000000001000000000000002010dfd10688b4b565aefb4bc19700ec82a9d85b0444f5835048d093a690402a74000000000000000100000000000000010000000000000020b05c8a4918c2b948ea22ac1ea9e8788f6b4dab63bb0d3072af2ab349c7d7407c0000000000000001000000000000000100000000000000200977b8e1fd7874daaddf632b94685d29e83f5319019eeb81f47e898b13eb460900000000000000010000000000000000000000000000002077c9c9aec58a87ab556bdacd713816fab67361b53271400fea3b965772a212d1000000000000002b0000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a7849900000000000000060000000000000001000000000000000000000000000000204b04f7909eabf1952ba069a517915419e5c8959749c6f202e42de1fa9bf4c1bf00000000000000010000000000000000000000000000002033f0d99e7b69aeae232685fab6ec8b220d0016dc7d72e1506931857484633a6f000000000000000100000000000000010000000000000020868ae6d8928dd7afd1e2e7b535bad43f09eb31d51303d76bfca0cb316a54f5af000000000000000100000000000000000000000000000020a63bb163c7044092808beeaff40be31a89a0ee9533dcef2e6c738b4b6979d59c000000000000000100000000000000010000000000000020ff95de509db243842ef124b7d5e65df0de205aca3d5041e84169d6a6270c1ebf000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000000b00000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af00000000000000050000000000000001000000000000000000000000000000206767ff0226bb716540dfa49937c02dd3c18b86a8785f96ce20996a6f93ea18690000000000000001000000000000000000000000000000200f1e94db735c359c097ef7a2e820fba3bcf38bdccd8dfbd09e0efc7894b0ec5b000000000000000100000000000000010000000000000020bb30daaa93d8088060f02ea33b18e11aed7d16099147f6b8e5f593044d4cb4b4000000000000000100000000000000000000000000000020e10154432454cbafd56b1d3571f2843202f86b982be342deddd0566e03beb9ad000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c00000000000000130000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000000000000000000020684268d0778744420eca0b77ce0ddbebb45c7451c586318eea998309982b779c0000000000000001000000000000000000000000000000207adb99130d34166df15fc30b818fbbd8c519bf5f1325eb51f08f0ce8c58ce3e7000000000000000100000000000000010000000000000020594598b94b3a250a7dbb87154c780574f287309aa45c3818c0470aa50fb5a5c40000000000000001000000000000000100000000000000207702d029a3b5fdf2fa631e6d8ef28554a2b7d70da56fee22828557afd1f056040000000000000001000000000000000000000000000000209ff4bc626f01cd895eacc32ee783bc5849b39341a7454cd58013ff7f06dedcef000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000001300000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af00000000000000050000000000000001000000000000000000000000000000204682779cbc997ff03256f1898f31115c082dc28ee7afc067e03f29abbc44c034000000000000000100000000000000000000000000000020f02c41ae560209644e2346dad2585347737796eb48c9141ba7295e57e3fc999c000000000000000100000000000000010000000000000020b05c8a4918c2b948ea22ac1ea9e8788f6b4dab63bb0d3072af2ab349c7d7407c0000000000000001000000000000000100000000000000200977b8e1fd7874daaddf632b94685d29e83f5319019eeb81f47e898b13eb460900000000000000010000000000000000000000000000002077c9c9aec58a87ab556bdacd713816fab67361b53271400fea3b965772a212d100000000000000290000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000000000000000000020d170d00dc89cea59bdb2cdad253b48bd5994ad2e0d93f24722737a2fbf72b0d00000000000000001000000000000000100000000000000209c46e22db1efdc1c556fa27e42e1de6cfba132d5e7937cde7141c527099745fa000000000000000100000000000000010000000000000020868ae6d8928dd7afd1e2e7b535bad43f09eb31d51303d76bfca0cb316a54f5af000000000000000100000000000000000000000000000020a63bb163c7044092808beeaff40be31a89a0ee9533dcef2e6c738b4b6979d59c000000000000000100000000000000010000000000000020ff95de509db243842ef124b7d5e65df0de205aca3d5041e84169d6a6270c1ebf000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000000900000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af00000000000000050000000000000001000000000000000000000000000000201703619e4686c3babe4c017d34bf800c1478a6876e01a8831278359afed2f356000000000000000100000000000000010000000000000020e06052f87b3f12b879dbbda42c74687a41e5c4eccd9e9718dc16d31887760491000000000000000100000000000000010000000000000020bb30daaa93d8088060f02ea33b18e11aed7d16099147f6b8e5f593044d4cb4b4000000000000000100000000000000000000000000000020e10154432454cbafd56b1d3571f2843202f86b982be342deddd0566e03beb9ad000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c00000000000000350000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a78499000000000000000600000000000000010000000000000000000000000000002045acf8f74ba36b9b4d335cee401637c55d2283bac744a0b01f4dbbe853436463000000000000000100000000000000010000000000000020d6ceaac07c67b0a64c32369a1ea6e4166caf4b1a9150fa9ea43382fa85666468000000000000000100000000000000000000000000000020626bd02f932e3615391bee938a0412ecd1cd2272cfae1e47459923ef7178acef0000000000000001000000000000000100000000000000208979ca75873db793654bcd0bbd1c0a1b39715385670b7e9dbae4aebbec52741c00000000000000010000000000000000000000000000002022ba410a643a755f99923873c2476ceb16eb3912cee23c769c03e3a3dfb8fdb6000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000001500000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000000000000000000020ef3bd30345aeca9ca4f5c0cc8f6aedcf661ef74b3f9951f0801f7892662a92c4000000000000000100000000000000010000000000000020f9d0417bf9c22af0fd7c868a9d85a01ec82f2143ba064a0a099f6035f93505250000000000000001000000000000000000000000000000200972dca85cd3134096a5bde319d17a7ab979d0601af82b3df452fefb94b18ac10000000000000001000000000000000100000000000000200977b8e1fd7874daaddf632b94685d29e83f5319019eeb81f47e898b13eb460900000000000000010000000000000000000000000000002077c9c9aec58a87ab556bdacd713816fab67361b53271400fea3b965772a212d100000000000000070000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000000000000000000020b7afd0d292553767666fdaf25c467fae22f369c30f81d0dd85e41aded585dfbe0000000000000001000000000000000000000000000000203a20386f35f9e243ab1628db1f33726be2a9d88947d54dfe10c93ad79b2e451b000000000000000100000000000000000000000000000020db2d182450d1582bc458538f3de6566903c4265e6332b188c4676a669ba9c1860000000000000001000000000000000100000000000000206e7ab1781b04aa6141dc2e5ec57fe06ea8152a892f0a879bbbe7e9fdd5844dde0000000000000001000000000000000100000000000000200601bcff1f6a53d3ccc41814e1b94ccb9988c71c56c5e82808399710863fd6aa000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000000700000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af00000000000000050000000000000001000000000000000000000000000000209755aebdf7cde926a60aee0143b988330b7a9ed3fab9b66277dae5ac31d08c0f000000000000000100000000000000000000000000000020e2d92c3f50b59d68948d274148c7da36c5eaa88d4df8f8b769ee731e260ae00300000000000000010000000000000000000000000000002067f7ad1fd0876288f08b31df54e7360964190721667ca03b23af092d0988cd8b000000000000000100000000000000010000000000000020386031671100ec0f3f461144754f53d671c227627b4c8756a9081748efae4628000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c00000000000000200000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a7849900000000000000060000000000000001000000000000000100000000000000207317ae14d3a36be1d8705cb1373c7338ce3d188069ec0db7cbdd4167f42c40f4000000000000000100000000000000010000000000000020c31527a9ceb5ecd3ac65e93fce6271e33f08761cc90829289fde86a3ac30a6cf00000000000000010000000000000001000000000000002003aa62736754773d1c1e34df70c48d106cfded69c708d9db1697cb4ee01930810000000000000001000000000000000100000000000000208624d0e8f8f0956a5d5c260ed559f1345f56b8f1c4c72837362dd95c8e252fb6000000000000000100000000000000010000000000000020ff95de509db243842ef124b7d5e65df0de205aca3d5041e84169d6a6270c1ebf000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000000000000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000010000000000000020f351796e9955077f966b88e23e29281aac4d810067c843951e489e267c8bcd82000000000000000100000000000000010000000000000020b1240eb0ef003415e82c3b6c90d732666ed1da3c7e6ce7ead2f7217d059dba9d0000000000000001000000000000000100000000000000202efaefe650b6a09bb0544fc75df2049d3eaff975d8a83bc4ddd2ed7432989dde000000000000000100000000000000010000000000000020386031671100ec0f3f461144754f53d671c227627b4c8756a9081748efae4628000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c000000000000002a0000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a7849900000000000000060000000000000001000000000000000100000000000000203dc2569473c288dbc8d9496daf21ee02ff24448382bd02c16972f1817dc0062200000000000000010000000000000000000000000000002033f0d99e7b69aeae232685fab6ec8b220d0016dc7d72e1506931857484633a6f000000000000000100000000000000010000000000000020868ae6d8928dd7afd1e2e7b535bad43f09eb31d51303d76bfca0cb316a54f5af000000000000000100000000000000000000000000000020a63bb163c7044092808beeaff40be31a89a0ee9533dcef2e6c738b4b6979d59c000000000000000100000000000000010000000000000020ff95de509db243842ef124b7d5e65df0de205aca3d5041e84169d6a6270c1ebf000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000000a00000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af00000000000000050000000000000001000000000000000100000000000000208715b7a270c79459ceb828f7973e6a1f96b9d1ebefa15faa22e43c65fc9495fa0000000000000001000000000000000000000000000000200f1e94db735c359c097ef7a2e820fba3bcf38bdccd8dfbd09e0efc7894b0ec5b000000000000000100000000000000010000000000000020bb30daaa93d8088060f02ea33b18e11aed7d16099147f6b8e5f593044d4cb4b4000000000000000100000000000000000000000000000020e10154432454cbafd56b1d3571f2843202f86b982be342deddd0566e03beb9ad000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c00000000000000280000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a7849900000000000000060000000000000001000000000000000100000000000000200de76128d7a385bc1af6ecf71de92c322ee92ce0a67336d1382df9dd31359c610000000000000001000000000000000100000000000000209c46e22db1efdc1c556fa27e42e1de6cfba132d5e7937cde7141c527099745fa000000000000000100000000000000010000000000000020868ae6d8928dd7afd1e2e7b535bad43f09eb31d51303d76bfca0cb316a54f5af000000000000000100000000000000000000000000000020a63bb163c7044092808beeaff40be31a89a0ee9533dcef2e6c738b4b6979d59c000000000000000100000000000000010000000000000020ff95de509db243842ef124b7d5e65df0de205aca3d5041e84169d6a6270c1ebf000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000000800000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000010000000000000020b942405a493aa5d9a83fbe5cc0faa76de9acfc3510805056973fe7c811921596000000000000000100000000000000010000000000000020e06052f87b3f12b879dbbda42c74687a41e5c4eccd9e9718dc16d31887760491000000000000000100000000000000010000000000000020bb30daaa93d8088060f02ea33b18e11aed7d16099147f6b8e5f593044d4cb4b4000000000000000100000000000000000000000000000020e10154432454cbafd56b1d3571f2843202f86b982be342deddd0566e03beb9ad000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c00000000000000210000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a78499000000000000000600000000000000010000000000000000000000000000002016caa67e55fc9e37e33ea22590d5a9951b3e032319a563d90a875c84cadeb8ac000000000000000100000000000000010000000000000020c31527a9ceb5ecd3ac65e93fce6271e33f08761cc90829289fde86a3ac30a6cf00000000000000010000000000000001000000000000002003aa62736754773d1c1e34df70c48d106cfded69c708d9db1697cb4ee01930810000000000000001000000000000000100000000000000208624d0e8f8f0956a5d5c260ed559f1345f56b8f1c4c72837362dd95c8e252fb6000000000000000100000000000000010000000000000020ff95de509db243842ef124b7d5e65df0de205aca3d5041e84169d6a6270c1ebf000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000000100000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000000000000000000020fbd0afd6a2565130a294eafa826bb9368a0f904fe9a1baa7dbd9149986dda23f000000000000000100000000000000010000000000000020b1240eb0ef003415e82c3b6c90d732666ed1da3c7e6ce7ead2f7217d059dba9d0000000000000001000000000000000100000000000000202efaefe650b6a09bb0544fc75df2049d3eaff975d8a83bc4ddd2ed7432989dde000000000000000100000000000000010000000000000020386031671100ec0f3f461144754f53d671c227627b4c8756a9081748efae4628000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c000000000000003a0000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000010000000000000020a0d83f22dcbf8ad067ac2da0566aea152a7399d38783ff114aa0b0f78363c58f000000000000000100000000000000000000000000000020f5cbdd53f6c23c7e894fd1c2a9762604c89fecfd9e31133a7bb6bac53860ea3d000000000000000100000000000000010000000000000020df77e3e26895b78c42e249a07a5acd406c918c2e048cdaa24118466eb28192fd000000000000000100000000000000000000000000000020a477c4ad9d269637cd16237172285c3b10661892f40abbafde1caebfbdd674e800000000000000010000000000000000000000000000002022ba410a643a755f99923873c2476ceb16eb3912cee23c769c03e3a3dfb8fdb6000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000001a00000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000010000000000000020e81726a0238670e9eda67e75c96ab68fdec138b1e78736eaf7187d265eb805d400000000000000010000000000000000000000000000002006cbba3ef60444526fb2d30e77ebee7cfc92bca63f67e84108c47175b0cf761500000000000000010000000000000001000000000000002077dab7f709460e04a57b907618d99f28b43281fc3f6efb51d613dde3be607f470000000000000001000000000000000000000000000000208431414d63476460c32bbfa4cb99ee87313f878d671a131aa704e34b140597f600000000000000010000000000000000000000000000002077c9c9aec58a87ab556bdacd713816fab67361b53271400fea3b965772a212d100000000000000040000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a7849900000000000000060000000000000001000000000000000100000000000000201b503f2904905dac135d63612f9c3ec56c77a6c3454072735ad42718ecf59d7b000000000000000100000000000000010000000000000020aeab55260b1ba548fbd8487d41f49a25f2f2f4019762475a302533417615068f000000000000000100000000000000000000000000000020db2d182450d1582bc458538f3de6566903c4265e6332b188c4676a669ba9c1860000000000000001000000000000000100000000000000206e7ab1781b04aa6141dc2e5ec57fe06ea8152a892f0a879bbbe7e9fdd5844dde0000000000000001000000000000000100000000000000200601bcff1f6a53d3ccc41814e1b94ccb9988c71c56c5e82808399710863fd6aa000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000000400000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000010000000000000020ec1fb2e5f6ff40388c2b569bb0d8d544fba1c15c8ede359ca3328cd7314f6ed100000000000000010000000000000001000000000000002080c3cda29133b887375ea990180aa867c5d7c7d49f94e022701578b2590c925a00000000000000010000000000000000000000000000002067f7ad1fd0876288f08b31df54e7360964190721667ca03b23af092d0988cd8b000000000000000100000000000000010000000000000020386031671100ec0f3f461144754f53d671c227627b4c8756a9081748efae4628000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c000000000000002a0000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a7849900000000000000060000000000000001000000000000000100000000000000203dc2569473c288dbc8d9496daf21ee02ff24448382bd02c16972f1817dc0062200000000000000010000000000000000000000000000002033f0d99e7b69aeae232685fab6ec8b220d0016dc7d72e1506931857484633a6f000000000000000100000000000000010000000000000020868ae6d8928dd7afd1e2e7b535bad43f09eb31d51303d76bfca0cb316a54f5af000000000000000100000000000000000000000000000020a63bb163c7044092808beeaff40be31a89a0ee9533dcef2e6c738b4b6979d59c000000000000000100000000000000010000000000000020ff95de509db243842ef124b7d5e65df0de205aca3d5041e84169d6a6270c1ebf000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000000a00000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af00000000000000050000000000000001000000000000000100000000000000208715b7a270c79459ceb828f7973e6a1f96b9d1ebefa15faa22e43c65fc9495fa0000000000000001000000000000000000000000000000200f1e94db735c359c097ef7a2e820fba3bcf38bdccd8dfbd09e0efc7894b0ec5b000000000000000100000000000000010000000000000020bb30daaa93d8088060f02ea33b18e11aed7d16099147f6b8e5f593044d4cb4b4000000000000000100000000000000000000000000000020e10154432454cbafd56b1d3571f2843202f86b982be342deddd0566e03beb9ad000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c000000000000001e0000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a78499000000000000000600000000000000010000000000000001000000000000002089416afbd53e0e7d8d3c46ff431b1c003bef3db0eabde5ca27ddda3fe516218d0000000000000001000000000000000000000000000000206aa301a2a0105f9d3b3f3bd424eb22d3f0bc486083c94b124ab6a03a10c27fcd000000000000000100000000000000000000000000000020c90960d37d8b1147ae0b0e112e4e27c594c3d797c9fcb12d6c7adf455fa123c8000000000000000100000000000000000000000000000020d30b4459edd0f8e82197858ef6018b7151a51fe3ca9eebf3bf63bed2a4bfaaec0000000000000001000000000000000000000000000000209ff4bc626f01cd895eacc32ee783bc5849b39341a7454cd58013ff7f06dedcef000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000001e00000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000010000000000000020bf12dd95e0eff7e456ea833ff6479073931e62179e5a86483b0adf9e20249ce3000000000000000100000000000000000000000000000020478d821645fbfe9f725c7fd97dca405fc99ed284eba10f8e3b559999e9e489f00000000000000001000000000000000000000000000000209b03c94b2e686f76fd84b8a686b26899fbfc903226b5db0de8cac907fa19a6c50000000000000001000000000000000000000000000000208431414d63476460c32bbfa4cb99ee87313f878d671a131aa704e34b140597f600000000000000010000000000000000000000000000002077c9c9aec58a87ab556bdacd713816fab67361b53271400fea3b965772a212d1000000000000000c0000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a7849900000000000000060000000000000001000000000000000100000000000000202db5aa2a781574e743dc109773ec531fd8a3c997ffec185d1c76a15214ce3544000000000000000100000000000000010000000000000020dbf20232f427bcca4f527db037ffeadc7bca802d147a6d7223f08d91354cd3340000000000000001000000000000000000000000000000208e2d2a4d3708adf7b5a83578dc77147f05a5ebe38dc97e3816232238e9ae8e1a000000000000000100000000000000000000000000000020cc623722bf54ed0416db646462b15f1a451a3bf3db055f6e9aec054eab4d9f610000000000000001000000000000000100000000000000200601bcff1f6a53d3ccc41814e1b94ccb9988c71c56c5e82808399710863fd6aa000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000000c00000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000010000000000000020532a25ae288e637532a5b710a80d3a5fd0c2b72c7cc54b4c53042c755db78e5600000000000000010000000000000001000000000000002046a1ee521b5d9c73029ddb5997428cf70a0191389b1fc9bb76cfa7b5e1c27488000000000000000100000000000000000000000000000020db7949f733391c69265c151180caa41295298ce45472debc910e360746e782b7000000000000000100000000000000000000000000000020e10154432454cbafd56b1d3571f2843202f86b982be342deddd0566e03beb9ad000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c000000000000001a0000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a7849900000000000000060000000000000001000000000000000100000000000000200ef0313b8bbc3db28d343d3fcc649d9b717d3e900183b64f759f24181daec697000000000000000100000000000000000000000000000020f25e661653f019ebf5e532993827043b29123575c00856975d25d3065af1918b0000000000000001000000000000000100000000000000202f0fe0ac73f3d4591cf755985cbd8471c9c5ec342d32fccec68fb10abb9a1ca9000000000000000100000000000000000000000000000020d30b4459edd0f8e82197858ef6018b7151a51fe3ca9eebf3bf63bed2a4bfaaec0000000000000001000000000000000000000000000000209ff4bc626f01cd895eacc32ee783bc5849b39341a7454cd58013ff7f06dedcef000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000001a00000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000010000000000000020e81726a0238670e9eda67e75c96ab68fdec138b1e78736eaf7187d265eb805d400000000000000010000000000000000000000000000002006cbba3ef60444526fb2d30e77ebee7cfc92bca63f67e84108c47175b0cf761500000000000000010000000000000001000000000000002077dab7f709460e04a57b907618d99f28b43281fc3f6efb51d613dde3be607f470000000000000001000000000000000000000000000000208431414d63476460c32bbfa4cb99ee87313f878d671a131aa704e34b140597f600000000000000010000000000000000000000000000002077c9c9aec58a87ab556bdacd713816fab67361b53271400fea3b965772a212d1000000000000001b0000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000000000000000000020b61aa5d013745285269ed0d744d6b0f27ba21ce966b4050c66c59ccfb35ad3df000000000000000100000000000000000000000000000020f25e661653f019ebf5e532993827043b29123575c00856975d25d3065af1918b0000000000000001000000000000000100000000000000202f0fe0ac73f3d4591cf755985cbd8471c9c5ec342d32fccec68fb10abb9a1ca9000000000000000100000000000000000000000000000020d30b4459edd0f8e82197858ef6018b7151a51fe3ca9eebf3bf63bed2a4bfaaec0000000000000001000000000000000000000000000000209ff4bc626f01cd895eacc32ee783bc5849b39341a7454cd58013ff7f06dedcef000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000001b00000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000000000000000000020491133f276bfa6308677243d525c14607ee3752986a84db09dbb28a66bb8104300000000000000010000000000000000000000000000002006cbba3ef60444526fb2d30e77ebee7cfc92bca63f67e84108c47175b0cf761500000000000000010000000000000001000000000000002077dab7f709460e04a57b907618d99f28b43281fc3f6efb51d613dde3be607f470000000000000001000000000000000000000000000000208431414d63476460c32bbfa4cb99ee87313f878d671a131aa704e34b140597f600000000000000010000000000000000000000000000002077c9c9aec58a87ab556bdacd713816fab67361b53271400fea3b965772a212d1000000000000000a0000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a7849900000000000000060000000000000001000000000000000100000000000000205b36cbb5c039e5afaa6f865376af325322c58dcb16e98912c3f50b984f65e641000000000000000100000000000000000000000000000020119e382fe07bd0b0b7ab027688e9c0fd4d34273ae0361723f6be6074d90a83ff000000000000000100000000000000010000000000000020463c99343489734cf401d150a84448067c0aeb8d6cf72cd2a818b27cb2be3745000000000000000100000000000000000000000000000020cc623722bf54ed0416db646462b15f1a451a3bf3db055f6e9aec054eab4d9f610000000000000001000000000000000100000000000000200601bcff1f6a53d3ccc41814e1b94ccb9988c71c56c5e82808399710863fd6aa000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000000a00000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af00000000000000050000000000000001000000000000000100000000000000208715b7a270c79459ceb828f7973e6a1f96b9d1ebefa15faa22e43c65fc9495fa0000000000000001000000000000000000000000000000200f1e94db735c359c097ef7a2e820fba3bcf38bdccd8dfbd09e0efc7894b0ec5b000000000000000100000000000000010000000000000020bb30daaa93d8088060f02ea33b18e11aed7d16099147f6b8e5f593044d4cb4b4000000000000000100000000000000000000000000000020e10154432454cbafd56b1d3571f2843202f86b982be342deddd0566e03beb9ad000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c00000000000000080000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000010000000000000020f80afc89bc5aa56764e38434471ff483aa4680533b495ab8c6ebac4df68fb00b000000000000000100000000000000010000000000000020bbbb2d4bf7097a3ba36b3cacf5be82b073e3b469940aa64efda7ae5d64899179000000000000000100000000000000010000000000000020463c99343489734cf401d150a84448067c0aeb8d6cf72cd2a818b27cb2be3745000000000000000100000000000000000000000000000020cc623722bf54ed0416db646462b15f1a451a3bf3db055f6e9aec054eab4d9f610000000000000001000000000000000100000000000000200601bcff1f6a53d3ccc41814e1b94ccb9988c71c56c5e82808399710863fd6aa000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000000800000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000010000000000000020b942405a493aa5d9a83fbe5cc0faa76de9acfc3510805056973fe7c811921596000000000000000100000000000000010000000000000020e06052f87b3f12b879dbbda42c74687a41e5c4eccd9e9718dc16d31887760491000000000000000100000000000000010000000000000020bb30daaa93d8088060f02ea33b18e11aed7d16099147f6b8e5f593044d4cb4b4000000000000000100000000000000000000000000000020e10154432454cbafd56b1d3571f2843202f86b982be342deddd0566e03beb9ad000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c00000000000000100000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a78499000000000000000600000000000000010000000000000001000000000000002084bab0ea852d74ce5f1205213453c0957786ea965866d51487913e67e4f896dc000000000000000100000000000000010000000000000020065982e1c28a38ce051ec2a164f79c3b723dec2d4eb0e70a2b4cd46cd5728609000000000000000100000000000000010000000000000020594598b94b3a250a7dbb87154c780574f287309aa45c3818c0470aa50fb5a5c40000000000000001000000000000000100000000000000207702d029a3b5fdf2fa631e6d8ef28554a2b7d70da56fee22828557afd1f056040000000000000001000000000000000000000000000000209ff4bc626f01cd895eacc32ee783bc5849b39341a7454cd58013ff7f06dedcef000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000001000000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af00000000000000050000000000000001000000000000000100000000000000203b285a0a467861b21a71c39683ca0b1b668fc01fce6b22e72e2d286d7673099900000000000000010000000000000001000000000000002010dfd10688b4b565aefb4bc19700ec82a9d85b0444f5835048d093a690402a74000000000000000100000000000000010000000000000020b05c8a4918c2b948ea22ac1ea9e8788f6b4dab63bb0d3072af2ab349c7d7407c0000000000000001000000000000000100000000000000200977b8e1fd7874daaddf632b94685d29e83f5319019eeb81f47e898b13eb460900000000000000010000000000000000000000000000002077c9c9aec58a87ab556bdacd713816fab67361b53271400fea3b965772a212d100000000000000240000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000010000000000000020e0294de28238b6db0ec334bb5cd67cd93cdddaf830e1076b4c2405189a84cd140000000000000001000000000000000100000000000000202b13b1b4e6d6676e1fa9614c609e0a07e0564b06a8ed3e3e5f1d02071fa2820e000000000000000100000000000000000000000000000020b698bdf3c4912a1d7d569be7f91561b5868f204fdd48e497c12d6ab95b21a2ac0000000000000001000000000000000100000000000000208624d0e8f8f0956a5d5c260ed559f1345f56b8f1c4c72837362dd95c8e252fb6000000000000000100000000000000010000000000000020ff95de509db243842ef124b7d5e65df0de205aca3d5041e84169d6a6270c1ebf000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000000400000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000010000000000000020ec1fb2e5f6ff40388c2b569bb0d8d544fba1c15c8ede359ca3328cd7314f6ed100000000000000010000000000000001000000000000002080c3cda29133b887375ea990180aa867c5d7c7d49f94e022701578b2590c925a00000000000000010000000000000000000000000000002067f7ad1fd0876288f08b31df54e7360964190721667ca03b23af092d0988cd8b000000000000000100000000000000010000000000000020386031671100ec0f3f461144754f53d671c227627b4c8756a9081748efae4628000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c00000000000000230000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000000000000000000020c69f72107a0931ceb999886d209eb055503f997e19af49114f790d82869d6d5800000000000000010000000000000000000000000000002040a1b0ec891e3e4b29768f5b3776dffb7b731cc1d7014627cda9eaf19dfc222f00000000000000010000000000000001000000000000002003aa62736754773d1c1e34df70c48d106cfded69c708d9db1697cb4ee01930810000000000000001000000000000000100000000000000208624d0e8f8f0956a5d5c260ed559f1345f56b8f1c4c72837362dd95c8e252fb6000000000000000100000000000000010000000000000020ff95de509db243842ef124b7d5e65df0de205aca3d5041e84169d6a6270c1ebf000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000000300000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000000000000000000020f8b7eab045f938fabc0d7536e613ebf49334ffa4569eedb3a9d5b5e2c57cd49e000000000000000100000000000000000000000000000020f968296ed3e4f05216b970e7ac1352937342fe8f6a0ba8eac7f860c936eaa26d0000000000000001000000000000000100000000000000202efaefe650b6a09bb0544fc75df2049d3eaff975d8a83bc4ddd2ed7432989dde000000000000000100000000000000010000000000000020386031671100ec0f3f461144754f53d671c227627b4c8756a9081748efae4628000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c00000000000000020000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000010000000000000020dceb00b54eef012562c589cbd1933da29d30aff528adacfd8f01778a7527e0c20000000000000001000000000000000000000000000000201969cd6e2bab5d91eca12ec6d02a6050223ae57f8aff97b69322b3f1e1e9a2b7000000000000000100000000000000010000000000000020444f614d3d491d4e2c08a3f52820366e5f3a1526c5d58d358fb1e58633e4d20b0000000000000001000000000000000100000000000000206e7ab1781b04aa6141dc2e5ec57fe06ea8152a892f0a879bbbe7e9fdd5844dde0000000000000001000000000000000100000000000000200601bcff1f6a53d3ccc41814e1b94ccb9988c71c56c5e82808399710863fd6aa000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000000200000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000010000000000000020dad9259c70e9b671ce33f839c0657303f4a84f974a65e73e0da92c83820ada0b000000000000000100000000000000000000000000000020f968296ed3e4f05216b970e7ac1352937342fe8f6a0ba8eac7f860c936eaa26d0000000000000001000000000000000100000000000000202efaefe650b6a09bb0544fc75df2049d3eaff975d8a83bc4ddd2ed7432989dde000000000000000100000000000000010000000000000020386031671100ec0f3f461144754f53d671c227627b4c8756a9081748efae4628000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c00000000000000030000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a78499000000000000000600000000000000010000000000000000000000000000002099cbfae788bb21e98f530fc6189351755786a874126a3e753b8eba95cd7ff4e80000000000000001000000000000000000000000000000201969cd6e2bab5d91eca12ec6d02a6050223ae57f8aff97b69322b3f1e1e9a2b7000000000000000100000000000000010000000000000020444f614d3d491d4e2c08a3f52820366e5f3a1526c5d58d358fb1e58633e4d20b0000000000000001000000000000000100000000000000206e7ab1781b04aa6141dc2e5ec57fe06ea8152a892f0a879bbbe7e9fdd5844dde0000000000000001000000000000000100000000000000200601bcff1f6a53d3ccc41814e1b94ccb9988c71c56c5e82808399710863fd6aa000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000000300000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000000000000000000020f8b7eab045f938fabc0d7536e613ebf49334ffa4569eedb3a9d5b5e2c57cd49e000000000000000100000000000000000000000000000020f968296ed3e4f05216b970e7ac1352937342fe8f6a0ba8eac7f860c936eaa26d0000000000000001000000000000000100000000000000202efaefe650b6a09bb0544fc75df2049d3eaff975d8a83bc4ddd2ed7432989dde000000000000000100000000000000010000000000000020386031671100ec0f3f461144754f53d671c227627b4c8756a9081748efae4628000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c00000000000000360000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000010000000000000020ddc997859234984e53e91953405116cb8ad48db38b60dc8e3206ff9b264ecd46000000000000000100000000000000000000000000000020f1ca9dcd120c66fb1ebff2f94b202c064a19ddde70936b0f5b92d87ab408d7d3000000000000000100000000000000000000000000000020626bd02f932e3615391bee938a0412ecd1cd2272cfae1e47459923ef7178acef0000000000000001000000000000000100000000000000208979ca75873db793654bcd0bbd1c0a1b39715385670b7e9dbae4aebbec52741c00000000000000010000000000000000000000000000002022ba410a643a755f99923873c2476ceb16eb3912cee23c769c03e3a3dfb8fdb6000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000001600000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000010000000000000020cc4cc421cb402e120895a59b9bf883ab73a825f30265524533f96570a512dbbb0000000000000001000000000000000000000000000000208b3e53ddff02275259e1548b8a0673ce76932c109bfcfda8d5657151d9e1c6b30000000000000001000000000000000000000000000000200972dca85cd3134096a5bde319d17a7ab979d0601af82b3df452fefb94b18ac10000000000000001000000000000000100000000000000200977b8e1fd7874daaddf632b94685d29e83f5319019eeb81f47e898b13eb460900000000000000010000000000000000000000000000002077c9c9aec58a87ab556bdacd713816fab67361b53271400fea3b965772a212d100000000000000060000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a78499000000000000000600000000000000010000000000000001000000000000002010a30407f258d879602e0e3f0dceb04db1f35dabdb3d5d78e75dcf5a40beb1870000000000000001000000000000000000000000000000203a20386f35f9e243ab1628db1f33726be2a9d88947d54dfe10c93ad79b2e451b000000000000000100000000000000000000000000000020db2d182450d1582bc458538f3de6566903c4265e6332b188c4676a669ba9c1860000000000000001000000000000000100000000000000206e7ab1781b04aa6141dc2e5ec57fe06ea8152a892f0a879bbbe7e9fdd5844dde0000000000000001000000000000000100000000000000200601bcff1f6a53d3ccc41814e1b94ccb9988c71c56c5e82808399710863fd6aa000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000000600000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000010000000000000020650f2dc5351738c424615dd077113f5b1eee946da0c478d4123557cd9e99597d000000000000000100000000000000000000000000000020e2d92c3f50b59d68948d274148c7da36c5eaa88d4df8f8b769ee731e260ae00300000000000000010000000000000000000000000000002067f7ad1fd0876288f08b31df54e7360964190721667ca03b23af092d0988cd8b000000000000000100000000000000010000000000000020386031671100ec0f3f461144754f53d671c227627b4c8756a9081748efae4628000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c000000000000002f0000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000000000000000000020682bc84563f1bf6d2e864c6c525dad09df2d06b7f7ec0d2813507703a7a34b1500000000000000010000000000000000000000000000002070bb41d0837c0bb7d144d607372011f7791f2480775a7b2dc13a200f041f46380000000000000001000000000000000000000000000000200eeea20245e587b3c79187605792fd067868fe7d8a2ad6f6fc450719949500af000000000000000100000000000000000000000000000020a63bb163c7044092808beeaff40be31a89a0ee9533dcef2e6c738b4b6979d59c000000000000000100000000000000010000000000000020ff95de509db243842ef124b7d5e65df0de205aca3d5041e84169d6a6270c1ebf000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000000f00000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af00000000000000050000000000000001000000000000000000000000000000206879c25a21a9952f8083a1ba80192bd77dadadb034c8bec159fb37e5ac2814ff0000000000000001000000000000000000000000000000205c10f601bcf93f78555d76d436a50e1895ce67971404e9e35fd4f749f332930c000000000000000100000000000000000000000000000020db7949f733391c69265c151180caa41295298ce45472debc910e360746e782b7000000000000000100000000000000000000000000000020e10154432454cbafd56b1d3571f2843202f86b982be342deddd0566e03beb9ad000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c00000000000000100000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a78499000000000000000600000000000000010000000000000001000000000000002084bab0ea852d74ce5f1205213453c0957786ea965866d51487913e67e4f896dc000000000000000100000000000000010000000000000020065982e1c28a38ce051ec2a164f79c3b723dec2d4eb0e70a2b4cd46cd5728609000000000000000100000000000000010000000000000020594598b94b3a250a7dbb87154c780574f287309aa45c3818c0470aa50fb5a5c40000000000000001000000000000000100000000000000207702d029a3b5fdf2fa631e6d8ef28554a2b7d70da56fee22828557afd1f056040000000000000001000000000000000000000000000000209ff4bc626f01cd895eacc32ee783bc5849b39341a7454cd58013ff7f06dedcef000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000001000000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af00000000000000050000000000000001000000000000000100000000000000203b285a0a467861b21a71c39683ca0b1b668fc01fce6b22e72e2d286d7673099900000000000000010000000000000001000000000000002010dfd10688b4b565aefb4bc19700ec82a9d85b0444f5835048d093a690402a74000000000000000100000000000000010000000000000020b05c8a4918c2b948ea22ac1ea9e8788f6b4dab63bb0d3072af2ab349c7d7407c0000000000000001000000000000000100000000000000200977b8e1fd7874daaddf632b94685d29e83f5319019eeb81f47e898b13eb460900000000000000010000000000000000000000000000002077c9c9aec58a87ab556bdacd713816fab67361b53271400fea3b965772a212d100000000000000150000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000000000000000000020583063db8f12c0ad350855b837212be307c0839fe47946fa2437b5a741c4223600000000000000010000000000000001000000000000002042166a8b570b42cb09d1cfc4055227064d897ddfb1290c453d55fcd8c07c720d000000000000000100000000000000000000000000000020ad35a5ffdc1126feb8a4df32cfb091dca1b2ad14deddbf30ca976c676e2c33240000000000000001000000000000000100000000000000207702d029a3b5fdf2fa631e6d8ef28554a2b7d70da56fee22828557afd1f056040000000000000001000000000000000000000000000000209ff4bc626f01cd895eacc32ee783bc5849b39341a7454cd58013ff7f06dedcef000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000001500000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000000000000000000020ef3bd30345aeca9ca4f5c0cc8f6aedcf661ef74b3f9951f0801f7892662a92c4000000000000000100000000000000010000000000000020f9d0417bf9c22af0fd7c868a9d85a01ec82f2143ba064a0a099f6035f93505250000000000000001000000000000000000000000000000200972dca85cd3134096a5bde319d17a7ab979d0601af82b3df452fefb94b18ac10000000000000001000000000000000100000000000000200977b8e1fd7874daaddf632b94685d29e83f5319019eeb81f47e898b13eb460900000000000000010000000000000000000000000000002077c9c9aec58a87ab556bdacd713816fab67361b53271400fea3b965772a212d1000000000000001e0000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a78499000000000000000600000000000000010000000000000001000000000000002089416afbd53e0e7d8d3c46ff431b1c003bef3db0eabde5ca27ddda3fe516218d0000000000000001000000000000000000000000000000206aa301a2a0105f9d3b3f3bd424eb22d3f0bc486083c94b124ab6a03a10c27fcd000000000000000100000000000000000000000000000020c90960d37d8b1147ae0b0e112e4e27c594c3d797c9fcb12d6c7adf455fa123c8000000000000000100000000000000000000000000000020d30b4459edd0f8e82197858ef6018b7151a51fe3ca9eebf3bf63bed2a4bfaaec0000000000000001000000000000000000000000000000209ff4bc626f01cd895eacc32ee783bc5849b39341a7454cd58013ff7f06dedcef000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000001e00000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000010000000000000020bf12dd95e0eff7e456ea833ff6479073931e62179e5a86483b0adf9e20249ce3000000000000000100000000000000000000000000000020478d821645fbfe9f725c7fd97dca405fc99ed284eba10f8e3b559999e9e489f00000000000000001000000000000000000000000000000209b03c94b2e686f76fd84b8a686b26899fbfc903226b5db0de8cac907fa19a6c50000000000000001000000000000000000000000000000208431414d63476460c32bbfa4cb99ee87313f878d671a131aa704e34b140597f600000000000000010000000000000000000000000000002077c9c9aec58a87ab556bdacd713816fab67361b53271400fea3b965772a212d100000000000000280000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a7849900000000000000060000000000000001000000000000000100000000000000200de76128d7a385bc1af6ecf71de92c322ee92ce0a67336d1382df9dd31359c610000000000000001000000000000000100000000000000209c46e22db1efdc1c556fa27e42e1de6cfba132d5e7937cde7141c527099745fa000000000000000100000000000000010000000000000020868ae6d8928dd7afd1e2e7b535bad43f09eb31d51303d76bfca0cb316a54f5af000000000000000100000000000000000000000000000020a63bb163c7044092808beeaff40be31a89a0ee9533dcef2e6c738b4b6979d59c000000000000000100000000000000010000000000000020ff95de509db243842ef124b7d5e65df0de205aca3d5041e84169d6a6270c1ebf000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000000800000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000010000000000000020b942405a493aa5d9a83fbe5cc0faa76de9acfc3510805056973fe7c811921596000000000000000100000000000000010000000000000020e06052f87b3f12b879dbbda42c74687a41e5c4eccd9e9718dc16d31887760491000000000000000100000000000000010000000000000020bb30daaa93d8088060f02ea33b18e11aed7d16099147f6b8e5f593044d4cb4b4000000000000000100000000000000000000000000000020e10154432454cbafd56b1d3571f2843202f86b982be342deddd0566e03beb9ad000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c00000000000000010000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000000000000000000020a805c9d85db272717f3495dc562d5ec4c8546e20dce0a86247c868434df43867000000000000000100000000000000010000000000000020c0b0c96eecd0b639c972756cffed688d2b487c87a58a6a2fb849e4a6599eb437000000000000000100000000000000010000000000000020444f614d3d491d4e2c08a3f52820366e5f3a1526c5d58d358fb1e58633e4d20b0000000000000001000000000000000100000000000000206e7ab1781b04aa6141dc2e5ec57fe06ea8152a892f0a879bbbe7e9fdd5844dde0000000000000001000000000000000100000000000000200601bcff1f6a53d3ccc41814e1b94ccb9988c71c56c5e82808399710863fd6aa000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000000100000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000000000000000000020fbd0afd6a2565130a294eafa826bb9368a0f904fe9a1baa7dbd9149986dda23f000000000000000100000000000000010000000000000020b1240eb0ef003415e82c3b6c90d732666ed1da3c7e6ce7ead2f7217d059dba9d0000000000000001000000000000000100000000000000202efaefe650b6a09bb0544fc75df2049d3eaff975d8a83bc4ddd2ed7432989dde000000000000000100000000000000010000000000000020386031671100ec0f3f461144754f53d671c227627b4c8756a9081748efae4628000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c00000000000000310000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000000000000000000020e0597d120abf0a6e2737ce63359387104d37f3ad9bffd46f56e0895ba29fabba00000000000000010000000000000001000000000000002022bd49adc4089daadb82d2b8890d9211639ed30654c204fd632819dd71ebd90b00000000000000010000000000000001000000000000002032e5e8cdbc4e6649fb68d951f01f7b4ddc33c53c95e2849b11cdea3452b290280000000000000001000000000000000100000000000000208979ca75873db793654bcd0bbd1c0a1b39715385670b7e9dbae4aebbec52741c00000000000000010000000000000000000000000000002022ba410a643a755f99923873c2476ceb16eb3912cee23c769c03e3a3dfb8fdb6000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000001100000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000000000000000000020f7df057732d020bd297e289b4e02deed9da08858b6bda0193b5de737425239b600000000000000010000000000000001000000000000002010dfd10688b4b565aefb4bc19700ec82a9d85b0444f5835048d093a690402a74000000000000000100000000000000010000000000000020b05c8a4918c2b948ea22ac1ea9e8788f6b4dab63bb0d3072af2ab349c7d7407c0000000000000001000000000000000100000000000000200977b8e1fd7874daaddf632b94685d29e83f5319019eeb81f47e898b13eb460900000000000000010000000000000000000000000000002077c9c9aec58a87ab556bdacd713816fab67361b53271400fea3b965772a212d100000000000000010000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000000000000000000020a805c9d85db272717f3495dc562d5ec4c8546e20dce0a86247c868434df43867000000000000000100000000000000010000000000000020c0b0c96eecd0b639c972756cffed688d2b487c87a58a6a2fb849e4a6599eb437000000000000000100000000000000010000000000000020444f614d3d491d4e2c08a3f52820366e5f3a1526c5d58d358fb1e58633e4d20b0000000000000001000000000000000100000000000000206e7ab1781b04aa6141dc2e5ec57fe06ea8152a892f0a879bbbe7e9fdd5844dde0000000000000001000000000000000100000000000000200601bcff1f6a53d3ccc41814e1b94ccb9988c71c56c5e82808399710863fd6aa000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000000100000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000000000000000000020fbd0afd6a2565130a294eafa826bb9368a0f904fe9a1baa7dbd9149986dda23f000000000000000100000000000000010000000000000020b1240eb0ef003415e82c3b6c90d732666ed1da3c7e6ce7ead2f7217d059dba9d0000000000000001000000000000000100000000000000202efaefe650b6a09bb0544fc75df2049d3eaff975d8a83bc4ddd2ed7432989dde000000000000000100000000000000010000000000000020386031671100ec0f3f461144754f53d671c227627b4c8756a9081748efae4628000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c000000000000001c0000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a78499000000000000000600000000000000010000000000000001000000000000002056b642432079f79978aa4becba1178cc4d7ef06625a9962f9696e2e7e2dfb743000000000000000100000000000000010000000000000020c84e319b18b940ad3ad6a99a2ca9b6cc2e5afb3b4f873b5b835c768dd6251405000000000000000100000000000000000000000000000020c90960d37d8b1147ae0b0e112e4e27c594c3d797c9fcb12d6c7adf455fa123c8000000000000000100000000000000000000000000000020d30b4459edd0f8e82197858ef6018b7151a51fe3ca9eebf3bf63bed2a4bfaaec0000000000000001000000000000000000000000000000209ff4bc626f01cd895eacc32ee783bc5849b39341a7454cd58013ff7f06dedcef000000000000000100000000000000010000000000000020e99d24ad85ea86ca940a4d86e504abee091a94bdd3c97505b2eae442ab5b4adb000000000000001c00000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000010000000000000020df696b09f0523edaa17afaac03f62d83412c3d8c8a29b5378cd47be7a2e6b953000000000000000100000000000000010000000000000020e4bceedf6223751cfd58f40f913114cae93baa2639b13154fc55187ec63453770000000000000001000000000000000000000000000000209b03c94b2e686f76fd84b8a686b26899fbfc903226b5db0de8cac907fa19a6c50000000000000001000000000000000000000000000000208431414d63476460c32bbfa4cb99ee87313f878d671a131aa704e34b140597f600000000000000010000000000000000000000000000002077c9c9aec58a87ab556bdacd713816fab67361b53271400fea3b965772a212d100000000000000290000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a784990000000000000006000000000000000100000000000000000000000000000020d170d00dc89cea59bdb2cdad253b48bd5994ad2e0d93f24722737a2fbf72b0d00000000000000001000000000000000100000000000000209c46e22db1efdc1c556fa27e42e1de6cfba132d5e7937cde7141c527099745fa000000000000000100000000000000010000000000000020868ae6d8928dd7afd1e2e7b535bad43f09eb31d51303d76bfca0cb316a54f5af000000000000000100000000000000000000000000000020a63bb163c7044092808beeaff40be31a89a0ee9533dcef2e6c738b4b6979d59c000000000000000100000000000000010000000000000020ff95de509db243842ef124b7d5e65df0de205aca3d5041e84169d6a6270c1ebf000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000000900000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af00000000000000050000000000000001000000000000000000000000000000201703619e4686c3babe4c017d34bf800c1478a6876e01a8831278359afed2f356000000000000000100000000000000010000000000000020e06052f87b3f12b879dbbda42c74687a41e5c4eccd9e9718dc16d31887760491000000000000000100000000000000010000000000000020bb30daaa93d8088060f02ea33b18e11aed7d16099147f6b8e5f593044d4cb4b4000000000000000100000000000000000000000000000020e10154432454cbafd56b1d3571f2843202f86b982be342deddd0566e03beb9ad000000000000000100000000000000010000000000000020316015421506ab2d03e7e6f68f4eda00af5b6dcd7977b5c8e28af32953010f9c00000000000000340000000000000020416ed230e3ad2e71cdcf7bf1b2f793809e57798184e0d980699f81f0a6a7849900000000000000060000000000000001000000000000000100000000000000209e7706c7e4b41100f1151171acd9db254a5d2da045723e1c124c6f68c2230625000000000000000100000000000000010000000000000020d6ceaac07c67b0a64c32369a1ea6e4166caf4b1a9150fa9ea43382fa85666468000000000000000100000000000000000000000000000020626bd02f932e3615391bee938a0412ecd1cd2272cfae1e47459923ef7178acef0000000000000001000000000000000100000000000000208979ca75873db793654bcd0bbd1c0a1b39715385670b7e9dbae4aebbec52741c00000000000000010000000000000000000000000000002022ba410a643a755f99923873c2476ceb16eb3912cee23c769c03e3a3dfb8fdb6000000000000000100000000000000000000000000000020735a65feebe499e546cdd2f52d6680295430787bbee2c1df198ae1dfc002e345000000000000001400000000000000204fb1b87946a9f6025348e5c1c56cebc890ea57525e5d64592a4376c03682d0af0000000000000005000000000000000100000000000000010000000000000020dae63158ad845c64205cc257a03d2d49695acc93f54d3bc5dd89970135f9623c000000000000000100000000000000010000000000000020f9d0417bf9c22af0fd7c868a9d85a01ec82f2143ba064a0a099f6035f93505250000000000000001000000000000000000000000000000200972dca85cd3134096a5bde319d17a7ab979d0601af82b3df452fefb94b18ac10000000000000001000000000000000100000000000000200977b8e1fd7874daaddf632b94685d29e83f5319019eeb81f47e898b13eb460900000000000000010000000000000000000000000000002077c9c9aec58a87ab556bdacd713816fab67361b53271400fea3b965772a212d10000000000000002398cea73e44f9346b0b98f132fff2ae28356593ae5a12eac860f460fa3a9a1400aac2ce7b2d8af19d736c47f66b2e6eb6fee949d0a3fdbe562a223c9968622ab488cd8e4 \ No newline at end of file +0x040000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d3e6039ed7769d8c3fa14f3df87db1bdd1897174295e78a26a9ddf2ca2608d37000000000000000393e6039ed7769d8c3fa14f3df87db1bdd1897174295e78a26a9ddf2ca2608d3702f5497c3241d226f7a598e125b70d4977a432d3256a5cca609eecd9708197ef737e121a355113bd3e268c35da7478b50f1d9105cc851ce52eca0fa3ebe2c212c2ca6f6cfb491ac2d63bfc65bc93426f4fc7c1707955613eb6622712c287f7ad01765a830a9562b236c0bd0d44465b8943022eddfc46523303a701f85b6dca5d81f42d20e86d85ce2f2bedfcaee04c2c88798a831cec778463324a315ca7d660d34fc48f34eaed7b11c3b142555fc9ae4ce680c62ccacb6d58b036caf924f3d371c4e1a48a239d06ebdba5ef6a617cdea616e1700f74b6727cd5ccd92f472fe3f3e6039ed7769d8c3fa14f3df87db1bdd1897174295e78a26a9ddf2ca2608d3702f5497c3241d226f7a598e125b70d4977a432d3256a5cca609eecd9708197ef737e121a355113bd3e268c35da7478b50f1d9105cc851ce52eca0fa3ebe2c212c2ca6f6cfb491ac2d63bfc65bc93426f4fc7c1707955613eb6622712c287f7ad01765a830a9562b236c0bd0d44465b8943022eddfc46523303a701f85b6dca5d81f42d20e86d85ce2f2bedfcaee04c2c88798a831cec778463324a315ca7d660d34fc48f34eaed7b11c3b142555fc9ae4ce680c62ccacb6d58b036caf924f3d371c4e1a48a239d06ebdba5ef6a617cdea616e1700f74b6727cd5ccd92f472fe3f127c24d6d93de9842f29a6d245d234127711e536c2cce0b14e876d8daf4400743149574fbf6c76bf168e26d0f5f1a1a64a1f4ba31ed74f9ae72b8eaffdec1696213512f755aea8bd75050bd7d649b6613b649871744b991958a487efc18cae330bd1a4bcdb23f87ab53e08d016e427e4599c7e0927778a9b08203cb9dc9c1b2d099b5aa69126781cc3d159d4a09fd903785e3e0b102ed6affdfbab0e6f46735d1efa2279781ce1bd13c856bbc25d85030f7e4f6209ce07f8a25cc8572e6e973a2eadac9f0aebfc38c7e7de2345d0bf8feb411a5fed0d72ac48862210eb7c020e252e956691cc101cf6b572037662781a6fc5c2ea336329870bcd98bb5f11e4af243c65637777d1ee46c13fa6d368a503c6ea125afaa809f6121faf4f7e8634ec1913976705b901625be9e1821c74fbd6f67ca6d47ab75cf4f871631d6f6e0fcc05ca7a1db7d20a01c15223145a49bc92f154bc5fe7711a038e0a84fb5beefd9310f4eb1c5290c61346203e82423cee59a6035bfd481bad6865fea0ccb30cc0123149574fbf6c76bf168e26d0f5f1a1a64a1f4ba31ed74f9ae72b8eaffdec16963d64554f4b7f8579b159b7524fdf1de9c36867b8d7831c2cfa87c44ded8feb793a73f59d35fce36e759ee3b753f2f4d97d01cf186f5e7c532c780e32ceef3b1d39e7f6550551935dd63c95ac7cc649d8a53ada8ac3288075313fb238029deb2b294fd51015a092e0a6b142a1790ecb1bae622443b27626f464a54e0c2be735a021b2366c4b9e1e011b98505da349a409519835bc1f088dcf428586a5741fe4613fd0ca8f3234758577329d6c6758c49bf9aa4a2494805125375911931004ba961ede1184bd8b0b641d3c049676beb869e7d16334622876f8867be818cb5d0d5f3068df1c8c31a742050a298cad58026329bf8315097e374ff48728e27633cdcc13cc23004f2aabbc9b7f05ca258e0b57a543e2bfb5ac023244bc9a46a0276b782699a1da7a5445ec88cb2d4d4bbf8a0276dff07367c6d6666b79c97f4f0942f708b73511398ef9d11ad293540836198f06f637ada1aaf3914b9fb2c021f4dd5331ce784f01d1baaf3354e4a5a2b800155c214539048cc90c3968396e2f3666900000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000130d990591c75b4f80f9da45aa1c40fe0fc1a3828959305e162c7600009d5e43c15f7bc57ae77305ea0748ac7b82f9330e3cf338a9259eb99031c0274a37199c20cb28b293b93f7628d2a91491749d0cbfd155d2df87d5bfdcfbd1c3c0295a3593ce300bbb45268381569894e967fbda3079473211a75dae8022e4eda201e26e6051b3c7e839ab7f9c66e65ec06fa89f005e5534d376350e6f0f1f09135424976208e720e605734e2fd028899385e1a0e8373fb1c08ed3032453fd046b0106928364fafe14b9a37e4ce1b07338b4eaaa8e9b26544526c13053eca9331caedd07d1a3707391b7645dee93181e36e5628dd8b0df1715a3509331d86fe2f4b90bc5e2299f021a1d3514b8fa21950f5a35c325555c335b67eb41ddd2a9f6d41e866a82192eec5337e67f53bd641bcbd660ea7d3149d37e82fcb3ada82530222f7c90a3902e97f2e93150a80a1dd6e47bda9bb965c796acf83775804a51fe6c1b4dfbf0c172c6d3e3017609f6f7086b01adeaa6a89ccac66cfcc808d68abe75695441324bfb797fbdc45495d44ee29ba8e5b5ad85044ee813695c837a7b382bdc8f80739de9f4874611b4d78c647049606ae9870a660356b1e3b57f0a5c3f8818fdfa5000000000000000a00100103020203060402000000000000001d0202020202020202030303030302020301010102020101010101010303000000000000000200000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a520000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000002010100000000000009102f50d95a6fbbf69d4b315b51feab760a01547d3e9b8250963cb44c579ff9d03410af26a590440962b4cea4ae015489f620f21bbd6dcaa8855c78e49560062fcd2c943ec42eabd11277f6c899f9594e319fd2a744eda4a79c63fdeaef1fe11101136bc13bd1542eed8809376606a6b1ce8273f1b71ba8517f352f45fde01eef001ee539d4e95b155c57d1eb01debe86f7b849796488505abb286e03e49f655502211ac62b16a4eaa3a82e14fe2141790869fd1f9780fc9e6070bf2d08609aaaff1a7a21288ec76acdb719970959b8a2d654e22cfe96f7d37097cbb19d1cfaa9082585ded77138953248e668f6a6475d29cd646bfd725525ab01617f4fe30556f92f50d95a6fbbf69d4b315b51feab760a01547d3e9b8250963cb44c579ff9d03410af26a590440962b4cea4ae015489f620f21bbd6dcaa8855c78e49560062fcd2c943ec42eabd11277f6c899f9594e319fd2a744eda4a79c63fdeaef1fe11101136bc13bd1542eed8809376606a6b1ce8273f1b71ba8517f352f45fde01eef001ee539d4e95b155c57d1eb01debe86f7b849796488505abb286e03e49f655502211ac62b16a4eaa3a82e14fe2141790869fd1f9780fc9e6070bf2d08609aaaff1a7a21288ec76acdb719970959b8a2d654e22cfe96f7d37097cbb19d1cfaa9082585ded77138953248e668f6a6475d29cd646bfd725525ab01617f4fe30556f92e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b33ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba1d95c8e017fa1e6895534fc3485c246a6b691d17e40c111566ee81de19a3c1b20c139b14e2f029cc073e76e7a64edf1a6f3ad871102218f612740857a337335316333d62a0235abdc8aff9d607499a1e81a3e021fbd93c3fb572b8bbc389927d0b6a22da128b55bb8dfa6731f74ce472dd044fad974689e3e68088fc4ae05e100bcfbb7d08c7af75c601962075b73bf4f6f7f3d7a8dc2e33e18626713e911ccc0dcea87c142cd7194c851c76df44aa147c540709bc62f27ba33ec049f82126cf0af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb1dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee19732fc7d6c9bf281cbafd3f11cd7c7c91d5c0c739eed7a50120c521e61f20f2ccd04f77edb1bd1e6790a44a9403823b1ef4a3e5fa3bac44521af6bca0d5f7fcebd33d48a0441bcc10db21bfab5e2260995ce53e9b24c0cd5872b95d968812e8b9e34f4a61c289fb65c3433abc4504da6f560be165bc3fefe860dd8bf19c2f213f6160308c93a5db9d78f85e0c31b0b5487463900648f97a3544d96dd3dec7faa0729fcf736c5a24628707a1f3ce4f4ab78dc0d989779b555c74b9653af138055fb23f774ed838f90b57abf43b0684bae3303b007d208749e32a7d8decce82935e72a1ef3c3a043fd49fdd75b8847fca8d7be5bc0b3d26b8c26a2ee5e761ed8574939581c22f12c79ce2411b819a164abf515bf3845a6c947f4856829b2992b4822195adfb4fb811e3cbf62007de7306d17d24a79fbe515900721ba68f16597b173266d16ce3f037cf03107ef1d9e857f70e9456bc4f3ffda7d5468f275b2067b9a0f78d397a09b580efbe063db59a165576a63376720573afda1169634429c340e00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001286df58a377fd6f9c7f2d2c8634d61b10285a99460b578cad6eb13c96e87fb720ded7bd7c9bd81fb972ec53f33312ee0dd98131341bc43a8615b6f83cf21d34403749d6cf7b8ab784321e2a3dc817e6d932ae938c6474af1fd695eeff8cb3bf31d1178c6deb1eb64194786bfe02bfb36f9f9ad37cd51426e4222822d8bdf2f3023bacce439f458351198fc056c900c801e66f6e299c271749a4654b2668a9f3924f17e90072a15a0ccbe24ec4552d0077a70408d500545936f85878ed4daf2b43ef55b4957253c22a74ea99ce45dada0e0719613d53b55c8d70309b7a6e74531228b119ebe78c765588a25758f77ae52792f82c23613e96b1a1a8154a8fbc94f263eecd9bef4943255077dc00633158a6698af7a6f87bedd8c2aaf823e71d76d0f80c412366b03b509ca9e83116b10b5a10b88e878d32b38eb8abd2a45065025278bc120eeda743c341fb41ea25ab2e149686ed0f3d11db215d4573b8bd3d69c1facd614ac890064460062ac4dd3f4191f0a6fcaabdd07e138abda522626fc982b4721f609d421b00587986cac1ba3accefae2f17cf74bfa48e96df55ce3faa9246394969770ce0d7c6e7fd58d97a21f511d02a2edb02433e54939d84b4b6cbd0ad42819c15b1e4f3125a7b872f24e28e85d733abeb20cd618c63253f16db6511fd3d5d68ae553ce37cbdd3bf01eafa7fc4dd3e7acb87fcd332559ddc92fff070aee82546242619f26e49557986033ac05c3ec937335f8da9b9f63d1253d783527488da53493fceb93e5c7283157adef550673c9e97f7d088ab21fcead2ce9c2233b71d5b1b9b94b37ea516b6d81d75713c2f380d31841dd7aeea14e31a9f1291cc48e2a4e4646b4c815ae94927e28a90e83a57b3634b73e1e3e8f9ece560ed83029392c78a09e7817939719238934b31e418f8c0cdf571c344ec4acf851b5cb0fd6c6d3875f6187e86c68e6dc76cb4d0405096ffc6da1ff64de6c4007ae4a3630ce1dde5b23185875e1f37db1ae077f307402c82475c83a3a024499d9988cf40f31e221a4dce7a78a1e0c824e51f880f1d29633e4d730e15f2aec532667730d34069557c7af79ba4d69c1747866257b8b7042f49a65fdd05683c43a3ffac0c10bf96aa838508645b2963e8b8799da8496d656076ee6fb4b42a96cb2c0053f40233b71d5b1b9b94b37ea516b6d81d75713c2f380d31841dd7aeea14e31a9f1291cc48e2a4e4646b4c815ae94927e28a90e83a57b3634b73e1e3e8f9ece560ed83029392c78a09e7817939719238934b31e418f8c0cdf571c344ec4acf851b5cb0fd6c6d3875f6187e86c68e6dc76cb4d0405096ffc6da1ff64de6c4007ae4a3630ce1dde5b23185875e1f37db1ae077f307402c82475c83a3a024499d9988cf40f31e221a4dce7a78a1e0c824e51f880f1d29633e4d730e15f2aec532667730d34069557c7af79ba4d69c1747866257b8b7042f49a65fdd05683c43a3ffac0c10bf96aa838508645b2963e8b8799da8496d656076ee6fb4b42a96cb2c0053f401d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f31191ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a23a3be95ea9f18d2ba1bdc9e20d742dd3d63c827f198de024754695b2fac8ef320aff83835a5b4ccf729e3b4b253bd1f7d7324fa0ce86a7dfa7275830f1bf16424100b05774826b954c1e98cabc2dcf1725adab78078c802023ab2171a81caa32deb307a3d1a7844d20e88da87b5ae0239b5c2e49342701737b9c664a4fd6d691fadffc2b1154b6729eb1fbe7e0fde2dae0bd0b60207b2e40ecc3f5492bd3c20163a206aa9162cf827adc731a5cdb7db8fbc61aa5764c85a123a61e921fdf31e31870947f95bdea9c3c192cb3bbf7effe29d0fb7bf7284c1d7e0d66acf118ab01040c9277dc8c6351fd039b70656118046072e337c872d37814fdf794ba768ca10f547f27e8c939e20c0942da06ea810edca7ce96c3f85ea1afab3e442288e863cb23cbf15913dc054ca1de6bfdee2e625b5cc8cb24762ca766016a63e8e29313f1c3e6d3646005b86ea2120e2bf073edb7fd6e3b821ad27eb134dbb05d43ff702ab940240dea4835ca7ab615f5689414d24670783d804d16e1d682914e4b3842edb7545b87d3a266719e769dc68f5be9578a8b03b9a7ff069c36e41ba2cd72d11248aba4782c5d998e6189623970a418ccdf04bcdb2792b2f69c2ab45d328d50fdbbf16201e2b7e24d31455600186627cdc68bf38594fb5eb8b03d379d818443d967b04dd949cb2ecb731cdc97b6e35f13711433f1753b02c1107ff351b889a2773b5ad7d2b090a09ffe4faa72bd5de4703574992ad1744c995de12627ad521083e79fc60e79fab809a7f5c728487406136c07b7bb86312f718fba4dec171d301a40fc986f5e508af31bfab40646b051423ecd55dc1683badbc83ed8173dcfa099c824c492194f65ae32b8b45476186f9502ad9c9f84b2a6482d38f9bab6cc90000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000127a4f9d6685fecf97d53a8f085597688770883222fe1164239468dfed7595818376c19be7028368ccb2f06c8e33e089cd0a01e6279c2b4377938b953e1c0d05b1ebf43097799114449d6d94b8f3da3f5c3c7395c128e6b1f3fde543b4e603ca00928c4cfd2b1bcab5fc034c822130b149bab0e646873ff883b1cccab5752d90130c03f23b86982feee2fa7017c5d31493befce3ac6fe2f752e49d2831efac9a600ebc5522cc043ee20c6e697b9746a0a2d5cf43d013d8e52a03b7e36e9dbad77196ad97a632be84e02346939fed354ddaf8c44ad1665639a62ccbf3b192d2ab0193cc39ecab1544515c0811be32cf039a8fc330414c142f983602927efe0907106d1c79450deac6f0efefca30f222ccb3ad70f94882bbe01b122a0ce0861c0ba3c483899dc3954a3ef751178a72a9c51ea4d23a4e3cea3a42f82d32c612f478817dc15fbc8badeec7e73586330e5a4d41ac84bc51727664d4d6e8564d11e5e33247ed126d5c76ce65c5be1d6d9eada9cbb042a91bb5cd9797e32f78dbc1704201c629fce4e6d8f4b17536c31055d4411f1c1a39a304eb740d08e5e2350a69b43334816be52d760726aa2ac11345601ba2e5641fa3a58b8ed5da449aa5788cc230800cc066c4d8d1b9ca821b6e824ba460ec9d4476bfea2b2a6a9ccd975c5adae09fe982a5677300c24045482cbcc4744d617ec0b7f052b2bcc305fe8338657513bde76e0cc154965d3e3c60e488ed1f78a53c6c7cdbfd913a83d629362567dfc3b7547978e246f4bd8ef072db9224ea37e4d3a0afa0d421c3e7f9ba79239be683188e3736946f3bf517c077eb5300c2b271757a63931e99ac339705544006eeb0e771c8c96b90c40ae83f8814acff3d4fb2f4155d01b0f80d5f3c097bbff911637ac71410e62c2bc976c257989f03cd75ca0eb4b0212a4b304979ee354022a9408538ebef19d3d436893da86760fc328c5a5adb1073a546894959209abfdd56d165e364547edcdaef51cbb5fb1b13034460a3486e5295310b24156bca40ad4e029a1c9bab81232510ae344a04e4ecfcbdc3c64752423a60ae6ebda305bf52b212fd70f5a67a5046ac98fa8de7875f1053bec6da67081a637e21980c23436285f1028f0a5985afb9536705721878a0efae65a2b5598cb52e3b713b02acbc9d7a23188e3736946f3bf517c077eb5300c2b271757a63931e99ac339705544006eeb0e771c8c96b90c40ae83f8814acff3d4fb2f4155d01b0f80d5f3c097bbff911637ac71410e62c2bc976c257989f03cd75ca0eb4b0212a4b304979ee354022a9408538ebef19d3d436893da86760fc328c5a5adb1073a546894959209abfdd56d165e364547edcdaef51cbb5fb1b13034460a3486e5295310b24156bca40ad4e029a1c9bab81232510ae344a04e4ecfcbdc3c64752423a60ae6ebda305bf52b212fd70f5a67a5046ac98fa8de7875f1053bec6da67081a637e21980c23436285f1028f0a5985afb9536705721878a0efae65a2b5598cb52e3b713b02acbc9d7a221fb658f6072cee97b6dab3dcbac82009de512e271ab489886ab5369ed4941f1174fbaaf88be79d412b9672c9d372a7d2fa63a6f94bf935c8b22a38f99927d5408e7ffa7a6007171ca846ab5c221a555d35b9aacf9f95610076d0f3575dc681c0440361a1ec224d7d8d5ea28a83a7d57f8b8b730acf476f957ec35112a3fa6163286eb1e3ecaa056affbea5789533a4e1831888b716c307e647a2160b3ab9f080df3103f23d9644fa72a1b6c1b961a9c14fca4bc6d64a098a22453fbe63b716a326db10dd5a7b1765db5e5acedf3cee26786f1363634c1a634a356a0e08b822a0d59dd55308f221e8b7b9adc30ff608a8d3a58f05c6accbda67dc57cd7b9e0ae305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe13091cc41ebd24a8f6c5f74d6bc44fb38cfedb7ee4c9d662770a1924f14a91592048a8d77f2449b3bd05b997cec8e288d41affeb53192dab303b17f1088070e8151c9ac8f98cbfa4ba0dea0c7231d8a9b105eb6c9da85a730b14ce4d9cda55f524700f36587f61541470aeaaba8e582af9e7a75bc798eec5b61e584c3c2ddc980bea23d2a258b52685fd44432cf7edc1499839ecb5bd4ecfea7a492bf8cde0f73415dc2d5da74ad97a02bbbcd308123ed8ae5f0f538faa4baeb2e7c107321f0b295949c65e84e39ddd916d8a5eb750fe1e993a7f64c7233128fca72696ba4bd233d9b3b2e196273920302ab4f0cc0cb0efca1d0ae24d53b96320533f6895b38a2f7d84f11737ba9270f1f1c990421704366925b9a5bd3cab8186296cc03195b63f8e441b2dd7b0c75643db88acd6e00e408e58bb0220e0143d1376b25224be260454614e0b222282c7525f736d4e04be8d07e8cda947ff0a3a7fb8968b912569163572611ffe7135de40c785f343601756a68c35809fba7a0895e0632a9f3384000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013fa880f204b67659db88783f9fa7fe47e98e45422fc8c1590eec2a62b5084bd53a2ef45f46cf9632b07208d52b3da38505f2bc91200a94894e451f6456a1d7bc399c5af606d464fdda7b3aafd31bb5f3f0f7c95aa05f4f6a25c0b89f3e217a6a1e83341ea0a57f6fce4d1e05d3dfa020431e8f0e9ecf5536df531d53b4d8dcd42a0999fcf856df9f68b675a4383e159a8f15783d7e394b08f4f0c9f1a00e2450145367e56033d97da14170a9c8e11a3b8accbe43b65286adb9bae93728f7f9791c12493642e4bcca7b93aa524f1569b68175d08bef6bd37fd56cbdb58dbc235b118481812f5e0c89007e5ceff8e9724ee9b0990fd6fe01be85e42f2c0fffb1781021028a38bfcd90b8fb8677a5c828c554ce1649e0e74fdd95a1e2120163ac04264c8e30b3f9e9e26b4a05b8071e358bfa9fc1afff5a62508898b2ddd82cd0d82a345e0659918f8f292eecbc5460a45005e6ae5fae85e144562c0c777afa91ce0972901d50adf78eec986e1db2d7eef2c9c791a2cd4fb612fbab14886790ae1e3322e67f703bca976e6c2c0735571431d508f21e56e85cf1fdc6fe367a2476e11c87d00d310925261389ec3b045c319a4b0ef37613bf133c306ba9972e0af08505aaebe4adc4910c74e6ce36f6f3ff576509616816b38230139c17532b157f27386a56695695124fda400f28dcb52fe691786947b62b8e8c794184a753da42251051875e21345b4424b3d28a9430690846a80e029c7b9d5c6ffc385dbcfd2b0b1f8aaa7cb77946d704b25613b4eb803ca340d0dfe2aa3d8f5af96779e9904bb63036b4f581afee8fdf581f5a12018200388315cef6b547c023c21149500f418d0fc94b0a7e50117020a7e0a5edfe7dffe9c3832d1297b15b756b1fa3aff0be74311188cb886fa8cf5cb89cc25a078a00b3bba216b5a37b6de742c3a7904c47be0eee773477905730a347633da5f875ff6e8af6e553a97dadb1ea6d456fb3b8433557abf9aa2e4c0ccf9b0fcbc225b2031bd65f7d704a7dd2b8c63f7ed17d66b30aa8540655d1b3f33064f0343dda4dfd0670397e99027b48e066f16e2e82994e0ab65be052e77c400e074efacabc7a0f021579830c4090af372a79c61773017b3549a41fad1883bff1f8b105354385f120311f78fd0c686c6202b726e88cfe863036b4f581afee8fdf581f5a12018200388315cef6b547c023c21149500f418d0fc94b0a7e50117020a7e0a5edfe7dffe9c3832d1297b15b756b1fa3aff0be74311188cb886fa8cf5cb89cc25a078a00b3bba216b5a37b6de742c3a7904c47be0eee773477905730a347633da5f875ff6e8af6e553a97dadb1ea6d456fb3b8433557abf9aa2e4c0ccf9b0fcbc225b2031bd65f7d704a7dd2b8c63f7ed17d66b30aa8540655d1b3f33064f0343dda4dfd0670397e99027b48e066f16e2e82994e0ab65be052e77c400e074efacabc7a0f021579830c4090af372a79c61773017b3549a41fad1883bff1f8b105354385f120311f78fd0c686c6202b726e88cfe8614840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d3126132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c836350c1986d63d0d76252cd4dcc0096252448ef72e67695958363393bbcb800d6809d0f28df34f89daacb5b062f76ba5e1e124926c9ceb5a5f7656919f3a5e969e21d8509a7454e82c6c01ee7f9d53e927b541a171fea9969f871cfc034c9763952b13cd6d52b7a32dda0c03c427c28bba72b3b40b5a8595a3c029cfe2dfe9b15a17dcd04956966bc87edd991719d6b3a0ba18caa2e4cd1d4bae3ffb819913f9ef0cf4d744869d6bb7ca44679edfd6ace4ee3f7c43864249b03768ed6a74a65a6a17f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a66373017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e36851d7d884ac33e3c6d15fde25d80bea7e85b54836569bb5cceeb6776c52af91789f475753530cb37be57062b43ebef7ca00989dac207ebd71aec10afdd45f2366fd69bf31349f99c35c37b1c54b8ec1ae6392344ecda412b8bb3f63a32c175230086247a469bcb4270f361e752adaddcad693d24550e9e2dd444b25ffba12e34f1910671874941dca3f837f88ccdc58cb41c93083d97434adc1f2d75aac2470b0e6ef98e78b6be235c07c80773323a95927c69010f61d84e5111bf8a553dbb17af240798a5008543bfe0b9679e54225743718e9bb9930fea943816910cef970e994204c31d5f373bd9181cc0343b4e845c2fd879814d14cadf7f06b8d5a2f319bac5d70ad5f06ea847e72e97e2f7f92decd8ccea10fe0953aacb5a049ed02f0fe999ea78989dbb38d7cb5bb19f2520bcc75b371ca868d817301801e58dc1e03135cb9b5ec77506e1a03afc26ac2031ab00af04290a74ee96b1feaac8230b652fbf036e6b1dc06dcd150c7524c199a86531ae64a74c947e8a2383fba9dd9b8700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001272d21c93420d5f46428b4873508974aa0885880ffc205269e7b45224dc0f6283352e5072b72af703226597d122d7e3ed912fd5c29630e7bebff2540aabfbc7b03e06be6b3e654db1fcfe721b4324deb6229090533dc9010ad0d49fc314374e70e0f101eabb056220f3dc408f98e581c3c1e3bed51b213f3ff0b02fa306e3dfa1c96b97ab758dc4ebc7de93530391099d05c1ea7c2ddc87c0dd68fb32b6fca053857793966bd7afaf0aa14b03533d3eaf15ebcb47e2a0dec88ce390dd2649e18165f19428609e4771f2ee90e4b25244fe4485e0c8adf37cb3abe838e01d37cc63e6d9e032ae4ca7b650092ee3572a2a7407b9284831272e1eae56bfcd8f8ca653ec557971b5ebb941ca4de50712c07df3f8cfd70b81c2f38b720cd81f0c7ad5928fc3170dc301f12682efb78b45788db51dff36cf912497b935fdb5555376dd52d4c63a6a89a3d999bd58ecd725a0db24ad6427f472a209c0317a85fdf554dfa2ac4cca44f3ba7a63abdbb3c785332bcfffbcca03ed6f29b1d34bf0e4ef4354f2ea2f3f7c5860af81a6fc5e864f1460fec0156d027c29d096abaa2021d56d32b2107c294dbbee4c567865259d4c1ffbc34168ec442e4d324c37805cb8ad8943b1a88f9b8568304a23418262de497712874cbb06e680171e55faa41d5409c1cd727df4264fee92b01e032e312d1dfc91aa6b438ba51735ca196c074b33b9586203af4271eaf61619994d793c93f7791eabda217ca0a238eedffccfdd9410e6e7004e5af2b8bf3062c5d8a3809a489c7203588a718a1bde21c52f2d13584eee29e18c9a65e9ae5bab13ad4f62d3fbee56ad22fa0754377246afce74eef4d0133c5273659a1651a454ec52b09d2c0411a955016f886c5d5d4b09c45e1fdb2fecc3c3bf03fd9067ca5762628cee23eba7b15f8a7894e4806bcfb575759bf810602d8040fc026f9835a89d9d7311dc14584ea299f0fadc1463c2041d5d72d7ef9fd292bb13f3d206f3b4ebecc0a6b39a4676d522b4a9742edcc7a4ffffd09851e0e34144ec0c2df90c4b14133f594c65b9892d01b4e64c65f2ca1492d33e37ae1f1cd1a763c31a22c2889b9fc3418203605223404aa0032be1310c4785e68999647012589c3ce5dd3d7764603cbe7dfc9faddee41eefbd68ee60ad4b4d2846669b90018c9a65e9ae5bab13ad4f62d3fbee56ad22fa0754377246afce74eef4d0133c5273659a1651a454ec52b09d2c0411a955016f886c5d5d4b09c45e1fdb2fecc3c3bf03fd9067ca5762628cee23eba7b15f8a7894e4806bcfb575759bf810602d8040fc026f9835a89d9d7311dc14584ea299f0fadc1463c2041d5d72d7ef9fd292bb13f3d206f3b4ebecc0a6b39a4676d522b4a9742edcc7a4ffffd09851e0e34144ec0c2df90c4b14133f594c65b9892d01b4e64c65f2ca1492d33e37ae1f1cd1a763c31a22c2889b9fc3418203605223404aa0032be1310c4785e68999647012589c3ce5dd3d7764603cbe7dfc9faddee41eefbd68ee60ad4b4d2846669b9001292d7ad405fa37806d82528bc3fe8435a85e151b1fdf1f84a5868f532008b7021658174cef8b7ca01d1325c91a7d18b8dc8db38e6a8a2490f75e8322349c589008b57e0805f4bb851eebf6269807c7c8bc1702f106a0fe1917f009e0d94070b34be1e0f4f65587db243499b8b6119fc53fecc9d8d6fee108adfe74bf5467f4d1893551854fec21b56a4fe98d8269f9e008b625f272cd03983e56987d34756360aed5a5fe4ee28d41d16d38afe5e1f30cf561aa5ee3b924ba91850578e01490f00e36f818aed72e9d9ce471abcc508f1cf43c096b753ff77aa8e927cf356a9b83e61b8d24cb0476c9cf12eb8dc052e293997707289505bfcbd2ced1efdf18ebf125c534548436e43bf17fe0c04c54749cf0b77aa2d2eed5e1e60a2d2e8abc0510461dda8d89f9244340ca170b871686ead72c0f6aeea72a59dcc85f5bf2f68613e5ab435fc970c298c82d266223fd9983bc6fe8ebcbfe5283127d7afb5c084202fdc85526d913a8fe306f6bfbf634ebdf8e773a1cd6871a211d15c1fa8ad94d02ce1d0723f4110cfa7391b74da3f9b403bff477b46e4f741bd55c759c06b6d8729dc607be1a1efb84beb8407e2f7147862c58a219e8161dd9804925be76fbb2d287ff2c966a17e8b732c7a0421ce32d18e8c868497fa849c1f894164013c052617800d36995e81748cd385fbde31cd2e93ba12777152747f79a3ef88fec3fadc1f91510ec6eb76d121edcdc0588234cb766490562efdd97194f39b898c23e4202bcb9008605ecd38436d5024a2365771ae9dd1bcbb0650dfe9ca8ad9c571a8d2078caf70af1b12b5e66faef300ef19583b8a20b6e5538ad9079e8b51e37487bb2c7839689d99667a8c349c9dc10e489663e4637e25da3ecb9bbcce1cfe7dc58b21d360d1f65200e87eb191af8efd34220d593361bbfde567ee157126aa31970c3ddd68c5cee4775c9e11cae233b6b0ed6600279df1b42be3a57c592bd84e97a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001353c92937c37763ec98d7ea0ea0f83e715cd971d9b25e3e93686981b1c47539b39d2269f04070261de91afd2f2fa1577efad1cade7613781727e0b08d32111bb1412a92afd63960195a29ead43df1942f5ab4ba35903e6a8803f778fceef6ae5009f8b888db070f67fd4f233e18da3cae07ca4ddc632f72fda406600543d893910684629314a3298d01f856f837b3f36bd81d2b7e8c6aecd97a0b886468dcb6d315adb75887f0ea5d8a884166acc0b78c9933aedc178b728458dbb7b55371db0246809d97aa1c318fb7fef4b392c6320777f0242c99b6ed59203daea5aedd6453aaf85eade63aff36e3be98eba871d5bc2bf50b38b302d0bd73aeb6f040c16ee330c7393a83f2ad779a0ce71b04f6f38419c59efcf353a81ce4c6a45ec4b120e09da1ede560299f348692cc51882b7caa5ae8701766fabf9f50571bdd482c0362360843b4463152da41b14b1d2c15121195e05a0031100d61ce8093d6a42b74d31c2b72f0e12059ab9e15fcf5ed69e41a7cdcea54ff2dbbe15b8ee6ca26b20d9225920c5dbafa448cfb68b0c5e2c3bbdca35721ab4457435b04f3e4fbe08b36c2d5195c6c5954b74b23f8d35db870a0e55e27379b661fbf87de3697dea26b3fa1d19c109fe9b405102d0c9e84ecc4bc65316b9fbfa8659ed90b31038b415ac9a22b1691f5afa61b1df3d0d5afd8a1d000fc12c1555b1600f24cba786d482a4a21889edc443c08f02ee63e98673cd877a31669abcbc0c1b91be91d0943123c4bc123e6dc8e3b19955799336a9e26a506d65d62fc535d1e792583417e8a454274e09a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22309a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a223305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe2622cbee39cde689d2d8a050b771f7a2c3b1ba52e62b09b30c8e93c520f6ada1196338b4638e14cfd60159eba3a4b37353ad4a5d4d9e176d1f2d58b8452241f00440361a1ec224d7d8d5ea28a83a7d57f8b8b730acf476f957ec35112a3fa61608e7ffa7a6007171ca846ab5c221a555d35b9aacf9f95610076d0f3575dc681c197c72c4ccb103b028475e963f041edf0457e1b288d586454f04237818425ece26bbfed82d1828baee8720e0a208b1b44b74061ef724dd8e083522442f783e5d022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c12334659429b892780000594c3d097f40db55bed1a591791fa10890d107b17803b6eeac5e4cb11c87a80550d4b74dfa3eb8d23386b65868e6be730962988072429830108cb5a02fb92b96cc16107c2713d5b965caf18aaee85332c9caa0d94d41d6a5055453de0b1f5ee004b172161a4672b9d1ed3c3d60b5965531316d1491424c267bffeb4a92a1f9ff71e8aab92bd8fcca320299f15f903a95dc267de98681b3d9840014b56d5e06008e175546d429279f5dbdfade3229583d32a9821679a1d04c802c73bb5682da8ae046269d75e6d067a1ee1225b7c287c4b176cf2a6de32dc9e0425440fd13b49e72087bbfd0944c40d96f6411202ccae4631e46097ad10107710165bc0e1593682c1358f9dd773b9f523e8d4a9a061632ed053cc2be02a058eedbea0901751c3cb699500e5c6a9232dbca0bbf3319c64a76754fd1b940d4599ce45d427e2d631ad7a1bd61fe7e487b02b5406a1dc6f2d36652d5e606a1fe51a21e994ffe1e00a4dd29d4ffedb384f01abea3acf52bf2ea331a1a8f0dd000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012baadf51c0967e82e22afe99af216599c49553ad3266faf11e98c33dbf9e89da128dfe18ca83ba51b71d807d3f39d29517c08d3d418123651e9b22f3394d42630dc725a7df7ce225916abdab44aabd4af843573d6ecc65c70c2f958111c023d91d044a1ae5ffd633fc55a978e1788b5ca21cbac0c02fc85d55b9a8a99f8b45492d14c3db2d1d856d8a3369a812bf4af1aa5e00b0c9e81f869e5c7ccb2a0d9c4b389a767e9f39ce0e63246e2b4bfebede42cd2103003c05ac485c77c0e47443aa3242c742ea77b559a654a1038fca6ab5e901bcb7f2a2962c6c8f1f48565445a3158f38c7926451d4feb0d6c8965e39b074e54a82fe5e6e4bedfa441e64850ea80e4b8f78e621c090866c82dcb40a0fbd9935f5d90968e9e6fe1d949ccf2fae732de77298419249ac825157b9714cd5a5719adc16a64ac75d69f8ea6726063f0b247d7fab66df23bb452507802b7a484d0c27e331576117a392e8977a39741d9d0f35170bf7b1bcf30dbb02f2ae357e426937428db2652b1ba5cbb935811ce03c3590d15e659dd2d2ce5079e2847ad2367006a11c7e5c5da5dcf61989554e61e81a19e52e3ba71ceab3a59e5fb5387395b0114477ec4b1288513c8e4452e1057e2a1047c055fb549955e70886683925272d662119c22c1135efff8899b67124e9334803f84404b90ab676dfa456b284ed80587877bf072248690682481ade24b104410a6aa4538987ca1074bb7cd7c8fc4b693aad33f0284765747bca59c57a370e823a99584cfc1d14cd8b09d1e015502fb910fb5e9bd8f0bb04d689f19e973718a62107e04b5f9b19f1ae1f7823a61b01ced64411dfefbd3a1d74748adefb682759def81fb4a064e60e51e087dc59e52077c2b7f76d095e5f0fbc78752104993b3ea5276178de0781b8669d58b23e86e6c396585012b59689661559b65ae90704c15ad89e8721f87e479962a74dc1793b8302a3b93a43850fc71b9349a516fa283939c4e75c5625889a0112bb7b38a1f8b78bc96b29a7824a49a70c8fc68d1f17c6c63b18a3a9da7765feed4484c75e298f0d329e2351994ee389e0703972e2091e20d884cdaebbab02055da9681b2974c1effafbe95a38a7e8b077cee0c19836e1df277b32514454fdfaa25697e4d6ad84a9010d639ee2f1448075311f3e6918a62107e04b5f9b19f1ae1f7823a61b01ced64411dfefbd3a1d74748adefb682759def81fb4a064e60e51e087dc59e52077c2b7f76d095e5f0fbc78752104993b3ea5276178de0781b8669d58b23e86e6c396585012b59689661559b65ae90704c15ad89e8721f87e479962a74dc1793b8302a3b93a43850fc71b9349a516fa283939c4e75c5625889a0112bb7b38a1f8b78bc96b29a7824a49a70c8fc68d1f17c6c63b18a3a9da7765feed4484c75e298f0d329e2351994ee389e0703972e2091e20d884cdaebbab02055da9681b2974c1effafbe95a38a7e8b077cee0c19836e1df277b32514454fdfaa25697e4d6ad84a9010d639ee2f1448075311f3e691dff3c5197fd00d1d0a0de7643244f7892ab4a9b26b3f4238af227929b22c07334ab22fea15d89c74a4ca0d1cbdd19b18c8dc4699b5e6d44a70b9e363033d81210cb754e0c9b4d86aec4eaea68bec328b666a9a043d5d0d875267093633c17020887259d6494d8930c8fe34dbb38b54f2e6ef48b37424d4d360826e2c99c10f5340e52de04aef29b278901aaca40eaafc3602d624e75ececc9c33045c86e16ae0574b614904f04d06536b5cfbd25bc253f053f3efab39148f663b7b5deec33cf3f0720632895548bb04d3cdc55cb4d809cb1013d9caee5a883a975497c80ea3008ce7d1e5e8778bcd1c33ee0e0d3c0dee902d2d8496b98b5aae77454189f7259154726d1e457b749e5a32d9cb269c17087add08c554ac6163f1ba6dfbda977f43ebbdef2711d9803441a84e31a9d5ceddb174d378971a5aeaf3f8ea84a27c794277554cf172a1465b5f0275fb0bb614ee6780d0b60ac0da8edb3fb4a42c9b65238bb19380ca3bcec1b7ac1e2b2b3cd0e595e5a6676b24b82c071862837b86c3611354e605b67b1a7809a369f541ced5ed934a4c09ec3341f991498c701a1288d02cdb763fa0d9da5a9237be078ea30ff6749e00736ac3e89bc196bd4063016fb12796f6dea4a19a43c7fb1bc397f90712063f0851e9e878c83023b0bb77960fa2d86909215b5e65bc3804e43c6806f8f01e2a876eaae718f162af5e148869f0827f3ad76d6fe5567cd5ff9f5a3152bf77d49c9ffc17416e6a828d1f05bc7cdcd020e374c6f0233b15766cc7ec727f49c8e2eb587852cb8d3d03033d6e7395c943ec38fbc0bd3eaa5293a811bda27f8e45fffc232211a8c618b67b2789a6b5a1e2069ed1fb636691fead243b864219818a5f1cb94479bfa0f76a8a63375ac6e2d3c1d73d3be3dd577aa4d76c5a7cf8ce2effdfd40d0b03e02f3c52b66a13020371f84c731bba07333a6189c23730e48ffd1a705d588a2213e1e958371e6294a4000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001231928ede12b62b0ff82da8e97913aa5396aa4867ac60b5505b50cd4e8c8fee30fecdbae950c124670743c80543af304ee59c24d0fe4f5da17e82768986dab8b3ca5c210bc84e5196dad9f4097850ed1090332f7339ee08963be3157318cfdf93b4c12d0d00be17716c0ec893706f28cb3a5b15644a0a13f50ccad9df697733c3430abbc391b49329355427cc60c601086afbb66e742ad1c02728d5a2e7e978126e91a6546aaf2fc0e41b5ae385cc0870596d8a23172f22bfad69d8d2c895a793ef6cbc729d7fc478cc54b6ea48ddb147bbd12019ee889a04c55767b01800b2c0ba013d0fafebeca5ec7c94bbc5142f3c3a45d4cdbd60c1eaf35dd90badca1fd2e2965ad0899af2feb2d3bb9c1de9c1cc81f6329ddf4f69a91f1c8575397b8ad30baa442d34859586b070f40628423b5d36cfd27e0a9128a88d9285976872f4831042d0c7e516e2df84d2f82682d39469c652c94c870ca22c7ac470fbdf079e10a5c76397f5447ecdbb700511f4c775d4fa59bb9a090b65f5dd28c6f449f8f7b0f17f6fa70415588d2a37b631eadcbe5c490f7b30f765d2d93abda12d2fe42450092bf9231039a34af529cdf1b0579e6394054e551e419e501599ccdd531252039cf79aee9a7d42a7ad719c553f935f4c276f3ec53e5c4e419a6a70e60ae64fe3788398ff62d4e376d88285fc6b64a64b3587e2df655f36a7dc5bc397aabb50a03cda650360bcab6979a7edadd19fdba369ff6268266d19148320967ee47773e280300c5c499ba409bf81dff9fb69b5c7a8e908a623ab4f12d30bcdb819877ea0cc3380dc616f2e1daf29ad1560833ed3baea3393eceb7bc8fa36376929b78cc333cc7f239e90d1e250d652ea9f7cc12e697f5c2ca7e415f0989cd766d6487353fd01844de72be6946bd0616ae2903a22a69301e3a0996aece30f150dd095bfc002fe7bb218d4196b942f9e951d6fc5df7dd68ddcf43626ccafc3f9c22f6a4053f107958583db80e61b11e7166cd122a4af38ca6fcfc0cfba23ff2e0512ecbe800ef86a7a7c247f19e4ee18e9932edd5d7530c550c50ec1ff6ed3e0caed134193b525eb9b9349847e875983702015ad2eda75b52cbb85c7bc68afaad95e9fb8404ada14646cb67b8178a67c8fdfea52d349f3da93d949c9fd2a2363f6a16047d0cc3380dc616f2e1daf29ad1560833ed3baea3393eceb7bc8fa36376929b78cc333cc7f239e90d1e250d652ea9f7cc12e697f5c2ca7e415f0989cd766d6487353fd01844de72be6946bd0616ae2903a22a69301e3a0996aece30f150dd095bfc002fe7bb218d4196b942f9e951d6fc5df7dd68ddcf43626ccafc3f9c22f6a4053f107958583db80e61b11e7166cd122a4af38ca6fcfc0cfba23ff2e0512ecbe800ef86a7a7c247f19e4ee18e9932edd5d7530c550c50ec1ff6ed3e0caed134193b525eb9b9349847e875983702015ad2eda75b52cbb85c7bc68afaad95e9fb8404ada14646cb67b8178a67c8fdfea52d349f3da93d949c9fd2a2363f6a16047d022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c125598985b4ae56415db9e2bb332c7ecbf1e5b2ee5b48d128e16c3f52244ff7e208231a5dff2845246ca0cf5e27115659713ebef7caa9effabbd28b13d9ef252196338b4638e14cfd60159eba3a4b37353ad4a5d4d9e176d1f2d58b8452241f02622cbee39cde689d2d8a050b771f7a2c3b1ba52e62b09b30c8e93c520f6ada10b45f4fb3203a579f75898884ba773de8b74c16da0c98fb3b4a53a4a4f9c399a34819967d4332e1af1d8e800d34bbb8e694c88b8f1d5feb0267be1d368a9293e02137e04dacf9afbc347f2bf066d88f624070fedb8de8410940ab528ab8fc49c0427665ed95b17a0576af512ebc575a225cca770747fc11a85e3405b33ad6bb0224b385c098e8641a085c4a165c658c92708e50a47976d7d269a67edbafeaa0c2a63020858900b61abae8a795fac74fabc6a7183931f80ac647ac8d64b3653b72b7daf5260c290bfd4966a6aab0043b18e76968a2f8279204734ed0f5f0b1f0a1abd3511536821dc461c7d674732bae6dda3b9d00728c5266be6396180321144275648f38767791f7d2b7557bf3ace0f68a9ef19bb02b805c151acb42b5db35a18a9b70c789886e082d48aa840c531f0b99ca9e24e4a4115d7db8438d4a24ca80deb22103a020cfd8a58e54d92782887c90b6f3100eb0a28aa6ef60f71552a3e2d7651c5b56dbfdc2be1b00a4402ed2aa4d03ef9fd5fb2180e6868d3677610ef09fad688a8ffae25ed535dd07007ef0a986aafc8f561c3d367ce2356723107ad0343c245d122c02008ea2e7bbbd4cd937034e802531a1218739649934acb5a8e3e7c416e397009bf4b6c43b7c3bf8916c88d771605072b714b0b4df92b009ff43f6c94247738f6d89cb4ea06ab708bb758bcc5a0d36752298087247c4f245a5a0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000122b575bbdee9d1530be28cf8db7a1d858183ca98f6235a6c99037eef81322ecf0554c7f5286c58d2c05b4647acbe0e3b44c407d8b77cb71eb96616683add57ed02925cb3865496f9289c249000cfab710b620a699986f4d97833bff019d7419a0c3743d7dcdfcaea18d3b2e0ac0ff35ecfd8cc323a8a5f9128f86d9a31dbaed528167781b4f99fd97f618911e58b431105a4e2d018477313a01b2d0df1156b961754e3453822487f237f8303842fe5b8b96f75a36dde5ac5b1d1dafee49a97bb2d83bd10483c61e8e07ffbd1cb75350a4f8da6547ddaecb1c8bb771f7d99fda91fdd967c4263c1d661f3bdb8aa77111deb7f8ecd3ac6c0e752d9d83af68624f72b23493c2c8cd8d2d38c8a0b2cfd73f5318a13a340cfdd58e6096064fe3c305429863f142d038616ef1110feebdee00db0f72dd4db1b5bdf8c3a24da4c801f003397454f7189c20df110c31b86d3f600991c11b85032d9c665391444fe266dfc3aa866bf75bc180b02b55b426b6569883c383fc01fc2ffa6e28cdb0cb243f24d2a53496fdddf198dc68629e1fe1e304ec23ede50519ab8bdffbb59b8bf15f00125576d1cc365d62fbb6fee603b95157d5dd90744190cb7702e774e14e91977650b565d97173850248e93414e74cbbc84c9c097f10ebfe6ed3f64a9b1a495c76704378d4e27ba5b7910b59460ac70722b04c1247a022cdb73f86c57d8c384736e02bf1c35330b894c0da34a795a2e1ad4cfaad69f73af3b47181d593fcbb72a97152f3b580e8a4403a45b9294f1cb88a2a307d8e10c32e40f3bd48996567a227f004ebed66970c16a21963c211e797937651cc016ab64496cde10a4ab01eef4183fb14129968f3e95de69c3dee18686c8bd29d8e55de8afaebb1c8c41fe110be90189ba300f33c712a7ef2ca5985f5e14f98fc07158f56f205653375709aac4783e7645cff0cc38ed5810d35a67a0a1eb28b6d88ab05789fb42d9f995f6553b8907b0a2f04c02e35d47abdf3bf9dcd668dfcec236bccb2ba1afa014b33055d658384f5d0fb3fd1ca2b85420c4062329974277d6c54c81cd79e98d1c39cfaa29a926732eb17c0e70d2665b5c2be150300c5f09cb11aff7da286e20677ff1ad2fb8198cd14e83f18f2d99a4a3d41eafcff3c33ccdea59551ef32b0cc96d0e52d049004ebed66970c16a21963c211e797937651cc016ab64496cde10a4ab01eef4183fb14129968f3e95de69c3dee18686c8bd29d8e55de8afaebb1c8c41fe110be90189ba300f33c712a7ef2ca5985f5e14f98fc07158f56f205653375709aac4783e7645cff0cc38ed5810d35a67a0a1eb28b6d88ab05789fb42d9f995f6553b8907b0a2f04c02e35d47abdf3bf9dcd668dfcec236bccb2ba1afa014b33055d658384f5d0fb3fd1ca2b85420c4062329974277d6c54c81cd79e98d1c39cfaa29a926732eb17c0e70d2665b5c2be150300c5f09cb11aff7da286e20677ff1ad2fb8198cd14e83f18f2d99a4a3d41eafcff3c33ccdea59551ef32b0cc96d0e52d0493feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d0b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c21d8509a7454e82c6c01ee7f9d53e927b541a171fea9969f871cfc034c9763952b13cd6d52b7a32dda0c03c427c28bba72b3b40b5a8595a3c029cfe2dfe9b15a14accce313f5db11d06b277e45099796f2a6b9e284bbd31bd5b1ef642a2dc7642c762708227d8d9d5db25342038160352c32ee7a89896b63b01e4d1acff394993cc40f2563957cd02b5394bc253c4d0448f634cd65e2e2c3d47c95b581077a621e6a494cbf36abaf8b8a6a8de1165276533eb64441a7a8777834e338713e3148132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c83614840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d312634a76e6f4fb6eea219bb2b8224ba3e1737cc1b3c3492986bfd06622dd49953c63f8f67741fafeeb2ce545cfa5eba44d303a5699b931d6c0773dd7044f906f34b1e3cf64720e291183435640328b4deaafa0719bb491bf1f643536c5aeffb05f10975a0e3a836f1d21b415fe01c2eb2874f85853d65345cc5824a08686ff7f36c09b8e669ea32e887f597fc5b0512f9e914ef1814e2d8335872b85232f5add4cb3647199615cd17780a6803a4faed06170d5780e72674c5c32674deba0a522b372bc3108ffd0d085b814b44b3f0faf2047e4804348f99908d3cd663004bc9825b285e555ab6d8ba93203502102492bd86d49972fc501592cb843a378f3aa52e540e59681b126b5f69214be5e4f3ded147e020a5ac1cd868938d2e1cbdc2eefc951f3163f13d85737fb86ee16339926dd220b1bd2cdd108e5400ea0618b9b8722235bff9de5fcaa2264c0038dc5840593451ea5f384bf256ea8cbfc33330ea528934bc4cad822d4f93dcf65f1272607b7fc1e2598364447fe8bc3209a1e85a280a000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012af8a5358325f3aacbedcf1b3d72cd810b38f0b3c4095dba50b5b5c2c73008822c990d111143ec5ae8b2fd5cfe95a081940e16508c8b08a4d563a88c6555cbd2039f457ad9bf9d471c4bd0bda0b2c9d97e80c7c3f74a6f21cd5444e26f81c0c01675f7640706525c4595c7e6a77e09401a688fcad0ef67e1c70ece1d1e91d15c3f4ac9fe2cf45dc9989e719ffa9f09bda9b2e908b6e4428c803c9997a6ff5c361e5495d541f5b8e99bdd7fa4da5aab729e508b3f7227ba4c840b70f4c19ff5d928ba57bcc7fb5f7ba8aa7d41e0dda2cfaa0b9194fd191de0477efa04948dc21a1e0064cc9cd6d8aa5a3377a98c18e93e0ff731baf39ffd422defac29e869431a2283975c0a2074975e5debf3eaddd50ff2300b755c1a9cebb9eadef53bf5ae1827b3d19b0b60fed53f9e42bce73564005381d319d0b1ccc4e590a4ed5debb3783a96b78c9605bc0f9c4ca9045c565a3ce2df7f60913a93bae4cec3c8c7b22580304004473fc82c196f9eeffd1e12d32f461f5e5ca5a5d7b03fd28dfba4f164100d24a45d9ba83d84cf36b9097f893b9a722a040d717843b9ef142419bbb6e4e70286122f059cb238b2bf5f38ba2a0a318ba7488aefe23358a5f152c6ec78827e2b7b3d7dcf3fc0df36f08d47b2bb3bb8cc58db29f4fc1c9a4a707c1d70fa0eb62b3d348fc27029a1f88e4122f8e229e7d56620ee4c8317ab25b08ca05680a555193e8c99add4c3351515044e2ca243a9c8f4a6f14d18bc47bac7391b641d42031336f2f7431eccb58cebb26efbc3726c769202c009ba0d97cbaf60354b63adb91cc48e2a4e4646b4c815ae94927e28a90e83a57b3634b73e1e3e8f9ece560ed8233b71d5b1b9b94b37ea516b6d81d75713c2f380d31841dd7aeea14e31a9f1290fd6c6d3875f6187e86c68e6dc76cb4d0405096ffc6da1ff64de6c4007ae4a363029392c78a09e7817939719238934b31e418f8c0cdf571c344ec4acf851b5cb0f31e221a4dce7a78a1e0c824e51f880f1d29633e4d730e15f2aec532667730d30ce1dde5b23185875e1f37db1ae077f307402c82475c83a3a024499d9988cf40bf96aa838508645b2963e8b8799da8496d656076ee6fb4b42a96cb2c0053f4034069557c7af79ba4d69c1747866257b8b7042f49a65fdd05683c43a3ffac0c11cc48e2a4e4646b4c815ae94927e28a90e83a57b3634b73e1e3e8f9ece560ed8233b71d5b1b9b94b37ea516b6d81d75713c2f380d31841dd7aeea14e31a9f1290fd6c6d3875f6187e86c68e6dc76cb4d0405096ffc6da1ff64de6c4007ae4a363029392c78a09e7817939719238934b31e418f8c0cdf571c344ec4acf851b5cb0f31e221a4dce7a78a1e0c824e51f880f1d29633e4d730e15f2aec532667730d30ce1dde5b23185875e1f37db1ae077f307402c82475c83a3a024499d9988cf40bf96aa838508645b2963e8b8799da8496d656076ee6fb4b42a96cb2c0053f4034069557c7af79ba4d69c1747866257b8b7042f49a65fdd05683c43a3ffac0c11ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a1d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f311920aff83835a5b4ccf729e3b4b253bd1f7d7324fa0ce86a7dfa7275830f1bf16423a3be95ea9f18d2ba1bdc9e20d742dd3d63c827f198de024754695b2fac8ef32deb307a3d1a7844d20e88da87b5ae0239b5c2e49342701737b9c664a4fd6d6924100b05774826b954c1e98cabc2dcf1725adab78078c802023ab2171a81caa3163a206aa9162cf827adc731a5cdb7db8fbc61aa5764c85a123a61e921fdf31e1fadffc2b1154b6729eb1fbe7e0fde2dae0bd0b60207b2e40ecc3f5492bd3c201040c9277dc8c6351fd039b70656118046072e337c872d37814fdf794ba768ca31870947f95bdea9c3c192cb3bbf7effe29d0fb7bf7284c1d7e0d66acf118ab03cb23cbf15913dc054ca1de6bfdee2e625b5cc8cb24762ca766016a63e8e293110f547f27e8c939e20c0942da06ea810edca7ce96c3f85ea1afab3e442288e8602ab940240dea4835ca7ab615f5689414d24670783d804d16e1d682914e4b3843f1c3e6d3646005b86ea2120e2bf073edb7fd6e3b821ad27eb134dbb05d43ff711248aba4782c5d998e6189623970a418ccdf04bcdb2792b2f69c2ab45d328d52edb7545b87d3a266719e769dc68f5be9578a8b03b9a7ff069c36e41ba2cd72d3d967b04dd949cb2ecb731cdc97b6e35f13711433f1753b02c1107ff351b889a0fdbbf16201e2b7e24d31455600186627cdc68bf38594fb5eb8b03d379d81844083e79fc60e79fab809a7f5c728487406136c07b7bb86312f718fba4dec171d32773b5ad7d2b090a09ffe4faa72bd5de4703574992ad1744c995de12627ad521099c824c492194f65ae32b8b45476186f9502ad9c9f84b2a6482d38f9bab6cc901a40fc986f5e508af31bfab40646b051423ecd55dc1683badbc83ed8173dcfa00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001376c19be7028368ccb2f06c8e33e089cd0a01e6279c2b4377938b953e1c0d05b27a4f9d6685fecf97d53a8f085597688770883222fe1164239468dfed75958180928c4cfd2b1bcab5fc034c822130b149bab0e646873ff883b1cccab5752d9011ebf43097799114449d6d94b8f3da3f5c3c7395c128e6b1f3fde543b4e603ca000ebc5522cc043ee20c6e697b9746a0a2d5cf43d013d8e52a03b7e36e9dbad7730c03f23b86982feee2fa7017c5d31493befce3ac6fe2f752e49d2831efac9a6193cc39ecab1544515c0811be32cf039a8fc330414c142f983602927efe09071196ad97a632be84e02346939fed354ddaf8c44ad1665639a62ccbf3b192d2ab03c483899dc3954a3ef751178a72a9c51ea4d23a4e3cea3a42f82d32c612f478806d1c79450deac6f0efefca30f222ccb3ad70f94882bbe01b122a0ce0861c0ba247ed126d5c76ce65c5be1d6d9eada9cbb042a91bb5cd9797e32f78dbc17042017dc15fbc8badeec7e73586330e5a4d41ac84bc51727664d4d6e8564d11e5e33334816be52d760726aa2ac11345601ba2e5641fa3a58b8ed5da449aa5788cc231c629fce4e6d8f4b17536c31055d4411f1c1a39a304eb740d08e5e2350a69b4309fe982a5677300c24045482cbcc4744d617ec0b7f052b2bcc305fe8338657510800cc066c4d8d1b9ca821b6e824ba460ec9d4476bfea2b2a6a9ccd975c5adae3b7547978e246f4bd8ef072db9224ea37e4d3a0afa0d421c3e7f9ba79239be683bde76e0cc154965d3e3c60e488ed1f78a53c6c7cdbfd913a83d629362567dfc17e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d28193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e1110593943781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e20087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e1158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c2a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b69652bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef617e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d28193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e1110593943781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e20087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e1158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c2a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b69652bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef62a541dc9aede8050ad6648812a33cfccec8163996bbfab69265fbcf2ef361c4e077596ab5d4f14c7435038a9742be3e6b737f77900011bd2975eecabf38cafdd3000000000000000000000000000000019b4f2bd06f9bad4b2e1e4b1c00000013000000000000000000000000000000019b4f2bd06f9bad4b2e1e4b1c00000011bbf6cf08a9fcae4eaea8d7a724774b3c8891d34d51de544ba34750fec2c5905054e43e7d570affb9aee4854bf65e29645e89aff47a48510591b37be81e7333b255565b8bac20b8c8e750132a560c37ef3df331436801a7896862ec06cba474336098084ccd24f630a4526a8ec327dd02e337604f5c9549b72cafc70dfac942c288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc73502405abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b328e0e5d239105f5b80d47da2bc3f88cdacf4a3d170591082de15897ab082ec95182ccb0627001b850504582c756dce7c72a060e0b10fd66001d0bbca3d909fac25abe23651217faf5299b77ed5cc30333e56dba19fe08bf95918c03550c9e3b4088a6954a2b0eb38bcafc7568bd41c195159aec6025222744eec5f8f4c7350242000000000000000000000000000000011234c7e04a67c8dcc969876800000012000000000000000000000000000000011234c7e04a67c8dcc969876800000010ac638a8cf8ea937a5cfd2dca9768e1e91fe046bbe2c220883ca8c33eee65e1223ea3210f0baf3d18e488ffeda72d1ed08283fff93761e18561d394428b76d9b3aeef6c630693d93fb6067e1d8d25b357b1be696bffdc11d34314f9a694cf4172850ba5536ba7642c5272fbfd65327d276a5b8fd336422cb3beee5b1199c3bba2e02372ed819e8b59bdd6f3191761e2c6482b87cfd81d4fe877ba8c5a68af88223f35650420d4301512ef7e3d889e3ca011820840ef356cdbc03611a0c5635d9000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013103173e02af76fe7bc01cca917b86174b47fdaaf691cd346f0c253577f0786522cd78f17f6d8c465091b7b0a204088a1e1ce8f5dcdf4df23e18eea57f29771503dff30ed4bfe2d4bb296220f3f7aebbb580faded744c81ea0609c96daca676f3f2897dd46f24017302a93e9a8477a721a53f3a987b1e349a714c59292dfe4e92e0130e4609e4a5f207f5279771f2b235aaab7efbfb5669cb2c32fbab20307411202fe3f48a90636391d2df50de506d7028f86e4b71fe2d3fc0603d09c17f35f2c7efebed0e46634548817edad3e11eefc659f95ea9f9397e1b7d3b0a9ced0fd36b9e9a4fa8d42d9cfaf325ef2fe632faacb6ff08f581fb4ddab283e99ffaeb325835cbe525fdbcf40b144f4c568fd72d0446f4b6815020e78dc2b25c3f87a3216c2e2174f049ed55afb2959828b35f6cf45c7bd6af632167786382f9a29d1f517ee70afb169f685e89b40e8c3029d8654573611c72df2eef9846237f2ce24923014812b48db8de104c6e95bc2b6da937f7a42ad448dda5bf48c2f8ec33bc3b730f0a144344f4295782e813fc0c8e76f65fd8387471362687ade7c5e3a314e321eba15486cf5ad2809c7970278ea5e5cba1a620d23940dc5b3542b6f6dfe19342ab1da45968df2538581430fcbd4f1de9ebde75007ad2f0c50fdb35d2562e8f02a68de31e6e82f780e0e468a1c6c12e27b01363b8fabfdbf99383913ee40330f006f8d6d35d713bccd649eabfa6cdf4482dab5eb981450f667029fc5280f20360375b746d74aa3f8a04de42a501de7199a4fc4c7e2c92f9cdbda891b3c5041b508ccf4d3a5e93ecf17c6dce5a8ee2a604a4de7693506ce6caa2463287a5d817937330b2c5a16c130e839231a5711d59fd7f8b192d4462aaeef08cdc485a27e882c00c8223d8e3a0b76e2507c4ca6d3e17385850e0922081f52b5efca63d3875d13ff37ddc271c5f4891daf83b3592c1eaec113ee002af0fc467741229c2c78a41c03e8ab33c72239526b926d7f422366dac7ce5211c33d49d2061c2cf321a4ce23fc1754cc38ddc6ad946d9280bddc99477ecaa9f789bbd1c72714c00cde5b330c138b5802e3ab1e9c19dc237c4ab1020159d5a246364039e7c42b06bfa8380433ec74a7fd1c54e163e623dc83b54efe20ecc359c316b8e1b16905e64057c7fd08ccf4d3a5e93ecf17c6dce5a8ee2a604a4de7693506ce6caa2463287a5d817937330b2c5a16c130e839231a5711d59fd7f8b192d4462aaeef08cdc485a27e882c00c8223d8e3a0b76e2507c4ca6d3e17385850e0922081f52b5efca63d3875d13ff37ddc271c5f4891daf83b3592c1eaec113ee002af0fc467741229c2c78a41c03e8ab33c72239526b926d7f422366dac7ce5211c33d49d2061c2cf321a4ce23fc1754cc38ddc6ad946d9280bddc99477ecaa9f789bbd1c72714c00cde5b330c138b5802e3ab1e9c19dc237c4ab1020159d5a246364039e7c42b06bfa8380433ec74a7fd1c54e163e623dc83b54efe20ecc359c316b8e1b16905e64057c7fd2ac0ac6f9b58736d8b9902a0567227960edc30fc3065398d32cc71a5620401191b32ecdb06154ad4de0590c2867c0b6df9c5abeae1a5be2bd2c68bbf2f76829604c82119cad824013ef1bf8ed46cf0b6b3d833551645db7f2f7b7bf50b5b920a3afe6009c6a9219031e2300b14d24812a826c447cc8618769faeca6169faef7b0f9953b8cab91378564d02cdcfe889df1f5284980d25d4396b9c92a113d972e024b344e00bdc152b96720f701c2d881e02b5b8ea83cfba3ed035374191b8161d049db4e05814bea45a0a83c63a28f040b3a6869c0b2427567d479b8bb6dba7433b67fecdfcf956a17525539c36a55ef1686f87628b8544536a784e130b4746e42c9c5447ae1258463f3aab447a9f9906b7afbc722f2eeaa83dc7e2d2b05d15550da9914a1efea3e5e652d1bebf32fb2c4a8339fdf7e114fbb9026c3948d1e57b3875d1ddefcd02331aa5654f15979079639b6a80e6aca760f7658a998c21daf13c1045975546e0df6145bd54ed3f48baa6fb0d5cda16e558a79c5acca4192c8a1077327699cf689135753dd0d520e7b35f9234aac2a1e40f36e5435292a06cdf29ceb31b3341939af0183f3264b1ac7fa2a0c1c5646e1b94bfe50bb9668e8df202cda12c7ad0c4ab4f226c1215edec87150efaaccac0cf137de2d71949ce87643d325ed3852f3b54b0dd93edea1213790d379e4f3e8c2a081b4a59d3b631789e37f2e5208c34ad64f2f232026274e3ad5f3c2468bb21c0d577f8fa4dd0573958367523ed5991ca9f478696e856af15610f624aa94d6bc08e5c213b06e02628fd1ba7ca113b0f7478d7fc6c6f164b0f787c96f727edbb3acef9f8c1af257a9c7f2360c14b8a91bbe15e3abf25bd7affe61e9f7cc3dd44196c2782bffb3e9d876a18721e0209fd7186c65a02ba3696ebc901cfcdfc4d1f91b0485dca66af687433041454542a0ecac2b8a2e92e155ea002c05248c440844188ea37f0eefac8c353000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011a84981eca93f884a2db4f38c3838701c2dde3d80aa2cbc2572d2f8d33f143fe3ac5af6d688906c0234d1eb31b88dd8e6c989f08e5890086ecbef1436a65462237c73422e8a223439211c36d87673168570b19122d8917c23250efa7c2729c9e2c694dca9ffb1724f4638bb6ba29f1b711607c64d0fe078fe93d38428535af9015d934e43b79a815cb429d9c54ee466c2e6716ad6bf282405b88d54d1604542b1f62f6fb0f643a803d036dfe26c762f1d6200b280749861c9a974a78433f1715046bc61203e911482e084af5e2dffa066a9c1ba418a20eef25b33d30beccb5fc2912ba0bcdbae64f3768b98f12e1da4c335a3ff2906865ab95d7d03fd8c67a9037be856b3aa3ca0cd973e145dc2f6302b17aba0ba5560fcd334e0e1b0130462102c0f6330e321174f60608f72c1ebd76a47e07f12e5c348758fe5631419346ac232729a73ced6cdf91af471586bbdd24ae56025870b4eb3eeccd2fc808a503bf103a7c1276f5849b7e96bc5907ca9d823634262192dc9f67f945fe3ae5919c3b2a9943e12103b2deb549c1cf2d7b9673f0a5f8fc14c7f60751de7a97d5574d84251172ab80413cdeccac56730c37af582f71ec9855df7a26dc542d35d2d819e2085155c2842c025f60f559c18e7043656c1bf9483b4f335fea8fb8109d1ea51c160503543d79a1c933a7e3b3b375d3d138ecbf7f8a96769fd4482450f37a465b35b90e768d50f6e2578ba668b6f747eaf22a816276ce66cfe3853792cdc45ccf3fee04410e62f937db2e2dc882c7016a96f8a5d70c760b31b1f11d1984b270b6363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545409c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad0f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a030dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f34537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e23a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d366363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545409c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad0f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a030dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f34537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e23a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d366063701d30cbb53d7978d008cd3615854317feab4f9fde2db6584c6b4ea9b95e5068b7cb70c4e968fe90a321a45ecb6c221e359af3f511fa60b4bca61ced1e0ae24ef2af288a311bbc5f02334c1052f8d299158fbdf2cdf5668b90bc81aac4bc125c75f1da7984a0e35ddd3cd4a1939fa3b3b9c2f959314eead426e27e2792dea0fec9db111a2bc701c877b6b49a793338e01242570cdb4629ba3d7dc2df4aef00c92b2d6b47058a06fbcb270dfd3adfdc463f7d18316e233d08b9f3170c2b1cd32e8f9e51b4996ea4ec2ea7f70712a16cff1a2df425c7ddac327a68cc9da51c90c5c2e6ebc54236c27fc8b5428590d0438e98e29fe47dd99a493d90f276de6ae2e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae96839ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e1077f591920208286e763acdb3280fb019c294548137c4442d22d87a3b88b5fb0150d0e603d5b11e21fffc0c6b34c7f9f61c2b730739d728c23e55906609311914d9d33a6aa19a6ca282dc3e6b99781ec735554b302236e9caef5e6ffab81e5c13ad242b4c191f61e117fa186ffa0f43c527a31d3468c486e09ef8634eb4f16a1ad9f810f690e544399e4ef64805b2645d573ecb5f0946ae44bc2833bbf5f7ff252607ef096f1abbc661b109b7fa4d9bc4ef5a30aa43b26d547108b9440a08032f88dc5e4ea5642eccf818c32f8b161f1a364cc57f3341c184caf16b339352972f54001cc08bdb63de0cfbbfc22b6423fdda3d8bf2383bc5295d4325287444e61a3b76ed4926cd668e66a7960f9359e61a128be2217824f476fa8e2df022948f2ed1dee3ca3fec857296b3b29fb017abb43f17f590e377b90a1a029653dba3c2189a1cb4646ee806fc9574f1f069b105345baeec8b6242a578800966a654500a1ff6e78263c71a516be36315a67937c01b5d236621c075307328cc3a2b06b312000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010d48c74f18cb38d4059436b8f8cd3331f84491d91ff6b08aaa67f480fb35c12f0f289be9ca8a8d0edee6cdd9d86a2d1131b3a78bdc3ab5c81fe46743aa0d12d42923bdce327788d7d7764ff10ddfd2a88a081ac9a4bf181e62b907e74b7d388008776fcdf6c96f2a0d34d6ed7d0c83f996f02a5f080f1032e45817d421443a0d3cba87251a3884150994c4e182167aeb6c804cbd83d9d09d1d95a439956db255280adb2095b8a32d0f1007453516acf1720522aaae717166a7b0c4d75843f0ca12ff597a13e2ee9152741a485848d30032c704ccfd9ff2e18e44725bff4fefcc3cf996ac7886009f2ff2212bfc949df5b071b3bc744ab991d8832a9f3693ad671dcc0de975482191fc71c68f2d9c043ffdd6e28a2d91e1d9bc3a909db70335801ab59ed070c06c6ac139095dcd5cc9e4d2f799826f4e4bc89809c4e71a452bb51de93d33098b646db587ddfd3f0f4cd04bde7a0c96d697b882fe58f55c4d88b8242c8ea6d8c6fdc8a19b6c242024d8fd7982c06b6c6bbfb50c20a7e9ae5781641a09c525a0b8b528e8271478f996c8fa5a7a9cb412689f6a488f50b8a76165c735a0f167008c3a9499cf03c9401c7cd1c59d48e0583ed0c3e5a3571500ce019f105ee449421154e0b84ea2557dda98bb8af7b51acf589e340989dd3a5e9b368f12794fa7f3144ea64b6f052a9003728ec6bd7382363742c25802beb5310454543915c396b02e51949eb7f630606a3953edcae2a5a9aa3cb7890410958cdf5aa623ec6a4442a2f57dd4b5ef4bde737b80f9da7a376cccb382184aba8866677d2805583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee83aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a06130191191ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a882546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d579059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a63a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b1c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e23ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c305583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee83aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a06130191191ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a882546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d579059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a63a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b1c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e23ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c3299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f1002214accce313f5db11d06b277e45099796f2a6b9e284bbd31bd5b1ef642a2dc7642c762708227d8d9d5db25342038160352c32ee7a89896b63b01e4d1acff394991ffaa18c3bc1139049500403dfb0a68045256159afd6c550275472c9aa6b8c621319406bfd32611570a209b85b38e49dd7727b21099400a3c3bf232a29135eb22368a8d9f0df500d29c787f59bee3d31a7284c876cd8b378363c8b9485c4beaf0168feb3ec5487731f5a78c05dbf2354012ffa5efe36b383af6c5d5787f595aa0b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c3feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d29cb941a2f109d6af605b466d71c4c622649f3c64cc21faf9dab0468e4ca2300082559f2d36f6e8b95cede951b4246eff9bad95367b060e060c585f8f4936c1901bdab451ade8278151aa000b6fbc7d54b1e479e66bad359e401066eba70867209a39f8854fb6f435560a9d83f0a321687ecf5e3a45fa3de41751ac1b91b6b4701d2f226b015fbbcb551f2837d048fa7d82069cfa53362d415443ddff702eff63e2d0dd94fea04434aae0d7c82fb70584a262f2c6419964783e8f30d08fd100c0dba471319cd6c8df99741293f7f59cdcc086e13965a56ac88e9c7b6f617e0513c7b0f2af395ef9c3e7c5b2d86c2e0446c353379649fcb3de211a6d48dff70923d4c3743bd7fef78b8474d1f56403d39ef10f74a953d58889dd7ba652d9aa2263823171b6cceea4c6b397fbd2fac3cb257a690c13a3179c5ea8e50d996db174f138cfe690622fccbf1a5144046b8057ef6343f2e51fb274c481c8a4ebd5f00a2398409e28ccdc2d7e9ada0a51a4e665440c1e30a0ac2d7803f1d083d08d9252100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001121925e11377999ac089e5509b9fae1e0da5d9cbf3582eefdd0f4eb3d8f67a16344b9a77d753303645bb081baa70f16dcfb273f4e18f6826746332914c66b56d2c4d6bb06a7d10b4ce83575682a6ac2782ad5ac3e03987cae9d64f1abe611b1535f0d90b8d1acaa4272131ebde9a5621cfa97ae909e030ec1ae2aff1a1aceaa40fbe3be46fd1a59a9040b6e255d7e4766edc7691ea152e2964c0be5c40a84b733f2340c5e8c8ef7e86fad6e53d5b551df977487a51126ff4b0265c3a845f37531271b64059999e7fbc140afdf170215165a2d9494d68dbe562e00974b08477e93c883f89615e3b2d7eee88fa98ecfd4e2e4cd91881599f9e452f49ac865522d323b5c0efd4ff0bd61a2094db3a90bb538ebe6724ae0144769e02100ed1653c5c010bb189b7abb2c1e08df8e8cf4d9a478a59546d4f4b35416cb6ffdf8af1142f2fd85e6375eb3f423bf8eea1b8f93476ee07ef50403135fd216f31beacd45f850c71b917bc21d56080243e775ad3fabc8e29b9a7f3e6b67478a268e0456c14e320c1859c9196baca20afe06fece3c925ce47538b9876455354ffd602ace41df82ee930f00fae34f3614637d24ccf7ca651d09208d2312adad932d1cafb4b496e3726c4b3a89dc19e07ef9761b96e90ccb7c49c1480c0431cb5e2f5a2206eba8315340ded9229034636021ff9172b181ba12f7d80e057ed96a05a53c10a90a16137acf332e665f2900acc5ae66d661e0538aa6807ccf32511dad7585d7828fefd1043bfeaf8891514de36def343ae15ac530d00748f805d418a7d8c2e8a9873cd35fdacfe5d9d523654e968cee4801bda3a702c8d324eb684cb8f198e119c1ed40a025301a262adc9ab1697311b7fe425e7d66c6ed6fe4296cd9e175eee63e12d0df460f7d4129b0fa88f0c0a76808b429b167ad1d655ac299516bc12580c9a20320b9f082bed64f05770f3f5897f74bd87301e2a32f74cf2041674daa7f365e105c5e4d7245d074e4acb3c345082b84ce529cd1d265f63b450447b6eb83f029f3a3a1b28dba2f8b1b534c3cbaf7d47b33d1ccbdee2ed956748e8b57e47c0fd621cdd7833b5d1248775f82d05928d998079d10191bfdcf28591566929993b0d1b232287cc4a2edb788a07d2fa6d72667fa875976a4970069607d6c7c366c4f2e635fdacfe5d9d523654e968cee4801bda3a702c8d324eb684cb8f198e119c1ed40a025301a262adc9ab1697311b7fe425e7d66c6ed6fe4296cd9e175eee63e12d0df460f7d4129b0fa88f0c0a76808b429b167ad1d655ac299516bc12580c9a20320b9f082bed64f05770f3f5897f74bd87301e2a32f74cf2041674daa7f365e105c5e4d7245d074e4acb3c345082b84ce529cd1d265f63b450447b6eb83f029f3a3a1b28dba2f8b1b534c3cbaf7d47b33d1ccbdee2ed956748e8b57e47c0fd621cdd7833b5d1248775f82d05928d998079d10191bfdcf28591566929993b0d1b232287cc4a2edb788a07d2fa6d72667fa875976a4970069607d6c7c366c4f2e620e6a6375b0b5eaeeb6fc87a8cbfa390fbf15474932bbe08a8d6ecbb879cb51f274d3dc3a846fc8924f1055fbf4f5ad5848b4b6ec07c76e6079ee428f532d6321d0e91854489c12ebe7a3fe60a253723a77be6156df5a2af0472425de5c64eb8266251b54c6d2543d21425e07ec0aeda47502ad99e9fa2f46262cd952d3d0000285e227dcac39affcaa9a3843ff26167e7011a6f7ac8f89a3b79077718e6e22b1c8da40b524441fd2cc45ebff9a1c1e345dfa49e131e3120c317c2ab7c76eff621f8b3feb7ed63a24514556281c512bf418eaefd6e5b0066bbafd9afd9e0cca10542da47936f227e122da6de23a2e72b4d2c3e2b7e5903e77be09f12841efbeb11fa42639b21ecaf1ed4e983217b62a6709fcf49a5422b064a6309c8e2c557662260f666d094d1a6403be2dc098fb8f586eb4ad8166745ba69d9a8268d67ce95320c56a8439f692f2fd68bc008d17532d03117ba485fbc1f13c462d99b8186f10f6e8ca648718d5b370910bda7dcc81a902a2f60423f21141d248842e6d8fc7a020ac843606ae0225615f79f691b254b7ed95e72082b9863ebe401d3929cfc2b325070870b4bde3308fad4bfc1eff65078b1bbafb37dd85cc858b01bdd9029d11fa9d1dc8fd60e7c15da14c35f8b6c561a34ac95fb114bc51b378a9a05352d9720562e237029f183ea25eb3ca07493aa0811ec660e3bad567df5a652facad26b2d9ba4be5e87a8a6d91e99ca9ccbe5a9a5fae8e8c00e8665e86885dec7035c892f449772772d8f0d1808979e6aa9cc1a262f7a594ad444b4daba98782763f23f2cea2a9bc2cd88a2b90e2a6284360f4ad85f71beaf67baf9a1d7998f7197c97d136368bdadccf4be7a47d1bf570ed9020ff486d6dc2b93d1caa3b207ad9bec5f1539816c6fcf97ec74ffa45e609c4a4e9a6e98b511ce4f61d3d2b75fdd100c6f0ba7f838f4116fa1950b63dc3d4bb4a25fa9385f95b0ecdbac5a8de0f31840d500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001278fefa3dc6bea632d3de4d91a3980fbf76ab722c80d9ec718e7868e20e1b7761de90dc22b8640c3c895066b3026a58c8c30d5f765c9c6894002a17f6da78a1336e08b361ffd42fad7a6739185f7a912bfe36a5b7d8b01771db7b59e2a14b0e23d05ff18ca10f74219cc3a8ec10cdb6d0be921fe9366e4b7c309c6ce929dcc6c15789941f64109be1ec03a21e0e9d34cf04216a04e514d609b8ab7d8e6f1a18b24b9ede6d2043eee37eb447935b0952df03257189a0164dfffa0c0ed589ee2a51d753d02252b3ab7dfb228201a5fddfe169601d97847bf196c8fa9cf8d9d16f43cc8d6b833722960e6385fc64214d3a2ec9e321aa817d603bdc9c0bdc6c2e7ab136757e08c18da1d2a7dff26c35b283df8b6873b075d7bcf63fce122e9fcee8d0d0165bcff194ca25b3c18ae14373c743d3801d9fa58dea76c0dc80921a36277223ba8a2540450eb68a159f975c8c3eff724591edb6e2b38b08ce28f085c36a41a9707aa16f84b4f634b35d931a8869cb1e400e5d724aaa3656ddfb311bb589834098345ba5acc7a21564c8b7102d36b2ee9f751b5cad9f6fbb4d3cbee0b60a71ba13346e6ea2343609fcbb6c8b07260f12dee42b4dc9637327dd401ba2406bf30336be1c13199a3df4ce746867ae5e5b83ebff4322a4a8e5975f6b9b78693900f6ab6cc4ae6bfa482d984aa4dbdfa3a29f83500eb724952dfd8c865202184c537547d67b3a629dff4aa8c7b11e0f0716196d4ad566c3d05f4c6a3fc4a51a963063ebd5608275f30a05dbd2797ce69efc0713e175cd8043cb24a44c12d63ec48167d061a091cbe6fb53239bd3b4d0803a1d7bc7db610da62362ef186623c8a902982f9e5f6e341904acdc642c4b2f7fc806edc7e533c1eb962fe3f669dc3757130711e822d8fb82e89fb20b22881281206f0157885074acf75bd86b2eb2eb4cf0f8ee17dd27047d17604df4dd77ed7ee1b5683838445ae4c236faa3a14d14b323235988ae3ce98e8b1e7a37aca85c859bbdca0667d3d8aba812c0eb797e988080dca67751c3167174e185c85357a37a66669f8958c0f6e6118012235681677f93b0bfab67308fc8b79863165f49ce9c0447b570c564cca51ba54b6cef78fa82504f405498cf703748679ce9a0b63163fddcb41efb3002ec9ded87a1e087057dc167d061a091cbe6fb53239bd3b4d0803a1d7bc7db610da62362ef186623c8a902982f9e5f6e341904acdc642c4b2f7fc806edc7e533c1eb962fe3f669dc3757130711e822d8fb82e89fb20b22881281206f0157885074acf75bd86b2eb2eb4cf0f8ee17dd27047d17604df4dd77ed7ee1b5683838445ae4c236faa3a14d14b323235988ae3ce98e8b1e7a37aca85c859bbdca0667d3d8aba812c0eb797e988080dca67751c3167174e185c85357a37a66669f8958c0f6e6118012235681677f93b0bfab67308fc8b79863165f49ce9c0447b570c564cca51ba54b6cef78fa82504f405498cf703748679ce9a0b63163fddcb41efb3002ec9ded87a1e087057dc25d748e65cffce8e1cf09924474a2e4fe7a8905061b1795b5a6792092ffcf4f90cf4744978dfa55935648e4fcab96ebd33e91eef20a37884bc15fd66c82c3f0310bd10672d5ad277e743b3964de956c989de2c98edf5232c2bb60ef008a66dce1223dc277bc3bc099279c7ae8696045e665e40faa556cf48884b19d8df5eaf553770ba7500d2a77b885a6e4b3ba0df84e485d504803ed74304deff67013e092d0c0a4154e40c2e2e1c318c762a15901802af7f7c0c739541a6229a3d1de7a7f33e69c8cebf0c352fc78c84a7593737392c05e8dbde96a0b602aeeff211da43f235a2d47907377ed6757fb66a488bc3e870c5f37d2b41fa1a6f352361f6a885da31db538e220d9050deb695a20721092fd516be72dcbf54583fa16ac019dccee5387802b35ef46d465536c7a5125bfe9b85eeefae2986b2a5c1676fce05f4e0003cdd3171d8a6ba1b12f5c44018b64cdd7c174aa5c11c0951e92f3baecf5f282f23bcddc963198d0d17d8bb3c7880c7979d283543419769d9a6fe661967c16bd0096ba6b275a55ef9fbcbb3456acc7ae6b0bfdc12b9a65c94130f8ff3c75c9d3b20e7af8f0b5c9e9d3821aa01aeb08ce487ff39124352b14e54cc19ad587511aa10f3a3ff16b0f1b3a694eba058707c4b4d178560996ca309ead55112c167bd3c2f0c5c00e94f0e4c596b145fa78f83b4d52f139b6fe05611ae57dfda3e9842c632b7726c1ab587e622d7b798dda4bf50ff0d62fe57a03eb289e7ca20323855642aa4d7d371480cb9ed5ab4f5edac4d6635a4fcda921daeb3e707530de88dd4c6356030f62fab83d1c710b6292adeb53f755b780845f55d01147b4f064d26568739ec6b5b9399c8c79e489a3ff704e833ac86e479f2decd52c3447487222c60c218272805373e5941625585177b3b2657c98bf8f154a011fbf54377601b907b291cb1fe07c87c1353fb6cd6feb039bbe516d6a73c7609eb18526807adc8555e000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000113a4e67335e4bc621eb491364957bdf6dfc3a8db625c859aabca7a52ae4e3ceb295e6748365ddff259019fd041bbd4a25d1a0290907cd37c2323b6e8942e682a188e0b15a67e88c58018293d07c15867a7c1fb774dad2a2986d78d166191daf502f058fc075055be5f96d11ce7257ae8e123ee00d0fb5fb9ab1b982fc9a928ae10d04c7f7b164effd5615873868af3cf32860cdebdf319c00000560e8d5bdd063c9acc621bcc413cbbed2dbb21be0e65ca262a9cd202f559bd46cfabfe0fe906299cbcfcccf473fc552450ee5c5dbfb0589ea6146c00c99994c3fa436d309225297e5a44948cabc8d9ec0e99e99c900ab3aa43c8d220d8d09b464aab756626312355fcba7a2a664b1eb04ed6b59dcc5362e07019fd7be06a72eb43726221468e3fa639c90428a211b306bb0ebe4d8b1392f91a9f65d640016e863a58ab7d488f11f37fb3b1c750192dd2b9c5ab8707c4292e7b323e24cffb499c65b4b1a5a4660cdcec32b21c4e42ef4888d291d320e6f26a19a82cdf863bebfd232251e97f8c077b881a2ba17e259f8b6c55f99ad206931433adc9f4f1d56739bc71d22eaa28082f2e7275a37197e26aabec401873c56abd18ea9765853d2dcbba6ed600bd3d07837bca364032b3cefa6ceaa15a888280a098267b42ff410c8dcd450f8f806d2bf90f1e9c437ce87db77553882f3954b1df2f69ddc96c68384c7f8ce097d6ed225c09bb253d45f3f783bab8b3a962fb84d7315790e4b343eb8900bea25a5b303e0619aeccb8f653c850c3b90efade9e876773e7509e5a226e42d8ed9358ea7707fc67f0d2530e47f91f36ded523f7e7013069392919e4978abc6e0f780c038c3803980f2dacf1b806e0c9212adc081921162fc2e03314840e70c2dd87f3fc7527ee07b41b9f4767dd9c125a29b3d78305f20e1dcd8176f5b5ae264d583c11bc1811f84be460b8982263eda5d64c287d1c548ade3bcb8225e37f0a9fa7c3ee4507a626848a1c6507540c5bc2d083358eb6e67ba0e7a06779c0df2cbbb92c58a93859d97b75e39af8abf3a43d2f7cca716b601d5b21ac91a1d84e043146d3a758263ec096b28df924a43dcace12900bc992806a2486220560c45bdfaa9dddbb4d19c13f694d7206db5bc23531ed6ff4368fc62ed7832af3bad4d15142622244b407fc67f0d2530e47f91f36ded523f7e7013069392919e4978abc6e0f780c038c3803980f2dacf1b806e0c9212adc081921162fc2e03314840e70c2dd87f3fc7527ee07b41b9f4767dd9c125a29b3d78305f20e1dcd8176f5b5ae264d583c11bc1811f84be460b8982263eda5d64c287d1c548ade3bcb8225e37f0a9fa7c3ee4507a626848a1c6507540c5bc2d083358eb6e67ba0e7a06779c0df2cbbb92c58a93859d97b75e39af8abf3a43d2f7cca716b601d5b21ac91a1d84e043146d3a758263ec096b28df924a43dcace12900bc992806a2486220560c45bdfaa9dddbb4d19c13f694d7206db5bc23531ed6ff4368fc62ed7832af3bad4d15142622244b402137e04dacf9afbc347f2bf066d88f624070fedb8de8410940ab528ab8fc49c0427665ed95b17a0576af512ebc575a225cca770747fc11a85e3405b33ad6bb03286eb1e3ecaa056affbea5789533a4e1831888b716c307e647a2160b3ab9f080df3103f23d9644fa72a1b6c1b961a9c14fca4bc6d64a098a22453fbe63b716a208231a5dff2845246ca0cf5e27115659713ebef7caa9effabbd28b13d9ef252125598985b4ae56415db9e2bb332c7ecbf1e5b2ee5b48d128e16c3f52244ff7e1c1053f85563d3a585d2dccf73935a30dd352dac1a3928520cac7269dbc179c024281da4a46558c590fba2a76d7976627296ba2565c13b814a8cd3526bf9236b174fbaaf88be79d412b9672c9d372a7d2fa63a6f94bf935c8b22a38f99927d5421fb658f6072cee97b6dab3dcbac82009de512e271ab489886ab5369ed4941f106a4fd9419c06adc19a2ad4699e30d08387f0d465988af971f1e8b895e959ff22bb8d14cbed8fa33ebdcf81756d77b6012cba58c3352a47fad441cad6767416e0b6596dce665c4ad8cbc22e9703f3cbbe60e0082df02448ca0a85a63a0c49c5e2de5896202cb8410016aef80f8a46fc1e77d4ccf2768976871259c95e61722e8296a314d85f2f5c4114e77aba492babb6a6f869c76a3f50fb32a37e6b37b5a6e1695ceb27a0d0a3beeb188545b6d4544b7d7125f92a9040be602f9064c84a59408cb7f09e36e97d5f4c18a4cf78d11226b8d0788536d4eef64cfe4dfe22e991d0ebea9a00086cb3fee4fb2f6f84ea714ef83cefcb503f4d4c5c5f442cf59d8ca23dfa70579ce7036dd3df8c67568dde38ecaacb516b8117599503d7f89c68bde25bff121f2036530ba545f705710eace5ddb7e1a9491437b339ea2f4c65068fa0f55fcc72552bfedbd7b0582d62f81b5a1c13638df79aef238742e393cd146d32b0ca606cf7a83fcfe94aa78a0e8e5e3c589ca2605228d2e9a792b8be071f4a6000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013329b5b4b22d3cea486623faaa91acb25a9c4700f6d3e66055a625eee34f3b703f6a506d0e359d21ac5ce6896f65142fd0c89d1d1f6694dfa736414502a7cbb708faf10edb2c47268335e9a72b34220e1e562156bb87cadb8e2855507a2985fd28911e857716c0f9f8a9673ef30c5aa7db8a6b6c4759041ef3dfbed4e68ba1b400e1ece38a851285c04d7357765e2842f3d60a60fb63dd54c688bdec501b3a39295c609a5ccd02fef68cbf9f05c614d850abd2c8493c491a1bd904793867ebd5226266ed55d330101bdfdc7d05d7ffcdc29cc9108af3f031d41d801d78e6f46a30f7d0465a07aca37f9eec2169b081a3b295e1ed2cac6648adafa76192aac4c219260a9ce271d86edad36aed9224a4086772e5bba90596abe2dafecc6d299a291e174492b5deb02f99c4470214fe266d8e769782a74291929e82e3340da558500c28391eff7e9aa8d07ea91d14027d0146b8af0f5fa811d4f66b75e252c1858f0d4ed275f0bc8ba89db6df631147533ced0009bcb3a2077591213593da9b8cd9283810b940f9db16e747b3dd8313bd7a1d94026d55c2ee44c899da5976bb52332772a5d3604b14a69aae6464b69f88520283e32714e481e96598cd74317415330e0aa4268aec9cd39f6ff4b2a51149ca6e715125db888773abc65d36524de5c33bde12c464f5d3b13ce95114c670e4eb7b46adcbc5425804088a5bebfa3114e518786fc2a20eab2dd07772d19d8ad03d9ab3b7482ff78f756b326eb1195896971c8ed4a17b943e982c0f9315a8d2de3246c58b723c846994933bc1a864021bd23f7851abb156cb6739a501506af6998436c3b9c6f29924ce57eaaef8e9e8b1b10087ae544ea93498c65afeaf9509667beb82df3516b3d44d414281f416174e503d59985a76b1f9042039069216d0ff9488b83cf297c9d39952e0a728918b787102a667a5894e06fbdfc6f96de92f006b998e5c0971832582464c89c46e74879032bff9c45179dd14a11d20da7214fde6227eccccd1bd3d9039ae8016d7b95a310d40063bae8622eb5ee2df258deb0219ffc7cc2f378fbb8b5f7eb0d62846a5d03dbfe0d5976151672591a4443a68f57e45a6350bfccb487e54e0edab369ec2f202401f2a689eae98da6e5bbbc5970a81dca063f00c81b09d444c4341c9613d0f3f7851abb156cb6739a501506af6998436c3b9c6f29924ce57eaaef8e9e8b1b10087ae544ea93498c65afeaf9509667beb82df3516b3d44d414281f416174e503d59985a76b1f9042039069216d0ff9488b83cf297c9d39952e0a728918b787102a667a5894e06fbdfc6f96de92f006b998e5c0971832582464c89c46e74879032bff9c45179dd14a11d20da7214fde6227eccccd1bd3d9039ae8016d7b95a310d40063bae8622eb5ee2df258deb0219ffc7cc2f378fbb8b5f7eb0d62846a5d03dbfe0d5976151672591a4443a68f57e45a6350bfccb487e54e0edab369ec2f202401f2a689eae98da6e5bbbc5970a81dca063f00c81b09d444c4341c9613d0f22fcff711ca6bb32171257895548f0d889e96121e743e2acc701e0bb637c5d8c1709b395ecdd7145b01f3db15cfa8cf1b8327eec8beea5431732cb0848e630a2175d00b7496acbb3cad3ade4d111c09ca445547256472b19d767238b1261166d28dc7e252513eebac458628145af069a4448e5e8d986d3278bc8f7f87848681133344d73b017b132f8d56944460562a818030f10c6e7f3f5ab73756535f51485187f19f3795326291a6b847dcde48b5b0a81e564babc6fc94b1522922479628125aaf1e2c9010a440122aa407ebc526668c09d23dd234ac591af55df4f50776a1a5ac1cb8c0d0b01ce0d2d21f211fccbb35570dab98620e4561093bf72d276bd18016098aa02665e1acfd881bf89573a1e3d6325e54235c9d8ace9a6067e91ef2dbe6d83ddfab2bb8ed281dd777263c51dec4d6493a42f57b175e1d9c275616937fc6e8d7aefd53437c728d31a72535ecbdb4265dd2dcf74daeef15a4150a68f137d79fd3ffc47b94c4db488e2b6d36d906210b07df58f245196bc068e7451fb05a5ffd799ee791a1e19fa91d9a54e8af417e367cbc1eb54fac42ca68a228c090019ce44ee0e9fff8b885fcd5d566c7425cb3426a3d780b0f6316dec3ed1674f17e79253bbf3c65e8f4778b46232eac5f8722eff416ab518e27b7bb9c7ad2aa128186dac440c39a170b8874b9dcd153a29d469fcc7e24402b6b1b5333852d561127c8da17b68fdc05c09fac1778efd85eb3d0fbd36e58e72ac1c731dab7251ee18c1728cc8408acf39ce6e5701e09cefd32585e7f9bde68ce47d3102919d70152f561be1a424a374896fbea96646dd18446caf39d768c13c57a3bbc8302ff38e020e08dc7df3bc05b7b099524aad916d752bef3772df07704def43312ae2824f225378b985f2abee66514f27d19959cb8a256b977ac12ffbbbf75edd024f72572ef23cd8a03d12a3cebc7c9b57e58afa805b90accc78527e3ed945ca67e6d181000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012255453d660e215d7741e799ee89b3094415d1cb15bfff59c1bf5f2a050ad0793d3d957d6f2434f344e28c6cd7e90f576ab8eed1e54c7cba099b98dcb63b8a4220bbf28d33ca4330d6af81e6bddbb921e979154a083e2e917de962fba6975b052e6b7df99736cde723d2a536f7c85db07a85a21d3bb5dd0937bf767ec006dbc71ddc79f879345308c5c6ca4659ef04327cc38a728cca665c500d0eb55c51523731695d18b43730b9b40c4cd0c25b7a54d198c5577208d0279eb1f13bd2f22c5f17985cb47b597950e59c6867b35d9c4a0545c2048530f5f1b0c8dea720c5ba4106f9f3ec2f68dc71dd4c8efbd862907ece043acfd1e53b936508ef172ba9b7d5106b3aa194f6400add150de83221de3ce7505644aa29f536c43118f128db6bfb2a462b4ac3f86439a791e420279234373cc4af812b4f6080eeeb9f121dd1025a04ad9d59e3f054105ae2326d6aeea595ae1a781c179964efdb1c748528a638bb366e1ff3a615a0292d03433897f1bc896610327431f4acfdc15823555f8748131e9b3d3894ba9b200c9bcd9067384d60f5449ab54913e582e06974c5bcf1e435310f79540c8a549d755a4ab1d27af86b2ad34adf21938aab4dc93307eb3d833110c01425031dae4c5ac1ce78336e5d4ee61ab469d97c7d462a0b3bd1a1927c620e8512002573b5744fd037942ac645b18885dc1fb77538f3713b64aec49a317d386c1d0d15b416862a7c91d954266a503c7affc23adb161dcff25ce2ce41cc1f19b759a368db68ca7e2e9fa20730d916db8a995f53826459ebd932f8a8062a352d30c4b65ccaff430a6ae8691b1502ed1df45381b89288e2a79f83e093ee643012cf3b49a33500bcf5951796e4eafd130452457a50ba7038f18dad0c6c119bd121f3d78fcff6fc4f34168a0d87690ea12ef1d6947ef5c11a7a96009be3a7f4ed1e0c2870300903b0cbe975f27896f15ef354c2678a5738011e9730511c580b1429c335cf0fd2ed8c0470b243a50d4925a62bfeee6832d34d3293a1317247c89f163cca30f02d1273fb8f4dbc5af2b6da7c1a9a0da11a25ce66998fbb8db8376210d00d0b4f1ea3bc16337b5239426dbbd8082fb3ed17352f315a93303b66eb182f2ff2f4b0e15c43e9cc84adc6bd92444a3e69481c35c3ec67d29dbcc49914e92d30c4b65ccaff430a6ae8691b1502ed1df45381b89288e2a79f83e093ee643012cf3b49a33500bcf5951796e4eafd130452457a50ba7038f18dad0c6c119bd121f3d78fcff6fc4f34168a0d87690ea12ef1d6947ef5c11a7a96009be3a7f4ed1e0c2870300903b0cbe975f27896f15ef354c2678a5738011e9730511c580b1429c335cf0fd2ed8c0470b243a50d4925a62bfeee6832d34d3293a1317247c89f163cca30f02d1273fb8f4dbc5af2b6da7c1a9a0da11a25ce66998fbb8db8376210d00d0b4f1ea3bc16337b5239426dbbd8082fb3ed17352f315a93303b66eb182f2ff2f4b0e15c43e9cc84adc6bd92444a3e69481c35c3ec67d29dbcc49914e93c5f354a6809f5d8fc0d754f10b0845dec5a231524772141e6eba5461ed414fa0552acfb4136a8687c086867198f336159a70e0de3347500c25c57abf0d8fec11e33c15bb7c48e9229bac840ac06e645d5d917c31e7bc20a0d2539cb4b8d780c018b32a08bd577cb0759e12c12649b35b1950d0243bdc98db464389292a9847109ba3ec16ce4e3b577c673d5f779617b91117c21acc708f2cb129044f137bc6730be7cf60e14728754091d3ce47d168eba3688ee70a16bc363f93b55af74c3ab140abd0d572caa3449846edca7dab68abf06b7538daa95c4ed7c7ffad844ffb50e59ceb397bebcaec96b9b376943e0716b5b2081089021d634130bdc897d5c4c2e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd630724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f63f7f30e3a522dc6fedabd456e1e59d3a23b81f83c1fce0491f79071ad8c30f1e1b3a96d7923c736fad0f134f3ba55954c26859c3027f01f0e736830ee9b27479256d0959e0317b94da37c2704348955c8259f71fcfa70eeb3e4982c8959e72fd3922206432f3dfcc7c9db66cd40c3169170a7debe25aba8d226ca0ae7c7d7cd034fac432e92a2b42e05aca56726b8cff6ba0fac7a6f2a5b1456c948b9eec1f080b053bcd16d5d4bd1fa535a98d947300b6a59e34625a536a53c09c616113e0fa1a2860d6799e7e8128c54e3756812bb83112475cde65eb68ed4524696648294d1acbeae826ae756b4fd92588190031879cd596490575d27d14629329ff7625c92e82e168b10984ebf3882af7c607017785483bca2939819d44e632e3b8ebf51c127157567c1b756d037771244847f987f11dd52364c7ce7d5742716e2eb606f112c3e655ddab7de8cb099b20822eca36512856454cbbb8b49966b76d6cb4d6c42f8b04a641f5bd9684e6c27e27603f178a74b98f35b6fd0218a9ee67420a6c9f000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012a138378678b9a9fa9f822caed56fceefea86209bd4021ba6bee573e3c901bb228c918ff0fa3a0c67bfb6b09e1e1955a75796a8302704342f297c61e7e1081c60b0adf181b14b623e53afdb2e3357fe89c04dcdecf9fd23fd88b5b2feee205421008e1c85bb82a2aa5cfc8c2c77c2d0e733746a9eec52b5a166f135d45bb56873c79fa398a7d17c021da2b08383b73cd11903f938bb3c1134144954dcff7a72d30446bfe51ae3da68c318458b05a568a5921c81748717c67b4dfa78c93d4ed823ac15e2ef54462aa2e11c88d098d49e62eb0c21fda51951f034a03ae61c24ee709a67d69275419ca93bedee89d544532aa80ac53ccbfe40f3fce4d88181c4492214e3a4e3e248494d38c08f1d5f7eba0c97998462ab93c1c6739d4e713a7bfcd2e3e162ffd97be3811337cae82bd1f822cc386b0dbe9975197b39c8f083b9a5e22b9de9a05cedd8225130d0caf51ab986662849eda2a51d47a9b045a9b1ad645120e7452eeccc843918d303bf6eea2d60b26712452de0050a4a46f5efc3a95ba298237ad97a925b7fb5f8fc518872edcc9ef6f7452d907d96b1f70a69e0e84a626287edf099bca058696887d212c16ef5628762017ce6854c31337270a20e2c03eaab85ccf078c24d4d49fd75524349b4a32bc61d43aa8f78a08534a1e7cafdf106d64d6e051bd4aa75782d3e051ec2d55a9fa53455bd1f4af3ebd2de24c32e1129415db32addd146daabee6f5ee6b77961e9789ad6a9d253cff105823ab8c7209b727b072fd9d39077a488d58ab0e7b60f7a3532ee5474d70e8e695a47a48f42994104ae8e0b8c6b498ef4a340e1f5dca7130cbfc365dfcbac8513f99314e91166befb5171f47394b6710b5cbf1e0a257d568300d169b1ede64dfad66ceb1700fe451768c639be186fcac7304469cd48d622907d128ea9cda620376fdf688d2301bae89739c641e7903538cfbb9632b94e46ff438240e7ebecb2d760209772f0f759750bdf20b67a2ef5e3f15611026a0a4342b0c7f9bf4aabce065f5d0ac19308a68af420df4985d10a1c0ea9eefd981a264d0fccd5d26ee7050870a2f53e80d4bf493b5ba39062eacd73b6ae550c100ee6bdb353112abbc833110cd135c7c32b40b6c4a45c6f9d15328c4951aaf3f21582d20d41be66fdca9ffdc32eca3852994104ae8e0b8c6b498ef4a340e1f5dca7130cbfc365dfcbac8513f99314e91166befb5171f47394b6710b5cbf1e0a257d568300d169b1ede64dfad66ceb1700fe451768c639be186fcac7304469cd48d622907d128ea9cda620376fdf688d2301bae89739c641e7903538cfbb9632b94e46ff438240e7ebecb2d760209772f0f759750bdf20b67a2ef5e3f15611026a0a4342b0c7f9bf4aabce065f5d0ac19308a68af420df4985d10a1c0ea9eefd981a264d0fccd5d26ee7050870a2f53e80d4bf493b5ba39062eacd73b6ae550c100ee6bdb353112abbc833110cd135c7c32b40b6c4a45c6f9d15328c4951aaf3f21582d20d41be66fdca9ffdc32eca3853a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f21621663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac509ae342a78dbce2f652ce83bc8df13cae92ffd4acd96c384d84b5b62829aa4c632e0e89af62d4b5e0a44b1fdae3b06376c9123be386de90ef339f6846a620c8503c88a181de5af86bd618c7ca6d2d1c6c23247c7fb1d7c35badde3a77e53e275374baf5ec512737c4b30713f1f990aee557a2b2289954c4678ebb40fec4e4b6d34dc26445dfc3d86f0c6ad853b8e90dc59275b991680e24ef59731a1d97c84bd325f6801ed604899667b4ebb69d9690e57da2a8bdf801b1adb26780d848343d022e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d570ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b2a2adbcd6a52d4ca8f75b25d259380a1098272a199bd1f2a1d40b13cab90e275145a40e4099c34ab09aab12529be4211daaf783bee3df5d9e430c580d2149a243c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db36bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b92c26ac95e8a94a86880b3000e6c5332ea933623775e674cff656eb1e973ac4a013d9536a1756b57977f4cfff193accd1791336c49366844ba2d645ce68c53b623964dcfc56c5aa7cffcebb8cd19e578dadf06b424364b3d74f499983307f128c397f861bf30d14bc54bd10d550d6206d46fe59f94c85e2fdf4358f440c824b1a0bb136dc421e7dc750855cf951fde0c09436e335d09bda551392f0d290e5af2935bd596c9b2ae909556bf04b32a63034bc8cd39fea8c460bed7ccef9520576252cf159565af759e9b439f0b428958e5879faccecb3d8b95c4d92fab4a1cd9cf530a19cdda9ef82a7008969622aa4f09a04654cafaafafa1fa28d11065ed6d113000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011e0743e56e71a36aff9f28654eeb8030d520a300414a7b5fa227d474e0035dab1432ca149237c258feaac194541ef39aa19ca3e5e875017a66b834c6c5caedb90a71eab065b9c1d5ddcef2bd1b0aa64576356dd16fefebd1e8a2567f69ba32b821a8e2251b1a94b1a52648f38a318650e5edfce507e0b49f9e09e66ec3cbe5a010d9c7fcf8baad946f7fff1dd1fff3465dcde12b5fdc16f9d6c6345bc9221cb9280ae3b05b1a35ff1de32fa833df4046bac51003fa860f7330638401512a96292837168504f3f1bd8ae89abfe989f2971f282688279284759f0a0411bea357ee130239b8f7fee47132573ec646024e73854d16a009287d79962010f52b24637209ee9ba9ef19816a6cb05f56974a6b200627c767b118f8764281d9427ce0cafb3098508783009f3ad14f288d95a6e2d5112cfc26044296f9587ba6ce5b328ff0284485e6f59286f30371e61fc3fe34f835fd3bcd65af2e168acdfd48472cf4d51904997016071d3ef5667a80c85cc7cc7fcadb4f3dc500dc9a2b16a8954ad3c81ae42a0190805844c482752e08f2673b468f52bdb3276a40a08d5f5ac5abe80034c68c8b10c49778bd73a31430c0de90d98892d6b78005ed8da54872e2837f661fdc5a1406be3b0a54a901eec489d4689df1ecabc7c114505106741f070a716539f8a32ea04060f7a60d7a5141140d7e384032298f71b53946365b6d1e7c384c2be1d91cc2806821444c578a9e45c73eaef4afeef24cd672b1466f7e98de85b51e55758d9bf57e390210647f4d206b1cade564ab62c3dba85fbd5b5eb82aa878142fbfa54ba90f415cce321fb844d3edc8fccd375fc0fbbaf04d1f5e9689a1872bd0405ab456f0bea331cde047bb2c125949cbc4a98bfd60a8e0118e69765e7a24eebe3a7a4d4c46d006fa9e995823a4caa96918d577f18b18546bebf0b027a21b1141c585b2b3b92ff9056166a7dc5b579d2fe333d5079080d8c5010f4fd85f38a9b72463827d621022e518feb8b237b0c1db8418bdc580474bb9c1b370c628075648db9c7d829defdd1ae701474dc87184bd77f08f339b51e1772b4c8f39d91b5093b5f18c72ea50ae797cf99b7b15eaaee5a45680f712ffc5dd148133dec424af6c4a0e738d15af518683066484ea3797b357b2cc0208996753d87ecc213d142fbfa54ba90f415cce321fb844d3edc8fccd375fc0fbbaf04d1f5e9689a1872bd0405ab456f0bea331cde047bb2c125949cbc4a98bfd60a8e0118e69765e7a24eebe3a7a4d4c46d006fa9e995823a4caa96918d577f18b18546bebf0b027a21b1141c585b2b3b92ff9056166a7dc5b579d2fe333d5079080d8c5010f4fd85f38a9b72463827d621022e518feb8b237b0c1db8418bdc580474bb9c1b370c628075648db9c7d829defdd1ae701474dc87184bd77f08f339b51e1772b4c8f39d91b5093b5f18c72ea50ae797cf99b7b15eaaee5a45680f712ffc5dd148133dec424af6c4a0e738d15af518683066484ea3797b357b2cc0208996753d87ecc213d2ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec08283f8b0e460d52c58913fad78e1fc4cce8aa7552f29062c225dd92e0b0220d0905d69e666e3b2a0d6d173f142cef7678532cc741da81bb8790348d2c293b4d248677f56dd7dd830c3d4eba7dc5a9491cd36a974b3715b2c93e973495bd87023f12e6d50c19d3afe7194b499f780b8254280277f27d10a690611b5074a3acfb11f76b80533490007d130518a294847325d3679c416406b0948885d8d5135f3c2cc2720a52f1c8b3e645a5a14ab153afd19f76d4391f99ebffdf81ecf51e775d36bc066bad4f192cbdf19e4a06169f22f64d1f342a06c9e1b7b20cb69f53d57911d68caa2862c78883eaee78094d9fb69b4c1aed67ae908a1a76c75ec48901252dcc61308ccdd0f07246c9274194c18a8befc9595e813ea573fa5d8eabafe912249ee770786f97c5ae19a5a2efede4059fcfcc794a65d5959bef42d651d7ed920907c64532b347c431682ff5de12a6dabb7611c175de7b7450d0d6b0e16f72d53f8accd0a2fe98f110745ccc315197fed62328601bd6def78157fd64826d63ca3731399b0a50803bad7d417dd4c5072442708fd0177ce405cf87403f1ce671b108cec664f5af7fc45282be822b3af8dbdfd6092bf1d01515c9a5f0ade3198e511a9f5752226a546c94c74f74504497574c58734b471215c882ca0664875b0210179f18f4efb54da6f69117ab24cb085fe3e17331c405e0e6366678c7e80231513c6faa9f6dd6652a222e877eb1b1dde117cb58f0ae22b84f44b0b00ed111f57c3e4b2492adf430a0e8a7a7195af426787038a07bb7fcfcc341310f29e13c28a51b8922ca8d5b7349006921bd3fa0c8999805bbbb209eaf81c6394ccfe6ced9520ef5d56097aacb5c3b09a0db63ef313f4a044b16b67dec81e6c650a89abf1ac70000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000113bd2d46074d2c4ef0b7388c8e89bd3b1513427629edcea4f56ef30c2b01067d3d95323c72ba34a7f1516223cf2cbf9109f1d9882d13d1c8d182552b65cdd17738d3365977db9eeb2e94903468cf63c31ea40bd0b89e49a68d8d9b2239da0279336a4cce4e803d48513c237d48fc61b41162f44e0e078d72209c1cdbde5a04251c2b55516a279760ee67d8de921bcb7c068d1a6a95a9c9afda3ca3a0f94c862b00c7ccc1c4c22b3cdfaa83e927074367f44a9859ac3415997cfbcb572847bec4030a47d9754c4d54970abe590dad94a813a623494b7b71e275a1a7239efefd4c33e0d098020d5454b3edca3830b326b110408c6f39347b059892b027a93771e3352d51f9d8788577206b2db2467dda613679306b3a6b4889d1c6591f170d488414b4cc37ebd8f1e886f6b6ca23d96bc348707f917fe703606fba0b6341aeec97336c222f33bd6b9f84a2035f192a293dd63b30bd584482b65aee8b69d373d4e6001c45ea3de1326c146f30ccd93c6e707908733e8170d5279b03ee768a2214d513444133402089027bec05e81b98217b123b9dda83bdb591598cc3a75daefd7e3c667559612466bb060a125a1e1b24510ddc47b9e6e9ba9cd4a5e4264a8069e8394c36e878ceb56350cf5363179a4214ddef89720697b57ac1d87ad06fb278e617664c998bd5235fe71ebfb64def298a47abfcfbe4a54edd55ce62bf4d86d2181d7a349cc00528ceed5cbcd0d70d8d7ae1f809d31fcd4f3ebb1f5caf8e2aa6110f6112a588513e482de5872e938c5f3cd186d3d747baa9d8edd41910ee5d99b4365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575109a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b00fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d430f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22334bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575109a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b00fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d430f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22334bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e196338b4638e14cfd60159eba3a4b37353ad4a5d4d9e176d1f2d58b8452241f02622cbee39cde689d2d8a050b771f7a2c3b1ba52e62b09b30c8e93c520f6ada108e7ffa7a6007171ca846ab5c221a555d35b9aacf9f95610076d0f3575dc681c0440361a1ec224d7d8d5ea28a83a7d57f8b8b730acf476f957ec35112a3fa61626bbfed82d1828baee8720e0a208b1b44b74061ef724dd8e083522442f783e5d197c72c4ccb103b028475e963f041edf0457e1b288d586454f04237818425ece04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a3b6eeac5e4cb11c87a80550d4b74dfa3eb8d23386b65868e6be730962988072412334659429b892780000594c3d097f40db55bed1a591791fa10890d107b17801d6a5055453de0b1f5ee004b172161a4672b9d1ed3c3d60b5965531316d1491429830108cb5a02fb92b96cc16107c2713d5b965caf18aaee85332c9caa0d94d41b3d9840014b56d5e06008e175546d429279f5dbdfade3229583d32a9821679a24c267bffeb4a92a1f9ff71e8aab92bd8fcca320299f15f903a95dc267de986832dc9e0425440fd13b49e72087bbfd0944c40d96f6411202ccae4631e46097ad1d04c802c73bb5682da8ae046269d75e6d067a1ee1225b7c287c4b176cf2a6de2a058eedbea0901751c3cb699500e5c6a9232dbca0bbf3319c64a76754fd1b9410107710165bc0e1593682c1358f9dd773b9f523e8d4a9a061632ed053cc2be01fe51a21e994ffe1e00a4dd29d4ffedb384f01abea3acf52bf2ea331a1a8f0dd0d4599ce45d427e2d631ad7a1bd61fe7e487b02b5406a1dc6f2d36652d5e606a00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001128dfe18ca83ba51b71d807d3f39d29517c08d3d418123651e9b22f3394d42632baadf51c0967e82e22afe99af216599c49553ad3266faf11e98c33dbf9e89da1d044a1ae5ffd633fc55a978e1788b5ca21cbac0c02fc85d55b9a8a99f8b45490dc725a7df7ce225916abdab44aabd4af843573d6ecc65c70c2f958111c023d9389a767e9f39ce0e63246e2b4bfebede42cd2103003c05ac485c77c0e47443aa2d14c3db2d1d856d8a3369a812bf4af1aa5e00b0c9e81f869e5c7ccb2a0d9c4b158f38c7926451d4feb0d6c8965e39b074e54a82fe5e6e4bedfa441e64850ea83242c742ea77b559a654a1038fca6ab5e901bcb7f2a2962c6c8f1f48565445a32de77298419249ac825157b9714cd5a5719adc16a64ac75d69f8ea6726063f0b0e4b8f78e621c090866c82dcb40a0fbd9935f5d90968e9e6fe1d949ccf2fae730f35170bf7b1bcf30dbb02f2ae357e426937428db2652b1ba5cbb935811ce03c247d7fab66df23bb452507802b7a484d0c27e331576117a392e8977a39741d9d1a19e52e3ba71ceab3a59e5fb5387395b0114477ec4b1288513c8e4452e1057e3590d15e659dd2d2ce5079e2847ad2367006a11c7e5c5da5dcf61989554e61e8334803f84404b90ab676dfa456b284ed80587877bf072248690682481ade24b12a1047c055fb549955e70886683925272d662119c22c1135efff8899b67124e90e823a99584cfc1d14cd8b09d1e015502fb910fb5e9bd8f0bb04d689f19e973704410a6aa4538987ca1074bb7cd7c8fc4b693aad33f0284765747bca59c57a371ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c692150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f398196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f61ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c692150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f398196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f63335039be7eedfac2e3ac623e673589a8852baecd7723f5e37deadf71fb908e23fa261b1844f304c485490d5e999b2633afba4d7b5b76ec065c640ecb11d4f8912de871e518f6b896a160fd7b607ebe62cb7c5e1696b514fa8b5840bbba96c710d2178e1ae70947695e9f02849f81419e46b869c9b3b2b3e23e1146ac45693900440930f7560351b151572858db88b4c489a2f492f8897491262236693d3a6fc1ab1bc182a8f50046511b7ab409a1d69cb3ab17ebd01f77d737b60b7fe18ccc60276de9a6932a003245ef15aef58d798be95c6f3cac18ae207855e797110dad218e807a31e61baec745b3680a23a69b641364929583aeb16689e9bcadb56009c3ccafc6418112053d1c539dc198ca765b3a8d0cc38d47492143067a7a046f720305d9e4e7bb0cfb3b7ab6f2a16664d9d00ffe6e15a8f452fe648d4b20ee2b0793440930f7560351b151572858db88b4c624f22063682521dc544081853d3a6fd0ab1bc182a8f50046511b7ab409a1d69c2a90b3fbaaeb9368d30147cbe18ccc639ec7545c681b4ca67af2a046384bb7f8f82b129d1bc618951c62fd7249d8ab0333c256ccd403b3d21c17f01cc6e398325260683c1a75838a8b30c828a8c1cea098ed6f74ad0e516b003bada4d1e6de28e82ca48772d1c596b7d5b2515bada3736712908b52f1ae94ffc4525b2e1921d93c3ceb3921fdcc22dafd5c7ea4525cb1b8da1104295ba42e4c7df11238b2ba685bbadf6caeefd46ec6802ba43f32c470a9d2905c385fa6e80abdf643f5f069cd2d70fd883d5ae14267f9e45f180bad22e94cea0e2160822da091f0cd312cd35b7d9bf51af4b8ff33048fd8573b67a961f3bb0cd27bf0ef02d5acd7b01d1d563ca1925e5938b10ccae4668147c09af480916df5e2529a6702fb45803196dabe75127ee9fca694157de13742f99e36cb20d92625f97f8b1f9d99a2e94ca7f36640906d12ffc4ff22c2d048ed7375bd63a00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001273c5541df839c579932a2bcae67f86d156e7dde88bfe5824a3fb09c0e1450c426d09be32ec3b470410c2239d01d6b894da7cfb0e6814d22e7458b2eb347a92f10e4410771fd221feb3133b0fa8f20a4ca6d33dcd4947330beb47cfb5ee2fc32128100847e0bba2f75506ec83acf9a262015f1cdfc41b43222e219b0ce3a45690aeb2417abd0a8f753afef6c79a479d5a78ea8e1b676558c5e9574769527f00034eee1477c30db62d2630c91e031089edb7bf6891559c7dc4497e66ba85248fd3ee1b111d13679cdd1c34529c759b388245a8d614b56ec0a3fd1f87d26620a780bf1378353ab53fcaf53fb41eca35b648094f8a3f3cc1f715981817a14e6c717047936fe314cbfc4a7df0a263777cbd9b9302191a14a799dd19b44ae4e0c0fe23b8753d50b973129ed5601a4d639bddfe4fdc2e6401c1244da8a748e3ae110dc37e5c8d6d84ab42b987c6c3b64e89fc659d0bad530d71102f4b7e15f96b9fd5f1b6328c24f0fb08fce6f98559838a0901d6a5f2f8afeaca839cd9a5381ad745a2373042f3df45c9deed6b72d72100b8f38c0dc0f684e8124f860e1436e59d0f92c37b25d6350931f931f6114c7a33a3ce75709850258ef0935d1c68a39d5966d2d14f860a4008590ea30bb6767286517d2266c368c7f80262a2b99efc012ff2226bf7ae88ee570e821cdb304297b238708918decf47ede80a92a4a6abf97c704183a12d869d4fd9cea41aa27f8c40661838115a2ce097dfd7217ceefcd82846a2bab31dba34cba188370d8ae51c6bffcbbeffe0cb620fbb169f28add96dcdd82259ebd15452653edce544ddc801f91dea739caf30047210f7dd049638c0e39e81a6142eabad9ac1231abb2237fe06e217b0cce090905d80c1b5ce78973f1c6193c19b16a59bfa3a507a5854e809dd958ff93c4c6eec9b31642b70d17bc47218603e64e95a6405c5af85a7ab17f6226a722b2d4351a834605567623d543b8de7b2c807713c0be3239263b9a8883153ebc74c873f284bc9b00e8de7dc2ad63a79a137f88ec3f41cdc6d9c465777ceac143ad7e250984905e1ab04eb32a529c58671e825362c3b6fb1dbf2a04aa8f6a39ade11678c87bc81bb1c0d0e20662f245ff217dac9d3c4904e240d5fb557095c652413020338d84dd69d85c4ee69d0dba02259ebd15452653edce544ddc801f91dea739caf30047210f7dd049638c0e39e81a6142eabad9ac1231abb2237fe06e217b0cce090905d80c1b5ce78973f1c6193c19b16a59bfa3a507a5854e809dd958ff93c4c6eec9b31642b70d17bc47218603e64e95a6405c5af85a7ab17f6226a722b2d4351a834605567623d543b8de7b2c807713c0be3239263b9a8883153ebc74c873f284bc9b00e8de7dc2ad63a79a137f88ec3f41cdc6d9c465777ceac143ad7e250984905e1ab04eb32a529c58671e825362c3b6fb1dbf2a04aa8f6a39ade11678c87bc81bb1c0d0e20662f245ff217dac9d3c4904e240d5fb557095c652413020338d84dd69d85c4ee69d0dba020af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb1dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1971e92d45cb316f06ce27fb80aeda7c705ff0948e9e26ecbe36515cab2c89ff7eb3fcfcb669a3a5f19c6d5e6ed13c1ba68e6dbb93e9d0b60303151556f28f6178b0c139b14e2f029cc073e76e7a64edf1a6f3ad871102218f612740857a33733531d95c8e017fa1e6895534fc3485c246a6b691d17e40c111566ee81de19a3c1b20a334d4c31960a61c9844aa2a55418924f410c8ce6bb75206c10b6ccadee8d3b1c2e4ebab1756f0f23f502c605b001645fb9918dbd52634ba85793651b5f2f2c0b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4822d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a177dbdeef57b7f879538de199d9bc38d4c3f281ea768a2d9f8f49153ee17916333c90642b81d79265e0349994fa5be88ed0cfd39dfe54d551c613a99dd2d542f16757cbde9eb9f5f59c6bb6da6ff3d7d9e8cd24ddc94847971d4facf87ee4a1c225eb35e5e6699b01693ff2025239088d5968f6bb9195fd4230a1040425b06e128dcdb1edebf50d9ee626e2e76cd0e1949a36bee01c32cc869536dfdd1bccda3172324e12140af26119d91d18932f1e6d8a32d0e0789cc532fd9c2ef2e43325f19f34934d5acb7b094cdc4a1b47488f34b4db22fc0f71af71046928bd9865ab11fd93ed2275ff6e2f2793ec11a905dcde2ce60ced0d5d03ec84b2523e43da5cf228c8b119057e8dd4ba65c5fd492162e49aece836d8b6cdfe009a4abab82359a0ce0fdf185b0ad531f95a87db902249037e2f030c9b75615dd4beda73663bf65009b9410cb6b15e9fe1ff40c2652e425db6d9b2780de8f730ca42e8cd06baca72cb76783dec14e807bc01fc49c705097911dc230859cb4639a6a3769a3a9e760000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011bc1c7dc0930444ba048114eecf4367011e6bcd9b6384e16ca7466019e1849a52eadafb321bf21bfb42a1fa82f669b9389efa6bbe70e2b801f25418505e5d52501e1aaf5339c981f6cde89bfcd2a38ac6e32b274b75dc71a61ea4b590ae40dd5127e2e8a7f92dbd4c8539f52fa1ea2fb2f0fa45984936b089ef4aa431714704b3b1a9818041c0b3391416e8e2f569a22be4bb8bcdc250b6a443f70a9b0277b590f76a91cb27a9e13a51a7b9afcd3be3aa9e23cc76ae8bfbb543551c1162ea5401332ac15911de103305e7b4c99572289ad64528bba90a1a40548ddf7c9aaf14736094eef685f8418afa9ed45d67b2402a4ee7b15a9b377989ec9c9d80eb1b9c72ee168c2801bd86ca2fe0140f70e0cdae234cb822e746397301fc6f769a5383f03939286d00500cec49d7f276fb33e24dddcf1a7ab2fc55eed7d0bc00b77b9cd0d151b8874088d2d94bd96ec3914aed6e5fda566fbb92e0937d7d23172c78e57108451c33fecd1bea4d55637256b53f99b5eba0db86dcaac22845701e36c2e03335fa90c2f1d566d6f886d9c9f1862d1670c163d88a7f9dc8c4c2bd14f40ea7b1c4b0d8072279950126daaa59a9ae2fab90bcf56e1ff7651a1e67bfc58ee7ceb306e4f70b3e118434307bdc8d7f0fc43303e97b65cf28453bdfeea74f15a08243034488f8a0bad1e4db438093e3b9960c9556eb39815f80b6be56e0d5a4e5bca3cb09cdb311f9c8d73314834d9a9b23bbddeef4069a308b62768a2dc2165060402dab7a5deb0d8257412ba0f5e3792ff83551d85a0754a9fced076b279c7f00f30b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b913383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d0c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d4019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d12407dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea51382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b030b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b913383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d0c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d4019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d12407dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea51382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b02260f666d094d1a6403be2dc098fb8f586eb4ad8166745ba69d9a8268d67ce9511fa42639b21ecaf1ed4e983217b62a6709fcf49a5422b064a6309c8e2c55766374baf5ec512737c4b30713f1f990aee557a2b2289954c4678ebb40fec4e4b6d03c88a181de5af86bd618c7ca6d2d1c6c23247c7fb1d7c35badde3a77e53e2751d0e91854489c12ebe7a3fe60a253723a77be6156df5a2af0472425de5c64eb8266251b54c6d2543d21425e07ec0aeda47502ad99e9fa2f46262cd952d3d00001b1353dbdcbacf05d7f8445e7cd1ac7ebae5ae3a8fe2a96f0215074076abd6803db11dddd7e8aad9d0c5bf60ddc65996faec969496034479f8b4e1d72b5460f73a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f21621663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac5056cb4030f4d5c2e8923e36a4a17988b6c366788df71a22da6be18e7fead30e202eff5c09eb16740fed884a0786270bd6ae9367ba870daf98c4d5f53a9b3eff526535a3a6a58badd7493abe4d6d73c1c6827bbfd729d60364f9505a38649e6012a3d338446f863ca23c98a0037b1cb92ef7481ea68ed51df93ec437c9ee6c6270fef7a203ab70c8cc8bef1e3b8603d5af1c670d79d1692a25e7f07f550285b3c301085dfc548f37337410e1c479fc2a5308028246c3666793aae28f7afd7a4c615c2fa3e41c489be4b82f6e4b3a7ce9cd1f313bf76ee9b065bf8679620a7f9510b3ebf5fb6480b30894371dba3a5fdbdd1b1b0fc6efc5b410a4aa2017f7ce63f25bc48f8eee95bee234994c721d6a872a35dbd73a770be9d5ced0c0702aa2e9100ceec7a2d04b43381f9bb53c95bc2ea0549de63bc0de1e33beed1f50f610ebf11856441a508a00582af0b0fd3035a2973748c851d8c298709e55cb2b32d70ce37dd43dc8a7697b1af2f9152ecdd753738a0c0deb79359e5b4c03d65a4cf912a0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000118a1d774bbadc7bf8d9f0e165d163aed99726cb1358331bc8815881d59b176b93fbde4d33f577cdc0b16ba95f3434a5912cca018368a8ec9b54797370ef40d513c813ed19ec5db98a48ea266eb5eb84d27dc5eb39b16f4c8752dbf5f3d1ca0f635ba15d9b8930bb88605a7e8a94cace3921b896bac7695770905ca81b6e25348142e0778b0ade784711ec2011b87996ebcbfb0ec52ff783cb4aa582520e23f7f2970f4e0780c49aed7e227b709a28f0168d2bcf59be5e60d7f8cb6522600b2ac34469ba642ca928249d3b20b0fe6b066ce1d2157a1dca03584243aacc862c667045570f698505c3e91f6cfb88b91125b51f0a61827d0a2eb031065c5ea231ce133a6e1c0b9e66da1270f563c654d65a057b0da2174829fc5257f7c433d05a7271f2aed6cd8f21cbc3307fd8132a7b6747bf206d51ed211520a99e84aed5de61b24db2c65d195325bb5cf468e366d298bbb60a1cf92b6918be9af697ce7584b2e0bcea397edd04341d3f4016a69b6dee45bc16d7c2fad358db5481ec3b60e88a01309e232d549a3b01d6819ac09fe6d3de6a6cdee1d09515b3daf4d2361bdfae53ca0d459cbfb4c0d648dfe962fb4d88e397117a64d9e1ed2f0835aaa46716c812c7d9b011a7bbb6df1305efce1da6300288de82c9f63fa627bf6b0ca8bdaca941184a8badf6da9f43fe202682ad25c851a03fec9e33fc8b7c714440e51a6b9d22f726e00485085aafca1e17ae2026351e8b7e4dbc96498204880fbd895c7330330ca71e693307609dd3239aea0796102e3e72e78af35e0c408ef573a638f44d32fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c1152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b529622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d0279169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd880eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a31153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a72fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c1152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b529622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d0279169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd880eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a31153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a73319a2a83a6dd65b246c9f7d539b67b09c3b0afe9bcc31f641e4746e726732ac352254da5cad22b2bb31a255d43899f5be174c33d783688ffa31918b2d0e604e012515c31c4d62deb68da72f0eaef3954e35414c7d634f15b8a251c3e93c47a806cb934fc247fa8d561ee4874ddb15c44061367e9c9857ba790f75d47e485c6631e58121b4e86da8dee5935258eb584177732ffc36cb6ca749c9dad8b2f3761711b3b2cdd522bbab58a1c1e190509f255ef725a55de7262c784576be6a96be272267e92a09901923b82bcf1dc9b164a7ad75052728e5f70769a126c426b1590501964ace5f996e004463cc51a0e0974be4467bf3704d77d22853a8ba1554a8c226c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa1101a49e89dccf3c20d53292a3e6513a4fca4c6dc28c40702523309daab5966042b8e40f40da8d8261d87a0534e4cda684b2f16fa51f2e5013e2a80240aac2a2d0bc14794a944c6c62505b9539db5a4ba37d64cb0f01d780f9ea66abaa45c85ae041217d5e10ae2bfeeaf7922ddec504623ce1649953138d125ec298d54a9434e22aed3a81d0d635fb1c9c5d18c74834c4e756908cc5b4d28f7419c56d904f60e1d512c57e2f29ca04e363a2e738b7cb3d3d12ff33cf1abf2a1eb949626fb09f41dfbdfbfab900b06d703918742fee32becdcfa772262ee36132d747d639097a51d743cba4ef5c5c973f7e3f83310b6ab185f459309c48b788fd3c0818f13e4dd2ccff72041769e1ab5953cb5eb2a58f5b297dbd420f16b057d9adb419cf0520139e3e4d4c3e51db81cc112b334ae70ef09672755571cf841dd1148a80b0d0dd0289ff1919d70b54093801e384624a8e4b61f346fbff46972aaafdbb493b2f904170358528f9ea89495fe9ff3291e85f0b45094571b098213b335449e48cdb05c0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000137a392654eb5f578529fadcbe2a4c2dc079acb4b754500861a959dafba2d729c28b78825e8832beebd7280e2cd23b67c7e5f077abb011c6f0a799e56edfba14d14b3c03d8e8cb9d42e00e04020cba3da9412a10a7234cd60a4f5dd4ce755d9f82c19eb440a8bb008d92f4ab43276fa74882bfa3e8e2223ac8d045f79e7c710dc14907fe178938da0c1b5e210d8c3884fe7c8b2d9239657ad2ac91f82fac2601035c36373bfbd29965ecb1d0228294a727513394713cf6a35cc3954c798c012a931f6cbf07686631245d7fdbb35ba33900b199cc9533a51deed2e843f764ce1b2119d0e1a69327e8ce78cb6fa2eed9d2c5a8d4f77c5a13c350ddb4170502c3ca3261e8f5cb4e8b064e054624cf949209b642013d600005127fd9665386b2d6579057ea1cecb6655061848284c59faf6d65096b828d5ea437958d4860d371c599629931425738248c9233a52e6971f90f1549b35af673cd84f9abdf1a9062bf87228f09846e6fb415c35a7f4331cfd5115134dfc5c8ccb3614315a7223fbdbbffa1647bfc9ee9f2da72863bf39910e675b0206a3e5f110f04d72712370a5a020d23962f6c2b2a5c21659925908a8a4de711e1141ae79967fe0bbc1845d028f46941a5be043504bd70e4fd13d76dd4c1e9b99c961c2ba5bfa4bb061243a3349bef62ccd94ce600e847e0bcb21e96ec0ef85be79d202f62269bae6edbb8fc0342c8b0098678d8dc0af9d7b2fde6742b8a43146f90d45feb29d550909e196d7f4e5ac25968f23a5e94b9ba3c2bc2e43ad27f06c5b646f0660186aa270e002450d6d0f0fab3b030e399a910420f77a6d3e1cbec6da7633b99b0a852ac771612a40b90f3054c4fcf1c6656efbdf088592c1e3415b6c22c84fb1ee966e65bf8bd5bf46f20e58270f472004d514a4d56422368fb9bffdb60696ba3b7e3cb805f8d3439d4a31a7d8f0b8dffb2aeb5b2a9bddc970466248e2f57292bd9d5c752af42cbc62b707b8c34c63a0182967382af4ab10cea09dadf524e856305b966aecef2052127138473cb39c5fe7d698c7d50b54ef315f8498a3d720f6c8c002c243fddfaded90269bd07df22078cf0418d6c7575409231465c9b889aef1c9f016a0aba19a5c3519642f820ddf8730fbe72938a8abf6dd0de0cf437f9e0751a91690415e65a3cc0fab3b030e399a910420f77a6d3e1cbec6da7633b99b0a852ac771612a40b90f3054c4fcf1c6656efbdf088592c1e3415b6c22c84fb1ee966e65bf8bd5bf46f20e58270f472004d514a4d56422368fb9bffdb60696ba3b7e3cb805f8d3439d4a31a7d8f0b8dffb2aeb5b2a9bddc970466248e2f57292bd9d5c752af42cbc62b707b8c34c63a0182967382af4ab10cea09dadf524e856305b966aecef2052127138473cb39c5fe7d698c7d50b54ef315f8498a3d720f6c8c002c243fddfaded90269bd07df22078cf0418d6c7575409231465c9b889aef1c9f016a0aba19a5c3519642f820ddf8730fbe72938a8abf6dd0de0cf437f9e0751a91690415e65a3cc1aebe5602a8f012b625ab7294163b3f936535be6d1710961e568ba8e309576381b3b6514a5e576d3bf2166ce9c7de55051cce16420aa35ea7603aa0f35bf89c43f12e6d50c19d3afe7194b499f780b8254280277f27d10a690611b5074a3acfb248677f56dd7dd830c3d4eba7dc5a9491cd36a974b3715b2c93e973495bd8702258c009b6c55c415c7005a595075d8836dee62fd6135be0aa4bb5872dd3440980945e93b1ef5f36d66097a6cc3cf18416f1c5ec2134a28f2aabbc65a15f262101c9a6bb97f8f6f3f575a6c7fc20e4386c06e282861ac391597c30727344a1ca924abb6bbda4a380c454ce8c650abe4568cac2b5f366a1885062f52ed01840cc12ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec3836c24108ce66ce68404d1ca775365e938b88362d7b8c5dab04017d645d2b471301c8cb088b9f81d172eda54f92059b1d10fe721bea267d7d2dcca484684367260133cac9572b24b68bfd8d1f244084ba11d3994eabd82ebc908bfb5ac6dcd0003e22f5ec42aba934a14a76e5bc7166b3a64d009d6bad7e59eaefa93482ef3c2e91d739d2c3ff3fd46d719864a2c7f9e6418fc4a3103fc62c4b8d00095d7be5116e28c62d3c00c02b928e679b5d38063c050937663cb9556ce1a3ecf6a2841d1984cf160c6f1dde10f4aca42699b220ff6ada0742d766f37b74b02b7889bac42a0a1100612f180662e6479f055a7b5347338eb375ae8c455f4b47ef19edd7f71637c1c467bd91285f2ea15bd7887d5987d39f02a102294a862894bd881a1810229907a1f6704af57f5f6492a221aae432d0e4f672585f6714dc8e9b431c3e91376f0c8e0f6514af8b4d4995bfc17ba38e860e90a6fcce4f1b40277252aaed2e27c596073b8b3c49cdfbba3fd83124e41c46ca2a0270603f784facce53f7330b000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010821e65648a53500bf2ec40bba31e894ca58655a21ae76a4a6af8e08941d437c3caa790d9253109319ad09e5bd3fc7987a5a16e8ebd00c6da5786acd1b4909b92dc7b44459c559834a8dade81118b5303e39ce230ec64049f997129e3754fb4323b6fb6e3b09a50fb797c36ae008fa8ef35b8572fbaca67e94ff5bd4ad39eb2f02649caeb21703f6e4fc594383e6d3d1db938937627a4bad4b503a727e6edbba0266e0cab7bad5475f216f9614b3191e14d2c0f8bc6eaa342c43a7fb00a7383a185be793af9dfcced20ae8360a2169518c2bc1949da42c42c311387b66d23d0b1fc5ce8e2a5227569c62e0a9acc66de86ed5fedb0a5a58f566e20afa561028fb0b69f674aec68ab86c79b4cd2ce2d3b7e9a09080d34dd3da0db023182e6c8ac9055c9250c19bc8925a253f9ebb2a758dbf332e249e48a99b0cc72be4d59bd31d07dd054c59e538ba583e08e9c706624df4eb71b58b117222c3e9fe9989eab1890d6fa932128942557374f84207668cf8bf0da47ef59ef004d91d0501ac4d1d4733a948170556d9f6d04b01181b2c1c5474d1fd98a946597c71bc58ea7a484e481c016e759bee15c6b1ab172a1e872977ab45e7fbc16116b1bc764ee32de7191e2c0c198dfeef001c890f3b36cf445420e1062c7bf5f0b087330babcbc6a00e6f3b2a134aa8b96d3ba4eb3a270340372d5e02d9b55ac3573cecf2e13433eb80ac134eabd1e0baaf3c658584fa6efbdf0d0235e8d40b00a7bb6809c4f5deb64a9524cc7e10baaa9c6fa8e1cac401adfa45dab26a8c0c93d24b9073f2e07c1df121333cc7f239e90d1e250d652ea9f7cc12e697f5c2ca7e415f0989cd766d6487350cc3380dc616f2e1daf29ad1560833ed3baea3393eceb7bc8fa36376929b78cc002fe7bb218d4196b942f9e951d6fc5df7dd68ddcf43626ccafc3f9c22f6a4053fd01844de72be6946bd0616ae2903a22a69301e3a0996aece30f150dd095bfc00ef86a7a7c247f19e4ee18e9932edd5d7530c550c50ec1ff6ed3e0caed134193f107958583db80e61b11e7166cd122a4af38ca6fcfc0cfba23ff2e0512ecbe804ada14646cb67b8178a67c8fdfea52d349f3da93d949c9fd2a2363f6a16047d3b525eb9b9349847e875983702015ad2eda75b52cbb85c7bc68afaad95e9fb84333cc7f239e90d1e250d652ea9f7cc12e697f5c2ca7e415f0989cd766d6487350cc3380dc616f2e1daf29ad1560833ed3baea3393eceb7bc8fa36376929b78cc002fe7bb218d4196b942f9e951d6fc5df7dd68ddcf43626ccafc3f9c22f6a4053fd01844de72be6946bd0616ae2903a22a69301e3a0996aece30f150dd095bfc00ef86a7a7c247f19e4ee18e9932edd5d7530c550c50ec1ff6ed3e0caed134193f107958583db80e61b11e7166cd122a4af38ca6fcfc0cfba23ff2e0512ecbe804ada14646cb67b8178a67c8fdfea52d349f3da93d949c9fd2a2363f6a16047d3b525eb9b9349847e875983702015ad2eda75b52cbb85c7bc68afaad95e9fb8404c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a208231a5dff2845246ca0cf5e27115659713ebef7caa9effabbd28b13d9ef252125598985b4ae56415db9e2bb332c7ecbf1e5b2ee5b48d128e16c3f52244ff7e2622cbee39cde689d2d8a050b771f7a2c3b1ba52e62b09b30c8e93c520f6ada1196338b4638e14cfd60159eba3a4b37353ad4a5d4d9e176d1f2d58b8452241f034819967d4332e1af1d8e800d34bbb8e694c88b8f1d5feb0267be1d368a9293e0b45f4fb3203a579f75898884ba773de8b74c16da0c98fb3b4a53a4a4f9c399a0427665ed95b17a0576af512ebc575a225cca770747fc11a85e3405b33ad6bb002137e04dacf9afbc347f2bf066d88f624070fedb8de8410940ab528ab8fc49c2a63020858900b61abae8a795fac74fabc6a7183931f80ac647ac8d64b3653b7224b385c098e8641a085c4a165c658c92708e50a47976d7d269a67edbafeaa0c1abd3511536821dc461c7d674732bae6dda3b9d00728c5266be63961803211442b7daf5260c290bfd4966a6aab0043b18e76968a2f8279204734ed0f5f0b1f0a18a9b70c789886e082d48aa840c531f0b99ca9e24e4a4115d7db8438d4a24ca8275648f38767791f7d2b7557bf3ace0f68a9ef19bb02b805c151acb42b5db35a2d7651c5b56dbfdc2be1b00a4402ed2aa4d03ef9fd5fb2180e6868d3677610ef0deb22103a020cfd8a58e54d92782887c90b6f3100eb0a28aa6ef60f71552a3e0343c245d122c02008ea2e7bbbd4cd937034e802531a1218739649934acb5a8e09fad688a8ffae25ed535dd07007ef0a986aafc8f561c3d367ce2356723107ad3f6c94247738f6d89cb4ea06ab708bb758bcc5a0d36752298087247c4f245a5a3e7c416e397009bf4b6c43b7c3bf8916c88d771605072b714b0b4df92b009ff4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010554c7f5286c58d2c05b4647acbe0e3b44c407d8b77cb71eb96616683add57ed22b575bbdee9d1530be28cf8db7a1d858183ca98f6235a6c99037eef81322ecf0c3743d7dcdfcaea18d3b2e0ac0ff35ecfd8cc323a8a5f9128f86d9a31dbaed502925cb3865496f9289c249000cfab710b620a699986f4d97833bff019d7419a1754e3453822487f237f8303842fe5b8b96f75a36dde5ac5b1d1dafee49a97bb28167781b4f99fd97f618911e58b431105a4e2d018477313a01b2d0df1156b961fdd967c4263c1d661f3bdb8aa77111deb7f8ecd3ac6c0e752d9d83af68624f72d83bd10483c61e8e07ffbd1cb75350a4f8da6547ddaecb1c8bb771f7d99fda929863f142d038616ef1110feebdee00db0f72dd4db1b5bdf8c3a24da4c801f002b23493c2c8cd8d2d38c8a0b2cfd73f5318a13a340cfdd58e6096064fe3c30543aa866bf75bc180b02b55b426b6569883c383fc01fc2ffa6e28cdb0cb243f24d3397454f7189c20df110c31b86d3f600991c11b85032d9c665391444fe266dfc25576d1cc365d62fbb6fee603b95157d5dd90744190cb7702e774e14e91977652a53496fdddf198dc68629e1fe1e304ec23ede50519ab8bdffbb59b8bf15f00104378d4e27ba5b7910b59460ac70722b04c1247a022cdb73f86c57d8c384736e0b565d97173850248e93414e74cbbc84c9c097f10ebfe6ed3f64a9b1a495c767152f3b580e8a4403a45b9294f1cb88a2a307d8e10c32e40f3bd48996567a227f02bf1c35330b894c0da34a795a2e1ad4cfaad69f73af3b47181d593fcbb72a970145de7c766ce3ef7a2a3f7f83c0179f1eab4bef2ab0e586d85964caf6d59fcd3eba218389931c1085d5c0807c3fe861039b4d0cde9c1394c0d3cc22092a6034065d586e502073ad62d33d7d92c0761b99587babd5747ba239bef7f6d22c1f0139a2a791afdf8c529d2cc2826d3f89e488ee1d5033d87d795f6e38f62dd3e1001fd2ba2790a24262ee203373ddc24e89feba6a5b2b466a2b20bad7d21adc9b05202d45d86f5dbd9d11dfcc8c223db176238c2ea0de068ef07872591ae52364fc1f1da2c5d32b4beea6a1014354cb88b1b516e1cfc5c620a0714bd540864f071720e25d3a2cd4b411595efebcab34774e6d2fb72c4386d87b27e15bac79b0f8ea0145de7c766ce3ef7a2a3f7f83c0179f1eab4bef2ab0e586d85964caf6d59fcd3eba218389931c1085d5c0807c3fe861039b4d0cde9c1394c0d3cc22092a6034065d586e502073ad62d33d7d92c0761b99587babd5747ba239bef7f6d22c1f0139a2a791afdf8c529d2cc2826d3f89e488ee1d5033d87d795f6e38f62dd3e1001fd2ba2790a24262ee203373ddc24e89feba6a5b2b466a2b20bad7d21adc9b05202d45d86f5dbd9d11dfcc8c223db176238c2ea0de068ef07872591ae52364fc1f1da2c5d32b4beea6a1014354cb88b1b516e1cfc5c620a0714bd540864f071720e25d3a2cd4b411595efebcab34774e6d2fb72c4386d87b27e15bac79b0f8ea31870947f95bdea9c3c192cb3bbf7effe29d0fb7bf7284c1d7e0d66acf118ab01040c9277dc8c6351fd039b70656118046072e337c872d37814fdf794ba768ca23395a400a684d94c6d78fbb9be15c3f755ec66343bd022f90dd2d33a0d5bb6d0acb6a404135136d1257fddd30a618cd231dcdf8bb21b7ee6788bc2a9fab0c8a20aff83835a5b4ccf729e3b4b253bd1f7d7324fa0ce86a7dfa7275830f1bf16423a3be95ea9f18d2ba1bdc9e20d742dd3d63c827f198de024754695b2fac8ef30f2d75830767eebf3d2ec7ab5e591790e76cd7fa3992cd0c5af72eed276f9b0d3aea6a4f9e6c98e1713851647dc952661f58279d7f9aa9ecb65c91af23d535b8328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff41daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f0e9b28b272c02d11c9386c8f3a096b2194e24ee296dde17998ff0afab4195ecc07b3c99b61e73f8c0eddc62acc9a1fce8d7809e368c4ace8b061ea854a2e59952b3f9c77fc3bd3c17566dd79285f24c0ec915bdd0f6a6b45c99c5e3b9018b9e624f3cc984102265dcdd7c86bc903d5b2b9219ccfd1a413f5b054954914ad8aae0d9535253cea21b1c3288e55a6ff883ef8e2c72bf8af28661332775036c2b547326acadac315de4e3cd771aa590077c12963d1d0109dd0b585fab99cc93d4abb2005f4f59c3c928ec3767307fe1673ed725e13a3f64d55664f83472ae6a2b5ae1a09575dfd31302f217a0aefe63ac1162caabdb0fca6292ec2bb36193d0fbdf53a117c06a995f4c30f7e58ac44e9bfa87a75d8350549f5048bcefd2e3904b99b158bc49e459984cd6f93b80394eed78f7e41df8d9670222d974ee5282991e1c0063cc7959032a8cf40b3e9d66afd820dfc06cd07462e7b298d0d20b5d59a95d43f24f74750d0897d09fcb8274e5dc71d0f1b936ad253290524ca09cf6495536c000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013cae966af414e5331e7a6afbfa56f6b27efa5df2817773abda389025fa7c1a54171265f133abe509df8b4fd9ef75f5bcb580cc5ea675ab30b5874443f92c26850539e21cc1d2023678b45998e91a75b13b41b6bfd2bcc54aa2d44a7b1e0642022dc2a77df835ec40708e899a857710c9fd452375d81076e9b20204892a8b47ed3f7bc581d66dad033a6016d228a15e58d59e815c862cd2ad2aa44028d1daf326095acd79f5deca617d24c8e205eb4299df7c47960dd2414b8eb693613781b3ff24dd10c46326210f5a63f762594708b9a32bcf4341db741c4fff6e69c647a48b2d1c61572e247619cec4a52bbefe1a057dceef0f83d4c6980fc8b3769bfca9fe3c668ab7fd5a3223d9ac025aad7aeb59466e383ba603e9b9828149ba55e9c9880bab4cefead8e3a6546d7e464987b7bf4b2d0cd13e40f8a47f041ecbdef9b6ab1602976ab66fed4103f081d0af2f2a5ae7d52ccd62affe6f82fe4272b232c6113ffa60694f62a30f0525e7e590aab06ee9d4b20b10470e01e5489873e7e913892fdb96c62d0e3bdb6edb6dd7e50d145c78bb99626bf9d840470cec4ad111e3951fcf1fc67436b3e2131aaa6a54a6316fa75c4c31fead97ede725bb82d71d83d12cfefca78c25e514ee8e8d5724d3d8dbae7d272ac7bd9adbab233cbd6e80514e1b4b6c77e416f53afc5ad5d412e3eb86769b1f450fee43cbe72c6e30ca9a167328a3cc98b18385adca63ed83e0a8986ee326fe2109e0de8d0b2ebae40a1ef4103679a97f40636cf5742883dd43ae9a37da822b1773cc23ef8acbdef6100a67333e8a50a7af3b74aced7eeba731946e35ef6fc91677fbbdcd3649ce4ae29070ec0175af5850c48b5312811458ce6b91ca32d6cfe591513b4e62e362a21d6f8f1538b393466c294760a37a9a43f7e6270d2414898032b6d093aabc43c26cd23498074c6cb993d6b89f5c8565bc0819d8f2fe320f7bd6962887ee70ed2a932dcb691b81e0601cce64e331650353d77ec3412b4c4b90d85e2e73f0f88f18201b06f4247e1f9fe3319b1cce9afcac28813cbef6fa4d6b30eecaa7a834a1d4dfe4f90d098961e09007f86ff6f910a33579d04593f047dc273cf60c8280699ea08722c236769e1f6ff807900906ef5cca862fba8e56511fe210030f16acc74e5f78dd3f3e8a50a7af3b74aced7eeba731946e35ef6fc91677fbbdcd3649ce4ae29070ec0175af5850c48b5312811458ce6b91ca32d6cfe591513b4e62e362a21d6f8f1538b393466c294760a37a9a43f7e6270d2414898032b6d093aabc43c26cd23498074c6cb993d6b89f5c8565bc0819d8f2fe320f7bd6962887ee70ed2a932dcb691b81e0601cce64e331650353d77ec3412b4c4b90d85e2e73f0f88f18201b06f4247e1f9fe3319b1cce9afcac28813cbef6fa4d6b30eecaa7a834a1d4dfe4f90d098961e09007f86ff6f910a33579d04593f047dc273cf60c8280699ea08722c236769e1f6ff807900906ef5cca862fba8e56511fe210030f16acc74e5f78dd3f288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc73502405abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b31ab1bc182a8f50046511b7ab409a1d69cb3ab17ebd01f77d737b60b7fe18ccc60440930f7560351b151572858db88b4c489a2f492f8897491262236693d3a6fc3000000000000000000000000000000019b4f2bd06f9bad4b2e1e4b1c00000013000000000000000000000000000000019b4f2bd06f9bad4b2e1e4b1c00000013aaa9a47453df473718afecd5a9f3c813f8ab265d7735b30cf3d9aa31345b8bf29f67f7b332db09cf5bad95713cd823005366f75182a210df2f8ccf2a0536bd63335039be7eedfac2e3ac623e673589a8852baecd7723f5e37deadf71fb908e23fa261b1844f304c485490d5e999b2633afba4d7b5b76ec065c640ecb11d4f89354e43e7d570affb9aee4854bf65e2965f9d8dbc4e9e3fe50bfd1c7041e7333c0bbf6cf08a9fcae4eaea8d7a724774b3bff776f5d2caa6fdd3e928d4ac2c59053cc3da9332bfc4c2de3e80fe3391c67d16d585354e9f5bb7a35c091c3573e31936138aba397e4b359850d5fb9c7b4480ac78da8f3e8a5266fa48e5c79b6275533d2178e1ae70947695e9f02849f81419fe207959a234e612d6c2f91c8456939102de871e518f6b896a160fd7b607ebe624261fa267181308c26a37d07ba96c711ab11ae211eab58d1a4268f08006dbf98434d7a4c8755389ff3231ef472433272031cbe0480a10a20622ae694ebc490d53f0bbbc0ed5648b9a630acc5ef6e77c39a535051151506b5379b027ba6db369fc9070a8e3c7ba8ae2b106182685f9e51997fc6544ea13622afb391fa25b0146d47b944c08be01418469a2f6bbe6e1ae0b4e8372a117ad61a73a4f0df1c052699b5c2c6271b5e00ff594cd2e004f0e583f15eba801d67514d55000295c0022953b2d64fdeda04fdd016e4b122ad52af8000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011d47ac5bafd101c409adeabe8a859450907335deecfb25c09904c9a985abd4c705e19450bb54b07ab47ccc26acfad25ede5b2a987fa54cf9b87d4ea38c2666c73a24667520284f7a5152b62a6d2372fd1ab669a5bd54f189669c29eebeb68211200ddd57ba3fb21be300646b7e66f9ea34d62b46fa73a270ac2661b9c4ef81570f99b0adae14c39bdcf8c6b9431465b83acfd2deac7c298b1e33bd52ab3ac172038d3957541213072766074fc87a24859774bd15d6dcb323c7292e2d64d1a6e43b91c77c9c0e54e49d01965ecfe431070ba32186d98d3dec93660db7b1f604e1359eae7ae059aa7ff69536b943af2399adba9f299e7f695bd9cc634e79d9bb8127b056a91917d5134e3d6942bcea7b241a292b370d746c37fdb2462633c343fd0d9b37aa8050a91ad08f5182c8afb8af55e97efc2ab6e5c84e6b79224711be8a2569dcf9193f30cd03d8228b71054c672a75e7602c055a6171980ce162be334a228f396e924c5317273dbede7e62682839e3a8b220547772f73c67574e2c6c7d3cf9e57a8fee85a61f247cff2aa2b1fe69f34ac69bda955359a15bb5eb45c7ee12b0d11211566a1762d19b430f1093cdb6249acdceccdadad4914c17bce99f783e2c8ee7684e289a132c5308d090ea2e64e62e49d548aa4240cdbc6b8b52edaa000dc125e13fb149069e9cd0185cf41ba0fc77c3eb1f7d25e93bc702b7676be903504cc2df3e61d7dcbab16fe7b4996503913b7a0cd5e9ce918479608725664639b69bd9f5433d2753e6a9bd9eaaf0c845d496025ff7080f32b95cfb7bf3e7e02fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c1152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b529622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d0279169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd880eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a31153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a72fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c1152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b529622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d0279169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd880eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a31153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a73319a2a83a6dd65b246c9f7d539b67b09c3b0afe9bcc31f641e4746e726732ac352254da5cad22b2bb31a255d43899f5be174c33d783688ffa31918b2d0e604e012515c31c4d62deb68da72f0eaef3954e35414c7d634f15b8a251c3e93c47a806cb934fc247fa8d561ee4874ddb15c44061367e9c9857ba790f75d47e485c6631e58121b4e86da8dee5935258eb584177732ffc36cb6ca749c9dad8b2f3761711b3b2cdd522bbab58a1c1e190509f255ef725a55de7262c784576be6a96be272267e92a09901923b82bcf1dc9b164a7ad75052728e5f70769a126c426b1590501964ace5f996e004463cc51a0e0974be4467bf3704d77d22853a8ba1554a8c226c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa1101a49e89dccf3c20d53292a3e6513a4fca4c6dc28c40702523309daab5966042b8e40f40da8d8261d87a0534e4cda684b2f16fa51f2e5013e2a80240aac2a2d0bc14794a944c6c62505b9539db5a4ba37d64cb0f01d780f9ea66abaa45c85ae041217d5e10ae2bfeeaf7922ddec504623ce1649953138d125ec298d54a9434e22aed3a81d0d635fb1c9c5d18c74834c4e756908cc5b4d28f7419c56d904f60e1d512c57e2f29ca04e363a2e738b7cb3d3d12ff33cf1abf2a1eb949626fb09f41dfbdfbfab900b06d703918742fee32becdcfa772262ee36132d747d639097a51d743cba4ef5c5c973f7e3f83310b6ab185f459309c48b788fd3c0818f13e4dd2ccff72041769e1ab5953cb5eb2a58f5b297dbd420f16b057d9adb419cf0520139e3e4d4c3e51db81cc112b334ae70ef09672755571cf841dd1148a80b0d0dd0289ff1919d70b54093801e384624a8e4b61f346fbff46972aaafdbb493b2f904170358528f9ea89495fe9ff3291e85f0b45094571b098213b335449e48cdb05c0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000137a392654eb5f578529fadcbe2a4c2dc079acb4b754500861a959dafba2d729c28b78825e8832beebd7280e2cd23b67c7e5f077abb011c6f0a799e56edfba14d14b3c03d8e8cb9d42e00e04020cba3da9412a10a7234cd60a4f5dd4ce755d9f82c19eb440a8bb008d92f4ab43276fa74882bfa3e8e2223ac8d045f79e7c710dc14907fe178938da0c1b5e210d8c3884fe7c8b2d9239657ad2ac91f82fac2601035c36373bfbd29965ecb1d0228294a727513394713cf6a35cc3954c798c012a931f6cbf07686631245d7fdbb35ba33900b199cc9533a51deed2e843f764ce1b2119d0e1a69327e8ce78cb6fa2eed9d2c5a8d4f77c5a13c350ddb4170502c3ca3261e8f5cb4e8b064e054624cf949209b642013d600005127fd9665386b2d6579057ea1cecb6655061848284c59faf6d65096b828d5ea437958d4860d371c599629931425738248c9233a52e6971f90f1549b35af673cd84f9abdf1a9062bf87228f09846e6fb415c35a7f4331cfd5115134dfc5c8ccb3614315a7223fbdbbffa1647bfc9ee9f2da72863bf39910e675b0206a3e5f110f04d72712370a5a020d23962f6c2b2a5c21659925908a8a4de711e1141ae79967fe0bbc1845d028f46941a5be043504bd70e4fd13d76dd4c1e9b99c961c2ba5bfa4bb061243a3349bef62ccd94ce600e847e0bcb21e96ec0ef85be79d202f62269bae6edbb8fc0342c8b0098678d8dc0af9d7b2fde6742b8a43146f90d45feb29d550909e196d7f4e5ac25968f23a5e94b9ba3c2bc2e43ad27f06c5b646f0660186aa270e002450d6d0f0a025301a262adc9ab1697311b7fe425e7d66c6ed6fe4296cd9e175eee63e12d35fdacfe5d9d523654e968cee4801bda3a702c8d324eb684cb8f198e119c1ed4320b9f082bed64f05770f3f5897f74bd87301e2a32f74cf2041674daa7f365e10df460f7d4129b0fa88f0c0a76808b429b167ad1d655ac299516bc12580c9a203a3a1b28dba2f8b1b534c3cbaf7d47b33d1ccbdee2ed956748e8b57e47c0fd6205c5e4d7245d074e4acb3c345082b84ce529cd1d265f63b450447b6eb83f029f232287cc4a2edb788a07d2fa6d72667fa875976a4970069607d6c7c366c4f2e61cdd7833b5d1248775f82d05928d998079d10191bfdcf28591566929993b0d1b0a025301a262adc9ab1697311b7fe425e7d66c6ed6fe4296cd9e175eee63e12d35fdacfe5d9d523654e968cee4801bda3a702c8d324eb684cb8f198e119c1ed4320b9f082bed64f05770f3f5897f74bd87301e2a32f74cf2041674daa7f365e10df460f7d4129b0fa88f0c0a76808b429b167ad1d655ac299516bc12580c9a203a3a1b28dba2f8b1b534c3cbaf7d47b33d1ccbdee2ed956748e8b57e47c0fd6205c5e4d7245d074e4acb3c345082b84ce529cd1d265f63b450447b6eb83f029f232287cc4a2edb788a07d2fa6d72667fa875976a4970069607d6c7c366c4f2e61cdd7833b5d1248775f82d05928d998079d10191bfdcf28591566929993b0d1b274d3dc3a846fc8924f1055fbf4f5ad5848b4b6ec07c76e6079ee428f532d63220e6a6375b0b5eaeeb6fc87a8cbfa390fbf15474932bbe08a8d6ecbb879cb51f266251b54c6d2543d21425e07ec0aeda47502ad99e9fa2f46262cd952d3d00001d0e91854489c12ebe7a3fe60a253723a77be6156df5a2af0472425de5c64eb81c8da40b524441fd2cc45ebff9a1c1e345dfa49e131e3120c317c2ab7c76eff6285e227dcac39affcaa9a3843ff26167e7011a6f7ac8f89a3b79077718e6e22b0542da47936f227e122da6de23a2e72b4d2c3e2b7e5903e77be09f12841efbeb21f8b3feb7ed63a24514556281c512bf418eaefd6e5b0066bbafd9afd9e0cca12260f666d094d1a6403be2dc098fb8f586eb4ad8166745ba69d9a8268d67ce9511fa42639b21ecaf1ed4e983217b62a6709fcf49a5422b064a6309c8e2c557660f6e8ca648718d5b370910bda7dcc81a902a2f60423f21141d248842e6d8fc7a320c56a8439f692f2fd68bc008d17532d03117ba485fbc1f13c462d99b8186f1325070870b4bde3308fad4bfc1eff65078b1bbafb37dd85cc858b01bdd9029d1020ac843606ae0225615f79f691b254b7ed95e72082b9863ebe401d3929cfc2b20562e237029f183ea25eb3ca07493aa0811ec660e3bad567df5a652facad26b1fa9d1dc8fd60e7c15da14c35f8b6c561a34ac95fb114bc51b378a9a05352d972f449772772d8f0d1808979e6aa9cc1a262f7a594ad444b4daba98782763f23f2d9ba4be5e87a8a6d91e99ca9ccbe5a9a5fae8e8c00e8665e86885dec7035c89136368bdadccf4be7a47d1bf570ed9020ff486d6dc2b93d1caa3b207ad9bec5f2cea2a9bc2cd88a2b90e2a6284360f4ad85f71beaf67baf9a1d7998f7197c97d0ba7f838f4116fa1950b63dc3d4bb4a25fa9385f95b0ecdbac5a8de0f31840d51539816c6fcf97ec74ffa45e609c4a4e9a6e98b511ce4f61d3d2b75fdd100c6f000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011de90dc22b8640c3c895066b3026a58c8c30d5f765c9c6894002a17f6da78a13278fefa3dc6bea632d3de4d91a3980fbf76ab722c80d9ec718e7868e20e1b7763d05ff18ca10f74219cc3a8ec10cdb6d0be921fe9366e4b7c309c6ce929dcc6c36e08b361ffd42fad7a6739185f7a912bfe36a5b7d8b01771db7b59e2a14b0e224b9ede6d2043eee37eb447935b0952df03257189a0164dfffa0c0ed589ee2a515789941f64109be1ec03a21e0e9d34cf04216a04e514d609b8ab7d8e6f1a18b3cc8d6b833722960e6385fc64214d3a2ec9e321aa817d603bdc9c0bdc6c2e7ab1d753d02252b3ab7dfb228201a5fddfe169601d97847bf196c8fa9cf8d9d16f40d0165bcff194ca25b3c18ae14373c743d3801d9fa58dea76c0dc80921a36277136757e08c18da1d2a7dff26c35b283df8b6873b075d7bcf63fce122e9fcee8d1a9707aa16f84b4f634b35d931a8869cb1e400e5d724aaa3656ddfb311bb5898223ba8a2540450eb68a159f975c8c3eff724591edb6e2b38b08ce28f085c36a41ba13346e6ea2343609fcbb6c8b07260f12dee42b4dc9637327dd401ba2406bf34098345ba5acc7a21564c8b7102d36b2ee9f751b5cad9f6fbb4d3cbee0b60a70f6ab6cc4ae6bfa482d984aa4dbdfa3a29f83500eb724952dfd8c865202184c530336be1c13199a3df4ce746867ae5e5b83ebff4322a4a8e5975f6b9b7869390063ebd5608275f30a05dbd2797ce69efc0713e175cd8043cb24a44c12d63ec4837547d67b3a629dff4aa8c7b11e0f0716196d4ad566c3d05f4c6a3fc4a51a9630c6a5a22c9f1ec21e26f9d72cef81074d6f17160818e39ed3c7ec8fb8159456e3395a5dd360e13de1d90628d3107ef8b4b55279b87bebf2e5cae67f17ea6ba933e13c2adf1b99ca96c2e133e0ad8524832b736e287c721a22e79ece986be5b2601ec3d520e46635693d1ecc1f527adb7ef8f62198185d7796ab344037941a4db3662cd65b8a00f4f1ce6603636399b687479ae7c81afc3bc83acdcdba1b7c7ba099d329a475ff0b0e3199fc9c9c66497adccea7f879d355f158054115e4838470fee02fc9b204c8b907fe10f0f200909bd46047e633aee402dab8c962896e69e3011fd0364dfb3746f801ef0f0dff6f66500947da6120adb6b81a456d76919630c6a5a22c9f1ec21e26f9d72cef81074d6f17160818e39ed3c7ec8fb8159456e3395a5dd360e13de1d90628d3107ef8b4b55279b87bebf2e5cae67f17ea6ba933e13c2adf1b99ca96c2e133e0ad8524832b736e287c721a22e79ece986be5b2601ec3d520e46635693d1ecc1f527adb7ef8f62198185d7796ab344037941a4db3662cd65b8a00f4f1ce6603636399b687479ae7c81afc3bc83acdcdba1b7c7ba099d329a475ff0b0e3199fc9c9c66497adccea7f879d355f158054115e4838470fee02fc9b204c8b907fe10f0f200909bd46047e633aee402dab8c962896e69e3011fd0364dfb3746f801ef0f0dff6f66500947da6120adb6b81a456d7691963328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff41daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f0ec70c44d876c57b82bb950c382934e3ec0009a81f04f2b33ea650419990bbc82ce53ced07446ce4cbfeaaa0f4abcb1f9db63b2df513b703b1ed32ba27a6c3e40acb6a404135136d1257fddd30a618cd231dcdf8bb21b7ee6788bc2a9fab0c8a23395a400a684d94c6d78fbb9be15c3f755ec66343bd022f90dd2d33a0d5bb6d3e67bfa2358232f285f9c6aa48a670ae33bc882dc8695475516879500f531a3b3780608b24a9456ccb9f2045db37255b2c52432e9a501fe468cb58daa56815042e26f67ab7b96cbd66298cf342505f2dedb559fa4be2273dd01899d6c3abb17105f957432b4d66c307dd8d7a9f77a65b49b53376dadd9b2290ea826fd6568a542e6f28d62bd42c3fcc73da7b517d5baa60819620acba95f0aedd2585cf579b7d03e95278400e0261be0173704e35195ed08b526147587391f22271c9aff1acd03eaff1fda99cf274ec44143257d36d2aa688c4542941c328302d04ff1aff044735705bc03969e10b81c3063b89f4985eb328621906caf853ca0348347f03378038b69aba7e4f8bb1e46686b7b85bc6cf5cd390dd4e6428059f42828f44a879f30749654581b0744e1b99794847a43930c573081ebae8d115f9eaae5dbb57860f1692321285153bfbd269c62de2a8b229adf2e7765fb13f6dfb9efe3f1b2d1a662ae97dec5beded385fc5a0fbc4dbad157d00b9605a7af6d457ef6729bf577f58379704caf1a3956679f4fed0cc79f4a409c31f28f7570b1a33dbf528767a0e0613c2edca043bfbefe137a27b08a8997d6151e2cc09bc0d9dbeeab485e46e228421670fa21cf311d03323710021d3b9af58b09f0e76a3999c34f7c17e93b32d272f244c42c07aa2adb178d863c82e44f801963c1abefa4604560d9922872b2210000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010ffaf1fd37fa3a6e30758b55573b347318cc7de00e4814622011ba8c3e9ecfeb05ef28bb37870e2956e0ca8373dfb53ca25283dc496523edd689fb24ce3d1516256b277f440eb07133b4423b52bafa9e9dd45e131174042c11460abcc73778d5060ba42e1243891a809b0732ff351aaf60e21644cf0c0906086b373948a4aa1c380c425f4f59e42dd633480ee8b3d074dc50238106293d871975a2d50bfd34fc05904adcdae87a17ffa72ad107d178f7218ca5501bb044fdf1123eb0240d03593281c89f95b4798d83161ed85339913ca2a26b67e4c00b38e7cdb240546c232119269ec04345ecb1b01703ca40eddbe064d6588a2225d64e4b597313ecabbaa93314e2d3d37a79154e4c0667e9d35eab4b93fd465dcd270227e4c50356307ca61121e2dfffad26e1abdb004617e8a86cdfc23110b7b3eb15d8e6ba4ac208cc7c2dc270fcf6540983a25c3adf5535e12bf378a54fc70a185a3a782c1184f2be3e1b0ccc75474575e42fcf2d4ed95c1a4c2acd36e268af6d9cd6a836a975a64605085da66e5a09e45d3bca34f174470c928c47bbcd172cc1e7287841e0bee3a2e0074d101e473b0b60462be350c56c3939718990cb4a2db52b6c8d34ffe94bc48521510bc249bffe88fca3965d33f041df0278db90c7a354595af64d6bd64248f63cf850aa9595be4878bd1cee2e3ac14946c856d6a49234233f265bbc83e8140a160658d4947e83dbf2406d62c6baf5c3f277f92548bb249da09d1b1ee212c0e23a70721b2b8b32dd3c51cb0dcca9765da60fc6630119acabc9e7cb2df21bc6933d73bb154c4cb168c6b15573da8bb045cc9f23e4ebba481d8fa2de9e9463ad30028c44eab3b34e97394eaa8c25744fba55a775171d92b0fe098a524e6b9c52d13342a76a7d7f770be176ab4344ba715c76014f88756f842569799564e5f261ec0cbd5895828088f41e8954bcbb458ea3ac45497393dd74f62fb39b881a0d9e15004d4514737d533b6751585057a436cdc4ec29ba25f9b04caaab27447dbbe9983fb2baeb8c82acc498aea7afa85bc9325d5a6f41e35348ceee8209a882441669018259664172a0290496b991b6351204d89cd0a2bde0717f5557c45674ab8ff83e7da699be8d5fd6fb69466e49caedfb49a9c8594b6c879c43d56c968b5470093d73bb154c4cb168c6b15573da8bb045cc9f23e4ebba481d8fa2de9e9463ad30028c44eab3b34e97394eaa8c25744fba55a775171d92b0fe098a524e6b9c52d13342a76a7d7f770be176ab4344ba715c76014f88756f842569799564e5f261ec0cbd5895828088f41e8954bcbb458ea3ac45497393dd74f62fb39b881a0d9e15004d4514737d533b6751585057a436cdc4ec29ba25f9b04caaab27447dbbe9983fb2baeb8c82acc498aea7afa85bc9325d5a6f41e35348ceee8209a882441669018259664172a0290496b991b6351204d89cd0a2bde0717f5557c45674ab8ff83e7da699be8d5fd6fb69466e49caedfb49a9c8594b6c879c43d56c968b5470090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012fae6bb6e8b95fc6bd1f0fc23dd23e396b097518d1029fe063291c6f3e44dc5f00000000000000000000000000000000000000000000000000000000000000003333bf7f95485d87044e3464bc8694346323572bed8df9d90bde399d7fdda4323dc439d0b6c27c96c0c187908d709a04d620ffe38d8908f4b89ede76ce9dbd313727167383919bbe46abc74f1815b726e26e6e0ca5c99adc9f01c98f3694f302325c2a5dafa39dd92df64edbcca10994ac1b9ce690977d16ae9fda428f7c799802644f4ad02ef979f92bda5bcc48c673933811bcde546b106900cc4bd620fbb734fba33cee2b7524df548de769105dada870e942e5f7935b1777f3cce79b927719a75f57963083c41da3331da6a3ad3f5e3bda1b65c729bbf2146761cf1d8d7d2896a75b673a561b682034d34db5bfba48144d49610b22e10a995b89c1308e2c0d7c31b4393d1eceb340f470609aa2d55a515d313000ce8bee52942dfadc5fdd283ff3c5769cd218da583f6bf7cb4bb9c1c266b8d10cc201d0e68e9e63f644a8278eb604e6b029f7a00ae627ae683c12caea2476033024dd7b02447fcece0e85281c0087ba94c5c5e1eb321a8b4b09b9552dc11e67774b50b330634dd96158e1000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000001a677e3364ef4e0c9908bb612bb8583a9294989fb02864d43959efd6baeed17000000000000000000000000000000000000000000000000000000000000000003395a5dd360e13de1d90628d3107ef8b4b55279b87bebf2e5cae67f17ea6ba930c6a5a22c9f1ec21e26f9d72cef81074d6f17160818e39ed3c7ec8fb8159456e01ec3d520e46635693d1ecc1f527adb7ef8f62198185d7796ab344037941a4db3e13c2adf1b99ca96c2e133e0ad8524832b736e287c721a22e79ece986be5b26099d329a475ff0b0e3199fc9c9c66497adccea7f879d355f158054115e4838473662cd65b8a00f4f1ce6603636399b687479ae7c81afc3bc83acdcdba1b7c7ba3011fd0364dfb3746f801ef0f0dff6f66500947da6120adb6b81a456d76919630fee02fc9b204c8b907fe10f0f200909bd46047e633aee402dab8c962896e69e3395a5dd360e13de1d90628d3107ef8b4b55279b87bebf2e5cae67f17ea6ba930c6a5a22c9f1ec21e26f9d72cef81074d6f17160818e39ed3c7ec8fb8159456e01ec3d520e46635693d1ecc1f527adb7ef8f62198185d7796ab344037941a4db3e13c2adf1b99ca96c2e133e0ad8524832b736e287c721a22e79ece986be5b26099d329a475ff0b0e3199fc9c9c66497adccea7f879d355f158054115e4838473662cd65b8a00f4f1ce6603636399b687479ae7c81afc3bc83acdcdba1b7c7ba3011fd0364dfb3746f801ef0f0dff6f66500947da6120adb6b81a456d76919630fee02fc9b204c8b907fe10f0f200909bd46047e633aee402dab8c962896e69e1daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff42ce53ced07446ce4cbfeaaa0f4abcb1f9db63b2df513b703b1ed32ba27a6c3e40ec70c44d876c57b82bb950c382934e3ec0009a81f04f2b33ea650419990bbc823395a400a684d94c6d78fbb9be15c3f755ec66343bd022f90dd2d33a0d5bb6d0acb6a404135136d1257fddd30a618cd231dcdf8bb21b7ee6788bc2a9fab0c8a3780608b24a9456ccb9f2045db37255b2c52432e9a501fe468cb58daa56815043e67bfa2358232f285f9c6aa48a670ae33bc882dc8695475516879500f531a3b05f957432b4d66c307dd8d7a9f77a65b49b53376dadd9b2290ea826fd6568a542e26f67ab7b96cbd66298cf342505f2dedb559fa4be2273dd01899d6c3abb17103e95278400e0261be0173704e35195ed08b526147587391f22271c9aff1acd02e6f28d62bd42c3fcc73da7b517d5baa60819620acba95f0aedd2585cf579b7d35705bc03969e10b81c3063b89f4985eb328621906caf853ca0348347f0337803eaff1fda99cf274ec44143257d36d2aa688c4542941c328302d04ff1aff04470749654581b0744e1b99794847a43930c573081ebae8d115f9eaae5dbb57860f38b69aba7e4f8bb1e46686b7b85bc6cf5cd390dd4e6428059f42828f44a879f32ae97dec5beded385fc5a0fbc4dbad157d00b9605a7af6d457ef6729bf577f581692321285153bfbd269c62de2a8b229adf2e7765fb13f6dfb9efe3f1b2d1a6613c2edca043bfbefe137a27b08a8997d6151e2cc09bc0d9dbeeab485e46e2284379704caf1a3956679f4fed0cc79f4a409c31f28f7570b1a33dbf528767a0e062f244c42c07aa2adb178d863c82e44f801963c1abefa4604560d9922872b221021670fa21cf311d03323710021d3b9af58b09f0e76a3999c34f7c17e93b32d270000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000105ef28bb37870e2956e0ca8373dfb53ca25283dc496523edd689fb24ce3d15160ffaf1fd37fa3a6e30758b55573b347318cc7de00e4814622011ba8c3e9ecfeb060ba42e1243891a809b0732ff351aaf60e21644cf0c0906086b373948a4aa1c256b277f440eb07133b4423b52bafa9e9dd45e131174042c11460abcc73778d505904adcdae87a17ffa72ad107d178f7218ca5501bb044fdf1123eb0240d0359380c425f4f59e42dd633480ee8b3d074dc50238106293d871975a2d50bfd34fc19269ec04345ecb1b01703ca40eddbe064d6588a2225d64e4b597313ecabbaa93281c89f95b4798d83161ed85339913ca2a26b67e4c00b38e7cdb240546c23211121e2dfffad26e1abdb004617e8a86cdfc23110b7b3eb15d8e6ba4ac208cc7c3314e2d3d37a79154e4c0667e9d35eab4b93fd465dcd270227e4c50356307ca61b0ccc75474575e42fcf2d4ed95c1a4c2acd36e268af6d9cd6a836a975a646052dc270fcf6540983a25c3adf5535e12bf378a54fc70a185a3a782c1184f2be3e074d101e473b0b60462be350c56c3939718990cb4a2db52b6c8d34ffe94bc485085da66e5a09e45d3bca34f174470c928c47bbcd172cc1e7287841e0bee3a2e03cf850aa9595be4878bd1cee2e3ac14946c856d6a49234233f265bbc83e8140a21510bc249bffe88fca3965d33f041df0278db90c7a354595af64d6bd64248f63a70721b2b8b32dd3c51cb0dcca9765da60fc6630119acabc9e7cb2df21bc693160658d4947e83dbf2406d62c6baf5c3f277f92548bb249da09d1b1ee212c0e235eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5600a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa10da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c8525044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b61584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff772a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a35eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5600a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa10da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c8525044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b61584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff772a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a0b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc28a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e8719da8e2638861c7ac4e5de71bdfc3b42ec37f154f40bbed4c5e50965a0156c061e34c8c6e8e486192e6d95d7e579bb63a7782fdbfb459376a1965feef865efee30c952866824f5b6d2e4327f33892b0af948d2089edcd99d46a4f26b26117ff80b9d798a0dcfe0f4f594784ce33add8e74da0a4ddf0a85c629a61dd7bc644bcd24b9719897af366a8aee83ab7091b28346d90278f468950f8d056030c45aaf4b3f44c25fd17a50b971a117c3fa0049706d29179dae17d2e59e1ca03a77ab527d3ba6fdac0b77d30417b290295f5091155d781ed0d0a66a28e5a091ccf9031fab1883d6e1d3620a99d127d8cf8f9f75ddfae5984b4c8b4ceb80eeda5649fd192231ee6849847258958971d9ae42381ea0477e13551c4028b2ff47442f0f4dc7a012690cd9d017db824bb35cd43115f352b53b40cc7ba2dd80a2b593ac3aaca8331b00dc3610a9bbfbfcadcd305379400e30def6fd40025399a6ac1292daa557403929f857ce3021a1ec2c9bc89b76c6e5277ec01edd2f637abfe35990685ae18e027d05543d47b1622b85f460c3d9ca3035f95eb1f37706ae25bd383c90a83e1e3d82faabc2b84e9dd47a0b9f3c2635cfec4d3a4a15d5f26d736ff8b06f57c1e4027a272eb0bef2388d30a17cdd6de681f0e9aafc077d44ea67fc21631f8296290a20f43070a7739f5f283ae39030222e09395edc7aa8ed87b6714a538d4dc88920bc14c2954208c50e7c6d47d5f93cbee0fee43eaa870008f61107b56423c16d11b6bfa05d8fddb6074ceae031bc984669fbce304a8245faaaf6192dd00298c203510ce1535c27897292d3763b964374f0d57506b413b4961540ac251c4d0df32e2f3235bae6b7fe5554a741bfadc34c85a846cb69511797de7ee59c95e491850000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000129a8467798d211200fafeb446bccf27dbdb090536d89c46c636088b5ed46e9782b4cda99ffcbb50a9d8058938bf3e8becb1db6593e296cf21a1be88697ccd24c27334daed98a159e3a0a64dc774463139038474d50bc4c5fdc38cea02543121e33dc7ec80868b2460ef065bbbe2eeb01be8736231ea5744ed07a68e9f0e1b6c438d06e65efce6cc6e885e95e1435ea4eb14b75687f57945133f08de44b099a2c3898e2e075df461e1091eebf1614216af95a6cc261cf7bbdc2f4ceec9d20e0080480f909f4d2b703d65a932b1ef564232a7f0c780117a936dae2dfe7f3512ff108c7a2a4fe39b8369753a244014b123f56bbbf61cf5e318035b603786cb676a828631ffa72189e2a6ab999681f05b9c7001752edebefd6e738dadf5345c1cf152d2c5a50e21b1da9671b084f89d3f44e4ce9f2efc6f3f679aad0bb07090d230216722d7986a899623cb9e6d67568a2819ee1a0831eab0448b72d55de0f7116ae3f8eaa90168f7958e6de3ecfe90a4e7b191b5bbca434302d393830de442b3f8c2df7263669deac4cad2e415393128dae4d2f54b89663f3a3ba7085a94ab02e8b21b3905637664370d4c7d6eea6a0b81dd2e890dbd4437c8a73c222245d7f38db25f075b0a9d629da622a04b201b85e7d13e7e7b0e9662bc36fa4af12c8057704374088dcf84a786ca55ddd2110a0e508efea7f35601fe5efae1aec768e97ed483ac1a91617f9a68b88a66f09cb368a78a5e17e949f44066eeb6620eb2342ab4626d9e9a0ce9fcda633cbfc0d4379362225ac371563fe372f2133d1168879c5d70070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae02347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f3dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc620b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de6371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a8708e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae02347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f3dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc620b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de6371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a8708e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001337c866282daa61ed5bc146cb87460a1095e7e5256c70505d32bea0344e50a5903a21794126a3368d4d03d3bc01eb270beb46fd17eb70e5a1a785af1b9b924e500561fe93582709370c4c2e53935a3e73062d0b900e4ec30d148d0815ca6c991247dad90bc9eb006a1d7519ba9412e47168d01c62f90a9c5872f617e6208a0af04daef5b9e4ce5326abad0b1c14ca91642cef5643d23f7b2a300a844a9ea581502c2b6bee0a4da1f242790eb3c70a597625a1ba85c6906df747fac8f44ef577c2c4f3844c63f2befb1874043e24560fed279166505a0eb482d279ab5e7c4b55d2c798b91a8fba19c4c33fe0122817c88430c766587e3bfef9bd4188adac71d4c10af8a9dc687a1f46442416e13853bb47a4a088adc0a2cd4c5ce224844ca31f53c7415c5a40827ce02ebc98c1693c910f2e02d2ff24ca032d8a8f1f37f574af501a2ab2e97cf9dbe7196565264434aa9f6584f21b6ec5c0426a1e4b8e4871ead0e080b5e097551ff105fc1efd56ffb220778fd76aa6e1b0e6e639227c3a848b800000000000000000000000000000000000000000000000000000000000000012d630b34b554215e425c4a4b695d3481ca06f5c34edf956de58d92d70dcff2672d630b34b554215e425c4a4b695d3481ca06f5c34edf956de58d92d70dcff267000000000000000000000000000000000000000000000000000000000000000005583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee83aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a06130191191ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a882546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d579059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a63a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b1c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e23ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c305583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee83aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a06130191191ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a882546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d579059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a63a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b1c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e23ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c3299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f1002214accce313f5db11d06b277e45099796f2a6b9e284bbd31bd5b1ef642a2dc7642c762708227d8d9d5db25342038160352c32ee7a89896b63b01e4d1acff394991ffaa18c3bc1139049500403dfb0a68045256159afd6c550275472c9aa6b8c621319406bfd32611570a209b85b38e49dd7727b21099400a3c3bf232a29135eb22368a8d9f0df500d29c787f59bee3d31a7284c876cd8b378363c8b9485c4beaf0168feb3ec5487731f5a78c05dbf2354012ffa5efe36b383af6c5d5787f595aa0b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c3feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d29cb941a2f109d6af605b466d71c4c622649f3c64cc21faf9dab0468e4ca2300082559f2d36f6e8b95cede951b4246eff9bad95367b060e060c585f8f4936c1901bdab451ade8278151aa000b6fbc7d54b1e479e66bad359e401066eba70867209a39f8854fb6f435560a9d83f0a321687ecf5e3a45fa3de41751ac1b91b6b4701d2f226b015fbbcb551f2837d048fa7d82069cfa53362d415443ddff702eff63e2d0dd94fea04434aae0d7c82fb70584a262f2c6419964783e8f30d08fd100c0dba471319cd6c8df99741293f7f59cdcc086e13965a56ac88e9c7b6f617e0513c7b0f2af395ef9c3e7c5b2d86c2e0446c353379649fcb3de211a6d48dff70923d4c3743bd7fef78b8474d1f56403d39ef10f74a953d58889dd7ba652d9aa2263823171b6cceea4c6b397fbd2fac3cb257a690c13a3179c5ea8e50d996db174f138cfe690622fccbf1a5144046b8057ef6343f2e51fb274c481c8a4ebd5f00a2398409e28ccdc2d7e9ada0a51a4e665440c1e30a0ac2d7803f1d083d08d9252100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001121925e11377999ac089e5509b9fae1e0da5d9cbf3582eefdd0f4eb3d8f67a16344b9a77d753303645bb081baa70f16dcfb273f4e18f6826746332914c66b56d2c4d6bb06a7d10b4ce83575682a6ac2782ad5ac3e03987cae9d64f1abe611b1535f0d90b8d1acaa4272131ebde9a5621cfa97ae909e030ec1ae2aff1a1aceaa40fbe3be46fd1a59a9040b6e255d7e4766edc7691ea152e2964c0be5c40a84b733f2340c5e8c8ef7e86fad6e53d5b551df977487a51126ff4b0265c3a845f37531271b64059999e7fbc140afdf170215165a2d9494d68dbe562e00974b08477e93c883f89615e3b2d7eee88fa98ecfd4e2e4cd91881599f9e452f49ac865522d323b5c0efd4ff0bd61a2094db3a90bb538ebe6724ae0144769e02100ed1653c5c010bb189b7abb2c1e08df8e8cf4d9a478a59546d4f4b35416cb6ffdf8af1142f2fd85e6375eb3f423bf8eea1b8f93476ee07ef50403135fd216f31beacd45f850c71b917bc21d56080243e775ad3fabc8e29b9a7f3e6b67478a268e0456c14e320c1859c9196baca20afe06fece3c925ce47538b9876455354ffd602ace41df82ee930f00fae34f3614637d24ccf7ca651d09208d2312adad932d1cafb4b496e3726c4b3a89dc19e07ef9761b96e90ccb7c49c1480c0431cb5e2f5a2206eba8315340ded9229034636021ff9172b181ba12f7d80e057ed96a05a53c10a90a16137acf332e665f2900acc5ae66d661e0538aa6807ccf32511dad7585d7828fefd1043bfeaf8891514de36def343ae15ac530d00748f805d418a7d8c2e8a9873cd34016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe00bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f861250210407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c3bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a51423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d33524b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200634016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe00bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f861250210407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c3bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a51423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d33524b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200622e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d570ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b1c8da40b524441fd2cc45ebff9a1c1e345dfa49e131e3120c317c2ab7c76eff6285e227dcac39affcaa9a3843ff26167e7011a6f7ac8f89a3b79077718e6e22b32e0e89af62d4b5e0a44b1fdae3b06376c9123be386de90ef339f6846a620c8509ae342a78dbce2f652ce83bc8df13cae92ffd4acd96c384d84b5b62829aa4c6374a86518aad0cff9744827bab36a25272529f9a68b28b9c99ecea69bdbe3fe42179eb6829f66ce011798143af6163c3437fa534bd33624c60dcfeade441f79320e6a6375b0b5eaeeb6fc87a8cbfa390fbf15474932bbe08a8d6ecbb879cb51f274d3dc3a846fc8924f1055fbf4f5ad5848b4b6ec07c76e6079ee428f532d6322a2c97f9bb3fbeda5575233ccdd411259fc4b5e4b8b63c39d2f879a756b057f10d76be4296c17db6228e74b86fb1e591ab624512c8b43fba93293f0a00ee873b00907813eae16d2b0149dd3dec4b0fe6f3df680e84f010b22ae146688cd1e2b507a36be71870ee0d0f16f09c5fc3ee7f6a569ed8c56b2b20ec67598eeffda89c19433a50429a70a1dc58d7de2cfbb511919ab59bcdc092e7bc6f932c979f0c8426bcc5afbd658f5e23a72821d3044aee90abe3603b8c6633dcbd9dc06860f37e15728bc657fc4890e0d015738ecca3e0c89c6236a5a01c3b1e2d932131f3968439c71b52906f2b9304b68400effb66067e06ad7c0828691772cf10cadd75c87a2cd71a0282f17bde8a35b159e9b29c6b9a05a96aea3adf56bf4f789a490ab46e2ae18ce8133c8fcdf73fb524cb31fef60d556f4290bef56a9efe61bb6afe257b159ea8a7ccff1b6a09354fd0534b67bf51f4be73a4a8dd2768be13ead72846bc228a3f609ab9c8c0061db17bfbb14afd12986d67a518942178403fcc1caddbfb00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001149786e1e7c06613b72b831c67bb7da293652e14a5e236d18ae139dbbb2e1e872e044804b2f80df8a245bce9b5f02961613ff17314c22e662675711d4e714e3227c03129f9a63a0469f27fe005a2657047d2d0d5bde425940337cdba77ccc0ad0943d1fd668c54b0eae9343011b03e8abe644fb8c982b1edd3b2a6b0faa98df12d42c367ec5a2c2f07c91ce9e51028c061b2cda8f213bbaf39abb8b10bbc69bf2fbcf1e9c82180d41c32492a1f08b2528a56f35ea5c7f88ab97b79db893e94212707316552fe9929842bc1ace8d071207e95ca9c3b90cc98e50d37e77a6080822109b387a5f00ec31be95c5a4353217733004dcdd154370487776f336d38e72107c48fe666fb89eee35d7ea1c501a65e72448362d17d9ded6a46fef43731c08b090161690f2e4d87630a41a730c1ed127d381ea7d6f792e2db5cbd874f08b26a26eb388c68571a1946df546d60fcf3f90fb7253c2d1fcc0634173b8eab292c3e195f645141fe9813353b7f51c37e45dec870ca5cc35134df4bdb72753bc458910085eb3323593eba941f64e02d1e3c709b72a81b57dfbacf51815f503830a9df0f24cb597debb102edd6b3620c95095b625ea47d097abc43438417906ffebd861480a5ea8693d7bd5f596a1e1a54e51d4033a77872898b83c019079b206b4e2508ee263f999a9ab8e9de2d4d1e7ad00f214b7d6495cd3a0afe55d66a09bcabd2027196e6cf4eb3dc4f75a0e3f5e406ab8bee544e5f972820cbe61f98d5748f84251c129a6f73bfd9b21b499f1cb5c1bc2654bfbc302352589abe40eef9f3bc7e09a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22309a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a223305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe2622cbee39cde689d2d8a050b771f7a2c3b1ba52e62b09b30c8e93c520f6ada1196338b4638e14cfd60159eba3a4b37353ad4a5d4d9e176d1f2d58b8452241f00440361a1ec224d7d8d5ea28a83a7d57f8b8b730acf476f957ec35112a3fa61608e7ffa7a6007171ca846ab5c221a555d35b9aacf9f95610076d0f3575dc681c197c72c4ccb103b028475e963f041edf0457e1b288d586454f04237818425ece26bbfed82d1828baee8720e0a208b1b44b74061ef724dd8e083522442f783e5d022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c12334659429b892780000594c3d097f40db55bed1a591791fa10890d107b17803b6eeac5e4cb11c87a80550d4b74dfa3eb8d23386b65868e6be730962988072429830108cb5a02fb92b96cc16107c2713d5b965caf18aaee85332c9caa0d94d41d6a5055453de0b1f5ee004b172161a4672b9d1ed3c3d60b5965531316d1491424c267bffeb4a92a1f9ff71e8aab92bd8fcca320299f15f903a95dc267de98681b3d9840014b56d5e06008e175546d429279f5dbdfade3229583d32a9821679a1d04c802c73bb5682da8ae046269d75e6d067a1ee1225b7c287c4b176cf2a6de32dc9e0425440fd13b49e72087bbfd0944c40d96f6411202ccae4631e46097ad10107710165bc0e1593682c1358f9dd773b9f523e8d4a9a061632ed053cc2be02a058eedbea0901751c3cb699500e5c6a9232dbca0bbf3319c64a76754fd1b940d4599ce45d427e2d631ad7a1bd61fe7e487b02b5406a1dc6f2d36652d5e606a1fe51a21e994ffe1e00a4dd29d4ffedb384f01abea3acf52bf2ea331a1a8f0dd000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012baadf51c0967e82e22afe99af216599c49553ad3266faf11e98c33dbf9e89da128dfe18ca83ba51b71d807d3f39d29517c08d3d418123651e9b22f3394d42630dc725a7df7ce225916abdab44aabd4af843573d6ecc65c70c2f958111c023d91d044a1ae5ffd633fc55a978e1788b5ca21cbac0c02fc85d55b9a8a99f8b45492d14c3db2d1d856d8a3369a812bf4af1aa5e00b0c9e81f869e5c7ccb2a0d9c4b389a767e9f39ce0e63246e2b4bfebede42cd2103003c05ac485c77c0e47443aa3242c742ea77b559a654a1038fca6ab5e901bcb7f2a2962c6c8f1f48565445a3158f38c7926451d4feb0d6c8965e39b074e54a82fe5e6e4bedfa441e64850ea80e4b8f78e621c090866c82dcb40a0fbd9935f5d90968e9e6fe1d949ccf2fae732de77298419249ac825157b9714cd5a5719adc16a64ac75d69f8ea6726063f0b247d7fab66df23bb452507802b7a484d0c27e331576117a392e8977a39741d9d0f35170bf7b1bcf30dbb02f2ae357e426937428db2652b1ba5cbb935811ce03c3590d15e659dd2d2ce5079e2847ad2367006a11c7e5c5da5dcf61989554e61e81a19e52e3ba71ceab3a59e5fb5387395b0114477ec4b1288513c8e4452e1057e2a1047c055fb549955e70886683925272d662119c22c1135efff8899b67124e9334803f84404b90ab676dfa456b284ed80587877bf072248690682481ade24b104410a6aa4538987ca1074bb7cd7c8fc4b693aad33f0284765747bca59c57a370e823a99584cfc1d14cd8b09d1e015502fb910fb5e9bd8f0bb04d689f19e973700000000000000a012772f6dd7ece01f30e76baf920f58f42b3717cbf02ea0753b33051545468212320bc77b720d7e8639c0835f8d8ca8eec8883f1693a12172be030fa39e66a49723d60176fabea54ab18918989b4685b511d53a3a2fdd5599f885d06f4ada356508b866359d3ad8ebaf6c6e63ce1f6a77fcab1d6d69b74acd9ca0b4e4fb45dce61df20fabf013cdd730b43c15d2ae583c4665c0ae9b570f16bafd0dbc33e71e992061f643aad614e58f11fd2f529fb5b57470654ff0ff7bed1d534fa2f51441b81d154530241389d5d4a653c99c28a8a16145ad40e8a31b4e5d1d3a2d3b11a9930f79227c73e5f4608c4f3332cd3d478bad3aaa66b0f1851938094b270b0e68b83be347c212e845bd01fc87c12ec7d4800cfd5aaf8f7154cfcc43ccaf0fc9f35c035fa9de6d6dc6e37a1325e2b7fc8c346a68e7a24908994341bea7091e416a723d9112d5f67ccbad0f174614a39fe96cd327fe94e78f0a384b7c6c3eff3df0412efd54d6a17cb28951de40e7c5c606c05d9ef20ebb528f4ae2d74a0246e2220b3f01cb024de0bf7a1a9229499c7a9cf451181a5fa7443bad9280bf0715b60d93278326830887b0c03b8bcb7cc04cffb98816f399390125fe7631bbc8689bcd0708d39803803d9e183955519334ed89b8f4181d8c0efd8c68449beeffcaa1e3e123bacfa917bbe01e27a03569347866741a683a1b8a9713ff508a96547b7e2e6a0727d6017d1220b5f2d1c62bb731530795e5a1945766616e4c426ab2239fe4fa2a41be7d7b25e7a5a8166279c2dcee61f56407decff4d1cf64ad75ac662f29e922e9e7343d93283fa55ab04ac3a592088d2f7785e08f6e6cb565375c62496c6709a480785a6655f6bb9ad6b1a5c05e248150e021b90531fadfc14df7e3d6a5e43de44dbf0417c02a8648521b63f19ad510a0f3c5769339508e07202475cfe4cf3b72fdad53cb385feb51e1ad65e9fa263670e6e8994b7f5beb3d59929770dead2efd54d6a17cb28951de40e7c5c606c05d9ef20ebb528f4ae2d74a0246e2220b3d9112d5f67ccbad0f174614a39fe96cd327fe94e78f0a384b7c6c3eff3df04125bea0b71a18cd4182296828b506c0da7854d555931abb4ef136d0982b270a020a0e4414c624b66c39511af76c064e5ae705836417fc2ff9f66dd19f4dc6e26c2deece6ae8ff5eb1c91e24f5962ca97b84bada21e9b48b01d0c4b29a0bfd7c673e9f9941aefa1f8497d76206d33946b1ac0c1681b92d0e815d8f03a73a2295e5035fa9de6d6dc6e37a1325e2b7fc8c346a68e7a24908994341bea7091e416a723be347c212e845bd01fc87c12ec7d4800cfd5aaf8f7154cfcc43ccaf0fc9f35c3d9112d5f67ccbad0f174614a39fe96cd327fe94e78f0a384b7c6c3eff3df0412efd54d6a17cb28951de40e7c5c606c05d9ef20ebb528f4ae2d74a0246e2220b126aa7bb284670eb1d6557ee883e401a113fd2bc30e369f77e538de6e5d78b763faaa3cc598a24057a2694b7cb9a18e7d4093c4ad72fdb1c0040e4b8d722bb3a23bacfa917bbe01e27a03569347866741a683a1b8a9713ff508a96547b7e2e6a08d39803803d9e183955519334ed89b8f4181d8c0efd8c68449beeffcaa1e3e11df20fabf013cdd730b43c15d2ae583c4665c0ae9b570f16bafd0dbc33e71e992061f643aad614e58f11fd2f529fb5b57470654ff0ff7bed1d534fa2f51441b81d154530241389d5d4a653c99c28a8a16145ad40e8a31b4e5d1d3a2d3b11a9930f79227c73e5f4608c4f3332cd3d478bad3aaa66b0f1851938094b270b0e68b824c4424cbcaa5a47c0133719877bcb22b9217972a4af8fd9f60e154ce00739c71215a8cf77f1408332f207e9e5ab71951245565ffcdf4e041cb58f586192381e0f33cf52aa04366aeec17b9d7c0ddfe1a293437ab40a14da75b9b6ca5c8da1141d5a9859edf547cb72340b5eed58104b6bed142ce58a8b8d1f6cce89e992713732722504c9e3a4d91b27e741d993e07d1a18a4221708b33e9749d1f573c43c472d4555d646b7a5bdd6172f0a13fd8a08e556b3b09cc634f148ac65e72024619f11da1be79624fd8e4bd3fe86ad636e703dcb44eede8e386fcaf598f9b393f3751ab44bc501d480a815218875bc0281bcd0b512b8bb0667f7ca30ec5a928c1ed62a41be7d7b25e7a5a8166279c2dcee61f56407decff4d1cf64ad75ac662f29e90727d6017d1220b5f2d1c62bb731530795e5a1945766616e4c426ab2239fe4fa22e9e7343d93283fa55ab04ac3a592088d2f7785e08f6e6cb565375c62496c6709a480785a6655f6bb9ad6b1a5c05e248150e021b90531fadfc14df7e3d6a5e4278326830887b0c03b8bcb7cc04cffb98816f399390125fe7631bbc8689bcd073f01cb024de0bf7a1a9229499c7a9cf451181a5fa7443bad9280bf0715b60d9308d39803803d9e183955519334ed89b8f4181d8c0efd8c68449beeffcaa1e3e123bacfa917bbe01e27a03569347866741a683a1b8a9713ff508a96547b7e2e6a1267c5c9db7c7f88315a97cb85255b0319180cd448640844383adf0bfc88d40e2f36f3e9eeb66972661afd25350c19b7445069701e1ae8d43abc13788d803a4519720c3253b47fdf79daa811129c508313859ae683cf17cd03a0b2a191f3f9c9131c5b7a4444fe56e71adeeb56c99fa9fafabcc115c5889a9185d2b2b42c18823b9052a8dcfd5de80f9358f5e0fe51010c72e5d1e617ac0c36c9d44e9738022c005191c1726095a02995d783ab84e17c3ebdc185e33ebd4a051bad7b118c7ba80dbf11065ec9a95c91c7f1e60d32a975b01f54f6840b9601004ffe5cc5b4da881ecf56a6392fd4d9cf2d95165c3346b75e6102b115890a6694d686f7806b37c33b72fdad53cb385feb51e1ad65e9fa263670e6e8994b7f5beb3d59929770dead3de44dbf0417c02a8648521b63f19ad510a0f3c5769339508e07202475cfe4cf2efd54d6a17cb28951de40e7c5c606c05d9ef20ebb528f4ae2d74a0246e2220b3d9112d5f67ccbad0f174614a39fe96cd327fe94e78f0a384b7c6c3eff3df0412d4555d646b7a5bdd6172f0a13fd8a08e556b3b09cc634f148ac65e72024619f32722504c9e3a4d91b27e741d993e07d1a18a4221708b33e9749d1f573c43c4711da1be79624fd8e4bd3fe86ad636e703dcb44eede8e386fcaf598f9b393f3751ab44bc501d480a815218875bc0281bcd0b512b8bb0667f7ca30ec5a928c1ed6086481607282ef3093a140410cbae07b482012c447275106f4c8f209cb21d4980b54bed854e2732e05f55286b7e8e46a2e2a239168c8db7fcec88d3c77ed920a1d6e69cdb8a0c82462b6f8cc95c9b5f3e27758f51da4d38c5392c0ee596244e70f1ffddedf58b611fe3e8e2fd39c3a392c08feb27befccdb4193c465ecbdcd642f36f3e9eeb66972661afd25350c19b7445069701e1ae8d43abc13788d803a451267c5c9db7c7f88315a97cb85255b0319180cd448640844383adf0bfc88d40e19720c3253b47fdf79daa811129c508313859ae683cf17cd03a0b2a191f3f9c9131c5b7a4444fe56e71adeeb56c99fa9fafabcc115c5889a9185d2b2b42c18820b0eefdee926ca3fa049043cb26b39d6bc9ddbe6433d3c630fe169efba425805165d00e0c311f8339ba519e6b5bbfd8af61df52dcb9131cec794353091da2cc92a48f7d31668b8726626a044fb956bd5dda5124952bb7a477f9fed6ed051d44102456fd98190c5c3facee6b76dd0845730db455e46d92620158697e575ce3e0a3de44dbf0417c02a8648521b63f19ad510a0f3c5769339508e07202475cfe4cf3b72fdad53cb385feb51e1ad65e9fa263670e6e8994b7f5beb3d59929770dead2efd54d6a17cb28951de40e7c5c606c05d9ef20ebb528f4ae2d74a0246e2220b3d9112d5f67ccbad0f174614a39fe96cd327fe94e78f0a384b7c6c3eff3df0411215a8cf77f1408332f207e9e5ab71951245565ffcdf4e041cb58f586192381e24c4424cbcaa5a47c0133719877bcb22b9217972a4af8fd9f60e154ce00739c70f33cf52aa04366aeec17b9d7c0ddfe1a293437ab40a14da75b9b6ca5c8da1141d5a9859edf547cb72340b5eed58104b6bed142ce58a8b8d1f6cce89e99271372bd1813cd6b0e465be0bf4dde373da87a3ed0a0b57110a030bdac295326922fd0845c4e6b78dc21fc4f5fd7fad90194504852316042ae1b8e908e5342535d7a308b866359d3ad8ebaf6c6e63ce1f6a77fcab1d6d69b74acd9ca0b4e4fb45dce623d60176fabea54ab18918989b4685b511d53a3a2fdd5599f885d06f4ada35650b6b3e5b59d54486545eb27a2508b6779bf2acf1a8c3d29c651ae180d62fa1172b9044fdb430d7aa01d59a01d165ca7da2d660cdcfc8e9ef1607e87cdb1371df131c5b7a4444fe56e71adeeb56c99fa9fafabcc115c5889a9185d2b2b42c188219720c3253b47fdf79daa811129c508313859ae683cf17cd03a0b2a191f3f9c9342ebefcf25f51d2901e23816caf0799121cec819631415c2d91f700dd0e009106194e90ec8243eb40162b321ecee51941aae39a9fa7bd893130ecadcaf0b11c01400a2ab8fcf15c3d0c40e14a148af6a563dd6a82a09f7a0a6d111cf7dc63c32b4e5d81defc8cda23e9461b1f516536691c7a3d16f400ed8ab974374e43ae8837b8dba8bd043447b4fe8d9006c7dc7dc57f30701fd028780923260a281e7edd1f7570a46efc0e6ffcbd35b941b0e1d023f6827fb06d16fa0d80f757c7111d9e02456fd98190c5c3facee6b76dd0845730db455e46d92620158697e575ce3e0a2a48f7d31668b8726626a044fb956bd5dda5124952bb7a477f9fed6ed051d441035fa9de6d6dc6e37a1325e2b7fc8c346a68e7a24908994341bea7091e416a723be347c212e845bd01fc87c12ec7d4800cfd5aaf8f7154cfcc43ccaf0fc9f35c3d9112d5f67ccbad0f174614a39fe96cd327fe94e78f0a384b7c6c3eff3df0412efd54d6a17cb28951de40e7c5c606c05d9ef20ebb528f4ae2d74a0246e2220b10ff230601d5e5358d6edd664dfbcc169bef8967965bd30988f257dc466c55e8294714173b793d38a074cac13d561ba7456bd49dbc594f968cd70746cbe46b100f79227c73e5f4608c4f3332cd3d478bad3aaa66b0f1851938094b270b0e68b81d154530241389d5d4a653c99c28a8a16145ad40e8a31b4e5d1d3a2d3b11a99330b3e4f605243c401f495af08add6d474c9979a548a1831d1c7eb20b839930c4110c6cfa9e792e1fdb5b4778b89b4bb084313a8bf4db4ca8bed765d176197ea01d5a9859edf547cb72340b5eed58104b6bed142ce58a8b8d1f6cce89e99271370f33cf52aa04366aeec17b9d7c0ddfe1a293437ab40a14da75b9b6ca5c8da114342ebefcf25f51d2901e23816caf0799121cec819631415c2d91f700dd0e009106194e90ec8243eb40162b321ecee51941aae39a9fa7bd893130ecadcaf0b11c01400a2ab8fcf15c3d0c40e14a148af6a563dd6a82a09f7a0a6d111cf7dc63c32b4e5d81defc8cda23e9461b1f516536691c7a3d16f400ed8ab974374e43ae881267c5c9db7c7f88315a97cb85255b0319180cd448640844383adf0bfc88d40e2f36f3e9eeb66972661afd25350c19b7445069701e1ae8d43abc13788d803a4519720c3253b47fdf79daa811129c508313859ae683cf17cd03a0b2a191f3f9c9131c5b7a4444fe56e71adeeb56c99fa9fafabcc115c5889a9185d2b2b42c18822061f643aad614e58f11fd2f529fb5b57470654ff0ff7bed1d534fa2f51441b81df20fabf013cdd730b43c15d2ae583c4665c0ae9b570f16bafd0dbc33e71e991d154530241389d5d4a653c99c28a8a16145ad40e8a31b4e5d1d3a2d3b11a9930f79227c73e5f4608c4f3332cd3d478bad3aaa66b0f1851938094b270b0e68b81763895f48b33a4b9507d294aa52e942475ec80fd94f3d9407a59cdb2bc8329d1b7aa41573bd9b38c5c2fea2047e990dd700012f8f14f4e79d6658d093676e8b03f73857890b449128160d6725e35caee7e240ae008dbda36997bcd67223adfd28972f550eee39a538df79954382937e269e16f99906e2c42b8ec87dd3fc644e2061f643aad614e58f11fd2f529fb5b57470654ff0ff7bed1d534fa2f51441b81df20fabf013cdd730b43c15d2ae583c4665c0ae9b570f16bafd0dbc33e71e991d154530241389d5d4a653c99c28a8a16145ad40e8a31b4e5d1d3a2d3b11a9930f79227c73e5f4608c4f3332cd3d478bad3aaa66b0f1851938094b270b0e68b806194e90ec8243eb40162b321ecee51941aae39a9fa7bd893130ecadcaf0b11c342ebefcf25f51d2901e23816caf0799121cec819631415c2d91f700dd0e009101400a2ab8fcf15c3d0c40e14a148af6a563dd6a82a09f7a0a6d111cf7dc63c32b4e5d81defc8cda23e9461b1f516536691c7a3d16f400ed8ab974374e43ae881b7aa41573bd9b38c5c2fea2047e990dd700012f8f14f4e79d6658d093676e8b1763895f48b33a4b9507d294aa52e942475ec80fd94f3d9407a59cdb2bc8329d03f73857890b449128160d6725e35caee7e240ae008dbda36997bcd67223adfd28972f550eee39a538df79954382937e269e16f99906e2c42b8ec87dd3fc644e278326830887b0c03b8bcb7cc04cffb98816f399390125fe7631bbc8689bcd073f01cb024de0bf7a1a9229499c7a9cf451181a5fa7443bad9280bf0715b60d9308d39803803d9e183955519334ed89b8f4181d8c0efd8c68449beeffcaa1e3e123bacfa917bbe01e27a03569347866741a683a1b8a9713ff508a96547b7e2e6a2b9044fdb430d7aa01d59a01d165ca7da2d660cdcfc8e9ef1607e87cdb1371df0b6b3e5b59d54486545eb27a2508b6779bf2acf1a8c3d29c651ae180d62fa117131c5b7a4444fe56e71adeeb56c99fa9fafabcc115c5889a9185d2b2b42c188219720c3253b47fdf79daa811129c508313859ae683cf17cd03a0b2a191f3f9c93de44dbf0417c02a8648521b63f19ad510a0f3c5769339508e07202475cfe4cf3b72fdad53cb385feb51e1ad65e9fa263670e6e8994b7f5beb3d59929770dead2efd54d6a17cb28951de40e7c5c606c05d9ef20ebb528f4ae2d74a0246e2220b3d9112d5f67ccbad0f174614a39fe96cd327fe94e78f0a384b7c6c3eff3df04100000000000000c8000000000000002d0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000000000000000000002053782b5983c3a3f41b87af8901b99235481c920bbe817dc8bb231466583d72b0000000000000000100000000000000010000000000000020953ad815a2963d664f0f467b59bd24c8e0fa06059f422523c2c9cc30e63622ef0000000000000001000000000000000000000000000000200ae4da6dd0ba3dba590cdc5b458241d43b05d834be20f06226ed69dfe3f4feff000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000002d0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000000000000000000203a54c6187a5d2d1d4fdfd7e6d830e00471dc777da45c92c200ff4be715489ec40000000000000001000000000000000100000000000000207bfd1e8b05c7d4db1ddb4abbc4ee4e2047ab1cea71eb4125c60d95dface639b80000000000000001000000000000000000000000000000202d5491c2b0a236a306dd587e3689fdac906752af96e9c92a11015dee02b355260000000000000001000000000000000000000000000000204c549c0a06011a5b940afdd9c949f7c54668b0449c63f74f64a3a00d1cc2a37800000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002d00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020763bf8fd5dbf7e26e508b1c752989720035769ec544fbfa3b5f634db87b0985c0000000000000001000000000000000100000000000000206ed7f1a6c47a44f2b7011b57308b53c7e5c8addfd07d945a9042a02777a833ae000000000000000100000000000000000000000000000020762ae3247aa8d6ed9a4528261d063545224ee7eb9564b86d08fa8e6b77499d24000000000000000100000000000000000000000000000020d880ce6b358a2b77330b5a0f9481e98d6528b9d0ad6b480d03501c04a93a647f00000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002d00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c8000000000000000600000000000000010000000000000000000000000000002020eab707c88c395501020600a1d50b1dc468718756fe508728371c0ffc40a7a2000000000000000100000000000000010000000000000020083bb08400cc00f8741cc5a61d5cd377218c13bf2ad0c114737eb149440507640000000000000001000000000000000000000000000000209f8adadaa16ce5cac8b348c7f9490ed007a31dec8fabfc34360ee0a7a7567dad0000000000000001000000000000000000000000000000205fd7cad6c08ee7d72dab067a907a496543f8562d1aff5010789f4fe3432c874200000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e1000000000000002d0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000000000000000000204ae7f953cf399a07a8ce89e8483573676dadd5736312e4cbbda64a605f0781d6000000000000000100000000000000010000000000000020bc50f558bf1c2801a35e0f3833a1192fa429fc028ec80669603d2c5da81d878f00000000000000010000000000000000000000000000002023ba7ff2b84d2058064e3dd64ff66a518516cb562d103469ed0615bb4c67d3f7000000000000000100000000000000000000000000000020896402e4d3f17887d11d2154920c6bff134c98834a80f987cc702496ef09c196000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000130000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020a51adb0dd5ff6139015f567454f916303ab3f39c830603b281712da0359980d000000000000000010000000000000000000000000000002077c77d7b993f04ae31fa6b6da7dff3c353004c11a049302a478e5dac04d508cf00000000000000010000000000000001000000000000002038c257c4acc7ae148c5c9b4409c82130df8554a30c1e722962697197980c56fb000000000000000100000000000000010000000000000020f158609c6b12d3609bdf1c7797edb538f985fe8ac4171f066b1d7b9c43c7bc3b0000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000130000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020e4c375b6de0dcd2144dc015638119fac2dff51212295bd568d0f822953dbe353000000000000000100000000000000000000000000000020410a9806148029c00be1c6575ce39cab980947f62d7b8c905215b520e160aa17000000000000000100000000000000010000000000000020d42e2ebd255e4349a7739a43dd3c719944636248abdb0bced6a610501e96e1b50000000000000001000000000000000100000000000000204dffb3cd723081a5601c700b71267e003c6301f69868c0143c1c7fb7f95e7282000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001300000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020d5fd1e9ac010c629f9995228fd1ce86410206a754ce5277b31e14511bc4678d00000000000000001000000000000000000000000000000200d8eb352cc26ae30ac8e735bd07c4afc629f8b935a6281b4a5d795206646f134000000000000000100000000000000010000000000000020fe4fd380a7b985c22fbf7e428d0522af491d32b3707fdee9600cc7816056f1200000000000000001000000000000000100000000000000205d9455d420eacea118c8dd606eeb03972280069211e33523e74b32b8a0a96ea70000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001300000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000000000000000000208f172a29c3f7a4928e95a442bc56edefb65be8dfadcec91da6c77898dd047f300000000000000001000000000000000000000000000000208ca5f4e39ff8097b3311dc5c6b8ee0f25e73013b54075212e77ec6bbe41ea8e5000000000000000100000000000000010000000000000020acbb53eff19327fdfe068637b56e56cf2ed3ea11c5ac335cac2a4c9e1b4ba555000000000000000100000000000000010000000000000020770adc9f5a476741bb8349e40e9edfd96156aacd1c6d9e3a586653b654b6aa5b000000000000000100000000000000000000000000000020f66cbef6ba027ee51a683e2c6bfc0ba5a9c25509bcbd67fc8c6ed57fed75d4ad000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000130000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020043e05299a97cdfdad83e9c096b1f11c65ec4a2b99d554ba0940abdbd2e5842f0000000000000001000000000000000000000000000000201cc2cb225f6ceb4dc0af62c3e4cdbff8b47664cb0876a05b70204156dc6ba240000000000000000100000000000000010000000000000020113e52f83563f3c9a8ca73087daed63db6e020f9b1908dae270f2d864860470b0000000000000001000000000000000100000000000000207558d367d7cb8046d18c333db9b72e09bb6459368f028b50b23b205b8ad03c430000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000140000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000201db39b2b58f01b4266a2f3a089f4de0cf8c9d9cc1a52eaba7802162bba95ead2000000000000000100000000000000010000000000000020934ab4c6e53dcf48d451f6ed7e4af86b758dd8dba6533f4175725e2e5845afc500000000000000010000000000000000000000000000002026fce9aa21f1ef53b559859e81595b7ea9f4a7505a8a6c162b86994251034ce3000000000000000100000000000000010000000000000020f158609c6b12d3609bdf1c7797edb538f985fe8ac4171f066b1d7b9c43c7bc3b0000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000140000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020f02c12c9e1987155b3dfab880a6c3fd179a7c43b36e4b5ef01e1660bacefc47f0000000000000001000000000000000100000000000000202fdbde1dac25caf98829f59666c2f0534d2832bdb689d8ad96cbb9a3dbd4d45f0000000000000001000000000000000000000000000000205194f6462193600d656db86b96325bf516174c3105f29544d28f3b649cc7fa4c0000000000000001000000000000000100000000000000204dffb3cd723081a5601c700b71267e003c6301f69868c0143c1c7fb7f95e7282000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001400000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb626512000000000000000600000000000000010000000000000001000000000000002060c1a1b58116c922c95ebd362b2aca38239b074ba70838c441c7e00fed0a95e9000000000000000100000000000000010000000000000020114537cddbda837705b4879cd66f5f4d256930dfee3834780cb134d8960e1304000000000000000100000000000000000000000000000020b4e0bb7d9649c1fbb4614e3f293bccd257330f04e0c3c1c27c3a9a4dcdec30130000000000000001000000000000000100000000000000205d9455d420eacea118c8dd606eeb03972280069211e33523e74b32b8a0a96ea70000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001400000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000100000000000000203f124e95b7dec0ff8f7a86ae1aaff6955eea438f36cae6f84a09579c75e2134700000000000000010000000000000001000000000000002011099e538c8737a24d756c6724727c5da6d771131318d85b8986cd3bc79b592b000000000000000100000000000000000000000000000020c28743b9fb456f5dab01de38dce8d1e72a393e786e47b640f11ef5dac00847bb000000000000000100000000000000010000000000000020770adc9f5a476741bb8349e40e9edfd96156aacd1c6d9e3a586653b654b6aa5b000000000000000100000000000000000000000000000020f66cbef6ba027ee51a683e2c6bfc0ba5a9c25509bcbd67fc8c6ed57fed75d4ad000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000140000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020c8bfe267f4915fec41dd5cdc2991233c6867d80f482a2f5e54923aa7e593286d000000000000000100000000000000010000000000000020a8ed275fa0c7c748c26664fcd0da42650d5f6d40a8b66187b846df67bdc2a97f000000000000000100000000000000000000000000000020c9fa3b6551025a0b0a3ab22e52aa56603723150da92dcef931270f46982c5f720000000000000001000000000000000100000000000000207558d367d7cb8046d18c333db9b72e09bb6459368f028b50b23b205b8ad03c430000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000190000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020f878c3196a2404bcd842121562576c7d651583fe9d63c1aaa1b869d205e345230000000000000001000000000000000100000000000000204536f7493e46af7ae74c52f21d137b781ab41b8d1503fa4f2492f216257d0e4700000000000000010000000000000001000000000000002041b447898ab19c91b1dbde93ea50c40354c2647926dd2df1d267edeeb4fa5b900000000000000001000000000000000000000000000000207a1424d413417eb28a018fd1d76958181366ee57c4d59ae0034a29ddbb1d2b590000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000190000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020c4c0ee0f8712b96d147ac05da64c1b99a740846e9a50722ac61b17649b751bff0000000000000001000000000000000100000000000000202aede3564ebfa30e74b8e2011d40a14f2a016492169b85c1f9415a281dbc49f7000000000000000100000000000000010000000000000020376d244ad38898e5a2d4a5d1596faa89190bb6be0021523a316dc31147bdabe8000000000000000100000000000000000000000000000020938375cf40ac56222ab4d00edc1add4f0c4d45658ef352f9c39d534a9202dcf7000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001900000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020c7d221511f5b0778a109fa2e3c1c884ec175c20abd2d834b083b1c7c07e139ce0000000000000001000000000000000100000000000000200b06c28f51eebefba1b90a051ee1ef7a91769619ad2533abf955ef50586e382c0000000000000001000000000000000100000000000000202b1f2b796b4b368a82c2fd19089c52aa941915742b1944326d6efc9a8bedb715000000000000000100000000000000000000000000000020a084e70b3f9ebf137fa0b89422463d8a968230d1e0fbcf139db6e018b78315170000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001900000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c8000000000000000600000000000000010000000000000000000000000000002059065e50b3aaadc6ce1d277772ae8d3d94e018bc51e3ab809332afeafa4587c40000000000000001000000000000000100000000000000207f3073022c338edf973f6c62336af47d02e7ee8395bcd48e00dd7c21c2ed6eef00000000000000010000000000000001000000000000002013f4d1041297765ba5721ab41dc03763741f894140a3affa1cc437f3ed9269ad000000000000000100000000000000000000000000000020ce498e000ddc8371c645a265d4b98546295ae06beeb91fa03885ec7c34dce7f9000000000000000100000000000000000000000000000020f66cbef6ba027ee51a683e2c6bfc0ba5a9c25509bcbd67fc8c6ed57fed75d4ad000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000190000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020dfaa7a61177963231160e33a42fb89948d6fa2b6cda193578f1607317576bd7900000000000000010000000000000001000000000000002004230d91f96402c0e2b32b8591b01d0bf15a0337d50562837b09d42f470657ea000000000000000100000000000000010000000000000020b669e28a8c8f93a11d50fc751d11cbd5c19eef7f4f73ab6849b9e5fb805ced8b0000000000000001000000000000000000000000000000205ef7704fa3778b449f726e5d0a98cf0942526fc336765751838fd6cbb761fb270000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb81659000000000000003e0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000208910319c4704675fb2e689fe85e65059409a009e9dc7f46029baed30c3f6050100000000000000010000000000000000000000000000002069a16d2b56ba3538a063eb8027cc1a4e3053ce82d49b49dbcb4419a7943fcccd0000000000000001000000000000000000000000000000206d638b48c620681d9ca1f3ca0b9269a4c587a473d6a7f7a9b87cd38c6b341a88000000000000000100000000000000000000000000000020228ad46578c60a8ae293c5203eb65e05045bb3651cc7f9dca5fdd52a9c021f9f000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000003e0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020191e3e906b69de629398f388037428d655068fb4f7201589352159a5d83ed8a5000000000000000100000000000000000000000000000020eef65a3f592189d4459cd38a7fdc20e3c6e4585e0d3713da14da36b4b547a0a200000000000000010000000000000000000000000000002066f2ddc800c59423dc3e6cb06ec895471d3ffafc6e3140cc34d397e66f29e633000000000000000100000000000000000000000000000020d3fe0ac3f0592a168395476738f2d379d0581dd02807271399e479432d094ace000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003e00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000010000000000000020717eb92b238367aa5b8d57e049cebd3624fa0fcbe6b53e3750f74c3c5edee9e20000000000000001000000000000000000000000000000201c170c2391b60742d4e50f166570297dd51524c3e9dfdde57583dbd0d59b98f0000000000000000100000000000000000000000000000020a72b7e194afd50ecaf1e33d2066f71486bac78d487b7fa0426a92e4a9ea310c9000000000000000100000000000000000000000000000020762aa6b8eaa622a60e5d82075304926867e1bfd72e6c9bc93d7ed5c083f0de9d00000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003e00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000100000000000000208537362dbc6b3aa76cf88ec42302f0a2cfddc88e92a0c151679ec1aa612782c4000000000000000100000000000000000000000000000020cdcf86385ef53b8ce97ccc6608b4101d620d5e47c63dacb968ff5e5a1512061d0000000000000001000000000000000000000000000000206889701554ee61bb802ca84af6486ce5e81ccd8180328c57ab9d2341a8808cc900000000000000010000000000000000000000000000002000a85bf2f2d421229c03bce75acc24a6f0df564cb379ef0e908c83449ac1caf40000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e1000000000000003e0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000208c22854966b4417b9c7cb65b4638e0cf5ff140c478d91859d71f24981c261bcd000000000000000100000000000000000000000000000020866bd428371641ca6284b28aa6547219a585a30105d51b7f4811297b39fc8a97000000000000000100000000000000000000000000000020a85d79547366d8e08f2cd889f73768075efa9a82bdcfd8eca2a0d03ec1c600af000000000000000100000000000000000000000000000020e275f0cac8a965b7c2d52bccf2fc2a08ba897eccce8ac56d94090bd934b9477a0000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000240000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020c24fc0a3e994aa4053143723d1ff953730e09d80308264f57f5e25286c7dcad00000000000000001000000000000000100000000000000204f58496d9785dbfafadd8f41e3167831200b5d8065731cf35b12e0f683eb6aba0000000000000001000000000000000000000000000000204cb7b4fa816710180675ddbc955531f8a709d427faf5200cdc6737874e060a55000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000240000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020a92607495561c9eeccd26d9cc9dfab304f5bdec362795340e1d8d93b162ff7f5000000000000000100000000000000010000000000000020056c9a4c4349cd5028c19714d82d2521d603233c99689f9551773f4c5a1bb87400000000000000010000000000000000000000000000002037a9c624bdb25b1ee261b13411e9d6acc0d0e8c738496cff14dc43abe65c9d1f000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002400000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000204be0b5c554d14ed3ecb1a4698c54f322ec73fcaf89c1a0d0f2287a93c2b4d62b0000000000000001000000000000000100000000000000203decfa57715a83c44aa9af101d28b91339338f8855c0070ab1a2c91f7f429ec30000000000000001000000000000000000000000000000205d6c3e37441823be85bdf046e1379fc5587812c68dc08d8750f2f6bd76bf08a100000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002400000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020b9bcab614083e91d90644c8bf147843d720ff77d9f63f4ec3cf28e93fd482b18000000000000000100000000000000010000000000000020c197f4a8824867039691d253f3aabc0aeadbd548577f61e901b469ba8e81b348000000000000000100000000000000000000000000000020580e91949e50afae5b838c9689875cb0378f05c69de9eb4bbdfa87dc8eff62000000000000000001000000000000000100000000000000209576be5e5da6b2eb368bfdcbab0970717630f25877a6b9664c345d452e1514d800000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000240000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000201dd42fc16aa12a31fa90168725c897d861f7e36b8c27441380a55b1025146bcc000000000000000100000000000000010000000000000020a80602202c5ebf9b0347c9106ef91bf2c358dd05edffa7aa90f9b9bd47fd10500000000000000001000000000000000000000000000000207f46e4b2eb51c53f78fb1f6b5310d84183eb4d3898e8ddf3b3eb940fc2ad8f4400000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c00000000000000003f0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020ae475446506dfaa59968c26931bee5eb87090ae33a057924eaef7eefd03110ad00000000000000010000000000000000000000000000002069a16d2b56ba3538a063eb8027cc1a4e3053ce82d49b49dbcb4419a7943fcccd0000000000000001000000000000000000000000000000206d638b48c620681d9ca1f3ca0b9269a4c587a473d6a7f7a9b87cd38c6b341a88000000000000000100000000000000000000000000000020228ad46578c60a8ae293c5203eb65e05045bb3651cc7f9dca5fdd52a9c021f9f000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000003f0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020c4446bba8c1b7fb429c7566fe2eb83cf8fc01f9962ea02859504fffbc0ccdb49000000000000000100000000000000000000000000000020eef65a3f592189d4459cd38a7fdc20e3c6e4585e0d3713da14da36b4b547a0a200000000000000010000000000000000000000000000002066f2ddc800c59423dc3e6cb06ec895471d3ffafc6e3140cc34d397e66f29e633000000000000000100000000000000000000000000000020d3fe0ac3f0592a168395476738f2d379d0581dd02807271399e479432d094ace000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003f00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020b6ca4da84f02aad90c581176daa3da05852b495655548ec26d1b19f76b322d320000000000000001000000000000000000000000000000201c170c2391b60742d4e50f166570297dd51524c3e9dfdde57583dbd0d59b98f0000000000000000100000000000000000000000000000020a72b7e194afd50ecaf1e33d2066f71486bac78d487b7fa0426a92e4a9ea310c9000000000000000100000000000000000000000000000020762aa6b8eaa622a60e5d82075304926867e1bfd72e6c9bc93d7ed5c083f0de9d00000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003f00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000000000000000000020ae7619fa0fc3e148815f5634731353e207a7c6409708ccece355065ef6880b09000000000000000100000000000000000000000000000020cdcf86385ef53b8ce97ccc6608b4101d620d5e47c63dacb968ff5e5a1512061d0000000000000001000000000000000000000000000000206889701554ee61bb802ca84af6486ce5e81ccd8180328c57ab9d2341a8808cc900000000000000010000000000000000000000000000002000a85bf2f2d421229c03bce75acc24a6f0df564cb379ef0e908c83449ac1caf40000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e1000000000000003f0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000000000000000000202df5948fb78d8e6f2f92a2ea101910a5ce745492735b256acd41c49158f2409c000000000000000100000000000000000000000000000020866bd428371641ca6284b28aa6547219a585a30105d51b7f4811297b39fc8a97000000000000000100000000000000000000000000000020a85d79547366d8e08f2cd889f73768075efa9a82bdcfd8eca2a0d03ec1c600af000000000000000100000000000000000000000000000020e275f0cac8a965b7c2d52bccf2fc2a08ba897eccce8ac56d94090bd934b9477a0000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000340000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020a51a1dc62392f295b15fe1655ecfe34f6022071edf8acb2dd4f0b8ebef99ec59000000000000000100000000000000010000000000000020c362cab2e6c4dc6ea82bb6f4ded48e2f8eb7e24ef0fa0baea7e88c5951f51ecf000000000000000100000000000000000000000000000020cacc7d788bbdb1c4d5dbf47f8afd9ed9b975d2203ba1769a80caa833f3fbb946000000000000000100000000000000010000000000000020f006cf8352bbf180ccb81999dec2d0377abf32ec1a119242758d07bf00181499000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000340000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000201a65187107853d80e0c2a9df94b775ee2882d9d528d05bf2d0dafca511d3ed2b0000000000000001000000000000000100000000000000204f8481d122e0655a5260d7d5ac27ab8f58be0e674599e596783b978e063f1e4d00000000000000010000000000000000000000000000002073a7127e76a6c5c3b45234b5814ccbf96b9d757a279114bbd33a663bd26d006e0000000000000001000000000000000100000000000000208d5b321bbfd951f9cb7659d22f534c96ff102f4c76a497617e5abb9dfa82d388000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003400000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000209725e35ee4c6df58b617aee3329c373f0e489a9026ce96fa222ea76aa2ac5e09000000000000000100000000000000010000000000000020121197ec56ab41beb7a2f051161dd268ccd5ab29e7d0b6fef8b7e1c7c912753d000000000000000100000000000000000000000000000020f4ad74e02cc77efb94d4fc24ec0d3cf9f818ea30d8cf64bbb281e90b63c46a2e00000000000000010000000000000001000000000000002077140c9519235b46e9281299155f5f67e417ff114e7ade36dfc35a5d9cd2e2d700000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003400000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c8000000000000000600000000000000010000000000000001000000000000002016b211f8e1c24460c33f79c50d34fdc5f21b4974075fefbf7e19d3ef3dd925d2000000000000000100000000000000010000000000000020d6ae3741cdfc33d16daa119fa69659d1edfd428dd8fa17d9b0e9cbe608e111e00000000000000001000000000000000000000000000000202a006a9ce5990c918a9042f52712f1deb0b3840b72b18b347088583ab1f5f8d300000000000000010000000000000001000000000000002048e1d107862aaa17d2844c76f1581f63cd00be4647fb6249784c8e84d204a7d30000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000340000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020bd3e2ffe3b5fc465e05ef39b4f6c0d1a48247d10a56154253ee5219438e761f6000000000000000100000000000000010000000000000020423d33b2be9113539696ac1ed9a134a1d7a1b4932f513b45a8fe1547e6621966000000000000000100000000000000000000000000000020f8cfa931b1b7944fb737694c4d6fc033dc405917f38330a742d6f02d503c8a1b00000000000000010000000000000001000000000000002072bbfd71e002ce04de2fac87c41cdb38dc917d8c5386b1ebdd6e02865da280340000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000090000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000208e04b4c723612b4d1e333accc4e24a04d69c173578faf07c8d2b973c0be9fb4100000000000000010000000000000001000000000000002014aa8e29f77d6a5fb881904df608256632c6604fbfb5192158e0932c0baf514500000000000000010000000000000001000000000000002093c99af014a3514bdcc84cdf0e72d42f20038a64dcba4071efdcce4cf6a76949000000000000000100000000000000000000000000000020a07353c5029eac2f5fb14b7aaa839b9ff2b01dd6feeb51c341820462ab766306000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000090000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000000000000000000201e1426bc22e09b48e2f3902ae15397de929e0b50905519518b2ffd6ff87b0f8d000000000000000100000000000000010000000000000020ff5c9eed6e4075d1dc3dad1312c9f0e4bcc23270345f8eea8c11a5b3619b24aa000000000000000100000000000000010000000000000020e23783733f2d245e0738ed8503ab8c6aef3aa526888e6b8dc670bfe0e224b8ff000000000000000100000000000000000000000000000020a45ee5473875579efd498bb9c2b6715752587f3d8b2592b454ecfaa7a4333af7000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000900000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb626512000000000000000600000000000000010000000000000000000000000000002009e66b718cc1244864884c2e809453b63f5bdb1357b3b4cc341fe71f437dca2e00000000000000010000000000000001000000000000002025a5c0035306c82abd392465404dd2a5af6ad78f6c662e811fb28ddd99a85857000000000000000100000000000000010000000000000020f0fde6ec22a87dce3563e4a3872da6fb65e744b1d395bcb2f83911d9ac21f1af00000000000000010000000000000000000000000000002017851b1e9a70cbcc32eb47f7ecfae668e5855348fa541f9cd9cc78455c2f52ed00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000900000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000000000000000000203366300a5e555c582038bc0af48618d1c44ec5457efee567d5c266b9d86372ee000000000000000100000000000000010000000000000020f7920379a56fc6ea52b03411a80201764cd5c9b889cce60510d3d289564f02a1000000000000000100000000000000010000000000000020b9f47dcff780b5d8194c00a89264a3eb8f7603479d71eafc29a9074cf428d552000000000000000100000000000000000000000000000020dab612d00eddc0f70596df141a7d854a89a2e881b62296a42c239a68553568e5000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000090000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020e6608d6b21e9b4d6fdacc91ba204748c8cdadde68638156e633ef52ca68d58a6000000000000000100000000000000010000000000000020f9459a5f7f85273cda341000cf6866270e90827995d041cbba1ac42de920723c00000000000000010000000000000001000000000000002045bb9d506f74a19123d41a442d1de0fdfbaca183dfb2af0cc5027621a991b2b2000000000000000100000000000000000000000000000020dd7d0f921f70b1c400e2053b21a89931a0d729e3164966f8cdf0a44bdd836801000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000130000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020a51adb0dd5ff6139015f567454f916303ab3f39c830603b281712da0359980d000000000000000010000000000000000000000000000002077c77d7b993f04ae31fa6b6da7dff3c353004c11a049302a478e5dac04d508cf00000000000000010000000000000001000000000000002038c257c4acc7ae148c5c9b4409c82130df8554a30c1e722962697197980c56fb000000000000000100000000000000010000000000000020f158609c6b12d3609bdf1c7797edb538f985fe8ac4171f066b1d7b9c43c7bc3b0000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000130000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020e4c375b6de0dcd2144dc015638119fac2dff51212295bd568d0f822953dbe353000000000000000100000000000000000000000000000020410a9806148029c00be1c6575ce39cab980947f62d7b8c905215b520e160aa17000000000000000100000000000000010000000000000020d42e2ebd255e4349a7739a43dd3c719944636248abdb0bced6a610501e96e1b50000000000000001000000000000000100000000000000204dffb3cd723081a5601c700b71267e003c6301f69868c0143c1c7fb7f95e7282000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001300000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020d5fd1e9ac010c629f9995228fd1ce86410206a754ce5277b31e14511bc4678d00000000000000001000000000000000000000000000000200d8eb352cc26ae30ac8e735bd07c4afc629f8b935a6281b4a5d795206646f134000000000000000100000000000000010000000000000020fe4fd380a7b985c22fbf7e428d0522af491d32b3707fdee9600cc7816056f1200000000000000001000000000000000100000000000000205d9455d420eacea118c8dd606eeb03972280069211e33523e74b32b8a0a96ea70000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001300000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000000000000000000208f172a29c3f7a4928e95a442bc56edefb65be8dfadcec91da6c77898dd047f300000000000000001000000000000000000000000000000208ca5f4e39ff8097b3311dc5c6b8ee0f25e73013b54075212e77ec6bbe41ea8e5000000000000000100000000000000010000000000000020acbb53eff19327fdfe068637b56e56cf2ed3ea11c5ac335cac2a4c9e1b4ba555000000000000000100000000000000010000000000000020770adc9f5a476741bb8349e40e9edfd96156aacd1c6d9e3a586653b654b6aa5b000000000000000100000000000000000000000000000020f66cbef6ba027ee51a683e2c6bfc0ba5a9c25509bcbd67fc8c6ed57fed75d4ad000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000130000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020043e05299a97cdfdad83e9c096b1f11c65ec4a2b99d554ba0940abdbd2e5842f0000000000000001000000000000000000000000000000201cc2cb225f6ceb4dc0af62c3e4cdbff8b47664cb0876a05b70204156dc6ba240000000000000000100000000000000010000000000000020113e52f83563f3c9a8ca73087daed63db6e020f9b1908dae270f2d864860470b0000000000000001000000000000000100000000000000207558d367d7cb8046d18c333db9b72e09bb6459368f028b50b23b205b8ad03c430000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000280000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000203fc4f8175b9c92350566386ba4636deeb2ec6d4187f6d0d3208c3db577ee4c1a000000000000000100000000000000010000000000000020c600a084e5647679dce1e61667cd049aa01cd0b29e54cfef6b28350be80914810000000000000001000000000000000100000000000000200ebe305ff48b2729427a6d3d9c605f9d8749d8a7f371875c0845a2841f05d610000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000280000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020c6f1cc07680dcd75a8f53c63f310a6d897c61d167e7cf74e0c15cd99fc146e0f0000000000000001000000000000000100000000000000209fb59ccf252a0568bd152caf34d3269d3a2b9a39857511b0bd86c4af33ce8dee0000000000000001000000000000000100000000000000201cef524c4bbd4352e55a822f72b50f13a0d37a3b4bd840b09474319d06e88b350000000000000001000000000000000000000000000000204c549c0a06011a5b940afdd9c949f7c54668b0449c63f74f64a3a00d1cc2a37800000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002800000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000200669822d3814118c5bf694c1ff7d0ed5355d049614d73f0cd41e47c2ba90a4ec000000000000000100000000000000010000000000000020e967db82093a838375e88444bf31c8b9602b5b9abee7d1014d9faa70e9e2ee07000000000000000100000000000000010000000000000020b65635b650f7751f683d4fdd6f77a7bbbf3914c331798f8c0a5e9b5bdd294ca9000000000000000100000000000000000000000000000020d880ce6b358a2b77330b5a0f9481e98d6528b9d0ad6b480d03501c04a93a647f00000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002800000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020e7576b6112be4e002c520903f76fa89a98aead2ed95573d928ee6c27f6ae8b0b000000000000000100000000000000010000000000000020c126701ba56f4a93107ba6cf51214a089bf26114a1c268096b5827a6c692eb22000000000000000100000000000000010000000000000020f9261c602c28cce1a3d266cbce50544b70ad2373d928eb6befd894a8ffb129540000000000000001000000000000000000000000000000205fd7cad6c08ee7d72dab067a907a496543f8562d1aff5010789f4fe3432c874200000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000280000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d000000000000000600000000000000010000000000000001000000000000002029df8d814e6ad33e7598df99f56ae5a9d1e95069c3ba023194079a911304b748000000000000000100000000000000010000000000000020eb547fc519df191930772af4c7f9a223f448ea9b096d6bb0615a7ccf53da66a3000000000000000100000000000000010000000000000020a9fa262c6bfaa50ee132d4609ab35f935bfd510e97d33e942458c27041a0083a000000000000000100000000000000000000000000000020896402e4d3f17887d11d2154920c6bff134c98834a80f987cc702496ef09c196000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000270000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020d2177cff3370731150de6ddcf6c893f5aec7252d0b7bd68caa69cf0af92a8edb000000000000000100000000000000000000000000000020ea0130bd476a2e99ed6edb948b6cb09cfecc8dd59caba4fc389609df359d15860000000000000001000000000000000000000000000000204cb7b4fa816710180675ddbc955531f8a709d427faf5200cdc6737874e060a55000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000270000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020b48dc2c77a67d852a5a1c89e57e8fa3cd275bd8e13e6fad63330fc34b32b72980000000000000001000000000000000000000000000000201e9235801c669c50c2b370f79c4c01eedac2bd811e7882f3c3ae07b72c66516100000000000000010000000000000000000000000000002037a9c624bdb25b1ee261b13411e9d6acc0d0e8c738496cff14dc43abe65c9d1f000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002700000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000208e708d32664cf9e3acd55714e1ebba48f1e2bbafa51332d5569992c483fc341e000000000000000100000000000000000000000000000020437286cce94ee481fb2d34b75a26a24d22661f691749677c792af071c156ccba0000000000000001000000000000000000000000000000205d6c3e37441823be85bdf046e1379fc5587812c68dc08d8750f2f6bd76bf08a100000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002700000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000000000000000000020c9082bcf2f61b4b629cb36f0b379306e38d104e61266b6364fb6540637220c8b0000000000000001000000000000000000000000000000202450d2ddcb8c5a42f4f5bd485d49bb34cecca473cf8cd0e02b10a0db351a7619000000000000000100000000000000000000000000000020580e91949e50afae5b838c9689875cb0378f05c69de9eb4bbdfa87dc8eff62000000000000000001000000000000000100000000000000209576be5e5da6b2eb368bfdcbab0970717630f25877a6b9664c345d452e1514d800000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000270000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000000000000000000200d223b5973ad045189a955bfd2f2dee5836de27b52beef52524919504211e9f40000000000000001000000000000000000000000000000207fc92ac8e569eed4ff8e3c4f82dd4cde5b6e4918cc3e7ab8884fb26fd7b0080e0000000000000001000000000000000000000000000000207f46e4b2eb51c53f78fb1f6b5310d84183eb4d3898e8ddf3b3eb940fc2ad8f4400000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c00000000000000001e0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000205b22e826fa41eab497f0d44485ed30b89e70dc3b8991721ecacea7676a1160ba000000000000000100000000000000000000000000000020a99b7e2901520fe9aa438e0b1d9ff1d42abd1e4774fe50a7af9abfdd5aeb49f0000000000000000100000000000000000000000000000020cd05d024922075f0d2191dff6b6b8977913542096c687b1aa6a6880a30f4f1780000000000000001000000000000000000000000000000207a1424d413417eb28a018fd1d76958181366ee57c4d59ae0034a29ddbb1d2b590000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000001e0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000204770899cd3e2cc4095956d615386c336d78390d82891791393ec7efd021b50d20000000000000001000000000000000000000000000000202a2de0868c528815ae4a83f77bed5e4618dd7631755e6f37a518ff031e998dfa000000000000000100000000000000000000000000000020e216681d6f38da8409d5c77334f0f51de756720aaa028880c59d6a832095ad4f000000000000000100000000000000000000000000000020938375cf40ac56222ab4d00edc1add4f0c4d45658ef352f9c39d534a9202dcf7000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001e00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb626512000000000000000600000000000000010000000000000001000000000000002000ffd50a0e09d1a2c7e1ba81e46e042ec77aef694fa7378b10eb2ced2513005b0000000000000001000000000000000000000000000000208aa088e796768de7229e31b34fe788da7fe2fdb8df344b029935b9d2d8dbdf2100000000000000010000000000000000000000000000002053b3233efca5252e2055e75028fefee3391d25eb106840c102b53e90d3d1fdf6000000000000000100000000000000000000000000000020a084e70b3f9ebf137fa0b89422463d8a968230d1e0fbcf139db6e018b78315170000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001e00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020952f485a7107b171858c16e5666bd6fdd98f452291ce9b99a78e8352889a14d2000000000000000100000000000000000000000000000020fe99ab1dcd065f673dbed84d1d54217d2ff636b0b7019ea641b3ceafae0b69d4000000000000000100000000000000000000000000000020b7d7c4fcec9b03c74f701ed9b4eedf7ec3386233c472d6ae64f7cb0ca1f7a448000000000000000100000000000000000000000000000020ce498e000ddc8371c645a265d4b98546295ae06beeb91fa03885ec7c34dce7f9000000000000000100000000000000000000000000000020f66cbef6ba027ee51a683e2c6bfc0ba5a9c25509bcbd67fc8c6ed57fed75d4ad000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e000000000000001e0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000204458dc689a3c9b3f3ea909e7f56b0abdac7a2bbad18f0649bcf794edf6e4ed8d0000000000000001000000000000000000000000000000208404c4d1b9523cf7c9a5ef7c4369fa8ae85b8450e69f5170f221214e928df1140000000000000001000000000000000000000000000000207fe3562c7d01ca88eef4c66c817964ae9239a6df889ab475368bf430de96cdb20000000000000001000000000000000000000000000000205ef7704fa3778b449f726e5d0a98cf0942526fc336765751838fd6cbb761fb270000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000390000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020f5f51df4455ffd83739dfaccef923a70df7a7cf5ea75b0be8ac453ab1ea59cd8000000000000000100000000000000010000000000000020314e9a848ea1d25911258d74b19f092dd444faf4da08b8c00a4f09adb9d4c623000000000000000100000000000000010000000000000020f8aa5e6a5b89d4a39d02bfe4f6c3c38deda3ec6df5ade3707863ea2453f03b73000000000000000100000000000000000000000000000020228ad46578c60a8ae293c5203eb65e05045bb3651cc7f9dca5fdd52a9c021f9f000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000390000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020c0be60ecb9302afcaf7e0974c2439749f493468a83262da26a96f1cc4c55cc73000000000000000100000000000000010000000000000020d409436a38cce955294f3fbb27f4d65e7100e98f4d77022a741a6e99195a3afd0000000000000001000000000000000100000000000000206d13fd38b84ca4e30cf7ae1f472014bbebd3d7449bae674ad6a36fae582015a8000000000000000100000000000000000000000000000020d3fe0ac3f0592a168395476738f2d379d0581dd02807271399e479432d094ace000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003900000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000205ac05e975b42062c31f9ed21b3fe8a6ddc0b04176c23fbf2924ac02c9a0be9e70000000000000001000000000000000100000000000000206140589f65135d68e263ae292fc0c763647ece71ba96e1bb1950b05093e479eb000000000000000100000000000000010000000000000020b6e03aa8283e3b21b7e5347673309cfecce4aa3d8d546f0c5e5fbac4333ddb46000000000000000100000000000000000000000000000020762aa6b8eaa622a60e5d82075304926867e1bfd72e6c9bc93d7ed5c083f0de9d00000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003900000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000000000000000000020a1d50e36dcacbeab3151583c0a0de6fcf3b158bca938c33d17bc65105aa4836e00000000000000010000000000000001000000000000002025e3c91b984175d866c1a7a0ab532b735a2322b380d5176f3f2898cdf3415d9f000000000000000100000000000000010000000000000020eb8e2038c836a712421ce8263fd03d719840bae9cbc574a061e776d5ef3f390800000000000000010000000000000000000000000000002000a85bf2f2d421229c03bce75acc24a6f0df564cb379ef0e908c83449ac1caf40000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000390000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020741795e4cfecca0b0fcd745a3aa59aa1b3c46d8f74bb8a06128fbf82dc802df80000000000000001000000000000000100000000000000204759d348b50c669646f5f52d2f8caba0a0a3c3f6941e016904bddc6b141451910000000000000001000000000000000100000000000000200e45b6073a5229fe074383c2f531128eda5ffeefe8fde89eb48d7aa45a77a0f5000000000000000100000000000000000000000000000020e275f0cac8a965b7c2d52bccf2fc2a08ba897eccce8ac56d94090bd934b9477a0000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000250000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000000000000000000002078ae3188ae8a7fa5036c69bcc6f6b6ac2a737d68f221d24a2b9be2c403a31f890000000000000001000000000000000100000000000000204f58496d9785dbfafadd8f41e3167831200b5d8065731cf35b12e0f683eb6aba0000000000000001000000000000000000000000000000204cb7b4fa816710180675ddbc955531f8a709d427faf5200cdc6737874e060a55000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000250000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e000000000000000600000000000000010000000000000000000000000000002018adf62c16c49037a919028f54b64de85326f5b2dd64be267a413db441bcecda000000000000000100000000000000010000000000000020056c9a4c4349cd5028c19714d82d2521d603233c99689f9551773f4c5a1bb87400000000000000010000000000000000000000000000002037a9c624bdb25b1ee261b13411e9d6acc0d0e8c738496cff14dc43abe65c9d1f000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002500000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000207dc81ce49e1b1df2f8fcc08b7356fc70192a5f60687461cb3c541bcf686e5a840000000000000001000000000000000100000000000000203decfa57715a83c44aa9af101d28b91339338f8855c0070ab1a2c91f7f429ec30000000000000001000000000000000000000000000000205d6c3e37441823be85bdf046e1379fc5587812c68dc08d8750f2f6bd76bf08a100000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002500000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000000000000000000020fc14ea81cdf469b2c3b971cb19a66445537058a9a44ee4d0d824b690404cc86e000000000000000100000000000000010000000000000020c197f4a8824867039691d253f3aabc0aeadbd548577f61e901b469ba8e81b348000000000000000100000000000000000000000000000020580e91949e50afae5b838c9689875cb0378f05c69de9eb4bbdfa87dc8eff62000000000000000001000000000000000100000000000000209576be5e5da6b2eb368bfdcbab0970717630f25877a6b9664c345d452e1514d800000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000250000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000000000000000000207f8f01e6b3f5a17ac295fe537986b11cff2ce290e66da7d3c4bfcf9f734bab14000000000000000100000000000000010000000000000020a80602202c5ebf9b0347c9106ef91bf2c358dd05edffa7aa90f9b9bd47fd10500000000000000001000000000000000000000000000000207f46e4b2eb51c53f78fb1f6b5310d84183eb4d3898e8ddf3b3eb940fc2ad8f4400000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c00000000000000002a0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000203da14c802e0b1caa6a7fdb57b49c71543b810414a29c1963edc1c2674d7504e500000000000000010000000000000000000000000000002064f12c9571923baec5fcc14481a7dfea3e02c1bfc8c062111edc34018395b7160000000000000001000000000000000100000000000000200ebe305ff48b2729427a6d3d9c605f9d8749d8a7f371875c0845a2841f05d610000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000002a0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000204effdd1c1b9fdb557b5e9669f69a5e62c7a414a05d5be0861dac7d232fc4d081000000000000000100000000000000000000000000000020372b730b0fbf5e9e53c6d82f9ea174dfa93e2b45f3d0604b1487c24ff8cbe32c0000000000000001000000000000000100000000000000201cef524c4bbd4352e55a822f72b50f13a0d37a3b4bd840b09474319d06e88b350000000000000001000000000000000000000000000000204c549c0a06011a5b940afdd9c949f7c54668b0449c63f74f64a3a00d1cc2a37800000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002a00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000010000000000000020fc73d0947f94446ed9761da0ab00e0a32a70321b875fdfcde46a3d4feb429f9c000000000000000100000000000000000000000000000020c08b6a80530ce28ab631eb2d126ffb2acdf90182e03c3ef66853b7e4fb457d93000000000000000100000000000000010000000000000020b65635b650f7751f683d4fdd6f77a7bbbf3914c331798f8c0a5e9b5bdd294ca9000000000000000100000000000000000000000000000020d880ce6b358a2b77330b5a0f9481e98d6528b9d0ad6b480d03501c04a93a647f00000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002a00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020e5055d1a6f42f4116932a0f289fe268d3d26e1e76a6e76a60f666b786dcc14e800000000000000010000000000000000000000000000002013c394365ef4ea229b732c1f74b1cdefeb9d0d67b4660f421b2359d2cdedd3df000000000000000100000000000000010000000000000020f9261c602c28cce1a3d266cbce50544b70ad2373d928eb6befd894a8ffb129540000000000000001000000000000000000000000000000205fd7cad6c08ee7d72dab067a907a496543f8562d1aff5010789f4fe3432c874200000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e1000000000000002a0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000202c42a64400c3e37a22aab41e4a6fba9f963188253d962bfb9d2d2c367ab29f1d0000000000000001000000000000000000000000000000200892a3f42888ca3862bea9ccf078bd63e0266f46f3fe49a9cca5cb8700d0934d000000000000000100000000000000010000000000000020a9fa262c6bfaa50ee132d4609ab35f935bfd510e97d33e942458c27041a0083a000000000000000100000000000000000000000000000020896402e4d3f17887d11d2154920c6bff134c98834a80f987cc702496ef09c196000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000040000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000205825f928f03cd4d9f2cc8a75322b12c7865a1397104c644c6e89be16cfebaa6a000000000000000100000000000000010000000000000020358c6702aa7ce3c8bdcd46a395295b533449972ac93e65796c809d3843af3e0a0000000000000001000000000000000000000000000000205653a7aef6c658c2fe00a9e102931ec0732cfb210b3c0f9786685131d83170b8000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000040000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000202288e579127e8d12c9b43d75f387921ffcd1e5d2d0279d05c76d0c914f33cd5b000000000000000100000000000000010000000000000020d8a894c95f18b89fc6b1966cca0468fb346cb33bd7ed5949846cd49fadfb28c5000000000000000100000000000000000000000000000020dbb74f6060a2f8daea889924e7610165d94588183449ef4022cf18b3bdaaf8d4000000000000000100000000000000010000000000000020a5ba1e43e43faaed55a5a360b6818e780f5c7442a5977ec37c50292584a00e03000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000400000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000207bfe765b64fb0383c673c7ad869d7e0858c875723f9a9dfb3e665add166827880000000000000001000000000000000100000000000000203d0c857c0178a4e206fc089efb3766ddb437e7a682bbeb9802198aa092a8cc08000000000000000100000000000000000000000000000020c358e6ecb6ab0ba0349b872be0aacb00d8660c507286f1680572dd7de7bbdb46000000000000000100000000000000010000000000000020dc0369b2684d24cbf4274ce023a89e3478b29bfaee34efd0a4da1dc660ba45de00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000400000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000100000000000000203f82b44fc772d0560564e2f1b7a14e9d2deba1e392791de2d5375e426eb636760000000000000001000000000000000100000000000000201c7a36516e9a052930373dcef0ce273c7649c024c7dd25a36bc87adf716bf4e800000000000000010000000000000000000000000000002017c85f2591fe6da29d118df27a1aef7ced0fb1a2b85b06c19337c12c92edb9cf000000000000000100000000000000010000000000000020e40fba18beb7a8bfcd3d0b191d6d10f4e3acec4778b08e3ae3c21ae92483fd86000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000040000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020b26445f763278356514594bd97c983d1ddc49fde57cd11428719e5152d4649070000000000000001000000000000000100000000000000202ed66359469b6c278e6162debbe51b6122cbf7aa0d285a925131c0f1651813ad000000000000000100000000000000000000000000000020dea113f87fef53166cf17cc40d78ddf07d9d08926378c792877f7ff4d200a8ed0000000000000001000000000000000100000000000000205a4b48d2d5c0deec9a967d4659defb7f8c12de581186bfae2c710f30835d378c000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000070000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020456e1d938e6648c4c29adf636e5183251a0ac349a008beb793b036853b4408e700000000000000010000000000000000000000000000002089f5f06a3eaa9feb6107ff18a664d8234f172a437fa0bd092c38efcfada850fb0000000000000001000000000000000000000000000000205653a7aef6c658c2fe00a9e102931ec0732cfb210b3c0f9786685131d83170b8000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000070000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020c969695602dcfd384104f908bcbce257dfd864710642f1523d9a81168955aa47000000000000000100000000000000000000000000000020cbbebb2d2ee01e244f99abd05209a18acdd9373999809a8cb24cf1b63e6ab391000000000000000100000000000000000000000000000020dbb74f6060a2f8daea889924e7610165d94588183449ef4022cf18b3bdaaf8d4000000000000000100000000000000010000000000000020a5ba1e43e43faaed55a5a360b6818e780f5c7442a5977ec37c50292584a00e03000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000700000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020b85d4b586ba947b693190c6ef1f6f990ae482425ac07ca3e5424f441c775da3800000000000000010000000000000000000000000000002084f8f08c1781b86a7d608482d19129b805186d05d826ff32e7da42cb40f5328b000000000000000100000000000000000000000000000020c358e6ecb6ab0ba0349b872be0aacb00d8660c507286f1680572dd7de7bbdb46000000000000000100000000000000010000000000000020dc0369b2684d24cbf4274ce023a89e3478b29bfaee34efd0a4da1dc660ba45de00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000700000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000000000000000000209f878f0838290fb1f9f2f7da960477fe4a6b7885ecdd858fc30349c6b990d3e80000000000000001000000000000000000000000000000206cc19031dc8ea162ed088aa714a1081e2754177da026376d0234c9d4449681c400000000000000010000000000000000000000000000002017c85f2591fe6da29d118df27a1aef7ced0fb1a2b85b06c19337c12c92edb9cf000000000000000100000000000000010000000000000020e40fba18beb7a8bfcd3d0b191d6d10f4e3acec4778b08e3ae3c21ae92483fd86000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000070000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000000000000000000200df2987c4ae921770f85c84d56a6af3f336ab04d54354e5885b02d92d80d2bba000000000000000100000000000000000000000000000020d3f5510399f216c8057188c39fff0caee23b375770f4b96ded21d5ec35dac884000000000000000100000000000000000000000000000020dea113f87fef53166cf17cc40d78ddf07d9d08926378c792877f7ff4d200a8ed0000000000000001000000000000000100000000000000205a4b48d2d5c0deec9a967d4659defb7f8c12de581186bfae2c710f30835d378c000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000260000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000205ad883312aa88562cf385178730267043900694b0b01c2234e202a67c428abaf000000000000000100000000000000000000000000000020ea0130bd476a2e99ed6edb948b6cb09cfecc8dd59caba4fc389609df359d15860000000000000001000000000000000000000000000000204cb7b4fa816710180675ddbc955531f8a709d427faf5200cdc6737874e060a55000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000260000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020414865cf4023e03fb5c98fc94f1afd26c3a460aca077222e25d930a4220f4db90000000000000001000000000000000000000000000000201e9235801c669c50c2b370f79c4c01eedac2bd811e7882f3c3ae07b72c66516100000000000000010000000000000000000000000000002037a9c624bdb25b1ee261b13411e9d6acc0d0e8c738496cff14dc43abe65c9d1f000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002600000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000010000000000000020cc2e00785e9824e205b01768c83ffa5c02315f61334fe0670ce06b07eae698d3000000000000000100000000000000000000000000000020437286cce94ee481fb2d34b75a26a24d22661f691749677c792af071c156ccba0000000000000001000000000000000000000000000000205d6c3e37441823be85bdf046e1379fc5587812c68dc08d8750f2f6bd76bf08a100000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002600000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020a5f6de84ebae064f086168e639ee83603818892e9ad4bf156cf637da40a148ca0000000000000001000000000000000000000000000000202450d2ddcb8c5a42f4f5bd485d49bb34cecca473cf8cd0e02b10a0db351a7619000000000000000100000000000000000000000000000020580e91949e50afae5b838c9689875cb0378f05c69de9eb4bbdfa87dc8eff62000000000000000001000000000000000100000000000000209576be5e5da6b2eb368bfdcbab0970717630f25877a6b9664c345d452e1514d800000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000260000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020dceccd7648b46c6136ae8027593d0005d441a51e50114030e8b908e8accac7100000000000000001000000000000000000000000000000207fc92ac8e569eed4ff8e3c4f82dd4cde5b6e4918cc3e7ab8884fb26fd7b0080e0000000000000001000000000000000000000000000000207f46e4b2eb51c53f78fb1f6b5310d84183eb4d3898e8ddf3b3eb940fc2ad8f4400000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000050000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020df632d8f7473aa2a266c94e0516913189d640957a4f03bdfca986886fba478de000000000000000100000000000000010000000000000020358c6702aa7ce3c8bdcd46a395295b533449972ac93e65796c809d3843af3e0a0000000000000001000000000000000000000000000000205653a7aef6c658c2fe00a9e102931ec0732cfb210b3c0f9786685131d83170b8000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000050000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000000000000000000208b5e31b3b9693fd99f4af22f146c47a96be5f96f6e2d1de7723eb81b05ab4517000000000000000100000000000000010000000000000020d8a894c95f18b89fc6b1966cca0468fb346cb33bd7ed5949846cd49fadfb28c5000000000000000100000000000000000000000000000020dbb74f6060a2f8daea889924e7610165d94588183449ef4022cf18b3bdaaf8d4000000000000000100000000000000010000000000000020a5ba1e43e43faaed55a5a360b6818e780f5c7442a5977ec37c50292584a00e03000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000500000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020a56fecf58a1a4c072cb8cf67dd9e508770f735536f8cd2a7c1e1ef73333f32730000000000000001000000000000000100000000000000203d0c857c0178a4e206fc089efb3766ddb437e7a682bbeb9802198aa092a8cc08000000000000000100000000000000000000000000000020c358e6ecb6ab0ba0349b872be0aacb00d8660c507286f1680572dd7de7bbdb46000000000000000100000000000000010000000000000020dc0369b2684d24cbf4274ce023a89e3478b29bfaee34efd0a4da1dc660ba45de00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000500000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000000000000000000020763aab24ec6f8139b22cd47151b3ee9984aecfd01fa36f684224a9c9f86d1cd80000000000000001000000000000000100000000000000201c7a36516e9a052930373dcef0ce273c7649c024c7dd25a36bc87adf716bf4e800000000000000010000000000000000000000000000002017c85f2591fe6da29d118df27a1aef7ced0fb1a2b85b06c19337c12c92edb9cf000000000000000100000000000000010000000000000020e40fba18beb7a8bfcd3d0b191d6d10f4e3acec4778b08e3ae3c21ae92483fd86000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000050000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020686d0a06f4ae390f0f7c009a298fc5272f1d751bfc23c567191f5f4bf85d9d6f0000000000000001000000000000000100000000000000202ed66359469b6c278e6162debbe51b6122cbf7aa0d285a925131c0f1651813ad000000000000000100000000000000000000000000000020dea113f87fef53166cf17cc40d78ddf07d9d08926378c792877f7ff4d200a8ed0000000000000001000000000000000100000000000000205a4b48d2d5c0deec9a967d4659defb7f8c12de581186bfae2c710f30835d378c000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb81659000000000000000c0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020724ffd0f25aa4e243d2c307552ed37381703107372320593eb3a4d313b319f910000000000000001000000000000000100000000000000207632194eaa79882c73a99557dd547ccd6fd120c5b43667fce4768d60ee466a6d000000000000000100000000000000000000000000000020266533c386eaecf62505c82a33fc748ed3dfb0dd1f1c3b6ef1c350f30907840f000000000000000100000000000000000000000000000020a07353c5029eac2f5fb14b7aaa839b9ff2b01dd6feeb51c341820462ab766306000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000000c0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000202ac7747cd68e0e8f386445c4b73e691738da5997681898b63d8a1fdd2f7318d500000000000000010000000000000001000000000000002048f8483f7e54318f5880730aa74c25c4d947a419c1457363fa11f33292ddacb10000000000000001000000000000000000000000000000203e730a9762014a0bc462be90ae606e5d47c72eb18f70e7e52e6fdbf0e6f0ca51000000000000000100000000000000000000000000000020a45ee5473875579efd498bb9c2b6715752587f3d8b2592b454ecfaa7a4333af7000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000c00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000204ac156fe78cb66cc11b0523329bdc9822cfc7ef36d86d1a58cac556bedacedaf00000000000000010000000000000001000000000000002010b0493443555dc67ee87c1bd8063b9e36aa14d724f309f7e8809f3a39a534e30000000000000001000000000000000000000000000000200f6629916e8ea9140c1e5fe82516b014e06c6a7ffb9a27dbe8073629cf7bcfd300000000000000010000000000000000000000000000002017851b1e9a70cbcc32eb47f7ecfae668e5855348fa541f9cd9cc78455c2f52ed00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000c00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000100000000000000201b0c51c2e6a457e77151cd2bd1a1fc5b8591639ceed4c78a361cff744e686314000000000000000100000000000000010000000000000020ed4f3a795008447bc60c29b44b4bebf37e71ce5d4696f2a4a703a2657c01dfc500000000000000010000000000000000000000000000002021e77df31f1eff95861984415a96b4b3e971e343430cde7965c4ffcd12acfcf9000000000000000100000000000000000000000000000020dab612d00eddc0f70596df141a7d854a89a2e881b62296a42c239a68553568e5000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e000000000000000c0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020547e4936c71929988cb4f1df9bc7e773529a27708006dacd48b89d487eac4d8b00000000000000010000000000000001000000000000002021bc05aef3a17c8a1d63eb499367fa51cd6c2c3b2716d1cd6b8c11c4a3b3722a0000000000000001000000000000000000000000000000204b3a8c95985e02c1091d8b74e359262a94d60b3baac08c1afc3d4c34b039a42b000000000000000100000000000000000000000000000020dd7d0f921f70b1c400e2053b21a89931a0d729e3164966f8cdf0a44bdd836801000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000240000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020c24fc0a3e994aa4053143723d1ff953730e09d80308264f57f5e25286c7dcad00000000000000001000000000000000100000000000000204f58496d9785dbfafadd8f41e3167831200b5d8065731cf35b12e0f683eb6aba0000000000000001000000000000000000000000000000204cb7b4fa816710180675ddbc955531f8a709d427faf5200cdc6737874e060a55000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000240000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020a92607495561c9eeccd26d9cc9dfab304f5bdec362795340e1d8d93b162ff7f5000000000000000100000000000000010000000000000020056c9a4c4349cd5028c19714d82d2521d603233c99689f9551773f4c5a1bb87400000000000000010000000000000000000000000000002037a9c624bdb25b1ee261b13411e9d6acc0d0e8c738496cff14dc43abe65c9d1f000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002400000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000204be0b5c554d14ed3ecb1a4698c54f322ec73fcaf89c1a0d0f2287a93c2b4d62b0000000000000001000000000000000100000000000000203decfa57715a83c44aa9af101d28b91339338f8855c0070ab1a2c91f7f429ec30000000000000001000000000000000000000000000000205d6c3e37441823be85bdf046e1379fc5587812c68dc08d8750f2f6bd76bf08a100000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002400000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020b9bcab614083e91d90644c8bf147843d720ff77d9f63f4ec3cf28e93fd482b18000000000000000100000000000000010000000000000020c197f4a8824867039691d253f3aabc0aeadbd548577f61e901b469ba8e81b348000000000000000100000000000000000000000000000020580e91949e50afae5b838c9689875cb0378f05c69de9eb4bbdfa87dc8eff62000000000000000001000000000000000100000000000000209576be5e5da6b2eb368bfdcbab0970717630f25877a6b9664c345d452e1514d800000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000240000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000201dd42fc16aa12a31fa90168725c897d861f7e36b8c27441380a55b1025146bcc000000000000000100000000000000010000000000000020a80602202c5ebf9b0347c9106ef91bf2c358dd05edffa7aa90f9b9bd47fd10500000000000000001000000000000000000000000000000207f46e4b2eb51c53f78fb1f6b5310d84183eb4d3898e8ddf3b3eb940fc2ad8f4400000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000080000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000001000000000000002042339e5d10b0a87ad4fe4a5593bdc05cee398a4a18ea7f97778781f69ff9d23900000000000000010000000000000001000000000000002014aa8e29f77d6a5fb881904df608256632c6604fbfb5192158e0932c0baf514500000000000000010000000000000001000000000000002093c99af014a3514bdcc84cdf0e72d42f20038a64dcba4071efdcce4cf6a76949000000000000000100000000000000000000000000000020a07353c5029eac2f5fb14b7aaa839b9ff2b01dd6feeb51c341820462ab766306000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000080000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020993982938287a52eaa295a8259c93c48d22125e67d985917441309ed46f8d051000000000000000100000000000000010000000000000020ff5c9eed6e4075d1dc3dad1312c9f0e4bcc23270345f8eea8c11a5b3619b24aa000000000000000100000000000000010000000000000020e23783733f2d245e0738ed8503ab8c6aef3aa526888e6b8dc670bfe0e224b8ff000000000000000100000000000000000000000000000020a45ee5473875579efd498bb9c2b6715752587f3d8b2592b454ecfaa7a4333af7000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000800000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb626512000000000000000600000000000000010000000000000001000000000000002019898700bf26a87ccaa60ae2e22476343b05ba5277b4aabd5310269c5066b3a000000000000000010000000000000001000000000000002025a5c0035306c82abd392465404dd2a5af6ad78f6c662e811fb28ddd99a85857000000000000000100000000000000010000000000000020f0fde6ec22a87dce3563e4a3872da6fb65e744b1d395bcb2f83911d9ac21f1af00000000000000010000000000000000000000000000002017851b1e9a70cbcc32eb47f7ecfae668e5855348fa541f9cd9cc78455c2f52ed00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000800000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020efcb1dbccdbb697cca27430b84af3a0549dce6cb8b08308384060acd9584df25000000000000000100000000000000010000000000000020f7920379a56fc6ea52b03411a80201764cd5c9b889cce60510d3d289564f02a1000000000000000100000000000000010000000000000020b9f47dcff780b5d8194c00a89264a3eb8f7603479d71eafc29a9074cf428d552000000000000000100000000000000000000000000000020dab612d00eddc0f70596df141a7d854a89a2e881b62296a42c239a68553568e5000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000080000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000209b2ceda6345229ee35c8f1d1ec5f70384bb152c4b78dd25b3534efa444f07101000000000000000100000000000000010000000000000020f9459a5f7f85273cda341000cf6866270e90827995d041cbba1ac42de920723c00000000000000010000000000000001000000000000002045bb9d506f74a19123d41a442d1de0fdfbaca183dfb2af0cc5027621a991b2b2000000000000000100000000000000000000000000000020dd7d0f921f70b1c400e2053b21a89931a0d729e3164966f8cdf0a44bdd836801000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb81659000000000000003d0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020c04f1fa9f3f965d8bece2549a2d58325a1b2514fb4e532926bff9d2574b86fb5000000000000000100000000000000010000000000000020fa95b871dc336a316326fbcb301108e4f714f2bd6e602d361ed24b034855b7490000000000000001000000000000000000000000000000206d638b48c620681d9ca1f3ca0b9269a4c587a473d6a7f7a9b87cd38c6b341a88000000000000000100000000000000000000000000000020228ad46578c60a8ae293c5203eb65e05045bb3651cc7f9dca5fdd52a9c021f9f000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000003d0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e000000000000000600000000000000010000000000000000000000000000002066ff1ec38e93c279868838ceb073cc1099f22a587203cee6c2d30bd5308ac995000000000000000100000000000000010000000000000020be85ed65a5a68087be9d2be76ba091a1b670d33ace117026a041765c69a90fda00000000000000010000000000000000000000000000002066f2ddc800c59423dc3e6cb06ec895471d3ffafc6e3140cc34d397e66f29e633000000000000000100000000000000000000000000000020d3fe0ac3f0592a168395476738f2d379d0581dd02807271399e479432d094ace000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003d00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb626512000000000000000600000000000000010000000000000000000000000000002085b03c835a69668615c33d712d17ec16cc032859deb4ff24b8cf4e7e3a7eaaed00000000000000010000000000000001000000000000002008aa7b0ca169d528158edb0c24743f0b68eacab6edcaa15ac970d1c5072772c3000000000000000100000000000000000000000000000020a72b7e194afd50ecaf1e33d2066f71486bac78d487b7fa0426a92e4a9ea310c9000000000000000100000000000000000000000000000020762aa6b8eaa622a60e5d82075304926867e1bfd72e6c9bc93d7ed5c083f0de9d00000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003d00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c8000000000000000600000000000000010000000000000000000000000000002071fce3dab75e3a384e0b67c215f8bd36207acdbf78d8e365c288e5405edde450000000000000000100000000000000010000000000000020fc02de609e9efa8ac9b0ee2de75181f281895b4d78139f99a656f6b2a5a9162a0000000000000001000000000000000000000000000000206889701554ee61bb802ca84af6486ce5e81ccd8180328c57ab9d2341a8808cc900000000000000010000000000000000000000000000002000a85bf2f2d421229c03bce75acc24a6f0df564cb379ef0e908c83449ac1caf40000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e1000000000000003d0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020d2c0aabf9e7e7d77e39ff416427987107c746e98e5f0cbb5acf12b7b3b27b5a30000000000000001000000000000000100000000000000200b795fddac1038a433c2c495ff393bde6b796f79e6ab17e827c1139be158bd2f000000000000000100000000000000000000000000000020a85d79547366d8e08f2cd889f73768075efa9a82bdcfd8eca2a0d03ec1c600af000000000000000100000000000000000000000000000020e275f0cac8a965b7c2d52bccf2fc2a08ba897eccce8ac56d94090bd934b9477a0000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000350000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000207c94017f1fb6147ba3e921f88be16fe2b5cefa8f7a8b23bc85945becaf18382a000000000000000100000000000000010000000000000020c362cab2e6c4dc6ea82bb6f4ded48e2f8eb7e24ef0fa0baea7e88c5951f51ecf000000000000000100000000000000000000000000000020cacc7d788bbdb1c4d5dbf47f8afd9ed9b975d2203ba1769a80caa833f3fbb946000000000000000100000000000000010000000000000020f006cf8352bbf180ccb81999dec2d0377abf32ec1a119242758d07bf00181499000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000350000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000000000000000000203e110ccc27f78d2053b055f013cd3746e7bb8e9db6260646682e83a67cf2080f0000000000000001000000000000000100000000000000204f8481d122e0655a5260d7d5ac27ab8f58be0e674599e596783b978e063f1e4d00000000000000010000000000000000000000000000002073a7127e76a6c5c3b45234b5814ccbf96b9d757a279114bbd33a663bd26d006e0000000000000001000000000000000100000000000000208d5b321bbfd951f9cb7659d22f534c96ff102f4c76a497617e5abb9dfa82d388000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003500000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000205c174de57ccd50a28402e5fe1ac358f81a0f7ae683941bf6d81ef41e7caf2cef000000000000000100000000000000010000000000000020121197ec56ab41beb7a2f051161dd268ccd5ab29e7d0b6fef8b7e1c7c912753d000000000000000100000000000000000000000000000020f4ad74e02cc77efb94d4fc24ec0d3cf9f818ea30d8cf64bbb281e90b63c46a2e00000000000000010000000000000001000000000000002077140c9519235b46e9281299155f5f67e417ff114e7ade36dfc35a5d9cd2e2d700000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003500000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000000000000000000020a87efb97f2db4047b7cfd391112aa21b8e772870e9b737515775d25692124ae7000000000000000100000000000000010000000000000020d6ae3741cdfc33d16daa119fa69659d1edfd428dd8fa17d9b0e9cbe608e111e00000000000000001000000000000000000000000000000202a006a9ce5990c918a9042f52712f1deb0b3840b72b18b347088583ab1f5f8d300000000000000010000000000000001000000000000002048e1d107862aaa17d2844c76f1581f63cd00be4647fb6249784c8e84d204a7d30000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000350000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000000000000000000208bfdca08db4332963e4f3e7a1f79f20c4c20d76672a80052bd13acab15a38546000000000000000100000000000000010000000000000020423d33b2be9113539696ac1ed9a134a1d7a1b4932f513b45a8fe1547e6621966000000000000000100000000000000000000000000000020f8cfa931b1b7944fb737694c4d6fc033dc405917f38330a742d6f02d503c8a1b00000000000000010000000000000001000000000000002072bbfd71e002ce04de2fac87c41cdb38dc917d8c5386b1ebdd6e02865da280340000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000010000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000207a810149b56beb7c711c05676c1721fd4595513d55341729b655fdf6bc7c6e9d000000000000000100000000000000010000000000000020c74fc5b5363c08b2d56ef59ce1523608b22b04f93198fc444fbc86eb42093a0b00000000000000010000000000000001000000000000002049b18f4c7c36a3e31f7aea5854ff3a4295357e9b4683efeb0cc263602c4cd838000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000010000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020756e52a4d940aed4b19471722db1b0f36cb3a58e6645651ae95985d0859986fe0000000000000001000000000000000100000000000000204e1424e71c26aac3d813020437cec6168eab7a8d75aad7109e865f34f3d82095000000000000000100000000000000010000000000000020c8ae564fce614307d01ae4e7ca514b4d438c025236d2f7c225df0916122c407a000000000000000100000000000000010000000000000020a5ba1e43e43faaed55a5a360b6818e780f5c7442a5977ec37c50292584a00e03000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000100000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020b2b00908d9b736c01784519b0884f9d47ad5d0521fb013eadc54c72234e9a0cf000000000000000100000000000000010000000000000020f1a1a812bf619f73c9cbf250be6b6627953604a3e339c59bdccc474788fb370a0000000000000001000000000000000100000000000000202d7e532bdad475f87cde4c2f0d86dfd080e22978cd3c4c8658c88cec2b0257b1000000000000000100000000000000010000000000000020dc0369b2684d24cbf4274ce023a89e3478b29bfaee34efd0a4da1dc660ba45de00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000100000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000000000000000000202d703b0f2dac82babade787a44c24dee732455802079b3585a1954c0d9f0bab600000000000000010000000000000001000000000000002051cddbbae06815e078a7cb86278880c9717f4dd37fcaae2d67a121881106aa820000000000000001000000000000000100000000000000202fae5685a1fb05d54b1bfdb2cba9f571c9a24db75580e22dffc6988ffc17820d000000000000000100000000000000010000000000000020e40fba18beb7a8bfcd3d0b191d6d10f4e3acec4778b08e3ae3c21ae92483fd86000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000010000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020c015d0794461e01805baa7f6791e97f3676505ee9a4e0a5e97308682ebdb2af7000000000000000100000000000000010000000000000020365c28a658836edeb78b6dd3b52b7d3d3588d7c226920a4c1a92f410c24d31bd0000000000000001000000000000000100000000000000206ba2588cc21b5cda24b2aa86f1ea326163ccc1d7e3f79cd11177546b0f9520e80000000000000001000000000000000100000000000000205a4b48d2d5c0deec9a967d4659defb7f8c12de581186bfae2c710f30835d378c000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb81659000000000000003c0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020273f7475a15fd0396c47b30cd7561abb6e08ae76b45a1e0e408916144079e75d000000000000000100000000000000010000000000000020fa95b871dc336a316326fbcb301108e4f714f2bd6e602d361ed24b034855b7490000000000000001000000000000000000000000000000206d638b48c620681d9ca1f3ca0b9269a4c587a473d6a7f7a9b87cd38c6b341a88000000000000000100000000000000000000000000000020228ad46578c60a8ae293c5203eb65e05045bb3651cc7f9dca5fdd52a9c021f9f000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000003c0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e000000000000000600000000000000010000000000000001000000000000002036962f5977ea5541488032e1cce4f44180c5480829010190ba9ae66a9ca2cd2d000000000000000100000000000000010000000000000020be85ed65a5a68087be9d2be76ba091a1b670d33ace117026a041765c69a90fda00000000000000010000000000000000000000000000002066f2ddc800c59423dc3e6cb06ec895471d3ffafc6e3140cc34d397e66f29e633000000000000000100000000000000000000000000000020d3fe0ac3f0592a168395476738f2d379d0581dd02807271399e479432d094ace000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003c00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000205a2fe717ccd1a37afc920d1f76fdde9b00b03821e87637dbc7ab2e32c4eb78da00000000000000010000000000000001000000000000002008aa7b0ca169d528158edb0c24743f0b68eacab6edcaa15ac970d1c5072772c3000000000000000100000000000000000000000000000020a72b7e194afd50ecaf1e33d2066f71486bac78d487b7fa0426a92e4a9ea310c9000000000000000100000000000000000000000000000020762aa6b8eaa622a60e5d82075304926867e1bfd72e6c9bc93d7ed5c083f0de9d00000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003c00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000100000000000000202dddbbbe19ddfb60f4efa66311ddfc4cb977874ab8db3212878a2b333802d1ec000000000000000100000000000000010000000000000020fc02de609e9efa8ac9b0ee2de75181f281895b4d78139f99a656f6b2a5a9162a0000000000000001000000000000000000000000000000206889701554ee61bb802ca84af6486ce5e81ccd8180328c57ab9d2341a8808cc900000000000000010000000000000000000000000000002000a85bf2f2d421229c03bce75acc24a6f0df564cb379ef0e908c83449ac1caf40000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e1000000000000003c0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000205b792c7369f97b8891deb0e8d0dbf32280fd9125a35c3bf0b3c02cb3b6090b630000000000000001000000000000000100000000000000200b795fddac1038a433c2c495ff393bde6b796f79e6ab17e827c1139be158bd2f000000000000000100000000000000000000000000000020a85d79547366d8e08f2cd889f73768075efa9a82bdcfd8eca2a0d03ec1c600af000000000000000100000000000000000000000000000020e275f0cac8a965b7c2d52bccf2fc2a08ba897eccce8ac56d94090bd934b9477a0000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000340000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020a51a1dc62392f295b15fe1655ecfe34f6022071edf8acb2dd4f0b8ebef99ec59000000000000000100000000000000010000000000000020c362cab2e6c4dc6ea82bb6f4ded48e2f8eb7e24ef0fa0baea7e88c5951f51ecf000000000000000100000000000000000000000000000020cacc7d788bbdb1c4d5dbf47f8afd9ed9b975d2203ba1769a80caa833f3fbb946000000000000000100000000000000010000000000000020f006cf8352bbf180ccb81999dec2d0377abf32ec1a119242758d07bf00181499000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000340000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000201a65187107853d80e0c2a9df94b775ee2882d9d528d05bf2d0dafca511d3ed2b0000000000000001000000000000000100000000000000204f8481d122e0655a5260d7d5ac27ab8f58be0e674599e596783b978e063f1e4d00000000000000010000000000000000000000000000002073a7127e76a6c5c3b45234b5814ccbf96b9d757a279114bbd33a663bd26d006e0000000000000001000000000000000100000000000000208d5b321bbfd951f9cb7659d22f534c96ff102f4c76a497617e5abb9dfa82d388000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003400000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000209725e35ee4c6df58b617aee3329c373f0e489a9026ce96fa222ea76aa2ac5e09000000000000000100000000000000010000000000000020121197ec56ab41beb7a2f051161dd268ccd5ab29e7d0b6fef8b7e1c7c912753d000000000000000100000000000000000000000000000020f4ad74e02cc77efb94d4fc24ec0d3cf9f818ea30d8cf64bbb281e90b63c46a2e00000000000000010000000000000001000000000000002077140c9519235b46e9281299155f5f67e417ff114e7ade36dfc35a5d9cd2e2d700000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003400000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c8000000000000000600000000000000010000000000000001000000000000002016b211f8e1c24460c33f79c50d34fdc5f21b4974075fefbf7e19d3ef3dd925d2000000000000000100000000000000010000000000000020d6ae3741cdfc33d16daa119fa69659d1edfd428dd8fa17d9b0e9cbe608e111e00000000000000001000000000000000000000000000000202a006a9ce5990c918a9042f52712f1deb0b3840b72b18b347088583ab1f5f8d300000000000000010000000000000001000000000000002048e1d107862aaa17d2844c76f1581f63cd00be4647fb6249784c8e84d204a7d30000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000340000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020bd3e2ffe3b5fc465e05ef39b4f6c0d1a48247d10a56154253ee5219438e761f6000000000000000100000000000000010000000000000020423d33b2be9113539696ac1ed9a134a1d7a1b4932f513b45a8fe1547e6621966000000000000000100000000000000000000000000000020f8cfa931b1b7944fb737694c4d6fc033dc405917f38330a742d6f02d503c8a1b00000000000000010000000000000001000000000000002072bbfd71e002ce04de2fac87c41cdb38dc917d8c5386b1ebdd6e02865da280340000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000230000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000000000000000000002024f3af1b1647bb312c015a48502bdcba582529e56718776c1cf05694f83b3cf10000000000000001000000000000000000000000000000204b06bb483c21112f9cdd7eff56256a5630233353d836a5d668685bfdc6a4041e000000000000000100000000000000010000000000000020d80cc5cdbb0ec297cddfda4fd988de76b705f83576117fb5ed10b48a9b959bb0000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000230000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e000000000000000600000000000000010000000000000000000000000000002026d903d0be54bf22c5189d1118bd93f6a98c383d8d88d66724bfe911e82b2b74000000000000000100000000000000000000000000000020393cccd066625747c7bb15e378554916665b267344c9bf3a1f1e239b4d3166fc00000000000000010000000000000001000000000000002072ecff12c730f10ff239ae5d5ec6e0ecd7a93d7c6f58e48faaf9efc69af68a03000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002300000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020315f848ff4d7d38fb384ae430ef99536792647667ccb2454dc022ec7a768aaf4000000000000000100000000000000000000000000000020d2096ab2fdbc4ed9fcb3f176b5554a872f0e907766b3c2d7a358a3e01f8fde260000000000000001000000000000000100000000000000209636be1e4b8abd68cb43b0274502fefa81dd44893b457dcd361701b81c119a5b00000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002300000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000000000000000000020ddfe152113a3bb968c9bfca59fcc1a6f2938bc90f8aa7bbf3dccccecfc179c3e0000000000000001000000000000000000000000000000203f56dd85e0a194ac8bc2d0dacc2bffefd23ba5e99d127148c082bdec01a7698d000000000000000100000000000000010000000000000020477f5dc159d908adca707dc48fabcb5e7760807f37a220b1e911898710933d820000000000000001000000000000000100000000000000209576be5e5da6b2eb368bfdcbab0970717630f25877a6b9664c345d452e1514d800000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000230000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000000000000000000209622e98ec4df3449c67d9e48114f130f446fae93b72f4bf53789536c86b6d631000000000000000100000000000000000000000000000020a58adfd2e024e06c922fbd6f0c6e29c0aa467b652272a9cd35196719e496cfd60000000000000001000000000000000100000000000000200df38a45fc387ce7388d7edbd245b965091614cd5a7aa1118bcbb22942e4bb9300000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000380000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000001000000000000002047d5bdc22d4cc9d2e30712eb6b535668edccd3c54e642dffa49675ed2e49beba000000000000000100000000000000010000000000000020314e9a848ea1d25911258d74b19f092dd444faf4da08b8c00a4f09adb9d4c623000000000000000100000000000000010000000000000020f8aa5e6a5b89d4a39d02bfe4f6c3c38deda3ec6df5ade3707863ea2453f03b73000000000000000100000000000000000000000000000020228ad46578c60a8ae293c5203eb65e05045bb3651cc7f9dca5fdd52a9c021f9f000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000380000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000203b312fb894342a3d1ab0f8d554c0b9119e28d879678de6f0ad8437f5e1b8064a000000000000000100000000000000010000000000000020d409436a38cce955294f3fbb27f4d65e7100e98f4d77022a741a6e99195a3afd0000000000000001000000000000000100000000000000206d13fd38b84ca4e30cf7ae1f472014bbebd3d7449bae674ad6a36fae582015a8000000000000000100000000000000000000000000000020d3fe0ac3f0592a168395476738f2d379d0581dd02807271399e479432d094ace000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003800000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000010000000000000020a3fbd11798caf887511151341254f395d67288c04269d5bfb729ced7e39ca6330000000000000001000000000000000100000000000000206140589f65135d68e263ae292fc0c763647ece71ba96e1bb1950b05093e479eb000000000000000100000000000000010000000000000020b6e03aa8283e3b21b7e5347673309cfecce4aa3d8d546f0c5e5fbac4333ddb46000000000000000100000000000000000000000000000020762aa6b8eaa622a60e5d82075304926867e1bfd72e6c9bc93d7ed5c083f0de9d00000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003800000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020d59a720ee0aa7fa3480384bef7b6157e084de0b7cfee7a05b174a87323f4bf2700000000000000010000000000000001000000000000002025e3c91b984175d866c1a7a0ab532b735a2322b380d5176f3f2898cdf3415d9f000000000000000100000000000000010000000000000020eb8e2038c836a712421ce8263fd03d719840bae9cbc574a061e776d5ef3f390800000000000000010000000000000000000000000000002000a85bf2f2d421229c03bce75acc24a6f0df564cb379ef0e908c83449ac1caf40000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000380000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020679054f608c563f3319164a76769160a401eeefa3236bfdbb8368a9d559dcb170000000000000001000000000000000100000000000000204759d348b50c669646f5f52d2f8caba0a0a3c3f6941e016904bddc6b141451910000000000000001000000000000000100000000000000200e45b6073a5229fe074383c2f531128eda5ffeefe8fde89eb48d7aa45a77a0f5000000000000000100000000000000000000000000000020e275f0cac8a965b7c2d52bccf2fc2a08ba897eccce8ac56d94090bd934b9477a0000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000010000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000207a810149b56beb7c711c05676c1721fd4595513d55341729b655fdf6bc7c6e9d000000000000000100000000000000010000000000000020c74fc5b5363c08b2d56ef59ce1523608b22b04f93198fc444fbc86eb42093a0b00000000000000010000000000000001000000000000002049b18f4c7c36a3e31f7aea5854ff3a4295357e9b4683efeb0cc263602c4cd838000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000010000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020756e52a4d940aed4b19471722db1b0f36cb3a58e6645651ae95985d0859986fe0000000000000001000000000000000100000000000000204e1424e71c26aac3d813020437cec6168eab7a8d75aad7109e865f34f3d82095000000000000000100000000000000010000000000000020c8ae564fce614307d01ae4e7ca514b4d438c025236d2f7c225df0916122c407a000000000000000100000000000000010000000000000020a5ba1e43e43faaed55a5a360b6818e780f5c7442a5977ec37c50292584a00e03000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000100000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020b2b00908d9b736c01784519b0884f9d47ad5d0521fb013eadc54c72234e9a0cf000000000000000100000000000000010000000000000020f1a1a812bf619f73c9cbf250be6b6627953604a3e339c59bdccc474788fb370a0000000000000001000000000000000100000000000000202d7e532bdad475f87cde4c2f0d86dfd080e22978cd3c4c8658c88cec2b0257b1000000000000000100000000000000010000000000000020dc0369b2684d24cbf4274ce023a89e3478b29bfaee34efd0a4da1dc660ba45de00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000100000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000000000000000000202d703b0f2dac82babade787a44c24dee732455802079b3585a1954c0d9f0bab600000000000000010000000000000001000000000000002051cddbbae06815e078a7cb86278880c9717f4dd37fcaae2d67a121881106aa820000000000000001000000000000000100000000000000202fae5685a1fb05d54b1bfdb2cba9f571c9a24db75580e22dffc6988ffc17820d000000000000000100000000000000010000000000000020e40fba18beb7a8bfcd3d0b191d6d10f4e3acec4778b08e3ae3c21ae92483fd86000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000010000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020c015d0794461e01805baa7f6791e97f3676505ee9a4e0a5e97308682ebdb2af7000000000000000100000000000000010000000000000020365c28a658836edeb78b6dd3b52b7d3d3588d7c226920a4c1a92f410c24d31bd0000000000000001000000000000000100000000000000206ba2588cc21b5cda24b2aa86f1ea326163ccc1d7e3f79cd11177546b0f9520e80000000000000001000000000000000100000000000000205a4b48d2d5c0deec9a967d4659defb7f8c12de581186bfae2c710f30835d378c000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000250000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000000000000000000002078ae3188ae8a7fa5036c69bcc6f6b6ac2a737d68f221d24a2b9be2c403a31f890000000000000001000000000000000100000000000000204f58496d9785dbfafadd8f41e3167831200b5d8065731cf35b12e0f683eb6aba0000000000000001000000000000000000000000000000204cb7b4fa816710180675ddbc955531f8a709d427faf5200cdc6737874e060a55000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000250000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e000000000000000600000000000000010000000000000000000000000000002018adf62c16c49037a919028f54b64de85326f5b2dd64be267a413db441bcecda000000000000000100000000000000010000000000000020056c9a4c4349cd5028c19714d82d2521d603233c99689f9551773f4c5a1bb87400000000000000010000000000000000000000000000002037a9c624bdb25b1ee261b13411e9d6acc0d0e8c738496cff14dc43abe65c9d1f000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002500000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000207dc81ce49e1b1df2f8fcc08b7356fc70192a5f60687461cb3c541bcf686e5a840000000000000001000000000000000100000000000000203decfa57715a83c44aa9af101d28b91339338f8855c0070ab1a2c91f7f429ec30000000000000001000000000000000000000000000000205d6c3e37441823be85bdf046e1379fc5587812c68dc08d8750f2f6bd76bf08a100000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002500000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000000000000000000020fc14ea81cdf469b2c3b971cb19a66445537058a9a44ee4d0d824b690404cc86e000000000000000100000000000000010000000000000020c197f4a8824867039691d253f3aabc0aeadbd548577f61e901b469ba8e81b348000000000000000100000000000000000000000000000020580e91949e50afae5b838c9689875cb0378f05c69de9eb4bbdfa87dc8eff62000000000000000001000000000000000100000000000000209576be5e5da6b2eb368bfdcbab0970717630f25877a6b9664c345d452e1514d800000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000250000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000000000000000000207f8f01e6b3f5a17ac295fe537986b11cff2ce290e66da7d3c4bfcf9f734bab14000000000000000100000000000000010000000000000020a80602202c5ebf9b0347c9106ef91bf2c358dd05edffa7aa90f9b9bd47fd10500000000000000001000000000000000000000000000000207f46e4b2eb51c53f78fb1f6b5310d84183eb4d3898e8ddf3b3eb940fc2ad8f4400000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000330000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000207344f3e7f6af9883c597d6e1f3a288c3ffc6aceb35435477812a31e3317c741900000000000000010000000000000000000000000000002005bd0da2469f2c21b3a29c3fb9805e1c169b17d94f8f17fb27b467cf42de28db0000000000000001000000000000000100000000000000205f3c867463c166fd9c0125885c51251e20c9b8d44030db7f8c699a0f747c2522000000000000000100000000000000010000000000000020f006cf8352bbf180ccb81999dec2d0377abf32ec1a119242758d07bf00181499000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000330000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020e531ed69121bdf5b18ac52087e7e317b94e4f8c8b4269cef4cc727a80b662a5500000000000000010000000000000000000000000000002065f01400d8c5267b0c9e1b41ef2836adc1616da98100daa5b32b8ba39b374ee10000000000000001000000000000000100000000000000201005d0456ea86f38d81d86687e8f11923a23456f3c2f3ff55d7c8acb9de64d690000000000000001000000000000000100000000000000208d5b321bbfd951f9cb7659d22f534c96ff102f4c76a497617e5abb9dfa82d388000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003300000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000206c87f4016feeab616e7bf0a7df62142470188914fe59e59df595763e4d47b9fe0000000000000001000000000000000000000000000000204c94dd0a0f2cb0cb59dcc9b4beb35fd98efaa2cc92cf08466d21549d33875f98000000000000000100000000000000010000000000000020c777ac306a941e7299543eb8e965674fbfd21d8db21d4e6efb2f426e941de1bf00000000000000010000000000000001000000000000002077140c9519235b46e9281299155f5f67e417ff114e7ade36dfc35a5d9cd2e2d700000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003300000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000000000000000000209c7c6e613712463c1c51f6e2e822dfe9bc4ba090afaf5c8c729901b5787db32c000000000000000100000000000000000000000000000020ab4c3f636a88e514ddaec7c6e1d4c81514983302354e8efc52833d305719ec230000000000000001000000000000000100000000000000208a6064188f59e346913e199ebd880503e24248cdea6f67e70edbb84b538e36bf00000000000000010000000000000001000000000000002048e1d107862aaa17d2844c76f1581f63cd00be4647fb6249784c8e84d204a7d30000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000330000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000000000000000000209b701f655210684798519c7d21d381389c5327f76961549a9e47317288332b210000000000000001000000000000000000000000000000204214f1b616812c5b41ff45c0d2acddfd991317d68de3ff1ed1900ce663f1230e0000000000000001000000000000000100000000000000200c26f3577db6f6fc8ca13505100d7c1f5e90088ce53af1ae45ddb54d2ffe746d00000000000000010000000000000001000000000000002072bbfd71e002ce04de2fac87c41cdb38dc917d8c5386b1ebdd6e02865da280340000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000300000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000209399208c484a329698fbd5fc3a1e5211545fe0819f858a740bdd001dd7359521000000000000000100000000000000010000000000000020b07fc62d561ac62b44d2a42d32b92ea5c1cc6bd1a2aaec7fc3bc3511de391ed20000000000000001000000000000000100000000000000205f3c867463c166fd9c0125885c51251e20c9b8d44030db7f8c699a0f747c2522000000000000000100000000000000010000000000000020f006cf8352bbf180ccb81999dec2d0377abf32ec1a119242758d07bf00181499000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000300000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000208a1cb832169c6172d08634e929dc75a3eb3fd45dd468f05da4b03fd04b87a012000000000000000100000000000000010000000000000020f4dd72267aad53529f4348fc166c5360db899801c1df5ddfd7c1626279eafdbe0000000000000001000000000000000100000000000000201005d0456ea86f38d81d86687e8f11923a23456f3c2f3ff55d7c8acb9de64d690000000000000001000000000000000100000000000000208d5b321bbfd951f9cb7659d22f534c96ff102f4c76a497617e5abb9dfa82d388000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003000000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000202eb98ec6ce2f42cb97679f5e5a34ad824dfdc8c0e485699d6467f2d893afad8f00000000000000010000000000000001000000000000002054718224361a6daea577b4c8ac8692eb3c575c6fa8dda2809f91df1663f010ea000000000000000100000000000000010000000000000020c777ac306a941e7299543eb8e965674fbfd21d8db21d4e6efb2f426e941de1bf00000000000000010000000000000001000000000000002077140c9519235b46e9281299155f5f67e417ff114e7ade36dfc35a5d9cd2e2d700000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003000000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000100000000000000201dda54f4d2bb667cedbd35f9351140244c940b9bb8c1e07c34faa5a6fb9989d8000000000000000100000000000000010000000000000020d5e88ffd88afa64b0c3121af7da31497014154deb20e99464118696d9efa5e9b0000000000000001000000000000000100000000000000208a6064188f59e346913e199ebd880503e24248cdea6f67e70edbb84b538e36bf00000000000000010000000000000001000000000000002048e1d107862aaa17d2844c76f1581f63cd00be4647fb6249784c8e84d204a7d30000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000300000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020e87dc95cd2d77b657a2fe755d131f1fc6c4d68f2b7774135dab1dff69ba9b7500000000000000001000000000000000100000000000000202ef95d28cf0a84661c817d8d3ca1cb00cf1caa4a9b834ef6d5eb0b1f02184b3c0000000000000001000000000000000100000000000000200c26f3577db6f6fc8ca13505100d7c1f5e90088ce53af1ae45ddb54d2ffe746d00000000000000010000000000000001000000000000002072bbfd71e002ce04de2fac87c41cdb38dc917d8c5386b1ebdd6e02865da280340000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000330000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000207344f3e7f6af9883c597d6e1f3a288c3ffc6aceb35435477812a31e3317c741900000000000000010000000000000000000000000000002005bd0da2469f2c21b3a29c3fb9805e1c169b17d94f8f17fb27b467cf42de28db0000000000000001000000000000000100000000000000205f3c867463c166fd9c0125885c51251e20c9b8d44030db7f8c699a0f747c2522000000000000000100000000000000010000000000000020f006cf8352bbf180ccb81999dec2d0377abf32ec1a119242758d07bf00181499000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000330000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020e531ed69121bdf5b18ac52087e7e317b94e4f8c8b4269cef4cc727a80b662a5500000000000000010000000000000000000000000000002065f01400d8c5267b0c9e1b41ef2836adc1616da98100daa5b32b8ba39b374ee10000000000000001000000000000000100000000000000201005d0456ea86f38d81d86687e8f11923a23456f3c2f3ff55d7c8acb9de64d690000000000000001000000000000000100000000000000208d5b321bbfd951f9cb7659d22f534c96ff102f4c76a497617e5abb9dfa82d388000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003300000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000206c87f4016feeab616e7bf0a7df62142470188914fe59e59df595763e4d47b9fe0000000000000001000000000000000000000000000000204c94dd0a0f2cb0cb59dcc9b4beb35fd98efaa2cc92cf08466d21549d33875f98000000000000000100000000000000010000000000000020c777ac306a941e7299543eb8e965674fbfd21d8db21d4e6efb2f426e941de1bf00000000000000010000000000000001000000000000002077140c9519235b46e9281299155f5f67e417ff114e7ade36dfc35a5d9cd2e2d700000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003300000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000000000000000000209c7c6e613712463c1c51f6e2e822dfe9bc4ba090afaf5c8c729901b5787db32c000000000000000100000000000000000000000000000020ab4c3f636a88e514ddaec7c6e1d4c81514983302354e8efc52833d305719ec230000000000000001000000000000000100000000000000208a6064188f59e346913e199ebd880503e24248cdea6f67e70edbb84b538e36bf00000000000000010000000000000001000000000000002048e1d107862aaa17d2844c76f1581f63cd00be4647fb6249784c8e84d204a7d30000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000330000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000000000000000000209b701f655210684798519c7d21d381389c5327f76961549a9e47317288332b210000000000000001000000000000000000000000000000204214f1b616812c5b41ff45c0d2acddfd991317d68de3ff1ed1900ce663f1230e0000000000000001000000000000000100000000000000200c26f3577db6f6fc8ca13505100d7c1f5e90088ce53af1ae45ddb54d2ffe746d00000000000000010000000000000001000000000000002072bbfd71e002ce04de2fac87c41cdb38dc917d8c5386b1ebdd6e02865da280340000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000210000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000208ce1cc949d66e29c2c057237e5763104b0ae5ea1586e63baefa724176f8b6022000000000000000100000000000000010000000000000020d3a8480b820bd6c782f5a7d8bc820d929996e9b8ab64d37789aa88140ba71654000000000000000100000000000000010000000000000020d80cc5cdbb0ec297cddfda4fd988de76b705f83576117fb5ed10b48a9b959bb0000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000210000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020664e0e862b31c615e1e57d6dcded9bf393ebbaacc99d0254d87cdda7f877d2540000000000000001000000000000000100000000000000200c04f15905ef31c5e7f95badee6ef48214fcec9a48dff3643ba924349c73daaf00000000000000010000000000000001000000000000002072ecff12c730f10ff239ae5d5ec6e0ecd7a93d7c6f58e48faaf9efc69af68a03000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002100000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020b30c05a30bda76fc1bf437fc950c818b4d0bbb12dda331a149e84851a5b2512c000000000000000100000000000000010000000000000020730dfd755e8bc4f3764cb6605b45ef36f2bf687e9a26d67efca88040d92455b70000000000000001000000000000000100000000000000209636be1e4b8abd68cb43b0274502fefa81dd44893b457dcd361701b81c119a5b00000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002100000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c8000000000000000600000000000000010000000000000000000000000000002046fac6a73e8bccd0e5adf631aa1d059f3165a71695159b70d7e97f814f6fcd28000000000000000100000000000000010000000000000020915a39315080ec6ed5cebeeb6b7dad131f8106659b1ee09e93e1bfae78eff704000000000000000100000000000000010000000000000020477f5dc159d908adca707dc48fabcb5e7760807f37a220b1e911898710933d820000000000000001000000000000000100000000000000209576be5e5da6b2eb368bfdcbab0970717630f25877a6b9664c345d452e1514d800000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000210000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d000000000000000600000000000000010000000000000000000000000000002069280c0ca4e25652715e70e30e873d0cee391df4455276e4338db0638372d77b00000000000000010000000000000001000000000000002053d45841276f047a813d87d7cc211dcf1d7057a623db3785c133608ed6d4499b0000000000000001000000000000000100000000000000200df38a45fc387ce7388d7edbd245b965091614cd5a7aa1118bcbb22942e4bb9300000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000100000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020c47d7bebc8c15f325d831bf339e2d3309c7c8d22969ec6186bc0568046427bd7000000000000000100000000000000010000000000000020640867ed08a3ecabe4859b1b36a9e35eed961ff22f4ecb3f19f23eafd153979300000000000000010000000000000001000000000000002038c257c4acc7ae148c5c9b4409c82130df8554a30c1e722962697197980c56fb000000000000000100000000000000010000000000000020f158609c6b12d3609bdf1c7797edb538f985fe8ac4171f066b1d7b9c43c7bc3b0000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000100000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000201ca4130b1b432206425cd549ec0a36397fe25e3902fc83e4fc886cd6f1950e7b000000000000000100000000000000010000000000000020630811e108ea35a320a27dbd41803a687d15b60a29050aeca50361d2714bf518000000000000000100000000000000010000000000000020d42e2ebd255e4349a7739a43dd3c719944636248abdb0bced6a610501e96e1b50000000000000001000000000000000100000000000000204dffb3cd723081a5601c700b71267e003c6301f69868c0143c1c7fb7f95e7282000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001000000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000202c428c9c3fa1a53d1b0e7ee50f01da261b77bab05c5f15d68ca27e3ad48349d5000000000000000100000000000000010000000000000020183a34534d82250369c5f2847e701d9341b41f119f4bfea1eb963c8a45731168000000000000000100000000000000010000000000000020fe4fd380a7b985c22fbf7e428d0522af491d32b3707fdee9600cc7816056f1200000000000000001000000000000000100000000000000205d9455d420eacea118c8dd606eeb03972280069211e33523e74b32b8a0a96ea70000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001000000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020985bb7ecbeb86f8f84bef68c141aefd03855e2e908da6ac0106ddcc00e15295d000000000000000100000000000000010000000000000020637b870a99da57ec6dae1de90c1943b37f34d8556acc557a05a65a8915fa9d88000000000000000100000000000000010000000000000020acbb53eff19327fdfe068637b56e56cf2ed3ea11c5ac335cac2a4c9e1b4ba555000000000000000100000000000000010000000000000020770adc9f5a476741bb8349e40e9edfd96156aacd1c6d9e3a586653b654b6aa5b000000000000000100000000000000000000000000000020f66cbef6ba027ee51a683e2c6bfc0ba5a9c25509bcbd67fc8c6ed57fed75d4ad000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000100000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020574ce443b2d1a579a226d2ef9963cddf83ae90ced338ea391881843fc95dddcc00000000000000010000000000000001000000000000002026c0e6ce4bf08b1f0ed800a51064fdf6f1f375dbc00c710881776df737596e59000000000000000100000000000000010000000000000020113e52f83563f3c9a8ca73087daed63db6e020f9b1908dae270f2d864860470b0000000000000001000000000000000100000000000000207558d367d7cb8046d18c333db9b72e09bb6459368f028b50b23b205b8ad03c430000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000390000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020f5f51df4455ffd83739dfaccef923a70df7a7cf5ea75b0be8ac453ab1ea59cd8000000000000000100000000000000010000000000000020314e9a848ea1d25911258d74b19f092dd444faf4da08b8c00a4f09adb9d4c623000000000000000100000000000000010000000000000020f8aa5e6a5b89d4a39d02bfe4f6c3c38deda3ec6df5ade3707863ea2453f03b73000000000000000100000000000000000000000000000020228ad46578c60a8ae293c5203eb65e05045bb3651cc7f9dca5fdd52a9c021f9f000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000390000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020c0be60ecb9302afcaf7e0974c2439749f493468a83262da26a96f1cc4c55cc73000000000000000100000000000000010000000000000020d409436a38cce955294f3fbb27f4d65e7100e98f4d77022a741a6e99195a3afd0000000000000001000000000000000100000000000000206d13fd38b84ca4e30cf7ae1f472014bbebd3d7449bae674ad6a36fae582015a8000000000000000100000000000000000000000000000020d3fe0ac3f0592a168395476738f2d379d0581dd02807271399e479432d094ace000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003900000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000205ac05e975b42062c31f9ed21b3fe8a6ddc0b04176c23fbf2924ac02c9a0be9e70000000000000001000000000000000100000000000000206140589f65135d68e263ae292fc0c763647ece71ba96e1bb1950b05093e479eb000000000000000100000000000000010000000000000020b6e03aa8283e3b21b7e5347673309cfecce4aa3d8d546f0c5e5fbac4333ddb46000000000000000100000000000000000000000000000020762aa6b8eaa622a60e5d82075304926867e1bfd72e6c9bc93d7ed5c083f0de9d00000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003900000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000000000000000000020a1d50e36dcacbeab3151583c0a0de6fcf3b158bca938c33d17bc65105aa4836e00000000000000010000000000000001000000000000002025e3c91b984175d866c1a7a0ab532b735a2322b380d5176f3f2898cdf3415d9f000000000000000100000000000000010000000000000020eb8e2038c836a712421ce8263fd03d719840bae9cbc574a061e776d5ef3f390800000000000000010000000000000000000000000000002000a85bf2f2d421229c03bce75acc24a6f0df564cb379ef0e908c83449ac1caf40000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000390000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020741795e4cfecca0b0fcd745a3aa59aa1b3c46d8f74bb8a06128fbf82dc802df80000000000000001000000000000000100000000000000204759d348b50c669646f5f52d2f8caba0a0a3c3f6941e016904bddc6b141451910000000000000001000000000000000100000000000000200e45b6073a5229fe074383c2f531128eda5ffeefe8fde89eb48d7aa45a77a0f5000000000000000100000000000000000000000000000020e275f0cac8a965b7c2d52bccf2fc2a08ba897eccce8ac56d94090bd934b9477a0000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000150000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020dffef2b6289ca42b6b10811bf557d0f0473b5148078520d4dd2c3c9e071683cf000000000000000100000000000000010000000000000020934ab4c6e53dcf48d451f6ed7e4af86b758dd8dba6533f4175725e2e5845afc500000000000000010000000000000000000000000000002026fce9aa21f1ef53b559859e81595b7ea9f4a7505a8a6c162b86994251034ce3000000000000000100000000000000010000000000000020f158609c6b12d3609bdf1c7797edb538f985fe8ac4171f066b1d7b9c43c7bc3b0000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000150000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020cec16a9d3b3f1de59cee51ed94138ed96cba68c2758159ba8a01bc52b516f72b0000000000000001000000000000000100000000000000202fdbde1dac25caf98829f59666c2f0534d2832bdb689d8ad96cbb9a3dbd4d45f0000000000000001000000000000000000000000000000205194f6462193600d656db86b96325bf516174c3105f29544d28f3b649cc7fa4c0000000000000001000000000000000100000000000000204dffb3cd723081a5601c700b71267e003c6301f69868c0143c1c7fb7f95e7282000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001500000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020f2de2f5fbaa2fe6e8591e83bc7d861f307c81e406ccc1a21b3787af696d241e7000000000000000100000000000000010000000000000020114537cddbda837705b4879cd66f5f4d256930dfee3834780cb134d8960e1304000000000000000100000000000000000000000000000020b4e0bb7d9649c1fbb4614e3f293bccd257330f04e0c3c1c27c3a9a4dcdec30130000000000000001000000000000000100000000000000205d9455d420eacea118c8dd606eeb03972280069211e33523e74b32b8a0a96ea70000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001500000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000000000000000000020c3174c1b88c696ebf436b05451cea169e316baa59fdc078665e7dbe65abebda100000000000000010000000000000001000000000000002011099e538c8737a24d756c6724727c5da6d771131318d85b8986cd3bc79b592b000000000000000100000000000000000000000000000020c28743b9fb456f5dab01de38dce8d1e72a393e786e47b640f11ef5dac00847bb000000000000000100000000000000010000000000000020770adc9f5a476741bb8349e40e9edfd96156aacd1c6d9e3a586653b654b6aa5b000000000000000100000000000000000000000000000020f66cbef6ba027ee51a683e2c6bfc0ba5a9c25509bcbd67fc8c6ed57fed75d4ad000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000150000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d000000000000000600000000000000010000000000000000000000000000002043e311e3ed17c50cd6418c4a642894593dd739e9a2bb8e77c841c12e04c9d211000000000000000100000000000000010000000000000020a8ed275fa0c7c748c26664fcd0da42650d5f6d40a8b66187b846df67bdc2a97f000000000000000100000000000000000000000000000020c9fa3b6551025a0b0a3ab22e52aa56603723150da92dcef931270f46982c5f720000000000000001000000000000000100000000000000207558d367d7cb8046d18c333db9b72e09bb6459368f028b50b23b205b8ad03c430000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000240000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020c24fc0a3e994aa4053143723d1ff953730e09d80308264f57f5e25286c7dcad00000000000000001000000000000000100000000000000204f58496d9785dbfafadd8f41e3167831200b5d8065731cf35b12e0f683eb6aba0000000000000001000000000000000000000000000000204cb7b4fa816710180675ddbc955531f8a709d427faf5200cdc6737874e060a55000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000240000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020a92607495561c9eeccd26d9cc9dfab304f5bdec362795340e1d8d93b162ff7f5000000000000000100000000000000010000000000000020056c9a4c4349cd5028c19714d82d2521d603233c99689f9551773f4c5a1bb87400000000000000010000000000000000000000000000002037a9c624bdb25b1ee261b13411e9d6acc0d0e8c738496cff14dc43abe65c9d1f000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002400000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000204be0b5c554d14ed3ecb1a4698c54f322ec73fcaf89c1a0d0f2287a93c2b4d62b0000000000000001000000000000000100000000000000203decfa57715a83c44aa9af101d28b91339338f8855c0070ab1a2c91f7f429ec30000000000000001000000000000000000000000000000205d6c3e37441823be85bdf046e1379fc5587812c68dc08d8750f2f6bd76bf08a100000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002400000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020b9bcab614083e91d90644c8bf147843d720ff77d9f63f4ec3cf28e93fd482b18000000000000000100000000000000010000000000000020c197f4a8824867039691d253f3aabc0aeadbd548577f61e901b469ba8e81b348000000000000000100000000000000000000000000000020580e91949e50afae5b838c9689875cb0378f05c69de9eb4bbdfa87dc8eff62000000000000000001000000000000000100000000000000209576be5e5da6b2eb368bfdcbab0970717630f25877a6b9664c345d452e1514d800000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000240000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000201dd42fc16aa12a31fa90168725c897d861f7e36b8c27441380a55b1025146bcc000000000000000100000000000000010000000000000020a80602202c5ebf9b0347c9106ef91bf2c358dd05edffa7aa90f9b9bd47fd10500000000000000001000000000000000000000000000000207f46e4b2eb51c53f78fb1f6b5310d84183eb4d3898e8ddf3b3eb940fc2ad8f4400000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c000000000000000050000000000000002d00000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a52000000000000000600000000000000010000000000000000000000000000002034378e2fb55078ca5da30a6fe91ba0dae39d33d2b95d1dd4fd4148d4be2a46de00000000000000010000000000000001000000000000002054bec82bc65e54f3129bc2dae46f394d92567e7676827cf517fd4c2047ce1b130000000000000001000000000000000000000000000000209795fad4596abb4752896d71b500cd50ba7b0d4824c458d03dc2b743fb2716790000000000000001000000000000000000000000000000205fd8d9df0c331cfa20f64999fe66f33de448a606f091fea0c4dc069567a12897000000000000000100000000000000010000000000000020e2ccf429fff0b34d816b93c8cf8b501b432d2c724ae13ebe64396e3bfb8af03f0000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff3000000000000000d0000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000005000000000000000100000000000000000000000000000020f1131acf7831f45368a2180dbbc59a2fb3398178fbdd5b4c2f2b4de497392a340000000000000001000000000000000100000000000000204d210ac66f1b41e1dacbe22f0f41d439bfb14246cb5535d4758108651602f946000000000000000100000000000000000000000000000020717aa0f0c0c84ee1c210f9323b5e8902641d8e0d5d949b130ee0b1969a3b54630000000000000001000000000000000000000000000000200f50117c3ce3dfc9bdb739106b82b69ec339192a4188f849239eebcce0a8f99d000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000001300000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a520000000000000006000000000000000100000000000000000000000000000020a900f8d69aa2a4e42f967d5fa5ef1ee59e90f63d3e95b16191cb0517acdeceac000000000000000100000000000000000000000000000020739e0129365f5b7b7fb33ae7df6a990819bed7110957ae52ba8109bd80a6aaa8000000000000000100000000000000010000000000000020dbe723c95d53e888025230e870e41af730db04f5a4fe5fdeb1444ecf96dac43800000000000000010000000000000001000000000000002092f224d4330575d99eabeae0d22592e4d2b1c69b7a59cef795c95717b5f99f98000000000000000100000000000000000000000000000020717cf27ef4c071050576ebf25c279dec9137f91ef5f75393f4be06096f35deca000000000000000100000000000000010000000000000020e23d8c06617ff978126b810a32d3a07f2882af6f1b32d03ceb9be224b40599db00000000000000130000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000005000000000000000100000000000000000000000000000020134db5284888ab7a3fc650757544b33fe5a392a2a8b382a25435ce1437dfacdb00000000000000010000000000000000000000000000002078188c0fd9d67ff25422ff3e634791c837bc9701979185b64ecb75340ddf79000000000000000001000000000000000100000000000000209a8a20fac17241a3ad71ba8d38361ad4431f3a6dcb0f48fcbb99bdfb4e6a82580000000000000001000000000000000100000000000000205e7c333b5ced6fbaaf857538f4dfda3c8f41285a1146441f22d1b85d3552f7f80000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000001400000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a520000000000000006000000000000000100000000000000010000000000000020843636fab1a56120bf7e8f545fa4c1f77282f7fb67f36ff219dbaa3e40d663d7000000000000000100000000000000010000000000000020d5fcdc79e96f738abb8bb277ed605b7b737c808b1f5340ac27c29b5aa8a30c69000000000000000100000000000000000000000000000020467e16c3f624841e187325144d484a0214f2a3f1d61a010347a7031fe49ba5db00000000000000010000000000000001000000000000002092f224d4330575d99eabeae0d22592e4d2b1c69b7a59cef795c95717b5f99f98000000000000000100000000000000000000000000000020717cf27ef4c071050576ebf25c279dec9137f91ef5f75393f4be06096f35deca000000000000000100000000000000010000000000000020e23d8c06617ff978126b810a32d3a07f2882af6f1b32d03ceb9be224b40599db00000000000000140000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d800000000000000050000000000000001000000000000000100000000000000204b6c0adaf43122fc51efffb126ff8dc4b62eb844e3bb96bb3ab89512df2081480000000000000001000000000000000100000000000000208ee407d3a705972308803e3ef706592c6c4dbc12b57ae325be89e06aa21756f4000000000000000100000000000000000000000000000020f314ba3bc4cdc6aa1771e68b46f4959495357441a69c83ffd997b68abd8736ce0000000000000001000000000000000100000000000000205e7c333b5ced6fbaaf857538f4dfda3c8f41285a1146441f22d1b85d3552f7f80000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000001900000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000000000000000000201b4ee497276f54facc111064a7458618a78f2945bde6cc8ced61886b2e81edc4000000000000000100000000000000010000000000000020cc7f88eec740d2ce6423e6aacd57ba8e3a0ae8f8d82a4dd2c590487e024b0d39000000000000000100000000000000010000000000000020a5951adbe54295995b321601efc70d1a6b54b1501ca822bd44b4bd9673215cf80000000000000001000000000000000000000000000000203366094542a9bb0027f595d72d4acf58ac651f8d8a396a3edccce48b7f1dc4f6000000000000000100000000000000000000000000000020717cf27ef4c071050576ebf25c279dec9137f91ef5f75393f4be06096f35deca000000000000000100000000000000010000000000000020e23d8c06617ff978126b810a32d3a07f2882af6f1b32d03ceb9be224b40599db00000000000000190000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d8000000000000000500000000000000010000000000000000000000000000002025e15e761f13338dcb65970e50346cd28655e87f0a50141bf9980de8b4052bb9000000000000000100000000000000010000000000000020c19e858aae236eec65be6125818e9b5fcb129062924e92f593a88d365e84e4f20000000000000001000000000000000100000000000000209aeb1ace25b05010556a2534a94e7ade975ac78d6e209d0eef28d26c71fb227f0000000000000001000000000000000000000000000000203380c8b7ddcd8cf40c958ac4a89037dfd1abfcddcca7d43760cd9d2a1925ae310000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000003e00000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000100000000000000208cfff48a2a87b77bb58c206afe9e5754d5bcba64ef4956a1e689927ae5fa9f390000000000000001000000000000000000000000000000202f2f5f5149430cee1516291f286d1cffef0d5b4e32fb27f15ddc098248c9b9ff000000000000000100000000000000000000000000000020fcd7a03b387505e7bd0397267678c37cc846481c7eb22b0b99b71c620942e529000000000000000100000000000000000000000000000020e5cdf01c705a4eb05bf7662c6aa117ad6b5ad8d82e1f146aa6324940d44b1779000000000000000100000000000000000000000000000020c485da17acf4a71ee4d9f6e69c25da20bab0524ccf1b0961e2f83e12c71d81110000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff3000000000000001e0000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d800000000000000050000000000000001000000000000000100000000000000208f52559a6b4ea42c2621e9b2e90fc81cdc467bce63e242c8f51ff38114aba16a00000000000000010000000000000000000000000000002003b94d966c6313e6583e5b2cd1d9aff0650e33553dacd0a69df0315832c607250000000000000001000000000000000000000000000000202a9eb3d5dcf6062684f2599075831e69e7b27433e5112076bf9a949e1c63a5f60000000000000001000000000000000000000000000000203380c8b7ddcd8cf40c958ac4a89037dfd1abfcddcca7d43760cd9d2a1925ae310000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000002400000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000100000000000000202fbb43f86a2045cb28a30f5df0c77ba4fbc9eb46bbc844434e755112fb3c61600000000000000001000000000000000100000000000000200e2053b2a7d29ee9112ecad513f15e9f85b7db29e74c57810cfc8d723e9678d800000000000000010000000000000000000000000000002033cea7f7501bde4541f3bb306a5cf7d1abb892582b69ef7fee1f059b220db5ea000000000000000100000000000000010000000000000020254f0f339cc7d05c9ffe26a48a9514580c0b4ea639e69198b29f17b60b0fcf79000000000000000100000000000000010000000000000020e2ccf429fff0b34d816b93c8cf8b501b432d2c724ae13ebe64396e3bfb8af03f0000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000040000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d8000000000000000500000000000000010000000000000001000000000000002063d92163774308f9f00e2432e954df872ea54239218040953b39e61792f0e08e00000000000000010000000000000001000000000000002017c47342b6615eb13e52578ce56bf523e5ed59d934d3aa869275198b0d0598cc000000000000000100000000000000000000000000000020f6d7c98e41f6386cda74fab86be9ef1624e94a1a8fd713610bee389c486a354600000000000000010000000000000001000000000000002079bb67cadbe7b316fc88dd4567dbe9ab632fd09d956d9007800eaf6ce51f07aa000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000003f00000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a520000000000000006000000000000000100000000000000000000000000000020b6acf652abf7ab0ca359c5563caa4e2287d2a5d47db36ec2202bf9737672f4760000000000000001000000000000000000000000000000202f2f5f5149430cee1516291f286d1cffef0d5b4e32fb27f15ddc098248c9b9ff000000000000000100000000000000000000000000000020fcd7a03b387505e7bd0397267678c37cc846481c7eb22b0b99b71c620942e529000000000000000100000000000000000000000000000020e5cdf01c705a4eb05bf7662c6aa117ad6b5ad8d82e1f146aa6324940d44b1779000000000000000100000000000000000000000000000020c485da17acf4a71ee4d9f6e69c25da20bab0524ccf1b0961e2f83e12c71d81110000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff3000000000000001f0000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d800000000000000050000000000000001000000000000000000000000000000205b8b87573e811bf2cec250726bf5602869ac680d82333414e85103e1f123e27400000000000000010000000000000000000000000000002003b94d966c6313e6583e5b2cd1d9aff0650e33553dacd0a69df0315832c607250000000000000001000000000000000000000000000000202a9eb3d5dcf6062684f2599075831e69e7b27433e5112076bf9a949e1c63a5f60000000000000001000000000000000000000000000000203380c8b7ddcd8cf40c958ac4a89037dfd1abfcddcca7d43760cd9d2a1925ae310000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000003400000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000100000000000000201518d3ba92b220fd4762298132f6a5a36e6d15de48d84d9da31f35e1b0b2c719000000000000000100000000000000010000000000000020b8e0b3d7bafd43fb584758afc4f1647cd28927a64f7e9fca9afeac0c04cc2e2c000000000000000100000000000000000000000000000020ad80e9adb163e8795ed0047d6a93464053698887bd2a3cf378faf4a4d380d4e000000000000000010000000000000001000000000000002084279b36d927c1e13d0a899ddfb927201990d578bf00f68098464ed390fd4f50000000000000000100000000000000000000000000000020c485da17acf4a71ee4d9f6e69c25da20bab0524ccf1b0961e2f83e12c71d81110000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000140000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d800000000000000050000000000000001000000000000000100000000000000204b6c0adaf43122fc51efffb126ff8dc4b62eb844e3bb96bb3ab89512df2081480000000000000001000000000000000100000000000000208ee407d3a705972308803e3ef706592c6c4dbc12b57ae325be89e06aa21756f4000000000000000100000000000000000000000000000020f314ba3bc4cdc6aa1771e68b46f4959495357441a69c83ffd997b68abd8736ce0000000000000001000000000000000100000000000000205e7c333b5ced6fbaaf857538f4dfda3c8f41285a1146441f22d1b85d3552f7f80000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000000900000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a520000000000000006000000000000000100000000000000000000000000000020ae62cb401a61607e89152d189ef5520ffa4ac2db7c9ca6d4845c2043eb0685b60000000000000001000000000000000100000000000000208d6b2d073a4b0a8925b3d996c1f657f15d4974edbfc8fd0158ad80905d092ce10000000000000001000000000000000100000000000000202a989c2625b73ed45435501341cf66be8d369e2049e8d882f455faf68ccbb6ad00000000000000010000000000000000000000000000002036dc00cee9075b11cf488d36d250e52feb6f9bb0f250e77ecf3cfa043b0c3012000000000000000100000000000000010000000000000020d2813f6f1bfd51edc460751a1055406bd25a2a0301eb25d9fd008a44f2c14eec000000000000000100000000000000010000000000000020e23d8c06617ff978126b810a32d3a07f2882af6f1b32d03ceb9be224b40599db00000000000000090000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d8000000000000000500000000000000010000000000000000000000000000002057e97218aa99311d30da486f48608ccbf70743154589bfcb9615e1689a021303000000000000000100000000000000010000000000000020f36cb583b7d8364b629b42d2c4683e8a6c59e8143f356b5c0ee72fe5638cc889000000000000000100000000000000010000000000000020b111f6a2f5c3e605b9b1ae29bcd9c4e69a2fdd6757f91ed0b745f2a4c832b0800000000000000001000000000000000000000000000000200f50117c3ce3dfc9bdb739106b82b69ec339192a4188f849239eebcce0a8f99d000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000001300000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a520000000000000006000000000000000100000000000000000000000000000020a900f8d69aa2a4e42f967d5fa5ef1ee59e90f63d3e95b16191cb0517acdeceac000000000000000100000000000000000000000000000020739e0129365f5b7b7fb33ae7df6a990819bed7110957ae52ba8109bd80a6aaa8000000000000000100000000000000010000000000000020dbe723c95d53e888025230e870e41af730db04f5a4fe5fdeb1444ecf96dac43800000000000000010000000000000001000000000000002092f224d4330575d99eabeae0d22592e4d2b1c69b7a59cef795c95717b5f99f98000000000000000100000000000000000000000000000020717cf27ef4c071050576ebf25c279dec9137f91ef5f75393f4be06096f35deca000000000000000100000000000000010000000000000020e23d8c06617ff978126b810a32d3a07f2882af6f1b32d03ceb9be224b40599db00000000000000130000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000005000000000000000100000000000000000000000000000020134db5284888ab7a3fc650757544b33fe5a392a2a8b382a25435ce1437dfacdb00000000000000010000000000000000000000000000002078188c0fd9d67ff25422ff3e634791c837bc9701979185b64ecb75340ddf79000000000000000001000000000000000100000000000000209a8a20fac17241a3ad71ba8d38361ad4431f3a6dcb0f48fcbb99bdfb4e6a82580000000000000001000000000000000100000000000000205e7c333b5ced6fbaaf857538f4dfda3c8f41285a1146441f22d1b85d3552f7f80000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000002800000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000100000000000000206e6a7c4caa7f9372b2a94d9a4778676268772c312546c1ec21e46cf17e178e7f0000000000000001000000000000000100000000000000209ab444c903943e968ce61bc9e4fc97e6a4048595739a4d14f76d4b53820ea824000000000000000100000000000000010000000000000020730d7a13da4f0168725c62ef54b8d973294fc6fdc65e7ba505336da7600aa4c00000000000000001000000000000000000000000000000205fd8d9df0c331cfa20f64999fe66f33de448a606f091fea0c4dc069567a12897000000000000000100000000000000010000000000000020e2ccf429fff0b34d816b93c8cf8b501b432d2c724ae13ebe64396e3bfb8af03f0000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000080000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d800000000000000050000000000000001000000000000000100000000000000205e19e52558da61a0a1a0e1e0b4884e18e944d55b37bf5995daaabf48eebda639000000000000000100000000000000010000000000000020f36cb583b7d8364b629b42d2c4683e8a6c59e8143f356b5c0ee72fe5638cc889000000000000000100000000000000010000000000000020b111f6a2f5c3e605b9b1ae29bcd9c4e69a2fdd6757f91ed0b745f2a4c832b0800000000000000001000000000000000000000000000000200f50117c3ce3dfc9bdb739106b82b69ec339192a4188f849239eebcce0a8f99d000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000002700000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a520000000000000006000000000000000100000000000000000000000000000020e2a2e3af59109bc9c5d40a1a66bb176e50c5e27d94d26e2076c1d8edb7416a9e00000000000000010000000000000000000000000000002023430c412f000ad0bcd2f99b81d49e936fef59bad9c25859c55019ec77545af000000000000000010000000000000000000000000000002033cea7f7501bde4541f3bb306a5cf7d1abb892582b69ef7fee1f059b220db5ea000000000000000100000000000000010000000000000020254f0f339cc7d05c9ffe26a48a9514580c0b4ea639e69198b29f17b60b0fcf79000000000000000100000000000000010000000000000020e2ccf429fff0b34d816b93c8cf8b501b432d2c724ae13ebe64396e3bfb8af03f0000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000070000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d800000000000000050000000000000001000000000000000000000000000000203d467c25ad853000d33007729d1d9e1fce027aa2a21f28e3bfa5c34e189839d9000000000000000100000000000000000000000000000020d638ae86675ac5b8acda0e9e6bbaf7a4097a53a60b84c1ddc92dc7a8bdb36bee000000000000000100000000000000000000000000000020f6d7c98e41f6386cda74fab86be9ef1624e94a1a8fd713610bee389c486a354600000000000000010000000000000001000000000000002079bb67cadbe7b316fc88dd4567dbe9ab632fd09d956d9007800eaf6ce51f07aa000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000001e00000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000100000000000000206ebae3fc6f5fd5b27039d2e721ea73edad27ddbb07d808ea06f48547f2965ddf0000000000000001000000000000000000000000000000204a1e2b9840f673c230a1186266d392afe32745abc71e6024c5e5672acfa525b1000000000000000100000000000000000000000000000020f693a7b1859b9a2622999b0191e9268f0431d46fa0c6393715eddcfb90b8a51c0000000000000001000000000000000000000000000000203366094542a9bb0027f595d72d4acf58ac651f8d8a396a3edccce48b7f1dc4f6000000000000000100000000000000000000000000000020717cf27ef4c071050576ebf25c279dec9137f91ef5f75393f4be06096f35deca000000000000000100000000000000010000000000000020e23d8c06617ff978126b810a32d3a07f2882af6f1b32d03ceb9be224b40599db000000000000001e0000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d800000000000000050000000000000001000000000000000100000000000000208f52559a6b4ea42c2621e9b2e90fc81cdc467bce63e242c8f51ff38114aba16a00000000000000010000000000000000000000000000002003b94d966c6313e6583e5b2cd1d9aff0650e33553dacd0a69df0315832c607250000000000000001000000000000000000000000000000202a9eb3d5dcf6062684f2599075831e69e7b27433e5112076bf9a949e1c63a5f60000000000000001000000000000000000000000000000203380c8b7ddcd8cf40c958ac4a89037dfd1abfcddcca7d43760cd9d2a1925ae310000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000003900000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000000000000000000209a7eb060f49f51b55498aae9e574b1687d4b65de1561f544b01f1dfa42e0f00500000000000000010000000000000001000000000000002029123ec1253c9a7988e18d82dbc6b567895ffa96a667ecf43edb6c459bfd580c00000000000000010000000000000001000000000000002063892ea07d238f9010c6c9add415f903820c0493fd6e8053f83e947d4d3c8000000000000000000100000000000000000000000000000020e5cdf01c705a4eb05bf7662c6aa117ad6b5ad8d82e1f146aa6324940d44b1779000000000000000100000000000000000000000000000020c485da17acf4a71ee4d9f6e69c25da20bab0524ccf1b0961e2f83e12c71d81110000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000190000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d8000000000000000500000000000000010000000000000000000000000000002025e15e761f13338dcb65970e50346cd28655e87f0a50141bf9980de8b4052bb9000000000000000100000000000000010000000000000020c19e858aae236eec65be6125818e9b5fcb129062924e92f593a88d365e84e4f20000000000000001000000000000000100000000000000209aeb1ace25b05010556a2534a94e7ade975ac78d6e209d0eef28d26c71fb227f0000000000000001000000000000000000000000000000203380c8b7ddcd8cf40c958ac4a89037dfd1abfcddcca7d43760cd9d2a1925ae310000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000002500000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a520000000000000006000000000000000100000000000000000000000000000020aad435f86a49bdd209464a7467ba8862786a120b4e5dbedd4e30454e28094a890000000000000001000000000000000100000000000000200e2053b2a7d29ee9112ecad513f15e9f85b7db29e74c57810cfc8d723e9678d800000000000000010000000000000000000000000000002033cea7f7501bde4541f3bb306a5cf7d1abb892582b69ef7fee1f059b220db5ea000000000000000100000000000000010000000000000020254f0f339cc7d05c9ffe26a48a9514580c0b4ea639e69198b29f17b60b0fcf79000000000000000100000000000000010000000000000020e2ccf429fff0b34d816b93c8cf8b501b432d2c724ae13ebe64396e3bfb8af03f0000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000050000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000005000000000000000100000000000000000000000000000020c96ff27465e07bcc23e2348c3d4adb82d8eb34cbedc306e88145b9f2865fc15f00000000000000010000000000000001000000000000002017c47342b6615eb13e52578ce56bf523e5ed59d934d3aa869275198b0d0598cc000000000000000100000000000000000000000000000020f6d7c98e41f6386cda74fab86be9ef1624e94a1a8fd713610bee389c486a354600000000000000010000000000000001000000000000002079bb67cadbe7b316fc88dd4567dbe9ab632fd09d956d9007800eaf6ce51f07aa000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000002a00000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000100000000000000205ca3b0ca582f65162c6a999974c5628ce5c6279fb8c9382d0c5e9b823468cdc800000000000000010000000000000000000000000000002093831ded572bae0895268c752ba81e8ac1aa2ad6dd74af73d9d06f12134cd078000000000000000100000000000000010000000000000020730d7a13da4f0168725c62ef54b8d973294fc6fdc65e7ba505336da7600aa4c00000000000000001000000000000000000000000000000205fd8d9df0c331cfa20f64999fe66f33de448a606f091fea0c4dc069567a12897000000000000000100000000000000010000000000000020e2ccf429fff0b34d816b93c8cf8b501b432d2c724ae13ebe64396e3bfb8af03f0000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff3000000000000000a0000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000005000000000000000100000000000000010000000000000020d9b5ad58050c8afe38335c5d3e8f8ab8c11d6046220cd89f0e0f70c1f7feba1f0000000000000001000000000000000000000000000000205a84f7a3d2763c5410a9c6689db8ad79cd35c4065f80573d947872ea4a0afd65000000000000000100000000000000010000000000000020b111f6a2f5c3e605b9b1ae29bcd9c4e69a2fdd6757f91ed0b745f2a4c832b0800000000000000001000000000000000000000000000000200f50117c3ce3dfc9bdb739106b82b69ec339192a4188f849239eebcce0a8f99d000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000000400000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000100000000000000201c5cb540902c8f52d1402e4a3bdd11c6bfe1b92b29577bb66be8763a68927a780000000000000001000000000000000100000000000000205cf14d0c0a22d1559a1eeaaabc15c8cf1b04bc1bb06dc2595bc8839508b6fe2f00000000000000010000000000000000000000000000002077d3d120f3a7146b82980826e7021808c63ef22365835fda5471961847a9cb0c0000000000000001000000000000000100000000000000202266d1df8708f81bd60142f013fc86b5a660ea5e8f6ecc94f497f677e3f086b3000000000000000100000000000000010000000000000020d2813f6f1bfd51edc460751a1055406bd25a2a0301eb25d9fd008a44f2c14eec000000000000000100000000000000010000000000000020e23d8c06617ff978126b810a32d3a07f2882af6f1b32d03ceb9be224b40599db00000000000000040000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d8000000000000000500000000000000010000000000000001000000000000002063d92163774308f9f00e2432e954df872ea54239218040953b39e61792f0e08e00000000000000010000000000000001000000000000002017c47342b6615eb13e52578ce56bf523e5ed59d934d3aa869275198b0d0598cc000000000000000100000000000000000000000000000020f6d7c98e41f6386cda74fab86be9ef1624e94a1a8fd713610bee389c486a354600000000000000010000000000000001000000000000002079bb67cadbe7b316fc88dd4567dbe9ab632fd09d956d9007800eaf6ce51f07aa000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000000700000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a52000000000000000600000000000000010000000000000000000000000000002038448219ee34c99646c435026adec9d681a458312637403a0819515d32f3046a000000000000000100000000000000000000000000000020f9c8becd54b7e4ae6e9a17fddaf333d894d935be57d7323c14eee61f43233eef00000000000000010000000000000000000000000000002077d3d120f3a7146b82980826e7021808c63ef22365835fda5471961847a9cb0c0000000000000001000000000000000100000000000000202266d1df8708f81bd60142f013fc86b5a660ea5e8f6ecc94f497f677e3f086b3000000000000000100000000000000010000000000000020d2813f6f1bfd51edc460751a1055406bd25a2a0301eb25d9fd008a44f2c14eec000000000000000100000000000000010000000000000020e23d8c06617ff978126b810a32d3a07f2882af6f1b32d03ceb9be224b40599db00000000000000070000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d800000000000000050000000000000001000000000000000000000000000000203d467c25ad853000d33007729d1d9e1fce027aa2a21f28e3bfa5c34e189839d9000000000000000100000000000000000000000000000020d638ae86675ac5b8acda0e9e6bbaf7a4097a53a60b84c1ddc92dc7a8bdb36bee000000000000000100000000000000000000000000000020f6d7c98e41f6386cda74fab86be9ef1624e94a1a8fd713610bee389c486a354600000000000000010000000000000001000000000000002079bb67cadbe7b316fc88dd4567dbe9ab632fd09d956d9007800eaf6ce51f07aa000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000002600000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000100000000000000202df13d86ed04542c170101daaabb66c20d12e15905ee086de44a3cfcd0949dde00000000000000010000000000000000000000000000002023430c412f000ad0bcd2f99b81d49e936fef59bad9c25859c55019ec77545af000000000000000010000000000000000000000000000002033cea7f7501bde4541f3bb306a5cf7d1abb892582b69ef7fee1f059b220db5ea000000000000000100000000000000010000000000000020254f0f339cc7d05c9ffe26a48a9514580c0b4ea639e69198b29f17b60b0fcf79000000000000000100000000000000010000000000000020e2ccf429fff0b34d816b93c8cf8b501b432d2c724ae13ebe64396e3bfb8af03f0000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000060000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000005000000000000000100000000000000010000000000000020e9dc9e39644b58b891696f63c510e6decff6bd4a3b91ab9664dbd3d26c8f5f2a000000000000000100000000000000000000000000000020d638ae86675ac5b8acda0e9e6bbaf7a4097a53a60b84c1ddc92dc7a8bdb36bee000000000000000100000000000000000000000000000020f6d7c98e41f6386cda74fab86be9ef1624e94a1a8fd713610bee389c486a354600000000000000010000000000000001000000000000002079bb67cadbe7b316fc88dd4567dbe9ab632fd09d956d9007800eaf6ce51f07aa000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000000500000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000000000000000000203214a122955c04f91afa587b74cc612254c9fbf651a892be5d71c53ab2320d4d0000000000000001000000000000000100000000000000205cf14d0c0a22d1559a1eeaaabc15c8cf1b04bc1bb06dc2595bc8839508b6fe2f00000000000000010000000000000000000000000000002077d3d120f3a7146b82980826e7021808c63ef22365835fda5471961847a9cb0c0000000000000001000000000000000100000000000000202266d1df8708f81bd60142f013fc86b5a660ea5e8f6ecc94f497f677e3f086b3000000000000000100000000000000010000000000000020d2813f6f1bfd51edc460751a1055406bd25a2a0301eb25d9fd008a44f2c14eec000000000000000100000000000000010000000000000020e23d8c06617ff978126b810a32d3a07f2882af6f1b32d03ceb9be224b40599db00000000000000050000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000005000000000000000100000000000000000000000000000020c96ff27465e07bcc23e2348c3d4adb82d8eb34cbedc306e88145b9f2865fc15f00000000000000010000000000000001000000000000002017c47342b6615eb13e52578ce56bf523e5ed59d934d3aa869275198b0d0598cc000000000000000100000000000000000000000000000020f6d7c98e41f6386cda74fab86be9ef1624e94a1a8fd713610bee389c486a354600000000000000010000000000000001000000000000002079bb67cadbe7b316fc88dd4567dbe9ab632fd09d956d9007800eaf6ce51f07aa000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000000c00000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a520000000000000006000000000000000100000000000000010000000000000020b318f7575f924f63fc96b063f56099a9451d4f64be759b5baa837daa6d1a76a9000000000000000100000000000000010000000000000020f19956ff46e47aceb570c5652c18bc5ca72b2be49c751ecdd95c23c2aa299cf70000000000000001000000000000000000000000000000204bab1d1d1225804799ecddb6756ce8315eaaf51d8fd525b6d677642d32df5baf00000000000000010000000000000000000000000000002036dc00cee9075b11cf488d36d250e52feb6f9bb0f250e77ecf3cfa043b0c3012000000000000000100000000000000010000000000000020d2813f6f1bfd51edc460751a1055406bd25a2a0301eb25d9fd008a44f2c14eec000000000000000100000000000000010000000000000020e23d8c06617ff978126b810a32d3a07f2882af6f1b32d03ceb9be224b40599db000000000000000c0000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d800000000000000050000000000000001000000000000000100000000000000209848bdc89484c41edf966285f29ec02fcee30e1a87219fd665fa701ac7334ec20000000000000001000000000000000100000000000000204d210ac66f1b41e1dacbe22f0f41d439bfb14246cb5535d4758108651602f946000000000000000100000000000000000000000000000020717aa0f0c0c84ee1c210f9323b5e8902641d8e0d5d949b130ee0b1969a3b54630000000000000001000000000000000000000000000000200f50117c3ce3dfc9bdb739106b82b69ec339192a4188f849239eebcce0a8f99d000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000002400000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000100000000000000202fbb43f86a2045cb28a30f5df0c77ba4fbc9eb46bbc844434e755112fb3c61600000000000000001000000000000000100000000000000200e2053b2a7d29ee9112ecad513f15e9f85b7db29e74c57810cfc8d723e9678d800000000000000010000000000000000000000000000002033cea7f7501bde4541f3bb306a5cf7d1abb892582b69ef7fee1f059b220db5ea000000000000000100000000000000010000000000000020254f0f339cc7d05c9ffe26a48a9514580c0b4ea639e69198b29f17b60b0fcf79000000000000000100000000000000010000000000000020e2ccf429fff0b34d816b93c8cf8b501b432d2c724ae13ebe64396e3bfb8af03f0000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000040000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d8000000000000000500000000000000010000000000000001000000000000002063d92163774308f9f00e2432e954df872ea54239218040953b39e61792f0e08e00000000000000010000000000000001000000000000002017c47342b6615eb13e52578ce56bf523e5ed59d934d3aa869275198b0d0598cc000000000000000100000000000000000000000000000020f6d7c98e41f6386cda74fab86be9ef1624e94a1a8fd713610bee389c486a354600000000000000010000000000000001000000000000002079bb67cadbe7b316fc88dd4567dbe9ab632fd09d956d9007800eaf6ce51f07aa000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000000800000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a52000000000000000600000000000000010000000000000001000000000000002038ca415b7c04239d2bd2d2c34b76356c05dc02c2c474de15d794460511fcc4f10000000000000001000000000000000100000000000000208d6b2d073a4b0a8925b3d996c1f657f15d4974edbfc8fd0158ad80905d092ce10000000000000001000000000000000100000000000000202a989c2625b73ed45435501341cf66be8d369e2049e8d882f455faf68ccbb6ad00000000000000010000000000000000000000000000002036dc00cee9075b11cf488d36d250e52feb6f9bb0f250e77ecf3cfa043b0c3012000000000000000100000000000000010000000000000020d2813f6f1bfd51edc460751a1055406bd25a2a0301eb25d9fd008a44f2c14eec000000000000000100000000000000010000000000000020e23d8c06617ff978126b810a32d3a07f2882af6f1b32d03ceb9be224b40599db00000000000000080000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d800000000000000050000000000000001000000000000000100000000000000205e19e52558da61a0a1a0e1e0b4884e18e944d55b37bf5995daaabf48eebda639000000000000000100000000000000010000000000000020f36cb583b7d8364b629b42d2c4683e8a6c59e8143f356b5c0ee72fe5638cc889000000000000000100000000000000010000000000000020b111f6a2f5c3e605b9b1ae29bcd9c4e69a2fdd6757f91ed0b745f2a4c832b0800000000000000001000000000000000000000000000000200f50117c3ce3dfc9bdb739106b82b69ec339192a4188f849239eebcce0a8f99d000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000003d00000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000000000000000000206253bd7ca45ef876b62e38536da369cca33ab710aed2b2ceba899c2d9e0d72860000000000000001000000000000000100000000000000201b92b2f5d2976e09b930b3dad4a806261e306b0276925ed164483cea8e66f82f000000000000000100000000000000000000000000000020fcd7a03b387505e7bd0397267678c37cc846481c7eb22b0b99b71c620942e529000000000000000100000000000000000000000000000020e5cdf01c705a4eb05bf7662c6aa117ad6b5ad8d82e1f146aa6324940d44b1779000000000000000100000000000000000000000000000020c485da17acf4a71ee4d9f6e69c25da20bab0524ccf1b0961e2f83e12c71d81110000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff3000000000000001d0000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d8000000000000000500000000000000010000000000000000000000000000002006c69d618b41ab442a3e0635d3379cf82ff957e0cb6a7763715887ea1fd42488000000000000000100000000000000010000000000000020e6ef04326bf1c7dc3b1930457d20cb5523eb2e802b2481621ed660a612ae58b90000000000000001000000000000000000000000000000202a9eb3d5dcf6062684f2599075831e69e7b27433e5112076bf9a949e1c63a5f60000000000000001000000000000000000000000000000203380c8b7ddcd8cf40c958ac4a89037dfd1abfcddcca7d43760cd9d2a1925ae310000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000003500000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000000000000000000201140d7cf85b16e9573d6eb5e6a10bec91a9d79e78e73991b10afc0765f13d50b000000000000000100000000000000010000000000000020b8e0b3d7bafd43fb584758afc4f1647cd28927a64f7e9fca9afeac0c04cc2e2c000000000000000100000000000000000000000000000020ad80e9adb163e8795ed0047d6a93464053698887bd2a3cf378faf4a4d380d4e000000000000000010000000000000001000000000000002084279b36d927c1e13d0a899ddfb927201990d578bf00f68098464ed390fd4f50000000000000000100000000000000000000000000000020c485da17acf4a71ee4d9f6e69c25da20bab0524ccf1b0961e2f83e12c71d81110000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000150000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000005000000000000000100000000000000000000000000000020c3108ce1bb34dd4c37fdec882b2bee1710577e9eaf80b5430889471d0ed58ca40000000000000001000000000000000100000000000000208ee407d3a705972308803e3ef706592c6c4dbc12b57ae325be89e06aa21756f4000000000000000100000000000000000000000000000020f314ba3bc4cdc6aa1771e68b46f4959495357441a69c83ffd997b68abd8736ce0000000000000001000000000000000100000000000000205e7c333b5ced6fbaaf857538f4dfda3c8f41285a1146441f22d1b85d3552f7f80000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000000100000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000000000000000000207bc2ab74c220c32fecc9f671db6adc533781b334a1210a1439c6ccfb8786e183000000000000000100000000000000010000000000000020354a792919e0f709c3a3075fb651425844e7f8bf79c04cb1192ac983cb62002f000000000000000100000000000000010000000000000020df4a1dbd4bcd072f004864ea3fd3b118b713d0640138eab1541be09548aa149d0000000000000001000000000000000100000000000000202266d1df8708f81bd60142f013fc86b5a660ea5e8f6ecc94f497f677e3f086b3000000000000000100000000000000010000000000000020d2813f6f1bfd51edc460751a1055406bd25a2a0301eb25d9fd008a44f2c14eec000000000000000100000000000000010000000000000020e23d8c06617ff978126b810a32d3a07f2882af6f1b32d03ceb9be224b40599db00000000000000010000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000005000000000000000100000000000000000000000000000020d4cb811aa6e1e9bcd9ae792b92e896529826ab4d40a6ab26448a9b675e43d3d70000000000000001000000000000000100000000000000202f9805493db688ef4d6dbd58ef8e6d6c8ca1bc67650efce1eccf17b114d04313000000000000000100000000000000010000000000000020e0583fa0fc62603284083a11e62f9d700f13c65c55c9f5fd9382e6f0714060cd00000000000000010000000000000001000000000000002079bb67cadbe7b316fc88dd4567dbe9ab632fd09d956d9007800eaf6ce51f07aa000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000003c00000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000100000000000000205e492b5373347bfff2421b8c9d467b61e862fcb9b389b19c49066652596a05490000000000000001000000000000000100000000000000201b92b2f5d2976e09b930b3dad4a806261e306b0276925ed164483cea8e66f82f000000000000000100000000000000000000000000000020fcd7a03b387505e7bd0397267678c37cc846481c7eb22b0b99b71c620942e529000000000000000100000000000000000000000000000020e5cdf01c705a4eb05bf7662c6aa117ad6b5ad8d82e1f146aa6324940d44b1779000000000000000100000000000000000000000000000020c485da17acf4a71ee4d9f6e69c25da20bab0524ccf1b0961e2f83e12c71d81110000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff3000000000000001c0000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000005000000000000000100000000000000010000000000000020044f90bf13c4d14559d0ae845670f49881216cdeb16d893a841a145c1c151e6f000000000000000100000000000000010000000000000020e6ef04326bf1c7dc3b1930457d20cb5523eb2e802b2481621ed660a612ae58b90000000000000001000000000000000000000000000000202a9eb3d5dcf6062684f2599075831e69e7b27433e5112076bf9a949e1c63a5f60000000000000001000000000000000000000000000000203380c8b7ddcd8cf40c958ac4a89037dfd1abfcddcca7d43760cd9d2a1925ae310000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000003400000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000100000000000000201518d3ba92b220fd4762298132f6a5a36e6d15de48d84d9da31f35e1b0b2c719000000000000000100000000000000010000000000000020b8e0b3d7bafd43fb584758afc4f1647cd28927a64f7e9fca9afeac0c04cc2e2c000000000000000100000000000000000000000000000020ad80e9adb163e8795ed0047d6a93464053698887bd2a3cf378faf4a4d380d4e000000000000000010000000000000001000000000000002084279b36d927c1e13d0a899ddfb927201990d578bf00f68098464ed390fd4f50000000000000000100000000000000000000000000000020c485da17acf4a71ee4d9f6e69c25da20bab0524ccf1b0961e2f83e12c71d81110000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000140000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d800000000000000050000000000000001000000000000000100000000000000204b6c0adaf43122fc51efffb126ff8dc4b62eb844e3bb96bb3ab89512df2081480000000000000001000000000000000100000000000000208ee407d3a705972308803e3ef706592c6c4dbc12b57ae325be89e06aa21756f4000000000000000100000000000000000000000000000020f314ba3bc4cdc6aa1771e68b46f4959495357441a69c83ffd997b68abd8736ce0000000000000001000000000000000100000000000000205e7c333b5ced6fbaaf857538f4dfda3c8f41285a1146441f22d1b85d3552f7f80000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000002300000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a52000000000000000600000000000000010000000000000000000000000000002079637d516d5ae7dfa560e0534abe1e5704d6a95320ff37fea4359aac8239809f0000000000000001000000000000000000000000000000209198a37dd49f1d8d1b34865d68edee965db03cffc3245f7b6d83a947698e94b30000000000000001000000000000000100000000000000205e80078f6c99aefb85050dc5d528e94bba2943c5502fc7592d8a484c2a3cdf2c000000000000000100000000000000010000000000000020254f0f339cc7d05c9ffe26a48a9514580c0b4ea639e69198b29f17b60b0fcf79000000000000000100000000000000010000000000000020e2ccf429fff0b34d816b93c8cf8b501b432d2c724ae13ebe64396e3bfb8af03f0000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000030000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000005000000000000000100000000000000000000000000000020a2f16a0dc709011bdfdb1b8287616b6a925cfa6ba473e983759bde127551cad90000000000000001000000000000000000000000000000204b4bc4316e1c1f018e8ad5acfb786fd40f1c5421112a43733ce53bd6d22656d3000000000000000100000000000000010000000000000020e0583fa0fc62603284083a11e62f9d700f13c65c55c9f5fd9382e6f0714060cd00000000000000010000000000000001000000000000002079bb67cadbe7b316fc88dd4567dbe9ab632fd09d956d9007800eaf6ce51f07aa000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000003800000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a520000000000000006000000000000000100000000000000010000000000000020c9962b74ba6d12e01ee71993ee8b33d677355137e6234744c45a0ed32afaf50400000000000000010000000000000001000000000000002029123ec1253c9a7988e18d82dbc6b567895ffa96a667ecf43edb6c459bfd580c00000000000000010000000000000001000000000000002063892ea07d238f9010c6c9add415f903820c0493fd6e8053f83e947d4d3c8000000000000000000100000000000000000000000000000020e5cdf01c705a4eb05bf7662c6aa117ad6b5ad8d82e1f146aa6324940d44b1779000000000000000100000000000000000000000000000020c485da17acf4a71ee4d9f6e69c25da20bab0524ccf1b0961e2f83e12c71d81110000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000180000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d800000000000000050000000000000001000000000000000100000000000000201f64fc21496be28b8f5e18c208a860fb42974bfeafed47e6669cb6107aa3232a000000000000000100000000000000010000000000000020c19e858aae236eec65be6125818e9b5fcb129062924e92f593a88d365e84e4f20000000000000001000000000000000100000000000000209aeb1ace25b05010556a2534a94e7ade975ac78d6e209d0eef28d26c71fb227f0000000000000001000000000000000000000000000000203380c8b7ddcd8cf40c958ac4a89037dfd1abfcddcca7d43760cd9d2a1925ae310000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000000100000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000000000000000000207bc2ab74c220c32fecc9f671db6adc533781b334a1210a1439c6ccfb8786e183000000000000000100000000000000010000000000000020354a792919e0f709c3a3075fb651425844e7f8bf79c04cb1192ac983cb62002f000000000000000100000000000000010000000000000020df4a1dbd4bcd072f004864ea3fd3b118b713d0640138eab1541be09548aa149d0000000000000001000000000000000100000000000000202266d1df8708f81bd60142f013fc86b5a660ea5e8f6ecc94f497f677e3f086b3000000000000000100000000000000010000000000000020d2813f6f1bfd51edc460751a1055406bd25a2a0301eb25d9fd008a44f2c14eec000000000000000100000000000000010000000000000020e23d8c06617ff978126b810a32d3a07f2882af6f1b32d03ceb9be224b40599db00000000000000010000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000005000000000000000100000000000000000000000000000020d4cb811aa6e1e9bcd9ae792b92e896529826ab4d40a6ab26448a9b675e43d3d70000000000000001000000000000000100000000000000202f9805493db688ef4d6dbd58ef8e6d6c8ca1bc67650efce1eccf17b114d04313000000000000000100000000000000010000000000000020e0583fa0fc62603284083a11e62f9d700f13c65c55c9f5fd9382e6f0714060cd00000000000000010000000000000001000000000000002079bb67cadbe7b316fc88dd4567dbe9ab632fd09d956d9007800eaf6ce51f07aa000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000002500000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a520000000000000006000000000000000100000000000000000000000000000020aad435f86a49bdd209464a7467ba8862786a120b4e5dbedd4e30454e28094a890000000000000001000000000000000100000000000000200e2053b2a7d29ee9112ecad513f15e9f85b7db29e74c57810cfc8d723e9678d800000000000000010000000000000000000000000000002033cea7f7501bde4541f3bb306a5cf7d1abb892582b69ef7fee1f059b220db5ea000000000000000100000000000000010000000000000020254f0f339cc7d05c9ffe26a48a9514580c0b4ea639e69198b29f17b60b0fcf79000000000000000100000000000000010000000000000020e2ccf429fff0b34d816b93c8cf8b501b432d2c724ae13ebe64396e3bfb8af03f0000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000050000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000005000000000000000100000000000000000000000000000020c96ff27465e07bcc23e2348c3d4adb82d8eb34cbedc306e88145b9f2865fc15f00000000000000010000000000000001000000000000002017c47342b6615eb13e52578ce56bf523e5ed59d934d3aa869275198b0d0598cc000000000000000100000000000000000000000000000020f6d7c98e41f6386cda74fab86be9ef1624e94a1a8fd713610bee389c486a354600000000000000010000000000000001000000000000002079bb67cadbe7b316fc88dd4567dbe9ab632fd09d956d9007800eaf6ce51f07aa000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000003300000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a52000000000000000600000000000000010000000000000000000000000000002042ce3bbda4fa0ba78418a854e9b092d17d2df31ed28daba91ed993851409ba9e0000000000000001000000000000000000000000000000204a6c82e62260282dbf672d51d1d25c39f6b0fb858dc3154a3e45c6a90c86bcd40000000000000001000000000000000100000000000000207988d5ca06dee1ff83661265fcfb1bbb7a052029308c3a4f4029c0819cf4e14d00000000000000010000000000000001000000000000002084279b36d927c1e13d0a899ddfb927201990d578bf00f68098464ed390fd4f50000000000000000100000000000000000000000000000020c485da17acf4a71ee4d9f6e69c25da20bab0524ccf1b0961e2f83e12c71d81110000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000130000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000005000000000000000100000000000000000000000000000020134db5284888ab7a3fc650757544b33fe5a392a2a8b382a25435ce1437dfacdb00000000000000010000000000000000000000000000002078188c0fd9d67ff25422ff3e634791c837bc9701979185b64ecb75340ddf79000000000000000001000000000000000100000000000000209a8a20fac17241a3ad71ba8d38361ad4431f3a6dcb0f48fcbb99bdfb4e6a82580000000000000001000000000000000100000000000000205e7c333b5ced6fbaaf857538f4dfda3c8f41285a1146441f22d1b85d3552f7f80000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000003000000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a520000000000000006000000000000000100000000000000010000000000000020784503751b0898a30a6d0383e9db26c0916614ca9497e4d4f30a34c1e5588a5f0000000000000001000000000000000100000000000000205b0a604d2a3c346b0fa6ae2d3def636ed7bf89cb9805d64cdda7064d5705a5a60000000000000001000000000000000100000000000000207988d5ca06dee1ff83661265fcfb1bbb7a052029308c3a4f4029c0819cf4e14d00000000000000010000000000000001000000000000002084279b36d927c1e13d0a899ddfb927201990d578bf00f68098464ed390fd4f50000000000000000100000000000000000000000000000020c485da17acf4a71ee4d9f6e69c25da20bab0524ccf1b0961e2f83e12c71d81110000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000100000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d800000000000000050000000000000001000000000000000100000000000000200ef7f4db5b8d528ef32021426933f849b362dbfa54459a4ad7a7a7bfd7c20f230000000000000001000000000000000100000000000000205288be97d15e57ab4a41e0bb7df42a2a286721d41010927910a04c1fb7972c1d0000000000000001000000000000000100000000000000209a8a20fac17241a3ad71ba8d38361ad4431f3a6dcb0f48fcbb99bdfb4e6a82580000000000000001000000000000000100000000000000205e7c333b5ced6fbaaf857538f4dfda3c8f41285a1146441f22d1b85d3552f7f80000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000003300000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a52000000000000000600000000000000010000000000000000000000000000002042ce3bbda4fa0ba78418a854e9b092d17d2df31ed28daba91ed993851409ba9e0000000000000001000000000000000000000000000000204a6c82e62260282dbf672d51d1d25c39f6b0fb858dc3154a3e45c6a90c86bcd40000000000000001000000000000000100000000000000207988d5ca06dee1ff83661265fcfb1bbb7a052029308c3a4f4029c0819cf4e14d00000000000000010000000000000001000000000000002084279b36d927c1e13d0a899ddfb927201990d578bf00f68098464ed390fd4f50000000000000000100000000000000000000000000000020c485da17acf4a71ee4d9f6e69c25da20bab0524ccf1b0961e2f83e12c71d81110000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000130000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000005000000000000000100000000000000000000000000000020134db5284888ab7a3fc650757544b33fe5a392a2a8b382a25435ce1437dfacdb00000000000000010000000000000000000000000000002078188c0fd9d67ff25422ff3e634791c837bc9701979185b64ecb75340ddf79000000000000000001000000000000000100000000000000209a8a20fac17241a3ad71ba8d38361ad4431f3a6dcb0f48fcbb99bdfb4e6a82580000000000000001000000000000000100000000000000205e7c333b5ced6fbaaf857538f4dfda3c8f41285a1146441f22d1b85d3552f7f80000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000002100000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000000000000000000207b76c018c077a4ce45e5783453caa03ffb5648b2c87082c775580eef17893cfd000000000000000100000000000000010000000000000020e9a606cd38a94b42330d291671a2972f93d93016feb3cfef278e291b2cb87dd70000000000000001000000000000000100000000000000205e80078f6c99aefb85050dc5d528e94bba2943c5502fc7592d8a484c2a3cdf2c000000000000000100000000000000010000000000000020254f0f339cc7d05c9ffe26a48a9514580c0b4ea639e69198b29f17b60b0fcf79000000000000000100000000000000010000000000000020e2ccf429fff0b34d816b93c8cf8b501b432d2c724ae13ebe64396e3bfb8af03f0000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000010000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000005000000000000000100000000000000000000000000000020d4cb811aa6e1e9bcd9ae792b92e896529826ab4d40a6ab26448a9b675e43d3d70000000000000001000000000000000100000000000000202f9805493db688ef4d6dbd58ef8e6d6c8ca1bc67650efce1eccf17b114d04313000000000000000100000000000000010000000000000020e0583fa0fc62603284083a11e62f9d700f13c65c55c9f5fd9382e6f0714060cd00000000000000010000000000000001000000000000002079bb67cadbe7b316fc88dd4567dbe9ab632fd09d956d9007800eaf6ce51f07aa000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000001000000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000100000000000000204d9dfb0e0e171169d1007b77dc56f53151761e3ee807395aeeb6d33b69d68ebb000000000000000100000000000000010000000000000020d014bcc9776f76484319336426e22b822516727884603894d7dec602add277df000000000000000100000000000000010000000000000020dbe723c95d53e888025230e870e41af730db04f5a4fe5fdeb1444ecf96dac43800000000000000010000000000000001000000000000002092f224d4330575d99eabeae0d22592e4d2b1c69b7a59cef795c95717b5f99f98000000000000000100000000000000000000000000000020717cf27ef4c071050576ebf25c279dec9137f91ef5f75393f4be06096f35deca000000000000000100000000000000010000000000000020e23d8c06617ff978126b810a32d3a07f2882af6f1b32d03ceb9be224b40599db00000000000000100000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d800000000000000050000000000000001000000000000000100000000000000200ef7f4db5b8d528ef32021426933f849b362dbfa54459a4ad7a7a7bfd7c20f230000000000000001000000000000000100000000000000205288be97d15e57ab4a41e0bb7df42a2a286721d41010927910a04c1fb7972c1d0000000000000001000000000000000100000000000000209a8a20fac17241a3ad71ba8d38361ad4431f3a6dcb0f48fcbb99bdfb4e6a82580000000000000001000000000000000100000000000000205e7c333b5ced6fbaaf857538f4dfda3c8f41285a1146441f22d1b85d3552f7f80000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000003900000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000000000000000000209a7eb060f49f51b55498aae9e574b1687d4b65de1561f544b01f1dfa42e0f00500000000000000010000000000000001000000000000002029123ec1253c9a7988e18d82dbc6b567895ffa96a667ecf43edb6c459bfd580c00000000000000010000000000000001000000000000002063892ea07d238f9010c6c9add415f903820c0493fd6e8053f83e947d4d3c8000000000000000000100000000000000000000000000000020e5cdf01c705a4eb05bf7662c6aa117ad6b5ad8d82e1f146aa6324940d44b1779000000000000000100000000000000000000000000000020c485da17acf4a71ee4d9f6e69c25da20bab0524ccf1b0961e2f83e12c71d81110000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000190000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d8000000000000000500000000000000010000000000000000000000000000002025e15e761f13338dcb65970e50346cd28655e87f0a50141bf9980de8b4052bb9000000000000000100000000000000010000000000000020c19e858aae236eec65be6125818e9b5fcb129062924e92f593a88d365e84e4f20000000000000001000000000000000100000000000000209aeb1ace25b05010556a2534a94e7ade975ac78d6e209d0eef28d26c71fb227f0000000000000001000000000000000000000000000000203380c8b7ddcd8cf40c958ac4a89037dfd1abfcddcca7d43760cd9d2a1925ae310000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000001500000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000000000000000000200303792884ab3f8fe013aea3a7d8bec09318fde908e47010295cbe43305d9dfa000000000000000100000000000000010000000000000020d5fcdc79e96f738abb8bb277ed605b7b737c808b1f5340ac27c29b5aa8a30c69000000000000000100000000000000000000000000000020467e16c3f624841e187325144d484a0214f2a3f1d61a010347a7031fe49ba5db00000000000000010000000000000001000000000000002092f224d4330575d99eabeae0d22592e4d2b1c69b7a59cef795c95717b5f99f98000000000000000100000000000000000000000000000020717cf27ef4c071050576ebf25c279dec9137f91ef5f75393f4be06096f35deca000000000000000100000000000000010000000000000020e23d8c06617ff978126b810a32d3a07f2882af6f1b32d03ceb9be224b40599db00000000000000150000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000005000000000000000100000000000000000000000000000020c3108ce1bb34dd4c37fdec882b2bee1710577e9eaf80b5430889471d0ed58ca40000000000000001000000000000000100000000000000208ee407d3a705972308803e3ef706592c6c4dbc12b57ae325be89e06aa21756f4000000000000000100000000000000000000000000000020f314ba3bc4cdc6aa1771e68b46f4959495357441a69c83ffd997b68abd8736ce0000000000000001000000000000000100000000000000205e7c333b5ced6fbaaf857538f4dfda3c8f41285a1146441f22d1b85d3552f7f80000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000002400000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000100000000000000202fbb43f86a2045cb28a30f5df0c77ba4fbc9eb46bbc844434e755112fb3c61600000000000000001000000000000000100000000000000200e2053b2a7d29ee9112ecad513f15e9f85b7db29e74c57810cfc8d723e9678d800000000000000010000000000000000000000000000002033cea7f7501bde4541f3bb306a5cf7d1abb892582b69ef7fee1f059b220db5ea000000000000000100000000000000010000000000000020254f0f339cc7d05c9ffe26a48a9514580c0b4ea639e69198b29f17b60b0fcf79000000000000000100000000000000010000000000000020e2ccf429fff0b34d816b93c8cf8b501b432d2c724ae13ebe64396e3bfb8af03f0000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000040000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d8000000000000000500000000000000010000000000000001000000000000002063d92163774308f9f00e2432e954df872ea54239218040953b39e61792f0e08e00000000000000010000000000000001000000000000002017c47342b6615eb13e52578ce56bf523e5ed59d934d3aa869275198b0d0598cc000000000000000100000000000000000000000000000020f6d7c98e41f6386cda74fab86be9ef1624e94a1a8fd713610bee389c486a354600000000000000010000000000000001000000000000002079bb67cadbe7b316fc88dd4567dbe9ab632fd09d956d9007800eaf6ce51f07aa000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f80000000000000002364733d64bfcbf1b307ac37e34b2f81698637851d170ccc19729db20a3100926324ffb7ec2f17a8a0864b6170ecf9b67b08137a3d0e30f1e2d921e4a30ec5b29643e70b2 \ No newline at end of file diff --git a/contracts/modular/circuit6/commitment.sol b/contracts/modular/circuit6/commitment.sol index 2bf8f3c..15e4f23 100644 --- a/contracts/modular/circuit6/commitment.sol +++ b/contracts/modular/circuit6/commitment.sol @@ -26,7 +26,7 @@ import "../../containers/merkle_verifier.sol"; import "../../algebra/polynomial.sol"; import "hardhat/console.sol"; -contract modular_commitment_scheme_circuit6 { +library modular_commitment_scheme_circuit6 { uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; uint64 constant batches_num = 5; uint256 constant r = 2; @@ -40,7 +40,7 @@ contract modular_commitment_scheme_circuit6 { uint256 constant lookup_point = 5; bytes constant points_ids = hex"020202020202020204040404040402020001"; uint256 constant omega = 199455130043951077247265858823823987229570523056509026484192158816218200659; - uint256 _etha; + uint256 constant _etha = 6008563573403509417202325099986068091355178794944813546249543044368318679621; struct commitment_state{ bytes leaf_data; @@ -293,10 +293,11 @@ contract modular_commitment_scheme_circuit6 { function initialize( bytes32 tr_state_before - ) external returns(bytes32 tr_state_after){ + ) internal returns(bytes32 tr_state_after){ types.transcript_data memory tr_state; tr_state.current_challenge = tr_state_before; - _etha = transcript.get_field_challenge(tr_state, modulus); + uint256 etha = transcript.get_field_challenge(tr_state, modulus); + require(etha == _etha, "Wrong etha"); tr_state_after = tr_state.current_challenge; } @@ -419,7 +420,7 @@ contract modular_commitment_scheme_circuit6 { uint256[5] memory commitments, uint256 challenge, bytes32 transcript_state - ) external view returns (bool){ + ) internal view returns (bool){ types.transcript_data memory tr_state; tr_state.current_challenge = transcript_state; commitment_state memory state; diff --git a/contracts/modular/circuit6/gate_argument.sol b/contracts/modular/circuit6/gate_argument.sol index 21584bf..0bc849a 100644 --- a/contracts/modular/circuit6/gate_argument.sol +++ b/contracts/modular/circuit6/gate_argument.sol @@ -22,6 +22,7 @@ import "../../basic_marshalling.sol"; import "../../interfaces/modular_gate_argument.sol"; import "hardhat/console.sol"; + contract modular_gate_argument_circuit6 is IGateArgument{ uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; @@ -30,10 +31,9 @@ contract modular_gate_argument_circuit6 is IGateArgument{ bytes calldata blob, uint256 theta ) external view returns (uint256 F){ - uint256 sum; - uint256 gate; - uint256 prod; - uint256 theta_acc=1; + uint256 theta_acc = 1; + uint256 eval; + } } \ No newline at end of file diff --git a/contracts/modular/circuit6/gate_libs_list.json b/contracts/modular/circuit6/gate_libs_list.json new file mode 100644 index 0000000..0d4f101 --- /dev/null +++ b/contracts/modular/circuit6/gate_libs_list.json @@ -0,0 +1,2 @@ +[ +] diff --git a/contracts/modular/circuit6/gate_linked_libs.json b/contracts/modular/circuit6/gate_linked_libs.json new file mode 100644 index 0000000..0d4f101 --- /dev/null +++ b/contracts/modular/circuit6/gate_linked_libs.json @@ -0,0 +1,2 @@ +[ +] diff --git a/contracts/modular/circuit6/lookup_argument.sol b/contracts/modular/circuit6/lookup_argument.sol index 36c9292..811589f 100644 --- a/contracts/modular/circuit6/lookup_argument.sol +++ b/contracts/modular/circuit6/lookup_argument.sol @@ -25,8 +25,8 @@ import "../../cryptography/transcript.sol"; import "../../interfaces/modular_lookup_argument.sol"; import "hardhat/console.sol"; -//contract modular_lookup_argument_circuit6 is ILookupArgument{ -library modular_lookup_argument_circuit6{ +contract modular_lookup_argument_circuit6 is ILookupArgument{ +//library modular_lookup_argument_circuit6{ uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; uint8 constant tables = 1; uint8 constant sorted_columns = 7; @@ -59,7 +59,7 @@ library modular_lookup_argument_circuit6{ uint256 lookup_commitment, uint256 l0, bytes32 tr_state_before // It's better than transfer all random values - ) internal view returns (uint256[4] memory F, bytes32 tr_state_after){ + ) external view returns (uint256[4] memory F, bytes32 tr_state_after){ bytes calldata blob = zvalues[0xc0:]; lookup_state memory state; state.V_L_value = basic_marshalling.get_uint256_be(zvalues, 0xc0 + 608 + 0x40); diff --git a/contracts/modular/circuit6/modular_verifier.sol b/contracts/modular/circuit6/modular_verifier.sol index b24eb9c..9f5b9e6 100644 --- a/contracts/modular/circuit6/modular_verifier.sol +++ b/contracts/modular/circuit6/modular_verifier.sol @@ -66,8 +66,9 @@ contract modular_verifier_circuit6 is IModularVerifier{ _gate_argument_address = gate_argument_address; _commitment_contract_address = commitment_contract_address; - ICommitmentScheme commitment_scheme = ICommitmentScheme(commitment_contract_address); - tr_state.current_challenge = commitment_scheme.initialize(tr_state.current_challenge); +// ICommitmentScheme commitment_scheme = ICommitmentScheme(commitment_contract_address); +// tr_state.current_challenge = commitment_scheme.initialize(tr_state.current_challenge); + tr_state.current_challenge = modular_commitment_scheme_circuit6.initialize(tr_state.current_challenge); transcript_state = tr_state.current_challenge; } @@ -119,9 +120,11 @@ contract modular_verifier_circuit6 is IModularVerifier{ { uint256 lookup_offset = table_offset + quotient_offset + uint256(uint8(blob[z_offset + basic_marshalling.get_length(blob, z_offset - 0x8) *0x20 + 0xf])) * 0x20; uint256[4] memory lookup_argument; - (lookup_argument, tr_state.current_challenge) = modular_lookup_argument_circuit6.verify( + ILookupArgument lookup_contract = ILookupArgument(_lookup_argument_address); + (lookup_argument, tr_state.current_challenge) = lookup_contract.verify( +// (lookup_argument, tr_state.current_challenge) = modular_lookup_argument_circuit6.verify( blob[special_selectors_offset: table_offset + quotient_offset], - blob[lookup_offset:lookup_offset + sorted_columns * 0x20], + blob[lookup_offset:lookup_offset + sorted_columns * 0x60], basic_marshalling.get_uint256_be(blob, 0x81), state.l0, tr_state.current_challenge @@ -158,14 +161,14 @@ contract modular_verifier_circuit6 is IModularVerifier{ bool b = true; //8. Commitment scheme verify_eval { - ICommitmentScheme commitment_scheme = ICommitmentScheme(_commitment_contract_address); +// ICommitmentScheme commitment_scheme = ICommitmentScheme(_commitment_contract_address); uint256[5] memory commitments; commitments[0] = uint256(vk2); for(uint16 i = 1; i < 5;){ commitments[i] = basic_marshalling.get_uint256_be(blob, 0x9 + (i-1)*(0x28)); unchecked{i++;} } - if(!commitment_scheme.verify_eval( + if(!modular_commitment_scheme_circuit6.verify_eval( blob[z_offset - 0x8:], commitments, xi, tr_state.current_challenge )) { console.log("Error from commitment scheme!"); diff --git a/contracts/modular/circuit6/permutation_argument.sol b/contracts/modular/circuit6/permutation_argument.sol index 770bcca..247c6cc 100644 --- a/contracts/modular/circuit6/permutation_argument.sol +++ b/contracts/modular/circuit6/permutation_argument.sol @@ -49,7 +49,7 @@ library modular_permutation_argument_circuit6{ uint256 h = 1; uint256 g = 1; - for(uint8 i = 0; i < permutation_size;){ + for(uint256 i = 0; i < permutation_size;){ uint256 tmp = addmod( gamma, basic_marshalling.get_uint256_be( diff --git a/contracts/modular/circuit6/proof.bin b/contracts/modular/circuit6/proof.bin index 91c16b3..dab61d5 100644 --- a/contracts/modular/circuit6/proof.bin +++ b/contracts/modular/circuit6/proof.bin @@ -1 +1 @@ -0x040000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce3d3a8f8d81436844b678547d3d20b7b7be7a0c0e8a5a4510adf617deaa9d96b800000000000000533d3a8f8d81436844b678547d3d20b7b7be7a0c0e8a5a4510adf617deaa9d96b80d48b9f9a1f52577da4d5cb94d65e04052d79db412bde4a0173fa42abd6d4a453224cdc3865109579059a67231a396962f47d8588e8f74e50119b3a55513f194026ba1e029c9bb574382cf9e82fd61417bef7b8854687e04db1103e8b32273583ab804d19f952eb5d1c0403af831f0ee85936ec6ace65d2639f8ef73a963b7e10c1a2960d0f0a8b4518e0e188ef2e6476bad69a9a60a76184755138b7fac40b8259818181de9e98d18c14126d8f9b4a812c6c5f13b4bed50bd27e98e4ef297613c82cee414b34b8597c6467acabe7f651a6310503e344e7964a961b97e5d43983d3a8f8d81436844b678547d3d20b7b7be7a0c0e8a5a4510adf617deaa9d96b80d48b9f9a1f52577da4d5cb94d65e04052d79db412bde4a0173fa42abd6d4a453224cdc3865109579059a67231a396962f47d8588e8f74e50119b3a55513f194026ba1e029c9bb574382cf9e82fd61417bef7b8854687e04db1103e8b32273583ab804d19f952eb5d1c0403af831f0ee85936ec6ace65d2639f8ef73a963b7e10c1a2960d0f0a8b4518e0e188ef2e6476bad69a9a60a76184755138b7fac40b8259818181de9e98d18c14126d8f9b4a812c6c5f13b4bed50bd27e98e4ef297613c82cee414b34b8597c6467acabe7f651a6310503e344e7964a961b97e5d4398128f8a24a08cbc388863a4569c9ec3406c6fdaca3f293bfc1a566618eae1f0cf39f39c8ae2555127d6769e056a75829b6e64395d65c12113c66f7ed9679d579e38fb1266f415fbd2618cfb2426d85025c3e9ac6c13d4ce1cb5709b216b4da6b2007e7570ed913c580ae1bf3ee0590b4b81bd7f940d8f2c60e154873b222973ae128f8a24a08cbc388863a4569c9ec3406c6fdaca3f293bfc1a566618eae1f0cf1af710639a33a9ee25a99551d3fd807e70499333913a0f7ce486c5d6cd45a1b6139cfdf5e92d476a4cf4705997aeae2521b3e1b01676adcecd258e71cc0ee63a33f3dafbe9dfc401830b4ce5f743d0666d40c4be264658029cda6bdb60b5b6bd378ae8b217281e98232cf4c6dc2b21498547a11fd3025f8ab5fc7ade97636da707104a0366db0a5e2b94a3074a06162c36ae2f6336ecc272ec39b0a137d7ec5e32ebce59b79f5367725f44df72213aa26c1077fbe1b47f7469657486196a0a412fb0a4b594cb133a84d3b178be4595d031abfaaf17d83f3aa7f7c86c6477497e2eae502060d43a49498079a0df382cddf513d875f2aaf61168ccf327cf7c0ebe23ecae7aba988b5b0b2fecbd26e03229ab5009f82dd02754e068cbc188172ed739f429a1fa53e4b8ea5cf81151d917a9c6df281fe390dd60fc915b3d85c942d223e3dc02b2bc5a30c6200a22bd44ae67e58f9e87d8df6664955257647bf5013b32fe63df8f8cb6479643fe651892aed8e7fb9e3c602068c6703ff5ac8b5743e824d458cd7f86fdba1387bf56c6d2174e370b3a80acf28f008c4d6010f5d0c5922cf2006a71e2076f6cba9c6a8308317434193e9dbc9490be9d824398f2f49b852c0ddd3571b65a3f78c96f8a052a2f5c1059f2586d8b149d986300e1c76cb79b23e3dc02b2bc5a30c6200a22bd44ae67e58f9e87d8df6664955257647bf5013b24d458cd7f86fdba1387bf56c6d2174e370b3a80acf28f008c4d6010f5d0c59211a7a90df9e4041bfe3b2c117c06baa248fe784b0f63de047276e65de4e2a36710f59242b9052e645bd7fc8a1e5da9f6d82d8d2bdd0f4f32481328d517b4b8573c97a45d2d4cf698d2eee0603ef763c8cbd9b3a187efdfca0b1d588e2d0e01ab000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010905a2dc234910cb25288a4e509a3e089386b210ea221604615f096671b71f3c2c0875a35538fda5fe7135583ec55d8325864e8a609ec7a01bb3acef59df164405f19c2874594b966898c597bd9a26fc0217e142ae56165270586e16a4e32f33266891bea2d6e255433d81594234760ff287e64c5705e592f82ecd90cda317ab080a273baac6c762eee7faa52c69bc9370b057a068568d75aab682e63f6e8b3920e453b82544c329d549f97b4b792dde3e21b3e14f38242c28da535ea2a5349f3f8e5fcb76a5060e2663fc6978bea70d23c0854b96869da6158a27e39813f8bf0e5a4ae432b39398bd9bbb5d5b9b9d9355be1d365b0b1bff0fbc0d0376cfb50534971161f868db4f70642adf22d1dca6004082d4b94daf47374e3fd4abc9b7d10d55019997a29f3ae5e2515a19b33db4793343d6e40589291881623b9e1ae89b0a4d613772c70f3af3619b10ced3e1b5adf47c9e842742acb0c76c6d449f92352ea70b254d642cd6e09788ab2cef95983403454652448940e31a5633294b63962f38bdc97cb117234a7d31f2e1db0e7205830993dc1c52626cebf1be649b68ed2afa5fe32da34343b8c1bb9d795a69f1c7537d3e8af4919a7a12e3e5211813732f98028cf848394607c10d7fcf5894dca51d9eacd62e032b298daf613f8b200b10d13e56ed55530f7d067308ab51ccb653cbaef973de127db73be9f5f90aa0532cd677ac44ef685185166d2e0ebbe3f56f67dbf643cd82c6296623313def9fdd3d40cd899ca0f74caf426bb860e96728558596935442ef4b79bfe504f5e9762e0a3b42b7ed0bd78253b2fe1437c1d957884fc5332e87c46b539a55bb5c285f4f24903148650634a8750a0c74e59270b6686a3f3e148dde05ffb150459394c4bd0467f3825b2897ea9a6907cd797aaf2b005c115d6631421e5a2c1f5b7a7809323c51a699a2c4e9323b218b875dd8d04214f677f1431137b0020220676d68892f2407f3ac4b3815071f568933ec90e39f6d25ddfe9bb68e99f7348b5fe99529d9045f542c0dc57211b0fc7807e0f681c7a4e670f46f0dfbe43b67abb36ef7365c1f322b25f0001d50b04878c19b3b58b0c3d2e3d4d3380bf5b3d6781169e3d0463b721497a442ca60bfc2449bf4215979e770d2caa7a9d9d7c06897e3f77d204624cf4d5045c8a10e897852542db668688a3b380fc326b5bb8b1ee9066da61fd3268b0dca419e4f918e50bbec926ca201f89e102416b0441a9a5853466edee94b279dd35f2686be29e379db418c40e9626a668887cb4dbf1c668f8db08f2d57331fc71217e489cddbfa44ac285f85ade124200c134f53be8ce40286aca7a329b912a447df74cac78d83441238f8843f6963382ddb083938fe342e0df7b24509262fc15ec8c1b7e2136560fd7fe39b857e40edff74c7ca0d40a47982a8e344c1400b5c9cf2033eba6cb8e166dc1307cdf7cd937f970f40f3b13f279583c79aa0d4096fad50b08417c4c138d19f344a06b95b879ca1bfe047563333708a300da89c027136629cce359213091211f63d366ea644c104765c8bf911597b69bb1ba9492b4bde9b06814703721ca2442a6c1034ffa1a0731bbe3d9521882cb04ccd18633ba9b89e13ab8a54069b024703a3c00a25662516a7696fd2094458da5f719e7101c3493cb5e6f02c1792371ee9188fdc428273721f3621f79a5a95452c5888eb3cd4caf7cadc86810c5f6d9c5aba55eaa8031f9ff20c9afdc71a99f0b920776800551e32042b1ce6dad9fbdd0bc7d5a36c547c3dbde53b8dad50cc9e09d3b0a6000000000000000a00100102020203110407000000000000002c0202020202020202030303030303020202010202010101010101010101010101010101010103030303030303000000000000000200000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a83000000000000000201010000000000000dc02042ad6d44b85d8c2e6cf1da18bbb0083196e509bf2b27e7fb20497e0a4cbfab1fbd5292bb47a273d1930e25e7444ff7f0afb3f24a21d1339e0ce76ef5b34056214d63225799d3bce820b9427baa7028b3654738a93dd550b5470d9c337fbe551eb29cdda8662c4317df46bd84558fd76ee151c3600f23cae3e62350cc8041ac2682efabb60122b088a39e4c6a5430cb3c6d32233b9b385c5808e233017eb7a7197d105449fedd4f775c61b395abcf34e5d966d8cdb1c0bf41244eb9fe81485a008eae5a8e05ad72ab32177e13a4f3f7c74e2fbc0e212e7aeca4d838077996403f7151a571fa528d54cde881ec5b0c085af8693ffb2bcaa0ac8858b4f88669c12042ad6d44b85d8c2e6cf1da18bbb0083196e509bf2b27e7fb20497e0a4cbfab1fbd5292bb47a273d1930e25e7444ff7f0afb3f24a21d1339e0ce76ef5b34056214d63225799d3bce820b9427baa7028b3654738a93dd550b5470d9c337fbe551eb29cdda8662c4317df46bd84558fd76ee151c3600f23cae3e62350cc8041ac2682efabb60122b088a39e4c6a5430cb3c6d32233b9b385c5808e233017eb7a7197d105449fedd4f775c61b395abcf34e5d966d8cdb1c0bf41244eb9fe81485a008eae5a8e05ad72ab32177e13a4f3f7c74e2fbc0e212e7aeca4d838077996403f7151a571fa528d54cde881ec5b0c085af8693ffb2bcaa0ac8858b4f88669c11dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb3ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba2e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b3333a6c18bf778e668d61325e69e25d3175cee5aaec8d1f3ab9c818b7019ff2af38225810aa0ced9279f11d7bb6bd5fdb922d34fcb89ee3ac44c8fa2bd5f655bb1f13ecf097788ed6fe452dff23942fdd3aebe7d16e25130c9d72d7314d671511286dc7c63ba70a6f3ad2c69ff9b9934f66601e89f4eb87d44b977e5f7d9dc8451c70686c6ccf34410eeff581bdaac669356723247562a74c0d699d751c4452860d81d8e6f70b78783550c923d3f6e1e2e57f77b631c25142f146fe065f2b794c225eb35e5e6699b01693ff2025239088d5968f6bb9195fd4230a1040425b06e116757cbde9eb9f5f59c6bb6da6ff3d7d9e8cd24ddc94847971d4facf87ee4a1c2336bff60430d8f218dc08b92f81d10147de057f17abe549424dcb46d17a65b20672a3fef6b96f4283b5bdf1bf29328392c5f009dc8244c23714beeeeb608f54225eb35e5e6699b01693ff2025239088d5968f6bb9195fd4230a1040425b06e116757cbde9eb9f5f59c6bb6da6ff3d7d9e8cd24ddc94847971d4facf87ee4a1c38662d8c8a7f6e98923bce98a078383cb5374959d82050e73967420cfd5a9f1d0efc8eaf834a91e880738cea5c93016e019afc2a8baedc193c9aa4078bc0d01128eaaf5c682dca9e3e9bcb995b249dd1d5422e441f47e5c763df16589d0162082764446c7e659e68d03d15bd4e3273c62b646b709304fa3ac8b33ada13456715000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011974fef18f827df4c9a7dcefff81e6177b37d3e50f1ecfdd5a0953988d54f975085783be7ebed980189aed7aee51d3b6adc701e3997302de59651ce58b77c6151a0b853f36085a6ff261fe0b8c2a739a18ebd971369065ddc81cbf0b30feb51229f4180f8f5f7e5c9f46d588ee89b96b4fced4fb1bf04778a262d5f5565a440c233afdcd8f68eb202166f04de910cd128aa6590f182834840cb5a7c761a76a4e068abe14f1f9255f7888f758cbc414db60485754729fa4619245806ab4d11d5d20305f557d8f10a086ea890f5a9d16e0fd2663b3240188faadfc2d7d237f5d4d245ba5d16286c91933052e378b6e7cca1bb13b6707826c7f7619a6e6ba048765293284a0f301d939b3c716450c6ba98c8078047862e0d8ba908f37054eb9efd902b09b97f16acbe813abb424aac62ec266a83be2151515a524160a22b34fa8ea1c97e26ed71d32dbca1015f9fa937cf089ba8a72bdfad2054966ee9fca931e8437d29b1fc80b8a6f0be0b121d4e567067fc1cc390159b4672d9acc8fee2d98db39adba27bf7881f73e7bd9e8fd10f9f71ee832f9faf805a3d5db5dce1d1c05dd0d597f5815b9e5f5cadc4fdf6fcbb82b7ba679ad0375cb0571b80f28d3721ba3327eacbd699ad352573b1699da44c58a51e5a76da9461e7ac93dfdea68ca470c2e300bd77faf5592d4c5c8f324a444d3eaea351415252905c2cee1a3a74e283f204a5563c30de1fadabb7a566a4d29a73dae424ba39d93abceac855ca8a65c270f45b8d5d243b4e156b61e3f10efa72f47956bf613f4888f7cf8e4a05016337916b093399ab6e7416c0ec8a1aa86e15897c2fe208fbd7cf5c7ea5e73ac411817071e81482627e2c339451fde11de52a5b9a0f0abb28f0f2451afc3ae0618ef3738378f6600033838ea5633366b3226fa95ca37b7f96b30c3b6149da809a4c9b20278d84b9f71b6813f877d7db185d9882f772349d5131fc09583a95ed049ef78137cbd08e3f1c53184007911d97b95dd83bbf26a99a1afd268d4fa3dd51d6a1f1a2fafc29c99d49457da0f8e8cd063079748ac8aac1c033a061d783f36819c0f070a3f7862bb2b32f310a79dbe5282ef68a7541d8058f98545b1108d7902006f17cd9aa792be1cf2a1380c64f430b0ea67849db2b265ed3b281eff6ff4589f4d125802917890f670cf20276ecc13873374fea641103f2b9da7f237d7c0e4a11003d35e6357b85ad8183e9efca35fc088ea296e797a7aa317bef81665ef20795135affd2a1d9c056155dad9cf5438f637ed367d3d55b50668413d13f7a1d99f713934591c2e644d6d8472e4ccc4086420ee67828c6a94948d003b16e86d40b34432c229e35d106a8d3ae3ee8654d9819f49a1141a559d394a46003a2661ca27b833abb3543f325fb9e48c389478775902b753064c6dc42ffbf9347c2a246dad7d1d5acd4be3d7bb6d3ac7bf6efc7947e71a732e3d325dfb821148622453032993195eafb658fb4245b49bf6313ca83efeafb1af6512e6af66f03c0099ab623bb20300153a7252108404de011b042b08f6a7c5bc178448550669ebf9d15cd7984902a03c5b25b83b83e088806a1b964ef895169f950cf713346b0e8d9248de03581e6a80d12034e89b484c3c0273e8bc03e5d4e00f1940e1107a14883099dc88de2f882b38777a6ba1fcbc736f6c4c401eebf56f1cd75cddf58ae90e87095dfeb611ae699331955bdabc2571830f71f2e5a747d6fcc2fe90821d4219ff1b11ef9c26a34d30ecb48a9acf540a152c247adf4aff4cb752cddac1960dc7f7991944d81778261d92ed186abb9e7363ec63b305bc3fb622211056742a4e2017d20e1a1a39b37aec41781e78247ee23ddd2abb3bc880d43d9d48503e4bf72cc4b11105ca1991d3689bfbfccd32cd83db7367d20ebdb5ff3c8d1e2d84c535334e3a371d852a80e6dea74b39fb9612b92810c93812bae8e00de5554f3d0f297b5e9929b8e425507b32ed33c41d781bde75f29c74002ccea0b04436f7a1583ce378a175b103031ce534c1811d9dd7d9aca5acbf64069577b308d4660b764c4f67bea5bea0210c4ff3f3c4fddfb07ccaa43ad5a9b1a6bb1213f03e148ca662dd4d82080f8bf5173c2eb73cf8df3fc3e539b8ee2b5b33fe197d06697ae47f5b0ec2746a31dd5c34f3eb5c037fdbfb9239073e7d5f4c09eaa657f08f6e11faccae34e088b33e00165f64aa2c07dd5905a3103418cd0fdf92bacd7649250961260dc24a98f75c49108ed26bfd32aae1dec64c409f2e4f7bca0d4329afb8b868ab60985c9a2f6f702f712d9402cd551e2139b3bf60d1b084583955d2599440b2edcc989065d0909112ca1c1bf1fd566959df7d431be78d6acffbb6d4654ea0efbfb5c8e202ed2d2f2d35e3e40e02a996a62082bce4187295524ae227a3fe582bd977680afd12d2d21df28c8bb9f2b00ec15d724f8b85c315eda3f929f13c2b93255fbb7d0ea1e1ea220d7374460d4ff13ea28db0747a3cea34a29fd21810cd8873cd756ff15e1e1715bcbebaa1bd7049c6d33b8db99ccf6d5fa6abd9a392e7a888844797492969902a4341455e428fb6392cc47246633092c29fed2265ba117310a8e955b6d69671108ed26bfd32aae1dec64c409f2e4f7bca0d4329afb8b868ab60985c9a2f6f702f712d9402cd551e2139b3bf60d1b084583955d2599440b2edcc989065d0909112ca1c1bf1fd566959df7d431be78d6acffbb6d4654ea0efbfb5c8e202ed2d2f2d35e3e40e02a996a62082bce4187295524ae227a3fe582bd977680afd12d2d21df28c8bb9f2b00ec15d724f8b85c315eda3f929f13c2b93255fbb7d0ea1e1ea220d7374460d4ff13ea28db0747a3cea34a29fd21810cd8873cd756ff15e1e1715bcbebaa1bd7049c6d33b8db99ccf6d5fa6abd9a392e7a888844797492969902a4341455e428fb6392cc47246633092c29fed2265ba117310a8e955b6d6967113923ea18517c0e7c6fac4d117b9917c9f0728c9ec39dbb77de85b5c17f2c7f4059566e6dec5172aa9a3d8a9347fd6550f6f1691a37f82eac53d94a6e7613a48387802b35ef46d465536c7a5125bfe9b85eeefae2986b2a5c1676fce05f4e00031db538e220d9050deb695a20721092fd516be72dcbf54583fa16ac019dccee51d7fc490211442a89bda54e307c18b2d6a33e4d61c37a7bc14225d70a1b8807923096f3065f532e86a57ac40df2077670a0043ede4ae3acb82a22513f9e11ce7208638785079210403ebcf053fb691039dc5feb64d5e55135b61c9172354fdb210a15e6790d8e4b82fe087135089323ffd067829bc177774d67da45e03ba2635140f7c93a4f215a82cf6beb8864c0e021c398fe6116c383d633ad8f237112c89209fd7b79a22778c407ba6c5dcfb5a08d6ca01be1025bc844dde9f67b13c165627014a61a3142c78ae69e53a0b31012aebadfa90dc35eb5536f4994919ec190c22b7fca4a22d89f65ab4f8907d14f22b785ecca330a9a198d313d069cec501dd33f5beab1bf3d1d1e3ce7389d5ea6fe81f97197ffcd963d9f30a96afe218580f088f458aff2d588477a591b4c45f207b3dc0c3f7890e21d8944e3185fec1f6d527014a61a3142c78ae69e53a0b31012aebadfa90dc35eb5536f4994919ec190c22b7fca4a22d89f65ab4f8907d14f22b785ecca330a9a198d313d069cec501dd3a6062f8bed79a7290db04404bed85d1455cedb45b7edbdbef148a4f3c86af6437373bc09f874b246bdd243aa3a7ee522cd025a946a3141b6bc285444d615ca42c79e53ec9984e496984223ced8d8384645fa1f12c9aa5392af1497abcc6f05b021f2fcfbe0d85665fbff7fc15e24e6be53d4d744bb712d51515dbdea77c9a16000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010de687ecd9819abfdec2fc8e4d16f24ff819bf0bc09f73327c05aa144882746918396787c4be3140b7700df76687548aa43dac930bdd8a5b3be73fe76bbf72d11c5783ef19ff1b3b85d56685f515efbf7ec43a10063adb174e2a816dc29c200c32d713e6aa05c64d8b922abdee7091c844423628fdd8b9425f4a50ea57a409752a10ab1cb7ba28055aeb5ea16be416c94d94791d5be7c49d84494968990d976602b2bfd231b41cd357caa0dc63b9e13cf2adfb8a7e062b316840e66ee64bf0f314995e0f67000690b09fd41a3a1235a405eabf8d8c6e71937a10103c3bcf58d000a69b11a5b8c63f90f13ea46220c773e3f900520b0429287bf393ce9b991c73321ea68a7e92318a8c005fab5c56d1dfb8fd5577762b094d102f13258d16e5da0eda98836c84203beb7093f04222052e06cddbd626dfabbce078111e8a8bb4d73b1134525d67601151e34ac7fbe0664636fcc0511b72c9e881d5d8c578c8fd752320835a739a174b3985aac714e98e144d42b0f1b47dd737d9f4e9219a445be7337e0812b0510826d543731c19ceea8d6865e29217e167b4fda8b4943da11fa801196b0a0a01cde7c0f4f330fa42e9ab10ab7ee65860f5e0563e4f126db920e7008e8b33ef700ded8ce68b14bf7cddcf9fa9f1cbc01ae51e6693b389c0dd07c13f48066252ba32f9707186fe8ccd1c3bdb6704de3318b519729614b72070b773042518fe847b37f59295d54ce23e45f26a5a000197dafd0b0431a14924acddb30c98e0a94c1ffca5a43ce4c1573e93c31f5729015ffd5475f0c694cd8e7d44552412cd49e5753a4295b98f3467eba0fbc192303c05762437b39442c5385f680519c992fd06a2d1cedd535bedc9643d249c16936fe3e95a28b2547a8ce7e8d0ce1399c9508feb42a376979828165fea6eb36d2fcec8c084aeab4cec76c592950a0d7bb3e863366f1b45e1b56aa32029ed05f632a4e3e52fc71db465cd2b592039318d26150dcf428fa98c11420612ab43003b95a88bbc92719e5affbe37fc9f910c98194e59dc9febbb9308aff698840f877b04d3b87912d594e2eb480c2e8cc53db347f95cdfada47b5452ecf5ef66bd4c5f87289de654b27881cf1dad5d75bf35feca1c82e6f741f47a6a2b24908180101d4303310d17e8a70f049148acc3452c0740538dce9ecd3870b884b1f46a4b0e36bd563d232988c778f525df1bc29331dcb1183b522a61b0eb53faa9596d02572a681f4d7a6e93f5322194f1bfa27337f028c8183e72eacb516961ec55805b5fcf87815ca90d177c0423b7fdbb25a23cb3895f6359ae757ac0a9c5ee1701933f2cbe5657f56ea251c56c5f8f0eb04832d0f88b5118ca1de4f7d3f7e481c0b88e37bafdcec590f8772e14ea4d4d4a152c274c832cd0ac793c0fbeccf17a2370d5380f10d2b2f8b3e5d1f905af035da92d2df8e51731041f68df766ca01cedfb596a4919682b7d1fdf86a41ebe9a152424fb9bf7e1e23f914fe074a60be4aad6cd9f485a61f425cfe5880a770e7b87fc138d3718726c9124ab777e48401f97edc47c8b0b7d6df06ed24e66639954b0d7348c0f1974a5d7f5ae9cdcbfc5ada0a88422a1c9fe59eca6d4af4e7e2d086036062f2c0b42e0ab1c3c7ca1f390b47654057a9abf42edccd80db73041bc287383172ee5553d226974d5510977d1835f9b10b4ebc7f543ca415b23a3ec5d1ae2f2305f629135be8fde599f04e2feae1ded0ef9f2b2865bc93bfb9b21e188ee872024b0e3809476913c149076f2d7fad7ff6ca5d01ec74624bbce307511cd0fe3c20f5df003dcce58c198390a9f825865bb87a9183baa4743ca9aa4726f17dfc8c5315d6297d151d572c9e1d9a803f638499e1dba4d0ef33e9d357d59c459c4a7a32211741776b27c8cf7da9481a5765a7e70c8ad232b699ae754dc7f8f46094401292c866815e32facbaf21218d6a67809b9086d5124bea12c61c80d097e008c6536a85662599ea854649f90e6430fbabc51ee62166753a0b6be9d05701ef1e6672aa91d0a2109b027bd7092bc99afcff53acef62bc660e4120a120aa3487893f01a00bf3b0447c024993c6c8977e12a404be63473b512b0d6adaaa8ac1ea59a141ce0b16516c9217f1df089fe53b105752689bba0e95ed2c3b201433b44a3438c203a187cf628a2e055d262fbf60400f2a067d24a45549294580ad1bbb53f33b9381e4b7f201163411ffcc6d6d4a568b4318ecd3def8122cb9fad20bfb1b932b1039438a7b08638840d185421f618150dc0370e0ff389061f5fa0a8c68a2d035b3c6bc7584f79c77bf2e7abde09e7eaf2620f8aec15c3f2fc398c882675d2fca611e51b46729f1a944179a4a9ce786944c113464fc1ad1e9cde234be0b2e110c72e1ae4b98d60e56bbe865b56318796bb613352ac479fda7ebb09e50c4d1eef3a197988603d1b84e547603751085a0e57a319c692bf149ff4bd834a767e6553e22686779fc2e47b1ab89fc8aef7a5f1a87f2cd2694a385926dba9e676819aac1f3f5fa9e13189987a64e1149529c247b60d3a47e1b21a26ac1a63436377faa36900a0561ece7667859b1eeb6ad63db84a150c511a5732d26f7ec9ed8988055c98039438a7b08638840d185421f618150dc0370e0ff389061f5fa0a8c68a2d035b3c6bc7584f79c77bf2e7abde09e7eaf2620f8aec15c3f2fc398c882675d2fca611e51b46729f1a944179a4a9ce786944c113464fc1ad1e9cde234be0b2e110c72e1ae4b98d60e56bbe865b56318796bb613352ac479fda7ebb09e50c4d1eef3a197988603d1b84e547603751085a0e57a319c692bf149ff4bd834a767e6553e22686779fc2e47b1ab89fc8aef7a5f1a87f2cd2694a385926dba9e676819aac1f3f5fa9e13189987a64e1149529c247b60d3a47e1b21a26ac1a63436377faa36900a0561ece7667859b1eeb6ad63db84a150c511a5732d26f7ec9ed8988055c9836bc066bad4f192cbdf19e4a06169f22f64d1f342a06c9e1b7b20cb69f53d57911d68caa2862c78883eaee78094d9fb69b4c1aed67ae908a1a76c75ec48901252ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec08a16f39db930aa46c04d98a0ed3505cce76287f52f1f5bd01502952c6adb8cf110e76f7b02ece9c3982ecb3f70fe1da83530d64b42225be0ca1b006d5dbe60e0649f14fe91b305e9d3d81fd359391ee448e6af68430ee284c7dbeee81bd26c91a87ef68d7e5bb567fac868b158eee0225989799cc4336bf346c10bf5b624af23a613834ed46c0f20fbb2de129cd6a2a0a80d21a19174d504d9a97fc5a8b6e5909f05442c5b704f241fd71377c641d2be4ff2d19d1a65d63a743118b73a8f2233f881a04691b3abed6a4ee7d6e267383a04b7313dff32acaa8364ed8f23649331b7eb1b03b2495bedad51ec49fb3026e615d58d5d5589a3e786dc083b44e142e1a73ff6493aa3bea38ffa5a6af8a277cb45835fea8173b10f471d87a22cbbf6a36ba16c4e10a0c9299f685933c30e7beb32a3a39f602d028ee716a92ea0d9df23f881a04691b3abed6a4ee7d6e267383a04b7313dff32acaa8364ed8f23649331b7eb1b03b2495bedad51ec49fb3026e615d58d5d5589a3e786dc083b44e142e0f15e09123ba90bd78c74047a27156ac0061fb892a103f1e8d25de4eec125a6710a053cb8a05daa1354e682c4d61caaa6b12666947d98caeb03d4be4a8b7c84115f0bd67710a6ed9d6e76ea28f7a6a78f1a85c8fec8c86baa4f4f46de5c233553ff5b167d67afb9647e7697f0b2ce1af6882d79efb74d3dccb9966325a7c9f73000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013c2f3ef48060cd9b37d7b5bbba64287e1eae4cb185b44030e610d4eb1cdbafd92848f0977cd92b524e16b9d3cce0d8f90aa09999462dfaef6bb3b5ad0fb97d2c22b9156cb1fad51dbcb4544c9208bed5e2ffc10a5b9d1a212c6bf7ea6380cfe01e692205aed27661f9fe9270c933c27a485df879b8560d3060004c5d1c169e6e2a15f5be49114273db407dfde1e768efcd646e5bf08c0b8e4a03976c7b1dfaef1e3920348555cca0a9e75da2e236f6dd8c935eaf09aae44d7a1471aa06270b770271b73e394b19d4f60c43d63f6b2d42e8548cd54f489b253a8843401e068876262bc152ce56967bc0a27961c9fba4a53cd393ca9300913ced81603c15985b3a2494054dc630557433a142d4c50aa072b79b66e43c87a0fea057040a79b4a9f0360fad028787c24c6d1d4d5cc0569fbd7c5c53dba5a5cf8c5fd2759a2b2977423512476de112728e2aba924c43180da980d7ac0671b1248c9972196eefaaf6172e7aefbf1674b7e72cc3264354de4c408a00c6ff50726009954e83aeffc9996226e17afcd10cd30d34d6db3410d34f58df99451205226886ee7d4ae7d4e970c0138df703471a6b26286edbb48460b3ffed1fac80f786589ad29532f7416757d013a85ffd03460d48e3d73f39ccc8ad63222435657e93a046bc66eeaa2c34788a38c5089e7ed7cfa1f3226ece1a8d1c34f66f3441c3943f2e29cc27e749c49d8a0532b09d6bb5b6bf5b75d97e7105e9af2be206cc7cefce29c87ba73cfaed5b692b5345902e2297cd7e3a5b85c5037f99dfd560eb75a1df18de04e6cecccf215037dc81110706fc24fa19906c6172fe2977bf2896d3df6f24584e7c86722e38cf119ecc5cee4309dc9c517bc9c43f2418ea6edf79a9d5a9127f21c9d5c7a8dc2034fe1d956f6b36e731d679456530ac9d065d5a6831b7c591c6d7b432b46bed6222583023d93572299996f75108b6ce57dc9ce40fb5a69d8bd42a75dcd741a44d1fbf10535b6dc5c52bc562461aaedc33f4128a22244232062e507a340f2335952e5d980b7092affa1c1032c19172d236ba2baf1e75c6bc236347e74ef00f367138f2c70c458b02c873069c30b5143ef80c549a163181e9f82b027897626c026b1b57d65d95a9782f965f11933ead0f5988422c1087734faecb46214bc98c64cb0451532b88220fff4a5bbbf4b81c7d0afca54da8cb188c8312036ac29f15c70e04b5336dd7bbe56123095e006665f924b384348838d35d38a609a0bdbc681ead29c727289afc2fe36fb56ccbb73acb1a7de3ddad0c80de34b8b81d8eb2ea21ff0fb9c62d3c503d9c4e73f18441906c5933b93870bdfd65356b5ad095f8eae99433b1531f1176d512232b0ab12eecb3a732c305d2b46f6764cda4b35201f8ed3d2e1277636728e294be954cf1a2651fb4945c495c2e8d8dababfb387241e4fb921b47e7b15c5fdf5b5d3239548c2e474a931d0e1c0403ded70a3d8c21b0e439c23da6d5bb023f2c06d3dcfe6399ec175704912526666059205f0c35c9fc7c998f34734f20e1a4f3921115b643eda3905cc5109e47c24184ab78e52de79cf3b70811bda469713909755a37047a0c8472cd38aec26c439f417f11cb8b5e06e67a3b331aa57dacdb8ae2e7888fe5b0686fb234d05933ceace36407a3029b7dafe08f36ced51490b7b6092a26eeb2607cc2b13b699dfdc8664565ae729c2fa7b192652dc7acb217e934b36e67ca57b56c9782b800b134ee32f74345703a9c93197e2000dd0d52709aaffd1d494580e3e821744575735bc7cfb0c81a9d7d3b3cbeb4e8321b7527c292831517586c756e14b8c5a925db08935711dd9b0a294e5d5aa95a3983d4558a4ad9619c952a0ece3d5ec3b658649c86c9d5e0e8a95c76b15e0d0610a40d8ef63d0a3bdb75fad0daff85a0d07dae4e684123cf26b4e56b0f7a17ab1798744b205df21730e826e022662be996dcab261051d35ec5362c5e4c6e2ebb1c3fa6ae92d515a3869ce90a080f121f98c4fab2221c078d34814d96a4b353a6376ef1735c87f41c72a4726bfeb0326a9514cca997617cebce099589d389618e2bb7279f09f4c44904f39db8c4dd65d152997cdced164604d7fd15b488b8cf4026f5de54896c62fb8c268a2fa2ac8236920e37f7dc28cd51b1bc38220d53a8853ccfcfa6091347f112d2e69a1e11a8a29e7bcba3de133be17f7b36706ee9d1201829e710fd757296fb841fe5198b5c7384c716cfbc0bc13dade864a3e41af10d279735afacb5e7f26800dc57871f774f68effc7658ab9bb52d09521ba80311471868ca50534a180d97ff23a878e088b0b9569c85b0a15d666c23ded157fceeba05f40c6e5f8d87bc08044db5a39d548ca5dc235b9f731f3715a707c3480f56603a0bf391a0727843f7fbb24a5c62ab737c6a75a069d9d9e483862929b7f0a9a11dc43e27ddc3a6ac2815848c3212a6bf3d4cb0ca1d3f9c136c4326d0684cafe0223bc1d8223c5953d7ea7b73cded5940e4f9e831ec0d5d082cea0a1c97b3502114d536c754d2415cc86b96bcfa5d41bbedf241fa7fa41a29eaf56038097f6f5e2b2ac938ab2dbea33794694305a2be443454570189a8def1ae37d0b4f68090a3279735afacb5e7f26800dc57871f774f68effc7658ab9bb52d09521ba80311471868ca50534a180d97ff23a878e088b0b9569c85b0a15d666c23ded157fceeba05f40c6e5f8d87bc08044db5a39d548ca5dc235b9f731f3715a707c3480f56603a0bf391a0727843f7fbb24a5c62ab737c6a75a069d9d9e483862929b7f0a9a11dc43e27ddc3a6ac2815848c3212a6bf3d4cb0ca1d3f9c136c4326d0684cafe0223bc1d8223c5953d7ea7b73cded5940e4f9e831ec0d5d082cea0a1c97b3502114d536c754d2415cc86b96bcfa5d41bbedf241fa7fa41a29eaf56038097f6f5e2b2ac938ab2dbea33794694305a2be443454570189a8def1ae37d0b4f68090a30cf4744978dfa55935648e4fcab96ebd33e91eef20a37884bc15fd66c82c3f0325d748e65cffce8e1cf09924474a2e4fe7a8905061b1795b5a6792092ffcf4f90c8e75409cfea4dee8d5ef0552162e0956ef2a6901d74c5dc30d8531f7fd750d3d2ad1c5a84311902048eec5362fc54d0d1d9ccb0b08409046fae480f0b3a5db3e931241cf5826b9779137b9a1a7819616c5463d2814eb14e110093721fa3bd811162f1cc2ad33ce766db368fe82685b3cd50576cfe6c01b51d9ccf364774dfb2319800d08273fcb903989c20b1a420c57ed98a45ccb7649bd84f6d2dc439427003070990ee80eb0616833c41480cedc8e4db8d866d995e417fa6bc9494660210adc3ab488576f5ea193f81430469ab5924f16f2f012790662820e92257cd3f2310bd05d83c073b7cd8c67410195c2d026b7b7e4aa7f5dd54b8d8e8058575ec320e7af8f0b5c9e9d3821aa01aeb08ce487ff39124352b14e54cc19ad587511aa096ba6b275a55ef9fbcbb3456acc7ae6b0bfdc12b9a65c94130f8ff3c75c9d3b267d1675ea21b5c7e1c582aae3306339976e4fa3e6d234391a09ae543fd64bf21cfde553fabd1fe1c2c6781682860c634fc704dca5e0384b90f7eb4fdf4f652f20e7af8f0b5c9e9d3821aa01aeb08ce487ff39124352b14e54cc19ad587511aa096ba6b275a55ef9fbcbb3456acc7ae6b0bfdc12b9a65c94130f8ff3c75c9d3b0f2e2b062af0fa63517d9f91ae2cf69e906051e662605ef0cc3a3149d2f17c1a0b2d98f8b06c6bff74bdfce1c07a9a1ce9c1225316d8fab5cbbf6f829aa3ae1f13841cd92f5247b98798c966510dfd854452b26a449fbe42f3ab274e1ca4a3253de2ce184907e496af231c60ab82308ab69d902855a87be5fea815327f17d27d000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012a3c801690e1ef1370ac79dddf5be4c81c17d7cd58f484360a7d5a3066cdb0391462a4333cd7331a0f324532cf2585912b2f8051899be206dabfbd96b0ba222d0183ffa40e839d4a8e7340656f7ee8d6318f0d1b5333ac7724656731babd337e3952eb496e0874d8993bc7a82461d318b7496b1f9a4d58e7833514b6cc9cdd63216f575d5e44db34664b280c2c5fdbb788279d086647e586edc66d5d9e60a1472eba4782de50f8d0a2f7d5c6041aa019fb685a44b0d20368b6a6ef8693466d2b26c535991bcb96c2809901b5e213e46f63437ad6760778cbb365e7abd4b168541cc1009b083d375a6a0b4515330996b67e2bbb56a67e16312146a8aedc887c973503d2eac4c9262bb11389fbd34f5282e6fdb44adbd0a44061b3e70d857eb1e21ca122a81b64df2ffa12893520f9193531735455d1e7db18087a84148df8e510381ad19ae5772e4251103cf3c89fb8df2d3a46e8105b6e51589829100edf5bd010ae80f80c522bf1db33ff484450a1b6518670e20dba3fdaf6ed3f44edf5eacb234334ceeff5046263c6d64f7476752fec8a3f3904b52bfe6180f69e2c5bc15308af8fcb17c40d73d677e59eaaab33afb106456ee05102cf30a7731251bb51480ef5aff1ba73a217020f1007d0a88672086b832dd4d8098bd81ee3b63f1bf4f02660e4c3a2dcdb0bfb7c96b049de44b5e4c792266e8095d553416f2e7263511b3b1349e365e2dc69dce0ecb400a4eb7bfd2cae631921d693fd449f1fd8aaf22b21e11abf77aa3bedc3943007c1566945b607f68291df3a4d25e7cbdde9b4ebc01cd3199a5a4437c135e2fa367a35bdecfe909f9545f7961a0d0d73c2c3e36dcd059df823ef28d6f0fb8c7aa9e4e2b4c48c766b1cc3ac064beed58d3423f3e6e4102c47e4c3b497bf492bc151f0b7b29c79fb3605d5882dbf402be0219f61c8e00340dacd80068c7cbe7f3593f922d3f88a27e795e01f8f0dadfe8d946e8454401caec02d6ac7b676fc89a84312e4a6aef773a8825457590f596bdfefb7fc15401d133982d91237d31fee88c532ed1b7ad715dd60fbed0396d6047ff2c9bab83439d88d0e9311ed6db95ed72d47b665bc31a5f49ff7fc528f8ec0b1a2667f4e4f09a16d6914568c53e2a3c7b73a29e3fb6a0d694f068b554257f9a686477f125c31fb4260d1fcc5d46331d77890376b1d245c0f964d48293c348c3c261a01d994139e77042c662f7a9ad2edc472ab641f869ddd34f4eac6b1deb14c0039c4770e135e86a03f841795a6f68326aa98a8772994f61a537a82470fece00eb2619c811a6494e7a925dfcba2b3e52bcc144ebda3d643e5f88a0c29831c0a537ca96bd02b635d529aba7b09a4bbc91b3235340fe316b5b7f68f09d0487ca6647e0bb5f215cd60183ddb2c97f25c0dc96ec55c658bf038d8c5201eac6b3becab3b03ccef09897ce0fa67970be9d11858a826fa5ae3c2f7e32150912e5e960d664a5dae512b82adfc7a9d65f2075c431b8f8b77e9e8451a3e307d4e41f18d4753e86b8e600a8aeba5c4ac87f59a538f34a7417ac867101e34c15032e5343ad4b7e34d8bd11a8a9d32f5a4ac68098408bbf3e911c2f53bf6f56c55f1dc9e397a37604d45f51b2e61fac4c8f171ac536132e4184209104ca39b1ddbe4caf9f99b350a74d2733ba873b9c6f787fa6fa7d24dc1506300dd9f8f88dd5834e54b883bca1bc6e9483a7d3961f8ef1c7daa4275206217b06eeb76b88ceb2c47b88ce6542a09b650c0148eb637d330aad6358a6f5e9650ae74636a47dd8dd1df2883833f8f8a670fda38e291af269cf6210e8a8f5029bd4ab6565024b0a28112d7ea8c8ceb8915581d39d6b52d2afa233295337185e42d8ca5ceaf6390182cb9f0f47c9d28abb985c6262cd8c9a66375f05196ce534fa5e1c50a59de9d5d7b961d347a3838abf7f01b1499d7720dc598a0c985e53d6cd8b77d2c8e1e5ad1936eb285d05f09443e91b22ff8ca6c1867062d41ff0e9bb5548f39235f7a7a9b306da01360b83a238d465a0eb310ce43ba474ef3a44f66a731c6269a1543f8f52afe2e64a2917ffccede5f2d7e2fd9908251c25957f096ef8e4b5086d2318658026e490e98217c5f9ca2391a4946f238763db848ca7692aa3fcbff1dda66b42808bce2b490631422c351822200939028c1f38ca6494b49d05602f1f2153654a9e7f36c93d4fe9d0184ef080ef02ffed1b603840f248b4605e32e21bc441a2dd14f7b559214e9b7945a45fa000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae0591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f62000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae0591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f622ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec1aebe5602a8f012b625ab7294163b3f936535be6d1710961e568ba8e309576381b3b6514a5e576d3bf2166ce9c7de55051cce16420aa35ea7603aa0f35bf89c4244521909e9b5acaa5db43f72f0a2bded449be25c8721acd65d44008e053c49932cc9fbaa6d221ba27e3b44f177f938d7cf171c02263a9cf8842e050c65a2734116c00ea9c1bc19f9ce433c485676e245b517df10c7d8af760bb4090478102c130829fcdd5cb1e6f7a29844c0e178b8700403eb47f15271b1118dea6527d1a212c5d4b3e60675d3250e23f8668dfd240a7423c157d20d058309cdf5d913961fb3a8199c7a3ef2b4cc57459924fd31ff0909d51ace7c3bf6a7b2ec6871d20ad6d0907c64532b347c431682ff5de12a6dabb7611c175de7b7450d0d6b0e16f72d53f8accd0a2fe98f110745ccc315197fed62328601bd6def78157fd64826d63ca36442070166a53eb94968cc7743d12a67451f94c00acfb90c6bb2aa2918a1eab2d553e5a63875d475ec00d3ca900a224fca973c33d072ac892e487e278d715530907c64532b347c431682ff5de12a6dabb7611c175de7b7450d0d6b0e16f72d53f8accd0a2fe98f110745ccc315197fed62328601bd6def78157fd64826d63ca361b610458503e21cc7bcaddffd4c073cee6d5401b86507fc7c72dd3b4a955f109c1fbf2566a63c825bf1ff8710a009e236d575acfacb1acad288f8beceab4b60569ad0dc0c0b377be335a2556ed27aebcc777b6acff66af49ae51d867faff9b2c952ce6a0f7c287027da7ef3b47604988337ab1466a894e4633d445cbeb045500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001336090e278c2fd2a038b67492acedc64bf5298f1a580be1dd2842011db9252a62485a5efdd9f0c34307e49c6fa2a72cc339f08db3ff1a57700c992d8068f54f312da3ac5a30b48d457f190dbe1048054c0aea0cfbaf4ea9e1e1c4a8b6893c6bc26e67a30d913a45c110b96e01e1f1b5fcb5913ab041e3587195bf12bab8dfdde0c6f79f4f8314cba889c9e4b8c0674bbfb4e6d9107d425fa0dbeb6b0decbf4251ff5322b2c83e728f9fdc86cf214f3add8f65f706664e38af68b87c8ce13068305b6e33879ba510e657df3757bfd16e307bc5162bf7f7de70011c7bf75238560387bd233e367daf18a8ff7707128af22f92b437d2c76af9a8aff77adee9acb2b2890c247a0ec665d66c65750d4e7579edc2fd1aa91d21a32f58bf76b30af612036c748b5efef5e4d465e1df8511cdcd0fae891ba08343aedd0824163708f482b0961d45f0ad3bec92aa9114efe9e54aaeb55f21ba88f167d730520d70937378631cbb6af1008eb0aeedf9b9b93ada284df3b84f835bc5351dabf0e4c1dfc7bb824ae12afc97e753968042bb631f2e7942a8ad2591f4c204237809dc6a351bbea0b92055b8bbe2d61c2055ee444338bc94451c7cbc1c31aeafb7b7f28ae8f8b8f2dc7fef6c77de1d848808b0a78342fea34988885bdbe21d40267bf1b147ec71e3e62048830ddb3bac6d8e922760136867c25a3efa91b1889088692b86efc83b43f42cd6bf19146c83f1310f0a7f9b8692f790f1413be6852616263e1fd8aad42144d20850a3dc04dea0f201b25e75c64f2746ff854c0f56cc0cd9d1f55be47553edc029c526c9a8e6bcf3104aa6d261829208a9e8e85b91e80ecda5119e2a6c30cb7b84d7dbf229e41106598079a984040aecee3d450aef52175ca3c45aa318a2fdd02117a90461ef2380b498ba1906471d42c4b22767d74240ce8ccf6b2238b2694614bc482aeeff395d42c018ce6889b27e7e7a729cdda3ed6304747daf62623dd36fa856d61418894a8e50077a41cec8689ccf8f40834dd96b496b9a031f11908118117790dfdb8e0cfbeb0ff38b9b9f5efd09dfad623e43a870654af036b0fab5f9139d7da9c476fd8aaae4da055531279d76303dabf36d619a184c92eb128287e6308a9124e008164b7a983ef1540eeb6c01806174b835a837811a9f462201df6731425556c43b866b490a89dfd2d709083cab59d6c6cfb37af4db9360206cd7c75f8fc8b8cc00d17a957ae678fac91b0745c74dd334a37588e91f2e7be24a4c15417802e71b57d3e1e8f14da3450da928ce94bece367a218747c40a57234d558a2907c10804a929f825bdd91af86d89b4893ba23e4b821b1db70077c8b3ebea84117096390a80f7daa23fad4081c71d8b8bfdbab7d7a54315a503c63342693074fd3da432919c79f66772ade8b97c432358e5b8b3e24cf9fb4dbee2db7310b7bca832b284568064ede27301748151cd02e418b06ab650fbded3d36d1b820e26b4f8e99919f6bf49eb9369e01a4318b3509475cd17bc3db73a6244af71b1f7008c90517c4e56737577bff3e7f54d430127098b001bcbc76c79a36742af10431d4e03a265f47cb95ff999f6c8f3efcb9ffce5d3045e3c9c77c20b3f20b9306c0d99db6adb0cd724def4ca15bb2d5d5f757c5d2e8db36a7da448a708542c93dcd15db5eecf7b7d4084ec448388596704adac3c9b6203aeb8d03bdc61f6d6e3f11911cd3ddb31226fd22d50130f5098dc03a5179adfe12375a2209c293c2840f68d2604e790002e2105ff92c960b88f054b072277999c21fa2c7052f4a2f871d7385ebf5d0482406a6f1927eda5c3144631d9424009ba53b74139f37f15ba70b8bfe67464ed5f8ca1bb081cc9401b2347cf197ff013376907f302be325b0ef054090ca73bab27aa4488faf1fc6b00e5728b3d13885803ea30ac51acac7aa460d34c0f8ba61e91c913b38f19db7e1c878345946ee375b3159939a9410f296030ba7ac467451b46af508effaff79153e0c1dc7886e7720faaac235f76052759a17c9239cc2a944f51681c15459317eb851e1a10f48cd0c833d4e7a2e9d4554533a9925dfdf50bc482f88cad15c68ef4ec4d1a3f045d8805848f9632826006e4c163396c0aabf399995af50d443902d865c33373c3c75529b9a3636bb613069100f11fc55fc9168b1af7c1c3c66d060d322d31d638de85cda65595862d643ae681d3f33d2502901a5c743e333ef2a0c9e0142c8f40b4b0ac23c8d1b769623186b00a31cd9ef8679794deeb656fd6b01c97550149e556476b314244fb708d44fc33f5ce32610798686b21149a90294fe36acf6845db3e882688508e135f72bb03e032f9041ada05f5e85a98fb2f31708ef4a906717aaf6517f64b58e932c258ecf3cd06fbe525fa0a17a56704d0ce8f710d7b631e45e56a79c3477a259d3da71320fedd1486421dcd89c4fce7ebf732cac74d2037656cf977cf78bc8dfdcbbca0b30122eb79bde232763b03181408cd353ad749585b27d619ea1a1680d234435f60fa51669f4a9503b0d8f0879bd3fdf5e25d37853a8c0fc553c8dbb724faaf236305ae9960b56afc4f270f78642c020a1fc7320a8608bfcc65c9f757ab0550dcb00a31cd9ef8679794deeb656fd6b01c97550149e556476b314244fb708d44fc33f5ce32610798686b21149a90294fe36acf6845db3e882688508e135f72bb03e032f9041ada05f5e85a98fb2f31708ef4a906717aaf6517f64b58e932c258ecf3cd06fbe525fa0a17a56704d0ce8f710d7b631e45e56a79c3477a259d3da71320fedd1486421dcd89c4fce7ebf732cac74d2037656cf977cf78bc8dfdcbbca0b30122eb79bde232763b03181408cd353ad749585b27d619ea1a1680d234435f60fa51669f4a9503b0d8f0879bd3fdf5e25d37853a8c0fc553c8dbb724faaf236305ae9960b56afc4f270f78642c020a1fc7320a8608bfcc65c9f757ab0550dcb0b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4822d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a0af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb1dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1971ff13de4018ac2f204d8e0cb4a7c30f750cb2b2ec36ed94c33f890ef98225aba181ccd4d1b3c80f4b8c727f6526322ec76bec9aa4b2b38cf1447328166df4fe00804a96ca16c5a8c7e9573fafa97145f3de7ef8b9a2c4f92876ec904cc8e00d4243364fff85335141c1dd1584ef14afcac6b8156563c1859d08fa716ef4bddf906950214b2ea38a5f0f7c7a5a6a6ee9328253d0e0cad482ac7e284531768c1d903696c13ac367d18219cc9b7f7bb935a0cb57b9e7d3ce80eb9cf043b476aeea23b371581b99384b87ebf50a3233893e1b81926a8343faa5cdd11a28ad748bad3359e1e56f9048a6cad77bb79ff4fa19cf2f49f1f3cda8d9839cc3e751b48e93929ccc29d5fdca54237500629f8b665e1a0a2b8da0d73bcdbe3ba78313c766d853495dd25ed74aa44720598ce08b31b8d4542494e72066f37b2aca7f0b51fa1f23b371581b99384b87ebf50a3233893e1b81926a8343faa5cdd11a28ad748bad3359e1e56f9048a6cad77bb79ff4fa19cf2f49f1f3cda8d9839cc3e751b48e9391f108ec3c7ef869d02896f8b3c0b7d7cb830bccc66e346831da855b968bc44501e94e4976340e93b0663ee9582fed85a9ce4a40372e66e86b5ecab50f32a30103b7597ecefc6f08451661d567ed34c62acb1aa3fa3be10cbda7f7cf038d48d231c7786e392cf9d1cfd45fd81883c3ac7031fcaa2a1d6f4f07e74fe2b7f19c02b00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001056fbf803868d0d5107b6f133fb59e81919517f0faac25ee5a2e456ea7f8180030fe84c7b0c718b542d1763591b6133ec8f8aa268166dab84eadfbb2a7a1c2190e874a6dbadf6343747ed7d2b13ed0ff9211b31dba0e0fa7d9335d5d267d11822d5a9be0118a196f4bf3b47f93e87c8363a5528f7dee51914dcf7bb9fe5859ed26949b7af8a509bae87e3d607cee1c08259e0669227ea3287ca7238075908f28273be8ecc3565780beeae2ca302f4c862d94feec1026365f1633bab6d8edaa85270da8299e69bcb624369bfbf29b0906197ab5fdeeb51bbd7930f8bea78a9d0b136c16ef22284c4bf0bb00543422a3595b8e5aa9f03fbb88995c4446c206915c036f179109c173c8cdd6adb2018f2f72ee9c94694bf46d08b84ac554cffbe4e70a311ddcca9e1ba89fc105ce346db6c21397a31e7af10f2f709fbd98ce674e0f0f5d900abc8a411c9d634e38ad168f27331fab84277596a15b65220e335b34771d76b4446026671d15893e6164e9f21875e82c2bb6f567f23c2deb79797217d50c48692d16da0df4b3c1fec44a792f63e248ebbd59929c1be936e7cb83c84c2639c3ddeeb82ad666951f9bda91e9e14a5932b5b481601d31216958a5c951c6ba30a428f1c4f6b6ad5b8d43943c6e764a9e0d4be51559719ba41146b73e67339a0d50329ef8973ebbe76dd552587367c050375892a52b21d1e8f0e9d139ca8ef412968a76e97abf3a8f66bb284c13054d99cf979eb8825dbe02ce1b02e3e127b701f206adc03cb12dd0d9987f38276868698c6af2f0fd031101e5520674ba7d700c0371439d94eb04a049d52f261433e3cdc903b85dd14f9d69c1fa70394fe32d378af93e812f1d0c27dda17d95adf4800f4a603f42cdd5973518d51a0ccae0471854534ca2a2b3e0b1bf69dc832b7bb58f534f73b8991ac093733d09c23c20f12e5c435a6609a36c49a9214f0b34d01b1404897a0f187bba5797c36fcfb62bee041a4be580ae461ae48f7af5b7bb8169d8a6f81dc95b815693372fd7dad0846235ffc865a4c7c2a86bc0017e5237633304e3e8313e2cf0ed2a5ac4413625d2eb1f162358e75f6928134a83f4421c454ab94524f738e536fbe50c033ce285a5463a37a41252e54a5c836bcd845d65b1632104da945859797f8b82df37760a5903078dc7f9371341eb056490e1cf6de23019fffab1f10c124443f742255cc51b1614393dafa5049ca77d7260bd30226a78fe582b05b4307718030ded102de6b2341195710f9002654f6d2b6fae8244341d0c0590ca4737aae9bb34b6659dffb744152c61a59cd9b3a4de4d37c8e62c03b3e4309bdbca55582e0128da8667ccaace058f6d595d631dbfbca02115b9150833f1d02cc59b7ef351b390706433f577b805506a924180d1498104c34d1914cbf1a04827009af8b531bffa0e95a24cc7ee35c8d7c9088eb1f67d6e1f69d8d1c08d2a54b7ab6810dd4bebf663d764fbbae80fbd510d3771b9571538607573fed913a5ab42a1417c121dd9bef31ba65edb8636d0a89c209c6b10e197412045ab243d0d8bb54f82123e7cc865e5475399759a0395ed5c89f3ca9471d9545d1c4b3782c9bbe82df8fb6274e1e70c709a3f9f00191efdf567050d0f4a6a5d336c4bc72f9dfb0513285c686d578a9135e1bf924f1d069a2210312a870b66364e161ed271a6ab54f07e09939120c1406595c8d2e01894a7aef2eb3c9f1c3fb1a5999f6990ae1759f066df907b38de6110073efa56030920fa964d8e608653fa29b372e19c419e005b354fd4d2e4a09f2e1b1969dd1277acac7e2a5611d081e21f03ec564c781c01618637434fef6465c6add2369c1a46e505d08291015279945457926cd0897ca11c3191999781d1c42615e4b7be27c428c559fb9c5fc7f5010290ab74779865d9aee221311f1ec26f6948bf297d0fef237cdd2c92335b02335da90a8b18065bc264b9e5c8ef317c1d1adfec05860adf4da1a0b4abb4643ee6694e1629b7adaefab6e1b4c7802718c25353e78a9038ab8da8ff7c6b42fb9141a07bbbf17a7a4da70bcb1d4a080cebe609a88774d709c19fb1ec7b25db89ab5a0b96e77073fdf40dd7dd9ef2851299dad55073a5631dfd36250e94ab56a46fab2bf905ad1fd82a0f3b5bac92de008f9a27ec11fe6c375bb24a155f801bd4658229fa65ffe94bf2d0f13d996a30d4be2592a4acc0fc3e9fdf1954cf2e7b714cbf52f725237397ac6e021d0481610cc960227d436c13200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af2150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f3981eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c69269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f6196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af2150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f3981eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c69269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f6196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b05abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b3288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc735024077596ab5d4f14c7435038a9742be3e6b737f77900011bd2975eecabf38cafdd2a541dc9aede8050ad6648812a33cfccec8163996bbfab69265fbcf2ef361c4e38fc1c0df7b9b2919072952602cbf7174ee45ebbee63633b443106eed2c1c2ec1153c84f592e126fc3f1f0f20bbadd94f35f1eb7f65990d2549a7aba8284127f075dd1b117312a9d8a06c31011344d9a01dfa69bf89621b429bb8f33dbae0d8601270d2f56ecea3e1b2a75e90d93be05ba29bbd650f57dde8784b3a68dc781f708ea80bab1eb868323ca07cb55c73606bee844de917a21bfbfa6dc19489d7fda192e3ee660fd39226aee0bea6ad54ddb98f9abab4929986c135f5323816ea52136138aba397e4b359850d5fb9c7b4480ac78da8f3e8a5266fa48e5c79b6275533cc3da9332bfc4c2de3e80fe3391c67d16d585354e9f5bb7a35c091c3573e31932de871e518f6b896a160fd7b607ebe63ddb125f6e11cddd754c1c823ba96c722d2178e1ae70947695e9f02849f81419f58ed31a9fe1a7cbf077ace14456939136138aba397e4b359850d5fb9c7b4480ac78da8f3e8a5266fa48e5c79b6275533cc3da9332bfc4c2de3e80fe3391c67d16d585354e9f5bb7a35c091c3573e31932e1a0ad09302e70affa09e470781c2abeef38d65fd74e4803791df012bb0f593c625bb64ab2b757e5284ac022d5876bf056564363c44708847247197895b0c21a11e6e1221d2678b0b7f4724a7c3af635a4eb6524c792b204012892c8c117f505ee191edde2d9874f480b8db583c509db7e6118dfdee9dbc8956fe3b73ee8140000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000139c516fab2c20672884dae9452babcfcebd9fcabf7ada26db2f8d3e9cb8b4cd91ba056b0f20b46506f4c000f1201e8cdde7f854d450c3dad932d31d5aca5b80d0b121cba96ec529d2d1e2e9ee54c20fd2ee2b743681a7548fe2cb7388c2f5ab6192dbc3f098943cd345bd0c183c7216668743845b8690a06beef88c2e51413583a99a31f863e8de44bb987c06465b1d8a0a6754840900295db53776efd12a39f0c01eaa0f8d44c5276dae767b03bffb8a8ef9b8447a04c61b896aae47e51738a343521ad7e6e33b1bfba13b9189dbf9f4e84579ff37899f7b83945ec72f088be2dfe9c60863d14da7f602c4da95679ba7146d185572c9e5f82e2d2d80fe7229f3a6b47a8796a64b68a258ed5e46481b16736c491aca39ad9f8aa2fcb0f6db5e714f0fecf4ab9dbdd56f2b56a2baf8216aac54a95bdb3236ebe28e2f69c5423083cb20ade9fce23c6f66a13f9641f589f17672923cfeea8c27c0d1030b375ed8c355bea702bf5a63b8b907c12a139f8300d5459e981f2b9097d77c36f517b2021114855889ad0d63df4c2f7f1de84920ec613fd1b14914f8afc2960194957c8432181c1083fd703015786c4aa63bcd88fc2267f8da26334329aba3512124aac7e2b804fbd95b8753ea55c9df884e4096dd9440e209e3db5be43d2f047f179acae2b917c63dbeb05959d7ea87108d5f5ed85ea382e34c5b9527f1aa89cf26d59802456ddaaa7f873ebb780ef1c0b0dd46f23fa76809709757e20968767acb285d6318cb84ab82eddede4a82e07a2e04e14e565ef11ed0359f313b96c7fe8d272991e67ac92ba3c83c497ca0c89dcd14617c5cfbd0bc70c254ee4049107336590761f0412e7a1364797ace0100ae2afddcf6ea1723bd6d322e98230a25ae8187ad40d2e01e65dad69c98d73231e77bae126b630717fffe85b22a0d6e30cf0124ea139a586d68f72577180ee277844f46a03df68e37b2b8e446564509a875fb03a91281c13fe0fffc0281735dcbcfa0d4df105ad0584f5d1a398ff0641a2d7e5dbcc2d64216b3a6ec8f601a33df438bf4c9cac0f26bd673ce18703a0adea37319368084d10868cf5834015b52bb99019f5eec83f7dce93056b13e475cfab539a1fbc09da4551c6e56539295ea819d8d2b855d613a5c989715ad8f80d1f4da5fdee210947d48fb87cff5c4f53d85682b43b0535595413afedc08186e94361d759ccf91c73104647bb14e306b7447b50e160a3a8bccac6775b86d336d913db3856cad736ffa968174d7a3dbc52c307dab6e9a766d4efa461c3911a3ade8f61151b83a40e4196755d9198999b92bc1421d55cd7f90146a2e547f2d58d7fa70b96fbbb6325053b2a140b62b74eceddc5437159eced82d10a5494ccf3f119a1223c8fce153269f8f80fcb794f54a20a154e8cc7de430de7f1fd1963b50c1a82683619002a3c5a525d50e9777ae5e94b0de21eb2373d62d26925ef4389525b771072c6c2962215635acdb1949992e6af16dc376519067715f15edd001509657f3858c67dde15a4e906ef7f06e750e5cf90d78e67d7e7dd87736dc0cbe8f3edb86b1c020912312928232f0704c39ba75853b97b23ab58c3767058f73f42f6caeecb0705c0f5094fd77f363c3f3aa89a72e51f3566046a91252b1ab8dcb3653c0b5cde14eeba053cf7baac2936af71ac44fbf68ba8d263a16dda07d9f59071bd0650e668aae426c35c6ec0a4019b04f956b416ed0b16e6d15166f20ac2cf03990619ff6ea6f004a05d662828d605fd69dc9c6c6725ad9d41e86a180b439449a4b05f8ee6a15a2240aeb558e2464acee65d29f1acaab0e3e49d313ef8de0879e3f22551d54a911a1aef2c44bc3534610a0157a059304cd6052e8f193b0fc292e5e80d627cc2e501fa59854d5fe8aa2723553e37af4810a65684fa4828107f212f3b305362eabc327d94c930e75cc5f2d91d0da495a7c263cfb7bdfd0ceaf2e779b2ca104ed5eb148f7b630e75dcea9b51c0ef7c17c17dfa09fc2c7c715731b5f975cb338379ca2acac6ec14c76541967a6197e4834f44e0a8b5b0a653e5049e8ca870416a22e330fdb4b45a9d9307315c9413cd4b3240c1d039068be61b53c641ffe217fa42ca2a4688546ee9ee6f1e2b3920092fd1913e8613509a8214ffa9d0df6bee5bca940de6c362de4476b96adf4a95b01d90e047b59b594aeed5da15bef1e9f80bf3bc2d19e914e60dc779d64eafd4fb377b7711233651015f20c9bc7f085dd589a3a62982f9e5f6e341904acdc642c4b2f7fc806edc7e533c1eb962fe3f669dc37571167d061a091cbe6fb53239bd3b4d0803a1d7bc7db610da62362ef186623c8a900f8ee17dd27047d17604df4dd77ed7ee1b5683838445ae4c236faa3a14d14b3230711e822d8fb82e89fb20b22881281206f0157885074acf75bd86b2eb2eb4cf0dca67751c3167174e185c85357a37a66669f8958c0f6e6118012235681677f93235988ae3ce98e8b1e7a37aca85c859bbdca0667d3d8aba812c0eb797e9880804f405498cf703748679ce9a0b63163fddcb41efb3002ec9ded87a1e087057dc3b0bfab67308fc8b79863165f49ce9c0447b570c564cca51ba54b6cef78fa8252982f9e5f6e341904acdc642c4b2f7fc806edc7e533c1eb962fe3f669dc37571167d061a091cbe6fb53239bd3b4d0803a1d7bc7db610da62362ef186623c8a900f8ee17dd27047d17604df4dd77ed7ee1b5683838445ae4c236faa3a14d14b3230711e822d8fb82e89fb20b22881281206f0157885074acf75bd86b2eb2eb4cf0dca67751c3167174e185c85357a37a66669f8958c0f6e6118012235681677f93235988ae3ce98e8b1e7a37aca85c859bbdca0667d3d8aba812c0eb797e9880804f405498cf703748679ce9a0b63163fddcb41efb3002ec9ded87a1e087057dc3b0bfab67308fc8b79863165f49ce9c0447b570c564cca51ba54b6cef78fa8250c8e75409cfea4dee8d5ef0552162e0956ef2a6901d74c5dc30d8531f7fd750d3d2ad1c5a84311902048eec5362fc54d0d1d9ccb0b08409046fae480f0b3a5db059566e6dec5172aa9a3d8a9347fd6550f6f1691a37f82eac53d94a6e7613a4813923ea18517c0e7c6fac4d117b9917c9f0728c9ec39dbb77de85b5c17f2c7f4398ac8dd772bd7e2a1144df4ac2e83f0f1260852cbd7b88ab526753260b1d55b323e3b1d1c123ee2d30ecf582d1704b82f8c69a0244896ce6975d78eb7138e94258eda5162155a1e6b227b61e79b402a733e081b6fe9e3f0cb69d2d682885e430434db985e86002ba4aa672f4bbc59bf8bebd928dd5e473ec5c452796e0b09981009c37c9a306bc2b1bba0395b6b5d56f419cbaa5fdefadd683544dd5136156111831ac16c4903152a4239377cbfff45223f0a73686799ab4316bc0d50b85a723c00d04a622eb3a58ecfa2af7248f2720918328a9083ce966a6ddd4106c481c936caece573b0c041c38584c49fbaaa9b34c015b0fb1e1c65453ce31bf164b2352ddc23d8843c43f66d8638517969fba1bbe8580163f629d310e2171420a150ad2f42ef98d2a52d8818bc4c69b216a93698686c631b57d5ef6d7721fcf75992343c00d04a622eb3a58ecfa2af7248f2720918328a9083ce966a6ddd4106c481c936caece573b0c041c38584c49fbaaa9b34c015b0fb1e1c65453ce31bf164b23521d2275d6ccb8610651e006efbc7688745da81f9d6cf35ba02d29903ccdf39f73bc95e32f83baf30923c70cba94a09bacd1b72f30b60fea40bb84f77449cd8712e3cdc54208e7efca87dbf1c739ac37304752cd66d2b7e6c955d21b9a1bdfdf8235e84e291d8b87bf6ced88b65e874c5d3771337d78ca9ba4b51d60dd62870680000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000126caca2710371ab3e7d4634dc66a75717d01b49171f8e0fd37d6fb3bb128edf52fbc458e04da0f485d380a0594dcc3539b152de9414c055c9c3ab642ed69c6e33647bd84336d686bb04b996bcbd9722a2e06eef2e6538a63dc51571b721467b43d9f88f1d9fb2827e87df2410ef07171f8c21c7f393aaca3cc87c5067fed9f87146b6a10079ad9a40069e36e04b18d4d2330fb5f1bdb7b61d475b570777b980b1003c64fa305370a264c7c554517dc1aaccde1301a70d22da0dc73438dacc2f81b24798013225c56ecde8789e6268036083c917b9f830831613e7fb8681fe8290e594038a29ae3074a17d96246f8e9b6007d0bd2e3155cd325dffbcdee1c63773fb22947b7efa005f83bc42be21681f2f9efe4e98676642335b04cc8ba01e49f1035829e8aa9ba1ee00287c6b1580a366a24ab2217f5c76add5d7973d3bb8e2c0d9dd7cb7dadefe14ccc300e1266ea174192ac9905eff4b5632c86c3d77b8d5333c5af33de645644446cd1c133ba8ac070cde47cebd4525802c5c0488839aca01a63086320af99b252b90ef479860b38db9fa3673cc8808ebf936fff95056707160f372abac6d65703502beb926e9c027be2e45edf4e8f650cf7435bf061f5fa1e6576ed6f0cd431fc543edfa67d765e0d254dd84cb506db259b7fac690632ca1add0ba830726cda83111f1e470312a1e6600ace2ef3a04d5162eb7922a9e8a10c96bbef84274f21b703accc16af04635523c3e0247a25f131c74705c24e0bb025e5c9a6ae0a8377f481adf643fccb24a98a2df2764c3f96f2ead526d382516400a79f6a14a7152b213afa96c47cbb87e860b4290357800e30cf53c47d1177142fdbaa0c65955643353da58c27ea36a2844db90699c09ef8f61d1838378b757136bd129a476893f17b0600ec529b37b5c4ea038ed82a88fd140fa00faa13e33512711d1fee47b63796efe869a2ce35b750e1366c188f6f883d24f57be1cd5fce3646fe7bafc540599e2f1bbfa85fdbb16919c5511feb697fa124b61eec29e9fa29834a6a089a3b3c9bc482311a7816e8d6bb9068de914bb094706bf34a83cb78063d73b55cdd643c0299f1bbedc95e3887252febdf83603904b45c324cc5d746301a8ddffb3b9f2d6406e1cadf3fbbc8bc7bb16aa543c916ac78692b5ff9e7c3110b0edcb4d261c055cb1bfe99808a91770bd93de36d1da0147342c770ffceaf3647ab416be3b88ef6fa73bf51e8398a18a33757742525916cf1208d299a51790648e98c57357d06a4a226dc27dc223563089df5cd499b0742ff80174543bdc41c482bb4021895ee8e9ec81fb5c3ea1eb63f0b02f28b05493182263095205b333e9d43f8a1ba3bbefe741a21b09b4ac6892064419e6d5d47c161ae80d4f621d7042fa340edae865a6ad2a0d06c5ca3155601862796b48e83a65bf746c5b5ef622fac79e450206fa09e534bfc4863347fd33bf626fc0d745b0027f924f99122ec0aa062281c70684d0766126869dcedb55807829f2aeeea487b664010fa8d298b3b43f826a530c8d710bb454c84307976822f8350f19fd468c75f89eca1a2222d1587df333d7bb1eaf7fd14337654a7e14fc781d425c842f179fc9ecb9a9b2fec2c3fc49b9076d523ed12c6ab330cda023aeaf79447e1bc1d4d09e72f3d2cdcb207ca40b3ef7e111bc5ae7e8dcf2c24af5ab99aa65805364279f03f3f0cc75efd1f63370f9a8008cf6d0a32e0e46cc98765440b7b2adddd36fa285e7a05a21d3b1ef08ecd50744c4f487d00fe66305de2012335f8e927d833a78363ce518e095d2ef44ae08b88571d2a53fc5e6e3e03fe60bc1b9d3267df2ba23ce380bb06137c260943114996cf0cdb8b6c23a67c9958c29ffabd5bfbcc919536c48d5a3b1813308f2db3390a6ab3df373575e0c4571dd2f9129b2b5169d342602f99cd1b0c7918141f1f2374bce9345ad26119e80cc5d89181a3112f3276e67186acd59aac022abd269db0bb7b00e19808332a4ef0d088d416f343e2f5e987c05cfb06e2b999384428c4a3cae8211773a9a6e5da91e8476cd152da118cb1c551c7ebd4881c5a0f46d96e1061db003ec6e043b1a6390246c70535aa6f0a0ef50cc92f289118390bef54297dc7d81a63d4a159f52e8420c0e13823f5bafe380324e2544b12667c128fafe7c4ad573dff2d99cc915ff410c39068556f7960e8dfb008f970ee66191b4050ce0a5fc54d7ba3d9e3cf74738a53f296a74bb7048b38cd95ff46c718792668f72cd19bb61bafadc0b19db3eb2763baec2ffdc90835dbcf92ed0874b005199708d32e6449e450523f4e624c14d8be8baccc0b83f0e5bd5d9dfff78b4ffc000cd3e0180a8e8a6e64c378148397c48bd2d1fbd9063dba7f864bda2a4770163ff32c1fe7f57175919b3c87eb7c683b9673c7003046bb6119a6e512d5b88feb004023607834c8b427f7d1586691f6d6bb1e19eb3d1f34a47d9f7b42d365306e3fbfdc9f87cb374bd8082ea7996e092967287f10cc2dc4771b8db5aa2c9acf930140b0e25907eb84c7d716ba00d9d231a7968198319c0736741d684e20f9f2263ebf4f1da6f8147b3828e945ff262dce7ab01763d7b0f1e5250fc89edf060ddb2668f72cd19bb61bafadc0b19db3eb2763baec2ffdc90835dbcf92ed0874b005199708d32e6449e450523f4e624c14d8be8baccc0b83f0e5bd5d9dfff78b4ffc000cd3e0180a8e8a6e64c378148397c48bd2d1fbd9063dba7f864bda2a4770163ff32c1fe7f57175919b3c87eb7c683b9673c7003046bb6119a6e512d5b88feb004023607834c8b427f7d1586691f6d6bb1e19eb3d1f34a47d9f7b42d365306e3fbfdc9f87cb374bd8082ea7996e092967287f10cc2dc4771b8db5aa2c9acf930140b0e25907eb84c7d716ba00d9d231a7968198319c0736741d684e20f9f2263ebf4f1da6f8147b3828e945ff262dce7ab01763d7b0f1e5250fc89edf060ddb3c5f354a6809f5d8fc0d754f10b0845dec5a231524772141e6eba5461ed414fa0552acfb4136a8687c086867198f336159a70e0de3347500c25c57abf0d8fec11de7898ca0b76c5ccf8ea31d9866d81454a22428dfdbb89c3b361d9f92cb085725edd8763b0e9f24ec8bee196162f82280e8709816f727bdb7fdac9abcdb63e027541176da83940bcddba5bf8fca313a0cf166a61adf78fb1346d8c784dd7d832d20453530a536138a5e783467eae3615daf0175f4fbd68ec917cd7f4275be39227540383b7afdf410f271f0e0351c0831df6f510d3bd8407f2ed3eb70f5bc710acae72a2f689511f97308548c27da6e25827a2532409dc67754fc46b0e92e44011c70368251cafa3a9d1d43276700552c4966997ab9e345bb35caec036d63d52d9984b2636e7d95d7648d19f09250ebbdbbed363f3f0389a1539eebd5e1d9b6256d0959e0317b94da37c2704348955c8259f71fcfa70eeb3e4982c8959e72fd3922206432f3dfcc7c9db66cd40c3169170a7debe25aba8d226ca0ae7c7d7cd025b94128f73e9dca3463e79356e8a38e0390eaba0e47185910389ef44e60e2b214bf7a8e83bab872976ba97f850dd47c47b71a560f215c5d1ed32ca6524b9d61256d0959e0317b94da37c2704348955c8259f71fcfa70eeb3e4982c8959e72fd3922206432f3dfcc7c9db66cd40c3169170a7debe25aba8d226ca0ae7c7d7cd0329ddd45c033c4b974f5c69e817f38e0b7e372a10efe002fe216b02c6e096a451ebf442a165ed5e1357a20e37e386581a3fa76f4dc1376666070db5da5722d303af6c54949efd354650ab457ea339501956fdad9ecd50a3bdce40c04ecb92ac62964e54c1ceedbdb96032106619cc3317c2473828a4e520042cf5b3936a555970000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100607eee70a3d04d8f2e46b78510e1019a2a6e1b2552d91d97106732842278a70c8c301f35962716c9a55bfff1de7d950e9732fafefd0b637969a6d0215d855b1316fabf15537d0b9a0b600ff880374404161616017a981c4babbd53ff6e00a1037ede193333077bda67bb0a26f6d82fb5b3b19c2d3b4d1bba6e724ec0a76f753a00476bb60dabd0eef1503717330f85220e6534a011addb21bb2f94bf23cfc338a8ce885aeff77c3aa481b7f61599abb5eee7fe5de7745bb33f34f732647b890cfef7a68ea4eb5b6de3c53679550828eeed32e3a17bf9921c6732fe109f3bc239f14385a7cb9df4a058a6e602fb24669cd45dc59650187aef3d61c086946765096255006e4c666568963b6a50b728069d2812e309d80f2284c37c1e83cfed50087033f9e1a3a6ef0da5d4ede5b0e1fa35bcc1ed28d8f881bce95b330abdc644244f2e6cb40c0d87bd829994021811cc52eafa7804f1fde6605544c56c53ce170e37de82193ad1eeafa89ebebb22ac13192212fc5f5bd7faa90fa30098d0cc342dec56eabc0d586a3c231b7e290877c672805bebd9adf7079210e4b14e03614d0b14654842aec44db78e537a2c47ddccd5c43b4dbf14086debef091e2320b38731fa66b960a0f6387228f6a2393fcfbb06e7ede822901de2f2f55c5a400396a1357aa1a7a3ea981f72d731fbdf50ff51422aa0c7de5be31fdced9473f48d66a52877da5c40b33d20112edb42b56fbdb3ee63e0bc4128df8fedd545f49c1de9e923bbbd5b2ea984f045eff2879c75a636ee6d7974921204ccd2cfe8cdb005d8c038a489659e077d482441706a1a2c21c27edc7ba1cf45756563282e68cd0dc1c017b9b1bfffe47cb3bc193a6d07c39b1db26e46e6962edd638442aee2fd254109032c43072e804d5008f3f75715a973db02fcd9b95313d639e7f7096ba81c013639299ca290155568ef88f795dc611160d0b63f63a206f033fee207b03e6a76cc3d8c988e2bc6017c59ddad868eb622df2764faeae16048a70a873b8fa0cec4a71220b0c6c51fd2cc320e93e73e47f16ac8b48220f65cd921f090379c4d561de70fde2a5d527e63043f7e7eff45a9efd6d941165545bae8b1038da06420994db418227ea3cdcb7b2f3e5a0f1a11318092e788faaa8a9d629b2a7088993a15b08f03efb3983bf4203282304cb5c40769b29e18fd1a662345a2d686983b256c66c73aaf2550b237f053da9ccf56ac358083d7e949834dde6d7869ccebac8b1f69200a176f74d030ecb54187afda1fb22f89e1ea6c38fff7bb476a7300044ed14d8f31a35fe8e9da3551fc2bc6e3a84d3880c2833e6da482b94f82116843847f9c6f0eb443f5b964a55056a0fdbfb11314c010cdac9fc740eb4ccfa7b98b8d96d5d511f5c6cba433215872f48390fafd1db0e045d842036c69348706ebfc63c1463306880482679eb0f96b782fa7c935136e529397ffee88d77449163614427fee73387203063724a39e01b03a83d698d9f839b51583e7593466cb46dcf6b8ed9d423e90beb83d5230979ce4eeba94259c427c40bc010327ec89e7993aeff7168ae42411d31e26cd60748607752ff6bc85600325064aae0f0357fd292d718905654c18eaf6b948706449a24a329c1cea5066c7155f5fda45a733fdb98899304d33d60616b0ba8ae6ea0a1b86a4b1c74f936168de364893cf88b6f89c9fb41ef87f8e3b149029230405c0d99ec06d1540d9aaf03dc5a3c23859bf1e38a893cc9f04380d9bf7bb53607ddc500e38f5ddb08b8ac57cda14c891325f11d435619a0fa1a53d188a595167836aa8b6688b6fbdb6f92c8f52f86dd758eaec90c173ee859971176ffe5bd6548eeb9b2f4cb6c4883cee702100c9e0eb1bf0e256efa9cbdc30e11401c5b8d52a220b023a5af6911ffb32237b5342f8a6a75d1cc50f163518720e3c5f8860edec0b32ec913d88257b9b451cbc679e1c041ae7bc7f1aa495c0b6141e8db1b912736601f73f77cf45c3c941117b3f339d7a701cd633946e83bb07ed32216ab9798c558a9fc8c91f4ca42b4c1dc0072704465286a855fdb1f91e53cc38a7fd3f1606b6a29ec02afcbf83ce7ba12dbefa75cf31c02ae4069502ef8e130e97b6d799e5e1b4cf00c307aa098df900e5c9d346986f34d145b88869879de704d7206279c1268e2b9ee39aec52ef51081f4f172bb71335978ae420c42f413f350dad5f90435e9951c823414a7fc448d457df8c10a59c3488e5a2ba6e2662dd000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae0591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f62000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae0591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f622ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec1aebe5602a8f012b625ab7294163b3f936535be6d1710961e568ba8e309576381b3b6514a5e576d3bf2166ce9c7de55051cce16420aa35ea7603aa0f35bf89c4244521909e9b5acaa5db43f72f0a2bded449be25c8721acd65d44008e053c49932cc9fbaa6d221ba27e3b44f177f938d7cf171c02263a9cf8842e050c65a2734116c00ea9c1bc19f9ce433c485676e245b517df10c7d8af760bb4090478102c130829fcdd5cb1e6f7a29844c0e178b8700403eb47f15271b1118dea6527d1a212c5d4b3e60675d3250e23f8668dfd240a7423c157d20d058309cdf5d913961fb3a8199c7a3ef2b4cc57459924fd31ff0909d51ace7c3bf6a7b2ec6871d20ad6d0907c64532b347c431682ff5de12a6dabb7611c175de7b7450d0d6b0e16f72d53f8accd0a2fe98f110745ccc315197fed62328601bd6def78157fd64826d63ca36442070166a53eb94968cc7743d12a67451f94c00acfb90c6bb2aa2918a1eab2d553e5a63875d475ec00d3ca900a224fca973c33d072ac892e487e278d715530907c64532b347c431682ff5de12a6dabb7611c175de7b7450d0d6b0e16f72d53f8accd0a2fe98f110745ccc315197fed62328601bd6def78157fd64826d63ca361b610458503e21cc7bcaddffd4c073cee6d5401b86507fc7c72dd3b4a955f109c1fbf2566a63c825bf1ff8710a009e236d575acfacb1acad288f8beceab4b60569ad0dc0c0b377be335a2556ed27aebcc777b6acff66af49ae51d867faff9b2c952ce6a0f7c287027da7ef3b47604988337ab1466a894e4633d445cbeb045500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001336090e278c2fd2a038b67492acedc64bf5298f1a580be1dd2842011db9252a62485a5efdd9f0c34307e49c6fa2a72cc339f08db3ff1a57700c992d8068f54f312da3ac5a30b48d457f190dbe1048054c0aea0cfbaf4ea9e1e1c4a8b6893c6bc26e67a30d913a45c110b96e01e1f1b5fcb5913ab041e3587195bf12bab8dfdde0c6f79f4f8314cba889c9e4b8c0674bbfb4e6d9107d425fa0dbeb6b0decbf4251ff5322b2c83e728f9fdc86cf214f3add8f65f706664e38af68b87c8ce13068305b6e33879ba510e657df3757bfd16e307bc5162bf7f7de70011c7bf75238560387bd233e367daf18a8ff7707128af22f92b437d2c76af9a8aff77adee9acb2b2890c247a0ec665d66c65750d4e7579edc2fd1aa91d21a32f58bf76b30af612036c748b5efef5e4d465e1df8511cdcd0fae891ba08343aedd0824163708f482b0961d45f0ad3bec92aa9114efe9e54aaeb55f21ba88f167d730520d70937378631cbb6af1008eb0aeedf9b9b93ada284df3b84f835bc5351dabf0e4c1dfc7bb824ae12afc97e753968042bb631f2e7942a8ad2591f4c204237809dc6a351bbea0b92055b8bbe2d61c2055ee444338bc94451c7cbc1c31aeafb7b7f28ae8f8b8f2dc7fef6c77de1d848808b0a78342fea34988885bdbe21d40267bf1b147ec71e3e62048830ddb3bac6d8e922760136867c25a3efa91b1889088692b86efc83b43f42cd6bf19146c83f1310f0a7f9b8692f790f1413be6852616263e1fd8aad42144d20850a3dc04dea0f201b25e75c64f2746ff854c0f56cc0cd9d1f55be47553edc029c526c9a8e6bcf3104aa6d261829208a9e8e85b91e80ecda5119e2a6c30cb7b84d7dbf229e41106598079a984040aecee3d450aef52175ca3c45aa318a2fdd02117a90461ef2380b498ba1906471d42c4b22767d74240ce8ccf6b2238b2694614bc482aeeff395d42c018ce6889b27e7e7a729cdda3ed6304747daf62623dd36fa856d61418894a8e50077a41cec8689ccf8f40834dd96b496b9a031f11908118117790dfdb8e0cfbeb0ff38b9b9f5efd09dfad623e43a870654af036b0fab5f9139d7da9c476fd8aaae4da055531279d76303dabf36d619a184c92eb128287e6308a9124e008164b7a983ef1540eeb6c01806174b835a837811a9f462201df6731425556c43b866b490a89dfd2d709083cab59d6c6cfb37af4db9360206cd7c75f8fc8b8cc00d17a957ae678fac91b0745c74dd334a37588e91f2e7be24a4c15417802e71b57d3e1e8f14da3450da928ce94bece367a218747c40a57234d558a2907c10804a929f825bdd91af86d89b4893ba23e4b821b1db70077c8b3ebea84117096390a80f7daa23fad4081c71d8b8bfdbab7d7a54315a503c63342693074fd3da432919c79f66772ade8b97c432358e5b8b3e24cf9fb4dbee2db7310b7bca832b284568064ede27301748151cd02e418b06ab650fbded3d36d1b820e26b4f8e99919f6bf49eb9369e01a4318b3509475cd17bc3db73a6244af71b1f7008c90517c4e56737577bff3e7f54d430127098b001bcbc76c79a36742af10431d4e03a265f47cb95ff999f6c8f3efcb9ffce5d3045e3c9c77c20b3f20b9306c0d99db6adb0cd724def4ca15bb2d5d5f757c5d2e8db36a7da448a708542c93dcd15db5eecf7b7d4084ec448388596704adac3c9b6203aeb8d03bdc61f6d6e3f11911cd3ddb31226fd22d50130f5098dc03a5179adfe12375a2209c293c2840f68d2604e790002e2105ff92c960b88f054b072277999c21fa2c7052f4a2f871d7385ebf5d0482406a6f1927eda5c3144631d9424009ba53b74139f37f15ba70b8bfe67464ed5f8ca1bb081cc9401b2347cf197ff013376907f302be325b0ef054090ca73bab27aa4488faf1fc6b00e5728b3d13885803ea30ac51acac7aa460d34c0f8ba61e91c913b38f19db7e1c878345946ee375b3159939a9410f296030ba7ac467451b46af508effaff79153e0c1dc7886e7720faaac235f76052759a17c9239cc2a944f51681c15459317eb851e1a10f48cd0c833d4e7a2e9d4554533a9925dfdf50bc482f88cad15c68ef4ec4d1a3f045d8805848f9632826006e4c163396c0aabf399995af50d443902d865c33373c3c75529b9a3636bb613069100f11fc55fc9168b1af7c1c3c66d060d322d31d638de85cda65595862d643ae681d3f33d2502901a5c743e333ef2a0c9e0142c8f40b4b0ac23c8d1b769623186b1043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a1043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a3ba6fdac0b77d30417b290295f5091155d781ed0d0a66a28e5a091ccf9031fab1883d6e1d3620a99d127d8cf8f9f75ddfae5984b4c8b4ceb80eeda5649fd19220b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc28a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e871e6e0637fbd2eec7f53d9274a1ec6abff0bb5a737b45b8caa2d0031846ce7ac63e2a62af0c0ec157b4163e558a1589e5f2ba4a4494e1c6ac46d6793eed0d61503aaf8c3339f1ab672444e10a08c0dc0efc9e314ea9c148b218529c30eafd8e0a2b14b240c176e1fde32638dfea6520d5983e5f855c8c72873458769e662a2ceb1d6a0e5afb7cf7e470de56335d310ff0d4c2db1069fa5d8157b7ebacf070fb0905658bc419c6b4c20a8cbfb280bf03d8dbdbe0984d0a63bd1af5ba6f8911e8a8127381323f9fbf530967dc8447c416a96fa1e32b0b281b6702eff53454096a4115c87650577b39bad636654ee00feafcc869db0b5eda86039ff8dfd84b6c28b939346cb03db80572a9e11b78b224ea3be1e5627d6cb4a161201dbb1881b7a39c3edaea3ce3b29d21497258d0f1510c6ad41157af8be9aa05e08adf2916c3b85a127381323f9fbf530967dc8447c416a96fa1e32b0b281b6702eff53454096a4115c87650577b39bad636654ee00feafcc869db0b5eda86039ff8dfd84b6c28b934761c56d9a6ab9e0cee6c30965ac7b11eeda95b5ddf4f44eef550241f34736f0449890edf67f0677e5f047159bb2bced988e9b9e5f9d9a6b9a2a48bcfb3a4fd38bced1e1d8bc9a790db5d472120a66ca345ff07dbf6e8f34f5022a02ee5bd121f8fc5838989633c2fc5e829102d2ad3d856dbf8b4b8c732ea91593fcb830eb5000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010c9b2b0c6661ba16b2309acd4d5b3fe89beba39d90785c24dc0a488c4b04da651e254f5071752bf62f33abc8f91018776028b024c8c5a5ece963f8fad2f094a734b32bff81e93c7172034d1306901f4db246105ce00d3bb065f664f9f325b1d90d230424878c2711a2ef0a0322c07a2817fad32ba93d2fb35f174d5b6a9cf151067289bb0778b8fa746b0a799b80dc87eadeef899eefe23e902cf50046a5bb5132378a73d5728f8cd172ee93b9df88c4c7c1ab82fe74b4f31fca9d35d2015a2a1268b50da14219255360064af61deb726b12d8267c62023ea3f56c755e06468605ab5b4ec7d9e30230398cb1f080d1cb39fd156759c8a5e86aa57a097fcb22a10ef7f69c10370942a0d9c4825ed3849413e54c80d75e2ceb98564e55db57a922325f389f00cb2cbf14236a908dce2237b2d0f066fe1b07868ffa455bfcda155b27a2289d7ed72c7a5ee3fb349fe47eb8da9bcfd8aba3c503641698c0c6a4967a04a753461c47362f98f1b638ac0b0059bde1850c809d35dbb46086d3e6dea82624fbdf0c4c64a1c772daf407aa27b90344bccbd8819cb746ff98396f39db924826f0a3dc161d06b46fb2644f14ea98501a3d37ed725d6d9ffd076d2e534fe75919898e5708f1c6a4dd715b4b9f29f00d5145786c681303d76c88f0e98f0255e82ceaf160d9da28bb9b00a6f9b48356f38783fa482e43fa17f7c25a0cac491c672b8fe5b9c8bf8566ec29c63256aa89208ef857e095c7b63872aa08176e518f5a2b34b0db23d51c28711c2ab53bf3f1566b36c76c20079f9b613d3918363d12eb2035d61222f1b68db2c2881ff49ed3138a3b9b01c0291fd602083811c4db8480022cc686f16c7c86fb07992f39bcde5a18286fd8589d9fec8943328d20c8e58c18baad7d113b0cfe968f00768588c3fd8e900b9a6d6a5c198c2a14b02208828d1f61fe14db897d897e7e4034377b01708e877c33531e4a56bad28d691692465f1e6048fc93b73f2586af1e1797b36b13c61eba8041137eba1923cba9c1d72b3622b3d1ea0fa6e4c1d46e578f0d3f4c899b2012f8c903f0851b60ebf3371df5573543cb914e33ff514994be99d5352cba994e175928857bbf04be17458795e2d21d16d90fc2c3c25365f482b5292d9f59a4c4a8478b0c6e7f21ac8e8dc8f537330a0b8f41800ce8330d56d8ecd3837db0c301cf11a6c8bbf91f64b59e4fdaf9dc3248fb02caed93e6eadb4f51d92416813ee772ef261859b05501f98711309f1a3370fd2a6f62bd6f1cff35bd7d8479048eab7ee4d2a58c2732d526c7c0eb4e593852b53a43872f4ad8064cc6849da26b2ecf44cbd121375a0bbaad31de78bc6402892cd8adc7788e1aebace438ef5f82e0dbb97fe3a764a547c3bed721b34c9a25ab39de58c4741cf1d04b1f9a7d57bded8f52ee3b13981e9c9fdcdcdc56f0a0303ee639bb30be4ba0f0936006be9e9eba6a73ae4d3de9fd4f2024f70ae4b74c123751faf441d9759c6fd4371afd9afcf427a512857f85f785b189f3a33e5ff613b10a602adc54590f34eae1a7bb1d15295b5f0e06549ce197d4ba5129987fc71a0d7d985fe80c72b5fbe43c09205dbf47734fff16e3408f1a4326906c9a72893c951f165126ab066dc8918a589a779b4e5f25f32ce8c046bb9e39b5293114ee20653851bb857da9a76f5dcb45045b574d35c88e7811cdcc264d88e9fbd394b026596d5ce36bfdece7a620b98e0b4b2206a8fe37983725439df54dd6d1ed14d222c9f36149317c018235d8db0c11883616287822b7703c3e9651c9d075ccd3f51d6ab8fc089778bcaa140e6622b86ef3950b87939737cf1d3d2464cc4473e60e250aeb72dd551e031d61a6e7fb8c366bb4ff65c636d6e343abb03422e9b8e5932551fadbd3444ff1f79443ac4eb3b5cae3eb5cb81e2e5279fa0cddb3a8d64c080c75f886d5e85e33962ae725386da4a7595ad073e0ecd1b1fd3f9ab122bf2c980d5f595f0aacfdd97e51bc978a28f68c976b907410fb0440efa8204a75f230fd35321d9e73e91c323c22a0561c6ffe06fc8aa8355e380434c6f2a1dab96b268120bc66a4be615214f335a587de413d0914dd848ef28c854141f3e7aef586e9563faf32beeea17a4f948ca2ffc69a3090776cedb19fa234528965a73c499778bf294e2f839e64cb4bbe384e36d70d99d2be92c850e6e6643103f7a9da67adee0b0dca2bd5864f524af4912ad0f6e53a8de875fdebcb9deb1ab05d6764e46a2c311bb21bbab7170e70c6b99ec5718f37fd9cf67834571ad16b92e9316a65c98474244de44548e8f18f3946613a8e70c802855020c7b23227b00643ff829a367b8d0a7a8aa593734833e1a019db37cc17f3cc43270da0ec24e2ac339539fcef96423585755a6c8cb7cc1e5fe624c833e80c560371ee6860d438ecf99bb3031069bf3464b53be14069036820814816fc77c2fd4fc344249cb86d5d01ea21f0adef4a0b9b4ac41ebf96fc97df7eb7e903883d24f6d5b7e4b040ae3c2b46cb0f5210b705f78a2b66420d1108a2866872ee56ce69746c6491dbb5b46c54cef5b365ac6e3a0875d499bdf2eef75d79978d11a931b8d22c97777143672cd861f74c9a53931bb21bbab7170e70c6b99ec5718f37fd9cf67834571ad16b92e9316a65c98474244de44548e8f18f3946613a8e70c802855020c7b23227b00643ff829a367b8d0a7a8aa593734833e1a019db37cc17f3cc43270da0ec24e2ac339539fcef96423585755a6c8cb7cc1e5fe624c833e80c560371ee6860d438ecf99bb3031069bf3464b53be14069036820814816fc77c2fd4fc344249cb86d5d01ea21f0adef4a0b9b4ac41ebf96fc97df7eb7e903883d24f6d5b7e4b040ae3c2b46cb0f5210b705f78a2b66420d1108a2866872ee56ce69746c6491dbb5b46c54cef5b365ac6e3a0875d499bdf2eef75d79978d11a931b8d22c97777143672cd861f74c9a539314cda1b9433fb43ff84e3aab6e2756c437f9c72677fb7a3897b566ae006fdb553fa1f2a2d0b4cce733cb9590433d6813522b16e9db2173a58e4bcaea7364b2a4047780b393c9324d25d3cf2c8399bf9cb8b67dbfc80f7d2ddb11c11af25663f7235b5f0d6a17565734c6c297adb20db96542cc678885f50ad8c48986405d7d6b27fbc0adb0b3b292c8898ac7ef5270fdc69e1a16eaeda4a0afa69ec5b276274b1537ec91b8aa7d53887d0be2d9d8fb901b2d2c2b519e1694db7df63c6a54bc502c546fa00213944899f0e4562f8175b07f669eb688d62629e35630af44a866c512b36c7dab377db212cdabd48a6b28d193e3a2e31d87d4915f3827e4340f9e5a3da1a3df29b2ea8129c4d6ef0070d81370801f15826b97c5c3631eee2babcb8c39f5330312ec00e2e58e4caa74920636dd961c4ebf7df4466eec0e7fb0f3b8191a7822fd4379938ac37b11e940096756ff778aeb234d4a59ae01fd8d83a3a64c3f7f199596e90012e876866389b6d5da0737e3ed987bb8b480526e0e8ebefa0326badd9328f71972e1ddf6280e3ee99f31965415c94201b5266609240d39c0b61d02ae4fc533dcc1976da7d80f108a338d1f4ea6aef28986cb4a0d694c3dcff41a7822fd4379938ac37b11e940096756ff778aeb234d4a59ae01fd8d83a3a64c3f7f199596e90012e876866389b6d5da0737e3ed987bb8b480526e0e8ebefa03031060e555d3908a15606f9b9176a68b5f71de640d35569bafb394be4a1c56ce0afea80e76f8e7ff5aa7a328f3016fcc07ba05e67c505a216f77273bbc56176834af88f362cef095458c07ef5f5f968e39c804037ab9fe11684d57b5ab34fd551e04327b4407de7118ee0e11332dac8ef6a9c5bab918d5abeb6e55591420d5fa000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012bf752afac75a9f54029b54c99aff1a93e3fa618ab1ec7a6bbae26bb29344abf1f3639ae923b5c6b8921907701449098315d9723b3691bb2daa2cdca58f1061735ff7b934bf080286db6c61f790f27653366a9cead85404a1ea35190f5e23c2a01b2f701f82aa47cfc85102aaec5ebaeeb95b90b2d6e13e250249ffc13cc4c313ab763c24b094d5f6425b66485563145dd59408b7246b500884eaf1d6d810bf327ee5f0395e52aa9c9e4b590b07fa73f1d2aa6d7ec065815378496fae38002b0220bd3f9409e9b7efd466bcceeb8fb7bc164e5591cf6fd6f038cdfec67fb079e30e92135b6925b5ff8adceef68509d4add63e21c45667c1ae44893618a88ca050abb395a6b46db90b7fd19b2d8175d1cbb5b8865bf24cbc4b99057311ec86bd62fcf37ee80cd07610c3af5c983dedefd68d4d320a65319a2ded83d70e365c12c09bf8aa35fa3d194eb99905d53c154d8177952617abd71941622b395786bcbe8292e4a364ff9a67067edb4b0d1cd645ea80c04eb43c4df9a061800d84f091a82135fe525a21ac5eedbd6457898729ccfde770c7a1a3fe004fa6cd0515b48a5d816e849559dd4c52c485419362c3f8cdcee79d679058494fb8fbcf819a0c6b74e169c1f5654bb54a7e01fd8a6dc62040e3b81eef2905716df3d8a32fe617c06ff2667ead2d7ffeeb66127c65168ddaa91aedf589401526dff16adc2156d6c5af9168cbe656a0c0912432586ef57172af0cda89e69957d4a56cda0774f9a43581333555d99ff8d640f66317ddf6d72ef133c2ef6374d80646ab469452f1a3883d421fc59f579c2152703316a0f09f0432f19703fd1fef84d956a50d7979509d37436bd082c460b4cdd54990e6992f1d30fbe3f24a98b979f315c5d455ec859edff193585749de58adf39c37d39d5cd4d00e8203327c917de78f0edf8dc5a4d2615034194115b5525b189b9b459669dbdf286f09f001cd84f5950b06694c843bb9815b0f4bdad93db1fe1f16a8df9dc65d0a6a2b12e6ee158d6774afaaf4775ef032b4cdd35c795127416f4e1af46da72bb8657d79f85c6b66a9eee6b014e84ddbe12f2b59289c302934f6a00c1b44c604d570e664b6b3ca8e4202b1a22631d4f093a47917138a6d6c5bcbd9bc404b6c675ab38bdfabb3a937996e176c9f6992d083b5e1be48e6636745405cff5bd3ad82e2c3a0da74b37ba35a821709025345105320a1a74f763267a0ee5dc9f344dcb678eeb10e32eb0922e1f142647d519f6402ba0f201cbef7d65c57faf06f65c6700b3e224180c1bd82c80cdbdcdb1b344fc386119381f88b8c3524fca2bde418d9480234327ee7b8c0d2d10e9f6ea10525e2d75d5ba8d8de6070f2ff08bdbb4de02f0f2ff15d7f2d5393e5efa5d2b4993ed159a374f3b0a691a503ed78e2124647b9dfe7002bc5792f4af7861983bb3aacb241cc1db36094e525008f90b0708593665daa95e22b5a298d52b9f21c8ed38d51e8e3f0dd7448dbcd03664c25f92c7590e83cfd20b3978cbdffd0b54f06dd6d813321810254eee59c3a87bd741696ea2db2056d6b8402daf256a1265c4beb0ca188afa81778bedeffe352aadcdb3ec8c63433ecc72d3f814430074d2d573a11007c7033c7d4953279ff14aec2d831efcd9a203c9a040e438737343917998f97417e4abba0391041b5714355d333c452dede058e406a3216bd69fbe336a8ba0bb2591a2b76b32e950476f70af8bf40cd6fb4ce43df4a3a137acea98c5b732757202dd0ebb807806a28a05637a2ffa90c4a078590f56bbb709ef1cfe473db5767427dc95cf5c60ac431c97bf01c98c3b42272f462086483956c4b30bf43c101b500817e6ca68f00e2a8add93e3d4fe87a42d65575949bfbaa1f1ded04b1df569dd3e41790c32fe9aa9870b9bfb147b401dd6acce11466da5f6766bcc17744f455f353d3909759dff4674442319dc3f4e834d332c6dbf9a0f8371fd700a3482048515c0cacd236190bcd51ab3005d797996040b139ea4247d1babd7310eedcc0ef5226e76dd422a369d445dbce7444b275bf0eb988b62a7b4c94a3ecd40739b590838d57f4d8bbba607eec07df9f0661237bc1590a83c8ba27fdac542c5acfe066320ef9269e0789bb393b591fa5f6390a5bedf8d5bd4c11699b3087fcb2ab02b8e010aaaa98e12d6b17dd13c44dc36dd33ab4acdf8a4d64eb3d598bc5ff4dd6cf531f045551687bdd63a0d42549c29e838db3acad997c11078746507bc7685575e3c10a0708141d6f1d8fbd1cbbb5cb256ee4eeddae80d4551f2d19dd7d0ea978403ef5f8f7ebe290e27042e3444a34da933f7ab21213fb3c9a65b93152f15687d2c532232864932b93ceb18faa8cf7bb21e704156630e762b596351831494f59013acddcd79b6cd46c314e7055730844e03d657a5a63e82f03fc9df69eb6b0a711d9faafc9f6dfd9e30977ce54c0d6a7a315d7bbbd3616385f36904c866e8cbcd2260550360920261cf68831ab3f29585f0e91d4035eb9595a5c42c2499173434141e56ef1d25f416f2f5707a7c431462b24638b30e4cff668eb2b610028bfaff2be1a910e2da0be90d0a8f8583bceb9d70006048fafff9b50a7a7adcfd7405023c10a0708141d6f1d8fbd1cbbb5cb256ee4eeddae80d4551f2d19dd7d0ea978403ef5f8f7ebe290e27042e3444a34da933f7ab21213fb3c9a65b93152f15687d2c532232864932b93ceb18faa8cf7bb21e704156630e762b596351831494f59013acddcd79b6cd46c314e7055730844e03d657a5a63e82f03fc9df69eb6b0a711d9faafc9f6dfd9e30977ce54c0d6a7a315d7bbbd3616385f36904c866e8cbcd2260550360920261cf68831ab3f29585f0e91d4035eb9595a5c42c2499173434141e56ef1d25f416f2f5707a7c431462b24638b30e4cff668eb2b610028bfaff2be1a910e2da0be90d0a8f8583bceb9d70006048fafff9b50a7a7adcfd740502047780b393c9324d25d3cf2c8399bf9cb8b67dbfc80f7d2ddb11c11af25663f7235b5f0d6a17565734c6c297adb20db96542cc678885f50ad8c48986405d7d6b0c42ba95e57d85e81e62e43ece358248321ec92aa5f4b75b78640b9689961a6a1d8394ba2e4adcaeaef721748559b459a82e03b51fc3c9ede424d047bd7ed5f205682e66e4d4e3e110c77a8c8a99157e458083d2f44607ed61b3bf227eb3af883e7a7fdb477f2bb4f0f6ccead36e55ba20681c3394e062d6b2ed3399304d47471922e5d1fb020394dd2821c25180dc3e3321bdd10d90c028078e97f6955f6c6b10edae3c951891c5011736df837e492ef59109a2da0b80319adbfc445cc8503f3c2685010205e5af841b2ae776f910330df776943e8f859246497892d002922139146f4fed7028268d1a97e4d9bfe1e58be6946724960155214c2d9c9df415892a588b156ad5d323f5acee3df494c159aa7dcdca0aa3871c49e07bebd1558c2e2a170946a91eae03366ce1fdbccffd7ddfa71046487966c1dc20b5aca27f01cc2f45c4b686b947cabbc94c94ae30be1b377152119b48c49245b7643b841381a13f210c38679dccfa1c421bf3ccf43ded371c61db6a50333e7571080c0223aca62a588b156ad5d323f5acee3df494c159aa7dcdca0aa3871c49e07bebd1558c2e2a170946a91eae03366ce1fdbccffd7ddfa71046487966c1dc20b5aca27f01cc13cac49b8404196a97d8f2064db041f2cf7b8492ac52b9ce9cb1fe683c7faa321b7f020f56b6b753d1983b5737bb0ba95256daaf17a53031f238b6ce2f62315836d9dd61f68818922d5e20566b3a887293f884a502f0da0daadc70319884f6df31283748b12b4f460adaea53fc7e63b6a4ddd017d7f12d44ccb156b9068ef07e0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000123d15c6cf5b2ff04ca2ebc36660a421c4d92b1abd7d5786caa8bfb28bb9b2920388e1fbf4805edc57dc63f35c682bb1916094b2842f7a9003d3616e18ac02b292f07b4e23387df66b986935f0b24df080618476cef9231a3812acaa7a1eed3e32e3c8a3728e804a8596b26db79fc5ff2b0c4d7f09d5a0456ad512c15d32af5af021f10602d06a5d2ccc8f5eb851cca89610e212ab1e6273448bf7af59b6e600d0a8f3373719ab70c49c71651ba0c61f10e528ac82844d09bccbba7d42b92d52824a754ec74f12909c1ca21a244adc53d06d7f299c3f53704ba1bf8873f271e851f3b84cf6b1eb90794a81abbe03653dbc739f8cc3a0c0bffcd4cad09575245012ba5a144a6ec5ae95aaa978f571997a5adbe8c116ef6485af400e3be03574143230e2656a122d50260f34bca674e582e30832a1a5ac109768943c6ca27e0c8a732e32ea4d6501911cc5b91516ef74308e5f04b664d6f7c48b3a1d3896c828fad3c1e2844c61b9cc3d48a73362ebdf6953b744a8b840436d5be2a106411438ff20bf209d5a28445cdee48be58752ab4b99484336ccac3101b3c9e8daa316fcde91e3d47e5f5f6609967d11cdc2ef8a75aa1fc5c7b3cdae16143d5cbc8f1b691400733bb7562d493fc5eb962d73063e9acac3f8c0f8a89de8e1979e962d410418e079f5580d15ed97c1af81c262ee7969d4b12abb123c6fd451cee34132aa5da890cdb07b85959bdeb9b6cc70271b7a6b765072014eb30a6d697618182f3732290061951a3da2c4951efcb6ba2c8e0a3ddc0cd1d1dd2b5f3395e41d1c830a32035052842f9389305524975514bf80dd7e43ea8830d075944dca85171065bef945d329dffda50ab20e6a34452835b3df5ac781f5b0828ad4a30e4338a7f68d022c01d22c76911cc15c4e38585e3d2611d4e1549f704cd8d6f9fd64c40af5564c29424738ac1aae4a8515b18248b0474033f0b7e9299aeddcdf6c9816598cc9ae2183003779aa90b0fb3a2591ef61d490649ee9be71a586eccbb2be6d53573518bcb07812f05d371414bbd9ff918dd3c458f4d04e7bc813f3cbdcdb0ea3dcf5c69c13f8d7a4247c078b6df222330cdefd6e447d31d1f2f53d5101fbb45bdcf4c3ae21033136bf7c39f4bda3bbb091e34fbb068fc03414ae648ba3d1c723f08435f2215da41a35d5703bd7c3b08c06429eef68178530b00e4ecce67badd5243fc443736001c435587fab61bcf55e48367e9c9b39d37de91f86bc6e6542df43acd37471d36d046e6623ee15b6d8aa2e8f0f36fe1b69e40eb11ec126adf448848af15fe12afd6177394a62813c4efb57e6f25dbb8302a649d59254457ac8220a932965528f6c8daf13f95c605443b926e0dfea46b4c7c8f63c5926e0490c83a1ac4b6fb280753f6bfc58eac3ae787e8a7e67032d71a7e623994ca18539f479512de092409151033f76a0ae3a6686f46224971563a3d57a537cba3447293869e475470e73caa939543c41b21e9c4eaed8b6f52c54fe4fa7299ebfb37436761ed819cb7cf12813dbd81125b8cdfb4f808742cb5d4244d2ba7780d6333edf4cd34b00544e11a70d69b25a9e881b1bcbe7154cf78b23c52b153a24aeb6aa86f0d54ddea76e7259ba9767dc196db85838cba914042996b9427438988657ba1ae5f71044ebded1edff62292415f70c3f51d12671ec611b4f854e21a33ac7e45f097c9c797241634cd4e3decfd794d5a94c6a31e05c4ea1ca93481ed165e097b3cbe781a6435d5052d57b718a856056861cc260ab4917a233435f0e18670a878aedefe7e39595d21493255da7a05ee0a6638faf14a5482d80f02dc6ae8aa86defbd67400b87cc313d1cbae03799718874959aa9d075b736ad75e198c3f388c27804725874949151d8fc5c6137b7bd3141d689fb3467df58dcbfd814bfaa2749506a74c2ef5eace1c2b83ca1f8d1de8a795b4f0bb46a180e8b7b596771017535e93245071bd3c2622ea3ee0989cfcba1aab44d70830647a55c9c52822d10fe80d468161c3b92a8d3be0fde06478ec08da4c38c68384e1969a3aa3ae4c62209ae812e9120500cf571e41cd6e4ddb5ef02da34c0cd71646312dfcafb45fae9127273f0c7154f4cd9e2bf787c7f7ff5620a49aa3f12a605ef2e63a6eac85a32f94e874b467fb30ec0a3fedf7b594a1726560fd522498509660a15ef2c8055d5a3f0dd558d81e26b1e3298c53383d788b671306a0b4de920c9007e4b1b920b4512b08fe8f2e47a0e4fe01b938c18aafe9f5a5f8c82f74aec414c547645d28ad43ba56624d06ca0357563e46c73e7550160a5a0737d08b513beb5cff349ee09fb56142cae3e635fca8ab089e1bc7b56f91cc3ddbe8ed4769d467da64f5d1cb6252a3afeb8121f210b4ae3761e4384a906e33c2241712b8962b9847e1a32a3deaa677e941afcb0def4b532b168ae68b2dd8fd354b8ca26511260743f8cd18f8eb9d326f9985a9ba53876614e9751974d22702cab4735d9aeed9f8de4dcbe310615be92993ab4345ac789b1770b680b7e53cf20a79bf2bf955be23ed083688c0b326a962780989a3a1a4fb288f497f481ac30df58640d406aa41dc353e62734899d27236b527635c5e5b0601b938c18aafe9f5a5f8c82f74aec414c547645d28ad43ba56624d06ca0357563e46c73e7550160a5a0737d08b513beb5cff349ee09fb56142cae3e635fca8ab089e1bc7b56f91cc3ddbe8ed4769d467da64f5d1cb6252a3afeb8121f210b4ae3761e4384a906e33c2241712b8962b9847e1a32a3deaa677e941afcb0def4b532b168ae68b2dd8fd354b8ca26511260743f8cd18f8eb9d326f9985a9ba53876614e9751974d22702cab4735d9aeed9f8de4dcbe310615be92993ab4345ac789b1770b680b7e53cf20a79bf2bf955be23ed083688c0b326a962780989a3a1a4fb288f497f481ac30df58640d406aa41dc353e62734899d27236b527635c5e5b061709b395ecdd7145b01f3db15cfa8cf1b8327eec8beea5431732cb0848e630a222fcff711ca6bb32171257895548f0d889e96121e743e2acc701e0bb637c5d8c0da9914a1efea3e5e652d1bebf32fb2c4a8339fdf7e114fbb9026c3948d1e57b2c9c5447ae1258463f3aab447a9f9906b7afbc722f2eeaa83dc7e2d2b05d155533a4ffe89edcd0f48aad7d03e65501a41b7d74f235434cbff622390271badfbd2f471ecd1901253cbe48eaa120449f9234db7f1c3147cc3c8e3fb3d6972ce325342607414525f0f244575c06b9051fe8d87579b36878d034c5195e9fabd1e4480b851e031aa982bf54cacf7a607f2848d70c572722c46bc9dae7622a49d99f510135ab3b28af7ffa8a647da0600d1571c58671cfae1a084b8a512712f1d0d7b403c7fe1b372dad396937bed633bfae834ed80fe183ca0ee02804e6e1799e906b0019ce44ee0e9fff8b885fcd5d566c7425cb3426a3d780b0f6316dec3ed1674f05a5ffd799ee791a1e19fa91d9a54e8af417e367cbc1eb54fac42ca68a228c091b4cbb1ff423ead4698df08fe3d277e21f90e011857d3edcc8f7f9ab6e47e9e53066ac473546ec87a9b2fd323017762102f41463fc2724e22d909e4bec268d220019ce44ee0e9fff8b885fcd5d566c7425cb3426a3d780b0f6316dec3ed1674f05a5ffd799ee791a1e19fa91d9a54e8af417e367cbc1eb54fac42ca68a228c0933433d04e39ffc58fceb24afe797a46d21befe26c689749b8a1e717957e9d44729a42d5b33a5fbc474dd296aefa8dc2f5ad052f4ef2e4e18a22584d2d91aa07c117c9622de397e962557565f70fd345458ee8e39b33b9558b12367e5fa9f69d229046ee0f0dcb6363aed4e6af29471baa8493b25a6797fd821a59b4dc988e94d000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010ae5e1c31e3dea274a29f365cca89ce2cd8bbd59bb260ba0f948aa29ff615de8069aab16392e5f2f8c08e45422d50e9d48917c11c8d8ce2c2d3aa9f162df05310adaff094fac946f669d95068093c208633b3124d48da57a6238ecb981746d5f36d12cc17bc9533e17f684d120cb3e383e5504d9b896cf03cb01174fa66600de3d924c250f4c16f3b19317066901d92b76fc502fe1125197ffb5471608269b17368c11cf2334db393e8e633775bbd875a57a0c5f6cf0b22642a6bc7252190c8031cd7bf65d4262177fe45c4de58637b74ffee0eb212fdc7b56cb769066f246cc28e468a10e833c2d8cb63e443f4f846b8124a364c9e4c1751c151144e5215b8821326b8a7d28b37ce3f638bcfa59520f1d35935e5f683f8f1217ed58662c1c911c308994507343633f4cc67ae61c0f1bec66bf00bd02d253bb5b42d75f999f971646c10c99e4127b72622e3fbc32bdd7fc14e16abe028853f2e3fc94cf179b470ef11dd5ca1f95a9a5b648659b735f9afa7b06005a84e2b4cb52de33c4669df82b11d0a4b23ac3756b32e30889a48d45b27d68b02185ac8ab1d6749dd971c5173edb3df744e691ce8e8876dcf4e21624841e9ca370ccb96c3125854bc4b78b87296e0c67897e1df68f892ce505cbdb1389af652e99aaea6585d36d015199ce4916c7e52ca9325d01b26c44540036bfce646ae3a33784cb916736a2b642ac4da30b4b242abad0dec7bbfbedafa2c5b8fade5ce3c7e0b0e06a935c7337fe92afb61602582187bd0c7c3fad239abe99d557023daa916686ed8580e0416eb5c5d3ec3fc1197c0a3435980e96bd5f9d8b7ba224a0d06c72184ab9d4daf44c58ebba7507244c1bcc43209309c939e927767d3bff5e7e9b589c63b2fd45317aa35ed89528f804a08fb995ebca098cfab33d2c5172d49035583faeeafacfaf9e4c6161bb25d77f434ae9abc454d952c7da5d1bac94ff7d2199a0e70e33dea3d36517b183362a936554ae8fe2683c8f577355c49e02e036913874ab5617804d0b1e63c22b04dab80764641fc85a0a6347bf3a388233be588ad7b91dd24c63e9f6f4d018aa2560d9e7e8e42415919f43645523e8ab27c86ad5a4410200b4d5de6fc0dc44861afeab13008b489c6f407442ec429c02f4fc7b5182ae971bf77d18b184387095290f0606da7a22ed047b8e059de1a1eb120b2733674bb3aa681af5d52dfe8002147f3ff91b05cf8c6b73537d4b1667c161382574aa1e80d3ae160395e9cb6b670e89f91b4fd15a16148130fd6f85c9edef4bc5638fe0ffb941e9a7b850cadacd3ffa6a48a632ef7a70900eb47993be7702476e2e79205f6ae6deea62674376360d476d9833391f4c4eb118aac84cf64b2f49a9415cf9001d5a6c8db1b17222c50b8862e5eb9c20927e091b946f34a952c45742c2d19feba81bacef58532261301f68f86c17222cda220331598e7b4a911ae910b1bb2e24024e6e2f70bfc25d6a286689730d2d647e2bba1d0b59c3f9abd7028181305efb773b02e179d75997a320b94e4040d20185d01a26333376817aec6fda273ba1a567d3d91cc53cc160220beac6b9bf419fa6644d45bca878aa700b75a3bd627097a5f0b7e6024e3af9e8398ffc5fc6a4e8acf5b20d0442def277ec636ee6b028ff937e3cd3df06c614483004dddc20cfaddc947cf882f225a4ee38e31fd3458da0c64d6cab8366ad44d42602a83b4f524cd22d1838be5f4c04f432bdf24e6776f8d6b6e99b5e87df0547180e575a42acb0c05fdae10967e50e5e5a1d9c75b24d420d813d09d21450bbc60de661a6bbe9e6268e2d10ada8e936ee69599d6d76f603cbb72544304c83f1463ad0249f703f7085cbc2e7ab07769bdb249f9842ab0c3f4ceeb224660c52525f1bbad9d57bbec1599b15c5afcff483416d05824686767a019724e21dcebd109f175fbc686d7b2a1daa67fe6848c0210d9d4a629f3a15563a0f7fb42a9533a3df21cd5fa300c90bb6cdb0d6c674905362432a926a21c8d13e909199250e44597c27b76197c871e9ae703af8564d225b84375e8aac8fbb32a29f6a69c79925b03d1c9496bb275d11a3c27737306f29c03d47248a70949f92f5229efe1b8d75a52f003835714b2db7e3864465028c9423e0841a6ee2810a8b810661d5d7df7b454521768e062a8d9855e731be74e274786401332dc9a3832cd4ab963526da7038c0328a7c5bd1f99b0b397b24d4ff43f41043e1f272afd4b9de928a5c23039a4a3e07fc67f0d2530e47f91f36ded523f7e7013069392919e4978abc6e0f780c038c3803980f2dacf1b806e0c9212adc081921162fc2e03314840e70c2dd87f3fc7527ee07b41b9f4767dd9c125a29b3d78305f20e1dcd8176f5b5ae264d583c11bc1811f84be460b8982263eda5d64c287d1c548ade3bcb8225e37f0a9fa7c3ee4507a626848a1c6507540c5bc2d083358eb6e67ba0e7a06779c0df2cbbb92c58a93859d97b75e39af8abf3a43d2f7cca716b601d5b21ac91a1d84e043146d3a758263ec096b28df924a43dcace12900bc992806a2486220560c45bdfaa9dddbb4d19c13f694d7206db5bc23531ed6ff4368fc62ed7832af3bad4d15142622244b407fc67f0d2530e47f91f36ded523f7e7013069392919e4978abc6e0f780c038c3803980f2dacf1b806e0c9212adc081921162fc2e03314840e70c2dd87f3fc7527ee07b41b9f4767dd9c125a29b3d78305f20e1dcd8176f5b5ae264d583c11bc1811f84be460b8982263eda5d64c287d1c548ade3bcb8225e37f0a9fa7c3ee4507a626848a1c6507540c5bc2d083358eb6e67ba0e7a06779c0df2cbbb92c58a93859d97b75e39af8abf3a43d2f7cca716b601d5b21ac91a1d84e043146d3a758263ec096b28df924a43dcace12900bc992806a2486220560c45bdfaa9dddbb4d19c13f694d7206db5bc23531ed6ff4368fc62ed7832af3bad4d15142622244b4022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe3c5e0dfc420c69b8c9b3968ca82c303773d9405e4373769d106110b3c354aee60eeb52736737c5c7a697ae19115a5291fec04fecfee0f22623b96d927f9cf3ad15d27a9825d93d77f0a3aaa1ff2d82aeb30fcd210bcbefd00fb4ee4c9e8c4a14149d5bca08406f150526211d7557f9140e65bf051012d9af0cde2aa0009749ff09e437dc891ec8fdf70cfd0004032c519b5a4699efb5e4a68d1195507485747000de7ccfe8e196534955e0d75660c2d1b84bb8d42768604310e8bbf10258cf2b2b7daf5260c290bfd4966a6aab0043b18e76968a2f8279204734ed0f5f0b1f0a1abd3511536821dc461c7d674732bae6dda3b9d00728c5266be63961803211440d7914e1c1355fa9500415a876acc5b20a15107097e0c89d34b30f8c4c5460fa320cefc0dc269bb058d5e493e469e5640d49f43f9be85882f708dcf119c48e982b7daf5260c290bfd4966a6aab0043b18e76968a2f8279204734ed0f5f0b1f0a1abd3511536821dc461c7d674732bae6dda3b9d00728c5266be63961803211440a95bdee31c777d68838a75272997eb832f4a11c14d012c3820d499b616f85f40811d7197ba6f42d9e57094d812fc94cfaa98e5d8b21ba31da637c1f31d634d6000b071bfcdb0198dea869c46d8559903303c03a59a41b588d87f84c507121743d93101115f0e7276d99796959ebfdddb8bcf3468415a5d9e86ee272ae0b8c63000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011187cae737f998539f30593e5acde66ef4c1d24cef7b2032586af6c5c406a62a095b8a4d83a371cd6036a24928fb6d0cd2e1f2ba1cac5922bbcb513f51ce6e932dd9e1381fcac849c1a9cd8eac65b737e7463ba1a9f22222894b819adb9de45231e8fbbaf938b796fb94b868b48e790d4baf62c02a5e0dfcf778c2e85f28fadf05c1a79f8ce1e67ab2c848f64ce3cecd4d047babef789d26ada2de8913271beb283f82c661dcce390764c790158df425ee3c589a56298099d03a0ac9f3632ba129d5184726f5949e9b65ef035114c69df656cf39a2241e3f8c3bc7d2e39f7d8d18734ba2ca28bb039009934e2a2dceb6c2e1e7a0c6488876aca08a956612f1d1371d31141b9073aa64cdb646dd8bb1c23309e83a9fc334158149dc3e45ca85cb0cba322ba5e5b3b10d24ce32e7e7540b3f9e4f014456e291e017fc8132bf833d04731e1bf98283979aa28d72549bd3b4dcb26e560a9e0fcf0bceb0817f4d27780d658665bf2403a7947a2519e2525cf831f2a4192cacc9047ff2fcddf90b3db4356c047e3ad711f3e677b9cb6a92bddc0b6182d57566d8bafeaa184d74294da60a9bfb7615778a5414515613d5d8c1b4ae1d8041bf91f4a392083a31fcef75f51890f2f58adf42d757c651dc4e34b781a2ec66092e50d6725d616e112d40da5f3d5d88b421a09124d9003da502301098510e0ea9a0f3bc0db95d07a43dd42ff6012e64393a282adc344fc26e147962a119d67877bb56ba6d82f9de7904636331099863db30584eacb0c3366c812df6d48b70283cd4cd796791049699cf35780e024eabb1cc11d43a61af302880539465df41598cedb599bc8a2edbbf31712f79213f9c333c8b8cd0e54f3c5b67f072cc58c651afffc2e21c43e92bd60290cc8f3b377888fdb1b4d45e00a3a8426fe8ad2bf43a9ac0c77011db704125e0319c3e253a9fe5cfd5669a2da33cf222e3e9be45cde11f17d2f51a6b2893a97edba8e6053e9767d26222fc3b64e4c933e6c3740cfe57fa3a16c81abcaa3881577fd2962fc54bec30dc58db192f101acc32af3f65ab92c02c8692cc1bb81d9e937bb1f4143d6ddf67ee2119c60c9e8d201548418491f4996f9d665a599d13d8cdb61fe32cacd74a6de20cf1c71ed2d9e2ebdd3b2bf7c27b2357ac3deeed12add8f90e1e315db79f66f9985bea1b50e504ae6a9741bc0b0ee077d51f2271cbe1779e3b55144c081913205b308e8909e0a20eb0a34038d832e099c5d1e7588b31c9915f682c4d3519ed8d7f6a91a28cd3c427d6f348ed173660f1d773db2318da37bbefd41aed0f56248bf001e0c9efe0900b1d6db61be347af65774bebb41c2fdc2f9a4419cb161976024efe12620d861c902a4afa08ed3663ceb6506701cd483a0278362c37b9197c296c3f546d60a4a4613f365fa7d3f71b00e2173f28fb946868e5f0287c7af994c1f323f05840eb742e20ef1f32d345eb20d9914218e08d8cda7c2227694bf2e5f6edfe204272ffefa047b9eb5db372585a88323bdae8520082973811b2c76287017ce6167d5e1862f4238d32fd3d1546178d5a64fecd0e89db399a0516faf1b213f6b3295ab7794fd5f35b9fa1a8665fa8132b6494bdf82296de7e017a6a63213cba0645b282a1f23a11abfc64f73542f44f01b1267f42d12d0c4e0918c2f2e87ba316c72afc860a710d5c1fb9ac7c23daf290ba4a292d41b9e6b609e4bbc928301e13efd6d26e9848372660cbf770d82516c92dcb60688516d62e33e5d6e7db7abf1c4d62af207eb0667427455cd1bbaa0c456fbc7e8b59796ca33352f87136a46a8904335ac5eeb00afd8920ca1c6ccaaae5fdb495d544dc367b028fa990c5223caa07244e8e1f1e025dad839bae254af8e876ceb8bd25f5eb4a07c89da41521f0e610edd92f9596f89305f6956871d2e8afed6722962f653deb29f905821f66f88dec805744d2e8669dd5f92bdb6bfa05c1ca3eebcaf849f3123305642148d1385e70b7b7a20183556e116aee1cfe0bff484f14539ca1a1b758345ae2cc69f21c2197f3bc3066ff9d5156bcc816f16b1b26574e6dda243edff31540a833720b1f11d8ab5c534bc63d2d61911ea7b37c6bdb42b2adc22658bbcf26ff053d1851358b19cedc1243f5830f5e8c69f69aa54b1d22918264406a47482c61f1fcc36b4446d66210f261dc1c77569642319745036c87bd21e613660fff2c59e0993fa5d871d0b507ff97fbe2b9994482cb4d3d7739cd767559395751f40a3c6892c6708b8cc90155c7c0c8ec5cc902a5371b9647667e34fc70bac3ed0c35c3976d398f747336feaa383f3713a35943f3c4edb6b1b51af8347c453c12f5332e0adde032b9bfed06ace6c3ec9dcfed0d3a1389ef65007708ee33a5d3a13c0cd1f5221fcd464012f953193c13623035395ee87f5d941b222442b95a2c5ec53fe6365560fda0bfa1216081d39f150f3a6e576d95c60daf87a5143b3d2226290019c9aa9f025f405ede9f7e2c60eaf0e7d8418e7386eb6c11881cb1c2ddd9d83f7f0faae4f423be25a6e289221b694b9b0d5133c7aa5fff4184a17431aabec90080f0551b0bdc41da591d76dde496b4873947c841a2991c57a88f78ce5541380a3c6892c6708b8cc90155c7c0c8ec5cc902a5371b9647667e34fc70bac3ed0c35c3976d398f747336feaa383f3713a35943f3c4edb6b1b51af8347c453c12f5332e0adde032b9bfed06ace6c3ec9dcfed0d3a1389ef65007708ee33a5d3a13c0cd1f5221fcd464012f953193c13623035395ee87f5d941b222442b95a2c5ec53fe6365560fda0bfa1216081d39f150f3a6e576d95c60daf87a5143b3d2226290019c9aa9f025f405ede9f7e2c60eaf0e7d8418e7386eb6c11881cb1c2ddd9d83f7f0faae4f423be25a6e289221b694b9b0d5133c7aa5fff4184a17431aabec90080f0551b0bdc41da591d76dde496b4873947c841a2991c57a88f78ce554138004c37cf170d22355a2c252313a00e318136f39a3ea0096dd1ef1c2bb8c26fb51b9d5a2a50c6d8a61acdf312b101a31352f3356636139aeb9593bce4d5ce209230724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f62e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd638709587a5684be366fed5b4d585796e7a7e5ccf560909712327421873ae33ae3cad42d00b1c85898c8734a7773fcde6e6af3362fc537e8d1fe577eb4c0800a32a1ac3d118f0c53456a73980df4807bea044cdd1d80f8a0ac83026c45229679b1e2dfe94e27245c14963a6ee4e6e50a81ef6143d149d890fa3d060d4fbcce9c8373208b0487abcc23f2dbc50176c88c08aa57f0078482afdc8ee361b7c5ae30736ce8f7204cdcd52921112439e0939cffed0e736b34ba50a088e2a713f722f8e09eed60eb0b4e5102fee7a5c01f3b6100e6901ffb577185772d79deb5fb23d9639e68bf42b1126718c2c16daf7d61a26c72192c1415bc802805c2c4eeff42ea20f418309f1eb8d78abf6e2c31b82e9716810100d98ab8d583533f597508b3c573645c13e931b1c4a88398c2a08869e8491351cda5c85f028ce1aa0a80ec8439b09eed60eb0b4e5102fee7a5c01f3b6100e6901ffb577185772d79deb5fb23d9639e68bf42b1126718c2c16daf7d61a26c72192c1415bc802805c2c4eeff42ea216df7a7d080a4d5fa8af5a4de365fc933464af4f2dd044899bfd96096321c93f355ed8523277b12299f0b41c0bc3ce0eac2f5a3a6cca7897cb72e55c27a04357022f7c2be1996e659f2ae0423bdcab2b92b1509920a153ec14ec52fdd998daf81974d93eb787e26a65c74a5f7852fca1a04793027ad5420efdbaa79e0308a4be000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012cfc686998578bbc528a235c52c048181cde6ace9a55dcec268b19fae840456226869c25d765527879214489c485eaef42179c8d7469c644ec9dd6439f2d420718dc79265b5739066bbb690679102e0085c43f67b897330c628f65baf21526032d150f8aa42c436c6a90017f61b36014aff57254c611425ca856f38765ee07bb2b45d38ac9a6c1590041cb90d855b9970f8e5f81ab33d29e4902bbf4a7cdc80821297efe786737c56ef993f48b7f504297820f0e21c5ebfe14f104382ab6a98232f22c0b25b3159bfc1cc30cfa76ebaa93d0592c12bf084b7da18d1e1470065a05d445d97cb51b408fdc03bed618eaefd7d8379f6e987d09544fb32a3921df812c19d3aeb3fbcb9b0b05fea444152104971ae47fe95830bc15423ac2463f3c6526a5771a8ee9b26d8b94da4944b1ed5654847d4dd0576b728efea09b691eff210e35ea2f656cec7512f90d0967ac0ff3aac489e3e5374715a2417a7dc1db10a43762c1ce759c54d86d0bf990212d78f68021fbf815cd77f579a8d15bb9f1d813102c162cc1162e7942a335b16772b8fcb0132fa81857e09c991f1a84261154ad005d4603e22b5bfe82383f467feb60b1827bfbf15e1ff07c5afc3f25ca80d7b81118ba62ddbf5ce048e9186ba13e371723e2d30d68a19ff1107d9c43b4c4a2f426555b40a8668c63285417d3183555c96818fa896bd0f7115b32ba5f5f868f4521d609bb525ecea1521ab1ae9b8a9cdb6bab59d3ab460b8282b710675bab3667386f098465baa1b61d83a8806c6269e32c9d835b2225c5220717b496350de2332d84beb41b03fd1724abb4ac73e0d1c8dc50624d4b5ba21ffd02e20a96d95d321839a61d0eaf91f3b255e1ddbabd5e157aed725e7b0619630d90b3a0648bdbc41e078b4944e7231c240465ba5b0ebd5cb481c7c3aadba779fdcbfd6bb2fb666829f5477867e3f6af1ec8b7dcd0bebf1a230d55fc7d303b0bac3985b4dec283cd2ea0764eac4b312dbedf5a267379d17ff19013a2d3531358ed25658d73bb55d837dfec4c1afa930d50528c1590678de5267fe7f0eb8d57279ba6a24b8f4c0d4c2d9e84e510c054d602a17a6cf18f1403eb70bbda0305077c822c0e4c58ccbe82272b00ab27b6ad753b56421448e301af675bee64b0d877030f6450626a42f13507db839bd685e01589f20f3dcf67377fa1460e9115e37899452f4bb96cac851a08cf61e9c6d40f857961f1d6e1cd81513868893f4edd98e860272b26ab503362203893f8f7d2d85338553ed9ecb29f2514b89a9f2c0fa4765e2452a5c08e0396231f8d35e479b1fd177e94a4a5ea667bcbf464d027ffd5dcf0be90ba465ff69b1a7fd610c4f0f5dda07e0023059e4f375804120f9bd980bc5013683a0c1255153cc237a38dec1b28f74273d5200ca46727c3a87462f08eaef869176d02d7901f1d31c5513ad5659a9e7cadd913d5a6c117d3c86760034c97b94ff0f9c4a2c797155b7390fef474d600d626deeb4eaacf4126b96ca0b44a482e55c6574987af6505d3c569cd7bc98f15eaea0ce424a7ce5abb118bbe4d85b1c152a0abffcca7c92848715b86ff72929afa2a7ca67830ae2cfebaf356ae88506925a0c415a95dd0227c08157561ee8c33546c3142c0322072a3af729b404c21e8603a89be067d7432b7378bc30a511d3ca39b6ce0a66510618474902a1034bccfa648563232e158185afc64ed1dd95f6880226df775e69e0665f692b363c718a1df688c31f6dd8b2a4de93e927dc9ce7336b5f272fe108ff2917a0d00c0404a00e6542e5f529e720b9c3cfcee7f98d97bf6affacae98a02e4ee4b59c2f5c8adbff644507aee32e92c129be989d05dfb8e950e7206b5efe2c2afd594e09599e38e825fe96346fab1389905e25922550316fa99c4245cfcb8e2c5675d3af81267d48e095c10fdb2761e416e25e40ab6e851d8ee4f1b198df30140f27bce278aaaaab4d4ee83437b43151751d142f3db5d11b783f8f91cf635f940861a07a1970a42e81d9fcbf90ff03a36e06307d60f0eaef3bcbdadc0f54e21b64a4114ad96e97f40aa0d3ef433672256ea0f9c6a0180001c8448c7b56c5f478211503185c4961794100749a6245d1fafc4d7088dfd060e248851a03cbf34e6adf5bbbc2462343b5ceed0b903ad4c03eb476001ca78d81ebd202a694a670417a81086aa85bb4fb958afa3529e570c0359e64c7590234c96e492bfcc161aef4a355556a6c7b13d79c1edaa723a75a00175af5850c48b5312811458ce6b91ca32d6cfe591513b4e62e362a21d6f8f153e8a50a7af3b74aced7eeba731946e35ef6fc91677fbbdcd3649ce4ae29070ec074c6cb993d6b89f5c8565bc0819d8f2fe320f7bd6962887ee70ed2a932dcb6938b393466c294760a37a9a43f7e6270d2414898032b6d093aabc43c26cd23498247e1f9fe3319b1cce9afcac28813cbef6fa4d6b30eecaa7a834a1d4dfe4f90d1b81e0601cce64e331650353d77ec3412b4c4b90d85e2e73f0f88f18201b06f436769e1f6ff807900906ef5cca862fba8e56511fe210030f16acc74e5f78dd3f098961e09007f86ff6f910a33579d04593f047dc273cf60c8280699ea08722c20175af5850c48b5312811458ce6b91ca32d6cfe591513b4e62e362a21d6f8f153e8a50a7af3b74aced7eeba731946e35ef6fc91677fbbdcd3649ce4ae29070ec074c6cb993d6b89f5c8565bc0819d8f2fe320f7bd6962887ee70ed2a932dcb6938b393466c294760a37a9a43f7e6270d2414898032b6d093aabc43c26cd23498247e1f9fe3319b1cce9afcac28813cbef6fa4d6b30eecaa7a834a1d4dfe4f90d1b81e0601cce64e331650353d77ec3412b4c4b90d85e2e73f0f88f18201b06f436769e1f6ff807900906ef5cca862fba8e56511fe210030f16acc74e5f78dd3f098961e09007f86ff6f910a33579d04593f047dc273cf60c8280699ea08722c2077596ab5d4f14c7435038a9742be3e6b737f77900011bd2975eecabf38cafdd2a541dc9aede8050ad6648812a33cfccec8163996bbfab69265fbcf2ef361c4e3ccafc6418112053d1c539dc198ca765b3a8d0cc38d47492143067a7a046f720305d9e4e7bb0cfb3b7ab6f2a16664d9d00ffe6e15a8f452fe648d4b20ee2b07931badafdbd1585cbb98145ff82a67b2f4b94bd1185102716f6439295fc619aea082c04067244a0b5097d8b2535880d4cabeea64b093c8e2fbe2f9efa66a6c0b31c6ee9a4ea8a1de768f02ab03dcb07adc00e8df3875dda40e7b43f757aa22b9d04876f1607ec1f21a67e209f6284fe4c7ccd257f0cb85ebbb023cd3dfa983334267ceff7a04b06a8d83d580e8df1512faded984c128ca45819e749ca9567c1af040e9a8bcd91fc37df3499f205924265fc241caf3d6bbfeefcecac04c976ac69088a6954a2b0eb38bcafc7568bd41c195159aec6025222744eec5f8f4c73502425abe23651217faf5299b77ed5cc30333e56dba19fe08bf95918c03550c9e3b43bbf6cf08a9fcae4eaea8d7a724774b3d9ac69b2d9c461d286cb0d866c2c5906254e43e7d570affb9aee4854bf65e296570be77d4c4b019e25b1d03501e7333c088a6954a2b0eb38bcafc7568bd41c195159aec6025222744eec5f8f4c73502425abe23651217faf5299b77ed5cc30333e56dba19fe08bf95918c03550c9e3b40ab3dd7cfd2e7576040fe118cb024201e5fb0fdc73ba943e4683ceb37811baec2a3ee9812f3090437e31217f6865778fb5a98e584059fc534b6617f334ebb60031e264877c5e553862612e00351893f16315253663be2277ae09f2777a152fcd33620fb263f4112a3adaff0bc34a2080c2dcdad222c0f81619573ca3ac4c8d78000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013015666894c1d9cfe843453239b3192cb9cf52d8eb6d810b74517d714e9c5d8b3ddbcccf08506395890fc291621447b4d251bc851ff40f22b2a7cef285664d11071733132b294ce190eaaabfee699fc76f889a04c9126b704f55f1bc2eaf87b826689d94a6b067327f7af982e551ef168529a981d555cff9ffa600b74ebfaeaa19537e5dfa8afb86ee07669e2fed3e22c5e9137d513b332147a5e83e0ef3880a0157d5ca16a2e1b6bbf476ac3836c698c47e9fe81b8d779c738d32442654f16824bb3bfaf540dadc6421ca1aa021d442563e71aa168bccc057b7a29b851714e509a3114909bc30cd7911e26d9e5f0eaf7561bebad8fa22b58470a308eabdf98e3801ce569ec9abf5f36abf19e0f4d880ac96772612d0f1dfeedb9c699d5a983f3dfa9dc92bd13ae8bf737304bbbb821256941a50aa8a9e68b1de7a11850e4bfd317d8cf65603bf719eac5f848e6321d382ac5ca2d8a14e831be9911890b8d2fc193519326d8ede26f34e629137a08a81a15d1eb1d860351b3c0cd3883229bd4e1dc1887aab7b583e5f7c44094adaec67e1232dd59a1b27eaa6c170c1447de0c230c9937ab02426c72e179e549a7e14a3bab61f0e4d13f5555a5d1f5a591f52be0bc37314394ae9e9fc116bb10ca802c0d7ac854e92eae10665961305d26750ed12884a47e2ac54c5ff64e1e95715b85dc8965c79ecfe2c95a1700812abd806c7067c9a619c51c58d80d36732fd0e02a5e5276f97bbed0ced62620fe311498510344887cf9a898a48aface7dfd47588d71600175ee33bad4ebe342246edfb10a00e6a796fcb4a819c7c1d113dbbdabb7151a11cb36e27aa435be10e1a516e16eb16c2f3546e7c8655974558aaa53d4ff57f6796e7343cff8a392b462a62385e633d7a979dbca2f10c98855a7812a550059a2effd47c26e4bc647e6461b98d17ab12a277897f0580106c49918b6488f01735fdf665a9316857573c1046fe3199c8353417c0b431fd0932a45b97d42b9f37477bc6503557adaee51e6d17ae25b36a0c232bc31eaf49c1f81f6369fbc25ad18c33408ddca44f950fd2e74dc92a71ae33a3c8b6c7601983861a08f5581a00166f35a54e69e61cbe030899031c71b14335190bb0f2f42f014b5bd5e1e587b12f11c7cd34c49d155bdd58698308240708037ec7971f9f42edaca514da6601b6454d61bcdf7cf2a6a132bdfb1a7bb79b662b650080d58f6b8dddd97505d798cf9f4ad431ad3071ac250e8893964a4a5a310c8b87cb9bb6e57d96a89e935f555419bcc96081091deb96eb86e8c4aeefa2472ac1eb581833d45adeb43a5157a94a2798a6cc03cad11e5fd5c54da420f17b6c1e42a80e4318d4422d28c9f2060c4b0d28db0fca6cda45fe512062d61cd82d5b3b030d9cdc4ded4dec65e0a5109ff0c037f06446a1cbda34e53b68ea0898312100f3c5967c2ed24699e7408c46ae8830c230d3ef0ec5564fbfaaa08b3776e16414a510ebe0d6f14c4400c78df80ac5b77e512cee17bff1867b7b1496ac353f2e188340141bac339e927add21ad0047dce5ce358d535f6193143672860832b05429b39455f8067bc3f29db16f7db37a0919b0d62453de8483c1c211be4f8969b101807babc44558ef0505cc6dfa195d0a94040fd547e2a3a2eb823baf40b91ef53899f7dec19c6e0f91dea30809b6e071ee09cd0051d034c1ebac19e75f066a230c207f07e033cdbeaf936755d6e29838ed3873f98299dd719ad0ca8b9ae4c3821a6be887813cd79191b350a93870aff261f9878cea556f6014ebfdc515d161a008f92374651e045728c12b67da8f32bf2fdbde7d695848397e35944033a18702372c1bda5fcc2e984272d89bf9ca398dc1a0bfd773e6715be55c1fc3703c1d5d3bc81846cf6d937eb9a34eb55413e8880407fd07650f9d4d1f964aff44ee7d8831537579566b5a8758144763441f109be380e07dfadcf7cb22191f690ec1fbb62015ad33039890175e6dd07ed40e7b04f762d7525f1c2896600f89c4258547a22fe8fa2067cc42e4cd6bf053c8947503adb634087febcfb54049a3229e5e07e61574e70b320788ecfc70b38ceff31a9fb57d7bf2edd615eef552286cc602f1a632550aac48fd4bdf39391ff9cf4db59d211d7e7c2e2bfb62aba4bd99b034976019a0986157b9d6801e169b9282d742e74f0a643b2e48ed3e20b75e25c4cfcc7138d3be135f832740898600d1cdf12d7e1877ff32e4b9382dc7777499a24d7c5b11e1bb53348f5c861f5584405a79ecff3b80f28d8e1ea9b0b74450a59280f4c62e1e44accb70a379e0aa7bbfa5861300e6c5a66e7b2e4f6ae1e8e0476d7f0b3b1968a8a006ccce9e9cab9541c461a0fc073e23c7bd4c5757fb28624edc84c7dd2697575ff933316163546abe3b9e5f041b0875344c00a1c39e04ce9e237b38243f0b4b20220009190f59ea48d5e824ec01f019eaa930bb9c4e9cba9d4e97e75000f4b4dfddfff6e6f0a615b72a17db1420567f11601c3d7f4a90764fb16818b13b3877a0aa002d7d4cc1936c2d88b89b80961da528bfc59f245ae15e88f7848c04c7885f55ffd282b33e6c93d2774764a1b07b56e08d337c74d24f8e77087b7511e1bb53348f5c861f5584405a79ecff3b80f28d8e1ea9b0b74450a59280f4c62e1e44accb70a379e0aa7bbfa5861300e6c5a66e7b2e4f6ae1e8e0476d7f0b3b1968a8a006ccce9e9cab9541c461a0fc073e23c7bd4c5757fb28624edc84c7dd2697575ff933316163546abe3b9e5f041b0875344c00a1c39e04ce9e237b38243f0b4b20220009190f59ea48d5e824ec01f019eaa930bb9c4e9cba9d4e97e75000f4b4dfddfff6e6f0a615b72a17db1420567f11601c3d7f4a90764fb16818b13b3877a0aa002d7d4cc1936c2d88b89b80961da528bfc59f245ae15e88f7848c04c7885f55ffd282b33e6c93d2774764a1b07b56e08d337c74d24f8e77087b753c45ae4868a6aa3509ead71f15fb75699d7ae17f13dc248de26c8da6687adeda286fce36c7c6dcd354f645d87fd9dc5a5263fc02d1038a65afc7a75c3bff737607b0d5bcc9ec3b3519e1c387b96fd2b5b394f2a19894a21b9af910b00e9f70833756d5b8b269cb43b4e1645cd9b858f5a91fbb368bec1f0b8c14c58ce7233b72080bb0154dd19857ab16716a59b9c322965f949922d7ea62c13144b31785d4e8225672761d053a3b33c986f1cccebeed69b8b8e0a662584daee4a3ecf52a66cd1782f3648f5f97fab6cffd97e671a8e081a4c4eb09e44539e7576d632a1620152797257afe2f111cdb0e3bbebe59b5f3dc92ce3bff292a8b804d9d9d0af15abb18516e57d087ff20e8f083a084ec8dc7c764bbc55bdb0e98701f57dd92f3e79f3301ada54f979d50c4a4e51f1080b742c1cf5bd8daa4f471b8e3db019aaa496f1cb173dca6b5ffed68beb5a2b5be612609907a0ecb87a902de801bb536e9a8a3344023cdc6a1f7c6bb0dbdc296b5649aff30e50f19322488d79f8c47378e30ca3c097bfacd6d1a95dc3365593094b7e0f37d5dd766292b8db4f4c38388e5b0a620395c1085cf57e8f62855caa66dcab049097abeb5aa48c5f67df4f0dcdd511b1cb173dca6b5ffed68beb5a2b5be612609907a0ecb87a902de801bb536e9a8a3344023cdc6a1f7c6bb0dbdc296b5649aff30e50f19322488d79f8c47378e30ca021a6f771c408bd88a901dd721981f59a087cf85587cb14110ced3a83385ec632d0aa953aba7d168ce11c0e8db8dd1a1eb570c7e5f0f0e5002a7e04eb52f96e32b94d149f123c361dd0b7836d5606428b102dd67edc867ec0d3ddbd9fa27dfea21b966eeaf0a79183ebf2f7c5dac28acaff7c79e658b0710b4f098de02a728d600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001177c2cea326619f4b5da118b9c2469b93a7cba5219ec79c86a54845a1dbbab40121e67c9a6459d238274a1f927f42fef697f829c8f7c50b05bef2faffe9bc2a90b61823f546e46300bef9e85d1ce80ef57bfc4cd101e9d1a6f8ea5966a7b941f37de561294203fdf197e092935c197fc283bb2ce0947ec3219fb3e1cd0179d733b06df43e8ed9e9cdcfcfeaaa3488e7b27d76c228aa9347b359e48e92432e0001f14285d7a3c2d84ecc25e0849d1005f06ee6e68c89283b3819c3dc72d81b8ef05980131bb382999f85ef82c456a9a493129b64410e99d6c2cb1e9edeb1e0f5a0d0a3ee8327f78420167b7e141fd1f558ce75bc39920bb6ef32845a2dac9f0543ae0e423119f69f1133bfe73bb7e283b7fcbca3bbfa61655044eb065d4d2c666259947cd5802d28cd389ec8c061850de0e072009c5a0ea82e8874e8b100459d4286ef451a6f4e32c9f02bb73c42e846f74cbaf3955d628bcd9537c08bf38dabe30e54d791eb4a82049dbf9f6d538e3aee14f6f36dd9fcce0801501587f3c05fd30a0f16d50a641a223a94837e87a3063ef43af36273ff0395269d90823ca98d73e2c351af5044658f8d87244ffe55aabbbfb81a5327a6ad53e98ac57144e45350c44773cbf6cb1fe9a637476387f9235ef5e83abcfabe6eb02922e2a33dfd49135b701890e25da70336a11698abf36ad6afe02b4786c9f6973e3f0352926d9fb3a03ea0db3cf7990d5e08ef836d8981e583a8a30edd817130e53179920fb38ef322bf498d1d292cff272381e9db2303ca789063f9552dac318d5b5689c4f8af308e27f55ae2c9a668dd6026601fe91eab20d2d9141ef83ee4d3db3eecce2e26002a130e16c6daad32669d0e75f1d02c7e9525e5f7561a7811a9f09b3955ac0e43bcebc3780d3079b05582c9d5bdc7f89a436cae9af3f88a86c2ed78b6bb6a7321760735befa039479de8ff56fdbd2e6b05ae6853ec9753be0c6e3d6764653262013a3854e60b6d90d43d424b2016395700678af234b7730e4e3a72390a7d372d151bd7203585fcf5807756463c2d36fa5b68c6234beb5b22b65ab937d92af6141a20d81676653bd037a774fcda9c6ef8cdba85143eb09accfe1d657551a1b4c522602b46d7ee185ed0c7a09faa4409f3e969bea4fbc643be44c791a4917e29282d9c0ce48c4b5520de0fceda1ee11e2e1c2fe8e8520df498e9574452dd5320d61c856a445d07b4da880618307be00d50ce10c4605b1a3c30e67a71ac5dfe01c31e4c6c6ac2ee012e40442c3a201e85cacd2f8549a2f5280703c38fe62de583961c6559a147209e0e21248299ae83a6e89de0b98eac6762bfccd69dd6e7bd309e1538464a933ed0c542e23e54b7f2641f768303d0be92e68198a0df83b9899f82153a3e533418b4a4da089961be57319ecd98c6f55220e1f22f07a26e77508938055fab8ab1ff9f8d83bf6acbe4594e71330e4a5aed292362e692551d88b5cc223fe06cc0ceb1bec0e839c14ee5c0035c479c55675cb6304817aeb078bb5440fc3b01d9c26c3a118e14485147660637df2bf8f4b99724ce3f4475e04264ea838c218a7c2f9cd1a77fbfa00db2cdea3a9cc102126b8011b80e7e1604fa172ce6773ad021452b35467aad19ae03dd4072513ffeef0a661230515ae7edb6dca76a9e361ae4212a77db44895d20148754663cc38b16541b4898ddf6508bad477eb315327985c19a605b51300a17898d4f77603778db35a84d562344c1e53564e92db126d56ba4c19c82ec45f403b7ba04f89c504b8877a7418ad51264f6e8750b722b298aeaa96ceabd612996ec19905ae263ac92cc8bd9b910c12ad682afb612db5e202070616b6fe6f4e21dd03ae482ca3ab3ab1b1f4425e1da61a7be9c8bc16c4c1249c207d4dd4557835389832d08c19156fc4447427c5db1b1dfeb785e72331a19f6934c0bea0d714b7d9fcfaf46d03c5c4552e6d68b5ae15e4daf4b58bf981d154332b6a23deb351449baa4d93952f7bc3fd6afee2be7b52a123e992361ad5608bfc23a796a3bf460565d89af1bff0d2feebbe70e78fae7376fc925a47599060fe3709b4cab4e0a302a0f0714ff1e66810b7eb3369cdf32e9755d0196110dbf086c8d31794ebfc9bdf546d48494749086a809a0819b0d0ab7ccad1cad9892840842447ad6e802a7cbe72648949c96c7c0ea8bcf7ba4a505b374a0995f49a5cd23d39a62288d57d31deb7a79b6eba3d1883578c053cb150f71ea348dd09a12960cc3380dc616f2e1daf29ad1560833ed3baea3393eceb7bc8fa36376929b78cc333cc7f239e90d1e250d652ea9f7cc12e697f5c2ca7e415f0989cd766d6487353fd01844de72be6946bd0616ae2903a22a69301e3a0996aece30f150dd095bfc002fe7bb218d4196b942f9e951d6fc5df7dd68ddcf43626ccafc3f9c22f6a4053f107958583db80e61b11e7166cd122a4af38ca6fcfc0cfba23ff2e0512ecbe800ef86a7a7c247f19e4ee18e9932edd5d7530c550c50ec1ff6ed3e0caed134193b525eb9b9349847e875983702015ad2eda75b52cbb85c7bc68afaad95e9fb8404ada14646cb67b8178a67c8fdfea52d349f3da93d949c9fd2a2363f6a16047d0cc3380dc616f2e1daf29ad1560833ed3baea3393eceb7bc8fa36376929b78cc333cc7f239e90d1e250d652ea9f7cc12e697f5c2ca7e415f0989cd766d6487353fd01844de72be6946bd0616ae2903a22a69301e3a0996aece30f150dd095bfc002fe7bb218d4196b942f9e951d6fc5df7dd68ddcf43626ccafc3f9c22f6a4053f107958583db80e61b11e7166cd122a4af38ca6fcfc0cfba23ff2e0512ecbe800ef86a7a7c247f19e4ee18e9932edd5d7530c550c50ec1ff6ed3e0caed134193b525eb9b9349847e875983702015ad2eda75b52cbb85c7bc68afaad95e9fb8404ada14646cb67b8178a67c8fdfea52d349f3da93d949c9fd2a2363f6a16047d305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe21fb658f6072cee97b6dab3dcbac82009de512e271ab489886ab5369ed4941f1174fbaaf88be79d412b9672c9d372a7d2fa63a6f94bf935c8b22a38f99927d5419c548ca9f9dfc811f060388dc34312ebbbfedf557f4edd6da91e2bc28bb6d080e9e371204e023d84fcbffc3c9e32ceb0e6f399a5fb326b02d035825e0f5085529544df698600b6afca5234fc15afd6487b612d0a789592ca90a2f047aff552921b1c8bc5f1587521d72013b3d8a1520cdbc193c6fec62b1b9a395ab530b75b732240c69883823cae0b119108c5d1d4df05cdd73f40d336d0e29c0dcf8a2f9e920fbc3ff3ee6885787280385159093b42aaa6085bead2afe32ddf04411cf6ceb29830108cb5a02fb92b96cc16107c2713d5b965caf18aaee85332c9caa0d94d41d6a5055453de0b1f5ee004b172161a4672b9d1ed3c3d60b5965531316d149142daa6767a4b51a9bea2461d44ccd381363283dcd23986c090b166cf7ddbb00841f7dce5a200d7badb935f30a1d8eea9a8b32ad0c8ca25a1bed70083bc2610db029830108cb5a02fb92b96cc16107c2713d5b965caf18aaee85332c9caa0d94d41d6a5055453de0b1f5ee004b172161a4672b9d1ed3c3d60b5965531316d14914363a93455912758cbef0f321536da45d42153b946a659d28cbdaf372349c19a72b44b35ca9e572ef50c2a9f4bd50496ad7fce118c528eb2780d5446b1ea753ee0d3e3d7a3355277eda9be4ebd55d8475fa06a3372da7c7cbba15d14accc0e920348acf4ea477c7f15627c36c3e6f28ef025ef61d14fd396322a8841653cb5de000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001244b65de8a82138faabb0e49529eac9141c917419fc9f38a98116de86a0a3d5739284779d5c3640466cbd85aa51c7fce68e5d73bdc25ec9d80c422d7c589418412c3e9644290aca7643bd7fdbbf921d2e7d4482fd69a5d854794f056b8b5f92e3e326cfada652cbe9cb04af13903d4215fc95f9b02d07fc34f9a0df0e8d7d3f717cef9cbe2e4584ab427a29454d48fcb3584bf29dd264ba917823b0bab689472054513f331484ebcc4e61645126b42906cb1da9b111c880ac74eedb88072220b26324ceb544c1c582588f628fcca15e617a52295a7dc59ec42b8651639d9ca123849de0b1f44a43683bb2bc267e8cf7770c859616ec72f1a7c27ea920a701c8433b9562d475397e616bfc395804fbaf9c69a56fb44ced5a717c1c9379cdea27809caf5e1b4dc47246749f89d3b366bc00edbbf6e270586a2dc932ba09f398b1f3c46a7f616654d8555155fcceb6ab6c5137a27cbaa51bbaad21f41ec0d27c5811f0c3b01bb5a05d3280a7e61e911d2af3cf47120d68e21862b9a56e4ae017a80164ef13bed1f5748343fdd9a2edcb36405bf625d67798fc3613d5d51a141072f22bae62f6c05c2a69659552962f27dbbf7a5ebfccbff4d620a821c8596b3793f2a186319c5bf092e5fd9d159ad82c420507201b60c33a4257c54f02962f959c7325a528ab09f5f8899d0d543edcbd8a164130471c3c7becb99827bb0302670e92b0e7ef5ba2e111d167f0aefaf2b0baaa440d82a40c5afa9ac020e1e9283d975379db68d0538f20adc23010a9576ffd720119cc25c13567fe8ba6d232e10a227357fa93f01f60adeeb90b1ed1370b6dc889532434566fd19432da7f12cbec111067e5676656dd3e7bc1832eabf633fc9b874b4a2003a9abd90c2319c98d453360bb1d6b6a6661c986ef1be8540bf51d4b89b3a5d27a3dccf94c8b1fecd19999015d18c38c01e6e4ba5ce646ebc565bd874f1cd00f77b89256799ca4c13ad36e12b34756e73429eed1fdc38d130205c39793c8fc056b6ce66440aa1e1575a01511d6bd8d13e94c7bbcf973462d985072fe01ae044956bf6ea17c55efa621d0320167cb3ce945b12e1afbdc22e4e2a9e48a898927761b1de36a04e20509aecb1f50462c7a171516aae9a58d26bf00806accbf34af6783b2e60cd7846877ea4dc0f2507bfafe6535ea2c67962fe475f070bb0df086680db921acb0fe9e2785aa98935d875503c2d098fcc9ca399d6d09c23b8b165fcc94c4446e1faec32eca43c5939244edc162b3028e4314cd0d1e4116e0bce006b753bf1aad721b94b7498ff4907eab3d30ac2c5d91da82b5e77a60a720f3c3430ec6c3f793c784d84452b980d200145b0168e735a65a40325f35dd94ce3149bfc6c986da171d38a0c50f30887322397182d48383649f26c63e53777e2a37b37259d4c883ce232dbb12eb66c5928ded956cf8849f247740432546624df5d563a2e867c6c60d717d853605bccc833180616aede2bfe146e0f8e1d09dbd50dfb38152feb6d97fb9d9bd7000f29432544e0d4b24cf2071f4b62fe8213eee5b3769d12f2ba07fd90adc6638152b06414243bdf83b75e619936c60149a58d291b27d6e540ddfad1a66eaa81e5528f1e05e43bd3e3714e479d92eb722b41a65780cd442278f93bc9bc43c8161def90e33575f1617a00c9d5bfc459767978eadc1d07cd48d03572aa00317dd02aab0b901b4116b2e4c0e633d75853553373f6bfd84f16cca183a6982a165393d07d4fbf38aa60dff7e657430b37b5e793203b98f6ee121afa46ffa35a040c24ccf0f76306245a3f9da5745d56416b43c8688ee3888185f9d8c85a66a81850cef3fb29812547c55acac46b799aa4474c64d717ec9eafff4a7df3cf0b96c68b560d721eda2546a4509723b2a3dcf55f99839d0aac11053c4d36a0cd43047b7004a341b310129ea869e63921d644cc44271c1bdde2aef55b06d4f3b3d78e3891cad523c0d237017ad6081bf5fc09393d2fcec094b2094c5307c6f8ba984fdf54f1c0bc4704266934978eb84365d49fc917b90cad093406c5c1169112b1872bcf5bd9d930332346ed39bc86422b99dac6e58b8f9d3f2deeda5ea4a6a3c22afd9e7da2ed6bee045ac196f0d5841684c5eba40249f22c27ae0a94a5ce625573594f9999909aa614c81cbbb2708205cb048a1f2d8ed46117fcc7cc7ea097a8db8abfa60709061d1be623aa2d1462070b2fa97a9ae004225f35fe8fe945617bcf753dc2714e4b931cc48e2a4e4646b4c815ae94927e28a90e83a57b3634b73e1e3e8f9ece560ed8233b71d5b1b9b94b37ea516b6d81d75713c2f380d31841dd7aeea14e31a9f1290fd6c6d3875f6187e86c68e6dc76cb4d0405096ffc6da1ff64de6c4007ae4a363029392c78a09e7817939719238934b31e418f8c0cdf571c344ec4acf851b5cb0f31e221a4dce7a78a1e0c824e51f880f1d29633e4d730e15f2aec532667730d30ce1dde5b23185875e1f37db1ae077f307402c82475c83a3a024499d9988cf40bf96aa838508645b2963e8b8799da8496d656076ee6fb4b42a96cb2c0053f4034069557c7af79ba4d69c1747866257b8b7042f49a65fdd05683c43a3ffac0c11cc48e2a4e4646b4c815ae94927e28a90e83a57b3634b73e1e3e8f9ece560ed8233b71d5b1b9b94b37ea516b6d81d75713c2f380d31841dd7aeea14e31a9f1290fd6c6d3875f6187e86c68e6dc76cb4d0405096ffc6da1ff64de6c4007ae4a363029392c78a09e7817939719238934b31e418f8c0cdf571c344ec4acf851b5cb0f31e221a4dce7a78a1e0c824e51f880f1d29633e4d730e15f2aec532667730d30ce1dde5b23185875e1f37db1ae077f307402c82475c83a3a024499d9988cf40bf96aa838508645b2963e8b8799da8496d656076ee6fb4b42a96cb2c0053f4034069557c7af79ba4d69c1747866257b8b7042f49a65fdd05683c43a3ffac0c12e26f67ab7b96cbd66298cf342505f2dedb559fa4be2273dd01899d6c3abb17105f957432b4d66c307dd8d7a9f77a65b49b53376dadd9b2290ea826fd6568a54328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff41daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f00344d74eb36915306adaf8e9269821e7f7d18fdbe18f81e064f72ed1f9b4231350512464b4176111b7ecf3178e1c6e6184b4c23c0e9cf8ce8968bfbfb15a651252145f4002eb00160145f0eec0955828f1a4069016d1ba01aeb4dc2c8b7d5d9318e6b93413a1ae9d9e25f87b4ff2113104ee04abf7d7bda6215e3899271cfa9256bedfdcbed166f3cf67200d7192e89a3a7176b008c5abbb6eb7fa995de2f2c1149a31f1b218ba1c8eef40229e00b9f2dbe6d8f3381345e94107f4c3810633a2dc8fe7fd0fe6c894514898011ecc3e0e47cfd46463f02f7600715ec21d283ef0c1b7842979820f82613e9aad8d2aba29edba2a09b2cede1d088e81884ac08451f5007c7ca5a4b3308d61c4b4dac42e0a4d37401fc648e9d9ebabb69f0e40e9e1c5c416a1560e72d45e42361df28bd22e4e2d0d417b41b1951d8c791d053710f2dc8fe7fd0fe6c894514898011ecc3e0e47cfd46463f02f7600715ec21d283ef0c1b7842979820f82613e9aad8d2aba29edba2a09b2cede1d088e81884ac08453562aee8f7a28ff53d85c82af2b2c4b62a7f46a64c75f9a3660b96c6158572c61fc73eead6333badf5df9ee3421bb5e9dbb6deb4f98b94acf990650b08a40ff92fa5a2aadccd2e9ffa2bc6e004b3375ec34ca678354628c05b546f56129bdfb53ab7cb4e81dacd418f777781db75c8b2866ee6c2134e3c7f8c058ccdb3799eaa000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013d8cafdf5857cfc3c437758e1ae5fad87006cbdb256abe3b0f243fc7d9f6db3007cffcb784c4d9a1ba4af974f04d0de1eb0dfd38264091556e357ec587eeda3a3e3bb7cc93d012cd9d4f25a80a80bdcbee2655fc322560a25997a171f85b401c2ebbabf1c297531dee6f57ebac801cc1223c3d321264e346efdfa4872d03c1060e27756d3a7dc1db59335f4c639e74ef34ef81bf2d243635e02df7a538ec7a780fa1d6b30edce4af4a0bbe8d6afac1b667a4cb8901f58ce3794a6694171810b02e112361f23ab4f9acb0a88bbb101f667fd13fde7c41b01e4740ba2408527d97080f61e32fdec4ff5a5748bbaf79d828866dc1b806616205304e1e41ab95ffb72b90b8dbb2e5705005fc80f3bac5bd0cfa99c81463a8fe4da0dcffa6d6a2b7ad17a1553918e23a25d73e0d20d88f346b603979114de19a2a9909e9aa7b7ff80c098eceab3f9cbf2d3e9c5274ff0d4c88328e99640facfe891c6193d3d58f65dd175a1840290de1697f59f00483e5397fba1d7ff0e29e2f4dd9cb53703e237bc43e3b502b63690888d30fa4f316cf24e28e7423f50288fbb6c1cd72e1be10841b185acb014084cb90f6600be658ed86658abde950b27676f1a7f39136cd1f016f16582360f1fa843be481ce256e21513b2d82dc58e9edc2ed5b1677a033a4bee02b67553bd57031388272634dddfd5661bb5505cf3a836f79f9475fbf8c2967c60209a426a440c50d2023501697235f892fa3ddbf079151036941670eb8d3c97901e9386ef3680f94f89be4fc41b351b758e4809827d9e431a9c8f8c7183083ed00092886c1fccf402ef2258ee3c9de288c7ce94299cffb808287692835829f9208a356543ef151c17e159f9633300f2b747aaf3c332f0abf1e62001e2607734f308cfe3deef128b770298eaef9dacd1356a1e4c40be51a1159c1eea9682b0eea0b5e91775773a4922f7ba171d63b439775435cdce3b1db9b8619ce860cfb06ba03dbe07a53c89a13ada115ebd2937d11a6b4430d0c7ced4be7e73e03b8a3aaf035797475bc7880d1bf1620ee75b98d954e18021c011bf25bc8d5047bfa701b61003b40b586726f00cd406a3b59ed95d6b332244b1c6749e49ccfffa7af9a644603352f2f75a529c5bde14cce7bd3d0fbbb1b44cfeb3d61d61948d570c4f0890837c7de6b85556c502f70bc6927cdaff3f2c6de686b44e826592308574ab60c3427f2a6a3c7d7cb3970632cbfc08c42c44c888c34c927dba88f8b44d6464876f5364643aceaa755164e1bd9f12a11d7982e7987b0730f7600226d122c355ce31632f1150ef180141d4d6873a7268ad841e3e46bef20a55fe1180697341bb0c36e22fbf6db2c8b3dff194c45ace168833a3b117d5f4a55295555fdc264aa60b81322932c0b69f70f0222bc1141b2d070f3d3c0350281d6acad07fea38d293368b536abb9739494b9554a622d35d7f5ba535d25352afa2406b08d6cf3cae95b5d2f2256ef20f05cc0cf2a64a3967aec7bddd9efd343752f1f5089607dd0c4cc73b1119b5cc5485889b5305c9c18a160f6383a98a03b29d4102f49f1a7381f3628ff05295cd1bed188d58e32dfc7073340c137d180790fa50873ad1a822808bc998e39e101ba5605e40e6bdad622f1d791641b64ca5becd27951add88839716076b411b163242b231cb406d267d155ad452401eea25466754b1da2c8b023c327b8290349228fe09139b9e928d7f4669cf527f7dba9bbb0b5b0c222f8c87b783bd9ea1271dcd084716689384f4b173514296b1561831ec7821fd94066c30d3ee9bedb307c46de1ea93f7730a8ed4ce69c5e8747802b008e1f9266d53e89afceeb755d201d09b1c8e3b0c2669810a9ae47c60736da73ed8ab22f1a584c0a717279f8482a3311622e3e369149308a4695d8aa4eb3e9142fed77c3923123e7070d1a8be314ebc87dcabe28ac1c5c3e90d12274d2be98c3e8686125e5145d04d54d82dcb6275b5839225b60eeb3f4a1379caae4e74848dc6e5e65bab6cb767c3fec34ff76376440b37a25d88085a9d23959c59e8d8e9288f785d1521eae9a96849d57903619ed3dbafe9e2fee0df36828425202c18d7b719af761e0222687010b0bba09613be520282aa89578fa31a01a6a7d948eb481e423996b925c9ff6fa6e70401ecd3163b82f4814ac2690d5d123fbee34048ff3845b28522037963e10b66ce948e52afa2748bb5cf2225ea983e5b9ca5fe8b8a9b74d43d3763244b59704b53555262668f72cd19bb61bafadc0b19db3eb2763baec2ffdc90835dbcf92ed0874b005199708d32e6449e450523f4e624c14d8be8baccc0b83f0e5bd5d9dfff78b4ffc000cd3e0180a8e8a6e64c378148397c48bd2d1fbd9063dba7f864bda2a4770163ff32c1fe7f57175919b3c87eb7c683b9673c7003046bb6119a6e512d5b88feb004023607834c8b427f7d1586691f6d6bb1e19eb3d1f34a47d9f7b42d365306e3fbfdc9f87cb374bd8082ea7996e092967287f10cc2dc4771b8db5aa2c9acf930140b0e25907eb84c7d716ba00d9d231a7968198319c0736741d684e20f9f2263ebf4f1da6f8147b3828e945ff262dce7ab01763d7b0f1e5250fc89edf060ddb2668f72cd19bb61bafadc0b19db3eb2763baec2ffdc90835dbcf92ed0874b005199708d32e6449e450523f4e624c14d8be8baccc0b83f0e5bd5d9dfff78b4ffc000cd3e0180a8e8a6e64c378148397c48bd2d1fbd9063dba7f864bda2a4770163ff32c1fe7f57175919b3c87eb7c683b9673c7003046bb6119a6e512d5b88feb004023607834c8b427f7d1586691f6d6bb1e19eb3d1f34a47d9f7b42d365306e3fbfdc9f87cb374bd8082ea7996e092967287f10cc2dc4771b8db5aa2c9acf930140b0e25907eb84c7d716ba00d9d231a7968198319c0736741d684e20f9f2263ebf4f1da6f8147b3828e945ff262dce7ab01763d7b0f1e5250fc89edf060ddb3c5f354a6809f5d8fc0d754f10b0845dec5a231524772141e6eba5461ed414fa0552acfb4136a8687c086867198f336159a70e0de3347500c25c57abf0d8fec11de7898ca0b76c5ccf8ea31d9866d81454a22428dfdbb89c3b361d9f92cb085725edd8763b0e9f24ec8bee196162f82280e8709816f727bdb7fdac9abcdb63e027541176da83940bcddba5bf8fca313a0cf166a61adf78fb1346d8c784dd7d832d20453530a536138a5e783467eae3615daf0175f4fbd68ec917cd7f4275be39227540383b7afdf410f271f0e0351c0831df6f510d3bd8407f2ed3eb70f5bc710acae72a2f689511f97308548c27da6e25827a2532409dc67754fc46b0e92e44011c70368251cafa3a9d1d43276700552c4966997ab9e345bb35caec036d63d52d9984b2636e7d95d7648d19f09250ebbdbbed363f3f0389a1539eebd5e1d9b6256d0959e0317b94da37c2704348955c8259f71fcfa70eeb3e4982c8959e72fd3922206432f3dfcc7c9db66cd40c3169170a7debe25aba8d226ca0ae7c7d7cd025b94128f73e9dca3463e79356e8a38e0390eaba0e47185910389ef44e60e2b214bf7a8e83bab872976ba97f850dd47c47b71a560f215c5d1ed32ca6524b9d61256d0959e0317b94da37c2704348955c8259f71fcfa70eeb3e4982c8959e72fd3922206432f3dfcc7c9db66cd40c3169170a7debe25aba8d226ca0ae7c7d7cd0329ddd45c033c4b974f5c69e817f38e0b7e372a10efe002fe216b02c6e096a451ebf442a165ed5e1357a20e37e386581a3fa76f4dc1376666070db5da5722d303af6c54949efd354650ab457ea339501956fdad9ecd50a3bdce40c04ecb92ac62964e54c1ceedbdb96032106619cc3317c2473828a4e520042cf5b3936a555970000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100607eee70a3d04d8f2e46b78510e1019a2a6e1b2552d91d97106732842278a70c8c301f35962716c9a55bfff1de7d950e9732fafefd0b637969a6d0215d855b1316fabf15537d0b9a0b600ff880374404161616017a981c4babbd53ff6e00a1037ede193333077bda67bb0a26f6d82fb5b3b19c2d3b4d1bba6e724ec0a76f753a00476bb60dabd0eef1503717330f85220e6534a011addb21bb2f94bf23cfc338a8ce885aeff77c3aa481b7f61599abb5eee7fe5de7745bb33f34f732647b890cfef7a68ea4eb5b6de3c53679550828eeed32e3a17bf9921c6732fe109f3bc239f14385a7cb9df4a058a6e602fb24669cd45dc59650187aef3d61c086946765096255006e4c666568963b6a50b728069d2812e309d80f2284c37c1e83cfed50087033f9e1a3a6ef0da5d4ede5b0e1fa35bcc1ed28d8f881bce95b330abdc644244f2e6cb40c0d87bd829994021811cc52eafa7804f1fde6605544c56c53ce170e37de82193ad1eeafa89ebebb22ac13192212fc5f5bd7faa90fa30098d0cc342dec56eabc0d586a3c231b7e290877c672805bebd9adf7079210e4b14e03614d0b14654842aec44db78e537a2c47ddccd5c43b4dbf14086debef091e2320b38731fa66b960a0f6387228f6a2393fcfbb06e7ede822901de2f2f55c5a400396a1357aa1a7a3ea981f72d731fbdf50ff51422aa0c7de5be31fdced9473f48d66a52877da5c40b33d20112edb42b56fbdb3ee63e0bc4128df8fedd545f49c1de9e923bbbd5b2ea984f045eff2879c75a636ee6d7974921204ccd2cfe8cdb005d8c038a489659e077d482441706a1a2c21c27edc7ba1cf45756563282e68cd0dc1c017b9b1bfffe47cb3bc193a6d07c39b1db26e46e6962edd638442aee2fd254109032c43072e804d5008f3f75715a973db02fcd9b95313d639e7f7096ba81c013639299ca290155568ef88f795dc611160d0b63f63a206f033fee207b03e6a76cc3d8c988e2bc6017c59ddad868eb622df2764faeae16048a70a873b8fa0cec4a71220b0c6c51fd2cc320e93e73e47f16ac8b48220f65cd921f090379c4d561de70fde2a5d527e63043f7e7eff45a9efd6d941165545bae8b1038da06420994db418227ea3cdcb7b2f3e5a0f1a11318092e788faaa8a9d629b2a7088993a15b08f03efb3983bf4203282304cb5c40769b29e18fd1a662345a2d686983b256c66c73aaf2550b237f053da9ccf56ac358083d7e949834dde6d7869ccebac8b1f69200a176f74d030ecb54187afda1fb22f89e1ea6c38fff7bb476a7300044ed14d8f31a35fe8e9da3551fc2bc6e3a84d3880c2833e6da482b94f82116843847f9c6f0eb443f5b964a55056a0fdbfb11314c010cdac9fc740eb4ccfa7b98b8d96d5d511f5c6cba433215872f48390fafd1db0e045d842036c69348706ebfc63c1463306880482679eb0f96b782fa7c935136e529397ffee88d77449163614427fee73387203063724a39e01b03a83d698d9f839b51583e7593466cb46dcf6b8ed9d423e90beb83d5230979ce4eeba94259c427c40bc010327ec89e7993aeff7168ae42411d31e26cd60748607752ff6bc85600325064aae0f0357fd292d718905654c18eaf6b948706449a24a329c1cea5066c7155f5fda45a733fdb98899304d33d60616b0ba8ae6ea0a1b86a4b1c74f936168de364893cf88b6f89c9fb41ef87f8e3b149029230405c0d99ec06d1540d9aaf03dc5a3c23859bf1e38a893cc9f04380d9bf7bb53607ddc500e38f5ddb08b8ac57cda14c891325f11d435619a0fa1a53d188a595167836aa8b6688b6fbdb6f92c8f52f86dd758eaec90c173ee859971176ffe5bd6548eeb9b2f4cb6c4883cee702100c9e0eb1bf0e256efa9cbdc30e11401c5b8d52a220b023a5af6911ffb32237b5342f8a6a75d1cc50f163518720e3c5f8860edec0b32ec913d88257b9b451cbc679e1c041ae7bc7f1aa495c0b6141e8db1b912736601f73f77cf45c3c941117b3f339d7a701cd633946e83bb07ed32216ab9798c558a9fc8c91f4ca42b4c1dc0072704465286a855fdb1f91e53cc38a7fd3f1606b6a29ec02afcbf83ce7ba12dbefa75cf31c02ae4069502ef8e130e97b6d799e5e1b4cf00c307aa098df900e5c9d346986f34d145b88869879de704d7206279c1268e2b9ee39aec52ef51081f4f172bb71335978ae420c42f413f350dad5f90435e9951c823414a7fc448d457df8c10a59c3488e5a2ba6e2662dd142fbfa54ba90f415cce321fb844d3edc8fccd375fc0fbbaf04d1f5e9689a1872bd0405ab456f0bea331cde047bb2c125949cbc4a98bfd60a8e0118e69765e7a24eebe3a7a4d4c46d006fa9e995823a4caa96918d577f18b18546bebf0b027a21b1141c585b2b3b92ff9056166a7dc5b579d2fe333d5079080d8c5010f4fd85f38a9b72463827d621022e518feb8b237b0c1db8418bdc580474bb9c1b370c628075648db9c7d829defdd1ae701474dc87184bd77f08f339b51e1772b4c8f39d91b5093b5f18c72ea50ae797cf99b7b15eaaee5a45680f712ffc5dd148133dec424af6c4a0e738d15af518683066484ea3797b357b2cc0208996753d87ecc213d142fbfa54ba90f415cce321fb844d3edc8fccd375fc0fbbaf04d1f5e9689a1872bd0405ab456f0bea331cde047bb2c125949cbc4a98bfd60a8e0118e69765e7a24eebe3a7a4d4c46d006fa9e995823a4caa96918d577f18b18546bebf0b027a21b1141c585b2b3b92ff9056166a7dc5b579d2fe333d5079080d8c5010f4fd85f38a9b72463827d621022e518feb8b237b0c1db8418bdc580474bb9c1b370c628075648db9c7d829defdd1ae701474dc87184bd77f08f339b51e1772b4c8f39d91b5093b5f18c72ea50ae797cf99b7b15eaaee5a45680f712ffc5dd148133dec424af6c4a0e738d15af518683066484ea3797b357b2cc0208996753d87ecc213d1aebe5602a8f012b625ab7294163b3f936535be6d1710961e568ba8e309576381b3b6514a5e576d3bf2166ce9c7de55051cce16420aa35ea7603aa0f35bf89c42d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd62dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a2246abbfbdad4cf426e08de505e53d908fdc5a264898b9fbbb1eca3cad9dd35b0921f7e41df776f9a63500f53f202facebeff31ff4c585a0e33131f38d113375204caeb5ac6124abb79c81a6a19a8027cb61b130b60d07929e69f35e738023680a58a6b1bb44d147ad5b7547bbce66ae6e2f742307dfe918a4c7e041939fdfa1080e6d81701605b88e8fe29d75b30637c8e7bc4b6ef3526fa68a394d415259b902e9a38713200bee778f7d92c4d550d06bcb9c07610c21ec37033bee762336d0260133cac9572b24b68bfd8d1f244084ba11d3994eabd82ebc908bfb5ac6dcd0003e22f5ec42aba934a14a76e5bc7166b3a64d009d6bad7e59eaefa93482ef3c37d7c074f1b9f2ad3a76ec052871e03b555dee86b65a68b8d707535a1f4fddf536fa29619991c4d5f292e8c0ebd31089a9f36c34c7727760119cfc5fd3d6c4b5260133cac9572b24b68bfd8d1f244084ba11d3994eabd82ebc908bfb5ac6dcd0003e22f5ec42aba934a14a76e5bc7166b3a64d009d6bad7e59eaefa93482ef3c159ccc1cd5aef05c89390c3e27eb9d8e9457105d717bc3eb5c44f7cfea68a6d30966dd1122b6fcf92c09f607d587193df7a76c20971e10e3fabfe5c24aff0d263bfda5ff818d195984b2ae0e354a2a49744164e4923ced605972104bf05729032e1beb3136ed7c365c7e79d0300e898e986731e0a1a8a35b018727dacf6a04490000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000122259c882b93051d67873f65c14df9940dba975dfc085fc0890bfe8f429f48d22f26947cfb4ae17ed968b2d153f234cc995bf52f28016ea4a65ee017578528a12fe6450f2e7b6b9a484cef6477f9e089cc56323652b67b59303e95d9ab33034a304ee394ae6e02d7a181c725aa69421c4c7af7797001d01f145915f5f0ac768414784a2777c751992604199d363a29c1bf2f7fe0aeee1439507a2d8b409abad6104149ed510e8aa0b47ea4b4cc543f759dfdccb7ec34071951d5057d47870b3b379d84b4920bf93fb5adf0ea25ac2979bf8cf6adbadb9fae29a2a5c905d2270e0c5b15334d343c341d6ee63c7a17f6f21c4bc68f2ceeca736b48d037bcf5df4e2c8b92526c0ddc821bebd64e6f625c43face6c3342e2b7c3cc5a3aca433518d805c11bfa014ff71528ef2d713b687c5e3d559d9fed9a555e097cd7d6dfcbb6523773e82ff97a436d530ea2d89deca9b8f02961bb5958ce09ec0fb4960982da3c02d33fb89d382a38136ee7e5b7944f35e5946c006ae0e8ec27d62251195be4453318080bcf62b1807aae586c99b8f82facc322cb829d7cd1ea77eeb66ce9d5d00be9ba7b4d9a95e85596ae17ad58f4f093c27cd106284eba9eba48cb6a5d0bfe02b5db3b3f700a12f8e504ce5e0125694fc1c53ce007ac80f7f56d3b722d48992ba70b7cfcacc83c64f07c9838491f47478f6b2a05d30c67edfda387649aa5f92548f1817076eadb2dcd77d934d26eec9dcdb0dc4894f229954dca96f7fee11735ee7b5418b4a6254f15bd2ea020eaa3b71534d4cee93403c367b42c0d39f2de273e27f69bf92505635b968247316bcd8abbb7d5cd4b2e6535cf273a57c6d098244d4af7ee55c8d1c822ca95a147534aa440b07ae06ee7c8d183a8a8a4df539d23e9582022f11ed7b5487d839f469f71c8fbff1e9c3be115a4f4bcb6cd4e28f83cffb9f0533d6221c5b34677cff41c3bee7e8c361609a4c9fac44a752022fbc03152efcda475de75f058ca22b15042dd2a9c29c0eae917917ca63f34ef8a5b2b3c852344bda6fcb640e1ccf77b8db325c901c595385a9c358fec55e2115f43c4316ea77800844ef92d1ca90b61e5b2ec8b0e42639e563fb0721d91b4404164771c31f0e83b2093ecbda5e1d708bd1788be8ec6c506f25be53017f318f1152b5f02e501a3289fc8f7b94923a51a845fbadc1274b4c8f708faf06e4a3e04e311d93d145106c6daa939d3abf70f09ff21e9a479c6143e43ea06908a171e9ba8ea7011de97acd40bc958389d4f3f0c0712ce2761f4a54870aa30bd02729dc49cfe921a442063bc453b9fb1633c84f6eb284c920b8bc7c432a506329d17e606f60d5e0015bac258e06613d304eabba101eb8d49fcb6630cdd024df76529cc257f5be807b08604903894e078c463c145d7ef295bfea8dd2a08f5bb8d0ebb9d85405d2135688ce836ef801989e4b773ae57daf4a63acdd69d414d9b74ca6c594d32968e111b1da3705092a94b75ad1f52be9fc981a1cbd63672688c3db8e119e4118baf290b8a24461ad045404ca6d2a7a9d48708235be1b85f86784ba8a7ec0ee4c3e33640f7f9cf782e70cb5d1bf0611a76d2198447053e7aa8f898f8d0f148e4ac421e47c05c69a7aac61eef3202305298d1485a7bbe21d886894eabe2f263c835f42c03ac266488a24afd2a2e51c668afc46dcddfb783c6fa9242c85a5cb6556949034f4fcfc35af9cd19671f9bfe4f0e3aa9c019323e0c254b592d2cc172394fb932455f5e6c01b57924bfe1cf88a7836d678b08841141a7910ccfd13568e6be423620226fcdc6283f8cccd2856d409d112e1068132b9d0fa8abb47b4618e1dddd1197fa03c38817494942cb24996ccaf756b09709e62cfe9efac0392dbdfc44861e39928c9d22815ec3a79a11a404bab38bdf5609033cb24acd35072714db7a7c24d28b2791f829b909082fa96a31bf8e48038187a058d8b4e0d1456b06beac3f2fff5fdcb9ca0365c11840fdbf06e8e74f50131a43138d742cb79e73b9b9113e1c4f56a82da298d29d59e531737fb29fcd083c3fc17edeaa116fd83955d0d89e139ca084ddcecaa131c9a52d0b5e847172ca92acd74e1734d846bc6eedd55bf522468f324447290a037c65f959ba929ae311f2d2b52d9580d07701cfc38ead1220f119d47e6af03c557b18e0bece4e97902e00dacb0b08ecc11ace984095d0c1383c17799b4c66b0210e86fde12d2ab8e2d0dd37752aa0671fc94a5d897b8811244de44548e8f18f3946613a8e70c802855020c7b23227b00643ff829a367b8d1bb21bbab7170e70c6b99ec5718f37fd9cf67834571ad16b92e9316a65c984743585755a6c8cb7cc1e5fe624c833e80c560371ee6860d438ecf99bb3031069bf0a7a8aa593734833e1a019db37cc17f3cc43270da0ec24e2ac339539fcef96420b9b4ac41ebf96fc97df7eb7e903883d24f6d5b7e4b040ae3c2b46cb0f5210b73464b53be14069036820814816fc77c2fd4fc344249cb86d5d01ea21f0adef4a3a0875d499bdf2eef75d79978d11a931b8d22c97777143672cd861f74c9a539305f78a2b66420d1108a2866872ee56ce69746c6491dbb5b46c54cef5b365ac6e244de44548e8f18f3946613a8e70c802855020c7b23227b00643ff829a367b8d1bb21bbab7170e70c6b99ec5718f37fd9cf67834571ad16b92e9316a65c984743585755a6c8cb7cc1e5fe624c833e80c560371ee6860d438ecf99bb3031069bf0a7a8aa593734833e1a019db37cc17f3cc43270da0ec24e2ac339539fcef96420b9b4ac41ebf96fc97df7eb7e903883d24f6d5b7e4b040ae3c2b46cb0f5210b73464b53be14069036820814816fc77c2fd4fc344249cb86d5d01ea21f0adef4a3a0875d499bdf2eef75d79978d11a931b8d22c97777143672cd861f74c9a539305f78a2b66420d1108a2866872ee56ce69746c6491dbb5b46c54cef5b365ac6e3fa1f2a2d0b4cce733cb9590433d6813522b16e9db2173a58e4bcaea7364b2a414cda1b9433fb43ff84e3aab6e2756c437f9c72677fb7a3897b566ae006fdb55235b5f0d6a17565734c6c297adb20db96542cc678885f50ad8c48986405d7d6b047780b393c9324d25d3cf2c8399bf9cb8b67dbfc80f7d2ddb11c11af25663f71537ec91b8aa7d53887d0be2d9d8fb901b2d2c2b519e1694db7df63c6a54bc5027fbc0adb0b3b292c8898ac7ef5270fdc69e1a16eaeda4a0afa69ec5b276274b12b36c7dab377db212cdabd48a6b28d193e3a2e31d87d4915f3827e4340f9e5a2c546fa00213944899f0e4562f8175b07f669eb688d62629e35630af44a866c539f5330312ec00e2e58e4caa74920636dd961c4ebf7df4466eec0e7fb0f3b8193da1a3df29b2ea8129c4d6ef0070d81370801f15826b97c5c3631eee2babcb8c3f7f199596e90012e876866389b6d5da0737e3ed987bb8b480526e0e8ebefa031a7822fd4379938ac37b11e940096756ff778aeb234d4a59ae01fd8d83a3a64c1d02ae4fc533dcc1976da7d80f108a338d1f4ea6aef28986cb4a0d694c3dcff426badd9328f71972e1ddf6280e3ee99f31965415c94201b5266609240d39c0b63f7f199596e90012e876866389b6d5da0737e3ed987bb8b480526e0e8ebefa031a7822fd4379938ac37b11e940096756ff778aeb234d4a59ae01fd8d83a3a64c0afea80e76f8e7ff5aa7a328f3016fcc07ba05e67c505a216f77273bbc561768031060e555d3908a15606f9b9176a68b5f71de640d35569bafb394be4a1c56ce1e04327b4407de7118ee0e11332dac8ef6a9c5bab918d5abeb6e55591420d5fa34af88f362cef095458c07ef5f5f968e39c804037ab9fe11684d57b5ab34fd55000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011f3639ae923b5c6b8921907701449098315d9723b3691bb2daa2cdca58f106172bf752afac75a9f54029b54c99aff1a93e3fa618ab1ec7a6bbae26bb29344abf01b2f701f82aa47cfc85102aaec5ebaeeb95b90b2d6e13e250249ffc13cc4c3135ff7b934bf080286db6c61f790f27653366a9cead85404a1ea35190f5e23c2a27ee5f0395e52aa9c9e4b590b07fa73f1d2aa6d7ec065815378496fae38002b03ab763c24b094d5f6425b66485563145dd59408b7246b500884eaf1d6d810bf330e92135b6925b5ff8adceef68509d4add63e21c45667c1ae44893618a88ca05220bd3f9409e9b7efd466bcceeb8fb7bc164e5591cf6fd6f038cdfec67fb079e2fcf37ee80cd07610c3af5c983dedefd68d4d320a65319a2ded83d70e365c12c0abb395a6b46db90b7fd19b2d8175d1cbb5b8865bf24cbc4b99057311ec86bd6292e4a364ff9a67067edb4b0d1cd645ea80c04eb43c4df9a061800d84f091a8209bf8aa35fa3d194eb99905d53c154d8177952617abd71941622b395786bcbe816e849559dd4c52c485419362c3f8cdcee79d679058494fb8fbcf819a0c6b74e135fe525a21ac5eedbd6457898729ccfde770c7a1a3fe004fa6cd0515b48a5d82667ead2d7ffeeb66127c65168ddaa91aedf589401526dff16adc2156d6c5af9169c1f5654bb54a7e01fd8a6dc62040e3b81eef2905716df3d8a32fe617c06ff33555d99ff8d640f66317ddf6d72ef133c2ef6374d80646ab469452f1a3883d4168cbe656a0c0912432586ef57172af0cda89e69957d4a56cda0774f9a43581336bd082c460b4cdd54990e6992f1d30fbe3f24a98b979f315c5d455ec859edff21fc59f579c2152703316a0f09f0432f19703fd1fef84d956a50d7979509d374034194115b5525b189b9b459669dbdf286f09f001cd84f5950b06694c843bb98193585749de58adf39c37d39d5cd4d00e8203327c917de78f0edf8dc5a4d26152b4cdd35c795127416f4e1af46da72bb8657d79f85c6b66a9eee6b014e84ddbe15b0f4bdad93db1fe1f16a8df9dc65d0a6a2b12e6ee158d6774afaaf4775ef033a47917138a6d6c5bcbd9bc404b6c675ab38bdfabb3a937996e176c9f6992d0812f2b59289c302934f6a00c1b44c604d570e664b6b3ca8e4202b1a22631d4f09320a1a74f763267a0ee5dc9f344dcb678eeb10e32eb0922e1f142647d519f6403b5e1be48e6636745405cff5bd3ad82e2c3a0da74b37ba35a821709025345105386119381f88b8c3524fca2bde418d9480234327ee7b8c0d2d10e9f6ea10525e2ba0f201cbef7d65c57faf06f65c6700b3e224180c1bd82c80cdbdcdb1b344fc159a374f3b0a691a503ed78e2124647b9dfe7002bc5792f4af7861983bb3aacb2d75d5ba8d8de6070f2ff08bdbb4de02f0f2ff15d7f2d5393e5efa5d2b4993ed1e8e3f0dd7448dbcd03664c25f92c7590e83cfd20b3978cbdffd0b54f06dd6d8241cc1db36094e525008f90b0708593665daa95e22b5a298d52b9f21c8ed38d5188afa81778bedeffe352aadcdb3ec8c63433ecc72d3f814430074d2d573a11013321810254eee59c3a87bd741696ea2db2056d6b8402daf256a1265c4beb0ca17e4abba0391041b5714355d333c452dede058e406a3216bd69fbe336a8ba0bb07c7033c7d4953279ff14aec2d831efcd9a203c9a040e438737343917998f97402dd0ebb807806a28a05637a2ffa90c4a078590f56bbb709ef1cfe473db576742591a2b76b32e950476f70af8bf40cd6fb4ce43df4a3a137acea98c5b73275720817e6ca68f00e2a8add93e3d4fe87a42d65575949bfbaa1f1ded04b1df569dd27dc95cf5c60ac431c97bf01c98c3b42272f462086483956c4b30bf43c101b50353d3909759dff4674442319dc3f4e834d332c6dbf9a0f8371fd700a348204853e41790c32fe9aa9870b9bfb147b401dd6acce11466da5f6766bcc17744f455f226e76dd422a369d445dbce7444b275bf0eb988b62a7b4c94a3ecd40739b590815c0cacd236190bcd51ab3005d797996040b139ea4247d1babd7310eedcc0ef520ef9269e0789bb393b591fa5f6390a5bedf8d5bd4c11699b3087fcb2ab02b8e38d57f4d8bbba607eec07df9f0661237bc1590a83c8ba27fdac542c5acfe066331f045551687bdd63a0d42549c29e838db3acad997c11078746507bc7685575e010aaaa98e12d6b17dd13c44dc36dd33ab4acdf8a4d64eb3d598bc5ff4dd6cf504447ebb2e0c0cc392d2aa3da6a1046d81222366fa0810d7c39a23789e0c14c33bbb8144d1f3f33c6d2d55c2595efb92a12475950f44e843d5930d7461f3eb3e155679a7e63c3fd1de1d53344125162385aab102e2285436d202b15b163c67cf2aa9865819c3c02e21e2accbbedae9dc9c9be7f92724a4e4c72a7f91e9c398322ab060477f2d3f195692a00545b96eb17a0edc12617cabf680e045da6f2e070a154f9fb880d2c0e6a96d5ffaba46914ea837bce9a7d04d25184ceb1290d1f8f71571e1657be23b7eb0dd201a5c9f2976fb768167cb88707db8d9ca7d2be6232f2a8e1e9a841dc4814f22dfe5a360d68926d017943dc4889de053666fd419dcd204447ebb2e0c0cc392d2aa3da6a1046d81222366fa0810d7c39a23789e0c14c33bbb8144d1f3f33c6d2d55c2595efb92a12475950f44e843d5930d7461f3eb3e155679a7e63c3fd1de1d53344125162385aab102e2285436d202b15b163c67cf2aa9865819c3c02e21e2accbbedae9dc9c9be7f92724a4e4c72a7f91e9c398322ab060477f2d3f195692a00545b96eb17a0edc12617cabf680e045da6f2e070a154f9fb880d2c0e6a96d5ffaba46914ea837bce9a7d04d25184ceb1290d1f8f71571e1657be23b7eb0dd201a5c9f2976fb768167cb88707db8d9ca7d2be6232f2a8e1e9a841dc4814f22dfe5a360d68926d017943dc4889de053666fd419dcd207b0d5bcc9ec3b3519e1c387b96fd2b5b394f2a19894a21b9af910b00e9f70833756d5b8b269cb43b4e1645cd9b858f5a91fbb368bec1f0b8c14c58ce7233b721f58081e26b71aa87374afb67ad656bae9ece3c89aa1828ad674a7ce51fc08032bf93842bf2d60223b1a98080fb866156c1f2eaba5c51d58b80b9996a54f205210f2a3bb933c5f2334705efb7e5eacc905cdee72fee63e5801331c1b10e55a0713cd3a761f7bae399c1d60639242345b9812a2f21d03b3353fa06420f9b91cae3995e7873927a13502b6192329789137bcd7c993feb1677033fe328de0e3c6c922b565266bb40f51a83d3711d452e8bfa074ec76547c251db79e0040601e4b7a3b216f825b016b5def0dbec59aa48aa33c53b21e6053005cb79918855995d1d13d606673ea20e906837f9cd56b5b4a89bb6e873bbc0ca838f6d923dd5c2609ea14ed73f58795739d2941253b223860e2f8434a6c3504d3a3f5980e465ccc7c270fc80889a8d8136b359ff7bc739cf0e0d554fa19a68de234036ef5cf47add62918f722250f5caa2272a98cc1cbb9d68f84c4c291d616d47527bf786e9f64877c1caff2048e68d49a1004039b168f40f52f4e4815e0e8b5d2ee3a02b6738da43f14ed73f58795739d2941253b223860e2f8434a6c3504d3a3f5980e465ccc7c270fc80889a8d8136b359ff7bc739cf0e0d554fa19a68de234036ef5cf47add6291d30fa7bdca175bbac53f802205cbf899a25d2c4679c4c7ff9f43db8209d4ee12689156b25c89a73d81c25d542a4301e7ffa8978bcc2a6102a662092a838de841794d9e1510ad422efa3567baa1e00868080d6995694d0d102194aa86b34289a34ae8aeec3d0a58b9dc07b54c14f75109d0a93b92081f744a03e8a49f386b20b0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000133d75fc8a6dd719fe3d3cdf49a7910e0b433b007dcc9edf56330bfa03eeedbb209f74fbe6de2ae73c668b9c8d424b8a974df8f11d133e575b571a6d450f5e8c501ac0d5677dbe925292a3c4f2d1b01bd51cb2e4a9dbd42c9e45a135d43e8cc40025f872cdb863fdc21430efb22a64ba4ca8db9c5a38449104bcd5bade7a58f422f69cb6eda02ed10f7c19056f01220e0bd6df949fc09d961ed51d43d7dcf88583cc89ef3b2626226fe1b83e145814d04ac1105c31081365c3784fab425b0e753292b89658283c624fe55ec02f57040495bf07e91cc560cca781d8b28d36213ac09201d6e43067c90765d84e2083f428fdf1e933757004b110b2e91db73e3028a3d7574d82eaf3c872bb05239f412082765616f7726018f9cb32da1c59b91357e25c158ba44bf75d7f3a437fac8c2cef46db61ec4dd7f1e73a4d0fda7a7c88976290ec1f9a9fb536454867a1a616332e2cd589e2c6cc361a25335c6da7c2e5aed254a3e6ff0291ccbd84b4372715dc433cc0e86c65dd8e73d9c5113e7c200a38029ce20f0359b742c557094430d7d66f79789b4a0968c453bcc8c719b3f477a94380a4e633d80c2f71cf43c7f9dc75275f8f3a015ee553319291e196555c7c3ce029a672c35fdbfde798473ab36062a5fc31c082c29c3556df6b24f66371b1383362ab76127f6d167f2d2384cb21e45b77515576cfa7fe56c444a304660386ed51210c7bd61bcb7434a00830b05a391f5aeba20ab0ef0341f68cee9c21c8a87372042ba0d4186ccbf50d91eacb3235a0070b809bb94355944966b4fa5a8ba1356136a763ddad6a72bbfc101c4d69142ade5a53a622a892d92302fef7ee820d65129dc95ec7405c060df0c8413db0bc51fb29b76834b9f80e6b7d1f779cb344142362265453a2611e4b084f907a8f40e74ab10060017cacc4a667b7d319e9f883a3ec5dd787f773014b2f8b9caa65cc48284f9eb8a572ce9d5dae6ecdcc755c96d21b880191a10de207ce0a94d2a6fb5499ad6957e312139f7736180abe31eb5e024ba5124d81670dfb98e9346010c6222df93617dd4a745e9f3df529e5f8d4f1538c3bf1c199111207c49f1f2459a118fdaa63d7a105bdedc1f73f08fa0a8f91903e64243bfc89f53c466e2afbd0781ab5cbd90c8aee70d81237bb4482638ec062c44010727939c3e3b19944a137086c0b59975f40af1fe4f4abcad0be6da3ca624a9d2598f98a474b801c7b26ecaa63fc8a658f98db3aaf44888695cb4479ea7066b8077208090b3bb98b65a293c5ce7d3dae342124aa4ba4fa17d18b4c444973a54e32506952bc3c9756024b7fe5e78d17d52bd2a864a644a1434e78dc1174036e98f91c7e044ebd8ad0a0521e184dbd5e008ae4da4b8e40aad7077a9f20d4730d30a088a6ab7798f4f754ca25cfbbeae36ea70bfebe3d7bf840112634ae5270363cacb2312fa4a3cadcea91c9c52445aaae5860d4b2d1625b95ce1e33deec23c8141b1ec41054df6c71d7685f1e3bab7e19102816e457535089c332082aa3017ded6cdba7022c27bebbcb8ecfaae55fbd0546b1cc403852607ad80cb54308f35ea7c8a9bf0b91d270d6af4cd6294b0ad432b401090fdcb6f9ad41ad8cad7f60d2978fbda7a900c1d7df2bd04c0d6b972521a3671de06e9d79eced6df60f7e62e1ef4d4e649247f63e28d1b734e6350b3d21419fe9b780da954bf61d62c773f101f4c10815af2ea8cf8c036a6311be4186f1170593e41698ed39d0b5f82c76102fc01e900d3f206a8252d7eaf83995574fdda7fb8d93124ff2a4eb061083b8c33adf85469b0cf51097a890b4ab580fbd458a32ee6e9148768e5159939770f893598f006814df8379643bdc827d09a2a3511fdf9f716fdb37323c5c2270e0e3a126caf581a44efed72ab07fa6a304f4a1fc583d04125333b6ca50b7d62db0ec50db69d727dc7bb1718243a4d418ced78d055200aa1cd1126e01de00fc90dc6861e7aef306f552e139c35db8ab204ebf3d4e5428723a919f00537ac8876a4f8d3085a9d754bdda0064e3949e44187278f9097c753aef0672d8309de40220a701213b4362afaee5cb97a8ff6287425b21b781f4705eae17d8bf85b3d22cae0472900a24087ee0b311ac4728dcbbf1eb272823c6318f7a34a01d34fb944426353b006faf0f4fb07b11cd958f35d62f02a579b2c1f5825d18609eba24b1e3bec2f551d2699eaef11952ad6f74addcea4207317354c10e9e74b35ddcbbb2aa6255cc53f7851abb156cb6739a501506af6998436c3b9c6f29924ce57eaaef8e9e8b1b10087ae544ea93498c65afeaf9509667beb82df3516b3d44d414281f416174e503d59985a76b1f9042039069216d0ff9488b83cf297c9d39952e0a728918b787102a667a5894e06fbdfc6f96de92f006b998e5c0971832582464c89c46e74879032bff9c45179dd14a11d20da7214fde6227eccccd1bd3d9039ae8016d7b95a310d40063bae8622eb5ee2df258deb0219ffc7cc2f378fbb8b5f7eb0d62846a5d03dbfe0d5976151672591a4443a68f57e45a6350bfccb487e54e0edab369ec2f202401f2a689eae98da6e5bbbc5970a81dca063f00c81b09d444c4341c9613d0f3f7851abb156cb6739a501506af6998436c3b9c6f29924ce57eaaef8e9e8b1b10087ae544ea93498c65afeaf9509667beb82df3516b3d44d414281f416174e503d59985a76b1f9042039069216d0ff9488b83cf297c9d39952e0a728918b787102a667a5894e06fbdfc6f96de92f006b998e5c0971832582464c89c46e74879032bff9c45179dd14a11d20da7214fde6227eccccd1bd3d9039ae8016d7b95a310d40063bae8622eb5ee2df258deb0219ffc7cc2f378fbb8b5f7eb0d62846a5d03dbfe0d5976151672591a4443a68f57e45a6350bfccb487e54e0edab369ec2f202401f2a689eae98da6e5bbbc5970a81dca063f00c81b09d444c4341c9613d0f2c9c5447ae1258463f3aab447a9f9906b7afbc722f2eeaa83dc7e2d2b05d15550da9914a1efea3e5e652d1bebf32fb2c4a8339fdf7e114fbb9026c3948d1e57b2ac0ac6f9b58736d8b9902a0567227960edc30fc3065398d32cc71a5620401191b32ecdb06154ad4de0590c2867c0b6df9c5abeae1a5be2bd2c68bbf2f7682960dd0ae184d005c939bca7b69cee29254f77bca2721921649c08956f39f7f26f825c4068e93fc72390510b6dcf7548b9fe416a538e12783a0801a41c7e1d00a49344786f08804e466db8b8c9e644ddc6cfa2b36dcc7c728b7ab476189774ecfd5216eacd9888cc8bca9478fcddd3ab67aa2d834db55bb347387aece5067ed285302b6d53a273e12c7cc35c2e499ce4b6ca3422eb981e069145cef3b4f05f2621135998f1a4af402d58a1d3bdbc15b9a0d1f4a581b877c3b1611c4e89b0eac48193ae491c4d89a8190a659d03db77bdb9e825b902128ae97c5a97d5c752b29882d3f22214230e9aae720d7c4fcfac7a22be206e8e953d0e945cde4803b8139060328a2ff48b695344c352c521b2eee3f637e014489b305ce01c1c60d61ed9ee995172381dadaec11453ba79d7eba50f965ddfdb3132fc625f40d6438f487b797f13ae491c4d89a8190a659d03db77bdb9e825b902128ae97c5a97d5c752b29882d3f22214230e9aae720d7c4fcfac7a22be206e8e953d0e945cde4803b8139060320518d8bc26fd983f3f578a3fe46ba955bf441c39c12cf59698303bff64fba9e0d94740995ba1c0070d2e56ae35f95f6532975159f22b635d1e3247e08744dbc1a83f470e497ae82e81d7fcbb4faa4b3b672d872536d0738a8060109fe4b8664245c9140f2eead544c062e35d941773a8c6d99adf55ad825ff189af24c650137000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011d914b39c4a65196ad29e1d95f407ac05366f1145bf878d68802840467ce51dc3d6c9359fd789a423d8ec2f5b5c551c199fae98035de0c66880ea26610c4ed1b163e7061f78716f773a7da6938ee4dcd55004f33259108a6026c4918ca921ee22d080fedd4867f4c29feea171642a2d920866871fe83a3dfda068b007ca58c3b1b509cafa1ce47b7ba5082acc5c5079d54df796dc2911e310cce686bde0e28910f06af2613e0df1dc2c345bd1acd13445c35dd62db99df602abc7364c5294cb1399aff7cfc48e588b067a71a922ddb8749a2f47c419c9b3a02db907412dc591b0b78b9600b31b1cbc00cec36421db6a321cbe3acc4b385559e980204f7972dd910c449e17edca3d4f2b68a74b55c991e21541f8452f05ceae1b5b3a5cc8a414b0d6829e7e057f35000bd4fdba36b2cd436f77d202489c59c4d593a57bfda8f4e042bfc20ee7fcce5e66561d9f87827dc8841fe090c8cc16ac941b3218fddae8d149caa99ac42b270c12fad7210dc2698c818773a3f27483434188a2685fe7d8f345b297cc315cf8de11e88e031f86c2048d47c862cce9d1c861a7c93216459702b51e3b1a5372b43ce40fbe26da22a93aa09a3860c3be4c449e517cf78fd87a1373c52e211649da652eddfc13842bc4463139aba0c3a92181eca3173c7de28bc3acef31f38a4cf1ec5caf11b756c9d2cdb9bd6c17c7ff50d32ab2eabd870906b323c86a976afdc61a164eab005f426e93f931f0c5e920bee7456a1d47e8721f327f44ce2b72e22d0e61317b8649cfc39a5e3e2cc1fe57b772638e48f73d9c2971631c9fc9f61d019ac7db8218dc229ba76de074d8dd69525dea339001ee192640a02067a60f29fdee5162d61dab1cfe6a85b1b7eae37cb6d8c30215a68a1c4f83dbb9cee6c829f8d56138a29e7c041accbecc48150ae041234dc9d4dca76c742360246316c619521c06e96a08696ff8264c1c63e2d97ee61a59cd96353b60fca3a03a1ba6362b661fc13a627cd8e3bf80caf4b1ad3c1974d2e14baeb14f7317f39b7ab28da639a3bfa1162a32c7037e339705ce3c8a7579bb92d27e8466bc4073170a667dd82226c2f38b8c51ebaff7af149c3c2fdfb34273a36a9530e144a0c0c3fe7f91378bdf97156c57d428f298ec10d76bd4b8fd22029624f79781ed46f29b818f103e8a35541174fc987fc3f55a6a9fbff5b0e7d89e55400fb525ef5e9004fa22673fd485332ba29c1ce0a085112dd181927dbd1fc6bdf1d15ae6d0f250019829ed55ad1bebc2184a7df4bc609f6a1089c1086b22aa4aadb277f12df6b1625c6ee70fb37a31fb31bcfcf8e2a4d139bd5978c75d8d581b9f01d227d719e0d90fb0136f148b6f1aa81a1236fdea334a68cb52fbf290ba7a181886f70846a1384bc0fa9427a863eae60febc3cf7e7789ecfe57612767fe76634b879191d8113dde3d749d2bbc519388434bcbd13c67a9893c1d883edc0eb2081c674926876028ab5fb0146d0a1a92f0b1e5060ef90cd4d9eb1807c0178ce377f19b8967c3725c4fd18236f9699a703879a64766ad58c0ebbe77882c36da772bd62a783a12f01204d0da6465da38dd43e80c863b4ca1613354e51498452e4561234269710001bd765fb1eeb3f36d4c8b446f646ce590820217e23922aeb1b554e46df91d7a736748441509597119b45ba0f39f2492e34192adba2f2a4642e1f7f6270624a9a0be6cb81677b008c8e7d3e7f52964bb8bfda39fc107cf03cf9136812b48028d3307c85f68ece99344a6c1c1e68a62cc9c6de699968f355e50f158d375a99195f33ab1db5ef71531951185fb6b319454b7f1ecc0773a15b53df78122cd8ae65ec28e55a4252c602cede126b473a703af5b4ca45c66915552a6bdf4376fa4f4bd125f98be31baf19fef5e2f04918d3b3197d73ef354f465b4012e4fc17f7d10fa52a75070a0d75fd44a3d4de065ee615a758bd33d41b51ff15f10b7295ccfb06a82d245611bdd65cd11860aab190773e55373e676f00f66ae2c0d10bd1e918e59f29dede0331cfe1a0bf460d6ccfc3a87803c49c76bc5876d609a55d7e6969f6f438a9b5710f8dedf1ae5421eb194421b316c874f76e86a85abca19d0bdd69d7542947b96c9dbea17b21eeacac7beb7c40ed2bd97356003230b33962ddfbb408a30214b310f0d31b89923ce3deeee1232a4bfaee660c1d8b0425d9c06319c859443f329be394e30129aab6f8a1520ca8ed8aade36a6e7deb9f04fc2ed4c730b141108ed26bfd32aae1dec64c409f2e4f7bca0d4329afb8b868ab60985c9a2f6f702f712d9402cd551e2139b3bf60d1b084583955d2599440b2edcc989065d0909112ca1c1bf1fd566959df7d431be78d6acffbb6d4654ea0efbfb5c8e202ed2d2f2d35e3e40e02a996a62082bce4187295524ae227a3fe582bd977680afd12d2d21df28c8bb9f2b00ec15d724f8b85c315eda3f929f13c2b93255fbb7d0ea1e1ea220d7374460d4ff13ea28db0747a3cea34a29fd21810cd8873cd756ff15e1e1715bcbebaa1bd7049c6d33b8db99ccf6d5fa6abd9a392e7a888844797492969902a4341455e428fb6392cc47246633092c29fed2265ba117310a8e955b6d69671108ed26bfd32aae1dec64c409f2e4f7bca0d4329afb8b868ab60985c9a2f6f702f712d9402cd551e2139b3bf60d1b084583955d2599440b2edcc989065d0909112ca1c1bf1fd566959df7d431be78d6acffbb6d4654ea0efbfb5c8e202ed2d2f2d35e3e40e02a996a62082bce4187295524ae227a3fe582bd977680afd12d2d21df28c8bb9f2b00ec15d724f8b85c315eda3f929f13c2b93255fbb7d0ea1e1ea220d7374460d4ff13ea28db0747a3cea34a29fd21810cd8873cd756ff15e1e1715bcbebaa1bd7049c6d33b8db99ccf6d5fa6abd9a392e7a888844797492969902a4341455e428fb6392cc47246633092c29fed2265ba117310a8e955b6d6967113923ea18517c0e7c6fac4d117b9917c9f0728c9ec39dbb77de85b5c17f2c7f4059566e6dec5172aa9a3d8a9347fd6550f6f1691a37f82eac53d94a6e7613a48387802b35ef46d465536c7a5125bfe9b85eeefae2986b2a5c1676fce05f4e00031db538e220d9050deb695a20721092fd516be72dcbf54583fa16ac019dccee51d7fc490211442a89bda54e307c18b2d6a33e4d61c37a7bc14225d70a1b8807923096f3065f532e86a57ac40df2077670a0043ede4ae3acb82a22513f9e11ce7208638785079210403ebcf053fb691039dc5feb64d5e55135b61c9172354fdb210a15e6790d8e4b82fe087135089323ffd067829bc177774d67da45e03ba2635140f7c93a4f215a82cf6beb8864c0e021c398fe6116c383d633ad8f237112c89209fd7b79a22778c407ba6c5dcfb5a08d6ca01be1025bc844dde9f67b13c165627014a61a3142c78ae69e53a0b31012aebadfa90dc35eb5536f4994919ec190c22b7fca4a22d89f65ab4f8907d14f22b785ecca330a9a198d313d069cec501dd33f5beab1bf3d1d1e3ce7389d5ea6fe81f97197ffcd963d9f30a96afe218580f088f458aff2d588477a591b4c45f207b3dc0c3f7890e21d8944e3185fec1f6d527014a61a3142c78ae69e53a0b31012aebadfa90dc35eb5536f4994919ec190c22b7fca4a22d89f65ab4f8907d14f22b785ecca330a9a198d313d069cec501dd3a6062f8bed79a7290db04404bed85d1455cedb45b7edbdbef148a4f3c86af6437373bc09f874b246bdd243aa3a7ee522cd025a946a3141b6bc285444d615ca42c79e53ec9984e496984223ced8d8384645fa1f12c9aa5392af1497abcc6f05b021f2fcfbe0d85665fbff7fc15e24e6be53d4d744bb712d51515dbdea77c9a16000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010de687ecd9819abfdec2fc8e4d16f24ff819bf0bc09f73327c05aa144882746918396787c4be3140b7700df76687548aa43dac930bdd8a5b3be73fe76bbf72d11c5783ef19ff1b3b85d56685f515efbf7ec43a10063adb174e2a816dc29c200c32d713e6aa05c64d8b922abdee7091c844423628fdd8b9425f4a50ea57a409752a10ab1cb7ba28055aeb5ea16be416c94d94791d5be7c49d84494968990d976602b2bfd231b41cd357caa0dc63b9e13cf2adfb8a7e062b316840e66ee64bf0f314995e0f67000690b09fd41a3a1235a405eabf8d8c6e71937a10103c3bcf58d000a69b11a5b8c63f90f13ea46220c773e3f900520b0429287bf393ce9b991c73321ea68a7e92318a8c005fab5c56d1dfb8fd5577762b094d102f13258d16e5da0eda98836c84203beb7093f04222052e06cddbd626dfabbce078111e8a8bb4d73b1134525d67601151e34ac7fbe0664636fcc0511b72c9e881d5d8c578c8fd752320835a739a174b3985aac714e98e144d42b0f1b47dd737d9f4e9219a445be7337e0812b0510826d543731c19ceea8d6865e29217e167b4fda8b4943da11fa801196b0a0a01cde7c0f4f330fa42e9ab10ab7ee65860f5e0563e4f126db920e7008e8b33ef700ded8ce68b14bf7cddcf9fa9f1cbc01ae51e6693b389c0dd07c13f48066252ba32f9707186fe8ccd1c3bdb6704de3318b519729614b72070b773042518fe847b37f59295d54ce23e45f26a5a000197dafd0b0431a14924acddb30c98e0a94c1ffca5a43ce4c1573e93c31f5729015ffd5475f0c694cd8e7d44552412cd49e5753a4295b98f3467eba0fbc192303c05762437b39442c5385f680519c992fd06a2d1cedd535bedc9643d249c16936fe3e95a28b2547a8ce7e8d0ce1399c9508feb42a376979828165fea6eb36d2fcec8c084aeab4cec76c592950a0d7bb3e863366f1b45e1b56aa32029ed05f632a4e3e52fc71db465cd2b592039318d26150dcf428fa98c11420612ab43003b95a88bbc92719e5affbe37fc9f910c98194e59dc9febbb9308aff698840f877b04d3b87912d594e2eb480c2e8cc53db347f95cdfada47b5452ecf5ef66bd4c5f87289de654b27881cf1dad5d75bf35feca1c82e6f741f47a6a2b24908180101d4303310d17e8a70f049148acc3452c0740538dce9ecd3870b884b1f46a4b0e36bd563d232988c778f525df1bc29331dcb1183b522a61b0eb53faa9596d02572a681f4d7a6e93f5322194f1bfa27337f028c8183e72eacb516961ec55805b5fcf87815ca90d177c0423b7fdbb25a23cb3895f6359ae757ac0a9c5ee1701933f2cbe5657f56ea251c56c5f8f0eb04832d0f88b5118ca1de4f7d3f7e481c0b88e37bafdcec590f8772e14ea4d4d4a152c274c832cd0ac793c0fbeccf17a2370d5380f10d2b2f8b3e5d1f905af035da92d2df8e51731041f68df766ca01cedfb596a4919682b7d1fdf86a41ebe9a152424fb9bf7e1e23f914fe074a60be4aad6cd9f485a61f425cfe5880a770e7b87fc138d3718726c9124ab777e48401f97edc47c8b0b7d6df06ed24e66639954b0d7348c0f1974a5d7f5ae9cdcbfc5ada0a88422a1c9fe59eca6d4af4e7e2d086036062f2c0b42e0ab1c3c7ca1f390b47654057a9abf42edccd80db73041bc287383172ee5553d226974d5510977d1835f9b10b4ebc7f543ca415b23a3ec5d1ae2f2305f629135be8fde599f04e2feae1ded0ef9f2b2865bc93bfb9b21e188ee872024b0e3809476913c149076f2d7fad7ff6ca5d01ec74624bbce307511cd0fe3c20f5df003dcce58c198390a9f825865bb87a9183baa4743ca9aa4726f17dfc8c5315d6297d151d572c9e1d9a803f638499e1dba4d0ef33e9d357d59c459c4a7a32211741776b27c8cf7da9481a5765a7e70c8ad232b699ae754dc7f8f46094401292c866815e32facbaf21218d6a67809b9086d5124bea12c61c80d097e008c6536a85662599ea854649f90e6430fbabc51ee62166753a0b6be9d05701ef1e6672aa91d0a2109b027bd7092bc99afcff53acef62bc660e4120a120aa3487893f01a00bf3b0447c024993c6c8977e12a404be63473b512b0d6adaaa8ac1ea59a141ce0b16516c9217f1df089fe53b105752689bba0e95ed2c3b201433b44a3438c203a187cf628a2e055d262fbf60400f2a067d24a45549294580ad1bbb53f33b9381e4b7f201163411ffcc6d6d4a568b4318ecd3def8122cb9fad20bfb1b932b10c6a5a22c9f1ec21e26f9d72cef81074d6f17160818e39ed3c7ec8fb8159456e3395a5dd360e13de1d90628d3107ef8b4b55279b87bebf2e5cae67f17ea6ba933e13c2adf1b99ca96c2e133e0ad8524832b736e287c721a22e79ece986be5b2601ec3d520e46635693d1ecc1f527adb7ef8f62198185d7796ab344037941a4db3662cd65b8a00f4f1ce6603636399b687479ae7c81afc3bc83acdcdba1b7c7ba099d329a475ff0b0e3199fc9c9c66497adccea7f879d355f158054115e4838470fee02fc9b204c8b907fe10f0f200909bd46047e633aee402dab8c962896e69e3011fd0364dfb3746f801ef0f0dff6f66500947da6120adb6b81a456d76919630c6a5a22c9f1ec21e26f9d72cef81074d6f17160818e39ed3c7ec8fb8159456e3395a5dd360e13de1d90628d3107ef8b4b55279b87bebf2e5cae67f17ea6ba933e13c2adf1b99ca96c2e133e0ad8524832b736e287c721a22e79ece986be5b2601ec3d520e46635693d1ecc1f527adb7ef8f62198185d7796ab344037941a4db3662cd65b8a00f4f1ce6603636399b687479ae7c81afc3bc83acdcdba1b7c7ba099d329a475ff0b0e3199fc9c9c66497adccea7f879d355f158054115e4838470fee02fc9b204c8b907fe10f0f200909bd46047e633aee402dab8c962896e69e3011fd0364dfb3746f801ef0f0dff6f66500947da6120adb6b81a456d769196331870947f95bdea9c3c192cb3bbf7effe29d0fb7bf7284c1d7e0d66acf118ab01040c9277dc8c6351fd039b70656118046072e337c872d37814fdf794ba768ca1d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f31191ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a34a1d408a815218dd978d85cbabe63906fcb6edc584daec2c3ecebe09c9ba6e63e844b86b8c4f590bdf70d22aa7ffb46cef2f868facb733f6021b5cd75c6b3b20cdfe26095404455247b2bba849a1b548587d63d802de2b14f45ff566d17486037474a7ffdcfb565c32df73d979327c405c73d83f718ebb906410d73dd2a691506fb559fd2cded1180d261ade475b90a049b867c6e953e68a9eae362c128b6c03b6d97230c19cc65a61d650d6c2e045fdfebc3d59be318deace7d9def82280222b3f9c77fc3bd3c17566dd79285f24c0ec915bdd0f6a6b45c99c5e3b9018b9e624f3cc984102265dcdd7c86bc903d5b2b9219ccfd1a413f5b054954914ad8aae3138f3bb27893a847d446af3c7d6cb1c36468f53ea4806685a86e0ab666f443a131ac312f8bb931b3401555f0b5434e084905dce14394217e73ffe32d8593c1e2b3f9c77fc3bd3c17566dd79285f24c0ec915bdd0f6a6b45c99c5e3b9018b9e624f3cc984102265dcdd7c86bc903d5b2b9219ccfd1a413f5b054954914ad8aae2dfed48371c9f855640784531bd81b773f85ab89213b8fc7041e8924d164644132bf5dd61a8bb466ba2bfb8ed336fff23c99937404c94f5defa67e21c52d48483356b95de9c03a5378e6a62748800e267bb614d097743e02271e4a015c44bc2d224bd8a8b797c9cafd761b76d756f1c8a16228e93bde4810bd0f4ca1dda5c58800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001268e5b82f57225b1b0c66aa1e50ffbb14ce58073f4a703c5fa52ce71ecdcfc1924543b014c24df7d782e03a962924971785c1d6b0ae9b029ae2ab47ae8baad70306ad4512057c295cbd78b07cb8e1816508963cd8851a6ad9c2397a6ccaed75303b798ac4a672e41653c2d63c77acb13bbb4cd2a4e87877dd0ff16033cdc8564391b657ccc9a8d3e26ab37009bcfbbf9bebc4fdaae62f5c522f320bb6d37e94c26e1bc6f724121e560da9615d941b178b62e46d8a4120938c2c63dfa6a819164267d2cff1dd56eb16270a0fb14a84966ce6c9381a22d4ead25544e586cb8de333d82fc20d72cbe5f76366c92d13208a66425272f5a3b344b208f5228ca2946c4234e17b36a2696c06cc14680a4f3d02db87c50080b347908e8829c1e2961e123067984d5040fb99199e7dfdfe61c02d6fb300259ff59526371864401cdc367ca189a72c27d4c0235960f0c51f688614a4ea14ab0647db99b7eac3da047ed58f4134f76e3f646ac0e49736e717a728e69dd9e9a2135f3a83312653b6b29452a3a1a64de4d7410bb560520c7ca7d1928cb987e3232efbbd632438dc29fd74e289d2774cd12da0474a320f5280e5cd29567efe0b711b4582e6f1875fb66bf6528432fe1b42dd73236debb3f923a9b77a80205c8adfaa4fbcf24d1802a0b5e5ec8473284ff121cfd86f5162b417e8afa0d212199fe61cd0bdaa07172cae2293a020e0f0530f42235b14f0a05e7fb61fd05c4cf8a02e246f5500718fc1cfce524ebdd0b9a05637d526309fe52c08a54fc37b39f8617e053209a35b6e7911311f56a8b1dd1c2a86fa96b9cbffe14ca1f1f1e69cd28304cef3a48cfb615136893799d780dbe7ca0ad99bfeed3513399fa56bf3e3082cfba2cb3e74c7860809f63fb442608c57c5d685584e7ae2fe12f028b1cab1ad9c668361fc89c07b3d9bb002e624d1dd111979f82e418ceaa9a6bfe1cff87b9e76cc0cd3d0386c7252b42502e17be12d6967d7c01a84f1a435ad8fb5b7c04a2180d93de88ee5bdabfeccd9c0d12f1287e8f3f50267ef3ded562a46d4bdd6ecb277f04000aea309159274968c512cf077dcec7abd507534f3c19f0c4519c8b6cb259f13b6151106dc6790de8f888260943447c29fa173eb3e574ff7bff0ebd2b2acf251e7682e2b207c116fd882bd5200f15d47e4270695ad7c5655214690b6cbd75eb3b8b03f4e3ab00ea1d6df8b537bb13ac786097a6cc5bd80d24d7653503efbb3f73b91ebad4cea5f6e7aa823503f79abf3b9a9d6c360d4ef3768b4ca8a74ea8708d25bf39d5e078a8c00207161438f1c3e398aff8a6cd340016db5ff521c1a174ce8e5300369f3cab7d6372af3853b90acbeb66462c445eac67af9bbe686295cb373a35bc23f7d9c25b32697f2f4dc68d5a44c484861f4827963f838e2f35e903116a521e59c71e77b76e6d6d2100c9a6c3740f6e72959b7fb43bab18ea5351673feb0dc0109001e8298d74232013e8c07fec6794431c0d4f973e061dea62937cc676e38b96fa5da82a5cb89b11572cb1801e0c67d54bafdef7acfa784cd7d285937a2021547383157f11da6a1111a075c3a63c53d86f98132b2f7ce4b6ef98bd8c0f66fbeff43b5c77dcbd01227e39362d66411689f7b35333e738ed5f1f8b1314444889177b7c47e7cc7977062449005d344c243123eda48c346b8387a8c1e7cbd9a3d1463ff688232a69dc1808fe3c6691431aace6cb7865936719d548f411c78183038e414e0536065e7c0dcaaedbf8f9c578a670acbde0f8e04ac57b17cd3ea4d4067ab0a6b24c55d6eb020e5943452ac0657cb61bcb9dc76d3f0a5f3a62077ceff216a32a2f4f75fe94095a78d7a4c6d680cb0e906e4e61d26b7db841077ff49f9e0d594f9cc631df5f1b043d3332bcafd22072cef8d4bdf7e3d860a7a267d39332870c4b4f836d8b5a052ce591625623820423f30dd8354c35ca7b9591dfb80643612c96a00a3249903c0e820dc24176e9f1b94cdb75c94620a777e94d908b7dbfa8f949ee4711803f052f33ac7806f59f2c5bc158cd0c167bcbdec802494d66021da7fd1ab7288f250982ee97418adf91a1bb9f9fc036850566c892a78437e100cddf3befe9e2d1cd10f4b15b95a099765259531cc58dbb3483294d9588d4af181b072edeb3149f3003528959949e73e0742252b986dba4e951c000d0671b28a29bdc2acdf45cc4ac30d370d4a42bc162fbf23b147c871d4867f5194dc95f87c96657921384741a9826d7d19ebdd9ac7d92fd15bf76ac0c8e8ee8ed4c0a8ee02a961690b9e00e476a19282e61422653826d02ea408953f371935dabaffebe18f10316a0331ff1b89702371819b5405e73def16cbd515c3ec863b8d78818e3758222e940da6047650f3dc8e7e64abfa18c210e9342aea3c137be8dc173f06983997643f0129fb89af20b1378808a41d8435ab71fb296cd39e9f29c35a87c714b8aae8e4443e164f94b34ec877f75be27bca548e04d6932c6162faa63538cdbad90ea9eeca91e9b06b637615a82b3493950c5939e7cf2022191bd0d0c4a6e3679b568c7555366f8de77089ea57d4cb6c6af3a6c61830dfdde6e65398cb19b167f663065db999907218a26d7d19ebdd9ac7d92fd15bf76ac0c8e8ee8ed4c0a8ee02a961690b9e00e476a19282e61422653826d02ea408953f371935dabaffebe18f10316a0331ff1b89702371819b5405e73def16cbd515c3ec863b8d78818e3758222e940da6047650f3dc8e7e64abfa18c210e9342aea3c137be8dc173f06983997643f0129fb89af20b1378808a41d8435ab71fb296cd39e9f29c35a87c714b8aae8e4443e164f94b34ec877f75be27bca548e04d6932c6162faa63538cdbad90ea9eeca91e9b06b637615a82b3493950c5939e7cf2022191bd0d0c4a6e3679b568c7555366f8de77089ea57d4cb6c6af3a6c61830dfdde6e65398cb19b167f663065db999907218a1b32ecdb06154ad4de0590c2867c0b6df9c5abeae1a5be2bd2c68bbf2f7682962ac0ac6f9b58736d8b9902a0567227960edc30fc3065398d32cc71a56204011918016098aa02665e1acfd881bf89573a1e3d6325e54235c9d8ace9a6067e91ef2dbe6d83ddfab2bb8ed281dd777263c51dec4d6493a42f57b175e1d9c2756169159e4d980063e383331784cf2275dba53739b7217559359441426a28b206079c078c626b9bf67b62c0b171159a29bfeca4385ad26c276ddfa700ed9f4d9dee2426a7cd2000abc589e390c0cb19ee3a22fd89b5084f98d42935341200b2cecd5319e05ebc9d038638cbfba629c3ce466d5fccc92c3003e910204e0d4f2ac00e7e35b065466712eb434122f65cb85415faaf9ae65c740e7b37ce803635ceaea75105965d8f35b8e6ce817ee5c9fd8adc681406ad0d03afc563c7379517df851a7129ceb31b3341939af0183f3264b1ac7fa2a0c1c5646e1b94bfe50bb9668e8df21077327699cf689135753dd0d520e7b35f9234aac2a1e40f36e5435292a06cdf0ccbb28c4fe84ecd072a96bbb9fa9d580a4389eb42650525edb9bb87ca0aeb7d2780e60c86acd9d6e5947b82321b74a517c4b3974e9089524e180e5adb869d8129ceb31b3341939af0183f3264b1ac7fa2a0c1c5646e1b94bfe50bb9668e8df21077327699cf689135753dd0d520e7b35f9234aac2a1e40f36e5435292a06cdf2d68dffd31258773093f2dbef488710d0ca218f4aa0097d347b8b1ae4d3e01ac35aa01f462866b29b5c8acc3c368bf24e3d2ebe12ed21e3d08f8321abf9a9b7715137347744b592ea298b9487c93edfe9f69e25a2e95cc61ed2ecd06dd946be1306b87b4bc9e7204fd22a1ed1fda6bf2a3eb863e8a4f10a47262919f5e434113000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013aa87bb7efd2cec2ee368aa77e5af6ee5fd840c158cc0900232cb3bdf30c0ad33072182bd7475f8d95d1f5aa4bc0bce23034d3d7b09b0e6474c398466fd24c88300582eb6bea079cce73a116c01595bbc8282f55a4013f175ab8796d152dbe700e28f427548bda5ffe8006d7309d75eb62e8402c7f9be968e70e4b8abe979e57397de244c23b75e2d077417b5c8452f1e202ea6ef9f42362ecd1006c55cbfc640126528fb2772a6dbf1e914d435581050931442fdc5d95cd421b9306d24a63d8150152e938f9f8f6163b9f53a4f07433db746eb337eed324a9498c79c6e00cce005f2b516be55106b645ab176a8677e36c810da7942ecd1ccf07034dd8711f261399fbdf11de5371a87f6e98851a4caa66f470eee0a886880e95b591dc440f920c1dbec70ceb8bbf34f1b08c95c98f7675839c53d083436ef26dcc89ef7c16fc26e034c3bceb70cb73da5ea32acf4481012ac6bb2141e9b2061232da62fd40820ca228c4f48572ee3f6c0d59da84c1ac5b0554c8dd63c7a9d38e1800c1aca71207633673687ea3087cbc2c7740e9990da90adc06ae49acb22e4cb84384c3cd211d97993bd4b8b4b07420b98b48cb313927c4a52b9daa379e4b31187568fff6f10c7db2e5be773112258081a649b63ef8f9ada71197a6922cab4ae47c79fa87a506eafc856be25d7de1ea3c3db7d7f344cbac7585f77cd79f5c001d503a6ce611260f564cff19ba63a79502641dd9da68ab39109e16fb29712de28001d46d1084072d1cfb0d7f174a011e789e80eb754833a02c199f77254d8f5e9993e3132af110486a43d786edb7ce99a55aec0a694721d58486bddbdd21f105264e2e7965952b3ee2b75bbced44f8888e04272e2b50fea0d501cd6c6934ca8b3441bf759e2a0042f66e00c82cd472befd9c8ab3050883c4d529eac8e7ef1e366fd2eb50516a3d1c4549f3e750fe9076edb07fb4a08b92587fc9bf831cc9844c5e34f015d5590124a7738720057ef8904a0ccda722d3110d385383a18e5d42cefc0e3ce5a6870ebd42155f5dee8037b9b66d20477001d179771f18c833ea770d41efe9323a300e149462bd9254412b5fcef0351be6f521b5e008bad1430da7adea03ede9f4900838bd5742cdd661470b4dd29ec452d1bbdca97151a848bfd815337659a2ccf90132d598405efcabfcd6ef8fcb3ff974a0840ba25b972bc0a3bbbd654b8c4b8d0be8faa50dea52e79e57c7cc8a4efb5c6365cf81902f7c2752088ec43f66b7ce153c1e68d95c15e061a1369a00efaafbe941302d52834a3722cf8d0d92feac1c16fc377fcad1c80be3e39e6568d60eb08f7c36e1b74600d36aca224144adf7d52daa2842ba169b38a4c9f4268d0d5e3c028c0143f0fe4ca21d3ab504446211e724929a123f20303596e1cfea666a2456667b368573bf0ee2fa92e0fd0df60a88056c2070c023e346016b85fd6576d233007ce7ff8c879085fd001ee8e34e18582dc83d8c5279c2300d0a90f4d68315fb87ad2eaaa2b0c49c43dee148f98180162934478e29a541dbd53443f9650b3d5d618ef43366c782c4853cb7df499dfdab02f199aa4fe327e83abc5fa95826797a728dcb0a9c6a9e661c770c2f689c5b2a348ea2c1165f684ffdb95a0e29e902e0e94c1f7dda4f270ecddeb5d148aade4316116a180def8f23a5e07f56a8b2e0b217cfa46f6cace27cae01a6e68960dad211e3a0b9c70141e39cca94dea2a2c483341074b1a00855c7500371e6ac2860ec01f430ad2ce807243166a487a32af78bf0e3d1469e68d7c4633dedc9790bc9033cf5f4997a6d2284273957ad542c363199f4ebdec47da7b702c037bc7a7479033ffb8347698d702b7787a23e51bff1d419428ebdf28617ae5c334ad3fbe072222a524c6bcd7d519352a7115ba6c0c5bbe1605fd72159dd197b162c4cfdcecebf1e2616fa15824fd2f0996cf6c03da73108cdc6b6e939c357ba9b9e8d450c377b0eb33893f01617a38c2beb63733d36cb6539ec05c1e419f7be275b5e2787c7c907c554d81d7898ef8d9bc7250455fa5f4828749d415ad9a2b961ca95b8d4cd8d18f0f3e88c69b3325dfb966282b718d51c11249c4e763d6f2cd65c3ecfe4db7d38226eead6601297dfe643efa08072d1ef354346f05c96f394f7b43d6ddd2f2d2c8c82abf52e525d0554d967ebcec6d0fda3aec96075edd17d64a5b116ffe81d1dfdc9ca63f37fec920459f7c1b3dfe79eacf3da2568f667ac9d21b388dc2a9205583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee83aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a06130191191ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a882546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d579059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a63a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b1c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e23ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c305583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee83aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a06130191191ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a882546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d579059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a63a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b1c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e23ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c3017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e17f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a66373132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c83614840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d31262084ff4eaf933d6bc5e8c80a6d386cf8915c72d09b721619ee695ae36cebe4621f5af3dbb9b764e06388b88c8ae25f7a7275bfb8e202712160cfad61b5bc73ef398f614735db5469d4e59f20f2345e22d9b2ae524ebbb628ea9a24fec8e30f0907bb5847f3ec89cd59900a77cd11b5b93e4e9cc3e7a81b21a34e34673562c4cf08e5b7ee0f136a61bd9204360bf642cbc56347a0da0cb8daaf842450dcb7999020e7576a254c589f1b44c49b053e6896e604e8ae80f95b2742d55558ff28c21b2b6879fe81419e32cfcc2b0480ff303bbca2014ac309b579f4be78fa1264a22208134748d8710762979b1062406fde0c96064ace3630870592558b307fee102d2b53331cec0a24ee2f94d881baf668692f9fdf19849125ffc37b4188d5d2389e1389d8f7dd827262a24dacbdfc7e9fcaf613aa817fc38db7e90ee3d2300c6b692b6879fe81419e32cfcc2b0480ff303bbca2014ac309b579f4be78fa1264a22208134748d8710762979b1062406fde0c96064ace3630870592558b307fee102d19a05d5dbccfdf9e3210a6b67798410dc2a2d9ac30fad00a082694f3512232f3095341a8d43c5773684b92297784b30a229fbe166ff382b5a03cab0b872930ad230a8efe605b8b311af384ea662bb972fba7d96f527d71f3430c44a8ef2d33931746ad698f636962fe7915542f1d6f9137bf72a79df62c34b6f1b26a2e2c008d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001223aab5427463ef8b619ea7353cc4799a55d30fa142646503581606e7d5ab8fa0cfd6a5c45f5de7cf371403cf795a635927a317e0fd2367394c05a8484f232a90b266232fdebb932350a3da7cca1f34e59079fc855d5f37be979a0e1dfc6a4fd2a2aa5bb16e89d9af696234930bf7ad8c3eb2c517ebe0a7d7d9793e7093e6e930b84a84d933b8d7cf8109307659e0c622200e7bb67e2d862caad39876674f92e35821d9261805509641481412c34252181f7f011a1f726e1a850a1baebe1c1f739b70073c162a928c4b9a0621ff969b5c51a2f74847fe0843ffbfc0aa20e91c30585135fe105f005660464039fc6b38283b6d89c23480ded8a0dd67367f36ce122e50c052955f09effdf1ea85ae2df1d1c4f49e6193f109ee367e5cac7dfc345111ef3471e93694a5125d06a1b26c55270416f585674654a3284468aa3b617ac3f9115a4577173bd34838aad2667eadb65f5e139b230ffba2241d2d687aa010821b0a95546cd989bd62b791b43dab6176d9e6794d7664d302d47adbacd8a5b6b23f1640e0e7f46c2c8da8d211a707980493a3fcd321911ebf3610265a2ad9ac03180601e20bc51ae3032c3f73f86f211ad7996ea159517c6743e3185ba5337133a48d1c5c00894ceb06e08bde00d4bce75abbe63cc4fdb395d6cbcaca87ef34d1b3989bb4b83e9cff0262c4ad0ff8b4248283e5a8a56f8282515bf078d09b37408c396bbc1ed32c79235f06c5e2ae910b1a98d167c4315f24d31408c2c5fe57e0094c2d036e93c931fbf49462677d56315a176c660d5ef9115bf405338d038bb2577acf22127bb5804721cbd729ece0cc124adf335b00fc3f4cc93eaca6ff53b317014bde03b059294308581996d88b21c46a9e6773ef08fe9fcd437eda975ac0f5501e7eabe3c8ae39352b9ecdfcfe48d2c2ea547bb8cbd159847569c6938b81617ace47c3974b720298cc38e7bbce7993ca9d71105cac2809eb84f359085a71e6bf72024402bd72517b47a3b69acb397219c070b22128cdd9614a82668785b2bba1ad97c31f7d3f74917668d1991f7523e115719f70133dbadf82485d1a8100526dc0851f5ea5e969253ef6cd4b66d94d90fb6f6a5755cba4729ac2678d6fa2a1ee4c8bc3c6317b0b6c61d5bd8eb0fb244d07a4df756e5f712a6800f2f5e7623f44ca7a2cde4fa2e67282bacd260257cf83d2e587f4ef508c728ae0071348d2500aca29fae28469b0398c55cdb5cfab6becd975d895f7153ba84fe0449c4802acc7050ab91502527bb7255e8ce918883673a186e8a52bda68acccaec0f57153739e43ff33fba1be402354abf9ea7e0204140ea328b66f8f8d0b1b71321330c307a54de57586f6bde0101331bbfd8854dd117a6c6ddedea0eb522f9fb3dd6553e43d21c69e7dbdeedcabb2ded259bc10ed17cdcc45bbaf7f9d6bb33e67ebe101a61ac194f539a200fadec11d05c27c73c49f167cf3f57541821d4a2fb9764ce07baa737f5eba737fb78ef0156150b61a31ea23a952794f59f26f3271b41e1b720d46960fb349c3f5ad9b0c34ef8bfd74b3d9d1d0e9784648da6f29d00bc8d0d08bd5d5934efc20aab9e17f23d820153621427626424152ea2e0d41655ed83050f7702a73dbbae96123f591da39f2a48ddddc92830158fb7896386c70ac3478b2d7c4a8ebfd668c698dd44734daa7d7c8c6278f17b7cf4679521219645ff792c1a8c6a1dee06d862edd566f634c8f1abe30b7408543daca3d04a5a94601f2f1234126a170fd565bd71ad54d77811f229079bcbb028cf9e4cebfd1e9c6efcfeec06e542c82d5debc4d7b86864713ee117f117c1e281ffd112629b9b51e630b4ec02efd29731936025e4f43f0fc555877f2bda88790f81a156e0e9a0035ca9182d3a080ce33f2b61dca6d90bc5bc2a1aca1d2e0cdbc49863c40b49b6923789c5a73a7c18679b99b9adafcaed2a48c27434f77e838fdadf54f4051ef3a99a381ae306cf30731ef9fc3336af64bcfedb05c0d4ca09383f917d525525365aec00ca0800dabe1876acb9310cfe219330dbbb51198d52704e5b2d53da4020493b69aaf8364bec04a7ff97f00ebda37173928cebff7f2ce8d89754e9f75bae82f20ab7243f66c1d91f42b5beb9eb72661158cdcddb9978c34681751b10c25d5e75be42863073297d216bb5bab667c4b73ec650c7e6ce227ad0c84fc5aa2f68547e3c2b481959ca90598858fa95eba29f590ee39e4ac562a3c7e97323489b01d201cd78f109c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b09c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b0461dda8d89f9244340ca170b871686ead72c0f6aeea72a59dcc85f5bf2f6861125c534548436e43bf17fe0c04c54749cf0b77aa2d2eed5e1e60a2d2e8abc05121658174cef8b7ca01d1325c91a7d18b8dc8db38e6a8a2490f75e8322349c5891292d7ad405fa37806d82528bc3fe8435a85e151b1fdf1f84a5868f532008b701712904481ea91840a767ee6fb814cc3d2571a51c249d288fff9855569f29e602dc0305b7814d160885c828f8813c73f8b14b706ab63d2e9b2a9ed101d552303318a2782ee9f07fe7791ee9af1046298eda0d2bd364b019713221215c83e29d2131511cf8891eeeb9e35101f1116fcd9ee74bb944ca0b7473a6704d45e2ce8740c5237c904e44f8c390ea5afe6d43465bfaba69ea892100bb3705ddce24ee8440ccbb6b02792ad4dce07ba2548d480a5e46e5c1bf4881bce63fc0d59ced2a6aa2bb184a615bdb14baf6be323fde7045de6d2b3dfe994d2135fbcd31b12dbe8b12110f9e4034c391bd12b4f831b670ab88ed7298059072989aa40eee8a6918de41a38a0e25867b5f1ca222c32b5e6c605e70afccc73b9e42cebeac2c51d86d2181b10d50d775cee443a0fdccb3efad072f8b540002a2019c530742524e553b4412bb184a615bdb14baf6be323fde7045de6d2b3dfe994d2135fbcd31b12dbe8b12110f9e4034c391bd12b4f831b670ab88ed7298059072989aa40eee8a6918de414c7fdf99c9d7a30ff3f01c0b93149cb8de54c3c414bfb601e2f1eb0b4b3cf940553443c2d805de874378ad9b92ee825f6e754db6ddcd5ac5490e8ee5cff8b6a11a42964603b8a286e2d3721e0df820220b0ec0a91b6b59d6f68eb4153b3f35638cb244aae9baae5a6ccf5d3e7886e59d73c790067a454ca52ea0989ba90ac6500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001156348d528d433e102c8225ba67e953c9b8e9443c73d4d04f42a007897905b4a1b464eae9b04bc632d550c1c409b9aac1d2e68f4027ab18d758d805a2c9d4f6a3e9388a4ddc125237014b838ef51b609a4a2611bfa45eda9f9b7e4657d023700220d8733efe28948123ecf03f3c386beeb84d270ee0a88c0c38c1385a096fe6516bc9272fdcf243d3fdfa5d641549432b2c06425fb8719d0b0aca5af23b093311c361f97825b8d682887e7fdc03b75eb22e6b589410cf86084ab5f6829f956543dbddfcbb9728dd7535fe74d1fc80c06400471844929a89f38cd795cd04f84953f91dd744e6ef0d5d34447f0e98780328b53d5de25cfc3791e419f53bd144574024253cc3b392ebb55bc27320e560f3f7f19d3c5429dcb6c94596b45d701c4a93c5e89ac75ef23ab9fa0def836f94a6b722db8a6e42a64a45b22dab4c34b80aa3db8b3f059c4e81f642f62f06fa5d4f10bacb25769ce51dee6f8ef2804500a8722d73456b86fdedeaf8395b6b41e59ac7548ec8a3cb68d45b57ed4c18de1367220271994fb7f2a0408a1780217fc3e728f75b944a2f93a6d3a275557ef347d26189159cfc171fae458b3fae7fcdf36ddf84417e01e2a39e1acc9f2085377b8f92f6b1b8fe3b958d5c221cba67a61e5339bcd07ce911c7f864ed5b097564131fa0dc077e2d8958b161a0b3a14807380bd98eff6a10da066bf6e2b5d67f40a55d6348fff8fcc20efd03149904023d2eec122aeb2589977720556eb4d5ea4fc13ae07f104bc98938bfed81d3bf41aacec07c01dbf96ba93159caa43f576c3daac7c1a6d7557b2e88e410ef1ecf0741c6c5a513a94d51f3bf928e4b38634489e46dd0d14d431f33082059505b6c9f0cb2a161268b20e9229127f394e6329fb0b0e0f0bd710efeaec4e9b022a520fd98ba4321d50060c1103f10e7ebb4ac7640dc7473951b6ef46f4fcbe9c5fad5f44b61ac380a14d48cea13bf6d6ce6ad774b30e9e1c5c236966368a9f132541bc79e52877933833941b2d3ab56ec0049b331ed7102241f0fc829f592a254ae012c3067990dd1f8c90a9d263170efd887231b913043257215cb79ed40b26ed32ce3cf75233df6ab65d3b4989c469ee0b68d05b9cf43ba85c2ee954276d7856bde17395127d0cc6d22e5d781e417b434c34f8e5c14910e2a674adc2d24d666acd068f6b38b04d87214ab9d62ab88e482e8e46213c2a0c63114075e963d8340da7cde56c137698973b7063ea43fb08aae0ac25fcd83f0cc95f96f2d11417ae2fd9553d5e2fb0d4699b2e1eb9b32350455c1f30706ad1282f3ce57f837297c8f7c9f3e509ab1b9fea8f43976d3a030566126228e292222e6a80be81cbd7fb2e71a62920c8a679b86b286a90c5f5d1e13b691ad797ccf4240b7fcc8b71a19c1038689b44a5f9c41ae30e1c40d82749b4689c31d09c53732edc062d02af22736a15654ad527c7085b1d49c57c651d9564841f69974424a212d9424652587669fd74181f6eba6223990cd4644384a9dd16d6522905d4c649308ac740cd2f5d239ec21b3b7d7b5b85a8b3fc6a0e36ba745fadeb74c2bcb5f311312282b35f3a47d577c1b7d4ab9eacc0c62bb4e82f30d11ce3bc215608313f28b5bed89c71473869964ab062ade8b669218c0d5c71d8d117aa40aadc925812133267c9235df8ba453a5abd3659558df9fab2729f417328cb943d8327bd082219db108e63728b70a5499948787610bde21fb1dd43e69bc5856d9b99f9b8e6532a25ede904791ec88c7b0f8adaf1cce3c6424583c944b8a1e54f42572b95c07a0fa2897e8c02fd5c055ad2e407c74b584f710c3200f87c05c71bb48c7820353e249bdb5f99dc605fbca2f2fdaf1e25079369f1f88fe4a9d0c81cdf2a0e75955f098b64fbd5647856b909383f9990c522f2420015be89b46b21c022ada4f4953b3ae57996b98f8172e712e57070d307e66c690e2fd97988b661a380d4bd3a502907928d026441b57bd9b5ee6f4bb3a3fce8cb5d228ef193654af79d2c4586ccb220cbd709d0539414b8b70a43baee0e43c8561bf0d3a37fdd409c1805733e99003fc2ed9bb52bc345d77b89f7b195deef2a23e8f580945777d61652888e314cd03980c88f45996294fa78604d51f8c5c65a458d3a2c64e0c4f7acb8d68a4fed901d1eed877e59715418cf6139ec9cdafe79d44a80052699093e3e145aeae796ae2698d2b1e820c6f436f0cf2fef15337b17b9bb48934066e0f5fc0f4206df3ed52d30c4b65ccaff430a6ae8691b1502ed1df45381b89288e2a79f83e093ee643012cf3b49a33500bcf5951796e4eafd130452457a50ba7038f18dad0c6c119bd121f3d78fcff6fc4f34168a0d87690ea12ef1d6947ef5c11a7a96009be3a7f4ed1e0c2870300903b0cbe975f27896f15ef354c2678a5738011e9730511c580b1429c335cf0fd2ed8c0470b243a50d4925a62bfeee6832d34d3293a1317247c89f163cca30f02d1273fb8f4dbc5af2b6da7c1a9a0da11a25ce66998fbb8db8376210d00d0b4f1ea3bc16337b5239426dbbd8082fb3ed17352f315a93303b66eb182f2ff2f4b0e15c43e9cc84adc6bd92444a3e69481c35c3ec67d29dbcc49914e92d30c4b65ccaff430a6ae8691b1502ed1df45381b89288e2a79f83e093ee643012cf3b49a33500bcf5951796e4eafd130452457a50ba7038f18dad0c6c119bd121f3d78fcff6fc4f34168a0d87690ea12ef1d6947ef5c11a7a96009be3a7f4ed1e0c2870300903b0cbe975f27896f15ef354c2678a5738011e9730511c580b1429c335cf0fd2ed8c0470b243a50d4925a62bfeee6832d34d3293a1317247c89f163cca30f02d1273fb8f4dbc5af2b6da7c1a9a0da11a25ce66998fbb8db8376210d00d0b4f1ea3bc16337b5239426dbbd8082fb3ed17352f315a93303b66eb182f2ff2f4b0e15c43e9cc84adc6bd92444a3e69481c35c3ec67d29dbcc49914e91de7898ca0b76c5ccf8ea31d9866d81454a22428dfdbb89c3b361d9f92cb085725edd8763b0e9f24ec8bee196162f82280e8709816f727bdb7fdac9abcdb63e0004c37cf170d22355a2c252313a00e318136f39a3ea0096dd1ef1c2bb8c26fb51b9d5a2a50c6d8a61acdf312b101a31352f3356636139aeb9593bce4d5ce20923bb002b473868b3ae217ab0fdfc7adb3529a48c0cecdead747c452c5b185346825d14e1d68db3daa98fab36ee6c227d822709121ef286bfeff5667784fa49e1a3271e227098b30c63020e94b6f540484d6067d34742a0b9ec2e6bb89664638693788da072119af66a35ec9c22a7467c251a9557141a55cfad4b9facde944fcc01037b1dfce718d4e54e2fbc22550d05d4ffad9acc5a4e422836db263e5027003041ee9642095ddc34c2368c7d5abcc985cc4482726ca79b23dd3ddd8d71a7cc13159f97d5134211bdc683fa5831c115d35b484e0c21ccdd7932b08e4bdc034011057e8c8580c7d259bad9e10a723a662104cac42458ec86b161cf40d51ecdfbb21cc3ea4483b716dd64537bf53f919ba4c6d8138ead137118c07f721b47287f63e74cd5f742a8834f8a61ed3ed9b64ca70b18bf9c58f2f8de4c8f85a6d567b913159f97d5134211bdc683fa5831c115d35b484e0c21ccdd7932b08e4bdc034011057e8c8580c7d259bad9e10a723a662104cac42458ec86b161cf40d51ecdfbb38a4ddf0cdaf5d29779a2e695cf634d223455b30594c7e098337ed7b16f65592317aec65c84f4503e572d574859a9ee83786912475583625c7db4cd1fd5ea12519af46d72ef93a5dc982dca82234f288a4929d34bd197741482b27d409b54d4b0795f53b7f04a5d04115d43825b1860e1d1a75e473adba1abbad2f1d9f37c45200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001277951907bfe8481fe8c0fb3168ebc8d9ade4f82519f3014607913dcd66927093231de7ca90163569ad0cf59c270a567c7981adf86f67403d4d95b3b73a6a4fa240f1d838163248361148e609168e2b90cf3fa6a8e729394b2f7ed43591f8ed221dadf098af36675aa1d64c147b2862258bcd60cc1a7cab8112c568ca715c15129bd9bb3d7cab43dada62a9ae44256cf39ef22b3c74af650fffa51b29669d0071b5c0bde796f09556bf69fab52ad3c33212cdf85f45540ebb456551b3e42370d317fd6c49075a75ab26cbe21b87a09b1d50e5f690fab427b0e0f959431867bb90dcf997d777cbed489d969e886a057ccfa129a45d19fd7a1f288656522105e363f88cdd8a29a7ad5229c758ad1c8ffc6824123c7b5dc0606acbfa7ff7cf7ff73126d35ca12196fbdfe6ef8c6c9a068ffbb19fc2d5d0f2d90a00e5138dd4985920db8d2800fabee76072e696771bd7f73eb02f35c93a6ac7c5128f8847f25bf4e3f2bb23c04e0a33ae84e0273d6d3bef859e3650f45919f23f1a87a80b679dadf3d8b9c10fa3b1799aa5c307837f6bb48db3af91bfee6fc051d0084e27c8b256a22efb8e5b713a6f52c57394cd949a33e0cc2f5847fa1810f4712b336d263ea502e1cf1f00da9fddae38f93dc56b149b56f5299f6b6e82166d0eae6bc558801660b2436227a09b58578c15998cf635e22ce4bd977930db63b82bc9a8166150d823c4cf21c6c5c87a0da259f77af2b0b587bf0590140b660cfb51429dbf94a5f5202b33bdb7b4c0e3f81c7a5466a59e108d9242eed9a0d19b52a0e9ca0d7177ad2162ad541394f1a9cb1c99c1c725cb25b5dbeddbc7c3f5f70483af11701eb5fe50d00572fc2a00e287eaadc9a0b8533d91c5d887c925de20c1420eef96f0ec6ff26766d0f0c3c255c0e2734255f2f049139e524e2c30f45fcfdb1a7e40a5ab50430d153834e6e8d38732248275f8d1bbfb0789fcda3aa56a7b0e9519928af301824d86fa3fcfe68f72746a45e72013c206bc1bd33135328b9e93446214b723762330270812d4cc7fb37527382103813341489b4a87b59b7cbb4b3cfc4498f820208c055343c8a9eb5690524d19844866727d60ec1b8533021983ab07ddf0c82601a701c1cccba2ab47f263b7796f3a17784ebf267163683d37f090ba519b6c49e0b4c9bb93d8b9d9488d991660906a8a2055444fbd6cc12de4c3f05e9b634bfb11fdb478d8725cde5610560028952a8d7fd9ae1a65115e63125cfcff047f309e90e88c5e67dad77a182079acf22ed43a1c37ef70633a2e27e9ccaa0e83a09d3392b4cf1523e5d7bab9b96c685553f7d677008b5a82c470dccca0eeda73de7a6a2349911c51f73492706919c71d94626ad509a5472b666dac550d0aa2bcdb8dfad0445ccf35d8c160c727a87682da457129dca9634e041af3605e5355355e2f6d03119385363199bb2230098e6dafda208361e1d5bbb2c70eec87bdb94f56cf9410c6fc3b85f89ca08d35eff9e15d33191fc448a58f953efb5a5fe99c62de8a68e1e4153e74ef09cd7cef20a8c9800df124e1814cfb1bd748dc8c1f74b256f84082dd922799ae72981314432ae9f7d9e5bc2a50b2100090766a170ac384bdf64de0f79f51d68982bbda60bfb7610c98f40e950d0a083635f46aa831b4eafce034a0bf58aa48bdfeb5e198899ebc50f7ec362d5cc46075850b9d9e34e31a59a675f3156b2a7a1fc2ce2bc30a800081d39625428a17188624e33f389f6e4e1aa6ef22f0597eefafa219c8c48a516c345744795bcdd7e2a0511d929bc54cf061d12c81f2f8dce7e0e990fa1380169cc3cd3a865d7c76a01db02b8cdf063ba980d53781826b8dcc49e185088313e5534c8b2ad58e1beb509c4e59f2cb0c98083a61ba21037bfb2e62e324f3a2b3ea11ab830069b4948f7ccdfb472574d51b8f58d7c3e3178f50655e0bc2f2ba99090ab3a92742662f378695810e6d40a929b1a303d903e0994fee4ce9881bbf366d52c9a1ed3e4e84e94365f38900232536470986f0b3de3c2bdb19d677d681be2d4a36f8a7539970ec2f2d3a8b7a7c6bfe55b63c42c005d714f77d890fd54881bd91c81074381cf9ea5df2d65a4c182c80590ed4fee36687de9f899422d7b188ec093f6451972f7e08bd7657b75f34ac70670c7651d2b19d4748007a67c65c7b4ecf21debe5e60272634fc35b6568bacd6be3b5c25a2e30b86941372361cb3c2130d31cab093eee89add43bc9651e4991e406aaf3512f712d9402cd551e2139b3bf60d1b084583955d2599440b2edcc989065d09091108ed26bfd32aae1dec64c409f2e4f7bca0d4329afb8b868ab60985c9a2f6f702d35e3e40e02a996a62082bce4187295524ae227a3fe582bd977680afd12d2d212ca1c1bf1fd566959df7d431be78d6acffbb6d4654ea0efbfb5c8e202ed2d2f220d7374460d4ff13ea28db0747a3cea34a29fd21810cd8873cd756ff15e1e171df28c8bb9f2b00ec15d724f8b85c315eda3f929f13c2b93255fbb7d0ea1e1ea2a4341455e428fb6392cc47246633092c29fed2265ba117310a8e955b6d6967115bcbebaa1bd7049c6d33b8db99ccf6d5fa6abd9a392e7a888844797492969902f712d9402cd551e2139b3bf60d1b084583955d2599440b2edcc989065d09091108ed26bfd32aae1dec64c409f2e4f7bca0d4329afb8b868ab60985c9a2f6f702d35e3e40e02a996a62082bce4187295524ae227a3fe582bd977680afd12d2d212ca1c1bf1fd566959df7d431be78d6acffbb6d4654ea0efbfb5c8e202ed2d2f220d7374460d4ff13ea28db0747a3cea34a29fd21810cd8873cd756ff15e1e171df28c8bb9f2b00ec15d724f8b85c315eda3f929f13c2b93255fbb7d0ea1e1ea2a4341455e428fb6392cc47246633092c29fed2265ba117310a8e955b6d6967115bcbebaa1bd7049c6d33b8db99ccf6d5fa6abd9a392e7a88884479749296990059566e6dec5172aa9a3d8a9347fd6550f6f1691a37f82eac53d94a6e7613a4813923ea18517c0e7c6fac4d117b9917c9f0728c9ec39dbb77de85b5c17f2c7f431db538e220d9050deb695a20721092fd516be72dcbf54583fa16ac019dccee5387802b35ef46d465536c7a5125bfe9b85eeefae2986b2a5c1676fce05f4e00023096f3065f532e86a57ac40df2077670a0043ede4ae3acb82a22513f9e11ce71d7fc490211442a89bda54e307c18b2d6a33e4d61c37a7bc14225d70a1b8807910a15e6790d8e4b82fe087135089323ffd067829bc177774d67da45e03ba2635208638785079210403ebcf053fb691039dc5feb64d5e55135b61c9172354fdb2209fd7b79a22778c407ba6c5dcfb5a08d6ca01be1025bc844dde9f67b13c1656140f7c93a4f215a82cf6beb8864c0e021c398fe6116c383d633ad8f237112c8922b7fca4a22d89f65ab4f8907d14f22b785ecca330a9a198d313d069cec501dd27014a61a3142c78ae69e53a0b31012aebadfa90dc35eb5536f4994919ec190c088f458aff2d588477a591b4c45f207b3dc0c3f7890e21d8944e3185fec1f6d533f5beab1bf3d1d1e3ce7389d5ea6fe81f97197ffcd963d9f30a96afe218580f22b7fca4a22d89f65ab4f8907d14f22b785ecca330a9a198d313d069cec501dd27014a61a3142c78ae69e53a0b31012aebadfa90dc35eb5536f4994919ec190c37373bc09f874b246bdd243aa3a7ee522cd025a946a3141b6bc285444d615ca43a6062f8bed79a7290db04404bed85d1455cedb45b7edbdbef148a4f3c86af64021f2fcfbe0d85665fbff7fc15e24e6be53d4d744bb712d51515dbdea77c9a162c79e53ec9984e496984223ced8d8384645fa1f12c9aa5392af1497abcc6f05b0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000118396787c4be3140b7700df76687548aa43dac930bdd8a5b3be73fe76bbf72d10de687ecd9819abfdec2fc8e4d16f24ff819bf0bc09f73327c05aa144882746932d713e6aa05c64d8b922abdee7091c844423628fdd8b9425f4a50ea57a409751c5783ef19ff1b3b85d56685f515efbf7ec43a10063adb174e2a816dc29c200c02b2bfd231b41cd357caa0dc63b9e13cf2adfb8a7e062b316840e66ee64bf0f32a10ab1cb7ba28055aeb5ea16be416c94d94791d5be7c49d84494968990d976600a69b11a5b8c63f90f13ea46220c773e3f900520b0429287bf393ce9b991c7314995e0f67000690b09fd41a3a1235a405eabf8d8c6e71937a10103c3bcf58d00eda98836c84203beb7093f04222052e06cddbd626dfabbce078111e8a8bb4d7321ea68a7e92318a8c005fab5c56d1dfb8fd5577762b094d102f13258d16e5da2320835a739a174b3985aac714e98e144d42b0f1b47dd737d9f4e9219a445be73b1134525d67601151e34ac7fbe0664636fcc0511b72c9e881d5d8c578c8fd7501196b0a0a01cde7c0f4f330fa42e9ab10ab7ee65860f5e0563e4f126db920e7337e0812b0510826d543731c19ceea8d6865e29217e167b4fda8b4943da11fa83f48066252ba32f9707186fe8ccd1c3bdb6704de3318b519729614b72070b773008e8b33ef700ded8ce68b14bf7cddcf9fa9f1cbc01ae51e6693b389c0dd07c10c98e0a94c1ffca5a43ce4c1573e93c31f5729015ffd5475f0c694cd8e7d4455042518fe847b37f59295d54ce23e45f26a5a000197dafd0b0431a14924acddb319c992fd06a2d1cedd535bedc9643d249c16936fe3e95a28b2547a8ce7e8d0ce2412cd49e5753a4295b98f3467eba0fbc192303c05762437b39442c5385f68050d7bb3e863366f1b45e1b56aa32029ed05f632a4e3e52fc71db465cd2b5920391399c9508feb42a376979828165fea6eb36d2fcec8c084aeab4cec76c592950a0c98194e59dc9febbb9308aff698840f877b04d3b87912d594e2eb480c2e8cc5318d26150dcf428fa98c11420612ab43003b95a88bbc92719e5affbe37fc9f9135feca1c82e6f741f47a6a2b24908180101d4303310d17e8a70f049148acc3453db347f95cdfada47b5452ecf5ef66bd4c5f87289de654b27881cf1dad5d75bf31dcb1183b522a61b0eb53faa9596d02572a681f4d7a6e93f5322194f1bfa2732c0740538dce9ecd3870b884b1f46a4b0e36bd563d232988c778f525df1bc2933cb3895f6359ae757ac0a9c5ee1701933f2cbe5657f56ea251c56c5f8f0eb04837f028c8183e72eacb516961ec55805b5fcf87815ca90d177c0423b7fdbb25a22c274c832cd0ac793c0fbeccf17a2370d5380f10d2b2f8b3e5d1f905af035da932d0f88b5118ca1de4f7d3f7e481c0b88e37bafdcec590f8772e14ea4d4d4a1524fb9bf7e1e23f914fe074a60be4aad6cd9f485a61f425cfe5880a770e7b87fc2d2df8e51731041f68df766ca01cedfb596a4919682b7d1fdf86a41ebe9a1524348c0f1974a5d7f5ae9cdcbfc5ada0a88422a1c9fe59eca6d4af4e7e2d086036138d3718726c9124ab777e48401f97edc47c8b0b7d6df06ed24e66639954b0d7172ee5553d226974d5510977d1835f9b10b4ebc7f543ca415b23a3ec5d1ae2f2062f2c0b42e0ab1c3c7ca1f390b47654057a9abf42edccd80db73041bc28738324b0e3809476913c149076f2d7fad7ff6ca5d01ec74624bbce307511cd0fe3c2305f629135be8fde599f04e2feae1ded0ef9f2b2865bc93bfb9b21e188ee8720315d6297d151d572c9e1d9a803f638499e1dba4d0ef33e9d357d59c459c4a7a30f5df003dcce58c198390a9f825865bb87a9183baa4743ca9aa4726f17dfc8c5292c866815e32facbaf21218d6a67809b9086d5124bea12c61c80d097e008c652211741776b27c8cf7da9481a5765a7e70c8ad232b699ae754dc7f8f460944012aa91d0a2109b027bd7092bc99afcff53acef62bc660e4120a120aa3487893f036a85662599ea854649f90e6430fbabc51ee62166753a0b6be9d05701ef1e6671ce0b16516c9217f1df089fe53b105752689bba0e95ed2c3b201433b44a3438c1a00bf3b0447c024993c6c8977e12a404be63473b512b0d6adaaa8ac1ea59a14381e4b7f201163411ffcc6d6d4a568b4318ecd3def8122cb9fad20bfb1b932b1203a187cf628a2e055d262fbf60400f2a067d24a45549294580ad1bbb53f33b93aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a061301911905583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee82546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d5791ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a883a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a623ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c31c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e3aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a061301911905583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee82546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d5791ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a883a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a623ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c31c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e17f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a66373017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e14840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d3126132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c8361f5af3dbb9b764e06388b88c8ae25f7a7275bfb8e202712160cfad61b5bc73ef2084ff4eaf933d6bc5e8c80a6d386cf8915c72d09b721619ee695ae36cebe46207bb5847f3ec89cd59900a77cd11b5b93e4e9cc3e7a81b21a34e34673562c4cf398f614735db5469d4e59f20f2345e22d9b2ae524ebbb628ea9a24fec8e30f0920e7576a254c589f1b44c49b053e6896e604e8ae80f95b2742d55558ff28c21b08e5b7ee0f136a61bd9204360bf642cbc56347a0da0cb8daaf842450dcb7999008134748d8710762979b1062406fde0c96064ace3630870592558b307fee102d2b6879fe81419e32cfcc2b0480ff303bbca2014ac309b579f4be78fa1264a2221389d8f7dd827262a24dacbdfc7e9fcaf613aa817fc38db7e90ee3d2300c6b692b53331cec0a24ee2f94d881baf668692f9fdf19849125ffc37b4188d5d2389e08134748d8710762979b1062406fde0c96064ace3630870592558b307fee102d2b6879fe81419e32cfcc2b0480ff303bbca2014ac309b579f4be78fa1264a222095341a8d43c5773684b92297784b30a229fbe166ff382b5a03cab0b872930ad19a05d5dbccfdf9e3210a6b67798410dc2a2d9ac30fad00a082694f3512232f31746ad698f636962fe7915542f1d6f9137bf72a79df62c34b6f1b26a2e2c008d230a8efe605b8b311af384ea662bb972fba7d96f527d71f3430c44a8ef2d3393000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010cfd6a5c45f5de7cf371403cf795a635927a317e0fd2367394c05a8484f232a9223aab5427463ef8b619ea7353cc4799a55d30fa142646503581606e7d5ab8fa2a2aa5bb16e89d9af696234930bf7ad8c3eb2c517ebe0a7d7d9793e7093e6e930b266232fdebb932350a3da7cca1f34e59079fc855d5f37be979a0e1dfc6a4fd35821d9261805509641481412c34252181f7f011a1f726e1a850a1baebe1c1f70b84a84d933b8d7cf8109307659e0c622200e7bb67e2d862caad39876674f92e0585135fe105f005660464039fc6b38283b6d89c23480ded8a0dd67367f36ce139b70073c162a928c4b9a0621ff969b5c51a2f74847fe0843ffbfc0aa20e91c3111ef3471e93694a5125d06a1b26c55270416f585674654a3284468aa3b617ac22e50c052955f09effdf1ea85ae2df1d1c4f49e6193f109ee367e5cac7dfc34521b0a95546cd989bd62b791b43dab6176d9e6794d7664d302d47adbacd8a5b6b3f9115a4577173bd34838aad2667eadb65f5e139b230ffba2241d2d687aa01083180601e20bc51ae3032c3f73f86f211ad7996ea159517c6743e3185ba53371323f1640e0e7f46c2c8da8d211a707980493a3fcd321911ebf3610265a2ad9ac01b3989bb4b83e9cff0262c4ad0ff8b4248283e5a8a56f8282515bf078d09b3743a48d1c5c00894ceb06e08bde00d4bce75abbe63cc4fdb395d6cbcaca87ef34d0094c2d036e93c931fbf49462677d56315a176c660d5ef9115bf405338d038bb08c396bbc1ed32c79235f06c5e2ae910b1a98d167c4315f24d31408c2c5fe57e317014bde03b059294308581996d88b21c46a9e6773ef08fe9fcd437eda975ac2577acf22127bb5804721cbd729ece0cc124adf335b00fc3f4cc93eaca6ff53b1617ace47c3974b720298cc38e7bbce7993ca9d71105cac2809eb84f359085a70f5501e7eabe3c8ae39352b9ecdfcfe48d2c2ea547bb8cbd159847569c6938b82bba1ad97c31f7d3f74917668d1991f7523e115719f70133dbadf82485d1a8101e6bf72024402bd72517b47a3b69acb397219c070b22128cdd9614a82668785b2a1ee4c8bc3c6317b0b6c61d5bd8eb0fb244d07a4df756e5f712a6800f2f5e760526dc0851f5ea5e969253ef6cd4b66d94d90fb6f6a5755cba4729ac2678d6fa2500aca29fae28469b0398c55cdb5cfab6becd975d895f7153ba84fe0449c48023f44ca7a2cde4fa2e67282bacd260257cf83d2e587f4ef508c728ae0071348d3739e43ff33fba1be402354abf9ea7e0204140ea328b66f8f8d0b1b71321330c2acc7050ab91502527bb7255e8ce918883673a186e8a52bda68acccaec0f57153e43d21c69e7dbdeedcabb2ded259bc10ed17cdcc45bbaf7f9d6bb33e67ebe10307a54de57586f6bde0101331bbfd8854dd117a6c6ddedea0eb522f9fb3dd65507baa737f5eba737fb78ef0156150b61a31ea23a952794f59f26f3271b41e1b71a61ac194f539a200fadec11d05c27c73c49f167cf3f57541821d4a2fb9764ce08bd5d5934efc20aab9e17f23d820153621427626424152ea2e0d41655ed830520d46960fb349c3f5ad9b0c34ef8bfd74b3d9d1d0e9784648da6f29d00bc8d0d2d7c4a8ebfd668c698dd44734daa7d7c8c6278f17b7cf4679521219645ff792c0f7702a73dbbae96123f591da39f2a48ddddc92830158fb7896386c70ac3478b34126a170fd565bd71ad54d77811f229079bcbb028cf9e4cebfd1e9c6efcfeec1a8c6a1dee06d862edd566f634c8f1abe30b7408543daca3d04a5a94601f2f1202efd29731936025e4f43f0fc555877f2bda88790f81a156e0e9a0035ca9182d06e542c82d5debc4d7b86864713ee117f117c1e281ffd112629b9b51e630b4ec3a7c18679b99b9adafcaed2a48c27434f77e838fdadf54f4051ef3a99a381ae33a080ce33f2b61dca6d90bc5bc2a1aca1d2e0cdbc49863c40b49b6923789c5a700dabe1876acb9310cfe219330dbbb51198d52704e5b2d53da4020493b69aaf806cf30731ef9fc3336af64bcfedb05c0d4ca09383f917d525525365aec00ca083f66c1d91f42b5beb9eb72661158cdcddb9978c34681751b10c25d5e75be4286364bec04a7ff97f00ebda37173928cebff7f2ce8d89754e9f75bae82f20ab7241959ca90598858fa95eba29f590ee39e4ac562a3c7e97323489b01d201cd78f13073297d216bb5bab667c4b73ec650c7e6ce227ad0c84fc5aa2f68547e3c2b482759def81fb4a064e60e51e087dc59e52077c2b7f76d095e5f0fbc787521049918a62107e04b5f9b19f1ae1f7823a61b01ced64411dfefbd3a1d74748adefb6804c15ad89e8721f87e479962a74dc1793b8302a3b93a43850fc71b9349a516fa3b3ea5276178de0781b8669d58b23e86e6c396585012b59689661559b65ae90717c6c63b18a3a9da7765feed4484c75e298f0d329e2351994ee389e0703972e2283939c4e75c5625889a0112bb7b38a1f8b78bc96b29a7824a49a70c8fc68d1f36e1df277b32514454fdfaa25697e4d6ad84a9010d639ee2f1448075311f3e69091e20d884cdaebbab02055da9681b2974c1effafbe95a38a7e8b077cee0c1982759def81fb4a064e60e51e087dc59e52077c2b7f76d095e5f0fbc787521049918a62107e04b5f9b19f1ae1f7823a61b01ced64411dfefbd3a1d74748adefb6804c15ad89e8721f87e479962a74dc1793b8302a3b93a43850fc71b9349a516fa3b3ea5276178de0781b8669d58b23e86e6c396585012b59689661559b65ae90717c6c63b18a3a9da7765feed4484c75e298f0d329e2351994ee389e0703972e2283939c4e75c5625889a0112bb7b38a1f8b78bc96b29a7824a49a70c8fc68d1f36e1df277b32514454fdfaa25697e4d6ad84a9010d639ee2f1448075311f3e69091e20d884cdaebbab02055da9681b2974c1effafbe95a38a7e8b077cee0c19829bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c0a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac61ec72c0c20573b5141e5d40e17d7293f3bb25cd5f92b26d68aa789660ac49eba06b8d7221f316ccd211c30eca2885f3786348b037a8ee4b5e05159fa94c46c3c2ac7dc6372c289c0e0fd0bf2af4eb26fe87da6d58098575c173b5f3988bc286d00120ee4967571f55c23da6ff0262095069566c72741b0cac7d213ce1f205c2c15c05e370623ba7025fdb75e8b2260b19e7aff57d470e8a1ffe2bc46e4607be7326d69a221d8f6439dc6ab6c5f5980251f0dc37465f72fe842106e1ebc2d034a1a546ac894e941a4a59b3502dc626f04444e58cda130edfc1961806fa8bd952605a80cfa1b553d889d86c25dd7ae7ef3303b64a6ec290a4844dde716df5191132231b390b71370230dccef15925d89406c29d3e47cbfe5b82409632a78ba77193078abbf82471a760d2090327ca3dfe9b30f3b2045527bb00df4629e529c216d3778da629b6b276cf3701cb244c74ab0f3d7a470d20aabce63250a0a3663ef0d2f348ab1f364b279513b151597413cd76bdfef5bc57728432406c0599cc3e9002231b390b71370230dccef15925d89406c29d3e47cbfe5b82409632a78ba77193078abbf82471a760d2090327ca3dfe9b30f3b2045527bb00df4629e529c216d01b45dec38bcdb257c6e1ca0601f52175fc27b8a9d76ec13187260de27c85bba2ca3601c105c391d1d268a7a162b8dad7919be97cb5c3932319837a037a3feee06a54aeb0ea272ff416df18dd6b678418f0dfb32ec0ca218dd010b72d48ec2a43abdae7bbb6cce8015ea075975742d675f99b8e7c861b27d969d92054b387597000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013df66ef37b45e940d06a9534dd7a11e3d4e860288d92aa8058db84156e9fcf541455ae4cd36b3acaf1af1001419680391a6051867618429967867575c7e057f0065b8ca58073bc91abb1e82db8ccf71e4989aa8ac309d24811c7418e032d49853648341f6d5a02a402b0ced457e3df09f4189077a43392c265480b06d00c463a0dcc9a02f89bd899b071de70332be0d10420e3de8a27484bfd020a999d4a4233146d92a5ec1900210786b5bcadbc74a308b82297112a52c779f605c5cee8da77371211be3b80c1ac5a723436b518760fab58c0c1a41cfcf316aa421b83fd5eb1068dcad61c2e4cebbbc3ddbf578621bb9ac2b992440cd17610249e622fa1f18226c533f7495692936308a3576a292b61069994aaf7c19186a067fb876e27bf6636171e8ccc05b79eb4a527872a064eb2ab5cd9636fa95656fa4ae1e2dd405b3c2ded7582d409fbef78fb449a23ca29fe24a00b6efb2fb6538c4962e097f800392b2f1acd6aa8b869655fcb4e05f3f77b77f9c1f35b842aedf571f1157a8ec64b27c338972172337717b05e1d5c5f7f31786ae819f7d2b38e4d75a0c83a8a46c514f420306f7afcc54c4e2ec02752120cfaf04c461e611f5418af042f525809600de10d56a1ed259689591fed4252bc13b6c7bad77ed2629c42c527d84d1eb80f15c893fc96823f081d3a282362637c2a5916e9d8891dbfde21fde1a5a09380c6114682cd79b91b154678241117252e6f120da73ffa9010f544205c9f5c9f28b009267456d38daa62ed211e9ef59bf3f7df8012a5acf9f5a94962cf8ef5a156a31fa819463f405a42f7f3782f8b27b80af9680b779357b1dc7a26eb5ee67b550d0c896c26d8ffe346e1e1f1a2c27fe8c9bf77fe6db3b31c38a68ef55ef04cfeec377ec832519f02fba7c87ee238e7002d7eece5cd6d1a71621880511040847ac13e7a18e87bce44949517ba7e0a296b2dc063dff7199fd61d004aad304b559ec8273e776a7b9cefef01d72964ad52a05959cf6c3a83d8f2b6d605bdbbebda6240336863ea5ade575f807dbfc9e10f4606d4c9f5d1d9548a96cb215ad85a522b84268f730e34944a59d8cc183857b11021cedc4c37027726e4bb5dcd66b722539b2e0b7e94e9a3b63e22288fd029c67597bf9958e46047fba66fd74073546695990b4537d0d6a825bcbd486648d0053607278800c1291a856e99133bbfa28fb83326336c64a47cc38a0da5eeb711491ad97776c02665641c856d38ab0b34053fa128d9fe107facd11050fa590f730af787027deb3e06c77d5087f584376c52d2c338953b3ff87a88053d831681e38c2bc402c2f2134e34c3d87c01ff2251736b2132683766685fe852c207984ba3ebb50c0e036227114512069bdbd20520916aa43da051ba78ae364c079d93125eda16d8841d6ea72e4b476c977ac187a7fe58dc36700e1d0406a71374015aa2c2d4e1f23c9116d9965d216b219d2247880f7a8a0da6ac705574f459b61bd991ec9e5746bf37e5c5ab3a459a324608d5c2fe5c851fa818d4a545e7628531910192bf1404295b37d1f1f05173452b93c9d4b92ead3e787885e930cd2d77db91654e959b3a9c90de1aa5db3da19077183da20b38dd1ac727ed40a6d75eb2d76045ee7b3c3476ccd84ed20dc5f8d3c75f44f723df051233e6b711528ed4b8d57a3704b230e7d8c1ca105d7959a82a8c97b9b8ec525e211742e160aa747736eea1c6973d644c86708ae1770b52f71bd910a94e47597a30d6ae06e2b3dec3e0a4a214a3f4862dd5fe5344567a6fd080bd5c00893f3d540796c8578d001ada1bd8776d5f4eae88eb761514e902d213f9ba062465d08546367045eb2e5789c627d4ab4f8bbc97efd1a691940926f28e4071a7fae9616bf928e3904035263f93f54b4757db136a136d63c9ae414e873ac5b5221bfb5141f500d4df46c46254c9f795f2fc35901698c5bae75f71e25ee9e2c88949d9ddc58a36511bef585bb03a260638c83b6c5be0608d64a83bdab3d51d9ac76a465bc98a038ff846763f9361253c6998bcdce58ec9ce28ff6cf2eb3ad9f0f89bb0b72781135584952d280f9391465bf0d25e76388b91c0c6db8db62ebb374fae56df8a8c08a444d2f8a843f165a648fc4d116b82c814f8096125212101bfc0b0479f6d0d29ffad749e86b5e9b248665957ab6a4853490b9eb787fe5195281d7a52edc4893f8ca0519b610872917ad9cf37e5dc1a70a2803feeeceb6d98198c35f5a6535f273659a1651a454ec52b09d2c0411a955016f886c5d5d4b09c45e1fdb2fecc3c18c9a65e9ae5bab13ad4f62d3fbee56ad22fa0754377246afce74eef4d0133c5040fc026f9835a89d9d7311dc14584ea299f0fadc1463c2041d5d72d7ef9fd293bf03fd9067ca5762628cee23eba7b15f8a7894e4806bcfb575759bf810602d8144ec0c2df90c4b14133f594c65b9892d01b4e64c65f2ca1492d33e37ae1f1cd2bb13f3d206f3b4ebecc0a6b39a4676d522b4a9742edcc7a4ffffd09851e0e342589c3ce5dd3d7764603cbe7dfc9faddee41eefbd68ee60ad4b4d2846669b9001a763c31a22c2889b9fc3418203605223404aa0032be1310c4785e6899964701273659a1651a454ec52b09d2c0411a955016f886c5d5d4b09c45e1fdb2fecc3c18c9a65e9ae5bab13ad4f62d3fbee56ad22fa0754377246afce74eef4d0133c5040fc026f9835a89d9d7311dc14584ea299f0fadc1463c2041d5d72d7ef9fd293bf03fd9067ca5762628cee23eba7b15f8a7894e4806bcfb575759bf810602d8144ec0c2df90c4b14133f594c65b9892d01b4e64c65f2ca1492d33e37ae1f1cd2bb13f3d206f3b4ebecc0a6b39a4676d522b4a9742edcc7a4ffffd09851e0e342589c3ce5dd3d7764603cbe7dfc9faddee41eefbd68ee60ad4b4d2846669b9001a763c31a22c2889b9fc3418203605223404aa0032be1310c4785e68999647012e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae96839ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e063701d30cbb53d7978d008cd3615854317feab4f9fde2db6584c6b4ea9b95e5068b7cb70c4e968fe90a321a45ecb6c221e359af3f511fa60b4bca61ced1e0ae0b9d90bc231deab9fbad0ff1ff13f02ca70bf11681df59bf6186e96beb36b7c6327b0d54846bc907968217491a2e1f64a5c30f5445af69a1e3f6cb4cc860a50d28195a152cd208f2c4e4a9ac2e5409cec58031981492e73baa535c5f957b79bb19d901a5c7717318f89933297074a6cc87be19978908dcfdf77d2a69c88f77f62ac2b008e416aeeeafb8a4253e3370b83b612a6bc2c356527172338398a504b204e17d8fd40d9829b837761a68a944f973d44b371156dac561a2e1ff66d6c6fd38e58eab6857393e8ea4b8586fd99eba2182edb057fb16c88919d7bb220dc0653b12ca76a70122037a049f2cde0e1b14e91267d649f8769469e1aa59333c90960b41e1f0b09aa7824dbcb664749ee603ce47cc5e7bdd0b0b0e4d49a10ab980b53f74a81f7fa0b447ae11409d967f8383968528ccf8e2e93a07ae304ef26bf8f738e58eab6857393e8ea4b8586fd99eba2182edb057fb16c88919d7bb220dc0653b12ca76a70122037a049f2cde0e1b14e91267d649f8769469e1aa59333c90961faad0632f8b972d2ffcea1e587a41dd38a25adc8b1f2f61cd204204c2369986057f15baddf44b0fd34bff1acdefc34c4b6c3515065c5b0627db35f81d5e43fb3a910bea7a4493512292dc5c935bf23fef4edea2048a585cee3ee7b878a5685d3affa66676e437a0c872f6ada43c1d647f9787471e01888e1af5b6437915f7fc0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100c31e39aeb3e026c7b2d09b35d1db4ed4c8522a60e81f7912c8d754be6855e906c7fb49c21aefa40ec558b9e5a2d2caa10f03c52da7d8568632f61068cb86bb2b4c169579d5c0222dbcc3acf2a3c27139679eb9df242b7244e9f4e50a5966321cbfb6370df4847a3d34ea10733d75b37853676011b49c5f82121a232b25252b3e32f5658155b81d8d34cead07f86f4e80ac1258a790a8fbbbb35c02ad2613442fdb2d841d3a655d991e489b057dbe77459eec1fb79dc4018d522d07c29cc5bd32c6f6e406c32aa1bb83a2dbc9471fa66d9bdf6e1b8b3696db5a944806924f333241c34302c27ea6fd4080d5754dc1549f34196b811037b46b2a471222197cc224dfc289ea6387f3b68a349aee2da27eaff7ce3d42dfcd63d5754a249a073a860b4da4b6be384b59bf751f82c0f8dbe96d5627df459abeaa10f58748241a828d304ef90f6b990372b390bf6d714b8b8479a3b111d744a9a6479ec06dcde2a311122d00d2d3a7f9c4c28f238351e59b2c4bf3f5a3b34d7178bc306763535270183186c88eb4e34c9e3e153936eb01735632fca001b1b61f66f814fcc75f5885d1131a6e128f53bbdc59777aef09132778a6ced5db831c9565834fedf22341080b38ab429ac365985ab9bf159bfe43dc2cde7d10f233a4d762048d825e7e5cae093ae84b0e7d80a74ae21252715570a90639a6d2668e405918a8f99942b33b9bdb37f989cd5a01c36fee466bed3707f3dc44f495dabcec628240eadd91660a2ec2214b3184509c9710e0a7294ed1f8e72d7e869bc1aceaac5463adb5239b1282ba3bdaa5a77ee05c340f922f790626486a8c97c482f938bb50eb0f4d1495265c701e6b497661f3f828f1c6800c26f390c855ba5f26f761f8a826c3ff75eb71616814c77731dcdb73f7296a7658e287e6462fb03abda907dcc1fa4d0b597bbfa696243af082755ef66af0627935f50a38b417d26dc952b83e88f65bd1e2eaf6aec40287fb3927ea547d280378dde562310dbfdeec147370401825d693052151955a1d6035588cc7d5621909bd1238ad06af18513818b83ad4ffebc45a35b21beb862ea6316054a1614c7274e1b5ef1416935dd899486bdfee02e51dda4eef7ceeba199d8ce3e5db2de9b9dcca9c05906c4935772c2d0e2aa9b1c47e774faefc4f883fb61a9877b69145e8cd76c69895cf6e3b3c08998260eae8fb14ead59eab23982157a4fbd3ae874c586b9e052f4030baedd3091733ee23f90bdad78e439278091134c0d7641de24bbb47eafd2a47685341f60dab0ab3f706b3ebd372fcfaa1a510f387447e44c99e1938916b4edca4b73baf9afccbf2f407358e1aeebbbd125c1d08d25848b28e9bac715b03e764d7013f1127f8dcca25b4e12ca4dd91d7fe821db8f87a8d12ae552a63a1b956f3beefd5015790357fe67b379ad9ff7ad2b88825f9eaa9141752d01a47a2c37bdf985eef03ddb24af903eadfa4642095873a3d024cf6bf7487cb3b66ff49f8af95e92ae4466f15be7f2b748e7810b7956fdedd18aa875a024def81cdb2a027a5cc3378d7f0fd696fd1f357e3e4234aa99bfc3e275a45d44488d7c34d6403a60c675857ea295317c4056cbbae4757e78747eb1e2ba1c6f663a5946c79946422566707926cc96aab8954ee683014cd39bac045f80caaf97ce84eb99e0563d55c183235223436107fae5d76679b095fc5806f6c040e5398a00cf3b5724aba21b02c00c2d3a93192d66b444200ee492554506baf4228cecd11a83aab00690987e9b151df104c55c6d1d654e7d0ff3c13dea1c65b4d330e5087a4e03e95ca582557fc0a3f95e08e28987f1ddee1ccd0f794338d28da3520b594ae3288f8e1f707cb7fa09ab591ae0d3cd27be7fc3be74d98beeb74f303371a5f76294309011c1ba3fd9afea4facc6154f58a99b3344afdf06a932b800b6e48c6a6778517996aa564b19019cdafd5983467e0864a67f5d1b5e998071b0d2642b753950cccd60c7783e877b94fbe9473a9207ad0d6c7bb7cb7161ea0252a78a7e34e9f4f9aef3a116e4a2c7480b83590fd31b313625435f6f7b8e299380ef1748b2b4b6d32751c02fa3e97035ee42fe6195bf2c1703be133bbbb47855331ef6afe2e68affd2a30c6070bff276bd2a567e48be9b0e228268a7c9c68acef1c2219a65da737d96f2ef3a3d5a99c427622d3fd83d70adfb6c8d4f538cfdb1505e7c1f15fb49c58469d918d1aaa543378b7e45f9aecd28af5cc9410b5798c0e3e46c73e7550160a5a0737d08b513beb5cff349ee09fb56142cae3e635fca8ab01b938c18aafe9f5a5f8c82f74aec414c547645d28ad43ba56624d06ca0357563761e4384a906e33c2241712b8962b9847e1a32a3deaa677e941afcb0def4b53089e1bc7b56f91cc3ddbe8ed4769d467da64f5d1cb6252a3afeb8121f210b4ae14e9751974d22702cab4735d9aeed9f8de4dcbe310615be92993ab4345ac789b2b168ae68b2dd8fd354b8ca26511260743f8cd18f8eb9d326f9985a9ba538766288f497f481ac30df58640d406aa41dc353e62734899d27236b527635c5e5b061770b680b7e53cf20a79bf2bf955be23ed083688c0b326a962780989a3a1a4fb3e46c73e7550160a5a0737d08b513beb5cff349ee09fb56142cae3e635fca8ab01b938c18aafe9f5a5f8c82f74aec414c547645d28ad43ba56624d06ca0357563761e4384a906e33c2241712b8962b9847e1a32a3deaa677e941afcb0def4b53089e1bc7b56f91cc3ddbe8ed4769d467da64f5d1cb6252a3afeb8121f210b4ae14e9751974d22702cab4735d9aeed9f8de4dcbe310615be92993ab4345ac789b2b168ae68b2dd8fd354b8ca26511260743f8cd18f8eb9d326f9985a9ba538766288f497f481ac30df58640d406aa41dc353e62734899d27236b527635c5e5b061770b680b7e53cf20a79bf2bf955be23ed083688c0b326a962780989a3a1a4fb22fcff711ca6bb32171257895548f0d889e96121e743e2acc701e0bb637c5d8c1709b395ecdd7145b01f3db15cfa8cf1b8327eec8beea5431732cb0848e630a22c9c5447ae1258463f3aab447a9f9906b7afbc722f2eeaa83dc7e2d2b05d15550da9914a1efea3e5e652d1bebf32fb2c4a8339fdf7e114fbb9026c3948d1e57b2f471ecd1901253cbe48eaa120449f9234db7f1c3147cc3c8e3fb3d6972ce32533a4ffe89edcd0f48aad7d03e65501a41b7d74f235434cbff622390271badfbd0b851e031aa982bf54cacf7a607f2848d70c572722c46bc9dae7622a49d99f51342607414525f0f244575c06b9051fe8d87579b36878d034c5195e9fabd1e44803c7fe1b372dad396937bed633bfae834ed80fe183ca0ee02804e6e1799e906b0135ab3b28af7ffa8a647da0600d1571c58671cfae1a084b8a512712f1d0d7b405a5ffd799ee791a1e19fa91d9a54e8af417e367cbc1eb54fac42ca68a228c090019ce44ee0e9fff8b885fcd5d566c7425cb3426a3d780b0f6316dec3ed1674f3066ac473546ec87a9b2fd323017762102f41463fc2724e22d909e4bec268d221b4cbb1ff423ead4698df08fe3d277e21f90e011857d3edcc8f7f9ab6e47e9e505a5ffd799ee791a1e19fa91d9a54e8af417e367cbc1eb54fac42ca68a228c090019ce44ee0e9fff8b885fcd5d566c7425cb3426a3d780b0f6316dec3ed1674f29a42d5b33a5fbc474dd296aefa8dc2f5ad052f4ef2e4e18a22584d2d91aa07c33433d04e39ffc58fceb24afe797a46d21befe26c689749b8a1e717957e9d44729046ee0f0dcb6363aed4e6af29471baa8493b25a6797fd821a59b4dc988e94d117c9622de397e962557565f70fd345458ee8e39b33b9558b12367e5fa9f69d200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001069aab16392e5f2f8c08e45422d50e9d48917c11c8d8ce2c2d3aa9f162df05310ae5e1c31e3dea274a29f365cca89ce2cd8bbd59bb260ba0f948aa29ff615de836d12cc17bc9533e17f684d120cb3e383e5504d9b896cf03cb01174fa66600de0adaff094fac946f669d95068093c208633b3124d48da57a6238ecb981746d5f368c11cf2334db393e8e633775bbd875a57a0c5f6cf0b22642a6bc7252190c803d924c250f4c16f3b19317066901d92b76fc502fe1125197ffb5471608269b1728e468a10e833c2d8cb63e443f4f846b8124a364c9e4c1751c151144e5215b8831cd7bf65d4262177fe45c4de58637b74ffee0eb212fdc7b56cb769066f246cc1c308994507343633f4cc67ae61c0f1bec66bf00bd02d253bb5b42d75f999f9721326b8a7d28b37ce3f638bcfa59520f1d35935e5f683f8f1217ed58662c1c910ef11dd5ca1f95a9a5b648659b735f9afa7b06005a84e2b4cb52de33c4669df81646c10c99e4127b72622e3fbc32bdd7fc14e16abe028853f2e3fc94cf179b473edb3df744e691ce8e8876dcf4e21624841e9ca370ccb96c3125854bc4b78b872b11d0a4b23ac3756b32e30889a48d45b27d68b02185ac8ab1d6749dd971c51716c7e52ca9325d01b26c44540036bfce646ae3a33784cb916736a2b642ac4da3296e0c67897e1df68f892ce505cbdb1389af652e99aaea6585d36d015199ce491602582187bd0c7c3fad239abe99d557023daa916686ed8580e0416eb5c5d3ec0b4b242abad0dec7bbfbedafa2c5b8fade5ce3c7e0b0e06a935c7337fe92afb607244c1bcc43209309c939e927767d3bff5e7e9b589c63b2fd45317aa35ed8953fc1197c0a3435980e96bd5f9d8b7ba224a0d06c72184ab9d4daf44c58ebba7525d77f434ae9abc454d952c7da5d1bac94ff7d2199a0e70e33dea3d36517b18328f804a08fb995ebca098cfab33d2c5172d49035583faeeafacfaf9e4c6161bb04dab80764641fc85a0a6347bf3a388233be588ad7b91dd24c63e9f6f4d018aa362a936554ae8fe2683c8f577355c49e02e036913874ab5617804d0b1e63c22b1afeab13008b489c6f407442ec429c02f4fc7b5182ae971bf77d18b1843870952560d9e7e8e42415919f43645523e8ab27c86ad5a4410200b4d5de6fc0dc4486147f3ff91b05cf8c6b73537d4b1667c161382574aa1e80d3ae160395e9cb6b67290f0606da7a22ed047b8e059de1a1eb120b2733674bb3aa681af5d52dfe80023ffa6a48a632ef7a70900eb47993be7702476e2e79205f6ae6deea62674376360e89f91b4fd15a16148130fd6f85c9edef4bc5638fe0ffb941e9a7b850cadacd0b8862e5eb9c20927e091b946f34a952c45742c2d19feba81bacef58532261300d476d9833391f4c4eb118aac84cf64b2f49a9415cf9001d5a6c8db1b17222c5286689730d2d647e2bba1d0b59c3f9abd7028181305efb773b02e179d75997a31f68f86c17222cda220331598e7b4a911ae910b1bb2e24024e6e2f70bfc25d6a0beac6b9bf419fa6644d45bca878aa700b75a3bd627097a5f0b7e6024e3af9e820b94e4040d20185d01a26333376817aec6fda273ba1a567d3d91cc53cc160223004dddc20cfaddc947cf882f225a4ee38e31fd3458da0c64d6cab8366ad44d4398ffc5fc6a4e8acf5b20d0442def277ec636ee6b028ff937e3cd3df06c61448180e575a42acb0c05fdae10967e50e5e5a1d9c75b24d420d813d09d21450bbc62602a83b4f524cd22d1838be5f4c04f432bdf24e6776f8d6b6e99b5e87df05473ad0249f703f7085cbc2e7ab07769bdb249f9842ab0c3f4ceeb224660c52525f0de661a6bbe9e6268e2d10ada8e936ee69599d6d76f603cbb72544304c83f146175fbc686d7b2a1daa67fe6848c0210d9d4a629f3a15563a0f7fb42a9533a3df1bbad9d57bbec1599b15c5afcff483416d05824686767a019724e21dcebd109f27b76197c871e9ae703af8564d225b84375e8aac8fbb32a29f6a69c79925b03d21cd5fa300c90bb6cdb0d6c674905362432a926a21c8d13e909199250e44597c003835714b2db7e3864465028c9423e0841a6ee2810a8b810661d5d7df7b45451c9496bb275d11a3c27737306f29c03d47248a70949f92f5229efe1b8d75a52f328a7c5bd1f99b0b397b24d4ff43f41043e1f272afd4b9de928a5c23039a4a3e21768e062a8d9855e731be74e274786401332dc9a3832cd4ab963526da7038c007fc67f0d2530e47f91f36ded523f7e7013069392919e4978abc6e0f780c038c3803980f2dacf1b806e0c9212adc081921162fc2e03314840e70c2dd87f3fc7527ee07b41b9f4767dd9c125a29b3d78305f20e1dcd8176f5b5ae264d583c11bc1811f84be460b8982263eda5d64c287d1c548ade3bcb8225e37f0a9fa7c3ee4507a626848a1c6507540c5bc2d083358eb6e67ba0e7a06779c0df2cbbb92c58a93859d97b75e39af8abf3a43d2f7cca716b601d5b21ac91a1d84e043146d3a758263ec096b28df924a43dcace12900bc992806a2486220560c45bdfaa9dddbb4d19c13f694d7206db5bc23531ed6ff4368fc62ed7832af3bad4d15142622244b407fc67f0d2530e47f91f36ded523f7e7013069392919e4978abc6e0f780c038c3803980f2dacf1b806e0c9212adc081921162fc2e03314840e70c2dd87f3fc7527ee07b41b9f4767dd9c125a29b3d78305f20e1dcd8176f5b5ae264d583c11bc1811f84be460b8982263eda5d64c287d1c548ade3bcb8225e37f0a9fa7c3ee4507a626848a1c6507540c5bc2d083358eb6e67ba0e7a06779c0df2cbbb92c58a93859d97b75e39af8abf3a43d2f7cca716b601d5b21ac91a1d84e043146d3a758263ec096b28df924a43dcace12900bc992806a2486220560c45bdfaa9dddbb4d19c13f694d7206db5bc23531ed6ff4368fc62ed7832af3bad4d15142622244b4022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe3c5e0dfc420c69b8c9b3968ca82c303773d9405e4373769d106110b3c354aee60eeb52736737c5c7a697ae19115a5291fec04fecfee0f22623b96d927f9cf3ad15d27a9825d93d77f0a3aaa1ff2d82aeb30fcd210bcbefd00fb4ee4c9e8c4a14149d5bca08406f150526211d7557f9140e65bf051012d9af0cde2aa0009749ff09e437dc891ec8fdf70cfd0004032c519b5a4699efb5e4a68d1195507485747000de7ccfe8e196534955e0d75660c2d1b84bb8d42768604310e8bbf10258cf2b2b7daf5260c290bfd4966a6aab0043b18e76968a2f8279204734ed0f5f0b1f0a1abd3511536821dc461c7d674732bae6dda3b9d00728c5266be63961803211440d7914e1c1355fa9500415a876acc5b20a15107097e0c89d34b30f8c4c5460fa320cefc0dc269bb058d5e493e469e5640d49f43f9be85882f708dcf119c48e982b7daf5260c290bfd4966a6aab0043b18e76968a2f8279204734ed0f5f0b1f0a1abd3511536821dc461c7d674732bae6dda3b9d00728c5266be63961803211440a95bdee31c777d68838a75272997eb832f4a11c14d012c3820d499b616f85f40811d7197ba6f42d9e57094d812fc94cfaa98e5d8b21ba31da637c1f31d634d6000b071bfcdb0198dea869c46d8559903303c03a59a41b588d87f84c507121743d93101115f0e7276d99796959ebfdddb8bcf3468415a5d9e86ee272ae0b8c63000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011187cae737f998539f30593e5acde66ef4c1d24cef7b2032586af6c5c406a62a095b8a4d83a371cd6036a24928fb6d0cd2e1f2ba1cac5922bbcb513f51ce6e932dd9e1381fcac849c1a9cd8eac65b737e7463ba1a9f22222894b819adb9de45231e8fbbaf938b796fb94b868b48e790d4baf62c02a5e0dfcf778c2e85f28fadf05c1a79f8ce1e67ab2c848f64ce3cecd4d047babef789d26ada2de8913271beb283f82c661dcce390764c790158df425ee3c589a56298099d03a0ac9f3632ba129d5184726f5949e9b65ef035114c69df656cf39a2241e3f8c3bc7d2e39f7d8d18734ba2ca28bb039009934e2a2dceb6c2e1e7a0c6488876aca08a956612f1d1371d31141b9073aa64cdb646dd8bb1c23309e83a9fc334158149dc3e45ca85cb0cba322ba5e5b3b10d24ce32e7e7540b3f9e4f014456e291e017fc8132bf833d04731e1bf98283979aa28d72549bd3b4dcb26e560a9e0fcf0bceb0817f4d27780d658665bf2403a7947a2519e2525cf831f2a4192cacc9047ff2fcddf90b3db4356c047e3ad711f3e677b9cb6a92bddc0b6182d57566d8bafeaa184d74294da60a9bfb7615778a5414515613d5d8c1b4ae1d8041bf91f4a392083a31fcef75f51890f2f58adf42d757c651dc4e34b781a2ec66092e50d6725d616e112d40da5f3d5d88b421a09124d9003da502301098510e0ea9a0f3bc0db95d07a43dd42ff6012e64393a282adc344fc26e147962a119d67877bb56ba6d82f9de7904636331099863db30584eacb0c3366c812df6d48b70283cd4cd796791049699cf35780e024eabb1cc11d43a61af302880539465df41598cedb599bc8a2edbbf31712f79213f9c333c8b8cd0e54f3c5b67f072cc58c651afffc2e21c43e92bd60290cc8f3b377888fdb1b4d45e00a3a8426fe8ad2bf43a9ac0c77011db704125e0319c3e253a9fe5cfd5669a2da33cf222e3e9be45cde11f17d2f51a6b2893a97edba8e6053e9767d26222fc3b64e4c933e6c3740cfe57fa3a16c81abcaa3881577fd2962fc54bec30dc58db192f101acc32af3f65ab92c02c8692cc1bb81d9e937bb1f4143d6ddf67ee2119c60c9e8d201548418491f4996f9d665a599d13d8cdb61fe32cacd74a6de20cf1c71ed2d9e2ebdd3b2bf7c27b2357ac3deeed12add8f90e1e315db79f66f9985bea1b50e504ae6a9741bc0b0ee077d51f2271cbe1779e3b55144c081913205b308e8909e0a20eb0a34038d832e099c5d1e7588b31c9915f682c4d3519ed8d7f6a91a28cd3c427d6f348ed173660f1d773db2318da37bbefd41aed0f56248bf001e0c9efe0900b1d6db61be347af65774bebb41c2fdc2f9a4419cb161976024efe12620d861c902a4afa08ed3663ceb6506701cd483a0278362c37b9197c296c3f546d60a4a4613f365fa7d3f71b00e2173f28fb946868e5f0287c7af994c1f323f05840eb742e20ef1f32d345eb20d9914218e08d8cda7c2227694bf2e5f6edfe204272ffefa047b9eb5db372585a88323bdae8520082973811b2c76287017ce6167d5e1862f4238d32fd3d1546178d5a64fecd0e89db399a0516faf1b213f6b3295ab7794fd5f35b9fa1a8665fa8132b6494bdf82296de7e017a6a63213cba0645b282a1f23a11abfc64f73542f44f01b1267f42d12d0c4e0918c2f2e87ba316c72afc860a710d5c1fb9ac7c23daf290ba4a292d41b9e6b609e4bbc928301e13efd6d26e9848372660cbf770d82516c92dcb60688516d62e33e5d6e7db7abf1c4d62af207eb0667427455cd1bbaa0c456fbc7e8b59796ca33352f87136a46a8904335ac5eeb00afd8920ca1c6ccaaae5fdb495d544dc367b028fa990c5223caa07244e8e1f1e025dad839bae254af8e876ceb8bd25f5eb4a07c89da41521f0e610edd92f9596f89305f6956871d2e8afed6722962f653deb29f905821f66f88dec805744d2e8669dd5f92bdb6bfa05c1ca3eebcaf849f3123305642148d1385e70b7b7a20183556e116aee1cfe0bff484f14539ca1a1b758345ae2cc69f21c2197f3bc3066ff9d5156bcc816f16b1b26574e6dda243edff31540a833720b1f11d8ab5c534bc63d2d61911ea7b37c6bdb42b2adc22658bbcf26ff053d1851358b19cedc1243f5830f5e8c69f69aa54b1d22918264406a47482c61f1fcc36b4446d66210f261dc1c77569642319745036c87bd21e613660fff2c59e0993fa5d871d0b507ff97fbe2b9994482cb4d3d7739cd767559395751f41dcb6a7e37beb060963ff69ec240c9dbacbf88d2179940f941cc64926ad0c37622349581c8414f9f69c009613dbf362475871029f1b3b8225760cc5a952f3c8b14f9147716b971e2ef3fd119cb43f14a1b307a22636452a716a395021613d14c2b06eb88e9468e1d10c02ee634bc0eb607161ed9a5e8a67482899beae9ec2eb528dd6653719f396eac3f1580f853b67265abc9afe7a8a427d804b81d6e63167b172299ac8e60c69153c0ea7f07ac498dbc9acf4c21a454f3c12878cf919ce9860c52ffa1381c1f295d3b6b84d9a2903b9587257b6a6449746c9005cc27ef706433ad005ec7e3e0d6a2c4947b265d6fc48cbf73809ee8afa72c9d2b20d8108f9d1dcb6a7e37beb060963ff69ec240c9dbacbf88d2179940f941cc64926ad0c37622349581c8414f9f69c009613dbf362475871029f1b3b8225760cc5a952f3c8b14f9147716b971e2ef3fd119cb43f14a1b307a22636452a716a395021613d14c2b06eb88e9468e1d10c02ee634bc0eb607161ed9a5e8a67482899beae9ec2eb528dd6653719f396eac3f1580f853b67265abc9afe7a8a427d804b81d6e63167b172299ac8e60c69153c0ea7f07ac498dbc9acf4c21a454f3c12878cf919ce9860c52ffa1381c1f295d3b6b84d9a2903b9587257b6a6449746c9005cc27ef706433ad005ec7e3e0d6a2c4947b265d6fc48cbf73809ee8afa72c9d2b20d8108f9d28a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e870b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa126c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b0656a0cf4c32a485099d4b8e3389c827090d82d1172db3667feac40730816f133ecad465c6944b325598776b427052e58c94c13e930403f45b0a408f56709bd724287a8653234caea67c56793cdbaaa0456cdf7b43e6c05ddaa6c0253a47d6d505cf217419e4f71e44fd795ce3ce932c1a1bc93cb728baa1d0df0aa69bab50142df7a41daa41939712174d67499152bc832f079a0136eead02e44982e442929e040a5288c7f4cfcfd8259e43e9af00a99f1296f2d19b0da9d22eea413fc016fb3929f857ce3021a1ec2c9bc89b76c6e5277ec01edd2f637abfe35990685ae18e1b00dc3610a9bbfbfcadcd305379400e30def6fd40025399a6ac1292daa557402e4c4d322add4454a75e3e1e6faf60dac34f7356ab65d2ef20e7ba2e956941db0e1a7ede4b179257211a6cada714a7beaad368ffd2818c744f6356144d0c89eb3929f857ce3021a1ec2c9bc89b76c6e5277ec01edd2f637abfe35990685ae18e1b00dc3610a9bbfbfcadcd305379400e30def6fd40025399a6ac1292daa55740190bc849c6cc0fa2291678edafeb50c4de0cf9d755fc8a4ccb8f51b6f6658fbd17df197f7963519b60d235ea5e84d4c70ee43aaa3132314de8f8d1323d04e2e22911e10add893cf446db47e86bcd7e9f77789975c10d99de23dc121ecfb4666b04f01b47703ef466a3800e140606ac5f261b504a8f435ea4a8e67b7b9c989470000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011ee2b619655dcd8bb2bc40315f170c5818dfb04e6129d3962eb5c861c89021cc33c5a45b51b12b3ac2d342948ba72eebeaff0ff7fb38fb6b6d8a898aefa392033658e452c65440bb0957f3d8bda32910333edd71af5e22916f01c6ad9d8760f402a16ed3962a226f53c7baf8d949a160697684da8044c6cf69343935883098ab3a096ec52ca3676e505a7fc4fd4ed5f99992473d67348a6734453d499a48e4e226386a890af379d820172a67a9427d674c833427e7bfbf4001f5ff3f7a8e5b6537620727e4533bcc7947275e2857ee056d93428060edb975ccceea88185c806f3006818b3197b4f9d26449900ba353cddc0d83a1ab490fe92601e5e54b5133fd0ba03762ffb660f03b466c8ba0934f26e129dc4504e0c2d586ce848ed827544534f922a5e3f45892f23885127770c4147972b300996da885aaf43e43ce1770ae3fabdbb03ce5a42a270de08977d7d094436126dec73743d204611ef6631db0e3262ec2deb05201560b8e060ea121ab83cf86e50dee35c4b608787ad17566d8d4084c66733f999c77875e6249dbba1070face3addd01032075790ec57da9f59ca05660989ed5fd2460977a96f0aa1b483a1c3fc1ae42314285402014c8633621510cc69ab327e663e6433ede17dd1e9cfcf8fd26a5b3bb53c71920937d73bb6fd1a401ddf5fd0b047466e0ce74a2026fb912dc8594c0eb99bc855e2a74d37f9ce31866913a7a606827a5ffdf18c2c6d051f2110258ac88e002dc1deeb6eb1a2e030b577476c00c26e8a64cf038cf0531af1dabccc38acd34434827667a22404913134c97513f504efae19fa5d9d979d042786b5ba14e57ad1daa2c97b8e38132939e5c2d24970558002b8e4c8bc36c3861778d03f47fe170b2b2bb3bd20ebb2fc09047ad2196719a59d08a9230f8f5c6fbbdbd27698499ff5654814c6140c31ff3db14454be44c88b93b8d4b99965b86ade60b34a72aacc33779fbc11c77b15502ba83a12e604703ffbf84a2c90a67d99975b537d2e2c0409ff997fa137175ae824f9522e2a9bd8e17e9d62ce2dffb2bc9ab78cc780bbd69f0abeb67168012f5f2fdb7896b2a34c7771dec43103af5d0ccd62ed233a7a1d82462f4928c36868c82532ed9c94a687ef5b8e8ac08c46b606939bafc53a7f213567f73ff9476661082d2e9bb2b446f5638970e8e2fac2813c14a836c2b77287f59d2061272fbbbcdf1f09bf2acc1d1d7ec9bfc099bdb2c1f1099ebf51de3486bc21251d6bc587a0911460503c038eabd31cc5173f3ac51356fb95fd4b90befb8fbe79205f1655daa33c5799917a58201ca7721c41a10e91bb6d524634e3ef74502326d418fd41dec82e5fabcfcebca4ddbf586a04a567a8aab8bd7cb8063d78b082d68330c97db61a1398d265b4fe5001ed100eeccb91aa21c5e8380115e8246dbd0469bf3a52df553c83b6701f841e9a02c6483d6340d3a9307e0f29ebb0a3c7fa707f5b418b36a208d528ff980d825934226fa1515d33deacdf9a6109ef13186014ed6e9710daa42be517d39826daacc06a8d775b5a43547d37aa3dbc73034aaa13c6e09aa3a3350340441adf05e1a7cddcf584cbc3d2be23db42cb9390bcb4b7597eabc631e938242c1279e89fad16b17a6f0d94c7888c64f459faabdff6a05e817169f6a6a2eb21215f06a10943c40597af7c864ec2520154c1e4d297900f063315ff5742b7f402b9ffd5cb349e5ad460cbed199c936637bc34b6030eb868b10a03c202ed10821b4b9bb2d63cab11e75704dc0963850a304460da3c53eabd14029885a604c8ed0be271086f4ad3aa5a2259f0fc3bdacd3840d72d8f88218bef3fa8ac6371504705cd0a21e01e0105025cdacedf4a4e587101a701dcf754693ea2f1d724a97a5905d50fcc0b1ad6f28ca3a5caf0763160cc80546898a3084a27d24d77ae462c48207564ea3d9aa196746ddb33d65989c19686e9e692c6b06b5de08cd405331a2609b5a2ad80f697967214406a4bf9260e8f4159f2d2ab68a1cbe5b0deeea475563dc51cdda90d2898ab4bea5a681f3b6b3f0c7abd6a2d1cd9ec30154a1e7437a838e52ace54a522ebb07e6fa5c24917f43ea235131de8ce61078e1297b251eff4204776cd5a7f4ebb3ae674f07cce9b568a6e169ca404b6ebd04cadd35eff3c6e106e9e8a25d0c4102fc1da892186b264d18b9da0457a36cf233d2503c0ef3bc429036356df186db49ee19e5a689fd322d406c4aa08362a6b10255eaa3e0d8b2d3e8a50a7af3b74aced7eeba731946e35ef6fc91677fbbdcd3649ce4ae29070ec0175af5850c48b5312811458ce6b91ca32d6cfe591513b4e62e362a21d6f8f1538b393466c294760a37a9a43f7e6270d2414898032b6d093aabc43c26cd23498074c6cb993d6b89f5c8565bc0819d8f2fe320f7bd6962887ee70ed2a932dcb691b81e0601cce64e331650353d77ec3412b4c4b90d85e2e73f0f88f18201b06f4247e1f9fe3319b1cce9afcac28813cbef6fa4d6b30eecaa7a834a1d4dfe4f90d098961e09007f86ff6f910a33579d04593f047dc273cf60c8280699ea08722c236769e1f6ff807900906ef5cca862fba8e56511fe210030f16acc74e5f78dd3f3e8a50a7af3b74aced7eeba731946e35ef6fc91677fbbdcd3649ce4ae29070ec0175af5850c48b5312811458ce6b91ca32d6cfe591513b4e62e362a21d6f8f1538b393466c294760a37a9a43f7e6270d2414898032b6d093aabc43c26cd23498074c6cb993d6b89f5c8565bc0819d8f2fe320f7bd6962887ee70ed2a932dcb691b81e0601cce64e331650353d77ec3412b4c4b90d85e2e73f0f88f18201b06f4247e1f9fe3319b1cce9afcac28813cbef6fa4d6b30eecaa7a834a1d4dfe4f90d098961e09007f86ff6f910a33579d04593f047dc273cf60c8280699ea08722c236769e1f6ff807900906ef5cca862fba8e56511fe210030f16acc74e5f78dd3f2a541dc9aede8050ad6648812a33cfccec8163996bbfab69265fbcf2ef361c4e077596ab5d4f14c7435038a9742be3e6b737f77900011bd2975eecabf38cafdd305d9e4e7bb0cfb3b7ab6f2a16664d9d00ffe6e15a8f452fe648d4b20ee2b0793ccafc6418112053d1c539dc198ca765b3a8d0cc38d47492143067a7a046f720082c04067244a0b5097d8b2535880d4cabeea64b093c8e2fbe2f9efa66a6c0b331badafdbd1585cbb98145ff82a67b2f4b94bd1185102716f6439295fc619aea04876f1607ec1f21a67e209f6284fe4c7ccd257f0cb85ebbb023cd3dfa9833341c6ee9a4ea8a1de768f02ab03dcb07adc00e8df3875dda40e7b43f757aa22b9d040e9a8bcd91fc37df3499f205924265fc241caf3d6bbfeefcecac04c976ac69267ceff7a04b06a8d83d580e8df1512faded984c128ca45819e749ca9567c1af25abe23651217faf5299b77ed5cc30333e56dba19fe08bf95918c03550c9e3b4088a6954a2b0eb38bcafc7568bd41c195159aec6025222744eec5f8f4c735024254e43e7d570affb9aee4854bf65e296570be77d4c4b019e25b1d03501e7333c3bbf6cf08a9fcae4eaea8d7a724774b3d9ac69b2d9c461d286cb0d866c2c590625abe23651217faf5299b77ed5cc30333e56dba19fe08bf95918c03550c9e3b4088a6954a2b0eb38bcafc7568bd41c195159aec6025222744eec5f8f4c7350242a3ee9812f3090437e31217f6865778fb5a98e584059fc534b6617f334ebb6000ab3dd7cfd2e7576040fe118cb024201e5fb0fdc73ba943e4683ceb37811baec33620fb263f4112a3adaff0bc34a2080c2dcdad222c0f81619573ca3ac4c8d7831e264877c5e553862612e00351893f16315253663be2277ae09f2777a152fcd000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013ddbcccf08506395890fc291621447b4d251bc851ff40f22b2a7cef285664d113015666894c1d9cfe843453239b3192cb9cf52d8eb6d810b74517d714e9c5d8b26689d94a6b067327f7af982e551ef168529a981d555cff9ffa600b74ebfaeaa071733132b294ce190eaaabfee699fc76f889a04c9126b704f55f1bc2eaf87b80157d5ca16a2e1b6bbf476ac3836c698c47e9fe81b8d779c738d32442654f16819537e5dfa8afb86ee07669e2fed3e22c5e9137d513b332147a5e83e0ef3880a09a3114909bc30cd7911e26d9e5f0eaf7561bebad8fa22b58470a308eabdf98e24bb3bfaf540dadc6421ca1aa021d442563e71aa168bccc057b7a29b851714e53dfa9dc92bd13ae8bf737304bbbb821256941a50aa8a9e68b1de7a11850e4bfd3801ce569ec9abf5f36abf19e0f4d880ac96772612d0f1dfeedb9c699d5a983f193519326d8ede26f34e629137a08a81a15d1eb1d860351b3c0cd3883229bd4e317d8cf65603bf719eac5f848e6321d382ac5ca2d8a14e831be9911890b8d2fc30c9937ab02426c72e179e549a7e14a3bab61f0e4d13f5555a5d1f5a591f52be1dc1887aab7b583e5f7c44094adaec67e1232dd59a1b27eaa6c170c1447de0c212884a47e2ac54c5ff64e1e95715b85dc8965c79ecfe2c95a1700812abd806c70bc37314394ae9e9fc116bb10ca802c0d7ac854e92eae10665961305d26750ed344887cf9a898a48aface7dfd47588d71600175ee33bad4ebe342246edfb10a0067c9a619c51c58d80d36732fd0e02a5e5276f97bbed0ced62620fe31149851016c2f3546e7c8655974558aaa53d4ff57f6796e7343cff8a392b462a62385e630e6a796fcb4a819c7c1d113dbbdabb7151a11cb36e27aa435be10e1a516e16eb12a277897f0580106c49918b6488f01735fdf665a9316857573c1046fe3199c83d7a979dbca2f10c98855a7812a550059a2effd47c26e4bc647e6461b98d17ab0c232bc31eaf49c1f81f6369fbc25ad18c33408ddca44f950fd2e74dc92a71ae353417c0b431fd0932a45b97d42b9f37477bc6503557adaee51e6d17ae25b36a35190bb0f2f42f014b5bd5e1e587b12f11c7cd34c49d155bdd5869830824070833a3c8b6c7601983861a08f5581a00166f35a54e69e61cbe030899031c71b1432b650080d58f6b8dddd97505d798cf9f4ad431ad3071ac250e8893964a4a5a31037ec7971f9f42edaca514da6601b6454d61bcdf7cf2a6a132bdfb1a7bb79b662ac1eb581833d45adeb43a5157a94a2798a6cc03cad11e5fd5c54da420f17b6c0c8b87cb9bb6e57d96a89e935f555419bcc96081091deb96eb86e8c4aeefa2473b030d9cdc4ded4dec65e0a5109ff0c037f06446a1cbda34e53b68ea089831211e42a80e4318d4422d28c9f2060c4b0d28db0fca6cda45fe512062d61cd82d5b14a510ebe0d6f14c4400c78df80ac5b77e512cee17bff1867b7b1496ac353f2e00f3c5967c2ed24699e7408c46ae8830c230d3ef0ec5564fbfaaa08b3776e16429b39455f8067bc3f29db16f7db37a0919b0d62453de8483c1c211be4f8969b1188340141bac339e927add21ad0047dce5ce358d535f6193143672860832b0543899f7dec19c6e0f91dea30809b6e071ee09cd0051d034c1ebac19e75f066a2301807babc44558ef0505cc6dfa195d0a94040fd547e2a3a2eb823baf40b91ef51a6be887813cd79191b350a93870aff261f9878cea556f6014ebfdc515d161a00c207f07e033cdbeaf936755d6e29838ed3873f98299dd719ad0ca8b9ae4c382372c1bda5fcc2e984272d89bf9ca398dc1a0bfd773e6715be55c1fc3703c1d5d08f92374651e045728c12b67da8f32bf2fdbde7d695848397e35944033a1870231537579566b5a8758144763441f109be380e07dfadcf7cb22191f690ec1fbb63bc81846cf6d937eb9a34eb55413e8880407fd07650f9d4d1f964aff44ee7d882fe8fa2067cc42e4cd6bf053c8947503adb634087febcfb54049a3229e5e07e62015ad33039890175e6dd07ed40e7b04f762d7525f1c2896600f89c4258547a232550aac48fd4bdf39391ff9cf4db59d211d7e7c2e2bfb62aba4bd99b03497601574e70b320788ecfc70b38ceff31a9fb57d7bf2edd615eef552286cc602f1a638d3be135f832740898600d1cdf12d7e1877ff32e4b9382dc7777499a24d7c5b19a0986157b9d6801e169b9282d742e74f0a643b2e48ed3e20b75e25c4cfcc7126d7d19ebdd9ac7d92fd15bf76ac0c8e8ee8ed4c0a8ee02a961690b9e00e476a19282e61422653826d02ea408953f371935dabaffebe18f10316a0331ff1b89702371819b5405e73def16cbd515c3ec863b8d78818e3758222e940da6047650f3dc8e7e64abfa18c210e9342aea3c137be8dc173f06983997643f0129fb89af20b1378808a41d8435ab71fb296cd39e9f29c35a87c714b8aae8e4443e164f94b34ec877f75be27bca548e04d6932c6162faa63538cdbad90ea9eeca91e9b06b637615a82b3493950c5939e7cf2022191bd0d0c4a6e3679b568c7555366f8de77089ea57d4cb6c6af3a6c61830dfdde6e65398cb19b167f663065db999907218a26d7d19ebdd9ac7d92fd15bf76ac0c8e8ee8ed4c0a8ee02a961690b9e00e476a19282e61422653826d02ea408953f371935dabaffebe18f10316a0331ff1b89702371819b5405e73def16cbd515c3ec863b8d78818e3758222e940da6047650f3dc8e7e64abfa18c210e9342aea3c137be8dc173f06983997643f0129fb89af20b1378808a41d8435ab71fb296cd39e9f29c35a87c714b8aae8e4443e164f94b34ec877f75be27bca548e04d6932c6162faa63538cdbad90ea9eeca91e9b06b637615a82b3493950c5939e7cf2022191bd0d0c4a6e3679b568c7555366f8de77089ea57d4cb6c6af3a6c61830dfdde6e65398cb19b167f663065db999907218a1b32ecdb06154ad4de0590c2867c0b6df9c5abeae1a5be2bd2c68bbf2f7682962ac0ac6f9b58736d8b9902a0567227960edc30fc3065398d32cc71a56204011918016098aa02665e1acfd881bf89573a1e3d6325e54235c9d8ace9a6067e91ef2dbe6d83ddfab2bb8ed281dd777263c51dec4d6493a42f57b175e1d9c2756169159e4d980063e383331784cf2275dba53739b7217559359441426a28b206079c078c626b9bf67b62c0b171159a29bfeca4385ad26c276ddfa700ed9f4d9dee2426a7cd2000abc589e390c0cb19ee3a22fd89b5084f98d42935341200b2cecd5319e05ebc9d038638cbfba629c3ce466d5fccc92c3003e910204e0d4f2ac00e7e35b065466712eb434122f65cb85415faaf9ae65c740e7b37ce803635ceaea75105965d8f35b8e6ce817ee5c9fd8adc681406ad0d03afc563c7379517df851a7129ceb31b3341939af0183f3264b1ac7fa2a0c1c5646e1b94bfe50bb9668e8df21077327699cf689135753dd0d520e7b35f9234aac2a1e40f36e5435292a06cdf0ccbb28c4fe84ecd072a96bbb9fa9d580a4389eb42650525edb9bb87ca0aeb7d2780e60c86acd9d6e5947b82321b74a517c4b3974e9089524e180e5adb869d8129ceb31b3341939af0183f3264b1ac7fa2a0c1c5646e1b94bfe50bb9668e8df21077327699cf689135753dd0d520e7b35f9234aac2a1e40f36e5435292a06cdf2d68dffd31258773093f2dbef488710d0ca218f4aa0097d347b8b1ae4d3e01ac35aa01f462866b29b5c8acc3c368bf24e3d2ebe12ed21e3d08f8321abf9a9b7715137347744b592ea298b9487c93edfe9f69e25a2e95cc61ed2ecd06dd946be1306b87b4bc9e7204fd22a1ed1fda6bf2a3eb863e8a4f10a47262919f5e434113000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013aa87bb7efd2cec2ee368aa77e5af6ee5fd840c158cc0900232cb3bdf30c0ad33072182bd7475f8d95d1f5aa4bc0bce23034d3d7b09b0e6474c398466fd24c88300582eb6bea079cce73a116c01595bbc8282f55a4013f175ab8796d152dbe700e28f427548bda5ffe8006d7309d75eb62e8402c7f9be968e70e4b8abe979e57397de244c23b75e2d077417b5c8452f1e202ea6ef9f42362ecd1006c55cbfc640126528fb2772a6dbf1e914d435581050931442fdc5d95cd421b9306d24a63d8150152e938f9f8f6163b9f53a4f07433db746eb337eed324a9498c79c6e00cce005f2b516be55106b645ab176a8677e36c810da7942ecd1ccf07034dd8711f261399fbdf11de5371a87f6e98851a4caa66f470eee0a886880e95b591dc440f920c1dbec70ceb8bbf34f1b08c95c98f7675839c53d083436ef26dcc89ef7c16fc26e034c3bceb70cb73da5ea32acf4481012ac6bb2141e9b2061232da62fd40820ca228c4f48572ee3f6c0d59da84c1ac5b0554c8dd63c7a9d38e1800c1aca71207633673687ea3087cbc2c7740e9990da90adc06ae49acb22e4cb84384c3cd211d97993bd4b8b4b07420b98b48cb313927c4a52b9daa379e4b31187568fff6f10c7db2e5be773112258081a649b63ef8f9ada71197a6922cab4ae47c79fa87a506eafc856be25d7de1ea3c3db7d7f344cbac7585f77cd79f5c001d503a6ce611260f564cff19ba63a79502641dd9da68ab39109e16fb29712de28001d46d1084072d1cfb0d7f174a011e789e80eb754833a02c199f77254d8f5e9993e3132af110486a43d786edb7ce99a55aec0a694721d58486bddbdd21f105264e2e7965952b3ee2b75bbced44f8888e04272e2b50fea0d501cd6c6934ca8b3441bf759e2a0042f66e00c82cd472befd9c8ab3050883c4d529eac8e7ef1e366fd2eb50516a3d1c4549f3e750fe9076edb07fb4a08b92587fc9bf831cc9844c5e34f015d5590124a7738720057ef8904a0ccda722d3110d385383a18e5d42cefc0e3ce5a6870ebd42155f5dee8037b9b66d20477001d179771f18c833ea770d41efe9323a300e149462bd9254412b5fcef0351be6f521b5e008bad1430da7adea03ede9f4900838bd5742cdd661470b4dd29ec452d1bbdca97151a848bfd815337659a2ccf90132d598405efcabfcd6ef8fcb3ff974a0840ba25b972bc0a3bbbd654b8c4b8d0be8faa50dea52e79e57c7cc8a4efb5c6365cf81902f7c2752088ec43f66b7ce153c1e68d95c15e061a1369a00efaafbe941302d52834a3722cf8d0d92feac1c16fc377fcad1c80be3e39e6568d60eb08f7c36e1b74600d36aca224144adf7d52daa2842ba169b38a4c9f4268d0d5e3c028c0143f0fe4ca21d3ab504446211e724929a123f20303596e1cfea666a2456667b368573bf0ee2fa92e0fd0df60a88056c2070c023e346016b85fd6576d233007ce7ff8c879085fd001ee8e34e18582dc83d8c5279c2300d0a90f4d68315fb87ad2eaaa2b0c49c43dee148f98180162934478e29a541dbd53443f9650b3d5d618ef43366c782c4853cb7df499dfdab02f199aa4fe327e83abc5fa95826797a728dcb0a9c6a9e661c770c2f689c5b2a348ea2c1165f684ffdb95a0e29e902e0e94c1f7dda4f270ecddeb5d148aade4316116a180def8f23a5e07f56a8b2e0b217cfa46f6cace27cae01a6e68960dad211e3a0b9c70141e39cca94dea2a2c483341074b1a00855c7500371e6ac2860ec01f430ad2ce807243166a487a32af78bf0e3d1469e68d7c4633dedc9790bc9033cf5f4997a6d2284273957ad542c363199f4ebdec47da7b702c037bc7a7479033ffb8347698d702b7787a23e51bff1d419428ebdf28617ae5c334ad3fbe072222a524c6bcd7d519352a7115ba6c0c5bbe1605fd72159dd197b162c4cfdcecebf1e2616fa15824fd2f0996cf6c03da73108cdc6b6e939c357ba9b9e8d450c377b0eb33893f01617a38c2beb63733d36cb6539ec05c1e419f7be275b5e2787c7c907c554d81d7898ef8d9bc7250455fa5f4828749d415ad9a2b961ca95b8d4cd8d18f0f3e88c69b3325dfb966282b718d51c11249c4e763d6f2cd65c3ecfe4db7d38226eead6601297dfe643efa08072d1ef354346f05c96f394f7b43d6ddd2f2d2c8c82abf52e525d0554d967ebcec6d0fda3aec96075edd17d64a5b116ffe81d1dfdc9ca63f37fec920459f7c1b3dfe79eacf3da2568f667ac9d21b388dc2a9200000000000000a038f8666a8f5b18861e830ba16a45d01337a4c2d22eea229ab21d4c8017a791f21e1f3a1bb1cf998548706b0e7c8abdf92e2b9337575f15b7436fae1917879a94283d5b45709dcc156d9498d5d54ca799b8de019e9b1ed5e1ee4726e3eca945df09742fb876632389f27014702f60bba00ced4ddab84d10de05b382edacbf87b006c26c8e38d6ef6ea085b0db1fb82997c120dda95d4dd964aa47663e46fd6eaa0b15677cb85368f5b2d2b6b28bd48ceb670af5c749b8788fb9f15ceb51aad6e53070df3e3b9994eba4efbd7f3260b29cb3dec813da3b4abddfbe95dc5d5095ab0140abbfab675ab3bb14efc6d24cb09d11ec876579309c02143c13f53c1837e404d5dc338122079c36d8b5b63951bd9bb25dcbc7432b2f5944fc96d67688224d1b5ce6b8a4c48302b02e277db3c38c2977cf4ac57f6982990470708cd6feee06129479efdace14f6bc897d82e5c8159dae9236a306ebb6afd94fe4c3f37f35761f1d110e0c32daa8a37b2fc31ee54d9c173918d64c8030101aaac50da5e998190b15677cb85368f5b2d2b6b28bd48ceb670af5c749b8788fb9f15ceb51aad6e506c26c8e38d6ef6ea085b0db1fb82997c120dda95d4dd964aa47663e46fd6eaa3070df3e3b9994eba4efbd7f3260b29cb3dec813da3b4abddfbe95dc5d5095ab0140abbfab675ab3bb14efc6d24cb09d11ec876579309c02143c13f53c1837e4342a4f5170a1d2bd34f61d2dbb915c98bdd56098fd8cc0b56b1f6e102573dfbd26a4d0c676d265d7cd41a4ac745ab4c52709c2905440f08e70dee6e229ac9f501f1d110e0c32daa8a37b2fc31ee54d9c173918d64c8030101aaac50da5e99819129479efdace14f6bc897d82e5c8159dae9236a306ebb6afd94fe4c3f37f357638bb12dc98da5f465f87d2d723f74f04f7f8d6e7b42df41aadb8f91e7031ded82b2f2fa13355b1e222c3558712397e11d389a5c0e3382fe51b52998afd46840309742fb876632389f27014702f60bba00ced4ddab84d10de05b382edacbf87b0283d5b45709dcc156d9498d5d54ca799b8de019e9b1ed5e1ee4726e3eca945df366f5f3038e780a900a7a3408452b712b8d7d4e357dce5600e1bca586675aa262e7a4b3aa8edc29e90c1451cc729ad5437dc9ee8f5a6acaccb64d63d70d2f4772204247b7c5c90714bec524268455a6e2b9e9f218e8894b6ad667a0598560f930fad66826aa45f2e14185b039c6808cb9a2cb057c4e3520946942fcc0112bdfc22c1a0e0946ec2220d61e75e75c8a092a55e02e015304f47d3aa6a0be017f12906686e1887c1a8ad88845021fbac040d1f3bca694edec8de545afe3323e758a70140abbfab675ab3bb14efc6d24cb09d11ec876579309c02143c13f53c1837e43070df3e3b9994eba4efbd7f3260b29cb3dec813da3b4abddfbe95dc5d5095ab07ae6eabfc1bccd5d0ce3590d7258f2d97a1d238789b2ff4fba024ca13c79fe1174c08103a0f37e76ed94e274e6f35343e4f3b50a1a623c915899a9b2433009c01b40cfe6a93d9e2dfc628c084229a01636402983ed0297daaca2db2b2928e652ffd7dff7c6d15bc803e8485808ac93862674ce1149bbd4249307c1ee6d63f2a342a4f5170a1d2bd34f61d2dbb915c98bdd56098fd8cc0b56b1f6e102573dfbd26a4d0c676d265d7cd41a4ac745ab4c52709c2905440f08e70dee6e229ac9f501f1d110e0c32daa8a37b2fc31ee54d9c173918d64c8030101aaac50da5e99819129479efdace14f6bc897d82e5c8159dae9236a306ebb6afd94fe4c3f37f357623fce06adc8b6697e912465803900f1da76b84604742c92d13149b345196df5e07a223b4cfb6298c2898096325d5ebbfe1b6e9e1273fd33df76446eee75594e32747acdcfc50dd7c439431422de1fee85f4dddcdfdf52c1c97476ce3154bb7860a69de20eab012231c707c03d6cb6451667d71ab5576baa35cb33cee841d16090da9c53a4a37c5e04da0af19dc59a37022054efa8988d0a222e67f821e37232b090ed0b8ec5feda80acd69da4e12b003802e4cee29e0af2a10e78b7fb7df91723b5e0d809e87b82739fe15aa61597c0d21e70aaea6a3056e0915d3f3d890a15b36537d7d487937782606979ba353e72cc62addc6b615da6d841206cac0d82c353db88b8a4db56b3f9ca7433822b44b5fbc7a87ecf0e47509ea51a115da03cbf62690c186890da46bf42942e1cfe0bc4fb05e15e070146e60074bb03dec8d0ecd36537d7d487937782606979ba353e72cc62addc6b615da6d841206cac0d82c353b5e0d809e87b82739fe15aa61597c0d21e70aaea6a3056e0915d3f3d890a15b02c3a7580f95225a28f18b73f4ed73aae230c6e111fbd1e06ae2ca7b3490a4d31726a284ea11d0c37e19a7af28dc470d658db27f2fad6417c3144c80d84da66e2523bb945d6e3cb116982400ec74aa7c89bd30b6bac6dbdb8922b8f20ac615d10c8dcf698992b2ee496c89451838b8bd3c0e1ec298a50ae46ad7f0df8ea2b7be3bc61b8134156372da7f445076844ba42478baf83a509268a1a17dda5c995ab30b4c114cf5036572c0b4df726cc43d5f7f45913bb62f266cb02d6b4beb96f3a32ed2cec540b00d8d74642c499111136f88108eaf8bc921d4222f09976aced44902debc38a650e211eba080fc739c4fca3dbac0c9c7a2c4ebd1cba03a2e99f946174c08103a0f37e76ed94e274e6f35343e4f3b50a1a623c915899a9b2433009c07ae6eabfc1bccd5d0ce3590d7258f2d97a1d238789b2ff4fba024ca13c79fe101b40cfe6a93d9e2dfc628c084229a01636402983ed0297daaca2db2b2928e652ffd7dff7c6d15bc803e8485808ac93862674ce1149bbd4249307c1ee6d63f2a3ac908508bf618bbdf9d30048ccf949052214f6ccf98552ffd88b44b36442eef1b4f30489f8f6730783886ac44b5622bee7d0f7900937514e78f38618f1ac1d50fad66826aa45f2e14185b039c6808cb9a2cb057c4e3520946942fcc0112bdfc2204247b7c5c90714bec524268455a6e2b9e9f218e8894b6ad667a0598560f932c900060087f7b611f417324436207fbb53db0bc8de00faa334c31b1db0895d732cfc86818aa0309dd37a51ee589b680e87a097684286e8196ae3900cfa4afe80965fb89aadbe00db2be161a1ff3fb68ecdbd15e5cabeef41480023b66963685284b8f743c250f91ad46972be4b967d0d8ef7e1af6bff7cbdf7aa79632d2970a1c80280fd91981a5c1546c19c1f0f985789effd6ee3af4754e69c733b28d948b176f8e260b2878a88cb60f3177c7d899f2aeedab35a7b5eb8532abfba1e9ac7f02debc38a650e211eba080fc739c4fca3dbac0c9c7a2c4ebd1cba03a2e99f9462ed2cec540b00d8d74642c499111136f88108eaf8bc921d4222f09976aced4491210685a4d9e484463f7b302f6e72230d0c3eb0c2617a4051f685cc1c44c0a931c4358ffc251975021d01bfbed9470cbcb92cfb3b7ba76124f3f8d9bba9d7f860a48ed80ecd10f4d1bfcc8f68bd879cb98446f95d3854d1c3a6051ae4a8d955527689d7cfa2fe0524407e44f78d4e96e2d86dfe37fe699a3b99a58234edb383a07ae6eabfc1bccd5d0ce3590d7258f2d97a1d238789b2ff4fba024ca13c79fe1174c08103a0f37e76ed94e274e6f35343e4f3b50a1a623c915899a9b2433009c01b40cfe6a93d9e2dfc628c084229a01636402983ed0297daaca2db2b2928e652ffd7dff7c6d15bc803e8485808ac93862674ce1149bbd4249307c1ee6d63f2a1b5ce6b8a4c48302b02e277db3c38c2977cf4ac57f6982990470708cd6feee0604d5dc338122079c36d8b5b63951bd9bb25dcbc7432b2f5944fc96d67688224d129479efdace14f6bc897d82e5c8159dae9236a306ebb6afd94fe4c3f37f35761f1d110e0c32daa8a37b2fc31ee54d9c173918d64c8030101aaac50da5e998190da9c53a4a37c5e04da0af19dc59a37022054efa8988d0a222e67f821e37232b090ed0b8ec5feda80acd69da4e12b003802e4cee29e0af2a10e78b7fb7df91723b5e0d809e87b82739fe15aa61597c0d21e70aaea6a3056e0915d3f3d890a15b36537d7d487937782606979ba353e72cc62addc6b615da6d841206cac0d82c35169433ba78af8d72c0bb9c0098cdd71c5fd43e5be2fbf100271a2e9e8258c6ab050de6817381b7562c09eaca5b47c58a118041271f5df40a3456c3046fa182f6284b8f743c250f91ad46972be4b967d0d8ef7e1af6bff7cbdf7aa79632d2970a0965fb89aadbe00db2be161a1ff3fb68ecdbd15e5cabeef41480023b669636853cd7a6e6579e2aab3818ff0944a64f3c4ac05772b4e41d2b8d0e97c9412ae4d1243ff240bc15a56b0a1a6ce1ba91512e7c8d68e31dd510126a65ad904e9e5f4e0c8dcf698992b2ee496c89451838b8bd3c0e1ec298a50ae46ad7f0df8ea2b7be2523bb945d6e3cb116982400ec74aa7c89bd30b6bac6dbdb8922b8f20ac615d106c26c8e38d6ef6ea085b0db1fb82997c120dda95d4dd964aa47663e46fd6eaa0b15677cb85368f5b2d2b6b28bd48ceb670af5c749b8788fb9f15ceb51aad6e53070df3e3b9994eba4efbd7f3260b29cb3dec813da3b4abddfbe95dc5d5095ab0140abbfab675ab3bb14efc6d24cb09d11ec876579309c02143c13f53c1837e41c4358ffc251975021d01bfbed9470cbcb92cfb3b7ba76124f3f8d9bba9d7f861210685a4d9e484463f7b302f6e72230d0c3eb0c2617a4051f685cc1c44c0a930a48ed80ecd10f4d1bfcc8f68bd879cb98446f95d3854d1c3a6051ae4a8d955527689d7cfa2fe0524407e44f78d4e96e2d86dfe37fe699a3b99a58234edb383a1726a284ea11d0c37e19a7af28dc470d658db27f2fad6417c3144c80d84da66e02c3a7580f95225a28f18b73f4ed73aae230c6e111fbd1e06ae2ca7b3490a4d32523bb945d6e3cb116982400ec74aa7c89bd30b6bac6dbdb8922b8f20ac615d10c8dcf698992b2ee496c89451838b8bd3c0e1ec298a50ae46ad7f0df8ea2b7be151c213beab4d6d39a9b907b4bcd79ba78a9b3d928382351318111615de33102254a6337df8c21c690bcb8ab0db82e726bcdc47fe0ec8b7f3553ad4eb15835e70afafb0997cec08b76d319cb1c1aff7a42b3790f085032b55064d72feadd2aa026b68ff44f322f13e931937ae89263bf8317d66a4b1bb40aa395d2a1ae8ba2ef040e96d144f3866cb4a9f5145524679a8641287d8eaf1514adcbe1f2c569b06e1be2d0845ebaf259c70f9192932e571565cbd442c0f3f9dec51bceae4e9fef2c01bc02cfe161279829dc68eb993116cd1df4c9770beae923c2bc5d9edb78a6a72ff5882e059fc8073628445a6b7c4c6ca7d686024780fd9c313e4c32bdf026e8151570bcfdab9eeac4ee1c93fb5bb3e82f1ba6d11dcc889d2c9a38265208986d06f1fb8ad9841f8be4a8fec1fc10e2d8e7b8ec5fd3078dbf4e7a33dd12a456752ffd7dff7c6d15bc803e8485808ac93862674ce1149bbd4249307c1ee6d63f2a01b40cfe6a93d9e2dfc628c084229a01636402983ed0297daaca2db2b2928e6506c26c8e38d6ef6ea085b0db1fb82997c120dda95d4dd964aa47663e46fd6eaa0b15677cb85368f5b2d2b6b28bd48ceb670af5c749b8788fb9f15ceb51aad6e53070df3e3b9994eba4efbd7f3260b29cb3dec813da3b4abddfbe95dc5d5095ab0140abbfab675ab3bb14efc6d24cb09d11ec876579309c02143c13f53c1837e4151c213beab4d6d39a9b907b4bcd79ba78a9b3d928382351318111615de33102254a6337df8c21c690bcb8ab0db82e726bcdc47fe0ec8b7f3553ad4eb15835e70afafb0997cec08b76d319cb1c1aff7a42b3790f085032b55064d72feadd2aa026b68ff44f322f13e931937ae89263bf8317d66a4b1bb40aa395d2a1ae8ba2ef2adc2cdde1252182ebb8affd2d63380a64f530629b93689615f3d83934ec7acb2c1c5fcdffdef02a6da847933ebdb2a28dcff4d5a831821920c2c3185277121c06e86e525f8a8d130b2d8c6c943cd0da66c0df3fbc378cf74b211d9f6323228a2ac91cab8776628c54d720d97070925f5f0a7039973459c8a8d98c323645ab051be2d0845ebaf259c70f9192932e571565cbd442c0f3f9dec51bceae4e9fef2c040e96d144f3866cb4a9f5145524679a8641287d8eaf1514adcbe1f2c569b06e01bc02cfe161279829dc68eb993116cd1df4c9770beae923c2bc5d9edb78a6a72ff5882e059fc8073628445a6b7c4c6ca7d686024780fd9c313e4c32bdf026e802c3a7580f95225a28f18b73f4ed73aae230c6e111fbd1e06ae2ca7b3490a4d31726a284ea11d0c37e19a7af28dc470d658db27f2fad6417c3144c80d84da66e2523bb945d6e3cb116982400ec74aa7c89bd30b6bac6dbdb8922b8f20ac615d10c8dcf698992b2ee496c89451838b8bd3c0e1ec298a50ae46ad7f0df8ea2b7be3bc61b8134156372da7f445076844ba42478baf83a509268a1a17dda5c995ab30b4c114cf5036572c0b4df726cc43d5f7f45913bb62f266cb02d6b4beb96f3a32ed2cec540b00d8d74642c499111136f88108eaf8bc921d4222f09976aced44902debc38a650e211eba080fc739c4fca3dbac0c9c7a2c4ebd1cba03a2e99f94605e2466a10dcd4849ebdb65184b54a79e0971c0e562f82d579c3f703b4df2af00980987a503c5e8b38d699016ee615cb830c166a46634ada08015241aedbf02e0a69de20eab012231c707c03d6cb6451667d71ab5576baa35cb33cee841d16092747acdcfc50dd7c439431422de1fee85f4dddcdfdf52c1c97476ce3154bb7863ac908508bf618bbdf9d30048ccf949052214f6ccf98552ffd88b44b36442eef1b4f30489f8f6730783886ac44b5622bee7d0f7900937514e78f38618f1ac1d50fad66826aa45f2e14185b039c6808cb9a2cb057c4e3520946942fcc0112bdfc2204247b7c5c90714bec524268455a6e2b9e9f218e8894b6ad667a0598560f931726a284ea11d0c37e19a7af28dc470d658db27f2fad6417c3144c80d84da66e02c3a7580f95225a28f18b73f4ed73aae230c6e111fbd1e06ae2ca7b3490a4d32523bb945d6e3cb116982400ec74aa7c89bd30b6bac6dbdb8922b8f20ac615d10c8dcf698992b2ee496c89451838b8bd3c0e1ec298a50ae46ad7f0df8ea2b7be00000000000000c8000000000000000d0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020b2bd9166fb292fd068715be077faabd5100a082db2ee30b660a7a840a453295e00000000000000010000000000000001000000000000002057d79dbf8ed8b8aa3585c69adf87ef75ce64bdf75ac79a37fcbc979ba37b0a3e000000000000000100000000000000000000000000000020e4531c0cf3964a849077d3f66aca1c780770dbd36f02f9e591cac1251871b88a0000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000000d0000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000000000000000000020320aa9dd5bd9dfcc7442a714a676da72c0bdf0d7b2a15463d62eb475026e96e7000000000000000100000000000000010000000000000020920dd15da9fce8803a46e117f3bde4385758fa2c44ba27dbc3937f8baf01861c000000000000000100000000000000000000000000000020eca4f5bb23e627e638206c61a58db0cd43d08147488056042781720921e9368d0000000000000001000000000000000000000000000000207f33eb1404cd0d875f2a95096d3541a8c1bb93415e8452ab893bd3cc530fea91000000000000000100000000000000010000000000000020f674d9bdc01a18975efa6d78c277539fb49e84aa12b432ce63398cf89654de330000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e000000000000000d0000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a8800000000000000060000000000000001000000000000000000000000000000202a05081821acd73991ddf30aa338e9e68d07d308036f5dee685421d0d664b8d4000000000000000100000000000000010000000000000020051696269ac35a890ff7e9e4bbb7d8699dd1f163f8b92e31bd7f9bb9a3d3711d0000000000000001000000000000000000000000000000208f58a05abc7469791260ad32f6254652370e83827c5f4899db30373c5fb349d7000000000000000100000000000000000000000000000020556b729f832f5d5ffb8c80a2e7f2028be68aa00b113f1182ccd5b7dd03cf096b000000000000000100000000000000010000000000000020e40cceacfe78cff9600b2e46e186ce0d04d352b2cebea854211cefeeb27f1594000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f000000000000000d0000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000000000000000000200716e1cd19237a14d001c5fce43116dfeb224c29086cdd85310949c3149acc09000000000000000100000000000000010000000000000020ad6eb4d9af43f66533a5dd28066af159e6b7b570e5aa940df86b2188b353fe2d000000000000000100000000000000000000000000000020d0607adac9be75983ca414c106315aeb1e834536c7c95a91f7097ab7a15cc628000000000000000100000000000000000000000000000020e7b0a01e52a73870d50a26535d8010fbace9e15d9f75bc0eba0ae2c00cbc16bb000000000000000100000000000000010000000000000020a1510c0b06e39f12e300709d413f8d80016cf37775e3d9332cf787ff7cb437e5000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000000d00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce00000000000000060000000000000001000000000000000000000000000000203d06d0c34c78f1ebbfd1c215c8a936a84907cfe58e6dfe5a5397d697c2f559f90000000000000001000000000000000100000000000000208750516438595b9df11acf617be3bd72dd21c1520fb6bcd4661e9e216369528100000000000000010000000000000000000000000000002047c75ff74c1b8e081c36a6caeccb645ba7fa9feeee2d24f32be3641c6d42ac55000000000000000100000000000000000000000000000020142099038968e9066c8b40ca01903ceeb912fb3a306618ef9c7c457deb8c2893000000000000000100000000000000010000000000000020869859afc4e5681a25a5915521c2a426157dff8e26309759aca12cb8232c3452000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f000000000000001a0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020867f4e7838d3464819f68d32891adc5d0d944835deee9dfab0413a6187f910fc0000000000000001000000000000000000000000000000208cdaf05b84ace4e1b630d731222e016e66fbb851f5088ed3b8479b35f2e863df000000000000000100000000000000010000000000000020087a599f409cb7bacc0662f1cbc4762c6f1a1276b1ec901eff46c07ae65a8c6900000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001a0000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000010000000000000020e5ecb7820c1559658e07aa1dfdaecc4ff7c4d98cc1f131c33d23209c08d147830000000000000001000000000000000000000000000000208140f72e890683cb0c86fb877ded36f4581aa354be3f8c83c99cdf487616e223000000000000000100000000000000010000000000000020d5f571e96d09d56c95ef3b63617cb7cee704c9452fc2678d7d203894421831080000000000000001000000000000000000000000000000201a65e1cc35663dd11d7c5292a59632955075838a0e28f828ed0f1b9b6ab71d9a0000000000000001000000000000000000000000000000201a981d9e84479953754937a102c43e70395029db74bfc2fab12b49c5843d9e430000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e000000000000001a0000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a8800000000000000060000000000000001000000000000000100000000000000209e06882b623b6943341a694086619a2fd57ffb9268685d9270f1c231cf6509ab0000000000000001000000000000000000000000000000205d0f50bf7175a98da247397af17cc975263baf8610471446956ab2cc098fb962000000000000000100000000000000010000000000000020fc3ecba6f88a03bd0fd0081ef31474e57c5e048a180b0f85a74f120f987b913e000000000000000100000000000000000000000000000020985c653902cfbc26788a0a66a2ca25303ad6ea2c2dce45d07ccb47361456c58a000000000000000100000000000000000000000000000020d93b16ca33c69462349cdf25972305037f4521a14049e5a3a75b32e9bee8ab86000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f000000000000001a0000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e0000000000000006000000000000000100000000000000010000000000000020688d94c978c01533c571c99c0eadc6d6449ac9d21c6f1d6226a57898600d1f7e00000000000000010000000000000000000000000000002053850efa1e113a85767b04b049dcd9b2edfb79f7593c8cf90eb4201d4d120f1e0000000000000001000000000000000100000000000000204cc2265dd408d41a199f389594a4d4a755b0b092e6d7724a02ea1a784d18ed7b000000000000000100000000000000000000000000000020b9f8380e2fe3e057f633ea7d58642469bf1143bc7afd2f6ab6cdfafe1a969e7e0000000000000001000000000000000000000000000000209eb7ba4269788b7b97d4252aa2205ef7ba6c9ab3e416ab745d4640aff201076a000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000001a00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce00000000000000060000000000000001000000000000000100000000000000204e77550bd03ecae860c98e4d792432503504a4d7885bb20ee7add50e5a41486a0000000000000001000000000000000000000000000000205661635468d204fececbb4edd8c70496c972c64f65793287d79c677f971f92d90000000000000001000000000000000100000000000000204d013d6b7368c0727be310b46a9ccff9f35de639469cd026aca3e818f732ab2b0000000000000001000000000000000000000000000000209ffe2f8254f8dfda50ac81447c6e6970a53d6f72fc2e89d44cf63d609b971c480000000000000001000000000000000000000000000000204e59b970588c516635072f9eb5ffd6017c806bd61413f1d8d7108febcebe4793000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f000000000000002c0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000100000000000000203143eaf6c1aa46c7aacd87875465de486e36c316b7a0b8bddd6c1517dc726d4d000000000000000100000000000000010000000000000020f10b3d1735c0e4a98365cd6a45c7b241ee1170e0a7ba2fc4a24bab4dfa03f86b000000000000000100000000000000000000000000000020a99ec68e5e702c95d72c271dfc6b7fba83a95d182bfe10c3b55beafee6b02033000000000000000100000000000000000000000000000020bc7cafa2d5bbcd43a2687bac1aaae39ea07c2b052355ee18f7bed28530381a1900000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba3610000000000000002c0000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a300000000000000060000000000000001000000000000000100000000000000202f44186eb43b2e65da381b64ca325acf28ed9d38a91cf07c9ceb1a4881b6cd9600000000000000010000000000000001000000000000002041d8eb40c4a638642c89f93be4a4e1f213cc286de2db3b5f109133cc1ae3b662000000000000000100000000000000000000000000000020900041d0e0b2821e3bd5268406a8a42b3b15133dfa984bd944d9286bd70dce62000000000000000100000000000000000000000000000020a51ce5ba7b44478bcdec8a411d8349eeb36854bb15c20351152e1e50b360d7bd0000000000000001000000000000000100000000000000206075e3c137d83b1533f8eb7c9350d8bc540f7c17d14f427c4b1f1569724c9c9f000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf3554000000000000002c0000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000010000000000000020f64a9a649c435fd1e0ca97145ca4cd78df5b79ec9cd706679764e8333da64216000000000000000100000000000000010000000000000020827dbebba78c620c9ccc00928e09ce842cf637fdb1af88bc13216878a92ca6a60000000000000001000000000000000000000000000000200212ec683135f2c5536847cb1e270bfed25c358367fb0c0cffbc497f821351500000000000000001000000000000000000000000000000206d8458687217e86e52d9138ff093ca35b4e8533ca8cdd768b3ea57415f64e8a90000000000000001000000000000000100000000000000209898665151c8643d367f337a0c2eeb715a6080b039ae6b00481ab48b488fc8c90000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb000000000000002c0000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000100000000000000209b6d4fc0268fa4a4825822f7279ea30f254e3e5d5f2dd6023b8e4a128e8d0a400000000000000001000000000000000100000000000000203440167be41595a840c522d3aaf386ce0d3c07450271cb0a56062156579d79e30000000000000001000000000000000000000000000000209a02cbb403c1ae6e399a5a51c1e88a18bfd9de611f7c24f1756fa77981a5413e0000000000000001000000000000000000000000000000209d208af5249585c0326402a6c6970251fae890b4c592ee88f15cc20a235ef8fb000000000000000100000000000000010000000000000020ab56a12205d0c8e0e402ade0769ddecf9b594f3d7db8254cb25540877c795f65000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000002c00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce000000000000000600000000000000010000000000000001000000000000002012d5b57b8be907db8b5919a8a2f2481a0443536ab29fb334c49d54a2a83f61140000000000000001000000000000000100000000000000207a4da6635f64fb0a723df32288cb96eac074acdaa9d1ab4a0f47d69a789250c1000000000000000100000000000000000000000000000020d69d791eef291d18b1d5bc0d2ddecdb8f7192ef5119037c23a2c2757c30fdf90000000000000000100000000000000000000000000000020626301e6b2a07f50dbdb59c4961faaebda7a023d1a4b426b95b4bc4be4bd17750000000000000001000000000000000100000000000000206ee562063ccf55f6adc30345f7d34f6c30fba9f1634f24a99a4c5c6e7e6de3b5000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a000000000000003a0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020a703b232dee813c8a4137b1352104a2a2f5c76b3c228071d496a01947240f1e0000000000000000100000000000000000000000000000020d6ba9716b244280517fc338189ee3d18ef53ca399f72746f13fab57a2218a56500000000000000010000000000000001000000000000002013cba62cb82888bb083b50937d466b49f9391c00299bd77abb46de4352465093000000000000000100000000000000000000000000000020a3c68cdf76781d19db7aa603f4cd91ea38edfc0b5126585e0c4cc27eb1121e50000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba3610000000000000003a0000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000010000000000000020fc0ca5e757400056d0d6aab3b8b484c17293530a53d06fd30f84d6b5afe3f656000000000000000100000000000000000000000000000020b7f346d3c6e9ee9c10bf69f4a5012938bba47cf08d9407ad04f62eb982def018000000000000000100000000000000010000000000000020294a02d54abb3df02e3246385cc62ff7ce7229b010690ce8690c31f967c45b48000000000000000100000000000000000000000000000020c8d8760ce542c5a702bcabcb4fef6e52d4233083d54c3cc37568102e3f21b0ec0000000000000001000000000000000000000000000000204784f6834025b9259cfebec8cffeb00373b1af30dde25a8e3b68097f0573e1f4000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf3554000000000000003a0000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000010000000000000020952034ff6d2df75248d090e90e618eece2d6405552d1e11c14aa8462b32a54cb000000000000000100000000000000000000000000000020d8782e4efe62d509ff62ebc3452cb7c1da046dfba54e6bcbebc8e43f64a294b8000000000000000100000000000000010000000000000020a699562990c3412fc55d466a3e6d9bcf5a7122ba4c59059e9715120d545c05d400000000000000010000000000000000000000000000002021d1315b8b30976711b2a1eb7d34dc8b98eb6fcd1048d35af300a0e1afc757f600000000000000010000000000000000000000000000002081164d64a302850b69a6f61885a59bcff6f1ab23c424b6d2a9d63914f94a1e420000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb000000000000003a0000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000100000000000000202973eeea5f6ad9dd36f039ff5259ed484e4649dc8a00ddfe5280fc67d4c8c26d0000000000000001000000000000000000000000000000204274e3afc8d623149b5c62c06d228d2a7d27988adb2fd2d2238b2fb7457a71cd000000000000000100000000000000010000000000000020ff7f832f632893365f82d73c7d532c6bd3b7716ef7d7e7934d9ed9ee15104724000000000000000100000000000000000000000000000020362c41d2cff677621fedd9b9572a01b4275f6960c9701d92b3b8f403c3843124000000000000000100000000000000000000000000000020cff6591dfe8cb9d421049bf180fabeb267dc54e2b75083b1c94c48eeb9a2fbe9000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000003a00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000010000000000000020da59dcadb399644cb94524ce0a309a798bad46458bdc8003377a3449601998a90000000000000001000000000000000000000000000000205d34478ec6e110ef108a99b633c23e028d58ee30e849b459c4806c49166e70fd0000000000000001000000000000000100000000000000205bbf6df18c13b21ec0b39c6471ce58786a1bbd3b55eb1c1bcf04b80eb8446ddb000000000000000100000000000000000000000000000020f7c60fc0242ab4dfbc4e7ed03bd9eaacbe7d3b976a9239dc44a6f083d47d210d0000000000000001000000000000000000000000000000208af78be0e621a70f818b523c1d4675b967f8ca602f0292dfbd3b6cb3b77c3830000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a000000000000001c0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000001000000000000002037b6c67d542cc82de1bdb70e49b269e367dd16e912af30b78c822650621202e20000000000000001000000000000000100000000000000202ec5ed8b835c098bcf1fbaa0f4aab5053575fbe2dd675f6a8528d2ae539d073300000000000000010000000000000000000000000000002070f93532da12d95bd9b02b2acb02b74a3a532fbd8d1ec178ca7acf3e54865fb800000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001c0000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a3000000000000000600000000000000010000000000000001000000000000002024849e8d957482bb921ab1fbe8134241a44f7e9de2c516b7a4e85f90e85c3511000000000000000100000000000000010000000000000020590d9c432f285808f63451f8d6c0a1260cf0a604784325d45bb0ea5e63f474c20000000000000001000000000000000000000000000000205b277784934640de1faad045f97aa33ead0988f94dacc9c53e4166dbb115452f0000000000000001000000000000000000000000000000201a65e1cc35663dd11d7c5292a59632955075838a0e28f828ed0f1b9b6ab71d9a0000000000000001000000000000000000000000000000201a981d9e84479953754937a102c43e70395029db74bfc2fab12b49c5843d9e430000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e000000000000001c0000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a8800000000000000060000000000000001000000000000000100000000000000207fdebb0e9dba24fa37602559407b99dd55ea4ffb80c5689dfdd314663cd464c90000000000000001000000000000000100000000000000206a335c82a94227739b09dfafb636354f448b023d2721cf42e0629a778d731cec000000000000000100000000000000000000000000000020489d99d4593c9f7d7ef11873a6c49aafdfb74ac5f21eb6af1c6ee02f3ffb8a2f000000000000000100000000000000000000000000000020985c653902cfbc26788a0a66a2ca25303ad6ea2c2dce45d07ccb47361456c58a000000000000000100000000000000000000000000000020d93b16ca33c69462349cdf25972305037f4521a14049e5a3a75b32e9bee8ab86000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f000000000000001c0000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e0000000000000006000000000000000100000000000000010000000000000020efdae9d81fd2ca0096d5aee41b21de66488c5140026824db3cd9c8e1763de84f00000000000000010000000000000001000000000000002051704f70a8aa51bd314aab357c177ac12119cd35d4c15df8f63ac290257fb714000000000000000100000000000000000000000000000020a807a1722dd073782a8272fa29a97e18cc1fcb02a95519aa71a538bc94a590e3000000000000000100000000000000000000000000000020b9f8380e2fe3e057f633ea7d58642469bf1143bc7afd2f6ab6cdfafe1a969e7e0000000000000001000000000000000000000000000000209eb7ba4269788b7b97d4252aa2205ef7ba6c9ab3e416ab745d4640aff201076a000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000001c00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce000000000000000600000000000000010000000000000001000000000000002079831fbf32c16db507b5d2af52b0e46fbad3771bf773a6c2273a65297cd2526f000000000000000100000000000000010000000000000020648403802e5d55e3d3786042b30a6d3cb7e6df509b21c13f1d237517167a83e200000000000000010000000000000000000000000000002075430e07a240300ae52c953b5ec016f510b635876be55ed1ecf612dffb92990b0000000000000001000000000000000000000000000000209ffe2f8254f8dfda50ac81447c6e6970a53d6f72fc2e89d44cf63d609b971c480000000000000001000000000000000000000000000000204e59b970588c516635072f9eb5ffd6017c806bd61413f1d8d7108febcebe4793000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f000000000000001d0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020a89096b06ea97fc764549f477ec35dc13b208ea05aea251072e9bc82b6f3a78e0000000000000001000000000000000100000000000000202ec5ed8b835c098bcf1fbaa0f4aab5053575fbe2dd675f6a8528d2ae539d073300000000000000010000000000000000000000000000002070f93532da12d95bd9b02b2acb02b74a3a532fbd8d1ec178ca7acf3e54865fb800000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001d0000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000000000000000000020b0109e99c5dc752bfee63ab2d3960d9f6e29ace7797b150c1a3135d8bda3e962000000000000000100000000000000010000000000000020590d9c432f285808f63451f8d6c0a1260cf0a604784325d45bb0ea5e63f474c20000000000000001000000000000000000000000000000205b277784934640de1faad045f97aa33ead0988f94dacc9c53e4166dbb115452f0000000000000001000000000000000000000000000000201a65e1cc35663dd11d7c5292a59632955075838a0e28f828ed0f1b9b6ab71d9a0000000000000001000000000000000000000000000000201a981d9e84479953754937a102c43e70395029db74bfc2fab12b49c5843d9e430000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e000000000000001d0000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a88000000000000000600000000000000010000000000000000000000000000002034d22a403ecd0dc4c365b3650da637ef4ec639fb9cd5d2b566df77b479d254590000000000000001000000000000000100000000000000206a335c82a94227739b09dfafb636354f448b023d2721cf42e0629a778d731cec000000000000000100000000000000000000000000000020489d99d4593c9f7d7ef11873a6c49aafdfb74ac5f21eb6af1c6ee02f3ffb8a2f000000000000000100000000000000000000000000000020985c653902cfbc26788a0a66a2ca25303ad6ea2c2dce45d07ccb47361456c58a000000000000000100000000000000000000000000000020d93b16ca33c69462349cdf25972305037f4521a14049e5a3a75b32e9bee8ab86000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f000000000000001d0000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000000000000000000202a5fdf74737c8f6a43429b00f9b68be0f28fca20ce52d06cbcbc6c3168fe428d00000000000000010000000000000001000000000000002051704f70a8aa51bd314aab357c177ac12119cd35d4c15df8f63ac290257fb714000000000000000100000000000000000000000000000020a807a1722dd073782a8272fa29a97e18cc1fcb02a95519aa71a538bc94a590e3000000000000000100000000000000000000000000000020b9f8380e2fe3e057f633ea7d58642469bf1143bc7afd2f6ab6cdfafe1a969e7e0000000000000001000000000000000000000000000000209eb7ba4269788b7b97d4252aa2205ef7ba6c9ab3e416ab745d4640aff201076a000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000001d00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000000000000000000020aacef8144d0aaa9c2a0ca40d2dc95841d11907a2a4555144969c3937ebd7fe3d000000000000000100000000000000010000000000000020648403802e5d55e3d3786042b30a6d3cb7e6df509b21c13f1d237517167a83e200000000000000010000000000000000000000000000002075430e07a240300ae52c953b5ec016f510b635876be55ed1ecf612dffb92990b0000000000000001000000000000000000000000000000209ffe2f8254f8dfda50ac81447c6e6970a53d6f72fc2e89d44cf63d609b971c480000000000000001000000000000000000000000000000204e59b970588c516635072f9eb5ffd6017c806bd61413f1d8d7108febcebe4793000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f00000000000000080000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020657f400c23f985ef1ba27d0e61eec710dc328bb9ca9d9fcbbed56910fe31e4490000000000000001000000000000000100000000000000204e8bc169e0bffb7af86e442b025c73a9c0e2c8fcbfdcbdbfd7d568446045f1ae000000000000000100000000000000010000000000000020f7575ab7c2207c8a39c727bb104d9b7c0105c5ae631fc01ee25378fbc615b0d20000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000080000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000010000000000000020cc0f1e88acadc270e58547f095d41024d314617f6857a57276076ac7013d929d000000000000000100000000000000010000000000000020365faf9d4f2617ac85e85655583b336257b16695a31927343364637953760d7200000000000000010000000000000001000000000000002013d14b381120b5bf3e50be8082945bcab9ff68ae60b49158622bb0bdcdb513f30000000000000001000000000000000000000000000000207f33eb1404cd0d875f2a95096d3541a8c1bb93415e8452ab893bd3cc530fea91000000000000000100000000000000010000000000000020f674d9bdc01a18975efa6d78c277539fb49e84aa12b432ce63398cf89654de330000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e00000000000000080000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a8800000000000000060000000000000001000000000000000100000000000000207c093edc1d316a87c6f40888ea29e7b6f3140dbe38af585e8837f9aeb0d8172b0000000000000001000000000000000100000000000000209e54f8b518fde13c6b19dc6fa571c0e11fdeaad73188e893de28466eac1886ce0000000000000001000000000000000100000000000000201e601b594927843632982fc282235dfee77b9c21997d4f2aaab32451c59b939e000000000000000100000000000000000000000000000020556b729f832f5d5ffb8c80a2e7f2028be68aa00b113f1182ccd5b7dd03cf096b000000000000000100000000000000010000000000000020e40cceacfe78cff9600b2e46e186ce0d04d352b2cebea854211cefeeb27f1594000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f00000000000000080000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000100000000000000201007511eff2b57926ed6a09bb01db3212d3c58b433cd892b79c314179fc16b06000000000000000100000000000000010000000000000020c000cbdc7147347a3028888481308e00d5d9eb191983a915f7f252d616d16cc6000000000000000100000000000000010000000000000020d514ba05ee09db66c53d6fea826e5169cee5c5f858b32cf798aea18463bbff6a000000000000000100000000000000000000000000000020e7b0a01e52a73870d50a26535d8010fbace9e15d9f75bc0eba0ae2c00cbc16bb000000000000000100000000000000010000000000000020a1510c0b06e39f12e300709d413f8d80016cf37775e3d9332cf787ff7cb437e5000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000000800000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000010000000000000020a3338de9d2e6b6efdd428b4b8121190331f8afd171b42c6abbce6ff7b9c46bed00000000000000010000000000000001000000000000002003dc9b545556b88e3a8a56d6948e16302ab10ebcd74c3b4dfeebd045264cf2d7000000000000000100000000000000010000000000000020e2d1d645aa1491df7a22465a64245aef796656a1c91387cc00b336cb8db93a4f000000000000000100000000000000000000000000000020142099038968e9066c8b40ca01903ceeb912fb3a306618ef9c7c457deb8c2893000000000000000100000000000000010000000000000020869859afc4e5681a25a5915521c2a426157dff8e26309759aca12cb8232c3452000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f000000000000002a0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000001000000000000002029933cdd58706d69a594c9d24cac81d89a2aca731c11be9267c9a7d6c46556710000000000000001000000000000000000000000000000207389759a61afbc01d58e739b1599d7588a2a6faba16eb514210d5cedf79e0b34000000000000000100000000000000010000000000000020a346fbbeee725da089a6715dac946ab17533f7a77d571694ca1f1b28abb7d944000000000000000100000000000000000000000000000020bc7cafa2d5bbcd43a2687bac1aaae39ea07c2b052355ee18f7bed28530381a1900000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba3610000000000000002a0000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000010000000000000020f455353fb6fddfcbec06bbaef07205e128a20673749299fdcbeba1f977cf2dcd000000000000000100000000000000000000000000000020cbb9751f19b05fd8cafa9b0cf995c2264c9339af14376000307d567d4edf3b400000000000000001000000000000000100000000000000203547113af63ad8e61d104e845bc7bd94f46e699da72fc56d4cf252b88c72d482000000000000000100000000000000000000000000000020a51ce5ba7b44478bcdec8a411d8349eeb36854bb15c20351152e1e50b360d7bd0000000000000001000000000000000100000000000000206075e3c137d83b1533f8eb7c9350d8bc540f7c17d14f427c4b1f1569724c9c9f000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf3554000000000000002a0000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000010000000000000020dffc5e5de45cbba0637bcb42f469b3808faca89b90727e8efc4561db9aa44b4c000000000000000100000000000000000000000000000020e843789852e901f0615732e2265025ec28d45081d6374488264b032d64ef08f10000000000000001000000000000000100000000000000207227287ef1043ec37d0a201d022d15e42297a01a946813d933dba5d6630032b60000000000000001000000000000000000000000000000206d8458687217e86e52d9138ff093ca35b4e8533ca8cdd768b3ea57415f64e8a90000000000000001000000000000000100000000000000209898665151c8643d367f337a0c2eeb715a6080b039ae6b00481ab48b488fc8c90000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb000000000000002a0000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000100000000000000200aec919c0f5e348f60093b967591d040be204f2249504883b69174a44bae984000000000000000010000000000000000000000000000002079a896fd9e75b33ef51efd2e04ab3cf8bd8660359c9f21f7dc9e05d6cbaec1900000000000000001000000000000000100000000000000206d3d4fb0fa281a7f9e028b803d8a4aa225d1ba02f34ac4ddbcc7a4f20df718af0000000000000001000000000000000000000000000000209d208af5249585c0326402a6c6970251fae890b4c592ee88f15cc20a235ef8fb000000000000000100000000000000010000000000000020ab56a12205d0c8e0e402ade0769ddecf9b594f3d7db8254cb25540877c795f65000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000002a00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce00000000000000060000000000000001000000000000000100000000000000203bc5ed02d1a45b0c1089e7d6f9d5798844b087345712faca5c0cb3836b5f490c000000000000000100000000000000000000000000000020accb0572eff1c8585502df9d1e27bf4be0958d77c6290930b26bc03c9ebf5bb30000000000000001000000000000000100000000000000205af1ddec7a4ff15ca116e9d45258202fb6719b2245f7f0b4321be7bca697bb4a000000000000000100000000000000000000000000000020626301e6b2a07f50dbdb59c4961faaebda7a023d1a4b426b95b4bc4be4bd17750000000000000001000000000000000100000000000000206ee562063ccf55f6adc30345f7d34f6c30fba9f1634f24a99a4c5c6e7e6de3b5000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a00000000000000360000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020c3a4db706c3c3b07e0984d10824acb5797a59a8b4d40d709cfa0452e6ee0f23400000000000000010000000000000000000000000000002015ad821dcbca21c0f24f28f58131f9ab7767c0d6fbf621d34a2c84ab7b24c75e000000000000000100000000000000000000000000000020f4d1e64380a2c05ab0dc64ea31b5e288a4325921fa907811ded50419cc51d1ad00000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000360000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000010000000000000020f633ed75184d4a7e757e8c2a25212067732a2af11f6ba2ddc33ed719ebaf044e000000000000000100000000000000000000000000000020f1e2b6347ac2739a9b466267fbd2550305432721d16af954e722390ced51f508000000000000000100000000000000000000000000000020a3b4187c6753dc9ef8e78915ad0d5a86516efe76949a7e97bde2b7c7f7ced146000000000000000100000000000000010000000000000020683add9032495c3da8b6bd81434dde36b862a0aa24bfc4921623d38f6d42ce9e0000000000000001000000000000000000000000000000204784f6834025b9259cfebec8cffeb00373b1af30dde25a8e3b68097f0573e1f4000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf355400000000000000360000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000010000000000000020f406c28d6ab2004ecc82788f7e58b86e0f4e803c0038d67c292fdc0c28d5c5ef000000000000000100000000000000000000000000000020ed27bfab2e7f35c0e874f1cea2ac0d0e57387c04f2dcec17c69645f45c45dc61000000000000000100000000000000000000000000000020cc57c137940830e48f40c451bdc74b12071485f1ad6ffba3e2ab01a9c482cb080000000000000001000000000000000100000000000000205efe682d733ff9220f6e865648ba8a56c69380880c1b4f659a8bf126240ceeb500000000000000010000000000000000000000000000002081164d64a302850b69a6f61885a59bcff6f1ab23c424b6d2a9d63914f94a1e420000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb00000000000000360000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000100000000000000208fb7545027f7d19fcd4da696a6bf239fc744defe5b382690b579a98b1dad5be100000000000000010000000000000000000000000000002071d15c01a1238d45abb8e3144cfa8f392b83afd290d498bf6719cd6131e12f2b00000000000000010000000000000000000000000000002058034b10ba7cfc2c36a16ab5d61a39a246370d0f4b9ad70756884cc55b6f8d0900000000000000010000000000000001000000000000002074d0092f6c300f43760e0459a111c8fd56d2fe92366d550b7a221827dc9ed2dc000000000000000100000000000000000000000000000020cff6591dfe8cb9d421049bf180fabeb267dc54e2b75083b1c94c48eeb9a2fbe9000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000003600000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000010000000000000020fba6d08c6ba7f143746d8ae4460a07bfce7ab4306b15d53e3d4b6892ec8c1c68000000000000000100000000000000000000000000000020a83ed7937cc008c4f5c47eab905b2c4437bdd9fb5bf17fbfc689d4d4a802e0b900000000000000010000000000000000000000000000002060eff9ce86435865bbc177c269e76fb0f849d4a5a9c70083537cf0ad9059f438000000000000000100000000000000010000000000000020b2b1f9a9da970f658f42768224e216c42e11acbca318b0a65a9fd00cb5e0c9980000000000000001000000000000000000000000000000208af78be0e621a70f818b523c1d4675b967f8ca602f0292dfbd3b6cb3b77c3830000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a000000000000001c0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000001000000000000002037b6c67d542cc82de1bdb70e49b269e367dd16e912af30b78c822650621202e20000000000000001000000000000000100000000000000202ec5ed8b835c098bcf1fbaa0f4aab5053575fbe2dd675f6a8528d2ae539d073300000000000000010000000000000000000000000000002070f93532da12d95bd9b02b2acb02b74a3a532fbd8d1ec178ca7acf3e54865fb800000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001c0000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a3000000000000000600000000000000010000000000000001000000000000002024849e8d957482bb921ab1fbe8134241a44f7e9de2c516b7a4e85f90e85c3511000000000000000100000000000000010000000000000020590d9c432f285808f63451f8d6c0a1260cf0a604784325d45bb0ea5e63f474c20000000000000001000000000000000000000000000000205b277784934640de1faad045f97aa33ead0988f94dacc9c53e4166dbb115452f0000000000000001000000000000000000000000000000201a65e1cc35663dd11d7c5292a59632955075838a0e28f828ed0f1b9b6ab71d9a0000000000000001000000000000000000000000000000201a981d9e84479953754937a102c43e70395029db74bfc2fab12b49c5843d9e430000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e000000000000001c0000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a8800000000000000060000000000000001000000000000000100000000000000207fdebb0e9dba24fa37602559407b99dd55ea4ffb80c5689dfdd314663cd464c90000000000000001000000000000000100000000000000206a335c82a94227739b09dfafb636354f448b023d2721cf42e0629a778d731cec000000000000000100000000000000000000000000000020489d99d4593c9f7d7ef11873a6c49aafdfb74ac5f21eb6af1c6ee02f3ffb8a2f000000000000000100000000000000000000000000000020985c653902cfbc26788a0a66a2ca25303ad6ea2c2dce45d07ccb47361456c58a000000000000000100000000000000000000000000000020d93b16ca33c69462349cdf25972305037f4521a14049e5a3a75b32e9bee8ab86000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f000000000000001c0000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e0000000000000006000000000000000100000000000000010000000000000020efdae9d81fd2ca0096d5aee41b21de66488c5140026824db3cd9c8e1763de84f00000000000000010000000000000001000000000000002051704f70a8aa51bd314aab357c177ac12119cd35d4c15df8f63ac290257fb714000000000000000100000000000000000000000000000020a807a1722dd073782a8272fa29a97e18cc1fcb02a95519aa71a538bc94a590e3000000000000000100000000000000000000000000000020b9f8380e2fe3e057f633ea7d58642469bf1143bc7afd2f6ab6cdfafe1a969e7e0000000000000001000000000000000000000000000000209eb7ba4269788b7b97d4252aa2205ef7ba6c9ab3e416ab745d4640aff201076a000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000001c00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce000000000000000600000000000000010000000000000001000000000000002079831fbf32c16db507b5d2af52b0e46fbad3771bf773a6c2273a65297cd2526f000000000000000100000000000000010000000000000020648403802e5d55e3d3786042b30a6d3cb7e6df509b21c13f1d237517167a83e200000000000000010000000000000000000000000000002075430e07a240300ae52c953b5ec016f510b635876be55ed1ecf612dffb92990b0000000000000001000000000000000000000000000000209ffe2f8254f8dfda50ac81447c6e6970a53d6f72fc2e89d44cf63d609b971c480000000000000001000000000000000000000000000000204e59b970588c516635072f9eb5ffd6017c806bd61413f1d8d7108febcebe4793000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f00000000000000010000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020ce2da5dd3f1d2499114e62007db0bc8b52860a97086c4d1d9b291f96e0ac9c2e000000000000000100000000000000010000000000000020fc1dbba6f9b455616fa548f07000bd186f0be1060371081b1c952c87cb2969850000000000000001000000000000000100000000000000205bc3e12c36d4a2e20b1b195ac346c64db1219ed22eb08085da4d26fcd4973a5e0000000000000001000000000000000100000000000000209dc48d41a2d4c25b90ae286b21502aabe4177429574808eac78aed0ba9b970ba00000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000010000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a3000000000000000600000000000000010000000000000000000000000000002020e463879ca91215f6ecad044b8d903cd8e1b976858803010318f174d3d7c00a000000000000000100000000000000010000000000000020eab0124714357419c82aa6b9fc67bfe0f2d6c5ba5aef9a9c6df813dff96cd2e80000000000000001000000000000000100000000000000203846fd3e36aeab07b7b1149be12abaec4d198301c7f4ccd5c462b83d505bf578000000000000000100000000000000010000000000000020f8bc11deec21302e1f51f9e237aedb8aa5251d7676c7f5048dedcd657f7133fc000000000000000100000000000000010000000000000020f674d9bdc01a18975efa6d78c277539fb49e84aa12b432ce63398cf89654de330000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e00000000000000010000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000000000000000000020b2c38a800288dcec6ef1593ab0b78edc47703f1a83b454dc56c3f820e8d5d118000000000000000100000000000000010000000000000020b1464354ea8f4837c1fc57de33d11dc40824d0aa9801f9697aa31e991e67bf290000000000000001000000000000000100000000000000202f4dae3f3abefdcef8e804a8550409e8107cfcda485796ec05ed01a647dd20780000000000000001000000000000000100000000000000201e5d518201338ae65645a43790fcc881148a862ced5662dd2f3d4fa272096c30000000000000000100000000000000010000000000000020e40cceacfe78cff9600b2e46e186ce0d04d352b2cebea854211cefeeb27f1594000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f00000000000000010000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000000000000000000207125acf898834eb0e8e1013e63541455fbd6dd19b747f442192de123351fcdc70000000000000001000000000000000100000000000000201e9013d6c777f8d7415338d318d8b199145c4208c4771262d14ba9fff01ffa0600000000000000010000000000000001000000000000002069a21d672f2da0e3b1597c5c5632f215bde7dcc270ed7fbf814232fbdc4993600000000000000001000000000000000100000000000000201e0e5ee3509d87c942d6eecc539d80cd51775918b908b745d7ab410f52b8a562000000000000000100000000000000010000000000000020a1510c0b06e39f12e300709d413f8d80016cf37775e3d9332cf787ff7cb437e5000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000000100000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000000000000000000020d0b67569c44dba76fcb005ec4cf9a5a689ec05993b8a54228e881965257bfa05000000000000000100000000000000010000000000000020766d125ba1ecd094c63c9ec0a9e1a0d19ebca2e1c2442c4307356d177331f52a000000000000000100000000000000010000000000000020e711eb9d7015bf6d75e0398e5bc0c1a5bcd17f5d847c5afd256642cb6930a546000000000000000100000000000000010000000000000020be6d505b52ce59b71864d77730ffeb8628fe75575331c760db510ad311a24443000000000000000100000000000000010000000000000020869859afc4e5681a25a5915521c2a426157dff8e26309759aca12cb8232c3452000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f000000000000001b0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020c26d26b74acdd23d9b0155fbf8a8563a59c86a826119cd98d5e72857ecef75c00000000000000001000000000000000000000000000000208cdaf05b84ace4e1b630d731222e016e66fbb851f5088ed3b8479b35f2e863df000000000000000100000000000000010000000000000020087a599f409cb7bacc0662f1cbc4762c6f1a1276b1ec901eff46c07ae65a8c6900000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001b0000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000000000000000000020be2ce71510689cec8c1bfbd417ef2733a1ccea07200e6785e4bff8e91c15f2e80000000000000001000000000000000000000000000000208140f72e890683cb0c86fb877ded36f4581aa354be3f8c83c99cdf487616e223000000000000000100000000000000010000000000000020d5f571e96d09d56c95ef3b63617cb7cee704c9452fc2678d7d203894421831080000000000000001000000000000000000000000000000201a65e1cc35663dd11d7c5292a59632955075838a0e28f828ed0f1b9b6ab71d9a0000000000000001000000000000000000000000000000201a981d9e84479953754937a102c43e70395029db74bfc2fab12b49c5843d9e430000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e000000000000001b0000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a88000000000000000600000000000000010000000000000000000000000000002042187ca44d24d43efd1dd619f90aef9a61178f853e0f6d77b5e0ab4744814e2a0000000000000001000000000000000000000000000000205d0f50bf7175a98da247397af17cc975263baf8610471446956ab2cc098fb962000000000000000100000000000000010000000000000020fc3ecba6f88a03bd0fd0081ef31474e57c5e048a180b0f85a74f120f987b913e000000000000000100000000000000000000000000000020985c653902cfbc26788a0a66a2ca25303ad6ea2c2dce45d07ccb47361456c58a000000000000000100000000000000000000000000000020d93b16ca33c69462349cdf25972305037f4521a14049e5a3a75b32e9bee8ab86000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f000000000000001b0000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000000000000000000205c97271f82b2d21afc4a4df7bb146c200a5e0ea96bca962c92854d5335ffe6e300000000000000010000000000000000000000000000002053850efa1e113a85767b04b049dcd9b2edfb79f7593c8cf90eb4201d4d120f1e0000000000000001000000000000000100000000000000204cc2265dd408d41a199f389594a4d4a755b0b092e6d7724a02ea1a784d18ed7b000000000000000100000000000000000000000000000020b9f8380e2fe3e057f633ea7d58642469bf1143bc7afd2f6ab6cdfafe1a969e7e0000000000000001000000000000000000000000000000209eb7ba4269788b7b97d4252aa2205ef7ba6c9ab3e416ab745d4640aff201076a000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000001b00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000000000000000000020f7975317e94d2c310349fe97d7e016b158908ee2c379940c28507f5badf18e810000000000000001000000000000000000000000000000205661635468d204fececbb4edd8c70496c972c64f65793287d79c677f971f92d90000000000000001000000000000000100000000000000204d013d6b7368c0727be310b46a9ccff9f35de639469cd026aca3e818f732ab2b0000000000000001000000000000000000000000000000209ffe2f8254f8dfda50ac81447c6e6970a53d6f72fc2e89d44cf63d609b971c480000000000000001000000000000000000000000000000204e59b970588c516635072f9eb5ffd6017c806bd61413f1d8d7108febcebe4793000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f000000000000000b0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020ad82ea2a45d85b48e6c82ed5ce28deab27d4ccdf080aa1d4cce08b7c9106cc24000000000000000100000000000000000000000000000020dfa1f4a78895997367f9cc44c38621692b6fc048ae50b225156222237c41470e000000000000000100000000000000010000000000000020f7575ab7c2207c8a39c727bb104d9b7c0105c5ae631fc01ee25378fbc615b0d20000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000000b0000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000000000000000000020cd43d13c76c200d077bb52432a9ce254d5617643c205ce8a5a54c32aef2325bb00000000000000010000000000000000000000000000002028e0b13739e849baecb54edea5630c67498ebf690afbae8176352521697fc19400000000000000010000000000000001000000000000002013d14b381120b5bf3e50be8082945bcab9ff68ae60b49158622bb0bdcdb513f30000000000000001000000000000000000000000000000207f33eb1404cd0d875f2a95096d3541a8c1bb93415e8452ab893bd3cc530fea91000000000000000100000000000000010000000000000020f674d9bdc01a18975efa6d78c277539fb49e84aa12b432ce63398cf89654de330000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e000000000000000b0000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000000000000000000020647fde57b6384c82096acc647f2b20b2a8c82b9d5c51b6362dfe46859b42279c000000000000000100000000000000000000000000000020ffa6b5a4b5fd30f3557f785646d6ee58379f2523d6bbdde6780bc950fb0aec130000000000000001000000000000000100000000000000201e601b594927843632982fc282235dfee77b9c21997d4f2aaab32451c59b939e000000000000000100000000000000000000000000000020556b729f832f5d5ffb8c80a2e7f2028be68aa00b113f1182ccd5b7dd03cf096b000000000000000100000000000000010000000000000020e40cceacfe78cff9600b2e46e186ce0d04d352b2cebea854211cefeeb27f1594000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f000000000000000b0000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000000000000000000208c1b44554c6d94bffd9d103dcab56a6cca19225d8b80ebb83362764576af813c00000000000000010000000000000000000000000000002028a460e6880a4e76fbde19c30fe02332da8004ea821101be5cfe8c2e1ee60ce0000000000000000100000000000000010000000000000020d514ba05ee09db66c53d6fea826e5169cee5c5f858b32cf798aea18463bbff6a000000000000000100000000000000000000000000000020e7b0a01e52a73870d50a26535d8010fbace9e15d9f75bc0eba0ae2c00cbc16bb000000000000000100000000000000010000000000000020a1510c0b06e39f12e300709d413f8d80016cf37775e3d9332cf787ff7cb437e5000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000000b00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce00000000000000060000000000000001000000000000000000000000000000201402955f3a57b41f305d9a4d39fa9fd355bd14ac5c685b3948bbfc714675cc530000000000000001000000000000000000000000000000203bab8a9e9007be7e8c56a1bde60ddda6138821056a7c45bab91bcabfcf500376000000000000000100000000000000010000000000000020e2d1d645aa1491df7a22465a64245aef796656a1c91387cc00b336cb8db93a4f000000000000000100000000000000000000000000000020142099038968e9066c8b40ca01903ceeb912fb3a306618ef9c7c457deb8c2893000000000000000100000000000000010000000000000020869859afc4e5681a25a5915521c2a426157dff8e26309759aca12cb8232c3452000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f00000000000000170000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020a0c329674d73730336f6ce60133ccf4aac3865051d354d21037187f6396071b3000000000000000100000000000000000000000000000020864e47462260929d60876a0babd915b08229a85eed60fe22ac85ec61ee1e866e000000000000000100000000000000000000000000000020080b28b1dece6dde43a662bb2943cbbcfb4977254ddfb567d20ec3694d07decc000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000170000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a300000000000000060000000000000001000000000000000000000000000000205bd98a1b491cc72eb05e18deecafdb001f85e6128a43343d3ff0be37e78fe64f0000000000000001000000000000000000000000000000200e7d351888311da505d48edf530347f157d2abfcab987c09de8b0beef61251bf0000000000000001000000000000000000000000000000207990f75efecb15381ee2ea49b218b85f7e3d2cd5a557af793a918c688444cb36000000000000000100000000000000010000000000000020fd279d1406b4d83c0a17f7b257f972ea35ed0ca71fef42b15831ef20a873d2060000000000000001000000000000000000000000000000201a981d9e84479953754937a102c43e70395029db74bfc2fab12b49c5843d9e430000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e00000000000000170000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000000000000000000020a086ae4f0127f6c9909beabf093667b871ff438149eab70e246ffb25d3fddabb000000000000000100000000000000000000000000000020d4552976af65c083f953d52f4a52bbc52fc0ce914e2a0410d0b8cb54949d05b00000000000000001000000000000000000000000000000206535303184ae9576b8965697bba2837e9653eaea428214efe5545f1a41781af4000000000000000100000000000000010000000000000020a11b098ffdb0fd764d32c6c94f850ae43c76bdac4f696dfb63d217ca7ca3565b000000000000000100000000000000000000000000000020d93b16ca33c69462349cdf25972305037f4521a14049e5a3a75b32e9bee8ab86000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f00000000000000170000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e0000000000000006000000000000000100000000000000000000000000000020aa7f59eec92558617b3eedd98a1f0c3c0e5557078bc4cf26ffa0b525495cf57d000000000000000100000000000000000000000000000020ba868704c113d607b0f29432afc6c0a3b96bbd5e37e09fc3e9551e024d2e294a0000000000000001000000000000000000000000000000203d240926443a3df74455eaa63032b4a1917a7ba86b68c8b52488cb5c14e7152c00000000000000010000000000000001000000000000002067c75ae00e580df332b6c9eb358990101505a1fcfad9143ca32a4fa708c2dd6a0000000000000001000000000000000000000000000000209eb7ba4269788b7b97d4252aa2205ef7ba6c9ab3e416ab745d4640aff201076a000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000001700000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce00000000000000060000000000000001000000000000000000000000000000204410f5d9249c107f35825cec6de0fff5d3e59e38d0c300b08927a78dff598e27000000000000000100000000000000000000000000000020929ae53c8c74f4b9989951280c1e0f853226f925fc21b6c7169bd80647f361b8000000000000000100000000000000000000000000000020fdad0b48ef4cbe9ae1572e41e999fc911b15aa624f42f18504d156ebfdb1852c0000000000000001000000000000000100000000000000209a71d9e1dce988e719e83d71d00c9525487a282b50022cc6154fc960fd2355f00000000000000001000000000000000000000000000000204e59b970588c516635072f9eb5ffd6017c806bd61413f1d8d7108febcebe4793000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f00000000000000040000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020ad29f157986a63e236232935b94d48a682c4e8c6359a4acfb61d5ce97d6618e900000000000000010000000000000001000000000000002051eb7c5f8572912a00b4d921a0269e737f961978a81975a7117df74f933d6478000000000000000100000000000000000000000000000020e2c28e037d30a9b1cafa16794e336898558e512395cfcbdeb25f5f9c08dba0820000000000000001000000000000000100000000000000209dc48d41a2d4c25b90ae286b21502aabe4177429574808eac78aed0ba9b970ba00000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000040000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a300000000000000060000000000000001000000000000000100000000000000204d8cbedc0ba430818025f4a7a34b0e80b405c7396a376791ffeda9c7f12e218b0000000000000001000000000000000100000000000000205002af866aa997e8c793ae0820b0401e66879fbfb375385e2924581f675a7ce600000000000000010000000000000000000000000000002037e321427dc8a93667d9e53d72f976e66ef694ed439402c8b04bd59a2a16a558000000000000000100000000000000010000000000000020f8bc11deec21302e1f51f9e237aedb8aa5251d7676c7f5048dedcd657f7133fc000000000000000100000000000000010000000000000020f674d9bdc01a18975efa6d78c277539fb49e84aa12b432ce63398cf89654de330000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e00000000000000040000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000010000000000000020341937366db2c11b6453e4d6e11e6657736857c2188f6cefbfa2f1d96933a8c8000000000000000100000000000000010000000000000020178c19aada458d055f305c25678fbc848772b18a45b56515c1c896a26ad32d620000000000000001000000000000000000000000000000200fe8624bf18d0bf250ca0d738d3ae9b69eae414c22fee76dbcd19d27aafb18320000000000000001000000000000000100000000000000201e5d518201338ae65645a43790fcc881148a862ced5662dd2f3d4fa272096c30000000000000000100000000000000010000000000000020e40cceacfe78cff9600b2e46e186ce0d04d352b2cebea854211cefeeb27f1594000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f00000000000000040000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000100000000000000200fdb6d18775f7560197e221d6d35b90ce6a7530ad741bb804a0ae8bc7d636138000000000000000100000000000000010000000000000020473804d1f8c0cc25b880ac1b2910777bc6000c1ec4d4c384881b627d77c727810000000000000001000000000000000000000000000000201b90e90c86f1056ea0a09f49027a3005a07ddfc1081f399df53cdfd1cbd242800000000000000001000000000000000100000000000000201e0e5ee3509d87c942d6eecc539d80cd51775918b908b745d7ab410f52b8a562000000000000000100000000000000010000000000000020a1510c0b06e39f12e300709d413f8d80016cf37775e3d9332cf787ff7cb437e5000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000000400000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000010000000000000020220fb311907c9d85439d1eec5e9ffbfba87c4012c353bd8715c2ea1879cb1b390000000000000001000000000000000100000000000000207836d324a1cd8d31deb3c84cb8df9edc7537a827b7648c7af740d7259cfd7fd60000000000000001000000000000000000000000000000205d6f40bbd0dcdbf87dd934c270f43c6d6bc47105677bd050547cd995af6f48f3000000000000000100000000000000010000000000000020be6d505b52ce59b71864d77730ffeb8628fe75575331c760db510ad311a24443000000000000000100000000000000010000000000000020869859afc4e5681a25a5915521c2a426157dff8e26309759aca12cb8232c3452000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f00000000000000160000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000001000000000000002042cb2165201ab8ea41affe9fbc23ef70f009dba666b45581fe56a336d6b425f7000000000000000100000000000000000000000000000020864e47462260929d60876a0babd915b08229a85eed60fe22ac85ec61ee1e866e000000000000000100000000000000000000000000000020080b28b1dece6dde43a662bb2943cbbcfb4977254ddfb567d20ec3694d07decc000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000160000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a3000000000000000600000000000000010000000000000001000000000000002052f41021c9dba410ed61e16039b2f4f6efc1686ef6c3d8744277fe138c529a100000000000000001000000000000000000000000000000200e7d351888311da505d48edf530347f157d2abfcab987c09de8b0beef61251bf0000000000000001000000000000000000000000000000207990f75efecb15381ee2ea49b218b85f7e3d2cd5a557af793a918c688444cb36000000000000000100000000000000010000000000000020fd279d1406b4d83c0a17f7b257f972ea35ed0ca71fef42b15831ef20a873d2060000000000000001000000000000000000000000000000201a981d9e84479953754937a102c43e70395029db74bfc2fab12b49c5843d9e430000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e00000000000000160000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a8800000000000000060000000000000001000000000000000100000000000000202942101d2d49ad78c463c4a3ea136209fdb94f19c8339f98255c65f1c4666001000000000000000100000000000000000000000000000020d4552976af65c083f953d52f4a52bbc52fc0ce914e2a0410d0b8cb54949d05b00000000000000001000000000000000000000000000000206535303184ae9576b8965697bba2837e9653eaea428214efe5545f1a41781af4000000000000000100000000000000010000000000000020a11b098ffdb0fd764d32c6c94f850ae43c76bdac4f696dfb63d217ca7ca3565b000000000000000100000000000000000000000000000020d93b16ca33c69462349cdf25972305037f4521a14049e5a3a75b32e9bee8ab86000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f00000000000000160000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e0000000000000006000000000000000100000000000000010000000000000020655f15dbb4de358ef6b5c1a8a9ff7a3446a303cb8b1417331bf0cec80085096e000000000000000100000000000000000000000000000020ba868704c113d607b0f29432afc6c0a3b96bbd5e37e09fc3e9551e024d2e294a0000000000000001000000000000000000000000000000203d240926443a3df74455eaa63032b4a1917a7ba86b68c8b52488cb5c14e7152c00000000000000010000000000000001000000000000002067c75ae00e580df332b6c9eb358990101505a1fcfad9143ca32a4fa708c2dd6a0000000000000001000000000000000000000000000000209eb7ba4269788b7b97d4252aa2205ef7ba6c9ab3e416ab745d4640aff201076a000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000001600000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000010000000000000020f6586d97c2bca29bd5b3acf6692373125501f32705bfc55f12d323c002328f60000000000000000100000000000000000000000000000020929ae53c8c74f4b9989951280c1e0f853226f925fc21b6c7169bd80647f361b8000000000000000100000000000000000000000000000020fdad0b48ef4cbe9ae1572e41e999fc911b15aa624f42f18504d156ebfdb1852c0000000000000001000000000000000100000000000000209a71d9e1dce988e719e83d71d00c9525487a282b50022cc6154fc960fd2355f00000000000000001000000000000000000000000000000204e59b970588c516635072f9eb5ffd6017c806bd61413f1d8d7108febcebe4793000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f00000000000000380000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020d5d9e84739c0813f71d0359e99b9765469d7a41ef279c691c2254c026b06582900000000000000010000000000000001000000000000002092254bddc93af51db85c84258645a7368b11c67713d9b7edb7798f818a67b7d100000000000000010000000000000001000000000000002013cba62cb82888bb083b50937d466b49f9391c00299bd77abb46de4352465093000000000000000100000000000000000000000000000020a3c68cdf76781d19db7aa603f4cd91ea38edfc0b5126585e0c4cc27eb1121e50000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000380000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a300000000000000060000000000000001000000000000000100000000000000209799d522f91cea6449054c0d6b58a6c37ffd0692a60e5d460d535143695d2f23000000000000000100000000000000010000000000000020635807ed33baab6f198f635e7bde04f28bdf05155f98b23d273079a5ed07af51000000000000000100000000000000010000000000000020294a02d54abb3df02e3246385cc62ff7ce7229b010690ce8690c31f967c45b48000000000000000100000000000000000000000000000020c8d8760ce542c5a702bcabcb4fef6e52d4233083d54c3cc37568102e3f21b0ec0000000000000001000000000000000000000000000000204784f6834025b9259cfebec8cffeb00373b1af30dde25a8e3b68097f0573e1f4000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf355400000000000000380000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000010000000000000020f3d60bc9f4c6d9a39587df8dcfbc280d25b17d807b2b85194e25b3cbf9a81def000000000000000100000000000000010000000000000020d650faeed357d70ab1be131df066d705ed2f678c29cd43c2fca665cb823c2609000000000000000100000000000000010000000000000020a699562990c3412fc55d466a3e6d9bcf5a7122ba4c59059e9715120d545c05d400000000000000010000000000000000000000000000002021d1315b8b30976711b2a1eb7d34dc8b98eb6fcd1048d35af300a0e1afc757f600000000000000010000000000000000000000000000002081164d64a302850b69a6f61885a59bcff6f1ab23c424b6d2a9d63914f94a1e420000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb00000000000000380000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e000000000000000600000000000000010000000000000001000000000000002026a8566d3a02bec6d352e8605bf6b96adafbb7d5f9067c735685b73b5a636b8a000000000000000100000000000000010000000000000020b3f12f78257ad5ac17c62e93d0e044fd1ee7eb9f634f5e185fd055875e73e1c2000000000000000100000000000000010000000000000020ff7f832f632893365f82d73c7d532c6bd3b7716ef7d7e7934d9ed9ee15104724000000000000000100000000000000000000000000000020362c41d2cff677621fedd9b9572a01b4275f6960c9701d92b3b8f403c3843124000000000000000100000000000000000000000000000020cff6591dfe8cb9d421049bf180fabeb267dc54e2b75083b1c94c48eeb9a2fbe9000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000003800000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce00000000000000060000000000000001000000000000000100000000000000200c4f64765121dcd1fb313c3839ca313622fa406d4b12a5455cd0dccbddac0870000000000000000100000000000000010000000000000020c08a3491343dcfc471495cc386a7f3c5ed9f533ed64ef21fe446eb48ffc9d0bc0000000000000001000000000000000100000000000000205bbf6df18c13b21ec0b39c6471ce58786a1bbd3b55eb1c1bcf04b80eb8446ddb000000000000000100000000000000000000000000000020f7c60fc0242ab4dfbc4e7ed03bd9eaacbe7d3b976a9239dc44a6f083d47d210d0000000000000001000000000000000000000000000000208af78be0e621a70f818b523c1d4675b967f8ca602f0292dfbd3b6cb3b77c3830000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a00000000000000320000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000100000000000000204551b7e47f6ca2d50d8dcfc72d7f82c5bf816540ff8972425307a26bbfcc903800000000000000010000000000000000000000000000002020357880fc8e6dd74df46742da252f118fdb87961923030914ba2e8adf16cb52000000000000000100000000000000010000000000000020d668a432d047c9e275f7c7d20e0a761a44ce7e63d76a8974123279ebd303ad5300000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000320000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000010000000000000020c8c7a78a6f51883dc3da2c94c9e4f3b56c8085e560d2fbe0f6610a2f6faf04fd000000000000000100000000000000000000000000000020f1317bfb982fb0c9bc2679aa653b3c5bf4e8fed7ab02435967a00c65b4407787000000000000000100000000000000010000000000000020896a9feb27176097287962314c1d6a9ab80a44327e072493d27b9a4b8e2303b0000000000000000100000000000000010000000000000020683add9032495c3da8b6bd81434dde36b862a0aa24bfc4921623d38f6d42ce9e0000000000000001000000000000000000000000000000204784f6834025b9259cfebec8cffeb00373b1af30dde25a8e3b68097f0573e1f4000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf355400000000000000320000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000010000000000000020a8b0f4939f1954963e25b120239cd99dfed52b5c6af3cbd915b3d1beabb13daf0000000000000001000000000000000000000000000000201b0f060eabc242fefd82c2636d58a4214fceb77d5abe8bd6cc40a752b911a490000000000000000100000000000000010000000000000020962eb8f3bc8178022d18678330a12f6cf8cf744e7f7485fab75396ae04fd960e0000000000000001000000000000000100000000000000205efe682d733ff9220f6e865648ba8a56c69380880c1b4f659a8bf126240ceeb500000000000000010000000000000000000000000000002081164d64a302850b69a6f61885a59bcff6f1ab23c424b6d2a9d63914f94a1e420000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb00000000000000320000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000100000000000000206529023e928dd0b78b11d7d0e8559ed713e42bf553e69f4325eb7989f0432512000000000000000100000000000000000000000000000020b6196925b467298067e6d585a6d2f53a1eaa4185e4d739d6e1a1f820d9d77ea70000000000000001000000000000000100000000000000202ed3c2ae4ed52c7b0ab3c93636ba4028040eb2b1c82fd72cff7c660f51decd7a00000000000000010000000000000001000000000000002074d0092f6c300f43760e0459a111c8fd56d2fe92366d550b7a221827dc9ed2dc000000000000000100000000000000000000000000000020cff6591dfe8cb9d421049bf180fabeb267dc54e2b75083b1c94c48eeb9a2fbe9000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000003200000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000010000000000000020a6e547555b040b46536cc6668aca9d615424f59f7bc3ea1e4ba10bd308d6a1c2000000000000000100000000000000000000000000000020eec1438672d20fdc1bd7769a784bc640049727a10deebb878cd61b177be9bba3000000000000000100000000000000010000000000000020ff8df1196c7b3e0066145e192be0b21aa8cfb416c709da99c945ed85ddf8a80a000000000000000100000000000000010000000000000020b2b1f9a9da970f658f42768224e216c42e11acbca318b0a65a9fd00cb5e0c9980000000000000001000000000000000000000000000000208af78be0e621a70f818b523c1d4675b967f8ca602f0292dfbd3b6cb3b77c3830000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a00000000000000340000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020353923cb446bd5d538f5a935fecea5ee5c5ac14750aa609ff64d5b43ce7bfb2500000000000000010000000000000001000000000000002019594bf3fa8c4ace4d35341a4d29a3224bf349b4111630660fbc89ec6aac104c000000000000000100000000000000000000000000000020f4d1e64380a2c05ab0dc64ea31b5e288a4325921fa907811ded50419cc51d1ad00000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000340000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000010000000000000020affeddca3df2b272b2e647192e95bd7c2dbdf6f0c23bb033bf2e0a041566674c0000000000000001000000000000000100000000000000205851ef1a3e9089d762aaaa41527ce6ccaa1cc487cfbdc69b6ae91ce884951efe000000000000000100000000000000000000000000000020a3b4187c6753dc9ef8e78915ad0d5a86516efe76949a7e97bde2b7c7f7ced146000000000000000100000000000000010000000000000020683add9032495c3da8b6bd81434dde36b862a0aa24bfc4921623d38f6d42ce9e0000000000000001000000000000000000000000000000204784f6834025b9259cfebec8cffeb00373b1af30dde25a8e3b68097f0573e1f4000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf355400000000000000340000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a8800000000000000060000000000000001000000000000000100000000000000205d2689c695f37f994edfaf0f9717d8cc92ccb2de3b3be54f0fea298e54877283000000000000000100000000000000010000000000000020f067a02c6cb6b079175645ae3fe835d9670717008ec0922321733d6d62f37ad7000000000000000100000000000000000000000000000020cc57c137940830e48f40c451bdc74b12071485f1ad6ffba3e2ab01a9c482cb080000000000000001000000000000000100000000000000205efe682d733ff9220f6e865648ba8a56c69380880c1b4f659a8bf126240ceeb500000000000000010000000000000000000000000000002081164d64a302850b69a6f61885a59bcff6f1ab23c424b6d2a9d63914f94a1e420000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb00000000000000340000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000100000000000000202d3e62b11329a7daaf87113878bcf94884194ba2781e8eb9ea48cbb2292d3d0e00000000000000010000000000000001000000000000002016289abae28ceaed5d88261580fcedae2b4385b1f99d14694ef2f72ae723f22700000000000000010000000000000000000000000000002058034b10ba7cfc2c36a16ab5d61a39a246370d0f4b9ad70756884cc55b6f8d0900000000000000010000000000000001000000000000002074d0092f6c300f43760e0459a111c8fd56d2fe92366d550b7a221827dc9ed2dc000000000000000100000000000000000000000000000020cff6591dfe8cb9d421049bf180fabeb267dc54e2b75083b1c94c48eeb9a2fbe9000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000003400000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000010000000000000020568472c562294390ba5f881e5e609b00bae144bc88764887bb0225dc4b7bbe7e00000000000000010000000000000001000000000000002020ee8a221207fcc24216af3bebc8f30d1c896b52af2c6c9df0595bcebc2a66ef00000000000000010000000000000000000000000000002060eff9ce86435865bbc177c269e76fb0f849d4a5a9c70083537cf0ad9059f438000000000000000100000000000000010000000000000020b2b1f9a9da970f658f42768224e216c42e11acbca318b0a65a9fd00cb5e0c9980000000000000001000000000000000000000000000000208af78be0e621a70f818b523c1d4675b967f8ca602f0292dfbd3b6cb3b77c3830000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a00000000000000130000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000000000000000000002090b33c873032a5ec45b5f67351f43f1b225ffd1fb110a4b7260789aee51a15d00000000000000001000000000000000000000000000000200314646f9ee1f2da5ba523b66c95aea6a8139895748d499e7ea045d702e5076c000000000000000100000000000000010000000000000020931fc0f60710e5550ab975b9da43260c532daa1aa0981b844a267625739ffb1b000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000130000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a300000000000000060000000000000001000000000000000000000000000000208fefbdf6bbdd5508379a951a4f6822dbd2752df889c9df7867fdf8b02506f53300000000000000010000000000000000000000000000002092e68ec7e5cc159082ac481d721bf0a0829e4101d1807dc64816786699f1cb0d000000000000000100000000000000010000000000000020adf3ffd60907628b5c70ec26cde5cd9f556ee72ae07b0f7cd7f4c79241a547fa000000000000000100000000000000010000000000000020fd279d1406b4d83c0a17f7b257f972ea35ed0ca71fef42b15831ef20a873d2060000000000000001000000000000000000000000000000201a981d9e84479953754937a102c43e70395029db74bfc2fab12b49c5843d9e430000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e00000000000000130000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a88000000000000000600000000000000010000000000000000000000000000002020f05b049cbf065398b2472c8abd2a21941ee3facd9af31ad311239470ed997c00000000000000010000000000000000000000000000002079101df1ccb9d74ba98c04ced8841498a9aff0603275bc75d7aed57c7c674cc90000000000000001000000000000000100000000000000201470f67d775bab56b2e085069a4ce68f9ba61671c5539e78d0ec46b09b7d187b000000000000000100000000000000010000000000000020a11b098ffdb0fd764d32c6c94f850ae43c76bdac4f696dfb63d217ca7ca3565b000000000000000100000000000000000000000000000020d93b16ca33c69462349cdf25972305037f4521a14049e5a3a75b32e9bee8ab86000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f00000000000000130000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e0000000000000006000000000000000100000000000000000000000000000020fd734886c7fe675fef5a13d63286dea396a2454ba5bc78e29cb95ad3f426cf1d00000000000000010000000000000000000000000000002099a1d687dcd83e924e557e9cdd9862f2914353a09ec8c420e10979d8267f5ea600000000000000010000000000000001000000000000002084e8363bb4ee641b5c08788fa89837d07d24e51e2008962c2cad0fe06853468400000000000000010000000000000001000000000000002067c75ae00e580df332b6c9eb358990101505a1fcfad9143ca32a4fa708c2dd6a0000000000000001000000000000000000000000000000209eb7ba4269788b7b97d4252aa2205ef7ba6c9ab3e416ab745d4640aff201076a000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000001300000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce000000000000000600000000000000010000000000000000000000000000002043b5b2f21fcf90bbd446ac9fa68bd0a54dd191687852806bc3026356a2348a8c0000000000000001000000000000000000000000000000201c16c0332a22c65ac40e14f079ec5b62bb6a9f77ec50114b829dd34d33ad4997000000000000000100000000000000010000000000000020b36bd36a5f34c20ca416ac2e412e7d9f186d653afb0d5da1f9b39a8dd833f3280000000000000001000000000000000100000000000000209a71d9e1dce988e719e83d71d00c9525487a282b50022cc6154fc960fd2355f00000000000000001000000000000000000000000000000204e59b970588c516635072f9eb5ffd6017c806bd61413f1d8d7108febcebe4793000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f00000000000000360000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020c3a4db706c3c3b07e0984d10824acb5797a59a8b4d40d709cfa0452e6ee0f23400000000000000010000000000000000000000000000002015ad821dcbca21c0f24f28f58131f9ab7767c0d6fbf621d34a2c84ab7b24c75e000000000000000100000000000000000000000000000020f4d1e64380a2c05ab0dc64ea31b5e288a4325921fa907811ded50419cc51d1ad00000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000360000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000010000000000000020f633ed75184d4a7e757e8c2a25212067732a2af11f6ba2ddc33ed719ebaf044e000000000000000100000000000000000000000000000020f1e2b6347ac2739a9b466267fbd2550305432721d16af954e722390ced51f508000000000000000100000000000000000000000000000020a3b4187c6753dc9ef8e78915ad0d5a86516efe76949a7e97bde2b7c7f7ced146000000000000000100000000000000010000000000000020683add9032495c3da8b6bd81434dde36b862a0aa24bfc4921623d38f6d42ce9e0000000000000001000000000000000000000000000000204784f6834025b9259cfebec8cffeb00373b1af30dde25a8e3b68097f0573e1f4000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf355400000000000000360000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000010000000000000020f406c28d6ab2004ecc82788f7e58b86e0f4e803c0038d67c292fdc0c28d5c5ef000000000000000100000000000000000000000000000020ed27bfab2e7f35c0e874f1cea2ac0d0e57387c04f2dcec17c69645f45c45dc61000000000000000100000000000000000000000000000020cc57c137940830e48f40c451bdc74b12071485f1ad6ffba3e2ab01a9c482cb080000000000000001000000000000000100000000000000205efe682d733ff9220f6e865648ba8a56c69380880c1b4f659a8bf126240ceeb500000000000000010000000000000000000000000000002081164d64a302850b69a6f61885a59bcff6f1ab23c424b6d2a9d63914f94a1e420000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb00000000000000360000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000100000000000000208fb7545027f7d19fcd4da696a6bf239fc744defe5b382690b579a98b1dad5be100000000000000010000000000000000000000000000002071d15c01a1238d45abb8e3144cfa8f392b83afd290d498bf6719cd6131e12f2b00000000000000010000000000000000000000000000002058034b10ba7cfc2c36a16ab5d61a39a246370d0f4b9ad70756884cc55b6f8d0900000000000000010000000000000001000000000000002074d0092f6c300f43760e0459a111c8fd56d2fe92366d550b7a221827dc9ed2dc000000000000000100000000000000000000000000000020cff6591dfe8cb9d421049bf180fabeb267dc54e2b75083b1c94c48eeb9a2fbe9000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000003600000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000010000000000000020fba6d08c6ba7f143746d8ae4460a07bfce7ab4306b15d53e3d4b6892ec8c1c68000000000000000100000000000000000000000000000020a83ed7937cc008c4f5c47eab905b2c4437bdd9fb5bf17fbfc689d4d4a802e0b900000000000000010000000000000000000000000000002060eff9ce86435865bbc177c269e76fb0f849d4a5a9c70083537cf0ad9059f438000000000000000100000000000000010000000000000020b2b1f9a9da970f658f42768224e216c42e11acbca318b0a65a9fd00cb5e0c9980000000000000001000000000000000000000000000000208af78be0e621a70f818b523c1d4675b967f8ca602f0292dfbd3b6cb3b77c3830000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a000000000000000c0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020c85af4484a55018f037779039e4af40967235a50df4e34940d889e279e7db7d800000000000000010000000000000001000000000000002057d79dbf8ed8b8aa3585c69adf87ef75ce64bdf75ac79a37fcbc979ba37b0a3e000000000000000100000000000000000000000000000020e4531c0cf3964a849077d3f66aca1c780770dbd36f02f9e591cac1251871b88a0000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000000c0000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a3000000000000000600000000000000010000000000000001000000000000002032179107c4274f4ec0d6cbe96888a0b1a5ab53209313f02026a4aef4d63193f4000000000000000100000000000000010000000000000020920dd15da9fce8803a46e117f3bde4385758fa2c44ba27dbc3937f8baf01861c000000000000000100000000000000000000000000000020eca4f5bb23e627e638206c61a58db0cd43d08147488056042781720921e9368d0000000000000001000000000000000000000000000000207f33eb1404cd0d875f2a95096d3541a8c1bb93415e8452ab893bd3cc530fea91000000000000000100000000000000010000000000000020f674d9bdc01a18975efa6d78c277539fb49e84aa12b432ce63398cf89654de330000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e000000000000000c0000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000010000000000000020cebc9d6286447d78ddfc4d06c49cad9ee7723c40cce7b6e889a8c75678258958000000000000000100000000000000010000000000000020051696269ac35a890ff7e9e4bbb7d8699dd1f163f8b92e31bd7f9bb9a3d3711d0000000000000001000000000000000000000000000000208f58a05abc7469791260ad32f6254652370e83827c5f4899db30373c5fb349d7000000000000000100000000000000000000000000000020556b729f832f5d5ffb8c80a2e7f2028be68aa00b113f1182ccd5b7dd03cf096b000000000000000100000000000000010000000000000020e40cceacfe78cff9600b2e46e186ce0d04d352b2cebea854211cefeeb27f1594000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f000000000000000c0000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e000000000000000600000000000000010000000000000001000000000000002053101ebab11456a84accc264e99f6549d47419328dd9accd1a4336999b8d67c4000000000000000100000000000000010000000000000020ad6eb4d9af43f66533a5dd28066af159e6b7b570e5aa940df86b2188b353fe2d000000000000000100000000000000000000000000000020d0607adac9be75983ca414c106315aeb1e834536c7c95a91f7097ab7a15cc628000000000000000100000000000000000000000000000020e7b0a01e52a73870d50a26535d8010fbace9e15d9f75bc0eba0ae2c00cbc16bb000000000000000100000000000000010000000000000020a1510c0b06e39f12e300709d413f8d80016cf37775e3d9332cf787ff7cb437e5000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000000c00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce00000000000000060000000000000001000000000000000100000000000000207baf1b28e4429150a7d90808e1060920ee9970bd3dcf0f0c3024670c864c5e480000000000000001000000000000000100000000000000208750516438595b9df11acf617be3bd72dd21c1520fb6bcd4661e9e216369528100000000000000010000000000000000000000000000002047c75ff74c1b8e081c36a6caeccb645ba7fa9feeee2d24f32be3641c6d42ac55000000000000000100000000000000000000000000000020142099038968e9066c8b40ca01903ceeb912fb3a306618ef9c7c457deb8c2893000000000000000100000000000000010000000000000020869859afc4e5681a25a5915521c2a426157dff8e26309759aca12cb8232c3452000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f000000000000001b0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020c26d26b74acdd23d9b0155fbf8a8563a59c86a826119cd98d5e72857ecef75c00000000000000001000000000000000000000000000000208cdaf05b84ace4e1b630d731222e016e66fbb851f5088ed3b8479b35f2e863df000000000000000100000000000000010000000000000020087a599f409cb7bacc0662f1cbc4762c6f1a1276b1ec901eff46c07ae65a8c6900000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001b0000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000000000000000000020be2ce71510689cec8c1bfbd417ef2733a1ccea07200e6785e4bff8e91c15f2e80000000000000001000000000000000000000000000000208140f72e890683cb0c86fb877ded36f4581aa354be3f8c83c99cdf487616e223000000000000000100000000000000010000000000000020d5f571e96d09d56c95ef3b63617cb7cee704c9452fc2678d7d203894421831080000000000000001000000000000000000000000000000201a65e1cc35663dd11d7c5292a59632955075838a0e28f828ed0f1b9b6ab71d9a0000000000000001000000000000000000000000000000201a981d9e84479953754937a102c43e70395029db74bfc2fab12b49c5843d9e430000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e000000000000001b0000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a88000000000000000600000000000000010000000000000000000000000000002042187ca44d24d43efd1dd619f90aef9a61178f853e0f6d77b5e0ab4744814e2a0000000000000001000000000000000000000000000000205d0f50bf7175a98da247397af17cc975263baf8610471446956ab2cc098fb962000000000000000100000000000000010000000000000020fc3ecba6f88a03bd0fd0081ef31474e57c5e048a180b0f85a74f120f987b913e000000000000000100000000000000000000000000000020985c653902cfbc26788a0a66a2ca25303ad6ea2c2dce45d07ccb47361456c58a000000000000000100000000000000000000000000000020d93b16ca33c69462349cdf25972305037f4521a14049e5a3a75b32e9bee8ab86000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f000000000000001b0000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000000000000000000205c97271f82b2d21afc4a4df7bb146c200a5e0ea96bca962c92854d5335ffe6e300000000000000010000000000000000000000000000002053850efa1e113a85767b04b049dcd9b2edfb79f7593c8cf90eb4201d4d120f1e0000000000000001000000000000000100000000000000204cc2265dd408d41a199f389594a4d4a755b0b092e6d7724a02ea1a784d18ed7b000000000000000100000000000000000000000000000020b9f8380e2fe3e057f633ea7d58642469bf1143bc7afd2f6ab6cdfafe1a969e7e0000000000000001000000000000000000000000000000209eb7ba4269788b7b97d4252aa2205ef7ba6c9ab3e416ab745d4640aff201076a000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000001b00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000000000000000000020f7975317e94d2c310349fe97d7e016b158908ee2c379940c28507f5badf18e810000000000000001000000000000000000000000000000205661635468d204fececbb4edd8c70496c972c64f65793287d79c677f971f92d90000000000000001000000000000000100000000000000204d013d6b7368c0727be310b46a9ccff9f35de639469cd026aca3e818f732ab2b0000000000000001000000000000000000000000000000209ffe2f8254f8dfda50ac81447c6e6970a53d6f72fc2e89d44cf63d609b971c480000000000000001000000000000000000000000000000204e59b970588c516635072f9eb5ffd6017c806bd61413f1d8d7108febcebe4793000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f00000000000000220000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000001000000000000002090f64acbc54d1d7de04bcf60062085279e19def76c0e94668cecf8b2cff15dc9000000000000000100000000000000000000000000000020c1d918bfc6a90fe225a1ed5b38fd5f39628d83f18dd4387d4b4ab6a9b10e1767000000000000000100000000000000010000000000000020cd2cd9ad2c779aa3995be1014c80f94a5247dc5109218180e006fbbe588ce2d800000000000000010000000000000001000000000000002020ca2ebe06b78b863c42ebd67e820162645990710fb2212c31964405270d49be00000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000220000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a3000000000000000600000000000000010000000000000001000000000000002023911cd36cc324d6dd3f3600002485510e9459d75c2db59d3f6f8097b5992f1c000000000000000100000000000000000000000000000020b28153801013196bd96b679ce004e87328412d2c1b68fbb397623153ba92b00c000000000000000100000000000000010000000000000020ede4e4a41f57152c1b750b24e01ae1649edd1315aacb244e657b56b14ef5784500000000000000010000000000000001000000000000002084f6816c02225d43d59199a238dfb4de2537f60a1e92977e098360d4e3fe72aa0000000000000001000000000000000100000000000000206075e3c137d83b1533f8eb7c9350d8bc540f7c17d14f427c4b1f1569724c9c9f000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf355400000000000000220000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000010000000000000020f164d054a710ef5c86c64bbb57349a810a7cf053932a961c69f55344408c0a130000000000000001000000000000000000000000000000200433e592e28a119e5b8bcf88433f9638c9d7655d1b38a2df3dd6584985eb6fee0000000000000001000000000000000100000000000000200a5ed1534b408d22e4f598a473d5b7875766c8c8687fb39a562eb89d14ac0b4f0000000000000001000000000000000100000000000000203f6b840cb4e34f4994155017551b931865ea5dd10d97abe75bdaafa1666c7a760000000000000001000000000000000100000000000000209898665151c8643d367f337a0c2eeb715a6080b039ae6b00481ab48b488fc8c90000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb00000000000000220000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e0000000000000006000000000000000100000000000000010000000000000020af1a900edbe568b7c2d6035cfae44fd9b755bc41323506ad656231f9874e9659000000000000000100000000000000000000000000000020a4f3cdabba2f622c0f912079bd0988ab23bf4e9d6373da9e47b525620fb4808600000000000000010000000000000001000000000000002029a8f62e5422d6a87bc74324fdb5ac7332c76491a347800bfeea38626c4a65d7000000000000000100000000000000010000000000000020022b96b4353242652890aa9b4993fda2fafc708e471032a9d08ff3e693f7a2a2000000000000000100000000000000010000000000000020ab56a12205d0c8e0e402ade0769ddecf9b594f3d7db8254cb25540877c795f65000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000002200000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce000000000000000600000000000000010000000000000001000000000000002065eb854307daaf6b02c37ca1ba297bd5232c3915a707fe7bd81128ff77abc5b40000000000000001000000000000000000000000000000203f200d4b792fdd32bd627938a54f099f1362695255c57f92521a15271fa525170000000000000001000000000000000100000000000000209d0dc70f3a29ca2f1879d82cf2d5fec098f7f63d5a7d29e5de4662d37138c939000000000000000100000000000000010000000000000020fa894684c31f8ecca74861c3e4a7964b8259cd8308005ad94691eed570d75a0f0000000000000001000000000000000100000000000000206ee562063ccf55f6adc30345f7d34f6c30fba9f1634f24a99a4c5c6e7e6de3b5000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a00000000000000070000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020c999afc4670b92c57b5bdc1307bc519e96e3f6ce67a073eed8ce5ef11f19e6e90000000000000001000000000000000000000000000000209f204347ecc49a4dd4d3f69e4b19d6830b85a828d152c59461d5362f5cb21db2000000000000000100000000000000000000000000000020e2c28e037d30a9b1cafa16794e336898558e512395cfcbdeb25f5f9c08dba0820000000000000001000000000000000100000000000000209dc48d41a2d4c25b90ae286b21502aabe4177429574808eac78aed0ba9b970ba00000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000070000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a300000000000000060000000000000001000000000000000000000000000000204e745a7f779270e6894ba71f5e3a5a56211b2d293c0f40a26e2f007925260f11000000000000000100000000000000000000000000000020949e8e9614f6615c8c2617c2f7d140face217b1d5bfe579ca5d9109158f2fa3500000000000000010000000000000000000000000000002037e321427dc8a93667d9e53d72f976e66ef694ed439402c8b04bd59a2a16a558000000000000000100000000000000010000000000000020f8bc11deec21302e1f51f9e237aedb8aa5251d7676c7f5048dedcd657f7133fc000000000000000100000000000000010000000000000020f674d9bdc01a18975efa6d78c277539fb49e84aa12b432ce63398cf89654de330000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e00000000000000070000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a8800000000000000060000000000000001000000000000000000000000000000205e03f553959bb05256244e73e9730deff8927eeb63f0e64792167d2c259308870000000000000001000000000000000000000000000000208a4d1972a6bd65d5d8f6e1393c9f68e739c53ec5523929eb403b0aa0b2b19c260000000000000001000000000000000000000000000000200fe8624bf18d0bf250ca0d738d3ae9b69eae414c22fee76dbcd19d27aafb18320000000000000001000000000000000100000000000000201e5d518201338ae65645a43790fcc881148a862ced5662dd2f3d4fa272096c30000000000000000100000000000000010000000000000020e40cceacfe78cff9600b2e46e186ce0d04d352b2cebea854211cefeeb27f1594000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f00000000000000070000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e000000000000000600000000000000010000000000000000000000000000002084b22fc994b1bee9ee8d99bae4b1284e3e7eef003cd4225fc0a27e7f7345698300000000000000010000000000000000000000000000002039017d704a888f94a2cca8b000038adfbb055630466203aaf554bcd4191908840000000000000001000000000000000000000000000000201b90e90c86f1056ea0a09f49027a3005a07ddfc1081f399df53cdfd1cbd242800000000000000001000000000000000100000000000000201e0e5ee3509d87c942d6eecc539d80cd51775918b908b745d7ab410f52b8a562000000000000000100000000000000010000000000000020a1510c0b06e39f12e300709d413f8d80016cf37775e3d9332cf787ff7cb437e5000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000000700000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce00000000000000060000000000000001000000000000000000000000000000205db0b9adb3c47a913f223a349c08b04cc257439c5abea7244e0d6d916ced9ed4000000000000000100000000000000000000000000000020cb3552556af6556ca3960bd871b9ebef1eb6e11926d52e72f98049db1dbf82490000000000000001000000000000000000000000000000205d6f40bbd0dcdbf87dd934c270f43c6d6bc47105677bd050547cd995af6f48f3000000000000000100000000000000010000000000000020be6d505b52ce59b71864d77730ffeb8628fe75575331c760db510ad311a24443000000000000000100000000000000010000000000000020869859afc4e5681a25a5915521c2a426157dff8e26309759aca12cb8232c3452000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f000000000000001a0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020867f4e7838d3464819f68d32891adc5d0d944835deee9dfab0413a6187f910fc0000000000000001000000000000000000000000000000208cdaf05b84ace4e1b630d731222e016e66fbb851f5088ed3b8479b35f2e863df000000000000000100000000000000010000000000000020087a599f409cb7bacc0662f1cbc4762c6f1a1276b1ec901eff46c07ae65a8c6900000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001a0000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000010000000000000020e5ecb7820c1559658e07aa1dfdaecc4ff7c4d98cc1f131c33d23209c08d147830000000000000001000000000000000000000000000000208140f72e890683cb0c86fb877ded36f4581aa354be3f8c83c99cdf487616e223000000000000000100000000000000010000000000000020d5f571e96d09d56c95ef3b63617cb7cee704c9452fc2678d7d203894421831080000000000000001000000000000000000000000000000201a65e1cc35663dd11d7c5292a59632955075838a0e28f828ed0f1b9b6ab71d9a0000000000000001000000000000000000000000000000201a981d9e84479953754937a102c43e70395029db74bfc2fab12b49c5843d9e430000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e000000000000001a0000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a8800000000000000060000000000000001000000000000000100000000000000209e06882b623b6943341a694086619a2fd57ffb9268685d9270f1c231cf6509ab0000000000000001000000000000000000000000000000205d0f50bf7175a98da247397af17cc975263baf8610471446956ab2cc098fb962000000000000000100000000000000010000000000000020fc3ecba6f88a03bd0fd0081ef31474e57c5e048a180b0f85a74f120f987b913e000000000000000100000000000000000000000000000020985c653902cfbc26788a0a66a2ca25303ad6ea2c2dce45d07ccb47361456c58a000000000000000100000000000000000000000000000020d93b16ca33c69462349cdf25972305037f4521a14049e5a3a75b32e9bee8ab86000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f000000000000001a0000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e0000000000000006000000000000000100000000000000010000000000000020688d94c978c01533c571c99c0eadc6d6449ac9d21c6f1d6226a57898600d1f7e00000000000000010000000000000000000000000000002053850efa1e113a85767b04b049dcd9b2edfb79f7593c8cf90eb4201d4d120f1e0000000000000001000000000000000100000000000000204cc2265dd408d41a199f389594a4d4a755b0b092e6d7724a02ea1a784d18ed7b000000000000000100000000000000000000000000000020b9f8380e2fe3e057f633ea7d58642469bf1143bc7afd2f6ab6cdfafe1a969e7e0000000000000001000000000000000000000000000000209eb7ba4269788b7b97d4252aa2205ef7ba6c9ab3e416ab745d4640aff201076a000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000001a00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce00000000000000060000000000000001000000000000000100000000000000204e77550bd03ecae860c98e4d792432503504a4d7885bb20ee7add50e5a41486a0000000000000001000000000000000000000000000000205661635468d204fececbb4edd8c70496c972c64f65793287d79c677f971f92d90000000000000001000000000000000100000000000000204d013d6b7368c0727be310b46a9ccff9f35de639469cd026aca3e818f732ab2b0000000000000001000000000000000000000000000000209ffe2f8254f8dfda50ac81447c6e6970a53d6f72fc2e89d44cf63d609b971c480000000000000001000000000000000000000000000000204e59b970588c516635072f9eb5ffd6017c806bd61413f1d8d7108febcebe4793000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f00000000000000330000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020729f9a4842e47471ec9eb0fc15695f30feec4440cdeba085eca4d8ffa6fca96500000000000000010000000000000000000000000000002020357880fc8e6dd74df46742da252f118fdb87961923030914ba2e8adf16cb52000000000000000100000000000000010000000000000020d668a432d047c9e275f7c7d20e0a761a44ce7e63d76a8974123279ebd303ad5300000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000330000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000000000000000000020383f1d4f95171de62ba07c6291d291093906c3e2ec647216ab16b758d92cb56c000000000000000100000000000000000000000000000020f1317bfb982fb0c9bc2679aa653b3c5bf4e8fed7ab02435967a00c65b4407787000000000000000100000000000000010000000000000020896a9feb27176097287962314c1d6a9ab80a44327e072493d27b9a4b8e2303b0000000000000000100000000000000010000000000000020683add9032495c3da8b6bd81434dde36b862a0aa24bfc4921623d38f6d42ce9e0000000000000001000000000000000000000000000000204784f6834025b9259cfebec8cffeb00373b1af30dde25a8e3b68097f0573e1f4000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf355400000000000000330000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000000000000000000020223330c07050f7c309ebb135423dbdff813e4eb8e485f556b4d5b9d561f2225a0000000000000001000000000000000000000000000000201b0f060eabc242fefd82c2636d58a4214fceb77d5abe8bd6cc40a752b911a490000000000000000100000000000000010000000000000020962eb8f3bc8178022d18678330a12f6cf8cf744e7f7485fab75396ae04fd960e0000000000000001000000000000000100000000000000205efe682d733ff9220f6e865648ba8a56c69380880c1b4f659a8bf126240ceeb500000000000000010000000000000000000000000000002081164d64a302850b69a6f61885a59bcff6f1ab23c424b6d2a9d63914f94a1e420000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb00000000000000330000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000000000000000000204ff478e39d6d772e9c1aa2117a50c25700deffc58174bb52779c2bdde5ce722c000000000000000100000000000000000000000000000020b6196925b467298067e6d585a6d2f53a1eaa4185e4d739d6e1a1f820d9d77ea70000000000000001000000000000000100000000000000202ed3c2ae4ed52c7b0ab3c93636ba4028040eb2b1c82fd72cff7c660f51decd7a00000000000000010000000000000001000000000000002074d0092f6c300f43760e0459a111c8fd56d2fe92366d550b7a221827dc9ed2dc000000000000000100000000000000000000000000000020cff6591dfe8cb9d421049bf180fabeb267dc54e2b75083b1c94c48eeb9a2fbe9000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000003300000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce00000000000000060000000000000001000000000000000000000000000000207bdd63e3046b9bc16def1625c86497e3036645380ef6d957308782f92386b0bc000000000000000100000000000000000000000000000020eec1438672d20fdc1bd7769a784bc640049727a10deebb878cd61b177be9bba3000000000000000100000000000000010000000000000020ff8df1196c7b3e0066145e192be0b21aa8cfb416c709da99c945ed85ddf8a80a000000000000000100000000000000010000000000000020b2b1f9a9da970f658f42768224e216c42e11acbca318b0a65a9fd00cb5e0c9980000000000000001000000000000000000000000000000208af78be0e621a70f818b523c1d4675b967f8ca602f0292dfbd3b6cb3b77c3830000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a00000000000000370000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000204a103b4fc3a3b9a902c447394074f9393b9a8d0b2c9623792908b8ca3f90ba5f00000000000000010000000000000000000000000000002015ad821dcbca21c0f24f28f58131f9ab7767c0d6fbf621d34a2c84ab7b24c75e000000000000000100000000000000000000000000000020f4d1e64380a2c05ab0dc64ea31b5e288a4325921fa907811ded50419cc51d1ad00000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000370000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000000000000000000020409b33e23bccea2ebaa2a862cf0d4f810b1112bde7b18e21bc791aea126bc64d000000000000000100000000000000000000000000000020f1e2b6347ac2739a9b466267fbd2550305432721d16af954e722390ced51f508000000000000000100000000000000000000000000000020a3b4187c6753dc9ef8e78915ad0d5a86516efe76949a7e97bde2b7c7f7ced146000000000000000100000000000000010000000000000020683add9032495c3da8b6bd81434dde36b862a0aa24bfc4921623d38f6d42ce9e0000000000000001000000000000000000000000000000204784f6834025b9259cfebec8cffeb00373b1af30dde25a8e3b68097f0573e1f4000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf355400000000000000370000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a8800000000000000060000000000000001000000000000000000000000000000201b2d925cf3e0fa70e61f75f6c1aa1db5391f88486b43113416f067f1f58e2d24000000000000000100000000000000000000000000000020ed27bfab2e7f35c0e874f1cea2ac0d0e57387c04f2dcec17c69645f45c45dc61000000000000000100000000000000000000000000000020cc57c137940830e48f40c451bdc74b12071485f1ad6ffba3e2ab01a9c482cb080000000000000001000000000000000100000000000000205efe682d733ff9220f6e865648ba8a56c69380880c1b4f659a8bf126240ceeb500000000000000010000000000000000000000000000002081164d64a302850b69a6f61885a59bcff6f1ab23c424b6d2a9d63914f94a1e420000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb00000000000000370000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e0000000000000006000000000000000100000000000000000000000000000020da7cad3e904b31225c80fe4f0a7324dba57e74e56d7f87513342bdc25d5fdb8700000000000000010000000000000000000000000000002071d15c01a1238d45abb8e3144cfa8f392b83afd290d498bf6719cd6131e12f2b00000000000000010000000000000000000000000000002058034b10ba7cfc2c36a16ab5d61a39a246370d0f4b9ad70756884cc55b6f8d0900000000000000010000000000000001000000000000002074d0092f6c300f43760e0459a111c8fd56d2fe92366d550b7a221827dc9ed2dc000000000000000100000000000000000000000000000020cff6591dfe8cb9d421049bf180fabeb267dc54e2b75083b1c94c48eeb9a2fbe9000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000003700000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000000000000000000020b7b5adf5d8740395c6792663e1d9843916399a5314eb421cad37205cd5bd4961000000000000000100000000000000000000000000000020a83ed7937cc008c4f5c47eab905b2c4437bdd9fb5bf17fbfc689d4d4a802e0b900000000000000010000000000000000000000000000002060eff9ce86435865bbc177c269e76fb0f849d4a5a9c70083537cf0ad9059f438000000000000000100000000000000010000000000000020b2b1f9a9da970f658f42768224e216c42e11acbca318b0a65a9fd00cb5e0c9980000000000000001000000000000000000000000000000208af78be0e621a70f818b523c1d4675b967f8ca602f0292dfbd3b6cb3b77c3830000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a00000000000000390000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020c5bfbba30acd27adf9049b86e741c9aed9f0aa634f4c011c25fe4d6bc0e6e2ec00000000000000010000000000000001000000000000002092254bddc93af51db85c84258645a7368b11c67713d9b7edb7798f818a67b7d100000000000000010000000000000001000000000000002013cba62cb82888bb083b50937d466b49f9391c00299bd77abb46de4352465093000000000000000100000000000000000000000000000020a3c68cdf76781d19db7aa603f4cd91ea38edfc0b5126585e0c4cc27eb1121e50000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000390000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a3000000000000000600000000000000010000000000000000000000000000002003e7ebf935872d865aa222634bb9d9453f00a5f04dc9505bd0066f5e43c8a76b000000000000000100000000000000010000000000000020635807ed33baab6f198f635e7bde04f28bdf05155f98b23d273079a5ed07af51000000000000000100000000000000010000000000000020294a02d54abb3df02e3246385cc62ff7ce7229b010690ce8690c31f967c45b48000000000000000100000000000000000000000000000020c8d8760ce542c5a702bcabcb4fef6e52d4233083d54c3cc37568102e3f21b0ec0000000000000001000000000000000000000000000000204784f6834025b9259cfebec8cffeb00373b1af30dde25a8e3b68097f0573e1f4000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf355400000000000000390000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000000000000000000020e275636da75455cffb8f8f077fe80d5602e801eef6cc32598e1fda05bb1f6183000000000000000100000000000000010000000000000020d650faeed357d70ab1be131df066d705ed2f678c29cd43c2fca665cb823c2609000000000000000100000000000000010000000000000020a699562990c3412fc55d466a3e6d9bcf5a7122ba4c59059e9715120d545c05d400000000000000010000000000000000000000000000002021d1315b8b30976711b2a1eb7d34dc8b98eb6fcd1048d35af300a0e1afc757f600000000000000010000000000000000000000000000002081164d64a302850b69a6f61885a59bcff6f1ab23c424b6d2a9d63914f94a1e420000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb00000000000000390000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e000000000000000600000000000000010000000000000000000000000000002093e4d920dd654a8bb8f1caa9eba11e41497d977b0ec0ba514b6878d570715e2c000000000000000100000000000000010000000000000020b3f12f78257ad5ac17c62e93d0e044fd1ee7eb9f634f5e185fd055875e73e1c2000000000000000100000000000000010000000000000020ff7f832f632893365f82d73c7d532c6bd3b7716ef7d7e7934d9ed9ee15104724000000000000000100000000000000000000000000000020362c41d2cff677621fedd9b9572a01b4275f6960c9701d92b3b8f403c3843124000000000000000100000000000000000000000000000020cff6591dfe8cb9d421049bf180fabeb267dc54e2b75083b1c94c48eeb9a2fbe9000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000003900000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000000000000000000020f2ace7cdc3ed7ced031127aa77edc01adb5c64928fb8f2964c2f54a11a25e188000000000000000100000000000000010000000000000020c08a3491343dcfc471495cc386a7f3c5ed9f533ed64ef21fe446eb48ffc9d0bc0000000000000001000000000000000100000000000000205bbf6df18c13b21ec0b39c6471ce58786a1bbd3b55eb1c1bcf04b80eb8446ddb000000000000000100000000000000000000000000000020f7c60fc0242ab4dfbc4e7ed03bd9eaacbe7d3b976a9239dc44a6f083d47d210d0000000000000001000000000000000000000000000000208af78be0e621a70f818b523c1d4675b967f8ca602f0292dfbd3b6cb3b77c3830000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a000000000000001e0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000001000000000000002017458b640f162e7d2ffc58f6689da16dfa3d46aee041a56d60baba3307c3c593000000000000000100000000000000000000000000000020a2502a6ae92a724a6e2a3a94ad93bd71bd29b046475706a32afa43f571c551f200000000000000010000000000000000000000000000002070f93532da12d95bd9b02b2acb02b74a3a532fbd8d1ec178ca7acf3e54865fb800000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001e0000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000010000000000000020eab10fd512a9eee7fd22ab459d23447fe8ac1fb115d37a5a541143cc9c6bff95000000000000000100000000000000000000000000000020d6444544150a0ccf2813ded52812edd79d92cc0e892556b473ca9b5f91aaf4850000000000000001000000000000000000000000000000205b277784934640de1faad045f97aa33ead0988f94dacc9c53e4166dbb115452f0000000000000001000000000000000000000000000000201a65e1cc35663dd11d7c5292a59632955075838a0e28f828ed0f1b9b6ab71d9a0000000000000001000000000000000000000000000000201a981d9e84479953754937a102c43e70395029db74bfc2fab12b49c5843d9e430000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e000000000000001e0000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a88000000000000000600000000000000010000000000000001000000000000002058d67016e758348c14ae8cde34351321a39652e068f192a594a821883298a2c80000000000000001000000000000000000000000000000203b6049c6612d3128428341062af3689d686ec3a0b0402eded18d1e0ee13601dc000000000000000100000000000000000000000000000020489d99d4593c9f7d7ef11873a6c49aafdfb74ac5f21eb6af1c6ee02f3ffb8a2f000000000000000100000000000000000000000000000020985c653902cfbc26788a0a66a2ca25303ad6ea2c2dce45d07ccb47361456c58a000000000000000100000000000000000000000000000020d93b16ca33c69462349cdf25972305037f4521a14049e5a3a75b32e9bee8ab86000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f000000000000001e0000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e0000000000000006000000000000000100000000000000010000000000000020cf3dd8265db2856af3792b0cc924af4f4a8cc0163e00cc03502a2d28b9ab9d25000000000000000100000000000000000000000000000020dbab8bc80c8dedcd31d0617c7338b7a018f597b54f13edc0b09277846b60ce45000000000000000100000000000000000000000000000020a807a1722dd073782a8272fa29a97e18cc1fcb02a95519aa71a538bc94a590e3000000000000000100000000000000000000000000000020b9f8380e2fe3e057f633ea7d58642469bf1143bc7afd2f6ab6cdfafe1a969e7e0000000000000001000000000000000000000000000000209eb7ba4269788b7b97d4252aa2205ef7ba6c9ab3e416ab745d4640aff201076a000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000001e00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000010000000000000020ae5df9583918ab7ab2e46d84e28c3064ecc46196053c1c0125a9681fe14661a50000000000000001000000000000000000000000000000207afcba8a668566e03d3eac5880a22d4a50154bb2e81654b6b03f0f808560880200000000000000010000000000000000000000000000002075430e07a240300ae52c953b5ec016f510b635876be55ed1ecf612dffb92990b0000000000000001000000000000000000000000000000209ffe2f8254f8dfda50ac81447c6e6970a53d6f72fc2e89d44cf63d609b971c480000000000000001000000000000000000000000000000204e59b970588c516635072f9eb5ffd6017c806bd61413f1d8d7108febcebe4793000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f00000000000000260000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020da1157aa4780521bd2d6e8115a35057d3a013d07ed28ea65fcf8e215eea3fe3b00000000000000010000000000000000000000000000002065495ff47c8a31364d3c3c58f071d7c1aa52f198d9059056dd041a1f272fa7d1000000000000000100000000000000000000000000000020254ad08d8f651887ccdedd4264cbe8ac8a820f273e7e6a6eec9571b2bee83fed00000000000000010000000000000001000000000000002020ca2ebe06b78b863c42ebd67e820162645990710fb2212c31964405270d49be00000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000260000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a300000000000000060000000000000001000000000000000100000000000000204c8b40f568528024a12cf722e0ebe8da31f018bcb92fabd9c17b58a6b6842253000000000000000100000000000000000000000000000020ff900d648cea7e57d0142eef6e674d673d64c334d467056ff86c298b7ba0cdf3000000000000000100000000000000000000000000000020a5a2158ac2c2f55dab8f0bef5280169b1947b47eaca88ed441304c84a477295200000000000000010000000000000001000000000000002084f6816c02225d43d59199a238dfb4de2537f60a1e92977e098360d4e3fe72aa0000000000000001000000000000000100000000000000206075e3c137d83b1533f8eb7c9350d8bc540f7c17d14f427c4b1f1569724c9c9f000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf355400000000000000260000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a8800000000000000060000000000000001000000000000000100000000000000202b62589c6c53e511437da963343f41f1909332532f89623f9ef8462d28c6dbf5000000000000000100000000000000000000000000000020bdba69fcbdf120daff98d83aa5bda637c253b8ea984253a22771013b9ed67d220000000000000001000000000000000000000000000000207bb16805c0f3922a2f33da1b1ac7b5da3c53e6a3e010bc518d55ad0976dcf6d40000000000000001000000000000000100000000000000203f6b840cb4e34f4994155017551b931865ea5dd10d97abe75bdaafa1666c7a760000000000000001000000000000000100000000000000209898665151c8643d367f337a0c2eeb715a6080b039ae6b00481ab48b488fc8c90000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb00000000000000260000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000100000000000000205206e4d2aef443e771b23ef9265a2e18707fffd7c0ea867057a865ad11b0ef0e0000000000000001000000000000000000000000000000206fe169005acbcc231f0860bed3f036d94f8ace3843901e648095c7be939cf33a000000000000000100000000000000000000000000000020de6dfe1f2ba0824c38609ccf671fad30cb1f4029982d1ec1427c1928e7daa09b000000000000000100000000000000010000000000000020022b96b4353242652890aa9b4993fda2fafc708e471032a9d08ff3e693f7a2a2000000000000000100000000000000010000000000000020ab56a12205d0c8e0e402ade0769ddecf9b594f3d7db8254cb25540877c795f65000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000002600000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000010000000000000020124697830fe08fbe692dcabcb3cb723f1f61ce3879f542932950ba914e8452d1000000000000000100000000000000000000000000000020044465ae5636fbbc6afe51d536148dea4aeda1e8587057660979b8dda2224096000000000000000100000000000000000000000000000020c7f54df89cac219c9ba563352a4e223a2101f825e37b1a0c33f4259a932ded07000000000000000100000000000000010000000000000020fa894684c31f8ecca74861c3e4a7964b8259cd8308005ad94691eed570d75a0f0000000000000001000000000000000100000000000000206ee562063ccf55f6adc30345f7d34f6c30fba9f1634f24a99a4c5c6e7e6de3b5000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a000000000000001a0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020867f4e7838d3464819f68d32891adc5d0d944835deee9dfab0413a6187f910fc0000000000000001000000000000000000000000000000208cdaf05b84ace4e1b630d731222e016e66fbb851f5088ed3b8479b35f2e863df000000000000000100000000000000010000000000000020087a599f409cb7bacc0662f1cbc4762c6f1a1276b1ec901eff46c07ae65a8c6900000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001a0000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000010000000000000020e5ecb7820c1559658e07aa1dfdaecc4ff7c4d98cc1f131c33d23209c08d147830000000000000001000000000000000000000000000000208140f72e890683cb0c86fb877ded36f4581aa354be3f8c83c99cdf487616e223000000000000000100000000000000010000000000000020d5f571e96d09d56c95ef3b63617cb7cee704c9452fc2678d7d203894421831080000000000000001000000000000000000000000000000201a65e1cc35663dd11d7c5292a59632955075838a0e28f828ed0f1b9b6ab71d9a0000000000000001000000000000000000000000000000201a981d9e84479953754937a102c43e70395029db74bfc2fab12b49c5843d9e430000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e000000000000001a0000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a8800000000000000060000000000000001000000000000000100000000000000209e06882b623b6943341a694086619a2fd57ffb9268685d9270f1c231cf6509ab0000000000000001000000000000000000000000000000205d0f50bf7175a98da247397af17cc975263baf8610471446956ab2cc098fb962000000000000000100000000000000010000000000000020fc3ecba6f88a03bd0fd0081ef31474e57c5e048a180b0f85a74f120f987b913e000000000000000100000000000000000000000000000020985c653902cfbc26788a0a66a2ca25303ad6ea2c2dce45d07ccb47361456c58a000000000000000100000000000000000000000000000020d93b16ca33c69462349cdf25972305037f4521a14049e5a3a75b32e9bee8ab86000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f000000000000001a0000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e0000000000000006000000000000000100000000000000010000000000000020688d94c978c01533c571c99c0eadc6d6449ac9d21c6f1d6226a57898600d1f7e00000000000000010000000000000000000000000000002053850efa1e113a85767b04b049dcd9b2edfb79f7593c8cf90eb4201d4d120f1e0000000000000001000000000000000100000000000000204cc2265dd408d41a199f389594a4d4a755b0b092e6d7724a02ea1a784d18ed7b000000000000000100000000000000000000000000000020b9f8380e2fe3e057f633ea7d58642469bf1143bc7afd2f6ab6cdfafe1a969e7e0000000000000001000000000000000000000000000000209eb7ba4269788b7b97d4252aa2205ef7ba6c9ab3e416ab745d4640aff201076a000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000001a00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce00000000000000060000000000000001000000000000000100000000000000204e77550bd03ecae860c98e4d792432503504a4d7885bb20ee7add50e5a41486a0000000000000001000000000000000000000000000000205661635468d204fececbb4edd8c70496c972c64f65793287d79c677f971f92d90000000000000001000000000000000100000000000000204d013d6b7368c0727be310b46a9ccff9f35de639469cd026aca3e818f732ab2b0000000000000001000000000000000000000000000000209ffe2f8254f8dfda50ac81447c6e6970a53d6f72fc2e89d44cf63d609b971c480000000000000001000000000000000000000000000000204e59b970588c516635072f9eb5ffd6017c806bd61413f1d8d7108febcebe4793000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f00000000000000390000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020c5bfbba30acd27adf9049b86e741c9aed9f0aa634f4c011c25fe4d6bc0e6e2ec00000000000000010000000000000001000000000000002092254bddc93af51db85c84258645a7368b11c67713d9b7edb7798f818a67b7d100000000000000010000000000000001000000000000002013cba62cb82888bb083b50937d466b49f9391c00299bd77abb46de4352465093000000000000000100000000000000000000000000000020a3c68cdf76781d19db7aa603f4cd91ea38edfc0b5126585e0c4cc27eb1121e50000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000390000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a3000000000000000600000000000000010000000000000000000000000000002003e7ebf935872d865aa222634bb9d9453f00a5f04dc9505bd0066f5e43c8a76b000000000000000100000000000000010000000000000020635807ed33baab6f198f635e7bde04f28bdf05155f98b23d273079a5ed07af51000000000000000100000000000000010000000000000020294a02d54abb3df02e3246385cc62ff7ce7229b010690ce8690c31f967c45b48000000000000000100000000000000000000000000000020c8d8760ce542c5a702bcabcb4fef6e52d4233083d54c3cc37568102e3f21b0ec0000000000000001000000000000000000000000000000204784f6834025b9259cfebec8cffeb00373b1af30dde25a8e3b68097f0573e1f4000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf355400000000000000390000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000000000000000000020e275636da75455cffb8f8f077fe80d5602e801eef6cc32598e1fda05bb1f6183000000000000000100000000000000010000000000000020d650faeed357d70ab1be131df066d705ed2f678c29cd43c2fca665cb823c2609000000000000000100000000000000010000000000000020a699562990c3412fc55d466a3e6d9bcf5a7122ba4c59059e9715120d545c05d400000000000000010000000000000000000000000000002021d1315b8b30976711b2a1eb7d34dc8b98eb6fcd1048d35af300a0e1afc757f600000000000000010000000000000000000000000000002081164d64a302850b69a6f61885a59bcff6f1ab23c424b6d2a9d63914f94a1e420000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb00000000000000390000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e000000000000000600000000000000010000000000000000000000000000002093e4d920dd654a8bb8f1caa9eba11e41497d977b0ec0ba514b6878d570715e2c000000000000000100000000000000010000000000000020b3f12f78257ad5ac17c62e93d0e044fd1ee7eb9f634f5e185fd055875e73e1c2000000000000000100000000000000010000000000000020ff7f832f632893365f82d73c7d532c6bd3b7716ef7d7e7934d9ed9ee15104724000000000000000100000000000000000000000000000020362c41d2cff677621fedd9b9572a01b4275f6960c9701d92b3b8f403c3843124000000000000000100000000000000000000000000000020cff6591dfe8cb9d421049bf180fabeb267dc54e2b75083b1c94c48eeb9a2fbe9000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000003900000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000000000000000000020f2ace7cdc3ed7ced031127aa77edc01adb5c64928fb8f2964c2f54a11a25e188000000000000000100000000000000010000000000000020c08a3491343dcfc471495cc386a7f3c5ed9f533ed64ef21fe446eb48ffc9d0bc0000000000000001000000000000000100000000000000205bbf6df18c13b21ec0b39c6471ce58786a1bbd3b55eb1c1bcf04b80eb8446ddb000000000000000100000000000000000000000000000020f7c60fc0242ab4dfbc4e7ed03bd9eaacbe7d3b976a9239dc44a6f083d47d210d0000000000000001000000000000000000000000000000208af78be0e621a70f818b523c1d4675b967f8ca602f0292dfbd3b6cb3b77c3830000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a000000000000003f0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020e806c4a23f82fc487b6c081e18e128bb84880b3267559d06a5125a57514d087a00000000000000010000000000000000000000000000002018b1612eb1dad97c59689c51b208232a96f3bc2f7825df0cd725412e93bc97040000000000000001000000000000000000000000000000201d0f1670f4690edbf111d45e385b2241e1ec7c0d7e483f87ab326686bca0511f000000000000000100000000000000000000000000000020a3c68cdf76781d19db7aa603f4cd91ea38edfc0b5126585e0c4cc27eb1121e50000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba3610000000000000003f0000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000000000000000000020f6195394df3d0cd7bc9ea80250ac09fc95c96281aa1d0be11af0ca367bdfc0460000000000000001000000000000000000000000000000200912cbb39f1a61d0bcbaa0fa9c58064c4d88de692b875949644133580c94fc260000000000000001000000000000000000000000000000202c99f0a5aaeafaa469bf962fca310895c5383c7ef34551847537f9de939b90a2000000000000000100000000000000000000000000000020c8d8760ce542c5a702bcabcb4fef6e52d4233083d54c3cc37568102e3f21b0ec0000000000000001000000000000000000000000000000204784f6834025b9259cfebec8cffeb00373b1af30dde25a8e3b68097f0573e1f4000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf3554000000000000003f0000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000000000000000000020c99deb8cef4d6186c8595da87067d33de43d6a20061b7a47d4c871b096d337b30000000000000001000000000000000000000000000000207621cc792aae2305014673075b7ab71f27ef3188bc6e00d20f8d99ad10329adb000000000000000100000000000000000000000000000020c4f4d428247a2232496d269585138e28e792d4b4fbbcf65f6c15f6a6e9af92af00000000000000010000000000000000000000000000002021d1315b8b30976711b2a1eb7d34dc8b98eb6fcd1048d35af300a0e1afc757f600000000000000010000000000000000000000000000002081164d64a302850b69a6f61885a59bcff6f1ab23c424b6d2a9d63914f94a1e420000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb000000000000003f0000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e0000000000000006000000000000000100000000000000000000000000000020e0975f3d38aa788c6f0367e9cd7338e028542719375f75c3268ba30356f3c69d0000000000000001000000000000000000000000000000207c956d809480cdfd537d43ca40ff5d89f2990a84c39fc60ffe2006c0e71b3fd90000000000000001000000000000000000000000000000205b7de88e2c73b367239725a4f8639f3432f8314ee82918960b65846fc7137542000000000000000100000000000000000000000000000020362c41d2cff677621fedd9b9572a01b4275f6960c9701d92b3b8f403c3843124000000000000000100000000000000000000000000000020cff6591dfe8cb9d421049bf180fabeb267dc54e2b75083b1c94c48eeb9a2fbe9000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000003f00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce00000000000000060000000000000001000000000000000000000000000000205a69a4bfbea407f2cb2bb6bb47022d31b56ee769159649d09a5ff53d5394cf5e000000000000000100000000000000000000000000000020f457735f35611cbf719aa6c8555223848dc3e174810d8234d3313fa90b5c3e99000000000000000100000000000000000000000000000020afe999b9e080d307a2333dcbbe090a64228512a5b48458b1f8bc6ddcc863caa9000000000000000100000000000000000000000000000020f7c60fc0242ab4dfbc4e7ed03bd9eaacbe7d3b976a9239dc44a6f083d47d210d0000000000000001000000000000000000000000000000208af78be0e621a70f818b523c1d4675b967f8ca602f0292dfbd3b6cb3b77c3830000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a000000000000003e0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000100000000000000201bcd8849d2cc8843ae0be9cc15927515d0a888ef485e413e5f3179f75a8c006400000000000000010000000000000000000000000000002018b1612eb1dad97c59689c51b208232a96f3bc2f7825df0cd725412e93bc97040000000000000001000000000000000000000000000000201d0f1670f4690edbf111d45e385b2241e1ec7c0d7e483f87ab326686bca0511f000000000000000100000000000000000000000000000020a3c68cdf76781d19db7aa603f4cd91ea38edfc0b5126585e0c4cc27eb1121e50000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba3610000000000000003e0000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000010000000000000020129133941d7af79f4d80f51d8e215e0dcebed368d988e87237ef5ee134e3bd870000000000000001000000000000000000000000000000200912cbb39f1a61d0bcbaa0fa9c58064c4d88de692b875949644133580c94fc260000000000000001000000000000000000000000000000202c99f0a5aaeafaa469bf962fca310895c5383c7ef34551847537f9de939b90a2000000000000000100000000000000000000000000000020c8d8760ce542c5a702bcabcb4fef6e52d4233083d54c3cc37568102e3f21b0ec0000000000000001000000000000000000000000000000204784f6834025b9259cfebec8cffeb00373b1af30dde25a8e3b68097f0573e1f4000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf3554000000000000003e0000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000010000000000000020de04d2769d4377b8d7f7a3168acc3fda9ec016ffcb1e58dda8bb2e6b9dc77fae0000000000000001000000000000000000000000000000207621cc792aae2305014673075b7ab71f27ef3188bc6e00d20f8d99ad10329adb000000000000000100000000000000000000000000000020c4f4d428247a2232496d269585138e28e792d4b4fbbcf65f6c15f6a6e9af92af00000000000000010000000000000000000000000000002021d1315b8b30976711b2a1eb7d34dc8b98eb6fcd1048d35af300a0e1afc757f600000000000000010000000000000000000000000000002081164d64a302850b69a6f61885a59bcff6f1ab23c424b6d2a9d63914f94a1e420000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb000000000000003e0000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e000000000000000600000000000000010000000000000001000000000000002064d728adbfd58262891ce2fd5b46835a808562fe572f0551ebe703eb4836c7d60000000000000001000000000000000000000000000000207c956d809480cdfd537d43ca40ff5d89f2990a84c39fc60ffe2006c0e71b3fd90000000000000001000000000000000000000000000000205b7de88e2c73b367239725a4f8639f3432f8314ee82918960b65846fc7137542000000000000000100000000000000000000000000000020362c41d2cff677621fedd9b9572a01b4275f6960c9701d92b3b8f403c3843124000000000000000100000000000000000000000000000020cff6591dfe8cb9d421049bf180fabeb267dc54e2b75083b1c94c48eeb9a2fbe9000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000003e00000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce00000000000000060000000000000001000000000000000100000000000000200e4d81553ef804c7e42586835f9cb1a73385eaa5e56f312b3160c3cfe2c780db000000000000000100000000000000000000000000000020f457735f35611cbf719aa6c8555223848dc3e174810d8234d3313fa90b5c3e99000000000000000100000000000000000000000000000020afe999b9e080d307a2333dcbbe090a64228512a5b48458b1f8bc6ddcc863caa9000000000000000100000000000000000000000000000020f7c60fc0242ab4dfbc4e7ed03bd9eaacbe7d3b976a9239dc44a6f083d47d210d0000000000000001000000000000000000000000000000208af78be0e621a70f818b523c1d4675b967f8ca602f0292dfbd3b6cb3b77c3830000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a00000000000000170000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020a0c329674d73730336f6ce60133ccf4aac3865051d354d21037187f6396071b3000000000000000100000000000000000000000000000020864e47462260929d60876a0babd915b08229a85eed60fe22ac85ec61ee1e866e000000000000000100000000000000000000000000000020080b28b1dece6dde43a662bb2943cbbcfb4977254ddfb567d20ec3694d07decc000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000170000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a300000000000000060000000000000001000000000000000000000000000000205bd98a1b491cc72eb05e18deecafdb001f85e6128a43343d3ff0be37e78fe64f0000000000000001000000000000000000000000000000200e7d351888311da505d48edf530347f157d2abfcab987c09de8b0beef61251bf0000000000000001000000000000000000000000000000207990f75efecb15381ee2ea49b218b85f7e3d2cd5a557af793a918c688444cb36000000000000000100000000000000010000000000000020fd279d1406b4d83c0a17f7b257f972ea35ed0ca71fef42b15831ef20a873d2060000000000000001000000000000000000000000000000201a981d9e84479953754937a102c43e70395029db74bfc2fab12b49c5843d9e430000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e00000000000000170000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000000000000000000020a086ae4f0127f6c9909beabf093667b871ff438149eab70e246ffb25d3fddabb000000000000000100000000000000000000000000000020d4552976af65c083f953d52f4a52bbc52fc0ce914e2a0410d0b8cb54949d05b00000000000000001000000000000000000000000000000206535303184ae9576b8965697bba2837e9653eaea428214efe5545f1a41781af4000000000000000100000000000000010000000000000020a11b098ffdb0fd764d32c6c94f850ae43c76bdac4f696dfb63d217ca7ca3565b000000000000000100000000000000000000000000000020d93b16ca33c69462349cdf25972305037f4521a14049e5a3a75b32e9bee8ab86000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f00000000000000170000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e0000000000000006000000000000000100000000000000000000000000000020aa7f59eec92558617b3eedd98a1f0c3c0e5557078bc4cf26ffa0b525495cf57d000000000000000100000000000000000000000000000020ba868704c113d607b0f29432afc6c0a3b96bbd5e37e09fc3e9551e024d2e294a0000000000000001000000000000000000000000000000203d240926443a3df74455eaa63032b4a1917a7ba86b68c8b52488cb5c14e7152c00000000000000010000000000000001000000000000002067c75ae00e580df332b6c9eb358990101505a1fcfad9143ca32a4fa708c2dd6a0000000000000001000000000000000000000000000000209eb7ba4269788b7b97d4252aa2205ef7ba6c9ab3e416ab745d4640aff201076a000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000001700000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce00000000000000060000000000000001000000000000000000000000000000204410f5d9249c107f35825cec6de0fff5d3e59e38d0c300b08927a78dff598e27000000000000000100000000000000000000000000000020929ae53c8c74f4b9989951280c1e0f853226f925fc21b6c7169bd80647f361b8000000000000000100000000000000000000000000000020fdad0b48ef4cbe9ae1572e41e999fc911b15aa624f42f18504d156ebfdb1852c0000000000000001000000000000000100000000000000209a71d9e1dce988e719e83d71d00c9525487a282b50022cc6154fc960fd2355f00000000000000001000000000000000000000000000000204e59b970588c516635072f9eb5ffd6017c806bd61413f1d8d7108febcebe4793000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f00000000000000040000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020ad29f157986a63e236232935b94d48a682c4e8c6359a4acfb61d5ce97d6618e900000000000000010000000000000001000000000000002051eb7c5f8572912a00b4d921a0269e737f961978a81975a7117df74f933d6478000000000000000100000000000000000000000000000020e2c28e037d30a9b1cafa16794e336898558e512395cfcbdeb25f5f9c08dba0820000000000000001000000000000000100000000000000209dc48d41a2d4c25b90ae286b21502aabe4177429574808eac78aed0ba9b970ba00000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000040000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a300000000000000060000000000000001000000000000000100000000000000204d8cbedc0ba430818025f4a7a34b0e80b405c7396a376791ffeda9c7f12e218b0000000000000001000000000000000100000000000000205002af866aa997e8c793ae0820b0401e66879fbfb375385e2924581f675a7ce600000000000000010000000000000000000000000000002037e321427dc8a93667d9e53d72f976e66ef694ed439402c8b04bd59a2a16a558000000000000000100000000000000010000000000000020f8bc11deec21302e1f51f9e237aedb8aa5251d7676c7f5048dedcd657f7133fc000000000000000100000000000000010000000000000020f674d9bdc01a18975efa6d78c277539fb49e84aa12b432ce63398cf89654de330000000000000001000000000000000100000000000000209419fc752cbfbcbc1caf4496f2dc5a506cc7dff40ef200a844d71811dcac5f7e00000000000000040000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000010000000000000020341937366db2c11b6453e4d6e11e6657736857c2188f6cefbfa2f1d96933a8c8000000000000000100000000000000010000000000000020178c19aada458d055f305c25678fbc848772b18a45b56515c1c896a26ad32d620000000000000001000000000000000000000000000000200fe8624bf18d0bf250ca0d738d3ae9b69eae414c22fee76dbcd19d27aafb18320000000000000001000000000000000100000000000000201e5d518201338ae65645a43790fcc881148a862ced5662dd2f3d4fa272096c30000000000000000100000000000000010000000000000020e40cceacfe78cff9600b2e46e186ce0d04d352b2cebea854211cefeeb27f1594000000000000000100000000000000010000000000000020dece80e705adf69d3ae2e0a77799a3898e9049bfb8181aa8c3dc2339bd41a58f00000000000000040000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e00000000000000060000000000000001000000000000000100000000000000200fdb6d18775f7560197e221d6d35b90ce6a7530ad741bb804a0ae8bc7d636138000000000000000100000000000000010000000000000020473804d1f8c0cc25b880ac1b2910777bc6000c1ec4d4c384881b627d77c727810000000000000001000000000000000000000000000000201b90e90c86f1056ea0a09f49027a3005a07ddfc1081f399df53cdfd1cbd242800000000000000001000000000000000100000000000000201e0e5ee3509d87c942d6eecc539d80cd51775918b908b745d7ab410f52b8a562000000000000000100000000000000010000000000000020a1510c0b06e39f12e300709d413f8d80016cf37775e3d9332cf787ff7cb437e5000000000000000100000000000000010000000000000020bded89846f080f3b016eaadbd2732e1b871e6d1af7b69397f1c887074e6f56d2000000000000000400000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000010000000000000020220fb311907c9d85439d1eec5e9ffbfba87c4012c353bd8715c2ea1879cb1b390000000000000001000000000000000100000000000000207836d324a1cd8d31deb3c84cb8df9edc7537a827b7648c7af740d7259cfd7fd60000000000000001000000000000000000000000000000205d6f40bbd0dcdbf87dd934c270f43c6d6bc47105677bd050547cd995af6f48f3000000000000000100000000000000010000000000000020be6d505b52ce59b71864d77730ffeb8628fe75575331c760db510ad311a24443000000000000000100000000000000010000000000000020869859afc4e5681a25a5915521c2a426157dff8e26309759aca12cb8232c3452000000000000000100000000000000010000000000000020d3b5c9c8c20bbe5455d913f34683036dd85bc3a6d11bc498f441ae23786feb8f00000000000000310000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020e7cde93b02f69b3bdfec265c0a80e30146008063d4d41d7952e09fef525ba56900000000000000010000000000000001000000000000002088b9c36ce6c205415134c822e13277bf26dc808cf4164d31fb3feb408d5a5e06000000000000000100000000000000010000000000000020d668a432d047c9e275f7c7d20e0a761a44ce7e63d76a8974123279ebd303ad5300000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000310000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a300000000000000060000000000000001000000000000000000000000000000209a08d4167dd497190fd45acf9002d380b4bccfa4516d724073519f6dcaa34ff3000000000000000100000000000000010000000000000020b0a5c9f4ba24f931dc0d8797b9b7d94ac0e24f7f1394c989b2b3deb7b02a3087000000000000000100000000000000010000000000000020896a9feb27176097287962314c1d6a9ab80a44327e072493d27b9a4b8e2303b0000000000000000100000000000000010000000000000020683add9032495c3da8b6bd81434dde36b862a0aa24bfc4921623d38f6d42ce9e0000000000000001000000000000000000000000000000204784f6834025b9259cfebec8cffeb00373b1af30dde25a8e3b68097f0573e1f4000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf355400000000000000310000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000000000000000000020318af26b5a9fac9e737ab1e2a72b518f39f1bf9d858c6438563f24288a56c55d000000000000000100000000000000010000000000000020713efae07f6429403f580c43cfbe9cb6adc93ac3ce57a2be43a4ccfc9eef75d4000000000000000100000000000000010000000000000020962eb8f3bc8178022d18678330a12f6cf8cf744e7f7485fab75396ae04fd960e0000000000000001000000000000000100000000000000205efe682d733ff9220f6e865648ba8a56c69380880c1b4f659a8bf126240ceeb500000000000000010000000000000000000000000000002081164d64a302850b69a6f61885a59bcff6f1ab23c424b6d2a9d63914f94a1e420000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb00000000000000310000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e0000000000000006000000000000000100000000000000000000000000000020d2a9298ba0c634323271095fbe23173bececbdab147d0932fc7e61121f0de0180000000000000001000000000000000100000000000000200d73c313211f71a4f79de78944a8cb15dfb250054f7cf6be5475e16254e67e2e0000000000000001000000000000000100000000000000202ed3c2ae4ed52c7b0ab3c93636ba4028040eb2b1c82fd72cff7c660f51decd7a00000000000000010000000000000001000000000000002074d0092f6c300f43760e0459a111c8fd56d2fe92366d550b7a221827dc9ed2dc000000000000000100000000000000000000000000000020cff6591dfe8cb9d421049bf180fabeb267dc54e2b75083b1c94c48eeb9a2fbe9000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000003100000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce000000000000000600000000000000010000000000000000000000000000002037cfc732d7f110c5164ab57a25daa1f573308f9c371c88eae3f22b1d81276d84000000000000000100000000000000010000000000000020ed9a8f0b8b78cf46af46bb1640e6b42249db653000d30e9226d77a4288a2d3e5000000000000000100000000000000010000000000000020ff8df1196c7b3e0066145e192be0b21aa8cfb416c709da99c945ed85ddf8a80a000000000000000100000000000000010000000000000020b2b1f9a9da970f658f42768224e216c42e11acbca318b0a65a9fd00cb5e0c9980000000000000001000000000000000000000000000000208af78be0e621a70f818b523c1d4675b967f8ca602f0292dfbd3b6cb3b77c3830000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a00000000000000380000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020d5d9e84739c0813f71d0359e99b9765469d7a41ef279c691c2254c026b06582900000000000000010000000000000001000000000000002092254bddc93af51db85c84258645a7368b11c67713d9b7edb7798f818a67b7d100000000000000010000000000000001000000000000002013cba62cb82888bb083b50937d466b49f9391c00299bd77abb46de4352465093000000000000000100000000000000000000000000000020a3c68cdf76781d19db7aa603f4cd91ea38edfc0b5126585e0c4cc27eb1121e50000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000380000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a300000000000000060000000000000001000000000000000100000000000000209799d522f91cea6449054c0d6b58a6c37ffd0692a60e5d460d535143695d2f23000000000000000100000000000000010000000000000020635807ed33baab6f198f635e7bde04f28bdf05155f98b23d273079a5ed07af51000000000000000100000000000000010000000000000020294a02d54abb3df02e3246385cc62ff7ce7229b010690ce8690c31f967c45b48000000000000000100000000000000000000000000000020c8d8760ce542c5a702bcabcb4fef6e52d4233083d54c3cc37568102e3f21b0ec0000000000000001000000000000000000000000000000204784f6834025b9259cfebec8cffeb00373b1af30dde25a8e3b68097f0573e1f4000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf355400000000000000380000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a880000000000000006000000000000000100000000000000010000000000000020f3d60bc9f4c6d9a39587df8dcfbc280d25b17d807b2b85194e25b3cbf9a81def000000000000000100000000000000010000000000000020d650faeed357d70ab1be131df066d705ed2f678c29cd43c2fca665cb823c2609000000000000000100000000000000010000000000000020a699562990c3412fc55d466a3e6d9bcf5a7122ba4c59059e9715120d545c05d400000000000000010000000000000000000000000000002021d1315b8b30976711b2a1eb7d34dc8b98eb6fcd1048d35af300a0e1afc757f600000000000000010000000000000000000000000000002081164d64a302850b69a6f61885a59bcff6f1ab23c424b6d2a9d63914f94a1e420000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb00000000000000380000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e000000000000000600000000000000010000000000000001000000000000002026a8566d3a02bec6d352e8605bf6b96adafbb7d5f9067c735685b73b5a636b8a000000000000000100000000000000010000000000000020b3f12f78257ad5ac17c62e93d0e044fd1ee7eb9f634f5e185fd055875e73e1c2000000000000000100000000000000010000000000000020ff7f832f632893365f82d73c7d532c6bd3b7716ef7d7e7934d9ed9ee15104724000000000000000100000000000000000000000000000020362c41d2cff677621fedd9b9572a01b4275f6960c9701d92b3b8f403c3843124000000000000000100000000000000000000000000000020cff6591dfe8cb9d421049bf180fabeb267dc54e2b75083b1c94c48eeb9a2fbe9000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000003800000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce00000000000000060000000000000001000000000000000100000000000000200c4f64765121dcd1fb313c3839ca313622fa406d4b12a5455cd0dccbddac0870000000000000000100000000000000010000000000000020c08a3491343dcfc471495cc386a7f3c5ed9f533ed64ef21fe446eb48ffc9d0bc0000000000000001000000000000000100000000000000205bbf6df18c13b21ec0b39c6471ce58786a1bbd3b55eb1c1bcf04b80eb8446ddb000000000000000100000000000000000000000000000020f7c60fc0242ab4dfbc4e7ed03bd9eaacbe7d3b976a9239dc44a6f083d47d210d0000000000000001000000000000000000000000000000208af78be0e621a70f818b523c1d4675b967f8ca602f0292dfbd3b6cb3b77c3830000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a00000000000000370000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000204a103b4fc3a3b9a902c447394074f9393b9a8d0b2c9623792908b8ca3f90ba5f00000000000000010000000000000000000000000000002015ad821dcbca21c0f24f28f58131f9ab7767c0d6fbf621d34a2c84ab7b24c75e000000000000000100000000000000000000000000000020f4d1e64380a2c05ab0dc64ea31b5e288a4325921fa907811ded50419cc51d1ad00000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000370000000000000020952c5cece78d85eeb3fd96d09b57771c15991884d4f470bdef69e4b3e01526a30000000000000006000000000000000100000000000000000000000000000020409b33e23bccea2ebaa2a862cf0d4f810b1112bde7b18e21bc791aea126bc64d000000000000000100000000000000000000000000000020f1e2b6347ac2739a9b466267fbd2550305432721d16af954e722390ced51f508000000000000000100000000000000000000000000000020a3b4187c6753dc9ef8e78915ad0d5a86516efe76949a7e97bde2b7c7f7ced146000000000000000100000000000000010000000000000020683add9032495c3da8b6bd81434dde36b862a0aa24bfc4921623d38f6d42ce9e0000000000000001000000000000000000000000000000204784f6834025b9259cfebec8cffeb00373b1af30dde25a8e3b68097f0573e1f4000000000000000100000000000000000000000000000020a495e4d8f4e198a3fe78caf0cb6ea8034f1038351f3a059cbce1967964cf355400000000000000370000000000000020cf709e10d9ff9ad8b141d3d435557577d3f2fcc7c82548d45f5ee639ad290a8800000000000000060000000000000001000000000000000000000000000000201b2d925cf3e0fa70e61f75f6c1aa1db5391f88486b43113416f067f1f58e2d24000000000000000100000000000000000000000000000020ed27bfab2e7f35c0e874f1cea2ac0d0e57387c04f2dcec17c69645f45c45dc61000000000000000100000000000000000000000000000020cc57c137940830e48f40c451bdc74b12071485f1ad6ffba3e2ab01a9c482cb080000000000000001000000000000000100000000000000205efe682d733ff9220f6e865648ba8a56c69380880c1b4f659a8bf126240ceeb500000000000000010000000000000000000000000000002081164d64a302850b69a6f61885a59bcff6f1ab23c424b6d2a9d63914f94a1e420000000000000001000000000000000000000000000000206a2aa34dd10d5394239901702da0b2f573f8d36d1f6998d48329bdf489a90afb00000000000000370000000000000020c09c4dce5afeb0d2e2f5dcc3d34f4adaebd0ccb4271968fa969bad3e2c672a7e0000000000000006000000000000000100000000000000000000000000000020da7cad3e904b31225c80fe4f0a7324dba57e74e56d7f87513342bdc25d5fdb8700000000000000010000000000000000000000000000002071d15c01a1238d45abb8e3144cfa8f392b83afd290d498bf6719cd6131e12f2b00000000000000010000000000000000000000000000002058034b10ba7cfc2c36a16ab5d61a39a246370d0f4b9ad70756884cc55b6f8d0900000000000000010000000000000001000000000000002074d0092f6c300f43760e0459a111c8fd56d2fe92366d550b7a221827dc9ed2dc000000000000000100000000000000000000000000000020cff6591dfe8cb9d421049bf180fabeb267dc54e2b75083b1c94c48eeb9a2fbe9000000000000000100000000000000000000000000000020be6dc4d6b6c9469f419e507233f6ea4e29a8524dfec7d1d0ad8faef65a864b69000000000000003700000000000000201144e43aeb23b655ef63d1cce78fa46df7eede29b84b70f44c65a328c71951ce0000000000000006000000000000000100000000000000000000000000000020b7b5adf5d8740395c6792663e1d9843916399a5314eb421cad37205cd5bd4961000000000000000100000000000000000000000000000020a83ed7937cc008c4f5c47eab905b2c4437bdd9fb5bf17fbfc689d4d4a802e0b900000000000000010000000000000000000000000000002060eff9ce86435865bbc177c269e76fb0f849d4a5a9c70083537cf0ad9059f438000000000000000100000000000000010000000000000020b2b1f9a9da970f658f42768224e216c42e11acbca318b0a65a9fd00cb5e0c9980000000000000001000000000000000000000000000000208af78be0e621a70f818b523c1d4675b967f8ca602f0292dfbd3b6cb3b77c3830000000000000000100000000000000000000000000000020b55b764f71e87fdd16c3683efccc93005a29b838a6a559343be2b40b75b9c21a0000000000000050000000000000000d00000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb000000000000000600000000000000010000000000000000000000000000002071c306821da77d90cca75909d4723c7ebd76db31a8311d917215c6d2c4121a99000000000000000100000000000000010000000000000020b5d8028192b06d850cbb31980d3b26a26176308c663782b22dc1755dfb0855a9000000000000000100000000000000000000000000000020d9180fd695f770b896cd2047f04677b62d0f486e33a9baa1b371715cc9c62cc1000000000000000100000000000000000000000000000020a1d360eac3fc5fbf8ba6d2d676c62da70a542ed0bb1d71803a49f6f78904448e00000000000000010000000000000001000000000000002091d104f48591eedca3134cbc2dee83273b96d0013e1fcc9ec5513a468d9dc665000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a22000000000000000d0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a8300000000000000050000000000000001000000000000000000000000000000201e41214884f6bfeaf320fa93ba5e966d6ef537096153b260e6b4101d9003c8d10000000000000001000000000000000100000000000000209df944cf495d6d91667567e49d1e9358a853566bb86f77ebb55d2da307d4185f0000000000000001000000000000000000000000000000209a559eb88d8d4c28b5e2655e113eb756e9f0ff0aae1bf5684d53451ee05e6fee000000000000000100000000000000000000000000000020548c028f166dddf19c7e1f2a375f8903f71cb3485f2486fe38e0970416239d14000000000000000100000000000000010000000000000020de5dde63dfc3f6e466bd10c5856bb6d41db0dcfdbb936ca408e97eafb31abf08000000000000001a00000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb00000000000000060000000000000001000000000000000100000000000000205a1b5910f312d4608a3c659658a5813375927117518986b58880ce34c493d16e000000000000000100000000000000000000000000000020e8800c3b12103f7baca525762dc6c6ab39e353edb8d4a91818c74f26252f91ff000000000000000100000000000000010000000000000020148badf58a4a39212166da12bcb05e4aa25d68467c3f16f84d99b4dea0326d24000000000000000100000000000000000000000000000020b63e3c8ab8dd78a0e05d556971048f310d542f94a21bad8c2fdef3950d991cd100000000000000010000000000000000000000000000002031e28da72f5e0c50cfb866400335e08c4532bf8c1fe7f55ed3cea803a23d3a04000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a22000000000000001a0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a83000000000000000500000000000000010000000000000001000000000000002095358652dc9b7e806741bd7a1a28ef5823bf88801fd6df29ebbfe532f9b20b61000000000000000100000000000000000000000000000020fc0138ea57ddae922a4c26719ad5766149f8a9085c0dc238ae06cb20cccadf9e0000000000000001000000000000000100000000000000201662783cef0484008223d0d8042a91d0a2306f72dee6e5230b53a3a0a8726981000000000000000100000000000000000000000000000020391fbd1fcdaa6f8c54238c393418e55145a4219a27d87cc8eb1b8f44bfa251ed0000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000002c00000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb00000000000000060000000000000001000000000000000100000000000000203678b0e46824bde1b2e95033d877475a8486d878a3a9727b90574eb297a3ca7400000000000000010000000000000001000000000000002077baa3476a198f656ea8b094e88defa6db6a9ccc3d7333cd9ccae6c6515dd9500000000000000001000000000000000000000000000000207974eb55baa2788a39cbcc1baca21e3add81d794ddbd2f86d4b9efc52013f8f700000000000000010000000000000000000000000000002015dfca77b790207e7bcd361fb916e3f854f1297ab053e2c8585aeb8be0fcc82600000000000000010000000000000001000000000000002065ff132f45c9c53e731bb529fae6dd22f22474adffe354d1ff7976e50904c1d40000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea0000000000000000c0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a8300000000000000050000000000000001000000000000000100000000000000202c8ca1ff5b3444e7aa249afd027aa4c29afe47721e755864ea86efba513b0f7d0000000000000001000000000000000100000000000000209df944cf495d6d91667567e49d1e9358a853566bb86f77ebb55d2da307d4185f0000000000000001000000000000000000000000000000209a559eb88d8d4c28b5e2655e113eb756e9f0ff0aae1bf5684d53451ee05e6fee000000000000000100000000000000000000000000000020548c028f166dddf19c7e1f2a375f8903f71cb3485f2486fe38e0970416239d14000000000000000100000000000000010000000000000020de5dde63dfc3f6e466bd10c5856bb6d41db0dcfdbb936ca408e97eafb31abf08000000000000003a00000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb000000000000000600000000000000010000000000000001000000000000002009f06c99cf066a87e20be6bbb6b0615de4d1961810315aa47fa34149408ab1c600000000000000010000000000000000000000000000002021ad7c1393145913b0ea21f4f8701c3ca11ce348b113a2925121e03e859136970000000000000001000000000000000100000000000000209bde0dfeabc1facd61a53fac487e482eddd902fdb8861fc72e69db538a96c4c8000000000000000100000000000000000000000000000020566193c8484b82d6aa4a68be3e17aaa200baeef660c4a5810395c167ce233d93000000000000000100000000000000000000000000000020c936d6a17c00b11114c73c6012099a95c04441d0574b09355ce26ada9acffc090000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea0000000000000001a0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a83000000000000000500000000000000010000000000000001000000000000002095358652dc9b7e806741bd7a1a28ef5823bf88801fd6df29ebbfe532f9b20b61000000000000000100000000000000000000000000000020fc0138ea57ddae922a4c26719ad5766149f8a9085c0dc238ae06cb20cccadf9e0000000000000001000000000000000100000000000000201662783cef0484008223d0d8042a91d0a2306f72dee6e5230b53a3a0a8726981000000000000000100000000000000000000000000000020391fbd1fcdaa6f8c54238c393418e55145a4219a27d87cc8eb1b8f44bfa251ed0000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000001c00000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb00000000000000060000000000000001000000000000000100000000000000200704d795375b5a2cd6fff1f48c3308f9d352fa8427fe51431a1ae61abb222a700000000000000001000000000000000100000000000000200e8b98f92fcefc7cf149991197ab71468d96e879012eea8a4d9187f1714d656e000000000000000100000000000000000000000000000020e2112783e8dafb034d198bcc16dc02add0cc269a302ecc95594cc88071121f6e000000000000000100000000000000000000000000000020b63e3c8ab8dd78a0e05d556971048f310d542f94a21bad8c2fdef3950d991cd100000000000000010000000000000000000000000000002031e28da72f5e0c50cfb866400335e08c4532bf8c1fe7f55ed3cea803a23d3a04000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a22000000000000001c0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a83000000000000000500000000000000010000000000000001000000000000002060e9f14c59dde9b23e3f0082d7923aa1ab1220aeaa2d72c2cac5e25f85bcf744000000000000000100000000000000010000000000000020605c3b689d3ef306df03a81adecd17c90530b321c29fb38bb48e1e2f946a0d29000000000000000100000000000000000000000000000020f856d0214bc2760574876c2950446833614710df8efcacfa25ced5a5748eec36000000000000000100000000000000000000000000000020391fbd1fcdaa6f8c54238c393418e55145a4219a27d87cc8eb1b8f44bfa251ed0000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000001d00000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb000000000000000600000000000000010000000000000000000000000000002057bdc30c9081bbf78560f330b1fac3dcf6db802f28e003c27583ff3b766502300000000000000001000000000000000100000000000000200e8b98f92fcefc7cf149991197ab71468d96e879012eea8a4d9187f1714d656e000000000000000100000000000000000000000000000020e2112783e8dafb034d198bcc16dc02add0cc269a302ecc95594cc88071121f6e000000000000000100000000000000000000000000000020b63e3c8ab8dd78a0e05d556971048f310d542f94a21bad8c2fdef3950d991cd100000000000000010000000000000000000000000000002031e28da72f5e0c50cfb866400335e08c4532bf8c1fe7f55ed3cea803a23d3a04000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a22000000000000001d0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a830000000000000005000000000000000100000000000000000000000000000020d711b16cb964bac6a22e63b274cef4bb971c96a008291000a9546dc8d5524e21000000000000000100000000000000010000000000000020605c3b689d3ef306df03a81adecd17c90530b321c29fb38bb48e1e2f946a0d29000000000000000100000000000000000000000000000020f856d0214bc2760574876c2950446833614710df8efcacfa25ced5a5748eec36000000000000000100000000000000000000000000000020391fbd1fcdaa6f8c54238c393418e55145a4219a27d87cc8eb1b8f44bfa251ed0000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000000800000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb000000000000000600000000000000010000000000000001000000000000002014b998f9e08dd63de83ab2d19851c3deb4e8c744b131254ff2d6e2f2ee779ba7000000000000000100000000000000010000000000000020e77c149fd2e2ed85e93ae8544c116a43cf2f30a88fe0ee8e01853043f5df3331000000000000000100000000000000010000000000000020caf9ab1ae5f1864e6173741419989d4f58e6d02c9f415cdae9e4023e876c2ea8000000000000000100000000000000000000000000000020a1d360eac3fc5fbf8ba6d2d676c62da70a542ed0bb1d71803a49f6f78904448e00000000000000010000000000000001000000000000002091d104f48591eedca3134cbc2dee83273b96d0013e1fcc9ec5513a468d9dc665000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a2200000000000000080000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a8300000000000000050000000000000001000000000000000100000000000000208359d0fc94d95999cd0e2962c3c676c1898c6f31af1377f214316629692593440000000000000001000000000000000100000000000000209ee98f63de6a8f0d6d58269d0d8a462a87140267eb9211be41686f87e0635cdf000000000000000100000000000000010000000000000020c526543aa17911e46a468844b21614361d085130359aed7e61f2d8cf0fd0aebf000000000000000100000000000000000000000000000020548c028f166dddf19c7e1f2a375f8903f71cb3485f2486fe38e0970416239d14000000000000000100000000000000010000000000000020de5dde63dfc3f6e466bd10c5856bb6d41db0dcfdbb936ca408e97eafb31abf08000000000000002a00000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000006000000000000000100000000000000010000000000000020fe17486b4bde82612dff9a882f04653efb3ce794d19cf44eae947054e664c8ab000000000000000100000000000000000000000000000020c90181c049f71bd19337e64f0866e6aed82fbbf4e2b525d7468b5b446e296f9c000000000000000100000000000000010000000000000020804aa0f7b48c9a5ca2412f858ea440f8d0cb5d8acbee97ddca2bf6e2822fbb8b00000000000000010000000000000000000000000000002015dfca77b790207e7bcd361fb916e3f854f1297ab053e2c8585aeb8be0fcc82600000000000000010000000000000001000000000000002065ff132f45c9c53e731bb529fae6dd22f22474adffe354d1ff7976e50904c1d40000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea0000000000000000a0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a830000000000000005000000000000000100000000000000010000000000000020b2ef8cfae661c9bd8231bd3a0a4bb26b8ae3b59ac4072d4122a8d953b0c6054c0000000000000001000000000000000000000000000000209fdede93cf458de343777e7fc253adbc3e5bbbe3ef058904c9b4211bd0e2f1e1000000000000000100000000000000010000000000000020c526543aa17911e46a468844b21614361d085130359aed7e61f2d8cf0fd0aebf000000000000000100000000000000000000000000000020548c028f166dddf19c7e1f2a375f8903f71cb3485f2486fe38e0970416239d14000000000000000100000000000000010000000000000020de5dde63dfc3f6e466bd10c5856bb6d41db0dcfdbb936ca408e97eafb31abf08000000000000003600000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000006000000000000000100000000000000010000000000000020bf6283471b192bbf6ba52c03d9ce015b948c3ebd241df636ade54e35bf43275d0000000000000001000000000000000000000000000000207dd5aa8d2530d93caa316187599833eef056664343e51529c749c5a10f13b7660000000000000001000000000000000000000000000000203be60965851fc1e4596093328467449598768ec1d49268b3921cefeaab4f4a33000000000000000100000000000000010000000000000020048fe6e1b15d94b5b8aeab46ca6cee0e1bf40001aa53c4393cd2f52420374103000000000000000100000000000000000000000000000020c936d6a17c00b11114c73c6012099a95c04441d0574b09355ce26ada9acffc090000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea000000000000000160000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a8300000000000000050000000000000001000000000000000100000000000000209b089b935479579f2a97305be7a5fb02fce12e4b9d47a3c843b8c9929a042734000000000000000100000000000000000000000000000020d018dd1db731e67338329bac46601b58403782c9fdb4446dc7c71feb4961a44f000000000000000100000000000000000000000000000020d8d12539a28b8d2e1e502961a0aa12b28af30d40efba974ef85d6b5f8394d2c10000000000000001000000000000000100000000000000204cf0f4f16f86c0a8d1aaeadcca2981a4866214b444f6f856ff41a8c1baa48bc20000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000001c00000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb00000000000000060000000000000001000000000000000100000000000000200704d795375b5a2cd6fff1f48c3308f9d352fa8427fe51431a1ae61abb222a700000000000000001000000000000000100000000000000200e8b98f92fcefc7cf149991197ab71468d96e879012eea8a4d9187f1714d656e000000000000000100000000000000000000000000000020e2112783e8dafb034d198bcc16dc02add0cc269a302ecc95594cc88071121f6e000000000000000100000000000000000000000000000020b63e3c8ab8dd78a0e05d556971048f310d542f94a21bad8c2fdef3950d991cd100000000000000010000000000000000000000000000002031e28da72f5e0c50cfb866400335e08c4532bf8c1fe7f55ed3cea803a23d3a04000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a22000000000000001c0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a83000000000000000500000000000000010000000000000001000000000000002060e9f14c59dde9b23e3f0082d7923aa1ab1220aeaa2d72c2cac5e25f85bcf744000000000000000100000000000000010000000000000020605c3b689d3ef306df03a81adecd17c90530b321c29fb38bb48e1e2f946a0d29000000000000000100000000000000000000000000000020f856d0214bc2760574876c2950446833614710df8efcacfa25ced5a5748eec36000000000000000100000000000000000000000000000020391fbd1fcdaa6f8c54238c393418e55145a4219a27d87cc8eb1b8f44bfa251ed0000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000000100000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb00000000000000060000000000000001000000000000000000000000000000202fe10ebce964b2e90b37d79c732c3ac57fc4ecf66442c2b1f03969626b25cece000000000000000100000000000000010000000000000020f7841346a6981b703fb8d4e067544d396090c02f56561f8c99caf9f260b74b5e00000000000000010000000000000001000000000000002099a3ad4654fa1f827c2e2fcc334cc7708db10f7b09ba8147f370d5b0fddbbd5b000000000000000100000000000000010000000000000020ce7a4b6c2268f96cc47cbcd6a9f6fa92df7d2f06ea56db9a682530cf75f365e400000000000000010000000000000001000000000000002091d104f48591eedca3134cbc2dee83273b96d0013e1fcc9ec5513a468d9dc665000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a2200000000000000010000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a830000000000000005000000000000000100000000000000000000000000000020e0aa28ba4360319ac2165e1230048b5c9330c581898ce5348f4035705223f364000000000000000100000000000000010000000000000020d1eae510f430b213e92d473baf3119639dd5fb2069ddb6c905dee2cdd8e749cc000000000000000100000000000000010000000000000020918d11dfc06f8e62889d24d598ff01c0c48184943b9b628e8b9ff615f6c7a0b4000000000000000100000000000000010000000000000020aaa2bb1d25834f13d7ba48ed7f635247a1c62b02e29899bea646aaac749de56b000000000000000100000000000000010000000000000020de5dde63dfc3f6e466bd10c5856bb6d41db0dcfdbb936ca408e97eafb31abf08000000000000001b00000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000006000000000000000100000000000000000000000000000020b27c6894ed8fdd4dfd24c6e74302133a92c563a46559d157dbba5cc111ba1e45000000000000000100000000000000000000000000000020e8800c3b12103f7baca525762dc6c6ab39e353edb8d4a91818c74f26252f91ff000000000000000100000000000000010000000000000020148badf58a4a39212166da12bcb05e4aa25d68467c3f16f84d99b4dea0326d24000000000000000100000000000000000000000000000020b63e3c8ab8dd78a0e05d556971048f310d542f94a21bad8c2fdef3950d991cd100000000000000010000000000000000000000000000002031e28da72f5e0c50cfb866400335e08c4532bf8c1fe7f55ed3cea803a23d3a04000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a22000000000000001b0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a8300000000000000050000000000000001000000000000000000000000000000207466ea22a3e76c2dacecdecae9424bbdfe94ba8cb33a526200d226e4614f1d58000000000000000100000000000000000000000000000020fc0138ea57ddae922a4c26719ad5766149f8a9085c0dc238ae06cb20cccadf9e0000000000000001000000000000000100000000000000201662783cef0484008223d0d8042a91d0a2306f72dee6e5230b53a3a0a8726981000000000000000100000000000000000000000000000020391fbd1fcdaa6f8c54238c393418e55145a4219a27d87cc8eb1b8f44bfa251ed0000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000000b00000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000006000000000000000100000000000000000000000000000020ed28b13aa315aac6ef7f826f41237ee6c09a6b3321b6214005e326497fd9c451000000000000000100000000000000000000000000000020d9c6420af4ba3251b8a11fd7e2e555209a96250eeb6f482b4eb1970a86b6d455000000000000000100000000000000010000000000000020caf9ab1ae5f1864e6173741419989d4f58e6d02c9f415cdae9e4023e876c2ea8000000000000000100000000000000000000000000000020a1d360eac3fc5fbf8ba6d2d676c62da70a542ed0bb1d71803a49f6f78904448e00000000000000010000000000000001000000000000002091d104f48591eedca3134cbc2dee83273b96d0013e1fcc9ec5513a468d9dc665000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a22000000000000000b0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a830000000000000005000000000000000100000000000000000000000000000020b2a091c34470143f94dc2c4430b4cb80c9f0abc3e150ddecf7eb1c593185c47b0000000000000001000000000000000000000000000000209fdede93cf458de343777e7fc253adbc3e5bbbe3ef058904c9b4211bd0e2f1e1000000000000000100000000000000010000000000000020c526543aa17911e46a468844b21614361d085130359aed7e61f2d8cf0fd0aebf000000000000000100000000000000000000000000000020548c028f166dddf19c7e1f2a375f8903f71cb3485f2486fe38e0970416239d14000000000000000100000000000000010000000000000020de5dde63dfc3f6e466bd10c5856bb6d41db0dcfdbb936ca408e97eafb31abf08000000000000001700000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb000000000000000600000000000000010000000000000000000000000000002092483be61616ee1aa2e2bd19ed7c98869bb49ef93d14c7295b6c60cda86149870000000000000001000000000000000000000000000000202cd39244e27f043774a6e8ccee8a4491d4fb632b137f36ab2e985c1b6d7bfb000000000000000001000000000000000000000000000000200e646c5068e1a4a1202a81fa3802d77e38cb65275c80a6c1c32e11c077f8fc75000000000000000100000000000000010000000000000020c50f746a66cbe3f7c453b7db7946b7c68579bb62222abd7d3fee65dc6b8fe16100000000000000010000000000000000000000000000002031e28da72f5e0c50cfb866400335e08c4532bf8c1fe7f55ed3cea803a23d3a04000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a2200000000000000170000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a830000000000000005000000000000000100000000000000000000000000000020487e532681ea17a4a51c9274f60911a3cd630848d363b410d720e90eb40a42f8000000000000000100000000000000000000000000000020d018dd1db731e67338329bac46601b58403782c9fdb4446dc7c71feb4961a44f000000000000000100000000000000000000000000000020d8d12539a28b8d2e1e502961a0aa12b28af30d40efba974ef85d6b5f8394d2c10000000000000001000000000000000100000000000000204cf0f4f16f86c0a8d1aaeadcca2981a4866214b444f6f856ff41a8c1baa48bc20000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000000400000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb00000000000000060000000000000001000000000000000100000000000000206c442da8a274cf5f7dd82c58cfff0c0dc1d7ba18df2523e250b50856e4bd29b1000000000000000100000000000000010000000000000020123a176214e18ad49f00cfe98ee962cdb2b617c58d77c4c61f9f70f369571f000000000000000001000000000000000000000000000000205d13caf204c8e1a9fee074c24756a8fd8970ada5757fc08eec68e673b7b9b927000000000000000100000000000000010000000000000020ce7a4b6c2268f96cc47cbcd6a9f6fa92df7d2f06ea56db9a682530cf75f365e400000000000000010000000000000001000000000000002091d104f48591eedca3134cbc2dee83273b96d0013e1fcc9ec5513a468d9dc665000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a2200000000000000040000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a83000000000000000500000000000000010000000000000001000000000000002010c2a49374f4c2e06a410295eeb89a82dbfcf62ecf4dc02369ffea35abdea03a0000000000000001000000000000000100000000000000209874768faef252a16a36b859809b1dcca738f0b57c48e09caf1d97a44f8505d5000000000000000100000000000000000000000000000020fecd39ef89a84774e39ebf1b07b9702b210a51d1877e9568ffce398ff357f8f4000000000000000100000000000000010000000000000020aaa2bb1d25834f13d7ba48ed7f635247a1c62b02e29899bea646aaac749de56b000000000000000100000000000000010000000000000020de5dde63dfc3f6e466bd10c5856bb6d41db0dcfdbb936ca408e97eafb31abf08000000000000001600000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000006000000000000000100000000000000010000000000000020f229c26caf3739b14f38ca4d1e9532cf5f845ce98e91b48a4d4125e3a9465af30000000000000001000000000000000000000000000000202cd39244e27f043774a6e8ccee8a4491d4fb632b137f36ab2e985c1b6d7bfb000000000000000001000000000000000000000000000000200e646c5068e1a4a1202a81fa3802d77e38cb65275c80a6c1c32e11c077f8fc75000000000000000100000000000000010000000000000020c50f746a66cbe3f7c453b7db7946b7c68579bb62222abd7d3fee65dc6b8fe16100000000000000010000000000000000000000000000002031e28da72f5e0c50cfb866400335e08c4532bf8c1fe7f55ed3cea803a23d3a04000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a2200000000000000160000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a8300000000000000050000000000000001000000000000000100000000000000209b089b935479579f2a97305be7a5fb02fce12e4b9d47a3c843b8c9929a042734000000000000000100000000000000000000000000000020d018dd1db731e67338329bac46601b58403782c9fdb4446dc7c71feb4961a44f000000000000000100000000000000000000000000000020d8d12539a28b8d2e1e502961a0aa12b28af30d40efba974ef85d6b5f8394d2c10000000000000001000000000000000100000000000000204cf0f4f16f86c0a8d1aaeadcca2981a4866214b444f6f856ff41a8c1baa48bc20000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000003800000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000006000000000000000100000000000000010000000000000020bc408186d1d26e6d684583666cd869e915f850c3fd2018129008a7c758ecbe8b00000000000000010000000000000001000000000000002079253c06a2e3906b50e659bcc62c44e93bbce186aaa0b3c4c7a8845c21ae4bd20000000000000001000000000000000100000000000000209bde0dfeabc1facd61a53fac487e482eddd902fdb8861fc72e69db538a96c4c8000000000000000100000000000000000000000000000020566193c8484b82d6aa4a68be3e17aaa200baeef660c4a5810395c167ce233d93000000000000000100000000000000000000000000000020c936d6a17c00b11114c73c6012099a95c04441d0574b09355ce26ada9acffc090000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea000000000000000180000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a830000000000000005000000000000000100000000000000010000000000000020aa7b977b09e8560c1a762ab6f1cbc78e67e5a3c4319341cbc39da87f9749066d000000000000000100000000000000010000000000000020453acbf91e876725932970ac250f0440edf4c948964445e4972e04528117ca9e0000000000000001000000000000000100000000000000201662783cef0484008223d0d8042a91d0a2306f72dee6e5230b53a3a0a8726981000000000000000100000000000000000000000000000020391fbd1fcdaa6f8c54238c393418e55145a4219a27d87cc8eb1b8f44bfa251ed0000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000003200000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000006000000000000000100000000000000010000000000000020776afe34bcf1e93203ac4bf74cb145ea2eea257a99253b2f4bec3914eb56e3330000000000000001000000000000000000000000000000200432ff91f01b86b294c2005e51576a2dec098cc5ca95e79a7f3a6d5b27d487fd00000000000000010000000000000001000000000000002040c489b2ee691ca1230488acd6234d66cd90125b482ff691c8b4c5e026735564000000000000000100000000000000010000000000000020048fe6e1b15d94b5b8aeab46ca6cee0e1bf40001aa53c4393cd2f52420374103000000000000000100000000000000000000000000000020c936d6a17c00b11114c73c6012099a95c04441d0574b09355ce26ada9acffc090000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea000000000000000120000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a830000000000000005000000000000000100000000000000010000000000000020e5d54508ddc290d1934af1a2d269fec0b07ab289a31fb4223bfc35af17db6d860000000000000001000000000000000000000000000000202c62936b14559e1cc8a3ea0c4cf738e7dcda733cedcee96e948b9c3bceb0a095000000000000000100000000000000010000000000000020422cd668d3f30526fa9bac414d4ecf51571bcfd19f9f2008814b39a5916e94940000000000000001000000000000000100000000000000204cf0f4f16f86c0a8d1aaeadcca2981a4866214b444f6f856ff41a8c1baa48bc20000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000003400000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb00000000000000060000000000000001000000000000000100000000000000200e8cc09206c30aa7da9da90636a0224912121ed11c7794c72ba52c537e08a5d700000000000000010000000000000001000000000000002094fa7242185ff51623eb868b6a73f48d9bf83b57fd797029f3c1d3938a43e90d0000000000000001000000000000000000000000000000203be60965851fc1e4596093328467449598768ec1d49268b3921cefeaab4f4a33000000000000000100000000000000010000000000000020048fe6e1b15d94b5b8aeab46ca6cee0e1bf40001aa53c4393cd2f52420374103000000000000000100000000000000000000000000000020c936d6a17c00b11114c73c6012099a95c04441d0574b09355ce26ada9acffc090000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea000000000000000140000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a830000000000000005000000000000000100000000000000010000000000000020509174c004feb10be0dfb90af81a0d0d326e0b1256cee0e901bea677450aef6100000000000000010000000000000001000000000000002057e39904a86229fa19ef9b9a3afe69d81c802a846a435d4c34372bd40d456ce6000000000000000100000000000000000000000000000020d8d12539a28b8d2e1e502961a0aa12b28af30d40efba974ef85d6b5f8394d2c10000000000000001000000000000000100000000000000204cf0f4f16f86c0a8d1aaeadcca2981a4866214b444f6f856ff41a8c1baa48bc20000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000001300000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000006000000000000000100000000000000000000000000000020e028834fc970b6f1b0f6506bb980e898792d5a969555d226e3c992ccfcd09aa6000000000000000100000000000000000000000000000020200d1c08555fab6e6be9537c843e1d7c5e1c44346b1776c96b76719a0c7c347a0000000000000001000000000000000100000000000000206d4af71c6daf81e696b185d99dc3ccf4ad6fb721362ffa046a3bb83565121789000000000000000100000000000000010000000000000020c50f746a66cbe3f7c453b7db7946b7c68579bb62222abd7d3fee65dc6b8fe16100000000000000010000000000000000000000000000002031e28da72f5e0c50cfb866400335e08c4532bf8c1fe7f55ed3cea803a23d3a04000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a2200000000000000130000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a8300000000000000050000000000000001000000000000000000000000000000202fba7e831ec7fd9817e72cbd63a1599b696bc74a0fccda9eda93040fb33d278d0000000000000001000000000000000000000000000000202c62936b14559e1cc8a3ea0c4cf738e7dcda733cedcee96e948b9c3bceb0a095000000000000000100000000000000010000000000000020422cd668d3f30526fa9bac414d4ecf51571bcfd19f9f2008814b39a5916e94940000000000000001000000000000000100000000000000204cf0f4f16f86c0a8d1aaeadcca2981a4866214b444f6f856ff41a8c1baa48bc20000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000003600000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000006000000000000000100000000000000010000000000000020bf6283471b192bbf6ba52c03d9ce015b948c3ebd241df636ade54e35bf43275d0000000000000001000000000000000000000000000000207dd5aa8d2530d93caa316187599833eef056664343e51529c749c5a10f13b7660000000000000001000000000000000000000000000000203be60965851fc1e4596093328467449598768ec1d49268b3921cefeaab4f4a33000000000000000100000000000000010000000000000020048fe6e1b15d94b5b8aeab46ca6cee0e1bf40001aa53c4393cd2f52420374103000000000000000100000000000000000000000000000020c936d6a17c00b11114c73c6012099a95c04441d0574b09355ce26ada9acffc090000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea000000000000000160000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a8300000000000000050000000000000001000000000000000100000000000000209b089b935479579f2a97305be7a5fb02fce12e4b9d47a3c843b8c9929a042734000000000000000100000000000000000000000000000020d018dd1db731e67338329bac46601b58403782c9fdb4446dc7c71feb4961a44f000000000000000100000000000000000000000000000020d8d12539a28b8d2e1e502961a0aa12b28af30d40efba974ef85d6b5f8394d2c10000000000000001000000000000000100000000000000204cf0f4f16f86c0a8d1aaeadcca2981a4866214b444f6f856ff41a8c1baa48bc20000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000000c00000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb00000000000000060000000000000001000000000000000100000000000000205700fbcccba4d45a3a1691f341417e15efac967ac08774e7df0569dcaa404b9f000000000000000100000000000000010000000000000020b5d8028192b06d850cbb31980d3b26a26176308c663782b22dc1755dfb0855a9000000000000000100000000000000000000000000000020d9180fd695f770b896cd2047f04677b62d0f486e33a9baa1b371715cc9c62cc1000000000000000100000000000000000000000000000020a1d360eac3fc5fbf8ba6d2d676c62da70a542ed0bb1d71803a49f6f78904448e00000000000000010000000000000001000000000000002091d104f48591eedca3134cbc2dee83273b96d0013e1fcc9ec5513a468d9dc665000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a22000000000000000c0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a8300000000000000050000000000000001000000000000000100000000000000202c8ca1ff5b3444e7aa249afd027aa4c29afe47721e755864ea86efba513b0f7d0000000000000001000000000000000100000000000000209df944cf495d6d91667567e49d1e9358a853566bb86f77ebb55d2da307d4185f0000000000000001000000000000000000000000000000209a559eb88d8d4c28b5e2655e113eb756e9f0ff0aae1bf5684d53451ee05e6fee000000000000000100000000000000000000000000000020548c028f166dddf19c7e1f2a375f8903f71cb3485f2486fe38e0970416239d14000000000000000100000000000000010000000000000020de5dde63dfc3f6e466bd10c5856bb6d41db0dcfdbb936ca408e97eafb31abf08000000000000001b00000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000006000000000000000100000000000000000000000000000020b27c6894ed8fdd4dfd24c6e74302133a92c563a46559d157dbba5cc111ba1e45000000000000000100000000000000000000000000000020e8800c3b12103f7baca525762dc6c6ab39e353edb8d4a91818c74f26252f91ff000000000000000100000000000000010000000000000020148badf58a4a39212166da12bcb05e4aa25d68467c3f16f84d99b4dea0326d24000000000000000100000000000000000000000000000020b63e3c8ab8dd78a0e05d556971048f310d542f94a21bad8c2fdef3950d991cd100000000000000010000000000000000000000000000002031e28da72f5e0c50cfb866400335e08c4532bf8c1fe7f55ed3cea803a23d3a04000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a22000000000000001b0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a8300000000000000050000000000000001000000000000000000000000000000207466ea22a3e76c2dacecdecae9424bbdfe94ba8cb33a526200d226e4614f1d58000000000000000100000000000000000000000000000020fc0138ea57ddae922a4c26719ad5766149f8a9085c0dc238ae06cb20cccadf9e0000000000000001000000000000000100000000000000201662783cef0484008223d0d8042a91d0a2306f72dee6e5230b53a3a0a8726981000000000000000100000000000000000000000000000020391fbd1fcdaa6f8c54238c393418e55145a4219a27d87cc8eb1b8f44bfa251ed0000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000002200000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb00000000000000060000000000000001000000000000000100000000000000206cb5d4fcdd7ce95f327299647a25a24509b088b28b34d57f586d1d03e3aa5b940000000000000001000000000000000000000000000000208a55f47ba8ddc6e794ad7627b45c863327fa4286a6511e22fc90ceab2f1f3b54000000000000000100000000000000010000000000000020876c24d27ee448e6f553d3a64fc97b0420f70f50ddfc57c198e223b97c661cf60000000000000001000000000000000100000000000000200457e841c87d4814dff80cd2c79138748eb52c28f362e8bf4b72964d5d1c75c300000000000000010000000000000001000000000000002065ff132f45c9c53e731bb529fae6dd22f22474adffe354d1ff7976e50904c1d40000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea000000000000000020000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a830000000000000005000000000000000100000000000000010000000000000020da64a01de7fb9003785b6c605b33c6d2755b5fd4b3b38f40f5b0e9b649a862a3000000000000000100000000000000000000000000000020ab2bad79d423c8d5d8bcde4cea0a1726c92a9f3e39443b1fd89d499c4430d6a8000000000000000100000000000000010000000000000020918d11dfc06f8e62889d24d598ff01c0c48184943b9b628e8b9ff615f6c7a0b4000000000000000100000000000000010000000000000020aaa2bb1d25834f13d7ba48ed7f635247a1c62b02e29899bea646aaac749de56b000000000000000100000000000000010000000000000020de5dde63dfc3f6e466bd10c5856bb6d41db0dcfdbb936ca408e97eafb31abf08000000000000000700000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb00000000000000060000000000000001000000000000000000000000000000206476e1fa30445a81616fae9774c4dce6d54f16eacdacc359286cc29dd8c41e0c0000000000000001000000000000000000000000000000203c0f081650865ca548a55fad61332af0f2080996bfd12a91ea010e6e7fe8439e0000000000000001000000000000000000000000000000205d13caf204c8e1a9fee074c24756a8fd8970ada5757fc08eec68e673b7b9b927000000000000000100000000000000010000000000000020ce7a4b6c2268f96cc47cbcd6a9f6fa92df7d2f06ea56db9a682530cf75f365e400000000000000010000000000000001000000000000002091d104f48591eedca3134cbc2dee83273b96d0013e1fcc9ec5513a468d9dc665000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a2200000000000000070000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a8300000000000000050000000000000001000000000000000000000000000000208adfb85cf98a5b2bcf9255423ef273e3765dbccda4bc1626812930d06a8794740000000000000001000000000000000000000000000000206dea52fbe6fcf6e4f01b42912ad4e2bfb31c9637b883841298dc852043756e55000000000000000100000000000000000000000000000020fecd39ef89a84774e39ebf1b07b9702b210a51d1877e9568ffce398ff357f8f4000000000000000100000000000000010000000000000020aaa2bb1d25834f13d7ba48ed7f635247a1c62b02e29899bea646aaac749de56b000000000000000100000000000000010000000000000020de5dde63dfc3f6e466bd10c5856bb6d41db0dcfdbb936ca408e97eafb31abf08000000000000001a00000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb00000000000000060000000000000001000000000000000100000000000000205a1b5910f312d4608a3c659658a5813375927117518986b58880ce34c493d16e000000000000000100000000000000000000000000000020e8800c3b12103f7baca525762dc6c6ab39e353edb8d4a91818c74f26252f91ff000000000000000100000000000000010000000000000020148badf58a4a39212166da12bcb05e4aa25d68467c3f16f84d99b4dea0326d24000000000000000100000000000000000000000000000020b63e3c8ab8dd78a0e05d556971048f310d542f94a21bad8c2fdef3950d991cd100000000000000010000000000000000000000000000002031e28da72f5e0c50cfb866400335e08c4532bf8c1fe7f55ed3cea803a23d3a04000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a22000000000000001a0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a83000000000000000500000000000000010000000000000001000000000000002095358652dc9b7e806741bd7a1a28ef5823bf88801fd6df29ebbfe532f9b20b61000000000000000100000000000000000000000000000020fc0138ea57ddae922a4c26719ad5766149f8a9085c0dc238ae06cb20cccadf9e0000000000000001000000000000000100000000000000201662783cef0484008223d0d8042a91d0a2306f72dee6e5230b53a3a0a8726981000000000000000100000000000000000000000000000020391fbd1fcdaa6f8c54238c393418e55145a4219a27d87cc8eb1b8f44bfa251ed0000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000003300000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000006000000000000000100000000000000000000000000000020223f524738e6680d29364e7805b7b897622499fa8a06b0a3d3e1dc338d1140c20000000000000001000000000000000000000000000000200432ff91f01b86b294c2005e51576a2dec098cc5ca95e79a7f3a6d5b27d487fd00000000000000010000000000000001000000000000002040c489b2ee691ca1230488acd6234d66cd90125b482ff691c8b4c5e026735564000000000000000100000000000000010000000000000020048fe6e1b15d94b5b8aeab46ca6cee0e1bf40001aa53c4393cd2f52420374103000000000000000100000000000000000000000000000020c936d6a17c00b11114c73c6012099a95c04441d0574b09355ce26ada9acffc090000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea000000000000000130000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a8300000000000000050000000000000001000000000000000000000000000000202fba7e831ec7fd9817e72cbd63a1599b696bc74a0fccda9eda93040fb33d278d0000000000000001000000000000000000000000000000202c62936b14559e1cc8a3ea0c4cf738e7dcda733cedcee96e948b9c3bceb0a095000000000000000100000000000000010000000000000020422cd668d3f30526fa9bac414d4ecf51571bcfd19f9f2008814b39a5916e94940000000000000001000000000000000100000000000000204cf0f4f16f86c0a8d1aaeadcca2981a4866214b444f6f856ff41a8c1baa48bc20000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000003700000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb00000000000000060000000000000001000000000000000000000000000000206c50fbe64bd158e21d3625fb581b1bbfc320ca9e8263d132c6f781fd6868d0770000000000000001000000000000000000000000000000207dd5aa8d2530d93caa316187599833eef056664343e51529c749c5a10f13b7660000000000000001000000000000000000000000000000203be60965851fc1e4596093328467449598768ec1d49268b3921cefeaab4f4a33000000000000000100000000000000010000000000000020048fe6e1b15d94b5b8aeab46ca6cee0e1bf40001aa53c4393cd2f52420374103000000000000000100000000000000000000000000000020c936d6a17c00b11114c73c6012099a95c04441d0574b09355ce26ada9acffc090000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea000000000000000170000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a830000000000000005000000000000000100000000000000000000000000000020487e532681ea17a4a51c9274f60911a3cd630848d363b410d720e90eb40a42f8000000000000000100000000000000000000000000000020d018dd1db731e67338329bac46601b58403782c9fdb4446dc7c71feb4961a44f000000000000000100000000000000000000000000000020d8d12539a28b8d2e1e502961a0aa12b28af30d40efba974ef85d6b5f8394d2c10000000000000001000000000000000100000000000000204cf0f4f16f86c0a8d1aaeadcca2981a4866214b444f6f856ff41a8c1baa48bc20000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000003900000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb00000000000000060000000000000001000000000000000000000000000000208a4c86ff673fa0d8b0560733cc7ade98e9b37666966f521c67da39fea25d659400000000000000010000000000000001000000000000002079253c06a2e3906b50e659bcc62c44e93bbce186aaa0b3c4c7a8845c21ae4bd20000000000000001000000000000000100000000000000209bde0dfeabc1facd61a53fac487e482eddd902fdb8861fc72e69db538a96c4c8000000000000000100000000000000000000000000000020566193c8484b82d6aa4a68be3e17aaa200baeef660c4a5810395c167ce233d93000000000000000100000000000000000000000000000020c936d6a17c00b11114c73c6012099a95c04441d0574b09355ce26ada9acffc090000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea000000000000000190000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a830000000000000005000000000000000100000000000000000000000000000020927e61219e0bf8a0b58b12e56c72a79a605d529e953f94aeeec188619b4538e5000000000000000100000000000000010000000000000020453acbf91e876725932970ac250f0440edf4c948964445e4972e04528117ca9e0000000000000001000000000000000100000000000000201662783cef0484008223d0d8042a91d0a2306f72dee6e5230b53a3a0a8726981000000000000000100000000000000000000000000000020391fbd1fcdaa6f8c54238c393418e55145a4219a27d87cc8eb1b8f44bfa251ed0000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000001e00000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000006000000000000000100000000000000010000000000000020cc4aba6e5ac1466693096a9eb3b54131483ca932d95852b7ba8d25fecf72ecaf00000000000000010000000000000000000000000000002045ade049de8b0bffcaebd811c35cf1aec9b8bfa521ea2a9c2e3a1dc32ea21b14000000000000000100000000000000000000000000000020e2112783e8dafb034d198bcc16dc02add0cc269a302ecc95594cc88071121f6e000000000000000100000000000000000000000000000020b63e3c8ab8dd78a0e05d556971048f310d542f94a21bad8c2fdef3950d991cd100000000000000010000000000000000000000000000002031e28da72f5e0c50cfb866400335e08c4532bf8c1fe7f55ed3cea803a23d3a04000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a22000000000000001e0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a8300000000000000050000000000000001000000000000000100000000000000208688ac43c01e5e0603fb3111b3f3d598dc3b54b4bb418ea09557cc6ea45c7d93000000000000000100000000000000000000000000000020e56cc72928458e3282ead7985ca53ad0909d163c29e970c89c663e9f4b2c162e000000000000000100000000000000000000000000000020f856d0214bc2760574876c2950446833614710df8efcacfa25ced5a5748eec36000000000000000100000000000000000000000000000020391fbd1fcdaa6f8c54238c393418e55145a4219a27d87cc8eb1b8f44bfa251ed0000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000002600000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000006000000000000000100000000000000010000000000000020d909e57fe17ce06b8fc692b02f2eb44c10d67f4e597b033e607d25bcdd8f468b0000000000000001000000000000000000000000000000205062e63a4a79dfc6d2a73398e4be950d7a7f8384d7101d2c9731c7734e43c6b6000000000000000100000000000000000000000000000020b49876d24a4fbfbec6e2d62660e2a08e53f90eaee4aed0a3a4b4a7eb466fb7110000000000000001000000000000000100000000000000200457e841c87d4814dff80cd2c79138748eb52c28f362e8bf4b72964d5d1c75c300000000000000010000000000000001000000000000002065ff132f45c9c53e731bb529fae6dd22f22474adffe354d1ff7976e50904c1d40000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea000000000000000060000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a8300000000000000050000000000000001000000000000000100000000000000208455ca787314ac1dd4b2ba529ed6b0f4c3883f9833e93fd3a4448d2f4a2984b30000000000000001000000000000000000000000000000206dea52fbe6fcf6e4f01b42912ad4e2bfb31c9637b883841298dc852043756e55000000000000000100000000000000000000000000000020fecd39ef89a84774e39ebf1b07b9702b210a51d1877e9568ffce398ff357f8f4000000000000000100000000000000010000000000000020aaa2bb1d25834f13d7ba48ed7f635247a1c62b02e29899bea646aaac749de56b000000000000000100000000000000010000000000000020de5dde63dfc3f6e466bd10c5856bb6d41db0dcfdbb936ca408e97eafb31abf08000000000000001a00000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb00000000000000060000000000000001000000000000000100000000000000205a1b5910f312d4608a3c659658a5813375927117518986b58880ce34c493d16e000000000000000100000000000000000000000000000020e8800c3b12103f7baca525762dc6c6ab39e353edb8d4a91818c74f26252f91ff000000000000000100000000000000010000000000000020148badf58a4a39212166da12bcb05e4aa25d68467c3f16f84d99b4dea0326d24000000000000000100000000000000000000000000000020b63e3c8ab8dd78a0e05d556971048f310d542f94a21bad8c2fdef3950d991cd100000000000000010000000000000000000000000000002031e28da72f5e0c50cfb866400335e08c4532bf8c1fe7f55ed3cea803a23d3a04000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a22000000000000001a0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a83000000000000000500000000000000010000000000000001000000000000002095358652dc9b7e806741bd7a1a28ef5823bf88801fd6df29ebbfe532f9b20b61000000000000000100000000000000000000000000000020fc0138ea57ddae922a4c26719ad5766149f8a9085c0dc238ae06cb20cccadf9e0000000000000001000000000000000100000000000000201662783cef0484008223d0d8042a91d0a2306f72dee6e5230b53a3a0a8726981000000000000000100000000000000000000000000000020391fbd1fcdaa6f8c54238c393418e55145a4219a27d87cc8eb1b8f44bfa251ed0000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000003900000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb00000000000000060000000000000001000000000000000000000000000000208a4c86ff673fa0d8b0560733cc7ade98e9b37666966f521c67da39fea25d659400000000000000010000000000000001000000000000002079253c06a2e3906b50e659bcc62c44e93bbce186aaa0b3c4c7a8845c21ae4bd20000000000000001000000000000000100000000000000209bde0dfeabc1facd61a53fac487e482eddd902fdb8861fc72e69db538a96c4c8000000000000000100000000000000000000000000000020566193c8484b82d6aa4a68be3e17aaa200baeef660c4a5810395c167ce233d93000000000000000100000000000000000000000000000020c936d6a17c00b11114c73c6012099a95c04441d0574b09355ce26ada9acffc090000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea000000000000000190000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a830000000000000005000000000000000100000000000000000000000000000020927e61219e0bf8a0b58b12e56c72a79a605d529e953f94aeeec188619b4538e5000000000000000100000000000000010000000000000020453acbf91e876725932970ac250f0440edf4c948964445e4972e04528117ca9e0000000000000001000000000000000100000000000000201662783cef0484008223d0d8042a91d0a2306f72dee6e5230b53a3a0a8726981000000000000000100000000000000000000000000000020391fbd1fcdaa6f8c54238c393418e55145a4219a27d87cc8eb1b8f44bfa251ed0000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000003f00000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000006000000000000000100000000000000000000000000000020ab7c5b2e2294d8a592aca56e3c94c9933d3733765b88fa96a8304e361663c4e6000000000000000100000000000000000000000000000020f3c3f3666ad5d60b533257c31f351d3af43504faaccfa329606cefcbf96d320d00000000000000010000000000000000000000000000002004178e56005cc05e23c4caaaa7171d16a4f44c8b3ca07798f9d3abda2c84fa99000000000000000100000000000000000000000000000020566193c8484b82d6aa4a68be3e17aaa200baeef660c4a5810395c167ce233d93000000000000000100000000000000000000000000000020c936d6a17c00b11114c73c6012099a95c04441d0574b09355ce26ada9acffc090000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea0000000000000001f0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a830000000000000005000000000000000100000000000000000000000000000020628d65b290315f2142b372ddc6ec9b91b92fd4e530394d9a7aea6434ad7a5c37000000000000000100000000000000000000000000000020e56cc72928458e3282ead7985ca53ad0909d163c29e970c89c663e9f4b2c162e000000000000000100000000000000000000000000000020f856d0214bc2760574876c2950446833614710df8efcacfa25ced5a5748eec36000000000000000100000000000000000000000000000020391fbd1fcdaa6f8c54238c393418e55145a4219a27d87cc8eb1b8f44bfa251ed0000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000003e00000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000006000000000000000100000000000000010000000000000020982efe943de905beaa23bc168acb1904460e2711ab3b5509791f76084cdfd1a0000000000000000100000000000000000000000000000020f3c3f3666ad5d60b533257c31f351d3af43504faaccfa329606cefcbf96d320d00000000000000010000000000000000000000000000002004178e56005cc05e23c4caaaa7171d16a4f44c8b3ca07798f9d3abda2c84fa99000000000000000100000000000000000000000000000020566193c8484b82d6aa4a68be3e17aaa200baeef660c4a5810395c167ce233d93000000000000000100000000000000000000000000000020c936d6a17c00b11114c73c6012099a95c04441d0574b09355ce26ada9acffc090000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea0000000000000001e0000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a8300000000000000050000000000000001000000000000000100000000000000208688ac43c01e5e0603fb3111b3f3d598dc3b54b4bb418ea09557cc6ea45c7d93000000000000000100000000000000000000000000000020e56cc72928458e3282ead7985ca53ad0909d163c29e970c89c663e9f4b2c162e000000000000000100000000000000000000000000000020f856d0214bc2760574876c2950446833614710df8efcacfa25ced5a5748eec36000000000000000100000000000000000000000000000020391fbd1fcdaa6f8c54238c393418e55145a4219a27d87cc8eb1b8f44bfa251ed0000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000001700000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb000000000000000600000000000000010000000000000000000000000000002092483be61616ee1aa2e2bd19ed7c98869bb49ef93d14c7295b6c60cda86149870000000000000001000000000000000000000000000000202cd39244e27f043774a6e8ccee8a4491d4fb632b137f36ab2e985c1b6d7bfb000000000000000001000000000000000000000000000000200e646c5068e1a4a1202a81fa3802d77e38cb65275c80a6c1c32e11c077f8fc75000000000000000100000000000000010000000000000020c50f746a66cbe3f7c453b7db7946b7c68579bb62222abd7d3fee65dc6b8fe16100000000000000010000000000000000000000000000002031e28da72f5e0c50cfb866400335e08c4532bf8c1fe7f55ed3cea803a23d3a04000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a2200000000000000170000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a830000000000000005000000000000000100000000000000000000000000000020487e532681ea17a4a51c9274f60911a3cd630848d363b410d720e90eb40a42f8000000000000000100000000000000000000000000000020d018dd1db731e67338329bac46601b58403782c9fdb4446dc7c71feb4961a44f000000000000000100000000000000000000000000000020d8d12539a28b8d2e1e502961a0aa12b28af30d40efba974ef85d6b5f8394d2c10000000000000001000000000000000100000000000000204cf0f4f16f86c0a8d1aaeadcca2981a4866214b444f6f856ff41a8c1baa48bc20000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000000400000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb00000000000000060000000000000001000000000000000100000000000000206c442da8a274cf5f7dd82c58cfff0c0dc1d7ba18df2523e250b50856e4bd29b1000000000000000100000000000000010000000000000020123a176214e18ad49f00cfe98ee962cdb2b617c58d77c4c61f9f70f369571f000000000000000001000000000000000000000000000000205d13caf204c8e1a9fee074c24756a8fd8970ada5757fc08eec68e673b7b9b927000000000000000100000000000000010000000000000020ce7a4b6c2268f96cc47cbcd6a9f6fa92df7d2f06ea56db9a682530cf75f365e400000000000000010000000000000001000000000000002091d104f48591eedca3134cbc2dee83273b96d0013e1fcc9ec5513a468d9dc665000000000000000100000000000000010000000000000020a9fe3178d8a5677d29a7c14caa9ea658b991469ae6ea2de666f0ffcc25528a2200000000000000040000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a83000000000000000500000000000000010000000000000001000000000000002010c2a49374f4c2e06a410295eeb89a82dbfcf62ecf4dc02369ffea35abdea03a0000000000000001000000000000000100000000000000209874768faef252a16a36b859809b1dcca738f0b57c48e09caf1d97a44f8505d5000000000000000100000000000000000000000000000020fecd39ef89a84774e39ebf1b07b9702b210a51d1877e9568ffce398ff357f8f4000000000000000100000000000000010000000000000020aaa2bb1d25834f13d7ba48ed7f635247a1c62b02e29899bea646aaac749de56b000000000000000100000000000000010000000000000020de5dde63dfc3f6e466bd10c5856bb6d41db0dcfdbb936ca408e97eafb31abf08000000000000003100000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000006000000000000000100000000000000000000000000000020c68dfd32ce520a1722b89bb00ddc5147c281ca204f713b0bb4276f93240fd29b000000000000000100000000000000010000000000000020ec677a347dc4cda65e161d40b370cb69adbcc0a7cd9a05711ff1b37d6c0f519a00000000000000010000000000000001000000000000002040c489b2ee691ca1230488acd6234d66cd90125b482ff691c8b4c5e026735564000000000000000100000000000000010000000000000020048fe6e1b15d94b5b8aeab46ca6cee0e1bf40001aa53c4393cd2f52420374103000000000000000100000000000000000000000000000020c936d6a17c00b11114c73c6012099a95c04441d0574b09355ce26ada9acffc090000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea000000000000000110000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a8300000000000000050000000000000001000000000000000000000000000000209a09596a2a745c140be898b552b00cf6de31afa15adb60e166812036bef4c07000000000000000010000000000000001000000000000002081d8969a4ef844eba11068ca8e8cfed874e790e9b45c5d7386acfecd72038c04000000000000000100000000000000010000000000000020422cd668d3f30526fa9bac414d4ecf51571bcfd19f9f2008814b39a5916e94940000000000000001000000000000000100000000000000204cf0f4f16f86c0a8d1aaeadcca2981a4866214b444f6f856ff41a8c1baa48bc20000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000003800000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb0000000000000006000000000000000100000000000000010000000000000020bc408186d1d26e6d684583666cd869e915f850c3fd2018129008a7c758ecbe8b00000000000000010000000000000001000000000000002079253c06a2e3906b50e659bcc62c44e93bbce186aaa0b3c4c7a8845c21ae4bd20000000000000001000000000000000100000000000000209bde0dfeabc1facd61a53fac487e482eddd902fdb8861fc72e69db538a96c4c8000000000000000100000000000000000000000000000020566193c8484b82d6aa4a68be3e17aaa200baeef660c4a5810395c167ce233d93000000000000000100000000000000000000000000000020c936d6a17c00b11114c73c6012099a95c04441d0574b09355ce26ada9acffc090000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea000000000000000180000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a830000000000000005000000000000000100000000000000010000000000000020aa7b977b09e8560c1a762ab6f1cbc78e67e5a3c4319341cbc39da87f9749066d000000000000000100000000000000010000000000000020453acbf91e876725932970ac250f0440edf4c948964445e4972e04528117ca9e0000000000000001000000000000000100000000000000201662783cef0484008223d0d8042a91d0a2306f72dee6e5230b53a3a0a8726981000000000000000100000000000000000000000000000020391fbd1fcdaa6f8c54238c393418e55145a4219a27d87cc8eb1b8f44bfa251ed0000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000003700000000000000204d9b14ec26d8bfb2e36255940f2a3c35b23853d50a13f8ec413bf60657a7f1eb00000000000000060000000000000001000000000000000000000000000000206c50fbe64bd158e21d3625fb581b1bbfc320ca9e8263d132c6f781fd6868d0770000000000000001000000000000000000000000000000207dd5aa8d2530d93caa316187599833eef056664343e51529c749c5a10f13b7660000000000000001000000000000000000000000000000203be60965851fc1e4596093328467449598768ec1d49268b3921cefeaab4f4a33000000000000000100000000000000010000000000000020048fe6e1b15d94b5b8aeab46ca6cee0e1bf40001aa53c4393cd2f52420374103000000000000000100000000000000000000000000000020c936d6a17c00b11114c73c6012099a95c04441d0574b09355ce26ada9acffc090000000000000001000000000000000000000000000000205ac0114840cca9a50f4c61a3c0d01f28639b43d0a68771621bf9e35041e53ea000000000000000170000000000000020efe5791a179bae3ab703cab3c684cef9dc042b507885b09fd7a6ddd8230a9a830000000000000005000000000000000100000000000000000000000000000020487e532681ea17a4a51c9274f60911a3cd630848d363b410d720e90eb40a42f8000000000000000100000000000000000000000000000020d018dd1db731e67338329bac46601b58403782c9fdb4446dc7c71feb4961a44f000000000000000100000000000000000000000000000020d8d12539a28b8d2e1e502961a0aa12b28af30d40efba974ef85d6b5f8394d2c10000000000000001000000000000000100000000000000204cf0f4f16f86c0a8d1aaeadcca2981a4866214b444f6f856ff41a8c1baa48bc20000000000000001000000000000000000000000000000209517ff1beb809b3427b2d45a2abedffbe3393688b0f055a4265f0a4f992cb99a000000000000000238d8c57ef38077cfb00256a30256b19cf408f43aae5c6fedc693ed5f4cb466c8136ed7791953a3ace00c96923aaccf8b76d1ff133a1c5a52520a66895a6fc51d455241d5 \ No newline at end of file +0x040000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec3b8a6660e79ffa5bc1b3aeda35a0aeab6e7b408c29c83550df3bb166597efe6800000000000000533b8a6660e79ffa5bc1b3aeda35a0aeab6e7b408c29c83550df3bb166597efe680d48b9f9a1f52577da4d5cb94d65e04052d79db412bde4a0173fa42abd6d4a4529b3ffe4861fe3cac8826a430c2369589f4ddeccabb52625f775b34bbf7af804026ba1e029c9bb574382cf9e82fd61417bef7b8854687e04db1103e8b32273581083ff769e9f72f5ea8c134f3cb10ebab5b18f0b3ea2d36b09c4edb3bd66d8110c1a2960d0f0a8b4518e0e188ef2e6476bad69a9a60a76184755138b7fac40b81293fd51191d3ecd94bc608c2f7549a56a31323c2fe127fb97ab7395b30238543c82cee414b34b8597c6467acabe7f651a6310503e344e7964a961b97e5d43983b8a6660e79ffa5bc1b3aeda35a0aeab6e7b408c29c83550df3bb166597efe680d48b9f9a1f52577da4d5cb94d65e04052d79db412bde4a0173fa42abd6d4a4529b3ffe4861fe3cac8826a430c2369589f4ddeccabb52625f775b34bbf7af804026ba1e029c9bb574382cf9e82fd61417bef7b8854687e04db1103e8b32273581083ff769e9f72f5ea8c134f3cb10ebab5b18f0b3ea2d36b09c4edb3bd66d8110c1a2960d0f0a8b4518e0e188ef2e6476bad69a9a60a76184755138b7fac40b81293fd51191d3ecd94bc608c2f7549a56a31323c2fe127fb97ab7395b30238543c82cee414b34b8597c6467acabe7f651a6310503e344e7964a961b97e5d43981fcae388c10f0310e6552f841d230c8abbc5e3952fd6e048dbcb86da2bf4dac63e4a437fef1a8cbcc09bf7ef5cd0de7413278462f4a280672fe7fc60fbb24d1f38fb1266f415fbd2618cfb2426d85025c3e9ac6c13d4ce1cb5709b216b4da6b23ad5f1e1878da42a2ccdff2145677506b43c7f3953fd0fb5837646c7449552fa1fcae388c10f0310e6552f841d230c8abbc5e3952fd6e048dbcb86da2bf4dac61af710639a33a9ee25a99551d3fd807e70499333913a0f7ce486c5d6cd45a1b60e3b793fd5a68f9a482cf67859f3839a0135ebf429b91712d8b08c7fa3a7567c25783486835278b791d4f86fac81f6b5f44bd4014429fd274ea0d8ff2b30eabb378ae8b217281e98232cf4c6dc2b21498547a11fd3025f8ab5fc7ade97636da70b9c4039ea8b3beac33234743333ca87f5134f53de0e5205308912bb2f311cc028e0b7f36cbe74e06f193787efb9169bffc97bda59757876b0ee320f0e0284712fb0a4b594cb133a84d3b178be4595d031abfaaf17d83f3aa7f7c86c6477497e39b510be988b37278da62e5c6fcd77080526baae86e6536138ce73158217757114fad50563699062130a310707b77fc1bc087e3b682af35da42912bbed2a3db539f429a1fa53e4b8ea5cf81151d917a9c6df281fe390dd60fc915b3d85c942d23f79c1653760ef434bcdd9325ea674961fd9467593c46b4c11254bc5b581f4752714e715c848cc082c40d96b40a49ffae3a9e3c2a3707aed3c5dc8c493c3852524d458cd7f86fdba1387bf56c6d2174e370b3a80acf28f008c4d6010f5d0c592255f2a95b76358c4ecdcd15a9d757e6ed48acf298ec60238d31894388f75d2432c0ddd3571b65a3f78c96f8a052a2f5c1059f2586d8b149d986300e1c76cb79b3f79c1653760ef434bcdd9325ea674961fd9467593c46b4c11254bc5b581f47524d458cd7f86fdba1387bf56c6d2174e370b3a80acf28f008c4d6010f5d0c59235d6c0e2bc4bf9b3478b00e830212313714dbb35ed434ef0f81e1f97afa9dde0207754c58fa029b19d60823cb9b80600c65426bb7cd0f76bd4bb35a6ab228f6d093cfc0545994d8462194e84f773fb5e55e6f18257f6b4c0b7759840e0eae616000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011386e11508028bd92fcb743e3ceb317fe6f5df7f6f1d300aa7f809d449ea0c022e4dfe7d12164b6239e7c9eb2ebdca4cbcc6d444a2201b7c000b2ef4486f2e9301eb82bec9b8486ae3708fadc07941183b8fb79edf197285a2a872fdb26e9f49308d1e68759d249863813a3c914ced6451c4e9e114040b78d30b1753caf4562e1381845cd9d1929d28af991511cd6b73c337557dec89e983ec4ca6a61326d025104662ae04621992f1644ff6e07dbabf4fc02d8fb207b7d7a581b064f8a49618211033eb9c643f5aa17d6d6ca1bb6b7eafbc604d1357cc738f677838f84f699b2e5a3d96333ebff3ee0af36678a36a49a49b81dac445b83cfd9afafa3d1b765122742dea9cfabcd5006f3d3344fd28adb33119837314942138ce20930c14a3ef02642d30fb1a2590d0ff02320494e00adf51ccb1ed181c5985a32605c23c8e4c04060aa38c19f2e05ca7a9739317f6b800cb62fb5239e178153a818b4c56d2500eb257f27891f0ca13714e85da863122c32f475ac530ccaeeb609063d779997c2c540d28920a418db3a6fe15b4809af09d78b633ac8080e545dba5e0213495740ad6d6dd1167d144780a998114791307ca8d6b1ca4394812e2626e2bb0fa267539e43bc6c21a50a9f8a3fdaa801b11c295065e29310dd12d9dca0d29ba0c3ec4378ce952f611196c6e223a96364b0e815988e7195d6a1fe4739343f43891a05d0523a72265b1e1ba213d0539480b67cc811195501ca6efe7e67107a0dc596f6f3ef15adc4bf1cca3a0d046d0335a292ffaa53f387c1c6cf3021946253a125e8c1b6584e14daa5c859bda222ad588895a241f0e837a115d6a8dfbbeabf029804a08cb88878c651b92667a32bbcd6e579972825ff0330f1cd625bb36b5bda0a940253c4909ed3dfaa23ea5f69763398832bb1b29e242fdb37e42ae03817d76f26831d06a215bd7d99e225fb0e631e3cccef4daf6126e6438169ad736971bd733e60c2e5bfc1a4f690282180993a161dc042d6bc330b9d726aaef5476d772153a2b3316f51d7f572789ff802a0ab7ea5a94820235a8e4a479befdd609b0e39b911716bf4f3d0177c64e2a1e5806404df80697708d5955c4506b023c764d8566128b118bd25cd4a88e33805f8b08bafb39a45de3d3b9ef1fe0d8dda473a3381a952b33d23ac99eb5e027d7f8b3ac77261c44217a8df7cf370485223a1991d22dbe7e2f92c088ce97cfc0af663c5a49a20aa3a911020ac06609cf037b26026da6f43d3c85b46332cda28f4c9a1d257ce7b66c404ff57c3ad427693e3320e5a08da3ab3184098bcd5e02c70ae14e1ef4961d49b2d955779a7f67196a834e0b98c93ec41ee89881b9bca881ba7c672deb97409af7d2c942480213e6c407fdf32966b4c806b2624e45eeb55e757026af6b0de308efd88a2a8f5b95d6f536fbbb89c036f41463da7e94e3f3c10299bd1c2b60d8c9d5530eed1292a4fc5d472eabf191dc92224c25c11f608b7574a554eb06636054d8ba984845e7f1f2393da13aa3db4c4518525e3d2ff319d7ec1e5de34a5e5abd048b28a36d173bfbaba0dafab00a56882e3ce1069ab30c677937f40ec2cc289905bec7b29d0141ee6c0d8449c71561200951110389a4d974683608aadbaac0b5cd9ef1e88b6ed648ac7bf530321e2feb178f6389ae42eddc7b9a4073bbd19cd0d1903da304e2079bef3e4e68fedc349e3a2d32c27d6c01b6f7bb149b2e591fa1958325ac84fcfb89d2fd23544096d77903d705e49c48196ba36aa0458c744e62e738feecc9abb9734a89bb3278e4aaa8000000000000000a00100102020203110407000000000000002c0202020202020202030303030303020202010202010101010101010101010101010101010103030303030303000000000000000200000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff259000000000000000201010000000000000dc00a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa135eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5603256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c85250da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b6044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b2a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a1584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff770a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa135eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5603256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c85250da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b6044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b2a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a1584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff77291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa126c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b352254da5cad22b2bb31a255d43899f5be174c33d783688ffa31918b2d0e604e3319a2a83a6dd65b246c9f7d539b67b09c3b0afe9bcc31f641e4746e726732ac054d2413280ec17c6620f5d9331f6279010efdd8b39bd72e8d5068ef8a9e85020e21a3242b6971d3fe4ccb9ef696b9135da7bcf4fca2d262a5eaa074516d97dc040243d4624103ea078037d2db2be41cd84ba35cf91ab2d2197a06bed39137111249a9fbefe0ae6d10083758728c436f632e70c3dee37c0fa87bf17cbf10fe1d09b2b29c8babd2a0b67e37f0c6846a560b6c78a30f0ca75ad56ceaedaf1344f12393439f711e2b08f75b68f05cb3b276815f865555ed2e10a9d53c730721c2362624398d0ba3a6e2b9dfd9febb35b3873f9ce34b46adf497ab23701e0e96f06a0da19af7f417d8eb69f248beb2644edf3b290f5bc8b5ed5b52594d3115ed7ada21cb3739171b79e6d1926a281a86449c7ace69200e0765a4f796d0fe079a1014262571d9c779e3853b1a218e4203c4bd360ea7a715413a46d34827875fea93fc2624398d0ba3a6e2b9dfd9febb35b3873f9ce34b46adf497ab23701e0e96f06a0da19af7f417d8eb69f248beb2644edf3b290f5bc8b5ed5b52594d3115ed7ada27177fb2c298c3e589cfb206d276b9d07679c8d79643496a368a65eef2d2fb491bf90a1889423f7d0d781be9bda36aaff0d5258b1656ea0fe114fc9590d8da451ad4c5a96eb27d29759dd9ea539f7bde9c2c9e9e0317560410399d89568fb04f3baa8b5930a0b9898617b57e6630c42e29d90a9259c187073aa0ce5f0928421d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001215ebba77b4db36265d82f216ebe040b8e43301151f85e4da04175b72540d2b4093344aa5551c9d5f5e550ed013a08dfbd10410b94fdc010412822d567e884b92bd42515e3b696dd829d945b17c664461221a67dbbecc87c05d9d07f5f0a71853dbed5249e75063b30ad99d106d9530cc22653c567b0f4e01557b039211155c617da6479265927e185d2d73d372bff4f2e873a95359b8b6a0f37ad0179950c34200d21315a898ee21cc4662f5ffc477ab2baaa06ae28764c04764f2aa609fd1418a741d5987f7763923aa3a9e4d825a3c611007d2d1a3fe1c6dc3b4f6301313525cef83c7d3327068ecd76d87c5c57d360343b129e81ea96cca82a2e75b4d5f205a6e70ca2ab65100f014f978e9796945da1c77551e3f0a9dd6e3fe21abf9143108255465a529a572ae1b1b54394dad36846488042a56ec14c6fe952d18df069355b2b6332619f6e17c56f48b51e1ec19c549258d3efbf5371381317cb587cbf2f1b50bd9b18486bc4d1ad07b8f37ba24a5eb2749bdab1f57267741639252447170f6423726cf447b56acc165c82efb98dc57b8417f3660477fde88802ece7581c120860c5b2f4dd377e5bb6c685c77ab528d9a3c8445a577b48155d621c6c512d00fa2f4cfdd0530e324ccc8d77190144133bfb458fee8ce0e5815f1958afaf3aabc6d365494c3fe7a8b4b601d7609bc1d7197ad8ea2883b415324b5011208f08b38855ec1ef24871d5e05e65b5151207792f3d2d606d35a27411cafe2a00f016f8dd3503b8f3a886f6381060bcbc3f08922007b5bcdfbde3a85380fa7a39b71ea68aa63202dabb517b741ead5ebc7419f2f5f139d5498aa4d31ce2c27363260306246aae23311b3d68ec6e942727bd2eecdd2f46c917a2f188697e15467b1819ddae318bf4dcd55b17f3fa4e4d99ece632e45bff54b54e313e4ec274c10c0c2b92d8f8fb08ed61065655fc37c98dbf66bc23cfd92a39d6452ec97465132f562ec078961936ee31a1f5c4f08b6f7808883adc2b1dc794be6eef4b647de38e580f3cec39d5447ba79dcd3f56481d4476689f13e26a03dfa79e41551822693b4131fc43cb87d7eedffac21f8ce47604d5b52b6f28a05bc408c76d759890a0228920cd61561e622fbf4729eef4a6b6262af44089635c720e09d25fb6260a60a0271a7a8e3eefe81bd012c1fcba3907be1af3eb3798a5351c2f22196f01520756063505db2eaca7cb6c118a0773a439208666a25ebc401aed8634853835bca17ccf179d60261259eae4300e1035a637144d282b386114aa91cd89a1ea421aa9b0be3f791c9a36cd2080991066a02005ce3bd9e9f0adc2ed35646d789f172e81892225ca0650c0869e913ee053a594ba70e27f14edfacd1fe986f6450333a380f3033edb9eb85b150517c9774aecaecafb4257e4501c81c4a7bbabde2660e5ea3ae807121e6171151738ff202a2644f5fd60e1b6ea1710bb69bebe72a1d228cf17891d575cd005ed347d37490087b7337d03814da192397db0618d95092f4370928d061f655fbbc7963ae95add872fba10115aee62ad7162c4d708207857af60d7733cfcc337e7958d062f5ed29dcec2feb3009681f2ca026a5512013888cfa97bad17616564587c5586670c03e25e4876314d5e8d82710537d261878f98e7f2037f27c25397202a42f211f61cc3b7a43ba4c8900e38ff31a3ff7fd68b05b1bc0b093a96b2855133dbb7ad638dd547d4c769b5dbc814147f8977e09f3caa55b3d95f2a8885194bdcf7f5d6079d10bea0d29a9635ed4cd029d8434a775c821a4e16da05a21c604c153979d4d5b4169bc22e5da3e920853c172c36774e5abe1b2aad2007b1dc16bc129755a8ea24021754ec94a5fabca5cdf72b34a66ced589fe4fdc117c3f1468f9773097839a306a1e1e8dd6d6e0213cdcb86851a96088ba8cb7a840281fa11cec3160470754e0f11984bab0e0a38283e1e63ea8fac5f63707f543e3cf2c34064b11fabd018c452a280ab136da447d4adae8629dd21611d8f56f6953a49d1d59f338127fda5bf82217f116db50d0be89b62d5dc5b85e022cfa092d810f4df5397033e67469c4a07ac1a5e2e7c2d269c004fe4688e0de28dc37503b11321004ffa7604461606ad6cae91468b08bd4a3bb88dd90406214dd855fe13a63292e1f572c5d814410be7311ecf189116e8baa3a73167b838da308efb62ad05281314f0ad7c196b92dc983413b825753eba9d072f5e8ee73470b2612ba69b3c0a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa135eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5603256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c85250da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b6044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b2a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a1584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff770a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa135eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5603256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c85250da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b6044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b2a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a1584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff77291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa126c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b352254da5cad22b2bb31a255d43899f5be174c33d783688ffa31918b2d0e604e3319a2a83a6dd65b246c9f7d539b67b09c3b0afe9bcc31f641e4746e726732ac054d2413280ec17c6620f5d9331f6279010efdd8b39bd72e8d5068ef8a9e85020e21a3242b6971d3fe4ccb9ef696b9135da7bcf4fca2d262a5eaa074516d97dc040243d4624103ea078037d2db2be41cd84ba35cf91ab2d2197a06bed39137111249a9fbefe0ae6d10083758728c436f632e70c3dee37c0fa87bf17cbf10fe1d09b2b29c8babd2a0b67e37f0c6846a560b6c78a30f0ca75ad56ceaedaf1344f12393439f711e2b08f75b68f05cb3b276815f865555ed2e10a9d53c730721c2362624398d0ba3a6e2b9dfd9febb35b3873f9ce34b46adf497ab23701e0e96f06a0da19af7f417d8eb69f248beb2644edf3b290f5bc8b5ed5b52594d3115ed7ada21cb3739171b79e6d1926a281a86449c7ace69200e0765a4f796d0fe079a1014262571d9c779e3853b1a218e4203c4bd360ea7a715413a46d34827875fea93fc2624398d0ba3a6e2b9dfd9febb35b3873f9ce34b46adf497ab23701e0e96f06a0da19af7f417d8eb69f248beb2644edf3b290f5bc8b5ed5b52594d3115ed7ada27177fb2c298c3e589cfb206d276b9d07679c8d79643496a368a65eef2d2fb491bf90a1889423f7d0d781be9bda36aaff0d5258b1656ea0fe114fc9590d8da451ad4c5a96eb27d29759dd9ea539f7bde9c2c9e9e0317560410399d89568fb04f3baa8b5930a0b9898617b57e6630c42e29d90a9259c187073aa0ce5f0928421d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001215ebba77b4db36265d82f216ebe040b8e43301151f85e4da04175b72540d2b4093344aa5551c9d5f5e550ed013a08dfbd10410b94fdc010412822d567e884b92bd42515e3b696dd829d945b17c664461221a67dbbecc87c05d9d07f5f0a71853dbed5249e75063b30ad99d106d9530cc22653c567b0f4e01557b039211155c617da6479265927e185d2d73d372bff4f2e873a95359b8b6a0f37ad0179950c34200d21315a898ee21cc4662f5ffc477ab2baaa06ae28764c04764f2aa609fd1418a741d5987f7763923aa3a9e4d825a3c611007d2d1a3fe1c6dc3b4f6301313525cef83c7d3327068ecd76d87c5c57d360343b129e81ea96cca82a2e75b4d5f205a6e70ca2ab65100f014f978e9796945da1c77551e3f0a9dd6e3fe21abf9143108255465a529a572ae1b1b54394dad36846488042a56ec14c6fe952d18df069355b2b6332619f6e17c56f48b51e1ec19c549258d3efbf5371381317cb587cbf2f1b50bd9b18486bc4d1ad07b8f37ba24a5eb2749bdab1f57267741639252447170f6423726cf447b56acc165c82efb98dc57b8417f3660477fde88802ece7581c120860c5b2f4dd377e5bb6c685c77ab528d9a3c8445a577b48155d621c6c512d00fa2f4cfdd0530e324ccc8d77190144133bfb458fee8ce0e5815f1958afaf3aabc6d365494c3fe7a8b4b601d7609bc1d7197ad8ea2883b415324b5011208f08b38855ec1ef24871d5e05e65b5151207792f3d2d606d35a27411cafe2a00f016f8dd3503b8f3a886f6381060bcbc3f08922007b5bcdfbde3a85380fa7a39b71ea68aa63202dabb517b741ead5ebc7419f2f5f139d5498aa4d31ce2c27363260306246aae23311b3d68ec6e942727bd2eecdd2f46c917a2f188697e15467b1819ddae318bf4dcd55b17f3fa4e4d99ece632e45bff54b54e313e4ec274c10c0c2b92d8f8fb08ed61065655fc37c98dbf66bc23cfd92a39d6452ec97465132f562ec078961936ee31a1f5c4f08b6f7808883adc2b1dc794be6eef4b647de38e580f3cec39d5447ba79dcd3f56481d4476689f13e26a03dfa79e41551822693b4131fc43cb87d7eedffac21f8ce47604d5b52b6f28a05bc408c76d759890a0228920cd61561e622fbf4729eef4a6b6262af44089635c720e09d25fb6260a60a0271a7a8e3eefe81bd012c1fcba3907be1af3eb3798a5351c2f22196f01520756063505db2eaca7cb6c118a0773a439208666a25ebc401aed8634853835bca17ccf179d60261259eae4300e1035a637144d282b386114aa91cd89a1ea421aa9b0be3f791c9a36cd2080991066a02005ce3bd9e9f0adc2ed35646d789f172e81892225ca0650c0869e913ee053a594ba70e27f14edfacd1fe986f6450333a380f3033edb9eb85b150517c9774aecaecafb4257e4501c81c4a7bbabde2660e5ea3ae807121e6171151738ff202a2644f5fd60e1b6ea1710bb69bebe72a1d228cf17891d575cd005ed347d37490087b7337d03814da192397db0618d95092f4370928d061f655fbbc7963ae95add872fba10115aee62ad7162c4d708207857af60d7733cfcc337e7958d062f5ed29dcec2feb3009681f2ca026a5512013888cfa97bad17616564587c5586670c03e25e4876314d5e8d82710537d261878f98e7f2037f27c25397202a42f211f61cc3b7a43ba4c8900e38ff31a3ff7fd68b05b1bc0b093a96b2855133dbb7ad638dd547d4c769b5dbc814147f8977e09f3caa55b3d95f2a8885194bdcf7f5d6079d10bea0d29a9635ed4cd029d8434a775c821a4e16da05a21c604c153979d4d5b4169bc22e5da3e920853c172c36774e5abe1b2aad2007b1dc16bc129755a8ea24021754ec94a5fabca5cdf72b34a66ced589fe4fdc117c3f1468f9773097839a306a1e1e8dd6d6e0213cdcb86851a96088ba8cb7a840281fa11cec3160470754e0f11984bab0e0a38283e1e63ea8fac5f63707f543e3cf2c34064b11fabd018c452a280ab136da447d4adae8629dd21611d8f56f6953a49d1d59f338127fda5bf82217f116db50d0be89b62d5dc5b85e022cfa092d810f4df5397033e67469c4a07ac1a5e2e7c2d269c004fe4688e0de28dc37503b11321004ffa7604461606ad6cae91468b08bd4a3bb88dd90406214dd855fe13a63292e1f572c5d814410be7311ecf189116e8baa3a73167b838da308efb62ad05281314f0ad7c196b92dc983413b825753eba9d072f5e8ee73470b2612ba69b3c199708d32e6449e450523f4e624c14d8be8baccc0b83f0e5bd5d9dfff78b4ffc2668f72cd19bb61bafadc0b19db3eb2763baec2ffdc90835dbcf92ed0874b0053ff32c1fe7f57175919b3c87eb7c683b9673c7003046bb6119a6e512d5b88feb000cd3e0180a8e8a6e64c378148397c48bd2d1fbd9063dba7f864bda2a4770163fbfdc9f87cb374bd8082ea7996e092967287f10cc2dc4771b8db5aa2c9acf93004023607834c8b427f7d1586691f6d6bb1e19eb3d1f34a47d9f7b42d365306e3ebf4f1da6f8147b3828e945ff262dce7ab01763d7b0f1e5250fc89edf060ddb0140b0e25907eb84c7d716ba00d9d231a7968198319c0736741d684e20f9f226199708d32e6449e450523f4e624c14d8be8baccc0b83f0e5bd5d9dfff78b4ffc2668f72cd19bb61bafadc0b19db3eb2763baec2ffdc90835dbcf92ed0874b0053ff32c1fe7f57175919b3c87eb7c683b9673c7003046bb6119a6e512d5b88feb000cd3e0180a8e8a6e64c378148397c48bd2d1fbd9063dba7f864bda2a4770163fbfdc9f87cb374bd8082ea7996e092967287f10cc2dc4771b8db5aa2c9acf93004023607834c8b427f7d1586691f6d6bb1e19eb3d1f34a47d9f7b42d365306e3ebf4f1da6f8147b3828e945ff262dce7ab01763d7b0f1e5250fc89edf060ddb0140b0e25907eb84c7d716ba00d9d231a7968198319c0736741d684e20f9f2260552acfb4136a8687c086867198f336159a70e0de3347500c25c57abf0d8fec13c5f354a6809f5d8fc0d754f10b0845dec5a231524772141e6eba5461ed414fa25edd8763b0e9f24ec8bee196162f82280e8709816f727bdb7fdac9abcdb63e01de7898ca0b76c5ccf8ea31d9866d81454a22428dfdbb89c3b361d9f92cb08572d20453530a536138a5e783467eae3615daf0175f4fbd68ec917cd7f4275be3927541176da83940bcddba5bf8fca313a0cf166a61adf78fb1346d8c784dd7d830acae72a2f689511f97308548c27da6e25827a2532409dc67754fc46b0e92e44227540383b7afdf410f271f0e0351c0831df6f510d3bd8407f2ed3eb70f5bc712d9984b2636e7d95d7648d19f09250ebbdbbed363f3f0389a1539eebd5e1d9b6011c70368251cafa3a9d1d43276700552c4966997ab9e345bb35caec036d63d53922206432f3dfcc7c9db66cd40c3169170a7debe25aba8d226ca0ae7c7d7cd0256d0959e0317b94da37c2704348955c8259f71fcfa70eeb3e4982c8959e72fd14bf7a8e83bab872976ba97f850dd47c47b71a560f215c5d1ed32ca6524b9d6125b94128f73e9dca3463e79356e8a38e0390eaba0e47185910389ef44e60e2b23922206432f3dfcc7c9db66cd40c3169170a7debe25aba8d226ca0ae7c7d7cd0256d0959e0317b94da37c2704348955c8259f71fcfa70eeb3e4982c8959e72fd09f67cd79f6c9ea55552cf333eabf41a64ebd2fb578364a8c11b8073f59370eb36d0d7bea811feabb88bcb8754ef126671f65ad6cfe084bd4307db1effeda6bd045f67fec76c6d85e7cdc28969f10237420cfca3bc3e07141c0a988ad89ad17910dc43438b3af9ea7e4af625215f18e4bae8675268673fa4921d0774e43981e9000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013d3de6486ea971e50e75884a9177159143d0cd294c08e36805cb1fa24ebfb94e3bf16a8543794442cb993557b7032a37963f85fe4384f8e3366c2f0bb2faa6a735e4af2a577d6f40a1f3d713adbfd3da76edf72f93ad1227f59cf7020e5f10a83fbbd36c32898729ebcb44b74874bba5c64e8a6f27daf1a97ddc56d91efd21f41594e65a3cd5945700c12dde5ac376ecde82270fe68374444f02a0511ce3629f2697b139bb344dc5e672c8d8f08c4ce75b7ff44d43d339f7c43a915c329089c22b6819b640bffb1cdcebab5f60a8ad2c5d6308d69da6c3e724df6ce1f4227852378834af039048762d4b0efe360368a170b576ca2a9934551e236b6e160ba56e177e9c4311e1a0d463957ed804b7fa61cf3f2faa91e8a43fe5ade8fd10e9399a3de47bc85a5237d403f9e3af00592cf78cf6cd62d0a4f6c5c7dc1087b2dcc60f199f4941e69d97e8ca4d120c7638e45ab58dac8c7a22db382f2eb6e9fe2a601b1dccdff2c9aa0020cb99701236e192b2475c4c90c4d5ca8f9465e0b261ec08573a8f77d5d8c9c456eb6710f2d55ab11e35e89506820c7b7974471fd70689069a27d792960c260c938dd0790075e1cce774ad0c0e1c4af6b2e8a7205b9dd065692824277b4ad60ff928394024f0f4d3efc182dca78ead45b8897938e7350efa282587502eaf5323b28ab2ab776a503c5845f10fb0572b01bba0a8ada4421d901b1ec1a81cb12ff6a37c161b3194175a3a6cf04a29af7e2bd74caacd8481c36533129b293648015cc76c01cab02dbba55629cc736a8f20aa1b91e5054f266d31970c44573cfa444774f81a9c028adfe9368364a9f7b0e93b920a2392ff6a0ac2511d7e2a444603bf318f740226b80761a9ca6a486e2c31c2fc309e1162d6d9f49a2550f00423bd6a1fee8eade0d897e165a13e3f5d9fa23a1db78d1c678aed58cd20ed395e194da53e7994c5d9e3ef8d6b6b7e7e23bbb105a21d769c9bbf8e5af7220e478e02a2bf8de1dc4bb2218f8f64b81c7236e106664182a612eee0c824783366e5d145199a821f568849eb9be15230efa8fa28dbf9b97ab1058c019ef10b28ba5ec667fd38647402432a7f73e02e446f81193ecad00a78da0453ee89a76028aad27892f15b4d25ae07daac1e2a7194eafc560be1a86789e7cf29a296ec1d1962909c34ccce87f1eaddcd023370a023c82c812d173d77a00270b61b5df8883f517e00f2942bb82fd457ece279df4686ca472f3e42afbed451e5e02628d51219c506b3aa6d1038ff3c9750b149865e5e59358faac5347acbb7cee1c18df93d24ed4f1d9cd3d3ab6997f67d244301b7cf895495ad826352cdbc47996697497b110a9498497230750931bd53008acc60a903bb540596f4fa36ee65f596146ae22c9068efb5ae069eafbe26584e355b7505c096a3424c0be84d8bf25a70f56b110bce18c4a2852667fd3e69f63c1373e3f450521b4b436c17f6b533efea835c5e3b43a780a0476d55cffa68bed9efcf6c0f7e421b0dc10865ce2995f058967c9b2b82595072eb5a00dbd494c6038b578224bde13de6f39188f7a4fe389b5748570e763d61bb5146d898a9b5734297dd15793fb6506ad680e3eacebe3f1133a3cc363248cc0b417f88cb687c9bf93f8a13c40e5898d5654df942ab50998a5f70f72b9c5e50bbcf4970120ae84d8fb6897e49592f63aeab663d400167813bde570d0dac2408b59f92f485bb6956e1c39a8599ba8020dd79b9c4ba6c43ee348428ef3a69173ba8ad9ebeab82a208e4260a6530e6e46f2e90cb93e50375a530b5ff561c13510367f56d0447f1e3992c01825febc301d6f3f88470a4b815511abcdbf3352d6e7759e4d2edbd058c166bf8e889af28c30b7c04090142d1f3ca25e58bc401e8fb73adb5e8b1430dfa710ee1418b3071a626764092ba403776cb55e9165f0a5e7e2bac28cc18b2dd40223e3bff546731078259051337869aeabd29f1796b1f1165690a6de088780a66f6fe3d045bbf581dacf7d54bb72caf7e289b2e8d5a01894dc5790e5d722b3089187c9471ad2fa83bd7201fcae54371be94e483ee282f826e9ac8f410e07e55ff410bb545a545e57eb482270a457e2277b55e81dcb23b37f1a8402e68ae077fa8480174a8f8e037ee53932b2c53dad9a3f5e7e28275059749ccbb38e8d4c892305b6a4782735923772cc8ea3148e3622bbc849ad7c02b165048e960d45e6cd292222436f3167f7b999f08e4d547ca58d5d9d61bbb831ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c692150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f398196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f61ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c692150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f398196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f6288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc73502405abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b32a541dc9aede8050ad6648812a33cfccec8163996bbfab69265fbcf2ef361c4e077596ab5d4f14c7435038a9742be3e6b737f77900011bd2975eecabf38cafdd1153c84f592e126fc3f1f0f20bbadd94f35f1eb7f65990d2549a7aba8284127f38fc1c0df7b9b2919072952602cbf7174ee45ebbee63633b443106eed2c1c2ec01270d2f56ecea3e1b2a75e90d93be05ba29bbd650f57dde8784b3a68dc781f7075dd1b117312a9d8a06c31011344d9a01dfa69bf89621b429bb8f33dbae0d86192e3ee660fd39226aee0bea6ad54ddb98f9abab4929986c135f5323816ea52108ea80bab1eb868323ca07cb55c73606bee844de917a21bfbfa6dc19489d7fda3cc3da9332bfc4c2de3e80fe3391c67d16d585354e9f5bb7a35c091c3573e31936138aba397e4b359850d5fb9c7b4480ac78da8f3e8a5266fa48e5c79b6275532d2178e1ae70947695e9f02849f81419f58ed31a9fe1a7cbf077ace14456939132de871e518f6b896a160fd7b607ebe63ddb125f6e11cddd754c1c823ba96c723cc3da9332bfc4c2de3e80fe3391c67d16d585354e9f5bb7a35c091c3573e31936138aba397e4b359850d5fb9c7b4480ac78da8f3e8a5266fa48e5c79b6275530c625bb64ab2b757e5284ac022d5876bd6a163865cca8c33d1906267b895b0c202e1a0ad09302e70affa09e470781c2aa53a461958dd93735097393e52bb0f591148c5f0078079278f0071002b6a0b381757985374deeda3f8434a2ca9b57c9a084b1ad09d4a31a25a8669bc766a6d0a8480f5c41c392cf52982a235b6e118eb000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013d9ba56a20ebf966144e9b57a8eb956f338749c55b81838fe3c6802201fb6f84319158984f800818b8dc621c8b6de6de564390e0af79033ed30d33eac409a05617c38fbecad253a41da5e0b7b3224a0e914897fe0bc9e7206484766ef9597a0005c43187dd83b9ff4c5dc0e43a1194b52bb768b0d9aa89c5796f5a7ee99d0c6429d046df41a1d723923b344a4a33e191089ac7549fc9259c2f0e1cad0c0144070d1e7f2e0415b0b0911dd4655390bcddde29a06493bd2fb6469895c6eace7094108d2c3c7416e9333963126d143e609bdac300b17b1f12cf538520ba8c89f2ba3bc607a23e56cfc0fc6ef3d645576e54616d56f8a6e7c2a8a0398afc0847f9d616068f3cbca5c44bf0fd38bc6b658c6024ec821bc803bfe980b5bac296956152340bad9806b42d9054d88184b02dea8d92260c8f6dd23deb76bd0eaf3cc3db6a1489077f79d9a39e61e3c852835137caaf01d68fdf2224c669e41d2153bc8fa83b6046b76399e360c7b370cb5b82da8e7d512977baf726151c187588ae1dbcae28d356df4b6ae98e81752984502997165cd2c4062bcdc259615a016c3a93345220d9d89cf8e9a7b1e093ac45f8443d653aa5f84996a1ccc178471a53b7182a862346199401f400fa598fc60bdd8fa464a6459191b1112f0f865d39d1dcbf450529eb3df50e2d9d1483c04b7073b2f0663c54b40786024508a7a4e3f0576f4ab334f332497af673c656398346b0b4b53f7c467e0d1de7fe145dba6f798e50f04911acb02e546ef6ae608ac6da5d124fe9dfcdf9ea17d63cde2f35db46e1422ce93c0d8428cb9f6adcac3a829c14f461ab04fb9401bbac5e1490a845cdda35d5cd0c982502ebc94445d22b726c61eaf8d6a57e991506dab5db04c7d060666c487335d347b2fe6a7af1aef8b9facd2531b0c68365e380504133bb03f5599580a7ad3a15b070a6fae36f514a1e57a78ec403f7c14fbdb1fd51c788ecbc65d7adc64f1063a867e20a9c9bc3f53506d2cc6867874cba4ee9bcddc16a05f3b1aab2eecd0e6a9a9aeb645a509e5e96639ffe121a8280c2107b72125adba0453601d4d2511414f57c0b834872381154d15ed479b91a24d78f742cf92339ec426f33960d2024970fb294195240b0e274c811f3e63529ac015a78c7f4ba59ecd8a6a2efd2af2a40465f19008b8918645b814279d1c88f1b179b09dccf7631d3c076fafd68a82cfc8cccb748b78afccf881a0879ed4368411ce3b8d60dc4f0ce7da72df3194011c6cc3b12b60d746ad0cd3fff60dca9d469eae207902a5207be011af4ee0fce34bae4db68539e20e4416218f9855bf2a9aa6fab403a0e371616b30eb7f7111f0187cc4b674c2c51718f2687906cd308866268a419f79c23436e57b98f41a2cf37cfc028a170389a4f418596f3b77189c89f93ce8bdebf1619b5616afae1c3bd132db7816998f30f4b766b0dc7608c4992222460d99b43f5b02119af9057319538f63df414640beec935f678c8e800bf2c7a01d31e82e9193f0794d8c8064ceb3073c5ac8b33937f30a990fb3dc3119c62a373d7415eda72fb00400a8c3006b53488be8c296b67d30c025026adfbf58f553fec767d500edc3324a88e13288114216ee5170bcb78e2f86a3b4a0fa17a44e369fa1df9c43cdc0153e6d0bb02ce4017855decc6858f4763210a0161158aca7b7ee605ea1024f8d18d40b261e3c18133e1618f64beb5a16cb0db50d737ce2bac26238ca4bbbaddda3902759bfd6c8b1b96f4391a0d6ea97cc2d9a112c143984901e6f34082bbc06b1af3a312027952340e57b36eed5f486af653e8410590ae107d3b7668737e8039e448a53b5b79e10095f991ded6909625a967c5455b335108ec1097dcebcdb5d209aeeb4c8192eb3f29310ab81f56a0f65855ba9f17a1b41b22c0976e343921ece09b9e8aed3e402d8728138571c687e8d0c5fe7abf8a63d04e6f0cdfdbee4e4cba628f505e4b5d102b8c8f5fcb744b41e0ab029f96813b0251f5cff4db33fb86bacf704d42875c0ce8f89d097f3bdbcdeb80364cba43b4b771f07a3b83bba6c6be688fb1c5b55f16a1df07e5433bd567f382202d8fda03127403a4dedfcb9f42dfa2bdee9118e8058025a18a0ff3721199aa85c26ca5116243584a34e62f173e86d46bd3e0ef0429e2292e975bac6f85e17094ea27ee591f99d85e431b24e0ad5f84bf90fe1f7b058ca254ff9c5b0bdff70b8eea25a96d40d3f082bc8013ea1595777187c12abc3fb14129968f3e95de69c3dee18686c8bd29d8e55de8afaebb1c8c41fe110be9004ebed66970c16a21963c211e797937651cc016ab64496cde10a4ab01eef4183e7645cff0cc38ed5810d35a67a0a1eb28b6d88ab05789fb42d9f995f6553b890189ba300f33c712a7ef2ca5985f5e14f98fc07158f56f205653375709aac478384f5d0fb3fd1ca2b85420c4062329974277d6c54c81cd79e98d1c39cfaa29a907b0a2f04c02e35d47abdf3bf9dcd668dfcec236bccb2ba1afa014b33055d658198cd14e83f18f2d99a4a3d41eafcff3c33ccdea59551ef32b0cc96d0e52d04926732eb17c0e70d2665b5c2be150300c5f09cb11aff7da286e20677ff1ad2fb83fb14129968f3e95de69c3dee18686c8bd29d8e55de8afaebb1c8c41fe110be9004ebed66970c16a21963c211e797937651cc016ab64496cde10a4ab01eef4183e7645cff0cc38ed5810d35a67a0a1eb28b6d88ab05789fb42d9f995f6553b890189ba300f33c712a7ef2ca5985f5e14f98fc07158f56f205653375709aac478384f5d0fb3fd1ca2b85420c4062329974277d6c54c81cd79e98d1c39cfaa29a907b0a2f04c02e35d47abdf3bf9dcd668dfcec236bccb2ba1afa014b33055d658198cd14e83f18f2d99a4a3d41eafcff3c33ccdea59551ef32b0cc96d0e52d04926732eb17c0e70d2665b5c2be150300c5f09cb11aff7da286e20677ff1ad2fb8299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f10022017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e17f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a6637328ac34a34e3477da9beec282464ba9847d896f4b35e24e84c8fe8af8467fd44c390fcc75e09a2c67f60ded5e1540c114e7ce7298b4ea99b3a4909b4f555039a731608cfcd48d04330573e285d93690aef520d56337886f463d03ab21eab274862941ea1f898358b8a0f13e975073bb856d28a70ee17bd3ef52acf02af2d9520914e4073d426e1da0fd3f800893cd5dff856b5b6cd0c1e836b00c4d30bd464d5833ab7a63fbc937280087f622f47a590e3cd4edafab2eb54f78501027ad49075301bdab451ade8278151aa000b6fbc7d54b1e479e66bad359e401066eba70867209a39f8854fb6f435560a9d83f0a321687ecf5e3a45fa3de41751ac1b91b6b4714ec3292ad485cd225f3fc3bd83d7445af92e4f0aec76377d903610a20164ea81e27af658bab17d393fe118062ac16d86d04f78a0aa3627c121034e9b3689c6d01bdab451ade8278151aa000b6fbc7d54b1e479e66bad359e401066eba70867209a39f8854fb6f435560a9d83f0a321687ecf5e3a45fa3de41751ac1b91b6b473acf06347cdff8730f42a4f5df5d257f7d329bb24630d13283bd06f771db93b62a0112f8fc14005585b36e19fb0033b0fb5767f5e15de5323474b1a41b4f45130862f007a9b13d21cc1167741a5912ed7c6c413c08096ec310cb02372103a3b13e292a3efe115fe95ae15b7c1b90b0dc1ce87257f7b83da2e29b7ad207f74309000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011e3b1d4a3b6cd26f58ee36192224bd63e9efadd106c65ef6ea6602afe748a70c05345d627fc87959dfdb3c4e9ccdad9003126e5f5521563ec5e83471ff91201b1826f6f09825796877107882ad16d20c76f09758a13bc447e77383e54a62bba52a1ea8a559f566522640927b850b0b80575e26670eeb843e8018161afcfc518a3ee437ade46152d608ef3b717768446d21f179e219b1bcec40f2e8b2067945bf054752bb90f310cb227c8d1c1e6698719dcfee785ad9406fc9baa569141654d22d1af9af2c01d82de3344cdc357543ba065120096097595d4595f71714f8172700d0a4f00c9d6d91705ef0a1a12437426d6fa115560e25a1c3f995e915f11f042598821001a22d25beaeaa3dcdb7c11b10dc7827da46bf86c4ad0d8cec4fae153759100cf64012bcb6d298b5a35f3fa7a57c7e10293855ed93a36195c94c504d20f3efec87a618d2852ce5d8cbac4832aa46107cba82f4f91b5f709708486b87001df58d043d1b24e10a7e7ff5aa411399891250ed584e4c8179131e882e965f2cb0183da19fe408d6659e94bd618ed9a5f9f8890e0038beee54aa494f80f7fc3cd147b98986c2eac3fecf700b325b2e0edf8addbd2e6cc3a8c2aca46b813889227de42edd13f3ece5e1c97988802ea53268f7c546271aaed7e194cdbffb76232681351333cd5668150a0df45446261a201c5ab7e3883e372bf70057ef23f112172b475d33c11b93f6f85b821fe63eb76f7544b156f84392672de200ff17756a34b026c3efa6e759715d92ccc7b5481aaf42cd3065903ac12fce74908f5ebed00514e6904ac24679618f754456760799c507fa250e72c7b87bcae1276b1cbc8c03d52b3c92a7bf03233e7d6f192f0c0a420c2cb8f9c41c5c86d2665e5672ef6a07536f2be513e040fa3bf31e77ab0e27536c4b0f02f810c5910e820ddc1c57143608bbdcf0601a222fc4f8165c4c6850b306969f86d58a19e4b31f6d19948fb721b7356727000f021ac4b93fd6605fa02760cf528af97f0f71cadd248d592d5e03a4fd8e46a75f8fb7c1f438ab930cd443e78bb13156ea6d1b09092cd8fd574102505f7217d1d5bac4f5323d08d399219a216adc0c33db03ed8caccd9e72497d079d3114954ce1b33fb2f2d2fbe7803351eefee0942a87a721737a9950561dc917e72e6ddb816f1b214b862b638a340913fba9977f6e5d75af30b362f8776e6c032f04d158a8c8d309914b39f3db7e41f3b811a7cd4df00549d2240910e7dbb809ebc296401fa2e388f8fce96cf63e7ef0c9b5f3b1df53df78a447e0e4b1a2ca13beb8089c9bcc2d5072ed11fa34fc0d32fe177b291056b871432e7f6ace08930503373e179b32a4af9807c94e5b616f4d9b74b4e7cdadd9ceaf94b22af901423e5a680f641e10932646ab096c4444a258861286bcf0fbc95033fc4f3d182bf5323f624e10d5f3b2c3be08aea034eeddd3e898a558772bbec88bc4baf05ce466039076912aead66b3682211c5e7c3938d08bbf95d9a2d65eb868e074baccf93f2b7c10cb83936b53ce34327f1870deb4a4b356722472012a1a2ef78248c0a41c0439d05a19f4297e3b2cb83357a41d700d5e2ac2e3229e05783a2ae96b23e45b385622b62e9830d445330426446754544546818c2a4087a655efe00ecf8a249b11f65a1dee6ef8bf2b7c9d7dcb295c7106d5188df52594989d644ca2632cd3f613528676835b00b38b816b536a7e2d0bc632a379780f3a71f8c1d0e218b0b3383c663a00f8ce74aab5476729af208ffbbbca28d48e2266a355adde9ca84c0af4122c9445622578a824c5fe68872bb03e48052b5697efd885ac07bfcffd978dd40f902859cef30a579a9de0b5fb9209eed99e295ad1d40ec73308790d6577d6241aa0af672f733d0034b311f0a6ff9154068fd1cdc4a3ab8186d479fcb7531f0e1b431233994824a317c7a6c70e3b9b1e2e38fdf810291fa0a9d87c31cef05731043e858f0f130653c6221c6e085e675da54eca4207bdaed91987217618e8362b1157821baaddd77900b869c2f36d425699ca85f3ee132b3aaf36c83df351dc643f0216681a18b694896d2d642ecf0bf7f3302ce36aac8365825507e80854a89737224b0d2dcfda9905a7f0d4925c1b6f31c3017f36c073b03c743e8f9527a5b21355fd9eac0a53714f3d350d3d22d28d2ac502bfec6306eda65b949e9ee077f109bf5c5dacf1b60b82dc5dffa6002291aea9faab207a902ec4bdbd73819253f209a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22309a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22321fb658f6072cee97b6dab3dcbac82009de512e271ab489886ab5369ed4941f1174fbaaf88be79d412b9672c9d372a7d2fa63a6f94bf935c8b22a38f99927d540427665ed95b17a0576af512ebc575a225cca770747fc11a85e3405b33ad6bb002137e04dacf9afbc347f2bf066d88f624070fedb8de8410940ab528ab8fc49c0d9ee0aee8af2693b7c6d2b811f5e292dcba481eee343b0632b3ec627a654d182635f86d86e7f83f7cb3eac6b05058573f241e38075ba38ed35ba3f423be9bbb372de69bc86ee4cb5a0c64f64cef1de32f914841f9310629d0eec2f98aa8fae01c66447d4164dee3e2e7541c5518112db9d6980ed1716218966bcaaa50a3eab03d57416bb298fbb8b8a6f8955a5627f3e5733e2347fd5211b97218dc5a3c07793540b68c25f88ff0f5483000beac2202e9344265235d5a9ef25cfe04d226571a151c9ac8f98cbfa4ba0dea0c7231d8a9b105eb6c9da85a730b14ce4d9cda55f524700f36587f61541470aeaaba8e582af9e7a75bc798eec5b61e584c3c2ddc9819dd3411c63219762d275faf488e085d5e94dea92321ef688c9e9d27df095261269cc74b9c71eb3029fea6145c5b4c8cce994e9ebbaee1ae79ffd834baddbe12151c9ac8f98cbfa4ba0dea0c7231d8a9b105eb6c9da85a730b14ce4d9cda55f524700f36587f61541470aeaaba8e582af9e7a75bc798eec5b61e584c3c2ddc983acfc35901a552582ed8d9519f2fb0790d4a39e21af232d1f8a16642eaf0c668342f0b5472a17c01c6d806d03ccfd6d357e0d4554eeee519e3a817fa97394d5501dacf7d3d24d0d332878c6c0a3a8ef9bc78065c927af019645206cd8df4d33620f8d84ca6b91c59f7a41134940b333c80043c39ba5c14304baca5ec925929580000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000135f8158aa52f7d2ce4a03c6b5f52e1917f5dc0c650cfd6d8297117356e4d187e39876bbc4931fbd6addd6c0a78dab4aaa486421e6606dbb561c061836014d8b80e5682fdc13348a3d4e6967a7a3ce51a584008df9095b23fd9767b40824f3d263480a7d3bcc2c3b50fa79c7552a0eff2cf6e55f74bef49f56ea0117ef32066b33793e1333e291fc40ad76356057b2222b1a038046d2c77f8b531ae00ab9a2fc61c510f1fbd8f9d8e4af572890ae3bc5d2a7f2fddbf00919186392d947e49f8c73ab59e83a74bf11f630617abe0fe3102c6fa4a037ac3b5c2571f09a014b3f8bd3be14ea37a8d97507eeb1d774c18894176c0883be31c9cc663b9c4a87574e75c22697dda0a49513d537d80d86bfa461b7e73d40e08d1339770cbb6a4ccbe00e7265ba8981b9e785b4e1b3320d8df7a113b5c236b39edcfbb14e103b0facc95670ac3a2c8011d228a4ea0ebb278a873d3a3d9e010da2cff7cdf3331151757bef71063f8811749f19936b687c44673882719fa4364522227a95cd7baad1a58eebc0575d0e1cb7a3ce96ce38298b2379ad91400687ef0c8fec64043bf9f87072e931e5efa653c42425efe8c37e0992c854943d4d533b8534d64229792de316beea13188b458ba0045fd313cee5282a44de0281fdaa1c387e51013568fa5c96f2b0b3697165c37077acd10f6476b4990597a872942f371308036ae5673470b0ac7350bc3d4de73535bcca0633dff2e4be6603ae5eebaa27715bb172c5d0e15e93c832baa0df3f57ec469f4f3dc42b6802ecb6766b5852d0debd808e98f2aa2e992443f90db1e8497b34f1d36620fbaccda66d807cf776d350301747a559b479756f300d53887d6841a4513da72e197dd5a6f0021a46731ff9a3673d5822a0da5757f2a464d9a1dd031d6567a32616c11d7a3bcd5ddb55954e185b2d63ea0c51238951f7a0cc27d12b651e7c0a5b0292d211b4dc7b6e6c0c0919f947350e80b82839629f01a6996c5639cf3f021969fe42eb9994cdc242f4602b538694ca90550bb8b2523b351f23b1495fe963be32c764545008c0c39e2b7b09370dbf536640b8cb916cd6243002f6735741bf5a2e7bc320dec382539a70717bea51e378c08308dd81729b70e3d7c5a836474632cb179d0f7386227b46ac8f166ce0ae4e7c29634d03352f2fcbb620e7f91832f755d63c33e0b119a233d208413d0f786e6cadb0781265c1a8da1f358b9b12e0eb9a7c1a64c0df5318e7df24338b7efbaeea35f42440c717db365c169efa9300d0f4429a56c0bf064924fc6d81340536c90f1332ec403150329050119a300473cc6907708541f6cac9f1c45e1d412a8c93cff11550004d3679406d5f02cf30450acf7c4ec85be496a0ebd6413e1f83bdb3e2c1d115c1f9fa3b245f67e784df30551366ebba33ade51e92ab5d7b5d1f5771ffed1b24c2f13df1c123642933645f37e243de0b7d82419be2e998d9f61643679ddeb6e2323ccdfba924fb4a0a40d8106952f48cf7919759dc376422879b3a82748de5a501c3840d83e6261fa80724677596bf3c335dcdea320e20430351033b6ea829309079439dbd9feef594f71413c8cefd98b241258623f8148aec85735c772e2c6fe2a1b9fde3055e26bd5f33f8b810d6c303485540c3659fcad69bd015ee5cceb9033dd22c0c0e3257569639bf3a95b38494681d76c752dffa3af6ddea20e5018892e1bf784c87630ac76543bb0777afa95d6fe3807828ff702d235d86c2e8742e326aed6517fa9f4fca080c0be75525045c8cc113f3749928ca68b018fa0364ac1249f4391a9f570a174e3495bdb7818533a463f48d5a9a69044564b14fada9b9b0a35b7d1bae9284ec4887ed80cda743c223d1dd12695d68965097299ab0a57dd28ed86e3685fa6963082661be2422853eac44be0403e74ab2aa75f413ecafba314349e2d7eea7ba0cfe8224fc78bf5b8907b8743b5fbe870c9192b9aecba264008ee11d1253b10b3883d37ad2a75ed4ba48a352ebc7fa5566dd66a4a9cbe160802c5f8ffb6eb3f61fbe03a4b8dc8877cf2849453bf51f5c4f096ba58343e7fdd2b75d523b5fb453bd1234e35e65816163f6ab4a819887ed66c8bf06659e91d321e4dbc6304f45f5f2388db2462b3dddcde05b5a4b94237695399ae08c28a5f251ee8b21001cf5ffb72ce0d6bbe8d0c6dc0d50aa886e22c37f43128409ca4f7101293fd45f3b680eabe5558c574ae62bf134374846804dbfaee25ade8b2234ec73aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a061301911905583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee82546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d5791ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a883a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a623ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c31c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e3aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a061301911905583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee82546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d5791ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a883a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a623ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c31c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e17f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a66373017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e14840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d3126132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c8361f5af3dbb9b764e06388b88c8ae25f7a7275bfb8e202712160cfad61b5bc73ef2084ff4eaf933d6bc5e8c80a6d386cf8915c72d09b721619ee695ae36cebe46207bb5847f3ec89cd59900a77cd11b5b93e4e9cc3e7a81b21a34e34673562c4cf398f614735db5469d4e59f20f2345e22d9b2ae524ebbb628ea9a24fec8e30f0920e7576a254c589f1b44c49b053e6896e604e8ae80f95b2742d55558ff28c21b08e5b7ee0f136a61bd9204360bf642cbc56347a0da0cb8daaf842450dcb7999008134748d8710762979b1062406fde0c96064ace3630870592558b307fee102d2b6879fe81419e32cfcc2b0480ff303bbca2014ac309b579f4be78fa1264a2221389d8f7dd827262a24dacbdfc7e9fcaf613aa817fc38db7e90ee3d2300c6b692b53331cec0a24ee2f94d881baf668692f9fdf19849125ffc37b4188d5d2389e08134748d8710762979b1062406fde0c96064ace3630870592558b307fee102d2b6879fe81419e32cfcc2b0480ff303bbca2014ac309b579f4be78fa1264a2221201404b9118789ee6e3c7cc266561200731412207e697b129f03118c7666b500d8982f95c998465292000d2ef16ab93e858287d8a1eeae2b889ec302280e45f135e5aa9aaf3c8fae644b82ac49ac30be8fe1a4af456aab9601c10ec8c1691910c0c5bc5ac08d6555330910b48fc161ae816e8e211d665fa3869e3b48079166e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011e8211f6215d3f294dd80b0cc1951e3048971276fd79940514b019ca4d2d8ee42e9a0d4ff7d0ef6c39a0eeb6a75eab621b80f91b32cf528655086f798e9b79db0a411141710abe9a66f2a2672c7ccb52c30b6578878d8bfa7dd820f46c4354913bbadbc2fa4e935b2b65f20da325dba3eedd6d852ebb5c1ab8140c7636587a5d09ec192b96080adff5f979629e777996a5b93a626afa260cc62321104bafc1d6169e375fdc798c9866f8aee0b7d0719f794b6b0dc8586850dbaf3b00d9c8dc631b3635d1173873d148912d6452594dbfac5953ad47f7be1e4c57d1f99ae7fb8f0b75099f466f0e9079fe4dcc935f79194fbada452ec854ed15cf4b300a34be691ea5e15d441c009d35f44955679168420cd65f3f3977eca810abd18313707dfb26d4e8916062abd84e7e38ea36649a45ec2e134014ba96d129d6f37872b1d57f1e04e952902cc3726ecd1aa1603b742acfc0e3f1e94556b45139e27d6c1084ca20d504f93c106ce262d7aaf6b1af2ea686837277d93811525e2e1c0d1854740a3587f318303707661da0685c626eb54f898aafdab7e3bdd3c2cb7c4c4668f8f827f688b224a460740920ed7e71368fbca0fd5cd5c409552a0e73fbaf4c4c815c30d9c99f82a90a6027c91897a2ea30fa8e63f2684b4137ffda8f246c9fd71abb2976a697bb0345ee6c37e2cdc5ccdfe091f741c7c2c38686a4210fc1c2f2a55829535485eb49c59524c254021aecff3f5f7d161f44b4c92bdedbe87ca1bc23d52f24f95171dc0cfe1aa1fae9fe7623498ed0f9421b5d7ba3f44b6c5fdc2311e70717af79452ef31b08e9c7e062b7353f10ae2e9cf403783c07e6b3625797af2f3853cadc15aeb61aa60ee21e0a057dd2bef3a5465ae32f35f5f5cdf7207fb1bb29220126098d211bceb0b2abde6d3daacab9bce22db2451131291c9e47cc7bd70fbc9450dedaf563513106fd968e20ed28e3953236024291211816f775f6ca89326efce07a711bed0515a6938092bcfdbb9c57ab63bcca79675222c83d1e11fe153922c9ac0b1b5efbd72815e5291abe0959bd3648e74c824e020043efc6a4b71e573786669a55ab7a5808e5939d2f29f5c2f2922970f54b347e5b8b2c887577012e27761fd000209a57aba3106559982569d4f26213b8689ecd3d3510bdccf43cdf491b9743512850222a7ac234d06cc5ba3019dcce11f26367cff209ffe60c2f8b56cf5644536ef30609a97892f7ad0686cd862b4061743705fca7cf0a626723bc9a302ebc18ea5f971dd9b09b96104535acc0871dca9e2b30565457b518d9385344768516c2cd8e93ec22d1227836db9eb6eca4f329641b65929225d549db09ccfc2f086c96c46b2dbec2173af03cd5b446611455066fff6e4e970474a5bb1a606e51ed8aff5afc22d0a335856a79a7eb17da205e1b41c4afe732bd4c3a3a0e4acb8feba77e7a590edb92a2912e8f11afdd5a7b7fcead3a67026d2831c5b92764083f2f8cba59e2ee10fc5994ecf947d9ee07aea9b9714932ba0a8f50fc5a3b6747210dded8a57c534c4790f444fbc6528e2e26e5c6903817ec2e0f3e4e4e269ef60355a1acd7cdcfefb5c36354cad977971664aa57aca735593020017e3d239a46101b406c4c270587316bca5e7d8394f7ad46693b7991423054a4edd7b61b1ff84ec641c10a11b301c29c9646c15d4816c6e7de5b70effff8ab70c0579e08bd8d26b3cdefa8f2f75ca34d9e263e39b980c92b898ed1b0a4f8cb549a6299313df5d2fb267b0318a3a6400bb23ccdff9f70d456bfd2327e64f8451dfe376c3089e2ff68e1bc8f3b430057abd9f8bb13e4366e1224c962ed2c04300fc303f139782905a6f4185f1657e7b3764bd5c9d76d78ab259727a7b85b32f5fd66dfa510ae20e2f80e5a0292463b006caa17279e877bddf8a97b14bc843e5bfa6581201adb5e5546a169b9663aca708895d62c515ba7c290579923142432ab3b3df9ee26c556b54102bf24cefe9c6901414a31c67017d369c53bee10b544fca659cdc53cc8aca8990ca75003429f0b044cb06152ac83f97a00039d84062666fcca2dc52b5af8408269a6c1856e44a44b7fb6b8d0b963e9167b98040cc27b1951c4d1250641a44bb7869e35a067dd0c9661360e105764ae9e443e485fd98ffa0cbacd3935a060125926efeba4853790c285e2e252707d985473ab32aed1eb24f36f7a8e052b16ffcd23d4c90a46b7731fe5fa632a3664e59490ad8c7fd433f693e379100bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb0bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb1663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac53a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f216211fa42639b21ecaf1ed4e983217b62a6709fcf49a5422b064a6309c8e2c557662260f666d094d1a6403be2dc098fb8f586eb4ad8166745ba69d9a8268d67ce95224688bf433df1ae089e293b28e241cab5fcd9cd6a27caada7343d9684dde77a20de236c8d5a6a0e502a2e3ffe172e2714300642e4b9f8986569c7538a0b81fa33ee9d35863311447a1f0d41296828ef14e845415c2e1024c8b39e27624bf3130d97ba61a8a2316eb79f39a161619e8bcb7a52eef1358e006dba79ce51baa33c10c697823a4c4bcf76cef00e67a7c4573c7f2b17dabd0fdfacb93a9679d4e8a211bd6a4c417911b42b7f4e8354b2a758409284328da8c61546bbaa13ac0ab63936bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b93c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db17a1dd82353c650035565c7bc00d9e983b457e8c8e8400815db42975e7191dd723725bf4adbbbe02d33ba140065e3e1cdc66f45df62ec7fad6156e418389100c36bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b93c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db16e08890aa848dc2cf6ebff393973a719895979a2e346a08da82cd7f791497511f9a4131e99449698ce8ce1eaa5edf794bef39d7950170d87650c3653eec76d50bba2f36522d59ab82ede2c4985d52a8c1af4cb45768d4d34000a3c4b4678bc92de546b81283d93d323202c8cc923733cabbcbd1b161d0388443c11d1282ebd00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000119855653a92b5b37bc84430dedfee92e5fa2a1627ef010cc358ffc7ca795f8ff10f91417ebc5fa0a82c0fc211c1ffd54bfedcb8a1eacc12001db3d3dfcf6410336fcd7247b582bd4755c005b613b80ca2f8820cddcb43e242679713b9c095089132f24b896d0c5362ec7896ef900a2aba3d25adf53f77108f34a222c4498678214299ad45294b6b41dddc527a1ae46013a4622388f6d3f7fbd08cb5da0b408e8111e3f7e1b77c40285c0545eb39b341c4a7f097d9bd852d41d534ba5324d57cc066debc195b53304b7c8f3785ea52c698fab1c33036da1aadb1d57d46a57fa0b1b55c2439894e8561eecc4e7337a6c428414211cb9e391ff0d1e54a1dc8492741382fb675176bbf903e404bdded09f4a79609c13f8dd0adc9bf398380d0643c00e803f15245b8ee7e24b7a7c9b475907f23b775017e95e80844dc3591d4578e518f961d2961eace213ddef4c9fff847634c6aed28ea2b36c47e11aa8476227f61e1a563dba60b85dba030b80ae9ae90dfed627a0c3282e96dcc4f6f5795a0aea303db71302220fdc36cb981571a7a39988356de91cbd34414c176a4cbfbd0b1606547e6644a457d54b633df37048afd98c0a7b53fe4373e2fe2654b7e11f75890f4a5c550e927e552d2bdfb5ad5b579ec4d13e605ba0e8be836ec282edc0bc8c20e9dfe79ff700f343168ec6a16ab1dfcbd35a3498546dbd3834c9a0c16f318722b5bf8602797964cfe223f7f39caed228cef4a518f6375ea58a12923cea8cd12d374dc211ef11c761695eab8bc0a9a0aab656a0122a5f78e1d299ba93419f1a0d1a3a23a33ac356a53f60b4d8d4635586b2e25f81d3fe22d36ae75e7cf442be2e35b50d9687b4c7d820a14f2e63abb3597f2ad46eeef9d20d6372707e81089a184020a4fb3d8a714a4f626e3ea5bb356c6ef4c6747cb8aedb354a201f92f6e62176aab83a16b5378cbd7456d7163bdaf3976424bdb7563de4371f703e5b6e3c05a54c3ca90caaf0882824ecae0496d22fa11c473eb0fa671156a4345449255933935e3d12203a4564b3f7bd3e5188139552f235daee4ea1fdf45a81915341650b88d5843256b8f16a31985616cb634b4a614bdb510b92f6e2c2d2268695cf210ce82eabb395d8486c049a6304082636414c908c415de6ca846f31620d3fe25903aa258c4f5cf8008e3f972b21e33b538622309766d0a7dd0cef851a07dd74421a435475fb6ab1e7162ed84df5693d343dec523b4069c64b9c89cd0df7fdfa610bd0cc0e4bf690b74cccc9f4da3b379896be27c571590c67e76971b5caed42ba2bac1db6f1236abc4a0927a957c66dee1dec17d2890ebbec9617ce5b2781620303d3d397302499301ec0ff0a2f2a6171831491c3c698372840da2d0655b68ccf3cadec78445ae88b4e7beec24095bbdae8981bebc7a1b4ea4fbefe3effe7f40f02c35d2cc186cb97ee70cbab620a055322aae8a6337a853544e15a280f4a93972f17598b444349e9adba8bb649ef188d910c0e3d0b79989f0f8604fcff06ffee3220e40b6e3b8bd5b56e9d049c833f29339266b485253e9871760ec1a5c9b1522a0cf327b065fdc58065610095ec4a60fd601c623a664c5cbc801b45440faaac201a60c7a9c8790d2e4b2ead49dbe70a7267da3683781a11f5f64e49c64a1b472c4e2bbf32761299b938962a6b3e204de7e452718bd691428f31b78e05d97c3a3d732743c82f5d48ed9a893e0be8edbac1b2687ef0af6b353bf98639ede4427f240f99396e8262647d1ba5ebb951165380ed43913e404c2172eece648b8f431a0e9d13f24d8f4cbadaa2dd0b29bc97e0bc6655051cd7ec595ba8de236553f1b63eea4050be3b1b13be6c78e3df2888e1650abab2218939e2b61702514684dca807e123367bec5811decdc8d749c29c23b23750bfd52fb11e10c429b7d98d419a06bd7b4e1dd77eb398b7f72bfd3e106249cb9737d11d912acff5585563a76e991bfbb9289dd155b42171679d712ab8ff9c4333bbd29764c3031ef81e91eaceb23655e9153f46b97ba2ad0a01a65b132807b0cff3264c4050421e3033d3e4307c10c685bb1338e347aa2c5765e3d9ec3d3b00716a4ae009b3c2120d02fc58526d3db2f9de3c0d7d640b53605e1cc84df1907e3ee914a236e7832439bad289fc523378d8b5238ab2438e658a8f45f4a8ec8f007da873d23e81eefea7862b977dbe26660162bd1cb7ec1dfad6a884665218c6c67233f897f80a722d9017bbf94e090bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb0bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb1663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac53a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f216211fa42639b21ecaf1ed4e983217b62a6709fcf49a5422b064a6309c8e2c557662260f666d094d1a6403be2dc098fb8f586eb4ad8166745ba69d9a8268d67ce95224688bf433df1ae089e293b28e241cab5fcd9cd6a27caada7343d9684dde77a20de236c8d5a6a0e502a2e3ffe172e2714300642e4b9f8986569c7538a0b81fa33ee9d35863311447a1f0d41296828ef14e845415c2e1024c8b39e27624bf3130d97ba61a8a2316eb79f39a161619e8bcb7a52eef1358e006dba79ce51baa33c10c697823a4c4bcf76cef00e67a7c4573c7f2b17dabd0fdfacb93a9679d4e8a211bd6a4c417911b42b7f4e8354b2a758409284328da8c61546bbaa13ac0ab63936bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b93c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db17a1dd82353c650035565c7bc00d9e983b457e8c8e8400815db42975e7191dd723725bf4adbbbe02d33ba140065e3e1cdc66f45df62ec7fad6156e418389100c36bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b93c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db16e08890aa848dc2cf6ebff393973a719895979a2e346a08da82cd7f791497511f9a4131e99449698ce8ce1eaa5edf794bef39d7950170d87650c3653eec76d50bba2f36522d59ab82ede2c4985d52a8c1af4cb45768d4d34000a3c4b4678bc92de546b81283d93d323202c8cc923733cabbcbd1b161d0388443c11d1282ebd00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000119855653a92b5b37bc84430dedfee92e5fa2a1627ef010cc358ffc7ca795f8ff10f91417ebc5fa0a82c0fc211c1ffd54bfedcb8a1eacc12001db3d3dfcf6410336fcd7247b582bd4755c005b613b80ca2f8820cddcb43e242679713b9c095089132f24b896d0c5362ec7896ef900a2aba3d25adf53f77108f34a222c4498678214299ad45294b6b41dddc527a1ae46013a4622388f6d3f7fbd08cb5da0b408e8111e3f7e1b77c40285c0545eb39b341c4a7f097d9bd852d41d534ba5324d57cc066debc195b53304b7c8f3785ea52c698fab1c33036da1aadb1d57d46a57fa0b1b55c2439894e8561eecc4e7337a6c428414211cb9e391ff0d1e54a1dc8492741382fb675176bbf903e404bdded09f4a79609c13f8dd0adc9bf398380d0643c00e803f15245b8ee7e24b7a7c9b475907f23b775017e95e80844dc3591d4578e518f961d2961eace213ddef4c9fff847634c6aed28ea2b36c47e11aa8476227f61e1a563dba60b85dba030b80ae9ae90dfed627a0c3282e96dcc4f6f5795a0aea303db71302220fdc36cb981571a7a39988356de91cbd34414c176a4cbfbd0b1606547e6644a457d54b633df37048afd98c0a7b53fe4373e2fe2654b7e11f75890f4a5c550e927e552d2bdfb5ad5b579ec4d13e605ba0e8be836ec282edc0bc8c20e9dfe79ff700f343168ec6a16ab1dfcbd35a3498546dbd3834c9a0c16f318722b5bf8602797964cfe223f7f39caed228cef4a518f6375ea58a12923cea8cd12d374dc211ef11c761695eab8bc0a9a0aab656a0122a5f78e1d299ba93419f1a0d1a3a23a33ac356a53f60b4d8d4635586b2e25f81d3fe22d36ae75e7cf442be2e35b50d9687b4c7d820a14f2e63abb3597f2ad46eeef9d20d6372707e81089a184020a4fb3d8a714a4f626e3ea5bb356c6ef4c6747cb8aedb354a201f92f6e62176aab83a16b5378cbd7456d7163bdaf3976424bdb7563de4371f703e5b6e3c05a54c3ca90caaf0882824ecae0496d22fa11c473eb0fa671156a4345449255933935e3d12203a4564b3f7bd3e5188139552f235daee4ea1fdf45a81915341650b88d5843256b8f16a31985616cb634b4a614bdb510b92f6e2c2d2268695cf210ce82eabb395d8486c049a6304082636414c908c415de6ca846f31620d3fe25903aa258c4f5cf8008e3f972b21e33b538622309766d0a7dd0cef851a07dd74421a435475fb6ab1e7162ed84df5693d343dec523b4069c64b9c89cd0df7fdfa610bd0cc0e4bf690b74cccc9f4da3b379896be27c571590c67e76971b5caed42ba2bac1db6f1236abc4a0927a957c66dee1dec17d2890ebbec9617ce5b2781620303d3d397302499301ec0ff0a2f2a6171831491c3c698372840da2d0655b68ccf3cadec78445ae88b4e7beec24095bbdae8981bebc7a1b4ea4fbefe3effe7f40f02c35d2cc186cb97ee70cbab620a055322aae8a6337a853544e15a280f4a93972f17598b444349e9adba8bb649ef188d910c0e3d0b79989f0f8604fcff06ffee3220e40b6e3b8bd5b56e9d049c833f29339266b485253e9871760ec1a5c9b1522a0cf327b065fdc58065610095ec4a60fd601c623a664c5cbc801b45440faaac201a60c7a9c8790d2e4b2ead49dbe70a7267da3683781a11f5f64e49c64a1b472c4e2bbf32761299b938962a6b3e204de7e452718bd691428f31b78e05d97c3a3d732743c82f5d48ed9a893e0be8edbac1b2687ef0af6b353bf98639ede4427f240f99396e8262647d1ba5ebb951165380ed43913e404c2172eece648b8f431a0e9d13f24d8f4cbadaa2dd0b29bc97e0bc6655051cd7ec595ba8de236553f1b63eea4050be3b1b13be6c78e3df2888e1650abab2218939e2b61702514684dca807e123367bec5811decdc8d749c29c23b23750bfd52fb11e10c429b7d98d419a06bd7b4e1dd77eb398b7f72bfd3e106249cb9737d11d912acff5585563a76e991bfbb9289dd155b42171679d712ab8ff9c4333bbd29764c3031ef81e91eaceb23655e9153f46b97ba2ad0a01a65b132807b0cff3264c4050421e3033d3e4307c10c685bb1338e347aa2c5765e3d9ec3d3b00716a4ae009b3c2120d02fc58526d3db2f9de3c0d7d640b53605e1cc84df1907e3ee914a236e7832439bad289fc523378d8b5238ab2438e658a8f45f4a8ec8f007da873d23e81eefea7862b977dbe26660162bd1cb7ec1dfad6a884665218c6c67233f897f80a722d9017bbf94e0909423384f0d74a20ce8bb048dcd97d6222ae78c1c3540d2ab8e53c646732492636bdcc7b0f28b5df31744fb72326829dff98203a45f8ebf0e047f48898cdb6db2e4b0198b43472a408ba716c503f72eaad685bc8d0a441d59c7a2df603fb6dbe11b4fe674bcb8d5bf7458e93afc08d1574de3d3338a8b745fcb302f6fc049243277707fb85063d342ba4371d913d3e94fc35fff7f74e5dd942db530713e924b31888f8047af9c2cbd45bc8e26ec2c16b2610990411fe9b425651dde5ec16db4e055327e9991f3204da351393d63238e8863a34e3b8a0e9eb82c10c5c638db77c3aacd81666e0cdfb25caec6c29cdc7179c0c641850ac0f30166c24909c72488509423384f0d74a20ce8bb048dcd97d6222ae78c1c3540d2ab8e53c646732492636bdcc7b0f28b5df31744fb72326829dff98203a45f8ebf0e047f48898cdb6db2e4b0198b43472a408ba716c503f72eaad685bc8d0a441d59c7a2df603fb6dbe11b4fe674bcb8d5bf7458e93afc08d1574de3d3338a8b745fcb302f6fc049243277707fb85063d342ba4371d913d3e94fc35fff7f74e5dd942db530713e924b31888f8047af9c2cbd45bc8e26ec2c16b2610990411fe9b425651dde5ec16db4e055327e9991f3204da351393d63238e8863a34e3b8a0e9eb82c10c5c638db77c3aacd81666e0cdfb25caec6c29cdc7179c0c641850ac0f30166c24909c724885000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000104f76403bf60615a60b90f6473eb481cf6da2c22d4594ce4afdbee7f237f41e03e92aa0756591803b616ea271a70651e7d44a52672d5fbca8fdd25dbe60153f922c5f554f55e1f6dec782a0be0543f4c7b71f8485a2e10391db44ebd31833ff019268ca41e96598a5bf44df952f5a40e60fed7c75dd31635181d04c0a385e58b14803586fe72a309548596d30bfffcdbf511f7a83d11433501fad6f0a0112fa824d9a756ad18f420b8cfb08ebb78d0e0f005efa04ce9938df69d42917677a1cf1e5cce4deff9a1062fd3254d52043a0050968e019bd4f2913c411c1d46c3acd93740cf01dd71ce350f17c67f6ab0118524b0d39877f3102f9eaa4bdd83b9e86c2ba2411fe33dfa0cd3dacc7bb65f403845f5298a058be1088e664d8e35e28b3e38aa5d8a8c8ffcc90210d317d7a218f822ab186b05d3e754a2972260577fd5cb31b63e639e7c63bdb2566fb4bf6c4a4d47856a6e1e40b69f076a2987733f02353449b39b4db203e12d02b250d4a37c45376d0b3cef7b238f444ca914db382f33022d1e12632fcf13577760615c9228d54f95239d2e6af4e022a0f0e63c95f1b30f4d3df90294087010c0bbc7ddb44465a3855066139de4a4ba5bb9f6e4b1f07232a00ff0c1f2a9994947ed8b953bd689d92d0dd0c8167669fd89bd0e4419e966301794149966b4642a1cadc30ecb49a523fb126470cf825604e33b538d4703582f6f0aac8b0fd732b645605b224be9b74aef4263407633737bedca382812e0b520970bc14627532c8bfe08072b11cba9f8ec7d317392b48bdf1ff843080787b815a820764e4778b26e0ac7eb4f30eed2b7745eaba300e232fdf38ab089544ff32df364a9b439f23a9070f858f2b427f71d641687063294d36197caf4e338193d2393fc84ac0bb9c0edb4d1a35957e02ada3722c56996742824f523449b55a7fa39d07fbf7506aeff02e0fa8c479d035c0142326eaeb3c73b021978541d25353238e29f3b3655597f9b6ceb034d24933eaa3a4255054f66a097d66d85e6d8af3812a65c7ac483cf32160294705ba461aa93043cb3a1d7ebb46b6694030146e51601d937ca6e8181422a95b3a03cbf404a03063240ebbbe9b912f21b3cf33c42660f9a94cea1ab2c7aaca768c247ce4733c2090fc2878f79c5890e031758ff78322d21637a983cf8fc40b47ae3d5cd2923950bb6dcb33134d388e47c4305e4f87f051b58ac719787c9cfa4b09dacb90b750cb83283142507de06fab8f9282b5f69312d89b3c3a2f8ab20a41d59b6238a028c1b05d60387327db2d3cdc4b9f244ac35a7ab178202e6bbd3cfb19d644630b8569075c194874de5437a5cda3ec936810d7a073716774f9df7932c400369e53f19c761313c964714ef6c0dfca05e4ac3215d571d6a754dff8a55feae655b6a5f23e40494c012359650fab34a4c1423572cd9efcf51a8443f80889d4ffff667d40acc81eadb064e6daa86d645283ae7272e76ee78ce60e4a9e195c859ac5c4665aaba808a51d660c3bb574521a6fd29da3862a19944318981e595a81f7ac780e95422f879aeb14a506320057c5b0b25691f69768a3499de67274e501cc7bdb52254099a24420b67dc27a58158b87506ea2fb4bb451a4cef3393a7280e63deda913b28199025ac307be0695922dc3a837600000000000000000000000000000000000000000000000000000000000000001f69768a3499de67274e501cc7bdb52254099a24420b67dc27a58158b87506ea0f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5f278f18e7a77366cd5d7abc1595ce47d9c798d9da33dbcc2c04076d3dca57c53106f88f71dc0d453484c90c325d8bfcfbf95bdb026c9a3aec927fbda982cccc190f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5f36ad4ab6f65a346818703440c16ad78d3483f49292466b6872e916cc5f074f8e06f88f71dc0d453484c90c325d8bfcfbf95bdb026c9a3aec927fbda982cccc191e3c639e9dcd9b3575eaf05657391f66d9d63570bcd53e78ddc3531d295f14bc2e87a8598380ac01e243c847f35a44d5c0f4b4dca076071896872ae74d24914800000000000000000000000000000000000000000000000000000000000000001e3c639e9dcd9b3575eaf05657391f66d9d63570bcd53e78ddc3531d295f14bc35c3976d398f747336feaa383f3713a35943f3c4edb6b1b51af8347c453c12f50a3c6892c6708b8cc90155c7c0c8ec5cc902a5371b9647667e34fc70bac3ed0c0cd1f5221fcd464012f953193c13623035395ee87f5d941b222442b95a2c5ec5332e0adde032b9bfed06ace6c3ec9dcfed0d3a1389ef65007708ee33a5d3a13c0019c9aa9f025f405ede9f7e2c60eaf0e7d8418e7386eb6c11881cb1c2ddd9d83fe6365560fda0bfa1216081d39f150f3a6e576d95c60daf87a5143b3d2226290080f0551b0bdc41da591d76dde496b4873947c841a2991c57a88f78ce5541383f7f0faae4f423be25a6e289221b694b9b0d5133c7aa5fff4184a17431aabec935c3976d398f747336feaa383f3713a35943f3c4edb6b1b51af8347c453c12f50a3c6892c6708b8cc90155c7c0c8ec5cc902a5371b9647667e34fc70bac3ed0c0cd1f5221fcd464012f953193c13623035395ee87f5d941b222442b95a2c5ec5332e0adde032b9bfed06ace6c3ec9dcfed0d3a1389ef65007708ee33a5d3a13c0019c9aa9f025f405ede9f7e2c60eaf0e7d8418e7386eb6c11881cb1c2ddd9d83fe6365560fda0bfa1216081d39f150f3a6e576d95c60daf87a5143b3d2226290080f0551b0bdc41da591d76dde496b4873947c841a2991c57a88f78ce5541383f7f0faae4f423be25a6e289221b694b9b0d5133c7aa5fff4184a17431aabec91b9d5a2a50c6d8a61acdf312b101a31352f3356636139aeb9593bce4d5ce2092004c37cf170d22355a2c252313a00e318136f39a3ea0096dd1ef1c2bb8c26fb52e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd630724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f63cad42d00b1c85898c8734a7773fcde6e6af3362fc537e8d1fe577eb4c0800a338709587a5684be366fed5b4d585796e7a7e5ccf560909712327421873ae33ae1e2dfe94e27245c14963a6ee4e6e50a81ef6143d149d890fa3d060d4fbcce9c82a1ac3d118f0c53456a73980df4807bea044cdd1d80f8a0ac83026c45229679b36ce8f7204cdcd52921112439e0939cffed0e736b34ba50a088e2a713f722f8e373208b0487abcc23f2dbc50176c88c08aa57f0078482afdc8ee361b7c5ae30739e68bf42b1126718c2c16daf7d61a26c72192c1415bc802805c2c4eeff42ea209eed60eb0b4e5102fee7a5c01f3b6100e6901ffb577185772d79deb5fb23d963645c13e931b1c4a88398c2a08869e8491351cda5c85f028ce1aa0a80ec8439b0f418309f1eb8d78abf6e2c31b82e9716810100d98ab8d583533f597508b3c5739e68bf42b1126718c2c16daf7d61a26c72192c1415bc802805c2c4eeff42ea209eed60eb0b4e5102fee7a5c01f3b6100e6901ffb577185772d79deb5fb23d962626a20c33c3a27336b57989aabf81883b76d3d0498da0a016c11e0834a825e736ad7d9c95d25958a87be1a7b086e0fb2a18f17d14baa9b18f138d547414667f37ecdff67eabaabe09513ef1756b02481adee2767f8b5a5adf3dce04b680b2201a051809fb6f227ac966269c32a0a790675141111e7f85bdd7493581b1f20e95000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010ef1aed1e99d35333aefb565fce63e1f87ef05633d9d5433c044940ca903df933b515c8d933e52a9f4e25c2951d411084a0317b852cf4aa10b55f555fd9e77c1061b6dd0393ad8b0d79ae5356d1e12bf764ea121e407e8ffe834f52a58cf8b8937f86ce6f44285ad08aa2e2db9152390896a1314bf0efbad0fb91c2cdfac755e19885eb943206dd7003add9b4925c6a74f601bcaa42b6d5ab8185f7e357c6e700ac7e9e0839a3bc4da2fbd5d627611afb4ef28927076f95112d7464f7e7d5b9d16677da981820c0d3eb8e84bedf01d153eff9795cc821c32eb58f32eccca22082e9e46f5d3129d4ada6467e4e2eee6246c8fb1308908e92c76edb08adefb35b515f2c9a15cf8aa3eed7158eb888b55e2f91a6239d7dc8d07b429aa54f04a6e12097d60155e15cbb4a0534e68e562fcb8b56ef096fc1236b202092ba7a816a5fb3d116770b74f0e9f87a66224aaa8babe24d26840515ab2356116d9e0c27659f4094f2ec0d4360f8560e677d2088409a5a641206e524401a35429c88c321a66123082a82bc61e459f3753188c44e0d5579c22ac574ddca6b3f81c80f67925dd5010689ead8168faba155d6790261d42ceac8ee9b9ba239c685d1d9e07e3ac3f8a2ec752eaa54990a8639bc0d5c6eae9334c7344b2bdf0edcd343b270715f1511b06a4f340ff9372b09ed71be1b1921ce1c2f63146cc4cda9946b8face352051c0241d51f973ec8aab3bc0bd141361ba811826064418bfbcd50030a2d270276d623c5fe4bea3668ab379728f856431503573394681aa6801eeb6c5507afc3b91e51bd2c9bab6d812e0247f93890b784f671df3ed1a6afb0577b4025a12dbcc33aa14bb72cdeb75063bd9e167ab9514f46ec56148b74506045515b4d89e6bf6e034214253cb08e2ca8d3317e1a60b2ad00d6758d41dc87e78fa016a945330c165f32606b3c701efbe3d79f6e21f76d933a0bfb29a41b15647743bd8c81d2e2ad40535f942b0b9ce3ff60178a0e7a559c811a46e5dd66741c045a1913396552f73cb2951d87f933a62fcaa043793e9446e565cc8bc81aea656d8106b0c1559ddb2fc1f8884b52931b5d8ffb43fecf35c15c4c9289366cfb1c31fafdb9ce248f84e263427773a1352493de4bdc538d0dcaeb8f3948baa4bfe8b5b1472fbe724d2133d013794c48f22e05a0f4741ab678b7f38a39bec722ca897559a3b4ac851254f7b2ee6efe9b669a8df1a22f7ee3846bb06a939ac5bf8e67e7131a6fb28186194352225da593e63f90b1e67c212a09d6cdd7c486f19efaaf91d1fb3ada181bebd74315e8ced145d45552753e0c36d74a393761e01c6c825192cccaffe0f7557d3a712383550e52fb3f15ec09038331bea0ad5b7a68e1dfc835917793c5d3b941df23e26832180d1ee0e0b863411129b2e1f52082087a0208631f69f6d69328c664617103ffcda66f4f2f185dae86fd53c3d7ceb9be7ab8b149978874746bffcfbd32b57a865fdd5207ddb77dfe83e74cff193a6506843b8a9b67a17b4ae47284efa2e091835a3caef20ad21959f18f0100774e0d7fc4a01f311679d7a42292af16f2ff2016a7b2c5acc3177b5c557ecb5d24a3de2d2b67aded0d71ccf5f06f684230837f390e3078b515a3b393787fe51ef23dcc60f7f1d8c28344459801be141bc0ca6b0094c41e01de0c1961fb076720c25863f82986524255525361e7ce845d01365a59a5a547f22994b91b4a696bd455e99ddae2c2e08e12e58b8ad6adb89c01ba41855a71f6e48b51b5fec2037b341f5a02d4b64dad53b376753ddac81cd390d9dd072d36c533c8bd6b9f3c8303e499a625e4aa34b5bcb3453978de23aa11f1cb6da54d386cdcf8c9e2589b7ad19d110831cba6caf8eee46a339b3f4c0c149039d7ed98a9616c2872b6d34e58ea2bda3bf573f4fbc5b15f13f6f3989add9a7154ffa97956614dd7d9d54c0821938c597d00b8b0a6d785db8314004a2a3776636983cfa735e0b52dc617363c8c174366a55847f987b4545418b3766c8151cd1262c1edc789c474650b7bc5de73dda7a1383228b67ba7cd52dc04b7d24322b2b1d3db38069b1fb7a25c08b1fc92ca68127deba11ca59ae1656508c2ea388c6d30e5856f5917cc70dffc048d112b4a05d7099919af1e51f59e45cd24d6604579e3c27bf2e50e25a0f368854220de77ab707f943391ac0d1180a4a968ea0fed7033af07e4e2a46f4164710eeed7386f644388b1013bba4b99c45c3fc5828fc47663395a5dd360e13de1d90628d3107ef8b4b55279b87bebf2e5cae67f17ea6ba930c6a5a22c9f1ec21e26f9d72cef81074d6f17160818e39ed3c7ec8fb8159456e01ec3d520e46635693d1ecc1f527adb7ef8f62198185d7796ab344037941a4db3e13c2adf1b99ca96c2e133e0ad8524832b736e287c721a22e79ece986be5b26099d329a475ff0b0e3199fc9c9c66497adccea7f879d355f158054115e4838473662cd65b8a00f4f1ce6603636399b687479ae7c81afc3bc83acdcdba1b7c7ba3011fd0364dfb3746f801ef0f0dff6f66500947da6120adb6b81a456d76919630fee02fc9b204c8b907fe10f0f200909bd46047e633aee402dab8c962896e69e3395a5dd360e13de1d90628d3107ef8b4b55279b87bebf2e5cae67f17ea6ba930c6a5a22c9f1ec21e26f9d72cef81074d6f17160818e39ed3c7ec8fb8159456e01ec3d520e46635693d1ecc1f527adb7ef8f62198185d7796ab344037941a4db3e13c2adf1b99ca96c2e133e0ad8524832b736e287c721a22e79ece986be5b26099d329a475ff0b0e3199fc9c9c66497adccea7f879d355f158054115e4838473662cd65b8a00f4f1ce6603636399b687479ae7c81afc3bc83acdcdba1b7c7ba3011fd0364dfb3746f801ef0f0dff6f66500947da6120adb6b81a456d76919630fee02fc9b204c8b907fe10f0f200909bd46047e633aee402dab8c962896e69e1040c9277dc8c6351fd039b70656118046072e337c872d37814fdf794ba768ca31870947f95bdea9c3c192cb3bbf7effe29d0fb7bf7284c1d7e0d66acf118ab01ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a1d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f31193e844b86b8c4f590bdf70d22aa7ffb46cef2f868facb733f6021b5cd75c6b3b234a1d408a815218dd978d85cbabe63906fcb6edc584daec2c3ecebe09c9ba6e637474a7ffdcfb565c32df73d979327c405c73d83f718ebb906410d73dd2a69150cdfe26095404455247b2bba849a1b548587d63d802de2b14f45ff566d1748603b6d97230c19cc65a61d650d6c2e045fdfebc3d59be318deace7d9def822802206fb559fd2cded1180d261ade475b90a049b867c6e953e68a9eae362c128b6c024f3cc984102265dcdd7c86bc903d5b2b9219ccfd1a413f5b054954914ad8aae2b3f9c77fc3bd3c17566dd79285f24c0ec915bdd0f6a6b45c99c5e3b9018b9e6131ac312f8bb931b3401555f0b5434e084905dce14394217e73ffe32d8593c1e3138f3bb27893a847d446af3c7d6cb1c36468f53ea4806685a86e0ab666f443a24f3cc984102265dcdd7c86bc903d5b2b9219ccfd1a413f5b054954914ad8aae2b3f9c77fc3bd3c17566dd79285f24c0ec915bdd0f6a6b45c99c5e3b9018b9e61ab6d33a256f9ad9258d987fc73942cbf04716c5e24983a94667648133a2579013028389c7b47ac20c77285aa156d89333428bad1a0b508e0dfd7bac1f48d5fa3b81313d00adce58bbecb348378aeb69c112565a7b6ba2dfb2c61918559cf740255e45164d505e610d87f31196438ecc7eef1a61cab55a3e2c8037d60fb090e100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001073b4a1eb8fe17b673990fa342e545e24dfb8685f4210b39223ef563a79db2c129ed5e43b8bd8aafe2a130c52a1cdf5b99ae1ffe96194dad9da08ea193ff17b6198b4a05c5b94ec13631b16713c23eb403f6b9e369c19b239ea2ebb612b32e73161fbbda3f40e71973b503a1395f71fa4fcb43b0ea068c3eccf4bd9aa8cb62bd018f2232c024a3d15bc3c9722138cecc5513aa81f29fbcd2a97989fe824f71473a8f50d944a9ac248e6770fcd64c081213cf506149cc2f953a004c56a9dcba680a84c77abefb37c669bbc12d0b6a7eb69e7d887607a84358e885c87f88098afb1a315b13c35185a7d6d5dd6d6938ea943a82c1f6189dfaf30b7f507eea06e1710835da4e579dfe8bda8459a51c1b43c8207f2641354401dc13412bad779521131bc000af4bb3f5d0225fb0f2d05d82c4cad7b4c068776e0da431d4e631d6afe91bebf8084e2c27e38019186c7bb801a99388d4aa03a4ab1c3b1d4c75f2ae8ea831dfef699cc11334256a51b70c962c8ba0906081987be73b25205bf87e9c57210c0fbc5522022c83ae635c6b0e421efd868aef1b16d230732b248f0f4b90e84d37b1d5bb083c15571301a3183bead41b1eb5bc4499c6d3d816e954b1e134aaf22021d23c1073689414fa1843893ff47e7247a15e7587c8147c7debc123e4a90e021405eab26fc6d428e2203a2ecae62a60f79a2e7a5ef26ae7f92a440c801b2c14f5e9ec431386bd2eaf5368a704e71d5b9c5659312634947f4aaff4f5b2581b15186484bd03fddb13a6ac062b99a7ec01d793066d24781c2bf7be0b5a3b51bf2201cb98d6fe299c6637d98221a9cc402d909e1643b44edea8a30c71ef24fb263f951ab541067b9b81a3ec7ea1adf3dbd337ecb893e70d5d55dc33992beef97630209b797e6d29c9f7e8926c58384c4ce180d56748f95b9c1b6e35f266df2cfc23edfb065a24470fc84700185e9a910b1727e51c9517b51dd673176457319063192a27015103d510a8827a90f59a17381873469330073218a7daa0cf7e324c9f1b0ca38c8833d206868983f400476bfcff0ee127b68ddb17477b3e56788b3ecc115b95c6235a3d610ebe714c86bf9f4ebf93b83a9b4414173c997cdd417b96d23d78bce8ae81b920ef4b7903d9c08cd872703c6b4f66d479273dd8917ae9845a0676ba9e7b3c07c5a72a7b38063045e1fd246ef22ab2302f7c955cc3e0dcdb3f1d27eaf4d7888d0a0d9a9d67c7dd73411d91d34dbba3131a66e9d47916d936d91462a1507f707ec51d5fbdd99de869bc2b6bd47576570de760085da7a8b8e12a316d243a37743924532886c296f1b75b7eb61926680886b0c713337c5c599abe30b9e705df3127c54212d7bd8edf76919ebe0c8defe0ee15971fcc51a9bc80f92dc5f034dea36a0cb2d675938b2ab53528a3716eb206e71d7c44abeeb4fe627318f1ca3e68c0bcf4c032ec309195131fc1a8ac23e6944121d9e83408db3f6c4a3c895a8a7aee43f0012314a91d01584c6bbdfe92ec5031c40d7df80bfafb94bc074cadecb23eadc033a99788919a86341dec11e186cb285baa7a8213110e7feb19f7e46777360d87f158535207543d165b7e494642329ee38be36be6b879180b085b61fb02349dbe19b984935f6fdf4a40f8d9c80b2cff9feba62f83ff926f9a0998eb32a389c0d74c23a60b6479c2a7e0a41fc4d57a9614d6393d06201679fc11a7c27fa5f4f5fcdf75148432691a24f42642d2a29faef2b49e55aee4184a750cf9dc975fb46b7656e0fab9563f4e8c37c4a5485865eff94e159c1b6fba166c3d8b94a4e41b774fcf776a635bc137890d98df0a5f2d1abdcd92fc98afec331a350cd650cdd9f4b99628027b95ee8daf4e4fe7878cedb817fa7825d0c505f2603651891a3141e4cc81635c07785493a066fa230855c255c36dc7360531e951d20b0fb98332dda0a19587a296b85f9ffae32ce9bfa7df549185c600ec3f5925791a63b835bb765beee4abbd64941f7edbf29bb92406f1b4408e5ce862a1d1558f1676a52a3a934b5f6074a8c55b5e273a513d242d8953521fa5465cdcfd29a9cb25ba85b701fe31c68b9001a0fb746fa1322688ce73db4c460d31588de18cb15311c92dff67b240aaab4bfb8d0e868423564221b0dadf19da4b19e4d23891a21e367e12dd6e679106257a7c79ba353e987d305f681a8367b0ab4a5aed2c6feae6011e2639dd83ca031ee96e66626b8a0d2b91c85ba68feb6123b7f43ef8c7babf2f712d9402cd551e2139b3bf60d1b084583955d2599440b2edcc989065d09091108ed26bfd32aae1dec64c409f2e4f7bca0d4329afb8b868ab60985c9a2f6f702d35e3e40e02a996a62082bce4187295524ae227a3fe582bd977680afd12d2d212ca1c1bf1fd566959df7d431be78d6acffbb6d4654ea0efbfb5c8e202ed2d2f220d7374460d4ff13ea28db0747a3cea34a29fd21810cd8873cd756ff15e1e171df28c8bb9f2b00ec15d724f8b85c315eda3f929f13c2b93255fbb7d0ea1e1ea2a4341455e428fb6392cc47246633092c29fed2265ba117310a8e955b6d6967115bcbebaa1bd7049c6d33b8db99ccf6d5fa6abd9a392e7a888844797492969902f712d9402cd551e2139b3bf60d1b084583955d2599440b2edcc989065d09091108ed26bfd32aae1dec64c409f2e4f7bca0d4329afb8b868ab60985c9a2f6f702d35e3e40e02a996a62082bce4187295524ae227a3fe582bd977680afd12d2d212ca1c1bf1fd566959df7d431be78d6acffbb6d4654ea0efbfb5c8e202ed2d2f220d7374460d4ff13ea28db0747a3cea34a29fd21810cd8873cd756ff15e1e171df28c8bb9f2b00ec15d724f8b85c315eda3f929f13c2b93255fbb7d0ea1e1ea2a4341455e428fb6392cc47246633092c29fed2265ba117310a8e955b6d6967115bcbebaa1bd7049c6d33b8db99ccf6d5fa6abd9a392e7a88884479749296990059566e6dec5172aa9a3d8a9347fd6550f6f1691a37f82eac53d94a6e7613a4813923ea18517c0e7c6fac4d117b9917c9f0728c9ec39dbb77de85b5c17f2c7f431db538e220d9050deb695a20721092fd516be72dcbf54583fa16ac019dccee5387802b35ef46d465536c7a5125bfe9b85eeefae2986b2a5c1676fce05f4e00023096f3065f532e86a57ac40df2077670a0043ede4ae3acb82a22513f9e11ce71d7fc490211442a89bda54e307c18b2d6a33e4d61c37a7bc14225d70a1b8807910a15e6790d8e4b82fe087135089323ffd067829bc177774d67da45e03ba2635208638785079210403ebcf053fb691039dc5feb64d5e55135b61c9172354fdb2209fd7b79a22778c407ba6c5dcfb5a08d6ca01be1025bc844dde9f67b13c1656140f7c93a4f215a82cf6beb8864c0e021c398fe6116c383d633ad8f237112c8922b7fca4a22d89f65ab4f8907d14f22b785ecca330a9a198d313d069cec501dd27014a61a3142c78ae69e53a0b31012aebadfa90dc35eb5536f4994919ec190c088f458aff2d588477a591b4c45f207b3dc0c3f7890e21d8944e3185fec1f6d533f5beab1bf3d1d1e3ce7389d5ea6fe81f97197ffcd963d9f30a96afe218580f22b7fca4a22d89f65ab4f8907d14f22b785ecca330a9a198d313d069cec501dd27014a61a3142c78ae69e53a0b31012aebadfa90dc35eb5536f4994919ec190c0d3f2980d086bfb2e58ba6ce5ac11b7bd0731a80dc6b6c793fe46e38ee655f9519e781dadf3ba4e72988916863b109d130a72d53323930274c4836483e1199181c29cf91f965479c756d730c77c70021fb3acc627abea6dad9ce7d0b1124fff70b860f8a3d66928e9fd8c64e2d8d27bf57cd0b398b7edf31aff5790db6eb96150000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000123f35faee494ebb4c59eafb62b0df636b312cc70a4e5329719ddbaad43bbb9b80583766f430c6f91c97bc97657653637e79c84d16fce01910ad73a1d7420d32527cc9f3aebff16a8c5b46486ef959fd8fa21a285c505f467355b3e0dbb9d3c982e8d96db2821d25e24703ae370b04a39bdf60e36cf5467872870ce76b50a5dce0e2fa435410a8c1c4626c3a2399ef4f3e7f49b00809672c0cc797ef0bbe4f46b0eb6584f1bee2e847cf46d0e0f28826524128b718e01e1f12d80d3bd64a881b509c01fba9adadfb72f80b0fb0ecd6d8df38b165dd837e7db926352d9b2459bf72a99211336806a80603683b6e59d9899be1bbd0135526d57afb817c5dafcaec8367dc56b395f205f463ff9fdcd89b715f5dfba6fbb54b5581e3225ec18afb8c62f02aa3f189dddffcb605bcd45d8ec26b3cd713922b962ab1546fb27f9d8dbb70ee7784cb73aa5746ac9b0fc196c03caedce74f78ea31fe717a3ba8f94f1d9002efb4e132456ac608b2b0bd2e4dc1326976b07b3fadd6fcc9660d1c7612bd70c343726fe838f3a3c9c765b38f6f28559aeeeed73492af3ac96c6f32a36558f0b242d9d391304f380882e63c6cf4eda0cf23ddba9061221f4117f214bce80dd540c9f6c9ece2744ed3ace154f099e84203e1b8f23d10b36e131086e296ac985a326d44e92cdecb938d560ff7b2ae6f49c238ec90baf2661430860cbe493af63c71a64bf86d4425f7de5ec5950b2b5d48c28c01230b9761773a24575911a56b872177a79d6111fb1236952250654d0c6bf71b4862ebd290fb13743ce91e77c56be0f84e56d31327343b976b067f1457edcb90ddf61741850d6e21df900256d2a6419d3f9e52edbd3c7f83aa742c64ec7abde3893a2f3661c3ec681f8d024bacba606be0542bfeff4c62143ea64dbf81858fccf8a615bb55fa06fe6faee822718c82534e42e71395236f660fbe71479c08c79ce06ca0ae084dde004234fec323088058bf245d9276a6979300a8cf8100285ade835ab97c030243d0f1b9c263f6dce0cd23ee40190f5eefd890d85d2c5f546996e1a4cd42538feb7f1bdd7f8980fc02ad26bd5eaa123f4af116900287b4da58571bc2e4071bd64f684d2525384d1ee21c271db5433c0a973724a26a3532ce46013147b7ce371b52f086c851dd62dd238e3d4a1730e3b62fa6f6b4c94628d6a35ae06903b091f56ae8d40d4dd0b8b123bae78c33ad4e44922ec766fbaf320ca1c1042048e62823f552e69b209fc018c3b27e6c44bd2a53cf48d9c7f56201f125b3024f0a3c68c3f6bc4830f874568ca279dde32f0eed025ecc50fd4dc654ef1f63f06e970c170ef01df318220075f821adfcc5b4692853c651d8f926b2c7154a9cd16d2ccb1d9c1cf56d75b06a2815c1426daa572bc47f0c86027fc0d683f9cc28adc49d864169d6297053cb989bef029b837c61533b35147be518f7a1ec5ac20c1b869795298af7fcb4525316fa069269f5af4a904c6931da7efdb70da7285e27d11a086095a60c830d468ed87a10b2dc71069b5708d3f6d841adbe0745f1e252c202d24425afe18442fee071ed5b73cf8c3567d099d289397d68a11b8add8c9e74261bc7cc1a3179d7c42796eb8e802e737223015faf51bef402211804a8826f9d4745a168c00bc2060d8948a086e2d1de66acd4d22e67f2343647b35aade163c0fc427d9b278f936ffe1214b6a883badafd4e75fe8f6fde0ec1bb0158a418eab6b2cd2ae4c4e5eab957d28d12179287616dbbe7e6493eb0fd9424bf29484c88ce2ecb09ca703b1604c7ca348b86204b2b95241c7e60e94cc491ef52a9c905811ffa0841ff0783fb38fce7f0036d11c1d40f722ec39fc3bcdbe21dc7fd9cef439a940d0787ed87a4a52789dd73a221e26a207066cade8de3d1db06f90a14ab79673d49433453328f60366d015184c0e6aa11a8349f0a7ee8602c0b55364f8831bcd8d526766f6300a3654f213532b0f0dbccd4776c81a75a28c5765ccfeac8d5c22177a88ee05de350f41900b5b4d058522493228b84de2db5f6e1424cde7fcd9c372c58c179fc9f41e5525b593312027f6ecbb9f2a9ac0568b6fc779dfb771ee58979de0a61c0c0f2a5dd68adb541c8239e652a81b4de18c39dd0ccd5439d4fb63ebf9f0773ea5fdebe8f614ec93288c9e5e5b12fd993aec4254bdcbb3839978078453a017675330b60cc5fb60570447a26efa6892213635e4d73e9772c98cd6028fa21472a0f3cbe54a5c4890ca0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae02347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f3dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc620b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de6371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a8708e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae02347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f3dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc620b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de6371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a8708e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001289653772664e5b0687671b6bf39d7359fb26e826dba5e1eb38a7e5233ce8de93ec6491753a6df9dd49388db1f1753ffdc69a266f0748b95abf20a8f65cc98142b1f7ac0060c8f935b9a328ffd8580f8af3732d9b1e774dae76956e5bf07120d155ff29f7d0992088c9b20b255a58866102fb254c5b20f82ff84bbfa157893462457c2be8825a49fce7d2fe697a07c834e1498a2ff2636a5e653e8b5efc346403ab7e0e2a2ad5b030ce3f960e10aa3dc9233db165cd5c5ba88137213ea653f0810fda5aba2d75ab166e0cca6c8c4ed479483bd7cd4f9db3ac2fdf7d7adb1c9500bf2d5e86ba4e45091aad8653583b89ae65d2931d7268adfe5cce3309bb9cccd083cbeec5e36de6f1a6470030880bdef9f26456b706a217813fb8bf4742020f4209b9c6de16feadea3cbdc9be6aa583c22765a600d194cd0186885816517bb6f3ce885e56bcbb6cefd35e6cc844861fb57e89766dc3b1a33201c82801f92f9d2337bf87b75540bbc0106c7074996ae1f14c1a5dbf89ef0941ef4cb729f7be01b09157e2d89205913d660f9152e494cb27b7a42b1292441c93f9c124aafcbf12c31ea65c4e9e714558acd2928da3d3675dfc9859551c535c081a81e79f163baf21513d7bf8fc2099863b97b5c05af50d4ca71eb13b6ccb5c815bd2bd83f4a0ff0293ff13332dbbb46d5613ec2484b2be2db4b22b31fce600d7d8f476f1d7526ec03ad1481b1a3c72c5736c382b3c04bcb2d1fb76fe935e37c3e130e70a50e6eca344b100f9ffff50223345ab458fcb028dd259864c2b9297ebcec62b5e8fe033f313a4b3154e4069adaecd8d03bf1b05e4e84b2c8fe6d28ff02f50c48bc01ea2c28753404c226483eaa05bd14aa4c69bbe15d937dbd2bfd61cf65df36f3b6f47634b1b6989ff53115569a27bcaf2df5a5ce24e1fd6a1de71ab52215d2492604b1202d2bc1ea579926677fd525d466ab4e90526da65e7975ae2458c0d59db6d06c104124bf579fa64ae96db0a0d5cf1eb4abfb3af7101b4ba1f2b8f9f85980a51119b0a870a9efa9b32e0ed0d073789fe0d4814ad6c0fbffa7dbb9ef4d4d0cd98d0e8ec97b0027960bbecd21346c6defe5f660b38dbe05ec072b7f145833b24d57151f0f65216996636648e72ccc7caf96813cb94c3a72e99654095c7c0210c1d03ac0c241ab7743d248a5d6c07fdb76b9e9fe2f62eca4a6e137c192078f1a9f0c3a60ca090e2aef847602f31970a055785c21fdddf5b8e4882af5d6baf7a2abe4243e807054c24a4e5c8590d5fb6c0ffe7ccd5129829c67636e5559755d69cdc434a11a37bf8651ea7467328346742b24cadd210bf96eb351dc21d7d55481960d0d8ef9df286fc3a7e42f5867cce8e2b201afc1f47eeaa928bf90c13a0608fdb915de826447ab5db14dc07da870987d8725078f6048ff976c83c95bd98fdf23a928695493d7ff52efb78cdb88959f994c0c0b74c13a8a00ef1974a07096a70bf42980d9b72f734e4ec0c9e0dbbf3ffac26f3bdca8db19d036caf234f2ac0f96882c89b461ec1f50ef1b247777597ae7273f9093e8c42f90f36a1a3b65b759e55f155acaa9bffb52c7acf71a95f8df3508239426b68deda949f5c777496e2b71702fb4bb451a4cef3393a7280e63deda913b28199025ac307be0695922dc3a83761f69768a3499de67274e501cc7bdb52254099a24420b67dc27a58158b87506ea1f69768a3499de67274e501cc7bdb52254099a24420b67dc27a58158b87506ea0f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5e2fb4bb451a4cef3393a7280e63deda913b28199025ac307be0695922dc3a83770f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5f0f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5f06f88f71dc0d453484c90c325d8bfcfbf95bdb026c9a3aec927fbda982cccc1906f88f71dc0d453484c90c325d8bfcfbf95bdb026c9a3aec927fbda982cccc193ed2ed146933bcce4e9ca0398f7b6a44a81334488416cfb84f4b02b170ea0dd42e87a8598380ac01e243c847f35a44d5c0f4b4dca076071896872ae74d24914800000000000000000000000000000000000000000000000000000000000000001e3c639e9dcd9b3575eaf05657391f66d9d63570bcd53e78ddc3531d295f14bc00000000000000000000000000000000000000000000000000000000000000000c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba03012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b05e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df622724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a331d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce0c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba03012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b05e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df622724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a331d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce154726d1e457b749e5a32d9cb269c17087add08c554ac6163f1ba6dfbda977f43ebbdef2711d9803441a84e31a9d5ceddb174d378971a5aeaf3f8ea84a27c7941dff3c5197fd00d1d0a0de7643244f7892ab4a9b26b3f4238af227929b22c07334ab22fea15d89c74a4ca0d1cbdd19b18c8dc4699b5e6d44a70b9e363033d81225bcbf352e713ef1b86fb85c844fefc903d503fdcb484921d323ce1fc3a082f81012df7cabe39036022d724c01bf03b4c3f033f62c418be42a9a3df04001865d32ffb8a81db842c764cfda08d979a7863a7de0149f6ce6ddf6974988ff4d13213e4ff5f0fa47d4f844d769855072f649123cad26882535aeeba8d19022022d051fd3f0470b10d600d0e6b73732ca85c61cc8769d3057e0f6bb7b8e9628d159fc222c35e3ef570b6bd331848989afdfca2c62d1ac0492d2f8b11ff463519b299202a6feb09641672abc1339ef443b8b25d7bb5f37c40752bf3a4a4be1d8bc1cd522d9047da94740f3a6eecb0b7623fd50ea2b88a1afb2b8cd30ae977ec6ccee220cb99cdc83ab47e449bbf3ed0a71ef1707ed7dd48d4e3ee1cf1f627aa733c79b0c98fe0eed84de357198da4b19858960dce82056edc9df43dc0f34fb85a4605d02a6feb09641672abc1339ef443b8b25d7bb5f37c40752bf3a4a4be1d8bc1cd522d9047da94740f3a6eecb0b7623fd50ea2b88a1afb2b8cd30ae977ec6ccee220065ae6aed6f15d7f50605401f337c3ff7ca9d27764389f52364064fbd2c3f80251001d0a425157b25743a0b0d071bc241473e526eff30792980e044ff103a4d16fdb19c15198228b4de779421645f9d26bdf93adc95a6bdc50bafffc3ad071c04479d5156cf78522038f25f90e52be2b7d28136f6e9ef9aec6a11b7fc317c0500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001388b0333da03374f9da2acd2136f4b7d88bdd35749e15808a64704e43de754dd090a3a3bbb5eb5167928ae828b166e81370a7342fad5731a55ed33d1784705a92781f343ec76148b7454891fe9444c8a2e10f7f88790d40cbf34dda89d33ba9c2a8bc53887742d71a89bbc3c2194748549444007da46c8d5b134fe54ebca754b2dc0f5389654a41d09d968af293434e6ffc97db65c5a227c55e42f102340ad1010fc59263e01be589e125af93ec1f1c3972d08b02328c0ae07034c80255793a30884825c2cb56eb151660b550b8f95bd0d8cf94c5f65c7c953fc5a4aa8edb38639efcdb6fad468b4d12c945ad611a77e893ce9f2893b1274855a00cb4f23341b1d71f4d444d4694ef37c68aa87ff05801edd71f131328c1d068557f90dbfa88c26358d6ea201b5eea34c3705aa8eedd7be17e2bb6eada4bdc3e1d74e7f2f718a361b4d2604e4a24b415d17caa58b57cdcac84f0e37b241c066e78854c1d556e92dee9c42126f2a104a4f2eb7ece763ffe970d9937c434ed2892491ce9cca07fe21490ef65ffbd3c61aaa38b589fe18945f7135c81cda5debffc16eeade02b3cd15db30b5e9c254b250319879409e41139c81fe75efe74059545246d5fc7611452665d50cb3613833ce7969d425a2a156c92b7eae6c9daa08288d710400f5f8b61b8ed75ead34786034e9bcf00d38da5404d971f53414a3804dd9b46036775bcd0a56bafb3a3a667f7a0963272665bc4c37d3d6ff8092479208aea2bab54f37822e94ef99e76160d9d1b049908fd9e62ad2df6a1fd8e8192b1845f95b0d84774c27d9d15b3176866b5aad640722526738505b412544167463038fb78b2268aece050bc8f9238ccfaf7eb890774fb55ef0aca46e6cd3d7e9ca9b6b6b9ee5db2da101c563cb9d9a7f1e8ef0721213ec32605d7698d7c57faa3213f1281583572bd0280608f5aadd3b022e6884004de6d2c362e8c01c0db39f68f515a154e98f7ef0229109c2dec6cf3c7c15ae9908d954724e57fb053cb2f3a0210007a0996d799a00a5463efa60612193b39e2ac53aa1810b1edd58ff876fa9d57500bd7c4430d403c712f50e41686dbc49641ef0352cd8fde7ad7b7ca0b684e1fe6b81edaa032423ab2bdc36a8e3d57bb79687afe480ba7358a9765291b394e7829d659fa45d983fc5a0bde5715a43764839499273851d7073fd0b29e1323e7a1cf2f508f6c4f80fbaa6ea9ff1f357b9943eda225518dd7d87e96820de245b2454ff461e121fbc283a217875bfd1e6bb1527dc9ca3ec5c8a2f12607891d4fa54fad09c2910747636acdf27bdf4abd5dc2877a1f085c40065d250478e696df36b71b5aaf079da082c241ac8755dcb5292471bd978ee86f1e081c8dc66437d2f66712f205d83898d2375b40379044b8be5958152ec34aeb2fdd41f803655dff3b4b9af032292711c0d3d386d3d957295b22bad96740932be953066cf8b4e95ebb78dca94d3b089ba30438fbbe1ea021c9361409083e9f51e832431ea376c5ae6b12d085922707fcd14307e53f0b7ea141f98243a2f8f90f05b6d6d867547cb251b6e75cb3c2a5c423e36dd4297da6a9c7436a8cbe3b444203ee8f681e12ceb49965b626839b1ae693b919521508d3d2e78d114072fceaa74b06e5a91ec5d064d0b46d03a86d6071d050736f42d6d95b7a31d50e66fb2e025384890142e2e478f7d8ec2b48d80121f3ae316041a4c37d4506da396f0d24d29eeed488315df43666f999553f8bbe81001b62b47c621ad369a4afa5ebddea27ff5e7bf7ac9a8ebf63610e2dc3c3d769d3913074b74a765a7082b2753b76fc74a4299ffe56f7b17436da3dd5c74615bc72cb932a1d85dda76d4e84cedfb2401ab90786ce997a6379ebccbeab56f84fb83137841e8ff5a77846dcf3dbde9caa99680aa61f87d3d0df09380da628bba66e00d90e455bd1e552c2ff431e72b51f4eb82a2de11dff4ed7748d07426d32879713a4e20230346c367e619985be1283b95eef2bc166deae71d93d7d2d668c93218084ce7b567f57f365af0c8fe030243d7cebe7af6320b94ea5d48eb7d72a1a7d1207f44e8c2548ceae32a983a06f9c873fac23fdb58f23bacdb077b785a579df61e37dd9388e52541fbd63823b52d5694ef13edce0a8ba60b3976b9023869ed82056db320d4f6d4e12994e576f3dd8375de4f49fc044e4776a603639e755c50a21cec7a6c4ef5caa07973ac1b16f04eb815f80fcdd5e0db38ebb26ac0420896263188e3736946f3bf517c077eb5300c2b271757a63931e99ac339705544006eeb0e771c8c96b90c40ae83f8814acff3d4fb2f4155d01b0f80d5f3c097bbff911637ac71410e62c2bc976c257989f03cd75ca0eb4b0212a4b304979ee354022a9408538ebef19d3d436893da86760fc328c5a5adb1073a546894959209abfdd56d165e364547edcdaef51cbb5fb1b13034460a3486e5295310b24156bca40ad4e029a1c9bab81232510ae344a04e4ecfcbdc3c64752423a60ae6ebda305bf52b212fd70f5a67a5046ac98fa8de7875f1053bec6da67081a637e21980c23436285f1028f0a5985afb9536705721878a0efae65a2b5598cb52e3b713b02acbc9d7a23188e3736946f3bf517c077eb5300c2b271757a63931e99ac339705544006eeb0e771c8c96b90c40ae83f8814acff3d4fb2f4155d01b0f80d5f3c097bbff911637ac71410e62c2bc976c257989f03cd75ca0eb4b0212a4b304979ee354022a9408538ebef19d3d436893da86760fc328c5a5adb1073a546894959209abfdd56d165e364547edcdaef51cbb5fb1b13034460a3486e5295310b24156bca40ad4e029a1c9bab81232510ae344a04e4ecfcbdc3c64752423a60ae6ebda305bf52b212fd70f5a67a5046ac98fa8de7875f1053bec6da67081a637e21980c23436285f1028f0a5985afb9536705721878a0efae65a2b5598cb52e3b713b02acbc9d7a20427665ed95b17a0576af512ebc575a225cca770747fc11a85e3405b33ad6bb002137e04dacf9afbc347f2bf066d88f624070fedb8de8410940ab528ab8fc49c04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a3b34304bda9f35e9ae3a465520952b043317ea89000a964bfcae2b94c9360dc91d4a164b68075b693e2db439bd86b92efd5b5b35359cf24326474ea04c03f18c20afdf35e898ca39b550f3d9fbcb59cd2f7006a49fe1a6e7cdb576ce47a9bc4d1646089be80432ccfdda62c8eec2e8da595ac4c7875b4fe6b063e1a56fdaff6126c27098218a30c011033a0ba7b53d15c7aad1d58e7f50088459cf9ec915a2d808c3125accc5382298d1a2f142f6d8ce841ad42a618144605589dad1893754662de5896202cb8410016aef80f8a46fc1e77d4ccf2768976871259c95e61722e80b6596dce665c4ad8cbc22e9703f3cbbe60e0082df02448ca0a85a63a0c49c5e3718005859ff8e8e357b954a3dde5aaa4eeafe4f0f53a30b91c021b78a2397e63bbfc9e5e13ddb28272a15d757c582a8298de1cb5c5882224140fbdbd5c059ec2de5896202cb8410016aef80f8a46fc1e77d4ccf2768976871259c95e61722e80b6596dce665c4ad8cbc22e9703f3cbbe60e0082df02448ca0a85a63a0c49c5e04ada1a618404a7f8ef455a4ae015b691552321b7e85bfc2dcbcc69d6c2ea32e322204d59cb6ddbc607a8f33211f7e32a5ad37bd025bd16bc602b2a9187f278c351347fa588ab24938ae2c698ac6c65b1c430e5d171147f694b99f53db294e0f1a3aa5189f130745a328b2fd2275f773ace9083d962ad8ab97ce233abebe7bff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001019df7293d86a46a9264394f565f5daca9ba9b71f72bef5bde9835ef9e5493f02d190ba5382f6c31778815364522878224af4161e59587610263c747f7fd22e90f53f3b7df9db111a06d0629ea0903e971e8f05ba76838550a4e630ea9ce80023f499838a660f8bfa5b754436e124ec6bbff3f4ea4faf897a26f2a3e7a83413727b96a39d5ac2857d0137654c0927241959a3c49aac98813b66cb0871b3cf9ed1512f8cf9db84d3dac121ab81241c1e89d400f43d37f1fff62741238cee89f6627b72e57645ee9fc07f35979967c5c553f443f00833d5013081fc400d03a20da1756c0456371aaa19faa6b2c4145e5cfd2b06f23eb4a4377d5162165e86db16911db4fbe018e220f8bc8cfc43d91387aafeba8d04123dd0c2684e5fe981912fe03b94034b93f551f6d63c77c9b34e6953aeb90b3adce0fc70db5ed94dd9cb33e0699fb87f635069e39b74702fa17b2afe52b59e8a0ec022662eb1c521b0a2e0a3979d00a5028f20106176c8bfe3768e282061588c9c28ab0e3576b2f1e6bfef60305451768b2cb1ed83ef987331dadc85752bfa41f6a98601da057b34c2daa5d024c6407807018ffe6d7c504bd39fdd28053a9a1d2830f4a5d1780423638b59814446321293e8b059e85cc7369635e0476ce54ff670e09a4d5cf03bad67ab7430bd01fb1e6028d1cba542432c0d7c1db0c18e09488f29fa5c943a820a2224aae1f5852e3f49676f5ef3448e458b96945e3ccd7489bc45d61f5d28571d88cd8621b031bb9a38b34a04d462b45801967f78893de715d00fe35f72717e63e7df4230d6200acfd3630a96bde871e12cff4318153054afacf68b3e4972bbade3e6dbf0e467bc2002fc5173381483533d2039445872ce4c305f4caf221d4853e94a85928c92bffad1a947f3d0a5e4143ec1daa0bef4b826b5f5f89b23273f431c3ad581c64a1a762721cd2187580eccdad6197c8ca3cfabd35590be48671db8e2429eb3053bdee9e38389a62c631c803379ea095486b4bfcde182583f3d51c552b5f0d2ed6df01d9c106cb987ab9f77e8734ee9dcabfdf5828d04777fd2a21d02b999a239956e1a43bad45c34b5358c2b9b05469651f0a604e7ddec26cf76834e29c5a2d1eb9e713dfd7ac2f2325a0cb80d1fc9b4fd4f2a7912bf54b035ad75e7e86030a87ce3683bf8473f2eb587f3b7d775bc82afe4334d93fe583d8c13a2abcfbe72dcb6cb14e570ef6fb373af55de656c1a5c27acf5602b4a0d8da0c1aa6404a380b7f720a36b7907a627016a7a08c6ad7f20968a0c0800138f619004c73e51638196b50383f43afe50b72f7103c1cf1ba31e3178e6b05f13db06bb27db2ee23471f4dce3ea1059604d7ad61f766815ea8b528e181838f6d9c9329f980718d3a4408c0b6b3250178abda63833769c70c608b9b6c89cfc1d3a115fb17b0212d605621686c92f4fecc7d748db702827c0df00def8d67c4f5d249fab3bf45a76ef27005e056b4864cbb1993ba900072aafda82edef208b391c8be318e86d5cc4dbcc90c9a7e42e462d5fe34a56f3a7b42953fd08d0561f0cc43dac167ab0d35f397e50935d0b476fd0fcf7d1134015c5a27168a1edfd11b9cee2a4bb92939deb8cabf053f7bb6901504cde120132749bfa8fdfcf70b39283cdcb001ee1f3a65ed3081120c59f6a59e257d1e20b1732c3267d4c67d0aed60eb117b5598b9d75a9728143a63f089841ff0d54ffbca7481451fe2b7e8fb01d3c3aeb827c871ffbe3482b90f74329b4d5325dfb73890ff58581c798e096c11be2c93ea297f247390e004a4069d7aa826f5194f6a21b49116fa425f8dc4da06df2f922c28c0c442b34cd49015ac91e7c59ea0f5281005a2fe4295af43de58e5c767b346c60ba786b46b362f057e9bdd8aa14d5d5ae83586607880b97a41598eb06e8ccf9656d60886f2dc3e23d5f788866649ef4be8031c0d1aaae2643d18467026a2daae5c6c317f71b6330d3a1c991e86858859bedd2f106139ed1204d31762f5f79815ce23aa22a2a09a20a9ea1781f8e67dc84e15f82690bf9dca3fe613cd25d949e7331ede799fa191365678c8b59610bfdb97a168107aa69b9e5aa53176fc22f09292fde1354a53e600f6bed4653ed4182724ecf083e647df363f9a27b425e2c09c280492a067a6290934a9536e82efa526fcb10a2a27da202f5d55a966f804776523defed5c67961201ce8617718e9d1d43c8c2cdde6472f628a18b6d71b7db08fc1db134b0e10871f882159992cfd1697f3db5bc2631c550398512da311d8303775b461269acfc62077dea666d302e9680c24a43d9ce3ab1eae47ce663b20eb61b77c8bd965303b1da8a6bffde0f170f7c348cacbef8da8cd6c63ec1cbf46b9e2f2240bc1060edc22575940021f0e8f083cb7353410725754da350fec8db261b63b0ce13ef9f125144b41bff564b734d6d06bf5fbadc44bbe90c1a47d226f6a3c605260c51e4a4a2bb4be400a9b48cb292f940a04523bb463b5d7578c2a89b15cccde8c3ae1b5b7257848bfcaf7940832121bcdea64d57a968d2f3a685f33f794b46af6d99773711a87b74035086bf7cdede432159b2a858bb969c1a0edc5240478c5f626688c901f882159992cfd1697f3db5bc2631c550398512da311d8303775b461269acfc62077dea666d302e9680c24a43d9ce3ab1eae47ce663b20eb61b77c8bd965303b1da8a6bffde0f170f7c348cacbef8da8cd6c63ec1cbf46b9e2f2240bc1060edc22575940021f0e8f083cb7353410725754da350fec8db261b63b0ce13ef9f125144b41bff564b734d6d06bf5fbadc44bbe90c1a47d226f6a3c605260c51e4a4a2bb4be400a9b48cb292f940a04523bb463b5d7578c2a89b15cccde8c3ae1b5b7257848bfcaf7940832121bcdea64d57a968d2f3a685f33f794b46af6d99773711a87b74035086bf7cdede432159b2a858bb969c1a0edc5240478c5f626688c901ec72c0c20573b5141e5d40e17d7293f3bb25cd5f92b26d68aa789660ac49eba06b8d7221f316ccd211c30eca2885f3786348b037a8ee4b5e05159fa94c46c3c154726d1e457b749e5a32d9cb269c17087add08c554ac6163f1ba6dfbda977f43ebbdef2711d9803441a84e31a9d5ceddb174d378971a5aeaf3f8ea84a27c7942516c5e8bd23c856c28b99e4ae16221700e7e1896d964f9b380b182fedeb9e46175df52e034c121156ab055e4ceb7ea10a6bb7e6078749c128fdcb7b731e63520ad2f9faadc80735e9ba393f6b1bff4e20561f7e5b92c0ef278f8683fc176aac34beb7ce0aed491ae91a54369fdd516fbbeda28747ae2e8713b31280277e27f7275d49c4a7f096e45e097e735f41461e1bdfefdf16d904f59a52f0ab5535ea900681d319abe950e3c5d7f06d93ddf9efee2466ed5d76c58c33b9131e4a7f718b2df270d063540c9307d61fdef29ac5d7ee81b9fa9d701126dda50a019c6f28e205e026ecce537168507ca95e76fd2a2956b39553733afa8dfbbddb00f0dff4210bf1ad21fb510d64d876fe5535bf15505ee66b99bad70c2ecf6a00a73791e9543a8b49eb6fb0fb2f9ac94a3042da43dae34159bd0e9967d2a2c979372113cc332df270d063540c9307d61fdef29ac5d7ee81b9fa9d701126dda50a019c6f28e205e026ecce537168507ca95e76fd2a2956b39553733afa8dfbbddb00f0dff4213bbc4b99a61a5f56e1525410224e4f94e185efb9a747317b6c9c9c73f92f4fdb2a041cd08caaa25bf08632438fa0c85c847da06bc85fd999bfb0940ae71424321d74a6b0997513bcbcd7fc5e7be3c2c34d6ad8aac3f0a7ef8a1712044728185904c07cd059bfc85e2e372938310cf5e5df5f1ef20e3a0a4ad0e4a04bfa255d4a000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013dbe423988e83108825bbfb00d1d7e04d63f21bb6be9f947808b21ffb281bee0344c53aee03fad78657129b6293499814b1a137ecb7ff92367fc8b00aeff05f42a21bd0f8d8bb623ae50c387e3706d14db9e16fc98071761e743cea4a1260381058a33cf44896784d9faaf2135b95318fe18d780c9c110a3bde2ea5a333f4f361117c3207b9a6c83fab3ee0c9c50c91e75780ebccbdc9d1586ace01321d15fa31d8a07f3a6627948736b3ff171e57cd2898702c8c51620f7c9be6f8f390a3733280481541c55f34f239586115503d05ea246efab8b8e66dee49f4648cdeb815d322f4778a6a77669a0c5d789b556463650638e06adaf5308aa08f6cc35ad08df13b9a5af8944e1f6562b96dc74f416105fb1635dabed7662256983764913674235fb3dfa78ab3502f6e4c0f1155a6b378eefbc6e579e64f1d08f3d6dbfd5dbdd14af0b179144eda5f2fb61d7939f5a9752d1a3a48d186a2c1df77709168aaff9047875de77d872aa6adcc4ccc01eaf5f9bd14914aabf352c135dfd0ef8da202629038e412dc750d36d540171ef42f75254ecac8008f7875ae8213b0a2952bad4091107fca0bcc5f6097ee777fd92ee355ab6835c1ee4e33ae2dc69ba9771835b308049890f6c5690c6693cf100414ad30cdbe30a1b1464eb50fe7734f6b7400629f2ce5059dc187abbe89889691ec1df7448da7fca61bad36e9def0a6174f1ca2c063842be9d3725b194f3128dfc319d20ff0b7132757a620edd843074eb15bf035eaaa1c830ca3392470a62b12a47b6aa83ed6b17df599b8015315e7d0538bb2093c59540a049729492710b9f73dd4af81d04896cadd3eb23ba4813a26b64cb26b72e8e7164881809f003bf747f53a6f50e25bc3ed0e30e2eaf6a8163188551061fe83987fea42973c39d3da8b853c072d13cae1163fe8e3ec4f8bb13e4679c22928c2137b1cbaf59d5dcce696c1118ba8f889f4dbd78de7f34e64dbbe1b0fc2fe79df98b9c3b8a7bade06993e4501e21849aed85b22cc7106d9ff00b6ef01b2398c2029fe94c24bad613a1d93b6b5bfd58ffe68b4b3cbefac10f8e738077d026aadaf8ae1463ce0128c043f66320f6455870deb7bf894ea50f2831e92744312caf502139232681abe5cf3e88336fe46f70ab44b1841d6b219583990be24b7e36cdc9fe12645d9f7cb97eb1e3afb6d263f107d037c742c12e20c8de0557078537e46a736f650af7a720a85dd8792e48bb59b905f597d72d2857c3b90c575f88306fa95ad82e12ea4c19046d17cf682f100d31a27449acb2ce0a2e7fabfe454b0cbb12a2343bbd1501d2a8232690055d22e4e0b8b7c91ee013dcdaeca68e10b111537385064f500381dd00d8db2b9f4db2cd63990b2586d71cd7c15a6d0b1eb43ac241825d38efd3f7a209fe69c5d3a8b0a8547610e8c24d38ea0d12708b5ca722e65f38aa8c400aac74ed2e0881b819cac6f6aa5616617620f1f79eebd1333633679df7710a264965f9d32f063901b0c08f20b9d922e85effd78948859779172c3c2de11017bc590139a8564fd00b5b9a36c38cbbcc4a8243504727927731192808df58c67a6129209acc0febf49879978f56a2598549d8ad17a1a8cdbc5f3d1e30dbc7539d21bd602e2791101b81e45a5387205db23a1bc163ab92adbf6c38147863f452cf5e179a900161114160eae746155c53e5e14e5764b2f31a224a900a1c95bd003036102564fd6a1a82b6cd4986013abc63bfc12e3a321c7b94d758082476d8aa111672b1ada2cb6871e96766058162fab95baa1f933525df3168fa2642afb24b3d3ecef0e8ea43bbe8deafe86c8c8ae241ad351dbcdf23e5f88e603cb1f103298c7aa9f4caf6788c2f6c624e2f2cfc627ce9894fd259222caa6864152d164bdd8407649e9eb8a8d0c253a3f809dd2455ca5d198568884d3e33a5e30b67ed239e97f3e9f78278c7947f2824454679ab5a4f9ba7362bcc6c972060371e46a7d6efd8b59a59af607045ff87be3ea0bbf7a7cf285a11d827dedb56bda00070706616914e863b3f4731f6d9a4a38963ca591b59c4bc1e6adb9ac4473cbe0ffaa089f39661850b64e177d1624015be776ebcfee53d681b4ff904f56594413c94522dccb83e1c8832f295f8b881ff6523229feb1ca0d9f49b3753cbb3efd43b78d10828ce58190f0beeeab42ed89e73dc8af01dbc3b2edf624596a874e6160bc171745c8c1879cf5d1c1b2eaef611a5b151ab3629533595471e9442feb6200145de7c766ce3ef7a2a3f7f83c0179f1eab4bef2ab0e586d85964caf6d59fcd3eba218389931c1085d5c0807c3fe861039b4d0cde9c1394c0d3cc22092a6034065d586e502073ad62d33d7d92c0761b99587babd5747ba239bef7f6d22c1f0139a2a791afdf8c529d2cc2826d3f89e488ee1d5033d87d795f6e38f62dd3e1001fd2ba2790a24262ee203373ddc24e89feba6a5b2b466a2b20bad7d21adc9b05202d45d86f5dbd9d11dfcc8c223db176238c2ea0de068ef07872591ae52364fc1f1da2c5d32b4beea6a1014354cb88b1b516e1cfc5c620a0714bd540864f071720e25d3a2cd4b411595efebcab34774e6d2fb72c4386d87b27e15bac79b0f8ea0145de7c766ce3ef7a2a3f7f83c0179f1eab4bef2ab0e586d85964caf6d59fcd3eba218389931c1085d5c0807c3fe861039b4d0cde9c1394c0d3cc22092a6034065d586e502073ad62d33d7d92c0761b99587babd5747ba239bef7f6d22c1f0139a2a791afdf8c529d2cc2826d3f89e488ee1d5033d87d795f6e38f62dd3e1001fd2ba2790a24262ee203373ddc24e89feba6a5b2b466a2b20bad7d21adc9b05202d45d86f5dbd9d11dfcc8c223db176238c2ea0de068ef07872591ae52364fc1f1da2c5d32b4beea6a1014354cb88b1b516e1cfc5c620a0714bd540864f071720e25d3a2cd4b411595efebcab34774e6d2fb72c4386d87b27e15bac79b0f8ea1d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f31191ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a05f957432b4d66c307dd8d7a9f77a65b49b53376dadd9b2290ea826fd6568a542e26f67ab7b96cbd66298cf342505f2dedb559fa4be2273dd01899d6c3abb17114e207edc4aed3b7485d1c83777c9c4c561f78ac89a338b9ee76e9868d96287d088c341dec8b2c621e00483f977d30a3e5b173d640b2391f5af81fd5db955dcb106f400fd40cd580eaefc227e537c085f43dae32f3cabcf787f5798caabb684b15e6182930e462f2ed46a126742ddeea676776fbd3ea5136818b28a3440cdf5f3552ed1e8b48044a52f98d8aa0f456f0d0f57fd83b4569af6ff68a9545f2ff89200af01b0a6fb62857dc0890780e6f0f9db4d45a2e2039d12960e1ecfab86a303f1c3e6d3646005b86ea2120e2bf073edb7fd6e3b821ad27eb134dbb05d43ff702ab940240dea4835ca7ab615f5689414d24670783d804d16e1d682914e4b3841cc6a5bff597b26b39287044641ea3c0ace7d298c58ff6ec085003b95f2a4495353495bfbecaec92eda80222cf59e732ff28cb034e2b412d31a474c26054f3783f1c3e6d3646005b86ea2120e2bf073edb7fd6e3b821ad27eb134dbb05d43ff702ab940240dea4835ca7ab615f5689414d24670783d804d16e1d682914e4b3842999f372dbdae7508001930a7d02bd263520eeae778c7065165377a747cd5c0737da317fa6c6928622c3ce38cf64f415ce1cdfd6a9f3b1e59d2154d79ce4001a3d53abdf6d93c81ee435e68bbdc13a245ba0686a732affcd62ab641af8408ebb018eb51ec647b1d124ecdf7a9da04407c127b9a16f5d9b3b010b40d3559c53ad00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001045246bcd44fba1018badf3e93bf8e0b92efd6838c0c27e304bf1f13210ea3512835e27eb280107a91da9ae8856761aaea541be3306ba5b21770b1d7fa88db801d90efd612016ccf0ebea59080c2faa7d6cb1fee4123895adff0a8320e96ce060cbcde422cd9ce111ae60055b24b714f02a56911dc8fcc13165577a6f78373e500f41229f9fa64564daf2211756cccd9b6936088f4e6bab5df7eee3a9ac043dd08bd1ed4105f746f64e8d83dbed020a22a5c36a364c361991f3fd29645d7dfc40e31a328d6f4b281520b51172c5691df1f520d4902d4cdd011904784ed7720e91791eb17c144946c7829c0d7b6395fe8902129b4eee2baae1b9c0f3477cb0a593c0e91cf1a8954ae4421af2d721f96690f7aa3b1b54bc55cb0cd99a8a14fa93c05fbf978abcb2c581979d4e82a55216ab35a860d7049f87ff650697688b58df7121eabf39a8c0cade49afd6e7b8510ef8888bec07a70bb7bce2680eb57bf21fb0ad3982347a466b2e4d0056906b2c521c86b43c5cd779161f08b1fa66be624a50728cf83f95f032d8ab577a3e168af02cbcb28d75d1d9bd6e3950ef0f94a4d330d32f678c68e642899f39d8cb8363df500b8a412974ed07973f9090d4089cf7f164bee843e1f81ab0866240092ef7e18fa808614bc45b3a9347e1234e49171510e24fc4c885c5cb82a895bfeadc71c6fc5dbb3b75cea0b4a3ae3af12e91d1b913cc83c7d552c8e248ec4469792d86f9ce00da169ff140048e86fdb247520d3a214a3fbcb413ed0a275d47e088ff621f38e6211bfafc908298213ebaf19703a0929ccbc2059c6062b70158e71f99ad1bbb929f76bb548bcabdb0824187f1b71bd1c8e2a5e7d2f1cf6405a530f2cf111e0539fcbfe83bdf87e9987f3f47e35d6e8394758386c96815813d1c4117ec7a3ea0e3cc079959ae65c3d03a17b7615ccf228d76c0e7fb1b75043d0a2dc7896dfd50418b5cc682de6d970b8bfd2c26436cd3f519fd666bcc9166763fa1369056b120bd583d8a27f069f19c928b6170a6ba61190373f0a21b1832756c3b7a469c9e6019f88ec260ffdbad53baa40af7216da317fe991aca15cb92ad80a5a00b051d9aa8171a63ca801aa8972476edda4c63e0b89cd2aa4e0de30ad75448ce923ef89b3a7143f08c25073b83c1391014a6fc325ef4fd9f4c687b2f400cef048639302fa354740b6c6b61ae68502477f3aefca146942e255565e42ee8d6a30e28ad71f931b89e2784db568370cd795e6e06ebd0ce38eb371766006e3623ca90cd055121bcb977906988812ff7ae972b36e9d3420bf33ebb5a97a6abf04b5ea01272880b592d618858b4fbf664156cc72ae4378150adf991ba8e7efe73c39b49c1cd0067d3cda25a74abe8eea321f995f9640000879123cb995fa501c081dae52af936749b731e9295780e09272d8bb6b35c0711fa7409367c39521bfff921975460b6f3a3037eb9f2a184eeedce330a7589ffd2089124a4d4dbb999005131f01e682e755253f0ffb182d1ecf1a93a83c17a6562d46c894c00a0dcec27e87ad6ceada99bcbd0713f885c5b073f82c59e79e7cf91bcd8d8b4acf84d888860e8c11a0dacfc9886e8820b9b3585207ad217176300412998b7ca9259b5a7518a67de3edc03250014deb7d7eccf7780da26c60dc3c641338eeeaddad8b37859869b4d76ce3426388a5aff0f5f31ff757097e5c832e94185277c85a7e576155d77b48675526e84c836103b4eb1a1fdeab205e6a98bb51335370a335a58453fa497aa35ea359fb206c9192fbcae1bd1e8c3dedc9a65e791fcb93b1151567d999087ea31049689afc01690dc4f380a84d5b1d942dbf510038ef16e3b99c362a44f06daa19da4df88b6e1f299207a1df7d0b67a6c7f0b67a2ddaec23e4f87eab58fc5c510349acb1a6babbc056e66a453440adef1f9f5d1f1ea710c5288f52ef6139cae470fe0e14ec845018eb4781af0685a3706bba303030ab4421a6f9f1f24e276eb061e1a772a51036f8cace2f3a2e382d6056c00ea004d9d61824c2bf612be18d30706224c43fa9d1bf90cddcba0217a4b0c264561a18cc5378f2224cb7fc63f83f9d14b2c16386525d293c16d1af71eb69e89705593d0102112e724dc9fd33710a2e240fb5af456afe33f46fe273d24b0005edc9cc399530b3aaac2575e57c75d13cd39fc2fcd80b6e9d4b5f32c9c49028f9ef0f9227cecd7524c8b6cf607b9f376faf87672949f6cb0ca193ca9b07f4591346f1342d73402dfcfd34ba16150a91430dc4beb3f7a008f69778a18a461b50462a0e16128cbfd20302cb45e9eaf56ebcf23b416e4ef8f312b5807a0ee7159cb9d5f1eb234040e5f0f207a26e6934d64f44d7b91d025538b50e6fd4e7d6f5ca5ed2466b1cbfbf1a0f0df85d9196cb29b0bb2847054443c3543e8946b1563b22a12db9963041447db4ba262c280e082f8c58369d4c7e782376ae3cf154d86b19da1b60150fbebb824b45d9d3d7f1f7d073a7c962d5c820d8929ebc2a4454c5d325e49fec3146567487a2bedcc84628edbdb9111217a48dbd35804563dcb284ba4288e0660eb9a98b785d412337b9d7124246eeee0aa20b3ed3ccb3b7bc7aac32bd771f9b2d73402dfcfd34ba16150a91430dc4beb3f7a008f69778a18a461b50462a0e16128cbfd20302cb45e9eaf56ebcf23b416e4ef8f312b5807a0ee7159cb9d5f1eb234040e5f0f207a26e6934d64f44d7b91d025538b50e6fd4e7d6f5ca5ed2466b1cbfbf1a0f0df85d9196cb29b0bb2847054443c3543e8946b1563b22a12db9963041447db4ba262c280e082f8c58369d4c7e782376ae3cf154d86b19da1b60150fbebb824b45d9d3d7f1f7d073a7c962d5c820d8929ebc2a4454c5d325e49fec3146567487a2bedcc84628edbdb9111217a48dbd35804563dcb284ba4288e0660eb9a98b785d412337b9d7124246eeee0aa20b3ed3ccb3b7bc7aac32bd771f9b1d8394ba2e4adcaeaef721748559b459a82e03b51fc3c9ede424d047bd7ed5f20c42ba95e57d85e81e62e43ece358248321ec92aa5f4b75b78640b9689961a6a150a02f1be7f1ef6e5d539f61024406f5775519521d6cc7c9950525f5fa4aada04ed39a11be374a6c61c5e56b99bfcc18cf3844790a53d75fbd6e84fb2bdf57313ba0f2bd7accf7cfee43fcfbaa353d00184443feba854ca882abd9d0f8f5aa5363ab4e4200171a4ca45d1c9686169bde1abc395d177ee75de4c60c7e7ffc8822ef1f031e77c60013d5f5161a868da0eb91a4bf48387d840b56534817bae8e0b222132a305948c5650cf990c7116e62d592063b1b09cbac868b9cc427963fc0827b94f41bf8bc13d62c0f6f7d4407563447f087fcf2cd7dd627a3cf89d17ae8e36292dca26faa676dc7dde3a7b4d2aa55588db6fc006ac2574821d07c356e21038a4c69acff6501a72e569e9fc5ab4730cf015875903e1941d2fd884e26ca3e22f2e19262dea3889e7b527da34f118e3334fcd9c00de89c02fd3a30950473d820d7268541336045a6b33a4956a820b3722a343b1c7b262b11bb80e45e2dc7f362ed00bc8fe9f05711b80bd6a782e80f663344b89d2b3044a24f23d06c3abf02538a4c69acff6501a72e569e9fc5ab4730cf015875903e1941d2fd884e26ca3e22f2e19262dea3889e7b527da34f118e3334fcd9c00de89c02fd3a30950473d822e2e6b755576a27d644f8bab0e9a8f2f602e884b3d2e83a4b47c897cb45aa8d036bfcb9a3af8e619b9395d7f19f2f47ac7ca2119056a8464a55a171ef3b5b56203a3cb30d827dff092d5d3f5f5cb12d8fe9371e99111eea58fd8eb67cefd4aa22b3f2feeaff5e9c853dd26cd55c72e5ec8080d585c0d6a6cfe1a71bed0a236b500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001361c448f7ee1d45f605cf0f21f363e73000a908ae26b77c3fe16e9f5f918c59d0611920d47f26e4736f4ebe1dc3292f1aa8aca5c40b9a4b9f80617941e8b19163a408c0a4ca174f5882b1df0d7f896b9a61000a33e141eaf42e12983ff8013d30fe89210c75098cf37c6febafa31f11c979ff9b71276b0fdb7221d81a8845987250508d90cda637a8d9be2a6f535843832b7169d78283e79c54f19f2d7fd53aa2e41609c93c1a22056e1d69233b664b70b4d34bf7f580bd1e2f4d980e76a311d15778af37abfdbfd68e86ab730a8a70c94703355cc0d385b1fc7f19ed75700cf2fe6c15ff2f828bdc1915b0f5c8e66220d1af1e3782c37a3a696d36c0140469d2d4fc887753024a68ff99bb5133b167d2048a835aacee7a4114a0355260cdde6202eff54e77c63f56d6905933d73f0cba1ee5409a713e36d040db574d60d52d1148da9ede12ec609ee540da6284be2a5a17dad3223e1426f8796b0a35f5bb291352961739a387ca456a9b27645fefca1537d403378c9641a7d0bed83ef6ab18503e2e4f9cc8fead18d7a9d27f2f51d939eb4dc0b1b3090393a0ba8ef58a21f73008e0dd695c64bdff5c824c74c581a8ed1ba5713902ebe2acc0484cc60caf0a93d635513b5e3a0c800676b0204875fbbcebb777a15205050901f507a2fd1b55708b1a0fb95bfbca0caa08fa08e1014aeed630479180dbe5e07c0050e51cc8f6e13a72558138cb4cc4a20f9b6e6b386d2a506bd5f727075b52d1a546ad1aa08ce1c62874839a58835f8e8289a796db021a783e66d074b7929451a17d6ecd63684061eff0276eb8707e194b5cfe5b611ed734849d8c4866890fdf53bc4c03d1a690f535e11f50b6eded5be9b16982d9742f92e5d1e413f1051dfe5b44378ec772832f6602609ac4055c2e03cfa00bf7bdddd7982ae7e14587e0cd9278e20ae1365037112c7f58b6aa79a6ab4bc1e72bda2c8e91139307452f2549170624b0917261bae1c0992baf6755b3c639bda232b3c6cf1d03154ae2db55007607aea299afc230252a33cf670499f27a808a9bbf4cf5a5b5ce424649d4399b939ee67864d323378ebd642ff9526013d50433a96fb6c9427c0b02b506c9f357161b5096afcca2ec0b3bc97df38096242b53b3eb3cb4b5909906e0c7e13b916b420a78c305fba096fbe634bfbb35052e91a5329a794573e32823e3436fb2e01b3ad28ec0e905316355d864036704ce833f2bf2aa277b8ff9c0e28780f3c7dbf2cc4a4ab6729122cb6f19ce78f2f4c54d4dd7238e6811fec41083ae47620eda7b930fb6e412c3c2c6012e473b9b47b7abcf0f516cc718d0b7f11d4c54fe8e80081a54314d2d49e3fb80337b719c915c7b08a71a2b115102449882039677398425730976b6c0e2d3b5b9aaf22eee860f3b75cffd8817b8aa2735f56f8e317e1ae7cb954573b338334dc51cad0123937d6ed41389783f8a47ec784240e4380cc555e4044259150312e5d9a3f80f1d129fb20f2285a6eca31c37294a94d922eaf6d0d7fb212e2da8c0247834b58bb9f06632ccc69e1efcbfdb0c8a01d5cc5e488523ad27d086c3eb039a9d0348ffd1705d1bb396c7df8a5ae94b316d820b43678bdb41157762e7b101da88cb51d6301fececeb42530660ba61c5370d86ba293b1f6da4d27d2b77c0403cdf777b1eb52b3888bb3efcd3eb7538b47d9d02416e6984ecaa9a15b3056e43dea0d342c00344e99762e59d02af22d5849e79f1adc31b77aecbb481049458124deed3268506c69bcace4285eb94af7b397c10960f1e3b5854103d013849788316f96d21e758abf19432e82bce8a6aeafce049a1e86a16f5858ed698182395f1e15ed1686013c1efd10cb357a3eea499b49395b27585cb3227e66c348edeaa9308c9d52d06dd584ab4913c6c823b0e1eecac75bb78d6a6c8c1616adfa80b2cf1fcfd46d803f7f6df40f6de5d424521ec48451dfda9e19192066c33104915c55018814c6eced74f1dcf15389b9faa911808f71591d3a483dc09a0ed9e24b5e952c682bf0267c8afd26952eecc6c98db26cd65300efe6e37c10c7d94100a12641027d02f60896b5a61618742144e81a8afc90714959e5e3bc0d5d8a2ba40c87510bc743c760ac6002eebb003908b7982cc9d118fa44db4cb08d11ea46a6edb1bd1e9ca129f6a653a7ff63790cdaf7536b95acdf19b42e416816debef4d04c007418fc96547db88d56b8a5e40e792121c5b47502dc34903c63468d726df39fe4fb1dcb6a7e37beb060963ff69ec240c9dbacbf88d2179940f941cc64926ad0c37622349581c8414f9f69c009613dbf362475871029f1b3b8225760cc5a952f3c8b14f9147716b971e2ef3fd119cb43f14a1b307a22636452a716a395021613d14c2b06eb88e9468e1d10c02ee634bc0eb607161ed9a5e8a67482899beae9ec2eb528dd6653719f396eac3f1580f853b67265abc9afe7a8a427d804b81d6e63167b172299ac8e60c69153c0ea7f07ac498dbc9acf4c21a454f3c12878cf919ce9860c52ffa1381c1f295d3b6b84d9a2903b9587257b6a6449746c9005cc27ef706433ad005ec7e3e0d6a2c4947b265d6fc48cbf73809ee8afa72c9d2b20d8108f9d1dcb6a7e37beb060963ff69ec240c9dbacbf88d2179940f941cc64926ad0c37622349581c8414f9f69c009613dbf362475871029f1b3b8225760cc5a952f3c8b14f9147716b971e2ef3fd119cb43f14a1b307a22636452a716a395021613d14c2b06eb88e9468e1d10c02ee634bc0eb607161ed9a5e8a67482899beae9ec2eb528dd6653719f396eac3f1580f853b67265abc9afe7a8a427d804b81d6e63167b172299ac8e60c69153c0ea7f07ac498dbc9acf4c21a454f3c12878cf919ce9860c52ffa1381c1f295d3b6b84d9a2903b9587257b6a6449746c9005cc27ef706433ad005ec7e3e0d6a2c4947b265d6fc48cbf73809ee8afa72c9d2b20d8108f9d28a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e870b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa126c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b0656a0cf4c32a485099d4b8e3389c827090d82d1172db3667feac40730816f133ecad465c6944b325598776b427052e58c94c13e930403f45b0a408f56709bd724287a8653234caea67c56793cdbaaa0456cdf7b43e6c05ddaa6c0253a47d6d505cf217419e4f71e44fd795ce3ce932c1a1bc93cb728baa1d0df0aa69bab50142df7a41daa41939712174d67499152bc832f079a0136eead02e44982e442929e040a5288c7f4cfcfd8259e43e9af00a99f1296f2d19b0da9d22eea413fc016fb3929f857ce3021a1ec2c9bc89b76c6e5277ec01edd2f637abfe35990685ae18e1b00dc3610a9bbfbfcadcd305379400e30def6fd40025399a6ac1292daa557402e4c4d322add4454a75e3e1e6faf60dac34f7356ab65d2ef20e7ba2e956941db0e1a7ede4b179257211a6cada714a7beaad368ffd2818c744f6356144d0c89eb3929f857ce3021a1ec2c9bc89b76c6e5277ec01edd2f637abfe35990685ae18e1b00dc3610a9bbfbfcadcd305379400e30def6fd40025399a6ac1292daa5574021100de44a90c742e7239c06a9ea36ec9ec3477fa9a1765acc534ee4953fa74e050f3816577d1dfdfc2f1335a8d2086b31c2b7113b5c78176d8e7206458c2e9d33c712de6dace1a342255ed1feadcc51b04401ff72de0eeda55ba84253c2ac583779a8514727f35500631363ca088e12b5e440a11c5196df6f7b1d3f0dfb347d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001140c5a7692c13bf29fccd79fc7b59c241d9b36c2138c8451721e79d56ee3dff93ab3c6a304539caf8174716d91fd0748ecd1c02867a2a9bc51c1ce339c402e0f1501629162ca64dee0f707aaa90c7d5630aad867eb70aebec0df2a9e8ddafcd338b22df9786325aad82e7706fae9df40ea43092bca22f78ee771bf95ac3be33c25f521f30eb5199257632af18058066eba6082f631bd65426a04f3b41cdbae831c38e8dc2e0bf6d8d7009571c756ebc05ab11e0c052f39e2471296d791ba9b791b1a3483515a690a9322491cedc5b8ca58505d85ac2eb2808d23919586d52c0a3675729934e077328c1c9224e5b8f99e0784d8360e1c7be45f78bdff68a0fd8a3ef233635e87dcac82ba936d53be6b9c25a0354ab9efbf996a9e31cf6796a4df1e99339dec81a5cf32006c696165f2f4fdffed4e31e608892dc7eec12b057c7524d8c73f137cf21e26e922f5445367962e2e7d9edf3a9d99dfc99732844f06b930403ff170f8453b93209f7212e30e64bdecf1f13a90827f8af5271a803f9a5417b2883cf87686ba01aa44b95631e5814ab0a6ab9ffcbdc888d1f88d166178440a7606c3266196b06f6bcd6ca8d7426ccd0da5cadf02eb5cbb8b2f63c7bb5ad811e4315bf57734cd08d875e9d166dadb8b98f5c714d29f1d7b659d4171d25e041b0d11e7260ac976f1eab0194dbd2862933e2d75d331545584286b4d5d606f010963d8cba260134c0c873ed541ad2f9ba37daf7c67838a3baee19647679d34600c48b3cb341b205699727da85b9a6129e38b746802999a390a83c4ee15498d2a251e4c427a5152a0114236c44f600f8a7c07a91f2e1fcdeee3d1606a8dabb0c80f49ac0c3bd3a2429093997492dcd565dc5ec93132dd4a5acb7d6670678e397b24e63f99330d2cb016186b40067d8d254a2b6d4996634022db437e13c224f55220f21650aa5baa46a61de66652adb1f204b520344cd991715763b3cae77d2bb81e94e1525b3b070973a066bbca258fab3e293b13ac0480c935ec5f9cfec9c2050e84f1e6dfc9fe5fcb4b97e73380a9defda1328e41b72cae7b232ca9c876eb11126580bb604c6c0fb0313e8183042fbe1d97413705c6d8214de25979fbbcf04f3f1f873ce2e8d95b7ad6769d85030c70a8892dbf02c040e85cd3583ffa3e48872aeb5ca5afb2895dd83e3c55333e671d9c27b9110d3797041767ebc21dfebe481cdb853465888cea5cac08957ddb880c7ce23ba26ff78a325ed0138d492b5b553b2aaab104f6a221fba503b915c766c85a59a8cdbc20fb5e6a38390ba511bdea0c1ae22b9ef6aea0b81855ee84aefcdf54724253e1949c5da3590718fb92601913c3a6cb190ffa51dadc8b2c77bbd9df2257045332aa63ffc4d517764e34a08f1da5d98c792e3bb6f562b751fe604f1226528e9a150fc23e03867dcaf7e88dac26bb9fd357878b46601a75f300b9b22088a3993b35d8446b99bdc2fc5439ff873e0aaa508874894f35d98e97daf4c4ff27bb59efc2bdf0c992d417ee02becd6007887ea83f631f68cc1ffc026db83015a119266db552e323667f7d84f631f28927276fc450288daccb3c57c6b6291e9682470bc3bddd8907da1b617ce13928452ef0466440c54d709d37091e8a0e5b618d8ed232433aaa2f235ba755c5a3433c1a5a3f384d050ec2d0ec514e8ec8d612550130f14d79116b27204f374a77be090de4a7370b5abe0b2678f3b109a6b29f888ee2469b55c80749a23fb2bb24b81f1a24d5eec5523baa3d4ac4aab7f267d029c4e92016191eecc8bf936fcc0574912d82cede978c24bd540f0cb28d0bccfde338849465b6fc0d3b8ee6f21821eee82547d26e911eccc7af03e9470955b4e5a9708959ac27f0fe1f9d003cab56f7df25c229a6d54b464d8e9a3f18ba29cfe000b98eff019d2675c348a01d5376763d356bcd72f389fa174f007bf72f04331d264019762cc6c52d3f6db1f76c29bef932f2c78c5af6f059b467f597f5ac87cf74e95c0d7926402a3d88874168940f26375ff5a13695e9721d8353d7e34a67bbdd3eac99ef5311a7a8fe08ed57130ca527b5d62c5d8a56312e6528e621f40fbb5470a93fc5a1f574c44ed0035e02a21837c835ff75991b61091898106cb0bbc56f8cd4fcd5c1b35305ab78773bd55dd02b872fe0d0a5ea9243aad32f68db51897ed60756f633d76b612f87ede72d661c3d67eba4b7ca818a4b1e96943c4715814ecd7e0aab01cd8b72c0ad116ba1d2f430b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b913383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d0c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d4019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d12407dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea51382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b030b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b913383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d0c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d4019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d12407dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea51382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b0274d3dc3a846fc8924f1055fbf4f5ad5848b4b6ec07c76e6079ee428f532d63220e6a6375b0b5eaeeb6fc87a8cbfa390fbf15474932bbe08a8d6ecbb879cb51f0ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b22e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d570355318fbeb9546267d1f91a3b3aeb3c6b8d2038fde5d8e6452f982d32f801e116745b5d9e2068629c6da06d336b8c7be2eb1b5e5cbb7bf0f3471505361db6e23ee76432f734ab6194b820d904eabace6031ffb363742763636375f186c8d2f320aa44ae8036c90e4adb768a40f346f55d29f398859575e48ebb1e27132ea3b91bc54654878e6a646bc1f8fd173f8bc473d96b6016316261019188f962c1f5c3188163288502819c09079b78ed45bf89f2306d58620b24af0eb015eadf5bd204325070870b4bde3308fad4bfc1eff65078b1bbafb37dd85cc858b01bdd9029d1020ac843606ae0225615f79f691b254b7ed95e72082b9863ebe401d3929cfc2b08b450a13aed8c83b4cf8ec0e066f511cccc6dd97fb7acd520417cdd13b1b4953c3775e7e21a5079429e7383592d2e39601451340e2f7ce5de4f4d4581ac1d8d325070870b4bde3308fad4bfc1eff65078b1bbafb37dd85cc858b01bdd9029d1020ac843606ae0225615f79f691b254b7ed95e72082b9863ebe401d3929cfc2b0fd5252d6c0946fc90fd8f343f19871fff59652da3eda531b3edea469962bd6a127482c9b4815bb6bb68e678dd88650ad1f40e2fbec26dd5f6086dec509c6bf207028617c9b38b5df3e64ff4355aa739424fc96d40abf61ce88abe474c4d0d183510aeccb3b0d41a5cbfbf4055edbca9dd75e5877ca571c1f9e2471e06c7d507000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011ab29e3d3d1d83eb85a0adee37327561774f53c5b80b2c4dd4617166060c8c051df6100841e4c45981deb94ba04cc531cd1ddd3e3fd0d81e36bddb4ce0f13bf320d177e59c10ca9a48209c1416cc95b9c4f21b7d6c5fb1d12193a20527e9c1e609b838f53772217db70211af5967df18bc04984d4cb65f43b231c88553f74a5d38e5205119abde37052eced7dcbc5920e50c544ecbb81c7b67270a27566b5e28296800697b1b80e4d2805f42a976c46d33afaaac761fb40c0fd4087481db535a35922b63fa5dbf1f1e16fb01a63d4c777bb7c6a4228d8f71d94064aa3e2b843e20aa3829a5e87fd60708b951f74d6d694d70faeeeeacc846641419cbeacb759a3ae937819d5fc526e9ada277bf13363fe1606f9ceddbd7c246740d8570444a4e24f5836bc6096938c560454278d70cb4400980e883aaec29f755103f984cfb231c8d8dd319d52b49bb42a071dcd4a70f8b37282798d3d504ff8a6c0558078f1313f2a474cc64d0842670065d60249e348f9daca7794090883a6f95fb904dfc6b0207d3a038713e6894ac189ce861f5580feeae085dea84cc3c4b22af8d58fb910c7459144ae1fa20828f9f7a46a7a1be1e816ae90169f5d40b73c0b565d128b62332555e2cf2bb06cdc786a4672c69a1ad62ce9d3a10f962b068e8324f6f0b6e3d9814f773fea6e4766a7efcbcd81f8aee9ce2f14ec66288c3125786fe3f78860c7e3a0a9ba31f819f44ca2ec4f480b41e76001e05edfa78379152e092c003150544269702f1da11e57e852f79ab0f5a5b1f4f0a87662d971e13a08ab2986eba0c7e044c60980496d5c3b7280993cbc1ffe11fd974e4125f942b96f3d53b355d243238aed1ddc8f3ae757ebef38740f2e96b9c85102d152a3dccfa9006a960b40ce6363b55660a713891a3872ab0e439a05d8d07adcf35cb1e85f8070e15589407661407b4dfa865343994adb88831cfc0f8bcbae8af15158291c760be3b23d62cc82b6feb068fd212c4e5dcdf1c47555942d55c4af61b1dabd8237eca0a40b42bb677810688364c9a7fd3f4e7a47b1979d037ef52413d891d73d0413dc1fc9c2175a12bc91f3e8c15cacdb62e63783f053703626bb5d6ef6b4af021ccd27e4c03dfcf1dfe3e965e2ca0818423f90fcf4af4e5690dccaa9c48c9ad0b8ebf017c015db0d6e0141dfe706ee6cf24cbcbdae8bcbe6bc2c39dd0a02c4417713360c3284c28485b94f5555da407d50c2bca6ddf0388076055242ca949471dfe8999c40d4ea350fafcc19a024a7e6662109d34eac2ebef9ce8cdeb07383d3a990cf1f039c44bb43b67276d31bb6035b6db1af88b43bedc81d6c627a1b46fa4a531209a0497a8b88cf6eb7ae7ac51ebf13659b0d30144ac429c6449de9cf724593a3af21ddcb3a8767561d8bda4de7d7251e5f141c1409002ba5342f1379cd54001eed31f27e9fc4e11b57ecf337d6e7fd3b682604537bca8efd8f790b8c80e384cd8cc337f6c304e8bc704baf8a0c2a9f918b831f1afc88502745bd463c64c16637a32307330ae6c85228b7a36c0dc08bd288d98e89f9ba60450cb305217b63c42f85025eafc0b739576db7f8e55e9b0fb73edf732eaafd56af332957e02deb182a3fe28767c1115b977786e54490ff5f503322dda4f660723315801d4f710b7728c5701ce421f04623148c2982659165bcd02cea41180852187d785194ad0db712bb80efa89237dee0eb2e192baa1a7eeb902b5fb9896886a8d60a8e610534c4dd5650548317d607974fed87161aac3b581e1e8e3796dbf530a30909b7d11f44e59b7221442a3c2cd38f82e0293b632e40a3deec9a8029032502f836c42798ff529200eaccf882f8577b60c2fc89c93c24502b04feb17fe302ada06e07fa460df67b32244f4cdfc67e0bd7bd354be4b14857883983f5782cc41be815e4ac445a3b0e834515fbde3af28e7075ae7c722afea6475dd822009a2ee79a75874e229537fbd3a260fe7e443a27d8c96f5b37e9249ea6faa0b343453c99585ec6ed8cfb008b6320548874a777e66ce5060784af49cc49db4eba87a7e6e2c679da063523e36cd05055dbba90fdc786fe383af7f7f6f2581aeae4992c33bd28bf0979865d445640d26593904a3646f44d6b937fc7c6f5e03b4abdbc8df1fd44a535184e1f09f0e041092a13c1176341252430183fb11ffe66abd93575a942ad0327e4c32dfb606105a4ed9ca063972aea7cf76e73a2199d2514481faf92aa9608285113023d5343e8a50a7af3b74aced7eeba731946e35ef6fc91677fbbdcd3649ce4ae29070ec0175af5850c48b5312811458ce6b91ca32d6cfe591513b4e62e362a21d6f8f1538b393466c294760a37a9a43f7e6270d2414898032b6d093aabc43c26cd23498074c6cb993d6b89f5c8565bc0819d8f2fe320f7bd6962887ee70ed2a932dcb691b81e0601cce64e331650353d77ec3412b4c4b90d85e2e73f0f88f18201b06f4247e1f9fe3319b1cce9afcac28813cbef6fa4d6b30eecaa7a834a1d4dfe4f90d098961e09007f86ff6f910a33579d04593f047dc273cf60c8280699ea08722c236769e1f6ff807900906ef5cca862fba8e56511fe210030f16acc74e5f78dd3f3e8a50a7af3b74aced7eeba731946e35ef6fc91677fbbdcd3649ce4ae29070ec0175af5850c48b5312811458ce6b91ca32d6cfe591513b4e62e362a21d6f8f1538b393466c294760a37a9a43f7e6270d2414898032b6d093aabc43c26cd23498074c6cb993d6b89f5c8565bc0819d8f2fe320f7bd6962887ee70ed2a932dcb691b81e0601cce64e331650353d77ec3412b4c4b90d85e2e73f0f88f18201b06f4247e1f9fe3319b1cce9afcac28813cbef6fa4d6b30eecaa7a834a1d4dfe4f90d098961e09007f86ff6f910a33579d04593f047dc273cf60c8280699ea08722c236769e1f6ff807900906ef5cca862fba8e56511fe210030f16acc74e5f78dd3f2a541dc9aede8050ad6648812a33cfccec8163996bbfab69265fbcf2ef361c4e077596ab5d4f14c7435038a9742be3e6b737f77900011bd2975eecabf38cafdd305d9e4e7bb0cfb3b7ab6f2a16664d9d00ffe6e15a8f452fe648d4b20ee2b0793ccafc6418112053d1c539dc198ca765b3a8d0cc38d47492143067a7a046f720082c04067244a0b5097d8b2535880d4cabeea64b093c8e2fbe2f9efa66a6c0b331badafdbd1585cbb98145ff82a67b2f4b94bd1185102716f6439295fc619aea04876f1607ec1f21a67e209f6284fe4c7ccd257f0cb85ebbb023cd3dfa9833341c6ee9a4ea8a1de768f02ab03dcb07adc00e8df3875dda40e7b43f757aa22b9d040e9a8bcd91fc37df3499f205924265fc241caf3d6bbfeefcecac04c976ac69267ceff7a04b06a8d83d580e8df1512faded984c128ca45819e749ca9567c1af25abe23651217faf5299b77ed5cc30333e56dba19fe08bf95918c03550c9e3b4088a6954a2b0eb38bcafc7568bd41c195159aec6025222744eec5f8f4c735024254e43e7d570affb9aee4854bf65e296570be77d4c4b019e25b1d03501e7333c3bbf6cf08a9fcae4eaea8d7a724774b3d9ac69b2d9c461d286cb0d866c2c590625abe23651217faf5299b77ed5cc30333e56dba19fe08bf95918c03550c9e3b4088a6954a2b0eb38bcafc7568bd41c195159aec6025222744eec5f8f4c735024270c074a19e0d608eef484c90c5a438d6a5dcac528ed52d17fbd08e48f2b9b44310fd23d32afa05224d6ff3cbc157be23a55630fd82183a3b2eeb340680c7a670ec31754be27918b72935054df458667c3b4568ff57c4ffaa9a1c031b2ac570a033fa136bdc30b50643704d5a158c18393f508a98745498a0b22cba9a7941a3c0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000135c88351452e25d6ece38c940f0f91b21bf719f781b6af2b9efaefe0923050742b361203b6c88ed965a1e9ca25a491a063a4ffa7d70a2b25ab5fbb6bfa6382f21b9a93c702f355b18dacace4fb882661d433beea9a3c99d117c977f370f348c02e412c8e5d5d346182e552eba7d750b5699becff24ac9987b7e2ea9c0c5270d40e031608ce4dc3f38320d96236577781cafa47daa0c6594749294a14d8132cd22412b8b9b3ce468b13e348fffc7ff5406c282e71d32f93a53c34b897274bf1dc13180cab478d94470db55e812d1b9285233898d1dd7f1f3de25190a5ff97798701f0943014fa296f1974bb55f0c5c09f8a5dbfe3d071bb5d7e505285bc440107024f677d7a3c8217988accf35e0887ffb85b1be6bdb1600db08f6b6a99ea148604ee5a4273bf7c3c53c0fee996792737c7cbbc07137549ce8cc56e8b3da06ae93f6c6769e946f256b71b923578c930734900559dfab96bab969d67acdef09d32395f6cea4489b9bb9ae52bf70e98fb86a57f507276182971a5c0956359360ce623bced039d4955259e068a8e8e9bf608d7722533e3776b648f35af33f25b81a43beb07f902b820ede4c94a5312909394b8018f11f8b8591f803fd775bddb83450a80d621f6d63ef0fb9f65fa2410f1e4c31d71f55098642f0578359ce336a37d3bb00afbd8a2e7469bee8f055e55d1338157e81ff8fe7fded3cc07386b74c20112352dd4f524609fb1093aef958ac3464070bd30e9acddd399b3407c01404d47174d21f3c812f3743f3ec0bf89b53820b16d0019f077802a2fb9dd37b588ebac212890683e663987c92d2cba3a7b4dcc06ff09f25c76895ade4d84fa27a5636815d82c213060c812cb31b5b589c5ce981d043bb1066f8dbca124e028f9094b321530252c0dd58f3ad480808b30e4fd3022f381b86e2eb1caa4b97a9bc808392c162b162067444abdf82a0d078473c364f2611b8b5b484a115b24fffb4ca34639347f2bb09a5b9eb682aecd3c79891d968113c875ab2b035088e166122647ae7e335761944434dc407695b3bff43710be6a689b3d9b4336bc825cd83bc7548b9834eb4a46d679ab0149ac2303b3d3e3a1f1852fa02f2f74800bdbcd2834d376fc0fa0251177315fbe203708a4eddd4fb8dc9bf733cb9471ec4753bdeac0ebfea20ac86ff871d0cdf3a6e8e1534f277212f50fcbe6726f3f8b55c5f214765f1bdc0ef5a4cacefa93a294067ddb41bbed2a55225ae659f41b02f3a05bffd5b8a37802a87660e6f845472a21bf927ce9eb9c1e730659222f2389515b26a670c68c72188b9b30ec0a5e0eaa1714ae355312e9455b03f20e52b48518779e39131f987b052735e8e28ddc32a775463484e080b750e3aacf3d65fc7edcc25c610fd1ad9d0a25a244140848624ba58233c0d93231479441fdcac6d066570f0d015cad1075054fb2bec102478858fbc73e88836f5440a37464023cfbe2d6bb7486c89f45cb1cc1b13ed6519f8541e85b5effbccaa539e4f39d3d996d221861abb0709bcade3cf02dc67faa6ae089ad6cb06ca53cbafaece3242c322bc801743adcdc47fb4c10adc635486d136ebb6b9870237c8977fa4834155c6055c4bf95f94aa3261d023a8d3737c1a13117a1a4776cd03cd8ea97f9c068f631225ecc9374913b05df6d00c96e23b98be91c6a93a2b3907892dc136b865e57988fe33977af4b747dc85b17645bfa5bf93b4a04229d193d29897c5ab16f94c309a8e0e2a3e9f4313a229e1e5482251fc3f6a5d68a49c57bd1854eaff585d8df47f1d9121a55085fb0ab0a0aa1b0167c35a2215a63acb83110860ae0b03f5c81e9926eab6af89c7df6bb9b1456b2ab6a8abaad6d0fe410b2d79e8d26ad17963a7f27e878ce6510978ecb8a395eba04441ab26fb2decf60aba67ed26fb0b927a3faeb4e138fc8063d9add15393bbf83f8d2bdc54a7b2ee3aebc0f5f2d52348bfeb0470e0a5589c0987b135809e442b9b2e2f4248bb65426aa4e25c34abf20bd76ebc7557ed6c6c5a537fdab3e253e778cb9ff4e08f26deeda9837e72026ce9222c081786d5f5218ba5dd4f81ea140c608cf9d5640a274b060d5529c904c66814288691462f27d672cd81b2b08ae113f9f85af01b66f4b88bb2c6a18a80483738ff6541369ad6f52e640d27a203eda3145a4a6f6f36ea0dd02e1bdd34f77d24a2f8a7a2cff9eb072ebf5af2f3be95357ade555934d843bd702df78e792f8836ab23c62520101d411e2b8ba71392fe0c521b0d3013cae90a1574708afd01f83082845c7177f28a9c547495b2606d01f3ade4f2cfec3516f5ea8b8f750522715f3e10732041a048727b8b6a4db1def63d9a8741f062f68d326b4632b6e87832b38a428ff0717168d26646ec7ba22109c26578be0f9d0972cd94b9cd4919ac36dc36523fa148216a3c69b91384715acf3404a449b1eed0c1fc185efd9286102a623223308ec41165fe5f629e6a02a530cbfb5bb64e112f3e03e7a1026d7c143f2d8e719f02f5816d10709d619612c60c0417357079aa13c9ec79daf3dc9c2c6a5b3a1b23381ac42ae90ced1811f139f3fbe8ca8f8655ec361386250c2365f7ff348679ac599ecea825c312e7ee2392fe0c521b0d3013cae90a1574708afd01f83082845c7177f28a9c547495b2606d01f3ade4f2cfec3516f5ea8b8f750522715f3e10732041a048727b8b6a4db1def63d9a8741f062f68d326b4632b6e87832b38a428ff0717168d26646ec7ba22109c26578be0f9d0972cd94b9cd4919ac36dc36523fa148216a3c69b91384715acf3404a449b1eed0c1fc185efd9286102a623223308ec41165fe5f629e6a02a530cbfb5bb64e112f3e03e7a1026d7c143f2d8e719f02f5816d10709d619612c60c0417357079aa13c9ec79daf3dc9c2c6a5b3a1b23381ac42ae90ced1811f139f3fbe8ca8f8655ec361386250c2365f7ff348679ac599ecea825c312e7ee231db538e220d9050deb695a20721092fd516be72dcbf54583fa16ac019dccee5387802b35ef46d465536c7a5125bfe9b85eeefae2986b2a5c1676fce05f4e00025d748e65cffce8e1cf09924474a2e4fe7a8905061b1795b5a6792092ffcf4f90cf4744978dfa55935648e4fcab96ebd33e91eef20a37884bc15fd66c82c3f0324a70a2f54232261e930d8e266dac5ed0364fae58746633ea1321cffa6afd2e01f5d7cb6ff8ff6bfae7b1d8a38d3c4e4bf7b1b9bbe389d3a746532311f7fa2173c53e30c8f90f0365d804528cfd3d5eead638cee8784c9366a3d01a881ecc2540576df83b77261476d44c4a74cf9bbfb393e946479ff1e36c8bd9bbd40e6bdd2059ed546283abacab0be9d75c8bc266a495db0e592be93d634c2ca71415f0b7c283ced1e861f661296b0c445c9f4b7695b12e37504bdf7568c4fb1feb6910f5c2b2291c5d8af8f90e40fe2747b6503339cf6df65d26ddd0eea83b17cc572964b2e0513c28b2d48818c8ebb05d0d4649e33c5f8f1c6987aaef1cf6f7339e16bf3284d638b80f2a1210458d139b194c88087cde334d429248398516510b6263c253a938903282bed607564aa0b22ea92a78ab5235ac86fc70cb4dcf4a531dee1002b2291c5d8af8f90e40fe2747b6503339cf6df65d26ddd0eea83b17cc572964b2e0513c28b2d48818c8ebb05d0d4649e33c5f8f1c6987aaef1cf6f7339e16bf33ee534c74a7da73f32e714c882265fb514f5ba5260d5d2075c7f3679ff101f29002ea89c121a830a800326dcf8093aa2234edcd8776972ad89b03dccb005efab115b03fb0d13632efd1ec53a5bc161bbd0fbccde6fefdf08961a3b1cf1059fc731bd604ea337e03c4d776cd7be1cc36d07e247d1a4816d09cc7f576d843fe403000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010c5dd275295a380cbf61a6cb19daea54a210848aeab0b5a88e2f2e2fd023e6b626c1e5aeea2363f56863e2c671a8d8ab9d6ca55346562056218992f7b7e50c6b3b4d4e9685b1f5b28867379aa7d509579a87c788e4ac37959fa3c80bb70774700b3d08f6bb0ab4c986247ee6818a72bf22df05809585958a9c2720936e93fcb93790c2816c1d27d4cfba63dfb3ddfd005d0727df8112b92b7953580e4bea0dea2909f7707e387dca2c453c167d9ab5e98757de40f68661f63d98002e6763b4f738fffb46b08bfea9ff3f1809764137cbb28b10a17f63ce3ef972ba3f1cc1179032892e358dead99bdedcd78b7c5cb03d28636f4f2237f22811249281e7b9e2122cd568e02726cf8bd158e2b5b56cf510be3d04de916b5db18ff09347a9dc9dcb23e4e6fb273254cdde13e680429d0c0f9c1bc137939b8ecde29a5eda1cf0f371326abf66b1befe3e0b48419e59d32c9d44224be4ada3e1327b52c0e6f49a929b29e6410c9b63bd8dc3fe0109dba8191f78f970222b910eb6d30ec5492fb68cf2317aa7280bb52f1b3c3391f26512c613afed003ba91194bbc1402cc16e0ecb7e147d4f095bd53f082c93a11bf71355d6f1943e6f8ae5550ec0e4303938515a3835238f4ce26749ccc160aeecc0d9708be3b7f97c39cfb877542f7da5c7998cb62acf1a23ec3c887047190ff520ef1bff63234f12b8f82f32a0f6c19dd37c21a904e9c14a161ce1be3cb5e53954d2c1c859037073e26cd0038b7f8eee5a10da133970bf4f99af78a122f80dab28c18d349837d111414a1b364ffdaaa4a86a2a19032c242e6df093962c7163067acd24e9f93fc999840bcc336972007956b4b982343ec188dff9848fa549be8a13eb4c39badef74630ac7f8d0e256cd8fe9151e31451ffb76b824812a937b7d1bec4facd6d5ea0666215220870044dac6f435c423e6e1805f99ebde39fa4f9db3e458482705749dfae66cc9584b019261ddf99b43a26b20a58ca051f7b0467adfe4ed7d88e199699d2d1f73370bca5f65fa91c15198655a913d62b3fa1611221975b81f3ff62f846cab696632acd9dea989bcc76248121a20ea93bca7ef92374f59e0f8e52473dca6b224aa8d05ff8efe63fb8f230ff81087a76fe685c93b14cd8a39c53b69846d83523363a3e4c8d220fe6976f2cb50a179aab31de6796dec08d8e4e55587ed6c5d9d7a73b00dc26e689d852703c5e8db029f8f1623d3e8db3edb19d13075da29b75e92549869f3e560033d8f71ee5c7d59a8e467b6fa5a339df0032df893d81ed3433c6d563ccd5cd7c20f4d73c48dfdc51cee2e325a21ffaf79c2324ec53c24b7b4671a8ddb35df23338f3bd012cb1c092d14141e8c8169b4207b3f849bd3a4e33be0b3097c8d0493596f2f516486e6569503e8803fa9227f768411e18dbcfba0e67a7a1c7614136bad15888330d920bdc8a9b9b7c20558b5e0e42af0298a1214752cc6246a4ed5c9c7449772df1c1f37efc98590bf15e7c418cfd2c7420c08817fc074896a83d701c9ada92032453e3d6ce223ef52e6f1212e9fe865417949f6fd6f87ee1e038df8ab1b067242159d968bf357ac1253b6b6f1e7d29744dfb8e7563e93df31ecb2fc2c0a8760feb1a6d19555152e140e851c8a6b1460ac56235023324fc101094ee519cde9005326938cdfa6eb8a128db967edb6c74da06103fe81d9eb42b9539b7899cdece01f2b935cd5bb1a5674441c4e62112b23b0bc0150cf3d4fda4c084d5525dd5ca299737a1aafda2c148b28a9e1b04de1cd46bb9a39d1089a68fe345596b19a3e8024bdad25fb9cb73c2c3f092e8c2ba97d011697b6b7e2f45e4639e3671f2d7ee3529fa5b02faa16c1ca19f760e9b87ab601ab49095219b86c20d78cdd02e6d7632100b630531193edcddf33be74e2aff631e3af1ff2f420dc0338a49e7931ea430dc20e4e7c2e809a81698efc10a87e2a62b37509a6f1522078896d474c9c91e3c78421673d4059987cf2cbec042366f819834e396d7ad5b7f3b0cf5ceac60a41f3af07aad1d7fce56bbd67315d874ceedb830e563c5d986096c0e8ad3c255d82c11ce1328a9e35ec497515bef939bb61b1d058763455206b04479e7a10a9eb0143d441e9039dd2140934ae548dcedb21baf45445dab534fcfca9652c596274b3ed71003620192f1e2754ba04563a2b236cdda01411cacb6ee9acbdff9e8c2803fc626a5ec37f54ec385346ec8821cea4579d0db2ca58d6ca8e1ddee5ab40c1909c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b09c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b0461dda8d89f9244340ca170b871686ead72c0f6aeea72a59dcc85f5bf2f6861125c534548436e43bf17fe0c04c54749cf0b77aa2d2eed5e1e60a2d2e8abc05121658174cef8b7ca01d1325c91a7d18b8dc8db38e6a8a2490f75e8322349c5891292d7ad405fa37806d82528bc3fe8435a85e151b1fdf1f84a5868f532008b701712904481ea91840a767ee6fb814cc3d2571a51c249d288fff9855569f29e602dc0305b7814d160885c828f8813c73f8b14b706ab63d2e9b2a9ed101d552303318a2782ee9f07fe7791ee9af1046298eda0d2bd364b019713221215c83e29d2131511cf8891eeeb9e35101f1116fcd9ee74bb944ca0b7473a6704d45e2ce8740c5237c904e44f8c390ea5afe6d43465bfaba69ea892100bb3705ddce24ee8440ccbb6b02792ad4dce07ba2548d480a5e46e5c1bf4881bce63fc0d59ced2a6aa2bb184a615bdb14baf6be323fde7045de6d2b3dfe994d2135fbcd31b12dbe8b12110f9e4034c391bd12b4f831b670ab88ed7298059072989aa40eee8a6918de41a38a0e25867b5f1ca222c32b5e6c605e70afccc73b9e42cebeac2c51d86d2181b10d50d775cee443a0fdccb3efad072f8b540002a2019c530742524e553b4412bb184a615bdb14baf6be323fde7045de6d2b3dfe994d2135fbcd31b12dbe8b12110f9e4034c391bd12b4f831b670ab88ed7298059072989aa40eee8a6918de40a9ccbc9ecc16a1f555fca2117935cc0d720603be643101832dfd64bc5225cf62f5ad83b4caa5a9c2aacdd733971989b085fc5498fd9c89362a287375520910e3e9c297edb5164abd2511940eb41e071ae05ccdb5257c7c19268b17dca62aee3002e3b265819c2f4408e8fc9e95828ed6c9f91068825bd411c8fed7dd72800830000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000138af5d8a5c9c8237c4bf92cbc14c14327c69870db8769623a1165e7879cdffb7022bb6a96467f4a082f2ec08a72d18e4524f10920db8819ee074dd8cbb955f2637185f96f3942596f1f5f5a0af86ae2fb9fc731ef6adc74829e006378e880c88126470a120588fb32517b5a92ef7e5320af2efcd3fd90fcccf053f528da95d292da24288bbc9ac99d1fa2c8e1b16b65a4fb2e812b89b645137e8670f9ea7d0f01c35176c396dbf9cf9a37b678a590fd67c56450f5cbe7235ac39da5d7b71c1ae34e6e6d9d0f0a2b9082cd73ca1b721ca2d39158f5421100f89a24ee3194e2fc229d2d43ef9d5c87e6836b0f68f679b59164aadd7186413c247e4d81ce78ec0b011bc1793d5f3038a47ad6f9a894acdfee6f1f70ead1f9d995d74c3ec818aa3bc03004180fce8ced30ce02fe114c71dd208576a213ec72faa729cb229eeb3ddb60769a1da7fb6115d82d044ee6699988fab6f68e9bc79e2a60f111f374be60ccf05d1e6e7beee05342dd3dd7bc6585706ae26ec7ab07b06036261d7da0094e9922446dc67671da8b7acbc07bfbd58f597e17f816d1805cfb646529df281695b5539d0420b0c27fdae916e09b8d7f4e60e126e2e3af0e6f18399906421a793b38d28d93646960b635bc30ac1362a1e66af0c8c8c7df134666277c865dcbf586c140a58011db163424184c8b2d37258aaa705ddb883453d26bdfef94c913bdd51310446926984360f138201638cffd70906ede8c938685624e9b67e9dbedff3fcc70cdbe4588825732b39449fab4f2fa301c0a6522a2dad742bf00bf5d3427f4bfd30cf2df8999021bbfca195585fc3eb4d026d70c322bdddb3f05ffcbc10581d360c132600463f15a48669b0f07292dfde295215aafe804edcf8cbf67aaa0e1c541ff480fb82c3f90052f99f9981b4b3288e991e26af38b4731bc7b644ca5e33653b4dfd2dee3364179fdf3c46975c0bc2ab4723651d14e69dcce85de1259f72930d7e38952b81cf9897fb9757658cb85e91fc43717edab8027a428ce171571b40230083e608b9bce9ba49f5021f43bc48fce80ded93c64646677c99f5b5fbc7860a23a25f05b2d5d61fc25b2de5be218d7ff02e6b45ae6e0eac3504030ff7a478042f24058c21681190095fe27319e2f84d22fc58db9c0f67c99d3508c8f3a1e60bebeaaf27108d87fcc57f800f756593df91e0a2868f3dda27ea9aac8d54c0a23e629317ceb4ca358edf224fd83797d189df38c6b2ff4c87efc3003a59ce75d2354237211767fa0edb47309527dbcd2edb26792aab1977da2ac085bbc965c0be34b613970b0fc5c0e25cc8b5c504e8958be8dd278457f43c515c8d656cdf9ecc01d2654b58f1db54e974e2fef0c3d2960d5f6665036bd8e67cc94a0385c54d2302515b528e951771a94b5d0461cb662a906d747faa8c8b69e1793cfc8793de270c2257ea5a8b33ae171b5e34dc19a64611c02f24963908221ca98292f3b6c38f24a012e500f7bab589fa492979fab0155c13abd55a8d4172b291970ba8c7ae0337cedeabbf05f8e23a1bf9cb80fe70c8ea8ed5c5bb454b0068b6b5eb9180a37412ade19c54dbdac6756bddeedbfba99e6ba646a067c731e12ef11c69f06a007634723ced1541a294df2eb55f96c5ece2a50debc0734261bd53ed0901ba5dd0860c01f103a703ad1a31f2014f12a05268a4ce2eccffc5474dfe7b1346c0982bbf02afe18085b3af2a17d503a87f7e6bd98bd77bfb285b38e8b1136c13cdef636902e4745a778adc6df8c8cdf1d5439e3555ae4da79df5926a0cd3ca1d62d5131b0091485d3f5206a43775cb776b8c4c30cacc5c7377248231357f34c9a00b9d133d0656d438fabe87b6a4313e0bafef9d4448b27819251e9f5a07a4e89268c4cc33bfa06564ad7bf61b756b0721ca7846b329f43f063d401bc5eac0847a4cba011ef4dd57077ecd63716f6527f0086e86052a716de78a94b12e92fe7ceb66712320e5ad617c7e377fcc27994123a5da4298a731391da2c06de846f9f3881716dd10d603f71183b8b7c9f61a0226098f920272a3629d68a35724577c8d80af63820941ec7bba58aa6589649f9b2f438ef5fad9f80e04634e71e3cd5a688e6d8acb1230fc5c222929afe214aff5bed29f0f57835ce696877d343d3b4efbb1c0d6f13245bbfd9be9db2ef9f5d6195c413d72183a2e218bb2fd265225c2a507340b6a25b19c7cd3e4850ab4b64bf1c4e75dd7c84b37a2057a301876daac96290bfb980bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb0bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb1663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac53a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f216211fa42639b21ecaf1ed4e983217b62a6709fcf49a5422b064a6309c8e2c557662260f666d094d1a6403be2dc098fb8f586eb4ad8166745ba69d9a8268d67ce95224688bf433df1ae089e293b28e241cab5fcd9cd6a27caada7343d9684dde77a20de236c8d5a6a0e502a2e3ffe172e2714300642e4b9f8986569c7538a0b81fa33ee9d35863311447a1f0d41296828ef14e845415c2e1024c8b39e27624bf3130d97ba61a8a2316eb79f39a161619e8bcb7a52eef1358e006dba79ce51baa33c10c697823a4c4bcf76cef00e67a7c4573c7f2b17dabd0fdfacb93a9679d4e8a211bd6a4c417911b42b7f4e8354b2a758409284328da8c61546bbaa13ac0ab63936bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b93c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db17a1dd82353c650035565c7bc00d9e983b457e8c8e8400815db42975e7191dd723725bf4adbbbe02d33ba140065e3e1cdc66f45df62ec7fad6156e418389100c36bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b93c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db16e08890aa848dc2cf6ebff393973a719895979a2e346a08da82cd7f791497511f9a4131e99449698ce8ce1eaa5edf794bef39d7950170d87650c3653eec76d50bba2f36522d59ab82ede2c4985d52a8c1af4cb45768d4d34000a3c4b4678bc92de546b81283d93d323202c8cc923733cabbcbd1b161d0388443c11d1282ebd00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000119855653a92b5b37bc84430dedfee92e5fa2a1627ef010cc358ffc7ca795f8ff10f91417ebc5fa0a82c0fc211c1ffd54bfedcb8a1eacc12001db3d3dfcf6410336fcd7247b582bd4755c005b613b80ca2f8820cddcb43e242679713b9c095089132f24b896d0c5362ec7896ef900a2aba3d25adf53f77108f34a222c4498678214299ad45294b6b41dddc527a1ae46013a4622388f6d3f7fbd08cb5da0b408e8111e3f7e1b77c40285c0545eb39b341c4a7f097d9bd852d41d534ba5324d57cc066debc195b53304b7c8f3785ea52c698fab1c33036da1aadb1d57d46a57fa0b1b55c2439894e8561eecc4e7337a6c428414211cb9e391ff0d1e54a1dc8492741382fb675176bbf903e404bdded09f4a79609c13f8dd0adc9bf398380d0643c00e803f15245b8ee7e24b7a7c9b475907f23b775017e95e80844dc3591d4578e518f961d2961eace213ddef4c9fff847634c6aed28ea2b36c47e11aa8476227f61e1a563dba60b85dba030b80ae9ae90dfed627a0c3282e96dcc4f6f5795a0aea303db71302220fdc36cb981571a7a39988356de91cbd34414c176a4cbfbd0b1606547e6644a457d54b633df37048afd98c0a7b53fe4373e2fe2654b7e11f75890f4a5c550e927e552d2bdfb5ad5b579ec4d13e605ba0e8be836ec282edc0bc8c20e9dfe79ff700f343168ec6a16ab1dfcbd35a3498546dbd3834c9a0c16f318722b5bf8602797964cfe223f7f39caed228cef4a518f6375ea58a12923cea8cd12d374dc211ef11c761695eab8bc0a9a0aab656a0122a5f78e1d299ba93419f1a0d1a3a23a33ac356a53f60b4d8d4635586b2e25f81d3fe22d36ae75e7cf442be2e35b50d9687b4c7d820a14f2e63abb3597f2ad46eeef9d20d6372707e81089a184020a4fb3d8a714a4f626e3ea5bb356c6ef4c6747cb8aedb354a201f92f6e62176aab83a16b5378cbd7456d7163bdaf3976424bdb7563de4371f703e5b6e3c05a54c3ca90caaf0882824ecae0496d22fa11c473eb0fa671156a4345449255933935e3d12203a4564b3f7bd3e5188139552f235daee4ea1fdf45a81915341650b88d5843256b8f16a31985616cb634b4a614bdb510b92f6e2c2d2268695cf210ce82eabb395d8486c049a6304082636414c908c415de6ca846f31620d3fe25903aa258c4f5cf8008e3f972b21e33b538622309766d0a7dd0cef851a07dd74421a435475fb6ab1e7162ed84df5693d343dec523b4069c64b9c89cd0df7fdfa610bd0cc0e4bf690b74cccc9f4da3b379896be27c571590c67e76971b5caed42ba2bac1db6f1236abc4a0927a957c66dee1dec17d2890ebbec9617ce5b2781620303d3d397302499301ec0ff0a2f2a6171831491c3c698372840da2d0655b68ccf3cadec78445ae88b4e7beec24095bbdae8981bebc7a1b4ea4fbefe3effe7f40f02c35d2cc186cb97ee70cbab620a055322aae8a6337a853544e15a280f4a93972f17598b444349e9adba8bb649ef188d910c0e3d0b79989f0f8604fcff06ffee3220e40b6e3b8bd5b56e9d049c833f29339266b485253e9871760ec1a5c9b1522a0cf327b065fdc58065610095ec4a60fd601c623a664c5cbc801b45440faaac201a60c7a9c8790d2e4b2ead49dbe70a7267da3683781a11f5f64e49c64a1b472c4e2bbf32761299b938962a6b3e204de7e452718bd691428f31b78e05d97c3a3d732743c82f5d48ed9a893e0be8edbac1b2687ef0af6b353bf98639ede4427f240f99396e8262647d1ba5ebb951165380ed43913e404c2172eece648b8f431a0e9d13f24d8f4cbadaa2dd0b29bc97e0bc6655051cd7ec595ba8de236553f1b63eea4050be3b1b13be6c78e3df2888e1650abab2218939e2b61702514684dca807e123367bec5811decdc8d749c29c23b23750bfd52fb11e10c429b7d98d419a06bd7b4e1dd77eb398b7f72bfd3e106249cb9737d11d912acff5585563a76e991bfbb9289dd155b42171679d712ab8ff9c4333bbd29764c3031ef81e91eaceb23655e9153f46b97ba2ad0a01a65b132807b0cff3264c4050421e3033d3e4307c10c685bb1338e347aa2c5765e3d9ec3d3b00716a4ae009b3c2120d02fc58526d3db2f9de3c0d7d640b53605e1cc84df1907e3ee914a236e7832439bad289fc523378d8b5238ab2438e658a8f45f4a8ec8f007da873d23e81eefea7862b977dbe26660162bd1cb7ec1dfad6a884665218c6c67233f897f80a722d9017bbf94e090087ae544ea93498c65afeaf9509667beb82df3516b3d44d414281f416174e503f7851abb156cb6739a501506af6998436c3b9c6f29924ce57eaaef8e9e8b1b102a667a5894e06fbdfc6f96de92f006b998e5c0971832582464c89c46e7487903d59985a76b1f9042039069216d0ff9488b83cf297c9d39952e0a728918b78710d40063bae8622eb5ee2df258deb0219ffc7cc2f378fbb8b5f7eb0d62846a5d032bff9c45179dd14a11d20da7214fde6227eccccd1bd3d9039ae8016d7b95a3102401f2a689eae98da6e5bbbc5970a81dca063f00c81b09d444c4341c9613d0f3dbfe0d5976151672591a4443a68f57e45a6350bfccb487e54e0edab369ec2f20087ae544ea93498c65afeaf9509667beb82df3516b3d44d414281f416174e503f7851abb156cb6739a501506af6998436c3b9c6f29924ce57eaaef8e9e8b1b102a667a5894e06fbdfc6f96de92f006b998e5c0971832582464c89c46e7487903d59985a76b1f9042039069216d0ff9488b83cf297c9d39952e0a728918b78710d40063bae8622eb5ee2df258deb0219ffc7cc2f378fbb8b5f7eb0d62846a5d032bff9c45179dd14a11d20da7214fde6227eccccd1bd3d9039ae8016d7b95a3102401f2a689eae98da6e5bbbc5970a81dca063f00c81b09d444c4341c9613d0f3dbfe0d5976151672591a4443a68f57e45a6350bfccb487e54e0edab369ec2f20da9914a1efea3e5e652d1bebf32fb2c4a8339fdf7e114fbb9026c3948d1e57b2c9c5447ae1258463f3aab447a9f9906b7afbc722f2eeaa83dc7e2d2b05d15551b32ecdb06154ad4de0590c2867c0b6df9c5abeae1a5be2bd2c68bbf2f7682962ac0ac6f9b58736d8b9902a0567227960edc30fc3065398d32cc71a56204011925c4068e93fc72390510b6dcf7548b9fe416a538e12783a0801a41c7e1d00a490dd0ae184d005c939bca7b69cee29254f77bca2721921649c08956f39f7f26f8216eacd9888cc8bca9478fcddd3ab67aa2d834db55bb347387aece5067ed2853344786f08804e466db8b8c9e644ddc6cfa2b36dcc7c728b7ab476189774ecfd535998f1a4af402d58a1d3bdbc15b9a0d1f4a581b877c3b1611c4e89b0eac481902b6d53a273e12c7cc35c2e499ce4b6ca3422eb981e069145cef3b4f05f262113f22214230e9aae720d7c4fcfac7a22be206e8e953d0e945cde4803b813906033ae491c4d89a8190a659d03db77bdb9e825b902128ae97c5a97d5c752b29882d172381dadaec11453ba79d7eba50f965ddfdb3132fc625f40d6438f487b797f128a2ff48b695344c352c521b2eee3f637e014489b305ce01c1c60d61ed9ee9953f22214230e9aae720d7c4fcfac7a22be206e8e953d0e945cde4803b813906033ae491c4d89a8190a659d03db77bdb9e825b902128ae97c5a97d5c752b29882d12231646f213859320989493a10bbf7640ba070b8ee78c8f375bb5dc8926614a1b166eb91a9a40a596ab9848fc583b711b8ccbb038cae98ea601b29dd5a12b9c0e968dca49b9a68c9787830d6141ed42c931b1f31b939e598cb93a6f6c3e56f91237abdca3f0ee78c097dc1602592b994c60f72ca58b7892f81a95d973d8672d000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011dc4797cd50639f39c3f34ef7810c3b7c7257214aad6854b2137a6fd72d5a90b175f23f6556b0cabc02ce6e1fccc7a3e498c9d027647c8133b68f35c7fb93bcd2d82432244777e2efaa9c4edb325942f6f36c5086409a6571a58c671d416d978314b14fd64651cfe79e100493969e59cd108a415d3b625cd3cace16a7d5109ca1ceb3e9fea25ca8c979df9acb0f3fed3b765bc5bc3cffd49617da66c30d1730327c6b1b8cdeb55bbc7ec5eda6e07f3b9f4e850b9607d7cb70a5eaa5098854fb73258845db47032802d93b668bcd91609d20ec10b48e80a664ad046e97f6f96ff34a9ee97affd509c6c064c8d24cedf9c1063ade15105bcb9db0542c6d0b65a7e0eeff6dd112e801da783c04575f8066954951299747c33890166c36d0290072a07cf65d7454f5170576bd2b1482f71fa9cd9a1ec558e680d3eae8f30fc1b084b2afefd14ba08b2449f6b810fa740fff9088e3c135ede11c583aa686bbb3662291c06878d9f6fd731d4329fead761ab1247ace036e7920c294a192eab3c069a07359a2794023f44668dbe7b560320e71b338e557d219c86f02307366a73a7c083377152da278e88cea3bf0c0809482975d672fdc1c345052a473bf0e6d806e3bb3e5b4fa6c296873fe8316cfe0f0b90930eb2f5333c66c845fa00c15ede4038700509246b6d31e6782e9648929744edc4e894e31bca7a3b4bdb744be64bb2d2a61a5ceac187d72d81acc0341bd96ec0acb31a51f0b9ac17855c1bc1277d5be4a93905c8c6b5f3a53e3a0e60e5a53fa5e5685b1804efdcda4f902f8b92fabfb3791f9f3121f079e75590882dbdd5613220f3a7adc0b8ef4b14a718459614a44ded3c8bb66083ce2e95c6cb7ab17e5b7851113eacc3e43af40ccf5405daf51b1a070a0a59929f82b6b6e58ef1caf246b2e7a155c7ab90fcbaff3abd0e3c61230caa313f6c985dd93d39c7ded1fb53f8d380c2f7b9e12cb45e3ec093ca97c07c9c0f09c26ec92534bf1ec5320b07cef15fed49cebbf8545ff499ea6a42ca1fadb63522a8929c46234c715f2dd6c4dd0b5be57744d3609f4038ef7a4d218c0db4404e0c12b5c0d1f56add6d0defa435b92c14fc4f9fff8b7fc2ded5db83b0f678369f34eed586532a6af17f174fc7ab3956f89661b3f833cb48abe681967243cb84ea290687b47c9558cef2d227a891f23bed95ba6255bd559d8fafc947e100a44edd010f983d905078a1c1a4a4844742f545ed89890e7bb0a43118b7ae9d4b2b13e537d3759338aa84d1f1f00844233b23cf2ab9d85d136234f95b8d1cbda50ded2a133938aab9a6f04b12af64b10b31859118d3425967a97eaa3176d415c54bcef72406d1b89bb1eba9454d47c1b8686fcdfd044c02f422780022d2c18afdc43a2d190bf1afc203821fdbac49b707820b0147d4726618890cf968fb21ff5d3db1fb31179bc0ad934631257fc9627b1eaa57dff968ff6dc984b8646e184c6f6ebbaa0ba9459ddbdf5eba4a9fa5700066eaf607a6e97c57b6d6b1117f9b213c178c0a186988fa35e573a7539241faf775223dade866310293e1a93c495c2f855399040cdaa876badb1097b8b03f87c81a531b949950778ce40e3f9d001f736053f4b23d3cfa66702ff7b5db5dc529bcc4e0266b495ea6947c663f8a8f0ec73d2229f52d732692cb984977673bbe9650c7ea1cab36d8f54fd3afc582be9d95fc20310b1ef342ae7f8a882d64c8274f88b08e8cdcc8816d637700bf474fcab770aa2657159c58bda25169b53096f8c70d5cd6b1f7ddddfe64a74c5422c60b030984cd721caff27d6b0d3fc97face67f3b0e7fc931265fd3a4af1fe299a95141d22b19a41420cae4e4ec4176f10b53245dbaebfc78948e5d886e8a2a289c6cd87ed0217618842bc89dd2fe3d0093d2bb12c4a976853e274e6f7e74ca71fe989ae20d3d8901cd90a76e52bf5c2cbf1be936e265ddfa8e325f9d0fb50d2191546cd395276518b2cef8826e1e42a917f710bc00fb57c1aa427c00d85045e9d07e4dc26058db266651bfb0e979dbe2af5926d639ae305e58cffd144ea917ca6f049c8dfdbb7a37f994fbee372e3049401c4323c1828d09bf08f6525a869686fb9773135a1eb61b2a459145612f2357da92ca380208498d3a2323d4a3e03ca5d0fda896eba10b0b15dc385f7b11c71a649b8aac603265747c2e37fde1b6af7037920cfe2074262d8dac1d0183dd67426b1be88fbb8c5f0681f39c5c0e5f3c75fe6446ea7f6a7a35fdacfe5d9d523654e968cee4801bda3a702c8d324eb684cb8f198e119c1ed40a025301a262adc9ab1697311b7fe425e7d66c6ed6fe4296cd9e175eee63e12d0df460f7d4129b0fa88f0c0a76808b429b167ad1d655ac299516bc12580c9a20320b9f082bed64f05770f3f5897f74bd87301e2a32f74cf2041674daa7f365e105c5e4d7245d074e4acb3c345082b84ce529cd1d265f63b450447b6eb83f029f3a3a1b28dba2f8b1b534c3cbaf7d47b33d1ccbdee2ed956748e8b57e47c0fd621cdd7833b5d1248775f82d05928d998079d10191bfdcf28591566929993b0d1b232287cc4a2edb788a07d2fa6d72667fa875976a4970069607d6c7c366c4f2e635fdacfe5d9d523654e968cee4801bda3a702c8d324eb684cb8f198e119c1ed40a025301a262adc9ab1697311b7fe425e7d66c6ed6fe4296cd9e175eee63e12d0df460f7d4129b0fa88f0c0a76808b429b167ad1d655ac299516bc12580c9a20320b9f082bed64f05770f3f5897f74bd87301e2a32f74cf2041674daa7f365e105c5e4d7245d074e4acb3c345082b84ce529cd1d265f63b450447b6eb83f029f3a3a1b28dba2f8b1b534c3cbaf7d47b33d1ccbdee2ed956748e8b57e47c0fd621cdd7833b5d1248775f82d05928d998079d10191bfdcf28591566929993b0d1b232287cc4a2edb788a07d2fa6d72667fa875976a4970069607d6c7c366c4f2e622e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d570ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b3a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f21621663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac5377081ff8f64eeb38aba78d10d3e83a080413ad79e951fcf6038959643c52ada2ad9f13b09f574b71da85b15d3abb34658f227e01576acb02dd2d56431d385d43a42da6325cc108a912bcb06aab5d323439e43203745734a369ef5a103de9863110b0cbe842a1af8691b0e23b27f5bc34a5ca91fe7418b3932aa6441e1c7d0df06c5a0ef02911e040f765ee71384bed36e78e0ae3b40c85a028f4ce699d6a07c1ba90ed5254b289cb51347547d2f2df8d9c8d92d37b90c6f7bab01c63fe3e74f00907813eae16d2b0149dd3dec4b0fe6f3df680e84f010b22ae146688cd1e2b507a36be71870ee0d0f16f09c5fc3ee7f6a569ed8c56b2b20ec67598eeffda89c22f16e7abb763ed14185c019f5dac8dc7acab2e69b57566c94baee8f1a39b14a199dae4ab392dabc2debda1f813f5125daf66e226aad562736ca6357d2c3000200907813eae16d2b0149dd3dec4b0fe6f3df680e84f010b22ae146688cd1e2b507a36be71870ee0d0f16f09c5fc3ee7f6a569ed8c56b2b20ec67598eeffda89c397e08619c655f78605c17faf4ad123b4f78f9cd1eddca9a21a1834116aa43a91fd13331c06f24a63d10b2fb16b844d5b689156e8c7abf5c5cb9d211cfb6b4892eefd583669a38c5c24df6a11f480751df43634c58e9ba096b7380f1358316340ca9d94a8f94aec38381a83bcd0786a5bb64dcaef3e0aa356e98dd82267692aa00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001026032bdd7d9b7ffdb83b66776e0f195bafcedc76ed876981d2503b5867429a70c7cbccc220deed40a54004054e9dd47c2b0cac74586224252808e7ecaa858801990b1ce63d4909ffe9a3bf868c77f101386c395765a90b6ab1f98eab1b2fdcc2082323dac448e912698bbbd54f8118d84473241bed58cc37c3da213201b642a2f5e99d300159c74fb2963525eecbfd57a48fff09c7f9911c684b5005c2f5b6f1eb177c3cac8c0f9fe1c5937d8f92f683f9bf810ce97bbea8794b06a2b644d6a0eee515e7828881edc016f3d93851bec7837cae25d48d89d8d33f7c93c0318f21d8d3e3ffeaee25dcd6ea6a176b0d0d773416212b2bfcf817a0d4f59601f3bd922caf69aa34014ba5104e49e7f6163bab1caecc34ac7dbf4e23832fd08552f8b00ab78b6d1d16674f984222680c05561f7ff2f3b84cb41b78d8621db55ca9bd41be2e022eb09e09ab8bd2dedef3e2996a92a40b5de61f38420d2f046f1f562922c0e755600863dde74dd98dead3f4e78540648be04c785a6392e24daac600bea3e741acc1252cb988448da854fa62e21d981d1e83d2102e88d677801b64c04ad0b286c13422fe1eae734e355c52620523324c6c9bef939d5545e6cd29806f4b43a7d039aee8e07e40e19ab27c674a0bc8929389c00c01fb4efc1904a103c529f2ed93359beb4cdde6898a4b9ac5ebfab740676fbf154e261c64b32e2b41fcc530b603bff0a03f69520fa77e7794d9701b177b42bd66886dea86c741dfd9a1f1d2065f59bb72d27bd25233f07f40b8be58e7df3c6d4ce48ef22660670eaa0a4a80935ccfe056b1e32501f50f099808e0370b8a8a79de8c7c69881bfe806ad5af93012d6884e3627268b3a309f4654e2447c82d015030a79781454465728fcdfd52f4bbd872e0d110ff686fafb6b52ec7a6575bcffb14818fc724bedd1472e9b541f36c346be95efeed94ffb6beef12f67858c108c764ca9050994a8a04e46e4502b3d6fb9c3691371c8371c92d983b28ffe8870d1d43fb84a71287bcae2e0a3be37f82c8b233857acb286c67af6cedf8771b342101fe8a7bbf0fcc17fded4dd78080370d3a2470a62b4d445a5f3049829095c9c4652bb1c3a4d40d4354f3f8fdd0dfda4002fa70be16b6f36286af41998227f65b00b1f3d5a4bc1ceb92e64f52c0b796145b31f7f71c363e4773e17362f40075c5ebb0c08a8f4e1de7ef77f46e31a0a0605d0de3ad5e54da84c8bfe96898d7fee596326a880d7adc0c87e27ee161faa67c3d1927c27503929236c412304118072545c765453ed372f7a657444291940514a3293792779c02b42bba82004bfebc64132de0105bce6ab0c2f85d2d10ef35fb22e49eec9ca6a1d9c93cc6a7710610c7d0f68616a3ba8b05c82a8615a1ca3a0848582402f267f866f40046baf466d0d8f220e8b766531b037704142d11fd71ac7cc3f5e41e2c50cc72c1dddf920008ed2ab47afd434084a1b661f90bd1730b3e79597b145a9eb98bef8e5d6b12c5ecf68b39809cfe9111a9c31b8e9e31be3ab015be7357c0d936ed20dd35501e3f2b9ef643558e85858b815ab2aad5c23890207f9d0282fd0d5cce79ecea876c62ba58a58e0cbdf6ded23a141c4642a3afb82dcfd0f689fd01dff2c258a78be1dbee198b204f019c02750f5f2a4b82f0e9bb2ef3ed3aff18e412556061bfbd0afae913fdd8adc4e514d7998e6719f0a18b13cc12f40f9064c4cd27dde7f7a25fb5162eb114249fb80076aac1d45953e16aada71bc18f6fde9fa593e5e675cc2491961aaa53059d1f9cbf1c93de5934f0c29593b4578ccc390abebc67ff9b65019d7025d66adfa5dbb2bd7ad54192c890fd771095404cef6635c7675b447bd36d9b442d1da568bdd4374b47b739182db10af14d333dfb9e7ea0e7ed83292a33f5e0d89852f73d4d80231db5458c61dbb3a25f7e9d463a6d07acb4311bf33b5de14942536835f32c7256bcaba3ac55cc32ea9c8e875e9f424ba462bf48466480a275a80defd7ed0e7feebab8b8737a51232e6ca2f4d8d0debb2f2b64f96f457d77d05b5ba8802b8fd0dd5b5c5c5757e9f3e16d862332f3bc7feed9cfd89096b94e53e0676c8a66dab47f4a5fa8a64aa862aa1abfeca99e681435a70be09fc6468cc578206f71a1bcce11f7559d801bcfa064069818e794c024eb8474e264a2f58ef3f0b4ccfa907e8875b25924d9cb8b62e11df3ab90954ed5fa0d101a9a301d7fd8e14cbaf1884b613178a9265c70de422349581c8414f9f69c009613dbf362475871029f1b3b8225760cc5a952f3c8b1dcb6a7e37beb060963ff69ec240c9dbacbf88d2179940f941cc64926ad0c3762b06eb88e9468e1d10c02ee634bc0eb607161ed9a5e8a67482899beae9ec2eb514f9147716b971e2ef3fd119cb43f14a1b307a22636452a716a395021613d14c172299ac8e60c69153c0ea7f07ac498dbc9acf4c21a454f3c12878cf919ce98628dd6653719f396eac3f1580f853b67265abc9afe7a8a427d804b81d6e63167b33ad005ec7e3e0d6a2c4947b265d6fc48cbf73809ee8afa72c9d2b20d8108f9d0c52ffa1381c1f295d3b6b84d9a2903b9587257b6a6449746c9005cc27ef706422349581c8414f9f69c009613dbf362475871029f1b3b8225760cc5a952f3c8b1dcb6a7e37beb060963ff69ec240c9dbacbf88d2179940f941cc64926ad0c3762b06eb88e9468e1d10c02ee634bc0eb607161ed9a5e8a67482899beae9ec2eb514f9147716b971e2ef3fd119cb43f14a1b307a22636452a716a395021613d14c172299ac8e60c69153c0ea7f07ac498dbc9acf4c21a454f3c12878cf919ce98628dd6653719f396eac3f1580f853b67265abc9afe7a8a427d804b81d6e63167b33ad005ec7e3e0d6a2c4947b265d6fc48cbf73809ee8afa72c9d2b20d8108f9d0c52ffa1381c1f295d3b6b84d9a2903b9587257b6a6449746c9005cc27ef70640b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc28a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e8726c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa13ecad465c6944b325598776b427052e58c94c13e930403f45b0a408f56709bd70656a0cf4c32a485099d4b8e3389c827090d82d1172db3667feac40730816f1305cf217419e4f71e44fd795ce3ce932c1a1bc93cb728baa1d0df0aa69bab501424287a8653234caea67c56793cdbaaa0456cdf7b43e6c05ddaa6c0253a47d6d5040a5288c7f4cfcfd8259e43e9af00a99f1296f2d19b0da9d22eea413fc016fb2df7a41daa41939712174d67499152bc832f079a0136eead02e44982e442929e1b00dc3610a9bbfbfcadcd305379400e30def6fd40025399a6ac1292daa557403929f857ce3021a1ec2c9bc89b76c6e5277ec01edd2f637abfe35990685ae18e0e1a7ede4b179257211a6cada714a7beaad368ffd2818c744f6356144d0c89eb2e4c4d322add4454a75e3e1e6faf60dac34f7356ab65d2ef20e7ba2e956941db1b00dc3610a9bbfbfcadcd305379400e30def6fd40025399a6ac1292daa557403929f857ce3021a1ec2c9bc89b76c6e5277ec01edd2f637abfe35990685ae18e050f3816577d1dfdfc2f1335a8d2086b31c2b7113b5c78176d8e7206458c2e9d21100de44a90c742e7239c06a9ea36ec9ec3477fa9a1765acc534ee4953fa74e3779a8514727f35500631363ca088e12b5e440a11c5196df6f7b1d3f0dfb347d33c712de6dace1a342255ed1feadcc51b04401ff72de0eeda55ba84253c2ac58000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013ab3c6a304539caf8174716d91fd0748ecd1c02867a2a9bc51c1ce339c402e0f140c5a7692c13bf29fccd79fc7b59c241d9b36c2138c8451721e79d56ee3dff938b22df9786325aad82e7706fae9df40ea43092bca22f78ee771bf95ac3be33c1501629162ca64dee0f707aaa90c7d5630aad867eb70aebec0df2a9e8ddafcd31c38e8dc2e0bf6d8d7009571c756ebc05ab11e0c052f39e2471296d791ba9b7925f521f30eb5199257632af18058066eba6082f631bd65426a04f3b41cdbae833675729934e077328c1c9224e5b8f99e0784d8360e1c7be45f78bdff68a0fd8a1b1a3483515a690a9322491cedc5b8ca58505d85ac2eb2808d23919586d52c0a1e99339dec81a5cf32006c696165f2f4fdffed4e31e608892dc7eec12b057c753ef233635e87dcac82ba936d53be6b9c25a0354ab9efbf996a9e31cf6796a4df30403ff170f8453b93209f7212e30e64bdecf1f13a90827f8af5271a803f9a5424d8c73f137cf21e26e922f5445367962e2e7d9edf3a9d99dfc99732844f06b90a7606c3266196b06f6bcd6ca8d7426ccd0da5cadf02eb5cbb8b2f63c7bb5ad817b2883cf87686ba01aa44b95631e5814ab0a6ab9ffcbdc888d1f88d166178441b0d11e7260ac976f1eab0194dbd2862933e2d75d331545584286b4d5d606f0111e4315bf57734cd08d875e9d166dadb8b98f5c714d29f1d7b659d4171d25e040c48b3cb341b205699727da85b9a6129e38b746802999a390a83c4ee15498d2a0963d8cba260134c0c873ed541ad2f9ba37daf7c67838a3baee19647679d34600f49ac0c3bd3a2429093997492dcd565dc5ec93132dd4a5acb7d6670678e397b251e4c427a5152a0114236c44f600f8a7c07a91f2e1fcdeee3d1606a8dabb0c820f21650aa5baa46a61de66652adb1f204b520344cd991715763b3cae77d2bb824e63f99330d2cb016186b40067d8d254a2b6d4996634022db437e13c224f5520e84f1e6dfc9fe5fcb4b97e73380a9defda1328e41b72cae7b232ca9c876eb111e94e1525b3b070973a066bbca258fab3e293b13ac0480c935ec5f9cfec9c2053f1f873ce2e8d95b7ad6769d85030c70a8892dbf02c040e85cd3583ffa3e4887126580bb604c6c0fb0313e8183042fbe1d97413705c6d8214de25979fbbcf04f1cdb853465888cea5cac08957ddb880c7ce23ba26ff78a325ed0138d492b5b552aeb5ca5afb2895dd83e3c55333e671d9c27b9110d3797041767ebc21dfebe480c1ae22b9ef6aea0b81855ee84aefcdf54724253e1949c5da3590718fb9260193b2aaab104f6a221fba503b915c766c85a59a8cdbc20fb5e6a38390ba511bdea1da5d98c792e3bb6f562b751fe604f1226528e9a150fc23e03867dcaf7e88dac13c3a6cb190ffa51dadc8b2c77bbd9df2257045332aa63ffc4d517764e34a08f3e0aaa508874894f35d98e97daf4c4ff27bb59efc2bdf0c992d417ee02becd6026bb9fd357878b46601a75f300b9b22088a3993b35d8446b99bdc2fc5439ff8727276fc450288daccb3c57c6b6291e9682470bc3bddd8907da1b617ce139284507887ea83f631f68cc1ffc026db83015a119266db552e323667f7d84f631f2891a5a3f384d050ec2d0ec514e8ec8d612550130f14d79116b27204f374a77be092ef0466440c54d709d37091e8a0e5b618d8ed232433aaa2f235ba755c5a3433c1a24d5eec5523baa3d4ac4aab7f267d029c4e92016191eecc8bf936fcc0574910de4a7370b5abe0b2678f3b109a6b29f888ee2469b55c80749a23fb2bb24b81f2547d26e911eccc7af03e9470955b4e5a9708959ac27f0fe1f9d003cab56f7df2d82cede978c24bd540f0cb28d0bccfde338849465b6fc0d3b8ee6f21821eee8356bcd72f389fa174f007bf72f04331d264019762cc6c52d3f6db1f76c29bef925c229a6d54b464d8e9a3f18ba29cfe000b98eff019d2675c348a01d5376763d375ff5a13695e9721d8353d7e34a67bbdd3eac99ef5311a7a8fe08ed57130ca532f2c78c5af6f059b467f597f5ac87cf74e95c0d7926402a3d88874168940f2637c835ff75991b61091898106cb0bbc56f8cd4fcd5c1b35305ab78773bd55dd027b5d62c5d8a56312e6528e621f40fbb5470a93fc5a1f574c44ed0035e02a2183d67eba4b7ca818a4b1e96943c4715814ecd7e0aab01cd8b72c0ad116ba1d2f42b872fe0d0a5ea9243aad32f68db51897ed60756f633d76b612f87ede72d661c00a31cd9ef8679794deeb656fd6b01c97550149e556476b314244fb708d44fc33f5ce32610798686b21149a90294fe36acf6845db3e882688508e135f72bb03e032f9041ada05f5e85a98fb2f31708ef4a906717aaf6517f64b58e932c258ecf3cd06fbe525fa0a17a56704d0ce8f710d7b631e45e56a79c3477a259d3da71320fedd1486421dcd89c4fce7ebf732cac74d2037656cf977cf78bc8dfdcbbca0b30122eb79bde232763b03181408cd353ad749585b27d619ea1a1680d234435f60fa51669f4a9503b0d8f0879bd3fdf5e25d37853a8c0fc553c8dbb724faaf236305ae9960b56afc4f270f78642c020a1fc7320a8608bfcc65c9f757ab0550dcb00a31cd9ef8679794deeb656fd6b01c97550149e556476b314244fb708d44fc33f5ce32610798686b21149a90294fe36acf6845db3e882688508e135f72bb03e032f9041ada05f5e85a98fb2f31708ef4a906717aaf6517f64b58e932c258ecf3cd06fbe525fa0a17a56704d0ce8f710d7b631e45e56a79c3477a259d3da71320fedd1486421dcd89c4fce7ebf732cac74d2037656cf977cf78bc8dfdcbbca0b30122eb79bde232763b03181408cd353ad749585b27d619ea1a1680d234435f60fa51669f4a9503b0d8f0879bd3fdf5e25d37853a8c0fc553c8dbb724faaf236305ae9960b56afc4f270f78642c020a1fc7320a8608bfcc65c9f757ab0550dcb0b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4822d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a0af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb1dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1971ff13de4018ac2f204d8e0cb4a7c30f750cb2b2ec36ed94c33f890ef98225aba181ccd4d1b3c80f4b8c727f6526322ec76bec9aa4b2b38cf1447328166df4fe00804a96ca16c5a8c7e9573fafa97145f3de7ef8b9a2c4f92876ec904cc8e00d4243364fff85335141c1dd1584ef14afcac6b8156563c1859d08fa716ef4bddf906950214b2ea38a5f0f7c7a5a6a6ee9328253d0e0cad482ac7e284531768c1d903696c13ac367d18219cc9b7f7bb935a0cb57b9e7d3ce80eb9cf043b476aeea23b371581b99384b87ebf50a3233893e1b81926a8343faa5cdd11a28ad748bad3359e1e56f9048a6cad77bb79ff4fa19cf2f49f1f3cda8d9839cc3e751b48e93929ccc29d5fdca54237500629f8b665e1a0a2b8da0d73bcdbe3ba78313c766d853495dd25ed74aa44720598ce08b31b8d4542494e72066f37b2aca7f0b51fa1f23b371581b99384b87ebf50a3233893e1b81926a8343faa5cdd11a28ad748bad3359e1e56f9048a6cad77bb79ff4fa19cf2f49f1f3cda8d9839cc3e751b48e9393d42f9edaf7b353d72b4f5705136b9544064463b70cee08fb306697083486b4f1b8a58b763a9292e92394598721020cf3d45bd1dc23574467f0f344bad60376f0a58380a94981b87a2e450aa1b995b9557c678c3630cc221dc505112261580c2068325cb9b5386cb1fa9f320448cd271a8e04d76cbf7b2986baaae410994cc94000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011cc51988adfa9bddbf04825e0364b0d6f78985a7302ca7f0f40abf0f0e194c9419c740145c297d228294e49ab0a74dcdac5107ab7147aea9b9666cb7818888050f23e6f32d636615bf3ed80f5d52b390300856755b4435d1228378aaa53af5d117945fa7911b5084fbfd1cbdfb91bd187259f5c50b13c21ca5f0d6d33761d4ad245ef57a3800023656419f40762d7ef573f8b632116ce4752fd67c2b30ebdec106ecbd33771d748e21ac89f798906235cf547a88bd0d15c6221cf1da6dbce806185437524ed7a9e5a54cb9da9f4be9be8ef8817e38dacc4aca8fbb32974b5487011dc8efba17b47935a9f10b93f7f876fcef86d2f70becc610f80e40201e619a3f530f091a8d214c3c29cce1c905fc3f09cae923cfdb4e05b20ee4a1f16724b309ae5be93a7679e40e9f0e0cfbbf123a2b04674b54fda7764ed3e1900588d3510caef3124b9e6c78e982f2b8ea2ab2ed955c4eacce0ceaff2a6d0904778bebf83e6b3bb7b3f865b5c8eee07f2c07977845441ee4110ae576cc3286d0bd9ae4071935a2fad27af26f8f8c0867034137f81634a36e5b935117c4ccebaaf5d736440e845fa7cc6ee2706090567921ee47a6bf9f871f68bbfabcf5caf023ca66928b1f7f253cb6289b9d463b12db4e3777b354c00131672784a8327041ccff367c471a50ae75b7ac42282c922e51b7f319ac23b9ad6f3aba4775e2cbc9baab95eb1f2f0cbb0abd9719d8bba3d99486596344f522850be36e4b4cb2aaa9f9e462ec8b177ca00447e5bb513462e473011263ef82bb902d23f5902efc86bae6c3ac8e7338039db99a20cba12fecb88aa3441f43b2056c77d815eb848ee15a1f309e02f939fa82249f2b298caa9f5558a812dc4adbb50cdd2455f7a26f4b3223f8ea6d4e1d52b98d0b4d83e6b738a4adc5782a37e20310873eb6b807cbc330abc93709203e919578faa754cd2659c4487762a0d367bd09f5e2f3c777b2495b78b67ad75f2407966530071cb09b047c9e476000ef7628b62fdb301f891e0c40cb5cc5e3bf1877ee09939876de919946af38b39633a65754fdd482995490ed826de848e2c31fd9336d69019fda986c1ca431e889e2a082505bc557fbd43b799d00dcdf670037d087c964537c7f4c6c24bea0f21f46f105246cb418f96eebe7559a190c9dd43d6aa1ca48475f7a7ecca33c8eaed0f24d6a443deef2c127666a466967b87c7223633e49e295a253db94b12b9fadcfa5456c4c69009332b3a35be6b44f65876e369349534cf6df747b73d50158a38aeb7f477cb866acad5277cbc578eac412d32bf0cd032c2d8e149f5303d345ae831b60e2bafc61efac80f52d7e689e52e8c70857a39242466c4058487f8df987a06d1abc6cfc08d01927e765085eaf47e1c206881c03c1f3cef4999d4305df16971770c08af7b9b66debc25a88215635370c26786fd3db8825bc338b280d453faa87ab32e075da25f6b5bffb777f881faa5a2d2f621f1ccfb40b6a58e08505ab504bdbc677bae9a7ccc141af2c47065bba91138637211487e10d96fb6d68a8813794e10aee194ba2f044c63a763e315e24742319c90ee3ad05b475c1f8cde24d41202fd1525a7849536aed8e6232c68f51de281805deaacb59e1ad5a66cde72835ec1287ff5347f11b774c1d792705a1642c3dfff2d62b613ab66a9a14a34c6347c440cf5ff629d2d91d3de8280974cda6f726c9d34677212e7db0a583a55ad83f819c71dadcc959e6294523b8309f1f0f431fb0c80810344c9e92ef891fa947bfcb1c5c0bf95e195caf51dc38e8a47a1b280cbd6854c1a4d2e84aef8f8d979fd10c54622679a5b77a214decc08c70cdcaf40ee420fb9486f4630464a102d312fb3fdefadfa41c9426038118f13aaa38fe86341139c9939fe2b466aa3900cfd9c4354133c19a3d1fc72fdf58d29e3ab8504909be8b92d4a8e8587de1661c7c4347f0fb3472a3fe9d31827e278b83608f364a13ad4b1c2ef1cdbbb11936639f789a64f5b65b3f8e6df8d9365847bb5956f1331acdfc34cab7cfbbc3655ba0a379c9560f174bfdfc84fcd725cc378c9010d97139663de3a45c5c3c390a8fdbbdd7dc07bbb3201bbf9b95aabe5f033f005497da061c3d7f82e4975084a58e038daa12460b882f722b102aad0ba0cff471d6530a036d57db9d851fe86e85d2af13db67e635574767cf710aed89bc7d8bd0191ffc094ade89e36dca61f77200d6e24d389b2bbd94be91295dd2564cc924300413663f5ce32610798686b21149a90294fe36acf6845db3e882688508e135f72bb03e00a31cd9ef8679794deeb656fd6b01c97550149e556476b314244fb708d44fc33cd06fbe525fa0a17a56704d0ce8f710d7b631e45e56a79c3477a259d3da7132032f9041ada05f5e85a98fb2f31708ef4a906717aaf6517f64b58e932c258ecf30122eb79bde232763b03181408cd353ad749585b27d619ea1a1680d234435f60fedd1486421dcd89c4fce7ebf732cac74d2037656cf977cf78bc8dfdcbbca0b305ae9960b56afc4f270f78642c020a1fc7320a8608bfcc65c9f757ab0550dcb0fa51669f4a9503b0d8f0879bd3fdf5e25d37853a8c0fc553c8dbb724faaf2363f5ce32610798686b21149a90294fe36acf6845db3e882688508e135f72bb03e00a31cd9ef8679794deeb656fd6b01c97550149e556476b314244fb708d44fc33cd06fbe525fa0a17a56704d0ce8f710d7b631e45e56a79c3477a259d3da7132032f9041ada05f5e85a98fb2f31708ef4a906717aaf6517f64b58e932c258ecf30122eb79bde232763b03181408cd353ad749585b27d619ea1a1680d234435f60fedd1486421dcd89c4fce7ebf732cac74d2037656cf977cf78bc8dfdcbbca0b305ae9960b56afc4f270f78642c020a1fc7320a8608bfcc65c9f757ab0550dcb0fa51669f4a9503b0d8f0879bd3fdf5e25d37853a8c0fc553c8dbb724faaf2362d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a0b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4821dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb181ccd4d1b3c80f4b8c727f6526322ec76bec9aa4b2b38cf1447328166df4fe01ff13de4018ac2f204d8e0cb4a7c30f750cb2b2ec36ed94c33f890ef98225aba243364fff85335141c1dd1584ef14afcac6b8156563c1859d08fa716ef4bddf90804a96ca16c5a8c7e9573fafa97145f3de7ef8b9a2c4f92876ec904cc8e00d403696c13ac367d18219cc9b7f7bb935a0cb57b9e7d3ce80eb9cf043b476aeea206950214b2ea38a5f0f7c7a5a6a6ee9328253d0e0cad482ac7e284531768c1d9359e1e56f9048a6cad77bb79ff4fa19cf2f49f1f3cda8d9839cc3e751b48e9393b371581b99384b87ebf50a3233893e1b81926a8343faa5cdd11a28ad748bad33495dd25ed74aa44720598ce08b31b8d4542494e72066f37b2aca7f0b51fa1f229ccc29d5fdca54237500629f8b665e1a0a2b8da0d73bcdbe3ba78313c766d85359e1e56f9048a6cad77bb79ff4fa19cf2f49f1f3cda8d9839cc3e751b48e9393b371581b99384b87ebf50a3233893e1b81926a8343faa5cdd11a28ad748bad31b8a58b763a9292e92394598721020cf3d45bd1dc23574467f0f344bad60376f3d42f9edaf7b353d72b4f5705136b9544064463b70cee08fb306697083486b4f068325cb9b5386cb1fa9f320448cd271a8e04d76cbf7b2986baaae410994cc940a58380a94981b87a2e450aa1b995b9557c678c3630cc221dc505112261580c20000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000119c740145c297d228294e49ab0a74dcdac5107ab7147aea9b9666cb7818888051cc51988adfa9bddbf04825e0364b0d6f78985a7302ca7f0f40abf0f0e194c9417945fa7911b5084fbfd1cbdfb91bd187259f5c50b13c21ca5f0d6d33761d4ad0f23e6f32d636615bf3ed80f5d52b390300856755b4435d1228378aaa53af5d106ecbd33771d748e21ac89f798906235cf547a88bd0d15c6221cf1da6dbce806245ef57a3800023656419f40762d7ef573f8b632116ce4752fd67c2b30ebdec1011dc8efba17b47935a9f10b93f7f876fcef86d2f70becc610f80e40201e619a185437524ed7a9e5a54cb9da9f4be9be8ef8817e38dacc4aca8fbb32974b548709ae5be93a7679e40e9f0e0cfbbf123a2b04674b54fda7764ed3e1900588d3513f530f091a8d214c3c29cce1c905fc3f09cae923cfdb4e05b20ee4a1f16724b33e6b3bb7b3f865b5c8eee07f2c07977845441ee4110ae576cc3286d0bd9ae4070caef3124b9e6c78e982f2b8ea2ab2ed955c4eacce0ceaff2a6d0904778bebf80e845fa7cc6ee2706090567921ee47a6bf9f871f68bbfabcf5caf023ca66928b1935a2fad27af26f8f8c0867034137f81634a36e5b935117c4ccebaaf5d736441a50ae75b7ac42282c922e51b7f319ac23b9ad6f3aba4775e2cbc9baab95eb1f1f7f253cb6289b9d463b12db4e3777b354c00131672784a8327041ccff367c47177ca00447e5bb513462e473011263ef82bb902d23f5902efc86bae6c3ac8e732f0cbb0abd9719d8bba3d99486596344f522850be36e4b4cb2aaa9f9e462ec8b39fa82249f2b298caa9f5558a812dc4adbb50cdd2455f7a26f4b3223f8ea6d4e38039db99a20cba12fecb88aa3441f43b2056c77d815eb848ee15a1f309e02f93e919578faa754cd2659c4487762a0d367bd09f5e2f3c777b2495b78b67ad75f1d52b98d0b4d83e6b738a4adc5782a37e20310873eb6b807cbc330abc93709201877ee09939876de919946af38b39633a65754fdd482995490ed826de848e2c32407966530071cb09b047c9e476000ef7628b62fdb301f891e0c40cb5cc5e3bf37d087c964537c7f4c6c24bea0f21f46f105246cb418f96eebe7559a190c9dd41fd9336d69019fda986c1ca431e889e2a082505bc557fbd43b799d00dcdf670023633e49e295a253db94b12b9fadcfa5456c4c69009332b3a35be6b44f65876e3d6aa1ca48475f7a7ecca33c8eaed0f24d6a443deef2c127666a466967b87c722bf0cd032c2d8e149f5303d345ae831b60e2bafc61efac80f52d7e689e52e8c7369349534cf6df747b73d50158a38aeb7f477cb866acad5277cbc578eac412d306881c03c1f3cef4999d4305df16971770c08af7b9b66debc25a88215635370c0857a39242466c4058487f8df987a06d1abc6cfc08d01927e765085eaf47e1c22d2f621f1ccfb40b6a58e08505ab504bdbc677bae9a7ccc141af2c47065bba9126786fd3db8825bc338b280d453faa87ab32e075da25f6b5bffb777f881faa5a2319c90ee3ad05b475c1f8cde24d41202fd1525a7849536aed8e6232c68f51de138637211487e10d96fb6d68a8813794e10aee194ba2f044c63a763e315e24743dfff2d62b613ab66a9a14a34c6347c440cf5ff629d2d91d3de8280974cda6f7281805deaacb59e1ad5a66cde72835ec1287ff5347f11b774c1d792705a1642c1fb0c80810344c9e92ef891fa947bfcb1c5c0bf95e195caf51dc38e8a47a1b2826c9d34677212e7db0a583a55ad83f819c71dadcc959e6294523b8309f1f0f430ee420fb9486f4630464a102d312fb3fdefadfa41c9426038118f13aaa38fe860cbd6854c1a4d2e84aef8f8d979fd10c54622679a5b77a214decc08c70cdcaf409be8b92d4a8e8587de1661c7c4347f0fb3472a3fe9d31827e278b83608f364a341139c9939fe2b466aa3900cfd9c4354133c19a3d1fc72fdf58d29e3ab850491acdfc34cab7cfbbc3655ba0a379c9560f174bfdfc84fcd725cc378c9010d97113ad4b1c2ef1cdbbb11936639f789a64f5b65b3f8e6df8d9365847bb5956f133061c3d7f82e4975084a58e038daa12460b882f722b102aad0ba0cff471d6530a39663de3a45c5c3c390a8fdbbdd7dc07bbb3201bbf9b95aabe5f033f005497da094ade89e36dca61f77200d6e24d389b2bbd94be91295dd2564cc92430041366036d57db9d851fe86e85d2af13db67e635574767cf710aed89bc7d8bd0191ffc1043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a1043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a3ba6fdac0b77d30417b290295f5091155d781ed0d0a66a28e5a091ccf9031fab1883d6e1d3620a99d127d8cf8f9f75ddfae5984b4c8b4ceb80eeda5649fd19220b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc28a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e871e6e0637fbd2eec7f53d9274a1ec6abff0bb5a737b45b8caa2d0031846ce7ac63e2a62af0c0ec157b4163e558a1589e5f2ba4a4494e1c6ac46d6793eed0d61503aaf8c3339f1ab672444e10a08c0dc0efc9e314ea9c148b218529c30eafd8e0a2b14b240c176e1fde32638dfea6520d5983e5f855c8c72873458769e662a2ceb1d6a0e5afb7cf7e470de56335d310ff0d4c2db1069fa5d8157b7ebacf070fb0905658bc419c6b4c20a8cbfb280bf03d8dbdbe0984d0a63bd1af5ba6f8911e8a8127381323f9fbf530967dc8447c416a96fa1e32b0b281b6702eff53454096a4115c87650577b39bad636654ee00feafcc869db0b5eda86039ff8dfd84b6c28b939346cb03db80572a9e11b78b224ea3be1e5627d6cb4a161201dbb1881b7a39c3edaea3ce3b29d21497258d0f1510c6ad41157af8be9aa05e08adf2916c3b85a127381323f9fbf530967dc8447c416a96fa1e32b0b281b6702eff53454096a4115c87650577b39bad636654ee00feafcc869db0b5eda86039ff8dfd84b6c28b90aba3c0ae3f5d44b2eaf76521f4a79bb1588c87035dc42cfc5acb78db015bf4f16336e223958af763698572cbb2d5db8372a6343c009f1ab4dd5e65908446cf61e224492f0ecd28f7e1ae56ccb5b965df65fa883d72bb44e8db5d426a899dbff1f63ce81344361519080b8dc3b1e35bb17828eec25950687d646152a439c2c5b0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000107cd991467d98ecc1f174f69b3cf8bf0b1976a8ea4e81104070b183741ea18a9177b9baae372d9712012fb537e9fdadf97cea8d618ef30458fc621655fcea19c0eabec8a14610c3856648a3897d69e0eb18307c4ae4cf817f17cedf7c5e4cc4f1f88050448226a97040f75754e25139bb0570d8e99af8eac208e84acc83a179d070b1d3037a8998b521c14d2a1d07f574413b06993e70eaadc2d95ce211d3dbb2777822f755ea05294d70ed7b1e66e7623c2d6aef461de92da5e2d26a7bfd3d00c834ab853614d17846ec48b4788755a7a3fb4ccd908ffd802465fc9ef4b80c627bb4b669f0c3f74e19118b70e9a8c5c7cfd5b445c1a5e4bf984d8846ee3309e2c0256abaff20e849f8e28fe8e78405369bac6ee4e4af3bea3388060dad1ef01132ff7407f317c67194eeef4e6f06ffb863ea1bfef1822c21a8dec69d1b30a350b5eadaa5d71cfc010951794a17606984a75fe920f4fd04b2eb8c97edcea0621142b4dfc0c27060ec48ccaa8c6aeafebcc4e78b9597c47eadfc16751aea555c02d873d6695efa3a93a852470debc527b02e0b56ae5a845e7b0e1a28e4270f8482b2356aa9f2c4e107c4082226888c155e061648bd4aad7047766daca7916121731c9a260c5eebb702bd9b707a0d331a13b9ba26b30a96e5ecf4e4d9609e29a2a07184a2826f745b37aaff3d111048ac514386316cd9b7554a900c4c089c7df2525d254bc7d742a082c49e4329a2f1fb98b45cc8474f076dc7f29b81c6faeb61e006a327739e8634a68044a97e38ccfa47d2c62f492be109cfdb36fa2e50498c806bdc2f66d59434df2bddf6154113e9d882953541aaab57a10903bfc9787117e331cecafab7c9037b4b82829d6811744d132c2b36c52a94f878dc49b3a3276412f8a528c4c27323ee24ca610384ed0116e93ec75d4d167e974ca3d327e9a2caa1f5453c9706a4a025229425ebd9492951cc48ee280919729bd85120d0411e4af0cf03eb1f74a7f111a7d41335f7afe88c3acd0a698584562ecf39a35066af6a52705e3c19f4cba43af91ead2da566f45b5439a5e4315b433d9a0537bf30052e521f3a508aa2a92778a66b50aa6ecc219df8c4e081bc32bfb1efa007d32f54b93338663d7480f6323c6af4a541b408fbabcf655c549db437fe3a006e5ea2616900b6d00e793bd8639360aaa5e93af62a62837fade57aa044435c73b08bdc6d5ef3d19837de103456d6c9ca8fe8ca15476f5bc8e645e93533b9e8cc1af889842563a7e1eec500462cd49dc6019e6f0ea97155fb61a6e13c0bb5c0c6747c6e47cfd0bc677608f8a59938e462678495e3104f0106d7c4c98e34af7dae75f8111aaee36cf28f487309ac7d025ae00a496aebb27fb8b9fa6c6ca549efcd3d07ed555b632b8e0e65632e5e563c8e1128c381a8f46b7e97a9ce30cf202c347fee9090f291306c8d52d1017fd96f78aa2bcd962cb2bf443001db53dcc10d06e80c4d749ec02294b70212e847623f4419352838b39dd682dfab88df5c65fbd306c42928a2c1b484ae52268df8a449e365ef86abab3e56ec4845701b32a21e8d5ceced66da92f9018badc0322a95be61ddf228951848a00d4179b72e9168969b8a2e7aa8b6933722c8bf2a85ab5294f55913d8f20c65c5bc0f3375ef3cbc7bf3fbd3bb307780417652f8b0b413a761ebe096def04f0e48030dff3fd94e662f8ed5d89a6399029ed6bb25ac21c417bcfe687ffd5ee748c8f69f36abf46c0861ecbab95b3eaf90000a4ad422bd2c7c7727c8fec5dab3769956033df1c40fb5a98f75bbe358a0d283e254cad7238fc7e2fe80df46539f941457df46ca2e6999bad8b756c8be5a51626aeeafeb81001936b6d0ba479319c73f1c4cae6632e229bdadaa6615a6d9738fc69db4646d84c91edab319fe360bb3acaf8835b08dcb38e5b4e862e25c8b011f29ddcd5397f0f801760416167871f3f3576afcbc9ab5dd0d28b3e64bb4966111df108ccb2859ed1f350974895024b5e2ebe74fa45e46f1da5eadc3bc78d290257920a7d1c296d175d0e80e61439db6ba1b942b170ae365460ca72d22c386f18639ed24240f76d15bb2e5e08799be36a705156178dd55c654947a7c6185fa424e725cfcf9eab025c3a75eeb1efa7481cb0c5575b037239a2291c62c651b9a61e56816992ddd56206d8aaea597da34c6e5007ff6ebcc913e67db65dffc279a71c632d3ee1e97561a2d55a63b3fbc02869b32856030bc899f3f50ab4e187e348307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab21307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab211daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff41040c9277dc8c6351fd039b70656118046072e337c872d37814fdf794ba768ca31870947f95bdea9c3c192cb3bbf7effe29d0fb7bf7284c1d7e0d66acf118ab0301d31d12dfe16fb786dc57c6e8747c7dbffd151ce61faae4cef5f41a07180ea0a1512d88975ca686798718111f5436c9ac2d9b4ba608e39bb61ba7ec94fb5cc3b4efc924d0f7c35013ce4a6204e41a0d2af57decb24efe2da4b04941b8196660384ccccd98686b104ecd67cc9166541300db26d5a288078ae60ded9504acb2a01444d02b0f68c8a15244aca7777246f0f229f53f481e8d97c637933f42699f6303f57e3f35b5d7b1330f25c1de91dfe5560a11d88c671b2ad2b21c643f4334935705bc03969e10b81c3063b89f4985eb328621906caf853ca0348347f0337803eaff1fda99cf274ec44143257d36d2aa688c4542941c328302d04ff1aff04471214cf85c2e587bb2df17725784a51fde890d617760a890461736a885b0292991beff4fa88b7d946ab3e1673543d230eafebbe4488d4311996f27ed5e57e355f35705bc03969e10b81c3063b89f4985eb328621906caf853ca0348347f0337803eaff1fda99cf274ec44143257d36d2aa688c4542941c328302d04ff1aff04470310e392b7bfc261d9d4450166493780a504deddcc6b22b0c0f59941b6e8983c2592d74d6b734b6831cd72cb2971813a80c8eb30d48f2b1936168bc8afaadc7401b6a62cfdb824ebd6775569f045fc1f088839689943ab9bebe6beee6684e561211f595cdceeca42153099601ff147d071c1a2b0872c31fa7a494eef69cfc604000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013d832d5751f38d2361a891dac2847eb390a392ad3a680ce7b277e521a48e02e33b49c52a5fad048356d49bf9a0b056bf520be8edbcda73b5dbdfe93c28e6442f08ca65976458382e22a76042fb1f6a82ae686bb13d93837bc049ec2896a86ac902ef5a0c2ad4b0d970548d26d87d6353b221679190153c66cf05ee0c3bac42340933843c157921d307f024dce0e8d968a632b164c70ffcaaebde5010aa215e080502d6682c21d67fd90176c66ea5460f34074809187fe09acc244ab1f7a04e2237e5d479e7eef3c7ad6dd17bbb1cc6efd848dde8ec11bd3400e250c38e545f5514cdc59c6c2557cb7244f7dd9728b147150d554399b2c089a4eecbd7e6e08f940c9725d3b7a60b9432c3aca3bf6ba34692dbb9d4446c6a6a5571bc64396b3d9d162ee13c33b69bfff42a279db7db55e44c555f7ea1d182048305060448d3f80605c0dd532ae7b8295dfbde57ec930f63fd79c955453ea1e3715d81275959f3bb317986b64c95f04b5fc539f366ec24625d2752f76ed8a815c476e7ebe67fd02437d571d180ed1d3464cd1044e2d28e29cbcbc65de0f55a7fade0bb4ee42d9f8332d7d942f9ce7632f49b210eeed444205298e7f3f87b881127a0f6313c473fec39e2d897a1b21575783c367761c56a361f5fbe2b3fb1bbcffde0f8ee710c1c3f3a6505cf500be5d21da03dc1f5a913fa6e3af38901ddfbfafbddbd710ce3dee42f1b2b67b761ccba01383ba12e9eb6ccb33a70b24d26de4678b568d71f03a6253aab9682018a212897f017dcdfac5cc313a62d54b0d9f128de883aef62085ba90ae15642cfd907a81e9c4d655f43b5f9c99c08ce8ba4e3bbcb64d95e7a6fa0da0a1873919d5622947f1bcd7cb769fc6b53810939dcac7c29bfb593f434eda821078de98bd2ac0489b0128cdfb2f21b0f9f976b8ab4f6b5616e5f4889597b0fb12294ee7ebe73e073be321087cae9aa48f5e07cdf03cd5cd3044dbe181a82f00c2c94b57047a8110cfea361f2e078d8355ab6cb5644f361ec9d85d4f0898805580e94c838a485ce7b04a81e882d135b86715f7ed27f923cd5f7c4720d8e8224dc3c39010d0e5ca80b5acfc72edcc144b54c36b0b57c8aec130e9fd92e18e48d50380dcfb2df092211ef6efc72b6170aa6dacaff216443daa2933adb3b42c15c400626f0bf01e6d053270e307205a8ea9f887f3ace9421b6b1eca6aa51152b041a0cd1fd2355ace86f7d6450306e0a022dc607cd75100a659ee048bf893e449d9d3468489ae215cd5f5fa9a6da9697ec94e5f1e5541ce6e02c7814251a00bc3608245bdfa1041f78f109958e6aafebda3706f322417949591deef2be4cd8e8e9490890e102b7f312cbd513cc72e3375fa2ba010d2bfae0e07b392c9be8e0e9a05318cfb4f5013b62a06d2b9cec8ef3f8db366a1b7fa1c8db216b7a92658642bd4930fb6b51c9ce6a1d87fe201982b87ba35f2c4c101565a6807411aaf556f15b6031138301b2aeb237776d12d18bd9c6b039c97a2b5feb20b9bcbe0e3fccc9b25c1d83f680d7f38be6f24b0bea509471808de1d4820d071252ea4bca973daac3321ddb6d87dc323255a975c205f1773eb42a167f54cd1adc720eba18ba2fd1b10314e9d8f1edd4c0493b591abfd5d7c900b53b3e46faca612a81a7acb412096ed43bf0f75d81b24d8ce266094e30386b17ee055bac325443421b09ef1a8f9e75c43d1284a9a4a46c8aa5122c4719d6539985eb2eefd25e31cf7b68c4cac305c5223e8e8e32355d70c1d84c88a2fac660ce618db4e31f3d1debb0b1b66e8410d74606b1217095a59093685ea591242a9d21d90193fac197fe5aed4dd22a59614b083bd99a16efacfea03b5f61a42dcf2f9ce11920e978cf72552e0feef0cb1009b80cb1a32e6b39090ba241a25d524ba4d9a7a5e5247a6ca616bdd6d9d15fb7211d0c0152f9011a05c39e3c32f5ee31bcc2ba93b8717621e07610d31682c11b326c010ba34436c47d361a927f3819d850515dc5e6de9c9989a234c18435e1cb97531e87181643506ff74f917c55aa4dab4eade31eb8cca435d556208c97d526696101f73b5a77865b4759fa089d025b70c7e75ebbb2b28090b91d6dbf26908dbe7f0d0d5a7fda90c6d3ac56a5ce1f7a49629c63b9c846322a0ffb1ede0fa0a2ea2407be20a12a5f4baa852aa228ab93eedc4321c81a391906ffae06c6fd797e58a215bc770ad2b789c8c4496ea3ebfa5438089508f18b66c6fa3415134007211e691ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c692150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f398196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f61ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c692150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f398196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f6288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc73502405abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b32a541dc9aede8050ad6648812a33cfccec8163996bbfab69265fbcf2ef361c4e077596ab5d4f14c7435038a9742be3e6b737f77900011bd2975eecabf38cafdd1153c84f592e126fc3f1f0f20bbadd94f35f1eb7f65990d2549a7aba8284127f38fc1c0df7b9b2919072952602cbf7174ee45ebbee63633b443106eed2c1c2ec01270d2f56ecea3e1b2a75e90d93be05ba29bbd650f57dde8784b3a68dc781f7075dd1b117312a9d8a06c31011344d9a01dfa69bf89621b429bb8f33dbae0d86192e3ee660fd39226aee0bea6ad54ddb98f9abab4929986c135f5323816ea52108ea80bab1eb868323ca07cb55c73606bee844de917a21bfbfa6dc19489d7fda3cc3da9332bfc4c2de3e80fe3391c67d16d585354e9f5bb7a35c091c3573e31936138aba397e4b359850d5fb9c7b4480ac78da8f3e8a5266fa48e5c79b6275532d2178e1ae70947695e9f02849f81419f58ed31a9fe1a7cbf077ace14456939132de871e518f6b896a160fd7b607ebe63ddb125f6e11cddd754c1c823ba96c723cc3da9332bfc4c2de3e80fe3391c67d16d585354e9f5bb7a35c091c3573e31936138aba397e4b359850d5fb9c7b4480ac78da8f3e8a5266fa48e5c79b6275530c625bb64ab2b757e5284ac022d5876bd6a163865cca8c33d1906267b895b0c202e1a0ad09302e70affa09e470781c2aa53a461958dd93735097393e52bb0f591148c5f0078079278f0071002b6a0b381757985374deeda3f8434a2ca9b57c9a084b1ad09d4a31a25a8669bc766a6d0a8480f5c41c392cf52982a235b6e118eb000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013d9ba56a20ebf966144e9b57a8eb956f338749c55b81838fe3c6802201fb6f84319158984f800818b8dc621c8b6de6de564390e0af79033ed30d33eac409a05617c38fbecad253a41da5e0b7b3224a0e914897fe0bc9e7206484766ef9597a0005c43187dd83b9ff4c5dc0e43a1194b52bb768b0d9aa89c5796f5a7ee99d0c6429d046df41a1d723923b344a4a33e191089ac7549fc9259c2f0e1cad0c0144070d1e7f2e0415b0b0911dd4655390bcddde29a06493bd2fb6469895c6eace7094108d2c3c7416e9333963126d143e609bdac300b17b1f12cf538520ba8c89f2ba3bc607a23e56cfc0fc6ef3d645576e54616d56f8a6e7c2a8a0398afc0847f9d616068f3cbca5c44bf0fd38bc6b658c6024ec821bc803bfe980b5bac296956152340bad9806b42d9054d88184b02dea8d92260c8f6dd23deb76bd0eaf3cc3db6a1489077f79d9a39e61e3c852835137caaf01d68fdf2224c669e41d2153bc8fa83b6046b76399e360c7b370cb5b82da8e7d512977baf726151c187588ae1dbcae28d356df4b6ae98e81752984502997165cd2c4062bcdc259615a016c3a93345220d9d89cf8e9a7b1e093ac45f8443d653aa5f84996a1ccc178471a53b7182a862346199401f400fa598fc60bdd8fa464a6459191b1112f0f865d39d1dcbf450529eb3df50e2d9d1483c04b7073b2f0663c54b40786024508a7a4e3f0576f4ab334f332497af673c656398346b0b4b53f7c467e0d1de7fe145dba6f798e50f04911acb02e546ef6ae608ac6da5d124fe9dfcdf9ea17d63cde2f35db46e1422ce93c0d8428cb9f6adcac3a829c14f461ab04fb9401bbac5e1490a845cdda35d5cd0c982502ebc94445d22b726c61eaf8d6a57e991506dab5db04c7d060666c487335d347b2fe6a7af1aef8b9facd2531b0c68365e380504133bb03f5599580a7ad3a15b070a6fae36f514a1e57a78ec403f7c14fbdb1fd51c788ecbc65d7adc64f1063a867e20a9c9bc3f53506d2cc6867874cba4ee9bcddc16a05f3b1aab2eecd0e6a9a9aeb645a509e5e96639ffe121a8280c2107b72125adba0453601d4d2511414f57c0b834872381154d15ed479b91a24d78f742cf92339ec426f33960d2024970fb294195240b0e274c811f3e63529ac015a78c7f4ba59ecd8a6a2efd2af2a40465f19008b8918645b814279d1c88f1b179b09dccf7631d3c076fafd68a82cfc8cccb748b78afccf881a0879ed4368411ce3b8d60dc4f0ce7da72df3194011c6cc3b12b60d746ad0cd3fff60dca9d469eae207902a5207be011af4ee0fce34bae4db68539e20e4416218f9855bf2a9aa6fab403a0e371616b30eb7f7111f0187cc4b674c2c51718f2687906cd308866268a419f79c23436e57b98f41a2cf37cfc028a170389a4f418596f3b77189c89f93ce8bdebf1619b5616afae1c3bd132db7816998f30f4b766b0dc7608c4992222460d99b43f5b02119af9057319538f63df414640beec935f678c8e800bf2c7a01d31e82e9193f0794d8c8064ceb3073c5ac8b33937f30a990fb3dc3119c62a373d7415eda72fb00400a8c3006b53488be8c296b67d30c025026adfbf58f553fec767d500edc3324a88e13288114216ee5170bcb78e2f86a3b4a0fa17a44e369fa1df9c43cdc0153e6d0bb02ce4017855decc6858f4763210a0161158aca7b7ee605ea1024f8d18d40b261e3c18133e1618f64beb5a16cb0db50d737ce2bac26238ca4bbbaddda3902759bfd6c8b1b96f4391a0d6ea97cc2d9a112c143984901e6f34082bbc06b1af3a312027952340e57b36eed5f486af653e8410590ae107d3b7668737e8039e448a53b5b79e10095f991ded6909625a967c5455b335108ec1097dcebcdb5d209aeeb4c8192eb3f29310ab81f56a0f65855ba9f17a1b41b22c0976e343921ece09b9e8aed3e402d8728138571c687e8d0c5fe7abf8a63d04e6f0cdfdbee4e4cba628f505e4b5d102b8c8f5fcb744b41e0ab029f96813b0251f5cff4db33fb86bacf704d42875c0ce8f89d097f3bdbcdeb80364cba43b4b771f07a3b83bba6c6be688fb1c5b55f16a1df07e5433bd567f382202d8fda03127403a4dedfcb9f42dfa2bdee9118e8058025a18a0ff3721199aa85c26ca5116243584a34e62f173e86d46bd3e0ef0429e2292e975bac6f85e17094ea27ee591f99d85e431b24e0ad5f84bf90fe1f7b058ca254ff9c5b0bdff70b8eea25a96d40d3f082bc8013ea1595777187c12abc1b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac24fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a60215507121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a7235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec21ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f30c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c80f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f046391b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac24fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a60215507121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a7235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec21ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f30c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c80f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f04639132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c83614840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d31263feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d0b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c342bed61af12a068269a5db3057451efde070145726d01d52f5bc67a7ec63d333d5eafbc96ee19566bf0f54485b4c58d8048d16c5850aafd92e5e7db1c530647232e8c181273ab6072cf1e9c8a11b654c69644830c2f5f9948f98b2f5eb063160d8de0c8564e8b3678fdc6ac135c62295b66f230827010b96ebe77093f50cd8b240649b5bb4f4d871d4b6896d7e024258a7958f57c2ed8c48ee412ce7fcb8e220d3e0f4f64e777b3528529c553f8ab0fec08b3cede187ffa0ec88648ba611172230086247a469bcb4270f361e752adaddcad693d24550e9e2dd444b25ffba12e366fd69bf31349f99c35c37b1c54b8ec1ae6392344ecda412b8bb3f63a32c1752ce6bf9402cd9eea8f5df647a4c71b624ad41ddaffb8f877d56e0dc2d6eca15020055e73c43eec6fb6affbfc204f597fdd2137a2597633cb71d8be23559473a0230086247a469bcb4270f361e752adaddcad693d24550e9e2dd444b25ffba12e366fd69bf31349f99c35c37b1c54b8ec1ae6392344ecda412b8bb3f63a32c17507b84ef2185dc20c88214b5382af44e5fbf1d259af3cbb7957c71a8caedf69af2ea5f052917a6daa99c6a0e6a946016449ffae0bda0c1278d5e5d6b2b63b693e09bdf445c2064d1b051a48e22cc01ed0e8b9cb8f277f5679dd28c73e6290594e1e2ae81d2dd29c5aaf58f64f8a5e3ef676fa559019ed3213e06b767c9da3bd17000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010fbdb94e47d80b00c39594e72690003494eda25bbf1b259e297c3742706923dd3ec7a54e87f6d50568da743b2c4630bd8d37bf500e872e4e1c275a79e69b89ec386197dcb5abdc2f0a67527782f03fdc53062b18c35cb4182378c1c127a89cd22d237a3a12b3630a0336dda2b8c52777ecaab5434fc58c004db30e9e613a09ef26f930d6f22fb7db9e570a574b2d0692afdd65666435859664f9c69f64a76b933d44b92237cdca4feb15aed4c26dca4f642f3e3a78ffaa9752a970472f77bfc304523907e3f052ae73478779ca0705438651f4406c1a62934b321e6e5abbb5e139c82d98b13a960dca7dbafd9506a4acb4d75a12f08966e24eac4de237593159132399a54ef4f4b95d86f91e3290b590b019198e9a1d7042c78e67af4619c5033cdf702839ef497009c404fe00b1b04536e527cb8df5a58b7c783afba0fb94a208a4fd8febcb74e1fca4cf006fc2199b6e9a578630861995b2b608f94fa81a793938127d1c0de81a774cd0a8086038fd4d9aff344a0bceacc2bafc8abe60cf811df9ba35c665b5624f17d8544a1b3dd57055dc290c4d6ece429dd8df0367a4f22a621f5e27783733d3e79a40d1000c7bc07387b437a126f627d5b9b7e64f3e0434b3e8a7b30a9d0f9aa8283af50e04b0dbaf2c2ff1c07bc026cad685fd666f4e16d5ecad89e6677f22dc4e94ca3b59280d630f5e0929d84e1f91fe69a698effc03be131f420526b5270946e40e0990c45b3d90c1a2a3fbd56b5d111135097ed037a95455f20157a377dd68b0f4225596bafb3e9104566ba819ab45e308e0c436282c90b1572d2c094c013d649814f46de72a76a306c4e1a0fe161dfbd5aec7223319f63243bc2280ef8c4636f0b535a2a9b1197a7158c173ee9bbe309e620668330771db22d8fbcadd9cefa3f70d4d61c40eb1869c5c56252ce3628f5dca086d02f413d9cfcb502f6f0a04ad70c6f466e3f3adc26eef29721855baa0bb486ba808ad0bb61c2db6e2d7b839d14b4fe346b53146b82dcdaef35390ae1f4d230fc213b4d4bb5d26920d6554dc8113cb30f6d80c5747a636488849db49368e30e3191a2ff394c241edf20eb016b8c51544f772c8d66d0e556983a2e2c40d8dc91f9a0de00ed42a34d2566cbc8a2215cb6c40f6d467bf10f12030999eab6167dd65653bd1dac68d0e555569e04f6f57d2b28e3574b944b46e892f19d50701f00a2c2d3990b0e60200f8c3bd9e02270df07e51bc4bcb2dd829ef77bb57c6ecc116455b1343ad3ad1f6ce72289a3f0cf1c19f3c08e99364788734b2b53346116ad0a0c7085824fa21447daeaa45cc7dca8fb70877bfc237686ec6c035b4c753ef1c45f428ca366175053001a2314d4669fd7c12b1076c99ab774b4a37104b7a05cb007e3490aab09acb3e0b82fa5c37195d33455240b2528d86835acac8ad29d7b0ff54104004715efb9d4981396663691f54e52da3d70afa1ddef3b11171d00f54bf8f18d8edd49a19b99b8d9a6db2bdc15f25241d9b2411caf4e7933578b9e4aaac43114b3c64383aebe32819127ef77682d2ceab66cd4261d1d868b7f94b550fdaf80d706dbc76175de04bbbb2495700b40b1e20f1a3b208a63cac303e1d8c136c6839a88a2023ca96a66d426ff71a60f5cda39d09e0e804aae9f746ae8c64e8616432b843c2b588742e3a7e22a5977930fa8958828f9d759676baa89d68c767f59c2ae506a9720c8de1491c119a398ead306c2ee68de1e617736abc83ea6062488b0bbfa7442859c2be019e1990a62b34054eb8204a700d6235f03c87f4b6d0d2ad38a91926e49caa10649300d14d1d6769f2e3943357a5e261f822fbcf78de897f02b2aa1ae57ae62fe1b96dee6ebb8fd6f5398fc9486a3fe942dbbb31847f285c2429350ab905a0ca7874231188eba1c63841f1a163b1bc8ca536dbb18e579ad40b27fc6af819ddfc35c520bf769e4e2a886de807fa3dead2338c6fd39790cfc53a1996abd5c4243e7a84d388334f33c304d85959e66675cd1ae9fabd8bae11f72ee18f8f4cbb7655c3a0d398c5940dd681448dedcc5661fe8424d8e59f5edd1a1bd6ec904b6203a9d754458c81ea5fc424c36bc1134825356be592bcc92145762b429b5002228d9f67112ec9adeec6b7b5f468b9edd1408cd2bf3ebc5a5c493b30bf77b4fcd6ea8270bf7e5582ccf9d6795128519d594c4e3bb972409576517c1e294ffe5baf63aa7558ff0dc158faf7a69ee6d7a219a9dc4e72f8e2cbb469d72042ad6d44b85d8c2e6cf1da18bbb0083196e509bf2b27e7fb20497e0a4cbfab1fbd5292bb47a273d1930e25e7444ff7f0afb3f24a21d1339e0ce76ef5b34056214d63225799d3bce820b9427baa7028b3654738a93dd550b5470d9c337fbe551eb29cdda8662c4317df46bd84558fd76ee151c3600f23cae3e62350cc8041ac2682efabb60122b088a39e4c6a5430cb3c6d32233b9b385c5808e233017eb7a7197d105449fedd4f775c61b395abcf34e5d966d8cdb1c0bf41244eb9fe81485a008eae5a8e05ad72ab32177e13a4f3f7c74e2fbc0e212e7aeca4d838077996403f7151a571fa528d54cde881ec5b0c085af8693ffb2bcaa0ac8858b4f88669c12042ad6d44b85d8c2e6cf1da18bbb0083196e509bf2b27e7fb20497e0a4cbfab1fbd5292bb47a273d1930e25e7444ff7f0afb3f24a21d1339e0ce76ef5b34056214d63225799d3bce820b9427baa7028b3654738a93dd550b5470d9c337fbe551eb29cdda8662c4317df46bd84558fd76ee151c3600f23cae3e62350cc8041ac2682efabb60122b088a39e4c6a5430cb3c6d32233b9b385c5808e233017eb7a7197d105449fedd4f775c61b395abcf34e5d966d8cdb1c0bf41244eb9fe81485a008eae5a8e05ad72ab32177e13a4f3f7c74e2fbc0e212e7aeca4d838077996403f7151a571fa528d54cde881ec5b0c085af8693ffb2bcaa0ac8858b4f88669c11dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb3ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba2e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b3333a6c18bf778e668d61325e69e25d3175cee5aaec8d1f3ab9c818b7019ff2af38225810aa0ced9279f11d7bb6bd5fdb922d34fcb89ee3ac44c8fa2bd5f655bb1f13ecf097788ed6fe452dff23942fdd3aebe7d16e25130c9d72d7314d671511286dc7c63ba70a6f3ad2c69ff9b9934f66601e89f4eb87d44b977e5f7d9dc8451c70686c6ccf34410eeff581bdaac669356723247562a74c0d699d751c4452860d81d8e6f70b78783550c923d3f6e1e2e57f77b631c25142f146fe065f2b794c225eb35e5e6699b01693ff2025239088d5968f6bb9195fd4230a1040425b06e116757cbde9eb9f5f59c6bb6da6ff3d7d9e8cd24ddc94847971d4facf87ee4a1c2336bff60430d8f218dc08b92f81d10147de057f17abe549424dcb46d17a65b20672a3fef6b96f4283b5bdf1bf29328392c5f009dc8244c23714beeeeb608f54225eb35e5e6699b01693ff2025239088d5968f6bb9195fd4230a1040425b06e116757cbde9eb9f5f59c6bb6da6ff3d7d9e8cd24ddc94847971d4facf87ee4a1c3fa55a619d63d535c420e506d77f602bd8fdc2fea70d92ec808b1d33d3d955d304b98db9612503e92443ca7cf18ce40d2933312886b225ff2f4405a7ebd2f86820b6503a8bc3e9c20db16cc2ef7b7e2fb237deb7411e8df9523508d8144d455c0f055c09dc496b55e205929afa3083161367fe1f7f333ba229d0cb0c82f55147000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013fe09b2a7b9cbb636c3e1e8036bbf71c286bed82502c6a779d39c46e3e4398cd28e487b81ef2aa59cb55cb93375ecf3499cc12964e11847917e10cfa34b479e72481258db8323dfef2959a14f20a698ea5be08659071e32286dc1dbf76d2d7a60df177d352543d1e324da0b7b4debcdf1e8ca8c2fc2cf8c6006a13d9d6c9e60805aa9065091ce82966ebafdf61f58bd8ed6511ba7aa75d81c10cc225f7a5099f1c36fbfb00f2bf5b1963d92c31c94bc55f0f720ed5e9cbfb5b4431e601a82c5e0aa7ce671053eaac33001ce7bd4c77f27defba86cc0840215dc44ffe1354912a18973e4aa85b9efedfc1102516ec70a20ad50af95f87a69530993b537c067de01a92ce4798baa574c7bfbfea7bde8024dbca94fb85a08bf6ae99f566788d052c009032154aecbbb19e8444e316492893f5a9e6f773ff01c5dc73895e95f0d20702ea221a55e8a1784f03d48e3ca79ff4b6fa4287db15ae1623a025c31a1eb35509f4abb59da884fff9d09609b14ca72a5ed0808b28c02ce5f304d41099f2a7b823636db5703ab1dcd748411083287be900a02762e8a354eebe282467005dd82b3952b411e8671574f9c096b7b5ffa147b5d82e146d0d57dd187822c5c5fbfed70f1cddecf1d23ee920ee629c00b2a8aa4cc1d80284792274d80502a6af0415c53f76f15c754d0d00e9acf1d39d79d7c344c6f5eb92fe2ea044cdbc4b45d419ad3175a9a970dcf98610ce032e7b7501452fcce482eaa6ae8969d623a8b4a15bb7281efe5ce357c84999a9f5f22925e0cdb10ee12e64e89a8ee051561dbc90d2d6032282ae9aa6f2e9164b5fb86258f993a747b5a78c0a12caf7695e913b90219802468ec9b7750a9e304508aeadf3d15101a84852018d1a89b13ed20211db92e937b11f30ceb1914247799f1649b3ae04cf50aae2222eb355139d9a25515cddcf2fb47ac77571664eda291aa642dd392ccb29f9cd60e20cae42415e11f381c479367703b72014e7ae6c3407a2ea73ddbc35ace7280bf425cb18f23b15162b3fab1bc7ced06989bce94fb771a15690467dff88a1c122afd6c0b5d4177764039bd415cc6823cf0202eed28c577f713b6a4b2d6ffa5a25ef82ea7f0f0380cc98406a29e1c6ca3f676f5853b447695a956c6b6136e9319d2ebc7a8250001f8c159dc714c83453c2c8af778ce5a8d649d54bee481a83717f0f1cb012e024d947c4bf7524d1fafce0af398adceb4505c1268e4d1353fde9ba983f475f71073a032914be3f4a858bf6d93babe8a3996c77519dfe1b929812c0993026c55022b328481eb620190a77ce32b6a3be2e67b2441ccf39512495edb76fe94e5ef543df96aa79b73aba9d477dd4ef8da37dbf1613ea2be99c1338f759ec5d555a9f10afe65a12553dfab46ec40f69d02008288ec1be314a8bd60712436772b681cb8324ae8b29ec14391d672710359c0b8db0526198bbb746440139ea742bba1777bef0c637e5f738002451223bb3342b32cbbcb2862ed80b5fa89a466eeb164acb65c76f1f17c3246e8dd73a882666e8e16f822ede3aec72b050869e533696cab035ed85c1f7982b5b560714bb188a6cc63021b97a1280b5c05574bfa49fbeacdc0c83c0b5d5050841399e3fd3c4bbdb2f1e11cf304f6f4d1bc6d0e4fde150080ff7f396a79b9c311c50506b15dfb172a7fa4a4fee7f014bf4b5dcd7e16e74770161919a7d305615afa325ba6e002e14b3498549ce998a04223f1d27bd1bcc5783bf95401e8f86096a43f355d82d7614ce0e6df2d7972fe083a836361f96dc16c3a7fdadb929952b13ecd2393dce0b1fb57aa0c82ca6b16a01525444c9b6a20fd858db9f5575260d46187b1d95d413da017309b61eb6854a68b8bc86affd35c69f5d3ba00965963de82ffc1ec28af40f5dbb578c2500f23856efd6d2077174ceb49faf17ac1cf904e33ecf51fdecf36a3673cae0569e9b5e8ac9ddf37a71d369022b97bd692cfc0a13b05400945176bdd81cdbee19f8ca9817b3331fa408b1b82b59ae68a7f1421cccd40ca515de17f60941b8499a2d000700aa6a8d79874fb3202486c8ef790c12c08f19a8e5ce10f8a71c512a34accb2ebfdd7486eacf31da855a3a28b82cd01974a46bf035a081ac401b7bc0d438c138ab0b42109f065a2b65b4ae322200471721d9b8ddf81f743bf530c3c92566f6d06b5c43197cbad2f84e05b9421d132332dc171ad2023254abb71daf1e483983d3743c39be9a15bd0cb17f40bb82bdc13c6bc7584f79c77bf2e7abde09e7eaf2620f8aec15c3f2fc398c882675d2fca6039438a7b08638840d185421f618150dc0370e0ff389061f5fa0a8c68a2d035b2e1ae4b98d60e56bbe865b56318796bb613352ac479fda7ebb09e50c4d1eef3a11e51b46729f1a944179a4a9ce786944c113464fc1ad1e9cde234be0b2e110c72686779fc2e47b1ab89fc8aef7a5f1a87f2cd2694a385926dba9e676819aac1f197988603d1b84e547603751085a0e57a319c692bf149ff4bd834a767e6553e200a0561ece7667859b1eeb6ad63db84a150c511a5732d26f7ec9ed8988055c983f5fa9e13189987a64e1149529c247b60d3a47e1b21a26ac1a63436377faa3693c6bc7584f79c77bf2e7abde09e7eaf2620f8aec15c3f2fc398c882675d2fca6039438a7b08638840d185421f618150dc0370e0ff389061f5fa0a8c68a2d035b2e1ae4b98d60e56bbe865b56318796bb613352ac479fda7ebb09e50c4d1eef3a11e51b46729f1a944179a4a9ce786944c113464fc1ad1e9cde234be0b2e110c72686779fc2e47b1ab89fc8aef7a5f1a87f2cd2694a385926dba9e676819aac1f197988603d1b84e547603751085a0e57a319c692bf149ff4bd834a767e6553e200a0561ece7667859b1eeb6ad63db84a150c511a5732d26f7ec9ed8988055c983f5fa9e13189987a64e1149529c247b60d3a47e1b21a26ac1a63436377faa36911d68caa2862c78883eaee78094d9fb69b4c1aed67ae908a1a76c75ec489012536bc066bad4f192cbdf19e4a06169f22f64d1f342a06c9e1b7b20cb69f53d579376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec2ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20110e76f7b02ece9c3982ecb3f70fe1da83530d64b42225be0ca1b006d5dbe60e08a16f39db930aa46c04d98a0ed3505cce76287f52f1f5bd01502952c6adb8cf1a87ef68d7e5bb567fac868b158eee0225989799cc4336bf346c10bf5b624af20649f14fe91b305e9d3d81fd359391ee448e6af68430ee284c7dbeee81bd26c909f05442c5b704f241fd71377c641d2be4ff2d19d1a65d63a743118b73a8f2233a613834ed46c0f20fbb2de129cd6a2a0a80d21a19174d504d9a97fc5a8b6e591b7eb1b03b2495bedad51ec49fb3026e615d58d5d5589a3e786dc083b44e142e3f881a04691b3abed6a4ee7d6e267383a04b7313dff32acaa8364ed8f236493336ba16c4e10a0c9299f685933c30e7beb32a3a39f602d028ee716a92ea0d9df21a73ff6493aa3bea38ffa5a6af8a277cb45835fea8173b10f471d87a22cbbf6a1b7eb1b03b2495bedad51ec49fb3026e615d58d5d5589a3e786dc083b44e142e3f881a04691b3abed6a4ee7d6e267383a04b7313dff32acaa8364ed8f236493329f6a9800d003070cdcda76110aaf9aa7d36e81b2f992f2fbc193b97964147a82949cd58fedd1464592a82c0a259555dbdf0ff8d00b7d2f85e6c24fc2514f30e3d0fce52e8d5d063f3df4a42dc12ac3f72d87fa110c46427e42a8914083973c22fe08eb7aec94db1d8a0a61cdcd4d5001a189deb26a0b97b444cb0d94fa665d1000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011e5e5ca3d6d68cc37d95be7f9ad216d6f9dfa3386728f9f6e61c9314cd2a739a10710b41d3177ebea26696f874b807b7f63c97799b02175c3278e6a28729ae492035414a5b1408f785a513a4101d25de8d35a1cf91967f570b494cf548b712cc38b756ec6d7a07c3c9abc26c0187e912fda4ff8ab1b94bd2928b170854989368391b63e043f55a9e4dfa32dceacfd29ec1a46a74a5c060691cc4c916132d21590272298b3d7dbeaa10e0aa6b4e0c9a1df97f9874e6f99dc182bc4b035c6c0a3002a71eb0e5d213893cebb782bc7ff542bf9f17e4d8c339426eadc4e62e6dbaa8351698df5151ba7a4f92aab7db805f5e08ae55ce9f173d1647da725ef41a5b3409212357deeea463d84634616b2e455c701c277b733ebb5f06c076071cbbfc7c347d387f0dc314078def1c5ceaa809a19bb56870bb9c06f60f0eaa644d8b4b352e522d2d3e90bda2d91629cadb8fdf5d3de408a79a5646bbbf4cb395474e13e619667bbe394a278e2c476d2fdcd51133050c72b0195114798cd82972a952603f19c0421d72a90022a4ec52028dc8a65549639c675dd5bc013b46a1ebd1ef7e5909b11ffa9af7f5937ae0fbe962fdc6b87c1522efb571473adeda64cf8c4728db1e44c67e92d5adef8080670ac5417285b47ce544f191f8721149c48ce1ce3fcc217d296dcb681bb8bef0dc1fea3be8336d6c2296c26b242fbb545ffb6c76b68106f85f66e3129b1925c803b3440dc51a33647a103d52647c9697712be32aa2431be458d64fe7a417dd51e1e4eb29a5b13005a05546dcabc2225384e6d5410e430adbcbe0d5fadc3e29fc66f172688120b8881f108dbaaacd6c0d42feab8cc73f2168de2a48c3ca413954d243b44c3ceb36bf9932ea6f618ff50b7b2a45f035e121c2994e7d0db799844dee192bfe6c668efebb6b2b9c07ad45de1363eff5f1f11ded5e75ad3d41adee65fa47d01cda02b28d00b904e28dc84b0b68d2a5e3b7d816b1cfe0e18eb9972f25086d456b4b4979b594e0fd1954453bd7d1bf6798f0152492fbd0b99f1bb08c37feb6cd2461d5765b957d7a71ca61101dd0ab63859c361b06837f9c614ecd1ce30f5ea61ec3e8ea6f7abe63e266f32dd9ebdf9ce22f070b3c8dc9f2c8aefa5e1993d83b0751869846a068e389cc200f01f212ffe83bd4182d31e0993f65ab6232d5e9a5d46b4f943f7c7eb4ba5622559a3a23962a9add3b9912c3395ae8e1e194100b3ee4bd920fe43c65bf3331eef50a8fb53682682335a804fc2242d1fd07eb65b582927e8d4f4621a6359b04a9b7e400d6bee5044a275455592b86188c5dd8a8dcfd52f0e1234ec03d4cdd60cb5b4865bfec14ca1114bec47a8b355a78fe65fe9db9204c000e164111f01eda8be6f8f86ceaa380d017c8d4ee077f90a817617fa9a674f2ac640d03bd9cd8f5e0f6d645f756ee4e6400753b64d54528bee349d1a4eceb23f5002c8f12ebe652c81fa4823a7c7b766e07ba688a119fd96407f15bc478ca0ae4a50fbfa38bd6db9a2b67b1239e1e94902d40cd354048941ae0095b66e149d1241b3a99d6ae68e5d677b07571fb530bec0bc8332e37c8a1081d102be5fd16cb94cd41f80d36ad85bf28e75569f81300973569060a0c2d0a692932e24132ddcae677e5ecdbf472f2762e49f9966aa3efcd18ac9a7dbec42f785012585af2bd75836b68667ec4235fe1a57562fe205ee9db33f384163236e52a6fa73ee6425215d81bf12fb4c045ed696ed4c1d9ac1480143ea88ff9f4bf08727c90c6edaeed8c9301d3215240eb267ff1146f86ed917d1a2948471aa0c8e8ec27081d23afb4e1f554204cfe775d38c9bf33332e48c1d0302a966bc3537ae3aaa704887931bcd0b19022b2939a3c59b460ff50ebc55f4b072d4a0c59a5d418672e1ff69198450545f11210f4c39be3993587f81c59aad6d3053042527de7bbfc273bcad22e7692248b6a7896638194e277c29416a3c8d1fa2b9156d0883e2e597576460c0fa250ecb176f934eb8f97229e58da9feec87b080e2f92eeba6f16a3dc63818b7f24db8de3dd01053d37a70fd28fc751cda945051c2fa4e08f20e99f88d061ba12dd46ac60bb78bb76eb1d29acf11dcd6c12c7de027f069b45abae2527025d0be42b7f9ba7d4cbd85192ebdb8e4e558c9dee7f9132bc44dd584c65c32ad6554ec87b84d6f83c3f4f908fa793f680e3ebdfdd79fc095f58e683b963a33e36c98625e01739c0cf459d0b77770438d1b6860959ae253b36e87e22293239da1febd7ddc2d207efc9824ee6248300ef3b4a2b3c7b480104c91781ddd6cdc625e01428223d2df8327d16ad2328761aa9f1e6c1c384b80028128a76aacdfb21429f9b3754ce1a2725d5279a5982aa964773af242e68680117ed7589553204debd6064c8ab31e5d8fc717161afca4e8551b981c8d1979800085cb4515605e7a64d1e0814a80682c35655fb0fa3a6699c99bad8ede80a080237a34baea9fa1859b2e1f7eb57f97d3ccbf09dec65a68f7eff7257ff17f5f7ff29cf8596ae1d863f8196286748208dd0afade74e3240100f00a63ca58832280a16307a6951e279c07e69d798b7df722f7298b1add70ce90c9886f44777cdd7f73b36e87e22293239da1febd7ddc2d207efc9824ee6248300ef3b4a2b3c7b480104c91781ddd6cdc625e01428223d2df8327d16ad2328761aa9f1e6c1c384b80028128a76aacdfb21429f9b3754ce1a2725d5279a5982aa964773af242e68680117ed7589553204debd6064c8ab31e5d8fc717161afca4e8551b981c8d1979800085cb4515605e7a64d1e0814a80682c35655fb0fa3a6699c99bad8ede80a080237a34baea9fa1859b2e1f7eb57f97d3ccbf09dec65a68f7eff7257ff17f5f7ff29cf8596ae1d863f8196286748208dd0afade74e3240100f00a63ca58832280a16307a6951e279c07e69d798b7df722f7298b1add70ce90c9886f44777cdd7f73fa261b1844f304c485490d5e999b2633afba4d7b5b76ec065c640ecb11d4f893335039be7eedfac2e3ac623e673589a8852baecd7723f5e37deadf71fb908e205abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b3288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc7350242b34f3b5c32fec58d1fde9006f2ca9ad4ee7bcedcbc67bf20323b940d6e4f9c4085fc63c2bc758e4cdebe5491ef1d312b8c5202a31dea6a908f8fe3ff7ae185f2b61aed5c571148a7ac564096d53c93c7f8b79906ed7509ee9ee34198ba18a5229fe10990c4fe0d8d457b75f10897c8ffd38320b2558a9e93d2329bfaec1cdcb26d1c1199f02c6dd9511f415952ab224894ced50c02360af85cdddc97e915aef37157f454e14797cdc35f834aa38c9f9635e541d77d2d75bd98654d3b7628036333c256ccd403b3d21c17f01cc6e398325260683c1a75838a8b30c828a8c1cea39ec7545c681b4ca67af2a046384bb7f8f82b129d1bc618951c62fd7249d8ab03ab1bc182a8f50046511b7ab409a1d69dc5dfdfcc1a8740b4011f92e7e18ccc72440930f7560351b151572858db88b4c59bd7bc7342f13d6def8bbdd13d3a6fd333c256ccd403b3d21c17f01cc6e398325260683c1a75838a8b30c828a8c1cea39ec7545c681b4ca67af2a046384bb7f8f82b129d1bc618951c62fd7249d8ab03da25df0442be8b3b878f477fe003148b647cc696260b5bf4f48d490dcfafca40ee2e24ae7af46019b015fa6a7fccdf90c0cc098957ae925d96f07ccdf661252191678764b6e33b0806843555161cad4caa518cba775e1b2013942e7e3ac3e63270381b6cf64404272fbdf12e2b9b12cdd15b85244bde6b29a6e2009a747e2b5000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010d1d003f32b0328e66cd74f1227438545fc219bc2a122603998a572a1d2e40531a4357eb921ab79667ab8c16ab48dcea82a3cbde07b417ffba57b5d5522c9331337bba61307c48821f3c40efd004ed4bde2007a52541fe9f74548fd9f2fda8e4333be876a397d00a7e7f739886bbd30c5cb6a4a7f7b793778690cf271b1dc0ec292d18346086432f85cbf906f769f61a7657bb68e57641a600d320a4e94037160e75f18209edfeef73d94fd2fccdae45a306ca1654e7c17a1842438d61becbd215d69d9d3e242b76e4391c2a414e84106dcff26ff4f0ff5a590a76de01197d7b1956357c1f3e6143f4e3d37de18e32712f32439770e5087435b11d3a1a7777c43e42f620a5fb98afdb43eab4d1a54e80d92f32ef0afffa53255c925521a3d158039f855a8434bede418526c49d85abea4ac9d8a01ddbfc7708d08ae7893fa60e2ec8f92cf08accc2367d525cc348e11cb695f24539cb6135e5f9a2481ef0890910026f41252233e1f13ffae6f356cdb343c28bae0315e8a19b1d6add61e7c0db39d2d866797ed09d18c6e387b6a6f360af643d9e818372eebb3e26eaae9ed6762e628ede598c6bdea2ade0bfb075eab3aadebde63b429fa005ded2adbc909c933210afaa6b3c4ab81a5ffbca49932223dfc54b1ed16d34ba45e89832cbd6d4b1377b461507691af8804d04bfd685a2d1c03ca32a01921a199acbd5c2483d774d1a72a524e8dc8c653047a917ff120f325d67cb79566aab33a21f6a0e23d932f827312cd5593e47f3f248ce578dd5388f7b853c27e3ad978468292dbd3eac15d9171870e189c9f8ebb6c30e5d3b010bc9f838b17a78d1508f910d298a06b3b75b1ee2192070da2ab9a7833741c9fde9edf1666b41a2d359b42a0cdb05f27332110f4aa9804cacfa7e5cb011cf1efcd2d32049406786953d0a881b5f2b169d8c0d2104848414e701638c8f7b57bed6996ec94e8443c0a8663a370e0eff4ea8b9a00577a9d2f24cdd4a2c58011d109623ae4e93817c0ff980096c2d5a39d578c5dd136a81abcbf51d10a5ea44821ccb7c89ac1cc3d788e791d270c527addf5139bc311c68133bcc0aaf12d9d9fe779376196aee8a797328a9d008701141e79eddb53bd626a48cb8bc5d9be59a750fc7fbf0f4983d7fe0fb6a55a30741d6a414c5742c15b6f134eee641fbd923bd1aaea6d1521be34531be6a960560267a593d6110156a3dfc665e576ab1784615870192a14a7fedaca0a927d7e5eb14a0c135d25a1c2318fba516e267c5fe6677595144c260ff2d4c00abd030d3011ec26e20391b21af7571dc2423ecee31f1d85df3c7489c8631134619621acdda029ce32b36991e02dc0c5a4d0c6718de0f9ba8c64df818a84ffa9c5b4865176200f827b4129116ea535f05c9898473adf5152d4c602de71b93d8ced8a31ce26e15e600dcac923d04100da26039d18722fd89181b25a7d563292cbef6ee790f732b27d941d8d7125d27697515563dc26681e7cf738d40fd011d02a9ec276ac1fcb4d92d580ed33d4edf7a57e9c475d27b00b8012a24cbfe65c7c60bb2495a903f88a9115122941192c9a7a6d376c3d8b49afa7cbf1463ae25ad23045557cd65cb19987ef1467e0bdcb09b1535ee9fd97ebc72d635d6543afcd591fba260eada976cc6285151a12f79f4c065f72b9432b95dad8a7f957270687135522751572b73b71687325627017d33c805104954d52d30569b012ed17b42737fc6d83bed8ba350ca54c205ed3ebb39ac2c99f78a170d7c98e0bf94bfa35a031f32d611fe453ead628d3409933ecfb0982159cb32fc540195ed116f5adb4359a1fc6659ace19cf20566eb9a412028b229c566919bcb1f8f32f6d6b53d4e60964cc94f59c5dbc99c94ae99ece5194d3cc41e76b81a7eacff222d314718bd5e2a5bccaf1ca0425c106ceb0af836194d3cc41e76b81a7eacff222d314718bd5e2a5bccaf1ca0425c106ceb0af8361336cb3c1f89c18a0ecad5a7d8f4884cec7f9da4fd1f60bae1772e33664b9e1e39977aa471cb55fbe73796178beea2cc175f1ef1707788ed7112e35e1e8464931139aeea0b74266bc7b4c686ee7e6b1899a72bc880f8e847e02ee51f28fb678e13caeba64198c7fab5ae87ef6c6628466d77dc9b502500bcf08451cf3efd18932d6ac108893cf4bb445b3cc0aa391511bf10f50fa3f375f9e6ad65a3201a80273a62578fcdde45b6cafc9ee57edc6b1a4fedd29f15e083c8740d38f7d52f621335eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5600a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa10da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c8525044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b61584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff772a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a35eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5600a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa10da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c8525044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b61584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff772a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a26c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa13319a2a83a6dd65b246c9f7d539b67b09c3b0afe9bcc31f641e4746e726732ac352254da5cad22b2bb31a255d43899f5be174c33d783688ffa31918b2d0e604e0e21a3242b6971d3fe4ccb9ef696b9135da7bcf4fca2d262a5eaa074516d97dc054d2413280ec17c6620f5d9331f6279010efdd8b39bd72e8d5068ef8a9e85021249a9fbefe0ae6d10083758728c436f632e70c3dee37c0fa87bf17cbf10fe1d040243d4624103ea078037d2db2be41cd84ba35cf91ab2d2197a06bed39137112393439f711e2b08f75b68f05cb3b276815f865555ed2e10a9d53c730721c23609b2b29c8babd2a0b67e37f0c6846a560b6c78a30f0ca75ad56ceaedaf1344f10da19af7f417d8eb69f248beb2644edf3b290f5bc8b5ed5b52594d3115ed7ada2624398d0ba3a6e2b9dfd9febb35b3873f9ce34b46adf497ab23701e0e96f06a262571d9c779e3853b1a218e4203c4bd360ea7a715413a46d34827875fea93fc21cb3739171b79e6d1926a281a86449c7ace69200e0765a4f796d0fe079a10140da19af7f417d8eb69f248beb2644edf3b290f5bc8b5ed5b52594d3115ed7ada2624398d0ba3a6e2b9dfd9febb35b3873f9ce34b46adf497ab23701e0e96f06a1bf90a1889423f7d0d781be9bda36aaff0d5258b1656ea0fe114fc9590d8da4527177fb2c298c3e589cfb206d276b9d07679c8d79643496a368a65eef2d2fb493baa8b5930a0b9898617b57e6630c42e29d90a9259c187073aa0ce5f0928421d1ad4c5a96eb27d29759dd9ea539f7bde9c2c9e9e0317560410399d89568fb04f00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001093344aa5551c9d5f5e550ed013a08dfbd10410b94fdc010412822d567e884b9215ebba77b4db36265d82f216ebe040b8e43301151f85e4da04175b72540d2b43dbed5249e75063b30ad99d106d9530cc22653c567b0f4e01557b039211155c62bd42515e3b696dd829d945b17c664461221a67dbbecc87c05d9d07f5f0a7185200d21315a898ee21cc4662f5ffc477ab2baaa06ae28764c04764f2aa609fd1417da6479265927e185d2d73d372bff4f2e873a95359b8b6a0f37ad0179950c3425cef83c7d3327068ecd76d87c5c57d360343b129e81ea96cca82a2e75b4d5f218a741d5987f7763923aa3a9e4d825a3c611007d2d1a3fe1c6dc3b4f63013135108255465a529a572ae1b1b54394dad36846488042a56ec14c6fe952d18df06905a6e70ca2ab65100f014f978e9796945da1c77551e3f0a9dd6e3fe21abf91432f1b50bd9b18486bc4d1ad07b8f37ba24a5eb2749bdab1f57267741639252447355b2b6332619f6e17c56f48b51e1ec19c549258d3efbf5371381317cb587cbf1c120860c5b2f4dd377e5bb6c685c77ab528d9a3c8445a577b48155d621c6c51170f6423726cf447b56acc165c82efb98dc57b8417f3660477fde88802ece7583aabc6d365494c3fe7a8b4b601d7609bc1d7197ad8ea2883b415324b5011208f2d00fa2f4cfdd0530e324ccc8d77190144133bfb458fee8ce0e5815f1958afaf16f8dd3503b8f3a886f6381060bcbc3f08922007b5bcdfbde3a85380fa7a39b708b38855ec1ef24871d5e05e65b5151207792f3d2d606d35a27411cafe2a00f00306246aae23311b3d68ec6e942727bd2eecdd2f46c917a2f188697e15467b181ea68aa63202dabb517b741ead5ebc7419f2f5f139d5498aa4d31ce2c27363262b92d8f8fb08ed61065655fc37c98dbf66bc23cfd92a39d6452ec97465132f5619ddae318bf4dcd55b17f3fa4e4d99ece632e45bff54b54e313e4ec274c10c0c0f3cec39d5447ba79dcd3f56481d4476689f13e26a03dfa79e41551822693b412ec078961936ee31a1f5c4f08b6f7808883adc2b1dc794be6eef4b647de38e5820cd61561e622fbf4729eef4a6b6262af44089635c720e09d25fb6260a60a02731fc43cb87d7eedffac21f8ce47604d5b52b6f28a05bc408c76d759890a022893505db2eaca7cb6c118a0773a439208666a25ebc401aed8634853835bca17ccf1a7a8e3eefe81bd012c1fcba3907be1af3eb3798a5351c2f22196f01520756063f791c9a36cd2080991066a02005ce3bd9e9f0adc2ed35646d789f172e818922179d60261259eae4300e1035a637144d282b386114aa91cd89a1ea421aa9b0be3edb9eb85b150517c9774aecaecafb4257e4501c81c4a7bbabde2660e5ea3ae825ca0650c0869e913ee053a594ba70e27f14edfacd1fe986f6450333a380f3031d575cd005ed347d37490087b7337d03814da192397db0618d95092f4370928d07121e6171151738ff202a2644f5fd60e1b6ea1710bb69bebe72a1d228cf17893cfcc337e7958d062f5ed29dcec2feb3009681f2ca026a5512013888cfa97bad061f655fbbc7963ae95add872fba10115aee62ad7162c4d708207857af60d77327c25397202a42f211f61cc3b7a43ba4c8900e38ff31a3ff7fd68b05b1bc0b0917616564587c5586670c03e25e4876314d5e8d82710537d261878f98e7f2037f2a8885194bdcf7f5d6079d10bea0d29a9635ed4cd029d8434a775c821a4e16da3a96b2855133dbb7ad638dd547d4c769b5dbc814147f8977e09f3caa55b3d95f07b1dc16bc129755a8ea24021754ec94a5fabca5cdf72b34a66ced589fe4fdc105a21c604c153979d4d5b4169bc22e5da3e920853c172c36774e5abe1b2aad200281fa11cec3160470754e0f11984bab0e0a38283e1e63ea8fac5f63707f543e17c3f1468f9773097839a306a1e1e8dd6d6e0213cdcb86851a96088ba8cb7a843a49d1d59f338127fda5bf82217f116db50d0be89b62d5dc5b85e022cfa092d83cf2c34064b11fabd018c452a280ab136da447d4adae8629dd21611d8f56f6951321004ffa7604461606ad6cae91468b08bd4a3bb88dd90406214dd855fe13a610f4df5397033e67469c4a07ac1a5e2e7c2d269c004fe4688e0de28dc37503b1281314f0ad7c196b92dc983413b825753eba9d072f5e8ee73470b2612ba69b3c3292e1f572c5d814410be7311ecf189116e8baa3a73167b838da308efb62ad051cc48e2a4e4646b4c815ae94927e28a90e83a57b3634b73e1e3e8f9ece560ed8233b71d5b1b9b94b37ea516b6d81d75713c2f380d31841dd7aeea14e31a9f1290fd6c6d3875f6187e86c68e6dc76cb4d0405096ffc6da1ff64de6c4007ae4a363029392c78a09e7817939719238934b31e418f8c0cdf571c344ec4acf851b5cb0f31e221a4dce7a78a1e0c824e51f880f1d29633e4d730e15f2aec532667730d30ce1dde5b23185875e1f37db1ae077f307402c82475c83a3a024499d9988cf40bf96aa838508645b2963e8b8799da8496d656076ee6fb4b42a96cb2c0053f4034069557c7af79ba4d69c1747866257b8b7042f49a65fdd05683c43a3ffac0c11cc48e2a4e4646b4c815ae94927e28a90e83a57b3634b73e1e3e8f9ece560ed8233b71d5b1b9b94b37ea516b6d81d75713c2f380d31841dd7aeea14e31a9f1290fd6c6d3875f6187e86c68e6dc76cb4d0405096ffc6da1ff64de6c4007ae4a363029392c78a09e7817939719238934b31e418f8c0cdf571c344ec4acf851b5cb0f31e221a4dce7a78a1e0c824e51f880f1d29633e4d730e15f2aec532667730d30ce1dde5b23185875e1f37db1ae077f307402c82475c83a3a024499d9988cf40bf96aa838508645b2963e8b8799da8496d656076ee6fb4b42a96cb2c0053f4034069557c7af79ba4d69c1747866257b8b7042f49a65fdd05683c43a3ffac0c12e26f67ab7b96cbd66298cf342505f2dedb559fa4be2273dd01899d6c3abb17105f957432b4d66c307dd8d7a9f77a65b49b53376dadd9b2290ea826fd6568a54328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff41daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f00344d74eb36915306adaf8e9269821e7f7d18fdbe18f81e064f72ed1f9b4231350512464b4176111b7ecf3178e1c6e6184b4c23c0e9cf8ce8968bfbfb15a651252145f4002eb00160145f0eec0955828f1a4069016d1ba01aeb4dc2c8b7d5d9318e6b93413a1ae9d9e25f87b4ff2113104ee04abf7d7bda6215e3899271cfa9256bedfdcbed166f3cf67200d7192e89a3a7176b008c5abbb6eb7fa995de2f2c1149a31f1b218ba1c8eef40229e00b9f2dbe6d8f3381345e94107f4c3810633a2dc8fe7fd0fe6c894514898011ecc3e0e47cfd46463f02f7600715ec21d283ef0c1b7842979820f82613e9aad8d2aba29edba2a09b2cede1d088e81884ac08451f5007c7ca5a4b3308d61c4b4dac42e0a4d37401fc648e9d9ebabb69f0e40e9e1c5c416a1560e72d45e42361df28bd22e4e2d0d417b41b1951d8c791d053710f2dc8fe7fd0fe6c894514898011ecc3e0e47cfd46463f02f7600715ec21d283ef0c1b7842979820f82613e9aad8d2aba29edba2a09b2cede1d088e81884ac08451df43507dea22f3a583eb27914338fd90d5e94b243086826d631eaa1fe63b6542a3a94618e653389c755739ca719ead12f269437235c37fb8f9d075b636c4b6c0332614ce7d08a2f70578ff2630152ffc6052c2897ef2f2e4c848f8f853d0a333a35c7d7bbaedff8d16914e3639770aeec01c8e6442b3f836f033069f743e00e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010da2fc30f5f1da78edfcd3338b6c83105390b140e43cfb43a5d1af52483e3b0629302da82482cb813c829229fc382f35abbacf7a85924e3c6390dfbe079dd7e53547343398ec0b810500359a12bd7785629707ea6eb263b608a4ef0a6caf11250adbef287e4208f7045556b18a42eb5417e4ab912396740c7049642de19f3532263e9e0b8bf9b9f1a757f687c9680b8f8af213433e00d7a89067a2c4db9e4de1348cd82ff10c1760f07e3dc9a80395ca6570142e4013029bbf3f8ce6aa810cb01e6f04b71c89f8e7826917560785cd88e4be148b5498614a6c1c2a687dd7e61911dd91a0123e06760481675cb9afeb8b64d372e4d45cf5f17bf2ea1a4084870a38ee07640f46c71664a859a87dcf81f6fa52ed0adb17d822a8458ea05005dedf15eb95ac73b1d85c6d7328443e8cf4762256306c64d20af914683f621d88283b1495c0a20c93fa6ba10f060d00da4454e81ea57201e8d588c5d9a25c2f4b7c763f9fa3d8bc1a9d07d6aa148456a6c489d4611a8e87f25990955318ad96dc775331d007ec2fd2f29200f10bfeedb8c7df886f3656c5852cd3ab58a4be694b017b1e7c7a36421b461f040d1faa3b6ba725924626c946bf940c171111c002c754b10740d19dfed2a4c63287768d738a3d4a1f116f8ca2d2a153ad0e23b219f504873e42c19c76463767af3a92f8c191df0b608f4fc25983a0d1b7927cdbf07edbe53844f67fe121c2924504f4fc87d4b85f0bbd0ba3ff13a50623537125170ffc23221a86d80123637f202e6d0c723ea132fc17cb74489bfe30e034de464f7401bd31b7c22c5b1fc4aa24101c7fadd49a3af1748f3d5bb4dc4a58f637a633eab78e3311452ace09b790e06cb0a9efa5d3288d4a47977cad80abccb2393846922c680259de44da58f7e9596ddb898ca45714d5544ef75917e520da2febc41d347a7422ef5938829f86d3e6920acc0afef66c46be344f1c905c09a5b4010849b1907c1db47217c00f55794941a86b11bc15b0c9f267757c45f3f6a1108b547e568b9e2078c2a720ff8f5f548975cb7af55990bd07fe04b9cebeaacb446c64303e45000d6bdaf9d70465bca58479379e7ccb7a82b2fd0336c3ee40ddc054485e3ef808042ea0f96cb858a8de2a7ea2f841c1976ed834db8f28fd4d12072bb3453ae4ae287dfcba1fa8736043ef524f4006628e464f89f4dfdfdc9abbd11670c380dcf83843a27a7be7c9abc4bff7fad92c4b1364a174b7b7ef70d973c982c21f3c710a3d0c359af13bfd9429290520a3b2b16bf5960a05d3532bb12f8e7e601e6036e323b4241f6a461db452977c31fbde52547d77103d014850d43e26fb27de96483217645fb8957970d792a5379fb1bcc85e15b5fda78d3c86d0649ac9abed7ff9c73b2214aa6ae258a5baca24ba8e2e1051e2b01d731b5ebdd9abcd0625c6ddeea02796019a40f8886702de808ca43e81ce321ee1ac90f1c873f3dfc4e09905221a3197dac8ef94b1127e3101b1ec0a795d91205f7761beb2bbc3bc49b8ba42a16311f305bf9aec636f5ff95b4b49901597de08615206713d5456fa2e0c63d9e9700df7af33054e4eeb9605e838bc8c88408d52ef5c96e7d896b56630265ca9ef8a045b7bc1c8cc4bdae9a6071e4963e3bea62eaba23e6e7302c3ccbbe1a29ccae1205d81c787cf89f7c8ed0283b41d51dc6cb84f63733062b0ed3cee609cc19b1833740d9c69b019c85bcb0c4eb097bc0608b14c587d64a29e7c3b441f5374eab93a5ff36f23dc582e7d56fe6e944a0736943c1e62d45dd7c9c33deff2d6b3705520a264de5ca066fbd42ecb90f6a8306519119b5080a9bd8230133317dda013d73dad4c91f34e2561c3f7dcc8addba06fc16a4963c6636e4c22c22739c245176e0eec0b901cb8800c0ccc9aea12458d0495da5f32d889199fddd93505aa9f2f5514e7a4e2f902daefd6fc630071cb5bc315773d745c91ae8c3809d5bc904a3a3834f318343d36b7701694fb1cc747fda5bb1d9172178119e09217e3a7d96ae2a31d75b9dc32be4dfdbf17b8c0d772c72aee4f8bcfd20d6f2eb6f2f2f4157512751f8abb29df275828c3ad25beeaf5728c8286c35f772cc635e4ae5c18f62cf93f0b02531973cd7007e6cc9f1c35fd94a0dad9840eba0bfb04bc6f8b9b7b1526ab166d4f7b846dd37cdd6de15d7cfbd74089ba6f679ce126c9e7fdc8ca30ca5ac70a45d3b1781f27cc9c58bf9cd66f92ddbf2039beed15f6a4f01559c8eb03ef700bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb0bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb1663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac53a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f216211fa42639b21ecaf1ed4e983217b62a6709fcf49a5422b064a6309c8e2c557662260f666d094d1a6403be2dc098fb8f586eb4ad8166745ba69d9a8268d67ce95224688bf433df1ae089e293b28e241cab5fcd9cd6a27caada7343d9684dde77a20de236c8d5a6a0e502a2e3ffe172e2714300642e4b9f8986569c7538a0b81fa33ee9d35863311447a1f0d41296828ef14e845415c2e1024c8b39e27624bf3130d97ba61a8a2316eb79f39a161619e8bcb7a52eef1358e006dba79ce51baa33c10c697823a4c4bcf76cef00e67a7c4573c7f2b17dabd0fdfacb93a9679d4e8a211bd6a4c417911b42b7f4e8354b2a758409284328da8c61546bbaa13ac0ab63936bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b93c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db17a1dd82353c650035565c7bc00d9e983b457e8c8e8400815db42975e7191dd723725bf4adbbbe02d33ba140065e3e1cdc66f45df62ec7fad6156e418389100c36bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b93c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db16e08890aa848dc2cf6ebff393973a719895979a2e346a08da82cd7f791497511f9a4131e99449698ce8ce1eaa5edf794bef39d7950170d87650c3653eec76d50bba2f36522d59ab82ede2c4985d52a8c1af4cb45768d4d34000a3c4b4678bc92de546b81283d93d323202c8cc923733cabbcbd1b161d0388443c11d1282ebd00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000119855653a92b5b37bc84430dedfee92e5fa2a1627ef010cc358ffc7ca795f8ff10f91417ebc5fa0a82c0fc211c1ffd54bfedcb8a1eacc12001db3d3dfcf6410336fcd7247b582bd4755c005b613b80ca2f8820cddcb43e242679713b9c095089132f24b896d0c5362ec7896ef900a2aba3d25adf53f77108f34a222c4498678214299ad45294b6b41dddc527a1ae46013a4622388f6d3f7fbd08cb5da0b408e8111e3f7e1b77c40285c0545eb39b341c4a7f097d9bd852d41d534ba5324d57cc066debc195b53304b7c8f3785ea52c698fab1c33036da1aadb1d57d46a57fa0b1b55c2439894e8561eecc4e7337a6c428414211cb9e391ff0d1e54a1dc8492741382fb675176bbf903e404bdded09f4a79609c13f8dd0adc9bf398380d0643c00e803f15245b8ee7e24b7a7c9b475907f23b775017e95e80844dc3591d4578e518f961d2961eace213ddef4c9fff847634c6aed28ea2b36c47e11aa8476227f61e1a563dba60b85dba030b80ae9ae90dfed627a0c3282e96dcc4f6f5795a0aea303db71302220fdc36cb981571a7a39988356de91cbd34414c176a4cbfbd0b1606547e6644a457d54b633df37048afd98c0a7b53fe4373e2fe2654b7e11f75890f4a5c550e927e552d2bdfb5ad5b579ec4d13e605ba0e8be836ec282edc0bc8c20e9dfe79ff700f343168ec6a16ab1dfcbd35a3498546dbd3834c9a0c16f318722b5bf8602797964cfe223f7f39caed228cef4a518f6375ea58a12923cea8cd12d374dc211ef11c761695eab8bc0a9a0aab656a0122a5f78e1d299ba93419f1a0d1a3a23a33ac356a53f60b4d8d4635586b2e25f81d3fe22d36ae75e7cf442be2e35b50d9687b4c7d820a14f2e63abb3597f2ad46eeef9d20d6372707e81089a184020a4fb3d8a714a4f626e3ea5bb356c6ef4c6747cb8aedb354a201f92f6e62176aab83a16b5378cbd7456d7163bdaf3976424bdb7563de4371f703e5b6e3c05a54c3ca90caaf0882824ecae0496d22fa11c473eb0fa671156a4345449255933935e3d12203a4564b3f7bd3e5188139552f235daee4ea1fdf45a81915341650b88d5843256b8f16a31985616cb634b4a614bdb510b92f6e2c2d2268695cf210ce82eabb395d8486c049a6304082636414c908c415de6ca846f31620d3fe25903aa258c4f5cf8008e3f972b21e33b538622309766d0a7dd0cef851a07dd74421a435475fb6ab1e7162ed84df5693d343dec523b4069c64b9c89cd0df7fdfa610bd0cc0e4bf690b74cccc9f4da3b379896be27c571590c67e76971b5caed42ba2bac1db6f1236abc4a0927a957c66dee1dec17d2890ebbec9617ce5b2781620303d3d397302499301ec0ff0a2f2a6171831491c3c698372840da2d0655b68ccf3cadec78445ae88b4e7beec24095bbdae8981bebc7a1b4ea4fbefe3effe7f40f02c35d2cc186cb97ee70cbab620a055322aae8a6337a853544e15a280f4a93972f17598b444349e9adba8bb649ef188d910c0e3d0b79989f0f8604fcff06ffee3220e40b6e3b8bd5b56e9d049c833f29339266b485253e9871760ec1a5c9b1522a0cf327b065fdc58065610095ec4a60fd601c623a664c5cbc801b45440faaac201a60c7a9c8790d2e4b2ead49dbe70a7267da3683781a11f5f64e49c64a1b472c4e2bbf32761299b938962a6b3e204de7e452718bd691428f31b78e05d97c3a3d732743c82f5d48ed9a893e0be8edbac1b2687ef0af6b353bf98639ede4427f240f99396e8262647d1ba5ebb951165380ed43913e404c2172eece648b8f431a0e9d13f24d8f4cbadaa2dd0b29bc97e0bc6655051cd7ec595ba8de236553f1b63eea4050be3b1b13be6c78e3df2888e1650abab2218939e2b61702514684dca807e123367bec5811decdc8d749c29c23b23750bfd52fb11e10c429b7d98d419a06bd7b4e1dd77eb398b7f72bfd3e106249cb9737d11d912acff5585563a76e991bfbb9289dd155b42171679d712ab8ff9c4333bbd29764c3031ef81e91eaceb23655e9153f46b97ba2ad0a01a65b132807b0cff3264c4050421e3033d3e4307c10c685bb1338e347aa2c5765e3d9ec3d3b00716a4ae009b3c2120d02fc58526d3db2f9de3c0d7d640b53605e1cc84df1907e3ee914a236e7832439bad289fc523378d8b5238ab2438e658a8f45f4a8ec8f007da873d23e81eefea7862b977dbe26660162bd1cb7ec1dfad6a884665218c6c67233f897f80a722d9017bbf94e0900000000000000a012759c0215a1a86702a2500237030a7e03d85fe9d051c66296b7e3a93b6477a3049d2c7dd3c3702c25deaed9a5c26aa3cace293c144ba9fedccd9d695fb5c6fd1a7e99fbd4f431e180a0d561519c950249514312d1a144922021cadfdcc7771435c685de832aee99ad4ad16e045196e91c27e77c6562d73408655f1ae8dcea0612759c0215a1a86702a2500237030a7e03d85fe9d051c66296b7e3a93b6477a3049d2c7dd3c3702c25deaed9a5c26aa3cace293c144ba9fedccd9d695fb5c6fd1a7e99fbd4f431e180a0d561519c950249514312d1a144922021cadfdcc7771435c685de832aee99ad4ad16e045196e91c27e77c6562d73408655f1ae8dcea062a0356a4972f0421effb68d4d5f6f5c3bcbe7e912063ea82541e548f2076393f13918014f2a51b817d20796e29149f424ebd328958ffbc5a54b6f83420764b9a3721ae20720e35dde1611b5221e5d51c2766d5642f5c20aed5e2833b77e216bf192371b9e610ea9d4c8a8b7d340856cf3e12552b07a7fb1752a4a6bf4dc24a5b266dc96aaeb153895cbd2cae918ce0ba2625002923160c55f43297beb9fe1c5408a36e3187e124a289371d2a7ce9833f837369f6cffdfb17914199a72f6c4c403d2b7280faa8aec9196a423095f6cbbaa781ef4c9ef7d7cf8c845f2bb4c45b7f1319ad595d7671b21481649ebff76030bdf73b42980c43f69c02cacf10e0059b2af4bd3e350157c6dc4ad17d71d9d09f0365bbf4068e4fc1c65be7804e9bea392cc1385dfc4d334710cd10d84ec95a56d670743278a526281835a48e83c7bc16198ebce1e2b0b9e60b09b7445ce129128b765f67c20dab54dd7b0ec250963e1536b662f8756e669522e1ef8af90d02d8da02cb2774f670714b0c1b38750e230519f7996275ceb858f86846647bacafe3dc452c066e49770eaaf3570abb42bfb33f97adcf90b2e05fe074ffea7791ab775345e1b1f316e44041af4994f1c01eaf2357efb434a2fde9aeede8771e6cbb28df384a5238457f134f9d721b19da57292ced3026237c22917efdbe58378170c28640e03cfebe9cb2d8e9b7dfabca09f124e385070545ca9c812a55aa1ac11c99ae6d5d0ea07fc9e3c3e8cda29fcf1cee3e8fe80e82c9ceda4c6b9c9fd182a30a8332ecbd2a678670ef1f01f5d30b38ab36b662f8756e669522e1ef8af90d02d8da02cb2774f670714b0c1b38750e2305198ebce1e2b0b9e60b09b7445ce129128b765f67c20dab54dd7b0ec250963e150b981816a940df8ab3aeb045431c8e77922a3de0a2667242b4f5b4649926663108778f2f4bfc62db9739a4bdd5aff1ee913927e51313f78b76c04e60a62cfea5390c1e3b11c180dd00aa36dfc93ff970c62b664ff9d598b3877f8f82c71510b91739019f465d9f9e2d416fef8cae327a9f4dc43f3d2e8312a1079a77fe8f50610b981816a940df8ab3aeb045431c8e77922a3de0a2667242b4f5b4649926663108778f2f4bfc62db9739a4bdd5aff1ee913927e51313f78b76c04e60a62cfea5390c1e3b11c180dd00aa36dfc93ff970c62b664ff9d598b3877f8f82c71510b91739019f465d9f9e2d416fef8cae327a9f4dc43f3d2e8312a1079a77fe8f50611477735ec4434b59005bcea40822ec5db8cd6e1559b47efec9eda5670f59608a373f4b7e989755551406ac5cf738e8a87b1007ac673e5ff469d05dc761865ed514a0e10566701e8d6f1ddb86c994ce9401f40322dd1827ccb0efbd610a9591fc3ba43ed4f1af01edbecdcb488c595d576385276c59ebf3f977976c99bb0ecf1e13918014f2a51b817d20796e29149f424ebd328958ffbc5a54b6f83420764b9a2a0356a4972f0421effb68d4d5f6f5c3bcbe7e912063ea82541e548f2076393f3721ae20720e35dde1611b5221e5d51c2766d5642f5c20aed5e2833b77e216bf192371b9e610ea9d4c8a8b7d340856cf3e12552b07a7fb1752a4a6bf4dc24a5b289c84dc117c8e14414cd7755a9d79743cc41808276b14dee965bf166f0bd82208c4aa0a17623fe4335ee49bc2bf96977f9aa13ff9704a3b619880177765bde635267a1432074b6ae08d4daaf3299ddc5a0f8254fc14bb86e7e37316178f8cb71b1ea5c62617d5104d5e592462c48e0f0b69a83a3aef603f40a3b6e4ae14d46326c6ee19977fddf8caa5f645a697eb0a8e14609c7306b4da8ef83393403b2e1a292cd9d9b0f1ce4ae1de94853f43093be2801d236860816c5b9c443e7b5a0ae6033ec7580d6414554b1cf18685d99bc8981a1758631eef6433533d652ae693920d0658824abb0c25e2ceb548d0149022ab187a3aca9833465c06bba89abdcd871c8f802af927bc9e83701a248880c3577cb2e584558b882c5c90c9c48ad5a22112e323a9635bc73822db3f7a250a523c389f85b02a4f6603681d5dc749889a673ba43ed4f1af01edbecdcb488c595d576385276c59ebf3f977976c99bb0ecf1e14a0e10566701e8d6f1ddb86c994ce9401f40322dd1827ccb0efbd610a9591fc08cb9e62053a24cef26be596b4b7a9694d5277bf9c18d301fe074d62e51a75a433db95fd1b3bf2bf3fef6a7887cfd16de64c9bea757c219043f9662e633661b63620fd11220b311ab70496f4548c486df9e084a4fa2e6c52300e17177e8a8e531a2422c93613ef6076e70fdb0161e37d6b98a5ea3cd5af73f87912e34719d2c721e9956eb80c7652957af5da3f8b7c196bda3f3323076028cde0a33b8e69885c3fb08610fad015794c5598767a1d132570112d06c5b30ac6d71617cc09d1952a2ced3026237c22917efdbe58378170c28640e03cfebe9cb2d8e9b7dfabca09f12357efb434a2fde9aeede8771e6cbb28df384a5238457f134f9d721b19da5729041cfe2c86efe3847f1adf1eae867f3c6a0ee184e2f260219d94f9f096fb35fa3a65302611f829720937a571c1d8f0864b81ebc74c46786f18d67d3865f1ee931a2422c93613ef6076e70fdb0161e37d6b98a5ea3cd5af73f87912e34719d2c73620fd11220b311ab70496f4548c486df9e084a4fa2e6c52300e17177e8a8e5312ef1e7dddc34de23b4855bdf0f32e11492eff625322a346879e6d19d4afce8536d9154db2bc08aa0ab9c2d09e96ac7ce3a2284bcccfcac225cf7e728a1c975a1b1ea5c62617d5104d5e592462c48e0f0b69a83a3aef603f40a3b6e4ae14d46335267a1432074b6ae08d4daaf3299ddc5a0f8254fc14bb86e7e37316178f8cb7361eebedd397316f4a9f704b42880811ce4e2d3521bec84ce4c720a20a48b0332ce4abdc3944e4dc6dcc0cbbb6cd1b8eb7ba055a1f87c988ccb1f2f410c6ff3726ce83f33034969929d12797406b017d3fcc69efdde1b7854b3dd23f13a8285729769be727ea89e2041a7f3815832a6e25acc09f59226440dd4957bbb1fc38c334cb825923f5d4f4e17c7b161afca5f1903c77c9df4a9fabadd7118dbf35c18c2f4b17d8ac0336fcb0b05aadb524cf868a4ce0067ce5bd15d70f9819eaedfbbb35c685de832aee99ad4ad16e045196e91c27e77c6562d73408655f1ae8dcea061a7e99fbd4f431e180a0d561519c950249514312d1a144922021cadfdcc7771408778f2f4bfc62db9739a4bdd5aff1ee913927e51313f78b76c04e60a62cfea50b981816a940df8ab3aeb045431c8e77922a3de0a2667242b4f5b46499266631390c1e3b11c180dd00aa36dfc93ff970c62b664ff9d598b3877f8f82c71510b91739019f465d9f9e2d416fef8cae327a9f4dc43f3d2e8312a1079a77fe8f5061383c00920bb719499f368278bdd05cc8604fc66af40277748b17a1492c0aa72613dc2a837714930f3583084de0a029d7df47b06b59b74e40e7e0580b2fc8ec2d1319ad595d7671b21481649ebff76030bdf73b42980c43f69c02cacf10e0059b3d2b7280faa8aec9196a423095f6cbbaa781ef4c9ef7d7cf8c845f2bb4c45b7f0553049f03e13cc6764c4f07f085e5e5d329c2319466a145451088f98224098825e2961f6d0b3b7a97dcfaccd686106da571a104d0fff596c8c729ef0784b95f0d0658824abb0c25e2ceb548d0149022ab187a3aca9833465c06bba89abdcd87033ec7580d6414554b1cf18685d99bc8981a1758631eef6433533d652ae69392113d3479bf81c081aadcab8d86c1e0d018b8b8c63a79256aad04e75f50c25c262c4cbd11c2c355cf1c8ac3d0a3828be6430c7c2ea545e399207f1c2abfa1e32f3be4dc30e784e37c6b98e7b2181f10c731bdb24fec890edb6fa636d9af02308f146043a9709a3cfec252bf1d3dcf1b2433bb783f4a7b0ceab8e0f32116a2308b0b981816a940df8ab3aeb045431c8e77922a3de0a2667242b4f5b4649926663108778f2f4bfc62db9739a4bdd5aff1ee913927e51313f78b76c04e60a62cfea5390c1e3b11c180dd00aa36dfc93ff970c62b664ff9d598b3877f8f82c71510b91739019f465d9f9e2d416fef8cae327a9f4dc43f3d2e8312a1079a77fe8f506131e8f52123f63e60d9a7797f28509c1eaa3c0cbb7d474715075ff36e781586ea074f2aacb98d4ac71105d6e3a7a62fcc955ce91c60962cc9adf017c2b19a1d0d09de9e84f3633649af21ba800ec78d2857419f7ffe7a8082e165167adc42264d0666815564bbea317ec9ec4f47269ec2ebf0f2132f3ca227adf4e292e9623acc0c42022362c171542728c385974c9ead0602c821d8e6e467f7f6236d5616ce161ad7b948615f70ca489cbc16fccdcb869d831a12a91f85d13b92d39aafd3c8fa1739019f465d9f9e2d416fef8cae327a9f4dc43f3d2e8312a1079a77fe8f5061390c1e3b11c180dd00aa36dfc93ff970c62b664ff9d598b3877f8f82c71510b934cb825923f5d4f4e17c7b161afca5f1903c77c9df4a9fabadd7118dbf35c18c2f4b17d8ac0336fcb0b05aadb524cf868a4ce0067ce5bd15d70f9819eaedfbbb35c685de832aee99ad4ad16e045196e91c27e77c6562d73408655f1ae8dcea061a7e99fbd4f431e180a0d561519c950249514312d1a144922021cadfdcc777140873e05790b82c8f9fe464835722a2b6a6f0f25aa6b0b2f116dad0b9ab66214f0b37864fb85b65cea3903c4e797d18140d40d628fa8698a02462233343317e8b2b415e8104aed64ee15ea2fbed9cc6db366c99f5eeebf4409604abbfe43c11342503c15953704a2c4c8d03d3685165102f0c90994818278592827e3ae1684fe60873e05790b82c8f9fe464835722a2b6a6f0f25aa6b0b2f116dad0b9ab66214f0b37864fb85b65cea3903c4e797d18140d40d628fa8698a02462233343317e8b2b415e8104aed64ee15ea2fbed9cc6db366c99f5eeebf4409604abbfe43c11342503c15953704a2c4c8d03d3685165102f0c90994818278592827e3ae1684fe6049d2c7dd3c3702c25deaed9a5c26aa3cace293c144ba9fedccd9d695fb5c6fd12759c0215a1a86702a2500237030a7e03d85fe9d051c66296b7e3a93b6477a31a7e99fbd4f431e180a0d561519c950249514312d1a144922021cadfdcc7771435c685de832aee99ad4ad16e045196e91c27e77c6562d73408655f1ae8dcea0636d9154db2bc08aa0ab9c2d09e96ac7ce3a2284bcccfcac225cf7e728a1c975a12ef1e7dddc34de23b4855bdf0f32e11492eff625322a346879e6d19d4afce851b1ea5c62617d5104d5e592462c48e0f0b69a83a3aef603f40a3b6e4ae14d46335267a1432074b6ae08d4daaf3299ddc5a0f8254fc14bb86e7e37316178f8cb7266dc96aaeb153895cbd2cae918ce0ba2625002923160c55f43297beb9fe1c5408a36e3187e124a289371d2a7ce9833f837369f6cffdfb17914199a72f6c4c403d2b7280faa8aec9196a423095f6cbbaa781ef4c9ef7d7cf8c845f2bb4c45b7f1319ad595d7671b21481649ebff76030bdf73b42980c43f69c02cacf10e0059b2cc1385dfc4d334710cd10d84ec95a56d670743278a526281835a48e83c7bc162af4bd3e350157c6dc4ad17d71d9d09f0365bbf4068e4fc1c65be7804e9bea39198ebce1e2b0b9e60b09b7445ce129128b765f67c20dab54dd7b0ec250963e1536b662f8756e669522e1ef8af90d02d8da02cb2774f670714b0c1b38750e23053f2a32a8f84122d2924e0142e794000d42ad24e90c5a1d5e07957c890bc920932853c96178096f53e4eb328af4b32fc1f250f389933c6433b599ba444add3b7a2503c15953704a2c4c8d03d3685165102f0c90994818278592827e3ae1684fe62b415e8104aed64ee15ea2fbed9cc6db366c99f5eeebf4409604abbfe43c11343ad27b7818115430e0511e71f2ef6faccefce48d246229ba6deae61888a43f7e1b606c6d3f92951d658c49cf9c241e318a3cfb3d9a23a839201f24be2bcc57172b0fb5b790cae5da3370e475482680941ee43b054dfb1a11d6fea8dc66dca23525356a22c7543aa0fa7ac25a0dc7ab574694ef89e90901b45188811e5ec7bee513dc2a837714930f3583084de0a029d7df47b06b59b74e40e7e0580b2fc8ec2d383c00920bb719499f368278bdd05cc8604fc66af40277748b17a1492c0aa7261319ad595d7671b21481649ebff76030bdf73b42980c43f69c02cacf10e0059b3d2b7280faa8aec9196a423095f6cbbaa781ef4c9ef7d7cf8c845f2bb4c45b7f12759c0215a1a86702a2500237030a7e03d85fe9d051c66296b7e3a93b6477a3049d2c7dd3c3702c25deaed9a5c26aa3cace293c144ba9fedccd9d695fb5c6fd1a7e99fbd4f431e180a0d561519c950249514312d1a144922021cadfdcc7771435c685de832aee99ad4ad16e045196e91c27e77c6562d73408655f1ae8dcea0608c4aa0a17623fe4335ee49bc2bf96977f9aa13ff9704a3b619880177765bde6289c84dc117c8e14414cd7755a9d79743cc41808276b14dee965bf166f0bd82235267a1432074b6ae08d4daaf3299ddc5a0f8254fc14bb86e7e37316178f8cb71b1ea5c62617d5104d5e592462c48e0f0b69a83a3aef603f40a3b6e4ae14d4630b981816a940df8ab3aeb045431c8e77922a3de0a2667242b4f5b4649926663108778f2f4bfc62db9739a4bdd5aff1ee913927e51313f78b76c04e60a62cfea5390c1e3b11c180dd00aa36dfc93ff970c62b664ff9d598b3877f8f82c71510b91739019f465d9f9e2d416fef8cae327a9f4dc43f3d2e8312a1079a77fe8f506100000000000000c800000000000000210000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020b0ab6e706afe61983c5bf1d6e3d09621da7d9cd32bdd7e2130b81dcc46ef5802000000000000000100000000000000010000000000000020d087600766bd1df7913f14ae88a2e9b5b651504535f46ee5da14954af94de668000000000000000100000000000000010000000000000020cd2cd9ad2c779aa3995be1014c80f94a5247dc5109218180e006fbbe588ce2d800000000000000010000000000000001000000000000002020ca2ebe06b78b863c42ebd67e820162645990710fb2212c31964405270d49be00000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000210000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000000000000000000002086cb5263dbaf418e96721addfd841cb67f9896781c9e8093170a2bebd35c8a0d00000000000000010000000000000001000000000000002005e8acde41240846b1b148e6f1731d982d9499b315b49571f3c4e12d88da5822000000000000000100000000000000010000000000000020dfd7eac1317ff666e7a446a260d70430c9aa0f0bfccfe2edf4ae24a5d163595d000000000000000100000000000000010000000000000020cb0c915a2fbf42f67d8ddb4687cdb94a70ea6dba8c337fad662aef43a1ff09120000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000210000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020d7e7c468e06a8e592edbe1f9eff3164f0499e8ad0072da91fd4fa087ea820a1000000000000000010000000000000001000000000000002064922111b65302bddd53948632f9de2e4135390b8620b248b8a335776dedfd030000000000000001000000000000000100000000000000205dea807bd3761c569e5d91569ff1a4d18ca2750ddf526909660f91b2f84080cf000000000000000100000000000000010000000000000020ec94ab368df3700c4e485459b45d7544203947bced6933b6d2419aa51552b1e70000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002100000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000206394d562d30d4d72e250c260ecbf498fb3d176889437362e030db290cfd3b22b000000000000000100000000000000010000000000000020aa69a887755987122b41014784240cfa2ea17a4e9b3aeba12dc7762da7582ecc000000000000000100000000000000010000000000000020c802860c649238e4c1cbd0ff648821a708a95501e146298b5b303abf07320669000000000000000100000000000000010000000000000020ce508bfa21ae59f4e3a574d7cf9aa2266b30a92dca771c1fb0e1be0bca3e9fec00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000210000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020af5fad30063ecb19951eac8cf60da4f79cdbb44b8297f1e89b410ad48971a7a700000000000000010000000000000001000000000000002001ae3a0c28f45072672fa1d9d722f50b96f496c2095844698ce94190b48086ca000000000000000100000000000000010000000000000020378b42427141ebdcf4a6aaa2ee39a4e2bd01cb4125d3f5ce563ae81c900aa929000000000000000100000000000000010000000000000020c1bc4adb66edbd4e3dab7de23832af2889cdfe7d4f7313a79599994c65f1d267000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000210000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020b0ab6e706afe61983c5bf1d6e3d09621da7d9cd32bdd7e2130b81dcc46ef5802000000000000000100000000000000010000000000000020d087600766bd1df7913f14ae88a2e9b5b651504535f46ee5da14954af94de668000000000000000100000000000000010000000000000020cd2cd9ad2c779aa3995be1014c80f94a5247dc5109218180e006fbbe588ce2d800000000000000010000000000000001000000000000002020ca2ebe06b78b863c42ebd67e820162645990710fb2212c31964405270d49be00000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000210000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000000000000000000002086cb5263dbaf418e96721addfd841cb67f9896781c9e8093170a2bebd35c8a0d00000000000000010000000000000001000000000000002005e8acde41240846b1b148e6f1731d982d9499b315b49571f3c4e12d88da5822000000000000000100000000000000010000000000000020dfd7eac1317ff666e7a446a260d70430c9aa0f0bfccfe2edf4ae24a5d163595d000000000000000100000000000000010000000000000020cb0c915a2fbf42f67d8ddb4687cdb94a70ea6dba8c337fad662aef43a1ff09120000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000210000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020d7e7c468e06a8e592edbe1f9eff3164f0499e8ad0072da91fd4fa087ea820a1000000000000000010000000000000001000000000000002064922111b65302bddd53948632f9de2e4135390b8620b248b8a335776dedfd030000000000000001000000000000000100000000000000205dea807bd3761c569e5d91569ff1a4d18ca2750ddf526909660f91b2f84080cf000000000000000100000000000000010000000000000020ec94ab368df3700c4e485459b45d7544203947bced6933b6d2419aa51552b1e70000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002100000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000206394d562d30d4d72e250c260ecbf498fb3d176889437362e030db290cfd3b22b000000000000000100000000000000010000000000000020aa69a887755987122b41014784240cfa2ea17a4e9b3aeba12dc7762da7582ecc000000000000000100000000000000010000000000000020c802860c649238e4c1cbd0ff648821a708a95501e146298b5b303abf07320669000000000000000100000000000000010000000000000020ce508bfa21ae59f4e3a574d7cf9aa2266b30a92dca771c1fb0e1be0bca3e9fec00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000210000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020af5fad30063ecb19951eac8cf60da4f79cdbb44b8297f1e89b410ad48971a7a700000000000000010000000000000001000000000000002001ae3a0c28f45072672fa1d9d722f50b96f496c2095844698ce94190b48086ca000000000000000100000000000000010000000000000020378b42427141ebdcf4a6aaa2ee39a4e2bd01cb4125d3f5ce563ae81c900aa929000000000000000100000000000000010000000000000020c1bc4adb66edbd4e3dab7de23832af2889cdfe7d4f7313a79599994c65f1d267000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000360000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020c3a4db706c3c3b07e0984d10824acb5797a59a8b4d40d709cfa0452e6ee0f23400000000000000010000000000000000000000000000002015ad821dcbca21c0f24f28f58131f9ab7767c0d6fbf621d34a2c84ab7b24c75e000000000000000100000000000000000000000000000020f4d1e64380a2c05ab0dc64ea31b5e288a4325921fa907811ded50419cc51d1ad00000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000360000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020cb1624e04edb0a38a5aa48ab98ce3b4498ce06e3501400449d8c60820ae716c30000000000000001000000000000000000000000000000207abb1eeebe74b58b73790fca56a415654e76bfd897d0c45e5884d0e78242d270000000000000000100000000000000000000000000000020ecf960f1bd96e938be9efe0e8178c6faac8e4dade22047baafaa2cc5b776587a00000000000000010000000000000001000000000000002025513b7f08a347e3b4653b6a5b7b4504d17f3335eb68b911a07580668480ea5f000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000360000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000100000000000000204e3e5050a68c19a9070116bf52c252ea80b09fe3aeba37912ec913755fd6f20f000000000000000100000000000000000000000000000020741327993888baf18dec79d5c37eb2b44abfbb9eccb3d86290a10c24f9dfac2600000000000000010000000000000000000000000000002057231a860f30ab1475bd8cdc0a3b4a8273fc215ab0540eb9f5f6b4129d47a3f6000000000000000100000000000000010000000000000020a61e4bd78e6377780bb7580457ace8abedf45db5c6b1905e0fc76ee6b540ec6f000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003600000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000100000000000000204f2c258eed013e0c55e57bb7b25f90a885545ce90dc6ab98cbcab8b42618b739000000000000000100000000000000000000000000000020f44b12df590997e771be2d8ca025bc1169a99fd2640c935a548d3f72f53e1905000000000000000100000000000000000000000000000020e07633752c9a7d0ab4d4825434743a1a21102cdb34ac00f9cb0067d34ffca5d90000000000000001000000000000000100000000000000201273eb79132092546fe9e443e04ce70d652607cb46845d8269cc51b07a5e2636000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000360000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000200dab1cfdca431b0959f28b363ee2140ddc896a2331b81f80be5d7d672807597900000000000000010000000000000000000000000000002052ba876dcdee686e84a449cad07b633edb67153d5f14f385fb256af53ea89d65000000000000000100000000000000000000000000000020f53683e29b7f89c0854446521e9f08cece64960ee2669247016ed70294c71940000000000000000100000000000000010000000000000020ca0bbcf3ba7d635c190762d1905f0cdb8d6b2af98d668d282ab970819d0796e0000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000080000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020657f400c23f985ef1ba27d0e61eec710dc328bb9ca9d9fcbbed56910fe31e4490000000000000001000000000000000100000000000000204e8bc169e0bffb7af86e442b025c73a9c0e2c8fcbfdcbdbfd7d568446045f1ae000000000000000100000000000000010000000000000020f7575ab7c2207c8a39c727bb104d9b7c0105c5ae631fc01ee25378fbc615b0d20000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000080000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020325051efdb8424e62d624b11d6b7eeb927253341aa3927034fbb0c8bf76c12ff000000000000000100000000000000010000000000000020785181f64823ec7b563f1cdf18df75b075d0a5963a0db15b3a9e3b0b42f36f1b0000000000000001000000000000000100000000000000205dc15f79b1aa0ed50e58e550fd41c07ace7cdd1101aa37ef4273ae5e9038146f000000000000000100000000000000000000000000000020d1816e01b598e08ee1c459e3283ac87d454a19f2e41f3f85158e9f10b9faef71000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000080000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000100000000000000202eeead91b20ab57873ca7c783915a4212ed0dc2f7961aab41598ea0bc8a47329000000000000000100000000000000010000000000000020a6ac2199362ac987e04ad05199fe7f8be4b60786974730c5353094867d88f34f000000000000000100000000000000010000000000000020abf88fdff603d4d880f1564dd8b5a9e24fd51a61c22d45624f73911e449bcf94000000000000000100000000000000000000000000000020dede73056e97d895ee544cd1f515e7f872b01d10ad51bde6457326fcf11c7b20000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000800000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020920e2801b283c6626363cc9ab21f52393946e3a96b1195de32cbde245b3fa8d8000000000000000100000000000000010000000000000020cf8a0f1ddefe7b4046369acf63949764e63161ba93c9f157762361c30aae1fc100000000000000010000000000000001000000000000002009f1dd01603cfe8cb20303e6d66fb1ad83bdc7093f7a52699cb4afa68588b483000000000000000100000000000000000000000000000020d4666304bf2809e0fe3311603148aa6aef2cc88395ddc38a022a9c742dada87d0000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000080000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000207835bfb9721cf146284a361fac9b687f1d55206c50ec6b050d1a1c0f1283c2f50000000000000001000000000000000100000000000000207a3fa367a923e5d12e87ccdb6cd209b3bc3cc0afde4ed5f86101656aafd030520000000000000001000000000000000100000000000000203c7ec701f5e4b6f4992798f93bc359521c17689c879f0a4d5728d25a602fe261000000000000000100000000000000000000000000000020c1a70db1dbbbf1d266cc63410c3e1f798fbc2f00cc35d561bc0706474f565a7d000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000090000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000000000000000000002066ef082a7312ec8003c37280968e36b4beb91918666462610d2e0f921d66262e0000000000000001000000000000000100000000000000204e8bc169e0bffb7af86e442b025c73a9c0e2c8fcbfdcbdbfd7d568446045f1ae000000000000000100000000000000010000000000000020f7575ab7c2207c8a39c727bb104d9b7c0105c5ae631fc01ee25378fbc615b0d20000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000090000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000000000000000000020cd5f59c76bc5632df1e3b8c11713a7a553a405f716f3f73d6b2ab918bf5d2833000000000000000100000000000000010000000000000020785181f64823ec7b563f1cdf18df75b075d0a5963a0db15b3a9e3b0b42f36f1b0000000000000001000000000000000100000000000000205dc15f79b1aa0ed50e58e550fd41c07ace7cdd1101aa37ef4273ae5e9038146f000000000000000100000000000000000000000000000020d1816e01b598e08ee1c459e3283ac87d454a19f2e41f3f85158e9f10b9faef71000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000090000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020255d2bd3266375246a076280b11aeceeeb5621a497d1636ce377cd490e6bd1f9000000000000000100000000000000010000000000000020a6ac2199362ac987e04ad05199fe7f8be4b60786974730c5353094867d88f34f000000000000000100000000000000010000000000000020abf88fdff603d4d880f1564dd8b5a9e24fd51a61c22d45624f73911e449bcf94000000000000000100000000000000000000000000000020dede73056e97d895ee544cd1f515e7f872b01d10ad51bde6457326fcf11c7b20000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000900000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020a0d79cccb761943b5256e1394b1226a2e684690943fb852321ae8d060722506b000000000000000100000000000000010000000000000020cf8a0f1ddefe7b4046369acf63949764e63161ba93c9f157762361c30aae1fc100000000000000010000000000000001000000000000002009f1dd01603cfe8cb20303e6d66fb1ad83bdc7093f7a52699cb4afa68588b483000000000000000100000000000000000000000000000020d4666304bf2809e0fe3311603148aa6aef2cc88395ddc38a022a9c742dada87d0000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000090000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000000000000000000200952292f8d6e229e47b3e346ef0d04cbe603ce81219126946b961ca91912577d0000000000000001000000000000000100000000000000207a3fa367a923e5d12e87ccdb6cd209b3bc3cc0afde4ed5f86101656aafd030520000000000000001000000000000000100000000000000203c7ec701f5e4b6f4992798f93bc359521c17689c879f0a4d5728d25a602fe261000000000000000100000000000000000000000000000020c1a70db1dbbbf1d266cc63410c3e1f798fbc2f00cc35d561bc0706474f565a7d000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000240000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020362ac7a88313f3547caa33e18f1bf2d22be8defe6282b59d479c56f15d583bca00000000000000010000000000000001000000000000002089d1f5e7ddab385cee9ef3c6e039bf9dba4cd0c7bf5968af1e87a54f1c8b98f4000000000000000100000000000000000000000000000020254ad08d8f651887ccdedd4264cbe8ac8a820f273e7e6a6eec9571b2bee83fed00000000000000010000000000000001000000000000002020ca2ebe06b78b863c42ebd67e820162645990710fb2212c31964405270d49be00000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000240000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020d748a576eca49ddf992cba75efec0f1d12f629d58fcde8a33bb703dab645e37f00000000000000010000000000000001000000000000002048d27b60aa9bff8a3ad72fa50e506b89b2c70434429163e60518d3b54dd8d4f40000000000000001000000000000000000000000000000201e4829424cc3731a985d6b9986b78d322139a6d6965ff67e79bdb4abe7107c85000000000000000100000000000000010000000000000020cb0c915a2fbf42f67d8ddb4687cdb94a70ea6dba8c337fad662aef43a1ff09120000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000240000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000001000000000000002028cb827a61cf5bd7ce600cd7f3eab1c60ed4942811ac1915593695bb3dd953d80000000000000001000000000000000100000000000000207295a2c10b1acf16129d092a7b9af37c389c4566a2bf22d8c69e0cf9f8719868000000000000000100000000000000000000000000000020504c7cfdf9b9d8a744d6d07015dc694b3c1e96fa04d9711bca9e89e47aea70bd000000000000000100000000000000010000000000000020ec94ab368df3700c4e485459b45d7544203947bced6933b6d2419aa51552b1e70000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002400000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020e1479132f529d1d3199b01f807de0d91cf20dcad1e7b80585f280b09fbf3754b000000000000000100000000000000010000000000000020d8587c740444d396342bde08fcc2aa14d09b3841a86867a8968a39985c1aae5f0000000000000001000000000000000000000000000000201b51cd96b5e7d3c5907dc40ebc575470d0b53cb58c9a11acee482a80587db2ca000000000000000100000000000000010000000000000020ce508bfa21ae59f4e3a574d7cf9aa2266b30a92dca771c1fb0e1be0bca3e9fec00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000240000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000209c5dc119f411a0ef5642262c45fc391cfca0ded082e37ef7d49b5a2ed9518bfb000000000000000100000000000000010000000000000020dbb5f88bfd82f174b6b75b33b6e1b57f9e8c171e2884327da5b36cbefd7067110000000000000001000000000000000000000000000000202f7c3c123b082e8ba8e01175c4f6ae18dec43d9efebf55f2769ff4eef4d2582b000000000000000100000000000000010000000000000020c1bc4adb66edbd4e3dab7de23832af2889cdfe7d4f7313a79599994c65f1d267000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000390000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020c5bfbba30acd27adf9049b86e741c9aed9f0aa634f4c011c25fe4d6bc0e6e2ec00000000000000010000000000000001000000000000002092254bddc93af51db85c84258645a7368b11c67713d9b7edb7798f818a67b7d100000000000000010000000000000001000000000000002013cba62cb82888bb083b50937d466b49f9391c00299bd77abb46de4352465093000000000000000100000000000000000000000000000020a3c68cdf76781d19db7aa603f4cd91ea38edfc0b5126585e0c4cc27eb1121e50000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000390000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000000000000000000002057eeed9c417c56a554abbabe201f1b8f7419e6c4f9c588b7cd73e53049aec360000000000000000100000000000000010000000000000020659bdac5e12fafcfbfba4939413f2dbcb8f4622495fa9d7b4be9541e24bf3f5f000000000000000100000000000000010000000000000020d1b5b1709939c022502c02de40058bf39c150bc062b6e13ba9efa821c1b2284200000000000000010000000000000000000000000000002081d62fb6f8e3c63bb07414f173e2f1761186f3a609b96be8e54bf144e18bd1e9000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000390000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000000000000000000204ae66da4ec6e996543c99f2e603b4283208ae6528b924ce9946629501ef0edd600000000000000010000000000000001000000000000002042ccda5e4f3610e7833759239b87dcb5feb5654641bd57359476edc936a15e8e000000000000000100000000000000010000000000000020de3c1116c517fc559702c15da18fca7713ea045f49bee0d28a5b11b093f744f5000000000000000100000000000000000000000000000020c8c39661891e6889268d1a75425c16fa10b5ce02a5817678bfb61fd4d7ba745b000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003900000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000000000000000000002028fa0341159216430f3cec85a0e258c1c6780b325aa638c561f0c89609574b68000000000000000100000000000000010000000000000020fdf80980218da61f93fdbe491188fb7f3191a3b3bb5166ce6014e8f20d70673d00000000000000010000000000000001000000000000002096a037551b0b573c983aaa7a75192a672a3c09151e279ffd3c1e0e670d35fd370000000000000001000000000000000000000000000000208ef32cdd20ab9840d12ae9a0d741f7d3f389289d74ea182f48337a1058f3b15d000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000390000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000000000000000000209c451188f9bea2f2b6d07b3db3ceaaa498f80506d191610f9d61974099dbe5e80000000000000001000000000000000100000000000000209e11faaa3c075b6834d4668a36d21b8294c07a039a232c100665d90b3d03bf4500000000000000010000000000000001000000000000002080cf796e32484601f36528ae033f1d268f38cb3aa9d351ba1b0fcd4e2043d757000000000000000100000000000000000000000000000020a79432284160ffbe7605792344dd2c3b75b783de349a59eac5f705dbb10d4fec000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000150000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000209a7f6ee04285cc053d122b4d2dc01674868c1c4198d702144ec6673d4f1735470000000000000001000000000000000100000000000000209b10e94ccc495ed067a2c6b3180fdcfddf4c8bc779cdf7fc14dde8feb399309d000000000000000100000000000000000000000000000020080b28b1dece6dde43a662bb2943cbbcfb4977254ddfb567d20ec3694d07decc000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000150000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000203ac1614b3ebad34b37931ec463de127c8bb45876ebd8f753c177b3b708f2eccb000000000000000100000000000000010000000000000020576d77dac3a70e1802ac9cbaf6777f6090720d9e7fccb6078e57d4811b497ee2000000000000000100000000000000000000000000000020ace429d6a2e0ab83426a9b9ba04ca6bb90f71e7ceee02c278a82a7859d4bc1820000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000150000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020b315c72fa41b10fad5bfe97985d9d38cdfb966274cd890d82281a154ddf380870000000000000001000000000000000100000000000000209c160349b93bdba6b3a6c3afcd2503bc1a79db30aeb896003c136aefc2ff9b3a00000000000000010000000000000000000000000000002005c7231b545188d801508269d5e616db314e98d0d1d96b4d859cba418919dce7000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001500000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020dee119a0ca0d75cbae521579b9854eb21e572f571eb2bc9024914fdc09b7d6760000000000000001000000000000000100000000000000204d597031c84975b5e61070724ab3d606668a57320d7d99c5a77ab1a1d5221bb4000000000000000100000000000000000000000000000020792b54430c2c7a5202334fa577281d00396a0c9d5a6149e8832c12c7a186e7b6000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000150000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020fb6f21306c23be5f073086377b0217641f535be016cabf1ed1dc1319d6107c3000000000000000010000000000000001000000000000002064127693e8da9c8e8a48196327c3c787b11da3246b2e852de189d6ccb7f2da7a0000000000000001000000000000000000000000000000208eb0d4e58e0649d2818142c4c7cefb08dd13094d3a575e5054570ef7155a1a53000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000150000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000209a7f6ee04285cc053d122b4d2dc01674868c1c4198d702144ec6673d4f1735470000000000000001000000000000000100000000000000209b10e94ccc495ed067a2c6b3180fdcfddf4c8bc779cdf7fc14dde8feb399309d000000000000000100000000000000000000000000000020080b28b1dece6dde43a662bb2943cbbcfb4977254ddfb567d20ec3694d07decc000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000150000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000203ac1614b3ebad34b37931ec463de127c8bb45876ebd8f753c177b3b708f2eccb000000000000000100000000000000010000000000000020576d77dac3a70e1802ac9cbaf6777f6090720d9e7fccb6078e57d4811b497ee2000000000000000100000000000000000000000000000020ace429d6a2e0ab83426a9b9ba04ca6bb90f71e7ceee02c278a82a7859d4bc1820000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000150000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020b315c72fa41b10fad5bfe97985d9d38cdfb966274cd890d82281a154ddf380870000000000000001000000000000000100000000000000209c160349b93bdba6b3a6c3afcd2503bc1a79db30aeb896003c136aefc2ff9b3a00000000000000010000000000000000000000000000002005c7231b545188d801508269d5e616db314e98d0d1d96b4d859cba418919dce7000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001500000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020dee119a0ca0d75cbae521579b9854eb21e572f571eb2bc9024914fdc09b7d6760000000000000001000000000000000100000000000000204d597031c84975b5e61070724ab3d606668a57320d7d99c5a77ab1a1d5221bb4000000000000000100000000000000000000000000000020792b54430c2c7a5202334fa577281d00396a0c9d5a6149e8832c12c7a186e7b6000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000150000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020fb6f21306c23be5f073086377b0217641f535be016cabf1ed1dc1319d6107c3000000000000000010000000000000001000000000000002064127693e8da9c8e8a48196327c3c787b11da3246b2e852de189d6ccb7f2da7a0000000000000001000000000000000000000000000000208eb0d4e58e0649d2818142c4c7cefb08dd13094d3a575e5054570ef7155a1a53000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000200000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020209825fa6d197927a0715d3fab3f49b0ae6f3efd3002918c17dc046ee978861c000000000000000100000000000000010000000000000020d087600766bd1df7913f14ae88a2e9b5b651504535f46ee5da14954af94de668000000000000000100000000000000010000000000000020cd2cd9ad2c779aa3995be1014c80f94a5247dc5109218180e006fbbe588ce2d800000000000000010000000000000001000000000000002020ca2ebe06b78b863c42ebd67e820162645990710fb2212c31964405270d49be00000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000200000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000100000000000000209aaa5cb490c71c98b9c07167071ae295f65b0a068c84a1f8eb2bda1e9dc68c8200000000000000010000000000000001000000000000002005e8acde41240846b1b148e6f1731d982d9499b315b49571f3c4e12d88da5822000000000000000100000000000000010000000000000020dfd7eac1317ff666e7a446a260d70430c9aa0f0bfccfe2edf4ae24a5d163595d000000000000000100000000000000010000000000000020cb0c915a2fbf42f67d8ddb4687cdb94a70ea6dba8c337fad662aef43a1ff09120000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000200000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000100000000000000209f162f0f2e1022c5e53050c46473ed871f621c6d953e6b6adda61d3b41ae303600000000000000010000000000000001000000000000002064922111b65302bddd53948632f9de2e4135390b8620b248b8a335776dedfd030000000000000001000000000000000100000000000000205dea807bd3761c569e5d91569ff1a4d18ca2750ddf526909660f91b2f84080cf000000000000000100000000000000010000000000000020ec94ab368df3700c4e485459b45d7544203947bced6933b6d2419aa51552b1e70000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002000000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020a6ef89ab9286315344599180c41362feb0e0dfafcedeb8970cb5549a047ce2a2000000000000000100000000000000010000000000000020aa69a887755987122b41014784240cfa2ea17a4e9b3aeba12dc7762da7582ecc000000000000000100000000000000010000000000000020c802860c649238e4c1cbd0ff648821a708a95501e146298b5b303abf07320669000000000000000100000000000000010000000000000020ce508bfa21ae59f4e3a574d7cf9aa2266b30a92dca771c1fb0e1be0bca3e9fec00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000200000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000010000000000000020ed9a22f6279d115c66072ff65bbcf9f22659696c2f828e556ae86d9a52d8431800000000000000010000000000000001000000000000002001ae3a0c28f45072672fa1d9d722f50b96f496c2095844698ce94190b48086ca000000000000000100000000000000010000000000000020378b42427141ebdcf4a6aaa2ee39a4e2bd01cb4125d3f5ce563ae81c900aa929000000000000000100000000000000010000000000000020c1bc4adb66edbd4e3dab7de23832af2889cdfe7d4f7313a79599994c65f1d267000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000160000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000001000000000000002042cb2165201ab8ea41affe9fbc23ef70f009dba666b45581fe56a336d6b425f7000000000000000100000000000000000000000000000020864e47462260929d60876a0babd915b08229a85eed60fe22ac85ec61ee1e866e000000000000000100000000000000000000000000000020080b28b1dece6dde43a662bb2943cbbcfb4977254ddfb567d20ec3694d07decc000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000160000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000001000000000000002063b397895a79ef39803fdb53e29d3e65bbfcff9fe06ef6fe7f9f0037e1e039660000000000000001000000000000000000000000000000206fd3b782e68eb5fac7cc20822b3858250b376d7e56a4db91bf0cb95ec3c4170b000000000000000100000000000000000000000000000020ace429d6a2e0ab83426a9b9ba04ca6bb90f71e7ceee02c278a82a7859d4bc1820000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000160000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000100000000000000205ecaaefbe239613fa89a9f1621b62fb6559f9289d5ec382aa2a032bb7a47a5700000000000000001000000000000000000000000000000202141d6e5fd028bcf7861ef8a16b249210fe3d52dc20d20c123863cd1b492a65f00000000000000010000000000000000000000000000002005c7231b545188d801508269d5e616db314e98d0d1d96b4d859cba418919dce7000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001600000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020dad428dcf0f2d1a3daeae2b619eccf0d064f6e5614b842c1b9daee22a6900e24000000000000000100000000000000000000000000000020688ce44aebd966aaa0c0b45729d96bcbe7ef069f1dbd95b956527d6cbc0a81cf000000000000000100000000000000000000000000000020792b54430c2c7a5202334fa577281d00396a0c9d5a6149e8832c12c7a186e7b6000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000160000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000001000000000000002005d3170f1b1685aeb531ffa7cef87ca50cb7887f2e0d9c871c7a07db84ea38bb000000000000000100000000000000000000000000000020484b1a9029b822ebc27ac439a0f45a04f55b9d4dedb7bacbc5e2a7b131bac56f0000000000000001000000000000000000000000000000208eb0d4e58e0649d2818142c4c7cefb08dd13094d3a575e5054570ef7155a1a53000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000330000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020729f9a4842e47471ec9eb0fc15695f30feec4440cdeba085eca4d8ffa6fca96500000000000000010000000000000000000000000000002020357880fc8e6dd74df46742da252f118fdb87961923030914ba2e8adf16cb52000000000000000100000000000000010000000000000020d668a432d047c9e275f7c7d20e0a761a44ce7e63d76a8974123279ebd303ad5300000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000330000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000205e2f9379af38ba02e299363f94ff2613db345709ae3930ec78e9d34cb8dc5808000000000000000100000000000000000000000000000020b36150103dfa24ee16b032ef9999b88d058ffbfb179c3608748ca0b3b79700ce000000000000000100000000000000010000000000000020a7afa996971e49948edcc6953b8e85b3a85abca1a8ca02bb441959ca7fbddc1e00000000000000010000000000000001000000000000002025513b7f08a347e3b4653b6a5b7b4504d17f3335eb68b911a07580668480ea5f000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000330000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020d74139170c3e989869dece6d59cd5c6a0d47fc349b6efd8fb24bf4f29e61dd410000000000000001000000000000000000000000000000209f5a2e0d1d216a03f22617946d77aff086f5e10c79f90d4eafcbe495bb54cb7e000000000000000100000000000000010000000000000020f956d888804e64a270d247562d2e4df7cb3baaff4b906f94b4e64fcb67d3fb92000000000000000100000000000000010000000000000020a61e4bd78e6377780bb7580457ace8abedf45db5c6b1905e0fc76ee6b540ec6f000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003300000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020d767ea564249bee1f3ae16b3f3dcecec061c22846a13b0e468a24bd36a75064900000000000000010000000000000000000000000000002069b52e0358d48b02c58f9efb5a46719a68c0846a23a5cd0907fb795dbe8a38da000000000000000100000000000000010000000000000020695844727e2fac06bb31a161155a39527775fb0591002573a9e4d4aee1e794880000000000000001000000000000000100000000000000201273eb79132092546fe9e443e04ce70d652607cb46845d8269cc51b07a5e2636000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000330000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000000000000000000002013db7d66d0dcb7034e195d6ffe9b124b9be9f43675296335fa70a1629fc586c50000000000000001000000000000000000000000000000201c91dcf009aaa43325becc5afa841bc4e23160c3c4cb657fac24880e6a26d3d5000000000000000100000000000000010000000000000020b4683887999b2d9372eba712b4bcbe56fe7c3bbf097eb71436f394f19c5e540e000000000000000100000000000000010000000000000020ca0bbcf3ba7d635c190762d1905f0cdb8d6b2af98d668d282ab970819d0796e0000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a6000000000000001a0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020867f4e7838d3464819f68d32891adc5d0d944835deee9dfab0413a6187f910fc0000000000000001000000000000000000000000000000208cdaf05b84ace4e1b630d731222e016e66fbb851f5088ed3b8479b35f2e863df000000000000000100000000000000010000000000000020087a599f409cb7bacc0662f1cbc4762c6f1a1276b1ec901eff46c07ae65a8c6900000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001a0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020d2b499fcc9331b1e24804113044924d390b6850d5bc89e618066edca59d1ed13000000000000000100000000000000000000000000000020d9a7882e1b23bd0c798af89adfff13ddc6504fb40d7de05d8d9b5e18a0c070a3000000000000000100000000000000010000000000000020c6bf6988a3e7187fae893c7eac58fd5d4e190f4f27238b2c7529d1f3965c96c30000000000000001000000000000000000000000000000201d592eaf7b775ac80f80f65ac71600e7b42e34c2b41369815d26559f705c392800000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000001a0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000010000000000000020a79ae30a48c139549d208cf89a135461b28439fd8919e5c233ca5b3e33aeceea00000000000000010000000000000000000000000000002098e0c7b3feeb36a5a88273df56a05597fc09a092f707963f75f04f69677c717e0000000000000001000000000000000100000000000000203ef5c9702626ef1d8658d6fd366e6eccf85b6bc4df13c0bb45cf2cd03ed14cdb00000000000000010000000000000000000000000000002008ef744cc4c71b3dc0ad6709747a269607614084afb6b3ce67e9224db4721b010000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001a00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000001000000000000002006cd2449db56d43a2c3e2dded95bfa66bd4cf5400f78048722d40908fa75fedb0000000000000001000000000000000000000000000000207ec39b6a5dc9b329823099187a25fa0797a534ea7de2324e8a8ac23d9de81f570000000000000001000000000000000100000000000000203e2095fe80077dc9629cd9c8a40245961543a9420478c0c9442afc86a4142c350000000000000001000000000000000000000000000000204a15bacd4d08e8dc5188fa2617ce3f2048ab093a457dbb1568a132452c1264e70000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000001a0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000206f2b697aeae6d5a5e69fdfc864eb42fb46914825f75d057503ccc7c0278fbb8c000000000000000100000000000000000000000000000020a60503c7177b62afb9c55a941b3a16a6533e3e51d6b343ef1576611e39f1ea93000000000000000100000000000000010000000000000020375d4ed2adacd2b33684527fb299ea4f3b26ea60a3e425eec8be3753fb113dad000000000000000100000000000000000000000000000020b705227efab8bbcce7e6efa6e6c2c8c24b0165a04b60ba4382b0c252dfa09b540000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000100000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020111b56eef069a81117bb82e07a549448811f7b498d0b8cbeaf3c460faf2448d100000000000000010000000000000001000000000000002025fba5ee32d0d9d008535ac6a7988f247a404065ee59ff9a7ab673fd8e76748e000000000000000100000000000000010000000000000020931fc0f60710e5550ab975b9da43260c532daa1aa0981b844a267625739ffb1b000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000100000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020bac9d793deaf5ca2cb626ce251dbd5baa016d0ecff6b13d4ef9cd35e7e50fc5e000000000000000100000000000000010000000000000020533af2ef25021e15fe55aca5e4979523d6e65ecbcdb590a881474ec1388d0773000000000000000100000000000000010000000000000020db75f2f16c24e1f86b75a7358eb0bff98736d767e792ba6500dc20c7a0f5b35f0000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000100000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000010000000000000020e6015a26b94bcdb79e6f934cfa346d3ee0e8daf62553fa64f1fd936655d5bd66000000000000000100000000000000010000000000000020b8afb98b9198daa87dda8a04edc3349eaed9056af0fcedb7edebe0393976711f0000000000000001000000000000000100000000000000208eca8e88d782a2c50068f91856cdb198e83fe75b53d95126db0ce5ba952fe000000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001000000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020855fd74a9c7da68d5343c0434ff683c9e73dc407ec49776b81e6584876f458cc00000000000000010000000000000001000000000000002052d82acada3026c4c21ecc2d34974875b8167e5120f6dc4a3d2696a6c0e4f004000000000000000100000000000000010000000000000020ef20ce255fff4244508dc0bf36aba9eeda1f94ba8303d6b23520cd52b598e748000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000100000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000001000000000000002038d9cc8443d7d65106239e86f0a2aa9c84d77501c33085e73594b698d102e803000000000000000100000000000000010000000000000020407f2fe6361457a84abe1bfbda60edd29b3305f1a37e916f7f923783f031398b00000000000000010000000000000001000000000000002003de737e05bbc77f493cd34846521552aa2f36e8056c458268b5b2cb15e5e244000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f000000000000001f0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000204887d5e2c6d2717d60c83accb5514a0f47e17910c8fc71f978c1948c709def1c000000000000000100000000000000000000000000000020a2502a6ae92a724a6e2a3a94ad93bd71bd29b046475706a32afa43f571c551f200000000000000010000000000000000000000000000002070f93532da12d95bd9b02b2acb02b74a3a532fbd8d1ec178ca7acf3e54865fb800000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001f0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000000000000000000020ebe4d8dc5157df91db0d0995b681cbbf37fbeb89712b703226fea4166f4a1be40000000000000001000000000000000000000000000000209556d77d8faa0780c175114ccc703ccef5e23f99123014f3cb64b72a60e79680000000000000000100000000000000000000000000000020635115868949cf601b309c4df546e182524084c9811bb9ee1fb0b250cc7303b00000000000000001000000000000000000000000000000201d592eaf7b775ac80f80f65ac71600e7b42e34c2b41369815d26559f705c392800000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000001f0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020413728e8c4f675e5ae69c204d5baf909547eab0d0db9a21f9e0c83a4af26c7a8000000000000000100000000000000000000000000000020b1f59360b8604b8aeb5462a45975637ec382c2d69e9898248c3ff0b5c0f84a490000000000000001000000000000000000000000000000201ee947871b7c23ff35900da33157b598a2a0de9b805ba0c5a66fd0f7a777b96e00000000000000010000000000000000000000000000002008ef744cc4c71b3dc0ad6709747a269607614084afb6b3ce67e9224db4721b010000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001f00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000208e23a76fd590b1f4b1a8ff7c9d4908df56bc09305057dc0722abd364823feacb0000000000000001000000000000000000000000000000203ba2c97654de7bfcc8d53977aba10d361172900252c2564628c1c4d0269897da000000000000000100000000000000000000000000000020f5ce7f2db68efde598b83474b5a87a6b370a42d4f72227049cb83d4df11bb6a10000000000000001000000000000000000000000000000204a15bacd4d08e8dc5188fa2617ce3f2048ab093a457dbb1568a132452c1264e70000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000001f0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020f9051b50a21ced87b20c943f4e2c2f753afa0b310bce31df963b96a0c87a200a000000000000000100000000000000000000000000000020c594fd6aef9bf0a9ad32de1c2b21fef40fc7cf55d5778a950bfba5bcec02647a000000000000000100000000000000000000000000000020b4a1b1f3f1cb855740daf8c4833a49820c58975955c04f60f0e741d105e354a6000000000000000100000000000000000000000000000020b705227efab8bbcce7e6efa6e6c2c8c24b0165a04b60ba4382b0c252dfa09b540000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000140000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000001000000000000002082733cd589abe0f03b4dffe58247afcd2988371e94575cc7b881fbe2971094360000000000000001000000000000000100000000000000209b10e94ccc495ed067a2c6b3180fdcfddf4c8bc779cdf7fc14dde8feb399309d000000000000000100000000000000000000000000000020080b28b1dece6dde43a662bb2943cbbcfb4977254ddfb567d20ec3694d07decc000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000140000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020ac03bba973f9db60405efd99de3388034a573b54a4261eb03c3e2c20b8bd8087000000000000000100000000000000010000000000000020576d77dac3a70e1802ac9cbaf6777f6090720d9e7fccb6078e57d4811b497ee2000000000000000100000000000000000000000000000020ace429d6a2e0ab83426a9b9ba04ca6bb90f71e7ceee02c278a82a7859d4bc1820000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000140000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000001000000000000002020c3867137bd66e5ae3cc59759dbb65bc16ccac01adc0650317f7aa6742d485a0000000000000001000000000000000100000000000000209c160349b93bdba6b3a6c3afcd2503bc1a79db30aeb896003c136aefc2ff9b3a00000000000000010000000000000000000000000000002005c7231b545188d801508269d5e616db314e98d0d1d96b4d859cba418919dce7000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001400000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000001000000000000002036af30d89ea435f7697c2571f0fd4b21940d3569d3b6aa5da5ab2a139ec941dc0000000000000001000000000000000100000000000000204d597031c84975b5e61070724ab3d606668a57320d7d99c5a77ab1a1d5221bb4000000000000000100000000000000000000000000000020792b54430c2c7a5202334fa577281d00396a0c9d5a6149e8832c12c7a186e7b6000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000140000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000010000000000000020e6129739f096f01e63ff5fd506580df7ed092542294fdec8b931b3ab9e3d289200000000000000010000000000000001000000000000002064127693e8da9c8e8a48196327c3c787b11da3246b2e852de189d6ccb7f2da7a0000000000000001000000000000000000000000000000208eb0d4e58e0649d2818142c4c7cefb08dd13094d3a575e5054570ef7155a1a53000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f000000000000002f0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000206762968d2a038b693f39a5fafabb81fab3aa9f357a0350c916992948fd26e55000000000000000010000000000000000000000000000002039207a50ee132e79b7d0ce2800c532ee3a79757e9182e86f047b4749e0a8f553000000000000000100000000000000000000000000000020a99ec68e5e702c95d72c271dfc6b7fba83a95d182bfe10c3b55beafee6b02033000000000000000100000000000000000000000000000020bc7cafa2d5bbcd43a2687bac1aaae39ea07c2b052355ee18f7bed28530381a1900000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba3610000000000000002f0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000206a66eb0dfb8905926c23fa9e6367d1d376993dc9d50000669fb74f7cdf2a1ceb00000000000000010000000000000000000000000000002046c654f85322efa17d6f767fbdb262d58f272795ab09da595b797b6dbc104b67000000000000000100000000000000000000000000000020eb65f60cc50d4a78bbd6805dbdb2bf94cc2376e36aa8b971a31f71d4de0675d8000000000000000100000000000000000000000000000020f69c63796b0fc3bb3288db5fc6b6321528bbbae678a35651696d958320b7b7430000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb000000000000002f0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020ca065fdd78dac515b99610f258fe14968d10b9e20f8bb65813195429d99bdadf00000000000000010000000000000000000000000000002053f8d1326552cc01162d03184cb369965f4fe3b3f9288f37fb45fe4cb085e3d900000000000000010000000000000000000000000000002006426e33baa1776913fabf5a4a6b22a45faa4944ecb6ee3596d2a7f071dad382000000000000000100000000000000000000000000000020907caeb633215ff4129e7dab9f17c9025c93f92b16178fd8678a98fad237f0c60000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002f00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020873b792ec4e2410a853e85a77ade2297f0c5052debe2f4a72bc8be27e11aa763000000000000000100000000000000000000000000000020c2c3840e2225f4c86bdad2b4e2fdb543bbc7c0eff9166fd7bb13cfeeaac17bdb00000000000000010000000000000000000000000000002045de5171730c798b920963229c38e2585a2ba74ae374a05c055e8f9ca4de381a000000000000000100000000000000000000000000000020f873579facce3b51fb36341332ab2926a95297aa0acd0b4108cefea53d9e1c8a00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee2000000000000002f0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020363e68339dbddefd48c83175cca73c718742589e41321b9e3ba208909cfd915800000000000000010000000000000000000000000000002088652ad02d50d76bbfaa8b1856252bba2bace61a0c45f2856992f5b6a2c97595000000000000000100000000000000000000000000000020fce731c6ff148191e5989829d154266d461abbe1b87f3bf49e080e482df6295c00000000000000010000000000000000000000000000002083502f4dae1d1e7cce3b35cd08cd8214523868a7bad81a68fd16bfd40a434166000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000230000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000201aeff246b42ff765abb4a54feaaa121e65140f197557feb8bf84c12e9f9cc26c000000000000000100000000000000000000000000000020c1d918bfc6a90fe225a1ed5b38fd5f39628d83f18dd4387d4b4ab6a9b10e1767000000000000000100000000000000010000000000000020cd2cd9ad2c779aa3995be1014c80f94a5247dc5109218180e006fbbe588ce2d800000000000000010000000000000001000000000000002020ca2ebe06b78b863c42ebd67e820162645990710fb2212c31964405270d49be00000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000230000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000204f31ffbfd0e93845466096a7290c6e796da7b8eef869fcf2e22c31915eeda6e10000000000000001000000000000000000000000000000203ed38b1bd3bc3ddd75d04c4629fd665a304c5dab0b4910b39bfffbe10171a7f6000000000000000100000000000000010000000000000020dfd7eac1317ff666e7a446a260d70430c9aa0f0bfccfe2edf4ae24a5d163595d000000000000000100000000000000010000000000000020cb0c915a2fbf42f67d8ddb4687cdb94a70ea6dba8c337fad662aef43a1ff09120000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000230000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000000000000000000200f140f9e31aac227063bc01121f02c025b3285deb2e8fc7ef121fedf9f1736e000000000000000010000000000000000000000000000002086e7040a0774570f9960fe464fb83c42abc7b879f0dfe879f0de85735aec02ad0000000000000001000000000000000100000000000000205dea807bd3761c569e5d91569ff1a4d18ca2750ddf526909660f91b2f84080cf000000000000000100000000000000010000000000000020ec94ab368df3700c4e485459b45d7544203947bced6933b6d2419aa51552b1e70000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002300000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000204754d4a00b78e831b7681bf22ec5a300527459ecea067b4ce92022571531057e000000000000000100000000000000000000000000000020efd9f706f3b59a5d1d59f20f48b351840e733afcd7bb618967149f2aa78ed243000000000000000100000000000000010000000000000020c802860c649238e4c1cbd0ff648821a708a95501e146298b5b303abf07320669000000000000000100000000000000010000000000000020ce508bfa21ae59f4e3a574d7cf9aa2266b30a92dca771c1fb0e1be0bca3e9fec00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000230000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020c154628481f4f2e5a3c3b45b667c4176aa437bf02ff4087354250339bb4fe09600000000000000010000000000000000000000000000002018bb48cc6fa644a9082407ccc46de0476228f9478d12605334faca8cc021fef9000000000000000100000000000000010000000000000020378b42427141ebdcf4a6aaa2ee39a4e2bd01cb4125d3f5ce563ae81c900aa929000000000000000100000000000000010000000000000020c1bc4adb66edbd4e3dab7de23832af2889cdfe7d4f7313a79599994c65f1d267000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a6000000000000003b0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020c1934ee86183446a30ea734b2dfd4b55040db13048b55756e26319ef2bf41196000000000000000100000000000000000000000000000020d6ba9716b244280517fc338189ee3d18ef53ca399f72746f13fab57a2218a56500000000000000010000000000000001000000000000002013cba62cb82888bb083b50937d466b49f9391c00299bd77abb46de4352465093000000000000000100000000000000000000000000000020a3c68cdf76781d19db7aa603f4cd91ea38edfc0b5126585e0c4cc27eb1121e50000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba3610000000000000003b0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000203dbad06c47412cde657291699361e7df3f49410981533a5b98eb5a7b822b79e800000000000000010000000000000000000000000000002017de19751749ce0d54847a722097b43c34cac652dc95e009a1582a98f79e57e1000000000000000100000000000000010000000000000020d1b5b1709939c022502c02de40058bf39c150bc062b6e13ba9efa821c1b2284200000000000000010000000000000000000000000000002081d62fb6f8e3c63bb07414f173e2f1761186f3a609b96be8e54bf144e18bd1e9000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb000000000000003b0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020e8780357828dfcc1dea266c0702c4256387aad7a3ec5bead3d5db0c5c4a4ca7d0000000000000001000000000000000000000000000000209f234605cf01ef33d332204251222525c89be80ab747123af25517094cb7af9d000000000000000100000000000000010000000000000020de3c1116c517fc559702c15da18fca7713ea045f49bee0d28a5b11b093f744f5000000000000000100000000000000000000000000000020c8c39661891e6889268d1a75425c16fa10b5ce02a5817678bfb61fd4d7ba745b000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003b00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020cb90048f4882d47276cf3683ae16a70258671d78dd923e6201215df11e3778560000000000000001000000000000000000000000000000208d08c383a659604b451ffe2487072ec95148a1d9b296a7c3b24165cd2e9af15400000000000000010000000000000001000000000000002096a037551b0b573c983aaa7a75192a672a3c09151e279ffd3c1e0e670d35fd370000000000000001000000000000000000000000000000208ef32cdd20ab9840d12ae9a0d741f7d3f389289d74ea182f48337a1058f3b15d000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee2000000000000003b0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020eda4a40d9789e39711c1618a46fd381d5cdec0b84999d1d7954531cc90a2a7110000000000000001000000000000000000000000000000208481796e2bcdf1b590dbf05053d7cd86a4031b1a280958468d49c2edd113db8f00000000000000010000000000000001000000000000002080cf796e32484601f36528ae033f1d268f38cb3aa9d351ba1b0fcd4e2043d757000000000000000100000000000000000000000000000020a79432284160ffbe7605792344dd2c3b75b783de349a59eac5f705dbb10d4fec000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000310000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020e7cde93b02f69b3bdfec265c0a80e30146008063d4d41d7952e09fef525ba56900000000000000010000000000000001000000000000002088b9c36ce6c205415134c822e13277bf26dc808cf4164d31fb3feb408d5a5e06000000000000000100000000000000010000000000000020d668a432d047c9e275f7c7d20e0a761a44ce7e63d76a8974123279ebd303ad5300000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000310000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000209a08d4167dd497190fd45acf9002d380b4bccfa4516d724073519f6dcaa34ff3000000000000000100000000000000010000000000000020eee7a3b5bd32066ff6fae493f197ab42d452b72e6653f36c785e7ffcaaef4bdc000000000000000100000000000000010000000000000020a7afa996971e49948edcc6953b8e85b3a85abca1a8ca02bb441959ca7fbddc1e00000000000000010000000000000001000000000000002025513b7f08a347e3b4653b6a5b7b4504d17f3335eb68b911a07580668480ea5f000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000310000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000000000000000000002055ec1c4f82144f667ff57b0b35d09d06d151bcd64d77112ba763dbb421ec0f560000000000000001000000000000000100000000000000200478375712328a539e0af75efba3145a5b83977f65fd6f26f2bef0e92f4cf47c000000000000000100000000000000010000000000000020f956d888804e64a270d247562d2e4df7cb3baaff4b906f94b4e64fcb67d3fb92000000000000000100000000000000010000000000000020a61e4bd78e6377780bb7580457ace8abedf45db5c6b1905e0fc76ee6b540ec6f000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003100000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000200bc04b47f026e77bdba7fa5067531c8b573f79f8515535e0a7f6cc54758ce5f5000000000000000100000000000000010000000000000020e4d3556944aef39dc24c83873c204349c90de3d0febf5e94f5d30752aacf58d1000000000000000100000000000000010000000000000020695844727e2fac06bb31a161155a39527775fb0591002573a9e4d4aee1e794880000000000000001000000000000000100000000000000201273eb79132092546fe9e443e04ce70d652607cb46845d8269cc51b07a5e2636000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000310000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020907d7781ed9c8c3275965d95e3143f70ea11068a85f6abc38fa31a0fbdfe2c26000000000000000100000000000000010000000000000020a834b11452e58e60e9d991391a3e2e59588fa25493c192ba98d1d33f296b4e32000000000000000100000000000000010000000000000020b4683887999b2d9372eba712b4bcbe56fe7c3bbf097eb71436f394f19c5e540e000000000000000100000000000000010000000000000020ca0bbcf3ba7d635c190762d1905f0cdb8d6b2af98d668d282ab970819d0796e0000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000350000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020940f95c06a507e6f7d898e90b69cf59c322cbc1bf161c7e7708a20e2008daae000000000000000010000000000000001000000000000002019594bf3fa8c4ace4d35341a4d29a3224bf349b4111630660fbc89ec6aac104c000000000000000100000000000000000000000000000020f4d1e64380a2c05ab0dc64ea31b5e288a4325921fa907811ded50419cc51d1ad00000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000350000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000000000000000000002053e10520c89a9d1c8bdf0299253b3e1ca6f732d90152e564751bae242a1ea2bf000000000000000100000000000000010000000000000020758d3cb1dae81bd7b5510b225e37ec1c33d27e558dbe4753d95613ab2950d5bb000000000000000100000000000000000000000000000020ecf960f1bd96e938be9efe0e8178c6faac8e4dade22047baafaa2cc5b776587a00000000000000010000000000000001000000000000002025513b7f08a347e3b4653b6a5b7b4504d17f3335eb68b911a07580668480ea5f000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000350000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020eae24cc712d4f1a65e36209bf029b296466b50798ad83a68022cdfe9d0a71b53000000000000000100000000000000010000000000000020d93941bd50076e052ac499d54a60936db5cc808ce93db11f3b5f2dbb9e84fdc900000000000000010000000000000000000000000000002057231a860f30ab1475bd8cdc0a3b4a8273fc215ab0540eb9f5f6b4129d47a3f6000000000000000100000000000000010000000000000020a61e4bd78e6377780bb7580457ace8abedf45db5c6b1905e0fc76ee6b540ec6f000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003500000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020a1c9ebb7e9894aaf5a518e2e5add167f6b300838e38da25e7147996653a3358800000000000000010000000000000001000000000000002018f7652e6b6650db62a7971a3982b0cb933246f7ee71973244096397d4069a48000000000000000100000000000000000000000000000020e07633752c9a7d0ab4d4825434743a1a21102cdb34ac00f9cb0067d34ffca5d90000000000000001000000000000000100000000000000201273eb79132092546fe9e443e04ce70d652607cb46845d8269cc51b07a5e2636000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000350000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020c0aebb3503b26954be7c1775bef21ec8009433f43163b9a737d5f6404505ab33000000000000000100000000000000010000000000000020f1df539161429e1cffb6b4435a018168f9836656cd0fc0043c6de7fa4ee6ca11000000000000000100000000000000000000000000000020f53683e29b7f89c0854446521e9f08cece64960ee2669247016ed70294c71940000000000000000100000000000000010000000000000020ca0bbcf3ba7d635c190762d1905f0cdb8d6b2af98d668d282ab970819d0796e0000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000380000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020d5d9e84739c0813f71d0359e99b9765469d7a41ef279c691c2254c026b06582900000000000000010000000000000001000000000000002092254bddc93af51db85c84258645a7368b11c67713d9b7edb7798f818a67b7d100000000000000010000000000000001000000000000002013cba62cb82888bb083b50937d466b49f9391c00299bd77abb46de4352465093000000000000000100000000000000000000000000000020a3c68cdf76781d19db7aa603f4cd91ea38edfc0b5126585e0c4cc27eb1121e50000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000380000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000001000000000000002055d67c076c5d396d33996ca84ffc7f8d71fd9b1d73515cdaa4c72d0551f4e075000000000000000100000000000000010000000000000020659bdac5e12fafcfbfba4939413f2dbcb8f4622495fa9d7b4be9541e24bf3f5f000000000000000100000000000000010000000000000020d1b5b1709939c022502c02de40058bf39c150bc062b6e13ba9efa821c1b2284200000000000000010000000000000000000000000000002081d62fb6f8e3c63bb07414f173e2f1761186f3a609b96be8e54bf144e18bd1e9000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000380000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000010000000000000020e3f22df1ef809bdd780125e0869fc594b795001da2cb5255ac86c869e41bb3d100000000000000010000000000000001000000000000002042ccda5e4f3610e7833759239b87dcb5feb5654641bd57359476edc936a15e8e000000000000000100000000000000010000000000000020de3c1116c517fc559702c15da18fca7713ea045f49bee0d28a5b11b093f744f5000000000000000100000000000000000000000000000020c8c39661891e6889268d1a75425c16fa10b5ce02a5817678bfb61fd4d7ba745b000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003800000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020dcad9ad63ac90f36294e45ac4e2910b6be1ff4ab582ec77d94b36aee2aaec3b7000000000000000100000000000000010000000000000020fdf80980218da61f93fdbe491188fb7f3191a3b3bb5166ce6014e8f20d70673d00000000000000010000000000000001000000000000002096a037551b0b573c983aaa7a75192a672a3c09151e279ffd3c1e0e670d35fd370000000000000001000000000000000000000000000000208ef32cdd20ab9840d12ae9a0d741f7d3f389289d74ea182f48337a1058f3b15d000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000380000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000202317a666cb7ea69255e854e67aa19b531a4a222717cc9440e4546a3fab5d7ed80000000000000001000000000000000100000000000000209e11faaa3c075b6834d4668a36d21b8294c07a039a232c100665d90b3d03bf4500000000000000010000000000000001000000000000002080cf796e32484601f36528ae033f1d268f38cb3aa9d351ba1b0fcd4e2043d757000000000000000100000000000000000000000000000020a79432284160ffbe7605792344dd2c3b75b783de349a59eac5f705dbb10d4fec000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a6000000000000000a0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020476556fd01eea8de8589b358ad655136b4529120df47439f805a84b80db3f0d4000000000000000100000000000000000000000000000020dfa1f4a78895997367f9cc44c38621692b6fc048ae50b225156222237c41470e000000000000000100000000000000010000000000000020f7575ab7c2207c8a39c727bb104d9b7c0105c5ae631fc01ee25378fbc615b0d20000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000000a0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020e3b0a77cc98e77fc6fdd13ed8259ab6d4de79d49242c183c0de0d56ef4309378000000000000000100000000000000000000000000000020aa1f37e3209956f186a8818de28664641609ece32260276f3cd7bc90fd2eff250000000000000001000000000000000100000000000000205dc15f79b1aa0ed50e58e550fd41c07ace7cdd1101aa37ef4273ae5e9038146f000000000000000100000000000000000000000000000020d1816e01b598e08ee1c459e3283ac87d454a19f2e41f3f85158e9f10b9faef71000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000000a0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000010000000000000020d0c6ac0a7420d305c0b0db904bd7753c10e5ad7e852b470a6ff6c97163a1d16c00000000000000010000000000000000000000000000002070360d152385685b7e662a1e2a50c902712bfecfae32367357c1a56b444bbe8b000000000000000100000000000000010000000000000020abf88fdff603d4d880f1564dd8b5a9e24fd51a61c22d45624f73911e449bcf94000000000000000100000000000000000000000000000020dede73056e97d895ee544cd1f515e7f872b01d10ad51bde6457326fcf11c7b20000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000a00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000001000000000000002027f3bc54e0caa3cf10949e5571695f1c1507a702c9659e3798e08a9c705770cf000000000000000100000000000000000000000000000020930e0dd388f89437381d9fbfbd30a20cad6120bbd212c874b3c1322539175da500000000000000010000000000000001000000000000002009f1dd01603cfe8cb20303e6d66fb1ad83bdc7093f7a52699cb4afa68588b483000000000000000100000000000000000000000000000020d4666304bf2809e0fe3311603148aa6aef2cc88395ddc38a022a9c742dada87d0000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000000a0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000209a4f190afc1d5b77cff588fa4251a0c9a43a7844bb96ea2e5800bc106f21c0b70000000000000001000000000000000000000000000000200b40b1436d0bc1adaefb89a6d250d74c85d9475ff40591b745878d6727b5078d0000000000000001000000000000000100000000000000203c7ec701f5e4b6f4992798f93bc359521c17689c879f0a4d5728d25a602fe261000000000000000100000000000000000000000000000020c1a70db1dbbbf1d266cc63410c3e1f798fbc2f00cc35d561bc0706474f565a7d000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f000000000000001e0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000001000000000000002017458b640f162e7d2ffc58f6689da16dfa3d46aee041a56d60baba3307c3c593000000000000000100000000000000000000000000000020a2502a6ae92a724a6e2a3a94ad93bd71bd29b046475706a32afa43f571c551f200000000000000010000000000000000000000000000002070f93532da12d95bd9b02b2acb02b74a3a532fbd8d1ec178ca7acf3e54865fb800000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001e0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020ead80559e72048aad5e5aee9cf2d51cd297f81e63afc70a01bc77e252efdd4830000000000000001000000000000000000000000000000209556d77d8faa0780c175114ccc703ccef5e23f99123014f3cb64b72a60e79680000000000000000100000000000000000000000000000020635115868949cf601b309c4df546e182524084c9811bb9ee1fb0b250cc7303b00000000000000001000000000000000000000000000000201d592eaf7b775ac80f80f65ac71600e7b42e34c2b41369815d26559f705c392800000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000001e0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000001000000000000002015c175fafb17797c6df0b95eb3e0e3b53d779fa8704c43da7ecffc8f14d2cdec000000000000000100000000000000000000000000000020b1f59360b8604b8aeb5462a45975637ec382c2d69e9898248c3ff0b5c0f84a490000000000000001000000000000000000000000000000201ee947871b7c23ff35900da33157b598a2a0de9b805ba0c5a66fd0f7a777b96e00000000000000010000000000000000000000000000002008ef744cc4c71b3dc0ad6709747a269607614084afb6b3ce67e9224db4721b010000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001e00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000001000000000000002052bbf92873b320b044fee87d383170b9570274940c7da766e23b6f77aa71011d0000000000000001000000000000000000000000000000203ba2c97654de7bfcc8d53977aba10d361172900252c2564628c1c4d0269897da000000000000000100000000000000000000000000000020f5ce7f2db68efde598b83474b5a87a6b370a42d4f72227049cb83d4df11bb6a10000000000000001000000000000000000000000000000204a15bacd4d08e8dc5188fa2617ce3f2048ab093a457dbb1568a132452c1264e70000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000001e0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000200c76146bd78d259f950c8d58437a5baf9a6bb130c93e14380f25bd735a47e106000000000000000100000000000000000000000000000020c594fd6aef9bf0a9ad32de1c2b21fef40fc7cf55d5778a950bfba5bcec02647a000000000000000100000000000000000000000000000020b4a1b1f3f1cb855740daf8c4833a49820c58975955c04f60f0e741d105e354a6000000000000000100000000000000000000000000000020b705227efab8bbcce7e6efa6e6c2c8c24b0165a04b60ba4382b0c252dfa09b540000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000150000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000209a7f6ee04285cc053d122b4d2dc01674868c1c4198d702144ec6673d4f1735470000000000000001000000000000000100000000000000209b10e94ccc495ed067a2c6b3180fdcfddf4c8bc779cdf7fc14dde8feb399309d000000000000000100000000000000000000000000000020080b28b1dece6dde43a662bb2943cbbcfb4977254ddfb567d20ec3694d07decc000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000150000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000203ac1614b3ebad34b37931ec463de127c8bb45876ebd8f753c177b3b708f2eccb000000000000000100000000000000010000000000000020576d77dac3a70e1802ac9cbaf6777f6090720d9e7fccb6078e57d4811b497ee2000000000000000100000000000000000000000000000020ace429d6a2e0ab83426a9b9ba04ca6bb90f71e7ceee02c278a82a7859d4bc1820000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000150000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020b315c72fa41b10fad5bfe97985d9d38cdfb966274cd890d82281a154ddf380870000000000000001000000000000000100000000000000209c160349b93bdba6b3a6c3afcd2503bc1a79db30aeb896003c136aefc2ff9b3a00000000000000010000000000000000000000000000002005c7231b545188d801508269d5e616db314e98d0d1d96b4d859cba418919dce7000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001500000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020dee119a0ca0d75cbae521579b9854eb21e572f571eb2bc9024914fdc09b7d6760000000000000001000000000000000100000000000000204d597031c84975b5e61070724ab3d606668a57320d7d99c5a77ab1a1d5221bb4000000000000000100000000000000000000000000000020792b54430c2c7a5202334fa577281d00396a0c9d5a6149e8832c12c7a186e7b6000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000150000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020fb6f21306c23be5f073086377b0217641f535be016cabf1ed1dc1319d6107c3000000000000000010000000000000001000000000000002064127693e8da9c8e8a48196327c3c787b11da3246b2e852de189d6ccb7f2da7a0000000000000001000000000000000000000000000000208eb0d4e58e0649d2818142c4c7cefb08dd13094d3a575e5054570ef7155a1a53000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000070000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020c999afc4670b92c57b5bdc1307bc519e96e3f6ce67a073eed8ce5ef11f19e6e90000000000000001000000000000000000000000000000209f204347ecc49a4dd4d3f69e4b19d6830b85a828d152c59461d5362f5cb21db2000000000000000100000000000000000000000000000020e2c28e037d30a9b1cafa16794e336898558e512395cfcbdeb25f5f9c08dba0820000000000000001000000000000000100000000000000209dc48d41a2d4c25b90ae286b21502aabe4177429574808eac78aed0ba9b970ba00000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000070000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000000000000000000020586da498cb5e8901c3ec5d5508acf316da62a500cdb2968accfb203b1bea9070000000000000000100000000000000000000000000000020b145ff653878ffcbd547f41efb06850149e78220022ff24e962b02ea4e2f228900000000000000010000000000000000000000000000002040a8544c04c63db69600b9141e0ac5c5c6f2f63672ad293fbf89e200ff76e373000000000000000100000000000000010000000000000020980805126f19ea693dca5bc5ccf2a5596180ccaa904f73633259ef7aabc46a94000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000070000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000000000000000000202ef43b85290f15bd3d8362bd3a87c43882d99278fde40955f79539a250ddcfe5000000000000000100000000000000000000000000000020eb8edb8d4ad346a6f22f37ed4739e1db15924952e1f20fa8193f29d46a4bc88100000000000000010000000000000000000000000000002009a92cdc4908f685ce6b1345b92ded1885178ef2a7aded52334aff5467d169d000000000000000010000000000000001000000000000002006ee5d52edd1f31a36e4a7048840c9439f8ef7333453a9f11e8679d7622f8558000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000700000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020e567f0c95d913448523311549b056d21dfa31416ea385df80191fca7982aa46f000000000000000100000000000000000000000000000020b175634046bfa2f2b9b36cdb156d3733a331af1ccbc15e26288e9c28db4926d0000000000000000100000000000000000000000000000020e371e374acaaf27337ab92c2b2c57caddfa4c8901247aecc181d0f2d03ab2034000000000000000100000000000000010000000000000020a990e84ca9579c1d2e4df0c931557e80f89da355c549b820bd65c57780b190f50000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000070000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000000000000000000209472ffaa4bf8f28e6b02bce59e72f9ef36670aac23b3ce8d524cf6c94d853e3300000000000000010000000000000000000000000000002050248d415788337ff59a4c34ebfd10ed22ae84b98064ecf23658f168d00faceb0000000000000001000000000000000000000000000000204f94e19275c3ad1b0968aa350973ee3c5947aff002b686efe6c16032d7650d02000000000000000100000000000000010000000000000020ffeab4f50dd382561e76011c806cd6dddf3c589391f5e48ba92af3fc97a82252000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000250000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020630872b42a7ea5d62dfc2184c80e80a41c4d9f74c4b045dc408ae07cd64da6c900000000000000010000000000000001000000000000002089d1f5e7ddab385cee9ef3c6e039bf9dba4cd0c7bf5968af1e87a54f1c8b98f4000000000000000100000000000000000000000000000020254ad08d8f651887ccdedd4264cbe8ac8a820f273e7e6a6eec9571b2bee83fed00000000000000010000000000000001000000000000002020ca2ebe06b78b863c42ebd67e820162645990710fb2212c31964405270d49be00000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000250000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000207f982963152f03dde7968faf90b0d81ff99227c62e69923666ebc8173d6462eb00000000000000010000000000000001000000000000002048d27b60aa9bff8a3ad72fa50e506b89b2c70434429163e60518d3b54dd8d4f40000000000000001000000000000000000000000000000201e4829424cc3731a985d6b9986b78d322139a6d6965ff67e79bdb4abe7107c85000000000000000100000000000000010000000000000020cb0c915a2fbf42f67d8ddb4687cdb94a70ea6dba8c337fad662aef43a1ff09120000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000250000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020b123420fcecb372d37588afff58d72c753d9db2472c3503179752ce3dd8e91030000000000000001000000000000000100000000000000207295a2c10b1acf16129d092a7b9af37c389c4566a2bf22d8c69e0cf9f8719868000000000000000100000000000000000000000000000020504c7cfdf9b9d8a744d6d07015dc694b3c1e96fa04d9711bca9e89e47aea70bd000000000000000100000000000000010000000000000020ec94ab368df3700c4e485459b45d7544203947bced6933b6d2419aa51552b1e70000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002500000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000207ed847cad377a356eb74ddd306fd60d367e6c53509cf6d4d21669a79b2262fba000000000000000100000000000000010000000000000020d8587c740444d396342bde08fcc2aa14d09b3841a86867a8968a39985c1aae5f0000000000000001000000000000000000000000000000201b51cd96b5e7d3c5907dc40ebc575470d0b53cb58c9a11acee482a80587db2ca000000000000000100000000000000010000000000000020ce508bfa21ae59f4e3a574d7cf9aa2266b30a92dca771c1fb0e1be0bca3e9fec00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000250000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020cb6ec0139eb350e0de5a5a6e174e0cb4917a55d918936048b34724b384826deb000000000000000100000000000000010000000000000020dbb5f88bfd82f174b6b75b33b6e1b57f9e8c171e2884327da5b36cbefd7067110000000000000001000000000000000000000000000000202f7c3c123b082e8ba8e01175c4f6ae18dec43d9efebf55f2769ff4eef4d2582b000000000000000100000000000000010000000000000020c1bc4adb66edbd4e3dab7de23832af2889cdfe7d4f7313a79599994c65f1d267000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000310000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020e7cde93b02f69b3bdfec265c0a80e30146008063d4d41d7952e09fef525ba56900000000000000010000000000000001000000000000002088b9c36ce6c205415134c822e13277bf26dc808cf4164d31fb3feb408d5a5e06000000000000000100000000000000010000000000000020d668a432d047c9e275f7c7d20e0a761a44ce7e63d76a8974123279ebd303ad5300000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000310000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000209a08d4167dd497190fd45acf9002d380b4bccfa4516d724073519f6dcaa34ff3000000000000000100000000000000010000000000000020eee7a3b5bd32066ff6fae493f197ab42d452b72e6653f36c785e7ffcaaef4bdc000000000000000100000000000000010000000000000020a7afa996971e49948edcc6953b8e85b3a85abca1a8ca02bb441959ca7fbddc1e00000000000000010000000000000001000000000000002025513b7f08a347e3b4653b6a5b7b4504d17f3335eb68b911a07580668480ea5f000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000310000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000000000000000000002055ec1c4f82144f667ff57b0b35d09d06d151bcd64d77112ba763dbb421ec0f560000000000000001000000000000000100000000000000200478375712328a539e0af75efba3145a5b83977f65fd6f26f2bef0e92f4cf47c000000000000000100000000000000010000000000000020f956d888804e64a270d247562d2e4df7cb3baaff4b906f94b4e64fcb67d3fb92000000000000000100000000000000010000000000000020a61e4bd78e6377780bb7580457ace8abedf45db5c6b1905e0fc76ee6b540ec6f000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003100000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000200bc04b47f026e77bdba7fa5067531c8b573f79f8515535e0a7f6cc54758ce5f5000000000000000100000000000000010000000000000020e4d3556944aef39dc24c83873c204349c90de3d0febf5e94f5d30752aacf58d1000000000000000100000000000000010000000000000020695844727e2fac06bb31a161155a39527775fb0591002573a9e4d4aee1e794880000000000000001000000000000000100000000000000201273eb79132092546fe9e443e04ce70d652607cb46845d8269cc51b07a5e2636000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000310000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020907d7781ed9c8c3275965d95e3143f70ea11068a85f6abc38fa31a0fbdfe2c26000000000000000100000000000000010000000000000020a834b11452e58e60e9d991391a3e2e59588fa25493c192ba98d1d33f296b4e32000000000000000100000000000000010000000000000020b4683887999b2d9372eba712b4bcbe56fe7c3bbf097eb71436f394f19c5e540e000000000000000100000000000000010000000000000020ca0bbcf3ba7d635c190762d1905f0cdb8d6b2af98d668d282ab970819d0796e0000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a6000000000000001d0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020a89096b06ea97fc764549f477ec35dc13b208ea05aea251072e9bc82b6f3a78e0000000000000001000000000000000100000000000000202ec5ed8b835c098bcf1fbaa0f4aab5053575fbe2dd675f6a8528d2ae539d073300000000000000010000000000000000000000000000002070f93532da12d95bd9b02b2acb02b74a3a532fbd8d1ec178ca7acf3e54865fb800000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001d0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000206838e20cdd11196c2c33d5322dd690e81a3eee788ea691ed628a7ef36ca21b6b000000000000000100000000000000010000000000000020e4b2b21638b26d0fbd21e1a61477670910de9d6a5a534cc89f2e66926c92590d000000000000000100000000000000000000000000000020635115868949cf601b309c4df546e182524084c9811bb9ee1fb0b250cc7303b00000000000000001000000000000000000000000000000201d592eaf7b775ac80f80f65ac71600e7b42e34c2b41369815d26559f705c392800000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000001d0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020d0fd57f00841b509d4c6d2212ccb38587bbc741e02dedf856402a2bdd12ad0ad000000000000000100000000000000010000000000000020197b3fade2da4dccae7c39182e13ca3c80d7ab354bd093846a22e052814766ac0000000000000001000000000000000000000000000000201ee947871b7c23ff35900da33157b598a2a0de9b805ba0c5a66fd0f7a777b96e00000000000000010000000000000000000000000000002008ef744cc4c71b3dc0ad6709747a269607614084afb6b3ce67e9224db4721b010000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001d00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020e167853023255bc66f0953cc3ff2785ec81d96ef333e5412c12995ee607e79f2000000000000000100000000000000010000000000000020ea6edfa94c83df2c0120776cb5622744d2e6b641fe47e78813b62588fad5a6e8000000000000000100000000000000000000000000000020f5ce7f2db68efde598b83474b5a87a6b370a42d4f72227049cb83d4df11bb6a10000000000000001000000000000000000000000000000204a15bacd4d08e8dc5188fa2617ce3f2048ab093a457dbb1568a132452c1264e70000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000001d0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020977dcc0f390edc4c8e7c60ca37d139fd8af75cdd07d7f51df6f4a33958ded816000000000000000100000000000000010000000000000020fd33a21eeff04663387fcf1c31e815a571114521fabf808a5505ae8eb3bc6104000000000000000100000000000000000000000000000020b4a1b1f3f1cb855740daf8c4833a49820c58975955c04f60f0e741d105e354a6000000000000000100000000000000000000000000000020b705227efab8bbcce7e6efa6e6c2c8c24b0165a04b60ba4382b0c252dfa09b540000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f000000000000001d0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020a89096b06ea97fc764549f477ec35dc13b208ea05aea251072e9bc82b6f3a78e0000000000000001000000000000000100000000000000202ec5ed8b835c098bcf1fbaa0f4aab5053575fbe2dd675f6a8528d2ae539d073300000000000000010000000000000000000000000000002070f93532da12d95bd9b02b2acb02b74a3a532fbd8d1ec178ca7acf3e54865fb800000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001d0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000206838e20cdd11196c2c33d5322dd690e81a3eee788ea691ed628a7ef36ca21b6b000000000000000100000000000000010000000000000020e4b2b21638b26d0fbd21e1a61477670910de9d6a5a534cc89f2e66926c92590d000000000000000100000000000000000000000000000020635115868949cf601b309c4df546e182524084c9811bb9ee1fb0b250cc7303b00000000000000001000000000000000000000000000000201d592eaf7b775ac80f80f65ac71600e7b42e34c2b41369815d26559f705c392800000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000001d0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020d0fd57f00841b509d4c6d2212ccb38587bbc741e02dedf856402a2bdd12ad0ad000000000000000100000000000000010000000000000020197b3fade2da4dccae7c39182e13ca3c80d7ab354bd093846a22e052814766ac0000000000000001000000000000000000000000000000201ee947871b7c23ff35900da33157b598a2a0de9b805ba0c5a66fd0f7a777b96e00000000000000010000000000000000000000000000002008ef744cc4c71b3dc0ad6709747a269607614084afb6b3ce67e9224db4721b010000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001d00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020e167853023255bc66f0953cc3ff2785ec81d96ef333e5412c12995ee607e79f2000000000000000100000000000000010000000000000020ea6edfa94c83df2c0120776cb5622744d2e6b641fe47e78813b62588fad5a6e8000000000000000100000000000000000000000000000020f5ce7f2db68efde598b83474b5a87a6b370a42d4f72227049cb83d4df11bb6a10000000000000001000000000000000000000000000000204a15bacd4d08e8dc5188fa2617ce3f2048ab093a457dbb1568a132452c1264e70000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000001d0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020977dcc0f390edc4c8e7c60ca37d139fd8af75cdd07d7f51df6f4a33958ded816000000000000000100000000000000010000000000000020fd33a21eeff04663387fcf1c31e815a571114521fabf808a5505ae8eb3bc6104000000000000000100000000000000000000000000000020b4a1b1f3f1cb855740daf8c4833a49820c58975955c04f60f0e741d105e354a6000000000000000100000000000000000000000000000020b705227efab8bbcce7e6efa6e6c2c8c24b0165a04b60ba4382b0c252dfa09b540000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000010000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020ce2da5dd3f1d2499114e62007db0bc8b52860a97086c4d1d9b291f96e0ac9c2e000000000000000100000000000000010000000000000020fc1dbba6f9b455616fa548f07000bd186f0be1060371081b1c952c87cb2969850000000000000001000000000000000100000000000000205bc3e12c36d4a2e20b1b195ac346c64db1219ed22eb08085da4d26fcd4973a5e0000000000000001000000000000000100000000000000209dc48d41a2d4c25b90ae286b21502aabe4177429574808eac78aed0ba9b970ba00000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000010000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000000000000000000020bf352c60784b74b941824f2d63cf3836272db67d7aeeacad2aebe65815faf2a5000000000000000100000000000000010000000000000020426a93f6deffd2b075525a4dae94d94e1a8e6a36b7caff23457ae4cce303aa10000000000000000100000000000000010000000000000020e625f3331016e7cd88bea7a7b855bae1ee013995c9ef355b8748e4878dd9c543000000000000000100000000000000010000000000000020980805126f19ea693dca5bc5ccf2a5596180ccaa904f73633259ef7aabc46a94000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000010000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000000000000000000202b14082c23a02f1d9d6db9546bbf2312f865ca20039d204443ce8702eca55d60000000000000000100000000000000010000000000000020f020441b9681e335c14a2a6c21dd8510b27a0dae0eec61b72fa315a598c8b87f000000000000000100000000000000010000000000000020ddf36e15c6d2cad2a2d13ca341f8f429ea1de4012e969c8489e61f092d7f701d00000000000000010000000000000001000000000000002006ee5d52edd1f31a36e4a7048840c9439f8ef7333453a9f11e8679d7622f8558000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000100000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000200043a3e5aa00392afa1907a58865b4472da25d1bb465711605b4bce58b63030300000000000000010000000000000001000000000000002031a4776534529348397cae2c9d705a8eafe3961afed35fdad2915095b5efbf33000000000000000100000000000000010000000000000020886082a9355e3afea404279c3bebead20b99039dd4aa0b3d0dab726e1e29aff9000000000000000100000000000000010000000000000020a990e84ca9579c1d2e4df0c931557e80f89da355c549b820bd65c57780b190f50000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000010000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020c82ca78efe4b64d5751be30417b609833fac301f253ecbffe41e8e9bee96cff60000000000000001000000000000000100000000000000206ebbae03bedcb30a6ac53ee99b1ba731605aa9a26e3a2462ba854af10e81ed47000000000000000100000000000000010000000000000020e211041d56d70c70c0fe4028f21a169da1cd4ca4e960c648ebea202d6c43674c000000000000000100000000000000010000000000000020ffeab4f50dd382561e76011c806cd6dddf3c589391f5e48ba92af3fc97a82252000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000030000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020b7c8e313feed160e8acf05ea4bfb6f176446c2ac0bc9f2abc9b686508ab52f6c0000000000000001000000000000000000000000000000209671522c78c40e86ef0e8a667a3e46003403098881dba6475154303e1c3e65ac0000000000000001000000000000000100000000000000205bc3e12c36d4a2e20b1b195ac346c64db1219ed22eb08085da4d26fcd4973a5e0000000000000001000000000000000100000000000000209dc48d41a2d4c25b90ae286b21502aabe4177429574808eac78aed0ba9b970ba00000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000030000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000000000000000000020c7c617fe5a8e3fcee395b25f5aad1075de8af4c63d02a7a5ccf0ebcc3757baa10000000000000001000000000000000000000000000000201fe587fe304db71b83584845c66187566a5fb7270585460d0475013af24044b6000000000000000100000000000000010000000000000020e625f3331016e7cd88bea7a7b855bae1ee013995c9ef355b8748e4878dd9c543000000000000000100000000000000010000000000000020980805126f19ea693dca5bc5ccf2a5596180ccaa904f73633259ef7aabc46a94000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000030000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020ce056a02bde877e3b53dd1faa6938832c1ed6fadac97fd1c0a924161b6298fa2000000000000000100000000000000000000000000000020254828136b43e34900d85850fa1210c25e9d1c343f57d660963534a5e494b204000000000000000100000000000000010000000000000020ddf36e15c6d2cad2a2d13ca341f8f429ea1de4012e969c8489e61f092d7f701d00000000000000010000000000000001000000000000002006ee5d52edd1f31a36e4a7048840c9439f8ef7333453a9f11e8679d7622f8558000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000300000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020c066efe3dfef71694149148ee6cb2872aefd1b4f2fc9862252abee42af30ed5a000000000000000100000000000000000000000000000020bb61afaca75702079a77cb4ffb618e76255194cb8ac3e09cf817da739cc0038d000000000000000100000000000000010000000000000020886082a9355e3afea404279c3bebead20b99039dd4aa0b3d0dab726e1e29aff9000000000000000100000000000000010000000000000020a990e84ca9579c1d2e4df0c931557e80f89da355c549b820bd65c57780b190f50000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000030000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000000000000000000002051a58812d4ed2697e8b31024f55f4062373f3388fd3d1701366bc11ac7a6b961000000000000000100000000000000000000000000000020e0698d131d704ec64db6c2ee76f3fff3800a90d403f81572de0ab695e257b3e9000000000000000100000000000000010000000000000020e211041d56d70c70c0fe4028f21a169da1cd4ca4e960c648ebea202d6c43674c000000000000000100000000000000010000000000000020ffeab4f50dd382561e76011c806cd6dddf3c589391f5e48ba92af3fc97a82252000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000080000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020657f400c23f985ef1ba27d0e61eec710dc328bb9ca9d9fcbbed56910fe31e4490000000000000001000000000000000100000000000000204e8bc169e0bffb7af86e442b025c73a9c0e2c8fcbfdcbdbfd7d568446045f1ae000000000000000100000000000000010000000000000020f7575ab7c2207c8a39c727bb104d9b7c0105c5ae631fc01ee25378fbc615b0d20000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000080000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020325051efdb8424e62d624b11d6b7eeb927253341aa3927034fbb0c8bf76c12ff000000000000000100000000000000010000000000000020785181f64823ec7b563f1cdf18df75b075d0a5963a0db15b3a9e3b0b42f36f1b0000000000000001000000000000000100000000000000205dc15f79b1aa0ed50e58e550fd41c07ace7cdd1101aa37ef4273ae5e9038146f000000000000000100000000000000000000000000000020d1816e01b598e08ee1c459e3283ac87d454a19f2e41f3f85158e9f10b9faef71000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000080000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000100000000000000202eeead91b20ab57873ca7c783915a4212ed0dc2f7961aab41598ea0bc8a47329000000000000000100000000000000010000000000000020a6ac2199362ac987e04ad05199fe7f8be4b60786974730c5353094867d88f34f000000000000000100000000000000010000000000000020abf88fdff603d4d880f1564dd8b5a9e24fd51a61c22d45624f73911e449bcf94000000000000000100000000000000000000000000000020dede73056e97d895ee544cd1f515e7f872b01d10ad51bde6457326fcf11c7b20000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000800000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020920e2801b283c6626363cc9ab21f52393946e3a96b1195de32cbde245b3fa8d8000000000000000100000000000000010000000000000020cf8a0f1ddefe7b4046369acf63949764e63161ba93c9f157762361c30aae1fc100000000000000010000000000000001000000000000002009f1dd01603cfe8cb20303e6d66fb1ad83bdc7093f7a52699cb4afa68588b483000000000000000100000000000000000000000000000020d4666304bf2809e0fe3311603148aa6aef2cc88395ddc38a022a9c742dada87d0000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000080000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000207835bfb9721cf146284a361fac9b687f1d55206c50ec6b050d1a1c0f1283c2f50000000000000001000000000000000100000000000000207a3fa367a923e5d12e87ccdb6cd209b3bc3cc0afde4ed5f86101656aafd030520000000000000001000000000000000100000000000000203c7ec701f5e4b6f4992798f93bc359521c17689c879f0a4d5728d25a602fe261000000000000000100000000000000000000000000000020c1a70db1dbbbf1d266cc63410c3e1f798fbc2f00cc35d561bc0706474f565a7d000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000290000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000204b88604a6608c6eb9ba3bede044e248d62becadb080a456681805ab480b64a2400000000000000010000000000000001000000000000002092ff38622b2decefcf8307aa018adefdfdaa06fc5a520c0c3a04990f33027694000000000000000100000000000000010000000000000020a346fbbeee725da089a6715dac946ab17533f7a77d571694ca1f1b28abb7d944000000000000000100000000000000000000000000000020bc7cafa2d5bbcd43a2687bac1aaae39ea07c2b052355ee18f7bed28530381a1900000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000290000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000000000000000000002046b4103846ae2c10a547fe76a6b5a371acc433d524e7482d268b79767c7664dc000000000000000100000000000000010000000000000020a7171d4fa61fd12128f5c4965241652c8ddc0c46e8c7a964ffcf0984ffd7f89500000000000000010000000000000001000000000000002052ba89114da2853e8fa07d551806893e486429c35967e90f1364b3d437abdd22000000000000000100000000000000000000000000000020f69c63796b0fc3bb3288db5fc6b6321528bbbae678a35651696d958320b7b7430000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000290000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000000000000000000002070ac9c1a1cc0f370eef8792db4e8a07c0a2b92e6fe6e9e2b6988a0f7d968a20b000000000000000100000000000000010000000000000020c53a0cd0107f66cc790becb38f5fee3c0f9d025124f698f0f2467cde1fbb7f93000000000000000100000000000000010000000000000020512ede82de18eac361b0347346d45577998f11f0951205ca4172f9d850b9919b000000000000000100000000000000000000000000000020907caeb633215ff4129e7dab9f17c9025c93f92b16178fd8678a98fad237f0c60000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002900000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020b6e877a515adfcb592a770d462b43e449cee8c738d16f969724fb575ae8bb0b7000000000000000100000000000000010000000000000020580ef9da1ed5e2babc435eca9ea73f027bf97010b64a6f63c69c2aadf5386b910000000000000001000000000000000100000000000000200df33e0d9ca72d06a434af2c6b972a6b03667095ac1a683b86514e0012239182000000000000000100000000000000000000000000000020f873579facce3b51fb36341332ab2926a95297aa0acd0b4108cefea53d9e1c8a00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000290000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020b09d90014812ec62509979fb5d4af4e69400cc5cd308cd96ced13e9dd3199e310000000000000001000000000000000100000000000000200dbed97830aea5096cb060a71b37c812fde90fb3a125044efa801f95addf091d0000000000000001000000000000000100000000000000204b8c5f91ebd422cdb230fb374d30859759d449e266b2903f6b848cf8e5baf94f00000000000000010000000000000000000000000000002083502f4dae1d1e7cce3b35cd08cd8214523868a7bad81a68fd16bfd40a434166000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a6000000000000000d0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020b2bd9166fb292fd068715be077faabd5100a082db2ee30b660a7a840a453295e00000000000000010000000000000001000000000000002057d79dbf8ed8b8aa3585c69adf87ef75ce64bdf75ac79a37fcbc979ba37b0a3e000000000000000100000000000000000000000000000020e4531c0cf3964a849077d3f66aca1c780770dbd36f02f9e591cac1251871b88a0000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000000d0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000205e14be2c5de23e6ed70fd6d842a4c814558815484501d6531472c2a4b9b7c626000000000000000100000000000000010000000000000020c3bd632f94a0f936e286d09638e32d9a2fc3eea8f13d18b4ae707edd67fdf6740000000000000001000000000000000000000000000000204e242999845fcac82f38a2f8827ba9e31d01ad478796f9013f43e0bec62d088f000000000000000100000000000000000000000000000020d1816e01b598e08ee1c459e3283ac87d454a19f2e41f3f85158e9f10b9faef71000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000000d0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000000000000000000002090ff676b9c14f4671a0e91cf403a88fb0b22e7a8a8a370aba0a28e26bcea1ac300000000000000010000000000000001000000000000002020093024ea2eaeb3c5934a41935a11dab2086c3d0aab8084952a99d9f0d224c20000000000000001000000000000000000000000000000207e61af4d68362cc7280f55cf450babaa4c27e0d7b623080a1dc3e5db95a6761d000000000000000100000000000000000000000000000020dede73056e97d895ee544cd1f515e7f872b01d10ad51bde6457326fcf11c7b20000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000d00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000000000000000000002031239eb1c08af680c4f00771654ce894f0d3587f58ea53c47ed4a11c1fa85145000000000000000100000000000000010000000000000020a91a262b04c6a7139a4bd4ed8b0f30807db95327049cf2a6d7b25f8be94e37b90000000000000001000000000000000000000000000000208184ee99edcbc305656197375ced84668d6a6dfe60525a4437554af40db6661e000000000000000100000000000000000000000000000020d4666304bf2809e0fe3311603148aa6aef2cc88395ddc38a022a9c742dada87d0000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000000d0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020eb8d9836cb953c6437c496ece6cbdfdd7243ec51671ccb3af47a85fa778e312c00000000000000010000000000000001000000000000002018c3f53aac4183df50ec2d566e245042dd3e3d71adf78621df52d71069399b8400000000000000010000000000000000000000000000002047d66e60185c2492df2be91f5c8e879243c3ec6d4ebe0b5f2c37fcf0fff4d188000000000000000100000000000000000000000000000020c1a70db1dbbbf1d266cc63410c3e1f798fbc2f00cc35d561bc0706474f565a7d000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f000000000000002c0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000100000000000000203143eaf6c1aa46c7aacd87875465de486e36c316b7a0b8bddd6c1517dc726d4d000000000000000100000000000000010000000000000020f10b3d1735c0e4a98365cd6a45c7b241ee1170e0a7ba2fc4a24bab4dfa03f86b000000000000000100000000000000000000000000000020a99ec68e5e702c95d72c271dfc6b7fba83a95d182bfe10c3b55beafee6b02033000000000000000100000000000000000000000000000020bc7cafa2d5bbcd43a2687bac1aaae39ea07c2b052355ee18f7bed28530381a1900000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba3610000000000000002c0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020325148bc2c92b4a9b7fbd60e3c2c802e14a460b09bb186e104c1c59b926381ac000000000000000100000000000000010000000000000020bcfd43a16b89cd418f8366dfd07ee2192ea7ffa028e030d1b656dc88979acb7c000000000000000100000000000000000000000000000020eb65f60cc50d4a78bbd6805dbdb2bf94cc2376e36aa8b971a31f71d4de0675d8000000000000000100000000000000000000000000000020f69c63796b0fc3bb3288db5fc6b6321528bbbae678a35651696d958320b7b7430000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb000000000000002c0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000100000000000000204f0fb56f75e03da7f2f554b9aab31d03c16451499c7e038f1b1254547541cefb000000000000000100000000000000010000000000000020392bbf45b43f0b143a079c45cdf97d23e309c818a7f50d8a138242f783f140e000000000000000010000000000000000000000000000002006426e33baa1776913fabf5a4a6b22a45faa4944ecb6ee3596d2a7f071dad382000000000000000100000000000000000000000000000020907caeb633215ff4129e7dab9f17c9025c93f92b16178fd8678a98fad237f0c60000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002c00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000100000000000000205d5491afbc2809464939001fd12ae88cb0a41ac4661174168145ed550bc70fd1000000000000000100000000000000010000000000000020facfada9baddf0e1d85bdc12bcb699700bc1eef3a5c1ac428f0a1b755f36b17400000000000000010000000000000000000000000000002045de5171730c798b920963229c38e2585a2ba74ae374a05c055e8f9ca4de381a000000000000000100000000000000000000000000000020f873579facce3b51fb36341332ab2926a95297aa0acd0b4108cefea53d9e1c8a00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee2000000000000002c0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000001000000000000002045f539421644e8c322c67c727085f4fa90364e2b03fedb21592e199092e759af00000000000000010000000000000001000000000000002045bc4c337b54e6e486f7686f4544d67b52d3d9407afb6f807b84c181ecad3077000000000000000100000000000000000000000000000020fce731c6ff148191e5989829d154266d461abbe1b87f3bf49e080e482df6295c00000000000000010000000000000000000000000000002083502f4dae1d1e7cce3b35cd08cd8214523868a7bad81a68fd16bfd40a434166000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000180000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020e37ac79746bf4ccddc8c206c6aed5212120d8eb3fc8f9deefaecc4cb8cee272600000000000000010000000000000001000000000000002064e8ee4e1f10a0c37b320e29748186b9e21c030e00ccb00c88b21962c5f0f301000000000000000100000000000000010000000000000020087a599f409cb7bacc0662f1cbc4762c6f1a1276b1ec901eff46c07ae65a8c6900000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000180000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020cc0712b34302d3e6312f8647a0a6fa2b486544a0d2e848deaf69f02cb204a167000000000000000100000000000000010000000000000020b8f1edd8329da4a7d85eebc33d21ba29663838aa392d4b38abe6c3a3fc8039ba000000000000000100000000000000010000000000000020c6bf6988a3e7187fae893c7eac58fd5d4e190f4f27238b2c7529d1f3965c96c30000000000000001000000000000000000000000000000201d592eaf7b775ac80f80f65ac71600e7b42e34c2b41369815d26559f705c392800000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000180000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000001000000000000002096aa3031b3fe3f10a3f58af8d0bdb75f0e49a9ba47f632761dcbaa87e948d0960000000000000001000000000000000100000000000000208654ba3f3a471881a1ca07ad0134da045fba51136fc896da6ec67bfcd91573740000000000000001000000000000000100000000000000203ef5c9702626ef1d8658d6fd366e6eccf85b6bc4df13c0bb45cf2cd03ed14cdb00000000000000010000000000000000000000000000002008ef744cc4c71b3dc0ad6709747a269607614084afb6b3ce67e9224db4721b010000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001800000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020c30eef258145d30eda1c64b433b7e983e0045f54639e7f4262d7f3c9a5ad2e8c000000000000000100000000000000010000000000000020095442c6eb9b5d21a073d82e33b0a318459f5eba2be957b08f2effbf317f97c50000000000000001000000000000000100000000000000203e2095fe80077dc9629cd9c8a40245961543a9420478c0c9442afc86a4142c350000000000000001000000000000000000000000000000204a15bacd4d08e8dc5188fa2617ce3f2048ab093a457dbb1568a132452c1264e70000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000180000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000202303afb97227519b0d04097e4e48bcfc01846cc471033f9c5f9860318330912a000000000000000100000000000000010000000000000020887135bbc11bb37e81167b1bd7f635abd792ae414769e49a3d7009ecd03a6a9f000000000000000100000000000000010000000000000020375d4ed2adacd2b33684527fb299ea4f3b26ea60a3e425eec8be3753fb113dad000000000000000100000000000000000000000000000020b705227efab8bbcce7e6efa6e6c2c8c24b0165a04b60ba4382b0c252dfa09b540000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000210000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020b0ab6e706afe61983c5bf1d6e3d09621da7d9cd32bdd7e2130b81dcc46ef5802000000000000000100000000000000010000000000000020d087600766bd1df7913f14ae88a2e9b5b651504535f46ee5da14954af94de668000000000000000100000000000000010000000000000020cd2cd9ad2c779aa3995be1014c80f94a5247dc5109218180e006fbbe588ce2d800000000000000010000000000000001000000000000002020ca2ebe06b78b863c42ebd67e820162645990710fb2212c31964405270d49be00000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000210000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000000000000000000002086cb5263dbaf418e96721addfd841cb67f9896781c9e8093170a2bebd35c8a0d00000000000000010000000000000001000000000000002005e8acde41240846b1b148e6f1731d982d9499b315b49571f3c4e12d88da5822000000000000000100000000000000010000000000000020dfd7eac1317ff666e7a446a260d70430c9aa0f0bfccfe2edf4ae24a5d163595d000000000000000100000000000000010000000000000020cb0c915a2fbf42f67d8ddb4687cdb94a70ea6dba8c337fad662aef43a1ff09120000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000210000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020d7e7c468e06a8e592edbe1f9eff3164f0499e8ad0072da91fd4fa087ea820a1000000000000000010000000000000001000000000000002064922111b65302bddd53948632f9de2e4135390b8620b248b8a335776dedfd030000000000000001000000000000000100000000000000205dea807bd3761c569e5d91569ff1a4d18ca2750ddf526909660f91b2f84080cf000000000000000100000000000000010000000000000020ec94ab368df3700c4e485459b45d7544203947bced6933b6d2419aa51552b1e70000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002100000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000206394d562d30d4d72e250c260ecbf498fb3d176889437362e030db290cfd3b22b000000000000000100000000000000010000000000000020aa69a887755987122b41014784240cfa2ea17a4e9b3aeba12dc7762da7582ecc000000000000000100000000000000010000000000000020c802860c649238e4c1cbd0ff648821a708a95501e146298b5b303abf07320669000000000000000100000000000000010000000000000020ce508bfa21ae59f4e3a574d7cf9aa2266b30a92dca771c1fb0e1be0bca3e9fec00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000210000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020af5fad30063ecb19951eac8cf60da4f79cdbb44b8297f1e89b410ad48971a7a700000000000000010000000000000001000000000000002001ae3a0c28f45072672fa1d9d722f50b96f496c2095844698ce94190b48086ca000000000000000100000000000000010000000000000020378b42427141ebdcf4a6aaa2ee39a4e2bd01cb4125d3f5ce563ae81c900aa929000000000000000100000000000000010000000000000020c1bc4adb66edbd4e3dab7de23832af2889cdfe7d4f7313a79599994c65f1d267000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000130000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000000000000000000002090b33c873032a5ec45b5f67351f43f1b225ffd1fb110a4b7260789aee51a15d00000000000000001000000000000000000000000000000200314646f9ee1f2da5ba523b66c95aea6a8139895748d499e7ea045d702e5076c000000000000000100000000000000010000000000000020931fc0f60710e5550ab975b9da43260c532daa1aa0981b844a267625739ffb1b000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000130000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000000000000000000002046fbba018a8a4a6e5e98ff98b6f815b2ded50ca9a7a90716180a022f9187825d00000000000000010000000000000000000000000000002028038eef8da57d82ce0de2ccd5f23763a39282ebbd5fb66a194bcecda2353b37000000000000000100000000000000010000000000000020db75f2f16c24e1f86b75a7358eb0bff98736d767e792ba6500dc20c7a0f5b35f0000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000130000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020d2ffec8fc1d53dec40b42a89c0cae0dc549a408cc92a2e1de6b140998dee7cc700000000000000010000000000000000000000000000002093ba70ed0c69d5b989f971113943ff263312cc3df6696a3a6c2f47a6d1d600a00000000000000001000000000000000100000000000000208eca8e88d782a2c50068f91856cdb198e83fe75b53d95126db0ce5ba952fe000000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001300000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000202c0f8e4c859a1b20d731414777322cb6bdf2e51a797b98f208ceff77a4018e8c000000000000000100000000000000000000000000000020fadaa9ce6822813c952cf021b4274e0bb104bcbd8836b7475735d844eea89533000000000000000100000000000000010000000000000020ef20ce255fff4244508dc0bf36aba9eeda1f94ba8303d6b23520cd52b598e748000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000130000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000000000000000000002014803cd2ff52736be7bae826f5a432e5b31ba001fda84d1a774978f7b7f4f6f70000000000000001000000000000000000000000000000205761fffcf89e32cefe31af94ba1a6ba27b6bcb99a3272756b2193dd132a912fb00000000000000010000000000000001000000000000002003de737e05bbc77f493cd34846521552aa2f36e8056c458268b5b2cb15e5e244000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000150000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000209a7f6ee04285cc053d122b4d2dc01674868c1c4198d702144ec6673d4f1735470000000000000001000000000000000100000000000000209b10e94ccc495ed067a2c6b3180fdcfddf4c8bc779cdf7fc14dde8feb399309d000000000000000100000000000000000000000000000020080b28b1dece6dde43a662bb2943cbbcfb4977254ddfb567d20ec3694d07decc000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000150000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000203ac1614b3ebad34b37931ec463de127c8bb45876ebd8f753c177b3b708f2eccb000000000000000100000000000000010000000000000020576d77dac3a70e1802ac9cbaf6777f6090720d9e7fccb6078e57d4811b497ee2000000000000000100000000000000000000000000000020ace429d6a2e0ab83426a9b9ba04ca6bb90f71e7ceee02c278a82a7859d4bc1820000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000150000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020b315c72fa41b10fad5bfe97985d9d38cdfb966274cd890d82281a154ddf380870000000000000001000000000000000100000000000000209c160349b93bdba6b3a6c3afcd2503bc1a79db30aeb896003c136aefc2ff9b3a00000000000000010000000000000000000000000000002005c7231b545188d801508269d5e616db314e98d0d1d96b4d859cba418919dce7000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001500000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020dee119a0ca0d75cbae521579b9854eb21e572f571eb2bc9024914fdc09b7d6760000000000000001000000000000000100000000000000204d597031c84975b5e61070724ab3d606668a57320d7d99c5a77ab1a1d5221bb4000000000000000100000000000000000000000000000020792b54430c2c7a5202334fa577281d00396a0c9d5a6149e8832c12c7a186e7b6000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000150000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020fb6f21306c23be5f073086377b0217641f535be016cabf1ed1dc1319d6107c3000000000000000010000000000000001000000000000002064127693e8da9c8e8a48196327c3c787b11da3246b2e852de189d6ccb7f2da7a0000000000000001000000000000000000000000000000208eb0d4e58e0649d2818142c4c7cefb08dd13094d3a575e5054570ef7155a1a53000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f0000000000000050000000000000002100000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000207ed7024cfb851e729174b4bebcb3b43b7e74c7bf66e598fab0fe7503c28e28b9000000000000000100000000000000010000000000000020eaac2ba91abd5bedfb2645fd52534b0616c14c1d5a3ca5c8b57f170ce3a0123c0000000000000001000000000000000100000000000000201fbe6a1d0ec9dde7d25203e3597b6c9a6d52920b54bd402cbb49f44f820ecf2c0000000000000001000000000000000100000000000000205af8bd106a023dca58d9a2c1bf942eb3d9260592c7e617bf3803dc794a32ef1000000000000000010000000000000001000000000000002022bf8b04326101ffd27638a46eb4cb6dede7d786c49f4991191e5801277902d400000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000010000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000000000000000000204ffcc22c01ec89a91054ab22f4a6d8c255900fc815ae761f6b79cbe12ddc5505000000000000000100000000000000010000000000000020e435bd09932a6fdfff43746acb12d98720259cdc5ccdd25434bebb30b64793c9000000000000000100000000000000010000000000000020a379eef4ebc6c053f9ebce7246a926491170464546aad4ee25049465b0409d3b000000000000000100000000000000010000000000000020b8b8d6428fc5a3713842905985e54c13a460d972a6fedc366bd72b9cf28b4717000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000002100000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000207ed7024cfb851e729174b4bebcb3b43b7e74c7bf66e598fab0fe7503c28e28b9000000000000000100000000000000010000000000000020eaac2ba91abd5bedfb2645fd52534b0616c14c1d5a3ca5c8b57f170ce3a0123c0000000000000001000000000000000100000000000000201fbe6a1d0ec9dde7d25203e3597b6c9a6d52920b54bd402cbb49f44f820ecf2c0000000000000001000000000000000100000000000000205af8bd106a023dca58d9a2c1bf942eb3d9260592c7e617bf3803dc794a32ef1000000000000000010000000000000001000000000000002022bf8b04326101ffd27638a46eb4cb6dede7d786c49f4991191e5801277902d400000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000010000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000000000000000000204ffcc22c01ec89a91054ab22f4a6d8c255900fc815ae761f6b79cbe12ddc5505000000000000000100000000000000010000000000000020e435bd09932a6fdfff43746acb12d98720259cdc5ccdd25434bebb30b64793c9000000000000000100000000000000010000000000000020a379eef4ebc6c053f9ebce7246a926491170464546aad4ee25049465b0409d3b000000000000000100000000000000010000000000000020b8b8d6428fc5a3713842905985e54c13a460d972a6fedc366bd72b9cf28b4717000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000003600000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000010000000000000020849f2b1f21df2ce4e701e935453d3a0e4115b6a2a8d075608035a88159cd9bf200000000000000010000000000000000000000000000002044077fb626c21b86b05e6607087853c88990ce85f620523b57ded4d77fa00deb0000000000000001000000000000000000000000000000203e91cf9fe968f301931a38865a0ef8edba05ddd912d2579a948fe706de6f6ec20000000000000001000000000000000100000000000000200247efeb8213912082e29ea2ef805a95ec45bbf7e81039cae60e1e2cc9f70398000000000000000100000000000000000000000000000020341d651035e8af56ef3eb04b8092ff8a9e98be3fc659ac423cd204e9e75c5bdc00000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000160000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000010000000000000020c68f67732b556dafe5e6cc710dcf62a4f48d186e1177070f41403a3ea73eda7f00000000000000010000000000000000000000000000002034e8bb0c47b5f4c22eaf01dde0989cbdb99d29897ff4d4ce2af0816deae250d300000000000000010000000000000000000000000000002078033d92f40a38ac4cc7886e9667aaded348dd6ee664101a06b369949493fbb900000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000000800000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000100000000000000208f4914df53c50f650eaeb1e2644816a4d6571c8eadc34d0851795c3f6011fdb00000000000000001000000000000000100000000000000206f6f08120957917775f7e12d4d9fd5057d4ceeffb3313e9087de7e748a235134000000000000000100000000000000010000000000000020f0c276f87c11a544c7dff23228f592c3b45684bf70982045e5db020d2ee3ff180000000000000001000000000000000000000000000000200da9d11aaea100332a200903d50e52aa35159a71dc619287204508beb8f25033000000000000000100000000000000010000000000000020abc911f24faf622896006bddac6f447414b585d2ae78c0de86550319adfa6ba100000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000080000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000010000000000000020fdfdce8038e314379ee4ef9d7435ac3bb67f81a42222ada24ec0b5edc53504e4000000000000000100000000000000010000000000000020ccea233de53953c0a0be4befba3181d87583ecf3ee74bc0c1b609c57583968bf0000000000000001000000000000000100000000000000201e7f0e6313dd3a48bccca00c1b7955c16cb8be0aef8b3ed3dc6c35130ff160af000000000000000100000000000000000000000000000020c6ac9586a5a315e9ce7efb473123de78e6943be10030817ad46f29947c4f461f000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000000900000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000000000000000000020b4b77abaefede57853903c9155b4817fcdab1186aa4d78f63abb195247b0ba190000000000000001000000000000000100000000000000206f6f08120957917775f7e12d4d9fd5057d4ceeffb3313e9087de7e748a235134000000000000000100000000000000010000000000000020f0c276f87c11a544c7dff23228f592c3b45684bf70982045e5db020d2ee3ff180000000000000001000000000000000000000000000000200da9d11aaea100332a200903d50e52aa35159a71dc619287204508beb8f25033000000000000000100000000000000010000000000000020abc911f24faf622896006bddac6f447414b585d2ae78c0de86550319adfa6ba100000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000090000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000000000000000000020e1c255daaa951116cdbc9d3e573d3cc9d0809bc3de7dbfc5e1243febc3afb770000000000000000100000000000000010000000000000020ccea233de53953c0a0be4befba3181d87583ecf3ee74bc0c1b609c57583968bf0000000000000001000000000000000100000000000000201e7f0e6313dd3a48bccca00c1b7955c16cb8be0aef8b3ed3dc6c35130ff160af000000000000000100000000000000000000000000000020c6ac9586a5a315e9ce7efb473123de78e6943be10030817ad46f29947c4f461f000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000002400000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000100000000000000200a02cb614bf9361920cbe4da3b2aa0e5c76b4a05ee7685fbe7fe220b69b26a31000000000000000100000000000000010000000000000020266177fdcc4d675568f2cf052c7330dd20c5ba8ea8ed31a8f8ca6b52ba5126bb00000000000000010000000000000000000000000000002037aee6114b0e64049396c6974301981cc460b03b844091c0c8331ea0fd369b4f0000000000000001000000000000000100000000000000205af8bd106a023dca58d9a2c1bf942eb3d9260592c7e617bf3803dc794a32ef1000000000000000010000000000000001000000000000002022bf8b04326101ffd27638a46eb4cb6dede7d786c49f4991191e5801277902d400000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000040000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000010000000000000020f9cc1a2a80f33c6788bbb46711c7348050019176cd19f0b641afa766ba2eccb60000000000000001000000000000000100000000000000207c89f71843664bf97f22261fc06f08da09e4584d95f32099263db21dece008f10000000000000001000000000000000000000000000000207ef776b622132973cde5e96a32f68fa0775ac3f4a7ac0d1cb6b14e7458c2c3a0000000000000000100000000000000010000000000000020b8b8d6428fc5a3713842905985e54c13a460d972a6fedc366bd72b9cf28b4717000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000003900000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000000000000000000020d487f7402c94e3aedfab01d6fdd66ba63ac7b0b39528b423a602d6a66c3a54970000000000000001000000000000000100000000000000202556b21fc161effaf655242fbec58230efd9a1ffaddb2e9252e9ca8c72b7a93000000000000000010000000000000001000000000000002049771951b4589a4f75df5ea08351bc0a5eccbbebfaa0b96a63026f42394809930000000000000001000000000000000000000000000000207f787b1eba07ba8e040c4ee51aec45ceca0b33082ebfdcb8e257ebb4a9dfd4cb000000000000000100000000000000000000000000000020341d651035e8af56ef3eb04b8092ff8a9e98be3fc659ac423cd204e9e75c5bdc00000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000190000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000000000000000000201dcf0c90a040b7d44aeece89de2caddf8d4241cd6302789300a382098b2275ed00000000000000010000000000000001000000000000002027f6be963ba9a68fb0cc1fa6dda0da09202e16643a07fa47b9e138f9c1c1c4d70000000000000001000000000000000100000000000000209161c5f561c46c1f9278bc201a1baad2f908ac10490c37cb8e0cd2207c0cd8690000000000000001000000000000000000000000000000205a0ee6b1b5a7910e92c7a5e35549a549beb666c8dc6cdb9739435f82bdcf952d00000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000001500000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000204bd56642aaf3c573e5cd15126fb7e1312436ca036171e0a975756f614b9206ac0000000000000001000000000000000100000000000000209e0ce15915d4ea607803d57136fe385cce0e7cb13820a1be73c873adb2e8c7f200000000000000010000000000000000000000000000002001b76aa22668890adea47c01aecbb7765240964a9d6de3b23a711d1271a0b80100000000000000010000000000000001000000000000002081c445d198d3219e5606d548b6529d92cf1f29c4b029656318db8e3c519d4b42000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000150000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff259000000000000000500000000000000010000000000000000000000000000002061040707b37eebcd03ebc1f93a574d2b169116e92f5267dba73fd8e4f762e26e0000000000000001000000000000000100000000000000204b88a4d6281a737d17ce6ddb1a0fb418eb07a0ed9a80d6f472307649d6f1f7d000000000000000010000000000000000000000000000002078033d92f40a38ac4cc7886e9667aaded348dd6ee664101a06b369949493fbb900000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000001500000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000204bd56642aaf3c573e5cd15126fb7e1312436ca036171e0a975756f614b9206ac0000000000000001000000000000000100000000000000209e0ce15915d4ea607803d57136fe385cce0e7cb13820a1be73c873adb2e8c7f200000000000000010000000000000000000000000000002001b76aa22668890adea47c01aecbb7765240964a9d6de3b23a711d1271a0b80100000000000000010000000000000001000000000000002081c445d198d3219e5606d548b6529d92cf1f29c4b029656318db8e3c519d4b42000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000150000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff259000000000000000500000000000000010000000000000000000000000000002061040707b37eebcd03ebc1f93a574d2b169116e92f5267dba73fd8e4f762e26e0000000000000001000000000000000100000000000000204b88a4d6281a737d17ce6ddb1a0fb418eb07a0ed9a80d6f472307649d6f1f7d000000000000000010000000000000000000000000000002078033d92f40a38ac4cc7886e9667aaded348dd6ee664101a06b369949493fbb900000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000002000000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000010000000000000020f4f54b18608f86b37f6a4fce419e18c64d9843b26ed1139133beed327349997f000000000000000100000000000000010000000000000020eaac2ba91abd5bedfb2645fd52534b0616c14c1d5a3ca5c8b57f170ce3a0123c0000000000000001000000000000000100000000000000201fbe6a1d0ec9dde7d25203e3597b6c9a6d52920b54bd402cbb49f44f820ecf2c0000000000000001000000000000000100000000000000205af8bd106a023dca58d9a2c1bf942eb3d9260592c7e617bf3803dc794a32ef1000000000000000010000000000000001000000000000002022bf8b04326101ffd27638a46eb4cb6dede7d786c49f4991191e5801277902d400000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000000000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000010000000000000020ebb76c613ec2138cc765f6029dd676279ca18928eacb0ca66a73239b16ebd3fc000000000000000100000000000000010000000000000020e435bd09932a6fdfff43746acb12d98720259cdc5ccdd25434bebb30b64793c9000000000000000100000000000000010000000000000020a379eef4ebc6c053f9ebce7246a926491170464546aad4ee25049465b0409d3b000000000000000100000000000000010000000000000020b8b8d6428fc5a3713842905985e54c13a460d972a6fedc366bd72b9cf28b4717000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000001600000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000100000000000000205db25233e9e5bb53c0da3d320e373b024bf6bcd66fbde02c2bb035190a54dc2c00000000000000010000000000000000000000000000002032db83af7e8a03af6c4d6db50e40b3606ac274cd836c2557af03817657239bc200000000000000010000000000000000000000000000002001b76aa22668890adea47c01aecbb7765240964a9d6de3b23a711d1271a0b80100000000000000010000000000000001000000000000002081c445d198d3219e5606d548b6529d92cf1f29c4b029656318db8e3c519d4b42000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000160000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000010000000000000020c68f67732b556dafe5e6cc710dcf62a4f48d186e1177070f41403a3ea73eda7f00000000000000010000000000000000000000000000002034e8bb0c47b5f4c22eaf01dde0989cbdb99d29897ff4d4ce2af0816deae250d300000000000000010000000000000000000000000000002078033d92f40a38ac4cc7886e9667aaded348dd6ee664101a06b369949493fbb900000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000003300000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e9000000000000000600000000000000010000000000000000000000000000002061da684bf608d9580c0cc2133031db2a991bfa9e757d3c3e5e3b691d844523660000000000000001000000000000000000000000000000204646c98ef994930122f932e1bd39e2f66f536e8fa208d8193f7bdcf8e1f3af85000000000000000100000000000000010000000000000020aa484e5c5ecfcf8fb6454c4562f9b8bac41d0f819a7adf9df986cd01feaf6d0b0000000000000001000000000000000100000000000000200247efeb8213912082e29ea2ef805a95ec45bbf7e81039cae60e1e2cc9f70398000000000000000100000000000000000000000000000020341d651035e8af56ef3eb04b8092ff8a9e98be3fc659ac423cd204e9e75c5bdc00000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000130000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000000000000000000020003c5181d177130a079dd07db243c1bffde9bba5d53b47eacfed53b2ce9c3681000000000000000100000000000000000000000000000020381d36f286eae8d50f3531344d0a48579eaf3200ed3706a450bb4146875685a1000000000000000100000000000000010000000000000020b3916ac3752cae2d46d7dcb3fc70a902dfce1044031504a7edcd60ef7d716cd200000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000001a00000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000010000000000000020ecfc09a1aa8d9ee5a8eb3132bd716973bc22a5e61e30e1cce19092f97e105bb500000000000000010000000000000000000000000000002053628602ff2c02ce8ad8fbebd918e7d3cafbdaddd3b7268770e57808957f1232000000000000000100000000000000010000000000000020decbd49a114a2ff486ec9d9a796b2980384089cf58329ce34c5e84e86d802607000000000000000100000000000000000000000000000020c70900e7458ba5ffca08cee0b301ca2a12c146e8d38de8b98842090913f710f5000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de4000000000000001a0000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000010000000000000020246ad833f257c0db5c611060ffd92b752323e555a9d3ce9241552b2ca48a1bc20000000000000001000000000000000000000000000000204efc73fd363945dfd0ec858227d4dabefc07b3b9a677a8b8b83cb33e300ca6be0000000000000001000000000000000100000000000000209161c5f561c46c1f9278bc201a1baad2f908ac10490c37cb8e0cd2207c0cd8690000000000000001000000000000000000000000000000205a0ee6b1b5a7910e92c7a5e35549a549beb666c8dc6cdb9739435f82bdcf952d00000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000001000000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e9000000000000000600000000000000010000000000000001000000000000002015bfea6ff8fca02fe6793892b620093f76fdb61a7ae895af3ea034f0854923a6000000000000000100000000000000010000000000000020876b4a50c733ecf3750fffe1cca0eae370bd8cfd58e91a3cbe7739d0c66b0618000000000000000100000000000000010000000000000020f89fd4c78cc2c9dbc27d0fb1fd81eb8f093a104c5e427e12ad01a2838309868500000000000000010000000000000001000000000000002081c445d198d3219e5606d548b6529d92cf1f29c4b029656318db8e3c519d4b42000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000100000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000010000000000000020569d6d364fc742b43f44eaeb7f2eb7676c465bde82753ed68594a01654718419000000000000000100000000000000010000000000000020275586ebf233ef8f7846a29d521dcacb6ca189a9efd2f0be606a28aa8fd399ac000000000000000100000000000000010000000000000020b3916ac3752cae2d46d7dcb3fc70a902dfce1044031504a7edcd60ef7d716cd200000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000001f00000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e9000000000000000600000000000000010000000000000000000000000000002031b2732ef75d00a6a7c27ebeff1cd0d03f346720e4f4d828a34b8fa4f458f713000000000000000100000000000000000000000000000020f3d1cefaa411f3b25de14a2e127376387097ceead58b7e50b1af55f56df6d098000000000000000100000000000000000000000000000020b05d29b90323e11d1d321ebe0887a78c97dd38e44c2a432ee388b16d804a569a000000000000000100000000000000000000000000000020c70900e7458ba5ffca08cee0b301ca2a12c146e8d38de8b98842090913f710f5000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de4000000000000001f0000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000000000000000000020e410c26e823abe624be41eebe8e629b245ede97bdb7fdf6533f5c763055809d60000000000000001000000000000000000000000000000203f4b9ec9d01b32cc29af1299c145fb4383f202af59554929cf1d3b1287509e71000000000000000100000000000000000000000000000020b5529a20d217fadab6e859d7dab84da86df6c50f6e0c8c43db6e0bb4ebe47cf70000000000000001000000000000000000000000000000205a0ee6b1b5a7910e92c7a5e35549a549beb666c8dc6cdb9739435f82bdcf952d00000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000001400000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000010000000000000020389c3ba00dfbcc90788c828e8faca19a83ccf2aa514c170a0288d97cd0ccfca30000000000000001000000000000000100000000000000209e0ce15915d4ea607803d57136fe385cce0e7cb13820a1be73c873adb2e8c7f200000000000000010000000000000000000000000000002001b76aa22668890adea47c01aecbb7765240964a9d6de3b23a711d1271a0b80100000000000000010000000000000001000000000000002081c445d198d3219e5606d548b6529d92cf1f29c4b029656318db8e3c519d4b42000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000140000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000010000000000000020c6ced8f29f221765860c4186984364c584f9025debf27105743b23409833ac510000000000000001000000000000000100000000000000204b88a4d6281a737d17ce6ddb1a0fb418eb07a0ed9a80d6f472307649d6f1f7d000000000000000010000000000000000000000000000002078033d92f40a38ac4cc7886e9667aaded348dd6ee664101a06b369949493fbb900000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000002f00000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e9000000000000000600000000000000010000000000000000000000000000002089196285e51aec79c8c2915494e037406a6e0fe2cefb471c5d42076be26d98d80000000000000001000000000000000000000000000000205dc6f165eebd96352a4cb969a5dcfee0e66cc7785e9dbf852898a0a6da3154a3000000000000000100000000000000000000000000000020dae97944862e3b39439dbbafe16fec39dcfc3ef2523acc7c32e0c79e841986fe000000000000000100000000000000000000000000000020c719af11451e09db51b0e7e95bbcb366f977fe49929d06a1eb1dbba9ade869f200000000000000010000000000000001000000000000002022bf8b04326101ffd27638a46eb4cb6dede7d786c49f4991191e5801277902d400000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be7000000000000000f0000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff259000000000000000500000000000000010000000000000000000000000000002035afcffd3e00318f678e350839d8b13b237a5c7251993091b28eb4d099034f2e0000000000000001000000000000000000000000000000205527bb338af53baea8cfccdd4caf87562d405c126925d5cf98425363c9497def00000000000000010000000000000000000000000000002057f7424c876eadf4612cc90ceb28d3c5c5cf304d091a0d7d1b90d874d9fa6f8e000000000000000100000000000000000000000000000020c6ac9586a5a315e9ce7efb473123de78e6943be10030817ad46f29947c4f461f000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000002300000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000209876c7a7a7134b6f1445fb927fb6dac60b40dcbe3218ffbd304107df4fe4c0f90000000000000001000000000000000000000000000000203f2276f0dc08f8fb8b5640ce5560df918698947c0e2f9884cc7d91c2174663080000000000000001000000000000000100000000000000201fbe6a1d0ec9dde7d25203e3597b6c9a6d52920b54bd402cbb49f44f820ecf2c0000000000000001000000000000000100000000000000205af8bd106a023dca58d9a2c1bf942eb3d9260592c7e617bf3803dc794a32ef1000000000000000010000000000000001000000000000002022bf8b04326101ffd27638a46eb4cb6dede7d786c49f4991191e5801277902d400000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000030000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff259000000000000000500000000000000010000000000000000000000000000002002e34643c2144471f9f6145ad57f70ee183d493b2dc578179078c28be9ffec3b000000000000000100000000000000000000000000000020b43d7064ea2d8208d7be4788658e4735a84f9ec43344ef22d85e927a3e9a17f1000000000000000100000000000000010000000000000020a379eef4ebc6c053f9ebce7246a926491170464546aad4ee25049465b0409d3b000000000000000100000000000000010000000000000020b8b8d6428fc5a3713842905985e54c13a460d972a6fedc366bd72b9cf28b4717000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000003b00000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000201f56c1c2bb2a840a87ef49cdffa74be6e5022f1360438f218ca799e75d58a16c000000000000000100000000000000000000000000000020477206f63bbd21ec0c4004c23263e3fb437d7cde780b644d6fdd403b70224a4300000000000000010000000000000001000000000000002049771951b4589a4f75df5ea08351bc0a5eccbbebfaa0b96a63026f42394809930000000000000001000000000000000000000000000000207f787b1eba07ba8e040c4ee51aec45ceca0b33082ebfdcb8e257ebb4a9dfd4cb000000000000000100000000000000000000000000000020341d651035e8af56ef3eb04b8092ff8a9e98be3fc659ac423cd204e9e75c5bdc00000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be7000000000000001b0000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000000000000000000205ac89c286b6f05cfaa11bf95f89f76175e3face799d5d16abb799e5995dbb30d0000000000000001000000000000000000000000000000204efc73fd363945dfd0ec858227d4dabefc07b3b9a677a8b8b83cb33e300ca6be0000000000000001000000000000000100000000000000209161c5f561c46c1f9278bc201a1baad2f908ac10490c37cb8e0cd2207c0cd8690000000000000001000000000000000000000000000000205a0ee6b1b5a7910e92c7a5e35549a549beb666c8dc6cdb9739435f82bdcf952d00000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000003100000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000000000000000000020e6688cecf8d676d3e9ed1b38f506d2d3ee6a1e7f7bf9b9b27c7c8ebbbbfbc3fe000000000000000100000000000000010000000000000020336878fe322f6d830c68420e0dc1b35d5a0c11b162dc5251cb07896d43953c40000000000000000100000000000000010000000000000020aa484e5c5ecfcf8fb6454c4562f9b8bac41d0f819a7adf9df986cd01feaf6d0b0000000000000001000000000000000100000000000000200247efeb8213912082e29ea2ef805a95ec45bbf7e81039cae60e1e2cc9f70398000000000000000100000000000000000000000000000020341d651035e8af56ef3eb04b8092ff8a9e98be3fc659ac423cd204e9e75c5bdc00000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000110000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000000000000000000020ac6f02bfb2a76e494be82303631f5a999bd5a24943e56d5b8f152aa677de2f64000000000000000100000000000000010000000000000020275586ebf233ef8f7846a29d521dcacb6ca189a9efd2f0be606a28aa8fd399ac000000000000000100000000000000010000000000000020b3916ac3752cae2d46d7dcb3fc70a902dfce1044031504a7edcd60ef7d716cd200000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000003500000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000000000000000000020bbac30f26337d4923268a0bd7464bf9a67e22440161c9b69a21ae02b18d453990000000000000001000000000000000100000000000000200d9355c2e1d6759eaeaadf6b2d2b204ab011124cade48173b71f15910bd0c5950000000000000001000000000000000000000000000000203e91cf9fe968f301931a38865a0ef8edba05ddd912d2579a948fe706de6f6ec20000000000000001000000000000000100000000000000200247efeb8213912082e29ea2ef805a95ec45bbf7e81039cae60e1e2cc9f70398000000000000000100000000000000000000000000000020341d651035e8af56ef3eb04b8092ff8a9e98be3fc659ac423cd204e9e75c5bdc00000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000150000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff259000000000000000500000000000000010000000000000000000000000000002061040707b37eebcd03ebc1f93a574d2b169116e92f5267dba73fd8e4f762e26e0000000000000001000000000000000100000000000000204b88a4d6281a737d17ce6ddb1a0fb418eb07a0ed9a80d6f472307649d6f1f7d000000000000000010000000000000000000000000000002078033d92f40a38ac4cc7886e9667aaded348dd6ee664101a06b369949493fbb900000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000003800000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e9000000000000000600000000000000010000000000000001000000000000002080db3e7e35fdc05c23f3f40679877aa15d35090e3f76f4bb40e0fabfb286c3ac0000000000000001000000000000000100000000000000202556b21fc161effaf655242fbec58230efd9a1ffaddb2e9252e9ca8c72b7a93000000000000000010000000000000001000000000000002049771951b4589a4f75df5ea08351bc0a5eccbbebfaa0b96a63026f42394809930000000000000001000000000000000000000000000000207f787b1eba07ba8e040c4ee51aec45ceca0b33082ebfdcb8e257ebb4a9dfd4cb000000000000000100000000000000000000000000000020341d651035e8af56ef3eb04b8092ff8a9e98be3fc659ac423cd204e9e75c5bdc00000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000180000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000100000000000000205ae3d4135b3f2d058460864483f1cbe5f3b6bdc632e4e17a6c02125ee273a2ce00000000000000010000000000000001000000000000002027f6be963ba9a68fb0cc1fa6dda0da09202e16643a07fa47b9e138f9c1c1c4d70000000000000001000000000000000100000000000000209161c5f561c46c1f9278bc201a1baad2f908ac10490c37cb8e0cd2207c0cd8690000000000000001000000000000000000000000000000205a0ee6b1b5a7910e92c7a5e35549a549beb666c8dc6cdb9739435f82bdcf952d00000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000000a00000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000100000000000000202e106a939c39ddc4226fb2936bac6f3356bb937b34f0463a1f2a1b809991fd91000000000000000100000000000000000000000000000020629bae8d629c777b0fecdcdf854d2b4aebf90e5dc949e41530065e7fa1960390000000000000000100000000000000010000000000000020f0c276f87c11a544c7dff23228f592c3b45684bf70982045e5db020d2ee3ff180000000000000001000000000000000000000000000000200da9d11aaea100332a200903d50e52aa35159a71dc619287204508beb8f25033000000000000000100000000000000010000000000000020abc911f24faf622896006bddac6f447414b585d2ae78c0de86550319adfa6ba100000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de4000000000000000a0000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff259000000000000000500000000000000010000000000000001000000000000002023f2d7fdc7350dfefeca95e26a82ff86528d3b529d1899610c41522623ac9013000000000000000100000000000000000000000000000020bce3f006a8c4a90d1a2289eb8bd2a0b518768a264917075f53da7847511688fb0000000000000001000000000000000100000000000000201e7f0e6313dd3a48bccca00c1b7955c16cb8be0aef8b3ed3dc6c35130ff160af000000000000000100000000000000000000000000000020c6ac9586a5a315e9ce7efb473123de78e6943be10030817ad46f29947c4f461f000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000001e00000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000010000000000000020687a94d7253329d11552525353081457c3572af75a1d92bf530351e890a28b07000000000000000100000000000000000000000000000020f3d1cefaa411f3b25de14a2e127376387097ceead58b7e50b1af55f56df6d098000000000000000100000000000000000000000000000020b05d29b90323e11d1d321ebe0887a78c97dd38e44c2a432ee388b16d804a569a000000000000000100000000000000000000000000000020c70900e7458ba5ffca08cee0b301ca2a12c146e8d38de8b98842090913f710f5000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de4000000000000001e0000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff259000000000000000500000000000000010000000000000001000000000000002023e228d10c03f0dc24434a1c56874a28f2ee29e2a622efb9de8af20a1143dded0000000000000001000000000000000000000000000000203f4b9ec9d01b32cc29af1299c145fb4383f202af59554929cf1d3b1287509e71000000000000000100000000000000000000000000000020b5529a20d217fadab6e859d7dab84da86df6c50f6e0c8c43db6e0bb4ebe47cf70000000000000001000000000000000000000000000000205a0ee6b1b5a7910e92c7a5e35549a549beb666c8dc6cdb9739435f82bdcf952d00000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000001500000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000204bd56642aaf3c573e5cd15126fb7e1312436ca036171e0a975756f614b9206ac0000000000000001000000000000000100000000000000209e0ce15915d4ea607803d57136fe385cce0e7cb13820a1be73c873adb2e8c7f200000000000000010000000000000000000000000000002001b76aa22668890adea47c01aecbb7765240964a9d6de3b23a711d1271a0b80100000000000000010000000000000001000000000000002081c445d198d3219e5606d548b6529d92cf1f29c4b029656318db8e3c519d4b42000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000150000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff259000000000000000500000000000000010000000000000000000000000000002061040707b37eebcd03ebc1f93a574d2b169116e92f5267dba73fd8e4f762e26e0000000000000001000000000000000100000000000000204b88a4d6281a737d17ce6ddb1a0fb418eb07a0ed9a80d6f472307649d6f1f7d000000000000000010000000000000000000000000000002078033d92f40a38ac4cc7886e9667aaded348dd6ee664101a06b369949493fbb900000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000000700000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000000000000000000020a05a3df24e3db240ce5264d833c60775f5cd42a9af73b33bda22444fc7cfe5240000000000000001000000000000000000000000000000202479d55ac3ebcfce8bcef04f25a66095f0e177d75de948b79a974e89ce18122500000000000000010000000000000000000000000000002062d1c5e4b7ac49ee1c7713f61bbadf7e25b2f04bd22ca8f4e9ae534b27d49e6e000000000000000100000000000000010000000000000020c4604cb8be32d18b87b7ba1b59170cd0016943ec460edd6ef1ac5700279c55ac000000000000000100000000000000010000000000000020abc911f24faf622896006bddac6f447414b585d2ae78c0de86550319adfa6ba100000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000070000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000000000000000000020111d546f48ae7364248b22c362b27b2d74053554905fcea72cb00eb4bfe3e4620000000000000001000000000000000000000000000000203a5792f3983b8a669190dca7e5659ab8b5822c3fa8a58a541a5cb3562d616bd60000000000000001000000000000000000000000000000207ef776b622132973cde5e96a32f68fa0775ac3f4a7ac0d1cb6b14e7458c2c3a0000000000000000100000000000000010000000000000020b8b8d6428fc5a3713842905985e54c13a460d972a6fedc366bd72b9cf28b4717000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000002500000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000000000000000000020d8ba2670290c2b526ed7c2b0e5b76fc8ea9fe53387368f8df6f91c79dea821ab000000000000000100000000000000010000000000000020266177fdcc4d675568f2cf052c7330dd20c5ba8ea8ed31a8f8ca6b52ba5126bb00000000000000010000000000000000000000000000002037aee6114b0e64049396c6974301981cc460b03b844091c0c8331ea0fd369b4f0000000000000001000000000000000100000000000000205af8bd106a023dca58d9a2c1bf942eb3d9260592c7e617bf3803dc794a32ef1000000000000000010000000000000001000000000000002022bf8b04326101ffd27638a46eb4cb6dede7d786c49f4991191e5801277902d400000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000050000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000000000000000000020297b949a7036ae60c54a97ea10d725842cd327dd5fc484af898fb0e154085b490000000000000001000000000000000100000000000000207c89f71843664bf97f22261fc06f08da09e4584d95f32099263db21dece008f10000000000000001000000000000000000000000000000207ef776b622132973cde5e96a32f68fa0775ac3f4a7ac0d1cb6b14e7458c2c3a0000000000000000100000000000000010000000000000020b8b8d6428fc5a3713842905985e54c13a460d972a6fedc366bd72b9cf28b4717000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000003100000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000000000000000000020e6688cecf8d676d3e9ed1b38f506d2d3ee6a1e7f7bf9b9b27c7c8ebbbbfbc3fe000000000000000100000000000000010000000000000020336878fe322f6d830c68420e0dc1b35d5a0c11b162dc5251cb07896d43953c40000000000000000100000000000000010000000000000020aa484e5c5ecfcf8fb6454c4562f9b8bac41d0f819a7adf9df986cd01feaf6d0b0000000000000001000000000000000100000000000000200247efeb8213912082e29ea2ef805a95ec45bbf7e81039cae60e1e2cc9f70398000000000000000100000000000000000000000000000020341d651035e8af56ef3eb04b8092ff8a9e98be3fc659ac423cd204e9e75c5bdc00000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000110000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000000000000000000020ac6f02bfb2a76e494be82303631f5a999bd5a24943e56d5b8f152aa677de2f64000000000000000100000000000000010000000000000020275586ebf233ef8f7846a29d521dcacb6ca189a9efd2f0be606a28aa8fd399ac000000000000000100000000000000010000000000000020b3916ac3752cae2d46d7dcb3fc70a902dfce1044031504a7edcd60ef7d716cd200000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000001d00000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000206f2cfaabd2028464e29f5299792065dc5db1d213db1f4011753464da9c630937000000000000000100000000000000010000000000000020e196d6324776c8342202907ff780e58c7cefbd2a85e2f70cfd5770f202307d97000000000000000100000000000000000000000000000020b05d29b90323e11d1d321ebe0887a78c97dd38e44c2a432ee388b16d804a569a000000000000000100000000000000000000000000000020c70900e7458ba5ffca08cee0b301ca2a12c146e8d38de8b98842090913f710f5000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de4000000000000001d0000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000000000000000000209f865945db83e4b37fb2c6b6337a566479d6573bcce817b7669722e615fa5bf50000000000000001000000000000000100000000000000203cedf7f5a6e7e2a5ace8729fabf1d7933b10f8a0ad1e5e2ea8831795cf5ebefb000000000000000100000000000000000000000000000020b5529a20d217fadab6e859d7dab84da86df6c50f6e0c8c43db6e0bb4ebe47cf70000000000000001000000000000000000000000000000205a0ee6b1b5a7910e92c7a5e35549a549beb666c8dc6cdb9739435f82bdcf952d00000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000001d00000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000206f2cfaabd2028464e29f5299792065dc5db1d213db1f4011753464da9c630937000000000000000100000000000000010000000000000020e196d6324776c8342202907ff780e58c7cefbd2a85e2f70cfd5770f202307d97000000000000000100000000000000000000000000000020b05d29b90323e11d1d321ebe0887a78c97dd38e44c2a432ee388b16d804a569a000000000000000100000000000000000000000000000020c70900e7458ba5ffca08cee0b301ca2a12c146e8d38de8b98842090913f710f5000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de4000000000000001d0000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000000000000000000209f865945db83e4b37fb2c6b6337a566479d6573bcce817b7669722e615fa5bf50000000000000001000000000000000100000000000000203cedf7f5a6e7e2a5ace8729fabf1d7933b10f8a0ad1e5e2ea8831795cf5ebefb000000000000000100000000000000000000000000000020b5529a20d217fadab6e859d7dab84da86df6c50f6e0c8c43db6e0bb4ebe47cf70000000000000001000000000000000000000000000000205a0ee6b1b5a7910e92c7a5e35549a549beb666c8dc6cdb9739435f82bdcf952d00000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000000100000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000202909624f315a60a3ec233407bbae0b08731680fb803e3811cf43ad5565f5ed220000000000000001000000000000000100000000000000207d794f712ac6e85c0a1f085d46b6957a222bf1367977dd1ba8fdccef925944af000000000000000100000000000000010000000000000020ae2da6c12c5d162a3ef339a55f47d09290d11febadeb8a3f8a5eac666d7553d0000000000000000100000000000000010000000000000020c4604cb8be32d18b87b7ba1b59170cd0016943ec460edd6ef1ac5700279c55ac000000000000000100000000000000010000000000000020abc911f24faf622896006bddac6f447414b585d2ae78c0de86550319adfa6ba100000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000010000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000000000000000000204ffcc22c01ec89a91054ab22f4a6d8c255900fc815ae761f6b79cbe12ddc5505000000000000000100000000000000010000000000000020e435bd09932a6fdfff43746acb12d98720259cdc5ccdd25434bebb30b64793c9000000000000000100000000000000010000000000000020a379eef4ebc6c053f9ebce7246a926491170464546aad4ee25049465b0409d3b000000000000000100000000000000010000000000000020b8b8d6428fc5a3713842905985e54c13a460d972a6fedc366bd72b9cf28b4717000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000000300000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000000000000000000020e7d128862aadbe4f99d50b9c5db8ffad7d032842f105055b53d275a596ccc65e00000000000000010000000000000000000000000000002013512b8bba2360869ac557865e2084fb0e839c7c241e547ea36a08da5afc0323000000000000000100000000000000010000000000000020ae2da6c12c5d162a3ef339a55f47d09290d11febadeb8a3f8a5eac666d7553d0000000000000000100000000000000010000000000000020c4604cb8be32d18b87b7ba1b59170cd0016943ec460edd6ef1ac5700279c55ac000000000000000100000000000000010000000000000020abc911f24faf622896006bddac6f447414b585d2ae78c0de86550319adfa6ba100000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000030000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff259000000000000000500000000000000010000000000000000000000000000002002e34643c2144471f9f6145ad57f70ee183d493b2dc578179078c28be9ffec3b000000000000000100000000000000000000000000000020b43d7064ea2d8208d7be4788658e4735a84f9ec43344ef22d85e927a3e9a17f1000000000000000100000000000000010000000000000020a379eef4ebc6c053f9ebce7246a926491170464546aad4ee25049465b0409d3b000000000000000100000000000000010000000000000020b8b8d6428fc5a3713842905985e54c13a460d972a6fedc366bd72b9cf28b4717000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000000800000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000100000000000000208f4914df53c50f650eaeb1e2644816a4d6571c8eadc34d0851795c3f6011fdb00000000000000001000000000000000100000000000000206f6f08120957917775f7e12d4d9fd5057d4ceeffb3313e9087de7e748a235134000000000000000100000000000000010000000000000020f0c276f87c11a544c7dff23228f592c3b45684bf70982045e5db020d2ee3ff180000000000000001000000000000000000000000000000200da9d11aaea100332a200903d50e52aa35159a71dc619287204508beb8f25033000000000000000100000000000000010000000000000020abc911f24faf622896006bddac6f447414b585d2ae78c0de86550319adfa6ba100000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000080000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000010000000000000020fdfdce8038e314379ee4ef9d7435ac3bb67f81a42222ada24ec0b5edc53504e4000000000000000100000000000000010000000000000020ccea233de53953c0a0be4befba3181d87583ecf3ee74bc0c1b609c57583968bf0000000000000001000000000000000100000000000000201e7f0e6313dd3a48bccca00c1b7955c16cb8be0aef8b3ed3dc6c35130ff160af000000000000000100000000000000000000000000000020c6ac9586a5a315e9ce7efb473123de78e6943be10030817ad46f29947c4f461f000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000002900000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e9000000000000000600000000000000010000000000000000000000000000002071d75f39458987845dcf942a0501e1d0a428e36ebd7c9f38bc602456582efb3b0000000000000001000000000000000100000000000000206201f5e1adb7b50a1b3c6acc1b1392317c003234b4583e38e50f392b58216883000000000000000100000000000000010000000000000020a5e13859e3a8080939d0a2a7780843b0f6be0d291fdd0c09d166df1c8435fd34000000000000000100000000000000000000000000000020c719af11451e09db51b0e7e95bbcb366f977fe49929d06a1eb1dbba9ade869f200000000000000010000000000000001000000000000002022bf8b04326101ffd27638a46eb4cb6dede7d786c49f4991191e5801277902d400000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000090000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000000000000000000020e1c255daaa951116cdbc9d3e573d3cc9d0809bc3de7dbfc5e1243febc3afb770000000000000000100000000000000010000000000000020ccea233de53953c0a0be4befba3181d87583ecf3ee74bc0c1b609c57583968bf0000000000000001000000000000000100000000000000201e7f0e6313dd3a48bccca00c1b7955c16cb8be0aef8b3ed3dc6c35130ff160af000000000000000100000000000000000000000000000020c6ac9586a5a315e9ce7efb473123de78e6943be10030817ad46f29947c4f461f000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000000d00000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000000000000000000020e19d985edcf88f77b87ff3034ac9e781e3bba2e8cdaae6105322f29f7cd26b7800000000000000010000000000000001000000000000002052bb7866ef5b2878c3a72eaa9b66f9a42101fee01719ad0257cfd4155c4fd67d000000000000000100000000000000000000000000000020a6fbf8b597859fe7801b57d7295b57ab889b52c97b4a3e8ba1fe46be478d7ca60000000000000001000000000000000000000000000000200da9d11aaea100332a200903d50e52aa35159a71dc619287204508beb8f25033000000000000000100000000000000010000000000000020abc911f24faf622896006bddac6f447414b585d2ae78c0de86550319adfa6ba100000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de4000000000000000d0000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000000000000000000208ca9ad4c8f2b48c0e78e288cad4a1e1e118896618e60e116cac861bda85047c40000000000000001000000000000000100000000000000200b3f292d9180e48caf9240831d1b97177d9961550cf42b9a4d497a935b987f8800000000000000010000000000000000000000000000002057f7424c876eadf4612cc90ceb28d3c5c5cf304d091a0d7d1b90d874d9fa6f8e000000000000000100000000000000000000000000000020c6ac9586a5a315e9ce7efb473123de78e6943be10030817ad46f29947c4f461f000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000002c00000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000010000000000000020990a05747f2b2a9f2bad4e43c29f7d54c683bfddcc1dca0fe45fdee1bc36c906000000000000000100000000000000010000000000000020518fb00e146a7b75e04903228f53bc837ff1750989635ede283c0901589a9d84000000000000000100000000000000000000000000000020dae97944862e3b39439dbbafe16fec39dcfc3ef2523acc7c32e0c79e841986fe000000000000000100000000000000000000000000000020c719af11451e09db51b0e7e95bbcb366f977fe49929d06a1eb1dbba9ade869f200000000000000010000000000000001000000000000002022bf8b04326101ffd27638a46eb4cb6dede7d786c49f4991191e5801277902d400000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be7000000000000000c0000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000100000000000000205ce7bfbb83bd467dfa4292d88c84d9118a0a3eec8c8a3ce9189fede5772914af0000000000000001000000000000000100000000000000200b3f292d9180e48caf9240831d1b97177d9961550cf42b9a4d497a935b987f8800000000000000010000000000000000000000000000002057f7424c876eadf4612cc90ceb28d3c5c5cf304d091a0d7d1b90d874d9fa6f8e000000000000000100000000000000000000000000000020c6ac9586a5a315e9ce7efb473123de78e6943be10030817ad46f29947c4f461f000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000001800000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000010000000000000020cf915e8779c55df2a5aba19dc39cf7fa44f7bfa6115db7c874f75102f5109c32000000000000000100000000000000010000000000000020b4ca5f93e3e6b332af3c77c76080f161aaf53c14dec5c04e1f4fe43375a6d58d000000000000000100000000000000010000000000000020decbd49a114a2ff486ec9d9a796b2980384089cf58329ce34c5e84e86d802607000000000000000100000000000000000000000000000020c70900e7458ba5ffca08cee0b301ca2a12c146e8d38de8b98842090913f710f5000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000180000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000100000000000000205ae3d4135b3f2d058460864483f1cbe5f3b6bdc632e4e17a6c02125ee273a2ce00000000000000010000000000000001000000000000002027f6be963ba9a68fb0cc1fa6dda0da09202e16643a07fa47b9e138f9c1c1c4d70000000000000001000000000000000100000000000000209161c5f561c46c1f9278bc201a1baad2f908ac10490c37cb8e0cd2207c0cd8690000000000000001000000000000000000000000000000205a0ee6b1b5a7910e92c7a5e35549a549beb666c8dc6cdb9739435f82bdcf952d00000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000002100000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000207ed7024cfb851e729174b4bebcb3b43b7e74c7bf66e598fab0fe7503c28e28b9000000000000000100000000000000010000000000000020eaac2ba91abd5bedfb2645fd52534b0616c14c1d5a3ca5c8b57f170ce3a0123c0000000000000001000000000000000100000000000000201fbe6a1d0ec9dde7d25203e3597b6c9a6d52920b54bd402cbb49f44f820ecf2c0000000000000001000000000000000100000000000000205af8bd106a023dca58d9a2c1bf942eb3d9260592c7e617bf3803dc794a32ef1000000000000000010000000000000001000000000000002022bf8b04326101ffd27638a46eb4cb6dede7d786c49f4991191e5801277902d400000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000010000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000000000000000000204ffcc22c01ec89a91054ab22f4a6d8c255900fc815ae761f6b79cbe12ddc5505000000000000000100000000000000010000000000000020e435bd09932a6fdfff43746acb12d98720259cdc5ccdd25434bebb30b64793c9000000000000000100000000000000010000000000000020a379eef4ebc6c053f9ebce7246a926491170464546aad4ee25049465b0409d3b000000000000000100000000000000010000000000000020b8b8d6428fc5a3713842905985e54c13a460d972a6fedc366bd72b9cf28b4717000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000001300000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e9000000000000000600000000000000010000000000000000000000000000002088f5c5d2fda12d4c8cf34cdb62aa095eb07a8da108b2ba4e7e4dd07f871b636f000000000000000100000000000000000000000000000020635cb57885dbdeabbc4503774433cce56d21f7bdaa7ef016bf082b6dca48b58f000000000000000100000000000000010000000000000020f89fd4c78cc2c9dbc27d0fb1fd81eb8f093a104c5e427e12ad01a2838309868500000000000000010000000000000001000000000000002081c445d198d3219e5606d548b6529d92cf1f29c4b029656318db8e3c519d4b42000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000130000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000000000000000000020003c5181d177130a079dd07db243c1bffde9bba5d53b47eacfed53b2ce9c3681000000000000000100000000000000000000000000000020381d36f286eae8d50f3531344d0a48579eaf3200ed3706a450bb4146875685a1000000000000000100000000000000010000000000000020b3916ac3752cae2d46d7dcb3fc70a902dfce1044031504a7edcd60ef7d716cd200000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000001500000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000204bd56642aaf3c573e5cd15126fb7e1312436ca036171e0a975756f614b9206ac0000000000000001000000000000000100000000000000209e0ce15915d4ea607803d57136fe385cce0e7cb13820a1be73c873adb2e8c7f200000000000000010000000000000000000000000000002001b76aa22668890adea47c01aecbb7765240964a9d6de3b23a711d1271a0b80100000000000000010000000000000001000000000000002081c445d198d3219e5606d548b6529d92cf1f29c4b029656318db8e3c519d4b42000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000150000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff259000000000000000500000000000000010000000000000000000000000000002061040707b37eebcd03ebc1f93a574d2b169116e92f5267dba73fd8e4f762e26e0000000000000001000000000000000100000000000000204b88a4d6281a737d17ce6ddb1a0fb418eb07a0ed9a80d6f472307649d6f1f7d000000000000000010000000000000000000000000000002078033d92f40a38ac4cc7886e9667aaded348dd6ee664101a06b369949493fbb900000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000000228228fed2c0f903d96f5d367aaf715f5b2bc95479b820de3144394fd62d2308d2c7e51183a608e4fd828081f1e9db89e717e06d74ae3130535d95950a7c3617066348cbc \ No newline at end of file diff --git a/deploy/modular-verifier.js b/deploy/modular-verifier.js index 5cae7d4..a9f70a3 100644 --- a/deploy/modular-verifier.js +++ b/deploy/modular-verifier.js @@ -26,15 +26,6 @@ module.exports = async function() { for(k in circuits){ let addrs = {}; -/* let libs = losslessJSON.parse(fs.readFileSync("./contracts/zkllvm/"+circuits[k]+"/linked_libs_list.json", 'utf8')); - let deployedLib = {} - for (let lib of libs){ - await deploy(lib, { - from: deployer, - log: true, - }); - deployedLib[lib] = (await hre.deployments.get(lib)).address - }*/ commitment_contract = await deploy("modular_commitment_scheme_" + circuits[k], { from: deployer, libraries : [], //deployedLib, @@ -53,9 +44,18 @@ module.exports = async function() { log : true, }); + let libs = losslessJSON.parse(fs.readFileSync("./contracts/modular/"+circuits[k]+"/gate_libs_list.json", 'utf8')); + let deployedLib = {} + for (let lib of libs){ + await deploy(lib, { + from: deployer, + log: true, + }); + deployedLib[lib] = (await hre.deployments.get(lib)).address + } gate_argument_contract = await deploy("modular_gate_argument_" + circuits[k], { from: deployer, - libraries : [], //deployedLib, + libraries : deployedLib, log : true, }); From 6abd6afeed2fd84f5fa587e3b4ecc3a5dabe4750 Mon Sep 17 00:00:00 2001 From: "e.tatuzova" Date: Mon, 2 Oct 2023 11:02:33 +0400 Subject: [PATCH 03/10] Examples and deployment updated #74 --- contracts/modular/circuit1/commitment.sol | 2 +- contracts/modular/circuit1/gate_0.sol | 1 - contracts/modular/circuit1/gate_1.sol | 1 - .../modular/circuit1/gate_linked_libs.json | 4 -- .../modular/circuit1/lookup_argument.sol | 11 +-- .../modular/circuit1/modular_verifier.sol | 1 - .../modular/circuit1/permutation_argument.sol | 2 +- contracts/modular/circuit2/commitment.sol | 2 +- contracts/modular/circuit2/gate_0.sol | 1 - contracts/modular/circuit2/gate_1.sol | 1 - .../modular/circuit2/gate_linked_libs.json | 4 -- .../modular/circuit2/lookup_argument.sol | 11 +-- .../modular/circuit2/permutation_argument.sol | 2 +- contracts/modular/circuit2/proof.bin | 2 +- .../modular/circuit3/gate_linked_libs.json | 2 - contracts/modular/circuit3/lookup_0.sol | 67 +++++++++++++++++++ .../modular/circuit3/lookup_argument.sol | 33 ++------- .../modular/circuit3/lookup_libs_list.json | 3 + .../modular/circuit3/permutation_argument.sol | 2 +- contracts/modular/circuit4/gate_0.sol | 1 - .../modular/circuit4/gate_linked_libs.json | 3 - contracts/modular/circuit4/lookup_0.sol | 67 +++++++++++++++++++ .../modular/circuit4/lookup_argument.sol | 33 ++------- .../modular/circuit4/lookup_libs_list.json | 3 + .../modular/circuit4/permutation_argument.sol | 2 +- .../modular/circuit6/gate_linked_libs.json | 2 - contracts/modular/circuit6/lookup_0.sol | 63 +++++++++++++++++ contracts/modular/circuit6/lookup_1.sol | 55 +++++++++++++++ .../modular/circuit6/lookup_argument.sol | 45 ++----------- .../modular/circuit6/lookup_libs_list.json | 4 ++ .../modular/circuit6/permutation_argument.sol | 2 +- deploy/modular-verifier.js | 15 ++++- 32 files changed, 302 insertions(+), 145 deletions(-) delete mode 100644 contracts/modular/circuit1/gate_linked_libs.json delete mode 100644 contracts/modular/circuit2/gate_linked_libs.json delete mode 100644 contracts/modular/circuit3/gate_linked_libs.json create mode 100644 contracts/modular/circuit3/lookup_0.sol create mode 100644 contracts/modular/circuit3/lookup_libs_list.json delete mode 100644 contracts/modular/circuit4/gate_linked_libs.json create mode 100644 contracts/modular/circuit4/lookup_0.sol create mode 100644 contracts/modular/circuit4/lookup_libs_list.json delete mode 100644 contracts/modular/circuit6/gate_linked_libs.json create mode 100644 contracts/modular/circuit6/lookup_0.sol create mode 100644 contracts/modular/circuit6/lookup_1.sol create mode 100644 contracts/modular/circuit6/lookup_libs_list.json diff --git a/contracts/modular/circuit1/commitment.sol b/contracts/modular/circuit1/commitment.sol index d688670..9acfb0c 100644 --- a/contracts/modular/circuit1/commitment.sol +++ b/contracts/modular/circuit1/commitment.sol @@ -37,7 +37,7 @@ library modular_commitment_scheme_circuit1 { uint256 constant unique_points = 4; uint256 constant permutation_point = 2; uint256 constant quotient_point = 0; - uint256 constant lookup_point = 94511721702704; + uint256 constant lookup_point = 94358033697232; bytes constant points_ids = hex"01010101010101010303010100000000"; uint256 constant omega = 14450201850503471296781915119640920297985789873634237091629829669980153907901; uint256 constant _etha = 14062721881273474090606415031361994540585550571695842571456013353340629726555; diff --git a/contracts/modular/circuit1/gate_0.sol b/contracts/modular/circuit1/gate_0.sol index 3de3b84..4060b84 100644 --- a/contracts/modular/circuit1/gate_0.sol +++ b/contracts/modular/circuit1/gate_0.sol @@ -18,7 +18,6 @@ pragma solidity >=0.8.4; import "../../../contracts/basic_marshalling.sol"; -import "./gate_argument.sol"; library gate_circuit1_0{ uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; diff --git a/contracts/modular/circuit1/gate_1.sol b/contracts/modular/circuit1/gate_1.sol index fd6f983..7504710 100644 --- a/contracts/modular/circuit1/gate_1.sol +++ b/contracts/modular/circuit1/gate_1.sol @@ -18,7 +18,6 @@ pragma solidity >=0.8.4; import "../../../contracts/basic_marshalling.sol"; -import "./gate_argument.sol"; library gate_circuit1_1{ uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; diff --git a/contracts/modular/circuit1/gate_linked_libs.json b/contracts/modular/circuit1/gate_linked_libs.json deleted file mode 100644 index df84e4e..0000000 --- a/contracts/modular/circuit1/gate_linked_libs.json +++ /dev/null @@ -1,4 +0,0 @@ -[ -"gate_circuit1_0", -"gate_circuit1_1" -] diff --git a/contracts/modular/circuit1/lookup_argument.sol b/contracts/modular/circuit1/lookup_argument.sol index 8eb7033..14d686e 100644 --- a/contracts/modular/circuit1/lookup_argument.sol +++ b/contracts/modular/circuit1/lookup_argument.sol @@ -3,7 +3,8 @@ //---------------------------------------------------------------------------// // Copyright (c) 2023 Generated by ZKLLVM-transpiler // -// Licensed under the Apache License, Version 2.0 (the "License"); +// Licensed under the +// License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // @@ -17,14 +18,6 @@ //---------------------------------------------------------------------------// pragma solidity >=0.8.4; -import "../../cryptography/transcript.sol"; -// Move away unused structures from types.sol -import "../../types.sol"; -import "../../basic_marshalling.sol"; -import "../../cryptography/transcript.sol"; -import "../../interfaces/modular_lookup_argument.sol"; -import "hardhat/console.sol"; - library modular_lookup_argument_circuit1{ } \ No newline at end of file diff --git a/contracts/modular/circuit1/modular_verifier.sol b/contracts/modular/circuit1/modular_verifier.sol index 85293fb..fe5c0a6 100644 --- a/contracts/modular/circuit1/modular_verifier.sol +++ b/contracts/modular/circuit1/modular_verifier.sol @@ -24,7 +24,6 @@ import "../../basic_marshalling.sol"; import "../../interfaces/modular_verifier.sol"; import "./commitment.sol"; import "./gate_argument.sol"; -import "./lookup_argument.sol"; import "./permutation_argument.sol"; import "hardhat/console.sol"; import "../../algebra/field.sol"; diff --git a/contracts/modular/circuit1/permutation_argument.sol b/contracts/modular/circuit1/permutation_argument.sol index b0f9f85..e88590d 100644 --- a/contracts/modular/circuit1/permutation_argument.sol +++ b/contracts/modular/circuit1/permutation_argument.sol @@ -28,7 +28,7 @@ library modular_permutation_argument_circuit1{ uint256 constant permutation_size = 4; uint256 constant special_selectors_offset = 4 * 0x80; uint256 constant table_values_offset = 4 * 0x80 + 0xc0; - bytes constant zero_indices = hex"008000a000c000e000000020"; + bytes constant zero_indices = hex"008000a000c000e000000040"; function uint16_from_two_bytes(bytes1 b1, bytes1 b2) internal pure returns( uint256 result){ unchecked{ diff --git a/contracts/modular/circuit2/commitment.sol b/contracts/modular/circuit2/commitment.sol index e71d267..8ac454e 100644 --- a/contracts/modular/circuit2/commitment.sol +++ b/contracts/modular/circuit2/commitment.sol @@ -37,7 +37,7 @@ library modular_commitment_scheme_circuit2 { uint256 constant unique_points = 5; uint256 constant permutation_point = 3; uint256 constant quotient_point = 1; - uint256 constant lookup_point = 94511721624960; + uint256 constant lookup_point = 94358033688480; bytes constant points_ids = hex"02020202020202020404020200010101"; uint256 constant omega = 14788168760825820622209131888203028446852016562542525606630160374691593895118; uint256 constant _etha = 12217208067492249031102872072655908974751031861422067257283053495957748658893; diff --git a/contracts/modular/circuit2/gate_0.sol b/contracts/modular/circuit2/gate_0.sol index c7b42fe..64cd081 100644 --- a/contracts/modular/circuit2/gate_0.sol +++ b/contracts/modular/circuit2/gate_0.sol @@ -18,7 +18,6 @@ pragma solidity >=0.8.4; import "../../../contracts/basic_marshalling.sol"; -import "./gate_argument.sol"; library gate_circuit2_0{ uint256 constant modulus = 52435875175126190479447740508185965837690552500527637822603658699938581184513; diff --git a/contracts/modular/circuit2/gate_1.sol b/contracts/modular/circuit2/gate_1.sol index 2c431b2..f09b7eb 100644 --- a/contracts/modular/circuit2/gate_1.sol +++ b/contracts/modular/circuit2/gate_1.sol @@ -18,7 +18,6 @@ pragma solidity >=0.8.4; import "../../../contracts/basic_marshalling.sol"; -import "./gate_argument.sol"; library gate_circuit2_1{ uint256 constant modulus = 52435875175126190479447740508185965837690552500527637822603658699938581184513; diff --git a/contracts/modular/circuit2/gate_linked_libs.json b/contracts/modular/circuit2/gate_linked_libs.json deleted file mode 100644 index 28309ff..0000000 --- a/contracts/modular/circuit2/gate_linked_libs.json +++ /dev/null @@ -1,4 +0,0 @@ -[ -"gate_circuit2_0", -"gate_circuit2_1" -] diff --git a/contracts/modular/circuit2/lookup_argument.sol b/contracts/modular/circuit2/lookup_argument.sol index 91ba69a..c4bce5c 100644 --- a/contracts/modular/circuit2/lookup_argument.sol +++ b/contracts/modular/circuit2/lookup_argument.sol @@ -3,7 +3,8 @@ //---------------------------------------------------------------------------// // Copyright (c) 2023 Generated by ZKLLVM-transpiler // -// Licensed under the Apache License, Version 2.0 (the "License"); +// Licensed under the +// License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // @@ -17,14 +18,6 @@ //---------------------------------------------------------------------------// pragma solidity >=0.8.4; -import "../../cryptography/transcript.sol"; -// Move away unused structures from types.sol -import "../../types.sol"; -import "../../basic_marshalling.sol"; -import "../../cryptography/transcript.sol"; -import "../../interfaces/modular_lookup_argument.sol"; -import "hardhat/console.sol"; - library modular_lookup_argument_circuit2{ } \ No newline at end of file diff --git a/contracts/modular/circuit2/permutation_argument.sol b/contracts/modular/circuit2/permutation_argument.sol index c1db346..81afedf 100644 --- a/contracts/modular/circuit2/permutation_argument.sol +++ b/contracts/modular/circuit2/permutation_argument.sol @@ -28,7 +28,7 @@ library modular_permutation_argument_circuit2{ uint256 constant permutation_size = 4; uint256 constant special_selectors_offset = 4 * 0x80; uint256 constant table_values_offset = 4 * 0x80 + 0xc0; - bytes constant zero_indices = hex"00a000c000e0010000000020"; + bytes constant zero_indices = hex"00a000c000e0010000000040"; function uint16_from_two_bytes(bytes1 b1, bytes1 b2) internal pure returns( uint256 result){ unchecked{ diff --git a/contracts/modular/circuit2/proof.bin b/contracts/modular/circuit2/proof.bin index da21927..471c180 100644 --- a/contracts/modular/circuit2/proof.bin +++ b/contracts/modular/circuit2/proof.bin @@ -1 +1 @@ -0x030000000000000020854db0ae86569361024692d5064f60f768ff6651b15c077c47d5294078e82a5200000000000000200d42ef66d4b798560099ee547506be356e5b82f8e575a39a1a86617555016cc900000000000000200087858048a0556ea53d0ddc1aabbb237ef3a66a6e3dd1deb7b0610c180095101201a57f05d28bcea2db3f8d49da0c8a3042b38348b78d086bc9c7f8633b089100000000000000261201a57f05d28bcea2db3f8d49da0c8a3042b38348b78d086bc9c7f8633b08911b02b1d914ea72056989679d7826ca1f9adbc9880002cf6daffb7f1fa3b332cd0a1ddf25ff24555e40c4e4d4fb547fc1fe154493fd067f3bf28477cbb69d3bf64925359c68cba0ddaf87fd463f6daed7e844deb500155000cfe079de79e6639a46d11a09f9fe5593c56241d2df4f7e4df294e00beb2d7aa3a19f4691fe4ca3ba304dd9fa371b70eeffd08ccb957867d20aeb86e7009bc009af235519554cb932200118f92f7e61e998c86ca3f4a5140c531b90476e44ea7d6b5aee01f4187a126a45a7312e851bf898402981030726b3a4f5684b04458845c9f753b35519105c1201a57f05d28bcea2db3f8d49da0c8a3042b38348b78d086bc9c7f8633b08911b02b1d914ea72056989679d7826ca1f9adbc9880002cf6daffb7f1fa3b332cd702a51c7343586f1e10bb83ca41a1faa390f1891621c60b6938dace9ec1a3a1b3d9bd931d08eee60195862ede438d303f80e10fc9093f2a0920d1f3d2bed12c9160764dd2d77e2053d68a42444b3bf4a56d10f44a591a65cd6962f186d70dd915d118568c35ccff0c8e14aeb77fcd0a05ba585f78d646348b66c554b10625e604f97ecea488e27622192e4220e4d9fc3f6e3eff90fec0ceca2be96ca13aa56c03a68771f10abc9d88dbdf7ce531cd3044141f573048011fdb1b76e4ec34435a6724d706311299a8eddeaa59750540978653cf0781eba65a7a4821aee54f1209d2c15f4987b285a2933fd7ab0bcdf37db25838584986a6fa5c354850936d476213f1b4adcabfaa14cf2ee7ec3990f58d91ae75bfaaefe1327313d89eb23baf96f24ea6967ba21d610db8a45c528695d96bc0ef98a07e2c7154e3053eb7eec70da363642e0ca68dd18c7c0d3d56d2ebba3108d5ac73d310411acedfe8215be7258662761bdeda7376d374c58b68475ecfa30064120c27daa97edfbda94eecaeaff68ad335e58e4d1f811abfbb1dd2525192dd56c4a750b60665a7d4736de63834f369369e984155e5f975bd41103c801ea569e500244152d768985604be0800b0648bbb8409a8374e8f026f89d1e9932afbeea7ad9e83ebe921a9e525645bf9ef73cd3d24de7686966f8fa3577ea539d516c0a16d46d0e2c283db58b157952ca5337e61e6eae18d8b1667cae953068d5671650e67c9f5527828cfbb1ddbbfb67795a5736e14316a8f074fe53d592044f67b074426ac9200f1f5de16ad9b99145842afe781b7d94d4fcbf6f7e8222d3cace640eac5cba90a6a9c280b5557407dd2a364f5a490a35af5a44af66fd56da0e6f9fc7d1f2e74ba771a22a90a6b0634ebc3fd234eb37c4312d38e0749d7bb2c35b2c2b7da8fac3b47d04ca053422e04e961c0d18e19a5b0e8a6d573c2f03e7952392c2d15f5beafd41396ffc839f86722c4318a09e0d9472ff41112033b51f5833eb23ef62979858e58f36be91e3756efb1b3f4a168e87fae2f4713d5f51254b6be9d4ad7908775a2bb517bcb01441979e0b383371fe9d37ab8569c822ba3ea123b4aefd1c0736728d997a0eb0c45af07126ee376b96c14a13cdd1c41748a935789d97ddd1598cf6a85c2b35e59e0eb84756f89f9ff36507640f6bc14d684d7f2ac432d369a81bc556d5699a839fe5e47b734fb5d9bc56d59f4ea53280a535bb81161ce37e6cf8bb955cdb5853e4414f760000000000000008000c010402010305000000000000001602020202020202020303020202010101020101010101000000000000000300000000000000202d0b7a4a2d4b8f00da8be9aba24df1db4a12ed8fdbc88543cea2d8790205e72b0000000000000020d46c20e374e0ccc7d178e7fb88fa8e8198e68de4df6e88a0394e563cd37119b600000000000000204244a5de83a9a223cd84cbad9b5652580599f87961f8c8394f90a33d7545ae020000000000000003010101000000000000002c59449d9a302401865eec2340271598ef87c0551ac0e33765241de8ab6c75208d1aa909b8f9797bc1d44db4c7e28c3f15cbfd4ee83f1b2499dbe21753938adf742d3c0a9780e898439853be98e16df672138e1fac463eb7c8fcd15cb4f733e3d646b19cbba8b4e5049ae6196f2833e193402f8456b9bfa436032ea34a08cc1c2b54c8fb7e33212f48c3d6861e16be0d13e16795afebba4e80e9b988f4c26b3ad81f24abd4f67c4dff6f6351e9f2e3caf172560e5314440d7e1646770a3d94c5290dda9bd395d4d8945abc72aa6f0923708720e3c07220598b6412beb650ee9be366130b7f93c8a4b3d87d655d9a98b494cc9cc0428dde02739bed4148af11641e59449d9a302401865eec2340271598ef87c0551ac0e33765241de8ab6c75208d1aa909b8f9797bc1d44db4c7e28c3f15cbfd4ee83f1b2499dbe21753938adf74098075adfcf1b7a6c99a4162b11dc83f281d406cf941f0b333df0ea0d41918f852061e3efce7d6a31c13adb6d32058c5e6f146e48bb62cc073c87c31947d2c576e6edc17ff8312bbea15c0acd860433b08b0780611745e64de96ca9086f2591f19165cb1bef36c435f3cc0ce1670f796dc30fbf37d725244b35ed0068bf3eb0b3e5f05bcd475ab6f415ff6d5973865f5a782325e0fc5100bc78b7faa51e9c95c2b60a5c08b07811425a960d4011f29545b141179d7070f55c000de45e86a555f0f72324e4b0ebd9cf57c82079cc9eca04ee13a23d09856ada685567c3b8d302a678164c95551eb09e79cdd1a2bd563208567ddec90035da244ec56869a86018d60a41dafb4b73a0bd7cf7b9dc0e4d2a518a76b75942c5fa7d3fb5e2ab95696d75dafb266d3e9f628388ec0e8d99c4c84fa35fa528304e52afc5445f3bb5bb1ba5b770570665379e8ca0bae6815730dfde681d04f8d5222554baec904fa3225e5474527427adda5b16a94aa3ab7f3a60a7ce8b9200bec2685dfaeb4f256a16e1871ebfbb2f6e61d05e865543c5b587058cd4896a3844a0f86249225bf862dbabc497e0ae517d1c167367c08a568a0a10610d1878571cc356b84c1ca831ef6828228b0d209cd5913d65f98f4a73b7964288b3e59e951d6010b09967042f029ef466fd9fc4c56ed7a3d18b3d4a13c69c0eb40fee991b7fd552776c02d6765fe454b56bacddd5eed62f796d4994d657a715ac6b93d6f9513101e83c86d20566b1c3e1c82d06230aa06a4cae86d7d091b2ca320759cc8a4bf48fa0df07e7527e98651523a23a9bd5b563473b00ca35f1e499cefc280d29d1e46201e155516daea2bce54119fc51534a8f5ec96d4035cabb9ee8a913cbfe266eef3cef47a6253c57c1d5afb9166c9239109c54c9dfeb858bd92e6c0f779781cc60e829549d2aa547517035fc5992668f0fd135c7bec1eeb31ce142558a12f837fe3384964501a03e69747b5419812c519fcbb1f3dcbd605972d36c443603aeae9b98dafb375b0c02ffd12dccac05ceddbd8438c76e1bbf5bdc75c59fc9d8f889fef7073cc223d41c0e30951d8c508c68ea4ef087d8ac8973e12f212e16840febe3265e5813a4ad0870f247dd0792caf73d159e66358839b960a087f7a5359a5f9b8c86fc29fa98199a2532dd13aae7088d643b7502f83a968ef4d91d0da08f0e1245730479f3e27ab4d1b312215e9e1f006ede5e81d953e182b291b7c9ae559b1afe0f2d9d03d11821120a0cae86a609ecf1d400047952d3726efdfbda6883c874d6891a17a426ed8b8603ee0a128f495266c5d1f82d37dfcfed10f984aacaffc5e4b5bd0c0bc438093049541714fe967d87b70895dfb4dd2362751b828855b04032605dd4b1470b76b4434161e917a67bec0eeae10a0c25f44530e88f5b6a8856848c59c352c430e242cb836b4037d7bf183da6ea99f60e4015f6956ef365012b10ca57495a75da5825eab34e6648285d7e59433aa7af2d64dda2441ad2eaa6fdef03c0aad26fd116f0000000000000006009ce3168071be74df56db90cb7bd797a9d01e277ccc9cba98d587f1c5c927c81a9769963f58c2b68de0bff24818f88608730b0b073c1546fe755a83c2b40d1702d70863531b962beb81df4f1f2fe9ce16590f558d8bdf6fe90b8f9ddb4f11ec122580d72a520930162e2aed8aee03ce2d997ea1ba405ffe3fd55a53221cc625288fa3ee00a6347c107bbdfc955bd1a444a9b575972f1fef7fb86c1bfacdfca745986166cb87c1d1630db174659addf16cf76fc3f07341dc2e9dee4777ba3dc60000000000000004000000000000005a0000000000000020b024bd12fb5b07a167bc8a510f274a06946eac1240e823dd682ec71d18e04b4e00000000000000070000000000000001000000000000000100000000000000201dba87b548f296ea9efc52957e260ea1a785dd708b0458ff7f1ed74a3263a86d0000000000000001000000000000000000000000000000200670200ce8840d42c287eb3020f13a6f38a3edcce46c10cf3525c1dcb96d3f820000000000000001000000000000000100000000000000209dae199a4e50f8ed1b4aac58675d7c022a948d70707593b776f9ea726e1937230000000000000001000000000000000000000000000000208b4cfcd55a35f9bf1484306fbe9ca3c7d8eff4fdb35bf57fdbc04d2881ba460b00000000000000010000000000000000000000000000002089519a6d88a150b09627d8adb69500fcbed330b3fcd7c922d9d68ccafe3d00db000000000000000100000000000000010000000000000020c32a0d03207fdc70dd7f1a4f65654f7f921570d423753644507fb723e9043ef2000000000000000100000000000000000000000000000020a5791a4d1fb68b8c5de94b338a0e0ba2ce64eca86311b65648af6a74b0fb4d91000000000000005a0000000000000020854db0ae86569361024692d5064f60f768ff6651b15c077c47d5294078e82a520000000000000007000000000000000100000000000000010000000000000020c9d838020cabf76d82c2a91375046daf23a4ade5761d0a127d18d6b62934f7d9000000000000000100000000000000000000000000000020bb146516a86122721799ec57494448ec2aecf3a6670823305166decc18f0e31a00000000000000010000000000000001000000000000002072401628417a0a31b6a6dcdb065531d349a57f403b233378c43a06b64f81c34c0000000000000001000000000000000000000000000000205fb3837dce71dcc83df63eca25f064b25cd4526a367a39245bae797d98b4c9970000000000000001000000000000000000000000000000207244fdbb4f056731dc6358a5c20501330651e47f53635ced3bcbe87896590c46000000000000000100000000000000010000000000000020f3b93eff1548b1ba20efcf3ec374b407dc304a16e304e768487603f04d2d83f8000000000000000100000000000000000000000000000020d08f418015e26f87ab305d6495e2980b749476529fd09451dc5c6bb35abed44c000000000000005a00000000000000200d42ef66d4b798560099ee547506be356e5b82f8e575a39a1a86617555016cc90000000000000007000000000000000100000000000000010000000000000020afd1c61804bd72958f37e749b00043eb6a5da797b4265136065b4ae09c6478e3000000000000000100000000000000000000000000000020985f4b08f9a9f7e002cf14c7c4a73a10f8228ff2ed9327789606c71342f57e41000000000000000100000000000000010000000000000020814007c95719ac2ac5d8baa791db89a7f6e74f415029c8a027aefe672042021400000000000000010000000000000000000000000000002097c8ad9c5842229377e4f462da79f62d991238bcecfa3b6076d8ecda4a72d0d1000000000000000100000000000000000000000000000020d39eff938802c3986d8600384880ca5ca7ca105dff89ea3947bfa90a4d8310a1000000000000000100000000000000010000000000000020396c915d4f23be9584523adb4046fb95e5ea814875d9ca172cbb3e1f33aad5720000000000000001000000000000000000000000000000205a2c89c4e4836c808df21f4d5e09e279e68db17e34d0488d24587be35c859331000000000000005a00000000000000200087858048a0556ea53d0ddc1aabbb237ef3a66a6e3dd1deb7b0610c1800951000000000000000070000000000000001000000000000000100000000000000201bbac59e0066cd82a8f61f39da3ae2e83f6177fe94b7ff3c6dd02a5bec9292ac000000000000000100000000000000000000000000000020bb8fd1326c537dd7ebbeaf0da328f3bfe80d52daec81c1477abc2e8f77b145eb00000000000000010000000000000001000000000000002041ff6780a59cf3ca7bbb55b7dff5d3edb0de5c906490ac3cc016c9afa75bc395000000000000000100000000000000000000000000000020195000eac039c5ed1f06845f273a2c5d55863293dca420724cf08a3478714c960000000000000001000000000000000000000000000000201a2449d5d309ac721ab62ecbe752724722c553972fb04235d8f3958be4c53ce60000000000000001000000000000000100000000000000201a84bfd57af98de74539d42274943820978c193398e520b3fcea50e153d9cea6000000000000000100000000000000000000000000000020feb4f4e231475905cf0afb3ea8b862c9c50a7ef7f9f38cf77e7ae933b015c7640000000000000003000000000000005a00000000000000202d0b7a4a2d4b8f00da8be9aba24df1db4a12ed8fdbc88543cea2d8790205e72b0000000000000007000000000000000100000000000000010000000000000020832f2ac3968c4883c5de12af3fad9d838543d2f004fb202a64a2dbda3c45a2b70000000000000001000000000000000000000000000000206cadbc4703d89e227234d81ed920b77165e01264b84f3cee516dfd9f14b4d9b80000000000000001000000000000000100000000000000208c1479900ae70c2948148ba82dc8952344dfb712cf9bec53a30e8761abfded4e000000000000000100000000000000000000000000000020808d8dee3bdfb3972b4c010419f9687b433b9a6bfc1d0265fae372d3b8535c32000000000000000100000000000000000000000000000020c9e45a825b38a15c7b76f1c91dd9003ea6bad620d7223e1083b02321664aeb5c000000000000000100000000000000010000000000000020f3a4e052f21ec37153e09e0ba08cf1ffe49b70d2105a0d194b2ed9e99767d49f0000000000000001000000000000000000000000000000204e056f30e36f122ed53c57e058e0b366aae4533f6d40b2b1a0a90563b6271698000000000000001a0000000000000020d46c20e374e0ccc7d178e7fb88fa8e8198e68de4df6e88a0394e563cd37119b60000000000000006000000000000000100000000000000010000000000000020fcb381b5196fa040afe3c0ca22f35c6d2ae6697fa0e028843630ac1395135551000000000000000100000000000000000000000000000020b84dd00b135fe405b15b1909781a56c9f3067ac72e54a93246c2ec3441abb2460000000000000001000000000000000100000000000000207d07f9d411cd54b356ce64f239812fcc1fbfc33a2bd707811573f76b19dc082d000000000000000100000000000000000000000000000020f746638172456dfe58394e7028f1ce797775e3a016f02499d2345a838aa85bb8000000000000000100000000000000000000000000000020ab9d69c817f799fcdc50b290ebd1c1f029bd971a2f8e73dd2da5c6896579d4bf000000000000000100000000000000010000000000000020a6ed916d033f3ed39d1053cf4f9431328e436811bd37286c7a6461adeed9bfdd000000000000001a00000000000000204244a5de83a9a223cd84cbad9b5652580599f87961f8c8394f90a33d7545ae02000000000000000500000000000000010000000000000001000000000000002096cbc5e23757f5ece9d1cf9c3d2ce85b50b4ebc7f01f1a3ebc02523a7f208d1000000000000000010000000000000000000000000000002082d40a063a5094636c862344fbe4999827a29aa962edb6ee9d3be54ecebe957000000000000000010000000000000001000000000000002002a145e811dbcaa772a0d872d84d2eece431c9676d1931bcb25b636fc024b7f800000000000000010000000000000000000000000000002055a2b8cdac5432f02dd3b3f210b31620f30aa753ff68c18618ad879459762a0200000000000000010000000000000000000000000000002091964f97b1c5e91495f11b39b8fd96ae5624edf56e6440752943cb0286b5e46c0000000000000002710ad653fae5b9cad361a3bc824c43cd82af649e43d05ee5572b2d3139441d3714cdac8660f330ae4003ac8cfd7e32e49abacbb16b931a7eb8efed3655287981 \ No newline at end of file +0x0300000000000000206dd63ff5b9f85d9729dcaf164fe828b62c690deeb6c0cb6e0575f6945a2100eb0000000000000020d3f3396cd0632a7ebbbc2c6733858778cbc0c5ac68725cf68a12f4e2d335eca100000000000000204027d688596348276c018e905cd5c5c2ee7c16fd680384018e4a9fadcb4f9ffa626e140a18e5a7459215a931cec8249918ab39fbfbe3d3f764022e6486f1abcd0000000000000026626e140a18e5a7459215a931cec8249918ab39fbfbe3d3f764022e6486f1abcd1b02b1d914ea72056989679d7826ca1f9adbc9880002cf6daffb7f1fa3b332cd6d5e47a6de34207dfe766834774fc81509fa61d4e342ffc8bc0f44c4b09bb2964925359c68cba0ddaf87fd463f6daed7e844deb500155000cfe079de79e6639a4602099d19bbf3c0c1e1c93f096368734f66d4c036ded683246ae166d441e214304dd9fa371b70eeffd08ccb957867d20aeb86e7009bc009af235519554cb9321a57a5ff0dadb524804520991b307b11dcd94135801e6d99feec29d3cdcd2e886a45a7312e851bf898402981030726b3a4f5684b04458845c9f753b35519105c626e140a18e5a7459215a931cec8249918ab39fbfbe3d3f764022e6486f1abcd1b02b1d914ea72056989679d7826ca1f9adbc9880002cf6daffb7f1fa3b332cd524e483f9155b237b25a847dd7d932dd8ebc7afd90989e4212ac1550120f56983d9bd931d08eee60195862ede438d303f80e10fc9093f2a0920d1f3d2bed12c95fc8219e21c0f47501b57027147c01c595b68ecf4762d7a22b36b52ed0641cdb5d118568c35ccff0c8e14aeb77fcd0a05ba585f78d646348b66c554b10625e6033b4e1bdb24088caa62b218dbd7a52d1e3fdef357f6e5dab85ca336f0268a5c73a68771f10abc9d88dbdf7ce531cd3044141f573048011fdb1b76e4ec34435a618270db64901d87131b3d890628ac97b20883eb04ca000ff060ea6c084afde8f1971376fdecbac8d7ec47e270aa3fae30448dff43e79347ca3caa580704f4a473f1b4adcabfaa14cf2ee7ec3990f58d91ae75bfaaefe1327313d89eb23baf96f64c6f15b55074dbabaf8fc63aa26145c939b894041940430101e92816edbb0cc3aca5ab61972e2892b602c2405ece2f785f78ea12e19d49af34e994be6cb03e2662761bdeda7376d374c58b68475ecfa30064120c27daa97edfbda94eecaeaff5600f3b19a5f9b461b82697b95b92e789981482f9c1884d06c6497560364d7ee369369e984155e5f975bd41103c801ea569e500244152d768985604be0800b064f4e4efb5c87b03c102fa6b6a8bde222551ac4a7fc0e0609f7f3db249121b15d3cd3d24de7686966f8fa3577ea539d516c0a16d46d0e2c283db58b157952ca536f888554b77f5851894a441d81a754ba5af8e44d80c9c504a62eb5791414ff3c21c4bcc2102674882351292283f7542905d8786dcb382bec64088a1e745832a12b8a3555a120612eedc9398edf3a18777e7fe7cf4f9f120fbc8da322fa7b07eb58b821750b3c83307ac8cb997d32dc07ac992e507855032cfeaca8a3ca56fb221ff768967b8fadcbcdd9a501a92ad9bb574d96f196ef92377646fb9e70ceba0462a6d5a2138035413bacbdfb155127dfd0d04a2976f1023c00d577e43143e9746792589d41ab91ee7790134a93bbd89cc6d23fda90f4ec50bf3f2c2b9e39665458705fe084c8b316c22f0d1706bb4d9e10aa7b30a134f81b366a5d7ff3ffc50f49c9ff3ef9f3e3d132ae23f98db7174830057f92d286de6d9240d103ceae32495e146795ab03278959fee909ab870fe2cb92d317e1d3da52c425fdefd11a43f46218a6833c8d6d971bcedeee282da2e2843a7bb82149390f3c8d9e6494682d8c068f9e5b68efccc14ae2b27fe91ca54bdcda0f64ed24d2f1fef3932df407da160000000000000008000c01040201030500000000000000160202020202020202030302020201010102010101010100000000000000030000000000000020d039ca1c71ce79a86c7a99e73a8656cdd2243a3398fee6db89c32d438e6832a8000000000000002015aa9d28bbeac0cea09a11c445c3b5d5c95f3411d6e87b1b0682e4e82b23322100000000000000202c0ebc7bfcfbb8c939318a12e46a232b2488c65ee75c597badebe5ee9f54ab320000000000000003010101000000000000002c1a8f3ae1cc22ee66ae3320a20450eb9bbf136819ab9c98a27528d588439e5b12595e6c715d7a8ee18506b7660550ec6994aa3be95461c35c8ad72a76bc61a4ef45fcf4d96b570786902c0c661494993ce5ca34b0b149d072341dd6bad9547d7d2df0b279be4675c1a30dcba1f50d3ec86df36f524eb48b8ccbe2294426ab82841a3414a548eb3f8d244cf6aa6988d094f990e0c8d90b43236cd0df1ff14f6e6759b992ade0b23dbb0eece15da01907705a2cc33a26f318db932f20df0eb0919a437ee931d4d13f93cae0e6a0d91bdc0d7f38817aef5079f8f9b619e0992c04d0306ebe2154cc3db46858f1673085fbf7d485228810ade2060649e61e66d3fb311a8f3ae1cc22ee66ae3320a20450eb9bbf136819ab9c98a27528d588439e5b12595e6c715d7a8ee18506b7660550ec6994aa3be95461c35c8ad72a76bc61a4ef2590a1386fdd68a64b48694770cb34c8d542d4eae61b920d1e2f9c2b67722046372ad9812eebaebb08c292271e6b113f29da14c8440cc8ad7a9c2c2ae50e4a5c58a9241cc98946e8adbd47f41026725594fb5c824a7d4579be82a04ebdac7aa92f66a4e5e3bd51da8a914d8e68369995dd75582def342a0fcc1ef316ee91cf7e382f1bf3863d2ea202ccca570dcb24fc662281b6f5aeb474789fc8f3792b8f356d9dd7a5c8c2d86909947f60b55e823b0a0c7de924274ab55f69056c0bdf60c11aeac71c75d9499d1e94a608813730bcc5d56b13c46b04be50466895674e259201112e55d64e3d5be9e494970f6af12c188153e6bd80057afa0098701eded5782419c9ef7e61515d953fd21cea0eb6b0c29eec0d0981113298ca1e71e21a6aa256e8050594970a29a019afbfe8a57ba218d09f94410d4c81bf1bea0a5917f41404830792dcf424d6f4b58d6be37793798f505c2459bde2df30b2d1b3d3a8399015cdb590ab8edc41f911f3269297bd2067b663803e56c2ffa52676db2ca5a6f21a85abddc9d0ad513fe3a6b9a3d1dba345e25cf42597f88444787a0a6e408b4608c59640a559dc8d7fccfe760938bd2e81e32ab91aa9fb0c4abe8b3ec8bca416366a3e014ccf6a9ae9c91f4994f731c9d741d9cfb8642e74f0e42467be9f87a008e1e9b461510e3dde26ab0a775e3c9210d4ac7c7c03d44b041dc790fafe28411557af6aaf5fa65a22d9653d5e20780d7e9ed9ce052d7958c1338247c52bbabe6327d2539b0bd70f9b4d4e718a9b2310e31cecdcfe6848caf78677787e522772676582557f6ee26d2c72a1e5831d359574b68620ccb1537659e43707fa8d56bf40c98412694ba9f181af5f38221f44ef57df80cff7552f44c9a92de9d4eee44045101330114f42fc463b4332592624e462b684c404ed8ba3fc1f84ebeb0f68bd54fab4d73b9b444274cc02879bda831244e0004de8861e929185bbd55855f25d6217e778617dc2234eadcdf9fe5b4a5c0c68a06a91606e04fb6c035df87a974269edbb383f58b0c818643ed98a354ef1567826c325e6f2d81165145765e1d47543f0b824bae03ad07fea04ac2e231075c4f8b62023539c40967c453bde2228bd3ab4b785f787af667e45e8db0f7f6b697a9188abce54b7f3aa1aaec5bc22348c6ecc36371cfe1b4ababaa93cd6fe123da88841425a82cdc7a5ef69222d351d1e1c3605d8dead8783a5b51da00a46ed365bac17c330589f26c374ff98d85012f4373c8b9baa0ac3ceb22c19d688850e614ffccac8bf07b7456daca0d1d31dbf972115b38d2b3225e007506e31bf2ea8f9e5c1faaa15b6e9fa6b0f6faecb5cc52c1b66e21ca36e653fc4e2ab369efa3726f3eece7ffd8d7fc9c57407053ecf1c1f14f5ac82c9abd626b1e389a9ddab272444dbaa93726494ae674ce19034c8d2ec296599f469fbb94c6de31cd8824d07c065d8dc460d6f88aa2ec0ab3bda8919316ff42e661eb3a6b749d27695db9f08cc8b66b9af86c3bab31e1f88b9ea8e5c8f000000000000000602f6339ea32367185e1fbddc5d313bcb6050a682ca5de82cac4491418ea46627433e144cc9996fb5b692818c120530b915ec7348ef0cbedac743940d82688edb08307b5c956a01b49a35735eb6c4eb099b303ba4ed001c22293fe21f60b85c6a2215ce0a7b2b23b11f80bc6795095aa6b351133583e7242404b1452fc8d6e23b05f4d9bc5ac061ad981a2a30f2215fff12fdd2da934e637bf2dfb0b851f069f46f94ae5a9f719043197dd7cc022bc15f7128f4afe843dc5ac21829c3a9e0f3ce000000000000000400000000000000120000000000000020b024bd12fb5b07a167bc8a510f274a06946eac1240e823dd682ec71d18e04b4e00000000000000070000000000000001000000000000000100000000000000206a0c0f25e40433920ed7999cf1bac17bbd3282a40534be3bf63357f3c84d747e000000000000000100000000000000000000000000000020bec9ce09d1cb7f8b094558f00cd0b52b85cf1a2dd4aaeddff8d5f5c072dcf3380000000000000001000000000000000100000000000000202409e59bc357fa384aa2db1a0361f610c480cad34715b074f9209091daa258c40000000000000001000000000000000100000000000000202d0b87876f7e258bbec0a11dc508a3482e6dfb93a6410a8de151dd3b5add3bf4000000000000000100000000000000000000000000000020e2732ddb16a4cf9185af77bffc17228a0fa31015c9f64ef9dca0a1a0416fbc3e0000000000000001000000000000000100000000000000207a431e3e3b4abc66874409bc00714e84ffdd8b784900a87b7c62a52497fa40c4000000000000000100000000000000010000000000000020564b02dc9ea4ce766caf42be67c77c94a3193983b90074fcc9626e7b3b0da762000000000000001200000000000000206dd63ff5b9f85d9729dcaf164fe828b62c690deeb6c0cb6e0575f6945a2100eb0000000000000007000000000000000100000000000000010000000000000020fa0a2ef78650f6d15dd48478c93932318932506a4ed21511e2375e1c4129e83c000000000000000100000000000000000000000000000020e5e0981156498edf84fa650b0df18bfa6033315719de0c3680a145709c1f1a4f000000000000000100000000000000010000000000000020028620e55fbf3e6d9d08bc4a01a0e87631d5e79ddbf29e97b1555f0b4a9ad57b000000000000000100000000000000010000000000000020ad8fa639f814218c1765312d142ad70328f81c4db0addeb22b390eb35eeb646600000000000000010000000000000000000000000000002048dd00290f5b48725f806746554818ee49bec059c72a2e8adda0ce213353b2b8000000000000000100000000000000010000000000000020fd4a69d3614468e951c6b6628edd516fc1f089ab4b34169f6656182c32282acb000000000000000100000000000000010000000000000020287494402c2ccd3b5ce3cb9548e5d1cfbda1dd7dab596f99c5d87350d14854c000000000000000120000000000000020d3f3396cd0632a7ebbbc2c6733858778cbc0c5ac68725cf68a12f4e2d335eca10000000000000007000000000000000100000000000000010000000000000020263aadc7d174d1b0239425aec250ea127fba6814e96995a82f95bae08c11d275000000000000000100000000000000000000000000000020ccce9b7269d714c667da0a596c2083e9f4d0f15093cbf709e17a95da8bd3894e000000000000000100000000000000010000000000000020810b3af5db64ef0fbbfae43d4f9c9691288c4b01e407278041893071aae0cb6800000000000000010000000000000001000000000000002033e2518867fc9a00d991ebc2dd5ad50c099cc097afec09655fc7590aea2a52030000000000000001000000000000000000000000000000201371fdd03033edee51c07368763231bd954ba3d77dc08007863caee33e3c193a000000000000000100000000000000010000000000000020ae922b6dd5c16ca063d7ad225b33404ec462a28318ed2f5cc5bda6acce3b7eba000000000000000100000000000000010000000000000020ef313e97e38063a7cc7de05382d8dc829e21230b5f21b2f4b785fb8b7cfca4a6000000000000001200000000000000204027d688596348276c018e905cd5c5c2ee7c16fd680384018e4a9fadcb4f9ffa0000000000000007000000000000000100000000000000010000000000000020c341a693ab20ea8c8a9e42a7ef87bfa0815aa7965e87c84bf89e75a0119a1e390000000000000001000000000000000000000000000000202c4e92e3ae934531fe5a41455b28b78c254086127e94bdc1106d40ea27b6f66e000000000000000100000000000000010000000000000020cc195e5ad2c20d038bc4bcbe384e2117801b277903f60486ea9f38422179f989000000000000000100000000000000010000000000000020874ad82c29b4973764bded8bf74fb43b71a81fab786c33ff47c6ae2e7ba6375e00000000000000010000000000000000000000000000002080c379dbcbc755861b4d86dc97baafba0a446ff79509a8df1c29bcf676d0a5ab000000000000000100000000000000010000000000000020553ec430f582bc7209ff0c0f6b9fe50ce3f0d9fed48dc91e887a4511e5152dd0000000000000000100000000000000010000000000000020a72ac1761ec5850a9149e4e6fe50e4815708e5d89494280aa85423b08534c16a000000000000000300000000000000120000000000000020d039ca1c71ce79a86c7a99e73a8656cdd2243a3398fee6db89c32d438e6832a80000000000000007000000000000000100000000000000010000000000000020cd3afcb8eb315d6539fa0542d01b2ef52041c7078b182dba21810ec93a707e8a00000000000000010000000000000000000000000000002086856c54aa4ddbda66e251894afd22b5507b2c3256bd94de225f7546156ce7a300000000000000010000000000000001000000000000002006a8792bec5e8635247938b721b7443b8cbace65b7c85cccc425e310d0c9d6bc000000000000000100000000000000010000000000000020dfdce83bfa769a6e6a4983e99b179ab67f8547c532b37973275ac7f56879bb12000000000000000100000000000000000000000000000020dbe612e094b02b262fe98b4e65ec3f4867b6bb8111420e3b931fa55065a1ddc0000000000000000100000000000000010000000000000020209249e901a34113a2feeac298eed5d8b37fefabe88e82810aab1c15c177abfa0000000000000001000000000000000100000000000000209f6723b67323a64da13821f68b34cd62c32fada0eb5310cb175d2ce705ae8f1e0000000000000012000000000000002015aa9d28bbeac0cea09a11c445c3b5d5c95f3411d6e87b1b0682e4e82b23322100000000000000060000000000000001000000000000000100000000000000203dbd92caf0e1cc6b10088d751dda7aa33ffc4736ef01ccc0e0c05308cc67f2c10000000000000001000000000000000000000000000000209bafe248516fc2e260d96030d5b0a1ed80dfe3d13a2f49f187165c83f0013a28000000000000000100000000000000010000000000000020a1cf43396556383da4ebc84c095bdef4fe24d31a6473cb4ae247b50e1bf0a31800000000000000010000000000000001000000000000002032606f65f8ba1be27af74b79c691326d49b95255422218bb83c0cca09a01cec10000000000000001000000000000000000000000000000208dabd924a86edbed7143cecab787b0e1c37d3d800378e8485a23707ed14664480000000000000001000000000000000100000000000000206069f1c680841d1e54eccd25849bd95ba592c8f3b945cb15511440d3fc4e18a8000000000000001200000000000000202c0ebc7bfcfbb8c939318a12e46a232b2488c65ee75c597badebe5ee9f54ab32000000000000000500000000000000010000000000000001000000000000002035f9a0c795223550c664a6df7e23786fc421c467dc70e5a64fd49cd26c03bd8700000000000000010000000000000000000000000000002061addc61d4e673b94630ff86adb4b489d8a497fd3b2eb5c089e4ab8ce976c82a0000000000000001000000000000000100000000000000202785974147605f6e51c90211e2abd8dc3ca98a2b523682f9358bef66de84c3ce000000000000000100000000000000010000000000000020df63b17ac031e803a3eb18b7e05422d838fc1e4b9f76bc83f174869c052ed7a7000000000000000100000000000000000000000000000020fe83d189996bac5b99fa668c2fe150350d9ec9a2e61a90ab0d06284ce5c1c9c600000000000000023ac4c40b7d18f8f858cc00fe7a2690af421363c53dc91feb5a7bed3dfde8aee125daeb14576774335dfa5becbc597abc873f4d8ccddac2107a5d9c1e89041f4e \ No newline at end of file diff --git a/contracts/modular/circuit3/gate_linked_libs.json b/contracts/modular/circuit3/gate_linked_libs.json deleted file mode 100644 index 0d4f101..0000000 --- a/contracts/modular/circuit3/gate_linked_libs.json +++ /dev/null @@ -1,2 +0,0 @@ -[ -] diff --git a/contracts/modular/circuit3/lookup_0.sol b/contracts/modular/circuit3/lookup_0.sol new file mode 100644 index 0000000..9f4d254 --- /dev/null +++ b/contracts/modular/circuit3/lookup_0.sol @@ -0,0 +1,67 @@ + +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) 2023 -- Generated by zkllvm-transpiler +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity >=0.8.4; + +import "../../../contracts/basic_marshalling.sol"; + +library lookup_circuit3_0{ + uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; + + function evaluate_gate_be( + bytes calldata blob, + uint256 theta, + uint256 theta_acc, + uint256 beta, + uint256 gamma + ) external pure returns (uint256 g, uint256) { + uint256 l; + uint256 selector_value; + uint256 sum; + uint256 prod; + + selector_value=basic_marshalling.get_uint256_be(blob, 288); + g = 1; + l = mulmod( 1,selector_value, modulus); + theta_acc=theta; + sum = 0; + prod = basic_marshalling.get_uint256_be(blob, 448); + sum = addmod(sum, prod, modulus); + + + l = addmod( l, mulmod( mulmod(theta_acc, selector_value, modulus), sum, modulus), modulus); + theta_acc = mulmod(theta_acc, theta, modulus); + sum = 0; + prod = basic_marshalling.get_uint256_be(blob, 480); + sum = addmod(sum, prod, modulus); + + + l = addmod( l, mulmod( mulmod(theta_acc, selector_value, modulus), sum, modulus), modulus); + theta_acc = mulmod(theta_acc, theta, modulus); + sum = 0; + prod = basic_marshalling.get_uint256_be(blob, 512); + sum = addmod(sum, prod, modulus); + + + l = addmod( l, mulmod( mulmod(theta_acc, selector_value, modulus), sum, modulus), modulus); + theta_acc = mulmod(theta_acc, theta, modulus); + g = mulmod(g, mulmod(addmod(1, beta, modulus), addmod(l,gamma, modulus), modulus), modulus); + + return( g, theta_acc ); + } +} + \ No newline at end of file diff --git a/contracts/modular/circuit3/lookup_argument.sol b/contracts/modular/circuit3/lookup_argument.sol index eef5497..a250183 100644 --- a/contracts/modular/circuit3/lookup_argument.sol +++ b/contracts/modular/circuit3/lookup_argument.sol @@ -23,6 +23,8 @@ import "../../types.sol"; import "../../basic_marshalling.sol"; import "../../cryptography/transcript.sol"; import "../../interfaces/modular_lookup_argument.sol"; +import "./lookup_0.sol"; + import "hardhat/console.sol"; contract modular_lookup_argument_circuit3 is ILookupArgument{ @@ -87,35 +89,8 @@ contract modular_lookup_argument_circuit3 is ILookupArgument{ state.beta = transcript.get_field_challenge(tr_state, modulus); //beta state.gamma = transcript.get_field_challenge(tr_state, modulus); //gamma state.factor = mulmod(addmod(1, state.beta, modulus), state.gamma, modulus); - - uint256 sum; - uint256 prod; - state.selector_value=basic_marshalling.get_uint256_be(blob, 288); - l = mulmod( 1,state.selector_value, modulus); - state.theta_acc=state.theta; - sum = 0; - prod = basic_marshalling.get_uint256_be(blob, 448); - sum = addmod(sum, prod, modulus); - - - l = addmod( l, mulmod( mulmod(state.theta_acc, state.selector_value, modulus), sum, modulus), modulus); - state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); - sum = 0; - prod = basic_marshalling.get_uint256_be(blob, 480); - sum = addmod(sum, prod, modulus); - - - l = addmod( l, mulmod( mulmod(state.theta_acc, state.selector_value, modulus), sum, modulus), modulus); - state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); - sum = 0; - prod = basic_marshalling.get_uint256_be(blob, 512); - sum = addmod(sum, prod, modulus); - - - l = addmod( l, mulmod( mulmod(state.theta_acc, state.selector_value, modulus), sum, modulus), modulus); - state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); -state.g = mulmod(state.g, mulmod(addmod(1, state.beta, modulus), addmod(l,state.gamma, modulus), modulus), modulus); - + (l, state.theta_acc) = lookup_circuit3_0.evaluate_gate_be( blob, state.theta, state.theta_acc, state.beta, state.gamma ); + state.g = mulmod(state.g, l, modulus); state.selector_value=basic_marshalling.get_uint256_be(blob, 352); state.shifted_selector_value=basic_marshalling.get_uint256_be(blob, 384); l= mulmod( 1, state.selector_value, modulus); diff --git a/contracts/modular/circuit3/lookup_libs_list.json b/contracts/modular/circuit3/lookup_libs_list.json new file mode 100644 index 0000000..f09760f --- /dev/null +++ b/contracts/modular/circuit3/lookup_libs_list.json @@ -0,0 +1,3 @@ +[ +"lookup_circuit3_0" +] diff --git a/contracts/modular/circuit3/permutation_argument.sol b/contracts/modular/circuit3/permutation_argument.sol index cbd31b6..d882f4f 100644 --- a/contracts/modular/circuit3/permutation_argument.sol +++ b/contracts/modular/circuit3/permutation_argument.sol @@ -28,7 +28,7 @@ library modular_permutation_argument_circuit3{ uint256 constant permutation_size = 4; uint256 constant special_selectors_offset = 4 * 0x80; uint256 constant table_values_offset = 4 * 0x80 + 0xc0; - bytes constant zero_indices = hex"01c001e0020000000040008000c000e0"; + bytes constant zero_indices = hex"01c001e002000000006000c001200160"; function uint16_from_two_bytes(bytes1 b1, bytes1 b2) internal pure returns( uint256 result){ unchecked{ diff --git a/contracts/modular/circuit4/gate_0.sol b/contracts/modular/circuit4/gate_0.sol index 3721784..f67f64d 100644 --- a/contracts/modular/circuit4/gate_0.sol +++ b/contracts/modular/circuit4/gate_0.sol @@ -18,7 +18,6 @@ pragma solidity >=0.8.4; import "../../../contracts/basic_marshalling.sol"; -import "./gate_argument.sol"; library gate_circuit4_0{ uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; diff --git a/contracts/modular/circuit4/gate_linked_libs.json b/contracts/modular/circuit4/gate_linked_libs.json deleted file mode 100644 index ee835c4..0000000 --- a/contracts/modular/circuit4/gate_linked_libs.json +++ /dev/null @@ -1,3 +0,0 @@ -[ -"gate_circuit4_0" -] diff --git a/contracts/modular/circuit4/lookup_0.sol b/contracts/modular/circuit4/lookup_0.sol new file mode 100644 index 0000000..c9537a6 --- /dev/null +++ b/contracts/modular/circuit4/lookup_0.sol @@ -0,0 +1,67 @@ + +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) 2023 -- Generated by zkllvm-transpiler +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity >=0.8.4; + +import "../../../contracts/basic_marshalling.sol"; + +library lookup_circuit4_0{ + uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; + + function evaluate_gate_be( + bytes calldata blob, + uint256 theta, + uint256 theta_acc, + uint256 beta, + uint256 gamma + ) external pure returns (uint256 g, uint256) { + uint256 l; + uint256 selector_value; + uint256 sum; + uint256 prod; + + selector_value=basic_marshalling.get_uint256_be(blob, 288); + g = 1; + l = mulmod( 1,selector_value, modulus); + theta_acc=theta; + sum = 0; + prod = basic_marshalling.get_uint256_be(blob, 512); + sum = addmod(sum, prod, modulus); + + + l = addmod( l, mulmod( mulmod(theta_acc, selector_value, modulus), sum, modulus), modulus); + theta_acc = mulmod(theta_acc, theta, modulus); + sum = 0; + prod = basic_marshalling.get_uint256_be(blob, 544); + sum = addmod(sum, prod, modulus); + + + l = addmod( l, mulmod( mulmod(theta_acc, selector_value, modulus), sum, modulus), modulus); + theta_acc = mulmod(theta_acc, theta, modulus); + sum = 0; + prod = basic_marshalling.get_uint256_be(blob, 576); + sum = addmod(sum, prod, modulus); + + + l = addmod( l, mulmod( mulmod(theta_acc, selector_value, modulus), sum, modulus), modulus); + theta_acc = mulmod(theta_acc, theta, modulus); + g = mulmod(g, mulmod(addmod(1, beta, modulus), addmod(l,gamma, modulus), modulus), modulus); + + return( g, theta_acc ); + } +} + \ No newline at end of file diff --git a/contracts/modular/circuit4/lookup_argument.sol b/contracts/modular/circuit4/lookup_argument.sol index 133485f..1ca76d9 100644 --- a/contracts/modular/circuit4/lookup_argument.sol +++ b/contracts/modular/circuit4/lookup_argument.sol @@ -23,6 +23,8 @@ import "../../types.sol"; import "../../basic_marshalling.sol"; import "../../cryptography/transcript.sol"; import "../../interfaces/modular_lookup_argument.sol"; +import "./lookup_0.sol"; + import "hardhat/console.sol"; contract modular_lookup_argument_circuit4 is ILookupArgument{ @@ -87,35 +89,8 @@ contract modular_lookup_argument_circuit4 is ILookupArgument{ state.beta = transcript.get_field_challenge(tr_state, modulus); //beta state.gamma = transcript.get_field_challenge(tr_state, modulus); //gamma state.factor = mulmod(addmod(1, state.beta, modulus), state.gamma, modulus); - - uint256 sum; - uint256 prod; - state.selector_value=basic_marshalling.get_uint256_be(blob, 288); - l = mulmod( 1,state.selector_value, modulus); - state.theta_acc=state.theta; - sum = 0; - prod = basic_marshalling.get_uint256_be(blob, 512); - sum = addmod(sum, prod, modulus); - - - l = addmod( l, mulmod( mulmod(state.theta_acc, state.selector_value, modulus), sum, modulus), modulus); - state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); - sum = 0; - prod = basic_marshalling.get_uint256_be(blob, 544); - sum = addmod(sum, prod, modulus); - - - l = addmod( l, mulmod( mulmod(state.theta_acc, state.selector_value, modulus), sum, modulus), modulus); - state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); - sum = 0; - prod = basic_marshalling.get_uint256_be(blob, 576); - sum = addmod(sum, prod, modulus); - - - l = addmod( l, mulmod( mulmod(state.theta_acc, state.selector_value, modulus), sum, modulus), modulus); - state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); -state.g = mulmod(state.g, mulmod(addmod(1, state.beta, modulus), addmod(l,state.gamma, modulus), modulus), modulus); - + (l, state.theta_acc) = lookup_circuit4_0.evaluate_gate_be( blob, state.theta, state.theta_acc, state.beta, state.gamma ); + state.g = mulmod(state.g, l, modulus); state.selector_value=basic_marshalling.get_uint256_be(blob, 416); state.shifted_selector_value=basic_marshalling.get_uint256_be(blob, 448); l= mulmod( 1, state.selector_value, modulus); diff --git a/contracts/modular/circuit4/lookup_libs_list.json b/contracts/modular/circuit4/lookup_libs_list.json new file mode 100644 index 0000000..e25da30 --- /dev/null +++ b/contracts/modular/circuit4/lookup_libs_list.json @@ -0,0 +1,3 @@ +[ +"lookup_circuit4_0" +] diff --git a/contracts/modular/circuit4/permutation_argument.sol b/contracts/modular/circuit4/permutation_argument.sol index e74a4df..63aced9 100644 --- a/contracts/modular/circuit4/permutation_argument.sol +++ b/contracts/modular/circuit4/permutation_argument.sol @@ -28,7 +28,7 @@ library modular_permutation_argument_circuit4{ uint256 constant permutation_size = 4; uint256 constant special_selectors_offset = 4 * 0x80; uint256 constant table_values_offset = 4 * 0x80 + 0xc0; - bytes constant zero_indices = hex"02000220024000000040008000c000e00100"; + bytes constant zero_indices = hex"0200022002400000006000c00120016001a0"; function uint16_from_two_bytes(bytes1 b1, bytes1 b2) internal pure returns( uint256 result){ unchecked{ diff --git a/contracts/modular/circuit6/gate_linked_libs.json b/contracts/modular/circuit6/gate_linked_libs.json deleted file mode 100644 index 0d4f101..0000000 --- a/contracts/modular/circuit6/gate_linked_libs.json +++ /dev/null @@ -1,2 +0,0 @@ -[ -] diff --git a/contracts/modular/circuit6/lookup_0.sol b/contracts/modular/circuit6/lookup_0.sol new file mode 100644 index 0000000..f74f0c6 --- /dev/null +++ b/contracts/modular/circuit6/lookup_0.sol @@ -0,0 +1,63 @@ + +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) 2023 -- Generated by zkllvm-transpiler +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity >=0.8.4; + +import "../../../contracts/basic_marshalling.sol"; + +library lookup_circuit6_0{ + uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; + + function evaluate_gate_be( + bytes calldata blob, + uint256 theta, + uint256 theta_acc, + uint256 beta, + uint256 gamma + ) external pure returns (uint256 g, uint256) { + uint256 l; + uint256 selector_value; + uint256 sum; + uint256 prod; + + selector_value=basic_marshalling.get_uint256_be(blob, 384); + g = 1; + l = mulmod( 1,selector_value, modulus); + theta_acc=theta; + sum = 0; + prod = basic_marshalling.get_uint256_be(blob, 544); + sum = addmod(sum, prod, modulus); + + + l = addmod( l, mulmod( mulmod(theta_acc, selector_value, modulus), sum, modulus), modulus); + theta_acc = mulmod(theta_acc, theta, modulus); + g = mulmod(g, mulmod(addmod(1, beta, modulus), addmod(l,gamma, modulus), modulus), modulus); + l = mulmod( 2,selector_value, modulus); + theta_acc=theta; + sum = 0; + prod = basic_marshalling.get_uint256_be(blob, 576); + sum = addmod(sum, prod, modulus); + + + l = addmod( l, mulmod( mulmod(theta_acc, selector_value, modulus), sum, modulus), modulus); + theta_acc = mulmod(theta_acc, theta, modulus); + g = mulmod(g, mulmod(addmod(1, beta, modulus), addmod(l,gamma, modulus), modulus), modulus); + + return( g, theta_acc ); + } +} + \ No newline at end of file diff --git a/contracts/modular/circuit6/lookup_1.sol b/contracts/modular/circuit6/lookup_1.sol new file mode 100644 index 0000000..d9af1a5 --- /dev/null +++ b/contracts/modular/circuit6/lookup_1.sol @@ -0,0 +1,55 @@ + +// SPDX-License-Identifier: Apache-2.0. +//---------------------------------------------------------------------------// +// Copyright (c) 2023 -- Generated by zkllvm-transpiler +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +//---------------------------------------------------------------------------// +pragma solidity >=0.8.4; + +import "../../../contracts/basic_marshalling.sol"; + +library lookup_circuit6_1{ + uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; + + function evaluate_gate_be( + bytes calldata blob, + uint256 theta, + uint256 theta_acc, + uint256 beta, + uint256 gamma + ) external pure returns (uint256 g, uint256) { + uint256 l; + uint256 selector_value; + uint256 sum; + uint256 prod; + + selector_value=basic_marshalling.get_uint256_be(blob, 448); + g = 1; + l = mulmod( 2,selector_value, modulus); + theta_acc=theta; + sum = 0; + prod = basic_marshalling.get_uint256_be(blob, 544); + sum = addmod(sum, prod, modulus); + prod = basic_marshalling.get_uint256_be(blob, 512); + sum = addmod(sum, prod, modulus); + + + l = addmod( l, mulmod( mulmod(theta_acc, selector_value, modulus), sum, modulus), modulus); + theta_acc = mulmod(theta_acc, theta, modulus); + g = mulmod(g, mulmod(addmod(1, beta, modulus), addmod(l,gamma, modulus), modulus), modulus); + + return( g, theta_acc ); + } +} + \ No newline at end of file diff --git a/contracts/modular/circuit6/lookup_argument.sol b/contracts/modular/circuit6/lookup_argument.sol index 811589f..a0e9061 100644 --- a/contracts/modular/circuit6/lookup_argument.sol +++ b/contracts/modular/circuit6/lookup_argument.sol @@ -23,6 +23,9 @@ import "../../types.sol"; import "../../basic_marshalling.sol"; import "../../cryptography/transcript.sol"; import "../../interfaces/modular_lookup_argument.sol"; +import "./lookup_0.sol"; +import "./lookup_1.sol"; + import "hardhat/console.sol"; contract modular_lookup_argument_circuit6 is ILookupArgument{ @@ -87,44 +90,10 @@ contract modular_lookup_argument_circuit6 is ILookupArgument{ state.beta = transcript.get_field_challenge(tr_state, modulus); //beta state.gamma = transcript.get_field_challenge(tr_state, modulus); //gamma state.factor = mulmod(addmod(1, state.beta, modulus), state.gamma, modulus); - - uint256 sum; - uint256 prod; - state.selector_value=basic_marshalling.get_uint256_be(blob, 384); - l = mulmod( 1,state.selector_value, modulus); - state.theta_acc=state.theta; - sum = 0; - prod = basic_marshalling.get_uint256_be(blob, 544); - sum = addmod(sum, prod, modulus); - - - l = addmod( l, mulmod( mulmod(state.theta_acc, state.selector_value, modulus), sum, modulus), modulus); - state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); -state.g = mulmod(state.g, mulmod(addmod(1, state.beta, modulus), addmod(l,state.gamma, modulus), modulus), modulus); - l = mulmod( 2,state.selector_value, modulus); - state.theta_acc=state.theta; - sum = 0; - prod = basic_marshalling.get_uint256_be(blob, 576); - sum = addmod(sum, prod, modulus); - - - l = addmod( l, mulmod( mulmod(state.theta_acc, state.selector_value, modulus), sum, modulus), modulus); - state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); -state.g = mulmod(state.g, mulmod(addmod(1, state.beta, modulus), addmod(l,state.gamma, modulus), modulus), modulus); - state.selector_value=basic_marshalling.get_uint256_be(blob, 448); - l = mulmod( 2,state.selector_value, modulus); - state.theta_acc=state.theta; - sum = 0; - prod = basic_marshalling.get_uint256_be(blob, 544); - sum = addmod(sum, prod, modulus); - prod = basic_marshalling.get_uint256_be(blob, 512); - sum = addmod(sum, prod, modulus); - - - l = addmod( l, mulmod( mulmod(state.theta_acc, state.selector_value, modulus), sum, modulus), modulus); - state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); -state.g = mulmod(state.g, mulmod(addmod(1, state.beta, modulus), addmod(l,state.gamma, modulus), modulus), modulus); - + (l, state.theta_acc) = lookup_circuit6_0.evaluate_gate_be( blob, state.theta, state.theta_acc, state.beta, state.gamma ); + state.g = mulmod(state.g, l, modulus); + (l, state.theta_acc) = lookup_circuit6_1.evaluate_gate_be( blob, state.theta, state.theta_acc, state.beta, state.gamma ); + state.g = mulmod(state.g, l, modulus); state.selector_value=basic_marshalling.get_uint256_be(blob, 288); state.shifted_selector_value=basic_marshalling.get_uint256_be(blob, 320); l= mulmod( 1, state.selector_value, modulus); diff --git a/contracts/modular/circuit6/lookup_libs_list.json b/contracts/modular/circuit6/lookup_libs_list.json new file mode 100644 index 0000000..b54a280 --- /dev/null +++ b/contracts/modular/circuit6/lookup_libs_list.json @@ -0,0 +1,4 @@ +[ +"lookup_circuit6_0", +"lookup_circuit6_1" +] diff --git a/contracts/modular/circuit6/permutation_argument.sol b/contracts/modular/circuit6/permutation_argument.sol index 247c6cc..7294835 100644 --- a/contracts/modular/circuit6/permutation_argument.sol +++ b/contracts/modular/circuit6/permutation_argument.sol @@ -28,7 +28,7 @@ library modular_permutation_argument_circuit6{ uint256 constant permutation_size = 4; uint256 constant special_selectors_offset = 4 * 0x80; uint256 constant table_values_offset = 4 * 0x80 + 0xc0; - bytes constant zero_indices = hex"0220024000000040008000c001000120"; + bytes constant zero_indices = hex"022002400000006000c00120018001c0"; function uint16_from_two_bytes(bytes1 b1, bytes1 b2) internal pure returns( uint256 result){ unchecked{ diff --git a/deploy/modular-verifier.js b/deploy/modular-verifier.js index a9f70a3..8b2a419 100644 --- a/deploy/modular-verifier.js +++ b/deploy/modular-verifier.js @@ -38,14 +38,25 @@ module.exports = async function() { log : true, }); */ + let deployedLookupLib = {} + if( fs.existsSync("./contracts/modular/"+circuits[k]+"/lookup_libs_list.json")) { + let lookup_libs = losslessJSON.parse(fs.readFileSync("./contracts/modular/"+circuits[k]+"/lookup_libs_list.json", 'utf8')); + for (let lib of lookup_libs){ + await deploy(lib, { + from: deployer, + log: true, + }); + deployedLookupLib[lib] = (await hre.deployments.get(lib)).address + } + } lookup_argument_contract = await deploy("modular_lookup_argument_" + circuits[k], { from: deployer, - libraries : [], //deployedLib, + libraries : deployedLookupLib, log : true, }); - let libs = losslessJSON.parse(fs.readFileSync("./contracts/modular/"+circuits[k]+"/gate_libs_list.json", 'utf8')); let deployedLib = {} + let libs = losslessJSON.parse(fs.readFileSync("./contracts/modular/"+circuits[k]+"/gate_libs_list.json", 'utf8')); for (let lib of libs){ await deploy(lib, { from: deployer, From f42f4501943238e867856ac1847a0007ed6cead6 Mon Sep 17 00:00:00 2001 From: "e.tatuzova" Date: Mon, 2 Oct 2023 11:47:24 +0400 Subject: [PATCH 04/10] Return to previous hardhat tasks #74 --- .../circuit1/commitment.sol | 0 .../{modular => zkllvm}/circuit1/gate_0.sol | 0 .../{modular => zkllvm}/circuit1/gate_1.sol | 0 .../circuit1/gate_argument.sol | 0 .../circuit1/gate_libs_list.json | 0 .../circuit1/lookup_argument.sol | 0 .../circuit1/modular_verifier.sol | 0 .../{modular => zkllvm}/circuit1/params.json | 0 .../circuit1/permutation_argument.sol | 0 .../{modular => zkllvm}/circuit1/proof.bin | 0 .../circuit2/commitment.sol | 0 .../{modular => zkllvm}/circuit2/gate_0.sol | 0 .../{modular => zkllvm}/circuit2/gate_1.sol | 0 .../circuit2/gate_argument.sol | 0 .../circuit2/gate_libs_list.json | 0 .../circuit2/lookup_argument.sol | 0 .../circuit2/modular_verifier.sol | 0 .../{modular => zkllvm}/circuit2/params.json | 0 .../circuit2/permutation_argument.sol | 0 .../{modular => zkllvm}/circuit2/proof.bin | 0 .../circuit3/commitment.sol | 0 .../circuit3/gate_argument.sol | 0 .../circuit3/gate_libs_list.json | 0 .../{modular => zkllvm}/circuit3/lookup_0.sol | 0 .../circuit3/lookup_argument.sol | 0 .../circuit3/lookup_libs_list.json | 0 .../circuit3/modular_verifier.sol | 0 .../{modular => zkllvm}/circuit3/params.json | 0 .../circuit3/permutation_argument.sol | 0 .../{modular => zkllvm}/circuit3/proof.bin | 0 .../circuit4/commitment.sol | 0 .../{modular => zkllvm}/circuit4/gate_0.sol | 0 .../circuit4/gate_argument.sol | 0 .../circuit4/gate_libs_list.json | 0 .../{modular => zkllvm}/circuit4/lookup_0.sol | 0 .../circuit4/lookup_argument.sol | 0 .../circuit4/lookup_libs_list.json | 0 .../circuit4/modular_verifier.sol | 0 .../{modular => zkllvm}/circuit4/params.json | 0 .../circuit4/permutation_argument.sol | 0 .../{modular => zkllvm}/circuit4/proof.bin | 0 .../circuit6/commitment.sol | 0 .../circuit6/gate_argument.sol | 0 .../circuit6/gate_libs_list.json | 0 .../{modular => zkllvm}/circuit6/lookup_0.sol | 0 .../{modular => zkllvm}/circuit6/lookup_1.sol | 0 .../circuit6/lookup_argument.sol | 0 .../circuit6/lookup_libs_list.json | 0 .../circuit6/modular_verifier.sol | 0 .../{modular => zkllvm}/circuit6/params.json | 0 .../circuit6/permutation_argument.sol | 0 .../{modular => zkllvm}/circuit6/proof.bin | 0 .../merkle_tree_poseidon/circuit_params.json | 23 - .../zkllvm/merkle_tree_poseidon/gate0.sol | 1127 --------- .../zkllvm/merkle_tree_poseidon/gate10.sol | 1098 -------- .../zkllvm/merkle_tree_poseidon/gate12.sol | 583 ----- .../zkllvm/merkle_tree_poseidon/gate4.sol | 1098 -------- .../zkllvm/merkle_tree_poseidon/gate6.sol | 1098 -------- .../zkllvm/merkle_tree_poseidon/gate8.sol | 1098 -------- .../merkle_tree_poseidon/gate_argument.sol | 100 - .../linked_libs_list.json | 8 - .../zkllvm/merkle_tree_poseidon/proof.bin | 1 - .../merkle_tree_poseidon/public_input.json | 4 - .../zkllvm/mina_base/circuit_params.json | 31 - contracts/zkllvm/mina_base/gate0.sol | 1020 -------- contracts/zkllvm/mina_base/gate11.sol | 1095 -------- contracts/zkllvm/mina_base/gate15_0.sol | 1234 --------- contracts/zkllvm/mina_base/gate15_1.sol | 345 --- contracts/zkllvm/mina_base/gate16_0.sol | 1110 -------- contracts/zkllvm/mina_base/gate16_1.sol | 1269 ---------- contracts/zkllvm/mina_base/gate3.sol | 1008 -------- contracts/zkllvm/mina_base/gate5.sol | 1008 -------- contracts/zkllvm/mina_base/gate7.sol | 1008 -------- contracts/zkllvm/mina_base/gate9.sol | 1008 -------- contracts/zkllvm/mina_base/gate_argument.sol | 119 - .../zkllvm/mina_base/linked_libs_list.json | 12 - contracts/zkllvm/mina_base/proof.bin | 1 - contracts/zkllvm/mina_base/public_input.json | 2221 ----------------- .../zkllvm/mina_scalar/circuit_params.json | 29 - contracts/zkllvm/mina_scalar/gate0.sol | 536 ---- contracts/zkllvm/mina_scalar/gate10.sol | 1008 -------- contracts/zkllvm/mina_scalar/gate12.sol | 1008 -------- contracts/zkllvm/mina_scalar/gate14.sol | 1008 -------- contracts/zkllvm/mina_scalar/gate16.sol | 1008 -------- contracts/zkllvm/mina_scalar/gate18.sol | 1222 --------- contracts/zkllvm/mina_scalar/gate3.sol | 1031 -------- contracts/zkllvm/mina_scalar/gate8.sol | 1008 -------- .../zkllvm/mina_scalar/gate_argument.sol | 115 - .../zkllvm/mina_scalar/linked_libs_list.json | 10 - contracts/zkllvm/mina_scalar/proof.bin | 1 - .../zkllvm/mina_scalar/public_input.json | 63 - deploy/modular-verifier.js | 8 +- deploy/test-universal-deployer.js | 44 - hardhat.config.ts | 1 - tasks/modular-test.ts | 8 +- tasks/verify-zkllvm-output.ts | 225 -- 96 files changed, 8 insertions(+), 27052 deletions(-) rename contracts/{modular => zkllvm}/circuit1/commitment.sol (100%) rename contracts/{modular => zkllvm}/circuit1/gate_0.sol (100%) rename contracts/{modular => zkllvm}/circuit1/gate_1.sol (100%) rename contracts/{modular => zkllvm}/circuit1/gate_argument.sol (100%) rename contracts/{modular => zkllvm}/circuit1/gate_libs_list.json (100%) rename contracts/{modular => zkllvm}/circuit1/lookup_argument.sol (100%) rename contracts/{modular => zkllvm}/circuit1/modular_verifier.sol (100%) rename contracts/{modular => zkllvm}/circuit1/params.json (100%) rename contracts/{modular => zkllvm}/circuit1/permutation_argument.sol (100%) rename contracts/{modular => zkllvm}/circuit1/proof.bin (100%) rename contracts/{modular => zkllvm}/circuit2/commitment.sol (100%) rename contracts/{modular => zkllvm}/circuit2/gate_0.sol (100%) rename contracts/{modular => zkllvm}/circuit2/gate_1.sol (100%) rename contracts/{modular => zkllvm}/circuit2/gate_argument.sol (100%) rename contracts/{modular => zkllvm}/circuit2/gate_libs_list.json (100%) rename contracts/{modular => zkllvm}/circuit2/lookup_argument.sol (100%) rename contracts/{modular => zkllvm}/circuit2/modular_verifier.sol (100%) rename contracts/{modular => zkllvm}/circuit2/params.json (100%) rename contracts/{modular => zkllvm}/circuit2/permutation_argument.sol (100%) rename contracts/{modular => zkllvm}/circuit2/proof.bin (100%) rename contracts/{modular => zkllvm}/circuit3/commitment.sol (100%) rename contracts/{modular => zkllvm}/circuit3/gate_argument.sol (100%) rename contracts/{modular => zkllvm}/circuit3/gate_libs_list.json (100%) rename contracts/{modular => zkllvm}/circuit3/lookup_0.sol (100%) rename contracts/{modular => zkllvm}/circuit3/lookup_argument.sol (100%) rename contracts/{modular => zkllvm}/circuit3/lookup_libs_list.json (100%) rename contracts/{modular => zkllvm}/circuit3/modular_verifier.sol (100%) rename contracts/{modular => zkllvm}/circuit3/params.json (100%) rename contracts/{modular => zkllvm}/circuit3/permutation_argument.sol (100%) rename contracts/{modular => zkllvm}/circuit3/proof.bin (100%) rename contracts/{modular => zkllvm}/circuit4/commitment.sol (100%) rename contracts/{modular => zkllvm}/circuit4/gate_0.sol (100%) rename contracts/{modular => zkllvm}/circuit4/gate_argument.sol (100%) rename contracts/{modular => zkllvm}/circuit4/gate_libs_list.json (100%) rename contracts/{modular => zkllvm}/circuit4/lookup_0.sol (100%) rename contracts/{modular => zkllvm}/circuit4/lookup_argument.sol (100%) rename contracts/{modular => zkllvm}/circuit4/lookup_libs_list.json (100%) rename contracts/{modular => zkllvm}/circuit4/modular_verifier.sol (100%) rename contracts/{modular => zkllvm}/circuit4/params.json (100%) rename contracts/{modular => zkllvm}/circuit4/permutation_argument.sol (100%) rename contracts/{modular => zkllvm}/circuit4/proof.bin (100%) rename contracts/{modular => zkllvm}/circuit6/commitment.sol (100%) rename contracts/{modular => zkllvm}/circuit6/gate_argument.sol (100%) rename contracts/{modular => zkllvm}/circuit6/gate_libs_list.json (100%) rename contracts/{modular => zkllvm}/circuit6/lookup_0.sol (100%) rename contracts/{modular => zkllvm}/circuit6/lookup_1.sol (100%) rename contracts/{modular => zkllvm}/circuit6/lookup_argument.sol (100%) rename contracts/{modular => zkllvm}/circuit6/lookup_libs_list.json (100%) rename contracts/{modular => zkllvm}/circuit6/modular_verifier.sol (100%) rename contracts/{modular => zkllvm}/circuit6/params.json (100%) rename contracts/{modular => zkllvm}/circuit6/permutation_argument.sol (100%) rename contracts/{modular => zkllvm}/circuit6/proof.bin (100%) delete mode 100644 contracts/zkllvm/merkle_tree_poseidon/circuit_params.json delete mode 100644 contracts/zkllvm/merkle_tree_poseidon/gate0.sol delete mode 100644 contracts/zkllvm/merkle_tree_poseidon/gate10.sol delete mode 100644 contracts/zkllvm/merkle_tree_poseidon/gate12.sol delete mode 100644 contracts/zkllvm/merkle_tree_poseidon/gate4.sol delete mode 100644 contracts/zkllvm/merkle_tree_poseidon/gate6.sol delete mode 100644 contracts/zkllvm/merkle_tree_poseidon/gate8.sol delete mode 100644 contracts/zkllvm/merkle_tree_poseidon/gate_argument.sol delete mode 100644 contracts/zkllvm/merkle_tree_poseidon/linked_libs_list.json delete mode 100644 contracts/zkllvm/merkle_tree_poseidon/proof.bin delete mode 100644 contracts/zkllvm/merkle_tree_poseidon/public_input.json delete mode 100644 contracts/zkllvm/mina_base/circuit_params.json delete mode 100644 contracts/zkllvm/mina_base/gate0.sol delete mode 100644 contracts/zkllvm/mina_base/gate11.sol delete mode 100644 contracts/zkllvm/mina_base/gate15_0.sol delete mode 100644 contracts/zkllvm/mina_base/gate15_1.sol delete mode 100644 contracts/zkllvm/mina_base/gate16_0.sol delete mode 100644 contracts/zkllvm/mina_base/gate16_1.sol delete mode 100644 contracts/zkllvm/mina_base/gate3.sol delete mode 100644 contracts/zkllvm/mina_base/gate5.sol delete mode 100644 contracts/zkllvm/mina_base/gate7.sol delete mode 100644 contracts/zkllvm/mina_base/gate9.sol delete mode 100644 contracts/zkllvm/mina_base/gate_argument.sol delete mode 100644 contracts/zkllvm/mina_base/linked_libs_list.json delete mode 100644 contracts/zkllvm/mina_base/proof.bin delete mode 100644 contracts/zkllvm/mina_base/public_input.json delete mode 100644 contracts/zkllvm/mina_scalar/circuit_params.json delete mode 100644 contracts/zkllvm/mina_scalar/gate0.sol delete mode 100644 contracts/zkllvm/mina_scalar/gate10.sol delete mode 100644 contracts/zkllvm/mina_scalar/gate12.sol delete mode 100644 contracts/zkllvm/mina_scalar/gate14.sol delete mode 100644 contracts/zkllvm/mina_scalar/gate16.sol delete mode 100644 contracts/zkllvm/mina_scalar/gate18.sol delete mode 100644 contracts/zkllvm/mina_scalar/gate3.sol delete mode 100644 contracts/zkllvm/mina_scalar/gate8.sol delete mode 100644 contracts/zkllvm/mina_scalar/gate_argument.sol delete mode 100644 contracts/zkllvm/mina_scalar/linked_libs_list.json delete mode 100644 contracts/zkllvm/mina_scalar/proof.bin delete mode 100644 contracts/zkllvm/mina_scalar/public_input.json delete mode 100644 deploy/test-universal-deployer.js delete mode 100644 tasks/verify-zkllvm-output.ts diff --git a/contracts/modular/circuit1/commitment.sol b/contracts/zkllvm/circuit1/commitment.sol similarity index 100% rename from contracts/modular/circuit1/commitment.sol rename to contracts/zkllvm/circuit1/commitment.sol diff --git a/contracts/modular/circuit1/gate_0.sol b/contracts/zkllvm/circuit1/gate_0.sol similarity index 100% rename from contracts/modular/circuit1/gate_0.sol rename to contracts/zkllvm/circuit1/gate_0.sol diff --git a/contracts/modular/circuit1/gate_1.sol b/contracts/zkllvm/circuit1/gate_1.sol similarity index 100% rename from contracts/modular/circuit1/gate_1.sol rename to contracts/zkllvm/circuit1/gate_1.sol diff --git a/contracts/modular/circuit1/gate_argument.sol b/contracts/zkllvm/circuit1/gate_argument.sol similarity index 100% rename from contracts/modular/circuit1/gate_argument.sol rename to contracts/zkllvm/circuit1/gate_argument.sol diff --git a/contracts/modular/circuit1/gate_libs_list.json b/contracts/zkllvm/circuit1/gate_libs_list.json similarity index 100% rename from contracts/modular/circuit1/gate_libs_list.json rename to contracts/zkllvm/circuit1/gate_libs_list.json diff --git a/contracts/modular/circuit1/lookup_argument.sol b/contracts/zkllvm/circuit1/lookup_argument.sol similarity index 100% rename from contracts/modular/circuit1/lookup_argument.sol rename to contracts/zkllvm/circuit1/lookup_argument.sol diff --git a/contracts/modular/circuit1/modular_verifier.sol b/contracts/zkllvm/circuit1/modular_verifier.sol similarity index 100% rename from contracts/modular/circuit1/modular_verifier.sol rename to contracts/zkllvm/circuit1/modular_verifier.sol diff --git a/contracts/modular/circuit1/params.json b/contracts/zkllvm/circuit1/params.json similarity index 100% rename from contracts/modular/circuit1/params.json rename to contracts/zkllvm/circuit1/params.json diff --git a/contracts/modular/circuit1/permutation_argument.sol b/contracts/zkllvm/circuit1/permutation_argument.sol similarity index 100% rename from contracts/modular/circuit1/permutation_argument.sol rename to contracts/zkllvm/circuit1/permutation_argument.sol diff --git a/contracts/modular/circuit1/proof.bin b/contracts/zkllvm/circuit1/proof.bin similarity index 100% rename from contracts/modular/circuit1/proof.bin rename to contracts/zkllvm/circuit1/proof.bin diff --git a/contracts/modular/circuit2/commitment.sol b/contracts/zkllvm/circuit2/commitment.sol similarity index 100% rename from contracts/modular/circuit2/commitment.sol rename to contracts/zkllvm/circuit2/commitment.sol diff --git a/contracts/modular/circuit2/gate_0.sol b/contracts/zkllvm/circuit2/gate_0.sol similarity index 100% rename from contracts/modular/circuit2/gate_0.sol rename to contracts/zkllvm/circuit2/gate_0.sol diff --git a/contracts/modular/circuit2/gate_1.sol b/contracts/zkllvm/circuit2/gate_1.sol similarity index 100% rename from contracts/modular/circuit2/gate_1.sol rename to contracts/zkllvm/circuit2/gate_1.sol diff --git a/contracts/modular/circuit2/gate_argument.sol b/contracts/zkllvm/circuit2/gate_argument.sol similarity index 100% rename from contracts/modular/circuit2/gate_argument.sol rename to contracts/zkllvm/circuit2/gate_argument.sol diff --git a/contracts/modular/circuit2/gate_libs_list.json b/contracts/zkllvm/circuit2/gate_libs_list.json similarity index 100% rename from contracts/modular/circuit2/gate_libs_list.json rename to contracts/zkllvm/circuit2/gate_libs_list.json diff --git a/contracts/modular/circuit2/lookup_argument.sol b/contracts/zkllvm/circuit2/lookup_argument.sol similarity index 100% rename from contracts/modular/circuit2/lookup_argument.sol rename to contracts/zkllvm/circuit2/lookup_argument.sol diff --git a/contracts/modular/circuit2/modular_verifier.sol b/contracts/zkllvm/circuit2/modular_verifier.sol similarity index 100% rename from contracts/modular/circuit2/modular_verifier.sol rename to contracts/zkllvm/circuit2/modular_verifier.sol diff --git a/contracts/modular/circuit2/params.json b/contracts/zkllvm/circuit2/params.json similarity index 100% rename from contracts/modular/circuit2/params.json rename to contracts/zkllvm/circuit2/params.json diff --git a/contracts/modular/circuit2/permutation_argument.sol b/contracts/zkllvm/circuit2/permutation_argument.sol similarity index 100% rename from contracts/modular/circuit2/permutation_argument.sol rename to contracts/zkllvm/circuit2/permutation_argument.sol diff --git a/contracts/modular/circuit2/proof.bin b/contracts/zkllvm/circuit2/proof.bin similarity index 100% rename from contracts/modular/circuit2/proof.bin rename to contracts/zkllvm/circuit2/proof.bin diff --git a/contracts/modular/circuit3/commitment.sol b/contracts/zkllvm/circuit3/commitment.sol similarity index 100% rename from contracts/modular/circuit3/commitment.sol rename to contracts/zkllvm/circuit3/commitment.sol diff --git a/contracts/modular/circuit3/gate_argument.sol b/contracts/zkllvm/circuit3/gate_argument.sol similarity index 100% rename from contracts/modular/circuit3/gate_argument.sol rename to contracts/zkllvm/circuit3/gate_argument.sol diff --git a/contracts/modular/circuit3/gate_libs_list.json b/contracts/zkllvm/circuit3/gate_libs_list.json similarity index 100% rename from contracts/modular/circuit3/gate_libs_list.json rename to contracts/zkllvm/circuit3/gate_libs_list.json diff --git a/contracts/modular/circuit3/lookup_0.sol b/contracts/zkllvm/circuit3/lookup_0.sol similarity index 100% rename from contracts/modular/circuit3/lookup_0.sol rename to contracts/zkllvm/circuit3/lookup_0.sol diff --git a/contracts/modular/circuit3/lookup_argument.sol b/contracts/zkllvm/circuit3/lookup_argument.sol similarity index 100% rename from contracts/modular/circuit3/lookup_argument.sol rename to contracts/zkllvm/circuit3/lookup_argument.sol diff --git a/contracts/modular/circuit3/lookup_libs_list.json b/contracts/zkllvm/circuit3/lookup_libs_list.json similarity index 100% rename from contracts/modular/circuit3/lookup_libs_list.json rename to contracts/zkllvm/circuit3/lookup_libs_list.json diff --git a/contracts/modular/circuit3/modular_verifier.sol b/contracts/zkllvm/circuit3/modular_verifier.sol similarity index 100% rename from contracts/modular/circuit3/modular_verifier.sol rename to contracts/zkllvm/circuit3/modular_verifier.sol diff --git a/contracts/modular/circuit3/params.json b/contracts/zkllvm/circuit3/params.json similarity index 100% rename from contracts/modular/circuit3/params.json rename to contracts/zkllvm/circuit3/params.json diff --git a/contracts/modular/circuit3/permutation_argument.sol b/contracts/zkllvm/circuit3/permutation_argument.sol similarity index 100% rename from contracts/modular/circuit3/permutation_argument.sol rename to contracts/zkllvm/circuit3/permutation_argument.sol diff --git a/contracts/modular/circuit3/proof.bin b/contracts/zkllvm/circuit3/proof.bin similarity index 100% rename from contracts/modular/circuit3/proof.bin rename to contracts/zkllvm/circuit3/proof.bin diff --git a/contracts/modular/circuit4/commitment.sol b/contracts/zkllvm/circuit4/commitment.sol similarity index 100% rename from contracts/modular/circuit4/commitment.sol rename to contracts/zkllvm/circuit4/commitment.sol diff --git a/contracts/modular/circuit4/gate_0.sol b/contracts/zkllvm/circuit4/gate_0.sol similarity index 100% rename from contracts/modular/circuit4/gate_0.sol rename to contracts/zkllvm/circuit4/gate_0.sol diff --git a/contracts/modular/circuit4/gate_argument.sol b/contracts/zkllvm/circuit4/gate_argument.sol similarity index 100% rename from contracts/modular/circuit4/gate_argument.sol rename to contracts/zkllvm/circuit4/gate_argument.sol diff --git a/contracts/modular/circuit4/gate_libs_list.json b/contracts/zkllvm/circuit4/gate_libs_list.json similarity index 100% rename from contracts/modular/circuit4/gate_libs_list.json rename to contracts/zkllvm/circuit4/gate_libs_list.json diff --git a/contracts/modular/circuit4/lookup_0.sol b/contracts/zkllvm/circuit4/lookup_0.sol similarity index 100% rename from contracts/modular/circuit4/lookup_0.sol rename to contracts/zkllvm/circuit4/lookup_0.sol diff --git a/contracts/modular/circuit4/lookup_argument.sol b/contracts/zkllvm/circuit4/lookup_argument.sol similarity index 100% rename from contracts/modular/circuit4/lookup_argument.sol rename to contracts/zkllvm/circuit4/lookup_argument.sol diff --git a/contracts/modular/circuit4/lookup_libs_list.json b/contracts/zkllvm/circuit4/lookup_libs_list.json similarity index 100% rename from contracts/modular/circuit4/lookup_libs_list.json rename to contracts/zkllvm/circuit4/lookup_libs_list.json diff --git a/contracts/modular/circuit4/modular_verifier.sol b/contracts/zkllvm/circuit4/modular_verifier.sol similarity index 100% rename from contracts/modular/circuit4/modular_verifier.sol rename to contracts/zkllvm/circuit4/modular_verifier.sol diff --git a/contracts/modular/circuit4/params.json b/contracts/zkllvm/circuit4/params.json similarity index 100% rename from contracts/modular/circuit4/params.json rename to contracts/zkllvm/circuit4/params.json diff --git a/contracts/modular/circuit4/permutation_argument.sol b/contracts/zkllvm/circuit4/permutation_argument.sol similarity index 100% rename from contracts/modular/circuit4/permutation_argument.sol rename to contracts/zkllvm/circuit4/permutation_argument.sol diff --git a/contracts/modular/circuit4/proof.bin b/contracts/zkllvm/circuit4/proof.bin similarity index 100% rename from contracts/modular/circuit4/proof.bin rename to contracts/zkllvm/circuit4/proof.bin diff --git a/contracts/modular/circuit6/commitment.sol b/contracts/zkllvm/circuit6/commitment.sol similarity index 100% rename from contracts/modular/circuit6/commitment.sol rename to contracts/zkllvm/circuit6/commitment.sol diff --git a/contracts/modular/circuit6/gate_argument.sol b/contracts/zkllvm/circuit6/gate_argument.sol similarity index 100% rename from contracts/modular/circuit6/gate_argument.sol rename to contracts/zkllvm/circuit6/gate_argument.sol diff --git a/contracts/modular/circuit6/gate_libs_list.json b/contracts/zkllvm/circuit6/gate_libs_list.json similarity index 100% rename from contracts/modular/circuit6/gate_libs_list.json rename to contracts/zkllvm/circuit6/gate_libs_list.json diff --git a/contracts/modular/circuit6/lookup_0.sol b/contracts/zkllvm/circuit6/lookup_0.sol similarity index 100% rename from contracts/modular/circuit6/lookup_0.sol rename to contracts/zkllvm/circuit6/lookup_0.sol diff --git a/contracts/modular/circuit6/lookup_1.sol b/contracts/zkllvm/circuit6/lookup_1.sol similarity index 100% rename from contracts/modular/circuit6/lookup_1.sol rename to contracts/zkllvm/circuit6/lookup_1.sol diff --git a/contracts/modular/circuit6/lookup_argument.sol b/contracts/zkllvm/circuit6/lookup_argument.sol similarity index 100% rename from contracts/modular/circuit6/lookup_argument.sol rename to contracts/zkllvm/circuit6/lookup_argument.sol diff --git a/contracts/modular/circuit6/lookup_libs_list.json b/contracts/zkllvm/circuit6/lookup_libs_list.json similarity index 100% rename from contracts/modular/circuit6/lookup_libs_list.json rename to contracts/zkllvm/circuit6/lookup_libs_list.json diff --git a/contracts/modular/circuit6/modular_verifier.sol b/contracts/zkllvm/circuit6/modular_verifier.sol similarity index 100% rename from contracts/modular/circuit6/modular_verifier.sol rename to contracts/zkllvm/circuit6/modular_verifier.sol diff --git a/contracts/modular/circuit6/params.json b/contracts/zkllvm/circuit6/params.json similarity index 100% rename from contracts/modular/circuit6/params.json rename to contracts/zkllvm/circuit6/params.json diff --git a/contracts/modular/circuit6/permutation_argument.sol b/contracts/zkllvm/circuit6/permutation_argument.sol similarity index 100% rename from contracts/modular/circuit6/permutation_argument.sol rename to contracts/zkllvm/circuit6/permutation_argument.sol diff --git a/contracts/modular/circuit6/proof.bin b/contracts/zkllvm/circuit6/proof.bin similarity index 100% rename from contracts/modular/circuit6/proof.bin rename to contracts/zkllvm/circuit6/proof.bin diff --git a/contracts/zkllvm/merkle_tree_poseidon/circuit_params.json b/contracts/zkllvm/merkle_tree_poseidon/circuit_params.json deleted file mode 100644 index df81ede..0000000 --- a/contracts/zkllvm/merkle_tree_poseidon/circuit_params.json +++ /dev/null @@ -1,23 +0,0 @@ -{ "_test_name":"Test name", - "arithmetization_params":[15,5,5,30], - "columns_rotations":[[0,1],[0,1],[0,1],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0]], - "modulus":28948022309329048855892746252171976963363056481941560715954676764349967630337, - "r":8, - "m":2, - "lambda":2, - "batches_num":4, - "step_list":[1,1,1,1,1,1,1,1], - "D_omegas":[ - 22954361264956099995527581168615143754787441159030650146191365293282410739685, - 23692685744005816481424929253249866475360293751445976741406164118468705843520, - 7356716530956153652314774863381845254278968224778478050456563329565810467774, - 17166126583027276163107155648953851600645935739886150467584901586847365754678, - 3612152772817685532768635636100598085437510685224817206515049967552954106764, - 14450201850503471296781915119640920297985789873634237091629829669980153907901, - 199455130043951077247265858823823987229570523056509026484192158816218200659, - 24760239192664116622385963963284001971067308018068707868888628426778644166363 - ], - "rows_amount":512, - "max_degree":511, - "omega":22954361264956099995527581168615143754787441159030650146191365293282410739685 -} diff --git a/contracts/zkllvm/merkle_tree_poseidon/gate0.sol b/contracts/zkllvm/merkle_tree_poseidon/gate0.sol deleted file mode 100644 index 694c144..0000000 --- a/contracts/zkllvm/merkle_tree_poseidon/gate0.sol +++ /dev/null @@ -1,1127 +0,0 @@ - -// SPDX-License-Identifier: Apache-2.0. -//---------------------------------------------------------------------------// -// Copyright (c) 2022 Mikhail Komarov -// Copyright (c) 2022 Ilias Khairullin -// Copyright (c) 2022 Aleksei Moskvin -// Copyright (c) 2022-2023 Elena Tatuzova -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//---------------------------------------------------------------------------// -pragma solidity >=0.8.4; - -import "../../../contracts/types.sol"; -import "./gate_argument.sol"; - -library merkle_tree_poseidon_gate0{ - uint256 constant MODULUS_OFFSET = 0x0; - uint256 constant THETA_OFFSET = 0x20; - - uint256 constant CONSTRAINT_EVAL_OFFSET = 0x00; - uint256 constant GATE_EVAL_OFFSET = 0x20; - uint256 constant GATES_EVALUATIONS_OFFSET = 0x40; - uint256 constant THETA_ACC_OFFSET = 0x60; - - uint256 constant WITNESS_EVALUATIONS_OFFSET = 0x80; - uint256 constant SELECTOR_EVALUATIONS_OFFSET = 0xa0; - - - function evaluate_gate_be( - types.gate_argument_params memory gate_params, - merkle_tree_poseidon_gate_argument_split_gen.local_vars_type memory local_vars - ) external pure returns (uint256 gates_evaluation, uint256 theta_acc) { - gates_evaluation = local_vars.gates_evaluation; - theta_acc = local_vars.theta_acc; - uint256 terms; - assembly { - let modulus := mload(gate_params) - let theta := mload(add(gate_params, THETA_OFFSET)) - - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - - function get_witness_i_by_rotation_idx(idx, rot_idx, ptr) -> result { - result := mload( - add( - add(mload(add(add(mload(add(ptr, WITNESS_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))), 0x20), - mul(0x20, rot_idx) - ) - ) - } - - function get_selector_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, SELECTOR_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - //Gate0 - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(0,0, local_vars) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(0,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - - //Gate1 - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(1,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(0,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(1,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - - //Gate2 - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x113aa632e5e0d0977603751a0f88a80e1f9334b972d5301c3329337f6c9a64ba - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(3,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x1aac4f73877aae401f9b26e3e814e1249be470c9dfd78209e67a28570f55c454 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(4,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x1a58f904f0ca4d9f490d729e1f7d2c9593307d1a1473b7b827857a8dd40501b3 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(5,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x83fd7e02599b33dbb72f182288555fbad24487a8eb89e5caea0363dc11c6461 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x2bfb77cded6e66747a7d153114c05635e8c5ad9764f9a1df3e8307dcbfa6c94b - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(7,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x58c01ca4e4229947f6552a154b84a37e74551fe8986c63be49057d21ee96c89 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(8,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x1e483d4ca0288ef4f9dba8ee0d93f9ca4e647b172e3c1be125c33b4db972841b - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(9,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x27fc5f972da010d109ad375b7b855e75f875109d8d557944f5dfca9992f6352a - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(10,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x16e219e3a19d97dec88d3081fc37f3d19f07e17fb08893d2c7d489dd44268db6 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(11,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x1cffbc5f23d20549c9f8341e463b7d02490e9b0c1c8668c0f42c0263454152ee - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(12,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x1e750885fa3afd2c05cebb1030b85f0d821d746348408af830d6da7818789b0d - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(13,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x1dc1d26b3e882d81f8e2aa8d62ec564e0bb13c8b06805e85aeed2b5e04af9eea - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(14,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x15e7da83ea52649017483a52ded6c6b1921a5cc40665c0294c4a3b6751a095c9 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(0,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x35908458a0de9bfc2d1b6bfb962e66b8d7e0ee9d113815b7986f51fc9ea72309 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(1,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x29641be39dd86a91010a4b32219a2ff2c4419a85a7d43b5467cbd47ea46c1ce3 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(2,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(2,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - - //Gate3 - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x11d70af565aa2d16e88bf7cf8d8cbabbe0c86ff1ec4e3d1a19119c1c8d70199e - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(3,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x30212072579ab5dd7cefbf3038bbcdb9d72f5a158323fb8b4fa8b0336fd0d7e8 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(4,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x3b95c12679c2d28c622743616f58b902812d279938ac3a57be0e018cbd30fb1f - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(5,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x1e61f74b9f3cfa4bd798f453547953e18dee91a490799ce57f7eb54b064d128b - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x744c95ed14313b2b178d714bc1c0ed5b412e6fc6806c5a2979fe2dabdb19d37 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(7,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x21655c01da2ee933042957033251f55666304ef85dce6404943e967ba041211b - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(8,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x3cf0cc128f25b3d4047bb00e58aa747ea527d5fb2ec657b249ff7c9cb82a0e76 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(9,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x3d7d4fbec8cafb6a54be830d3b8c7640ba2a5f05471f5ae48db239904341b450 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(10,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x364ead7215d14a42696fa47700fa020c415477fdebb927664fd984540137da11 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(11,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0xff7c2444a154c6cee3857402a1aaa9827c04dc7a096fffb8ada9412fc261090 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(12,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x3e815318c309839eeddc6340ae213f190d584aa177712ffafb6bb52e5a432f6d - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(13,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x850e2170ab8a45e9a46f072a9797c2ad4253b028aba718765bc61abe7bd7f6a - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(14,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x29008a6d7c95bacbf1390d4f0edd8c931e55dc43c939fff8f47289ae5f1990b0 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(0,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x25a67a2b4ca62fc219f4d12544e7ac0babb539104868e997f65b60e4b103c028 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(1,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x1aa562b41464a15e754687d4e544d9805c8f25427e96a31e4be69a541e1e068c - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(2,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(3,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - - - } - } -} diff --git a/contracts/zkllvm/merkle_tree_poseidon/gate10.sol b/contracts/zkllvm/merkle_tree_poseidon/gate10.sol deleted file mode 100644 index 1f2f997..0000000 --- a/contracts/zkllvm/merkle_tree_poseidon/gate10.sol +++ /dev/null @@ -1,1098 +0,0 @@ - -// SPDX-License-Identifier: Apache-2.0. -//---------------------------------------------------------------------------// -// Copyright (c) 2022 Mikhail Komarov -// Copyright (c) 2022 Ilias Khairullin -// Copyright (c) 2022 Aleksei Moskvin -// Copyright (c) 2022-2023 Elena Tatuzova -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//---------------------------------------------------------------------------// -pragma solidity >=0.8.4; - -import "../../../contracts/types.sol"; -import "./gate_argument.sol"; - -library merkle_tree_poseidon_gate10{ - uint256 constant MODULUS_OFFSET = 0x0; - uint256 constant THETA_OFFSET = 0x20; - - uint256 constant CONSTRAINT_EVAL_OFFSET = 0x00; - uint256 constant GATE_EVAL_OFFSET = 0x20; - uint256 constant GATES_EVALUATIONS_OFFSET = 0x40; - uint256 constant THETA_ACC_OFFSET = 0x60; - - uint256 constant WITNESS_EVALUATIONS_OFFSET = 0x80; - uint256 constant SELECTOR_EVALUATIONS_OFFSET = 0xa0; - - - function evaluate_gate_be( - types.gate_argument_params memory gate_params, - merkle_tree_poseidon_gate_argument_split_gen.local_vars_type memory local_vars - ) external pure returns (uint256 gates_evaluation, uint256 theta_acc) { - gates_evaluation = local_vars.gates_evaluation; - theta_acc = local_vars.theta_acc; - uint256 terms; - assembly { - let modulus := mload(gate_params) - let theta := mload(add(gate_params, THETA_OFFSET)) - - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - - function get_witness_i_by_rotation_idx(idx, rot_idx, ptr) -> result { - result := mload( - add( - add(mload(add(add(mload(add(ptr, WITNESS_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))), 0x20), - mul(0x20, rot_idx) - ) - ) - } - - function get_selector_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, SELECTOR_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - //Gate10 - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x1448b44e7ac8dccb5b10a092e71d131ae1bfb2d104b49b4404761f71f416de82 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(3,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x99daf016d73ba272a55ca0f5ebd8ab71a475ca2853cdf804092081f7ae4ddfd - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(4,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x279707ee7b7d394b5a59e57e375535ed98f3815fe855bed796ff9776423cb510 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(5,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x3486fe398f1e28a28d914772fff6af4c58e2a8046282d4824d51293ed0874b2e - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x3cd3b427548f1e0da508850a822cbf373b7df7fa2987103e95fbeb86246f4791 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(7,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x231c924ce01915c326cf724655bc5750c604f00b62fc5d1d983c4938793f5477 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(8,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x19a691561e6ea1ac25cb86162ec3c36e1d40b6b76b1aa10a99c0889701b48393 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(9,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0xf0d695d967975803570a4e1d963fee9f1f8a5e4dff75ef48abbfbe32c592a25 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(10,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x3da7769e1008768278149538dcaf1060cfe292b43d7ac7e50792979f02e6862c - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(11,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x295b61968de17f96f2be1f9dd61643d2674cf65014946592be08ab93abf629d6 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(12,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x28535fd3fae03527f8c30298def32bde81510710d02b4cdfbf251af93a25842 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(13,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x16642b758bf4886ff8ad97ced547f8d3b0047b1663097975b6d8fefd6ae7b84d - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(14,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x2e59647982615dd13e4d0d71699e8ed63ed7a94d5f64e6afbcc2ee336f8d6fd6 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(0,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x1a43e50c6e0c3e0dd7b56a256d4a77c3070c5882be29a068b1862122dd259b33 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(1,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x9e54c7bc0b272252121c627d44e57ef82bce2225f3b7d8c62cf4cb46a21f457 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(2,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(10,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - - //Gate11 - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x710c54a49e3ee85cb9a5fe8563745b3ffd03f47e96de4c99257678c0b622ba6 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(3,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x66d07c0d9ebc24242cca9fb5e5eb250febbb4bfe4b57525042e8196f5551df2 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(4,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0xafd78688148e37e4ef132fc655266307859145bc64b2deb128f132505e239c9 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(5,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x504a43ed9fdfa79233345cd22fab3267e52e0c73eb680451900e83b25682914 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x28d483d27181b4f92e7c5da8a486f8b651af8ca772e8f12109d429c08d621990 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(7,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x114ac01c5d8797758fb6ba961ab5f0f2fbad634d4284615ca459c82b0982a81d - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(8,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x3c8a51a94726cef2aac12882bf92123c320d5aa1d7318750aac2d535f874afcc - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(9,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x22b65f2ac43d66c340e04a2e256448903ddc28ca336724dbeb6ddc30e83e10c9 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(10,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x2cd2e8478354928f82205e0fe20e8db54ecd41127f88a9fba2190ab6806acea1 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(11,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x39d25ad7f6b727393b5338195e55bde112a7d782650bb2a698cc72a1198aa07c - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(12,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x35b4b2a321ab568b15b1a811becd2d54fd35d5fb1733c844dd6e0fcfe5227f08 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(13,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0xca90e04153b6c33548ad48f44127de33dad333a76c82170cbb434f90079b170 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(14,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x3bd8de175633cdaa87ae014f1fe6f3a22651cde07a05259d1ac7f2260075bfa8 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(0,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x3ac264d9cc000ce35b03a8db3194bbddf0c5702e193461487744c1a53208b750 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(1,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x1982693515021a242c24e0f9974f6332cf1c760be8f864aa2eb4ced304b37fe5 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(2,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(11,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - - - } - } -} diff --git a/contracts/zkllvm/merkle_tree_poseidon/gate12.sol b/contracts/zkllvm/merkle_tree_poseidon/gate12.sol deleted file mode 100644 index 11927ac..0000000 --- a/contracts/zkllvm/merkle_tree_poseidon/gate12.sol +++ /dev/null @@ -1,583 +0,0 @@ - -// SPDX-License-Identifier: Apache-2.0. -//---------------------------------------------------------------------------// -// Copyright (c) 2022 Mikhail Komarov -// Copyright (c) 2022 Ilias Khairullin -// Copyright (c) 2022 Aleksei Moskvin -// Copyright (c) 2022-2023 Elena Tatuzova -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//---------------------------------------------------------------------------// -pragma solidity >=0.8.4; - -import "../../../contracts/types.sol"; -import "./gate_argument.sol"; - -library merkle_tree_poseidon_gate12{ - uint256 constant MODULUS_OFFSET = 0x0; - uint256 constant THETA_OFFSET = 0x20; - - uint256 constant CONSTRAINT_EVAL_OFFSET = 0x00; - uint256 constant GATE_EVAL_OFFSET = 0x20; - uint256 constant GATES_EVALUATIONS_OFFSET = 0x40; - uint256 constant THETA_ACC_OFFSET = 0x60; - - uint256 constant WITNESS_EVALUATIONS_OFFSET = 0x80; - uint256 constant SELECTOR_EVALUATIONS_OFFSET = 0xa0; - - - function evaluate_gate_be( - types.gate_argument_params memory gate_params, - merkle_tree_poseidon_gate_argument_split_gen.local_vars_type memory local_vars - ) external pure returns (uint256 gates_evaluation, uint256 theta_acc) { - gates_evaluation = local_vars.gates_evaluation; - theta_acc = local_vars.theta_acc; - uint256 terms; - assembly { - let modulus := mload(gate_params) - let theta := mload(add(gate_params, THETA_OFFSET)) - - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - - function get_witness_i_by_rotation_idx(idx, rot_idx, ptr) -> result { - result := mload( - add( - add(mload(add(add(mload(add(ptr, WITNESS_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))), 0x20), - mul(0x20, rot_idx) - ) - ) - } - - function get_selector_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, SELECTOR_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - //Gate12 - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x6ce96688c89efe6c3c0600302b1dc2c979a862e8db740494255bcdce9af5937 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(3,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x26e1c88b9d679a9c0254064dcad60837d5db78f0784b45768fc1668dc8867e06 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(4,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x1f0765068dd086379f2dfa65f13df630e7cd734f01b42e6543408abd18c00c28 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(5,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x235a9751224d10c6e58387130efb2cd2a9eafc5ac3737ae6118f3d99b582e1f6 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x1a21645f5c8b8d3c4b3f463c43da3440a96d807a5253aa348ae271e3fdeedae5 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(7,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0xc6c2142c72cee77e38a7c411f819fa131613c9918fc6c4f6c06df602a971e12 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(8,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x3c720d02e75728a9c7f9556266b59ee0be193cc295c4273e5ab47472baea3a50 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(9,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x3a39afc00e11ab70dbca526eb728046b59246df30058b3c81ec6c9e88092afe5 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(10,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x2fb377292f97d27d2c299b7d9236a9a27144f6db5ebd68c46a7598a6757d5d56 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(11,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x135529ef73f611951187ae4b5d2d2c485e7c5ca5614cf553520da02d5b539d76 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(12,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x35a8242b3cd87d937568438d7a06b43246b03784d4dde188d46fc06455fcac0e - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(13,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x3eaaad06edbce747bcc2fe44ac45fb48079fa42ebc94002b5fd46b30416f707 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(14,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x31ef3ef3441e8e856bbe39d663b03f7860247870345269dfb2c0107709dc4aee - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(0,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x2174dab3400d36d57c200e8d737e22dd78ef89a2fb037c68c2ed2cc0478656d1 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(1,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x27ed24328f3bbf9effa844022f33b2ce504ba383a53343e357688328c0d4dcaf - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(2,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(12,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - - - } - } -} diff --git a/contracts/zkllvm/merkle_tree_poseidon/gate4.sol b/contracts/zkllvm/merkle_tree_poseidon/gate4.sol deleted file mode 100644 index 4f59e81..0000000 --- a/contracts/zkllvm/merkle_tree_poseidon/gate4.sol +++ /dev/null @@ -1,1098 +0,0 @@ - -// SPDX-License-Identifier: Apache-2.0. -//---------------------------------------------------------------------------// -// Copyright (c) 2022 Mikhail Komarov -// Copyright (c) 2022 Ilias Khairullin -// Copyright (c) 2022 Aleksei Moskvin -// Copyright (c) 2022-2023 Elena Tatuzova -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//---------------------------------------------------------------------------// -pragma solidity >=0.8.4; - -import "../../../contracts/types.sol"; -import "./gate_argument.sol"; - -library merkle_tree_poseidon_gate4{ - uint256 constant MODULUS_OFFSET = 0x0; - uint256 constant THETA_OFFSET = 0x20; - - uint256 constant CONSTRAINT_EVAL_OFFSET = 0x00; - uint256 constant GATE_EVAL_OFFSET = 0x20; - uint256 constant GATES_EVALUATIONS_OFFSET = 0x40; - uint256 constant THETA_ACC_OFFSET = 0x60; - - uint256 constant WITNESS_EVALUATIONS_OFFSET = 0x80; - uint256 constant SELECTOR_EVALUATIONS_OFFSET = 0xa0; - - - function evaluate_gate_be( - types.gate_argument_params memory gate_params, - merkle_tree_poseidon_gate_argument_split_gen.local_vars_type memory local_vars - ) external pure returns (uint256 gates_evaluation, uint256 theta_acc) { - gates_evaluation = local_vars.gates_evaluation; - theta_acc = local_vars.theta_acc; - uint256 terms; - assembly { - let modulus := mload(gate_params) - let theta := mload(add(gate_params, THETA_OFFSET)) - - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - - function get_witness_i_by_rotation_idx(idx, rot_idx, ptr) -> result { - result := mload( - add( - add(mload(add(add(mload(add(ptr, WITNESS_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))), 0x20), - mul(0x20, rot_idx) - ) - ) - } - - function get_selector_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, SELECTOR_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - //Gate4 - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0xb57260badff5653d7fde8ed417e16fa8bcaeca3ff415a361d690dcda1346c97 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(3,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x3686aa934c12341b0cc122df6b0ebbc4d6f7d237b19cb6c014c94964465d2327 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(4,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x15b2fd73f652c63cf9994874ba30522afaa736c2d1b0908126adce8686d8d9ad - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(5,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x33ce497097af4c428e01b17667b1d378e0f17500b45aaa52eabbede98feab4ce - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x25d835f46ac2c2459471fe30f828939f08257be86a1ef9c0d90943c8ab0d1271 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(7,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x2f651683da29fdbd47928e96e692dded2fdddfa929739ee2619bc553facfce81 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(8,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x96736cd0d5e9084465453f7613d218658b0407a98c480b35c7ddd2257c5263d - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(9,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x381da1f537045c23ec9f07565605f4214437c6f92a3c483e16268ffcd521941 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(10,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x103afdc3a1b512a5582035f0ab6d0e49329b6862d33e2fbb75b81df8737a7588 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(11,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x13edb8ca0c06dbab904b0205d5fe71fc2d163528666479491372a3888125989c - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(12,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x2d378a36486a6e5306fcc07493e1ca8efb824dd81604895cb853adac5cc7ddb0 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(13,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x3256ca176a7a82c658247b895125a5b0f29e79665f9f1dbc548bcef77aaad74 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(14,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x1e7148a905a0e2060e146dd107f4f7adc9bf1f54d2bebc1a8b3e1bda7ea278a8 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(0,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x1c430efcd6a8fea10e8e044bcd6435f3ca710076b71dd326e8aa8d1dcfe3043b - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(1,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x28b8b3c495643efa8209b461b29d45245a531280cb75a1547d0dcb8afa284316 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(2,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(4,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - - //Gate5 - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x3e67d93f11dd68d214be8ba2c42bed3d74094ce3b5edadbacf44bfff005c2ab1 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(3,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0xf434e82029dd3b90cd8a0967ce649729a2fda2bd2bf0bd83a57175a43bc1058 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(4,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x427e93deb399befdd63042e0b5c5bd1b837160848785e11dcb1e4e8d00d36b6 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(5,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x376bc13fe260460bc37bf8a88c76864edb82e22a712a78326eda481cba9cc160 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x198f4073fe7dd1ce38f689d9627612a765ccebcc6c2ec7d5b9a424f4674a81ba - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(7,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x322ac4bea665187242c197649a14335b8e569e671bd69a2cd1d323b14dfbf808 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(8,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x397e882d6ca7a1f4737189575a9a3797882910155f9d5189787226caac0dfc3e - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(9,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0xade90b8efbc799123cdb5272730f3388f481eeb49c5adfcae66b5a7e294d30c - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(10,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x2029104dac9401ee13c8c91808bb73fe371c3e6bc79100d56760acfefb9b0952 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(11,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x1367d38cadefdd7603e4b72503261c33ebf93eb8e4f59ad47752403deffcc39a - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(12,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0xad08173899d27924638dd2b2f88877a9ad4e0c959f1433f5e1961587ae3e4bc - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(13,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x271c3f3e355a1c129911e5490aa5a37fbe6dcf4bd49eb14055e9dfa5eb61c82c - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(14,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0xedb4ed214c82344c2693e5f72af8adc3f38951b77b79f5c6b8285c97bdd1523 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(0,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x2bc40f210cebc814def6adff2d2bf9193cd420c8a10f61dadf6d6f7bcdea2367 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(1,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x214116debc0cd4b062656f529d47b7c38ad218858df931fc2d4e9da2710c70ea - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(2,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(5,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - - - } - } -} diff --git a/contracts/zkllvm/merkle_tree_poseidon/gate6.sol b/contracts/zkllvm/merkle_tree_poseidon/gate6.sol deleted file mode 100644 index 775820a..0000000 --- a/contracts/zkllvm/merkle_tree_poseidon/gate6.sol +++ /dev/null @@ -1,1098 +0,0 @@ - -// SPDX-License-Identifier: Apache-2.0. -//---------------------------------------------------------------------------// -// Copyright (c) 2022 Mikhail Komarov -// Copyright (c) 2022 Ilias Khairullin -// Copyright (c) 2022 Aleksei Moskvin -// Copyright (c) 2022-2023 Elena Tatuzova -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//---------------------------------------------------------------------------// -pragma solidity >=0.8.4; - -import "../../../contracts/types.sol"; -import "./gate_argument.sol"; - -library merkle_tree_poseidon_gate6{ - uint256 constant MODULUS_OFFSET = 0x0; - uint256 constant THETA_OFFSET = 0x20; - - uint256 constant CONSTRAINT_EVAL_OFFSET = 0x00; - uint256 constant GATE_EVAL_OFFSET = 0x20; - uint256 constant GATES_EVALUATIONS_OFFSET = 0x40; - uint256 constant THETA_ACC_OFFSET = 0x60; - - uint256 constant WITNESS_EVALUATIONS_OFFSET = 0x80; - uint256 constant SELECTOR_EVALUATIONS_OFFSET = 0xa0; - - - function evaluate_gate_be( - types.gate_argument_params memory gate_params, - merkle_tree_poseidon_gate_argument_split_gen.local_vars_type memory local_vars - ) external pure returns (uint256 gates_evaluation, uint256 theta_acc) { - gates_evaluation = local_vars.gates_evaluation; - theta_acc = local_vars.theta_acc; - uint256 terms; - assembly { - let modulus := mload(gate_params) - let theta := mload(add(gate_params, THETA_OFFSET)) - - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - - function get_witness_i_by_rotation_idx(idx, rot_idx, ptr) -> result { - result := mload( - add( - add(mload(add(add(mload(add(ptr, WITNESS_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))), 0x20), - mul(0x20, rot_idx) - ) - ) - } - - function get_selector_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, SELECTOR_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - //Gate6 - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x3009386b52e5055b6bf772a071193b84285e68e8c1c6d04bf9eb3e04ec7c1416 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(3,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x2f5ef53c118f839d17420d324b653d32e3d2c07eecdd7cbbc0da152db7fb0ea - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(4,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x229efeb32c10f2782fc83a94205c8f58eef3df9ec21e4c02616e6082ce7fe370 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(5,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x2dc1e7a4d1380f8daf853e1b18bca7646fea0920c2bec67d1b4bc765a06f3adc - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0xf487f3f3e34f9f69dc8cd7db38afe8278ccfd1f8b4443f3de453ce31424130f - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(7,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x2204c7fe4851b1df6097e6a9ed69a391eaa3ab9f175e0ade523f3a97290a5012 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(8,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x10211bd7fa4d88bf9b169c38beaadaaa20ac02ea76bf1ea90db4ffcee0fb6ad9 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(9,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0xe4d49a3bceded12c90225aca726f32656f4cf07758d01febcb7cba7b81b5dd6 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(10,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x21c35fcc27bec49772485abc19d53d198c01d89ac14bc17e9aca36cafce61f12 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(11,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x33710ee97bdafd73ad5cd26c06ceceac3d17fc0aaaee3666cf2360d5cf252bcf - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(12,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x8738cc8c5c95a126b5cb08a1a218585c0beaecbf5cc0c202a130e1d7aad9c73 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(13,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0xde75113dffb75a9bfea170dde9a8041d9aaf4f7315707c01690b67757a3d0bd - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(14,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0xced10834452cebcf0df0cf6ce4f8fc885cf875ff12732c58c5a68c0089886b3 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(0,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0xa9bb658ec7c98b39f805ce21273f3f2f5259db645e66049405e6354d245b875 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(1,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x333772e36eb7e2acdee8b1aa4b64db7aba1a1101469f45e982b310304a824ca8 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(2,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(6,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - - //Gate7 - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x22103342cc8bf7fc52d7b43b7546a60cd88d4ae331d9325ad3a2e5596f33cff2 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(3,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x12d9c33d1650ed92897261e2d40d340d01e2da78ec9ba48b9bbbc529118fcb03 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(4,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x2ee1ceb24904e5d71dbefd731c2cb83afcedf5c09e3bd0c1012d36d1b8616964 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(5,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x3d8bf6bfe16dffe2bcb345d797161c8eb214ff39d21fd52c668edd71aec0bac3 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x1b57ad420634d570122a17a5a67982b70b8df3802bed743a94afefe58f000061 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(7,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x1fa2e4f11ca609de7ba539b0081c7c5c36c4b8bedf2392c621e65ed1b8cd6293 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(8,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x1a3cd81d336c1390f0dc4a1be36ce40463fa86218bf75669d010b71167d206fe - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(9,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x620c1dd2dd4f64bd9a25af10e8a6f633aa809f073b3192b7c35227c77b67d48 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(10,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x364f72a77ac27536f73a4eb1a1479ee4dc52895163b0403b9f9d7dde03205600 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(11,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x21319dc8b28618e824b59706322550ad29be49c295d73827d36b554263a85f5b - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(12,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x42f7648d85f11f71d9c05a1ca49e7249a6edc2e0608e4a5b52fe78964605e40 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(13,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x12158a0c85263036b36aebe404b8e633ab66439493bb4bd8611df7e584d502 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(14,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x9205e75645e4e6bdd7b6b575350f9975702ec52346c56c9e71e6daab2f19a34 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(0,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x2e616724c0b6328034c4f9cda98263357cfd0deec832e4e3a3b0cb5dbe6ce2f5 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(1,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x2eff4de3cf9b8a27e94c10328a3c51ecc5f1ebbf43e056f0db91b1a7192fd3e8 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(2,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(7,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - - - } - } -} diff --git a/contracts/zkllvm/merkle_tree_poseidon/gate8.sol b/contracts/zkllvm/merkle_tree_poseidon/gate8.sol deleted file mode 100644 index 5cf993e..0000000 --- a/contracts/zkllvm/merkle_tree_poseidon/gate8.sol +++ /dev/null @@ -1,1098 +0,0 @@ - -// SPDX-License-Identifier: Apache-2.0. -//---------------------------------------------------------------------------// -// Copyright (c) 2022 Mikhail Komarov -// Copyright (c) 2022 Ilias Khairullin -// Copyright (c) 2022 Aleksei Moskvin -// Copyright (c) 2022-2023 Elena Tatuzova -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//---------------------------------------------------------------------------// -pragma solidity >=0.8.4; - -import "../../../contracts/types.sol"; -import "./gate_argument.sol"; - -library merkle_tree_poseidon_gate8{ - uint256 constant MODULUS_OFFSET = 0x0; - uint256 constant THETA_OFFSET = 0x20; - - uint256 constant CONSTRAINT_EVAL_OFFSET = 0x00; - uint256 constant GATE_EVAL_OFFSET = 0x20; - uint256 constant GATES_EVALUATIONS_OFFSET = 0x40; - uint256 constant THETA_ACC_OFFSET = 0x60; - - uint256 constant WITNESS_EVALUATIONS_OFFSET = 0x80; - uint256 constant SELECTOR_EVALUATIONS_OFFSET = 0xa0; - - - function evaluate_gate_be( - types.gate_argument_params memory gate_params, - merkle_tree_poseidon_gate_argument_split_gen.local_vars_type memory local_vars - ) external pure returns (uint256 gates_evaluation, uint256 theta_acc) { - gates_evaluation = local_vars.gates_evaluation; - theta_acc = local_vars.theta_acc; - uint256 terms; - assembly { - let modulus := mload(gate_params) - let theta := mload(add(gate_params, THETA_OFFSET)) - - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - - function get_witness_i_by_rotation_idx(idx, rot_idx, ptr) -> result { - result := mload( - add( - add(mload(add(add(mload(add(ptr, WITNESS_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))), 0x20), - mul(0x20, rot_idx) - ) - ) - } - - function get_selector_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, SELECTOR_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - //Gate8 - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x2a86e064415dec6c8df737d86b1499810cc798bfa396ae72191de52e1b15aee8 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(3,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x252414a163b2aea1302daf1411a95d580b5b5abe407724dad781ee674caf419d - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(4,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x2040b8c77bb565db6513dac171bd9f1b773cb6901f234e1b786e226bc311343e - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(5,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0xbe756d6aa913ae5f79ba644619c57de4e3f606f3ac9647ffe394d3cbcb150f3 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x36bf94a3c50fd6f0668bfa2f3ae4196add96e6bb34be0e6a25c056e8cd170063 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(7,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x1c131a28f4c733362bc326dc1a1c1d09f52911bf780b0a19a091c30bcc90a43a - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(8,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x27ad2a8b1b92c8f5f4e19b093be11472e1770236e4a6cfb6330e01f48198dcb4 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(9,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x359a8fd833172b0dc715769221d8c48aea919094bf168cb4e5b49354d74f3171 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(10,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0xb7d0675b913ca7ef7044497026b070d679f5c89cd9dd7896ea822a7aee0a5d4 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(11,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x9d0e9b0736fa4cca5934089ece2dbd200eb78132a131ae6eca072b13ab9c13 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(12,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x381c680afc063e315fd7b9a4d6af15bbd730d31153e52374fa8a9e967a96b211 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(13,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x3bfa0e038ee78dc8c2914af5f60404fa6fd65e1b68980b632e3f7ed624e8578b - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(14,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x341f7b714c1f638fd8eef527bd3afdbc05aee95abec8b5149c2e69985da9a740 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(0,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x19487877026753fdf4536d2f1886d44a225992457174b1257b94e15ca2645791 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(1,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x702ace72c6faa37d0106422cccea5ac0637d4c5cae038b32927a9d9aa205a8e - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(2,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(8,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - - //Gate9 - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x7f42fc47bf3b73745c7cf1835318d0707f696da7ceb8686b064748482ade923 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(3,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x1391a8223e2837e5fd6612b63c28b8a6e0dad0b99a1c166c430aa790ace4b1e5 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(4,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x2e2c57e4d9d038910af91192771a66e3145dcd5e37ea1f9f407bbb0943ba7b0e - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(5,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x36494d7c1450ba044e1bb76965316419f767311e13c6e48941eb52365e458212 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x2a2af6ae9b377a89c057c3208892bc9c9fc47ee44cf79575e236511f53afb523 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(7,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0xbd8024035c315dcf9c14ec73afaa39374aa56a9570fe65a769a005e00826edd - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(8,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x18d0ed18cef8848bce810dabc3cc479e8d6b7b5612a5172cb8c7ca7a37e97a03 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(9,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x3acdc07a21473f83e6c3c858c28909eed8df07c1dd701802033bad05960bd69a - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(10,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x2a31bea1351b45bd4be815c5afe4bb98d5229fe2959fc510402276dc7ad2c29 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(11,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x31713e7384ad3aeb2bdfb80e0f4d56f36985d1c2ec53b17ec12fd4eee2c2470f - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(12,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x3ea6e379a158f9a2abcfbae60744d9744487e9c10e67aa3ec912adae2f5610e7 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(13,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x12241111a135a2111b40e8763bca1ede065c1ea827408256bb8be4f03cee606 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(14,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x1c96e38ff646d7c4d97899172b6e8e92e62d05151c58a03ca035ce3dc1caa8fa - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(0,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x193254d37c814153a415b41e290fb77fedb62587313297784a10e339682b3f66 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(1,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=0x12ddf98cf99b2a741f989252e011f16716204e87f8aa2b64e3d6dd2b208d10ab - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836 - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(2,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(9,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - - - } - } -} diff --git a/contracts/zkllvm/merkle_tree_poseidon/gate_argument.sol b/contracts/zkllvm/merkle_tree_poseidon/gate_argument.sol deleted file mode 100644 index c98824d..0000000 --- a/contracts/zkllvm/merkle_tree_poseidon/gate_argument.sol +++ /dev/null @@ -1,100 +0,0 @@ - -// SPDX-License-Identifier: Apache-2.0. -//---------------------------------------------------------------------------// -// Copyright (c) 2022 Mikhail Komarov -// Copyright (c) 2022 Aleksei Moskvin -// Copyright (c) 2023 Elena Tatuzova -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//---------------------------------------------------------------------------// -pragma solidity >=0.8.4; - -import "../../../contracts/types.sol"; -import "../../../contracts/basic_marshalling.sol"; -import "../../../contracts/commitments/batched_lpc_verifier.sol"; -import "../../../contracts/interfaces/gate_argument.sol"; - -import "./gate0.sol"; -import "./gate4.sol"; -import "./gate6.sol"; -import "./gate8.sol"; -import "./gate10.sol"; -import "./gate12.sol"; - - -contract merkle_tree_poseidon_gate_argument_split_gen is IGateArgument{ - uint256 constant GATES_N = 13; - - struct local_vars_type{ - // 0x0 - uint256 constraint_eval; - // 0x20 - uint256 gate_eval; - // 0x40 - uint256 gates_evaluation; - // 0x60 - uint256 theta_acc; - - //0x80 - uint256[][] witness_evaluations; - //a0 - uint256[] selector_evaluations; - - } - - // TODO: columns_rotations could be hard-coded - function evaluate_gates_be( - bytes calldata blob, - uint256 eval_proof_combined_value_offset, - types.gate_argument_params memory gate_params, - types.arithmetization_params memory ar_params, - int256[][] calldata columns_rotations - ) external pure returns (uint256 gates_evaluation) { - local_vars_type memory local_vars; - - - local_vars.witness_evaluations = new uint256[][](ar_params.witness_columns); - for (uint256 i = 0; i < ar_params.witness_columns;) { - local_vars.witness_evaluations[i] = new uint256[](columns_rotations[i].length); - for (uint256 j = 0; j < columns_rotations[i].length;) { - local_vars.witness_evaluations[i][j] = batched_lpc_verifier.get_variable_values_z_i_j_from_proof_be( - blob, eval_proof_combined_value_offset, i, j - ); - unchecked{j++;} - } - unchecked{i++;} - } - - local_vars.selector_evaluations = new uint256[](ar_params.selector_columns); - for (uint256 i = 0; i < ar_params.selector_columns;) { - local_vars.selector_evaluations[i] = batched_lpc_verifier.get_fixed_values_z_i_j_from_proof_be( - blob, eval_proof_combined_value_offset, ar_params.permutation_columns + ar_params.permutation_columns + ar_params.constant_columns + i, 0 - ); - unchecked{i++;} - } - - - local_vars.theta_acc = 1; - local_vars.gates_evaluation = 0; - - (local_vars.gates_evaluation, local_vars.theta_acc) = merkle_tree_poseidon_gate0.evaluate_gate_be(gate_params, local_vars); - (local_vars.gates_evaluation, local_vars.theta_acc) = merkle_tree_poseidon_gate4.evaluate_gate_be(gate_params, local_vars); - (local_vars.gates_evaluation, local_vars.theta_acc) = merkle_tree_poseidon_gate6.evaluate_gate_be(gate_params, local_vars); - (local_vars.gates_evaluation, local_vars.theta_acc) = merkle_tree_poseidon_gate8.evaluate_gate_be(gate_params, local_vars); - (local_vars.gates_evaluation, local_vars.theta_acc) = merkle_tree_poseidon_gate10.evaluate_gate_be(gate_params, local_vars); - (local_vars.gates_evaluation, local_vars.theta_acc) = merkle_tree_poseidon_gate12.evaluate_gate_be(gate_params, local_vars); - - - gates_evaluation = local_vars.gates_evaluation; - } -} diff --git a/contracts/zkllvm/merkle_tree_poseidon/linked_libs_list.json b/contracts/zkllvm/merkle_tree_poseidon/linked_libs_list.json deleted file mode 100644 index 0687002..0000000 --- a/contracts/zkllvm/merkle_tree_poseidon/linked_libs_list.json +++ /dev/null @@ -1,8 +0,0 @@ -[ -"merkle_tree_poseidon_gate0", -"merkle_tree_poseidon_gate4", -"merkle_tree_poseidon_gate6", -"merkle_tree_poseidon_gate8", -"merkle_tree_poseidon_gate10", -"merkle_tree_poseidon_gate12" -] diff --git a/contracts/zkllvm/merkle_tree_poseidon/proof.bin b/contracts/zkllvm/merkle_tree_poseidon/proof.bin deleted file mode 100644 index 3fa8115..0000000 --- a/contracts/zkllvm/merkle_tree_poseidon/proof.bin +++ /dev/null @@ -1 +0,0 @@ -0x0000000000000020d987953986af83240f5ddde87804a97c6b3fbe9f29afefab074710a945e013e00000000000000020c83d9f2a299d4734a2a61405e72426ae8d1df319c33103ce5e797f7b9317da1800000000000000206dd71d18378fc891c5d45303fe433d1427994cd17f4cdc6dc27a1ad4d1340b580000000000000020185ecb7ad8b09d2b74db5d84f6e58b9b8ed9e8bcfd9e3966c56a1beed6e771bb22ed3131d1b9c84cd73999f1e5f4a38612bdedb9b0372d9ab8ade20916dd7546082c56d5574a7661847006ce6f99e54db01d07eeb58c9e2bab1b5ad25919b7610000000000000004000000000000001400000000000000022c15038ebf5040670d83d7f8a22985d71ea06527f3a3db14d4982d56cb9994ab357396ec73fcb1976d0de2958293a760b20bdb4e2c8da1661d1cb22cfca793a300000000000000023b4c355ed4cb27ba86fbe3016ad8b7ea71302b9f3b3620b43d47254b4511ddf51d54e4690c09c685dfc513527319b92b76b64df235088d25b8260e2912c90e21000000000000000212d9ae0b45d3fcb9eec4cc5fc398f09ff762bdab8863d6a510e17dc89fa569872e1e7fee0982a85b15e9f7be99ae79e832ac613258f3544f7ba1af9c0cd36f3d0000000000000001018e150efc5001bd1daa0eb750f13bf979b388be3e2ba12373c25e76dcac960b00000000000000013eb1e5c3789c6495854c3000027d201554e0c7f5146c49fc8509208c863a0b2e00000000000000010ef7f4a70faa8e27d5265637654963a89f658adf9920506653cb3db1d0d802390000000000000001253554e902c09e6edef667870844450d76b37c5a9556a42910fb068c1c75c69000000000000000013bc2877ba3a8ac84856bd0be8599c70d5a3498cd63567310a22d83cac7300db800000000000000010d75f98d82b9308bcf7d18dc8b1e0fc4ec0a07347fa7a18a70f12f63bdb4b427000000000000000121782ab1d9e0497f707861ac30c4d0f46ce2791d8d4ea342ff0bfc8a7357d8e3000000000000000131e10b7c7f27fd44a16ec242024efb09fccb5e34f6ddf43d3e94b3f0bf4757920000000000000001008174d0fd82e73265d0728db077b031b77ecc1408d950b0492eae369cca739800000000000000013955df90ce0417c2529501c4821b5f8d7c24d124b02c53810e0f8d52eb9e6722000000000000000127624d70fb9cd0c3c7389c9450903c1d5e394d8569eebe8c1428757a91eb6208000000000000000109b6bee8faae05576f0f0faa50c5a4a58c02cea769c8ef8f3b02d75a4da5e60d00000000000000012de1cc0d5ad846fbe05e7bdaacf92ccef6ca359f4bc35c91e9134b21417010d2000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000207a425c0c691f475865d70eef2703cfbce65c3e4b5f8a660c8ae846696af712919cb7559312ee986147c3731020ffeadd12ff9c938efa080517af0f4f4e984000000000000000011000000000000000101e2beab62ba1759d1c98736d7e9361a6d8f1643bc77bf9afac30f0ca36a179c000000000000000121b076dd5269403f80dc4d542bd740abb988978c187e82bf16ff01cb3b3fdd3b0000000000000001185022eec82c99f2159eb745d9fea9383defaa01edfb40f63c2c255063ff5db900000000000000011eb21f9da652db2b08a48b56d6cd961815d236b9e5071324140a97200e720ae600000000000000013e7cbe4ef06eaef7173864f7b90c611217ae92ad1b4e60433a5dffe27fb59df500000000000000012f812616b8e9f6eb6aa4448754be2025fddea2509c228908f4977e4ef1982195000000000000000131160a3ddfdc75f5785220d3266ef43c9613fbf79e564713c1020ac0cfc331c000000000000000011aacc2b4b432987d891eda23c4a59a800ab49ddaf10db80fe43ff07a7cb80fe900000000000000013df3a231995af9bc46a697841779c86af30fb1807aa7a49bd5ccdb1f5793bbd8000000000000000125ba3f4024829957d47911761802bd282b1477293e001bed50f4830f43f45f3d00000000000000013e29300686723b3a6920ba30a3f8fa2395f9e43801fcb5aa2b58d53b7e33357e000000000000000138f1e3126aa5985557f6178d88dbc266ac255dbaf0edf62021950ea1033e34c800000000000000011db82afcf1d69c474e4144faec57f1cc990e637d4c8cc1d0425828afcb8f494e000000000000000109af37dca73a6d6cb047a78d4dc793c95954eef1dc50a7d8c8661112a0cb603f00000000000000013642263465119a7f726f492b75818456efef0f5d3a2d0d81dd12512594dd35c900000000000000012ff69aec5fa9b1e825095b4afe87eb2119a37a1c162c327adb5c4f02bcc5391c000000000000000119eb6971d11b69afa3d66e9ff7daf44c079b0fe479aa2ad2377b792bedf504340000000000000057000000000000000122ed3131d1b9c84cd73999f1e5f4a38612bdedb9b0372d9ab8ade20916dd754600000000000000012ea1f5f918a0e980342001b97dc7319e192872a85e79f1ce690b085372534a5c00000000000000012929cddd7b248f8104a0089f74e3f81616f67255bc7acdb541af96da3ba073c900000000000000010dd1055367b6cd8517202b1d4873d86e0bfc70b8927f19377ce65f7c2a2242ea000000000000000105151aa10692039973a0d7926a433a2619a79a9ed32e84f9d752ac7fd2ab4e9100000000000000011969852520da11ff422435dc135022be8046051a1fe898e1349d5e7f1d5888d500000000000000013f0f99b9a44259fc4ab50d4c6090adb85f178086963e034a6de5a78e92baac2800000000000000013b4e00a0354bc1ed7589427de2d36499525b1eb0ca022c05c0c78214dda55cc40000000000000001288603210a7ac9a34bae4c756e20f6fe12ad3583ccd6f7ae5f30c6b4543acfd000000000000000010a9e0fa53465f0307a677e4b26a4d2f5f68e409ee44beb15106c4ebea5260f0d000000000000000135164e3a05fdb0f264057777c1381ecdd0c7431a757b9769521d89b939be4b410000000000000001096f87221df474bbf41b5556c6189a048ac9eb94263610a035deecea20b7784100000000000000012f2da3aa95c647abc488aab1de7b0216b5f199e4bf0e53210d5aa092a395594500000000000000012be43254ecdf665ad6ab557958670a7126e436839f60b452773d901631eabe5600000000000000011b74fba8a05cffc63158ab5eba0334355ba1459e00fc9a4988ac3da7f995b7ab00000000000000010948ea4b21d0fedef6bb58d9a210050a85992a1df25511387902d26ddfec965500000000000000012e6c9377a914fa5ad1a8bc402a5019349bfdd295bba9561a5d0e1c255f9eefa90000000000000001281ee1564d68e3c6184bad40d3907e06a52151f88e67c33105bef9f3de1aae4a0000000000000001089a66af830c72de797a624421d27620d2d2cee6ac1fe4a251334efc5685676f00000000000000012b04016d8f3e3e585f63eb54a91c4ea41e1e0a815c9f772b96008aedb09b052b000000000000000117140723cc3737b9dcf398a74d8d89342fc26992b3366887227b23dd730719d40000000000000001336423b2fd1416a150c1fb4483c3ae04cc8576e176c31188133a82663f238123000000000000000100f4b27ef164712693c9e85692d266177580ee772c9b7339fb6fc84b3bb185ab000000000000000104c77c7ab6f635c0e2f189b0de1bfe754b84a853df094021e92ee9782a779c57000000000000000117e56e6592cf0cc46eb7b074568bf84a799749a35b2e40a98dea8f58d4560db300000000000000013176d5be1a2278297dc0bff4c2ce2cf076f98961897006a380ff219673cb33bb00000000000000010c8c06e2186fb4aa54bb41427365e7d574bec2d8268d938242270afcbc44717300000000000000011dcc49ca93078524687479bf68e433d3c4b89fbb9bf26bb485b4d26395f61c1e00000000000000010dd1055367b6cd8517202b1d4873d86e0bfc70b8927f19377ce65f7c2a2242ea000000000000000105151aa10692039973a0d7926a433a2619a79a9ed32e84f9d752ac7fd2ab4e9100000000000000011969852520da11ff422435dc135022be8046051a1fe898e1349d5e7f1d5888d500000000000000013f0f99b9a44259fc4ab50d4c6090adb85f178086963e034a6de5a78e92baac2800000000000000013b4e00a0354bc1ed7589427de2d36499525b1eb0ca022c05c0c78214dda55cc40000000000000001288603210a7ac9a34bae4c756e20f6fe12ad3583ccd6f7ae5f30c6b4543acfd000000000000000010a9e0fa53465f0307a677e4b26a4d2f5f68e409ee44beb15106c4ebea5260f0d000000000000000135164e3a05fdb0f264057777c1381ecdd0c7431a757b9769521d89b939be4b410000000000000001096f87221df474bbf41b5556c6189a048ac9eb94263610a035deecea20b7784100000000000000012f2da3aa95c647abc488aab1de7b0216b5f199e4bf0e53210d5aa092a395594500000000000000012be43254ecdf665ad6ab557958670a7126e436839f60b452773d901631eabe5600000000000000011b74fba8a05cffc63158ab5eba0334355ba1459e00fc9a4988ac3da7f995b7ab00000000000000011ccc9a6a44d1bca851ddcebb9da4c05dc8aade976fa054182150024297765a5c00000000000000012e6c9377a914fa5ad1a8bc402a5019349bfdd295bba9561a5d0e1c255f9eefa90000000000000001281ee1564d68e3c6184bad40d3907e06a52151f88e67c33105bef9f3de1aae4a0000000000000001089a66af830c72de797a624421d27620d2d2cee6ac1fe4a251334efc5685676f00000000000000012b04016d8f3e3e585f63eb54a91c4ea41e1e0a815c9f772b96008aedb09b052b000000000000000117140723cc3737b9dcf398a74d8d89342fc26992b3366887227b23dd730719d40000000000000001336423b2fd1416a150c1fb4483c3ae04cc8576e176c31188133a82663f238123000000000000000100f4b27ef164712693c9e85692d266177580ee772c9b7339fb6fc84b3bb185ab000000000000000104c77c7ab6f635c0e2f189b0de1bfe754b84a853df094021e92ee9782a779c57000000000000000117e56e6592cf0cc46eb7b074568bf84a799749a35b2e40a98dea8f58d4560db3000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000012f72c9aa1e4d095c083240c9a53b74a2b7a45850cb6a4bd2ab1763a864706460000000000000000137345a143cdc96ac793ee23c9a48d247f37c9e01c553845500e222fa012acd78000000000000000135f1cc1d4d397f39cdeced1a9a38b1ac3d694300b796dccd3a448800e477238700000000000000013e26ba08415c2ef9cefc3b86917fe9a3cf30d8812e6cdc2244753ab006c0950c000000000000000136682238ab2ec39eaf0d4251a4a6153bf6584fbfeb760bbf12841d81844eaa07000000000000000119393b5d3356ec82ab9426ad289816937444871419ff9ac0c139dc8f2ba984460000000000000001078a0865ae0ec2a98213ee3bebbf308f9dc4e7486a905f712d522862447b9224000000000000000113523041f83b69a444ffc11486b8804e0432113a29aa5dbd2c4ccee0006f4647000000000000000101b9b14a4c7e676a385b297025080d9334020fbf833417a3c8bc67d31736892e000000000000000124efd9c91be28ca796d23eb9a89faf2be425c27d1f00140d463543d922b9f3340000000000000001299d8bfb840439667de32ba6fb36f81b1b4bc7770adb5c9183f02f37f81df7d200000000000000013bc70e2409fa351cf74f0e73af63d7a5de628e75be34dc840a1b74c7b2ace148000000000000000126f53060d7f7633ea4cad7ed7b5c49bc2925330ba98376f2af37981b253478d000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000001082c56d5574a7661847006ce6f99e54db01d07eeb58c9e2bab1b5ad25919b7610000000000000001212a8d319f3feaa01a3928cb545d4fa9a24ed1afc2a83161f6ec4224da1e018100000000000000080000000000000020af76b9057c77f932363b606d99db651b8b1831ef0bf12ad3699c390db870c62f0000000000000020f781136eba9b4b02f699f1a647e435c58ea82bfbefbdee2054935086e622fd04000000000000002017261fbb39ec35ceee742646b1e571dd0bab81ba9a7a15a65ddf8df00d172cd70000000000000020c943c3e5ba7150c846e31d58370456768cd8bc0fa02fa85aaa2dd38d775ced9a00000000000000206d759f50e176f04b3ea0db6bdd87c15a024fdbe362820cf284721ea7a27d5369000000000000002052ea78578ef0a2f5430f1b757700ceacd6014c30b7f62f7afd81d5e0782af70c0000000000000020ad4df8e4e74295d6c7c7e754e397355bc558ed7f181b922881f30d4e6939ffe10000000000000020a8b916b7cbab71d0e8ac46a0bf12af901e15cf92ff42e817458e002fdad37cfc00000000000000020cc28cffd0db9bfabc363bc4b942816a04b0e8db72d39936c429eb6418db7ae4379596c7fbdcdcba149cadb4188e66bc50334d30f1b3ca263609c5000b41053a00000000000000020000000000000004000000000000008f0000000000000020d987953986af83240f5ddde87804a97c6b3fbe9f29afefab074710a945e013e00000000000000008000000000000000100000000000000000000000000000020c86386aa341e1dba421375671a9a8f5192c1bfddded6a674d2d65cbb3336315f0000000000000001000000000000000000000000000000204f9c26de38dda3f5bbfda266abb75586201d1c2ad60867d7bacb666ca88b5d0b00000000000000010000000000000000000000000000002048ce486cba8152a427f1d4b63e3da1e1048e1c9c1e1a910d870d08d44230e04c000000000000000100000000000000000000000000000020dace3b45c06eeea02b897e80b314040b28b0be385f111628ac88d85bd3c856e50000000000000001000000000000000100000000000000202f76681d1601cc0f7b29a5c04c2d7b7f866bf654f9d1f5cdba0e7540f6b6f248000000000000000100000000000000010000000000000020e217ab968a64ef14a21486d2de279a2754ebe135d0a8c12c8ac48dabd04916aa00000000000000010000000000000001000000000000002095c761f69bb2a072da8a15f7efefb3a472dc38eacdd077597660a5bccdbe81cc000000000000000100000000000000000000000000000020a9103f0df540375063f5cde80978448a22c47363820655dce851d4cc8e8885290000000000000014000000000000000200000000000000280a57985342906163ebf266d873f14419342e80a47dc7dbad07491b1e028664903cc6ca33755f4bc9b2b3971ed860327a229f8f94b6e07466fa178220ef48ecac265359aecc90e28ba8cd939c65288750f534a712eac21a1f8a0f1b4ec28f5e6a036065ada8b483f9343e407f5e0aed240a8fd47c739da599c842757ff615c62d08dac1ce87aeed47f6e1de877f257fc3fb5a20e19802665cd7966b13110bb51e1e4aa3b378a301c7cc307ba5aa9e115bd04403297244bc49702cb84dd98e2efd34f0261351338177d80dda00ead0485321f6869fe665b5f416261b99a8575b902e13d790d6c1bfbe91d6196793aaeffd75c7bc9b24f5fa058ac810699b99d46112c6c2fab695dff168556859c9cfe764f76db3312ab2bd0c3cc50fa21a4237cb39d839e94a17c35dc258c35a4c826a645b6fbb6aa8c47f0218570c54b449b63b182ba1ac9dc4a30232721d977c3959360706894fd144e332685ac5d5270aaec91d1bb0c446eb3ab59533643e01452eeecb0c6ec24ed94582670e55a3abfe90f23f9a0b9c0673db6c0aa4d4565427ff457eb928a2aa5c22e872673bcbb810d79d2c1cf7243449b5c0cad58fa8261ac467bdc7ee494c4acb5fc1ac055056266d1224ca7de63d7e2ac670cbd380676355870ded78df9b77b1298d156b644c78a4701032aca89a2fa3dbc3c4c971f2ed53ddd5dd6f415b5f4e05589a9d1d717f7e293052a75813fc20f0e55ca60d92d634604345c775745ab2a5e06f6e7790b586de20121605aa4c834f9b42fd4635098103dc25481c283885f0abb3c1083b82bc221465b977954782ee58263fda0c881ab99ea9345eaa514ec8a7aa66846b1ab55f21e48b731ac7e49378ac37b181e8f86aeb6ef4aa6c182659bb098dc54a9b52e50b57ec7393d63bd592487c56424177757dfc0cec8a988146d3872e815421c193230d5c7738e84b80d95eb5592fef5e0b6e972835c93dd41fde2a41d8cab4de3939c1f6cae13467a14785e6896ce3e71067c86cd3d52f79cc67aa742492ac6f191d93f7525ddad11f36b47de4af9d8e6a9dbe0af69abade1ae246b7e7bf30e05f1c905e4b4ec5a21a919d974a67e84baf46c8b5fa323de764c2008a37d57d041028e4055369a4104857c5024a730b73f0f0ee1809890652b05849247a5a6765a4355ddc5d1c7ce64bdc8a8a66954da314884a5607164e5f8de554187249e9ddeb38d206f2f00c100fa1a10ce8874734fc6d191a75fbaeff27958f2e06ff328ae81d3ecd1c66974b64f92bc3fad5b49f513a28379b03349f019286c663c29dc9c00cf9e5fdb27f184de7ad5dccc95007293847ee4c4c1ccff1ef8dae09fbd049440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008f0000000000000020c83d9f2a299d4734a2a61405e72426ae8d1df319c33103ce5e797f7b9317da1800000000000000080000000000000001000000000000000000000000000000205b97a6b7904c849d553e606863c2f28e327d42312fcc39987d6ab091a103939200000000000000010000000000000000000000000000002015eb37790fd17ba2eef99db29ac8b7278c7312fe7f27c3c8f937c11b14ef20ed000000000000000100000000000000000000000000000020b518fae09ce80dd35fadca83fac3eb677ffb97cacc065ff9ba13e84b10f2b29a000000000000000100000000000000000000000000000020aecb3c097cc932083fb1f31a946b4949fa4fa493a3b594ea06f8cd2ef319e96e000000000000000100000000000000010000000000000020a96f7f0dd57d4ed7991de28b7c59cc1dac711e18090584ad65dfdf3d7874fe05000000000000000100000000000000010000000000000020b136fb90a1b482428378a7d6ff5a5fe7606e1ff22b0d095629327047c7906687000000000000000100000000000000010000000000000020f8041f75d274cab16d58d48dca65a8c857f7365cbc6db11b5e162c916fac06030000000000000001000000000000000000000000000000203e059469612e7bb4bf59367e923e7cafee9e3983cbe4f0a03d9a560175c7ddca0000000000000001000000000000000200000000000000022f5d18dc6e7572f3686ea06211419830c4e78b5eee6ae56f01156d9de5bd54711adf2d68a2bb5bff9321d6484cbefc9b7edf189c2fa6534a3e2464354e7845a5000000000000008f00000000000000206dd71d18378fc891c5d45303fe433d1427994cd17f4cdc6dc27a1ad4d1340b5800000000000000080000000000000001000000000000000000000000000000207739e3fb0b272671fb5b14433529744f82b0b0d6664306b78345e74de6b2aa7a000000000000000100000000000000000000000000000020b8e214df6c242e46f13d0415b4c8f01a5e28a12a6da2872f67f7e2adc1eeb169000000000000000100000000000000000000000000000020f1c384151921e0ab131664cf5fb30492f84689412eefd57c6ab9faa735838be3000000000000000100000000000000000000000000000020e685408244adc0ca54a8019409aae7a9ff4625b89b72dae15da72df869b0ebd70000000000000001000000000000000100000000000000204c91c7928e2a8bfd1a74ef2b81451e94115b1ca618d9630395bd7fa1560f477b000000000000000100000000000000010000000000000020eb960d1a48d0da327dce3df0dfaecefd55ddb0ae643048ff083843b74aa9c77f00000000000000010000000000000001000000000000002094d143b233683d0b5e11aab2a8ad04c8d42e77f7958528a99a568c1f087e8ff3000000000000000100000000000000000000000000000020e6d0ca5dfc686714c4cb5060cd9c826bbab7e3b9b3e519a68a9a7a5a926ffebe00000000000000110000000000000002000000000000002238d26bef6fa8c498484fde096ef52eaf14c38511fa164c4b269ef3e728b16ee235ffda424facb7b9ffdc4ece430705181db1d5f5927923355022aae5afb2d06829d22179c158023bf2d136c7a9b0f6fe43fd50bfdbe1841da04fb195532c43411d5ae570525ce782c3923457867b90e94b91be062905345c2396e13b226c615612fc2ef54c2a71d6f835cda8c9f89ba6f30a68e99449e3a2af0a0c0a9f539c2e3fc50e0926c7e7ffa975d16424ea571b828133a9a34ad119e77f63aac0cd8eed1e0ab6166a242a1b4d4adfdb2206635570420f6257d712fe8cf1d3886e9a016204dbf5a7a48e505c5a2c58dc84fd636d19b459b8b820d0db5555be1a58ef4a6211fb7e9b127eb450b9b186ebfa0735f80892fa97fe9f7958b7b97a94a2c47ec52551773173f6f195bc193e12239253c3323b5c4269ba016090144ef9ec81eb822b7858416a18fd2a6cdc0fdad9de5a2725c7d17b56aaaa48be9497f8b07cb29c26bd29d84c4ab9b1fc4b45c55230ea7f7ec87e99d19b0d5397866df824dbc42517853d5f6f0fe5784574f1bc71c18ab6cc99d3ccceee7cdc71a0e1162c2fa8e43662a3df72bfe5f2f5ac1c241af0c14fcb5627c25900926cf28f7f59c32126101d68c7aedcf24e9fca206372e4b4dbedab4da695ca4c8233c050a6bb03143dbc123dfd530e593af85258dffcc27b661eb4ad27cc631d7e6aceb066d1c4da3d6e1d79636481c84e7ce9959210ddf53393bd3ffa2d65599dc5b276a770b4c921d62c0a3341d661a3d1e50bb7d47f1cbade687e11a2e5bafa5e990aff7a39a15038270e684da64d8a171fa58b890b3543d1d891af6de7cfd8ad7d2066bc66447334066618b0d21f6e296a9932cf28a4318ca0f1a37d27304badcad259286fb23d93052102f04b760a404a7500fc779cb2c92575d78b1fa0ebee894d06e5f74772113c08c5af3722d3d2b3e83c715b9d4379d0045e3d7fe664cdfd108ec4319e1c9c1dbb59b3f932cd50d233161b013d4556c9c48f9f9109626e0de97111541cedd12c69ea422e9d5bae1710a89ac6f7caf6e14347fa68941b36e0b06663a6e3061317f0abcf98483730b44d500e618bd7e3526852ae1b8a16bd65dd67350ff267f0086356c61f57a4dce96e9b6c99043183441a6305ac6e377b0304d7cbaadcbd3d257cff424615728985528b6882ba6e91125421de6ff1f86d10a41254a40d969d080296e89fb7b58c466b6e2d490789a036b595521a5b55b0d1583d2fd0c3c9151c1e6d484637c7448115bc898e917dac83133a865f2ab6270b8d719b1c1d53c627f5b9c9a0fb84ab1efee323890d4026e5ddc189e3e409208154d89b41dc1c6f20d7de3a4fc5de6144170f0212e57c565f4ff2c68d77118516b24d611b6c635b2ab6c545f30c1230db62b43645c56964e8b6b56b47b52d54242ebd565342375412f0b6ed59e8186ac89bd96a09a613dacd186baea608418a4ee053b9933db9a93e9540b7d929bd5ac9f70840f97bff82d5d4686b0d6ed86f2c79151f133e8f67000000000000008f0000000000000020185ecb7ad8b09d2b74db5d84f6e58b9b8ed9e8bcfd9e3966c56a1beed6e771bb00000000000000080000000000000001000000000000000000000000000000203a860dc48c836db5b9590e451d7be926d846dc4205d2e36230ca09afa7253cbd000000000000000100000000000000000000000000000020481d050f04fd57e16def7b9dc8d7e1f18cca884aaa818eed76d9483264c2951b0000000000000001000000000000000000000000000000207475e0f49d580985dcdc396b34dcc9630996c3c61d9904b7e9d670fa246f0b3c000000000000000100000000000000000000000000000020941ef17d926f566e25761d9cf7738d83107b26b29e1a7c136f3fc493a960143100000000000000010000000000000001000000000000002006bcd68698123e511a8660d27edf44b3bd03afa1f584198c0d441025017895400000000000000001000000000000000100000000000000208928962dd0a2a2f196c579708750f44df36b42ccc291131d26b7e2e4ca999137000000000000000100000000000000010000000000000020d717a48d6274296f9e62dcf37f1bde6ef06aa003302664ca89b0749af0367514000000000000000100000000000000000000000000000020c4165ab9f4005ddddebf13ba29f3e19ed64a8062c3629e6630e10bf03b9a1a260000000000000057000000000000000200000000000000ae09452fa01fd723f25bf59d17f62b97faa50d0f0f2a33892db71fb1bc73d99ec236bad05fe028dc0da40a62e809d468057d3989ecdf196fede20d7f308c26613f2e59ee209f33b3bbcbcc1177ced9f7e539414b4bd301ade4939e78ae434019ca11a611df60cc4c443433ee883126081ae9054db0364b4b37058eb83ebcbfe63727c1a6a31c0282aafafc57570a41d779b772ad8703217a241690c8a0504080ef183e595ce3fd7d550503a8a8f5be28866ad3eb75062b7ef7829c684cafbf7f1206c8412f8c0c8d56e6edb4b3334935602e6998aef3c07761a54c585a914284a83937bed073f372a919124b4cccb6ca9ff3dd004d158c81b9f3e0d8926ebd7b5921e945edbc3ec2b282a48780006e0ae0e80ffb6ac2c254e83a7db9c4d64c97481e16ba1243c13d4d7d5b787fff91f51f3a369d91468aa4335eaf772829b368b9298e5da4ad39cd7c8d36a5800226366443c2b71dbb31b651f21a3efe2f7ef4661671a25b52c6328372c95a7ffdd9c99bde83e1de4e1b42c9a712f1eed0810b9b0fc7d4376221036ec2113b800abf0ff4ebf9c8a08c11a446eefba82fed7ac5fb30382bc89ddefc913deec47ff540f00b364cd05b7d3b54d4aa3188bd12853a060ee72514eaa51129ca56298035bb4fc8799a5226b30b3c4711bd1802a365dde63118daeb155aeed635a9d67fca44b037a8ac46d55641bcd4877018ea5c9a221b0a83b968953955d0f3aecf810ca88eea3dbd01c575eb3447bf84472030fd557d357c46976ac6aa2f0c51307ef3577115e48997369361c4d3d9a8e9cccf02aa8434929f0aea1ead14c26a0d853f4aca9334b108db4d980566bd9563a0f4f2ab710b6d60f515e152eb3d95f27ac0b5356ced959020bbb4f3b4db97cd4c0b0d549006dd1b3692996167cc12439a3c75f4df7e5ac8585ec436934f362e70c8bd59313922e4c96d669e9833edbc65c38a0b20a3ebd0a3aa88c28849f7027c3742a6d022518810dcfee706fc5b52032e4dc85d77c5e9b9d9d510e08c0ee833ebb2bdf51dae77ef230118f903a4adfcd1b237a2aa80af422f77e83b0d1e48b9144d420c2b97a85450fa8322edc89a0fe784e9d312505ea92e8f622b89f027299a7db5c7146857abaf057cdd123765f0187b162d0ff63a52dabd96f00f3d09c365824a3a19f649a594e48faea4eb024f8598911ef4be0e59cce5ff86e629310904748ce02609b65a6b1b70515b14fdb07a676ee12d888aa23c66f994b303ffe3fb8b732101cf703be876ce6938970b8d9bfad59a832915c8ede40b6b4c7393531646c05e3e308fc417893196c768f47264052a659f1d83331b68edb04cb99d99e9b93fa3090d312b8a52080e1af339c40be62c048fcd6ceca57439187e41e09f6f61c1d636f2ced475adf7f1e50cc63bf419d3fb92792c0f63d8c0031aeb504d909e3e2b2d41f5d9b39a284686c020d43b7edc16cf03209f3b451d7a7749631d2ce8c92e12be0a264c65d7b9793fdf2bc48123e95343785cce07dba121e3cdcfd31736d32249cd408202c960a1c0a425297a4c71a43bd8280c72a81188e75ccae08bede31db632bf7dfd369f5e3f5bdad685b38e7e0ac0d3fcda510a1045d4221f74121e2b7102428a0deee328c334b9cf637e37f09e06d02ba356207a2a6e1c62bba56d148efdbd75f2111cd73ccb46309c81c831a8922bdda9a2fb1f02c2d09d445a9419350b4cb245aa6fcbd007a10cf177174c42571cbe49c34f974c93c6edaa3b1e26caf4b34dba5590342ff85ef30e88e8d60441df4b0335cc01e09d261255c4e33e09387f7b5c542efb10262540b753745b051a93ae23d7725b51b1f5a453279501f6c78084a3abd104efd9dabf48ac8bc7417e685b2921a93ddb7ef75bacd86c362e1a7d68cda4eae750beba4394a1453dff20f2417f50cd63e3b618359fc5e509d1e58297325b1518af4145bc6b5ebae4477809c7cda84e35497ad4ca603a1c0ee684730c0438968493b9a351e72659ace140cb2248af948ebdcac50c1edd7531197b8cf3fbc7697b6c465cae18d9a675655830e70449870a6f6627f3e1228c0a80963f3c151af096e2a0309983bfc03e1faafba21e74cb3087c4ec3c9a5348357f69c0c3eae50f691d5fcf667c403fe426ee00672e845068a56c00c365acb93482ef3c2c6986b2f26d20f2ff92bec1369e56ea2a9847f7f2a6d89d2f03a0680b7d10c3d396794d0d92df0d006d413eeba84211deb4b123a686584fd0fc5f9909452fa01fd723f25bf59d17f62b97faa50d0f0f2a33892db71fb1bc73d99ec236bad05fe028dc0da40a62e809d468057d3989ecdf196fede20d7f308c26613f2e59ee209f33b3bbcbcc1177ced9f7e539414b4bd301ade4939e78ae434019ca11a611df60cc4c443433ee883126081ae9054db0364b4b37058eb83ebcbfe63727c1a6a31c0282aafafc57570a41d779b772ad8703217a241690c8a0504080ef183e595ce3fd7d550503a8a8f5be28866ad3eb75062b7ef7829c684cafbf7f1206c8412f8c0c8d56e6edb4b3334935602e6998aef3c07761a54c585a914284a83937bed073f372a919124b4cccb6ca9ff3dd004d158c81b9f3e0d8926ebd7b5921e945edbc3ec2b282a48780006e0ae0e80ffb6ac2c254e83a7db9c4d64c97481e16ba1243c13d4d7d5b787fff91f51f3a369d91468aa4335eaf772829b368b9298e5da4ad39cd7c8d36a5800226366443c2b71dbb31b651f21a3efe2f7ef4661671a25b52c6328372c95a7ffdd9c99bde83e1de4e1b42c9a712f1eed0810b9b0fc7d4376221036ec2113b800abf0ff4ebf9c8a08c11a446eefba82fed7ac5fb30382bc89ddefc913deec47ff540f00b364cd05b7d3b54d4aa3188bd12853a060ee72514eaa51129ca56298035bb4fc8799a5226b30b3c4711bd1802a365dde63118daeb155aeed635a9d67fca44b037a8ac46d55641bcd4877018ea5c9a221b0a83b968953955d0f3aecf810ca88eea3dbd01c575eb3447bf84472030fd557d357c46976ac6aa2f0c51307ef3577115e48997369361c4d3d9a8e9cccf02aa8434929f0aea1ead14c26a0d853f4aca9334b108db4d980566bd9563a0f4f2ab710b6d60f515e152eb3d95f27ac0b5356ced959020bbb4f3b4db97cd4c0b0d549006dd1b3692996167cc12439a3c75f4df7e5ac8585ec436934f362e70c8bd59313922e4c96d669e9833edbc65c38a0b20a3ebd0a3aa88c28849f7027c3742a6d022518810dcfee706fc5b52032e4dc85d77c5e9b9d9d510e08c0ee833ebb2bdf51dae77ef230118f903a4adfcd1b237a2aa80af422f77e83b0d1e48b9144d420c2b97a85450fa8322edc89a0fe784e9d312505ea92e8f622b89f027299a7db5c7146857abaf057cdd123765f0187b162d0ff63a52dabd96f00f3d09c365824a3a19f649a594e48faea4eb024f8598911ef4be0e59cce5ff86e629310904748ce02609b65a6b1b70515b14fdb07a676ee12d888aa23c66f994b303ffe3fb8b732101cf703be876ce6938970b8d9bfad59a832915c8ede40b6b4c7393531646c05e3e308fc417893196c768f47264052a659f1d83331b68edb04cb99d99e9b93fa3090d312b8a52080e1af339c40be62c048fcd6ceca57439187e41e09f6f61c1d636f2ced475adf7f1e50cc63bf419d3fb92792c0f63d8c0031aeb504d909e3e2b2d41f5d9b39a284686c020d43b7edc16cf03209f3b451d7a7749631d2ce8c92e12be0a264c65d7b9793fdf2bc48123e95343785cce07dba121e3cdcfd31736d32249cd408202c960a1c0a425297a4c71a43bd8280c72a81188e75ccae08bede31db632bf7dfd369f5e3f5bdad685b38e7e0ac0d3fcda510a1045d4221f74121e2b7102428a0deee328c334b9cf637e37f09e06d02ba356207a2a6e1c62bba56d148efdbd75f2111cd73ccb46309c81c831a8922bdda9a2fb1f02c2d09d445a9419350b4cb245aa6fcbd007a10cf177174c42571cbe49c34f974c93c6edaa3b1e26caf4b34dba5590342ff85ef30e88e8d60441df4b0335cc01e09d261255c4e33e09387f7b5c542efb10262540b753745b051a93ae23d7725b51b1f5a453279501f6c78084a3abd104efd9dabf48ac8bc7417e685b2921a93ddb7ef75bacd86c362e1a7d68cda4eae750beba4394a1453dff20f2417f50cd63e3b618359fc5e509d1e58297325b1518af4145bc6b5ebae4477809c7cda84e35497ad4ca603a1c0ee684730c0438968493b9a351e72659ace140cb2248af948ebdcac50c1edd7531197b8cf3fbc7697b6c465cae18d9a675655830e70449870a6f6627f3e1228c0a80963f3c151af096e2a0309983bfc03e1faafba21e74cb3087c4ec3c9a5348357f69c0c3eae50f691d5fcf667c403fe426ee00672e845068a56c00c365acb93482ef3c2c6986b2f26d20f2ff92bec1369e56ea2a9847f7f2a6d89d2f03a0680b7d10c3d396794d0d92df0d006d413eeba84211deb4b123a686584fd0fc5f99000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000008f0000000000000020af76b9057c77f932363b606d99db651b8b1831ef0bf12ad3699c390db870c62f0000000000000008000000000000000100000000000000000000000000000020f8ab5faf377e86cd4493115d9588c48472b375f9078796a4b1fac19c434d4ef00000000000000001000000000000000000000000000000201ddaaf710126fd028ec5fbc238ad59e77230b995efe2dffc9631f21dcda11f48000000000000000100000000000000000000000000000020574b0b290efc6fb5462970bbc45d9062eaa6852ba89a3f4abc58b89fbf33d3be000000000000000100000000000000000000000000000020378a5d8718145bff89d0c78f0a26b652d9c7bfbb09f060956250d2e4682112090000000000000001000000000000000100000000000000204a4c302276c0ad3baf210ac19a56541fe79d22874224d2a9732ff2797ff883c2000000000000000100000000000000010000000000000020faa5b6ae83c3fd00ca2d29f836595aeae7e3d0cbcc8a52b3e2fc069c1b332969000000000000000100000000000000010000000000000020afcd5fd67f64d84c5110ef0ce08ef744993b303fb3dc88c75297d2a5dae51848000000000000000100000000000000000000000000000020a701e28ae254c7fac027555f89e7b960271d9f458575e59d0a453bfe6b57667200000000000000023b76102993b58a2c411013d0e6cf91fce7b07c307ae7f2d22c42f55267f181c1213b521fcc565a33fb8ce1171ab2fc54cd04b39b029087a0097f8e97be4c0fd7000000000000000f0000000000000020f781136eba9b4b02f699f1a647e435c58ea82bfbefbdee2054935086e622fd040000000000000007000000000000000100000000000000000000000000000020a68a7139e31c8a174c2c224e508ae18529f0fb5464e14dd00ae1498f71fac45d00000000000000010000000000000000000000000000002045dcf3b9526c0a7dec4ccc17020fb477e120e3741e85b026a1f0391d19228b1f0000000000000001000000000000000000000000000000206d9e10f742dc7b5b1c7b537ef78bfa3cf020421e7119fa2d5bf2d57acbe5bd3d000000000000000100000000000000000000000000000020aca5d92cbe6c2d14b549fd5dc91779caa89108f68d5d4c71fe1aa099eebb5950000000000000000100000000000000010000000000000020afa7a75798a1e2c48780f87ef3a56f59fd737e49fcaa39242682c20d72d4c1d00000000000000001000000000000000100000000000000208c8b97e27dfd864199d5f4105c31bb8e1769282dd2acc89f4a1414617eb5a053000000000000000100000000000000010000000000000020558fe936ee685288d941dc83a9a37bba94131d179fed815b5b48d2ec41aa912900000000000000023dad01a9d1bbe4e2514f2bce7701d2a6ed20ef461708669d4c754a212e647e0e017fa238a95c09041fb8eaa5414f6b1e734c614eb75bf41856a19a93536a784a000000000000000f000000000000002017261fbb39ec35ceee742646b1e571dd0bab81ba9a7a15a65ddf8df00d172cd70000000000000006000000000000000100000000000000000000000000000020a9f5e9d53ea368a24ed6ea3a2c4a7114b89f6263b13242d3fdf9e9fb04ba1f09000000000000000100000000000000000000000000000020b94f07837b68a42706d386433b00b6065e96dea8088d3f4da42ccb7ae44791c7000000000000000100000000000000000000000000000020f5fab072ddad222e3f3a5492a0b5979842a5cba26d93f851a127072952d7d17e0000000000000001000000000000000000000000000000202114f55cfd2447aaf694e332e44ea57c66cb7549301ac7695aa7e263bd9edcfa000000000000000100000000000000010000000000000020739ced907635c3c84363929f0af61f0dafa13cf0c572f7595663faeaf19209270000000000000001000000000000000100000000000000207bd6f0815fe108516ddfa5202d3d4835ee1e422673d5052b3ecb1af2fc03cbca0000000000000002071e1ab05f98deb8fc6ad209ce706105427aeea160d368eca1eb4c7a6f04d2802ff6000fcf3b127cf30c72ca71bc1b8930cf4efd4bbe1e4c7a7072dcd832fda3000000000000000f0000000000000020c943c3e5ba7150c846e31d58370456768cd8bc0fa02fa85aaa2dd38d775ced9a0000000000000005000000000000000100000000000000000000000000000020fdadf50d9e4f6bd9db55039509d39b696b794068cd60c2006fb9f88bf3df9e4a0000000000000001000000000000000000000000000000203c0ecf2a9046f6304900ee6cfd69fbf0d9b216fbc271d7d99674655f188c05fd000000000000000100000000000000000000000000000020e9ef5cf8c4e7f84829120539de1ec49532f3a2f43e22949983096202fd14819d0000000000000001000000000000000000000000000000203d111dc383e2d9787f30e9154c06a0e8d348c8326635c747c62479b477e3ed940000000000000001000000000000000100000000000000207e820e33747503852de29a5b69f7b3814b934438007633c5d886b1dbe95b908b00000000000000020e8b1718199c8b16f6ea0fa7b6967a0db2a2f0aed52f066afa0713b90ba755580e754f2f6bc94f62dfaeddeb0eb5487fa363e9a985b195354d23bda7820c59ea000000000000000f00000000000000206d759f50e176f04b3ea0db6bdd87c15a024fdbe362820cf284721ea7a27d53690000000000000004000000000000000100000000000000000000000000000020015062427e8eef15dfe6de8eb05e591e8e8b1b594a4be85178c4164900e17975000000000000000100000000000000000000000000000020acfd44c2bfb08ba0e291ca1387d9bb3a47ab68d632cc4556ae6997450c5e7a20000000000000000100000000000000000000000000000020ce5582b2c35c9553b52013b0576624ec325318c2bc36b38395cbe10ca48d340c0000000000000001000000000000000000000000000000209a804787a51e13ee49cac2a7e7fb57613f09d5aeb32ca7946986aa0b5aeb48b600000000000000021ef07bc18b4e5117508ba8b779968195f39f4977ab1984e65f5b87f35b2fe38f0628ae7bc001154114af407c9bebaba0a8c474ce02041a16e3944cc39476f9330000000000000007000000000000002052ea78578ef0a2f5430f1b757700ceacd6014c30b7f62f7afd81d5e0782af70c0000000000000003000000000000000100000000000000000000000000000020ccec0ba48767a26ec96c585f1ff346e9c78cb7df57421a213c74ebd9e2ac0a200000000000000001000000000000000000000000000000202db4fd8282687a288982616d4d838781b4d5b80740efca16e39e5673501442970000000000000001000000000000000000000000000000205102e254cff97fae653739a6ce30339b05512899a881586532663fef76fe344f0000000000000002376cee8a4f2ed24a853b704a91ac5b6a0afec2370fb8e0b46e071375f0143b801c74c5be864abc7089075586066607b0a631733724b072674eb929c25d6a1d3100000000000000030000000000000020ad4df8e4e74295d6c7c7e754e397355bc558ed7f181b922881f30d4e6939ffe1000000000000000200000000000000010000000000000000000000000000002085cf094ff17bc3b9b78906919180f6307543845548a64cf3d31c0086e81196b1000000000000000100000000000000000000000000000020ec5cea7ed9234091f279be3e5f3336b068d4508e63e5e5e94fc6dcd6bf604657000000000000000233dfbdf9e58d01b143fe0d5ce217edc7ebbceb4ab3bed556600b59d84c7443813d182ee13e91fffb431ae5824d71fe63d6d3176270dc82d77732361cb0d8176700000000000000010000000000000020a8b916b7cbab71d0e8ac46a0bf12af901e15cf92ff42e817458e002fdad37cfc000000000000000100000000000000010000000000000000000000000000002064ccd440d20046fc058491b48c38663107dd0f9ad969303c5192296fe0ea66950000000000000002152cf637d4febf40a7998e10a0b41aadd6c434a68a6cc82c274d57510d9a75ab045823c7ccb878b4d0d2e978d1d0e826329d9d105b3a6a4161067f77241c801d000000000000000400000000000000290000000000000020d987953986af83240f5ddde87804a97c6b3fbe9f29afefab074710a945e013e000000000000000080000000000000001000000000000000000000000000000204594218a0255697cdf4168f695474011c328745217a4fbb94730c6f86e2da2ed0000000000000001000000000000000100000000000000207d6df90ca65ae2fb7bf434acd0aef9cceb3a4bce75d5717612f5fb9c541e76060000000000000001000000000000000100000000000000207dc1185ad3013a588a006b43ffcad0f7ab3deae0092242d29ea85badf14da94f00000000000000010000000000000000000000000000002068d3dce559d3bab0f4e448d30def9a1f2e03b82d82d2f8abb6e4cb39a657205c0000000000000001000000000000000100000000000000209bd2f9d05e06f462d48c1552cd82868487cca2c02833b5fe42590ac07dc91af70000000000000001000000000000000000000000000000205a0f56b938227ba1af01ad30633cf1776580195c9e7322982fc11937f712940e0000000000000001000000000000000100000000000000206c745c5e73642693c105fd5d818c6b0c649043184575723e4d1832f179d413dd000000000000000100000000000000010000000000000020778d02026362d618bfc6d8c2dbcae031d5a619a28176a8169a9bf4f9a2d0d1c2000000000000001400000000000000020000000000000028090355f731c1f000556b29c12534ff35ee8a2be38b20cc78e83e4475f2d5bfd81076a8c55733b9bd538e99778b13dbd06d0eb765e197a61f3dbef3b6e4fada4302414b14bc0d2a4c4c37898db939bcd1a4ec007bf856e77ee03cb872facd0bb02465e3cb25a73941a4eb37cedeb42f16fabf59917d954f095f02d33ba5b7919a087cdf263719f9bf9bab0de99942d5df75559191f1fd57d7fb080533d3a4bc0d19390bbbc16aaf28338bf77caa351ea40d9f33562ac9afd36583655dc9d2296511af4173fd7c88f4ab1df57d3cd8b4f5da40d3493c95c31b4a272252a3e03cd3034420159d8a16268e7dde221432d46bcca8a1c742d46156cb0df75c031623eb3f9ab251e8350d2aa5a2230b73098ac5f6ec392305adc1fd08c0abd5ea10cac42d21de452c9a45a38d309a0beb06ae7e41b77ea7b4ef262e9393bda53650248a21a47ad616c2ab39c437ec93b38ae345cdef71ca1556dc0fa1960a6eda51f7eb1c13115586f2b30416ab3f40cda134e7ea7073ce339dcd5a0a3f6c3ed9aa772536757c50fb9a228b5a59173ad8b4ff3e108794ace6f97a283cb43c1ffbfea6a628c5ee5339dde2e3fe217a6227fbb1dd4adfd8783d2f3dc786188e9b1e9b73d803a6811a664ce78489f1ea793b4710a746f288e4cfb5f06eb9504a829cba44a3209d4f1e695b281c2759aaf198ffdc7cc57139ce05de0f1560708d87d0938ea92461f0a6346d3b7fc60121e47f87eecb29e81fa7058bf49f3539ac40685c1b8319db25b8e0b45d29509df587d22c1d6fa58d77413c7b55a18392f08942a823ec21eca576c6bd3d97aa05ec4d3c46da01b15c55fc6461abb148534d374d94648b00a0984e397240f54d2a48acf1a513057250964642f24df85bc192473e774ff9135cdbba796f5f2437d7013517e3e8458b0581e620e6ebf13fd1f96faa143f263875c34d956a2cb1b1daf41a390e26ddf105a5d69643ae5362fbfaa2d7e0ea5430b5179aaf86e87aa652af5daa47ecb0132b43b24f05b8ee94ec2c2e87ac769708b655dcf88b94ef060b078d78b24b89e23fcd6f27e7c0f84997457045a44cd2104b5ff5a93ff0d010587168cf379d4c352637f9514ce4daf3a17681cc03852a1117fb1527157c92874bef4c05e2d3653f2bb4ac2a62b6e9e59b32ea58f56565004acf862042791628ef2b590411cb3a6c42b2fc96b5f4797f71d7fe1e3becc23b0e3a51775540a9d43ea8dda3caca99764e713a803e920983cfda47a15b5a881056cfc65f47bc8cc7f5d2b1e68b270e733c9530fbc804cf402c2c2915cae0a620b9cb387ed9cf17cfcaacd8d65ea94f8d370e7131667cec354ac76780126d25000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000290000000000000020c83d9f2a299d4734a2a61405e72426ae8d1df319c33103ce5e797f7b9317da180000000000000008000000000000000100000000000000000000000000000020cf73d95b7f5cc41dd0f0fd163201d1d08f84019d9df5354049276d6e20a0c6250000000000000001000000000000000100000000000000206986115aa04cbde8cf08de0526c045f8008020d8b16e7b08b0de5db38c8b357f000000000000000100000000000000010000000000000020a55527e020a70c3b7a831ef737aa578f167ad9a20b96ec50c904e2544fcdcd380000000000000001000000000000000000000000000000208463539e99acf61dc053835f68adcdf73b590acd68cb4935bf8bb321c304b72300000000000000010000000000000001000000000000002075653d98a99f9bb485cca6f6ef654963cd40352c8392f34c66c228a753ccc6d900000000000000010000000000000000000000000000002099ae005769d7370afdfffef0212ab1b12e1abb9886866b2c447f9f9ba17c5f74000000000000000100000000000000010000000000000020a7bb4ca9c1cfa578c95ac0fc36a0712fb7f71b8da23a068da85701254806476d0000000000000001000000000000000100000000000000206348a0be4adb89a2ae7f2ce707507fb267b3b5c289f86dd067d2d0515712308c0000000000000001000000000000000200000000000000021ed60dc4573560de99db5029deaee6ad5a9b2fd381a45d669518f762b8e1042d04fdd62626ca2c59b94f5ecfef39355ee79c4f8d38f8c0b8d83a2fc414a494cd000000000000002900000000000000206dd71d18378fc891c5d45303fe433d1427994cd17f4cdc6dc27a1ad4d1340b58000000000000000800000000000000010000000000000000000000000000002035cae41dee38e0c3e6349cdc0c996293b1a55b52e4cd0fb7de2fbced6d092ded0000000000000001000000000000000100000000000000200152f11984a1155d561d2c703f14a1a38ca35cd3bc3a6ccc4a85075d43432d5f000000000000000100000000000000010000000000000020aa4225f168c3a7e148d62d11ba22f5c057a26d0bdeba9e2a7cde7956dac776d700000000000000010000000000000000000000000000002075d7bfed40460d2cd2272027b340103cedc5ba231dc9a75f45fac4188d08e4740000000000000001000000000000000100000000000000208db796832090ccafa978d32f682f94ac74a4bca96e7b5a48950a2449c570e4e9000000000000000100000000000000000000000000000020d229f3927a118fd3650fe45c106ab8ee2c5a2b9f725ed7fb2c3b26ddfac2da11000000000000000100000000000000010000000000000020cf02cdd971ea8f205fb3ae3e37a27415c48d086261308da19113dd856d66bf80000000000000000100000000000000010000000000000020e80e640890bd71047455ee74d8e83b3467692b84c6d1cd915030a69eec36f702000000000000001100000000000000020000000000000022342ef11b8ea4fcb9677ce345fcc0701f3704d303fb0f4e08759b4d6cc63b03f527b4ae356e7e0e8f79d19f1f18e0f11197fd80150f5b36cb1f54e7d5f9b49e3223a2ef04dbd33203fc81a0c8e38ed261a4dd2e6362b40c2fbd1843b78b561542149f516fa747f9df45baa6e5f6944e083fd15925fda18e41fdb9d290bac032e3341032cd176ae63eee550a3b8d91be7d27b711978c00350354e5cb25e9c40b84232cf356a7285d2c3c87f299652b9d02a799981c66e34d7764bce1b0c4dfd515100f8aceee59e4c921e4812c61b31b4a60bae026f1347fcc5ecfb92ffdb369912311e9ed9f90261647dcdbdc0600c5b13a348f7298e9412eb210fb314786c6d9009726a4fe52efa66b1a4e38ee96b28f4b855e64e4a2a89fb1145a2d08ce6b961cab79577f20066b7c0d85163927ff1de215e91c757a97463a0a943dc30484dd0e35458e30ece75dd5655dc26e4444613cacb11fa94ce2a0c21cc789fe2374721e5f1356dc5cd64c2258eaa256a247d8d91808d6e907e2b77179eb875c716e810dd180c3bc49b0c4b819a716fce9361518dd9a40c35c41a214a0022249b8ed212f4bacd2cfbf2b9739266c19ea9d813fc7bf6caf23fdd5570fa8b3fa7f43fc751877139c69023f3be7ab8db5168eac4b08e3673ce37ba692c8eda7cb08eacb6815e1eb04d6cbc5392e11584abee1ad763a31cb63c18939107eb839ec26e3a3e12ad0720204e0bc6b2d9f6b8dfdc4f65254bc3ef0c3b4216ccad0d63f0c3d801e3098d80799fccec487b29f5e113bfe6a90adb7f42cdced2c1e244a016f0b14ae2cc2765c2920680b9f84e13c31bc1b44b16f0a32dd8fa41b62c9d4a14c16d6010fde6ae0403c267f00f6eaf644514d094aa19d78b9f2e40a5ad7905256a67b130b9b6ee9ee4603f935412a91c358221fe0aed53aa8d8914ea9641b02d2aef93a304f684ad27073611337c49be11033e492a0d52ef91831dd2f5f7e9dffae8df22bf7577f55658ab1fbeb8d02303da5865672c6f8409f8dfd27e9669a51966e5215a471b99137b0cfa23ca42477635255c64686c230e35192932e04c73bbf3cd0368157fc51c75478681144644a2b4307ae315d9d7f06d9b3732be440adc515e33bee80c3d2df6ef612cd7ca14e6683190d395aeb733e14987687a6eb9d2534e518d3cdc6626ab4bc383578401f330429ed2d2d0f34d69430b6e765814fdbede32ee2146953fd0b6e3c8e4583c27940777745cd25ad21332137e8ed31cd2c9ebf23c4ad338468c19be6441d142f3b3867d1464ec953c6c63fa55a5da209307ac21dcb5d5bda5ec3e1859be2c2fe714764bf0e83a8f364ffb8f67875120aceb86819151da0417e1f2af2d6d1260bfc219c912dc614a2ee1078e2bb2ec7d53fb17304ed7cacdd99ac36d10576e1e302b9b97abf73bde3adab89d912a6804c22cfe21d1ca20b20afdefbca6655551fc632f36a4afb7ef0ed0523e838a9abcb2624673a9f713243f9a47fe7900edd7b2e1d073abd93d92d0d2e143857bec2507b905300000000000000290000000000000020185ecb7ad8b09d2b74db5d84f6e58b9b8ed9e8bcfd9e3966c56a1beed6e771bb000000000000000800000000000000010000000000000000000000000000002022b574e36d15656da41f3f3402a16a1cec866b7794e51c3241e0445e11bf80db000000000000000100000000000000010000000000000020d0a629ab214342d68d419e3ffc6bd7f0bce4a0b02eedbaeab022b20af39980ce0000000000000001000000000000000100000000000000207437f1112fff1a9100c27cb2cf641d2ff411881839a23b23398f344db305831d000000000000000100000000000000000000000000000020683be866c8a453e0a32281e89cda8e86881df7ad0cf2c6af28870fc19afd99300000000000000001000000000000000100000000000000200bb8bbb4384040b1694b06d1788d4451f54b6115e07267d0c37dcc94d7c57eb20000000000000001000000000000000000000000000000206faa29b74d583928784f77e414c15dcbab545dc62ffe8d0b1bcf7d903302877a0000000000000001000000000000000100000000000000204ff53322ebe50686b221a07b20d9765b98711ce9594cd52aadab191860b40766000000000000000100000000000000010000000000000020ac21ff28b032fa1ea86518ec8118a0d499d3406706aae9718010ff72125928b10000000000000057000000000000000200000000000000ae3bd8e314163d33f423433729fcf2ba354b069c5e49da006bd92abb2999c7a02304271cebe9c2cc0bdcbcc8d6030d45cad73ffc9dbf72f8afc00275c366385fde2b3c6f646f3203c4b05013d1f0bda309ee06a9e74c0e1dacd920e41c00e620ab14c3909b90cdfc3b4fafec2e0f425cf6343fef14bd3edb6ec00c4cd0ff19df56182e2cf62bfa12d771906319b3b42f313f4d8690605fa90d721ce1c5047ea35427d1d309d405ed288e6f9ce64c4bd0cee2f9126ba8ed500e27104f27fb815cad38e6e0cedbe25e3537d1ef808284ebf61a3d07d5d8915427a16337ec167930a307191f31241da1cac82e107f7d7b140a0809912630bba4f3f7c9f900e986cf5e1c82640a4b6bd70a1719ad828c989bcdfa16c33d15a2c057c23b53e8705df32b237d9bf5b49428f5e8e6527d73676432282fd5bef3aa38c3d6f1dd048fa20cd60e8bf433791b33327380638cbefb0b059de49e395993cf7f98ce41b031d5bfd531740bcc86e4cccd8c7f9c734104f4fa8461fac2afb9299c005eef3cce2a402c08bbc5015d87fffc4181f1bfbae7371bf3307e22b696146262da1783f92cbf2837443afea2780003be7e0e404518c8e42f161ad952b6e4b93653196906d340d92baad906d3a7ffed4789b8bea684138bbff276ad90ee65ebee427593dddfbbc8145526f92c580012b8764741597bec746254224e785e932faaeabb59222044391a563d222247ffa265b09bb9409461ba58e8866fb8c11248dbc4b91c555eaae525a9c2ddddb8005d9a4f6446bf6b9e45c95e128c508be6d2bd6877d0aaa1551c03af31aaab67fe2bfc730a9e42e5e8a377fd6e36892b6935187d3bb3aad956773c50ce55549801d4038cf561bd1a175caa492ac580218fe680aff5395526a98a126bf8555907f6dbee3f35174e7d8b3157f32710add90e097a722a82563eb0532d9407aaa6f8092411c0cae8b18274ceca5371eb5b73eb121ebb066aa9c14fae1c1bd9aabd27d24ba73c09748873b7f695792a575bf04d13cb0da39eaf39719e23e4265542d82db458c3f68b778c48098ccd6ea4ad5cac07ce1f8d4e50c68e630c8b4055b1c71b7a442c2f46aa4297d0a6d0a1bcb9178f2bc4e9d03f6c1f38143374bfaa4e38e485bbd3d0b955bd682f7b75f73f503569efd44360ad93e0c7ed3eb841ac78e3896354dcec61534cf713421328af9d75cbdad891113d1c9c18640147be53871c769cab23139eacb308ece033704c6bd72d40c09c1fafe363e79d3999485e5c71aef0a8509de6a080d35fc145677dee1916d7d620927d8f0c79f00666b7a1a38e510f57af62195f7f2ca06101317e1b33e243c30c9e6f70f386111ffe69d7ce386ab349931581228420de3d40a18581498dc8c9ee18bfcb3e61ac2001962831c7954cb66cea7edd7bdf21e505f77688036b52cf3f182d34c19e551ff81137071a15806fdf6b85ac94a456edb5f5a373d5d2b4bf4c19e4f837e85a2007eec8f8e5ea7f9020947a536b5ba93490a35895772666d9e1170807c817a71fd8561323826b822f5d199c5ee735b260009a3930932b508a221f9ed91789c02027a9ecdc7d947dd0a2e663a118ca4dc245fec2d8b9cdcb0f0b114e26e876411f39ae5fb18c198aecd1800dda840c7b9b75d125e045e65b80503c403d75b0be20c651a04e73e675132e7ff2257bf38486d0c7d6290712c018dcf4acc28a4f431c2067de77bc7fb6a017804544943e69c4bfe3c54ec38d924f36cb67334c73b423df9821884380495fe87fbabb6bc1965d86b536ba896b8949f66585ccb38c4d0ca2075856ae7e912075815a56e53810933240e27737d1a459b7972a007e4282335df8a7a951816edf8a7ea5a91ac7ef8f145819921527773f7599c2ff81bd7f3f2a24b9b16878d5a24b86c3b27a1852dffb446c54171835c095f3d202774c8a00d5db464e97872a5db4793c4d85e7ad424b548fb535e0e5d8973d1afd88b3773bd2b7a0770a5c2c2b79a1d27c62799dd6cdf22d7f3f949e5e38ff660c547eae042d485f88f5a3d3d4865e2d839d86624b78a6ce8a0d647d3af43186f3ab81532b1d96225333ccdcd960291c6dec6014a8eb56f3570a02a97268394a3da6796214e269ddaccc3323269fd6e392139feb795b4208b242f67226c4f7a2c259869f1793eeaba00300503ee0cd8e259de066e5c4e7cc974b21fc70818bac34405ee7286c11545ffcffafc11f3271da621f993c81b12f7201d71f28aba540cbbfa11a3bd8e314163d33f423433729fcf2ba354b069c5e49da006bd92abb2999c7a02304271cebe9c2cc0bdcbcc8d6030d45cad73ffc9dbf72f8afc00275c366385fde2b3c6f646f3203c4b05013d1f0bda309ee06a9e74c0e1dacd920e41c00e620ab14c3909b90cdfc3b4fafec2e0f425cf6343fef14bd3edb6ec00c4cd0ff19df56182e2cf62bfa12d771906319b3b42f313f4d8690605fa90d721ce1c5047ea35427d1d309d405ed288e6f9ce64c4bd0cee2f9126ba8ed500e27104f27fb815cad38e6e0cedbe25e3537d1ef808284ebf61a3d07d5d8915427a16337ec167930a307191f31241da1cac82e107f7d7b140a0809912630bba4f3f7c9f900e986cf5e1c82640a4b6bd70a1719ad828c989bcdfa16c33d15a2c057c23b53e8705df32b237d9bf5b49428f5e8e6527d73676432282fd5bef3aa38c3d6f1dd048fa20cd60e8bf433791b33327380638cbefb0b059de49e395993cf7f98ce41b031d5bfd531740bcc86e4cccd8c7f9c734104f4fa8461fac2afb9299c005eef3cce2a402c08bbc5015d87fffc4181f1bfbae7371bf3307e22b696146262da1783f92cbf2837443afea2780003be7e0e404518c8e42f161ad952b6e4b93653196906d340d92baad906d3a7ffed4789b8bea684138bbff276ad90ee65ebee427593dddfbbc8145526f92c580012b8764741597bec746254224e785e932faaeabb59222044391a563d222247ffa265b09bb9409461ba58e8866fb8c11248dbc4b91c555eaae525a9c2ddddb8005d9a4f6446bf6b9e45c95e128c508be6d2bd6877d0aaa1551c03af31aaab67fe2bfc730a9e42e5e8a377fd6e36892b6935187d3bb3aad956773c50ce55549801d4038cf561bd1a175caa492ac580218fe680aff5395526a98a126bf8555907f6dbee3f35174e7d8b3157f32710add90e097a722a82563eb0532d9407aaa6f8092411c0cae8b18274ceca5371eb5b73eb121ebb066aa9c14fae1c1bd9aabd27d24ba73c09748873b7f695792a575bf04d13cb0da39eaf39719e23e4265542d82db458c3f68b778c48098ccd6ea4ad5cac07ce1f8d4e50c68e630c8b4055b1c71b7a442c2f46aa4297d0a6d0a1bcb9178f2bc4e9d03f6c1f38143374bfaa4e38e485bbd3d0b955bd682f7b75f73f503569efd44360ad93e0c7ed3eb841ac78e3896354dcec61534cf713421328af9d75cbdad891113d1c9c18640147be53871c769cab23139eacb308ece033704c6bd72d40c09c1fafe363e79d3999485e5c71aef0a8509de6a080d35fc145677dee1916d7d620927d8f0c79f00666b7a1a38e510f57af62195f7f2ca06101317e1b33e243c30c9e6f70f386111ffe69d7ce386ab349931581228420de3d40a18581498dc8c9ee18bfcb3e61ac2001962831c7954cb66cea7edd7bdf21e505f77688036b52cf3f182d34c19e551ff81137071a15806fdf6b85ac94a456edb5f5a373d5d2b4bf4c19e4f837e85a2007eec8f8e5ea7f9020947a536b5ba93490a35895772666d9e1170807c817a71fd8561323826b822f5d199c5ee735b260009a3930932b508a221f9ed91789c02027a9ecdc7d947dd0a2e663a118ca4dc245fec2d8b9cdcb0f0b114e26e876411f39ae5fb18c198aecd1800dda840c7b9b75d125e045e65b80503c403d75b0be20c651a04e73e675132e7ff2257bf38486d0c7d6290712c018dcf4acc28a4f431c2067de77bc7fb6a017804544943e69c4bfe3c54ec38d924f36cb67334c73b423df9821884380495fe87fbabb6bc1965d86b536ba896b8949f66585ccb38c4d0ca2075856ae7e912075815a56e53810933240e27737d1a459b7972a007e4282335df8a7a951816edf8a7ea5a91ac7ef8f145819921527773f7599c2ff81bd7f3f2a24b9b16878d5a24b86c3b27a1852dffb446c54171835c095f3d202774c8a00d5db464e97872a5db4793c4d85e7ad424b548fb535e0e5d8973d1afd88b3773bd2b7a0770a5c2c2b79a1d27c62799dd6cdf22d7f3f949e5e38ff660c547eae042d485f88f5a3d3d4865e2d839d86624b78a6ce8a0d647d3af43186f3ab81532b1d96225333ccdcd960291c6dec6014a8eb56f3570a02a97268394a3da6796214e269ddaccc3323269fd6e392139feb795b4208b242f67226c4f7a2c259869f1793eeaba00300503ee0cd8e259de066e5c4e7cc974b21fc70818bac34405ee7286c11545ffcffafc11f3271da621f993c81b12f7201d71f28aba540cbbfa11a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000290000000000000020af76b9057c77f932363b606d99db651b8b1831ef0bf12ad3699c390db870c62f00000000000000080000000000000001000000000000000000000000000000208f42dabceff7ef94c0da5218d16c09d3a10574ac7adac9916902dc95c6a38f7800000000000000010000000000000001000000000000002068111c5e8d8935326de6a3e923f10af9e6964137428ddafa7c12d8f9e01fe74d000000000000000100000000000000010000000000000020b89dc0c31a9940876e80eaf7dbd14ac4645dd817de77242544a763413566e6a200000000000000010000000000000000000000000000002098fb2a1093d660d0f2c3d4b4819d9aca6fde51a1d8ed873d0199a9e49eadc75b000000000000000100000000000000010000000000000020bd41016716c1aed626a5574f63b515ce33bf673bdbb02600e1fbca647b467f4e00000000000000010000000000000000000000000000002026a3856bf126b2f66156fffec2749efff07b624a9bf8c7a2c850ff5936f52b94000000000000000100000000000000010000000000000020e330a3ca79333607e25ac69316823648a22a11ec2281f47bd148f9ea777449c4000000000000000100000000000000010000000000000020154455463d06ea7384929c514e4e48c3982e795fa93431109b732283f06510ec000000000000000234fea6b28a2f8560b73268db3468b5dde5023f22641c75711119ee00de457d46076433ff854c84b04aa6569f8ef17b5f505deab8de7f494047e97f5d5243cb4100000000000000290000000000000020f781136eba9b4b02f699f1a647e435c58ea82bfbefbdee2054935086e622fd040000000000000007000000000000000100000000000000000000000000000020337874e37b946402e73798dc00768639f93b8cb83f02b5794a811f8a0b77b763000000000000000100000000000000010000000000000020d9d8cf05743f68e34c6455330ee24d6c2343227d666e6981501ffd2c4f649180000000000000000100000000000000010000000000000020ee5628355f5bb3048313816858c7e3e6b68ab3aad9461a92c5969122cb7d9f48000000000000000100000000000000000000000000000020ec7c4f47dbf3b731bfb926c00b4650e86c5bee4013b64d4e0db16a4a48fe0144000000000000000100000000000000010000000000000020b9c8974986d17b0c12de3f0c1346822b652de813cae786c2278798c894398af1000000000000000100000000000000000000000000000020b9d97d113886bb55bfcd08397f7a856cd978cfe2c909dd7d9fbed613d6041549000000000000000100000000000000010000000000000020558fe936ee685288d941dc83a9a37bba94131d179fed815b5b48d2ec41aa912900000000000000020cc7406e51c008e55eae9cd93375090f07e48d81ff1b08c80b38623306024e141609b3655d781fdd7c6de0bd07cc51b3384d09d6b71aefc896e8defbde215f080000000000000029000000000000002017261fbb39ec35ceee742646b1e571dd0bab81ba9a7a15a65ddf8df00d172cd70000000000000006000000000000000100000000000000000000000000000020f9ade45c698000d4db6bdb2afcf13e88c9adfa673c964f87b929383405b7c4d70000000000000001000000000000000100000000000000207c08b3f0bfcb3b064c177f3066a168afc6e05c59dcf6af007a1e8cd1806fcb8a000000000000000100000000000000010000000000000020dff32ca48d4971cf5f93d302222b8226b985cd71ce3c295a08128b201c1c07920000000000000001000000000000000000000000000000207ba848f1e675b8883e48cdf04865e44723e47996866d304a428430575d7b767b000000000000000100000000000000010000000000000020988b27a7e5234a6fd03ea8cbd817a6c5f063d91b38fabd3af8b641bffeb4830b000000000000000100000000000000000000000000000020fad84bea2102473bd2e5903e5abb909047ccf25aa71993ec60d53b0cd97885fd00000000000000020fffa8fca43ec39853162e5912233199054b8080320d1f15dbac44fd7174bb3b14860460c95d03078ae13c2c5ba447154269d91efed7ba86b42eefe6d989bfc200000000000000090000000000000020c943c3e5ba7150c846e31d58370456768cd8bc0fa02fa85aaa2dd38d775ced9a0000000000000005000000000000000100000000000000000000000000000020cf6ebc9aded1c37c86193c66cff8c99ef48458a84ef2b1ffba31acf4e85ec69300000000000000010000000000000001000000000000002000dd060ea92eef325ae1446558517dfbf3d7742d7abe888b991217c5c3931a34000000000000000100000000000000010000000000000020a744b4250d3c04603b19de93d9b1fd20e0b3c2fd9f2a6061c9cb837c8347044b0000000000000001000000000000000000000000000000203d111dc383e2d9787f30e9154c06a0e8d348c8326635c747c62479b477e3ed940000000000000001000000000000000100000000000000207e820e33747503852de29a5b69f7b3814b934438007633c5d886b1dbe95b908b0000000000000002043df211a260aebd21b0f5419ea01c17ee25cfb220a5454bcf812911e132c46a303fe3beeabd3dd8ba5ba3e7908e0b137eb1993e5d74f950e4508698091ea192000000000000000900000000000000206d759f50e176f04b3ea0db6bdd87c15a024fdbe362820cf284721ea7a27d5369000000000000000400000000000000010000000000000000000000000000002038f6e270a5dd6eb0c51c3a4b1a41137e2f50b12886b853ac56976927f1b1d164000000000000000100000000000000010000000000000020dcedac952818b94928c6b6046007de85756b9466716a8dfeaf0fcbcc028374160000000000000001000000000000000100000000000000203c2f0a5874434e7592b7b4ea72187a1a43d0a49612dc9bbff7cdae5734ee34d40000000000000001000000000000000000000000000000209a804787a51e13ee49cac2a7e7fb57613f09d5aeb32ca7946986aa0b5aeb48b600000000000000021765406deb1b04c2873ab813745a6ab8ba98a4f8ef9b8e87b69b4d9d75e62b2d39fe0160aaaa297324e99645b5c6947f2e4aa30694893302125fa2b18456bb290000000000000001000000000000002052ea78578ef0a2f5430f1b757700ceacd6014c30b7f62f7afd81d5e0782af70c000000000000000300000000000000010000000000000000000000000000002059b0cc6978261609812cb94cfcb1f99c0db80cf167ccc39a94f946a59ed3ee7a000000000000000100000000000000010000000000000020c552e74f0ff5cd5a976beceb64476c5231ffa0a8be701392b0cfdfcbd43bf12e0000000000000001000000000000000100000000000000203e5ee55f8cc8311f3bed6a4309ec06f68a7cf1198a909e84a2b62d6d9560c34300000000000000023cac27bc92774efd06d90b5dcef71371f0ed87d908885b4fe5bd787550de3aa1396dd705c9f6756794682266c279e364bf72a16ea13ae74e5450c1868bbf324c00000000000000010000000000000020ad4df8e4e74295d6c7c7e754e397355bc558ed7f181b922881f30d4e6939ffe1000000000000000200000000000000010000000000000000000000000000002074022260d04bea54d8bd71a21595ff16c838df6ee96e499fa36e5cd349659b92000000000000000100000000000000010000000000000020b83feb26ae2178221e3d05f44e9c162801635800ec3d4bba853ea900ceda208500000000000000023d182ee13e91fffb431ae5824d71fe63d6d3176270dc82d77732361cb0d8176733dfbdf9e58d01b143fe0d5ce217edc7ebbceb4ab3bed556600b59d84c74438100000000000000010000000000000020a8b916b7cbab71d0e8ac46a0bf12af901e15cf92ff42e817458e002fdad37cfc000000000000000100000000000000010000000000000000000000000000002064ccd440d20046fc058491b48c38663107dd0f9ad969303c5192296fe0ea66950000000000000002152cf637d4febf40a7998e10a0b41aadd6c434a68a6cc82c274d57510d9a75ab045823c7ccb878b4d0d2e978d1d0e826329d9d105b3a6a4161067f77241c801d \ No newline at end of file diff --git a/contracts/zkllvm/merkle_tree_poseidon/public_input.json b/contracts/zkllvm/merkle_tree_poseidon/public_input.json deleted file mode 100644 index c4ca98d..0000000 --- a/contracts/zkllvm/merkle_tree_poseidon/public_input.json +++ /dev/null @@ -1,4 +0,0 @@ -[ - {"field": 5}, - {"field": 11} -] diff --git a/contracts/zkllvm/mina_base/circuit_params.json b/contracts/zkllvm/mina_base/circuit_params.json deleted file mode 100644 index 10b34c2..0000000 --- a/contracts/zkllvm/mina_base/circuit_params.json +++ /dev/null @@ -1,31 +0,0 @@ -{ "_test_name":"Test name", - "arithmetization_params":[15,1,1,30], - "columns_rotations":[[-1,0,1],[-1,0,1],[-1,0,1],[-1,0,1],[-1,0,1],[-1,0,1],[0,1],[-1,0,1],[-1,0,1],[-1,0,1],[-1,0,1],[-1,0,1],[-1,0],[-1,0],[-1,0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0]], - "modulus":28948022309329048855892746252171976963363056481941560715954676764349967630337, - "r":16, - "m":2, - "lambda":1, - "batches_num":4, - "step_list":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1], - "D_omegas":[ - 21090803083255360924969619711782040241928172562822879037017685322859036642027, - 10988054172925167713694812535142550583545019937971378974362050426778203868934, - 22762810496981275083229264712375994604562198468579727082239970810950736657129, - 26495698845590383240609604404074423972849566255661802313591097233811292788392, - 13175653644678658737556805326666943932741525539026001701374450696535194715445, - 18589158034707770508497743761528839450567399299956641192723316341154428793508, - 5207999989657576140891498154897385491612440083899963290755562031717636435093, - 21138537593338818067112636105753818200833244613779330379839660864802343411573, - 22954361264956099995527581168615143754787441159030650146191365293282410739685, - 23692685744005816481424929253249866475360293751445976741406164118468705843520, - 7356716530956153652314774863381845254278968224778478050456563329565810467774, - 17166126583027276163107155648953851600645935739886150467584901586847365754678, - 3612152772817685532768635636100598085437510685224817206515049967552954106764, - 14450201850503471296781915119640920297985789873634237091629829669980153907901, - 199455130043951077247265858823823987229570523056509026484192158816218200659, - 24760239192664116622385963963284001971067308018068707868888628426778644166363 - ], - "rows_amount":131072, - "max_degree":131071, - "omega":21090803083255360924969619711782040241928172562822879037017685322859036642027 -} diff --git a/contracts/zkllvm/mina_base/gate0.sol b/contracts/zkllvm/mina_base/gate0.sol deleted file mode 100644 index adcc72b..0000000 --- a/contracts/zkllvm/mina_base/gate0.sol +++ /dev/null @@ -1,1020 +0,0 @@ - -// SPDX-License-Identifier: Apache-2.0. -//---------------------------------------------------------------------------// -// Copyright (c) 2022 Mikhail Komarov -// Copyright (c) 2022 Ilias Khairullin -// Copyright (c) 2022 Aleksei Moskvin -// Copyright (c) 2022-2023 Elena Tatuzova -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//---------------------------------------------------------------------------// -pragma solidity >=0.8.4; - -import "../../../contracts/types.sol"; -import "./gate_argument.sol"; - -library mina_base_gate0{ - uint256 constant MODULUS_OFFSET = 0x0; - uint256 constant THETA_OFFSET = 0x20; - - uint256 constant CONSTRAINT_EVAL_OFFSET = 0x00; - uint256 constant GATE_EVAL_OFFSET = 0x20; - uint256 constant GATES_EVALUATIONS_OFFSET = 0x40; - uint256 constant THETA_ACC_OFFSET = 0x60; - - uint256 constant WITNESS_EVALUATIONS_OFFSET = 0x80; - uint256 constant CONSTANT_EVALUATIONS_OFFSET = 0xa0; - uint256 constant SELECTOR_EVALUATIONS_OFFSET = 0xc0; - - - function evaluate_gate_be( - types.gate_argument_params memory gate_params, - mina_base_gate_argument_split_gen.local_vars_type memory local_vars - ) external pure returns (uint256 gates_evaluation, uint256 theta_acc) { - gates_evaluation = local_vars.gates_evaluation; - theta_acc = local_vars.theta_acc; - uint256 terms; - assembly { - let modulus := mload(gate_params) - let theta := mload(add(gate_params, THETA_OFFSET)) - - - function get_witness_i_by_rotation_idx(idx, rot_idx, ptr) -> result { - result := mload( - add( - add(mload(add(add(mload(add(ptr, WITNESS_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))), 0x20), - mul(0x20, rot_idx) - ) - ) - } - - function get_constant_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, CONSTANT_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - function get_selector_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, SELECTOR_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(0,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(1,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(0,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(3,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x113aa632e5e0d0977603751a0f88a80e1f9334b972d5301c3329337f6c9a64ba - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(4,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1aac4f73877aae401f9b26e3e814e1249be470c9dfd78209e67a28570f55c454 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(5,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1a58f904f0ca4d9f490d729e1f7d2c9593307d1a1473b7b827857a8dd40501b3 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x83fd7e02599b33dbb72f182288555fbad24487a8eb89e5caea0363dc11c6461 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(7,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2bfb77cded6e66747a7d153114c05635e8c5ad9764f9a1df3e8307dcbfa6c94b - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(8,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x58c01ca4e4229947f6552a154b84a37e74551fe8986c63be49057d21ee96c89 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(9,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1e483d4ca0288ef4f9dba8ee0d93f9ca4e647b172e3c1be125c33b4db972841b - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(10,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x27fc5f972da010d109ad375b7b855e75f875109d8d557944f5dfca9992f6352a - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(11,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x16e219e3a19d97dec88d3081fc37f3d19f07e17fb08893d2c7d489dd44268db6 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(12,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1cffbc5f23d20549c9f8341e463b7d02490e9b0c1c8668c0f42c0263454152ee - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(13,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1e750885fa3afd2c05cebb1030b85f0d821d746348408af830d6da7818789b0d - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(14,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1dc1d26b3e882d81f8e2aa8d62ec564e0bb13c8b06805e85aeed2b5e04af9eea - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(0,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x15e7da83ea52649017483a52ded6c6b1921a5cc40665c0294c4a3b6751a095c9 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(1,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x35908458a0de9bfc2d1b6bfb962e66b8d7e0ee9d113815b7986f51fc9ea72309 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(2,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x29641be39dd86a91010a4b32219a2ff2c4419a85a7d43b5467cbd47ea46c1ce3 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(1,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(3,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x11d70af565aa2d16e88bf7cf8d8cbabbe0c86ff1ec4e3d1a19119c1c8d70199e - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(4,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30212072579ab5dd7cefbf3038bbcdb9d72f5a158323fb8b4fa8b0336fd0d7e8 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(5,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3b95c12679c2d28c622743616f58b902812d279938ac3a57be0e018cbd30fb1f - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1e61f74b9f3cfa4bd798f453547953e18dee91a490799ce57f7eb54b064d128b - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(7,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x744c95ed14313b2b178d714bc1c0ed5b412e6fc6806c5a2979fe2dabdb19d37 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(8,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x21655c01da2ee933042957033251f55666304ef85dce6404943e967ba041211b - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(9,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3cf0cc128f25b3d4047bb00e58aa747ea527d5fb2ec657b249ff7c9cb82a0e76 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(10,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3d7d4fbec8cafb6a54be830d3b8c7640ba2a5f05471f5ae48db239904341b450 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(11,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x364ead7215d14a42696fa47700fa020c415477fdebb927664fd984540137da11 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(12,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xff7c2444a154c6cee3857402a1aaa9827c04dc7a096fffb8ada9412fc261090 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(13,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3e815318c309839eeddc6340ae213f190d584aa177712ffafb6bb52e5a432f6d - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(14,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x850e2170ab8a45e9a46f072a9797c2ad4253b028aba718765bc61abe7bd7f6a - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(0,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x29008a6d7c95bacbf1390d4f0edd8c931e55dc43c939fff8f47289ae5f1990b0 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(1,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25a67a2b4ca62fc219f4d12544e7ac0babb539104868e997f65b60e4b103c028 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(2,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1aa562b41464a15e754687d4e544d9805c8f25427e96a31e4be69a541e1e068c - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(2,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - - } - } -} diff --git a/contracts/zkllvm/mina_base/gate11.sol b/contracts/zkllvm/mina_base/gate11.sol deleted file mode 100644 index 794477e..0000000 --- a/contracts/zkllvm/mina_base/gate11.sol +++ /dev/null @@ -1,1095 +0,0 @@ - -// SPDX-License-Identifier: Apache-2.0. -//---------------------------------------------------------------------------// -// Copyright (c) 2022 Mikhail Komarov -// Copyright (c) 2022 Ilias Khairullin -// Copyright (c) 2022 Aleksei Moskvin -// Copyright (c) 2022-2023 Elena Tatuzova -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//---------------------------------------------------------------------------// -pragma solidity >=0.8.4; - -import "../../../contracts/types.sol"; -import "./gate_argument.sol"; - -library mina_base_gate11{ - uint256 constant MODULUS_OFFSET = 0x0; - uint256 constant THETA_OFFSET = 0x20; - - uint256 constant CONSTRAINT_EVAL_OFFSET = 0x00; - uint256 constant GATE_EVAL_OFFSET = 0x20; - uint256 constant GATES_EVALUATIONS_OFFSET = 0x40; - uint256 constant THETA_ACC_OFFSET = 0x60; - - uint256 constant WITNESS_EVALUATIONS_OFFSET = 0x80; - uint256 constant CONSTANT_EVALUATIONS_OFFSET = 0xa0; - uint256 constant SELECTOR_EVALUATIONS_OFFSET = 0xc0; - - - function evaluate_gate_be( - types.gate_argument_params memory gate_params, - mina_base_gate_argument_split_gen.local_vars_type memory local_vars - ) external pure returns (uint256 gates_evaluation, uint256 theta_acc) { - gates_evaluation = local_vars.gates_evaluation; - theta_acc = local_vars.theta_acc; - uint256 terms; - assembly { - let modulus := mload(gate_params) - let theta := mload(add(gate_params, THETA_OFFSET)) - - - function get_witness_i_by_rotation_idx(idx, rot_idx, ptr) -> result { - result := mload( - add( - add(mload(add(add(mload(add(ptr, WITNESS_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))), 0x20), - mul(0x20, rot_idx) - ) - ) - } - - function get_constant_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, CONSTANT_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - function get_selector_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, SELECTOR_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(3,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x6ce96688c89efe6c3c0600302b1dc2c979a862e8db740494255bcdce9af5937 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(4,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x26e1c88b9d679a9c0254064dcad60837d5db78f0784b45768fc1668dc8867e06 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(5,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f0765068dd086379f2dfa65f13df630e7cd734f01b42e6543408abd18c00c28 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x235a9751224d10c6e58387130efb2cd2a9eafc5ac3737ae6118f3d99b582e1f6 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(7,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1a21645f5c8b8d3c4b3f463c43da3440a96d807a5253aa348ae271e3fdeedae5 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(8,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xc6c2142c72cee77e38a7c411f819fa131613c9918fc6c4f6c06df602a971e12 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(9,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3c720d02e75728a9c7f9556266b59ee0be193cc295c4273e5ab47472baea3a50 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(10,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3a39afc00e11ab70dbca526eb728046b59246df30058b3c81ec6c9e88092afe5 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(11,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2fb377292f97d27d2c299b7d9236a9a27144f6db5ebd68c46a7598a6757d5d56 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(12,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x135529ef73f611951187ae4b5d2d2c485e7c5ca5614cf553520da02d5b539d76 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(13,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x35a8242b3cd87d937568438d7a06b43246b03784d4dde188d46fc06455fcac0e - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(14,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3eaaad06edbce747bcc2fe44ac45fb48079fa42ebc94002b5fd46b30416f707 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(0,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x31ef3ef3441e8e856bbe39d663b03f7860247870345269dfb2c0107709dc4aee - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(1,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2174dab3400d36d57c200e8d737e22dd78ef89a2fb037c68c2ed2cc0478656d1 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(2,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x27ed24328f3bbf9effa844022f33b2ce504ba383a53343e357688328c0d4dcaf - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(11,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(1,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x10000000000000000,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x100000000000000000000000000000000,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1000000000000000000000000000000000000000000000000,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x40000000000000000000000000000000224698fc094cf91b325a61da00000002 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(5,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x10000000000000000,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x40000000000000000000000000000000224698fc094cf91abb73c9e9094cf91d - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x10000000000000000,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x40000000000000000000000000000000224698fc094cf91a992d30ed00000002 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(7,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x10000000000000000,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x40000000000000000000000000000000224698fc094cf91ad92d30ed00000002 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(8,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(9,1, local_vars),get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(10,1, local_vars),get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(11,1, local_vars),get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(12,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(1,1, local_vars),get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffe,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffb,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(2,1, local_vars),get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffe,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffb,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(3,1, local_vars),get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffe,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffb,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(4,1, local_vars),get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffe,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffb,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(5,1, local_vars),get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffe,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffb,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(6,0, local_vars),get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffe,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffb,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(7,1, local_vars),get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffe,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffb,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(8,1, local_vars),get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffe,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffb,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(9,1, local_vars),get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffe,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffb,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(10,1, local_vars),get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffe,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffb,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(11,1, local_vars),get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffe,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffb,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(12,1, local_vars),get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffe,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffb,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(13,1, local_vars),get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffe,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffb,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(14,1, local_vars),get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffe,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffb,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(0x4000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1000000,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x400000,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x100000,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x10000,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x4000,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1000,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x400,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x100,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x10,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x4,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(14,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x10000000,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(13,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(0,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x10000000000000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(14,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - - } - } -} diff --git a/contracts/zkllvm/mina_base/gate15_0.sol b/contracts/zkllvm/mina_base/gate15_0.sol deleted file mode 100644 index 37b3e6d..0000000 --- a/contracts/zkllvm/mina_base/gate15_0.sol +++ /dev/null @@ -1,1234 +0,0 @@ - -// SPDX-License-Identifier: Apache-2.0. -//---------------------------------------------------------------------------// -// Copyright (c) 2022 Mikhail Komarov -// Copyright (c) 2022 Ilias Khairullin -// Copyright (c) 2022 Aleksei Moskvin -// Copyright (c) 2022-2023 Elena Tatuzova -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//---------------------------------------------------------------------------// -pragma solidity >=0.8.4; - -import "../../../contracts/types.sol"; -import "./gate_argument.sol"; - -library mina_base_gate15_0{ - uint256 constant MODULUS_OFFSET = 0x0; - uint256 constant THETA_OFFSET = 0x20; - - uint256 constant CONSTRAINT_EVAL_OFFSET = 0x00; - uint256 constant GATE_EVAL_OFFSET = 0x20; - uint256 constant GATES_EVALUATIONS_OFFSET = 0x40; - uint256 constant THETA_ACC_OFFSET = 0x60; - - uint256 constant WITNESS_EVALUATIONS_OFFSET = 0x80; - uint256 constant CONSTANT_EVALUATIONS_OFFSET = 0xa0; - uint256 constant SELECTOR_EVALUATIONS_OFFSET = 0xc0; - - - function evaluate_gate_be( - types.gate_argument_params memory gate_params, - mina_base_gate_argument_split_gen.local_vars_type memory local_vars - ) external pure returns (uint256 gates_evaluation, uint256 theta_acc) { - gates_evaluation = local_vars.gates_evaluation; - theta_acc = local_vars.theta_acc; - uint256 terms; - assembly { - let modulus := mload(gate_params) - let theta := mload(add(gate_params, THETA_OFFSET)) - - - function get_witness_i_by_rotation_idx(idx, rot_idx, ptr) -> result { - result := mload( - add( - add(mload(add(add(mload(add(ptr, WITNESS_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))), 0x20), - mul(0x20, rot_idx) - ) - ) - } - - function get_constant_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, CONSTANT_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - function get_selector_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, SELECTOR_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(2,2, local_vars),get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(3,2, local_vars),get_witness_i_by_rotation_idx(3,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(3,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(4,2, local_vars),get_witness_i_by_rotation_idx(4,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(4,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(5,2, local_vars),get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(6,1, local_vars),get_witness_i_by_rotation_idx(6,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(6,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(2,1, local_vars),get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(7,1, local_vars),get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(3,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(9,1, local_vars),get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(4,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(11,1, local_vars),get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(13,1, local_vars),get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(6,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(0x4,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x4,get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(7,2, local_vars),get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(7,2, local_vars),get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x4,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(7,2, local_vars),get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(7,2, local_vars),get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(7,2, local_vars),get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(0x4,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x4,get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(8,2, local_vars),get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(8,2, local_vars),get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x4,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(8,2, local_vars),get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(8,2, local_vars),get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(8,2, local_vars),get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(0x4,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x4,get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(9,2, local_vars),get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(9,2, local_vars),get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x4,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(9,2, local_vars),get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(9,2, local_vars),get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(9,2, local_vars),get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(0x4,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x4,get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(10,2, local_vars),get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(10,2, local_vars),get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x4,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(10,2, local_vars),get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(10,2, local_vars),get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(10,2, local_vars),get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(0x4,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x4,get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(11,2, local_vars),get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(11,2, local_vars),get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x4,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(11,2, local_vars),get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(11,2, local_vars),get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(11,2, local_vars),get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - gates_evaluation := mload(add(local_vars, GATE_EVAL_OFFSET)) - - } - } -} diff --git a/contracts/zkllvm/mina_base/gate15_1.sol b/contracts/zkllvm/mina_base/gate15_1.sol deleted file mode 100644 index fcb6287..0000000 --- a/contracts/zkllvm/mina_base/gate15_1.sol +++ /dev/null @@ -1,345 +0,0 @@ - -// SPDX-License-Identifier: Apache-2.0. -//---------------------------------------------------------------------------// -// Copyright (c) 2022 Mikhail Komarov -// Copyright (c) 2022 Ilias Khairullin -// Copyright (c) 2022 Aleksei Moskvin -// Copyright (c) 2022-2023 Elena Tatuzova -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//---------------------------------------------------------------------------// -pragma solidity >=0.8.4; - -import "../../../contracts/types.sol"; -import "./gate_argument.sol"; - -library mina_base_gate15_1{ - uint256 constant MODULUS_OFFSET = 0x0; - uint256 constant THETA_OFFSET = 0x20; - - uint256 constant CONSTRAINT_EVAL_OFFSET = 0x00; - uint256 constant GATE_EVAL_OFFSET = 0x20; - uint256 constant GATES_EVALUATIONS_OFFSET = 0x40; - uint256 constant THETA_ACC_OFFSET = 0x60; - - uint256 constant WITNESS_EVALUATIONS_OFFSET = 0x80; - uint256 constant CONSTANT_EVALUATIONS_OFFSET = 0xa0; - uint256 constant SELECTOR_EVALUATIONS_OFFSET = 0xc0; - - - function evaluate_gate_be( - types.gate_argument_params memory gate_params, - mina_base_gate_argument_split_gen.local_vars_type memory local_vars - ) external pure returns (uint256 gates_evaluation, uint256 theta_acc) { - gates_evaluation = local_vars.gates_evaluation; - theta_acc = local_vars.theta_acc; - uint256 terms; - assembly { - let modulus := mload(gate_params) - let theta := mload(add(gate_params, THETA_OFFSET)) - - - function get_witness_i_by_rotation_idx(idx, rot_idx, ptr) -> result { - result := mload( - add( - add(mload(add(add(mload(add(ptr, WITNESS_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))), 0x20), - mul(0x20, rot_idx) - ) - ) - } - - function get_constant_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, CONSTANT_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - function get_selector_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, SELECTOR_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(8,1, local_vars),get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(3,1, local_vars),get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(2,1, local_vars),get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(7,1, local_vars),get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(10,1, local_vars),get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(8,1, local_vars),get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(7,1, local_vars),get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(9,1, local_vars),get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(12,1, local_vars),get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(10,1, local_vars),get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(9,1, local_vars),get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(11,1, local_vars),get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(14,1, local_vars),get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(12,1, local_vars),get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(11,1, local_vars),get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(13,1, local_vars),get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(1,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(1,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(1,2, local_vars),get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(14,1, local_vars),get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(13,1, local_vars),get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(0,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(0,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,2, local_vars),get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(5,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffe1,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffff1,get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffff9,get_witness_i_by_rotation_idx(3,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(4,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(6,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(15,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - } - } -} diff --git a/contracts/zkllvm/mina_base/gate16_0.sol b/contracts/zkllvm/mina_base/gate16_0.sol deleted file mode 100644 index d65e9dc..0000000 --- a/contracts/zkllvm/mina_base/gate16_0.sol +++ /dev/null @@ -1,1110 +0,0 @@ - -// SPDX-License-Identifier: Apache-2.0. -//---------------------------------------------------------------------------// -// Copyright (c) 2022 Mikhail Komarov -// Copyright (c) 2022 Ilias Khairullin -// Copyright (c) 2022 Aleksei Moskvin -// Copyright (c) 2022-2023 Elena Tatuzova -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//---------------------------------------------------------------------------// -pragma solidity >=0.8.4; - -import "../../../contracts/types.sol"; -import "./gate_argument.sol"; - -library mina_base_gate16_0{ - uint256 constant MODULUS_OFFSET = 0x0; - uint256 constant THETA_OFFSET = 0x20; - - uint256 constant CONSTRAINT_EVAL_OFFSET = 0x00; - uint256 constant GATE_EVAL_OFFSET = 0x20; - uint256 constant GATES_EVALUATIONS_OFFSET = 0x40; - uint256 constant THETA_ACC_OFFSET = 0x60; - - uint256 constant WITNESS_EVALUATIONS_OFFSET = 0x80; - uint256 constant CONSTANT_EVALUATIONS_OFFSET = 0xa0; - uint256 constant SELECTOR_EVALUATIONS_OFFSET = 0xc0; - - - function evaluate_gate_be( - types.gate_argument_params memory gate_params, - mina_base_gate_argument_split_gen.local_vars_type memory local_vars - ) external pure returns (uint256 gates_evaluation, uint256 theta_acc) { - gates_evaluation = local_vars.gates_evaluation; - theta_acc = local_vars.theta_acc; - uint256 terms; - assembly { - let modulus := mload(gate_params) - let theta := mload(add(gate_params, THETA_OFFSET)) - - - function get_witness_i_by_rotation_idx(idx, rot_idx, ptr) -> result { - result := mload( - add( - add(mload(add(add(mload(add(ptr, WITNESS_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))), 0x20), - mul(0x20, rot_idx) - ) - ) - } - - function get_constant_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, CONSTANT_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - function get_selector_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, SELECTOR_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(2,1, local_vars),get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(3,1, local_vars),get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(4,1, local_vars),get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(5,1, local_vars),get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(6,0, local_vars),get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(2,0, local_vars),get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(7,0, local_vars),get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(9,0, local_vars),get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(11,0, local_vars),get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(13,0, local_vars),get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(0x4,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x4,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(7,1, local_vars),get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(7,1, local_vars),get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x4,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(7,1, local_vars),get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(7,1, local_vars),get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(7,1, local_vars),get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,0, local_vars),get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,0, local_vars),get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,0, local_vars),get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(0x4,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x4,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(8,1, local_vars),get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(8,1, local_vars),get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x4,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(8,1, local_vars),get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(8,1, local_vars),get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(8,1, local_vars),get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,0, local_vars),get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,0, local_vars),get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,0, local_vars),get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(0x4,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x4,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(9,1, local_vars),get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(9,1, local_vars),get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x4,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(9,1, local_vars),get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(9,1, local_vars),get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(9,1, local_vars),get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,0, local_vars),get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,0, local_vars),get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,0, local_vars),get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(0x4,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x4,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(10,1, local_vars),get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(10,1, local_vars),get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x4,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(10,1, local_vars),get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(10,1, local_vars),get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(10,1, local_vars),get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,0, local_vars),get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,0, local_vars),get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,0, local_vars),get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - gates_evaluation := mload(add(local_vars, GATE_EVAL_OFFSET)) - - } - } -} diff --git a/contracts/zkllvm/mina_base/gate16_1.sol b/contracts/zkllvm/mina_base/gate16_1.sol deleted file mode 100644 index b04d1f0..0000000 --- a/contracts/zkllvm/mina_base/gate16_1.sol +++ /dev/null @@ -1,1269 +0,0 @@ - -// SPDX-License-Identifier: Apache-2.0. -//---------------------------------------------------------------------------// -// Copyright (c) 2022 Mikhail Komarov -// Copyright (c) 2022 Ilias Khairullin -// Copyright (c) 2022 Aleksei Moskvin -// Copyright (c) 2022-2023 Elena Tatuzova -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//---------------------------------------------------------------------------// -pragma solidity >=0.8.4; - -import "../../../contracts/types.sol"; -import "./gate_argument.sol"; - -library mina_base_gate16_1{ - uint256 constant MODULUS_OFFSET = 0x0; - uint256 constant THETA_OFFSET = 0x20; - - uint256 constant CONSTRAINT_EVAL_OFFSET = 0x00; - uint256 constant GATE_EVAL_OFFSET = 0x20; - uint256 constant GATES_EVALUATIONS_OFFSET = 0x40; - uint256 constant THETA_ACC_OFFSET = 0x60; - - uint256 constant WITNESS_EVALUATIONS_OFFSET = 0x80; - uint256 constant CONSTANT_EVALUATIONS_OFFSET = 0xa0; - uint256 constant SELECTOR_EVALUATIONS_OFFSET = 0xc0; - - - function evaluate_gate_be( - types.gate_argument_params memory gate_params, - mina_base_gate_argument_split_gen.local_vars_type memory local_vars - ) external pure returns (uint256 gates_evaluation, uint256 theta_acc) { - gates_evaluation = local_vars.gates_evaluation; - theta_acc = local_vars.theta_acc; - uint256 terms; - assembly { - let modulus := mload(gate_params) - let theta := mload(add(gate_params, THETA_OFFSET)) - - - function get_witness_i_by_rotation_idx(idx, rot_idx, ptr) -> result { - result := mload( - add( - add(mload(add(add(mload(add(ptr, WITNESS_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))), 0x20), - mul(0x20, rot_idx) - ) - ) - } - - function get_constant_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, CONSTANT_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - function get_selector_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, SELECTOR_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(0x4,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x4,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(11,1, local_vars),get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(11,1, local_vars),get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x4,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(11,1, local_vars),get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(11,1, local_vars),get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(11,1, local_vars),get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,0, local_vars),get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,0, local_vars),get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,0, local_vars),get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(8,0, local_vars),get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(3,0, local_vars),get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(2,0, local_vars),get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(7,0, local_vars),get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(10,0, local_vars),get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(8,0, local_vars),get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(7,0, local_vars),get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(9,0, local_vars),get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(12,0, local_vars),get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(10,0, local_vars),get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(9,0, local_vars),get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(11,0, local_vars),get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(14,0, local_vars),get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(12,0, local_vars),get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(11,0, local_vars),get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(13,0, local_vars),get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(1,1, local_vars),get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(14,0, local_vars),get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(13,0, local_vars),get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(5,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffe1,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffff1,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffff9,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffd,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(8,2, local_vars),get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(8,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(5,2, local_vars),get_witness_i_by_rotation_idx(3,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3fffffffffffffffffffffffffffffffffffffffffb8503e0ce645cc00000001,get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3fffffffffffffffffffffffffffffffffffffffffb8503e0ce645cc00000001,get_witness_i_by_rotation_idx(3,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x496d41af7ccfdaa97fae231004ccf58c412ebcb86019a410000000000000000,get_witness_i_by_rotation_idx(3,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x224698fc0994a8dd8c46eb2100000000 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(5,2, local_vars),get_witness_i_by_rotation_idx(4,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3fffffffffffffffffffffffffffffffffffffffffb8503e0ce645cc00000000,get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3fffffffffffffffffffffffffffffffffffffffffb8503e0ce645cc00000000,get_witness_i_by_rotation_idx(4,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x496d41af7ccfdaa97fae231004ccf5908a01dc3992aebfc188dd64200000001,get_witness_i_by_rotation_idx(4,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x224698fc0994a8dd8c46eb2100000001 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(8,2, local_vars),get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(5,2, local_vars),get_witness_i_by_rotation_idx(3,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3fffffffffffffffffffffffffffffffffffffffffb8503e0ce645cc00000001,get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x224698fc0994a8dd8c46eb2100000001,get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3fffffffffffffffffffffffffffffffffffffffffb8503e0ce645cc00000001,get_witness_i_by_rotation_idx(3,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x496d41af7ccfdaa97fae231004ccf58c412ebcb86019a410000000000000000,get_witness_i_by_rotation_idx(3,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(3,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b692be50833025568051dceffb330a73bed143479b6b5fd0ce645cc00000001,get_witness_i_by_rotation_idx(3,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(5,2, local_vars),get_witness_i_by_rotation_idx(4,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3fffffffffffffffffffffffffffffffffffffffffb8503e0ce645cc00000000,get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x224698fc0994a8dd8c46eb2100000001,get_witness_i_by_rotation_idx(4,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b692be50833025568051dceffb330a73bed143479b6b5fd0ce645cc00000001,get_witness_i_by_rotation_idx(4,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3fffffffffffffffffffffffffffffffffffffffffb8503e0ce645cc00000000,get_witness_i_by_rotation_idx(4,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x496d41af7ccfdaa97fae231004ccf5908a01dc3992aebfc188dd64200000001,get_witness_i_by_rotation_idx(4,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(8,2, local_vars),get_witness_i_by_rotation_idx(2,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(5,2, local_vars),get_witness_i_by_rotation_idx(3,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3fffffffffffffffffffffffffffffffffffffffffb8503e0ce645cc00000001,get_witness_i_by_rotation_idx(3,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x224698fc0994a8dd8c46eb2100000001,get_witness_i_by_rotation_idx(4,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(1,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(8,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x224698fc0994a8dd8c46eb2100000001,get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x200000000000000000000000000000003369e57a0e5efd4c526a60b180000001,get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1b692be5082e35c713e4bee4711f3ce08122ed4348e6aec5809f5aab00000000,get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b692be50833025568051dceffb330a73bed143479b6b5fd0ce645cc00000001,get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b692be5082e35c713e4bee4711f3ce0b48cd2bd5745ac11d309bb5c80000001,get_witness_i_by_rotation_idx(5,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2a1a93d689e9f8b44bf04c0fd60a0f9af9d508bd2e179c458fd2678ffbb69a75 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(16,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(2,1, local_vars),get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(2,1, local_vars),get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffe,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecffffffff,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ecfffffffe,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(4,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(5,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(4,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(2,1, local_vars),get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(5,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(2,1, local_vars),get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(4,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(5,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(17,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_constant_i(0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(18,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(19,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(1,1, local_vars),get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(4,1, local_vars),get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(3,1, local_vars),get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(1,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(20,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(0,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(21,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - - } - } -} diff --git a/contracts/zkllvm/mina_base/gate3.sol b/contracts/zkllvm/mina_base/gate3.sol deleted file mode 100644 index ce12d5d..0000000 --- a/contracts/zkllvm/mina_base/gate3.sol +++ /dev/null @@ -1,1008 +0,0 @@ - -// SPDX-License-Identifier: Apache-2.0. -//---------------------------------------------------------------------------// -// Copyright (c) 2022 Mikhail Komarov -// Copyright (c) 2022 Ilias Khairullin -// Copyright (c) 2022 Aleksei Moskvin -// Copyright (c) 2022-2023 Elena Tatuzova -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//---------------------------------------------------------------------------// -pragma solidity >=0.8.4; - -import "../../../contracts/types.sol"; -import "./gate_argument.sol"; - -library mina_base_gate3{ - uint256 constant MODULUS_OFFSET = 0x0; - uint256 constant THETA_OFFSET = 0x20; - - uint256 constant CONSTRAINT_EVAL_OFFSET = 0x00; - uint256 constant GATE_EVAL_OFFSET = 0x20; - uint256 constant GATES_EVALUATIONS_OFFSET = 0x40; - uint256 constant THETA_ACC_OFFSET = 0x60; - - uint256 constant WITNESS_EVALUATIONS_OFFSET = 0x80; - uint256 constant CONSTANT_EVALUATIONS_OFFSET = 0xa0; - uint256 constant SELECTOR_EVALUATIONS_OFFSET = 0xc0; - - - function evaluate_gate_be( - types.gate_argument_params memory gate_params, - mina_base_gate_argument_split_gen.local_vars_type memory local_vars - ) external pure returns (uint256 gates_evaluation, uint256 theta_acc) { - gates_evaluation = local_vars.gates_evaluation; - theta_acc = local_vars.theta_acc; - uint256 terms; - assembly { - let modulus := mload(gate_params) - let theta := mload(add(gate_params, THETA_OFFSET)) - - - function get_witness_i_by_rotation_idx(idx, rot_idx, ptr) -> result { - result := mload( - add( - add(mload(add(add(mload(add(ptr, WITNESS_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))), 0x20), - mul(0x20, rot_idx) - ) - ) - } - - function get_constant_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, CONSTANT_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - function get_selector_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, SELECTOR_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(3,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xb57260badff5653d7fde8ed417e16fa8bcaeca3ff415a361d690dcda1346c97 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(4,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3686aa934c12341b0cc122df6b0ebbc4d6f7d237b19cb6c014c94964465d2327 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(5,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x15b2fd73f652c63cf9994874ba30522afaa736c2d1b0908126adce8686d8d9ad - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x33ce497097af4c428e01b17667b1d378e0f17500b45aaa52eabbede98feab4ce - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(7,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x25d835f46ac2c2459471fe30f828939f08257be86a1ef9c0d90943c8ab0d1271 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(8,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2f651683da29fdbd47928e96e692dded2fdddfa929739ee2619bc553facfce81 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(9,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x96736cd0d5e9084465453f7613d218658b0407a98c480b35c7ddd2257c5263d - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(10,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x381da1f537045c23ec9f07565605f4214437c6f92a3c483e16268ffcd521941 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(11,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x103afdc3a1b512a5582035f0ab6d0e49329b6862d33e2fbb75b81df8737a7588 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(12,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x13edb8ca0c06dbab904b0205d5fe71fc2d163528666479491372a3888125989c - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(13,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d378a36486a6e5306fcc07493e1ca8efb824dd81604895cb853adac5cc7ddb0 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(14,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3256ca176a7a82c658247b895125a5b0f29e79665f9f1dbc548bcef77aaad74 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(0,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1e7148a905a0e2060e146dd107f4f7adc9bf1f54d2bebc1a8b3e1bda7ea278a8 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(1,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1c430efcd6a8fea10e8e044bcd6435f3ca710076b71dd326e8aa8d1dcfe3043b - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(2,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28b8b3c495643efa8209b461b29d45245a531280cb75a1547d0dcb8afa284316 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(3,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(3,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3e67d93f11dd68d214be8ba2c42bed3d74094ce3b5edadbacf44bfff005c2ab1 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(4,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xf434e82029dd3b90cd8a0967ce649729a2fda2bd2bf0bd83a57175a43bc1058 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(5,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x427e93deb399befdd63042e0b5c5bd1b837160848785e11dcb1e4e8d00d36b6 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x376bc13fe260460bc37bf8a88c76864edb82e22a712a78326eda481cba9cc160 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(7,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x198f4073fe7dd1ce38f689d9627612a765ccebcc6c2ec7d5b9a424f4674a81ba - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(8,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x322ac4bea665187242c197649a14335b8e569e671bd69a2cd1d323b14dfbf808 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(9,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x397e882d6ca7a1f4737189575a9a3797882910155f9d5189787226caac0dfc3e - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(10,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xade90b8efbc799123cdb5272730f3388f481eeb49c5adfcae66b5a7e294d30c - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(11,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2029104dac9401ee13c8c91808bb73fe371c3e6bc79100d56760acfefb9b0952 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(12,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1367d38cadefdd7603e4b72503261c33ebf93eb8e4f59ad47752403deffcc39a - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(13,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xad08173899d27924638dd2b2f88877a9ad4e0c959f1433f5e1961587ae3e4bc - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(14,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x271c3f3e355a1c129911e5490aa5a37fbe6dcf4bd49eb14055e9dfa5eb61c82c - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(0,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xedb4ed214c82344c2693e5f72af8adc3f38951b77b79f5c6b8285c97bdd1523 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(1,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2bc40f210cebc814def6adff2d2bf9193cd420c8a10f61dadf6d6f7bcdea2367 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(2,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x214116debc0cd4b062656f529d47b7c38ad218858df931fc2d4e9da2710c70ea - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(4,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - - } - } -} diff --git a/contracts/zkllvm/mina_base/gate5.sol b/contracts/zkllvm/mina_base/gate5.sol deleted file mode 100644 index dec0a86..0000000 --- a/contracts/zkllvm/mina_base/gate5.sol +++ /dev/null @@ -1,1008 +0,0 @@ - -// SPDX-License-Identifier: Apache-2.0. -//---------------------------------------------------------------------------// -// Copyright (c) 2022 Mikhail Komarov -// Copyright (c) 2022 Ilias Khairullin -// Copyright (c) 2022 Aleksei Moskvin -// Copyright (c) 2022-2023 Elena Tatuzova -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//---------------------------------------------------------------------------// -pragma solidity >=0.8.4; - -import "../../../contracts/types.sol"; -import "./gate_argument.sol"; - -library mina_base_gate5{ - uint256 constant MODULUS_OFFSET = 0x0; - uint256 constant THETA_OFFSET = 0x20; - - uint256 constant CONSTRAINT_EVAL_OFFSET = 0x00; - uint256 constant GATE_EVAL_OFFSET = 0x20; - uint256 constant GATES_EVALUATIONS_OFFSET = 0x40; - uint256 constant THETA_ACC_OFFSET = 0x60; - - uint256 constant WITNESS_EVALUATIONS_OFFSET = 0x80; - uint256 constant CONSTANT_EVALUATIONS_OFFSET = 0xa0; - uint256 constant SELECTOR_EVALUATIONS_OFFSET = 0xc0; - - - function evaluate_gate_be( - types.gate_argument_params memory gate_params, - mina_base_gate_argument_split_gen.local_vars_type memory local_vars - ) external pure returns (uint256 gates_evaluation, uint256 theta_acc) { - gates_evaluation = local_vars.gates_evaluation; - theta_acc = local_vars.theta_acc; - uint256 terms; - assembly { - let modulus := mload(gate_params) - let theta := mload(add(gate_params, THETA_OFFSET)) - - - function get_witness_i_by_rotation_idx(idx, rot_idx, ptr) -> result { - result := mload( - add( - add(mload(add(add(mload(add(ptr, WITNESS_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))), 0x20), - mul(0x20, rot_idx) - ) - ) - } - - function get_constant_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, CONSTANT_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - function get_selector_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, SELECTOR_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(3,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3009386b52e5055b6bf772a071193b84285e68e8c1c6d04bf9eb3e04ec7c1416 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(4,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2f5ef53c118f839d17420d324b653d32e3d2c07eecdd7cbbc0da152db7fb0ea - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(5,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x229efeb32c10f2782fc83a94205c8f58eef3df9ec21e4c02616e6082ce7fe370 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2dc1e7a4d1380f8daf853e1b18bca7646fea0920c2bec67d1b4bc765a06f3adc - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(7,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xf487f3f3e34f9f69dc8cd7db38afe8278ccfd1f8b4443f3de453ce31424130f - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(8,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2204c7fe4851b1df6097e6a9ed69a391eaa3ab9f175e0ade523f3a97290a5012 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(9,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x10211bd7fa4d88bf9b169c38beaadaaa20ac02ea76bf1ea90db4ffcee0fb6ad9 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(10,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xe4d49a3bceded12c90225aca726f32656f4cf07758d01febcb7cba7b81b5dd6 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(11,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x21c35fcc27bec49772485abc19d53d198c01d89ac14bc17e9aca36cafce61f12 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(12,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x33710ee97bdafd73ad5cd26c06ceceac3d17fc0aaaee3666cf2360d5cf252bcf - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(13,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x8738cc8c5c95a126b5cb08a1a218585c0beaecbf5cc0c202a130e1d7aad9c73 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(14,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xde75113dffb75a9bfea170dde9a8041d9aaf4f7315707c01690b67757a3d0bd - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(0,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xced10834452cebcf0df0cf6ce4f8fc885cf875ff12732c58c5a68c0089886b3 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(1,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xa9bb658ec7c98b39f805ce21273f3f2f5259db645e66049405e6354d245b875 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(2,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x333772e36eb7e2acdee8b1aa4b64db7aba1a1101469f45e982b310304a824ca8 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(5,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(3,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x22103342cc8bf7fc52d7b43b7546a60cd88d4ae331d9325ad3a2e5596f33cff2 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(4,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x12d9c33d1650ed92897261e2d40d340d01e2da78ec9ba48b9bbbc529118fcb03 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(5,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2ee1ceb24904e5d71dbefd731c2cb83afcedf5c09e3bd0c1012d36d1b8616964 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3d8bf6bfe16dffe2bcb345d797161c8eb214ff39d21fd52c668edd71aec0bac3 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(7,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1b57ad420634d570122a17a5a67982b70b8df3802bed743a94afefe58f000061 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(8,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1fa2e4f11ca609de7ba539b0081c7c5c36c4b8bedf2392c621e65ed1b8cd6293 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(9,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1a3cd81d336c1390f0dc4a1be36ce40463fa86218bf75669d010b71167d206fe - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(10,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x620c1dd2dd4f64bd9a25af10e8a6f633aa809f073b3192b7c35227c77b67d48 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(11,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x364f72a77ac27536f73a4eb1a1479ee4dc52895163b0403b9f9d7dde03205600 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(12,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x21319dc8b28618e824b59706322550ad29be49c295d73827d36b554263a85f5b - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(13,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x42f7648d85f11f71d9c05a1ca49e7249a6edc2e0608e4a5b52fe78964605e40 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(14,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x12158a0c85263036b36aebe404b8e633ab66439493bb4bd8611df7e584d502 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(0,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x9205e75645e4e6bdd7b6b575350f9975702ec52346c56c9e71e6daab2f19a34 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(1,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2e616724c0b6328034c4f9cda98263357cfd0deec832e4e3a3b0cb5dbe6ce2f5 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(2,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2eff4de3cf9b8a27e94c10328a3c51ecc5f1ebbf43e056f0db91b1a7192fd3e8 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(6,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - - } - } -} diff --git a/contracts/zkllvm/mina_base/gate7.sol b/contracts/zkllvm/mina_base/gate7.sol deleted file mode 100644 index 59ae177..0000000 --- a/contracts/zkllvm/mina_base/gate7.sol +++ /dev/null @@ -1,1008 +0,0 @@ - -// SPDX-License-Identifier: Apache-2.0. -//---------------------------------------------------------------------------// -// Copyright (c) 2022 Mikhail Komarov -// Copyright (c) 2022 Ilias Khairullin -// Copyright (c) 2022 Aleksei Moskvin -// Copyright (c) 2022-2023 Elena Tatuzova -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//---------------------------------------------------------------------------// -pragma solidity >=0.8.4; - -import "../../../contracts/types.sol"; -import "./gate_argument.sol"; - -library mina_base_gate7{ - uint256 constant MODULUS_OFFSET = 0x0; - uint256 constant THETA_OFFSET = 0x20; - - uint256 constant CONSTRAINT_EVAL_OFFSET = 0x00; - uint256 constant GATE_EVAL_OFFSET = 0x20; - uint256 constant GATES_EVALUATIONS_OFFSET = 0x40; - uint256 constant THETA_ACC_OFFSET = 0x60; - - uint256 constant WITNESS_EVALUATIONS_OFFSET = 0x80; - uint256 constant CONSTANT_EVALUATIONS_OFFSET = 0xa0; - uint256 constant SELECTOR_EVALUATIONS_OFFSET = 0xc0; - - - function evaluate_gate_be( - types.gate_argument_params memory gate_params, - mina_base_gate_argument_split_gen.local_vars_type memory local_vars - ) external pure returns (uint256 gates_evaluation, uint256 theta_acc) { - gates_evaluation = local_vars.gates_evaluation; - theta_acc = local_vars.theta_acc; - uint256 terms; - assembly { - let modulus := mload(gate_params) - let theta := mload(add(gate_params, THETA_OFFSET)) - - - function get_witness_i_by_rotation_idx(idx, rot_idx, ptr) -> result { - result := mload( - add( - add(mload(add(add(mload(add(ptr, WITNESS_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))), 0x20), - mul(0x20, rot_idx) - ) - ) - } - - function get_constant_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, CONSTANT_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - function get_selector_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, SELECTOR_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(3,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2a86e064415dec6c8df737d86b1499810cc798bfa396ae72191de52e1b15aee8 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(4,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x252414a163b2aea1302daf1411a95d580b5b5abe407724dad781ee674caf419d - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(5,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2040b8c77bb565db6513dac171bd9f1b773cb6901f234e1b786e226bc311343e - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xbe756d6aa913ae5f79ba644619c57de4e3f606f3ac9647ffe394d3cbcb150f3 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(7,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x36bf94a3c50fd6f0668bfa2f3ae4196add96e6bb34be0e6a25c056e8cd170063 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(8,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1c131a28f4c733362bc326dc1a1c1d09f52911bf780b0a19a091c30bcc90a43a - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(9,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x27ad2a8b1b92c8f5f4e19b093be11472e1770236e4a6cfb6330e01f48198dcb4 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(10,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x359a8fd833172b0dc715769221d8c48aea919094bf168cb4e5b49354d74f3171 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(11,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xb7d0675b913ca7ef7044497026b070d679f5c89cd9dd7896ea822a7aee0a5d4 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(12,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x9d0e9b0736fa4cca5934089ece2dbd200eb78132a131ae6eca072b13ab9c13 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(13,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x381c680afc063e315fd7b9a4d6af15bbd730d31153e52374fa8a9e967a96b211 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(14,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3bfa0e038ee78dc8c2914af5f60404fa6fd65e1b68980b632e3f7ed624e8578b - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(0,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x341f7b714c1f638fd8eef527bd3afdbc05aee95abec8b5149c2e69985da9a740 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(1,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x19487877026753fdf4536d2f1886d44a225992457174b1257b94e15ca2645791 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(2,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x702ace72c6faa37d0106422cccea5ac0637d4c5cae038b32927a9d9aa205a8e - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(7,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(3,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7f42fc47bf3b73745c7cf1835318d0707f696da7ceb8686b064748482ade923 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(4,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1391a8223e2837e5fd6612b63c28b8a6e0dad0b99a1c166c430aa790ace4b1e5 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(5,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2e2c57e4d9d038910af91192771a66e3145dcd5e37ea1f9f407bbb0943ba7b0e - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x36494d7c1450ba044e1bb76965316419f767311e13c6e48941eb52365e458212 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(7,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2a2af6ae9b377a89c057c3208892bc9c9fc47ee44cf79575e236511f53afb523 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(8,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xbd8024035c315dcf9c14ec73afaa39374aa56a9570fe65a769a005e00826edd - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(9,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x18d0ed18cef8848bce810dabc3cc479e8d6b7b5612a5172cb8c7ca7a37e97a03 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(10,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3acdc07a21473f83e6c3c858c28909eed8df07c1dd701802033bad05960bd69a - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(11,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2a31bea1351b45bd4be815c5afe4bb98d5229fe2959fc510402276dc7ad2c29 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(12,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x31713e7384ad3aeb2bdfb80e0f4d56f36985d1c2ec53b17ec12fd4eee2c2470f - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(13,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3ea6e379a158f9a2abcfbae60744d9744487e9c10e67aa3ec912adae2f5610e7 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(14,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x12241111a135a2111b40e8763bca1ede065c1ea827408256bb8be4f03cee606 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(0,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1c96e38ff646d7c4d97899172b6e8e92e62d05151c58a03ca035ce3dc1caa8fa - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(1,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x193254d37c814153a415b41e290fb77fedb62587313297784a10e339682b3f66 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(2,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x12ddf98cf99b2a741f989252e011f16716204e87f8aa2b64e3d6dd2b208d10ab - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(8,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - - } - } -} diff --git a/contracts/zkllvm/mina_base/gate9.sol b/contracts/zkllvm/mina_base/gate9.sol deleted file mode 100644 index 4b01391..0000000 --- a/contracts/zkllvm/mina_base/gate9.sol +++ /dev/null @@ -1,1008 +0,0 @@ - -// SPDX-License-Identifier: Apache-2.0. -//---------------------------------------------------------------------------// -// Copyright (c) 2022 Mikhail Komarov -// Copyright (c) 2022 Ilias Khairullin -// Copyright (c) 2022 Aleksei Moskvin -// Copyright (c) 2022-2023 Elena Tatuzova -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//---------------------------------------------------------------------------// -pragma solidity >=0.8.4; - -import "../../../contracts/types.sol"; -import "./gate_argument.sol"; - -library mina_base_gate9{ - uint256 constant MODULUS_OFFSET = 0x0; - uint256 constant THETA_OFFSET = 0x20; - - uint256 constant CONSTRAINT_EVAL_OFFSET = 0x00; - uint256 constant GATE_EVAL_OFFSET = 0x20; - uint256 constant GATES_EVALUATIONS_OFFSET = 0x40; - uint256 constant THETA_ACC_OFFSET = 0x60; - - uint256 constant WITNESS_EVALUATIONS_OFFSET = 0x80; - uint256 constant CONSTANT_EVALUATIONS_OFFSET = 0xa0; - uint256 constant SELECTOR_EVALUATIONS_OFFSET = 0xc0; - - - function evaluate_gate_be( - types.gate_argument_params memory gate_params, - mina_base_gate_argument_split_gen.local_vars_type memory local_vars - ) external pure returns (uint256 gates_evaluation, uint256 theta_acc) { - gates_evaluation = local_vars.gates_evaluation; - theta_acc = local_vars.theta_acc; - uint256 terms; - assembly { - let modulus := mload(gate_params) - let theta := mload(add(gate_params, THETA_OFFSET)) - - - function get_witness_i_by_rotation_idx(idx, rot_idx, ptr) -> result { - result := mload( - add( - add(mload(add(add(mload(add(ptr, WITNESS_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))), 0x20), - mul(0x20, rot_idx) - ) - ) - } - - function get_constant_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, CONSTANT_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - function get_selector_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, SELECTOR_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(3,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1448b44e7ac8dccb5b10a092e71d131ae1bfb2d104b49b4404761f71f416de82 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(4,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x99daf016d73ba272a55ca0f5ebd8ab71a475ca2853cdf804092081f7ae4ddfd - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(5,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x279707ee7b7d394b5a59e57e375535ed98f3815fe855bed796ff9776423cb510 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3486fe398f1e28a28d914772fff6af4c58e2a8046282d4824d51293ed0874b2e - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(7,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3cd3b427548f1e0da508850a822cbf373b7df7fa2987103e95fbeb86246f4791 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(8,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x231c924ce01915c326cf724655bc5750c604f00b62fc5d1d983c4938793f5477 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(9,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x19a691561e6ea1ac25cb86162ec3c36e1d40b6b76b1aa10a99c0889701b48393 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(10,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xf0d695d967975803570a4e1d963fee9f1f8a5e4dff75ef48abbfbe32c592a25 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(11,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3da7769e1008768278149538dcaf1060cfe292b43d7ac7e50792979f02e6862c - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(12,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x295b61968de17f96f2be1f9dd61643d2674cf65014946592be08ab93abf629d6 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(13,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28535fd3fae03527f8c30298def32bde81510710d02b4cdfbf251af93a25842 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(14,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x16642b758bf4886ff8ad97ced547f8d3b0047b1663097975b6d8fefd6ae7b84d - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(0,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2e59647982615dd13e4d0d71699e8ed63ed7a94d5f64e6afbcc2ee336f8d6fd6 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(1,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1a43e50c6e0c3e0dd7b56a256d4a77c3070c5882be29a068b1862122dd259b33 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(2,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x9e54c7bc0b272252121c627d44e57ef82bce2225f3b7d8c62cf4cb46a21f457 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(9,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(3,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x710c54a49e3ee85cb9a5fe8563745b3ffd03f47e96de4c99257678c0b622ba6 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(4,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x66d07c0d9ebc24242cca9fb5e5eb250febbb4bfe4b57525042e8196f5551df2 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(5,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xafd78688148e37e4ef132fc655266307859145bc64b2deb128f132505e239c9 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x504a43ed9fdfa79233345cd22fab3267e52e0c73eb680451900e83b25682914 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(7,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28d483d27181b4f92e7c5da8a486f8b651af8ca772e8f12109d429c08d621990 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(8,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x114ac01c5d8797758fb6ba961ab5f0f2fbad634d4284615ca459c82b0982a81d - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(9,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3c8a51a94726cef2aac12882bf92123c320d5aa1d7318750aac2d535f874afcc - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(10,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x22b65f2ac43d66c340e04a2e256448903ddc28ca336724dbeb6ddc30e83e10c9 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(11,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2cd2e8478354928f82205e0fe20e8db54ecd41127f88a9fba2190ab6806acea1 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(12,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x39d25ad7f6b727393b5338195e55bde112a7d782650bb2a698cc72a1198aa07c - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(13,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x35b4b2a321ab568b15b1a811becd2d54fd35d5fb1733c844dd6e0fcfe5227f08 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(14,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xca90e04153b6c33548ad48f44127de33dad333a76c82170cbb434f90079b170 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(0,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x25642daf8a81d610b6a646410a64b19f403c42cb8be86733e1431140986386fe,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7b55f6050c5b78c81d29b095fcf55dbf3d93bb6ae6857e50278a679df3af934,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d484fdf643cf7ff9b2a31b585fc9ac2a1233f549a628a5931b192e6193012c,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3bd8de175633cdaa87ae014f1fe6f3a22651cde07a05259d1ac7f2260075bfa8 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(1,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3611a838f43caeddf4ef867c503054417aae305760a767dd747585f94b40c5bf,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1f67666943d65692e897b2c52b37a67ef131727cd42a9b9d7a92d598c95dba72,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2b1c6524d1e8e51dcdee9be61180d9270927bb1363e9d68364b055783c4d1964,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3ac264d9cc000ce35b03a8db3194bbddf0c5702e193461487744c1a53208b750 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(2,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28babbca8497809a56a6f3e209de7e74cdf3c327c7f37e8763ae1fc9e9109836,get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x356d9c23e5e62e83040ea4fe9944da08c669ca8e81f47139c3efafcd3d3beca,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x30e04108a2b549c4857ed07f484fc8c6f6a77299f927ccf4bc7af17f551eeb5,get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1982693515021a242c24e0f9974f6332cf1c760be8f864aa2eb4ced304b37fe5 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(10,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - - } - } -} diff --git a/contracts/zkllvm/mina_base/gate_argument.sol b/contracts/zkllvm/mina_base/gate_argument.sol deleted file mode 100644 index 743d55f..0000000 --- a/contracts/zkllvm/mina_base/gate_argument.sol +++ /dev/null @@ -1,119 +0,0 @@ - -// SPDX-License-Identifier: Apache-2.0. -//---------------------------------------------------------------------------// -// Copyright (c) 2022 Mikhail Komarov -// Copyright (c) 2022 Aleksei Moskvin -// Copyright (c) 2023 Elena Tatuzova -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//---------------------------------------------------------------------------// -pragma solidity >=0.8.4; - -import "../../../contracts/types.sol"; -import "../../../contracts/basic_marshalling.sol"; -import "../../../contracts/commitments/batched_lpc_verifier.sol"; -import "../../../contracts/interfaces/gate_argument.sol"; - -import "./gate0.sol"; -import "./gate3.sol"; -import "./gate5.sol"; -import "./gate7.sol"; -import "./gate9.sol"; -import "./gate11.sol"; -import "./gate15_0.sol"; -import "./gate15_1.sol"; -import "./gate16_0.sol"; -import "./gate16_1.sol"; - - -contract mina_base_gate_argument_split_gen is IGateArgument{ - uint256 constant GATES_N = 22; - - struct local_vars_type{ - // 0x0 - uint256 constraint_eval; - // 0x20 - uint256 gate_eval; - // 0x40 - uint256 gates_evaluation; - // 0x60 - uint256 theta_acc; - - //0x80 - uint256[][] witness_evaluations; - //a0 - uint256[] constant_evaluations; - //c0 - uint256[] selector_evaluations; - - } - - // TODO: columns_rotations could be hard-coded - function evaluate_gates_be( - bytes calldata blob, - uint256 eval_proof_combined_value_offset, - types.gate_argument_params memory gate_params, - types.arithmetization_params memory ar_params, - int256[][] calldata columns_rotations - ) external pure returns (uint256 gates_evaluation) { - local_vars_type memory local_vars; - - - local_vars.witness_evaluations = new uint256[][](ar_params.witness_columns); - for (uint256 i = 0; i < ar_params.witness_columns;) { - local_vars.witness_evaluations[i] = new uint256[](columns_rotations[i].length); - for (uint256 j = 0; j < columns_rotations[i].length;) { - local_vars.witness_evaluations[i][j] = batched_lpc_verifier.get_variable_values_z_i_j_from_proof_be( - blob, eval_proof_combined_value_offset, i, j - ); - unchecked{j++;} - } - unchecked{i++;} - } - - local_vars.constant_evaluations = new uint256[](ar_params.constant_columns); - for (uint256 i = 0; i < ar_params.constant_columns;) { - local_vars.constant_evaluations[i] = batched_lpc_verifier.get_fixed_values_z_i_j_from_proof_be( - blob, eval_proof_combined_value_offset, ar_params.permutation_columns + ar_params.permutation_columns + i, 0 - ); - - unchecked{i++;} - } - - local_vars.selector_evaluations = new uint256[](ar_params.selector_columns); - for (uint256 i = 0; i < ar_params.selector_columns;) { - local_vars.selector_evaluations[i] = batched_lpc_verifier.get_fixed_values_z_i_j_from_proof_be( - blob, eval_proof_combined_value_offset, ar_params.permutation_columns + ar_params.permutation_columns + ar_params.constant_columns + i, 0 - ); - unchecked{i++;} - } - - - local_vars.theta_acc = 1; - local_vars.gates_evaluation = 0; - - (local_vars.gates_evaluation, local_vars.theta_acc) = mina_base_gate0.evaluate_gate_be(gate_params, local_vars); - (local_vars.gates_evaluation, local_vars.theta_acc) = mina_base_gate3.evaluate_gate_be(gate_params, local_vars); - (local_vars.gates_evaluation, local_vars.theta_acc) = mina_base_gate5.evaluate_gate_be(gate_params, local_vars); - (local_vars.gates_evaluation, local_vars.theta_acc) = mina_base_gate7.evaluate_gate_be(gate_params, local_vars); - (local_vars.gates_evaluation, local_vars.theta_acc) = mina_base_gate9.evaluate_gate_be(gate_params, local_vars); - (local_vars.gates_evaluation, local_vars.theta_acc) = mina_base_gate11.evaluate_gate_be(gate_params, local_vars); - (local_vars.gate_eval, local_vars.theta_acc) = mina_base_gate15_0.evaluate_gate_be(gate_params, local_vars); - (local_vars.gates_evaluation, local_vars.theta_acc) = mina_base_gate15_1.evaluate_gate_be(gate_params, local_vars); - (local_vars.gate_eval, local_vars.theta_acc) = mina_base_gate16_0.evaluate_gate_be(gate_params, local_vars); - (local_vars.gates_evaluation, local_vars.theta_acc) = mina_base_gate16_1.evaluate_gate_be(gate_params, local_vars); - - - gates_evaluation = local_vars.gates_evaluation; - } -} diff --git a/contracts/zkllvm/mina_base/linked_libs_list.json b/contracts/zkllvm/mina_base/linked_libs_list.json deleted file mode 100644 index b729908..0000000 --- a/contracts/zkllvm/mina_base/linked_libs_list.json +++ /dev/null @@ -1,12 +0,0 @@ -[ -"mina_base_gate0", -"mina_base_gate3", -"mina_base_gate5", -"mina_base_gate7", -"mina_base_gate9", -"mina_base_gate11", -"mina_base_gate15_0", -"mina_base_gate15_1", -"mina_base_gate16_0", -"mina_base_gate16_1" -] diff --git a/contracts/zkllvm/mina_base/proof.bin b/contracts/zkllvm/mina_base/proof.bin deleted file mode 100644 index 52047f8..0000000 --- a/contracts/zkllvm/mina_base/proof.bin +++ /dev/null @@ -1 +0,0 @@ -0x000000000000002014cb1a286c58c4ab2ac59057c827929acd2caf324140fae2d2c0dd768bbfed7c0000000000000020b3799bb2b33db62682d33a18f7e53d7c6831a34944d341f9e28d32d59f24fe550000000000000020e8d97ac3b25abd10e6f572df58a247025f5ae92954ae5f0fe782d2662ff4a767000000000000002086717ac43b7d5f82c8302f3d130b855380f095945b7e69704f38362537aa44091cfabb054c12cd71a0e49d558454af35c6fa55fdc11ab3ba7e9386f5fea75f7a2a1a4bf5fed988d7b3a0d882ba1dd35487ef417fcf1ae607652c1631ae9ed09100000000000000040000000000000010000000000000000313cce3fbe2ffa151b5a9ead5bc4c0a1ec86f1fec6d6acfc0415761e29ea022be1067bbaae9780a6d25fdd013b4e2ec9cdef3ef1ead105fbb92b6690c8c8fbb542c9c23f6daee1371a349506109bd90da3c2fcadec128f1f2759f22e1b2bc1e6d000000000000000336f5c615752f7ee51c51f4f6529b02f98a8019e2eedc18a2a3c7b91e726376520324f1bee5504015518e9d7463f0ddadd993b324d2d917f5f8d2d11665d408ac3981dd9fcfd5fda17713ba27af721d1ab84e12772957ca3407f6e662fde7d00d000000000000000333ededad7f29694af337640b2db62bc7508f30441c64ace3e941ac2d3ff3014209bb76293c4c1749f575dab500620b54bda0bf84888053e370f350e78a46aa281ac1f3b817303e9f3d3a2a36aab4a8ec9efbf2e83bfa9f8411c761cfb331d0e20000000000000003212c7af8f01c4e46539a61dd6714e82f41a84bb0a3221077182fa0c4cfff47d522ae21015a789c482bd7efa40da3f64345092abe63f60fe5f901bc09f0bf949e35108299e90f77b5f7d804114e25e6fbec03097a142424c72d40616c79cecee50000000000000003264c84e3d6d8a7d9721a20cc0185bf07fb6ab61ea8459cd80ee992c8fb8a0e822ac960e6a1773743c7fac7bc3c64d383dd8f83034f06b35fd1108f68fdec24242f5dc6b6e3700bc35782356156b211714a5cbbb757cc069df4bda3a1a3e4b0e900000000000000032a996ab9875716152bcadc1ddb942435ece805d11b86266b57dd29cf4edce0c50d2f7c4a5917fd2410f4c94e311270b61eb0a56cdab2817d19f329f1d6807831025e55303c0dae69f899c103d68d36157596c4e777bb2ba694793ab7442502b40000000000000002098e202af58516e27b2bc679c8474220358373625925bcc479c85fe37cb4551310601b373bfdd61a910c783005e8fca4daadd32ee1c127570136e4853685cf350000000000000003322d15b75e8541d64520be70443466366772ef1dea0b0512e493aa0b9e9fe32412768525718fff265c79f8d06a511cbb3940b7df6ece6495e8f91d081ee8491a003b9d0eb64e989e9c6eb50778811ca0517020cb0bc7d59e423ad2fc75df827700000000000000031d6d1d0dea6c034c3f5ea2a9b9aa7a557fd81c36007aafa341c567424b8d1291267aa916eee51d77123414daf0f98eafa904f2f5bcb4a9854c1beb1ddb6717b52386fa4d10c90bbade5316ca76312a81e2f0f49ef77156fdc0e777d8efeba97f00000000000000032d11cc8f25a1875ae84531feacbb2247b133813fadeb99786230d53024762ef422e91d1707986d444b304e8c7e449a4baee35a858d36195f0b2f16cacb449b15027745bedb5f8c3e9127edc32907ede0117e40cafb12bb505e6dde86081b8c3400000000000000030ab79e3cbd068534985889abab3648697ddfb2d7d7b300d965f50396f35015ba1323dc6fc42e71c62dc39dfe458de5790ba6c72a4ac01c222cfbf31e85ebceb82371e3c3976dd9b06e2c38f6b0017caceb221c7a586a407299b95dfa5f1a27070000000000000003283ba6860a6f8bc8078cb68c9cfd7bef5574b58c29dc9a0c816207303df277dc15b305c55d90eb1e374af61a530e8240eb88e8b9239b91068a2954c8e43b07cb0013cb16d17fd69593446fff87c3a5da892f897858c173e9bef3f1a358ab6bd400000000000000020f264eb9bdcee242a45647375d412061aaf87458de3f68992cb43c14263588890857636a2d19e26e512e280ebaad0053e995f3b621c2d62f95d7674edbe0ee13000000000000000200374fa9569900a515bcfb4cc567bc1fd1d8dceeb263b575ea1ddc60e1c683e925e5f202adadd6c0b844876aaa1f864715a6c27bd5e9f1a4fc360a048a4d86a400000000000000023197307388b020679ec93ab82662d3010fe511e3ce705a912e62538c746125290ca7d4cffac824e6b5001a3678ad3841bf85415e6a877215f77f4be7788cc04900000000000000010034bb7b023343677744637fb03b6b74b71013065252908acd9e926e20f8988b000000000000000100000000000000020f55858c4757b0c4866f3134e5038c652bfdcf29e5f736f1ecfaee79eac567a71e7a81f69b4d36a4c3056e8888e4b7a0d0750414ba566541b2d5c9d1a829a86d000000000000001200000000000000012ff2d36117d2b6d1b710ded9ba86618ecf71ddc747f8424d971e4236d69004d90000000000000001133bf41c2efcb5798e985dbafb52cf5156a41cae929d74cea89a7d88c1048d050000000000000001250526e7e3be9978b3d7347d5e5179122401b6948426b7d25d1cfb387f56ec9d0000000000000001343f3e3df4d15f7e1ca5b26818f046178cddd0020897e25ab45d4479cd32cd0c000000000000000116ec5b9afa9fddb5a1444ef86be06debff776a722920898091c66a484af02f6c00000000000000011e09dd75b248d709e7bbf55f6d32bee4046b7b0fb72971cdf7c340a69fd0eca500000000000000011ea9b055ef6d81a6bf7f2de5eb2f51540845985d6cd83aa8007122416b146c2f000000000000000100290d14f1878f0cbbf08b2c7eb59871e4a16a3a6b49cfb2ed35202e15bf4380000000000000000126c84b8483bab3972ac06b8032ba0e7f38e3479985981618fcc472501e6eeda5000000000000000137ff0ca960b5b175425cc4f9de7413c7edb98a4f65bc3d38d3923a16b0009d51000000000000000113392ddda4cdb03f5f1e9d4fa524ce7040a35c97d4b9069e64a412d6e7b5d4fd000000000000000105cc297c54a8b1f95e9237737ad208b630611129730338f2b1a39e8de931332b000000000000000112668c7ef69ff5a9da88df2845479eaddea16ff4719d277121fc807c5e642d08000000000000000101db497a3b0980697c2c59d84f782eec84f271c34585bd7d38579197c3e426e30000000000000001009b323068a189cf80a3bb674d775d7c433e02f4a614b7444333a53b69866b3c000000000000000128cab0b7371e6f56d7e5a61f508732eff4d5e45e6f1ddb7d556b3485fe49acea00000000000000013340e839649c7d2bae604890e1986775914705f5f8b841aa71178c1bdf611f6100000000000000011fa35b582008c73d600a84a32e1e999185e764b606f55d083c88464e8d579739000000000000004300000000000000011cfabb054c12cd71a0e49d558454af35c6fa55fdc11ab3ba7e9386f5fea75f7a000000000000000110e5a71a7c5e0338247712ab95a76c0c9e567bfcb2eb906d468740f3f944dd600000000000000001147c43846dd61018b6535d59ec451c3ef569d2f3754cd906c77713d6de5852df0000000000000001266d5196252e507b8fa0d2c19d598d3aa8ca85c5413344064c26324557b99e5a0000000000000001002297eeb9e79269ce241dc812bfc224e520d1e62a1968ccb1376893b6a017bf000000000000000100acf7a9a185dc1106b494e85dbecab879a4197ed27f0bff76150ae2912076bb00000000000000010360d650279d4c552186e889d4b9f59a60347f7a1c7b3bfd4e69366cd5a251a7000000000000000110e42f90c6127da9a7a28ab127a1cc03e1067d628e682bf2880e10202c2b984300000000000000011474edd3de5c7450462cb575c628fc1342d9d9f0bebbe2a10f191fb3dcd9f94e00000000000000012648a52357ce45915edf8b4cdeccec602bfaa8b7b05e7409b2506d965041de8500000000000000013f6b39b0b7075bd6da5db8805a009de09758199e5f3e51f94937c2159149589700000000000000013d1820739324cb3243d49a81c20315626b9e1c27b703b570096206b7d66ebaef00000000000000013178a241dfb7f7fb53270488ca0f6aeb90fc28d66ddea6c1ca355de33029a6a70000000000000001375b2b495e97d7e89fc316abf24d16996e19013c09725676278342a8f0d04140000000000000000114c7d86ed8f7378b1ecf715bbb8170fe9d62a23c0a07cbe060db8998b411463c000000000000000127e73a2a3cd415b79a0d36caa98734f8f0a6923028da02464b1c7f0e84565f2b0000000000000001078422d330246c96024211f54fa408dc4c6d0ffcb05b200cac06e88195afdbd40000000000000001062253cae1b85eea3a277f8c73bc5ef54d408fb3eb87c685fc747c4fbc414b96000000000000000112a388a0a8a66ef623ae1aa6d3259f145722f53557acc6cf8c3f970a18f6e4b30000000000000001391c1a1e98354fb99382552e0d01c2f16e23677fc9760bbe7c504ac8b3859bec00000000000000010a3fe93ca50cd05808acad320c5c32bfa7dba62c42372fca0edb62a65aa8f22e0000000000000001252bddd5abc1004b218ec7121eed41638d3bf87630892581aa99cbfedc7ba5c200000000000000012e2c0ff4a8ab90988b76d03b44209c39e134a81827a71d6e08bd21b3170e8bf900000000000000013cff91dd1f05d40e129a20e17dfb548d389a45a21e38547aabcc0048d1a4520600000000000000011ae6ba2a815d3ca4cd606ac609b4cdd68beaa81e5aa0c1565409f18513bf848700000000000000012011da638aa120135d170576bbc3a40778863703e0189cb30fdb2983a9a6231800000000000000013f022e28f476709068a5993acddf620d070a27ad4151b16b47f83a379cf604f800000000000000013b0ae6ccc65032d20b3bfe26055cea409a186272216492aa03245f6210ce18d400000000000000013d1820739324cb3243d49a81c20315626b9e1c27b703b570096206b7d66ebaef00000000000000013178a241dfb7f7fb53270488ca0f6aeb90fc28d66ddea6c1ca355de33029a6a70000000000000001375b2b495e97d7e89fc316abf24d16996e19013c09725676278342a8f0d04140000000000000000114c7d86ed8f7378b1ecf715bbb8170fe9d62a23c0a07cbe060db8998b411463c000000000000000118cdce3d748f460a4029272116d086a00298619b61d1f7ffa1f254b962cbaff000000000000000013c016d06271907465b60e3d65ab60fb9c562e32e68613f9096f4a31f49483edc00000000000000012dbcb53a1d20faad054d31997e87f384d067fe86099316054062ff1b1d946a9b0000000000000001387d3c716cfca2ed1f59850ea5b8886e02db8792a7add5eb4bbe37ba6e25894000000000000000013f4d6b421651bbebccad7e6138a1e12ed4a2347604706ad333344f12c5eb82ad00000000000000013d037abd9a03aa19c2476186ea1be8ddebd050e3c320e2980414aa4b10cfa1bf00000000000000010ac2c9afac705e36fbc080cbd05bec9f24858d2be614e787fa936a4986fdd22b00000000000000010a82505c7328c9a443203dd77f1da1324379d21823ad492f4c3c1565b18c286400000000000000011a28037852c09bbd598e07952f15d596f0bc53b08b59b336f0ba35b2646926e40000000000000001325113e909f164be212ee2b3a7bf3c61570a45e0a95088e4e1a0d952debaa2b10000000000000001311c1f4d94c84f035b4d5d5a92727a761785bac5482f6c52f4310e0bb92e34a4000000000000000115d91f44fdbc0a886dcb0a0366631fdaca42b071ec59adfcbef6d0998a76f82300000000000000011c8d88c7ea19b2e7cd2af41ce6936798878b03540d262d60c15f4c92ec0f06b8000000000000000102337403f74e49f26e1aa3818b4b7ec6c6ff8149284cf4b2910144b7dc097260000000000000000120d147c26c3bea231f87433b51e25addc9dc32f92a0730dec2926a4a01e4207a00000000000000013c0b67d6684d5b65fef4deddd0622c0d9a5b6f1b6b65d550637b0513965f125d000000000000000117b01ad7ee7b9d7bbd889a439dbcfd3d1768af3578770787e37a8cfd303a2eb40000000000000001379234d5017db831fc42ebd3e3b4c0550a0b1552d95d0276de5b20e0cc64459200000000000000010bff1248a0bf01fb05bd309fd3d9e16cdf11cec1b96cfdb678d5082b82183d7800000000000000012794cd3e8f5ddf7547713bbabb96eaaf2c43646a375863099cb29ff3d8be260e000000000000000135a23b1cf43c40bfb5d65c77ca84f9081a34186d354d6afd2de831c24923eab1000000000000000114c820fa8ee93cb28488476694fdb87a1e847b0a7614d6b349357fd13774f10000000000000000011a11e4eeb66384f86dafb6b0547c0772281396731077a610171622ffab5a9ab30000000000000001369e6205f77aaeb2b65678bb102bc1dba52d8bfea1c6bba92c930ae9326660eb0000000000000001210678c1a7581ebb87f3f223ca2d58ed215b38f5dc6eda2f4a3f8e1bb1551920000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000012a1a4bf5fed988d7b3a0d882ba1dd35487ef417fcf1ae607652c1631ae9ed09100000000000000012c0f7faa98ced5cc2c21e9f45749e6eab5e99844595aa4e1ad73b380c415b50400000000000000100000000000000020979efed344d3af4abce365e81207d83a8d909f8ff4e32f936d87aa0bac7983d90000000000000020149a0577ca6898642f277429dadc5df8bc3a56e16f1b87a2f5c3e45116fdef75000000000000002015dec83b8a701e3a8dba34b8237dd2f7e4ab7565f8e81f3dc0fdae2a0c85ad100000000000000020d6e4a966a7c7f6f32f3a643421c51839b2ec8bc31d734b6a0e67c6ed4135f25700000000000000207ce51763167c2d5d61537d41337a8ef59fecef3bf2ecfe6d3b79b2fdc48c576a0000000000000020223b8f544e9763c5295ccaea6eb3b7cb1301419b4cdf939a065d9a9e03221c4200000000000000200fdd2b336f69dcfaa4e58a4dfd3181ca6cd4ef89828312e1ae53351bec7c5b520000000000000020fe5735b472609d52f50c9af7acebdf51b0136d833041e9902de1009e12dae8c60000000000000020d5705c7f7acb049c1d7cc974667c1b1f4224452d9f625be8d0a47b3b1840727e0000000000000020e950a5a0895127c95a36fe86863f28870b0157fa416b7c13fe721cf23da3db860000000000000020d48556dc18d572c1592a5fdada495a41b85b6468e628fefd1018d0bc3e2e35da000000000000002071e2c5d6bb501163893110a8ba67bf1fb5e3366e357f3f8390c7ffd8ac46d59f0000000000000020be4dc51a95106cbfbe2fb1855a7faca3c41c092b94732d454f4c5daa8545a7e10000000000000020232a105d258b8d50dcd3e46e1c13bcb3ab02dc1c373554ad086e3dcec0adf23e0000000000000020bee9323487a966666f79a4e3e054937b5315994054cdbd49852e71b19807fd37000000000000002060bd35c8f6ad3d0af8024557ada4a70f6c05f624b98bd6a000c08a4ddde8c7e600000000000000021ee7b8b67ffcdc5f05420e62c815466f6955536898b9d9f521e0660f514c67232564dc274ef7815eb78c3f945ebcb946d3ebf478b0162566bca6993a190510b30000000000000001000000000000000400000000000064ae000000000000002014cb1a286c58c4ab2ac59057c827929acd2caf324140fae2d2c0dd768bbfed7c0000000000000010000000000000000100000000000000010000000000000020d49549919a7e00dac71551dd4ee20a822fb1d9f44b0943a786cf645e7b81bdb8000000000000000100000000000000000000000000000020942eeec4d7ba4d74861c232192257077b5cf335ebab19ef9407de919304f4a54000000000000000100000000000000000000000000000020b167d17410d217772b41a0ab7c1f264fbb899fcd309f49a150f96b8800dd19830000000000000001000000000000000000000000000000202ff10ba9b2faeda05104dbf73e69a83a5fa48fde3776f5f0098d0b7373f914d00000000000000001000000000000000100000000000000208a977e44fd2770cbe3a7c5e5f604cb1f8094ad5466adbc660649b2d6eead31370000000000000001000000000000000000000000000000203a3e8a96840fcbca7e799217c1ba18a172721c0ff9e2165567cd07596b35472e00000000000000010000000000000001000000000000002075777ef2fb9ba4fddd10c4dfad24a2ac9e8c4c7385f824c78270582f53be906600000000000000010000000000000000000000000000002015d0d39a5e00da941550e94f971db47a78f03870ec3b4a4861b7bc86ec4fc3510000000000000001000000000000000100000000000000201663f21a1a689fc6ebebd71c1f3b6a77e29b1fc03e5ff9a81c9b499b5173593d0000000000000001000000000000000100000000000000206442b890248152ffaa37fc61acbec69b5db9ed38379e9bf5b8c3cb925bf31bad000000000000000100000000000000000000000000000020637a4203c0ea3d058cca3e35ed9b05288c1fe353b8bd40d1713761f780229caa0000000000000001000000000000000100000000000000200cfaeebc96978bb063ac14d8fbec0df7ca3c72e8472c1057e57db37e87e11af5000000000000000100000000000000010000000000000020b09ed4616df93a5293796f2d942e7363eed0a896123589cf1b4391efa0a2e2e5000000000000000100000000000000000000000000000020386ad29cf6b4c2b60bc236496613b7fc643b2ab118c971e0b38bc4e1f487c2ab00000000000000010000000000000000000000000000002031af884e42a815caa911b8b68c5c81bc80162de933f6df48c73b1f4b6b663e20000000000000000100000000000000010000000000000020a0631c443d2eda027eb66b1a243e3b9bc0454d1da2a989884880d8e9fad1b62f00000000000000100000000000000002000000000000002010272075b9910ed61e5c4b30ec20eab12358a071f519607578c0949f35777cc210272075b9910ed61e5c4b30ec20eab12358a071f519607578c0949f35777cc200a76ff255c3a0f15cf15814bf5df8ba6aa2ad2d219b47379d5a3a09b05e9ee500a76ff255c3a0f15cf15814bf5df8ba6aa2ad2d219b47379d5a3a09b05e9ee508c43954a3017746359f49010f84ab946d64dfd0a98c6ade849f024e3c15d78510d521a88acaddf74db588a98cf64af12fe9b59eaffaced942ffa8e0603c72a02fcc1510215860fe14cc28f98cc370b84effd6f642571402d76b540df23b21133b7e9adde53dfe77540b04b1cd90bbd2c079745041f69c47040dbe0906cdcf5a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001fe4efcf56610a39f327fa4a6f08f2db266dac334608303f5e1350ae3e01f9d4104c9744b376dfc2dd8b21d3607416b564a2054a4f23cd2c32c51ab48639c3ac15158c3b1f6f73439d588d76d1af7ba7d24a629eeb34d5b18918f0f665d5b3e1291766b9f5ecee8298348cc57d3c1886e524ea3847fc0964909fd1213eda3b5b141dc34b94c38465f526163a122f525e1c8aacf5a85cf41bb050f51a20d6703507ebb74b2e43d0ac181cee8f513de7b81a3bb61d24ffd9d0469042ae48abaa071fbfda6c4e56678a14ae4bbbe4c043c1a993c4e34ec7496be9c43ff4927dbb2822765f4d7df99c6a093925b4cdbb857b716e1d7dbe32436c0e18baffb0d0eb3a2b5d54dfc3bc3e4a89f94d5a3fc394e611c58d8127ce5fbd0ce5db314e82dd4837377f3e62e9c6b939f7064f800a9d583877736019602b5d09f0b1fb099cafbf196980d82ac3e398d1f395028f9a98dfabd9117a0b1bcdc12dc77d7493db5d3f285c2c0ea33d9bf3519324e89801ed7882c0f6fe9fc7746af3bee87606572c72355674f8b49e70150ca93d1ed655c7d1f11f746c5651bee8f81d11c846d35f021a7ed3d063fbc798d513a5dada262c6441499d9fb98a1a192bb6adda580640c72e5cc138680c92cc17c6b1bd6960c39285b57c7573953e18c1d52c6d34039db8139d42d8a9dc18fa879375f7425074b90f28c8494818d125da04cd2216ce894a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064ae0000000000000020b3799bb2b33db62682d33a18f7e53d7c6831a34944d341f9e28d32d59f24fe550000000000000010000000000000000100000000000000010000000000000020b8ec915946ec0754e58dfa0dd93b0fda0540bd70cbeb497ff915d0e1a7ae57b70000000000000001000000000000000000000000000000203967d6b8853e97049af066bbf189bbd82c20cab13fccea5a49366cc213ba98ee000000000000000100000000000000000000000000000020992b6350b148fac6f350ed764ff0b8247daf11eee0de168aea506cc5cb7a21190000000000000001000000000000000000000000000000204bd582eb35e26cc7bc7353f5cc7ede36c02fc22909928a48db4093126ac2f5fc0000000000000001000000000000000100000000000000209a37bd00dcef28dc2d8c2ebb50e64aa533b3036227d9d9e4a77300fc6eb884db00000000000000010000000000000000000000000000002043eb882e79308adad8ecc2bb626defe973f51157b075b8daefc783a227417e650000000000000001000000000000000100000000000000209581aeae9a64a9bcbdc47b6ccc5ca55c2183386bd70e121c6e983d7655d45ce1000000000000000100000000000000000000000000000020cde2aadec572cd76165a38ccbe4d2cb02896ff1182c1de4843be2a4c6f39e4eb000000000000000100000000000000010000000000000020df23174ce9f8f68cc9ffdb23ac8e6fa58b681cbba5f78da6f9f46b5435e175f00000000000000001000000000000000100000000000000201828b319bb8a50c9c59f893750eb864cff74ac82d589c3aa79115d35d13e5d71000000000000000100000000000000000000000000000020be121bd5730d5ec252df62d085bf48cd903e6849e9cff20077fcd685eeb226360000000000000001000000000000000100000000000000205bf55131faa55b6ad21a958dd22a46796cd5f99b13dd5e6fd3e5d8393aa75f6100000000000000010000000000000001000000000000002097734017d618d99400a2e4a7f51180b6deb42609b3caafe47d7017e47b7913ee00000000000000010000000000000000000000000000002047033ffd4b1a97ac782b129acc90603d77abce64191abc1554bf05d4472ecfc40000000000000001000000000000000000000000000000204582e1a214499058a4a77fd5de7518edbb35fc91e7b84e614548d4404611b94e00000000000000010000000000000001000000000000002010e5f08558c7683afc888014c3989accaee54f66bc8bf7b180654d0cfc03b61d00000000000000010000000000000002000000000000000231da5b9e01b13bbe092dcfc81cff7338e1183e0926af4892f583bdc4c1c4043332174c1d2ef84582964174300ff199c98762720dae82adec4d2798c74c254f2f00000000000064ae0000000000000020e8d97ac3b25abd10e6f572df58a247025f5ae92954ae5f0fe782d2662ff4a76700000000000000100000000000000001000000000000000100000000000000203e2092a0a6b023fa527e9167f7720422cb239636a6bc0abcfd59faa634240c31000000000000000100000000000000000000000000000020f2f9644ac33864db181fe9858b5c86a5e850da048a0be4df1ea04177b6bd9622000000000000000100000000000000000000000000000020197e863560fd1c03d65832534cbc510e569c6da5aaa1b8fb47d757803fbdaeff000000000000000100000000000000000000000000000020a4e6f0fe02db666dbea33ca82095d93ce9d54cfae8e3104a2fbcd699f60735d6000000000000000100000000000000010000000000000020850776d3f52c2338f29a11f57c195198c8129174582a6fd122d8cedf19b9e8090000000000000001000000000000000000000000000000200d22d7fc56d3374aacf2eac81a136ea30a64b8ed8ff3a300051754969745fd7a000000000000000100000000000000010000000000000020a0baa956d6504f75471511ed70444b751df1e788a35c050c948e6cab4bde79b5000000000000000100000000000000000000000000000020fd534a1666e163e5c5181e2cecccea05e710a37fefe015bcf52302fc3c424c9c000000000000000100000000000000010000000000000020f9099fe44068188f6e127d78cfa5ff116204c9514381f056a447889c1132204b0000000000000001000000000000000100000000000000205a4502a7ae298a328e1f116e5c9f66d3f5bcbc4ea4603b8b5f2426ff39eb0db70000000000000001000000000000000000000000000000205d9176a763d4e85fef4643a9605a924779d7ab9814c4c31c9b0076edffc0929a00000000000000010000000000000001000000000000002080131ca2d1bcf2c7e3dcc45dd68f8e6f43f08adab303af379aa6b461714ca5d4000000000000000100000000000000010000000000000020eaf9507d496f5c13d37eed733026ac07f4970b1d623daf31dd15aec0156216540000000000000001000000000000000000000000000000204f6d422d1cd92393dab45e23f9a18b5e2401147f4f069b23d023eddb9aa8e4240000000000000001000000000000000000000000000000205fd0b73bbe3b479016c615024b55d0d83b308125578070aa727bd181a30f796e00000000000000010000000000000001000000000000002038dee1f17eadf91cc84db949075cab1d85988517cbb11c3dc902d7ffa3ea0cc40000000000000012000000000000000200000000000000240330b2f07f11fefbd05d1668e18d641bec473c5dd6bfab279b3ba83e81447e8807dcd1d19820c3283829017fe8877201996f617555c7bf246563690bf49abebb0bd200b0b59175332a98269acdcb2b54a6e10b53cc1af3ef92f9abccd4167850007c9152c9cb4810fcf2ce49ee4667d66f0dcaf69319805a5b8877d29291635d14172daa47b68c4425fd881f412241c494c7fa16907dca36ba57ae1069bf9893316cc8ce0209ac748e9e45be48c9532c31b956bb0bdf0c540e8502643ead57a215e216a2d421b8d524e1ff03e2e888d0336af549d882e5acc1d6b2d6138fb03108daf59521fc50502fbedaf9ba5ddefd63a65af88eb8109a9183d9858601b18f3cf6fa2608eaaa00cac2a1a8a422c2abf0347519fa5e1f156f16304b60c6d5763cf674889db5b74aaf0edeabd910bb1da16a288ef8e1f163cbc1e06c447911910f5de915f06c37081fd2411ec5f6f943ecf12a179ffb408ea62dc6ae2b7a09512b123c161771e8b8433aa1a9569a03f5d778d782e34048d0b14875584eaa66952cd7615a81db6b54ff9331148f65f3f7d26f2fa49d9ea6a898bc660c624690ea0cb61d34b9e5e1cd932a444cecb39873666cbc0fc295f257d33ae4ec5855ff05031e29941262f695cec5506efa2bf4ba178cc2158f9f9b4e4291e18c3eec8fa5209eab75b83ebd63985dc06a0eaf303573c48c00bbac08bbc9aff81a29e890fe1c969fcc5eba298d95d9e44cedeed6fbc55675d99754fcc7d6c69a413a3453cb2ec8784948a0bf8b896e5b5b2530a0e1da82a71d249246b5c89aca20d2633ca42e24f43aaebb29c9e0b79c981b2fea563777c1bf2ce4154b6382488807f08edd1e90e834b584845b9e7d51045be078d5c1766ef75ee978938606ff66eaf5229d323ec2007a6e6216717fe073dd6793bef0d23ca1deb1d0cb14fd007870cb755606ed3744c7d0627068c2698dca3ce4bdccd0a6dce710c3e4dbac4d782baa164e2293a0182505143e275f762a2e42739a0bcd44d08e84661ad1214a7ef3679a112c33a7c1018492a203ac83659972255dde7c153166e63e208a7c6c2f230779bd3a809a1c51784bc756858c02f4da4fdd21fa89c06231fd860ee1e34f4392cf372abef22db6bb8a2cce60ad2902f5044e9b23d67f3f7284d161a0c9bc7e4bb0960f1896c3c02ccac1c005c47bd775eb36c9b9a08dbd33f923b7050662e347b1ac04497987611abaa3f1197ca79dc87059f61471c2b92df9e7dc4891231e3fb6e31e17aad475ebfa0323993beb6a5c27757e8097eecfc6c3f926abe1c3c167feb408fc2dd3bc41bcbf816f3ca96fc268180556ce1003265d52b472df5e8327293d06d0c578c1ef5e89a5eadfe30ee5ca019938dbf4dc9dbe351ad8a026744da4340d23a93fa88972e0fab65dbec99429e9525d8acfe47ee7e0af66a3ad7dffdb40365a08ee3f1895e58876bc27408a567ded77997b2f24fbd2038a408e3a4690ca2bd26ce78e3e775e3fec5853c6b106c237ec6612807d9594d528aca12bcb4b893569a6762da69a58f5a6643af7ab746f4bb2548465fe7817e9ee52dd713f23ca3989bc9a8e92f08e541036ec71dfaccba71532eed20dd81499d97da08d02b74a00000000000064ae000000000000002086717ac43b7d5f82c8302f3d130b855380f095945b7e69704f38362537aa44090000000000000010000000000000000100000000000000010000000000000020906bfa523ba810d5f46b30006db1b43e29c2c66b030ae4eaccaaf04c9ef8493c0000000000000001000000000000000000000000000000201b042d145ea3807991e568c6842ab079f688141fff5116de0291e4c41eaeb5ce000000000000000100000000000000000000000000000020a71dc7a66bdcb63aedd9736dcec42371ff5617e98294580b5fffffb4c565d8620000000000000001000000000000000000000000000000201ff13da5c534887124cd7211e908ad187e3f0b1fc6bb700ce495edcb5eb08c9f00000000000000010000000000000001000000000000002090be2df98f517f40b7e3a32e843f4b94b169648a6b3ee36a788e6acef94359c7000000000000000100000000000000000000000000000020e32566bc640cdc42a2d416dd8e9ebe7d9740c8477a96f47848d4e3454571fb9f000000000000000100000000000000010000000000000020f81cfad22771fd9adc4a1c2eb3d35d7206c8e61de47fec96cbfed9a8142060f5000000000000000100000000000000000000000000000020ec41974a8de27e23ea619631f2c48fc4c33979aca3f615a302231c1b01366a180000000000000001000000000000000100000000000000204dec308ae45410152d0c07fd5536a43b5ef2b3fb00b42d72731cd0f56a2f7a950000000000000001000000000000000100000000000000201643fe66e23782f873215dd147f0a608d1dd5162fb1a0ec8fe05a8d3d03dd06f000000000000000100000000000000000000000000000020f189451a8e6ad486f17fea63f8645b2dabf4216c1842358e7324933f81f7ea8e00000000000000010000000000000001000000000000002062065792a6c03983076f815f583d61ac0cd4b51fd65f5df4e80b4699bf2a1387000000000000000100000000000000010000000000000020b43f76ad68b950a3c7985b258ac663aba4aab7fd09d41309b4494ca1557d88cc0000000000000001000000000000000000000000000000208282c4eb352fa7af8ff2e54989de6e5ccd0146617a9dcc9487ee8e1b861008c8000000000000000100000000000000000000000000000020e4cab9b3d6b7cf6da1e73c16ffd4296568eab972c55ecc94c6d376d2d7a010bb000000000000000100000000000000010000000000000020e17990fefcbe5e3cdfbb605c96183b6be41e54a43f46f605683c0c7e49cfa3de00000000000000430000000000000002000000000000008620a15ed90ad32ab3b94a75f28f4310334fee79284a27251e7643539def058c4e1f5ea126f52cd54c46b58a0d70bcefccd2581fd3bf25d3fd22e9dd4f10fa73b32326da3d361fd5829e744dbccc4f51004b1b2bd16029c7611cf6403bab1bbd841cd925c2c9e02a7d618bb24333b0aeffd72b6d2aa92331ba7c36f0b154e4427d2fc243320e9f2b8d184584affd8c950132faa91ece36f2ae5e74df50578ab392103dbccdf160d472e7ba7b5002736afeef4befdd3b16066d3ab8519ca8754c6f2ecb4ffa491bd9c1795b976ff3bee905981182a5eb2bd2150cc0c9cab5b581d71134b005b6e4263e86a468900c4116fa8a3516561e2127068c6c67224a4a7e2a29f88fe36d8b40c75ec9f52fc2ba8d1b9183c2497bf42f16743c5e2e8c8b89301607701c9274bf38a1360ad03d4572e490c2d6b28d58ca0524f0d2be737476d111dacf7123b843e4d9f1c9eecda4c18970bf007b4fde001d79a64421beb9aded2e25308edc47bc1b260e3611325b3e76b1879880b96ef8fe1f86eccb4146521419460d35b299537841b8f1aa0437c7af1174696c86090777c71223bbb9a065a026b9f2ca4d66ac87be470e55fbc8385110d22f8f8343f1a3d21b0d31465f9a613e5e420c7cfea159489cb8521516e66b34ff762294e02c3b4a2d81bda021fc1f01a1bdf383015ea6b76347adeae91994ed4722d9746ccce04effaf2f5fde03e237d74a3e70f926be6b0f999a697280177fe2eabcc32cf8ba0e2ec50020a9ec970828b5c18f06d94194f06665968d7fe8a263ae3f462000618afe6becdf56136a1734733834ddc1b8174e00040f3c8074f65431bfaaacf733e235154ca3519eef28cb8cc7cb223e47e8b1fffbf0c37f8b2bf2673c5ea001e7b6f81ba05cae6112340640190854c898748600144c2e8248ad5e5fc24c13dae7d1dc399230981aaa0bf9bfe6f7ab37678b79ffebb3d17db774e83939bd391e33c750f75acf67e557041f407d29a7eafa469e00657ce88b6ad9bd7adb572f6218b4985c26f2f8854e3be0bf82d6581505b961ff9a8317749548891e20b21d9702e494d4c60d077ab3149c4271d04796e3611601fb708ab91640b36648b3ecea7b86f9ccc2beda9a862b63bd8e2fb8691c9ee9fe048f7546e9e19332b355600ea01233642a4125657b270d4c391165f270e56e09e932b59d6f213a666f7a539b4e09b3cee0ba45049d18f2b3c6ee9a0d8f1a91f616cd4a6291010c328c8ef95dcd8f79620c45bafb6403427d1d56fdbc347b26318dfd8c132b3f50353947bb1d3364fb779ca359170e3cbd82e2a90243cb84d9ce720273ecd4e2f663c2c191dbe83431b9505ca6e8f3104c7192b2f4ad0667bef7c5f3bc5fd83c910a1e66a79200f8e9560f30bd73462fb38e6d4d0b52f99841083a0c43a027e5b58edda2a5671aa043daddcf428cbb117e37dd7ec7612006bad6ddc2addf390c8e999bf7f8e0e943617d5ef3b3405d2e81c82281389edff94529223d5220c715b7ff601154183255cbb38e0c4cbfa403e28fd25cfefa1d85a1239becdad8920fc18080648fdf30d575184ad046d6ef3c1d702da30105e27a5edc641325276e1285187ba4bd19eac3b818a22fb92912136ccf1bd0fae2939c25b20ba0463ada4ec78281f6cf5bf42b497976116232ab2c9330e42f051d6c63da4df45fb9c525d37f167a127d9d276de3b776ee9dcd56350d86b9fe622c55af6aaacc3787e2c162f356f84a2ed600dd153371e2ef1f8b0af27946019dd3aa50955533c8781d3ebf534203bf1e231abc17fd7b1d10e0760943a1a1f7eaddac6d1555fd15a76dc665a64ee94db64995ecb53d856eab9db336bc5e5e0815225392eaaa02ea589239bca04a12bb96af85ac77f3679154624e1a563bd5d9a60f9acc83ca0ef81bf3f27c44dee73d27e3748ce78cbbdfabc6c225a9c42a2659f065337c35f107e40c0da601ba14cc2515a70c45a4312054393f3c2120950a80a2133e67efad424abc9383369d082b1fe53bff583c657cf2bd5a03dedf6af57f5decc1981052bdb5436c9f0ffbf3de2d13df99d4f487830d42a719460d35b299537841b8f1aa0437c7af1174696c86090777c71223bbb9a065a026b9f2ca4d66ac87be470e55fbc8385110d22f8f8343f1a3d21b0d31465f9a613e5e420c7cfea159489cb8521516e66b34ff762294e02c3b4a2d81bda021fc1f01a1bdf383015ea6b76347adeae91994ed4722d9746ccce04effaf2f5fde03e237d74a3e70f926be6b0f999a697280177fe2eabcc32cf8ba0e2ec50020a9ec970828b5c18f06d94194f06665968d7fe8a263ae3f462000618afe6becdf56136a1734733834ddc1b8174e00040f3c8074f65431bfaaacf733e235154ca3519eef28cb8cc7cb223e47e8b1fffbf0c37f8b2bf2673c5ea001e7b6f81ba05cae6112340640190854c898748600144c2e8248ad5e5fc24c13dae7d1dc399230981aaa0bf9bfe6f7ab37678b79ffebb3d17db774e83939bd391e33c750f75acf67e557041f407d29a7eafa469e00657ce88b6ad9bd7adb572f6218b4985c26f2f8854e3be0bf82d6581505b961ff9a8317749548891e20b21d9702e494d4c60d077ab3149c4271d04796e3611601fb708ab91640b36648b3ecea7b86f9ccc2beda9a862b63bd8e2fb8691c9ee9fe048f7546e9e19332b355600ea01233642a4125657b270d4c391165f270e56e09e932b59d6f213a666f7a539b4e09b3cee0ba45049d18f2b3c6ee9a0d8f1a91f616cd4a6291010c328c8ef95dcd8f79620c45bafb6403427d1d56fdbc347b26318dfd8c132b3f50353947bb1d3364fb779ca359170e3cbd82e2a90243cb84d9ce720273ecd4e2f663c2c191dbe83431b9505ca6e8f3104c7192b2f4ad0667bef7c5f3bc5fd83c910a1e66a79200f8e9560f30bd73462fb38e6d4d0b52f99841083a0c43a027e5b58edda2a5671aa043daddcf428cbb117e37dd7ec7612006bad6ddc2addf390c8e999bf7f8e0e943617d5ef3b3405d2e81c82281389edff94529223d5220c715b7ff601154183255cbb38e0c4cbfa4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000064ae0000000000000020979efed344d3af4abce365e81207d83a8d909f8ff4e32f936d87aa0bac7983d900000000000000100000000000000001000000000000000100000000000000205c80a48fe1da2736b446b8d3f7b163bde9acfee21ec77bbf6c672e3e72bbc238000000000000000100000000000000000000000000000020cede000a10c6ddda52b1fc34fa5eed11652f62f72594dcbed9b3938669f94fb2000000000000000100000000000000000000000000000020e3074e1c6f248776335e71ef670f13dbdbfed54970c93cf74498f28ca69c100b000000000000000100000000000000000000000000000020a83cd5b629af85d19e2f246be4c9728044c972200ea3a7bb7ac6584636758cb8000000000000000100000000000000010000000000000020e41629a5222a8dfad51ce46434c149d341e86ed5ba9c8ed7909c8739cdf88e4000000000000000010000000000000000000000000000002027093121b7d71b9cec8277ee0cfe99a1531646f0e74955b74b47561c29e090750000000000000001000000000000000100000000000000201080fa380f6cf860c82abab8650c2744ffb047255fc1b2d531d95c9ad20b9fef000000000000000100000000000000000000000000000020e8eebc63d0f1d26fe9c45ff2274e1fc349bdbb63c136e3897d9916c0c377c97e00000000000000010000000000000001000000000000002069a428e7f0a57c3285192e818bff134fc91dba3565bb2ee2e0abfe5382fa60c7000000000000000100000000000000010000000000000020400bf86d9170b6ccebba2a58cf15458e9d12958250c332896842f9e45e639c07000000000000000100000000000000000000000000000020a6b7c58eb9af99692f5538aaaa53551585364bf0ddebaf1ad4dfc54ec575b26e000000000000000100000000000000010000000000000020d5df49fc7f626d1dc2ac02cea912ab49cba8f1c5ef19fbd5c5d18fa8e1d497c600000000000000010000000000000001000000000000002060b07b4e39e3a836d3d63f9260472d1e747a194b94448ca7146936ef0bd57242000000000000000100000000000000000000000000000020c1669bf024e483f61f4fd7ba0c53aae3c07baff70e00b1983c8609d511f6c885000000000000000100000000000000000000000000000020123b82ecc0c634ff753754364c16de65ec617f492a60ed23d4b72ff3f69d44ee0000000000000001000000000000000100000000000000209ad26706ad8fa3e35cb5af76c70e9dd6124d3b97b383ef42a76a0fbbfa9d69010000000000000002120421c7b6e6d6c0a0484563919ed714be9e164757f81db01a62e934aaadcfff375bdbbdd5adb0d886012cd08e7809edc0e506ed246fd3729260beacb9f7a69700000000000064ae0000000000000020149a0577ca6898642f277429dadc5df8bc3a56e16f1b87a2f5c3e45116fdef75000000000000000f00000000000000010000000000000001000000000000002099e1e3f43e1e1e5af92730325a08b353fb0588de9e94a17339e74c86fc88a2240000000000000001000000000000000000000000000000206121a034f872d359d1a7421eec2e96acfcab2c2048d646a25a83311e131c0260000000000000000100000000000000000000000000000020a1bc5c222694c3a3e37c863091da7fb348f421dc1e1903cf3cc88ec643340e60000000000000000100000000000000000000000000000020a773d4db12d8dd5f7bc9d1b4f1fdafc9ff6803ac33bd7c3bc5c9bf0c72959c9f000000000000000100000000000000010000000000000020d770c055fde059843903735baf012233cf93978cf9f2b3a002ff8ba0ebddab7a000000000000000100000000000000000000000000000020a7df48eb2fd584b138a43d3eb668e69cbf083cee17b822174bef97741e0dafdc00000000000000010000000000000001000000000000002047b616c0cbfe2d78630a2b24584f392cad76b463661ea6b10387a6846894afe60000000000000001000000000000000000000000000000201ce0feed245649bf5bcfab8d8ca0338046d647632508506340f7d74e8e24a89100000000000000010000000000000001000000000000002045ae285c7f23df7622dc38f658e2147fb12bb76655a3f154e35e3c4211fb50f100000000000000010000000000000001000000000000002082938c68f8f81ff1bc8fcafebf8b083db1b17b088d93230d9fe75ed98d74cbed0000000000000001000000000000000000000000000000209dfe79525c6d9377a808ca1918f235bd833feacf26cda7ae91d8ddae3103c6940000000000000001000000000000000100000000000000206eaf865c04e43648a3deef4c121d90e93b402ee60d6e69bd2206751687de2489000000000000000100000000000000010000000000000020e29c6cdcc2dfee329b9e75efa45d88780ae2c751a9546aa40c75a70d3b69816c000000000000000100000000000000000000000000000020ee448efc1745abd0f3822d75f0a055a53984039529c02f9a96152cd28dacca04000000000000000100000000000000000000000000000020c938d64ce1b122f61c9e9c6b66220969b0be52d44112f69ed75c402ed8c74707000000000000000234e96076bce9d638ee017a28c13fe4e04f04967c3f5d22e2127ed033c77233701c56943a3130084c1b877adfe7a26a82a3e63d01baf864392e7c25d530ed2a7100000000000024ae000000000000002015dec83b8a701e3a8dba34b8237dd2f7e4ab7565f8e81f3dc0fdae2a0c85ad10000000000000000e000000000000000100000000000000010000000000000020b51084f8dbe646b9fc5e642e8f5cfca32150db1776cffc5fe31371a66b0c634100000000000000010000000000000000000000000000002071b8f19bee93d07dc17ed3840f4fd2bea8ad463b8901284fd91ac51c39ba21a9000000000000000100000000000000000000000000000020ad283e08a4f31a5d8400ccc26ce4154aefb92e1665224f13f6eb5f247929d35500000000000000010000000000000000000000000000002037fb6263fdb7bed138b3f1407fe4afb3311a191aeb545cdbaa417342eb72b0e2000000000000000100000000000000010000000000000020bf30665a658476f9c26f709b8fdfaa4fee76a7b13ee067d6e6583263b9691b2e00000000000000010000000000000000000000000000002084a457bdc60b39f20dcfcdbd240c55de33fc9a6ce504f56efe0ecda0ee8859fd000000000000000100000000000000010000000000000020d66e4684cae1f91d7ce4fadd526790544cb197406bafc38c71ecb6638a2f442e000000000000000100000000000000000000000000000020d13c1a2e6b53a4d990bffd0156e8d0bd9d1cca9b6e3e1b5f52e63e4f81db20e3000000000000000100000000000000010000000000000020d429dfe2599484c15584cfac5285b598c39405927fb545ac0191f3791ab6ed8f000000000000000100000000000000010000000000000020b7e2f7666a448ac8e7b128c5b031e9f3bca880d94f27a59ee7b2df0574face76000000000000000100000000000000000000000000000020b38fd66613dcb4f7ae2b6fef39ecd1282ab1f3f6916c3112067d4c60694aa23e00000000000000010000000000000001000000000000002048017e94c32327e42d1453acb0f979880bdd55f0deee3d6b3f6ad8eb07793edb000000000000000100000000000000010000000000000020e125a251c6be44e148d4d550bd3ef439e2b7a6b72c23671822268c61d49651cc000000000000000100000000000000000000000000000020eda843623c53145d1771876f402f14f06a4266f5c117def78c8bc72125b6410600000000000000022d42ab724576bba773e1b3fb750049c4e0966b94723a311c6b2be78c5e47b3621b3b5b128a6cd70f02272ad84eb287ee53ce3fdb781ca79faaa6758dfb157a6100000000000004ae0000000000000020d6e4a966a7c7f6f32f3a643421c51839b2ec8bc31d734b6a0e67c6ed4135f257000000000000000d00000000000000010000000000000001000000000000002085ff3485ee8cebe5ae55b20755004808d25cc1bac1c3719a4b7c4093a9a5f99100000000000000010000000000000000000000000000002030e7ea9c7ee472953eb98d252cd66048c5c9e961eacec87fe8dad2c92e92454c000000000000000100000000000000000000000000000020e52b9741ebd5b1be071a4a3db7c86ee0dad7a4ad45aed43d3d8b3cc56c9adce1000000000000000100000000000000000000000000000020550983ead7b328a107423651a35525c77ec42fc6377774e56297e73c363d0901000000000000000100000000000000010000000000000020ea9b313b0f525acd4b96e9064ae862a3901d97249433aee25fbba7b3093b200b000000000000000100000000000000000000000000000020bc8e7c13d79d50a8498a44a04fd7fb6f562a343900b33d83a17dd369eba5e4d200000000000000010000000000000001000000000000002042c1d637932a52974441ef718bec3fa47e5389f0a5ef8cf8de4683d82f8b214d000000000000000100000000000000000000000000000020537d6ba9cc90d5dd02f3858c4f4a2e71adf8eb88414a50cfa9f0ff712c70fd69000000000000000100000000000000010000000000000020fca50e3eef58da40a19577d0ede5712fbfb7f1eb9fbee104858374bfa8f01f53000000000000000100000000000000010000000000000020f8db98cf0c47a733484058635db670fda6fe46f27f7da22e36a0996778d3f20f000000000000000100000000000000000000000000000020e129de6e22913e92dc3044c7964f10bac9a1183b469210eab8f8c4e30b26c1af000000000000000100000000000000010000000000000020e273ee3b0f4eeb93605b5c92f828be9fa224e625e704fd8d5cf041f41b1d15a00000000000000001000000000000000100000000000000200c1ded992e0a23f5f77d4e8e34a9cfdb5bc7e56479fdedd2c60629b97d505ddb00000000000000022309214876443a012a878cd177fef5ec8b0a703be135e994e4dd3213931157b51fe462e9c154da6a77fb816940d73e2dc70b31d9d7a088f89d709e920431e98e00000000000004ae00000000000000207ce51763167c2d5d61537d41337a8ef59fecef3bf2ecfe6d3b79b2fdc48c576a000000000000000c0000000000000001000000000000000100000000000000209a0cd78f82b19b10d75e0569ba132f2137fa3ca7eeed37b1f0d9b3802d9d0881000000000000000100000000000000000000000000000020268d2811466a32901607226b5d211a4c21feed0bb1db88a422be1f76a7f235600000000000000001000000000000000000000000000000209ed525c2696e1c11770ff7c13d326521d00ee50d9d50b178486a23b2ff1d23ef000000000000000100000000000000000000000000000020d37bc33dd6f91f4270e790c64390b0b3886920cb907dfeb20c847636340de89a00000000000000010000000000000001000000000000002035bb14d060b0826f19e6213ece8945eb897cf285dac444dac92312ecc1b32681000000000000000100000000000000000000000000000020b10306f48627cadc5861455fa2dd78da13a89d044d10ba433a9a40f4eb4abd9d00000000000000010000000000000001000000000000002091471879e299d88332b5003434dd9f67888414954542f0cfe5a1f8f4e67df23800000000000000010000000000000000000000000000002014aeba002a7ed07b60db692b30338b3ce60b84468c8afb78d06eaa120410de2c000000000000000100000000000000010000000000000020227280c1575573f9c04c84fd29fa58ea5ed8cb020b9654cf1663b6163977092f000000000000000100000000000000010000000000000020aced71920c2c537bf4d4b6e8289d7c0f4c5f3d7d78bb34f558d7f826c5864a8300000000000000010000000000000000000000000000002024b0765265cc3cb702826c9bf2305bfd6afe3c3e0a996021ab0f1c744a228373000000000000000100000000000000010000000000000020e9fecd4d561e86cec3193691cc1096011df87a5506ed665b092613fb182833d9000000000000000236b4666b037a99112f0fa2c266cd529a2d3f400c316b480f376527443f3c0664088226c9971b5d62c236ba570f3ba0443d2255177dd56d7f2c98b0e08613fded00000000000004ae0000000000000020223b8f544e9763c5295ccaea6eb3b7cb1301419b4cdf939a065d9a9e03221c42000000000000000b000000000000000100000000000000010000000000000020180198656ee87e5ecee1ca9c07cf790b55cbb465747974654f01c81b8e65765600000000000000010000000000000000000000000000002028325f97538baf290495e47c009eb87dcd53707d098f5f7e2e2694307832f144000000000000000100000000000000000000000000000020f1a5b4f8ae0f39a6725f276cd4a262ce7a137ac88be51873936e1069c9293477000000000000000100000000000000000000000000000020cc62d4e66c9225adf6cb532ee7e674c4e6c4b1fe4d51160594a59069457359d300000000000000010000000000000001000000000000002065146b7fc636a1a21b984dc2b380be3b971b62fda24ec67977fe26cfcc03bcbb000000000000000100000000000000000000000000000020eda967e494814403749d47f15eabe4a0f24a551840465093141eea4a986aba810000000000000001000000000000000100000000000000202f2103cbb0f36dc4575768ebdce11e0429762b471fcb740d8a5444ef5fee4ec6000000000000000100000000000000000000000000000020a80040947724e7335d7d1bccde1be54e3b894c8ae2366c6df53223465582f6e5000000000000000100000000000000010000000000000020a44fe3b187738c0e789dcee354e53bde3a6e0b47db5f068d0b53c2e289f75328000000000000000100000000000000010000000000000020806a2863f4e7aa0d364bba4a0e6fbc77b3fb7ab3136c3423ad8f94e692a1c152000000000000000100000000000000000000000000000020ed55a640f0400452c44791e1c3b35db6b00b829511578fce7eb90bf71b2502fe00000000000000022eeb4a725d0a14a7067070e0ed6b03abd2934e700986ebf49edfd37be16499570220d34b1cd336c85485a5efc2d25f7c1c0a8bb734ca798c30417c025dbae6c000000000000000ae00000000000000200fdd2b336f69dcfaa4e58a4dfd3181ca6cd4ef89828312e1ae53351bec7c5b52000000000000000a000000000000000100000000000000010000000000000020b9ca710ad6f82c60d3e3b7c2c563b6f6e68ef5483b76e25bcce78069b4294f35000000000000000100000000000000000000000000000020dc7f62a65569622389798cf72542d897aeb8474d83ea04651cf85168bd28b2e90000000000000001000000000000000000000000000000206daf6767dc1c3e5b075eb54d814eba94183875a06ec3ed85dba07206410492290000000000000001000000000000000000000000000000201e8d4da69a04cf69c22d4f3b9fc8b195f3aba250dc04714043938db0f0a9e2a0000000000000000100000000000000010000000000000020b63cb2f08a0d5bc97052616e489d32620a8181ad29592b741a33c660541935f80000000000000001000000000000000000000000000000201662ba54109df28ad4dff17b79299f91c7d628c1a360d131c9ad47baa18b87f7000000000000000100000000000000010000000000000020159d5b0da6572e69a53ab68057d27f9327374f31b9a3b46ea69ea15b645f0afe000000000000000100000000000000000000000000000020e9c17d5adddfab763b64f47863654801856a70c61a99126384a7bdd8e3c3bebc000000000000000100000000000000010000000000000020be90e58560b0990ab555609d4773c22b7ac590e3abd02d0e9fce06aa113a78e5000000000000000100000000000000010000000000000020242ac4226db74f9713cc3cd135f58ddeeeafe9b15cafaf15fe6cd72de9b8cf1300000000000000023d7773ded6c72c1c58cea7b62bec71b1f06f1c70c8bb17d796b8febc416be8751a1cc82bbf8c84dcde79beb89330e5081c4a4e13024b05cd1abe11a48654fae100000000000000ae0000000000000020fe5735b472609d52f50c9af7acebdf51b0136d833041e9902de1009e12dae8c600000000000000090000000000000001000000000000000100000000000000203ecf2539f485e00e8c885c152be94116947aaee16619ce7eaabee887ad7cf1e1000000000000000100000000000000000000000000000020534f606006460496ccea949ea573bb009038f3cb9ed98addd607cee8691879e500000000000000010000000000000000000000000000002053ba0f223bb9b856791e453175cee53af76f0d1d3ff27016ca691a362b26174e000000000000000100000000000000000000000000000020663117ed350d231ae222fabf2e58d83e53f5f3b05fe2584ca325c63785885b960000000000000001000000000000000100000000000000206057da82d4e2fe7f1287e056b1d206ec9ac099eaf503428393eb54195a6888ed00000000000000010000000000000000000000000000002074ab66fc85c26fe82f3b866bd0a7a1ba41018d02978487c620e80f96cc99a7a900000000000000010000000000000001000000000000002082a9cc9918afb7ea6676c99b2e165b921909ff0ff5c3a55a8e3c3b7896c0e54d00000000000000010000000000000000000000000000002066f317543968efde2ab7bf48167d2e243cda6bd9060076b2344526860352ad3f000000000000000100000000000000010000000000000020e2da1e6cc1a336515e782c8b08b2e15bdd8ac7724d3119982cb34b94b1e000a600000000000000022147f0d444ead2c6ad3993978e25330e8785cd6acc4ad095311ab48f1bc985232ee65815b5dc44e4dd38b6a201d4d5efd6fa55259c4df9eee759df7dfa58c0ac00000000000000ae0000000000000020d5705c7f7acb049c1d7cc974667c1b1f4224452d9f625be8d0a47b3b1840727e0000000000000008000000000000000100000000000000010000000000000020d656138e339ecab11a042d60c53a24c6a42d6f9ee386d2ca70e617ce1e19b90d000000000000000100000000000000000000000000000020b46a0e46f45131c7f2bd5d63ee01667b44fcc601d8fa69af046ab86559558523000000000000000100000000000000000000000000000020468e2ec200dbaeb877f8073223c1377398c5ad31c1ca468249ffcca76a121b76000000000000000100000000000000000000000000000020196193018ab7d6827e85266cc067540ccc6fe93c8aad4fa284c073204888992200000000000000010000000000000001000000000000002039ab1167a6cedb27835753c98bc1d1e21bda1cb3766d11b2ba18c6d7e6dbe76a00000000000000010000000000000000000000000000002048c39c342a2ad067dc0bebd824f0c6c947e08712f47df58cd5c6234d57c296bc00000000000000010000000000000001000000000000002086b90f99cf4479ff51782e0b8db0cf6daa5296f8a84f11b00bebf5edad874e0f000000000000000100000000000000000000000000000020aec2dc54105f989a57d6732a8ce540e31fad645bdc891828db3c4db06dbaa6cb0000000000000002176a9e58df01e7cbf0d606a8091b70f05907d6e08e67faa95052ca6118f109653e4ef22975864ab7ebf308526afceeaf90c37000bd44ce1fe2b3b4b59a3df10a000000000000002e0000000000000020e950a5a0895127c95a36fe86863f28870b0157fa416b7c13fe721cf23da3db8600000000000000070000000000000001000000000000000100000000000000201979debbeb82f249d9ba45c4d122d1f4509ac71e59f489663cd75cc47e389252000000000000000100000000000000000000000000000020fed8e1f0e9515afe0df2b19cc9924ba8aa4becebc1f71c1dc05beeb6627baede0000000000000001000000000000000000000000000000206f1614e65bc210d2ef4c12d4537320895c767437921554473466d8baf56222c30000000000000001000000000000000000000000000000208bba5a4ab2d3e80a5244b59d45baac9605c9339651ee9ee7e24465435d70dec4000000000000000100000000000000010000000000000020b934ebe1d3287e8f86718fd75f888ae08e78e2bbd8119e1d48a1867a0703009100000000000000010000000000000000000000000000002065b826fe967ce7e7ab0a8afac7820ed75fd9bd07c9e10c8687be277864bd38610000000000000001000000000000000100000000000000203644241dd1406cfbca00c95a3999024121e51aa2dbb380d4180f011461fd9f5e0000000000000002380f209bc34822331832d76fec61ed19c0cdca79fa54e65a53a1286e9c77e0d509b80861274a332c45678a881228d8ddda5380af075f326db95ad5cd5a5a7208000000000000002e0000000000000020d48556dc18d572c1592a5fdada495a41b85b6468e628fefd1018d0bc3e2e35da0000000000000006000000000000000100000000000000010000000000000020d3d9dff3c8a1b07d7706f998c63019a1b7a5f131b60d9a13948202a256b26ee4000000000000000100000000000000000000000000000020c9fbe834fdda7270a06c19a11f098c9f4c94cacaef5f534a883732b4dc5e94fd000000000000000100000000000000000000000000000020f8378a44b31b31a3a5a4443a914b74966ad9bd0b38b5cf50dd10943490501128000000000000000100000000000000000000000000000020e80ab26e4b73bc13159c330ede6d7524094da97f4df608e8248a92e536e3c454000000000000000100000000000000010000000000000020f97b7253665bcb9e482c1bbca05493d13cefb79c915d3ab902c9c0dc09357aff00000000000000010000000000000000000000000000002055c5ef0b4af13237f9c2f5ca7ef75af861c82b30b96ffae906354b25f4c633030000000000000002388e2355516165a30fe58ee2308bcc1b90716073b104a4954ee48c3bd77054ee371943122f18ea857789bcfe633132386849c6148bfd796fc9a46a4d1a6c8c8a000000000000000e000000000000002071e2c5d6bb501163893110a8ba67bf1fb5e3366e357f3f8390c7ffd8ac46d59f0000000000000005000000000000000100000000000000010000000000000020e47b712064e2ae2151191099ad97240be2543de742d661a3df53059af10801cb0000000000000001000000000000000000000000000000201bba30d687b5522714f979b2c77f42c146fe4141e3c2d250b7ec6c6949b469ac0000000000000001000000000000000000000000000000209409d3f0ab184f0f1ffdc9df20456ba1cd643d87f7e809dea8fa08eb80213a060000000000000001000000000000000000000000000000203ab4a2297e7b1dff0b69481bfa4dfcbbb7fff5451853c502283375f27e0b02e0000000000000000100000000000000010000000000000020a863d1d42d49ea2713fd398e8b8d5048cb149e0efc6d7feb44617c5ad582ee2400000000000000022e3c38ae15e4ad881efa6950d0f9bd8146ef25795d67947c5749973aa1ab8de328645d0e1f14ea2409126960881e296c78b1a8ac9fe2a334586b5f688585489f000000000000000e0000000000000020be4dc51a95106cbfbe2fb1855a7faca3c41c092b94732d454f4c5daa8545a7e1000000000000000400000000000000010000000000000001000000000000002008c829a98bf5ec9c97230161bb36db8f557c91e0c7371344207ee3e4e2744e2e000000000000000100000000000000000000000000000020e337a65a766591a0bd46236b04857f733500a370a6f498263ffefa4f2d116d8c000000000000000100000000000000000000000000000020504f2108a89e3ec7cfc29dd0441d2939542ee0df4e6fa01b0d64b5e8618742a0000000000000000100000000000000000000000000000020e16038c5672c748f6a465b5ee971fe427aa1597636fea4bdb4db324baf86a250000000000000000202293a3aa80e04c72a8f1e4d1f38883a7b0d242ce10c629499444057504c5cfb37b4a7d4df26fb3aa72f649b1a39cd7d98fff4dcab3756b1075f164c7e679c4000000000000000060000000000000020232a105d258b8d50dcd3e46e1c13bcb3ab02dc1c373554ad086e3dcec0adf23e0000000000000003000000000000000100000000000000010000000000000020c8cabc2853cfe3e3baf3bd71e543d5571e59f97ba9ae36d21ce56816fea8c2b200000000000000010000000000000000000000000000002019eaccb94355ae2736211a001083da6cece1cc89aab7b31f28a356298e0fa02500000000000000010000000000000000000000000000002051c5e34e81f846787a36ce02631826170c999b1efede966386206635a5d3f95c0000000000000002326f09d71a6a51aeae5c153f1659f1a8b300525676b6bd1ca8c4a91c0ee3a12f34c8c366404d5c8a033c9218186ea0f7ab5b5670a881ae21c0243b357a424ce500000000000000020000000000000020bee9323487a966666f79a4e3e054937b5315994054cdbd49852e71b19807fd37000000000000000200000000000000010000000000000001000000000000002009941d05278a5038d4a444ebb8efd411da901bfea7c3b1ef19cd0507f30a31e1000000000000000100000000000000000000000000000020885d1d75dd6b39dd01476807cd5bb54fde37a29662e2552f3bc07e4f56b51f7d00000000000000022ef11f2cd900f75d4f5fa491a8d33c7bd1d37659fd3cbed52796e6cd0344114516ff72b7fa964c77b718877c8eeb3508ad2f2a2ceabd15ac6652f8b6534e2e360000000000000000000000000000002060bd35c8f6ad3d0af8024557ada4a70f6c05f624b98bd6a000c08a4ddde8c7e600000000000000010000000000000001000000000000000100000000000000205654f162b81764de2491138141b346f28727e9b9c58261139eb1b6119473b4e40000000000000002044c94ddcef45dbdbcce4df726d1ffb61afaaee53f8306404559ce5c6a5177d53982dc8f31055b004db5cece69588d28b7aff7ebf1f0ada9fe66fdc238475671 \ No newline at end of file diff --git a/contracts/zkllvm/mina_base/public_input.json b/contracts/zkllvm/mina_base/public_input.json deleted file mode 100644 index ea5c630..0000000 --- a/contracts/zkllvm/mina_base/public_input.json +++ /dev/null @@ -1,2221 +0,0 @@ -[{"array":[ - 536307267370630539298338195126964433002751717398567478076440137023181728607, - 6350606115317347363597932062914653689968227049601191251399544021742333315801, - 9206053199246011959796170615713822591061443878941333442050858420980669939261, - 14740129327326773513706376027412103724016117082575227265638296913289837688665, - 16564188617731377495958671911696425695275378581995049413049576095561177082240, - 1459402852807505758425734344247095015933414476343367133158131410788220654238, - 21242251638009076263837244634368230761467306958555850127441516362380970601929, - 12203749473252097888620760620069661970513373965870653289692378370172397041706, - 17023493465725290563114958107734317727618578283425655729913140427175936881093, - 1936155109368356260975382811249765940798571310720921617932889803196752158590, - 103621606440074842298860884963915571932207341288263535593423136481465714735, - 15788549173524065965494601883186777788481348653774064682772925388513088490090, - 24556817602523355881516499979792133900107571660647950589146887762260618793917, - 27877693238368699060036114711784573917884144573735884619429498469219619672345, - 11234564435070499732454975362552446632170478857538103411195827103831435116233, - 19696299749020838390353550078371750498311472970779065939065311569663098844314, - 14517262859386139453784451163200306258051499950987773522261210512269809352845, - 3506626427158490422968215262589432741643846220942237170310331734825515353525, - 18069268462400661468610696004339177451605142972711247747649561988038830077480, - 5507660155854988480882870488214047829459690716587074899934498171658182288105, - 28457410572438330078821308920979844705352186400010383880085962843250813798778, - 8108297390764722756141847769797360582386321039345257614125873793480991280276, - 20124320677729289454999690616690540935773779635778809434556892654343604647116, - 13044952534009992039995558782137745127351569353144298644073197002281488426965, - 5230215232274022868876655682237984971968711937082497203529000768386957975735, - 17223408048033595784589867752479488104084710870580444852766688748153556732913, - 13895322178800660077904419440086966384584832307123209132094144476919771677515, - 14444519033973404085785571982069457327169209614674770596932793977588846117437, - 1951626661817030253380834120240476753433168575378435861745254676984613581924, - 26012723732502368831680148476347811354313116006085422714526800574855323968244, - 2633770197326005383994291008888134007953313769992494793298115970819953799551, - 10415822002257259745593431055103097617944110753033232043304507309339010959421, - 11263780663566442940102663026475130298267242212496519779436831085936563474433, - 24001492724708152128532429997821042794733165711390518030990799793503273770652, - 2633770197326005383994291008888134007953313769992494793298115970819953799551, - 10415822002257259745593431055103097617944110753033232043304507309339010959421, - 5040900544588789580974365328702256596367844112246930459775611110584529384609, - 7092990540603933664815469356867437650509190941873280712662268306777998721827, - 1632236563317719695008729730198640039589730357093745235039170824750146237889, - 16652169300131653910155327620443196436194395189880674769174827139951269808424, - 14598550966483932632179699829625452635379722126108567167784437138120564839693, - 20306811152595640487102896873781062881758172217344029389177003320477749831022, - 17615063836093256737955629948400920327309057610637709904337930541684950744769, - 14798706087105226074606349229441602290425368359035868450856280400310862649453, - 28031147615665011020930911005082492108678871605485404483348900045611591196311, - 15532493715187601323994386363282289724738343185567523989588586248496642181116, - 12041359299346150731048481304744395174490583711441368184999432627273256440686, - 20171731618420933500834961253195824667717468874553549616264926128987207238305, - 8338764408230191660527245826377997779612639045485062237039111734789114961080, - 5294331539823830733672999254846325010922370950178039865249043517923935509426, - 18435959350199775380114620204245952878086069683633699170084972263505788509858, - 22615148526584566799242163061587431118811910739826880691356321294024779114461, - 13387251220827799131227109087987416343197824277133295028171894951028026505281, - 11738929106979254231959056613143873320116689507622043160265926692283853746342, - 13613743547132375544885500166750052716752728822215140630873419471477277754451, - 1339611690990420540278786731507497749242942031555462573125402654511837247265, - 17105052652685226132611531645516305921125549921921507180983799052533433337175, - 8003116155905402883587551370708919713816665412050668715094540996621344573556, - 13237014921156363248028278992066160415289376873002924625503682306486968382723, - 879989897167692502558703701769869689978652442115869161216296653258044839176, - 23649885992080284997312069604332978301563782692138157527340510083884153447273, - 22305596436880978069271851214690861621748463192958815655075725048084982067791, - 1451425340494882348171623298484168190261021946727534425449231043858011779099, - 13855861360899403261371668668097018296504795522146493259926371290313972367622, - 6954257121974752499817653313065573376496279811943155027781831699812077531362, - 1501700599866379178767456661675876032711819578325185988564773555075595034857, - 26466955264302307921595417630865890420421228720181640202674052643355257452631, - 14265908045059649351496882675935071478448791949596618421430394148982110077229, - 1835963538184581316457052136272345646670210933134617850130259523299806420440, - 12632732625785708295002659476525976475587039274159117983119427358207881182441, - 25161523487982557524107721978549994408681739312886322295940265752344566818567, - 2231669083221570759849372489381528975575907999642295406502435353310537314214, - 18132938202273313584400203069339760887826004821533369850046712175295282198159, - 28844493535187237528607766499370579562016716687537589355847077364881382054575, - 16990021968239165978258248347288953632403006017094618984060145871772212764845, - 28739389448124712046605612111897468595410331225789460909768028672273371581958, - 14107226133254157459232109243408184982737245955824165190452122666034557202087, - 17632738392935955425340258349255871945983195243645267361432152426104670283788, - 22845320334288032708942171750631058332979977296202817781606709660795310336483, - 15701132467871919825018024875207012608028960342034422348766110610076860097859, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 3, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 16282821295661236479023912685539589269086626120234649164462902685519476656592, - 4295205064453230912872101449993170792905970401678754749988147216841537937620, - 28198697833219334189923816684717002543602920069910594785597266487498148523870, - 17891203830156453876956078996004920271036014021533417224170974067208216601703, - 5911229141700227144541715457557567697281122878785361348057987395367730692283, - 22708119636146901915922769433803693592137966281563094238309392462134696713324, - 15255289086154637723543383447202141216898127084181538793835838955534680243549, - 9822992368845619458542559122419135424964624477009905295720933437908812438194, - 28336751196692125825206280078298394562971507269177652352864439918563362023984, - 17798914835779426211970460006818900956839587778737086433910561148699936807427, - 12173487650256236567877294766780225205439671195087725509374927206658919988314, - 8546295955797864127010988341190793828517919678470921685302947319507151962335, - 15105854952902418834269591301217280524366983711045984608317191166708978127145, - 18491376365795350144503269408455530343793482052663015956178048715513611406203, - 16221864536502615631980979964668288450317317371147091060694095899151503639747, - 9519306118137437477296160681347787831718742786237537419021099081673273432077, - 1828375556492032543370630871599181680626054083827149513821341616496533931180, - 14532553130399504128864273815175983572681327963499643450830578683158045051088, - 13806143828658920604653811214459745160526156299899194105003039829404281939236, - 21677366383028409741651124301672889055915143610106128174078188209337480718539, - 7497365406686591516136275799519851738056433500165297000450415380901841834738, - 11082673892088893582121464103698089526189574961395186300560026072577686710261, - 21840051173290088750377335154124032240668643658355954102158068406791911456411, - 17351682675035183551436994752568730447765316333728829284275431639098039334512, - 14022762599686302176026646914549540717100346176029056416113460334917709226744, - 27978245190056279229692763190303424169549043084254373363906247160646199594515, - 14461461771799677654017777117338945851377547219104322838600220560516293427356, - 17564757440118220600675489280590254151923712940706892869478972769840418457635, - 21815598907196777691445920277857002103959228082570912063323130218788538733193, - 7358237762751057012424941296608466274034817842087745360389357379284117549732, - 11810626818371604294708453458309753376008077755506945420564072757415239409545, - 26912748767395245377771123936593955842239086573241116606529426101611852107474, - 28045754565497567218313815510153164850160812290001533322256204556878672210685, - 4430614918184468006846751296134493176588839662954289976354926108393111505348, - 19872404709285819095020477536140820966231416330563398437289255091306661382284, - 19326322450955066267758337560000055419883224223428472906580812324929588841264, - 27674068120067053785042736434998263020785858204524681324028670844064644633023, - 27412857330835622333013445447634112239898888873844827807756556432593637880726, - 24682236218499316256116184057935956900066450357800305437458989367500718714833, - 27180938934433927690377545371633915753075499681300196017879714997797679192332, - 25629315461974072970256979424923440745009227427597797969419480653812297129276, - 1016868605640715040040077111084256295412989295229805290627862796628513565389, - 12174451344901867371747121143916474287913641433558421954298894775115636105605, - 12378066171942160329149126580141604161241179887990644873241995425596885988734, - 7354720043741565412245146949416661672231346925994487137406963541785007652002, - 18137987077150694625815400585246393656498160562154344002755317004470145216091, - 20176380948677499445673804755402884536434103092222401927043369592526199334698, - 26639113406603762994997253872861268998287702768326719951107939705363924703049, - 16207127342744662697004906974217699328124928520738315414896942451468679742680, - 10042405468630587369024209399619359647876676370159830003746139596973255635041, - 2106392139716826410921444012744773412824354042372186953626000304539450302912, - 17561438246294780941275031774356204175014323179177294715496325182731868568910, - 4292031084185452020905940016648601803499113748499572807208798084208217009321, - 16797976570717345665130946180893310089564099546398446160344589290942425835566, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 7306136642597923897555791151863996660212462335849450287367524537095180221634, - 295836087001599150219965185724981361284218003091634650488121505386715848421, - 3 -]}] \ No newline at end of file diff --git a/contracts/zkllvm/mina_scalar/circuit_params.json b/contracts/zkllvm/mina_scalar/circuit_params.json deleted file mode 100644 index ea53023..0000000 --- a/contracts/zkllvm/mina_scalar/circuit_params.json +++ /dev/null @@ -1,29 +0,0 @@ -{ "_test_name":"Test name", - "arithmetization_params":[15,1,1,30], - "columns_rotations":[[-1,0,1],[-1,0,1],[0,1],[0],[0],[-1,0],[0],[0],[0],[0],[0],[0],[0],[0,1],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0]], - "modulus":28948022309329048855892746252171976963363056481941647379679742748393362948097, - "r":14, - "m":2, - "lambda":1, - "batches_num":4, - "step_list":[1,1,1,1,1,1,1,1,1,1,1,1,1,1], - "D_omegas":[ - 27089958442152501875810132276080823478704708607790900112361486996955217465106, - 4962941270686734179124851736304457391480500057160355425531240539629160391514, - 24698565941386146905064983207718127075873794584889341429041780832303738174137, - 19342635675472973030958703460855586838246018162847467754269942910820871215401, - 5032528351894390093615884424140114457150112013647720477219996067428709871325, - 22090338513913049959963172982829382927035332346328063108352787446596923585926, - 25165177819627306674965102406249393023864159703467953217189030835046387946339, - 20406162866908888653425069393176433404558180282626759233524330349859168426307, - 24118114923975171970075748640221677083961848771131734379542430306560974812756, - 25227411734906969830001887161842150884725543104432911324890985713481442730673, - 2799975530188595297561234903824607897079093402088395318086163719444963742400, - 19366951025174438143523342051730202536500593522667444600037456491292628123146, - 4855188899445002300170730717563617051094175372704778513906105166874447905568, - 4265513433803163958251475299683560813532603332905934989976535652412227143402 - ], - "rows_amount":32768, - "max_degree":32767, - "omega":27089958442152501875810132276080823478704708607790900112361486996955217465106 -} diff --git a/contracts/zkllvm/mina_scalar/gate0.sol b/contracts/zkllvm/mina_scalar/gate0.sol deleted file mode 100644 index 3746627..0000000 --- a/contracts/zkllvm/mina_scalar/gate0.sol +++ /dev/null @@ -1,536 +0,0 @@ - -// SPDX-License-Identifier: Apache-2.0. -//---------------------------------------------------------------------------// -// Copyright (c) 2022 Mikhail Komarov -// Copyright (c) 2022 Ilias Khairullin -// Copyright (c) 2022 Aleksei Moskvin -// Copyright (c) 2022-2023 Elena Tatuzova -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//---------------------------------------------------------------------------// -pragma solidity >=0.8.4; - -import "../../../contracts/types.sol"; -import "./gate_argument.sol"; - -library mina_scalar_gate0{ - uint256 constant MODULUS_OFFSET = 0x0; - uint256 constant THETA_OFFSET = 0x20; - - uint256 constant CONSTRAINT_EVAL_OFFSET = 0x00; - uint256 constant GATE_EVAL_OFFSET = 0x20; - uint256 constant GATES_EVALUATIONS_OFFSET = 0x40; - uint256 constant THETA_ACC_OFFSET = 0x60; - - uint256 constant WITNESS_EVALUATIONS_OFFSET = 0x80; - uint256 constant CONSTANT_EVALUATIONS_OFFSET = 0xa0; - uint256 constant SELECTOR_EVALUATIONS_OFFSET = 0xc0; - - - function evaluate_gate_be( - types.gate_argument_params memory gate_params, - mina_scalar_gate_argument_split_gen.local_vars_type memory local_vars - ) external pure returns (uint256 gates_evaluation, uint256 theta_acc) { - gates_evaluation = local_vars.gates_evaluation; - theta_acc = local_vars.theta_acc; - uint256 terms; - assembly { - let modulus := mload(gate_params) - let theta := mload(add(gate_params, THETA_OFFSET)) - - - function get_witness_i_by_rotation_idx(idx, rot_idx, ptr) -> result { - result := mload( - add( - add(mload(add(add(mload(add(ptr, WITNESS_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))), 0x20), - mul(0x20, rot_idx) - ) - ) - } - - function get_constant_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, CONSTANT_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - function get_selector_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, SELECTOR_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6819a58283e528e511db4d81cf70f5a0fed467d47c033af2aa9d2e050aa0e50,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(1,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(7,0, local_vars),get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffe,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20ffffffff,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffb,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(8,0, local_vars),get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffe,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20ffffffff,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffb,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(9,0, local_vars),get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffe,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20ffffffff,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffb,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(10,0, local_vars),get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffe,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20ffffffff,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffb,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(11,0, local_vars),get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffe,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20ffffffff,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffb,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(12,0, local_vars),get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffe,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20ffffffff,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffb,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(13,0, local_vars),get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffe,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20ffffffff,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffb,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(14,0, local_vars),get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffe,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20ffffffff,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffb,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(4,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20ffffff01,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac18465fd5bb87093b2d9f215ffffff16,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x140,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1555555555555555555555555555555560c232feaddc3849d96cf90affffffab,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1555555555555555555555555555555560c232feaddc3849d96cf90affffff8b,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xa0,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac18465fd5bb87093b2d9f215ffffffd6,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac18465fd5bb87093b2d9f215ffffffc6,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x50,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1555555555555555555555555555555560c232feaddc3849d96cf90affffffeb,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1555555555555555555555555555555560c232feaddc3849d96cf90affffffe3,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac18465fd5bb87093b2d9f215fffffff6,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac18465fd5bb87093b2d9f215fffffff2,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x14,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1555555555555555555555555555555560c232feaddc3849d96cf90afffffffb,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1555555555555555555555555555555560c232feaddc3849d96cf90afffffff9,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xa,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac18465fd5bb87093b2d9f215fffffffe,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac18465fd5bb87093b2d9f215fffffffd,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x5,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1555555555555555555555555555555560c232feaddc3849d96cf90affffffff,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3555555555555555555555555555555571e57f7cb2a68cb89f906e9b7fffffff,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2000000000000000000000000000000011234c7e04ca546ec623759080000003,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac18465fd5bb87093b2d9f21600000000,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(5,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20ffffff01,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x80 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac18465fd5bb87093b2d9f215fffffd96,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1c0,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1555555555555555555555555555555560c232feaddc3849d96cf90affffffab,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x40 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1555555555555555555555555555555560c232feaddc3849d96cf90afffffecb,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xe0,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac18465fd5bb87093b2d9f215ffffffd6,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x20 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac18465fd5bb87093b2d9f215ffffff66,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x70,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1555555555555555555555555555555560c232feaddc3849d96cf90affffffeb,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x10 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1555555555555555555555555555555560c232feaddc3849d96cf90affffffb3,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x38,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac18465fd5bb87093b2d9f215fffffff6,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x8 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac18465fd5bb87093b2d9f215ffffffda,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1c,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1555555555555555555555555555555560c232feaddc3849d96cf90afffffffb,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x4 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1555555555555555555555555555555560c232feaddc3849d96cf90affffffed,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xe,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac18465fd5bb87093b2d9f215fffffffe,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac18465fd5bb87093b2d9f215fffffff7,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x7,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1555555555555555555555555555555560c232feaddc3849d96cf90affffffff,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3555555555555555555555555555555571e57f7cb2a68cb89f906e9b7ffffffc,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2000000000000000000000000000000011234c7e04ca546ec623759080000004,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac18465fd5bb87093b2d9f21600000000,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(1,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20ffff0001,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20ffffc001,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffff001,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffc01,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20ffffff01,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20ffffffc1,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffff1,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffd,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(0,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(0,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(1,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(2,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - - } - } -} diff --git a/contracts/zkllvm/mina_scalar/gate10.sol b/contracts/zkllvm/mina_scalar/gate10.sol deleted file mode 100644 index fef877c..0000000 --- a/contracts/zkllvm/mina_scalar/gate10.sol +++ /dev/null @@ -1,1008 +0,0 @@ - -// SPDX-License-Identifier: Apache-2.0. -//---------------------------------------------------------------------------// -// Copyright (c) 2022 Mikhail Komarov -// Copyright (c) 2022 Ilias Khairullin -// Copyright (c) 2022 Aleksei Moskvin -// Copyright (c) 2022-2023 Elena Tatuzova -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//---------------------------------------------------------------------------// -pragma solidity >=0.8.4; - -import "../../../contracts/types.sol"; -import "./gate_argument.sol"; - -library mina_scalar_gate10{ - uint256 constant MODULUS_OFFSET = 0x0; - uint256 constant THETA_OFFSET = 0x20; - - uint256 constant CONSTRAINT_EVAL_OFFSET = 0x00; - uint256 constant GATE_EVAL_OFFSET = 0x20; - uint256 constant GATES_EVALUATIONS_OFFSET = 0x40; - uint256 constant THETA_ACC_OFFSET = 0x60; - - uint256 constant WITNESS_EVALUATIONS_OFFSET = 0x80; - uint256 constant CONSTANT_EVALUATIONS_OFFSET = 0xa0; - uint256 constant SELECTOR_EVALUATIONS_OFFSET = 0xc0; - - - function evaluate_gate_be( - types.gate_argument_params memory gate_params, - mina_scalar_gate_argument_split_gen.local_vars_type memory local_vars - ) external pure returns (uint256 gates_evaluation, uint256 theta_acc) { - gates_evaluation = local_vars.gates_evaluation; - theta_acc = local_vars.theta_acc; - uint256 terms; - assembly { - let modulus := mload(gate_params) - let theta := mload(add(gate_params, THETA_OFFSET)) - - - function get_witness_i_by_rotation_idx(idx, rot_idx, ptr) -> result { - result := mload( - add( - add(mload(add(add(mload(add(ptr, WITNESS_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))), 0x20), - mul(0x20, rot_idx) - ) - ) - } - - function get_constant_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, CONSTANT_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - function get_selector_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, SELECTOR_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(3,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x32b861e624b9790a34e10657cce5e549a180c584fafa0e5311dc25917ff93c77 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(4,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xb6b09130ed2a3c28a73ac7f9adeab1db2c75c737c5e7a38796c5d5e9a03cd51 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(5,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3c8126cbc433b9524bcff0c2734773cf0ec392e4f911458bad7649da217c869b - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xaab741eb1e3434282d3f173b56a1a03f9b2be41d57b29e97011e039f8d321b3 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(7,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xb1a7cd810172be47e499493c052bdb4f24d987877040d247d95dc18b9d46676 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(8,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3f0aa3eddc540afaff3b53befc09862323a1aa40d307b28e98a0ac3e8eb97b92 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(9,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2e22b54e8cb08f96b6733c6f5be4821cac6e026f1d02f3163f57530e1711831a - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(10,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x21cbb0daa283a1ac8bc618a063b159b25048f74b71064c5a29e6959b6c964bc5 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(11,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b82465052d2d083bdb6ca8a780545667ba30b5a99aaee689d17ab5b5f7870bd - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(12,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xe88b31d62ff0a9942b660e7eae820dd065f78a003ad56601aa522844f17be5a - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(13,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xd4209f5997a99a78e09abe966690af763bf88326a5501e941cb264e3da04029 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(14,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x10a9807b13ec8df9ee6ff3b4617cfc0fd5b9d3368bea5b47b258ea8bebdfa19c - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(0,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1242d869de1a6e25a80abba60be9f221f2ea201790c299ae44e367f2fec43f82 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(1,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d8a04a45ac482d4acdd19c0f65b7fd94bc2625f7b8284c30bc66579754c5c98 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(2,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x222f41456da01e20ec08cd4fcd783526deeffb991d044f2dc97ed91aaa168289 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(10,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(3,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x35c82871c6d5a37bbe06716242ae56eb03cd9d74910ebc25069667d4af3015b4 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(4,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x214481da6dedd32e92d81ecbef4d4b72d0390a6236088b56dd3c29eb9a201479 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(5,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1b59bab4f5963a66e929b0acd4a9dd9094fd0267d6dcd7edc5d0f5873c4249b2 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1969974c187ca20d07a47d161079b83bf040b162f637c27466daf5c1f8bb7df8 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(7,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2a378c8a2baeb442224027b1ae0db9bbb32b8240b0d75d039216f5a295599faa - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(8,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2e319d441edbdccb3d9f5987e8416f758e23bf4242a6121d84d3ee5803afe24b - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(9,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1fcb748294c7e402c536dc29f469af794fc4c055b4e749ab7b7473a869be0169 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(10,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2c672f6f02eebb2e17b8671c5f1056bd764833f2c1b0050de83cec0c4abe0518 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(11,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1b9e5e5d291c5f4d1ae7a51937bb01d5e719131c57c51fbe8fcd3ca022889414 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(12,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1e0e216b3b50ff7e7745a1510e256548ab3caa71bef3d27e72d44c427f777a6 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(13,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x22119152f8043f0177c0b2c6866b28a47e819ff4e8ad5dfab233e4b53c5823c6 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(14,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1782f9c694349caaa34d00bf715f8a30e21b8858438ca4a07f5407b8a1391d54 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(0,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x927b36ac2a7b9f8b87259e7c23b258e6487257ec3995107e70b3d5fdc51f8e5 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(1,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1b3702ec2d9785606f39e25d97dc2b6cd7118c01c10756590a0d4d10958f538d - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(2,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3ad1fad595b6cba836b89333b0266db1c5d451427b3c050de5be2a28ceb41599 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(11,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - - } - } -} diff --git a/contracts/zkllvm/mina_scalar/gate12.sol b/contracts/zkllvm/mina_scalar/gate12.sol deleted file mode 100644 index 7c84c8b..0000000 --- a/contracts/zkllvm/mina_scalar/gate12.sol +++ /dev/null @@ -1,1008 +0,0 @@ - -// SPDX-License-Identifier: Apache-2.0. -//---------------------------------------------------------------------------// -// Copyright (c) 2022 Mikhail Komarov -// Copyright (c) 2022 Ilias Khairullin -// Copyright (c) 2022 Aleksei Moskvin -// Copyright (c) 2022-2023 Elena Tatuzova -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//---------------------------------------------------------------------------// -pragma solidity >=0.8.4; - -import "../../../contracts/types.sol"; -import "./gate_argument.sol"; - -library mina_scalar_gate12{ - uint256 constant MODULUS_OFFSET = 0x0; - uint256 constant THETA_OFFSET = 0x20; - - uint256 constant CONSTRAINT_EVAL_OFFSET = 0x00; - uint256 constant GATE_EVAL_OFFSET = 0x20; - uint256 constant GATES_EVALUATIONS_OFFSET = 0x40; - uint256 constant THETA_ACC_OFFSET = 0x60; - - uint256 constant WITNESS_EVALUATIONS_OFFSET = 0x80; - uint256 constant CONSTANT_EVALUATIONS_OFFSET = 0xa0; - uint256 constant SELECTOR_EVALUATIONS_OFFSET = 0xc0; - - - function evaluate_gate_be( - types.gate_argument_params memory gate_params, - mina_scalar_gate_argument_split_gen.local_vars_type memory local_vars - ) external pure returns (uint256 gates_evaluation, uint256 theta_acc) { - gates_evaluation = local_vars.gates_evaluation; - theta_acc = local_vars.theta_acc; - uint256 terms; - assembly { - let modulus := mload(gate_params) - let theta := mload(add(gate_params, THETA_OFFSET)) - - - function get_witness_i_by_rotation_idx(idx, rot_idx, ptr) -> result { - result := mload( - add( - add(mload(add(add(mload(add(ptr, WITNESS_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))), 0x20), - mul(0x20, rot_idx) - ) - ) - } - - function get_constant_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, CONSTANT_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - function get_selector_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, SELECTOR_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(3,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x102cd45175bf54b670945d6f8cc447db1d687d1486d2daed5263ef58bc5fe1af - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(4,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3b17182cbec37373301eab23ae0ce3899fe41c8a0f495802e11ef87c2d9dc15b - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(5,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1f3e92ff6831414c7aaf749f9b784550e69947a060f3ef659aea361ec6be71c9 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xb0e209fca5538adfbc97eda4f3b313f1a639f11098f57606570d9e2e0c99d90 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(7,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x8a68c4a61284b424cc9bd2df19c9b0ca7b2696bf09dec37e085e41bb7ebda21 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(8,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1961736877fc1ae2bcbc6483e73bd9f1a0a88f1430cbd5568600af657ee39675 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(9,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1e41e6ec078b0c124775e09f32ea8034ab4778471e810e2f6beb90f99bf6787f - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(10,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x85f57457c2477b08de3dafd82e773856a7f14f091344182586521e2bfdc6d82 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(11,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3a92f1980218864841a0cf75c31ee61de44195152ed6ed0873ab36d339590f5d - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(12,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2bb8dcbc95cd625a9bb33169011b6ad51be606389dc380a4d74716f8c3017d3d - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(13,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x313f4a0eb45af55d4fdd2f90446df5d572923343419c891c730fd0d44495300a - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(14,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x397a21e7265cb95ca3bb5d5b538d7c2924184e5e493beb8a15462efc6ad8e8e0 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(0,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2872348b4ab95215be502a26c10a9b34e76b8a06e992a702a23740d0d9447345 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(1,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x23e234e10930a0fc951ffcf40870e9bc5e0d14c2afb733e3635cb4bd8ca336de - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(2,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x33051936666b3a08fd345c4cd5b1c70cac04913c21c70ce814e3afdf7bc15ec9 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(12,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(3,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x17c75fdaa78e92d4b63f904cb3b6327e137f7a75ecea157e4216acdefcf51c22 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(4,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x13e6bb0c13d7ad1294af043b544370d7daaee591e5e1870b1607f695e5a5fdef - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(5,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xf5de7532ef60fb9a86ab17d0605333baad379b17447b03179758c63baf16236 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1b772105baac05a42a5044a02d75e1665cc0d306c7ce84af1c24d56eded3e2de - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(7,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2f3628d7ddba3889255e9aa968057863dd5f68c3de0ea375c9debee5b0fb1b1 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(8,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xc553b9adb0cd0caa912e95f6ed10d8b9f83e9313d990f0eb2c3566a3f1c89a2 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(9,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x27a75a0abc54f58f34c6a81f77b4eb94df7a60980defc8a977ec3a843882bd74 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(10,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1262905197100d186c699e8df81d7245e4cd5dddd25ad5ceedabdabcb1606634 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(11,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28b8054f8b4c833e35824082923ec98c12e97219067af5860c7e52a1edb83553 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(12,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3c706fa24aed70db1b671c957b20a5a7350a8ded30a115a6a0cdbe6acb07947a - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(13,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3f0001bd31b5785f4c5614181120e93f5493fc666e264f8de1dd2aae83917da2 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(14,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xeb3cf6f32f5b9a256a502aea3f88e8fe3f7b6531ed61939866bf263b6431ba9 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(0,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1a048e26f8e39a73c6019bc6d16f453bc88e96c9759414cbf5f0dacbf31f957 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(1,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x160184702f555c8605841f2429bcf6a1a7a3dfbc245b27688d604ef6fd16734 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(2,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xc11b089006a428ca139fd1190b2e99b575a7154455ebe09d77e0bb44ae0fef3 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(13,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - - } - } -} diff --git a/contracts/zkllvm/mina_scalar/gate14.sol b/contracts/zkllvm/mina_scalar/gate14.sol deleted file mode 100644 index 794d43e..0000000 --- a/contracts/zkllvm/mina_scalar/gate14.sol +++ /dev/null @@ -1,1008 +0,0 @@ - -// SPDX-License-Identifier: Apache-2.0. -//---------------------------------------------------------------------------// -// Copyright (c) 2022 Mikhail Komarov -// Copyright (c) 2022 Ilias Khairullin -// Copyright (c) 2022 Aleksei Moskvin -// Copyright (c) 2022-2023 Elena Tatuzova -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//---------------------------------------------------------------------------// -pragma solidity >=0.8.4; - -import "../../../contracts/types.sol"; -import "./gate_argument.sol"; - -library mina_scalar_gate14{ - uint256 constant MODULUS_OFFSET = 0x0; - uint256 constant THETA_OFFSET = 0x20; - - uint256 constant CONSTRAINT_EVAL_OFFSET = 0x00; - uint256 constant GATE_EVAL_OFFSET = 0x20; - uint256 constant GATES_EVALUATIONS_OFFSET = 0x40; - uint256 constant THETA_ACC_OFFSET = 0x60; - - uint256 constant WITNESS_EVALUATIONS_OFFSET = 0x80; - uint256 constant CONSTANT_EVALUATIONS_OFFSET = 0xa0; - uint256 constant SELECTOR_EVALUATIONS_OFFSET = 0xc0; - - - function evaluate_gate_be( - types.gate_argument_params memory gate_params, - mina_scalar_gate_argument_split_gen.local_vars_type memory local_vars - ) external pure returns (uint256 gates_evaluation, uint256 theta_acc) { - gates_evaluation = local_vars.gates_evaluation; - theta_acc = local_vars.theta_acc; - uint256 terms; - assembly { - let modulus := mload(gate_params) - let theta := mload(add(gate_params, THETA_OFFSET)) - - - function get_witness_i_by_rotation_idx(idx, rot_idx, ptr) -> result { - result := mload( - add( - add(mload(add(add(mload(add(ptr, WITNESS_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))), 0x20), - mul(0x20, rot_idx) - ) - ) - } - - function get_constant_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, CONSTANT_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - function get_selector_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, SELECTOR_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(3,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x298f3df7f0d69a412c0b624f49c510a0cc1b6489d4304d4b7045b870e337ded1 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(4,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1efa9addb1d119b22b8641c569623cf3bcb365a94ef9866bebb2bf2f40b7a8be - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(5,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x36583922b72040af4ecfaa4cf017a06cd65d47707ea43424fca9066f209769eb - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x206ee97ee155209881934af04a631f057126ef0b2ba365b988e5dd07cd5855e5 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(7,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x264ae5b73dda25064cb9ee333a45f8816685f75f0cf8ed060168d95159aaf8a2 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(8,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xd792d6149f3c29dfb14acb2ec0bf2e52c1049ec28327ecad1e74ab77790ce03 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(9,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3642bfc2fa24ec81586c0ef4922f7858d7cdcf4bedc7393fdd0d3bf20a82cb93 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(10,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x58e9abfdc1bcc9c19f776153af14e0ea64252f5812d36f2dcc1cf6e2ff4c516 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(11,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xbea46b09d3a6b990efdbbd4b45182946efe008ab4c7c771babf98c6904a4bbe - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(12,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x35ca0f0399ff6d47e0ea2290f4c2e860ba645b3faa1afa78f5ee443f265cb9b - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(13,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x191ec9f5080239d1641f79ae3d3a6ff14c979c4b31496e34fe119ebaa75f879e - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(14,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xf2fa77be8b285e2162cb376ddb2e80c686ab94b9059541cb99c3c3333ca842b - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(0,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x138099074fa7fdc90fda229d9adffb661864d8fcfb34cee6ef8a7a460f53a93d - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(1,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x33a3465caf2d23b9c22fa2429691edd3b92ee195b57c9cab530f0c3cb394146e - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(2,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2b2b28662bc26e4b2f6263d4023ec59b6db980870491769a2a4d2bae9813646f - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(14,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(3,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x39f3a9577b3295e2caeb0d76a7e947b1b0e5b9ab02abd8ac1b3f8162e53a3fb5 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(4,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1c1ea0c83ded993791526675b91bd0918a4ac32a460fb3c000f21acf57f28ac4 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(5,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1a14d6eefcb549410b56969ac0a33cc1b931e045c875a28ecc2b1c0b8015b1ac - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x216a3fb3afa8542e4bc5d0436bd4dc6e5165be0c825c702a42f87dc14f985eea - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(7,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2ab89fd037caa755ecd8dde02ddf05dd6594a20fc6a6f1118656f61839a77c36 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(8,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x294996153ce18d5618c604fc02815c77f2811fe0f423654af165bb5e010174c4 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(9,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x38fcb0b1dae59a3bbdcb862362ad785ce085901b54267f39fa4d4aa6f357dd10 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(10,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2062a8ce45fbf23a9719e47a8e156a3773b05cfefc522abb1c6c991bc0a97e - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(11,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xc0d320969fec65f04b5c57ed866d1d5667270b4971083bb0210fcae42a4fe3a - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(12,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3ca9e92aafcc2703f6dc67093a7403917753ac5e349496b87552614539ceba86 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(13,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x21357fe769bc20eb8c167256c01a756aab67a82a76c0939ddd8a196eef3e9fc2 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(14,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x19ddc35b50d27278735aacf3c19800e38c918d5fae1212fbfaf62eef106f4569 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(0,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x26e7f05a05349b1164b7d83328999dd543339a7b5e7ce1a43bd1b492ef5d5ca0 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(1,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3e960e9a7aa1f68afe0da294c5517ea33b5df739800f9fa6b2f085a1f1266bbb - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(2,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x9c57076e21a68b0f9451fbc4395d94bd0b97781133b9a4a7363c525dea32601 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(15,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - - } - } -} diff --git a/contracts/zkllvm/mina_scalar/gate16.sol b/contracts/zkllvm/mina_scalar/gate16.sol deleted file mode 100644 index fd3b6f0..0000000 --- a/contracts/zkllvm/mina_scalar/gate16.sol +++ /dev/null @@ -1,1008 +0,0 @@ - -// SPDX-License-Identifier: Apache-2.0. -//---------------------------------------------------------------------------// -// Copyright (c) 2022 Mikhail Komarov -// Copyright (c) 2022 Ilias Khairullin -// Copyright (c) 2022 Aleksei Moskvin -// Copyright (c) 2022-2023 Elena Tatuzova -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//---------------------------------------------------------------------------// -pragma solidity >=0.8.4; - -import "../../../contracts/types.sol"; -import "./gate_argument.sol"; - -library mina_scalar_gate16{ - uint256 constant MODULUS_OFFSET = 0x0; - uint256 constant THETA_OFFSET = 0x20; - - uint256 constant CONSTRAINT_EVAL_OFFSET = 0x00; - uint256 constant GATE_EVAL_OFFSET = 0x20; - uint256 constant GATES_EVALUATIONS_OFFSET = 0x40; - uint256 constant THETA_ACC_OFFSET = 0x60; - - uint256 constant WITNESS_EVALUATIONS_OFFSET = 0x80; - uint256 constant CONSTANT_EVALUATIONS_OFFSET = 0xa0; - uint256 constant SELECTOR_EVALUATIONS_OFFSET = 0xc0; - - - function evaluate_gate_be( - types.gate_argument_params memory gate_params, - mina_scalar_gate_argument_split_gen.local_vars_type memory local_vars - ) external pure returns (uint256 gates_evaluation, uint256 theta_acc) { - gates_evaluation = local_vars.gates_evaluation; - theta_acc = local_vars.theta_acc; - uint256 terms; - assembly { - let modulus := mload(gate_params) - let theta := mload(add(gate_params, THETA_OFFSET)) - - - function get_witness_i_by_rotation_idx(idx, rot_idx, ptr) -> result { - result := mload( - add( - add(mload(add(add(mload(add(ptr, WITNESS_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))), 0x20), - mul(0x20, rot_idx) - ) - ) - } - - function get_constant_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, CONSTANT_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - function get_selector_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, SELECTOR_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(3,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2dd55583ccf2234a8e7f8b619a69ff5b429a3b218df940327cbbbc3a21caf314 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(4,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x312dfc21035ec14209507fa560a242012946911cdec1792bc4158538c854a1c2 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(5,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2e3316b4438569168f71662c9993f5d8cf1cecb00a5245932cae4d4403d70299 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28fa99ca785fc34eeb7a5362fe02ef35110ddae3e8c23ec8a79b7004f021372f - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(7,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2d52d759fb7a5d26ee9c6fae68e0bc230ca5b92910f3ca681d3a66a1129c1284 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(8,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x35619e33ca1456c8b115ee88ac55556c4b93f9a6fd685420aba0e392fa246b8c - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(9,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x38d3c29d30ff956a2374d5ac078744d925975cd3328affc757534a81adafab54 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(10,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3e3170e974bb908186846e98803b9568c519ee982d5f17aac47d7881a41db585 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(11,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x317b958dee1025c27eea4a40895548155f908f6be29833d890c53ed6883aa9f4 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(12,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x354470262905c88dfdd05777ff3ed423673464b4d971dbc97a3316cedaa5f0ac - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(13,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x23a266c743ca5b7cd17c8a23cf82458610d96ea59b543e2a6dbbe77d9137f832 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(14,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xa41585390bf1f0af0f72cda4160fae04aebbe70064e89907694253f5c28dbd0 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(0,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3be6ca83dfa581e1fd73f0b63421547a6a174b447a79adc236ddff052d1b7351 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(1,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x26cc1bdb387718b995ea60e01fea538e115228b72fb5406abe4cc8a61b2de6f7 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(2,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x321d8332256a544c267248929080ead619731d53f23bea2e5d692ec82ec1a9f2 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(16,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(3,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3ca5ced2a29340ff2aa0f6801450642a3780a673ead59de354c8bf793230d0b0 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(4,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x33190beabb635aea1b256e88ad836dbd747a006e23b32470847915f8b0c60631 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(5,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x7028eabc25a3b3fbb823dd55d3e1c8bd58e4a4a0a7da4d74b91dbc3207371a0 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2a7217a6552ac395e821baa54f985f654b7af6ccc892d73f146e4889a3f2369c - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(7,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x13cffa7711517343c7eb42e289b90b8d32db5455fd239ce77c3db3d0b1acd376 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(8,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x34e67308bd5fd6bf653fdc6846e1d8fb27b1ac0ac2040934b5281cd0781d303e - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(9,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2ff4c8a3de2ca82a9862719261484007347241a6d3d543c1eb952d9d304aba69 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(10,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2a5b8b2bba6f1d4dc4744e1860a9ec0ebca81e194cb39aee7f654a1f14c1c31c - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(11,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x155df199bd56761e19067eb3db0fdd670622f117fe9fa308d315e390da4812b4 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(12,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x269a680d29a3a96d8f986a40b9148416b715347fe65096ca281a1e3223fe143d - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(13,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1b7d6e55ae9255f5932e6e3e39ae57d0a52b39f38bc92beefaa46ed87b7c1d44 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(14,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x93fd46752d8dd488b514ece4ce402f7a5dc19ceff54fe9cceae513b0d8f7882 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(0,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2dbf1f96b65e526d427516f88d4a27afd0d280cf81f276b5e1d233bdf245be6c - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(1,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x47c081c90cf6c6587139c34daab55f9b8a4d93a50dc379120bcb1c841495e9e - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(2,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x29974fa7d31fb080a4e1ca1e4833c1fa6422cccf6b88bf9a26edd1e1d572efd3 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(17,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - - } - } -} diff --git a/contracts/zkllvm/mina_scalar/gate18.sol b/contracts/zkllvm/mina_scalar/gate18.sol deleted file mode 100644 index 99c6a9e..0000000 --- a/contracts/zkllvm/mina_scalar/gate18.sol +++ /dev/null @@ -1,1222 +0,0 @@ - -// SPDX-License-Identifier: Apache-2.0. -//---------------------------------------------------------------------------// -// Copyright (c) 2022 Mikhail Komarov -// Copyright (c) 2022 Ilias Khairullin -// Copyright (c) 2022 Aleksei Moskvin -// Copyright (c) 2022-2023 Elena Tatuzova -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//---------------------------------------------------------------------------// -pragma solidity >=0.8.4; - -import "../../../contracts/types.sol"; -import "./gate_argument.sol"; - -library mina_scalar_gate18{ - uint256 constant MODULUS_OFFSET = 0x0; - uint256 constant THETA_OFFSET = 0x20; - - uint256 constant CONSTRAINT_EVAL_OFFSET = 0x00; - uint256 constant GATE_EVAL_OFFSET = 0x20; - uint256 constant GATES_EVALUATIONS_OFFSET = 0x40; - uint256 constant THETA_ACC_OFFSET = 0x60; - - uint256 constant WITNESS_EVALUATIONS_OFFSET = 0x80; - uint256 constant CONSTANT_EVALUATIONS_OFFSET = 0xa0; - uint256 constant SELECTOR_EVALUATIONS_OFFSET = 0xc0; - - - function evaluate_gate_be( - types.gate_argument_params memory gate_params, - mina_scalar_gate_argument_split_gen.local_vars_type memory local_vars - ) external pure returns (uint256 gates_evaluation, uint256 theta_acc) { - gates_evaluation = local_vars.gates_evaluation; - theta_acc = local_vars.theta_acc; - uint256 terms; - assembly { - let modulus := mload(gate_params) - let theta := mload(add(gate_params, THETA_OFFSET)) - - - function get_witness_i_by_rotation_idx(idx, rot_idx, ptr) -> result { - result := mload( - add( - add(mload(add(add(mload(add(ptr, WITNESS_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))), 0x20), - mul(0x20, rot_idx) - ) - ) - } - - function get_constant_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, CONSTANT_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - function get_selector_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, SELECTOR_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(3,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x192958f716b9b37a16389fa1780469fcb2749a74d1f9e4a2b6e662cb7d1bfd94 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(4,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3a6b0330e79c66c4bc52f5ec3a0385ac2ca71b99db19887049ede3fcc59619d4 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(5,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3871b3a7749222f01812ac560da4953c5f5bd735c9e5dc5efad79ddb66fae6c1 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x30bb15c1eb3c1b7b61185ada0188e8f49bedf286d313c673c249ce0e6cd50964 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(7,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x117a98436171c9642088b7293809887ca5e684a6352f8eae7c1b5621e06aec88 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(8,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x83ca4fa9e8e67d33828b19f7e0353d0abf77918faab23025bdcc870682ae453 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(9,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x16243002a4aa298e37a35bdfc853a19b4f5756299949b4636bbf6ce6a1a0e264 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(10,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1fef67bdd1fab3e2233b9abee2ffd2d45c9e741a419fb5feb302aee942fb5ae1 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(11,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3821cd12b3aebcbcf10bc510eff06b7129ecedc475ea56798aeff53926d3237d - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(12,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xb16a5233f3a3cb02c7546db95fb33eff8502041b5d3b1e0644e6ad06b1c9e68 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(13,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x22a050ea8ed93a66dcd67dca935f1584a06e233bec107d80baad60c4b8f059de - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(14,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x29f57fe8942d7e1c05647d1bbf9c338429d7e0e871af8a9b8dffa53e83a81e2f - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(0,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2813380a214eb73abd5dd2fd4f67bc68fdb58ec04c4ba59affb724a00ce4dbfb - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(1,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3fdf59551e807dd438fca25c476ce7695a2546c79a6a65323e46c1450fefe4c4 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(2,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3615f13ef3f18846c7a5a7332a133c3796eaaba35a2202051092a43fb058372b - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(18,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(1,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x10000000000000000,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x100000000000000000000000000000000,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1000000000000000000000000000000000000000000000000,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x40000000000000000000000000000000224698fc0994a8dd188dd64200000002 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(5,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x10000000000000000,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x40000000000000000000000000000000224698fc0994a8dcae8d841d0994a8df - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x10000000000000000,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x40000000000000000000000000000000224698fc0994a8dc8c46eb2100000002 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(7,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x10000000000000000,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x40000000000000000000000000000000224698fc0994a8dccc46eb2100000002 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(8,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(9,0, local_vars),get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(10,0, local_vars),get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(11,0, local_vars),get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(19,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(1,1, local_vars),get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffe,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20ffffffff,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffb,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(2,0, local_vars),get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffe,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20ffffffff,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffb,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(3,0, local_vars),get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffe,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20ffffffff,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffb,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(4,0, local_vars),get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffe,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20ffffffff,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffb,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(5,1, local_vars),get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffe,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20ffffffff,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffb,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(6,0, local_vars),get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffe,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20ffffffff,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffb,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(7,0, local_vars),get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffe,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20ffffffff,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffb,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(8,0, local_vars),get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffe,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20ffffffff,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffb,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(9,0, local_vars),get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffe,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20ffffffff,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffb,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(10,0, local_vars),get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffe,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20ffffffff,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffb,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(11,0, local_vars),get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffe,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20ffffffff,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffb,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(12,0, local_vars),get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffe,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20ffffffff,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffb,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(13,0, local_vars),get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffe,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20ffffffff,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffb,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(14,0, local_vars),get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffe,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20ffffffff,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x6,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb20fffffffb,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(0x4000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1000000,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x400000,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x100000,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x10000,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x4000,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1000,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x400,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x100,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x10,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x4,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(14,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x10000000,get_witness_i_by_rotation_idx(0,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(20,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(0,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x10000000000000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(21,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(0,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(0,2, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(13,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(1,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(2,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(22,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(1,1, local_vars),get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(4,0, local_vars),get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(3,0, local_vars),get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(1,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(23,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - - } - } -} diff --git a/contracts/zkllvm/mina_scalar/gate3.sol b/contracts/zkllvm/mina_scalar/gate3.sol deleted file mode 100644 index 0eed653..0000000 --- a/contracts/zkllvm/mina_scalar/gate3.sol +++ /dev/null @@ -1,1031 +0,0 @@ - -// SPDX-License-Identifier: Apache-2.0. -//---------------------------------------------------------------------------// -// Copyright (c) 2022 Mikhail Komarov -// Copyright (c) 2022 Ilias Khairullin -// Copyright (c) 2022 Aleksei Moskvin -// Copyright (c) 2022-2023 Elena Tatuzova -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//---------------------------------------------------------------------------// -pragma solidity >=0.8.4; - -import "../../../contracts/types.sol"; -import "./gate_argument.sol"; - -library mina_scalar_gate3{ - uint256 constant MODULUS_OFFSET = 0x0; - uint256 constant THETA_OFFSET = 0x20; - - uint256 constant CONSTRAINT_EVAL_OFFSET = 0x00; - uint256 constant GATE_EVAL_OFFSET = 0x20; - uint256 constant GATES_EVALUATIONS_OFFSET = 0x40; - uint256 constant THETA_ACC_OFFSET = 0x60; - - uint256 constant WITNESS_EVALUATIONS_OFFSET = 0x80; - uint256 constant CONSTANT_EVALUATIONS_OFFSET = 0xa0; - uint256 constant SELECTOR_EVALUATIONS_OFFSET = 0xc0; - - - function evaluate_gate_be( - types.gate_argument_params memory gate_params, - mina_scalar_gate_argument_split_gen.local_vars_type memory local_vars - ) external pure returns (uint256 gates_evaluation, uint256 theta_acc) { - gates_evaluation = local_vars.gates_evaluation; - theta_acc = local_vars.theta_acc; - uint256 terms; - assembly { - let modulus := mload(gate_params) - let theta := mload(add(gate_params, THETA_OFFSET)) - - - function get_witness_i_by_rotation_idx(idx, rot_idx, ptr) -> result { - result := mload( - add( - add(mload(add(add(mload(add(ptr, WITNESS_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))), 0x20), - mul(0x20, rot_idx) - ) - ) - } - - function get_constant_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, CONSTANT_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - function get_selector_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, SELECTOR_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(14,0, local_vars),get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(13,0, local_vars),get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(5,0, local_vars),get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(5,0, local_vars),get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(5,0, local_vars),get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(5,0, local_vars),get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(5,0, local_vars),get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(5,0, local_vars),get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(5,0, local_vars),get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(5,0, local_vars),get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(5,0, local_vars),get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(5,0, local_vars),get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(5,0, local_vars),get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(5,0, local_vars),get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(5,0, local_vars),get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(5,0, local_vars),get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(12,0, local_vars),get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(11,0, local_vars),get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(2,0, local_vars),get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(2,0, local_vars),get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(2,0, local_vars),get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(2,0, local_vars),get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(2,0, local_vars),get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(2,0, local_vars),get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(2,0, local_vars),get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(2,0, local_vars),get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(2,0, local_vars),get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(2,0, local_vars),get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(2,0, local_vars),get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(2,0, local_vars),get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(2,0, local_vars),get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(2,0, local_vars),get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(10,0, local_vars),get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(9,0, local_vars),get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(3,0, local_vars),get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(3,0, local_vars),get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(3,0, local_vars),get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(3,0, local_vars),get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(3,0, local_vars),get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(3,0, local_vars),get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(3,0, local_vars),get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(3,0, local_vars),get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(3,0, local_vars),get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(3,0, local_vars),get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(3,0, local_vars),get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(3,0, local_vars),get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(3,0, local_vars),get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(3,0, local_vars),get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(8,0, local_vars),get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(7,0, local_vars),get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(4,0, local_vars),get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(4,0, local_vars),get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(4,0, local_vars),get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(4,0, local_vars),get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(4,0, local_vars),get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(4,0, local_vars),get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(4,0, local_vars),get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(4,0, local_vars),get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(4,0, local_vars),get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(4,0, local_vars),get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(4,0, local_vars),get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(4,0, local_vars),get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(4,0, local_vars),get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(get_witness_i_by_rotation_idx(4,0, local_vars),get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(0x80,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x20,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x10,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x8,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x4,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=get_witness_i_by_rotation_idx(7,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x100,get_witness_i_by_rotation_idx(1,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(3,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(4,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(0,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(5,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(1,1, local_vars),get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(1,1, local_vars),get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(6,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=mulmod(get_witness_i_by_rotation_idx(0,1, local_vars),get_constant_i(0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(7,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - - } - } -} diff --git a/contracts/zkllvm/mina_scalar/gate8.sol b/contracts/zkllvm/mina_scalar/gate8.sol deleted file mode 100644 index 7b2f9dc..0000000 --- a/contracts/zkllvm/mina_scalar/gate8.sol +++ /dev/null @@ -1,1008 +0,0 @@ - -// SPDX-License-Identifier: Apache-2.0. -//---------------------------------------------------------------------------// -// Copyright (c) 2022 Mikhail Komarov -// Copyright (c) 2022 Ilias Khairullin -// Copyright (c) 2022 Aleksei Moskvin -// Copyright (c) 2022-2023 Elena Tatuzova -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//---------------------------------------------------------------------------// -pragma solidity >=0.8.4; - -import "../../../contracts/types.sol"; -import "./gate_argument.sol"; - -library mina_scalar_gate8{ - uint256 constant MODULUS_OFFSET = 0x0; - uint256 constant THETA_OFFSET = 0x20; - - uint256 constant CONSTRAINT_EVAL_OFFSET = 0x00; - uint256 constant GATE_EVAL_OFFSET = 0x20; - uint256 constant GATES_EVALUATIONS_OFFSET = 0x40; - uint256 constant THETA_ACC_OFFSET = 0x60; - - uint256 constant WITNESS_EVALUATIONS_OFFSET = 0x80; - uint256 constant CONSTANT_EVALUATIONS_OFFSET = 0xa0; - uint256 constant SELECTOR_EVALUATIONS_OFFSET = 0xc0; - - - function evaluate_gate_be( - types.gate_argument_params memory gate_params, - mina_scalar_gate_argument_split_gen.local_vars_type memory local_vars - ) external pure returns (uint256 gates_evaluation, uint256 theta_acc) { - gates_evaluation = local_vars.gates_evaluation; - theta_acc = local_vars.theta_acc; - uint256 terms; - assembly { - let modulus := mload(gate_params) - let theta := mload(add(gate_params, THETA_OFFSET)) - - - function get_witness_i_by_rotation_idx(idx, rot_idx, ptr) -> result { - result := mload( - add( - add(mload(add(add(mload(add(ptr, WITNESS_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))), 0x20), - mul(0x20, rot_idx) - ) - ) - } - - function get_constant_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, CONSTANT_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - function get_selector_i(idx, ptr) -> result { - result := mload(add(add(mload(add(ptr, SELECTOR_EVALUATIONS_OFFSET)), 0x20), mul(0x20, idx))) - } - - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(3,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3a6f10d5eb45c31081706c59221b2b7f1cc93bf6c19db84a4a903262e63ff11b - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(4,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x388055881287007496a7a620cb24aea82b9207a58a3570b2fc789791f1a00192 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(5,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1ab4836b6aa3766b12e91366af2a6537d7ce217efa55fa82421c25e145d21b1 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x8266e2372b21c6edcaa8ba38287074fdd2fe7aed8b215b8d0e91aab35f0f3e4 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(7,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x33f9eb22e3009397e8500f627d107d71a17babae697126ad0349e910df07e0f3 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(8,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3ccca1cca5c012bb7bdca6ad74c1771e9ffc81be617ad0ef234102f212fabdbe - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(9,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x34ddfd55ab2bd0b0f896c8998dc469db5849f428cf6909f97d2a6a86ea5b75e4 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(10,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x16fdac1f1e2d38d4cd5a4d8dec85f76d6cb34df07a6df3e1665cea4ac58f1622 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(11,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x16678c18cfda283748e02df62ec2458814488e819134a3a52043c8c49c2ff0e - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(12,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x29b97d0aa13ceb09c60a07f9d5b220ee34c5c379e40306ad96f7b7136fe9a27c - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(13,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xf645def6c362fb37e42ad8c52ef9b1e64b631cadc623effb167765e14e2c200 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(14,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2a618d44fcf34766b4d153e2b1182f0fb73b8fcd9382d47d2bebad949f5d8b28 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(0,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x328bc240390c37cc31d10b6a94152c3f09496763a474706573433e8e6de7022b - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(1,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2734a56dcf148bfba1217cb53922ed644fa652ce3f77120c248d2d12e1695979 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(2,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x127d07a03ddd4dea6fd29e37a36974c6aca92ccd6ef3c7bdbbbe696151cee19b - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(8,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET), 0) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(3,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x16df7d741a68d347007fdcc7956f57c86649ce624b70a7a59474d93448dade1b - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(4,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xefe88b1e3c28d2fef104d63e93b89169988e488e7e5695aabea215a4fc9f7ae - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(5,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(0,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(1,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(2,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0xd84b19cac3f661be5700546efc669464fa99121fa7a8fc2e54b95608df390ad - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(6,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3f8e3d6fe722b72a3aa8c861562b502816b4206d348ada06d18270bb4574b8a5 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(7,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1a10211093a52a97cb4db301fc2a8c9f6e133a3306cd19f457b83052548d9fc9 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(8,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(3,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(4,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(5,1, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2f6001a326e70328258024bf2cd53bf92df311ac2f518ca7c263951f4308f718 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(9,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x20b21a2874bc871f135b6126b666274390fdf94e0c0b3c528c8c443e9ab2e742 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(10,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x28ce7a1e1552f99b45e3fe471be85bbdf623f4bea7684ae40035a302dfa1b663 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(11,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(6,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(7,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(8,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x29e5f174ce5902bd8d823f5c851b08eaba0ba5a395d770f5fe363f55f1de0544 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(12,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x21354c0bd6cb5339bb33dd8cea13294535efa9e76b840756850dcb6c3bf5834 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(13,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x1628abe2d5b03206380ebb31e16a85a1c5d93bf5c37c677574763de78f74d7fa - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(14,0, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(9,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(10,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(11,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x22fadaaa797a6882cde01793fa0b9d51f3effa8ee968d317613ed5eefbabeeb7 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(0,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x1d70822e80b8581cfb5ab2c8822851174db06f98c33edea8c227e30dc22a6b3,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0xf24f954496903346d4d753deb0b76c2e26e4dbebf04906842d108dc883cda01,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x28beef43e4fa739fe900a17ead54c004b4182caf07ae3e235c20915be480a9c7,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x3d82e513f3337f08e2f62d563f48911a23ac11aa9a863fc2ece730eaf34860cf - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(1,2, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x2d2c9057cafceb967f3fa5e2b7432af2f3a9556b26410784eb48b2a2d4b514f5,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x154e83714c9641589160f3c7a17450390d0fda1f7b8dd86db5ead4b016b263ac,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3f336eacd7e9a3ec67950ed81ef7461a48a08c9e40666a67558e2746a4b57aca,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x23d71297ea61ab207d6919ab4f3e4a78f46283a451e47e0166d91f0affdd6459 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET), 0) - terms:=get_witness_i_by_rotation_idx(2,1, local_vars) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3b26592d8f96997714bcb9eac4c7f39ee808ce0b0e3a8a5a0c0650405ebc2ce6,get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(12,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x3d57fa111cce837451e082ea541b2d8033e6ed2c6f61740c012db87dc88b3cdd,get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(13,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=mulmod(0x264f6d16392002e14e4920d243ff44dd9e8cf174e256dd2ff0b96153afd48444,get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - terms:=mulmod(terms, get_witness_i_by_rotation_idx(14,0, local_vars), modulus) - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - terms:=0x2a36341d640b1827451dd22ddec3798dd3ad5411bdf67427242b0005f68ddea3 - mstore(add(local_vars, CONSTRAINT_EVAL_OFFSET),addmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),terms,modulus)) - mstore(add(local_vars, GATE_EVAL_OFFSET),addmod(mload(add(local_vars, GATE_EVAL_OFFSET)),mulmod(mload(add(local_vars, CONSTRAINT_EVAL_OFFSET)),theta_acc,modulus),modulus)) - theta_acc := mulmod(theta_acc, theta, modulus) - mstore(add(local_vars, GATE_EVAL_OFFSET),mulmod(mload(add(local_vars, GATE_EVAL_OFFSET)),get_selector_i(9,local_vars),modulus)) - gates_evaluation := addmod(gates_evaluation,mload(add(local_vars, GATE_EVAL_OFFSET)),modulus) - - } - } -} diff --git a/contracts/zkllvm/mina_scalar/gate_argument.sol b/contracts/zkllvm/mina_scalar/gate_argument.sol deleted file mode 100644 index 14614eb..0000000 --- a/contracts/zkllvm/mina_scalar/gate_argument.sol +++ /dev/null @@ -1,115 +0,0 @@ - -// SPDX-License-Identifier: Apache-2.0. -//---------------------------------------------------------------------------// -// Copyright (c) 2022 Mikhail Komarov -// Copyright (c) 2022 Aleksei Moskvin -// Copyright (c) 2023 Elena Tatuzova -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//---------------------------------------------------------------------------// -pragma solidity >=0.8.4; - -import "../../../contracts/types.sol"; -import "../../../contracts/basic_marshalling.sol"; -import "../../../contracts/commitments/batched_lpc_verifier.sol"; -import "../../../contracts/interfaces/gate_argument.sol"; - -import "./gate0.sol"; -import "./gate3.sol"; -import "./gate8.sol"; -import "./gate10.sol"; -import "./gate12.sol"; -import "./gate14.sol"; -import "./gate16.sol"; -import "./gate18.sol"; - - -contract mina_scalar_gate_argument_split_gen is IGateArgument{ - uint256 constant GATES_N = 24; - - struct local_vars_type{ - // 0x0 - uint256 constraint_eval; - // 0x20 - uint256 gate_eval; - // 0x40 - uint256 gates_evaluation; - // 0x60 - uint256 theta_acc; - - //0x80 - uint256[][] witness_evaluations; - //a0 - uint256[] constant_evaluations; - //c0 - uint256[] selector_evaluations; - - } - - // TODO: columns_rotations could be hard-coded - function evaluate_gates_be( - bytes calldata blob, - uint256 eval_proof_combined_value_offset, - types.gate_argument_params memory gate_params, - types.arithmetization_params memory ar_params, - int256[][] calldata columns_rotations - ) external pure returns (uint256 gates_evaluation) { - local_vars_type memory local_vars; - - - local_vars.witness_evaluations = new uint256[][](ar_params.witness_columns); - for (uint256 i = 0; i < ar_params.witness_columns;) { - local_vars.witness_evaluations[i] = new uint256[](columns_rotations[i].length); - for (uint256 j = 0; j < columns_rotations[i].length;) { - local_vars.witness_evaluations[i][j] = batched_lpc_verifier.get_variable_values_z_i_j_from_proof_be( - blob, eval_proof_combined_value_offset, i, j - ); - unchecked{j++;} - } - unchecked{i++;} - } - - local_vars.constant_evaluations = new uint256[](ar_params.constant_columns); - for (uint256 i = 0; i < ar_params.constant_columns;) { - local_vars.constant_evaluations[i] = batched_lpc_verifier.get_fixed_values_z_i_j_from_proof_be( - blob, eval_proof_combined_value_offset, ar_params.permutation_columns + ar_params.permutation_columns + i, 0 - ); - - unchecked{i++;} - } - - local_vars.selector_evaluations = new uint256[](ar_params.selector_columns); - for (uint256 i = 0; i < ar_params.selector_columns;) { - local_vars.selector_evaluations[i] = batched_lpc_verifier.get_fixed_values_z_i_j_from_proof_be( - blob, eval_proof_combined_value_offset, ar_params.permutation_columns + ar_params.permutation_columns + ar_params.constant_columns + i, 0 - ); - unchecked{i++;} - } - - - local_vars.theta_acc = 1; - local_vars.gates_evaluation = 0; - - (local_vars.gates_evaluation, local_vars.theta_acc) = mina_scalar_gate0.evaluate_gate_be(gate_params, local_vars); - (local_vars.gates_evaluation, local_vars.theta_acc) = mina_scalar_gate3.evaluate_gate_be(gate_params, local_vars); - (local_vars.gates_evaluation, local_vars.theta_acc) = mina_scalar_gate8.evaluate_gate_be(gate_params, local_vars); - (local_vars.gates_evaluation, local_vars.theta_acc) = mina_scalar_gate10.evaluate_gate_be(gate_params, local_vars); - (local_vars.gates_evaluation, local_vars.theta_acc) = mina_scalar_gate12.evaluate_gate_be(gate_params, local_vars); - (local_vars.gates_evaluation, local_vars.theta_acc) = mina_scalar_gate14.evaluate_gate_be(gate_params, local_vars); - (local_vars.gates_evaluation, local_vars.theta_acc) = mina_scalar_gate16.evaluate_gate_be(gate_params, local_vars); - (local_vars.gates_evaluation, local_vars.theta_acc) = mina_scalar_gate18.evaluate_gate_be(gate_params, local_vars); - - - gates_evaluation = local_vars.gates_evaluation; - } -} diff --git a/contracts/zkllvm/mina_scalar/linked_libs_list.json b/contracts/zkllvm/mina_scalar/linked_libs_list.json deleted file mode 100644 index 68dceaa..0000000 --- a/contracts/zkllvm/mina_scalar/linked_libs_list.json +++ /dev/null @@ -1,10 +0,0 @@ -[ -"mina_scalar_gate0", -"mina_scalar_gate3", -"mina_scalar_gate8", -"mina_scalar_gate10", -"mina_scalar_gate12", -"mina_scalar_gate14", -"mina_scalar_gate16", -"mina_scalar_gate18" -] diff --git a/contracts/zkllvm/mina_scalar/proof.bin b/contracts/zkllvm/mina_scalar/proof.bin deleted file mode 100644 index 558d601..0000000 --- a/contracts/zkllvm/mina_scalar/proof.bin +++ /dev/null @@ -1 +0,0 @@ -0x00000000000000204026793606dff20bf4f7e0ed0ce8bcbc9cfddc806ae51de108c69d59e4983fad0000000000000020a247181950362fb8ac7c5e483dba73b56f443a3cf107ed416dd17798ae4dd8080000000000000020de8e5a022d9d3a4bd552c4b0c22cfe25f0987d1ddeb961359461f1c0e10af62400000000000000200a04b55e5bd650bae7eecd02622d29219f30ded9842f997c44c8c7a627b13f8037bd494a2be9b7dadd8a8a13faedbef97236954e6fe256dd34abf3b2df1aa42e2f6b36cb5852e508706b47917797fa10ce2bff6c69db8a3a35b74559d259b56b00000000000000040000000000000010000000000000000305c12f947c5b4c77387b821f9a466626033b5daab2e7a0cc67bb89aa6cf88b6b234f38469df0b13dfcd0f3b11cf5c311e57c3d447ec93d7c8e4d5bebd084d2391a25c781a891bfa65c6a14c8d65a78e9631e0a07a5189474ebf9bab3dfa9b71d000000000000000315f9bd8a2972e4db3e9a47b9692c9e2232dce3aa4141bbe03eb142babfffb7a610fc3266e336e527c7b71005f2dd378510fc8075d1bcfce831e3f4727e3ef83b093d8d3de7863d55a8ce299c55ee3f9292c3f8a22b24ad6eeb65ac2dc0e93d3a000000000000000201c41d2cd8671dbd506305b248e6f1b9918bc45a420797b5dec4b0f86e9b360e0da7e02dbb0ad4e5634d5eb83d7837562e96fe6a4b5c9cd7f50e14cd5a17b6be00000000000000013a1ae7ba2656ab25d2d9f727b82c29001e61242b586a2ebf12f2bac69bbe8ce8000000000000000137c3749b50863efbc6ce480d59963e4c5c2173e50648a7ec2d6f11fba8e53c93000000000000000204d863c482232719ae4bd97c1ade5fb092861b2ac1c601726215dfa887bd1888313684bfaa9771fe5a4826ccd98b5e5285040cf9702aeb55fd11f74c991f477200000000000000013621494a8b7ccf999413bb24ec3eba2a5f506285ca51dc99cecdac78d1efc3ee00000000000000011296d56752c4e4cc8c7cd8ea3e822c3f4b5a5c67935e12c61c125fc1f456046600000000000000010e0a6c0d0ff96a5a9fb058e3579796175df6bef48848f3600426483cc71970dc00000000000000010f9a12e1402fb1990c069d53c9e1789f02cda92f9b7b420e4e2c70aba019aca30000000000000001082096b383a9a62c356988bc912dd5bb278430db6d295ed6081b4a766cca7adf000000000000000123e6da47db375a1a4fbbc03549042700f7bfdd1a42008848549c4ee4e77cb29400000000000000010d4a4f1d1cb3448f2b1189ece700d8f5aa5832122dd58c942f28bd872e10904400000000000000021bcd8cff2aee845ce5bf30b84d52ab1ed2cfbe193721ac713f01366dc072cead3b95a8f73d9f0a1130bcbda3e3d2f43ea1eda8177a8aab5557aff0532be9852d0000000000000001239605b60a9271e00ea19e8e55f7114b5286ec3aed456bf2245beb88df6bf67800000000000000013d569fa06de0ffbe3d1525d27056e9fa6b730a6c8d3e4f1e2b50e035c18747b9000000000000000100000000000000020eb83231d2336a10c4910c9f2de471dd5f856efb40b586263e9e66193a218edd3bbef07b30b8f6e7aa0694a5ef35d7ef6fddfefd12aa9516dc0d62e46914b9290000000000000012000000000000000118e3a102067267396d6c54a4d0049e0071e86a704e089d771f12801e7a367c2700000000000000012f12b7351e7a98b560ad08703a259867a6eaf78e89961a710b0674826704e23800000000000000012a8748324098c682b793b5b70eb5cba9eb829f8c5bb63e21960d6bc24f051b6b00000000000000013400000116922012fa83f2dc99b96e35f299eb4535ed27e2b619bc7c71fdb79a00000000000000010100d267a49e3dcd2db00494bdcf74cf13ab11648c27de0c78a863c514643f22000000000000000100b0e26b9fc53237f8df10b4adfd9bd3445cddfc7402e7b6241f5a4214c0184f00000000000000011be032287ad674091e63517216af2c2adadcd026e0a4494a758c2254b1a35c1e00000000000000010a8ab34e8b50c4cc2f037cb43e7e930bfff4a0f3f54991a67a5f60a4cc8fce5800000000000000011ffba259ce28eabe63c2549915d7ca07b668a7e6469c2c081808176129b271c400000000000000010c0fbc789f7ec5feb91a0d2c5d1d894142204530db2b8894591a727122f9a8de0000000000000001093c5d69965e450cb3b02199afc3b50af90792a1b61ff2828adf55552d6b076a00000000000000012afb5282c0e78c93d4ba512a54002cffb5ec13a82c7cf589be08ad76cc3107e200000000000000010e759405f83bf281a92c8c815813b71fb3f92b5bda9438cfb7a56f2a9c06ab4a000000000000000137b97b816a9e122b8250a7ef78cb9c07cf5aff42710223b61fc33388110e1cef00000000000000010123ea7f7a7a5b526e68ccaf755692d789b64c61d8df6fc8cdaa8b6e0c00aa49000000000000000117186e7f85dfede18adf71a32ce739465c6e1d10eb23850bc38e976933c720ad00000000000000012d5028c5cb0f29c8cc22328283a38ecb382ad9e18e76a2e63c4cf2180e22b13b00000000000000010f2eb999fd42d77e08140e0b113f17d11039eff609bff36cc1c6aeddd09616550000000000000043000000000000000137bd494a2be9b7dadd8a8a13faedbef97236954e6fe256dd34abf3b2df1aa42e000000000000000116b26e72db90974653b4b263e6a4badeb1f6869809190edbd64015fa5b8534e20000000000000001317c283e49d2f45fa2877bf38137a659578a07fc23e8a16da2f982c2c99a08690000000000000001376cc937711ec5de2ca56bc186163fbe4ede5cf896cd2c8b8a0acc6af0022a0a0000000000000001151fee153599dd56df3b1ac79e6f3eb7013d6ceacbaf3b43811a5192b00ad22e0000000000000001299fa66a0c0152b25c2785e6182c3992e3ec8799f0d77f73f93cacbc70361ae50000000000000001101e40123c069d7bccc59d7e78dd1fde0ccadb0d977782ab395a9e4b310e867600000000000000011097405b2c21136affdc13785c519f561dafae47ebc0e47a927e2c56f548a04d000000000000000112f441c7dca56116ff4c6159cd981cae7227ce6b912fcd87502ff291ca6b218000000000000000011ec548e74f3ae572fc7de6c103f88f6818806f1dcc5a5ac704a8d1b7f417a77f000000000000000119da6c848c267b3eee7581c513dacd0835f4f99cea9a7427febe4255c4764579000000000000000101441e96bcc0683aa84b88d963460128c93bae1881daf30ce129756ad64f5b5b0000000000000001065498f1afc209254979ac3ef05e05cbee2a667a8946bf4065cf4b162f8cc8c700000000000000011fa6fcb86eca2dba6f605d3ab1d61cfba6d40064ae61bc41fd0c776eedbfebe300000000000000011e42ef9a29f2e4a42ce1d225792e90e9fd96cfff54bf5b8ed8b07ee8a4bf9b6d0000000000000001174eae02d1be7734e0691abb5de8d491af64de049493780f22e4a44937be091f00000000000000013489660e18b85408620d85a8d58c26d84ab1bd1add4caf6e22304a4d16b62d9a00000000000000013991a211375e01d8195fe0436bc5783fb06c8092dc6dee93dd77de1be7fce1250000000000000001173110413f8734f1bb20423763b5f05f91e89cf2c5aa4755818b8c1a0cb79d2800000000000000012728c29c313367d761022f6828779ccc40cf2302f442c319f09db63d412bfd4700000000000000012917631881807e66bce9a1135c3b813d556280cb671eeb6e9cd8db883806e3aa00000000000000013d26a13cc276a37deb9456b340ebe0e09350ca2f4c95164f9cb2855af8fd26620000000000000001156e3adc14e4a0b2ac0f9e47c9ec02ea2a82483c6483886efdc7342cd2caffe000000000000000010ea5deda2ee8d239c57580769084e380e347537cea0df9d465f168be8fe305b100000000000000013dce01cec472e74fecc883db5b7bbe680d5e066504a8c019fc229e58face9e6200000000000000013ee75a7432602674d8135a0fecb1e7de7c2afc4420920e295ceedf6a6993fcc9000000000000000115572fba2e18c535af2fb6540faae02d31d4ee6edfbaeef67d97b11508453135000000000000000120b585278540962894b3a2d60aadaecfdfd1f6a80091d37599cb5a3b52e09e1f000000000000000121f4ebbab14ddcdac83073a04ca636acdf06ac6723e7e1a7097418eb6b78ee7800000000000000013f7f74ac55e507fcd5c9d0991a27fde17ff9f5d95768749a862d620090d1f41f000000000000000110602247de0a5ef759657ea234feacf79249bf8968e2e2f463077c5e8c1d011200000000000000011e42ef9a29f2e4a42ce1d225792e90e9fd96cfff54bf5b8ed8b07ee8a4bf9b6d00000000000000010ce6c2cfef40d26a11bdaf402f3e11df95f0b5b602ca203dd9a7427e47f04cfc000000000000000106803d07e9e288f1a86cf77ec16f5e56e1a50b4eea1a76a81ba779b68ec68a3b000000000000000104c572656d2f08acd30c692897059cf8cbb80466695a720b26eec74d460b03900000000000000001306acda7eebb4caaf6e23d135d57040238d828d25593fff5715d4608639d101900000000000000011ddf4c6cce4e5972ed4fd1df167c3c2eeb4a4b66721b45b54657828de0864e790000000000000001386ac00ea46b92bdfc03ad3a655646ef5cd4c5c6878a2a432654d289ed2db88d0000000000000001109c41d7e73802e5686aa83119d94f6c8e492ba7ea51181a1bedcc70f6b0620f000000000000000107328677a1af3220596d04fadc3ce073efa536b41dd06fec1ebeb090e06b49fa000000000000000111f54667e36dd1facdedd373061dc9a580275ddc673d02bab81802ee52b95b97000000000000000117a2b70450b17c480227d449cf64efd42b0bd681cce8f9e51a54f5803fbc41fd0000000000000001243d1bce901d4ef37eb75db20e9bb111a8629d179d5ede5af3586a269af9110600000000000000012d20d5d36d6dc58067f3e6fc5e33c311cd6408ef4d1069abacf4767cf802d7900000000000000001368452055a9e04886ce27ef850e087ffd6b58b7b13cfc325122514e7cb3c8f260000000000000001381ae51c4b3b01861420e8a81cf2595638224e1d8f860456795428d5506becd100000000000000013aba757b5f70774f38a886d8e3aedc07e6d1ec07146bd2b019b404b03cc1e60c0000000000000001089e53581d854be5b6b6aa3997e6c20c6786d5d6aa07bfd71637d46c23a369680000000000000001285a8e90d96ba03c91c7a438fbfc52e1036fd453759c25563a056feca777de1b00000000000000010cba683c25d2ce4d20faf7d29d12e97d2749d8d797f02411f8c67146b9c0991e000000000000000139db6abe8f51be5768400e35c5dd8406fd3f839f67a5d2e127d475033b0f0943000000000000000124f586eb761b16f3d03b9c42c7543297a00267c30d51e717846eefcc90467b2500000000000000013310d3cb80fbe5e6e60a53c367ae6207efef125eba4fe55b65ae8448879fc5c20000000000000001048eea743118811c3a2f4cb779efbf1b456ef0a9d3cc9f3477a9ae77dc16ca320000000000000001386629950e89f0efbef374c405658883c906ed23f2edcd1ec1c52c3964fc62f900000000000000012b5aa9012fca6b81b081423f940c2f8f7cca383b7bd56e509728dc1706f03f80000000000000000126825b08b536f5128928a2f87fe3eb3ae1ec43f91985a0cc24d0fbeb83edf49b000000000000000139ef44dfcd603ee1f06aae3813de592e2e95564fcde5d3a62665a92f7e6a024500000000000000010f570f895607e81d68215d451ed96beb858bdee66978cc92c7dca83c9a95763000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000012f6b36cb5852e508706b47917797fa10ce2bff6c69db8a3a35b74559d259b56b00000000000000012405905e6c49b0b460e93faa0a307f572c20334297cf9f7ace555309a8f58460000000000000000e00000000000000201b495fff7511a029d82d5886f6a5963f504443d24c452bcdcbe6c20fa4d20e4400000000000000208165da858234c01c5937752f1012a13fa8ce956563e71b793899b1fa62d754fe0000000000000020d97cf990477b0fccf51f96a8156a3eed057056c525f926a94df62ea42ccd6b8d00000000000000203c52c96ab338cd46ffbc8cf65c39a2fc5a575de74cc53c27ca9ffdf7d6c4c5da0000000000000020083733927491b21d1708811da6d1bc9cdb9a9bdfe4fead641f534a5eccd09aa80000000000000020b996ee7f74dd8d97dbf4ea4c5713f66d18b15e650072f9e7293b0acb4e09c69f000000000000002096d0eb4ed5f8a567e63d2519a534d7be32eae875587c5d338daf58c14002de090000000000000020454300a98d94e204ba3fa90f19bcb9600eac7546a2f6a3650dba3c08c5455d160000000000000020fb491f74187ccc3fa4ad9d6e472bc2e6547484ef14fb1cfefe8306bfd694ba3700000000000000208674c8a5f5554a1bb613c82f2d9577ce2676c70df07428a442eab5ba48ce4c5e00000000000000202ca2873d58dee8a2cedccb2d85b80e3109dab9fcd70357d3d77d7537e5ab5a6e0000000000000020dad4bded9062650497187e2aa03d57886d92cd5870a648a7e41319ffb78778c000000000000000207adb29c0f4ddd9715fc19632800ef203c99c7ae25624a795b96aa7ab50c6d7680000000000000020fa5224e1ad69ff9bad1902a84c9ae051012d75b3803a20b17ac0c8fca9e8d565000000000000000225c362848b2c097cc0be6daca97a1405e74e4cdae32203e656999e73448763d609b58a43ff85d201985d072a09b43c32f3d86080b5e169aa6b38b8078fee238700000000000000010000000000000004000000000000087f00000000000000204026793606dff20bf4f7e0ed0ce8bcbc9cfddc806ae51de108c69d59e4983fad000000000000000e000000000000000100000000000000000000000000000020cdf3e0c51e44ce63b1e58d88791483de8c1e13f3e7c2bb8ff8842d6cd7328f6700000000000000010000000000000000000000000000002041e0528794a10694c52bd80a92f94a0ec36f7ce43b32da1677a1acc719064baa000000000000000100000000000000000000000000000020ce741cdbcd5b6320245536b1639c833a7f084cc07924daf2f3ef919dc6d2031f000000000000000100000000000000000000000000000020644ec7197e4de3e23b478f3a00b5aec66849b246185de5cc4877a0d0b4ad596400000000000000010000000000000000000000000000002024bdf42d3132c873ec4c1e68154129147793333d66887d6b400afdb3a147bbc4000000000000000100000000000000000000000000000020e5bb8d9b9d417346766eff223956e2baf7b4b369562b19dcb4c957448ed51e9b000000000000000100000000000000000000000000000020c514df7cae5aeacb5ff80804d061ec51aadb2c1488318fdf417f0222063aef3300000000000000010000000000000001000000000000002036141eccbf363ed86b5fe486df48258be91c849c8c9b91c2703ea007ab5e060a0000000000000001000000000000000100000000000000207b28f9e59ee46551da2e7e585b0f4ac2997cc22130b7a07d3a34875cac3e7502000000000000000100000000000000010000000000000020645e3a66eb9e498987a83cfd5504bb8e13b2122c3840f990fc5ca95e6d7ebcd9000000000000000100000000000000010000000000000020591f8a64f612fb9e5a327db8a2c80a5f07f01804ce66fe795779be2077be4eca000000000000000100000000000000000000000000000020dd1be860fd13274bace53ae563afec83c4783d9298f0da078c2809589c614e350000000000000001000000000000000100000000000000206b0ca228cec92ba675fc36944dffd055938d7065f721437a4196515f95b597bc0000000000000001000000000000000100000000000000201a30fb06ac01807573876b4c9cc0d46e94e5d54ab139a9c82f040842507aaed10000000000000010000000000000000200000000000000200e65b27ed9292804b98710b0d3dda18683a783cfae6503ab12b8f2c992a0b1630000000000000000000000000000000000000000000000000000000000000000170a090faf2f807189b1badac7fa8c1a1b16e8fb6e68b57894f164a6d24d244a1dc4964fc611e14be71d819f97cebb393645369431996f7c6a5071b541f294743bec8182a17e2aa5a99876bb5a7900e993619839da8bda65ce91242c44e96a25000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000087f0000000000000020a247181950362fb8ac7c5e483dba73b56f443a3cf107ed416dd17798ae4dd808000000000000000e000000000000000100000000000000000000000000000020661d7685e118514d937ad481b82f2cc355de6555fb5fecd9e179b50b8775ce4900000000000000010000000000000000000000000000002091a4872ec84c85c9929325dd5cb4e766546f10755e13933334adc1e6e82c7cfe0000000000000001000000000000000000000000000000207d8e601023b97691f3b0ee3e809714226d498e5b7205844aa20ac090ff3446470000000000000001000000000000000000000000000000209dc84c468ae6cdd63027a4f686f5da84bec2536f3d047504ba1e00539b0f77270000000000000001000000000000000000000000000000202d0d9fecc7c63cb2b1f47a3a5a544925324434b65e314766e51c7ad4ad6becaa0000000000000001000000000000000000000000000000200fbfaf025c60ee1afedf02d9066a142185b078058a215a32438e9fd640918d610000000000000001000000000000000000000000000000206625ef0e3d2fdc6e2fc4efc379c1eca3f7d5a96c04f86b5f590879bb8e29ec050000000000000001000000000000000100000000000000209a8a7ad6d3dcbc64218361152bb84263849f1a9fe8920b87ecac45d3087e749700000000000000010000000000000001000000000000002018d4b11060d9a084a653c7a7ccd980b2a8cca83151e9821327c7da7fcb8daded00000000000000010000000000000001000000000000002082357414a8b6e891fde581a51dc118a2b94a4588ecd905b86cd89351d3dd7909000000000000000100000000000000010000000000000020669c27b23ec6172d68db8b1a7afc5865b5e545a64e1c88a29cf8fc599c7d3d9e0000000000000001000000000000000000000000000000202a7b8c136e096856f17f333b5a606e7a2ef2101f1451fd11ee2a9b476b74a2cc00000000000000010000000000000001000000000000002068653bbf7282d258028448984ceff218d45966652d42987f7e9f949636ad0a64000000000000000100000000000000010000000000000020fed3ae1a0555dd8c2353fe5e347db6e42245b78297e372d4bce027375897912f0000000000000001000000000000000200000000000000022c38bdc509f9cce207cf7e87211c304f28c9eb0e9899e4b3fa89fb533d857e480a78bff5ddc58c7446b9962e7a7e8823df751bd0589c6ba553cecfaba09c86c4000000000000087f0000000000000020de8e5a022d9d3a4bd552c4b0c22cfe25f0987d1ddeb961359461f1c0e10af624000000000000000e0000000000000001000000000000000000000000000000205d97d2785807ee04768b8918dd2d441f378abf545216d46d6e5f1452f12b826f000000000000000100000000000000000000000000000020a45f2d8e1d95d158681d5799394f28798b2522928b9e3a7bb62fafa292173e99000000000000000100000000000000000000000000000020ac5097c756bf9226f1dd2c3e869cb637523b86fbbad56aabe6920b53314fda1b00000000000000010000000000000000000000000000002015844b43f69d672863962d01c80f5c31b24e8fa716dafce9aef7974ce330f7c30000000000000001000000000000000000000000000000204adfcce7a5de0c94d6447ceb5172e89d3f727e5b15e2f0670b783f06b9c23f1f00000000000000010000000000000000000000000000002075920bb67bb2a0501dd255380d4ce603d2fead835b99055e5e0af6fe4760ec23000000000000000100000000000000000000000000000020e608f8bda8b66c9ecacc1c245d6d1c1441ac963d2aacace72de01dc3d3bc0efb0000000000000001000000000000000100000000000000207b2b8c8cf0afafc9a5f5dba5017042f7908ced40b90cf4d7161aeb53003712af0000000000000001000000000000000100000000000000208f199948d814734df46d045872dec5eb0c8b93d7145b9b82a77cecf34ee2a6a2000000000000000100000000000000010000000000000020dc3c1737cad2c52bd657476aa81041e03cc1f70e5e9676f1c9ea5bfabc176df100000000000000010000000000000001000000000000002036bf178570702f9ef55044c2ed5106f127b31381be358a927240442e92f2f30d0000000000000001000000000000000000000000000000201c839a0c740dfa455702ab2ee239295201d5413e58f159ea46dc6121307c8954000000000000000100000000000000010000000000000020d27b342fb80605aabf39740f2e884ab06685b499d3dda6bb01717cb364688eda0000000000000001000000000000000100000000000000207c92a223e3bb5a0d81441dd55f0aec708bf29e8ba676cf56cedbb83c8bb10ef700000000000000120000000000000002000000000000002400499ecb3b1bccb7f19bdb69c7835a130163751c2bd17fac24e0ea1cb664c96515b83a1c51ed4f1117bfaca306c3d6bfbdcce98d23e963547fe558deac147fc5202ddfbc2d7f37000a5d779d307d5b3fca6cdc097db7bdb670283e661723c44529dd0b2e0161039dae5453076030e9fa9b0b1bf763f8056f90044bf8f7af46b105cff12dc1413108e83a9450bcfc4d9a05e5803e38949fa8d1e6e425dd90f0d43aca516861f9b89968f074fca7b447a0c149b282cb8af0ac8efe616387086ec101bc6015579cee887cf571f9b453c27baf6509a2c3f8f654b2df95747246912108c4b4d9385bd09c1deca2c27ddaeaff5d0aeec690c311533f46f5b3ced65e9a38c64a49c3ed54ff9f10e1bf270f564c8194ea348b8c66d5cff84720ed1615383fd065688b70ccd4316a4b66ee975b100c6f950d6ef80ee0cbc947e08c9c81c73a7a548ed0520f9a4afb6ec1aab0574300c9720585b26657a92f86470cdfe1fe053544969b3be5c4b89629d1998f43902648cf56e544133d05d130d7e46660a012c95939cf0a6011ddf6b9d3901cd4c9a1403a6b2f7cdf7e0f8637331d067c4c08329077bce61b543691d99454e78843fa6254e4b70c29508add8b4dde6dd65b289f8f87a99a2d5b7926e1e22c8890d3b2ea49ed3768a53ead6890bf5d1942c910ca6233b3a072d6ea8c0a649ae187f3357168e38f9181c40f9b9efeb808e92f10bf4a65a7ce3cd1001dfde540063fb7d2eb5c1f5ca0cc63d5bf56a8f0959f06040a235aa4e6b657f7bd5d527f2a5e39f1878b0d1b4824d7ff4d622d2dbfc48f2111dfadcfd2b57005920639ddd7235ff731b9a9e8ec4a22668ff07256e229330924bc216193355058c9679e6087047a29786eb52cba7dc69854dec167eb1e560767f94b2ad714de7b932b9011982b8c2b1dac1fc6e7e887010bfcde7e48546a3a50b90d5de36daea17512af3131783fbc0481e7b092e27a2466737699bfe076107d0b01297100762d3081ebc44c34bb46b026ede1eba747fa5f5e26d404a9760978a074924d281c8af9c69ec7267d9d64e404532ff8b2f58450bdf9c3cb729607358af9f874b7c5c06fb5a3bf89d0761a7fe9078543b903600c0555252ee562052fab4fee55b291cd0ceab4dc65b1237520d8a944f1a5884200946a5e3f2f312e75288a200179b6fba6bbd19c4c08ef4858a9fdef31a377cd6a08af870b3d7c33043c2086dfb8790191a9f9f5564bd7812fce6949919ad8cb7925c5886d62201341a87f3df0630e7e850b02e2d02ef4f7ff35611e44724f2c12ea3a3245c9ac350177c1d84b7b65c14e2779aee90c54107c869c3be789ed6f03a7819af473db2d3804801ed7917ab47311b33ca06e43831d66d522e3c11d22a20db5cc6e4f07065a9c8c60671db2b757313a4dd6ce9b4fd8afce750014e6c6f2b5b59271ff113a7d4fbb42234bc4a47748f5b5243e6e43f5929ce52efaa32862080d3fcd458529e841de6c57713ba2462fe18ae41f790b6cabcced9c3bea998a0f8bd25ba46b3a27635b6f0363e79be5185fb3f289e241fc58cc7d08205816bc92ed8a781985216ca607b7831e585b549d4f1cded5e4504f76279513a016da54c78bcf2375c3000000000000087f00000000000000200a04b55e5bd650bae7eecd02622d29219f30ded9842f997c44c8c7a627b13f80000000000000000e0000000000000001000000000000000000000000000000203f55861fff5598b19b6b12b6a386c5f109f7edec76556a2d47db24ce23e6d64f0000000000000001000000000000000000000000000000200e2550562b47cf5eada90a87ae897cb96f1c4f35e0aad985c4e955f5837d455700000000000000010000000000000000000000000000002079f413de277bb3e77def992c471109633d9741cd07ec35241179ed19b06d3384000000000000000100000000000000000000000000000020f694380a6bf2bf9834887afa531888b6ca8c45d60cb45cabe9d850f1759791d6000000000000000100000000000000000000000000000020f49f9a5916333905fd9b9aaf7604e70ab2c49052a3b8dd98afdace56f477a18b0000000000000001000000000000000000000000000000203549772ed47648a83f92d7ba8551c07c4f97c89865c5e56e0959bc0b63d5864a000000000000000100000000000000000000000000000020ff7181cbeaeb1436e50c62e9c69efb242aa2aec08edc667b825710863c1218ce0000000000000001000000000000000100000000000000203d7e4e011d0a42a8a7a9cc02d5b73b42ca5cd75c77325ec478cba1d24b4fb202000000000000000100000000000000010000000000000020277c8a3e6a2dbd20897c32a53539ff7c450da88b6d0792b382bdf934bdcc6fb90000000000000001000000000000000100000000000000206995498f66f5ea36f33b0a077e48791d1fdda3011ac254bfca5a684080c2dcc500000000000000010000000000000001000000000000002091abf4763ada6067110a33c63255be01d4f86a9fabe7859eba36e064a12f3cf60000000000000001000000000000000000000000000000200c7e05446c23c08c08e204846e83520401791fe0820e1c3872dec956172ab09c000000000000000100000000000000010000000000000020c46afc88b504eebe29a8cb43f7ba56f0dba15d289e2bc2b1572f5aa1f979098600000000000000010000000000000001000000000000002082aa83086876e1611fb0d9f92f9461bc15cc796bf3f9ffea526a46112c2bfa7a0000000000000043000000000000000200000000000000861903791708985ac37f0f8bc1f3394969deccd6c70d5f72df652b9b10233bbe4326fc86e8f767a53c80f0743e0cc6b6964379c234fc3535fe271b5010dcc441be3d115d732af9c5d17b4dbac9c01e6f1137b998e73948957f6d931c2fb02ab74e02eea28cd5063a2e84b245363fe190eeea8d0014d04c135e1eb3cef14fd548b33156d33fd6e0dd176884a5f0c0982b558d859893f8184806f2c3e06a70d594820ea92cc0291f22e8977b5a0f3f67d4aa94c10068117c60d699830ab68f2a6b7f36b2203f326451750a973db3c2f8d8ab5cc82fefbbbb6d8a18fea0b1342be687094ddfc0cd9bae8af568c24c3d072754c57e690c4dd93b5373484a6fcbd4197a117aa13bfbf5974934f43482cedc3b5846ce8bbe8456803c4bdd76f204db809f2e855ec4040a68b6cb0bcb7d3123c4a7db780d3d853e28a14069742efb247f621765262bebcbf46e08c5068e0a4d28b93fc221bc8c1bd84fef0c67991849831a289ad9d414340b91f73af971f5b2d746e284773f7d78d08d9d3a8387e7b67ce734f9bedb9afbc6262bd920c63381cb9e1c840fb2b2f690b21ef71adc796f8f810b064124650439d9d426df39cc7e346205c28949569e182b6d4fd0448690708008e0ba4a06eadebedb3da3df0188fa160579ea8d587e300469b7d9ca5f2dcd81371f45b5f915214124c25c20fe7705ea1cccae6eb11678d9228f1156a0d232802c63a372229659ba4834335b07ace26e1b6194c2ba76f016109740f3dbe50385139c5c8ddd69a645b7cbcca4f8531d9206e504394f1db8c77bafaa2d241afc7c1df2313aacefc0a3690500c726606c2622141cd98794b5d5ae1f83604b791196220dcec553103f5c96faff38d99f93da00327c2281fff307de2767c0b486ee6b15baf62560aec3310d1903e3bfe21cbe65d75e4792be3b714e0fba9f795d57ec2a4509da9f513ccef2e6fc1c401de341bc6f3ab476d66d6c3e37308186a2a8152ca6cebae369cff5417d1372bf6a8fb7daee3e69d4228058fa07b9fc5ed2b79b135931451c96300abe82ec8d4095704847585a9235722884923f3124a12d48661f4209a671110fca4771613dbd14ce96dfd36d1d07ee87243d51e08ada1d960420bdf6598eeef035b88e9ec242eb316942732bdf01a621b94ef50a9625e269fd1c4a304035554ef36536e634b16808f21a93ef99147f51fa1a0b8c744293ee1223b5cfbfcaaab10c9ac919cb4e97f70e07b2a962f51556e3723b5eacbd6c11ef0d72f1410aaa8ac0fa127f0777082cba40567c055353482769abe8034ce3a658328d0ebef555753f05ed80f888f7d345e1f01cf6b64160b6229b031db31c59a9033eb6453554b5c4e25c7b255328dfa31f69d31e970bbfe784149cef80723fb73cc149bacaab4a3b1da384daacd7205d02dcc5dd7288e8f608324e317f8dc04a10398f5a0aa78cd86bce67ba9fcc5e2f9d111f98f33abf85946710ad823b3e932fc670a5f5587327943198456033a1d0853579631659e957f7dfda737dc4c16e1ddb27f70cb6566deb8485c107ab8c68f5f6dad4c9bf0eb66c7685e883bce8d62224d808f349a992147b7a3ef85473972c4fbe273fd59a271fd065387c43172b0e75cbbc24acfa62e6450d034521a78b3cd0cf4962f8731cea1a01bcd57e71a419ceee507bca2cf26b3541c445b588b6d0b5a8e667842a920a9bfb1b0cd682e91b8987e642b6282eba95b798642325246087e49b011ceb670d40fe19373cd9982d1f601de42b59d7eacd6e182e78757402edd41f80893e3c0bdece0c3a8cb63736b2203f326451750a973db3c2f8d8ab5cc82fefbbbb6d8a18fea0b1342be687094ddfc0cd9bae8af568c24c3d072754c57e690c4dd93b5373484a6fcbd4197a117aa13bfbf5974934f43482cedc3b5846ce8bbe8456803c4bdd76f204db809f2e855ec4040a68b6cb0bcb7d3123c4a7db780d3d853e28a14069742efb247f621765262bebcbf46e08c5068e0a4d28b93fc221bc8c1bd84fef0c67991849831a289ad9d414340b91f73af971f5b2d746e284773f7d78d08d9d3a8387e7b67ce734f9bedb9afbc6262bd920c63381cb9e1c840fb2b2f690b21ef71adc796f8f810b064124650439d9d426df39cc7e346205c28949569e182b6d4fd0448690708008e0ba4a06eadebedb3da3df0188fa160579ea8d587e300469b7d9ca5f2dcd81371f45b5f915214124c25c20fe7705ea1cccae6eb11678d9228f1156a0d232802c63a372229659ba4834335b07ace26e1b6194c2ba76f016109740f3dbe50385139c5c8ddd69a645b7cbcca4f8531d9206e504394f1db8c77bafaa2d241afc7c1df2313aacefc0a3690500c726606c2622141cd98794b5d5ae1f83604b791196220dcec553103f5c96faff38d99f93da00327c2281fff307de2767c0b486ee6b15baf62560aec3310d1903e3bfe21cbe65d75e4792be3b714e0fba9f795d57ec2a4509da9f513ccef2e6fc1c401de341bc6f3ab476d66d6c3e37308186a2a8152ca6cebae369cff5417d1372bf6a8fb7daee3e69d4228058fa07b9fc5ed2b79b135931451c96300abe82ec8d4095704847585a9235722884923f3124a12d48661f4209a671110fca4771613dbd14ce96dfd36d1d07ee87243d51e08ada1d960420bdf6598eeef035b88e9ec242eb316942732bdf01a621b94ef50a9625e269fd1c4a304035554ef36536e634b16808f21a93ef99147f51fa1a0b8c744293ee1223b5cfbfcaaab10c9ac919cb4e97f70e07b2a962f51556e3723b5eacbd6c11ef0d72f1410aaa8ac0fa127f0777082cba40567c055353482769abe8034ce3a658328d0ebef555753f05ed80f888f7d345e1f01cf6b64160b6229b031db31c59a9033eb6453554b5c4e25c7b255328dfa31f69d31e970bbfe784149cef80723fb73cc149bacaab4a3b1da384daacd7205d02dcc5dd7288e8f608324e317f8dc04a10398f5a0aa78cd86bce67ba9fcc5e2f9d111f98f33abf85946710ad823b3e932fc670a5f5587327943198456033a1d0853579631659e957f7dfda737dc4c16e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e000000000000087f00000000000000201b495fff7511a029d82d5886f6a5963f504443d24c452bcdcbe6c20fa4d20e44000000000000000e000000000000000100000000000000000000000000000020ee611ae79f491c92c73f0a50c97b7f831e740c450c1de6810a5128a89974730b00000000000000010000000000000000000000000000002047fca1b42a2c8e82cabf23a11d9c782ffc18f3c5c10064868e931f01fa9568aa00000000000000010000000000000000000000000000002019ebac599da7b831a985ee6b2f9a6082d92cbec96d971354b683b5f174eb21fe000000000000000100000000000000000000000000000020d2de7d820614446ff21d66c082cb30eb71b2c052d030f0e98bb284be32c11461000000000000000100000000000000000000000000000020e0fa418490b2a295ed3983b435ef3aecfa79ced19abeeb28046981c6b3e260920000000000000001000000000000000000000000000000200600d360b662f0c50e8ecbb1bee46a8d13edf1fb493aaac36d2f5677326cf01c0000000000000001000000000000000000000000000000207916e025ec79e730b862b80f9f1f33b0474eaeef2adeb6d75b72e22a9808ecfd000000000000000100000000000000010000000000000020e2e30186bf81ea3abbcf31c8252e85ee071c5857e8f22c2bc71370451f6e3e8800000000000000010000000000000001000000000000002062f5020ec3120ee42944b40a30627b568b5b843ec995a9c366cd4a83393ba59d000000000000000100000000000000010000000000000020159baa81b9baf8310b9008eb10ba737c00b44e278964adc3edadacdcc8d63f9d000000000000000100000000000000010000000000000020f1100b3d5535e9b405d4e60402735f0e17d8646c3b89e441501bf0bbda732f580000000000000001000000000000000000000000000000208cc9031486eb41c835375ed7ce2b862fb2e9c62926e35173aed09d11b6aa2f200000000000000001000000000000000100000000000000204dd5724ab48a34962c8bdc31f718a725b3b422de850c02332b098bc2fa733b62000000000000000100000000000000010000000000000020b09def1c4bb6d2a4f976105b89397a3711b3516bc7fccf96f3de4b7435884a6500000000000000023585f89a746ec509462069052ac215ff51d1352a9be99e544b0cf3c510a776392181c786fa99bc1e9732076506e6d95a74e2d37e496b924180cd5836cf61ba75000000000000087f00000000000000208165da858234c01c5937752f1012a13fa8ce956563e71b793899b1fa62d754fe000000000000000d00000000000000010000000000000000000000000000002077b35376313c41c169a17a5601155273ce2dea7c2fa5420a600df4754b9d128e000000000000000100000000000000000000000000000020285d2523fb44ddee2671a8d425579416bf1b583b4ec48beea32bc73d47d89bd4000000000000000100000000000000000000000000000020e2f302abccf17cd8d34a898d271a99063eab587947ee6a1e142de7670033e8cd0000000000000001000000000000000000000000000000200e1b4f0ebe8033c8a6e38ae699183381de9d2b171eb682bfb98bc2d6637a233d0000000000000001000000000000000000000000000000208da92334a4d5d731a9057d4f0e86951d1fa1d0258ed1a4f4c1cff5e5494b662b00000000000000010000000000000000000000000000002098db65d423619ef3045c7955b5e4d7526978e82485d60c2edc08d907867790160000000000000001000000000000000000000000000000204627fab710dfb0087c0e2c5b98f7a818d8a30e6803341029aeae645fb707552b00000000000000010000000000000001000000000000002087f5a7585ab8437145bd795de499fe0df9cfb1ace4f96ffe7b4cff051c5b8b5f000000000000000100000000000000010000000000000020c333f48bed52eba7cb4751865cb6a7fd9150cdbed7371b0d27844dd94d2f3dc40000000000000001000000000000000100000000000000208aa5c899c925e1ef017fe525935261c3a6e69f798532e2a48615a5bdc4d5a5a4000000000000000100000000000000010000000000000020f8bd46f76be8fddee7a276a5080633d028d5b0ca67ee2c5fcd8e5ee54c92f977000000000000000100000000000000000000000000000020567c03c7ca4d8443d1b3676fc8aec9aa1eb39bfdfa1473d2c734e756c2e81461000000000000000100000000000000010000000000000020c4d954098d969c8e5e7519d5179c6e1e2d2983f8347c20f03c9d140c137750c40000000000000002042b0607df30a0ef7de03a12d34b91f452976762f45134d68233ba75ab9209152c2353a5e09866d5d34498156cf5a672e822ee5c10fbb754cbd9a150aa11ede1000000000000087f0000000000000020d97cf990477b0fccf51f96a8156a3eed057056c525f926a94df62ea42ccd6b8d000000000000000c00000000000000010000000000000000000000000000002095655241cb3f128be089047dc7fd0fdff20d8ab81d55c1971cf97f070349539c000000000000000100000000000000000000000000000020b7b59a028e08743b4fc3e9faf0037dd7b4fe7b0dd085ce23574835c0af328e9a0000000000000001000000000000000000000000000000208f18f9a3ca32735902fafeede9ac4421f009d34dd38bd3093a2b4cf3fd96a0ef0000000000000001000000000000000000000000000000202fbb5c5f86e644304e9007514924403914ba57d0bcea4b11bb6f96f5e7e45748000000000000000100000000000000000000000000000020efb97ee65db215c62f5ad219a29afdbb019e1d03a90f37e2bdf386f83c45a2fc000000000000000100000000000000000000000000000020c0788fd29295be3a501fe68f0c1863627c049abfeb0c26102c5fb05e222cd92d000000000000000100000000000000000000000000000020d70e551717db8b0dbc03cfab3d2181a3bf2f7e5ae955cdf31fafd3bb3ba41928000000000000000100000000000000010000000000000020166ecf69de7fe34dd86b3fcc5d99379563331e833d4d1543f8f041bfa64c31a30000000000000001000000000000000100000000000000207adb344c313baea74e07fd17c6277dd4437f0ec6b994b87d500898ec96f2b6db0000000000000001000000000000000100000000000000205a7a3d2ef51ca9578ebc7ecc04edfe4d77b21a9d870c61a8eb55458ed57faf22000000000000000100000000000000010000000000000020cca27f16479450c3a6a4e6f62bc81fda2ae3b3ec0e45b0e50d62dcb503f7fa8e000000000000000100000000000000000000000000000020b1ca611031d8674f77bb891fd529dc7ecda03f17b342bfd67ff1cad339a8373c000000000000000224bffd569d660c78796761f57b6b3d5b558afb8cadcc9ea37837fb7508d4ee0e1be06ea4e06945369b347ff5e5a39a8a8862f381ca30014fa9b2f65b5ff0681e000000000000007f00000000000000203c52c96ab338cd46ffbc8cf65c39a2fc5a575de74cc53c27ca9ffdf7d6c4c5da000000000000000b000000000000000100000000000000000000000000000020b62285023dac79fca56324c6fa56d5768ce06c7635b89c76a49001d6a3697ce200000000000000010000000000000000000000000000002044106fa23025e38455be363e8d46a951477868740c94814b23b7221bec20dc67000000000000000100000000000000000000000000000020f6df41f54ed7ad4858c4cd63484868ca02392345ab53c5d71a7b2e8f4c8755c8000000000000000100000000000000000000000000000020a7d9b0d77c113d348af23c5f33a7aedf7d94025538d303e446620079f61a1af7000000000000000100000000000000000000000000000020bd23185e094c997eba2cf84817146351028b00d742c9449e70e5a4339b06b243000000000000000100000000000000000000000000000020f92997e219e47f36952ab57c5d75249ba60769303d60be836810887d6dc0f612000000000000000100000000000000000000000000000020f8b2023a9a14eace2418c6a6992041220aad0aeda3d6b14b6f4bb3336189144d00000000000000010000000000000001000000000000002083e179bfe87b7daafc8fc29fd641c822fecee17e278cee703484d3efcd710700000000000000000100000000000000010000000000000020aa3a2e55e11f0728434410982f4a788837e2c66e66f2ce7e601644ceee255e94000000000000000100000000000000010000000000000020e5a6a78d36c29ef97d2e99be057715bbb96953f5f54e6ffc83ecdc37c6ec2ab800000000000000010000000000000001000000000000002086d3b469b41e237a73b943c12bb906e876fb137f828e1d6ccdbafd09088f3a100000000000000002255f5e6d6cf71edeac8e6d3384ee4820ff98172e259fd5ac1206f81a31e9cedf1d64157d0072af15d1fd655105c16ff45f3650cf85eebf103a11870c60622e9d000000000000007f0000000000000020083733927491b21d1708811da6d1bc9cdb9a9bdfe4fead641f534a5eccd09aa8000000000000000a0000000000000001000000000000000000000000000000205446cf75ba63902ffe8becbd51a519e8a1ec1f8f9e8cfa213c5ae8902ded1ed20000000000000001000000000000000000000000000000202aafc62115394bf0f90bd55cdcec1d9b82c4829fb0e72a00dfb9625428e706770000000000000001000000000000000000000000000000201b4df0446136344397042b0759b34f9d4ebb3ef2b43aa28708579ce0ea87e67f0000000000000001000000000000000000000000000000209a3dc64781327548ee44de7f933c6d0b9dea2bf9997ac5e529028291f213b1850000000000000001000000000000000000000000000000204570f71f6884647bf86b7c9fc64c7152b5123513f40d5b2a5cdb02f647e02371000000000000000100000000000000000000000000000020b1dcf3b598fa168c72a2b31507c4363eae3f9316755650cc9be5887404e5bb6e000000000000000100000000000000000000000000000020538cb683bffba47480a1a6c6e2be521e517625708283f0f149a5c74a831ae5b10000000000000001000000000000000100000000000000201343d99459bcc3517d4a371a1aba63e6a90236189b03c4f19a20b48b31322493000000000000000100000000000000010000000000000020c08e602375f677cf183828409ec554d421214d602a69f792044190acd9965a220000000000000001000000000000000100000000000000201a7a57a8ed6a6fde5bf95e7e7ad78b279e6124980eb97d6f1c5d6c03e6d8410800000000000000023a828103d5c1e9b74aeb3b8a7ff14d144fac8ae3590e57db322246d7e89641800e96b092a22b4108d4de4637539ce20e1464040083ee9d04e8c2611e58810b34000000000000007f0000000000000020b996ee7f74dd8d97dbf4ea4c5713f66d18b15e650072f9e7293b0acb4e09c69f0000000000000009000000000000000100000000000000000000000000000020296a5d77a4682ef09535acb770686b4146e9118ffb8b8bb1255e69da6045a9f500000000000000010000000000000000000000000000002036b3ce763d18088f47f209be88f82387c1cdd292a0f822ada9b25ee0789c5837000000000000000100000000000000000000000000000020227ad78f94744b6be88a43b83a8e208a29de8f22cfc17262d12f257faece66500000000000000001000000000000000000000000000000208fb6813f06c7a07bce6f4d55bb54b28272ef79f2bc8f988a85e5a38f54d5cdb1000000000000000100000000000000000000000000000020a5fbd93630644f80b7aab26c158c16718a57657eceed0b3e001d4676aebfc1df0000000000000001000000000000000000000000000000208b7162e1c86b0b5588d8f22d8d03fa5a48ad46756eed3a56ed92359ea098d502000000000000000100000000000000000000000000000020bdd0c25ed96ffc40cb5bb85c8fea1c45dd484bfdb800e64307c591a01983bac6000000000000000100000000000000010000000000000020cdf1f2d1698df8b9c762d8987ef6b2a7a5532b105fa23da388028f51be8a8bf6000000000000000100000000000000010000000000000020b43aad57fa53265ed7b75a54827ae30eac56903fe98d80a110776d155052565800000000000000022eb5f8519df47f236c3af54a307d78145237c2324555b6a865f4061203fdf422376e9e371043f3e53f74408bc4ca9922e5e0505b9afe3a372336c2cd4c5fbfa3000000000000007f000000000000002096d0eb4ed5f8a567e63d2519a534d7be32eae875587c5d338daf58c14002de09000000000000000800000000000000010000000000000000000000000000002042868ad6934a659c0f9513d4c8214a2b58e3c656605e6a9740cff36b5885483f000000000000000100000000000000000000000000000020e0866bc956878a980b9a1d35ac8b142de4c660db973fdfd2adfeed255b2d992d0000000000000001000000000000000000000000000000200acbe27e2aee473c58d3453f4df253a45d44ef8aedf22620bdf5d9d028fab6e50000000000000001000000000000000000000000000000200798a608cb82a79e96e3cba5092089352ae3a68a6a28131afe5a5311229e31900000000000000001000000000000000000000000000000204e1b46a23118125b119452779bf070abc114089d9a4f16361f2b194c8dfe688a000000000000000100000000000000000000000000000020aeb18bd457a21a8d6c441c6f2457cb7c5f9afdd2ff542f5b7073322f4e1c3089000000000000000100000000000000000000000000000020d208ff83238cd227e4c92b3224541e83e58a0b9d5623a28aa5e7eff5eb3db312000000000000000100000000000000010000000000000020c92ef35ca659aeb1c15701708e712a69c2aa02c227bd05ca3825b1cbca4a2e0100000000000000022e1baf65b4bbd028cbebac5a829edd1a529a3f480c7eacbd168f43caa90cebc21f4274b76dee8bd38a28bf0801535cee66c1f6749ca4fcb56da31df2643c9b27000000000000007f0000000000000020454300a98d94e204ba3fa90f19bcb9600eac7546a2f6a3650dba3c08c5455d160000000000000007000000000000000100000000000000000000000000000020fc3e7db171f9e24d800a601694176ed3a8b90b2c2b469bfb020b8d6a1637b404000000000000000100000000000000000000000000000020d1dd7f968255c6b3a34c9578b50fddbebfb6b01b7417c679b44778296fdb880f0000000000000001000000000000000000000000000000207894b3a735bcd0ea5412d2fd6c4ed759402a617344e3d52f149cbd8e4a32bf41000000000000000100000000000000000000000000000020c1ac60746cc31ec9139b42c1b0a1b51b8661123ed0c3c397f03b56fd229d2e6e000000000000000100000000000000000000000000000020f5c7296d260818eb82d051a26c958baf81b7f8427d5485b2e24dc7aec7bd4cdd00000000000000010000000000000000000000000000002053de1e9bd7d3f5a0083401feace0a06e635c3489469b9431fe3ace5b1e1a229a000000000000000100000000000000000000000000000020a8ce2b6cca57c8eae5838fc018cd7efb0abda63dfd9383f359d4b37efb83dc3100000000000000020dc05d91fe51a6aad0940c6eb4f7791311f011daf7cc49dcf7c88f431583824e09c746abeed155021d91eb1006738372f0800dcc3849f6d964b837607feccd8e000000000000003f0000000000000020fb491f74187ccc3fa4ad9d6e472bc2e6547484ef14fb1cfefe8306bfd694ba37000000000000000600000000000000010000000000000000000000000000002099f6c660d695fb55bb5a484941ac7a328538dee946e3eb93f517c9a76832c27b000000000000000100000000000000000000000000000020a5b7b0c5796f0e4a803a7e9ec2a696b85423a697a5871673dccd9b30b5dffebc000000000000000100000000000000000000000000000020c45dae6903e1044fe2c539644e248714eaf86d9ad8f326dc6e150ac25c15febb000000000000000100000000000000000000000000000020b93b75fcb1515c750bbe31326fe64f76e77aaf3967732727eacd7873783b0720000000000000000100000000000000000000000000000020b5990a077713bb0cd4fa88a75edd04573601a6e246ff4b6f32126079d1169a9600000000000000010000000000000000000000000000002043d7071fc6afc2cc1d55613cd3fbf7e8fc92196f0dfbba3ca28b49542aa5fc58000000000000000210cdd4c80811aee9550b44c45c3a9bd9fddea3bc89a39e2fa3eb199d70ba543829385340ac450f57ec684b664de4f15e05aaeaf33fc682f612583987b66994c7000000000000001f00000000000000208674c8a5f5554a1bb613c82f2d9577ce2676c70df07428a442eab5ba48ce4c5e0000000000000005000000000000000100000000000000000000000000000020fc1e2ae4d56e7e9d520e0eca1e923f54051268741b42de921db3213e25640416000000000000000100000000000000000000000000000020717539dc725e872c3eb6b190c311c7b971a026f8f9d40089a7a9912a3343184e000000000000000100000000000000000000000000000020fb598dd556e8debaff66525b59d65073aaa20fcf2f2641a2519f159bc0be9c28000000000000000100000000000000000000000000000020ee20c8532ddb77381b781b8191b0bb848ed7f93420600e580aa64703f18a30be00000000000000010000000000000000000000000000002022989272005afa03e3cda0a918672dab3bc3c2521e1dd1d679a7fd33482ca19e00000000000000023938159e6a8df2c105a80e8e7c0d165e3cd7bea42f3a7bb93853b118fc35d674231b38e0e0a0caa500715f011e4a4b874c96e35b0651c6b7ad24ea5169e4147c000000000000000f00000000000000202ca2873d58dee8a2cedccb2d85b80e3109dab9fcd70357d3d77d7537e5ab5a6e0000000000000004000000000000000100000000000000000000000000000020942747326c282a0596c003ab4f99b94c4646f5de7798a90b49e6bcb16a8764a80000000000000001000000000000000000000000000000200b49e290a8c8df49b2866be68b5891ca39ad34149f4c082a53163d994369055f000000000000000100000000000000000000000000000020dd4d1f5056333350af0e1a15c75fc50a84459a929b7eb58ecc2859368c55dd780000000000000001000000000000000000000000000000203d8f5ed8e64922fde5a1f9baaa8e8022aca294522cfb247faecdd75f41c5749000000000000000022ff9cfd997aaea4b938eb36034d2d0e90b1c28d5b5fa8f7920cac03a425ef3da0980c68dff359c24066dc3793f7cbcc5b9e1d47abb5fb6c5666ef6161ca3316e00000000000000070000000000000020dad4bded9062650497187e2aa03d57886d92cd5870a648a7e41319ffb78778c00000000000000003000000000000000100000000000000000000000000000020bd4ae1da7d67c88bc21c5ed22e634d7dd8970bcc41d70a1f89cc3207239a2aa00000000000000001000000000000000000000000000000209b7076850b7c9a0392dc7cec079d91129cf7be150e00232e3f668aee3d8673a100000000000000010000000000000000000000000000002087d80c9726bc2fec3bcda4f169e3fc2fbae8b72c9cb0a94a8ea9946b816ad8ae000000000000000229219c8da502fe74299754e8f15e3d13c90eea8f799dd857884dcd09ab6d3a93170dd62a35d9a5a9ce2bc7030201dde57805f5c786c0253dd702104346400ed1000000000000000300000000000000207adb29c0f4ddd9715fc19632800ef203c99c7ae25624a795b96aa7ab50c6d76800000000000000020000000000000001000000000000000000000000000000205de476d314050258a5d6f0f065dfa1f0dd10a6b861e5b946e7eb15f0faf4d29900000000000000010000000000000000000000000000002056ac33ccafbaa84bd8f8b6d1feaa74ddaf99521939c075fe6e50262bbdaedf33000000000000000204835b27757dd83734772568c60f7557e94ce913a087f55d635224792aa9b870285dae34b5904849023d026fab6de5cddcb9768a2417c7b0618f7d9582c8770400000000000000010000000000000020fa5224e1ad69ff9bad1902a84c9ae051012d75b3803a20b17ac0c8fca9e8d56500000000000000010000000000000001000000000000000000000000000000201f80b8f9a499ad63320bbde9ca816f2884ac913891c1f4273df2c553f6bfb1d500000000000000021c0dd8408ba6377b286166829fc5d7d2f375ec5a2d409a3beb60e66bb499404f2f78ecc88ab1db7e591b74d6b32e5038db26ad5b99036d90c1d2567ad475875d \ No newline at end of file diff --git a/contracts/zkllvm/mina_scalar/public_input.json b/contracts/zkllvm/mina_scalar/public_input.json deleted file mode 100644 index ee399f3..0000000 --- a/contracts/zkllvm/mina_scalar/public_input.json +++ /dev/null @@ -1,63 +0,0 @@ -[{"array":[ -0, -7004881494178137404986928718358577985735231348635131871795804478282553164916, -15306129011576432006004307405802754408638831252208347411729546090521432895139, -24146173981705213713354219671688413220561134752114522572554707641838759372061, -16355508692977437261818107819433198098819127646860843642096684511934511742791, -173165261851454550272905310057202656353051138784408042714275473976561352147, -20229945581545615954852795995525430600747768770339113477689192106161490225013, -5124774744125250012975365548814441436587910468174638627432945535221919194534, -23588113098585087292249991770859860769546806038013263702007391911986703092047, -27404361125464102629678230110584740486738270435126883124131182658230987839891, -18597891278179767087251790513633706714074224331128058923708536586738855856663, -22525179990819146690218185266598818589491512356080128579676417550512301429265, -7752597369250960866921389891150152850137854324810693579536020113899516329469, -27474643847034254722136402979533209770266575831118400512539888947283316223518, -13286482150156660832971410913230324397178471036794935710827636734070704866494, -28586495964945402880062055610115260573018913036833494870914552624139235038967, -61312381509725826371992770942237298435037938273150598699971361905255314283, -13765014526617769269710101258361733562313961347882519806141679952863020777721, -10328215047775864478288748819176359961724786371273034913744088017179592342945, -22360011504817788678493268404213658087460329364804372421264063838223501948809, -2609160789468633680722324950013147635972481953696262296560904600656323637513, -5233768246222356395927056066996966414059877614469302959581759689624051967428, -14105588775729889211121701759428219611326473845934472490924648737530502350284, -17686583931262620270023681493714735537349682746873693389819638979504035612413, -8156139890804891381435654282443709986296310617865036299647012068157282540493, -700962003885250301502166728606422578403091868990878206366189079943070201441, -21265659765319021473203690583656751300291214184159783047025373648840148015924, -26607267718671761967188379255332320298195794909706423811363358315503003960830, -16016619545197913583685802818163038863126841912974030108842320562770757580843, -6391600730149253823080815156141200514452605681222312546014181526633736582704, -7206570355037916358027443973352851918102411267687562064462011321003605104566, -20724888735345585071257648359656155348183771193996041179307873216884101031805, -20374531968293563132394754757235404494404670901131522931020596573969194498283, -8065005442468129506236932753931341906552277762413495999845874981821580135728, -27002461316048685330290737234903811873079491001405152028648885924803059541810, -21760105632523737428804286914170608984132393207712468127119575271761931090650, -25750607316554089875783870207524764809869541411140419996337688714848165609390, -20866512520027153546691541058821101833704929314749703536459013526268748258621, -6516559993257104239683804797151038565144546174790514280342529974126459797128, -17068322853017969170014518101518105282866726398790558865807387355893904553904, -25153724488991043109249219743288710197420049332792361432726705657767516482384, -1578155004400830747378731432386062893138754762495117380679833827482393596273, -2454555855812362251063272617764383463853761650104150049024717650004489750619, -9040204922520569316513400934723519540494440658153126000481917403449964384680, -9325446814571942299882026509029796977204711154438304128375367672158590842288, -11392713026692296666831848037997348317968991014198936458035099331530022507907, -23679341717778492532119568475941993235814361943564038272425848318874660868018, -24509692155912891111972732662963818576807568782251227676276567621935014715941, -7055781500477284539437951888211082552517957556130430551034223670054857989827, -2, -17912041879035169648903013485556333039687074572812383956126744977053724529138, -2, -2, -0, -0, -0, -0, -0, -0, -0, -12259306888414691878575619517212941910309834391108466722480105206604975064088 -]}] \ No newline at end of file diff --git a/deploy/modular-verifier.js b/deploy/modular-verifier.js index 8b2a419..1195bf4 100644 --- a/deploy/modular-verifier.js +++ b/deploy/modular-verifier.js @@ -22,7 +22,7 @@ module.exports = async function() { const {deployer, tokenOwner} = await getNamedAccounts(); - let circuits = get_subfolders("./contracts/modular"); + let circuits = get_subfolders("./contracts/zkllvm"); for(k in circuits){ let addrs = {}; @@ -39,8 +39,8 @@ module.exports = async function() { }); */ let deployedLookupLib = {} - if( fs.existsSync("./contracts/modular/"+circuits[k]+"/lookup_libs_list.json")) { - let lookup_libs = losslessJSON.parse(fs.readFileSync("./contracts/modular/"+circuits[k]+"/lookup_libs_list.json", 'utf8')); + if( fs.existsSync("./contracts/zkllvm/"+circuits[k]+"/lookup_libs_list.json")) { + let lookup_libs = losslessJSON.parse(fs.readFileSync("./contracts/zkllvm/"+circuits[k]+"/lookup_libs_list.json", 'utf8')); for (let lib of lookup_libs){ await deploy(lib, { from: deployer, @@ -56,7 +56,7 @@ module.exports = async function() { }); let deployedLib = {} - let libs = losslessJSON.parse(fs.readFileSync("./contracts/modular/"+circuits[k]+"/gate_libs_list.json", 'utf8')); + let libs = losslessJSON.parse(fs.readFileSync("./contracts/zkllvm/"+circuits[k]+"/gate_libs_list.json", 'utf8')); for (let lib of libs){ await deploy(lib, { from: deployer, diff --git a/deploy/test-universal-deployer.js b/deploy/test-universal-deployer.js deleted file mode 100644 index f15fb2f..0000000 --- a/deploy/test-universal-deployer.js +++ /dev/null @@ -1,44 +0,0 @@ -const hre = require('hardhat') -const { getNamedAccounts } = hre -const fs = require('fs'); -const path = require('path'); -const losslessJSON = require('lossless-json'); - -function get_subfolders(dir) { - const files = fs.readdirSync(dir, { withFileTypes: true }); - const result = []; - - for (const file of files) { - if (file.isDirectory()) { - result.push(file.name); - } - } - return result; -} - -module.exports = async function() { - const {deployments, getNamedAccounts} = hre; - const {deploy} = deployments; - const {deployer, tokenOwner} = await getNamedAccounts(); - - let zkllvm = get_subfolders("./contracts/zkllvm"); - - for(k in zkllvm){ - let libs = losslessJSON.parse(fs.readFileSync("./contracts/zkllvm/"+zkllvm[k]+"/linked_libs_list.json", 'utf8')); - let deployedLib = {} - for (let lib of libs){ - await deploy(lib, { - from: deployer, - log: true, - }); - deployedLib[lib] = (await hre.deployments.get(lib)).address - } - d = await deploy(zkllvm[k]+'_gate_argument_split_gen', { - from: deployer, - libraries : deployedLib, - log : true, - }); - } -} - -module.exports.tags = ['ZKLLVMFixture']; diff --git a/hardhat.config.ts b/hardhat.config.ts index 2c8da25..af6619a 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -5,7 +5,6 @@ require("hardhat-deploy"); require('hardhat-deploy-ethers'); require('hardhat-contract-sizer'); -import './tasks/verify-zkllvm-output' import './tasks/modular-test' const SEPOLIA_PRIVATE_KEY="SEPOLIA_PRIVATE_KEY" diff --git a/tasks/modular-test.ts b/tasks/modular-test.ts index f7935df..17a19a9 100644 --- a/tasks/modular-test.ts +++ b/tasks/modular-test.ts @@ -20,10 +20,10 @@ function loadProof(proof_path){ } -task("modular-tests") +task("verify-circuit-proof-all") .setAction(async (hre) => { console.log("Verify proof in modular style"); - let modular_path = "../contracts/modular/"; + let modular_path = "../contracts/zkllvm/"; let circuits = get_subfolders(path.resolve(__dirname, modular_path)); // await deployments.fixture(['ModularVerifierFixture']); @@ -58,11 +58,11 @@ task("modular-tests") } }); -task("modular-test") +task("verify-circuit-proof") .addParam("test") .setAction(async (test, hre) => { console.log("Run modular verifier for:",test.test); - let modular_path = "../contracts/modular/"; + let modular_path = "../contracts/zkllvm/"; let circuit = test.test; let folder_path = modular_path + circuit; diff --git a/tasks/verify-zkllvm-output.ts b/tasks/verify-zkllvm-output.ts deleted file mode 100644 index a16b348..0000000 --- a/tasks/verify-zkllvm-output.ts +++ /dev/null @@ -1,225 +0,0 @@ -import {task} from "hardhat/config"; -import fs from "fs"; -import path from "path"; -import losslessJSON from "lossless-json"; - -function getFileContents(filePath) { - return fs.readFileSync(filePath, 'utf8'); -} - -function loadParamsFromFile(jsonFile) { - let named_params: any = {}; - named_params = losslessJSON.parse(fs.readFileSync(jsonFile, 'utf8')); - let params: { [key: string]: any } = {}; - params['init_params'] = []; - params['init_params'].push(BigInt(named_params.modulus)); - params['init_params'].push(BigInt(named_params.r)); - params['init_params'].push(BigInt(named_params.max_degree)); - params['init_params'].push(BigInt(named_params.lambda)); - params['init_params'].push(BigInt(named_params.rows_amount)); - params['init_params'].push(BigInt(named_params.omega)); - params['init_params'].push(BigInt(named_params.D_omegas.length)); - for (let i in named_params.D_omegas) { - params['init_params'].push(BigInt(named_params.D_omegas[i])) - } - params['init_params'].push(BigInt(named_params.step_list.length)); - for (let i in named_params.step_list) { - params['init_params'].push(BigInt(named_params.step_list[i].value)) - } - params['init_params'].push(BigInt(named_params.arithmetization_params.length)); - for (let i in named_params.arithmetization_params) { - params['init_params'].push(BigInt(named_params.arithmetization_params[i].value)) - } - - params['columns_rotations'] = []; - for (let i in named_params.columns_rotations) { - let r : any = []; - for (let j in named_params.columns_rotations[i]) { - r.push(BigInt(named_params.columns_rotations[i][j].value)); - } - params['columns_rotations'].push(r); - } - return params; -} - -function loadFieldElement(element){ - let result = []; - if( element.isLosslessNumber ){ - result.push(BigInt(element)); - } else if ( typeof(element) == 'string' ){ - result.push(BigInt(element)); - } else { - for(let i in element){ - let e = loadFieldElement(element[i]); - for(let j in e) result.push(e[j]); - } - } - return result; -} - -function loadCurveElement(element){ - let result = []; - if( element.isLosslessNumber ){ - result.push(BigInt(element)); - } else if ( typeof(element) == 'string' ){ - result.push(BigInt(element)); - } else { - for(let i in element){ - let e = loadFieldElement(element[i]); - for(let j in e) result.push(e[j]); - } - } - return result; -} - -function loadIntegerElement(public_input){ - let modulus = BigInt(28948022309329048855892746252171976963363056481941560715954676764349967630337); - - let result = []; - let i = parseInt(public_input); - if( i < 0 ) { - result.push(modulus - BigInt(i)); - } else { - result.push(BigInt(i)); - } - return result; -} - -function loadStringElement(public_input){ - let modulus = BigInt(28948022309329048855892746252171976963363056481941560715954676764349967630337); - - let result = []; - for(let i in public_input){ - let c = public_input.charCodeAt(i); - result.push(BigInt(c)); - } - return result; -} - - -function loadArray(public_input){ - let result = []; - - for(let i in public_input){ - let e = loadFieldElement(public_input[i]); - for(let j in e) result.push(e[j]); - } - return result; -} - -function loadVector(public_input){ - let result = []; - - for(let i in public_input){ - let e = loadFieldElement(public_input[i]); - for(let j in e) { - result.push(e[j]); - } - } - return result; -} - -function loadPublicInput(public_input_path){ - if(fs.existsSync(public_input_path)){ - let public_input = losslessJSON.parse(fs.readFileSync(public_input_path, 'utf8')); - let result = []; -// for(let i in json_file_content){ -// result.push(BigInt(json_file_content[i])); -// } - for(let i in public_input){ - let field = public_input[i]; - for(let k in field){ - let element; - if( k == 'field' ){ - element = loadFieldElement(field[k]); - } - if( k == 'curve' ){ - element = loadCurveElement(field[k]); - } - if( k == 'int' ){ - element = loadIntegerElement(field[k]); - } - if( k == 'string' ){ - element = loadStringElement(field[k]); - } - if( k == 'array'){ - element = loadArray(field[k]); - } - if( k == 'vector'){ - element = loadVector(field[k]); - } - for(let e in element) result.push(element[e]); - } - } - return result; - } else - return []; -} - -function getVerifierParams(configPath, proofPath, publicInputPath) { - let public_input = loadPublicInput(path.resolve(__dirname, publicInputPath)); - let params = loadParamsFromFile(path.resolve(__dirname, configPath)); - params['proof'] = fs.readFileSync(path.resolve(__dirname, proofPath), 'utf8'); - params['public_input'] = public_input; - return params -} - - -function get_subfolders(dir) { - const files = fs.readdirSync(dir, { withFileTypes: true }); - const result = []; - - for (const file of files) { - if (file.isDirectory()) { - result.push(file.name); - } - } - return result; -} - -task("verify-circuit-proof-all") - .setAction(async (hre) => { - console.log("Verify all zkllvm proofs"); - let zkllvm_path = "../contracts/zkllvm/"; - let tests = get_subfolders(path.resolve(__dirname, zkllvm_path)); - await deployments.fixture(['testPlaceholderAPIConsumerFixture', 'ZKLLVMFixture', 'placeholderVerifierFixture']); - - for(const k in tests){ - let test = tests[k]; - let configPath = zkllvm_path + test + "/circuit_params.json"; - let proofPath = zkllvm_path + test + "/proof.bin"; - let publicInputPath = zkllvm_path + test + "/public_input.json"; - console.log("Verify :",test); - - let params = getVerifierParams(configPath,proofPath, publicInputPath); - - let testPlaceholderAPI = await ethers.getContract('TestPlaceholderVerifier'); - let placeholderVerifier = await ethers.getContract('PlaceholderVerifier'); - let gatesContract = await ethers.getContract(test + '_gate_argument_split_gen'); - await testPlaceholderAPI.initialize(placeholderVerifier.address); - await testPlaceholderAPI.verify(params['proof'],params['init_params'], params['columns_rotations'], params['public_input'], gatesContract.address ,{gasLimit: 30_500_000}); - } -}); - -task("verify-circuit-proof", "Verify zkllvm proof") - .addParam("test") - .setAction(async (test, hre) => { - console.log("Verify :",test.test); - let zkllvm_path = "../contracts/zkllvm/"+test.test+"/"; - let configPath = zkllvm_path + "circuit_params.json"; - let proofPath = zkllvm_path + "proof.bin"; - let publicInputPath = zkllvm_path + "public_input.json"; - let params = getVerifierParams(configPath,proofPath, publicInputPath); - await deployments.fixture(['testPlaceholderAPIConsumerFixture', 'ZKLLVMFixture', 'placeholderVerifierFixture']); - - let testPlaceholderAPI = await ethers.getContract('TestPlaceholderVerifier'); - let placeholderVerifier = await ethers.getContract('PlaceholderVerifier'); - let gatesContract = await ethers.getContract(test.test + '_gate_argument_split_gen'); - - await testPlaceholderAPI.initialize(placeholderVerifier.address); - await testPlaceholderAPI.verify( - params['proof'],params['init_params'], params['columns_rotations'], - params['public_input'], gatesContract.address, - {gasLimit: 30_500_000} - ); -}); \ No newline at end of file From ddabb7ec300f88e835ff0ba15b1bc054bc2bd7e6 Mon Sep 17 00:00:00 2001 From: "e.tatuzova" Date: Mon, 2 Oct 2023 17:44:27 +0400 Subject: [PATCH 05/10] Added direct public input processing #74 --- contracts/interfaces/modular_verifier.sol | 3 +- contracts/zkllvm/circuit1/commitment.sol | 3 +- .../zkllvm/circuit1/modular_verifier.sol | 78 +++++++-- contracts/zkllvm/circuit2/commitment.sol | 3 +- contracts/zkllvm/circuit2/input.json | 5 + .../zkllvm/circuit2/modular_verifier.sol | 77 +++++++-- contracts/zkllvm/circuit2/proof.bin | 2 +- contracts/zkllvm/circuit3/commitment.sol | 1 - .../zkllvm/circuit3/modular_verifier.sol | 77 +++++++-- contracts/zkllvm/circuit4/commitment.sol | 1 - .../zkllvm/circuit4/modular_verifier.sol | 77 +++++++-- contracts/zkllvm/circuit6/commitment.sol | 1 - .../zkllvm/circuit6/modular_verifier.sol | 77 +++++++-- tasks/modular-test.ts | 158 +++++++++++++++++- 14 files changed, 477 insertions(+), 86 deletions(-) create mode 100644 contracts/zkllvm/circuit2/input.json diff --git a/contracts/interfaces/modular_verifier.sol b/contracts/interfaces/modular_verifier.sol index a3dad08..58e3a91 100644 --- a/contracts/interfaces/modular_verifier.sol +++ b/contracts/interfaces/modular_verifier.sol @@ -25,6 +25,7 @@ interface IModularVerifier { ) external; function verify( - bytes calldata blob + bytes calldata blob, + uint256[] calldata public_input ) external view; } diff --git a/contracts/zkllvm/circuit1/commitment.sol b/contracts/zkllvm/circuit1/commitment.sol index 9acfb0c..e4b4e32 100644 --- a/contracts/zkllvm/circuit1/commitment.sol +++ b/contracts/zkllvm/circuit1/commitment.sol @@ -37,7 +37,7 @@ library modular_commitment_scheme_circuit1 { uint256 constant unique_points = 4; uint256 constant permutation_point = 2; uint256 constant quotient_point = 0; - uint256 constant lookup_point = 94358033697232; + uint256 constant lookup_point = 94196926262688; bytes constant points_ids = hex"01010101010101010303010100000000"; uint256 constant omega = 14450201850503471296781915119640920297985789873634237091629829669980153907901; uint256 constant _etha = 14062721881273474090606415031361994540585550571695842571456013353340629726555; @@ -583,7 +583,6 @@ library modular_commitment_scheme_circuit1 { unchecked{i++;} } - console.log("EVALUATION PROOF verified"); return true; } } diff --git a/contracts/zkllvm/circuit1/modular_verifier.sol b/contracts/zkllvm/circuit1/modular_verifier.sol index fe5c0a6..3c79439 100644 --- a/contracts/zkllvm/circuit1/modular_verifier.sol +++ b/contracts/zkllvm/circuit1/modular_verifier.sol @@ -24,6 +24,7 @@ import "../../basic_marshalling.sol"; import "../../interfaces/modular_verifier.sol"; import "./commitment.sol"; import "./gate_argument.sol"; +import "./lookup_argument.sol"; import "./permutation_argument.sol"; import "hardhat/console.sol"; import "../../algebra/field.sol"; @@ -54,7 +55,6 @@ contract modular_verifier_circuit1 is IModularVerifier{ address gate_argument_address, address commitment_contract_address ) public{ - console.log("Initialize"); types.transcript_data memory tr_state; transcript.init_transcript(tr_state, hex""); transcript.update_transcript_b32(tr_state, vk1); @@ -76,28 +76,77 @@ contract modular_verifier_circuit1 is IModularVerifier{ uint256 Z_at_xi; uint256 l0; uint256[f_parts] F; + uint256 gas; + bool b; + } + + // Public input columns + function public_input_direct(bytes calldata blob, uint256[] calldata public_input, verifier_state memory state) internal view + returns (bool check){ + check = true; + + uint256 result = 0; + uint256 Omega = 1; + + for(uint256 i = 0; i < public_input.length;){ + if( public_input[i] != 0){ + uint256 L = mulmod( + Omega, + field.inverse_static( + addmod(state.xi, modulus - Omega, modulus), + modulus + ), + modulus + ); + + result = addmod( + result, + mulmod( + public_input[i], L, modulus + ), + modulus + ); + } + Omega = mulmod(Omega, omega, modulus); + unchecked{i++;} + } + result = mulmod( + result, addmod(field.pow_small(state.xi, rows_amount, modulus), modulus - 1, modulus), modulus + ); + result = mulmod(result, field.inverse_static(rows_amount, modulus), modulus); + + // Input is proof_map.eval_proof_combined_value_offset + if( result != basic_marshalling.get_uint256_be( + blob, 224 + )) check = false; } function verify( - bytes calldata blob + bytes calldata blob, + uint256[] calldata public_input ) public view{ verifier_state memory state; - uint256 gas = gasleft(); - uint256 xi = basic_marshalling.get_uint256_be(blob, 0x79); - state.Z_at_xi = addmod(field.pow_small(xi, rows_amount, modulus), modulus-1, modulus); + state.b = true; + state.gas = gasleft(); + state.xi = basic_marshalling.get_uint256_be(blob, 0x79); + state.Z_at_xi = addmod(field.pow_small(state.xi, rows_amount, modulus), modulus-1, modulus); state.l0 = mulmod( state.Z_at_xi, - field.inverse_static(mulmod(addmod(xi, modulus - 1, modulus), rows_amount, modulus), modulus), + field.inverse_static(mulmod(addmod(state.xi, modulus - 1, modulus), rows_amount, modulus), modulus), modulus ); - //0. Check proof size - // No direct public input + //0. Direct public input check + if(public_input.length > 0) { + if (!public_input_direct(blob[865:865+320], public_input, state)) { + console.log("Wrong public input!"); + state.b = false; + } + } //1. Init transcript types.transcript_data memory tr_state; tr_state.current_challenge = transcript_state; - // TODO: Just do something with it { //2. Push variable_values commitment to transcript @@ -139,7 +188,6 @@ contract modular_verifier_circuit1 is IModularVerifier{ transcript.update_transcript_b32_by_offset_calldata(tr_state, blob, 0x59); } - bool b = true; //8. Commitment scheme verify_eval { // ICommitmentScheme commitment_scheme = ICommitmentScheme(_commitment_contract_address); @@ -150,10 +198,10 @@ contract modular_verifier_circuit1 is IModularVerifier{ unchecked{i++;} } if(!modular_commitment_scheme_circuit1.verify_eval( - blob[z_offset - 0x8:], commitments, xi, tr_state.current_challenge + blob[z_offset - 0x8:], commitments, state.xi, tr_state.current_challenge )) { console.log("Error from commitment scheme!"); - b = false; + state.b = false; } } @@ -172,12 +220,12 @@ contract modular_verifier_circuit1 is IModularVerifier{ } if( F_consolidated != mulmod(T_consolidated, state.Z_at_xi, modulus) ) { console.log("Error. Table does't satisfy constraint system"); - b = false; + state.b = false; } - if(b) console.log("SUCCESS!"); else console.log("FAILURE!"); + if(state.b) console.log("SUCCESS!"); else console.log("FAILURE!"); } - console.log("Gas for verification:", gas-gasleft()); + console.log("Gas for verification:", state.gas-gasleft()); } } \ No newline at end of file diff --git a/contracts/zkllvm/circuit2/commitment.sol b/contracts/zkllvm/circuit2/commitment.sol index 8ac454e..43c5972 100644 --- a/contracts/zkllvm/circuit2/commitment.sol +++ b/contracts/zkllvm/circuit2/commitment.sol @@ -37,7 +37,7 @@ library modular_commitment_scheme_circuit2 { uint256 constant unique_points = 5; uint256 constant permutation_point = 3; uint256 constant quotient_point = 1; - uint256 constant lookup_point = 94358033688480; + uint256 constant lookup_point = 94196926262768; bytes constant points_ids = hex"02020202020202020404020200010101"; uint256 constant omega = 14788168760825820622209131888203028446852016562542525606630160374691593895118; uint256 constant _etha = 12217208067492249031102872072655908974751031861422067257283053495957748658893; @@ -582,7 +582,6 @@ library modular_commitment_scheme_circuit2 { unchecked{i++;} } - console.log("EVALUATION PROOF verified"); return true; } } diff --git a/contracts/zkllvm/circuit2/input.json b/contracts/zkllvm/circuit2/input.json new file mode 100644 index 0000000..d7c12ac --- /dev/null +++ b/contracts/zkllvm/circuit2/input.json @@ -0,0 +1,5 @@ +[ + {"field": 49052524384703870792430850605823211740010368752655030397570455698676404652716 }, + {"field": 0 }, + {"field": 1 } +] \ No newline at end of file diff --git a/contracts/zkllvm/circuit2/modular_verifier.sol b/contracts/zkllvm/circuit2/modular_verifier.sol index 25cf994..24c6d6c 100644 --- a/contracts/zkllvm/circuit2/modular_verifier.sol +++ b/contracts/zkllvm/circuit2/modular_verifier.sol @@ -55,7 +55,6 @@ contract modular_verifier_circuit2 is IModularVerifier{ address gate_argument_address, address commitment_contract_address ) public{ - console.log("Initialize"); types.transcript_data memory tr_state; transcript.init_transcript(tr_state, hex""); transcript.update_transcript_b32(tr_state, vk1); @@ -77,28 +76,77 @@ contract modular_verifier_circuit2 is IModularVerifier{ uint256 Z_at_xi; uint256 l0; uint256[f_parts] F; + uint256 gas; + bool b; + } + + // Public input columns + function public_input_direct(bytes calldata blob, uint256[] calldata public_input, verifier_state memory state) internal view + returns (bool check){ + check = true; + + uint256 result = 0; + uint256 Omega = 1; + + for(uint256 i = 0; i < public_input.length;){ + if( public_input[i] != 0){ + uint256 L = mulmod( + Omega, + field.inverse_static( + addmod(state.xi, modulus - Omega, modulus), + modulus + ), + modulus + ); + + result = addmod( + result, + mulmod( + public_input[i], L, modulus + ), + modulus + ); + } + Omega = mulmod(Omega, omega, modulus); + unchecked{i++;} + } + result = mulmod( + result, addmod(field.pow_small(state.xi, rows_amount, modulus), modulus - 1, modulus), modulus + ); + result = mulmod(result, field.inverse_static(rows_amount, modulus), modulus); + + // Input is proof_map.eval_proof_combined_value_offset + if( result != basic_marshalling.get_uint256_be( + blob, 256 + )) check = false; } function verify( - bytes calldata blob + bytes calldata blob, + uint256[] calldata public_input ) public view{ verifier_state memory state; - uint256 gas = gasleft(); - uint256 xi = basic_marshalling.get_uint256_be(blob, 0x79); - state.Z_at_xi = addmod(field.pow_small(xi, rows_amount, modulus), modulus-1, modulus); + state.b = true; + state.gas = gasleft(); + state.xi = basic_marshalling.get_uint256_be(blob, 0x79); + state.Z_at_xi = addmod(field.pow_small(state.xi, rows_amount, modulus), modulus-1, modulus); state.l0 = mulmod( state.Z_at_xi, - field.inverse_static(mulmod(addmod(xi, modulus - 1, modulus), rows_amount, modulus), modulus), + field.inverse_static(mulmod(addmod(state.xi, modulus - 1, modulus), rows_amount, modulus), modulus), modulus ); - //0. Check proof size - // No direct public input + //0. Direct public input check + if(public_input.length > 0) { + if (!public_input_direct(blob[865:865+352], public_input, state)) { + console.log("Wrong public input!"); + state.b = false; + } + } //1. Init transcript types.transcript_data memory tr_state; tr_state.current_challenge = transcript_state; - // TODO: Just do something with it { //2. Push variable_values commitment to transcript @@ -140,7 +188,6 @@ contract modular_verifier_circuit2 is IModularVerifier{ transcript.update_transcript_b32_by_offset_calldata(tr_state, blob, 0x59); } - bool b = true; //8. Commitment scheme verify_eval { // ICommitmentScheme commitment_scheme = ICommitmentScheme(_commitment_contract_address); @@ -151,10 +198,10 @@ contract modular_verifier_circuit2 is IModularVerifier{ unchecked{i++;} } if(!modular_commitment_scheme_circuit2.verify_eval( - blob[z_offset - 0x8:], commitments, xi, tr_state.current_challenge + blob[z_offset - 0x8:], commitments, state.xi, tr_state.current_challenge )) { console.log("Error from commitment scheme!"); - b = false; + state.b = false; } } @@ -173,12 +220,12 @@ contract modular_verifier_circuit2 is IModularVerifier{ } if( F_consolidated != mulmod(T_consolidated, state.Z_at_xi, modulus) ) { console.log("Error. Table does't satisfy constraint system"); - b = false; + state.b = false; } - if(b) console.log("SUCCESS!"); else console.log("FAILURE!"); + if(state.b) console.log("SUCCESS!"); else console.log("FAILURE!"); } - console.log("Gas for verification:", gas-gasleft()); + console.log("Gas for verification:", state.gas-gasleft()); } } \ No newline at end of file diff --git a/contracts/zkllvm/circuit2/proof.bin b/contracts/zkllvm/circuit2/proof.bin index 471c180..6de6285 100644 --- a/contracts/zkllvm/circuit2/proof.bin +++ b/contracts/zkllvm/circuit2/proof.bin @@ -1 +1 @@ -0x0300000000000000206dd63ff5b9f85d9729dcaf164fe828b62c690deeb6c0cb6e0575f6945a2100eb0000000000000020d3f3396cd0632a7ebbbc2c6733858778cbc0c5ac68725cf68a12f4e2d335eca100000000000000204027d688596348276c018e905cd5c5c2ee7c16fd680384018e4a9fadcb4f9ffa626e140a18e5a7459215a931cec8249918ab39fbfbe3d3f764022e6486f1abcd0000000000000026626e140a18e5a7459215a931cec8249918ab39fbfbe3d3f764022e6486f1abcd1b02b1d914ea72056989679d7826ca1f9adbc9880002cf6daffb7f1fa3b332cd6d5e47a6de34207dfe766834774fc81509fa61d4e342ffc8bc0f44c4b09bb2964925359c68cba0ddaf87fd463f6daed7e844deb500155000cfe079de79e6639a4602099d19bbf3c0c1e1c93f096368734f66d4c036ded683246ae166d441e214304dd9fa371b70eeffd08ccb957867d20aeb86e7009bc009af235519554cb9321a57a5ff0dadb524804520991b307b11dcd94135801e6d99feec29d3cdcd2e886a45a7312e851bf898402981030726b3a4f5684b04458845c9f753b35519105c626e140a18e5a7459215a931cec8249918ab39fbfbe3d3f764022e6486f1abcd1b02b1d914ea72056989679d7826ca1f9adbc9880002cf6daffb7f1fa3b332cd524e483f9155b237b25a847dd7d932dd8ebc7afd90989e4212ac1550120f56983d9bd931d08eee60195862ede438d303f80e10fc9093f2a0920d1f3d2bed12c95fc8219e21c0f47501b57027147c01c595b68ecf4762d7a22b36b52ed0641cdb5d118568c35ccff0c8e14aeb77fcd0a05ba585f78d646348b66c554b10625e6033b4e1bdb24088caa62b218dbd7a52d1e3fdef357f6e5dab85ca336f0268a5c73a68771f10abc9d88dbdf7ce531cd3044141f573048011fdb1b76e4ec34435a618270db64901d87131b3d890628ac97b20883eb04ca000ff060ea6c084afde8f1971376fdecbac8d7ec47e270aa3fae30448dff43e79347ca3caa580704f4a473f1b4adcabfaa14cf2ee7ec3990f58d91ae75bfaaefe1327313d89eb23baf96f64c6f15b55074dbabaf8fc63aa26145c939b894041940430101e92816edbb0cc3aca5ab61972e2892b602c2405ece2f785f78ea12e19d49af34e994be6cb03e2662761bdeda7376d374c58b68475ecfa30064120c27daa97edfbda94eecaeaff5600f3b19a5f9b461b82697b95b92e789981482f9c1884d06c6497560364d7ee369369e984155e5f975bd41103c801ea569e500244152d768985604be0800b064f4e4efb5c87b03c102fa6b6a8bde222551ac4a7fc0e0609f7f3db249121b15d3cd3d24de7686966f8fa3577ea539d516c0a16d46d0e2c283db58b157952ca536f888554b77f5851894a441d81a754ba5af8e44d80c9c504a62eb5791414ff3c21c4bcc2102674882351292283f7542905d8786dcb382bec64088a1e745832a12b8a3555a120612eedc9398edf3a18777e7fe7cf4f9f120fbc8da322fa7b07eb58b821750b3c83307ac8cb997d32dc07ac992e507855032cfeaca8a3ca56fb221ff768967b8fadcbcdd9a501a92ad9bb574d96f196ef92377646fb9e70ceba0462a6d5a2138035413bacbdfb155127dfd0d04a2976f1023c00d577e43143e9746792589d41ab91ee7790134a93bbd89cc6d23fda90f4ec50bf3f2c2b9e39665458705fe084c8b316c22f0d1706bb4d9e10aa7b30a134f81b366a5d7ff3ffc50f49c9ff3ef9f3e3d132ae23f98db7174830057f92d286de6d9240d103ceae32495e146795ab03278959fee909ab870fe2cb92d317e1d3da52c425fdefd11a43f46218a6833c8d6d971bcedeee282da2e2843a7bb82149390f3c8d9e6494682d8c068f9e5b68efccc14ae2b27fe91ca54bdcda0f64ed24d2f1fef3932df407da160000000000000008000c01040201030500000000000000160202020202020202030302020201010102010101010100000000000000030000000000000020d039ca1c71ce79a86c7a99e73a8656cdd2243a3398fee6db89c32d438e6832a8000000000000002015aa9d28bbeac0cea09a11c445c3b5d5c95f3411d6e87b1b0682e4e82b23322100000000000000202c0ebc7bfcfbb8c939318a12e46a232b2488c65ee75c597badebe5ee9f54ab320000000000000003010101000000000000002c1a8f3ae1cc22ee66ae3320a20450eb9bbf136819ab9c98a27528d588439e5b12595e6c715d7a8ee18506b7660550ec6994aa3be95461c35c8ad72a76bc61a4ef45fcf4d96b570786902c0c661494993ce5ca34b0b149d072341dd6bad9547d7d2df0b279be4675c1a30dcba1f50d3ec86df36f524eb48b8ccbe2294426ab82841a3414a548eb3f8d244cf6aa6988d094f990e0c8d90b43236cd0df1ff14f6e6759b992ade0b23dbb0eece15da01907705a2cc33a26f318db932f20df0eb0919a437ee931d4d13f93cae0e6a0d91bdc0d7f38817aef5079f8f9b619e0992c04d0306ebe2154cc3db46858f1673085fbf7d485228810ade2060649e61e66d3fb311a8f3ae1cc22ee66ae3320a20450eb9bbf136819ab9c98a27528d588439e5b12595e6c715d7a8ee18506b7660550ec6994aa3be95461c35c8ad72a76bc61a4ef2590a1386fdd68a64b48694770cb34c8d542d4eae61b920d1e2f9c2b67722046372ad9812eebaebb08c292271e6b113f29da14c8440cc8ad7a9c2c2ae50e4a5c58a9241cc98946e8adbd47f41026725594fb5c824a7d4579be82a04ebdac7aa92f66a4e5e3bd51da8a914d8e68369995dd75582def342a0fcc1ef316ee91cf7e382f1bf3863d2ea202ccca570dcb24fc662281b6f5aeb474789fc8f3792b8f356d9dd7a5c8c2d86909947f60b55e823b0a0c7de924274ab55f69056c0bdf60c11aeac71c75d9499d1e94a608813730bcc5d56b13c46b04be50466895674e259201112e55d64e3d5be9e494970f6af12c188153e6bd80057afa0098701eded5782419c9ef7e61515d953fd21cea0eb6b0c29eec0d0981113298ca1e71e21a6aa256e8050594970a29a019afbfe8a57ba218d09f94410d4c81bf1bea0a5917f41404830792dcf424d6f4b58d6be37793798f505c2459bde2df30b2d1b3d3a8399015cdb590ab8edc41f911f3269297bd2067b663803e56c2ffa52676db2ca5a6f21a85abddc9d0ad513fe3a6b9a3d1dba345e25cf42597f88444787a0a6e408b4608c59640a559dc8d7fccfe760938bd2e81e32ab91aa9fb0c4abe8b3ec8bca416366a3e014ccf6a9ae9c91f4994f731c9d741d9cfb8642e74f0e42467be9f87a008e1e9b461510e3dde26ab0a775e3c9210d4ac7c7c03d44b041dc790fafe28411557af6aaf5fa65a22d9653d5e20780d7e9ed9ce052d7958c1338247c52bbabe6327d2539b0bd70f9b4d4e718a9b2310e31cecdcfe6848caf78677787e522772676582557f6ee26d2c72a1e5831d359574b68620ccb1537659e43707fa8d56bf40c98412694ba9f181af5f38221f44ef57df80cff7552f44c9a92de9d4eee44045101330114f42fc463b4332592624e462b684c404ed8ba3fc1f84ebeb0f68bd54fab4d73b9b444274cc02879bda831244e0004de8861e929185bbd55855f25d6217e778617dc2234eadcdf9fe5b4a5c0c68a06a91606e04fb6c035df87a974269edbb383f58b0c818643ed98a354ef1567826c325e6f2d81165145765e1d47543f0b824bae03ad07fea04ac2e231075c4f8b62023539c40967c453bde2228bd3ab4b785f787af667e45e8db0f7f6b697a9188abce54b7f3aa1aaec5bc22348c6ecc36371cfe1b4ababaa93cd6fe123da88841425a82cdc7a5ef69222d351d1e1c3605d8dead8783a5b51da00a46ed365bac17c330589f26c374ff98d85012f4373c8b9baa0ac3ceb22c19d688850e614ffccac8bf07b7456daca0d1d31dbf972115b38d2b3225e007506e31bf2ea8f9e5c1faaa15b6e9fa6b0f6faecb5cc52c1b66e21ca36e653fc4e2ab369efa3726f3eece7ffd8d7fc9c57407053ecf1c1f14f5ac82c9abd626b1e389a9ddab272444dbaa93726494ae674ce19034c8d2ec296599f469fbb94c6de31cd8824d07c065d8dc460d6f88aa2ec0ab3bda8919316ff42e661eb3a6b749d27695db9f08cc8b66b9af86c3bab31e1f88b9ea8e5c8f000000000000000602f6339ea32367185e1fbddc5d313bcb6050a682ca5de82cac4491418ea46627433e144cc9996fb5b692818c120530b915ec7348ef0cbedac743940d82688edb08307b5c956a01b49a35735eb6c4eb099b303ba4ed001c22293fe21f60b85c6a2215ce0a7b2b23b11f80bc6795095aa6b351133583e7242404b1452fc8d6e23b05f4d9bc5ac061ad981a2a30f2215fff12fdd2da934e637bf2dfb0b851f069f46f94ae5a9f719043197dd7cc022bc15f7128f4afe843dc5ac21829c3a9e0f3ce000000000000000400000000000000120000000000000020b024bd12fb5b07a167bc8a510f274a06946eac1240e823dd682ec71d18e04b4e00000000000000070000000000000001000000000000000100000000000000206a0c0f25e40433920ed7999cf1bac17bbd3282a40534be3bf63357f3c84d747e000000000000000100000000000000000000000000000020bec9ce09d1cb7f8b094558f00cd0b52b85cf1a2dd4aaeddff8d5f5c072dcf3380000000000000001000000000000000100000000000000202409e59bc357fa384aa2db1a0361f610c480cad34715b074f9209091daa258c40000000000000001000000000000000100000000000000202d0b87876f7e258bbec0a11dc508a3482e6dfb93a6410a8de151dd3b5add3bf4000000000000000100000000000000000000000000000020e2732ddb16a4cf9185af77bffc17228a0fa31015c9f64ef9dca0a1a0416fbc3e0000000000000001000000000000000100000000000000207a431e3e3b4abc66874409bc00714e84ffdd8b784900a87b7c62a52497fa40c4000000000000000100000000000000010000000000000020564b02dc9ea4ce766caf42be67c77c94a3193983b90074fcc9626e7b3b0da762000000000000001200000000000000206dd63ff5b9f85d9729dcaf164fe828b62c690deeb6c0cb6e0575f6945a2100eb0000000000000007000000000000000100000000000000010000000000000020fa0a2ef78650f6d15dd48478c93932318932506a4ed21511e2375e1c4129e83c000000000000000100000000000000000000000000000020e5e0981156498edf84fa650b0df18bfa6033315719de0c3680a145709c1f1a4f000000000000000100000000000000010000000000000020028620e55fbf3e6d9d08bc4a01a0e87631d5e79ddbf29e97b1555f0b4a9ad57b000000000000000100000000000000010000000000000020ad8fa639f814218c1765312d142ad70328f81c4db0addeb22b390eb35eeb646600000000000000010000000000000000000000000000002048dd00290f5b48725f806746554818ee49bec059c72a2e8adda0ce213353b2b8000000000000000100000000000000010000000000000020fd4a69d3614468e951c6b6628edd516fc1f089ab4b34169f6656182c32282acb000000000000000100000000000000010000000000000020287494402c2ccd3b5ce3cb9548e5d1cfbda1dd7dab596f99c5d87350d14854c000000000000000120000000000000020d3f3396cd0632a7ebbbc2c6733858778cbc0c5ac68725cf68a12f4e2d335eca10000000000000007000000000000000100000000000000010000000000000020263aadc7d174d1b0239425aec250ea127fba6814e96995a82f95bae08c11d275000000000000000100000000000000000000000000000020ccce9b7269d714c667da0a596c2083e9f4d0f15093cbf709e17a95da8bd3894e000000000000000100000000000000010000000000000020810b3af5db64ef0fbbfae43d4f9c9691288c4b01e407278041893071aae0cb6800000000000000010000000000000001000000000000002033e2518867fc9a00d991ebc2dd5ad50c099cc097afec09655fc7590aea2a52030000000000000001000000000000000000000000000000201371fdd03033edee51c07368763231bd954ba3d77dc08007863caee33e3c193a000000000000000100000000000000010000000000000020ae922b6dd5c16ca063d7ad225b33404ec462a28318ed2f5cc5bda6acce3b7eba000000000000000100000000000000010000000000000020ef313e97e38063a7cc7de05382d8dc829e21230b5f21b2f4b785fb8b7cfca4a6000000000000001200000000000000204027d688596348276c018e905cd5c5c2ee7c16fd680384018e4a9fadcb4f9ffa0000000000000007000000000000000100000000000000010000000000000020c341a693ab20ea8c8a9e42a7ef87bfa0815aa7965e87c84bf89e75a0119a1e390000000000000001000000000000000000000000000000202c4e92e3ae934531fe5a41455b28b78c254086127e94bdc1106d40ea27b6f66e000000000000000100000000000000010000000000000020cc195e5ad2c20d038bc4bcbe384e2117801b277903f60486ea9f38422179f989000000000000000100000000000000010000000000000020874ad82c29b4973764bded8bf74fb43b71a81fab786c33ff47c6ae2e7ba6375e00000000000000010000000000000000000000000000002080c379dbcbc755861b4d86dc97baafba0a446ff79509a8df1c29bcf676d0a5ab000000000000000100000000000000010000000000000020553ec430f582bc7209ff0c0f6b9fe50ce3f0d9fed48dc91e887a4511e5152dd0000000000000000100000000000000010000000000000020a72ac1761ec5850a9149e4e6fe50e4815708e5d89494280aa85423b08534c16a000000000000000300000000000000120000000000000020d039ca1c71ce79a86c7a99e73a8656cdd2243a3398fee6db89c32d438e6832a80000000000000007000000000000000100000000000000010000000000000020cd3afcb8eb315d6539fa0542d01b2ef52041c7078b182dba21810ec93a707e8a00000000000000010000000000000000000000000000002086856c54aa4ddbda66e251894afd22b5507b2c3256bd94de225f7546156ce7a300000000000000010000000000000001000000000000002006a8792bec5e8635247938b721b7443b8cbace65b7c85cccc425e310d0c9d6bc000000000000000100000000000000010000000000000020dfdce83bfa769a6e6a4983e99b179ab67f8547c532b37973275ac7f56879bb12000000000000000100000000000000000000000000000020dbe612e094b02b262fe98b4e65ec3f4867b6bb8111420e3b931fa55065a1ddc0000000000000000100000000000000010000000000000020209249e901a34113a2feeac298eed5d8b37fefabe88e82810aab1c15c177abfa0000000000000001000000000000000100000000000000209f6723b67323a64da13821f68b34cd62c32fada0eb5310cb175d2ce705ae8f1e0000000000000012000000000000002015aa9d28bbeac0cea09a11c445c3b5d5c95f3411d6e87b1b0682e4e82b23322100000000000000060000000000000001000000000000000100000000000000203dbd92caf0e1cc6b10088d751dda7aa33ffc4736ef01ccc0e0c05308cc67f2c10000000000000001000000000000000000000000000000209bafe248516fc2e260d96030d5b0a1ed80dfe3d13a2f49f187165c83f0013a28000000000000000100000000000000010000000000000020a1cf43396556383da4ebc84c095bdef4fe24d31a6473cb4ae247b50e1bf0a31800000000000000010000000000000001000000000000002032606f65f8ba1be27af74b79c691326d49b95255422218bb83c0cca09a01cec10000000000000001000000000000000000000000000000208dabd924a86edbed7143cecab787b0e1c37d3d800378e8485a23707ed14664480000000000000001000000000000000100000000000000206069f1c680841d1e54eccd25849bd95ba592c8f3b945cb15511440d3fc4e18a8000000000000001200000000000000202c0ebc7bfcfbb8c939318a12e46a232b2488c65ee75c597badebe5ee9f54ab32000000000000000500000000000000010000000000000001000000000000002035f9a0c795223550c664a6df7e23786fc421c467dc70e5a64fd49cd26c03bd8700000000000000010000000000000000000000000000002061addc61d4e673b94630ff86adb4b489d8a497fd3b2eb5c089e4ab8ce976c82a0000000000000001000000000000000100000000000000202785974147605f6e51c90211e2abd8dc3ca98a2b523682f9358bef66de84c3ce000000000000000100000000000000010000000000000020df63b17ac031e803a3eb18b7e05422d838fc1e4b9f76bc83f174869c052ed7a7000000000000000100000000000000000000000000000020fe83d189996bac5b99fa668c2fe150350d9ec9a2e61a90ab0d06284ce5c1c9c600000000000000023ac4c40b7d18f8f858cc00fe7a2690af421363c53dc91feb5a7bed3dfde8aee125daeb14576774335dfa5becbc597abc873f4d8ccddac2107a5d9c1e89041f4e \ No newline at end of file +0x03000000000000002024ecab4264a7ca11ddf74da3c6b431952d97ebadc7a298b33058b4a1049e55130000000000000020a41365af29f6d68a8f9cb810801975bee37f2f545a03b00fd71dcd85a31ab62800000000000000200ccaf3029f851972eba18a90c54baa5816235d6267b94f9178e76a21225faffd2bb02b52b93caed02f7b9f93ed72d6303eaf557b1016fa1c42c0dd037c8d168700000000000000262bb02b52b93caed02f7b9f93ed72d6303eaf557b1016fa1c42c0dd037c8d16871b02b1d914ea72056989679d7826ca1f9adbc9880002cf6daffb7f1fa3b332cd49f5e09cbd6dcd20e5edacfb6ae02b470f500e5770a41ec7d3460b1a67db9daf4925359c68cba0ddaf87fd463f6daed7e844deb500155000cfe079de79e6639a360286fc878aa6c57c985abfc599cedc1c39d4581483677ac6ea4dbcd7014fc5304dd9fa371b70eeffd08ccb957867d20aeb86e7009bc009af235519554cb9321e48baee37f2178dce7cf3264a4f1ff4ca5be25f8f9cc05e7068202ce1092e606a45a7312e851bf898402981030726b3a4f5684b04458845c9f753b35519105c2bb02b52b93caed02f7b9f93ed72d6303eaf557b1016fa1c42c0dd037c8d16871b02b1d914ea72056989679d7826ca1f9adbc9880002cf6daffb7f1fa3b332cd2c905a48033f7712db668f85be870a178b97d6575d2461dd9cd5ffd0706bc2c83d9bd931d08eee60195862ede438d303f80e10fc9093f2a0920d1f3d2bed12c90dba87f7616b548a27ca3002a2041a74fa88f7df5deba6607e009786132f16195d118568c35ccff0c8e14aeb77fcd0a05ba585f78d646348b66c554b10625e607393a55f4272065053c23511cc8da1053b5c768b8284f092c0622d7e1dbd22c23a68771f10abc9d88dbdf7ce531cd3044141f573048011fdb1b76e4ec34435a64be38b2e9dbc80b317a5c8391f512aba3350ac687cfbc656d129432c62f7e7304e20b96785ab2120df9d1613b0d3b5046a60b6e70282c857eff5cc6590e881443f1b4adcabfaa14cf2ee7ec3990f58d91ae75bfaaefe1327313d89eb23baf96f5781ec5a0604f50be52aebc564dc2ed80502da6683f5e3a2ada92d791be5be4521b087bfc01cc8483b8334c4940ceeb6e69cc823c108c2d3a49fc5a56211b7b2662761bdeda7376d374c58b68475ecfa30064120c27daa97edfbda94eecaeaff4f58c3b98524b7872c3093d6583c78e1c29d74d2b743aab8f96848d260fe5eca369369e984155e5f975bd41103c801ea569e500244152d768985604be0800b066a1c23ef257ed5ebd92bf742c4e3068c99f3540c7dbc2241dff476ff279abbb63cd3d24de7686966f8fa3577ea539d516c0a16d46d0e2c283db58b157952ca5303cebf7d251b84b88bcdcbc492c9f2d6f105b95708b4f0d654cd53285e85e3ab6ea105c20c27cfcc067f59898cf6fd4affb6cba30aceb71a21bf90f2d0a0cd166fb4436a83f5929b3f9c1da37755183e029cdea738a51f53d478d52dfbbc3fe81d683e389ae2d2fe8f3c87fa3117dd66be610f00350625e67a0a0a71085f16f7501468ba8f6ca1c66f39d28ab02beb5c4cd9bc973c9c912bbfbb11d353c8d10b6cf7eb6e699f91588aa1c15668229e999f67016be986d3d46b1792513529ae7d47a45e880a4f6a041ab1dd88e825ea755d2872d33897e57a7aa22a2151d8d77301ce1d59d4518611942d65576e289b37ad851c1ccb0bf1eea6fc9d153788758e561736f740d1f89bfd68724aa834c7148864d7d20745a5da75f93bffdeb626ac0c20c247972d1211f56ee817f896764ca8fd4733948423e96bd2bbcb609d99cb69a32c8264aa00a167239c313f812e413bf2cd509ca00a2fd2bb174110fdff656d826e42572a99a1bbcaefaf8441770a766928cc06b847832d744f47979d15ad0000000000000008000c010402010305000000000000001602020202020202020303020202010101020101010101000000000000000300000000000000201f9195798387e56733a20bac88eca923f2270dfa9aa8a0a12004221ba4ce4f2e00000000000000208c897d221abae8ec32b4a639cf9806f4f3eacf79109a952ea509910e13c33b2e0000000000000020ec8902ba156ed5799729cc3d673fed6a190dc770d43ee980dd79a754e0e5cfc80000000000000003010101000000000000002c5950a37bb55ee341bde19c2cf633387e72291d47986d31d3bbf254b932e053a61a9d03d7743e9a0675583bdb136e9f86e19486bb67912a2b440dab45cd1fac5b2d9033c22584c463310a0d128b3d535a7c6b98e62b0490cf23a0511564224985465d73910418b8e5022fcaf57e6484aad7520b1cd4f9cb2fdc5faee99bddb67c57161ba8b3666425f0d2ab71bb69976ebf75e6452d233dabf9623797bcf002a11cd78baa7637192242672c964e3840969447bdbdd2db1e53069dc867430ffd601df67cfd17b94aa095a177f3efb9ebec998517d53bfee3b8d1af852b2a90126255f72a5611e432a79d98601419e7ec18ba388c2dc3ff78462e507ad3d56fed9f5950a37bb55ee341bde19c2cf633387e72291d47986d31d3bbf254b932e053a61a9d03d7743e9a0675583bdb136e9f86e19486bb67912a2b440dab45cd1fac5b26ccd61eaf0cff1907e89f390148757c43442c240938ce51044683cd6523b678504c40e853716bd1d69bdda736d45b0cd4811401f6354dd689d6456cb10ac9fd0661c5589cb44a31bf0404d71262ab17aac96bc0741e262b636b783db34fc80718b1b9cc1ab20522925ee9ea638062400aa671dbbbe8a07745ecbe039057f29b5057f26aaeae98736ead4854610021c66d0761b08c1c1855c62119ad79095eee11027de8749bb889d7ed15f9228544a7003595b72fc1289ff497dd382e0194bb41c33130c9a81903f64dad5da57fd552728fee4a181f8b95cfb1180c46c6bd376ff8842c5a567e368d50c4927832b39be61bba5a3defb08c84ace0e9eb315c2e17de511240dca41b4354e4e09981adb4919f08584b9e30236e1185b239cc820c64793638e36edcb5f2afa44d5b63e8866f2fb11ab1059a1e80abe61f45896f906940323e5b0925eaff6eaa0851d6635f92107561ff105b8baf8f91fa1a0ba0664da84c03356922b71a79b388f160c291b31ecd61dca1a783e49316c4c04c579423aaa5b31f83024cf44437c63747644a9403baae835256c4cf46b865b026316a19630983fef125fba1c6a2b39cc60eb27601422133351891859c8ef00668a8826e71abd44165bfa5c6d0a652b3826bf2cedc569cd85e367a921a436e80261c452c2ac6e7de2af8b453407005430b38fa60852ed3b7e7a4c8762cd59a6713d990551109d9523a05a563d82d6be3eea4a72dd5c9a205df65585e17ff1c8f1a9c4b0fab19c755b57ddcc0c46775020efc45fa4c9637c821403b4ef47509eb5420286ee6e201bcf224725dcbac1872a1a9384bd9a17325ce914490c2f68207c917e90e4192702d354e364bf11854b6202f5a04d4124b56bb497d459205fc10d2d04f4de74c85bbf80204ec3f7a6014aa676b26db56e3c6cb98b44902415d5e72401b1475cac1ea95369fc82d258a6c89656e8100541eab6ac68dc9f5c51f3e0e3dc83ba0013d2cc8a9353bceece80ba0bc2fec08278df3d41fc549f91d9d31f57a04629e3eec20e7b20c4be5e8663774f7e2c81af2c5e52414ea8e57d87c0af70b81219663ca435097f998206d4c925b322962311252ca293ebbdae0d3d61aae526729c0e845ef9f171159ff78a7098701004298da5fe972f3067bed677790cfb7756f379e426b8e59a649300bc5435629bc627a6ae0bcb21e8c793defb01299a53f30afba4c6198dc532c96ab29fd289508a409064285bd6177225a4694077c898c4b43e85b1c946fdea6a6480f0c94bdf35a1eb32e146a7c87ea243ce6a5c81ee2315aa3b3d077fdf19245d8b2f7c2298552102f9a1ad0e1b39496f8f82907d1cd0a4ef466a2c3c2c547b09c2ff6ea4c7f801611ffc39115c6940c57a36daf48df6825499d4ecdf105c1207facfa17252fa3a89665c9b041972201c1c9f9444ab140cb7e4f628c3e82b4f0be43d94fafa313bf209238880ca464918caa32b2313431529c164f41772bc0ff2bd145113d09c9bbd6602de2360cf3de8542a3a36e96000000000000000608019af38fb2662acbfca6f6ed7ac12cf95013f3d92cc4e6b58ec2bc2eff6bee1f7c11ba37443d767a2df2d41b044ac14a8f0fd69b26ac231074678fa1d2376c55e43bd9df107e64fe1474ed8921e4f2442071eef8957c1df0e13bf1b13ce2d1717269412e1a36110ca395b0772177d97856b9a75ad0d1a408c230d7b09dec875f14b08fa417c73c01b04916276612c6ff96aa96c1a3ccf75790377a2deaf3173453e05cb948b71d0707694358210459b200fcea63888722b5f3fa50622964c1000000000000000400000000000000160000000000000020b024bd12fb5b07a167bc8a510f274a06946eac1240e823dd682ec71d18e04b4e00000000000000070000000000000001000000000000000100000000000000202fb4453e40918dbaa613572008a878726fe52a9e54f08da115b42685fc956d3a000000000000000100000000000000000000000000000020e23b6bf05f3eca672766d0739d5bf3dab3011348b493488ec347eee33e426af5000000000000000100000000000000000000000000000020ca2651ae04185f43843c08f5f30c0f46b1193b61e65dcd4e30f62221a016ae6d0000000000000001000000000000000100000000000000202d0b87876f7e258bbec0a11dc508a3482e6dfb93a6410a8de151dd3b5add3bf4000000000000000100000000000000000000000000000020e2732ddb16a4cf9185af77bffc17228a0fa31015c9f64ef9dca0a1a0416fbc3e0000000000000001000000000000000100000000000000207a431e3e3b4abc66874409bc00714e84ffdd8b784900a87b7c62a52497fa40c4000000000000000100000000000000010000000000000020564b02dc9ea4ce766caf42be67c77c94a3193983b90074fcc9626e7b3b0da7620000000000000016000000000000002024ecab4264a7ca11ddf74da3c6b431952d97ebadc7a298b33058b4a1049e55130000000000000007000000000000000100000000000000010000000000000020c245b36872f693175f1d7f98cd3c9f231cf0f58caa75b3d42e1e3f39fdfa71910000000000000001000000000000000000000000000000203fe84bfb156427b5936cd53284e4445a81ef61f0e14bd1e92f809749626daad5000000000000000100000000000000000000000000000020b61cd03d9dfe6fb3c56b73664bf3a887ac97c8b695e18ca98e33a57dec654c4b0000000000000001000000000000000100000000000000201278466e8cbd92e4e7b438686c293f5b391cc4fe995abfa1a005dc75a6b16a09000000000000000100000000000000000000000000000020445136d78d9c83ae73aa9acdd9291ed4888decbfa819731715aef70669c530ce000000000000000100000000000000010000000000000020fa2eb5685ece5cfd18e34d460077f97ad7b2a6549d2c95efaf318feb962f55e100000000000000010000000000000001000000000000002023aadd8e1a36f15da7e8100b07038075de004e73d452137cce0d88f4a88f73e600000000000000160000000000000020a41365af29f6d68a8f9cb810801975bee37f2f545a03b00fd71dcd85a31ab62800000000000000070000000000000001000000000000000100000000000000204010d1c07e36db94fd1331fc1250dd13be6b2be8181d44151234ead1aec48c9100000000000000010000000000000000000000000000002064fb1a9c496641bf5b861999e85186c8d075805a816cd10a2545aaaf3e01994f0000000000000001000000000000000000000000000000206a8f5104d11e7b3e01e6875cbcfb9b0eb97545f272c89636145ef020691c600e00000000000000010000000000000001000000000000002068b748d97f911457ff6c5498b3c31970a796555f3674f3c9791d117fd3ba247300000000000000010000000000000000000000000000002007b3c07d554bf2ed91cb74511be622406f0d96282e86e45841e75f0f8cf9c967000000000000000100000000000000010000000000000020feac232e700ad5402a0a3f055aebca1aa41057a0ee81288f8565c3ab5c8072b700000000000000010000000000000001000000000000002053e7aa7c8aa699ed3a317df1592f298a45bfdc9081484fac6beb6221fdbb5d9e000000000000001600000000000000200ccaf3029f851972eba18a90c54baa5816235d6267b94f9178e76a21225faffd0000000000000007000000000000000100000000000000010000000000000020894c6c22eaaad06c0dc46a227b004cff1d7dc2610ba0e9a335612addd3cecfde0000000000000001000000000000000000000000000000202a953903af06f270d32e8e4af218bb85e43883a02633d4a4e08d69f6ddbc15db000000000000000100000000000000000000000000000020ce9814017271cbbf114db92bdb86048aebb9838e5593412e831f9baa76f92d6e0000000000000001000000000000000100000000000000205f8f7dacbd2209354adaf3e245dd7285007e48081ba2cc14c85b320e1a937c380000000000000001000000000000000000000000000000209196d37033b451668705421851b2152d36d8f4d12895588d4ea54fab64e66ab2000000000000000100000000000000010000000000000020a7e595dbe42af5889549034b5375da6daef72c1878140c69b5b661ee823d74aa00000000000000010000000000000001000000000000002049d9d2b2530fd948bb4c1960cbf29a66de323a356f20afc99067f2e9cace04440000000000000003000000000000001600000000000000201f9195798387e56733a20bac88eca923f2270dfa9aa8a0a12004221ba4ce4f2e000000000000000700000000000000010000000000000001000000000000002094c52923e55f8b8314ccab3416034264924f6f820a0ddd31fe55b2e2b8c9cab60000000000000001000000000000000000000000000000208e3676611617e343c2e8ef9ada1b34fd07e165d24325bfbe5f4a6a673795f02b0000000000000001000000000000000000000000000000208eed51a448eaf0694d50d7c111853d504ed13a9f0b1ac8599ccfd63fb65aeece000000000000000100000000000000010000000000000020e6895e2735bd54ce33b3e726845aedcc498cb11eb024bbf4dcd0d26b2c75ad1e000000000000000100000000000000000000000000000020489263335940a50fcb8ff3c77653b9b3ada3a5a51f98afd486c1e55ac2bedfca000000000000000100000000000000010000000000000020491b69ac2c67b834da29dfadb05a73e2f7889fda98ed303b77a6ff5afd184aec0000000000000001000000000000000100000000000000205d3e60ca6a503bdd60dccbddd89b8152ceead0433f1221ee21e77c7d13217778000000000000001600000000000000208c897d221abae8ec32b4a639cf9806f4f3eacf79109a952ea509910e13c33b2e0000000000000006000000000000000100000000000000010000000000000020b7b4bee513005b6e7995735960ff289f7d7c991e2355729949df0ee43b7c27420000000000000001000000000000000000000000000000209b0281c000acdf33601f59d741108254ae66ebd61bca7796adf2c1172a5e5ca700000000000000010000000000000000000000000000002088e91496d93724763df3bfd5c1886efb523f7acac5efbea0d5ab641bfbce56bf0000000000000001000000000000000100000000000000203cad19af37337a5edf4cf8c32bde9f5c65a23c8fe87396b5cca30f5261301ace00000000000000010000000000000000000000000000002007d12c88475896ea9b717c866bb09b09e850a8d17b691309fae736f79a3b80f10000000000000001000000000000000100000000000000207bbfbf07094a5794ef5690fd624e29cb5670e51968b3cf1aa844a65e2ad3a8e100000000000000160000000000000020ec8902ba156ed5799729cc3d673fed6a190dc770d43ee980dd79a754e0e5cfc80000000000000005000000000000000100000000000000010000000000000020c66b14cc7be460f04d5ce7d5b8e0fe09f428eec72f23d8ac1f261ab1848666410000000000000001000000000000000000000000000000206dbd8a99c9a55d2cf9929e5c1c0e6d1dc9e17887abbee887cedaee24b2bb46ae00000000000000010000000000000000000000000000002041e0f9040ce63196257e3daa913ecff5955fb5a025952b8a59b628aa48cecec600000000000000010000000000000001000000000000002073ae36d056dfa3b3a48bae43d1168e1ce15af21a67d3754893bd62e2caea755e00000000000000010000000000000000000000000000002027fc20e83735c9fe57e877febc500fefd7bf3754d7f6f7408d4560fbf6add347000000000000000249b448762eb03f2c845bd92cbfc38b9058cbd3c092962a0d06c218e5480a2bec29b15c64d1e5d5dbfca830ce323f4565d7c1b14176b1f1043ace05b97a5122ac \ No newline at end of file diff --git a/contracts/zkllvm/circuit3/commitment.sol b/contracts/zkllvm/circuit3/commitment.sol index e675f27..e10252b 100644 --- a/contracts/zkllvm/circuit3/commitment.sol +++ b/contracts/zkllvm/circuit3/commitment.sol @@ -587,7 +587,6 @@ library modular_commitment_scheme_circuit3 { unchecked{i++;} } - console.log("EVALUATION PROOF verified"); return true; } } diff --git a/contracts/zkllvm/circuit3/modular_verifier.sol b/contracts/zkllvm/circuit3/modular_verifier.sol index 841912b..1b81275 100644 --- a/contracts/zkllvm/circuit3/modular_verifier.sol +++ b/contracts/zkllvm/circuit3/modular_verifier.sol @@ -55,7 +55,6 @@ contract modular_verifier_circuit3 is IModularVerifier{ address gate_argument_address, address commitment_contract_address ) public{ - console.log("Initialize"); types.transcript_data memory tr_state; transcript.init_transcript(tr_state, hex""); transcript.update_transcript_b32(tr_state, vk1); @@ -77,28 +76,77 @@ contract modular_verifier_circuit3 is IModularVerifier{ uint256 Z_at_xi; uint256 l0; uint256[f_parts] F; + uint256 gas; + bool b; + } + + // Public input columns + function public_input_direct(bytes calldata blob, uint256[] calldata public_input, verifier_state memory state) internal view + returns (bool check){ + check = true; + + uint256 result = 0; + uint256 Omega = 1; + + for(uint256 i = 0; i < public_input.length;){ + if( public_input[i] != 0){ + uint256 L = mulmod( + Omega, + field.inverse_static( + addmod(state.xi, modulus - Omega, modulus), + modulus + ), + modulus + ); + + result = addmod( + result, + mulmod( + public_input[i], L, modulus + ), + modulus + ); + } + Omega = mulmod(Omega, omega, modulus); + unchecked{i++;} + } + result = mulmod( + result, addmod(field.pow_small(state.xi, rows_amount, modulus), modulus - 1, modulus), modulus + ); + result = mulmod(result, field.inverse_static(rows_amount, modulus), modulus); + + // Input is proof_map.eval_proof_combined_value_offset + if( result != basic_marshalling.get_uint256_be( + blob, 18333047875794663362 + )) check = false; } function verify( - bytes calldata blob + bytes calldata blob, + uint256[] calldata public_input ) public view{ verifier_state memory state; - uint256 gas = gasleft(); - uint256 xi = basic_marshalling.get_uint256_be(blob, 0xa1); - state.Z_at_xi = addmod(field.pow_small(xi, rows_amount, modulus), modulus-1, modulus); + state.b = true; + state.gas = gasleft(); + state.xi = basic_marshalling.get_uint256_be(blob, 0xa1); + state.Z_at_xi = addmod(field.pow_small(state.xi, rows_amount, modulus), modulus-1, modulus); state.l0 = mulmod( state.Z_at_xi, - field.inverse_static(mulmod(addmod(xi, modulus - 1, modulus), rows_amount, modulus), modulus), + field.inverse_static(mulmod(addmod(state.xi, modulus - 1, modulus), rows_amount, modulus), modulus), modulus ); - //0. Check proof size - // No direct public input + //0. Direct public input check + if(public_input.length > 0) { + if (!public_input_direct(blob[905:905+672], public_input, state)) { + console.log("Wrong public input!"); + state.b = false; + } + } //1. Init transcript types.transcript_data memory tr_state; tr_state.current_challenge = transcript_state; - // TODO: Just do something with it { //2. Push variable_values commitment to transcript @@ -158,7 +206,6 @@ contract modular_verifier_circuit3 is IModularVerifier{ transcript.update_transcript_b32_by_offset_calldata(tr_state, blob, 0x59); } - bool b = true; //8. Commitment scheme verify_eval { // ICommitmentScheme commitment_scheme = ICommitmentScheme(_commitment_contract_address); @@ -169,10 +216,10 @@ contract modular_verifier_circuit3 is IModularVerifier{ unchecked{i++;} } if(!modular_commitment_scheme_circuit3.verify_eval( - blob[z_offset - 0x8:], commitments, xi, tr_state.current_challenge + blob[z_offset - 0x8:], commitments, state.xi, tr_state.current_challenge )) { console.log("Error from commitment scheme!"); - b = false; + state.b = false; } } @@ -191,12 +238,12 @@ contract modular_verifier_circuit3 is IModularVerifier{ } if( F_consolidated != mulmod(T_consolidated, state.Z_at_xi, modulus) ) { console.log("Error. Table does't satisfy constraint system"); - b = false; + state.b = false; } - if(b) console.log("SUCCESS!"); else console.log("FAILURE!"); + if(state.b) console.log("SUCCESS!"); else console.log("FAILURE!"); } - console.log("Gas for verification:", gas-gasleft()); + console.log("Gas for verification:", state.gas-gasleft()); } } \ No newline at end of file diff --git a/contracts/zkllvm/circuit4/commitment.sol b/contracts/zkllvm/circuit4/commitment.sol index e5a9bd5..0273f8d 100644 --- a/contracts/zkllvm/circuit4/commitment.sol +++ b/contracts/zkllvm/circuit4/commitment.sol @@ -587,7 +587,6 @@ library modular_commitment_scheme_circuit4 { unchecked{i++;} } - console.log("EVALUATION PROOF verified"); return true; } } diff --git a/contracts/zkllvm/circuit4/modular_verifier.sol b/contracts/zkllvm/circuit4/modular_verifier.sol index 6274de7..0a1cfcd 100644 --- a/contracts/zkllvm/circuit4/modular_verifier.sol +++ b/contracts/zkllvm/circuit4/modular_verifier.sol @@ -55,7 +55,6 @@ contract modular_verifier_circuit4 is IModularVerifier{ address gate_argument_address, address commitment_contract_address ) public{ - console.log("Initialize"); types.transcript_data memory tr_state; transcript.init_transcript(tr_state, hex""); transcript.update_transcript_b32(tr_state, vk1); @@ -77,28 +76,77 @@ contract modular_verifier_circuit4 is IModularVerifier{ uint256 Z_at_xi; uint256 l0; uint256[f_parts] F; + uint256 gas; + bool b; + } + + // Public input columns + function public_input_direct(bytes calldata blob, uint256[] calldata public_input, verifier_state memory state) internal view + returns (bool check){ + check = true; + + uint256 result = 0; + uint256 Omega = 1; + + for(uint256 i = 0; i < public_input.length;){ + if( public_input[i] != 0){ + uint256 L = mulmod( + Omega, + field.inverse_static( + addmod(state.xi, modulus - Omega, modulus), + modulus + ), + modulus + ); + + result = addmod( + result, + mulmod( + public_input[i], L, modulus + ), + modulus + ); + } + Omega = mulmod(Omega, omega, modulus); + unchecked{i++;} + } + result = mulmod( + result, addmod(field.pow_small(state.xi, rows_amount, modulus), modulus - 1, modulus), modulus + ); + result = mulmod(result, field.inverse_static(rows_amount, modulus), modulus); + + // Input is proof_map.eval_proof_combined_value_offset + if( result != basic_marshalling.get_uint256_be( + blob, 5903466939373624969 + )) check = false; } function verify( - bytes calldata blob + bytes calldata blob, + uint256[] calldata public_input ) public view{ verifier_state memory state; - uint256 gas = gasleft(); - uint256 xi = basic_marshalling.get_uint256_be(blob, 0xa1); - state.Z_at_xi = addmod(field.pow_small(xi, rows_amount, modulus), modulus-1, modulus); + state.b = true; + state.gas = gasleft(); + state.xi = basic_marshalling.get_uint256_be(blob, 0xa1); + state.Z_at_xi = addmod(field.pow_small(state.xi, rows_amount, modulus), modulus-1, modulus); state.l0 = mulmod( state.Z_at_xi, - field.inverse_static(mulmod(addmod(xi, modulus - 1, modulus), rows_amount, modulus), modulus), + field.inverse_static(mulmod(addmod(state.xi, modulus - 1, modulus), rows_amount, modulus), modulus), modulus ); - //0. Check proof size - // No direct public input + //0. Direct public input check + if(public_input.length > 0) { + if (!public_input_direct(blob[905:905+736], public_input, state)) { + console.log("Wrong public input!"); + state.b = false; + } + } //1. Init transcript types.transcript_data memory tr_state; tr_state.current_challenge = transcript_state; - // TODO: Just do something with it { //2. Push variable_values commitment to transcript @@ -158,7 +206,6 @@ contract modular_verifier_circuit4 is IModularVerifier{ transcript.update_transcript_b32_by_offset_calldata(tr_state, blob, 0x59); } - bool b = true; //8. Commitment scheme verify_eval { // ICommitmentScheme commitment_scheme = ICommitmentScheme(_commitment_contract_address); @@ -169,10 +216,10 @@ contract modular_verifier_circuit4 is IModularVerifier{ unchecked{i++;} } if(!modular_commitment_scheme_circuit4.verify_eval( - blob[z_offset - 0x8:], commitments, xi, tr_state.current_challenge + blob[z_offset - 0x8:], commitments, state.xi, tr_state.current_challenge )) { console.log("Error from commitment scheme!"); - b = false; + state.b = false; } } @@ -191,12 +238,12 @@ contract modular_verifier_circuit4 is IModularVerifier{ } if( F_consolidated != mulmod(T_consolidated, state.Z_at_xi, modulus) ) { console.log("Error. Table does't satisfy constraint system"); - b = false; + state.b = false; } - if(b) console.log("SUCCESS!"); else console.log("FAILURE!"); + if(state.b) console.log("SUCCESS!"); else console.log("FAILURE!"); } - console.log("Gas for verification:", gas-gasleft()); + console.log("Gas for verification:", state.gas-gasleft()); } } \ No newline at end of file diff --git a/contracts/zkllvm/circuit6/commitment.sol b/contracts/zkllvm/circuit6/commitment.sol index 15e4f23..100e30a 100644 --- a/contracts/zkllvm/circuit6/commitment.sol +++ b/contracts/zkllvm/circuit6/commitment.sol @@ -590,7 +590,6 @@ library modular_commitment_scheme_circuit6 { unchecked{i++;} } - console.log("EVALUATION PROOF verified"); return true; } } diff --git a/contracts/zkllvm/circuit6/modular_verifier.sol b/contracts/zkllvm/circuit6/modular_verifier.sol index 9f5b9e6..16911a8 100644 --- a/contracts/zkllvm/circuit6/modular_verifier.sol +++ b/contracts/zkllvm/circuit6/modular_verifier.sol @@ -55,7 +55,6 @@ contract modular_verifier_circuit6 is IModularVerifier{ address gate_argument_address, address commitment_contract_address ) public{ - console.log("Initialize"); types.transcript_data memory tr_state; transcript.init_transcript(tr_state, hex""); transcript.update_transcript_b32(tr_state, vk1); @@ -77,28 +76,77 @@ contract modular_verifier_circuit6 is IModularVerifier{ uint256 Z_at_xi; uint256 l0; uint256[f_parts] F; + uint256 gas; + bool b; + } + + // Public input columns + function public_input_direct(bytes calldata blob, uint256[] calldata public_input, verifier_state memory state) internal view + returns (bool check){ + check = true; + + uint256 result = 0; + uint256 Omega = 1; + + for(uint256 i = 0; i < public_input.length;){ + if( public_input[i] != 0){ + uint256 L = mulmod( + Omega, + field.inverse_static( + addmod(state.xi, modulus - Omega, modulus), + modulus + ), + modulus + ); + + result = addmod( + result, + mulmod( + public_input[i], L, modulus + ), + modulus + ); + } + Omega = mulmod(Omega, omega, modulus); + unchecked{i++;} + } + result = mulmod( + result, addmod(field.pow_small(state.xi, rows_amount, modulus), modulus - 1, modulus), modulus + ); + result = mulmod(result, field.inverse_static(rows_amount, modulus), modulus); + + // Input is proof_map.eval_proof_combined_value_offset + if( result != basic_marshalling.get_uint256_be( + blob, 6334575803019471875 + )) check = false; } function verify( - bytes calldata blob + bytes calldata blob, + uint256[] calldata public_input ) public view{ verifier_state memory state; - uint256 gas = gasleft(); - uint256 xi = basic_marshalling.get_uint256_be(blob, 0xa1); - state.Z_at_xi = addmod(field.pow_small(xi, rows_amount, modulus), modulus-1, modulus); + state.b = true; + state.gas = gasleft(); + state.xi = basic_marshalling.get_uint256_be(blob, 0xa1); + state.Z_at_xi = addmod(field.pow_small(state.xi, rows_amount, modulus), modulus-1, modulus); state.l0 = mulmod( state.Z_at_xi, - field.inverse_static(mulmod(addmod(xi, modulus - 1, modulus), rows_amount, modulus), modulus), + field.inverse_static(mulmod(addmod(state.xi, modulus - 1, modulus), rows_amount, modulus), modulus), modulus ); - //0. Check proof size - // No direct public input + //0. Direct public input check + if(public_input.length > 0) { + if (!public_input_direct(blob[905:905+736], public_input, state)) { + console.log("Wrong public input!"); + state.b = false; + } + } //1. Init transcript types.transcript_data memory tr_state; tr_state.current_challenge = transcript_state; - // TODO: Just do something with it { //2. Push variable_values commitment to transcript @@ -158,7 +206,6 @@ contract modular_verifier_circuit6 is IModularVerifier{ transcript.update_transcript_b32_by_offset_calldata(tr_state, blob, 0x59); } - bool b = true; //8. Commitment scheme verify_eval { // ICommitmentScheme commitment_scheme = ICommitmentScheme(_commitment_contract_address); @@ -169,10 +216,10 @@ contract modular_verifier_circuit6 is IModularVerifier{ unchecked{i++;} } if(!modular_commitment_scheme_circuit6.verify_eval( - blob[z_offset - 0x8:], commitments, xi, tr_state.current_challenge + blob[z_offset - 0x8:], commitments, state.xi, tr_state.current_challenge )) { console.log("Error from commitment scheme!"); - b = false; + state.b = false; } } @@ -191,12 +238,12 @@ contract modular_verifier_circuit6 is IModularVerifier{ } if( F_consolidated != mulmod(T_consolidated, state.Z_at_xi, modulus) ) { console.log("Error. Table does't satisfy constraint system"); - b = false; + state.b = false; } - if(b) console.log("SUCCESS!"); else console.log("FAILURE!"); + if(state.b) console.log("SUCCESS!"); else console.log("FAILURE!"); } - console.log("Gas for verification:", gas-gasleft()); + console.log("Gas for verification:", state.gas-gasleft()); } } \ No newline at end of file diff --git a/tasks/modular-test.ts b/tasks/modular-test.ts index 17a19a9..a07b813 100644 --- a/tasks/modular-test.ts +++ b/tasks/modular-test.ts @@ -20,6 +20,157 @@ function loadProof(proof_path){ } +function getFileContents(filePath) { + return fs.readFileSync(filePath, 'utf8'); +} + +function loadParamsFromFile(jsonFile) { + let named_params: any = {}; + named_params = losslessJSON.parse(fs.readFileSync(jsonFile, 'utf8')); + let params: { [key: string]: any } = {}; + params['init_params'] = []; + params['init_params'].push(BigInt(named_params.modulus)); + params['init_params'].push(BigInt(named_params.r)); + params['init_params'].push(BigInt(named_params.max_degree)); + params['init_params'].push(BigInt(named_params.lambda)); + params['init_params'].push(BigInt(named_params.rows_amount)); + params['init_params'].push(BigInt(named_params.omega)); + params['init_params'].push(BigInt(named_params.D_omegas.length)); + for (let i in named_params.D_omegas) { + params['init_params'].push(BigInt(named_params.D_omegas[i])) + } + params['init_params'].push(BigInt(named_params.step_list.length)); + for (let i in named_params.step_list) { + params['init_params'].push(BigInt(named_params.step_list[i].value)) + } + params['init_params'].push(BigInt(named_params.arithmetization_params.length)); + for (let i in named_params.arithmetization_params) { + params['init_params'].push(BigInt(named_params.arithmetization_params[i].value)) + } + + params['columns_rotations'] = []; + for (let i in named_params.columns_rotations) { + let r : any = []; + for (let j in named_params.columns_rotations[i]) { + r.push(BigInt(named_params.columns_rotations[i][j].value)); + } + params['columns_rotations'].push(r); + } + return params; +} + +function loadFieldElement(element){ + let result = []; + if( element.isLosslessNumber ){ + result.push(BigInt(element)); + } else if ( typeof(element) == 'string' ){ + result.push(BigInt(element)); + } else { + for(let i in element){ + let e = loadFieldElement(element[i]); + for(let j in e) result.push(e[j]); + } + } + return result; +} + +function loadCurveElement(element){ + let result = []; + if( element.isLosslessNumber ){ + result.push(BigInt(element)); + } else if ( typeof(element) == 'string' ){ + result.push(BigInt(element)); + } else { + for(let i in element){ + let e = loadFieldElement(element[i]); + for(let j in e) result.push(e[j]); + } + } + return result; +} + +function loadIntegerElement(public_input){ + let modulus = BigInt(28948022309329048855892746252171976963363056481941560715954676764349967630337); + + let result = []; + let i = parseInt(public_input); + if( i < 0 ) { + result.push(modulus - BigInt(i)); + } else { + result.push(BigInt(i)); + } + return result; +} + +function loadStringElement(public_input){ + let modulus = BigInt(28948022309329048855892746252171976963363056481941560715954676764349967630337); + + let result = []; + for(let i in public_input){ + let c = public_input.charCodeAt(i); + result.push(BigInt(c)); + } + return result; +} + + +function loadArray(public_input){ + let result = []; + + for(let i in public_input){ + let e = loadFieldElement(public_input[i]); + for(let j in e) result.push(e[j]); + } + return result; +} + +function loadVector(public_input){ + let result = []; + + for(let i in public_input){ + let e = loadFieldElement(public_input[i]); + for(let j in e) { + result.push(e[j]); + } + } + return result; +} + +function loadPublicInput(public_input_path){ + public_input_path = path.resolve(__dirname, public_input_path) + if(fs.existsSync(public_input_path)){ + let public_input = losslessJSON.parse(fs.readFileSync(public_input_path, 'utf8')); + let result = []; + for(let i in public_input){ + let field = public_input[i]; + for(let k in field){ + let element; + if( k == 'field' ){ + element = loadFieldElement(field[k]); + } + if( k == 'curve' ){ + element = loadCurveElement(field[k]); + } + if( k == 'int' ){ + element = loadIntegerElement(field[k]); + } + if( k == 'string' ){ + element = loadStringElement(field[k]); + } + if( k == 'array'){ + element = loadArray(field[k]); + } + if( k == 'vector'){ + element = loadVector(field[k]); + } + for(let e in element) result.push(element[e]); + } + } + return result; + } else + return []; +} + task("verify-circuit-proof-all") .setAction(async (hre) => { console.log("Verify proof in modular style"); @@ -47,7 +198,8 @@ task("verify-circuit-proof-all") let proof_path = folder_path + "/proof.bin"; console.log("Verify :",proof_path); let proof = loadProof(proof_path); - await verifier_contract.verify(proof, {gasLimit: 30_500_000}); + let public_input = loadPublicInput(folder_path + "/input.json"); + await verifier_contract.verify(proof, public_input, {gasLimit: 30_500_000}); console.log("===================================="); // proof_path = folder_path + "/proof2.bin"; @@ -83,7 +235,9 @@ task("verify-circuit-proof") let proof_path = folder_path + "/proof.bin"; console.log("Verify :",proof_path); let proof = loadProof(proof_path); - await verifier_contract.verify(proof, {gasLimit: 30_500_000}); + let public_input = loadPublicInput(folder_path + "/input.json"); + console.log(public_input); + await verifier_contract.verify(proof, public_input, {gasLimit: 30_500_000}); console.log("===================================="); // proof_path = folder_path + "/proof2.bin"; From 919b70512e018448ab1ff4d27bafa3e965eb97a5 Mon Sep 17 00:00:00 2001 From: "e.tatuzova" Date: Tue, 3 Oct 2023 08:57:30 +0400 Subject: [PATCH 06/10] console.log removed #74 --- tasks/modular-test.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/tasks/modular-test.ts b/tasks/modular-test.ts index a07b813..c3949f4 100644 --- a/tasks/modular-test.ts +++ b/tasks/modular-test.ts @@ -236,7 +236,6 @@ task("verify-circuit-proof") console.log("Verify :",proof_path); let proof = loadProof(proof_path); let public_input = loadPublicInput(folder_path + "/input.json"); - console.log(public_input); await verifier_contract.verify(proof, public_input, {gasLimit: 30_500_000}); console.log("===================================="); From 4758b8c9a7bba6ac193e0454b78867c906229858 Mon Sep 17 00:00:00 2001 From: "e.tatuzova" Date: Wed, 4 Oct 2023 00:27:57 +0400 Subject: [PATCH 07/10] New examples with public input gate #74 --- contracts/zkllvm/circuit1/commitment.sol | 2 +- .../zkllvm/circuit1/modular_verifier.sol | 29 +++--- contracts/zkllvm/circuit1/proof.bin | 2 +- contracts/zkllvm/circuit2/commitment.sol | 2 +- .../zkllvm/circuit2/modular_verifier.sol | 29 +++--- contracts/zkllvm/circuit2/proof.bin | 2 +- contracts/zkllvm/circuit3/commitment.sol | 2 +- contracts/zkllvm/circuit3/input.json | 4 + .../zkllvm/circuit3/modular_verifier.sol | 96 +++++++++---------- contracts/zkllvm/circuit3/params.json | 2 +- contracts/zkllvm/circuit3/proof.bin | 2 +- .../zkllvm/circuit4/modular_verifier.sol | 29 +++--- contracts/zkllvm/circuit4/proof.bin | 2 +- .../zkllvm/circuit6/modular_verifier.sol | 29 +++--- contracts/zkllvm/circuit6/proof.bin | 2 +- 15 files changed, 113 insertions(+), 121 deletions(-) create mode 100644 contracts/zkllvm/circuit3/input.json diff --git a/contracts/zkllvm/circuit1/commitment.sol b/contracts/zkllvm/circuit1/commitment.sol index e4b4e32..a8ce01a 100644 --- a/contracts/zkllvm/circuit1/commitment.sol +++ b/contracts/zkllvm/circuit1/commitment.sol @@ -37,7 +37,7 @@ library modular_commitment_scheme_circuit1 { uint256 constant unique_points = 4; uint256 constant permutation_point = 2; uint256 constant quotient_point = 0; - uint256 constant lookup_point = 94196926262688; + uint256 constant lookup_point = 94325795984320; bytes constant points_ids = hex"01010101010101010303010100000000"; uint256 constant omega = 14450201850503471296781915119640920297985789873634237091629829669980153907901; uint256 constant _etha = 14062721881273474090606415031361994540585550571695842571456013353340629726555; diff --git a/contracts/zkllvm/circuit1/modular_verifier.sol b/contracts/zkllvm/circuit1/modular_verifier.sol index 3c79439..4d23268 100644 --- a/contracts/zkllvm/circuit1/modular_verifier.sol +++ b/contracts/zkllvm/circuit1/modular_verifier.sol @@ -39,8 +39,8 @@ contract modular_verifier_circuit1 is IModularVerifier{ address _permutation_argument_address; address _lookup_argument_address; address _commitment_contract_address; - uint64 constant sorted_columns = 0; - uint64 constant f_parts = 8; // Individually on parts + uint64 constant sorted_columns = 0; + uint64 constant f_parts = 9; uint64 constant z_offset = 0xa1; uint64 constant table_offset = z_offset + 0x80 * 4 + 0xc0; uint64 constant table_end_offset = table_offset + 256; @@ -48,6 +48,8 @@ contract modular_verifier_circuit1 is IModularVerifier{ uint64 constant rows_amount = 16; uint256 constant omega = 14450201850503471296781915119640920297985789873634237091629829669980153907901; uint256 constant special_selectors_offset = z_offset + 4 * 0x80; + + function initialize( // address permutation_argument_address, @@ -80,8 +82,7 @@ contract modular_verifier_circuit1 is IModularVerifier{ bool b; } - // Public input columns - function public_input_direct(bytes calldata blob, uint256[] calldata public_input, verifier_state memory state) internal view +function public_input_direct(bytes calldata blob, uint256[] calldata public_input, verifier_state memory state) internal view returns (bool check){ check = true; @@ -110,16 +111,12 @@ contract modular_verifier_circuit1 is IModularVerifier{ Omega = mulmod(Omega, omega, modulus); unchecked{i++;} } - result = mulmod( - result, addmod(field.pow_small(state.xi, rows_amount, modulus), modulus - 1, modulus), modulus - ); - result = mulmod(result, field.inverse_static(rows_amount, modulus), modulus); + result = mulmod(result, state.Z_at_xi, modulus); // Input is proof_map.eval_proof_combined_value_offset - if( result != basic_marshalling.get_uint256_be( - blob, 224 - )) check = false; + if( result != mulmod(basic_marshalling.get_uint256_be(blob, 224), rows_amount, modulus)) check = false; } + function verify( bytes calldata blob, @@ -136,13 +133,15 @@ contract modular_verifier_circuit1 is IModularVerifier{ modulus ); - //0. Direct public input check + + //Direct public input check if(public_input.length > 0) { if (!public_input_direct(blob[865:865+320], public_input, state)) { console.log("Wrong public input!"); state.b = false; } } + //1. Init transcript types.transcript_data memory tr_state; @@ -174,14 +173,12 @@ contract modular_verifier_circuit1 is IModularVerifier{ IGateArgument modular_gate_argument = IGateArgument(_gate_argument_address); state.F[7] = modular_gate_argument.verify(blob[table_offset:table_end_offset], transcript.get_field_challenge(tr_state, modulus)); } - - // No public input gate - + //No public input gate uint256 F_consolidated; { //7. Push quotient to transcript for( uint8 i = 0; i < f_parts;){ - F_consolidated = addmod(F_consolidated, mulmod(state.F[i],transcript.get_field_challenge(tr_state, modulus), modulus), modulus); + F_consolidated = addmod(F_consolidated, mulmod(state.F[i], transcript.get_field_challenge(tr_state, modulus), modulus), modulus); unchecked{i++;} } uint256 points_num = basic_marshalling.get_length(blob, 0x79 + 0x20); diff --git a/contracts/zkllvm/circuit1/proof.bin b/contracts/zkllvm/circuit1/proof.bin index 67dc834..c16ff44 100644 --- a/contracts/zkllvm/circuit1/proof.bin +++ b/contracts/zkllvm/circuit1/proof.bin @@ -1 +1 @@ -0x03000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b000000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d22591a13b2634c593195c4e7a7becf9aaa9d72bb81ee43264a34e309f9cc9a3c000000000000002222591a13b2634c593195c4e7a7becf9aaa9d72bb81ee43264a34e309f9cc9a3c1f1737f0f9693494b37fd517f70fe4d844c0e4dd11e9df8639a0be9abfccb55b2bbd82627bf07dbdf7ecd88646ba0e0510860bb1770d5d8840ae0d57e0ff032a1b7417b4df0e06e7817f2977d34f78391337465946f76b67edc9572bbeff8ac51ab38bec6bb274b5d7a03a9f61a24618ebca6f83375be85677deaff064fb0fcf094476885b462285877bcf57208d591d1b872dc6503b26d072945200bafdb5d70581bb9e1a7c478d3621251ce82b5e7c5666fb980231977924ff0dd7f8e74f092e5650a9c85eac9ba56b0cb3a2c2bd9189a3e4df9127c2123ce59a03a6f48d3322591a13b2634c593195c4e7a7becf9aaa9d72bb81ee43264a34e309f9cc9a3c1f1737f0f9693494b37fd517f70fe4d844c0e4dd11e9df8639a0be9abfccb55b2bbd82627bf07dbdf7ecd88646ba0e0510860bb1770d5d8840ae0d57e0ff032a1b7417b4df0e06e7817f2977d34f78391337465946f76b67edc9572bbeff8ac51ab38bec6bb274b5d7a03a9f61a24618ebca6f83375be85677deaff064fb0fcf094476885b462285877bcf57208d591d1b872dc6503b26d072945200bafdb5d70581bb9e1a7c478d3621251ce82b5e7c5666fb980231977924ff0dd7f8e74f092e5650a9c85eac9ba56b0cb3a2c2bd9189a3e4df9127c2123ce59a03a6f48d3305bf63ee04ca229f16d7d048df1fceef0191e4b0ae657a58aa02d2e8f7fe6499083d4ed2bc911eaee116f03f01b1ee4f037277f2bf2aca578b7634846e44cc2d0f3114c664f481e6028c47f122b53b12f6aa455ea26f54aad80ad778950b217724518ce536e84397b89379bded2ee2795702f6a0bf8f1193ed9f7893377ad03f145574c4841d565fa94a754cf77007a092f89f8d7fb08b5d4de240f47021727d2acd90c58b8637d005a76e69a474de1cc5f432a41724e855b2a0b19b71a521503c29bf7605ad30c0b3fcd6c62a163a5f6c4559ee2a6097e48e1270376dfb722a277b3d077e65208b010bc2f62957e87b900bd1f007ef61acf14649463be06cbb2bc64f8d626ea95190a65f9b55fc3537ea3cd0e1198bb8b5e88b6cf958fd20f7308efe88baf9b3bc3787b68d279234d783ef3e4064de84b20dc2a1d72eb2e0e305eceacfecfb11863bb4ff60386332fafba876d85d20c8414b91cead2a126d8b25ec650a8599804cd5d799c11929836be9542a6f55e2438e68e69ab7006827c223b79d472d2bafc594bc6bbd69b64d807c3baed0be76a7ee650f6c47b18122fe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013abd2a0cacd5c41b3b38371d29ab930af8937c502201543799c506f91b9ee9ce0d68f8b6f4ac966c198deef6fcc65738476698c756cb28a7568568fd40b6a6ef0000000000000008000c010402010302000000000000001302020202020202020303020201010101020101000000000000000300000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d4000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb716000000000000000301010100000000000005f03d02ddf8a637ca4243b1ba4392d93f3373120e47f4e9f01d5b996fb1bc75a83c02fd220759c835bdbc4e45bc6d26c0ccaf348ab4146308fe3d93c13b438a57c5310e55db3f16f34b5278a351de3e3c00b63fe377a35dcc24654a6ac4ae4c49280ef1aa24c0e90cb4ad875cae21c1c3ff6c06b58465ef2cf733e2c62851b3b6d93547ad483b72c0789c5b309957372c03286ba66214ee11632eec8310677d6dc50ab852b7c48d3f8763a4cf66a8c8d3fcf9daf299f45ee7b86a40addc9882923c0a666269293dc25b0dc7f2feb413dc0f40ffdbfa4372728185e9cb9e057324d535999d96d6c23da4f2380d014bec23f0e146bd01c5da869a1343654efa8cdb2c3d02ddf8a637ca4243b1ba4392d93f3373120e47f4e9f01d5b996fb1bc75a83c02fd220759c835bdbc4e45bc6d26c0ccaf348ab4146308fe3d93c13b438a57c5310e55db3f16f34b5278a351de3e3c00b63fe377a35dcc24654a6ac4ae4c49280ef1aa24c0e90cb4ad875cae21c1c3ff6c06b58465ef2cf733e2c62851b3b6d93547ad483b72c0789c5b309957372c03286ba66214ee11632eec8310677d6dc50ab852b7c48d3f8763a4cf66a8c8d3fcf9daf299f45ee7b86a40addc9882923c0a666269293dc25b0dc7f2feb413dc0f40ffdbfa4372728185e9cb9e057324d535999d96d6c23da4f2380d014bec23f0e146bd01c5da869a1343654efa8cdb2c2c760185232808422bd675dc68c88fa2fa25aa541c347b293e6a01b193ad38392b7c15a5c8a5dccaf33e75bd7716ebd06f3bdb7c105e2ab83a46622e41f92b3b1ee90c8ae9c69e2b70674c218703f6f2065f40f80bdced46efce7db166ac33f30111950151fa7564d8e8b7e258acaf8e3ec62061a3f9d8093785f51843bf586f1dd500863b47c729927d55ec3466e39e997a18ffa146c8afb7eec9c7926b99e236d7cc5cd8ae13e83dedd19210a2b3f87b7339deecc20387b6f0568997c22d842213aee59adbd8ed7cc13bc4bf4abeaf91d4ff2a161902cc556dbdb604916c5627bd43a85873b0ed2ff4749e3820e73271962c3e901f50aeba1604d635cd2a493ebeadfc4cf15e57b924f9966a73fa1d5a093a0cbc60c00ed6f07bab5dc868cb1559b6f899672a19cbf38b4e7d121134dc1163006b2331cbbccb16672ec818113c4fe108bd7108f097cffc121a5b6325e0ef58ad8e3b0a7b63691785318f5c6d2bfbb11f6c555a385474f23629d0bb395308de38cca296f07974493d1f999e261ffcfb86c58670343df12d4ec15c1e3301a31a78bb39559c3f0ade715ae469ab27d833df4d3f0dc1602cb240830a149b4778c2660a6f7a8b6155b706a83e338a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000112a029db4b15eeb396bf4c3c0e6464032dba4c9f591cd734ae99c92ebce8745d0e74dc07f2e0c765b53bd5a9e8ccded77ab9d9174e0fa1b05e70778a1c1939f231d75773485996b0c2ebdc0cf4ba8a3ac7075e880e1909ec0278d40e955b1d771ca03ca957085c49630204111031605e2aa78efc08c959ea4cce6e9f3072091616c169e274797228d864580298143fd3be0c935243df13cc5df250b14b6125fd293e961d8b868dd7279ba7fd67ebc02c643a05a9c56de54f3b3ae03bb49eda0431c7116c465f3acc39f5b80cf8653f2293f8479f4a0e69e23c8e628978e5bdf00e38ee93b9a0c533c60a47f3079ac0dd8e4e515cbf3e8f395c9ece63871a421138e3571d5fdc25fd21cc9840d9fa3bac7d059b2856612618634059e85c7cb5ad071ca8e2a023da02de3367bf2605c453a540fdd3b2ebd30335ecd704a3834a541c70b392df4cbdf1a8fef94441e32a5de801a3d98ab1da0b8b8cfdd5ce6f8c5d238f4c6d20b3420e570106bbbe1cd5a23a44f5227e9b1f100da03317319073a416c169e274797228d864580298143fd3be0c935243df13cc5df250b14b6125fd293e961d8b868dd7279ba7fd67ebc02c643a05a9c56de54f3b3ae03bb49eda0431c7116c465f3acc39f5b80cf8653f2293f8479f4a0e69e23c8e628978e5bdf00e38ee93b9a0c533c60a47f3079ac0dd8e4e515cbf3e8f395c9ece63871a421138e3571d5fdc25fd21cc9840d9fa3bac7d059b2856612618634059e85c7cb5ad071ca8e2a023da02de3367bf2605c453a540fdd3b2ebd30335ecd704a3834a541c70b392df4cbdf1a8fef94441e32a5de801a3d98ab1da0b8b8cfdd5ce6f8c5d238f4c6d20b3420e570106bbbe1cd5a23a44f5227e9b1f100da03317319073a421720972c98a8cd0d756d8db65d733de7e8f56990a884b5b1f83b7a9c21ddea134f1d6a76617217fd47de125b89fcae31a188d88d44b7b546abf76f17403ac252c5d6b4a55fb9d9bb3156954d358fc2d90612be02c40cbbd4defe225a1f8e23e06837d50a031adc2572f48a8dae20a09dc2ff7de0c2d1d51a54a145ec8692a4708cdc9b8d79600f86e696e1573f364e7d04fc220f9bb3dfb44fec897edc0907a13bfda527aae4104be5af0aa85ae5cfb758fe27d1962f3257e18fa138eb65f7d29505837b7819ec0b5f5d098a83f16a381e50cfd8f8c52c209b516bc58e1a2b30dfb57270d90d4bb953aa0a67759f44ad3951e24fa08f9846f369d53936ca8ba27910ea1645cacb1dfaae58f6d8e7167914fdc3ae3f15e97299d6c821be412e533b43e56945a584e22aa2f7df9e1b5a4f0304924d37f1e57bda3a12fd6c2b8ef1f791a14b43dab2e951b3ea76fe0ee4abaeab82bd151fa48b10c813ff7ea9ab22522242c33983a0e0432135d328a4eb517ead40bfcd11f54c64268b6497fc9360049d78c67a3116592c9fbcf82aa98536fc54bd881abb1d818cbe6d8050858cd2473e6170c054d6fd99a46830e356ef04a7dcca1bd988a558d00d2f66077f0cf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001301aa39fade16d58537f47ba8f6a59b5967ff19e1fbf0f43e9ec9fbf433081c11f6c2de0e222e4c909710b18ecf8962e678c9284760b56354ad6a35647e52f2c12965408d21b1d637958265ae40ff5de4872065571fb75a95c2277bdcc7261661e9ca8aea4406f93f212a0035980375201b2c041ea85df2326b577c2da7d433e18c9a65e9ae5bab13ad4f62d3fbee56ad22fa0754377246afce74eef4d0133c5273659a1651a454ec52b09d2c0411a955016f886c5d5d4b09c45e1fdb2fecc3c3bf03fd9067ca5762628cee23eba7b15f8a7894e4806bcfb575759bf810602d8040fc026f9835a89d9d7311dc14584ea299f0fadc1463c2041d5d72d7ef9fd292bb13f3d206f3b4ebecc0a6b39a4676d522b4a9742edcc7a4ffffd09851e0e34144ec0c2df90c4b14133f594c65b9892d01b4e64c65f2ca1492d33e37ae1f1cd1a763c31a22c2889b9fc3418203605223404aa0032be1310c4785e68999647012589c3ce5dd3d7764603cbe7dfc9faddee41eefbd68ee60ad4b4d2846669b90018c9a65e9ae5bab13ad4f62d3fbee56ad22fa0754377246afce74eef4d0133c5273659a1651a454ec52b09d2c0411a955016f886c5d5d4b09c45e1fdb2fecc3c3bf03fd9067ca5762628cee23eba7b15f8a7894e4806bcfb575759bf810602d8040fc026f9835a89d9d7311dc14584ea299f0fadc1463c2041d5d72d7ef9fd292bb13f3d206f3b4ebecc0a6b39a4676d522b4a9742edcc7a4ffffd09851e0e34144ec0c2df90c4b14133f594c65b9892d01b4e64c65f2ca1492d33e37ae1f1cd1a763c31a22c2889b9fc3418203605223404aa0032be1310c4785e68999647012589c3ce5dd3d7764603cbe7dfc9faddee41eefbd68ee60ad4b4d2846669b90028757e294665c0dca6fa79f6c97cc362b53a10e5705a3b159473a1e28537762732766736e429404ebb603d3277e6f096a35fe3fd6a63c767ea224998ab5e00122172ec4127f3ba4d5f328aa09aceaa4d3d0b84930004a52b64216c61870a2e121d9ffa93e426196287e6c0a904a96135171c7de4f2786b7b2c3faeeeed997ee90ecd42883420789cb2f166345a48c23b451e9cee7d1c56342aa1684d8b179b1b3a389416324dc28d5a7bb10ab9e42d3b557b28d4ce0b24a2f61bfd2ca111a0342ca101997c7ce95785d4abf611da03ae7f1b69a66a0dc1332162d83404ac2ad038eaff01efd8dabe412bae633e9bd4d5111992530074f5f31c85b12bd88815c9213682e4c8e57340e108697324879b4dd726536a3ff85462f7cf7a54fdfa553108b61c5e1575e5545d68f7b07da3d4b5ff6041eae4809b42d6575f7764a91b7c270400d71a1c871646a98b20bf46ee49058fff268a2d3a169260716c5ae8c0f732678eca6815489a950bd429056ed9257408fe56dbfd0bd4c6e8d34adea48d2724f6d87f5bf8eb08339319ea8004377dc2fd6079c50078cb9a582c54194c2d4a317f881cb05f7a354430401d5999c7836b6ec86f1d64c4dd6f267af8a7fbb77000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010f4884ebcf52b73edaf73a2ef3e1411ad11ca27061cf63cefff861d0b3dbcd200574260e3640941fa2aedc4ce2f5b1d7a280d947c522ddc9d59b8cc54e213f982669a670b41a2c5280f3de9ca59e477b05003f59ea52b4e3cd3ccb825112dc163413d9ed158142cb650e2ddfd77e4088d4f21df55af10af89bbcc1cde3c09d7428193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e11105939417e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e13781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e202a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b6965158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef62bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b28193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e11105939417e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e13781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e202a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b6965158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef62bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033de437650bfe98ec02cf7802101505b5bafdc5235dba1ae2bc0bb0babaeec77000000000000000000000000000000000000000000000000000000000000000008b533ecfd061144a25fc8cb7048305409d63faa91f86a7953364b8c5d1c263500000000000000000000000000000000000000000000000000000000000000003c9377634dc5fad3628cc04b914980af65861bfcc7d40c277ef7069808cb12ac000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011ea2fef64c9f29267bd6951891d97aaa1587256239737c749139b02bd37912830e0a459ae307a012a0648fc4f2b6baeddf0fdf50a03994af3ae9f72e84028ac1282a5c796a9727da30709624c424752a77fb4cdaf3d9be5bce462343205dd07d31f5ba651cf85fed5f9b703b0d4945124336b9ab6913646c5e4339be7bfd754009a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22309a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a2230f4e1eb91a1da31fc0412b600538131b50683612fe68b4da3684951448833410305442f86a318d2c88136575e4619f47ea936ec4b74eb9e62f41abd8689a1b79069905e02e02d8387c19bd3dcbb7baa7d9413faddb8f71dcf9dcb32297f41b6106887301806dbc3e19d032ea7e4059720b2a46eebfabb9612a0461482c62782f36cd476b360228fe65b0b9a7056b4e5a0b5a7377b47d56d368ebb0991693f19b24f22585549da1e68539d3d36cdc2659df7542b929ed878cea75f563d598676c341d97a4dc73a97662e78c57175999c52ca49aa3e01c1d3a1eede011f65dbb3e269424734e1ba68e022a2b54294083a4c0dcafd6e632d35eedbab19307bb11890631317c5c7efcb15bbcd0a4bb3bf5f09795fccc2de9e46551595d83e66f6bcf28782cd9c2e18f2eb6a9858025a548f0fdf03e07daefcbf96540864770399b803a2171f3a17617c9b1eee7e6aa98a744d88de87a4beefdf8e76504e2a295329d15d2a1b50cd98096e86063c746831555dea89af3bdedcf46655d53fb87596f53353e11f58507eb9dc94889fc83e10f893a95fd797c694e825301821fcfd3d1ae3f610ce7aac681806fece8b03418a7f5a478215213a510e45535f92e8f21b3d100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012d46d46b47c6a28c8990c8083c2f12801c7abe4207f5911e9f3339d9f320286d09fac9ce33039b9a030fc433451ec38dbd3934f7c8d84c5b6b048d2dc04827a01aebb2ee5fa00a72b765f1a1d27ca26a66016ce200751d069b38bef73a732ac50f02fd54355e90a7aaa94be565f1a990d104b1ba23cb7a50bdc5b24fbe2f8cf1269e6cd37938f2d8bce4aeaeb0f5b1713b751300ab9a20ad6c26c541de8510591961932c86c70d27431b51514f0a4e8ee6d185fb5db2d86e2d066bab217aefa8011820215e1cbe3bb077696974cc7735c275940f3e1bb810513a4782589951ba3ee7dfdea1e341c44f8896968b3388ca5fd104eccb31410b47f2e96aa766ae470578a0a6d68fb72a72550f0f47fe540ccc4be44c368a98519623658bbafe98a23a875f59297048d58daaf0f0b801abf355fab4afd2c260ca0309cb614501675f1b5b234230ce93d43ba94b4c67f7a43ffd7b757d10b4f997eeb0fbbaa6f8fb2a24a4dcbdcf316c2bc456b4b398085bc024cb237ef897ff83aa7c3532590704d7269e6cd37938f2d8bce4aeaeb0f5b1713b751300ab9a20ad6c26c541de8510591961932c86c70d27431b51514f0a4e8ee6d185fb5db2d86e2d066bab217aefa8011820215e1cbe3bb077696974cc7735c275940f3e1bb810513a4782589951ba3ee7dfdea1e341c44f8896968b3388ca5fd104eccb31410b47f2e96aa766ae470578a0a6d68fb72a72550f0f47fe540ccc4be44c368a98519623658bbafe98a23a875f59297048d58daaf0f0b801abf355fab4afd2c260ca0309cb614501675f1b5b234230ce93d43ba94b4c67f7a43ffd7b757d10b4f997eeb0fbbaa6f8fb2a24a4dcbdcf316c2bc456b4b398085bc024cb237ef897ff83aa7c3532590704d72256a7084415371e03a09af0c5e9eaef22518cb5c24cc2f8985c7adc3ba2275d23e05acac8a61cb993ec659c0d776d653174f6fb40fe18fe66557cc5aef96e891d346632101230652aed2e08b58ff02fb85157667fbd12938e868e28895fa9a007bac4c07890e1569b02f52c0b753f5d714001955f6fccc2da327d9f914ca22104371e0860c4a6721f59ff5befb1777b7a1f05f519d1b74b388c5ddefcf9939506b63c5784298261fdbcd42f0eaca7b5553714b0d469db00708bf2789107b57b3e2aefb3fdc36a87911a687680f69e292b5a7586b5396fea7aa6d6029b271a8c11c1adfd13df51e88b6d12f4c8b0f50a84ed479ac4e13d93ba2a32c692cd946533f0579fde0f34c6e16b75f5ce232f41531279794b06d084ea4344c4b8c212560f7703060bb5570f74d3fb958399eb74d829e54cd901369c0066cac3a1e560cd1c7d4f27373a4af6a313c9a16932525ba15f047df135b30eb3ab227b2174438120637bf5fd7292eb3cd32c758105d23add806b301422f8891b91030e8313ca9b130924584301a804419c19381a5491f0f891ec80cf3c5c2ced1f5566fe02fbd727c3c5602d2129ca10eb09c5123b6a7b040e5579b407bdbb1de3f870123d718400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012fcc211ba5bbde98415f65b3e666d814af6da02fa8ee19846682cb5684b26b431150b9dbb6d71b56ca4cd09c15ed3c7a7850176e7989bc123dfd2cdcef808ee2388572476562cc68dbcd0914b094d5dd9f9e999ae28cdcc3309a2246d75484df14a9c7b1a9f0c6f2680fed263c3282161f4691d7978e963bde103e2b222033b41a0c5110f2938a65d9acb749701ff358e6230b2fb183e128dd9a1498049990cb25f3aeef0d6c759a265348b68fe00ca73c238dcc57c917f2bb931c54fb666f36023d9554bce1b3fd405f946f309fc0bc3a2205f664f9739521a8051e16ffd3f53dc26aab431e4c02bfa06b90cf603f43e8249305a453858677852bcee9002c0c0b33eaa7b06883f241dde62bf31ec3ad22aa1dcff8df41e9a848199672ff23c934cc15584f977c0dbe2219d40ce13c52ff9c7b2c106db731f0e517568d00dc3838039546720a93bb49557edbbf99d261ad52950fdc5c499049687ff03efbb2ed07fc6ab98df56c44b6aa812440662d9e74f403ec2cf0af8b4fc4b0fcc1044d141a0c5110f2938a65d9acb749701ff358e6230b2fb183e128dd9a1498049990cb25f3aeef0d6c759a265348b68fe00ca73c238dcc57c917f2bb931c54fb666f36023d9554bce1b3fd405f946f309fc0bc3a2205f664f9739521a8051e16ffd3f53dc26aab431e4c02bfa06b90cf603f43e8249305a453858677852bcee9002c0c0b33eaa7b06883f241dde62bf31ec3ad22aa1dcff8df41e9a848199672ff23c934cc15584f977c0dbe2219d40ce13c52ff9c7b2c106db731f0e517568d00dc3838039546720a93bb49557edbbf99d261ad52950fdc5c499049687ff03efbb2ed07fc6ab98df56c44b6aa812440662d9e74f403ec2cf0af8b4fc4b0fcc1044d14385117c5c2a3e378cefc1a9644ac30b2575c45d18b5dbf42535daec6e3d905ff09c2663f182bb782f44bd828c1c15843eef1631836cdbde9d9da374ec7b6be9e1fa87d6b0d993e3c9a1422a538dd2eacbdf7743089b68789326f0b7bc1f2982d12de6db33131621a15e7c7b250760ba15a3a145ae7b5a8f5320b15e4f1b906db356bcf378df613176d12190ee844b73804a5268a1947c56996b545beb12ffe63137c3070180a5e5a5d7251a6d9dcee1df0fd0d1ee9fe89c209e4fa63c4ac69bb02b7096af95909d0a65940eb585f38428acbc67a60fb707a1050662c7b25ee261dcb283ae6997a81a070cc0a8a11dd230c4825751baf2e859b6cc284c279042c3ee6a58a97dd4264707d95a6d0edca15a76100bbdcb834ad8cc3079a26c7006437bda57c6e13a13b63a345aff28318a61175e1dc3ea9778f7b1fb6367006af1c2ed26f78dd02f11ae35fa904b3056f1361b509065d2b8a67bc4154b84bb6e58e1430eca796ac26e32ca825a35b89eb444bb4b780bf1cd08211969b478c2add8c26ad156d0dfef1d122f99052c253c2db6be7cbd662e708fc1ca5421658e29cd108e11dc9945785f97e81d5626a32f07db2da83dd0da38c8ec8c5bdb02049192d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000135976e411d72f967b8aceba596ad5300768fe02f747bdc07b40290fe9230c55e2b736471bc32858e81f42dd48d7677c53d9e59ae0c602719c3c49653273bfcf30fdbeb89ddd8aab99818f47500f75bd58109cce93af69c2631a5141123a8540424f40d0bd86ea80ac1a7f7d7b72a0102480af316f2caa0b59581b0e83e8379310f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b9130b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d43383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d124019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b007dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea510f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b9130b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d43383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d124019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b007dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea510a5a3a2d099e0f0d99fbe727865f7e3d88fd0d0c33dd52e13e5b28e6d2ed2b8e029a3a1c6f41964b9b68a7284459f07faaec11e2ecc625a37dbad47ff53f1375319a40474708858ea7169fe9fca304648ed91191eb49174efb17618c5f6b752120899be034bb367aeb6327c489f2fff9f9cbc864c35ab1152660e9397ff33a353fde85d7a1281db23d7a79666ae7d3aac22559ca2a02e23f4ebad1074f0bd582232394d4641ac26bffbf0e8312921ff232a0d35142b6d7ac52a7a582d1a4c55339d24e3b13b176137675c24434341c29d0daca0d4b50794a8b073a0aae8ca7571237f319d05ab81aa5bbca31f5e173ee541b4e6aca701512b448911f6f5b009d28b3f454c4513f025ed42e9b07b385a448c4218a5acbe5c0d4d64416f1df028c2198993f437ef68a2c797c6434da39d1d7c9c38890674aabbf8c96f0d6967c4625048fc1d7d4dfbe9e41ff71237a8cc0237a2f9047f26bf33b651dbfe18a04ce25f1cc386d4a495b4c7e832d649d4503020d5d926ee9cd68afc9956d52de9a4429b93a34cef87cdbf9202d41416a9c9d49765bc9d694f660104592d44b6156ab071c566cf0e9b7870f65477ccb6f4009d1817cdc9657df12f43a0fb86c9d677400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013a2ded64e515941056e7f07fd9dc286f1d70a8578828b20f1e7c974bf33a36b836f1e408c87deffa380af27147aae18d45928b8b18f6bf312fa1c5a8be48ad780d1597db48ef86f20fdaf352a3c7a17680123a583970cf7e42760bf476fcc9f50fa3d7e7c3c9d48cfb942ddcc6d659816f63c7b0c4615edd3a9474fb882e208b11f949260a7860af3a48fc447836cebe94e941f2a38afe4f78eb82219e7494112e06b6d9f5879f50c5b703bb87c931418d5d570965c1facc2041aecb618b6bf019de6dbe3459e36c236ced56591209b8c647b0c12869fe71c36c59bb1846e45426219241cba61c93dc9312a9a6edf6475bfee83ae0e2faa9d5c0d731e7b91bad015824b705c1711cb120a2afbd5a309b9ad941cdb77806019ec35ecd796275a23ea7db48fa3e8ee34edf5d5042a5cf64876d572e51d4f319fa69d21f869d8a5f06b8b7931cc7358f75a32d6eb2c2f30a063e490495581e0819d0da035eec4c2a3947486ce338ca708a5cd2914d3d0cf61c084ff773f4db137f5c56e9a113b3d711f949260a7860af3a48fc447836cebe94e941f2a38afe4f78eb82219e7494112e06b6d9f5879f50c5b703bb87c931418d5d570965c1facc2041aecb618b6bf019de6dbe3459e36c236ced56591209b8c647b0c12869fe71c36c59bb1846e45426219241cba61c93dc9312a9a6edf6475bfee83ae0e2faa9d5c0d731e7b91bad015824b705c1711cb120a2afbd5a309b9ad941cdb77806019ec35ecd796275a23ea7db48fa3e8ee34edf5d5042a5cf64876d572e51d4f319fa69d21f869d8a5f06b8b7931cc7358f75a32d6eb2c2f30a063e490495581e0819d0da035eec4c2a3947486ce338ca708a5cd2914d3d0cf61c084ff773f4db137f5c56e9a113b3d70943e9457065126661e34399d6f79a4c076da1681bfe633786e4a6c9df32664d2843200288f6cc4361de4f3164c7e4b3db2f6e4fa374218a50fc2fa0efdf246319c8a1f9be1557d74d52124d4282bf6d74cdcdfc08e07c55fe8f6cd47818f45f0970b8464c52f5bd79857d6e595e9cd20090f8673adc85d9924dc05f28bcc70e3a2b951d452b3873345dd109d4bc4a3626ea596db459701b0890214d9e88bd7a32b9a7cfc219347197a0d9971fef80e999127abc4a074004428a4259891e066c294de2c0e345b9866ab0e7725f2548a997f9f98e89f86efbd6d5010477d77ad737621577525ffb468c78fc42532e747607bfc4678c3cf49dbccaa56b9744768e34c5ac1eb8b4c44b688219e765f32076d4ddf6355ad625d96922e4d7368e698a12d904a55bf64e9154522a01b44c818964631421eb3052ace53cff13ecd55e34201dfc1fe803e5e2cc27d82b67fb83304f64a3c817a93727cc4a9ea72c695c311656b674728f867fcdd22c642154830125f80adee6aa699ece810555862f3f580acf87610a7178651cabe06bd15ae22deabaa7f097dde43b304e7e3d708019d70a67ced9e83816fd4db8933f0eaf4c825998777c4760005440ee6a295b2115760000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001030db31e3694b6cd1a81753d9216f3c29df89792c9d64813451257bfe776c3220702e50427b2875fb779175c01510d6702a33244df639bb8f8c37412a03a7ceb35fdfc2b21373a8b9295e9adca98b23d215e36514716a20d6d62437cd1ca6c271d287accf212979f1b695d5702790102a22899499397b26701e9b95fc1b107503ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f620591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f620591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f2c9449a2096eb369dcd74848e36e531fbeeebb0231c1e1dbf69ca078811f10b41917989447b2cc4575c26f35f25ddd13908b6d1d72c526ab2f12b8334faad3001932b894c9fdd7019a4f4658fa94b1a61f7dcbc35722e08f168ccc8f296c0e672b0dda7aab625e197ac62c2c9323d9a64b62fc81e1b2afd5950287c46a67989607d5fdd69f3ae3b55f91d9d6293e5881fae9422a0e3a98fb7332bde32324d44d0b088947b25487d40a8436018cc9936431ce83b75b30b8543582c62898849825380000000000000000000000000000001dfdc5dc882359f826078acf60000001380000000000000000000000000000001dfdc5dc882359f826078acf600000010d70e0ce98afc6cc63678c23ab21b0072140db4f664839547601e6ad2c78dcb725c9d20fe9cebc86ac47b48ae8b36a52bfb5774cbc3f2bce71e24cae4452b8660c06e898b7ad11ae80a72e8a180a42da3423bb2f683ba38fcc94dad64bcbe01816e760658d2de7ce507cff79aaf982d880f38fae4b47ade8a74f11d4a2b2cea61e8aa435cba9acca6c53f083385d4b7d080c25c6e5a4e26da68f1c706f8a0b773446fdbf1d6e8ace645cd3d0524fc3e2569b1f7947cdb31b71fc74954f90441200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010a721bdbebfd4a87b8fc792d5cb7226ff8ac409a2f6277002cabaaadd3e5593e17a3dc2c074853a60bb187593db4a4dfb11569f40664ea4f9e87442efb57c2723c9cc7ba985c6b201842c94af0abc04f343a6eb81de61572162028b43c965217357194b67a68a548c7170eab2d63b2172107db3a352b48090042a7c8b9f1403b307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab21307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab212876855487ff336836a0f33ee2a9bfb97c9b0acee0f75ff33fd9f20480d259f317d5b27a8f0deecd238b31e430f64e7826e281c766f5a2962b425b1437f015c30abe003460a462f4fc31a0637f8d253719132698391ea5d48d2a75d69693a9322b06f1edd79995c579b3c01d6adf168779937cc9dc173181c73c00ff50f7a9851b83557d474a36772934cb8e5ebddc87ce9238e19b25b31e33466ab0fb3febeb2e36e944259aad3e4e91a84798bb84f3e4c5dc3c1aee4ef030f95680f5f7d07e066c15e7ad9e05f7cc658e57a8230a048ef44719cc9716dd26c4473c13a2e98813daa8ef5b235c3dff368a1500f4526d8fc167282e6ec9e562304abc9dfc33c828bcd32c8ebbdf36c8b2b19c6669af4b2e65c346cf6e731044bd9ab7aae4973821199e54d94791c0c39dd9abb587658286230a49dfb335e1b801cef02fe23ed00cb9e82ea7610bcf34d053d66e0d11b0e771da75884eed1f17b2ffd9afe7f05701ade79b7ce560a2874a106d525815419ec400ee5eadb8ced2a385839e388abd2535d07942cda1a5768ba29ae871d85ffe0b6e7bc254e569adfd35c859f633ca3fdee13e0d9232dfc3a24457b7b01be9fbe19598938d1bf2e4df23c1b73055d9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000130d346460893857e2ae9fd474752068b6bed1ab5bdd20068147d163095b521dc0a8c26e5cb43292a62405ebff46a9accfdea998a0357edff1a8c8eb6b82d1f2734402a574c64c1c67187fdc0b5442a193659d406e1867d370bbc7a1c04e77c463325cef28d5e193333401f30b957499d0306bb9879c068f59af9c4887800dee207fc67f0d2530e47f91f36ded523f7e7013069392919e4978abc6e0f780c038c3803980f2dacf1b806e0c9212adc081921162fc2e03314840e70c2dd87f3fc7527ee07b41b9f4767dd9c125a29b3d78305f20e1dcd8176f5b5ae264d583c11bc1811f84be460b8982263eda5d64c287d1c548ade3bcb8225e37f0a9fa7c3ee4507a626848a1c6507540c5bc2d083358eb6e67ba0e7a06779c0df2cbbb92c58a93859d97b75e39af8abf3a43d2f7cca716b601d5b21ac91a1d84e043146d3a758263ec096b28df924a43dcace12900bc992806a2486220560c45bdfaa9dddbb4d19c13f694d7206db5bc23531ed6ff4368fc62ed7832af3bad4d15142622244b407fc67f0d2530e47f91f36ded523f7e7013069392919e4978abc6e0f780c038c3803980f2dacf1b806e0c9212adc081921162fc2e03314840e70c2dd87f3fc7527ee07b41b9f4767dd9c125a29b3d78305f20e1dcd8176f5b5ae264d583c11bc1811f84be460b8982263eda5d64c287d1c548ade3bcb8225e37f0a9fa7c3ee4507a626848a1c6507540c5bc2d083358eb6e67ba0e7a06779c0df2cbbb92c58a93859d97b75e39af8abf3a43d2f7cca716b601d5b21ac91a1d84e043146d3a758263ec096b28df924a43dcace12900bc992806a2486220560c45bdfaa9dddbb4d19c13f694d7206db5bc23531ed6ff4368fc62ed7832af3bad4d15142622244b438d203a95a964dcd04f32e9bedb4b5e23b1917c0e41b0285abe801d74d68fc483a62fff28d5891df29479787f8bea2b86f803c27fca435f42523dd0cd2500c9b2966fa1fd1fd27c783e642c2344845584073b30f2b6a48f7b905318f280be4a029778cfe7f9243c1e62fcd1581bfa68e0e8aabce474e017388dd8369939d87d20a0746754227cf71bca18dd550173e3ad24e73d8a0f44ae1e214e1e108a6ba953b46fd729348e089de4cba7f6f4ea45b95e0c022affd334a103386ca794078a82b0dda7aab625e197ac62c2c9323d9a64b62fc81e1b2afd5950287c46a6798961932b894c9fdd7019a4f4658fa94b1a61f7dcbc35722e08f168ccc8f296c0e6704ed0ecc0c65327958e9128d6663d4d6c6f364724643101acb7872343e53611f1c0a22e00c258142d5e72fa8db055aa8f081329d22c197761eca69a9a730f5f32538b209cd37aba1885df507f2acfc413c97b97fce2a5eb5f6cb02c4fe5b2f8110534ff9d459027065f1fc76c1f934d2585702b4455a57e875afa7d7df8197c01243e5688b6e66ea3f041149dec3c9a121d68148ad651019fe2bf9996f899fe51e65e8153ef87ea5e4362ebd6ef03b294d6305723608b49e0aa505fdb5e1c2a1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000111ca931a4036141b061abdcbe30ec63d27e05b3b5471ad61f3a8effa31a112f33118308bda408f507cdbf52bbcb0a8f56fb2c9d671a7fc220bda494806a217bb2ac23b51bfc00935ab2c80803fb5785594ca074dc49267411a8911d7eeb77d1e23ae487085c651ebc392ef36f61b1bc87670c2ffce957bdc492aabf50bdc190202fd220759c835bdbc4e45bc6d26c0ccaf348ab4146308fe3d93c13b438a57c53d02ddf8a637ca4243b1ba4392d93f3373120e47f4e9f01d5b996fb1bc75a83c0ef1aa24c0e90cb4ad875cae21c1c3ff6c06b58465ef2cf733e2c62851b3b6d9310e55db3f16f34b5278a351de3e3c00b63fe377a35dcc24654a6ac4ae4c49280ab852b7c48d3f8763a4cf66a8c8d3fcf9daf299f45ee7b86a40addc9882923c3547ad483b72c0789c5b309957372c03286ba66214ee11632eec8310677d6dc535999d96d6c23da4f2380d014bec23f0e146bd01c5da869a1343654efa8cdb2c0a666269293dc25b0dc7f2feb413dc0f40ffdbfa4372728185e9cb9e057324d502fd220759c835bdbc4e45bc6d26c0ccaf348ab4146308fe3d93c13b438a57c53d02ddf8a637ca4243b1ba4392d93f3373120e47f4e9f01d5b996fb1bc75a83c0ef1aa24c0e90cb4ad875cae21c1c3ff6c06b58465ef2cf733e2c62851b3b6d9310e55db3f16f34b5278a351de3e3c00b63fe377a35dcc24654a6ac4ae4c49280ab852b7c48d3f8763a4cf66a8c8d3fcf9daf299f45ee7b86a40addc9882923c3547ad483b72c0789c5b309957372c03286ba66214ee11632eec8310677d6dc535999d96d6c23da4f2380d014bec23f0e146bd01c5da869a1343654efa8cdb2c0a666269293dc25b0dc7f2feb413dc0f40ffdbfa4372728185e9cb9e057324d52b7c15a5c8a5dccaf33e75bd7716ebd06f3bdb7c105e2ab83a46622e41f92b3b2c760185232808422bd675dc68c88fa2fa25aa541c347b293e6a01b193ad38390111950151fa7564d8e8b7e258acaf8e3ec62061a3f9d8093785f51843bf586f1ee90c8ae9c69e2b70674c218703f6f2065f40f80bdced46efce7db166ac33f336d7cc5cd8ae13e83dedd19210a2b3f87b7339deecc20387b6f0568997c22d841dd500863b47c729927d55ec3466e39e997a18ffa146c8afb7eec9c7926b99e227bd43a85873b0ed2ff4749e3820e73271962c3e901f50aeba1604d635cd2a492213aee59adbd8ed7cc13bc4bf4abeaf91d4ff2a161902cc556dbdb604916c561559b6f899672a19cbf38b4e7d121134dc1163006b2331cbbccb16672ec818113ebeadfc4cf15e57b924f9966a73fa1d5a093a0cbc60c00ed6f07bab5dc868cb2bfbb11f6c555a385474f23629d0bb395308de38cca296f07974493d1f999e263c4fe108bd7108f097cffc121a5b6325e0ef58ad8e3b0a7b63691785318f5c6d27d833df4d3f0dc1602cb240830a149b4778c2660a6f7a8b6155b706a83e338a1ffcfb86c58670343df12d4ec15c1e3301a31a78bb39559c3f0ade715ae469ab00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010e74dc07f2e0c765b53bd5a9e8ccded77ab9d9174e0fa1b05e70778a1c1939f212a029db4b15eeb396bf4c3c0e6464032dba4c9f591cd734ae99c92ebce8745d1ca03ca957085c49630204111031605e2aa78efc08c959ea4cce6e9f3072091631d75773485996b0c2ebdc0cf4ba8a3ac7075e880e1909ec0278d40e955b1d772077dea666d302e9680c24a43d9ce3ab1eae47ce663b20eb61b77c8bd965303b1f882159992cfd1697f3db5bc2631c550398512da311d8303775b461269acfc622575940021f0e8f083cb7353410725754da350fec8db261b63b0ce13ef9f1251da8a6bffde0f170f7c348cacbef8da8cd6c63ec1cbf46b9e2f2240bc1060edc2bb4be400a9b48cb292f940a04523bb463b5d7578c2a89b15cccde8c3ae1b5b7144b41bff564b734d6d06bf5fbadc44bbe90c1a47d226f6a3c605260c51e4a4a1a87b74035086bf7cdede432159b2a858bb969c1a0edc5240478c5f626688c90257848bfcaf7940832121bcdea64d57a968d2f3a685f33f794b46af6d99773712077dea666d302e9680c24a43d9ce3ab1eae47ce663b20eb61b77c8bd965303b1f882159992cfd1697f3db5bc2631c550398512da311d8303775b461269acfc622575940021f0e8f083cb7353410725754da350fec8db261b63b0ce13ef9f1251da8a6bffde0f170f7c348cacbef8da8cd6c63ec1cbf46b9e2f2240bc1060edc2bb4be400a9b48cb292f940a04523bb463b5d7578c2a89b15cccde8c3ae1b5b7144b41bff564b734d6d06bf5fbadc44bbe90c1a47d226f6a3c605260c51e4a4a1a87b74035086bf7cdede432159b2a858bb969c1a0edc5240478c5f626688c90257848bfcaf7940832121bcdea64d57a968d2f3a685f33f794b46af6d99773713491d060b480d2277ac482a18116c2b0acd1df1c0e9efbef30eee71afcca7eb711f9ac5657cdc4686e45af78c4d5f4119758138f39ff1cd2738a1433d20761f8267aa804e96598e51944feeb0d9eebd8e9770699808f77d8146bb47a9a3344ca3f4cb718be32b1291c98d4e23c7a4e21740b2e921e5096323203ea9a4845e9211b2e5ba37de15a3d06059aa96c8150829737f0defefa1f5efbd2f7e17257acb83d64f974d71d67de509f63ef6ba54f1b8b9a0a7c317fa9f6213fa29360efa9803bd2f40d8e34788b54959263b588326a1d5f4036abf64c3c1925df5a8a20724010bfbec9263be0151b27200d2a4b7b93c94b5096e06d8f135092f0c3e6a23f8e194b7597a055b06276b08cffe4d0539d5315f3cedb8bc4f5eb9a7348f30ab774026c3b33d7ec50ad264bceba58da782cad12341200cfa1054d2a99449da48a05151914b17d55e55bf2a9a76b44c3fc325186d6eceaa89d03cf0d2fe380bd44150539a99f24e6498e7914925fd3d51aa4bbee91a91c7ff81b17c836532c31f2f70be96e900d36c5b3584e012836044699b5bc76f90e63a679a6884914c887ee783287704c7cdaa3a6b87bc6f5314475f6ad309a99bc272e5972e0c864fb342bf800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012ccd14d92a0f9b9363cd182c72d6d78f989b2c3d00ac5ace2d8e816194b48e0c30eb631864cfdc31a2368b25478eac1892cfc6ebe95f3874c999cc2bdcd86abb0fee2324568f12ecf3bce067e17322dcc02fcaa376d2befd659de5ddea7e015921cb3db2875461886c0ee787de315915eb465b2cf6e5ca13df9b9cd19ed40832246aae7b1b431e24be441a82a54e45ca2f1a3c90ae2c9cd406c0d4eb22cf09ec1b955184e4bce1db41bbe57d5ab1ba35f32c5c6b5b205c47926c5c01dd30f61536156867884f96b7b754848d3a875cf2a6f5fcdb54451decef69c6bdae0b319a09ea979877b0694848ab7b72c578a30d7b509c20b507db2ea9c36a2f51f4ce670e6b0a05a98df19694a696c224a4d0bcb9b38c588025b132485c1e006637f7fe3194f5fa56720e696b59693ddb5b2f4368930ca3892747e950d112ec99c808030817321c4fc5b7f0e740f1cab73813af7e3b24be776f7cdfd09f6514ff17d7f537e8cde3b03a480f18bf0e3548c7ec50a40b743d91dd7c3bc88dcbd800e8280c246aae7b1b431e24be441a82a54e45ca2f1a3c90ae2c9cd406c0d4eb22cf09ec1b955184e4bce1db41bbe57d5ab1ba35f32c5c6b5b205c47926c5c01dd30f61536156867884f96b7b754848d3a875cf2a6f5fcdb54451decef69c6bdae0b319a09ea979877b0694848ab7b72c578a30d7b509c20b507db2ea9c36a2f51f4ce670e6b0a05a98df19694a696c224a4d0bcb9b38c588025b132485c1e006637f7fe3194f5fa56720e696b59693ddb5b2f4368930ca3892747e950d112ec99c808030817321c4fc5b7f0e740f1cab73813af7e3b24be776f7cdfd09f6514ff17d7f537e8cde3b03a480f18bf0e3548c7ec50a40b743d91dd7c3bc88dcbd800e8280c20fab69d970642acfb5ec8a2abc5444465b0b444d90aafb7924d7bed7c48143807a68843b1e51597ea0705bcd34a39730fe58db8611a4b8e3e932c6d22f71a4f24b4459dcb3bf57ecaab9e344cd9840957583940bcb98d1a06a87753ca78dd0f398083291da8909a63c1f7a398a0375a72668f9747d8ff78341b19882ded12e02ffb0980b1d92e69e34bd072a0ef563ac87907bffbaca1ed542414aee2754ea601ea77a1030f3f3efb99c2dfb7fc0206aefa283c3b1ecab9f5a5c629d07e2772007bf1f8da6a6ca7a3472a0c75110da3bc4dcff3e11c4c535fed193f3ec76b490b2187913365744d524d4e406e29cfeab88c3a59fdee3972c9b904987d9ce0840454bff8e161eb1e50db3a300bd16e2c25bdbcfb2614cc10bcd64e8cb144ffb2202e27152b767ed9dbce78a8a09b6297146a4eb57077431829a9150aafeada1d2beb73bdadca028c6f8763115f1625ccb66a4c23e8396107dd41ff74c3251aa9045432a43daf5ed7c8fb03b986199cb3c21f0f46f451a3d11ba80cadd485af320924ab048258e64985ca5afd04805db29c508015f297eca20000fbf586be69be241ad75981e96ddfa08486b2dc72809c68648651371d9698c324c969569177f500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010d6ac3858e73432e64ab34975b8e0108f888640e3ba4e729ee7b3903d8bb342f20f634a309348c15aa3732aedc4f5dca312f790dcf8a4fc29d27ef50770d6e23233742f342402c5d6d5da4a3691e503f22757d98a8fa2b8b9763486848458b5a3500fda34f4fc7dbdd6aa29758b97277582b94713229a7035a7013df48c26a58167d061a091cbe6fb53239bd3b4d0803a1d7bc7db610da62362ef186623c8a902982f9e5f6e341904acdc642c4b2f7fc806edc7e533c1eb962fe3f669dc3757130711e822d8fb82e89fb20b22881281206f0157885074acf75bd86b2eb2eb4cf0f8ee17dd27047d17604df4dd77ed7ee1b5683838445ae4c236faa3a14d14b323235988ae3ce98e8b1e7a37aca85c859bbdca0667d3d8aba812c0eb797e988080dca67751c3167174e185c85357a37a66669f8958c0f6e6118012235681677f93b0bfab67308fc8b79863165f49ce9c0447b570c564cca51ba54b6cef78fa82504f405498cf703748679ce9a0b63163fddcb41efb3002ec9ded87a1e087057dc167d061a091cbe6fb53239bd3b4d0803a1d7bc7db610da62362ef186623c8a902982f9e5f6e341904acdc642c4b2f7fc806edc7e533c1eb962fe3f669dc3757130711e822d8fb82e89fb20b22881281206f0157885074acf75bd86b2eb2eb4cf0f8ee17dd27047d17604df4dd77ed7ee1b5683838445ae4c236faa3a14d14b323235988ae3ce98e8b1e7a37aca85c859bbdca0667d3d8aba812c0eb797e988080dca67751c3167174e185c85357a37a66669f8958c0f6e6118012235681677f93b0bfab67308fc8b79863165f49ce9c0447b570c564cca51ba54b6cef78fa82504f405498cf703748679ce9a0b63163fddcb41efb3002ec9ded87a1e087057dc2fe3922ca873c162838468ca41d2b126c20f23ed8c8f6ea39eb52c992dde754f3217d362b7ff0d86f7e9427389d9d0d9fe1c87f0ee68d310812357bdbf6acca312a3968db2b796893a52de00944a641251d82bef2ae4da62b85cd653d42eae9b36446919f348dae890318cb52dd74143a3ca07b9d86174c8e83d69cea1adb9821b403371f2a1012840e952dbfe89949b49a1daac6467a8988f6844f75eef342e3e23054270ed13a79518070fa51b1ed82c5208acf28367f028f244ade6330dc41fa87d6b0d993e3c9a1422a538dd2eacbdf7743089b68789326f0b7bc1f2982d12de6db33131621a15e7c7b250760ba15a3a145ae7b5a8f5320b15e4f1b906db2d71f1d35ea3d8c78816622c6524b7459faf044e02e22889564d4948ca50c7ae2045ccca50f80829241c0db60b335fe4fce338903cd2eed7192b6bd30970c9d41032501704d8d68f352d08ed6a87fd9848d66d26040d682bda75fe87613a69012044614dfd6ce647a4628030c55b5be66282a9cd40905d93c841c6905bd1ffef22d2a6858b72d923954db4276c406b2a8b10a7c2aecaa27b0075acc4b9a5040d276b63821ca7fbbb77e8167c71a92aee70f1fbb1d47b116af88f0aa2a2941e830000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001050215f6c627685289c41d462b669e0856a266f406b7ba7e7787b05f1ca21cab3237e0de62931252e900762f0addcf12a9291fa4997bb24a71092c11deed0c342c8c656004dbae2d8b9318dac557b39fec9e7cca760706f80c0d905c6a0d0062052d9c7ef192295f355b0dd1fa0b916e3bb41e8ffbf3396fc014adbe51839ea123abe28b5b974fd6a87f9347a4f9ad511d6701e1a9186eeb0a1126af23c180a41c541d74a468b02957806cb85b0652af04df971a60348a308f1c0a3ddc3e7f5d325b6cb8c9f48f314a7de06638e062954e75d7703ae0385ffffb5f91b2c783320da49347360b70ceb5821f99c71f9d6ad3d0c18bce6cc0bb9931d15b4d387ccf3bc91f9bf1c6cbf6747561ff1c61ecea21796a3d0a7a2e8d34614b117de58ff70436e0640e3934098b8a9e00e39e131600cd2ebefed2ca8e64cbe5db821a700a2aed9e0bb8e1fbd0464ae9fb8de9a0921e44af410f2f0453a131b3a3757bcfcf151261f4471e042fb9b5160472165f6e0401e9bafa1df4c7f7fb7d498a84303223abe28b5b974fd6a87f9347a4f9ad511d6701e1a9186eeb0a1126af23c180a41c541d74a468b02957806cb85b0652af04df971a60348a308f1c0a3ddc3e7f5d325b6cb8c9f48f314a7de06638e062954e75d7703ae0385ffffb5f91b2c783320da49347360b70ceb5821f99c71f9d6ad3d0c18bce6cc0bb9931d15b4d387ccf3bc91f9bf1c6cbf6747561ff1c61ecea21796a3d0a7a2e8d34614b117de58ff70436e0640e3934098b8a9e00e39e131600cd2ebefed2ca8e64cbe5db821a700a2aed9e0bb8e1fbd0464ae9fb8de9a0921e44af410f2f0453a131b3a3757bcfcf151261f4471e042fb9b5160472165f6e0401e9bafa1df4c7f7fb7d498a84303206904f122b74043351594908688b1c44ec222e9438ea5ee9713bff2dc8aae722049446918b5c2355ed130b5585ff686a190d82159c5487c3bb6015c6bc9a559a0d30bc8e4eafdd9d28bdef2d036d9fcf82923f6787180d598f702e8a37ec44150ca9d197e9d63edd9c27ef44ba8e9b7369a5b1ed6cf3b17b3674dadb682927f1063a182516a91903b031a9b46e08eafa09bdcd7fe81f765635d3c4628e01cd970b799aa8be79a2a7a870182d2247b42b5539582575c7afd64271b25bdc94f091080624bc02f2ba952bc81c10bb966c567f2ca808691faced5a5cb83030ba853228c32dca65323b21a71c166e77f2beb47a1c2a0035bd2cafec483a3af556fac62673eece7bf4d4e2b4e0afea43e7f00395945d3baa127ee1f97020467aefd39e050c95382b9ffdd465d6ed74207bf0c1f56fec7cc59ea51203a252a4ff690dde202a33b966c5237bbc5e72a48f8b338248e92e02c0004e6668aee36617a9660513f366f7bd424272e8087a32279cfb9c40736a471655382420259fed4ae9ef81197a630d78dce53af30d404f4d81abf2e4c758e44b7236700855915e2addb03705947276a3fde53431464e9fe52085c426c66ac71e04f120a65c39285e48738700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010e1162fd97b33407b47fde2afcba05b6b82bed949918fc7cdd0cb82879c992b7227f5e6db2517dda3a3fd32e9a59c68fb7e79aaf31657cf045f444b852b7d9942fd0c32a1c9d3c23334e78cd13fb89bc43d261f7baf851faed6803491b649aa43e9acd7fc7dbf6653167c61958912cb1f7cfda4c8015438a1466fe60fa8fe241039438a7b08638840d185421f618150dc0370e0ff389061f5fa0a8c68a2d035b3c6bc7584f79c77bf2e7abde09e7eaf2620f8aec15c3f2fc398c882675d2fca611e51b46729f1a944179a4a9ce786944c113464fc1ad1e9cde234be0b2e110c72e1ae4b98d60e56bbe865b56318796bb613352ac479fda7ebb09e50c4d1eef3a197988603d1b84e547603751085a0e57a319c692bf149ff4bd834a767e6553e22686779fc2e47b1ab89fc8aef7a5f1a87f2cd2694a385926dba9e676819aac1f3f5fa9e13189987a64e1149529c247b60d3a47e1b21a26ac1a63436377faa36900a0561ece7667859b1eeb6ad63db84a150c511a5732d26f7ec9ed8988055c98039438a7b08638840d185421f618150dc0370e0ff389061f5fa0a8c68a2d035b3c6bc7584f79c77bf2e7abde09e7eaf2620f8aec15c3f2fc398c882675d2fca611e51b46729f1a944179a4a9ce786944c113464fc1ad1e9cde234be0b2e110c72e1ae4b98d60e56bbe865b56318796bb613352ac479fda7ebb09e50c4d1eef3a197988603d1b84e547603751085a0e57a319c692bf149ff4bd834a767e6553e22686779fc2e47b1ab89fc8aef7a5f1a87f2cd2694a385926dba9e676819aac1f3f5fa9e13189987a64e1149529c247b60d3a47e1b21a26ac1a63436377faa36900a0561ece7667859b1eeb6ad63db84a150c511a5732d26f7ec9ed8988055c9807abbd0795ce72d377ec9a8a1b9e60b8336a5717d0d4a011f6c5def6f765e48828b1e146e5e25ce03fbed49ffac7ece4cd958fc989baa51def82f5bb177ccbf1096bdb8cb1e45971fdd5d4abd6bf7c5b58d842e620c6e775c527331eb844ee783be2685b238c56899d1873a8e8a6663b0f56f115302a96b62d21358cc9a244c4180000000000000000000000000000000cda795e837cdd6a5970f258e0000001180000000000000000000000000000000cda795e837cdd6a5970f258e000000129778cfe7f9243c1e62fcd1581bfa68e0e8aabce474e017388dd8369939d87d22966fa1fd1fd27c783e642c2344845584073b30f2b6a48f7b905318f280be4a033541fc51b7b437eb0d500dc559879b6578c1a983201dd743e5647890a3a7796011233acd71e10e12debe91f5370aa490224a2ca112842f0259e41be311481070c87f39bbca577af8d5528b02dfc185853351157e7d41d0d1d45221bf6a50f9b089514397327eeba32cd17fd5c6353b668287bf03781a683bd2dd9f1195060f908e8aa29c6c56e57ea2b67cc0ac199a5e2ff076a02fa604db434227397271167263db26cd5c9e777dc91c9c75375a4da5bce6c1c35700d10276d8ab1fe1738bc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013b197ac8f681b178cba572cd2cee566823c8ad53ca6a9256aa104194cef0510423ee695c1ffdf50a23d05371ff3db4360593c5d9a440faeb2072628839c72d2001df6cb348e4a5128471b65497b889e4bca3fdb23db53ac017383d871e6f70f806cc55d09acab1b171ebf338b28803b005a05c9b847e6414591fac8ab9dab5833e45b0d3f2c2471d7a0e8ff3dc7ce4ce6f86177b91d95d9579d2f55f3f76042601ba4f2c0d3db8e285f1700c23831b31b2c0818077739b861f5a3b8dc089fbdb375c7423bdcb63936248cfc34e707807a4841179b40aef7cfc6a07283d4e14ba08a38bdc42349c6c9db7303cb18f87f87dc287825542099e9cc329c4c2b1eb4714ce44b2b4f8f1e0eb6c0ed088325825ad79f3705f02c902895d60153286679e2b31bb4d4b070e1f1493f12f77cda7da74cca58baa4a30190fcfd0d7cd7998632807577d88dcb964991c4a12a8fbb8bc411b2835d1c0f3f115a5af7cfca0061517f8a8827723469b66e3b5ed57044743e12b70c6378c052a83878170035ff9ec3e45b0d3f2c2471d7a0e8ff3dc7ce4ce6f86177b91d95d9579d2f55f3f76042601ba4f2c0d3db8e285f1700c23831b31b2c0818077739b861f5a3b8dc089fbdb375c7423bdcb63936248cfc34e707807a4841179b40aef7cfc6a07283d4e14ba08a38bdc42349c6c9db7303cb18f87f87dc287825542099e9cc329c4c2b1eb4714ce44b2b4f8f1e0eb6c0ed088325825ad79f3705f02c902895d60153286679e2b31bb4d4b070e1f1493f12f77cda7da74cca58baa4a30190fcfd0d7cd7998632807577d88dcb964991c4a12a8fbb8bc411b2835d1c0f3f115a5af7cfca0061517f8a8827723469b66e3b5ed57044743e12b70c6378c052a83878170035ff9ec22cf7a8e71781afd80bd44e06f75d9cd051fabef1eb56ce735013f22a170216000126952516235da51347f21aa9d5468e367e06052894a617632e8b655470bf70c42471a85b17c45010c3e2e6106633a1870d8513b1446ea569e13e45d447ffc104b5cf0cc92c5b82bb82091989b5ea92d6ecc4cd809ea366c79aec71f326ffa07119218ed97c5fbfe0b4f0bfc240e3542bd5163c4d7a7a39cbabbb1152dea301f50bf9c5ed55f47d408d6d4829ca0a50492d975d9c7fb50c5a811e4180f15d106837d50a031adc2572f48a8dae20a09dc2ff7de0c2d1d51a54a145ec8692a472c5d6b4a55fb9d9bb3156954d358fc2d90612be02c40cbbd4defe225a1f8e23e1dd9447aa97f45fc45e8c6c1a8b8a42461d9717a3d09add7c9ce1a0abf52bab60fbdfaddda16f76525e84ffed50035f22e5ddea1fef2e34ee16f683dcdd094633994c49b0768ead5d994fda48bf5e7206f50d05b627e63e41fceee25ff32273021c8a0cc022892e74cdde5316e3d5377f958bf098bea1b58310df42491f0f94a1a699caf90b0815ce921b67c2d9d824251c02a6dd544715cc1f1971c9bd13c8d14f8511415700688482a08c63e64e47b55fde5ab9a3e39c7e5e926a8a9ab0261000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000115eea68d1e2bd2b4364fade4e851d61ad7365e0947c7c0d88ab673914849b73d377eeea9fcdc4dcbcbac90768a799671c9d2c7b85bcbc97cee8b2d5d50a06dee2e89b24171dceefb0f73c9b12885b8ab4af88baba9d5f91271133c4505ad196113422d30ef78777e0718b97fdb5b0654009a35abcb95df4ef0f3f3d8a1d173553d02ddf8a637ca4243b1ba4392d93f3373120e47f4e9f01d5b996fb1bc75a83c02fd220759c835bdbc4e45bc6d26c0ccaf348ab4146308fe3d93c13b438a57c5310e55db3f16f34b5278a351de3e3c00b63fe377a35dcc24654a6ac4ae4c49280ef1aa24c0e90cb4ad875cae21c1c3ff6c06b58465ef2cf733e2c62851b3b6d93547ad483b72c0789c5b309957372c03286ba66214ee11632eec8310677d6dc50ab852b7c48d3f8763a4cf66a8c8d3fcf9daf299f45ee7b86a40addc9882923c0a666269293dc25b0dc7f2feb413dc0f40ffdbfa4372728185e9cb9e057324d535999d96d6c23da4f2380d014bec23f0e146bd01c5da869a1343654efa8cdb2c3d02ddf8a637ca4243b1ba4392d93f3373120e47f4e9f01d5b996fb1bc75a83c02fd220759c835bdbc4e45bc6d26c0ccaf348ab4146308fe3d93c13b438a57c5310e55db3f16f34b5278a351de3e3c00b63fe377a35dcc24654a6ac4ae4c49280ef1aa24c0e90cb4ad875cae21c1c3ff6c06b58465ef2cf733e2c62851b3b6d93547ad483b72c0789c5b309957372c03286ba66214ee11632eec8310677d6dc50ab852b7c48d3f8763a4cf66a8c8d3fcf9daf299f45ee7b86a40addc9882923c0a666269293dc25b0dc7f2feb413dc0f40ffdbfa4372728185e9cb9e057324d535999d96d6c23da4f2380d014bec23f0e146bd01c5da869a1343654efa8cdb2c2c760185232808422bd675dc68c88fa2fa25aa541c347b293e6a01b193ad38392b7c15a5c8a5dccaf33e75bd7716ebd06f3bdb7c105e2ab83a46622e41f92b3b1ee90c8ae9c69e2b70674c218703f6f2065f40f80bdced46efce7db166ac33f30111950151fa7564d8e8b7e258acaf8e3ec62061a3f9d8093785f51843bf586f1dd500863b47c729927d55ec3466e39e997a18ffa146c8afb7eec9c7926b99e236d7cc5cd8ae13e83dedd19210a2b3f87b7339deecc20387b6f0568997c22d842213aee59adbd8ed7cc13bc4bf4abeaf91d4ff2a161902cc556dbdb604916c5627bd43a85873b0ed2ff4749e3820e73271962c3e901f50aeba1604d635cd2a493ebeadfc4cf15e57b924f9966a73fa1d5a093a0cbc60c00ed6f07bab5dc868cb1559b6f899672a19cbf38b4e7d121134dc1163006b2331cbbccb16672ec818113c4fe108bd7108f097cffc121a5b6325e0ef58ad8e3b0a7b63691785318f5c6d2bfbb11f6c555a385474f23629d0bb395308de38cca296f07974493d1f999e261ffcfb86c58670343df12d4ec15c1e3301a31a78bb39559c3f0ade715ae469ab27d833df4d3f0dc1602cb240830a149b4778c2660a6f7a8b6155b706a83e338a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000112a029db4b15eeb396bf4c3c0e6464032dba4c9f591cd734ae99c92ebce8745d0e74dc07f2e0c765b53bd5a9e8ccded77ab9d9174e0fa1b05e70778a1c1939f231d75773485996b0c2ebdc0cf4ba8a3ac7075e880e1909ec0278d40e955b1d771ca03ca957085c49630204111031605e2aa78efc08c959ea4cce6e9f30720916142fbfa54ba90f415cce321fb844d3edc8fccd375fc0fbbaf04d1f5e9689a1872bd0405ab456f0bea331cde047bb2c125949cbc4a98bfd60a8e0118e69765e7a24eebe3a7a4d4c46d006fa9e995823a4caa96918d577f18b18546bebf0b027a21b1141c585b2b3b92ff9056166a7dc5b579d2fe333d5079080d8c5010f4fd85f38a9b72463827d621022e518feb8b237b0c1db8418bdc580474bb9c1b370c628075648db9c7d829defdd1ae701474dc87184bd77f08f339b51e1772b4c8f39d91b5093b5f18c72ea50ae797cf99b7b15eaaee5a45680f712ffc5dd148133dec424af6c4a0e738d15af518683066484ea3797b357b2cc0208996753d87ecc213d142fbfa54ba90f415cce321fb844d3edc8fccd375fc0fbbaf04d1f5e9689a1872bd0405ab456f0bea331cde047bb2c125949cbc4a98bfd60a8e0118e69765e7a24eebe3a7a4d4c46d006fa9e995823a4caa96918d577f18b18546bebf0b027a21b1141c585b2b3b92ff9056166a7dc5b579d2fe333d5079080d8c5010f4fd85f38a9b72463827d621022e518feb8b237b0c1db8418bdc580474bb9c1b370c628075648db9c7d829defdd1ae701474dc87184bd77f08f339b51e1772b4c8f39d91b5093b5f18c72ea50ae797cf99b7b15eaaee5a45680f712ffc5dd148133dec424af6c4a0e738d15af518683066484ea3797b357b2cc0208996753d87ecc213d3d9d000d72a76e20d6b8687807415d47d0c422b094cc1d1f9a10deaf8daff3673f2dfc56a569b232fb0cd164124b4a1e052b4717ad55508e134cb9e5129703ba16cd476b360228fe65b0b9a7056b4e59fa3726f9afd6da459c5518229693f19a04f22585549da1e68539d3d36cdc2659ce51f63b25470aff1ddf5ced5598676b19a18f27e057600c869df33f58814e0c0f589684b7e9c954a2851f68d078b386165e70d81fa89ff379620cc0a77eb1f40a5c5c384f0ff180105cc548ef874c7c06887301806dbc3e19d032ea7e4059720b2a46eebfabb9612a0461482c62782f069905e02e02d8387c19bd3dcbb7baa7d9413faddb8f71dcf9dcb32297f41b612d3e5d8707fecb838d78079e0e2e1bb84a57aa8f0161a99086a1976b2baf64fb31e97f7e1a62f828b9e84050ed2b73fad35c1c170d5cb5aecfbcdfc1301f61453322e8fa845ee3f84ff9597992abf8947a23eb02db9fb1649f92651459092a250c49a1b45ea7f25482a0ac4ed04664e0eee8a9691c7d6901db9aa3abf48ba789168796af202ed7d6d64441efe438e03066abb1ce30edaa9751f0937626387a5b3b2a4af4f3090a24615865f0bab7589741152f134cc0b6c825f3d8b9db24829200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012b92de80b10d8f394dc650c899d2442f2350fe1034c0be9bab98c9656e24db05002ff4a700951079014f57661482059bdc89016c5a0546e30fdea3aefd92717d3989077b58444b28f69e71905d9ba74646bfad362a1ffc540522e45dc0ddca9b286fc5b453cec21a633f5f3b2fe1014038584abc6e37b3f24be1d104397ee665249ce80309109b574d0d81e6e9f37db0b9d02ecec52628a599bf3e5280d438c11b6317fcf6ef64a8b2f27e19160c824f68766a2d4426d075ff6df29a7f2bc7403710880f2d5308b48143898291c174735c83b811c724d904ce61d5c284251bc308ef77f0d2acf74b7ebc767d6e3e8b8cc5c2e0ea42282016cacb5b2a7bdae43e1352a84be29f2b868651af8cd8c7464045783468be8458a9a334691894b98acb2cad57b41d60d47979ae50732738b9bfdcce64934ac8a071f5f8c7d46b467536209d497b6d1bd9a09f986dc03be45f4139126d0faf48c23496d8dc8de79fb5f61f62b68492e4265f6067923fc41ba0bee9342bec5a0436e70254545f18604a0b249ce80309109b574d0d81e6e9f37db0b9d02ecec52628a599bf3e5280d438c11b6317fcf6ef64a8b2f27e19160c824f68766a2d4426d075ff6df29a7f2bc7403710880f2d5308b48143898291c174735c83b811c724d904ce61d5c284251bc308ef77f0d2acf74b7ebc767d6e3e8b8cc5c2e0ea42282016cacb5b2a7bdae43e1352a84be29f2b868651af8cd8c7464045783468be8458a9a334691894b98acb2cad57b41d60d47979ae50732738b9bfdcce64934ac8a071f5f8c7d46b467536209d497b6d1bd9a09f986dc03be45f4139126d0faf48c23496d8dc8de79fb5f61f62b68492e4265f6067923fc41ba0bee9342bec5a0436e70254545f18604a0b3c0068b6d952af884f3c1f7ae5606ad210c494decd7abdea80c4141b5f3364320ef7462e89aac0ab747d6d0c85f890aa963281e1861be3efdaab883c503e59ca02f405a676e0f99f03ea318e0654e1cf38af22a01da38f2197f8d851bf28cea71b9eceb63c35f6cdde95867ce752e536c65a2649c4cb3cc1cd1cf2610977294427014a71a5957c3d28c14e3212bde03f3763685f7cc11533799594ae6321390b35c7f5985639aad0be62a914bdc04ebfc54bc4197e2cf7ba767701e4cb6461472b56da9daf90bea4a3a7c39b77ada38654042d1ead0edf8fb46cf90e1e7e26e420bcc077335f6b276396b34c2ea13b943d7d444e6c603281f734403684b90c70282a2e40c7da0f5821730270248086bcd7baa1ac29d9d8a2de7997d7080a737013434c020a742bddb660be207b21722c5cff3823616acd718fb2882c15765a631f32d27c5c68ab510b6d02b267174416a15cf4b27bdf735e67f026479772658e27bc147602843de5f46746e2bf811d0c2ef23980454e5ddb9089a00e1f1bb4d619081d3c5e4176676a3d2ef9cdc7eed62c551d57be541dac133f1fe032b1979c0dd88c35708dc43de2459ec0dce2dbb9649cde4269491530f8f5d74777f849ab000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000137a947e1c4c0afd632116caa41e73c7fd994e67a157877840d365ade517f872e0ac5d185b1e258f24849f394b09e92cb943351187d2b242b02d6e25bfd45b440269dad10ee8d1b7161c2573b3f0f867014ff7c7fd27876ba5835d9db469eee932a9a3799c7ae984baf20db5d68b7fdadf76605e50f20ce9c7c060bfa7faeab5c2759def81fb4a064e60e51e087dc59e52077c2b7f76d095e5f0fbc787521049918a62107e04b5f9b19f1ae1f7823a61b01ced64411dfefbd3a1d74748adefb6804c15ad89e8721f87e479962a74dc1793b8302a3b93a43850fc71b9349a516fa3b3ea5276178de0781b8669d58b23e86e6c396585012b59689661559b65ae90717c6c63b18a3a9da7765feed4484c75e298f0d329e2351994ee389e0703972e2283939c4e75c5625889a0112bb7b38a1f8b78bc96b29a7824a49a70c8fc68d1f36e1df277b32514454fdfaa25697e4d6ad84a9010d639ee2f1448075311f3e69091e20d884cdaebbab02055da9681b2974c1effafbe95a38a7e8b077cee0c1982759def81fb4a064e60e51e087dc59e52077c2b7f76d095e5f0fbc787521049918a62107e04b5f9b19f1ae1f7823a61b01ced64411dfefbd3a1d74748adefb6804c15ad89e8721f87e479962a74dc1793b8302a3b93a43850fc71b9349a516fa3b3ea5276178de0781b8669d58b23e86e6c396585012b59689661559b65ae90717c6c63b18a3a9da7765feed4484c75e298f0d329e2351994ee389e0703972e2283939c4e75c5625889a0112bb7b38a1f8b78bc96b29a7824a49a70c8fc68d1f36e1df277b32514454fdfaa25697e4d6ad84a9010d639ee2f1448075311f3e69091e20d884cdaebbab02055da9681b2974c1effafbe95a38a7e8b077cee0c19812acd9bfd8eb5891fa2950d9166d6c5704da7e36dee8999df84ecbd043c4bea93fe5fded67744ae60caed44fa5d27bec77f1fc16dc625175eb36ce11ee3bccc8100c915fa51e4beb8f437eacd8b4034e5bc8e5ef3b841247cbce392774e4e2dd307ec680db40ffccc2ab40b590cc792e523f233bde32f6b55eddf86398af242f224873f76fc0aad5a7a7fec3cf49d55e3abeec31933fab9bacd5982572802b912da429b9a1e2119a74df7ca77a5dbdd57588d0efe6db01e287fb70a3bb7483612cde337a7b3c0ef134647820650c6ec7d5c865e563213bee2e943d34813d12542bb5219dd9c2b32a22408678731a30d64d099575cd588d66ee7e5d40520a43e32eacbcb0b294836bcef324243ff56879b7ccc74fe604d5dec5c6f260dfa3b8bb19c79fc3c3a674af714263ca4cc17abc5222cf0d542df1f48859f3308174493404ecc28fa1cbce07df28e781bfcd9b31c7964954ecf0d89e742feeefbc84df05183623b4bedd191fa4c34c4168aa12fbc608db7bfcc4548c26f886a3109403a529b6088278d5e59497691d09d4c60f682558db4f8888deeb613f2d907c708adf2a97f3a5e7e480eec6cbcf02690581c553939a86087ce00b9da69a78d140cb3a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012163288b24bdbaff3f796a23386f63517eb59acb99af98cea6f9a14ee29f9bb32e0f4cdb0e11ac1ac906ddea0a09c201225de585664e48198fefd0cffc080d5a00277a09f31d456c7e0fac0b2281d9f1112e32f430565ff089e227081f401af33db1824beeba4f3d540243bb52645a8f624b0505b6e24e637e8a9754a85b79b21dc6002afc4fa21af61cd54efd8b89c1acf8379388f85b56adbc974410da73342239ffd503b05de509e32ab10274763e754e616880549dc4eb7099a8ef258ccd14de00d6ed8e2a86ce902a8af3b9b0c81c4be3e99a3fd67a3254927a544440022b21ff291271d579316fd5750c464f3805fab5126f0d22a166d89e72abbbbfff28560432a3c6d4a208d0d4b6c2a073e86b34da93f9f237476279ab76a555400917a9fbcd5c392b5df72f2b493d5f8c17b711be680f5ac1d436b385765aaabff809ae14fd32e2272a2c142791cd224389b13479efc5d4291220d8c68a3aaa402a3651eb02cd1dd8d5d3ebd86e32ddbc7671121f0c4378d00978546a62c555bfd71dc6002afc4fa21af61cd54efd8b89c1acf8379388f85b56adbc974410da73342239ffd503b05de509e32ab10274763e754e616880549dc4eb7099a8ef258ccd14de00d6ed8e2a86ce902a8af3b9b0c81c4be3e99a3fd67a3254927a544440022b21ff291271d579316fd5750c464f3805fab5126f0d22a166d89e72abbbbfff28560432a3c6d4a208d0d4b6c2a073e86b34da93f9f237476279ab76a555400917a9fbcd5c392b5df72f2b493d5f8c17b711be680f5ac1d436b385765aaabff809ae14fd32e2272a2c142791cd224389b13479efc5d4291220d8c68a3aaa402a3651eb02cd1dd8d5d3ebd86e32ddbc7671121f0c4378d00978546a62c555bfd722230cc485bbab84940155c0bf0c8401c8a79d237206c0dcff12495b3ba1e4f7390fe01680599f504a043b01c76f876c5364a7c378ebf66a6ce17350f3d49da01761239d4fb718c435abbb5f2cc7dfe5b3f06a28fb937500bda236c456ee8c72239d3c6c76f208cbfc3674abe80a682cf4365a1ed0f2a375e20c939d130c63093326a8eae5cb8cc394796626755008d362208571f503b809042bf2f281364019255871089387996585f21e5758948287caa7f8eecf05b0dbe016608ca343226a35deebbf770653215ed8f66f67e195846f81dcd657970eecc79a1c91cd7bbaf42ed4592094d5c20a37991900b44bf299b57a75103585a46da1c84b9cc43c5b2a020b366090d650d63418d2b8b2d131adcdea24cd8dc90082b38e9135a4161fe111aa4456934d0a33a18aecf69ecb2da187f971ab32db9df2ed956b3bab8b6a820b98ad36f6d806a7d93cd721af2c6030e8270a2f6ef6722444c46242dc8b138432093b59a23225638c9c555772252b48487075855367c67a502d418d6278d517186bfbc0b92bfeee066bcb0ccab67140c06f1a7fa96b4bc2ee1122a1cd4d282635ff6cad3f6af56a5fbde81f504812ceba632de9f88a2085a70e270290b5000d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012e10d6188be05cdda8251c34df2d9ca22dfd109f0154e56f07d6003f38b191841b71e075cf36bd6b3294e909fb835092dbd48882e3c6e6c0fb5a2ccbbc24582627923649fbb50ffd0af0004c95ebb246fffb1c28228bca788c54b6b14fac17df3fa005d6a97a7c8d2ed5576e566c956a71162211e683f888a9424fe89caab7ed1e2f4f5c41ba4a11d00aebf19ff859c45c9a1b36ecfc0bc8ad3a37d40b29fc3821d0b0a3be45b5ee2ff5140e6007a63bc5ac7dc51c50ed52ebf2f918f4d603c916ec8ccd48a3725910369bb81fd9c0d58a75561a8e5248b42fc8b54a37d1ed1629137332b75c8da6efc96447e0263f2a97d142e17afab06769647ba2c82e12eb329ec0026b313bbd51110a989f40c42b92041588be4e726955be59861719a16d0d613ffd94cec442aeeef56760bf3bd4904283734afe86b2436ed766e8e65e943d19c00c17f62ab2955534fb1c43d4d97340a0b79ba150bbe1302cd77380271e02e63ff3e809d54d6aaacb04e3bc2b26af05f8446daba85fb7fd04158c7fd8e31e2f4f5c41ba4a11d00aebf19ff859c45c9a1b36ecfc0bc8ad3a37d40b29fc3821d0b0a3be45b5ee2ff5140e6007a63bc5ac7dc51c50ed52ebf2f918f4d603c916ec8ccd48a3725910369bb81fd9c0d58a75561a8e5248b42fc8b54a37d1ed1629137332b75c8da6efc96447e0263f2a97d142e17afab06769647ba2c82e12eb329ec0026b313bbd51110a989f40c42b92041588be4e726955be59861719a16d0d613ffd94cec442aeeef56760bf3bd4904283734afe86b2436ed766e8e65e943d19c00c17f62ab2955534fb1c43d4d97340a0b79ba150bbe1302cd77380271e02e63ff3e809d54d6aaacb04e3bc2b26af05f8446daba85fb7fd04158c7fd8e31c0b5f214cf6425a96b18a07a569a74bfa53b0b6abdc6390f04c46b3c1c3defa24ccad7658d3fce76b967f9164f4992c9a3a5e58bc031affc824a53fcd5b7fd80b4be4333bed2bd25c32590eb7a4670c482e784ac56040cdabb79588bbedac1b0ae7592f64362eeb6c7da0c74fa53312397567d73678fb7209bb2333079be66233475ae64d7defe0d5ffada663a3f0f30e3097cefae80e133599cf7681e1e6062a4e6df9ca7c2e87bf53a21ce4b833777f7f1e44f270fc1dca81e35497c1dbae0b1c6d120543e436936e95fa43bc68b3b65f1effa6059e337d95e49ae8412f0911acd2f7f68b42d753b5614c8cc1c64b2409747d4b9b759ed949810b46446b4716d122f2ca9976a16f12317dd7b9f68e0ddff6494e4685d559f5ea7dbda7391e2a6c584542264c049ea2e26e1b1c8fb15b30db6adff7b82d319bdf471435b9260fde19bbaa459fb55d624b6611c861459b77cd8f8120d6b8dd53bd583b8c31570e3d03e2e8f6fa44dca59b45727026e0963a6ee5cb4e431bc7017dfb18970ff0222c3d1aecc0f8d3102212122d3fd945e531c8a619be6341fe27bcbc2ffa08c42842d2026435d7415f2a31069373367c7f516ca43e7a03e56e0fe14e9993553b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000113f0439e0427c41bf2e47fbd9609319053d5f6af0ea8369eac16563602e2b6e33718e12439ca82ecaa0cd9f8d799db43158a08ee796e803972b3d5303a5988db1ea0898c9a19aaf9fe684d300ec4c84d4f63b18fbd6ca934a434237a56f0a36d1b20b3e68d4e0f50ee333c8fed67f502ccbf1e2d26fcacb3e22544b5bb4848732042ad6d44b85d8c2e6cf1da18bbb0083196e509bf2b27e7fb20497e0a4cbfab1fbd5292bb47a273d1930e25e7444ff7f0afb3f24a21d1339e0ce76ef5b34056214d63225799d3bce820b9427baa7028b3654738a93dd550b5470d9c337fbe551eb29cdda8662c4317df46bd84558fd76ee151c3600f23cae3e62350cc8041ac2682efabb60122b088a39e4c6a5430cb3c6d32233b9b385c5808e233017eb7a7197d105449fedd4f775c61b395abcf34e5d966d8cdb1c0bf41244eb9fe81485a008eae5a8e05ad72ab32177e13a4f3f7c74e2fbc0e212e7aeca4d838077996403f7151a571fa528d54cde881ec5b0c085af8693ffb2bcaa0ac8858b4f88669c12042ad6d44b85d8c2e6cf1da18bbb0083196e509bf2b27e7fb20497e0a4cbfab1fbd5292bb47a273d1930e25e7444ff7f0afb3f24a21d1339e0ce76ef5b34056214d63225799d3bce820b9427baa7028b3654738a93dd550b5470d9c337fbe551eb29cdda8662c4317df46bd84558fd76ee151c3600f23cae3e62350cc8041ac2682efabb60122b088a39e4c6a5430cb3c6d32233b9b385c5808e233017eb7a7197d105449fedd4f775c61b395abcf34e5d966d8cdb1c0bf41244eb9fe81485a008eae5a8e05ad72ab32177e13a4f3f7c74e2fbc0e212e7aeca4d838077996403f7151a571fa528d54cde881ec5b0c085af8693ffb2bcaa0ac8858b4f88669c106dcffedb22c4e77d8ed497e529531977a2201efff2be98cee73e2ebc342df13364dd1d7f616c318475ba546e39a93b592fb9adb0bdc5703588701952d70c6c81237f319d05ab81aa5bbca31f5e173ee541b4e6aca701512b448911f6f5b009d39d24e3b13b176137675c24434341c29d0daca0d4b50794a8b073a0aae8ca7571cf329bab9b670d0095d183e71880aee2a0befb493be15f73009bae80204efbe3530b26cc20d4b39891caf70150df9705e98ea421ae5b26cf16e8fdddd59bf99075da9215480f251dc912ce901a75f0c7f114709bf2cbee148ac2d79d61e1d1f1054f3532a8c6c8d1f1601dd4cc3d8731b676ebd75f715b6b82f9e6273bba6be24acd20a653dface2729932149d1bfcb9a4a58a0c1b81c40e5fcafe3843509c92352b408d5ff68a7694410471c6370eab5b216228d4570aad27ebca929cc815830d39d3364de4c60fcb4cea0244c19937759c6c39d7b666501ad782ee5ee5c6d0ab9730d5750a1962378aee49724c60264ae62835483fc8a05a0011af39c3d84392d9bb0f4ae0e7b73f9cdbdd049512386b39ffcf7b53d74b01cf90f5b6eb97937732e318680b588ac1835cef0c912c021d7b0449b222b655b312f5a2da7d1b5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000135c8600ce72278173bd0971c118a08ec595f8f03bb96a52a192edd1cfae49f0d37af72aff09ca1b55bf534fcf2f0ab982ef45088b04ad49bbba8879a51d990da1142900518ee9cf3ba120eb84afc3efe786bcea758bd944b16fd6c643f6671c12277aaff7086ecbc3a6e1c7b40634575a3918f9a192304c9ba151bb5c9a49f421c541d74a468b02957806cb85b0652af04df971a60348a308f1c0a3ddc3e7f5d23abe28b5b974fd6a87f9347a4f9ad511d6701e1a9186eeb0a1126af23c180a40da49347360b70ceb5821f99c71f9d6ad3d0c18bce6cc0bb9931d15b4d387ccf325b6cb8c9f48f314a7de06638e062954e75d7703ae0385ffffb5f91b2c783320436e0640e3934098b8a9e00e39e131600cd2ebefed2ca8e64cbe5db821a700a3bc91f9bf1c6cbf6747561ff1c61ecea21796a3d0a7a2e8d34614b117de58ff7151261f4471e042fb9b5160472165f6e0401e9bafa1df4c7f7fb7d498a8430322aed9e0bb8e1fbd0464ae9fb8de9a0921e44af410f2f0453a131b3a3757bcfcf1c541d74a468b02957806cb85b0652af04df971a60348a308f1c0a3ddc3e7f5d23abe28b5b974fd6a87f9347a4f9ad511d6701e1a9186eeb0a1126af23c180a40da49347360b70ceb5821f99c71f9d6ad3d0c18bce6cc0bb9931d15b4d387ccf325b6cb8c9f48f314a7de06638e062954e75d7703ae0385ffffb5f91b2c783320436e0640e3934098b8a9e00e39e131600cd2ebefed2ca8e64cbe5db821a700a3bc91f9bf1c6cbf6747561ff1c61ecea21796a3d0a7a2e8d34614b117de58ff7151261f4471e042fb9b5160472165f6e0401e9bafa1df4c7f7fb7d498a8430322aed9e0bb8e1fbd0464ae9fb8de9a0921e44af410f2f0453a131b3a3757bcfcf049446918b5c2355ed130b5585ff686a190d82159c5487c3bb6015c6bc9a559a06904f122b74043351594908688b1c44ec222e9438ea5ee9713bff2dc8aae7220ca9d197e9d63edd9c27ef44ba8e9b7369a5b1ed6cf3b17b3674dadb682927f10d30bc8e4eafdd9d28bdef2d036d9fcf82923f6787180d598f702e8a37ec44150b799aa8be79a2a7a870182d2247b42b5539582575c7afd64271b25bdc94f091063a182516a91903b031a9b46e08eafa09bdcd7fe81f765635d3c4628e01cd9728c32dca65323b21a71c166e77f2beb47a1c2a0035bd2cafec483a3af556fac6080624bc02f2ba952bc81c10bb966c567f2ca808691faced5a5cb83030ba8532050c95382b9ffdd465d6ed74207bf0c1f56fec7cc59ea51203a252a4ff690dde2673eece7bf4d4e2b4e0afea43e7f00395945d3baa127ee1f97020467aefd39e13f366f7bd424272e8087a32279cfb9c40736a471655382420259fed4ae9ef81202a33b966c5237bbc5e72a48f8b338248e92e02c0004e6668aee36617a9660505947276a3fde53431464e9fe52085c426c66ac71e04f120a65c39285e487387197a630d78dce53af30d404f4d81abf2e4c758e44b7236700855915e2addb0370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001227f5e6db2517dda3a3fd32e9a59c68fb7e79aaf31657cf045f444b852b7d9940e1162fd97b33407b47fde2afcba05b6b82bed949918fc7cdd0cb82879c992b73e9acd7fc7dbf6653167c61958912cb1f7cfda4c8015438a1466fe60fa8fe2412fd0c32a1c9d3c23334e78cd13fb89bc43d261f7baf851faed6803491b649aa417e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d28193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e1110593943781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e20087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e1158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c2a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b69652bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef617e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d28193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e1110593943781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e20087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e1158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c2a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b69652bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033de437650bfe98ec02cf7802101505b5bafdc5235dba1ae2bc0bb0babaeec77000000000000000000000000000000000000000000000000000000000000000008b533ecfd061144a25fc8cb7048305409d63faa91f86a7953364b8c5d1c263500000000000000000000000000000000000000000000000000000000000000003c9377634dc5fad3628cc04b914980af65861bfcc7d40c277ef7069808cb12ac00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010e0a459ae307a012a0648fc4f2b6baeddf0fdf50a03994af3ae9f72e84028ac11ea2fef64c9f29267bd6951891d97aaa1587256239737c749139b02bd379128331f5ba651cf85fed5f9b703b0d4945124336b9ab6913646c5e4339be7bfd7540282a5c796a9727da30709624c424752a77fb4cdaf3d9be5bce462343205dd07d0c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba03012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b05e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df622724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a331d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce0c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba03012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b05e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df622724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a331d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce312cc9aa27390f6d82121b4c5ff201eca0a8b2d71c84376a9f306311f4acc8893038b7caa7bfa85c7fbf171031b5cf9f0f66c15dd37163fa0972b60d2e9cfd0104753f1db54c5f349d475d447636608315b98bbee95b1f27814f4c7a4d1a3a653048def19a18f94914fbec57152ab9793e4540dea414cee909909ad1a82c44e8226f96a0239694c94985fd8422d699d907dbc59d4494aba283543616f587a52b2a231c3690d9c3d72636b4ecbcfd1424dececb3047cf2face6649a077b3b0ca4201999c4eec7662408cc690ea15e40466aba8f4a3bcb7b9a065d9bbc25a082902ad3c09af626c2b0144a6a7c5cffdeea86e22457bbbd0fcd3be7e5886860c680291f4d11b7c484d7e268773d047eef9c3a44e5ee2ff219a50fb1a7ee658e670c3557644874ff502f445add6061ddf4a009b0f59f5acca6f7dd202a13c347830c2cec6726e066468ef9cca66cea5c8d50575028b5bb468da38b02f407ce41ac531a8ad3ab785e38e061488c52f7872debfd85324cf37e7e5c1b09f3bd550dde023adffc93bfab224a897c4223ff9f77bfad0991e1fd558b21ac7043f7394f7bc33080a7619edc472fbc293eb23d89e4a10bc784030aead8ec9f999a2de3fff48f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000106bd3a72dd130e9de46a812d7c9a52183fda259061c5f905831cfae5e26c0dee0d4c31988b1090d1c3465cea676b2734b2b26aeb75348d1352fcaa0cd9861a300dc6a3d82a75152b691a47a53fa4f1d4ea2393628970ded1f7566c6aa4087dbf0feb5b5155ab1899538e4c17a2234c19c5ef8f3867ac655acb803934c5c5bd55189957b6849b67656bcf6964d2f8279c331cdc028c0f5023eef08b6a7b4e45bf2766a8497b64989a9430969b2d07d863ef29bcf97d3da8f7aa3ca58284b1ba423afeb690970904fb1b0d0ef81ed8c60cdd49b310b2ff97981185882768875cba0501496f68f6fb04e4f2f107e12739f344fce5eb564d618387a7a8c59778a34726f990d2f32d18e787414ad89a3bde3fc9561b6359ca1189f2e6e5110aa4cf9e19066f2d0cd2e71878beb52765c421c058f07d98af82e791a6464bdbf55b306302dfd41ebfe17c85a446763b032b573e87dabdfca50b6c5ef2fae68e35380e133d202be1401e837a5bb989c4fcd4a8c19a6bdaff64418cbca6324a5ecac7f1ee189957b6849b67656bcf6964d2f8279c331cdc028c0f5023eef08b6a7b4e45bf2766a8497b64989a9430969b2d07d863ef29bcf97d3da8f7aa3ca58284b1ba423afeb690970904fb1b0d0ef81ed8c60cdd49b310b2ff97981185882768875cba0501496f68f6fb04e4f2f107e12739f344fce5eb564d618387a7a8c59778a34726f990d2f32d18e787414ad89a3bde3fc9561b6359ca1189f2e6e5110aa4cf9e19066f2d0cd2e71878beb52765c421c058f07d98af82e791a6464bdbf55b306302dfd41ebfe17c85a446763b032b573e87dabdfca50b6c5ef2fae68e35380e133d202be1401e837a5bb989c4fcd4a8c19a6bdaff64418cbca6324a5ecac7f1ee2c8dec332a0eb07be2e85bf95e4ac03890d7fb75912b77ba0427fc136619570030f5a887043c2c32cc0ec57b270ef421399ca13b97e54b4f792a052157657ef30744c761362bdbe7773b833b22cf34e3465cc1ebfda0e15aef3b66fb079115f82292dd49cb92f74f66e7f1665b7c6250491256cf9c31655a41ca521258837037285a18dbff54b7c6e5c54077613a3b8b06117c59d53d3ee44e4f0578ce107f0c28d5db5b020c42c7feba021e2697437edb476a146aa9af08bf191f5a6e4390d32a8a0766c0e73aebd9f41489a19b5fb4e621e8c63975fad355c990da1a93021338734a4979e4e8528e9e439e4f541617d14bfa8b2a316ddd1146c396992f2dfc0eb51eb70a4436041858ab9710fc44a0c1dddc0275f623210d3838bbe842827c2edb4d2d9b97e8fe659fc213861028219217e7f281abc13710b8803f8be4036404a954924ab77f87344d13fc41688b33f4ecccf1ea11bfda953bd7a13cd542fc244b4cf4e16ade526852e47cb95417bc77e9d3e34d3932cebdc6e78f3f623cd53828ba7e914bb71f7ccfac0c7e602acfbabee9eb3a028d2777c251ee8efa383805e33efa36170875fb99b1cff33439824d54374d0c4283488aa5f0c01923047d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011786362307b1185337ee6ca38ed654991e5bed3cbc322545ad292858aaf5b8d707f2af4b22c6e2fa0c9fd5030a5992a44cd490ad66559b29a625147a884573cd28376b6b4b2b62d9915bb199d8ef4dc57784edd61a2f03a898a1104c81f69734151ed1b618b704742822fc64f2f56780331f0fc74405a8eb4d2401ee843526501bb21bbab7170e70c6b99ec5718f37fd9cf67834571ad16b92e9316a65c98474244de44548e8f18f3946613a8e70c802855020c7b23227b00643ff829a367b8d0a7a8aa593734833e1a019db37cc17f3cc43270da0ec24e2ac339539fcef96423585755a6c8cb7cc1e5fe624c833e80c560371ee6860d438ecf99bb3031069bf3464b53be14069036820814816fc77c2fd4fc344249cb86d5d01ea21f0adef4a0b9b4ac41ebf96fc97df7eb7e903883d24f6d5b7e4b040ae3c2b46cb0f5210b705f78a2b66420d1108a2866872ee56ce69746c6491dbb5b46c54cef5b365ac6e3a0875d499bdf2eef75d79978d11a931b8d22c97777143672cd861f74c9a53931bb21bbab7170e70c6b99ec5718f37fd9cf67834571ad16b92e9316a65c98474244de44548e8f18f3946613a8e70c802855020c7b23227b00643ff829a367b8d0a7a8aa593734833e1a019db37cc17f3cc43270da0ec24e2ac339539fcef96423585755a6c8cb7cc1e5fe624c833e80c560371ee6860d438ecf99bb3031069bf3464b53be14069036820814816fc77c2fd4fc344249cb86d5d01ea21f0adef4a0b9b4ac41ebf96fc97df7eb7e903883d24f6d5b7e4b040ae3c2b46cb0f5210b705f78a2b66420d1108a2866872ee56ce69746c6491dbb5b46c54cef5b365ac6e3a0875d499bdf2eef75d79978d11a931b8d22c97777143672cd861f74c9a539311ab0617b98f387b692853edbbad3440534fefe20f761e5863091197580993851c71de7f628ed293f3d02cd58aca8a280d14efd5708a48ca6ba2f2b5c360085113daa8ef5b235c3dff368a1500f4526d8fc167282e6ec9e562304abc9dfc33c8066c15e7ad9e05f7cc658e57a8230a048ef44719cc9716dd26c4473c13a2e98807736343ce73ec5036d4242212911fba5d8d7eec6ecd64204987f7ef8e1b2ce12e518ede69ca0c6a3f113c5ed7db1c0435192475a66873360ade7ee6597025d73b313b3a8dcb90293d41cbf6ffd70b1fdd0bda39fef20342f856b28243eef6120659f765fe09e7a1ca181535128d9015f6cfcbc44e18bf66553ab6fd4eba8e600587b29deea1e7a2320758f7169c9647f27335d9ac6f8e68fde17291365892b92ef166ee3456843b324d0730cb3a86f062a0805f98f149d238617d49dcac22ca2d91cd24094b1d024a434230427cf541012b831173fe64d62c6bdf9cc2e8cc7a22b9799db335cd1467d0e4ff10ec6235033df3a4e98b9154ec1493d8314048702dca263c90193f5ba3a8cc08cf81b5cd49c9ac27c58caf929618b7e7b80ba0941ced3a12590978c5ffff475c8d15f35c668caf5174975a5ecfef2ad6032cd67e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010fe70bcdc52ab1bea8e2dcd8de856e34954b11a6db55a2285668a51652ce9ab21c686fb89b444c8f0435ce21bfdbb7546788be0e58af13c048e86329ff3a485a03f5b06cc4398a0eee7d4535015c65a7f64b9ed0fe4a09ad5dc4a50f1c0a23ab10fdc8808341752c0f8222f2079f5baa7776b85c0e8baa3e6bab85fc1b7b23db392fe0c521b0d3013cae90a1574708afd01f83082845c7177f28a9c547495b2606d01f3ade4f2cfec3516f5ea8b8f750522715f3e10732041a048727b8b6a4db1def63d9a8741f062f68d326b4632b6e87832b38a428ff0717168d26646ec7ba22109c26578be0f9d0972cd94b9cd4919ac36dc36523fa148216a3c69b91384715acf3404a449b1eed0c1fc185efd9286102a623223308ec41165fe5f629e6a02a530cbfb5bb64e112f3e03e7a1026d7c143f2d8e719f02f5816d10709d619612c60c0417357079aa13c9ec79daf3dc9c2c6a5b3a1b23381ac42ae90ced1811f139f3fbe8ca8f8655ec361386250c2365f7ff348679ac599ecea825c312e7ee2392fe0c521b0d3013cae90a1574708afd01f83082845c7177f28a9c547495b2606d01f3ade4f2cfec3516f5ea8b8f750522715f3e10732041a048727b8b6a4db1def63d9a8741f062f68d326b4632b6e87832b38a428ff0717168d26646ec7ba22109c26578be0f9d0972cd94b9cd4919ac36dc36523fa148216a3c69b91384715acf3404a449b1eed0c1fc185efd9286102a623223308ec41165fe5f629e6a02a530cbfb5bb64e112f3e03e7a1026d7c143f2d8e719f02f5816d10709d619612c60c0417357079aa13c9ec79daf3dc9c2c6a5b3a1b23381ac42ae90ced1811f139f3fbe8ca8f8655ec361386250c2365f7ff348679ac599ecea825c312e7ee23c14b8dd46bf6801d973ded605a174d96eb14134ef64d701a2542071b42a88e71b3b01d241ff11d2394588569795b5a3e33b9236aea7b57681fbb40ae567f46e288ede07a8526146b6ece029510db9fe4f9e30d7d8ce4bd50d678ecb4dc84d9c1bb15812766fc39121e909ff572cc359cb611f54dd73243fe3b1d732dc77587b1797013207bc3233d77e55155225e45558620183d42d59f64d0284979d1e84a20e8bcabc3211b455fb5a4b3b654c134d6b4fb8cf11fdafbcbf8c0f2d83d82900145ab0bfe1474414e5fd8ed92aaf47728a6cce394340738f5664337b08eb544f39985f7f4292203ac12c8c92f0e6d329acd66f7f33712624e4ed516ddd501d1c30cb837a40322e5216009c8bf9a2cefbcf2677a45c65338d78207b916066b7271cb09e566c2d6f97d2b33b5fec24b74d15575450147a2f270dd6250c888e7fc82283ee9a6be5c0d5bdafe380fb5f970f4c88b946e12fa3c41f2805d81b45741f0718535274bc84e99d4cf11bd5d227e5c5252dedf604eacf744ddf89c1fe55db25556b80634fb1d3947a694073c73f78a54c5e0e85ecff8632438bb12e3b80440000e401f06b4729c1cc7a3b57e2868826dfba9050d1b6c5d16dba551e56e3ab0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001032b672ac0e49382e6995e2b2e34042f605eee546b8ca53b9868be2520ecf0df24c20b7d51ababed47c35ce9aed7b6f2a63f53a24af518a443ca63a2a7cd7fcc2a151cfc2844a5037da02611ec9305e0b6948fab61ac89a241d62d617abde4f50edb8b12d993dcc48bf93989f61a6ba375cf320f71851510708f4e5849e940d8179acb763de9c4f819160df8c8b1a84fb8df5ba0efb47d5944532e22316745ba28653489c2163b07e6e9f207374e57b069673d5b19987bc254da02cace98ba473605f94f3590d8d87d6e45dbeb78498e7a163128a53979a2bc72b5bdf7045ca109fa06b0ca6f27278291ba241487b671a83067d364137f78dcba7b2f08fba3600e1dde8c0bd43c3a73275d4b99596fc7d95491db14eb7bbf4988c901d315cf2131e22173f42bc3c58cd8a2b466a6903848f20720f4617d5c4fa467eb2cea30e0069558bc3b252d243fc4d279febf2ee71c60404b5f4c71a0d67ebc1c1f6d0ba4396aa743c4dad2dbc03b2d860140d11905e658b0aa00877ac2ae74d0e092f45d179acb763de9c4f819160df8c8b1a84fb8df5ba0efb47d5944532e22316745ba28653489c2163b07e6e9f207374e57b069673d5b19987bc254da02cace98ba473605f94f3590d8d87d6e45dbeb78498e7a163128a53979a2bc72b5bdf7045ca109fa06b0ca6f27278291ba241487b671a83067d364137f78dcba7b2f08fba3600e1dde8c0bd43c3a73275d4b99596fc7d95491db14eb7bbf4988c901d315cf2131e22173f42bc3c58cd8a2b466a6903848f20720f4617d5c4fa467eb2cea30e0069558bc3b252d243fc4d279febf2ee71c60404b5f4c71a0d67ebc1c1f6d0ba4396aa743c4dad2dbc03b2d860140d11905e658b0aa00877ac2ae74d0e092f45d06b2ff02768d923920199c026ab517127d95c4cce057487e4f26155032b253c8200dec7b878ab3e6805fa2f1ffabbc7ff4adba8581353d7bce07b093fafbe593007bf1f8da6a6ca7a3472a0c75110da3bc4dcff3e11c4c535fed193f3ec76b490b2187913365744d524d4e406e29cfeab88c3a59fdee3972c9b904987d9ce08421751c7492a7f4daefdd74798085715a3130b4caab2d82e6354c5073f4a30c423cbfac52563c913e3e90215e64f44a09988e140d596509ac0577406803c2e3ae36613bf28559c9975162fcd4f3ef25ab73c83427ccee2ac7bbad66e91d9b2078106a575d3cee30f604bbe7b259ebf018eedf9b52d8f7260e568f3fd860ad3bef1a41f37bc5ce34af0b1d8106849d9614511a386b7fb96e963d0fbc742efc999226b452e36b7cf36f223695cf54e8e081495015884c797cf9c3f0e4a9e643953e30c5f8d000c5418d297e9594e0828dafa0c5526946aa02c4e2a16e7bb51cdce011743bd5c57a8e7e1a9b6b1b2a9687a420d295817b78c071f09aea5f091b74d73dbf32a273ef958323c37f80875860ec2310c0dce4c0b814756db29413520a301da64f2c2b8e1b1705fb27ec4cc76e2f7d384c423687e10abafbfe994d115aac0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001332f131627a24e01f1e7489f7302bd5684e80bb8262032a2ab854cfd539ddf9f1e17e61d936f9748b8c669b7708456a22c552e662849fd2889a3c9f0346c10172ef585027453f51089f9e39226dcf635187793c72884a030e2d48ba61373e7ee2aac1949700351c00b2366f06da13929bf1e0610718a6a065a20658192b2a7cc233b71d5b1b9b94b37ea516b6d81d75713c2f380d31841dd7aeea14e31a9f1291cc48e2a4e4646b4c815ae94927e28a90e83a57b3634b73e1e3e8f9ece560ed83029392c78a09e7817939719238934b31e418f8c0cdf571c344ec4acf851b5cb0fd6c6d3875f6187e86c68e6dc76cb4d0405096ffc6da1ff64de6c4007ae4a3630ce1dde5b23185875e1f37db1ae077f307402c82475c83a3a024499d9988cf40f31e221a4dce7a78a1e0c824e51f880f1d29633e4d730e15f2aec532667730d34069557c7af79ba4d69c1747866257b8b7042f49a65fdd05683c43a3ffac0c10bf96aa838508645b2963e8b8799da8496d656076ee6fb4b42a96cb2c0053f40233b71d5b1b9b94b37ea516b6d81d75713c2f380d31841dd7aeea14e31a9f1291cc48e2a4e4646b4c815ae94927e28a90e83a57b3634b73e1e3e8f9ece560ed83029392c78a09e7817939719238934b31e418f8c0cdf571c344ec4acf851b5cb0fd6c6d3875f6187e86c68e6dc76cb4d0405096ffc6da1ff64de6c4007ae4a3630ce1dde5b23185875e1f37db1ae077f307402c82475c83a3a024499d9988cf40f31e221a4dce7a78a1e0c824e51f880f1d29633e4d730e15f2aec532667730d34069557c7af79ba4d69c1747866257b8b7042f49a65fdd05683c43a3ffac0c10bf96aa838508645b2963e8b8799da8496d656076ee6fb4b42a96cb2c0053f402a7ec2133463687786a3d6da6f64603c5c76ae7a7b94ea9472e074b664b00e7011e0733733a68d6175699e74a14c24218fe3749aa8e236ad740b308fba24068a0463d9290139d0e87c62aabc1b686981af18a36e31f98c3bf3bdc48a2fc5350b19cfe832b68abda9ad581d84909e7cc426c07454ec8235ce196775411bc843013e8cfac0eb91260d612b3986e68ad384b5921fc84dfa9daa494ef4b1ec3ae3ae2cb38ab090b4218007691cf9946757ff4743f7d9b57df82fca384081c1797ef527ba0c8147fe4844a8ef6668d2dd569ed454cb97387302e7142b452a2ef65a3c2200324024e69b70ced70d6d249c0adcdf0349867da0ff2750147c07c241622c21c507ddcad3d9bb62376355518dec00fb51ee15d5a5fb5cdbbc3035489b1c5b28227627ef4cd268cdac5ce6713734b666c5cdb20fffc4fd567ca79a3694c40831ad0f9a7f3e20eb39b6d5595b84ef4f5edaa5ae1eb8449f21e3b1b02316405f1b2e810273de52bbdef62e85b99713926d62edceae20c601d7e0135a51b1016d315729d910b57c6f27a034ebf43837227eec71b311d9dff95a41e0f2bb3b86ad2ba43c5da42fd2f2d91338cb960337d00f55c90227d687baeec5d7d22bbaa10500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010f6d46164db5b5e67bb431a87cf90961b8da2434d20f5deb489e1f4b4853227a12f71cc9b6fa0026e7a643b85b15acee6d4367d36ce4fa3de9b702f84c9437270fb355626f9a7bcca27eb705733290b9ffa4ac3695d4b78bcd05549cc17284b73ae27bf987b9dc8aa9dfc67611893ece9492af68597489f88d48efb3411989f1346195bce13462b2ec5586a702e9417bda372e8f4a90a2e972e33e026a02f9400b9e6a431ecb9d4d13aa7958fd16be84480f6a6cbebc56322649f2ea95fd06c105e7ecb06605ed7e9daba1430e8e476ab9f984dc4f9f4a20d9bb7258120ede3c3a18134f99fa128162545ebcf171b895684d141fb9adaefabf71be94edf121c51d879f71fe1da379145a264f48c76515a1df984d8e1c72a440a93bb85a4a572c2278608e01e25c86eba5d9b0b7389aea806700ae7b3086775883f534a5b5a8d513a61d39f694315d65c2bf8c6be4f96be4d0c78bb3f44afe10f3c8bfc373b3da2c59e2c6096bcea29a3d4073941b06943d75d1705558ae1d8839682d3c8c4c27346195bce13462b2ec5586a702e9417bda372e8f4a90a2e972e33e026a02f9400b9e6a431ecb9d4d13aa7958fd16be84480f6a6cbebc56322649f2ea95fd06c105e7ecb06605ed7e9daba1430e8e476ab9f984dc4f9f4a20d9bb7258120ede3c3a18134f99fa128162545ebcf171b895684d141fb9adaefabf71be94edf121c51d879f71fe1da379145a264f48c76515a1df984d8e1c72a440a93bb85a4a572c2278608e01e25c86eba5d9b0b7389aea806700ae7b3086775883f534a5b5a8d513a61d39f694315d65c2bf8c6be4f96be4d0c78bb3f44afe10f3c8bfc373b3da2c59e2c6096bcea29a3d4073941b06943d75d1705558ae1d8839682d3c8c4c273e2c1c70f1788dd278657d66ca3598829eb5d445d25fdee40e36a87298b8306636f638696b3494e042cc24ef0a03017341a810ea0e7082c785281a0594562fe9106a575d3cee30f604bbe7b259ebf018eedf9b52d8f7260e568f3fd860ad3bef36613bf28559c9975162fcd4f3ef25ab73c83427ccee2ac7bbad66e91d9b207809d8bfebd944e2f7b4da0e84adc98b19a3f6ee9a22a951db74cd7e2c5d95ed3a01c4b99e348afdfd40ba69c835715274d0e31bb3bc6133eab4d89fab5ece5e940782dfca70c9aa594da4e9702e692fcb1e53193fc3645ded8abf4aceae08c0e10a30d303645911520afcd87161e76f5a40a40c659a82c83eed862befbc8dfd4618bd631388308b5ddeae3ed6a97e21a61c31b6bef48f5cbab3a08ccb07dec11f329156e525792f5e9e4de150f7328058980f249a82b84750a7034f1669f53fba1e80937512ccba6b84e635edf3b4f9fc3b88ca110c4d7612d4bad2049221af0f13e552b579009cf78bed13f3c61ffcdcfc40660344420be61b0cf14e750bad89132a0e4ccfdd4dfdc86f0bb5fd290d1603cff81d1e0f7d63498562de4d0ddda3328ee72c2df12cc05efaeddcb75ca090dec35a5ddec9aec45042f143ef51833a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010f63ca87fb6554e5ccdd68f6b077d73a3bb4c5f84b96d2dfe59c58d05137448925147966ab80e921cc3c321a7d7b455142950ee3134e96c2468a4580c5224d922060b993a965e04147611162ef30911181d332b4cc5c8942f0e97b233c0920f40c5b60b0c50986ac5a055ceb11ebefe02922a1cc24c3ac3a94018cc07f765c4d3036b4f581afee8fdf581f5a12018200388315cef6b547c023c21149500f418d0fc94b0a7e50117020a7e0a5edfe7dffe9c3832d1297b15b756b1fa3aff0be74311188cb886fa8cf5cb89cc25a078a00b3bba216b5a37b6de742c3a7904c47be0eee773477905730a347633da5f875ff6e8af6e553a97dadb1ea6d456fb3b8433557abf9aa2e4c0ccf9b0fcbc225b2031bd65f7d704a7dd2b8c63f7ed17d66b30aa8540655d1b3f33064f0343dda4dfd0670397e99027b48e066f16e2e82994e0ab65be052e77c400e074efacabc7a0f021579830c4090af372a79c61773017b3549a41fad1883bff1f8b105354385f120311f78fd0c686c6202b726e88cfe863036b4f581afee8fdf581f5a12018200388315cef6b547c023c21149500f418d0fc94b0a7e50117020a7e0a5edfe7dffe9c3832d1297b15b756b1fa3aff0be74311188cb886fa8cf5cb89cc25a078a00b3bba216b5a37b6de742c3a7904c47be0eee773477905730a347633da5f875ff6e8af6e553a97dadb1ea6d456fb3b8433557abf9aa2e4c0ccf9b0fcbc225b2031bd65f7d704a7dd2b8c63f7ed17d66b30aa8540655d1b3f33064f0343dda4dfd0670397e99027b48e066f16e2e82994e0ab65be052e77c400e074efacabc7a0f021579830c4090af372a79c61773017b3549a41fad1883bff1f8b105354385f120311f78fd0c686c6202b726e88cfe860cbe3279c1e64a1d566b5c1eaac3940ff8145136fe969a8b76b7ecf32aa063480029b70123aa771183f8afbff82ebc0461e4fcc53bc4391374131ff4013f6ace115fcfb7bce18f5e289262aee8f357a54628277812e3ca9015a29d3ff9db660e3296b44d75b1560bfb3a37f7e677f07a0ae7aca8998cfc1967c301167d3ee94f12f1bb436dcb84174a163f64fcecd4d617419b5b0d03da5805ba4e5119e618251987c122e1c28f4154486dfa2c6e7d30c7a3d8cd6511b0dedc34c33364b166a7131323fab31a8c01f5421f08004353bc583a6504b90a2ebd8f60d3134c4d4c3a103cea00be7c9f63fab9dd5ce92d6b4e9abdebe16f5a148b1b925b2340250f8916de7d76c02ffc1562acc4e9394ee1f8aee33b1991c7cd45b6acf0dc81890a81051071e4b70c9e9021cd20cd1c411570ef5a7ce7da3b57c51524e8b5640763120d5a14206bd72e4c59ee12ce24d17cbb6abad0b0e7f806e9ecfe7d3d7fd2b2ad36af78383783435276e5b1d102acbf459a60b9c33ec30101b6dbe4c68fb7094f1a886a8e82f305db0ad742209cb053819275e178bc50a92523b77e92f4d8220c09689f8af9c5ca55aca4267f78c1fff14f2d057e9c29166638ccfe6faf4fed5a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000137af7aa1cbe1bb1aef819ee21e5617a853e144a08d7175e8bf66fe37e830da8a1743ca83d2c6f264edfa924942aa626873670c6075ad9dcecb4a312e6d8a99063141d70caededdc44ddb02dad3381b6cd6d223b15970036990964a1e148f7d9d01662d22cc70b9157b6d911ec7c158ca301840990bb61ce157330a178e654cd72d8b61d7a11876c0b10df40bbdbf6d510442f1c1d50581c29229b652d128da6d12749e285ee7893f4ef20bf4424092af1e03a73a3447775907037a9a2ed7259423b8e936257a51c37545c43ab4bd2294ae7aedd50d349d7a0f48fcd715cc441e1c4716c9da85ae3c8aba3bc54b42dd6b73cbab26fc185ba189e43415ea33bbe3329c8e0ebb6398d14a5cd52587b1ace723d973312f6d212b1a128e596cfd54940d6371f1449c672eb5a32ada784e5318fe6d25cad9dfd7f07f1aa2939302ab6d3d0ec649a8f1fc1673d029bba67860834c6b7501d13aba84b6d534f820f2a6e102f139b6570e03e98c2fd64459879f7cd5db23fa38123e96e257fbf4df0d59202d8b61d7a11876c0b10df40bbdbf6d510442f1c1d50581c29229b652d128da6d12749e285ee7893f4ef20bf4424092af1e03a73a3447775907037a9a2ed7259423b8e936257a51c37545c43ab4bd2294ae7aedd50d349d7a0f48fcd715cc441e1c4716c9da85ae3c8aba3bc54b42dd6b73cbab26fc185ba189e43415ea33bbe3329c8e0ebb6398d14a5cd52587b1ace723d973312f6d212b1a128e596cfd54940d6371f1449c672eb5a32ada784e5318fe6d25cad9dfd7f07f1aa2939302ab6d3d0ec649a8f1fc1673d029bba67860834c6b7501d13aba84b6d534f820f2a6e102f139b6570e03e98c2fd64459879f7cd5db23fa38123e96e257fbf4df0d592010e979751f94570177d2475e520792419b7df3443089c648cd1663390d9f36e003e4284423ab5d3e807bf34d1c1fc4829c7bd3e24771b3efca9f0374f2d0a4751d4151debb909c698a1974bf79d06c98068b8887bc2e4b5acc78cc6e960b93db3378e96abdb61bcbba1d3eabd7fed54d0690575ebb22e24a202a312fe5e0ea87198fc1d3a1c3ff54fa2aedadef70c86b10881bf45feda6e558187a05d26030e2096d8fdc990823e96e676a7a017ead61849f2e60fa6cc8af75caa97de161ff2d22e93a1f40a63561e25197d62f1262da3bb6ca1d5e4292cc264cffd5600b36180fa45d8cac23c643b27ac394666b91eec3ec8b2ce358039e572822d1bd184ab41f4f41787063dbde3fff083b3a9486a3d3dd34d58e4be8a0e0394f0227042c8e1ce97758d8a24a6e060d660308c3c8dabe66ffa56f03b63444904ff575e0e84f3dba94dbfb8bd0dbd2ca9a1eef9dcb9d621b0758bd27556f6569154f8b25bc2930715d12cf5870132067ac1d822bb23746bc136e44f94798ceb83bb9f5a85c7d0301a01494f864fbe98d05bc6bfda7365198fe1486a82386efc7b7c65444331a22345a22e32ba2e1011291d784facf1bb2e80de6a26f748644865c2be40e762100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012c106c75b7bf52c8583141f5aa326f09cf9ab65e81756d04969f03e8d839eddd1a8e9c9a7b2762b1022b7d6073ad76d6c8dd93172bb49b374f17145e6bccd00d34f2c7f3edc87c929cc9d80e186d8e092d17093ca030a7eca7a4a60988a3a6123ef6cf14ca521ddab2b858e3fd0daff72c830a2cb92510050fecebc246eebefd108ed26bfd32aae1dec64c409f2e4f7bca0d4329afb8b868ab60985c9a2f6f702f712d9402cd551e2139b3bf60d1b084583955d2599440b2edcc989065d0909112ca1c1bf1fd566959df7d431be78d6acffbb6d4654ea0efbfb5c8e202ed2d2f2d35e3e40e02a996a62082bce4187295524ae227a3fe582bd977680afd12d2d21df28c8bb9f2b00ec15d724f8b85c315eda3f929f13c2b93255fbb7d0ea1e1ea220d7374460d4ff13ea28db0747a3cea34a29fd21810cd8873cd756ff15e1e1715bcbebaa1bd7049c6d33b8db99ccf6d5fa6abd9a392e7a888844797492969902a4341455e428fb6392cc47246633092c29fed2265ba117310a8e955b6d69671108ed26bfd32aae1dec64c409f2e4f7bca0d4329afb8b868ab60985c9a2f6f702f712d9402cd551e2139b3bf60d1b084583955d2599440b2edcc989065d0909112ca1c1bf1fd566959df7d431be78d6acffbb6d4654ea0efbfb5c8e202ed2d2f2d35e3e40e02a996a62082bce4187295524ae227a3fe582bd977680afd12d2d21df28c8bb9f2b00ec15d724f8b85c315eda3f929f13c2b93255fbb7d0ea1e1ea220d7374460d4ff13ea28db0747a3cea34a29fd21810cd8873cd756ff15e1e1715bcbebaa1bd7049c6d33b8db99ccf6d5fa6abd9a392e7a888844797492969902a4341455e428fb6392cc47246633092c29fed2265ba117310a8e955b6d69671370839169df7b78b5a0148defe6aabaa83c9dc40c669ad15cb7c42f4003f0d5e0db860322eada24619182cc3d7f184094c0baff7c85ce0fb4f3abcd341efef0f1dcb283ae6997a81a070cc0a8a11dd230c4825751baf2e859b6cc284c279042c02b7096af95909d0a65940eb585f38428acbc67a60fb707a1050662c7b25ee2615eb48cba60f760fad6c1501de0fb560356c598e08a8bcc16601651973c3194f1c9ba25298bb2a47028fd555ab4384ede2c52efd68c373bcfe78bc473fe885ba0b7eefa3bd33a06063d5fdebd7b2698e901d739bf10a9bf08b95bff901ce168c1aa3dc4a7c9a46296f02a264dfbf8e14339446b6f5206dc280f8d3cc1f28971523680c80e312eaad8ba1e565e1910affc8fdc68a7c5930635c11f198c94a58c4068b102cc65e61f4d3b05e45dbc588f720fff417da90f3be40e5290c40a269d42a8acabf00e69bc60fc5eb405b1b43866882ab4ed6397070661d4c10b037b0ac071d0507bfebca3770c72d32a1b00e8c008b93ebcf52381505bf2eba9ad4dc1329520e354b361ca126ef5e29ac1fb03b7c22e0ee43538c4f5890484524ef29252345952357801c90a371d147472f85df7e2d47ff60cfa50cbac9c5552db35714000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000115ff16f79f02ea7286df5540edc3987d42c9bf5f2dd0daafd92fff6262c3d7331d365d65b735c1f01b5354414ecf51ad1ed8d5c2929b24f744d46dae2c8983d427bf16530cd2f8ec23fd970aeb0e1ad9f6d11fd31066a1c5994be3d4cc4ffb6702a4b824ead13f0ff2af5bf871ad38d6e5117a3f42a91ea6060e0e1e21eecf09346195bce13462b2ec5586a702e9417bda372e8f4a90a2e972e33e026a02f9400b9e6a431ecb9d4d13aa7958fd16be84480f6a6cbebc56322649f2ea95fd06c105e7ecb06605ed7e9daba1430e8e476ab9f984dc4f9f4a20d9bb7258120ede3c3a18134f99fa128162545ebcf171b895684d141fb9adaefabf71be94edf121c51d879f71fe1da379145a264f48c76515a1df984d8e1c72a440a93bb85a4a572c2278608e01e25c86eba5d9b0b7389aea806700ae7b3086775883f534a5b5a8d513a61d39f694315d65c2bf8c6be4f96be4d0c78bb3f44afe10f3c8bfc373b3da2c59e2c6096bcea29a3d4073941b06943d75d1705558ae1d8839682d3c8c4c27346195bce13462b2ec5586a702e9417bda372e8f4a90a2e972e33e026a02f9400b9e6a431ecb9d4d13aa7958fd16be84480f6a6cbebc56322649f2ea95fd06c105e7ecb06605ed7e9daba1430e8e476ab9f984dc4f9f4a20d9bb7258120ede3c3a18134f99fa128162545ebcf171b895684d141fb9adaefabf71be94edf121c51d879f71fe1da379145a264f48c76515a1df984d8e1c72a440a93bb85a4a572c2278608e01e25c86eba5d9b0b7389aea806700ae7b3086775883f534a5b5a8d513a61d39f694315d65c2bf8c6be4f96be4d0c78bb3f44afe10f3c8bfc373b3da2c59e2c6096bcea29a3d4073941b06943d75d1705558ae1d8839682d3c8c4c273e2c1c70f1788dd278657d66ca3598829eb5d445d25fdee40e36a87298b8306636f638696b3494e042cc24ef0a03017341a810ea0e7082c785281a0594562fe9106a575d3cee30f604bbe7b259ebf018eedf9b52d8f7260e568f3fd860ad3bef36613bf28559c9975162fcd4f3ef25ab73c83427ccee2ac7bbad66e91d9b207809d8bfebd944e2f7b4da0e84adc98b19a3f6ee9a22a951db74cd7e2c5d95ed3a01c4b99e348afdfd40ba69c835715274d0e31bb3bc6133eab4d89fab5ece5e940782dfca70c9aa594da4e9702e692fcb1e53193fc3645ded8abf4aceae08c0e10a30d303645911520afcd87161e76f5a40a40c659a82c83eed862befbc8dfd4618bd631388308b5ddeae3ed6a97e21a61c31b6bef48f5cbab3a08ccb07dec11f329156e525792f5e9e4de150f7328058980f249a82b84750a7034f1669f53fba1e80937512ccba6b84e635edf3b4f9fc3b88ca110c4d7612d4bad2049221af0f13e552b579009cf78bed13f3c61ffcdcfc40660344420be61b0cf14e750bad89132a0e4ccfdd4dfdc86f0bb5fd290d1603cff81d1e0f7d63498562de4d0ddda3328ee72c2df12cc05efaeddcb75ca090dec35a5ddec9aec45042f143ef51833a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010f63ca87fb6554e5ccdd68f6b077d73a3bb4c5f84b96d2dfe59c58d05137448925147966ab80e921cc3c321a7d7b455142950ee3134e96c2468a4580c5224d922060b993a965e04147611162ef30911181d332b4cc5c8942f0e97b233c0920f40c5b60b0c50986ac5a055ceb11ebefe02922a1cc24c3ac3a94018cc07f765c4d04fb4b24afed085c10ac559093db2e4594481b1db23d7460fbf910407b8adaed3b04b4db5012f7a3ef53aa6f6c24d1ba8dfe7dde570f84ba9d3420ac8475251418e877b76fa129cc535dabd2e347e75be56887947b3345e4ebdd514269b646a127178848905ed633aca2542d1cb818a43cde11678e19b336ad4fdfaa9649b9603c8a56952e25d0fda0d45b1e706784cb58c40cea5eb3645d0225655f108f61240375a96ad1da2f025f2ba4e18f987b34c9828c11aa9994be9707cb8def709edd2eb3b0e9e6bd14f42425c798320597f832b9dca3b44d1162a606372752cce5b0114c4f161942eb0bdbda3867cdfa6807ef8cbc5854ffe7b8f326f9c5ad331a5104fb4b24afed085c10ac559093db2e4594481b1db23d7460fbf910407b8adaed3b04b4db5012f7a3ef53aa6f6c24d1ba8dfe7dde570f84ba9d3420ac8475251418e877b76fa129cc535dabd2e347e75be56887947b3345e4ebdd514269b646a127178848905ed633aca2542d1cb818a43cde11678e19b336ad4fdfaa9649b9603c8a56952e25d0fda0d45b1e706784cb58c40cea5eb3645d0225655f108f61240375a96ad1da2f025f2ba4e18f987b34c9828c11aa9994be9707cb8def709edd2eb3b0e9e6bd14f42425c798320597f832b9dca3b44d1162a606372752cce5b0114c4f161942eb0bdbda3867cdfa6807ef8cbc5854ffe7b8f326f9c5ad331a510ae6154752b20435b6a4471c6fdf70d51db143f79e7a2d149f0adccb51d2988100907c67b25f66ca540e553f4c2f50e9425c1bbbab18d99db7ae7bd65e4bc2bb32e2b0b5fc6caa5ef77094557f322829acf08ca57da850357ae90249f088282438311cb7564af8cee29b6f6ea8906390e809c061e62a3e89de6dfe85ef61893705eaffc075b889f1f3bb63360cf2df1da71a4f5568b207dd458205b67d07225a03e5f2cd7d96ffe8b8fa4d2cea78c6c43a0a43173439528230d48be8bd57744521a7955fc7ee4dfa1582e6835fe42a899050b7e615ddd5acd2c17a7b33e5eb290ace91a85a8f3fa3482f6cbea39d35ab9be2369473ab95b6dd5cd29f9c0da9702fb94823ecb512138e358f6f75105aacf0bcaaa8a9836040a37061e0c343fb2f1b0e36037d297ac303debf1fa1c5157242ee901882a9b1b135e6b4b0efb591b532ff6b5f785b64e25d666e153290eb280e20e817b08bc0b38daafb2fbf09c5941f8eca0b21fc0f0e65bfdd084fa065503844c4f87dd8fe0693e5bce630e8b2280ef31017d0a781cbd53a318bba214d2fc8f12c7c45848404eda233c9fec690cd1b5bc161751e27f29352502ead127d77a827e566935a05f82e0dc43e5b4ba93c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010c3a43deb72151a8b87c2fb8e306b65c4a175ebf0af4c5e0ec1284757f1e6fc336285f416c9c7516b9fa6b61b65e5333facf1e86cea9539feb1e05818cd0256d2348f97fc60d3ca26ae34db733a54352a0df49e4f90c124ba893a77fe40ffef81ac0c6fcb94a1c7eacb007d0a1c4b2091be8298ea652439cbea1d5017b82fad400000000000000f02a557c90236a9499cc99d254416d516b13e9ae4a20cefbda8d2aab661fa9509e2751d1de9cc2513ad00fd692ff984f7ac54a4c75df54dc7f6428a01e7dce00573fd62b5ec299b7d10d49afbb6efc661d4e46ed66e55100a6c7e8cfd33e288cfb0bebfee4b4eff486ec7d96501b9481ee57d5fd712a58f97c629ed13d9ce009203956dbcb32809498560eba17a3803062645115c0ace0d459a6477c426accd6831160dda4241ecd8fa52524abe01eb801ecf233f8317976e762858efca24e12721d2814dedf118938e98d6d5c20577d6551a7854daa3a282adb04cb31c69b467a09e92c0d5cd553cace51bc8296d77d93a7c23cfa45f5525d4991885bb85de84820a63217965a9a4483aca816fdf23c4c8e90be186cb6667e486b86d5e9326dd025fb7e6fce94abc09425aad3a0eec1bc6093003fa156f61645e96705a1b087330c0426d4e21fac697e5b30c67d8501366a30ca149c5687d312fe8ae90d060d9c3eb3929a747fb5be7cd8adfd0619e72de7127fa44203c36df5ce80560014db5919d6a5dcaa756811600110fcd2cce5e43c51539b837a076b806aadf149ece3423caa08e8af5d748b18dbb0d46fc89153f8ff842ee8b54b404dc038c91cf2e55d3459989c1c1c8dde0a6aa45c23f0d0c81cfb03bef53a3736df0eadaae16e5b923a765a49b6f96df4e5d12247d4e8b7a3caba5f912a429945eb5b8ff33e0ea2742a7ff293a76b3326304cd7bdb5981cc8a7eaffe18d6acfe6a2624b4efc970a842037c6dbaf342f01cae70705ce06cb9ba95849d750ef7b5a666abff01083de711ab62ef633108c61e719838c16a4654bbb8738ae93cb6d98eff99376db151f292d3d7da843cdc8a217774d0a45a527193db77acb99985354b2f9519b346330df38a430b191aa3494f2cf7582ec4bf20a682982c2bdb275a3c6d87403ffd49b2e1c2a69ad965d953b2a9d697cbe0c4019215c11661e3fc5740fda6b331d8c8be61885196ca15fae41b2e206ec171c0e097b7100ee5d9a6902cdff87f88c50e6ef3232a002b53fb3e64851d7d76c82da5ad5d248ca80bfe23e3acd834680ca02062765614978ef061e869bf6e66f8d7d97bd5d1fd51962f527a9a31381f03774db29b7b0d766665d06e87d096c13cb112d249d2c52328a7dc5c7c3b7efc8ee8b1a3a5fe65e5c80678cef7f616604d3807bc35244352e6e19c5a5d4522e151187853cf128ca02690597d578cd419eaf42d0602bf36374dd5072f75efdfbba23bc1b28d19b1f1f999e30e32fd181d949c5ad4f2d28bd565339341ceba4f1d6c24afa21e61e503705c3f718040d41aa5522b7021620fb8807120cebe1664d36589dfb301c7d80b50a1f736574e0cdcdcb44f82e41dbe9913d7442109d4c13124e15993c6826867af2c5ff69e14c31d9dc566d327a828b04b20d5089f2c29be1e7bc3b29dec269ae6cf4f0e2f20b007eccb5e2c3d81e1f47967a501af30518ff89fa3a25d9a22a6a483e99ee02cd4a51b83b93e5a89c70fad3bd665db18a223da99ff92f47e162ab099383792511995ea526e0b0585b7d584175c08b3c4864e97a89141b6fd80cab95cea4820ecd2a24f9c183a0eaee3b8618d5807d90c2da23a05fe12441ae0c0767d7dc913556f30821cbb62da3afee95e1dd85a24e1fe5df499c251fa81c1c74d7a5d342a1553acc13a130a0894f1554c084aa4be23f08802538a71b013f562007d64ea52f7778c85ef61e25ae24776acb67b324833f99b50ce0262e643ac994d09c4756544245b4b270ba9ee2b0118b07487589d120ac42c4e6380a95f54590e53dc8ae5dd474eec1646396083f341454bd0413320c8801ff08e10021c429c5ba245f4cd60a4e94dd840098f47188c0b895215c6dcdca0b1be013386b92576953060cc81024ce94038585f3dd1cfc6cddeea9e60fec69fe7f3fad03a71b736fc737ceba95777df8cbfe15300c61f5b5ef17c057501e5f2d360b7018270e81e6b031e982f9b8d691f8b227e85f27719d5d629af967a22c4695b738322e8c11f31c3400606ae7e28b121c52c5f9959f6b5b08321dc566dd2f0195743e3200cc920b6e83eae59dd1b27ea8ff0f4f4202fe37ac7e428bd1850147578b0c85b8a2c493f3a4104e40f1d1203f6541f407b5e0229ec2c64139ba0bd3916a20e06c905b56546dfa574eb5ed9f84f751e26ba9ba4351780b8da5d5372c1bee13ff50f5cdefa65ddc0df39ea7c3bcd56992c9ab7b040d3557a59c2e3ca479b72b5237e37183105beecce9df768e7b92eae5f09a0f8931cf4a3fba80970a93141a31919029dde48cb9e91a9d0e79b7f04ef6e7677c50f4da94be595ff57abed40082f0aebc352f389816c847a5fc6f2d100f9bc3221affdbf4ba751d4ae7b6100a34c8c09a6a32ef631d167bdda279371eed14f9b2f252497ae56534c23332e40408ddfd1867b8efa541787082d2bd06341649f03fbf6a0fd6f576175d2305770f951fbee1aac11a4ca00cce8b6ff3645c6527f3bcf34504c4009db5ebc938f50890ddd86533937ae5c702226f0021b937db39993426542db85b935b768f14db041ebe4165010c16e456a6a8425e301420961432f4c80975234bf46a1637d05e21e61e503705c3f718040d41aa5522b7021620fb8807120cebe1664d36589dfb28d19b1f1f999e30e32fd181d949c5ad4f2d28bd565339341ceba4f1d6c24afa084555f718cc7aecbeff486d27a0134486c25632f66f10496a7c089f160d15e00441e8dcad0bdd998ebff90c84c00e4fffcbf4af8f4541ed6945f03a2e6e63ac26068e8eea05768bbf9f8611a8110ae8a155e550668f3c57a72838124ce871701af96512d2587330f51be4fbf271cf2f35491d2d1770fba5067da2a550736a29159e51ae0091c36b36c99850e876c78b71ae1ed0baa005e7b93082ba451ea581351967c1560d9ebcc46a46729b2820d8df952ae823ba45594f9c8884c7fc437429b7b0d766665d06e87d096c13cb112d249d2c52328a7dc5c7c3b7efc8ee8b1a2765614978ef061e869bf6e66f8d7d97bd5d1fd51962f527a9a31381f03774db3a5fe65e5c80678cef7f616604d3807bc35244352e6e19c5a5d4522e151187853cf128ca02690597d578cd419eaf42d0602bf36374dd5072f75efdfbba23bc1b28d19b1f1f999e30e32fd181d949c5ad4f2d28bd565339341ceba4f1d6c24afa21e61e503705c3f718040d41aa5522b7021620fb8807120cebe1664d36589dfb2a557c90236a9499cc99d254416d516b13e9ae4a20cefbda8d2aab661fa9509e2751d1de9cc2513ad00fd692ff984f7ac54a4c75df54dc7f6428a01e7dce00573fd62b5ec299b7d10d49afbb6efc661d4e46ed66e55100a6c7e8cfd33e288cfb0bebfee4b4eff486ec7d96501b9481ee57d5fd712a58f97c629ed13d9ce009203956dbcb32809498560eba17a3803062645115c0ace0d459a6477c426accd6831160dda4241ecd8fa52524abe01eb801ecf233f8317976e762858efca24e12723c6826867af2c5ff69e14c31d9dc566d327a828b04b20d5089f2c29be1e7bc3b301c7d80b50a1f736574e0cdcdcb44f82e41dbe9913d7442109d4c13124e159929dec269ae6cf4f0e2f20b007eccb5e2c3d81e1f47967a501af30518ff89fa3a25d9a22a6a483e99ee02cd4a51b83b93e5a89c70fad3bd665db18a223da99ff92f47e162ab099383792511995ea526e0b0585b7d584175c08b3c4864e97a89141b6fd80cab95cea4820ecd2a24f9c183a0eaee3b8618d5807d90c2da23a05fe106196626c55317668f23ef1387fed5295f5963f25bc587b881773abc252e9f8901c2efb95c46ade50083a9fcbffec856b385f5113651be6476a4ac6d8f68f0821fe7c55a27d12d22b03c31ed8fb0fb05b6484b3949571de9de0ec9ded978ee8708e71b68dfc360eebcdf8e139eac46ca40d9f7ca31a6a288ca4ffb2ca7a9ba7034591ba62c5abeef41bc74e7bccf06e3102121e0a0e5552b7040ddc02e9f73f8165e9dc92a44a338b97769dbc6cfe181412227d83d74f615988c2d7ede7b74fd302c827c471f67d137d565548bb2f7cb7bc628fc4b25084f8cad34a4b724aa11062b689a2742a606fd9fe419a1fd00ad184742eb74685536ffc4bc517615288d30bc2501492e8eea09c080ecc2d170ad0b5d37750b619ac608774dd279f47ee509df0c212b170b3689d19cc714fe3d93ac017966cb057cecc20f29d6ea35e3960021c429c5ba245f4cd60a4e94dd840098f47188c0b895215c6dcdca0b1be0130a95f54590e53dc8ae5dd474eec1646396083f341454bd0413320c8801ff08e101c2efb95c46ade50083a9fcbffec856b385f5113651be6476a4ac6d8f68f08206196626c55317668f23ef1387fed5295f5963f25bc587b881773abc252e9f891fe7c55a27d12d22b03c31ed8fb0fb05b6484b3949571de9de0ec9ded978ee8708e71b68dfc360eebcdf8e139eac46ca40d9f7ca31a6a288ca4ffb2ca7a9ba7034591ba62c5abeef41bc74e7bccf06e3102121e0a0e5552b7040ddc02e9f73f8165e9dc92a44a338b97769dbc6cfe181412227d83d74f615988c2d7ede7b74fd3651075bb5b9de9f92ff5c13e4184eb83ab273f0174d222d2cc3e80b062b52b622293686d8404fde7e07630beeca39799a0fc99aa7f47f4b0bf53d20d1d00b24041ebe4165010c16e456a6a8425e301420961432f4c80975234bf46a1637d05e0890ddd86533937ae5c702226f0021b937db39993426542db85b935b768f14db21e61e503705c3f718040d41aa5522b7021620fb8807120cebe1664d36589dfb28d19b1f1f999e30e32fd181d949c5ad4f2d28bd565339341ceba4f1d6c24afa3dad36f081cc5aac5ab54408a4c73ef46a520b4a2184680d258f5e1593ab9d281dd84350afabf48c8599f807d27a8feed3e4fde787d555e07b253b8f2f84fb883311ddd6ebdbdef739ff70735d2b451a490888f9937232f518591f92617355490a4d1ce3d852e7ba3d44141458d4d1f643c33e132aba3851d22cca816fa5de8d3eb3929a747fb5be7cd8adfd0619e72de7127fa44203c36df5ce80560014db590c0426d4e21fac697e5b30c67d8501366a30ca149c5687d312fe8ae90d060d9c2a557c90236a9499cc99d254416d516b13e9ae4a20cefbda8d2aab661fa9509e2751d1de9cc2513ad00fd692ff984f7ac54a4c75df54dc7f6428a01e7dce00573fd62b5ec299b7d10d49afbb6efc661d4e46ed66e55100a6c7e8cfd33e288cfb0bebfee4b4eff486ec7d96501b9481ee57d5fd712a58f97c629ed13d9ce009203956dbcb32809498560eba17a3803062645115c0ace0d459a6477c426accd6831160dda4241ecd8fa52524abe01eb801ecf233f8317976e762858efca24e127222293686d8404fde7e07630beeca39799a0fc99aa7f47f4b0bf53d20d1d00b243651075bb5b9de9f92ff5c13e4184eb83ab273f0174d222d2cc3e80b062b52b6041ebe4165010c16e456a6a8425e301420961432f4c80975234bf46a1637d05e0890ddd86533937ae5c702226f0021b937db39993426542db85b935b768f14db21e61e503705c3f718040d41aa5522b7021620fb8807120cebe1664d36589dfb28d19b1f1f999e30e32fd181d949c5ad4f2d28bd565339341ceba4f1d6c24afa13bea6f188c9cadbd698cd66d9871b2dc446a54d1231bddcd6c3e5baf2b5bdc43298775f3744ae067dc088f10aa8eca90e2c77d6beb2cd9a908211585862688d26f7c7d2b4a9d0e4e6ea84ef3936184a6085558fb97f3f801dd8428c64dbed7537b7a122b93b7426e1de2c2df2684b08678dfcab64d85e783a2d194a187131ae11ac6bcc11e473d515f4d57d42423fe80d560f082b3deb782bd66baaf3147241390b4da344baee52e53f0946415ca87c43ed3ab0b31c5fc8dcf69f941a0676b439b19213fa1c63e1a04b9c4f4ffb73fd1cb43d7fa6ac3672c8e0a7b52dcb9a47164ed893b1f3293b8950c597ed596582cf9abb67a366ad56c47c853d109d242325d9a22a6a483e99ee02cd4a51b83b93e5a89c70fad3bd665db18a223da99ff929dec269ae6cf4f0e2f20b007eccb5e2c3d81e1f47967a501af30518ff89fa3a2f47e162ab099383792511995ea526e0b0585b7d584175c08b3c4864e97a89141b6fd80cab95cea4820ecd2a24f9c183a0eaee3b8618d5807d90c2da23a05fe132091ca962b3e46a7aa9344bb72bdb47f3712522475e5bc1fb342775afe0311a2d194961c63f93dba5994bebccb5291d12a99069fa23b1a6110864d9dde55d9205fe56c967a900def752cbe03a5098acfdd929628ad3c4422586f2116ecc397a3263faa4dc3458d654198e35fca491b2342d0c8a140db6be7a740fa88c716e050a7e612fb5f48138ea3a4717698c6826f4d9e0098b33204fb5be0ca29df714a30039583fa0aae0ef10f997ac1a12803d3a22d0b349da31d5b9e1cdaf6f23d4512d6d1002d667b4f9a9baca9ac4dd23750fcbc07612b7848d52dfc576e4a15b22193de0b5a086d420029df9be42fb073ff2cab9226d2bb0e75979e2645b3aaafb37b7a122b93b7426e1de2c2df2684b08678dfcab64d85e783a2d194a187131ae26f7c7d2b4a9d0e4e6ea84ef3936184a6085558fb97f3f801dd8428c64dbed7511ac6bcc11e473d515f4d57d42423fe80d560f082b3deb782bd66baaf3147241390b4da344baee52e53f0946415ca87c43ed3ab0b31c5fc8dcf69f941a0676b434f06a06d31829d96ceeaee503790b38c3a95281950b9c25a6955b2cfac5660d1a51330ad2a05d2b750b9802f38c57d8801fd2d1e326ac38b34a61a4b603e3db0bd750ae301f1b8816b6cb90139b75cf5a9930b696898c8033f3e0babefd493f2dd3c0001f328b4494fa6b29243ad0cf72fd979d2cf7d08e2db9ee2b276792ee0c85b8a2c493f3a4104e40f1d1203f6541f407b5e0229ec2c64139ba0bd3916a3e3200cc920b6e83eae59dd1b27ea8ff0f4f4202fe37ac7e428bd1850147578b01c2efb95c46ade50083a9fcbffec856b385f5113651be6476a4ac6d8f68f08206196626c55317668f23ef1387fed5295f5963f25bc587b881773abc252e9f891fe7c55a27d12d22b03c31ed8fb0fb05b6484b3949571de9de0ec9ded978ee8708e71b68dfc360eebcdf8e139eac46ca40d9f7ca31a6a288ca4ffb2ca7a9ba7034591ba62c5abeef41bc74e7bccf06e3102121e0a0e5552b7040ddc02e9f73f8165e9dc92a44a338b97769dbc6cfe181412227d83d74f615988c2d7ede7b74fd1ab62ef633108c61e719838c16a4654bbb8738ae93cb6d98eff99376db151f292d3d7da843cdc8a217774d0a45a527193db77acb99985354b2f9519b346330df38a430b191aa3494f2cf7582ec4bf20a682982c2bdb275a3c6d87403ffd49b2e1c2a69ad965d953b2a9d697cbe0c4019215c11661e3fc5740fda6b331d8c8be61885196ca15fae41b2e206ec171c0e097b7100ee5d9a6902cdff87f88c50e6ef3232a002b53fb3e64851d7d76c82da5ad5d248ca80bfe23e3acd834680ca0206164ed893b1f3293b8950c597ed596582cf9abb67a366ad56c47c853d109d242339b19213fa1c63e1a04b9c4f4ffb73fd1cb43d7fa6ac3672c8e0a7b52dcb9a4725d9a22a6a483e99ee02cd4a51b83b93e5a89c70fad3bd665db18a223da99ff929dec269ae6cf4f0e2f20b007eccb5e2c3d81e1f47967a501af30518ff89fa3a2f47e162ab099383792511995ea526e0b0585b7d584175c08b3c4864e97a89141b6fd80cab95cea4820ecd2a24f9c183a0eaee3b8618d5807d90c2da23a05fe123eeff6b583b5b2496663d8c82d0ca17a76854f03a3d1c3ddb08f7d597940a121a60d9142b3a44583cc3816fa0c25e8d059a734211e6677ff520359907c81b512312af6e775a1a2c3bb928735ca9d58928a107408db046adbd509ef0f990e3d9018e459a993bedd21eb80c07ea867ec3f12a6929628cb7c120fefeff5ffb3a9d00bbc79edd6b7e6ec023e6e1df9acb39198bc13007fecbec6f3f347135e5f79a09fbf1d07933e3b93b0ff7e1a4041d2b1570ef8ccd0e86390060a5e0d734f15a01845246cf54dc560fc11c49c4db389e0e294dc8c455271e1d16f6f268271b620734934ba2fa3ccc34735afc0a061a2596285d9b488ea203da163cb9314cc7a30889f54328ef9d15152b61bbd7e2bdab3cc34abd6ca05a27a5de8b6a16b3442e3a76c25d43d085e4c52f0aa8e27b7d56688d3829e19935b7255671cda7ed0912351967c1560d9ebcc46a46729b2820d8df952ae823ba45594f9c8884c7fc4374159e51ae0091c36b36c99850e876c78b71ae1ed0baa005e7b93082ba451ea581062b689a2742a606fd9fe419a1fd00ad184742eb74685536ffc4bc517615288d302c827c471f67d137d565548bb2f7cb7bc628fc4b25084f8cad34a4b724aa1130bc2501492e8eea09c080ecc2d170ad0b5d37750b619ac608774dd279f47ee509df0c212b170b3689d19cc714fe3d93ac017966cb057cecc20f29d6ea35e3960021c429c5ba245f4cd60a4e94dd840098f47188c0b895215c6dcdca0b1be0130a95f54590e53dc8ae5dd474eec1646396083f341454bd0413320c8801ff08e12ecd796090b3a16047cae5a63d682abfe1119ecadd48386a6fac340c89e6a5e2128ea0abf0b6cc592dc2e9b378176e01908f240dfffbccbf856be0110d6037b03b32bd95a3224f9410fa8bc9716c9665dbff24f0a8ca155ae0939308a87c6dea1fff0ce97e672f1110ff8ba7b5173ce3a8ce1d70a871f20defe87fdb325d11f8165e9dc92a44a338b97769dbc6cfe181412227d83d74f615988c2d7ede7b74fd34591ba62c5abeef41bc74e7bccf06e3102121e0a0e5552b7040ddc02e9f73f82a027b7cafb17a2986ec25b4315dbc8b334aa6b919175298c5d3398d889c9ea836723115fb35172f229b96cca6dca300443b8ca7ab1f9950c62578a728950a151af96512d2587330f51be4fbf271cf2f35491d2d1770fba5067da2a550736a2926068e8eea05768bbf9f8611a8110ae8a155e550668f3c57a72838124ce87170159e51ae0091c36b36c99850e876c78b71ae1ed0baa005e7b93082ba451ea581351967c1560d9ebcc46a46729b2820d8df952ae823ba45594f9c8884c7fc43742ec31319426d5538592d1b5782272b4e32fa9b3d5de7a9d5b6173fd0364cada2108dc4f7c0966ec001f059742c668eba46838f0d8db66b0200d0c0ca55cb513808e71b68dfc360eebcdf8e139eac46ca40d9f7ca31a6a288ca4ffb2ca7a9ba701fe7c55a27d12d22b03c31ed8fb0fb05b6484b3949571de9de0ec9ded978ee8734591ba62c5abeef41bc74e7bccf06e3102121e0a0e5552b7040ddc02e9f73f8165e9dc92a44a338b97769dbc6cfe181412227d83d74f615988c2d7ede7b74fd00482b6f1d56bee6381ba3ce81a7f6d8fc263a69dbedc1ed441f2aefa80ea579227f88fcd6fbadf6af918e17f1a72a83190efd1cd380ada2aeb9425979d99bfa330b7d2d35182aa040f5d6cec6bd3649001e87b969b80c8bf6bd74098daa0e3f1def680f546cbad9cd78a9d48d7b879d8c43ab0d581315bfd2237d43d3006f193e180e7b5f85e9e861905d9bf6b4be8b2ca70f0ce24b2e3e598ae6b83f46deb10c9faaf3f719783f99a381278cea29d9249c3aabfc0f1d02af422486cdd40a441187a0a17c7ee002e72c57503a4213de511c05fded95e02e869524f416adb00c1e4aab13aad98f9020460a667f1990d34ea1145dd24eaedae0a68fe9f5aedff3018e459a993bedd21eb80c07ea867ec3f12a6929628cb7c120fefeff5ffb3a9d2312af6e775a1a2c3bb928735ca9d58928a107408db046adbd509ef0f990e3d900bbc79edd6b7e6ec023e6e1df9acb39198bc13007fecbec6f3f347135e5f79a09fbf1d07933e3b93b0ff7e1a4041d2b1570ef8ccd0e86390060a5e0d734f15a164359b6ca8818f7f7aa1d5e3f92620675fef26c51ae885c9a6f474faf082a13340c1f14a964945e3765c3757225184e989c0d3b82f07dd2ca5a526a34a00f9e09df0c212b170b3689d19cc714fe3d93ac017966cb057cecc20f29d6ea35e39630bc2501492e8eea09c080ecc2d170ad0b5d37750b619ac608774dd279f47ee50021c429c5ba245f4cd60a4e94dd840098f47188c0b895215c6dcdca0b1be0130a95f54590e53dc8ae5dd474eec1646396083f341454bd0413320c8801ff08e12ec31319426d5538592d1b5782272b4e32fa9b3d5de7a9d5b6173fd0364cada2108dc4f7c0966ec001f059742c668eba46838f0d8db66b0200d0c0ca55cb513808e71b68dfc360eebcdf8e139eac46ca40d9f7ca31a6a288ca4ffb2ca7a9ba701fe7c55a27d12d22b03c31ed8fb0fb05b6484b3949571de9de0ec9ded978ee8734591ba62c5abeef41bc74e7bccf06e3102121e0a0e5552b7040ddc02e9f73f8165e9dc92a44a338b97769dbc6cfe181412227d83d74f615988c2d7ede7b74fd1c7a16ba058812af9739f70e41704ac0aedb2307a021dbd336b7f1f821b5a20f2f74d603ed88c37d32ec0d0a94874233d5c1d259e2ed2ca919c8f4c6904ed15c0bebfee4b4eff486ec7d96501b9481ee57d5fd712a58f97c629ed13d9ce009203fd62b5ec299b7d10d49afbb6efc661d4e46ed66e55100a6c7e8cfd33e288cfb3956dbcb32809498560eba17a3803062645115c0ace0d459a6477c426accd6831160dda4241ecd8fa52524abe01eb801ecf233f8317976e762858efca24e127200000000000000a000000000000000690000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020168d2dae5908e276103440583e5e91e00075a90f2175709bf90956381663a353000000000000000100000000000000010000000000000020ca6c56e94dc3db3569b8aa66acc2394bd332e25aca38585f988144d360a7d0d30000000000000001000000000000000100000000000000204bb79970c2fb9ceeb2b3b825d98db63307bfbd367bb0eb605f16caa342d20f42000000000000000100000000000000000000000000000020c897f9cc214e1d82ae3fa75be40cec804be624b41c23e139bfad78e7e7d5fc3b000000000000000100000000000000010000000000000020cca38bcaaeed86d1c037ddb148bba22f6b95749f7f352486d9b2248d154972a4000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000069000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020ea39b356e9304b8cfbf68f82c585a449d32fe7be745ef5611e3ea754f2eabafc0000000000000001000000000000000100000000000000209a0722187a4b5424088f7a2e0ef119365189add036f54ccfbf7f3a122c00608d0000000000000001000000000000000100000000000000203d3437767a18c76c6b3ce58e0eaba9f957fb31192a19e2e3adf0c19d5ac4cda30000000000000001000000000000000000000000000000207fadb498e4408564c5da8cdaf1ddd40a060ac7be00e86d18a70cff218a853e5400000000000000010000000000000001000000000000002015dc39279a52d41ddbcaf227c199cbd51b1f711d661184752155a6495562235a000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000690000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000006900000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020b411a74ff31f1c6ba8fae80bfed498519b3ec18a2eada313acb4f7b7b2997a3b0000000000000001000000000000000100000000000000202780d1d9a2c7592a41e6a59139511ee2aef0d99d9db23fe438898262ea68f128000000000000000100000000000000010000000000000020bd214e04a0d15a2b5ac00a7ad42151c6d124291cbcf919f2a8b5311fd49008470000000000000001000000000000000000000000000000207a18ca5e193aa28605c4cd2e9b219710808aed7388ffc2616a116a897b71ab510000000000000001000000000000000100000000000000205c412ce971308b3c81ea6b705658f52dec02ecb3332ae0a2ccd740263bcc7a7b000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000050000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000000000000000000201630c0ac5b2565ede4810658c226e2e39c077a2aba66ba7b2ed5d0f90c5e94340000000000000001000000000000000100000000000000204447a886401319eabaa837dbf2e6633da15ddf83424342259464f374e35caacf00000000000000010000000000000000000000000000002093a0881cb11f378c3ee374298a66b649fae44fbb2f35e3704ab5f4655c883f85000000000000000100000000000000010000000000000020ca3dc5f22e4573bfae9e4282c195d191a87ba277e564f158302218ee7bcec57300000000000000010000000000000001000000000000002056e5e7ca74faee51ae45c7001256fed2e7e080dcb95a859867c22dcb1608665f000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000005000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000000000000000000002085d04c860ce7329714ccb8f5a6ed3e68d650d8cd359e373154cc9350e22f78c000000000000000010000000000000001000000000000002038f9389965a1255e737eb7b50b266491f8214deee249c7108d209f37a58f6479000000000000000100000000000000000000000000000020159fb7d1dbca35eff1d0f710637a19e2e36d57033adbce658e94920357d85089000000000000000100000000000000010000000000000020ea8b53cd7415ecfb610e991f3187dc70583ec968dd6f325946dad2d066766dd100000000000000010000000000000001000000000000002099796d2366d350a09cad2698ab80419a6869a2524f9cfcc2eb3055449273a24a0000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000050000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000000500000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020995ded890c46801bdf23afb5fafe03801f9b663cfb6e11e534a9dd82b15dd92100000000000000010000000000000001000000000000002067c05032372570f57ce0b0a5709a69faf8cd5b4f4816b0ebfaeebdc5ddb423f3000000000000000100000000000000000000000000000020808c6faf169e8190470dfac9fe647ef5fac0047b66fa4b6fdb48e599786a862f0000000000000001000000000000000100000000000000202ef4e1908e5c1feba751546a1b19b44ec3948b5b79fb15cbc254b6ae858d0622000000000000000100000000000000010000000000000020cf7b4774e00157cbbb3d3167eebc39e16fa993a1f6d067c9342e404e34e33a4a00000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e000000000000007c0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020f349e7cd0f414f4e15dcd0aa1f9c3474dd773d7afa79494e38d5df7e1348af340000000000000001000000000000000100000000000000203d84beb3d3cccdebf4fa1c20444750b03b865d1e0892df7ccd9c59e2399b6d2e0000000000000001000000000000000000000000000000202ecd8753fbd4e9753d3ab5792022235b0d61965948a9802845ac769c195f73920000000000000001000000000000000000000000000000204d5c20971314a886143fcf4f31e5b0fe465897f95edb2ebb496a671eb51686a3000000000000000100000000000000000000000000000020484695c1718ea9babdf0da4a169839654a70d31dfb7bfa030bd34c4fd296f173000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000007c000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000001000000000000002024d6b6bc0cc21691d2a09a710186f2f26b499486e9db0ce373f9d587aa5eaedc00000000000000010000000000000001000000000000002082474f8975f9e61e947359e94818613b5400a925b58a8e9b98a2baa0c4e780dc0000000000000001000000000000000000000000000000202ab79d9f3374ce44e12d2c803ade3b7883c480ea68b516a8844e29d1f144ce230000000000000001000000000000000000000000000000209ef4b79cde573ddf1a1cfe0df94952533f934e8712306ff6e1df26da2304bf2d000000000000000100000000000000000000000000000020eed5635aa9fe26e55ac534a89c39cf891254e6457318ced7e38ad88fc125ecc7000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000007c0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000007c00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000100000000000000201ec5e16e1b6c8278434f422dfd5acdf805b3ad05bf8629d51724f79de41b2dc40000000000000001000000000000000100000000000000206d5173454e4ea2a63308075da3a4dbdf97e7817505d90f43064e9c5604898384000000000000000100000000000000000000000000000020252d0142e29f6f046a2bf2cb488c2f50c948efdf554303dbdc36c746c9b0c6bd000000000000000100000000000000000000000000000020bcd18cc2e0a4ed036f070637e84e56eaa6c50f80555c3785ecb5cd923c93e4870000000000000001000000000000000000000000000000205f345c922e75b5ee09f6a30d4e99bc3797063459fe2e79c3075e31feffa4522f000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000500000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000202803e8a5c4741f7c0d695c19271ea397b47db4f231f512ff774635a50ae6998800000000000000010000000000000001000000000000002048bf88f7b93e2bcd99d8beb87e3ff5b0caf61388116f1938569c63ceebc3378b0000000000000001000000000000000100000000000000201d83882e46f5088affd079555b2c275d2386d81b8b37a98bfd2519fc364a4aa10000000000000001000000000000000100000000000000200bf7ab1c0d308f7966b26422ec6c126e5956a6ce55c01414a62362c696861137000000000000000100000000000000000000000000000020440141033be391d351cbd747235dd0dd8925385fcbdaf63ca3ce8096a77f70ba0000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000050000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000001000000000000002031e983d8252c220c7a157bf0b0e4d009860e59f0f25f27642db8cb4bf7a850c100000000000000010000000000000001000000000000002037442da0052c1e225d8fe6509d79b41db3636261de0513e141c9bffb94d9299f00000000000000010000000000000001000000000000002080791f87519ff3c06a911030e79b46f0075ebfa5b433792d826d53d2916e1fce000000000000000100000000000000010000000000000020a0b86bb2b9ed1d88c1716ee2897d7e5305051401751e458c39f027a27ad7553f0000000000000001000000000000000000000000000000204d271360d6ea5729d441a303230c4b3fd940e15129f6f043ffe200fe1412df3c000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000500000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000005000000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020d479910be32071faca712dc7f28fe9d846b00936dcb0a0c4f47c4f5f2e0d22880000000000000001000000000000000100000000000000203e852866bbd02607edf40a158be12015d6b47315429830d68df7177bfee8d7370000000000000001000000000000000100000000000000203123b1b063eb4477af1095ffa8004b86436aa43d1437d489a673b4afeea9807a0000000000000001000000000000000100000000000000201739593b6adf1df20681bdb468e8cf329b9aaa69ac06a77967055637d4ed0b720000000000000001000000000000000000000000000000204b2589cc642be6064ae59c9496cf16edb00687dfa69b285a43c510b78bfc57d30000000000000001000000000000000100000000000000204bf1e1669389897cdf60a4c21a8ebf7bc19a07905ce2001a19e2353ccbd0bc330000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000480000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020ffb8ea511c9c40bd80c5593dcc9f4a4c7ff81a92f67c57994745128efd1df9e300000000000000010000000000000001000000000000002060646d14fda94fd08e577bdea9fc1a671b1b5d8d53784a28110c0a7d605d91c60000000000000001000000000000000100000000000000202de906415b70ddf320e163f0338d5931f99bb6b0ab8e2c0a4267870082918637000000000000000100000000000000000000000000000020e2cfdef2e013593d17123ff3c49fb968341cf622151374e7b49d49569fdcf51e000000000000000100000000000000010000000000000020e6fbce7ccc80a578a93cc241360a739d0248edab1a37196cc8564d3cea08f1a90000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000048000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000001000000000000002058c1dec639dbc32d7f2479d28995dba824d4bd0381450788ebb3505f857fb6170000000000000001000000000000000100000000000000202140747e5055c2f19a76dc2e3323a6298f108573ca44fbcd516e443b3a3de44d000000000000000100000000000000010000000000000020510be7fbad823f5d64b32d46eca47d66aae275bfc6d23ab17983fe6df6578151000000000000000100000000000000000000000000000020ecb1f059ced073c0f1f4ab430f41a2243331d77e965de85e9fbb5ae14eed25980000000000000001000000000000000100000000000000201e2c25d0355b2435f10a6081fe0d1c18b2bcf5ac219aa03a7bf09921024c667f000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000480000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000004800000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000100000000000000209e8ec1c440731ee12b900a7d926144789fbf836c8dbaf92975c1b6cbc77d8867000000000000000100000000000000010000000000000020550fe6ea252d2938fe077b30927846557ff0ce990d12d10b29d1f5059e93437e000000000000000100000000000000010000000000000020b0e895ff3921662a70c6f86f8a240ccf60a76f0abe4eaeb51fcecb7efc8ff93b00000000000000010000000000000000000000000000002005a7d139ea1c50e2d46ee67598c7cccdfa30f9ddabe7cfc41f5862d2aabb182b000000000000000100000000000000010000000000000020653a458519e3320afef3854df67dd297919d49bad510656792603e8433e203430000000000000001000000000000000100000000000000204bf1e1669389897cdf60a4c21a8ebf7bc19a07905ce2001a19e2353ccbd0bc330000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb9000000000000001e0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020354be51518ac0dd91f26219f17e44719a158cf4fdd100c3f919a3981f113149f000000000000000100000000000000000000000000000020706cc8ac5e50d226053688830a31a7963f67b7a499e16df101a87cea86c1aeed0000000000000001000000000000000000000000000000208d2e2729a32aca8b2598698736e9fb6648f7a570764827ae42629ee8e0b363c40000000000000001000000000000000000000000000000208c23ceb38bdfeb620de2d6414912490a34ad95503da09b70a73e57ca9658817b00000000000000010000000000000000000000000000002067b848c6a8fd93922564ee17c6101e314bbd3846fcea2a0a759b6e14ee53062a000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d000000000000001e000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000100000000000000208ed4ca977c2167441b7cb04831df3ba03526c5d424958138c146503c57800fd100000000000000010000000000000000000000000000002069aa7cd5e7cdb89fd78a6dd640e079eaedaa0682d6b8fc2001514dedf61a381f0000000000000001000000000000000000000000000000202556fe526824a8a26854d8a628546f1d11f4f769eaba5f9e50313c2ef40b6ac4000000000000000100000000000000000000000000000020470c7d58bd807351d8c0392710e22aa86ff411e42398f3719c76ffa4b8e767ed00000000000000010000000000000000000000000000002081a27a248db0076bc7a7f51b5ccf3cf5b9e1c7455e27068c417e64832913ff410000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de000000000000001e0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000001e00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000100000000000000208a4852c9a2e2ff125c8dff77420c484478860d8fffd6d3746e34f8dd76e8c080000000000000000100000000000000000000000000000020d4b28a32e4a10b957b7a88241780fc6d16d6e3d3ddfe5d59dd04e72e1598176e0000000000000001000000000000000000000000000000205b9fe3fd37a8939ed0f64c1508fbb4ab344cb7b357b4cf7e58d097a831ff02ee0000000000000001000000000000000000000000000000209c18548fa45a3788494a882aca7eae1dcec93e21ee89a3ec07d3cc2d92b7a75d000000000000000100000000000000000000000000000020e31eb63203c4c86dcc10bca35f7905f868623039545d8b3017d8c39b9f6116d100000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000040000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000202cac98730dcde3a8d3993db1dca0f1985094bcb603acd679de1f2169353995980000000000000001000000000000000100000000000000204447a886401319eabaa837dbf2e6633da15ddf83424342259464f374e35caacf00000000000000010000000000000000000000000000002093a0881cb11f378c3ee374298a66b649fae44fbb2f35e3704ab5f4655c883f85000000000000000100000000000000010000000000000020ca3dc5f22e4573bfae9e4282c195d191a87ba277e564f158302218ee7bcec57300000000000000010000000000000001000000000000002056e5e7ca74faee51ae45c7001256fed2e7e080dcb95a859867c22dcb1608665f000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000004000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020039944d7b72e0b16c0425a2ee0ea494707e2737847468b67852c75844488e28a00000000000000010000000000000001000000000000002038f9389965a1255e737eb7b50b266491f8214deee249c7108d209f37a58f6479000000000000000100000000000000000000000000000020159fb7d1dbca35eff1d0f710637a19e2e36d57033adbce658e94920357d85089000000000000000100000000000000010000000000000020ea8b53cd7415ecfb610e991f3187dc70583ec968dd6f325946dad2d066766dd100000000000000010000000000000001000000000000002099796d2366d350a09cad2698ab80419a6869a2524f9cfcc2eb3055449273a24a0000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000040000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000000400000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000100000000000000204213b43486f6be4ba1e16835a46a0efc4a75028848343aeb079c1820e6d66e9d00000000000000010000000000000001000000000000002067c05032372570f57ce0b0a5709a69faf8cd5b4f4816b0ebfaeebdc5ddb423f3000000000000000100000000000000000000000000000020808c6faf169e8190470dfac9fe647ef5fac0047b66fa4b6fdb48e599786a862f0000000000000001000000000000000100000000000000202ef4e1908e5c1feba751546a1b19b44ec3948b5b79fb15cbc254b6ae858d0622000000000000000100000000000000010000000000000020cf7b4774e00157cbbb3d3167eebc39e16fa993a1f6d067c9342e404e34e33a4a00000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e000000000000006a0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703000000000000000700000000000000010000000000000001000000000000002002b1b7b579feecea1603adcefe60285831fc1ef6f92fb6df3d3907a02aa5cf36000000000000000100000000000000000000000000000020f4fa51ef0775ff149667acbb46117fb98f6af6f007ff719bcb42b30611e7d5570000000000000001000000000000000100000000000000204bb79970c2fb9ceeb2b3b825d98db63307bfbd367bb0eb605f16caa342d20f42000000000000000100000000000000000000000000000020c897f9cc214e1d82ae3fa75be40cec804be624b41c23e139bfad78e7e7d5fc3b000000000000000100000000000000010000000000000020cca38bcaaeed86d1c037ddb148bba22f6b95749f7f352486d9b2248d154972a4000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000006a000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020729123ca4d9a8d922dabefb9899d58e28f1fb034a770a85cb4b91a1ddc8bcb4a000000000000000100000000000000000000000000000020205cec1b82d9f0d6d449b3229673690e31ff7f138430659da23c7dcf8ba0980b0000000000000001000000000000000100000000000000203d3437767a18c76c6b3ce58e0eaba9f957fb31192a19e2e3adf0c19d5ac4cda30000000000000001000000000000000000000000000000207fadb498e4408564c5da8cdaf1ddd40a060ac7be00e86d18a70cff218a853e5400000000000000010000000000000001000000000000002015dc39279a52d41ddbcaf227c199cbd51b1f711d661184752155a6495562235a000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000006a0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000006a00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000100000000000000208c07a914068e90b61173a77e1b914b00970d53c1e5306d27e793c3698bc15a4e0000000000000001000000000000000000000000000000204810a4d0a61207ded71aeb4fe4fa059d9e3000d4407f432e9ee999ff895079d1000000000000000100000000000000010000000000000020bd214e04a0d15a2b5ac00a7ad42151c6d124291cbcf919f2a8b5311fd49008470000000000000001000000000000000000000000000000207a18ca5e193aa28605c4cd2e9b219710808aed7388ffc2616a116a897b71ab510000000000000001000000000000000100000000000000205c412ce971308b3c81ea6b705658f52dec02ecb3332ae0a2ccd740263bcc7a7b000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000630000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703000000000000000700000000000000010000000000000000000000000000002090a5c0dfecd68b96260de0e176f1daaa0cefbdbbf4bed734ac888093198137f20000000000000001000000000000000000000000000000205217f042c4103dfce290399af2d7f6e91b0303d9374068c157fddf417ac1466c0000000000000001000000000000000100000000000000208898e207f899afef2d8054a80f751d82d7922c515dc762bb6fe3ca09982a4a8c000000000000000100000000000000010000000000000020c333590dcb0e6145e72bd463f743db0abfaeb8772dc580c71cf682d91309ed1f000000000000000100000000000000010000000000000020cca38bcaaeed86d1c037ddb148bba22f6b95749f7f352486d9b2248d154972a4000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000063000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020f750a8df74970bf8b1f2cb625632f0010a1ebd07ceb50b9b55baeca9734481bc0000000000000001000000000000000000000000000000204437135e388dbbc0f4134ea178c5475160607cb1a13f453188a7b6009d99e7d20000000000000001000000000000000100000000000000204760ed6b8f37b8811c4472d07018ef33254862de57fd87fdcb222f78d35c0c3c000000000000000100000000000000010000000000000020231c9cddba9de91f81f082284626d72c840c35a049839db16d0798671da9a94e00000000000000010000000000000001000000000000002015dc39279a52d41ddbcaf227c199cbd51b1f711d661184752155a6495562235a000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000630000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000006300000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000000000000000000205ae1bdb7fd65e5b724a890e024d01cbf17c7d7da4f37a1acf94d982287b552be0000000000000001000000000000000000000000000000209def4bb721745767975c519652187717ac9df39e7dd95f4cf70cc5a58431187700000000000000010000000000000001000000000000002004ce2cc4d87e262ec2f5f995c0158bc7b0330315c341537e2539f463c075a8cf000000000000000100000000000000010000000000000020ccdfc1ce31f7c9c3c299e0c8c2dcba2323cfe7190c2ecab871962f8a14a10c5f0000000000000001000000000000000100000000000000205c412ce971308b3c81ea6b705658f52dec02ecb3332ae0a2ccd740263bcc7a7b000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000380000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020d2b0c172c88804b019623c0ab76fe68968ce29df8d16ea64dfe04da5a9dfac9e00000000000000010000000000000001000000000000002058ca14bea62f02472920c94cef064e2b62a2215697046a17b9b4a72b1f79519d0000000000000001000000000000000100000000000000208b6c0dbf8846167552cf8ae1f5eccfada0c9c12fa603ef04a1bcf5b2d8d640de00000000000000010000000000000000000000000000002038633c23221765310c92698cee8362c0d12200537889693a08f64eb0a28d0eb50000000000000001000000000000000000000000000000204cc7901d510046ae5f98d6b431c2a311cc066cdd794fd6e53cc30587ed00a61e0000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000038000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000100000000000000205540c6210c4ea6250903e6e934550eb8cc7cbf54238f042e0841ae6e6707d79a000000000000000100000000000000010000000000000020c9853024a416fef377cb4d8cfd6cccbacb7c1d28e5d801967cd0793b83fb0d660000000000000001000000000000000100000000000000200e020dc06db87756c28132502389a84e3c64cd7df4b64b8737793c282df50a32000000000000000100000000000000000000000000000020d0aef9b77b039100567fbec3deac5294b41ec41336a21a95a35be851fa112511000000000000000100000000000000000000000000000020f8cfb327d9517742fe31d66ff60129d85a3e464d22188d95a53c32e3132069560000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000380000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000003800000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020adb005fe708243d49b98a809c185d6154f6e4bf420cc455d04d6cf7f7d51661a000000000000000100000000000000010000000000000020b1c646c25625c8766b0fa6a1aff4bd5dc9ee0fc27074f54d2072a3d8cdbf1ded00000000000000010000000000000001000000000000002095a3bea66806a0a16ce3c74b0f3b32494e1345651cb0e438ed2e97385107e3430000000000000001000000000000000000000000000000206916699a45fdfb8384004d89c6a315b17df2f235f5b835b904c0db675c6a94010000000000000001000000000000000000000000000000208f995ec61c2dccbeb9c7fe1f9ab07ecdb151d4c25dee869fcddca0342e9f92e100000000000000010000000000000000000000000000002040fcfc6bb63dbae33d624e3777a816b50ebb7a75c3788096fb31802eed5badf20000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000060000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020cf9c9d36e50f3be003abb72eadda4014f3014d18f065cdcf3718c8ea27781d7f00000000000000010000000000000000000000000000002024dd71f470a74bc9d00007238db817e2951ab47beab380e9dfb9c9bf28a0a90c00000000000000010000000000000000000000000000002093a0881cb11f378c3ee374298a66b649fae44fbb2f35e3704ab5f4655c883f85000000000000000100000000000000010000000000000020ca3dc5f22e4573bfae9e4282c195d191a87ba277e564f158302218ee7bcec57300000000000000010000000000000001000000000000002056e5e7ca74faee51ae45c7001256fed2e7e080dcb95a859867c22dcb1608665f000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000006000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020918cc2cb0516abac2122f4106181be6c4332bef5202829ed0c2504e9d66cd1e8000000000000000100000000000000000000000000000020fa774f7f08a9caf5f4c2a4ec6081fa509a5e34d6de7388ccc80b06493b538fe8000000000000000100000000000000000000000000000020159fb7d1dbca35eff1d0f710637a19e2e36d57033adbce658e94920357d85089000000000000000100000000000000010000000000000020ea8b53cd7415ecfb610e991f3187dc70583ec968dd6f325946dad2d066766dd100000000000000010000000000000001000000000000002099796d2366d350a09cad2698ab80419a6869a2524f9cfcc2eb3055449273a24a0000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000060000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000000600000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020b92604315276e660d69e3d60848b4e1b545ac29935cb28e912408dde71a820870000000000000001000000000000000000000000000000207cdbe844b738198bfa602bed3dba6a064e3e226eb9af5f8121b0f4607ad4f1a5000000000000000100000000000000000000000000000020808c6faf169e8190470dfac9fe647ef5fac0047b66fa4b6fdb48e599786a862f0000000000000001000000000000000100000000000000202ef4e1908e5c1feba751546a1b19b44ec3948b5b79fb15cbc254b6ae858d0622000000000000000100000000000000010000000000000020cf7b4774e00157cbbb3d3167eebc39e16fa993a1f6d067c9342e404e34e33a4a00000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000080000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000204a53f8aa5563a4126d804c8c09573eaf7b11f1737462f4233ee1ca8e79b2fe1700000000000000010000000000000001000000000000002083a2f6a53dbc238e1c7586ea9611e237e37a614bcb4f7768a6898c1690777261000000000000000100000000000000010000000000000020f4788f282cc48569bec74e73b39f71e265eb51ef211aecf4d1a7add0f34d7b1600000000000000010000000000000000000000000000002074c92898599a40af39cc7a4aa694631d7e51488babfa65b017e19bd852de297900000000000000010000000000000001000000000000002056e5e7ca74faee51ae45c7001256fed2e7e080dcb95a859867c22dcb1608665f000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000008000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020c4de5c060dca988bf189eda5c60140625aacd31f1e597b11f25e29b804b060db00000000000000010000000000000001000000000000002090bdc5b63d04a30799f91a7b0908150577b6e9eaf000f749480ce0a150bb2ee3000000000000000100000000000000010000000000000020a52b91bce93e4fa0572db86458eba139088189bddae7d7b79620966038af80c50000000000000001000000000000000000000000000000208f3d18cc0b0da6433287a04f00ac88b64a41656e27ea9ddc94e4472173bebea600000000000000010000000000000001000000000000002099796d2366d350a09cad2698ab80419a6869a2524f9cfcc2eb3055449273a24a0000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000080000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000000800000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000100000000000000205c4f738a9a21105275d4f0008e7a912c3df4e7ab72c42baeb3e0fb0c5eb066a3000000000000000100000000000000010000000000000020e8cf9621ba8ddc6e223761a8d8e7388890bddaf015f6ffb65529064ef2f98608000000000000000100000000000000010000000000000020a4bff191e50d729d30375a40780a8f7b71683f4a524dd1a0f96ceb2b1c3359a1000000000000000100000000000000000000000000000020c00237dc35ffd084252306466001d905dafd040f1eef9871a7001cc4e9b4f108000000000000000100000000000000010000000000000020cf7b4774e00157cbbb3d3167eebc39e16fa993a1f6d067c9342e404e34e33a4a00000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000690000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020168d2dae5908e276103440583e5e91e00075a90f2175709bf90956381663a353000000000000000100000000000000010000000000000020ca6c56e94dc3db3569b8aa66acc2394bd332e25aca38585f988144d360a7d0d30000000000000001000000000000000100000000000000204bb79970c2fb9ceeb2b3b825d98db63307bfbd367bb0eb605f16caa342d20f42000000000000000100000000000000000000000000000020c897f9cc214e1d82ae3fa75be40cec804be624b41c23e139bfad78e7e7d5fc3b000000000000000100000000000000010000000000000020cca38bcaaeed86d1c037ddb148bba22f6b95749f7f352486d9b2248d154972a4000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000069000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020ea39b356e9304b8cfbf68f82c585a449d32fe7be745ef5611e3ea754f2eabafc0000000000000001000000000000000100000000000000209a0722187a4b5424088f7a2e0ef119365189add036f54ccfbf7f3a122c00608d0000000000000001000000000000000100000000000000203d3437767a18c76c6b3ce58e0eaba9f957fb31192a19e2e3adf0c19d5ac4cda30000000000000001000000000000000000000000000000207fadb498e4408564c5da8cdaf1ddd40a060ac7be00e86d18a70cff218a853e5400000000000000010000000000000001000000000000002015dc39279a52d41ddbcaf227c199cbd51b1f711d661184752155a6495562235a000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000690000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000006900000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020b411a74ff31f1c6ba8fae80bfed498519b3ec18a2eada313acb4f7b7b2997a3b0000000000000001000000000000000100000000000000202780d1d9a2c7592a41e6a59139511ee2aef0d99d9db23fe438898262ea68f128000000000000000100000000000000010000000000000020bd214e04a0d15a2b5ac00a7ad42151c6d124291cbcf919f2a8b5311fd49008470000000000000001000000000000000000000000000000207a18ca5e193aa28605c4cd2e9b219710808aed7388ffc2616a116a897b71ab510000000000000001000000000000000100000000000000205c412ce971308b3c81ea6b705658f52dec02ecb3332ae0a2ccd740263bcc7a7b000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb9000000000000005e0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020cfee36186406a9069377272e4f8d4c7b102c3cca4d30981acfcfd0ed4ba7846100000000000000010000000000000000000000000000002091f87159cb7ef9c51ade2808531bfc2fc6514c9f6cfea7e8bbe97aafa477d16f000000000000000100000000000000000000000000000020f476b958e87db8a02656f8467c6e5e45d866f25792959994b010cfab414a683f0000000000000001000000000000000000000000000000204ad6dc0cd0533f78182e33f1a845ac02537dc3fd9cd6a8afe705ed7185762a5c000000000000000100000000000000000000000000000020440141033be391d351cbd747235dd0dd8925385fcbdaf63ca3ce8096a77f70ba0000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000005e000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020036eeb3b83cb4ee9a123777daa92731be89d2fbf275a9402b3994dfed28f5c75000000000000000100000000000000000000000000000020de7e1aedd16874ba4da3786e9ec2e855e1fa1ddf8e3a39472a92f48313c40e610000000000000001000000000000000000000000000000200465cea58d937eb0fdb98fcaf6de41b5bc5a9ef8128bb64c6d5c79fe8b30bd02000000000000000100000000000000000000000000000020241e42aeb3c798b84ad9a34ccc6b26a5fb12fe91536ea9394f0e34b50690f3390000000000000001000000000000000000000000000000204d271360d6ea5729d441a303230c4b3fd940e15129f6f043ffe200fe1412df3c000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000005e0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000005e00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020fecae12ed4ded4cd8d4129d1c259318a374af063bdb821cc85b8a66125ec77870000000000000001000000000000000000000000000000204fa4ea9eee7f4826a051f13cea287aff6631d277919dfca5d8b58864817bfbdb000000000000000100000000000000000000000000000020bfc3833208072c06854906543f4c49a3ddc86f212ff116bde59fa27acaae0ba0000000000000000100000000000000000000000000000020196600714e2413375e79dfb52d0da692a476ee202a5b16a99a81d9e03b5b4da30000000000000001000000000000000000000000000000204b2589cc642be6064ae59c9496cf16edb00687dfa69b285a43c510b78bfc57d30000000000000001000000000000000100000000000000204bf1e1669389897cdf60a4c21a8ebf7bc19a07905ce2001a19e2353ccbd0bc330000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000210000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000000000000000000206911474270af54569299e2b38bfca119940ca8e6befd5cf0687b80e83731cbe80000000000000001000000000000000100000000000000201bed00a56dc7259f610c8a84317e61f276a3c9ecc32f9c93c61e9dd15cc5662d000000000000000100000000000000010000000000000020dda255470d0e3d9d6cdaa2fb7a505f6c7a4e24ad53cf261ae845d526ff84b25a0000000000000001000000000000000100000000000000205174f398ccc856cdbbef4aa77674b4b7eef12d39c064ad97e2c59fc16b229eba0000000000000001000000000000000100000000000000205d77fe2ccf9c9f8603070bd03123cd3455d47968e542db3d55abf5cd35b03d050000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000021000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020c5df72502aa22365c72e985da3516944058b38439156c5f80c6b65c6808d292700000000000000010000000000000001000000000000002000bb2662d809d1a3d8ced486506545d79aaab6a75ff37f7a36559dbd45ceb3d5000000000000000100000000000000010000000000000020635786b3451c8fcd72df2a7f9875620e9c4a9d61248ed35461e4ea6478f57b52000000000000000100000000000000010000000000000020a88fc00e48cff7ada818659ce1afb1d48fbf00ea30b15d29f469922cbe8e2d8c000000000000000100000000000000010000000000000020e7444cc161f3e7f01cf05762fb0fb97caf4bc92619aabc44b759df970816cdad0000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000210000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000002100000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000000000000000000206f5a88c1680575ddb4b73146e3334845431f7f4136074115cbd6fc0f22251c5300000000000000010000000000000001000000000000002003af2d3611ff90e0411cef9b07a8fa1ec04ee0432da0e3fe4d15751716d34dc50000000000000001000000000000000100000000000000200abf6089aab5b5799edf278c4c455edcc58bb48a6b4a77784f5c0229cd8031a9000000000000000100000000000000010000000000000020738ec93c8a9b7a0f5985915570b5f09db8fea468f04aef909e23d781767e0ee800000000000000010000000000000001000000000000002080f4c94164dc4597576888e1e7dfeeb82efbc11ac8b5ecc2b2df1058b8fa2b0500000000000000010000000000000000000000000000002040fcfc6bb63dbae33d624e3777a816b50ebb7a75c3788096fb31802eed5badf20000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000540000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000208c29f50c6a921e6c039421dd22522be89566bbd3b7a80fccac2bef837aaed014000000000000000100000000000000010000000000000020ae061b5194494d30b474e8ca84e30311d10fe173845210baede494005bcff504000000000000000100000000000000000000000000000020f02df779af74ece096b6b51019afda9aad006f692c3013a0d59e0d28d8c8933d0000000000000001000000000000000100000000000000200bf7ab1c0d308f7966b26422ec6c126e5956a6ce55c01414a62362c696861137000000000000000100000000000000000000000000000020440141033be391d351cbd747235dd0dd8925385fcbdaf63ca3ce8096a77f70ba0000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000054000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020bb5840b7a1b74f62bf274503506ad5438c0bc38e0c13ac476a270efd5f90e55d000000000000000100000000000000010000000000000020820cb12153954ed792168965679b90767ca6c7b93ae2a29fe9a015e858cbf22d0000000000000001000000000000000000000000000000206c2f42e175bc59959c539065448f0c9c2f330f12deb5a78d2b4137394d93105c000000000000000100000000000000010000000000000020a0b86bb2b9ed1d88c1716ee2897d7e5305051401751e458c39f027a27ad7553f0000000000000001000000000000000000000000000000204d271360d6ea5729d441a303230c4b3fd940e15129f6f043ffe200fe1412df3c000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000540000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000005400000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000100000000000000202d6c8553b3e39fa54fc4cbf1354ba1408549df83fd042d0921607e3284a4e2880000000000000001000000000000000100000000000000205a60431b036f2e867ddbf1571fde9158d1f41587974cc7a493865e5538159c9d0000000000000001000000000000000000000000000000208db6406dc1712292fe2ebc129fce00ffcb3097dbc760b312a755c402f977e3470000000000000001000000000000000100000000000000201739593b6adf1df20681bdb468e8cf329b9aaa69ac06a77967055637d4ed0b720000000000000001000000000000000000000000000000204b2589cc642be6064ae59c9496cf16edb00687dfa69b285a43c510b78bfc57d30000000000000001000000000000000100000000000000204bf1e1669389897cdf60a4c21a8ebf7bc19a07905ce2001a19e2353ccbd0bc330000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000610000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000000000000000000204fd16afe54ef0980c4de5a597f7fb006c9544966a7aecc8e50b76c962ea05bd8000000000000000100000000000000010000000000000020d2e2ba3fc80ee026557e5bfcac4bed00ed62af39a123d3ee482cbd1a0959035c0000000000000001000000000000000100000000000000208898e207f899afef2d8054a80f751d82d7922c515dc762bb6fe3ca09982a4a8c000000000000000100000000000000010000000000000020c333590dcb0e6145e72bd463f743db0abfaeb8772dc580c71cf682d91309ed1f000000000000000100000000000000010000000000000020cca38bcaaeed86d1c037ddb148bba22f6b95749f7f352486d9b2248d154972a4000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000061000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000000000000000000002043fecb6bbbc6c1fcc79d4b34116f29f10cdf12228fb5d4290369e89f0a49cd0800000000000000010000000000000001000000000000002040aaa91a76e76b209d5782919ffbac0c1b40c4d4763b7179e423c793cda2a3080000000000000001000000000000000100000000000000204760ed6b8f37b8811c4472d07018ef33254862de57fd87fdcb222f78d35c0c3c000000000000000100000000000000010000000000000020231c9cddba9de91f81f082284626d72c840c35a049839db16d0798671da9a94e00000000000000010000000000000001000000000000002015dc39279a52d41ddbcaf227c199cbd51b1f711d661184752155a6495562235a000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000610000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000006100000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020b60f00ac5aa100ed487f252c5f57453032591b4ad2b2358b7e4b2b5bf8116b1a000000000000000100000000000000010000000000000020be3c304600dee094ac7b11b22bc4c6940552fbc5f077a7e24a4a568ea0b7540d00000000000000010000000000000001000000000000002004ce2cc4d87e262ec2f5f995c0158bc7b0330315c341537e2539f463c075a8cf000000000000000100000000000000010000000000000020ccdfc1ce31f7c9c3c299e0c8c2dcba2323cfe7190c2ecab871962f8a14a10c5f0000000000000001000000000000000100000000000000205c412ce971308b3c81ea6b705658f52dec02ecb3332ae0a2ccd740263bcc7a7b000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000580000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000202504fee8f8249bef96af776eb332ba5c279d4b5faf52698ab16b566b360cf4c4000000000000000100000000000000010000000000000020f695333810f417c070461250ef73e1b8af356539b9aab8a34ce18f20f526b8fd000000000000000100000000000000010000000000000020a2108799ba60b14b4528e026d0f575f797028a9469cdfbc41cf7cb8c648a846a0000000000000001000000000000000000000000000000204ad6dc0cd0533f78182e33f1a845ac02537dc3fd9cd6a8afe705ed7185762a5c000000000000000100000000000000000000000000000020440141033be391d351cbd747235dd0dd8925385fcbdaf63ca3ce8096a77f70ba0000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000058000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000001000000000000002036acc3128799cdcc2d6dccdcdd3f5edb4a2be0a38974bd043f196bfc08d808fc00000000000000010000000000000001000000000000002032d6586d80836436349f4fb78b2bcf31ab64c798b96a8902e498edf92ed3a9cd000000000000000100000000000000010000000000000020dd80cacd766c514bea4e75a998238e23cceb858decbd9583d9466348cafc2b4b000000000000000100000000000000000000000000000020241e42aeb3c798b84ad9a34ccc6b26a5fb12fe91536ea9394f0e34b50690f3390000000000000001000000000000000000000000000000204d271360d6ea5729d441a303230c4b3fd940e15129f6f043ffe200fe1412df3c000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000580000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000005800000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000100000000000000203291ae88a8292ffb74515a8efd01da4fe6bc26d1d460f90acf492e0e0aa7f053000000000000000100000000000000010000000000000020b032f2797cd5a8598483a5ec123a07c8630f6c95b25a70984081a201c4e2a1b00000000000000001000000000000000100000000000000209f55b0d4ff746defcce8e220bf8a58f9e4506f61e04b70fe2556ece7b0d76fd1000000000000000100000000000000000000000000000020196600714e2413375e79dfb52d0da692a476ee202a5b16a99a81d9e03b5b4da30000000000000001000000000000000000000000000000204b2589cc642be6064ae59c9496cf16edb00687dfa69b285a43c510b78bfc57d30000000000000001000000000000000100000000000000204bf1e1669389897cdf60a4c21a8ebf7bc19a07905ce2001a19e2353ccbd0bc330000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000550000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000000000000000000207b9a1ab147df96a05747953bd82ceaf44b6ed4278d3351aba097e1d6b2fab33f000000000000000100000000000000010000000000000020ae061b5194494d30b474e8ca84e30311d10fe173845210baede494005bcff504000000000000000100000000000000000000000000000020f02df779af74ece096b6b51019afda9aad006f692c3013a0d59e0d28d8c8933d0000000000000001000000000000000100000000000000200bf7ab1c0d308f7966b26422ec6c126e5956a6ce55c01414a62362c696861137000000000000000100000000000000000000000000000020440141033be391d351cbd747235dd0dd8925385fcbdaf63ca3ce8096a77f70ba0000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000055000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000000000000000000202bfde982ad163fff7447b742c6c2fc2744e5f435c3c80ddc17c55656c4f349cd000000000000000100000000000000010000000000000020820cb12153954ed792168965679b90767ca6c7b93ae2a29fe9a015e858cbf22d0000000000000001000000000000000000000000000000206c2f42e175bc59959c539065448f0c9c2f330f12deb5a78d2b4137394d93105c000000000000000100000000000000010000000000000020a0b86bb2b9ed1d88c1716ee2897d7e5305051401751e458c39f027a27ad7553f0000000000000001000000000000000000000000000000204d271360d6ea5729d441a303230c4b3fd940e15129f6f043ffe200fe1412df3c000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000550000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000005500000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000000000000000000200518edfdc90344943614e006c23b0abed29b713a702bb24fb261adb9d830d8c00000000000000001000000000000000100000000000000205a60431b036f2e867ddbf1571fde9158d1f41587974cc7a493865e5538159c9d0000000000000001000000000000000000000000000000208db6406dc1712292fe2ebc129fce00ffcb3097dbc760b312a755c402f977e3470000000000000001000000000000000100000000000000201739593b6adf1df20681bdb468e8cf329b9aaa69ac06a77967055637d4ed0b720000000000000001000000000000000000000000000000204b2589cc642be6064ae59c9496cf16edb00687dfa69b285a43c510b78bfc57d30000000000000001000000000000000100000000000000204bf1e1669389897cdf60a4c21a8ebf7bc19a07905ce2001a19e2353ccbd0bc330000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000690000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020168d2dae5908e276103440583e5e91e00075a90f2175709bf90956381663a353000000000000000100000000000000010000000000000020ca6c56e94dc3db3569b8aa66acc2394bd332e25aca38585f988144d360a7d0d30000000000000001000000000000000100000000000000204bb79970c2fb9ceeb2b3b825d98db63307bfbd367bb0eb605f16caa342d20f42000000000000000100000000000000000000000000000020c897f9cc214e1d82ae3fa75be40cec804be624b41c23e139bfad78e7e7d5fc3b000000000000000100000000000000010000000000000020cca38bcaaeed86d1c037ddb148bba22f6b95749f7f352486d9b2248d154972a4000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000069000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020ea39b356e9304b8cfbf68f82c585a449d32fe7be745ef5611e3ea754f2eabafc0000000000000001000000000000000100000000000000209a0722187a4b5424088f7a2e0ef119365189add036f54ccfbf7f3a122c00608d0000000000000001000000000000000100000000000000203d3437767a18c76c6b3ce58e0eaba9f957fb31192a19e2e3adf0c19d5ac4cda30000000000000001000000000000000000000000000000207fadb498e4408564c5da8cdaf1ddd40a060ac7be00e86d18a70cff218a853e5400000000000000010000000000000001000000000000002015dc39279a52d41ddbcaf227c199cbd51b1f711d661184752155a6495562235a000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000690000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000006900000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020b411a74ff31f1c6ba8fae80bfed498519b3ec18a2eada313acb4f7b7b2997a3b0000000000000001000000000000000100000000000000202780d1d9a2c7592a41e6a59139511ee2aef0d99d9db23fe438898262ea68f128000000000000000100000000000000010000000000000020bd214e04a0d15a2b5ac00a7ad42151c6d124291cbcf919f2a8b5311fd49008470000000000000001000000000000000000000000000000207a18ca5e193aa28605c4cd2e9b219710808aed7388ffc2616a116a897b71ab510000000000000001000000000000000100000000000000205c412ce971308b3c81ea6b705658f52dec02ecb3332ae0a2ccd740263bcc7a7b000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000180000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703000000000000000700000000000000010000000000000001000000000000002089bad6834f4c246d3c4178d60e1a7402d7a777a23e9142d631f5ae67b62b75f900000000000000010000000000000001000000000000002010214618282eae8199fb12959e11cbc03fc216f2e26d885483c44dd1500f02b5000000000000000100000000000000010000000000000020b19c107e100ede570d154889a6c02538ece94377272412924433c14033b82edb0000000000000001000000000000000000000000000000208c23ceb38bdfeb620de2d6414912490a34ad95503da09b70a73e57ca9658817b00000000000000010000000000000000000000000000002067b848c6a8fd93922564ee17c6101e314bbd3846fcea2a0a759b6e14ee53062a000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000018000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000001000000000000002018d580ea941c4f08fdecf59b02ea8f309129dcbde68142ea8ac7cec61f97c143000000000000000100000000000000010000000000000020d682998e25a5fbcb3775a68416e2fab8f449a5fb9057a3b6af23027646c629470000000000000001000000000000000100000000000000206fbb63d499e0b1b5c50bb34cc0627d36caeab3783e498fb870f0d059a71cad20000000000000000100000000000000000000000000000020470c7d58bd807351d8c0392710e22aa86ff411e42398f3719c76ffa4b8e767ed00000000000000010000000000000000000000000000002081a27a248db0076bc7a7f51b5ccf3cf5b9e1c7455e27068c417e64832913ff410000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000180000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000001800000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020420f2ec2c248ecb5607ebc6734d079a540aee6ccb80e5ab0c967af0ec0eed30f0000000000000001000000000000000100000000000000207e25d8ece31a1de5fcb5a25e1b6e6ea13f082a485279fb4bfff008ed442251ad000000000000000100000000000000010000000000000020869d3e054e49814b69be93461996310cfeee356bfe04104adc8ee6b45d1298570000000000000001000000000000000000000000000000209c18548fa45a3788494a882aca7eae1dcec93e21ee89a3ec07d3cc2d92b7a75d000000000000000100000000000000000000000000000020e31eb63203c4c86dcc10bca35f7905f868623039545d8b3017d8c39b9f6116d100000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e000000000000007d0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000000000000000000206677ff1de3eab5e9b29b8b5c59b2977a8b60d9b2895a56831b6381c71c6d22ae0000000000000001000000000000000100000000000000203d84beb3d3cccdebf4fa1c20444750b03b865d1e0892df7ccd9c59e2399b6d2e0000000000000001000000000000000000000000000000202ecd8753fbd4e9753d3ab5792022235b0d61965948a9802845ac769c195f73920000000000000001000000000000000000000000000000204d5c20971314a886143fcf4f31e5b0fe465897f95edb2ebb496a671eb51686a3000000000000000100000000000000000000000000000020484695c1718ea9babdf0da4a169839654a70d31dfb7bfa030bd34c4fd296f173000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000007d000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020482d9b2bb7ef832e6fe194960701cb25a6e9167ec3107a83eb223c9aa05e19e900000000000000010000000000000001000000000000002082474f8975f9e61e947359e94818613b5400a925b58a8e9b98a2baa0c4e780dc0000000000000001000000000000000000000000000000202ab79d9f3374ce44e12d2c803ade3b7883c480ea68b516a8844e29d1f144ce230000000000000001000000000000000000000000000000209ef4b79cde573ddf1a1cfe0df94952533f934e8712306ff6e1df26da2304bf2d000000000000000100000000000000000000000000000020eed5635aa9fe26e55ac534a89c39cf891254e6457318ced7e38ad88fc125ecc7000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000007d0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000007d00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020b402934a787e0b02569d625358d131dc7acdd8acd7e4d376410314a3f42b20380000000000000001000000000000000100000000000000206d5173454e4ea2a63308075da3a4dbdf97e7817505d90f43064e9c5604898384000000000000000100000000000000000000000000000020252d0142e29f6f046a2bf2cb488c2f50c948efdf554303dbdc36c746c9b0c6bd000000000000000100000000000000000000000000000020bcd18cc2e0a4ed036f070637e84e56eaa6c50f80555c3785ecb5cd923c93e4870000000000000001000000000000000000000000000000205f345c922e75b5ee09f6a30d4e99bc3797063459fe2e79c3075e31feffa4522f000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb9000000000000007e0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020b782aa7eaea72c5380ded75fc76a02b41f70147c14be1b5ef055b77629fc5bab000000000000000100000000000000000000000000000020e6377433847885cf37e45054debb564d20b150c03c731c35544d18873c6fc80e0000000000000001000000000000000000000000000000202ecd8753fbd4e9753d3ab5792022235b0d61965948a9802845ac769c195f73920000000000000001000000000000000000000000000000204d5c20971314a886143fcf4f31e5b0fe465897f95edb2ebb496a671eb51686a3000000000000000100000000000000000000000000000020484695c1718ea9babdf0da4a169839654a70d31dfb7bfa030bd34c4fd296f173000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000007e000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020ce65a52b98dddd706a68273f7920918697bd68520b127620b85a53f34121f96f000000000000000100000000000000000000000000000020a9c4b3c744c5537998728fd2fbc3b94e03972295db498ff96c58bad33a968e830000000000000001000000000000000000000000000000202ab79d9f3374ce44e12d2c803ade3b7883c480ea68b516a8844e29d1f144ce230000000000000001000000000000000000000000000000209ef4b79cde573ddf1a1cfe0df94952533f934e8712306ff6e1df26da2304bf2d000000000000000100000000000000000000000000000020eed5635aa9fe26e55ac534a89c39cf891254e6457318ced7e38ad88fc125ecc7000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000007e0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000007e00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020a3ec2ca4c2cad220c3ff1c6236c5fb9e9ac9ac5764370b83ec724f57c91f4fb900000000000000010000000000000000000000000000002016479a7042ae183dbd5f3dd916e005f0c4c049b3d3e2bafd47b35c7641802139000000000000000100000000000000000000000000000020252d0142e29f6f046a2bf2cb488c2f50c948efdf554303dbdc36c746c9b0c6bd000000000000000100000000000000000000000000000020bcd18cc2e0a4ed036f070637e84e56eaa6c50f80555c3785ecb5cd923c93e4870000000000000001000000000000000000000000000000205f345c922e75b5ee09f6a30d4e99bc3797063459fe2e79c3075e31feffa4522f000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000670000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000000000000000000201260766c773eb106acd488c8b5315964a35aafaad7cdfc090db12ff5eb6072280000000000000001000000000000000000000000000000205f4102b0b8800e19f474637f55a226fec10861748b9fa2ec8bdae4826e142bb5000000000000000100000000000000000000000000000020786f95a2172647531fa82d40b84de37a8c8c7ed9f5255069d2aa70f6d62cd587000000000000000100000000000000010000000000000020c333590dcb0e6145e72bd463f743db0abfaeb8772dc580c71cf682d91309ed1f000000000000000100000000000000010000000000000020cca38bcaaeed86d1c037ddb148bba22f6b95749f7f352486d9b2248d154972a4000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000067000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000000000000000000206357e722c5dfca2d34a0f940228c6b897edbda69fb7edaf16c556932e70bfc09000000000000000100000000000000000000000000000020a208a8f0c84ba755ac34583a27706f071785155bb44e2c1c1b42da927f25c20200000000000000010000000000000000000000000000002033f11f3f1d395d654c44f337de010654fc274e24f3eb38f1d043e7dfd62e1485000000000000000100000000000000010000000000000020231c9cddba9de91f81f082284626d72c840c35a049839db16d0798671da9a94e00000000000000010000000000000001000000000000002015dc39279a52d41ddbcaf227c199cbd51b1f711d661184752155a6495562235a000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000670000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000006700000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000000000000000000205b3813244877cf501ab8ee88ad075fe0d497295350b089fb82cc4ab7f6504b8c000000000000000100000000000000000000000000000020f80772757f8c8cdbabda52736674cd5cfecab385704328c7d1a93a5476929a24000000000000000100000000000000000000000000000020a18f21e7e8468794ce9a72aafad56c67612abcaa36d917dc7026a967abbe5d10000000000000000100000000000000010000000000000020ccdfc1ce31f7c9c3c299e0c8c2dcba2323cfe7190c2ecab871962f8a14a10c5f0000000000000001000000000000000100000000000000205c412ce971308b3c81ea6b705658f52dec02ecb3332ae0a2ccd740263bcc7a7b000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb9000000000000001d0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020406b9effc4dae675bab2b16227168bdba5e13122f7bb7c07d614d33fc67bf5b2000000000000000100000000000000010000000000000020466a843d279e2d09cfb98b4604ad55550c4b32d858d74301ced48d4cf2a5f8a70000000000000001000000000000000000000000000000208d2e2729a32aca8b2598698736e9fb6648f7a570764827ae42629ee8e0b363c40000000000000001000000000000000000000000000000208c23ceb38bdfeb620de2d6414912490a34ad95503da09b70a73e57ca9658817b00000000000000010000000000000000000000000000002067b848c6a8fd93922564ee17c6101e314bbd3846fcea2a0a759b6e14ee53062a000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d000000000000001d000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000000000000000000204cd40976ac6f3b1453ffdd87822869a6c3fc585b2b5a1a4906a31acf86c01e84000000000000000100000000000000010000000000000020aaae5c36ffc93586fd6e7da9318b26f5cb0052b41e106f29d5e9b9ba2a05e64d0000000000000001000000000000000000000000000000202556fe526824a8a26854d8a628546f1d11f4f769eaba5f9e50313c2ef40b6ac4000000000000000100000000000000000000000000000020470c7d58bd807351d8c0392710e22aa86ff411e42398f3719c76ffa4b8e767ed00000000000000010000000000000000000000000000002081a27a248db0076bc7a7f51b5ccf3cf5b9e1c7455e27068c417e64832913ff410000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de000000000000001d0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000001d00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d000000000000000700000000000000010000000000000000000000000000002072ce46f21b014fd067b055a2644d764fe8135b2e0150f804b80147cb9fab23aa000000000000000100000000000000010000000000000020c31bbbd72bb9586b9aab8d27641760d6d6f84a81ce9f3cb898f5c21f7485c7210000000000000001000000000000000000000000000000205b9fe3fd37a8939ed0f64c1508fbb4ab344cb7b357b4cf7e58d097a831ff02ee0000000000000001000000000000000000000000000000209c18548fa45a3788494a882aca7eae1dcec93e21ee89a3ec07d3cc2d92b7a75d000000000000000100000000000000000000000000000020e31eb63203c4c86dcc10bca35f7905f868623039545d8b3017d8c39b9f6116d100000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e000000000000001a0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020ca0dbef3e95b581e5b9cfdefbe9025cfa08c7604dc04c5855dad14cacb178a0e0000000000000001000000000000000000000000000000202f79641d9c0a7238e695300b36fa1c5be4867aaf5047e715b0ab5ce5a4c9a1ef000000000000000100000000000000010000000000000020b19c107e100ede570d154889a6c02538ece94377272412924433c14033b82edb0000000000000001000000000000000000000000000000208c23ceb38bdfeb620de2d6414912490a34ad95503da09b70a73e57ca9658817b00000000000000010000000000000000000000000000002067b848c6a8fd93922564ee17c6101e314bbd3846fcea2a0a759b6e14ee53062a000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d000000000000001a000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000001000000000000002068f33381ba67c64e677ce00a04392cac412620297a4b432774de25b4007520360000000000000001000000000000000000000000000000206de41ae63863e4dcf765564dd0dfbcc8cfec4ff8f79ca1ef7f4bd578c9b90ab60000000000000001000000000000000100000000000000206fbb63d499e0b1b5c50bb34cc0627d36caeab3783e498fb870f0d059a71cad20000000000000000100000000000000000000000000000020470c7d58bd807351d8c0392710e22aa86ff411e42398f3719c76ffa4b8e767ed00000000000000010000000000000000000000000000002081a27a248db0076bc7a7f51b5ccf3cf5b9e1c7455e27068c417e64832913ff410000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de000000000000001a0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000001a00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000100000000000000202889219e13701491f371137cfb3bf66414bf74d1eb17872db6ca2775104e74fb000000000000000100000000000000000000000000000020ece74dd7d4249324bf2f808b9a98d1332d127a2d553d824fc80e3ef2711f2ba7000000000000000100000000000000010000000000000020869d3e054e49814b69be93461996310cfeee356bfe04104adc8ee6b45d1298570000000000000001000000000000000000000000000000209c18548fa45a3788494a882aca7eae1dcec93e21ee89a3ec07d3cc2d92b7a75d000000000000000100000000000000000000000000000020e31eb63203c4c86dcc10bca35f7905f868623039545d8b3017d8c39b9f6116d100000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000610000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000000000000000000204fd16afe54ef0980c4de5a597f7fb006c9544966a7aecc8e50b76c962ea05bd8000000000000000100000000000000010000000000000020d2e2ba3fc80ee026557e5bfcac4bed00ed62af39a123d3ee482cbd1a0959035c0000000000000001000000000000000100000000000000208898e207f899afef2d8054a80f751d82d7922c515dc762bb6fe3ca09982a4a8c000000000000000100000000000000010000000000000020c333590dcb0e6145e72bd463f743db0abfaeb8772dc580c71cf682d91309ed1f000000000000000100000000000000010000000000000020cca38bcaaeed86d1c037ddb148bba22f6b95749f7f352486d9b2248d154972a4000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000061000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000000000000000000002043fecb6bbbc6c1fcc79d4b34116f29f10cdf12228fb5d4290369e89f0a49cd0800000000000000010000000000000001000000000000002040aaa91a76e76b209d5782919ffbac0c1b40c4d4763b7179e423c793cda2a3080000000000000001000000000000000100000000000000204760ed6b8f37b8811c4472d07018ef33254862de57fd87fdcb222f78d35c0c3c000000000000000100000000000000010000000000000020231c9cddba9de91f81f082284626d72c840c35a049839db16d0798671da9a94e00000000000000010000000000000001000000000000002015dc39279a52d41ddbcaf227c199cbd51b1f711d661184752155a6495562235a000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000610000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000006100000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020b60f00ac5aa100ed487f252c5f57453032591b4ad2b2358b7e4b2b5bf8116b1a000000000000000100000000000000010000000000000020be3c304600dee094ac7b11b22bc4c6940552fbc5f077a7e24a4a568ea0b7540d00000000000000010000000000000001000000000000002004ce2cc4d87e262ec2f5f995c0158bc7b0330315c341537e2539f463c075a8cf000000000000000100000000000000010000000000000020ccdfc1ce31f7c9c3c299e0c8c2dcba2323cfe7190c2ecab871962f8a14a10c5f0000000000000001000000000000000100000000000000205c412ce971308b3c81ea6b705658f52dec02ecb3332ae0a2ccd740263bcc7a7b000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000500000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000202803e8a5c4741f7c0d695c19271ea397b47db4f231f512ff774635a50ae6998800000000000000010000000000000001000000000000002048bf88f7b93e2bcd99d8beb87e3ff5b0caf61388116f1938569c63ceebc3378b0000000000000001000000000000000100000000000000201d83882e46f5088affd079555b2c275d2386d81b8b37a98bfd2519fc364a4aa10000000000000001000000000000000100000000000000200bf7ab1c0d308f7966b26422ec6c126e5956a6ce55c01414a62362c696861137000000000000000100000000000000000000000000000020440141033be391d351cbd747235dd0dd8925385fcbdaf63ca3ce8096a77f70ba0000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000050000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000001000000000000002031e983d8252c220c7a157bf0b0e4d009860e59f0f25f27642db8cb4bf7a850c100000000000000010000000000000001000000000000002037442da0052c1e225d8fe6509d79b41db3636261de0513e141c9bffb94d9299f00000000000000010000000000000001000000000000002080791f87519ff3c06a911030e79b46f0075ebfa5b433792d826d53d2916e1fce000000000000000100000000000000010000000000000020a0b86bb2b9ed1d88c1716ee2897d7e5305051401751e458c39f027a27ad7553f0000000000000001000000000000000000000000000000204d271360d6ea5729d441a303230c4b3fd940e15129f6f043ffe200fe1412df3c000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000500000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000005000000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020d479910be32071faca712dc7f28fe9d846b00936dcb0a0c4f47c4f5f2e0d22880000000000000001000000000000000100000000000000203e852866bbd02607edf40a158be12015d6b47315429830d68df7177bfee8d7370000000000000001000000000000000100000000000000203123b1b063eb4477af1095ffa8004b86436aa43d1437d489a673b4afeea9807a0000000000000001000000000000000100000000000000201739593b6adf1df20681bdb468e8cf329b9aaa69ac06a77967055637d4ed0b720000000000000001000000000000000000000000000000204b2589cc642be6064ae59c9496cf16edb00687dfa69b285a43c510b78bfc57d30000000000000001000000000000000100000000000000204bf1e1669389897cdf60a4c21a8ebf7bc19a07905ce2001a19e2353ccbd0bc330000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb9000000000000003e0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020d759086dcad373073aae966a1f80b0ea984f7970ae87b7562247944a46cc0fad00000000000000010000000000000000000000000000002046ac07b7f7a61188086b6c4b68e04c2ab56f2c6523b241a09c8b73a6d2c4fd8600000000000000010000000000000000000000000000002003e351314794759cd9806174a52250b9cb8fa9581fa9e27d53e8a0c841303e0a00000000000000010000000000000000000000000000002038633c23221765310c92698cee8362c0d12200537889693a08f64eb0a28d0eb50000000000000001000000000000000000000000000000204cc7901d510046ae5f98d6b431c2a311cc066cdd794fd6e53cc30587ed00a61e0000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d000000000000003e000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020f16b86f848c233232511b38cf3bf3a52e6e9371050f48e1ca3cca4837a6035e200000000000000010000000000000000000000000000002036670a01fac60d516547b53a292308b7180d6cadb33e8c70762b23893e9541a4000000000000000100000000000000000000000000000020a9ab9c5ee7b9555a000953fc28810de93e021fd6c3bd175a54f424a6c2f67cc8000000000000000100000000000000000000000000000020d0aef9b77b039100567fbec3deac5294b41ec41336a21a95a35be851fa112511000000000000000100000000000000000000000000000020f8cfb327d9517742fe31d66ff60129d85a3e464d22188d95a53c32e3132069560000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de000000000000003e0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000003e00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d000000000000000700000000000000010000000000000001000000000000002027740ae449540eabd9ee1bbde232cae009ad7aed8d15a971e695d5254bfc234e0000000000000001000000000000000000000000000000202cbda8598c8494d01b63f8ad898e82f5bf191915bec6b423b5193aeed5358d8d00000000000000010000000000000000000000000000002051d1c8fbe14916c1ada979c389c6e526187b29de31453aab6ad0a7df0008d5d90000000000000001000000000000000000000000000000206916699a45fdfb8384004d89c6a315b17df2f235f5b835b904c0db675c6a94010000000000000001000000000000000000000000000000208f995ec61c2dccbeb9c7fe1f9ab07ecdb151d4c25dee869fcddca0342e9f92e100000000000000010000000000000000000000000000002040fcfc6bb63dbae33d624e3777a816b50ebb7a75c3788096fb31802eed5badf20000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e000000000000002b0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020d623fe35da47f495719c1f6db69f341f53505a77212301533194ee5bcce70a9700000000000000010000000000000000000000000000002036d642259a9610da09490a34cc56151eff1d21198923d9f37551523a0c1d7296000000000000000100000000000000010000000000000020feffaa714556b27a2dda8d1987f9b21b7c07cdbd2ba25dd553aa795bb22458060000000000000001000000000000000000000000000000201f4bfe7d2398692f0c7abdb85ed16895ef0857d4d738e32f167340e5542a22b20000000000000001000000000000000100000000000000205d77fe2ccf9c9f8603070bd03123cd3455d47968e542db3d55abf5cd35b03d050000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d000000000000002b000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020ea8dcf6e9c680237f2fc6cfa04e683c79883fc2f776847ceb27a222d9253e15c000000000000000100000000000000000000000000000020f94d3eb70abe97b6a0b31f4a89662535a8de6d8a3fd538bcfcf1bab5a45d8c97000000000000000100000000000000010000000000000020af1eb3d7d585cac460fb089230f35cc56b94ac9cafd3a68a235ce4dc2a8a3522000000000000000100000000000000000000000000000020b6d1fb90220eb827e5a0d6cff1a17436b1d8a5cbf6a2bec68975b0b2c4d80d8a000000000000000100000000000000010000000000000020e7444cc161f3e7f01cf05762fb0fb97caf4bc92619aabc44b759df970816cdad0000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de000000000000002b0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000002b00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020b9ec14f7d2b46214e006f6f5a67df9cd3e9f82c33e3cd643315f3bcf77704a030000000000000001000000000000000000000000000000201506a4df314278d041307279b80c15ed007f7c6959eb9f7c36af6db9fff4b23c000000000000000100000000000000010000000000000020f3e6159fd8f850f142ee2be2fd42aac619529f6794fa64fb9655b084de8deff0000000000000000100000000000000000000000000000020f7c430e5be26ecc9ace2846a2dd9aac8ff25889109484b43997f6080ae01699500000000000000010000000000000001000000000000002080f4c94164dc4597576888e1e7dfeeb82efbc11ac8b5ecc2b2df1058b8fa2b0500000000000000010000000000000000000000000000002040fcfc6bb63dbae33d624e3777a816b50ebb7a75c3788096fb31802eed5badf20000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000360000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020393764bdcd9e425bb2249d35607d0d215b4323c27dafd54ef03468a1109427700000000000000001000000000000000000000000000000205e0f50e6647448b37ecb900b2e98938852d04e3c7a8814ad45c8f5555096bfb500000000000000010000000000000000000000000000002015974e5cde8b68336383dff938d22e92f360b18ffe56429530ed75be9b66f34600000000000000010000000000000001000000000000002035603eb04728f46297d39deef07280b0efb1ad34cd06e614ab18bb44a27f7e2e0000000000000001000000000000000000000000000000204cc7901d510046ae5f98d6b431c2a311cc066cdd794fd6e53cc30587ed00a61e0000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000036000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000001000000000000002093eb35436b3f077a61626c36185d04ddb17027d3525ce85ca5c5af10053856a9000000000000000100000000000000000000000000000020eb939b7425a45e6af5ee8bbd51aa96cb2fd43c51864a08f260c6b1f8c2aca314000000000000000100000000000000000000000000000020617144785e76e054a86588f283941ec49cb303cfe7fa0c4860356593023b62a70000000000000001000000000000000100000000000000208167f508c5eb6be817a066fba8c0346e424b21acf020be61c9420e0d0fe6ef23000000000000000100000000000000000000000000000020f8cfb327d9517742fe31d66ff60129d85a3e464d22188d95a53c32e3132069560000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000360000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000003600000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020c81d8a1303ec8a042a1c8256b9993f049131b8dcc10dbdab3c8440bcca6eeed5000000000000000100000000000000000000000000000020e71ba0d2168fa3484961ca6a6263ba6305b6bcbfc7d076c7b11adb924bf3a74300000000000000010000000000000000000000000000002062f2b2903f1a7436363f3a5c5592a114e9fe69ef6adeb2631c9a458007c9663b0000000000000001000000000000000100000000000000204fcd2ada01b5d173195b35a487f5b16437dabdb84cce492f9d9213768cb11a090000000000000001000000000000000000000000000000208f995ec61c2dccbeb9c7fe1f9ab07ecdb151d4c25dee869fcddca0342e9f92e100000000000000010000000000000000000000000000002040fcfc6bb63dbae33d624e3777a816b50ebb7a75c3788096fb31802eed5badf20000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000140000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020cda62adf1897dd69a5d477188c1d7fc7d3f0d8707ff1abc9b07e315121f1f82a0000000000000001000000000000000100000000000000203f4103f6c5e041db2238dfa288c0fed4cd69dd9e9dfccbcbd45d686bccbb0f4d000000000000000100000000000000000000000000000020236a87f0094607aef55b5855bcf5d40e5a4d31eb60bcf52103d540e1255750fd000000000000000100000000000000010000000000000020e2acecbe8619d7478dee57fcb82511df4fa4f1bdb2d5253db0ff26c50b7344b300000000000000010000000000000000000000000000002067b848c6a8fd93922564ee17c6101e314bbd3846fcea2a0a759b6e14ee53062a000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000014000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000001000000000000002037ad0e26b487f4c1bd8fabb09c99fdd63c5113c06f0efe634a957d681e51d6d20000000000000001000000000000000100000000000000207690f6275b5b745ed602edf3d0e38ee9c8d29bef97c4ed21192216d29f29589c000000000000000100000000000000000000000000000020b6825f551393ddf40c3d0d57b2c88b4047463cc27d41309df512b8de3748521600000000000000010000000000000001000000000000002022828921a6b0f0bee2649772e95581d881e7c8e59ac79244530985451478d83800000000000000010000000000000000000000000000002081a27a248db0076bc7a7f51b5ccf3cf5b9e1c7455e27068c417e64832913ff410000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000140000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000001400000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020cbc15686cb5a1872d1c75ff425c9406b4cee642ef050733c4b16517d0f9b0d2f000000000000000100000000000000010000000000000020419750d457df4847a5ceed3b7646e2b5ad7aeabeef7d27d03a3fb4e527ce85000000000000000001000000000000000000000000000000208b1ad468560adbe36ce35d74c1d5fa810651d95caee843c247b8db9963999d5b00000000000000010000000000000001000000000000002016bdef74d3a4a3bf89aacb899b6f0c9002f0bb74b43dcea2dd6c6252a2ede355000000000000000100000000000000000000000000000020e31eb63203c4c86dcc10bca35f7905f868623039545d8b3017d8c39b9f6116d100000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000510000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000000000000000000201dce8110531ba734ee5ce98e273825cf6b0ed4c0b1d91177d71ddff22276446700000000000000010000000000000001000000000000002048bf88f7b93e2bcd99d8beb87e3ff5b0caf61388116f1938569c63ceebc3378b0000000000000001000000000000000100000000000000201d83882e46f5088affd079555b2c275d2386d81b8b37a98bfd2519fc364a4aa10000000000000001000000000000000100000000000000200bf7ab1c0d308f7966b26422ec6c126e5956a6ce55c01414a62362c696861137000000000000000100000000000000000000000000000020440141033be391d351cbd747235dd0dd8925385fcbdaf63ca3ce8096a77f70ba0000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000051000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020a3cbbb0667f9464f4dcf9e1b546201190b31c6a841192c79daf95ddea663c79500000000000000010000000000000001000000000000002037442da0052c1e225d8fe6509d79b41db3636261de0513e141c9bffb94d9299f00000000000000010000000000000001000000000000002080791f87519ff3c06a911030e79b46f0075ebfa5b433792d826d53d2916e1fce000000000000000100000000000000010000000000000020a0b86bb2b9ed1d88c1716ee2897d7e5305051401751e458c39f027a27ad7553f0000000000000001000000000000000000000000000000204d271360d6ea5729d441a303230c4b3fd940e15129f6f043ffe200fe1412df3c000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000510000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000005100000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d000000000000000700000000000000010000000000000000000000000000002053cc390d04e2e9e6100f1e6ca9fa5a4a679f84dec915b214fd24246103f1b56d0000000000000001000000000000000100000000000000203e852866bbd02607edf40a158be12015d6b47315429830d68df7177bfee8d7370000000000000001000000000000000100000000000000203123b1b063eb4477af1095ffa8004b86436aa43d1437d489a673b4afeea9807a0000000000000001000000000000000100000000000000201739593b6adf1df20681bdb468e8cf329b9aaa69ac06a77967055637d4ed0b720000000000000001000000000000000000000000000000204b2589cc642be6064ae59c9496cf16edb00687dfa69b285a43c510b78bfc57d30000000000000001000000000000000100000000000000204bf1e1669389897cdf60a4c21a8ebf7bc19a07905ce2001a19e2353ccbd0bc330000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000260000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000200532885162f334dcb979c295ccd7e114c25627c38abbe8344a62d3b4dd0193030000000000000001000000000000000000000000000000206646e85b38be67320dd5f242052434bb096fc2dd3addf7630266aefa790b07c7000000000000000100000000000000000000000000000020ec22875e1413e14f0b228057c008ca6093a9bcc7bb60d0bd9e92aaa0cf0b83610000000000000001000000000000000100000000000000205174f398ccc856cdbbef4aa77674b4b7eef12d39c064ad97e2c59fc16b229eba0000000000000001000000000000000100000000000000205d77fe2ccf9c9f8603070bd03123cd3455d47968e542db3d55abf5cd35b03d050000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000026000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000100000000000000205cc217a23b3b56fb7d7b4b1186cafac5396650cd5fc9cefd171d6e7dcc716f03000000000000000100000000000000000000000000000020ba86fb189507f2c681123bb98e433685488997ef80ef20ecfd7d745299e4c7df00000000000000010000000000000000000000000000002054c2a7e3d5246f862f53d205afda57fd943cfff4406a59fa2696999b1743dc66000000000000000100000000000000010000000000000020a88fc00e48cff7ada818659ce1afb1d48fbf00ea30b15d29f469922cbe8e2d8c000000000000000100000000000000010000000000000020e7444cc161f3e7f01cf05762fb0fb97caf4bc92619aabc44b759df970816cdad0000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000260000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000002600000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020a09b16eac1b785ee43928c9007a072723798cdef75bc4c5496b8d7f675939c3d00000000000000010000000000000000000000000000002044df9f5110073b3f1ffe881eae3bac9162053ab186cde304268de14c32095bba0000000000000001000000000000000000000000000000202f5d2b0dcf4bc4cc6aaeaf0b370ed5744b17239bc12f2916ecbc735ffffed915000000000000000100000000000000010000000000000020738ec93c8a9b7a0f5985915570b5f09db8fea468f04aef909e23d781767e0ee800000000000000010000000000000001000000000000002080f4c94164dc4597576888e1e7dfeeb82efbc11ac8b5ecc2b2df1058b8fa2b0500000000000000010000000000000000000000000000002040fcfc6bb63dbae33d624e3777a816b50ebb7a75c3788096fb31802eed5badf20000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000010000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020727653dd0ba5c260f42127d3913985b281e9ea7b231a6d3e7a283c39d193ce9b0000000000000001000000000000000100000000000000206555e950641c26f0150d14efc11a572e64fb0ffa9ee6a450a552495c26807510000000000000000100000000000000010000000000000020fead840665604a5a49e398fb78efac6fe1eb6f9b9330acae96d1f30f5ec2a112000000000000000100000000000000010000000000000020ca3dc5f22e4573bfae9e4282c195d191a87ba277e564f158302218ee7bcec57300000000000000010000000000000001000000000000002056e5e7ca74faee51ae45c7001256fed2e7e080dcb95a859867c22dcb1608665f000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000001000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000000000000000000002071c1a3db6bf2f3fbb6225379025b7c2af6fef00e97870cda238d7a252164edfe00000000000000010000000000000001000000000000002097030da7360a458af1b5de0ad0e77770fedada0480d022f05f634898465c9954000000000000000100000000000000010000000000000020442b7310681f9144ce05c5c0335794243b1628a10269ea3f920a1d69cf0170b4000000000000000100000000000000010000000000000020ea8b53cd7415ecfb610e991f3187dc70583ec968dd6f325946dad2d066766dd100000000000000010000000000000001000000000000002099796d2366d350a09cad2698ab80419a6869a2524f9cfcc2eb3055449273a24a0000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000010000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000000100000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000000000000000000200f7d3d47144478bb9935a9c51fc46b1b1a5a0c2193dde53d033cfc11a38eaa4a000000000000000100000000000000010000000000000020427991f215fe7e45997ccba33054721026a6c1327066c6b3403cf7227aed474c0000000000000001000000000000000100000000000000208ee52142db58fe442ca24e9577a242b6b0a01d185709369184976ec6ed203b4d0000000000000001000000000000000100000000000000202ef4e1908e5c1feba751546a1b19b44ec3948b5b79fb15cbc254b6ae858d0622000000000000000100000000000000010000000000000020cf7b4774e00157cbbb3d3167eebc39e16fa993a1f6d067c9342e404e34e33a4a00000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000320000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020673777488cf3d8a0b74ceebc5bcafced0f7c67203cea83d9e757c0af22d8b612000000000000000100000000000000000000000000000020a8b163b594b1ea8548436dc3b48197513fc9b45c735c5d964bdfe6fcc058a8b60000000000000001000000000000000100000000000000202d3d71c190cf6c43416cbe47335b0e25e426bc497ce5758c1606e0f1aa2ca3df00000000000000010000000000000001000000000000002035603eb04728f46297d39deef07280b0efb1ad34cd06e614ab18bb44a27f7e2e0000000000000001000000000000000000000000000000204cc7901d510046ae5f98d6b431c2a311cc066cdd794fd6e53cc30587ed00a61e0000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000032000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000100000000000000205e0c9389e88c9d1b6939317e6f78dcade394d14f5d60990c59db162fb62dba8d00000000000000010000000000000000000000000000002070c89f4cc302199fb888ede5542fcf52a05e788b646abb1466122cc5eb84938300000000000000010000000000000001000000000000002072ebca755ad2ef4b7250f091f16fa7df2d4de8ea26d8d83c79b0f03cc45baa930000000000000001000000000000000100000000000000208167f508c5eb6be817a066fba8c0346e424b21acf020be61c9420e0d0fe6ef23000000000000000100000000000000000000000000000020f8cfb327d9517742fe31d66ff60129d85a3e464d22188d95a53c32e3132069560000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000320000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000003200000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020a8857c9413964956bf694f5d8be5efa01c7f27329d2ed0d7899d74e91ff9c9a900000000000000010000000000000000000000000000002043609303b68813a54ec3832425a23f11fa8011424fb365ef839892c52ab5c39c0000000000000001000000000000000100000000000000208f09a045147135ca6ac409dfffdf05e0ba6f083e7f58e3398e069468e3349b100000000000000001000000000000000100000000000000204fcd2ada01b5d173195b35a487f5b16437dabdb84cce492f9d9213768cb11a090000000000000001000000000000000000000000000000208f995ec61c2dccbeb9c7fe1f9ab07ecdb151d4c25dee869fcddca0342e9f92e100000000000000010000000000000000000000000000002040fcfc6bb63dbae33d624e3777a816b50ebb7a75c3788096fb31802eed5badf20000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e000000000000000b0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000000000000000000201a89e481bba18dfa9d4416ef0205ba9c067ab904a04b02a35855188fff0ad57200000000000000010000000000000000000000000000002034eb72e07f1bf338a90c88f33d60e76f13297c61f81d3a00a186398991c46d9a000000000000000100000000000000010000000000000020f4788f282cc48569bec74e73b39f71e265eb51ef211aecf4d1a7add0f34d7b1600000000000000010000000000000000000000000000002074c92898599a40af39cc7a4aa694631d7e51488babfa65b017e19bd852de297900000000000000010000000000000001000000000000002056e5e7ca74faee51ae45c7001256fed2e7e080dcb95a859867c22dcb1608665f000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d000000000000000b000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020dd67b97f66f8ec35d2badf9cbecef66029be7519b0cb7fc3c98ef1b46effb6710000000000000001000000000000000000000000000000203fb1c1672356fe7d5dd51118e2141a18470022a596efa96d71df01663dbacaf7000000000000000100000000000000010000000000000020a52b91bce93e4fa0572db86458eba139088189bddae7d7b79620966038af80c50000000000000001000000000000000000000000000000208f3d18cc0b0da6433287a04f00ac88b64a41656e27ea9ddc94e4472173bebea600000000000000010000000000000001000000000000002099796d2366d350a09cad2698ab80419a6869a2524f9cfcc2eb3055449273a24a0000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de000000000000000b0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000000b00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000000000000000000201aa21278418c6eb518999151864c723ba9c303adef76f4352a5d327bfbb6cc08000000000000000100000000000000000000000000000020fa349777b0641ceddab988e29e07fa5f2661c6df69effb0174bada10a4a21fae000000000000000100000000000000010000000000000020a4bff191e50d729d30375a40780a8f7b71683f4a524dd1a0f96ceb2b1c3359a1000000000000000100000000000000000000000000000020c00237dc35ffd084252306466001d905dafd040f1eef9871a7001cc4e9b4f108000000000000000100000000000000010000000000000020cf7b4774e00157cbbb3d3167eebc39e16fa993a1f6d067c9342e404e34e33a4a00000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000340000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020e7e80bd549336feef20b84d8fc6dcac30affb2bad78de3f3114dc82e50a92a69000000000000000100000000000000010000000000000020bf66858a8f548d23da67e17eb30171bcd49e0cdf754ccdc73bfc4932c7b7d4f900000000000000010000000000000000000000000000002015974e5cde8b68336383dff938d22e92f360b18ffe56429530ed75be9b66f34600000000000000010000000000000001000000000000002035603eb04728f46297d39deef07280b0efb1ad34cd06e614ab18bb44a27f7e2e0000000000000001000000000000000000000000000000204cc7901d510046ae5f98d6b431c2a311cc066cdd794fd6e53cc30587ed00a61e0000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000034000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000100000000000000201cf50ad24d0b32a2a14eee85abe16d66f610b837b5dae23813e3de0aa89a7515000000000000000100000000000000010000000000000020beb80dff8ac0dc16ac9cb4cde80e4c9f02416d0ac6d10cb3918516b35d3ec44b000000000000000100000000000000000000000000000020617144785e76e054a86588f283941ec49cb303cfe7fa0c4860356593023b62a70000000000000001000000000000000100000000000000208167f508c5eb6be817a066fba8c0346e424b21acf020be61c9420e0d0fe6ef23000000000000000100000000000000000000000000000020f8cfb327d9517742fe31d66ff60129d85a3e464d22188d95a53c32e3132069560000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000340000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000003400000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020f3197a6bc4c2a13c1ccbdd9d35aa3a96039850dbef1a3d9b13f0d662dec230b100000000000000010000000000000001000000000000002022c6081ae426b1d9ce5335d2358368d2d7e03bf87b7e8fbd1b9445eab2fc4a2200000000000000010000000000000000000000000000002062f2b2903f1a7436363f3a5c5592a114e9fe69ef6adeb2631c9a458007c9663b0000000000000001000000000000000100000000000000204fcd2ada01b5d173195b35a487f5b16437dabdb84cce492f9d9213768cb11a090000000000000001000000000000000000000000000000208f995ec61c2dccbeb9c7fe1f9ab07ecdb151d4c25dee869fcddca0342e9f92e100000000000000010000000000000000000000000000002040fcfc6bb63dbae33d624e3777a816b50ebb7a75c3788096fb31802eed5badf20000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000010000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020727653dd0ba5c260f42127d3913985b281e9ea7b231a6d3e7a283c39d193ce9b0000000000000001000000000000000100000000000000206555e950641c26f0150d14efc11a572e64fb0ffa9ee6a450a552495c26807510000000000000000100000000000000010000000000000020fead840665604a5a49e398fb78efac6fe1eb6f9b9330acae96d1f30f5ec2a112000000000000000100000000000000010000000000000020ca3dc5f22e4573bfae9e4282c195d191a87ba277e564f158302218ee7bcec57300000000000000010000000000000001000000000000002056e5e7ca74faee51ae45c7001256fed2e7e080dcb95a859867c22dcb1608665f000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000001000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000000000000000000002071c1a3db6bf2f3fbb6225379025b7c2af6fef00e97870cda238d7a252164edfe00000000000000010000000000000001000000000000002097030da7360a458af1b5de0ad0e77770fedada0480d022f05f634898465c9954000000000000000100000000000000010000000000000020442b7310681f9144ce05c5c0335794243b1628a10269ea3f920a1d69cf0170b4000000000000000100000000000000010000000000000020ea8b53cd7415ecfb610e991f3187dc70583ec968dd6f325946dad2d066766dd100000000000000010000000000000001000000000000002099796d2366d350a09cad2698ab80419a6869a2524f9cfcc2eb3055449273a24a0000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000010000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000000100000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000000000000000000200f7d3d47144478bb9935a9c51fc46b1b1a5a0c2193dde53d033cfc11a38eaa4a000000000000000100000000000000010000000000000020427991f215fe7e45997ccba33054721026a6c1327066c6b3403cf7227aed474c0000000000000001000000000000000100000000000000208ee52142db58fe442ca24e9577a242b6b0a01d185709369184976ec6ed203b4d0000000000000001000000000000000100000000000000202ef4e1908e5c1feba751546a1b19b44ec3948b5b79fb15cbc254b6ae858d0622000000000000000100000000000000010000000000000020cf7b4774e00157cbbb3d3167eebc39e16fa993a1f6d067c9342e404e34e33a4a00000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000490000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000000000000000000201860564c2aeb744fc30bf71ecd6baf03d9be77372b25d31272281c9758e8169400000000000000010000000000000001000000000000002060646d14fda94fd08e577bdea9fc1a671b1b5d8d53784a28110c0a7d605d91c60000000000000001000000000000000100000000000000202de906415b70ddf320e163f0338d5931f99bb6b0ab8e2c0a4267870082918637000000000000000100000000000000000000000000000020e2cfdef2e013593d17123ff3c49fb968341cf622151374e7b49d49569fdcf51e000000000000000100000000000000010000000000000020e6fbce7ccc80a578a93cc241360a739d0248edab1a37196cc8564d3cea08f1a90000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000049000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000000000000000000002013793ef5fcfba02ad9248613c54da41f5d9cdda3d2f4a8b897a34ee0c6151cfa0000000000000001000000000000000100000000000000202140747e5055c2f19a76dc2e3323a6298f108573ca44fbcd516e443b3a3de44d000000000000000100000000000000010000000000000020510be7fbad823f5d64b32d46eca47d66aae275bfc6d23ab17983fe6df6578151000000000000000100000000000000000000000000000020ecb1f059ced073c0f1f4ab430f41a2243331d77e965de85e9fbb5ae14eed25980000000000000001000000000000000100000000000000201e2c25d0355b2435f10a6081fe0d1c18b2bcf5ac219aa03a7bf09921024c667f000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000490000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000004900000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000000000000000000207b7e7d813596e555cb7536807a4b6f1ac8fa4422dc4d38c4e5c8d011ba9ed6eb000000000000000100000000000000010000000000000020550fe6ea252d2938fe077b30927846557ff0ce990d12d10b29d1f5059e93437e000000000000000100000000000000010000000000000020b0e895ff3921662a70c6f86f8a240ccf60a76f0abe4eaeb51fcecb7efc8ff93b00000000000000010000000000000000000000000000002005a7d139ea1c50e2d46ee67598c7cccdfa30f9ddabe7cfc41f5862d2aabb182b000000000000000100000000000000010000000000000020653a458519e3320afef3854df67dd297919d49bad510656792603e8433e203430000000000000001000000000000000100000000000000204bf1e1669389897cdf60a4c21a8ebf7bc19a07905ce2001a19e2353ccbd0bc330000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb90000000000000078000000000000006900000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d4000000000000000700000000000000010000000000000000000000000000002043609cd6c56575e638e4556f3542711b3deda4667de73987824d5b00563087f100000000000000010000000000000001000000000000002080887f2e3189e45edcd0e775fa7fbf880a92630216c929ed7134f08e9ef2cf1e00000000000000010000000000000001000000000000002043932f3e384fbddfe1bd37deb7c0cab286f92cec12bfb0550d0b912548777824000000000000000100000000000000000000000000000020f85733e031fa6d105167a08b1c0c4aa7adf12f0649d84c9ccbd5093cfae1b9810000000000000001000000000000000100000000000000204e50d1a6000824f5cb7d9eb885680a1671d88dafc78a454b198d6c47b16595c9000000000000000100000000000000000000000000000020ea1d0f8669b9afe823f0be1e90c0d5799ac3fd8c4366cd231da9ab3e040ba5fd0000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad0000000000000029000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d00000000000000060000000000000001000000000000000000000000000000204cbc345704ec816cde6ce64bd82eacbf6f60c5d3c967cf3dd0797acd5855cc79000000000000000100000000000000010000000000000020dda727ff5aceb31fcd279f1f76b22ad6ff9fcb430cf35d04f3a27e4c9adbe598000000000000000100000000000000010000000000000020c785a107ccd44a8109eef6c62a2f7d66cf98c3c8c1e5f114493e8adc02afc02f000000000000000100000000000000000000000000000020d0212e386a105cf30b473e6cf1bedb9fdccedf2971be1402d648e94463b516b1000000000000000100000000000000010000000000000020d38ca383fe0726dc7c544c95a4ff50a46052b0e4bd3942c8249176238407541c000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f600000000000000090000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb7160000000000000005000000000000000100000000000000000000000000000020688ab9061b0d0dd9741c2805dd3de9ddacb65bbe8bb00727bbd85ddbd0d20a3c0000000000000001000000000000000100000000000000202dff2e1df9d9260694d6943eeed7ed299be05f30469e7d9962cf0b4350179ed100000000000000010000000000000001000000000000002071439899e46f8347a807ce2ad5a7677ad60be0abf0200bed21bfa750e2803fd900000000000000010000000000000000000000000000002053079eb9f250dc3c24e130d3cfe6b33850d7952eaf3358caa62c406b9951f6fb00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000000500000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d400000000000000070000000000000001000000000000000000000000000000200609d730339a973cd316874ba80a53c12a113bf866010e5af9370a821da71f25000000000000000100000000000000010000000000000020b3e4c372aa6367e8f86d28aa9369dc3363a62f77a8d8b1e20e1e7417d6e814d800000000000000010000000000000000000000000000002062a86c254e2a4365cebe59f263b2368974b31779e8358e2fc797f35717f53b7a0000000000000001000000000000000100000000000000209ec7c236e135c223fb251312761f2a9378a9423b3c5897609b9f00184e022be000000000000000010000000000000001000000000000002079c2ed00949e9f96d4f87c754bb9202bf16e0a8e3d3303ce659489a4962f82bf000000000000000100000000000000010000000000000020113e27b5901897167a0448d1dbb7d377e86eb7437aa10f6d9c449e12d269af880000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab1150000000000000005000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000006000000000000000100000000000000000000000000000020837d5b29fa360c9ff857978b44d8ae87081b508606a7807210f0a9699f8919de000000000000000100000000000000010000000000000020aca880a192545f491319ee360368631afdb16183f3190af6878506765774060400000000000000010000000000000000000000000000002043838477e9f1673f2d7e7ea665402abe8c8fd41f7961b10d7ff11934281c21c1000000000000000100000000000000010000000000000020ab3923d8895efbab25b1d9beeaad8c7acc3da96df78631e18214295fac01c5f2000000000000000100000000000000010000000000000020e9ebb4cf521fd9c5e6f70e93cbb3e25cc601550aa28b21d91e3249db3e747b1700000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd600000000000000050000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb71600000000000000050000000000000001000000000000000000000000000000201f50d40d04dc8bea176e530bc3d73b6f31e1e4fc1b865f86909f0fb1706c30ca000000000000000100000000000000010000000000000020bb0fd9899f25157d2fb62a3d74f25280d5a2afef47d86e8616ea234f150b8c370000000000000001000000000000000000000000000000206ad302f7496266239fd115a1b579a74dce557fa3e13c7170f4a261192829d6d70000000000000001000000000000000100000000000000200282245398e29bbcb055f5c06e1dfdc51199ecde0d784c712f1ef52fd142fe7a00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000007c00000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d40000000000000007000000000000000100000000000000010000000000000020e064e4ba894887a58b11e6706f390252f19f2ceb85419ab526596471d2212bab0000000000000001000000000000000100000000000000207bcea6b848bb93875b38f8cf49a8ea6918c9f3ea4996a0454042fe7aaa5a30a7000000000000000100000000000000000000000000000020bae9f68f6fa109668710d52e314c81a0736447ae63f82f8d30e2cf8b0fed55b800000000000000010000000000000000000000000000002095360d8b7bb69cdb3a0f776e371368dd76f29edb7f025682bf58ad24f7112bfd00000000000000010000000000000000000000000000002020e7a6a3a271902f8201f64eed3af53047f6ccca55a2d2233d2f9e66edb2130e000000000000000100000000000000000000000000000020ea1d0f8669b9afe823f0be1e90c0d5799ac3fd8c4366cd231da9ab3e040ba5fd0000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad000000000000003c000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d00000000000000060000000000000001000000000000000100000000000000200d53471b7d2a58b730f0ace02cd6f4e78125b7761ae61803cf4475543843c1d3000000000000000100000000000000010000000000000020c086053a3fd36eaf468d8e401388df994a2352b10be4e75992535fcc77b92ce60000000000000001000000000000000000000000000000208a9e287433581f6b9d56498db08e05d56d0bbf4e52cf85ccd0177e2a51392f3c000000000000000100000000000000000000000000000020109e4b15f3ee6308ead76f6ca587b7fcbef4e619101397ce8cc2504c9c5aadf7000000000000000100000000000000000000000000000020ca730090e7756d1979c0efd26d1191147ba040a03bf2f73f6ef36813aa05d3fc000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f6000000000000001c0000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb7160000000000000005000000000000000100000000000000010000000000000020c05107692c3e62231e6ff29c508ed6212ff0198e3a7675e55bc691eb9e9436500000000000000001000000000000000100000000000000208b3a86f131b9f3304c2a51ee420963bab9ab32369059c732ebf11fa824008fe7000000000000000100000000000000000000000000000020755753761e27de0c2ba56fb717cf6d81433daee5e14d738fd8b29367fa62ef5000000000000000010000000000000000000000000000002028bf280a9b60983357317cbee8d19467a1cf8ec7148c53d7bada7cd92ef19ad00000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000005000000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d4000000000000000700000000000000010000000000000001000000000000002008c155832d9d0ae510ebd92ef5dd08ed74726a66a799a66934ce165e63d9c3cb000000000000000100000000000000010000000000000020838fbf34ffc0b73c75af3f13704015c0e534e9efd82fa67bf1a6eb1f3525c7fe000000000000000100000000000000010000000000000020fed08d8f1e1ca3b4696fb2617fcec1831ff7782aac983c64b03ee1ded3061431000000000000000100000000000000010000000000000020d864edee9f548a784b6ffb182f4ae45cdd6077a8c8403b12657510c68899e168000000000000000100000000000000000000000000000020e7f239c394c0b7498d56f58ef3d17be39cf67a3054e7f253a475e15c2a75b9ea0000000000000001000000000000000100000000000000204ca795af155a2c7afd3b9e7575a9709140809b5e2fd6a6996408d80f7cbb64c00000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad0000000000000010000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d000000000000000600000000000000010000000000000001000000000000002075a6b53a1b5fd7044a8cf813693213ff0d58193bfdc0bc418b04adf2d526b562000000000000000100000000000000010000000000000020fe8ff67cae48a8825f0d7632e34ec0771065c7079994c81177447736ba2a0a73000000000000000100000000000000010000000000000020eca1f5cae72294c9e87bfbeaaef6e10a6d1690bc010fbf41f865a7027f599ea100000000000000010000000000000001000000000000002010d98525b43a4e9c9e72f1fff87bfb2fc5dc34645d0cb12c9f9387c082d0fd34000000000000000100000000000000000000000000000020fbb52e94d0613a9653eab6b27f7ddc0142800af7303d0d579d7c32d539f4933900000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd600000000000000100000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb7160000000000000005000000000000000100000000000000010000000000000020e8693cdb67d089fa6387e681eda2f9bde47bbcd38424b21b159dfd5ae9f01886000000000000000100000000000000010000000000000020535a39e609e7abe7c56e456d3d8d5c2ea750717e9f74c38bfabf529e3f333ee400000000000000010000000000000001000000000000002048f2a4d54acd77830ac8e25c135d3199bdcde7a3a69ecfbcf0c2f866d4cfb8e700000000000000010000000000000001000000000000002086b66390884356d6e0ba36d0a9c244fe6b858c6ee4773fc74d24113eaa363d050000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000004800000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d400000000000000070000000000000001000000000000000100000000000000204318518404907dc61dc3a1baef2b0b797187cdac1f43aa6b389dbf8d5a6cb8200000000000000001000000000000000100000000000000204a7b504fe903a484fbda0e9b89fc0f7891461cef78f1791b46faa673ea71a8d2000000000000000100000000000000010000000000000020ef334171ef36d500862572b144a473dde3c9e7351ae67eab71da6c8c8bfdd1c90000000000000001000000000000000000000000000000201863686499cab26760c4bc406bd87c45ee0eddea2b56a57b87448f64749186b80000000000000001000000000000000100000000000000208cc5e71a30a21c9c253015196dd0e4ce43441359f25bcff69dd2d76e3094b55f0000000000000001000000000000000100000000000000204ca795af155a2c7afd3b9e7575a9709140809b5e2fd6a6996408d80f7cbb64c00000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad0000000000000008000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000006000000000000000100000000000000010000000000000020aaefb3ea1ebd231e309c0effaf45ab8610b3cc657009fcf6c3456d1114265d69000000000000000100000000000000010000000000000020fddacde4f46a4d2a3a59776f3fc7f2f99482debb3940e61070f9e48efbdf82a6000000000000000100000000000000010000000000000020c35f57174d244bc93de5962cd3eafe8c7ce0bd4e411b8ea6d6dcec80f3235fad000000000000000100000000000000000000000000000020020ed5189b3c1f2a40e54dfe6de25896b013e0500d8c66842ecbc668174ae62b000000000000000100000000000000010000000000000020e9ebb4cf521fd9c5e6f70e93cbb3e25cc601550aa28b21d91e3249db3e747b1700000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd600000000000000080000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb716000000000000000500000000000000010000000000000001000000000000002000cea01495a73e46331b8a5087d2cd24470c01c74c5790084204726da2a862ed0000000000000001000000000000000100000000000000202dff2e1df9d9260694d6943eeed7ed299be05f30469e7d9962cf0b4350179ed100000000000000010000000000000001000000000000002071439899e46f8347a807ce2ad5a7677ad60be0abf0200bed21bfa750e2803fd900000000000000010000000000000000000000000000002053079eb9f250dc3c24e130d3cfe6b33850d7952eaf3358caa62c406b9951f6fb00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000001e00000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d40000000000000007000000000000000100000000000000010000000000000020826ad32f93eb44be39737b6579a52ed024a0a8574a2fb7396380ca6be6748d03000000000000000100000000000000000000000000000020c32aa3382726d2ed8b681297576ff2961915a0436c1f7bb0c2f26f1fd6eb9b3d0000000000000001000000000000000000000000000000208bf0eed998e140fa07a34d13571e1c4194e8bd1bb6a416f2990f08911685c67a000000000000000100000000000000000000000000000020553e242e957da0e4a74c97fa591461e21736d84be341f9093b3adf69633165440000000000000001000000000000000000000000000000204b193d9a2fb3439a6ec753384b5fdac5bf47e4638ac4d5ec34f71860616f7d26000000000000000100000000000000010000000000000020113e27b5901897167a0448d1dbb7d377e86eb7437aa10f6d9c449e12d269af880000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab115000000000000001e000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000006000000000000000100000000000000010000000000000020ace14c15d3f13ad1478fe2f7221525d9c1d60b083f694ee39cd63c62cabf7dcd000000000000000100000000000000000000000000000020cb7134f2166e0567e1a64ad18ef358fdd4e4b1e19d57cb05c4104b9e8166edee000000000000000100000000000000000000000000000020c3bb5f76e7bd5b66a7de5885d519979f4431077b88c76ca730c0c015236bb24700000000000000010000000000000000000000000000002057e4becd876b2e534f7f94cc742d05ce83b1fa998b6412364fd2d5369abd4511000000000000000100000000000000000000000000000020fbb52e94d0613a9653eab6b27f7ddc0142800af7303d0d579d7c32d539f4933900000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd6000000000000001e0000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb71600000000000000050000000000000001000000000000000100000000000000206fd88d6627cb51ce2b00b7a20c466e1d613a9f113e2a00cba576cadc4752e66b000000000000000100000000000000000000000000000020d7720b4b58150868a3443741546e82ad658ad115ed35b2c2042060056627332a000000000000000100000000000000000000000000000020755753761e27de0c2ba56fb717cf6d81433daee5e14d738fd8b29367fa62ef5000000000000000010000000000000000000000000000002028bf280a9b60983357317cbee8d19467a1cf8ec7148c53d7bada7cd92ef19ad00000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000000400000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d400000000000000070000000000000001000000000000000100000000000000203262ffe00481df3f2d4dee97034cb78f32646869299d08c2002bc33db4aa1130000000000000000100000000000000010000000000000020b3e4c372aa6367e8f86d28aa9369dc3363a62f77a8d8b1e20e1e7417d6e814d800000000000000010000000000000000000000000000002062a86c254e2a4365cebe59f263b2368974b31779e8358e2fc797f35717f53b7a0000000000000001000000000000000100000000000000209ec7c236e135c223fb251312761f2a9378a9423b3c5897609b9f00184e022be000000000000000010000000000000001000000000000002079c2ed00949e9f96d4f87c754bb9202bf16e0a8e3d3303ce659489a4962f82bf000000000000000100000000000000010000000000000020113e27b5901897167a0448d1dbb7d377e86eb7437aa10f6d9c449e12d269af880000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab1150000000000000004000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000006000000000000000100000000000000010000000000000020a934aaebd88310ae31ed896cd40b99173805a0f4af561a18c1959ee9ac2a3ffa000000000000000100000000000000010000000000000020aca880a192545f491319ee360368631afdb16183f3190af6878506765774060400000000000000010000000000000000000000000000002043838477e9f1673f2d7e7ea665402abe8c8fd41f7961b10d7ff11934281c21c1000000000000000100000000000000010000000000000020ab3923d8895efbab25b1d9beeaad8c7acc3da96df78631e18214295fac01c5f2000000000000000100000000000000010000000000000020e9ebb4cf521fd9c5e6f70e93cbb3e25cc601550aa28b21d91e3249db3e747b1700000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd600000000000000040000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb716000000000000000500000000000000010000000000000001000000000000002068f08d45405fe498fb4fd736761a77cc9cc5ecdc8261847a8333763d7188bb1b000000000000000100000000000000010000000000000020bb0fd9899f25157d2fb62a3d74f25280d5a2afef47d86e8616ea234f150b8c370000000000000001000000000000000000000000000000206ad302f7496266239fd115a1b579a74dce557fa3e13c7170f4a261192829d6d70000000000000001000000000000000100000000000000200282245398e29bbcb055f5c06e1dfdc51199ecde0d784c712f1ef52fd142fe7a00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000006a00000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d400000000000000070000000000000001000000000000000100000000000000200eafc1e1b6b24c7d3bbef436beb3128c2eeecb3a9dbf0b535baba3a3891b6eec000000000000000100000000000000000000000000000020f3152c1da90371aa53dbe7241ced242beb3557074b3c72c85f7719598be59b5600000000000000010000000000000001000000000000002043932f3e384fbddfe1bd37deb7c0cab286f92cec12bfb0550d0b912548777824000000000000000100000000000000000000000000000020f85733e031fa6d105167a08b1c0c4aa7adf12f0649d84c9ccbd5093cfae1b9810000000000000001000000000000000100000000000000204e50d1a6000824f5cb7d9eb885680a1671d88dafc78a454b198d6c47b16595c9000000000000000100000000000000000000000000000020ea1d0f8669b9afe823f0be1e90c0d5799ac3fd8c4366cd231da9ab3e040ba5fd0000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad000000000000002a000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d000000000000000600000000000000010000000000000001000000000000002004c22efd24a03b54487f91c925ebc75eff59908f67cfff992cf6b97cb472ee46000000000000000100000000000000000000000000000020164199ac661f0643ed3e40bc489a7c86c793617e24edb0e5a4f126e29888564c000000000000000100000000000000010000000000000020c785a107ccd44a8109eef6c62a2f7d66cf98c3c8c1e5f114493e8adc02afc02f000000000000000100000000000000000000000000000020d0212e386a105cf30b473e6cf1bedb9fdccedf2971be1402d648e94463b516b1000000000000000100000000000000010000000000000020d38ca383fe0726dc7c544c95a4ff50a46052b0e4bd3942c8249176238407541c000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f6000000000000000a0000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb716000000000000000500000000000000010000000000000001000000000000002066c80b1683cbb6ae555736cfd5ac97535bfea91663cc91e8a953183b13a47059000000000000000100000000000000000000000000000020c57eed22efa0ad64274179e1a683226dbe2088f942f0f1e942d5591106342bb800000000000000010000000000000001000000000000002071439899e46f8347a807ce2ad5a7677ad60be0abf0200bed21bfa750e2803fd900000000000000010000000000000000000000000000002053079eb9f250dc3c24e130d3cfe6b33850d7952eaf3358caa62c406b9951f6fb00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000006300000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d400000000000000070000000000000001000000000000000000000000000000200fde624a4f587d25b0563c15feedbc94199009e13e56362620aa64d9c08b704900000000000000010000000000000000000000000000002016339e0173a756ec50799562df5927365898d67c70c0830b78184ca41e81142900000000000000010000000000000001000000000000002021afe788ac31af4b11ef7f394e29ccceb8bb1151616522217b7258d27256685700000000000000010000000000000001000000000000002073a94e58c99ebe0edf773de28ec1717ed4b07539ca622abdac5d76d76b6a496f0000000000000001000000000000000100000000000000204e50d1a6000824f5cb7d9eb885680a1671d88dafc78a454b198d6c47b16595c9000000000000000100000000000000000000000000000020ea1d0f8669b9afe823f0be1e90c0d5799ac3fd8c4366cd231da9ab3e040ba5fd0000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad0000000000000023000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000006000000000000000100000000000000000000000000000020a6d607c9f2f3f1084eb838c5749cdba5b996553b449d726ca88d54d74e31e216000000000000000100000000000000000000000000000020773bc4c7c27c41430ffee385ec5c808485272762199886b1098e5680571bacd100000000000000010000000000000001000000000000002005959e9f458eb006e8dbc5a56687404d64b67c89677890e636112defb543d223000000000000000100000000000000010000000000000020e4f3c608663a27ed9a046dd2ea6cfa6c72508fff2ae84cebae55ed9eba51e2ca000000000000000100000000000000010000000000000020d38ca383fe0726dc7c544c95a4ff50a46052b0e4bd3942c8249176238407541c000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f600000000000000030000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb7160000000000000005000000000000000100000000000000000000000000000020d3652e740bdee709de72f10df92c362b09c029ea89cd2d7fbc004e2aaf27bed200000000000000010000000000000000000000000000002065f2d996d12c77de529c1f218dd2519357ce354ac49e581f6091f733a916f2d700000000000000010000000000000001000000000000002011363b65ff7c738d83af6e5d344c6566f286bd01b544c629adb93175b4f064970000000000000001000000000000000100000000000000200282245398e29bbcb055f5c06e1dfdc51199ecde0d784c712f1ef52fd142fe7a00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000003800000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d4000000000000000700000000000000010000000000000001000000000000002056f057141408f2eb2a99cbfc061e0178f5f5abf997fba02835a8bb1d93fd9e4e0000000000000001000000000000000100000000000000208981070ce323dce866a9a0d4a6f9d90defac47c59f207a18104d0570d2237dd8000000000000000100000000000000010000000000000020fe9922daa4fd105b4c6642933f33b23800ba3aeb33f2701346f193755a1858b50000000000000001000000000000000000000000000000209290771463853e16cc59740707ee1bbb664631bc8c1b58a7932ae346e0c16c4e000000000000000100000000000000000000000000000020deeb55e97dc611a451ec661f0f6a548de23e4909b63a2565b895ba61e8d002ef000000000000000100000000000000000000000000000020fbb638c189c1da035d1f63ff29391d2920eb4bd9b760bd5b5f84dbcaea676d040000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab1150000000000000038000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d00000000000000060000000000000001000000000000000100000000000000201603465efde5986ec8aff1fed324099e453bc5dad4cf51cf2febcb5a4e0046bc000000000000000100000000000000010000000000000020b160687c92ac720bb66e8974eb244ed621908c1fc732dedea5cb6454438f7764000000000000000100000000000000010000000000000020c067c68d47571db8122ed48de76c7e9b76870e3484185f2cda51d68170d31005000000000000000100000000000000000000000000000020109e4b15f3ee6308ead76f6ca587b7fcbef4e619101397ce8cc2504c9c5aadf7000000000000000100000000000000000000000000000020ca730090e7756d1979c0efd26d1191147ba040a03bf2f73f6ef36813aa05d3fc000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f600000000000000180000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb71600000000000000050000000000000001000000000000000100000000000000207efd8d1b861935e3f47d68976e1ee096db8665ff071dae91e42d92498d013b86000000000000000100000000000000010000000000000020e817308183c115f1fc1eac677eba677b7d8950f498a27f9e2272521727285f7d00000000000000010000000000000001000000000000002030531fd9431cd47ac82637bc43085ddde3a63de8868db6c93d1c7459f9137cd300000000000000010000000000000000000000000000002028bf280a9b60983357317cbee8d19467a1cf8ec7148c53d7bada7cd92ef19ad00000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000000600000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d40000000000000007000000000000000100000000000000010000000000000020d61fd397fc032d92e57866baadb6d8fe668538eb1e73d1710fdf97540c3802dd000000000000000100000000000000000000000000000020e3d2e1725a02cf29d216708cd432948ac39e625ba793eb8521626a2ca866d80b00000000000000010000000000000000000000000000002062a86c254e2a4365cebe59f263b2368974b31779e8358e2fc797f35717f53b7a0000000000000001000000000000000100000000000000209ec7c236e135c223fb251312761f2a9378a9423b3c5897609b9f00184e022be000000000000000010000000000000001000000000000002079c2ed00949e9f96d4f87c754bb9202bf16e0a8e3d3303ce659489a4962f82bf000000000000000100000000000000010000000000000020113e27b5901897167a0448d1dbb7d377e86eb7437aa10f6d9c449e12d269af880000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab1150000000000000006000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d000000000000000600000000000000010000000000000001000000000000002090cbe74ea02194055efe0dc5a41a2fb0b0ce98d2d3a34f4166a274200e635b4e000000000000000100000000000000000000000000000020f2795de5989931a34c8755486566f5d495fd57f2bd387a2ce7eef6881116dc2300000000000000010000000000000000000000000000002043838477e9f1673f2d7e7ea665402abe8c8fd41f7961b10d7ff11934281c21c1000000000000000100000000000000010000000000000020ab3923d8895efbab25b1d9beeaad8c7acc3da96df78631e18214295fac01c5f2000000000000000100000000000000010000000000000020e9ebb4cf521fd9c5e6f70e93cbb3e25cc601550aa28b21d91e3249db3e747b1700000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd600000000000000060000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb71600000000000000050000000000000001000000000000000100000000000000201fd4b6134479d7c8e61c73da358a84b53dc760fd31142901d1b4bb0e4590633a000000000000000100000000000000000000000000000020486e1bb072c641d035cbfd2b3e22f37a6ada1e3b06f2e3c6a21f71fc5a207aac0000000000000001000000000000000000000000000000206ad302f7496266239fd115a1b579a74dce557fa3e13c7170f4a261192829d6d70000000000000001000000000000000100000000000000200282245398e29bbcb055f5c06e1dfdc51199ecde0d784c712f1ef52fd142fe7a00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000000800000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d400000000000000070000000000000001000000000000000100000000000000201db1b0a6e83111d03a00dea3d095597b003f8c28952998a5ac15539a93d97db300000000000000010000000000000001000000000000002050d1b6e4c7682963fa360211e4a752a02ae8c1cb48ec2e542f3920442c6ef6bf000000000000000100000000000000010000000000000020d7185b6ef7846c634eefb50e4cfb826a08178d910180ad44795bc9e1e407f3bd0000000000000001000000000000000000000000000000202e1c38121e828022c78a35c84ef2b7ec45a335ee84e30559f73108e705e0c5f700000000000000010000000000000001000000000000002079c2ed00949e9f96d4f87c754bb9202bf16e0a8e3d3303ce659489a4962f82bf000000000000000100000000000000010000000000000020113e27b5901897167a0448d1dbb7d377e86eb7437aa10f6d9c449e12d269af880000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab1150000000000000008000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000006000000000000000100000000000000010000000000000020aaefb3ea1ebd231e309c0effaf45ab8610b3cc657009fcf6c3456d1114265d69000000000000000100000000000000010000000000000020fddacde4f46a4d2a3a59776f3fc7f2f99482debb3940e61070f9e48efbdf82a6000000000000000100000000000000010000000000000020c35f57174d244bc93de5962cd3eafe8c7ce0bd4e411b8ea6d6dcec80f3235fad000000000000000100000000000000000000000000000020020ed5189b3c1f2a40e54dfe6de25896b013e0500d8c66842ecbc668174ae62b000000000000000100000000000000010000000000000020e9ebb4cf521fd9c5e6f70e93cbb3e25cc601550aa28b21d91e3249db3e747b1700000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd600000000000000080000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb716000000000000000500000000000000010000000000000001000000000000002000cea01495a73e46331b8a5087d2cd24470c01c74c5790084204726da2a862ed0000000000000001000000000000000100000000000000202dff2e1df9d9260694d6943eeed7ed299be05f30469e7d9962cf0b4350179ed100000000000000010000000000000001000000000000002071439899e46f8347a807ce2ad5a7677ad60be0abf0200bed21bfa750e2803fd900000000000000010000000000000000000000000000002053079eb9f250dc3c24e130d3cfe6b33850d7952eaf3358caa62c406b9951f6fb00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000006900000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d4000000000000000700000000000000010000000000000000000000000000002043609cd6c56575e638e4556f3542711b3deda4667de73987824d5b00563087f100000000000000010000000000000001000000000000002080887f2e3189e45edcd0e775fa7fbf880a92630216c929ed7134f08e9ef2cf1e00000000000000010000000000000001000000000000002043932f3e384fbddfe1bd37deb7c0cab286f92cec12bfb0550d0b912548777824000000000000000100000000000000000000000000000020f85733e031fa6d105167a08b1c0c4aa7adf12f0649d84c9ccbd5093cfae1b9810000000000000001000000000000000100000000000000204e50d1a6000824f5cb7d9eb885680a1671d88dafc78a454b198d6c47b16595c9000000000000000100000000000000000000000000000020ea1d0f8669b9afe823f0be1e90c0d5799ac3fd8c4366cd231da9ab3e040ba5fd0000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad0000000000000029000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d00000000000000060000000000000001000000000000000000000000000000204cbc345704ec816cde6ce64bd82eacbf6f60c5d3c967cf3dd0797acd5855cc79000000000000000100000000000000010000000000000020dda727ff5aceb31fcd279f1f76b22ad6ff9fcb430cf35d04f3a27e4c9adbe598000000000000000100000000000000010000000000000020c785a107ccd44a8109eef6c62a2f7d66cf98c3c8c1e5f114493e8adc02afc02f000000000000000100000000000000000000000000000020d0212e386a105cf30b473e6cf1bedb9fdccedf2971be1402d648e94463b516b1000000000000000100000000000000010000000000000020d38ca383fe0726dc7c544c95a4ff50a46052b0e4bd3942c8249176238407541c000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f600000000000000090000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb7160000000000000005000000000000000100000000000000000000000000000020688ab9061b0d0dd9741c2805dd3de9ddacb65bbe8bb00727bbd85ddbd0d20a3c0000000000000001000000000000000100000000000000202dff2e1df9d9260694d6943eeed7ed299be05f30469e7d9962cf0b4350179ed100000000000000010000000000000001000000000000002071439899e46f8347a807ce2ad5a7677ad60be0abf0200bed21bfa750e2803fd900000000000000010000000000000000000000000000002053079eb9f250dc3c24e130d3cfe6b33850d7952eaf3358caa62c406b9951f6fb00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000005e00000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d400000000000000070000000000000001000000000000000100000000000000200f059f556c3db6d2c5812592d070eaa7271a1df9ce4715f36380ffda11d35948000000000000000100000000000000000000000000000020a38d74a2795340b5927064f4481ebec327452b02d4112e251e5269c1a1a5f67b0000000000000001000000000000000000000000000000202b9642230b7bf3feee28f9e4191861c90a2ed62e483c93f410fa8f79b3992ed80000000000000001000000000000000000000000000000202a846bbbbaf1e053b06a0bb8f3041ec8660d6fd40bbb7473d2b1e91fe008ee54000000000000000100000000000000000000000000000020e7f239c394c0b7498d56f58ef3d17be39cf67a3054e7f253a475e15c2a75b9ea0000000000000001000000000000000100000000000000204ca795af155a2c7afd3b9e7575a9709140809b5e2fd6a6996408d80f7cbb64c00000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad000000000000001e000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000006000000000000000100000000000000010000000000000020ace14c15d3f13ad1478fe2f7221525d9c1d60b083f694ee39cd63c62cabf7dcd000000000000000100000000000000000000000000000020cb7134f2166e0567e1a64ad18ef358fdd4e4b1e19d57cb05c4104b9e8166edee000000000000000100000000000000000000000000000020c3bb5f76e7bd5b66a7de5885d519979f4431077b88c76ca730c0c015236bb24700000000000000010000000000000000000000000000002057e4becd876b2e534f7f94cc742d05ce83b1fa998b6412364fd2d5369abd4511000000000000000100000000000000000000000000000020fbb52e94d0613a9653eab6b27f7ddc0142800af7303d0d579d7c32d539f4933900000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd6000000000000001e0000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb71600000000000000050000000000000001000000000000000100000000000000206fd88d6627cb51ce2b00b7a20c466e1d613a9f113e2a00cba576cadc4752e66b000000000000000100000000000000000000000000000020d7720b4b58150868a3443741546e82ad658ad115ed35b2c2042060056627332a000000000000000100000000000000000000000000000020755753761e27de0c2ba56fb717cf6d81433daee5e14d738fd8b29367fa62ef5000000000000000010000000000000000000000000000002028bf280a9b60983357317cbee8d19467a1cf8ec7148c53d7bada7cd92ef19ad00000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000002100000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d400000000000000070000000000000001000000000000000000000000000000207a65bf5b5472a654b9163b95ff070b5cb39b355aaf1cdf0d689ffcc4aa05a4600000000000000001000000000000000100000000000000206e8915743d0e7aaf6639bd54d8fc1d8cb8965ed6cb56feb1d13c213cfd550532000000000000000100000000000000010000000000000020139d4e94cc883d92ee2e45d1a28f82987daebcf5bfd2fa93188bbee74d9f146b000000000000000100000000000000010000000000000020197fef0590d7d2b89088f76246e61349a825bd6009b13bb0103a5a5ade2326ce00000000000000010000000000000001000000000000002046741959925884c1313b2341b9cef208234481e221f61a5dd7b22b5631e24c98000000000000000100000000000000000000000000000020fbb638c189c1da035d1f63ff29391d2920eb4bd9b760bd5b5f84dbcaea676d040000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab1150000000000000021000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d000000000000000600000000000000010000000000000000000000000000002074c07a34cc99f2504283d2471aa98e70c3dd4e2ee2abf9bfbe865b3603fd821800000000000000010000000000000001000000000000002003274a3b9d01c581a89369fa5e9a3b08a4b3009b4a88784562b4eba960f4e57200000000000000010000000000000001000000000000002005959e9f458eb006e8dbc5a56687404d64b67c89677890e636112defb543d223000000000000000100000000000000010000000000000020e4f3c608663a27ed9a046dd2ea6cfa6c72508fff2ae84cebae55ed9eba51e2ca000000000000000100000000000000010000000000000020d38ca383fe0726dc7c544c95a4ff50a46052b0e4bd3942c8249176238407541c000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f600000000000000010000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb716000000000000000500000000000000010000000000000000000000000000002092dc190aff1a5be9574e9362cc2c9939434f80288b8e1856412364fcd6a63187000000000000000100000000000000010000000000000020858945fcd02dafce48e632e41f9689536b4e66548e2f14c916c83c66a6d06e7700000000000000010000000000000001000000000000002011363b65ff7c738d83af6e5d344c6566f286bd01b544c629adb93175b4f064970000000000000001000000000000000100000000000000200282245398e29bbcb055f5c06e1dfdc51199ecde0d784c712f1ef52fd142fe7a00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000005400000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d400000000000000070000000000000001000000000000000100000000000000204594703f96b398a1e5420a5e6744c31c6d5e9e58baa8f79a68bcc94efcc4f5d2000000000000000100000000000000010000000000000020ac5150f2fe6faa4efa45f86b421ca665a1df43e5401494ec5f930550a1a2a5810000000000000001000000000000000000000000000000206ef35ad2bfce21fa1fd52a8bfe39eeb4ffcf890cf82e5aef1a76bf73dc94d564000000000000000100000000000000010000000000000020d864edee9f548a784b6ffb182f4ae45cdd6077a8c8403b12657510c68899e168000000000000000100000000000000000000000000000020e7f239c394c0b7498d56f58ef3d17be39cf67a3054e7f253a475e15c2a75b9ea0000000000000001000000000000000100000000000000204ca795af155a2c7afd3b9e7575a9709140809b5e2fd6a6996408d80f7cbb64c00000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad0000000000000014000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000006000000000000000100000000000000010000000000000020bd4e24e9383b4055d2f8adb1e0751f627c2faf49f809f1fced720e7acf7baeb9000000000000000100000000000000010000000000000020914634830ae59285928a28ae488e0e5273ebca53a320cea935202d06bd214c3a0000000000000001000000000000000000000000000000206658666c770331d0d45cb0f2b186115067839a2118ceaac27d23a4fa44ceb70700000000000000010000000000000001000000000000002010d98525b43a4e9c9e72f1fff87bfb2fc5dc34645d0cb12c9f9387c082d0fd34000000000000000100000000000000000000000000000020fbb52e94d0613a9653eab6b27f7ddc0142800af7303d0d579d7c32d539f4933900000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd600000000000000140000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb71600000000000000050000000000000001000000000000000100000000000000200c8af5fa5b0c10ef4ce058a00cd51885c717afde2f84bfe8f0eee280178c04bf000000000000000100000000000000010000000000000020586402f83101f3110ed73a69a92f752cafb87fdddd975fd4eb6df6719daa9d3f000000000000000100000000000000000000000000000020b84c7066ba730edc7e3f02ed64bcef5daa7a4af947ae50e5a733ce7c1eb4bbd500000000000000010000000000000001000000000000002086b66390884356d6e0ba36d0a9c244fe6b858c6ee4773fc74d24113eaa363d050000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000006100000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d4000000000000000700000000000000010000000000000000000000000000002043f116be981d96b5372eae77b221bba97124fe92cd5dbbeced88caf1fc840bee00000000000000010000000000000001000000000000002085b5219175d50ec6025287cb82d92f83f72601128eed10445b1a77020e560c6f00000000000000010000000000000001000000000000002021afe788ac31af4b11ef7f394e29ccceb8bb1151616522217b7258d27256685700000000000000010000000000000001000000000000002073a94e58c99ebe0edf773de28ec1717ed4b07539ca622abdac5d76d76b6a496f0000000000000001000000000000000100000000000000204e50d1a6000824f5cb7d9eb885680a1671d88dafc78a454b198d6c47b16595c9000000000000000100000000000000000000000000000020ea1d0f8669b9afe823f0be1e90c0d5799ac3fd8c4366cd231da9ab3e040ba5fd0000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad0000000000000021000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d000000000000000600000000000000010000000000000000000000000000002074c07a34cc99f2504283d2471aa98e70c3dd4e2ee2abf9bfbe865b3603fd821800000000000000010000000000000001000000000000002003274a3b9d01c581a89369fa5e9a3b08a4b3009b4a88784562b4eba960f4e57200000000000000010000000000000001000000000000002005959e9f458eb006e8dbc5a56687404d64b67c89677890e636112defb543d223000000000000000100000000000000010000000000000020e4f3c608663a27ed9a046dd2ea6cfa6c72508fff2ae84cebae55ed9eba51e2ca000000000000000100000000000000010000000000000020d38ca383fe0726dc7c544c95a4ff50a46052b0e4bd3942c8249176238407541c000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f600000000000000010000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb716000000000000000500000000000000010000000000000000000000000000002092dc190aff1a5be9574e9362cc2c9939434f80288b8e1856412364fcd6a63187000000000000000100000000000000010000000000000020858945fcd02dafce48e632e41f9689536b4e66548e2f14c916c83c66a6d06e7700000000000000010000000000000001000000000000002011363b65ff7c738d83af6e5d344c6566f286bd01b544c629adb93175b4f064970000000000000001000000000000000100000000000000200282245398e29bbcb055f5c06e1dfdc51199ecde0d784c712f1ef52fd142fe7a00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000005800000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d40000000000000007000000000000000100000000000000010000000000000020a6305bbbf3fbdf087a8ad244fc3312084d23d5fdd8331ce9233854f5133748cf000000000000000100000000000000010000000000000020a42e0416499c49bbf5478db441836c74f14e9676ccb1c6351b28e54da78c7525000000000000000100000000000000010000000000000020aa1615393cc94724f215604cc33fdd9436c575898d32736804b739ab65adbb270000000000000001000000000000000000000000000000202a846bbbbaf1e053b06a0bb8f3041ec8660d6fd40bbb7473d2b1e91fe008ee54000000000000000100000000000000000000000000000020e7f239c394c0b7498d56f58ef3d17be39cf67a3054e7f253a475e15c2a75b9ea0000000000000001000000000000000100000000000000204ca795af155a2c7afd3b9e7575a9709140809b5e2fd6a6996408d80f7cbb64c00000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad0000000000000018000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d000000000000000600000000000000010000000000000001000000000000002099949634d53ad214664f3d4468da0eb4ab5c52250269882ea8855e092a7cd497000000000000000100000000000000010000000000000020c2570e6437fd220fb7851947bca18c0f6bbc870ec3bf1375d5af3d711397aca30000000000000001000000000000000100000000000000202a45cda084f06b0726a17071823c8af99d096f8609e863cef3bbabd644d7ad7d00000000000000010000000000000000000000000000002057e4becd876b2e534f7f94cc742d05ce83b1fa998b6412364fd2d5369abd4511000000000000000100000000000000000000000000000020fbb52e94d0613a9653eab6b27f7ddc0142800af7303d0d579d7c32d539f4933900000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd600000000000000180000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb71600000000000000050000000000000001000000000000000100000000000000207efd8d1b861935e3f47d68976e1ee096db8665ff071dae91e42d92498d013b86000000000000000100000000000000010000000000000020e817308183c115f1fc1eac677eba677b7d8950f498a27f9e2272521727285f7d00000000000000010000000000000001000000000000002030531fd9431cd47ac82637bc43085ddde3a63de8868db6c93d1c7459f9137cd300000000000000010000000000000000000000000000002028bf280a9b60983357317cbee8d19467a1cf8ec7148c53d7bada7cd92ef19ad00000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000005500000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d4000000000000000700000000000000010000000000000000000000000000002022b64fac42b8e58e0c6ddc0aa9298f2b0de8ca3938b3a4d18fa84f734a598382000000000000000100000000000000010000000000000020ac5150f2fe6faa4efa45f86b421ca665a1df43e5401494ec5f930550a1a2a5810000000000000001000000000000000000000000000000206ef35ad2bfce21fa1fd52a8bfe39eeb4ffcf890cf82e5aef1a76bf73dc94d564000000000000000100000000000000010000000000000020d864edee9f548a784b6ffb182f4ae45cdd6077a8c8403b12657510c68899e168000000000000000100000000000000000000000000000020e7f239c394c0b7498d56f58ef3d17be39cf67a3054e7f253a475e15c2a75b9ea0000000000000001000000000000000100000000000000204ca795af155a2c7afd3b9e7575a9709140809b5e2fd6a6996408d80f7cbb64c00000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad0000000000000015000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000006000000000000000100000000000000000000000000000020673a09eccc910df37039193afb1f7b15d99b018e5c39da2a350d2ace7fe0e011000000000000000100000000000000010000000000000020914634830ae59285928a28ae488e0e5273ebca53a320cea935202d06bd214c3a0000000000000001000000000000000000000000000000206658666c770331d0d45cb0f2b186115067839a2118ceaac27d23a4fa44ceb70700000000000000010000000000000001000000000000002010d98525b43a4e9c9e72f1fff87bfb2fc5dc34645d0cb12c9f9387c082d0fd34000000000000000100000000000000000000000000000020fbb52e94d0613a9653eab6b27f7ddc0142800af7303d0d579d7c32d539f4933900000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd600000000000000150000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb716000000000000000500000000000000010000000000000000000000000000002068cbd7afc673baee476e7ab78dcd487b5f55adde4ec1111d1743ba61cb15a507000000000000000100000000000000010000000000000020586402f83101f3110ed73a69a92f752cafb87fdddd975fd4eb6df6719daa9d3f000000000000000100000000000000000000000000000020b84c7066ba730edc7e3f02ed64bcef5daa7a4af947ae50e5a733ce7c1eb4bbd500000000000000010000000000000001000000000000002086b66390884356d6e0ba36d0a9c244fe6b858c6ee4773fc74d24113eaa363d050000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000006900000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d4000000000000000700000000000000010000000000000000000000000000002043609cd6c56575e638e4556f3542711b3deda4667de73987824d5b00563087f100000000000000010000000000000001000000000000002080887f2e3189e45edcd0e775fa7fbf880a92630216c929ed7134f08e9ef2cf1e00000000000000010000000000000001000000000000002043932f3e384fbddfe1bd37deb7c0cab286f92cec12bfb0550d0b912548777824000000000000000100000000000000000000000000000020f85733e031fa6d105167a08b1c0c4aa7adf12f0649d84c9ccbd5093cfae1b9810000000000000001000000000000000100000000000000204e50d1a6000824f5cb7d9eb885680a1671d88dafc78a454b198d6c47b16595c9000000000000000100000000000000000000000000000020ea1d0f8669b9afe823f0be1e90c0d5799ac3fd8c4366cd231da9ab3e040ba5fd0000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad0000000000000029000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d00000000000000060000000000000001000000000000000000000000000000204cbc345704ec816cde6ce64bd82eacbf6f60c5d3c967cf3dd0797acd5855cc79000000000000000100000000000000010000000000000020dda727ff5aceb31fcd279f1f76b22ad6ff9fcb430cf35d04f3a27e4c9adbe598000000000000000100000000000000010000000000000020c785a107ccd44a8109eef6c62a2f7d66cf98c3c8c1e5f114493e8adc02afc02f000000000000000100000000000000000000000000000020d0212e386a105cf30b473e6cf1bedb9fdccedf2971be1402d648e94463b516b1000000000000000100000000000000010000000000000020d38ca383fe0726dc7c544c95a4ff50a46052b0e4bd3942c8249176238407541c000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f600000000000000090000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb7160000000000000005000000000000000100000000000000000000000000000020688ab9061b0d0dd9741c2805dd3de9ddacb65bbe8bb00727bbd85ddbd0d20a3c0000000000000001000000000000000100000000000000202dff2e1df9d9260694d6943eeed7ed299be05f30469e7d9962cf0b4350179ed100000000000000010000000000000001000000000000002071439899e46f8347a807ce2ad5a7677ad60be0abf0200bed21bfa750e2803fd900000000000000010000000000000000000000000000002053079eb9f250dc3c24e130d3cfe6b33850d7952eaf3358caa62c406b9951f6fb00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000001800000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d4000000000000000700000000000000010000000000000001000000000000002071e583cfd2b577cf57848ea394d68013e5fb81ee309d1a7c6d18bae44189ec0f0000000000000001000000000000000100000000000000207cc502b0e3a116095e43396d94a9fd07480f6fda23772581d07f3efa671322d50000000000000001000000000000000100000000000000200e0c68735daef847a6775b4aba1cf63f6ca726b1e1e43561b4e4f4c3f3f90a9f000000000000000100000000000000000000000000000020553e242e957da0e4a74c97fa591461e21736d84be341f9093b3adf69633165440000000000000001000000000000000000000000000000204b193d9a2fb3439a6ec753384b5fdac5bf47e4638ac4d5ec34f71860616f7d26000000000000000100000000000000010000000000000020113e27b5901897167a0448d1dbb7d377e86eb7437aa10f6d9c449e12d269af880000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab1150000000000000018000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d000000000000000600000000000000010000000000000001000000000000002099949634d53ad214664f3d4468da0eb4ab5c52250269882ea8855e092a7cd497000000000000000100000000000000010000000000000020c2570e6437fd220fb7851947bca18c0f6bbc870ec3bf1375d5af3d711397aca30000000000000001000000000000000100000000000000202a45cda084f06b0726a17071823c8af99d096f8609e863cef3bbabd644d7ad7d00000000000000010000000000000000000000000000002057e4becd876b2e534f7f94cc742d05ce83b1fa998b6412364fd2d5369abd4511000000000000000100000000000000000000000000000020fbb52e94d0613a9653eab6b27f7ddc0142800af7303d0d579d7c32d539f4933900000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd600000000000000180000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb71600000000000000050000000000000001000000000000000100000000000000207efd8d1b861935e3f47d68976e1ee096db8665ff071dae91e42d92498d013b86000000000000000100000000000000010000000000000020e817308183c115f1fc1eac677eba677b7d8950f498a27f9e2272521727285f7d00000000000000010000000000000001000000000000002030531fd9431cd47ac82637bc43085ddde3a63de8868db6c93d1c7459f9137cd300000000000000010000000000000000000000000000002028bf280a9b60983357317cbee8d19467a1cf8ec7148c53d7bada7cd92ef19ad00000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000007d00000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d40000000000000007000000000000000100000000000000000000000000000020c91c101b34f43248694b12726c590695c91278b35c2fb1e2230c0d3384ec10410000000000000001000000000000000100000000000000207bcea6b848bb93875b38f8cf49a8ea6918c9f3ea4996a0454042fe7aaa5a30a7000000000000000100000000000000000000000000000020bae9f68f6fa109668710d52e314c81a0736447ae63f82f8d30e2cf8b0fed55b800000000000000010000000000000000000000000000002095360d8b7bb69cdb3a0f776e371368dd76f29edb7f025682bf58ad24f7112bfd00000000000000010000000000000000000000000000002020e7a6a3a271902f8201f64eed3af53047f6ccca55a2d2233d2f9e66edb2130e000000000000000100000000000000000000000000000020ea1d0f8669b9afe823f0be1e90c0d5799ac3fd8c4366cd231da9ab3e040ba5fd0000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad000000000000003d000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d000000000000000600000000000000010000000000000000000000000000002056de1fc6a2e22fa973a322beb6e6b250d968dc16431907dd8b87e6a7b3af598a000000000000000100000000000000010000000000000020c086053a3fd36eaf468d8e401388df994a2352b10be4e75992535fcc77b92ce60000000000000001000000000000000000000000000000208a9e287433581f6b9d56498db08e05d56d0bbf4e52cf85ccd0177e2a51392f3c000000000000000100000000000000000000000000000020109e4b15f3ee6308ead76f6ca587b7fcbef4e619101397ce8cc2504c9c5aadf7000000000000000100000000000000000000000000000020ca730090e7756d1979c0efd26d1191147ba040a03bf2f73f6ef36813aa05d3fc000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f6000000000000001d0000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb71600000000000000050000000000000001000000000000000000000000000000200353d17934a09dce7bd1f40bf32774a4d1907e0e4a8a15800745653b226d58f70000000000000001000000000000000100000000000000208b3a86f131b9f3304c2a51ee420963bab9ab32369059c732ebf11fa824008fe7000000000000000100000000000000000000000000000020755753761e27de0c2ba56fb717cf6d81433daee5e14d738fd8b29367fa62ef5000000000000000010000000000000000000000000000002028bf280a9b60983357317cbee8d19467a1cf8ec7148c53d7bada7cd92ef19ad00000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000007e00000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d4000000000000000700000000000000010000000000000001000000000000002041233446caa022f95fe30530b317cf57b40e6b643c679c55ee162914e34ef0fb0000000000000001000000000000000000000000000000204630c8c8b3b53bd385552c07c903645c442f2d3bedc5695fd2a43eaa3eef067e000000000000000100000000000000000000000000000020bae9f68f6fa109668710d52e314c81a0736447ae63f82f8d30e2cf8b0fed55b800000000000000010000000000000000000000000000002095360d8b7bb69cdb3a0f776e371368dd76f29edb7f025682bf58ad24f7112bfd00000000000000010000000000000000000000000000002020e7a6a3a271902f8201f64eed3af53047f6ccca55a2d2233d2f9e66edb2130e000000000000000100000000000000000000000000000020ea1d0f8669b9afe823f0be1e90c0d5799ac3fd8c4366cd231da9ab3e040ba5fd0000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad000000000000003e000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d000000000000000600000000000000010000000000000001000000000000002068b29aa5c876d0cbf04ff9edcb5f3567367b4f4efba6d9d9a88e3af16d4416e9000000000000000100000000000000000000000000000020fea42220c9a462ce04763aba737be4a82950f5bc884cc901aedb2134b5c0e0e20000000000000001000000000000000000000000000000208a9e287433581f6b9d56498db08e05d56d0bbf4e52cf85ccd0177e2a51392f3c000000000000000100000000000000000000000000000020109e4b15f3ee6308ead76f6ca587b7fcbef4e619101397ce8cc2504c9c5aadf7000000000000000100000000000000000000000000000020ca730090e7756d1979c0efd26d1191147ba040a03bf2f73f6ef36813aa05d3fc000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f6000000000000001e0000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb71600000000000000050000000000000001000000000000000100000000000000206fd88d6627cb51ce2b00b7a20c466e1d613a9f113e2a00cba576cadc4752e66b000000000000000100000000000000000000000000000020d7720b4b58150868a3443741546e82ad658ad115ed35b2c2042060056627332a000000000000000100000000000000000000000000000020755753761e27de0c2ba56fb717cf6d81433daee5e14d738fd8b29367fa62ef5000000000000000010000000000000000000000000000002028bf280a9b60983357317cbee8d19467a1cf8ec7148c53d7bada7cd92ef19ad00000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000006700000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d4000000000000000700000000000000010000000000000000000000000000002068908036de11d25719ec7852f1e02626c53919bdcf6cd7f10107931ef9c27e4b0000000000000001000000000000000000000000000000204d1c1ef4d73a72a94048179dc7eb8b82cd777b1eabd86974ebf82dacada5939b000000000000000100000000000000000000000000000020920740eda570b4cc94435cc89276376320a42137773fe2b87f83af5b4c5bea0700000000000000010000000000000001000000000000002073a94e58c99ebe0edf773de28ec1717ed4b07539ca622abdac5d76d76b6a496f0000000000000001000000000000000100000000000000204e50d1a6000824f5cb7d9eb885680a1671d88dafc78a454b198d6c47b16595c9000000000000000100000000000000000000000000000020ea1d0f8669b9afe823f0be1e90c0d5799ac3fd8c4366cd231da9ab3e040ba5fd0000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad0000000000000027000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d00000000000000060000000000000001000000000000000000000000000000203764a15e802e9637f8544fba71a1f58b8a51039e87e27a1459e83ac519c6b5e200000000000000010000000000000000000000000000002042e68eb633e765ee232e66a3e4e69eca22ebb686780c812bf659dba54113932e000000000000000100000000000000000000000000000020f9b9892cc7818c8cc380abe58b4bea668e06ab779ecf71d9d7b88995304a9957000000000000000100000000000000010000000000000020e4f3c608663a27ed9a046dd2ea6cfa6c72508fff2ae84cebae55ed9eba51e2ca000000000000000100000000000000010000000000000020d38ca383fe0726dc7c544c95a4ff50a46052b0e4bd3942c8249176238407541c000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f600000000000000070000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb716000000000000000500000000000000010000000000000000000000000000002055d3824b9ec387124fe3755b224ec5f2f34c5d57ea8428b620b7673efe030587000000000000000100000000000000000000000000000020486e1bb072c641d035cbfd2b3e22f37a6ada1e3b06f2e3c6a21f71fc5a207aac0000000000000001000000000000000000000000000000206ad302f7496266239fd115a1b579a74dce557fa3e13c7170f4a261192829d6d70000000000000001000000000000000100000000000000200282245398e29bbcb055f5c06e1dfdc51199ecde0d784c712f1ef52fd142fe7a00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000001d00000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d40000000000000007000000000000000100000000000000000000000000000020237be40d921c2ea71c7c7138ff57d2bbc24cbcde99db53b02d1dd36d9f656787000000000000000100000000000000010000000000000020f47bef3499826abfe28e3f9ca75aa5e209e9dec924a9a42c946b6f16130f4c380000000000000001000000000000000000000000000000208bf0eed998e140fa07a34d13571e1c4194e8bd1bb6a416f2990f08911685c67a000000000000000100000000000000000000000000000020553e242e957da0e4a74c97fa591461e21736d84be341f9093b3adf69633165440000000000000001000000000000000000000000000000204b193d9a2fb3439a6ec753384b5fdac5bf47e4638ac4d5ec34f71860616f7d26000000000000000100000000000000010000000000000020113e27b5901897167a0448d1dbb7d377e86eb7437aa10f6d9c449e12d269af880000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab115000000000000001d000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000006000000000000000100000000000000000000000000000020a935caaf6412cdd425edcc3d6ce8f78f7193d0c19c36a6cc30c5787b7321ad48000000000000000100000000000000010000000000000020512e6b249e11ae303f24ccbf698d9af299ae55d4213429b7feafcedb8cf7dc74000000000000000100000000000000000000000000000020c3bb5f76e7bd5b66a7de5885d519979f4431077b88c76ca730c0c015236bb24700000000000000010000000000000000000000000000002057e4becd876b2e534f7f94cc742d05ce83b1fa998b6412364fd2d5369abd4511000000000000000100000000000000000000000000000020fbb52e94d0613a9653eab6b27f7ddc0142800af7303d0d579d7c32d539f4933900000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd6000000000000001d0000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb71600000000000000050000000000000001000000000000000000000000000000200353d17934a09dce7bd1f40bf32774a4d1907e0e4a8a15800745653b226d58f70000000000000001000000000000000100000000000000208b3a86f131b9f3304c2a51ee420963bab9ab32369059c732ebf11fa824008fe7000000000000000100000000000000000000000000000020755753761e27de0c2ba56fb717cf6d81433daee5e14d738fd8b29367fa62ef5000000000000000010000000000000000000000000000002028bf280a9b60983357317cbee8d19467a1cf8ec7148c53d7bada7cd92ef19ad00000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000001a00000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d40000000000000007000000000000000100000000000000010000000000000020c8ed62f6caf595a26433dead2edcdb9761f615e805adc4a9d24943cad002a518000000000000000100000000000000000000000000000020bf05d0ae3371c2cd4e4d9f232f9bee48dc36fbe93f316a56913d7c9ebd6fe5f20000000000000001000000000000000100000000000000200e0c68735daef847a6775b4aba1cf63f6ca726b1e1e43561b4e4f4c3f3f90a9f000000000000000100000000000000000000000000000020553e242e957da0e4a74c97fa591461e21736d84be341f9093b3adf69633165440000000000000001000000000000000000000000000000204b193d9a2fb3439a6ec753384b5fdac5bf47e4638ac4d5ec34f71860616f7d26000000000000000100000000000000010000000000000020113e27b5901897167a0448d1dbb7d377e86eb7437aa10f6d9c449e12d269af880000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab115000000000000001a000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000006000000000000000100000000000000010000000000000020cde1c3729390f1e3faba915c70efcde74ea9f16b5928dfe4fb0bd0487a85e03b0000000000000001000000000000000000000000000000200df6984d8703d88b79cf6016acf80b510626ee2b8500263c7e22889a627d90520000000000000001000000000000000100000000000000202a45cda084f06b0726a17071823c8af99d096f8609e863cef3bbabd644d7ad7d00000000000000010000000000000000000000000000002057e4becd876b2e534f7f94cc742d05ce83b1fa998b6412364fd2d5369abd4511000000000000000100000000000000000000000000000020fbb52e94d0613a9653eab6b27f7ddc0142800af7303d0d579d7c32d539f4933900000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd6000000000000001a0000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb7160000000000000005000000000000000100000000000000010000000000000020bb556492ab19bfa4df20a3ed632d49e41f0d18bb22dcd31587b92e817bbdec28000000000000000100000000000000000000000000000020abf902de98892e518448bab47ffa4fe2f615aadafb7e871dc4243a4700e4896900000000000000010000000000000001000000000000002030531fd9431cd47ac82637bc43085ddde3a63de8868db6c93d1c7459f9137cd300000000000000010000000000000000000000000000002028bf280a9b60983357317cbee8d19467a1cf8ec7148c53d7bada7cd92ef19ad00000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000006100000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d4000000000000000700000000000000010000000000000000000000000000002043f116be981d96b5372eae77b221bba97124fe92cd5dbbeced88caf1fc840bee00000000000000010000000000000001000000000000002085b5219175d50ec6025287cb82d92f83f72601128eed10445b1a77020e560c6f00000000000000010000000000000001000000000000002021afe788ac31af4b11ef7f394e29ccceb8bb1151616522217b7258d27256685700000000000000010000000000000001000000000000002073a94e58c99ebe0edf773de28ec1717ed4b07539ca622abdac5d76d76b6a496f0000000000000001000000000000000100000000000000204e50d1a6000824f5cb7d9eb885680a1671d88dafc78a454b198d6c47b16595c9000000000000000100000000000000000000000000000020ea1d0f8669b9afe823f0be1e90c0d5799ac3fd8c4366cd231da9ab3e040ba5fd0000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad0000000000000021000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d000000000000000600000000000000010000000000000000000000000000002074c07a34cc99f2504283d2471aa98e70c3dd4e2ee2abf9bfbe865b3603fd821800000000000000010000000000000001000000000000002003274a3b9d01c581a89369fa5e9a3b08a4b3009b4a88784562b4eba960f4e57200000000000000010000000000000001000000000000002005959e9f458eb006e8dbc5a56687404d64b67c89677890e636112defb543d223000000000000000100000000000000010000000000000020e4f3c608663a27ed9a046dd2ea6cfa6c72508fff2ae84cebae55ed9eba51e2ca000000000000000100000000000000010000000000000020d38ca383fe0726dc7c544c95a4ff50a46052b0e4bd3942c8249176238407541c000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f600000000000000010000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb716000000000000000500000000000000010000000000000000000000000000002092dc190aff1a5be9574e9362cc2c9939434f80288b8e1856412364fcd6a63187000000000000000100000000000000010000000000000020858945fcd02dafce48e632e41f9689536b4e66548e2f14c916c83c66a6d06e7700000000000000010000000000000001000000000000002011363b65ff7c738d83af6e5d344c6566f286bd01b544c629adb93175b4f064970000000000000001000000000000000100000000000000200282245398e29bbcb055f5c06e1dfdc51199ecde0d784c712f1ef52fd142fe7a00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000005000000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d4000000000000000700000000000000010000000000000001000000000000002008c155832d9d0ae510ebd92ef5dd08ed74726a66a799a66934ce165e63d9c3cb000000000000000100000000000000010000000000000020838fbf34ffc0b73c75af3f13704015c0e534e9efd82fa67bf1a6eb1f3525c7fe000000000000000100000000000000010000000000000020fed08d8f1e1ca3b4696fb2617fcec1831ff7782aac983c64b03ee1ded3061431000000000000000100000000000000010000000000000020d864edee9f548a784b6ffb182f4ae45cdd6077a8c8403b12657510c68899e168000000000000000100000000000000000000000000000020e7f239c394c0b7498d56f58ef3d17be39cf67a3054e7f253a475e15c2a75b9ea0000000000000001000000000000000100000000000000204ca795af155a2c7afd3b9e7575a9709140809b5e2fd6a6996408d80f7cbb64c00000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad0000000000000010000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d000000000000000600000000000000010000000000000001000000000000002075a6b53a1b5fd7044a8cf813693213ff0d58193bfdc0bc418b04adf2d526b562000000000000000100000000000000010000000000000020fe8ff67cae48a8825f0d7632e34ec0771065c7079994c81177447736ba2a0a73000000000000000100000000000000010000000000000020eca1f5cae72294c9e87bfbeaaef6e10a6d1690bc010fbf41f865a7027f599ea100000000000000010000000000000001000000000000002010d98525b43a4e9c9e72f1fff87bfb2fc5dc34645d0cb12c9f9387c082d0fd34000000000000000100000000000000000000000000000020fbb52e94d0613a9653eab6b27f7ddc0142800af7303d0d579d7c32d539f4933900000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd600000000000000100000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb7160000000000000005000000000000000100000000000000010000000000000020e8693cdb67d089fa6387e681eda2f9bde47bbcd38424b21b159dfd5ae9f01886000000000000000100000000000000010000000000000020535a39e609e7abe7c56e456d3d8d5c2ea750717e9f74c38bfabf529e3f333ee400000000000000010000000000000001000000000000002048f2a4d54acd77830ac8e25c135d3199bdcde7a3a69ecfbcf0c2f866d4cfb8e700000000000000010000000000000001000000000000002086b66390884356d6e0ba36d0a9c244fe6b858c6ee4773fc74d24113eaa363d050000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000003e00000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d40000000000000007000000000000000100000000000000010000000000000020557f0f2e216315d6d15598f2623fa689112e56fc039bb1a2f7877e80fd5c0940000000000000000100000000000000000000000000000020604357c2a77ed306e4c5035671d279dc661ec91a97602346a847e9a58d7a921a000000000000000100000000000000000000000000000020d3de34eea5942b5c4f9b033c1f54592182f4bbc01f6ff263b0374f38bc5ccd2b0000000000000001000000000000000000000000000000209290771463853e16cc59740707ee1bbb664631bc8c1b58a7932ae346e0c16c4e000000000000000100000000000000000000000000000020deeb55e97dc611a451ec661f0f6a548de23e4909b63a2565b895ba61e8d002ef000000000000000100000000000000000000000000000020fbb638c189c1da035d1f63ff29391d2920eb4bd9b760bd5b5f84dbcaea676d040000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab115000000000000003e000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d000000000000000600000000000000010000000000000001000000000000002068b29aa5c876d0cbf04ff9edcb5f3567367b4f4efba6d9d9a88e3af16d4416e9000000000000000100000000000000000000000000000020fea42220c9a462ce04763aba737be4a82950f5bc884cc901aedb2134b5c0e0e20000000000000001000000000000000000000000000000208a9e287433581f6b9d56498db08e05d56d0bbf4e52cf85ccd0177e2a51392f3c000000000000000100000000000000000000000000000020109e4b15f3ee6308ead76f6ca587b7fcbef4e619101397ce8cc2504c9c5aadf7000000000000000100000000000000000000000000000020ca730090e7756d1979c0efd26d1191147ba040a03bf2f73f6ef36813aa05d3fc000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f6000000000000001e0000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb71600000000000000050000000000000001000000000000000100000000000000206fd88d6627cb51ce2b00b7a20c466e1d613a9f113e2a00cba576cadc4752e66b000000000000000100000000000000000000000000000020d7720b4b58150868a3443741546e82ad658ad115ed35b2c2042060056627332a000000000000000100000000000000000000000000000020755753761e27de0c2ba56fb717cf6d81433daee5e14d738fd8b29367fa62ef5000000000000000010000000000000000000000000000002028bf280a9b60983357317cbee8d19467a1cf8ec7148c53d7bada7cd92ef19ad00000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000002b00000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d400000000000000070000000000000001000000000000000000000000000000201912bd30c2470a623c95b05ee8615dd8cd4d9d0a339e9f880b132c6268c453570000000000000001000000000000000000000000000000206bd813d61df47c4e823729ba6e41c8440932c41f3677f1b0052d144f17dc995f0000000000000001000000000000000100000000000000209e3acb9980f427a82e1ccc30bba3e5a136b605caa6e35a3a0dfb997ba349d7d40000000000000001000000000000000000000000000000204a8afcd5d27aa5bce45e8341a73aa2b9b2d46542f4bc92afca68d25b8b68db1c00000000000000010000000000000001000000000000002046741959925884c1313b2341b9cef208234481e221f61a5dd7b22b5631e24c98000000000000000100000000000000000000000000000020fbb638c189c1da035d1f63ff29391d2920eb4bd9b760bd5b5f84dbcaea676d040000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab115000000000000002b000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d000000000000000600000000000000010000000000000000000000000000002014fe920e7937ffc1669207cc97352bf38b8f96589a1d7d4a1ffc4d3454a75810000000000000000100000000000000000000000000000020164199ac661f0643ed3e40bc489a7c86c793617e24edb0e5a4f126e29888564c000000000000000100000000000000010000000000000020c785a107ccd44a8109eef6c62a2f7d66cf98c3c8c1e5f114493e8adc02afc02f000000000000000100000000000000000000000000000020d0212e386a105cf30b473e6cf1bedb9fdccedf2971be1402d648e94463b516b1000000000000000100000000000000010000000000000020d38ca383fe0726dc7c544c95a4ff50a46052b0e4bd3942c8249176238407541c000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f6000000000000000b0000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb7160000000000000005000000000000000100000000000000000000000000000020d8074cdbfd47cad225b98c305d9239af6369cd9c63165982fb1d937609c62938000000000000000100000000000000000000000000000020c57eed22efa0ad64274179e1a683226dbe2088f942f0f1e942d5591106342bb800000000000000010000000000000001000000000000002071439899e46f8347a807ce2ad5a7677ad60be0abf0200bed21bfa750e2803fd900000000000000010000000000000000000000000000002053079eb9f250dc3c24e130d3cfe6b33850d7952eaf3358caa62c406b9951f6fb00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000003600000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d400000000000000070000000000000001000000000000000100000000000000209281920b2953ccee51ea4ef85fa3fe231324385767b2ca0b71dc8d0932f2bf260000000000000001000000000000000000000000000000200e88360e0cd1e6e3fcd67c0a52fe947a8a86fd807173756d92e5ee0d29f8741600000000000000010000000000000000000000000000002099fbc47996161087965455500fa05500d46a6e0f6b21d75da0a510c55b08f51c000000000000000100000000000000010000000000000020d5b6f7ce4a4d55e6675c2e4660520d7bd4e7170362fd74ac95c6d297e57ac7ff000000000000000100000000000000000000000000000020deeb55e97dc611a451ec661f0f6a548de23e4909b63a2565b895ba61e8d002ef000000000000000100000000000000000000000000000020fbb638c189c1da035d1f63ff29391d2920eb4bd9b760bd5b5f84dbcaea676d040000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab1150000000000000036000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000006000000000000000100000000000000010000000000000020c7877ea2c601aa459e664e9b88abcb0b9627736063741d8f4eb2c67ba19f2cc30000000000000001000000000000000000000000000000205fb0e035a4876035abe3ba6363779f81f3b2e7a9d12521781f2c0fe1a72c0f5f000000000000000100000000000000000000000000000020affae4e619a5bee70f93443900691c5a533d089383865745ac62e9a4ac53b5a30000000000000001000000000000000100000000000000203126dc3efb4b611460c8ce1ea3d0731c71d5281f6f45dd81ac6202b342e89e03000000000000000100000000000000000000000000000020ca730090e7756d1979c0efd26d1191147ba040a03bf2f73f6ef36813aa05d3fc000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f600000000000000160000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb7160000000000000005000000000000000100000000000000010000000000000020144917d8079a0c92e17244b547dcda84bb3cc4297dfc56d111c62128cea7c911000000000000000100000000000000000000000000000020b0b841b018ed213697a4fa4a33c5cdda5c3c9f2897676b9083aa03098e4a01c4000000000000000100000000000000000000000000000020b84c7066ba730edc7e3f02ed64bcef5daa7a4af947ae50e5a733ce7c1eb4bbd500000000000000010000000000000001000000000000002086b66390884356d6e0ba36d0a9c244fe6b858c6ee4773fc74d24113eaa363d050000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000001400000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d400000000000000070000000000000001000000000000000100000000000000205439afb76147a6d8efb32152228e91947fe62cef059239d192e23d39dafd1d0c00000000000000010000000000000001000000000000002018d69319b51f12d06b1ead89f628aff24b302c31420f949d125d421b830a2128000000000000000100000000000000000000000000000020df5728fc05b9844724bd985e3740cbed2bc0b28650c2c51be917166870591f11000000000000000100000000000000010000000000000020dd00a360925bbb51181546498bc8dc9523d3fbddbceff6ebc20e3f0ba9bf167c0000000000000001000000000000000000000000000000204b193d9a2fb3439a6ec753384b5fdac5bf47e4638ac4d5ec34f71860616f7d26000000000000000100000000000000010000000000000020113e27b5901897167a0448d1dbb7d377e86eb7437aa10f6d9c449e12d269af880000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab1150000000000000014000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000006000000000000000100000000000000010000000000000020bd4e24e9383b4055d2f8adb1e0751f627c2faf49f809f1fced720e7acf7baeb9000000000000000100000000000000010000000000000020914634830ae59285928a28ae488e0e5273ebca53a320cea935202d06bd214c3a0000000000000001000000000000000000000000000000206658666c770331d0d45cb0f2b186115067839a2118ceaac27d23a4fa44ceb70700000000000000010000000000000001000000000000002010d98525b43a4e9c9e72f1fff87bfb2fc5dc34645d0cb12c9f9387c082d0fd34000000000000000100000000000000000000000000000020fbb52e94d0613a9653eab6b27f7ddc0142800af7303d0d579d7c32d539f4933900000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd600000000000000140000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb71600000000000000050000000000000001000000000000000100000000000000200c8af5fa5b0c10ef4ce058a00cd51885c717afde2f84bfe8f0eee280178c04bf000000000000000100000000000000010000000000000020586402f83101f3110ed73a69a92f752cafb87fdddd975fd4eb6df6719daa9d3f000000000000000100000000000000000000000000000020b84c7066ba730edc7e3f02ed64bcef5daa7a4af947ae50e5a733ce7c1eb4bbd500000000000000010000000000000001000000000000002086b66390884356d6e0ba36d0a9c244fe6b858c6ee4773fc74d24113eaa363d050000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000005100000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d400000000000000070000000000000001000000000000000000000000000000205b85f575f1a5b88e2ed5de6dc266458c280dcb2e5b8d89582ab85c0d2bb4dbd6000000000000000100000000000000010000000000000020838fbf34ffc0b73c75af3f13704015c0e534e9efd82fa67bf1a6eb1f3525c7fe000000000000000100000000000000010000000000000020fed08d8f1e1ca3b4696fb2617fcec1831ff7782aac983c64b03ee1ded3061431000000000000000100000000000000010000000000000020d864edee9f548a784b6ffb182f4ae45cdd6077a8c8403b12657510c68899e168000000000000000100000000000000000000000000000020e7f239c394c0b7498d56f58ef3d17be39cf67a3054e7f253a475e15c2a75b9ea0000000000000001000000000000000100000000000000204ca795af155a2c7afd3b9e7575a9709140809b5e2fd6a6996408d80f7cbb64c00000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad0000000000000011000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d000000000000000600000000000000010000000000000000000000000000002078a342cd4a4b3f77e515f5a885fb7498716a8430adc1898ddf717efa7fb7bd9f000000000000000100000000000000010000000000000020fe8ff67cae48a8825f0d7632e34ec0771065c7079994c81177447736ba2a0a73000000000000000100000000000000010000000000000020eca1f5cae72294c9e87bfbeaaef6e10a6d1690bc010fbf41f865a7027f599ea100000000000000010000000000000001000000000000002010d98525b43a4e9c9e72f1fff87bfb2fc5dc34645d0cb12c9f9387c082d0fd34000000000000000100000000000000000000000000000020fbb52e94d0613a9653eab6b27f7ddc0142800af7303d0d579d7c32d539f4933900000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd600000000000000110000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb716000000000000000500000000000000010000000000000000000000000000002024fe7f3bb26f9e88b669826f7c2d8659be17f27327b3a701785961aea65d92a2000000000000000100000000000000010000000000000020535a39e609e7abe7c56e456d3d8d5c2ea750717e9f74c38bfabf529e3f333ee400000000000000010000000000000001000000000000002048f2a4d54acd77830ac8e25c135d3199bdcde7a3a69ecfbcf0c2f866d4cfb8e700000000000000010000000000000001000000000000002086b66390884356d6e0ba36d0a9c244fe6b858c6ee4773fc74d24113eaa363d050000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000002600000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d40000000000000007000000000000000100000000000000010000000000000020e4f473bcbc8c064f320bfec9cb4730d6772612f8d57fcf39f78af3ef188a635f00000000000000010000000000000000000000000000002070c2862bc771c4f33efa333bb18bd665d52d10ebcb1588f119ef619548c6161a000000000000000100000000000000000000000000000020f38e25a3b1de91984d3f4d9c1f1a11f9c193fa97e250dabb6d534e5a78f66952000000000000000100000000000000010000000000000020197fef0590d7d2b89088f76246e61349a825bd6009b13bb0103a5a5ade2326ce00000000000000010000000000000001000000000000002046741959925884c1313b2341b9cef208234481e221f61a5dd7b22b5631e24c98000000000000000100000000000000000000000000000020fbb638c189c1da035d1f63ff29391d2920eb4bd9b760bd5b5f84dbcaea676d040000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab1150000000000000026000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d000000000000000600000000000000010000000000000001000000000000002080275434c0e643f6bddcf668bb574fd4acc23be9359bab635087104f12e8a3b400000000000000010000000000000000000000000000002042e68eb633e765ee232e66a3e4e69eca22ebb686780c812bf659dba54113932e000000000000000100000000000000000000000000000020f9b9892cc7818c8cc380abe58b4bea668e06ab779ecf71d9d7b88995304a9957000000000000000100000000000000010000000000000020e4f3c608663a27ed9a046dd2ea6cfa6c72508fff2ae84cebae55ed9eba51e2ca000000000000000100000000000000010000000000000020d38ca383fe0726dc7c544c95a4ff50a46052b0e4bd3942c8249176238407541c000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f600000000000000060000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb71600000000000000050000000000000001000000000000000100000000000000201fd4b6134479d7c8e61c73da358a84b53dc760fd31142901d1b4bb0e4590633a000000000000000100000000000000000000000000000020486e1bb072c641d035cbfd2b3e22f37a6ada1e3b06f2e3c6a21f71fc5a207aac0000000000000001000000000000000000000000000000206ad302f7496266239fd115a1b579a74dce557fa3e13c7170f4a261192829d6d70000000000000001000000000000000100000000000000200282245398e29bbcb055f5c06e1dfdc51199ecde0d784c712f1ef52fd142fe7a00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000000100000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d40000000000000007000000000000000100000000000000000000000000000020874b7bd1f3c3a6c84eec62d4ed462b197275c7ddd5e041deeb0f8c06e39c309b000000000000000100000000000000010000000000000020f5de7677a4e8d16707f08600ce53fb02374cf6f0fc8b69e34ef706b05cceab2c000000000000000100000000000000010000000000000020c523b6c0e7e62cc19ae96eae1dc1e5f6ab44bc28ecfe20944e91b73b59a24b2d0000000000000001000000000000000100000000000000209ec7c236e135c223fb251312761f2a9378a9423b3c5897609b9f00184e022be000000000000000010000000000000001000000000000002079c2ed00949e9f96d4f87c754bb9202bf16e0a8e3d3303ce659489a4962f82bf000000000000000100000000000000010000000000000020113e27b5901897167a0448d1dbb7d377e86eb7437aa10f6d9c449e12d269af880000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab1150000000000000001000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000006000000000000000100000000000000000000000000000020c647f305c320ccf2f76bb67093009bb661870562222f2b2157a4c30e7aaa4d69000000000000000100000000000000010000000000000020081a9ad3352b092b4c3da47ea7b948e9f45bfcc08bf63e98b29e6545ff7371960000000000000001000000000000000100000000000000206bb9c9b8ef67f85f465081dfb51336d4177175fb68b6f9080b52413d87698a1c000000000000000100000000000000010000000000000020ab3923d8895efbab25b1d9beeaad8c7acc3da96df78631e18214295fac01c5f2000000000000000100000000000000010000000000000020e9ebb4cf521fd9c5e6f70e93cbb3e25cc601550aa28b21d91e3249db3e747b1700000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd600000000000000010000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb716000000000000000500000000000000010000000000000000000000000000002092dc190aff1a5be9574e9362cc2c9939434f80288b8e1856412364fcd6a63187000000000000000100000000000000010000000000000020858945fcd02dafce48e632e41f9689536b4e66548e2f14c916c83c66a6d06e7700000000000000010000000000000001000000000000002011363b65ff7c738d83af6e5d344c6566f286bd01b544c629adb93175b4f064970000000000000001000000000000000100000000000000200282245398e29bbcb055f5c06e1dfdc51199ecde0d784c712f1ef52fd142fe7a00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000003200000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d4000000000000000700000000000000010000000000000001000000000000002071ce5c1f71b94759be764acdd141b7da6f74d7045bca6553ba7b726d065fd4440000000000000001000000000000000000000000000000205d5dca7fd44aedbbb82071dea2016fd95dc60add5031634cd7a27073cd639e57000000000000000100000000000000010000000000000020b1c67dd550b9dd0ad62422e5ecca7384701a9d42695d4a4cacf84dc34945e7bb000000000000000100000000000000010000000000000020d5b6f7ce4a4d55e6675c2e4660520d7bd4e7170362fd74ac95c6d297e57ac7ff000000000000000100000000000000000000000000000020deeb55e97dc611a451ec661f0f6a548de23e4909b63a2565b895ba61e8d002ef000000000000000100000000000000000000000000000020fbb638c189c1da035d1f63ff29391d2920eb4bd9b760bd5b5f84dbcaea676d040000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab1150000000000000032000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000006000000000000000100000000000000010000000000000020c07820824da97d1cf0309fea3282050e3054ead367f51c38d6b8d4e12450ad770000000000000001000000000000000000000000000000201535d57b3e46f812bb64bc634a85e5ebd9a959134c3a988926ce162661142f22000000000000000100000000000000010000000000000020485662cbb9287e9233dfcc6c9ef74ac5ce65e828036e9720d78c8b33b2b56fab0000000000000001000000000000000100000000000000203126dc3efb4b611460c8ce1ea3d0731c71d5281f6f45dd81ac6202b342e89e03000000000000000100000000000000000000000000000020ca730090e7756d1979c0efd26d1191147ba040a03bf2f73f6ef36813aa05d3fc000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f600000000000000120000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb716000000000000000500000000000000010000000000000001000000000000002046c37e8470fa10db9d1cd82cdcb1f141e9aefc7f8576e0f3aeaccd6869d46e1e0000000000000001000000000000000000000000000000207a51affb17c4f5c12f4fe9a5fd981373edacd16bdb1f8fd1a2125b835612e9d200000000000000010000000000000001000000000000002048f2a4d54acd77830ac8e25c135d3199bdcde7a3a69ecfbcf0c2f866d4cfb8e700000000000000010000000000000001000000000000002086b66390884356d6e0ba36d0a9c244fe6b858c6ee4773fc74d24113eaa363d050000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000000b00000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d40000000000000007000000000000000100000000000000000000000000000020ced954f9035d0fdc60e574bf1a170967ba2dc0948136aa33290699eff87d761e00000000000000010000000000000000000000000000002031091de7b5844f585991351a1c383bd96ea9e22959ed4924716ffbaf604222c2000000000000000100000000000000010000000000000020d7185b6ef7846c634eefb50e4cfb826a08178d910180ad44795bc9e1e407f3bd0000000000000001000000000000000000000000000000202e1c38121e828022c78a35c84ef2b7ec45a335ee84e30559f73108e705e0c5f700000000000000010000000000000001000000000000002079c2ed00949e9f96d4f87c754bb9202bf16e0a8e3d3303ce659489a4962f82bf000000000000000100000000000000010000000000000020113e27b5901897167a0448d1dbb7d377e86eb7437aa10f6d9c449e12d269af880000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab115000000000000000b000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d00000000000000060000000000000001000000000000000000000000000000200633d0c2468e1482b1ce634cd0f064a469a7dfa1939b28890745909b68dadfee0000000000000001000000000000000000000000000000202bc392256565ef2248a478105f1cf8ffe527b7c80f9749dba9945a5e226478ed000000000000000100000000000000010000000000000020c35f57174d244bc93de5962cd3eafe8c7ce0bd4e411b8ea6d6dcec80f3235fad000000000000000100000000000000000000000000000020020ed5189b3c1f2a40e54dfe6de25896b013e0500d8c66842ecbc668174ae62b000000000000000100000000000000010000000000000020e9ebb4cf521fd9c5e6f70e93cbb3e25cc601550aa28b21d91e3249db3e747b1700000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd6000000000000000b0000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb7160000000000000005000000000000000100000000000000000000000000000020d8074cdbfd47cad225b98c305d9239af6369cd9c63165982fb1d937609c62938000000000000000100000000000000000000000000000020c57eed22efa0ad64274179e1a683226dbe2088f942f0f1e942d5591106342bb800000000000000010000000000000001000000000000002071439899e46f8347a807ce2ad5a7677ad60be0abf0200bed21bfa750e2803fd900000000000000010000000000000000000000000000002053079eb9f250dc3c24e130d3cfe6b33850d7952eaf3358caa62c406b9951f6fb00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000003400000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d400000000000000070000000000000001000000000000000100000000000000203fcb725bd2a93b8a7528e9c0f5ada7da587a7a6d5f7e22c44e2b7419f2f10e1d0000000000000001000000000000000100000000000000204c16db0eaccd5c43388b6d0f9b627ba0d99ea19f9678104a5bda26469194423600000000000000010000000000000000000000000000002099fbc47996161087965455500fa05500d46a6e0f6b21d75da0a510c55b08f51c000000000000000100000000000000010000000000000020d5b6f7ce4a4d55e6675c2e4660520d7bd4e7170362fd74ac95c6d297e57ac7ff000000000000000100000000000000000000000000000020deeb55e97dc611a451ec661f0f6a548de23e4909b63a2565b895ba61e8d002ef000000000000000100000000000000000000000000000020fbb638c189c1da035d1f63ff29391d2920eb4bd9b760bd5b5f84dbcaea676d040000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab1150000000000000034000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d000000000000000600000000000000010000000000000001000000000000002015ee62a032f114d1309d27eb408f21ea199ac0aecae377419ba6e30c13b36d9f00000000000000010000000000000001000000000000002024a0bc966a139715b9813296e1553f660d716ebe25f17e2d3dc549d5e4e22225000000000000000100000000000000000000000000000020affae4e619a5bee70f93443900691c5a533d089383865745ac62e9a4ac53b5a30000000000000001000000000000000100000000000000203126dc3efb4b611460c8ce1ea3d0731c71d5281f6f45dd81ac6202b342e89e03000000000000000100000000000000000000000000000020ca730090e7756d1979c0efd26d1191147ba040a03bf2f73f6ef36813aa05d3fc000000000000000100000000000000000000000000000020ee514bcfbc6e4f8a36fa90e4d4950598f4f029caf83a5d6fe064d44a0e6613f600000000000000140000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb71600000000000000050000000000000001000000000000000100000000000000200c8af5fa5b0c10ef4ce058a00cd51885c717afde2f84bfe8f0eee280178c04bf000000000000000100000000000000010000000000000020586402f83101f3110ed73a69a92f752cafb87fdddd975fd4eb6df6719daa9d3f000000000000000100000000000000000000000000000020b84c7066ba730edc7e3f02ed64bcef5daa7a4af947ae50e5a733ce7c1eb4bbd500000000000000010000000000000001000000000000002086b66390884356d6e0ba36d0a9c244fe6b858c6ee4773fc74d24113eaa363d050000000000000001000000000000000000000000000000207cfb1ae726e51f17f6bca54c4f2dab433a098cc6732f27a4fca87018ef62ff83000000000000000100000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d40000000000000007000000000000000100000000000000000000000000000020874b7bd1f3c3a6c84eec62d4ed462b197275c7ddd5e041deeb0f8c06e39c309b000000000000000100000000000000010000000000000020f5de7677a4e8d16707f08600ce53fb02374cf6f0fc8b69e34ef706b05cceab2c000000000000000100000000000000010000000000000020c523b6c0e7e62cc19ae96eae1dc1e5f6ab44bc28ecfe20944e91b73b59a24b2d0000000000000001000000000000000100000000000000209ec7c236e135c223fb251312761f2a9378a9423b3c5897609b9f00184e022be000000000000000010000000000000001000000000000002079c2ed00949e9f96d4f87c754bb9202bf16e0a8e3d3303ce659489a4962f82bf000000000000000100000000000000010000000000000020113e27b5901897167a0448d1dbb7d377e86eb7437aa10f6d9c449e12d269af880000000000000001000000000000000100000000000000200817533c97083ee0852b36bc29b7c110f9f6c515969b41d606f0bf1ac1fab1150000000000000001000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000006000000000000000100000000000000000000000000000020c647f305c320ccf2f76bb67093009bb661870562222f2b2157a4c30e7aaa4d69000000000000000100000000000000010000000000000020081a9ad3352b092b4c3da47ea7b948e9f45bfcc08bf63e98b29e6545ff7371960000000000000001000000000000000100000000000000206bb9c9b8ef67f85f465081dfb51336d4177175fb68b6f9080b52413d87698a1c000000000000000100000000000000010000000000000020ab3923d8895efbab25b1d9beeaad8c7acc3da96df78631e18214295fac01c5f2000000000000000100000000000000010000000000000020e9ebb4cf521fd9c5e6f70e93cbb3e25cc601550aa28b21d91e3249db3e747b1700000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd600000000000000010000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb716000000000000000500000000000000010000000000000000000000000000002092dc190aff1a5be9574e9362cc2c9939434f80288b8e1856412364fcd6a63187000000000000000100000000000000010000000000000020858945fcd02dafce48e632e41f9689536b4e66548e2f14c916c83c66a6d06e7700000000000000010000000000000001000000000000002011363b65ff7c738d83af6e5d344c6566f286bd01b544c629adb93175b4f064970000000000000001000000000000000100000000000000200282245398e29bbcb055f5c06e1dfdc51199ecde0d784c712f1ef52fd142fe7a00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd000000000000004900000000000000205909da18c6eb833449be88dc201bc5c88e5c3cf243556232bae822298c1766d4000000000000000700000000000000010000000000000000000000000000002028b2abadf940497469985339c457bd0ebcc9a55289755f55b34502a497bb95fb0000000000000001000000000000000100000000000000204a7b504fe903a484fbda0e9b89fc0f7891461cef78f1791b46faa673ea71a8d2000000000000000100000000000000010000000000000020ef334171ef36d500862572b144a473dde3c9e7351ae67eab71da6c8c8bfdd1c90000000000000001000000000000000000000000000000201863686499cab26760c4bc406bd87c45ee0eddea2b56a57b87448f64749186b80000000000000001000000000000000100000000000000208cc5e71a30a21c9c253015196dd0e4ce43441359f25bcff69dd2d76e3094b55f0000000000000001000000000000000100000000000000204ca795af155a2c7afd3b9e7575a9709140809b5e2fd6a6996408d80f7cbb64c00000000000000001000000000000000000000000000000208bed79526acec2740be3b8623403b906ae19dbf9d28334d193aef3bbd22feaad0000000000000009000000000000002013c819efc52114db032f420018f41f89007c445b23eed1e8c6b4496c14ea713d0000000000000006000000000000000100000000000000000000000000000020308bdddf83502a77cd6851c005ca4f307c11300864266f4b8886621b82f952ae000000000000000100000000000000010000000000000020fddacde4f46a4d2a3a59776f3fc7f2f99482debb3940e61070f9e48efbdf82a6000000000000000100000000000000010000000000000020c35f57174d244bc93de5962cd3eafe8c7ce0bd4e411b8ea6d6dcec80f3235fad000000000000000100000000000000000000000000000020020ed5189b3c1f2a40e54dfe6de25896b013e0500d8c66842ecbc668174ae62b000000000000000100000000000000010000000000000020e9ebb4cf521fd9c5e6f70e93cbb3e25cc601550aa28b21d91e3249db3e747b1700000000000000010000000000000001000000000000002050f12dd9f2a518a47a28c32a6d04c42f07338a68920d9468ca76e8cfdff29cd600000000000000090000000000000020425fb6f86a547d02da5ae3e2ca21cf231ae6748e071a4e2f1ddc6024827eb7160000000000000005000000000000000100000000000000000000000000000020688ab9061b0d0dd9741c2805dd3de9ddacb65bbe8bb00727bbd85ddbd0d20a3c0000000000000001000000000000000100000000000000202dff2e1df9d9260694d6943eeed7ed299be05f30469e7d9962cf0b4350179ed100000000000000010000000000000001000000000000002071439899e46f8347a807ce2ad5a7677ad60be0abf0200bed21bfa750e2803fd900000000000000010000000000000000000000000000002053079eb9f250dc3c24e130d3cfe6b33850d7952eaf3358caa62c406b9951f6fb00000000000000010000000000000001000000000000002024193fd3dd8cec66fe1ae1449ab80f25e19b0db4c0e8a3fc7fc0c77f268425dd0000000000000002055bdcb7ab4fb113fd99ef61c1cf7432177e585e6a86a912b7cfed29068d747a2cd6c34b09f002d24ab7e875aab36628be53f06c1639392b82fd961d7a3c8d8c6b8d19f1 \ No newline at end of file +0x03000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b000000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d343a642d206f24cfb2bd99ba9d80d43a9c0c9ecc099688b35a29c17ff610dcd90000000000000022343a642d206f24cfb2bd99ba9d80d43a9c0c9ecc099688b35a29c17ff610dcd91f1737f0f9693494b37fd517f70fe4d844c0e4dd11e9df8639a0be9abfccb55b0523f4e1a22bb80e7db400a5138425248324b60c0abcc7125e1c03cbce5450391b7417b4df0e06e7817f2977d34f78391337465946f76b67edc9572bbeff8ac519b3c8682ada9848748403396194b9b68fb78e3c35afe35bd68c12fb07a5911d094476885b462285877bcf57208d591d1b872dc6503b26d072945200bafdb5d70082ea08d644f96a4694101ee7e7a0908a089534f9d57e93fe61fd0d263bd58f2e5650a9c85eac9ba56b0cb3a2c2bd9189a3e4df9127c2123ce59a03a6f48d33343a642d206f24cfb2bd99ba9d80d43a9c0c9ecc099688b35a29c17ff610dcd91f1737f0f9693494b37fd517f70fe4d844c0e4dd11e9df8639a0be9abfccb55b0523f4e1a22bb80e7db400a5138425248324b60c0abcc7125e1c03cbce5450391b7417b4df0e06e7817f2977d34f78391337465946f76b67edc9572bbeff8ac519b3c8682ada9848748403396194b9b68fb78e3c35afe35bd68c12fb07a5911d094476885b462285877bcf57208d591d1b872dc6503b26d072945200bafdb5d70082ea08d644f96a4694101ee7e7a0908a089534f9d57e93fe61fd0d263bd58f2e5650a9c85eac9ba56b0cb3a2c2bd9189a3e4df9127c2123ce59a03a6f48d33237dab60b98c242bdc040462620fa39561fa93443e3f35366d2c37b40246ea3f15e6b91ca3f769953eb151173a98d00ee92aa36a2bb9d98d22263948a9f9f5bc0f3114c664f481e6028c47f122b53b12f6aa455ea26f54aad80ad778950b21772a9c1e52bc40ac6d6f3f6e7ae53d3431ed25d2de53537b0ca1eae11146076fba1120d7036b44a66c97653cc3a108eec9dc327c772c89953ea30416a55b92da5a2acd90c58b8637d005a76e69a474de1cc5f432a41724e855b2a0b19b71a5215001af70b396bee1c8ac831d5acb411d2d45716d6772267574091ca6165c5a495a277b3d077e65208b010bc2f62957e87b900bd1f007ef61acf14649463be06cbb32296b1e5e8b9c405edae3a23730c95f510716074c49d64788b93bdf133721e2308efe88baf9b3bc3787b68d279234d783ef3e4064de84b20dc2a1d72eb2e0e3308416941f77a0090a1a336f58a5fc1f5ea108144346340d25b0c8cbbb1c6e4d233a8987192e93bd25d9a764986c84f04d95c7c3604fb5579e867861434e17b4099c717f35db14d2697e363c8f15869eed2d07c39bc4c08839cebb610ab1a2800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010309a3b1f7b4a2f86fb021777006f31758ac85048ce903abdde687765d672f671691c73ae7f3c41138bac2bbda11010fd5c77fa9a85c18ffb2b5dab719c393430000000000000008000c01040201030200000000000000130202020202020202030302020101010102010100000000000000030000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe00000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f700000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b893000000000000000301010100000000000005f01c7c76063334c4548c3e5bd1b8803368daeffeb85520cd112001956de73d5af4238389f9cccb3bab73c1a42e477fcc9747569a43b42c2c0a792b9b7f18c2a50d0e6e4e1f0007d5a6bd37cb189a81010c0222c7a1970a0f1e6dad894b8432c6c23191b1e0fff82a5942c834e7657efef42023d15a7242e9fd2b7fa7a17bcd393f0827869b00272c41b216f77b0485053be8674d2be9e5527c8b367d8c94fde1c937d87964ffd8d3be4de90884fb7afac439df4bd01f67a69f0df6b3606b021e3828c5a10700c3dd487a72d56716991a2b8a0481db917a9c6eb81073bee8f568ed173a5ef8ff3c22b7858d2a98e966e5d49842172077d25cace11cbd2e170a97141c7c76063334c4548c3e5bd1b8803368daeffeb85520cd112001956de73d5af4238389f9cccb3bab73c1a42e477fcc9747569a43b42c2c0a792b9b7f18c2a50d0e6e4e1f0007d5a6bd37cb189a81010c0222c7a1970a0f1e6dad894b8432c6c23191b1e0fff82a5942c834e7657efef42023d15a7242e9fd2b7fa7a17bcd393f0827869b00272c41b216f77b0485053be8674d2be9e5527c8b367d8c94fde1c937d87964ffd8d3be4de90884fb7afac439df4bd01f67a69f0df6b3606b021e3828c5a10700c3dd487a72d56716991a2b8a0481db917a9c6eb81073bee8f568ed173a5ef8ff3c22b7858d2a98e966e5d49842172077d25cace11cbd2e170a97142f9100e7d9729cc8a4849ff8a3f726e058f54d2932408faf7a9e60e588d42726155c38b94270d7de2197be5e15a4d5e15644d01a67b1a6e21a65b85729e9ce4e2a8a0766c0e73aebd9f41489a19b5fb4e621e8c63975fad355c990da1a93021338734a4979e4e8528e9e439e4f541617d14bfa8b2a316ddd1146c396992f2dfc05de22137de15c03e481b0d88423e3e59054423063e206cbd6cd73c4109e954423f9829783dd7732f9a1c3c8fa27b34dff1ad68b35f03fe95a3845494f75f0ec3378e96abdb61bcbba1d3eabd7fed54d0690575ebb22e24a202a312fe5e0ea871d4151debb909c698a1974bf79d06c98068b8887bc2e4b5acc78cc6e960b93db3863f5ba1ed723e7487a2530d2cd6b1241479a272f4fe6ec44a548d9601f436132c090b776a1d67b34de1f40c1b97866b13e287528a6a1071b01d55e369cd33d0b8c04ad1d90783b373b4fda1f93a0ff41676b51b1199a785c248c2f21529e833734380f5f30f4ff965a2825cb1dcc691c999cb5cbf1fc76200593bd74554d0433ea94dfc7a4ad58c5e4179c08716939398ba390401a3c81f1758e34ca620e162821d51170eabbc57e4e2e8a40f47523b3ccca3c14c50f0bcc00bb47ffdf421100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012eac6184c940184e023e06c719f49a1fc6d6ac3f862ed70c09dcde569f6dad020d6d0023355d2e4a622f01fcf78be2e7f893c0f7928d71cceb78937b9df0260a2a25c8cbc84e082e14ba564c6ee897a12e8a59a559dac5cdabbca682bd68475e015dbb7c6e1df224e9b8c0af2af894663536899fb337404f7d00c7526309197711b0c2716a3b801981da446fab38d939e892d7ac50c425e198aba1a55eed2bc92e4f3d8e95c47fe67e25bb9054c726c639b3c14fb888d33a00818f47a112d4381873cc371329807f8943562e581c3e2168979d618a87c44c622cf74ddaa1daec278c33c8ecd67f8076bca9d1a7e3c1deb9aefb9a7ec534cf3700399f255e25153a42fd135fcf827dae50aee7b88d36a6e8af79ebab59dc6251b3a3984529469b05bd02eca0307d8251af51184772c95939971f105df31cb947798d54bad6b966234ef160df0d8c7467936a869ac211420252fdaa338d697d33cd6e4559ce61031cb10e9f20f2738b986c9579653deebe1ff39b51d5bf8f9e655fc2a7a6319efe11b0c2716a3b801981da446fab38d939e892d7ac50c425e198aba1a55eed2bc92e4f3d8e95c47fe67e25bb9054c726c639b3c14fb888d33a00818f47a112d4381873cc371329807f8943562e581c3e2168979d618a87c44c622cf74ddaa1daec278c33c8ecd67f8076bca9d1a7e3c1deb9aefb9a7ec534cf3700399f255e25153a42fd135fcf827dae50aee7b88d36a6e8af79ebab59dc6251b3a3984529469b05bd02eca0307d8251af51184772c95939971f105df31cb947798d54bad6b966234ef160df0d8c7467936a869ac211420252fdaa338d697d33cd6e4559ce61031cb10e9f20f2738b986c9579653deebe1ff39b51d5bf8f9e655fc2a7a6319efe28af10f352863be3603c58450ac349ce1d7a69742680e6ab4dff37b2a6fd6ec9074e164dba4793ffc9b2aa3f0d66ab37f9054d43e2b9d2b9106dbd59bc74d6700ee0232a48d3c6ccfa558c99f9b0da61e5bb58c8c1d0fe29a53259cdd84532823c89ffafc9b78eee93a4da97fd9c0a11198f8fe0dec284d5da7b601b729b2b8f00ab52175e9af80a78b3b080fda9bd7a45178804d4e78608bb8bdbc43b5af4a70b6848fd845531c18e8ac666a8a521a02a23506c3b3a92ed56e82c9367dc3ead16455d69fdad6d43f2e9f8c3e0f202d32bf94e0ac49d6660cabdb4ba775ec4102347fe970b9923798960494a5fe4caa963875ae7682d4df8975abd439d40ac9e011a719655003ac0875d6972dbd552bb37b2ddb2475332cb963707ecc3ab1fee20eb5250067100d5c3d5eacb1fc82370455a2b02ab604c8eaaa64babec44b95c053f2c9eb8200f1f6c5847826607faf8bf8bea3897451592ab22259dad3b0fe51101eab62935f45a6787c09b3fe8148c43c2fbaa7e718e8b124aa35b21dd58a9229c5d28ba70d933994723a8dfc999e1d54a8783275bd294bfb12c39ce2b2c982ca9d01ab9d6b02fe8bb2c12841ef463cb20b14b665be6365510aba694619b91000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000123132e30fc924df57f9caf56690b54b8a8390bee052df6ffa24c8b0fcc9e92512b9ade66852b129824e881fb308454247e9b25a68cce931b128e1e67e41eece80daa2982bcd8075e72b5849fde12f8e8640dc7aad3f14b97592128ec5c2333ec3f3886d2047ea9f3c4a454785c5b359beeb9e13a5e8aa3a34c89f8c6e6f8721603fd7dcdec4c7e7ef376d505a1884aa211315316654ff11a080c79b99eb27c653c02823213b381810c892afa5e77b55e111545e5a3fd08019120b733614d839c13f375059d7e787ac152291c27a9752a55f69f6ffa8fb582283e60a0197c6df92c0c8afa628187853eadd6e3d8568ad5cc4ff98c0ebd439970eed04ce683920823c1491c13785a65c69acd8cc64f49d38b8a8433db81926f300ab2337f6e25dc1c3eb6e3ec87a59a3965327339b0b62c96bc14c82dcb66ac69227eb98091da2532c66d8c6159c3fce10603bfdf8c71217527630b36ede9f4bddb19277d26bd4a0d3992739ea63c031ef9fc4020738edead1f35f0d25f0f26db5217c582d942b703fd7dcdec4c7e7ef376d505a1884aa211315316654ff11a080c79b99eb27c653c02823213b381810c892afa5e77b55e111545e5a3fd08019120b733614d839c13f375059d7e787ac152291c27a9752a55f69f6ffa8fb582283e60a0197c6df92c0c8afa628187853eadd6e3d8568ad5cc4ff98c0ebd439970eed04ce683920823c1491c13785a65c69acd8cc64f49d38b8a8433db81926f300ab2337f6e25dc1c3eb6e3ec87a59a3965327339b0b62c96bc14c82dcb66ac69227eb98091da2532c66d8c6159c3fce10603bfdf8c71217527630b36ede9f4bddb19277d26bd4a0d3992739ea63c031ef9fc4020738edead1f35f0d25f0f26db5217c582d942b739492c28df8980e9e622cbca7c106fa4a36ba8727e675886340b9965a9b211ed0b2e548ab43fb1633fb1036207894ff837916e4952f51dc3403358a248a4520b39545e6f1e77f35dc58e67531364d2d4dbab492baec592d24c001c4d1643503d17db95c7e2e907311ef0db42746cac3505ad9d4291215b1ac16808862610bfa12cf5376805f2dd7a08fda197b4d51309cdce871244f1318b7d18c2c548a08d0e13e9bc5f926f558bdac042747e36af093fa2490a63588d6d3fd09708b53bc6500744c761362bdbe7773b833b22cf34e3465cc1ebfda0e15aef3b66fb079115f82292dd49cb92f74f66e7f1665b7c6250491256cf9c31655a41ca5212588370373f2519335ab361d0ab93cedd33552d965f451c177e07dd611becf7c6a9148ac13b5c499d0822aa018bafce0830438f58f330fb78d78e407a1fee4ef746b3c972346592009a177a93ddfb6417d8130cd2b9342a5f0a79332ece3a893f06ada56e32fe9725f9f658dcf13e33af9897f238075b142790d234663e95211c4118339c36fbb4dbc61b8d012dc8c572885c5e795002207c447eed64ee4085b03a38ec211a860eb477601a65ad8403ad08a26eaa8a325c752f271b8fdca6ad3cf294e1a90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001264ddefa76c671adea087982db8ed1b06b7d72dbdf503f2cbbbb94cba6e6d43f3f72c8960564530ae92226d9cb097d0e260a478cdcbc42e737f4c57a601ed16932a8d2ce28406777430e4dfdd90af709537fbb9eb5493d9f4e22a973c47313352d0b1b7da7fa0cc1542b6f68b1b9360392fcc53e98f9f143b4a520a81f82f42924fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a6021551b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a707121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a1ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec20f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f0463930c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c824fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a6021551b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a707121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a1ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec20f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f0463930c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c81742baab87a0512aae50a1b71a451bd35fc2a8e5d9e9d1588e2a3a32169865ec20141b0d2ac97a190690c2a5bf733d22495d1250b2024db2fdea8b5ad08ad586088e9bc8ed6084f49d5cd96f90c1cbf8f08c0d55ddb6f7f077ee85d460554996305285f4b75d9c5c7821ca7721e8ea30d58c6f520268f9072ae820a970d9a4d220b45d2505771be3d80c47a1da5474ff0a6b7d0440779eb5a4c707c21fe2c59e065480b5eb2c39f9b54a2b9c59f1b47193165965f2be85f0cca6b0bc40b8b2e91ac9dcdf8df857055bf275f85a5e96c14c9fc78f2f36c7a19eeb6ae820ac9f7011af9f86c195bc53426c3766cefcbb459245ac9942dec3954303a69c5deadf5b3712880d9a718ae53a09644756774a892d3e72a8f6d7378f33813d42edeb60562b08dfac195d8edfcac91624fd224de0deda98b8a231e5af80673142ef8c17981eb1ea6ae94ef2b189de1e9a397ed32288b6de34602b54cc89300269b359c0a2059e34457c3063f003c81336485c5ccd3033de404e006ddea9df6da89d22a27a04f1da5060f75e597108542418f0b9631ffa301b78ebb08b79378d5197ac6ea12b73bd8378736e0c774e1d50b7166acfb7fb7863334794d69b990b21c968007e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000135a256dd066e4ced815f59c66198b6f3aac47671d1782039cfd103e0ad07cd1211ecc2d16773f901cdb001dff320885cf98fe9ef30fe22c769dd16c538fb0bcc23afa3f49d003369649342964fb111ac9c626cc4949cd4e9d8602663813514fd05b11cd7e03488d6bf19ddf593ef3b744ea464bc9bd8056b5d7233be80b4713f004ebed66970c16a21963c211e797937651cc016ab64496cde10a4ab01eef4183fb14129968f3e95de69c3dee18686c8bd29d8e55de8afaebb1c8c41fe110be90189ba300f33c712a7ef2ca5985f5e14f98fc07158f56f205653375709aac4783e7645cff0cc38ed5810d35a67a0a1eb28b6d88ab05789fb42d9f995f6553b8907b0a2f04c02e35d47abdf3bf9dcd668dfcec236bccb2ba1afa014b33055d658384f5d0fb3fd1ca2b85420c4062329974277d6c54c81cd79e98d1c39cfaa29a926732eb17c0e70d2665b5c2be150300c5f09cb11aff7da286e20677ff1ad2fb8198cd14e83f18f2d99a4a3d41eafcff3c33ccdea59551ef32b0cc96d0e52d049004ebed66970c16a21963c211e797937651cc016ab64496cde10a4ab01eef4183fb14129968f3e95de69c3dee18686c8bd29d8e55de8afaebb1c8c41fe110be90189ba300f33c712a7ef2ca5985f5e14f98fc07158f56f205653375709aac4783e7645cff0cc38ed5810d35a67a0a1eb28b6d88ab05789fb42d9f995f6553b8907b0a2f04c02e35d47abdf3bf9dcd668dfcec236bccb2ba1afa014b33055d658384f5d0fb3fd1ca2b85420c4062329974277d6c54c81cd79e98d1c39cfaa29a926732eb17c0e70d2665b5c2be150300c5f09cb11aff7da286e20677ff1ad2fb8198cd14e83f18f2d99a4a3d41eafcff3c33ccdea59551ef32b0cc96d0e52d0491b01758c049a62ce71a32817f0c287840aa0025270fb9a226de5a2995d46f5e82caf6030c551d866a83e9b6fc8ad4b31cb3b894b30e60114c6409f03b1587a9c345fcb2b90798a2249ae6aa00814c1444ca5aeed5d332cf439b4c96a0d9f37042f01eb221e04c70b732eac9d1c430b234c0f45fce7cd4f836814797986f4dc550eface441246d79ff30fd55ebb3d51be15c1fd1fa534fdc858dbb36e8429d6c014553fb75f5053c5fcec27062e336d4cdd3653c6832f458052177ac80848850417bef5c294c16a4f0d8fbf9fede424fa622ca71b64559b0a6df07e7121375e35316ea200b9760114d6bf235dcb09a0839547885fe9e15d225f471c1c73234ebb23a634dd829c2879df5d7443509b061cfbe4f5056abdc5036379f2cd87258d7020c398f3a6c4d62406a713b0626dbaa2fbecccdbdb1a993791ea26e670a3b5d60fa95dabaf4ceb20a1ea0cf9739ace8987ce3cedea14c0e33eac64aa303c674735f214ee1eefbe24bb76664b7a76d72eba3c5de6b0ea421d229470961ab7fc11177f5232f70a75893c1c8bed02ae9df506feb670069c594106ce31cf6f6a0b2036db1dd74b825102d9e73ecd1e489a8bea2628096fadb7fbbf89e6fc0339684f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013ee0997d0a52eb5d6a919fac84b948e42e90b06d284a96edac83840ede9196d73e73053e33e92e5f3e81cabaebe370c875a499cb393834f80c64ba2d69af7b901dd563b751da854cc8f3787534c1bda82be36fd7a565cae3bd7bac30bfb88bd40a0c2d0906633b0368f36bb95e8c77d9a3c008aa63429b594c1a1056aa64819a01b938c18aafe9f5a5f8c82f74aec414c547645d28ad43ba56624d06ca0357563e46c73e7550160a5a0737d08b513beb5cff349ee09fb56142cae3e635fca8ab089e1bc7b56f91cc3ddbe8ed4769d467da64f5d1cb6252a3afeb8121f210b4ae3761e4384a906e33c2241712b8962b9847e1a32a3deaa677e941afcb0def4b532b168ae68b2dd8fd354b8ca26511260743f8cd18f8eb9d326f9985a9ba53876614e9751974d22702cab4735d9aeed9f8de4dcbe310615be92993ab4345ac789b1770b680b7e53cf20a79bf2bf955be23ed083688c0b326a962780989a3a1a4fb288f497f481ac30df58640d406aa41dc353e62734899d27236b527635c5e5b0601b938c18aafe9f5a5f8c82f74aec414c547645d28ad43ba56624d06ca0357563e46c73e7550160a5a0737d08b513beb5cff349ee09fb56142cae3e635fca8ab089e1bc7b56f91cc3ddbe8ed4769d467da64f5d1cb6252a3afeb8121f210b4ae3761e4384a906e33c2241712b8962b9847e1a32a3deaa677e941afcb0def4b532b168ae68b2dd8fd354b8ca26511260743f8cd18f8eb9d326f9985a9ba53876614e9751974d22702cab4735d9aeed9f8de4dcbe310615be92993ab4345ac789b1770b680b7e53cf20a79bf2bf955be23ed083688c0b326a962780989a3a1a4fb288f497f481ac30df58640d406aa41dc353e62734899d27236b527635c5e5b060df237e95603c22b115b51664f40ce8a1bf3b428e1c80bf071341ff56c8a1d8b2094e452eca6427b095af7a868bef31e068b2dbfb1a9ff44b42700a19e20cbdd2cde337a7b3c0ef134647820650c6ec7d5c865e563213bee2e943d34813d12542bb5219dd9c2b32a22408678731a30d64d099575cd588d66ee7e5d40520a43e30c0812d76c6f3d6ca6d1e6b527a66a7e647f93196e3898e285d784653440ccb13483450913f00e4bab1cd8ad41da11fe49887611ab7e701aa4d4ad25d9533a5c267aa804e96598e51944feeb0d9eebd8e9770699808f77d8146bb47a9a3344ca3f4cb718be32b1291c98d4e23c7a4e21740b2e921e5096323203ea9a4845e9211255406cdfa0f53f584b1db47762c816409f1fef9f3e3eb828c388d99e85cd112e336d0daa6f82d9f0f5d31d68f388cf835cc7481cfbedb523acf3fb73068c2a18559430108bed6edefb8e856f582ec04af7702308006ddc902ed5848f640d693e5d61737dc96252e83e54b8a2581c2700252ff0a3417303bb33d87408224a720ea44c2fc012c9709ee65948a7ec14364380337810bebc6acfcf8b318dbb1a94150b9add47d877cd5eddccec1a7bcda2e82555935b680a59efd4607139eca78200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013ee38e4a501d63bfb08fdcf31132b036ab7e4cd2963807cd3c07b7f5d01f652e0a60a855ccbd4a77f6de4dd657bd725841ee32dcb64a4d7229a25f4bc928bf8e36287dfef02b117b4df3c8277bdf7be1f86eb3b6332934874058db8c8a06db3710c7935bcb6e175a58365d826737aa3ae06d8de2df0fd2a9b6d5d424101680b830b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b913383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d0c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d4019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d12407dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea51382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b030b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b913383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d0c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d4019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d12407dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea51382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b0029a3a1c6f41964b9b68a7284459f07faaec11e2ecc625a37dbad47ff53f13750a5a3a2d099e0f0d99fbe727865f7e3d88fd0d0c33dd52e13e5b28e6d2ed2b8e20899be034bb367aeb6327c489f2fff9f9cbc864c35ab1152660e9397ff33a35319a40474708858ea7169fe9fca304648ed91191eb49174efb17618c5f6b7521232394d4641ac26bffbf0e8312921ff232a0d35142b6d7ac52a7a582d1a4c5533fde85d7a1281db23d7a79666ae7d3aac22559ca2a02e23f4ebad1074f0bd5821237f319d05ab81aa5bbca31f5e173ee541b4e6aca701512b448911f6f5b009d39d24e3b13b176137675c24434341c29d0daca0d4b50794a8b073a0aae8ca7572198993f437ef68a2c797c6434da39d1d7c9c38890674aabbf8c96f0d6967c4628b3f454c4513f025ed42e9b07b385a448c4218a5acbe5c0d4d64416f1df028c25f1cc386d4a495b4c7e832d649d4503020d5d926ee9cd68afc9956d52de9a4425048fc1d7d4dfbe9e41ff71237a8cc0237a2f9047f26bf33b651dbfe18a04ce071c566cf0e9b7870f65477ccb6f4009d1817cdc9657df12f43a0fb86c9d677429b93a34cef87cdbf9202d41416a9c9d49765bc9d694f660104592d44b6156ab000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000136f1e408c87deffa380af27147aae18d45928b8b18f6bf312fa1c5a8be48ad783a2ded64e515941056e7f07fd9dc286f1d70a8578828b20f1e7c974bf33a36b80fa3d7e7c3c9d48cfb942ddcc6d659816f63c7b0c4615edd3a9474fb882e208b0d1597db48ef86f20fdaf352a3c7a17680123a583970cf7e42760bf476fcc9f50b9e6a431ecb9d4d13aa7958fd16be84480f6a6cbebc56322649f2ea95fd06c1346195bce13462b2ec5586a702e9417bda372e8f4a90a2e972e33e026a02f9403a18134f99fa128162545ebcf171b895684d141fb9adaefabf71be94edf121c505e7ecb06605ed7e9daba1430e8e476ab9f984dc4f9f4a20d9bb7258120ede3c2278608e01e25c86eba5d9b0b7389aea806700ae7b3086775883f534a5b5a8d51d879f71fe1da379145a264f48c76515a1df984d8e1c72a440a93bb85a4a572c2c59e2c6096bcea29a3d4073941b06943d75d1705558ae1d8839682d3c8c4c2713a61d39f694315d65c2bf8c6be4f96be4d0c78bb3f44afe10f3c8bfc373b3da0b9e6a431ecb9d4d13aa7958fd16be84480f6a6cbebc56322649f2ea95fd06c1346195bce13462b2ec5586a702e9417bda372e8f4a90a2e972e33e026a02f9403a18134f99fa128162545ebcf171b895684d141fb9adaefabf71be94edf121c505e7ecb06605ed7e9daba1430e8e476ab9f984dc4f9f4a20d9bb7258120ede3c2278608e01e25c86eba5d9b0b7389aea806700ae7b3086775883f534a5b5a8d51d879f71fe1da379145a264f48c76515a1df984d8e1c72a440a93bb85a4a572c2c59e2c6096bcea29a3d4073941b06943d75d1705558ae1d8839682d3c8c4c2713a61d39f694315d65c2bf8c6be4f96be4d0c78bb3f44afe10f3c8bfc373b3da36f638696b3494e042cc24ef0a03017341a810ea0e7082c785281a0594562fe93e2c1c70f1788dd278657d66ca3598829eb5d445d25fdee40e36a87298b8306636613bf28559c9975162fcd4f3ef25ab73c83427ccee2ac7bbad66e91d9b2078106a575d3cee30f604bbe7b259ebf018eedf9b52d8f7260e568f3fd860ad3bef01c4b99e348afdfd40ba69c835715274d0e31bb3bc6133eab4d89fab5ece5e9409d8bfebd944e2f7b4da0e84adc98b19a3f6ee9a22a951db74cd7e2c5d95ed3a0a30d303645911520afcd87161e76f5a40a40c659a82c83eed862befbc8dfd460782dfca70c9aa594da4e9702e692fcb1e53193fc3645ded8abf4aceae08c0e1329156e525792f5e9e4de150f7328058980f249a82b84750a7034f1669f53fba18bd631388308b5ddeae3ed6a97e21a61c31b6bef48f5cbab3a08ccb07dec11f13e552b579009cf78bed13f3c61ffcdcfc40660344420be61b0cf14e750bad891e80937512ccba6b84e635edf3b4f9fc3b88ca110c4d7612d4bad2049221af0f328ee72c2df12cc05efaeddcb75ca090dec35a5ddec9aec45042f143ef51833a132a0e4ccfdd4dfdc86f0bb5fd290d1603cff81d1e0f7d63498562de4d0ddda3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000125147966ab80e921cc3c321a7d7b455142950ee3134e96c2468a4580c5224d920f63ca87fb6554e5ccdd68f6b077d73a3bb4c5f84b96d2dfe59c58d0513744890c5b60b0c50986ac5a055ceb11ebefe02922a1cc24c3ac3a94018cc07f765c4d2060b993a965e04147611162ef30911181d332b4cc5c8942f0e97b233c0920f415cacbe1323d0fa43c58bfa0e77370cf3929bffd73861a9f5c0c5c9008a6ea482a35341ecdc2f05bc3a7405f188c8f30e91cd8fe95c6de7c3d20d45cf75915b92cf5fb65fb314e352dbbbe248541340bfb8a26f738518c0133109de32b429367130a049a04ceb1cad24441db7abecbf426bc7204d0fb6d1a661c9309d4bd6c9a20cde8fde7f68709e4aab6b69a46043b82def7dffdb0d0b333cb82a8d84ce1001f321702180978f61b55494965b9fbc49f67a11c0b9c28686561ae4427b31f0124058cf587d0a33177559191035e152949cda567e1da2148d09f2b72398064fe1bfa730a782f5cce88aa6e6efca1ead6d878f3942772d7d2c88e057ac67f9b0315cacbe1323d0fa43c58bfa0e77370cf3929bffd73861a9f5c0c5c9008a6ea482a35341ecdc2f05bc3a7405f188c8f30e91cd8fe95c6de7c3d20d45cf75915b92cf5fb65fb314e352dbbbe248541340bfb8a26f738518c0133109de32b429367130a049a04ceb1cad24441db7abecbf426bc7204d0fb6d1a661c9309d4bd6c9a20cde8fde7f68709e4aab6b69a46043b82def7dffdb0d0b333cb82a8d84ce1001f321702180978f61b55494965b9fbc49f67a11c0b9c28686561ae4427b31f0124058cf587d0a33177559191035e152949cda567e1da2148d09f2b72398064fe1bfa730a782f5cce88aa6e6efca1ead6d878f3942772d7d2c88e057ac67f9b0336c9c54533db5ef75a7768cd4d6eb285b2f66a544697edfc98ae3300b0b8f78827fd66c6ec7bdc59e76e6b40ca6876b9ab028b7dbbe031f58b2687525a0ba733003ab197af5139bcd4c783f275fa48234fa53ac560737cdc3b9de94f229f7d7e330bb18bcd037e5ee17c88207f93c8c5cab3e0621b8b3d5d8e6fe523362cbae93659a6e98505b72f629e7157b5444745e8a12145b40dd2e9e724a11e11cde8cf0f1b0f2b0b494da10298447807e174df78aab6f54ff2b77aa86c4784cd1e4b023b0d0def9e887241670083ac22704cc721a0b517d82254a0881bcfecf78b6dbe235e0ea04712b4c7adf62c654cce58fa7ff040030aa03836637d9cb2f77fdc9033f5831e3dc35eff256a852b4fb7bd3ec59d9665bfbc9c6809f9da71a95e9d33190daed5c6532cf7803b839b87cbfb7c0aa2c16bef4df7a84215955655f2138811953a3041ce47f4493bda3d37c444cac2395ae93ce6305cc4a1ae2daa977ba11dcbdeda049cd2981dba34820becc414ebc6c3d2a3b42171647903caae26487d246c0bffef6c3775333e4f44b75c69c6b5a400bf21778c3adbbed21ce3d23e840b47cba8c278568ae1976ee2e51d8f7d10776e926929dbc23093fcafa61351a9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000114aff20891dec628f120e9224fa2d9a9e71238cdb92cbeb0b90c54e06eb7511d322016bb5981f1a478af84acf87ea6184ff701909bffd1cf8980259f12dd916434efdb70ac2162d6102e8c904bc912a0594e624fafa4870cdbd8d31857a69cbd2a8ceaf146ab667cc554fd1adab09ec5c49c8c77003d30d0eceff1ebfead4f0935c3976d398f747336feaa383f3713a35943f3c4edb6b1b51af8347c453c12f50a3c6892c6708b8cc90155c7c0c8ec5cc902a5371b9647667e34fc70bac3ed0c0cd1f5221fcd464012f953193c13623035395ee87f5d941b222442b95a2c5ec5332e0adde032b9bfed06ace6c3ec9dcfed0d3a1389ef65007708ee33a5d3a13c0019c9aa9f025f405ede9f7e2c60eaf0e7d8418e7386eb6c11881cb1c2ddd9d83fe6365560fda0bfa1216081d39f150f3a6e576d95c60daf87a5143b3d2226290080f0551b0bdc41da591d76dde496b4873947c841a2991c57a88f78ce5541383f7f0faae4f423be25a6e289221b694b9b0d5133c7aa5fff4184a17431aabec935c3976d398f747336feaa383f3713a35943f3c4edb6b1b51af8347c453c12f50a3c6892c6708b8cc90155c7c0c8ec5cc902a5371b9647667e34fc70bac3ed0c0cd1f5221fcd464012f953193c13623035395ee87f5d941b222442b95a2c5ec5332e0adde032b9bfed06ace6c3ec9dcfed0d3a1389ef65007708ee33a5d3a13c0019c9aa9f025f405ede9f7e2c60eaf0e7d8418e7386eb6c11881cb1c2ddd9d83fe6365560fda0bfa1216081d39f150f3a6e576d95c60daf87a5143b3d2226290080f0551b0bdc41da591d76dde496b4873947c841a2991c57a88f78ce5541383f7f0faae4f423be25a6e289221b694b9b0d5133c7aa5fff4184a17431aabec91842790d41a46d52230fd55dcfc5cf04c065532fa3f0be4dc4da72d81b61e0761587f87c7ee457042b3bdb12a7e93b218867912f868c869ee5df4892db07d11438eaff01efd8dabe412bae633e9bd4d5111992530074f5f31c85b12bd88815c92ca101997c7ce95785d4abf611da03ae7f1b69a66a0dc1332162d83404ac2ad02e28b28b9832cbb7e4963f990c028798b90c4b53b8b4b6d3855f61e73982d40310ea344973e707f802830bb0937583e99b1bb72439c859d30b01b9693b20d8f90e336e2e5226abe8fbcdff736db4e3f738e8b6205468b8d67aa5c343273535b0047753774a51f6cfa571f34fe94a79e3ecb46f1877dd157c8ba2e5c75ff3b4ff1eeaf6a32790688336278b5aa199e7fa577fbf88a9950eebb575fecabaa257861998f263080922b1b43bda2c9a72baf39a8b60b04475cdf2f307c59253cbb60414d33ecd1c3fcb8f64194f2a3d947a1e680d0ef7e3357c43c6971a38c4fb0b59077ac2e73029a926b8a1e3f181ff6e5c70f923864d2017683d3d0181b50ab4bb11581d319456009ebcb1ba7b5de29278d962df937a12c59a0910e06b1c9cbcd436da92305d6548501e30c15a16e7af230696d4aa27a7e2aee0a875c3b9987b42000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000124743b19f3d570b081ddc48e07d05252b32e05c78e38aaa997e7c53603f15b12112f8d52efc78515c75b0c9e0b83004d361529fa8ba6148a4a8d17c0212d56161e52e8ba4c54330779ca4ce92bf7623ae035444cba9a16ec593670bd35bdb75c399c8f2d4594a32e58b53ced54d647f62fa5f788fa7af778ea87a720aa15b6a22759def81fb4a064e60e51e087dc59e52077c2b7f76d095e5f0fbc787521049918a62107e04b5f9b19f1ae1f7823a61b01ced64411dfefbd3a1d74748adefb6804c15ad89e8721f87e479962a74dc1793b8302a3b93a43850fc71b9349a516fa3b3ea5276178de0781b8669d58b23e86e6c396585012b59689661559b65ae90717c6c63b18a3a9da7765feed4484c75e298f0d329e2351994ee389e0703972e2283939c4e75c5625889a0112bb7b38a1f8b78bc96b29a7824a49a70c8fc68d1f36e1df277b32514454fdfaa25697e4d6ad84a9010d639ee2f1448075311f3e69091e20d884cdaebbab02055da9681b2974c1effafbe95a38a7e8b077cee0c1982759def81fb4a064e60e51e087dc59e52077c2b7f76d095e5f0fbc787521049918a62107e04b5f9b19f1ae1f7823a61b01ced64411dfefbd3a1d74748adefb6804c15ad89e8721f87e479962a74dc1793b8302a3b93a43850fc71b9349a516fa3b3ea5276178de0781b8669d58b23e86e6c396585012b59689661559b65ae90717c6c63b18a3a9da7765feed4484c75e298f0d329e2351994ee389e0703972e2283939c4e75c5625889a0112bb7b38a1f8b78bc96b29a7824a49a70c8fc68d1f36e1df277b32514454fdfaa25697e4d6ad84a9010d639ee2f1448075311f3e69091e20d884cdaebbab02055da9681b2974c1effafbe95a38a7e8b077cee0c19812acd9bfd8eb5891fa2950d9166d6c5704da7e36dee8999df84ecbd043c4bea93fe5fded67744ae60caed44fa5d27bec77f1fc16dc625175eb36ce11ee3bccc8100c915fa51e4beb8f437eacd8b4034e5bc8e5ef3b841247cbce392774e4e2dd307ec680db40ffccc2ab40b590cc792e523f233bde32f6b55eddf86398af242f224873f76fc0aad5a7a7fec3cf49d55e3abeec31933fab9bacd5982572802b912da429b9a1e2119a74df7ca77a5dbdd57588d0efe6db01e287fb70a3bb7483612cde337a7b3c0ef134647820650c6ec7d5c865e563213bee2e943d34813d12542bb5219dd9c2b32a22408678731a30d64d099575cd588d66ee7e5d40520a43e32eacbcb0b294836bcef324243ff56879b7ccc74fe604d5dec5c6f260dfa3b8bb19c79fc3c3a674af714263ca4cc17abc5222cf0d542df1f48859f3308174493404ecc28fa1cbce07df28e781bfcd9b31c7964954ecf0d89e742feeefbc84df05183623b4bedd191fa4c34c4168aa12fbc608db7bfcc4548c26f886a3109403a529b6088278d5e59497691d09d4c60f682558db4f8888deeb613f2d907c708adf2a97f3a5e7e480eec6cbcf02690581c553939a86087ce00b9da69a78d140cb3a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012163288b24bdbaff3f796a23386f63517eb59acb99af98cea6f9a14ee29f9bb32e0f4cdb0e11ac1ac906ddea0a09c201225de585664e48198fefd0cffc080d5a00277a09f31d456c7e0fac0b2281d9f1112e32f430565ff089e227081f401af33db1824beeba4f3d540243bb52645a8f624b0505b6e24e637e8a9754a85b79b215fc67563cc179633e1cbf21513de2b53c035dbaa8a6c2108948bd116473dfcf2a0398a9c33e869cc1e340deaec21d4ae6433b4160a6370b0fe473db9b8c20322dee04af2fc75ef0368fbba696356d8a09ca3ba941f4d137153e8069f6435f0a1211fb50d038a10fc970445969ca9276187c5d52c75827e483eeb08309bca0f725a6176beee4dab110ceaa40ef0b23b1ca1f5f5a2de12ac09eb0ef4acf50db2f1a59e894111b254eef3155bf10f4dc4e582739a1db6bce5afa7c41a230af24d23c3e751baa78457554095344ab37b278ae0faacad2cbe38be71a4a9c0c9447e903c18ae45587ba8aabf6acbb54c84d877436ee313681158fb212e650f36bb81815fc67563cc179633e1cbf21513de2b53c035dbaa8a6c2108948bd116473dfcf2a0398a9c33e869cc1e340deaec21d4ae6433b4160a6370b0fe473db9b8c20322dee04af2fc75ef0368fbba696356d8a09ca3ba941f4d137153e8069f6435f0a1211fb50d038a10fc970445969ca9276187c5d52c75827e483eeb08309bca0f725a6176beee4dab110ceaa40ef0b23b1ca1f5f5a2de12ac09eb0ef4acf50db2f1a59e894111b254eef3155bf10f4dc4e582739a1db6bce5afa7c41a230af24d23c3e751baa78457554095344ab37b278ae0faacad2cbe38be71a4a9c0c9447e903c18ae45587ba8aabf6acbb54c84d877436ee313681158fb212e650f36bb8182056047dccfa458fe390a5c3f9492976fa73fbb1191df0d7398961f82831bc983c4e6f47bc81611fc89dcb25f50c90287f81aa4568bb921090412235b3cd9e8337621577525ffb468c78fc42532e747607bfc4678c3cf49dbccaa56b9744768e294de2c0e345b9866ab0e7725f2548a997f9f98e89f86efbd6d5010477d77ad7315dc66f7c4a57e138ea20398ad2e9f02565ec2be67a058e1c1de029145cfaa431db93d08e1df5b38ded6f82110e724f723f7333668ff5bd0dec7df78c78c0cb0ea6ff98db649b04f52dee8ec3ed936f640ab05fec9ddec568197b993c4dadd71f4430e161b5dd3fdce09a4bc3c81a92d5ab1284a6a49151cfa04acb68afbf9206dfaf82c2a9a79d47a1ea3a3e50c793e9cb0e5dcbaeca88a5e01b54114e3bac03e0fb2b7f4ae5c239427a684c3dd029eeb6c4b15766bbca4ab588a1699b870f03bea15621e8c027cb0a04ae13bca46ea35a94ad32da9f26921c7c840a82741d12743267ab93b6bd93938fdb39995dba9b89d25fec5cee18c4f8547d41af3e1d14ccfe9a7afa36fe951876f4e166a76fd647f6a899527158a7b370ab4aa63208150189f35dd2d809226c6e5c719b087ec1df3730d830d36efb97358c1d44d05b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000135833ffe93869007c6533a7ca400f7a2baf6507eb7078b1cd9f8d515ed99328230c559a1bcc9d3ee6b22c0a3a4fc03b42991335350fa041be59d617ec58c7254126e0b1d78acec3d2efcf684b3d1497b734f7c45ce46115e9876544d9e3153cd0a5602eeefb3335b534bcaadbd1caadaed68313293960bfce89184bb029ced383d73bb154c4cb168c6b15573da8bb045cc9f23e4ebba481d8fa2de9e9463ad30028c44eab3b34e97394eaa8c25744fba55a775171d92b0fe098a524e6b9c52d13342a76a7d7f770be176ab4344ba715c76014f88756f842569799564e5f261ec0cbd5895828088f41e8954bcbb458ea3ac45497393dd74f62fb39b881a0d9e15004d4514737d533b6751585057a436cdc4ec29ba25f9b04caaab27447dbbe9983fb2baeb8c82acc498aea7afa85bc9325d5a6f41e35348ceee8209a882441669018259664172a0290496b991b6351204d89cd0a2bde0717f5557c45674ab8ff83e7da699be8d5fd6fb69466e49caedfb49a9c8594b6c879c43d56c968b5470093d73bb154c4cb168c6b15573da8bb045cc9f23e4ebba481d8fa2de9e9463ad30028c44eab3b34e97394eaa8c25744fba55a775171d92b0fe098a524e6b9c52d13342a76a7d7f770be176ab4344ba715c76014f88756f842569799564e5f261ec0cbd5895828088f41e8954bcbb458ea3ac45497393dd74f62fb39b881a0d9e15004d4514737d533b6751585057a436cdc4ec29ba25f9b04caaab27447dbbe9983fb2baeb8c82acc498aea7afa85bc9325d5a6f41e35348ceee8209a882441669018259664172a0290496b991b6351204d89cd0a2bde0717f5557c45674ab8ff83e7da699be8d5fd6fb69466e49caedfb49a9c8594b6c879c43d56c968b54700900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000159d3d4d94f424b4a7321b64fecbf3cc294b9483a29337f43578f27fa71d442f0000000000000000000000000000000000000000000000000000000000000000096b2e845687aacf28b23b179f9e5bba3e92ace37985c6947760248f6a140f4e00000000000000000000000000000000000000000000000000000000000000001f086bd1eb7bcf83cfe4567c9e6a4f8667de41671c18fe88acd9170f1131537d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011faa165bae4ff955c34d8c24e3394502cb25084fc9f4fafdd0472feffbb166863f8af24b0c4ddefec4f81a9c6043b2868271f59ddf9f01839c6c95a9f970753b39058264978a321cac56ea889b27709bda2e45f693622f380db4458f4cdd048900750db4f3b221013b07e5639fbc4d799fd4a35e29adf797fcc09b43068f8ac63dbf2fb1a2ee15a78a481a00805b627ca9c26c7109ed0f2d27a690846721c0210240d04e5d11ea5875b7e5ff7fa49d8378842c8aff5fe9ee7186a06898de3fe034bbee782ea66c45b368820281c8ec6ec7b1ba450c6d6773618c0ee203a8c0a10b441187d15993ba4c977dfd7e3713915a94deb6fcdf91a837a1220afc573f6007aba858e9401d5c810a8a0c88ec9e295d5e3f6918ef20d2830786b6124bc321385457a716bfe2a37ef575f3771361d6c4e85992f05dd8491625aa36edb43ce0265a49bc8e4092ce8534b23eac9f16ced2d73d0d7caba41c8f25a18e5b7acfa519a5b64371bf6d317acb4dc15360e9314f6f5bee8ca154ff0a078f5ea485305c3dbf2fb1a2ee15a78a481a00805b627ca9c26c7109ed0f2d27a690846721c0210240d04e5d11ea5875b7e5ff7fa49d8378842c8aff5fe9ee7186a06898de3fe034bbee782ea66c45b368820281c8ec6ec7b1ba450c6d6773618c0ee203a8c0a10b441187d15993ba4c977dfd7e3713915a94deb6fcdf91a837a1220afc573f6007aba858e9401d5c810a8a0c88ec9e295d5e3f6918ef20d2830786b6124bc321385457a716bfe2a37ef575f3771361d6c4e85992f05dd8491625aa36edb43ce0265a49bc8e4092ce8534b23eac9f16ced2d73d0d7caba41c8f25a18e5b7acfa519a5b64371bf6d317acb4dc15360e9314f6f5bee8ca154ff0a078f5ea485305c06269888565b866079fd6ed6faea80ed95e23070b63929273ac74a30861c2cff17d8a3c941a17a7156a36f9f4839ce8afcc91a2a707acafc502add6215069374345661ac3de6130102277b6a9397f83fc66def025300e6d915cb09ec134435a91c7513a1ceb53a85ac9d6f7fd526cae9123f5399fa21e31af88897944ff7e15a2400976ebe5b0ebc0a996c6a7ba0cf7e78a3570fb75b022800d535b73c04bf733a6a85212740184d0a5d43a6f39dd64328ed9e0b2b678aaeeac436e8b3068adc14e27fca6323d4584eed848a4f11be91bd8da27317e54d1045a1f1580a1c351c1f2bd313a18b1e42d89b7d207b2f2c1e05d28aef36909fdc84213eedbe51e1921566ecd21fe2cc32f663db2caf73e87ddd72968eebf24dda9e837edc1c2617db1ec1c24d7f27b60961dfb60af24e007a36d0219cb06b024f8958587f8488954733cd83343b8859204d2651b666c11199f23cd7625033995f61a2c8b9e473aa71226b4c487c6108330d2dcff520fce8652dfcafeafc3a7cf8c4d4d1b3f92976633b971de5ce3e4b0f0ecd2cd3b1e269367903d8dbe438b8d2674639fb2c3748b50362d778d5531e48b5fa5ed595582688688f585bdedd172f90a6e463bc6faa900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001377b9a881c7636fcfcf631906dd8c68263d0400648e2f6e83957af8f6aac95b30aed235ec269a510d67e576a3108f556d56c74b110f9833f510211a135ed937c1e8b4b1e582a382323100fa10cb94a41a766c485ea00894ba68350b0541e7bbd220d75b3c9411be47265be641b662ee6304ab53d2e5922261fdbf168fd6cbffd0122be8c6e5ee32eff9a8f8a745a8553b0d65ac623e9b076425cf68a52168c043edd417391a11cd1006570758ba57aac71703e35e56348a556d03a62ade973fd05adb8be27da6feafe04cdb445c49aa2742fc5deb390724f4bd0d0b39a70bc143a524741d825901501fb324bba3b655dae16d31d55bc86cc4d5c6039658f43ed1c649bb6c7442f96f61804855cd7052c44eedd5981d23b8c7b1413820433ac64239b644938bbd06909e7fb7aa328fad3dd57bba2877abd8f1e191d6afbcc539d0df70a91e454edf2ce78169ad03319dd141d20c7768137873509ffb015025df23208f56e1bab120d3187e9652fcce6230e29783492cbc1946423313ceafda20f0122be8c6e5ee32eff9a8f8a745a8553b0d65ac623e9b076425cf68a52168c043edd417391a11cd1006570758ba57aac71703e35e56348a556d03a62ade973fd05adb8be27da6feafe04cdb445c49aa2742fc5deb390724f4bd0d0b39a70bc143a524741d825901501fb324bba3b655dae16d31d55bc86cc4d5c6039658f43ed1c649bb6c7442f96f61804855cd7052c44eedd5981d23b8c7b1413820433ac64239b644938bbd06909e7fb7aa328fad3dd57bba2877abd8f1e191d6afbcc539d0df70a91e454edf2ce78169ad03319dd141d20c7768137873509ffb015025df23208f56e1bab120d3187e9652fcce6230e29783492cbc1946423313ceafda20f3cc2811d356fc9f66dca009d3efbf4c2831a0ad1ff2220b4bd92d490e778eb3910e7102ce98ed9ef7888d12180370669e9afc828020bed62949cc8956158fa4318c2f44116168ddf6a4198fb4b8ff7d0cbeb43607ad72c02416b298500088b2a1a7159329a0123538e93d048fa756ad74c17cbb04c10c7f36a084be035ec895b131633796bec0377675ebbb5ce602bdb34e151c7370e7d6026cd5f11b5c59e3b0446cd3ddd7ec83c6374f22f02b194c16f6402ab1f38adb9b099c4795c9b7833137a2ee667588a75e49c93ff4329efc9673d6c789bd7b35d983958365be075e7314df233637f998b5a552b8f914300ed6ee15fd883bb213d306f54abaf7b1c242b5924eb19e1aa3a954f92e9ec7bf8793483e1a25dd7ba9c4a97da83ac0e1ae209a0a9490f52e8b5cd05352f12f2eeeca59d6e75bb763ccfb1099df28904359806faf1c95a5417875f946491ebc0f3100f11d1095f9110deb6dc3456b4bb60da1988befa4936733f4ac7a893e19c605b8936053d517dc02ed5755b065a31e67105c5365eedc2310cfb31ac6f43bc4b984f5a62995f59a2ece9c8a47d30e1938807458053f5e9a2531fda48ac7b21e25fcb455c5d72beffed2e87c0b80f40112400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010ac5424b8cf22df6b3e8d640d4417416c2080e5e9b3c5f59d301b07f6331541e2d410809e9e41cc7c72abdba454e8d11d395c1903b02442b802b2002c67da9b2255e5e4fb5df98a49efbb211c422993988a0aaf1f1c0d753c8ed71f24f7379790a4785d726ab9a9d1cbfe58cbdeb48becf1487f9602e9548fa917bb41ce89b523683d68ffd10ecd20c288c3868838e92df69a7981e366aa743bf857453a6e582097c297002ef132df3d773c7977c716d42dcf163eb168e74556dab78ac591a7f109330cff154a01a3ccabd1a0a91c8ddd3f5e20871dc30d5ee08d791a2427b862f6ccf300eab5fe5c33542e5f56e37224e50b6f39770c845ab24595b5dbd847b12dff40fb6a720832ff5b18234d8ec550186d12e2ffffb120cff04eb2b4c699d2d200bf04958df7cd00a4e7dcb2713ab20bfc7cdd94cfe098c2e2c01d4b396641e5fc44e9143a28fefcc778b083c9da8e55b7ceae6b2ee3ea7cde7aad87e101021a03bb16ebc5d7010338874f7c362573ceb1c11229a0adcf15f49422781eff13683d68ffd10ecd20c288c3868838e92df69a7981e366aa743bf857453a6e582097c297002ef132df3d773c7977c716d42dcf163eb168e74556dab78ac591a7f109330cff154a01a3ccabd1a0a91c8ddd3f5e20871dc30d5ee08d791a2427b862f6ccf300eab5fe5c33542e5f56e37224e50b6f39770c845ab24595b5dbd847b12dff40fb6a720832ff5b18234d8ec550186d12e2ffffb120cff04eb2b4c699d2d200bf04958df7cd00a4e7dcb2713ab20bfc7cdd94cfe098c2e2c01d4b396641e5fc44e9143a28fefcc778b083c9da8e55b7ceae6b2ee3ea7cde7aad87e101021a03bb16ebc5d7010338874f7c362573ceb1c11229a0adcf15f49422781eff13211d8035f65f813c9cf1863754ffdd754a7033a3fb07cd47d62a7f8dcc36ff224f7db928d777931e650254de7aa8f1a85d214ae558b218a32fd53fc6c22c0b135d26133b5c96946b7ce3b9f066b7c2eb43819996ec11e03914716f4db4d88d8330a1cf16f4a85740c8a26e23f438a6bb257654b7412ae3f93af11f09cfadf3a09105856f4922d4f0002e7f54f5d32419957962ff7c6db4096d9695074f35f6b0688fb61d626e629564a1ad8808b579d85faee68155ef8f8d4c329509ee613762f585a47608182c75e22660eb0c6e35429cfe3576a764686b84d8367c6c7ba442926bfac18d1a361bc491e6f1d1da80702f89b095993225e2bf4d0175db1a83e371293b3b0f61513e22d18d27d723dbfc9dbdc6ce23d6ce2a8e5733940b5924c2a6a60dc0956ecac47d0fa9bb654c8ff3141b15025cadb27694ecbf5109bbdbf143b11943061401fe437d21ac6023bc0f1dfca802d90f1de7f8a434d49f2f3c51cfacb8e7411eb1360bbf0abd2c212b1650f135f3513b210e23942523bc2c8773d7ae0fcce0d9037cb2e5476161ad36d5af81182085421d67c0a50075e2f6c420ed020b5971140eaafc9383a60d150717264275369f412ac3434b593d1937a6800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013322021e5d0367ecd04c20b599aca1f0d5c2037d6b9bcd8d95481e060618ffdd084e4bb4e47aec3be2b7f2341835d341ee3a4ed5f4e0e22b6adec13c514ccb0d1fce3c08fd3ec25819d9a53b3f7f5b31c7e49c0cfcd0ed25ff70e2f6fbdf1e00199f800d98cc42cf0cfcbad2bc82936aff50de1f0c8673d700e3865d771abc69000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae0591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f62000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae0591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f621917989447b2cc4575c26f35f25ddd13908b6d1d72c526ab2f12b8334faad3002c9449a2096eb369dcd74848e36e531fbeeebb0231c1e1dbf69ca078811f10b42b0dda7aab625e197ac62c2c9323d9a64b62fc81e1b2afd5950287c46a6798961932b894c9fdd7019a4f4658fa94b1a61f7dcbc35722e08f168ccc8f296c0e670b088947b25487d40a8436018cc9936431ce83b75b30b8543582c6289884982507d5fdd69f3ae3b55f91d9d6293e5881fae9422a0e3a98fb7332bde32324d44d380000000000000000000000000000001dfdc5dc882359f826078acf60000001380000000000000000000000000000001dfdc5dc882359f826078acf6000000125c9d20fe9cebc86ac47b48ae8b36a52bfb5774cbc3f2bce71e24cae4452b8660d70e0ce98afc6cc63678c23ab21b0072140db4f664839547601e6ad2c78dcb716e760658d2de7ce507cff79aaf982d880f38fae4b47ade8a74f11d4a2b2cea60c06e898b7ad11ae80a72e8a180a42da3423bb2f683ba38fcc94dad64bcbe0183446fdbf1d6e8ace645cd3d0524fc3e2569b1f7947cdb31b71fc74954f9044121e8aa435cba9acca6c53f083385d4b7d080c25c6e5a4e26da68f1c706f8a0b77000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000117a3dc2c074853a60bb187593db4a4dfb11569f40664ea4f9e87442efb57c2720a721bdbebfd4a87b8fc792d5cb7226ff8ac409a2f6277002cabaaadd3e5593e357194b67a68a548c7170eab2d63b2172107db3a352b48090042a7c8b9f1403b3c9cc7ba985c6b201842c94af0abc04f343a6eb81de61572162028b43c965217307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab21307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab212876855487ff336836a0f33ee2a9bfb97c9b0acee0f75ff33fd9f20480d259f317d5b27a8f0deecd238b31e430f64e7826e281c766f5a2962b425b1437f015c30abe003460a462f4fc31a0637f8d253719132698391ea5d48d2a75d69693a9322b06f1edd79995c579b3c01d6adf168779937cc9dc173181c73c00ff50f7a9851b83557d474a36772934cb8e5ebddc87ce9238e19b25b31e33466ab0fb3febeb2e36e944259aad3e4e91a84798bb84f3e4c5dc3c1aee4ef030f95680f5f7d07e066c15e7ad9e05f7cc658e57a8230a048ef44719cc9716dd26c4473c13a2e98813daa8ef5b235c3dff368a1500f4526d8fc167282e6ec9e562304abc9dfc33c828bcd32c8ebbdf36c8b2b19c6669af4b2e65c346cf6e731044bd9ab7aae4973821199e54d94791c0c39dd9abb587658286230a49dfb335e1b801cef02fe23ed00cb9e82ea7610bcf34d053d66e0d11b0e771da75884eed1f17b2ffd9afe7f05701ade79b7ce560a2874a106d525815419ec400ee5eadb8ced2a385839e388abd2535d07942cda1a5768ba29ae871d85ffe0b6e7bc254e569adfd35c859f633ca3fdee13e0d9232dfc3a24457b7b01be9fbe19598938d1bf2e4df23c1b73055d9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000130d346460893857e2ae9fd474752068b6bed1ab5bdd20068147d163095b521dc0a8c26e5cb43292a62405ebff46a9accfdea998a0357edff1a8c8eb6b82d1f2734402a574c64c1c67187fdc0b5442a193659d406e1867d370bbc7a1c04e77c463325cef28d5e193333401f30b957499d0306bb9879c068f59af9c4887800dee22e06b6d9f5879f50c5b703bb87c931418d5d570965c1facc2041aecb618b6bf011f949260a7860af3a48fc447836cebe94e941f2a38afe4f78eb82219e74941126219241cba61c93dc9312a9a6edf6475bfee83ae0e2faa9d5c0d731e7b91bad19de6dbe3459e36c236ced56591209b8c647b0c12869fe71c36c59bb1846e4543ea7db48fa3e8ee34edf5d5042a5cf64876d572e51d4f319fa69d21f869d8a5f015824b705c1711cb120a2afbd5a309b9ad941cdb77806019ec35ecd796275a23947486ce338ca708a5cd2914d3d0cf61c084ff773f4db137f5c56e9a113b3d706b8b7931cc7358f75a32d6eb2c2f30a063e490495581e0819d0da035eec4c2a2e06b6d9f5879f50c5b703bb87c931418d5d570965c1facc2041aecb618b6bf011f949260a7860af3a48fc447836cebe94e941f2a38afe4f78eb82219e74941126219241cba61c93dc9312a9a6edf6475bfee83ae0e2faa9d5c0d731e7b91bad19de6dbe3459e36c236ced56591209b8c647b0c12869fe71c36c59bb1846e4543ea7db48fa3e8ee34edf5d5042a5cf64876d572e51d4f319fa69d21f869d8a5f015824b705c1711cb120a2afbd5a309b9ad941cdb77806019ec35ecd796275a23947486ce338ca708a5cd2914d3d0cf61c084ff773f4db137f5c56e9a113b3d706b8b7931cc7358f75a32d6eb2c2f30a063e490495581e0819d0da035eec4c2a2843200288f6cc4361de4f3164c7e4b3db2f6e4fa374218a50fc2fa0efdf24630943e9457065126661e34399d6f79a4c076da1681bfe633786e4a6c9df32664d0970b8464c52f5bd79857d6e595e9cd20090f8673adc85d9924dc05f28bcc70e19c8a1f9be1557d74d52124d4282bf6d74cdcdfc08e07c55fe8f6cd47818f45f32b9a7cfc219347197a0d9971fef80e999127abc4a074004428a4259891e066c3a2b951d452b3873345dd109d4bc4a3626ea596db459701b0890214d9e88bd7a37621577525ffb468c78fc42532e747607bfc4678c3cf49dbccaa56b9744768e294de2c0e345b9866ab0e7725f2548a997f9f98e89f86efbd6d5010477d77ad712d904a55bf64e9154522a01b44c818964631421eb3052ace53cff13ecd55e3434c5ac1eb8b4c44b688219e765f32076d4ddf6355ad625d96922e4d7368e698a1656b674728f867fcdd22c642154830125f80adee6aa699ece810555862f3f58201dfc1fe803e5e2cc27d82b67fb83304f64a3c817a93727cc4a9ea72c695c310a67ced9e83816fd4db8933f0eaf4c825998777c4760005440ee6a295b2115760acf87610a7178651cabe06bd15ae22deabaa7f097dde43b304e7e3d708019d700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010702e50427b2875fb779175c01510d6702a33244df639bb8f8c37412a03a7ceb030db31e3694b6cd1a81753d9216f3c29df89792c9d64813451257bfe776c3221d287accf212979f1b695d5702790102a22899499397b26701e9b95fc1b1075035fdfc2b21373a8b9295e9adca98b23d215e36514716a20d6d62437cd1ca6c27030cd05e75d1e255409209127d4b9ce678dd55a5805b50748a762ff9f03fcf4c3cf32fa18a2e1daabf6df6ed82b46319a969435688f1a8a70eb700f30fc030b50f4011d84d196baa42da2d5c727a10805c52ac3b81c89246b44eefe1b13f0c7c30bfee27b2e69455bd25d2a38d85ef7fc5f3ecc0878466d4e4de410b4ec0f3850c405939817f1a534e42e2ce3c625281ab56c42d7f9de245ec5d7e7b763b3e6b33bfa6c67e80e5acb1bd1d31c39dad7e76efd4ce89af16d5accfb27189c4c1963d41be1f877b83a0874e6e072deb9c8858b1d4e37e156b5d9dd378694f28381702be41e078847c5f78b191f8d2146377c994c4188b378dbdfb59b883b0d7c7ea030cd05e75d1e255409209127d4b9ce678dd55a5805b50748a762ff9f03fcf4c3cf32fa18a2e1daabf6df6ed82b46319a969435688f1a8a70eb700f30fc030b50f4011d84d196baa42da2d5c727a10805c52ac3b81c89246b44eefe1b13f0c7c30bfee27b2e69455bd25d2a38d85ef7fc5f3ecc0878466d4e4de410b4ec0f3850c405939817f1a534e42e2ce3c625281ab56c42d7f9de245ec5d7e7b763b3e6b33bfa6c67e80e5acb1bd1d31c39dad7e76efd4ce89af16d5accfb27189c4c1963d41be1f877b83a0874e6e072deb9c8858b1d4e37e156b5d9dd378694f28381702be41e078847c5f78b191f8d2146377c994c4188b378dbdfb59b883b0d7c7ea28620dce6dafbf4b7e2414532dc079987522b996f945aafb84a03cda0d98ea0b2ce5190376a7f7fe677f194984a947d834d1aff16552143653a89af2b0108dea2f6d78133ae6b84c5dc58ddbad1c3fd556bf69a7592623ebd825e2ce3854c7e538a4626a4a80293f00840a985c3e73948e64988ca021b575e0ce8c4a3145a355047278bcef93da404257f6ca7f3b3ad58bb5779010c878c65f24c2be0eb5960f2ef4893422e7478a4c0f2eea673f3bc9b9a901150abaa1115df939336ba609971eddc2099265b17d3c4315c335a3b21e34ac930c9def205e05e1ed4b7eb30b1b29a96393d22f2715d04ccd8a859503311c08fa7aa2a0260ac9536a844ae905db175409608dbd35edd2ef8b6d61c28e095eaea8489b151a2246d5e6b22f36e97503ef050d4f6f80ddfc1b3b321ac94e9bf0cabcbfc1a3ca060731172ddb5de9c619e0c7caf16fe7bc2da39b953adde20f1a5d5c3836707533bfa585adf543b48a27f6b579f16ab3e5e17184f9efee5988a6ff153a7204b9dc385c954beb5cf7991aea60afb05b2f77038a6ef9d0342f6cca3287b917fa4a7f04cb746fe569113737f396d9b7c3b706bf6567c06e6af00bdbc858d0865a86df440be204a5d232a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013a622eff40a0ef2b133017eff6ca1a14d94041f587cccc42e60d601b49fe70b3343440fca569e45135993df5872d39f4ea915e3225427151ea8095e22cd971a100127817af50d97f56ec51606338d2b8c5ebcea16220a8cb1bb636ab8287fee23a70ca1ce1b972bb6799bd721bd9501a5f9866e062a4ad5ce05e8e685a5cfd2635fe374963f87f68a0fa64ff49b6b426ef09cad00c00b9d210a5ef3785cc785b0a01c8b69c0780975f059b00b6494bd9333cce2bfd4c3f49888741b57a3387a60df7146ef3da7d0b24e3f8fc709184c22216922016cfbcabee88e8619cfe59c33208eb910c2582f4db1c07038f6e7b3e003006dbf27d3c6faaa4488b6301a63e05d3662ac3447137b873dcee32d797ca882a41a468c1b6400f7f58fb10f7c0ce3a2c99d53cbb8ec8478c2311cd2868359a1c5757a08b42db89add7f1ef083f331d20fed5d05636169a4350a6fe35f6f4a8d348360bc88f404d7cbce754d6c40622df012a2fa9c9e965bcaf5901ca090b797350c5fd8469db4bb07405ab293bfb35fe374963f87f68a0fa64ff49b6b426ef09cad00c00b9d210a5ef3785cc785b0a01c8b69c0780975f059b00b6494bd9333cce2bfd4c3f49888741b57a3387a60df7146ef3da7d0b24e3f8fc709184c22216922016cfbcabee88e8619cfe59c33208eb910c2582f4db1c07038f6e7b3e003006dbf27d3c6faaa4488b6301a63e05d3662ac3447137b873dcee32d797ca882a41a468c1b6400f7f58fb10f7c0ce3a2c99d53cbb8ec8478c2311cd2868359a1c5757a08b42db89add7f1ef083f331d20fed5d05636169a4350a6fe35f6f4a8d348360bc88f404d7cbce754d6c40622df012a2fa9c9e965bcaf5901ca090b797350c5fd8469db4bb07405ab293bfb39a0c4d49b17a7dc76778d0617ef30ca2dcfb8cf37a899d300229c4e86f516f5008be8cfe697c87a7610eeddd822d823b36b39f2ce5b4aaef248af23681a0a6d15fab13365a6c967b3909664a194dd29f2b083f7eb372687bb31b658fa03b33733b382f7133504c7b19c51d7274a36a118c6124eebac9618b646d5f68896f190048fd8d34571176885e6c7f03c6ed46304da1ded9b91a549366f61dadc6f0c7423ce49aa8552839744c2db9403838d04e226fc81df3753510509a59c3c77d5b805dd87da7d5bcd91c3172948ba4bb1bf831695bfa31aba26026aa4716d6ad0df3deb023da089e1f4fa4a6333ec87200761624b04614fbb2b51a0702310e9119730bf65cead3e62d49ce3a99cd4f9deaa94597320ac39c267f40cb771422e18711594e039fcea375da7a13cdc47e15be3b186a6e4931b77eb4e2dbec39ca3e06739ef10540f395a5dfb60e6efb6f6dab43c0f7e5a9f4a8c84b7b5051733b167280efa6428c14f9784d698901e48a331c9f96fee66142f6377559511e0fd2393961fe37277648a1171250a1fcf71a647d9d9fc8b005a168fff775056bb0f9caa6a316bb04acb7eb3e13c9d253ac6eb38a4a5500735160ee309872964d560e11365000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000112836710fb73c8622b5d6a6849c289014d735d1f0af0e388aceee1fd09e1ada83d4e04287b06412d6a0e40468df1dc6f47efbe1cfe00d7db4aec24edeff72ece3a3d1fe9326780d03b82722e16a387e32c274e72c8aae19393b2c3cfa91201a8041b1a603cdad670a8ac259292e09213b99da9d6d3ae13e17cf432439b09139722349581c8414f9f69c009613dbf362475871029f1b3b8225760cc5a952f3c8b1dcb6a7e37beb060963ff69ec240c9dbacbf88d2179940f941cc64926ad0c3762b06eb88e9468e1d10c02ee634bc0eb607161ed9a5e8a67482899beae9ec2eb514f9147716b971e2ef3fd119cb43f14a1b307a22636452a716a395021613d14c172299ac8e60c69153c0ea7f07ac498dbc9acf4c21a454f3c12878cf919ce98628dd6653719f396eac3f1580f853b67265abc9afe7a8a427d804b81d6e63167b33ad005ec7e3e0d6a2c4947b265d6fc48cbf73809ee8afa72c9d2b20d8108f9d0c52ffa1381c1f295d3b6b84d9a2903b9587257b6a6449746c9005cc27ef706422349581c8414f9f69c009613dbf362475871029f1b3b8225760cc5a952f3c8b1dcb6a7e37beb060963ff69ec240c9dbacbf88d2179940f941cc64926ad0c3762b06eb88e9468e1d10c02ee634bc0eb607161ed9a5e8a67482899beae9ec2eb514f9147716b971e2ef3fd119cb43f14a1b307a22636452a716a395021613d14c172299ac8e60c69153c0ea7f07ac498dbc9acf4c21a454f3c12878cf919ce98628dd6653719f396eac3f1580f853b67265abc9afe7a8a427d804b81d6e63167b33ad005ec7e3e0d6a2c4947b265d6fc48cbf73809ee8afa72c9d2b20d8108f9d0c52ffa1381c1f295d3b6b84d9a2903b9587257b6a6449746c9005cc27ef706409e4fb41c3e3d120440ed8495e07407f7558dc7d3ae0924dc3f3c3f6efb89e221e8ad2f503e30bb310e76d8f21d29bdadd0b1f859622f817ebd3e3654c46d554131323fab31a8c01f5421f08004353bc583a6504b90a2ebd8f60d3134c4d4c3a103cea00be7c9f63fab9dd5ce92d6b4e9abdebe16f5a148b1b925b2340250f8921e9e31e36a1ce9e269541efeedd1670323ff051c2e569ac2e9914728bba7b5b220ca0e6fbf116cbfd3758b6e08e31af1ecfe3cee98b5cfd4ecc89e3eb5fd403345fcb2b90798a2249ae6aa00814c1444ca5aeed5d332cf439b4c96a0d9f37042f01eb221e04c70b732eac9d1c430b234c0f45fce7cd4f836814797986f4dc5522ebb012850f0885cfdc130e992dc76bd3a9422108b44d4e802b920b62054efe28d0623cd23d04c92b164b5cddf7830661c456464875646cc9bf6b2953a716112455d20b94abbe74f0596705b8d73bd5d6ef9f82c45d109c87c1595ce188f2263189ad719f1113b1a088676b8a02c2c0aff7b5da9ef6327656b765acc7f3425a2d0395e8003940cca13daba29ebc5a8b83415997db78a8d7a0373e9ef6ce88361bd35de5835350de322d3ee11e5b247987bef75211ab309a47b20d946ce75d4300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013547c091fcd758b552a601ccaebb1ee6a002c23e7dfd0d6bc5bdc90eb2ce3daa2f1e09c43e5730a70e72b2bf6367d74b611474ba17fe0fe8da1b2c08d914358f21fbf11f0ce5b508ba0c138d17b74a84bb6a18db114dca957d9b6a53b2a89913124b6866169597f28032f5728865649d67b5739cc36364e7395a5f3e397f3ef21dcb6a7e37beb060963ff69ec240c9dbacbf88d2179940f941cc64926ad0c37622349581c8414f9f69c009613dbf362475871029f1b3b8225760cc5a952f3c8b14f9147716b971e2ef3fd119cb43f14a1b307a22636452a716a395021613d14c2b06eb88e9468e1d10c02ee634bc0eb607161ed9a5e8a67482899beae9ec2eb528dd6653719f396eac3f1580f853b67265abc9afe7a8a427d804b81d6e63167b172299ac8e60c69153c0ea7f07ac498dbc9acf4c21a454f3c12878cf919ce9860c52ffa1381c1f295d3b6b84d9a2903b9587257b6a6449746c9005cc27ef706433ad005ec7e3e0d6a2c4947b265d6fc48cbf73809ee8afa72c9d2b20d8108f9d1dcb6a7e37beb060963ff69ec240c9dbacbf88d2179940f941cc64926ad0c37622349581c8414f9f69c009613dbf362475871029f1b3b8225760cc5a952f3c8b14f9147716b971e2ef3fd119cb43f14a1b307a22636452a716a395021613d14c2b06eb88e9468e1d10c02ee634bc0eb607161ed9a5e8a67482899beae9ec2eb528dd6653719f396eac3f1580f853b67265abc9afe7a8a427d804b81d6e63167b172299ac8e60c69153c0ea7f07ac498dbc9acf4c21a454f3c12878cf919ce9860c52ffa1381c1f295d3b6b84d9a2903b9587257b6a6449746c9005cc27ef706433ad005ec7e3e0d6a2c4947b265d6fc48cbf73809ee8afa72c9d2b20d8108f9d1e8ad2f503e30bb310e76d8f21d29bdadd0b1f859622f817ebd3e3654c46d55409e4fb41c3e3d120440ed8495e07407f7558dc7d3ae0924dc3f3c3f6efb89e22103cea00be7c9f63fab9dd5ce92d6b4e9abdebe16f5a148b1b925b2340250f89131323fab31a8c01f5421f08004353bc583a6504b90a2ebd8f60d3134c4d4c3a220ca0e6fbf116cbfd3758b6e08e31af1ecfe3cee98b5cfd4ecc89e3eb5fd40321e9e31e36a1ce9e269541efeedd1670323ff051c2e569ac2e9914728bba7b5b2f01eb221e04c70b732eac9d1c430b234c0f45fce7cd4f836814797986f4dc55345fcb2b90798a2249ae6aa00814c1444ca5aeed5d332cf439b4c96a0d9f370428d0623cd23d04c92b164b5cddf7830661c456464875646cc9bf6b2953a7161122ebb012850f0885cfdc130e992dc76bd3a9422108b44d4e802b920b62054efe3189ad719f1113b1a088676b8a02c2c0aff7b5da9ef6327656b765acc7f3425a2455d20b94abbe74f0596705b8d73bd5d6ef9f82c45d109c87c1595ce188f2261bd35de5835350de322d3ee11e5b247987bef75211ab309a47b20d946ce75d432d0395e8003940cca13daba29ebc5a8b83415997db78a8d7a0373e9ef6ce883600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012f1e09c43e5730a70e72b2bf6367d74b611474ba17fe0fe8da1b2c08d914358f3547c091fcd758b552a601ccaebb1ee6a002c23e7dfd0d6bc5bdc90eb2ce3daa124b6866169597f28032f5728865649d67b5739cc36364e7395a5f3e397f3ef221fbf11f0ce5b508ba0c138d17b74a84bb6a18db114dca957d9b6a53b2a8991334c7810dabffcabfa2e0ea28ecfae9e70d324c576033413a7c1987f9e74385410b387ef2540035405d1f15d71305161915144ca4a919b7e11d13a8f318bc7ac007e585445bfef5be2e6492cca0e69182b8e119c4bbcc61b607cae42d84519a41381a7abba4010a41d19b6d335f196e7d69657f374d80976591624cbf7bae65c0277b9a55cbfaccb6e7f6ddff2480d78d9c6580d7aafde88e26f674e395980345188465aa3405334918092200db7f287285e118245e4f108d7236bc096a67fcbc056a03acfbe5ff9287d255fbb68435c3a727b9423b0e9f73f748b5aaebf810563a95fc53041a006d782daa04497bca3c7b1edfb9ce3e59a7a1e47b421407efab34c7810dabffcabfa2e0ea28ecfae9e70d324c576033413a7c1987f9e74385410b387ef2540035405d1f15d71305161915144ca4a919b7e11d13a8f318bc7ac007e585445bfef5be2e6492cca0e69182b8e119c4bbcc61b607cae42d84519a41381a7abba4010a41d19b6d335f196e7d69657f374d80976591624cbf7bae65c0277b9a55cbfaccb6e7f6ddff2480d78d9c6580d7aafde88e26f674e395980345188465aa3405334918092200db7f287285e118245e4f108d7236bc096a67fcbc056a03acfbe5ff9287d255fbb68435c3a727b9423b0e9f73f748b5aaebf810563a95fc53041a006d782daa04497bca3c7b1edfb9ce3e59a7a1e47b421407efab0fcb955a514d7590bb79461edd06e725d2134541dd0631ce5dee91b5d403fd8322bd6c632c9ed27ed58710a292fc76cbdff11eb9ed4d0a8d65987ae3776c42712c58fff8fa7e4d777d4d560bcc14cb8b1fd203a5d91b69f83ea9bc0b8768b106226e0c4bddf87804056e3f006c146958ee749efe4f3681d69929c52312280ac3375722b831be7b1c1d7bf7809253cd74d31cb7bc04540ab8defd5bee7d0f8bfe36940dc20b5bfd28b4929159f561e08d88dfa424983b5e79f1e99b6327ede16d15d0bcae4e79a51577d56c79772af1ac2321c5960c60d6226ffa609757a11bd634faad91f2bb6e579a829163b97b27212242a15eb80ddae790bb8c804809f0b51cf1ce2553a50e8b24cd1eddf5643faf90866a72cc972adccb37eacd1822885313adbabfbc9f1d9b450387fd426716df3a37eb2e478a9d92ba71541eb67cb2a12fa7cb39abd3b1ee1b7d83011fc9584607340c6dff7795456eb376da381c44753f6c8201cedadeb9e791da74698e6fa9ff8f6ff72624ff08c316093cf2cf6d0d2c5655ee4c1f9d4d380e8f138fba98ac94324b16c0df513597abd594c3922e050a709d34cc86674d15be36f1fb7a5472520117d4b0e789d06ae4e8d9a22028240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001064647d878f8f0a8a766382c6901540d7d0e194f3b102817d80ab103e9a0a25a024d9515a062de026933f3b37f16b069ca393a6456ce0cc93be935d140b5287d0eff22eb8c4644a84ad11699cd0c10d73583ecc7583b291c777e2221dcb28a3632824c9174b09ad674862dcb3b2063312a5816ba9616dfd850a53c4fcbae779d259ebd15452653edce544ddc801f91dea739caf30047210f7dd049638c0e39e81a6142eabad9ac1231abb2237fe06e217b0cce090905d80c1b5ce78973f1c6193c19b16a59bfa3a507a5854e809dd958ff93c4c6eec9b31642b70d17bc47218603e64e95a6405c5af85a7ab17f6226a722b2d4351a834605567623d543b8de7b2c807713c0be3239263b9a8883153ebc74c873f284bc9b00e8de7dc2ad63a79a137f88ec3f41cdc6d9c465777ceac143ad7e250984905e1ab04eb32a529c58671e825362c3b6fb1dbf2a04aa8f6a39ade11678c87bc81bb1c0d0e20662f245ff217dac9d3c4904e240d5fb557095c652413020338d84dd69d85c4ee69d0dba02259ebd15452653edce544ddc801f91dea739caf30047210f7dd049638c0e39e81a6142eabad9ac1231abb2237fe06e217b0cce090905d80c1b5ce78973f1c6193c19b16a59bfa3a507a5854e809dd958ff93c4c6eec9b31642b70d17bc47218603e64e95a6405c5af85a7ab17f6226a722b2d4351a834605567623d543b8de7b2c807713c0be3239263b9a8883153ebc74c873f284bc9b00e8de7dc2ad63a79a137f88ec3f41cdc6d9c465777ceac143ad7e250984905e1ab04eb32a529c58671e825362c3b6fb1dbf2a04aa8f6a39ade11678c87bc81bb1c0d0e20662f245ff217dac9d3c4904e240d5fb557095c652413020338d84dd69d85c4ee69d0dba020a4cbbb39b871defcf4bc6dd245aaf529dd9b08e97e7f2c46f9e9979d78825562e2b46ffc36d4f5685eb00c7ee014f48e8153f1f919ebfe151c8d6542e6cbaaa2b328097c5d2e75095a089fb6c5a6a784c55b5a6c101c81a2655e6066e33eeee2e5068f2500b62e78899f359b075324e60c92cad6ac5f5e3f1facd7f51f5c52313eb6578a5913238011c1163652ecd7eeb27476da593b0d4ae86ccb3f1a9f13603c736fbd97c2ca6fa8b1d62e93c6a00af516e598f9023c35254ff28582fd2a825d3645f6e411b3bee85a0adf374008ca3b61b5db5f7e46ddac27139047548c82ae9ac07bf19b73bf8be12e85a75563d086eaa37414a37d9ea20cea4043125070ffe80a5f23019e0ec880642a3959f86b64383cb2e460f25501f1c138bc12a930cbc44318fb49535b2ebc087c7de5dadef0623c6e789d2738e02813db54a097713ae7a52f4129b5e613854042e2b675db092a3928f1e5e133a424dc1f6de38231a098260efa5254e77a1eab0c4bd7f60d42653d1fb07953aeddb8b390dc20cdd3fb50d2f53229e58bd441cee45c940dcba139bd8e785eefe840ac2d181cd94ce1bbf121fe1c3aacd74d0d3605b05e0efb61a43729e22c874722597510560922c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000138efda2dd22b4bb536e122b644b127c9f9e43cc665f757d0039b4bbf31ff3e9726b250e62f0171c232a682eabeff6480c8fe76916d1ac774674b725c9ac10f9b2889b0b81a26df830a67223462232e782d1a7ed64bd662a9d6b000810b6814f313b58197c9e7798c559643502df8dc1780a44828cd2eb7246b599fea909493f70175af5850c48b5312811458ce6b91ca32d6cfe591513b4e62e362a21d6f8f153e8a50a7af3b74aced7eeba731946e35ef6fc91677fbbdcd3649ce4ae29070ec074c6cb993d6b89f5c8565bc0819d8f2fe320f7bd6962887ee70ed2a932dcb6938b393466c294760a37a9a43f7e6270d2414898032b6d093aabc43c26cd23498247e1f9fe3319b1cce9afcac28813cbef6fa4d6b30eecaa7a834a1d4dfe4f90d1b81e0601cce64e331650353d77ec3412b4c4b90d85e2e73f0f88f18201b06f436769e1f6ff807900906ef5cca862fba8e56511fe210030f16acc74e5f78dd3f098961e09007f86ff6f910a33579d04593f047dc273cf60c8280699ea08722c20175af5850c48b5312811458ce6b91ca32d6cfe591513b4e62e362a21d6f8f153e8a50a7af3b74aced7eeba731946e35ef6fc91677fbbdcd3649ce4ae29070ec074c6cb993d6b89f5c8565bc0819d8f2fe320f7bd6962887ee70ed2a932dcb6938b393466c294760a37a9a43f7e6270d2414898032b6d093aabc43c26cd23498247e1f9fe3319b1cce9afcac28813cbef6fa4d6b30eecaa7a834a1d4dfe4f90d1b81e0601cce64e331650353d77ec3412b4c4b90d85e2e73f0f88f18201b06f436769e1f6ff807900906ef5cca862fba8e56511fe210030f16acc74e5f78dd3f098961e09007f86ff6f910a33579d04593f047dc273cf60c8280699ea08722c2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f76ec95f31716a3325338a9c741a645235ff53151342230a8053755acbc9175000000000000000000000000000000000000000000000000000000000000000008334d36ac74f524d6838eb29f72d77118dba10003796e5ed22c9cc5a99b5c5f000000000000000000000000000000000000000000000000000000000000000027aa39cc9f8c0bc808d6c75c66b47db63c3b963154ad908f7a31d41b5657edd40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000137a3194d45e2c2a36f12d8bcd51316b4105292f6fb5f781b043c727d3a63dbcb1d4723e74b6ecda5b75b1f90d5f970ee7ae3f5318b3a0f4b5be48117cc41f3bb02ddc4b46fcb30701ec06fc62c61510357d17edc8e24ccb99e12a5fb965ec38a22b8dc18b491325a48a4e06f2a068f11a762a3ca7e12e9d03d48afd533be0c462ea29935b680ddc9d09db5bb767c308cf109041774f53222cd326a318f5b4ed8115d66ca497f22362f624a448983cf73313d94e49457c6f8cbfac6bb70a4b129292cfe0c908454f113148ca9506cf2c04e5949812ce30f5b36748030ccc88a3516d301f36f7bab0eeceb7356af930d3fd3ed4f7adc69e9c062b8b0bc333775cc0de0f63ed295a8b55f66bf4e9220bdc120eaa491c488617544beee2cffeab306321f09c12d6a574aa09940b16ddf423f015bf46a44c497a6546e42c000154cfb0564cf3a1cec4b8add01bc88daa3b4c5824e9ddccd5cee2ebe8d75f3ff957f1d3a9b30c5e313b47522fe4377255c4b3a9ff7fb1f3bf00aecda9fbaf9006a80e42ea29935b680ddc9d09db5bb767c308cf109041774f53222cd326a318f5b4ed8115d66ca497f22362f624a448983cf73313d94e49457c6f8cbfac6bb70a4b129292cfe0c908454f113148ca9506cf2c04e5949812ce30f5b36748030ccc88a3516d301f36f7bab0eeceb7356af930d3fd3ed4f7adc69e9c062b8b0bc333775cc0de0f63ed295a8b55f66bf4e9220bdc120eaa491c488617544beee2cffeab306321f09c12d6a574aa09940b16ddf423f015bf46a44c497a6546e42c000154cfb0564cf3a1cec4b8add01bc88daa3b4c5824e9ddccd5cee2ebe8d75f3ff957f1d3a9b30c5e313b47522fe4377255c4b3a9ff7fb1f3bf00aecda9fbaf9006a80e41638c722d681b9a367707bc6a94b9a9aab39f07019eec840162b9a06124d16191897330ce884f145a19e4048a1139ec5eeadec55268d2504700ae2a32b9355071c23a9dd8057d4424e0aa40a65228e8ad90ea49260f18f97874f0461b4902bf82c0495ad8dee3910777e6ff0726b913a16209edefb4df9e6d4040a1e2c1ff6161ebc262606335e3e587d7e63750e0a5adad8838f1aa5042ed3c5763b731e8aca33ee9b7f9645447a48c2745fe1f153806d0b3aa5baedc33fcbb063bc140a5fe73af4b0ec5afb8e6cfccb07fa6516093f2644f5128a76ec00cb3489fde19ce0262991c70912dc4f160f7246c018afa00a18d50e80ca0d22cd97373e23b420a6dd3ed3b9fd366cb2ea9c8c372d4d9bb436807bbeed619a62413867af17ada660120c8ed627793d7679f752f7b2eb08445853ab3f8c5f8aa6cd8b28e4055ba2114d22504c2136fece9f7f1480da4d842dd5885e9ea119f60e6b64061e5d3c3f2dcd084d4c62435110f12795cebf6c56887617746f00a1de72b234aa13dfeda4318a2873e2947e0c13fb8e6ce993ec953bf19c42c40e1fe9dfffb3fbb894d43f176e1a7a00e99edbe1f5dcdd6e5005b6116ddf14af058b884a805f6ed87cc837943c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010944343b9f542d234ac6606a8d0a522ffa4fd4a5ca5a5a43dd63536094033712112574c621565efb10633553bccb5d6fcf8fa861f4c88df5c4c75de0d3c4a5ca11a1497c749551fc6707b82e3be75fb736fde2e0ca5aa0675c9011ed778eab581100e5ece6c74c75bae26d51eb858ba50b331c507d5e7a378a251dc401dbc6e62759def81fb4a064e60e51e087dc59e52077c2b7f76d095e5f0fbc787521049918a62107e04b5f9b19f1ae1f7823a61b01ced64411dfefbd3a1d74748adefb6804c15ad89e8721f87e479962a74dc1793b8302a3b93a43850fc71b9349a516fa3b3ea5276178de0781b8669d58b23e86e6c396585012b59689661559b65ae90717c6c63b18a3a9da7765feed4484c75e298f0d329e2351994ee389e0703972e2283939c4e75c5625889a0112bb7b38a1f8b78bc96b29a7824a49a70c8fc68d1f36e1df277b32514454fdfaa25697e4d6ad84a9010d639ee2f1448075311f3e69091e20d884cdaebbab02055da9681b2974c1effafbe95a38a7e8b077cee0c1982759def81fb4a064e60e51e087dc59e52077c2b7f76d095e5f0fbc787521049918a62107e04b5f9b19f1ae1f7823a61b01ced64411dfefbd3a1d74748adefb6804c15ad89e8721f87e479962a74dc1793b8302a3b93a43850fc71b9349a516fa3b3ea5276178de0781b8669d58b23e86e6c396585012b59689661559b65ae90717c6c63b18a3a9da7765feed4484c75e298f0d329e2351994ee389e0703972e2283939c4e75c5625889a0112bb7b38a1f8b78bc96b29a7824a49a70c8fc68d1f36e1df277b32514454fdfaa25697e4d6ad84a9010d639ee2f1448075311f3e69091e20d884cdaebbab02055da9681b2974c1effafbe95a38a7e8b077cee0c19812acd9bfd8eb5891fa2950d9166d6c5704da7e36dee8999df84ecbd043c4bea93fe5fded67744ae60caed44fa5d27bec77f1fc16dc625175eb36ce11ee3bccc8100c915fa51e4beb8f437eacd8b4034e5bc8e5ef3b841247cbce392774e4e2dd307ec680db40ffccc2ab40b590cc792e523f233bde32f6b55eddf86398af242f224873f76fc0aad5a7a7fec3cf49d55e3abeec31933fab9bacd5982572802b912da429b9a1e2119a74df7ca77a5dbdd57588d0efe6db01e287fb70a3bb7483612cde337a7b3c0ef134647820650c6ec7d5c865e563213bee2e943d34813d12542bb5219dd9c2b32a22408678731a30d64d099575cd588d66ee7e5d40520a43e32eacbcb0b294836bcef324243ff56879b7ccc74fe604d5dec5c6f260dfa3b8bb19c79fc3c3a674af714263ca4cc17abc5222cf0d542df1f48859f3308174493404ecc28fa1cbce07df28e781bfcd9b31c7964954ecf0d89e742feeefbc84df05183623b4bedd191fa4c34c4168aa12fbc608db7bfcc4548c26f886a3109403a529b6088278d5e59497691d09d4c60f682558db4f8888deeb613f2d907c708adf2a97f3a5e7e480eec6cbcf02690581c553939a86087ce00b9da69a78d140cb3a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012163288b24bdbaff3f796a23386f63517eb59acb99af98cea6f9a14ee29f9bb32e0f4cdb0e11ac1ac906ddea0a09c201225de585664e48198fefd0cffc080d5a00277a09f31d456c7e0fac0b2281d9f1112e32f430565ff089e227081f401af33db1824beeba4f3d540243bb52645a8f624b0505b6e24e637e8a9754a85b79b22a0398a9c33e869cc1e340deaec21d4ae6433b4160a6370b0fe473db9b8c203215fc67563cc179633e1cbf21513de2b53c035dbaa8a6c2108948bd116473dfcf1211fb50d038a10fc970445969ca9276187c5d52c75827e483eeb08309bca0f72dee04af2fc75ef0368fbba696356d8a09ca3ba941f4d137153e8069f6435f0a1a59e894111b254eef3155bf10f4dc4e582739a1db6bce5afa7c41a230af24d225a6176beee4dab110ceaa40ef0b23b1ca1f5f5a2de12ac09eb0ef4acf50db2f03c18ae45587ba8aabf6acbb54c84d877436ee313681158fb212e650f36bb8183c3e751baa78457554095344ab37b278ae0faacad2cbe38be71a4a9c0c9447e92a0398a9c33e869cc1e340deaec21d4ae6433b4160a6370b0fe473db9b8c203215fc67563cc179633e1cbf21513de2b53c035dbaa8a6c2108948bd116473dfcf1211fb50d038a10fc970445969ca9276187c5d52c75827e483eeb08309bca0f72dee04af2fc75ef0368fbba696356d8a09ca3ba941f4d137153e8069f6435f0a1a59e894111b254eef3155bf10f4dc4e582739a1db6bce5afa7c41a230af24d225a6176beee4dab110ceaa40ef0b23b1ca1f5f5a2de12ac09eb0ef4acf50db2f03c18ae45587ba8aabf6acbb54c84d877436ee313681158fb212e650f36bb8183c3e751baa78457554095344ab37b278ae0faacad2cbe38be71a4a9c0c9447e93c4e6f47bc81611fc89dcb25f50c90287f81aa4568bb921090412235b3cd9e832056047dccfa458fe390a5c3f9492976fa73fbb1191df0d7398961f82831bc98294de2c0e345b9866ab0e7725f2548a997f9f98e89f86efbd6d5010477d77ad737621577525ffb468c78fc42532e747607bfc4678c3cf49dbccaa56b9744768e31db93d08e1df5b38ded6f82110e724f723f7333668ff5bd0dec7df78c78c0cb315dc66f7c4a57e138ea20398ad2e9f02565ec2be67a058e1c1de029145cfaa41f4430e161b5dd3fdce09a4bc3c81a92d5ab1284a6a49151cfa04acb68afbf920ea6ff98db649b04f52dee8ec3ed936f640ab05fec9ddec568197b993c4dadd703e0fb2b7f4ae5c239427a684c3dd029eeb6c4b15766bbca4ab588a1699b870f06dfaf82c2a9a79d47a1ea3a3e50c793e9cb0e5dcbaeca88a5e01b54114e3bac12743267ab93b6bd93938fdb39995dba9b89d25fec5cee18c4f8547d41af3e1d03bea15621e8c027cb0a04ae13bca46ea35a94ad32da9f26921c7c840a82741d150189f35dd2d809226c6e5c719b087ec1df3730d830d36efb97358c1d44d05b14ccfe9a7afa36fe951876f4e166a76fd647f6a899527158a7b370ab4aa63208000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000130c559a1bcc9d3ee6b22c0a3a4fc03b42991335350fa041be59d617ec58c725435833ffe93869007c6533a7ca400f7a2baf6507eb7078b1cd9f8d515ed9932820a5602eeefb3335b534bcaadbd1caadaed68313293960bfce89184bb029ced38126e0b1d78acec3d2efcf684b3d1497b734f7c45ce46115e9876544d9e3153cd1e0fdc6c3dff304c7851041d5d1206a0c595b4f5d4c6f020fda5c49959ae3f6e21f02393c200cfb387aefbe2a2edf95f5cb0e406348608fa9b876c53a651c093164f4e1d35fbf17e59951492d15a2123975f56d51548be6dc1e27524c0673d2429b0b1e2ca040e81a66aeb6d2ea5dedc8ae74226f4043aadd74abbc83f98c2dd2f8c86920debb777bfe966de16c2a5b1d296192d611ebf09303f18cac20431b31073796df214488840169921e93d5a4e4fb07fcea82e3a1268ee18223dfbce4e2dbea0da459a9556bf8f025671cd3c78b61ab2eec9b2cfdb25b3e92eca14f87c12415f25ba656aa94070fda98e32c3876c2be60d3f9a2940737947be35eb07851e0fdc6c3dff304c7851041d5d1206a0c595b4f5d4c6f020fda5c49959ae3f6e21f02393c200cfb387aefbe2a2edf95f5cb0e406348608fa9b876c53a651c093164f4e1d35fbf17e59951492d15a2123975f56d51548be6dc1e27524c0673d2429b0b1e2ca040e81a66aeb6d2ea5dedc8ae74226f4043aadd74abbc83f98c2dd2f8c86920debb777bfe966de16c2a5b1d296192d611ebf09303f18cac20431b31073796df214488840169921e93d5a4e4fb07fcea82e3a1268ee18223dfbce4e2dbea0da459a9556bf8f025671cd3c78b61ab2eec9b2cfdb25b3e92eca14f87c12415f25ba656aa94070fda98e32c3876c2be60d3f9a2940737947be35eb07851d763af3cdbb5bd24300924a36f9fdc11899615f61b1ee7f430d03231ebd938e0f261953e056fc73fc3a18fa43a59b459f165b12cd7cfc28fabadfaf919f81c72f585a47608182c75e22660eb0c6e35429cfe3576a764686b84d8367c6c7ba442926bfac18d1a361bc491e6f1d1da80702f89b095993225e2bf4d0175db1a83e29be6f2422a6108e5f6233e47627412e1bd318da147ac47795282d7ee6c8b5ce3f1e0f01026dde2c64f62e9ccf87c56c4abc660ace5907cb8fcdfb66917fb2451761239d4fb718c435abbb5f2cc7dfe5b3f06a28fb937500bda236c456ee8c72239d3c6c76f208cbfc3674abe80a682cf4365a1ed0f2a375e20c939d130c63090ef3842e128504b12bcd03af94a592d8b744ab6296cd43a42060ac5c477f1bb82f739046b8d5f8caa60dcaaa86df6f7f6e25eecd3fb2f3ca5734439108d4b78b38fab99eabcb14621010c09757adc50dd16c299800deccf74cea8c0d194d957c1d56a167d6b76e2d9410b4a6620a003aefd9cd6193c5b87207d2b78055732214103064ca39cc102c089a804ceea623ef61cc3e4fd78dbf8941ccb89faf5ede2e3eaa1496b527b496a8113838287f632946778f5df6e67f06596a2b0884e92aae00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013a75b6e700d83bcd30f356955ef0713b7c60d81d635449a4badf798817e4c8931efe0c36036014c5e15c6b3ebafc26063e5c90054f32eaee0122d5790d29bb7007ff21bbbafb4d84e00ac3cba6e041c253380405456e5d0bf6704d521e01604a396433c441964947a5b53538276e5aa452f91cdc72a6671cb86ea0a8b1af9e461963143f546c0f422f4784fc7c656ac1f4c1442a9c50875b1ada968a5dbd906b269cebc0ab93f0bdd0b87b03839a953e2d8554d16cfc71c07e529a62a2426f963eef653ca61c4c4aec6598ee6dfb15c9a57fbbd90445ababed17bfc6d4b3d21601109ac359e3b3b5139a67119204ea367cc6dd2305074d6fac1571262b4c2deb3aacfa2f3e8d7d769dfbfca825e76cefb264474cf02875ed3cc1fb2e27831a6a055305d0c172828962040357da1893106fe251af1924832e5c6b35bed87ce5972560e2ec38c3735115ebef48bd8520adf2db00908b966933cb152432c58f840e1a9f1d13c73c8caeea1410b7427adf522f6b986b7db68fe7ce180cba3a707bf31963143f546c0f422f4784fc7c656ac1f4c1442a9c50875b1ada968a5dbd906b269cebc0ab93f0bdd0b87b03839a953e2d8554d16cfc71c07e529a62a2426f963eef653ca61c4c4aec6598ee6dfb15c9a57fbbd90445ababed17bfc6d4b3d21601109ac359e3b3b5139a67119204ea367cc6dd2305074d6fac1571262b4c2deb3aacfa2f3e8d7d769dfbfca825e76cefb264474cf02875ed3cc1fb2e27831a6a055305d0c172828962040357da1893106fe251af1924832e5c6b35bed87ce5972560e2ec38c3735115ebef48bd8520adf2db00908b966933cb152432c58f840e1a9f1d13c73c8caeea1410b7427adf522f6b986b7db68fe7ce180cba3a707bf334b842841cedb97b5483ac511c81d71d3affc77e3c75b7668ff28be66ea98da034dd4553b43de8fac5f68c2fe778c976cbc868f8eaad945ae8b4e020acb8248d3c02bc9e588ca02e564444840938db89f144d512832678f9dc87fb94d9a591f318aa1044bb693ae37a26e2fa3bd0bc0d23a87dcc0ae2533d925724bc508835722dc603108bce34c40ff733cac54296d9dd3220626c3ecf094220db4912e4cd7034124d89e886b3685c0abab4d811524dfa561a0b9bb7c0b1de2951a739b296271ee90c8ae9c69e2b70674c218703f6f2065f40f80bdced46efce7db166ac33f30111950151fa7564d8e8b7e258acaf8e3ec62061a3f9d8093785f51843bf586f082e3efdb8e54f8b014f208801020a4946d8c5b617034cb8e57cba8ae8ae74580754c7a477155ddb97714b4aaeea63ccaeaa989aa15e611f08c98ed527e7dafd17786641f50b081a1d09c956f3ef1e3b346027e5643873cfc8d6c6210ec6517a309932eb88e18dd3c3458b0ff7c3dc825c41db90cdd4a1ac79313772a8345dc21ac21abbe91c79d7fb163522e14bf87ca8ad6fd635dd73f2c8a57f36d0b6526b39b68c689625e392cba45e26bcf796f63cfaee620b0267886873265876bba3e90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001191fd525a53a31ff2ebc5ac4e72548302dde57df918e0c5c127fd796286e84421a7517c7884fc45521d29394b231a4f42a121fdcd6f6c7ecfd4a6c16a0a9dbc623a25485b69496fc2d2c5a6f46d251ba6602002c4a9a515d681aa61513ed4b160478e0e342156e1718286310a7ca98954ba39f2318b72e8a6cc47b0131c9f8343bbb8144d1f3f33c6d2d55c2595efb92a12475950f44e843d5930d7461f3eb3e04447ebb2e0c0cc392d2aa3da6a1046d81222366fa0810d7c39a23789e0c14c32aa9865819c3c02e21e2accbbedae9dc9c9be7f92724a4e4c72a7f91e9c39832155679a7e63c3fd1de1d53344125162385aab102e2285436d202b15b163c67cf154f9fb880d2c0e6a96d5ffaba46914ea837bce9a7d04d25184ceb1290d1f8f72ab060477f2d3f195692a00545b96eb17a0edc12617cabf680e045da6f2e070a2a8e1e9a841dc4814f22dfe5a360d68926d017943dc4889de053666fd419dcd21571e1657be23b7eb0dd201a5c9f2976fb768167cb88707db8d9ca7d2be6232f3bbb8144d1f3f33c6d2d55c2595efb92a12475950f44e843d5930d7461f3eb3e04447ebb2e0c0cc392d2aa3da6a1046d81222366fa0810d7c39a23789e0c14c32aa9865819c3c02e21e2accbbedae9dc9c9be7f92724a4e4c72a7f91e9c39832155679a7e63c3fd1de1d53344125162385aab102e2285436d202b15b163c67cf154f9fb880d2c0e6a96d5ffaba46914ea837bce9a7d04d25184ceb1290d1f8f72ab060477f2d3f195692a00545b96eb17a0edc12617cabf680e045da6f2e070a2a8e1e9a841dc4814f22dfe5a360d68926d017943dc4889de053666fd419dcd21571e1657be23b7eb0dd201a5c9f2976fb768167cb88707db8d9ca7d2be6232f288c08e7c49b38a277195ff155e5bd3a57be57c2100493cd9902acfb5fbdca731b9b5d7714bfdefde051952195dfb867f054e8aa6dc82668860dc44cd3efa13e145ab0bfe1474414e5fd8ed92aaf47728a6cce394340738f5664337b08eb544f39985f7f4292203ac12c8c92f0e6d329acd66f7f33712624e4ed516ddd501d1c13fd3e388871b7b3e9415a1034e515149a1083b4a9c3f7449075c42046c91eba3042f7e196506d23ef9490187355684380eecc780c7d78d060a3a1dde376875e33074f428aec6392e033d84f44e471657be6e00f2f7915afa956cdbe9c6339a11f4e4955d05e81d135a7c5dc6e4e5687657e141bbf88707e7ded272385e1c5de1cc53e50a62c2e976ad1eb543197abe50cba5bc66f0956faf9ba4382817ca720240304befa1f8c0fc545a48238e3fbb156e33cbfb1ea0492f2e8c527a4c27de42b4504e3ab7f3827b2d8da163d1f70ddd1ba03ffdc5796cbbe2f245a4f4d5e1f18114c0af35c25dbedfc2f841f67a146ab687c182ece8aa3085098248758bdf234f23c8c7454fc1860f19cace950cefe0cfb374e6549ba2027c3270cd1cfa22a1cfe71901c7edc6fd2070e161037599a8fb887790452d9e05320b4c52294fbc100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013ba25f754ad88fbc786a6d769a1ab20b2ead3fcebaa74ff81f4177bc5fd71e94245a907e31a77fa75b14b2cc4aa9d93184faf78dcee1bdaf7122717ae7624202314824422291c9b9d65d60d0d5f6c2143df7bf73b5a2433e55caf964bb0c4ec400a2820f8b932d9afc3b66d0fa3f35bf9eebbc592973b82e23bdcc318f5e66f006cdcb2bc891bc8e7dc2721c141e22aebd1cc68bee2eb0d440d969f2d240b1df393234d4376e4371823d8de3ebe1dd516529d2701b1e48475853c6fa2dbf4e222204f7daead8aec874cc3a8c6496ad69b18fe0bba6e97425443f11be1b43795b1dfb0825152751378b33c5739b69529670b6b840626384f654ee1f2ee4bc86a62a18d746963b69ea47fd24bdf6f16310334231b22ff5528322e0f6dc88515ec515e728b969c49615b802db42090e9cefef046749d957a698764c3a1077aea13c127c3460ef29119367f1b7b5d2b6ef5099772d86d3e3b13ce2dd3f87a996d9d62d83cb9f10d6ee6c980e484a2d4910af88cf6b75356947deb64ff1655669262b06cdcb2bc891bc8e7dc2721c141e22aebd1cc68bee2eb0d440d969f2d240b1df393234d4376e4371823d8de3ebe1dd516529d2701b1e48475853c6fa2dbf4e222204f7daead8aec874cc3a8c6496ad69b18fe0bba6e97425443f11be1b43795b1dfb0825152751378b33c5739b69529670b6b840626384f654ee1f2ee4bc86a62a18d746963b69ea47fd24bdf6f16310334231b22ff5528322e0f6dc88515ec515e728b969c49615b802db42090e9cefef046749d957a698764c3a1077aea13c127c3460ef29119367f1b7b5d2b6ef5099772d86d3e3b13ce2dd3f87a996d9d62d83cb9f10d6ee6c980e484a2d4910af88cf6b75356947deb64ff1655669262b2e84d25f06d3f18109ff8542916f308f34ad5a3826c7540f0baf8ba5e656dc9f23757004944dfb2e14d56440900c32175e390e0d87c7d012d7e0af0ffc6e7ac83deb023da089e1f4fa4a6333ec87200761624b04614fbb2b51a0702310e9119705dd87da7d5bcd91c3172948ba4bb1bf831695bfa31aba26026aa4716d6ad0df0b9b0fd66c0b2d7d21546473f44e377e02ad53a809de73a11e3f274aa95ad03c3e1324540cd0a0b243d883c7d490dc4d08c9429ecd0548ff53396504d93fd48c076932bd05ff36926450c437b5989fc7f864ff20b24924acc4828fa2f74b37241ef91ef8466deeb16dc361a8c9280f124eeb2bb8ec567e479de03df235f1c8dc00e70402278d0099e9fa00c7aded8435e585f2d36b8e7ac6295bbca3ffb4c58b1add87bbf2520ad6f8ccc9a7c0c156d4234e4bc975a8c1f6c03f976eb107e4133c43265bf4ed7e0bec8b76a3ef32108ce882bdd64413da82793e89ca15475bf12b093203d98ebb4440516fb8640fb97595c0cb2951a98f375ab376f12508efaa2a5dbb8518f390afecb9c54d84c5e65d02b41eec79e17d1d9923def9edaa3c402c121b312209f6bd502cca6a09e8d1b6ef1493da1c27ed8d780bac8bd98237cd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010ff324daac4f7366c80664f2d8b720b50c84884aa234fd58821a63373d8a461f0d25cd02148d1b67e860d0ed7b02e3d3885fd2de6ae94ca43d3e838b3e9a0685053ee71919771440f1a681b8224d52e89da695aeb69fe2afaeddef11cb4ace411e9f4402f4149c2ee004f215c0f40eddf97671df46be3694efe42c34a4cc51551a0c5110f2938a65d9acb749701ff358e6230b2fb183e128dd9a1498049990cb25f3aeef0d6c759a265348b68fe00ca73c238dcc57c917f2bb931c54fb666f36023d9554bce1b3fd405f946f309fc0bc3a2205f664f9739521a8051e16ffd3f53dc26aab431e4c02bfa06b90cf603f43e8249305a453858677852bcee9002c0c0b33eaa7b06883f241dde62bf31ec3ad22aa1dcff8df41e9a848199672ff23c934cc15584f977c0dbe2219d40ce13c52ff9c7b2c106db731f0e517568d00dc3838039546720a93bb49557edbbf99d261ad52950fdc5c499049687ff03efbb2ed07fc6ab98df56c44b6aa812440662d9e74f403ec2cf0af8b4fc4b0fcc1044d141a0c5110f2938a65d9acb749701ff358e6230b2fb183e128dd9a1498049990cb25f3aeef0d6c759a265348b68fe00ca73c238dcc57c917f2bb931c54fb666f36023d9554bce1b3fd405f946f309fc0bc3a2205f664f9739521a8051e16ffd3f53dc26aab431e4c02bfa06b90cf603f43e8249305a453858677852bcee9002c0c0b33eaa7b06883f241dde62bf31ec3ad22aa1dcff8df41e9a848199672ff23c934cc15584f977c0dbe2219d40ce13c52ff9c7b2c106db731f0e517568d00dc3838039546720a93bb49557edbbf99d261ad52950fdc5c499049687ff03efbb2ed07fc6ab98df56c44b6aa812440662d9e74f403ec2cf0af8b4fc4b0fcc1044d14385117c5c2a3e378cefc1a9644ac30b2575c45d18b5dbf42535daec6e3d905ff09c2663f182bb782f44bd828c1c15843eef1631836cdbde9d9da374ec7b6be9e1fa87d6b0d993e3c9a1422a538dd2eacbdf7743089b68789326f0b7bc1f2982d12de6db33131621a15e7c7b250760ba15a3a145ae7b5a8f5320b15e4f1b906db356bcf378df613176d12190ee844b73804a5268a1947c56996b545beb12ffe63137c3070180a5e5a5d7251a6d9dcee1df0fd0d1ee9fe89c209e4fa63c4ac69bb02b7096af95909d0a65940eb585f38428acbc67a60fb707a1050662c7b25ee261dcb283ae6997a81a070cc0a8a11dd230c4825751baf2e859b6cc284c279042c3ee6a58a97dd4264707d95a6d0edca15a76100bbdcb834ad8cc3079a26c7006437bda57c6e13a13b63a345aff28318a61175e1dc3ea9778f7b1fb6367006af1c2ed26f78dd02f11ae35fa904b3056f1361b509065d2b8a67bc4154b84bb6e58e1430eca796ac26e32ca825a35b89eb444bb4b780bf1cd08211969b478c2add8c26ad156d0dfef1d122f99052c253c2db6be7cbd662e708fc1ca5421658e29cd108e11dc9945785f97e81d5626a32f07db2da83dd0da38c8ec8c5bdb02049192d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000135976e411d72f967b8aceba596ad5300768fe02f747bdc07b40290fe9230c55e2b736471bc32858e81f42dd48d7677c53d9e59ae0c602719c3c49653273bfcf30fdbeb89ddd8aab99818f47500f75bd58109cce93af69c2631a5141123a8540424f40d0bd86ea80ac1a7f7d7b72a0102480af316f2caa0b59581b0e83e8379313395a5dd360e13de1d90628d3107ef8b4b55279b87bebf2e5cae67f17ea6ba930c6a5a22c9f1ec21e26f9d72cef81074d6f17160818e39ed3c7ec8fb8159456e01ec3d520e46635693d1ecc1f527adb7ef8f62198185d7796ab344037941a4db3e13c2adf1b99ca96c2e133e0ad8524832b736e287c721a22e79ece986be5b26099d329a475ff0b0e3199fc9c9c66497adccea7f879d355f158054115e4838473662cd65b8a00f4f1ce6603636399b687479ae7c81afc3bc83acdcdba1b7c7ba3011fd0364dfb3746f801ef0f0dff6f66500947da6120adb6b81a456d76919630fee02fc9b204c8b907fe10f0f200909bd46047e633aee402dab8c962896e69e3395a5dd360e13de1d90628d3107ef8b4b55279b87bebf2e5cae67f17ea6ba930c6a5a22c9f1ec21e26f9d72cef81074d6f17160818e39ed3c7ec8fb8159456e01ec3d520e46635693d1ecc1f527adb7ef8f62198185d7796ab344037941a4db3e13c2adf1b99ca96c2e133e0ad8524832b736e287c721a22e79ece986be5b26099d329a475ff0b0e3199fc9c9c66497adccea7f879d355f158054115e4838473662cd65b8a00f4f1ce6603636399b687479ae7c81afc3bc83acdcdba1b7c7ba3011fd0364dfb3746f801ef0f0dff6f66500947da6120adb6b81a456d76919630fee02fc9b204c8b907fe10f0f200909bd46047e633aee402dab8c962896e69e1fe7a2b2c9d10aa70952c1e9c3c2191869fc31e85a80caff1ee88719463a2a94256b0a4877659dc172b5a67d55cd1a4911f175219200a31d3ca1017faa9ed42e3b313b3a8dcb90293d41cbf6ffd70b1fdd0bda39fef20342f856b28243eef6120659f765fe09e7a1ca181535128d9015f6cfcbc44e18bf66553ab6fd4eba8e603fef3924d001a0fe26c34c78e244dbafa0c9cf70f368c3efa32366d24ca173481a5785b238bfc137a4d8cbf3c6d280c2a03277cd10ea15ee7efe5c1364fdaa0a134ce2d61ed28bb6297fd1b89e74cbd82bb1ff7ebf953ac8ae1be0c1d12bd8911d719a1fef41e6d12a894b8446084ab68e84896fb10c30fab5dd5a93de48eb1a205f471369bb4842850f8fe3e4b6e2f298720d4ca4413cf2e9ca3140015378031b54a78a28471c21e3b3df992b6696b54b8823209b11f3252a889c75e5fc86b0377f17094b5ceee0a823ab167ccf735112711ce61cbfbf79b0dc963693a42aac0019fb64d1f094b8599fe9ac04fc1fde7ac602dac014b1fd1da62072a1ebb5fe3dee9c7de627aaab7717761e61d6183ca9a830add64478b2c47c956bff79b8f823ef619dde7215cd631f3da50c16735b8510bf03366ebf704345f06850df76ae000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000139d7c2d9d368c594d5d0027794770b8a2b100bd39da03c61e898b65fe27bf6c7286877b207aa3a35b82a8412b0b92b7e55f9508563ac6e7eca55a9562f48cd3821e97cd068084943198f2ff6c6c9b74119e1d02a3867c8f787e7d376429af39c2f35e08c8c06ef1eac057611b5833d63676af471df49b339fb673be02b2dd9293e701a4ad15eb3c53bf941cb04926beff646ea7e65f8ca90454388157ff6a252018fe5b52ea14c3ac406be34fb6d94102bffae7da3542e8b53e9a8d780095daf3830837616d982da2bde48f716dc1baf46483087d8a81062f59ce4b77fd12b9607cf7c89e9267d25d421b708e923e450dbfe687430a4e8b8a3904c35802ed46b18f2914e723f8e42db576cd3724c8a6bd64e8eb716146d80675bb3e17f15d9ea270d6eb18dc071bd24a8932c8db375944bf80a44f3388b9b31d17d0b80ea26173cbcd6883b3dc74e48b520213b7eb41b0d42309765192a666b9d527a7b6d419103432977c4c238b1b74adfdec4814be515046864a433ceb52d8fde728492be703e701a4ad15eb3c53bf941cb04926beff646ea7e65f8ca90454388157ff6a252018fe5b52ea14c3ac406be34fb6d94102bffae7da3542e8b53e9a8d780095daf3830837616d982da2bde48f716dc1baf46483087d8a81062f59ce4b77fd12b9607cf7c89e9267d25d421b708e923e450dbfe687430a4e8b8a3904c35802ed46b18f2914e723f8e42db576cd3724c8a6bd64e8eb716146d80675bb3e17f15d9ea270d6eb18dc071bd24a8932c8db375944bf80a44f3388b9b31d17d0b80ea26173cbcd6883b3dc74e48b520213b7eb41b0d42309765192a666b9d527a7b6d419103432977c4c238b1b74adfdec4814be515046864a433ceb52d8fde728492be7014a4a91425c128c7b6f1eb9fc031fdaa27cea5ad9eefea1057322a881fd8341d19824d6691f843f5af37a153821e6183c5e6b44cacf23d2d78e66f4ea3d37d540b008c65b5959ec237655fd3f7c45b7f98d9f40d877432fc1d677997674b66d3190f7e9fc1b287f71d5c89b8b3fe8171d980e6a9f9049505e4d3387fb33663d030acd708d05d4fe947162207362a78b21b8e2b14ea20d8d4a17176908468814a32f6e78d1a41c8e97305ba96eaacca2b441c360f10c4fe493f1023b7ab440dab35830733ff4a3ccc2702a2b60a92a97f55113c7956529c09d421b1a7d22afd69376235b907fa3018a4fc07eaea1921a06aeb97b0a80e141576f8b1ff557bc67c3924d1721189ca06167ba0590da50b3adcd5653d8388b7853af2bd3ad789452a1731205f7b4f84592e9ad2ac36e6c6745c2a599234e9299f4e8be2ff4da994633358cdd5beda3f94bfba232085ccc92d1f8a1fa97175e494456719ef17a768191a99f95499ec0167b3dd4d78128ae54439d9da4763c3945d0ec3f99d650c6f4c0bf7dcb1c418a90c9eaddb72c0e9321f2eee16177f64c4a3317edf595db533e320e47ad1ec0c66a9e9288ebb05400f8f14d1f6e900493bce2906d7064e25fe4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012fe0e37faaa68292455ba8453f0fcd0f7c02ea57076349b1ba8fda4659e7ee0932e2581c4953d4467b96f386aa6e69e8805adc63a952657cceb6372b4c0be8900d95171230816ae75c3d4af3746085fbb19f84605df8d747a9f2b9e6db85ea473451c9111408ad332c1584a7808a32696e0c553f3eddfb9c9c64fb0bf7e9ef241109ad4c5183f69681888cf1ac9c73233ae4e3bd5ca9ad8e34b81c1a117946272ef652b3ae7c09697e77730e53638cdce761b53eaca34b8d647514d2ee86b9da1530627d9793d0f087aac0b85f0e3fb00431d9b6c6036aab6e6b5b95575e5ec22acf9d82686c2f0f78553f47a0f1c0501e14bf4543498e702ac1d557a8a1a13f29f1ec73f5e314b2a655c399db473e6ff2b2a795d4c41c3d8eeb98fdb4d7d9c9160e138c0a1ceb4d59aa3c6624b8c1902f93f1663488dcde0a4197ef4b28263811b99e43cd6f677d3facd2014864382f56a97af90beda1e0ff126a2d883740ea2e4661bc32909882c0532dfeb79bc7d0cb9d1e02fd5f573a9a1ac6bf77c8bf171109ad4c5183f69681888cf1ac9c73233ae4e3bd5ca9ad8e34b81c1a117946272ef652b3ae7c09697e77730e53638cdce761b53eaca34b8d647514d2ee86b9da1530627d9793d0f087aac0b85f0e3fb00431d9b6c6036aab6e6b5b95575e5ec22acf9d82686c2f0f78553f47a0f1c0501e14bf4543498e702ac1d557a8a1a13f29f1ec73f5e314b2a655c399db473e6ff2b2a795d4c41c3d8eeb98fdb4d7d9c9160e138c0a1ceb4d59aa3c6624b8c1902f93f1663488dcde0a4197ef4b28263811b99e43cd6f677d3facd2014864382f56a97af90beda1e0ff126a2d883740ea2e4661bc32909882c0532dfeb79bc7d0cb9d1e02fd5f573a9a1ac6bf77c8bf1733f2b7ed47f7856ef53c59d1176dc340e16dbd4ffbeaa34b8f12f425e46753031de3d4bce06b42198eae94a6f1dfdc75dc24f6997510e65a24910425e021ae23047753774a51f6cfa571f34fe94a79e3ecb46f1877dd157c8ba2e5c75ff3b4ff0e336e2e5226abe8fbcdff736db4e3f738e8b6205468b8d67aa5c343273535b015ea52416e7a587aec0b33c1f23bf92f14f4cfcdb7542338aa763af82c0cfaf50fa1ae59fddb6b9adaf526975e39df5458f9932fa9e19ad1fa451d7ab12745a41c23a9dd8057d4424e0aa40a65228e8ad90ea49260f18f97874f0461b4902bf82c0495ad8dee3910777e6ff0726b913a16209edefb4df9e6d4040a1e2c1ff6162c160ccdcc3eccbd04f689f695d8c129f99a4962fcb2f2cff6efb9c305db3cd3115f91808ea4f0d3608dee915625e47cae0fe746151e4ea622de1a4ec99bd0051552905690cfcfc984cb1e90e3bcc995106535da7ee5771176a716317c7958352508dd874cee153ed8dd03aedd20fd55c2ce6fa932b5ccacc5bb60761ae953250add71751236b3a5ab2c12dc6512d1442a976a95082255e9cdaeb8f4b836b9ed2eee419f3d7ce03e589c2ebe6647954bc31ee10efa8985d0bd778ed4d6a2001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010d933b368fd613460d8b71ee8ac1492cc7e1422b141fdb3ee5da92071cd2ae7d2b06563531667cce25d09267055b5c12e5e3ef2129ced9172591fba81a78277b37bcada8274ebbd1b0b22244a805d70770638f72e59f234df8c9d3a3fba7c02f2169f599caad475a1480b8f2fa55edb3c9ce109bac922fd44d85a3e246af20c1075037af39b74e0abe5e437cf5104bee3105b9117ff1c72a0872196798dbae2638afc850c648b1f541a1bc830aefb411f140dfea895b31f190bb1785672451db2491166c20948635b7d75170c9517ba6f51c9d577fb8e3d22a3a7f05fc4a66be1b6ee993df6b79ca4828ae8f36ae84592d29fba4899415496ef2b1e703b5994336d5701ca2e69f0c97349733ee976a428501e0bd6c0280e3a0ca1943ed7401b4092a8fe35d1960f368cb68cc116895bd9d44b83e9d4a7837f86317a9128bfe4d122b308f2e811b3ef406f403a8f5134c0feeffc2f6d8a003bf3dba9fa34408802dd4cf70d17ee4c10bf90bfc570aecb41257993912745917d9ef764d5cbbf781075037af39b74e0abe5e437cf5104bee3105b9117ff1c72a0872196798dbae2638afc850c648b1f541a1bc830aefb411f140dfea895b31f190bb1785672451db2491166c20948635b7d75170c9517ba6f51c9d577fb8e3d22a3a7f05fc4a66be1b6ee993df6b79ca4828ae8f36ae84592d29fba4899415496ef2b1e703b5994336d5701ca2e69f0c97349733ee976a428501e0bd6c0280e3a0ca1943ed7401b4092a8fe35d1960f368cb68cc116895bd9d44b83e9d4a7837f86317a9128bfe4d122b308f2e811b3ef406f403a8f5134c0feeffc2f6d8a003bf3dba9fa34408802dd4cf70d17ee4c10bf90bfc570aecb41257993912745917d9ef764d5cbbf7811cd0a90b42c983084844182d7385363419e94fdf2b6322ab2e82cf681a594ccb0df00364588ef0654354ea72e2ecf161f4f2e11d050216e20449a23d47aab44e314df233637f998b5a552b8f914300ed6ee15fd883bb213d306f54abaf7b1c24137a2ee667588a75e49c93ff4329efc9673d6c789bd7b35d983958365be075e70dea12feae9bf2cc0caabb74d3712f66d993397fce385000cfbae9053c5aa58c254a3a75017bbe66ec2aadcf729433413e6fd590f8afa3f4dbb88c5ff99a6efa13104195c18c16b0d8332faca78f930df87f8098933770eb6f108c2b9877f7453c891223092cfcc77e19d3212858f6d149199cfb833b5c6995b937627b617b9c0d9a1a493d334657c460f119c632933d3cb740b5c14195e9f2daca072ef4489d163028c4262085f05d78ac745c1bd7c9f6f64c1825151810c2b90fc7461f514a06433bcf4190dc210695235dc1facb2d9c9339bd654d4f05917b86aaa8ac8454335fea82974fc6f0de996da42328ef7383759f6537ea77e3bfcfba60a83e142e1298c4f7731bfe3f64f35d1b0540639bcf7ad25869f9e98a9b553d38789505df049fa38259a2f8e7f59f0009fe4812982b9ddcdd5225973490251353743274d900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013ecd3d5c960f2952dbbb295e9cb8762e1af8eaacf7834ed92393d89bd9a1dd05046722078d3a19a50cadf5e30bbe119a7c166a1f3fd6059b4d242ca2fa2f13ed1345632e673294bed588ea86522495971e044c6ec64fdd686483df5b399943823ec7d148053a735d0a6f6e9c7518293e1bd3bb048d9c6e0fe13da6bdfdfcd7c110716c8f87ff81bdc1870ee0f0abd655e5836e82187eba5a3f0801cc7a6905e32f8e937078007e423e78f11f0f5429aa3cc32a79f0ce3ec15a252f208596fa1e12371ecda7fd88b4c7a34a64b35b2fad594a8f8e712caaa7a1fad811640d1d6e2dc8e1325802774b385cb59b4ca4d052c8fc096d98204e73f73258db9bf2e2931b139a0447f3ab87e63073f780c7ee629c2e34cc2c925c2a90b90769f441932524ec65fbb80c547819cf8c087f38119d8618642fdcba9cf1087429830bbe6cdc0762021567c259a77ef243d583e7a7ecc859d604cc41da9da142c337c547dfb7389dfdea983da658810dbc2a7c18581359ecc2f73d0b1e7df7ea6db53ab8204a10716c8f87ff81bdc1870ee0f0abd655e5836e82187eba5a3f0801cc7a6905e32f8e937078007e423e78f11f0f5429aa3cc32a79f0ce3ec15a252f208596fa1e12371ecda7fd88b4c7a34a64b35b2fad594a8f8e712caaa7a1fad811640d1d6e2dc8e1325802774b385cb59b4ca4d052c8fc096d98204e73f73258db9bf2e2931b139a0447f3ab87e63073f780c7ee629c2e34cc2c925c2a90b90769f441932524ec65fbb80c547819cf8c087f38119d8618642fdcba9cf1087429830bbe6cdc0762021567c259a77ef243d583e7a7ecc859d604cc41da9da142c337c547dfb7389dfdea983da658810dbc2a7c18581359ecc2f73d0b1e7df7ea6db53ab8204a09da084b117a2cc2b3629ea9f160d3d402bd6cbea00cc724e55340aa980254cd31ccf560f9fda641644ff17f6defbd415abab2123099a304004d51226100cade269e3b8db2feb819d1b8ebfa6836d8c4e0cfe919ba1f9c653f43afc1c3a6ccb50b47459401e9b58f0d2ca757f0b47f7c96a346e27cabd0420a862b16ef4ca9623db0a676a925fbee07da8aec55ccec0e7bc31dfcf5d131b545b27c239ceda2f003746f4c732766f0aeb31c42b8e20786f4b8bc4b90df167c0c1d068d4c4ea4ba24b4459dcb3bf57ecaab9e344cd9840957583940bcb98d1a06a87753ca78dd0f398083291da8909a63c1f7a398a0375a72668f9747d8ff78341b19882ded12e0112471c915805303b4e3b1c588ddb79192675f7c117e6fe258288b5dd6afe2b11584af9c7dc403190d9c54135a3a899da6c7064a43a819a9315c84095b4a094f31a6b5e79ac62fba12a1c1166433e3fd9dc14211a7c888cbffc2b53779277aaa0c446abc089a003007ac9cb89fb4b108d361b8850cbaf3672da9d3fb25732a6e24067c94a6426b15b9ecbf58c29c1ce832c8e032b03990e43921248d4e26904022026267bf157cbb6b9aa8b994a68357c72184f268449af92dee0ef15b64d0be0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001196d310799389b5f013c0af2a16c9cd07f91e62153413f270d0bbb9699ca647834cf2bd128035c95c729ed13ad3dcf62d37a9aa588fc5535565bcc11c9f662671c0cb8c8684ca8419d60a7d69ef56eea36a0e8a4c804be29e294f804f23fb49433a388bb6a261b53219a7381ad27c72be89a1cdd870d0ebb51184265a82d75b9333cc7f239e90d1e250d652ea9f7cc12e697f5c2ca7e415f0989cd766d6487350cc3380dc616f2e1daf29ad1560833ed3baea3393eceb7bc8fa36376929b78cc002fe7bb218d4196b942f9e951d6fc5df7dd68ddcf43626ccafc3f9c22f6a4053fd01844de72be6946bd0616ae2903a22a69301e3a0996aece30f150dd095bfc00ef86a7a7c247f19e4ee18e9932edd5d7530c550c50ec1ff6ed3e0caed134193f107958583db80e61b11e7166cd122a4af38ca6fcfc0cfba23ff2e0512ecbe804ada14646cb67b8178a67c8fdfea52d349f3da93d949c9fd2a2363f6a16047d3b525eb9b9349847e875983702015ad2eda75b52cbb85c7bc68afaad95e9fb84333cc7f239e90d1e250d652ea9f7cc12e697f5c2ca7e415f0989cd766d6487350cc3380dc616f2e1daf29ad1560833ed3baea3393eceb7bc8fa36376929b78cc002fe7bb218d4196b942f9e951d6fc5df7dd68ddcf43626ccafc3f9c22f6a4053fd01844de72be6946bd0616ae2903a22a69301e3a0996aece30f150dd095bfc00ef86a7a7c247f19e4ee18e9932edd5d7530c550c50ec1ff6ed3e0caed134193f107958583db80e61b11e7166cd122a4af38ca6fcfc0cfba23ff2e0512ecbe804ada14646cb67b8178a67c8fdfea52d349f3da93d949c9fd2a2363f6a16047d3b525eb9b9349847e875983702015ad2eda75b52cbb85c7bc68afaad95e9fb841ee8676bb84d33ba8a3d90ca0da222ec8d7258bf155e334cf6f4d29c10552d010b6bb65df6914c962328b7b71c91ace05f0f0ada5661781c2f6aea56dee0ef4d380000000000000000000000000000001dfdc5dc882359f826078acf60000001380000000000000000000000000000001dfdc5dc882359f826078acf600000010b0dda7aab625e197ac62c2c9323d9a63a3fb003dd0c3347c86bef4dea6798963932b894c9fdd7019a4f4658fa94b1a630a118415bc95d1ce3236505a96c0e6804f22585549da1e68539d3d36cdc2659ce51f63b25470aff1ddf5ced5598676b16cd476b360228fe65b0b9a7056b4e59fa3726f9afd6da459c5518229693f19a3eb5a9d34a538dd25581976ce7d7bf79b8cf14bf922b8d6d2f45e8a93fa8246a10d181f069c10407806a09de46af1387fb87d486cb5be383996b8aed9b506d832512457754130613f984a3f8d34995d70e7da448dc79ef50e39ecb2869eda95e31e782457c1d49e40fccbce8a5fa32169993850e39663f4f947f7db80e527b923eec7aae67991d57854923065d7b4773bd5e5a31dc97b62e0ca3d77ce3b3e1f520f79e6d0beccd840ac3093c92947c6ad8688809b637586dfe0775fec946e05600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013db8ac82fa9892d0d4901345124af2d8d809b2152856a09de8f9371a242b8d5a1746f2aae98d322f2640cd03cc3cc43423e720bf7d734cdc6b53102eae372c7b2a608fd6fa2e6eb294b1af324e761835fed3da923d70ad1fafc1b1f511d42bbf1d31d81dff352acc30d30123f83a9b5e9d62eec17ce1695f0648749613217c4e00000000000000f0015ca8f7fbdfb3d6eebb14a440dd4473ca2b4ffa871fde69e2b39ef49c2182b30d2e3a75bfb78f3d782c00ab2dce01dfad571c8aa55431d376ac755fe8dc2da60701a3e76dcf449eaa301d32afd0f6b510687d445cd65b1d136294dc2f37ef9c0aee02eaf9cfa3d191110998422206879b55e62602ce7c1d71e03cc49e5cdd6f13ed6f0df60d9011112190a2e9d76f4132751ab6161e7e0f361110aafd2f8d933b244cccefc4d643d8a3c1d2fbc45012297a00f12c345c196507e7f50f8eec0a32fad851d2aa1f1cd19725b719b3fa7c3e107fca9288e2d2d3e217fd4706b4cc0a6230497e0e682778302a07e0d5d01f144ededfcf7457a2565720c1823dc36c32458f174084377a365292901bf33dea752a9272a07d384f3f72ca3182079f103362a25cd5aa3a8ab4f0c1ab9892855e5c2165225dba43ae03b7a8cae3cc68b21941ac87d7bdedf58cbd9a0823a2b341341f33bd96c0d2a4681efaf6a06b407d35d00f530e14785f5d07b86dc1f90c1227cfe7e9ab92078432f9fda96c533920261f73e7eec7266078800eae69089e0d43e09950501c3f88f808df0fd5bcdf0d38ab9d7428d793709ffd93ae69413ca68ae99c1d05df527125359b33834130eb0aee02eaf9cfa3d191110998422206879b55e62602ce7c1d71e03cc49e5cdd6f0701a3e76dcf449eaa301d32afd0f6b510687d445cd65b1d136294dc2f37ef9c13ed6f0df60d9011112190a2e9d76f4132751ab6161e7e0f361110aafd2f8d933b244cccefc4d643d8a3c1d2fbc45012297a00f12c345c196507e7f50f8eec0a1032366bcb30db0b38a377393bad32d72fa38b1ff6973b477737ea8426487c640a47ba92fe96890129ad3e230cca733f76ac1ee8fcc6115cbbe7af837e7ca8642e1141f0f2cd3cdf0a57ad8500885840a9f9437dc6b987da8ad826fc56268cbd1a0ecfa8af9f9e4015ec291121aed343a3ac4a865515b3f811637cdf2b9243db10bf01b496492de6cc54da9d74a5e60497ac4a9655bb973b61ac07b72b1ca3213e52ba264f89386e1d7077d870f5d94ec442d110ec9742ed396cf0e8e1a1d67c0a47ba92fe96890129ad3e230cca733f76ac1ee8fcc6115cbbe7af837e7ca8641032366bcb30db0b38a377393bad32d72fa38b1ff6973b477737ea8426487c642e1141f0f2cd3cdf0a57ad8500885840a9f9437dc6b987da8ad826fc56268cbd1a0ecfa8af9f9e4015ec291121aed343a3ac4a865515b3f811637cdf2b9243db10bf01b496492de6cc54da9d74a5e60497ac4a9655bb973b61ac07b72b1ca3213e52ba264f89386e1d7077d870f5d94ec442d110ec9742ed396cf0e8e1a1d67c07d7549fae0d2ff12f9bef9037357c7a627ede63c9018900ddb4be229984d523291e848ffcc66d9b7494d8e983c6ecf65af970893c7044149e1109ddd533167a34953e49e45a4e17ad7063ade57f82df7425d76d6bbef006f074534d382b9cc815956c557cf199e89e31a76bd3332e1e0924f8acd9a3a8f810ac2e4e8b2ed31b1d3e4eec9ba7e1b314ae06f6eebc809f1780c4a94298c85cd1e24d3365965a7c31d36cee4a2a84a1d5174b7ef6df3eb4446e56fdffba11cbc936ab6ca7281f2122c3bf5e44c3f94017b09c7d0acb1fbeb989be0564d4c90089ab272c32fb3ad42e4df062a6002740e4cffa9fa8e83392ce63827687031b9c3b68b3515f803a51297aa17500f63bd2775d60698e65543f3deb2137d14839a5adc6726c63d5b4cd335bbbfb197cef2faa6bb7f062ebd943e74705cfad6146c920f11f6bf57906df2577f45016a2c0de24389a9d45d558df6d6c62b089dce2bbfb4c7674ce5faad82999c78acf2fa576c58cb7d89fc66673ee82b8f6b875f76c9fcc822b3e5ecec5015867502c7cf5aa0c628068b545894eda28a91519debfa02898dddc13e9fabc2b84a7eb1e88abc53fc378fb0feea245efb420eb47541a1ea789ed0d827fb67e36304a15a688ee4c0e73ddbd6acae52112546ddda37bccff0fd1c6495cd15dc53797458ab159a99928ddc32cad6e603a5657d1b3f862adb0a5a4d12f3011ef5a08d0359ccd981d88352c7dd700b7bb37dac1a762fdda882bbfac571fafe3acbc0641863e183a48ccb498d49ee4e4041b5ee6db483b2b58e1423f70935cdacce0165395cf108681af4bfde69cde283af785bc11ee987a101a6d9e83f3a11911021451f179867c6abb22b5be61b32a8e2cd9b6c1849faf00f208d7382dc4d0a1ab39fffd9e740c5f7bd7ecc8d64ecc8e0ef7abc100d41ad45a91e4fbb84e9a56372035be1cc92f9635effa81de365d1a6d8a5301b7f4dac67f12937f0e4be110213694e7435b183d4c220d6b759289a74ff29c8381bbee9abe93b3fbe8de2af0ed187cd4978aba2908c7b7e700531218036952982586643f6a0764fcb72e9388b01a3afd41d86d2084a86d58158e6af0b34bec0174be75e504613705551ca90823193198fd5182f281d111d88d478b34f90b0d5d14b2493c29a25b3f4e73437205281e089150c5e1268fedf4a8db6671bd3f955fef43fba4b3b24f1fc869fbfbf301b05259115f044d7b132d7b0ed602bc03d0127afdfe183caf8fca6e76e45e8e370bef09d395064aa83d38cf1bc98ca451d68c8027962ad488d736f422afdf6b1805ccd1123d600a418819a6c9d232af0a188f271abcaf541241c1abea0e9a322fc2ced33c660132b5631050ae0b7da33b9e223d87ebfad376eac4b7bc85b1f2264d0b122f934a418285b847c666b792a8b30c32d8fd56c2de8e876d9b379355164478f3a688282a2c03c4a996d11e4d091ccf06122fa89ac4582e6d79f03dc03eec71ffa4c40ca74a16512f936b30ec5f6ed5ff187c89be54c295d3c22c4abe31d36cee4a2a84a1d5174b7ef6df3eb4446e56fdffba11cbc936ab6ca7281f211d3e4eec9ba7e1b314ae06f6eebc809f1780c4a94298c85cd1e24d3365965a7c3b1933f18d49f5265d10a2fb0a9f41759e2bf091c5deb393a91385c8ba2fbf22114c1be8941aa083c3686527e14840a5e9a226ee0af6c989f9298f717bfe4031189eb8ab0e0e4d928dedcc929a9ec591c0996ebdd9ad99259a00e7d55d85de3c09d5ee772b9585cd356b7f367cd93ca7643a69bfea717dfb6e5546bf380b76541ec45889f66d6150273796464aeb0e680a998343d5c806f74356cb2a815bad9d304d6350ef650504c28dbc2f9ab0b0eb515598636c8ad33157c22d758b62cc00161ce1f78a52f3156c187ad782a677302222d81029106e5d2ae0c43fef2f04102108a6f8f7ce97d07de1254f07dd0e78a3a9d4c62fc88f28f77052dd61ee5de0156e20bf4595749abf660fca7a433db7422d4a9bfde7779a695147149251dce63150daf9b565a6fd7e87bb3b6255078f509f8a97715fb0083047aaeedbc8bc0a26477489a9f8dc923cbd6a4c44213d5086852ae008effd65eb907e00f6865d9728ca47513bd989c2ad07e829a17a8202d569f0c73962dcc2af887a9f16381c061874927a8664f48e4de254a17c749a0f2ad84155297c312968d16c59fbb6043e07f7766b6cfb5470b2013307daec92d04d2e37147c7ee981e9c8ccfa502d49cf2035be1cc92f9635effa81de365d1a6d8a5301b7f4dac67f12937f0e4be1102139fffd9e740c5f7bd7ecc8d64ecc8e0ef7abc100d41ad45a91e4fbb84e9a56373694e7435b183d4c220d6b759289a74ff29c8381bbee9abe93b3fbe8de2af0ed187cd4978aba2908c7b7e700531218036952982586643f6a0764fcb72e9388b02c2d7ff72bc5f4e44c9750e6d641460520ac3d281558f003a6021cb95e28ce252a700fc02406ab8cb46adfba914989e5f3a7a8e0ffae878ea7a7e84c76298e9819c439d524d8fcd92119039e86d0878d9cfff60bbef26f7d6322c520aa754a91069246dccdc101eeacd94255c0354395e9b892fa008875219f0f89f5acdd31c7201995971eb7760759a15659ed49ba5ff99cc4e328cbee69c513b288d3d5658e2ef82643c71af04d9023fc1bf85204f3625256c41986ebbed605461738e9140f275afbd70ec81c88b6946476517bfe3b061f79bc127bdc14160275eaf61ee30b3aa4b6e4ae6f75d626586f4548d203b90c7dfeca9fdd238d8b5d4f055438b1773e82a7d1896bd8e6fbeec2952a3f6af440d607006f6a37c459981f685552348500826d0f30924522f7db186971a9ca1efc014c1d37dcb5d92543a67152d247832ef82643c71af04d9023fc1bf85204f3625256c41986ebbed605461738e9140f201995971eb7760759a15659ed49ba5ff99cc4e328cbee69c513b288d3d5658e37aef99373a44f0ab0082319987bf811ca3eef205fef53621666821cf5d225a23398149ab4e05e33a3a08c3b4b3c8f46b18648f89ce3de39bf63d4f05415aa473b2ead535657aff2603f80acaf2bcbacb9199b8b33d94e4d2c6d8d845fea335f007a349374b3b7d23ae27b49758e703fae0e9ec2aa3f6fc282566d337bc9cdbf373e1e13594ca6213059dafd3845fe0cd357291a394ed6adb077a291351fb06c17d39dc78c85c033b96b7778ad55c1468897f28d0904037aeaa1560ed79ec9310b0fd4faf9570c19ed22a7ff1db934fb8f7c5ff384998dfffb6aefe08e1ff74e00c1aaabec1cee86386058bfe8ce9f2bfa202c5f566178836c54fe7e387cffeb1494ec3b2cde2993091ea3e9ed10865a7ab1720bdaf588126b48a5008b9925042b2d99e4371bc82727119042e9934db8560d8de6eb64242c6eac4e9647ca5a2c20559a1191f73485d1c62dd0c1eaefd4efb918ddbc701ffcfcb481f5472fce972ebc21c953db31cf17ff24a523b0cf7e6c3602c985e2ba2b9e6476aac58eab063cedf22e643cb13101b36fefc53abd151389a0ff6c5d3f051d395089a243b100284c6d995d8539a659edf1bb8c9b55b6263b0ffd1c2f7b40f28b0a20b84bb5d106122c5a18945e3426d8e981976be56bcfb28cb194260edd63b9e8079d8acfb836d4c2165a5feb3dd789eba8340b1891cf0976f40e7cac3e14fdfe53cc5ad418304d6350ef650504c28dbc2f9ab0b0eb515598636c8ad33157c22d758b62cc001ec45889f66d6150273796464aeb0e680a998343d5c806f74356cb2a815bad9d37b2a5bb30758d4fd4bc48770d8836eb39ad9d9dc095762c59b8b8a456ba86341325207a1509a26b0a0660cd88de70f5958609f60339e4d74bfc714cfc886e502616e0c1832c99945bee8e99a3c833da67929fe1b206a4b888fe744e040e24ec1f0ef915ec2f8d8b9de647a4b9fd23dffc451284f5128bc5ecc456c860ed6d1d187cd4978aba2908c7b7e700531218036952982586643f6a0764fcb72e9388b03694e7435b183d4c220d6b759289a74ff29c8381bbee9abe93b3fbe8de2af0ed32c9afa74e0ca20a879fb375d8232fde7f540af3e345d44f0fc35e34e7d7ff5c37182b830d75c192716fd3a071163043ba32c74c46802efe4ebb36f3d97b2ef62439f94609df7ae9c8fb2a6231d79171d21782d8ef08d986724e043dffb01eea111493bc10f57d32edfe3355ff379c89ab5e4069b8479f7cb963c6e8471390fb07cfed8bd0aa7beef069fafdb92aac6ed8753a2bb0da9a56f69c6cb8c17b432b0741ce4f1527ea65f95b57782c7112e46133487f882b46b60b4f5afa4b4336710b6380adaa3bc4354f0c6923cd32d37904f618cc4e38e43117a2b01add0b68a31124567269c1f4ad4ca9648a8b80b60eb50a59a68fbb2f9f6fdeaacce10b6f2b066fb02c3aedb7bb704bc565ac6689b1ead833e939ff1fe01c01a5d2dbfea77910cbd3cccf3d89f7312c84f714514b008b121a3610f37689c8d0cb41a1bf804f3e52ba264f89386e1d7077d870f5d94ec442d110ec9742ed396cf0e8e1a1d67c10bf01b496492de6cc54da9d74a5e60497ac4a9655bb973b61ac07b72b1ca3210b6380adaa3bc4354f0c6923cd32d37904f618cc4e38e43117a2b01add0b68a31124567269c1f4ad4ca9648a8b80b60eb50a59a68fbb2f9f6fdeaacce10b6f2b066fb02c3aedb7bb704bc565ac6689b1ead833e939ff1fe01c01a5d2dbfea77910cbd3cccf3d89f7312c84f714514b008b121a3610f37689c8d0cb41a1bf804f3e52ba264f89386e1d7077d870f5d94ec442d110ec9742ed396cf0e8e1a1d67c10bf01b496492de6cc54da9d74a5e60497ac4a9655bb973b61ac07b72b1ca3212d4b018a8fd75f9b23461097aa219c27de86e0e7c0859fe9d55e8aeb59e1b7ee2fd67492ce9136b16e2273fb5b4219ae9e1984e6282f816187c7c2262251d9da09d5ee772b9585cd356b7f367cd93ca7643a69bfea717dfb6e5546bf380b7654189eb8ab0e0e4d928dedcc929a9ec591c0996ebdd9ad99259a00e7d55d85de3c1ec45889f66d6150273796464aeb0e680a998343d5c806f74356cb2a815bad9d304d6350ef650504c28dbc2f9ab0b0eb515598636c8ad33157c22d758b62cc0030b3bf01cc632c011e75864828c03a63a73d82b41bd7d95fb207c6e8f094e3fd10ef79d6dcd5755f7eace13e90e4cee252a7cf20c0896d348123a349e593bf6932bde448aa413e53290d7505b12acb52b9952b8aa063bf514ee98c45fb74dfc90fc753d9e7e3b37c76e5939340730761070f228d51018b97fc9a27beaab35cec2999c78acf2fa576c58cb7d89fc66673ee82b8f6b875f76c9fcc822b3e5ecec52577f45016a2c0de24389a9d45d558df6d6c62b089dce2bbfb4c7674ce5faad83f4ac50815c43d7ac77322d652e63661801702aab3ef45c7b714f51be33f8a9f00d705c9ce25818cc99bac2faa78e365bc3831cf2b8b47c6f0e9c79f08ef94ba0e02732599268a0d5b48b114238f622dcfc84b49ff529f3125e4cfc0d6b244fa0a9a26b41876772c2885a4d8e2c758c260fabba5f8280b68c190532bbaaa1a7628ca47513bd989c2ad07e829a17a8202d569f0c73962dcc2af887a9f16381c0626477489a9f8dc923cbd6a4c44213d5086852ae008effd65eb907e00f6865d971ab94f7e29b834e9b9a6530a9345224b895821166fbaccc20f39bbd55c349c50122f3b1d5b492564b0c38e58159d71cae44d0e1593ecbfe742b0a68053e307ad01b05259115f044d7b132d7b0ed602bc03d0127afdfe183caf8fca6e76e45e8e281e089150c5e1268fedf4a8db6671bd3f955fef43fba4b3b24f1fc869fbfbf3370bef09d395064aa83d38cf1bc98ca451d68c8027962ad488d736f422afdf6b1805ccd1123d600a418819a6c9d232af0a188f271abcaf541241c1abea0e9a322fc2ced33c660132b5631050ae0b7da33b9e223d87ebfad376eac4b7bc85b1f2264d0b122f934a418285b847c666b792a8b30c32d8fd56c2de8e876d9b379355164478f3a688282a2c03c4a996d11e4d091ccf06122fa89ac4582e6d79f03dc03eec71ffa4c40ca74a16512f936b30ec5f6ed5ff187c89be54c295d3c22c4abe31d36cee4a2a84a1d5174b7ef6df3eb4446e56fdffba11cbc936ab6ca7281f211d3e4eec9ba7e1b314ae06f6eebc809f1780c4a94298c85cd1e24d3365965a7c3b1933f18d49f5265d10a2fb0a9f41759e2bf091c5deb393a91385c8ba2fbf22114c1be8941aa083c3686527e14840a5e9a226ee0af6c989f9298f717bfe4031189eb8ab0e0e4d928dedcc929a9ec591c0996ebdd9ad99259a00e7d55d85de3c09d5ee772b9585cd356b7f367cd93ca7643a69bfea717dfb6e5546bf380b76541ec45889f66d6150273796464aeb0e680a998343d5c806f74356cb2a815bad9d304d6350ef650504c28dbc2f9ab0b0eb515598636c8ad33157c22d758b62cc002a700fc02406ab8cb46adfba914989e5f3a7a8e0ffae878ea7a7e84c76298e982c2d7ff72bc5f4e44c9750e6d641460520ac3d281558f003a6021cb95e28ce2519c439d524d8fcd92119039e86d0878d9cfff60bbef26f7d6322c520aa754a91069246dccdc101eeacd94255c0354395e9b892fa008875219f0f89f5acdd31c7201995971eb7760759a15659ed49ba5ff99cc4e328cbee69c513b288d3d5658e2ef82643c71af04d9023fc1bf85204f3625256c41986ebbed605461738e9140f2eddab56bb59ad4a488d96b908163edb22b01f5a72d2e3ca909f58b815c2c3e93cff5b1ebe7ca237a8f3f192d48eca073bc4c7c0daac3ea7e6f6988ba51fe3e5223ab64b123d655170ab2766d2fb3364a27e5073f30b915f3472ccfb72a8fc150af6d7e674448026c3b7e6e9b3f34238b0847464ff2af39481a44f7bd8155103305edaa0bc489302a51ed5fe8c9cd4d16399ada3c3ed6b8c94f5963a06a03a2e1eb2e13a2989d35244a67c7758feea81f8556e037e656e9c06236266061e3f6f2d65240b11fa91fff95ba5b6e43f82b4043c3828b7e057527e6968f52b87310e318db6ab290ca6c13f2ea839ef8a407a41f77563d59a6fcebbd9f02f16a19c38139e5b6672f23a09745b7b2d266bd5f653e0b0462ecb68afe7886e4c5d0c85462c1dfbe351585ff302528977f4160de3431ee54b249573c3c555d6a6c3e7c9bc1880fba447fc9c953d962ffc2751c6808d35d31749d2022851fa6fd8fcd0381e3690c0369dd5c9bfac2f2279be49f8d2ceb9488ff880d800491e88c70fee417f0660a7efd782ddf3d2992b72548dc18b7b3df5c25e50e7718dd4381e52e6b7982a69cb07dc6c0e5825cafa5fbfb4490d61860b4b5e9bf00ecaa9e8ce8a0b9b5f182b1723602d2652e9312fdbb56aad7465248fca737d35af0a164ad59899797e11e1f16d3195fe622191935efc7524c6e0f589164bf4238a4b45fef42019cefd0741ce4f1527ea65f95b57782c7112e46133487f882b46b60b4f5afa4b43367107cfed8bd0aa7beef069fafdb92aac6ed8753a2bb0da9a56f69c6cb8c17b432b318db6ab290ca6c13f2ea839ef8a407a41f77563d59a6fcebbd9f02f16a19c382d65240b11fa91fff95ba5b6e43f82b4043c3828b7e057527e6968f52b87310e139e5b6672f23a09745b7b2d266bd5f653e0b0462ecb68afe7886e4c5d0c85462c1dfbe351585ff302528977f4160de3431ee54b249573c3c555d6a6c3e7c9bc1880fba447fc9c953d962ffc2751c6808d35d31749d2022851fa6fd8fcd0381e3690c0369dd5c9bfac2f2279be49f8d2ceb9488ff880d800491e88c70fee417f2c555c04f25c7c88ba4c42079204c5b03fe5273ce4c6b5ad2dd8083964a8659321f1a5f2f1099318e2de9d623c88a9d304bbfc59ad685f9c5537a363a3f82d3d2b2d99e4371bc82727119042e9934db8560d8de6eb64242c6eac4e9647ca5a2c1494ec3b2cde2993091ea3e9ed10865a7ab1720bdaf588126b48a5008b99250420559a1191f73485d1c62dd0c1eaefd4efb918ddbc701ffcfcb481f5472fce972ebc21c953db31cf17ff24a523b0cf7e6c3602c985e2ba2b9e6476aac58eab060189385a3cb23f80ff6e4173d28ddaf0de402d36f4dbba1be8f940b638e7aee0086eb6207b4f9bb90b4c2b417d17fb712003c6d1b37d2f4ffd73aca0ac75e29936d4c2165a5feb3dd789eba8340b1891cf0976f40e7cac3e14fdfe53cc5ad41806122c5a18945e3426d8e981976be56bcfb28cb194260edd63b9e8079d8acfb8304d6350ef650504c28dbc2f9ab0b0eb515598636c8ad33157c22d758b62cc001ec45889f66d6150273796464aeb0e680a998343d5c806f74356cb2a815bad9d0256aec07a045669964dc1d6b67f3c74aa2e3f4f416ac4d511c69fb3288fb08e27a35926d53dc93f0d634b73d6cda1c441e913f3d2573eb52ce7bde546babf4317f564427a4c0a0e3b85cbcb6d58dabef6383136ec659f178387d32af8a028af1d97d665d0272d4f7b3533038b59b0fe89f23882386276349ba7578e25f675301805ccd1123d600a418819a6c9d232af0a188f271abcaf541241c1abea0e9a32370bef09d395064aa83d38cf1bc98ca451d68c8027962ad488d736f422afdf6b2bda098ce7b34bf52fe51f2c86733ac045433f62e8697f37cdb41b63a7698b212565ad7b8abe4306e8a561ddfb2d135a633bcfba7aa2d883fee249727c3ef1be00826d0f30924522f7db186971a9ca1efc014c1d37dcb5d92543a67152d247833e82a7d1896bd8e6fbeec2952a3f6af440d607006f6a37c459981f68555234852ef82643c71af04d9023fc1bf85204f3625256c41986ebbed605461738e9140f201995971eb7760759a15659ed49ba5ff99cc4e328cbee69c513b288d3d5658e144350de61d4acc28317962e3b5c4b55ed15d0189dd137934b6ee33b3c1b90692f1fb369f39e8b33de619b348e1a30decd4a6970a0c265e5c6a9c4fdea4e176b069fcc007f82c1aceb9019cd604587ec83ebf8374b001a23cdf8eb83628463cb2af439f1d532c33f9eda663b6a7032eef93e3d568930368496cbc2e1100f47770641863e183a48ccb498d49ee4e4041b5ee6db483b2b58e1423f70935cdacce008d0359ccd981d88352c7dd700b7bb37dac1a762fdda882bbfac571fafe3acbc2a103c1c0d6a067c37c3652827cb92f31036fd2fa0e7b8d090f69b562b7c77b1282a2105846027d6e1771786a758232f90faee84a701e993f95d437f50a65da02b9ebf40c4e2fc8560c24309fa822566d33f0e71a5cf2e743438d1e47511c6643813f46b1ca9b887c5d7e1f2c3b29ee3ab6f2c5fec26ded4373e7940aeb130df17d39dc78c85c033b96b7778ad55c1468897f28d0904037aeaa1560ed79ec931373e1e13594ca6213059dafd3845fe0cd357291a394ed6adb077a291351fb06c00000000000000a0000000000000005b0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020047fcea24e2848e86d1875a116a7804e981e2d93506f62bd7f5fe8e4122d10f800000000000000010000000000000000000000000000002000a92b30ce6c574c8df94866550b7545970186d13c6aa105d8bea832707fbcdc000000000000000100000000000000010000000000000020a2108799ba60b14b4528e026d0f575f797028a9469cdfbc41cf7cb8c648a846a0000000000000001000000000000000000000000000000204ad6dc0cd0533f78182e33f1a845ac02537dc3fd9cd6a8afe705ed7185762a5c000000000000000100000000000000000000000000000020440141033be391d351cbd747235dd0dd8925385fcbdaf63ca3ce8096a77f70ba0000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000005b000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020d65923988748e851be6ffe76bfe18e5b63e7a8d75e27cb2dee5b04b48e61323d000000000000000100000000000000000000000000000020f1356cef5b3e8bbc1ed73abc6b758482cb3d9a88947b415be273ca177e19650a000000000000000100000000000000010000000000000020dd80cacd766c514bea4e75a998238e23cceb858decbd9583d9466348cafc2b4b000000000000000100000000000000000000000000000020241e42aeb3c798b84ad9a34ccc6b26a5fb12fe91536ea9394f0e34b50690f3390000000000000001000000000000000000000000000000204d271360d6ea5729d441a303230c4b3fd940e15129f6f043ffe200fe1412df3c000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000005b0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000005b00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020c86fcee50c797a5d96dd4164cf80c44850e5cecba2d6e8dcd427d30e734fe0d60000000000000001000000000000000000000000000000207f441a38e4324f085ee400b3b49251c3d2f126f609272c2e3eec57a548c8420d0000000000000001000000000000000100000000000000209f55b0d4ff746defcce8e220bf8a58f9e4506f61e04b70fe2556ece7b0d76fd1000000000000000100000000000000000000000000000020196600714e2413375e79dfb52d0da692a476ee202a5b16a99a81d9e03b5b4da30000000000000001000000000000000000000000000000204b2589cc642be6064ae59c9496cf16edb00687dfa69b285a43c510b78bfc57d30000000000000001000000000000000100000000000000204bf1e1669389897cdf60a4c21a8ebf7bc19a07905ce2001a19e2353ccbd0bc330000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb9000000000000005d0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000000000000000000200a3f2c9db01aee5013812dac02b44ddb3f8b9f4db6e3fd97555ff779c90826fd000000000000000100000000000000010000000000000020368d67564a09158dfb6de68dfb9eb87ba299687ff58fa2c7213d13474b130927000000000000000100000000000000000000000000000020f476b958e87db8a02656f8467c6e5e45d866f25792959994b010cfab414a683f0000000000000001000000000000000000000000000000204ad6dc0cd0533f78182e33f1a845ac02537dc3fd9cd6a8afe705ed7185762a5c000000000000000100000000000000000000000000000020440141033be391d351cbd747235dd0dd8925385fcbdaf63ca3ce8096a77f70ba0000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000005d000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000000000000000000002029e5eabd4f13f0d857063d1c90440a33e937b425dd060ee972960b18be6820c8000000000000000100000000000000010000000000000020ae367347ec635549b68bfb78721a6c7a1a6084fca918c06287dbc1b6afc3f9c20000000000000001000000000000000000000000000000200465cea58d937eb0fdb98fcaf6de41b5bc5a9ef8128bb64c6d5c79fe8b30bd02000000000000000100000000000000000000000000000020241e42aeb3c798b84ad9a34ccc6b26a5fb12fe91536ea9394f0e34b50690f3390000000000000001000000000000000000000000000000204d271360d6ea5729d441a303230c4b3fd940e15129f6f043ffe200fe1412df3c000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000005d0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000005d00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000000000000000000205822270472f2a26f8189d9a79a85d14380e4e32365d98810dde469b25f6c5fcf000000000000000100000000000000010000000000000020ffbf0c26e0bb6487527adbbb7430418f551be74dc521a103c0c228b9307ac930000000000000000100000000000000000000000000000020bfc3833208072c06854906543f4c49a3ddc86f212ff116bde59fa27acaae0ba0000000000000000100000000000000000000000000000020196600714e2413375e79dfb52d0da692a476ee202a5b16a99a81d9e03b5b4da30000000000000001000000000000000000000000000000204b2589cc642be6064ae59c9496cf16edb00687dfa69b285a43c510b78bfc57d30000000000000001000000000000000100000000000000204bf1e1669389897cdf60a4c21a8ebf7bc19a07905ce2001a19e2353ccbd0bc330000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb9000000000000007b0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000000000000000000203d4cadfb8073d99841f561dd132befa59faf1624bb814d7749294350bebf7fa9000000000000000100000000000000000000000000000020f7a03e6aab33c259b776a0a1068e9b29f69e476bfd7bd164913d1edd6dbe937e000000000000000100000000000000010000000000000020a0ff9b979dbd1cb58a689c4f7cb8c8e56e1dda716de815f8dce6e6624d7e57ac0000000000000001000000000000000000000000000000204d5c20971314a886143fcf4f31e5b0fe465897f95edb2ebb496a671eb51686a3000000000000000100000000000000000000000000000020484695c1718ea9babdf0da4a169839654a70d31dfb7bfa030bd34c4fd296f173000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000007b000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000000000000000000002015ffc12c94d34637f3daf59c45686dd7cabc61ce848b58f2e75d5bd35321b97d0000000000000001000000000000000000000000000000202dad7cb660b8d7478673d74df249c7bca96ad2a77a9e6df8cd53b3b04533f1c800000000000000010000000000000001000000000000002016a4ade761eb6230e27dd29c0ca0b6ca9e5ed431dfbc829f10335bc89c30fd1a0000000000000001000000000000000000000000000000209ef4b79cde573ddf1a1cfe0df94952533f934e8712306ff6e1df26da2304bf2d000000000000000100000000000000000000000000000020eed5635aa9fe26e55ac534a89c39cf891254e6457318ced7e38ad88fc125ecc7000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000007b0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000007b00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000000000000000000207175d2460f6f2e40180fefcf0494db9bc6ad735df022431d1de050a974fc30f000000000000000010000000000000000000000000000002079b1caa581c5d2688d2628b43e3067fd9121337852f19ee6997b9d92a843518f00000000000000010000000000000001000000000000002000259d57f7bce9389ee7e73f33e5b2ca1c650ce9e8dc63130f8749fbdcfdfb2d000000000000000100000000000000000000000000000020bcd18cc2e0a4ed036f070637e84e56eaa6c50f80555c3785ecb5cd923c93e4870000000000000001000000000000000000000000000000205f345c922e75b5ee09f6a30d4e99bc3797063459fe2e79c3075e31feffa4522f000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000520000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020f7e065a28ecbb695e25859e5fd51c7f03e3135fb68900cbf9a9b34c58431328e00000000000000010000000000000000000000000000002010f78593628c76ae17379f9e02ec099ae562b11af869e7416a6488bb0b1bb49b0000000000000001000000000000000100000000000000201d83882e46f5088affd079555b2c275d2386d81b8b37a98bfd2519fc364a4aa10000000000000001000000000000000100000000000000200bf7ab1c0d308f7966b26422ec6c126e5956a6ce55c01414a62362c696861137000000000000000100000000000000000000000000000020440141033be391d351cbd747235dd0dd8925385fcbdaf63ca3ce8096a77f70ba0000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000052000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020843095c441ed8a883c4a61402b3f969bba299dc1395cf98130c31b7a2d402e3e000000000000000100000000000000000000000000000020dbecea5d177004be6400dfd6354337a164a96b209b155cac9f94436b7d32e72b00000000000000010000000000000001000000000000002080791f87519ff3c06a911030e79b46f0075ebfa5b433792d826d53d2916e1fce000000000000000100000000000000010000000000000020a0b86bb2b9ed1d88c1716ee2897d7e5305051401751e458c39f027a27ad7553f0000000000000001000000000000000000000000000000204d271360d6ea5729d441a303230c4b3fd940e15129f6f043ffe200fe1412df3c000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000520000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000005200000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020d56441ec15dd8cb4e3cca83becde965c60763d974b7da7781b28e631f2d5e358000000000000000100000000000000000000000000000020591ff3beebb75fc99be3da6db333801c968dbfcebb0bace6ca9eef943b888aea0000000000000001000000000000000100000000000000203123b1b063eb4477af1095ffa8004b86436aa43d1437d489a673b4afeea9807a0000000000000001000000000000000100000000000000201739593b6adf1df20681bdb468e8cf329b9aaa69ac06a77967055637d4ed0b720000000000000001000000000000000000000000000000204b2589cc642be6064ae59c9496cf16edb00687dfa69b285a43c510b78bfc57d30000000000000001000000000000000100000000000000204bf1e1669389897cdf60a4c21a8ebf7bc19a07905ce2001a19e2353ccbd0bc330000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000120000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020dd731878aa783938962f50b06a017d61b761910fe7013c104be4cd051a7c23a900000000000000010000000000000000000000000000002090e94b9236820d03f62325b921ff73b3069ef95294bed57f9e6903a5f06dde580000000000000001000000000000000100000000000000202954bf45fe77defb69128714be17592fe6b385a27c1f56d18e1e183bcc1594ee000000000000000100000000000000010000000000000020e2acecbe8619d7478dee57fcb82511df4fa4f1bdb2d5253db0ff26c50b7344b300000000000000010000000000000000000000000000002067b848c6a8fd93922564ee17c6101e314bbd3846fcea2a0a759b6e14ee53062a000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000012000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000100000000000000203c5b35133c049a994fa08e376fdc7166117ab784c84a806c38cf0cc23635a7c8000000000000000100000000000000000000000000000020bc7f56ce6c6c34651e3eb1cd934cca80982251de322d2dc8ef472188db64ced2000000000000000100000000000000010000000000000020c570a41900e5df8ba34a98c813dcad69f97d3d94bb76ff8216e35356ca2cacfd00000000000000010000000000000001000000000000002022828921a6b0f0bee2649772e95581d881e7c8e59ac79244530985451478d83800000000000000010000000000000000000000000000002081a27a248db0076bc7a7f51b5ccf3cf5b9e1c7455e27068c417e64832913ff410000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000120000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000001200000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020bef2b4f2fc3726c2bfc0912c7b0053f648e8968f651d59c327fb282b5f6a7abb0000000000000001000000000000000000000000000000209f5fe62f2a856f23a9d3785a79b57aa782795ccc99e9e2e5db5a9e35fe7d0d87000000000000000100000000000000010000000000000020007a2897a91dac716a38ce55b9e88e544225dda467a77e6a984c7bbd5918d49800000000000000010000000000000001000000000000002016bdef74d3a4a3bf89aacb899b6f0c9002f0bb74b43dcea2dd6c6252a2ede355000000000000000100000000000000000000000000000020e31eb63203c4c86dcc10bca35f7905f868623039545d8b3017d8c39b9f6116d100000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e000000000000002e0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000203878f31f94c5c1a942ef37c0dee2a2862b6737d4fd31a77bb051334568784e810000000000000001000000000000000000000000000000209704413d8a707d33244faf00e0702f156ed165f379edaa132d13bb73341f1ad6000000000000000100000000000000000000000000000020d4c0df32ee86ae7b5161167dcef1b7eeb12a4a6dc9a1b6566aeeabe819adc61a0000000000000001000000000000000000000000000000201f4bfe7d2398692f0c7abdb85ed16895ef0857d4d738e32f167340e5542a22b20000000000000001000000000000000100000000000000205d77fe2ccf9c9f8603070bd03123cd3455d47968e542db3d55abf5cd35b03d050000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d000000000000002e000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020f89f5b3c95de5b964413e926569bbf56c879e8482061ee3b51ddc6a2772580ab000000000000000100000000000000000000000000000020085890d220c9891a29283984b66b1e3f0c2465e990f215083f62d7a8bb46e1d5000000000000000100000000000000000000000000000020a4e4ca5bbb50dfe8edcfb7963ea98588d32ac467780c2cade2a34fedc58db14d000000000000000100000000000000000000000000000020b6d1fb90220eb827e5a0d6cff1a17436b1d8a5cbf6a2bec68975b0b2c4d80d8a000000000000000100000000000000010000000000000020e7444cc161f3e7f01cf05762fb0fb97caf4bc92619aabc44b759df970816cdad0000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de000000000000002e0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000002e00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020611dbc6481ac1f5e469c2a11a2f23079f4487ee7efba88b0e9ca7ae96f562c3700000000000000010000000000000000000000000000002030fc221820f6c0a9fc466fdd84bfb9cb04e1a543c357588140f769ccfbc3c39c0000000000000001000000000000000000000000000000200496c2ffc33bfff4769087999dc54f9ee00a37d262f77c5425667f17d151a0a2000000000000000100000000000000000000000000000020f7c430e5be26ecc9ace2846a2dd9aac8ff25889109484b43997f6080ae01699500000000000000010000000000000001000000000000002080f4c94164dc4597576888e1e7dfeeb82efbc11ac8b5ecc2b2df1058b8fa2b0500000000000000010000000000000000000000000000002040fcfc6bb63dbae33d624e3777a816b50ebb7a75c3788096fb31802eed5badf20000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e000000000000006a0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703000000000000000700000000000000010000000000000001000000000000002002b1b7b579feecea1603adcefe60285831fc1ef6f92fb6df3d3907a02aa5cf36000000000000000100000000000000000000000000000020f4fa51ef0775ff149667acbb46117fb98f6af6f007ff719bcb42b30611e7d5570000000000000001000000000000000100000000000000204bb79970c2fb9ceeb2b3b825d98db63307bfbd367bb0eb605f16caa342d20f42000000000000000100000000000000000000000000000020c897f9cc214e1d82ae3fa75be40cec804be624b41c23e139bfad78e7e7d5fc3b000000000000000100000000000000010000000000000020cca38bcaaeed86d1c037ddb148bba22f6b95749f7f352486d9b2248d154972a4000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000006a000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020729123ca4d9a8d922dabefb9899d58e28f1fb034a770a85cb4b91a1ddc8bcb4a000000000000000100000000000000000000000000000020205cec1b82d9f0d6d449b3229673690e31ff7f138430659da23c7dcf8ba0980b0000000000000001000000000000000100000000000000203d3437767a18c76c6b3ce58e0eaba9f957fb31192a19e2e3adf0c19d5ac4cda30000000000000001000000000000000000000000000000207fadb498e4408564c5da8cdaf1ddd40a060ac7be00e86d18a70cff218a853e5400000000000000010000000000000001000000000000002015dc39279a52d41ddbcaf227c199cbd51b1f711d661184752155a6495562235a000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000006a0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000006a00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000100000000000000208c07a914068e90b61173a77e1b914b00970d53c1e5306d27e793c3698bc15a4e0000000000000001000000000000000000000000000000204810a4d0a61207ded71aeb4fe4fa059d9e3000d4407f432e9ee999ff895079d1000000000000000100000000000000010000000000000020bd214e04a0d15a2b5ac00a7ad42151c6d124291cbcf919f2a8b5311fd49008470000000000000001000000000000000000000000000000207a18ca5e193aa28605c4cd2e9b219710808aed7388ffc2616a116a897b71ab510000000000000001000000000000000100000000000000205c412ce971308b3c81ea6b705658f52dec02ecb3332ae0a2ccd740263bcc7a7b000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000010000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020727653dd0ba5c260f42127d3913985b281e9ea7b231a6d3e7a283c39d193ce9b0000000000000001000000000000000100000000000000206555e950641c26f0150d14efc11a572e64fb0ffa9ee6a450a552495c26807510000000000000000100000000000000010000000000000020fead840665604a5a49e398fb78efac6fe1eb6f9b9330acae96d1f30f5ec2a112000000000000000100000000000000010000000000000020ca3dc5f22e4573bfae9e4282c195d191a87ba277e564f158302218ee7bcec57300000000000000010000000000000001000000000000002056e5e7ca74faee51ae45c7001256fed2e7e080dcb95a859867c22dcb1608665f000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000001000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000000000000000000002071c1a3db6bf2f3fbb6225379025b7c2af6fef00e97870cda238d7a252164edfe00000000000000010000000000000001000000000000002097030da7360a458af1b5de0ad0e77770fedada0480d022f05f634898465c9954000000000000000100000000000000010000000000000020442b7310681f9144ce05c5c0335794243b1628a10269ea3f920a1d69cf0170b4000000000000000100000000000000010000000000000020ea8b53cd7415ecfb610e991f3187dc70583ec968dd6f325946dad2d066766dd100000000000000010000000000000001000000000000002099796d2366d350a09cad2698ab80419a6869a2524f9cfcc2eb3055449273a24a0000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000010000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000000100000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000000000000000000200f7d3d47144478bb9935a9c51fc46b1b1a5a0c2193dde53d033cfc11a38eaa4a000000000000000100000000000000010000000000000020427991f215fe7e45997ccba33054721026a6c1327066c6b3403cf7227aed474c0000000000000001000000000000000100000000000000208ee52142db58fe442ca24e9577a242b6b0a01d185709369184976ec6ed203b4d0000000000000001000000000000000100000000000000202ef4e1908e5c1feba751546a1b19b44ec3948b5b79fb15cbc254b6ae858d0622000000000000000100000000000000010000000000000020cf7b4774e00157cbbb3d3167eebc39e16fa993a1f6d067c9342e404e34e33a4a00000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e000000000000005f0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020eb1727f0bf2b5e547bdb3dc5666fb012a50ebb1b2d870fa61f0fd80e64e4ecc100000000000000010000000000000000000000000000002091f87159cb7ef9c51ade2808531bfc2fc6514c9f6cfea7e8bbe97aafa477d16f000000000000000100000000000000000000000000000020f476b958e87db8a02656f8467c6e5e45d866f25792959994b010cfab414a683f0000000000000001000000000000000000000000000000204ad6dc0cd0533f78182e33f1a845ac02537dc3fd9cd6a8afe705ed7185762a5c000000000000000100000000000000000000000000000020440141033be391d351cbd747235dd0dd8925385fcbdaf63ca3ce8096a77f70ba0000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000005f000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020d1f146b90580d7905cf5df3d76fc6594716909be5c75bf65750901a194a541e1000000000000000100000000000000000000000000000020de7e1aedd16874ba4da3786e9ec2e855e1fa1ddf8e3a39472a92f48313c40e610000000000000001000000000000000000000000000000200465cea58d937eb0fdb98fcaf6de41b5bc5a9ef8128bb64c6d5c79fe8b30bd02000000000000000100000000000000000000000000000020241e42aeb3c798b84ad9a34ccc6b26a5fb12fe91536ea9394f0e34b50690f3390000000000000001000000000000000000000000000000204d271360d6ea5729d441a303230c4b3fd940e15129f6f043ffe200fe1412df3c000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000005f0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000005f00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020bfba88cf19e95fa2d76014aa479928cf59ef37f366d0370f1dc74116722c0fe90000000000000001000000000000000000000000000000204fa4ea9eee7f4826a051f13cea287aff6631d277919dfca5d8b58864817bfbdb000000000000000100000000000000000000000000000020bfc3833208072c06854906543f4c49a3ddc86f212ff116bde59fa27acaae0ba0000000000000000100000000000000000000000000000020196600714e2413375e79dfb52d0da692a476ee202a5b16a99a81d9e03b5b4da30000000000000001000000000000000000000000000000204b2589cc642be6064ae59c9496cf16edb00687dfa69b285a43c510b78bfc57d30000000000000001000000000000000100000000000000204bf1e1669389897cdf60a4c21a8ebf7bc19a07905ce2001a19e2353ccbd0bc330000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb9000000000000002c0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000204f52ba97ad293a1f2b148563321a3bd6b16628f74a5f5f0cdc2305639c6738d0000000000000000100000000000000010000000000000020317f2ada516faa6c99c15fc7daeea898f34ee70865e79dbf9862878b68c7db6e000000000000000100000000000000000000000000000020d4c0df32ee86ae7b5161167dcef1b7eeb12a4a6dc9a1b6566aeeabe819adc61a0000000000000001000000000000000000000000000000201f4bfe7d2398692f0c7abdb85ed16895ef0857d4d738e32f167340e5542a22b20000000000000001000000000000000100000000000000205d77fe2ccf9c9f8603070bd03123cd3455d47968e542db3d55abf5cd35b03d050000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d000000000000002c000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020cadc694bcab0b2d7370c8dcf7f32643b7ccc790157e036ca1d3beefb0898b82700000000000000010000000000000001000000000000002044e913a22e8b8b1762579db9e8881fb42a8fece24e32f32655687c652cc641f1000000000000000100000000000000000000000000000020a4e4ca5bbb50dfe8edcfb7963ea98588d32ac467780c2cade2a34fedc58db14d000000000000000100000000000000000000000000000020b6d1fb90220eb827e5a0d6cff1a17436b1d8a5cbf6a2bec68975b0b2c4d80d8a000000000000000100000000000000010000000000000020e7444cc161f3e7f01cf05762fb0fb97caf4bc92619aabc44b759df970816cdad0000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de000000000000002c0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000002c00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020824ed5cd0ffaf8dc9234762c6bc9feb6d3026bfae609819dd4319525966a4a46000000000000000100000000000000010000000000000020985631fd32f27cf13ae3272acbe192a07da5b490b59ba02a5efbc894d2f886840000000000000001000000000000000000000000000000200496c2ffc33bfff4769087999dc54f9ee00a37d262f77c5425667f17d151a0a2000000000000000100000000000000000000000000000020f7c430e5be26ecc9ace2846a2dd9aac8ff25889109484b43997f6080ae01699500000000000000010000000000000001000000000000002080f4c94164dc4597576888e1e7dfeeb82efbc11ac8b5ecc2b2df1058b8fa2b0500000000000000010000000000000000000000000000002040fcfc6bb63dbae33d624e3777a816b50ebb7a75c3788096fb31802eed5badf20000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e000000000000007e0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020b782aa7eaea72c5380ded75fc76a02b41f70147c14be1b5ef055b77629fc5bab000000000000000100000000000000000000000000000020e6377433847885cf37e45054debb564d20b150c03c731c35544d18873c6fc80e0000000000000001000000000000000000000000000000202ecd8753fbd4e9753d3ab5792022235b0d61965948a9802845ac769c195f73920000000000000001000000000000000000000000000000204d5c20971314a886143fcf4f31e5b0fe465897f95edb2ebb496a671eb51686a3000000000000000100000000000000000000000000000020484695c1718ea9babdf0da4a169839654a70d31dfb7bfa030bd34c4fd296f173000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000007e000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020ce65a52b98dddd706a68273f7920918697bd68520b127620b85a53f34121f96f000000000000000100000000000000000000000000000020a9c4b3c744c5537998728fd2fbc3b94e03972295db498ff96c58bad33a968e830000000000000001000000000000000000000000000000202ab79d9f3374ce44e12d2c803ade3b7883c480ea68b516a8844e29d1f144ce230000000000000001000000000000000000000000000000209ef4b79cde573ddf1a1cfe0df94952533f934e8712306ff6e1df26da2304bf2d000000000000000100000000000000000000000000000020eed5635aa9fe26e55ac534a89c39cf891254e6457318ced7e38ad88fc125ecc7000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000007e0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000007e00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020a3ec2ca4c2cad220c3ff1c6236c5fb9e9ac9ac5764370b83ec724f57c91f4fb900000000000000010000000000000000000000000000002016479a7042ae183dbd5f3dd916e005f0c4c049b3d3e2bafd47b35c7641802139000000000000000100000000000000000000000000000020252d0142e29f6f046a2bf2cb488c2f50c948efdf554303dbdc36c746c9b0c6bd000000000000000100000000000000000000000000000020bcd18cc2e0a4ed036f070637e84e56eaa6c50f80555c3785ecb5cd923c93e4870000000000000001000000000000000000000000000000205f345c922e75b5ee09f6a30d4e99bc3797063459fe2e79c3075e31feffa4522f000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000130000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703000000000000000700000000000000010000000000000000000000000000002021703590d8a3d620522d01efe94bca9d70a471bc2f28da7c69582c0f63c1380200000000000000010000000000000000000000000000002090e94b9236820d03f62325b921ff73b3069ef95294bed57f9e6903a5f06dde580000000000000001000000000000000100000000000000202954bf45fe77defb69128714be17592fe6b385a27c1f56d18e1e183bcc1594ee000000000000000100000000000000010000000000000020e2acecbe8619d7478dee57fcb82511df4fa4f1bdb2d5253db0ff26c50b7344b300000000000000010000000000000000000000000000002067b848c6a8fd93922564ee17c6101e314bbd3846fcea2a0a759b6e14ee53062a000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000013000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000000000000000000207e8f55c7960c67adc03754727cc4021051862d5af299f4bdd96fd557f5fb625a000000000000000100000000000000000000000000000020bc7f56ce6c6c34651e3eb1cd934cca80982251de322d2dc8ef472188db64ced2000000000000000100000000000000010000000000000020c570a41900e5df8ba34a98c813dcad69f97d3d94bb76ff8216e35356ca2cacfd00000000000000010000000000000001000000000000002022828921a6b0f0bee2649772e95581d881e7c8e59ac79244530985451478d83800000000000000010000000000000000000000000000002081a27a248db0076bc7a7f51b5ccf3cf5b9e1c7455e27068c417e64832913ff410000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000130000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000001300000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020161c5455f5f4ad1845ef85971e485e4568ff207a47acbb9cfceaae627ab139610000000000000001000000000000000000000000000000209f5fe62f2a856f23a9d3785a79b57aa782795ccc99e9e2e5db5a9e35fe7d0d87000000000000000100000000000000010000000000000020007a2897a91dac716a38ce55b9e88e544225dda467a77e6a984c7bbd5918d49800000000000000010000000000000001000000000000002016bdef74d3a4a3bf89aacb899b6f0c9002f0bb74b43dcea2dd6c6252a2ede355000000000000000100000000000000000000000000000020e31eb63203c4c86dcc10bca35f7905f868623039545d8b3017d8c39b9f6116d100000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000600000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703000000000000000700000000000000010000000000000001000000000000002030f0a6e18a9c2b696ab84a3debd90d10cefee51ad8d09faa2471ba7cb9c0734c000000000000000100000000000000010000000000000020d2e2ba3fc80ee026557e5bfcac4bed00ed62af39a123d3ee482cbd1a0959035c0000000000000001000000000000000100000000000000208898e207f899afef2d8054a80f751d82d7922c515dc762bb6fe3ca09982a4a8c000000000000000100000000000000010000000000000020c333590dcb0e6145e72bd463f743db0abfaeb8772dc580c71cf682d91309ed1f000000000000000100000000000000010000000000000020cca38bcaaeed86d1c037ddb148bba22f6b95749f7f352486d9b2248d154972a4000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000060000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020446cebac3d6fc37a7b25695955c0a474b81db2e30b58565167330f8ad341eabe00000000000000010000000000000001000000000000002040aaa91a76e76b209d5782919ffbac0c1b40c4d4763b7179e423c793cda2a3080000000000000001000000000000000100000000000000204760ed6b8f37b8811c4472d07018ef33254862de57fd87fdcb222f78d35c0c3c000000000000000100000000000000010000000000000020231c9cddba9de91f81f082284626d72c840c35a049839db16d0798671da9a94e00000000000000010000000000000001000000000000002015dc39279a52d41ddbcaf227c199cbd51b1f711d661184752155a6495562235a000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000600000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000006000000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020ca7eaf8ab66ea9f679a93a302c51b3aeb35824dd0a5b5381ea9ca6bbd5434d5b000000000000000100000000000000010000000000000020be3c304600dee094ac7b11b22bc4c6940552fbc5f077a7e24a4a568ea0b7540d00000000000000010000000000000001000000000000002004ce2cc4d87e262ec2f5f995c0158bc7b0330315c341537e2539f463c075a8cf000000000000000100000000000000010000000000000020ccdfc1ce31f7c9c3c299e0c8c2dcba2323cfe7190c2ecab871962f8a14a10c5f0000000000000001000000000000000100000000000000205c412ce971308b3c81ea6b705658f52dec02ecb3332ae0a2ccd740263bcc7a7b000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb9000000000000003f0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020792f9e91a004a8a4d8d29ecba8f9cba46c15e95a1a542d5d2e6a5bb946d8ad0f00000000000000010000000000000000000000000000002046ac07b7f7a61188086b6c4b68e04c2ab56f2c6523b241a09c8b73a6d2c4fd8600000000000000010000000000000000000000000000002003e351314794759cd9806174a52250b9cb8fa9581fa9e27d53e8a0c841303e0a00000000000000010000000000000000000000000000002038633c23221765310c92698cee8362c0d12200537889693a08f64eb0a28d0eb50000000000000001000000000000000000000000000000204cc7901d510046ae5f98d6b431c2a311cc066cdd794fd6e53cc30587ed00a61e0000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d000000000000003f000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000000000000000000206255b409b338405ad7f641b83a505fc2fb24e8c63255dc53f604f5202d06933f00000000000000010000000000000000000000000000002036670a01fac60d516547b53a292308b7180d6cadb33e8c70762b23893e9541a4000000000000000100000000000000000000000000000020a9ab9c5ee7b9555a000953fc28810de93e021fd6c3bd175a54f424a6c2f67cc8000000000000000100000000000000000000000000000020d0aef9b77b039100567fbec3deac5294b41ec41336a21a95a35be851fa112511000000000000000100000000000000000000000000000020f8cfb327d9517742fe31d66ff60129d85a3e464d22188d95a53c32e3132069560000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de000000000000003f0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000003f00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d000000000000000700000000000000010000000000000000000000000000002034b34841abb9aa55cc86c5c9c5468ff5c82badf98b26a6a7efec2a5682addbbb0000000000000001000000000000000000000000000000202cbda8598c8494d01b63f8ad898e82f5bf191915bec6b423b5193aeed5358d8d00000000000000010000000000000000000000000000002051d1c8fbe14916c1ada979c389c6e526187b29de31453aab6ad0a7df0008d5d90000000000000001000000000000000000000000000000206916699a45fdfb8384004d89c6a315b17df2f235f5b835b904c0db675c6a94010000000000000001000000000000000000000000000000208f995ec61c2dccbeb9c7fe1f9ab07ecdb151d4c25dee869fcddca0342e9f92e100000000000000010000000000000000000000000000002040fcfc6bb63dbae33d624e3777a816b50ebb7a75c3788096fb31802eed5badf20000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000770000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020fc9d3453af4b7b3e940e6c02b1bb3d4a1b0f19ca29afc165ae93adac2ea0fa940000000000000001000000000000000000000000000000201e656782b06961a71c694b3be69f51cae2a87b559293a9fa06cbddf255974523000000000000000100000000000000000000000000000020a558aea553fc003fae0160895074fcdcbf7c6993b4c04e8a9955882d31ce13d10000000000000001000000000000000100000000000000201ddaf21874d2f1dceb73b2bd9c919f8080291efd13ced9f813727e4f480d6481000000000000000100000000000000000000000000000020484695c1718ea9babdf0da4a169839654a70d31dfb7bfa030bd34c4fd296f173000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000077000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000000000000000000002098dea6d7fef8334eba9e48d934ec45ee0f2570b11f0997dae6ad364fbaeb41a10000000000000001000000000000000000000000000000201abd87bae25c461ef9694f95f408c9a6eab8c430b875a63d15e4d4b4058788760000000000000001000000000000000000000000000000209590ef6739c33ffd9d841690bc70d7db3670f18ec3d415639f73a8814d96a578000000000000000100000000000000010000000000000020aef86b1c25b74932f43f0295cd7c5728d8beb0c22d00656fa8fddbeccc1fc88d000000000000000100000000000000000000000000000020eed5635aa9fe26e55ac534a89c39cf891254e6457318ced7e38ad88fc125ecc7000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000770000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000007700000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020a108486816a0efbb5218d3d6e065f4ad236aeb7b64c2f7d27c1bb280138c511800000000000000010000000000000000000000000000002080a5be1805522417a278f5274f59ca801abff529b8b0c424373e94da81c9e28c000000000000000100000000000000000000000000000020a571342689300bf3f24c41daa8f18038acebef87a4aff9779badb1e45a3ad12b00000000000000010000000000000001000000000000002089d96d9f124e0114712142e432156e3f28d1d69fb964225488694ab55328440b0000000000000001000000000000000000000000000000205f345c922e75b5ee09f6a30d4e99bc3797063459fe2e79c3075e31feffa4522f000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000070000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020c7b1e5bf0733e0a3747103b05723724641d9922cf804ee197149894fc86e9c1600000000000000010000000000000000000000000000002024dd71f470a74bc9d00007238db817e2951ab47beab380e9dfb9c9bf28a0a90c00000000000000010000000000000000000000000000002093a0881cb11f378c3ee374298a66b649fae44fbb2f35e3704ab5f4655c883f85000000000000000100000000000000010000000000000020ca3dc5f22e4573bfae9e4282c195d191a87ba277e564f158302218ee7bcec57300000000000000010000000000000001000000000000002056e5e7ca74faee51ae45c7001256fed2e7e080dcb95a859867c22dcb1608665f000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000007000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000000000000000000204511364e6740dece985a8421cf505ace7c56a037e4c50c10c6cf1b04eb6fa5f8000000000000000100000000000000000000000000000020fa774f7f08a9caf5f4c2a4ec6081fa509a5e34d6de7388ccc80b06493b538fe8000000000000000100000000000000000000000000000020159fb7d1dbca35eff1d0f710637a19e2e36d57033adbce658e94920357d85089000000000000000100000000000000010000000000000020ea8b53cd7415ecfb610e991f3187dc70583ec968dd6f325946dad2d066766dd100000000000000010000000000000001000000000000002099796d2366d350a09cad2698ab80419a6869a2524f9cfcc2eb3055449273a24a0000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000070000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000000700000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020654ee39115d17871e13b2bdb9d698fe90beb54a1a366def2c328492b645068b60000000000000001000000000000000000000000000000207cdbe844b738198bfa602bed3dba6a064e3e226eb9af5f8121b0f4607ad4f1a5000000000000000100000000000000000000000000000020808c6faf169e8190470dfac9fe647ef5fac0047b66fa4b6fdb48e599786a862f0000000000000001000000000000000100000000000000202ef4e1908e5c1feba751546a1b19b44ec3948b5b79fb15cbc254b6ae858d0622000000000000000100000000000000010000000000000020cf7b4774e00157cbbb3d3167eebc39e16fa993a1f6d067c9342e404e34e33a4a00000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000380000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020d2b0c172c88804b019623c0ab76fe68968ce29df8d16ea64dfe04da5a9dfac9e00000000000000010000000000000001000000000000002058ca14bea62f02472920c94cef064e2b62a2215697046a17b9b4a72b1f79519d0000000000000001000000000000000100000000000000208b6c0dbf8846167552cf8ae1f5eccfada0c9c12fa603ef04a1bcf5b2d8d640de00000000000000010000000000000000000000000000002038633c23221765310c92698cee8362c0d12200537889693a08f64eb0a28d0eb50000000000000001000000000000000000000000000000204cc7901d510046ae5f98d6b431c2a311cc066cdd794fd6e53cc30587ed00a61e0000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000038000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000100000000000000205540c6210c4ea6250903e6e934550eb8cc7cbf54238f042e0841ae6e6707d79a000000000000000100000000000000010000000000000020c9853024a416fef377cb4d8cfd6cccbacb7c1d28e5d801967cd0793b83fb0d660000000000000001000000000000000100000000000000200e020dc06db87756c28132502389a84e3c64cd7df4b64b8737793c282df50a32000000000000000100000000000000000000000000000020d0aef9b77b039100567fbec3deac5294b41ec41336a21a95a35be851fa112511000000000000000100000000000000000000000000000020f8cfb327d9517742fe31d66ff60129d85a3e464d22188d95a53c32e3132069560000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000380000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000003800000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020adb005fe708243d49b98a809c185d6154f6e4bf420cc455d04d6cf7f7d51661a000000000000000100000000000000010000000000000020b1c646c25625c8766b0fa6a1aff4bd5dc9ee0fc27074f54d2072a3d8cdbf1ded00000000000000010000000000000001000000000000002095a3bea66806a0a16ce3c74b0f3b32494e1345651cb0e438ed2e97385107e3430000000000000001000000000000000000000000000000206916699a45fdfb8384004d89c6a315b17df2f235f5b835b904c0db675c6a94010000000000000001000000000000000000000000000000208f995ec61c2dccbeb9c7fe1f9ab07ecdb151d4c25dee869fcddca0342e9f92e100000000000000010000000000000000000000000000002040fcfc6bb63dbae33d624e3777a816b50ebb7a75c3788096fb31802eed5badf20000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000060000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020cf9c9d36e50f3be003abb72eadda4014f3014d18f065cdcf3718c8ea27781d7f00000000000000010000000000000000000000000000002024dd71f470a74bc9d00007238db817e2951ab47beab380e9dfb9c9bf28a0a90c00000000000000010000000000000000000000000000002093a0881cb11f378c3ee374298a66b649fae44fbb2f35e3704ab5f4655c883f85000000000000000100000000000000010000000000000020ca3dc5f22e4573bfae9e4282c195d191a87ba277e564f158302218ee7bcec57300000000000000010000000000000001000000000000002056e5e7ca74faee51ae45c7001256fed2e7e080dcb95a859867c22dcb1608665f000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000006000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020918cc2cb0516abac2122f4106181be6c4332bef5202829ed0c2504e9d66cd1e8000000000000000100000000000000000000000000000020fa774f7f08a9caf5f4c2a4ec6081fa509a5e34d6de7388ccc80b06493b538fe8000000000000000100000000000000000000000000000020159fb7d1dbca35eff1d0f710637a19e2e36d57033adbce658e94920357d85089000000000000000100000000000000010000000000000020ea8b53cd7415ecfb610e991f3187dc70583ec968dd6f325946dad2d066766dd100000000000000010000000000000001000000000000002099796d2366d350a09cad2698ab80419a6869a2524f9cfcc2eb3055449273a24a0000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000060000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000000600000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020b92604315276e660d69e3d60848b4e1b545ac29935cb28e912408dde71a820870000000000000001000000000000000000000000000000207cdbe844b738198bfa602bed3dba6a064e3e226eb9af5f8121b0f4607ad4f1a5000000000000000100000000000000000000000000000020808c6faf169e8190470dfac9fe647ef5fac0047b66fa4b6fdb48e599786a862f0000000000000001000000000000000100000000000000202ef4e1908e5c1feba751546a1b19b44ec3948b5b79fb15cbc254b6ae858d0622000000000000000100000000000000010000000000000020cf7b4774e00157cbbb3d3167eebc39e16fa993a1f6d067c9342e404e34e33a4a00000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000630000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703000000000000000700000000000000010000000000000000000000000000002090a5c0dfecd68b96260de0e176f1daaa0cefbdbbf4bed734ac888093198137f20000000000000001000000000000000000000000000000205217f042c4103dfce290399af2d7f6e91b0303d9374068c157fddf417ac1466c0000000000000001000000000000000100000000000000208898e207f899afef2d8054a80f751d82d7922c515dc762bb6fe3ca09982a4a8c000000000000000100000000000000010000000000000020c333590dcb0e6145e72bd463f743db0abfaeb8772dc580c71cf682d91309ed1f000000000000000100000000000000010000000000000020cca38bcaaeed86d1c037ddb148bba22f6b95749f7f352486d9b2248d154972a4000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000063000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020f750a8df74970bf8b1f2cb625632f0010a1ebd07ceb50b9b55baeca9734481bc0000000000000001000000000000000000000000000000204437135e388dbbc0f4134ea178c5475160607cb1a13f453188a7b6009d99e7d20000000000000001000000000000000100000000000000204760ed6b8f37b8811c4472d07018ef33254862de57fd87fdcb222f78d35c0c3c000000000000000100000000000000010000000000000020231c9cddba9de91f81f082284626d72c840c35a049839db16d0798671da9a94e00000000000000010000000000000001000000000000002015dc39279a52d41ddbcaf227c199cbd51b1f711d661184752155a6495562235a000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000630000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000006300000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000000000000000000205ae1bdb7fd65e5b724a890e024d01cbf17c7d7da4f37a1acf94d982287b552be0000000000000001000000000000000000000000000000209def4bb721745767975c519652187717ac9df39e7dd95f4cf70cc5a58431187700000000000000010000000000000001000000000000002004ce2cc4d87e262ec2f5f995c0158bc7b0330315c341537e2539f463c075a8cf000000000000000100000000000000010000000000000020ccdfc1ce31f7c9c3c299e0c8c2dcba2323cfe7190c2ecab871962f8a14a10c5f0000000000000001000000000000000100000000000000205c412ce971308b3c81ea6b705658f52dec02ecb3332ae0a2ccd740263bcc7a7b000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb9000000000000004f0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703000000000000000700000000000000010000000000000000000000000000002069df69981837d9a2682438028756fc2495603017b32ec9a842f551862e713ce9000000000000000100000000000000000000000000000020031183c242d0006598e5b7d676d9417602ba0479e19628cfd3363bcd15acbd26000000000000000100000000000000000000000000000020abaf0b06722523bc4bde176d2e6139a66b13737d4ba7c832f6ffc69c42134659000000000000000100000000000000000000000000000020e2cfdef2e013593d17123ff3c49fb968341cf622151374e7b49d49569fdcf51e000000000000000100000000000000010000000000000020e6fbce7ccc80a578a93cc241360a739d0248edab1a37196cc8564d3cea08f1a90000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000004f000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020de96c6c139ca517e3397d9714e0f9d56dcf2793eda355e6c6f334d42da316be0000000000000000100000000000000000000000000000020c88bca0d3c3ad45aa29f3b4c3779ef43a1be883fc13bbe6a6e4f864830412148000000000000000100000000000000000000000000000020ff282d6b8f29787926c8a85ab4250c615749a6cfa03fcf66109c36e40f1a5c30000000000000000100000000000000000000000000000020ecb1f059ced073c0f1f4ab430f41a2243331d77e965de85e9fbb5ae14eed25980000000000000001000000000000000100000000000000201e2c25d0355b2435f10a6081fe0d1c18b2bcf5ac219aa03a7bf09921024c667f000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000004f0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000004f00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020f5ce0a4e0da6f86c1c6a63d91c1c00d501eafa65637a0f94c179bba3470898a50000000000000001000000000000000000000000000000207efb1d6a7164e5e46e9a57cb170c5436c302c7699499c6d9a4576174ded9095d0000000000000001000000000000000000000000000000204402b00e03a3126bf5507574b33e77c1225e27606f6b99dc241f58e7751462bf00000000000000010000000000000000000000000000002005a7d139ea1c50e2d46ee67598c7cccdfa30f9ddabe7cfc41f5862d2aabb182b000000000000000100000000000000010000000000000020653a458519e3320afef3854df67dd297919d49bad510656792603e8433e203430000000000000001000000000000000100000000000000204bf1e1669389897cdf60a4c21a8ebf7bc19a07905ce2001a19e2353ccbd0bc330000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000450000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020d089cd76daba71dc91c5120df9a57c2c9593628d60e22fb13354a3c8db4abf7e000000000000000100000000000000010000000000000020bcad8b753d996e6fe12bd8ad8923329d0cf1f6606b0d8e7e85c065482ff69b6a0000000000000001000000000000000000000000000000204480fc856c36220f6771e9b17ac2e69c39a94b5b5ac72fefb864f31a46f8b565000000000000000100000000000000010000000000000020d882d23dcecd5a4ff24e4f097ada499103f4217af8b869ce0275076671c667bc000000000000000100000000000000010000000000000020e6fbce7ccc80a578a93cc241360a739d0248edab1a37196cc8564d3cea08f1a90000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000045000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020e6bc676bce506377233290e03e99593eb3422cad5514af7f08c365cd50482d09000000000000000100000000000000010000000000000020b4961ae32337fb330d5cbe2c567652cf97c1b08eb68d8d3e9fb6cd488a1973b80000000000000001000000000000000000000000000000202f32d27f3c9dab9e7d39411802445169183e1a69655269ff4612e20b5845aae2000000000000000100000000000000010000000000000020c57390cb340730fb4757e6d9269625065f9b6612660a2177c39d2619ba6c9f820000000000000001000000000000000100000000000000201e2c25d0355b2435f10a6081fe0d1c18b2bcf5ac219aa03a7bf09921024c667f000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000450000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000004500000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020f6d02688a637d3c87bf49d7a8631d373cd9f645da6deb90f5e60c091125ff6900000000000000001000000000000000100000000000000207eb3c7c591e0f892945432343c9ad2c27759b7c1cbd244f947e71d519365d523000000000000000100000000000000000000000000000020cb746b8631299eca5f4ac56057e7c228c9eda8fc7ae1639f197b536a7e9f1f3b00000000000000010000000000000001000000000000002093e04c833bb94046be76dac782b2f4e32bd43fb9f5792101228a36dfb286a712000000000000000100000000000000010000000000000020653a458519e3320afef3854df67dd297919d49bad510656792603e8433e203430000000000000001000000000000000100000000000000204bf1e1669389897cdf60a4c21a8ebf7bc19a07905ce2001a19e2353ccbd0bc330000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000620000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000209222a4b9ead180ea57875e5b570b0a873e3a11e75023cd766bdff57e2cb3bc890000000000000001000000000000000000000000000000205217f042c4103dfce290399af2d7f6e91b0303d9374068c157fddf417ac1466c0000000000000001000000000000000100000000000000208898e207f899afef2d8054a80f751d82d7922c515dc762bb6fe3ca09982a4a8c000000000000000100000000000000010000000000000020c333590dcb0e6145e72bd463f743db0abfaeb8772dc580c71cf682d91309ed1f000000000000000100000000000000010000000000000020cca38bcaaeed86d1c037ddb148bba22f6b95749f7f352486d9b2248d154972a4000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000062000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000100000000000000203d63a2c5fa7924ce4227afab2a451ab6c2ab403e213d466140f680f9f2cd56660000000000000001000000000000000000000000000000204437135e388dbbc0f4134ea178c5475160607cb1a13f453188a7b6009d99e7d20000000000000001000000000000000100000000000000204760ed6b8f37b8811c4472d07018ef33254862de57fd87fdcb222f78d35c0c3c000000000000000100000000000000010000000000000020231c9cddba9de91f81f082284626d72c840c35a049839db16d0798671da9a94e00000000000000010000000000000001000000000000002015dc39279a52d41ddbcaf227c199cbd51b1f711d661184752155a6495562235a000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000620000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000006200000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000100000000000000207e20411da1ee7c3183e4590085d2269d70d8ca2344d39505ef5d330d0bcf404b0000000000000001000000000000000000000000000000209def4bb721745767975c519652187717ac9df39e7dd95f4cf70cc5a58431187700000000000000010000000000000001000000000000002004ce2cc4d87e262ec2f5f995c0158bc7b0330315c341537e2539f463c075a8cf000000000000000100000000000000010000000000000020ccdfc1ce31f7c9c3c299e0c8c2dcba2323cfe7190c2ecab871962f8a14a10c5f0000000000000001000000000000000100000000000000205c412ce971308b3c81ea6b705658f52dec02ecb3332ae0a2ccd740263bcc7a7b000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000620000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000209222a4b9ead180ea57875e5b570b0a873e3a11e75023cd766bdff57e2cb3bc890000000000000001000000000000000000000000000000205217f042c4103dfce290399af2d7f6e91b0303d9374068c157fddf417ac1466c0000000000000001000000000000000100000000000000208898e207f899afef2d8054a80f751d82d7922c515dc762bb6fe3ca09982a4a8c000000000000000100000000000000010000000000000020c333590dcb0e6145e72bd463f743db0abfaeb8772dc580c71cf682d91309ed1f000000000000000100000000000000010000000000000020cca38bcaaeed86d1c037ddb148bba22f6b95749f7f352486d9b2248d154972a4000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000062000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000100000000000000203d63a2c5fa7924ce4227afab2a451ab6c2ab403e213d466140f680f9f2cd56660000000000000001000000000000000000000000000000204437135e388dbbc0f4134ea178c5475160607cb1a13f453188a7b6009d99e7d20000000000000001000000000000000100000000000000204760ed6b8f37b8811c4472d07018ef33254862de57fd87fdcb222f78d35c0c3c000000000000000100000000000000010000000000000020231c9cddba9de91f81f082284626d72c840c35a049839db16d0798671da9a94e00000000000000010000000000000001000000000000002015dc39279a52d41ddbcaf227c199cbd51b1f711d661184752155a6495562235a000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000620000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000006200000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000100000000000000207e20411da1ee7c3183e4590085d2269d70d8ca2344d39505ef5d330d0bcf404b0000000000000001000000000000000000000000000000209def4bb721745767975c519652187717ac9df39e7dd95f4cf70cc5a58431187700000000000000010000000000000001000000000000002004ce2cc4d87e262ec2f5f995c0158bc7b0330315c341537e2539f463c075a8cf000000000000000100000000000000010000000000000020ccdfc1ce31f7c9c3c299e0c8c2dcba2323cfe7190c2ecab871962f8a14a10c5f0000000000000001000000000000000100000000000000205c412ce971308b3c81ea6b705658f52dec02ecb3332ae0a2ccd740263bcc7a7b000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000730000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020ff14d754d3226b23ef4b6bfb982e0149dda2e2058aa7017be3bbee7afe1f30dc0000000000000001000000000000000000000000000000203f1184d99c0c6f37844768d0fd9fd6b2b34d22db285cdeef3fddc041c496e2e7000000000000000100000000000000010000000000000020b4894900c33f5635d85562ebbda7805f0ac1d98ae53665e714382ea448ac52c20000000000000001000000000000000100000000000000201ddaf21874d2f1dceb73b2bd9c919f8080291efd13ced9f813727e4f480d6481000000000000000100000000000000000000000000000020484695c1718ea9babdf0da4a169839654a70d31dfb7bfa030bd34c4fd296f173000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000073000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020ce1c9a80555da1eb2cfcdaad12bfb4279830eb496320959d3ff86dd0c00ec62d00000000000000010000000000000000000000000000002020f2a31bfd572314732bbf381b5314858e97f3aa9d9aecf077369cf5b72048fd0000000000000001000000000000000100000000000000200755751b5c06801532af40f5137b978866beb2f616a3d040c4a46f352c038982000000000000000100000000000000010000000000000020aef86b1c25b74932f43f0295cd7c5728d8beb0c22d00656fa8fddbeccc1fc88d000000000000000100000000000000000000000000000020eed5635aa9fe26e55ac534a89c39cf891254e6457318ced7e38ad88fc125ecc7000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000730000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000007300000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d000000000000000700000000000000010000000000000000000000000000002044b12064ace8517211b4c512da17f8451b880c4a8cca2d87c643ece4ea914ae9000000000000000100000000000000000000000000000020ab2bba1f31aeb4211b52890655f3b6ec8a05d02b4beafb14a9a68b11944e32da00000000000000010000000000000001000000000000002071aa0b28d4c939a843faaecd9b982f474a73bc624ea848b3a9684b03b7cc50e700000000000000010000000000000001000000000000002089d96d9f124e0114712142e432156e3f28d1d69fb964225488694ab55328440b0000000000000001000000000000000000000000000000205f345c922e75b5ee09f6a30d4e99bc3797063459fe2e79c3075e31feffa4522f000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb9000000000000007a0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020c75ec940d0e95377720389ceeb0eafd8a3d3ceda65d360e25f92b78b759b64d5000000000000000100000000000000000000000000000020f7a03e6aab33c259b776a0a1068e9b29f69e476bfd7bd164913d1edd6dbe937e000000000000000100000000000000010000000000000020a0ff9b979dbd1cb58a689c4f7cb8c8e56e1dda716de815f8dce6e6624d7e57ac0000000000000001000000000000000000000000000000204d5c20971314a886143fcf4f31e5b0fe465897f95edb2ebb496a671eb51686a3000000000000000100000000000000000000000000000020484695c1718ea9babdf0da4a169839654a70d31dfb7bfa030bd34c4fd296f173000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000007a000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020c8852b920b05e5706551ba5f636d8d26d15193c6584fadd468986532d24c74a40000000000000001000000000000000000000000000000202dad7cb660b8d7478673d74df249c7bca96ad2a77a9e6df8cd53b3b04533f1c800000000000000010000000000000001000000000000002016a4ade761eb6230e27dd29c0ca0b6ca9e5ed431dfbc829f10335bc89c30fd1a0000000000000001000000000000000000000000000000209ef4b79cde573ddf1a1cfe0df94952533f934e8712306ff6e1df26da2304bf2d000000000000000100000000000000000000000000000020eed5635aa9fe26e55ac534a89c39cf891254e6457318ced7e38ad88fc125ecc7000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000007a0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000007a00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020c323e0b3ffc569382aaece5eeca62c4f79883a936e990531f49bdd6df7cc5cae00000000000000010000000000000000000000000000002079b1caa581c5d2688d2628b43e3067fd9121337852f19ee6997b9d92a843518f00000000000000010000000000000001000000000000002000259d57f7bce9389ee7e73f33e5b2ca1c650ce9e8dc63130f8749fbdcfdfb2d000000000000000100000000000000000000000000000020bcd18cc2e0a4ed036f070637e84e56eaa6c50f80555c3785ecb5cd923c93e4870000000000000001000000000000000000000000000000205f345c922e75b5ee09f6a30d4e99bc3797063459fe2e79c3075e31feffa4522f000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000700000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020bdf52ce85dc6e0a5f9086cf31cd92ffa1893b5a641fcb6edd31404b8d5b8d16800000000000000010000000000000001000000000000002084cc04492d17a5edb263d9419913adcdd2a248cbccea218baca50c1e640d6302000000000000000100000000000000010000000000000020b4894900c33f5635d85562ebbda7805f0ac1d98ae53665e714382ea448ac52c20000000000000001000000000000000100000000000000201ddaf21874d2f1dceb73b2bd9c919f8080291efd13ced9f813727e4f480d6481000000000000000100000000000000000000000000000020484695c1718ea9babdf0da4a169839654a70d31dfb7bfa030bd34c4fd296f173000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000070000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000001000000000000002068387d66eee106bd33e6c664aeea5943e24de44b5d37170c9e9abac629ffb43f0000000000000001000000000000000100000000000000205f667a6c0717dc4c601a1184bd0891be7afdc355fe30045920dae63e1f3c856e0000000000000001000000000000000100000000000000200755751b5c06801532af40f5137b978866beb2f616a3d040c4a46f352c038982000000000000000100000000000000010000000000000020aef86b1c25b74932f43f0295cd7c5728d8beb0c22d00656fa8fddbeccc1fc88d000000000000000100000000000000000000000000000020eed5635aa9fe26e55ac534a89c39cf891254e6457318ced7e38ad88fc125ecc7000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000700000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000007000000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d000000000000000700000000000000010000000000000001000000000000002032781ef50b45f2ca8291227218b1e212b3d8772ff9039bfa42feb33ca91d650600000000000000010000000000000001000000000000002011b7f140ef09eef7538363306696405c4689008ce8490adf33f20f762f28539a00000000000000010000000000000001000000000000002071aa0b28d4c939a843faaecd9b982f474a73bc624ea848b3a9684b03b7cc50e700000000000000010000000000000001000000000000002089d96d9f124e0114712142e432156e3f28d1d69fb964225488694ab55328440b0000000000000001000000000000000000000000000000205f345c922e75b5ee09f6a30d4e99bc3797063459fe2e79c3075e31feffa4522f000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb9000000000000000c0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000206930a5f9ea4d52e17a1c3dd55cbf7c35474dfd3483718902410c439dd6694c640000000000000001000000000000000100000000000000207f083025d7b5e20a3e96dbdb4f9f90b3702807776e2b2f53ab95311f3f7c3a9f000000000000000100000000000000000000000000000020e5744ea7917af5a15f1aa03739836609a2e30d754ad8e74253c5d416ce47902100000000000000010000000000000000000000000000002074c92898599a40af39cc7a4aa694631d7e51488babfa65b017e19bd852de297900000000000000010000000000000001000000000000002056e5e7ca74faee51ae45c7001256fed2e7e080dcb95a859867c22dcb1608665f000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d000000000000000c000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000001000000000000002093289367b31a97a2928a2f8e9e97c81bec79c1ed15af4738eb8f5db23b67455f00000000000000010000000000000001000000000000002056b2509eded6bd717e4ce53f680b40ab0a6c36b9fb7645d5ab33e0dbab72ba200000000000000001000000000000000000000000000000204f17285237eba98af78b80bd5e8de5f5a53fe8a071411b6c6e4d4c36f536e1330000000000000001000000000000000000000000000000208f3d18cc0b0da6433287a04f00ac88b64a41656e27ea9ddc94e4472173bebea600000000000000010000000000000001000000000000002099796d2366d350a09cad2698ab80419a6869a2524f9cfcc2eb3055449273a24a0000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de000000000000000c0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000000c00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020c66cecbeef046c7594b1aac080d12b84bd6d9dfcdb4354be3e3a3a694ea80c390000000000000001000000000000000100000000000000203ddfb243b2e80e7898329ebb8feaa08651ec49faf128c819a10fca1420b0190700000000000000010000000000000000000000000000002043dcee93d73702dc34c625490d12d8c33feba409024369d58d359e26aafe6b22000000000000000100000000000000000000000000000020c00237dc35ffd084252306466001d905dafd040f1eef9871a7001cc4e9b4f108000000000000000100000000000000010000000000000020cf7b4774e00157cbbb3d3167eebc39e16fa993a1f6d067c9342e404e34e33a4a00000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e000000000000007e0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020b782aa7eaea72c5380ded75fc76a02b41f70147c14be1b5ef055b77629fc5bab000000000000000100000000000000000000000000000020e6377433847885cf37e45054debb564d20b150c03c731c35544d18873c6fc80e0000000000000001000000000000000000000000000000202ecd8753fbd4e9753d3ab5792022235b0d61965948a9802845ac769c195f73920000000000000001000000000000000000000000000000204d5c20971314a886143fcf4f31e5b0fe465897f95edb2ebb496a671eb51686a3000000000000000100000000000000000000000000000020484695c1718ea9babdf0da4a169839654a70d31dfb7bfa030bd34c4fd296f173000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000007e000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020ce65a52b98dddd706a68273f7920918697bd68520b127620b85a53f34121f96f000000000000000100000000000000000000000000000020a9c4b3c744c5537998728fd2fbc3b94e03972295db498ff96c58bad33a968e830000000000000001000000000000000000000000000000202ab79d9f3374ce44e12d2c803ade3b7883c480ea68b516a8844e29d1f144ce230000000000000001000000000000000000000000000000209ef4b79cde573ddf1a1cfe0df94952533f934e8712306ff6e1df26da2304bf2d000000000000000100000000000000000000000000000020eed5635aa9fe26e55ac534a89c39cf891254e6457318ced7e38ad88fc125ecc7000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000007e0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000007e00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020a3ec2ca4c2cad220c3ff1c6236c5fb9e9ac9ac5764370b83ec724f57c91f4fb900000000000000010000000000000000000000000000002016479a7042ae183dbd5f3dd916e005f0c4c049b3d3e2bafd47b35c7641802139000000000000000100000000000000000000000000000020252d0142e29f6f046a2bf2cb488c2f50c948efdf554303dbdc36c746c9b0c6bd000000000000000100000000000000000000000000000020bcd18cc2e0a4ed036f070637e84e56eaa6c50f80555c3785ecb5cd923c93e4870000000000000001000000000000000000000000000000205f345c922e75b5ee09f6a30d4e99bc3797063459fe2e79c3075e31feffa4522f000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000130000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703000000000000000700000000000000010000000000000000000000000000002021703590d8a3d620522d01efe94bca9d70a471bc2f28da7c69582c0f63c1380200000000000000010000000000000000000000000000002090e94b9236820d03f62325b921ff73b3069ef95294bed57f9e6903a5f06dde580000000000000001000000000000000100000000000000202954bf45fe77defb69128714be17592fe6b385a27c1f56d18e1e183bcc1594ee000000000000000100000000000000010000000000000020e2acecbe8619d7478dee57fcb82511df4fa4f1bdb2d5253db0ff26c50b7344b300000000000000010000000000000000000000000000002067b848c6a8fd93922564ee17c6101e314bbd3846fcea2a0a759b6e14ee53062a000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000013000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000000000000000000207e8f55c7960c67adc03754727cc4021051862d5af299f4bdd96fd557f5fb625a000000000000000100000000000000000000000000000020bc7f56ce6c6c34651e3eb1cd934cca80982251de322d2dc8ef472188db64ced2000000000000000100000000000000010000000000000020c570a41900e5df8ba34a98c813dcad69f97d3d94bb76ff8216e35356ca2cacfd00000000000000010000000000000001000000000000002022828921a6b0f0bee2649772e95581d881e7c8e59ac79244530985451478d83800000000000000010000000000000000000000000000002081a27a248db0076bc7a7f51b5ccf3cf5b9e1c7455e27068c417e64832913ff410000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000130000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000001300000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020161c5455f5f4ad1845ef85971e485e4568ff207a47acbb9cfceaae627ab139610000000000000001000000000000000000000000000000209f5fe62f2a856f23a9d3785a79b57aa782795ccc99e9e2e5db5a9e35fe7d0d87000000000000000100000000000000010000000000000020007a2897a91dac716a38ce55b9e88e544225dda467a77e6a984c7bbd5918d49800000000000000010000000000000001000000000000002016bdef74d3a4a3bf89aacb899b6f0c9002f0bb74b43dcea2dd6c6252a2ede355000000000000000100000000000000000000000000000020e31eb63203c4c86dcc10bca35f7905f868623039545d8b3017d8c39b9f6116d100000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000370000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020fb3488e3405dc5dfd6da7f19f92954e4aeb951531c333dddcc531a604f273cb10000000000000001000000000000000000000000000000205e0f50e6647448b37ecb900b2e98938852d04e3c7a8814ad45c8f5555096bfb500000000000000010000000000000000000000000000002015974e5cde8b68336383dff938d22e92f360b18ffe56429530ed75be9b66f34600000000000000010000000000000001000000000000002035603eb04728f46297d39deef07280b0efb1ad34cd06e614ab18bb44a27f7e2e0000000000000001000000000000000000000000000000204cc7901d510046ae5f98d6b431c2a311cc066cdd794fd6e53cc30587ed00a61e0000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000037000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020936ea6a916508fe9839bfccdf95a9299a28867747548e1a74b38208ee3ace14e000000000000000100000000000000000000000000000020eb939b7425a45e6af5ee8bbd51aa96cb2fd43c51864a08f260c6b1f8c2aca314000000000000000100000000000000000000000000000020617144785e76e054a86588f283941ec49cb303cfe7fa0c4860356593023b62a70000000000000001000000000000000100000000000000208167f508c5eb6be817a066fba8c0346e424b21acf020be61c9420e0d0fe6ef23000000000000000100000000000000000000000000000020f8cfb327d9517742fe31d66ff60129d85a3e464d22188d95a53c32e3132069560000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000370000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000003700000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000000000000000000206c078bb7ac199799dee0c5c49ed1d0d210984e680d33373f1f2683f2184ce983000000000000000100000000000000000000000000000020e71ba0d2168fa3484961ca6a6263ba6305b6bcbfc7d076c7b11adb924bf3a74300000000000000010000000000000000000000000000002062f2b2903f1a7436363f3a5c5592a114e9fe69ef6adeb2631c9a458007c9663b0000000000000001000000000000000100000000000000204fcd2ada01b5d173195b35a487f5b16437dabdb84cce492f9d9213768cb11a090000000000000001000000000000000000000000000000208f995ec61c2dccbeb9c7fe1f9ab07ecdb151d4c25dee869fcddca0342e9f92e100000000000000010000000000000000000000000000002040fcfc6bb63dbae33d624e3777a816b50ebb7a75c3788096fb31802eed5badf20000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000390000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020386990815d7d47219e906dfb1af70f41402e8fc59565f8f1efb9a95727bc671d00000000000000010000000000000001000000000000002058ca14bea62f02472920c94cef064e2b62a2215697046a17b9b4a72b1f79519d0000000000000001000000000000000100000000000000208b6c0dbf8846167552cf8ae1f5eccfada0c9c12fa603ef04a1bcf5b2d8d640de00000000000000010000000000000000000000000000002038633c23221765310c92698cee8362c0d12200537889693a08f64eb0a28d0eb50000000000000001000000000000000000000000000000204cc7901d510046ae5f98d6b431c2a311cc066cdd794fd6e53cc30587ed00a61e0000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000039000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000000000000000000002041af11f8d316c8db8428918022130cebb00a19a040e7d2ba6a3028e547ce64c0000000000000000100000000000000010000000000000020c9853024a416fef377cb4d8cfd6cccbacb7c1d28e5d801967cd0793b83fb0d660000000000000001000000000000000100000000000000200e020dc06db87756c28132502389a84e3c64cd7df4b64b8737793c282df50a32000000000000000100000000000000000000000000000020d0aef9b77b039100567fbec3deac5294b41ec41336a21a95a35be851fa112511000000000000000100000000000000000000000000000020f8cfb327d9517742fe31d66ff60129d85a3e464d22188d95a53c32e3132069560000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000390000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000003900000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020bd83a4fd723da593b4104242a65dc4c9f0aa51595b97c39c28ca65f474c66ec7000000000000000100000000000000010000000000000020b1c646c25625c8766b0fa6a1aff4bd5dc9ee0fc27074f54d2072a3d8cdbf1ded00000000000000010000000000000001000000000000002095a3bea66806a0a16ce3c74b0f3b32494e1345651cb0e438ed2e97385107e3430000000000000001000000000000000000000000000000206916699a45fdfb8384004d89c6a315b17df2f235f5b835b904c0db675c6a94010000000000000001000000000000000000000000000000208f995ec61c2dccbeb9c7fe1f9ab07ecdb151d4c25dee869fcddca0342e9f92e100000000000000010000000000000000000000000000002040fcfc6bb63dbae33d624e3777a816b50ebb7a75c3788096fb31802eed5badf20000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000440000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703000000000000000700000000000000010000000000000001000000000000002051c6eedc336e8c7c64ff8155254b31da7820204f27c0a158d1cac8a135eb2f9c000000000000000100000000000000010000000000000020bcad8b753d996e6fe12bd8ad8923329d0cf1f6606b0d8e7e85c065482ff69b6a0000000000000001000000000000000000000000000000204480fc856c36220f6771e9b17ac2e69c39a94b5b5ac72fefb864f31a46f8b565000000000000000100000000000000010000000000000020d882d23dcecd5a4ff24e4f097ada499103f4217af8b869ce0275076671c667bc000000000000000100000000000000010000000000000020e6fbce7ccc80a578a93cc241360a739d0248edab1a37196cc8564d3cea08f1a90000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000044000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020604cd428564c7fd4f1f56b98d6e3606560a88ef775c7a7d98001b51b042cfb91000000000000000100000000000000010000000000000020b4961ae32337fb330d5cbe2c567652cf97c1b08eb68d8d3e9fb6cd488a1973b80000000000000001000000000000000000000000000000202f32d27f3c9dab9e7d39411802445169183e1a69655269ff4612e20b5845aae2000000000000000100000000000000010000000000000020c57390cb340730fb4757e6d9269625065f9b6612660a2177c39d2619ba6c9f820000000000000001000000000000000100000000000000201e2c25d0355b2435f10a6081fe0d1c18b2bcf5ac219aa03a7bf09921024c667f000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000440000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000004400000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020df28aab0c1e0b9eb875cd6eaef77484710ac9bda66b5309d3f75f549f2dca92a0000000000000001000000000000000100000000000000207eb3c7c591e0f892945432343c9ad2c27759b7c1cbd244f947e71d519365d523000000000000000100000000000000000000000000000020cb746b8631299eca5f4ac56057e7c228c9eda8fc7ae1639f197b536a7e9f1f3b00000000000000010000000000000001000000000000002093e04c833bb94046be76dac782b2f4e32bd43fb9f5792101228a36dfb286a712000000000000000100000000000000010000000000000020653a458519e3320afef3854df67dd297919d49bad510656792603e8433e203430000000000000001000000000000000100000000000000204bf1e1669389897cdf60a4c21a8ebf7bc19a07905ce2001a19e2353ccbd0bc330000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000750000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020a673f2a13dee1f295baf54863b4ade9f8ad36194543dc96e5f27641f75b8a6130000000000000001000000000000000100000000000000203a714c997001e9a05fc7ec383aca44129a209ae357dfceecd6a4a62283beb92d000000000000000100000000000000000000000000000020a558aea553fc003fae0160895074fcdcbf7c6993b4c04e8a9955882d31ce13d10000000000000001000000000000000100000000000000201ddaf21874d2f1dceb73b2bd9c919f8080291efd13ced9f813727e4f480d6481000000000000000100000000000000000000000000000020484695c1718ea9babdf0da4a169839654a70d31dfb7bfa030bd34c4fd296f173000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000075000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020af1258b69d7476d28621a7f53d0f6970e64ffa4aaa3854a58fde5f9b9ef6f246000000000000000100000000000000010000000000000020d1c537e415fe4be67566c3b3f2f317368ba0e9245cbc9e5bb763ab0860f54acb0000000000000001000000000000000000000000000000209590ef6739c33ffd9d841690bc70d7db3670f18ec3d415639f73a8814d96a578000000000000000100000000000000010000000000000020aef86b1c25b74932f43f0295cd7c5728d8beb0c22d00656fa8fddbeccc1fc88d000000000000000100000000000000000000000000000020eed5635aa9fe26e55ac534a89c39cf891254e6457318ced7e38ad88fc125ecc7000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000750000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000007500000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020f444187b6aed8b923053f21016b19735ac1ae7a5b388c3a24b77ff51e1c8a9b1000000000000000100000000000000010000000000000020e89d576a3d310168700903ef33234b3a6596b234e1da5542d524874248157959000000000000000100000000000000000000000000000020a571342689300bf3f24c41daa8f18038acebef87a4aff9779badb1e45a3ad12b00000000000000010000000000000001000000000000002089d96d9f124e0114712142e432156e3f28d1d69fb964225488694ab55328440b0000000000000001000000000000000000000000000000205f345c922e75b5ee09f6a30d4e99bc3797063459fe2e79c3075e31feffa4522f000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000040000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000202cac98730dcde3a8d3993db1dca0f1985094bcb603acd679de1f2169353995980000000000000001000000000000000100000000000000204447a886401319eabaa837dbf2e6633da15ddf83424342259464f374e35caacf00000000000000010000000000000000000000000000002093a0881cb11f378c3ee374298a66b649fae44fbb2f35e3704ab5f4655c883f85000000000000000100000000000000010000000000000020ca3dc5f22e4573bfae9e4282c195d191a87ba277e564f158302218ee7bcec57300000000000000010000000000000001000000000000002056e5e7ca74faee51ae45c7001256fed2e7e080dcb95a859867c22dcb1608665f000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000004000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020039944d7b72e0b16c0425a2ee0ea494707e2737847468b67852c75844488e28a00000000000000010000000000000001000000000000002038f9389965a1255e737eb7b50b266491f8214deee249c7108d209f37a58f6479000000000000000100000000000000000000000000000020159fb7d1dbca35eff1d0f710637a19e2e36d57033adbce658e94920357d85089000000000000000100000000000000010000000000000020ea8b53cd7415ecfb610e991f3187dc70583ec968dd6f325946dad2d066766dd100000000000000010000000000000001000000000000002099796d2366d350a09cad2698ab80419a6869a2524f9cfcc2eb3055449273a24a0000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000040000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000000400000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000100000000000000204213b43486f6be4ba1e16835a46a0efc4a75028848343aeb079c1820e6d66e9d00000000000000010000000000000001000000000000002067c05032372570f57ce0b0a5709a69faf8cd5b4f4816b0ebfaeebdc5ddb423f3000000000000000100000000000000000000000000000020808c6faf169e8190470dfac9fe647ef5fac0047b66fa4b6fdb48e599786a862f0000000000000001000000000000000100000000000000202ef4e1908e5c1feba751546a1b19b44ec3948b5b79fb15cbc254b6ae858d0622000000000000000100000000000000010000000000000020cf7b4774e00157cbbb3d3167eebc39e16fa993a1f6d067c9342e404e34e33a4a00000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000660000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703000000000000000700000000000000010000000000000001000000000000002000c74ee6020589d97e05e66ef58e188e911bd4a090c41e22dacf938568beefbc0000000000000001000000000000000000000000000000205f4102b0b8800e19f474637f55a226fec10861748b9fa2ec8bdae4826e142bb5000000000000000100000000000000000000000000000020786f95a2172647531fa82d40b84de37a8c8c7ed9f5255069d2aa70f6d62cd587000000000000000100000000000000010000000000000020c333590dcb0e6145e72bd463f743db0abfaeb8772dc580c71cf682d91309ed1f000000000000000100000000000000010000000000000020cca38bcaaeed86d1c037ddb148bba22f6b95749f7f352486d9b2248d154972a4000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000066000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020012f1be2dbfbf432564211d5e2321006bfaab480377832f56a60de51c5b7721d000000000000000100000000000000000000000000000020a208a8f0c84ba755ac34583a27706f071785155bb44e2c1c1b42da927f25c20200000000000000010000000000000000000000000000002033f11f3f1d395d654c44f337de010654fc274e24f3eb38f1d043e7dfd62e1485000000000000000100000000000000010000000000000020231c9cddba9de91f81f082284626d72c840c35a049839db16d0798671da9a94e00000000000000010000000000000001000000000000002015dc39279a52d41ddbcaf227c199cbd51b1f711d661184752155a6495562235a000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000660000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000006600000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000100000000000000205213ac0942e8f89a6a6f456bb1f432e2cfa62a2c0f2dffa90f43645e55942ed4000000000000000100000000000000000000000000000020f80772757f8c8cdbabda52736674cd5cfecab385704328c7d1a93a5476929a24000000000000000100000000000000000000000000000020a18f21e7e8468794ce9a72aafad56c67612abcaa36d917dc7026a967abbe5d10000000000000000100000000000000010000000000000020ccdfc1ce31f7c9c3c299e0c8c2dcba2323cfe7190c2ecab871962f8a14a10c5f0000000000000001000000000000000100000000000000205c412ce971308b3c81ea6b705658f52dec02ecb3332ae0a2ccd740263bcc7a7b000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000030000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020a1c9ad5541c54f701ea497e54275c85960536afb5b4b2b29d90d497b022a49d60000000000000001000000000000000000000000000000200e893726c2a4574ace576d45340294995ea64dae1060cc967d7c262b3fa41f7b000000000000000100000000000000010000000000000020fead840665604a5a49e398fb78efac6fe1eb6f9b9330acae96d1f30f5ec2a112000000000000000100000000000000010000000000000020ca3dc5f22e4573bfae9e4282c195d191a87ba277e564f158302218ee7bcec57300000000000000010000000000000001000000000000002056e5e7ca74faee51ae45c7001256fed2e7e080dcb95a859867c22dcb1608665f000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000003000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000000000000000000002084fd9a7871a3c39bf1a72fbc505f00ca2b3ece9475e686d43e381ea5beaa546f0000000000000001000000000000000000000000000000204acfe5e6ce078248de8120a7c43fd555f9cc48d3ab927360d7d650fa93c6af09000000000000000100000000000000010000000000000020442b7310681f9144ce05c5c0335794243b1628a10269ea3f920a1d69cf0170b4000000000000000100000000000000010000000000000020ea8b53cd7415ecfb610e991f3187dc70583ec968dd6f325946dad2d066766dd100000000000000010000000000000001000000000000002099796d2366d350a09cad2698ab80419a6869a2524f9cfcc2eb3055449273a24a0000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000030000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000000300000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020cf915e6e1dfbc015257586f694a4123ae6676df281514d1da03b191aa271ba8b0000000000000001000000000000000000000000000000208d31059ab3e749d30c903d6e90b31150d2eee4a9dd76ef061c60b12ce67104b20000000000000001000000000000000100000000000000208ee52142db58fe442ca24e9577a242b6b0a01d185709369184976ec6ed203b4d0000000000000001000000000000000100000000000000202ef4e1908e5c1feba751546a1b19b44ec3948b5b79fb15cbc254b6ae858d0622000000000000000100000000000000010000000000000020cf7b4774e00157cbbb3d3167eebc39e16fa993a1f6d067c9342e404e34e33a4a00000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e000000000000005c0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703000000000000000700000000000000010000000000000001000000000000002047e1f5e0fe3ff76eaf6533b6ad4f15e6298846f17c92b90fee4090916be3d5ae000000000000000100000000000000010000000000000020368d67564a09158dfb6de68dfb9eb87ba299687ff58fa2c7213d13474b130927000000000000000100000000000000000000000000000020f476b958e87db8a02656f8467c6e5e45d866f25792959994b010cfab414a683f0000000000000001000000000000000000000000000000204ad6dc0cd0533f78182e33f1a845ac02537dc3fd9cd6a8afe705ed7185762a5c000000000000000100000000000000000000000000000020440141033be391d351cbd747235dd0dd8925385fcbdaf63ca3ce8096a77f70ba0000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000005c000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020bdfd29cfbbedae4c9227f8f665d1fc396e7c7d81b60456b2769aa3128a012cce000000000000000100000000000000010000000000000020ae367347ec635549b68bfb78721a6c7a1a6084fca918c06287dbc1b6afc3f9c20000000000000001000000000000000000000000000000200465cea58d937eb0fdb98fcaf6de41b5bc5a9ef8128bb64c6d5c79fe8b30bd02000000000000000100000000000000000000000000000020241e42aeb3c798b84ad9a34ccc6b26a5fb12fe91536ea9394f0e34b50690f3390000000000000001000000000000000000000000000000204d271360d6ea5729d441a303230c4b3fd940e15129f6f043ffe200fe1412df3c000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000005c0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000005c00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d000000000000000700000000000000010000000000000001000000000000002016481fb3348ec209c5b73140bbb547579f4e76bc9ff2b2fafb9cf0bc486ebb0d000000000000000100000000000000010000000000000020ffbf0c26e0bb6487527adbbb7430418f551be74dc521a103c0c228b9307ac930000000000000000100000000000000000000000000000020bfc3833208072c06854906543f4c49a3ddc86f212ff116bde59fa27acaae0ba0000000000000000100000000000000000000000000000020196600714e2413375e79dfb52d0da692a476ee202a5b16a99a81d9e03b5b4da30000000000000001000000000000000000000000000000204b2589cc642be6064ae59c9496cf16edb00687dfa69b285a43c510b78bfc57d30000000000000001000000000000000100000000000000204bf1e1669389897cdf60a4c21a8ebf7bc19a07905ce2001a19e2353ccbd0bc330000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000270000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703000000000000000700000000000000010000000000000000000000000000002080f7ef92de39fceff81065b7019818e6930334436fdc315685d044001b58c09a0000000000000001000000000000000000000000000000206646e85b38be67320dd5f242052434bb096fc2dd3addf7630266aefa790b07c7000000000000000100000000000000000000000000000020ec22875e1413e14f0b228057c008ca6093a9bcc7bb60d0bd9e92aaa0cf0b83610000000000000001000000000000000100000000000000205174f398ccc856cdbbef4aa77674b4b7eef12d39c064ad97e2c59fc16b229eba0000000000000001000000000000000100000000000000205d77fe2ccf9c9f8603070bd03123cd3455d47968e542db3d55abf5cd35b03d050000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000027000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020aef4f9c0f0239b6889cce148d1dbaccf95010c94f0be3cf9748d71b4945def43000000000000000100000000000000000000000000000020ba86fb189507f2c681123bb98e433685488997ef80ef20ecfd7d745299e4c7df00000000000000010000000000000000000000000000002054c2a7e3d5246f862f53d205afda57fd943cfff4406a59fa2696999b1743dc66000000000000000100000000000000010000000000000020a88fc00e48cff7ada818659ce1afb1d48fbf00ea30b15d29f469922cbe8e2d8c000000000000000100000000000000010000000000000020e7444cc161f3e7f01cf05762fb0fb97caf4bc92619aabc44b759df970816cdad0000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000270000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000002700000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020b138ffae81bc200f061c2ab67715620d7b7abcbfba5efe2efa6264f94ef51b1100000000000000010000000000000000000000000000002044df9f5110073b3f1ffe881eae3bac9162053ab186cde304268de14c32095bba0000000000000001000000000000000000000000000000202f5d2b0dcf4bc4cc6aaeaf0b370ed5744b17239bc12f2916ecbc735ffffed915000000000000000100000000000000010000000000000020738ec93c8a9b7a0f5985915570b5f09db8fea468f04aef909e23d781767e0ee800000000000000010000000000000001000000000000002080f4c94164dc4597576888e1e7dfeeb82efbc11ac8b5ecc2b2df1058b8fa2b0500000000000000010000000000000000000000000000002040fcfc6bb63dbae33d624e3777a816b50ebb7a75c3788096fb31802eed5badf20000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000710000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020cb320b710908037368cfddfb964289f3a40a24e6f3f27a80df5c67f40179b5e000000000000000010000000000000001000000000000002084cc04492d17a5edb263d9419913adcdd2a248cbccea218baca50c1e640d6302000000000000000100000000000000010000000000000020b4894900c33f5635d85562ebbda7805f0ac1d98ae53665e714382ea448ac52c20000000000000001000000000000000100000000000000201ddaf21874d2f1dceb73b2bd9c919f8080291efd13ced9f813727e4f480d6481000000000000000100000000000000000000000000000020484695c1718ea9babdf0da4a169839654a70d31dfb7bfa030bd34c4fd296f173000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000071000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000000000000000000002006799f797656e0505ea9aa0a535611f5ea743079e75576d2d53744c897f84ed70000000000000001000000000000000100000000000000205f667a6c0717dc4c601a1184bd0891be7afdc355fe30045920dae63e1f3c856e0000000000000001000000000000000100000000000000200755751b5c06801532af40f5137b978866beb2f616a3d040c4a46f352c038982000000000000000100000000000000010000000000000020aef86b1c25b74932f43f0295cd7c5728d8beb0c22d00656fa8fddbeccc1fc88d000000000000000100000000000000000000000000000020eed5635aa9fe26e55ac534a89c39cf891254e6457318ced7e38ad88fc125ecc7000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000710000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000007100000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020205ab1bf21fb0168bf5748b6e174de4555503c40e6d52b3821b5370aac0b0e4700000000000000010000000000000001000000000000002011b7f140ef09eef7538363306696405c4689008ce8490adf33f20f762f28539a00000000000000010000000000000001000000000000002071aa0b28d4c939a843faaecd9b982f474a73bc624ea848b3a9684b03b7cc50e700000000000000010000000000000001000000000000002089d96d9f124e0114712142e432156e3f28d1d69fb964225488694ab55328440b0000000000000001000000000000000000000000000000205f345c922e75b5ee09f6a30d4e99bc3797063459fe2e79c3075e31feffa4522f000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000680000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020867251af4b6d29ac71995e022b966b472192d5a1d90690e4af5514a68ce8b565000000000000000100000000000000010000000000000020ca6c56e94dc3db3569b8aa66acc2394bd332e25aca38585f988144d360a7d0d30000000000000001000000000000000100000000000000204bb79970c2fb9ceeb2b3b825d98db63307bfbd367bb0eb605f16caa342d20f42000000000000000100000000000000000000000000000020c897f9cc214e1d82ae3fa75be40cec804be624b41c23e139bfad78e7e7d5fc3b000000000000000100000000000000010000000000000020cca38bcaaeed86d1c037ddb148bba22f6b95749f7f352486d9b2248d154972a4000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000068000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000001000000000000002039a27cc84cea9e85fa67f5248d96cc688de59a7d210956775502db27f8f443ff0000000000000001000000000000000100000000000000209a0722187a4b5424088f7a2e0ef119365189add036f54ccfbf7f3a122c00608d0000000000000001000000000000000100000000000000203d3437767a18c76c6b3ce58e0eaba9f957fb31192a19e2e3adf0c19d5ac4cda30000000000000001000000000000000000000000000000207fadb498e4408564c5da8cdaf1ddd40a060ac7be00e86d18a70cff218a853e5400000000000000010000000000000001000000000000002015dc39279a52d41ddbcaf227c199cbd51b1f711d661184752155a6495562235a000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000680000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000006800000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000100000000000000202a6a70840616ebfb5d1638e323b8f43a6a377eab9d3eaa3991cd39d12667f3be0000000000000001000000000000000100000000000000202780d1d9a2c7592a41e6a59139511ee2aef0d99d9db23fe438898262ea68f128000000000000000100000000000000010000000000000020bd214e04a0d15a2b5ac00a7ad42151c6d124291cbcf919f2a8b5311fd49008470000000000000001000000000000000000000000000000207a18ca5e193aa28605c4cd2e9b219710808aed7388ffc2616a116a897b71ab510000000000000001000000000000000100000000000000205c412ce971308b3c81ea6b705658f52dec02ecb3332ae0a2ccd740263bcc7a7b000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb90000000000000078000000000000005b0000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe00000000000000070000000000000001000000000000000000000000000000205aec0d3335169cf580f7505e7c4cd7cc24c27e4390fdb239fd735df0807599f600000000000000010000000000000000000000000000002098d50afb5cec089047d465c257f6f4f67eb2b1f3f3db3ea9c04acdfb6b594c6800000000000000010000000000000001000000000000002015773bcfd66536eea7acbaae25c30db476b28a3f1319614f1cc53428c222a6a2000000000000000100000000000000000000000000000020117c170cc0d4c56447da1eabb6ef154ea6c4e377a1aa5cd346b12e7de0586b34000000000000000100000000000000000000000000000020abd064ff49887f96babfd46cd68124e8258009456052f82c6f841ed3333cea4e000000000000000100000000000000010000000000000020e34f236cd38596d429603de46eb5d6aeac840855619c4c9bdd620fe41275334b00000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000001b00000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000000000000000000020c8fbd2629d514dab2cbce9e4ae83462fcc6774e941e9585c4a8ddabdbfa90577000000000000000100000000000000000000000000000020fd53cfc0780c4cc2dfd4b382bb68e4cf47711ab6ea93dfc92bff0f885acda1e10000000000000001000000000000000100000000000000203c59224dfa1f02358d3ce793ac666f8b9487e65fd92a19d6ae5b58ffadb40bac00000000000000010000000000000000000000000000002056d53e1552c97d45efe7b3bd26f642633292b8a3481be3d7c021602bb51e0d7e00000000000000010000000000000000000000000000002093bd1f00893ff9e252007222a4d57a16e3aaecfd947f7b9e377dd265ffa0358f000000000000000100000000000000010000000000000020561e8e49d509154002e334c20d827875059af43fbbd69612622be05df2b019da000000000000001b00000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b8930000000000000005000000000000000100000000000000000000000000000020a9d575a765685ebfd9f2e6d86e097bb50fe939759709ce22edad33490bad713e000000000000000100000000000000000000000000000020937a6afa565f265504600456e86163bee3158083e484ac73de8fbe12ec3c95d70000000000000001000000000000000100000000000000201d644d71a3c2a5baea02720e1965f5c4bb866f3546c28496338095e44181a1800000000000000001000000000000000000000000000000209e2fb1bd7e772c2ef8b3847b057de145a6afb5adf66440f0813cd95b9bc5f90f00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f3000000000000005d0000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe00000000000000070000000000000001000000000000000000000000000000206061f85087ac026822c8c6ab57840624bb6df58ff9b8b57614c153579a74219e00000000000000010000000000000001000000000000002035bc263cfd2b97dd0a8d24f53df8168c4fbea500ed4242ae583cbebc0a6e7a00000000000000000100000000000000000000000000000020b7e2c56261281c47cc6a1730563e59a5e33b5698094865fa5de7a3860bbca5c3000000000000000100000000000000000000000000000020117c170cc0d4c56447da1eabb6ef154ea6c4e377a1aa5cd346b12e7de0586b34000000000000000100000000000000000000000000000020abd064ff49887f96babfd46cd68124e8258009456052f82c6f841ed3333cea4e000000000000000100000000000000010000000000000020e34f236cd38596d429603de46eb5d6aeac840855619c4c9bdd620fe41275334b00000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000001d00000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000000000000000000020412571a55095270d685bcb09f282bf29fdfcf6798b24e86864619fc006a13e390000000000000001000000000000000100000000000000206c7fe6075a2295ea07b0f2815f314701c1855f0171f1451c1534412020472a020000000000000001000000000000000000000000000000204b819fe281e85642646916125b6160c384e5d4dc79c677ae533d58cf83beefb700000000000000010000000000000000000000000000002056d53e1552c97d45efe7b3bd26f642633292b8a3481be3d7c021602bb51e0d7e00000000000000010000000000000000000000000000002093bd1f00893ff9e252007222a4d57a16e3aaecfd947f7b9e377dd265ffa0358f000000000000000100000000000000010000000000000020561e8e49d509154002e334c20d827875059af43fbbd69612622be05df2b019da000000000000001d00000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b89300000000000000050000000000000001000000000000000000000000000000206d8dcdeb6bc7b6e5ec214f43e0bef2f78bc11e4a948b30852760e328ea1605a900000000000000010000000000000001000000000000002057ba129bae8250be11b8ef0ca4f6b99ce552fe8a57fc34467f8b469995fca00c0000000000000001000000000000000000000000000000209562c0f996b1a2fa0659b9d4063818df0a46e090cb6c622aa3191cc4ba2386b40000000000000001000000000000000000000000000000209e2fb1bd7e772c2ef8b3847b057de145a6afb5adf66440f0813cd95b9bc5f90f00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f3000000000000007b0000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000000000000000000020afe376b07715fa07f5bbfd62c4bba956114b291f3d224c464cf8bf20120c8cec000000000000000100000000000000000000000000000020f6d5a463bbb0a73a9a61ebd810ea985d27eb7e2fa406d039d43f6257a2010243000000000000000100000000000000010000000000000020729b12088efe2e8116ebb2cd4846fc2a276838a6e83690c6f481dc8583b060a300000000000000010000000000000000000000000000002034ee0063e0f3e2c387de8e07e0faf6210500285cf7dd65f7f099bac3e4df87e500000000000000010000000000000000000000000000002048316aff2ac932e667717670ab3529a8d92d5dbbb3cef3caecd037647159ebd300000000000000010000000000000000000000000000002069f2b2bef63d46c56e2aff6004f910949758c752bbce0f7bfa10638e327881f400000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000003b00000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f7000000000000000600000000000000010000000000000000000000000000002024c5f5c33b0b60cc454aa7be23f12fe1b9f9951c5de2d77975692a338a1d3ec80000000000000001000000000000000000000000000000201bfa05ecaf27f7e13c1de6ea6f28fb1dd0659291de5449096cfa9ad0e23196a8000000000000000100000000000000010000000000000020bb82c6d7233771dd6d82915bc338643a78182b31c871117ab88551300c5812b10000000000000001000000000000000000000000000000206d9466490f7a354ba312a54733cdf0c7068effff9ce1188478bc77942bb7fc53000000000000000100000000000000000000000000000020c5505fdbeca3e6bd0ea4f41a0f376ee34b35fe16baea6e452cd3c7d6768184f0000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000001b00000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b8930000000000000005000000000000000100000000000000000000000000000020a9d575a765685ebfd9f2e6d86e097bb50fe939759709ce22edad33490bad713e000000000000000100000000000000000000000000000020937a6afa565f265504600456e86163bee3158083e484ac73de8fbe12ec3c95d70000000000000001000000000000000100000000000000201d644d71a3c2a5baea02720e1965f5c4bb866f3546c28496338095e44181a1800000000000000001000000000000000000000000000000209e2fb1bd7e772c2ef8b3847b057de145a6afb5adf66440f0813cd95b9bc5f90f00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f300000000000000520000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000010000000000000020468bf95a93e5b32db604e10f5be2b2a570cd08cd3c67c18fd60aa8f2e61778b40000000000000001000000000000000000000000000000204b3b34f4798a8440de8549b76fe35491af86f335a13eee173a203221e46ea0680000000000000001000000000000000100000000000000208976e4be7c19020457e59334000621a40ff508f226584783ab19bf386a46b64d000000000000000100000000000000010000000000000020d0e9867221bd5537fa01926bc0f3c292909077d01e79a6316f9c3565a4810334000000000000000100000000000000000000000000000020abd064ff49887f96babfd46cd68124e8258009456052f82c6f841ed3333cea4e000000000000000100000000000000010000000000000020e34f236cd38596d429603de46eb5d6aeac840855619c4c9bdd620fe41275334b00000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000001200000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f700000000000000060000000000000001000000000000000100000000000000201184ef183bad74923b34033210e19f29f0ae26b1b33cd3122e478359fd45f89f000000000000000100000000000000000000000000000020e706dae44aff0564e538ec9cc80da2da921fa166b9c667a5410698bc02b40e2700000000000000010000000000000001000000000000002051674c68b6b6a55f3f91adf242321e1d3da47838a74be7536f675533333e42a0000000000000000100000000000000010000000000000020a31dc88707744214d54f9c8108474f617c0344f1f1f9bfed63f368598e405eb700000000000000010000000000000000000000000000002093bd1f00893ff9e252007222a4d57a16e3aaecfd947f7b9e377dd265ffa0358f000000000000000100000000000000010000000000000020561e8e49d509154002e334c20d827875059af43fbbd69612622be05df2b019da000000000000001200000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b89300000000000000050000000000000001000000000000000100000000000000207eadc6995ca008150482703f134f349657dbe818978458d9686b369d224ad1550000000000000001000000000000000000000000000000207115746818b0050db5b18ae5951096ff5c5d516aa4fb4c28ea91ca4f853db970000000000000000100000000000000010000000000000020d151125856a9846bd7412a70749a6b1f21aa215e2c42ca1fa4d79739b9183654000000000000000100000000000000010000000000000020c36aefd79dad8645dfb14e40698462ce6783af41b84398cf29a85f6b56d9c3fe00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f300000000000000120000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000010000000000000020ffd8c2064262f3f0f1a403944154a50cfd52f7b8ea70190c1a3a2fa64c17a8b700000000000000010000000000000000000000000000002019f4b1cbad3a275822cf7b06a6e30ddb58984039965670158b65475c55ae7b22000000000000000100000000000000010000000000000020ed5c0c913a696d4fc36995b49adb98793fbdc75deeab48c0b474a117efc2b6bb0000000000000001000000000000000100000000000000201f7f35161a08c3ce3297695032655d42368e84c81f094c9353c03285e552446e000000000000000100000000000000000000000000000020191e7831d1e8586bc4af5d49625fea5f677bc8dc91da26cf372f455ca0c3da030000000000000001000000000000000100000000000000205f07d8c8d032c001837b7bbcf14619856fe91011d5aff21fccda9a13597afcb000000000000000010000000000000001000000000000002028d8a0c369da9999b54e52cac432245cb8c71873c1bdb1486a877fdce8f5f4ff000000000000001200000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f700000000000000060000000000000001000000000000000100000000000000201184ef183bad74923b34033210e19f29f0ae26b1b33cd3122e478359fd45f89f000000000000000100000000000000000000000000000020e706dae44aff0564e538ec9cc80da2da921fa166b9c667a5410698bc02b40e2700000000000000010000000000000001000000000000002051674c68b6b6a55f3f91adf242321e1d3da47838a74be7536f675533333e42a0000000000000000100000000000000010000000000000020a31dc88707744214d54f9c8108474f617c0344f1f1f9bfed63f368598e405eb700000000000000010000000000000000000000000000002093bd1f00893ff9e252007222a4d57a16e3aaecfd947f7b9e377dd265ffa0358f000000000000000100000000000000010000000000000020561e8e49d509154002e334c20d827875059af43fbbd69612622be05df2b019da000000000000001200000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b89300000000000000050000000000000001000000000000000100000000000000207eadc6995ca008150482703f134f349657dbe818978458d9686b369d224ad1550000000000000001000000000000000000000000000000207115746818b0050db5b18ae5951096ff5c5d516aa4fb4c28ea91ca4f853db970000000000000000100000000000000010000000000000020d151125856a9846bd7412a70749a6b1f21aa215e2c42ca1fa4d79739b9183654000000000000000100000000000000010000000000000020c36aefd79dad8645dfb14e40698462ce6783af41b84398cf29a85f6b56d9c3fe00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f3000000000000002e0000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe000000000000000700000000000000010000000000000001000000000000002017eac69bdc38aa14f15d67868c4fa45bfadd42415848dce58fc913abc8806dc2000000000000000100000000000000000000000000000020174e9dec632104506b2a7a2b22156cb03f6a02ed35f0c146d6c39d18bdb989cb00000000000000010000000000000000000000000000002028921cc908fc6f45669cb85636cb19ed07751b63c10070e499ec563d290cf2e40000000000000001000000000000000000000000000000209d209fc3f90c6426265e47c89c963bb6fe05e05f0f7ce5be98239a5b7f5c1a3900000000000000010000000000000001000000000000002089c584e6019abf5295c24cc7c5347bce9d8a69e599062588a9308149f83e95fd0000000000000001000000000000000000000000000000205adb9aebbffe3cd8200fbd8b1da579960d8844069ce8920a1343f3d8c48b7bfc00000000000000010000000000000001000000000000002028d8a0c369da9999b54e52cac432245cb8c71873c1bdb1486a877fdce8f5f4ff000000000000002e00000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000010000000000000020ac13b2d49f41036c0f67abc25acdaf6daba872b440e1485b1c9d54ab2929b3aa000000000000000100000000000000000000000000000020e85d9feb63515e2f8b87636de1d40df44bd82c81dd63b2210ab8837b2f7d4375000000000000000100000000000000000000000000000020567c45887d744179c481988b026eb6fade0c872d8fe8126e8496c8a536f0bb23000000000000000100000000000000000000000000000020bb4f5a180f26eb7dd9d6c1b7357041cd85ce4cdb1ae3c965bbb530394a6cdb6d000000000000000100000000000000010000000000000020aa190a7636f9917a9691ff309a2844cfc4aac3e251781f1f0e7c63623540714a000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000000e00000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b8930000000000000005000000000000000100000000000000010000000000000020de8f4b83c4ef8ad99c836e5c4376268b2120e96b4f51511efab0f70d12361a250000000000000001000000000000000000000000000000207c6e86606677bf3e70bfa6940c8ff5d46fe2064bd193bf1009f7f2a27b9f94aa0000000000000001000000000000000000000000000000204e7e2fe1621d5b523d51298ffea591b8ada737e3ffc38a3e28fb1abbe4bad47f000000000000000100000000000000000000000000000020676b9b69dbb0335c8ffc750e47b9002e096de3b682b79a0809bb8cd5020a5c120000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d8000000000000006a0000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000010000000000000020b6c130025d8a678808198cef2806c4dda6651e840b26e9e18212eb166d1e9029000000000000000100000000000000000000000000000020d2a2f545bacaff22ea61988c01df147e9af4528d59918e5a881a9f769cddabe4000000000000000100000000000000010000000000000020fe4cb80d7963d1a7b2b513a9e6f097c5767bf79ef141b220b9bf637477ec0b3c00000000000000010000000000000000000000000000002086968b78264832f401e50405cec5cfb99218e7e056e02b4d24bfff31e90892a7000000000000000100000000000000010000000000000020522bf3cf53240bf6d14a46e8fd9b38443eaab67e1a6a827c2608b577701babe100000000000000010000000000000000000000000000002069f2b2bef63d46c56e2aff6004f910949758c752bbce0f7bfa10638e327881f400000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000002a00000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000010000000000000020c81914a825445780e87e562e1ee2a9f558fe8593726fb358dfe7b05c3f3a1c88000000000000000100000000000000000000000000000020adc1f55eaf2be34a19036c594b47152a5cd8af88f7ea333393d5b3d18f49775000000000000000010000000000000001000000000000002069f48946897b62c62586bf42e0d8d56cdb0900cad1b1afdd83921875a89087d6000000000000000100000000000000000000000000000020bb4f5a180f26eb7dd9d6c1b7357041cd85ce4cdb1ae3c965bbb530394a6cdb6d000000000000000100000000000000010000000000000020aa190a7636f9917a9691ff309a2844cfc4aac3e251781f1f0e7c63623540714a000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000000a00000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b893000000000000000500000000000000010000000000000001000000000000002082a030df8809d68054fda72fb33671ce9978fc4739b48fc483d8f1bb0920d16b000000000000000100000000000000000000000000000020b60164232206ffe0dde93a8d5ff6e11cac98b23e616d034908fbc37735e37e43000000000000000100000000000000010000000000000020cb46828135062d95c77a8184050a77537dd54b40b4a65b59197e170c577e7309000000000000000100000000000000000000000000000020676b9b69dbb0335c8ffc750e47b9002e096de3b682b79a0809bb8cd5020a5c120000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d800000000000000010000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000000000000000000020f1a7c5d6e07283fceac6b06de347abf710543f327192fd8ae4755ace11b1d5720000000000000001000000000000000100000000000000200422bd6c9fd876fc7a495ab450493fee011b5c8538e4006990a7e7f77dd81d330000000000000001000000000000000100000000000000203231373985c731dc714de4a2b03cf381d8724927bfb1cb6a58024edf11873cba00000000000000010000000000000001000000000000002095f4234017c7a78c5ed078740e89362af8c99771d4cc60febfa6394b2913b9110000000000000001000000000000000100000000000000202508e5fb00289c04a04868dd9a8e650164a89dac9743cf12cc57e4ade9d9f1590000000000000001000000000000000100000000000000205f07d8c8d032c001837b7bbcf14619856fe91011d5aff21fccda9a13597afcb000000000000000010000000000000001000000000000002028d8a0c369da9999b54e52cac432245cb8c71873c1bdb1486a877fdce8f5f4ff000000000000000100000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000000000000000000020c83bb151d04b94c2f0c58e4d7c173f0cbbe1e22c942d0cd63b93cf93a5870f2e000000000000000100000000000000010000000000000020ea8bac70e77069f4233ca6db83710bdea6cbc05b367e424d6005513567f4cb8e000000000000000100000000000000010000000000000020d92c2ca99c237bb5c8cf19fcba261cfb217560b8d62dc8ad3cbb21b90b88897f00000000000000010000000000000001000000000000002030116ed526a9a272ab37478970a12458e07b270ff594e7068a36ed8c06edcd36000000000000000100000000000000010000000000000020fc8c882597983ad3169a658b567ca73ade33f768fecca21826b7fbe16b4cc82e000000000000000100000000000000010000000000000020561e8e49d509154002e334c20d827875059af43fbbd69612622be05df2b019da000000000000000100000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b8930000000000000005000000000000000100000000000000000000000000000020c75c3594f60695ba625ac759fd919c488f6fa21e40c0c0aced786fcce840a72000000000000000010000000000000001000000000000002096221dffc08ee08ad7381bfd9d88278ffd23cae14ae24b720f5553a9a5e0b1e20000000000000001000000000000000100000000000000204ece1523b41d3acdd62d941f79a184e58f321c32583ab228f101ad36aacbea49000000000000000100000000000000010000000000000020b406364799e599e8956dddafdf979d5726d49f1b43921cb68fcd71e95b34642a0000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d8000000000000005f0000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe000000000000000700000000000000010000000000000000000000000000002007b11e26721e21e4135caed18e99bde7c658bb53b8c4a5c355ff45b04b14d852000000000000000100000000000000000000000000000020d94a70c429f933aae2501500f9478fe5deadcf5025156fe67682eec65fc9b7c9000000000000000100000000000000000000000000000020b7e2c56261281c47cc6a1730563e59a5e33b5698094865fa5de7a3860bbca5c3000000000000000100000000000000000000000000000020117c170cc0d4c56447da1eabb6ef154ea6c4e377a1aa5cd346b12e7de0586b34000000000000000100000000000000000000000000000020abd064ff49887f96babfd46cd68124e8258009456052f82c6f841ed3333cea4e000000000000000100000000000000010000000000000020e34f236cd38596d429603de46eb5d6aeac840855619c4c9bdd620fe41275334b00000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000001f00000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000000000000000000020503f8020d78b15ad16ca8d4d4915385b86c3ed274626d2376b96fda28975cee8000000000000000100000000000000000000000000000020c245b850eec4e6901bf46304ab90332aa6c45933b8f0b7310d3c284389febd980000000000000001000000000000000000000000000000204b819fe281e85642646916125b6160c384e5d4dc79c677ae533d58cf83beefb700000000000000010000000000000000000000000000002056d53e1552c97d45efe7b3bd26f642633292b8a3481be3d7c021602bb51e0d7e00000000000000010000000000000000000000000000002093bd1f00893ff9e252007222a4d57a16e3aaecfd947f7b9e377dd265ffa0358f000000000000000100000000000000010000000000000020561e8e49d509154002e334c20d827875059af43fbbd69612622be05df2b019da000000000000001f00000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b89300000000000000050000000000000001000000000000000000000000000000208d90b6ac15c8761491565219e912a94ee7aa75d5571777cf4cf30d5bc0dedc69000000000000000100000000000000000000000000000020773fef777c3fc91d4537d35597e3266a9123c3f5d4571760e30964d8914012ce0000000000000001000000000000000000000000000000209562c0f996b1a2fa0659b9d4063818df0a46e090cb6c622aa3191cc4ba2386b40000000000000001000000000000000000000000000000209e2fb1bd7e772c2ef8b3847b057de145a6afb5adf66440f0813cd95b9bc5f90f00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f3000000000000002c0000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe000000000000000700000000000000010000000000000001000000000000002089e92ff4585d582f07fbbf725bf63a7f7b6eaa8b8a5520a46da65cf81de675ea0000000000000001000000000000000100000000000000201af5c8e18513dd78629af2c6fbb8dff45d76eefd40c050b9ebfc8ba67729246900000000000000010000000000000000000000000000002028921cc908fc6f45669cb85636cb19ed07751b63c10070e499ec563d290cf2e40000000000000001000000000000000000000000000000209d209fc3f90c6426265e47c89c963bb6fe05e05f0f7ce5be98239a5b7f5c1a3900000000000000010000000000000001000000000000002089c584e6019abf5295c24cc7c5347bce9d8a69e599062588a9308149f83e95fd0000000000000001000000000000000000000000000000205adb9aebbffe3cd8200fbd8b1da579960d8844069ce8920a1343f3d8c48b7bfc00000000000000010000000000000001000000000000002028d8a0c369da9999b54e52cac432245cb8c71873c1bdb1486a877fdce8f5f4ff000000000000002c00000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000010000000000000020fb791ffc22394649f5227e0ec103fb03fff37bcddb09e5e76276c09655c7fcab000000000000000100000000000000010000000000000020e997ea5b7a7d7f9996d9c7728fb106ba9856ed292628202c4e6596582b410fa5000000000000000100000000000000000000000000000020567c45887d744179c481988b026eb6fade0c872d8fe8126e8496c8a536f0bb23000000000000000100000000000000000000000000000020bb4f5a180f26eb7dd9d6c1b7357041cd85ce4cdb1ae3c965bbb530394a6cdb6d000000000000000100000000000000010000000000000020aa190a7636f9917a9691ff309a2844cfc4aac3e251781f1f0e7c63623540714a000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000000c00000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b89300000000000000050000000000000001000000000000000100000000000000201d90e9ab63a4ac8cf858080bb3689a27376376a70ebe97ab6affbd2c4b27c219000000000000000100000000000000010000000000000020ea8dad601197a18c3d2c2d22a4b8359f5b9c2885a61421537363980b82ed6e8d0000000000000001000000000000000000000000000000204e7e2fe1621d5b523d51298ffea591b8ada737e3ffc38a3e28fb1abbe4bad47f000000000000000100000000000000000000000000000020676b9b69dbb0335c8ffc750e47b9002e096de3b682b79a0809bb8cd5020a5c120000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d8000000000000007e0000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000010000000000000020f3e155be9af5b04464a40e781139221214b6fd01541245758f775e85604c1d440000000000000001000000000000000000000000000000208a3d07cfe26342bf84f1b087c20d593200b6504fcd329ac6f26543643c3572750000000000000001000000000000000000000000000000209625e5ff3d74f577f1e8b53ffc880d7a9e3b991e2f8bae6dc35eaf4f93b3315f00000000000000010000000000000000000000000000002034ee0063e0f3e2c387de8e07e0faf6210500285cf7dd65f7f099bac3e4df87e500000000000000010000000000000000000000000000002048316aff2ac932e667717670ab3529a8d92d5dbbb3cef3caecd037647159ebd300000000000000010000000000000000000000000000002069f2b2bef63d46c56e2aff6004f910949758c752bbce0f7bfa10638e327881f400000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000003e00000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000010000000000000020a80685be55e7def2df17b0574bed2a94c17a30a37754904f01e6cc7d07273f580000000000000001000000000000000000000000000000201e9fc6b4ac4fd9cbe77018d1deca0d5f0fa6be029d90a928252dba6c759f7c7a000000000000000100000000000000000000000000000020422bb341469f1780f456ab99dd657d890e0ac86e839d1919c0c871dd8bb463d80000000000000001000000000000000000000000000000206d9466490f7a354ba312a54733cdf0c7068effff9ce1188478bc77942bb7fc53000000000000000100000000000000000000000000000020c5505fdbeca3e6bd0ea4f41a0f376ee34b35fe16baea6e452cd3c7d6768184f0000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000001e00000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b8930000000000000005000000000000000100000000000000010000000000000020d0fd081654c8aa4cf2c84a303be9ad404ff9321e11ed279911842c7712e3bf05000000000000000100000000000000000000000000000020773fef777c3fc91d4537d35597e3266a9123c3f5d4571760e30964d8914012ce0000000000000001000000000000000000000000000000209562c0f996b1a2fa0659b9d4063818df0a46e090cb6c622aa3191cc4ba2386b40000000000000001000000000000000000000000000000209e2fb1bd7e772c2ef8b3847b057de145a6afb5adf66440f0813cd95b9bc5f90f00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f300000000000000130000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe000000000000000700000000000000010000000000000000000000000000002084409188b65dd9604d22afd4a664aa0bcf5c8f33a05b11f700b292197276870100000000000000010000000000000000000000000000002019f4b1cbad3a275822cf7b06a6e30ddb58984039965670158b65475c55ae7b22000000000000000100000000000000010000000000000020ed5c0c913a696d4fc36995b49adb98793fbdc75deeab48c0b474a117efc2b6bb0000000000000001000000000000000100000000000000201f7f35161a08c3ce3297695032655d42368e84c81f094c9353c03285e552446e000000000000000100000000000000000000000000000020191e7831d1e8586bc4af5d49625fea5f677bc8dc91da26cf372f455ca0c3da030000000000000001000000000000000100000000000000205f07d8c8d032c001837b7bbcf14619856fe91011d5aff21fccda9a13597afcb000000000000000010000000000000001000000000000002028d8a0c369da9999b54e52cac432245cb8c71873c1bdb1486a877fdce8f5f4ff000000000000001300000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f700000000000000060000000000000001000000000000000000000000000000207ff021f07f5a82f2af15e41d39579befd26922c3707cb6b90e4693a28c89d468000000000000000100000000000000000000000000000020e706dae44aff0564e538ec9cc80da2da921fa166b9c667a5410698bc02b40e2700000000000000010000000000000001000000000000002051674c68b6b6a55f3f91adf242321e1d3da47838a74be7536f675533333e42a0000000000000000100000000000000010000000000000020a31dc88707744214d54f9c8108474f617c0344f1f1f9bfed63f368598e405eb700000000000000010000000000000000000000000000002093bd1f00893ff9e252007222a4d57a16e3aaecfd947f7b9e377dd265ffa0358f000000000000000100000000000000010000000000000020561e8e49d509154002e334c20d827875059af43fbbd69612622be05df2b019da000000000000001300000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b8930000000000000005000000000000000100000000000000000000000000000020c356c883ff5ffec5372cfe1b0e709631d90d2107e9f2891f0c2ce64b5b505c220000000000000001000000000000000000000000000000207115746818b0050db5b18ae5951096ff5c5d516aa4fb4c28ea91ca4f853db970000000000000000100000000000000010000000000000020d151125856a9846bd7412a70749a6b1f21aa215e2c42ca1fa4d79739b9183654000000000000000100000000000000010000000000000020c36aefd79dad8645dfb14e40698462ce6783af41b84398cf29a85f6b56d9c3fe00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f300000000000000600000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000010000000000000020048ffc878e877e49adf2a2aa911191c7d57f843173dafb031e80d29dd659c2c50000000000000001000000000000000100000000000000203c153481e2fb28abba1eb045c5872de7867c4da6e03ad309a1e10d882524a4ed00000000000000010000000000000001000000000000002046aa03ba8a9886a3f0aed110bc7bd5a800b3a0c72e0882d90a75488848fb444a00000000000000010000000000000001000000000000002043fd33e570512d1ec7c5a2d8d9e016f651663874b20ff2cfed24bc514da4efcb000000000000000100000000000000010000000000000020522bf3cf53240bf6d14a46e8fd9b38443eaab67e1a6a827c2608b577701babe100000000000000010000000000000000000000000000002069f2b2bef63d46c56e2aff6004f910949758c752bbce0f7bfa10638e327881f400000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000002000000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f7000000000000000600000000000000010000000000000001000000000000002042a82350d26acba6691b326c15636cb755104006b5d341f998acda6c10c81d2e0000000000000001000000000000000100000000000000205454d545f19342284d07b287f7279f0663887e4aa7f92acf63677ad07a2e576800000000000000010000000000000001000000000000002013e785e18a24d136cd6ab95d4bd71df18d225451d041c1a5b3774ecb0596f08600000000000000010000000000000001000000000000002008838d39ec562eab71e05ccb9d707477e4333bf52a9478716e77d269f0cda014000000000000000100000000000000010000000000000020aa190a7636f9917a9691ff309a2844cfc4aac3e251781f1f0e7c63623540714a000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000000000000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b89300000000000000050000000000000001000000000000000100000000000000202a17b1a6f155c5b6f4736035d75ec3a0f54add070a7ebdcc679218234feade3f00000000000000010000000000000001000000000000002096221dffc08ee08ad7381bfd9d88278ffd23cae14ae24b720f5553a9a5e0b1e20000000000000001000000000000000100000000000000204ece1523b41d3acdd62d941f79a184e58f321c32583ab228f101ad36aacbea49000000000000000100000000000000010000000000000020b406364799e599e8956dddafdf979d5726d49f1b43921cb68fcd71e95b34642a0000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d8000000000000003f0000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe00000000000000070000000000000001000000000000000000000000000000202bc97e6e1c27dfe52a47504d26e874913ef704aee0eb7537041654f7aa9c359100000000000000010000000000000000000000000000002046c7ca545ca2569f57f8698e628f2c35ba42042e3507a87102b2ba303bac043c0000000000000001000000000000000000000000000000203ce0d6af0b7fea7440278264dde3b7faa7338d64cd4f9e78def5bf514624e165000000000000000100000000000000000000000000000020962ba35cedafee3b867acfec185039aee289a4c66789c1406b399a3cde120bb10000000000000001000000000000000000000000000000204f2c990b2efc129bf5b5178763583755b59f44b45aa91e2d21892fb30f59ebdf0000000000000001000000000000000000000000000000205adb9aebbffe3cd8200fbd8b1da579960d8844069ce8920a1343f3d8c48b7bfc00000000000000010000000000000001000000000000002028d8a0c369da9999b54e52cac432245cb8c71873c1bdb1486a877fdce8f5f4ff000000000000003f00000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f7000000000000000600000000000000010000000000000000000000000000002001c9f6fb7d2d5899135d55226583e1acf1f37a6cfa643a6a9b582ca451c50b160000000000000001000000000000000000000000000000201e9fc6b4ac4fd9cbe77018d1deca0d5f0fa6be029d90a928252dba6c759f7c7a000000000000000100000000000000000000000000000020422bb341469f1780f456ab99dd657d890e0ac86e839d1919c0c871dd8bb463d80000000000000001000000000000000000000000000000206d9466490f7a354ba312a54733cdf0c7068effff9ce1188478bc77942bb7fc53000000000000000100000000000000000000000000000020c5505fdbeca3e6bd0ea4f41a0f376ee34b35fe16baea6e452cd3c7d6768184f0000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000001f00000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b89300000000000000050000000000000001000000000000000000000000000000208d90b6ac15c8761491565219e912a94ee7aa75d5571777cf4cf30d5bc0dedc69000000000000000100000000000000000000000000000020773fef777c3fc91d4537d35597e3266a9123c3f5d4571760e30964d8914012ce0000000000000001000000000000000000000000000000209562c0f996b1a2fa0659b9d4063818df0a46e090cb6c622aa3191cc4ba2386b40000000000000001000000000000000000000000000000209e2fb1bd7e772c2ef8b3847b057de145a6afb5adf66440f0813cd95b9bc5f90f00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f300000000000000770000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000000000000000000020157070aa3b4b2ba9d2da9658d51417ea4e85b423389df6b78373cb4d32129f97000000000000000100000000000000000000000000000020174122918306a895b7dca317d3f3a4930494e7229897667d4b06395bcd0eb9fd000000000000000100000000000000000000000000000020a45b8ef53d45b6e3a90bb8763a53beeac821059fc33602b8d1362f596e2bd81b000000000000000100000000000000010000000000000020112c2364e43f3f1054969d6d4cac83d5d2003a5a1dcb27b62871795005af3ac800000000000000010000000000000000000000000000002048316aff2ac932e667717670ab3529a8d92d5dbbb3cef3caecd037647159ebd300000000000000010000000000000000000000000000002069f2b2bef63d46c56e2aff6004f910949758c752bbce0f7bfa10638e327881f400000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000003700000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000000000000000000020b53f925bd62ba522748ac26afff5dde8debd3a5e70f850b0bfce12c1c84ebda30000000000000001000000000000000000000000000000207d0636feadeb48a4ed1bf79de1f384a00de7aad77601b72efdc798e10a70ae57000000000000000100000000000000000000000000000020d5bfe4372e7eca6eb201533a0e55526d2c937b7d9b288ed958a55e759201868c00000000000000010000000000000001000000000000002032001ae94e4bda6153b4388b21e2413e9cb17eecfa21be7afd2b39fec286c263000000000000000100000000000000000000000000000020c5505fdbeca3e6bd0ea4f41a0f376ee34b35fe16baea6e452cd3c7d6768184f0000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000001700000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b8930000000000000005000000000000000100000000000000000000000000000020b7b6e38156242525a08b887284578daa050b1228f0e544c23c726a2411dd1de600000000000000010000000000000000000000000000002026c4940e558d3e4b12b82d0f681bee119ead66c37e0891be106398f3cf09db510000000000000001000000000000000000000000000000206cd045d983b4126a87b7c4814223e855db6e7eda6d30b38003e7ad93cea1cef9000000000000000100000000000000010000000000000020c36aefd79dad8645dfb14e40698462ce6783af41b84398cf29a85f6b56d9c3fe00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f300000000000000070000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000000000000000000020357c339e74e7dda467996be86e472f0a9abb30f7edb90f0dece7f7e4c3febf4e000000000000000100000000000000000000000000000020add43efb76976b279d68d188be203aadb4e99ba4032e992e6c4b686b6f48167500000000000000010000000000000000000000000000002050bf81f56c9f182c6309ee50e28e87ff24ef1a9ae7592e5b73f5cfb6bf92244b00000000000000010000000000000001000000000000002095f4234017c7a78c5ed078740e89362af8c99771d4cc60febfa6394b2913b9110000000000000001000000000000000100000000000000202508e5fb00289c04a04868dd9a8e650164a89dac9743cf12cc57e4ade9d9f1590000000000000001000000000000000100000000000000205f07d8c8d032c001837b7bbcf14619856fe91011d5aff21fccda9a13597afcb000000000000000010000000000000001000000000000002028d8a0c369da9999b54e52cac432245cb8c71873c1bdb1486a877fdce8f5f4ff000000000000000700000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000000000000000000020cb7203fee52fc010561deb5cd86ac8e9a1f636750072fb73da4240e45cdd4f01000000000000000100000000000000000000000000000020c21ff070ddaa1e1011aee49c969226c4c737f9280869afbd8af4ebdeca0068e9000000000000000100000000000000000000000000000020f79f68c245a25558534328f907179db0e975ec353da7e91aca2894b4a4d0f65100000000000000010000000000000001000000000000002030116ed526a9a272ab37478970a12458e07b270ff594e7068a36ed8c06edcd36000000000000000100000000000000010000000000000020fc8c882597983ad3169a658b567ca73ade33f768fecca21826b7fbe16b4cc82e000000000000000100000000000000010000000000000020561e8e49d509154002e334c20d827875059af43fbbd69612622be05df2b019da000000000000000700000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b893000000000000000500000000000000010000000000000000000000000000002049c1995f648d3e042291611621bebf89011a04b6bfadc9a0a71bb6f3a7bfa342000000000000000100000000000000000000000000000020b7471941d11a0896d48c1222932ed56424a798cff532c025bc4731f96910fb3700000000000000010000000000000000000000000000002042b48c3932deab345a34655a3ebce45d7acbcb123c3b4161b8bcae4d81afcea3000000000000000100000000000000010000000000000020b406364799e599e8956dddafdf979d5726d49f1b43921cb68fcd71e95b34642a0000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d800000000000000380000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe00000000000000070000000000000001000000000000000100000000000000204e6dbf1f8cb18138e2f0a88b588aee3f0a68e408df9bfd12ce37e89eb80b79b7000000000000000100000000000000010000000000000020e9165bbb9049059f9475b25b7e2c56ef6827fc9d10b41d576c6dbf6310e956a6000000000000000100000000000000010000000000000020a732decfbed445f9226c8b8801bc4d85d1415c5a4e93714484d65ef3820d4dc4000000000000000100000000000000000000000000000020962ba35cedafee3b867acfec185039aee289a4c66789c1406b399a3cde120bb10000000000000001000000000000000000000000000000204f2c990b2efc129bf5b5178763583755b59f44b45aa91e2d21892fb30f59ebdf0000000000000001000000000000000000000000000000205adb9aebbffe3cd8200fbd8b1da579960d8844069ce8920a1343f3d8c48b7bfc00000000000000010000000000000001000000000000002028d8a0c369da9999b54e52cac432245cb8c71873c1bdb1486a877fdce8f5f4ff000000000000003800000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f700000000000000060000000000000001000000000000000100000000000000200284fc891b4c6b42cd4c0c2a6dcd5655d2b0808c75e100d88573d47a56e9f66b00000000000000010000000000000001000000000000002095a9e2ff01c9ec3c31608fac2bad1d98d046d63911881f1933a281f7cd9bde32000000000000000100000000000000010000000000000020bb82c6d7233771dd6d82915bc338643a78182b31c871117ab88551300c5812b10000000000000001000000000000000000000000000000206d9466490f7a354ba312a54733cdf0c7068effff9ce1188478bc77942bb7fc53000000000000000100000000000000000000000000000020c5505fdbeca3e6bd0ea4f41a0f376ee34b35fe16baea6e452cd3c7d6768184f0000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000001800000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b8930000000000000005000000000000000100000000000000010000000000000020d00575ae3727d2061079df580520d9a797cd9d952529f81afef713523dac6f00000000000000000100000000000000010000000000000020112ac177060220e43704d3e0888610177f455c0d250d239a9a2f9760ac9fc5610000000000000001000000000000000100000000000000201d644d71a3c2a5baea02720e1965f5c4bb866f3546c28496338095e44181a1800000000000000001000000000000000000000000000000209e2fb1bd7e772c2ef8b3847b057de145a6afb5adf66440f0813cd95b9bc5f90f00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f300000000000000060000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe00000000000000070000000000000001000000000000000100000000000000206b814440d86cb0dbb4a7b3348f8a9394ee0d62bc5008b139e00daea3dec87f83000000000000000100000000000000000000000000000020add43efb76976b279d68d188be203aadb4e99ba4032e992e6c4b686b6f48167500000000000000010000000000000000000000000000002050bf81f56c9f182c6309ee50e28e87ff24ef1a9ae7592e5b73f5cfb6bf92244b00000000000000010000000000000001000000000000002095f4234017c7a78c5ed078740e89362af8c99771d4cc60febfa6394b2913b9110000000000000001000000000000000100000000000000202508e5fb00289c04a04868dd9a8e650164a89dac9743cf12cc57e4ade9d9f1590000000000000001000000000000000100000000000000205f07d8c8d032c001837b7bbcf14619856fe91011d5aff21fccda9a13597afcb000000000000000010000000000000001000000000000002028d8a0c369da9999b54e52cac432245cb8c71873c1bdb1486a877fdce8f5f4ff000000000000000600000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f7000000000000000600000000000000010000000000000001000000000000002048233e132e19b0a345b12467e9b8bd638243d05979e444ca9eb49f1a5aaa33c1000000000000000100000000000000000000000000000020c21ff070ddaa1e1011aee49c969226c4c737f9280869afbd8af4ebdeca0068e9000000000000000100000000000000000000000000000020f79f68c245a25558534328f907179db0e975ec353da7e91aca2894b4a4d0f65100000000000000010000000000000001000000000000002030116ed526a9a272ab37478970a12458e07b270ff594e7068a36ed8c06edcd36000000000000000100000000000000010000000000000020fc8c882597983ad3169a658b567ca73ade33f768fecca21826b7fbe16b4cc82e000000000000000100000000000000010000000000000020561e8e49d509154002e334c20d827875059af43fbbd69612622be05df2b019da000000000000000600000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b89300000000000000050000000000000001000000000000000100000000000000205cd6f132532ffd62306f15011a420a0b8ec62efc0e19d635fbe837b20d1f6383000000000000000100000000000000000000000000000020b7471941d11a0896d48c1222932ed56424a798cff532c025bc4731f96910fb3700000000000000010000000000000000000000000000002042b48c3932deab345a34655a3ebce45d7acbcb123c3b4161b8bcae4d81afcea3000000000000000100000000000000010000000000000020b406364799e599e8956dddafdf979d5726d49f1b43921cb68fcd71e95b34642a0000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d800000000000000630000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe00000000000000070000000000000001000000000000000000000000000000208874cc67226c4b2c45f1cd4547eb9ee1ef2d778c78dbae9a512c926c91fc42250000000000000001000000000000000000000000000000209bb03b71f8958bc746c557f0f8faf121940b3b5bcb04a7ed2e5343acd64d062400000000000000010000000000000001000000000000002046aa03ba8a9886a3f0aed110bc7bd5a800b3a0c72e0882d90a75488848fb444a00000000000000010000000000000001000000000000002043fd33e570512d1ec7c5a2d8d9e016f651663874b20ff2cfed24bc514da4efcb000000000000000100000000000000010000000000000020522bf3cf53240bf6d14a46e8fd9b38443eaab67e1a6a827c2608b577701babe100000000000000010000000000000000000000000000002069f2b2bef63d46c56e2aff6004f910949758c752bbce0f7bfa10638e327881f400000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000002300000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000000000000000000020dc904301a3a730319cecc814c8c65fa219ce8d8092a23f13d9458125918898a7000000000000000100000000000000000000000000000020f067bfccbdc15e24f6e857e8fbdab2d4ecedb8c6aa15a2a0717c07eea62b306c00000000000000010000000000000001000000000000002013e785e18a24d136cd6ab95d4bd71df18d225451d041c1a5b3774ecb0596f08600000000000000010000000000000001000000000000002008838d39ec562eab71e05ccb9d707477e4333bf52a9478716e77d269f0cda014000000000000000100000000000000010000000000000020aa190a7636f9917a9691ff309a2844cfc4aac3e251781f1f0e7c63623540714a000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000000300000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b89300000000000000050000000000000001000000000000000000000000000000201336110f91f33c3f364d7ae79745ab074706829f1990aa15a5156c2b014ad96a0000000000000001000000000000000000000000000000200f27fddea6bb159e213c6edb71cefec5c18ec69adb31d5715312ce3405d664d30000000000000001000000000000000100000000000000204ece1523b41d3acdd62d941f79a184e58f321c32583ab228f101ad36aacbea49000000000000000100000000000000010000000000000020b406364799e599e8956dddafdf979d5726d49f1b43921cb68fcd71e95b34642a0000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d8000000000000004f0000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe00000000000000070000000000000001000000000000000000000000000000203d74cfa6ce8753c2314f744f87a56b6b108ecf65653caa2364a634d2b8851cf5000000000000000100000000000000000000000000000020eb6555b6c2a8565d28f8e09c107fbe6032aebd2eaac7fa32d82f49b0d087d1fb00000000000000010000000000000000000000000000002018508f563a07ec3c3507650251f0eef23b66d16d738f722bc8282a57ffb21dec0000000000000001000000000000000000000000000000205605f37a90437bfddedbdf2de353ae2e469b08b3a208b421026e44924f19d08b000000000000000100000000000000010000000000000020e571a03c8ba07fbb21c326d64891dcc277d09b2ce6b879007c30997bb5605a4b000000000000000100000000000000010000000000000020e34f236cd38596d429603de46eb5d6aeac840855619c4c9bdd620fe41275334b00000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000000f00000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000000000000000000020afc25536630b069a34435cc05318ddb953b9633a40eaba836178401e8bb052c300000000000000010000000000000000000000000000002021ea327632b6446a4aa123c2730e923343ffbcb6e5438fd52c99501c949fb18b000000000000000100000000000000000000000000000020140d8b2eab427236acae3996398960db371067a8f3cdc1c20d5914f41359c7a9000000000000000100000000000000000000000000000020543a8f359826fa3a987e94bf4b62785956e4a9d25036837a95569f62d41a3292000000000000000100000000000000010000000000000020fc8c882597983ad3169a658b567ca73ade33f768fecca21826b7fbe16b4cc82e000000000000000100000000000000010000000000000020561e8e49d509154002e334c20d827875059af43fbbd69612622be05df2b019da000000000000000f00000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b893000000000000000500000000000000010000000000000000000000000000002072d90abf523f26774741f850d36435a85517b60f12559e7c4108c551981a73220000000000000001000000000000000000000000000000207c6e86606677bf3e70bfa6940c8ff5d46fe2064bd193bf1009f7f2a27b9f94aa0000000000000001000000000000000000000000000000204e7e2fe1621d5b523d51298ffea591b8ada737e3ffc38a3e28fb1abbe4bad47f000000000000000100000000000000000000000000000020676b9b69dbb0335c8ffc750e47b9002e096de3b682b79a0809bb8cd5020a5c120000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d800000000000000450000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000000000000000000020bf15a32964fa49ccf957d8c7cce69c0fad6f70c4a1fbe27e3f3a52cdf2d00044000000000000000100000000000000010000000000000020ba9536d49b32f9e3c7e991e29b0bd02a5a02e28ce59fc14b2043f265e364a20b000000000000000100000000000000000000000000000020224fcfa2f025556b9ceebf913227cb4e52dafa048de2963f5f345b783587be03000000000000000100000000000000010000000000000020f3322c8cd2171da20bd4218e7860791c9a033371f045431933127e378d908b2a000000000000000100000000000000010000000000000020e571a03c8ba07fbb21c326d64891dcc277d09b2ce6b879007c30997bb5605a4b000000000000000100000000000000010000000000000020e34f236cd38596d429603de46eb5d6aeac840855619c4c9bdd620fe41275334b00000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000000500000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000000000000000000020f17e59a6a2f7fe5627ac0917e6fd673335773268c07775baf6b9f2e29eeb7f8a0000000000000001000000000000000100000000000000205c77f71bd3605e3927a4d46c159f0cd6cf57e7d539be80d007f3774d6102ad03000000000000000100000000000000000000000000000020f79f68c245a25558534328f907179db0e975ec353da7e91aca2894b4a4d0f65100000000000000010000000000000001000000000000002030116ed526a9a272ab37478970a12458e07b270ff594e7068a36ed8c06edcd36000000000000000100000000000000010000000000000020fc8c882597983ad3169a658b567ca73ade33f768fecca21826b7fbe16b4cc82e000000000000000100000000000000010000000000000020561e8e49d509154002e334c20d827875059af43fbbd69612622be05df2b019da000000000000000500000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b89300000000000000050000000000000001000000000000000000000000000000203b6a2e2877ee5fa68235db6d135c1857121d9d41acdcab0e497e1c8bc24fc16e000000000000000100000000000000010000000000000020ff55c769435380013cdb0bfb22ab501c554f4dc914c17c50183ef4785931b20d00000000000000010000000000000000000000000000002042b48c3932deab345a34655a3ebce45d7acbcb123c3b4161b8bcae4d81afcea3000000000000000100000000000000010000000000000020b406364799e599e8956dddafdf979d5726d49f1b43921cb68fcd71e95b34642a0000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d800000000000000620000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000010000000000000020fe1de043daa22da500ffdc5b720243832c0731a1aeed2bbeba5bf527981366240000000000000001000000000000000000000000000000209bb03b71f8958bc746c557f0f8faf121940b3b5bcb04a7ed2e5343acd64d062400000000000000010000000000000001000000000000002046aa03ba8a9886a3f0aed110bc7bd5a800b3a0c72e0882d90a75488848fb444a00000000000000010000000000000001000000000000002043fd33e570512d1ec7c5a2d8d9e016f651663874b20ff2cfed24bc514da4efcb000000000000000100000000000000010000000000000020522bf3cf53240bf6d14a46e8fd9b38443eaab67e1a6a827c2608b577701babe100000000000000010000000000000000000000000000002069f2b2bef63d46c56e2aff6004f910949758c752bbce0f7bfa10638e327881f400000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000002200000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000010000000000000020be724f0141ec45bb72784a388a07910a894a83065b9294b5a031d4a17c4194aa000000000000000100000000000000000000000000000020f067bfccbdc15e24f6e857e8fbdab2d4ecedb8c6aa15a2a0717c07eea62b306c00000000000000010000000000000001000000000000002013e785e18a24d136cd6ab95d4bd71df18d225451d041c1a5b3774ecb0596f08600000000000000010000000000000001000000000000002008838d39ec562eab71e05ccb9d707477e4333bf52a9478716e77d269f0cda014000000000000000100000000000000010000000000000020aa190a7636f9917a9691ff309a2844cfc4aac3e251781f1f0e7c63623540714a000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000000200000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b89300000000000000050000000000000001000000000000000100000000000000206f340a6a830da3070b8d724240179ce6f28151ed466358ef4dfcfc0bb5bb3a540000000000000001000000000000000000000000000000200f27fddea6bb159e213c6edb71cefec5c18ec69adb31d5715312ce3405d664d30000000000000001000000000000000100000000000000204ece1523b41d3acdd62d941f79a184e58f321c32583ab228f101ad36aacbea49000000000000000100000000000000010000000000000020b406364799e599e8956dddafdf979d5726d49f1b43921cb68fcd71e95b34642a0000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d800000000000000620000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000010000000000000020fe1de043daa22da500ffdc5b720243832c0731a1aeed2bbeba5bf527981366240000000000000001000000000000000000000000000000209bb03b71f8958bc746c557f0f8faf121940b3b5bcb04a7ed2e5343acd64d062400000000000000010000000000000001000000000000002046aa03ba8a9886a3f0aed110bc7bd5a800b3a0c72e0882d90a75488848fb444a00000000000000010000000000000001000000000000002043fd33e570512d1ec7c5a2d8d9e016f651663874b20ff2cfed24bc514da4efcb000000000000000100000000000000010000000000000020522bf3cf53240bf6d14a46e8fd9b38443eaab67e1a6a827c2608b577701babe100000000000000010000000000000000000000000000002069f2b2bef63d46c56e2aff6004f910949758c752bbce0f7bfa10638e327881f400000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000002200000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000010000000000000020be724f0141ec45bb72784a388a07910a894a83065b9294b5a031d4a17c4194aa000000000000000100000000000000000000000000000020f067bfccbdc15e24f6e857e8fbdab2d4ecedb8c6aa15a2a0717c07eea62b306c00000000000000010000000000000001000000000000002013e785e18a24d136cd6ab95d4bd71df18d225451d041c1a5b3774ecb0596f08600000000000000010000000000000001000000000000002008838d39ec562eab71e05ccb9d707477e4333bf52a9478716e77d269f0cda014000000000000000100000000000000010000000000000020aa190a7636f9917a9691ff309a2844cfc4aac3e251781f1f0e7c63623540714a000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000000200000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b89300000000000000050000000000000001000000000000000100000000000000206f340a6a830da3070b8d724240179ce6f28151ed466358ef4dfcfc0bb5bb3a540000000000000001000000000000000000000000000000200f27fddea6bb159e213c6edb71cefec5c18ec69adb31d5715312ce3405d664d30000000000000001000000000000000100000000000000204ece1523b41d3acdd62d941f79a184e58f321c32583ab228f101ad36aacbea49000000000000000100000000000000010000000000000020b406364799e599e8956dddafdf979d5726d49f1b43921cb68fcd71e95b34642a0000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d800000000000000730000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe00000000000000070000000000000001000000000000000000000000000000203e5f3958cdf032e3e17a2e24cedf027a19188b960db3e5f31505680b9c0087e20000000000000001000000000000000000000000000000201a7cc6ce9734c60109a2f48fb8c0e076e091609e68a9ad35b9770c9f40466f8700000000000000010000000000000001000000000000002082c510abb7ab366618f4e21659ae732925e8b5d09a0983d1bfc509fca0011b76000000000000000100000000000000010000000000000020112c2364e43f3f1054969d6d4cac83d5d2003a5a1dcb27b62871795005af3ac800000000000000010000000000000000000000000000002048316aff2ac932e667717670ab3529a8d92d5dbbb3cef3caecd037647159ebd300000000000000010000000000000000000000000000002069f2b2bef63d46c56e2aff6004f910949758c752bbce0f7bfa10638e327881f400000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000003300000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000000000000000000020c6a28c4f743c54bbba24b3436b1c02d0455f65740e9dd0477bc55af5719fc604000000000000000100000000000000000000000000000020be96ea44676688e02065d4e8cd5a4bdd15f59b2b78791c0ab690b3b4d11782b90000000000000001000000000000000100000000000000204a100f20769f2571b41cb55506579f2bccb45ff24e743f262c4545da984bb38700000000000000010000000000000001000000000000002032001ae94e4bda6153b4388b21e2413e9cb17eecfa21be7afd2b39fec286c263000000000000000100000000000000000000000000000020c5505fdbeca3e6bd0ea4f41a0f376ee34b35fe16baea6e452cd3c7d6768184f0000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000001300000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b8930000000000000005000000000000000100000000000000000000000000000020c356c883ff5ffec5372cfe1b0e709631d90d2107e9f2891f0c2ce64b5b505c220000000000000001000000000000000000000000000000207115746818b0050db5b18ae5951096ff5c5d516aa4fb4c28ea91ca4f853db970000000000000000100000000000000010000000000000020d151125856a9846bd7412a70749a6b1f21aa215e2c42ca1fa4d79739b9183654000000000000000100000000000000010000000000000020c36aefd79dad8645dfb14e40698462ce6783af41b84398cf29a85f6b56d9c3fe00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f3000000000000007a0000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000010000000000000020d800f45787d4b34c088343dfcfdbce8f698ed98f0e99475701756b2de4e7a144000000000000000100000000000000000000000000000020f6d5a463bbb0a73a9a61ebd810ea985d27eb7e2fa406d039d43f6257a2010243000000000000000100000000000000010000000000000020729b12088efe2e8116ebb2cd4846fc2a276838a6e83690c6f481dc8583b060a300000000000000010000000000000000000000000000002034ee0063e0f3e2c387de8e07e0faf6210500285cf7dd65f7f099bac3e4df87e500000000000000010000000000000000000000000000002048316aff2ac932e667717670ab3529a8d92d5dbbb3cef3caecd037647159ebd300000000000000010000000000000000000000000000002069f2b2bef63d46c56e2aff6004f910949758c752bbce0f7bfa10638e327881f400000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000003a00000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000010000000000000020be22c64c6f10c37f81573dae6997a35ac59b14e7b6040c85cdef359abbf3ba480000000000000001000000000000000000000000000000201bfa05ecaf27f7e13c1de6ea6f28fb1dd0659291de5449096cfa9ad0e23196a8000000000000000100000000000000010000000000000020bb82c6d7233771dd6d82915bc338643a78182b31c871117ab88551300c5812b10000000000000001000000000000000000000000000000206d9466490f7a354ba312a54733cdf0c7068effff9ce1188478bc77942bb7fc53000000000000000100000000000000000000000000000020c5505fdbeca3e6bd0ea4f41a0f376ee34b35fe16baea6e452cd3c7d6768184f0000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000001a00000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b8930000000000000005000000000000000100000000000000010000000000000020bd2b65582a88cc0513a45c4c416a1c4bf9bbf62653fd946594e3ada4b1327434000000000000000100000000000000000000000000000020937a6afa565f265504600456e86163bee3158083e484ac73de8fbe12ec3c95d70000000000000001000000000000000100000000000000201d644d71a3c2a5baea02720e1965f5c4bb866f3546c28496338095e44181a1800000000000000001000000000000000000000000000000209e2fb1bd7e772c2ef8b3847b057de145a6afb5adf66440f0813cd95b9bc5f90f00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f300000000000000700000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe00000000000000070000000000000001000000000000000100000000000000207937118954fdf14d9945feec3c420c6f9a5d1f275a42d6b93b18e473b84b81e6000000000000000100000000000000010000000000000020401b7c21e140274c7e8d4a8f507c4e1a86fe93ef28142385a7d6ca9b6768f88800000000000000010000000000000001000000000000002082c510abb7ab366618f4e21659ae732925e8b5d09a0983d1bfc509fca0011b76000000000000000100000000000000010000000000000020112c2364e43f3f1054969d6d4cac83d5d2003a5a1dcb27b62871795005af3ac800000000000000010000000000000000000000000000002048316aff2ac932e667717670ab3529a8d92d5dbbb3cef3caecd037647159ebd300000000000000010000000000000000000000000000002069f2b2bef63d46c56e2aff6004f910949758c752bbce0f7bfa10638e327881f400000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000003000000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f700000000000000060000000000000001000000000000000100000000000000200b5f80759fc17b8d06820fb3d9478057acd91c3b89d9cfa75ddf5a78d75a8aa40000000000000001000000000000000100000000000000200b2d3fd6687c6f4d199b59b6be5483a7180f4c78fe8bda6a313c29e49b0626400000000000000001000000000000000100000000000000204a100f20769f2571b41cb55506579f2bccb45ff24e743f262c4545da984bb38700000000000000010000000000000001000000000000002032001ae94e4bda6153b4388b21e2413e9cb17eecfa21be7afd2b39fec286c263000000000000000100000000000000000000000000000020c5505fdbeca3e6bd0ea4f41a0f376ee34b35fe16baea6e452cd3c7d6768184f0000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000001000000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b89300000000000000050000000000000001000000000000000100000000000000201657c76f30141b4b1d137a3a4a44a30e8b7ea3a50d83d90e989374f66a30a1530000000000000001000000000000000100000000000000202228e0e241d31c13782611d2b364808db3b50d401f8236b44f0134f75d80cca7000000000000000100000000000000010000000000000020d151125856a9846bd7412a70749a6b1f21aa215e2c42ca1fa4d79739b9183654000000000000000100000000000000010000000000000020c36aefd79dad8645dfb14e40698462ce6783af41b84398cf29a85f6b56d9c3fe00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f3000000000000000c0000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000010000000000000020713e8b3e35bce27f0896c4d1c8a42e2052c8309c2cfeded17cbc9cfc8fd0f6b500000000000000010000000000000001000000000000002066d0ad996d352703a7a25dec0b7a2761a39637b24d0a0ba8f9847218a42da14f000000000000000100000000000000000000000000000020ea9b4fdf58d8e2b1ff19ee1198d015726301477852316f90867fe4a9481d77f7000000000000000100000000000000000000000000000020db76e9394eda26faae81ec6fdaa96fc0c044f26fefc0d73dbb3cbef867182db30000000000000001000000000000000100000000000000202508e5fb00289c04a04868dd9a8e650164a89dac9743cf12cc57e4ade9d9f1590000000000000001000000000000000100000000000000205f07d8c8d032c001837b7bbcf14619856fe91011d5aff21fccda9a13597afcb000000000000000010000000000000001000000000000002028d8a0c369da9999b54e52cac432245cb8c71873c1bdb1486a877fdce8f5f4ff000000000000000c00000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000010000000000000020b2862ba2451033358e6aeb98d3f2723464cbdae9d9b6a1dba545c1fbf80379070000000000000001000000000000000100000000000000205d18875629b970708e8902ae08ed5a65574a8513da0f29196eb0cf5a335655e7000000000000000100000000000000000000000000000020140d8b2eab427236acae3996398960db371067a8f3cdc1c20d5914f41359c7a9000000000000000100000000000000000000000000000020543a8f359826fa3a987e94bf4b62785956e4a9d25036837a95569f62d41a3292000000000000000100000000000000010000000000000020fc8c882597983ad3169a658b567ca73ade33f768fecca21826b7fbe16b4cc82e000000000000000100000000000000010000000000000020561e8e49d509154002e334c20d827875059af43fbbd69612622be05df2b019da000000000000000c00000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b89300000000000000050000000000000001000000000000000100000000000000201d90e9ab63a4ac8cf858080bb3689a27376376a70ebe97ab6affbd2c4b27c219000000000000000100000000000000010000000000000020ea8dad601197a18c3d2c2d22a4b8359f5b9c2885a61421537363980b82ed6e8d0000000000000001000000000000000000000000000000204e7e2fe1621d5b523d51298ffea591b8ada737e3ffc38a3e28fb1abbe4bad47f000000000000000100000000000000000000000000000020676b9b69dbb0335c8ffc750e47b9002e096de3b682b79a0809bb8cd5020a5c120000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d8000000000000007e0000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000010000000000000020f3e155be9af5b04464a40e781139221214b6fd01541245758f775e85604c1d440000000000000001000000000000000000000000000000208a3d07cfe26342bf84f1b087c20d593200b6504fcd329ac6f26543643c3572750000000000000001000000000000000000000000000000209625e5ff3d74f577f1e8b53ffc880d7a9e3b991e2f8bae6dc35eaf4f93b3315f00000000000000010000000000000000000000000000002034ee0063e0f3e2c387de8e07e0faf6210500285cf7dd65f7f099bac3e4df87e500000000000000010000000000000000000000000000002048316aff2ac932e667717670ab3529a8d92d5dbbb3cef3caecd037647159ebd300000000000000010000000000000000000000000000002069f2b2bef63d46c56e2aff6004f910949758c752bbce0f7bfa10638e327881f400000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000003e00000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000010000000000000020a80685be55e7def2df17b0574bed2a94c17a30a37754904f01e6cc7d07273f580000000000000001000000000000000000000000000000201e9fc6b4ac4fd9cbe77018d1deca0d5f0fa6be029d90a928252dba6c759f7c7a000000000000000100000000000000000000000000000020422bb341469f1780f456ab99dd657d890e0ac86e839d1919c0c871dd8bb463d80000000000000001000000000000000000000000000000206d9466490f7a354ba312a54733cdf0c7068effff9ce1188478bc77942bb7fc53000000000000000100000000000000000000000000000020c5505fdbeca3e6bd0ea4f41a0f376ee34b35fe16baea6e452cd3c7d6768184f0000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000001e00000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b8930000000000000005000000000000000100000000000000010000000000000020d0fd081654c8aa4cf2c84a303be9ad404ff9321e11ed279911842c7712e3bf05000000000000000100000000000000000000000000000020773fef777c3fc91d4537d35597e3266a9123c3f5d4571760e30964d8914012ce0000000000000001000000000000000000000000000000209562c0f996b1a2fa0659b9d4063818df0a46e090cb6c622aa3191cc4ba2386b40000000000000001000000000000000000000000000000209e2fb1bd7e772c2ef8b3847b057de145a6afb5adf66440f0813cd95b9bc5f90f00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f300000000000000130000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe000000000000000700000000000000010000000000000000000000000000002084409188b65dd9604d22afd4a664aa0bcf5c8f33a05b11f700b292197276870100000000000000010000000000000000000000000000002019f4b1cbad3a275822cf7b06a6e30ddb58984039965670158b65475c55ae7b22000000000000000100000000000000010000000000000020ed5c0c913a696d4fc36995b49adb98793fbdc75deeab48c0b474a117efc2b6bb0000000000000001000000000000000100000000000000201f7f35161a08c3ce3297695032655d42368e84c81f094c9353c03285e552446e000000000000000100000000000000000000000000000020191e7831d1e8586bc4af5d49625fea5f677bc8dc91da26cf372f455ca0c3da030000000000000001000000000000000100000000000000205f07d8c8d032c001837b7bbcf14619856fe91011d5aff21fccda9a13597afcb000000000000000010000000000000001000000000000002028d8a0c369da9999b54e52cac432245cb8c71873c1bdb1486a877fdce8f5f4ff000000000000001300000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f700000000000000060000000000000001000000000000000000000000000000207ff021f07f5a82f2af15e41d39579befd26922c3707cb6b90e4693a28c89d468000000000000000100000000000000000000000000000020e706dae44aff0564e538ec9cc80da2da921fa166b9c667a5410698bc02b40e2700000000000000010000000000000001000000000000002051674c68b6b6a55f3f91adf242321e1d3da47838a74be7536f675533333e42a0000000000000000100000000000000010000000000000020a31dc88707744214d54f9c8108474f617c0344f1f1f9bfed63f368598e405eb700000000000000010000000000000000000000000000002093bd1f00893ff9e252007222a4d57a16e3aaecfd947f7b9e377dd265ffa0358f000000000000000100000000000000010000000000000020561e8e49d509154002e334c20d827875059af43fbbd69612622be05df2b019da000000000000001300000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b8930000000000000005000000000000000100000000000000000000000000000020c356c883ff5ffec5372cfe1b0e709631d90d2107e9f2891f0c2ce64b5b505c220000000000000001000000000000000000000000000000207115746818b0050db5b18ae5951096ff5c5d516aa4fb4c28ea91ca4f853db970000000000000000100000000000000010000000000000020d151125856a9846bd7412a70749a6b1f21aa215e2c42ca1fa4d79739b9183654000000000000000100000000000000010000000000000020c36aefd79dad8645dfb14e40698462ce6783af41b84398cf29a85f6b56d9c3fe00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f300000000000000370000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe000000000000000700000000000000010000000000000000000000000000002074b3c95973eead8975454cce7160b3507cc744fe8b5ef5acd495aa415fcd85ca000000000000000100000000000000000000000000000020316001362999d5865dd44adbbcd3d3c614e6570b8acef0b4acea5ab6bbf5ebf10000000000000001000000000000000000000000000000207d159c02e2d4fc9c88a5c29c43778e391c0c7f740a7300b434453a70bd73bcc4000000000000000100000000000000010000000000000020b190b8f8ce07f9dd0c67d2fe23a468c229e3a1470dca69d12daa7dc56d8f1d790000000000000001000000000000000000000000000000204f2c990b2efc129bf5b5178763583755b59f44b45aa91e2d21892fb30f59ebdf0000000000000001000000000000000000000000000000205adb9aebbffe3cd8200fbd8b1da579960d8844069ce8920a1343f3d8c48b7bfc00000000000000010000000000000001000000000000002028d8a0c369da9999b54e52cac432245cb8c71873c1bdb1486a877fdce8f5f4ff000000000000003700000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000000000000000000020b53f925bd62ba522748ac26afff5dde8debd3a5e70f850b0bfce12c1c84ebda30000000000000001000000000000000000000000000000207d0636feadeb48a4ed1bf79de1f384a00de7aad77601b72efdc798e10a70ae57000000000000000100000000000000000000000000000020d5bfe4372e7eca6eb201533a0e55526d2c937b7d9b288ed958a55e759201868c00000000000000010000000000000001000000000000002032001ae94e4bda6153b4388b21e2413e9cb17eecfa21be7afd2b39fec286c263000000000000000100000000000000000000000000000020c5505fdbeca3e6bd0ea4f41a0f376ee34b35fe16baea6e452cd3c7d6768184f0000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000001700000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b8930000000000000005000000000000000100000000000000000000000000000020b7b6e38156242525a08b887284578daa050b1228f0e544c23c726a2411dd1de600000000000000010000000000000000000000000000002026c4940e558d3e4b12b82d0f681bee119ead66c37e0891be106398f3cf09db510000000000000001000000000000000000000000000000206cd045d983b4126a87b7c4814223e855db6e7eda6d30b38003e7ad93cea1cef9000000000000000100000000000000010000000000000020c36aefd79dad8645dfb14e40698462ce6783af41b84398cf29a85f6b56d9c3fe00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f300000000000000390000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000000000000000000020ee98793be78b98b18c18683663725e6d4011f8bd7e63ce9f90439bbdd203c3ab000000000000000100000000000000010000000000000020e9165bbb9049059f9475b25b7e2c56ef6827fc9d10b41d576c6dbf6310e956a6000000000000000100000000000000010000000000000020a732decfbed445f9226c8b8801bc4d85d1415c5a4e93714484d65ef3820d4dc4000000000000000100000000000000000000000000000020962ba35cedafee3b867acfec185039aee289a4c66789c1406b399a3cde120bb10000000000000001000000000000000000000000000000204f2c990b2efc129bf5b5178763583755b59f44b45aa91e2d21892fb30f59ebdf0000000000000001000000000000000000000000000000205adb9aebbffe3cd8200fbd8b1da579960d8844069ce8920a1343f3d8c48b7bfc00000000000000010000000000000001000000000000002028d8a0c369da9999b54e52cac432245cb8c71873c1bdb1486a877fdce8f5f4ff000000000000003900000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000000000000000000020146f4766eb226fa952c0e1b8a376f9ed560b5bc7a3617d3f9fb87edb8b2a7e1d00000000000000010000000000000001000000000000002095a9e2ff01c9ec3c31608fac2bad1d98d046d63911881f1933a281f7cd9bde32000000000000000100000000000000010000000000000020bb82c6d7233771dd6d82915bc338643a78182b31c871117ab88551300c5812b10000000000000001000000000000000000000000000000206d9466490f7a354ba312a54733cdf0c7068effff9ce1188478bc77942bb7fc53000000000000000100000000000000000000000000000020c5505fdbeca3e6bd0ea4f41a0f376ee34b35fe16baea6e452cd3c7d6768184f0000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000001900000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b893000000000000000500000000000000010000000000000000000000000000002006b73d8e2ccbe42120be814ebdb2a6715b414b14c04d8aab2d611b2693a04609000000000000000100000000000000010000000000000020112ac177060220e43704d3e0888610177f455c0d250d239a9a2f9760ac9fc5610000000000000001000000000000000100000000000000201d644d71a3c2a5baea02720e1965f5c4bb866f3546c28496338095e44181a1800000000000000001000000000000000000000000000000209e2fb1bd7e772c2ef8b3847b057de145a6afb5adf66440f0813cd95b9bc5f90f00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f300000000000000440000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe00000000000000070000000000000001000000000000000100000000000000206d3b36b12cb8abf4fd5d64c8de4abce4762487c956ef7f57402f95b9f1f61b8b000000000000000100000000000000010000000000000020ba9536d49b32f9e3c7e991e29b0bd02a5a02e28ce59fc14b2043f265e364a20b000000000000000100000000000000000000000000000020224fcfa2f025556b9ceebf913227cb4e52dafa048de2963f5f345b783587be03000000000000000100000000000000010000000000000020f3322c8cd2171da20bd4218e7860791c9a033371f045431933127e378d908b2a000000000000000100000000000000010000000000000020e571a03c8ba07fbb21c326d64891dcc277d09b2ce6b879007c30997bb5605a4b000000000000000100000000000000010000000000000020e34f236cd38596d429603de46eb5d6aeac840855619c4c9bdd620fe41275334b00000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000000400000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f700000000000000060000000000000001000000000000000100000000000000207507e35dcf5d38241edac52ad3c9271c047de682d2f81f157e296cdfeace30760000000000000001000000000000000100000000000000205c77f71bd3605e3927a4d46c159f0cd6cf57e7d539be80d007f3774d6102ad03000000000000000100000000000000000000000000000020f79f68c245a25558534328f907179db0e975ec353da7e91aca2894b4a4d0f65100000000000000010000000000000001000000000000002030116ed526a9a272ab37478970a12458e07b270ff594e7068a36ed8c06edcd36000000000000000100000000000000010000000000000020fc8c882597983ad3169a658b567ca73ade33f768fecca21826b7fbe16b4cc82e000000000000000100000000000000010000000000000020561e8e49d509154002e334c20d827875059af43fbbd69612622be05df2b019da000000000000000400000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b8930000000000000005000000000000000100000000000000010000000000000020f494a9919bf0f3bd6e57b9b8c5a51230e21ce304c3f79afb24053355ae06a051000000000000000100000000000000010000000000000020ff55c769435380013cdb0bfb22ab501c554f4dc914c17c50183ef4785931b20d00000000000000010000000000000000000000000000002042b48c3932deab345a34655a3ebce45d7acbcb123c3b4161b8bcae4d81afcea3000000000000000100000000000000010000000000000020b406364799e599e8956dddafdf979d5726d49f1b43921cb68fcd71e95b34642a0000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d800000000000000750000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000000000000000000020a937846a3b91cce03dca1be7622cf27752cb69a77a396df0ed904cc4de0e29b2000000000000000100000000000000010000000000000020bece01fd526b71f393f471d430cdd4b9048fca6221941cf2df19af02e20ae6e4000000000000000100000000000000000000000000000020a45b8ef53d45b6e3a90bb8763a53beeac821059fc33602b8d1362f596e2bd81b000000000000000100000000000000010000000000000020112c2364e43f3f1054969d6d4cac83d5d2003a5a1dcb27b62871795005af3ac800000000000000010000000000000000000000000000002048316aff2ac932e667717670ab3529a8d92d5dbbb3cef3caecd037647159ebd300000000000000010000000000000000000000000000002069f2b2bef63d46c56e2aff6004f910949758c752bbce0f7bfa10638e327881f400000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000003500000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000000000000000000020364b556d609ff25d8d32aa976d5318b11a316062fc25569ee3d360f9fb7a167c000000000000000100000000000000010000000000000020f5d1aef2327bd5d20b0ba21b89bb497cdde4cd40653756f953750ecb7122dab8000000000000000100000000000000000000000000000020d5bfe4372e7eca6eb201533a0e55526d2c937b7d9b288ed958a55e759201868c00000000000000010000000000000001000000000000002032001ae94e4bda6153b4388b21e2413e9cb17eecfa21be7afd2b39fec286c263000000000000000100000000000000000000000000000020c5505fdbeca3e6bd0ea4f41a0f376ee34b35fe16baea6e452cd3c7d6768184f0000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000001500000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b89300000000000000050000000000000001000000000000000000000000000000206dc521805ac4876c6dbbe88a64d6717ca9b5ea296a23f31afd132a2385988a020000000000000001000000000000000100000000000000206c0c3108b3a30f1de5230c8f194dfb65a633dd235ae54e44422f152475c990080000000000000001000000000000000000000000000000206cd045d983b4126a87b7c4814223e855db6e7eda6d30b38003e7ad93cea1cef9000000000000000100000000000000010000000000000020c36aefd79dad8645dfb14e40698462ce6783af41b84398cf29a85f6b56d9c3fe00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f300000000000000040000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000010000000000000020649002cc2095226846f79987655b356e40f1e10309ec72bb7da9d33be62cadcf000000000000000100000000000000010000000000000020e741a0d1ac7d963fcac3cbc4eb9139e20b835333060427a55ebbe727ed87bc8300000000000000010000000000000000000000000000002050bf81f56c9f182c6309ee50e28e87ff24ef1a9ae7592e5b73f5cfb6bf92244b00000000000000010000000000000001000000000000002095f4234017c7a78c5ed078740e89362af8c99771d4cc60febfa6394b2913b9110000000000000001000000000000000100000000000000202508e5fb00289c04a04868dd9a8e650164a89dac9743cf12cc57e4ade9d9f1590000000000000001000000000000000100000000000000205f07d8c8d032c001837b7bbcf14619856fe91011d5aff21fccda9a13597afcb000000000000000010000000000000001000000000000002028d8a0c369da9999b54e52cac432245cb8c71873c1bdb1486a877fdce8f5f4ff000000000000000400000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f700000000000000060000000000000001000000000000000100000000000000207507e35dcf5d38241edac52ad3c9271c047de682d2f81f157e296cdfeace30760000000000000001000000000000000100000000000000205c77f71bd3605e3927a4d46c159f0cd6cf57e7d539be80d007f3774d6102ad03000000000000000100000000000000000000000000000020f79f68c245a25558534328f907179db0e975ec353da7e91aca2894b4a4d0f65100000000000000010000000000000001000000000000002030116ed526a9a272ab37478970a12458e07b270ff594e7068a36ed8c06edcd36000000000000000100000000000000010000000000000020fc8c882597983ad3169a658b567ca73ade33f768fecca21826b7fbe16b4cc82e000000000000000100000000000000010000000000000020561e8e49d509154002e334c20d827875059af43fbbd69612622be05df2b019da000000000000000400000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b8930000000000000005000000000000000100000000000000010000000000000020f494a9919bf0f3bd6e57b9b8c5a51230e21ce304c3f79afb24053355ae06a051000000000000000100000000000000010000000000000020ff55c769435380013cdb0bfb22ab501c554f4dc914c17c50183ef4785931b20d00000000000000010000000000000000000000000000002042b48c3932deab345a34655a3ebce45d7acbcb123c3b4161b8bcae4d81afcea3000000000000000100000000000000010000000000000020b406364799e599e8956dddafdf979d5726d49f1b43921cb68fcd71e95b34642a0000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d800000000000000660000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe00000000000000070000000000000001000000000000000100000000000000209b060efce539cbc044ea2a4bce8974f6d0d9d8c07654a89218c923a3d98f3980000000000000000100000000000000000000000000000020b92840051aeae3e1a76083406d42232782abe83ff39347ec7b2c7547a9f88c190000000000000001000000000000000000000000000000202debe765062f237f39d528278da9a4dce81f0d0b375fd570fb76f75bb21107df00000000000000010000000000000001000000000000002043fd33e570512d1ec7c5a2d8d9e016f651663874b20ff2cfed24bc514da4efcb000000000000000100000000000000010000000000000020522bf3cf53240bf6d14a46e8fd9b38443eaab67e1a6a827c2608b577701babe100000000000000010000000000000000000000000000002069f2b2bef63d46c56e2aff6004f910949758c752bbce0f7bfa10638e327881f400000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000002600000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f700000000000000060000000000000001000000000000000100000000000000205ebf86620afdb372ac1e285a4ce52d070a871f49ae187cfb91efa92522c56dff0000000000000001000000000000000000000000000000201f057783c7016fe7282d0a3e13280be3f65e2b1b7b21c318563814cfc4c3990200000000000000010000000000000000000000000000002034e1de55b855d0ac3e221e10a90307574200c2a8207deacbaa1a7773bb67740d00000000000000010000000000000001000000000000002008838d39ec562eab71e05ccb9d707477e4333bf52a9478716e77d269f0cda014000000000000000100000000000000010000000000000020aa190a7636f9917a9691ff309a2844cfc4aac3e251781f1f0e7c63623540714a000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000000600000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b89300000000000000050000000000000001000000000000000100000000000000205cd6f132532ffd62306f15011a420a0b8ec62efc0e19d635fbe837b20d1f6383000000000000000100000000000000000000000000000020b7471941d11a0896d48c1222932ed56424a798cff532c025bc4731f96910fb3700000000000000010000000000000000000000000000002042b48c3932deab345a34655a3ebce45d7acbcb123c3b4161b8bcae4d81afcea3000000000000000100000000000000010000000000000020b406364799e599e8956dddafdf979d5726d49f1b43921cb68fcd71e95b34642a0000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d800000000000000030000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000000000000000000020f519e7e4db8fa0581d104d8d16acfe8805c5932366cecb93f24987ed4c8c10f800000000000000010000000000000000000000000000002081161472593eaf76636e40f4770cc542f5a018aedf664225a833a410fdbfdad90000000000000001000000000000000100000000000000203231373985c731dc714de4a2b03cf381d8724927bfb1cb6a58024edf11873cba00000000000000010000000000000001000000000000002095f4234017c7a78c5ed078740e89362af8c99771d4cc60febfa6394b2913b9110000000000000001000000000000000100000000000000202508e5fb00289c04a04868dd9a8e650164a89dac9743cf12cc57e4ade9d9f1590000000000000001000000000000000100000000000000205f07d8c8d032c001837b7bbcf14619856fe91011d5aff21fccda9a13597afcb000000000000000010000000000000001000000000000002028d8a0c369da9999b54e52cac432245cb8c71873c1bdb1486a877fdce8f5f4ff000000000000000300000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f700000000000000060000000000000001000000000000000000000000000000207915e80f066ce2df5dfa59a27d2ad30e120276590a12d64b8c05246961a15b900000000000000001000000000000000000000000000000204c259c1d194a7043ab9dc05e7e5d72e038ebcafee263421f7d8fbe6732c3ad5a000000000000000100000000000000010000000000000020d92c2ca99c237bb5c8cf19fcba261cfb217560b8d62dc8ad3cbb21b90b88897f00000000000000010000000000000001000000000000002030116ed526a9a272ab37478970a12458e07b270ff594e7068a36ed8c06edcd36000000000000000100000000000000010000000000000020fc8c882597983ad3169a658b567ca73ade33f768fecca21826b7fbe16b4cc82e000000000000000100000000000000010000000000000020561e8e49d509154002e334c20d827875059af43fbbd69612622be05df2b019da000000000000000300000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b89300000000000000050000000000000001000000000000000000000000000000201336110f91f33c3f364d7ae79745ab074706829f1990aa15a5156c2b014ad96a0000000000000001000000000000000000000000000000200f27fddea6bb159e213c6edb71cefec5c18ec69adb31d5715312ce3405d664d30000000000000001000000000000000100000000000000204ece1523b41d3acdd62d941f79a184e58f321c32583ab228f101ad36aacbea49000000000000000100000000000000010000000000000020b406364799e599e8956dddafdf979d5726d49f1b43921cb68fcd71e95b34642a0000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d8000000000000005c0000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe000000000000000700000000000000010000000000000001000000000000002044cac760e44f1646323e62b1335bf1d0cd02a613f15f151cadf2890afc3174fa00000000000000010000000000000001000000000000002035bc263cfd2b97dd0a8d24f53df8168c4fbea500ed4242ae583cbebc0a6e7a00000000000000000100000000000000000000000000000020b7e2c56261281c47cc6a1730563e59a5e33b5698094865fa5de7a3860bbca5c3000000000000000100000000000000000000000000000020117c170cc0d4c56447da1eabb6ef154ea6c4e377a1aa5cd346b12e7de0586b34000000000000000100000000000000000000000000000020abd064ff49887f96babfd46cd68124e8258009456052f82c6f841ed3333cea4e000000000000000100000000000000010000000000000020e34f236cd38596d429603de46eb5d6aeac840855619c4c9bdd620fe41275334b00000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000001c00000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f7000000000000000600000000000000010000000000000001000000000000002089d7a845c1838075c3155ac126c32e6ba27da75268e35d18556dd2b127681ffd0000000000000001000000000000000100000000000000206c7fe6075a2295ea07b0f2815f314701c1855f0171f1451c1534412020472a020000000000000001000000000000000000000000000000204b819fe281e85642646916125b6160c384e5d4dc79c677ae533d58cf83beefb700000000000000010000000000000000000000000000002056d53e1552c97d45efe7b3bd26f642633292b8a3481be3d7c021602bb51e0d7e00000000000000010000000000000000000000000000002093bd1f00893ff9e252007222a4d57a16e3aaecfd947f7b9e377dd265ffa0358f000000000000000100000000000000010000000000000020561e8e49d509154002e334c20d827875059af43fbbd69612622be05df2b019da000000000000001c00000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b893000000000000000500000000000000010000000000000001000000000000002069531b0e969ac42eafd9bb65f349b30082142d98ece89d82f8ccd23110352f2300000000000000010000000000000001000000000000002057ba129bae8250be11b8ef0ca4f6b99ce552fe8a57fc34467f8b469995fca00c0000000000000001000000000000000000000000000000209562c0f996b1a2fa0659b9d4063818df0a46e090cb6c622aa3191cc4ba2386b40000000000000001000000000000000000000000000000209e2fb1bd7e772c2ef8b3847b057de145a6afb5adf66440f0813cd95b9bc5f90f00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f300000000000000270000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000000000000000000020b9dba67d65a6d85918d38f31ae106544302682f595ad119d53feb31d269f467600000000000000010000000000000000000000000000002015e70746f025bf600eb0e58360560f5a38828ccec1e70e60cffe29f934dcf29d000000000000000100000000000000000000000000000020990411a2a3322c0a288565447e3b662f5faa8c1a841d956ea1982a76dcb125ba0000000000000001000000000000000100000000000000201e47dfee7de232067e8e8f22a9466e7be54d7ded354ae3bf1b1e099da762ac3a00000000000000010000000000000001000000000000002089c584e6019abf5295c24cc7c5347bce9d8a69e599062588a9308149f83e95fd0000000000000001000000000000000000000000000000205adb9aebbffe3cd8200fbd8b1da579960d8844069ce8920a1343f3d8c48b7bfc00000000000000010000000000000001000000000000002028d8a0c369da9999b54e52cac432245cb8c71873c1bdb1486a877fdce8f5f4ff000000000000002700000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000000000000000000020c0138b6c8c94741653fb44e08bf9f82e7bbe366029745689021cbc600d651c430000000000000001000000000000000000000000000000201f057783c7016fe7282d0a3e13280be3f65e2b1b7b21c318563814cfc4c3990200000000000000010000000000000000000000000000002034e1de55b855d0ac3e221e10a90307574200c2a8207deacbaa1a7773bb67740d00000000000000010000000000000001000000000000002008838d39ec562eab71e05ccb9d707477e4333bf52a9478716e77d269f0cda014000000000000000100000000000000010000000000000020aa190a7636f9917a9691ff309a2844cfc4aac3e251781f1f0e7c63623540714a000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000000700000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b893000000000000000500000000000000010000000000000000000000000000002049c1995f648d3e042291611621bebf89011a04b6bfadc9a0a71bb6f3a7bfa342000000000000000100000000000000000000000000000020b7471941d11a0896d48c1222932ed56424a798cff532c025bc4731f96910fb3700000000000000010000000000000000000000000000002042b48c3932deab345a34655a3ebce45d7acbcb123c3b4161b8bcae4d81afcea3000000000000000100000000000000010000000000000020b406364799e599e8956dddafdf979d5726d49f1b43921cb68fcd71e95b34642a0000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d800000000000000710000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000000000000000000020a73b725cf8580ddc74020217d8edb14fbfab55ea44493b7b517b2dc64ae9635b000000000000000100000000000000010000000000000020401b7c21e140274c7e8d4a8f507c4e1a86fe93ef28142385a7d6ca9b6768f88800000000000000010000000000000001000000000000002082c510abb7ab366618f4e21659ae732925e8b5d09a0983d1bfc509fca0011b76000000000000000100000000000000010000000000000020112c2364e43f3f1054969d6d4cac83d5d2003a5a1dcb27b62871795005af3ac800000000000000010000000000000000000000000000002048316aff2ac932e667717670ab3529a8d92d5dbbb3cef3caecd037647159ebd300000000000000010000000000000000000000000000002069f2b2bef63d46c56e2aff6004f910949758c752bbce0f7bfa10638e327881f400000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000003100000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f700000000000000060000000000000001000000000000000000000000000000209293486a0c62d413ab3076b6e8b17c81146afa37795c7047c1968769ada41ca70000000000000001000000000000000100000000000000200b2d3fd6687c6f4d199b59b6be5483a7180f4c78fe8bda6a313c29e49b0626400000000000000001000000000000000100000000000000204a100f20769f2571b41cb55506579f2bccb45ff24e743f262c4545da984bb38700000000000000010000000000000001000000000000002032001ae94e4bda6153b4388b21e2413e9cb17eecfa21be7afd2b39fec286c263000000000000000100000000000000000000000000000020c5505fdbeca3e6bd0ea4f41a0f376ee34b35fe16baea6e452cd3c7d6768184f0000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000001100000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b8930000000000000005000000000000000100000000000000000000000000000020e5c9234f571a04b908e5966b14ebdce5040631f0021fe25f089e0e89ffa943c00000000000000001000000000000000100000000000000202228e0e241d31c13782611d2b364808db3b50d401f8236b44f0134f75d80cca7000000000000000100000000000000010000000000000020d151125856a9846bd7412a70749a6b1f21aa215e2c42ca1fa4d79739b9183654000000000000000100000000000000010000000000000020c36aefd79dad8645dfb14e40698462ce6783af41b84398cf29a85f6b56d9c3fe00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f300000000000000680000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000010000000000000020fa69b43f9bc7e37f767c0ca1b478c379ad01eb5eac2627a879bab6a074108a0a000000000000000100000000000000010000000000000020269739d1f316261b40ad3270c90a62fd7d4403efcf353ebdb5eca1be408530ba000000000000000100000000000000010000000000000020fe4cb80d7963d1a7b2b513a9e6f097c5767bf79ef141b220b9bf637477ec0b3c00000000000000010000000000000000000000000000002086968b78264832f401e50405cec5cfb99218e7e056e02b4d24bfff31e90892a7000000000000000100000000000000010000000000000020522bf3cf53240bf6d14a46e8fd9b38443eaab67e1a6a827c2608b577701babe100000000000000010000000000000000000000000000002069f2b2bef63d46c56e2aff6004f910949758c752bbce0f7bfa10638e327881f400000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000002800000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f7000000000000000600000000000000010000000000000001000000000000002032a9300ae08928c74cc0d28f402428200de915dddc0d0e08c5ec2c615d7f6469000000000000000100000000000000010000000000000020f2a29f4798f32e744bd950b211b434ee04d462fcf48e67944d5ac70ef858b04d00000000000000010000000000000001000000000000002069f48946897b62c62586bf42e0d8d56cdb0900cad1b1afdd83921875a89087d6000000000000000100000000000000000000000000000020bb4f5a180f26eb7dd9d6c1b7357041cd85ce4cdb1ae3c965bbb530394a6cdb6d000000000000000100000000000000010000000000000020aa190a7636f9917a9691ff309a2844cfc4aac3e251781f1f0e7c63623540714a000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000000800000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b8930000000000000005000000000000000100000000000000010000000000000020a83f511513fb5ae2235f0030cf95726ec9b9616cfa958baafd72248e6d3fb5f30000000000000001000000000000000100000000000000204f352a60b9a3f58cef173bb4159f074092fef7486663513d465fff4aad8cedf2000000000000000100000000000000010000000000000020cb46828135062d95c77a8184050a77537dd54b40b4a65b59197e170c577e7309000000000000000100000000000000000000000000000020676b9b69dbb0335c8ffc750e47b9002e096de3b682b79a0809bb8cd5020a5c120000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d800000000000000020788dded72e9332a74e2a93af2cddfa99cd441559c82f08680f5e3d9865f3cce1ebe969c370fa967c7dac11151535da6e9b0e98a6c6d0cdf6a9a9a27702720c96b8c11c1 \ No newline at end of file diff --git a/contracts/zkllvm/circuit2/commitment.sol b/contracts/zkllvm/circuit2/commitment.sol index 43c5972..2f13324 100644 --- a/contracts/zkllvm/circuit2/commitment.sol +++ b/contracts/zkllvm/circuit2/commitment.sol @@ -37,7 +37,7 @@ library modular_commitment_scheme_circuit2 { uint256 constant unique_points = 5; uint256 constant permutation_point = 3; uint256 constant quotient_point = 1; - uint256 constant lookup_point = 94196926262768; + uint256 constant lookup_point = 94325795983600; bytes constant points_ids = hex"02020202020202020404020200010101"; uint256 constant omega = 14788168760825820622209131888203028446852016562542525606630160374691593895118; uint256 constant _etha = 12217208067492249031102872072655908974751031861422067257283053495957748658893; diff --git a/contracts/zkllvm/circuit2/modular_verifier.sol b/contracts/zkllvm/circuit2/modular_verifier.sol index 24c6d6c..a8e0596 100644 --- a/contracts/zkllvm/circuit2/modular_verifier.sol +++ b/contracts/zkllvm/circuit2/modular_verifier.sol @@ -39,8 +39,8 @@ contract modular_verifier_circuit2 is IModularVerifier{ address _permutation_argument_address; address _lookup_argument_address; address _commitment_contract_address; - uint64 constant sorted_columns = 0; - uint64 constant f_parts = 8; // Individually on parts + uint64 constant sorted_columns = 0; + uint64 constant f_parts = 9; uint64 constant z_offset = 0xa1; uint64 constant table_offset = z_offset + 0x80 * 4 + 0xc0; uint64 constant table_end_offset = table_offset + 288; @@ -48,6 +48,8 @@ contract modular_verifier_circuit2 is IModularVerifier{ uint64 constant rows_amount = 16; uint256 constant omega = 14788168760825820622209131888203028446852016562542525606630160374691593895118; uint256 constant special_selectors_offset = z_offset + 4 * 0x80; + + function initialize( // address permutation_argument_address, @@ -80,8 +82,7 @@ contract modular_verifier_circuit2 is IModularVerifier{ bool b; } - // Public input columns - function public_input_direct(bytes calldata blob, uint256[] calldata public_input, verifier_state memory state) internal view +function public_input_direct(bytes calldata blob, uint256[] calldata public_input, verifier_state memory state) internal view returns (bool check){ check = true; @@ -110,16 +111,12 @@ contract modular_verifier_circuit2 is IModularVerifier{ Omega = mulmod(Omega, omega, modulus); unchecked{i++;} } - result = mulmod( - result, addmod(field.pow_small(state.xi, rows_amount, modulus), modulus - 1, modulus), modulus - ); - result = mulmod(result, field.inverse_static(rows_amount, modulus), modulus); + result = mulmod(result, state.Z_at_xi, modulus); // Input is proof_map.eval_proof_combined_value_offset - if( result != basic_marshalling.get_uint256_be( - blob, 256 - )) check = false; + if( result != mulmod(basic_marshalling.get_uint256_be(blob, 256), rows_amount, modulus)) check = false; } + function verify( bytes calldata blob, @@ -136,13 +133,15 @@ contract modular_verifier_circuit2 is IModularVerifier{ modulus ); - //0. Direct public input check + + //Direct public input check if(public_input.length > 0) { if (!public_input_direct(blob[865:865+352], public_input, state)) { console.log("Wrong public input!"); state.b = false; } } + //1. Init transcript types.transcript_data memory tr_state; @@ -174,14 +173,12 @@ contract modular_verifier_circuit2 is IModularVerifier{ IGateArgument modular_gate_argument = IGateArgument(_gate_argument_address); state.F[7] = modular_gate_argument.verify(blob[table_offset:table_end_offset], transcript.get_field_challenge(tr_state, modulus)); } - - // No public input gate - + //No public input gate uint256 F_consolidated; { //7. Push quotient to transcript for( uint8 i = 0; i < f_parts;){ - F_consolidated = addmod(F_consolidated, mulmod(state.F[i],transcript.get_field_challenge(tr_state, modulus), modulus), modulus); + F_consolidated = addmod(F_consolidated, mulmod(state.F[i], transcript.get_field_challenge(tr_state, modulus), modulus), modulus); unchecked{i++;} } uint256 points_num = basic_marshalling.get_length(blob, 0x79 + 0x20); diff --git a/contracts/zkllvm/circuit2/proof.bin b/contracts/zkllvm/circuit2/proof.bin index 6de6285..ca3fc61 100644 --- a/contracts/zkllvm/circuit2/proof.bin +++ b/contracts/zkllvm/circuit2/proof.bin @@ -1 +1 @@ -0x03000000000000002024ecab4264a7ca11ddf74da3c6b431952d97ebadc7a298b33058b4a1049e55130000000000000020a41365af29f6d68a8f9cb810801975bee37f2f545a03b00fd71dcd85a31ab62800000000000000200ccaf3029f851972eba18a90c54baa5816235d6267b94f9178e76a21225faffd2bb02b52b93caed02f7b9f93ed72d6303eaf557b1016fa1c42c0dd037c8d168700000000000000262bb02b52b93caed02f7b9f93ed72d6303eaf557b1016fa1c42c0dd037c8d16871b02b1d914ea72056989679d7826ca1f9adbc9880002cf6daffb7f1fa3b332cd49f5e09cbd6dcd20e5edacfb6ae02b470f500e5770a41ec7d3460b1a67db9daf4925359c68cba0ddaf87fd463f6daed7e844deb500155000cfe079de79e6639a360286fc878aa6c57c985abfc599cedc1c39d4581483677ac6ea4dbcd7014fc5304dd9fa371b70eeffd08ccb957867d20aeb86e7009bc009af235519554cb9321e48baee37f2178dce7cf3264a4f1ff4ca5be25f8f9cc05e7068202ce1092e606a45a7312e851bf898402981030726b3a4f5684b04458845c9f753b35519105c2bb02b52b93caed02f7b9f93ed72d6303eaf557b1016fa1c42c0dd037c8d16871b02b1d914ea72056989679d7826ca1f9adbc9880002cf6daffb7f1fa3b332cd2c905a48033f7712db668f85be870a178b97d6575d2461dd9cd5ffd0706bc2c83d9bd931d08eee60195862ede438d303f80e10fc9093f2a0920d1f3d2bed12c90dba87f7616b548a27ca3002a2041a74fa88f7df5deba6607e009786132f16195d118568c35ccff0c8e14aeb77fcd0a05ba585f78d646348b66c554b10625e607393a55f4272065053c23511cc8da1053b5c768b8284f092c0622d7e1dbd22c23a68771f10abc9d88dbdf7ce531cd3044141f573048011fdb1b76e4ec34435a64be38b2e9dbc80b317a5c8391f512aba3350ac687cfbc656d129432c62f7e7304e20b96785ab2120df9d1613b0d3b5046a60b6e70282c857eff5cc6590e881443f1b4adcabfaa14cf2ee7ec3990f58d91ae75bfaaefe1327313d89eb23baf96f5781ec5a0604f50be52aebc564dc2ed80502da6683f5e3a2ada92d791be5be4521b087bfc01cc8483b8334c4940ceeb6e69cc823c108c2d3a49fc5a56211b7b2662761bdeda7376d374c58b68475ecfa30064120c27daa97edfbda94eecaeaff4f58c3b98524b7872c3093d6583c78e1c29d74d2b743aab8f96848d260fe5eca369369e984155e5f975bd41103c801ea569e500244152d768985604be0800b066a1c23ef257ed5ebd92bf742c4e3068c99f3540c7dbc2241dff476ff279abbb63cd3d24de7686966f8fa3577ea539d516c0a16d46d0e2c283db58b157952ca5303cebf7d251b84b88bcdcbc492c9f2d6f105b95708b4f0d654cd53285e85e3ab6ea105c20c27cfcc067f59898cf6fd4affb6cba30aceb71a21bf90f2d0a0cd166fb4436a83f5929b3f9c1da37755183e029cdea738a51f53d478d52dfbbc3fe81d683e389ae2d2fe8f3c87fa3117dd66be610f00350625e67a0a0a71085f16f7501468ba8f6ca1c66f39d28ab02beb5c4cd9bc973c9c912bbfbb11d353c8d10b6cf7eb6e699f91588aa1c15668229e999f67016be986d3d46b1792513529ae7d47a45e880a4f6a041ab1dd88e825ea755d2872d33897e57a7aa22a2151d8d77301ce1d59d4518611942d65576e289b37ad851c1ccb0bf1eea6fc9d153788758e561736f740d1f89bfd68724aa834c7148864d7d20745a5da75f93bffdeb626ac0c20c247972d1211f56ee817f896764ca8fd4733948423e96bd2bbcb609d99cb69a32c8264aa00a167239c313f812e413bf2cd509ca00a2fd2bb174110fdff656d826e42572a99a1bbcaefaf8441770a766928cc06b847832d744f47979d15ad0000000000000008000c010402010305000000000000001602020202020202020303020202010101020101010101000000000000000300000000000000201f9195798387e56733a20bac88eca923f2270dfa9aa8a0a12004221ba4ce4f2e00000000000000208c897d221abae8ec32b4a639cf9806f4f3eacf79109a952ea509910e13c33b2e0000000000000020ec8902ba156ed5799729cc3d673fed6a190dc770d43ee980dd79a754e0e5cfc80000000000000003010101000000000000002c5950a37bb55ee341bde19c2cf633387e72291d47986d31d3bbf254b932e053a61a9d03d7743e9a0675583bdb136e9f86e19486bb67912a2b440dab45cd1fac5b2d9033c22584c463310a0d128b3d535a7c6b98e62b0490cf23a0511564224985465d73910418b8e5022fcaf57e6484aad7520b1cd4f9cb2fdc5faee99bddb67c57161ba8b3666425f0d2ab71bb69976ebf75e6452d233dabf9623797bcf002a11cd78baa7637192242672c964e3840969447bdbdd2db1e53069dc867430ffd601df67cfd17b94aa095a177f3efb9ebec998517d53bfee3b8d1af852b2a90126255f72a5611e432a79d98601419e7ec18ba388c2dc3ff78462e507ad3d56fed9f5950a37bb55ee341bde19c2cf633387e72291d47986d31d3bbf254b932e053a61a9d03d7743e9a0675583bdb136e9f86e19486bb67912a2b440dab45cd1fac5b26ccd61eaf0cff1907e89f390148757c43442c240938ce51044683cd6523b678504c40e853716bd1d69bdda736d45b0cd4811401f6354dd689d6456cb10ac9fd0661c5589cb44a31bf0404d71262ab17aac96bc0741e262b636b783db34fc80718b1b9cc1ab20522925ee9ea638062400aa671dbbbe8a07745ecbe039057f29b5057f26aaeae98736ead4854610021c66d0761b08c1c1855c62119ad79095eee11027de8749bb889d7ed15f9228544a7003595b72fc1289ff497dd382e0194bb41c33130c9a81903f64dad5da57fd552728fee4a181f8b95cfb1180c46c6bd376ff8842c5a567e368d50c4927832b39be61bba5a3defb08c84ace0e9eb315c2e17de511240dca41b4354e4e09981adb4919f08584b9e30236e1185b239cc820c64793638e36edcb5f2afa44d5b63e8866f2fb11ab1059a1e80abe61f45896f906940323e5b0925eaff6eaa0851d6635f92107561ff105b8baf8f91fa1a0ba0664da84c03356922b71a79b388f160c291b31ecd61dca1a783e49316c4c04c579423aaa5b31f83024cf44437c63747644a9403baae835256c4cf46b865b026316a19630983fef125fba1c6a2b39cc60eb27601422133351891859c8ef00668a8826e71abd44165bfa5c6d0a652b3826bf2cedc569cd85e367a921a436e80261c452c2ac6e7de2af8b453407005430b38fa60852ed3b7e7a4c8762cd59a6713d990551109d9523a05a563d82d6be3eea4a72dd5c9a205df65585e17ff1c8f1a9c4b0fab19c755b57ddcc0c46775020efc45fa4c9637c821403b4ef47509eb5420286ee6e201bcf224725dcbac1872a1a9384bd9a17325ce914490c2f68207c917e90e4192702d354e364bf11854b6202f5a04d4124b56bb497d459205fc10d2d04f4de74c85bbf80204ec3f7a6014aa676b26db56e3c6cb98b44902415d5e72401b1475cac1ea95369fc82d258a6c89656e8100541eab6ac68dc9f5c51f3e0e3dc83ba0013d2cc8a9353bceece80ba0bc2fec08278df3d41fc549f91d9d31f57a04629e3eec20e7b20c4be5e8663774f7e2c81af2c5e52414ea8e57d87c0af70b81219663ca435097f998206d4c925b322962311252ca293ebbdae0d3d61aae526729c0e845ef9f171159ff78a7098701004298da5fe972f3067bed677790cfb7756f379e426b8e59a649300bc5435629bc627a6ae0bcb21e8c793defb01299a53f30afba4c6198dc532c96ab29fd289508a409064285bd6177225a4694077c898c4b43e85b1c946fdea6a6480f0c94bdf35a1eb32e146a7c87ea243ce6a5c81ee2315aa3b3d077fdf19245d8b2f7c2298552102f9a1ad0e1b39496f8f82907d1cd0a4ef466a2c3c2c547b09c2ff6ea4c7f801611ffc39115c6940c57a36daf48df6825499d4ecdf105c1207facfa17252fa3a89665c9b041972201c1c9f9444ab140cb7e4f628c3e82b4f0be43d94fafa313bf209238880ca464918caa32b2313431529c164f41772bc0ff2bd145113d09c9bbd6602de2360cf3de8542a3a36e96000000000000000608019af38fb2662acbfca6f6ed7ac12cf95013f3d92cc4e6b58ec2bc2eff6bee1f7c11ba37443d767a2df2d41b044ac14a8f0fd69b26ac231074678fa1d2376c55e43bd9df107e64fe1474ed8921e4f2442071eef8957c1df0e13bf1b13ce2d1717269412e1a36110ca395b0772177d97856b9a75ad0d1a408c230d7b09dec875f14b08fa417c73c01b04916276612c6ff96aa96c1a3ccf75790377a2deaf3173453e05cb948b71d0707694358210459b200fcea63888722b5f3fa50622964c1000000000000000400000000000000160000000000000020b024bd12fb5b07a167bc8a510f274a06946eac1240e823dd682ec71d18e04b4e00000000000000070000000000000001000000000000000100000000000000202fb4453e40918dbaa613572008a878726fe52a9e54f08da115b42685fc956d3a000000000000000100000000000000000000000000000020e23b6bf05f3eca672766d0739d5bf3dab3011348b493488ec347eee33e426af5000000000000000100000000000000000000000000000020ca2651ae04185f43843c08f5f30c0f46b1193b61e65dcd4e30f62221a016ae6d0000000000000001000000000000000100000000000000202d0b87876f7e258bbec0a11dc508a3482e6dfb93a6410a8de151dd3b5add3bf4000000000000000100000000000000000000000000000020e2732ddb16a4cf9185af77bffc17228a0fa31015c9f64ef9dca0a1a0416fbc3e0000000000000001000000000000000100000000000000207a431e3e3b4abc66874409bc00714e84ffdd8b784900a87b7c62a52497fa40c4000000000000000100000000000000010000000000000020564b02dc9ea4ce766caf42be67c77c94a3193983b90074fcc9626e7b3b0da7620000000000000016000000000000002024ecab4264a7ca11ddf74da3c6b431952d97ebadc7a298b33058b4a1049e55130000000000000007000000000000000100000000000000010000000000000020c245b36872f693175f1d7f98cd3c9f231cf0f58caa75b3d42e1e3f39fdfa71910000000000000001000000000000000000000000000000203fe84bfb156427b5936cd53284e4445a81ef61f0e14bd1e92f809749626daad5000000000000000100000000000000000000000000000020b61cd03d9dfe6fb3c56b73664bf3a887ac97c8b695e18ca98e33a57dec654c4b0000000000000001000000000000000100000000000000201278466e8cbd92e4e7b438686c293f5b391cc4fe995abfa1a005dc75a6b16a09000000000000000100000000000000000000000000000020445136d78d9c83ae73aa9acdd9291ed4888decbfa819731715aef70669c530ce000000000000000100000000000000010000000000000020fa2eb5685ece5cfd18e34d460077f97ad7b2a6549d2c95efaf318feb962f55e100000000000000010000000000000001000000000000002023aadd8e1a36f15da7e8100b07038075de004e73d452137cce0d88f4a88f73e600000000000000160000000000000020a41365af29f6d68a8f9cb810801975bee37f2f545a03b00fd71dcd85a31ab62800000000000000070000000000000001000000000000000100000000000000204010d1c07e36db94fd1331fc1250dd13be6b2be8181d44151234ead1aec48c9100000000000000010000000000000000000000000000002064fb1a9c496641bf5b861999e85186c8d075805a816cd10a2545aaaf3e01994f0000000000000001000000000000000000000000000000206a8f5104d11e7b3e01e6875cbcfb9b0eb97545f272c89636145ef020691c600e00000000000000010000000000000001000000000000002068b748d97f911457ff6c5498b3c31970a796555f3674f3c9791d117fd3ba247300000000000000010000000000000000000000000000002007b3c07d554bf2ed91cb74511be622406f0d96282e86e45841e75f0f8cf9c967000000000000000100000000000000010000000000000020feac232e700ad5402a0a3f055aebca1aa41057a0ee81288f8565c3ab5c8072b700000000000000010000000000000001000000000000002053e7aa7c8aa699ed3a317df1592f298a45bfdc9081484fac6beb6221fdbb5d9e000000000000001600000000000000200ccaf3029f851972eba18a90c54baa5816235d6267b94f9178e76a21225faffd0000000000000007000000000000000100000000000000010000000000000020894c6c22eaaad06c0dc46a227b004cff1d7dc2610ba0e9a335612addd3cecfde0000000000000001000000000000000000000000000000202a953903af06f270d32e8e4af218bb85e43883a02633d4a4e08d69f6ddbc15db000000000000000100000000000000000000000000000020ce9814017271cbbf114db92bdb86048aebb9838e5593412e831f9baa76f92d6e0000000000000001000000000000000100000000000000205f8f7dacbd2209354adaf3e245dd7285007e48081ba2cc14c85b320e1a937c380000000000000001000000000000000000000000000000209196d37033b451668705421851b2152d36d8f4d12895588d4ea54fab64e66ab2000000000000000100000000000000010000000000000020a7e595dbe42af5889549034b5375da6daef72c1878140c69b5b661ee823d74aa00000000000000010000000000000001000000000000002049d9d2b2530fd948bb4c1960cbf29a66de323a356f20afc99067f2e9cace04440000000000000003000000000000001600000000000000201f9195798387e56733a20bac88eca923f2270dfa9aa8a0a12004221ba4ce4f2e000000000000000700000000000000010000000000000001000000000000002094c52923e55f8b8314ccab3416034264924f6f820a0ddd31fe55b2e2b8c9cab60000000000000001000000000000000000000000000000208e3676611617e343c2e8ef9ada1b34fd07e165d24325bfbe5f4a6a673795f02b0000000000000001000000000000000000000000000000208eed51a448eaf0694d50d7c111853d504ed13a9f0b1ac8599ccfd63fb65aeece000000000000000100000000000000010000000000000020e6895e2735bd54ce33b3e726845aedcc498cb11eb024bbf4dcd0d26b2c75ad1e000000000000000100000000000000000000000000000020489263335940a50fcb8ff3c77653b9b3ada3a5a51f98afd486c1e55ac2bedfca000000000000000100000000000000010000000000000020491b69ac2c67b834da29dfadb05a73e2f7889fda98ed303b77a6ff5afd184aec0000000000000001000000000000000100000000000000205d3e60ca6a503bdd60dccbddd89b8152ceead0433f1221ee21e77c7d13217778000000000000001600000000000000208c897d221abae8ec32b4a639cf9806f4f3eacf79109a952ea509910e13c33b2e0000000000000006000000000000000100000000000000010000000000000020b7b4bee513005b6e7995735960ff289f7d7c991e2355729949df0ee43b7c27420000000000000001000000000000000000000000000000209b0281c000acdf33601f59d741108254ae66ebd61bca7796adf2c1172a5e5ca700000000000000010000000000000000000000000000002088e91496d93724763df3bfd5c1886efb523f7acac5efbea0d5ab641bfbce56bf0000000000000001000000000000000100000000000000203cad19af37337a5edf4cf8c32bde9f5c65a23c8fe87396b5cca30f5261301ace00000000000000010000000000000000000000000000002007d12c88475896ea9b717c866bb09b09e850a8d17b691309fae736f79a3b80f10000000000000001000000000000000100000000000000207bbfbf07094a5794ef5690fd624e29cb5670e51968b3cf1aa844a65e2ad3a8e100000000000000160000000000000020ec8902ba156ed5799729cc3d673fed6a190dc770d43ee980dd79a754e0e5cfc80000000000000005000000000000000100000000000000010000000000000020c66b14cc7be460f04d5ce7d5b8e0fe09f428eec72f23d8ac1f261ab1848666410000000000000001000000000000000000000000000000206dbd8a99c9a55d2cf9929e5c1c0e6d1dc9e17887abbee887cedaee24b2bb46ae00000000000000010000000000000000000000000000002041e0f9040ce63196257e3daa913ecff5955fb5a025952b8a59b628aa48cecec600000000000000010000000000000001000000000000002073ae36d056dfa3b3a48bae43d1168e1ce15af21a67d3754893bd62e2caea755e00000000000000010000000000000000000000000000002027fc20e83735c9fe57e877febc500fefd7bf3754d7f6f7408d4560fbf6add347000000000000000249b448762eb03f2c845bd92cbfc38b9058cbd3c092962a0d06c218e5480a2bec29b15c64d1e5d5dbfca830ce323f4565d7c1b14176b1f1043ace05b97a5122ac \ No newline at end of file +0x0300000000000000206e0fe76ccc16389dabe44f38a09dcb5c41e9f34af073814f6971e5b8f20e95bc0000000000000020a21d7eff64e31e0c8164e05b74a1b3949edc3c6c67fa6b7a5ba5bd0556b41d680000000000000020dbc43b8e6cc13c7a990560c3fc7275cda79df3aeeac7106db3fe9cb63ad29a1e0f6b69e3c386635a500becfbedac41b14ee8d59f85fb3c2979d810d10629cd4e00000000000000260f6b69e3c386635a500becfbedac41b14ee8d59f85fb3c2979d810d10629cd4e1b02b1d914ea72056989679d7826ca1f9adbc9880002cf6daffb7f1fa3b332cd6befe53a58acb77830537ae37fb5cbd9285dd75ca9dea52254e875b72b249d224925359c68cba0ddaf87fd463f6daed7e844deb500155000cfe079de79e6639a3bfd58a5730814981eed4c08442d82d0241f0b76a5205bf6525b38082e004be8304dd9fa371b70eeffd08ccb957867d20aeb86e7009bc009af235519554cb9324824768ca86018503ecf8c21c0590ba101a0643583e76fbf407e883c420213556a45a7312e851bf898402981030726b3a4f5684b04458845c9f753b35519105c0f6b69e3c386635a500becfbedac41b14ee8d59f85fb3c2979d810d10629cd4e1b02b1d914ea72056989679d7826ca1f9adbc9880002cf6daffb7f1fa3b332cd311783623d393da06076d00c033882854dd9fe507d917b6af1e42525c23465e33d9bd931d08eee60195862ede438d303f80e10fc9093f2a0920d1f3d2bed12c91e5d83ce8775e89538baadea54ec4d0bb9988dd85d8bb74998273f0356d3ad115d118568c35ccff0c8e14aeb77fcd0a05ba585f78d646348b66c554b10625e60190bb6368f8a3f754b2f5a4842002c99e6ffc656b260b7b382b7e0b299b938c03a68771f10abc9d88dbdf7ce531cd3044141f573048011fdb1b76e4ec34435a6027a47e1e4dd96059e238db1e4f9e50d4fb49b509820f1466df333a98c5a809302181be99ea8a03b4e2aeafe6747837f7a4912c44851e818936af0154e39c94c3f1b4adcabfaa14cf2ee7ec3990f58d91ae75bfaaefe1327313d89eb23baf96f04673ae3240b899503e6b1249f6b955574881e72f458b312ccfe800f03aeecc72ca42c7624b740eaa079dca4c5b6fb8310ec9f7da2ae4c4830ddc1b5b24f5f6b662761bdeda7376d374c58b68475ecfa30064120c27daa97edfbda94eecaeaff3aecd24c1adad158d580e59b7a3b3005536aa0a46e644387275bc4ce9b4dfa76369369e984155e5f975bd41103c801ea569e500244152d768985604be0800b062405a440915bf6d75d3b451fa2728452162c6ee49827a6e1516076e718aad9823cd3d24de7686966f8fa3577ea539d516c0a16d46d0e2c283db58b157952ca531e3de9338c4bdfe7455d843942ff0d79d11f720fa4bbfcc3a5393216581247c93e9463c4f3cd47253ca6321ca66833672e84c3a35acd4e832b958e46666f635d27f3132dd5a5e689441f73cc5dffab3d5261a9e28ad03ffa0e77991fe192da493c302bd8b5c9949394d341b6125546e86283d2fb8a1541d867d21dccea471993407925006c75d26383092176e82c585cb580f26b036c06dcf5dd77a8faf6bd512b4dd6e700b0d5660197194045ffb61018271d82aaa0175a1eb4f3ec1ec204a47246da55d9e0fae5d40dafb3a8a65c14e7cb23016d9b59778fb911039b4076621a977275fe367097a8fc79fcd6645d8f415ee0ed3f25f1c557e5bbb72ed0a56e5d4d01fd77ccca79d7c2bfaacba45cbb8476cd1e64bc7e79eeef0d2933ae6b7b191c694b9e62d86a1b72b4bdbe318f48dda70bcaaa7a7d6e80243c69330a7f87279b607c1799e797c7c72044ea9c3c39eec4488f8f3c389d05e45748a23fdb41356839719488572001aa14eebcb0e1b05e7de7869dc8d7f5c0e4f09f82297f350000000000000008000c01040201030500000000000000160202020202020202030302020201010102010101010100000000000000030000000000000020feaf0cf88d8685d494a312ab58407ff6bbbf156455f24d64c686de41468ea1c000000000000000208f69048870ef551677a55d5dd02ba6acedfc619e823dbe6220a7f588a65658790000000000000020fba6df4d32572510e646ef1f9a7b1daf19dc882b01fca6d9485f969ba1301e4e0000000000000003010101000000000000002c519947e7840143b38aeed579d92544a1d482d714b1cb5d445b0e07816f77b3a722545f6ba59c3994a84b028e307c93637f3accee4e32febaa4f1f87d90884c5a6b7a5a07f592e4c7ffa07634c97d8057809d5184dc961ce27d62348e0c45e98d08734d4b340a9880339961d3402457add320527e23683f1c829dcb70f3ba167438c68a44bd5351c6ca082b4148a372448ddb62900824a2376daf6fe855e962d53b271d0e6c4a2b816931acc6c0fe65c0c5e24172f7d9b9c792509016aa169d2c31a4d1e7b06ec496ec8ba6b0df9297cfe5c6c5e739055b86ffcc0f5d5961b3d04248d56b792eb8b146ae31572a0f40356df6de1bc6f900780033f0a1a69e4c31519947e7840143b38aeed579d92544a1d482d714b1cb5d445b0e07816f77b3a722545f6ba59c3994a84b028e307c93637f3accee4e32febaa4f1f87d90884c5a164c567ff83ae28f67b6f888db44bf07b363ff55d637a14f2ae892f83eb86fde3598aba23be9bf451827af930b69a508c42397500e1333663a7ce39b5ac20ff46375252b6da3caae24bbced6c81742d262cd049f55408dd30bec617e628d30580fc66af2d13e18d81146e3ac06c1e7b8a0913f307ebd98b84ad5593cf5e38f391748091a9903992570efb36ee47e687ea7d1c7ba992c0516c148deae50cf85f60a30fd46b0f3ed60de50f3cbb656e505bb5bdee637b8be8bb2f8743d2df249622de5eb496ef8cb72be648a2f95dd45cc86d07463d1ab41880c53535766b4b36d342a3ca266ffb3349f4cdb2af5f7e669ecd05f53cb049d8122947c82b985b9ae510dd73e659757da335b793c7972d74c71bcd68e4c1b49ebdce66764dd5e3bcc2f5a22662dd7728171b31cf2da83f774fb466e23273abce8340ead7e365c542f11d9d3a09ff8a4cae8a779f77135c82938b7dba5dc9869ddb1dabb4cde45cd7916a8c19cadf8fa17532c52a9629e94374d4016f162fc26416640e94d5fd7e38c2445ba6cb47adb176065f9fe0b1c11a95c218fe0502ad50d495b26a13a92efea0b456ea03ecb4f0290ef04a03008b5ff51e8cf2e65ffd333b600512c5e40777d3b7336f79ae54d87455f5ce7ace0ad182239ffd651a24df54d1db89c7794db024832d57b0424a1e774591921bfef86fd2ac6adb2d81b6f4e1f7dde797621070707b2980ef91d0e7f89817ad5e39cfbbda73094d39d791a8405ac830d6ccef24b5ba820e7b1b055c00c302b09dd38d98f1b7bb18611365141dfa42052152839da089f3d34b948f87c9ba62ec7e3a6ae733ccca56d9dd90bc038553827651edaf53ba7aed311cc700f48235a11d8eaa11155ae4c2383a354137e76b4ef1ad23c7a4791929f561525e1d73d556289326c4ea99c4de689a7ec5ad5b5b4114342a09f0ce8e51109999fb191d18086284019da715f453e2f01433e7a2687fdc26eebac17a130fd98ca93b79782f123552a16440001326bd8a73128ea52ab952b83e9a04f9af917f5892960a57de38b03ba74a3cfd6939f25ec7c20dffaf6ae31d350a72f488dc6f60e1e77e2b0276125cc065e6812cabad260123ba50278d45dfa19bf2040369cf9ba09330a442fb09855ef520352d8eec6c0434fab5eec2c43059c7f4fb38bcb80f6d19ae0051c0e225b776cdd485681fc0825b1368a34d8ec01f37a1fcb4a0ead0bf2084115930e5a946efae68da303f2dd27dbf07dbe8c53f53bd96ca4f5c54906181a85e24f012cd70570937c8b8c39bed912ef7f6101a33c32cc2155f571b94ea39220ebd70de739f671c62af3828e8e306d52c11feef81eff426c6b09205b1dbb29f98e7fa91b038b0faed0f65874b35ee5269df602bc65756121d33d4e658517d0df5b878a1de23e107e24b35f163b06977b6cd6674443839825fc166108ec9398859ba8ba4b4d5f291b7a6ec1102432f32a209a65dec62eb10e3ed03c74834b4ffbaf85ef1ec41f2e10be1e4b3bad6065bc4500031ad6ee55000000000000000604f2063bebec672cc8e873d041689bf409c0988993db4d5828784e6675e705934b0c6d2e8acaab75ee3d8e42acad6c1bc405e3f67fdeb10ffd12d14f390d8da32d60fb55b0aa57ad88865902146bb82135bcc06a8f4f372465b36ed586db0f9f2c2b23f8bbe105004fa4bb1830534d4b55eb8d613062fd7f9a16694d344ea9fc50931c3d0b093c6e82c754717b65c78005415858f4c9131d9544354884b391806b4e9613a24d7b6eed8e738b3738ab2fa8397544403a324be563b28d99e1886f0000000000000004000000000000004a0000000000000020b024bd12fb5b07a167bc8a510f274a06946eac1240e823dd682ec71d18e04b4e00000000000000070000000000000001000000000000000100000000000000201127979a98602f6c0fe9c97d634a02ba9e605c04082425a87a283cbaaa1b2012000000000000000100000000000000000000000000000020c5f6b93ad37d613fb494a003da95bd7ba672ac55f0586d2c7947438152c593be000000000000000100000000000000010000000000000020250e1c64a18f6212b6a945f816a7aa19a74c5412859e159a80d0d3b3c962e7a3000000000000000100000000000000000000000000000020ae39b4caf19460d61b2e9216964104f01cd1a093f497fdbe6ebc76bd9c8b461000000000000000010000000000000001000000000000002003449363278bf61c44b39ef55b9ea4cf53fd2a1342610607a303a38651aed84b000000000000000100000000000000010000000000000020c32a0d03207fdc70dd7f1a4f65654f7f921570d423753644507fb723e9043ef2000000000000000100000000000000000000000000000020a5791a4d1fb68b8c5de94b338a0e0ba2ce64eca86311b65648af6a74b0fb4d91000000000000004a00000000000000206e0fe76ccc16389dabe44f38a09dcb5c41e9f34af073814f6971e5b8f20e95bc0000000000000007000000000000000100000000000000010000000000000020223d9a04ca5944222da292d9d39b1f9270482c7d303ded6ca2b8cc0deff0b3cc000000000000000100000000000000000000000000000020ebef12eacdb7fb02c3d4a999072427dc8742fb6b5dcf00e48d67d07269cda61f000000000000000100000000000000010000000000000020da9c0e8c463880a050e5b53b30694e4ab84a13d2dcdf44abf5b2fef998b7484f000000000000000100000000000000000000000000000020d33519cdcaee8e441533b6503329a37ba9b86fd71f3b9020a82742c6c47880ec0000000000000001000000000000000100000000000000208f5dd6a3562b924871f423783208dc8f67f3bfebce2340d40aea9c2bba7f7d8e000000000000000100000000000000010000000000000020776761c667b614813c6d2035a52419033065c90d625eb51604f8126da59b8837000000000000000100000000000000000000000000000020e8107b4428330f98569aef3a2a72eb91c7df59bb9e25c172e710f4ae8eb76da4000000000000004a0000000000000020a21d7eff64e31e0c8164e05b74a1b3949edc3c6c67fa6b7a5ba5bd0556b41d68000000000000000700000000000000010000000000000001000000000000002023d366f21bdd185690f10121951add652f39c93e461051702501dfb15f587ee10000000000000001000000000000000000000000000000202278da8ba76e9411cff17ae3f23ce92bceeb96fea862c0e014873c7c181a39610000000000000001000000000000000100000000000000205aaa76d7e0549aaa38222d65742b149237301518a27fa0f6791ca75687133421000000000000000100000000000000000000000000000020bab2e2756e4073ad9bf33fbc8f560aee7564ca57914f937bc30b193b1c89abaa000000000000000100000000000000010000000000000020398196b2740f4eeae547d3333a51402af30ce0b959786c635af38925ead7073e0000000000000001000000000000000100000000000000206d29d412ca0ba09ae6198a61ff3fb1b170f43fb56afee674c817d16a9ef01631000000000000000100000000000000000000000000000020fb338b544fbd403f45766eca5f5d32a48c3755169d738ccdb6ce40d1ac1bec45000000000000004a0000000000000020dbc43b8e6cc13c7a990560c3fc7275cda79df3aeeac7106db3fe9cb63ad29a1e0000000000000007000000000000000100000000000000010000000000000020053bc5bbb6c72795efbae18e8b577455d433ce9f0b8af435363da1bb23306b440000000000000001000000000000000000000000000000200637d37f87fba3f969849ec3e073adf88b773437df7671e1ed9bb91603869ae4000000000000000100000000000000010000000000000020a4ec94dc366c7126d6e60bf6bfdcbb06af99d1aab06a4a6c834998944ce1c5670000000000000001000000000000000000000000000000203f02df79e4669b546ce2438502235dcfc4df94cac6b27811d549d160011b103500000000000000010000000000000001000000000000002016a9ec264fb08047e7caf2688dc5a49729957f8283e9fd77faa8f7e78506fece0000000000000001000000000000000100000000000000202717e48d62e4dab4f4450f01e4987410e148ab52a1528c404a9abc6df0a6f45f0000000000000001000000000000000000000000000000208426260fd451d51a91d3b293e8548b32f68073a48c8d66eb9c738ad1e90cda3e0000000000000003000000000000004a0000000000000020feaf0cf88d8685d494a312ab58407ff6bbbf156455f24d64c686de41468ea1c00000000000000007000000000000000100000000000000010000000000000020b9f6fce5fb491112a9f2a097353a917115598e23dd2a0347c87f340b1c67389f00000000000000010000000000000000000000000000002096d144923cda25a1891dce53bc66494b3deee0881731e56daffd7446f46ebecd00000000000000010000000000000001000000000000002093c466593f12d27ffbc6d87f95f946b056793ee3d48df0587dad21d6c0f3ae08000000000000000100000000000000000000000000000020bd1c89af953335b4ec3b9cf5c8f4d0e9664b1df53ec2a09cbb4aad188f7086b3000000000000000100000000000000010000000000000020a91c75e78b44703124a6d5aa395652aec5be728ed3eac23a7d23452543fcfe290000000000000001000000000000000100000000000000200fe9cb2e9e8f1303a0b269dca505f59d561651d6b043756b52dfdd9a87c0bfb8000000000000000100000000000000000000000000000020ced85db91c326c9fdf43b148f48839febfcb312d9197e098044b10c31f1daae5000000000000000a00000000000000208f69048870ef551677a55d5dd02ba6acedfc619e823dbe6220a7f588a65658790000000000000006000000000000000100000000000000010000000000000020170bc87e08fc0c097b223d9c4337042faaacf6e8c33245dde67f937ebcc309240000000000000001000000000000000000000000000000201ebb28966943148d636b57965dd95847ff5738da937d7313c59cef3adab979a1000000000000000100000000000000010000000000000020a29c08eefb8633390c0bd3275707819bf4e0cb2e59841b04edd1a1e5e7b13318000000000000000100000000000000000000000000000020a8dd4e6bd13a27b0587fa5c92a0db6d7326ec014b89af4f72cbb3d7ba51aa3570000000000000001000000000000000100000000000000209abf4ce5476172afc96f609bb27ee4fdb238675f58747e2dc202742e2da914c9000000000000000100000000000000010000000000000020e332267a93104ed072e6933dca7f6a82b3fef91bfde1cf8c821ff2767337d089000000000000000a0000000000000020fba6df4d32572510e646ef1f9a7b1daf19dc882b01fca6d9485f969ba1301e4e00000000000000050000000000000001000000000000000100000000000000207af77f0fce0462273a7fbbd8ded2bce9f43017bc6ad553f2114733c3efc5af5d000000000000000100000000000000000000000000000020c0e5a4b0d9fc02bf3dc1ff8557309f02035fe9200bc148940623b1a9bde93f4500000000000000010000000000000001000000000000002048d5924fd319d142024fea6e835cfa5e5fbdf48ce9cc075bd304a9bb103d5698000000000000000100000000000000000000000000000020bbc730af07a36df10be55ed08ca051ef964f04757d40f460db8ed9c407ebe9940000000000000001000000000000000100000000000000205eb3a1311254a08d50edbcc4ef2186bc85185d843b1fc66973085f7b5fadfa82000000000000000223fa057ec1dc9d4a9e8df7fa547e4d552cde94cd1a8274b53d53f3eb8f4a8cf73cba838943038eb1e51c851f2fb3890ed8a3f2ab0a681283bbcd56d28a04b9d7 \ No newline at end of file diff --git a/contracts/zkllvm/circuit3/commitment.sol b/contracts/zkllvm/circuit3/commitment.sol index e10252b..cfc1c94 100644 --- a/contracts/zkllvm/circuit3/commitment.sol +++ b/contracts/zkllvm/circuit3/commitment.sol @@ -40,7 +40,7 @@ library modular_commitment_scheme_circuit3 { uint256 constant lookup_point = 4; bytes constant points_ids = hex"010101010101010103030303030103000000"; uint256 constant omega = 199455130043951077247265858823823987229570523056509026484192158816218200659; - uint256 constant _etha = 23625454313544905426346299048229678104684481021196451178545456502003633541374; + uint256 constant _etha = 21915464855991742419581116609754714573146270272201618920517025040509264867430; struct commitment_state{ bytes leaf_data; diff --git a/contracts/zkllvm/circuit3/input.json b/contracts/zkllvm/circuit3/input.json new file mode 100644 index 0000000..4047112 --- /dev/null +++ b/contracts/zkllvm/circuit3/input.json @@ -0,0 +1,4 @@ +[ + {"field": 1 }, + {"field": 8581019244592484057451115223056269892373872147623551301775254067902153024290 } +] \ No newline at end of file diff --git a/contracts/zkllvm/circuit3/modular_verifier.sol b/contracts/zkllvm/circuit3/modular_verifier.sol index 1b81275..6725492 100644 --- a/contracts/zkllvm/circuit3/modular_verifier.sol +++ b/contracts/zkllvm/circuit3/modular_verifier.sol @@ -33,14 +33,14 @@ contract modular_verifier_circuit3 is IModularVerifier{ uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; bool constant use_lookups = false; bytes32 constant vk1 = bytes32(0xc45106e20a95531a40e12ee49dc5b9e85fa30183f7c8ec3bce5f6a62694b1933); - bytes32 constant vk2 = bytes32(0xf7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e); + bytes32 constant vk2 = bytes32(0x9f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e4); bytes32 transcript_state; address _gate_argument_address; address _permutation_argument_address; address _lookup_argument_address; address _commitment_contract_address; - uint64 constant sorted_columns = 2; - uint64 constant f_parts = 8; // Individually on parts + uint64 constant sorted_columns = 2; + uint64 constant f_parts = 9; uint64 constant z_offset = 0xc9; uint64 constant table_offset = z_offset + 0x80 * 4 + 0xc0; uint64 constant table_end_offset = table_offset + 544; @@ -48,6 +48,8 @@ contract modular_verifier_circuit3 is IModularVerifier{ uint64 constant rows_amount = 8; uint256 constant omega = 199455130043951077247265858823823987229570523056509026484192158816218200659; uint256 constant special_selectors_offset = z_offset + 4 * 0x80; + bytes constant public_input_columns = hex"01c001e0"; + bytes constant public_input_rows = hex"0002"; function initialize( // address permutation_argument_address, @@ -80,46 +82,49 @@ contract modular_verifier_circuit3 is IModularVerifier{ bool b; } - // Public input columns - function public_input_direct(bytes calldata blob, uint256[] calldata public_input, verifier_state memory state) internal view - returns (bool check){ - check = true; - - uint256 result = 0; - uint256 Omega = 1; + function uint16_from_two_bytes(bytes1 b1, bytes1 b2) internal pure returns( uint256 result){ + unchecked{ + result = uint8(b1); + result = result << 8; + result += uint8(b2); + } + } - for(uint256 i = 0; i < public_input.length;){ - if( public_input[i] != 0){ - uint256 L = mulmod( - Omega, - field.inverse_static( - addmod(state.xi, modulus - Omega, modulus), + // Function is optimized for the case when public input cells are placed in the first table row + function public_input_gate( + bytes calldata blob, uint256[] calldata public_input, verifier_state memory state, uint256 alpha + ) internal view returns (uint256 F){ + for( uint256 i = 0; i < public_input.length; ){ + uint256 l; + + if(uint8(public_input_rows[i]) == 0){ + l = state.l0; + } else { + uint256 Omega = field.pow_small(omega, uint8(public_input_rows[i]), modulus); + l = mulmod( + Omega, + field.inverse_static( + addmod(state.xi, modulus - Omega, modulus), + modulus + ), modulus - ), - modulus - ); - - result = addmod( - result, - mulmod( - public_input[i], L, modulus - ), + ); + l = mulmod(l, state.Z_at_xi, modulus); + l = mulmod(l, field.inverse_static(rows_amount, modulus), modulus); + } + + l = mulmod(l, addmod( + basic_marshalling.get_uint256_be(blob, uint16_from_two_bytes(public_input_columns[i<<1], public_input_columns[(i<<1)+1])), + modulus - public_input[i], modulus - ); + ), modulus); + + F = mulmod(F, alpha, modulus); + F = addmod(F, l, modulus); + unchecked{i++;} } - Omega = mulmod(Omega, omega, modulus); - unchecked{i++;} } - result = mulmod( - result, addmod(field.pow_small(state.xi, rows_amount, modulus), modulus - 1, modulus), modulus - ); - result = mulmod(result, field.inverse_static(rows_amount, modulus), modulus); - - // Input is proof_map.eval_proof_combined_value_offset - if( result != basic_marshalling.get_uint256_be( - blob, 18333047875794663362 - )) check = false; - } + function verify( bytes calldata blob, @@ -136,13 +141,7 @@ contract modular_verifier_circuit3 is IModularVerifier{ modulus ); - //0. Direct public input check - if(public_input.length > 0) { - if (!public_input_direct(blob[905:905+672], public_input, state)) { - console.log("Wrong public input!"); - state.b = false; - } - } + //1. Init transcript types.transcript_data memory tr_state; @@ -193,13 +192,14 @@ contract modular_verifier_circuit3 is IModularVerifier{ state.F[7] = modular_gate_argument.verify(blob[table_offset:table_end_offset], transcript.get_field_challenge(tr_state, modulus)); } - // No public input gate - + //Compute public input gate + state.F[8] = public_input_gate(blob[905:905+672], public_input, state, transcript.get_field_challenge(tr_state, modulus)); + uint256 F_consolidated; { //7. Push quotient to transcript for( uint8 i = 0; i < f_parts;){ - F_consolidated = addmod(F_consolidated, mulmod(state.F[i],transcript.get_field_challenge(tr_state, modulus), modulus), modulus); + F_consolidated = addmod(F_consolidated, mulmod(state.F[i], transcript.get_field_challenge(tr_state, modulus), modulus), modulus); unchecked{i++;} } uint256 points_num = basic_marshalling.get_length(blob, 0xa1 + 0x20); diff --git a/contracts/zkllvm/circuit3/params.json b/contracts/zkllvm/circuit3/params.json index f97c134..77a61da 100644 --- a/contracts/zkllvm/circuit3/params.json +++ b/contracts/zkllvm/circuit3/params.json @@ -4,7 +4,7 @@ "rows_amount": "8", "usable_rows_amount": "4", "omega": "199455130043951077247265858823823987229570523056509026484192158816218200659", - "verification_key": "c45106e20a95531a40e12ee49dc5b9e85fa30183f7c8ec3bce5f6a62694b1933 f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e", + "verification_key": "c45106e20a95531a40e12ee49dc5b9e85fa30183f7c8ec3bce5f6a62694b1933 9f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e4", "ar_params": [ "3", "0", diff --git a/contracts/zkllvm/circuit3/proof.bin b/contracts/zkllvm/circuit3/proof.bin index fb5ac32..6d34aec 100644 --- a/contracts/zkllvm/circuit3/proof.bin +++ b/contracts/zkllvm/circuit3/proof.bin @@ -1 +1 @@ -0x0400000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d6000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f299941856000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f3293800000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f35b0f45589508478252e84f59c75045f361cbcd18e45c042935382e7bef544e7000000000000003735b0f45589508478252e84f59c75045f361cbcd18e45c042935382e7bef544e7343b8884869e63daf6dd0953387348368c7a4fe70ddf9f3c44b97c38fff8d0fe0c74c5abae929658b9e898cc0e4915db85754c27a228dcde7beccad2baca587f0529aa96a117f346d2512ea01a40691035492b93202a37bef2eaa968ffdc14f23e47dc5a68dcefbba18afbfc476d6d499b4a7cc62acc50586b9ff61da5f3ba7b19d054f12577c0621b95e92083420d510a6dd9dfa0d316babe954f0cff4c68ba37674dc40c50aeaa27b6ebed6523226f7f5a0beeb0c9ad4bb56b0ae03dc2a4630111a8b5bb56c1ea89ed8da2904a4294ef980f6611857f6e86902966fc7e0ba035b0f45589508478252e84f59c75045f361cbcd18e45c042935382e7bef544e7343b8884869e63daf6dd0953387348368c7a4fe70ddf9f3c44b97c38fff8d0fe0c74c5abae929658b9e898cc0e4915db85754c27a228dcde7beccad2baca587f0529aa96a117f346d2512ea01a40691035492b93202a37bef2eaa968ffdc14f23e47dc5a68dcefbba18afbfc476d6d499b4a7cc62acc50586b9ff61da5f3ba7b19d054f12577c0621b95e92083420d510a6dd9dfa0d316babe954f0cff4c68ba37674dc40c50aeaa27b6ebed6523226f7f5a0beeb0c9ad4bb56b0ae03dc2a4630111a8b5bb56c1ea89ed8da2904a4294ef980f6611857f6e86902966fc7e0ba000f91c6a9b196f2758554b28cfce9c4fc5b99f516a584a92673c6270b27c63490434da0a1e6aa85e9df5f05ed99e523e0a4d6b69ba2c7cd0c2439b0e8210f8b217751bf2a581542ee47b5ae7d4e0e02af7a71bc873c7f7385aba2bddea3a5ef61a96c1265e6fd1fce7f4d649a325e0535702631d747d9d4740ef4a140fd938773a6ab7648a2a850b7f48df0db54152ff4d48478c88c594101912a58ed6178a6e3dfbdbf08c58e4f3e916fa1a6f3e75208970c68882f242793123b14ab791cdf221068a24b09ebdfb8b9e22464fed6eed05196ac08e937ad22b6658422a585fe40369984a55d800e03417bc473d1e147000712bcc9be3966fc59b2c261352045e295b7fbed4e2420808d6b3101d2f0041fbb28c89a4e944619e14aae32632b0f22982aab9b585927e3f14b985f904622c92c1801f6035272e3e15dd81b6da46541cd1b01a9234159ceda831e7764f1caefacbff56d466fe016922bd33a84767320428994f647f501b7fa5a6746b98e0c986f9913eb8a053bc75ba3024743908f21cd1b01a9234159ceda831e7764f1caefacbff56d466fe016922bd33a847673219e6ed90a0526e61f50302c14419b2438ff644a944fb685d20b27f915c77be0b2810d8e2f6270a1cd3890c3c5e5c18991066713e9329e8403c9707e7899494b619e6ed90a0526e61f50302c14419b2438ff644a944fb685d20b27f915c77be0b3d0aef0e94c434b9a9f151793318c9a9630fcadac7a319832bdada96c3c819380a8934de66245079cab2dbcc48f1d119759451e3e57ba8e4d04f04d6e132a637203b4864e80c167d21bfee2eb36d311efb3d2b23704a94712ebde959bb996b902d84190e39619223887c598488c7e10b82ac1dc85d89981e13cedb079a6bb9e419e6ed90a0526e61f50302c14419b2438ff644a944fb685d20b27f915c77be0b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012e51459a658132a7f08e085236423193874800702e5dafe896cad9fbd6312834053981687ce7b96ac8299df817997a9c826e08d4f7f8834e7a9bed4b84e1ad4e2c5472ed9519cfe1a742d477767266b6c3d575e89190f5cf97af1cd52e0dea291a45aa62eaf0df7e96db983c1567f5d9f54949eab9f6f40d614ff1802a4a6574192ea31c79ee8db82785518bbd76c1e54f368a315ed82f4a2c3614b24cbe64e434879689e4d0613ae0d5f52ad43dd90e5ea7336e6414484bcb87f943201fcb960523a99c533aaeaf4065e3d2e62bb34c2f535effd232f1e9efd4973b6b984ea412e7e581436609f02a25faa41959029a50aedd0859bfd0b4fffeb2b5dc3ea3f31137ad4f1a87b75b557b600ff86867219f3ae040e32c96ca709b51366150f8a63bc940ca03b59002d895be5216b49e6906fb87bca82bb7f8f850493411047de736553157fae4c3191b3817e80467b1861ee9eebe695ea5c2787268c42fd12bec37fafdec9f245386daa66970c868ffc01d4e56430c1885cd81c6adf17fafa3950b12291cc2dc097712212be611cbb3e33a8810bfbc21ee37749c5adb9028e02a0bb7c43d455e6bf83fc69db2b49c9dff617f7a77479b149e5ac5bcc213589ce5000000000000000a000f0103020203060402000000000000001c02020202020202020303030303020301010102020101010101010303000000000000000200000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000002010100000000000008c03aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a061301911905583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee82546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d5791ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a883a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a623ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c31c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e3aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a061301911905583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee82546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d5791ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a883a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a623ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c31c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e3feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d0b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c365c6077ab0490bcaa9f5627c0f5cde99a59a31864ed553d57b8162b46e494bb3e4254bae5217d87eae55fff4904382ad728515da29225c1b52c2a7e458f79903cc40f2563957cd02b5394bc253c4d0448f634cd65e2e2c3d47c95b581077a621e6a494cbf36abaf8b8a6a8de1165276533eb64441a7a8777834e338713e3148017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e17f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a66373299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f100220b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c3feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d3e4254bae5217d87eae55fff4904382ad728515da29225c1b52c2a7e458f7990365c6077ab0490bcaa9f5627c0f5cde99a59a31864ed553d57b8162b46e494bb0b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c3feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010ca081f647c3a9cb55af2191e325034d8e2940d9b79efc1c18ee9f0c4138fea51de9b43833ee51c21ff92c81d6fd2f50c3802ad659cbc629141a343698505f8c0a8f8e62d2f1306bbf2d43e17c0517dcfd32d7a38db1caf43a9cbd1e94206cc1166f269f8e472b263338c159af33d7948f783bafbea141b1f184d144cada56c21d78b132bf84510b91d7d719fefa47b1b6050174a845e4a21a1948455ed4d670298d8696bb2005af943a452fd8c9a1980f1cb9ffa2b50b8ff004c5318e84da8b0fef6bffe733d3d4802d6157bcb75fb459a3fddd81f14279f85d0608e6259ac139fda498248c0ae6e88e00c5bb72499f01eed91fcf0a8f20b0102dddec385e0e20bad6e5ed7e32b427a948695375f7850ea214c1e2821b459f24701d11107c062c6bbab900f68a00c926bd02b763043eb93a1f8e4f8941ed81f2e4a26061919e3f91b24e70802320f126e25fdd38ddf95f74a462ed0a55f6fdbdf0495e42508223e5118034e43465b244ec6d1c1d68cb8b5e0b900de6a8fdd61cc01673e404d52250416b73f745f22bfe2d5ec50c202791db9ea95f6c3f8045349e515493acc72d1d361d159fe3d131a99fabe76fabef558ab13653ba938fef93e17ff11f6b0631183373aed342870969053de46eb2420ceca27eb0b66695b61c4c1f18aa7522022cffda2481eb068d3e4d4058a2500b01f7053d1590df008987dc090ed3023b1283ca168f30a596b046a343283cb8aba63becd34c87237579e4b78935596d621f39419cfcf4fde686d12bc819adc83e781ba39e40ae430178a878f7a089c00f12cf3b49a33500bcf5951796e4eafd130452457a50ba7038f18dad0c6c119bd12d30c4b65ccaff430a6ae8691b1502ed1df45381b89288e2a79f83e093ee64301e0c2870300903b0cbe975f27896f15ef354c2678a5738011e9730511c580b1421f3d78fcff6fc4f34168a0d87690ea12ef1d6947ef5c11a7a96009be3a7f4ed163cca30f02d1273fb8f4dbc5af2b6da7c1a9a0da11a25ce66998fbb8db8376229c335cf0fd2ed8c0470b243a50d4925a62bfeee6832d34d3293a1317247c89f2f2ff2f4b0e15c43e9cc84adc6bd92444a3e69481c35c3ec67d29dbcc49914e910d00d0b4f1ea3bc16337b5239426dbbd8082fb3ed17352f315a93303b66eb1812cf3b49a33500bcf5951796e4eafd130452457a50ba7038f18dad0c6c119bd12d30c4b65ccaff430a6ae8691b1502ed1df45381b89288e2a79f83e093ee64301e0c2870300903b0cbe975f27896f15ef354c2678a5738011e9730511c580b1421f3d78fcff6fc4f34168a0d87690ea12ef1d6947ef5c11a7a96009be3a7f4ed163cca30f02d1273fb8f4dbc5af2b6da7c1a9a0da11a25ce66998fbb8db8376229c335cf0fd2ed8c0470b243a50d4925a62bfeee6832d34d3293a1317247c89f2f2ff2f4b0e15c43e9cc84adc6bd92444a3e69481c35c3ec67d29dbcc49914e910d00d0b4f1ea3bc16337b5239426dbbd8082fb3ed17352f315a93303b66eb1830724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f62e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd606dddf9bcd0c2033836249932bf3ce970b3c1b1026f23e8e76c0903e838283321a92f6a61fce846b25c83d8fbcb76aa39feca1dc39a5ea305ae3ae246a618d053cab6d197f17180e56399a722450928f6d9116af63172aafb8dac171d79684af20f0072591fd810e96d65b79ca90d674ac9a437419480fec57f01490c6a71f531de7898ca0b76c5ccf8ea31d9866d81454a22428dfdbb89c3b361d9f92cb085725edd8763b0e9f24ec8bee196162f82280e8709816f727bdb7fdac9abcdb63e03c5f354a6809f5d8fc0d754f10b0845dec5a231524772141e6eba5461ed414fa0552acfb4136a8687c086867198f336159a70e0de3347500c25c57abf0d8fec12e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd630724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f61a92f6a61fce846b25c83d8fbcb76aa39feca1dc39a5ea305ae3ae246a618d0506dddf9bcd0c2033836249932bf3ce970b3c1b1026f23e8e76c0903e838283322e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd630724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013f04746b17ecc54f77bd72585a684e8fd03d61aafe9a442806af881b3210ae352b848eb10e9fdd59fd8c4de2526a6ca06d4ddc1141e84b695ae562ed60e64335025d6ea885215d0616c1ddbcc9104ddb5829422611d8c6bb4014f377b168c11110913e2f49daffcadbdd9040604f7943e36491ae951f3a1f3590c63cfe1b3bda1f15ab20061476ce9aa338bc3af0bdf901064f55847f47202dd4933248e9dfa506e0128752f4c77886ba5d531aef3d916a8c7f33926e7e7eaade0d218a0a580e289d5c26146efbb8b80b7c60c0616da75959fbd6f33b39a419d96ae3b60da6ad03ead49eeebaed8b0c8887189ed793cdd39cd1bf2f728e7cd0a4de0ac40cc21f18774eef9ada6ce3f881138985888be874da78a7926a3102ce2685f60f8c686a3a3ac4d0b3c443c86f7887a73230bb95f13b18138a2ac748c8a3dfadc3e8bc4704d882b645e0b51c301bbad7ce1792ca0af622b5c54b24d8709232705a9acfec31a581c646f4f1d9f4e275e595790818f819570447b99a4b0047f9064d1aa8fa1084487d01958b22500d5783ca00e6f1c5c7128548acb7043557fcce0e90a23e3ee92f0b88019ea10d9a7586e27ae525219f3d5a6a7a1c0bff7083033722758f3edab8a35df757cbd4bf9ac2f5119c89a1b215c871c13693296827575bded2031bb44fc94108eba44e98be22f7b693dd046de296c1fadb7659969a43894855f519a9ccc9665fb54d4f9fdce0598492b9c9d18b2d0c32a921fcb87014e0cad92b2c0c1664fc7fd450b1a01474530358a687391196c1a91cc37ca89931df0dc17f3eba218389931c1085d5c0807c3fe861039b4d0cde9c1394c0d3cc22092a60340145de7c766ce3ef7a2a3f7f83c0179f1eab4bef2ab0e586d85964caf6d59fcd39a2a791afdf8c529d2cc2826d3f89e488ee1d5033d87d795f6e38f62dd3e100065d586e502073ad62d33d7d92c0761b99587babd5747ba239bef7f6d22c1f01202d45d86f5dbd9d11dfcc8c223db176238c2ea0de068ef07872591ae52364fc1fd2ba2790a24262ee203373ddc24e89feba6a5b2b466a2b20bad7d21adc9b0520e25d3a2cd4b411595efebcab34774e6d2fb72c4386d87b27e15bac79b0f8ea1f1da2c5d32b4beea6a1014354cb88b1b516e1cfc5c620a0714bd540864f07173eba218389931c1085d5c0807c3fe861039b4d0cde9c1394c0d3cc22092a60340145de7c766ce3ef7a2a3f7f83c0179f1eab4bef2ab0e586d85964caf6d59fcd39a2a791afdf8c529d2cc2826d3f89e488ee1d5033d87d795f6e38f62dd3e100065d586e502073ad62d33d7d92c0761b99587babd5747ba239bef7f6d22c1f01202d45d86f5dbd9d11dfcc8c223db176238c2ea0de068ef07872591ae52364fc1fd2ba2790a24262ee203373ddc24e89feba6a5b2b466a2b20bad7d21adc9b0520e25d3a2cd4b411595efebcab34774e6d2fb72c4386d87b27e15bac79b0f8ea1f1da2c5d32b4beea6a1014354cb88b1b516e1cfc5c620a0714bd540864f07171daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff41b0c3367befdd9a23228379436fc2a4d6924fc2c37a8e525e8d89ba3eb52755414c0638803c42c3e8a992286d7a0db3f35b53d1ef9e28dd5cf90d2b16fe7461c3780608b24a9456ccb9f2045db37255b2c52432e9a501fe468cb58daa56815043e67bfa2358232f285f9c6aa48a670ae33bc882dc8695475516879500f531a3b1d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f31191ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a31870947f95bdea9c3c192cb3bbf7effe29d0fb7bf7284c1d7e0d66acf118ab01040c9277dc8c6351fd039b70656118046072e337c872d37814fdf794ba768ca328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff41daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f14c0638803c42c3e8a992286d7a0db3f35b53d1ef9e28dd5cf90d2b16fe7461c1b0c3367befdd9a23228379436fc2a4d6924fc2c37a8e525e8d89ba3eb527554328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff41daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001297a2925b86ebd281dd0242fd33fd7b431b7f63d6dc0b02deab5f4c74397d87724cefc30e5dd8624c3cbd01a99119d458c940f3e914a786ede765d6ff9a1250507e70f7da3875613b3f6aaf5a67988b08fa00fc8bc850e3fdfec3e38eb7fd44631fdaed1b0e13c8228b7001a4ee6a9b90d0c7d55e3f50cc9493ec43ad37ed874180c2787fda7438b2bbdaace6b7732f5818c7603906efd46347aa11cbf52fafc146c767d91de08ed68aff5bb76e22e34669207b4027748148fd2f460d93dbf253088351bb9cb73760969cae0772a22cb26799509a82193128592b4c48cd746203680d7ccca5b2160b3b1172d776ed871674c100e3fe5a86b8c702e46f30d43ab22dae2687aa531b16d537796f1bad9b85c03901f629972a2b05ec20b9077e2c6029f32f1f51afa93cf6a44ac7ace3c180315e052af956b7a98e470fdda389a7038c6488a4392b4cb74695b3a6e9a45e9709e8a7b9c126d54de2c4f2e935010fe035398fd74ddaba47b9c279635f7c4f088b2b1325b38c9e31bcceee583d685392d42ae22e26d0ac91e311119c8941d5a65d5b893524d753f997b17adf945b3e8222ac965a72a1efa3f76bbf0e3e7aebc8190974c60d95dd09b4d68234c6d63e5347fc70c0b90571f24f8addf4ac015375de58146ce807c5ad06d8b4b44137768152643b7b10d03d52adf0d751ba01e6a04f74f2e472baa328fea08a192c435e7389c4419858b12752ca473a33ca27494b7df76bf6f4f3c18c852f0dca6d06ac611bebeebfd945a733cfb112bfc5adccc71a90f719eaaa2e9e3c3ec251d8b498f1043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a1043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa126c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b3bede82a1ef51d40115086dd2213afb9fe7882b2741bc04a7341075fab56bcb4343eb86b56bb3939dafa46ac624a5b45ea704c4b192f810bfa86c6325ba37a541bbae18983592ea009d26ddcd2aae567ef8ab3ffcca434207997ebdc11a661320046ea7e137d4a3bf99df6b3c2c31ea4a10063e1a37556218da07592b2539d091883d6e1d3620a99d127d8cf8f9f75ddfae5984b4c8b4ceb80eeda5649fd19223ba6fdac0b77d30417b290295f5091155d781ed0d0a66a28e5a091ccf9031fab3319a2a83a6dd65b246c9f7d539b67b09c3b0afe9bcc31f641e4746e726732ac352254da5cad22b2bb31a255d43899f5be174c33d783688ffa31918b2d0e604e26c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa1343eb86b56bb3939dafa46ac624a5b45ea704c4b192f810bfa86c6325ba37a543bede82a1ef51d40115086dd2213afb9fe7882b2741bc04a7341075fab56bcb426c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012719559dffa53f78da0155bb28d1507a929316a24968e5eafa4268132d74a74e00a86bc3c3cea52cb0261a49a4ef43aa2d1634150ff783c9a7663d57ee93867f331b231586478b0586a67a461e4a7cefea358599dea3d418e1905b3134f173830c923ae78bdaff4be091fa9fd2dd45c775e3b1ec5d0531ececc3fa00cc1b3ddc170770535b42bb85d96215ae1f6448d54ccca1af0a59d3290eb1808e8b825d7135d96f5346c7fee33b88327de6933f2429e0857b3540bbd83b58d1db88704aa70cdbdd0c8d047325aec00d4172f3b2438d0ddde0f94caa553eda5ebb0b0af623082f7b63b92c90b858799612e668723c2316d9fd8f3783fcf50b4842891c8c5c2f8e1ba339d4c713d31edacc2f76bf1be30e0ac9ab0c6041a9cf700fafa2e34502f11c2b456fe3096c591ef984cd72c016218c456751f66fe836ca4e58b3b2ed38789db12f180832b126bc4920ba7242e25e848e244071f6a569ffb7149d906908763d308a0102ba98d2247b5a346e2788f99f98bb2fdedb41dc481c181edecc2b56c410770ec351114ad3e6aed505473faf7bb8d489226cda74e8fd56690e542416b378128866724c5cf923fda6c6cfa7b6d426de9db0a35a5396d3ef4a0979293bb73b2174b5123d59d7e5c4f378749de4afb88d17a6e110658c04f0d996ee1443d32dfae0e33534892eae94af2e2a0fa2ee914e0a81acc119e1305b9ad3fe26a165ef67211a5cad17c79063f35b92653a348cd64c85e8bd9f3c8af823692b3ab0e69fdedf4f3e21f3bb850642a553f331e2b6512a452a6c2583f0167c4748336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a0c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba0305e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df63a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b1d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce22724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a33336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a0c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba0305e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df63a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b1d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce22724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a330a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac629bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c3a1fd91331ac8e97af8356a18902d5d6cb9303a89611fe8d9d6f55ec0f200be1120d8f2f9cabf36cf829e0210d653a2833c4df016bdce7f4bb8826eb6390d7203cc6685db8543c231286b2845afb78b7ce5da7711fdf1afa1599b0f8a5e75f2d3b63fa20c08ef6946b68d1be6e6578e912c24f6d15ed51fa875cf830c4f8444e154726d1e457b749e5a32d9cb269c17087add08c554ac6163f1ba6dfbda977f43ebbdef2711d9803441a84e31a9d5ceddb174d378971a5aeaf3f8ea84a27c7941ec72c0c20573b5141e5d40e17d7293f3bb25cd5f92b26d68aa789660ac49eba06b8d7221f316ccd211c30eca2885f3786348b037a8ee4b5e05159fa94c46c3c29bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c0a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac6120d8f2f9cabf36cf829e0210d653a2833c4df016bdce7f4bb8826eb6390d7203a1fd91331ac8e97af8356a18902d5d6cb9303a89611fe8d9d6f55ec0f200be129bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c0a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012ee7cf40e9a75aa38cb64e66af9642a9169c9731eb57edb6b53369ec0446208c3b1e6a9982481bb6506650697a5dcd7822a320c657d46eb36ad741bbcadfabf11eccdedbc1a2134506b3b008b1992b2ad709e8cf9e180e564811ed9430647cee163f9bec6aa1ed6b98c97ed5c43deb881684b6a033004a73a655246bc4aa1d113206bfab9e791a088273c3ac3afd2e006f31ed3dbf2c54ecee900caa7a1a108020c70aea841759df5538b07c41016d329e965a95a9129f311d455f5e33d4d50b053a2d5104659714a47bfa3d4e0b1433021154efd45427a4590fe4e352ace9e7072e5903b5de133cadeeb465ab50a579fdbeab329bb363e0168f114701cad000277e93090ed9b5553571d0e7c5f3f44409e353f07b2402116c2ce4a9ea002cd400f43caf717d7ee4cedb6d07b1f157c7b54c4ea0e05e1721b14cc7e16548f90e12f4d2f5a47234506fdedc1cd8af6956bcd02fb698ab3ca4933a2d9e47a871fd3267d4e0c246875451ea6a2bc5e7eef5db3b4b37d1abb781485e78f398a6f6cc2d597b28717fcaa113b9e6328eb6b71ef9e0ea45b1890c30abc1e5dda62074002213fc6018175f2249ede6d81dc514f7ed85659a019dc6df890699f39f92a3cd1b538bc9c0abc6c5870fd9c5b7f0d839cce91198243bc8f966a9c8368c64cf7d39763f544375f7303d86992074646c787f09ee431a3a345f8d36cc3e6cecdbe51a0543ef5de1fa625abdd1f5defd3b7683ad368c2a8396501774e12f7420737223d0f543b2f69bd1cffecca6d09827df96554e5202157e090c6b17d32fed73463054c4fcf1c6656efbdf088592c1e3415b6c22c84fb1ee966e65bf8bd5bf46f20fab3b030e399a910420f77a6d3e1cbec6da7633b99b0a852ac771612a40b90f31a7d8f0b8dffb2aeb5b2a9bddc970466248e2f57292bd9d5c752af42cbc62b70e58270f472004d514a4d56422368fb9bffdb60696ba3b7e3cb805f8d3439d4a38473cb39c5fe7d698c7d50b54ef315f8498a3d720f6c8c002c243fddfaded9007b8c34c63a0182967382af4ab10cea09dadf524e856305b966aecef2052127119642f820ddf8730fbe72938a8abf6dd0de0cf437f9e0751a91690415e65a3cc269bd07df22078cf0418d6c7575409231465c9b889aef1c9f016a0aba19a5c353054c4fcf1c6656efbdf088592c1e3415b6c22c84fb1ee966e65bf8bd5bf46f20fab3b030e399a910420f77a6d3e1cbec6da7633b99b0a852ac771612a40b90f31a7d8f0b8dffb2aeb5b2a9bddc970466248e2f57292bd9d5c752af42cbc62b70e58270f472004d514a4d56422368fb9bffdb60696ba3b7e3cb805f8d3439d4a38473cb39c5fe7d698c7d50b54ef315f8498a3d720f6c8c002c243fddfaded9007b8c34c63a0182967382af4ab10cea09dadf524e856305b966aecef2052127119642f820ddf8730fbe72938a8abf6dd0de0cf437f9e0751a91690415e65a3cc269bd07df22078cf0418d6c7575409231465c9b889aef1c9f016a0aba19a5c35376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec2ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b203fc1dd0a13bd5456cb5eb5891a438e996ea04bfb6be14b9d3f424143cb7d10c619fecc3536a8d4db49740272e0dbbf7b6834c562baa120ecdc9ca4f1a53923322cc2720a52f1c8b3e645a5a14ab153afd19f76d4391f99ebffdf81ecf51e775d11f76b80533490007d130518a294847325d3679c416406b0948885d8d5135f3c2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd62dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a1aebe5602a8f012b625ab7294163b3f936535be6d1710961e568ba8e309576381b3b6514a5e576d3bf2166ce9c7de55051cce16420aa35ea7603aa0f35bf89c42ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec19fecc3536a8d4db49740272e0dbbf7b6834c562baa120ecdc9ca4f1a53923323fc1dd0a13bd5456cb5eb5891a438e996ea04bfb6be14b9d3f424143cb7d10c62ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000114748bc9e9a436ddb42ff39dd58dff74c3a95999948cf964fd8320e22ebd37f11d7c245924565ea63f328ec3cdc8a75fb5b8f40620db247169b30de13a5f67681ff71ff943b01723dbae8eb4270acf8754bedba40910c8f626d8bd567cbddd05043189efc387e02e23c581ef41179054ac9c8f8a1e00d9db2995d81eb60a46491f985c473c95a8599f8e5df94365ba8cff47d8d2fac9fc7d1f342862d6df20dd3d4eb3211b5fcafb155b272cdf111971823cdd68ed4e9b9487d36184d835635324448025650fa99db7ea47d6189c9dfb73fefec3390ce553547afc07a710e32836a5e982fa498942dd8813ae1f6b09318d10c4a993d4a3f860b62753e5623fff0baf3a21e8e7fcb337f89a48566c8f41c56ea46dc1f62d8f1ed07b3ef92da01e0c35773c0156b2e570d3a309c301f975de36543a62e72af4a27774a71d3be8521cad5f64396a57cbf6c140440b585cbadf7fac77a7d9be1b504b1024d305855b2ceb440dd0d4826adde4ce8a3e1f27096b514aed4a3a83e12640f8fa272596573182652ef4d3bc310e6a87fa34cafc35f83ea3b5356312605cf7c5cdbe9f10d91deb125994c36d924f3d451077b0cfe0ef27ac2a7dc3c0afd7d0ba03871406f4153ff2b7f4820a4e7bd3c8729539637ddfbc166805dce7616509a281759b5c3a20a2a06bd6ec70636fded53cb97a656c377f3f993fd5e5cfc27ef55a9d507d3e3893a3f47c8f4bb0393b432aa6425f95c9e02a189b1b4bfdbb8717a56d51345a094d094452ab7793ebb41687ae4ac74d8b09d563e7372d02ec7e074445ef9df0336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a0c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba0305e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df63a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b1d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce22724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a33336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a0c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba0305e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df63a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b1d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce22724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a330a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac629bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c3a1fd91331ac8e97af8356a18902d5d6cb9303a89611fe8d9d6f55ec0f200be1120d8f2f9cabf36cf829e0210d653a2833c4df016bdce7f4bb8826eb6390d7203cc6685db8543c231286b2845afb78b7ce5da7711fdf1afa1599b0f8a5e75f2d3b63fa20c08ef6946b68d1be6e6578e912c24f6d15ed51fa875cf830c4f8444e154726d1e457b749e5a32d9cb269c17087add08c554ac6163f1ba6dfbda977f43ebbdef2711d9803441a84e31a9d5ceddb174d378971a5aeaf3f8ea84a27c7941ec72c0c20573b5141e5d40e17d7293f3bb25cd5f92b26d68aa789660ac49eba06b8d7221f316ccd211c30eca2885f3786348b037a8ee4b5e05159fa94c46c3c29bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c0a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac6120d8f2f9cabf36cf829e0210d653a2833c4df016bdce7f4bb8826eb6390d7203a1fd91331ac8e97af8356a18902d5d6cb9303a89611fe8d9d6f55ec0f200be129bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c0a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012ee7cf40e9a75aa38cb64e66af9642a9169c9731eb57edb6b53369ec0446208c3b1e6a9982481bb6506650697a5dcd7822a320c657d46eb36ad741bbcadfabf11eccdedbc1a2134506b3b008b1992b2ad709e8cf9e180e564811ed9430647cee163f9bec6aa1ed6b98c97ed5c43deb881684b6a033004a73a655246bc4aa1d113206bfab9e791a088273c3ac3afd2e006f31ed3dbf2c54ecee900caa7a1a108020c70aea841759df5538b07c41016d329e965a95a9129f311d455f5e33d4d50b053a2d5104659714a47bfa3d4e0b1433021154efd45427a4590fe4e352ace9e7072e5903b5de133cadeeb465ab50a579fdbeab329bb363e0168f114701cad000277e93090ed9b5553571d0e7c5f3f44409e353f07b2402116c2ce4a9ea002cd400f43caf717d7ee4cedb6d07b1f157c7b54c4ea0e05e1721b14cc7e16548f90e12f4d2f5a47234506fdedc1cd8af6956bcd02fb698ab3ca4933a2d9e47a871fd3267d4e0c246875451ea6a2bc5e7eef5db3b4b37d1abb781485e78f398a6f6cc2d597b28717fcaa113b9e6328eb6b71ef9e0ea45b1890c30abc1e5dda62074002213fc6018175f2249ede6d81dc514f7ed85659a019dc6df890699f39f92a3cd1b538bc9c0abc6c5870fd9c5b7f0d839cce91198243bc8f966a9c8368c64cf7d39763f544375f7303d86992074646c787f09ee431a3a345f8d36cc3e6cecdbe51a0543ef5de1fa625abdd1f5defd3b7683ad368c2a8396501774e12f7420737223d0f543b2f69bd1cffecca6d09827df96554e5202157e090c6b17d32fed73460070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae02347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f3dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc620b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de6371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a8708e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae02347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f3dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc620b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de6371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a8708e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000123947f204892e06ab1520ebd3db2c70e7017ba6ef91f100c1a4d1e95983aed42000000000000000000000000000000000000000000000000000000000000000016eb661adc0bd75f8671b6b35469c6b19c01e509e4e8d2544302029a850f29c6250a17192d335c2019d33221571844872016cff5cbda9b820fca59e724d502bb02f6899e9600716cfa1adb1c190c3cad6138421c92ab4f52fda2bf971933c0090e7e2de006f09a30f68c90825ce6b9505e4bf1c5b114eb6c16da00e562a1b8eb19e3cd430a688219def940460d8111bbb2579d12e197eaabd9429f6778cb78c00533707a10866f6a7af9950cbbfcc54c913416c1107bba384d4d74e7c984e77c0ff4dea5b7c29830bf1466358164523b01a575a9cac775f63ac454df1212969c39f6275002d8763aead6f5952d84cad5529aba06196dc2e2f0d1eafece8740983589e18252a676761d1ab5cfc7bf5f6f671f5a81a6558c6e55f7de31bf12ae7e3db2422c6c457433785c245b74ac7b9a3b99c20dbff4688f941d40dd9db2a73606a51e2b010c99c67233702a0c078749652e49dbcccfb7c75ac87e3db2ff155108c8595d888a8ffceb745ce0a07444cd5ff16d07dd0a222d40d2d0a692b4027b16bf8c2515ddfdff1dc6c078c053f9fa1b99f542067455b006438339aa9ba43d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003b9e758ae3cf4a360111446f6309d4e0b97c76a054c3cef3055e7cbfbf7586fc04618a751c30b5c9feeebb909cf62b1f68ca225bb4892a2893ceb42d408a79052a184bb6730c730e0556562cef3128631653ed31829f2650b623ac0abd4ba2e815e7b4498cf38cf1faa9a9d310ced79d0bf2abca86add2cae30984e242b45d1912797a903f3e3f461aafaee0abf5c9ef08cfd7037134d440c32ac96eb27a2e852d86856fc0c1c0b9e550511f540a36111976c1f8981824dad602677e4d85d17c1c5f64d13c373c5e856e6a635bccf1ab09c89a152cbb2c2836a8be3c7c62e89823a09b2ec3c8c3a17a91959ca4330e55187dfee6dc91ccf3628472b0839d17693b9e758ae3cf4a360111446f6309d4e0b97c76a054c3cef3055e7cbfbf7586fc04618a751c30b5c9feeebb909cf62b1f68ca225bb4892a2893ceb42d408a79052a184bb6730c730e0556562cef3128631653ed31829f2650b623ac0abd4ba2e815e7b4498cf38cf1faa9a9d310ced79d0bf2abca86add2cae30984e242b45d1912797a903f3e3f461aafaee0abf5c9ef08cfd7037134d440c32ac96eb27a2e852d86856fc0c1c0b9e550511f540a36111976c1f8981824dad602677e4d85d17c1c5f64d13c373c5e856e6a635bccf1ab09c89a152cbb2c2836a8be3c7c62e89823a09b2ec3c8c3a17a91959ca4330e55187dfee6dc91ccf3628472b0839d176928a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e870b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc19dbc672f45c591d4620260144ca4c78e2a9b5b0c29f0483ee09c0cef1690f98325e65080be82714960db7414d9bb120e71d89a040970bc046d3e3bbea1285283f44c25fd17a50b971a117c3fa0049706d29179dae17d2e59e1ca03a77ab527d24b9719897af366a8aee83ab7091b28346d90278f468950f8d056030c45aaf4b3319a2a83a6dd65b246c9f7d539b67b09c3b0afe9bcc31f641e4746e726732ac352254da5cad22b2bb31a255d43899f5be174c33d783688ffa31918b2d0e604e26c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa10b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc28a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e87325e65080be82714960db7414d9bb120e71d89a040970bc046d3e3bbea12852819dbc672f45c591d4620260144ca4c78e2a9b5b0c29f0483ee09c0cef1690f980b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc28a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e870000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011e64d7a5f880404cb22a773b945eeae13c8b70aaf8ec5c4b5e65584021baa35413339dbd31dcb0a7a9f0eba7ac759fc74385f811bc41d0c2fdaa0e7736dd045a2ee6a038180908ec2df479ee5719e3b075a492c3fd80a9e68429546f8a605476227b4590f02a32cf52ee4a9a20a266436c771df82ed4c056d01bdd6d6690f7020aa851ff68746b44441c071546895fdb3ee01f0a7c51e7a1bf4ee89ccfb823b3071d0a3bdf38d7510a0406fbf430b88b14a8e7a87a4b84eeb942a643a8f54d1635a879ee2eee37c0a21b3dae8062887d3a8f4572faad99efc39be3599c12d1db079eacea32029f29e03dd87c5c9d180aff5acb150a90cb09fed898912ea661d036c61bf929a9a8675cda5e495a81be4ae6b77f0ecbe4882df100fd0fe9edc4c21efdf22d26ee79c6f694cf5e775d59788f9c685004330cda164fe249ad44338138e83df9d68064f8ffa7ef7331abefe4d3dd388e1d81ff16cd8fa02c805507090c3a4cb96642ca02f552b1b0426c6c9903c402bccec99417fbba0a1757f7f3cf3e10a1c27d1ca603bb8bf9437fc84516ec2e4da307c06c9d5c43673cf1b0fcbb115cd5c60c7a83bfa21bd3c72cb386fffb38023cab666672d885189454021b1238cac76bf1f0e87abc4ce24480eb0865f1a4f7d669b6bcec95e3d0d5ca931c2d0cc5a8d538d1934e0e99ab396e494390f97706fc15a577c836666d0b42d9592f006389aa17a3f9d64671b329480fcf341c1453110e3012d00a040257959115df0ab34cad6c641fd87f5c965d692792cb2a67972dd011fa9122cc47c1e6ae823d09c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b09c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b39ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e2e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae9682c52dbd4b3e6e09e1ee805e79005f0bc5d1ef5ded4e43494b88e3889b14b0e982b262cc5955e65935d7d23c1946687e15b1143b0d92ac231ce3dd27d0547e1a618c9d9804d1af74f9e6525b58fa140978c05cc06abfbd4d3afdd2faa1c9c215527f0fe2bdb474e59eadb6476d794884dafac34e825f9c1ef1ac1b293f21ba637125c534548436e43bf17fe0c04c54749cf0b77aa2d2eed5e1e60a2d2e8abc0510461dda8d89f9244340ca170b871686ead72c0f6aeea72a59dcc85f5bf2f6861063701d30cbb53d7978d008cd3615854317feab4f9fde2db6584c6b4ea9b95e5068b7cb70c4e968fe90a321a45ecb6c221e359af3f511fa60b4bca61ced1e0ae2e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae96839ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e2b262cc5955e65935d7d23c1946687e15b1143b0d92ac231ce3dd27d0547e1a62c52dbd4b3e6e09e1ee805e79005f0bc5d1ef5ded4e43494b88e3889b14b0e982e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae96839ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011e8194fcd5a97700e739a2f24cafd61b4491112661802452831399f4fe0c2c8304f1693e7f720fc0c3e18e66c0f74ed58aee9ea6d8ea1a90efa817954a6939683d467807ed19df7dcb1ceee2577eefd4e488a3c3c519bc76d0e4c2cb85206c0e2d6115c69853abf63db380f5e7d691c62c5a27f45b4c89b995ef9862f6785fb821940a88b1c2aabd86e2311d2f0f16003f34554a35b3cae9b830c25258d4bef21c7558cd368b780e43fbc21e63a2c0f9d6c3d00afbdacaf095ad69ad3c69e8a12ca6b7c480511320f61c38b01e256472115e384cb1544b7c6c2c1809fa6756d5305ca7610ebe8c0334c175749c19abf108e4a6592cab85d824bbab119e65411e3aa039b1d5849ce36dac25aedc8381f4062ac089c68ee62dd6428e1f0d566c3316ec15fcf1ac9caa211dd3405d08e01d84341f34d2680d29e84ee4680f0e4bfc050014b77c11e98c6a93b167065919941eb20a49513ac5583bb51cf96d9cee0b2af2f2dcb7cee2ab8e2a8bb6de75f04c1cf0f878528fc1ca448e58f9669fe8ff19973d43497a56cc8039c2fde9cefe0ca1897f3d9d53193ccd03467b4e269ac635d63a45401cd2f6dd6e0a0cc2acce0a45dcd0a215d3b9d367c53955f78c7d073e7305b385fdf1e74396fb4b21010478ea9706bfaa4809440d935417dbbc764d1b5056a52a88e47bb79c7bb73ad4e6877ad11d5462f9149f56ecb0ac0ae8d29e1858d0c3bb0ce172cbb5ba468bd5ab4a8293f62e449ac1f2153c56c6b9406ff1195b8d569bdad6892038a85deab533ace8629f62faa985bfeb64bd1fbf9848cc004ebed66970c16a21963c211e797937651cc016ab64496cde10a4ab01eef4183fb14129968f3e95de69c3dee18686c8bd29d8e55de8afaebb1c8c41fe110be90189ba300f33c712a7ef2ca5985f5e14f98fc07158f56f205653375709aac4783e7645cff0cc38ed5810d35a67a0a1eb28b6d88ab05789fb42d9f995f6553b8907b0a2f04c02e35d47abdf3bf9dcd668dfcec236bccb2ba1afa014b33055d658384f5d0fb3fd1ca2b85420c4062329974277d6c54c81cd79e98d1c39cfaa29a926732eb17c0e70d2665b5c2be150300c5f09cb11aff7da286e20677ff1ad2fb8198cd14e83f18f2d99a4a3d41eafcff3c33ccdea59551ef32b0cc96d0e52d049004ebed66970c16a21963c211e797937651cc016ab64496cde10a4ab01eef4183fb14129968f3e95de69c3dee18686c8bd29d8e55de8afaebb1c8c41fe110be90189ba300f33c712a7ef2ca5985f5e14f98fc07158f56f205653375709aac4783e7645cff0cc38ed5810d35a67a0a1eb28b6d88ab05789fb42d9f995f6553b8907b0a2f04c02e35d47abdf3bf9dcd668dfcec236bccb2ba1afa014b33055d658384f5d0fb3fd1ca2b85420c4062329974277d6c54c81cd79e98d1c39cfaa29a926732eb17c0e70d2665b5c2be150300c5f09cb11aff7da286e20677ff1ad2fb8198cd14e83f18f2d99a4a3d41eafcff3c33ccdea59551ef32b0cc96d0e52d049132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c83614840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d312621c309b8df1d6ee7cbca9bfcd74b2155283f7f40c031072555d9c4921004fa11368a5f1c57c90e2de4bea01fe3d14d78d2c113bea4189c5616e3288490080c960cf4d744869d6bb7ca44679edfd6ace4ee3f7c43864249b03768ed6a74a65a6a17dcd04956966bc87edd991719d6b3a0ba18caa2e4cd1d4bae3ffb819913f9ef299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f100220b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c3feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d14840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d3126132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c836368a5f1c57c90e2de4bea01fe3d14d78d2c113bea4189c5616e3288490080c9621c309b8df1d6ee7cbca9bfcd74b2155283f7f40c031072555d9c4921004fa1114840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d3126132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c8360000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010417ce60b81f5d93402842298d3a4a6f81c1913be3733ea19018c7baa6c7ad10141c2bceea5020ec0faf6fb722728727252d1b6d2a9b5882c5445c2b1c18291e0bdb8570501fe074ca6387e5bd21b8246e6e92a65925eff87061b365aeaf5573327a75568ca78b3dd093ffb70d52df0270e5999bac051ad7dcda13790024b4e60625955caad9277e35f9c24f94a96431973a4b777dd684425b75989b42c338bf185b760648e239a0477c370353807aa28d91386c22a8ae8b3cd5c7929a4605f22497328cda46113060b00d82ee5e798f4e6f4775f3fe35d1fa8d1af0d2e128fc16168a45cff1a50180ce167417c4d22bc8cb5ebcba31de763bba3fbddab6f9fb3ed181d6fffd854adb6bf948933971033cfb55fc8347e8ca7716b0a60027a1022217f868f67cdafb1ba2f0f07050ff04ed3a5295a04fec2718d8cf5e8ecf871d17258ee9660e8359d89793be1db90d1ebf4ff54a29542a528ed627a8f258e76a3db0c518f0257c6ab70441614045cd8629a8a17841bfa296dbd743c1838994702f8e0e0549806a0878a53203698d8b2f442fa42c9e53b49b5561ca5f6fcde31e1fdf69834016bfbae5029b0742ee40e7a336abb314d31e74df66b571d5e534af1e4fb56ce2983fd5ab6d85cbc0e3f944dd84badb100294c496a16b8f1a1e0ea5121d885aac16bce04234bf586a69e1b70d39d763e8780d56544c30c3efbc4f44116cff76456b56c9bcd034ca67b4b8ca64e547cf1807cf810117aeeb2f8c05ca0a0768d40b7432e712f46c67d1cf522273565c1c15b982099958bc415bcf18713ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f620591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f620591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd62dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a24814e4fc4db6a41252ae13b604cfd91c0e9402633f45edd20bf70694bb1ebd40077e5fb96e4c541295b118291d98c7c81fb25e82959ce50f0f6e2140dc9b6cf11a7ebcbd7de1a58204c5573477a531c0a59e21ef22ada2803ed9657cfe94bb02d11f1bece483e5c430c5546a5cb8506ed18fc518858c674907a716dfa488ae92ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec36bc066bad4f192cbdf19e4a06169f22f64d1f342a06c9e1b7b20cb69f53d57911d68caa2862c78883eaee78094d9fb69b4c1aed67ae908a1a76c75ec48901252dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd60077e5fb96e4c541295b118291d98c7c81fb25e82959ce50f0f6e2140dc9b6cf24814e4fc4db6a41252ae13b604cfd91c0e9402633f45edd20bf70694bb1ebd42dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011b3f7b2c59e296eb5771ffa8a0513670c6690ac15ce4874cb1abf8c59282e5931d178c1ffbd7b43f8baf55bb7e41601e1ba014390e719b1df7312f7020cff8242e76e28009775d9b6d5ba313168a7b8935322ab49e52559512a1d7970ba8dced0cedaf38d8e0aeeb91a810769f3d42999302e60ef8f74e093050ce4bc858c82c1fa84db60eb2fb58575c1a45e3bd90e14639cf4c5864d53629d1549af3fdc65a2229e52468b31a7d99e0083b3edbef91ef31731092ce6514102a8b5bd68a7bbe25a05d5faea5a36f679188b861652bf9610d2bc752bf34e6ae07bebe0ee5c73030e3b610b2f58efd8da09fb9278f817a483b8b974bd69150f2af938190ab93dd03d4ee64f52c84157a248d5128068a107e5f3913becc7fe3a84be0f20f85841430e993885c5e0aa66e6b0d9f2655fde2a0c478ccb1a38e63f44fe3b1adb816fa380893e29d53313ee150dcdcbd0b1f96215ecfe3d40f7216761a101ce268ddec194ae4c07ab0980760c1c97043d51df673480d3ec7f8b78b7afacdbd8f644bbc2a21d19bdeef8f408fa9033c6c8d3ede480455db80c251a531f654687e2e2b87254ba5ecaaa79a82cdfec9ce3fee8d389f61fa043264816b02d22b68c784ec463d8445151fc71c17374e3032a9232f12580e18f7adc6dfd93259f40111d572c2020190433d08b119e4710ce74050e6edf815392ae9062821d0d64f594aa456f107c8d2897952587d1eae593de311cc758fef1a9c935794268488d79503c807f90ac5867daa8910807c0c130b6de81a34953e7168725a9e1ae3fd82ddb4611a523054c4fcf1c6656efbdf088592c1e3415b6c22c84fb1ee966e65bf8bd5bf46f20fab3b030e399a910420f77a6d3e1cbec6da7633b99b0a852ac771612a40b90f31a7d8f0b8dffb2aeb5b2a9bddc970466248e2f57292bd9d5c752af42cbc62b70e58270f472004d514a4d56422368fb9bffdb60696ba3b7e3cb805f8d3439d4a38473cb39c5fe7d698c7d50b54ef315f8498a3d720f6c8c002c243fddfaded9007b8c34c63a0182967382af4ab10cea09dadf524e856305b966aecef2052127119642f820ddf8730fbe72938a8abf6dd0de0cf437f9e0751a91690415e65a3cc269bd07df22078cf0418d6c7575409231465c9b889aef1c9f016a0aba19a5c353054c4fcf1c6656efbdf088592c1e3415b6c22c84fb1ee966e65bf8bd5bf46f20fab3b030e399a910420f77a6d3e1cbec6da7633b99b0a852ac771612a40b90f31a7d8f0b8dffb2aeb5b2a9bddc970466248e2f57292bd9d5c752af42cbc62b70e58270f472004d514a4d56422368fb9bffdb60696ba3b7e3cb805f8d3439d4a38473cb39c5fe7d698c7d50b54ef315f8498a3d720f6c8c002c243fddfaded9007b8c34c63a0182967382af4ab10cea09dadf524e856305b966aecef2052127119642f820ddf8730fbe72938a8abf6dd0de0cf437f9e0751a91690415e65a3cc269bd07df22078cf0418d6c7575409231465c9b889aef1c9f016a0aba19a5c35376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec2ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b203fc1dd0a13bd5456cb5eb5891a438e996ea04bfb6be14b9d3f424143cb7d10c619fecc3536a8d4db49740272e0dbbf7b6834c562baa120ecdc9ca4f1a53923322cc2720a52f1c8b3e645a5a14ab153afd19f76d4391f99ebffdf81ecf51e775d11f76b80533490007d130518a294847325d3679c416406b0948885d8d5135f3c2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd62dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a1aebe5602a8f012b625ab7294163b3f936535be6d1710961e568ba8e309576381b3b6514a5e576d3bf2166ce9c7de55051cce16420aa35ea7603aa0f35bf89c42ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec19fecc3536a8d4db49740272e0dbbf7b6834c562baa120ecdc9ca4f1a53923323fc1dd0a13bd5456cb5eb5891a438e996ea04bfb6be14b9d3f424143cb7d10c62ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000114748bc9e9a436ddb42ff39dd58dff74c3a95999948cf964fd8320e22ebd37f11d7c245924565ea63f328ec3cdc8a75fb5b8f40620db247169b30de13a5f67681ff71ff943b01723dbae8eb4270acf8754bedba40910c8f626d8bd567cbddd05043189efc387e02e23c581ef41179054ac9c8f8a1e00d9db2995d81eb60a46491f985c473c95a8599f8e5df94365ba8cff47d8d2fac9fc7d1f342862d6df20dd3d4eb3211b5fcafb155b272cdf111971823cdd68ed4e9b9487d36184d835635324448025650fa99db7ea47d6189c9dfb73fefec3390ce553547afc07a710e32836a5e982fa498942dd8813ae1f6b09318d10c4a993d4a3f860b62753e5623fff0baf3a21e8e7fcb337f89a48566c8f41c56ea46dc1f62d8f1ed07b3ef92da01e0c35773c0156b2e570d3a309c301f975de36543a62e72af4a27774a71d3be8521cad5f64396a57cbf6c140440b585cbadf7fac77a7d9be1b504b1024d305855b2ceb440dd0d4826adde4ce8a3e1f27096b514aed4a3a83e12640f8fa272596573182652ef4d3bc310e6a87fa34cafc35f83ea3b5356312605cf7c5cdbe9f10d91deb125994c36d924f3d451077b0cfe0ef27ac2a7dc3c0afd7d0ba03871406f4153ff2b7f4820a4e7bd3c8729539637ddfbc166805dce7616509a281759b5c3a20a2a06bd6ec70636fded53cb97a656c377f3f993fd5e5cfc27ef55a9d507d3e3893a3f47c8f4bb0393b432aa6425f95c9e02a189b1b4bfdbb8717a56d51345a094d094452ab7793ebb41687ae4ac74d8b09d563e7372d02ec7e074445ef9df006d01f3ade4f2cfec3516f5ea8b8f750522715f3e10732041a048727b8b6a4db392fe0c521b0d3013cae90a1574708afd01f83082845c7177f28a9c547495b2622109c26578be0f9d0972cd94b9cd4919ac36dc36523fa148216a3c69b9138471def63d9a8741f062f68d326b4632b6e87832b38a428ff0717168d26646ec7ba2a530cbfb5bb64e112f3e03e7a1026d7c143f2d8e719f02f5816d10709d6196115acf3404a449b1eed0c1fc185efd9286102a623223308ec41165fe5f629e6a0139f3fbe8ca8f8655ec361386250c2365f7ff348679ac599ecea825c312e7ee22c60c0417357079aa13c9ec79daf3dc9c2c6a5b3a1b23381ac42ae90ced1811f06d01f3ade4f2cfec3516f5ea8b8f750522715f3e10732041a048727b8b6a4db392fe0c521b0d3013cae90a1574708afd01f83082845c7177f28a9c547495b2622109c26578be0f9d0972cd94b9cd4919ac36dc36523fa148216a3c69b9138471def63d9a8741f062f68d326b4632b6e87832b38a428ff0717168d26646ec7ba2a530cbfb5bb64e112f3e03e7a1026d7c143f2d8e719f02f5816d10709d6196115acf3404a449b1eed0c1fc185efd9286102a623223308ec41165fe5f629e6a0139f3fbe8ca8f8655ec361386250c2365f7ff348679ac599ecea825c312e7ee22c60c0417357079aa13c9ec79daf3dc9c2c6a5b3a1b23381ac42ae90ced1811f3d2ad1c5a84311902048eec5362fc54d0d1d9ccb0b08409046fae480f0b3a5db0c8e75409cfea4dee8d5ef0552162e0956ef2a6901d74c5dc30d8531f7fd750d18feb59e5cebd38751961ac5f4cefed536989e6b2d170dc6623897a3e613e6f61d48035b5dd27609a54b076f82eb0dd4a9e7cc58d8a35782c6196083313afe252b6cafcd3bc4e5b8c69471cd7bca04a4f717a6e20530fc461fa526b0175e2f412086b2eafdf76640fc5f5320e2730039d2f047b90cdd543c39fe58c2e01f06f731db538e220d9050deb695a20721092fd516be72dcbf54583fa16ac019dccee5387802b35ef46d465536c7a5125bfe9b85eeefae2986b2a5c1676fce05f4e000059566e6dec5172aa9a3d8a9347fd6550f6f1691a37f82eac53d94a6e7613a4813923ea18517c0e7c6fac4d117b9917c9f0728c9ec39dbb77de85b5c17f2c7f40c8e75409cfea4dee8d5ef0552162e0956ef2a6901d74c5dc30d8531f7fd750d3d2ad1c5a84311902048eec5362fc54d0d1d9ccb0b08409046fae480f0b3a5db1d48035b5dd27609a54b076f82eb0dd4a9e7cc58d8a35782c6196083313afe2518feb59e5cebd38751961ac5f4cefed536989e6b2d170dc6623897a3e613e6f60c8e75409cfea4dee8d5ef0552162e0956ef2a6901d74c5dc30d8531f7fd750d3d2ad1c5a84311902048eec5362fc54d0d1d9ccb0b08409046fae480f0b3a5db0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011ed202334f90f666ed0a8d4737350de57c42a5176e33ab573a104ad86be318a5071a30fa794ba702078665d0da48c1e018accf516f9736df63a2117c2aec1c2a29cb1588820fbd616563f974b0c2493f7f84b5386ff3f321002072cf03a3d6ba3630fb936564993605d834dcdc3612e2f35591ab1ad6941357061b3377fc334d3d2acaf23af01ef3f35590a84815d635abbb1f0fda56346179c0e512063255590cd81e6b35e9710078eabab682c25187713bd1d1ad2aba9a0fb742b26b79316b0c088c8bbf5e9b9d3cef640aa0a5f8510a57664a07bec449e55352fdc86bb36412af9d9b66aee4052ee899583cd80d662f8c59a398cf214bbe4d2f31a5a6d8123e341aa50eca492f9cc5be6fb34bc944d50997d185949ea7f72e8bee3209e557399580320f6738dfe790d5e9d29708f848eff029006a8726ed67e25ec177c8ea2901f969aa7b89cac166b30719ec0dc1fc0855ae70d9b977b4c67f75f05019413fb9852c38a87c712aeae60682e1ab7a4721008cfbad9dd1ceaf4c75d60377461d6bb872fe2aa95f1b6bcedebf520814ac4d2da58246bb31fca5486b809e60b73201bf158b6c8064423bfe2bed29c4023b19223a30e017de38233765c514b7162441da64fe05dd50898df5abd1b141918774580b03b3013a0b363617bffae4601e007165b8b4b16cfc1f995f42096304a5570b69043ca814795cfc54bd0585dc08053979b1b5ecd9656e37f2527be13ae4d242c328548cf10cca4a4d63c860112aac3a074cb3a9f9d9fbf8cdc30cca539ffaf89eb4ce7d4315e4051f2fe419ba09c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b09c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b39ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e2e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae9682c52dbd4b3e6e09e1ee805e79005f0bc5d1ef5ded4e43494b88e3889b14b0e982b262cc5955e65935d7d23c1946687e15b1143b0d92ac231ce3dd27d0547e1a618c9d9804d1af74f9e6525b58fa140978c05cc06abfbd4d3afdd2faa1c9c215527f0fe2bdb474e59eadb6476d794884dafac34e825f9c1ef1ac1b293f21ba637125c534548436e43bf17fe0c04c54749cf0b77aa2d2eed5e1e60a2d2e8abc0510461dda8d89f9244340ca170b871686ead72c0f6aeea72a59dcc85f5bf2f6861063701d30cbb53d7978d008cd3615854317feab4f9fde2db6584c6b4ea9b95e5068b7cb70c4e968fe90a321a45ecb6c221e359af3f511fa60b4bca61ced1e0ae2e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae96839ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e2b262cc5955e65935d7d23c1946687e15b1143b0d92ac231ce3dd27d0547e1a62c52dbd4b3e6e09e1ee805e79005f0bc5d1ef5ded4e43494b88e3889b14b0e982e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae96839ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011e8194fcd5a97700e739a2f24cafd61b4491112661802452831399f4fe0c2c8304f1693e7f720fc0c3e18e66c0f74ed58aee9ea6d8ea1a90efa817954a6939683d467807ed19df7dcb1ceee2577eefd4e488a3c3c519bc76d0e4c2cb85206c0e2d6115c69853abf63db380f5e7d691c62c5a27f45b4c89b995ef9862f6785fb821940a88b1c2aabd86e2311d2f0f16003f34554a35b3cae9b830c25258d4bef21c7558cd368b780e43fbc21e63a2c0f9d6c3d00afbdacaf095ad69ad3c69e8a12ca6b7c480511320f61c38b01e256472115e384cb1544b7c6c2c1809fa6756d5305ca7610ebe8c0334c175749c19abf108e4a6592cab85d824bbab119e65411e3aa039b1d5849ce36dac25aedc8381f4062ac089c68ee62dd6428e1f0d566c3316ec15fcf1ac9caa211dd3405d08e01d84341f34d2680d29e84ee4680f0e4bfc050014b77c11e98c6a93b167065919941eb20a49513ac5583bb51cf96d9cee0b2af2f2dcb7cee2ab8e2a8bb6de75f04c1cf0f878528fc1ca448e58f9669fe8ff19973d43497a56cc8039c2fde9cefe0ca1897f3d9d53193ccd03467b4e269ac635d63a45401cd2f6dd6e0a0cc2acce0a45dcd0a215d3b9d367c53955f78c7d073e7305b385fdf1e74396fb4b21010478ea9706bfaa4809440d935417dbbc764d1b5056a52a88e47bb79c7bb73ad4e6877ad11d5462f9149f56ecb0ac0ae8d29e1858d0c3bb0ce172cbb5ba468bd5ab4a8293f62e449ac1f2153c56c6b9406ff1195b8d569bdad6892038a85deab533ace8629f62faa985bfeb64bd1fbf9848cc05583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee83aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a06130191191ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a882546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d579059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a63a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b1c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e23ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c305583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee83aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a06130191191ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a882546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d579059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a63a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b1c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e23ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c30b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c3feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d3e4254bae5217d87eae55fff4904382ad728515da29225c1b52c2a7e458f7990365c6077ab0490bcaa9f5627c0f5cde99a59a31864ed553d57b8162b46e494bb1e6a494cbf36abaf8b8a6a8de1165276533eb64441a7a8777834e338713e31483cc40f2563957cd02b5394bc253c4d0448f634cd65e2e2c3d47c95b581077a6217f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a66373017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f10022299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c3feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d0b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c365c6077ab0490bcaa9f5627c0f5cde99a59a31864ed553d57b8162b46e494bb3e4254bae5217d87eae55fff4904382ad728515da29225c1b52c2a7e458f79903feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d0b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011de9b43833ee51c21ff92c81d6fd2f50c3802ad659cbc629141a343698505f8c0ca081f647c3a9cb55af2191e325034d8e2940d9b79efc1c18ee9f0c4138fea5166f269f8e472b263338c159af33d7948f783bafbea141b1f184d144cada56c20a8f8e62d2f1306bbf2d43e17c0517dcfd32d7a38db1caf43a9cbd1e94206cc1298d8696bb2005af943a452fd8c9a1980f1cb9ffa2b50b8ff004c5318e84da8b1d78b132bf84510b91d7d719fefa47b1b6050174a845e4a21a1948455ed4d67039fda498248c0ae6e88e00c5bb72499f01eed91fcf0a8f20b0102dddec385e0e0fef6bffe733d3d4802d6157bcb75fb459a3fddd81f14279f85d0608e6259ac12c6bbab900f68a00c926bd02b763043eb93a1f8e4f8941ed81f2e4a26061919e20bad6e5ed7e32b427a948695375f7850ea214c1e2821b459f24701d11107c0623e5118034e43465b244ec6d1c1d68cb8b5e0b900de6a8fdd61cc01673e404d53f91b24e70802320f126e25fdd38ddf95f74a462ed0a55f6fdbdf0495e4250822d1d361d159fe3d131a99fabe76fabef558ab13653ba938fef93e17ff11f6b062250416b73f745f22bfe2d5ec50c202791db9ea95f6c3f8045349e515493acc7022cffda2481eb068d3e4d4058a2500b01f7053d1590df008987dc090ed3023b31183373aed342870969053de46eb2420ceca27eb0b66695b61c4c1f18aa75221f39419cfcf4fde686d12bc819adc83e781ba39e40ae430178a878f7a089c00f1283ca168f30a596b046a343283cb8aba63becd34c87237579e4b78935596d6208ccf4d3a5e93ecf17c6dce5a8ee2a604a4de7693506ce6caa2463287a5d817937330b2c5a16c130e839231a5711d59fd7f8b192d4462aaeef08cdc485a27e882c00c8223d8e3a0b76e2507c4ca6d3e17385850e0922081f52b5efca63d3875d13ff37ddc271c5f4891daf83b3592c1eaec113ee002af0fc467741229c2c78a41c03e8ab33c72239526b926d7f422366dac7ce5211c33d49d2061c2cf321a4ce23fc1754cc38ddc6ad946d9280bddc99477ecaa9f789bbd1c72714c00cde5b330c138b5802e3ab1e9c19dc237c4ab1020159d5a246364039e7c42b06bfa8380433ec74a7fd1c54e163e623dc83b54efe20ecc359c316b8e1b16905e64057c7fd08ccf4d3a5e93ecf17c6dce5a8ee2a604a4de7693506ce6caa2463287a5d817937330b2c5a16c130e839231a5711d59fd7f8b192d4462aaeef08cdc485a27e882c00c8223d8e3a0b76e2507c4ca6d3e17385850e0922081f52b5efca63d3875d13ff37ddc271c5f4891daf83b3592c1eaec113ee002af0fc467741229c2c78a41c03e8ab33c72239526b926d7f422366dac7ce5211c33d49d2061c2cf321a4ce23fc1754cc38ddc6ad946d9280bddc99477ecaa9f789bbd1c72714c00cde5b330c138b5802e3ab1e9c19dc237c4ab1020159d5a246364039e7c42b06bfa8380433ec74a7fd1c54e163e623dc83b54efe20ecc359c316b8e1b16905e64057c7fd2c9c5447ae1258463f3aab447a9f9906b7afbc722f2eeaa83dc7e2d2b05d15550da9914a1efea3e5e652d1bebf32fb2c4a8339fdf7e114fbb9026c3948d1e57b2f88cd896630976eca8ac22f2adf184cc2b4645146ab150c6247ed9a6d5f932316314ce4ccbe6c650fe7c0cd9b4e53807fa5d736a4dedd86d9482533997172103e2fec4c22bc0606f517e84bdbc4fc4683af0d0cc8e9a0d899c86c7a92f2e02201ca60058835e4b33bb84051b36cb487a4c816ecb306e5b4b0d20bc0aaea31ba18016098aa02665e1acfd881bf89573a1e3d6325e54235c9d8ace9a6067e91ef2dbe6d83ddfab2bb8ed281dd777263c51dec4d6493a42f57b175e1d9c27561691b32ecdb06154ad4de0590c2867c0b6df9c5abeae1a5be2bd2c68bbf2f7682962ac0ac6f9b58736d8b9902a0567227960edc30fc3065398d32cc71a5620401190da9914a1efea3e5e652d1bebf32fb2c4a8339fdf7e114fbb9026c3948d1e57b2c9c5447ae1258463f3aab447a9f9906b7afbc722f2eeaa83dc7e2d2b05d155516314ce4ccbe6c650fe7c0cd9b4e53807fa5d736a4dedd86d9482533997172102f88cd896630976eca8ac22f2adf184cc2b4645146ab150c6247ed9a6d5f93230da9914a1efea3e5e652d1bebf32fb2c4a8339fdf7e114fbb9026c3948d1e57b2c9c5447ae1258463f3aab447a9f9906b7afbc722f2eeaa83dc7e2d2b05d15550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011430f4f801a8271eb3d73408f7da99fcefa922515e93a7b46eec28b8df0c6a8f14dcf979cbf287a5de45d2b8e5ae0226f308f7a4da8aed189e8e2c79f7c37a05047dbe3bbcd6b2f21f4d6858282144a53ea60f0c85d4d55137824e314e9a270b0d233107c4a669441e6c174d705eb6c57ca8daecadf48d72a3a356cf946f902d270bc520cf996d53f9c3b60f67ab76ad6f23376f0e971314c45c66ddcee2c3f703d73eec17d2cb25f31a9c58c7a30308877062344d73b617a9bca49a636f0e6a3c1a60aaa0583eadd829fc0c66189f6e7f579c282b5c4b52ca1064ec00b83ef1345b1db4a644a273d41fec5d3bda9a19a694982be329673355e56f577c2cb6cb045b087472d374ec5a29ca57394a9a6c3f49031ae34198eeeaa99de73989a99931963d1023a63ec5126e0105d659627ef77fb4ff80c450ef6577983a641fa57d136210c5afdc091226029252f09bbcb510e3f8206904003fab3c50a2464e304e2b563fc2fea288ccb1072e9d514e038b3742e1f6a2495713a7611fc7e941f1842337e99dc08c781ae730af600fdc2f42821f6149f4c2ffa2da45a2b2c4b5325e2c358deac90ab1a876771daa9c9f9cd46546ee95be63d36d5a82dd1e80fde56f38caad08441e7ba811a0c1e900aa42b23325d1b7ac30be6b952c013565d8938c3bcc808adcadeb7d1a2fe347c991bdd472816784d42fbf0c4dc50083ac31dd5b0c6dc22b433589dad88e97a81294de52a0963ab2171bd51d106a89cf43f2417a13d270024c8df8ddaf303cedaf5905f902fa0d0b2544a00c725e4109a436276e35eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5600a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa10da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c8525044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b61584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff772a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a35eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5600a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa10da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c8525044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b61584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff772a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a3ba6fdac0b77d30417b290295f5091155d781ed0d0a66a28e5a091ccf9031fab1883d6e1d3620a99d127d8cf8f9f75ddfae5984b4c8b4ceb80eeda5649fd192224ff23c9ef564404035232cfac86bff1f167a1fec94aa581f2811e5a255aa8c206d607a831cfde5e13d364376489391afac7d8dd2c1d95a0d949d75c97a51e741dc393bba5987af7a09770b5534817ad1166f535085b6aba31e508f8cc4d8ed43e3e384bf13dfde462d8f3db4225ec5fa16abba8710b18a36e808962f7ac6f68291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa126c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b28a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e870b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc1883d6e1d3620a99d127d8cf8f9f75ddfae5984b4c8b4ceb80eeda5649fd19223ba6fdac0b77d30417b290295f5091155d781ed0d0a66a28e5a091ccf9031fab06d607a831cfde5e13d364376489391afac7d8dd2c1d95a0d949d75c97a51e7424ff23c9ef564404035232cfac86bff1f167a1fec94aa581f2811e5a255aa8c21883d6e1d3620a99d127d8cf8f9f75ddfae5984b4c8b4ceb80eeda5649fd19223ba6fdac0b77d30417b290295f5091155d781ed0d0a66a28e5a091ccf9031fab0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013e0291ccacd9446592a86d83ad35a2e584dd80b93c7c13047545729b90000ac91fcfd3b8ce8ac4fb3a1c7982e94afdd34ff1d8b7d3954cb49a63baffd5a1313715422e46242c9621968b743a47e6491cf92718ca2afaf622f313493bfb9bf733202ade52e2e33316acd09801357525c995676e24fe74b19301b80c7f668582121d27b9c80cb76ab8ad3f758b265e529a94afb3f7f4ad3d954cc3ff0ec70fd5b7261c75df981710ba8623a2aa6de23de24cffb50b98ebf450d8586d2e423834d42c737958ff6172e4ee458359e80e8af09a93fe2c8270c137d2a2ec6e6059bf4e27ee37a8613e9c277b0a89c65b539265a8889c46918f6b1cbcf0a6a981256cbe1c49d015215fa8951c0073a984f7169b9ec28c2f53259684cade813083b582cf28d8c929ed5151a128b9e20a01f3842ce71d28d9e976feb1eab61f3435e39b0204e4e0d9324d66322a34b1c104ca66eb943deffea994720bc1adfa26ccc9e49f3ba6dc38207406cdeb6c552906aa3b4f9b1b932e677684422993b3ceb91889782a150e43f7d34b24aecbe4fb1dafb928d94e8cdc79891331c01d23df74e0e74c2558694491c3de9eaedbe80f8ecc12ee0e17c303399dbfde74ab5bf1d0d230812e46bacd58414ad8b2a3e30de22b19f21eea42561fe35319defdd02ab95b03f6316f53ea46798045a68ae26c8114e454dba54eff64ca5150927a6dc171864f701feca56e6a4535a4738165df67126e35bab5c0267454e90241a3eae046339f042db534d10342d77a68a80227dea0e1e3815a4c8e4b041be5a7b21be964f3296b09a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22309a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a223022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c167cfef734a5fd046d46933e9ef83d8ee4eb029f5a344e2d13fa045055f26b2e2295afaabac21f4e0a11ffb4e8de9e5bbb1afbdd358923103fc7ddd9e92eb6ee0b45f4fb3203a579f75898884ba773de8b74c16da0c98fb3b4a53a4a4f9c399a34819967d4332e1af1d8e800d34bbb8e694c88b8f1d5feb0267be1d368a9293e174fbaaf88be79d412b9672c9d372a7d2fa63a6f94bf935c8b22a38f99927d5421fb658f6072cee97b6dab3dcbac82009de512e271ab489886ab5369ed4941f1093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a2295afaabac21f4e0a11ffb4e8de9e5bbb1afbdd358923103fc7ddd9e92eb6ee167cfef734a5fd046d46933e9ef83d8ee4eb029f5a344e2d13fa045055f26b2e04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011768fc0352b6294a4028a8e8933a6818697a8e06b90608a8a9b97070b47e316c2eca2cee5c74c37dc5b2da2fdf4bcf613cf7eb1e53ac41ae072a5e3c720998003f6bdfc13942191f3ce7e6b989957c75c1dcd57a976945ce83059a39000965e5157697ba7f39e3dbff32124e746e41e0c23d8815e96c68fdcba5d8043abae52f18c60c94f266e95422b4706c6a2a19d26f4861557e3f98dce538905a7bf07d241765a35c4e1e696934bed075d98a901392b56aaa0d8d68c5ffc7262e4843009607fa65e8a39eab8d053af531f12f38263a44451f163897f9baf9dfb382a9dc3403d2aab9a5709245ab684689b1c51ea0b27da49e3c9eb487dc7b7a3059e1b9b435121a2f265584dfb25c583274650a297ed121461d5d233420ff9c6a7223fb251bff12826a8b9f1da550d7c380894ef69d8f027f19e1a2dd1016bc51f7be3f9f207d58af6067abb1563e52a04842a326de160139eb61c328f00641833d13666c088535a94101b098a570dcf169ccc23fdadcc528451f2b4c1673eb4207c671662bab8b85ea0398583c52a433039575f609c2d199225296a36d4258a12c96a24123c1ec029f93916b215528d7a8e65620dda37e4690d43c6cc7862730191c758c3599890be1cebec06bd47ed8181ea45d739ce5b53c6df1e7cff3e4edcb15790820a09b0c6eca9cb55beb302c017661522c4a30a15457e54a4019f2034c5a7bc81536057523636f287193253eeb2e8ba8e329cc0a2950fed13f25f33ca144312f249261294175ba9709894ea4f33944b6538a025f7bc0bc20ecc601fd27aaad12115d66ca497f22362f624a448983cf73313d94e49457c6f8cbfac6bb70a4b1292ea29935b680ddc9d09db5bb767c308cf109041774f53222cd326a318f5b4ed816d301f36f7bab0eeceb7356af930d3fd3ed4f7adc69e9c062b8b0bc333775cc292cfe0c908454f113148ca9506cf2c04e5949812ce30f5b36748030ccc88a35321f09c12d6a574aa09940b16ddf423f015bf46a44c497a6546e42c000154cfb0de0f63ed295a8b55f66bf4e9220bdc120eaa491c488617544beee2cffeab3063a9b30c5e313b47522fe4377255c4b3a9ff7fb1f3bf00aecda9fbaf9006a80e40564cf3a1cec4b8add01bc88daa3b4c5824e9ddccd5cee2ebe8d75f3ff957f1d115d66ca497f22362f624a448983cf73313d94e49457c6f8cbfac6bb70a4b1292ea29935b680ddc9d09db5bb767c308cf109041774f53222cd326a318f5b4ed816d301f36f7bab0eeceb7356af930d3fd3ed4f7adc69e9c062b8b0bc333775cc292cfe0c908454f113148ca9506cf2c04e5949812ce30f5b36748030ccc88a35321f09c12d6a574aa09940b16ddf423f015bf46a44c497a6546e42c000154cfb0de0f63ed295a8b55f66bf4e9220bdc120eaa491c488617544beee2cffeab3063a9b30c5e313b47522fe4377255c4b3a9ff7fb1f3bf00aecda9fbaf9006a80e40564cf3a1cec4b8add01bc88daa3b4c5824e9ddccd5cee2ebe8d75f3ff957f1d1de7898ca0b76c5ccf8ea31d9866d81454a22428dfdbb89c3b361d9f92cb085725edd8763b0e9f24ec8bee196162f82280e8709816f727bdb7fdac9abcdb63e0361129f14f4b1aefd01185a3fe0c49f013dd96fc53d5e0c426559301a04dc26c0619740bd4eed98e73d3e9250829e5d95b25063ac7f1311918d1049e100bd16017fc8f74b8d0ce7f16db6861c1b227711d06bf7f513dc311e352313df4a2358b059ee4ca5843ca9dd6348d8a2d2f4192dade01a821d47e6e944b73d7a99b6e762e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd630724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f61b9d5a2a50c6d8a61acdf312b101a31352f3356636139aeb9593bce4d5ce2092004c37cf170d22355a2c252313a00e318136f39a3ea0096dd1ef1c2bb8c26fb525edd8763b0e9f24ec8bee196162f82280e8709816f727bdb7fdac9abcdb63e01de7898ca0b76c5ccf8ea31d9866d81454a22428dfdbb89c3b361d9f92cb08570619740bd4eed98e73d3e9250829e5d95b25063ac7f1311918d1049e100bd160361129f14f4b1aefd01185a3fe0c49f013dd96fc53d5e0c426559301a04dc26c25edd8763b0e9f24ec8bee196162f82280e8709816f727bdb7fdac9abcdb63e01de7898ca0b76c5ccf8ea31d9866d81454a22428dfdbb89c3b361d9f92cb08570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012ff579f0bb88cfaf75b0f802d2077a76780fcb1499e5f3af9af524bc942b7436328dcb4e8a26de0e6a391fb41c8dc557bddea5659535af451a2f99aadd88dfad0be6ced5d5672a8919440af5a6e94bed533ee7154589f7e2681a495d8850a2d71873b10c54a22568a9ac8d715f662e638f91cbbb52dd8bace82f052f9a26919406274fdc79e8ca62631790d0d79ef67699c81f38b597ce5c56def747fd40a1782d16613becc47df0ad0e7e6275cf77adb35e8e078f4acc774b764cbcfd540f5827a1e6442a4558166dd01b02b9c31272a13313ef48f6adf04a17d57449fd5df504dec39cacc5b95c2b7a3fa2842f87d4185abad520b3493c9736571f4f145c0b12c9454f0f57ece7b62dd7d28bf9beb7fd66e38f073b7a1b8535cdda683c1e4d30874a7b797469d90a42c0f55f2e639d797f56ffd5c8acf8c4f235f9fb4ed2e224669a476f804f35f7aed0ef0072fc512eb40ba0b7b3e7b209216ca070e9adab06845db3766c41f13f6a7c606e642a2e4b8685649543da3434a8d998883ac3f5347f540fd5af4d3a500fdd5a83f88c0f9ac93b47b07e95a02571e858ec24ea021aee2378b3e7dc890d97efb0288340074c9d149802a83d700f569778598e2dcb1ef6c85ffa37bb9088068156cfa4fb6ee2c9df6437dda4fb235d27142e8e804d3b61ad13c4c6dd944c955d818b6a5dcb501752a537a356f7d0792f4606f80f7d33d73fe3935457f45159a611c6e9f8ae2b74149f6c91ccd715fb2c2d8289793125d4f826119d083c98be6b2fc177e0a358ee5e85fa42425622f027d0e1caddc21961932c86c70d27431b51514f0a4e8ee6d185fb5db2d86e2d066bab217aefa8269e6cd37938f2d8bce4aeaeb0f5b1713b751300ab9a20ad6c26c541de8510593ee7dfdea1e341c44f8896968b3388ca5fd104eccb31410b47f2e96aa766ae47011820215e1cbe3bb077696974cc7735c275940f3e1bb810513a4782589951ba3a875f59297048d58daaf0f0b801abf355fab4afd2c260ca0309cb614501675f0578a0a6d68fb72a72550f0f47fe540ccc4be44c368a98519623658bbafe98a224a4dcbdcf316c2bc456b4b398085bc024cb237ef897ff83aa7c3532590704d71b5b234230ce93d43ba94b4c67f7a43ffd7b757d10b4f997eeb0fbbaa6f8fb2a1961932c86c70d27431b51514f0a4e8ee6d185fb5db2d86e2d066bab217aefa8269e6cd37938f2d8bce4aeaeb0f5b1713b751300ab9a20ad6c26c541de8510593ee7dfdea1e341c44f8896968b3388ca5fd104eccb31410b47f2e96aa766ae47011820215e1cbe3bb077696974cc7735c275940f3e1bb810513a4782589951ba3a875f59297048d58daaf0f0b801abf355fab4afd2c260ca0309cb614501675f0578a0a6d68fb72a72550f0f47fe540ccc4be44c368a98519623658bbafe98a224a4dcbdcf316c2bc456b4b398085bc024cb237ef897ff83aa7c3532590704d71b5b234230ce93d43ba94b4c67f7a43ffd7b757d10b4f997eeb0fbbaa6f8fb2a1ec72c0c20573b5141e5d40e17d7293f3bb25cd5f92b26d68aa789660ac49eba06b8d7221f316ccd211c30eca2885f3786348b037a8ee4b5e05159fa94c46c3c3d59014f69be98d543ecc610bbc474da4a8b39c44545a65c5ee2e50b2743e32d1d26fb8256b8bf0c591134f489dc02af381b105a599a404e687e996e393311e0287bd883b55b35450ec49422bdfee8fdcdd3e4ecc788cc255aa02c2508ff39cf1f59c4fdd1c19803734be79a78a02561b7dfef291e91b238d3f0bd788c2122ba34ab22fea15d89c74a4ca0d1cbdd19b18c8dc4699b5e6d44a70b9e363033d8121dff3c5197fd00d1d0a0de7643244f7892ab4a9b26b3f4238af227929b22c0733ebbdef2711d9803441a84e31a9d5ceddb174d378971a5aeaf3f8ea84a27c794154726d1e457b749e5a32d9cb269c17087add08c554ac6163f1ba6dfbda977f406b8d7221f316ccd211c30eca2885f3786348b037a8ee4b5e05159fa94c46c3c1ec72c0c20573b5141e5d40e17d7293f3bb25cd5f92b26d68aa789660ac49eba1d26fb8256b8bf0c591134f489dc02af381b105a599a404e687e996e393311e03d59014f69be98d543ecc610bbc474da4a8b39c44545a65c5ee2e50b2743e32d06b8d7221f316ccd211c30eca2885f3786348b037a8ee4b5e05159fa94c46c3c1ec72c0c20573b5141e5d40e17d7293f3bb25cd5f92b26d68aa789660ac49eba00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000105b2b8cac3cb8cfbc14ff449881d981bb4b3fcfcbaea1fa63c75a212dd0b2388273cc86d024a00b9e3071db011fdfc788f98aea3da2022a9f6e9f41aca533aea08be0b715878d1726ea9013f66c498be9ab21316806ec537a6e58d451e1d64071952c9effbfd3114b461f7a06631b5c2a4dfe22355024ab76b489917b661f5093290bafbe8769e576919bafbf26e4c5a2216c342c615d04fecf3cfeeab0e90df2980953d958ab8caa309971169538b7826e921ed5e842cd9e39bae8a749f81e2294e0417c4edfb199149746a0485bb8d74ca9ab58cfcdee910bebab5523946181f20a35155c57048ad58fc698f6426343bcceed063be47ffe3384e221fa350bc3e36731d652282dfa0ceba9f7f935a1da1e93d6b7c8394ac65dc93d4225ae4103c0ee34d4e9ab49c206d22d3410d91eb3a2ee92c7b44bb62947a942f50839436373cef41aa80a5158c81d4e71e0c722fc7c88e2b3d7efc046ea9fb99fff04ed62e1090a8bc13dc1a1acd3fd53c23399284d384eb8021383fd29e8d08b620de313021b59b996ef2bfa601d9cf05d1bf710296a6bf495257b7b3a3f8d26f9086671f4bc1ecf0283703b7a5f33ba6aa0ca5e4cfa92069d47b58812486fed6229166382ed65cfddcfae8c856654c969163fe2db96d13a9c3ef71f77333a228f279540e4f0b016669607bb3b212e029f61a1d15f241ce45e712c66d47a95b30e65fed0e41aa4f5dae64783560862a74598e92a386434e8ba66d2b740f1fbf2a56ea432db6bdc8462d89954464c199addebdaecfbf583129840f03ab6fb95302ba6b9c10af26a590440962b4cea4ae015489f620f21bbd6dcaa8855c78e49560062fcd2f50d95a6fbbf69d4b315b51feab760a01547d3e9b8250963cb44c579ff9d034136bc13bd1542eed8809376606a6b1ce8273f1b71ba8517f352f45fde01eef002c943ec42eabd11277f6c899f9594e319fd2a744eda4a79c63fdeaef1fe11101211ac62b16a4eaa3a82e14fe2141790869fd1f9780fc9e6070bf2d08609aaaff1ee539d4e95b155c57d1eb01debe86f7b849796488505abb286e03e49f6555022585ded77138953248e668f6a6475d29cd646bfd725525ab01617f4fe30556f91a7a21288ec76acdb719970959b8a2d654e22cfe96f7d37097cbb19d1cfaa90810af26a590440962b4cea4ae015489f620f21bbd6dcaa8855c78e49560062fcd2f50d95a6fbbf69d4b315b51feab760a01547d3e9b8250963cb44c579ff9d034136bc13bd1542eed8809376606a6b1ce8273f1b71ba8517f352f45fde01eef002c943ec42eabd11277f6c899f9594e319fd2a744eda4a79c63fdeaef1fe11101211ac62b16a4eaa3a82e14fe2141790869fd1f9780fc9e6070bf2d08609aaaff1ee539d4e95b155c57d1eb01debe86f7b849796488505abb286e03e49f6555022585ded77138953248e668f6a6475d29cd646bfd725525ab01617f4fe30556f91a7a21288ec76acdb719970959b8a2d654e22cfe96f7d37097cbb19d1cfaa9081dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb0b0b59e3d76049a3cbcc543bafb2590ac18882a0454dfa958b5471d33d0dec0c0c2b75fbbe433ef24de4054a1dd9f66a53f2af49bd4023946d9757847ed174641c2e4ebab1756f0f23f502c605b001645fb9918dbd52634ba85793651b5f2f2c0a334d4c31960a61c9844aa2a55418924f410c8ce6bb75206c10b6ccadee8d3b2ffd27410ccdcfe329ef02841829f506167fb6b8093ab9645e6cf50c6372453900d80c97a5ca3f42024809990a5e4078724776135e9285751f43bb068f1f5ed12e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b33ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba0af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb1dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970c2b75fbbe433ef24de4054a1dd9f66a53f2af49bd4023946d9757847ed174640b0b59e3d76049a3cbcc543bafb2590ac18882a0454dfa958b5471d33d0dec0c0af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb1dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee19700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000103faa7143dfc81ea6c0725fbd6cc165760bcb5f95d58ab194f259f4c8ea0c6e12e7497a9a6b8da38b53da1e6b0e170f840f28fee3a3ba2fdb023793353b3b3592d98812b6b5c7d202fcaccec7b8efffe4fd6d2260ca4dacb8c14a992ec4e99a93523fff8f12408db029c43d72f02f48be49667ea942ca4d71348f4ff25ac5a5e3e244f7265f4f5a20b85d3ea3057a1396e973d7b526b008c89ac664a0deeb82914c67838700d39f2cbbce3e75aae415a2b04b8afcf0e882710684bc05f6f2579163d38107ac89366ef9376f7db904855d91ed7fe63834c5c36ab59ec99fd3d6225e315305c203defd506d80bd61c5734ef12318482a8f0d4276526d7efa118e51f2584d8f3888269774fbc5950bb158a246ecfb87855e87f9ce732532ece40283f63329cbdd5ec86fee116a15725aca1c85a34208a2539e419fd46198ad176b63dbe495a5f1befdf04a1b1c3d1d5a489b850a41981e61ba7ab4d8bdd4fb63aef14b7cee9a3976e0e32eb602445670d1287201a70f87e981671519120d5e9b789373858ca46f01f4394e5158a070d9c12ef2f9a77e73a8f611e7f2f318b149a1d18351ebe42a70a7fc8c2b780a56e3003f836b567cbec43af1649509fba9e7db0064cbf4b3016d0c25c7e2e6615c05c3eb192491b7357eb3474e117d946f69ef528964428b973dba2257c76cc921713e8e23d152b63b549bf21ed56300a3d8d2b376092171e922d60bc89ced9c627be04a1b82ee83f17a7a2b86e0ec9bd56ae161ea73aaa503384a817580357370eab6b7d3b6efbdb01a5b28d467541776a1856307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab21307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab211d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f31191ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a33e487bd6867df07d9ec1655272d545d836af65b6e200b39c8a448d47b53f7bd123701802f019376baeb767fee133c1f3dc99bb5c30df62439261b00de2d7c131fadffc2b1154b6729eb1fbe7e0fde2dae0bd0b60207b2e40ecc3f5492bd3c20163a206aa9162cf827adc731a5cdb7db8fbc61aa5764c85a123a61e921fdf31e328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff41daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f2e26f67ab7b96cbd66298cf342505f2dedb559fa4be2273dd01899d6c3abb17105f957432b4d66c307dd8d7a9f77a65b49b53376dadd9b2290ea826fd6568a541ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a1d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f3119123701802f019376baeb767fee133c1f3dc99bb5c30df62439261b00de2d7c1333e487bd6867df07d9ec1655272d545d836af65b6e200b39c8a448d47b53f7bd1ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a1d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f3119000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001129ad4057bde586d4b233c58ecfd98bc4cf60f80e032b1d8e3f160aadb80afa7322ba21b19df597346bab1b232449876bb877544fbd6f57eb66e0be2a1ddd6fc324e8bb5dde8126175b7fe32eb5f3a5736e311ed109f1292acb290d2b4c7451a3add579a45b98bcfee30a2b51a9b31719f22c19ecf86a7a93f59662fafe0884927843023c7959ddb9d9fa62fb78d13c0e4ccc18033bca5356f2a45574f618728068a412297b3e04c0fd5db5fc35b349eb80b47829f69150d4eb11ffe16e2cca523a54087288325c870fd71523d0540e5acc6ec843ec35cafb82abe9a08d418520ccfa34ba028202d654fa57d4b54f358b2d94da43329bdcdc2894affb0b715fb373cc4bf79036e40b10c3d05b43b8c0fafea7942426b5f56ffdf42d48447883b3019a6d3141507ba8209e62cd76a753cb43da13bbd815e5e0ff73d4677e3ad7329a6c580ebfc4ba615d758b53835690f42b7e31331e9e546365454722b038c100abd62f2a760a7af316240ac9599dd603fa6aa364199c26e0e61cb8590bcd5392b4d94fdb632873510ae475b6cb4b5cec5c33b52bd8d2cb475fb16712a05964f241fe28ad364a28e4cf985af3fc7164821a3148cf599a65bbecd69601bad817e3ee49991f5ca60bbc106de59c9b47af3e5699e14b851e33d272cf0b3d30aeb820d0b1cb26a947654ca74c13b63e1cbad3d9bc939d41ec1dd5ba448b51f0569b03269f17c53abec81b015ec02c5de398817db92db89b356e80ffaa379d672d24303eed6599963ce4ab7955bdc3c3a091cafacb2bb84595bc9d4e4ab7366a2467424fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a6021551b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a707121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a1ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec20f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f0463930c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c824fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a6021551b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a707121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a1ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec20f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f0463930c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c809e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f10022299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c37ecb8b7278ef89d6864ef9dbf9021f38c404e2dd31c721606d7a5bc8011efd5149786017ebe61cd3033d4fb7f00cfc465a497b1464343a1a46eb7f2ed9b5de00168feb3ec5487731f5a78c05dbf2354012ffa5efe36b383af6c5d5787f595aa2368a8d9f0df500d29c787f59bee3d31a7284c876cd8b378363c8b9485c4beaf132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c83614840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d3126017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e17f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a66373299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f10022149786017ebe61cd3033d4fb7f00cfc465a497b1464343a1a46eb7f2ed9b5de037ecb8b7278ef89d6864ef9dbf9021f38c404e2dd31c721606d7a5bc8011efd5299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f1002200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000127d9a11a1346b0c8207d8123e198121c7449ea9681d843e6f151d0dc93d2ff900f9a88c30f1b87df9ac76e59de024fe9ab35728181948abf2a96dd729623d06604fb6f4b9d1c6139dbaa8cb0683ae711f1613224da9c7c589efbb85ed84bdcdb045708edd29a5a59c410ae9d02ade76927c1218e07689725221d9a8edcde6e6c22b9055b4171a7c84688b08b47e7a480cb1cb24ba676788b4f0aa5d5f477a1690fd85d5b0459d2d8364dc03d9164d30fa26ceae5868285d65f012a8b7de34df92a329c0dd0152b92baf13e28276b29d1db4501433e788ddec920e166ec9ffee431787fd0aef86e99bc082cf8082a63f676d63f7ce65c473eea3aeac4a753ad332c66a37920ccb3e03e553d61f2dae9e9ae0d84fcf57f2ac35763bb340a064010170e682cadc511fd3763d6eacbba3e92451589ce14b2f4c824d13fe538f54e031e498a3bf3b4a5c65aca015a4f18ac9dd3bf8a126c13c2827acc82c1214d240d1c60709e89b8ec0d280a52ef346063d1226225d1daf9e9af56513f094d40286f387aa014d50f83870ac2d98843a1e74fae290a110fede75636b7abd7b78c1b2d16f2d773b487a63c52e4f38268d9e4c7393d45cea338ebb9fe10d3f98e26fca02d42a4b61cb41c0382fcfee97dffb49fc4565854b50a17deb5a9f9151f40ab1626f27d0ec5157f7ef8c87d8c2796d3cdf84cd7f45ff9a8b26164f57f8390c3f62a08f7ae479289bb3daddc32ba543552ea3720348a33f3af3c3764b32ba296a1202b428771f5a59cfa079644dffeb7d9b92dc35b61056335420d1b6fd3ca53072536d7ae9327c01d3159ed3ae3849187e4fded6c3b9bbd494a7b15ae78e51dfe1ac928516cd83fe2cea612c51c7b6e783d48ab8fcdb13bd24eb21b3e871ae2033a123668dfc6c091f6c1a2267196d7a7346871251770c037420d0a8e5c7995f405edc99720393f6e093e5dd98e692858edde27d6f1dc38e45720265ea3866a0d225b100c5ee1c2d9d1c82ac037f236437cefd1c94fffdca5e58c7113ce5fedc01da4eff3a11e3d262e37d53fc80dc9bca556c732b94d1c75b3a0bfd931a012412bc7503dda68ce4118e8d5c117bb0f512c21e6f67d655d064963d38907dfa4be1438afc2259731bee7172a3ee844f0aef624b2058be79c154fc95d63f8205b432536d7ae9327c01d3159ed3ae3849187e4fded6c3b9bbd494a7b15ae78e51dfe1ac928516cd83fe2cea612c51c7b6e783d48ab8fcdb13bd24eb21b3e871ae2033a123668dfc6c091f6c1a2267196d7a7346871251770c037420d0a8e5c7995f405edc99720393f6e093e5dd98e692858edde27d6f1dc38e45720265ea3866a0d225b100c5ee1c2d9d1c82ac037f236437cefd1c94fffdca5e58c7113ce5fedc01da4eff3a11e3d262e37d53fc80dc9bca556c732b94d1c75b3a0bfd931a012412bc7503dda68ce4118e8d5c117bb0f512c21e6f67d655d064963d38907dfa4be1438afc2259731bee7172a3ee844f0aef624b2058be79c154fc95d63f8205b43235b5f0d6a17565734c6c297adb20db96542cc678885f50ad8c48986405d7d6b047780b393c9324d25d3cf2c8399bf9cb8b67dbfc80f7d2ddb11c11af25663f7075b39653009afe58d1a961603a54b8d15568374b04917877bfd58681d935c2010d1e6d9d215c776184ad825cb0ee71ceef6cb60086e6f5b69598de3afb8c2800be4ad38b63252cf522e79cf1172ea5b6203471877c931e56d82a593fcfacd0d32513673718a90eea7455c1ff3810b1de027cadb97bf44267bda36f5bdeeb14704ed39a11be374a6c61c5e56b99bfcc18cf3844790a53d75fbd6e84fb2bdf573150a02f1be7f1ef6e5d539f61024406f5775519521d6cc7c9950525f5fa4aada0c42ba95e57d85e81e62e43ece358248321ec92aa5f4b75b78640b9689961a6a1d8394ba2e4adcaeaef721748559b459a82e03b51fc3c9ede424d047bd7ed5f2047780b393c9324d25d3cf2c8399bf9cb8b67dbfc80f7d2ddb11c11af25663f7235b5f0d6a17565734c6c297adb20db96542cc678885f50ad8c48986405d7d6b10d1e6d9d215c776184ad825cb0ee71ceef6cb60086e6f5b69598de3afb8c280075b39653009afe58d1a961603a54b8d15568374b04917877bfd58681d935c20047780b393c9324d25d3cf2c8399bf9cb8b67dbfc80f7d2ddb11c11af25663f7235b5f0d6a17565734c6c297adb20db96542cc678885f50ad8c48986405d7d6b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001201fa32b70a5354ac9ec742d499009f3300ae07180bf3fe7823a2ff1d3ed11cc1d73f6431154cc34ef67ccd2aebe8057d0a07d89c811a4f466f2e58bf5cca9280b9deb39e867659a048902f746a3d92f3e57fa372153b6541a013ebedd7ddf4a07bea451d610de24d841a81523abe9da9c3d1eec59cb21c472059ae0320d66c92664546f89a48810da601561987dbbc1ca3d75b6d6d2066cfa33f15e31ca1edd2da3bc938f5da0fc79b698efea8a3412a4f015065f32b6f74217dccb2f7d766d3a013818ed9db718b7138bdbb1d95cb602e761b035553e619b414e4b808e262922e0b56edced8b072b8f4d16396c0f3a62544d0ce094786cffc4d9bb63ee494510571165cce3c00e4ab15fde1ecaba27103c18aeeadee569ba3e8bf7042a0df2322ca10e6f564afd4d47d85bd7adb4ce5b97d122e6be3ff254e78582da043856355732d2afebf79b7cef9fe3fd85d82aef90ab3284acac1b0747f74973937e5d06f26679a38ea31b1d24d86f0936f55d39ea8972ebfbc1f591c29850ad1ae6b936c00d0e24a829b04a4a54e138a23a62a2feb06c0ff1c6b9ff6858f6c16220fb18ad6a7a64ef0013135d782973d991b444679f73a3350c56356026da8450f6d20d330e2a612e898bad579c42074294b6a6992ccdb3f335f326fbb4858feada252a4eae85a9de5e9a80884e1cf813ee0f5162831c9247e903a51f701ee5e316ef397ae214745c156d482a4e6c218a5d3a1f053534e766cd0843509df325862dc416db28a3eaa95adaff71688ed2182631416daa0fb4f2e3302d082e6283a1674d2f50d95a6fbbf69d4b315b51feab760a01547d3e9b8250963cb44c579ff9d03410af26a590440962b4cea4ae015489f620f21bbd6dcaa8855c78e49560062fcd2c943ec42eabd11277f6c899f9594e319fd2a744eda4a79c63fdeaef1fe11101136bc13bd1542eed8809376606a6b1ce8273f1b71ba8517f352f45fde01eef001ee539d4e95b155c57d1eb01debe86f7b849796488505abb286e03e49f655502211ac62b16a4eaa3a82e14fe2141790869fd1f9780fc9e6070bf2d08609aaaff1a7a21288ec76acdb719970959b8a2d654e22cfe96f7d37097cbb19d1cfaa9082585ded77138953248e668f6a6475d29cd646bfd725525ab01617f4fe30556f92f50d95a6fbbf69d4b315b51feab760a01547d3e9b8250963cb44c579ff9d03410af26a590440962b4cea4ae015489f620f21bbd6dcaa8855c78e49560062fcd2c943ec42eabd11277f6c899f9594e319fd2a744eda4a79c63fdeaef1fe11101136bc13bd1542eed8809376606a6b1ce8273f1b71ba8517f352f45fde01eef001ee539d4e95b155c57d1eb01debe86f7b849796488505abb286e03e49f655502211ac62b16a4eaa3a82e14fe2141790869fd1f9780fc9e6070bf2d08609aaaff1a7a21288ec76acdb719970959b8a2d654e22cfe96f7d37097cbb19d1cfaa9082585ded77138953248e668f6a6475d29cd646bfd725525ab01617f4fe30556f90af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb1dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970c2b75fbbe433ef24de4054a1dd9f66a53f2af49bd4023946d9757847ed174640b0b59e3d76049a3cbcc543bafb2590ac18882a0454dfa958b5471d33d0dec0c0a334d4c31960a61c9844aa2a55418924f410c8ce6bb75206c10b6ccadee8d3b1c2e4ebab1756f0f23f502c605b001645fb9918dbd52634ba85793651b5f2f2c00d80c97a5ca3f42024809990a5e4078724776135e9285751f43bb068f1f5ed12ffd27410ccdcfe329ef02841829f506167fb6b8093ab9645e6cf50c637245393ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba2e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b31dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb0b0b59e3d76049a3cbcc543bafb2590ac18882a0454dfa958b5471d33d0dec0c0c2b75fbbe433ef24de4054a1dd9f66a53f2af49bd4023946d9757847ed174641dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012e7497a9a6b8da38b53da1e6b0e170f840f28fee3a3ba2fdb023793353b3b35903faa7143dfc81ea6c0725fbd6cc165760bcb5f95d58ab194f259f4c8ea0c6e13523fff8f12408db029c43d72f02f48be49667ea942ca4d71348f4ff25ac5a5e2d98812b6b5c7d202fcaccec7b8efffe4fd6d2260ca4dacb8c14a992ec4e99a914c67838700d39f2cbbce3e75aae415a2b04b8afcf0e882710684bc05f6f25793e244f7265f4f5a20b85d3ea3057a1396e973d7b526b008c89ac664a0deeb82925e315305c203defd506d80bd61c5734ef12318482a8f0d4276526d7efa118e5163d38107ac89366ef9376f7db904855d91ed7fe63834c5c36ab59ec99fd3d623f63329cbdd5ec86fee116a15725aca1c85a34208a2539e419fd46198ad176b61f2584d8f3888269774fbc5950bb158a246ecfb87855e87f9ce732532ece402814b7cee9a3976e0e32eb602445670d1287201a70f87e981671519120d5e9b7893dbe495a5f1befdf04a1b1c3d1d5a489b850a41981e61ba7ab4d8bdd4fb63aef18351ebe42a70a7fc8c2b780a56e3003f836b567cbec43af1649509fba9e7db0373858ca46f01f4394e5158a070d9c12ef2f9a77e73a8f611e7f2f318b149a1d28964428b973dba2257c76cc921713e8e23d152b63b549bf21ed56300a3d8d2b064cbf4b3016d0c25c7e2e6615c05c3eb192491b7357eb3474e117d946f69ef51ea73aaa503384a817580357370eab6b7d3b6efbdb01a5b28d467541776a1856376092171e922d60bc89ced9c627be04a1b82ee83f17a7a2b86e0ec9bd56ae161a6142eabad9ac1231abb2237fe06e217b0cce090905d80c1b5ce78973f1c619259ebd15452653edce544ddc801f91dea739caf30047210f7dd049638c0e39e803e64e95a6405c5af85a7ab17f6226a722b2d4351a834605567623d543b8de7b3c19b16a59bfa3a507a5854e809dd958ff93c4c6eec9b31642b70d17bc472186137f88ec3f41cdc6d9c465777ceac143ad7e250984905e1ab04eb32a529c58672c807713c0be3239263b9a8883153ebc74c873f284bc9b00e8de7dc2ad63a79a217dac9d3c4904e240d5fb557095c652413020338d84dd69d85c4ee69d0dba021e825362c3b6fb1dbf2a04aa8f6a39ade11678c87bc81bb1c0d0e20662f245ff1a6142eabad9ac1231abb2237fe06e217b0cce090905d80c1b5ce78973f1c619259ebd15452653edce544ddc801f91dea739caf30047210f7dd049638c0e39e803e64e95a6405c5af85a7ab17f6226a722b2d4351a834605567623d543b8de7b3c19b16a59bfa3a507a5854e809dd958ff93c4c6eec9b31642b70d17bc472186137f88ec3f41cdc6d9c465777ceac143ad7e250984905e1ab04eb32a529c58672c807713c0be3239263b9a8883153ebc74c873f284bc9b00e8de7dc2ad63a79a217dac9d3c4904e240d5fb557095c652413020338d84dd69d85c4ee69d0dba021e825362c3b6fb1dbf2a04aa8f6a39ade11678c87bc81bb1c0d0e20662f245ff2d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a0b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4821da14ca1a199664fe96c00dfdadc6f774cb0099050339947762320acbda4f921298a8342161460a0a63944925900c28283b9c6ae2cb874a22758361d7811b5e63af4d6266fcb4016eda88f0b8382f0829b30347c5384622320af607712e403341ea98dd2ad29467824de238bd178f586fa625f611b07b7a7fd42b73123ce40682e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b33ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba0af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb1dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4822d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a298a8342161460a0a63944925900c28283b9c6ae2cb874a22758361d7811b5e61da14ca1a199664fe96c00dfdadc6f774cb0099050339947762320acbda4f9210b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4822d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011fa50446e895affd0c882ffff31e6a129f7497fa47c50d567465bb5befd0d9311a7f80a864a1db5e1e1817d3a45978ed1594c742ff1b0e87ba569baced13d53334053265fa7428b94f366826202e389c7d81035a35044d91b62acc62728eff210bcac40c467248b59e9d337db61e5db8b06a5e50a4bfb8d33f271f31bd332e22289139b492aea1152c45e2db3c3351edc39b126ca2fcda0968b9ed647987dd87174165f9a4ad6683cdbdf9ead43c1106981bb64c0703586797e455485d91b4283efda4a93da79866e0375520d44df8fe385b98e9f88964fe96c63b0c2e6555e20a548a884c6a1c01a6948d07121ca6ff38daf0c134ee162d4e1169a331d0edf90eaafc81c888770de760347d3b2523e747f1366dc7ec2342fb2a55dc52fa602724dde2bc5dab69ca1a4195896926ef3279e5b00eab69a3cdd973e6538c1a2fef002847ff9ea73b089e1e214cb762f65451013e9c7a29d6121e67466780287939345e18629a81357b28d58efe1f05f349baa04f9fd280f9843c365550cdf1c0542f8004e8de1bab07ad4741ab68273f2a3f82cd0b6ffbb85f3a7b33c67c2725711fed729fab7b7ebbb0608b5f44548ceca7e382d4432b1ab0fa4d4c0ac98bf25c1670fa54cb87976aee4ff43710d5e274cba69ff154acad34afa4b80faca8887c2eeb30abe3f935fe2871a65bfb56be6c63d6fc9b20a138a408d01f39c4f332e11fc34e82227bbee0824d3e890145c1852bde95ebfc50b1ca27225ae73e3026bf0f4f9323cea9f65187610adb5c151c24ae99cfe3e0b4f2e1ebd36f43bba6d8c107fc67f0d2530e47f91f36ded523f7e7013069392919e4978abc6e0f780c038c3803980f2dacf1b806e0c9212adc081921162fc2e03314840e70c2dd87f3fc7527ee07b41b9f4767dd9c125a29b3d78305f20e1dcd8176f5b5ae264d583c11bc1811f84be460b8982263eda5d64c287d1c548ade3bcb8225e37f0a9fa7c3ee4507a626848a1c6507540c5bc2d083358eb6e67ba0e7a06779c0df2cbbb92c58a93859d97b75e39af8abf3a43d2f7cca716b601d5b21ac91a1d84e043146d3a758263ec096b28df924a43dcace12900bc992806a2486220560c45bdfaa9dddbb4d19c13f694d7206db5bc23531ed6ff4368fc62ed7832af3bad4d15142622244b407fc67f0d2530e47f91f36ded523f7e7013069392919e4978abc6e0f780c038c3803980f2dacf1b806e0c9212adc081921162fc2e03314840e70c2dd87f3fc7527ee07b41b9f4767dd9c125a29b3d78305f20e1dcd8176f5b5ae264d583c11bc1811f84be460b8982263eda5d64c287d1c548ade3bcb8225e37f0a9fa7c3ee4507a626848a1c6507540c5bc2d083358eb6e67ba0e7a06779c0df2cbbb92c58a93859d97b75e39af8abf3a43d2f7cca716b601d5b21ac91a1d84e043146d3a758263ec096b28df924a43dcace12900bc992806a2486220560c45bdfaa9dddbb4d19c13f694d7206db5bc23531ed6ff4368fc62ed7832af3bad4d15142622244b4174fbaaf88be79d412b9672c9d372a7d2fa63a6f94bf935c8b22a38f99927d5421fb658f6072cee97b6dab3dcbac82009de512e271ab489886ab5369ed4941f1349a6923199a3b527343dd168fc0c3443c3898792a4ab48ef884d6895f3b63a4121a769dfd347beffe95107f075b903e3ac94c2ce1e461b32807945719e8dd1a0d59dd55308f221e8b7b9adc30ff608a8d3a58f05c6accbda67dc57cd7b9e0ae326db10dd5a7b1765db5e5acedf3cee26786f1363634c1a634a356a0e08b822a04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a0427665ed95b17a0576af512ebc575a225cca770747fc11a85e3405b33ad6bb002137e04dacf9afbc347f2bf066d88f624070fedb8de8410940ab528ab8fc49c21fb658f6072cee97b6dab3dcbac82009de512e271ab489886ab5369ed4941f1174fbaaf88be79d412b9672c9d372a7d2fa63a6f94bf935c8b22a38f99927d54121a769dfd347beffe95107f075b903e3ac94c2ce1e461b32807945719e8dd1a349a6923199a3b527343dd168fc0c3443c3898792a4ab48ef884d6895f3b63a421fb658f6072cee97b6dab3dcbac82009de512e271ab489886ab5369ed4941f1174fbaaf88be79d412b9672c9d372a7d2fa63a6f94bf935c8b22a38f99927d540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011bbf3756a9f9137394503221961b99e063883a1b8d8cf15eb126df0ab4b99b703b6b3db1313d01a06cbfcf2c961bb7725a04d6885e354779aea97b5820dd58a11bdabd6bf3eb9926845fd71b5a35af2bdc6c5000721b1a2344500a9a0dbc57c90c94349c8fb28e09647e7391f2d2535ced0e796b3988a2d336cfd0379fc604de3f13e25998af91a499210fb3af909b80bbbe28f97a8c2820b0bc1a3d2fe5de261a3e7522d105b19c6e63a3749a22130d9feab9d7f21636c0d853b06bddf5742f175c40f7543e9ee9a0bbcccd1ad15953fee4e303bfb7a55eeb45c5b114b63bbd3544718131ce48bc9ef81edf124a682dc92f7d080b15ac017c3850e090802fd63704349ab2f7238b51fac6fd5ce3aaab5fb4100ec041b475c1fb1005761bc8a330f3ee57361cc25a628a806cce8918ac6075cef08a0cc0d47a23fcf8e0ff6466060fb666f280ed2b28526b82efb680a5d8b72fce5833e351bf281e921e54da582d7156d67488d686560f4d8fffc51227b9beb7d98f82193cc40415be69d6a7f50c4980c4acb1fb2ee0028e1685cd66f2cf5171b1de3498929e89a0d62b0cda820323f6c3dce52e947da53ef426ae6523f5ce4531cba54161fd11ae0e1aa63d4a277fc0e234ad623a406a778cc3ba987d28d14dbb279d8aded15317d8f5b40e591270c6caa7c1c0d62149cb576c34a31592af30cd7405919bce022b14b3c424a1008d7e75d5aeda56ee67429e32f0bae244bdcc9573fcfe766039316f579203b80455d0cfb8fe2d22d6a4d1b48a76e9807ac65a1e245a103ad1a3e25399733bfb00a31cd9ef8679794deeb656fd6b01c97550149e556476b314244fb708d44fc33f5ce32610798686b21149a90294fe36acf6845db3e882688508e135f72bb03e032f9041ada05f5e85a98fb2f31708ef4a906717aaf6517f64b58e932c258ecf3cd06fbe525fa0a17a56704d0ce8f710d7b631e45e56a79c3477a259d3da71320fedd1486421dcd89c4fce7ebf732cac74d2037656cf977cf78bc8dfdcbbca0b30122eb79bde232763b03181408cd353ad749585b27d619ea1a1680d234435f60fa51669f4a9503b0d8f0879bd3fdf5e25d37853a8c0fc553c8dbb724faaf236305ae9960b56afc4f270f78642c020a1fc7320a8608bfcc65c9f757ab0550dcb00a31cd9ef8679794deeb656fd6b01c97550149e556476b314244fb708d44fc33f5ce32610798686b21149a90294fe36acf6845db3e882688508e135f72bb03e032f9041ada05f5e85a98fb2f31708ef4a906717aaf6517f64b58e932c258ecf3cd06fbe525fa0a17a56704d0ce8f710d7b631e45e56a79c3477a259d3da71320fedd1486421dcd89c4fce7ebf732cac74d2037656cf977cf78bc8dfdcbbca0b30122eb79bde232763b03181408cd353ad749585b27d619ea1a1680d234435f60fa51669f4a9503b0d8f0879bd3fdf5e25d37853a8c0fc553c8dbb724faaf236305ae9960b56afc4f270f78642c020a1fc7320a8608bfcc65c9f757ab0550dcb3ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba2e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b3170b49fa45ed99ffcaf8036f11a7da96f3eb56355a6bc1b4d4b673c252a8f14e3b674a1b1f59259eb7e969b60f76d978f3840665a081434844ed7e08ae52a3490dcea87c142cd7194c851c76df44aa147c540709bc62f27ba33ec049f82126cf0bcfbb7d08c7af75c601962075b73bf4f6f7f3d7a8dc2e33e18626713e911ccc2d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a0b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4822ffd27410ccdcfe329ef02841829f506167fb6b8093ab9645e6cf50c6372453900d80c97a5ca3f42024809990a5e4078724776135e9285751f43bb068f1f5ed12e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b33ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba3b674a1b1f59259eb7e969b60f76d978f3840665a081434844ed7e08ae52a349170b49fa45ed99ffcaf8036f11a7da96f3eb56355a6bc1b4d4b673c252a8f14e2e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b33ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013de055bf769969a0d87c3732e7fc15d1476bb72f2d745244a1708a43a12c4bd50d3cad54271aec049264abf74889272d7b788d9f14eb8b09c44d1797a5e238a40019e45972881cdc6e800be6e6880fef95827e3d3d827fb1920179c642db899a119eed0cfdd4fb6fceed08e05e02fff939da308463a1a37b8c9c06686a7560511584be5a4fceec1d27f3e16e127815a558dfd6fa21bb13ef11315d1aa840772437b3714110b268d7517dd82fcc4648b1684ecdc7ccdf0bda0df74c936e81201022416c2a4523bd0ae53d3e56b25dc9e04384f22f76a661a5f4d6f6c283bcddf01ea6970ce8a65d0e376df7f6963cc9c27bf99992ccfa7f8cce50f82669f488983f7ccf2034516165fb7c25c10fdc51d13201f615afdeed22218b19e171fe2945337e319a24af782e7134704cf00b6a588479bd183aa88ebde651c0d64830b8df12407cdfa540b790da4c69ecc3034bde4ae9ce95d11049290a9fa5b5dbcaf8de33bdf4da489f0af5ccff1a4a3333f128f4aa09554dd8351e2c82592dc2d171762b0e6e2eb0cee4c50c1aed1a2ef72ce050d83dcb43145ec67755ccb69a75d70b245f0959d8c844fe518cdff07d849f36968e121470127449bd72b31aab3d40c2159fb3998dabc633be095bc345029beb8f3afe61f0fecc404c57ecff4c37f87d18042836cfe6d7098376209694fd930a5b0a7088b9a99140ba8fc84cf29f2b000a9617799cf1ab708a0697a20039ecfdc32da3939ea64e16a0fe27cf4c48e0012d5cb2fc345a38db8e47dc9a763fdc1c510a8c09a047d27d81450b2096e016162d30c4b65ccaff430a6ae8691b1502ed1df45381b89288e2a79f83e093ee643012cf3b49a33500bcf5951796e4eafd130452457a50ba7038f18dad0c6c119bd121f3d78fcff6fc4f34168a0d87690ea12ef1d6947ef5c11a7a96009be3a7f4ed1e0c2870300903b0cbe975f27896f15ef354c2678a5738011e9730511c580b1429c335cf0fd2ed8c0470b243a50d4925a62bfeee6832d34d3293a1317247c89f163cca30f02d1273fb8f4dbc5af2b6da7c1a9a0da11a25ce66998fbb8db8376210d00d0b4f1ea3bc16337b5239426dbbd8082fb3ed17352f315a93303b66eb182f2ff2f4b0e15c43e9cc84adc6bd92444a3e69481c35c3ec67d29dbcc49914e92d30c4b65ccaff430a6ae8691b1502ed1df45381b89288e2a79f83e093ee643012cf3b49a33500bcf5951796e4eafd130452457a50ba7038f18dad0c6c119bd121f3d78fcff6fc4f34168a0d87690ea12ef1d6947ef5c11a7a96009be3a7f4ed1e0c2870300903b0cbe975f27896f15ef354c2678a5738011e9730511c580b1429c335cf0fd2ed8c0470b243a50d4925a62bfeee6832d34d3293a1317247c89f163cca30f02d1273fb8f4dbc5af2b6da7c1a9a0da11a25ce66998fbb8db8376210d00d0b4f1ea3bc16337b5239426dbbd8082fb3ed17352f315a93303b66eb182f2ff2f4b0e15c43e9cc84adc6bd92444a3e69481c35c3ec67d29dbcc49914e92e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd630724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f61a92f6a61fce846b25c83d8fbcb76aa39feca1dc39a5ea305ae3ae246a618d0506dddf9bcd0c2033836249932bf3ce970b3c1b1026f23e8e76c0903e8382833220f0072591fd810e96d65b79ca90d674ac9a437419480fec57f01490c6a71f533cab6d197f17180e56399a722450928f6d9116af63172aafb8dac171d79684af25edd8763b0e9f24ec8bee196162f82280e8709816f727bdb7fdac9abcdb63e01de7898ca0b76c5ccf8ea31d9866d81454a22428dfdbb89c3b361d9f92cb08570552acfb4136a8687c086867198f336159a70e0de3347500c25c57abf0d8fec13c5f354a6809f5d8fc0d754f10b0845dec5a231524772141e6eba5461ed414fa30724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f62e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd606dddf9bcd0c2033836249932bf3ce970b3c1b1026f23e8e76c0903e838283321a92f6a61fce846b25c83d8fbcb76aa39feca1dc39a5ea305ae3ae246a618d0530724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f62e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012b848eb10e9fdd59fd8c4de2526a6ca06d4ddc1141e84b695ae562ed60e643353f04746b17ecc54f77bd72585a684e8fd03d61aafe9a442806af881b3210ae3510913e2f49daffcadbdd9040604f7943e36491ae951f3a1f3590c63cfe1b3bda025d6ea885215d0616c1ddbcc9104ddb5829422611d8c6bb4014f377b168c11106e0128752f4c77886ba5d531aef3d916a8c7f33926e7e7eaade0d218a0a580e1f15ab20061476ce9aa338bc3af0bdf901064f55847f47202dd4933248e9dfa503ead49eeebaed8b0c8887189ed793cdd39cd1bf2f728e7cd0a4de0ac40cc21f289d5c26146efbb8b80b7c60c0616da75959fbd6f33b39a419d96ae3b60da6ad3a3ac4d0b3c443c86f7887a73230bb95f13b18138a2ac748c8a3dfadc3e8bc4718774eef9ada6ce3f881138985888be874da78a7926a3102ce2685f60f8c686a31a581c646f4f1d9f4e275e595790818f819570447b99a4b0047f9064d1aa8fa04d882b645e0b51c301bbad7ce1792ca0af622b5c54b24d8709232705a9acfec3ee92f0b88019ea10d9a7586e27ae525219f3d5a6a7a1c0bff7083033722758f1084487d01958b22500d5783ca00e6f1c5c7128548acb7043557fcce0e90a23e1bb44fc94108eba44e98be22f7b693dd046de296c1fadb7659969a43894855f53edab8a35df757cbd4bf9ac2f5119c89a1b215c871c13693296827575bded2032c0c1664fc7fd450b1a01474530358a687391196c1a91cc37ca89931df0dc17f19a9ccc9665fb54d4f9fdce0598492b9c9d18b2d0c32a921fcb87014e0cad92b3188e3736946f3bf517c077eb5300c2b271757a63931e99ac339705544006eeb0e771c8c96b90c40ae83f8814acff3d4fb2f4155d01b0f80d5f3c097bbff911637ac71410e62c2bc976c257989f03cd75ca0eb4b0212a4b304979ee354022a9408538ebef19d3d436893da86760fc328c5a5adb1073a546894959209abfdd56d165e364547edcdaef51cbb5fb1b13034460a3486e5295310b24156bca40ad4e029a1c9bab81232510ae344a04e4ecfcbdc3c64752423a60ae6ebda305bf52b212fd70f5a67a5046ac98fa8de7875f1053bec6da67081a637e21980c23436285f1028f0a5985afb9536705721878a0efae65a2b5598cb52e3b713b02acbc9d7a23188e3736946f3bf517c077eb5300c2b271757a63931e99ac339705544006eeb0e771c8c96b90c40ae83f8814acff3d4fb2f4155d01b0f80d5f3c097bbff911637ac71410e62c2bc976c257989f03cd75ca0eb4b0212a4b304979ee354022a9408538ebef19d3d436893da86760fc328c5a5adb1073a546894959209abfdd56d165e364547edcdaef51cbb5fb1b13034460a3486e5295310b24156bca40ad4e029a1c9bab81232510ae344a04e4ecfcbdc3c64752423a60ae6ebda305bf52b212fd70f5a67a5046ac98fa8de7875f1053bec6da67081a637e21980c23436285f1028f0a5985afb9536705721878a0efae65a2b5598cb52e3b713b02acbc9d7a2305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe2ae365370673405b45f215f38dce27567140ad8f6ba49ea88e18629f6325aa0d1b8ff0c9a7809eabeb8f51554571a7d5285ef1a041b40a55e30ed8a0c3d2236a197c72c4ccb103b028475e963f041edf0457e1b288d586454f04237818425ece26bbfed82d1828baee8720e0a208b1b44b74061ef724dd8e083522442f783e5d02137e04dacf9afbc347f2bf066d88f624070fedb8de8410940ab528ab8fc49c0427665ed95b17a0576af512ebc575a225cca770747fc11a85e3405b33ad6bb0174fbaaf88be79d412b9672c9d372a7d2fa63a6f94bf935c8b22a38f99927d5421fb658f6072cee97b6dab3dcbac82009de512e271ab489886ab5369ed4941f1093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e1b8ff0c9a7809eabeb8f51554571a7d5285ef1a041b40a55e30ed8a0c3d2236a2ae365370673405b45f215f38dce27567140ad8f6ba49ea88e18629f6325aa0d093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011dedcc54ff9f8351efcdaa6ec489fe96c3dfd774d79f53cb0cf4019f0a8aa2530532b24d144d3df8ba1b3af03d4544bd45781153ac42a63204ab27fe6b75a00f32f77ac8b25c5a40abe9015f4e298beaa5500c04ac5b94af13987f6f05c3e35a314112e60cfb9df3a1ad299faaf948b7b2f9b39ff94ecd90163180da74d3865012e8c149dd24425feebf10ae7968aac15f0b348ab8ddf709bd8cb8dfb5c6ca182b22c84b4f41cae2815a813ad1c73f058a8274b49453da18ba2f4d8c75e18d922eaa03e6ae752741fafd4b581f181c03b6d05f38ee6391a5420da11814542b1c1918f11340d76730a9abb40005d27c1b889b09dd70649e45ac4f2ecc301177ee380d11ff0fe1d542bf123d5cc6f81f59de67cff0125269a7ba1433c1184f8b2e250c8b52b1c867d674f992ae911430cb08730f4335bce338ff7184fa67ffb6e30f9d0dd6783ae08ca32eb09ae4b96cc929f35599a5443c89a6b1271d7096131228156a16eda045b4dc01c9ad93531d98eea8d6662f160abb10cd8a0790615163077a1a83de64a9cfa4041f94361de7b0fc8c9918d1e0059625274bc295e9355507f35d04ab327ff3b9a3ad76765de465c8931dcad7f9d45e76740321afc9e27733db4b3d90175611854ebe74518b437db8d9cfb5a17ce43676660c428005a4aa192ddde24ed13432c5427808c111ee6c91c29a45bb1a3171208d54df47fa99150eaa585b7adf0384f3f8be68382eea44f70e5f56aa36a7b1d1c3ecaa3e016d1d0d23e79fe87766c9f5e1592caa2041034a7b26b37dbafa16b37da0297edc4fa017e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d28193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e1110593943781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e20087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e1158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c2a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b69652bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef617e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d28193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e1110593943781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e20087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e1158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c2a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b69652bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef6288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc73502405abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b31a541dc9aede8050ad6648812a33cfcce3efbd5a696c6d22401470b7af361c4e377596ab5d4f14c7435038a9742be3e6d0ecea3606fad6a74a40d15db38cafde3aaa9a47453df473718afecd5a9f3c813f8ab265d7735b30cf3d9aa31345b8bf29f67f7b332db09cf5bad95713cd823005366f75182a210df2f8ccf2a0536bd63ccafc6418112053d1c539dc198ca765b3a8d0cc38d47492143067a7a046f720305d9e4e7bb0cfb3b7ab6f2a16664d9d00ffe6e15a8f452fe648d4b20ee2b079077596ab5d4f14c7435038a9742be3e6b737f77900011bd2975eecabf38cafdd2a541dc9aede8050ad6648812a33cfccec8163996bbfab69265fbcf2ef361c4e05abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b3288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc735024377596ab5d4f14c7435038a9742be3e6d0ecea3606fad6a74a40d15db38cafde1a541dc9aede8050ad6648812a33cfcce3efbd5a696c6d22401470b7af361c4e05abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b3288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc7350240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011b8c83f59739f174245a9d39c1564be6f697eaae027a246d6f62ef7eb25e2bed15a71fa3e4bd6b4d0784a8b7d6c10312d2bb140fd7bbef1c3569abecd12e7b7e128635c1e3f36fb3c558df18a08816d3cde40f45fad4a9a962b169100bcef4d80f93110bc1bf6acff6178d72f3fba2e90f0d836c58bdbe230f5c4e26963aa5e31d2bb2c46f7219e420184aedd9cad68c9eb7615fc4844a02cf82c2cdf6dee9940bf88c893574e850f325ba7b57b730492ea6f6e098adeb9a82817b4837f57683300f118bffede9bf6a1b089a082be5009bc462acb38cb10135c42d08344d26882ddb46107020150d7159dc61447f7450fefc207fbfed47993668257b816e89d024f6907b762d9cae49e30d91b048cc20309c649008ad73d20bbf2cef1b26f8421e75e1c64dcd3e7e8ccc77bf484aafc32a446b41c4b8fd22e43c01a948241b892466513b3aa77d71d02fa23fbf39de781c137bfdd3bee472236abb977470fde601a1f934f293de88492dbb217da681682a0af1135f254abc58a330d8e6511e0f29ad293d3d824fcb09f3b2bd2b2d751ab474a3d5e0e96a7b95d2a003562019a225c04e4b4c14d9f853b41a4d814e56fc32f1ac09d23d68949ef5dfcdef92fe2b14fcb1c7dca15f1080984165b3757c1b52e1e93b84ccc1a4827697eb0553f9a61518a235be48fe4064b068a1b9f2a8e2be3c2f949cebec7cb2dc82a523243b582a2367af9f6914f7c8f97657697fc994152320e65bdeb611e3ffdbabf6c21d1b0cb6110136e488aa295b43fb2c0debbf072d6f65b83bfde7c42bbd8ab8fe910f3f5ce32610798686b21149a90294fe36acf6845db3e882688508e135f72bb03e00a31cd9ef8679794deeb656fd6b01c97550149e556476b314244fb708d44fc33cd06fbe525fa0a17a56704d0ce8f710d7b631e45e56a79c3477a259d3da7132032f9041ada05f5e85a98fb2f31708ef4a906717aaf6517f64b58e932c258ecf30122eb79bde232763b03181408cd353ad749585b27d619ea1a1680d234435f60fedd1486421dcd89c4fce7ebf732cac74d2037656cf977cf78bc8dfdcbbca0b305ae9960b56afc4f270f78642c020a1fc7320a8608bfcc65c9f757ab0550dcb0fa51669f4a9503b0d8f0879bd3fdf5e25d37853a8c0fc553c8dbb724faaf2363f5ce32610798686b21149a90294fe36acf6845db3e882688508e135f72bb03e00a31cd9ef8679794deeb656fd6b01c97550149e556476b314244fb708d44fc33cd06fbe525fa0a17a56704d0ce8f710d7b631e45e56a79c3477a259d3da7132032f9041ada05f5e85a98fb2f31708ef4a906717aaf6517f64b58e932c258ecf30122eb79bde232763b03181408cd353ad749585b27d619ea1a1680d234435f60fedd1486421dcd89c4fce7ebf732cac74d2037656cf977cf78bc8dfdcbbca0b305ae9960b56afc4f270f78642c020a1fc7320a8608bfcc65c9f757ab0550dcb0fa51669f4a9503b0d8f0879bd3fdf5e25d37853a8c0fc553c8dbb724faaf2362e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b33ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba3b674a1b1f59259eb7e969b60f76d978f3840665a081434844ed7e08ae52a349170b49fa45ed99ffcaf8036f11a7da96f3eb56355a6bc1b4d4b673c252a8f14e0bcfbb7d08c7af75c601962075b73bf4f6f7f3d7a8dc2e33e18626713e911ccc0dcea87c142cd7194c851c76df44aa147c540709bc62f27ba33ec049f82126cf0b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4822d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a00d80c97a5ca3f42024809990a5e4078724776135e9285751f43bb068f1f5ed12ffd27410ccdcfe329ef02841829f506167fb6b8093ab9645e6cf50c637245393ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba2e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b3170b49fa45ed99ffcaf8036f11a7da96f3eb56355a6bc1b4d4b673c252a8f14e3b674a1b1f59259eb7e969b60f76d978f3840665a081434844ed7e08ae52a3493ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba2e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010d3cad54271aec049264abf74889272d7b788d9f14eb8b09c44d1797a5e238a43de055bf769969a0d87c3732e7fc15d1476bb72f2d745244a1708a43a12c4bd5119eed0cfdd4fb6fceed08e05e02fff939da308463a1a37b8c9c06686a7560510019e45972881cdc6e800be6e6880fef95827e3d3d827fb1920179c642db899a37b3714110b268d7517dd82fcc4648b1684ecdc7ccdf0bda0df74c936e8120101584be5a4fceec1d27f3e16e127815a558dfd6fa21bb13ef11315d1aa84077241ea6970ce8a65d0e376df7f6963cc9c27bf99992ccfa7f8cce50f82669f4889822416c2a4523bd0ae53d3e56b25dc9e04384f22f76a661a5f4d6f6c283bcddf0337e319a24af782e7134704cf00b6a588479bd183aa88ebde651c0d64830b8df3f7ccf2034516165fb7c25c10fdc51d13201f615afdeed22218b19e171fe294533bdf4da489f0af5ccff1a4a3333f128f4aa09554dd8351e2c82592dc2d1717612407cdfa540b790da4c69ecc3034bde4ae9ce95d11049290a9fa5b5dbcaf8de245f0959d8c844fe518cdff07d849f36968e121470127449bd72b31aab3d40c22b0e6e2eb0cee4c50c1aed1a2ef72ce050d83dcb43145ec67755ccb69a75d70b18042836cfe6d7098376209694fd930a5b0a7088b9a99140ba8fc84cf29f2b00159fb3998dabc633be095bc345029beb8f3afe61f0fecc404c57ecff4c37f87d2d5cb2fc345a38db8e47dc9a763fdc1c510a8c09a047d27d81450b2096e016160a9617799cf1ab708a0697a20039ecfdc32da3939ea64e16a0fe27cf4c48e001200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af2150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f3981eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c69269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f6196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af2150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f3981eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c69269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f6196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b305d9e4e7bb0cfb3b7ab6f2a16664d9d00ffe6e15a8f452fe648d4b20ee2b0793ccafc6418112053d1c539dc198ca765b3a8d0cc38d47492143067a7a046f7200cc3da9332bfc4c2de3e80fe3391c67cfd20927847a5a0e2f07a246a7573e31806138aba397e4b359850d5fb9c7b448092c3e7d23790979247670115db6275521d89216596cd5ffcdba10ea510a72867528d858a39e4f1abc51139fd0eef252f0717f85ce19e45138ba4c97f5dc59649cfed0354ac6b917763f7fcaba4a9ff65288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc73502405abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b33335039be7eedfac2e3ac623e673589a8852baecd7723f5e37deadf71fb908e23fa261b1844f304c485490d5e999b2633afba4d7b5b76ec065c640ecb11d4f893ccafc6418112053d1c539dc198ca765b3a8d0cc38d47492143067a7a046f720305d9e4e7bb0cfb3b7ab6f2a16664d9d00ffe6e15a8f452fe648d4b20ee2b07906138aba397e4b359850d5fb9c7b448092c3e7d23790979247670115db6275520cc3da9332bfc4c2de3e80fe3391c67cfd20927847a5a0e2f07a246a7573e3183ccafc6418112053d1c539dc198ca765b3a8d0cc38d47492143067a7a046f720305d9e4e7bb0cfb3b7ab6f2a16664d9d00ffe6e15a8f452fe648d4b20ee2b07900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000109fa99daa58230b33c76e5c73f7ee82fa9ebccf7e8600b7c0865b2b480b8a2951a4ef048fd214d3b1fd00ccb356cb23305b4b5f8c03f51e003da89e0e28345421cf8fa1b5a8723ebd96f7c2d70f0e28074d9f6154464c2e35fdc9d5599422fe608572a85af70524a81f485ac0ad877b0d9ef201aa803ef9c00b4dedf69b38acb33d72a2445768b2e1a74044287294267c504417ddd7953bba823fb953b8c75931e8e556ddaa53ed132e59ba876a18e7e2f4d5467e72ad3dd846e05e5aa96c301213163b020e9245fb704b71c11746e66206a26e9958d1c13b010bec4da282cb332a12444cb1cf554552cd4781050d5980f211f7bdcdf4d407d34a007fc3a245220ed2e93d0ffbf32e4388cba197268096a8b6714cd3d90f59df599196a426a3b3a5b3f1c279bc2572b87d9a22f93a64a9e63e05c73fdd3bd87f3ea0a071f2cde2a160a8d27d93908347270ea94deadd02188176c223f430e635343a3dc49850c1a98720428d8f9b5c4a9bb55adedd079f6f22273ae86a169e7f2efb235ee7b650f6336919514b003944e5494da84066ff9dd3222f6294ef56661206a308f7466000a40f6f48279bfc9597875d1f7c5a6cb4284c0b3b08aff353a2e7a1523a36607d8a8819df16d305cee6f12f5f1625e8f770da87ad09f04d1ec303d00cf12a30161402a5a3b0a7b8cd68bd0d65844ac88a17b23da42706bd49b64d3f6621d4f3998ef0d0bc1b06fc97b11854f0fe9513e8529fe496964346f634a2233e5bf68277d3947cafbf229a9586b083cc633367c3268e5896267421f330fa1ca6518221a6142eabad9ac1231abb2237fe06e217b0cce090905d80c1b5ce78973f1c619259ebd15452653edce544ddc801f91dea739caf30047210f7dd049638c0e39e803e64e95a6405c5af85a7ab17f6226a722b2d4351a834605567623d543b8de7b3c19b16a59bfa3a507a5854e809dd958ff93c4c6eec9b31642b70d17bc472186137f88ec3f41cdc6d9c465777ceac143ad7e250984905e1ab04eb32a529c58672c807713c0be3239263b9a8883153ebc74c873f284bc9b00e8de7dc2ad63a79a217dac9d3c4904e240d5fb557095c652413020338d84dd69d85c4ee69d0dba021e825362c3b6fb1dbf2a04aa8f6a39ade11678c87bc81bb1c0d0e20662f245ff1a6142eabad9ac1231abb2237fe06e217b0cce090905d80c1b5ce78973f1c619259ebd15452653edce544ddc801f91dea739caf30047210f7dd049638c0e39e803e64e95a6405c5af85a7ab17f6226a722b2d4351a834605567623d543b8de7b3c19b16a59bfa3a507a5854e809dd958ff93c4c6eec9b31642b70d17bc472186137f88ec3f41cdc6d9c465777ceac143ad7e250984905e1ab04eb32a529c58672c807713c0be3239263b9a8883153ebc74c873f284bc9b00e8de7dc2ad63a79a217dac9d3c4904e240d5fb557095c652413020338d84dd69d85c4ee69d0dba021e825362c3b6fb1dbf2a04aa8f6a39ade11678c87bc81bb1c0d0e20662f245ff2d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a0b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4821da14ca1a199664fe96c00dfdadc6f774cb0099050339947762320acbda4f921298a8342161460a0a63944925900c28283b9c6ae2cb874a22758361d7811b5e63af4d6266fcb4016eda88f0b8382f0829b30347c5384622320af607712e403341ea98dd2ad29467824de238bd178f586fa625f611b07b7a7fd42b73123ce40682e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b33ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba0af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb1dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4822d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a298a8342161460a0a63944925900c28283b9c6ae2cb874a22758361d7811b5e61da14ca1a199664fe96c00dfdadc6f774cb0099050339947762320acbda4f9210b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4822d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011fa50446e895affd0c882ffff31e6a129f7497fa47c50d567465bb5befd0d9311a7f80a864a1db5e1e1817d3a45978ed1594c742ff1b0e87ba569baced13d53334053265fa7428b94f366826202e389c7d81035a35044d91b62acc62728eff210bcac40c467248b59e9d337db61e5db8b06a5e50a4bfb8d33f271f31bd332e22289139b492aea1152c45e2db3c3351edc39b126ca2fcda0968b9ed647987dd87174165f9a4ad6683cdbdf9ead43c1106981bb64c0703586797e455485d91b4283efda4a93da79866e0375520d44df8fe385b98e9f88964fe96c63b0c2e6555e20a548a884c6a1c01a6948d07121ca6ff38daf0c134ee162d4e1169a331d0edf90eaafc81c888770de760347d3b2523e747f1366dc7ec2342fb2a55dc52fa602724dde2bc5dab69ca1a4195896926ef3279e5b00eab69a3cdd973e6538c1a2fef002847ff9ea73b089e1e214cb762f65451013e9c7a29d6121e67466780287939345e18629a81357b28d58efe1f05f349baa04f9fd280f9843c365550cdf1c0542f8004e8de1bab07ad4741ab68273f2a3f82cd0b6ffbb85f3a7b33c67c2725711fed729fab7b7ebbb0608b5f44548ceca7e382d4432b1ab0fa4d4c0ac98bf25c1670fa54cb87976aee4ff43710d5e274cba69ff154acad34afa4b80faca8887c2eeb30abe3f935fe2871a65bfb56be6c63d6fc9b20a138a408d01f39c4f332e11fc34e82227bbee0824d3e890145c1852bde95ebfc50b1ca27225ae73e3026bf0f4f9323cea9f65187610adb5c151c24ae99cfe3e0b4f2e1ebd36f43bba6d8c109c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b09c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b39ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e2e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae9682c52dbd4b3e6e09e1ee805e79005f0bc5d1ef5ded4e43494b88e3889b14b0e982b262cc5955e65935d7d23c1946687e15b1143b0d92ac231ce3dd27d0547e1a618c9d9804d1af74f9e6525b58fa140978c05cc06abfbd4d3afdd2faa1c9c215527f0fe2bdb474e59eadb6476d794884dafac34e825f9c1ef1ac1b293f21ba637125c534548436e43bf17fe0c04c54749cf0b77aa2d2eed5e1e60a2d2e8abc0510461dda8d89f9244340ca170b871686ead72c0f6aeea72a59dcc85f5bf2f6861063701d30cbb53d7978d008cd3615854317feab4f9fde2db6584c6b4ea9b95e5068b7cb70c4e968fe90a321a45ecb6c221e359af3f511fa60b4bca61ced1e0ae2e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae96839ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e2b262cc5955e65935d7d23c1946687e15b1143b0d92ac231ce3dd27d0547e1a62c52dbd4b3e6e09e1ee805e79005f0bc5d1ef5ded4e43494b88e3889b14b0e982e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae96839ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011e8194fcd5a97700e739a2f24cafd61b4491112661802452831399f4fe0c2c8304f1693e7f720fc0c3e18e66c0f74ed58aee9ea6d8ea1a90efa817954a6939683d467807ed19df7dcb1ceee2577eefd4e488a3c3c519bc76d0e4c2cb85206c0e2d6115c69853abf63db380f5e7d691c62c5a27f45b4c89b995ef9862f6785fb821940a88b1c2aabd86e2311d2f0f16003f34554a35b3cae9b830c25258d4bef21c7558cd368b780e43fbc21e63a2c0f9d6c3d00afbdacaf095ad69ad3c69e8a12ca6b7c480511320f61c38b01e256472115e384cb1544b7c6c2c1809fa6756d5305ca7610ebe8c0334c175749c19abf108e4a6592cab85d824bbab119e65411e3aa039b1d5849ce36dac25aedc8381f4062ac089c68ee62dd6428e1f0d566c3316ec15fcf1ac9caa211dd3405d08e01d84341f34d2680d29e84ee4680f0e4bfc050014b77c11e98c6a93b167065919941eb20a49513ac5583bb51cf96d9cee0b2af2f2dcb7cee2ab8e2a8bb6de75f04c1cf0f878528fc1ca448e58f9669fe8ff19973d43497a56cc8039c2fde9cefe0ca1897f3d9d53193ccd03467b4e269ac635d63a45401cd2f6dd6e0a0cc2acce0a45dcd0a215d3b9d367c53955f78c7d073e7305b385fdf1e74396fb4b21010478ea9706bfaa4809440d935417dbbc764d1b5056a52a88e47bb79c7bb73ad4e6877ad11d5462f9149f56ecb0ac0ae8d29e1858d0c3bb0ce172cbb5ba468bd5ab4a8293f62e449ac1f2153c56c6b9406ff1195b8d569bdad6892038a85deab533ace8629f62faa985bfeb64bd1fbf9848cc18a62107e04b5f9b19f1ae1f7823a61b01ced64411dfefbd3a1d74748adefb682759def81fb4a064e60e51e087dc59e52077c2b7f76d095e5f0fbc78752104993b3ea5276178de0781b8669d58b23e86e6c396585012b59689661559b65ae90704c15ad89e8721f87e479962a74dc1793b8302a3b93a43850fc71b9349a516fa283939c4e75c5625889a0112bb7b38a1f8b78bc96b29a7824a49a70c8fc68d1f17c6c63b18a3a9da7765feed4484c75e298f0d329e2351994ee389e0703972e2091e20d884cdaebbab02055da9681b2974c1effafbe95a38a7e8b077cee0c19836e1df277b32514454fdfaa25697e4d6ad84a9010d639ee2f1448075311f3e6918a62107e04b5f9b19f1ae1f7823a61b01ced64411dfefbd3a1d74748adefb682759def81fb4a064e60e51e087dc59e52077c2b7f76d095e5f0fbc78752104993b3ea5276178de0781b8669d58b23e86e6c396585012b59689661559b65ae90704c15ad89e8721f87e479962a74dc1793b8302a3b93a43850fc71b9349a516fa283939c4e75c5625889a0112bb7b38a1f8b78bc96b29a7824a49a70c8fc68d1f17c6c63b18a3a9da7765feed4484c75e298f0d329e2351994ee389e0703972e2091e20d884cdaebbab02055da9681b2974c1effafbe95a38a7e8b077cee0c19836e1df277b32514454fdfaa25697e4d6ad84a9010d639ee2f1448075311f3e69154726d1e457b749e5a32d9cb269c17087add08c554ac6163f1ba6dfbda977f43ebbdef2711d9803441a84e31a9d5ceddb174d378971a5aeaf3f8ea84a27c7942ecab19fa4984e587f65c960abe312a14911f43b6a89c4fc00189825fe5ed7753d32489c05f2625a56dc841f8715cf00bafcb8f4d2a0ba91dd13c518f9cfe90713724f0ac1b4c5188c3274dfe3b442f0a5f988438b3c9aff9885f6af3af876cb24b81373b72e6d9ef1bd0f62e5acaeb018dfd59ea142d8d96b43818d2fe72caf29bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c0a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac634ab22fea15d89c74a4ca0d1cbdd19b18c8dc4699b5e6d44a70b9e363033d8121dff3c5197fd00d1d0a0de7643244f7892ab4a9b26b3f4238af227929b22c0733ebbdef2711d9803441a84e31a9d5ceddb174d378971a5aeaf3f8ea84a27c794154726d1e457b749e5a32d9cb269c17087add08c554ac6163f1ba6dfbda977f43d32489c05f2625a56dc841f8715cf00bafcb8f4d2a0ba91dd13c518f9cfe9072ecab19fa4984e587f65c960abe312a14911f43b6a89c4fc00189825fe5ed7753ebbdef2711d9803441a84e31a9d5ceddb174d378971a5aeaf3f8ea84a27c794154726d1e457b749e5a32d9cb269c17087add08c554ac6163f1ba6dfbda977f4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001150346e04ef75c825ea58de669c4722fec4507fd927b6a9cc11c1d752c01a2082e289a36beec474521fbafe255a478d7708a2f26d4069a396be5f267e79fdc84271cc5dc2338990c25b0cf6bfd13fe9517aab83a9e9ca1298259bf10ad3f648321199c6076c599e6dd7524a7b93b6c38fe4194c45bf908e9ce0020fa4cf23d5b17f689467b40bf3f1e26b061288dec8a83eca77307e625bd3e5f424a2902bbad38db0ebf41f00b1e2430dac732b1f9538b660c4f5471df192133fa98d75ebe7d01171cc27b8cd4cfeaa00e4925b08b97455da8624287e3d6f045174f86e425f6277b0d7b0e129860ed31b803d00a5558a79e29ca6509c027a3b0212ca93f0fff32b5528a791c41a0138cac54d49496ae8deb725078083e61df30a59f7e5e827d0c56f4eed2aba9d8e66f938ba1cd90c25da6322dd1fd95df541b148ba1fb645e31e486ecd0c41f8576c64088be2d8a374bc1ce807827fd7f0f80701520796fc10a1b63b53e1df4daa23be2eb336b2549e999462f5d90cd788cfd453062de28073ddf2583b44797b135dbe028fe4ad956f72f9b0b52d0974c828b6e9f7656f735118e5204d54f921227cbece1ae30f2bff036b4d460563bc3b23d1131cf5c20983be7b3cc6d9fe66753b064a06b878aab2b657f34acb54deb8cb6acd44625bd2c23cbdebd866eb86c0fcee40911ca8a9603891ea4be3d47fca90ecefae60e63c131ee9f3e305cd0801e0804c8944789927dc060ebd54b5ddf2b9d44e6d8d7cd9c0b001cc4b9d7ca0f7c576c80e04bd258c29fdd5a8944d08704a475b9b389a0f80175af5850c48b5312811458ce6b91ca32d6cfe591513b4e62e362a21d6f8f153e8a50a7af3b74aced7eeba731946e35ef6fc91677fbbdcd3649ce4ae29070ec074c6cb993d6b89f5c8565bc0819d8f2fe320f7bd6962887ee70ed2a932dcb6938b393466c294760a37a9a43f7e6270d2414898032b6d093aabc43c26cd23498247e1f9fe3319b1cce9afcac28813cbef6fa4d6b30eecaa7a834a1d4dfe4f90d1b81e0601cce64e331650353d77ec3412b4c4b90d85e2e73f0f88f18201b06f436769e1f6ff807900906ef5cca862fba8e56511fe210030f16acc74e5f78dd3f098961e09007f86ff6f910a33579d04593f047dc273cf60c8280699ea08722c20175af5850c48b5312811458ce6b91ca32d6cfe591513b4e62e362a21d6f8f153e8a50a7af3b74aced7eeba731946e35ef6fc91677fbbdcd3649ce4ae29070ec074c6cb993d6b89f5c8565bc0819d8f2fe320f7bd6962887ee70ed2a932dcb6938b393466c294760a37a9a43f7e6270d2414898032b6d093aabc43c26cd23498247e1f9fe3319b1cce9afcac28813cbef6fa4d6b30eecaa7a834a1d4dfe4f90d1b81e0601cce64e331650353d77ec3412b4c4b90d85e2e73f0f88f18201b06f436769e1f6ff807900906ef5cca862fba8e56511fe210030f16acc74e5f78dd3f098961e09007f86ff6f910a33579d04593f047dc273cf60c8280699ea08722c23fa261b1844f304c485490d5e999b2633afba4d7b5b76ec065c640ecb11d4f893335039be7eedfac2e3ac623e673589a8852baecd7723f5e37deadf71fb908e209ec7545c681b4ca67af2a046384bb7f75cdbe6ccac2a6b49ee44b25649d8aaf033c256ccd403b3d21c17f01cc6e39830b7113c6baad9d63f5d127d0ca8c1ce918e807a31e61baec745b3680a23a69b641364929583aeb16689e9bcadb56009c0276de9a6932a003245ef15aef58d798be95c6f3cac18ae207855e797110dad22a541dc9aede8050ad6648812a33cfccec8163996bbfab69265fbcf2ef361c4e077596ab5d4f14c7435038a9742be3e6b737f77900011bd2975eecabf38cafdd288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc73502405abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b33335039be7eedfac2e3ac623e673589a8852baecd7723f5e37deadf71fb908e23fa261b1844f304c485490d5e999b2633afba4d7b5b76ec065c640ecb11d4f89033c256ccd403b3d21c17f01cc6e39830b7113c6baad9d63f5d127d0ca8c1ce909ec7545c681b4ca67af2a046384bb7f75cdbe6ccac2a6b49ee44b25649d8aaf3335039be7eedfac2e3ac623e673589a8852baecd7723f5e37deadf71fb908e23fa261b1844f304c485490d5e999b2633afba4d7b5b76ec065c640ecb11d4f8900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100606f0f394cdb14e52d7e42b8d96317ce5d15da7a97fa290fdf4d0f4fa8ecb010b4c57d90ebf79cc886a546aec72d1b2a25fedb5277408d0b54243bb1738f5d0f4c8401c7c910b2c903a54aa6696bf81c711454aa2412d751fb7e16b3d62cbe3344a123f27092e2d7f8b16c4f71b37c752d8a45c2d74905db8bbf4d332fdd4f1ebc29f59913939e26bcce6f4868bc687517ae32232098cca9420a7b6a45b98d18a3a053ac2467cc92e0baae90658c88f256b0fa5b75d7ad156df5d27f56ceca19b1662db41eb4a528ec1ce6e2f07605d386a1a4048778f3c10576f104620c6739d62957e6dc24551eaa9c8ad69da4dd875b47dce68745b99daee1a75059b8401eafef175bf83a01dcf5958f2ef414d820497704be3d015540d86135169516b615d5d7d7202bf182a4f50d9af66aefd17a65d13e61f63aeaab0fa365d258f0ff26b80ce967fee341e3391bd64a45ace7c77ac4c8798ab4b52049c799cc26cf4e1979eb0536388502a941649b177a1110a426583fd01dd7f708ccc105f6be339e1a9815ccb79a44f0e2a5d81401f901ac7b42f107cc4ef6eef6f6ba7f032b638334d561bbd1fce4d27b01f4f6aa82ca6a6c235ed7e6d7dc213dd1c5524287b44a1cb7b824a9db42173a460cba12f8fcb678332e85fd484a5154bb1c553851fdb03e954d0648466e5013db0256ae3219fd425d1ff3b2e9255d1b24f54c042217301b009713025f921af2801e957db4be3a60f481b8223f549057bb8176060986c22d1c4cd84325506112a2c5128ffe7455234742d0e2465182a7ebbbf66f8a2e082994104ae8e0b8c6b498ef4a340e1f5dca7130cbfc365dfcbac8513f99314e91166befb5171f47394b6710b5cbf1e0a257d568300d169b1ede64dfad66ceb1700fe451768c639be186fcac7304469cd48d622907d128ea9cda620376fdf688d2301bae89739c641e7903538cfbb9632b94e46ff438240e7ebecb2d760209772f0f759750bdf20b67a2ef5e3f15611026a0a4342b0c7f9bf4aabce065f5d0ac19308a68af420df4985d10a1c0ea9eefd981a264d0fccd5d26ee7050870a2f53e80d4bf493b5ba39062eacd73b6ae550c100ee6bdb353112abbc833110cd135c7c32b40b6c4a45c6f9d15328c4951aaf3f21582d20d41be66fdca9ffdc32eca3852994104ae8e0b8c6b498ef4a340e1f5dca7130cbfc365dfcbac8513f99314e91166befb5171f47394b6710b5cbf1e0a257d568300d169b1ede64dfad66ceb1700fe451768c639be186fcac7304469cd48d622907d128ea9cda620376fdf688d2301bae89739c641e7903538cfbb9632b94e46ff438240e7ebecb2d760209772f0f759750bdf20b67a2ef5e3f15611026a0a4342b0c7f9bf4aabce065f5d0ac19308a68af420df4985d10a1c0ea9eefd981a264d0fccd5d26ee7050870a2f53e80d4bf493b5ba39062eacd73b6ae550c100ee6bdb353112abbc833110cd135c7c32b40b6c4a45c6f9d15328c4951aaf3f21582d20d41be66fdca9ffdc32eca38522e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d570ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b03dae1cefa8b3e8651b5641fb8f11cb8a8245710ca4daeeb318975e771a9c6270944c8b525cef9aeb6196bfeccb204f8c0abd5e804a7bd874b22c345a0839749374a86518aad0cff9744827bab36a25272529f9a68b28b9c99ecea69bdbe3fe42179eb6829f66ce011798143af6163c3437fa534bd33624c60dcfeade441f79311fa42639b21ecaf1ed4e983217b62a6709fcf49a5422b064a6309c8e2c557662260f666d094d1a6403be2dc098fb8f586eb4ad8166745ba69d9a8268d67ce951663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac53a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f21620ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b22e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d570944c8b525cef9aeb6196bfeccb204f8c0abd5e804a7bd874b22c345a083974903dae1cefa8b3e8651b5641fb8f11cb8a8245710ca4daeeb318975e771a9c6270ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b22e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d57000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001220957af418cb9b6e475a0ffdf66127f6f7911b18ee0dbb53e69156b418700df3f0c640b60bcce9d9dacf3d347d8344c654e319fa4a5e454d031381ee7b55c67321fcde986b442860587e2eeca80a37cc409a3d4a7eef0ebae5b22c27156f97d08ebe50569cc1afc61cb59db2e80de17f5c38e61e266aa49d9a67c2c8393fa1d20aa93b49f4fbf793afd3a30019152584d4d9cce426dcd7c711cc712b3a2cf1d3485262a49bcd62b92a2cfca12984b17cb223b4cc92d409e4c585a91c8ec3f6421b5ca57e91b682d9b704ded7cb7fe9d2abf7b5144a389cd6d7f693aa8dfa4aa21109883bc7238c50da8f04cce374ac532a8091abd7fc08fbb493c9cfd6fbdf13bc17e7ade4f52988d3b2955268cc07449e47cbb0a9fc206fb74c38c22a5ed3b04d08ec323b93a949624451f0e5f9aadc3d62fb0e1f95686a45d57d01b4c84d9208255d86aa1c5664c3eae47414f0c280a23ad4757763c9dff03f72f42a0301d2b6ce68a650afebc294a04a72c5544596a8df40283efdd91d56f16d60aaa866108bb90ba84973052a3060b5705820b465eb85dfb4b7a4a690283fbd0cb2cc63106b1e6ce04fff970baa1c1b3a6f9c0d0666758e85e5f8f8b991753137a86519b38750511b3989a96394e9e0235e7cbdc616433ac9f6a3c57089c1fcc35ec0c010aa26faf70b587195d607880d11954be91bb16a057b29651b480558cb1aa40d32fce2bec747aae841a7824c4e3eb21758a4dfcdaad60acf70a3023e552f0bf1f3e196273ae7fee472292b95d36e0aff3b57be60f455e1ed5169f02b797646db81b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac24fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a60215507121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a7235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec21ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f30c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c80f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f046391b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac24fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a60215507121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a7235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec21ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f30c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c80f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f04639299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f10022149786017ebe61cd3033d4fb7f00cfc465a497b1464343a1a46eb7f2ed9b5de037ecb8b7278ef89d6864ef9dbf9021f38c404e2dd31c721606d7a5bc8011efd52368a8d9f0df500d29c787f59bee3d31a7284c876cd8b378363c8b9485c4beaf0168feb3ec5487731f5a78c05dbf2354012ffa5efe36b383af6c5d5787f595aa14840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d3126132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c83617f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a66373017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f10022299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c37ecb8b7278ef89d6864ef9dbf9021f38c404e2dd31c721606d7a5bc8011efd5149786017ebe61cd3033d4fb7f00cfc465a497b1464343a1a46eb7f2ed9b5de009e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f10022299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010f9a88c30f1b87df9ac76e59de024fe9ab35728181948abf2a96dd729623d06627d9a11a1346b0c8207d8123e198121c7449ea9681d843e6f151d0dc93d2ff90045708edd29a5a59c410ae9d02ade76927c1218e07689725221d9a8edcde6e6c04fb6f4b9d1c6139dbaa8cb0683ae711f1613224da9c7c589efbb85ed84bdcdb0fd85d5b0459d2d8364dc03d9164d30fa26ceae5868285d65f012a8b7de34df922b9055b4171a7c84688b08b47e7a480cb1cb24ba676788b4f0aa5d5f477a16931787fd0aef86e99bc082cf8082a63f676d63f7ce65c473eea3aeac4a753ad332a329c0dd0152b92baf13e28276b29d1db4501433e788ddec920e166ec9ffee4170e682cadc511fd3763d6eacbba3e92451589ce14b2f4c824d13fe538f54e032c66a37920ccb3e03e553d61f2dae9e9ae0d84fcf57f2ac35763bb340a0640101c60709e89b8ec0d280a52ef346063d1226225d1daf9e9af56513f094d40286f1e498a3bf3b4a5c65aca015a4f18ac9dd3bf8a126c13c2827acc82c1214d240d16f2d773b487a63c52e4f38268d9e4c7393d45cea338ebb9fe10d3f98e26fca0387aa014d50f83870ac2d98843a1e74fae290a110fede75636b7abd7b78c1b2d26f27d0ec5157f7ef8c87d8c2796d3cdf84cd7f45ff9a8b26164f57f8390c3f62d42a4b61cb41c0382fcfee97dffb49fc4565854b50a17deb5a9f9151f40ab16202b428771f5a59cfa079644dffeb7d9b92dc35b61056335420d1b6fd3ca53072a08f7ae479289bb3daddc32ba543552ea3720348a33f3af3c3764b32ba296a100000000000000a03bc351b1c4c3feb76cf38577f895a78cf981d374ef830e76a2aeacd8fe2e5df0325d2bff4c93e2e124c37a1cfcab013567656e570cff2674553e6ef4e0b5d6c61f9147954d57a6aed72b58b2cdba48c20432722dd0c7cc87f080f23dbefd72b1098b6a2d7ead0c312771f4b457fa2ec159bcf80b1d6cbb2b95f19d0621be60af3868f1fc4154ada4d89d01031f989ca739845260c59a5d76fa0a76fd12a885f613dddc3bc414dca0d05c78f14722bcf01b1794b46a71a8244d426d21300fe75a2905530de72e0fcf19466e4164a45f14cf5e3fd54aa79e63273aec686f437f1800175eb4e4d6a310e556df25c110186e8e912a63a38ce9505f37a2db717854481a8635031bf9ee44576390ac071f7672c1372b0801ea3399ec23f1c239d849a9154e659d10cb67735d98081af522b78d9193f816089a45029aa55f3c5070dec02ac29b3a2caec32c74dbad1a058829f8569919081c9336e9cdc471d37697a3d03e5a16889f55efb389c1a04d202c4d8b299cea2cdaee49e551db4e5d6a242f912ae80ca176cc7259f41b1d4a89cf3ca853f4a285f298b1b0b08fecb4efe5d24b1480bfb4177d46f36473f582664bbf3ded3bcdefbd5f096425d09f0ebe3943372bbd640075b27bddfe2306e543517bbf58e7b88df6319d7c030f0c3d8d49851e3d5f4dc256523702007a4681e262fbc4274e4aa7014fe3531c90b3f353724e43227a46d7526d8822a0c80982e3c39c2eacfa22f2063459c0c64a2431e9b39a4f28d8c0eef6e44ce7147cd48993a9db894e097469267715e47a641c92706499d91ddbdde635dd1d29298e4fecd5d5ec057b71b6435eb0e5073accddeee9fa79890b40d3dc962795b6d50efd7a4fde8b7de27db3f58f83a2ac4ba5b154f6c159d7361ebc55c9018a70848bbf7696b464b46ba0e4bffc5ed2f9aec0a09cdaaa66523ffc2552798ae1768f0d46ee8e010c9a74300e50a260a810d98fb73a7d8162f008956c6d6a2135cac6b4db4d3843dfca4b9a151efff7be3f516e5280cacec7982087455561e37d1537e87219ed7097b912555519ee3cc97435043cc315ed0bc8227a46d7526d8822a0c80982e3c39c2eacfa22f2063459c0c64a2431e9b39a4f28d8c0eef6e44ce7147cd48993a9db894e097469267715e47a641c92706499d91ddbdde635dd1d29298e4fecd5d5ec057b71b6435eb0e5073accddeee9fa79890b40d3dc962795b6d50efd7a4fde8b7de27db3f58f83a2ac4ba5b154f6c159d724cd3d73bcec04a086d943b11a50b9e5bf4c4ea3fd1411ae37b301cbf711d17b36a44512406db600148f1eb001ed71379753d51a901da1b816ac90e7d853b8f538fefc2de7e30a7e68bc498de164b442d2fafce6b4f37068349383204aba4a3f301db594e421a86195e103d9444fc340ad3b064e428e1066eb0c3d10960189220c894be0097594896891e5bfdba9363e21758f49fb9073f00b9f3c1d2dc734ab2a0e1a294738127745d3e2333cd3c31edd98b3eab8eb8e12b09c64869385ade13d5f4dc256523702007a4681e262fbc4274e4aa7014fe3531c90b3f353724e432bbd640075b27bddfe2306e543517bbf58e7b88df6319d7c030f0c3d8d49851e0837e1a9b0b428e63400481beaee9e5612ba535afb2ddee2612f0dbd343c23fe3372ebdfbea8ce399b737a865eacee23a5001068cdbdb38d21720e3ebe8cbbaf290df54e88e32cef331ddbd06752ed212279984ccd4574beffd4161812cddafd000ebc74432185f0cb7f7196be618a623b75d1ec20ef12f4869e792bcdedf8631dd6ba8a32a474f2cbb5161a007d059303a22ab12905e063b00298e0eda34a312a08fa239afb09c2a988c51112da46edfdfbe0294838a0e483d9a8a5a2e47928098b6a2d7ead0c312771f4b457fa2ec159bcf80b1d6cbb2b95f19d0621be60af1f9147954d57a6aed72b58b2cdba48c20432722dd0c7cc87f080f23dbefd72b13ffc2552798ae1768f0d46ee8e010c9a74300e50a260a810d98fb73a7d8162f0361ebc55c9018a70848bbf7696b464b46ba0e4bffc5ed2f9aec0a09cdaaa665208956c6d6a2135cac6b4db4d3843dfca4b9a151efff7be3f516e5280cacec7982087455561e37d1537e87219ed7097b912555519ee3cc97435043cc315ed0bc8361ebc55c9018a70848bbf7696b464b46ba0e4bffc5ed2f9aec0a09cdaaa66523ffc2552798ae1768f0d46ee8e010c9a74300e50a260a810d98fb73a7d8162f008956c6d6a2135cac6b4db4d3843dfca4b9a151efff7be3f516e5280cacec7982087455561e37d1537e87219ed7097b912555519ee3cc97435043cc315ed0bc82c473fd576be448a6add5680c72779f6ff12d6c95f585f21c0621343d3749ba03520541c90fcdf95d823782eb41b1dda87da802d96d0150c116bde29f26a8e9e2aad12c86d92187812490ac1ef04f4b4d3988f6ef5f60b3e58140d9f036f4b9d3e6f9efa5e729a67ec5442a536af82ceac9d73c6018b7590c78bb291dd4c87c40837e1a9b0b428e63400481beaee9e5612ba535afb2ddee2612f0dbd343c23fe3372ebdfbea8ce399b737a865eacee23a5001068cdbdb38d21720e3ebe8cbbaf290df54e88e32cef331ddbd06752ed212279984ccd4574beffd4161812cddafd000ebc74432185f0cb7f7196be618a623b75d1ec20ef12f4869e792bcdedf8633bc351b1c4c3feb76cf38577f895a78cf981d374ef830e76a2aeacd8fe2e5df0325d2bff4c93e2e124c37a1cfcab013567656e570cff2674553e6ef4e0b5d6c61f9147954d57a6aed72b58b2cdba48c20432722dd0c7cc87f080f23dbefd72b1098b6a2d7ead0c312771f4b457fa2ec159bcf80b1d6cbb2b95f19d0621be60af183622740a517b6d712ccc4180b56fccb474e54f2117b6501ddac1c9ee26e4c925ec30431abaf7e692098d5d7df2f3df203516b857d28f908ecdc54fcda0726b02cb2bc0a45fbdad7a39c64e537809c3b416fae89a0d8a1c582b2a8ab41438562651860227a4f53284638718d23c6dbfa9d86f505426fd972e4764b92ca79b0a1480bfb4177d46f36473f582664bbf3ded3bcdefbd5f096425d09f0ebe3943372ae80ca176cc7259f41b1d4a89cf3ca853f4a285f298b1b0b08fecb4efe5d24b2bbd640075b27bddfe2306e543517bbf58e7b88df6319d7c030f0c3d8d49851e3d5f4dc256523702007a4681e262fbc4274e4aa7014fe3531c90b3f353724e431540891272c824fb1e2c56ee54b95bf183eb29672173cfd84c803e1d7d20b17d038e1b5339850e19e2fc7911af89d082259638b3aae10185dcd6bb52e07137e7112929cb51eb80593e6c023a95db602854a404133b0f58e87eaf657b0856be6d17f387f77a193286c0314b2c8fd9175b094b6625b3252ecb07c329c8d86514f313dddc3bc414dca0d05c78f14722bcf01b1794b46a71a8244d426d21300fe75a3868f1fc4154ada4d89d01031f989ca739845260c59a5d76fa0a76fd12a885f62905530de72e0fcf19466e4164a45f14cf5e3fd54aa79e63273aec686f437f1800175eb4e4d6a310e556df25c110186e8e912a63a38ce9505f37a2db717854481d647b97770c00c07d845646c2c84adc20b603a4b421dc328d587bbabad02ddc0d48af011e998a83d42ba66cce6232af248518aa83a6713fc4956fe85a83960a0b40d3dc962795b6d50efd7a4fde8b7de27db3f58f83a2ac4ba5b154f6c159d71ddbdde635dd1d29298e4fecd5d5ec057b71b6435eb0e5073accddeee9fa798915988938a63e304c86c4701d0de48f1f626cc25520a23a339a2f011f44fb11442af302f56af9429b0a0c4a4489b0dfa9728f61ef279f74796adf511fea96138815305178ca22644fb423c8b6fd96feb152839780e9a8f4460e06449c11f3afd013ec604a01e24e904a7984b0281d78d20b6bd2b8048b936d786c4aa7cec82390154e659d10cb67735d98081af522b78d9193f816089a45029aa55f3c5070dec01a8635031bf9ee44576390ac071f7672c1372b0801ea3399ec23f1c239d849a92ac29b3a2caec32c74dbad1a058829f8569919081c9336e9cdc471d37697a3d03e5a16889f55efb389c1a04d202c4d8b299cea2cdaee49e551db4e5d6a242f912a08fa239afb09c2a988c51112da46edfdfbe0294838a0e483d9a8a5a2e479281dd6ba8a32a474f2cbb5161a007d059303a22ab12905e063b00298e0eda34a31098b6a2d7ead0c312771f4b457fa2ec159bcf80b1d6cbb2b95f19d0621be60af1f9147954d57a6aed72b58b2cdba48c20432722dd0c7cc87f080f23dbefd72b10adb5dec1e545be6efa40ec41f15f6315fc9b97c723490e6062511ed5810a971284cd649ef540f6801ed1879ea71e0ebb2eb820e40ad67524e74949d03be085329e92d96ecea737ff89a586d7b598d4906907c0c49287dd516821ec374443ced3f33842bdf1a3f600602f4f9aa5aea3a79a58728ae5902fa091da16d6c77967415988938a63e304c86c4701d0de48f1f626cc25520a23a339a2f011f44fb11442af302f56af9429b0a0c4a4489b0dfa9728f61ef279f74796adf511fea96138815305178ca22644fb423c8b6fd96feb152839780e9a8f4460e06449c11f3afd013ec604a01e24e904a7984b0281d78d20b6bd2b8048b936d786c4aa7cec82390223cb81ffbad18dacc73b19520996231a0b3d97c82370f62acc2aae30d0f10ea1337ee10d212d48ba9b06ec950692448ca8eb5e999faff07e0cb2f4532cbc25813ec604a01e24e904a7984b0281d78d20b6bd2b8048b936d786c4aa7cec8239015305178ca22644fb423c8b6fd96feb152839780e9a8f4460e06449c11f3afd0038e1b5339850e19e2fc7911af89d082259638b3aae10185dcd6bb52e07137e71540891272c824fb1e2c56ee54b95bf183eb29672173cfd84c803e1d7d20b17d112929cb51eb80593e6c023a95db602854a404133b0f58e87eaf657b0856be6d17f387f77a193286c0314b2c8fd9175b094b6625b3252ecb07c329c8d86514f31337ee10d212d48ba9b06ec950692448ca8eb5e999faff07e0cb2f4532cbc258223cb81ffbad18dacc73b19520996231a0b3d97c82370f62acc2aae30d0f10ea13ec604a01e24e904a7984b0281d78d20b6bd2b8048b936d786c4aa7cec8239015305178ca22644fb423c8b6fd96feb152839780e9a8f4460e06449c11f3afd03868f1fc4154ada4d89d01031f989ca739845260c59a5d76fa0a76fd12a885f613dddc3bc414dca0d05c78f14722bcf01b1794b46a71a8244d426d21300fe75a2905530de72e0fcf19466e4164a45f14cf5e3fd54aa79e63273aec686f437f1800175eb4e4d6a310e556df25c110186e8e912a63a38ce9505f37a2db71785448384ec62a428d3b92c23f95ed860ecd81f89b88c6f437ef76055ace077faf2c3824e2c7cef01cf1a6438c74d27e45fb4d9e21c8c8a3e6fc4363ea64ef922ae27217f387f77a193286c0314b2c8fd9175b094b6625b3252ecb07c329c8d86514f3112929cb51eb80593e6c023a95db602854a404133b0f58e87eaf657b0856be6d12f040c501ba43b57ea6f6eb3d2e877608e34cd16194c358aa96a6f6f3e297130f67e159915255f945b2e7ee050b70f915abcb465ab4202542c64ab1f528f09507d0e40e121f1f4e8986f7a480f5a0b08021963f96fe62fbe20ae41eda1286ec214bcdb4b9e59391751655c2a4bed6d2ddcdd3f9573624b7a467ab2506a94c741337ee10d212d48ba9b06ec950692448ca8eb5e999faff07e0cb2f4532cbc258223cb81ffbad18dacc73b19520996231a0b3d97c82370f62acc2aae30d0f10ea13ec604a01e24e904a7984b0281d78d20b6bd2b8048b936d786c4aa7cec8239015305178ca22644fb423c8b6fd96feb152839780e9a8f4460e06449c11f3afd00f67e159915255f945b2e7ee050b70f915abcb465ab4202542c64ab1f528f09512f040c501ba43b57ea6f6eb3d2e877608e34cd16194c358aa96a6f6f3e2971307d0e40e121f1f4e8986f7a480f5a0b08021963f96fe62fbe20ae41eda1286ec214bcdb4b9e59391751655c2a4bed6d2ddcdd3f9573624b7a467ab2506a94c74223cb81ffbad18dacc73b19520996231a0b3d97c82370f62acc2aae30d0f10ea1337ee10d212d48ba9b06ec950692448ca8eb5e999faff07e0cb2f4532cbc25813ec604a01e24e904a7984b0281d78d20b6bd2b8048b936d786c4aa7cec8239015305178ca22644fb423c8b6fd96feb152839780e9a8f4460e06449c11f3afd00837e1a9b0b428e63400481beaee9e5612ba535afb2ddee2612f0dbd343c23fe3372ebdfbea8ce399b737a865eacee23a5001068cdbdb38d21720e3ebe8cbbaf290df54e88e32cef331ddbd06752ed212279984ccd4574beffd4161812cddafd000ebc74432185f0cb7f7196be618a623b75d1ec20ef12f4869e792bcdedf86328d8c0eef6e44ce7147cd48993a9db894e097469267715e47a641c92706499d9227a46d7526d8822a0c80982e3c39c2eacfa22f2063459c0c64a2431e9b39a4f1ddbdde635dd1d29298e4fecd5d5ec057b71b6435eb0e5073accddeee9fa79890b40d3dc962795b6d50efd7a4fde8b7de27db3f58f83a2ac4ba5b154f6c159d73421652f80dfa1c471acc003a4e13536ab5fd0ea76b20c092e8986c28ff83b721f86ab10cb0b24dad0ee3be3217cc79d764fcaa83178cd9076b5b3fbf66834f4214bcdb4b9e59391751655c2a4bed6d2ddcdd3f9573624b7a467ab2506a94c7407d0e40e121f1f4e8986f7a480f5a0b08021963f96fe62fbe20ae41eda1286ec319abe9b685d329b315c1c7e71a7b703cf7f2b1517c6ca4a2a7460d30423cc56260fc33950306a005105c0d9bc887de9f26676d2a9f45f06b26f6356e74ef0621dbeb5b85635924604eced52f3004f0ebf7f13424a460dc509ac44ae5efde0c70b5dfc0a75cf2099f9b0601432b428749e7056f6a3ee79ee7cc64a9581bdf2992a08fa239afb09c2a988c51112da46edfdfbe0294838a0e483d9a8a5a2e479281dd6ba8a32a474f2cbb5161a007d059303a22ab12905e063b00298e0eda34a31098b6a2d7ead0c312771f4b457fa2ec159bcf80b1d6cbb2b95f19d0621be60af1f9147954d57a6aed72b58b2cdba48c20432722dd0c7cc87f080f23dbefd72b100000000000000c800000000000000390000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e00000000000000060000000000000001000000000000000000000000000000205a8a6d6822d757b39053f2d696b440911b98fb855bd584870549e7ded4c8f784000000000000000100000000000000010000000000000020ea132e6ad465bc3d576d24943e8eb110cbbe9e0822e43ab2b485cff78cfe7bbf0000000000000001000000000000000100000000000000206402373ddcb71c9fa2bfe1d2d9097bfb1e67c3a16c2603e6850eedece20f804700000000000000010000000000000000000000000000002093496aa9b95cdfb66da9c0d5bc5df817484a2a333e9349baecc93bd74a2ca4730000000000000001000000000000000000000000000000209fbca920ee0c87a956f99c4f1362a800f24be48892fb636d69c31e2a28f6ac89000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000003900000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000000000000000000020b9754dbc7d8d3eefeff2097a536bf8392001674a00a2100b0f5362195773d33800000000000000010000000000000001000000000000002087acc052c4befcbc863390a53bc9fe76ddf39509151f111da33e34eefa9c20bb000000000000000100000000000000010000000000000020ec80243d3ec903cb562c8eacb603f6c834430b23f15d562812829d19ab4c355c0000000000000001000000000000000000000000000000200c0b006e9ce5ab8dee54461051bb96c286fd71b34dc6edc2cc81ccb3100d316500000000000000010000000000000000000000000000002009d96f34c0d0d0c579558695e2590b6b8a00dc82f66b0ed035313048e74ae7cb000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000039000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000000000000000000201434b750fa4c79a6abbb555e49c6de275c5917f1a7745ce0f094cc6f45451d50000000000000000100000000000000010000000000000020e25b16e92ce565166fe90f1c3edb66f7f7a147fe1eb50d049a44d69786c76df90000000000000001000000000000000100000000000000208e2274770ab1400a8d4a14228b5b83fbbc2f8b567f0d93bae220f05170b20030000000000000000100000000000000000000000000000020a724c8ade8149e1cc611772680cb6d18385ad3f0e4e5bb60e4780827cedd136c0000000000000001000000000000000000000000000000209e4aa536330b2d7a31d018a0c66389dc79b3652f4ba9a731d52185c1d2764761000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000039000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020deed836067856071ea7a63330beedf7de96c65e2598acaca714fc1e308998f90000000000000000100000000000000010000000000000020f33d0621a9be5d0bc10fb9ba479d2c92b9442af4ac19c6bc422738323447ccbf0000000000000001000000000000000100000000000000204b85a596b27c62a80e804a5f440e38fd1798e192f2e4faf6c9d937e152644b4f000000000000000100000000000000000000000000000020488cdfd2909dddf32aafba620adfd844cf7f0e6eae4371d0ed616315e9b3d1e900000000000000010000000000000000000000000000002068e96971008bee2f90df118bffada99c074a0d2c49bfc1b99915b2dcf51048a20000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000003900000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000000000000000000202c3deceeaa53a4fd7cb0576d0c27372976b9f6f95317d05b21ccc995dfa7f60500000000000000010000000000000001000000000000002004eac4235e209d96bd17c310b61b8b64f2de73bff9eedc68f3d5329676b3529100000000000000010000000000000001000000000000002090d7b0bcec2a4257083160dd8ffbec8f4d56bdf900f2859e017373f837e3c55e0000000000000001000000000000000000000000000000200aeeef018d0928774997734b759241fff2f2f118735c3cc567f475600c93c6450000000000000001000000000000000000000000000000209c3cc5f2e03bbb6fbb6a00377debdbb0ff07e93db8e65b607e9ce577d2bff4060000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000260000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e000000000000000600000000000000010000000000000001000000000000002002264f66321999533318a66b630c922ed2c8afd79f75ad3ad7e2546988d2c229000000000000000100000000000000000000000000000020ce6cbec44c6750b87c769f2196e739261249641951d381617e8405bbf0202556000000000000000100000000000000000000000000000020e8b9aa258428d11be94220c2dd6dc9be6f7dfbf6c563495f34ac19fe54c7a02b000000000000000100000000000000010000000000000020acd5d62b97e6c33a02d4331e361fc284fac3d4751616f3f316c28ea08f63c5d000000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002600000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000100000000000000205e9bb0baae243491c7eb032dee99b7d36c82ec05b60e64eddd17c8be11cd6d5600000000000000010000000000000000000000000000002060fdc81936cb56fefc4ae765ed50a0407b33f19eff3eee870f07317cdb2ef330000000000000000100000000000000000000000000000020ed1cdc4693f53dc4db6ac19967a9854c6557cdba9dd1ef73aabe5680048340b900000000000000010000000000000001000000000000002039c719fa3f6fd86de45cdcbe116bc929d735098bfd57ba95c955727b3f86087f0000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000026000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000010000000000000020dc8aa5c3c55a97bdb7bd81ca0c78663eb6c0009ca983ed54c552867d176e3004000000000000000100000000000000000000000000000020a09e4a0cff4a2719030a0f657ce42c12a2cd4cc27b8cdfd21d1cbcf868b7190b00000000000000010000000000000000000000000000002057270586231d0130eb017de9b965c71be11d39fda49cb46ecc4fc4cf2baff38a000000000000000100000000000000010000000000000020a814a34f76af1733811481d105364da0ad5c6889b20ac62ec695d95bad6ccfa40000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000026000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000010000000000000020d9d44b09d08b8219649fee03bc1d8d6f144f9d725dc46d7d1cd32c7712d6cd30000000000000000100000000000000000000000000000020a9887501139d04ce4e8fa79b998c30f58c8d5ba78c911d4db7001a5436dc18fd0000000000000001000000000000000000000000000000208acf7b66bc86786435ec6708d199d5b065b2e43f560fdf2547c4cd28ea0352ab000000000000000100000000000000010000000000000020609f06fb0f917dd5aff48faaa7c9a26932b0164e4ceb2fcb49512a7126aed0240000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002600000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000010000000000000020884f313cc7a8412ea0712b8a5714e7da07720e79a0b4fd720bc61b0bf836cec400000000000000010000000000000000000000000000002032ce4870dfa2fb4284adb38aa43f49a3a3c28255497b93a85731134cd0486a2d000000000000000100000000000000000000000000000020d8d5941d890c32e24cc840a8ee7a932a739bad1dbbbe6985a9d3ea1a07252ddc000000000000000100000000000000010000000000000020581702be02dcae0d01501fe971bb01119d074a9fa43014b6ad4081e583d632e900000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000230000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000000000000000000020a9d3552f35a3b146b916ecafa15b906c5add1ec933ca9cba051f2f922830d2ae000000000000000100000000000000000000000000000020a1cf4fcf6b4c5272378721d94cae5230337db475b12639f089ecd14272235296000000000000000100000000000000010000000000000020bc7a78bb3c611e1b5f11dcbff023f3a085ed0bf8ecd7f9ece0c033dcabf6b6fc000000000000000100000000000000010000000000000020acd5d62b97e6c33a02d4331e361fc284fac3d4751616f3f316c28ea08f63c5d000000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002300000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000000000000000000020d546ef1f0e27c625cd1a42a9bd0e822dd1f8e2799bc24069109b0793320bbced0000000000000001000000000000000000000000000000207055df64fb4b8fa8d3782b1a47cb27ffdd974e7ce64f3d2e86c91905d32cf2e5000000000000000100000000000000010000000000000020b956db54d172694c1630b069cbb2710ecdaacf116a26dcabdef5e48e9f4e783c00000000000000010000000000000001000000000000002039c719fa3f6fd86de45cdcbe116bc929d735098bfd57ba95c955727b3f86087f0000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000023000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000000000000000000209200bfaa351e2967f2fc54764d972b7f8e00847d3f6e6fad04c1499eaaafa40d000000000000000100000000000000000000000000000020985c4188d8e7254f787ee9c79ad36055d80ccf27b4944a8eabbd5fe550b5c33500000000000000010000000000000001000000000000002087e4224ac05bf39143e5b2b8f31e6ff5c9879040db1e5c52a6074d35b63b457f000000000000000100000000000000010000000000000020a814a34f76af1733811481d105364da0ad5c6889b20ac62ec695d95bad6ccfa40000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000023000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f32938000000000000000600000000000000010000000000000000000000000000002072832eabee4d2394be19da019859394a2dece85dacf6dcf800f646033b065c04000000000000000100000000000000000000000000000020ca0664d700126a9fe07df61ee5ef4256a47f6538c636d54d6fa2789f4f9ed53d0000000000000001000000000000000100000000000000200998593abc6ae74ad4db1e3faee5a7426d83e0283ebfbba81490532b53fb3c67000000000000000100000000000000010000000000000020609f06fb0f917dd5aff48faaa7c9a26932b0164e4ceb2fcb49512a7126aed0240000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002300000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000000000000000000020c4cf0884a911747c8bdab3616e880562f218bb45ebca6b9b3466ee45050879e900000000000000010000000000000000000000000000002070b761bbe1a12b3e3924a1a4715dfefdbd10c1f0e149a866baff3973cb6aeffa000000000000000100000000000000010000000000000020d51dbff523abfb61534f3ecb97144bf53b03b4e9ba33067030fe9ec8101607cb000000000000000100000000000000010000000000000020581702be02dcae0d01501fe971bb01119d074a9fa43014b6ad4081e583d632e900000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000010000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000000000000000000020767a689909871821a06a373e9b587cc568cea87792317f5b3abb5ddd9ca6c359000000000000000100000000000000010000000000000020634594a54a3ecf1f4589730560dd9d0b8bc9e1561285bbfee3748d98ea0da35f0000000000000001000000000000000100000000000000209976a44019a2cc25e24d8e0128101ba53e738bdd0bad7d83caec1a8da22b1500000000000000000100000000000000010000000000000020407e1d016b2156134625c6c0acace3fca412163392f1c4920830c79723de997b000000000000000100000000000000010000000000000020659b6b070f44812ca2ffc215c67485587dd0d144e05eb3647148b4f5ca7360120000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000000100000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000000000000000000020756e52a4d940aed4b19471722db1b0f36cb3a58e6645651ae95985d0859986fe000000000000000100000000000000010000000000000020185f7f0d727176797003911a517f775becf44208e97882249031521efd13e60200000000000000010000000000000001000000000000002061c5b4eb1c0a7e74093fb022c5f5951fb2c504423b1f2e8e1f5cb5c30c6896090000000000000001000000000000000100000000000000204bc065f3dd3e3b30a0dac92ed91cf22f8259a480aa87d1c980b53b9a86e52a01000000000000000100000000000000010000000000000020dbce0776e37eb7c2a9e60b3254ce5ea6bed0db83c8c2e6b120494c0d9ed2a76b000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f0000000000000001000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000000000000000000206a21cf8dad19b95d6976b80a0ea46f71e5acaeb0d7ce0c952c612cb0e1b39b50000000000000000100000000000000010000000000000020038abde83aa667d0593b65b0be784caf2a567a1f56f609be7c79d4a4eca6556000000000000000010000000000000001000000000000002098c6a10d6e69554c9a66612e611bde1613925c85c294eac9ae4153c688311745000000000000000100000000000000010000000000000020a4de7176464be9124785e24d63c211255e653cd53798f2b73611e5f15feef7c70000000000000001000000000000000100000000000000207e13fb6690e345dd8bdf6ed863b9142988ca740ed6091c9fae658b221f7d7334000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a0000000000000001000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f3293800000000000000060000000000000001000000000000000000000000000000208254de19a26a51e2c3efe2de447c330663d42d71497f66d76cbae45a84e24a4c000000000000000100000000000000010000000000000020128769e0198c6ed1e41b6f18e1416c5d8447b78da326db64eb3a16e5ab5c7abc0000000000000001000000000000000100000000000000209ee50eb11a3de3483219cd22981a0f0b1d7086e1372d0840adab511808b3142a000000000000000100000000000000010000000000000020d2ac9a6c10a81d256c41bc67e07527d5a36e5dc54a2c6b984bb939fbc8ccd413000000000000000100000000000000010000000000000020cc3aa606fdcbf96592df9e3ecf28c535384ef37bff659d91d2f5982a3a391cb0000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000000100000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000000000000000000020205ab1166cdd5236fd2fc0f67bc609abb7292e61bd1a7c4785cc1b331f05a72f000000000000000100000000000000010000000000000020104351b77693ba3c1b45c85533542bc6dbd5726b5cf5447c12b9f193d2931fca000000000000000100000000000000010000000000000020e98f654c7d4a4d72873302de6fc89a06a256de8b10b07b607e786bfeb6213059000000000000000100000000000000010000000000000020482529a81b98175b81ad742dd6e90b5edefabf8d4cb4e27a6d7438b3191f6bad000000000000000100000000000000010000000000000020af9f96d3edd125bc1e0a105b9ffdc8e3024dc69325a78b2a02611964156a8e7a000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b9272000000000000001f0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000000000000000000020d8fd6c31b297b06ec8cedef4e547fc71427987a2c64e406b71148ddd42bb420a000000000000000100000000000000000000000000000020a6a1702db35b748e42f0f110ec40716f747145613b2b25986a5c3dc74e1ab13a000000000000000100000000000000000000000000000020ab170dad02da8e5a4c268e132c454adc4b6729b907eb3b0647e0b75ba06ca1ae000000000000000100000000000000000000000000000020261c2de001295b8ae6db8a3110d2d193b80167fee59f8f542a00ce1709747a6900000000000000010000000000000000000000000000002028d0668b3b0bb626ddb7371edbb5222936f68264e2cfb9376038323928d12a950000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000001f00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000205e6599843a8bfbe75ddeb3d418b0d88fc52aa4be4edbcf3d696e60c3f106e1080000000000000001000000000000000000000000000000203a2146e92a3ad3706b36813e4c45136f975811c6589e6331024a956042e7768c00000000000000010000000000000000000000000000002024299b0256071ee4c8943b75440fdb14cb0a87a9d470ca0d23930e470c29fd2d00000000000000010000000000000000000000000000002068af7e3f604105e672bb008f7f6497a71b4230ffaedefc6e201e3a965f80aad9000000000000000100000000000000000000000000000020d7f7d11996573b5da0d2cbe7d58b7d9ee40d6b31bbfd992e1387dae096d31597000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f000000000000001f000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f299941856000000000000000600000000000000010000000000000000000000000000002036561d9f344965bc8216ec0e2d9880e53598efc303d646a26e1a4dd53648983f000000000000000100000000000000000000000000000020d556e53e89946cc6a63053d2f237bd42df808fd51872fe3a16ac4cf4f89b865e0000000000000001000000000000000000000000000000201f0f92e1ba9dfc9c805ddaed879861bdc05c3a78b978e8bb3a8c041349d557fb0000000000000001000000000000000000000000000000202f82c0c1a186d9e1264fb0ac164a09274cdc7fa84262a440da9649a8aa36aaef000000000000000100000000000000000000000000000020824ce8426988565f955f44ee03d626fea805a15ec4db70b129a69a2d7b15a5aa000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a000000000000001f000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020183d0ffee9a19383e2806b2c6ed73c2eb138ef696f30de1a14a5afdab1d16abd0000000000000001000000000000000000000000000000207d27cce8e7d4819cb9c3a6e141c2d34d37acb8e1fc1075a3bb2d20b8408e984c0000000000000001000000000000000000000000000000208e9ca24717ee2452a64953880cd16ce2ed80e0ab655a248e3a0d70cb8d9ef4b8000000000000000100000000000000000000000000000020cbb94a1fa90daec34851502087bc06a9b8934f9e2e87d1242484cea77e968a42000000000000000100000000000000000000000000000020d488fb112c8e7e22dfab501043651ee3017cc449d7e2043156d45aaf96580343000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000001f00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f000000000000000600000000000000010000000000000000000000000000002072fee7ed27465e7307ca816750847f68b589444b0d01a065a5f23b352818d5b10000000000000001000000000000000000000000000000202671dd30be892f7113a73cf7f3a8445d53ddc40a8e9973ee587af2a0c1606cb80000000000000001000000000000000000000000000000201a61d9687a39c69fc39cbb583e8569c27f226321d4438d1f17092925ea3cf032000000000000000100000000000000000000000000000020c1e67f4fe465546990e3ad91e731dd95b1c88152d8ecc54d60d94cbfdca528650000000000000001000000000000000000000000000000200b1317ae38b570b4c049c419190fae276bb0ef81fc42fd65f1a137ebd541d9ae000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b9272000000000000003c0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000010000000000000020218082b41cfa41d4c64ce9224ed3833644389533fd9a858bc3f817ad52382529000000000000000100000000000000010000000000000020bcf05d3c5eb71fed288eb4b419a188c8860206b533025c802ed5cd504e55c1b00000000000000001000000000000000000000000000000207a1b3b2568d13a2eef371f9a6406e1e5ea8ea67cf4f7c3e9e841cfc385002de400000000000000010000000000000000000000000000002093496aa9b95cdfb66da9c0d5bc5df817484a2a333e9349baecc93bd74a2ca4730000000000000001000000000000000000000000000000209fbca920ee0c87a956f99c4f1362a800f24be48892fb636d69c31e2a28f6ac89000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000003c00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000100000000000000203a3eb56fb5169a0d4af4df327ff0e4fc2a92b36d4502ecf07be5de233a419fcd0000000000000001000000000000000100000000000000208b25ecd6ff537916132b0a2c9828a23713e826894f39c2af049fb06a056e2443000000000000000100000000000000000000000000000020ca4326b0ac9a40f7962046fbc2ae4a247b71dee20ff8514aa46bc9a7f710d2460000000000000001000000000000000000000000000000200c0b006e9ce5ab8dee54461051bb96c286fd71b34dc6edc2cc81ccb3100d316500000000000000010000000000000000000000000000002009d96f34c0d0d0c579558695e2590b6b8a00dc82f66b0ed035313048e74ae7cb000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc000000000000003c000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f299941856000000000000000600000000000000010000000000000001000000000000002047daa61a055f328185aaf797494e69028c4580769c701d9ced9ee62c93bb0cd900000000000000010000000000000001000000000000002070475275547a4e19ad5111cbc2761f67ebbb11db7b19d3e5da5b0a1829c4ec5a0000000000000001000000000000000000000000000000205863974ae834cb6f7cdda3179a5eb9db26199ae6501319daa7e9350565a01a52000000000000000100000000000000000000000000000020a724c8ade8149e1cc611772680cb6d18385ad3f0e4e5bb60e4780827cedd136c0000000000000001000000000000000000000000000000209e4aa536330b2d7a31d018a0c66389dc79b3652f4ba9a731d52185c1d2764761000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e000000000000003c000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000010000000000000020e7e880c0271d8bbb762151274053eb5387087ee11edf17aa5c2a62d86b1240de0000000000000001000000000000000100000000000000200bbb509da79f5f8b438035f866b33e7d35ea0d24c196577e58c711e996e9d67a000000000000000100000000000000000000000000000020e0d59165174c1b01a1778b0c00ea048f351711781eb9b7905bac635125041c7c000000000000000100000000000000000000000000000020488cdfd2909dddf32aafba620adfd844cf7f0e6eae4371d0ed616315e9b3d1e900000000000000010000000000000000000000000000002068e96971008bee2f90df118bffada99c074a0d2c49bfc1b99915b2dcf51048a20000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000003c00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f000000000000000600000000000000010000000000000001000000000000002074d82bac807ca26403177015863222205cef6dec7e0c4a7d3ac57d28e79987c6000000000000000100000000000000010000000000000020b2bd6c7bce44e8cb1dd2c1ada3f46a4ef84aa70a4f6d582427f82789c25091290000000000000001000000000000000000000000000000207307458ebfa1b463080bdf0c8b226e68af95d3ce03c81f574dc53886fc92c5510000000000000001000000000000000000000000000000200aeeef018d0928774997734b759241fff2f2f118735c3cc567f475600c93c6450000000000000001000000000000000000000000000000209c3cc5f2e03bbb6fbb6a00377debdbb0ff07e93db8e65b607e9ce577d2bff4060000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f8000000000000001f0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000000000000000000020d8fd6c31b297b06ec8cedef4e547fc71427987a2c64e406b71148ddd42bb420a000000000000000100000000000000000000000000000020a6a1702db35b748e42f0f110ec40716f747145613b2b25986a5c3dc74e1ab13a000000000000000100000000000000000000000000000020ab170dad02da8e5a4c268e132c454adc4b6729b907eb3b0647e0b75ba06ca1ae000000000000000100000000000000000000000000000020261c2de001295b8ae6db8a3110d2d193b80167fee59f8f542a00ce1709747a6900000000000000010000000000000000000000000000002028d0668b3b0bb626ddb7371edbb5222936f68264e2cfb9376038323928d12a950000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000001f00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000205e6599843a8bfbe75ddeb3d418b0d88fc52aa4be4edbcf3d696e60c3f106e1080000000000000001000000000000000000000000000000203a2146e92a3ad3706b36813e4c45136f975811c6589e6331024a956042e7768c00000000000000010000000000000000000000000000002024299b0256071ee4c8943b75440fdb14cb0a87a9d470ca0d23930e470c29fd2d00000000000000010000000000000000000000000000002068af7e3f604105e672bb008f7f6497a71b4230ffaedefc6e201e3a965f80aad9000000000000000100000000000000000000000000000020d7f7d11996573b5da0d2cbe7d58b7d9ee40d6b31bbfd992e1387dae096d31597000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f000000000000001f000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f299941856000000000000000600000000000000010000000000000000000000000000002036561d9f344965bc8216ec0e2d9880e53598efc303d646a26e1a4dd53648983f000000000000000100000000000000000000000000000020d556e53e89946cc6a63053d2f237bd42df808fd51872fe3a16ac4cf4f89b865e0000000000000001000000000000000000000000000000201f0f92e1ba9dfc9c805ddaed879861bdc05c3a78b978e8bb3a8c041349d557fb0000000000000001000000000000000000000000000000202f82c0c1a186d9e1264fb0ac164a09274cdc7fa84262a440da9649a8aa36aaef000000000000000100000000000000000000000000000020824ce8426988565f955f44ee03d626fea805a15ec4db70b129a69a2d7b15a5aa000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a000000000000001f000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020183d0ffee9a19383e2806b2c6ed73c2eb138ef696f30de1a14a5afdab1d16abd0000000000000001000000000000000000000000000000207d27cce8e7d4819cb9c3a6e141c2d34d37acb8e1fc1075a3bb2d20b8408e984c0000000000000001000000000000000000000000000000208e9ca24717ee2452a64953880cd16ce2ed80e0ab655a248e3a0d70cb8d9ef4b8000000000000000100000000000000000000000000000020cbb94a1fa90daec34851502087bc06a9b8934f9e2e87d1242484cea77e968a42000000000000000100000000000000000000000000000020d488fb112c8e7e22dfab501043651ee3017cc449d7e2043156d45aaf96580343000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000001f00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f000000000000000600000000000000010000000000000000000000000000002072fee7ed27465e7307ca816750847f68b589444b0d01a065a5f23b352818d5b10000000000000001000000000000000000000000000000202671dd30be892f7113a73cf7f3a8445d53ddc40a8e9973ee587af2a0c1606cb80000000000000001000000000000000000000000000000201a61d9687a39c69fc39cbb583e8569c27f226321d4438d1f17092925ea3cf032000000000000000100000000000000000000000000000020c1e67f4fe465546990e3ad91e731dd95b1c88152d8ecc54d60d94cbfdca528650000000000000001000000000000000000000000000000200b1317ae38b570b4c049c419190fae276bb0ef81fc42fd65f1a137ebd541d9ae000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b927200000000000000100000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e00000000000000060000000000000001000000000000000100000000000000209058d03acc19a8bc5340a3803edc6e374875e4317924b7874af789b8309248dc000000000000000100000000000000010000000000000020516f64bfc51bc004bb05716451c926f5dba83d635199714f6c0eadd58d93efd60000000000000001000000000000000100000000000000200c9de449bb53c4d3ff3de2e3de5583618b02e5f4d842cb51120fcb0705bce2050000000000000001000000000000000100000000000000201ec85a72ab785b7c48cb10710fca42c4de34b9d99094486a7cb14fb0a459812f00000000000000010000000000000000000000000000002028d0668b3b0bb626ddb7371edbb5222936f68264e2cfb9376038323928d12a950000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000001000000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000100000000000000209422eaba572d0230b9db8deeee6952d3bda2f4db8004c7c723b03d7a19252e2100000000000000010000000000000001000000000000002064692406dac2faece78ae6e7c3c9c555173148e15ceda94cc162ed9ce7b88ac50000000000000001000000000000000100000000000000208331eff39080c5e921f7c00619019db156a8598c1869a62be83587b5322ba54700000000000000010000000000000001000000000000002048060202f26e09afa01220fe2b845539f7f28e73ab6b16690996cf8c05046244000000000000000100000000000000000000000000000020d7f7d11996573b5da0d2cbe7d58b7d9ee40d6b31bbfd992e1387dae096d31597000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f0000000000000010000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000100000000000000201629ca3ff4a2ed91bb100ec345fe010146b9f4f0be75a77509ae16513dd4fe0d0000000000000001000000000000000100000000000000204b86bc2c3198c3bf594b472abd611a3235fa1a607f9fb736f1f08f1671b4730000000000000000010000000000000001000000000000002012512ccbf3baa32e59f7532d63c9d35c7b894cb9479c9edcbe5e610d613f92570000000000000001000000000000000100000000000000200aed2038bedd56c46aa92e044dbb04e9d6d047ddb3819c31056472a336358fb2000000000000000100000000000000000000000000000020824ce8426988565f955f44ee03d626fea805a15ec4db70b129a69a2d7b15a5aa000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a0000000000000010000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f3293800000000000000060000000000000001000000000000000100000000000000209a329f0413ac474176ecca4647f69df6c51fec62d899de69a02cce13c6c0e5000000000000000001000000000000000100000000000000200f549d309e2c4517d858da3f696bb6db8dd3ea8de89d64df7ef3b933546e88c2000000000000000100000000000000010000000000000020ecc01f0a50e51a5220ea92b3ffdb280ab65eb082fd2b9abb9493aba6e6bd8af00000000000000001000000000000000100000000000000204e291298e718e4215dade20a34700b89a0336d8bede04b427e3792a09b3a48cb000000000000000100000000000000000000000000000020d488fb112c8e7e22dfab501043651ee3017cc449d7e2043156d45aaf96580343000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000001000000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000100000000000000206c5c84d1c336ce7447c1cc239aa4e8667be8aec4a418e03dd409ed420dd75cc8000000000000000100000000000000010000000000000020af0ebc5c462c6289fc5ac745cee7ffa729b715fb9728148bdc7beb06509bb162000000000000000100000000000000010000000000000020a25d9f27f69d1fa72e34576a35a754dbd543ba6fc98029a6c29b58d62a739c3d000000000000000100000000000000010000000000000020b4bfefcc77fb1c06d34fae0ff743553b71633d0f2755a6c510a2a7a843af6fbe0000000000000001000000000000000000000000000000200b1317ae38b570b4c049c419190fae276bb0ef81fc42fd65f1a137ebd541d9ae000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b927200000000000000110000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e00000000000000060000000000000001000000000000000000000000000000208cb54734c4d7f5b9b1c960092a47e177b16eb9ff003c498efa1d9780d33c3d78000000000000000100000000000000010000000000000020516f64bfc51bc004bb05716451c926f5dba83d635199714f6c0eadd58d93efd60000000000000001000000000000000100000000000000200c9de449bb53c4d3ff3de2e3de5583618b02e5f4d842cb51120fcb0705bce2050000000000000001000000000000000100000000000000201ec85a72ab785b7c48cb10710fca42c4de34b9d99094486a7cb14fb0a459812f00000000000000010000000000000000000000000000002028d0668b3b0bb626ddb7371edbb5222936f68264e2cfb9376038323928d12a950000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000001100000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000201e990e27f0d7976bf2adbd60e20384da0125b76e2885a96aa707bcb054108b0d00000000000000010000000000000001000000000000002064692406dac2faece78ae6e7c3c9c555173148e15ceda94cc162ed9ce7b88ac50000000000000001000000000000000100000000000000208331eff39080c5e921f7c00619019db156a8598c1869a62be83587b5322ba54700000000000000010000000000000001000000000000002048060202f26e09afa01220fe2b845539f7f28e73ab6b16690996cf8c05046244000000000000000100000000000000000000000000000020d7f7d11996573b5da0d2cbe7d58b7d9ee40d6b31bbfd992e1387dae096d31597000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f0000000000000011000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000000000000000000200d73c1dad4ac3ed5fb3b2aac1d8c53d8e962a01cdb8353c33eea4fcef6ff28950000000000000001000000000000000100000000000000204b86bc2c3198c3bf594b472abd611a3235fa1a607f9fb736f1f08f1671b4730000000000000000010000000000000001000000000000002012512ccbf3baa32e59f7532d63c9d35c7b894cb9479c9edcbe5e610d613f92570000000000000001000000000000000100000000000000200aed2038bedd56c46aa92e044dbb04e9d6d047ddb3819c31056472a336358fb2000000000000000100000000000000000000000000000020824ce8426988565f955f44ee03d626fea805a15ec4db70b129a69a2d7b15a5aa000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a0000000000000011000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f32938000000000000000600000000000000010000000000000000000000000000002040371248d7160cc6c882cd07b45bab36da53eae866a0cdca536d440c12984ff30000000000000001000000000000000100000000000000200f549d309e2c4517d858da3f696bb6db8dd3ea8de89d64df7ef3b933546e88c2000000000000000100000000000000010000000000000020ecc01f0a50e51a5220ea92b3ffdb280ab65eb082fd2b9abb9493aba6e6bd8af00000000000000001000000000000000100000000000000204e291298e718e4215dade20a34700b89a0336d8bede04b427e3792a09b3a48cb000000000000000100000000000000000000000000000020d488fb112c8e7e22dfab501043651ee3017cc449d7e2043156d45aaf96580343000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000001100000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f000000000000000600000000000000010000000000000000000000000000002062e2d6891fe340ec212625ae8767e24e5155c550dc02ab23cc028b00636fcc66000000000000000100000000000000010000000000000020af0ebc5c462c6289fc5ac745cee7ffa729b715fb9728148bdc7beb06509bb162000000000000000100000000000000010000000000000020a25d9f27f69d1fa72e34576a35a754dbd543ba6fc98029a6c29b58d62a739c3d000000000000000100000000000000010000000000000020b4bfefcc77fb1c06d34fae0ff743553b71633d0f2755a6c510a2a7a843af6fbe0000000000000001000000000000000000000000000000200b1317ae38b570b4c049c419190fae276bb0ef81fc42fd65f1a137ebd541d9ae000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b9272000000000000001e0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000010000000000000020ba15f8caa378deb827f35ab84ee3c8ef16117ea97e57e0f20b14ae88d236b6ff000000000000000100000000000000000000000000000020a6a1702db35b748e42f0f110ec40716f747145613b2b25986a5c3dc74e1ab13a000000000000000100000000000000000000000000000020ab170dad02da8e5a4c268e132c454adc4b6729b907eb3b0647e0b75ba06ca1ae000000000000000100000000000000000000000000000020261c2de001295b8ae6db8a3110d2d193b80167fee59f8f542a00ce1709747a6900000000000000010000000000000000000000000000002028d0668b3b0bb626ddb7371edbb5222936f68264e2cfb9376038323928d12a950000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000001e00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d6000000000000000600000000000000010000000000000001000000000000002085351021aea650c4597031fb7dc932b99054b360e97ca572bb6bece35ae11bdf0000000000000001000000000000000000000000000000203a2146e92a3ad3706b36813e4c45136f975811c6589e6331024a956042e7768c00000000000000010000000000000000000000000000002024299b0256071ee4c8943b75440fdb14cb0a87a9d470ca0d23930e470c29fd2d00000000000000010000000000000000000000000000002068af7e3f604105e672bb008f7f6497a71b4230ffaedefc6e201e3a965f80aad9000000000000000100000000000000000000000000000020d7f7d11996573b5da0d2cbe7d58b7d9ee40d6b31bbfd992e1387dae096d31597000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f000000000000001e000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000010000000000000020f821bc8956540d674f85944695ec2cdab831a2a389a2d11a3d7cb0e72d70c402000000000000000100000000000000000000000000000020d556e53e89946cc6a63053d2f237bd42df808fd51872fe3a16ac4cf4f89b865e0000000000000001000000000000000000000000000000201f0f92e1ba9dfc9c805ddaed879861bdc05c3a78b978e8bb3a8c041349d557fb0000000000000001000000000000000000000000000000202f82c0c1a186d9e1264fb0ac164a09274cdc7fa84262a440da9649a8aa36aaef000000000000000100000000000000000000000000000020824ce8426988565f955f44ee03d626fea805a15ec4db70b129a69a2d7b15a5aa000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a000000000000001e000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f32938000000000000000600000000000000010000000000000001000000000000002030d6b49905be576af2c974f08de40dec367587e3f626cc9bc52f04670a7003580000000000000001000000000000000000000000000000207d27cce8e7d4819cb9c3a6e141c2d34d37acb8e1fc1075a3bb2d20b8408e984c0000000000000001000000000000000000000000000000208e9ca24717ee2452a64953880cd16ce2ed80e0ab655a248e3a0d70cb8d9ef4b8000000000000000100000000000000000000000000000020cbb94a1fa90daec34851502087bc06a9b8934f9e2e87d1242484cea77e968a42000000000000000100000000000000000000000000000020d488fb112c8e7e22dfab501043651ee3017cc449d7e2043156d45aaf96580343000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000001e00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000100000000000000208f526051780fa2a3d112fdedee88168162589e00a4943c032e8b91bc4c53d9840000000000000001000000000000000000000000000000202671dd30be892f7113a73cf7f3a8445d53ddc40a8e9973ee587af2a0c1606cb80000000000000001000000000000000000000000000000201a61d9687a39c69fc39cbb583e8569c27f226321d4438d1f17092925ea3cf032000000000000000100000000000000000000000000000020c1e67f4fe465546990e3ad91e731dd95b1c88152d8ecc54d60d94cbfdca528650000000000000001000000000000000000000000000000200b1317ae38b570b4c049c419190fae276bb0ef81fc42fd65f1a137ebd541d9ae000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b927200000000000000090000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000000000000000000020de69d45a7cfdd721b028a24fe71015f76f5aa7a273602588540d7177b2032e810000000000000001000000000000000100000000000000203b055f5ec21cdd2d321937c699cc5b005cfd392544e209343f6f4bc3609d50a8000000000000000100000000000000010000000000000020212011d70596d8f444a02b2551c63793bb6214725d0b1d4e2d024902a719d74d00000000000000010000000000000000000000000000002063b18099f915d818ff11dd06d2b4924e18e1b43d1a7d80c4018a6828759c3e2c000000000000000100000000000000010000000000000020659b6b070f44812ca2ffc215c67485587dd0d144e05eb3647148b4f5ca7360120000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000000900000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000208fb27fefef947575d8370fca7cbc77cc2ab56337c6ba1ef2b114401465fe10880000000000000001000000000000000100000000000000205c4181331efc246b6fd787984126b3c735f6b747840454826726ab672228df2000000000000000010000000000000001000000000000002008c5fc936786cf9d0af43c12be03cc772b25837622cd42f08df1c66e5e116a2a000000000000000100000000000000000000000000000020bd75800a626d45803e0ac76b5c093b70cab826c1e74d4cd0ce8e6c36106f95bc000000000000000100000000000000010000000000000020dbce0776e37eb7c2a9e60b3254ce5ea6bed0db83c8c2e6b120494c0d9ed2a76b000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f0000000000000009000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000000000000000000020572da483fb877b90672fbd6cd281dd1d8fc1e3519c9d5b6b2f16f62721a72816000000000000000100000000000000010000000000000020a7170bc0cfb0066ee2a6bc38ae323cf6155ef29a640796587131389fc7ddd196000000000000000100000000000000010000000000000020f87937c3d7f9ea889556bed01a00031a67448288e6ad311f669b4408eebc01ac000000000000000100000000000000000000000000000020842c39bed54d7be108142ed95a58b534014e03e9871691ec932be839f2294f4d0000000000000001000000000000000100000000000000207e13fb6690e345dd8bdf6ed863b9142988ca740ed6091c9fae658b221f7d7334000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a0000000000000009000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f3293800000000000000060000000000000001000000000000000000000000000000202a8823c954f6384a513c97041a12b9202fbc85be6b543238fa04ae9a70393fff00000000000000010000000000000001000000000000002076f0d827402b47129db7da8669550ecbc1c84eddedb8bef62b4d08efce600e37000000000000000100000000000000010000000000000020ad2c19c26d0488214886b03e7e4bc57d130a100d9e13ced4921d6472e2238a2e0000000000000001000000000000000000000000000000201de5bb3d887c07d54506473a20db02428ebc54d6a3c978c792d0e6f1f4de0511000000000000000100000000000000010000000000000020cc3aa606fdcbf96592df9e3ecf28c535384ef37bff659d91d2f5982a3a391cb0000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000000900000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000000000000000000020b266d01eb13c2bc656133dab42c1ec116ca3f28544f99eaba9cc7c89fe419fdd0000000000000001000000000000000100000000000000201df9ab42d54f8ea624eecc57fce828882c6b80c722d86bb88d11443ff87766af000000000000000100000000000000010000000000000020630f361882ada56a075e947b144639b306577494cfa2d14d2fd11f09586072a00000000000000001000000000000000000000000000000206e8232a0c61d237a50e6dcca4dcea8b407b71864d02b4c647447bc948ffe8ebc000000000000000100000000000000010000000000000020af9f96d3edd125bc1e0a105b9ffdc8e3024dc69325a78b2a02611964156a8e7a000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b9272000000000000001c0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000010000000000000020e3587c4b87cfa21fbef795afb84015f00eeec779982508e4e4777bb7c8c3e7ef00000000000000010000000000000001000000000000002012edb90efc6a65c82406e9e729c69705717bb9213763989a3e429db69b1fa1be000000000000000100000000000000000000000000000020ab170dad02da8e5a4c268e132c454adc4b6729b907eb3b0647e0b75ba06ca1ae000000000000000100000000000000000000000000000020261c2de001295b8ae6db8a3110d2d193b80167fee59f8f542a00ce1709747a6900000000000000010000000000000000000000000000002028d0668b3b0bb626ddb7371edbb5222936f68264e2cfb9376038323928d12a950000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000001c00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000010000000000000020cc15f3502bc1908d357811f4f0f1f25d88acdd0691457037a57c5191c683847b000000000000000100000000000000010000000000000020070faa4b0f39e22d43da05eaf01eaa74ae4dfa9cf3b4f146bc3076585fa9c02700000000000000010000000000000000000000000000002024299b0256071ee4c8943b75440fdb14cb0a87a9d470ca0d23930e470c29fd2d00000000000000010000000000000000000000000000002068af7e3f604105e672bb008f7f6497a71b4230ffaedefc6e201e3a965f80aad9000000000000000100000000000000000000000000000020d7f7d11996573b5da0d2cbe7d58b7d9ee40d6b31bbfd992e1387dae096d31597000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f000000000000001c000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000010000000000000020e45ea0ef92a87114b48b4dc2f56781fce286f690846172fedffd2cda9e29b6a50000000000000001000000000000000100000000000000201581a9112f15b5db73805221511d3b17bb0b44a8d5bdb5961d05b119e83069f80000000000000001000000000000000000000000000000201f0f92e1ba9dfc9c805ddaed879861bdc05c3a78b978e8bb3a8c041349d557fb0000000000000001000000000000000000000000000000202f82c0c1a186d9e1264fb0ac164a09274cdc7fa84262a440da9649a8aa36aaef000000000000000100000000000000000000000000000020824ce8426988565f955f44ee03d626fea805a15ec4db70b129a69a2d7b15a5aa000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a000000000000001c000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f32938000000000000000600000000000000010000000000000001000000000000002002bb23f385d33b1fdd83f3c47b2936586909c02ed6cfb9703e2e998321832e48000000000000000100000000000000010000000000000020ab7aae7bbf9e20bdeb1ab6bbe7a70c6cd858e5d76f9f05de9e38ec9f931a3ec50000000000000001000000000000000000000000000000208e9ca24717ee2452a64953880cd16ce2ed80e0ab655a248e3a0d70cb8d9ef4b8000000000000000100000000000000000000000000000020cbb94a1fa90daec34851502087bc06a9b8934f9e2e87d1242484cea77e968a42000000000000000100000000000000000000000000000020d488fb112c8e7e22dfab501043651ee3017cc449d7e2043156d45aaf96580343000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000001c00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000100000000000000200f375dbba5f3588b95d031e9297728953db05ef7da46e721b77d820ce428649a000000000000000100000000000000010000000000000020d5f15fb4972b5ea2159a542111a45a1ff217a413588328aa49a47ed613fc70570000000000000001000000000000000000000000000000201a61d9687a39c69fc39cbb583e8569c27f226321d4438d1f17092925ea3cf032000000000000000100000000000000000000000000000020c1e67f4fe465546990e3ad91e731dd95b1c88152d8ecc54d60d94cbfdca528650000000000000001000000000000000000000000000000200b1317ae38b570b4c049c419190fae276bb0ef81fc42fd65f1a137ebd541d9ae000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b9272000000000000003c0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000010000000000000020218082b41cfa41d4c64ce9224ed3833644389533fd9a858bc3f817ad52382529000000000000000100000000000000010000000000000020bcf05d3c5eb71fed288eb4b419a188c8860206b533025c802ed5cd504e55c1b00000000000000001000000000000000000000000000000207a1b3b2568d13a2eef371f9a6406e1e5ea8ea67cf4f7c3e9e841cfc385002de400000000000000010000000000000000000000000000002093496aa9b95cdfb66da9c0d5bc5df817484a2a333e9349baecc93bd74a2ca4730000000000000001000000000000000000000000000000209fbca920ee0c87a956f99c4f1362a800f24be48892fb636d69c31e2a28f6ac89000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000003c00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000100000000000000203a3eb56fb5169a0d4af4df327ff0e4fc2a92b36d4502ecf07be5de233a419fcd0000000000000001000000000000000100000000000000208b25ecd6ff537916132b0a2c9828a23713e826894f39c2af049fb06a056e2443000000000000000100000000000000000000000000000020ca4326b0ac9a40f7962046fbc2ae4a247b71dee20ff8514aa46bc9a7f710d2460000000000000001000000000000000000000000000000200c0b006e9ce5ab8dee54461051bb96c286fd71b34dc6edc2cc81ccb3100d316500000000000000010000000000000000000000000000002009d96f34c0d0d0c579558695e2590b6b8a00dc82f66b0ed035313048e74ae7cb000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc000000000000003c000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f299941856000000000000000600000000000000010000000000000001000000000000002047daa61a055f328185aaf797494e69028c4580769c701d9ced9ee62c93bb0cd900000000000000010000000000000001000000000000002070475275547a4e19ad5111cbc2761f67ebbb11db7b19d3e5da5b0a1829c4ec5a0000000000000001000000000000000000000000000000205863974ae834cb6f7cdda3179a5eb9db26199ae6501319daa7e9350565a01a52000000000000000100000000000000000000000000000020a724c8ade8149e1cc611772680cb6d18385ad3f0e4e5bb60e4780827cedd136c0000000000000001000000000000000000000000000000209e4aa536330b2d7a31d018a0c66389dc79b3652f4ba9a731d52185c1d2764761000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e000000000000003c000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000010000000000000020e7e880c0271d8bbb762151274053eb5387087ee11edf17aa5c2a62d86b1240de0000000000000001000000000000000100000000000000200bbb509da79f5f8b438035f866b33e7d35ea0d24c196577e58c711e996e9d67a000000000000000100000000000000000000000000000020e0d59165174c1b01a1778b0c00ea048f351711781eb9b7905bac635125041c7c000000000000000100000000000000000000000000000020488cdfd2909dddf32aafba620adfd844cf7f0e6eae4371d0ed616315e9b3d1e900000000000000010000000000000000000000000000002068e96971008bee2f90df118bffada99c074a0d2c49bfc1b99915b2dcf51048a20000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000003c00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f000000000000000600000000000000010000000000000001000000000000002074d82bac807ca26403177015863222205cef6dec7e0c4a7d3ac57d28e79987c6000000000000000100000000000000010000000000000020b2bd6c7bce44e8cb1dd2c1ada3f46a4ef84aa70a4f6d582427f82789c25091290000000000000001000000000000000000000000000000207307458ebfa1b463080bdf0c8b226e68af95d3ce03c81f574dc53886fc92c5510000000000000001000000000000000000000000000000200aeeef018d0928774997734b759241fff2f2f118735c3cc567f475600c93c6450000000000000001000000000000000000000000000000209c3cc5f2e03bbb6fbb6a00377debdbb0ff07e93db8e65b607e9ce577d2bff4060000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f8000000000000000a0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000010000000000000020fc983dd7daafc6f9bd09f56cfae3edef56984b36f007d57cca6deebaf9cb6b27000000000000000100000000000000000000000000000020f95f23851afcff04d1ad49b881508c3633308363c1babb0c2d30123584655b30000000000000000100000000000000010000000000000020212011d70596d8f444a02b2551c63793bb6214725d0b1d4e2d024902a719d74d00000000000000010000000000000000000000000000002063b18099f915d818ff11dd06d2b4924e18e1b43d1a7d80c4018a6828759c3e2c000000000000000100000000000000010000000000000020659b6b070f44812ca2ffc215c67485587dd0d144e05eb3647148b4f5ca7360120000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000000a00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000010000000000000020963ce7fa16a7bc2faf8b5a019fb2698e0bf100a32aad4b5a538b4dc1b308bbb6000000000000000100000000000000000000000000000020e13c705067783e7c197b6024479054eeb56690f491a37b0fd27a62af0a9483bb00000000000000010000000000000001000000000000002008c5fc936786cf9d0af43c12be03cc772b25837622cd42f08df1c66e5e116a2a000000000000000100000000000000000000000000000020bd75800a626d45803e0ac76b5c093b70cab826c1e74d4cd0ce8e6c36106f95bc000000000000000100000000000000010000000000000020dbce0776e37eb7c2a9e60b3254ce5ea6bed0db83c8c2e6b120494c0d9ed2a76b000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f000000000000000a000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f299941856000000000000000600000000000000010000000000000001000000000000002000e9a8116be3eaa04fd3a9b8fe498439df65050c6d2ba8297979c140197d72ee000000000000000100000000000000000000000000000020f79665195ed0ea8504d75eaff65e22a7a3deedec016d749801fc7edf8d55a3fe000000000000000100000000000000010000000000000020f87937c3d7f9ea889556bed01a00031a67448288e6ad311f669b4408eebc01ac000000000000000100000000000000000000000000000020842c39bed54d7be108142ed95a58b534014e03e9871691ec932be839f2294f4d0000000000000001000000000000000100000000000000207e13fb6690e345dd8bdf6ed863b9142988ca740ed6091c9fae658b221f7d7334000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a000000000000000a000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000010000000000000020b8271596523f0175c8f35996cef48923561a67284d14747b3a97002e7f568a50000000000000000100000000000000000000000000000020b35ae75cacfa782fb60ee04267aae26f074cefcea47f96b174716052e98d7657000000000000000100000000000000010000000000000020ad2c19c26d0488214886b03e7e4bc57d130a100d9e13ced4921d6472e2238a2e0000000000000001000000000000000000000000000000201de5bb3d887c07d54506473a20db02428ebc54d6a3c978c792d0e6f1f4de0511000000000000000100000000000000010000000000000020cc3aa606fdcbf96592df9e3ecf28c535384ef37bff659d91d2f5982a3a391cb0000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000000a00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000010000000000000020d1fb2c8ea549af99b4a3ecb033283f236df6907d524f78289927652d8c75ee710000000000000001000000000000000000000000000000208de78120231f2b5d2bd8a35ce33c53d3c7094f877ce43c2ba48f9fccc6e57305000000000000000100000000000000010000000000000020630f361882ada56a075e947b144639b306577494cfa2d14d2fd11f09586072a00000000000000001000000000000000000000000000000206e8232a0c61d237a50e6dcca4dcea8b407b71864d02b4c647447bc948ffe8ebc000000000000000100000000000000010000000000000020af9f96d3edd125bc1e0a105b9ffdc8e3024dc69325a78b2a02611964156a8e7a000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b9272000000000000001e0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000010000000000000020ba15f8caa378deb827f35ab84ee3c8ef16117ea97e57e0f20b14ae88d236b6ff000000000000000100000000000000000000000000000020a6a1702db35b748e42f0f110ec40716f747145613b2b25986a5c3dc74e1ab13a000000000000000100000000000000000000000000000020ab170dad02da8e5a4c268e132c454adc4b6729b907eb3b0647e0b75ba06ca1ae000000000000000100000000000000000000000000000020261c2de001295b8ae6db8a3110d2d193b80167fee59f8f542a00ce1709747a6900000000000000010000000000000000000000000000002028d0668b3b0bb626ddb7371edbb5222936f68264e2cfb9376038323928d12a950000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000001e00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d6000000000000000600000000000000010000000000000001000000000000002085351021aea650c4597031fb7dc932b99054b360e97ca572bb6bece35ae11bdf0000000000000001000000000000000000000000000000203a2146e92a3ad3706b36813e4c45136f975811c6589e6331024a956042e7768c00000000000000010000000000000000000000000000002024299b0256071ee4c8943b75440fdb14cb0a87a9d470ca0d23930e470c29fd2d00000000000000010000000000000000000000000000002068af7e3f604105e672bb008f7f6497a71b4230ffaedefc6e201e3a965f80aad9000000000000000100000000000000000000000000000020d7f7d11996573b5da0d2cbe7d58b7d9ee40d6b31bbfd992e1387dae096d31597000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f000000000000001e000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000010000000000000020f821bc8956540d674f85944695ec2cdab831a2a389a2d11a3d7cb0e72d70c402000000000000000100000000000000000000000000000020d556e53e89946cc6a63053d2f237bd42df808fd51872fe3a16ac4cf4f89b865e0000000000000001000000000000000000000000000000201f0f92e1ba9dfc9c805ddaed879861bdc05c3a78b978e8bb3a8c041349d557fb0000000000000001000000000000000000000000000000202f82c0c1a186d9e1264fb0ac164a09274cdc7fa84262a440da9649a8aa36aaef000000000000000100000000000000000000000000000020824ce8426988565f955f44ee03d626fea805a15ec4db70b129a69a2d7b15a5aa000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a000000000000001e000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f32938000000000000000600000000000000010000000000000001000000000000002030d6b49905be576af2c974f08de40dec367587e3f626cc9bc52f04670a7003580000000000000001000000000000000000000000000000207d27cce8e7d4819cb9c3a6e141c2d34d37acb8e1fc1075a3bb2d20b8408e984c0000000000000001000000000000000000000000000000208e9ca24717ee2452a64953880cd16ce2ed80e0ab655a248e3a0d70cb8d9ef4b8000000000000000100000000000000000000000000000020cbb94a1fa90daec34851502087bc06a9b8934f9e2e87d1242484cea77e968a42000000000000000100000000000000000000000000000020d488fb112c8e7e22dfab501043651ee3017cc449d7e2043156d45aaf96580343000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000001e00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000100000000000000208f526051780fa2a3d112fdedee88168162589e00a4943c032e8b91bc4c53d9840000000000000001000000000000000000000000000000202671dd30be892f7113a73cf7f3a8445d53ddc40a8e9973ee587af2a0c1606cb80000000000000001000000000000000000000000000000201a61d9687a39c69fc39cbb583e8569c27f226321d4438d1f17092925ea3cf032000000000000000100000000000000000000000000000020c1e67f4fe465546990e3ad91e731dd95b1c88152d8ecc54d60d94cbfdca528650000000000000001000000000000000000000000000000200b1317ae38b570b4c049c419190fae276bb0ef81fc42fd65f1a137ebd541d9ae000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b927200000000000000390000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e00000000000000060000000000000001000000000000000000000000000000205a8a6d6822d757b39053f2d696b440911b98fb855bd584870549e7ded4c8f784000000000000000100000000000000010000000000000020ea132e6ad465bc3d576d24943e8eb110cbbe9e0822e43ab2b485cff78cfe7bbf0000000000000001000000000000000100000000000000206402373ddcb71c9fa2bfe1d2d9097bfb1e67c3a16c2603e6850eedece20f804700000000000000010000000000000000000000000000002093496aa9b95cdfb66da9c0d5bc5df817484a2a333e9349baecc93bd74a2ca4730000000000000001000000000000000000000000000000209fbca920ee0c87a956f99c4f1362a800f24be48892fb636d69c31e2a28f6ac89000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000003900000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000000000000000000020b9754dbc7d8d3eefeff2097a536bf8392001674a00a2100b0f5362195773d33800000000000000010000000000000001000000000000002087acc052c4befcbc863390a53bc9fe76ddf39509151f111da33e34eefa9c20bb000000000000000100000000000000010000000000000020ec80243d3ec903cb562c8eacb603f6c834430b23f15d562812829d19ab4c355c0000000000000001000000000000000000000000000000200c0b006e9ce5ab8dee54461051bb96c286fd71b34dc6edc2cc81ccb3100d316500000000000000010000000000000000000000000000002009d96f34c0d0d0c579558695e2590b6b8a00dc82f66b0ed035313048e74ae7cb000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000039000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000000000000000000201434b750fa4c79a6abbb555e49c6de275c5917f1a7745ce0f094cc6f45451d50000000000000000100000000000000010000000000000020e25b16e92ce565166fe90f1c3edb66f7f7a147fe1eb50d049a44d69786c76df90000000000000001000000000000000100000000000000208e2274770ab1400a8d4a14228b5b83fbbc2f8b567f0d93bae220f05170b20030000000000000000100000000000000000000000000000020a724c8ade8149e1cc611772680cb6d18385ad3f0e4e5bb60e4780827cedd136c0000000000000001000000000000000000000000000000209e4aa536330b2d7a31d018a0c66389dc79b3652f4ba9a731d52185c1d2764761000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000039000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020deed836067856071ea7a63330beedf7de96c65e2598acaca714fc1e308998f90000000000000000100000000000000010000000000000020f33d0621a9be5d0bc10fb9ba479d2c92b9442af4ac19c6bc422738323447ccbf0000000000000001000000000000000100000000000000204b85a596b27c62a80e804a5f440e38fd1798e192f2e4faf6c9d937e152644b4f000000000000000100000000000000000000000000000020488cdfd2909dddf32aafba620adfd844cf7f0e6eae4371d0ed616315e9b3d1e900000000000000010000000000000000000000000000002068e96971008bee2f90df118bffada99c074a0d2c49bfc1b99915b2dcf51048a20000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000003900000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000000000000000000202c3deceeaa53a4fd7cb0576d0c27372976b9f6f95317d05b21ccc995dfa7f60500000000000000010000000000000001000000000000002004eac4235e209d96bd17c310b61b8b64f2de73bff9eedc68f3d5329676b3529100000000000000010000000000000001000000000000002090d7b0bcec2a4257083160dd8ffbec8f4d56bdf900f2859e017373f837e3c55e0000000000000001000000000000000000000000000000200aeeef018d0928774997734b759241fff2f2f118735c3cc567f475600c93c6450000000000000001000000000000000000000000000000209c3cc5f2e03bbb6fbb6a00377debdbb0ff07e93db8e65b607e9ce577d2bff4060000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000270000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e000000000000000600000000000000010000000000000000000000000000002082b4607dd2121124fe913ac73d6cfb7d23edb46c45a7c6c239e251b989b417ef000000000000000100000000000000000000000000000020ce6cbec44c6750b87c769f2196e739261249641951d381617e8405bbf0202556000000000000000100000000000000000000000000000020e8b9aa258428d11be94220c2dd6dc9be6f7dfbf6c563495f34ac19fe54c7a02b000000000000000100000000000000010000000000000020acd5d62b97e6c33a02d4331e361fc284fac3d4751616f3f316c28ea08f63c5d000000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002700000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000201aa4caab70d09b9a3b78992c54084bc326e346f6b26246624e3524dfbe50833200000000000000010000000000000000000000000000002060fdc81936cb56fefc4ae765ed50a0407b33f19eff3eee870f07317cdb2ef330000000000000000100000000000000000000000000000020ed1cdc4693f53dc4db6ac19967a9854c6557cdba9dd1ef73aabe5680048340b900000000000000010000000000000001000000000000002039c719fa3f6fd86de45cdcbe116bc929d735098bfd57ba95c955727b3f86087f0000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000027000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000000000000000000020f952df45f42865be94d69c9c7d21933b3e0ad8d0f63ee3775b0d79f285368945000000000000000100000000000000000000000000000020a09e4a0cff4a2719030a0f657ce42c12a2cd4cc27b8cdfd21d1cbcf868b7190b00000000000000010000000000000000000000000000002057270586231d0130eb017de9b965c71be11d39fda49cb46ecc4fc4cf2baff38a000000000000000100000000000000010000000000000020a814a34f76af1733811481d105364da0ad5c6889b20ac62ec695d95bad6ccfa40000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000027000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f32938000000000000000600000000000000010000000000000000000000000000002011bce33f5446454b228452a0d5cdaae5a71b16116ff1a05e37598b6a6304a5fb000000000000000100000000000000000000000000000020a9887501139d04ce4e8fa79b998c30f58c8d5ba78c911d4db7001a5436dc18fd0000000000000001000000000000000000000000000000208acf7b66bc86786435ec6708d199d5b065b2e43f560fdf2547c4cd28ea0352ab000000000000000100000000000000010000000000000020609f06fb0f917dd5aff48faaa7c9a26932b0164e4ceb2fcb49512a7126aed0240000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002700000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000000000000000000020e63e257a41621044bcf901c3ac3eb320a79baad09ea4c038e67f28ae28f16c3b00000000000000010000000000000000000000000000002032ce4870dfa2fb4284adb38aa43f49a3a3c28255497b93a85731134cd0486a2d000000000000000100000000000000000000000000000020d8d5941d890c32e24cc840a8ee7a932a739bad1dbbbe6985a9d3ea1a07252ddc000000000000000100000000000000010000000000000020581702be02dcae0d01501fe971bb01119d074a9fa43014b6ad4081e583d632e900000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000210000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e000000000000000600000000000000010000000000000000000000000000002066f812c8736a357f21436863a2199724f4144d4194234ebf039cc87839d8dde7000000000000000100000000000000010000000000000020af164518d52f638f864af4f96b17dfd11b54180898cac80dde9aad0b48c73071000000000000000100000000000000010000000000000020bc7a78bb3c611e1b5f11dcbff023f3a085ed0bf8ecd7f9ece0c033dcabf6b6fc000000000000000100000000000000010000000000000020acd5d62b97e6c33a02d4331e361fc284fac3d4751616f3f316c28ea08f63c5d000000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002100000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000201e990e27f0d7976bf2adbd60e20384da0125b76e2885a96aa707bcb054108b0d00000000000000010000000000000001000000000000002036011e620f239613805346976c01d6be477f0546303a35d8e91f936c5ab738e1000000000000000100000000000000010000000000000020b956db54d172694c1630b069cbb2710ecdaacf116a26dcabdef5e48e9f4e783c00000000000000010000000000000001000000000000002039c719fa3f6fd86de45cdcbe116bc929d735098bfd57ba95c955727b3f86087f0000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000021000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000000000000000000200d73c1dad4ac3ed5fb3b2aac1d8c53d8e962a01cdb8353c33eea4fcef6ff2895000000000000000100000000000000010000000000000020c820cc49df62aac9d357ded86aed16cba909fd75f816a8472db6832966708c8600000000000000010000000000000001000000000000002087e4224ac05bf39143e5b2b8f31e6ff5c9879040db1e5c52a6074d35b63b457f000000000000000100000000000000010000000000000020a814a34f76af1733811481d105364da0ad5c6889b20ac62ec695d95bad6ccfa40000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000021000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f32938000000000000000600000000000000010000000000000000000000000000002027192bb21c5c75b1e4d1bceb03a2c9ecf9d790b79d41e58c9d6359ce386f90dd0000000000000001000000000000000100000000000000201ff906e1ce9f3c5394fe409e7fef7a28a7d4469cb7e925e64acda39d98cc90870000000000000001000000000000000100000000000000200998593abc6ae74ad4db1e3faee5a7426d83e0283ebfbba81490532b53fb3c67000000000000000100000000000000010000000000000020609f06fb0f917dd5aff48faaa7c9a26932b0164e4ceb2fcb49512a7126aed0240000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002100000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000000000000000000020ca9c2c3725a394cda6baef5123dbe0ffd486e41377832cba5fdaa56ec79bdc3e00000000000000010000000000000001000000000000002078a9e98bb67d6a58ed5f47d03ff761fa75a0a090d14ed86341258ccae9faf3ee000000000000000100000000000000010000000000000020d51dbff523abfb61534f3ecb97144bf53b03b4e9ba33067030fe9ec8101607cb000000000000000100000000000000010000000000000020581702be02dcae0d01501fe971bb01119d074a9fa43014b6ad4081e583d632e900000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000240000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000010000000000000020a87e7ee5e09866aa006873cab1460c1595522fe9a3acc138dad90ccb048f09ec000000000000000100000000000000010000000000000020066b8498c9e05c82628c3565d3c18ea8674927640352cc9cf607415abf97f900000000000000000100000000000000000000000000000020e8b9aa258428d11be94220c2dd6dc9be6f7dfbf6c563495f34ac19fe54c7a02b000000000000000100000000000000010000000000000020acd5d62b97e6c33a02d4331e361fc284fac3d4751616f3f316c28ea08f63c5d000000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002400000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000010000000000000020880821cc48160488eb5d29feb2eead9cb25a07f610d5e1bca1435122b800416e000000000000000100000000000000010000000000000020e67415e2ce919b1302dfc211e39471d29a76795f1d4e6edbbdfc1856b5b2c153000000000000000100000000000000000000000000000020ed1cdc4693f53dc4db6ac19967a9854c6557cdba9dd1ef73aabe5680048340b900000000000000010000000000000001000000000000002039c719fa3f6fd86de45cdcbe116bc929d735098bfd57ba95c955727b3f86087f0000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000024000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000010000000000000020fa9aad6d2aace9a80704234a97da2dba93d14ea85b33d5c1a5b4f53de563f172000000000000000100000000000000010000000000000020bab7b86d13eda577e6efdf77bb504d22b0694d137022f14012aa8cd0fa75d1ee00000000000000010000000000000000000000000000002057270586231d0130eb017de9b965c71be11d39fda49cb46ecc4fc4cf2baff38a000000000000000100000000000000010000000000000020a814a34f76af1733811481d105364da0ad5c6889b20ac62ec695d95bad6ccfa40000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000024000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f3293800000000000000060000000000000001000000000000000100000000000000206434f87e734d29f9fd95399e82117674b990519a1379e6299d995792ed6d5633000000000000000100000000000000010000000000000020d7916d25af4bc31f4e809d04d5f70e0e2de17c037477afbb033a4ae7810e8b900000000000000001000000000000000000000000000000208acf7b66bc86786435ec6708d199d5b065b2e43f560fdf2547c4cd28ea0352ab000000000000000100000000000000010000000000000020609f06fb0f917dd5aff48faaa7c9a26932b0164e4ceb2fcb49512a7126aed0240000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002400000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000010000000000000020a7dfffac5fa2be54bfdaf88836fe9efe9e2f64482ae91878275e5ec2d36f450d00000000000000010000000000000001000000000000002000e0cc80f37570010eccdc5f1ef31956596028e3cc7f6e72de18bb35cd4650ce000000000000000100000000000000000000000000000020d8d5941d890c32e24cc840a8ee7a932a739bad1dbbbe6985a9d3ea1a07252ddc000000000000000100000000000000010000000000000020581702be02dcae0d01501fe971bb01119d074a9fa43014b6ad4081e583d632e900000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000060000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e00000000000000060000000000000001000000000000000100000000000000206068ff0ed4c4759abee34f335fafeb3a13303d5877af767f4d37506f840e35fd00000000000000010000000000000000000000000000002067ca165ae9157ffd65aedc2702decce7ef87efbecc65c1f23c346100aac99a2f000000000000000100000000000000000000000000000020c8a9706d43613feef1f7182c33ec47958f103c466f0a5c331ae15d21af056b2a000000000000000100000000000000010000000000000020407e1d016b2156134625c6c0acace3fca412163392f1c4920830c79723de997b000000000000000100000000000000010000000000000020659b6b070f44812ca2ffc215c67485587dd0d144e05eb3647148b4f5ca7360120000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000000600000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000010000000000000020fcd2644366aa4cae1f5315462954dec50920d49904205bac2012ebd91921cafc000000000000000100000000000000000000000000000020c2867e1f4cc937dde4acfa436b33c068e26654c057a2da6ff57d5a652187de31000000000000000100000000000000000000000000000020a83ce3f6822f2805da6f235cd57c1e49249433b8646938623efd0a040bb1ded60000000000000001000000000000000100000000000000204bc065f3dd3e3b30a0dac92ed91cf22f8259a480aa87d1c980b53b9a86e52a01000000000000000100000000000000010000000000000020dbce0776e37eb7c2a9e60b3254ce5ea6bed0db83c8c2e6b120494c0d9ed2a76b000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f0000000000000006000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000100000000000000207d8105c33b0d4263758d71e48168235f66e18ab7c8cc5fa652509c4e455b85b8000000000000000100000000000000000000000000000020656c686dc65309b719de95affaf2db67a6d00e7c86975a6214fd698dc72b431b00000000000000010000000000000000000000000000002057b19820ae67477ff0fc9a389396aeb670b7c8e05836cc5910b5ddb99ab4caf9000000000000000100000000000000010000000000000020a4de7176464be9124785e24d63c211255e653cd53798f2b73611e5f15feef7c70000000000000001000000000000000100000000000000207e13fb6690e345dd8bdf6ed863b9142988ca740ed6091c9fae658b221f7d7334000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a0000000000000006000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000010000000000000020ef7a130cfe37c0592cee783c87bcfa81f15f7d690e68179b0414f67da128a1a70000000000000001000000000000000000000000000000205b062cf5dbdcf741c88519621043425bdaff3163299494ea1e4e9aa1874fe4800000000000000001000000000000000000000000000000202ca61985fbc5910957e78a916da8508a3ead835fe2a43c85aafb20f5955f0ca0000000000000000100000000000000010000000000000020d2ac9a6c10a81d256c41bc67e07527d5a36e5dc54a2c6b984bb939fbc8ccd413000000000000000100000000000000010000000000000020cc3aa606fdcbf96592df9e3ecf28c535384ef37bff659d91d2f5982a3a391cb0000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000000600000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000010000000000000020ef8bf5707389ad5617236dd6d6c686a18f46eeb869921a2ad1e9a65fcfa6576d0000000000000001000000000000000000000000000000208dab85c8435dfd66280327b9cc5337f894bd670f9c80df0ba684f0a3f6ff807c0000000000000001000000000000000000000000000000206dd7a46816110430442508860c306738f4a9a0455d87cb1fe469f761064972aa000000000000000100000000000000010000000000000020482529a81b98175b81ad742dd6e90b5edefabf8d4cb4e27a6d7438b3191f6bad000000000000000100000000000000010000000000000020af9f96d3edd125bc1e0a105b9ffdc8e3024dc69325a78b2a02611964156a8e7a000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b9272000000000000000f0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000000000000000000020719a7a35adda0dd9428798c975730f35a62ffd9ee5f58d5ce5167156e67084f50000000000000001000000000000000000000000000000208035ed95221b11da3949bac40001ffa91e1aa82f0256b8cfe76c7f4bf0fd1c4e0000000000000001000000000000000000000000000000207c45dea365dfaace9be8fa260c352ec46e78980143459a4daee0f8ae4c5f9c3900000000000000010000000000000000000000000000002063b18099f915d818ff11dd06d2b4924e18e1b43d1a7d80c4018a6828759c3e2c000000000000000100000000000000010000000000000020659b6b070f44812ca2ffc215c67485587dd0d144e05eb3647148b4f5ca7360120000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000000f00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000000000000000000020b58422241e3aec6a19e7b35858365ab1aa6effa0786c660d8553d9a441f39bb1000000000000000100000000000000000000000000000020f29066e56b551bd94c1d9b20ea9837e3018816f6bbe6996254212afb712566ef000000000000000100000000000000000000000000000020a2765aabd8364f95fefd13729dd6fca6eac9c34f87cf4395c6b2b47a49a90ea9000000000000000100000000000000000000000000000020bd75800a626d45803e0ac76b5c093b70cab826c1e74d4cd0ce8e6c36106f95bc000000000000000100000000000000010000000000000020dbce0776e37eb7c2a9e60b3254ce5ea6bed0db83c8c2e6b120494c0d9ed2a76b000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f000000000000000f000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000000000000000000020abc4d89550572f555b5891e6efb7dbe2935c8f9ac12e51201cb0e7678ab7fcdf000000000000000100000000000000000000000000000020080a9a3f42f4a54cbb835bb52d64ef91d01db5403bdb3911d536aea3f9233f3a000000000000000100000000000000000000000000000020b4e9d6c8ba000d4455adade97f30d5cc513f15422d1dcec0ca5dd87320e49f8b000000000000000100000000000000000000000000000020842c39bed54d7be108142ed95a58b534014e03e9871691ec932be839f2294f4d0000000000000001000000000000000100000000000000207e13fb6690e345dd8bdf6ed863b9142988ca740ed6091c9fae658b221f7d7334000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a000000000000000f000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020a8006aa982f9039a3a2c8aa8579e3c1fc0fa64648c0ae719c2b447cc85aceabd00000000000000010000000000000000000000000000002090339d4d9d726a053742ce39f20998afadf10f29edee03a234c6eb48b105dc45000000000000000100000000000000000000000000000020b4f6da852bb23c13945601e08434ddf7c6c4e89b8d6af5158e57f6fb31c8153d0000000000000001000000000000000000000000000000201de5bb3d887c07d54506473a20db02428ebc54d6a3c978c792d0e6f1f4de0511000000000000000100000000000000010000000000000020cc3aa606fdcbf96592df9e3ecf28c535384ef37bff659d91d2f5982a3a391cb0000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000000f00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f000000000000000600000000000000010000000000000000000000000000002039e257cc4f35788ed43e34433cf2e200d063d51f68ce81ec9f272b948ece0cfd00000000000000010000000000000000000000000000002070919a53202cdeca4903368941c5d387f2cf9f35819747b391647c50e7a103630000000000000001000000000000000000000000000000204e2be0e6e47bf5def4c851e05d186e60b38edd78b0f533be635747623bfd38660000000000000001000000000000000000000000000000206e8232a0c61d237a50e6dcca4dcea8b407b71864d02b4c647447bc948ffe8ebc000000000000000100000000000000010000000000000020af9f96d3edd125bc1e0a105b9ffdc8e3024dc69325a78b2a02611964156a8e7a000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b9272000000000000002d0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e000000000000000600000000000000010000000000000000000000000000002075aefc18f34d0b9d24d3058dba57805ca214d7a2ef5015acfbd1d6dc24784f3a000000000000000100000000000000010000000000000020de539e059aab5793737ab7b6fdd8bd25a14d6221d0d1e94746b7eedd1a695c1b000000000000000100000000000000000000000000000020e8afd6f17c85f21e9f54e435f94a58f7a0002387aeb95b1f945e236e876fb79c000000000000000100000000000000000000000000000020bc2ec48a0ffda0d4d83b497975512e07ddaa2af9c054c3050454c1844d04b72f00000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002d00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000203f065963dc5f827189e63eb7d30fef121bf103875ef233f576ba79373f5e0d1a000000000000000100000000000000010000000000000020efebc253627a341429c9abadf466e6f234321ae2329a1eff0b4623090b8255fb000000000000000100000000000000000000000000000020a41aea614e3c42d5512e485f565d0b5cbdbe584b64aa66bcbcb365fe0aee5b920000000000000001000000000000000000000000000000201dbcfe2b985f1976717c36ba364b4855be4e3991bd1679509516db11cedec7830000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc000000000000002d000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000000000000000000020567491f6309e85f31072a8600cc25ad68a6cb210e9575af989900bca9accc061000000000000000100000000000000010000000000000020045cb3bae5c83f22f010f74c7d82e124ca984a74c53dec23f6011dd20fa1a7da000000000000000100000000000000000000000000000020c9e07df65a2734fdc8ada731511056ceb96e0401caf52c9ebc4e0cfa6a1d2cfa000000000000000100000000000000000000000000000020291814bb23ca041a829cd777ab17a74972cca1d409306698f066b2b12b5b7e450000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e000000000000002d000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020fb91b4582294afb1b43d2468cac5095e5d6fb16ef5bf595aa6b45e3dbc0256ad0000000000000001000000000000000100000000000000208c692dfb3b3d159d3dd5e5985d705f1093973f88ee5561519510e3a20bd734a400000000000000010000000000000000000000000000002034acd2eb98e0c00613dddfde79e2ed59b03091057dd67328a1f2a20fcc30be400000000000000001000000000000000000000000000000207afc3d3f377ea328d0a546da843425d8cd2f61d21026ec31c026288cb3d0698b0000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002d00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f000000000000000600000000000000010000000000000000000000000000002016a3ba51172d2f53ba9fad3c21587fe75b52d7e378cfcf01eb7fecf1d235a8ad000000000000000100000000000000010000000000000020bd73e161e1e45359b0e9c8889819790eabe432440193232b2131d1f1b779c3880000000000000001000000000000000000000000000000207d62274328992c25ecf4a1832951db6fc2f6220d551c0ba04cb7fb7ced5be8a8000000000000000100000000000000000000000000000020d3e115a5a233331eea0c9d1a61f910fb1ddbd717686aaafe4459fc88d54a083e00000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000030000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000000000000000000020e3eda4ff4131e9d50c4e1b30b3fdfbc7666cafe598b33ea7ec6a7dfc746882640000000000000001000000000000000000000000000000203613cb120b2f2975315e760505b179b65712ad13a44c120548e3994dea630cac0000000000000001000000000000000100000000000000209976a44019a2cc25e24d8e0128101ba53e738bdd0bad7d83caec1a8da22b1500000000000000000100000000000000010000000000000020407e1d016b2156134625c6c0acace3fca412163392f1c4920830c79723de997b000000000000000100000000000000010000000000000020659b6b070f44812ca2ffc215c67485587dd0d144e05eb3647148b4f5ca7360120000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000000300000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000000000000000000020ce5207c1efa11695498c32d3b02c09903ed2f951e404843f3480fcbbf7d9587b000000000000000100000000000000000000000000000020d33251146c9bd59a58c273ee3ca84520f45dc00b56606f29155743126e02603b00000000000000010000000000000001000000000000002061c5b4eb1c0a7e74093fb022c5f5951fb2c504423b1f2e8e1f5cb5c30c6896090000000000000001000000000000000100000000000000204bc065f3dd3e3b30a0dac92ed91cf22f8259a480aa87d1c980b53b9a86e52a01000000000000000100000000000000010000000000000020dbce0776e37eb7c2a9e60b3254ce5ea6bed0db83c8c2e6b120494c0d9ed2a76b000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f0000000000000003000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000000000000000000205e57791a50c984b6b9bb11df72fbe8ead7611d5fbbbb1fde2c9f6ca001e3dbf200000000000000010000000000000000000000000000002014004ab029eb12ac1bbfc12bfb4fb3112e55c46e90c1ee691ed8bc36417a2d9300000000000000010000000000000001000000000000002098c6a10d6e69554c9a66612e611bde1613925c85c294eac9ae4153c688311745000000000000000100000000000000010000000000000020a4de7176464be9124785e24d63c211255e653cd53798f2b73611e5f15feef7c70000000000000001000000000000000100000000000000207e13fb6690e345dd8bdf6ed863b9142988ca740ed6091c9fae658b221f7d7334000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a0000000000000003000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f32938000000000000000600000000000000010000000000000000000000000000002056eb38c40ce68d5cd8e95158a0028c5d89bc5658464fad550014da7006c79c93000000000000000100000000000000000000000000000020c15f16573a80f06e1daa20bcbf7091006df20f702348956739551ffe4c3868030000000000000001000000000000000100000000000000209ee50eb11a3de3483219cd22981a0f0b1d7086e1372d0840adab511808b3142a000000000000000100000000000000010000000000000020d2ac9a6c10a81d256c41bc67e07527d5a36e5dc54a2c6b984bb939fbc8ccd413000000000000000100000000000000010000000000000020cc3aa606fdcbf96592df9e3ecf28c535384ef37bff659d91d2f5982a3a391cb0000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000000300000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000000000000000000206e2343713e5ac93fb226ad8336de20b09df4879ab409d9bd31704260ecd2385000000000000000010000000000000000000000000000002051f6631c86c379672c14a62460decb29165cd65db29c3c813e2433ebe1acc94a000000000000000100000000000000010000000000000020e98f654c7d4a4d72873302de6fc89a06a256de8b10b07b607e786bfeb6213059000000000000000100000000000000010000000000000020482529a81b98175b81ad742dd6e90b5edefabf8d4cb4e27a6d7438b3191f6bad000000000000000100000000000000010000000000000020af9f96d3edd125bc1e0a105b9ffdc8e3024dc69325a78b2a02611964156a8e7a000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b927200000000000000290000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e00000000000000060000000000000001000000000000000000000000000000201b81605c89f82931ba1f9c40f6a11252716f4b02a1405f25e3c8d9342ae5141d000000000000000100000000000000010000000000000020a7ab07465b54611179f5d8b3f01dda40efa5ef6a7beb7ddea184943d0014654c0000000000000001000000000000000100000000000000201fc30593ec7d427903dd1f55256e3ffc19a85f70cf2a8e7c0acb4f0a53f1effe000000000000000100000000000000000000000000000020bc2ec48a0ffda0d4d83b497975512e07ddaa2af9c054c3050454c1844d04b72f00000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002900000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000202abc88d2e3de401ab2c938e2d0e3c6ace5b030a54d9aeff0e9218e717f5d843c0000000000000001000000000000000100000000000000206eda94265d040faabf44625d55ab8b4ec7a5f1ec78d8b49e877a868ec6619d3900000000000000010000000000000001000000000000002029ddc1ae85781550b5b8262839b67495818dab865d8bb41a08d9d715a8f5ad470000000000000001000000000000000000000000000000201dbcfe2b985f1976717c36ba364b4855be4e3991bd1679509516db11cedec7830000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000029000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000000000000000000020a99d428a8f4af26c826a4ed7482597440fc869f53f585c86c7250ec11b21a8d8000000000000000100000000000000010000000000000020f27a29d328bdc6caa0ee3f0f6f7c703890f1805c474144e4bcbc87eab56c5335000000000000000100000000000000010000000000000020b21fce2155f8766d6e3d49a87773c41a486b0eb7dabcbfc0cf2963f7b34ecd33000000000000000100000000000000000000000000000020291814bb23ca041a829cd777ab17a74972cca1d409306698f066b2b12b5b7e450000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000029000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f3293800000000000000060000000000000001000000000000000000000000000000206f1230ee39fa4b475a68ca2c21a0a52a3a2d008ace0147d9367ca0b19fbf44b300000000000000010000000000000001000000000000002054f128363693244ccfcb0f852cc53499930006a76f4f8ad53422282d7ba2b1a900000000000000010000000000000001000000000000002032906f8b355f4c2d6b639a6899bcadf4e2cb7fcba76d4ccb412d5c24053801490000000000000001000000000000000000000000000000207afc3d3f377ea328d0a546da843425d8cd2f61d21026ec31c026288cb3d0698b0000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002900000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000000000000000000203e4b5489c39040df94e04b61ae4144d75b3731c552cb2872ea3522b56365e3bb0000000000000001000000000000000100000000000000203b71c8650663ac45104b87aeb469737990a8040255ea025b39bbd29956133147000000000000000100000000000000010000000000000020bbdfd0dd1887a478722c75ca8033a8a2201ecbe77561ec5505c4f7fa0b2fc07f000000000000000100000000000000000000000000000020d3e115a5a233331eea0c9d1a61f910fb1ddbd717686aaafe4459fc88d54a083e00000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f8000000000000002b0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e000000000000000600000000000000010000000000000000000000000000002061cfcaf3abbfaf060d0b53beb3ff1eb4e9923e49873a62b8f2f787d8b5a899190000000000000001000000000000000000000000000000202126eaa429043d207bc31ac0492a95b87916ef3a837b0de7fe9e539054aad1fc0000000000000001000000000000000100000000000000201fc30593ec7d427903dd1f55256e3ffc19a85f70cf2a8e7c0acb4f0a53f1effe000000000000000100000000000000000000000000000020bc2ec48a0ffda0d4d83b497975512e07ddaa2af9c054c3050454c1844d04b72f00000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002b00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000206255d43873b7b75be7cd4e8b0b219cb154af5bb3311754d0462b22dc2b14067e000000000000000100000000000000000000000000000020bc71bb4cd134708a5c1ae6a9909a7062ea805c915ae91379dbc944a73895479f00000000000000010000000000000001000000000000002029ddc1ae85781550b5b8262839b67495818dab865d8bb41a08d9d715a8f5ad470000000000000001000000000000000000000000000000201dbcfe2b985f1976717c36ba364b4855be4e3991bd1679509516db11cedec7830000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc000000000000002b000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000000000000000000208d00adc26372a899eccef502932866d4f43fa5dc239f3670c3aa9a17c630c3e90000000000000001000000000000000000000000000000200d1596615dfc5a5b9db6a95acdad88935034862ea7d81602ed52beca7ddc10c1000000000000000100000000000000010000000000000020b21fce2155f8766d6e3d49a87773c41a486b0eb7dabcbfc0cf2963f7b34ecd33000000000000000100000000000000000000000000000020291814bb23ca041a829cd777ab17a74972cca1d409306698f066b2b12b5b7e450000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e000000000000002b000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020c2662e5a1722b6a5fb781e770e5ae202e52a072f1699d62023b34b97c3b7a664000000000000000100000000000000000000000000000020ede423867df6a5e010be077da1b68626a1fa76bb0e44bf0c569934de8bb4003500000000000000010000000000000001000000000000002032906f8b355f4c2d6b639a6899bcadf4e2cb7fcba76d4ccb412d5c24053801490000000000000001000000000000000000000000000000207afc3d3f377ea328d0a546da843425d8cd2f61d21026ec31c026288cb3d0698b0000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002b00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000000000000000000202882c2da6bbde8b5670630244874d1c7d8bd36d156328ddd10e8f16333966b0f000000000000000100000000000000000000000000000020af8a1f56cf96d57df78368effb90dfbcef3078b07d9d59e9fba5fb26a1a88112000000000000000100000000000000010000000000000020bbdfd0dd1887a478722c75ca8033a8a2201ecbe77561ec5505c4f7fa0b2fc07f000000000000000100000000000000000000000000000020d3e115a5a233331eea0c9d1a61f910fb1ddbd717686aaafe4459fc88d54a083e00000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f8000000000000002d0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e000000000000000600000000000000010000000000000000000000000000002075aefc18f34d0b9d24d3058dba57805ca214d7a2ef5015acfbd1d6dc24784f3a000000000000000100000000000000010000000000000020de539e059aab5793737ab7b6fdd8bd25a14d6221d0d1e94746b7eedd1a695c1b000000000000000100000000000000000000000000000020e8afd6f17c85f21e9f54e435f94a58f7a0002387aeb95b1f945e236e876fb79c000000000000000100000000000000000000000000000020bc2ec48a0ffda0d4d83b497975512e07ddaa2af9c054c3050454c1844d04b72f00000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002d00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000203f065963dc5f827189e63eb7d30fef121bf103875ef233f576ba79373f5e0d1a000000000000000100000000000000010000000000000020efebc253627a341429c9abadf466e6f234321ae2329a1eff0b4623090b8255fb000000000000000100000000000000000000000000000020a41aea614e3c42d5512e485f565d0b5cbdbe584b64aa66bcbcb365fe0aee5b920000000000000001000000000000000000000000000000201dbcfe2b985f1976717c36ba364b4855be4e3991bd1679509516db11cedec7830000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc000000000000002d000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000000000000000000020567491f6309e85f31072a8600cc25ad68a6cb210e9575af989900bca9accc061000000000000000100000000000000010000000000000020045cb3bae5c83f22f010f74c7d82e124ca984a74c53dec23f6011dd20fa1a7da000000000000000100000000000000000000000000000020c9e07df65a2734fdc8ada731511056ceb96e0401caf52c9ebc4e0cfa6a1d2cfa000000000000000100000000000000000000000000000020291814bb23ca041a829cd777ab17a74972cca1d409306698f066b2b12b5b7e450000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e000000000000002d000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020fb91b4582294afb1b43d2468cac5095e5d6fb16ef5bf595aa6b45e3dbc0256ad0000000000000001000000000000000100000000000000208c692dfb3b3d159d3dd5e5985d705f1093973f88ee5561519510e3a20bd734a400000000000000010000000000000000000000000000002034acd2eb98e0c00613dddfde79e2ed59b03091057dd67328a1f2a20fcc30be400000000000000001000000000000000000000000000000207afc3d3f377ea328d0a546da843425d8cd2f61d21026ec31c026288cb3d0698b0000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002d00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f000000000000000600000000000000010000000000000000000000000000002016a3ba51172d2f53ba9fad3c21587fe75b52d7e378cfcf01eb7fecf1d235a8ad000000000000000100000000000000010000000000000020bd73e161e1e45359b0e9c8889819790eabe432440193232b2131d1f1b779c3880000000000000001000000000000000000000000000000207d62274328992c25ecf4a1832951db6fc2f6220d551c0ba04cb7fb7ced5be8a8000000000000000100000000000000000000000000000020d3e115a5a233331eea0c9d1a61f910fb1ddbd717686aaafe4459fc88d54a083e00000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f8000000000000003d0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000000000000000000020ace9659a3eca3c2a1cccbc983ead796d78a748e3786946462f4d9d1fdc3e34ac000000000000000100000000000000010000000000000020bcf05d3c5eb71fed288eb4b419a188c8860206b533025c802ed5cd504e55c1b00000000000000001000000000000000000000000000000207a1b3b2568d13a2eef371f9a6406e1e5ea8ea67cf4f7c3e9e841cfc385002de400000000000000010000000000000000000000000000002093496aa9b95cdfb66da9c0d5bc5df817484a2a333e9349baecc93bd74a2ca4730000000000000001000000000000000000000000000000209fbca920ee0c87a956f99c4f1362a800f24be48892fb636d69c31e2a28f6ac89000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000003d00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000000000000000000020c15d51cf18b6ba8c12ed152e4a515b632b24633b5f6b22f7103649e18d6f1f9e0000000000000001000000000000000100000000000000208b25ecd6ff537916132b0a2c9828a23713e826894f39c2af049fb06a056e2443000000000000000100000000000000000000000000000020ca4326b0ac9a40f7962046fbc2ae4a247b71dee20ff8514aa46bc9a7f710d2460000000000000001000000000000000000000000000000200c0b006e9ce5ab8dee54461051bb96c286fd71b34dc6edc2cc81ccb3100d316500000000000000010000000000000000000000000000002009d96f34c0d0d0c579558695e2590b6b8a00dc82f66b0ed035313048e74ae7cb000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc000000000000003d000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000000000000000000020938fa0a6b1c2b75bdf6f4ba90387cbcf0b23762fb05befccb17d0cea24fe684000000000000000010000000000000001000000000000002070475275547a4e19ad5111cbc2761f67ebbb11db7b19d3e5da5b0a1829c4ec5a0000000000000001000000000000000000000000000000205863974ae834cb6f7cdda3179a5eb9db26199ae6501319daa7e9350565a01a52000000000000000100000000000000000000000000000020a724c8ade8149e1cc611772680cb6d18385ad3f0e4e5bb60e4780827cedd136c0000000000000001000000000000000000000000000000209e4aa536330b2d7a31d018a0c66389dc79b3652f4ba9a731d52185c1d2764761000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e000000000000003d000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020f6d0f9998a4caeaedf31272eebc9c4f6855dfc972528fca3c6aedb2b52959ee40000000000000001000000000000000100000000000000200bbb509da79f5f8b438035f866b33e7d35ea0d24c196577e58c711e996e9d67a000000000000000100000000000000000000000000000020e0d59165174c1b01a1778b0c00ea048f351711781eb9b7905bac635125041c7c000000000000000100000000000000000000000000000020488cdfd2909dddf32aafba620adfd844cf7f0e6eae4371d0ed616315e9b3d1e900000000000000010000000000000000000000000000002068e96971008bee2f90df118bffada99c074a0d2c49bfc1b99915b2dcf51048a20000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000003d00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f000000000000000600000000000000010000000000000000000000000000002078d73dc05e52ee7c8e19682c5f83941c32eccea8702643ba4954454340dd7d48000000000000000100000000000000010000000000000020b2bd6c7bce44e8cb1dd2c1ada3f46a4ef84aa70a4f6d582427f82789c25091290000000000000001000000000000000000000000000000207307458ebfa1b463080bdf0c8b226e68af95d3ce03c81f574dc53886fc92c5510000000000000001000000000000000000000000000000200aeeef018d0928774997734b759241fff2f2f118735c3cc567f475600c93c6450000000000000001000000000000000000000000000000209c3cc5f2e03bbb6fbb6a00377debdbb0ff07e93db8e65b607e9ce577d2bff4060000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000040000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e00000000000000060000000000000001000000000000000100000000000000209b78a7ddb1bdf726d695cf1b5960843be18843d5f9fcd02b2632d5c5a2dd6e330000000000000001000000000000000100000000000000202feb59037d37e58c7ae6981240627157e2d56c7ce73366769597e4a404b62e4c000000000000000100000000000000000000000000000020c8a9706d43613feef1f7182c33ec47958f103c466f0a5c331ae15d21af056b2a000000000000000100000000000000010000000000000020407e1d016b2156134625c6c0acace3fca412163392f1c4920830c79723de997b000000000000000100000000000000010000000000000020659b6b070f44812ca2ffc215c67485587dd0d144e05eb3647148b4f5ca7360120000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000000400000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000010000000000000020b715b8dc2b4f2279715881cde68ae43f478d157a6332f5469da1e301742325780000000000000001000000000000000100000000000000208c082649fedb2d6d1df100e532a8001567a341813a6a0fe1b04813431f53cd33000000000000000100000000000000000000000000000020a83ce3f6822f2805da6f235cd57c1e49249433b8646938623efd0a040bb1ded60000000000000001000000000000000100000000000000204bc065f3dd3e3b30a0dac92ed91cf22f8259a480aa87d1c980b53b9a86e52a01000000000000000100000000000000010000000000000020dbce0776e37eb7c2a9e60b3254ce5ea6bed0db83c8c2e6b120494c0d9ed2a76b000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f0000000000000004000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000010000000000000020d064e61c274d95bb5e9e0234973dcc2f97dfef3bb3efcb34c8d9a5cbf845a26c0000000000000001000000000000000100000000000000206c7de327c4cde9c353811da48a1929a019d15fb4d30226f8005d95a3a5043ff200000000000000010000000000000000000000000000002057b19820ae67477ff0fc9a389396aeb670b7c8e05836cc5910b5ddb99ab4caf9000000000000000100000000000000010000000000000020a4de7176464be9124785e24d63c211255e653cd53798f2b73611e5f15feef7c70000000000000001000000000000000100000000000000207e13fb6690e345dd8bdf6ed863b9142988ca740ed6091c9fae658b221f7d7334000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a0000000000000004000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f32938000000000000000600000000000000010000000000000001000000000000002037f3c3334c4ccdf4c7af03a4e98d09045fbf91bd4aeda27221f4074fc87ae2f40000000000000001000000000000000100000000000000200145bfa689a590a70838a593886aa43d2fcfc263d3156b731a198b5f60d17cb80000000000000001000000000000000000000000000000202ca61985fbc5910957e78a916da8508a3ead835fe2a43c85aafb20f5955f0ca0000000000000000100000000000000010000000000000020d2ac9a6c10a81d256c41bc67e07527d5a36e5dc54a2c6b984bb939fbc8ccd413000000000000000100000000000000010000000000000020cc3aa606fdcbf96592df9e3ecf28c535384ef37bff659d91d2f5982a3a391cb0000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000000400000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000010000000000000020acd025f157bb36e8a2a301e8d6d88f75bfd49283ffaf5d492c67b4a729a0984f0000000000000001000000000000000100000000000000202ff68e275e9f3c1b3b7f743a4782f617731151b00ff2a2b3c7ad2c740a85ee730000000000000001000000000000000000000000000000206dd7a46816110430442508860c306738f4a9a0455d87cb1fe469f761064972aa000000000000000100000000000000010000000000000020482529a81b98175b81ad742dd6e90b5edefabf8d4cb4e27a6d7438b3191f6bad000000000000000100000000000000010000000000000020af9f96d3edd125bc1e0a105b9ffdc8e3024dc69325a78b2a02611964156a8e7a000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b9272000000000000001d0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e000000000000000600000000000000010000000000000000000000000000002064c557d55375fb980243316cc094e1409b4134756a1742dc867410611a380c9300000000000000010000000000000001000000000000002012edb90efc6a65c82406e9e729c69705717bb9213763989a3e429db69b1fa1be000000000000000100000000000000000000000000000020ab170dad02da8e5a4c268e132c454adc4b6729b907eb3b0647e0b75ba06ca1ae000000000000000100000000000000000000000000000020261c2de001295b8ae6db8a3110d2d193b80167fee59f8f542a00ce1709747a6900000000000000010000000000000000000000000000002028d0668b3b0bb626ddb7371edbb5222936f68264e2cfb9376038323928d12a950000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000001d00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000209cd7e98a2d2e09ab57fbd65b8471e6f11d77a24e5ca150505ee781dbd33e9756000000000000000100000000000000010000000000000020070faa4b0f39e22d43da05eaf01eaa74ae4dfa9cf3b4f146bc3076585fa9c02700000000000000010000000000000000000000000000002024299b0256071ee4c8943b75440fdb14cb0a87a9d470ca0d23930e470c29fd2d00000000000000010000000000000000000000000000002068af7e3f604105e672bb008f7f6497a71b4230ffaedefc6e201e3a965f80aad9000000000000000100000000000000000000000000000020d7f7d11996573b5da0d2cbe7d58b7d9ee40d6b31bbfd992e1387dae096d31597000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f000000000000001d000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000000000000000000201d6a369b05cc67293f0393af51a7d4056bc52be5156909401e804d159169447b0000000000000001000000000000000100000000000000201581a9112f15b5db73805221511d3b17bb0b44a8d5bdb5961d05b119e83069f80000000000000001000000000000000000000000000000201f0f92e1ba9dfc9c805ddaed879861bdc05c3a78b978e8bb3a8c041349d557fb0000000000000001000000000000000000000000000000202f82c0c1a186d9e1264fb0ac164a09274cdc7fa84262a440da9649a8aa36aaef000000000000000100000000000000000000000000000020824ce8426988565f955f44ee03d626fea805a15ec4db70b129a69a2d7b15a5aa000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a000000000000001d000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020dbdb6a4cc8b17c5ea2d125c6af18f1a5a232cbda042546a5e8b8a220e858de5e000000000000000100000000000000010000000000000020ab7aae7bbf9e20bdeb1ab6bbe7a70c6cd858e5d76f9f05de9e38ec9f931a3ec50000000000000001000000000000000000000000000000208e9ca24717ee2452a64953880cd16ce2ed80e0ab655a248e3a0d70cb8d9ef4b8000000000000000100000000000000000000000000000020cbb94a1fa90daec34851502087bc06a9b8934f9e2e87d1242484cea77e968a42000000000000000100000000000000000000000000000020d488fb112c8e7e22dfab501043651ee3017cc449d7e2043156d45aaf96580343000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000001d00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000000000000000000207bebb1b5de11152457d291912534c5ffe07f4ef1797e65901fa68e2f90056fb7000000000000000100000000000000010000000000000020d5f15fb4972b5ea2159a542111a45a1ff217a413588328aa49a47ed613fc70570000000000000001000000000000000000000000000000201a61d9687a39c69fc39cbb583e8569c27f226321d4438d1f17092925ea3cf032000000000000000100000000000000000000000000000020c1e67f4fe465546990e3ad91e731dd95b1c88152d8ecc54d60d94cbfdca528650000000000000001000000000000000000000000000000200b1317ae38b570b4c049c419190fae276bb0ef81fc42fd65f1a137ebd541d9ae000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b927200000000000000260000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e000000000000000600000000000000010000000000000001000000000000002002264f66321999533318a66b630c922ed2c8afd79f75ad3ad7e2546988d2c229000000000000000100000000000000000000000000000020ce6cbec44c6750b87c769f2196e739261249641951d381617e8405bbf0202556000000000000000100000000000000000000000000000020e8b9aa258428d11be94220c2dd6dc9be6f7dfbf6c563495f34ac19fe54c7a02b000000000000000100000000000000010000000000000020acd5d62b97e6c33a02d4331e361fc284fac3d4751616f3f316c28ea08f63c5d000000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002600000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000100000000000000205e9bb0baae243491c7eb032dee99b7d36c82ec05b60e64eddd17c8be11cd6d5600000000000000010000000000000000000000000000002060fdc81936cb56fefc4ae765ed50a0407b33f19eff3eee870f07317cdb2ef330000000000000000100000000000000000000000000000020ed1cdc4693f53dc4db6ac19967a9854c6557cdba9dd1ef73aabe5680048340b900000000000000010000000000000001000000000000002039c719fa3f6fd86de45cdcbe116bc929d735098bfd57ba95c955727b3f86087f0000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000026000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000010000000000000020dc8aa5c3c55a97bdb7bd81ca0c78663eb6c0009ca983ed54c552867d176e3004000000000000000100000000000000000000000000000020a09e4a0cff4a2719030a0f657ce42c12a2cd4cc27b8cdfd21d1cbcf868b7190b00000000000000010000000000000000000000000000002057270586231d0130eb017de9b965c71be11d39fda49cb46ecc4fc4cf2baff38a000000000000000100000000000000010000000000000020a814a34f76af1733811481d105364da0ad5c6889b20ac62ec695d95bad6ccfa40000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000026000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000010000000000000020d9d44b09d08b8219649fee03bc1d8d6f144f9d725dc46d7d1cd32c7712d6cd30000000000000000100000000000000000000000000000020a9887501139d04ce4e8fa79b998c30f58c8d5ba78c911d4db7001a5436dc18fd0000000000000001000000000000000000000000000000208acf7b66bc86786435ec6708d199d5b065b2e43f560fdf2547c4cd28ea0352ab000000000000000100000000000000010000000000000020609f06fb0f917dd5aff48faaa7c9a26932b0164e4ceb2fcb49512a7126aed0240000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002600000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000010000000000000020884f313cc7a8412ea0712b8a5714e7da07720e79a0b4fd720bc61b0bf836cec400000000000000010000000000000000000000000000002032ce4870dfa2fb4284adb38aa43f49a3a3c28255497b93a85731134cd0486a2d000000000000000100000000000000000000000000000020d8d5941d890c32e24cc840a8ee7a932a739bad1dbbbe6985a9d3ea1a07252ddc000000000000000100000000000000010000000000000020581702be02dcae0d01501fe971bb01119d074a9fa43014b6ad4081e583d632e900000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000140000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000010000000000000020d13b1182595fb7c8fd9c38b06609e98ff298f43b1dfe5d8b5ca476009ca9b933000000000000000100000000000000010000000000000020c6b381e0454db795b5b8e2c00528e8909b1dd390294e937bf0b6fb4466a5dbee0000000000000001000000000000000000000000000000204ea8cf9cce17e7e1cd760ecafb340641ca9c38dc3307fbbd00021b4d76fbf0ae0000000000000001000000000000000100000000000000201ec85a72ab785b7c48cb10710fca42c4de34b9d99094486a7cb14fb0a459812f00000000000000010000000000000000000000000000002028d0668b3b0bb626ddb7371edbb5222936f68264e2cfb9376038323928d12a950000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000001400000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000010000000000000020892d112af16dd31aa00e78a4b486da7d03ccf553eeed08d731856f357b0d56730000000000000001000000000000000100000000000000204e89e96754b7e307d08e159877a517f8dae2dd670159ccae091ca417e29e0b160000000000000001000000000000000000000000000000205b81613de55d7495bc7e3454f119dc5ff6d98575a97ce0feed94a8a81ef4c58300000000000000010000000000000001000000000000002048060202f26e09afa01220fe2b845539f7f28e73ab6b16690996cf8c05046244000000000000000100000000000000000000000000000020d7f7d11996573b5da0d2cbe7d58b7d9ee40d6b31bbfd992e1387dae096d31597000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f0000000000000014000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000100000000000000203991f987ae43bdb2cb460f4b9117a831f120c1df621ef35f441c88f7b2fe768e00000000000000010000000000000001000000000000002041a778046c93dbd5892bb63389616c7fdabbff935eb68f5452f508f9f65f89050000000000000001000000000000000000000000000000202563891c5fdc655c709322f431d4685310ab6de8a04381b461a35a918206b74b0000000000000001000000000000000100000000000000200aed2038bedd56c46aa92e044dbb04e9d6d047ddb3819c31056472a336358fb2000000000000000100000000000000000000000000000020824ce8426988565f955f44ee03d626fea805a15ec4db70b129a69a2d7b15a5aa000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a0000000000000014000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000010000000000000020f065628a8cc1acb32c10fca6cce7ff62f54b3006f7fc53109fe3de9eb63070c7000000000000000100000000000000010000000000000020197823063594ed9cdc1422e186f0f109a3276a516115aaf6b8d28dafd7912882000000000000000100000000000000000000000000000020719cc0a76d30bc5fc3d188278907a26c1bb12d95f610d264295d81fa4961caf70000000000000001000000000000000100000000000000204e291298e718e4215dade20a34700b89a0336d8bede04b427e3792a09b3a48cb000000000000000100000000000000000000000000000020d488fb112c8e7e22dfab501043651ee3017cc449d7e2043156d45aaf96580343000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000001400000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000010000000000000020e6547ddea77102bb5b0769fa0ec49ae2993ebcb244cbd2d69f3bfd6fb3737cb90000000000000001000000000000000100000000000000200cbd009198ff0a8e110c81761a286e88fd0450ed686f921f3937fd0895542325000000000000000100000000000000000000000000000020b7d60652bb0211f3ad5aed0c840caa5d9da58707a326e5389e94ec43ff4bd2f1000000000000000100000000000000010000000000000020b4bfefcc77fb1c06d34fae0ff743553b71633d0f2755a6c510a2a7a843af6fbe0000000000000001000000000000000000000000000000200b1317ae38b570b4c049c419190fae276bb0ef81fc42fd65f1a137ebd541d9ae000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b927200000000000000280000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000010000000000000020e2efc0c8de247c9438c3cdc5219227339f21ddd9caa55bab11035618652dd797000000000000000100000000000000010000000000000020a7ab07465b54611179f5d8b3f01dda40efa5ef6a7beb7ddea184943d0014654c0000000000000001000000000000000100000000000000201fc30593ec7d427903dd1f55256e3ffc19a85f70cf2a8e7c0acb4f0a53f1effe000000000000000100000000000000000000000000000020bc2ec48a0ffda0d4d83b497975512e07ddaa2af9c054c3050454c1844d04b72f00000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002800000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000100000000000000208cfd329d11d0511e44efb6c45cb19bbd79f020872b1914221f03f74772df0f780000000000000001000000000000000100000000000000206eda94265d040faabf44625d55ab8b4ec7a5f1ec78d8b49e877a868ec6619d3900000000000000010000000000000001000000000000002029ddc1ae85781550b5b8262839b67495818dab865d8bb41a08d9d715a8f5ad470000000000000001000000000000000000000000000000201dbcfe2b985f1976717c36ba364b4855be4e3991bd1679509516db11cedec7830000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000028000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000010000000000000020189815d4b7880b6e5b19f3f1fc059d7abc004a1c7efbd8330127640e1d8d5c52000000000000000100000000000000010000000000000020f27a29d328bdc6caa0ee3f0f6f7c703890f1805c474144e4bcbc87eab56c5335000000000000000100000000000000010000000000000020b21fce2155f8766d6e3d49a87773c41a486b0eb7dabcbfc0cf2963f7b34ecd33000000000000000100000000000000000000000000000020291814bb23ca041a829cd777ab17a74972cca1d409306698f066b2b12b5b7e450000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000028000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f3293800000000000000060000000000000001000000000000000100000000000000208fcc56b1c6d457aa8bcf6531f86007bd0c1554aaeb03e10977438cba39aa920500000000000000010000000000000001000000000000002054f128363693244ccfcb0f852cc53499930006a76f4f8ad53422282d7ba2b1a900000000000000010000000000000001000000000000002032906f8b355f4c2d6b639a6899bcadf4e2cb7fcba76d4ccb412d5c24053801490000000000000001000000000000000000000000000000207afc3d3f377ea328d0a546da843425d8cd2f61d21026ec31c026288cb3d0698b0000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002800000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000010000000000000020f398ecc257c9c2a22b7cfdd2ee9df79a0764838bfc331ec8ea9acf0cad0b814f0000000000000001000000000000000100000000000000203b71c8650663ac45104b87aeb469737990a8040255ea025b39bbd29956133147000000000000000100000000000000010000000000000020bbdfd0dd1887a478722c75ca8033a8a2201ecbe77561ec5505c4f7fa0b2fc07f000000000000000100000000000000000000000000000020d3e115a5a233331eea0c9d1a61f910fb1ddbd717686aaafe4459fc88d54a083e00000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f8000000000000001d0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e000000000000000600000000000000010000000000000000000000000000002064c557d55375fb980243316cc094e1409b4134756a1742dc867410611a380c9300000000000000010000000000000001000000000000002012edb90efc6a65c82406e9e729c69705717bb9213763989a3e429db69b1fa1be000000000000000100000000000000000000000000000020ab170dad02da8e5a4c268e132c454adc4b6729b907eb3b0647e0b75ba06ca1ae000000000000000100000000000000000000000000000020261c2de001295b8ae6db8a3110d2d193b80167fee59f8f542a00ce1709747a6900000000000000010000000000000000000000000000002028d0668b3b0bb626ddb7371edbb5222936f68264e2cfb9376038323928d12a950000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000001d00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000209cd7e98a2d2e09ab57fbd65b8471e6f11d77a24e5ca150505ee781dbd33e9756000000000000000100000000000000010000000000000020070faa4b0f39e22d43da05eaf01eaa74ae4dfa9cf3b4f146bc3076585fa9c02700000000000000010000000000000000000000000000002024299b0256071ee4c8943b75440fdb14cb0a87a9d470ca0d23930e470c29fd2d00000000000000010000000000000000000000000000002068af7e3f604105e672bb008f7f6497a71b4230ffaedefc6e201e3a965f80aad9000000000000000100000000000000000000000000000020d7f7d11996573b5da0d2cbe7d58b7d9ee40d6b31bbfd992e1387dae096d31597000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f000000000000001d000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000000000000000000201d6a369b05cc67293f0393af51a7d4056bc52be5156909401e804d159169447b0000000000000001000000000000000100000000000000201581a9112f15b5db73805221511d3b17bb0b44a8d5bdb5961d05b119e83069f80000000000000001000000000000000000000000000000201f0f92e1ba9dfc9c805ddaed879861bdc05c3a78b978e8bb3a8c041349d557fb0000000000000001000000000000000000000000000000202f82c0c1a186d9e1264fb0ac164a09274cdc7fa84262a440da9649a8aa36aaef000000000000000100000000000000000000000000000020824ce8426988565f955f44ee03d626fea805a15ec4db70b129a69a2d7b15a5aa000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a000000000000001d000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020dbdb6a4cc8b17c5ea2d125c6af18f1a5a232cbda042546a5e8b8a220e858de5e000000000000000100000000000000010000000000000020ab7aae7bbf9e20bdeb1ab6bbe7a70c6cd858e5d76f9f05de9e38ec9f931a3ec50000000000000001000000000000000000000000000000208e9ca24717ee2452a64953880cd16ce2ed80e0ab655a248e3a0d70cb8d9ef4b8000000000000000100000000000000000000000000000020cbb94a1fa90daec34851502087bc06a9b8934f9e2e87d1242484cea77e968a42000000000000000100000000000000000000000000000020d488fb112c8e7e22dfab501043651ee3017cc449d7e2043156d45aaf96580343000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000001d00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000000000000000000207bebb1b5de11152457d291912534c5ffe07f4ef1797e65901fa68e2f90056fb7000000000000000100000000000000010000000000000020d5f15fb4972b5ea2159a542111a45a1ff217a413588328aa49a47ed613fc70570000000000000001000000000000000000000000000000201a61d9687a39c69fc39cbb583e8569c27f226321d4438d1f17092925ea3cf032000000000000000100000000000000000000000000000020c1e67f4fe465546990e3ad91e731dd95b1c88152d8ecc54d60d94cbfdca528650000000000000001000000000000000000000000000000200b1317ae38b570b4c049c419190fae276bb0ef81fc42fd65f1a137ebd541d9ae000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b927200000000000000080000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000010000000000000020b2a09e1bba6978bd8c32031dac637f0f3d5206749723d885b5db7c283e254cac0000000000000001000000000000000100000000000000203b055f5ec21cdd2d321937c699cc5b005cfd392544e209343f6f4bc3609d50a8000000000000000100000000000000010000000000000020212011d70596d8f444a02b2551c63793bb6214725d0b1d4e2d024902a719d74d00000000000000010000000000000000000000000000002063b18099f915d818ff11dd06d2b4924e18e1b43d1a7d80c4018a6828759c3e2c000000000000000100000000000000010000000000000020659b6b070f44812ca2ffc215c67485587dd0d144e05eb3647148b4f5ca7360120000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000000800000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d6000000000000000600000000000000010000000000000001000000000000002025553f8f686626057f8d663cb54d66c5a84f60cbc033a86e180f41c8543523ce0000000000000001000000000000000100000000000000205c4181331efc246b6fd787984126b3c735f6b747840454826726ab672228df2000000000000000010000000000000001000000000000002008c5fc936786cf9d0af43c12be03cc772b25837622cd42f08df1c66e5e116a2a000000000000000100000000000000000000000000000020bd75800a626d45803e0ac76b5c093b70cab826c1e74d4cd0ce8e6c36106f95bc000000000000000100000000000000010000000000000020dbce0776e37eb7c2a9e60b3254ce5ea6bed0db83c8c2e6b120494c0d9ed2a76b000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f0000000000000008000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f299941856000000000000000600000000000000010000000000000001000000000000002028d53f53d8529a7e90d5ccae7564158bec1af6fa3a5a8ba8cbfb9aa9a6aa048c000000000000000100000000000000010000000000000020a7170bc0cfb0066ee2a6bc38ae323cf6155ef29a640796587131389fc7ddd196000000000000000100000000000000010000000000000020f87937c3d7f9ea889556bed01a00031a67448288e6ad311f669b4408eebc01ac000000000000000100000000000000000000000000000020842c39bed54d7be108142ed95a58b534014e03e9871691ec932be839f2294f4d0000000000000001000000000000000100000000000000207e13fb6690e345dd8bdf6ed863b9142988ca740ed6091c9fae658b221f7d7334000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a0000000000000008000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000010000000000000020b54a72cb89ccf52e566d99215fd66a8ab35c3e9c5fa456e5a43fc8eb9aa1832100000000000000010000000000000001000000000000002076f0d827402b47129db7da8669550ecbc1c84eddedb8bef62b4d08efce600e37000000000000000100000000000000010000000000000020ad2c19c26d0488214886b03e7e4bc57d130a100d9e13ced4921d6472e2238a2e0000000000000001000000000000000000000000000000201de5bb3d887c07d54506473a20db02428ebc54d6a3c978c792d0e6f1f4de0511000000000000000100000000000000010000000000000020cc3aa606fdcbf96592df9e3ecf28c535384ef37bff659d91d2f5982a3a391cb0000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000000800000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000010000000000000020bcf5094d09b6b17179ba3436f1b7be98ca6ba41a91456421e20664fb7f7443820000000000000001000000000000000100000000000000201df9ab42d54f8ea624eecc57fce828882c6b80c722d86bb88d11443ff87766af000000000000000100000000000000010000000000000020630f361882ada56a075e947b144639b306577494cfa2d14d2fd11f09586072a00000000000000001000000000000000000000000000000206e8232a0c61d237a50e6dcca4dcea8b407b71864d02b4c647447bc948ffe8ebc000000000000000100000000000000010000000000000020af9f96d3edd125bc1e0a105b9ffdc8e3024dc69325a78b2a02611964156a8e7a000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b9272000000000000003d0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000000000000000000020ace9659a3eca3c2a1cccbc983ead796d78a748e3786946462f4d9d1fdc3e34ac000000000000000100000000000000010000000000000020bcf05d3c5eb71fed288eb4b419a188c8860206b533025c802ed5cd504e55c1b00000000000000001000000000000000000000000000000207a1b3b2568d13a2eef371f9a6406e1e5ea8ea67cf4f7c3e9e841cfc385002de400000000000000010000000000000000000000000000002093496aa9b95cdfb66da9c0d5bc5df817484a2a333e9349baecc93bd74a2ca4730000000000000001000000000000000000000000000000209fbca920ee0c87a956f99c4f1362a800f24be48892fb636d69c31e2a28f6ac89000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000003d00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000000000000000000020c15d51cf18b6ba8c12ed152e4a515b632b24633b5f6b22f7103649e18d6f1f9e0000000000000001000000000000000100000000000000208b25ecd6ff537916132b0a2c9828a23713e826894f39c2af049fb06a056e2443000000000000000100000000000000000000000000000020ca4326b0ac9a40f7962046fbc2ae4a247b71dee20ff8514aa46bc9a7f710d2460000000000000001000000000000000000000000000000200c0b006e9ce5ab8dee54461051bb96c286fd71b34dc6edc2cc81ccb3100d316500000000000000010000000000000000000000000000002009d96f34c0d0d0c579558695e2590b6b8a00dc82f66b0ed035313048e74ae7cb000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc000000000000003d000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000000000000000000020938fa0a6b1c2b75bdf6f4ba90387cbcf0b23762fb05befccb17d0cea24fe684000000000000000010000000000000001000000000000002070475275547a4e19ad5111cbc2761f67ebbb11db7b19d3e5da5b0a1829c4ec5a0000000000000001000000000000000000000000000000205863974ae834cb6f7cdda3179a5eb9db26199ae6501319daa7e9350565a01a52000000000000000100000000000000000000000000000020a724c8ade8149e1cc611772680cb6d18385ad3f0e4e5bb60e4780827cedd136c0000000000000001000000000000000000000000000000209e4aa536330b2d7a31d018a0c66389dc79b3652f4ba9a731d52185c1d2764761000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e000000000000003d000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020f6d0f9998a4caeaedf31272eebc9c4f6855dfc972528fca3c6aedb2b52959ee40000000000000001000000000000000100000000000000200bbb509da79f5f8b438035f866b33e7d35ea0d24c196577e58c711e996e9d67a000000000000000100000000000000000000000000000020e0d59165174c1b01a1778b0c00ea048f351711781eb9b7905bac635125041c7c000000000000000100000000000000000000000000000020488cdfd2909dddf32aafba620adfd844cf7f0e6eae4371d0ed616315e9b3d1e900000000000000010000000000000000000000000000002068e96971008bee2f90df118bffada99c074a0d2c49bfc1b99915b2dcf51048a20000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000003d00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f000000000000000600000000000000010000000000000000000000000000002078d73dc05e52ee7c8e19682c5f83941c32eccea8702643ba4954454340dd7d48000000000000000100000000000000010000000000000020b2bd6c7bce44e8cb1dd2c1ada3f46a4ef84aa70a4f6d582427f82789c25091290000000000000001000000000000000000000000000000207307458ebfa1b463080bdf0c8b226e68af95d3ce03c81f574dc53886fc92c5510000000000000001000000000000000000000000000000200aeeef018d0928774997734b759241fff2f2f118735c3cc567f475600c93c6450000000000000001000000000000000000000000000000209c3cc5f2e03bbb6fbb6a00377debdbb0ff07e93db8e65b607e9ce577d2bff4060000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f8000000000000001e0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000010000000000000020ba15f8caa378deb827f35ab84ee3c8ef16117ea97e57e0f20b14ae88d236b6ff000000000000000100000000000000000000000000000020a6a1702db35b748e42f0f110ec40716f747145613b2b25986a5c3dc74e1ab13a000000000000000100000000000000000000000000000020ab170dad02da8e5a4c268e132c454adc4b6729b907eb3b0647e0b75ba06ca1ae000000000000000100000000000000000000000000000020261c2de001295b8ae6db8a3110d2d193b80167fee59f8f542a00ce1709747a6900000000000000010000000000000000000000000000002028d0668b3b0bb626ddb7371edbb5222936f68264e2cfb9376038323928d12a950000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000001e00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d6000000000000000600000000000000010000000000000001000000000000002085351021aea650c4597031fb7dc932b99054b360e97ca572bb6bece35ae11bdf0000000000000001000000000000000000000000000000203a2146e92a3ad3706b36813e4c45136f975811c6589e6331024a956042e7768c00000000000000010000000000000000000000000000002024299b0256071ee4c8943b75440fdb14cb0a87a9d470ca0d23930e470c29fd2d00000000000000010000000000000000000000000000002068af7e3f604105e672bb008f7f6497a71b4230ffaedefc6e201e3a965f80aad9000000000000000100000000000000000000000000000020d7f7d11996573b5da0d2cbe7d58b7d9ee40d6b31bbfd992e1387dae096d31597000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f000000000000001e000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000010000000000000020f821bc8956540d674f85944695ec2cdab831a2a389a2d11a3d7cb0e72d70c402000000000000000100000000000000000000000000000020d556e53e89946cc6a63053d2f237bd42df808fd51872fe3a16ac4cf4f89b865e0000000000000001000000000000000000000000000000201f0f92e1ba9dfc9c805ddaed879861bdc05c3a78b978e8bb3a8c041349d557fb0000000000000001000000000000000000000000000000202f82c0c1a186d9e1264fb0ac164a09274cdc7fa84262a440da9649a8aa36aaef000000000000000100000000000000000000000000000020824ce8426988565f955f44ee03d626fea805a15ec4db70b129a69a2d7b15a5aa000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a000000000000001e000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f32938000000000000000600000000000000010000000000000001000000000000002030d6b49905be576af2c974f08de40dec367587e3f626cc9bc52f04670a7003580000000000000001000000000000000000000000000000207d27cce8e7d4819cb9c3a6e141c2d34d37acb8e1fc1075a3bb2d20b8408e984c0000000000000001000000000000000000000000000000208e9ca24717ee2452a64953880cd16ce2ed80e0ab655a248e3a0d70cb8d9ef4b8000000000000000100000000000000000000000000000020cbb94a1fa90daec34851502087bc06a9b8934f9e2e87d1242484cea77e968a42000000000000000100000000000000000000000000000020d488fb112c8e7e22dfab501043651ee3017cc449d7e2043156d45aaf96580343000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000001e00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000100000000000000208f526051780fa2a3d112fdedee88168162589e00a4943c032e8b91bc4c53d9840000000000000001000000000000000000000000000000202671dd30be892f7113a73cf7f3a8445d53ddc40a8e9973ee587af2a0c1606cb80000000000000001000000000000000000000000000000201a61d9687a39c69fc39cbb583e8569c27f226321d4438d1f17092925ea3cf032000000000000000100000000000000000000000000000020c1e67f4fe465546990e3ad91e731dd95b1c88152d8ecc54d60d94cbfdca528650000000000000001000000000000000000000000000000200b1317ae38b570b4c049c419190fae276bb0ef81fc42fd65f1a137ebd541d9ae000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b9272000000000000003f0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e00000000000000060000000000000001000000000000000000000000000000205d4c779ca056d5a43fdb294c291c55feb6effb474b2ffa15a47c7826b94cf035000000000000000100000000000000000000000000000020e847feaf559ce80754223c34cd9f84ef8630f27f2ec5da9b17c0184e56ac0bbe0000000000000001000000000000000000000000000000207a1b3b2568d13a2eef371f9a6406e1e5ea8ea67cf4f7c3e9e841cfc385002de400000000000000010000000000000000000000000000002093496aa9b95cdfb66da9c0d5bc5df817484a2a333e9349baecc93bd74a2ca4730000000000000001000000000000000000000000000000209fbca920ee0c87a956f99c4f1362a800f24be48892fb636d69c31e2a28f6ac89000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000003f00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000000000000000000020837fe16eb995227a7f26513d8857ff01ce7279bd091bf82978429b062e6c7e0c000000000000000100000000000000000000000000000020133681acf78f078b649528d2bc4ebbf814409928ff3b11c5c2888bc599bdb55c000000000000000100000000000000000000000000000020ca4326b0ac9a40f7962046fbc2ae4a247b71dee20ff8514aa46bc9a7f710d2460000000000000001000000000000000000000000000000200c0b006e9ce5ab8dee54461051bb96c286fd71b34dc6edc2cc81ccb3100d316500000000000000010000000000000000000000000000002009d96f34c0d0d0c579558695e2590b6b8a00dc82f66b0ed035313048e74ae7cb000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc000000000000003f000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000000000000000000020d833267e4e1548dcec354bdd387dc676d52a3c6577c9bde310a8ea9b7d1462ae0000000000000001000000000000000000000000000000209ba171b4bbcf3a9c543a04d5d142e4e190ad4d81bcd4c08138e05f5dc9127d9e0000000000000001000000000000000000000000000000205863974ae834cb6f7cdda3179a5eb9db26199ae6501319daa7e9350565a01a52000000000000000100000000000000000000000000000020a724c8ade8149e1cc611772680cb6d18385ad3f0e4e5bb60e4780827cedd136c0000000000000001000000000000000000000000000000209e4aa536330b2d7a31d018a0c66389dc79b3652f4ba9a731d52185c1d2764761000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e000000000000003f000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020eca7ca33c2bb4170ac3f035f05468eeb2191e8082d35f89f81cd2a2b7468d41200000000000000010000000000000000000000000000002005ecb630e13c931db03887d2de361943a7433cd3a25d69061ef78222bc734cd6000000000000000100000000000000000000000000000020e0d59165174c1b01a1778b0c00ea048f351711781eb9b7905bac635125041c7c000000000000000100000000000000000000000000000020488cdfd2909dddf32aafba620adfd844cf7f0e6eae4371d0ed616315e9b3d1e900000000000000010000000000000000000000000000002068e96971008bee2f90df118bffada99c074a0d2c49bfc1b99915b2dcf51048a20000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000003f00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f000000000000000600000000000000010000000000000000000000000000002016a091d31a88cdd9cdcf3c9cf1ef4ce3622029681073cb148d36577414b8df7d000000000000000100000000000000000000000000000020680c853dc6a0b371601382d940b4b0d046a42c04dba51c8b8801bcceaddb6f9f0000000000000001000000000000000000000000000000207307458ebfa1b463080bdf0c8b226e68af95d3ce03c81f574dc53886fc92c5510000000000000001000000000000000000000000000000200aeeef018d0928774997734b759241fff2f2f118735c3cc567f475600c93c6450000000000000001000000000000000000000000000000209c3cc5f2e03bbb6fbb6a00377debdbb0ff07e93db8e65b607e9ce577d2bff4060000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000380000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e000000000000000600000000000000010000000000000001000000000000002025fed04d69e49303c22cd2fadc0112c6978ec8f20f8fa8fe454102aaef8bd64a000000000000000100000000000000010000000000000020ea132e6ad465bc3d576d24943e8eb110cbbe9e0822e43ab2b485cff78cfe7bbf0000000000000001000000000000000100000000000000206402373ddcb71c9fa2bfe1d2d9097bfb1e67c3a16c2603e6850eedece20f804700000000000000010000000000000000000000000000002093496aa9b95cdfb66da9c0d5bc5df817484a2a333e9349baecc93bd74a2ca4730000000000000001000000000000000000000000000000209fbca920ee0c87a956f99c4f1362a800f24be48892fb636d69c31e2a28f6ac89000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000003800000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000100000000000000204ee0c0b2ff1aa3546421e9e97f4f6196aa1e08d2fe0cb62b9340e2067d59b73f00000000000000010000000000000001000000000000002087acc052c4befcbc863390a53bc9fe76ddf39509151f111da33e34eefa9c20bb000000000000000100000000000000010000000000000020ec80243d3ec903cb562c8eacb603f6c834430b23f15d562812829d19ab4c355c0000000000000001000000000000000000000000000000200c0b006e9ce5ab8dee54461051bb96c286fd71b34dc6edc2cc81ccb3100d316500000000000000010000000000000000000000000000002009d96f34c0d0d0c579558695e2590b6b8a00dc82f66b0ed035313048e74ae7cb000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000038000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f299941856000000000000000600000000000000010000000000000001000000000000002076cf6d425c75d99e7c14d61eac345baaa286bf62aa616e1b43f2880d426fa226000000000000000100000000000000010000000000000020e25b16e92ce565166fe90f1c3edb66f7f7a147fe1eb50d049a44d69786c76df90000000000000001000000000000000100000000000000208e2274770ab1400a8d4a14228b5b83fbbc2f8b567f0d93bae220f05170b20030000000000000000100000000000000000000000000000020a724c8ade8149e1cc611772680cb6d18385ad3f0e4e5bb60e4780827cedd136c0000000000000001000000000000000000000000000000209e4aa536330b2d7a31d018a0c66389dc79b3652f4ba9a731d52185c1d2764761000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000038000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f32938000000000000000600000000000000010000000000000001000000000000002079de3766568509821bc323df29732f79a7231f97a7156c07f5f9c900dd040a30000000000000000100000000000000010000000000000020f33d0621a9be5d0bc10fb9ba479d2c92b9442af4ac19c6bc422738323447ccbf0000000000000001000000000000000100000000000000204b85a596b27c62a80e804a5f440e38fd1798e192f2e4faf6c9d937e152644b4f000000000000000100000000000000000000000000000020488cdfd2909dddf32aafba620adfd844cf7f0e6eae4371d0ed616315e9b3d1e900000000000000010000000000000000000000000000002068e96971008bee2f90df118bffada99c074a0d2c49bfc1b99915b2dcf51048a20000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000003800000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000100000000000000200809765dfcbcb9e1615204c8e0c08810d94b3e8b1dcc5a958d5c4b63a0b152d000000000000000010000000000000001000000000000002004eac4235e209d96bd17c310b61b8b64f2de73bff9eedc68f3d5329676b3529100000000000000010000000000000001000000000000002090d7b0bcec2a4257083160dd8ffbec8f4d56bdf900f2859e017373f837e3c55e0000000000000001000000000000000000000000000000200aeeef018d0928774997734b759241fff2f2f118735c3cc567f475600c93c6450000000000000001000000000000000000000000000000209c3cc5f2e03bbb6fbb6a00377debdbb0ff07e93db8e65b607e9ce577d2bff4060000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000050000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e000000000000000600000000000000010000000000000000000000000000002080605255e64754fe39bbae7765c123629a4c2da652e7b7a845d118f9eb022af90000000000000001000000000000000100000000000000202feb59037d37e58c7ae6981240627157e2d56c7ce73366769597e4a404b62e4c000000000000000100000000000000000000000000000020c8a9706d43613feef1f7182c33ec47958f103c466f0a5c331ae15d21af056b2a000000000000000100000000000000010000000000000020407e1d016b2156134625c6c0acace3fca412163392f1c4920830c79723de997b000000000000000100000000000000010000000000000020659b6b070f44812ca2ffc215c67485587dd0d144e05eb3647148b4f5ca7360120000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000000500000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000000000000000000020deadcf14c5fb6c6e0ee09890e8998329b274d6fbc7b15f827288c5fddf2e888c0000000000000001000000000000000100000000000000208c082649fedb2d6d1df100e532a8001567a341813a6a0fe1b04813431f53cd33000000000000000100000000000000000000000000000020a83ce3f6822f2805da6f235cd57c1e49249433b8646938623efd0a040bb1ded60000000000000001000000000000000100000000000000204bc065f3dd3e3b30a0dac92ed91cf22f8259a480aa87d1c980b53b9a86e52a01000000000000000100000000000000010000000000000020dbce0776e37eb7c2a9e60b3254ce5ea6bed0db83c8c2e6b120494c0d9ed2a76b000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f0000000000000005000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000000000000000000020669356750c87158b6d053a2ff3d07f379c15d4a67e1c0567f4312cd1b2060e510000000000000001000000000000000100000000000000206c7de327c4cde9c353811da48a1929a019d15fb4d30226f8005d95a3a5043ff200000000000000010000000000000000000000000000002057b19820ae67477ff0fc9a389396aeb670b7c8e05836cc5910b5ddb99ab4caf9000000000000000100000000000000010000000000000020a4de7176464be9124785e24d63c211255e653cd53798f2b73611e5f15feef7c70000000000000001000000000000000100000000000000207e13fb6690e345dd8bdf6ed863b9142988ca740ed6091c9fae658b221f7d7334000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a0000000000000005000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020aa21819af434e5f2fac4e429c98e35053be9498009d29363fe03ff776eeb0b9f0000000000000001000000000000000100000000000000200145bfa689a590a70838a593886aa43d2fcfc263d3156b731a198b5f60d17cb80000000000000001000000000000000000000000000000202ca61985fbc5910957e78a916da8508a3ead835fe2a43c85aafb20f5955f0ca0000000000000000100000000000000010000000000000020d2ac9a6c10a81d256c41bc67e07527d5a36e5dc54a2c6b984bb939fbc8ccd413000000000000000100000000000000010000000000000020cc3aa606fdcbf96592df9e3ecf28c535384ef37bff659d91d2f5982a3a391cb0000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000000500000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000000000000000000020010bc528b5465e9f3de0de8b8d47925b1d3655bf436b91380249b00eeb8d94400000000000000001000000000000000100000000000000202ff68e275e9f3c1b3b7f743a4782f617731151b00ff2a2b3c7ad2c740a85ee730000000000000001000000000000000000000000000000206dd7a46816110430442508860c306738f4a9a0455d87cb1fe469f761064972aa000000000000000100000000000000010000000000000020482529a81b98175b81ad742dd6e90b5edefabf8d4cb4e27a6d7438b3191f6bad000000000000000100000000000000010000000000000020af9f96d3edd125bc1e0a105b9ffdc8e3024dc69325a78b2a02611964156a8e7a000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b927200000000000000290000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e00000000000000060000000000000001000000000000000000000000000000201b81605c89f82931ba1f9c40f6a11252716f4b02a1405f25e3c8d9342ae5141d000000000000000100000000000000010000000000000020a7ab07465b54611179f5d8b3f01dda40efa5ef6a7beb7ddea184943d0014654c0000000000000001000000000000000100000000000000201fc30593ec7d427903dd1f55256e3ffc19a85f70cf2a8e7c0acb4f0a53f1effe000000000000000100000000000000000000000000000020bc2ec48a0ffda0d4d83b497975512e07ddaa2af9c054c3050454c1844d04b72f00000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002900000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000202abc88d2e3de401ab2c938e2d0e3c6ace5b030a54d9aeff0e9218e717f5d843c0000000000000001000000000000000100000000000000206eda94265d040faabf44625d55ab8b4ec7a5f1ec78d8b49e877a868ec6619d3900000000000000010000000000000001000000000000002029ddc1ae85781550b5b8262839b67495818dab865d8bb41a08d9d715a8f5ad470000000000000001000000000000000000000000000000201dbcfe2b985f1976717c36ba364b4855be4e3991bd1679509516db11cedec7830000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000029000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000000000000000000020a99d428a8f4af26c826a4ed7482597440fc869f53f585c86c7250ec11b21a8d8000000000000000100000000000000010000000000000020f27a29d328bdc6caa0ee3f0f6f7c703890f1805c474144e4bcbc87eab56c5335000000000000000100000000000000010000000000000020b21fce2155f8766d6e3d49a87773c41a486b0eb7dabcbfc0cf2963f7b34ecd33000000000000000100000000000000000000000000000020291814bb23ca041a829cd777ab17a74972cca1d409306698f066b2b12b5b7e450000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000029000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f3293800000000000000060000000000000001000000000000000000000000000000206f1230ee39fa4b475a68ca2c21a0a52a3a2d008ace0147d9367ca0b19fbf44b300000000000000010000000000000001000000000000002054f128363693244ccfcb0f852cc53499930006a76f4f8ad53422282d7ba2b1a900000000000000010000000000000001000000000000002032906f8b355f4c2d6b639a6899bcadf4e2cb7fcba76d4ccb412d5c24053801490000000000000001000000000000000000000000000000207afc3d3f377ea328d0a546da843425d8cd2f61d21026ec31c026288cb3d0698b0000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002900000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000000000000000000203e4b5489c39040df94e04b61ae4144d75b3731c552cb2872ea3522b56365e3bb0000000000000001000000000000000100000000000000203b71c8650663ac45104b87aeb469737990a8040255ea025b39bbd29956133147000000000000000100000000000000010000000000000020bbdfd0dd1887a478722c75ca8033a8a2201ecbe77561ec5505c4f7fa0b2fc07f000000000000000100000000000000000000000000000020d3e115a5a233331eea0c9d1a61f910fb1ddbd717686aaafe4459fc88d54a083e00000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f80000000000000050000000000000003900000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a00000000000000060000000000000001000000000000000000000000000000201d4e6c0712764147149ef25466d16fc7c33065b2c6565136c41c38fe01046650000000000000000100000000000000010000000000000020c9c0b321b083e72b287c1f5f27bd58c8853f81a58ea7aa78fc4880a0b3e1a20300000000000000010000000000000001000000000000002088d8b2c047feeef326c27ee57ed797854d67aa1709f8a7128818fa62e55a7001000000000000000100000000000000000000000000000020e66c07583081e267c33c835ae197bdafb24712978d6aac9d0f53e986147fea4200000000000000010000000000000000000000000000002024e7c960723bc5ff5c693ca69cc078c6710037929d28ae1a94c75c99daed9c020000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000190000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000000000000000000205de6a68433963cf0c7857d87422df14e10c32724c7cfd2bf5af7cd6a9a11536000000000000000010000000000000001000000000000002049b93df03a2d9f677c69e5781a260e352ca40353ad1badb8e1d6a023c5bcf21e0000000000000001000000000000000100000000000000209a1a091707d63ca2fc90adc03b3ff0bbe24e5d43365c4f0d46f796825fa264d0000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000002600000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020b2eed6e0a8e84ed3bbd514720df2e18dcd3a57a71ab7d4a45bc12f0759a67301000000000000000100000000000000000000000000000020700a3f92944e6a87bc423009506865591e99810e7ab4554df985ec922f18aea40000000000000001000000000000000000000000000000200fb793038444977c354fee118941457e8f5cc8bd6d0c982f4e159d367c2849e70000000000000001000000000000000100000000000000206325b9ede6b47ca05a9aef70d48140c5ba36217b5522573795eae3ae5ed72147000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000060000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000100000000000000201280f1bcea43a07ba8a787f1c57cacf0d325dbc28386d88b7ef10b15697e2beb00000000000000010000000000000000000000000000002085f465dc62741704ec2a6392ac90942a708a72037ede0e36ab09f775b3603c05000000000000000100000000000000000000000000000020c60fac2a2326940613ae844e1963c0b7722fb786b5c848e6e5cf4560b78ff515000000000000000100000000000000010000000000000020fb11825034e1e6f44af2363fb0e9dd5bb9f3a69d7ac16add55263b9f77626b880000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000002300000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a00000000000000060000000000000001000000000000000000000000000000208559f1fb8d215280bdc9e28ba319b8cc31b793b78c37e9fe1ebdff20e4bc69f100000000000000010000000000000000000000000000002012a0ef251e1c1d23cf149ec9cc670fbe5eeabf753d5a562eeff8a916060216930000000000000001000000000000000100000000000000204fd5e258ba7ff0f4bad07c49f2daf5f54e385148ca793245ffe062d67a02bbda0000000000000001000000000000000100000000000000206325b9ede6b47ca05a9aef70d48140c5ba36217b5522573795eae3ae5ed72147000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000030000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce25000000000000000500000000000000010000000000000000000000000000002094351d233e310dcc0ef8069de2cfa8b909f9e00bd6acf0b54ad1a43a7c1a5fec000000000000000100000000000000000000000000000020ec109daf6825ed91a9d90ad3b60af2ef73dd22a7eba66a8e0388fcbfe194b548000000000000000100000000000000010000000000000020d6eb504e9ef75a7779807884ffd88863c349a65c2d2bdb0014046feb1ccb2ded000000000000000100000000000000010000000000000020fb11825034e1e6f44af2363fb0e9dd5bb9f3a69d7ac16add55263b9f77626b880000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000000100000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020993f6747863d1184669b0175cc4b96dc9d1210e7cb7b97de894eee69c37a356a0000000000000001000000000000000100000000000000205e6da68da3ea9ad273f16ccdd48c3376274c734878296f6641f81e4d32b76656000000000000000100000000000000010000000000000020a7f7e46fa2884bc9ae411e1aeb83a2faf804a1d64b37e7b44cd72d7dd7a386270000000000000001000000000000000100000000000000203bab5ae19c3a6928a4468d0b856ea71595871c296f9e5ef991de19ee35356de0000000000000000100000000000000010000000000000020cab72ad06a11034c52eef8fc9375f208dcf827280d9757a6c0fa58f455a95b700000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b00000000000000010000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000000000000000000020da04e460913c32b9095fbe1a31f18a0841cf863632676c76517b769f1af8989200000000000000010000000000000001000000000000002075e379d2002547c4b271f443c8a80a0014464bb265311e488f1ed171187359eb000000000000000100000000000000010000000000000020d6eb504e9ef75a7779807884ffd88863c349a65c2d2bdb0014046feb1ccb2ded000000000000000100000000000000010000000000000020fb11825034e1e6f44af2363fb0e9dd5bb9f3a69d7ac16add55263b9f77626b880000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000001f00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a00000000000000060000000000000001000000000000000000000000000000201725838680c0bb2b54b3e60370c133a78a6621d7a69726dcdd173526c3e6b9ba0000000000000001000000000000000000000000000000205c83ece4383148347a1b938c80a649b18433f1e821241773a02351a95f6cf96c000000000000000100000000000000000000000000000020364ea361605912860ae69330ee197e81f5cf2aee5ee01238f89915c19e1b674f0000000000000001000000000000000000000000000000200178800a41369b66440e7a4d50b9cb10df27ae7b6096e93b35223a002189a50300000000000000010000000000000000000000000000002061bca55e64c007d6883994dba531cf815f2ac6477e2b8a7319ae51a4a14601ac0000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b000000000000001f0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce25000000000000000500000000000000010000000000000000000000000000002036e0725d8ea78d84622388e50be26e1800667f9718316fa6e5b5641327374dc70000000000000001000000000000000000000000000000204cd898605e569c9a3b4c9527c494b330f36420f151c4dc20e00933ca34fe5564000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000003c00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020c8349b495099bc7ff6e93c98c5758cb16d0fb610423adfee7b5ebae82d9bf08b0000000000000001000000000000000100000000000000202cd4647ce0dd828333f071d6897d8725115df161b3afee5fd00125b915a8e6cc000000000000000100000000000000000000000000000020897ff236f9146b3986820c1eab71fcb6935e6cf4a73d36131649a0459221c9d7000000000000000100000000000000000000000000000020e66c07583081e267c33c835ae197bdafb24712978d6aac9d0f53e986147fea4200000000000000010000000000000000000000000000002024e7c960723bc5ff5c693ca69cc078c6710037929d28ae1a94c75c99daed9c020000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a000000000000001c0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000100000000000000201d3adddcc76832796a7d70940da113cf90641a65120164763ef419c25e741b4e00000000000000010000000000000001000000000000002043952c83787323ed02967f6874b2568ab0c8c37159ec8878675f257f475a7c81000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000001f00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a00000000000000060000000000000001000000000000000000000000000000201725838680c0bb2b54b3e60370c133a78a6621d7a69726dcdd173526c3e6b9ba0000000000000001000000000000000000000000000000205c83ece4383148347a1b938c80a649b18433f1e821241773a02351a95f6cf96c000000000000000100000000000000000000000000000020364ea361605912860ae69330ee197e81f5cf2aee5ee01238f89915c19e1b674f0000000000000001000000000000000000000000000000200178800a41369b66440e7a4d50b9cb10df27ae7b6096e93b35223a002189a50300000000000000010000000000000000000000000000002061bca55e64c007d6883994dba531cf815f2ac6477e2b8a7319ae51a4a14601ac0000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b000000000000001f0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce25000000000000000500000000000000010000000000000000000000000000002036e0725d8ea78d84622388e50be26e1800667f9718316fa6e5b5641327374dc70000000000000001000000000000000000000000000000204cd898605e569c9a3b4c9527c494b330f36420f151c4dc20e00933ca34fe5564000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000001000000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020b660ee564c133a610165e48112fb0a175922f823f84f6282301659dc78edae0400000000000000010000000000000001000000000000002034bd988f572837b892d565ca36ec2229eebe7090d1d2a6223e05180a2397d49d000000000000000100000000000000010000000000000020126e43fc89be56f6dbf774b292faf494d961bf902703368c3f4d27760b5429a6000000000000000100000000000000010000000000000020eb4e0651e828a84fae3111cd7f737af87f306934914a308793a6b7f27908b58b00000000000000010000000000000000000000000000002061bca55e64c007d6883994dba531cf815f2ac6477e2b8a7319ae51a4a14601ac0000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b00000000000000100000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce25000000000000000500000000000000010000000000000001000000000000002093990098c78699790934bf5a0c6d3ac96c48795e4a954236f7b2b376929eba8e000000000000000100000000000000010000000000000020d5420860789793bbdf4b32db486f7422102cfca8d1c25ae72abfd1b0dbd9accb000000000000000100000000000000010000000000000020ff353585f4318a2bc8ec891d323f97568b7b25040c702374c551ef4e9a3b1b61000000000000000100000000000000010000000000000020bf60b679b8e9b0759c4d05cdd1cce271d5bfb1e58f558b4e85891de0e584c083000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000001100000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a000000000000000600000000000000010000000000000000000000000000002035d35851605b34059cfd1dfe469a96d5c39d7c6872ccd382aee93e24389b917c00000000000000010000000000000001000000000000002034bd988f572837b892d565ca36ec2229eebe7090d1d2a6223e05180a2397d49d000000000000000100000000000000010000000000000020126e43fc89be56f6dbf774b292faf494d961bf902703368c3f4d27760b5429a6000000000000000100000000000000010000000000000020eb4e0651e828a84fae3111cd7f737af87f306934914a308793a6b7f27908b58b00000000000000010000000000000000000000000000002061bca55e64c007d6883994dba531cf815f2ac6477e2b8a7319ae51a4a14601ac0000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b00000000000000110000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000000000000000000020e9ff178f86227be39b9b0d6381bf83f3c7ad683bc12c5f44db96f62adad40c1d000000000000000100000000000000010000000000000020d5420860789793bbdf4b32db486f7422102cfca8d1c25ae72abfd1b0dbd9accb000000000000000100000000000000010000000000000020ff353585f4318a2bc8ec891d323f97568b7b25040c702374c551ef4e9a3b1b61000000000000000100000000000000010000000000000020bf60b679b8e9b0759c4d05cdd1cce271d5bfb1e58f558b4e85891de0e584c083000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000001e00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020bed3d57f1a0f265d35c741f468fe5ae25b80a9d8cce0bb511ce6d02c5f45496a0000000000000001000000000000000000000000000000205c83ece4383148347a1b938c80a649b18433f1e821241773a02351a95f6cf96c000000000000000100000000000000000000000000000020364ea361605912860ae69330ee197e81f5cf2aee5ee01238f89915c19e1b674f0000000000000001000000000000000000000000000000200178800a41369b66440e7a4d50b9cb10df27ae7b6096e93b35223a002189a50300000000000000010000000000000000000000000000002061bca55e64c007d6883994dba531cf815f2ac6477e2b8a7319ae51a4a14601ac0000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b000000000000001e0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000010000000000000020bab8714776f13ede8b6c14d2f9fa1dbc18ce6f336b8b592c0ea67c23f48608820000000000000001000000000000000000000000000000204cd898605e569c9a3b4c9527c494b330f36420f151c4dc20e00933ca34fe5564000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000000900000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a00000000000000060000000000000001000000000000000000000000000000204be7f590eb9344dd875819add7cb8a42e2072589f30801dc3c1fc2a0ed3bdd7f0000000000000001000000000000000100000000000000207f1a19165bceb32d754c643a39696fac86e2414996354784c22f2e02c92f527c0000000000000001000000000000000100000000000000206b8664c253c857f4081b903f24cd144c3fecea41bad9c9bbc6dede7aec8206d200000000000000010000000000000000000000000000002032f5d2fcd66c6d1be270028a1b13801252fc376fa82b764868eec39365d7ad3d000000000000000100000000000000010000000000000020cab72ad06a11034c52eef8fc9375f208dcf827280d9757a6c0fa58f455a95b700000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b00000000000000090000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000000000000000000205c957fe18e200f67dcfdaff6ac0e79f330938d1f8ded2406740505d688bec0ad000000000000000100000000000000010000000000000020e1b6449da70162184206e3c54f8a1bc62dc59e315ed2d859457c4a36e0692d1200000000000000010000000000000001000000000000002012efdb19f3477e740c260ab39237e12947930f9d6371304227e0478ea58af45d00000000000000010000000000000000000000000000002016bfa36762c0536ae259ab6ab17bacf98951fc37dcb1f69229fd857fd86fb9110000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000001c00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020bd40693648bcf4063a2ce36449fb2340b0936108f3e17da0f35d0c1b9cfdc7ee00000000000000010000000000000001000000000000002031576616dfc8f01227203acd3c8aaf85a0fe1fadd2d720eccd06200027580a85000000000000000100000000000000000000000000000020364ea361605912860ae69330ee197e81f5cf2aee5ee01238f89915c19e1b674f0000000000000001000000000000000000000000000000200178800a41369b66440e7a4d50b9cb10df27ae7b6096e93b35223a002189a50300000000000000010000000000000000000000000000002061bca55e64c007d6883994dba531cf815f2ac6477e2b8a7319ae51a4a14601ac0000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b000000000000001c0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000100000000000000201d3adddcc76832796a7d70940da113cf90641a65120164763ef419c25e741b4e00000000000000010000000000000001000000000000002043952c83787323ed02967f6874b2568ab0c8c37159ec8878675f257f475a7c81000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000003c00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020c8349b495099bc7ff6e93c98c5758cb16d0fb610423adfee7b5ebae82d9bf08b0000000000000001000000000000000100000000000000202cd4647ce0dd828333f071d6897d8725115df161b3afee5fd00125b915a8e6cc000000000000000100000000000000000000000000000020897ff236f9146b3986820c1eab71fcb6935e6cf4a73d36131649a0459221c9d7000000000000000100000000000000000000000000000020e66c07583081e267c33c835ae197bdafb24712978d6aac9d0f53e986147fea4200000000000000010000000000000000000000000000002024e7c960723bc5ff5c693ca69cc078c6710037929d28ae1a94c75c99daed9c020000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a000000000000001c0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000100000000000000201d3adddcc76832796a7d70940da113cf90641a65120164763ef419c25e741b4e00000000000000010000000000000001000000000000002043952c83787323ed02967f6874b2568ab0c8c37159ec8878675f257f475a7c81000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000000a00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a000000000000000600000000000000010000000000000001000000000000002050df00aae0130b1180a1f07ed26c2af1dfdbcf8ffd76dfff27d68e8aa7264386000000000000000100000000000000000000000000000020796e91eaa6d396ab877ec7a84e1d8d084a69dda27b152a4575ba94f9231676720000000000000001000000000000000100000000000000206b8664c253c857f4081b903f24cd144c3fecea41bad9c9bbc6dede7aec8206d200000000000000010000000000000000000000000000002032f5d2fcd66c6d1be270028a1b13801252fc376fa82b764868eec39365d7ad3d000000000000000100000000000000010000000000000020cab72ad06a11034c52eef8fc9375f208dcf827280d9757a6c0fa58f455a95b700000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b000000000000000a0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000010000000000000020adcfc7399b7f54dffa210b62ef9f387bf9917135f9a0dd7cbeaed6332ddc96610000000000000001000000000000000000000000000000201b537d90761f18e0d990acfbad3607f40acbb8ff91ca128b4f6cf4f27d967f3500000000000000010000000000000001000000000000002012efdb19f3477e740c260ab39237e12947930f9d6371304227e0478ea58af45d00000000000000010000000000000000000000000000002016bfa36762c0536ae259ab6ab17bacf98951fc37dcb1f69229fd857fd86fb9110000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000001e00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020bed3d57f1a0f265d35c741f468fe5ae25b80a9d8cce0bb511ce6d02c5f45496a0000000000000001000000000000000000000000000000205c83ece4383148347a1b938c80a649b18433f1e821241773a02351a95f6cf96c000000000000000100000000000000000000000000000020364ea361605912860ae69330ee197e81f5cf2aee5ee01238f89915c19e1b674f0000000000000001000000000000000000000000000000200178800a41369b66440e7a4d50b9cb10df27ae7b6096e93b35223a002189a50300000000000000010000000000000000000000000000002061bca55e64c007d6883994dba531cf815f2ac6477e2b8a7319ae51a4a14601ac0000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b000000000000001e0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000010000000000000020bab8714776f13ede8b6c14d2f9fa1dbc18ce6f336b8b592c0ea67c23f48608820000000000000001000000000000000000000000000000204cd898605e569c9a3b4c9527c494b330f36420f151c4dc20e00933ca34fe5564000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000003900000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a00000000000000060000000000000001000000000000000000000000000000201d4e6c0712764147149ef25466d16fc7c33065b2c6565136c41c38fe01046650000000000000000100000000000000010000000000000020c9c0b321b083e72b287c1f5f27bd58c8853f81a58ea7aa78fc4880a0b3e1a20300000000000000010000000000000001000000000000002088d8b2c047feeef326c27ee57ed797854d67aa1709f8a7128818fa62e55a7001000000000000000100000000000000000000000000000020e66c07583081e267c33c835ae197bdafb24712978d6aac9d0f53e986147fea4200000000000000010000000000000000000000000000002024e7c960723bc5ff5c693ca69cc078c6710037929d28ae1a94c75c99daed9c020000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000190000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000000000000000000205de6a68433963cf0c7857d87422df14e10c32724c7cfd2bf5af7cd6a9a11536000000000000000010000000000000001000000000000002049b93df03a2d9f677c69e5781a260e352ca40353ad1badb8e1d6a023c5bcf21e0000000000000001000000000000000100000000000000209a1a091707d63ca2fc90adc03b3ff0bbe24e5d43365c4f0d46f796825fa264d0000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000002700000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020a32b8fa6da08fbe0b9cad3ce20107f7872df48a824f037353340421b38e7dbf4000000000000000100000000000000000000000000000020700a3f92944e6a87bc423009506865591e99810e7ab4554df985ec922f18aea40000000000000001000000000000000000000000000000200fb793038444977c354fee118941457e8f5cc8bd6d0c982f4e159d367c2849e70000000000000001000000000000000100000000000000206325b9ede6b47ca05a9aef70d48140c5ba36217b5522573795eae3ae5ed72147000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000070000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000000000000000000020100afdb629c627e0a376a74b7076687862ab1e2f5f03a2337e087be51135150c00000000000000010000000000000000000000000000002085f465dc62741704ec2a6392ac90942a708a72037ede0e36ab09f775b3603c05000000000000000100000000000000000000000000000020c60fac2a2326940613ae844e1963c0b7722fb786b5c848e6e5cf4560b78ff515000000000000000100000000000000010000000000000020fb11825034e1e6f44af2363fb0e9dd5bb9f3a69d7ac16add55263b9f77626b880000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000002100000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020a11ad082b9b214587c295afdda8c3320bc23eb59713044956d98f288c29bdbf1000000000000000100000000000000010000000000000020d793c571a44628031e4199c577e6651c7ede504551022e3ee6e9cf46b43d9b070000000000000001000000000000000100000000000000204fd5e258ba7ff0f4bad07c49f2daf5f54e385148ca793245ffe062d67a02bbda0000000000000001000000000000000100000000000000206325b9ede6b47ca05a9aef70d48140c5ba36217b5522573795eae3ae5ed72147000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000010000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000000000000000000020da04e460913c32b9095fbe1a31f18a0841cf863632676c76517b769f1af8989200000000000000010000000000000001000000000000002075e379d2002547c4b271f443c8a80a0014464bb265311e488f1ed171187359eb000000000000000100000000000000010000000000000020d6eb504e9ef75a7779807884ffd88863c349a65c2d2bdb0014046feb1ccb2ded000000000000000100000000000000010000000000000020fb11825034e1e6f44af2363fb0e9dd5bb9f3a69d7ac16add55263b9f77626b880000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000002400000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a00000000000000060000000000000001000000000000000100000000000000206c83b8e07133f63c38f013df39924d80cff3d1044f34cd1d9e3daa576d641c100000000000000001000000000000000100000000000000205714ca1ee71e5f917f25d92459ada5330a51f3117b7531c8d05e44e521816c960000000000000001000000000000000000000000000000200fb793038444977c354fee118941457e8f5cc8bd6d0c982f4e159d367c2849e70000000000000001000000000000000100000000000000206325b9ede6b47ca05a9aef70d48140c5ba36217b5522573795eae3ae5ed72147000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000040000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000010000000000000020b8800186623d507294b834b02e75760a085165c96bafd444ace1ec4f6726aacb0000000000000001000000000000000100000000000000209862d0445442827e216b27b80886d6d9907158f5890ffb1fd69a1a5a81af89fe000000000000000100000000000000000000000000000020c60fac2a2326940613ae844e1963c0b7722fb786b5c848e6e5cf4560b78ff515000000000000000100000000000000010000000000000020fb11825034e1e6f44af2363fb0e9dd5bb9f3a69d7ac16add55263b9f77626b880000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000000600000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a00000000000000060000000000000001000000000000000100000000000000207e8249ce76aad5f84cdabb9a63e8ad9aa22859f2208b75845adb814280e64b0e000000000000000100000000000000000000000000000020688e345058319870b596fba44541ab46847590cab8811e07afd920158832e9d7000000000000000100000000000000000000000000000020cb3c9625eb492289ae401c2efcfcf5d50feffee71cbcf4a0388efa7e8d2794470000000000000001000000000000000100000000000000203bab5ae19c3a6928a4468d0b856ea71595871c296f9e5ef991de19ee35356de0000000000000000100000000000000010000000000000020cab72ad06a11034c52eef8fc9375f208dcf827280d9757a6c0fa58f455a95b700000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b00000000000000060000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000100000000000000201280f1bcea43a07ba8a787f1c57cacf0d325dbc28386d88b7ef10b15697e2beb00000000000000010000000000000000000000000000002085f465dc62741704ec2a6392ac90942a708a72037ede0e36ab09f775b3603c05000000000000000100000000000000000000000000000020c60fac2a2326940613ae844e1963c0b7722fb786b5c848e6e5cf4560b78ff515000000000000000100000000000000010000000000000020fb11825034e1e6f44af2363fb0e9dd5bb9f3a69d7ac16add55263b9f77626b880000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000000f00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020a52d5a8887f55bfccb569c6671ed80b71f626fa840bb727e72e5f7f1201e5ba1000000000000000100000000000000000000000000000020c06b98b77be88b5057d5e9cc3c94fe1061f7c7a20250e17ba2b0ce8c1e9cb0270000000000000001000000000000000000000000000000208ba4b5db269e5f06cef1e69b14d5cd9ad9600d46ed13a0b48552d2cc8385b15200000000000000010000000000000000000000000000002032f5d2fcd66c6d1be270028a1b13801252fc376fa82b764868eec39365d7ad3d000000000000000100000000000000010000000000000020cab72ad06a11034c52eef8fc9375f208dcf827280d9757a6c0fa58f455a95b700000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b000000000000000f0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000000000000000000207c12d6d188e6d5d2df9286bf728211bd8607d6c266c3cb4411b8cb0639f1dad60000000000000001000000000000000000000000000000204a3936e2e522b670f552461431080ac7eb854242c1ff9742f92193781c20a5700000000000000001000000000000000000000000000000200e22d9749d60e0d540bb83ff2935afe6d6bd2f52cf199124a9320637f1e3df8300000000000000010000000000000000000000000000002016bfa36762c0536ae259ab6ab17bacf98951fc37dcb1f69229fd857fd86fb9110000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000002d00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a00000000000000060000000000000001000000000000000000000000000000200f072dbcc8a4e690a8a935b2f15ef06319eab4d457230ff7a31cf4e58084ec11000000000000000100000000000000010000000000000020e7c5e246a2b95e2edeee5f88b23ad6c80b8656b62fb64c213e3ef443860be5d400000000000000010000000000000000000000000000002089c932bfaee7d2bdaf7488749db3a6bf2763de81d20569f77b9fc12113731624000000000000000100000000000000000000000000000020a2331e4c69f49cc61b3158951e5e40e4c60ceac04b3caf1611d2a5eaf5f352fe000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a000000000000000d0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000000000000000000020eaceb0df2bd65e2b2fb0521ed1a45f240de92714c6007235da4479ce1c6e8367000000000000000100000000000000010000000000000020a1e8ee366ec4fb2e0704572f237151577cdd7c13611c3913441c718ffcf183090000000000000001000000000000000000000000000000200e22d9749d60e0d540bb83ff2935afe6d6bd2f52cf199124a9320637f1e3df8300000000000000010000000000000000000000000000002016bfa36762c0536ae259ab6ab17bacf98951fc37dcb1f69229fd857fd86fb9110000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000000300000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020ceb2525139b684fae176a32af4bac2bcc6596be509ee8bbd939db475a1cd5f3d0000000000000001000000000000000000000000000000206ac34deaf7ceb5abc2f720aae41f2875b6042f4b1cd4563463f7e992888903d4000000000000000100000000000000010000000000000020a7f7e46fa2884bc9ae411e1aeb83a2faf804a1d64b37e7b44cd72d7dd7a386270000000000000001000000000000000100000000000000203bab5ae19c3a6928a4468d0b856ea71595871c296f9e5ef991de19ee35356de0000000000000000100000000000000010000000000000020cab72ad06a11034c52eef8fc9375f208dcf827280d9757a6c0fa58f455a95b700000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b00000000000000030000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce25000000000000000500000000000000010000000000000000000000000000002094351d233e310dcc0ef8069de2cfa8b909f9e00bd6acf0b54ad1a43a7c1a5fec000000000000000100000000000000000000000000000020ec109daf6825ed91a9d90ad3b60af2ef73dd22a7eba66a8e0388fcbfe194b548000000000000000100000000000000010000000000000020d6eb504e9ef75a7779807884ffd88863c349a65c2d2bdb0014046feb1ccb2ded000000000000000100000000000000010000000000000020fb11825034e1e6f44af2363fb0e9dd5bb9f3a69d7ac16add55263b9f77626b880000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000002900000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020047c0517c3d760697c7bf2d1bf32625f639094b05944f018f5cfb19847ec2075000000000000000100000000000000010000000000000020a83483e2fc9d818b2c5091dca8c826d520c3d80dfab7bd073e2f69081526e21f000000000000000100000000000000010000000000000020a3698d2bb846956a4f0e328f7f58fe2d3de4dc78469c3520aa648af402bd431e000000000000000100000000000000000000000000000020a2331e4c69f49cc61b3158951e5e40e4c60ceac04b3caf1611d2a5eaf5f352fe000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000090000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000000000000000000205c957fe18e200f67dcfdaff6ac0e79f330938d1f8ded2406740505d688bec0ad000000000000000100000000000000010000000000000020e1b6449da70162184206e3c54f8a1bc62dc59e315ed2d859457c4a36e0692d1200000000000000010000000000000001000000000000002012efdb19f3477e740c260ab39237e12947930f9d6371304227e0478ea58af45d00000000000000010000000000000000000000000000002016bfa36762c0536ae259ab6ab17bacf98951fc37dcb1f69229fd857fd86fb9110000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000002b00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020e13f1dccb88d9ec20e9908b156f9ae0cb8e0348ad728aea906bec322e02961e80000000000000001000000000000000000000000000000209d33024f264e56892f94df99fa14e797a7839c1eae54741eb3b7f3470a35f648000000000000000100000000000000010000000000000020a3698d2bb846956a4f0e328f7f58fe2d3de4dc78469c3520aa648af402bd431e000000000000000100000000000000000000000000000020a2331e4c69f49cc61b3158951e5e40e4c60ceac04b3caf1611d2a5eaf5f352fe000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a000000000000000b0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce25000000000000000500000000000000010000000000000000000000000000002026ec57a2ddfb8e5c455799d78e5e1d5fa3c88905dbce6501061408cd9b48405f0000000000000001000000000000000000000000000000201b537d90761f18e0d990acfbad3607f40acbb8ff91ca128b4f6cf4f27d967f3500000000000000010000000000000001000000000000002012efdb19f3477e740c260ab39237e12947930f9d6371304227e0478ea58af45d00000000000000010000000000000000000000000000002016bfa36762c0536ae259ab6ab17bacf98951fc37dcb1f69229fd857fd86fb9110000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000002d00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a00000000000000060000000000000001000000000000000000000000000000200f072dbcc8a4e690a8a935b2f15ef06319eab4d457230ff7a31cf4e58084ec11000000000000000100000000000000010000000000000020e7c5e246a2b95e2edeee5f88b23ad6c80b8656b62fb64c213e3ef443860be5d400000000000000010000000000000000000000000000002089c932bfaee7d2bdaf7488749db3a6bf2763de81d20569f77b9fc12113731624000000000000000100000000000000000000000000000020a2331e4c69f49cc61b3158951e5e40e4c60ceac04b3caf1611d2a5eaf5f352fe000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a000000000000000d0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000000000000000000020eaceb0df2bd65e2b2fb0521ed1a45f240de92714c6007235da4479ce1c6e8367000000000000000100000000000000010000000000000020a1e8ee366ec4fb2e0704572f237151577cdd7c13611c3913441c718ffcf183090000000000000001000000000000000000000000000000200e22d9749d60e0d540bb83ff2935afe6d6bd2f52cf199124a9320637f1e3df8300000000000000010000000000000000000000000000002016bfa36762c0536ae259ab6ab17bacf98951fc37dcb1f69229fd857fd86fb9110000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000003d00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020b559b849ea63b933df931f5431732bd739b245bad9c12914eae279ddb28127a20000000000000001000000000000000100000000000000202cd4647ce0dd828333f071d6897d8725115df161b3afee5fd00125b915a8e6cc000000000000000100000000000000000000000000000020897ff236f9146b3986820c1eab71fcb6935e6cf4a73d36131649a0459221c9d7000000000000000100000000000000000000000000000020e66c07583081e267c33c835ae197bdafb24712978d6aac9d0f53e986147fea4200000000000000010000000000000000000000000000002024e7c960723bc5ff5c693ca69cc078c6710037929d28ae1a94c75c99daed9c020000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a000000000000001d0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000000000000000000020743d21415e8ded44dc758d10126165cc69a6c70dd61daf76d0afd6b4980d566c00000000000000010000000000000001000000000000002043952c83787323ed02967f6874b2568ab0c8c37159ec8878675f257f475a7c81000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000000400000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020340da0421914b7a05bc7a70a573bb95801337d759a5d4cf87479791f85f1e281000000000000000100000000000000010000000000000020f864bb060b739b82d8ffbf4ed8eb1cbc55e9055705b9ff946dde3ce7ed3f040c000000000000000100000000000000000000000000000020cb3c9625eb492289ae401c2efcfcf5d50feffee71cbcf4a0388efa7e8d2794470000000000000001000000000000000100000000000000203bab5ae19c3a6928a4468d0b856ea71595871c296f9e5ef991de19ee35356de0000000000000000100000000000000010000000000000020cab72ad06a11034c52eef8fc9375f208dcf827280d9757a6c0fa58f455a95b700000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b00000000000000040000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000010000000000000020b8800186623d507294b834b02e75760a085165c96bafd444ace1ec4f6726aacb0000000000000001000000000000000100000000000000209862d0445442827e216b27b80886d6d9907158f5890ffb1fd69a1a5a81af89fe000000000000000100000000000000000000000000000020c60fac2a2326940613ae844e1963c0b7722fb786b5c848e6e5cf4560b78ff515000000000000000100000000000000010000000000000020fb11825034e1e6f44af2363fb0e9dd5bb9f3a69d7ac16add55263b9f77626b880000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000001d00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020c6e9e8f5f183e6a18ae47b9c5d84289a45106548f52c0dafe560a7544dd072b000000000000000010000000000000001000000000000002031576616dfc8f01227203acd3c8aaf85a0fe1fadd2d720eccd06200027580a85000000000000000100000000000000000000000000000020364ea361605912860ae69330ee197e81f5cf2aee5ee01238f89915c19e1b674f0000000000000001000000000000000000000000000000200178800a41369b66440e7a4d50b9cb10df27ae7b6096e93b35223a002189a50300000000000000010000000000000000000000000000002061bca55e64c007d6883994dba531cf815f2ac6477e2b8a7319ae51a4a14601ac0000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b000000000000001d0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000000000000000000020743d21415e8ded44dc758d10126165cc69a6c70dd61daf76d0afd6b4980d566c00000000000000010000000000000001000000000000002043952c83787323ed02967f6874b2568ab0c8c37159ec8878675f257f475a7c81000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000002600000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020b2eed6e0a8e84ed3bbd514720df2e18dcd3a57a71ab7d4a45bc12f0759a67301000000000000000100000000000000000000000000000020700a3f92944e6a87bc423009506865591e99810e7ab4554df985ec922f18aea40000000000000001000000000000000000000000000000200fb793038444977c354fee118941457e8f5cc8bd6d0c982f4e159d367c2849e70000000000000001000000000000000100000000000000206325b9ede6b47ca05a9aef70d48140c5ba36217b5522573795eae3ae5ed72147000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000060000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000100000000000000201280f1bcea43a07ba8a787f1c57cacf0d325dbc28386d88b7ef10b15697e2beb00000000000000010000000000000000000000000000002085f465dc62741704ec2a6392ac90942a708a72037ede0e36ab09f775b3603c05000000000000000100000000000000000000000000000020c60fac2a2326940613ae844e1963c0b7722fb786b5c848e6e5cf4560b78ff515000000000000000100000000000000010000000000000020fb11825034e1e6f44af2363fb0e9dd5bb9f3a69d7ac16add55263b9f77626b880000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000001400000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a000000000000000600000000000000010000000000000001000000000000002015f13a63e6e66a0384ae3940b5c12b5b63b951ea2864fa11da141b2a045428d60000000000000001000000000000000100000000000000201cb670eb1278127a062270a9af0404d26d0e94a1d7bf7346cd1258e13e151ec200000000000000010000000000000000000000000000002075c82b16eeab40fac71fc7b5daaf20759128e3ae4a2440cc391c55dbfc4526ea000000000000000100000000000000010000000000000020eb4e0651e828a84fae3111cd7f737af87f306934914a308793a6b7f27908b58b00000000000000010000000000000000000000000000002061bca55e64c007d6883994dba531cf815f2ac6477e2b8a7319ae51a4a14601ac0000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b00000000000000140000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000010000000000000020c7993784b950ed07cfa4c762cb8f108f9fbc533be123f0aba562817367d1033a00000000000000010000000000000001000000000000002081274907689d7f4463b7ddd2ab484481450ccc3969be250f387c7c3772e8e77500000000000000010000000000000000000000000000002027c01932b99e3f386091bb61e047d2b80acbd0b3901b0a925079bd4e20713b3b000000000000000100000000000000010000000000000020bf60b679b8e9b0759c4d05cdd1cce271d5bfb1e58f558b4e85891de0e584c083000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000002800000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020d973699b0333cf6f884bd71773ea22bd4441f771d7e202b1c3d38ef3f0eabf3e000000000000000100000000000000010000000000000020a83483e2fc9d818b2c5091dca8c826d520c3d80dfab7bd073e2f69081526e21f000000000000000100000000000000010000000000000020a3698d2bb846956a4f0e328f7f58fe2d3de4dc78469c3520aa648af402bd431e000000000000000100000000000000000000000000000020a2331e4c69f49cc61b3158951e5e40e4c60ceac04b3caf1611d2a5eaf5f352fe000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000080000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000100000000000000201cbef5e48bae942923c6d18d7958197b9ce2e3235793bd9ffb86842783262211000000000000000100000000000000010000000000000020e1b6449da70162184206e3c54f8a1bc62dc59e315ed2d859457c4a36e0692d1200000000000000010000000000000001000000000000002012efdb19f3477e740c260ab39237e12947930f9d6371304227e0478ea58af45d00000000000000010000000000000000000000000000002016bfa36762c0536ae259ab6ab17bacf98951fc37dcb1f69229fd857fd86fb9110000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000001d00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020c6e9e8f5f183e6a18ae47b9c5d84289a45106548f52c0dafe560a7544dd072b000000000000000010000000000000001000000000000002031576616dfc8f01227203acd3c8aaf85a0fe1fadd2d720eccd06200027580a85000000000000000100000000000000000000000000000020364ea361605912860ae69330ee197e81f5cf2aee5ee01238f89915c19e1b674f0000000000000001000000000000000000000000000000200178800a41369b66440e7a4d50b9cb10df27ae7b6096e93b35223a002189a50300000000000000010000000000000000000000000000002061bca55e64c007d6883994dba531cf815f2ac6477e2b8a7319ae51a4a14601ac0000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b000000000000001d0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000000000000000000020743d21415e8ded44dc758d10126165cc69a6c70dd61daf76d0afd6b4980d566c00000000000000010000000000000001000000000000002043952c83787323ed02967f6874b2568ab0c8c37159ec8878675f257f475a7c81000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000000800000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020d8f57319c3c14a3763222369cc2ca1a759f1a115a09e22099ad1c3f30b968e1a0000000000000001000000000000000100000000000000207f1a19165bceb32d754c643a39696fac86e2414996354784c22f2e02c92f527c0000000000000001000000000000000100000000000000206b8664c253c857f4081b903f24cd144c3fecea41bad9c9bbc6dede7aec8206d200000000000000010000000000000000000000000000002032f5d2fcd66c6d1be270028a1b13801252fc376fa82b764868eec39365d7ad3d000000000000000100000000000000010000000000000020cab72ad06a11034c52eef8fc9375f208dcf827280d9757a6c0fa58f455a95b700000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b00000000000000080000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000100000000000000201cbef5e48bae942923c6d18d7958197b9ce2e3235793bd9ffb86842783262211000000000000000100000000000000010000000000000020e1b6449da70162184206e3c54f8a1bc62dc59e315ed2d859457c4a36e0692d1200000000000000010000000000000001000000000000002012efdb19f3477e740c260ab39237e12947930f9d6371304227e0478ea58af45d00000000000000010000000000000000000000000000002016bfa36762c0536ae259ab6ab17bacf98951fc37dcb1f69229fd857fd86fb9110000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000003d00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020b559b849ea63b933df931f5431732bd739b245bad9c12914eae279ddb28127a20000000000000001000000000000000100000000000000202cd4647ce0dd828333f071d6897d8725115df161b3afee5fd00125b915a8e6cc000000000000000100000000000000000000000000000020897ff236f9146b3986820c1eab71fcb6935e6cf4a73d36131649a0459221c9d7000000000000000100000000000000000000000000000020e66c07583081e267c33c835ae197bdafb24712978d6aac9d0f53e986147fea4200000000000000010000000000000000000000000000002024e7c960723bc5ff5c693ca69cc078c6710037929d28ae1a94c75c99daed9c020000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a000000000000001d0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000000000000000000020743d21415e8ded44dc758d10126165cc69a6c70dd61daf76d0afd6b4980d566c00000000000000010000000000000001000000000000002043952c83787323ed02967f6874b2568ab0c8c37159ec8878675f257f475a7c81000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000001e00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020bed3d57f1a0f265d35c741f468fe5ae25b80a9d8cce0bb511ce6d02c5f45496a0000000000000001000000000000000000000000000000205c83ece4383148347a1b938c80a649b18433f1e821241773a02351a95f6cf96c000000000000000100000000000000000000000000000020364ea361605912860ae69330ee197e81f5cf2aee5ee01238f89915c19e1b674f0000000000000001000000000000000000000000000000200178800a41369b66440e7a4d50b9cb10df27ae7b6096e93b35223a002189a50300000000000000010000000000000000000000000000002061bca55e64c007d6883994dba531cf815f2ac6477e2b8a7319ae51a4a14601ac0000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b000000000000001e0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000010000000000000020bab8714776f13ede8b6c14d2f9fa1dbc18ce6f336b8b592c0ea67c23f48608820000000000000001000000000000000000000000000000204cd898605e569c9a3b4c9527c494b330f36420f151c4dc20e00933ca34fe5564000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000003f00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020a0c5f8d8f37c0396f9c73fb39e50b4569da374fac8b9deb71a8eb2d7c194356a0000000000000001000000000000000000000000000000207edb8977ea6e8b5aab8ac54c422e854a363cd7d64b2db12ea3a1c18f5ecf63c0000000000000000100000000000000000000000000000020897ff236f9146b3986820c1eab71fcb6935e6cf4a73d36131649a0459221c9d7000000000000000100000000000000000000000000000020e66c07583081e267c33c835ae197bdafb24712978d6aac9d0f53e986147fea4200000000000000010000000000000000000000000000002024e7c960723bc5ff5c693ca69cc078c6710037929d28ae1a94c75c99daed9c020000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a000000000000001f0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce25000000000000000500000000000000010000000000000000000000000000002036e0725d8ea78d84622388e50be26e1800667f9718316fa6e5b5641327374dc70000000000000001000000000000000000000000000000204cd898605e569c9a3b4c9527c494b330f36420f151c4dc20e00933ca34fe5564000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000003800000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a000000000000000600000000000000010000000000000001000000000000002040aa7e5cffc72bb5c8fec8da28a63ff6f8500713c40bf5347c38161307d92a66000000000000000100000000000000010000000000000020c9c0b321b083e72b287c1f5f27bd58c8853f81a58ea7aa78fc4880a0b3e1a20300000000000000010000000000000001000000000000002088d8b2c047feeef326c27ee57ed797854d67aa1709f8a7128818fa62e55a7001000000000000000100000000000000000000000000000020e66c07583081e267c33c835ae197bdafb24712978d6aac9d0f53e986147fea4200000000000000010000000000000000000000000000002024e7c960723bc5ff5c693ca69cc078c6710037929d28ae1a94c75c99daed9c020000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000180000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000100000000000000206c7e55fc4f90a1593b82c2eeee1b68c1335e58b991f31e72c14171e9049acbc500000000000000010000000000000001000000000000002049b93df03a2d9f677c69e5781a260e352ca40353ad1badb8e1d6a023c5bcf21e0000000000000001000000000000000100000000000000209a1a091707d63ca2fc90adc03b3ff0bbe24e5d43365c4f0d46f796825fa264d0000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000000500000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020e58f1d683e6449d3061adefe19ffa668e5062e5fdad3290408c2831c340fdbeb000000000000000100000000000000010000000000000020f864bb060b739b82d8ffbf4ed8eb1cbc55e9055705b9ff946dde3ce7ed3f040c000000000000000100000000000000000000000000000020cb3c9625eb492289ae401c2efcfcf5d50feffee71cbcf4a0388efa7e8d2794470000000000000001000000000000000100000000000000203bab5ae19c3a6928a4468d0b856ea71595871c296f9e5ef991de19ee35356de0000000000000000100000000000000010000000000000020cab72ad06a11034c52eef8fc9375f208dcf827280d9757a6c0fa58f455a95b700000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b00000000000000050000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000000000000000000209f4055c1389510a1fd40b1a01c5849ccedde94acf1de1af219172f7e7bf78cd20000000000000001000000000000000100000000000000209862d0445442827e216b27b80886d6d9907158f5890ffb1fd69a1a5a81af89fe000000000000000100000000000000000000000000000020c60fac2a2326940613ae844e1963c0b7722fb786b5c848e6e5cf4560b78ff515000000000000000100000000000000010000000000000020fb11825034e1e6f44af2363fb0e9dd5bb9f3a69d7ac16add55263b9f77626b880000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000002900000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020047c0517c3d760697c7bf2d1bf32625f639094b05944f018f5cfb19847ec2075000000000000000100000000000000010000000000000020a83483e2fc9d818b2c5091dca8c826d520c3d80dfab7bd073e2f69081526e21f000000000000000100000000000000010000000000000020a3698d2bb846956a4f0e328f7f58fe2d3de4dc78469c3520aa648af402bd431e000000000000000100000000000000000000000000000020a2331e4c69f49cc61b3158951e5e40e4c60ceac04b3caf1611d2a5eaf5f352fe000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000090000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000000000000000000205c957fe18e200f67dcfdaff6ac0e79f330938d1f8ded2406740505d688bec0ad000000000000000100000000000000010000000000000020e1b6449da70162184206e3c54f8a1bc62dc59e315ed2d859457c4a36e0692d1200000000000000010000000000000001000000000000002012efdb19f3477e740c260ab39237e12947930f9d6371304227e0478ea58af45d00000000000000010000000000000000000000000000002016bfa36762c0536ae259ab6ab17bacf98951fc37dcb1f69229fd857fd86fb9110000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e0000000000000002148e58e16602596fff4ea6b392da3bc1aef7b51c771a43d9c33947a1f05de9b01b8f5cb37e1f4ef196925d25b175877efe435131cb73cc8d27d2f56ea5a39f72327c0be9 \ No newline at end of file +0x04000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d00000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b323000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b307095fc383115ae51991f4b0cc31aaeb95d4365c131cad45b44b40efbf0505ed000000000000003707095fc383115ae51991f4b0cc31aaeb95d4365c131cad45b44b40efbf0505ed3073b6aa63e339e360120f2077e8b3b232f80d5a36b89deac8b21ca7d1ae3066232eded18f56c6797fd9c773fcf85699ed250fcc5f8f625c857844aebb191da132429153f3702170e05a4ba2578b827a980477cef5b42a431ff2fc801866f1fb2fea5a17ccb1e05f7f40e543f0d9b1015d2c1d05cb32f99768fef58fa77d94233b4cd6a3c130a73461c37a2bb5b98c6491428c16b09de7fcd4375bb97a02b9e42f93c276ff7961dd7c447a53b44075066b08c628dc17f4a2417339074573e4ac28803132c5f34405e8d162da8c9fbdf64d3258814de1a381c06006eb620da17007095fc383115ae51991f4b0cc31aaeb95d4365c131cad45b44b40efbf0505ed3073b6aa63e339e360120f2077e8b3b232f80d5a36b89deac8b21ca7d1ae3066232eded18f56c6797fd9c773fcf85699ed250fcc5f8f625c857844aebb191da132429153f3702170e05a4ba2578b827a980477cef5b42a431ff2fc801866f1fb2fea5a17ccb1e05f7f40e543f0d9b1015d2c1d05cb32f99768fef58fa77d94233b4cd6a3c130a73461c37a2bb5b98c6491428c16b09de7fcd4375bb97a02b9e42f93c276ff7961dd7c447a53b44075066b08c628dc17f4a2417339074573e4ac28803132c5f34405e8d162da8c9fbdf64d3258814de1a381c06006eb620da17036465733ce9e083b72f8b42314a3d4ea8a741c64e1ccdc4f45d9b9765e6dbd30084427f02579e33891006645a8c438b61839225ef01ef6b3d215229dbc2a8ef316c06f44c5e04dcf1fc11090c129b1b14b68ddd13a5ee7dc01b3ebfb28d1be3b3123e4c59b8e33081473ac722a96df43fe1330d141962c772c97312a861a0fc211a271a494dfde93907dfd30c2080ba654185c91b149c1729c9328f528728c421a4373c0e204b1ab007c0d3b7d26e6ba7cca7e185013ef7b7aea72e84bbb8295085715d1bd3f5aa71e976124f7f4d51664b54cf43480a1462d5f9fa67d08cc1123b40190638b8f680e7b47f6f17e1a0216c9a0fb4bb1096e1c7fb6801b6e1c902d73951643ef6982d053a4a6e3ef17a2558c2a14a48e36ab6fa48acb07d509323592388e3122119b9b78cdce09c8dad8c134a5c83c8961fcf1a87ab71fada58c3771ed84e8a995ddfdca28a4f1e3768872867a0ba251e1c2e9f6246e32efd2670a0541a64433b53b7750d4296171d8ffee645f3d1fa1bee1d4f1a29c9804ddee0f6d563ccbf41832e7ff2d6d1ada8acab7b6d7744dc4d4ef881b1a3c7e4a4e163b5558579d5481ac05586b488b389356a51d8ad5378ddd9686d21f2e46e62e65242b6553a8992af4f3ebc7f13ac5bbeebc90bc0cd484f9b2de3fdeaf561b7e242be1c52b88c0274d8446b7b77d4cf5bfc4bea15801db8808134c81abb5cf6e651f2171b719535be63b0cf1cba17bc9a849abbfb8dbdb1bb21ed4d6f665927d172cb3fedb0d139d6ef44ce7b343785612198ddc65f6a85a8445ca267a65a8c4ad10519c167059e183e79339251801131ba3ccc262ff17f2bcedd4549b5f4da41e2fdaab433ec7a49fa4b5f06820339dec32ae1655ac4bff2d96e72c0025e0421c2e773afc92730427b4d864b2a8783c88953516d6c1246f092cbc6812ea1551f911b67f45afea74b7d55c8dc46b0e2bb93686e9c3a42a3ea4154b6566131f5fb72d5873a7b57baeae5f84217dfe4b56397a390d674c5f7ff858e50ca441a91460000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013b80659b742147c86ecefea7529ecaba995c5a2bd9517c0a34a19e3c211772b10bf2fe872b134f2a01eaec3f8d577e053bbd9b464d0197755e83dbed7cdf2c961b583fbdb45f979c0351fd3472abe3922f2afd49f03ac31a95f60ca4f1454da20eb8e70beaa68ca808e60368c799eaceddf60a3a5b882115a7ce951be60680682d8b076f205d93f6129d868801700a003c8e650c88dd43d3c8e986e0c616ded52d98a6c4a4984f43b26ec7a5dafa2179ab7bd727bc905babcf08ca1e4a9375b80c08635cbf0b7b506e0a6ec73e49af91659027d786e571b75f57592292f8889a00351831de2e84ddee9600c1127ad63606509226d6d6f9ec8e6e6b98b019ef182291726bc15c6b6d238885eb70b6542c9870da3f09ad44c9e3f5e2c93e67f5c00e94102aa718004effa2db6c6b5338f784ae7fdb2d6ff05715d186a5458a10680b06602ee7a318594d89d1ce4505f2b8dca4f4fb28ce3c20e27d3f30b2f12f2826a8626e86e1d981020b2e3162374abc729cea2d9815001e001f1d965d7a2a23287dad8f5ae34b96743c39292fa125986bef4efb16bb613e8d383e29578535390726928c83df7a88fcbc894f452c9d24850ae218f63ec1d5b9fa14f7077b0550000000000000000a000f0103020203060402000000000000001c0202020202020202030303030302030101010202010101010101030300000000000000020000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b3910000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b0000000000000002010100000000000008c01b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac24fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a60215507121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a7235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec21ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f30c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c80f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f046391b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac24fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a60215507121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a7235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec21ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f30c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c80f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f04639299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f10022149786017ebe61cd3033d4fb7f00cfc465a497b1464343a1a46eb7f2ed9b5de037ecb8b7278ef89d6864ef9dbf9021f38c404e2dd31c721606d7a5bc8011efd525644e452168904b7a1d5c55603780e8100ccb377e28efcc010b83283a6e51041d10d9ea1eb55d26b4407881b1f460a7d964b217ec016d41341b1740c5a49fd13b6339000e724755889e235f56b8dc1d2ce9442682cf4eb7650f52013138ce5428bf979022de60e7eafb0f0685d4337c078cb56ef1ad2d277c80dfdd3a76407721f5eda13a6df04bf7549ce0a7f4144c5f5be181a1dd31ba610d58c43a80a88309ddbc5645512211cd820a96d1956b49b55e49c58bee1588858530603d08ad4109e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f10022299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c37ecb8b7278ef89d6864ef9dbf9021f38c404e2dd31c721606d7a5bc8011efd5149786017ebe61cd3033d4fb7f00cfc465a497b1464343a1a46eb7f2ed9b5de000f1ceacf81b922b55ff754fcbf780867c0bf602cd44f1ceb8e657ccf45de6dd1b1c92b474f6363129c9fd2ac8c2d5e02d1ce7501d11f06d15e77aa926ff59f2293d2dcd25f1cc47c638985f759c97fbdba4d15626b4c7b525600fbcd00f893e0eaad862ac3c2215cfeb3fa64e48aa186d12f0dab877607a4b0b9f09dc6567641062fa3f265bd19bf498d3f7772aa222351fb66f6aa8bc5bb6114d39970a909d1a177138a3b4ffc8d389f08f2dc735d8028e91ac14bb14c4a168a2ab82a47503000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013724e4b412227f0c35c86171e17a7a5963cff48738a950e73caafdd0c9fc0ac7358ad68081f7bd143619db4422c4c68d965d3069564b9253c61846b1313d1b48305cbeb04498f59a451fd4b7146316d73da46d50827b1bc900fd47a11e00131f1344e7230ba4387806a5758cb1cd4f1471d011f0fa87c5255b8b4389645d8044068be9d68cc1490ee164ca929a4966d1f9735d3d6934220e21190d4b28adae5133836e06d011f019195fd02970314bf72239eb135cfc444ddbe9b6e3b0d1c1d9082d5ed635b09384ed9ea37068ddfa49ca2ccc748bd50f9525dfc01ee6b76d89280d4bbc5553578d5a1f011c5953b94c91ad2a137748abff36e089ad02cf31ca335cc0d3d2cdc8b7446b3e59426019a354bde27192530a8764efbc3558861256148d2727fc0d42f592c6a6fc3e70bd9eb8d5ef90d4915457a9c37651a540f5f92a375380d2157b932caf1438ff75e69b18fabd562c23c6c995917fb067997c030f5594dd109957dc3d6412df7e8ea9a4943730d652131825a740bca29240eb1c1a914c3b903dee00cac8e9c0111f18cd187d5bdf569c5033a142750b694cd9d72b1a5001f318f76a814ce82e9ffd0bd8b774ee352baa5e2c4b79b5345bfb3a0809a33997029e6941ffccfdcb561f4294eebcb4253537b1517a9116c01c58e9292fcceb6f17af5e218bb127b1bd6efd1bba5f174c2490d221be900c96f6e672e61c1b0c0a7543f48399a20d7470aac34f8db2871cd7bab8664009212db11d151202268fee5f72984fa7a3bbdfa4d421113e2f272f4282aeb821107094b65f3c56166befb5171f47394b6710b5cbf1e0a257d568300d169b1ede64dfad66ceb1702994104ae8e0b8c6b498ef4a340e1f5dca7130cbfc365dfcbac8513f99314e91301bae89739c641e7903538cfbb9632b94e46ff438240e7ebecb2d760209772f0fe451768c639be186fcac7304469cd48d622907d128ea9cda620376fdf688d2308a68af420df4985d10a1c0ea9eefd981a264d0fccd5d26ee7050870a2f53e80f759750bdf20b67a2ef5e3f15611026a0a4342b0c7f9bf4aabce065f5d0ac1932b40b6c4a45c6f9d15328c4951aaf3f21582d20d41be66fdca9ffdc32eca3850d4bf493b5ba39062eacd73b6ae550c100ee6bdb353112abbc833110cd135c7c166befb5171f47394b6710b5cbf1e0a257d568300d169b1ede64dfad66ceb1702994104ae8e0b8c6b498ef4a340e1f5dca7130cbfc365dfcbac8513f99314e91301bae89739c641e7903538cfbb9632b94e46ff438240e7ebecb2d760209772f0fe451768c639be186fcac7304469cd48d622907d128ea9cda620376fdf688d2308a68af420df4985d10a1c0ea9eefd981a264d0fccd5d26ee7050870a2f53e80f759750bdf20b67a2ef5e3f15611026a0a4342b0c7f9bf4aabce065f5d0ac1932b40b6c4a45c6f9d15328c4951aaf3f21582d20d41be66fdca9ffdc32eca3850d4bf493b5ba39062eacd73b6ae550c100ee6bdb353112abbc833110cd135c7c0ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b22e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d570944c8b525cef9aeb6196bfeccb204f8c0abd5e804a7bd874b22c345a083974903dae1cefa8b3e8651b5641fb8f11cb8a8245710ca4daeeb318975e771a9c62700bc77aca9e7d8c088a46bb0d9352ccafb655af885121e63593dfac07b085ddf2cfa0c976ae6ff0848edde9901d28c0cd51308db7b21e9a8dfe07d759bd8457a155688d981b77c5547844ba72261d22ec5abcdd07d725ce2033964d5927e021f1cdd669fc5d79a448ffcd0efe3977a2eb750b395fba24cce8643b5f22f878eec10b56b9db92952b7facf8cc9fa4b002ccca752fc869e8b81623d6e13f80d981b3f129d2ae85a2df8d274826217c3812ab5def954d619e1d6fd251490400a998a22e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d570ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b03dae1cefa8b3e8651b5641fb8f11cb8a8245710ca4daeeb318975e771a9c6270944c8b525cef9aeb6196bfeccb204f8c0abd5e804a7bd874b22c345a0839749389355a77324a20e98a97cf4334d6cc63ef1125f05f2a92027e77632ac752e0429c0e79552f4bd7f5c27e602447a6eb089434e9863cc800a19d71828ceb06a4308e4eaf8d45865d08c3e5a339a76afcd3eee7b847a39282181123160cf3940c63613f858722a9322bf067b46254399fa1a2641c93ad924642fa03b4414f618413c8af2f15dc61b1a8a5cf3558c2f94279b9c82c34d9aea4efdf7fae0c5156ff02d0eeb76db4e5e4b69a018064e9e2fd0f8e1202b3adb5b1e3d1316f63603eb21000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012575936d191ba8bf36e9dd481b8fa2598f52cb457eb1133a841bde2965afb79813e724a5a11a4708151d907146931621a309e4dcd972b35a2ed46dcda145c65f2ec4358cffe8a19ecef5b8839c65d8459e54980e9dc99561d4183c5eae76f9041be9564bebf2fe310e746c1c51a90505734e14ce9053136249a1506d518209a02ef35421c2912cf3e071a5343e46f614c7b889cc93508c7b53acbed6d48e5f79127d9318c88ccd8da528bb6dab16ae73fba914293def1d512aad1284eab37f8b315dbe7e63d4b47ed5b6ed5fa6d110b85ce099bf2ce745984bb59394bfd17c2424fc4b0a9a7b9c1eb15f758dc93fe5e6f563fd277f9f94af7e48870f8b61575932ab80cfe0349877ff8a37704225c1451bcb2b2456e7e4406081731ce7ecfa530c24d48abb9adef5f311edfb09cf041140be417a21ba9d9cf3be36c8f3d0ceac1f970aedc5f86cd926938ba3af3c265e5010b9ac70a862c234ac1f5970f8f3d329d14fead2daa35a993adc1970e9bf748abb0d75fcbceafec473450cdfed324f182cdf870a13d21b705480f690b07805141109de326eb89c7f560b939c4bb7ab2d7ebcb67943134fdbc150f8206baca0bbe140364fd7f5c36d661eac28fc5c341d6508de366806ad1bbcdabcf2c3cd44fc2ac7a2f1e12ee5ea1584d1a7ba5e73032222cf45f7cbac5f585fead897490d48b102636ba8c1a78f7313f86a368dc327cfb9e9289768449a9e9070f6a32a8f0abbae7f41a2beaf3e0d2c3635cc658d2b6e5fcf2a824bbd44bf5d0562d1e4ff943c3514ed83f539c40acbe3492005f8028c44eab3b34e97394eaa8c25744fba55a775171d92b0fe098a524e6b9c52d13d73bb154c4cb168c6b15573da8bb045cc9f23e4ebba481d8fa2de9e9463ad300cbd5895828088f41e8954bcbb458ea3ac45497393dd74f62fb39b881a0d9e153342a76a7d7f770be176ab4344ba715c76014f88756f842569799564e5f261ec3fb2baeb8c82acc498aea7afa85bc9325d5a6f41e35348ceee8209a882441669004d4514737d533b6751585057a436cdc4ec29ba25f9b04caaab27447dbbe9983e7da699be8d5fd6fb69466e49caedfb49a9c8594b6c879c43d56c968b547009018259664172a0290496b991b6351204d89cd0a2bde0717f5557c45674ab8ff8028c44eab3b34e97394eaa8c25744fba55a775171d92b0fe098a524e6b9c52d13d73bb154c4cb168c6b15573da8bb045cc9f23e4ebba481d8fa2de9e9463ad300cbd5895828088f41e8954bcbb458ea3ac45497393dd74f62fb39b881a0d9e153342a76a7d7f770be176ab4344ba715c76014f88756f842569799564e5f261ec3fb2baeb8c82acc498aea7afa85bc9325d5a6f41e35348ceee8209a882441669004d4514737d533b6751585057a436cdc4ec29ba25f9b04caaab27447dbbe9983e7da699be8d5fd6fb69466e49caedfb49a9c8594b6c879c43d56c968b547009018259664172a0290496b991b6351204d89cd0a2bde0717f5557c45674ab8ff80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000189ddd23bc35ace2b428205e451f3e0391d28302ad85627d257d35180133b91e0000000000000000000000000000000000000000000000000000000000000001384aad28b9aa43bc96a5a5d0b149c019f725846ee1b96895502f139d94ce4c98000000000000000000000000000000000000000000000000000000000000000002de8d279306fadf8d43d48197436ff95aa2cd5d91e9386f17a5d0a64c5c3b0b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001090996438597da1fc234a220f1d5d27f89914ab924b2cd0994ff3fc1a3d1dd20218483c5916b5e587adfc8ae8765a857cfea4a27caae7de67a4842c16229393a159d3d4d94f424b4a7321b64fecbf3cc294b9483a29337f43578f27fa71d442f3450935f5c08b5ba732fec2aae8bc669e710b184f199794f62f0f1119def62f416a5859bdd775c94910ccae390b037aeb145da523781a7c3106bf87beb117ade08334d36ac74f524d6838eb29f72d77118dba10003796e5ed22c9cc5a99b5c5f00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000018ad7fd01ab9b011618c9b1fbe46ec19fd9f9b5a48e1b551676aebd48fc0d4203b96eee7b92b767a50431ec867c7f8ed490783c3e68211a4ba282ed52188f0b43045447b1197a14c273bbd82558a1341bfcf504f80afb0b647e98db95e046b591466c53feaa430bbab2f8287ef1d7cc35dfd1dc427be655e410984c8abd0a74928cbbf65d3760a2f16ae7781d6c7510032ba30f08ad0926bd5c542ba8a1128fa3c586920c4b1d237940002d53f46637f8bc4fdb95f562ac674452607268b40770d59eeb3e6eee8f8b4df47781492ffecebcac8c9769c0e5f428c2c2b27faf56c0456559408edd02e1ac3b053e95988454fbfeded9a42d811ebace7b175923ac7194a0ca601b4111daec4dcd2ac7fa58c514a9480eb261d4cd268e2e7dcfe54b9193008f56f631f32175a5199e334f4af1f8cdead77584edd8a8222c84cc8944a1036bd99b1623abe9bef85be3389f5da64441568a171dcb133c553b2a04208e531a86e2fe6e27e2ecdae1f696ced7015d92e0fb3074b47ffb20d282d848b54ae14032e0d9c74673c7e67b285442eb48ff6c43a617afb66603aaf021240bcbf310000000000000000000000000000000000000000000000000000000000000000109454259592027c6cf5644a5d02ea129d9399ce489991c269f698a79313d94000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575109a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b00fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d430f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22334bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575109a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b00fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d430f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22334bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a2295afaabac21f4e0a11ffb4e8de9e5bbb1afbdd358923103fc7ddd9e92eb6ee167cfef734a5fd046d46933e9ef83d8ee4eb029f5a344e2d13fa045055f26b2e113b60b09c7b5b98ea91e103c6062589628b6f8b82f9626aab445c9f02396d0605d74903a2f864b1766aac93530771ff772dc8cd9b5831030e4a6115e6863aa1310f2eca598d3d00e275210852674b0ea2f59088c39391ed93441ffaa8ee75f12e9c4847830f113296f2177751632c13ee7a49ac4a8361c20b5f4f4fe6c2d4032bc67032c253b8e63f817254b80049072c24c786ac1373af1f28c25d7e7a7efa027bc995bd2ef4cdf70abadb1d5a5b734cb2e86dc22a34bbd6ef456a884c08c1022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c167cfef734a5fd046d46933e9ef83d8ee4eb029f5a344e2d13fa045055f26b2e2295afaabac21f4e0a11ffb4e8de9e5bbb1afbdd358923103fc7ddd9e92eb6ee3967096d528a85ed365287686f92a8804e9a86a0e269aa149acec026b7a3956909f4388f55228362a4e625ade8c9b4a0833f57db88a56f4967f54ad9b11d7c472e8e5c7df9fe1269f5166c9b8802781ea6babaf5a155593a1ace47ae2d06904e16089b91dec1f74ce308b61c19ff6861b5d992bcee09c23c650ee73f05e75d3117812ae92aa2f3525670377986b10d79dc00ce4848088ee9cc011bf312dd6ed80ccad85659149fa78a908ada922248f293ee70afb0ef76912d8964f05eaf381d0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000106af74a187e239a5d4f6576bde70f6adb61c2ba19c738f85147f04fd7640cd14046f4f29df8f33704561d2ab49a3dbe2f61b4d9953e691bd08754dd6347d4ae01e30b2dfcd8c75fe29ffba7f562fdba2a9f36a95410965d6acc6484fe77a7040307eb5e1adad177f709609b534888a8ddcd93011d35e911666c43faeb3671f78166dc038530fafeba17106a91cae355f009369be454b656e00c3d8957e9bac8114e733d83ddae8bea954a1f0d09cccad0fcc5d3f965bd30fd4f628f99dcc608e02cd2da61f6ccce4a2584c51638701bfacc42c88c596a5e17885cb4a08fc3d150263db3c4272776505e23bc9c7de759b0e9360c623ed3fe06f52d84bffca2bac137e567a049a57c43ba823d8bba1b48f31504ce084cbe35d6046a35818039fdb2191f1182cfdb5a51d30050873ff61f990be58aafa9e206b019115a8f56035a024bc3a3af7da671cc5b93aeba2b55d26239217711855c8c1654a71ee3214558e0fc887183b9ef36be050137e5bbe29ff312734a7258f83183d5b72808ff34f81211803aa24255ebe214e7a33840a021562f46e4020f16acfc55ee5373872f363249398935f3186ad2ac757bb2d1222906cfddbd461554390275d45088cd5207c350f3f98191236d0186532fa8a99cd5ffcb9ed4f1d36f652fe85961bc3636b5836d138eaef1a25a02f58d4a216a2b7161497813d2147d4e6c650bff471160b900cd408e2bd8d8d96764d3c26cb762a821c3e734c63d7ee7c95ff1f0343f497a32db22c720eeb006d1fc192e32022092e97b524f53e7b0e08ec0207e03e7a05e43b9e758ae3cf4a360111446f6309d4e0b97c76a054c3cef3055e7cbfbf7586fc04618a751c30b5c9feeebb909cf62b1f68ca225bb4892a2893ceb42d408a79052a184bb6730c730e0556562cef3128631653ed31829f2650b623ac0abd4ba2e815e7b4498cf38cf1faa9a9d310ced79d0bf2abca86add2cae30984e242b45d1912797a903f3e3f461aafaee0abf5c9ef08cfd7037134d440c32ac96eb27a2e852d86856fc0c1c0b9e550511f540a36111976c1f8981824dad602677e4d85d17c1c5f64d13c373c5e856e6a635bccf1ab09c89a152cbb2c2836a8be3c7c62e89823a09b2ec3c8c3a17a91959ca4330e55187dfee6dc91ccf3628472b0839d17693b9e758ae3cf4a360111446f6309d4e0b97c76a054c3cef3055e7cbfbf7586fc04618a751c30b5c9feeebb909cf62b1f68ca225bb4892a2893ceb42d408a79052a184bb6730c730e0556562cef3128631653ed31829f2650b623ac0abd4ba2e815e7b4498cf38cf1faa9a9d310ced79d0bf2abca86add2cae30984e242b45d1912797a903f3e3f461aafaee0abf5c9ef08cfd7037134d440c32ac96eb27a2e852d86856fc0c1c0b9e550511f540a36111976c1f8981824dad602677e4d85d17c1c5f64d13c373c5e856e6a635bccf1ab09c89a152cbb2c2836a8be3c7c62e89823a09b2ec3c8c3a17a91959ca4330e55187dfee6dc91ccf3628472b0839d176928a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e870b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc19dbc672f45c591d4620260144ca4c78e2a9b5b0c29f0483ee09c0cef1690f98325e65080be82714960db7414d9bb120e71d89a040970bc046d3e3bbea12852839c694bf556cccd9364084035d17b9f96ecc47be1f4d2133ccd0390fa60f5fe021bb3e913ead353b0742060c1370ebfe3c7e98124d1c2b4d99a2d82d21f52ba5362edc5ae96c7b2779e897a96dc4bd9b8fb237eb0d1effcbd6d53ccd22de8ad60a066c759323c828ea80bfb2ce0bc6b15af40804404a913b29729525ab1fc80f389ca414683fbb35b9e9a041c888ed8252cd07fce13e165292a0792797ad785f27bf2e632a2138ad0834a8464d9ddf9ccbffae45f65702d5ff1ed1a6503f00010b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc28a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e87325e65080be82714960db7414d9bb120e71d89a040970bc046d3e3bbea12852819dbc672f45c591d4620260144ca4c78e2a9b5b0c29f0483ee09c0cef1690f9800d30b83ec9b11411bcbda065c1e4b7eb295c4c4f6d8ad76d4a489977faf4b3330dba54bfe379a89a8822c591ef302b8005cf3abf692b0e44279f5fd8d7b6d7a0986bbefec0195cee16a190bf985ee4f9c41a4c2c3d72e49789d256b9e56f44f312ae9121a99b19a8dbf7bc527afc7a15ea68e245d6f6355112beeec71825fe903c389a77683e16e6a50cf61cdc4498c099f64d7417152dffac676e8f9dcd8fa00de8e1ee8b1b3fc579a7f287fe495d41fc184c524b305d37ac94b9307228cf6000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011d828e4ce41d73f828155a137842a2ba0117f9e60f0c659c9d91f69d1ffa952503089b5c09d2f3c8127243cf6c9cd96880bcf23fa17432c8da68980510d6539834e1eee8c05c1290d3c06b6633d52b6577f70ea9dd3bf047fdc6cae102a23e233e2db85c82f74eae479f96fc8ba3afac91c3a0fc28c37b3ae99c80104d4da8192ab4413372eb7f6210a2bf6633c101d4873fbdbdf2c8f7c4cd05a65c3762d1b6164d61961bca52de3fa0dd08b850ff1a203944f5d4855bc73023d065b1ceb88029451a23464e9de2cdee4c6da4c80948b52a711ed2bc76aedbedd4decc3b6a6f191523cfa938089e3812000a84ed39a307134f706f21cc95f401c29648272505394862713033de766b75beb758ea7a7f693209d3edeff44ec887bb0b5d06e5430ab219358f4e79ca9fba3bb645971af7e0ca02afb370ba879b11ba17a6ffeb1327ea37938a74b95b14e61a3366cf774614854c75be13e22b717f1a3fc751baf73bf2c701ddcada3af8eae16281ea8630295103c28c88fe7335b6daeedc29eee332cb6858a711edb3f0cf61f46efd2fcf549a5493b2d9de1896fc6e90e70f09f512e033e4dc44f7b75b466ffa421ef4d67b57f580cf6cd04755bfbbaede3909ea2c39d7573059deb7ff99940a55ec308df9f3dca6d1ee13483d653cf9d263466e0df1b7c0e5c8d04f2751a60189c47380b475311d8f4ad9750f435b50dbfd5a5f01c8d7964ec20270882bd4241d07bbb41581693978f0de35ab66815377b3d8b42db1bdb2a44092854640220ddda3085037f435d5f6c4b31e35790ea088ada71b336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a0c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba0305e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df63a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b1d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce22724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a33336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a0c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba0305e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df63a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b1d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce22724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a330a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac629bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c3a1fd91331ac8e97af8356a18902d5d6cb9303a89611fe8d9d6f55ec0f200be1120d8f2f9cabf36cf829e0210d653a2833c4df016bdce7f4bb8826eb6390d72016baf5e7af78967b999941f98581a9d2f912731f0fbf834efeb125d9bcf3732012540e141ce2a315e825d6a10645a6f5c73a3120ecfc19f4474424dd222169b5381534886392ddb64e77febf8bdf5c4998f8cc6075d0825191be8fc4cdd391172821af27180482573f3ecee0774ea94b46f631ff5dc52bd5e10128d777516f412ce3106d2a4a3626079a2edbee62aa99c3122521fdb7f49f32ce4008627d45dc2fa1a25a8bf6d439b9708221ea96b0fa996bc633864855bcb0f6ac53241ac67729bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c0a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac6120d8f2f9cabf36cf829e0210d653a2833c4df016bdce7f4bb8826eb6390d7203a1fd91331ac8e97af8356a18902d5d6cb9303a89611fe8d9d6f55ec0f200be1118c5ee80f099e8df8b52cb1f015b009941088d4f688bb58fb9bb569998b37d8147441836362e8118976426673d67273cb3cf157e2cc4d5bccd96b59e710cb00287c73f5fd950aa93f04237026d37d0948266965fbe3dc006391b57ed538f732384824ce748cf5a7d156a59e0d985d577dfd40238b9a57749245502337e3e0bf01f6cf45ffbdd7644013efdb0149f0d13d05d378ccecef68279ac2af2d55934b1c722d17982370e0f6daa91bf2096015c3df93f6e05393f28aee44939517961e00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001072c5b805a273c453eb6ac32ce90892bbde748ff4d2c9ccc80a9f438b77976762691588600d6cd9790d8ce492a02b92e45f5fcf1bd7c738551eb4dadb1ee211400eec28673637baa2ad837ee56b0eabc416ab0ce96d3bff2fdb57a9ff20d1dd00284dd9c592a15f98e67560ea7358d722ea18f4bcc5d891145bb69bcd68fd23739f3ee737bff0ba7233b544262d02c3942d4d9ec6459e3d7f81e13118fa1ec731b1f706b62e812a37b3309696a70c2794529ecefbea33c8b1b9a0a5b62f1873e1f995bdaf1da5b1c9da459fe0e9568a8b946f78a0ef76cd6df4e43e631ac75462f9a1d8dd21de953a15e5947a708f4a52246c07b22586e0fcebe7f4882cc036a305b225aa447010a399917100475e37f170b2ae8879183f1571ac2111a47d32a038fea98ea12d9434e2f29d0f89994403000952296db69c072e46933215b13522e0ac4338ee633dec7b678ba61ab735a54ee4c0ece327c7d56579df308e959c92a39a4af6433adac6e6119a8cefe9375ba808ce745e9306a0918c661d0f27767055115b3d3d604e221d944cc6370be0747639af5b33e9060b094afe5ed518109005a8689af80e0892a3c8d224dab669e66481622c5bb24e3a2fa496cd7f692d53cb38645b96e16b9a92e76600443478585a041ac8ced2c83ad365d73f8618571288e92fe825a5896e7b00171d66c2cf7a1cbac0ba98ab430c4badc5169161c21062b6fa37e95086467b2f244e1f82c15cb6f012de29bb0caf621312a6120f34e0d6bc7e5e38df29064e930b982c5e49aa0799d8b89438a87b9005df43b77b7b32536d7ae9327c01d3159ed3ae3849187e4fded6c3b9bbd494a7b15ae78e51dfe1ac928516cd83fe2cea612c51c7b6e783d48ab8fcdb13bd24eb21b3e871ae2033a123668dfc6c091f6c1a2267196d7a7346871251770c037420d0a8e5c7995f405edc99720393f6e093e5dd98e692858edde27d6f1dc38e45720265ea3866a0d225b100c5ee1c2d9d1c82ac037f236437cefd1c94fffdca5e58c7113ce5fedc01da4eff3a11e3d262e37d53fc80dc9bca556c732b94d1c75b3a0bfd931a012412bc7503dda68ce4118e8d5c117bb0f512c21e6f67d655d064963d38907dfa4be1438afc2259731bee7172a3ee844f0aef624b2058be79c154fc95d63f8205b432536d7ae9327c01d3159ed3ae3849187e4fded6c3b9bbd494a7b15ae78e51dfe1ac928516cd83fe2cea612c51c7b6e783d48ab8fcdb13bd24eb21b3e871ae2033a123668dfc6c091f6c1a2267196d7a7346871251770c037420d0a8e5c7995f405edc99720393f6e093e5dd98e692858edde27d6f1dc38e45720265ea3866a0d225b100c5ee1c2d9d1c82ac037f236437cefd1c94fffdca5e58c7113ce5fedc01da4eff3a11e3d262e37d53fc80dc9bca556c732b94d1c75b3a0bfd931a012412bc7503dda68ce4118e8d5c117bb0f512c21e6f67d655d064963d38907dfa4be1438afc2259731bee7172a3ee844f0aef624b2058be79c154fc95d63f8205b43235b5f0d6a17565734c6c297adb20db96542cc678885f50ad8c48986405d7d6b047780b393c9324d25d3cf2c8399bf9cb8b67dbfc80f7d2ddb11c11af25663f7075b39653009afe58d1a961603a54b8d15568374b04917877bfd58681d935c2010d1e6d9d215c776184ad825cb0ee71ceef6cb60086e6f5b69598de3afb8c2800964d9d3330d1670a4e42fbc3a9cafb73d8bb473828ee56bd51e00139804035f34de7ed6cdd5e9ec53e61b5cf8bd1553b3aefdb5dfd6e19b85504cdc9fdf0c5718d47e3a9332a846a812c94d8c36d118eb79d9d7f584302d5054988978b26f841d9ab56e8560cc5b188fd8644205937462a09bc21b28a4c47ffb683f72a166bd1c0f064577bfe79112d438e1d93c5e021497a4e3ac45ee050b3d18fab40f739201b38119d0dd919597fbee818ad62366b6b64f31cd53789ea4949f910193441a047780b393c9324d25d3cf2c8399bf9cb8b67dbfc80f7d2ddb11c11af25663f7235b5f0d6a17565734c6c297adb20db96542cc678885f50ad8c48986405d7d6b10d1e6d9d215c776184ad825cb0ee71ceef6cb60086e6f5b69598de3afb8c280075b39653009afe58d1a961603a54b8d15568374b04917877bfd58681d935c203c6205425790ef06985ac604ec04e5bc9d3d2d03b5732f80164c65824a3e05c90406e37c033832a090e243740a516edbebce3ce6b2323e10020a43fb145471121a93e76657d1bf2388918c108fbe19107cba5cb74fdeb6990ca199928cb0ef17033fb6a0f23fcce245175e9a3da1ba805652695547dd6f581c0d64cab19d760e00db884aab45e127363abcf0c0b693034089ec707082b8688ee267a938e8de5a27300cd024f133a83fb00a8df7abba94e76172e142187e5582f6a907b21576b7000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013a01018a895b9b3914b81ba4b10fba8d618518a7478e694f320211753070f8a92608a4ab5ce560906a986ce7d4b58b0def30804856461e75252b4a562553b1f400e00aeab28bb22116224f1a05f7aebab5ef02779ecc6cdb5d5dddb716be2ad719be254c22cb3b14cf62371be05d77b6b13824ad804be2e1ebf1840074bd8c3e059004863d41049d0669d64b3c21ac172b8fff8c429f6fd3761e861b2d20e3f51404205823c398f26306c1cf86efc9a0c75f21c9b8a8b50719b7cb2c9d61a6bc191dd603e3dce6f71f7a2cccdcf1c1af827169531bf8d52dc1b1466555d595000f0362bc2830be3685d149b28e9ae8361fc140c85e9ed38214c61b75cf2ec3e70948eea80556d72d679874404f21a41b088745195d025d9c00ced9f429bd96521dfc693ba66b6882274b4f90bc26b512652ef3d430807ad60e107b8c056ea5861e3782f5e125f2a61897c01876ec0aced34109b5eb5511bc6413ec92a96190dd217cf72d1a8c086d2234350f7a528fcdbd2284f3b63837f4533eae3182b8a70c09f7c3dbb7f17a84c17b5948ff986c7e693c5b5897dd966feccf955ab5f682d53bb3d861cb656ae68a9a78a5b183b82766b5eebbea6917efffec94e50f51910a3d8f4e59b66dd924165fcf84abb1da2532544cbc9871fc2883e4917cba795fa631cccc3472e5f4e8112800ae099a4ce0eb4e2bd7ec43f9ee8e757ea7048ebe5d2f0e7a4fd7ad5a14535ec06dd84c83566f629b500aadda5276c7621309f569240de46c9cce07756a77c71bdefd3eea51d363580546d4b159b3ce6bbb662b0ee23036b4f581afee8fdf581f5a12018200388315cef6b547c023c21149500f418d0fc94b0a7e50117020a7e0a5edfe7dffe9c3832d1297b15b756b1fa3aff0be74311188cb886fa8cf5cb89cc25a078a00b3bba216b5a37b6de742c3a7904c47be0eee773477905730a347633da5f875ff6e8af6e553a97dadb1ea6d456fb3b8433557abf9aa2e4c0ccf9b0fcbc225b2031bd65f7d704a7dd2b8c63f7ed17d66b30aa8540655d1b3f33064f0343dda4dfd0670397e99027b48e066f16e2e82994e0ab65be052e77c400e074efacabc7a0f021579830c4090af372a79c61773017b3549a41fad1883bff1f8b105354385f120311f78fd0c686c6202b726e88cfe863036b4f581afee8fdf581f5a12018200388315cef6b547c023c21149500f418d0fc94b0a7e50117020a7e0a5edfe7dffe9c3832d1297b15b756b1fa3aff0be74311188cb886fa8cf5cb89cc25a078a00b3bba216b5a37b6de742c3a7904c47be0eee773477905730a347633da5f875ff6e8af6e553a97dadb1ea6d456fb3b8433557abf9aa2e4c0ccf9b0fcbc225b2031bd65f7d704a7dd2b8c63f7ed17d66b30aa8540655d1b3f33064f0343dda4dfd0670397e99027b48e066f16e2e82994e0ab65be052e77c400e074efacabc7a0f021579830c4090af372a79c61773017b3549a41fad1883bff1f8b105354385f120311f78fd0c686c6202b726e88cfe8617f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a66373017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e099029640cecb60663ca3c84e3ab471407605fd8c4601eda6da17cf6c5cd3e8d1cff79db85b96434bd8f0c9e18ad525245992fbee4f7ea7d6b58ec3aa0045ed408c85ae8189c346ae34d8272b01c1bcef5ee292e4a4c244926ff48e0d8bb2c8b0e8dc8be172e251b5ad8247c6a8cf3cb3d9b1fb15fa2407b9062ca256ddd6dd510c579ef7a63df171afa3028349cb22409e97a4fd2ff1d3668b6e0093f87f0a902690d4f4950a80bccbef628066c3195b8abac22791669f6cff2ede7df810fc93abda6361e872e85d93352bd64dcf053ac029cd86e08c349cace3839e84452383312a351e4b44da20799ff07b367b2ba8a6c33c10cc30255a45e011599823e7b017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e17f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a663731cff79db85b96434bd8f0c9e18ad525245992fbee4f7ea7d6b58ec3aa0045ed4099029640cecb60663ca3c84e3ab471407605fd8c4601eda6da17cf6c5cd3e8d320eec6debac4683b85647653b81b8799ad9a7ef5dabf08ac81c7ea93bbc5ece05a6b50f6afc6a928ae0bafe9f3abc8dbb59b27883237f00fec2eb3db5a5a31c1db2df172c59615c18237ffde8a17415445b67a97940020f843d821c3a72fb3f246dc857f182f70d22ef809b8915546eb77270772499c8fb688d07d9a7d8529d1d3d89258afba8c41f5393ab1a1f6458661c7133b1113f34f10fc11efed0ed31122345bdcf51e8e35db729e3c7f32c608c79ca39153033e0b82065380d8e4dbc000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012b9810dddcf90f9f4c06f260004342fc63662858ed4ff39d0a8cf2e7775269c82475ea91da2758d6b09cd461dae0af12b679ab26e447b9ac605660e3acba14af0c2e55ba1e2b49c5f145283b0b8ea87e8b3a66ce7fba776142537074fae780dc2e174cdb9018fd04fb0673c1769fdbce5cae41cfd6fdc35ccdf5cd3c54063dfc25cd767b5e321744344bf968778d56b3c321fea4f71ce737d857caef85bdaeb720fc789a36bde8317d9c77eb0bef30bab9b79973e88b480ffc3f2bb6a6c366f83b6916a23f7996b650da8b33dc59952e9b1bccfdf2b312ce7cfdc71b2943aefd28c23c54bcb0909629a70cb5f3a84298b045da7facd6a0b60257db1787c2175f13bc35b7dbe7a40af6da79731bb2193c2fc10c1a9b66aa5419257b5f5c4a3fa12b1714470ea2e4371b06d4eac2b18f840779bb265fcc567e009574fb3fcb710d0d965cdd60678c78c42601485bd5e413bc7f8b1a7e1cde3dab7c3dee2fe807f033e356a5bfb39401153fe01fe114bdefcf32f82eb18c6e20f0a422a91accdb191ee4bd9830e4164e8a7c8046147916ed9233a6a1d5d0f148b2c04ac3ccdb624226c6dea55272cf1cc19951a89ca30db83dbea372ac75bd1739fbdf7bf86cb19d1d3856a41545e20d100bd9bc6a9b7c78dde807f91f52dbe0f2051dd45d13f4b10c593a8474488c9b78b8b3ea4ed7c537d97c40fe0bc239e9974fc5d817c312e72e5289f9efc5a8f9dc4b0fc6404e455d0ea75d8b925df0b95f93f67aa1d3767d10b2dd43f66095d3b13515594454fa739be3fb595395c0796430e5f468770f7835c3976d398f747336feaa383f3713a35943f3c4edb6b1b51af8347c453c12f50a3c6892c6708b8cc90155c7c0c8ec5cc902a5371b9647667e34fc70bac3ed0c0cd1f5221fcd464012f953193c13623035395ee87f5d941b222442b95a2c5ec5332e0adde032b9bfed06ace6c3ec9dcfed0d3a1389ef65007708ee33a5d3a13c0019c9aa9f025f405ede9f7e2c60eaf0e7d8418e7386eb6c11881cb1c2ddd9d83fe6365560fda0bfa1216081d39f150f3a6e576d95c60daf87a5143b3d2226290080f0551b0bdc41da591d76dde496b4873947c841a2991c57a88f78ce5541383f7f0faae4f423be25a6e289221b694b9b0d5133c7aa5fff4184a17431aabec935c3976d398f747336feaa383f3713a35943f3c4edb6b1b51af8347c453c12f50a3c6892c6708b8cc90155c7c0c8ec5cc902a5371b9647667e34fc70bac3ed0c0cd1f5221fcd464012f953193c13623035395ee87f5d941b222442b95a2c5ec5332e0adde032b9bfed06ace6c3ec9dcfed0d3a1389ef65007708ee33a5d3a13c0019c9aa9f025f405ede9f7e2c60eaf0e7d8418e7386eb6c11881cb1c2ddd9d83fe6365560fda0bfa1216081d39f150f3a6e576d95c60daf87a5143b3d2226290080f0551b0bdc41da591d76dde496b4873947c841a2991c57a88f78ce5541383f7f0faae4f423be25a6e289221b694b9b0d5133c7aa5fff4184a17431aabec90552acfb4136a8687c086867198f336159a70e0de3347500c25c57abf0d8fec13c5f354a6809f5d8fc0d754f10b0845dec5a231524772141e6eba5461ed414fa2fa81737a7f382da645261ef58dc599e11f9ecb9c3be30b083103cdfae1320470ea60682aecbdee42397c05a7ce3eea2ec92141b47302b4406022808423fcc010559925ea413ce9bc0338a00d6e23724ee9d834c52594f99ba3c69852b150a673b442fe80237f9f2471ed5bec0a322c9943733baa45cff62f815d8df1ad316173fe1468df0d4367ccccba93df2730956b4dec3517611b685993d5bd3dee7bd183f8129a0cbf2c2ee7797ce18340fa10c6fc510cf0c940f15873982226f52810b1bd3832741c31cd41f4b79e067ea358ea2ad751c49ea6025c7f9ab78073c10f9203cc350bbecc8ec4012b59703593e4317e7ede6417f5509819c6dc37e94d8b53c5f354a6809f5d8fc0d754f10b0845dec5a231524772141e6eba5461ed414fa0552acfb4136a8687c086867198f336159a70e0de3347500c25c57abf0d8fec10ea60682aecbdee42397c05a7ce3eea2ec92141b47302b4406022808423fcc012fa81737a7f382da645261ef58dc599e11f9ecb9c3be30b083103cdfae1320470a6c518d4bc90f7ded1669419cc1c92e5a9676d06593ac5f2145fdb1e9471d481b5dfa9bd184d0569fdc43066fe8b048bd08e7d34083390f0f6b37b5dfee82f037fbe9f526022308ffc49beb531c492be5de1b05c054cdac3d5c551939cde90a20374efa3e791f5d3c185680619348147ad51d8ce8be00c16f9cfeba2b95d02e19ec0292880f6c4530091eea15cc26cba9f2702828e5b9e9fed63b24d514a6d63140ff15e22c58558c7ff547f9d9d0da5a7030b0219337e3d303e7dc731867640000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000110fc56c95710c1a945f27477766b823f188f19e53e367835e5e911758cf1a1f414d8780aabd115c01d8be5a83eb232a5f8586dc670dd48dc15a1ea3dba0392f42a2eff5392285967d07c6dc9450daad9480872be9e81b6ea4021536af147cd470debae6fa3b3602532c67da61fb6dedc1f10a099e661ac47304a1f82bb1a48703629157a361d92390fb6e3aa790c3c0d5d4d940407cb058e8b2fb255b9a05eb63f7ad558ad51046f91d3ae56cbbf49f30d17fc268201af9fbc4281196030106a220023e72f010d84d9151db5e846a5cf86bad30c71fa9edd01327fdcf7d4d954098006a27938312658134224b1e12467530b30fb362e3056b1da2688d20d0d09378cb2eacda6d23a45e376177ad6dffd17495835e91b1fd2ca888c7e5d287c383f9a015901a40e675ef09f0243a0bd4740cc66aa2ac05806cb7d2ddc917c2a043588b992a12ab13cf2ea4c93246d49a657fa8777bd47e45fbfc8c24c09ef021027e26129456fd53cb4d76b77064c7b3f2c75e6246a31225ac749637d51ebefb41cfe54bd01cfd75bacf774d91e2519ba284b1324861ce98e805096b87dd148f528ad478081870e0f9f1e5d1592f70aeba7a736effc29c4d16c6b93874776caea2ba71a2265ccfdd6e7ba337058782260776aee5a61a7cf94f2e53881d6e6d16e21934f9fd4970d89945a97c337426fc319019daaface7f8ed1dbbdab3a4a4d9f3ed55c19fa51dcfc783b1b5da6d51e9e56ceaec37c5b5b3f556c2cd703c22a811c5921863a91a1143d13dffc222623fcdc8f8333ca2677d9976aa55e6c064be50087ae544ea93498c65afeaf9509667beb82df3516b3d44d414281f416174e503f7851abb156cb6739a501506af6998436c3b9c6f29924ce57eaaef8e9e8b1b102a667a5894e06fbdfc6f96de92f006b998e5c0971832582464c89c46e7487903d59985a76b1f9042039069216d0ff9488b83cf297c9d39952e0a728918b78710d40063bae8622eb5ee2df258deb0219ffc7cc2f378fbb8b5f7eb0d62846a5d032bff9c45179dd14a11d20da7214fde6227eccccd1bd3d9039ae8016d7b95a3102401f2a689eae98da6e5bbbc5970a81dca063f00c81b09d444c4341c9613d0f3dbfe0d5976151672591a4443a68f57e45a6350bfccb487e54e0edab369ec2f20087ae544ea93498c65afeaf9509667beb82df3516b3d44d414281f416174e503f7851abb156cb6739a501506af6998436c3b9c6f29924ce57eaaef8e9e8b1b102a667a5894e06fbdfc6f96de92f006b998e5c0971832582464c89c46e7487903d59985a76b1f9042039069216d0ff9488b83cf297c9d39952e0a728918b78710d40063bae8622eb5ee2df258deb0219ffc7cc2f378fbb8b5f7eb0d62846a5d032bff9c45179dd14a11d20da7214fde6227eccccd1bd3d9039ae8016d7b95a3102401f2a689eae98da6e5bbbc5970a81dca063f00c81b09d444c4341c9613d0f3dbfe0d5976151672591a4443a68f57e45a6350bfccb487e54e0edab369ec2f22dbe6d83ddfab2bb8ed281dd777263c51dec4d6493a42f57b175e1d9c275616918016098aa02665e1acfd881bf89573a1e3d6325e54235c9d8ace9a6067e91ef3fe631bb11f160007477a032a2a9938bfc7b64d56575786aa2fbc300c12e98b33a5a0028661186e5e1e6056e265ab1752e2eb5943d8b0dc69e69044675dd73f920f539e17e56e6d8e1a350a3f87cd64461769b51a41683968980c2e69927c7212f766d6f117e8c93692d9eff721781f012b206ed1eb5dfd67d9c9baad29155e036547ae9215cf7abbbf32ca66c4debd23d5eea335570606a2bade875366e10512d38a35e710e42a79c971a8773f83da7b692bc0de16795eb4fbb476d0490467b3dda0174e5c54720b5c7688d7381f972f648bf686bc300dfadf9ed525031842e00d841157829e66e10b0f037e3c451a1f6e65cb7ccb62a8cd3f8422331798a6518016098aa02665e1acfd881bf89573a1e3d6325e54235c9d8ace9a6067e91ef2dbe6d83ddfab2bb8ed281dd777263c51dec4d6493a42f57b175e1d9c27561693a5a0028661186e5e1e6056e265ab1752e2eb5943d8b0dc69e69044675dd73f93fe631bb11f160007477a032a2a9938bfc7b64d56575786aa2fbc300c12e98b31cbbc3c32ab1e6f98d545d26f50f9f309038ae684fda2c0e53bd1f1e33bff281097a3be20b33e220e5d9a6ff84b0baafdabb08adac472cf734fb1e51a64d7a3a1ae15fa1247a0b60519fe4da4c26b7519e780d32107850f363dc6158a48eb7593f6af63c1a7262b62030f05ee9a2901de610cecd134d624c71b008a6ad74abe20e485a992242e4fdb56fe2c2d381b086fa6f3f7db33f1bd4d5a3e80acb9c3f9914182e29f5fdba76c257da06388e2aa54e7c0a25335bd49252c2b844c0c3096c000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010aa06ee759f8326ec774fdf8967a20dab0ee6882cb76e0c22edb028745379ad43f29c94ab83557e30f8870a0a581a0332475e3763da5f125891e931aa82149353553e06891c04e5b44a33770b79afcf8a6aa3e29c7f0009d9e7674146a498e631159fe599a73e6e5da0e7f03e60031470fd00a3cd9a556d0ae10364399ab61f72da5a12359319adbb5137aa37cf2e28c61b611d7fb2ada2cfcddfa383a45ed880d32e92cc802fc846420e566b3819b6d702b8db610135000780c615493afa4853a0f25158c7e7c04321929508195e7d974155d02f3d82189ac01752ddff875b62a4522dea8b2dd4ce638646d644db5cd64a4e32527b6b324418cf1cc912a01dc2341f932decfbe580bc69c3bbef606745c9cb92336bbf39038a10351e4645853210959e3fbec99b0094fb206406951d629dd26a1adbc8f01ed993e923cee0baf32db7bdc7253812a3aa2f3f78e78f41d5e5017222f154aa015145974fda8bfc53cdf2a6a8206ac73ca7d1f07854dbf916891504264641c6b46ef38ecd9af73f03c1435b91807ae3086882469b4bfd6e79610dbd8d5f168ae370642ee97c6cc33099766846b4f373ac58dad84fc5c4dbe39e16e3bac5545b1b5b5e7512d8147ac2e6a9d95390c5fb46d4f1df3470ac8a655c0fdfe27b115ba88434f9473670d8e1bcb79051d637674a99f8107e21287dea4c4cbc7e674d006228818a9033ec20c0788a5b9485a83fbe25f0c808ad51c95d4aabd211e5979a39244c7bea34ee3b73e7dcf606c4a09db3550c3a2671ad13d804ae2b02f1f6791ced7bfd64f3c00ab3f5ce32610798686b21149a90294fe36acf6845db3e882688508e135f72bb03e00a31cd9ef8679794deeb656fd6b01c97550149e556476b314244fb708d44fc33cd06fbe525fa0a17a56704d0ce8f710d7b631e45e56a79c3477a259d3da7132032f9041ada05f5e85a98fb2f31708ef4a906717aaf6517f64b58e932c258ecf30122eb79bde232763b03181408cd353ad749585b27d619ea1a1680d234435f60fedd1486421dcd89c4fce7ebf732cac74d2037656cf977cf78bc8dfdcbbca0b305ae9960b56afc4f270f78642c020a1fc7320a8608bfcc65c9f757ab0550dcb0fa51669f4a9503b0d8f0879bd3fdf5e25d37853a8c0fc553c8dbb724faaf2363f5ce32610798686b21149a90294fe36acf6845db3e882688508e135f72bb03e00a31cd9ef8679794deeb656fd6b01c97550149e556476b314244fb708d44fc33cd06fbe525fa0a17a56704d0ce8f710d7b631e45e56a79c3477a259d3da7132032f9041ada05f5e85a98fb2f31708ef4a906717aaf6517f64b58e932c258ecf30122eb79bde232763b03181408cd353ad749585b27d619ea1a1680d234435f60fedd1486421dcd89c4fce7ebf732cac74d2037656cf977cf78bc8dfdcbbca0b305ae9960b56afc4f270f78642c020a1fc7320a8608bfcc65c9f757ab0550dcb0fa51669f4a9503b0d8f0879bd3fdf5e25d37853a8c0fc553c8dbb724faaf2362e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b33ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba3b674a1b1f59259eb7e969b60f76d978f3840665a081434844ed7e08ae52a349170b49fa45ed99ffcaf8036f11a7da96f3eb56355a6bc1b4d4b673c252a8f14e277cd2dbd77afb48c0d9cb258f76d85648d4b774d43e66c5212e3c568e0855d5373356dda86854f354b5a1fb1115a099561537dbd56755287f0d6f83bcf006980e3af2af2cf6e4a29194b7a334fa4e29af95938116f109c4f463a604d1863586377e8f803ecb5000f04bbb52af8da4428f21fcff4588aad7b5573f680cf3a65115828222a2835887dabc623c15047e2f730b844a92ab881614b9e919030e03111ec223c4fadeeb0f10194b845cc02f4f321a901221bb83066a2e5ba4aef824533ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba2e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b3170b49fa45ed99ffcaf8036f11a7da96f3eb56355a6bc1b4d4b673c252a8f14e3b674a1b1f59259eb7e969b60f76d978f3840665a081434844ed7e08ae52a34926ef865edd2b474226799459c190e7df6c9b27ef76928f9ff74b9b23723fe40e262ecd6bd93cc02b818ce8196c0e2c10d35892e0b37d3086b3f2641b69a2a6bf085bd8d345f1ba6f7fbfeeaaee4ab021a9b8554e0b92ed4a776fa5a15d12a2182819821065cdf51920ab7a64e13a4c29db4188432444b87ecdb3ac036dc06abf1186a3cf711bea2552241eda0237076c9f825768f8af07a55234612af4a08d5305d0915a1faace1421293e908cd8bbd3b003ea35cd08d271b33adea70349c3c000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001375c623f3a202cfd81911ca524cba2eba0a0d2366965087dd929791c352710140dba5d03e86c034983f02535bcdf742a3d8cc96978c41432636ed8c228a84a3e36b96aa23eeeb8d7e3e7ef78b79db2234e4576bc35fdbda72365b5784930b2b630c3ff3509cee52910172b60519a65435cb86a5e680ecd6506bcabf14a63bd5c0b6a62d270177d43c2fa84c5382b0649aaa9817e616fa5d98e1181bc7a57f88736eec725f77483ca4b8f58a0483085c0df2002b7fe6599d98af4fb6b290b927506293644d897295c6d439652559a02d490ae960081a1f5f1a499dcef40877b9302874fe9ebaa574a7996a4f2bb450a4172fa7fc3a8b1fa9c249a83bbc5b89bf00c6fa2311f87a81be471f6302ac5e29b3a7234f3e371c7f7af46a3e4412da71b10a16882eebb80de1d7fcb4d995a544e789edb34a54e8da91ed4b7e3881330d42eb8bce3fe75228f1452ccee5d926a4383f29ecbbf32cf6dd755b6fdaa68d3231923226cf7887309ed149d9744fed36e5e27f932923e547b17b5b13b6743f3d437e55216a8d0f2c1be868652d9266608df53f49bde77cd4ab472fd3d81caabf70dc64a26da85f2a98d8f4b9bd7f5be9cf09e5578a3cee11538492d02437d67e83d8cf46e8c52f74ebc2fed140ee9f781e17b126fdb23acf60ff5a6926b5517070f25b6265f45cb53280caaf11983c8602b12561e78d0efc16486cf5d3bc00d0b2555d6062e99b9e00f8b3a37bfdb426d9b7f1bf07fac300bd2f5f3ebc4eafa460d20534d8b63c6bb18182fcd8166d156cf23587f8acc1cc3b8891ef05efa78eb0bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb0bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb274d3dc3a846fc8924f1055fbf4f5ad5848b4b6ec07c76e6079ee428f532d63220e6a6375b0b5eaeeb6fc87a8cbfa390fbf15474932bbe08a8d6ecbb879cb51f385c9418e78f11f2f0e90f63a03c1180b7effa2343e1cdfaacc5d75e100257663f6f87ec151e92d4feb622c213b4f0192e6730ed845ce8696e4bea84732e1d4d26cf1d52079afdcd1ce080241e148c73601ff86a7b42ab9580e99e5cfacbc6fd05d7b01fc5928349864d3bbf35dc4ce4bb3f2133d7bd7e79f17d62f36cfa701a2008bf70c75a3a64c4723b888adafce692f77f601a006122816a6bf55160bfa511e36c37e953c77eed67e9a7f536741ff0e0ae19f19a231119b79c38c3313c941246ac812774e53f2e2998e14f8bbf7685d50cd9324383a9b5506da93e1dc1b43acb20f7f96884d38b60d863f37e7a46f9768491f166e41f4f1eea9d44082f9d20e6a6375b0b5eaeeb6fc87a8cbfa390fbf15474932bbe08a8d6ecbb879cb51f274d3dc3a846fc8924f1055fbf4f5ad5848b4b6ec07c76e6079ee428f532d6323f6f87ec151e92d4feb622c213b4f0192e6730ed845ce8696e4bea84732e1d4d385c9418e78f11f2f0e90f63a03c1180b7effa2343e1cdfaacc5d75e1002576600dd7eba496b4a22ddaf036016b0a2506c0ebdee7c68a338924d25d59ee664182376a0e146db80f9232878a8653f4c05a8d9537aff2e62c133d1d5a10bf467432ee4bd85dd221ca7d634f2a0597787fae54214fd8b34dfbcd54e261f00a41f001c080b92f513d781f6a43f0e3f911382f71c24d09ff2ec801afccdf9099f0a5438de073465b4d9cbbdd00019109c8549702622771ea08e8ffd24ac876a608886350b4b970e4331edb05b328eb7dc52828f13293845bacae491cf893d5d468e5b000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011a3607f1b09bf69a213b8f966c74db8d7275a4ecf135d64fd56ce4296eee050d33be3c557bdc01ccc10c798358e0cee3eb43c346de7f42657ff107b45e4bb65b2cead8a7e42c4286a6b22d6bf54f28033e556ee3f49b6e1e36c6ae52ed2f9a283ee087709e94a89522c2a8b258260c10ad288da81e454aedcf4cb419ab71de45214ad2cb6d28b3d126d71b63e0251ccc2a6a5fb4f961ef8199535b76ab08e99f3db4a9d8d6ee73871f340d6788dd10fb9a9874388be59eb482fb34e8ab373f8e028efef65d37994fd79d1e8c1320b1820e28b7c707f0a263c127a907a5c6506f2955b675a9be4fc5c46f106b616151bd2cf64e34fa910bea29f61991214448ec3c11963271eef0de132d1b2438183b4ced38fd68d999de6747a64783ff6ae3223ff9dc7f1688cb46357569836569c64037f7f9aa635a1e9a3c53b2242fef277e2fbe1c792bf180d2fb149f8a036b70debb3248d390cf091386c615b3a674d4aa1c58fef18f2dfcb2404e58215972a96eae84b219edb9c6cd4f0ff57e91d938fd07587f442b39337915ad88e44065262937b500d93948e861da46069e94e8f7893e531cf9581db1f23668490a70b6fe7c983d493b48fdc5fe127623a1305f1c5619e008d1fecf3ff3718fdb27cdd733074b7bf962400f331f3d89f0627ec4d14d16dbd01504330ee8328e63f94997524dda4fa79f3d9a3b05e64368df5fcb46ad27aee29ca74849954a142956ab11e4d7528f67c0181be1c3f695e66e9d067f9b274c6c95f030a55532a5dcca19d77da040dcf1a6cd1089c3b6e751c98dbd7ee4000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000224698fc094cf91b992d30ed00000000000000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000224698fc094cf91b992d30ecfffffffc000000000000000000000000000000000000000000000000000000000000001940000000000000000000000000000000224698fc094cf91b992d30ecffffffe8000000000000000000000000000000000000000000000000000000000000007d40000000000000000000000000000000224698fc094cf91b992d30ecffffff84000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000224698fc094cf91b992d30ed00000000000000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000224698fc094cf91b992d30ecfffffffc000000000000000000000000000000000000000000000000000000000000001940000000000000000000000000000000224698fc094cf91b992d30ecffffffe8000000000000000000000000000000000000000000000000000000000000007d40000000000000000000000000000000224698fc094cf91b992d30ecffffff840000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017b2dac71546dc2493713ac1ebd0fc3a180c7c29eaae5b0e85f3959b824bca32000000000000000000000000000000000000000000000000000000000000000030d5089697900f486566b25f937f0c13c19035483fae49286eebf770f651fd0d000000000000000000000000000000000000000000000000000000000000000034ce144c6c81c3a065162768a4dc8aa13b043653f4c1e5bd888034758056cb76000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011f6c5bf0052d0873a5ee9794164e1b09565f9848122f6b4dd6094219ecf3e6a5000000000000000000000000000000000000000000000000000000000000000037bc0fccaab13923f84568390f6aefa9196a6fe7b297f541e70051016fe153780000000000000000000000000000000000000000000000000000000000000000339d0d4d0e435170fa0d03cd8276be2a77f98662e0d14983f9f93f5df8d163300000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001059efa75a99d314ac7e112966c68bef66639555674fb743cda201d0006fddf94262d56b50f01332bf2091ff8ca8974beeeff26a7de49cd6845face6de868e49a02491972a0a46d36e51fef75356ccf64fa2455296f3e6c7ad2ebc9a569a6d0b90ee2d718dba3d2c0e9fb7496d83c29ca835758f1a68a7e328107eeefc2a638641bbbc4356548b3c004b57613e391ea038bbbd00c9802dbd5405a0f74475967613c3eb696d239418abd665e2024739c1360744c464563db9fd506fee08dd698ab026540da72d1d2fa2f1adabd99277622f2e1514eebacce0a7043282bfc0e37441461a66da9fe325f8f731378f355c8b87d9af15c4f0b1518822d426dfe4f107d29c02968955c98b4c06eef3aa08ea5cabe2452d6157b60515962be6da4a884261ef3c52013dec7dfa0a29f051baa17e1794e684a4900f2464b296f4e50b2c75127a429d3ba8483c97cb451d7ae587a4eda0ff3ace4c6198856baddfa9f90dad61e077269c8d261a1cf61801702c3aa56f5e256679d8094d796014c4525b739090000000000000000000000000000000000000000000000000000000000000000109454259592027c6cf5644a5d02ea129d9399ce489991c269f698a79313d940109454259592027c6cf5644a5d02ea129d9399ce489991c269f698a79313d94000000000000000000000000000000000000000000000000000000000000000003054c4fcf1c6656efbdf088592c1e3415b6c22c84fb1ee966e65bf8bd5bf46f20fab3b030e399a910420f77a6d3e1cbec6da7633b99b0a852ac771612a40b90f31a7d8f0b8dffb2aeb5b2a9bddc970466248e2f57292bd9d5c752af42cbc62b70e58270f472004d514a4d56422368fb9bffdb60696ba3b7e3cb805f8d3439d4a38473cb39c5fe7d698c7d50b54ef315f8498a3d720f6c8c002c243fddfaded9007b8c34c63a0182967382af4ab10cea09dadf524e856305b966aecef2052127119642f820ddf8730fbe72938a8abf6dd0de0cf437f9e0751a91690415e65a3cc269bd07df22078cf0418d6c7575409231465c9b889aef1c9f016a0aba19a5c353054c4fcf1c6656efbdf088592c1e3415b6c22c84fb1ee966e65bf8bd5bf46f20fab3b030e399a910420f77a6d3e1cbec6da7633b99b0a852ac771612a40b90f31a7d8f0b8dffb2aeb5b2a9bddc970466248e2f57292bd9d5c752af42cbc62b70e58270f472004d514a4d56422368fb9bffdb60696ba3b7e3cb805f8d3439d4a38473cb39c5fe7d698c7d50b54ef315f8498a3d720f6c8c002c243fddfaded9007b8c34c63a0182967382af4ab10cea09dadf524e856305b966aecef2052127119642f820ddf8730fbe72938a8abf6dd0de0cf437f9e0751a91690415e65a3cc269bd07df22078cf0418d6c7575409231465c9b889aef1c9f016a0aba19a5c35376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec2ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b203fc1dd0a13bd5456cb5eb5891a438e996ea04bfb6be14b9d3f424143cb7d10c619fecc3536a8d4db49740272e0dbbf7b6834c562baa120ecdc9ca4f1a53923323ab712d6e78f12ee1f63f27f00f3c866b4cd08f692caf384248962c84182437b1d703986363355d64a0649679518c8bc7268c2f8e13d6488239677eaaa724b201908910219cea4d4cccaab81c3e50f7e3bed59615b0ad1741989c3bfacbbcb43026459318558e89e2ca02c8526f78e9530cb28431b2bc59b9f73416825d64fd52c618c4060d5852334ba45d5d959d7fa53993dc2eee17490cbb3cb85469d2daf342727529f7cdbc925c362c74bf4910471302ff687aeb6098cf997a4549e2c102ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec19fecc3536a8d4db49740272e0dbbf7b6834c562baa120ecdc9ca4f1a53923323fc1dd0a13bd5456cb5eb5891a438e996ea04bfb6be14b9d3f424143cb7d10c6342c96fb7d297a81aa72fced5e97d398c5a81fab7b36c15f717dadc5c50731c12915bf92892c01df25b052ddde5dc4b5ac6de8a2053172dd354a88cf0b9c72673d0dcaedc81f75e06627d442fe899f9d6c2453b834231e42879f0dfc6a2c1f0b1668ca19b24662de161732a8242200b04d20ea45e288b3f303caab8e7214119a1d6dd7ddf41ed88321679b2b8ef7e0aafbd2a50a4b39e3c28d267895e072eb2c02be92f5663f28f6090d1f2a9282d4807c6903766e4cb8e138850d3c46cd3a3a0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000102643df89159eeacd6bb1ea506b3228cd2ea36c6eaee7945c86e9b5c687490ec047f6df3d0d56b7b572150799513def863e7670ab5eaf96aa24551f105268df404dc32215ca55ac6bb0ae6d57d1c8bcbae65093980d2a94d140a1c83ecd19ba31f816d8bc8094fcb0573c87e58d40bd50e2ab4afd2a36a16982027c5eba9c57202b2b10094a64576a7d372db4eb83604cecc0128c7299098b296f027a128d67a39b0d2852d6e64282066f42184f5d4580ac88e4ce0e9d4fd7e1317ee61ada79f292f10048177d1732282b6451b1387ae32d3e8319f2d99874524220d32eb0b0028a36547dad2283e6042ada370046cc07d9c118c0d8bb263165b70bbe1e4461c0e42e1e2cb5e20434079d1bb9eb064ceab7c6f2c06a4d6341ea501f5a947ae661c71f4a0919e243b74e5c6e4eb021f0648041ca186a6c195d369b9f2b37dd75500e02a10c108cd4200470971770eaebaea0c12f985171de101b4fc76c0c962f22184297946a4b3d88c8a5102e513f94fea9359ea0f9ce5351825e46dacf0ee11268c7c7abaeeb889a13b82264ac62ffe8077c0c892634a614b3a1afd68fcb7d31f1f1fc2c8682ce1aada4fc86655f4a74f7a894befe363fea1820f425c4b5c0c150ca73918296585b7127f19250128afc9443699352f29f862329c93572273df1252a4c87031bf450dbc4df745e9888b0eda78e73fc970db7ffe5b9b0e00176516063ef4039d3dde5ae2ca004bda31e93261c9b4c585966699aeeb1da5bd91cc10d8168c365d31a187a4cc1ebce743828f75030bfc987e2943f26eff86509c4d336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a0c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba0305e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df63a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b1d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce22724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a33336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a0c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba0305e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df63a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b1d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce22724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a330a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac629bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c3a1fd91331ac8e97af8356a18902d5d6cb9303a89611fe8d9d6f55ec0f200be1120d8f2f9cabf36cf829e0210d653a2833c4df016bdce7f4bb8826eb6390d72016baf5e7af78967b999941f98581a9d2f912731f0fbf834efeb125d9bcf3732012540e141ce2a315e825d6a10645a6f5c73a3120ecfc19f4474424dd222169b5381534886392ddb64e77febf8bdf5c4998f8cc6075d0825191be8fc4cdd391172821af27180482573f3ecee0774ea94b46f631ff5dc52bd5e10128d777516f412ce3106d2a4a3626079a2edbee62aa99c3122521fdb7f49f32ce4008627d45dc2fa1a25a8bf6d439b9708221ea96b0fa996bc633864855bcb0f6ac53241ac67729bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c0a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac6120d8f2f9cabf36cf829e0210d653a2833c4df016bdce7f4bb8826eb6390d7203a1fd91331ac8e97af8356a18902d5d6cb9303a89611fe8d9d6f55ec0f200be1118c5ee80f099e8df8b52cb1f015b009941088d4f688bb58fb9bb569998b37d8147441836362e8118976426673d67273cb3cf157e2cc4d5bccd96b59e710cb00287c73f5fd950aa93f04237026d37d0948266965fbe3dc006391b57ed538f732384824ce748cf5a7d156a59e0d985d577dfd40238b9a57749245502337e3e0bf01f6cf45ffbdd7644013efdb0149f0d13d05d378ccecef68279ac2af2d55934b1c722d17982370e0f6daa91bf2096015c3df93f6e05393f28aee44939517961e00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001072c5b805a273c453eb6ac32ce90892bbde748ff4d2c9ccc80a9f438b77976762691588600d6cd9790d8ce492a02b92e45f5fcf1bd7c738551eb4dadb1ee211400eec28673637baa2ad837ee56b0eabc416ab0ce96d3bff2fdb57a9ff20d1dd00284dd9c592a15f98e67560ea7358d722ea18f4bcc5d891145bb69bcd68fd23739f3ee737bff0ba7233b544262d02c3942d4d9ec6459e3d7f81e13118fa1ec731b1f706b62e812a37b3309696a70c2794529ecefbea33c8b1b9a0a5b62f1873e1f995bdaf1da5b1c9da459fe0e9568a8b946f78a0ef76cd6df4e43e631ac75462f9a1d8dd21de953a15e5947a708f4a52246c07b22586e0fcebe7f4882cc036a305b225aa447010a399917100475e37f170b2ae8879183f1571ac2111a47d32a038fea98ea12d9434e2f29d0f89994403000952296db69c072e46933215b13522e0ac4338ee633dec7b678ba61ab735a54ee4c0ece327c7d56579df308e959c92a39a4af6433adac6e6119a8cefe9375ba808ce745e9306a0918c661d0f27767055115b3d3d604e221d944cc6370be0747639af5b33e9060b094afe5ed518109005a8689af80e0892a3c8d224dab669e66481622c5bb24e3a2fa496cd7f692d53cb38645b96e16b9a92e76600443478585a041ac8ced2c83ad365d73f8618571288e92fe825a5896e7b00171d66c2cf7a1cbac0ba98ab430c4badc5169161c21062b6fa37e95086467b2f244e1f82c15cb6f012de29bb0caf621312a6120f34e0d6bc7e5e38df29064e930b982c5e49aa0799d8b89438a87b9005df43b77b7b32d30c4b65ccaff430a6ae8691b1502ed1df45381b89288e2a79f83e093ee643012cf3b49a33500bcf5951796e4eafd130452457a50ba7038f18dad0c6c119bd121f3d78fcff6fc4f34168a0d87690ea12ef1d6947ef5c11a7a96009be3a7f4ed1e0c2870300903b0cbe975f27896f15ef354c2678a5738011e9730511c580b1429c335cf0fd2ed8c0470b243a50d4925a62bfeee6832d34d3293a1317247c89f163cca30f02d1273fb8f4dbc5af2b6da7c1a9a0da11a25ce66998fbb8db8376210d00d0b4f1ea3bc16337b5239426dbbd8082fb3ed17352f315a93303b66eb182f2ff2f4b0e15c43e9cc84adc6bd92444a3e69481c35c3ec67d29dbcc49914e92d30c4b65ccaff430a6ae8691b1502ed1df45381b89288e2a79f83e093ee643012cf3b49a33500bcf5951796e4eafd130452457a50ba7038f18dad0c6c119bd121f3d78fcff6fc4f34168a0d87690ea12ef1d6947ef5c11a7a96009be3a7f4ed1e0c2870300903b0cbe975f27896f15ef354c2678a5738011e9730511c580b1429c335cf0fd2ed8c0470b243a50d4925a62bfeee6832d34d3293a1317247c89f163cca30f02d1273fb8f4dbc5af2b6da7c1a9a0da11a25ce66998fbb8db8376210d00d0b4f1ea3bc16337b5239426dbbd8082fb3ed17352f315a93303b66eb182f2ff2f4b0e15c43e9cc84adc6bd92444a3e69481c35c3ec67d29dbcc49914e92e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd630724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f61a92f6a61fce846b25c83d8fbcb76aa39feca1dc39a5ea305ae3ae246a618d0506dddf9bcd0c2033836249932bf3ce970b3c1b1026f23e8e76c0903e838283320d47011dbe4842ddcb46cee3bc93051b079e966d0795ed8d9d2fa460859d414b2b16e365af7fc992613da0dec2a1839798b59c2aed4b96e971effaaac769d88205589d48f89167bb6c18866b1da1c7c27466fcf376113b606329f23c6159ff953152ba4d55ab2eb545784ef20617e46681897e3b59f43b5b177180c733204c12246b4f47d57192ad67d0bf45df12877608e52a8f4b2b46bdbd6ebbfa702c00f120eb2ef40d5b986647d1e67e7a20042a73559b7436910ee4b68cd54f94d7ee3130724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f62e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd606dddf9bcd0c2033836249932bf3ce970b3c1b1026f23e8e76c0903e838283321a92f6a61fce846b25c83d8fbcb76aa39feca1dc39a5ea305ae3ae246a618d052ae728f41d9fd3554292c1264e709d4258193b7462002fab2b6671237435e6dd3864e85f235fbbfe4f3b08e55fd21a9741d0ed960b8dc5fcf48f485455c0622116e40249f314f61afa9d96c70b5aed7b325e63499f0946d2cf8dc52925d7fc17260d0c31274aebd1f186ebb85b0fbb0d0b7f8e264edf0fe9e34e678117299def23149d9b4fa18ab2234a33313bf8ee993930e0b4e1352178596a605687d8f96410a108ab5f7d3c07cbfafb48d0b5c55281f6a8f288e5505c5e114badd4b9c6500000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000122227b9bdd780d1638fafcb673fed85998f8321b6f14df17ef8a1ea8862c9a722c4aa1b038fffd3dcb2ab5bc45ff15f8daf4e36b28fabcc31940173c236b64d83d37622ce6a0677168793528d24f7039c01a162c30ae4f015339c8b7ce2ba7810ed579df21b36f3148cab4920493f1991404260c10561e8116e9a2a9711dfc5f00eec41b726869e3e8c4b9747279bb0ebe79c48a037256f4423a072d152a34643d3831fbf85b8e19a50fc5c383be8d1030038453a475b544ed0df9825507c2073d4a0d94f910cf786ae6fad9d6950bd1108537475894dfc2f36d84e52e08267f02c56a1b180193ff9c3163d46f5936dd768fec284814bac72cd9b76828bcfd670c5eb24861dcf57691bbcda3446d231b38a25d2a50a5d5e6028892a69a44c64f2ec4caba591c56193107e18023851b87bc6c24eeb791404d8793a11a267021330f2cc891636b2b7c8727519b6cce51b8302f2d1d372e8f66891477788f371cfd3cad8a8810035d76491de2fa5e6b21ec4b03ad6edf3a8790232a147cb4e40bfb3643ee2e2f79fa8abd2947416a36c0b3871cbd4794c3e128a9a0cbeb8cc353290f67ae0f53dceae08eec8aad46e563f248d58ccced82cd37431b5e543884c0b623fd70aa40f6892522633908c633b6030bdca880016597f0c42fac5e14b3ab7531050434e392c51826beb5805f421acb329edfbeeabe4a374f08eccb47242648397ce144ef8d5be01bc9793ea2d504ac0fb0124b1eb298500eee4b3c792263df0a3cbfcbc735f28cb3b46cf711febffd55a862f8c1a227e042710aabcad685ad1fbd5292bb47a273d1930e25e7444ff7f0afb3f24a21d1339e0ce76ef5b340562042ad6d44b85d8c2e6cf1da18bbb0083196e509bf2b27e7fb20497e0a4cbfab1eb29cdda8662c4317df46bd84558fd76ee151c3600f23cae3e62350cc8041ac214d63225799d3bce820b9427baa7028b3654738a93dd550b5470d9c337fbe55197d105449fedd4f775c61b395abcf34e5d966d8cdb1c0bf41244eb9fe81485a2682efabb60122b088a39e4c6a5430cb3c6d32233b9b385c5808e233017eb7a73f7151a571fa528d54cde881ec5b0c085af8693ffb2bcaa0ac8858b4f88669c1008eae5a8e05ad72ab32177e13a4f3f7c74e2fbc0e212e7aeca4d838077996401fbd5292bb47a273d1930e25e7444ff7f0afb3f24a21d1339e0ce76ef5b340562042ad6d44b85d8c2e6cf1da18bbb0083196e509bf2b27e7fb20497e0a4cbfab1eb29cdda8662c4317df46bd84558fd76ee151c3600f23cae3e62350cc8041ac214d63225799d3bce820b9427baa7028b3654738a93dd550b5470d9c337fbe55197d105449fedd4f775c61b395abcf34e5d966d8cdb1c0bf41244eb9fe81485a2682efabb60122b088a39e4c6a5430cb3c6d32233b9b385c5808e233017eb7a73f7151a571fa528d54cde881ec5b0c085af8693ffb2bcaa0ac8858b4f88669c1008eae5a8e05ad72ab32177e13a4f3f7c74e2fbc0e212e7aeca4d8380779964000d80c97a5ca3f42024809990a5e4078724776135e9285751f43bb068f1f5ed12ffd27410ccdcfe329ef02841829f506167fb6b8093ab9645e6cf50c6372453904c8ea7e466c7b478140af5cdcc76c1e6a2d7253d50d4ebebc1b8e6228b7452f0a61e1a906fb75935288448600b05e632f51f9dccc726b835f60f277e4b716c93c948846199166c7700540ea78bb3dcbd43c6109d9cdecf3bc4f98f9ee929e530691ad88730b2a26077516458e989e9039eee9a77c9b4d17698bf5265741a36e12f72fb01ef2160a3a302ee37b8f18c35b1165916ee10001388141713e87e8a13fc325961a9778f31dee05adfec6f1eabaecccb7deb1a019cdb3280a6bc7193411ca2033d0425810f5c6874cf1815ec30639a0b7d0c664e46884ef40c0f149aa1ceaa9ace403133719e326fe68eb67bc9717abc6e66be2f2bace6fbc08d4b3bd2ffd27410ccdcfe329ef02841829f506167fb6b8093ab9645e6cf50c6372453900d80c97a5ca3f42024809990a5e4078724776135e9285751f43bb068f1f5ed10a61e1a906fb75935288448600b05e632f51f9dccc726b835f60f277e4b716c904c8ea7e466c7b478140af5cdcc76c1e6a2d7253d50d4ebebc1b8e6228b7452f0b80ee2375bd1f4cc9af27c6b7bc1ad0779f02d4a4c8398399442f64b749184720708fa268cc3b83d8cfcdc58a91d93839f96e6372b38ab7030755a4ca579151060666a57eedbbb34e79c6e2b670cdee0b7792576b293afc2b25621bd0efae4b32305f69a561267bf9b1ddeb0f1ef5f8089359c2da994effe0342a71f2ffdb743c5225c849f1b191b64c2df0d70224a22c2694e6d91ede4c1d157f1d2b04ad532948fc89df567ecc74d87772a983e79eb4e61705f3789f08919338e230502e35000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013d02c8e47937454338542a7985a7f882e194d05bda48b649ff954928c0e7329437a054a7a1dc77d30c96c48caab951f7d199df460f7f37fc41f37d40f36d87ce07226cdfe83eaafacddc29cb421c538b1e5675fe90e878cd57ce300234fd8b120d00e39bcaa8f96e0e5c7a3969d19f77179693164fa575e2a62367cf47c867063344c97607152462508457fcece0bea9aafa5fa4767526a21df35deeb872e07f21a4c28917a1ae74bb79cc0ee84f1aeae8972feaa237734fa2756213900b7cd208619c29d8eafd9e64a8b1cd657b7c24a7b8485e5490565cc1463e6ed9e39aa520b37b72b086873b030d902af0315847c5e084c4e26f3f547f43d9c090010a302d70db737048cb4e905d9cd6c54df1e28be5de4c4bb2d4c9cb407374bf5a89cb31ebffc9c6328c9c856e63e6bb633b8bf4be8b91da9e6f69d77941494bd2417b0dc5503dbe6e6f75b2825ddf5c1251a9ae1a844c9a0b6e61f3363c5e5fb1ed410dece4beed7fc705eda8e2c2c056b0f30bac229e808f66a56a8c118f1bb5a24e28995eed630e3684b389fe57f06799107300945a607105bafdc4353e7ed2cc9f1d123d502048aee6988bd396c0b48b955cf1b5ba21d5a8a4eef7f5014675474019a3b2b5e0f979ab84340c49072c07f32f170ecd868e1526bb13ce1963bab96f0822409533ac128c4edf102e1c4615f1fb2abc9f6a62094a6644bccfae26779e19361ae6ab6ac67cb352a6d9fdaa11de3ea49185febc8605cad7912c24eb134429016f24dfd002a796370e23b64ec4b1e29782586a78d1232572728338c55a04000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae0591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f62000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae0591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f622dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd60077e5fb96e4c541295b118291d98c7c81fb25e82959ce50f0f6e2140dc9b6cf24814e4fc4db6a41252ae13b604cfd91c0e9402633f45edd20bf70694bb1ebd411a5d0d13ef2f7fc6bd8b0affa92f4cbba751a6012855cfd63068e53b1e7ea321ec7b10604b385cb2749eb87d33d0e9beb216c2e4fc1d6d54f8797f55c1538f83267f9262df888432d1ecc40f27a38cf9db65ae4da4bafc18877223a13a945531ed9c17cdb69ace7a3d401aaa2df7e5a9b14849af98f7611c4bdd3533d1ad60a3e70a184511f6011b0be0e0136a08a5a034d05b4b30d2967b136e746b880657c3ce554ec5c7e4eeea68fddfd0fd855dc8e1253cf4bfc7aa51318ff0adcfd61dd2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd62dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a24814e4fc4db6a41252ae13b604cfd91c0e9402633f45edd20bf70694bb1ebd40077e5fb96e4c541295b118291d98c7c81fb25e82959ce50f0f6e2140dc9b6cf15c5b97e9c8eecce1664fc3d76610ff2cfcdfbf119d0e88e8b8ba21b10fce3f437c73866f3de54d1573a852ac7d8973b09376e92d5746f8b39e7e8b39428a5b718ef4abe7e5304886052e2051ad306821f537f7bd04fb30512cae350ba6cc6dc0abf282cc046c682e4b9d780d031027b9841844676d3eae5eb5d39245258d5c9306daa5ef60afc60ecf3f28aa368f5ceeb1e87a3dd0b629fd57021d85a9211cb3143ae19d0765f8251ec9caa175eff551accda880f5e36360e24433000b6e90700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001248f4e3367bfe80f66b6d262599a4d12230166ac4d7eae65352e86c20ac48f4b0e67867b245d9150d09cdaffac183b9ef0c7f42451f3e9e217eb6ec72af21c031b8235b1a37a457a455cfc398d7998ae5ca0009088603447f6f18e317194d6902a6f5f497b5d6fe8faf81383a7419ee815a531da38edca7d2ff417ddad78934d36b9c145d8222e25c8e5461b05f5bbd20c66fddf46913a66e18fdaa62d109d052e7cb1465bbda547125bf468c1e912cf798434f03c2fddd4046a82603923115716161ca582134fa61030d568e3c49e3c8968c8cf6acd8172391717817f5f82cb09ead7496b1043ece7441745aa35ee44d075a405d577d223df2535911233948917c583a34f02107a1d1bcf887e1b7d2a1a220c53f15a44d700121fb578688cb42bec045c26efacf09675a4f279d1876192d8a6ecad3fe109f8db1bc5c4039e993d24ecc00c9d4934b84bc448d3f535c1194e6c5ea08f4c1abb8220c95687fa0e16e0415e4ce7701c4ffa85a0569e4eb7184f141ab43aafea63aa03f80b8e44be28fc2a883695da6c910927bc31062e30305023dea17a870da94cbd93bc816c6a1caf71b54cc10afebb0caa328015f6759fa22635e0cc2752436f6cac08c6a77523f0ee907659754ac17a2c1cc1c1e2c476035e71c9c841cbf7c5f0918b66426324e42939c12b45fc12b364cae2422d51ce52df86b26759c33df2cb318d0d34763f92fdbc5a0001e6241ca7088c395c34ba9938eb196dfcc50135060e6b859ddb2d18359828e53c67b967d69ad2a7270dec9daae567d8e9ca879251fcab7268af0c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba03012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b05e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df622724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a331d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce0c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba03012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b05e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df622724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a331d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce29bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c0a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac6120d8f2f9cabf36cf829e0210d653a2833c4df016bdce7f4bb8826eb6390d7203a1fd91331ac8e97af8356a18902d5d6cb9303a89611fe8d9d6f55ec0f200be112540e141ce2a315e825d6a10645a6f5c73a3120ecfc19f4474424dd222169b516baf5e7af78967b999941f98581a9d2f912731f0fbf834efeb125d9bcf373202821af27180482573f3ecee0774ea94b46f631ff5dc52bd5e10128d777516f41381534886392ddb64e77febf8bdf5c4998f8cc6075d0825191be8fc4cdd391172fa1a25a8bf6d439b9708221ea96b0fa996bc633864855bcb0f6ac53241ac6772ce3106d2a4a3626079a2edbee62aa99c3122521fdb7f49f32ce4008627d45dc0a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac629bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c3a1fd91331ac8e97af8356a18902d5d6cb9303a89611fe8d9d6f55ec0f200be1120d8f2f9cabf36cf829e0210d653a2833c4df016bdce7f4bb8826eb6390d720147441836362e8118976426673d67273cb3cf157e2cc4d5bccd96b59e710cb00118c5ee80f099e8df8b52cb1f015b009941088d4f688bb58fb9bb569998b37d8384824ce748cf5a7d156a59e0d985d577dfd40238b9a57749245502337e3e0bf287c73f5fd950aa93f04237026d37d0948266965fbe3dc006391b57ed538f7321c722d17982370e0f6daa91bf2096015c3df93f6e05393f28aee44939517961e01f6cf45ffbdd7644013efdb0149f0d13d05d378ccecef68279ac2af2d55934b000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012691588600d6cd9790d8ce492a02b92e45f5fcf1bd7c738551eb4dadb1ee2114072c5b805a273c453eb6ac32ce90892bbde748ff4d2c9ccc80a9f438b77976760284dd9c592a15f98e67560ea7358d722ea18f4bcc5d891145bb69bcd68fd23700eec28673637baa2ad837ee56b0eabc416ab0ce96d3bff2fdb57a9ff20d1dd01b1f706b62e812a37b3309696a70c2794529ecefbea33c8b1b9a0a5b62f1873e39f3ee737bff0ba7233b544262d02c3942d4d9ec6459e3d7f81e13118fa1ec732f9a1d8dd21de953a15e5947a708f4a52246c07b22586e0fcebe7f4882cc036a1f995bdaf1da5b1c9da459fe0e9568a8b946f78a0ef76cd6df4e43e631ac7546038fea98ea12d9434e2f29d0f89994403000952296db69c072e46933215b1352305b225aa447010a399917100475e37f170b2ae8879183f1571ac2111a47d32a2a39a4af6433adac6e6119a8cefe9375ba808ce745e9306a0918c661d0f277672e0ac4338ee633dec7b678ba61ab735a54ee4c0ece327c7d56579df308e959c9005a8689af80e0892a3c8d224dab669e66481622c5bb24e3a2fa496cd7f692d5055115b3d3d604e221d944cc6370be0747639af5b33e9060b094afe5ed518109288e92fe825a5896e7b00171d66c2cf7a1cbac0ba98ab430c4badc5169161c213cb38645b96e16b9a92e76600443478585a041ac8ced2c83ad365d73f86185710d6bc7e5e38df29064e930b982c5e49aa0799d8b89438a87b9005df43b77b7b3062b6fa37e95086467b2f244e1f82c15cb6f012de29bb0caf621312a6120f34e34016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe00bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f861250210407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c3bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a51423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d33524b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200634016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe00bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f861250210407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c3bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a51423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d33524b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200620e6a6375b0b5eaeeb6fc87a8cbfa390fbf15474932bbe08a8d6ecbb879cb51f274d3dc3a846fc8924f1055fbf4f5ad5848b4b6ec07c76e6079ee428f532d6323f6f87ec151e92d4feb622c213b4f0192e6730ed845ce8696e4bea84732e1d4d385c9418e78f11f2f0e90f63a03c1180b7effa2343e1cdfaacc5d75e1002576605d7b01fc5928349864d3bbf35dc4ce4bb3f2133d7bd7e79f17d62f36cfa701a26cf1d52079afdcd1ce080241e148c73601ff86a7b42ab9580e99e5cfacbc6fd11e36c37e953c77eed67e9a7f536741ff0e0ae19f19a231119b79c38c3313c942008bf70c75a3a64c4723b888adafce692f77f601a006122816a6bf55160bfa53acb20f7f96884d38b60d863f37e7a46f9768491f166e41f4f1eea9d44082f9d1246ac812774e53f2e2998e14f8bbf7685d50cd9324383a9b5506da93e1dc1b4274d3dc3a846fc8924f1055fbf4f5ad5848b4b6ec07c76e6079ee428f532d63220e6a6375b0b5eaeeb6fc87a8cbfa390fbf15474932bbe08a8d6ecbb879cb51f385c9418e78f11f2f0e90f63a03c1180b7effa2343e1cdfaacc5d75e100257663f6f87ec151e92d4feb622c213b4f0192e6730ed845ce8696e4bea84732e1d4d2376a0e146db80f9232878a8653f4c05a8d9537aff2e62c133d1d5a10bf4674300dd7eba496b4a22ddaf036016b0a2506c0ebdee7c68a338924d25d59ee664181c080b92f513d781f6a43f0e3f911382f71c24d09ff2ec801afccdf9099f0a542ee4bd85dd221ca7d634f2a0597787fae54214fd8b34dfbcd54e261f00a41f00350b4b970e4331edb05b328eb7dc52828f13293845bacae491cf893d5d468e5b38de073465b4d9cbbdd00019109c8549702622771ea08e8ffd24ac876a6088860000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000133be3c557bdc01ccc10c798358e0cee3eb43c346de7f42657ff107b45e4bb65b1a3607f1b09bf69a213b8f966c74db8d7275a4ecf135d64fd56ce4296eee050d3ee087709e94a89522c2a8b258260c10ad288da81e454aedcf4cb419ab71de452cead8a7e42c4286a6b22d6bf54f28033e556ee3f49b6e1e36c6ae52ed2f9a283db4a9d8d6ee73871f340d6788dd10fb9a9874388be59eb482fb34e8ab373f8e214ad2cb6d28b3d126d71b63e0251ccc2a6a5fb4f961ef8199535b76ab08e99f2955b675a9be4fc5c46f106b616151bd2cf64e34fa910bea29f61991214448ec028efef65d37994fd79d1e8c1320b1820e28b7c707f0a263c127a907a5c6506f3ff9dc7f1688cb46357569836569c64037f7f9aa635a1e9a3c53b2242fef277e3c11963271eef0de132d1b2438183b4ced38fd68d999de6747a64783ff6ae3221c58fef18f2dfcb2404e58215972a96eae84b219edb9c6cd4f0ff57e91d938fd2fbe1c792bf180d2fb149f8a036b70debb3248d390cf091386c615b3a674d4aa3e531cf9581db1f23668490a70b6fe7c983d493b48fdc5fe127623a1305f1c5607587f442b39337915ad88e44065262937b500d93948e861da46069e94e8f78916dbd01504330ee8328e63f94997524dda4fa79f3d9a3b05e64368df5fcb46ad19e008d1fecf3ff3718fdb27cdd733074b7bf962400f331f3d89f0627ec4d14d274c6c95f030a55532a5dcca19d77da040dcf1a6cd1089c3b6e751c98dbd7ee427aee29ca74849954a142956ab11e4d7528f67c0181be1c3f695e66e9d067f9b1043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a1043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa126c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b3bede82a1ef51d40115086dd2213afb9fe7882b2741bc04a7341075fab56bcb4343eb86b56bb3939dafa46ac624a5b45ea704c4b192f810bfa86c6325ba37a5411f31c380ff535de8c3cc50b225ef2fb6f74153ba4138cd81b848638fac22bd607a5352d3ff4c5af156fed5e55643942b0c32539c53f8d6cc7a48b6635d188190f1925d317b1131f80adba414fff7c1eae07c6574506cc034faeb217ca92d76321dbb95697d91b43b21b5ac71e64c582d902f4b6fe5dd9b30f47ea4c84d6c643367157fe70f52f851fed1dd05a3a4edf961b25e32d10aadec036377d3f206b47325f31e9a5ea5e301aa79b28971ee713d984919abbdb476b771d182c8d4fc72826c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa1343eb86b56bb3939dafa46ac624a5b45ea704c4b192f810bfa86c6325ba37a543bede82a1ef51d40115086dd2213afb9fe7882b2741bc04a7341075fab56bcb43538a1c63f60600e793ff6c90dae89ea3ab04e2f1357ccab5f3cc2c890c10a912dee0e171182e6076cc31e9987dc98ffeff03154cc147fc8e475a0d9047635933bad79ba6d247f4fe4f6588f49387aee9f51302808f1d95ce1b6502836fde4c73df97463687513929904461eb445c15eb2ed5b51c157b05943e00fb30c74bde237643d1660c690962952d8058b291b26bc2ed20a98272ab18900295ee44913c220db018f05da8169beb6c59c0f0747e12ea3f9d415201f8cb59d542e61113b8a00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001038900937b55369774acf6534fa3d9a2f862e38fd3162b1a797b7d433479f5e206505432eaf39bc3502d8933d2d9b10b4b1cd71a7061b2cccdea39d079eeaf253a5b5111db1ee26a1707b41775c1c57bd83f6f018723c7be21916174c2f775332edde91a5f8b8b2e1d9e90d7739a65fcbf5bfc2a84e2f2b3672bb42689e2fc5b3c1ecbb364c7829b21cdfb04e59fec413a1d2d66d7d0420878f401a353b31bfb19fe4c71565d1102053eb9f9a9b1b13f56df7b724a3cfc9f73c136050c3e149722e2e19d02d2b28c1e9cc80d179aa7a56b45bef30580921150e6bbfae24d3ee300ae83026de4f92ce5bbc9f3dbf83693d07b886888a928f6e22331bd4812940632e288b3b274a88988e16c650123bbafb86dda584ecb69195b5bbf95178b65ff014f79a24d097c6684d58c307c1033292c7ea2471bae6dc55fd2ebbae1ba61dc2e15b7a6fb85ee6c0418b39bb600fa8533121740e355e4c2447154dd9bc8f5430d1e8962ea1d3320e3ad37aea77607e690677306cd0cb132e91935b27ab3d73e1dc8413c9d667842938d896fecd6f285e5b0b4bd39a47dc3c4c7cfe1e16934dd27e35b00e5f06d28b888487ec445321fea41955748a2309c27f45a5de3dedf021dc71d681d73837aa0016f3eef74d0864387a0996b12bc48370faf93e4495b68160e7ff2e73f44a2a4c69ce305d456e7d0f0b7c5f5a583e0939555b936365d2b1e20d20c2549dbd9a31238aa847f88a185f5ffcac3192619fdb1cfaccb39e821396265359bc7c9cd8fc9f8a75db1bb5a7a738669a2d08746d90a77e059f77f03000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000224698fc094cf91b992d30ed00000000000000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000224698fc094cf91b992d30ecfffffffc000000000000000000000000000000000000000000000000000000000000001940000000000000000000000000000000224698fc094cf91b992d30ecffffffe8000000000000000000000000000000000000000000000000000000000000007d40000000000000000000000000000000224698fc094cf91b992d30ecffffff84000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000224698fc094cf91b992d30ed00000000000000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000224698fc094cf91b992d30ecfffffffc000000000000000000000000000000000000000000000000000000000000001940000000000000000000000000000000224698fc094cf91b992d30ecffffffe8000000000000000000000000000000000000000000000000000000000000007d40000000000000000000000000000000224698fc094cf91b992d30ecffffff840000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017b2dac71546dc2493713ac1ebd0fc3a180c7c29eaae5b0e85f3959b824bca32000000000000000000000000000000000000000000000000000000000000000030d5089697900f486566b25f937f0c13c19035483fae49286eebf770f651fd0d000000000000000000000000000000000000000000000000000000000000000034ce144c6c81c3a065162768a4dc8aa13b043653f4c1e5bd888034758056cb76000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011f6c5bf0052d0873a5ee9794164e1b09565f9848122f6b4dd6094219ecf3e6a5000000000000000000000000000000000000000000000000000000000000000037bc0fccaab13923f84568390f6aefa9196a6fe7b297f541e70051016fe153780000000000000000000000000000000000000000000000000000000000000000339d0d4d0e435170fa0d03cd8276be2a77f98662e0d14983f9f93f5df8d163300000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001059efa75a99d314ac7e112966c68bef66639555674fb743cda201d0006fddf94262d56b50f01332bf2091ff8ca8974beeeff26a7de49cd6845face6de868e49a02491972a0a46d36e51fef75356ccf64fa2455296f3e6c7ad2ebc9a569a6d0b90ee2d718dba3d2c0e9fb7496d83c29ca835758f1a68a7e328107eeefc2a638641bbbc4356548b3c004b57613e391ea038bbbd00c9802dbd5405a0f74475967613c3eb696d239418abd665e2024739c1360744c464563db9fd506fee08dd698ab026540da72d1d2fa2f1adabd99277622f2e1514eebacce0a7043282bfc0e37441461a66da9fe325f8f731378f355c8b87d9af15c4f0b1518822d426dfe4f107d29c02968955c98b4c06eef3aa08ea5cabe2452d6157b60515962be6da4a884261ef3c52013dec7dfa0a29f051baa17e1794e684a4900f2464b296f4e50b2c75127a429d3ba8483c97cb451d7ae587a4eda0ff3ace4c6198856baddfa9f90dad61e077269c8d261a1cf61801702c3aa56f5e256679d8094d796014c4525b739090000000000000000000000000000000000000000000000000000000000000000109454259592027c6cf5644a5d02ea129d9399ce489991c269f698a79313d940109454259592027c6cf5644a5d02ea129d9399ce489991c269f698a79313d9400000000000000000000000000000000000000000000000000000000000000000166befb5171f47394b6710b5cbf1e0a257d568300d169b1ede64dfad66ceb1702994104ae8e0b8c6b498ef4a340e1f5dca7130cbfc365dfcbac8513f99314e91301bae89739c641e7903538cfbb9632b94e46ff438240e7ebecb2d760209772f0fe451768c639be186fcac7304469cd48d622907d128ea9cda620376fdf688d2308a68af420df4985d10a1c0ea9eefd981a264d0fccd5d26ee7050870a2f53e80f759750bdf20b67a2ef5e3f15611026a0a4342b0c7f9bf4aabce065f5d0ac1932b40b6c4a45c6f9d15328c4951aaf3f21582d20d41be66fdca9ffdc32eca3850d4bf493b5ba39062eacd73b6ae550c100ee6bdb353112abbc833110cd135c7c166befb5171f47394b6710b5cbf1e0a257d568300d169b1ede64dfad66ceb1702994104ae8e0b8c6b498ef4a340e1f5dca7130cbfc365dfcbac8513f99314e91301bae89739c641e7903538cfbb9632b94e46ff438240e7ebecb2d760209772f0fe451768c639be186fcac7304469cd48d622907d128ea9cda620376fdf688d2308a68af420df4985d10a1c0ea9eefd981a264d0fccd5d26ee7050870a2f53e80f759750bdf20b67a2ef5e3f15611026a0a4342b0c7f9bf4aabce065f5d0ac1932b40b6c4a45c6f9d15328c4951aaf3f21582d20d41be66fdca9ffdc32eca3850d4bf493b5ba39062eacd73b6ae550c100ee6bdb353112abbc833110cd135c7c0ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b22e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d570944c8b525cef9aeb6196bfeccb204f8c0abd5e804a7bd874b22c345a083974903dae1cefa8b3e8651b5641fb8f11cb8a8245710ca4daeeb318975e771a9c62700bc77aca9e7d8c088a46bb0d9352ccafb655af885121e63593dfac07b085ddf2cfa0c976ae6ff0848edde9901d28c0cd51308db7b21e9a8dfe07d759bd8457a155688d981b77c5547844ba72261d22ec5abcdd07d725ce2033964d5927e021f1cdd669fc5d79a448ffcd0efe3977a2eb750b395fba24cce8643b5f22f878eec10b56b9db92952b7facf8cc9fa4b002ccca752fc869e8b81623d6e13f80d981b3f129d2ae85a2df8d274826217c3812ab5def954d619e1d6fd251490400a998a22e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d570ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b03dae1cefa8b3e8651b5641fb8f11cb8a8245710ca4daeeb318975e771a9c6270944c8b525cef9aeb6196bfeccb204f8c0abd5e804a7bd874b22c345a0839749389355a77324a20e98a97cf4334d6cc63ef1125f05f2a92027e77632ac752e0429c0e79552f4bd7f5c27e602447a6eb089434e9863cc800a19d71828ceb06a4308e4eaf8d45865d08c3e5a339a76afcd3eee7b847a39282181123160cf3940c63613f858722a9322bf067b46254399fa1a2641c93ad924642fa03b4414f618413c8af2f15dc61b1a8a5cf3558c2f94279b9c82c34d9aea4efdf7fae0c5156ff02d0eeb76db4e5e4b69a018064e9e2fd0f8e1202b3adb5b1e3d1316f63603eb21000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012575936d191ba8bf36e9dd481b8fa2598f52cb457eb1133a841bde2965afb79813e724a5a11a4708151d907146931621a309e4dcd972b35a2ed46dcda145c65f2ec4358cffe8a19ecef5b8839c65d8459e54980e9dc99561d4183c5eae76f9041be9564bebf2fe310e746c1c51a90505734e14ce9053136249a1506d518209a02ef35421c2912cf3e071a5343e46f614c7b889cc93508c7b53acbed6d48e5f79127d9318c88ccd8da528bb6dab16ae73fba914293def1d512aad1284eab37f8b315dbe7e63d4b47ed5b6ed5fa6d110b85ce099bf2ce745984bb59394bfd17c2424fc4b0a9a7b9c1eb15f758dc93fe5e6f563fd277f9f94af7e48870f8b61575932ab80cfe0349877ff8a37704225c1451bcb2b2456e7e4406081731ce7ecfa530c24d48abb9adef5f311edfb09cf041140be417a21ba9d9cf3be36c8f3d0ceac1f970aedc5f86cd926938ba3af3c265e5010b9ac70a862c234ac1f5970f8f3d329d14fead2daa35a993adc1970e9bf748abb0d75fcbceafec473450cdfed324f182cdf870a13d21b705480f690b07805141109de326eb89c7f560b939c4bb7ab2d7ebcb67943134fdbc150f8206baca0bbe140364fd7f5c36d661eac28fc5c341d6508de366806ad1bbcdabcf2c3cd44fc2ac7a2f1e12ee5ea1584d1a7ba5e73032222cf45f7cbac5f585fead897490d48b102636ba8c1a78f7313f86a368dc327cfb9e9289768449a9e9070f6a32a8f0abbae7f41a2beaf3e0d2c3635cc658d2b6e5fcf2a824bbd44bf5d0562d1e4ff943c3514ed83f539c40acbe3492005f81961932c86c70d27431b51514f0a4e8ee6d185fb5db2d86e2d066bab217aefa8269e6cd37938f2d8bce4aeaeb0f5b1713b751300ab9a20ad6c26c541de8510593ee7dfdea1e341c44f8896968b3388ca5fd104eccb31410b47f2e96aa766ae47011820215e1cbe3bb077696974cc7735c275940f3e1bb810513a4782589951ba3a875f59297048d58daaf0f0b801abf355fab4afd2c260ca0309cb614501675f0578a0a6d68fb72a72550f0f47fe540ccc4be44c368a98519623658bbafe98a224a4dcbdcf316c2bc456b4b398085bc024cb237ef897ff83aa7c3532590704d71b5b234230ce93d43ba94b4c67f7a43ffd7b757d10b4f997eeb0fbbaa6f8fb2a1961932c86c70d27431b51514f0a4e8ee6d185fb5db2d86e2d066bab217aefa8269e6cd37938f2d8bce4aeaeb0f5b1713b751300ab9a20ad6c26c541de8510593ee7dfdea1e341c44f8896968b3388ca5fd104eccb31410b47f2e96aa766ae47011820215e1cbe3bb077696974cc7735c275940f3e1bb810513a4782589951ba3a875f59297048d58daaf0f0b801abf355fab4afd2c260ca0309cb614501675f0578a0a6d68fb72a72550f0f47fe540ccc4be44c368a98519623658bbafe98a224a4dcbdcf316c2bc456b4b398085bc024cb237ef897ff83aa7c3532590704d71b5b234230ce93d43ba94b4c67f7a43ffd7b757d10b4f997eeb0fbbaa6f8fb2a1ec72c0c20573b5141e5d40e17d7293f3bb25cd5f92b26d68aa789660ac49eba06b8d7221f316ccd211c30eca2885f3786348b037a8ee4b5e05159fa94c46c3c3d59014f69be98d543ecc610bbc474da4a8b39c44545a65c5ee2e50b2743e32d1d26fb8256b8bf0c591134f489dc02af381b105a599a404e687e996e393311e00accbe583b545fb38b27e761a7954d532e03c9bce1ae519dda251eecbd253c22291a7d9d51e1873f509830d40d37ca4fdd4b58d7404f92373e7458343a41febd20b53e70ef69b0d459c6fde443784ffee9edf0284899dc3ba99de7928f2bd0ce0164e290842bb8f13598c1ebff13e016e2ced9b45f33e3e7e8ac453282cf33dc0a381a4ae5917494d115c8d2e6d64899a6eed9e19a70676c9f93661f5ca474001e0616e81070f4b1445258ffcb484ce0d2cc65a9955cb49856c1b9a1d7f08c7306b8d7221f316ccd211c30eca2885f3786348b037a8ee4b5e05159fa94c46c3c1ec72c0c20573b5141e5d40e17d7293f3bb25cd5f92b26d68aa789660ac49eba1d26fb8256b8bf0c591134f489dc02af381b105a599a404e687e996e393311e03d59014f69be98d543ecc610bbc474da4a8b39c44545a65c5ee2e50b2743e32d0668809afb958aa7a20547d2362394491c5d17c8f9a513b534a14957932f915f24b83f17d0daa8f54d81c5f4d0134bee8e195a18c2447a982a1bae3a2eadad5325c28cc99671e24b386981c8f466943c3bd301dce25feeb670f18c8841e1889719c154c2b53ed63fcb6a05d6837d2f35734736ab3aa44d58917b9d8951209e702fd41b6af8965c8645df53226f2325e30988df966d968bc3b2b630bb97bee3151eceb8c400290a1853d775cc4750464c85de67a6eeb400f5071c6a7d88223b12000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010fc9c891dbe4f45aead3ad51cff16ee961d53c08b877a756338740ffacf05e0736f97c0068a31a98a2a88c1bba8704f9049290d832681b78d76203216dc42d661f30bae981f21acbf9d25643f67ae2699cc5d8e9f96c12becbbf90fe42a22126398ff36cb5b0754121bf50d4a9462fc2ff19a6d26c39771f736da5275fb4deae25a0d5aed4ef7b756972bf1521691186eff51e70e92c3db08fe6545a24ee887b3d1f7a387f040172e40f96015700c7c311d4a28a4ffb8831719f46a218dbcc9c11d5857d2ca2e8bb4fbeabe3a4313e3e680875822c634991b5ee9c2eba3e820a0b7069ac37b67ed706f2dcc026034248faf0e3a132e462a99d0e3aa2b3adf9211444faa949f38516104d7a7a38b1bccb833bc6fb3bbf267fa08d63a6e3b704601c22fe03f98955841f072b07c43853b81a3b5df35506e04a1315234ef1cec4d225689d49f43578818d565b5cb9e1a39ec9ffeeedb7a0048ba4fbb94b5297867e35a2b2f1791a6ab631193b7b1fdf54c131f72090eaf5ce3f27a0945977fca5c52fcd130aed6809a34e3125d42ec8e240e6919302f89d9ef1ee79872efa72ca1615de893295eedbc7fde4ac1a82534264e960b71189a90f6dfe42a310cad549c92ea729bdee80b6323e4fca1750d7888883b2c3538839218662b9663cf9a9799a212f938efde73b3343bc728ffb9a067752b157426300ec17b6bb8c9513b692cd23bbe4f95cca26aca10a469af325c1066413c65d5113753f7135d9674a3090310582d1237429bd25eab99fda90507ae3c5c8dab2080af461d7350511e5d2a8982668f72cd19bb61bafadc0b19db3eb2763baec2ffdc90835dbcf92ed0874b005199708d32e6449e450523f4e624c14d8be8baccc0b83f0e5bd5d9dfff78b4ffc000cd3e0180a8e8a6e64c378148397c48bd2d1fbd9063dba7f864bda2a4770163ff32c1fe7f57175919b3c87eb7c683b9673c7003046bb6119a6e512d5b88feb004023607834c8b427f7d1586691f6d6bb1e19eb3d1f34a47d9f7b42d365306e3fbfdc9f87cb374bd8082ea7996e092967287f10cc2dc4771b8db5aa2c9acf930140b0e25907eb84c7d716ba00d9d231a7968198319c0736741d684e20f9f2263ebf4f1da6f8147b3828e945ff262dce7ab01763d7b0f1e5250fc89edf060ddb2668f72cd19bb61bafadc0b19db3eb2763baec2ffdc90835dbcf92ed0874b005199708d32e6449e450523f4e624c14d8be8baccc0b83f0e5bd5d9dfff78b4ffc000cd3e0180a8e8a6e64c378148397c48bd2d1fbd9063dba7f864bda2a4770163ff32c1fe7f57175919b3c87eb7c683b9673c7003046bb6119a6e512d5b88feb004023607834c8b427f7d1586691f6d6bb1e19eb3d1f34a47d9f7b42d365306e3fbfdc9f87cb374bd8082ea7996e092967287f10cc2dc4771b8db5aa2c9acf930140b0e25907eb84c7d716ba00d9d231a7968198319c0736741d684e20f9f2263ebf4f1da6f8147b3828e945ff262dce7ab01763d7b0f1e5250fc89edf060ddb1b9d5a2a50c6d8a61acdf312b101a31352f3356636139aeb9593bce4d5ce2092004c37cf170d22355a2c252313a00e318136f39a3ea0096dd1ef1c2bb8c26fb50863a36e24df6d452894992fef8f1ada5cd3f4fd71b94ec9be736558cd08b9251bb2ca98734c97df62714e9a4bcf33e0f1487afe22e005f87336f283a466b69626de51a9c0432e9233d5ff0fa6e978d74b8ceb505468ff47033c4158ba81122917962546033d745af260236f1a774b09990764d0a4fb480ee1cbb633aa2b21903a8d76eae43c4286f65024d603d163417b3276691236fe2a24e81b45a9fc881720e7dfe8ca6ea1a9068afa49b96617ab01a4767f9e599ee02e1b58b37d0544fa15507b2c58da3393af15ddfc2caa057e02f2d2665faa3857b6a72f998b26c97413f3da867c025697630dbdc9d2e68df1265cbd1e156dc23cd676c654b5ab7b62004c37cf170d22355a2c252313a00e318136f39a3ea0096dd1ef1c2bb8c26fb51b9d5a2a50c6d8a61acdf312b101a31352f3356636139aeb9593bce4d5ce20921bb2ca98734c97df62714e9a4bcf33e0f1487afe22e005f87336f283a466b6960863a36e24df6d452894992fef8f1ada5cd3f4fd71b94ec9be736558cd08b925355c3888647814e076c45b1c7bca960e87dfb29bd0dc193d3dac7ea9c82a9cec39d951dc9a17fc40c2fb6eccef63f80e7ca3737b5d3802efe8b4293cea8aca1c384df99b74ee45c6251e75b0d7e2239dfcdcc6fdd9d8b2ab30fc1dd6cd78e13913f3e8cd05c9d12a85bd95dd54082ecd1fdf946fc3dc1699747b8aab8569203f1c905ba60c5b4c94761639faa7b068b1356290f40a6647ffc15e81f55e4d50e70f7972ae5f7697a0be244bf1c91014111b8313f639a792e9f193fdd3210397ae0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000104ab24b463ea905f2fa42afd64819cdee45f8b322ecb017fcce74b902f20cc2a164a3044e618a17e040be73eefcc1064ef01434e7d2b4f62ee5c84bbc5a3fa9a2b1ed1e48653a23b853ad37d1e6368afd030629967e3aa168bdf12a0f8985e8924efbf2f33d90812a0b6434ff4d12c28f248806fcff4f2be0920168c7163cfbf3d66957211153dff18b114af5af96152dedf4e66ba820d44dcc435178fe45f183283a93519926e0e1994a53fc3bb9882d3fe6549ae79f7ddf5b8017126509c8a055f49805e7909b91f6118befcee32ab4a028a9a84487ff780e3afc54c89482e20e974fbff04f27d2c46b1f66470ca29202f9f7639f23d1aead4b90035cf656b06ea750221bd4035bee2f82d37db18bc757f963f60e703749f2a05a45dc824962666b0f14f11d1406d0ec0cf0742a96f8c872abe2f8ab58b09f1bb40fe33513c2ad1d9d9e2d2fb99e85727c32578a163c5be629bbd46109faf4e00a97039801426e2d4c44ca155fbdd3d9b68f368ae2a41dbb7765520f436958a39be6fc9f3ee042d2bcb3ca88d72290cc0343d124f64922d103dbe2b3d9791862ba63015b38c017e707246ae57f9230911ba7409d5411b7ea0dabace77acc208cdac953260521c2221e19bf446cf507ff89ad63144825423cfb8aeb0cae0c436c2dc87ef5b133767ca69085437372a5496b595dfb1cb02a395b50f69ec646c444638b4c4d8201c5b8e6e773b4ff66280858872d8c7a001a53502623138bd39b6d359bd192a60134c249b402315301d037f5b5b2e10a31751d859895699631925ecc575a823c11a0c5110f2938a65d9acb749701ff358e6230b2fb183e128dd9a1498049990cb25f3aeef0d6c759a265348b68fe00ca73c238dcc57c917f2bb931c54fb666f36023d9554bce1b3fd405f946f309fc0bc3a2205f664f9739521a8051e16ffd3f53dc26aab431e4c02bfa06b90cf603f43e8249305a453858677852bcee9002c0c0b33eaa7b06883f241dde62bf31ec3ad22aa1dcff8df41e9a848199672ff23c934cc15584f977c0dbe2219d40ce13c52ff9c7b2c106db731f0e517568d00dc3838039546720a93bb49557edbbf99d261ad52950fdc5c499049687ff03efbb2ed07fc6ab98df56c44b6aa812440662d9e74f403ec2cf0af8b4fc4b0fcc1044d141a0c5110f2938a65d9acb749701ff358e6230b2fb183e128dd9a1498049990cb25f3aeef0d6c759a265348b68fe00ca73c238dcc57c917f2bb931c54fb666f36023d9554bce1b3fd405f946f309fc0bc3a2205f664f9739521a8051e16ffd3f53dc26aab431e4c02bfa06b90cf603f43e8249305a453858677852bcee9002c0c0b33eaa7b06883f241dde62bf31ec3ad22aa1dcff8df41e9a848199672ff23c934cc15584f977c0dbe2219d40ce13c52ff9c7b2c106db731f0e517568d00dc3838039546720a93bb49557edbbf99d261ad52950fdc5c499049687ff03efbb2ed07fc6ab98df56c44b6aa812440662d9e74f403ec2cf0af8b4fc4b0fcc1044d143756d5b8b269cb43b4e1645cd9b858f5a91fbb368bec1f0b8c14c58ce7233b7207b0d5bcc9ec3b3519e1c387b96fd2b5b394f2a19894a21b9af910b00e9f70833526d0060d64cb861f697b05c8a62b93414cc52aeaaf1c69ec16033739a9cd410bd1848476452e0111d35d15a431a8c1a68bbef5036a14a61f368865d09386cd3ad934a73d6210f3436198cf706d0c529ee8f3e0af7bb288788b039c224e8bd4213c85ab00768dc03b8f4c70efd1f64f9ee55853e2313e040b0adf708dd8022a0ca5c55c106ee3fbdd2947651b71433936ca4922df2937c257ca88db8b83b0b60723c709a6272b17b289627929ef7705cafebe9305db3177e0f44f0e73ee97ae1fa649dab640faf090d17447ddf9d23a254196504d398554ab3b4d964b97d48c083b6eb52d06f7d451ea47f7ebb58020527da3464c685f3143ca07c73734352607b0d5bcc9ec3b3519e1c387b96fd2b5b394f2a19894a21b9af910b00e9f70833756d5b8b269cb43b4e1645cd9b858f5a91fbb368bec1f0b8c14c58ce7233b720bd1848476452e0111d35d15a431a8c1a68bbef5036a14a61f368865d09386cd3526d0060d64cb861f697b05c8a62b93414cc52aeaaf1c69ec16033739a9cd410f69994eaf6c5973aac4084a24d3e173a6ee550c3ebfc2c745a3b7882697876c159f112b59f228a9640e270323da5a1918d1a18446c546c83da7abb4ea3ff4b1174e78ae4567d31bf1f5578b9dd5b68577e35b28e5d4122f56605c9f1bc5a3d30ec73f79bba864248816bb2078526480cc66295fd10e1453bf8d4f77b2ec232e2886b903ce8357ee205ae50fb04751656b4705946bb83f61d3df0417dc41907d3964aa6454fa1522cbd2619a25e4cdf4f3e1572c885f1fc06f7899ebc28545f2000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010c45fd780cc95a186f522bf84d5070e169ffb185855570c26d419dcd3fb9e11b312ca7dba08fb184f03549b3f243d804d1e80ed3cf035ffac711c3adcc1c1f811f88dec9755ba648718467cc6c27bd8105d74f4a6660287bdab8e27358e642f41591106f5f248adbd700a446a4bc65fc899d88e9d89543263aa8ad385bbf26fc0854c3ad044f71f37370c662bb14eb0d29a7efe6006a7d0efacacfa44430672e1bade85c468713b4ec049c4399e2b43f023f6db762243ba536d396aa4ce6506c158282813e4eb2213261e38bde19a0f1bd42579e5d718fbeb436f1c82e3cdf9d3e0ddf4929ef0129fcb875216ff95a6d06c0af674d6c88cd11b411171b1696581113773d6aac02e345fb32de856db413e2adaee61974f28eaee2af8b13d235f81b8a481b13c14f9fa77e12c2c8dd9b1b5e3c50d97e432a8383e2b58b6b9c628313807906eb663ceee078fb9140b72e827f83a6ee27a6b190574557afaa41f8691089ed3afd1bf77ce5ceead9b14ef8700ba9be9f00003c5c0c66e99d7db75e1a1ea0099c3ea76d59d536ce6983c34da7be9f0c22ea4206042fcc0ed91d731cd4270b92a144af781176df03852d58d6fe11533df19804a85bbcf01b66a7d4f70b194d24625f15abdf7c51804f191f6cd6ff9bea811450160f6a9d861a1410b4352595b84cf0f248898b6df9bfb17ac69b973f0f9a624842b970aaa9a8a1cec656292626f3adac0161c25797f370c353c85334d181616051d26ac4879b5010feb836ed216f846ae1eeb4d07f5c00eda703c20a6572ad606dec9cdbf86ffd198f2d25f3aeef0d6c759a265348b68fe00ca73c238dcc57c917f2bb931c54fb666f361a0c5110f2938a65d9acb749701ff358e6230b2fb183e128dd9a1498049990cb3dc26aab431e4c02bfa06b90cf603f43e8249305a453858677852bcee9002c0c023d9554bce1b3fd405f946f309fc0bc3a2205f664f9739521a8051e16ffd3f534cc15584f977c0dbe2219d40ce13c52ff9c7b2c106db731f0e517568d00dc380b33eaa7b06883f241dde62bf31ec3ad22aa1dcff8df41e9a848199672ff23c907fc6ab98df56c44b6aa812440662d9e74f403ec2cf0af8b4fc4b0fcc1044d1438039546720a93bb49557edbbf99d261ad52950fdc5c499049687ff03efbb2ed25f3aeef0d6c759a265348b68fe00ca73c238dcc57c917f2bb931c54fb666f361a0c5110f2938a65d9acb749701ff358e6230b2fb183e128dd9a1498049990cb3dc26aab431e4c02bfa06b90cf603f43e8249305a453858677852bcee9002c0c023d9554bce1b3fd405f946f309fc0bc3a2205f664f9739521a8051e16ffd3f534cc15584f977c0dbe2219d40ce13c52ff9c7b2c106db731f0e517568d00dc380b33eaa7b06883f241dde62bf31ec3ad22aa1dcff8df41e9a848199672ff23c907fc6ab98df56c44b6aa812440662d9e74f403ec2cf0af8b4fc4b0fcc1044d1438039546720a93bb49557edbbf99d261ad52950fdc5c499049687ff03efbb2ed07b0d5bcc9ec3b3519e1c387b96fd2b5b394f2a19894a21b9af910b00e9f70833756d5b8b269cb43b4e1645cd9b858f5a91fbb368bec1f0b8c14c58ce7233b720bd1848476452e0111d35d15a431a8c1a68bbef5036a14a61f368865d09386cd3526d0060d64cb861f697b05c8a62b93414cc52aeaaf1c69ec16033739a9cd41213c85ab00768dc03b8f4c70efd1f64f9ee55853e2313e040b0adf708dd8022a3ad934a73d6210f3436198cf706d0c529ee8f3e0af7bb288788b039c224e8bd40723c709a6272b17b289627929ef7705cafebe9305db3177e0f44f0e73ee97ae0ca5c55c106ee3fbdd2947651b71433936ca4922df2937c257ca88db8b83b0b6083b6eb52d06f7d451ea47f7ebb58020527da3464c685f3143ca07c7373435261fa649dab640faf090d17447ddf9d23a254196504d398554ab3b4d964b97d48c3756d5b8b269cb43b4e1645cd9b858f5a91fbb368bec1f0b8c14c58ce7233b7207b0d5bcc9ec3b3519e1c387b96fd2b5b394f2a19894a21b9af910b00e9f70833526d0060d64cb861f697b05c8a62b93414cc52aeaaf1c69ec16033739a9cd410bd1848476452e0111d35d15a431a8c1a68bbef5036a14a61f368865d09386cd159f112b59f228a9640e270323da5a1918d1a18446c546c83da7abb4ea3ff4b10f69994eaf6c5973aac4084a24d3e173a6ee550c3ebfc2c745a3b7882697876c0ec73f79bba864248816bb2078526480cc66295fd10e1453bf8d4f77b2ec232e174e78ae4567d31bf1f5578b9dd5b68577e35b28e5d4122f56605c9f1bc5a3d33964aa6454fa1522cbd2619a25e4cdf4f3e1572c885f1fc06f7899ebc28545f22886b903ce8357ee205ae50fb04751656b4705946bb83f61d3df0417dc41907d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001312ca7dba08fb184f03549b3f243d804d1e80ed3cf035ffac711c3adcc1c1f810c45fd780cc95a186f522bf84d5070e169ffb185855570c26d419dcd3fb9e11b1591106f5f248adbd700a446a4bc65fc899d88e9d89543263aa8ad385bbf26fc1f88dec9755ba648718467cc6c27bd8105d74f4a6660287bdab8e27358e642f41bade85c468713b4ec049c4399e2b43f023f6db762243ba536d396aa4ce6506c0854c3ad044f71f37370c662bb14eb0d29a7efe6006a7d0efacacfa44430672e3e0ddf4929ef0129fcb875216ff95a6d06c0af674d6c88cd11b411171b169658158282813e4eb2213261e38bde19a0f1bd42579e5d718fbeb436f1c82e3cdf9d1b8a481b13c14f9fa77e12c2c8dd9b1b5e3c50d97e432a8383e2b58b6b9c62831113773d6aac02e345fb32de856db413e2adaee61974f28eaee2af8b13d235f81089ed3afd1bf77ce5ceead9b14ef8700ba9be9f00003c5c0c66e99d7db75e1a13807906eb663ceee078fb9140b72e827f83a6ee27a6b190574557afaa41f869270b92a144af781176df03852d58d6fe11533df19804a85bbcf01b66a7d4f70b1ea0099c3ea76d59d536ce6983c34da7be9f0c22ea4206042fcc0ed91d731cd42595b84cf0f248898b6df9bfb17ac69b973f0f9a624842b970aaa9a8a1cec656194d24625f15abdf7c51804f191f6cd6ff9bea811450160f6a9d861a1410b43536ed216f846ae1eeb4d07f5c00eda703c20a6572ad606dec9cdbf86ffd198f2d292626f3adac0161c25797f370c353c85334d181616051d26ac4879b5010feb83ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f620591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f620591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd62dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a24814e4fc4db6a41252ae13b604cfd91c0e9402633f45edd20bf70694bb1ebd40077e5fb96e4c541295b118291d98c7c81fb25e82959ce50f0f6e2140dc9b6cf1ec7b10604b385cb2749eb87d33d0e9beb216c2e4fc1d6d54f8797f55c1538f811a5d0d13ef2f7fc6bd8b0affa92f4cbba751a6012855cfd63068e53b1e7ea321ed9c17cdb69ace7a3d401aaa2df7e5a9b14849af98f7611c4bdd3533d1ad60a3267f9262df888432d1ecc40f27a38cf9db65ae4da4bafc18877223a13a945533ce554ec5c7e4eeea68fddfd0fd855dc8e1253cf4bfc7aa51318ff0adcfd61dd3e70a184511f6011b0be0e0136a08a5a034d05b4b30d2967b136e746b880657c2dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd60077e5fb96e4c541295b118291d98c7c81fb25e82959ce50f0f6e2140dc9b6cf24814e4fc4db6a41252ae13b604cfd91c0e9402633f45edd20bf70694bb1ebd437c73866f3de54d1573a852ac7d8973b09376e92d5746f8b39e7e8b39428a5b715c5b97e9c8eecce1664fc3d76610ff2cfcdfbf119d0e88e8b8ba21b10fce3f40abf282cc046c682e4b9d780d031027b9841844676d3eae5eb5d39245258d5c918ef4abe7e5304886052e2051ad306821f537f7bd04fb30512cae350ba6cc6dc3143ae19d0765f8251ec9caa175eff551accda880f5e36360e24433000b6e907306daa5ef60afc60ecf3f28aa368f5ceeb1e87a3dd0b629fd57021d85a9211cb000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010e67867b245d9150d09cdaffac183b9ef0c7f42451f3e9e217eb6ec72af21c03248f4e3367bfe80f66b6d262599a4d12230166ac4d7eae65352e86c20ac48f4b2a6f5f497b5d6fe8faf81383a7419ee815a531da38edca7d2ff417ddad78934d1b8235b1a37a457a455cfc398d7998ae5ca0009088603447f6f18e317194d6902e7cb1465bbda547125bf468c1e912cf798434f03c2fddd4046a82603923115736b9c145d8222e25c8e5461b05f5bbd20c66fddf46913a66e18fdaa62d109d0509ead7496b1043ece7441745aa35ee44d075a405d577d223df2535911233948916161ca582134fa61030d568e3c49e3c8968c8cf6acd8172391717817f5f82cb2bec045c26efacf09675a4f279d1876192d8a6ecad3fe109f8db1bc5c4039e9917c583a34f02107a1d1bcf887e1b7d2a1a220c53f15a44d700121fb578688cb416e0415e4ce7701c4ffa85a0569e4eb7184f141ab43aafea63aa03f80b8e44be3d24ecc00c9d4934b84bc448d3f535c1194e6c5ea08f4c1abb8220c95687fa0e1caf71b54cc10afebb0caa328015f6759fa22635e0cc2752436f6cac08c6a77528fc2a883695da6c910927bc31062e30305023dea17a870da94cbd93bc816c6a24e42939c12b45fc12b364cae2422d51ce52df86b26759c33df2cb318d0d347623f0ee907659754ac17a2c1cc1c1e2c476035e71c9c841cbf7c5f0918b6642632d18359828e53c67b967d69ad2a7270dec9daae567d8e9ca879251fcab7268af3f92fdbc5a0001e6241ca7088c395c34ba9938eb196dfcc50135060e6b859ddb40000000000000000000000000000000224698fc094cf91b992d30ed00000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000224698fc094cf91b992d30ecfffffffc000000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000224698fc094cf91b992d30ecffffffe8000000000000000000000000000000000000000000000000000000000000001940000000000000000000000000000000224698fc094cf91b992d30ecffffff84000000000000000000000000000000000000000000000000000000000000007d40000000000000000000000000000000224698fc094cf91b992d30ed00000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000224698fc094cf91b992d30ecfffffffc000000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000224698fc094cf91b992d30ecffffffe8000000000000000000000000000000000000000000000000000000000000001940000000000000000000000000000000224698fc094cf91b992d30ecffffff84000000000000000000000000000000000000000000000000000000000000007d000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017b2dac71546dc2493713ac1ebd0fc3a180c7c29eaae5b0e85f3959b824bca32000000000000000000000000000000000000000000000000000000000000000030d5089697900f486566b25f937f0c13c19035483fae49286eebf770f651fd0d000000000000000000000000000000000000000000000000000000000000000034ce144c6c81c3a065162768a4dc8aa13b043653f4c1e5bd888034758056cb76000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f6c5bf0052d0873a5ee9794164e1b09565f9848122f6b4dd6094219ecf3e6a5000000000000000000000000000000000000000000000000000000000000000137bc0fccaab13923f84568390f6aefa9196a6fe7b297f541e70051016fe153780000000000000000000000000000000000000000000000000000000000000000339d0d4d0e435170fa0d03cd8276be2a77f98662e0d14983f9f93f5df8d1633000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001262d56b50f01332bf2091ff8ca8974beeeff26a7de49cd6845face6de868e49a059efa75a99d314ac7e112966c68bef66639555674fb743cda201d0006fddf940ee2d718dba3d2c0e9fb7496d83c29ca835758f1a68a7e328107eeefc2a6386402491972a0a46d36e51fef75356ccf64fa2455296f3e6c7ad2ebc9a569a6d0b93c3eb696d239418abd665e2024739c1360744c464563db9fd506fee08dd698ab1bbbc4356548b3c004b57613e391ea038bbbd00c9802dbd5405a0f74475967611461a66da9fe325f8f731378f355c8b87d9af15c4f0b1518822d426dfe4f107d026540da72d1d2fa2f1adabd99277622f2e1514eebacce0a7043282bfc0e37441ef3c52013dec7dfa0a29f051baa17e1794e684a4900f2464b296f4e50b2c75129c02968955c98b4c06eef3aa08ea5cabe2452d6157b60515962be6da4a884261e077269c8d261a1cf61801702c3aa56f5e256679d8094d796014c4525b7390927a429d3ba8483c97cb451d7ae587a4eda0ff3ace4c6198856baddfa9f90dad6109454259592027c6cf5644a5d02ea129d9399ce489991c269f698a79313d94000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000109454259592027c6cf5644a5d02ea129d9399ce489991c269f698a79313d94034016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe00bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f861250210407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c3bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a51423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d33524b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200634016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe00bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f861250210407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c3bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a51423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d33524b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200620e6a6375b0b5eaeeb6fc87a8cbfa390fbf15474932bbe08a8d6ecbb879cb51f274d3dc3a846fc8924f1055fbf4f5ad5848b4b6ec07c76e6079ee428f532d6323f6f87ec151e92d4feb622c213b4f0192e6730ed845ce8696e4bea84732e1d4d385c9418e78f11f2f0e90f63a03c1180b7effa2343e1cdfaacc5d75e1002576605d7b01fc5928349864d3bbf35dc4ce4bb3f2133d7bd7e79f17d62f36cfa701a26cf1d52079afdcd1ce080241e148c73601ff86a7b42ab9580e99e5cfacbc6fd11e36c37e953c77eed67e9a7f536741ff0e0ae19f19a231119b79c38c3313c942008bf70c75a3a64c4723b888adafce692f77f601a006122816a6bf55160bfa53acb20f7f96884d38b60d863f37e7a46f9768491f166e41f4f1eea9d44082f9d1246ac812774e53f2e2998e14f8bbf7685d50cd9324383a9b5506da93e1dc1b4274d3dc3a846fc8924f1055fbf4f5ad5848b4b6ec07c76e6079ee428f532d63220e6a6375b0b5eaeeb6fc87a8cbfa390fbf15474932bbe08a8d6ecbb879cb51f385c9418e78f11f2f0e90f63a03c1180b7effa2343e1cdfaacc5d75e100257663f6f87ec151e92d4feb622c213b4f0192e6730ed845ce8696e4bea84732e1d4d2376a0e146db80f9232878a8653f4c05a8d9537aff2e62c133d1d5a10bf4674300dd7eba496b4a22ddaf036016b0a2506c0ebdee7c68a338924d25d59ee664181c080b92f513d781f6a43f0e3f911382f71c24d09ff2ec801afccdf9099f0a542ee4bd85dd221ca7d634f2a0597787fae54214fd8b34dfbcd54e261f00a41f00350b4b970e4331edb05b328eb7dc52828f13293845bacae491cf893d5d468e5b38de073465b4d9cbbdd00019109c8549702622771ea08e8ffd24ac876a6088860000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000133be3c557bdc01ccc10c798358e0cee3eb43c346de7f42657ff107b45e4bb65b1a3607f1b09bf69a213b8f966c74db8d7275a4ecf135d64fd56ce4296eee050d3ee087709e94a89522c2a8b258260c10ad288da81e454aedcf4cb419ab71de452cead8a7e42c4286a6b22d6bf54f28033e556ee3f49b6e1e36c6ae52ed2f9a283db4a9d8d6ee73871f340d6788dd10fb9a9874388be59eb482fb34e8ab373f8e214ad2cb6d28b3d126d71b63e0251ccc2a6a5fb4f961ef8199535b76ab08e99f2955b675a9be4fc5c46f106b616151bd2cf64e34fa910bea29f61991214448ec028efef65d37994fd79d1e8c1320b1820e28b7c707f0a263c127a907a5c6506f3ff9dc7f1688cb46357569836569c64037f7f9aa635a1e9a3c53b2242fef277e3c11963271eef0de132d1b2438183b4ced38fd68d999de6747a64783ff6ae3221c58fef18f2dfcb2404e58215972a96eae84b219edb9c6cd4f0ff57e91d938fd2fbe1c792bf180d2fb149f8a036b70debb3248d390cf091386c615b3a674d4aa3e531cf9581db1f23668490a70b6fe7c983d493b48fdc5fe127623a1305f1c5607587f442b39337915ad88e44065262937b500d93948e861da46069e94e8f78916dbd01504330ee8328e63f94997524dda4fa79f3d9a3b05e64368df5fcb46ad19e008d1fecf3ff3718fdb27cdd733074b7bf962400f331f3d89f0627ec4d14d274c6c95f030a55532a5dcca19d77da040dcf1a6cd1089c3b6e751c98dbd7ee427aee29ca74849954a142956ab11e4d7528f67c0181be1c3f695e66e9d067f9b0a3c6892c6708b8cc90155c7c0c8ec5cc902a5371b9647667e34fc70bac3ed0c35c3976d398f747336feaa383f3713a35943f3c4edb6b1b51af8347c453c12f5332e0adde032b9bfed06ace6c3ec9dcfed0d3a1389ef65007708ee33a5d3a13c0cd1f5221fcd464012f953193c13623035395ee87f5d941b222442b95a2c5ec53fe6365560fda0bfa1216081d39f150f3a6e576d95c60daf87a5143b3d2226290019c9aa9f025f405ede9f7e2c60eaf0e7d8418e7386eb6c11881cb1c2ddd9d83f7f0faae4f423be25a6e289221b694b9b0d5133c7aa5fff4184a17431aabec90080f0551b0bdc41da591d76dde496b4873947c841a2991c57a88f78ce5541380a3c6892c6708b8cc90155c7c0c8ec5cc902a5371b9647667e34fc70bac3ed0c35c3976d398f747336feaa383f3713a35943f3c4edb6b1b51af8347c453c12f5332e0adde032b9bfed06ace6c3ec9dcfed0d3a1389ef65007708ee33a5d3a13c0cd1f5221fcd464012f953193c13623035395ee87f5d941b222442b95a2c5ec53fe6365560fda0bfa1216081d39f150f3a6e576d95c60daf87a5143b3d2226290019c9aa9f025f405ede9f7e2c60eaf0e7d8418e7386eb6c11881cb1c2ddd9d83f7f0faae4f423be25a6e289221b694b9b0d5133c7aa5fff4184a17431aabec90080f0551b0bdc41da591d76dde496b4873947c841a2991c57a88f78ce5541383c5f354a6809f5d8fc0d754f10b0845dec5a231524772141e6eba5461ed414fa0552acfb4136a8687c086867198f336159a70e0de3347500c25c57abf0d8fec10ea60682aecbdee42397c05a7ce3eea2ec92141b47302b4406022808423fcc012fa81737a7f382da645261ef58dc599e11f9ecb9c3be30b083103cdfae1320473b442fe80237f9f2471ed5bec0a322c9943733baa45cff62f815d8df1ad316170559925ea413ce9bc0338a00d6e23724ee9d834c52594f99ba3c69852b150a673f8129a0cbf2c2ee7797ce18340fa10c6fc510cf0c940f15873982226f52810b3fe1468df0d4367ccccba93df2730956b4dec3517611b685993d5bd3dee7bd18203cc350bbecc8ec4012b59703593e4317e7ede6417f5509819c6dc37e94d8b51bd3832741c31cd41f4b79e067ea358ea2ad751c49ea6025c7f9ab78073c10f90552acfb4136a8687c086867198f336159a70e0de3347500c25c57abf0d8fec13c5f354a6809f5d8fc0d754f10b0845dec5a231524772141e6eba5461ed414fa2fa81737a7f382da645261ef58dc599e11f9ecb9c3be30b083103cdfae1320470ea60682aecbdee42397c05a7ce3eea2ec92141b47302b4406022808423fcc011b5dfa9bd184d0569fdc43066fe8b048bd08e7d34083390f0f6b37b5dfee82f00a6c518d4bc90f7ded1669419cc1c92e5a9676d06593ac5f2145fdb1e9471d4820374efa3e791f5d3c185680619348147ad51d8ce8be00c16f9cfeba2b95d02e37fbe9f526022308ffc49beb531c492be5de1b05c054cdac3d5c551939cde90a3140ff15e22c58558c7ff547f9d9d0da5a7030b0219337e3d303e7dc7318676419ec0292880f6c4530091eea15cc26cba9f2702828e5b9e9fed63b24d514a6d60000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000114d8780aabd115c01d8be5a83eb232a5f8586dc670dd48dc15a1ea3dba0392f410fc56c95710c1a945f27477766b823f188f19e53e367835e5e911758cf1a1f40debae6fa3b3602532c67da61fb6dedc1f10a099e661ac47304a1f82bb1a48702a2eff5392285967d07c6dc9450daad9480872be9e81b6ea4021536af147cd473f7ad558ad51046f91d3ae56cbbf49f30d17fc268201af9fbc4281196030106a3629157a361d92390fb6e3aa790c3c0d5d4d940407cb058e8b2fb255b9a05eb6098006a27938312658134224b1e12467530b30fb362e3056b1da2688d20d0d09220023e72f010d84d9151db5e846a5cf86bad30c71fa9edd01327fdcf7d4d9543f9a015901a40e675ef09f0243a0bd4740cc66aa2ac05806cb7d2ddc917c2a04378cb2eacda6d23a45e376177ad6dffd17495835e91b1fd2ca888c7e5d287c3827e26129456fd53cb4d76b77064c7b3f2c75e6246a31225ac749637d51ebefb43588b992a12ab13cf2ea4c93246d49a657fa8777bd47e45fbfc8c24c09ef021028ad478081870e0f9f1e5d1592f70aeba7a736effc29c4d16c6b93874776caea1cfe54bd01cfd75bacf774d91e2519ba284b1324861ce98e805096b87dd148f521934f9fd4970d89945a97c337426fc319019daaface7f8ed1dbbdab3a4a4d9f2ba71a2265ccfdd6e7ba337058782260776aee5a61a7cf94f2e53881d6e6d16e1c5921863a91a1143d13dffc222623fcdc8f8333ca2677d9976aa55e6c064be53ed55c19fa51dcfc783b1b5da6d51e9e56ceaec37c5b5b3f556c2cd703c22a81307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab21307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab211d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f31191ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a33e487bd6867df07d9ec1655272d545d836af65b6e200b39c8a448d47b53f7bd123701802f019376baeb767fee133c1f3dc99bb5c30df62439261b00de2d7c131d548f3a37824e69d2a303268bf95ebe4d234c7efcf767cd5b468655c42d6e0c35a39850482b091a74764e0c664c3ce29d58afb92b8e646a5f733ba602893b0b1f6ac28802d85254bf34bc745b22b6329dfeda79f795b6edf8d1295dbdbe5145305a296dafd6e9d44dbfe1828fc0bbb540195dda23348aa6ab24be0bae152e6712b2922da287875eb02404c25118a64be76d37784d70d8e9e573b9a8dba470942d33e100830ba545a02a1743cb8742e85b824a8c0cac15020e1122ab107a14291ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a1d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f3119123701802f019376baeb767fee133c1f3dc99bb5c30df62439261b00de2d7c1333e487bd6867df07d9ec1655272d545d836af65b6e200b39c8a448d47b53f7bd35dc61c66e94143707d8718d93ca49596ad35e3a664f2f7c8421a152d35d45da01d0b41dfef4b7824640b03a7c79fa83b58fda78ab814665979f8bf04bb5909028a68289f22ce6e9bc094b17961df8c0411153a275fd71849a30a813a669550d3df8dff7eb723c0b4620407c0f8dd83d3b15a9cf842aa7f83921972a82bfe4c82096cd836558aac4c77e426521fd711022117695c1c4be6ea49a5c36811dc0f2028b37877cf77748214f180647bb2071d18a7b3d7adb19a7af8f5c33eef6805d000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013dbb8123a201f395db9f2f2c3d4ff82cc0f292e70d03be073f8c10b780ab6b112b6f47b0bc19cfbd55b379a01fc7fbeef10f2555c641cacfbdb3e5d40c0c99d2213370d52f4338ec1be5da8d495ec0412b0c849085a948b7d8f42b822ec6265b37e08811cd6f415558a20d16becee1d01867b2ba7867f9d38eb9339d22bf2c941abfdb6cadb66b16fefc7571039f4148724f5550aebcbbf40412b92b6dc016bf05146708553da5e44bbf4dff562a274db6790b9744f3e5048b86db4d55ec8c543856230d60c179d69bfc51d553973ebc928e7daea19be3ebd80b35fc0ce5f0262f25569f5ee15b0d2d3b65d2eb0a6374b93fc3dcdfccb0842099a1830ba4ca610cf33767c34c206a5818c9f6d3715991bacb418650e48bcbb8403090c988c7c80104b7018746f5dbcff36efe0c1c1a206de14938a4a48cc26631587803ea830321c905eaea25e3dedc370bd327272a6bca531b1569e6391cdf7175a681cb3a27246363f6aa13006b2614b010694833fd8a2d547ce950eb416636c9c424ff6ba117dc9233abaa8edc7a19fc22ebd1084cb864d3ba89306b18cd74403fa7f6207e2dcf0a09d7ac568ed1fbd5cbc54b1c59178d7659f91643471f47ea001d51f3613d8e2c431b1a79a8a46285cf68d1935784bb81c82a8e31ca08dc72071de6b0da19a19b0c1df1bf82cb47c9487fb65c9856553aee9e895c797a5639efda877991367ab44d9ec8b69ac840786b5bd0a08bd77cd20cc6cd74e514ad17279db103b0354372abd4c87a3a0317c3c50b078e9a6c0db353f6adba84d4e77af76e1500052f50d95a6fbbf69d4b315b51feab760a01547d3e9b8250963cb44c579ff9d03410af26a590440962b4cea4ae015489f620f21bbd6dcaa8855c78e49560062fcd2c943ec42eabd11277f6c899f9594e319fd2a744eda4a79c63fdeaef1fe11101136bc13bd1542eed8809376606a6b1ce8273f1b71ba8517f352f45fde01eef001ee539d4e95b155c57d1eb01debe86f7b849796488505abb286e03e49f655502211ac62b16a4eaa3a82e14fe2141790869fd1f9780fc9e6070bf2d08609aaaff1a7a21288ec76acdb719970959b8a2d654e22cfe96f7d37097cbb19d1cfaa9082585ded77138953248e668f6a6475d29cd646bfd725525ab01617f4fe30556f92f50d95a6fbbf69d4b315b51feab760a01547d3e9b8250963cb44c579ff9d03410af26a590440962b4cea4ae015489f620f21bbd6dcaa8855c78e49560062fcd2c943ec42eabd11277f6c899f9594e319fd2a744eda4a79c63fdeaef1fe11101136bc13bd1542eed8809376606a6b1ce8273f1b71ba8517f352f45fde01eef001ee539d4e95b155c57d1eb01debe86f7b849796488505abb286e03e49f655502211ac62b16a4eaa3a82e14fe2141790869fd1f9780fc9e6070bf2d08609aaaff1a7a21288ec76acdb719970959b8a2d654e22cfe96f7d37097cbb19d1cfaa9082585ded77138953248e668f6a6475d29cd646bfd725525ab01617f4fe30556f90af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb1dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970c2b75fbbe433ef24de4054a1dd9f66a53f2af49bd4023946d9757847ed174640b0b59e3d76049a3cbcc543bafb2590ac18882a0454dfa958b5471d33d0dec0c1ff9fb5636e682c54595ae59308d07b83e992344f2f2cdd3faa8f6f65562a9d72d8b0a9adb08667a4f595126e49cb9c6146df06cf9296fd136693e2ad6bcfec3131387d000f3b84b0d7360a8584bbecb731811508a4bc39d7c83f9146eec555b1d001fb9101e1c85d546e96e3ee048999048fc9978fc24836c19b236813e700b1d603d758367eee3706b0b6ecb5d21cf7be345ce033e19028c81871ffa8f27aa2ea5d26188142b36adcc8e5c588ad3d4bdf1f15f2a91055f361f8d9f681f7c071dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb0b0b59e3d76049a3cbcc543bafb2590ac18882a0454dfa958b5471d33d0dec0c0c2b75fbbe433ef24de4054a1dd9f66a53f2af49bd4023946d9757847ed17464249ee2267d42291f0143aff4e004a73bc2c6ca985c62e685ef063d5f050e2f4c1c62474a42fc66a79c370c0505864b724b0497dce43e033f363cba068a980a520d68748f355bb5d665a0cc6b855033dc50e3db4660cf56cc96eeace1dcac050f280e7de87cf6808708c0047cc81e562a8a5e323d5299092cef7020c786d0905f097394f4110e81f6cc3974aef75edf9c8342da3af841a2caf68cc08c7eb7c1cc21939d25be3f8d2e963faa8524a102756ace49d2fad7b6b56a3eaa33fee30fdb000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012f9258dc5237d4854b4f5874a94e1fb60994518abe2c81c8c0287dc230533f2437b3241106aca0a0c54ea3cfedc6f71c5dfc017115a6edd1e134a09c2b86bf053ed91e7e6c068ded8de8887bf1263504ff247985d547938635653d7d9a5c8a520f3fe0e2f28842a70f7c8c106624a2cdbe2d1b260ae9870f437fc0f6b084bfeb118a912bfbb1ebcdf428adfcf3acc0f34a726b5d2696ab3b3cc27455f6ca2ed60189d9842c08854fca2d31c1ebaa06bb87c7eaccf863f880b57df873246fb1593b88b8ccef17fe3b65cb84d8ada0d9e9039bcb7214f792942030f879e00a82443881e11db9f7fbe1f8c64e867139d83f68885d69ad5b5cc0f9b8441df2e767002bc5fd6a32ca7d8a028109bef03b2d74f71cfec86aafec4a29d28bf3b17a9c291e75294be9d02bbe06faafb1759c6bcf98a4235c3553f0daca2fc424389922783629ac374ad86192e9220ca56f91edbb59ec5df2e6dcf8933782a432f3cd3db11bfd1e2b05195e6056509c20f7e8c28faad23272b42c762a76d06d95730caa0237a22583fe6ffc08dacfbb51eb7bfa8f2f40f86343fdf07945dfa5cf93cda2060e0976b984e6e9627146169cc5a02a16a0b151b13e48bde6a6dc8470317a71d929dfec695b53155c6e261af6f5d9cf19368bb14d260b927b5ba5c5728c13cae43c58ee7418200325de18346cc1eb218dd839616d9715acba5dfda770fa7120ca0a047eb15946cf044914e7ff9aa54ddd9ba6e7f10812807fda31eedba2ea376316506ccc7f82e6fb2e8540a2503be691e540ea8d6f35860d316f34c0be1c2f4e35c3976d398f747336feaa383f3713a35943f3c4edb6b1b51af8347c453c12f50a3c6892c6708b8cc90155c7c0c8ec5cc902a5371b9647667e34fc70bac3ed0c0cd1f5221fcd464012f953193c13623035395ee87f5d941b222442b95a2c5ec5332e0adde032b9bfed06ace6c3ec9dcfed0d3a1389ef65007708ee33a5d3a13c0019c9aa9f025f405ede9f7e2c60eaf0e7d8418e7386eb6c11881cb1c2ddd9d83fe6365560fda0bfa1216081d39f150f3a6e576d95c60daf87a5143b3d2226290080f0551b0bdc41da591d76dde496b4873947c841a2991c57a88f78ce5541383f7f0faae4f423be25a6e289221b694b9b0d5133c7aa5fff4184a17431aabec935c3976d398f747336feaa383f3713a35943f3c4edb6b1b51af8347c453c12f50a3c6892c6708b8cc90155c7c0c8ec5cc902a5371b9647667e34fc70bac3ed0c0cd1f5221fcd464012f953193c13623035395ee87f5d941b222442b95a2c5ec5332e0adde032b9bfed06ace6c3ec9dcfed0d3a1389ef65007708ee33a5d3a13c0019c9aa9f025f405ede9f7e2c60eaf0e7d8418e7386eb6c11881cb1c2ddd9d83fe6365560fda0bfa1216081d39f150f3a6e576d95c60daf87a5143b3d2226290080f0551b0bdc41da591d76dde496b4873947c841a2991c57a88f78ce5541383f7f0faae4f423be25a6e289221b694b9b0d5133c7aa5fff4184a17431aabec90552acfb4136a8687c086867198f336159a70e0de3347500c25c57abf0d8fec13c5f354a6809f5d8fc0d754f10b0845dec5a231524772141e6eba5461ed414fa2fa81737a7f382da645261ef58dc599e11f9ecb9c3be30b083103cdfae1320470ea60682aecbdee42397c05a7ce3eea2ec92141b47302b4406022808423fcc010559925ea413ce9bc0338a00d6e23724ee9d834c52594f99ba3c69852b150a673b442fe80237f9f2471ed5bec0a322c9943733baa45cff62f815d8df1ad316173fe1468df0d4367ccccba93df2730956b4dec3517611b685993d5bd3dee7bd183f8129a0cbf2c2ee7797ce18340fa10c6fc510cf0c940f15873982226f52810b1bd3832741c31cd41f4b79e067ea358ea2ad751c49ea6025c7f9ab78073c10f9203cc350bbecc8ec4012b59703593e4317e7ede6417f5509819c6dc37e94d8b53c5f354a6809f5d8fc0d754f10b0845dec5a231524772141e6eba5461ed414fa0552acfb4136a8687c086867198f336159a70e0de3347500c25c57abf0d8fec10ea60682aecbdee42397c05a7ce3eea2ec92141b47302b4406022808423fcc012fa81737a7f382da645261ef58dc599e11f9ecb9c3be30b083103cdfae1320470a6c518d4bc90f7ded1669419cc1c92e5a9676d06593ac5f2145fdb1e9471d481b5dfa9bd184d0569fdc43066fe8b048bd08e7d34083390f0f6b37b5dfee82f037fbe9f526022308ffc49beb531c492be5de1b05c054cdac3d5c551939cde90a20374efa3e791f5d3c185680619348147ad51d8ce8be00c16f9cfeba2b95d02e19ec0292880f6c4530091eea15cc26cba9f2702828e5b9e9fed63b24d514a6d63140ff15e22c58558c7ff547f9d9d0da5a7030b0219337e3d303e7dc731867640000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000110fc56c95710c1a945f27477766b823f188f19e53e367835e5e911758cf1a1f414d8780aabd115c01d8be5a83eb232a5f8586dc670dd48dc15a1ea3dba0392f42a2eff5392285967d07c6dc9450daad9480872be9e81b6ea4021536af147cd470debae6fa3b3602532c67da61fb6dedc1f10a099e661ac47304a1f82bb1a48703629157a361d92390fb6e3aa790c3c0d5d4d940407cb058e8b2fb255b9a05eb63f7ad558ad51046f91d3ae56cbbf49f30d17fc268201af9fbc4281196030106a220023e72f010d84d9151db5e846a5cf86bad30c71fa9edd01327fdcf7d4d954098006a27938312658134224b1e12467530b30fb362e3056b1da2688d20d0d09378cb2eacda6d23a45e376177ad6dffd17495835e91b1fd2ca888c7e5d287c383f9a015901a40e675ef09f0243a0bd4740cc66aa2ac05806cb7d2ddc917c2a043588b992a12ab13cf2ea4c93246d49a657fa8777bd47e45fbfc8c24c09ef021027e26129456fd53cb4d76b77064c7b3f2c75e6246a31225ac749637d51ebefb41cfe54bd01cfd75bacf774d91e2519ba284b1324861ce98e805096b87dd148f528ad478081870e0f9f1e5d1592f70aeba7a736effc29c4d16c6b93874776caea2ba71a2265ccfdd6e7ba337058782260776aee5a61a7cf94f2e53881d6e6d16e21934f9fd4970d89945a97c337426fc319019daaface7f8ed1dbbdab3a4a4d9f3ed55c19fa51dcfc783b1b5da6d51e9e56ceaec37c5b5b3f556c2cd703c22a811c5921863a91a1143d13dffc222623fcdc8f8333ca2677d9976aa55e6c064be508ccf4d3a5e93ecf17c6dce5a8ee2a604a4de7693506ce6caa2463287a5d817937330b2c5a16c130e839231a5711d59fd7f8b192d4462aaeef08cdc485a27e882c00c8223d8e3a0b76e2507c4ca6d3e17385850e0922081f52b5efca63d3875d13ff37ddc271c5f4891daf83b3592c1eaec113ee002af0fc467741229c2c78a41c03e8ab33c72239526b926d7f422366dac7ce5211c33d49d2061c2cf321a4ce23fc1754cc38ddc6ad946d9280bddc99477ecaa9f789bbd1c72714c00cde5b330c138b5802e3ab1e9c19dc237c4ab1020159d5a246364039e7c42b06bfa8380433ec74a7fd1c54e163e623dc83b54efe20ecc359c316b8e1b16905e64057c7fd08ccf4d3a5e93ecf17c6dce5a8ee2a604a4de7693506ce6caa2463287a5d817937330b2c5a16c130e839231a5711d59fd7f8b192d4462aaeef08cdc485a27e882c00c8223d8e3a0b76e2507c4ca6d3e17385850e0922081f52b5efca63d3875d13ff37ddc271c5f4891daf83b3592c1eaec113ee002af0fc467741229c2c78a41c03e8ab33c72239526b926d7f422366dac7ce5211c33d49d2061c2cf321a4ce23fc1754cc38ddc6ad946d9280bddc99477ecaa9f789bbd1c72714c00cde5b330c138b5802e3ab1e9c19dc237c4ab1020159d5a246364039e7c42b06bfa8380433ec74a7fd1c54e163e623dc83b54efe20ecc359c316b8e1b16905e64057c7fd2c9c5447ae1258463f3aab447a9f9906b7afbc722f2eeaa83dc7e2d2b05d15550da9914a1efea3e5e652d1bebf32fb2c4a8339fdf7e114fbb9026c3948d1e57b2f88cd896630976eca8ac22f2adf184cc2b4645146ab150c6247ed9a6d5f932316314ce4ccbe6c650fe7c0cd9b4e53807fa5d736a4dedd86d948253399717210280071283699db36bbd4074eb20321a1e278c9f5621fb2f066ebfa421fbac1f52916854ebc2d902dc4b62a539145498f767a3216baa217ddac4e6ae33f95c02c379de3c2e00b0c9069a6b6f870606c66d94be64a708f86f546b5bc1beeb2b09620870a490cc02e987fa4ceb204b4ccd3cf810ca8193c482b89ae095a2dae1c841ccca892b98c6f9673f2f11e146986ea5e04c39076f443387d615ce92955727f0f072b23cbd331b6925ccd7811a2402021115005c32c178165b23f01d0d04c810da9914a1efea3e5e652d1bebf32fb2c4a8339fdf7e114fbb9026c3948d1e57b2c9c5447ae1258463f3aab447a9f9906b7afbc722f2eeaa83dc7e2d2b05d155516314ce4ccbe6c650fe7c0cd9b4e53807fa5d736a4dedd86d9482533997172102f88cd896630976eca8ac22f2adf184cc2b4645146ab150c6247ed9a6d5f93230265de0258f37ea129b98c9e34d5ba77803df2da194a219240ef84381bbd74ff2c9b0cdc05357dc7920ac520eaaf6b8927df381d4e35697d3ebd5bbca77c715c36badd17c1271bb94c788cc26ed5a76eb295e9099c93b8bbf582e8efd1d356c80d814f8ca76fcda4d6ff52e0aa2272dbce96c8db31093a772bba74a6ffb94fef03e9b2f9e6efac2b1a653709c8900f69691d24568ebeae187eb7467da420f00a3190331c5b435e0768c9ddbf1daaed7203a4bb0686a96633c69c68e1cede3d360000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000118ea5ffe0484b679a2538d233ef9839b2e4b1a9d099148ec3cb9713369fbac6d1502892d11ad291e23cb6f9a85aaf8e72e3b6105711e4d995a3f6a0dd0936c5b0811d1dd75c978970675ab2b25029db6fec46f042c0a150ef0a6cab2c61ba0d814606767deb4780d7ab3829207368cca4a0dcd8092bca17179348103f1db761e39ee5c66ab28643ceb96f74110128c7c3e8567de8c4d7b2391c75b1298f61937165789d56fd9885adc2ae67dbb16ab17f6f9a3f50f705e7e5160cdf9c9d4a5eb3d5d08669f675ee6d85de193a8e61cbf5ab2e564245114d9a42aec7bf794d4632729d07bd357396582fb5258fb1fe8d777ec414605215d3cc5b2ec9636ce7cec1555e5d1cd521cfb1253de961ce04bd515d9d1392599bd8d9006da996f77e94027018192264400bbf2889caedb2f50e6fec6012fe3199dfe7de4b30cfd98c565345d67a93a5f559e5e4e17f0d0e5e02de122ccf75cc8ba0e274f0322dfda14513d89d0130748bc72f09fd09cf99b38c4340c891a447a971b946cdbef9df787ff0c0741e1429523fbfbece0bdd8e58f468b616c54e6fdef7b4f4a5e3f85cd191839a45a5c40c1c16f5028f130d836955f4490ddbf9b48bee49d71cc003f7afac703723b4b035add2995fec3df305cad4c39ed844248fd86f8503fa89e716972d824dae78cb797c661e38f9003dbd418e521036a7a09d940a889b4b86cfdf3292b22f38e839d5300832fe1cd6e51b12d5c4e9c9a61df508f71464273f113943b0601149d4453c3b84f8bcf84d2901a5886beff5c3e24b69c23eb7ededb60cfc82e37330b2c5a16c130e839231a5711d59fd7f8b192d4462aaeef08cdc485a27e8808ccf4d3a5e93ecf17c6dce5a8ee2a604a4de7693506ce6caa2463287a5d817913ff37ddc271c5f4891daf83b3592c1eaec113ee002af0fc467741229c2c78a42c00c8223d8e3a0b76e2507c4ca6d3e17385850e0922081f52b5efca63d3875d23fc1754cc38ddc6ad946d9280bddc99477ecaa9f789bbd1c72714c00cde5b331c03e8ab33c72239526b926d7f422366dac7ce5211c33d49d2061c2cf321a4ce33ec74a7fd1c54e163e623dc83b54efe20ecc359c316b8e1b16905e64057c7fd0c138b5802e3ab1e9c19dc237c4ab1020159d5a246364039e7c42b06bfa8380437330b2c5a16c130e839231a5711d59fd7f8b192d4462aaeef08cdc485a27e8808ccf4d3a5e93ecf17c6dce5a8ee2a604a4de7693506ce6caa2463287a5d817913ff37ddc271c5f4891daf83b3592c1eaec113ee002af0fc467741229c2c78a42c00c8223d8e3a0b76e2507c4ca6d3e17385850e0922081f52b5efca63d3875d23fc1754cc38ddc6ad946d9280bddc99477ecaa9f789bbd1c72714c00cde5b331c03e8ab33c72239526b926d7f422366dac7ce5211c33d49d2061c2cf321a4ce33ec74a7fd1c54e163e623dc83b54efe20ecc359c316b8e1b16905e64057c7fd0c138b5802e3ab1e9c19dc237c4ab1020159d5a246364039e7c42b06bfa838040da9914a1efea3e5e652d1bebf32fb2c4a8339fdf7e114fbb9026c3948d1e57b2c9c5447ae1258463f3aab447a9f9906b7afbc722f2eeaa83dc7e2d2b05d155516314ce4ccbe6c650fe7c0cd9b4e53807fa5d736a4dedd86d9482533997172102f88cd896630976eca8ac22f2adf184cc2b4645146ab150c6247ed9a6d5f93232916854ebc2d902dc4b62a539145498f767a3216baa217ddac4e6ae33f95c02c280071283699db36bbd4074eb20321a1e278c9f5621fb2f066ebfa421fbac1f520870a490cc02e987fa4ceb204b4ccd3cf810ca8193c482b89ae095a2dae1c84379de3c2e00b0c9069a6b6f870606c66d94be64a708f86f546b5bc1beeb2b0960f072b23cbd331b6925ccd7811a2402021115005c32c178165b23f01d0d04c811ccca892b98c6f9673f2f11e146986ea5e04c39076f443387d615ce92955727f2c9c5447ae1258463f3aab447a9f9906b7afbc722f2eeaa83dc7e2d2b05d15550da9914a1efea3e5e652d1bebf32fb2c4a8339fdf7e114fbb9026c3948d1e57b2f88cd896630976eca8ac22f2adf184cc2b4645146ab150c6247ed9a6d5f932316314ce4ccbe6c650fe7c0cd9b4e53807fa5d736a4dedd86d9482533997172102c9b0cdc05357dc7920ac520eaaf6b8927df381d4e35697d3ebd5bbca77c715c0265de0258f37ea129b98c9e34d5ba77803df2da194a219240ef84381bbd74ff0d814f8ca76fcda4d6ff52e0aa2272dbce96c8db31093a772bba74a6ffb94fef36badd17c1271bb94c788cc26ed5a76eb295e9099c93b8bbf582e8efd1d356c83190331c5b435e0768c9ddbf1daaed7203a4bb0686a96633c69c68e1cede3d3603e9b2f9e6efac2b1a653709c8900f69691d24568ebeae187eb7467da420f00a000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011502892d11ad291e23cb6f9a85aaf8e72e3b6105711e4d995a3f6a0dd0936c5b18ea5ffe0484b679a2538d233ef9839b2e4b1a9d099148ec3cb9713369fbac6d14606767deb4780d7ab3829207368cca4a0dcd8092bca17179348103f1db761e0811d1dd75c978970675ab2b25029db6fec46f042c0a150ef0a6cab2c61ba0d8165789d56fd9885adc2ae67dbb16ab17f6f9a3f50f705e7e5160cdf9c9d4a5eb39ee5c66ab28643ceb96f74110128c7c3e8567de8c4d7b2391c75b1298f619372729d07bd357396582fb5258fb1fe8d777ec414605215d3cc5b2ec9636ce7cec3d5d08669f675ee6d85de193a8e61cbf5ab2e564245114d9a42aec7bf794d46327018192264400bbf2889caedb2f50e6fec6012fe3199dfe7de4b30cfd98c5651555e5d1cd521cfb1253de961ce04bd515d9d1392599bd8d9006da996f77e9403d89d0130748bc72f09fd09cf99b38c4340c891a447a971b946cdbef9df787ff345d67a93a5f559e5e4e17f0d0e5e02de122ccf75cc8ba0e274f0322dfda145139a45a5c40c1c16f5028f130d836955f4490ddbf9b48bee49d71cc003f7afac70c0741e1429523fbfbece0bdd8e58f468b616c54e6fdef7b4f4a5e3f85cd191824dae78cb797c661e38f9003dbd418e521036a7a09d940a889b4b86cfdf3292b03723b4b035add2995fec3df305cad4c39ed844248fd86f8503fa89e716972d801149d4453c3b84f8bcf84d2901a5886beff5c3e24b69c23eb7ededb60cfc82e22f38e839d5300832fe1cd6e51b12d5c4e9c9a61df508f71464273f113943b0610af26a590440962b4cea4ae015489f620f21bbd6dcaa8855c78e49560062fcd2f50d95a6fbbf69d4b315b51feab760a01547d3e9b8250963cb44c579ff9d034136bc13bd1542eed8809376606a6b1ce8273f1b71ba8517f352f45fde01eef002c943ec42eabd11277f6c899f9594e319fd2a744eda4a79c63fdeaef1fe11101211ac62b16a4eaa3a82e14fe2141790869fd1f9780fc9e6070bf2d08609aaaff1ee539d4e95b155c57d1eb01debe86f7b849796488505abb286e03e49f6555022585ded77138953248e668f6a6475d29cd646bfd725525ab01617f4fe30556f91a7a21288ec76acdb719970959b8a2d654e22cfe96f7d37097cbb19d1cfaa90810af26a590440962b4cea4ae015489f620f21bbd6dcaa8855c78e49560062fcd2f50d95a6fbbf69d4b315b51feab760a01547d3e9b8250963cb44c579ff9d034136bc13bd1542eed8809376606a6b1ce8273f1b71ba8517f352f45fde01eef002c943ec42eabd11277f6c899f9594e319fd2a744eda4a79c63fdeaef1fe11101211ac62b16a4eaa3a82e14fe2141790869fd1f9780fc9e6070bf2d08609aaaff1ee539d4e95b155c57d1eb01debe86f7b849796488505abb286e03e49f6555022585ded77138953248e668f6a6475d29cd646bfd725525ab01617f4fe30556f91a7a21288ec76acdb719970959b8a2d654e22cfe96f7d37097cbb19d1cfaa9081dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb0b0b59e3d76049a3cbcc543bafb2590ac18882a0454dfa958b5471d33d0dec0c0c2b75fbbe433ef24de4054a1dd9f66a53f2af49bd4023946d9757847ed174642d8b0a9adb08667a4f595126e49cb9c6146df06cf9296fd136693e2ad6bcfec31ff9fb5636e682c54595ae59308d07b83e992344f2f2cdd3faa8f6f65562a9d71d001fb9101e1c85d546e96e3ee048999048fc9978fc24836c19b236813e700b131387d000f3b84b0d7360a8584bbecb731811508a4bc39d7c83f9146eec555b2ea5d26188142b36adcc8e5c588ad3d4bdf1f15f2a91055f361f8d9f681f7c071d603d758367eee3706b0b6ecb5d21cf7be345ce033e19028c81871ffa8f27aa0af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb1dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970c2b75fbbe433ef24de4054a1dd9f66a53f2af49bd4023946d9757847ed174640b0b59e3d76049a3cbcc543bafb2590ac18882a0454dfa958b5471d33d0dec0c1c62474a42fc66a79c370c0505864b724b0497dce43e033f363cba068a980a52249ee2267d42291f0143aff4e004a73bc2c6ca985c62e685ef063d5f050e2f4c280e7de87cf6808708c0047cc81e562a8a5e323d5299092cef7020c786d0905f0d68748f355bb5d665a0cc6b855033dc50e3db4660cf56cc96eeace1dcac050f21939d25be3f8d2e963faa8524a102756ace49d2fad7b6b56a3eaa33fee30fdb097394f4110e81f6cc3974aef75edf9c8342da3af841a2caf68cc08c7eb7c1cc0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000137b3241106aca0a0c54ea3cfedc6f71c5dfc017115a6edd1e134a09c2b86bf052f9258dc5237d4854b4f5874a94e1fb60994518abe2c81c8c0287dc230533f240f3fe0e2f28842a70f7c8c106624a2cdbe2d1b260ae9870f437fc0f6b084bfeb3ed91e7e6c068ded8de8887bf1263504ff247985d547938635653d7d9a5c8a520189d9842c08854fca2d31c1ebaa06bb87c7eaccf863f880b57df873246fb159118a912bfbb1ebcdf428adfcf3acc0f34a726b5d2696ab3b3cc27455f6ca2ed63881e11db9f7fbe1f8c64e867139d83f68885d69ad5b5cc0f9b8441df2e767003b88b8ccef17fe3b65cb84d8ada0d9e9039bcb7214f792942030f879e00a82441e75294be9d02bbe06faafb1759c6bcf98a4235c3553f0daca2fc424389922782bc5fd6a32ca7d8a028109bef03b2d74f71cfec86aafec4a29d28bf3b17a9c291bfd1e2b05195e6056509c20f7e8c28faad23272b42c762a76d06d95730caa023629ac374ad86192e9220ca56f91edbb59ec5df2e6dcf8933782a432f3cd3db10e0976b984e6e9627146169cc5a02a16a0b151b13e48bde6a6dc8470317a71d937a22583fe6ffc08dacfbb51eb7bfa8f2f40f86343fdf07945dfa5cf93cda2063c58ee7418200325de18346cc1eb218dd839616d9715acba5dfda770fa7120ca29dfec695b53155c6e261af6f5d9cf19368bb14d260b927b5ba5c5728c13cae416506ccc7f82e6fb2e8540a2503be691e540ea8d6f35860d316f34c0be1c2f4e0a047eb15946cf044914e7ff9aa54ddd9ba6e7f10812807fda31eedba2ea376340000000000000000000000000000000224698fc094cf91b992d30ed00000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000224698fc094cf91b992d30ecfffffffc000000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000224698fc094cf91b992d30ecffffffe8000000000000000000000000000000000000000000000000000000000000001940000000000000000000000000000000224698fc094cf91b992d30ecffffff84000000000000000000000000000000000000000000000000000000000000007d40000000000000000000000000000000224698fc094cf91b992d30ed00000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000224698fc094cf91b992d30ecfffffffc000000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000224698fc094cf91b992d30ecffffffe8000000000000000000000000000000000000000000000000000000000000001940000000000000000000000000000000224698fc094cf91b992d30ecffffff84000000000000000000000000000000000000000000000000000000000000007d000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017b2dac71546dc2493713ac1ebd0fc3a180c7c29eaae5b0e85f3959b824bca32000000000000000000000000000000000000000000000000000000000000000030d5089697900f486566b25f937f0c13c19035483fae49286eebf770f651fd0d000000000000000000000000000000000000000000000000000000000000000034ce144c6c81c3a065162768a4dc8aa13b043653f4c1e5bd888034758056cb76000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f6c5bf0052d0873a5ee9794164e1b09565f9848122f6b4dd6094219ecf3e6a5000000000000000000000000000000000000000000000000000000000000000137bc0fccaab13923f84568390f6aefa9196a6fe7b297f541e70051016fe153780000000000000000000000000000000000000000000000000000000000000000339d0d4d0e435170fa0d03cd8276be2a77f98662e0d14983f9f93f5df8d1633000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001262d56b50f01332bf2091ff8ca8974beeeff26a7de49cd6845face6de868e49a059efa75a99d314ac7e112966c68bef66639555674fb743cda201d0006fddf940ee2d718dba3d2c0e9fb7496d83c29ca835758f1a68a7e328107eeefc2a6386402491972a0a46d36e51fef75356ccf64fa2455296f3e6c7ad2ebc9a569a6d0b93c3eb696d239418abd665e2024739c1360744c464563db9fd506fee08dd698ab1bbbc4356548b3c004b57613e391ea038bbbd00c9802dbd5405a0f74475967611461a66da9fe325f8f731378f355c8b87d9af15c4f0b1518822d426dfe4f107d026540da72d1d2fa2f1adabd99277622f2e1514eebacce0a7043282bfc0e37441ef3c52013dec7dfa0a29f051baa17e1794e684a4900f2464b296f4e50b2c75129c02968955c98b4c06eef3aa08ea5cabe2452d6157b60515962be6da4a884261e077269c8d261a1cf61801702c3aa56f5e256679d8094d796014c4525b7390927a429d3ba8483c97cb451d7ae587a4eda0ff3ace4c6198856baddfa9f90dad6109454259592027c6cf5644a5d02ea129d9399ce489991c269f698a79313d94000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000109454259592027c6cf5644a5d02ea129d9399ce489991c269f698a79313d9402077dea666d302e9680c24a43d9ce3ab1eae47ce663b20eb61b77c8bd965303b1f882159992cfd1697f3db5bc2631c550398512da311d8303775b461269acfc622575940021f0e8f083cb7353410725754da350fec8db261b63b0ce13ef9f1251da8a6bffde0f170f7c348cacbef8da8cd6c63ec1cbf46b9e2f2240bc1060edc2bb4be400a9b48cb292f940a04523bb463b5d7578c2a89b15cccde8c3ae1b5b7144b41bff564b734d6d06bf5fbadc44bbe90c1a47d226f6a3c605260c51e4a4a1a87b74035086bf7cdede432159b2a858bb969c1a0edc5240478c5f626688c90257848bfcaf7940832121bcdea64d57a968d2f3a685f33f794b46af6d99773712077dea666d302e9680c24a43d9ce3ab1eae47ce663b20eb61b77c8bd965303b1f882159992cfd1697f3db5bc2631c550398512da311d8303775b461269acfc622575940021f0e8f083cb7353410725754da350fec8db261b63b0ce13ef9f1251da8a6bffde0f170f7c348cacbef8da8cd6c63ec1cbf46b9e2f2240bc1060edc2bb4be400a9b48cb292f940a04523bb463b5d7578c2a89b15cccde8c3ae1b5b7144b41bff564b734d6d06bf5fbadc44bbe90c1a47d226f6a3c605260c51e4a4a1a87b74035086bf7cdede432159b2a858bb969c1a0edc5240478c5f626688c90257848bfcaf7940832121bcdea64d57a968d2f3a685f33f794b46af6d99773711dff3c5197fd00d1d0a0de7643244f7892ab4a9b26b3f4238af227929b22c07334ab22fea15d89c74a4ca0d1cbdd19b18c8dc4699b5e6d44a70b9e363033d8120f8754407db8e589f2df6fcd835c20166f375ddbc3fa7d6b8b38ce4ead63de951dce4c6f48ec8fdcf23310ea6da276bfb61cc5178c8d13637523cdc2874588e93b512473326dd17f630cf4f2bdb98870473ba57244f5f5298bb9bdd6748394392597090cea89eef236171ebdb214b1c2392c3e8f57a638e0d8ec29a89dfdaeb32129e1b09890a4e68254dec50a8fbb04d793377007221f890a8244a869bdbdbc186ae90f1118add7e77c4b14d730ddd639dc8732d6fdd5accb45a761eb123eab1d8008be35f89625327893f97e4b5e1820c197976d1ed3b55b900b33df3fddc40888417657eb9741bfc8a8cdb43839fb0baad193af6f201d97463a722e62175534ab22fea15d89c74a4ca0d1cbdd19b18c8dc4699b5e6d44a70b9e363033d8121dff3c5197fd00d1d0a0de7643244f7892ab4a9b26b3f4238af227929b22c0731dce4c6f48ec8fdcf23310ea6da276bfb61cc5178c8d13637523cdc2874588e90f8754407db8e589f2df6fcd835c20166f375ddbc3fa7d6b8b38ce4ead63de9528e42fd61415d882d055e82cd77eb192c69fc75d2f892718f84bf92b043ae3720c5f12f989dda461e547a1f377eb478b922cc5bcb14d4bb84c255de8e0ac4af810a20878ecb59a83c17a2b5f3bbb6c6fbfcb15648e7785550dff15f9a73d202016c7c1d7d7b729081c8171b9b81d9d265fa97030458f0ca9e74c52b39ddbba890e94e7f01ff81d440df5b6f00791a84d8ec76f31125a15e5654c80135ea001171bac9295417c4b85ace3098a22411c4a6f70aa5b9917c831b226e335142dc6e0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012e8478ec4916e73e4bf6142c978d1d79f72219c72ce93d6dc5c6b1a36cf05fd017c2a7bf33ab8382881d10885e4f0bce501f0cc53ecd61921c6d4819569a1c802a57c15a31e87682b86b574c93d45a2441d81bbdb9499866a08f9c9f247b7775286eb773b499d50f39ffe837b7b79fab1335b995ac28306ab62232d01ade4b3427b3f512a0198b323b05b42bf55315f9da1c98b6f97599507a7fed3c02cdffe0211b9172c673a1c749a263ad3f453243d01fa297dd95fe27e29f71c3c71860c23434581ec2162896ae5d2cff3f7a2f91b3dab94c40e59995ecedb2994586a9111810bf2ac979a1efe19b387f35dd54e5dfa755ca2c1302b263bd1f225a2357f13bcf409782aea10591a5e8afc7c5ea2519d57e5522e9dd39d5bcccf431f7bc5822cfc37efc0b5475705d8d51c05b24b7cb2031090fb397c1daeed6c6c0af561237f35bed0a9a93caf6fabe19e1e4136caebdad1da9c212fd1806199c6b09d6623d5437437da5254b5b89ff00c6e2e04699fadc7fd946c291df65f705b170f5c123c0808cc690318011f3686b69d3548cf4bc3f1288e8475ee84fb215c77eb98421eb1bb0bcc6b3eb3a2269834748d018db360b01f95e6701046c7829fdc95a5b049b12ad6c2c418da5d472b7ebebfd32e0cda2babeb9b3e66e376fe30d6348bd23e3fe84d0d828808ef96c70f70816b36bc811c54869ab1fe54f0f14911ee6f41c77a3bc00b4dcca9782a5568097054c102a06552d5dabdd619beeb0ef261d10365566966f484bcab526ae5f968222b0ee6c8209f9cb12a9385bb890388ca9883ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f620591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f620591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd62dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a24814e4fc4db6a41252ae13b604cfd91c0e9402633f45edd20bf70694bb1ebd40077e5fb96e4c541295b118291d98c7c81fb25e82959ce50f0f6e2140dc9b6cf1ec7b10604b385cb2749eb87d33d0e9beb216c2e4fc1d6d54f8797f55c1538f811a5d0d13ef2f7fc6bd8b0affa92f4cbba751a6012855cfd63068e53b1e7ea321ed9c17cdb69ace7a3d401aaa2df7e5a9b14849af98f7611c4bdd3533d1ad60a3267f9262df888432d1ecc40f27a38cf9db65ae4da4bafc18877223a13a945533ce554ec5c7e4eeea68fddfd0fd855dc8e1253cf4bfc7aa51318ff0adcfd61dd3e70a184511f6011b0be0e0136a08a5a034d05b4b30d2967b136e746b880657c2dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd60077e5fb96e4c541295b118291d98c7c81fb25e82959ce50f0f6e2140dc9b6cf24814e4fc4db6a41252ae13b604cfd91c0e9402633f45edd20bf70694bb1ebd437c73866f3de54d1573a852ac7d8973b09376e92d5746f8b39e7e8b39428a5b715c5b97e9c8eecce1664fc3d76610ff2cfcdfbf119d0e88e8b8ba21b10fce3f40abf282cc046c682e4b9d780d031027b9841844676d3eae5eb5d39245258d5c918ef4abe7e5304886052e2051ad306821f537f7bd04fb30512cae350ba6cc6dc3143ae19d0765f8251ec9caa175eff551accda880f5e36360e24433000b6e907306daa5ef60afc60ecf3f28aa368f5ceeb1e87a3dd0b629fd57021d85a9211cb000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010e67867b245d9150d09cdaffac183b9ef0c7f42451f3e9e217eb6ec72af21c03248f4e3367bfe80f66b6d262599a4d12230166ac4d7eae65352e86c20ac48f4b2a6f5f497b5d6fe8faf81383a7419ee815a531da38edca7d2ff417ddad78934d1b8235b1a37a457a455cfc398d7998ae5ca0009088603447f6f18e317194d6902e7cb1465bbda547125bf468c1e912cf798434f03c2fddd4046a82603923115736b9c145d8222e25c8e5461b05f5bbd20c66fddf46913a66e18fdaa62d109d0509ead7496b1043ece7441745aa35ee44d075a405d577d223df2535911233948916161ca582134fa61030d568e3c49e3c8968c8cf6acd8172391717817f5f82cb2bec045c26efacf09675a4f279d1876192d8a6ecad3fe109f8db1bc5c4039e9917c583a34f02107a1d1bcf887e1b7d2a1a220c53f15a44d700121fb578688cb416e0415e4ce7701c4ffa85a0569e4eb7184f141ab43aafea63aa03f80b8e44be3d24ecc00c9d4934b84bc448d3f535c1194e6c5ea08f4c1abb8220c95687fa0e1caf71b54cc10afebb0caa328015f6759fa22635e0cc2752436f6cac08c6a77528fc2a883695da6c910927bc31062e30305023dea17a870da94cbd93bc816c6a24e42939c12b45fc12b364cae2422d51ce52df86b26759c33df2cb318d0d347623f0ee907659754ac17a2c1cc1c1e2c476035e71c9c841cbf7c5f0918b6642632d18359828e53c67b967d69ad2a7270dec9daae567d8e9ca879251fcab7268af3f92fdbc5a0001e6241ca7088c395c34ba9938eb196dfcc50135060e6b859ddb00000000000000a03b036c39f2589940d9a6743c1418b4879ce7859c4f2518a068bb32e0401944c41f57c06976ed774702aa04f6b92fcdda85f30babce103befcef44ce82ea7bd5b131f073b7570fc274fd4b17ff8a98d35f910f8c3edd2df16480ae55919b75cb13fc710c020dd3d1fba1d87cb360f35a36f2fbffb1fc47d947aabc53cf9f089663b149a1b7d09b5262e1aa978cd4ee289328da0417fd4e0b3472fca33c284e964052b7f762dbb47271f1780db308b8fb406ac40d49b3f077f0679cb8249e72e9e152194e7eac84e47f18a33a9c9c9ececa123bd6677849483cd3cbedca5ea95253dc48313ab85eaff186805a164eed5ecc71cfb589612c826f579ebb96dbd50f221730be45bd676c98de619132b53bda262a17b5dfee8171a0c25d5d271634c6634feaa199f323fdf443531de0f93ed011a9699f5309bdeb161387719789f236116a00c9c7c67425c8e54924dfe911470404442f174b4cfcb2ecf52b8eaeb49063c460b5f19e6f6ea7b9da6fd3027ae6927fc75cd98e28cdf93e757dd28bc9d1122f0ed212e5a81b165450ca6a135be40887e96bfe0aee699bc6f5834e8bac4903d931e63a746224008556489c7a698715588e6027a0030c23ed92bf8af97bd4101a9166a2df9cc86c6a06d62991b5db65e1041b6801ab67b622182aa8fce0561113d019168546cc04351cbe8959d6522e7e9de0c842fad13c767f6fe83d9e0b506c381c30e37f49824abf80c93ff74fceac74baf1dd186507cdfc0ee65faca5a0f00a2fa779a1ea61fbf2027dae7be132dbe99f3f652112c960d06bba69c3e420124c05a33473d2bbf459836519623f5279d733a6709b8a39adbeb10f62d785211c157a16306fc1b4aaca114dd229ee41e5cac889d40aaeb8ead8e981d7a6dc4126ca8cc51acde483c132874d3fb98002f4967128899c455c2cc7dc477b8e53321d2890f993ade2a837bfa4fb855e93e3fbb397d5a30227760374e0eb0313f9119f2acc069775c245bd4f2509d1e736c268dad18a5c8e332446f76db773e076438f36b3b2cd6dd22ae1d46fa919a4f6d41b30ba667ce79787e4733ba9c69deb3179f8458f5af6b13be67cacd5c13f4c8d0c184654ffcf2f20ae5a85d769aeae50f108adb7234fd09e136a23b41a707e8dde19947f7ff6b3c667f618044641b9004724bc3d9a53559826ca8a5bd089e742216b38072be34f4ba2ce85ccf52da710e73cc37bca903ed878590a571b0246523e36c42918c2e9a6f5c914c44550ba53265ad49b64b1982609c9ab8853b8d3eeaca2c640e2e174f2c0e1e4890b5335c277bef8a22511ac63c0fa4e41ba54c6add31285b9719c943a11a09716665c8463fc710c020dd3d1fba1d87cb360f35a36f2fbffb1fc47d947aabc53cf9f08966131f073b7570fc274fd4b17ff8a98d35f910f8c3edd2df16480ae55919b75cb12ca6d48f504c3aacfcd3db833ca65f5d0995c18cb39bd67f4d3a2f713912fec1065b02b0ec0fd5a98447f0beeddd35dd38de0447322441936f2bab9bc249485019a7dee53a33f1038e1cccdf200d2e00ecbb340b3a76847bea2659879f464d89393e39165c1a48437bd56c6c0eab94d87b8584b3d320d82ed890510e7461988e32ce7767ee05179be59fb848c9b93ae22bb73c2be7ce16c04ee75af4a3c090ad21f6de687cfdae6d14e6b8c67e02d47e5994de24260f372d217909edf915b5030adbabd9f4f70fc6410b65a17e768e5ed9e25575cf8d4509295811b88e63b1d3080a6c21a1572980c8e6d3a9b042347a6c17ca4d34bd1e86003167f085443443024294ea2c6d028fdffbf615ccb92483a2293a4a84eb274d4d8bcca54d77728819010f286edb4d2daeb0f1bb9f82b2044d90d27fd23db55d5ddf1e87f1b60ad4384bf1896985b1a05f2e2604d3461d58647248824dff9462e74beab00c6ecb7c1a9a26722cc887a6aac413465b72a58103ce703cbf97c847db6abfe607391a9b19ded7dc4a54abb27228d6ff8ec2ec2d9dbdc58f6043e0b74eeb879828b4e1ca1a1dd8094cc89cd0b9a1b77be18bfda0f197a6663dd8731dcf15594730bb03f43dc48313ab85eaff186805a164eed5ecc71cfb589612c826f579ebb96dbd50f2152194e7eac84e47f18a33a9c9c9ececa123bd6677849483cd3cbedca5ea952526b79bc5b63b185648a6350faf9e99fb8132091aa266ffb83a4952063e539be1371377b3909e75d15e3b38ce83a3176cec6bc799f0923f9f5d3008903d85f2193c460b5f19e6f6ea7b9da6fd3027ae6927fc75cd98e28cdf93e757dd28bc9d1116a00c9c7c67425c8e54924dfe911470404442f174b4cfcb2ecf52b8eaeb49063a560de62c18cc2b175fefeaaf95d64c7f4b6029c7dee4d180a30f67d23051bd3009b9b1b8f426e1215cdf0a6185f969763601d452b3a78dd63512ffdcd8c6200707f2ba2d928a45003ee1c596fa9740f8285259868438be4e6a70465c02bcf60bde254168bbaf0209b3578597be2b984dd1cd697dc62ad0db1f0962b7a52920126ca8cc51acde483c132874d3fb98002f4967128899c455c2cc7dc477b8e53321d2890f993ade2a837bfa4fb855e93e3fbb397d5a30227760374e0eb0313f9119f2acc069775c245bd4f2509d1e736c268dad18a5c8e332446f76db773e076438f36b3b2cd6dd22ae1d46fa919a4f6d41b30ba667ce79787e4733ba9c69deb31d8906b4841a942a3532e61e4ae5fdc8a31b4d75ed793b49b8ed23a15947e6ea23b1eb82816ba04fc2ae066ef8bfc908e30039c1e5f6e8aaf65777e71137cfc5393e39165c1a48437bd56c6c0eab94d87b8584b3d320d82ed890510e7461988e19a7dee53a33f1038e1cccdf200d2e00ecbb340b3a76847bea2659879f464d89063ec7f7f7bee86efd50a3aad598a6dc0c1f018f2d323b7cdc1d79757dd662e612ba5d6caedb0ca3ecff2d532c54dea7aa6fa5b62b882ac44af4e105a8d81d7d1a9a26722cc887a6aac413465b72a58103ce703cbf97c847db6abfe607391a9b384bf1896985b1a05f2e2604d3461d58647248824dff9462e74beab00c6ecb7c3009b9b1b8f426e1215cdf0a6185f969763601d452b3a78dd63512ffdcd8c6203a560de62c18cc2b175fefeaaf95d64c7f4b6029c7dee4d180a30f67d23051bd0707f2ba2d928a45003ee1c596fa9740f8285259868438be4e6a70465c02bcf60bde254168bbaf0209b3578597be2b984dd1cd697dc62ad0db1f0962b7a52920126ca8cc51acde483c132874d3fb98002f4967128899c455c2cc7dc477b8e53321d2890f993ade2a837bfa4fb855e93e3fbb397d5a30227760374e0eb0313f9119f2acc069775c245bd4f2509d1e736c268dad18a5c8e332446f76db773e076438f36b3b2cd6dd22ae1d46fa919a4f6d41b30ba667ce79787e4733ba9c69deb319ded7dc4a54abb27228d6ff8ec2ec2d9dbdc58f6043e0b74eeb879828b4e1ca1a1dd8094cc89cd0b9a1b77be18bfda0f197a6663dd8731dcf15594730bb03f43dc48313ab85eaff186805a164eed5ecc71cfb589612c826f579ebb96dbd50f2152194e7eac84e47f18a33a9c9c9ececa123bd6677849483cd3cbedca5ea95253b1b9a3df31a401394930e0a3be0f651c439aabd68482aaaab52bb07d475661f235d0a7bc8f5f17e9ffe9290c36132a9ebcfbcab3cc479dfad6af3e384cf8f0511c157a16306fc1b4aaca114dd229ee41e5cac889d40aaeb8ead8e981d7a6dc40124c05a33473d2bbf459836519623f5279d733a6709b8a39adbeb10f62d785226b79bc5b63b185648a6350faf9e99fb8132091aa266ffb83a4952063e539be1371377b3909e75d15e3b38ce83a3176cec6bc799f0923f9f5d3008903d85f2193c460b5f19e6f6ea7b9da6fd3027ae6927fc75cd98e28cdf93e757dd28bc9d1116a00c9c7c67425c8e54924dfe911470404442f174b4cfcb2ecf52b8eaeb49063b149a1b7d09b5262e1aa978cd4ee289328da0417fd4e0b3472fca33c284e964052b7f762dbb47271f1780db308b8fb406ac40d49b3f077f0679cb8249e72e9e152194e7eac84e47f18a33a9c9c9ececa123bd6677849483cd3cbedca5ea95253dc48313ab85eaff186805a164eed5ecc71cfb589612c826f579ebb96dbd50f21cf0ca1ece02f15ae587172d6e9475e281008f88a667f82cb84f5174f83cd61e230ccd7c88f79702d3e67edd734364ead88a1cf32ffe5d0d9057594d45b502de38f36b3b2cd6dd22ae1d46fa919a4f6d41b30ba667ce79787e4733ba9c69deb319f2acc069775c245bd4f2509d1e736c268dad18a5c8e332446f76db773e0764065b02b0ec0fd5a98447f0beeddd35dd38de0447322441936f2bab9bc24948502ca6d48f504c3aacfcd3db833ca65f5d0995c18cb39bd67f4d3a2f713912fec119a7dee53a33f1038e1cccdf200d2e00ecbb340b3a76847bea2659879f464d89393e39165c1a48437bd56c6c0eab94d87b8584b3d320d82ed890510e7461988e2855f7268e726404ba1c6bdca51acc0ca0d4a8124bc9db399cdac8a1d452a558032223970a7a385bb3dbf138df00129e330b46c9a2409c9b9c6630d45e8c72652714176e5014af979761acc840d193f2aeed39d81ae24ebab8f3365c6dbaeea12bd2008d463989af72908c82ede72ee6b9537ee6f2b50df009c37439a5ecf7762855f7268e726404ba1c6bdca51acc0ca0d4a8124bc9db399cdac8a1d452a558032223970a7a385bb3dbf138df00129e330b46c9a2409c9b9c6630d45e8c72652714176e5014af979761acc840d193f2aeed39d81ae24ebab8f3365c6dbaeea12bd2008d463989af72908c82ede72ee6b9537ee6f2b50df009c37439a5ecf7763009b9b1b8f426e1215cdf0a6185f969763601d452b3a78dd63512ffdcd8c6203a560de62c18cc2b175fefeaaf95d64c7f4b6029c7dee4d180a30f67d23051bd0707f2ba2d928a45003ee1c596fa9740f8285259868438be4e6a70465c02bcf60bde254168bbaf0209b3578597be2b984dd1cd697dc62ad0db1f0962b7a5292026b79bc5b63b185648a6350faf9e99fb8132091aa266ffb83a4952063e539be1371377b3909e75d15e3b38ce83a3176cec6bc799f0923f9f5d3008903d85f2193c460b5f19e6f6ea7b9da6fd3027ae6927fc75cd98e28cdf93e757dd28bc9d1116a00c9c7c67425c8e54924dfe911470404442f174b4cfcb2ecf52b8eaeb490619ded7dc4a54abb27228d6ff8ec2ec2d9dbdc58f6043e0b74eeb879828b4e1ca1a1dd8094cc89cd0b9a1b77be18bfda0f197a6663dd8731dcf15594730bb03f43dc48313ab85eaff186805a164eed5ecc71cfb589612c826f579ebb96dbd50f2152194e7eac84e47f18a33a9c9c9ececa123bd6677849483cd3cbedca5ea95252ca6d48f504c3aacfcd3db833ca65f5d0995c18cb39bd67f4d3a2f713912fec1065b02b0ec0fd5a98447f0beeddd35dd38de0447322441936f2bab9bc249485019a7dee53a33f1038e1cccdf200d2e00ecbb340b3a76847bea2659879f464d89393e39165c1a48437bd56c6c0eab94d87b8584b3d320d82ed890510e7461988e26aca5b8d5cc815c8bdb40bff5136bb65c4dd63bccc65665dda6871178442f641ec2168d2836e8c0a9c45c140915073ea1f7a75f2d3a127f5a2485c7576c931d216088713d38b145f61e08e24402de1847fa6cd856de9cea5337dac6fc4f722031858f8a5915880113d43068eab5e4c120464be6b6b8bfc06f7ecfcf175873f712ba5d6caedb0ca3ecff2d532c54dea7aa6fa5b62b882ac44af4e105a8d81d7d063ec7f7f7bee86efd50a3aad598a6dc0c1f018f2d323b7cdc1d79757dd662e61a9a26722cc887a6aac413465b72a58103ce703cbf97c847db6abfe607391a9b384bf1896985b1a05f2e2604d3461d58647248824dff9462e74beab00c6ecb7c2ca6d48f504c3aacfcd3db833ca65f5d0995c18cb39bd67f4d3a2f713912fec1065b02b0ec0fd5a98447f0beeddd35dd38de0447322441936f2bab9bc249485019a7dee53a33f1038e1cccdf200d2e00ecbb340b3a76847bea2659879f464d89393e39165c1a48437bd56c6c0eab94d87b8584b3d320d82ed890510e7461988e21f6de687cfdae6d14e6b8c67e02d47e5994de24260f372d217909edf915b50332ce7767ee05179be59fb848c9b93ae22bb73c2be7ce16c04ee75af4a3c090ad0adbabd9f4f70fc6410b65a17e768e5ed9e25575cf8d4509295811b88e63b1d3080a6c21a1572980c8e6d3a9b042347a6c17ca4d34bd1e86003167f08544344321f6de687cfdae6d14e6b8c67e02d47e5994de24260f372d217909edf915b50332ce7767ee05179be59fb848c9b93ae22bb73c2be7ce16c04ee75af4a3c090ad0adbabd9f4f70fc6410b65a17e768e5ed9e25575cf8d4509295811b88e63b1d3080a6c21a1572980c8e6d3a9b042347a6c17ca4d34bd1e86003167f08544344312ba5d6caedb0ca3ecff2d532c54dea7aa6fa5b62b882ac44af4e105a8d81d7d063ec7f7f7bee86efd50a3aad598a6dc0c1f018f2d323b7cdc1d79757dd662e61a9a26722cc887a6aac413465b72a58103ce703cbf97c847db6abfe607391a9b384bf1896985b1a05f2e2604d3461d58647248824dff9462e74beab00c6ecb7c26b79bc5b63b185648a6350faf9e99fb8132091aa266ffb83a4952063e539be1371377b3909e75d15e3b38ce83a3176cec6bc799f0923f9f5d3008903d85f2193c460b5f19e6f6ea7b9da6fd3027ae6927fc75cd98e28cdf93e757dd28bc9d1116a00c9c7c67425c8e54924dfe911470404442f174b4cfcb2ecf52b8eaeb4906230ccd7c88f79702d3e67edd734364ead88a1cf32ffe5d0d9057594d45b502de1cf0ca1ece02f15ae587172d6e9475e281008f88a667f82cb84f5174f83cd61e38f36b3b2cd6dd22ae1d46fa919a4f6d41b30ba667ce79787e4733ba9c69deb319f2acc069775c245bd4f2509d1e736c268dad18a5c8e332446f76db773e07643009b9b1b8f426e1215cdf0a6185f969763601d452b3a78dd63512ffdcd8c6203a560de62c18cc2b175fefeaaf95d64c7f4b6029c7dee4d180a30f67d23051bd0707f2ba2d928a45003ee1c596fa9740f8285259868438be4e6a70465c02bcf60bde254168bbaf0209b3578597be2b984dd1cd697dc62ad0db1f0962b7a5292000000000000000c8000000000000002900000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e4000000000000000600000000000000010000000000000000000000000000002058629123f2d258a72e12ee99888f1a45d6a9ba324e34bfd219e775e73d8ca85f000000000000000100000000000000010000000000000020c0472ed99df8c98e5053970eb2b995e9cc5d45ab50701468216cf9d2b7a47f7a0000000000000001000000000000000100000000000000202aa499dbf9ec8fbcc14b5f1965ed265ddf8ee66d692393ce8fd7241342b81ea20000000000000001000000000000000000000000000000206c4baf98bc80c1abc6c59b8e82f4c2dc23405a6bc1abbc273de0e45984ffb9a00000000000000001000000000000000100000000000000201b96bf994f53f651394f15f5db116e896fa1ab44efe0a6262949e96de58bff090000000000000001000000000000000000000000000000202fa23e2d798b08467838b865973a53e4e19c5b2d80ade19cbb180aec56a9376e0000000000000029000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000000000000000000207d52a1ed95406b53b8d027c776a331c9133187017e9eaa8aef0f41263358ada4000000000000000100000000000000010000000000000020e157ddeb32319921e86efbf2a2199b47e232b751f0c6d0686f24b376402c52ef000000000000000100000000000000010000000000000020590a1c067f1904c9d81311a9eccefe8cbc9f2ef64f32f64836b95d9898871bfc000000000000000100000000000000000000000000000020afbf1f71bc2124f671aca446e85c5b2a26b711122acb80fefe81dd090fdb8e9a00000000000000010000000000000001000000000000002046692d64e298cf42f3e0cf09149e8b1ba6093100c0f4d1501fee627da591f20e00000000000000010000000000000000000000000000002072c42711719626fc8bcaf082271589b458b73b63db94ea53c13e43ca03482214000000000000002900000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d0000000000000006000000000000000100000000000000000000000000000020519b47e936fd7dd3509bac59d50c2f5d00349fd7b18b600682a79ef8e9dde9e900000000000000010000000000000001000000000000002047d66bc3641d092be7a62f230786289855e9d04deda0ea41711ebbaec9dd4b2600000000000000010000000000000001000000000000002083de1dd42585e79045ac01da3006a3e8ee12391cf0548c87088f09268f2f6907000000000000000100000000000000000000000000000020463fbc9d5384e010009b169ceb3ef07bf1aae15d890cb1f5c86ec0fc5db6441a000000000000000100000000000000010000000000000020b865081822324014a2ad2adb025c6233367d552e7b8d5c65dcb3c00b68fdb2770000000000000001000000000000000000000000000000208b04487c0e92a27b8ce6e22f25723473ab966eb251464fa6d919c39ac29a60ff000000000000002900000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000000000000000000020fa0f395ab9bc7ab5106727402b0ed92bf23b1512aafcaa97d28e06a231cae72b000000000000000100000000000000010000000000000020b5a598bf5cdfea2c7a80873dbcd171f6409727492db5277d4913905bd327383100000000000000010000000000000001000000000000002072af80d275908afd7b3c050fc11cd485ccaf9b974e2bf29dedea8e9063ee262b00000000000000010000000000000000000000000000002059e0cffb1b66783ce400ea9e93bbaeaf0fc9283c9cfd578c65daa4375f5e01900000000000000001000000000000000100000000000000201da2e84c157ae73f74b662421f72dc7af8ef5d8001e6e962a5538cb1a53a8321000000000000000100000000000000000000000000000020a00b07acea464ec37ab41d5472f9101cc13a3cdfaa5f141199b9dad4efa0ccc30000000000000029000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000000000000000000020a8e4daa8548af23f485497cdc36775580929300da1b73351dc656e5b0382c07300000000000000010000000000000001000000000000002051947b9a7065dfad8b041b1bd1f198b163cc4de9a92790651b8242d8a3c4bad20000000000000001000000000000000100000000000000208715bf4aa5c6570da98e62c31a38256c37e95853c4329fbf12fe2809f2cce7ae000000000000000100000000000000000000000000000020d2ace2c01e400a2af009a43598dd9e34d359aa6ac5e1e4e2607befbfd9a370180000000000000001000000000000000100000000000000209cabf053781e02384f83b3ede75bfaadda9578d1f80727f379b0adbcf4e706d200000000000000010000000000000000000000000000002078cb1457e1c5d6fa6b6138eeb2c7dfa980dd7fa53f0e6b7e1e5bdc43f459f12c000000000000000500000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e40000000000000006000000000000000100000000000000000000000000000020990d893ecd772d12e9fdffb40e63753b32fcc51d4f59a555cac87e8f8a6043c3000000000000000100000000000000010000000000000020e7a919c08bc1886b9f34ef01145d0fbc9283cbdd10f9c9a6df5f218a9335e593000000000000000100000000000000000000000000000020a0b1b5fc08c2e02f83f2f726b41a2505988e2197135ad1552cb352ec42efe3ee0000000000000001000000000000000100000000000000206a3d92b216e8d40712b4abc94e0d246cf0b1c2a650d3b728de1e144f5f135dd1000000000000000100000000000000010000000000000020cf7596a2151e6ecd0152bcfa96e547a86c616698a13eb311a31678d998a719af0000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000005000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000000000000000000020c8826e33aed28fd2c1375abbe11a76f9c603f28fa38275f3aaeae377e1be2acf000000000000000100000000000000010000000000000020c271469aaf67f254fd6d69e57975f51629fbfc3fb7b1bc0a9cbf0a8aa43a920400000000000000010000000000000000000000000000002073d36898ce02b74a10c4aef7a02a948616b5a7d0b174648f8ea70a30ae33c754000000000000000100000000000000010000000000000020012e51ceac3da1ee2785f84acb427d436432958c56fa02ff109defc16f64c3e100000000000000010000000000000001000000000000002031809213d4a7c0f0b7fbd21766c584377ac625d92403fd3c2e9421ca27c907db0000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000000500000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d000000000000000600000000000000010000000000000000000000000000002022e0bb4373d41696cc13d575e304948c004602bceee1df3d4e14b3294da86544000000000000000100000000000000010000000000000020d7692edfdb30d05016809594198c5437c534ad44354aa7223798a174037f47fd000000000000000100000000000000000000000000000020df64ba374100bd613493ca498420eebea8b6233d2c06bf756f9d2aaded4e0177000000000000000100000000000000010000000000000020c784e893e97965d1954bf00e2fab7b72fbb7d86352817409c7f61f9ee3d4be25000000000000000100000000000000010000000000000020ca05ed908befc970acc53cea33e55589e5965d8039c9e076f7ac7b36a36f6455000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000000500000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b32300000000000000060000000000000001000000000000000000000000000000209aca73648b728f0b18bfc2631867994acfbf68ac16b6844ee25995bb4c868ce5000000000000000100000000000000010000000000000020673319709a01475957ab85f17f6906b688c87bbe9cbf6be0fe391e55c49cf5580000000000000001000000000000000000000000000000206f2d3cf07495881ebe39657368b83e6af33701bf95947c06cc58dae5400eb216000000000000000100000000000000010000000000000020429ead810e13405c3b60212aa5eafa299f1430976011b3956cf9ba62ffd1d91d0000000000000001000000000000000100000000000000206d6a12b490e789e5e3407255a61b3605485fc28f4ae6697fdbc41f4a62ac030e000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000005000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000000000000000000020964613cb5e3b9cd3060439c13370a0b642bbda9f45189b6ae8899e5efe6a14130000000000000001000000000000000100000000000000209bfc3983cf43dceb48e11d90c256d5fc5afa7bb45818c6b058f83285ede9cd890000000000000001000000000000000000000000000000203d7a086bd38d4b04c47ab69c98301d88fcf9f0231ec623f6867e04d98ab06e37000000000000000100000000000000010000000000000020a36932769c7f9a976b385d2c4064689e893729c460a7115012784ced44d4169f00000000000000010000000000000001000000000000002010edd26513dde9e2d4d9edde73c0914d7c3f4f5c44106edb1335190bd6a8675d00000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000003000000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e40000000000000006000000000000000100000000000000010000000000000020ff2ad6a074e79edefd8e3c95c04cb3127b34667be675c250f91d2c0f0e273c3d00000000000000010000000000000001000000000000002031821516bcdf7998ee06c8f241bd90e0d6b6bf38a228e24c1af484501fe172a200000000000000010000000000000001000000000000002002988dea686d413839659267ab764d4c76addd0c300316526c335ff617a319c50000000000000001000000000000000100000000000000208af6dbd46e837507be222c82ede0029250a5e53a9cd518f0935fffb99bb12ea7000000000000000100000000000000000000000000000020821cb4e5ed60f8ccefe58fd9ac3136abe727ed631fb9d4a33cf4415e024f9f020000000000000001000000000000000000000000000000202fa23e2d798b08467838b865973a53e4e19c5b2d80ade19cbb180aec56a9376e0000000000000030000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000010000000000000020afc82c776c120bf2a2b5159114c58acc4aa315366169a3a0e4e20d043faa09c30000000000000001000000000000000100000000000000201fbf7fa1d2af583363d72c05f4e59213b5effd0e7c70ee969c104a58c008083e00000000000000010000000000000001000000000000002059a733cc0ae55d2ed3aff8f2a001e62d0e11d7d789664610f47f3bff365739ea0000000000000001000000000000000100000000000000202fc72a740ecbb1b330d4eee963085e5afe7bf5218d75e2f6d3eeb20efce57503000000000000000100000000000000000000000000000020e9da22de8ef9950c7c8ed7994a057a53da129fef638def79baaad47992e89bce00000000000000010000000000000000000000000000002072c42711719626fc8bcaf082271589b458b73b63db94ea53c13e43ca03482214000000000000003000000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d00000000000000060000000000000001000000000000000100000000000000206a74390fe294c195cc89d68fbda15ee86ad3e15c293fbacb93ecbd91953dc902000000000000000100000000000000010000000000000020bbd0374a0d0edaadc6eaf34295366e761ea3c67574c4b7004f34d8044c02e44e000000000000000100000000000000010000000000000020d359b856a918202e2835d24df0d6b65e33afd2de9cb50af3fce50a126cf613990000000000000001000000000000000100000000000000203589e38940756f57b41d7b13fcdd382ec64fb407a8c7f1a2c95141f36d7fee6800000000000000010000000000000000000000000000002030e60438b48a10fa93ba2b2271e743883ab2776244e2b3e7ee271ed6db1f2e530000000000000001000000000000000000000000000000208b04487c0e92a27b8ce6e22f25723473ab966eb251464fa6d919c39ac29a60ff000000000000003000000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000010000000000000020b148b00327df3273c96aa9f6404e9ad5ca80ca3b2973eb8c98afc05a0085df75000000000000000100000000000000010000000000000020633a45788131b5c50aea804ad386ce8bc8712bffc2584e8b3d7dca26668700c60000000000000001000000000000000100000000000000209cfb9bfb1d5055fa0419973bf7445a150fb5b8d951827f1a57ded35cb038bc1a0000000000000001000000000000000100000000000000204574ffa0b5387faf736ccd8e35a85b2364513eb7b4efb4065cf069df5358b51b000000000000000100000000000000000000000000000020ef7f27ef0af7f3384d95dccf464f81b3ada2d68b1c7b4e875db629973a25da5c000000000000000100000000000000000000000000000020a00b07acea464ec37ab41d5472f9101cc13a3cdfaa5f141199b9dad4efa0ccc30000000000000030000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b300000000000000060000000000000001000000000000000100000000000000203716fec60db85f903061b2944babdcc3b47bad31f13acebd8cfe168585199b550000000000000001000000000000000100000000000000205d9d1935ba1899bbbf58317292518cd70fe480a1ab392a921a8b7e90de63376d0000000000000001000000000000000100000000000000204ca5a5b6ed82f63497a18e8e2e47203e7381c9e0f82f25549bed96e8a415c9ec0000000000000001000000000000000100000000000000208381a643e47a93238bd65404deffb2a516ca70cdb3c14626ec7194d84b5face30000000000000001000000000000000000000000000000205d37818349b6a8b2090fc629ee6549964519ab55586df49d7740da0a7f06a2f200000000000000010000000000000000000000000000002078cb1457e1c5d6fa6b6138eeb2c7dfa980dd7fa53f0e6b7e1e5bdc43f459f12c000000000000002400000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e40000000000000006000000000000000100000000000000010000000000000020cc89ed7e96eb511c33c6d9227ff9cfc0d9ba8b5852b848b642de0179c0cc0100000000000000000100000000000000010000000000000020cbe64a56e4d843ebf1f53cb31790aa9e70002079b4fa236cbb68f50881cc158e00000000000000010000000000000000000000000000002055c308be9438db42c91d1431d01b869ac37750ba0513a5170220112753ea0a6d000000000000000100000000000000010000000000000020a5edd8ba3a02c79d2a439b5c19c698d48a65e1da6ea81f91e95da0f3870facfe0000000000000001000000000000000100000000000000201b96bf994f53f651394f15f5db116e896fa1ab44efe0a6262949e96de58bff090000000000000001000000000000000000000000000000202fa23e2d798b08467838b865973a53e4e19c5b2d80ade19cbb180aec56a9376e0000000000000024000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000010000000000000020d1be6851b44a9589b1e8dca30dfd175d1c3bf8269326d4baf8fc441997a4872f000000000000000100000000000000010000000000000020180fbb0ee992384fded4a309443f6a9a42285cb1dd7d90cf8797e07006750d9a00000000000000010000000000000000000000000000002094bfaa799c5496d89c7fba1c0074bf53e44026b1e3dfcc51a0820cda8b8b592e00000000000000010000000000000001000000000000002091ef79e3954e71b043bab2f4f7563da4ffcc85b3b6a3abb402389ce312ae3a1b00000000000000010000000000000001000000000000002046692d64e298cf42f3e0cf09149e8b1ba6093100c0f4d1501fee627da591f20e00000000000000010000000000000000000000000000002072c42711719626fc8bcaf082271589b458b73b63db94ea53c13e43ca03482214000000000000002400000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d000000000000000600000000000000010000000000000001000000000000002071ffaeb9885a750e231faa692c4d8d1c0aace7c72c3f6b8619faf19ef418a6610000000000000001000000000000000100000000000000208574500fe91c1384c1fa73cab259a718b780095f61c469cfe154e83e1f6d971b0000000000000001000000000000000000000000000000205821e6171d155bf5aafbdc8474a3a9c33f58e247c6f3c54f71d8c9caaf009eb800000000000000010000000000000001000000000000002013307d874fafd2c736df4f1675c3fc7573fd05858f421470013ba3aa52dcdcac000000000000000100000000000000010000000000000020b865081822324014a2ad2adb025c6233367d552e7b8d5c65dcb3c00b68fdb2770000000000000001000000000000000000000000000000208b04487c0e92a27b8ce6e22f25723473ab966eb251464fa6d919c39ac29a60ff000000000000002400000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000010000000000000020800642fd8b281fe765779764b969c0469953b1f145b09fe722a523fac89a593d000000000000000100000000000000010000000000000020fa5e77b5e61842f96ba2c55552ebde460a535e5cbd00cbfad9862e3cc944e380000000000000000100000000000000000000000000000020c05b0bfce2b5cf26286b63fee5b1ce52f6fd2d6f3b79f0407ca7ced961abd5100000000000000001000000000000000100000000000000205333dabae5459fcb448fee6926384a3bafc2af8b75f276339e9b28108bb4995d0000000000000001000000000000000100000000000000201da2e84c157ae73f74b662421f72dc7af8ef5d8001e6e962a5538cb1a53a8321000000000000000100000000000000000000000000000020a00b07acea464ec37ab41d5472f9101cc13a3cdfaa5f141199b9dad4efa0ccc30000000000000024000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b300000000000000060000000000000001000000000000000100000000000000204a59681bfc8b7f2ddeaa99aedfdc7e5e70701ca7badbe758a17ae757dbefb30900000000000000010000000000000001000000000000002038d401f7d334e803a12b1a1837a99bc9dca4a5e0892439c48a1fc4763fb2fa970000000000000001000000000000000000000000000000200953edfc6e8ff0936b8105e6357c9590e4f20e0497be561dc97db9d13e014c0d000000000000000100000000000000010000000000000020cd1cbe0f3f5a57ed48862a459d119ab55aa7fbf2685055ced90ff45d1e7cd0720000000000000001000000000000000100000000000000209cabf053781e02384f83b3ede75bfaadda9578d1f80727f379b0adbcf4e706d200000000000000010000000000000000000000000000002078cb1457e1c5d6fa6b6138eeb2c7dfa980dd7fa53f0e6b7e1e5bdc43f459f12c000000000000001100000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e4000000000000000600000000000000010000000000000000000000000000002038da13f950a83e854140aeeb8d7d855365d1831db0df3ca1812646285f5adea300000000000000010000000000000001000000000000002028d67512ee7bfe65bfa26a202678bc24f81966e94f128ba5c7682a6b24f6f9d70000000000000001000000000000000100000000000000200dbc62aa1c5a2b5774146ca475f9016fc2bc6babca24827b52d365f3e31a52ef0000000000000001000000000000000100000000000000201796429c8b13ebc59c2f83b796b3b926978c70fec3627c1ec454c8494358fb2d000000000000000100000000000000000000000000000020c0476d0bd1bba12844993b2b90c4d4e74f42cb95a863a33400c0b3ce5d7afb970000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000011000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000000000000000000020468f06c1f236183a515105519fbeef0dc0cd6bdc2e55b294879adbb55e868ace0000000000000001000000000000000100000000000000201582706b99d3c6b911e67ea7d6a34e164d24dbad32d8fc939431adff95f43354000000000000000100000000000000010000000000000020871dc37c07c58b6181062c00bcd94fc2658b4211db7080cd968a495924987ff100000000000000010000000000000001000000000000002085b5145a72d3b5cc42ebd3887f2b0d8b066dd487afb89617f433386cd39ad32e0000000000000001000000000000000000000000000000201f243121b9b86ee340c8e4e148b031fbfec331be88bb0e695bd3254fd9dedc460000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000001100000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d000000000000000600000000000000010000000000000000000000000000002071c424fc59ab1b8a34c74ab53b07c06eec015e3eeb5567817b422ae6bc33384600000000000000010000000000000001000000000000002006bc6b416a0465feae1ad27e6ca615523d4da0c02f918ef1751a813d86df368000000000000000010000000000000001000000000000002021ed4d241d7ada67d897e5648aef0f3eb362a70c914a67454c5bf7df12159d390000000000000001000000000000000100000000000000204bbee7125d792587a9c1a2f857d5319e703fb6396be7cba35871f693d7de4ce00000000000000001000000000000000000000000000000207c9185dc31c96b43974def3ef513a5c2fa4019e8f4cd70c66e8489740340b2d7000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000001100000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b323000000000000000600000000000000010000000000000000000000000000002016ce4572b86ff54f0d0bf0fe24c081623e0493047e14e77dcb9be223881833e2000000000000000100000000000000010000000000000020a8080a1341ad590ef497d2f6fc4865a8b9df88c008d59ad6170ea9fbd0e512110000000000000001000000000000000100000000000000202cc54ec7a922ec427d47d576af2ccd9d172c897ec669c55733377e0c6be061070000000000000001000000000000000100000000000000206c36dc888e2b9eea00e51c0910ca1a39fed4c567e353a843c78f1449b7b894ec000000000000000100000000000000000000000000000020c261b56a4b700b9884a920f66b25b3f4e5b6af88658d82bd2b16f6956d7a628f000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000011000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b3000000000000000600000000000000010000000000000000000000000000002086844284d373dca6580bcc9d6581b82472f1d97b9d19145a3e120a6d2aa7a8470000000000000001000000000000000100000000000000207a02131c7ef5ff047d998919008ec2176e361ea2b623572273bcb0bc7af6fe6d000000000000000100000000000000010000000000000020d186153ca6161b9936121d74b366a8a3b767ad338e41cd240ff4a14c033065fc00000000000000010000000000000001000000000000002057d66fcd5a6afc7d65bf36d032fddd74693048af41e04438e66c2fac0f88b93200000000000000010000000000000000000000000000002031c46556a8536b0d3fe56fdfff2cfb21049ba3d5264152ba04673f2caa7e535700000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000001f00000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e40000000000000006000000000000000100000000000000000000000000000020aea0257863e10318831d52f58d53aabe9f4e5ce827cf72ebf7c21cfd8e530d83000000000000000100000000000000000000000000000020f08a8095a81b042559c277caa120e67c6db10f76a1e996e9d6210a952f768f670000000000000001000000000000000000000000000000203c9b84ea790b2a2a39d9611d6fffe81b8f6a4780bc49ceef9d562efb8bb0e3c100000000000000010000000000000000000000000000002025970c30f2158b64f6db602006cf8ec3088a6951235f1463b4ec26472e7bf04e000000000000000100000000000000000000000000000020c0476d0bd1bba12844993b2b90c4d4e74f42cb95a863a33400c0b3ce5d7afb970000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f000000000000001f000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000000000000000000020ef2c1053a8eac5911150c672e5f8fc18606781dbf3f5fde508e9a9a948e5cd660000000000000001000000000000000000000000000000209ac57aee00b058ea0cd83781c86a1015291ec82b4b2210f70d7901cd6c310e0b00000000000000010000000000000000000000000000002023d97489db03b380974b7d10e10c0a8f85c4800f21e95c23e7827615a90c923c0000000000000001000000000000000000000000000000200c4338e456e8a386ea42ad72cd73d95178039fdb76ee7e286661fbbf95bb3b040000000000000001000000000000000000000000000000201f243121b9b86ee340c8e4e148b031fbfec331be88bb0e695bd3254fd9dedc460000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000001f00000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d000000000000000600000000000000010000000000000000000000000000002052fb9d8cf82b849d3cb1b9ef6cc42b63b642c872c76a2b6b241def6417ee88a30000000000000001000000000000000000000000000000207b9939446a1c36b2743389f20671740aa643050f2062f919c75d4ec5eb152be600000000000000010000000000000000000000000000002083b89a63fb02770e2f72bbc11c0bfed0438afe2b97dafc63d6b272c56e3f2360000000000000000100000000000000000000000000000020a978e635bc01e37323e8daa22db845c6f4b65dbff8aec0ddee43de3cb433d5d80000000000000001000000000000000000000000000000207c9185dc31c96b43974def3ef513a5c2fa4019e8f4cd70c66e8489740340b2d7000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000001f00000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000000000000000000020d37df8c81436203bdaead4b93d64c239ca30f2778e3f292822f30a6aea67342900000000000000010000000000000000000000000000002075413072637253ff050faf3a568c9b8a14ad4613c28e3bd7790ab9dbce3d7f090000000000000001000000000000000000000000000000201480dd9071ccde4a4f721bb5a64cbd7ecff12cfd29018b3d672f16038683d05000000000000000010000000000000000000000000000002049d1d86419f38c5e84555595d210426f3d97ab19505fa1438516e93a0552e041000000000000000100000000000000000000000000000020c261b56a4b700b9884a920f66b25b3f4e5b6af88658d82bd2b16f6956d7a628f000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed000000000000001f000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000000000000000000020bc42ad1aedbf8ba5a58cb2f9480c3e0895e6505ce614ab2b1e622dd9f0a378de000000000000000100000000000000000000000000000020c88770ba99897f3942d7c5126a4d6f829ae6d83aa91e1cef6ce2743b675fb745000000000000000100000000000000000000000000000020a4f30078f6c82eeb23635e8509271f741f7df1496de69591523572481398a01a0000000000000001000000000000000000000000000000207f6c04f2a2686f09f8ed1d6818a1534af529f47bed8bb55dbf5eafcc3ebff42400000000000000010000000000000000000000000000002031c46556a8536b0d3fe56fdfff2cfb21049ba3d5264152ba04673f2caa7e535700000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000002b00000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e400000000000000060000000000000001000000000000000000000000000000201632aaa1ca5d3d00008831d7ddb00a0b7e559c9263adfc06b37775acdebd098d00000000000000010000000000000000000000000000002081d47b65a940129bce279261185fdc142445e7ea42fc847b1732e3a3f0f866eb0000000000000001000000000000000100000000000000202aa499dbf9ec8fbcc14b5f1965ed265ddf8ee66d692393ce8fd7241342b81ea20000000000000001000000000000000000000000000000206c4baf98bc80c1abc6c59b8e82f4c2dc23405a6bc1abbc273de0e45984ffb9a00000000000000001000000000000000100000000000000201b96bf994f53f651394f15f5db116e896fa1ab44efe0a6262949e96de58bff090000000000000001000000000000000000000000000000202fa23e2d798b08467838b865973a53e4e19c5b2d80ade19cbb180aec56a9376e000000000000002b000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000000000000000000020cc3de3a03159d8624a33aa3d781a050ad5afec79ed8b9d7e30455c19f64e67b20000000000000001000000000000000000000000000000205462ee42647fe7f07b153d6d12be88e53621ceda74c8f12c8226be36cfafdf2b000000000000000100000000000000010000000000000020590a1c067f1904c9d81311a9eccefe8cbc9f2ef64f32f64836b95d9898871bfc000000000000000100000000000000000000000000000020afbf1f71bc2124f671aca446e85c5b2a26b711122acb80fefe81dd090fdb8e9a00000000000000010000000000000001000000000000002046692d64e298cf42f3e0cf09149e8b1ba6093100c0f4d1501fee627da591f20e00000000000000010000000000000000000000000000002072c42711719626fc8bcaf082271589b458b73b63db94ea53c13e43ca03482214000000000000002b00000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d000000000000000600000000000000010000000000000000000000000000002064e018bb06bd8190f4f5a2ac9e85385295745b4e66d48cdadbb360196a7b0c830000000000000001000000000000000000000000000000206cf89f246ab28e406d650d1c153e49f92ec9675fddeae1bb665e1febe5bda31800000000000000010000000000000001000000000000002083de1dd42585e79045ac01da3006a3e8ee12391cf0548c87088f09268f2f6907000000000000000100000000000000000000000000000020463fbc9d5384e010009b169ceb3ef07bf1aae15d890cb1f5c86ec0fc5db6441a000000000000000100000000000000010000000000000020b865081822324014a2ad2adb025c6233367d552e7b8d5c65dcb3c00b68fdb2770000000000000001000000000000000000000000000000208b04487c0e92a27b8ce6e22f25723473ab966eb251464fa6d919c39ac29a60ff000000000000002b00000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b32300000000000000060000000000000001000000000000000000000000000000203188d385bd0d8c68b465b67024cc3b16e47c02563bfa664aebfbffe418128ec20000000000000001000000000000000000000000000000200d1df8b3ee28188121c8c0702d8c75ba0962a4441daa471d7e494bc6832ebd5700000000000000010000000000000001000000000000002072af80d275908afd7b3c050fc11cd485ccaf9b974e2bf29dedea8e9063ee262b00000000000000010000000000000000000000000000002059e0cffb1b66783ce400ea9e93bbaeaf0fc9283c9cfd578c65daa4375f5e01900000000000000001000000000000000100000000000000201da2e84c157ae73f74b662421f72dc7af8ef5d8001e6e962a5538cb1a53a8321000000000000000100000000000000000000000000000020a00b07acea464ec37ab41d5472f9101cc13a3cdfaa5f141199b9dad4efa0ccc3000000000000002b000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b300000000000000060000000000000001000000000000000000000000000000205f6723eabfc6e98e47719c542759b9340243f2d17c33a7d3bd39900c9a268fc2000000000000000100000000000000000000000000000020b1d7bb230d848f2a86e22fa061e670a9113c5a3474fb292c97327428fcea62700000000000000001000000000000000100000000000000208715bf4aa5c6570da98e62c31a38256c37e95853c4329fbf12fe2809f2cce7ae000000000000000100000000000000000000000000000020d2ace2c01e400a2af009a43598dd9e34d359aa6ac5e1e4e2607befbfd9a370180000000000000001000000000000000100000000000000209cabf053781e02384f83b3ede75bfaadda9578d1f80727f379b0adbcf4e706d200000000000000010000000000000000000000000000002078cb1457e1c5d6fa6b6138eeb2c7dfa980dd7fa53f0e6b7e1e5bdc43f459f12c000000000000001900000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e400000000000000060000000000000001000000000000000000000000000000204d7b507ecba473c6ce9e23d9fcacd70ad6b224867b684df6ca7056ed7b5bac8d00000000000000010000000000000001000000000000002047f783916f4b4a00d70f60a02cfc754c22300fbbbd08baaa3b339fb1eca3affa0000000000000001000000000000000100000000000000208dcba5c31e4dfcb434af5f06cccc7911b7d304ae3f553f7c1f040e38d13debb400000000000000010000000000000000000000000000002025970c30f2158b64f6db602006cf8ec3088a6951235f1463b4ec26472e7bf04e000000000000000100000000000000000000000000000020c0476d0bd1bba12844993b2b90c4d4e74f42cb95a863a33400c0b3ce5d7afb970000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000019000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000000000000000000020b43e69cefcd888f538abdbe07a841b5d9730d1280808b41c4cb2ecdaafea36ec0000000000000001000000000000000100000000000000206baebb09ef9df5fca11c05b6266f6d7089ac7181add20f3df5419d603aeabf5b00000000000000010000000000000001000000000000002052e2485ac628276f50964c89426ea5ed80da4a7f45529dc19237df746c5255aa0000000000000001000000000000000000000000000000200c4338e456e8a386ea42ad72cd73d95178039fdb76ee7e286661fbbf95bb3b040000000000000001000000000000000000000000000000201f243121b9b86ee340c8e4e148b031fbfec331be88bb0e695bd3254fd9dedc460000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000001900000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d00000000000000060000000000000001000000000000000000000000000000209a3766e2c587a6c91c76fd52ba1a96db6d2b5075f9b0dc98a4eb65f2796c61c3000000000000000100000000000000010000000000000020b73290daf6dea64b6cb10a791a646899090c49102522ab61acb42107e0ad2d4f000000000000000100000000000000010000000000000020e6a403d38bcd3025c82cb1e9361298d1b3eb297b3bfccc5381624711ec1d4a29000000000000000100000000000000000000000000000020a978e635bc01e37323e8daa22db845c6f4b65dbff8aec0ddee43de3cb433d5d80000000000000001000000000000000000000000000000207c9185dc31c96b43974def3ef513a5c2fa4019e8f4cd70c66e8489740340b2d7000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000001900000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000000000000000000020cf2e32da7a1e377e91f547fd0e3e31fd7e4691633d9cb6d4a58346303599260c000000000000000100000000000000010000000000000020ac555debdb185439b59201de7a24d0519cb16d9560704e0173b985c0844fd483000000000000000100000000000000010000000000000020c995be1ce6be7157e0b7c8bb50e229e783719026072b921367be2b828004463c00000000000000010000000000000000000000000000002049d1d86419f38c5e84555595d210426f3d97ab19505fa1438516e93a0552e041000000000000000100000000000000000000000000000020c261b56a4b700b9884a920f66b25b3f4e5b6af88658d82bd2b16f6956d7a628f000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000019000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000000000000000000020a45cf00219b7c4c429be8ba24de58cbdc09ff5729bfa6bf63b558a6ab0e1a952000000000000000100000000000000010000000000000020d930027c9ddd09bd4dcaac24b2d27caa0a309aafb08500f208e59fd9696bfa54000000000000000100000000000000010000000000000020727f91716bfcaaf8aff898f8ee4bff4560592e98b4bcfc385c449fc1f35af7b20000000000000001000000000000000000000000000000207f6c04f2a2686f09f8ed1d6818a1534af529f47bed8bb55dbf5eafcc3ebff42400000000000000010000000000000000000000000000002031c46556a8536b0d3fe56fdfff2cfb21049ba3d5264152ba04673f2caa7e535700000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000001600000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e400000000000000060000000000000001000000000000000100000000000000209c9f68f179d5614145d954a25ca3489db56fb3665016d4a567b890a88fb6a75300000000000000010000000000000000000000000000002044a1806f651125fbbfa67d925626256465e7abb7a2ae7d8ef65e4df52570a1cb0000000000000001000000000000000000000000000000203033e580e5ecf18a4e51f0ecf90e49f75d07abf49e6e1f2fb0f6f3f21b2b13890000000000000001000000000000000100000000000000201796429c8b13ebc59c2f83b796b3b926978c70fec3627c1ec454c8494358fb2d000000000000000100000000000000000000000000000020c0476d0bd1bba12844993b2b90c4d4e74f42cb95a863a33400c0b3ce5d7afb970000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000016000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f409000000000000000600000000000000010000000000000001000000000000002093be386e76e4bbd538c0305503a97a28483a1b5626eb2699b26634be0d0882270000000000000001000000000000000000000000000000200e6be21a80969c82d9a8a648fd8c8b22ad3b74446c59e3ba88884dbdd7b307370000000000000001000000000000000000000000000000200fe86f07f5500c2b5e7c84736dc58b948b12731c0c53ee6e0bcf4e87b862641a00000000000000010000000000000001000000000000002085b5145a72d3b5cc42ebd3887f2b0d8b066dd487afb89617f433386cd39ad32e0000000000000001000000000000000000000000000000201f243121b9b86ee340c8e4e148b031fbfec331be88bb0e695bd3254fd9dedc460000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000001600000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d0000000000000006000000000000000100000000000000010000000000000020e66cdfb0a64ca7f93f454c0e9699c009da1c3cc8231193bb8fffffcc42233c6a000000000000000100000000000000000000000000000020058ad57f2267f5915e9512b529b6b6a865d2d80f1db8107bfa704eaf5975fb2000000000000000010000000000000000000000000000002094f709638b3edb79f28d5546efd1d20615276922b29a850f63756fb3ca0c75990000000000000001000000000000000100000000000000204bbee7125d792587a9c1a2f857d5319e703fb6396be7cba35871f693d7de4ce00000000000000001000000000000000000000000000000207c9185dc31c96b43974def3ef513a5c2fa4019e8f4cd70c66e8489740340b2d7000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000001600000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000010000000000000020d39900d0d3640f1fd480bc288d7a830b41c7bee12c77a9e72f5e2ed30326067c0000000000000001000000000000000000000000000000202d0665c8f29e372a750e6cd91c673df89ec607d3915ac350e3b9d697a08ca3a7000000000000000100000000000000000000000000000020717385618c24c857967504bf3b4790c277d34c10a2053f8387239b28978d282a0000000000000001000000000000000100000000000000206c36dc888e2b9eea00e51c0910ca1a39fed4c567e353a843c78f1449b7b894ec000000000000000100000000000000000000000000000020c261b56a4b700b9884a920f66b25b3f4e5b6af88658d82bd2b16f6956d7a628f000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000016000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000010000000000000020db745643fb4f1b6a9143171d941835cd2a49f22b8df13eb8db0fa3266cb99fb400000000000000010000000000000000000000000000002046b00ad7e24abe5714eee2a57bfb6969d2c5459ff04f4e726e1955cac69c891700000000000000010000000000000000000000000000002030d66f767abd1d0b73d7b3ea7c74252212fb4d88171febb5c5e5ed47357253ad00000000000000010000000000000001000000000000002057d66fcd5a6afc7d65bf36d032fddd74693048af41e04438e66c2fac0f88b93200000000000000010000000000000000000000000000002031c46556a8536b0d3fe56fdfff2cfb21049ba3d5264152ba04673f2caa7e535700000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000000700000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e4000000000000000600000000000000010000000000000000000000000000002026b66d7e03a4d5b48ae8e8d0c56df76207ef1ce1d29d5260ce30d65e651eeecd00000000000000010000000000000000000000000000002041765ff716fe1ade091e3145b175f4ffe11c5f5f8c2b3516e6844825d7ad85a5000000000000000100000000000000000000000000000020a0b1b5fc08c2e02f83f2f726b41a2505988e2197135ad1552cb352ec42efe3ee0000000000000001000000000000000100000000000000206a3d92b216e8d40712b4abc94e0d246cf0b1c2a650d3b728de1e144f5f135dd1000000000000000100000000000000010000000000000020cf7596a2151e6ecd0152bcfa96e547a86c616698a13eb311a31678d998a719af0000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000007000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f409000000000000000600000000000000010000000000000000000000000000002049212a4ce342bcb9cd5b4dc13d2f24ecda9cf56d9986734ebb46413d7bb80e5d00000000000000010000000000000000000000000000002016aeeed1ee1e37f4daa74703e5398e5d042ccc2ab35d37afef2a6cb69b49c80700000000000000010000000000000000000000000000002073d36898ce02b74a10c4aef7a02a948616b5a7d0b174648f8ea70a30ae33c754000000000000000100000000000000010000000000000020012e51ceac3da1ee2785f84acb427d436432958c56fa02ff109defc16f64c3e100000000000000010000000000000001000000000000002031809213d4a7c0f0b7fbd21766c584377ac625d92403fd3c2e9421ca27c907db0000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000000700000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d000000000000000600000000000000010000000000000000000000000000002090fe290bf7cbc68b685c2586b5e68238f845b38295f7b257b5ebfd4a17e4afec0000000000000001000000000000000000000000000000205294e04c7f57cc6d4c8265a54665b5a1f2a62ca7a37e1149665ac102cbdeb4f2000000000000000100000000000000000000000000000020df64ba374100bd613493ca498420eebea8b6233d2c06bf756f9d2aaded4e0177000000000000000100000000000000010000000000000020c784e893e97965d1954bf00e2fab7b72fbb7d86352817409c7f61f9ee3d4be25000000000000000100000000000000010000000000000020ca05ed908befc970acc53cea33e55589e5965d8039c9e076f7ac7b36a36f6455000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000000700000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b323000000000000000600000000000000010000000000000000000000000000002094edefd83fd1ecfd9b1cc6ae5d9484b466107747132b3db765d7c6ba27332619000000000000000100000000000000000000000000000020069d44776ba9b0c01a51910066aa9230fa705da21522f7bce8805f74a4a1b04b0000000000000001000000000000000000000000000000206f2d3cf07495881ebe39657368b83e6af33701bf95947c06cc58dae5400eb216000000000000000100000000000000010000000000000020429ead810e13405c3b60212aa5eafa299f1430976011b3956cf9ba62ffd1d91d0000000000000001000000000000000100000000000000206d6a12b490e789e5e3407255a61b3605485fc28f4ae6697fdbc41f4a62ac030e000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000007000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b300000000000000060000000000000001000000000000000000000000000000207b8e7cd0a89be91078a018e04f1983f6be782daeb373785e756e04770e84921d0000000000000001000000000000000000000000000000203252a96f4ab629cc86ec0e4883214fea68ff621483740b60c0bc29f602ff43b50000000000000001000000000000000000000000000000203d7a086bd38d4b04c47ab69c98301d88fcf9f0231ec623f6867e04d98ab06e37000000000000000100000000000000010000000000000020a36932769c7f9a976b385d2c4064689e893729c460a7115012784ced44d4169f00000000000000010000000000000001000000000000002010edd26513dde9e2d4d9edde73c0914d7c3f4f5c44106edb1335190bd6a8675d00000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000001d00000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e40000000000000006000000000000000100000000000000000000000000000020a29d329de349c08783102e1e2ebb538380cde0620348dd7dc122d955e6aa4fa7000000000000000100000000000000010000000000000020f49c977f2b28edaece65e109dec4da08ee8eff546c65598210fdc1cb3fd9371d0000000000000001000000000000000000000000000000203c9b84ea790b2a2a39d9611d6fffe81b8f6a4780bc49ceef9d562efb8bb0e3c100000000000000010000000000000000000000000000002025970c30f2158b64f6db602006cf8ec3088a6951235f1463b4ec26472e7bf04e000000000000000100000000000000000000000000000020c0476d0bd1bba12844993b2b90c4d4e74f42cb95a863a33400c0b3ce5d7afb970000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f000000000000001d000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000000000000000000208333202919c9f5aeb9b73ac4c031fa8da82fd055f108044d89ec0ca8f2ec4614000000000000000100000000000000010000000000000020273c8c891ee07115e20bf18ab52966cd99ea87ede285698502fc4dab8458420000000000000000010000000000000000000000000000002023d97489db03b380974b7d10e10c0a8f85c4800f21e95c23e7827615a90c923c0000000000000001000000000000000000000000000000200c4338e456e8a386ea42ad72cd73d95178039fdb76ee7e286661fbbf95bb3b040000000000000001000000000000000000000000000000201f243121b9b86ee340c8e4e148b031fbfec331be88bb0e695bd3254fd9dedc460000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000001d00000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d0000000000000006000000000000000100000000000000000000000000000020cf8d118716eefde3ff7b40ca3541732ee2eb83b2fa835cf796ab7a7675890d66000000000000000100000000000000010000000000000020d4bc73bbfb3732c9c2675cee6355f9cf43f14e3b5c653d8eeb18f8e3de4baaa400000000000000010000000000000000000000000000002083b89a63fb02770e2f72bbc11c0bfed0438afe2b97dafc63d6b272c56e3f2360000000000000000100000000000000000000000000000020a978e635bc01e37323e8daa22db845c6f4b65dbff8aec0ddee43de3cb433d5d80000000000000001000000000000000000000000000000207c9185dc31c96b43974def3ef513a5c2fa4019e8f4cd70c66e8489740340b2d7000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000001d00000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b32300000000000000060000000000000001000000000000000000000000000000208ae182d70f58d2140866b79c8b60d5ed5ef4c9c046f4e7e782ff946e8d212d72000000000000000100000000000000010000000000000020a03ce711afd0464d0fe4a4b467dc0ff4cce8199435953d6464d6a43f2dd6bcd90000000000000001000000000000000000000000000000201480dd9071ccde4a4f721bb5a64cbd7ecff12cfd29018b3d672f16038683d05000000000000000010000000000000000000000000000002049d1d86419f38c5e84555595d210426f3d97ab19505fa1438516e93a0552e041000000000000000100000000000000000000000000000020c261b56a4b700b9884a920f66b25b3f4e5b6af88658d82bd2b16f6956d7a628f000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed000000000000001d000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b300000000000000060000000000000001000000000000000000000000000000209e50d11b1755333d699a0cebbe7a67a8e68d4f42356555a3415da2e32ac53c850000000000000001000000000000000100000000000000202712fb7df6ea6c8cd188ee825119f43fcd845fc37e172448ff0b368cb4a2e894000000000000000100000000000000000000000000000020a4f30078f6c82eeb23635e8509271f741f7df1496de69591523572481398a01a0000000000000001000000000000000000000000000000207f6c04f2a2686f09f8ed1d6818a1534af529f47bed8bb55dbf5eafcc3ebff42400000000000000010000000000000000000000000000002031c46556a8536b0d3fe56fdfff2cfb21049ba3d5264152ba04673f2caa7e535700000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000001500000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e4000000000000000600000000000000010000000000000000000000000000002083fca54e46700fdc19b5808ae517cc0ac99ffafc4ea350df88cf68c383a0baa1000000000000000100000000000000010000000000000020cd6677de85b16b065ac594b9242fb27a207f45b22abab8921e1182d421ede8080000000000000001000000000000000000000000000000203033e580e5ecf18a4e51f0ecf90e49f75d07abf49e6e1f2fb0f6f3f21b2b13890000000000000001000000000000000100000000000000201796429c8b13ebc59c2f83b796b3b926978c70fec3627c1ec454c8494358fb2d000000000000000100000000000000000000000000000020c0476d0bd1bba12844993b2b90c4d4e74f42cb95a863a33400c0b3ce5d7afb970000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000015000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000000000000000000204f55e3f6bc9381d1bff63a964f5f17eb1c352d095126c6386bf0327af978a746000000000000000100000000000000010000000000000020beab344ab77c8598f29a53769f26f6315e9f6d6582bc2b9ff1c4ca2519f7d7f70000000000000001000000000000000000000000000000200fe86f07f5500c2b5e7c84736dc58b948b12731c0c53ee6e0bcf4e87b862641a00000000000000010000000000000001000000000000002085b5145a72d3b5cc42ebd3887f2b0d8b066dd487afb89617f433386cd39ad32e0000000000000001000000000000000000000000000000201f243121b9b86ee340c8e4e148b031fbfec331be88bb0e695bd3254fd9dedc460000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000001500000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d000000000000000600000000000000010000000000000000000000000000002028057a42dccd0f589047522b14cd391a55b93e97e0b8bc18a61dcc0e4b227f260000000000000001000000000000000100000000000000203970a3f189ca6e09449b5aaadbb2b4e4efd04c7f65ce13b05d5716fa50a425ab00000000000000010000000000000000000000000000002094f709638b3edb79f28d5546efd1d20615276922b29a850f63756fb3ca0c75990000000000000001000000000000000100000000000000204bbee7125d792587a9c1a2f857d5319e703fb6396be7cba35871f693d7de4ce00000000000000001000000000000000000000000000000207c9185dc31c96b43974def3ef513a5c2fa4019e8f4cd70c66e8489740340b2d7000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000001500000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b323000000000000000600000000000000010000000000000000000000000000002079bffa116b4ef85f25b45acef973a4fbd3d841c3bfd249fc24bc276fe02738850000000000000001000000000000000100000000000000202af2aa8e71f93d61fb3623054e61f3c8dc2f46b15086d77340818e316fbe544d000000000000000100000000000000000000000000000020717385618c24c857967504bf3b4790c277d34c10a2053f8387239b28978d282a0000000000000001000000000000000100000000000000206c36dc888e2b9eea00e51c0910ca1a39fed4c567e353a843c78f1449b7b894ec000000000000000100000000000000000000000000000020c261b56a4b700b9884a920f66b25b3f4e5b6af88658d82bd2b16f6956d7a628f000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000015000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b3000000000000000600000000000000010000000000000000000000000000002085977bbb663d7f8a6ab7c730fb25911ba8100e5d9e27ee9feda8fb1949da738b0000000000000001000000000000000100000000000000207c1229febc4bff04d2296f6692e6636ab7fe4d0e64e0de212b3aed75ef0ecbdb00000000000000010000000000000000000000000000002030d66f767abd1d0b73d7b3ea7c74252212fb4d88171febb5c5e5ed47357253ad00000000000000010000000000000001000000000000002057d66fcd5a6afc7d65bf36d032fddd74693048af41e04438e66c2fac0f88b93200000000000000010000000000000000000000000000002031c46556a8536b0d3fe56fdfff2cfb21049ba3d5264152ba04673f2caa7e535700000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000000000000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e400000000000000060000000000000001000000000000000100000000000000203bb89953794cd2baa3f836dec812c4b99b814f7577347c1b0508ae76233baf47000000000000000100000000000000010000000000000020e20bc164a2d176267835b99bb085e70ee37e78ff353a422c984073114f616b4a000000000000000100000000000000010000000000000020036e643e48a301a7a94aed42e82912eaec80e90bccc88d3226560d84666629b00000000000000001000000000000000100000000000000206a3d92b216e8d40712b4abc94e0d246cf0b1c2a650d3b728de1e144f5f135dd1000000000000000100000000000000010000000000000020cf7596a2151e6ecd0152bcfa96e547a86c616698a13eb311a31678d998a719af0000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000000000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000100000000000000203a66f41ebdb1cf249027d690746fb6e4c5816ecc627864f31cfe821cdd0df139000000000000000100000000000000010000000000000020b751ce72e98dccc2148ad757721ef6758c47d4aa7b0b42f5dec8be0e726cf8cb00000000000000010000000000000001000000000000002054be403ee6b8f8b6e7241a28dd4067a732c6494f9ca117cf49561797eed6d533000000000000000100000000000000010000000000000020012e51ceac3da1ee2785f84acb427d436432958c56fa02ff109defc16f64c3e100000000000000010000000000000001000000000000002031809213d4a7c0f0b7fbd21766c584377ac625d92403fd3c2e9421ca27c907db0000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000000000000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d0000000000000006000000000000000100000000000000010000000000000020bd730e5d7d21021a3b82c0debd626bb83120baa53da413056eb9f452064da95a0000000000000001000000000000000100000000000000204c709a8c4a4b20a4c4322b3ade4d3e9e2b2c7d4fc5883b395066ef3155908c7e00000000000000010000000000000001000000000000002070e7dcfc14e9faa78890ed551a4cf53d1af6bb685ff505bb76843215b07b7782000000000000000100000000000000010000000000000020c784e893e97965d1954bf00e2fab7b72fbb7d86352817409c7f61f9ee3d4be25000000000000000100000000000000010000000000000020ca05ed908befc970acc53cea33e55589e5965d8039c9e076f7ac7b36a36f6455000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000000000000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000010000000000000020e376b6de662a2fd89dab347b0d7c90b07a3cad0dc3e2f162c99458908e27606800000000000000010000000000000001000000000000002075301234c565dac1ae84d09889d3f1d888ce8c86485e941d03e337e1ffbc2f0f00000000000000010000000000000001000000000000002063108f8d0ebc57e7d328e269e094211f951a8a50708c1b60724402499140bcbe000000000000000100000000000000010000000000000020429ead810e13405c3b60212aa5eafa299f1430976011b3956cf9ba62ffd1d91d0000000000000001000000000000000100000000000000206d6a12b490e789e5e3407255a61b3605485fc28f4ae6697fdbc41f4a62ac030e000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000000000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000010000000000000020baf5f6d503b407d219fb1d31bf64c1689e66a5c830c810f50823a4b67bc9a4c600000000000000010000000000000001000000000000002088dfac425732a6e73e6bd9697ee39aa13bebcbfbd05a069dedfe620464f7420e000000000000000100000000000000010000000000000020cc627ebfb735c76ebe34f36ee0a06d28daf02822f990a9a92460f542562da42c000000000000000100000000000000010000000000000020a36932769c7f9a976b385d2c4064689e893729c460a7115012784ced44d4169f00000000000000010000000000000001000000000000002010edd26513dde9e2d4d9edde73c0914d7c3f4f5c44106edb1335190bd6a8675d00000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000003c00000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e400000000000000060000000000000001000000000000000100000000000000200aad70f86d10e8d16c18580da7c5a7ccfbeec8f8f7815f6e4175c30ad1e2e73f0000000000000001000000000000000100000000000000207f79a0efd8f6d62f486f886006b818a7315031ea33c0069b061f6845d58a9ad6000000000000000100000000000000000000000000000020ebc770f3b8a62a2b95187dce0f350a241db177a008e165198fee46bc74bdcf5a000000000000000100000000000000000000000000000020c9b3ad75701ec8a54b6c9bf898b00ecc8b8d291a70a3a3b2c5eb9c54606203d3000000000000000100000000000000000000000000000020821cb4e5ed60f8ccefe58fd9ac3136abe727ed631fb9d4a33cf4415e024f9f020000000000000001000000000000000000000000000000202fa23e2d798b08467838b865973a53e4e19c5b2d80ade19cbb180aec56a9376e000000000000003c000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000010000000000000020e3183f3117ada73ac1cfc9f61128a72d5f9de4a43dec18ef1038500aca68cdda000000000000000100000000000000010000000000000020c9f27acf01b354bad9acabd32ffae7b0a02e0c17367416346b55ae88da3ccd63000000000000000100000000000000000000000000000020590325535bcff96f350b76df132df0348f8bae179375df66dc1c1778d8bd1fd7000000000000000100000000000000000000000000000020d251cf40cd7ee5a019ed521b80e81611fd3a89746e2c54021cd41e0bdba0a010000000000000000100000000000000000000000000000020e9da22de8ef9950c7c8ed7994a057a53da129fef638def79baaad47992e89bce00000000000000010000000000000000000000000000002072c42711719626fc8bcaf082271589b458b73b63db94ea53c13e43ca03482214000000000000003c00000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d0000000000000006000000000000000100000000000000010000000000000020db2d1674b645323e08fd8aad73da51e3373c0fad6270f233011fd6cc8de0640d000000000000000100000000000000010000000000000020cee9389753eec88c5457fec73835d4380268b324a907c3ba3eb119065d9a00750000000000000001000000000000000000000000000000205f0d894669e0825f01950ca190446d072a93f7d7e276f124f226f321e86a11a7000000000000000100000000000000000000000000000020a10bf13f59ec7702d89279a7e07ffd326efc49d509c094863ab0454222b1e41e00000000000000010000000000000000000000000000002030e60438b48a10fa93ba2b2271e743883ab2776244e2b3e7ee271ed6db1f2e530000000000000001000000000000000000000000000000208b04487c0e92a27b8ce6e22f25723473ab966eb251464fa6d919c39ac29a60ff000000000000003c00000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b32300000000000000060000000000000001000000000000000100000000000000207d7cf982a2ea0d6f48e28132aefe315f2b53d40732309dac7d0d8fe5a233f06c0000000000000001000000000000000100000000000000206a7f55c72cf23ea8568d0b0213c4c4d3910169a043d11586fad1be8aa4f6864100000000000000010000000000000000000000000000002005f82cbeea46b7ccbbcf890db4b2328c9d35044b010b8c15569f19e4f1e15dd00000000000000001000000000000000000000000000000200ce4e9ccb51b54aaaba6f54b2118412f63ce1a898fa9a21ea0c2d9e4ffa0a7c9000000000000000100000000000000000000000000000020ef7f27ef0af7f3384d95dccf464f81b3ada2d68b1c7b4e875db629973a25da5c000000000000000100000000000000000000000000000020a00b07acea464ec37ab41d5472f9101cc13a3cdfaa5f141199b9dad4efa0ccc3000000000000003c000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b3000000000000000600000000000000010000000000000001000000000000002003a9b3f47660d99cd459a6f0bfa4df795db6f953c2247842847b00b6f0d19ebc000000000000000100000000000000010000000000000020759f79b62ee8f6d95d2339990767f366314914bee012c7ef943f3e3ceaf76c52000000000000000100000000000000000000000000000020e1d8bf6c66eb23ccb64812da24ca3b1df8796a8df6481ba1d99aaeab0d2031b9000000000000000100000000000000000000000000000020c95493bd2a81fded0791c5ffa57ae8846587ede7997e5603d6d12a82d83971ae0000000000000001000000000000000000000000000000205d37818349b6a8b2090fc629ee6549964519ab55586df49d7740da0a7f06a2f200000000000000010000000000000000000000000000002078cb1457e1c5d6fa6b6138eeb2c7dfa980dd7fa53f0e6b7e1e5bdc43f459f12c000000000000001f00000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e40000000000000006000000000000000100000000000000000000000000000020aea0257863e10318831d52f58d53aabe9f4e5ce827cf72ebf7c21cfd8e530d83000000000000000100000000000000000000000000000020f08a8095a81b042559c277caa120e67c6db10f76a1e996e9d6210a952f768f670000000000000001000000000000000000000000000000203c9b84ea790b2a2a39d9611d6fffe81b8f6a4780bc49ceef9d562efb8bb0e3c100000000000000010000000000000000000000000000002025970c30f2158b64f6db602006cf8ec3088a6951235f1463b4ec26472e7bf04e000000000000000100000000000000000000000000000020c0476d0bd1bba12844993b2b90c4d4e74f42cb95a863a33400c0b3ce5d7afb970000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f000000000000001f000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000000000000000000020ef2c1053a8eac5911150c672e5f8fc18606781dbf3f5fde508e9a9a948e5cd660000000000000001000000000000000000000000000000209ac57aee00b058ea0cd83781c86a1015291ec82b4b2210f70d7901cd6c310e0b00000000000000010000000000000000000000000000002023d97489db03b380974b7d10e10c0a8f85c4800f21e95c23e7827615a90c923c0000000000000001000000000000000000000000000000200c4338e456e8a386ea42ad72cd73d95178039fdb76ee7e286661fbbf95bb3b040000000000000001000000000000000000000000000000201f243121b9b86ee340c8e4e148b031fbfec331be88bb0e695bd3254fd9dedc460000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000001f00000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d000000000000000600000000000000010000000000000000000000000000002052fb9d8cf82b849d3cb1b9ef6cc42b63b642c872c76a2b6b241def6417ee88a30000000000000001000000000000000000000000000000207b9939446a1c36b2743389f20671740aa643050f2062f919c75d4ec5eb152be600000000000000010000000000000000000000000000002083b89a63fb02770e2f72bbc11c0bfed0438afe2b97dafc63d6b272c56e3f2360000000000000000100000000000000000000000000000020a978e635bc01e37323e8daa22db845c6f4b65dbff8aec0ddee43de3cb433d5d80000000000000001000000000000000000000000000000207c9185dc31c96b43974def3ef513a5c2fa4019e8f4cd70c66e8489740340b2d7000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000001f00000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000000000000000000020d37df8c81436203bdaead4b93d64c239ca30f2778e3f292822f30a6aea67342900000000000000010000000000000000000000000000002075413072637253ff050faf3a568c9b8a14ad4613c28e3bd7790ab9dbce3d7f090000000000000001000000000000000000000000000000201480dd9071ccde4a4f721bb5a64cbd7ecff12cfd29018b3d672f16038683d05000000000000000010000000000000000000000000000002049d1d86419f38c5e84555595d210426f3d97ab19505fa1438516e93a0552e041000000000000000100000000000000000000000000000020c261b56a4b700b9884a920f66b25b3f4e5b6af88658d82bd2b16f6956d7a628f000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed000000000000001f000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000000000000000000020bc42ad1aedbf8ba5a58cb2f9480c3e0895e6505ce614ab2b1e622dd9f0a378de000000000000000100000000000000000000000000000020c88770ba99897f3942d7c5126a4d6f829ae6d83aa91e1cef6ce2743b675fb745000000000000000100000000000000000000000000000020a4f30078f6c82eeb23635e8509271f741f7df1496de69591523572481398a01a0000000000000001000000000000000000000000000000207f6c04f2a2686f09f8ed1d6818a1534af529f47bed8bb55dbf5eafcc3ebff42400000000000000010000000000000000000000000000002031c46556a8536b0d3fe56fdfff2cfb21049ba3d5264152ba04673f2caa7e535700000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000002600000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e4000000000000000600000000000000010000000000000001000000000000002060dc51158dd926b04c627752dfc89b588126039eeba7d386f14b9010d4da00110000000000000001000000000000000000000000000000208cbdb49d77f56b3a6db9221d1d57b04818fca524c7267a0e8d4022fcfafd117800000000000000010000000000000000000000000000002055c308be9438db42c91d1431d01b869ac37750ba0513a5170220112753ea0a6d000000000000000100000000000000010000000000000020a5edd8ba3a02c79d2a439b5c19c698d48a65e1da6ea81f91e95da0f3870facfe0000000000000001000000000000000100000000000000201b96bf994f53f651394f15f5db116e896fa1ab44efe0a6262949e96de58bff090000000000000001000000000000000000000000000000202fa23e2d798b08467838b865973a53e4e19c5b2d80ade19cbb180aec56a9376e0000000000000026000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000010000000000000020bf75c76533813cfb8387c5575b27a6b43ed18fc816ba1ce110e537fff4715697000000000000000100000000000000000000000000000020caa15c2cef9d0822879f1cbc7e47bf2ecca0c34dcce47cf21e705e0c27facd2800000000000000010000000000000000000000000000002094bfaa799c5496d89c7fba1c0074bf53e44026b1e3dfcc51a0820cda8b8b592e00000000000000010000000000000001000000000000002091ef79e3954e71b043bab2f4f7563da4ffcc85b3b6a3abb402389ce312ae3a1b00000000000000010000000000000001000000000000002046692d64e298cf42f3e0cf09149e8b1ba6093100c0f4d1501fee627da591f20e00000000000000010000000000000000000000000000002072c42711719626fc8bcaf082271589b458b73b63db94ea53c13e43ca03482214000000000000002600000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d0000000000000006000000000000000100000000000000010000000000000020ffa5b70b50ebe9f5509bbc1114be92f7213bf079debf48029c922b205f34d43c0000000000000001000000000000000000000000000000201a74b33545d3a31e38488fc2de7d796ea63b27a71bd3cb3cc8ae63fac1b7efad0000000000000001000000000000000000000000000000205821e6171d155bf5aafbdc8474a3a9c33f58e247c6f3c54f71d8c9caaf009eb800000000000000010000000000000001000000000000002013307d874fafd2c736df4f1675c3fc7573fd05858f421470013ba3aa52dcdcac000000000000000100000000000000010000000000000020b865081822324014a2ad2adb025c6233367d552e7b8d5c65dcb3c00b68fdb2770000000000000001000000000000000000000000000000208b04487c0e92a27b8ce6e22f25723473ab966eb251464fa6d919c39ac29a60ff000000000000002600000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b32300000000000000060000000000000001000000000000000100000000000000202fc3201f9c70e83cbb8662ad8f2dabe26aadb570e77df983d942acd21e0af5b10000000000000001000000000000000000000000000000207d428f3d57f89f1804dbbaa40de511c119d8f43b693258ebba485c5b8aedfc91000000000000000100000000000000000000000000000020c05b0bfce2b5cf26286b63fee5b1ce52f6fd2d6f3b79f0407ca7ced961abd5100000000000000001000000000000000100000000000000205333dabae5459fcb448fee6926384a3bafc2af8b75f276339e9b28108bb4995d0000000000000001000000000000000100000000000000201da2e84c157ae73f74b662421f72dc7af8ef5d8001e6e962a5538cb1a53a8321000000000000000100000000000000000000000000000020a00b07acea464ec37ab41d5472f9101cc13a3cdfaa5f141199b9dad4efa0ccc30000000000000026000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000010000000000000020f70714ff5623a7bb893486edf7a24391e44c96542acc679564827b1d02d68257000000000000000100000000000000000000000000000020cd263aed361b4e176016494f2e92a46d33c7ff0629bac17eaaf60ea69c1674660000000000000001000000000000000000000000000000200953edfc6e8ff0936b8105e6357c9590e4f20e0497be561dc97db9d13e014c0d000000000000000100000000000000010000000000000020cd1cbe0f3f5a57ed48862a459d119ab55aa7fbf2685055ced90ff45d1e7cd0720000000000000001000000000000000100000000000000209cabf053781e02384f83b3ede75bfaadda9578d1f80727f379b0adbcf4e706d200000000000000010000000000000000000000000000002078cb1457e1c5d6fa6b6138eeb2c7dfa980dd7fa53f0e6b7e1e5bdc43f459f12c000000000000000d00000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e40000000000000006000000000000000100000000000000000000000000000020ae86931be989abef5b8aa3d16d184247829d57b4ede03882c50cd3e4968ef74f0000000000000001000000000000000100000000000000209cd2ce2c3abfb1bd0161a72cedc8684941fb2677c271f825ea1b4479ce3141c10000000000000001000000000000000000000000000000205473551865909a8ddbd278f65ec42135b34cbc96bcd25339c3068de1607e364c000000000000000100000000000000000000000000000020300a899203d60a28e04b3b2612eddf8bcbbf1de62b02c3bf43d419c152e3b2ef000000000000000100000000000000010000000000000020cf7596a2151e6ecd0152bcfa96e547a86c616698a13eb311a31678d998a719af0000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f000000000000000d000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000000000000000000020524a8aa29199ed83582e8f2dcd14d0eed0638b158f02f04bd2bee28b24d41d58000000000000000100000000000000010000000000000020e821c31d9668f7ffe3c9de076e7405ce3d546abd7009431ddec7e6d7938cbc94000000000000000100000000000000000000000000000020e0f5fd7b378429de6ebc931f878e03478c9b1f84d5a49871f6071d3396c392ae0000000000000001000000000000000000000000000000207f47469f5ffdd5ad04194296e2bc72ea5fcb5ec274624c79ae7cfc4014621abb00000000000000010000000000000001000000000000002031809213d4a7c0f0b7fbd21766c584377ac625d92403fd3c2e9421ca27c907db0000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000000d00000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d0000000000000006000000000000000100000000000000000000000000000020c76a9de96cba7a825833b25b8706d9037481bb05a9c025449ee3077e628a02aa000000000000000100000000000000010000000000000020f7112090a6f46e4bc6fe9b70796ee945012d2a7ca350c9e77be25d308cea551b000000000000000100000000000000000000000000000020321d0403bf05e43d79f16282a106e1fbf4a2e1c0c4cc72b6043ffd04ce5e92ba0000000000000001000000000000000000000000000000203280ab8cc5bacfb34810acbc089da721a2e58e824802a6ed1652fc0e8bbcd249000000000000000100000000000000010000000000000020ca05ed908befc970acc53cea33e55589e5965d8039c9e076f7ac7b36a36f6455000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000000d00000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b323000000000000000600000000000000010000000000000000000000000000002056639f83288d5a02741b467610ad5e7bf427e602c32901fbffbe50d538bee16f000000000000000100000000000000010000000000000020ac6b949df2065371ed5dfd4b13a35d4199c780a0eb2cfc4ae2ed2b364d488328000000000000000100000000000000000000000000000020dc4836e3894dfbf408da01007d2625cbabc5403119d5e449e3eb602e93ae41c5000000000000000100000000000000000000000000000020b23e866daaf21825fa74bf7c0d75a5e4ed669fc725e71bc81712ffa8721c07250000000000000001000000000000000100000000000000206d6a12b490e789e5e3407255a61b3605485fc28f4ae6697fdbc41f4a62ac030e000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed000000000000000d000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b3000000000000000600000000000000010000000000000000000000000000002061783a6fcbbf770e4e2c33e1972ff573329893efdddc34aa1688d6a8081be88a000000000000000100000000000000010000000000000020bbe135268a79de7ca67b8c1b40a8f464d2efd1c16b633231987836e77f513751000000000000000100000000000000000000000000000020927607d17643eeb7c2f39cd26db1b0f6a08ceeeaeda979055824400d4c130907000000000000000100000000000000000000000000000020d273183507f843c7fef09828a295baf333ebca044edf2b79770c7a066c4ad36100000000000000010000000000000001000000000000002010edd26513dde9e2d4d9edde73c0914d7c3f4f5c44106edb1335190bd6a8675d00000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000001c00000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e400000000000000060000000000000001000000000000000100000000000000200f143a16674958d9e28ba2f3c853a0649499d01da8145da611d76a546d68bef1000000000000000100000000000000010000000000000020f49c977f2b28edaece65e109dec4da08ee8eff546c65598210fdc1cb3fd9371d0000000000000001000000000000000000000000000000203c9b84ea790b2a2a39d9611d6fffe81b8f6a4780bc49ceef9d562efb8bb0e3c100000000000000010000000000000000000000000000002025970c30f2158b64f6db602006cf8ec3088a6951235f1463b4ec26472e7bf04e000000000000000100000000000000000000000000000020c0476d0bd1bba12844993b2b90c4d4e74f42cb95a863a33400c0b3ce5d7afb970000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f000000000000001c000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000100000000000000201cceaf7c47376237f108fb8705182e5a6095143f1424c853d1f89ca4d8bb08ea000000000000000100000000000000010000000000000020273c8c891ee07115e20bf18ab52966cd99ea87ede285698502fc4dab8458420000000000000000010000000000000000000000000000002023d97489db03b380974b7d10e10c0a8f85c4800f21e95c23e7827615a90c923c0000000000000001000000000000000000000000000000200c4338e456e8a386ea42ad72cd73d95178039fdb76ee7e286661fbbf95bb3b040000000000000001000000000000000000000000000000201f243121b9b86ee340c8e4e148b031fbfec331be88bb0e695bd3254fd9dedc460000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000001c00000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d00000000000000060000000000000001000000000000000100000000000000205b5deb0951110878cfa71a1f38b71299dc8a5cfea1c1885555b870f45e8eb67f000000000000000100000000000000010000000000000020d4bc73bbfb3732c9c2675cee6355f9cf43f14e3b5c653d8eeb18f8e3de4baaa400000000000000010000000000000000000000000000002083b89a63fb02770e2f72bbc11c0bfed0438afe2b97dafc63d6b272c56e3f2360000000000000000100000000000000000000000000000020a978e635bc01e37323e8daa22db845c6f4b65dbff8aec0ddee43de3cb433d5d80000000000000001000000000000000000000000000000207c9185dc31c96b43974def3ef513a5c2fa4019e8f4cd70c66e8489740340b2d7000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000001c00000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b323000000000000000600000000000000010000000000000001000000000000002087ceeab2dcdbbd6564e193050b486fbaaa65eff65a8c2709c0cf05056435a63e000000000000000100000000000000010000000000000020a03ce711afd0464d0fe4a4b467dc0ff4cce8199435953d6464d6a43f2dd6bcd90000000000000001000000000000000000000000000000201480dd9071ccde4a4f721bb5a64cbd7ecff12cfd29018b3d672f16038683d05000000000000000010000000000000000000000000000002049d1d86419f38c5e84555595d210426f3d97ab19505fa1438516e93a0552e041000000000000000100000000000000000000000000000020c261b56a4b700b9884a920f66b25b3f4e5b6af88658d82bd2b16f6956d7a628f000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed000000000000001c000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b3000000000000000600000000000000010000000000000001000000000000002007b2feeb68aada7c46af118d947b98785bf627ff74d8f09bd55efb66542602b20000000000000001000000000000000100000000000000202712fb7df6ea6c8cd188ee825119f43fcd845fc37e172448ff0b368cb4a2e894000000000000000100000000000000000000000000000020a4f30078f6c82eeb23635e8509271f741f7df1496de69591523572481398a01a0000000000000001000000000000000000000000000000207f6c04f2a2686f09f8ed1d6818a1534af529f47bed8bb55dbf5eafcc3ebff42400000000000000010000000000000000000000000000002031c46556a8536b0d3fe56fdfff2cfb21049ba3d5264152ba04673f2caa7e535700000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000001f00000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e40000000000000006000000000000000100000000000000000000000000000020aea0257863e10318831d52f58d53aabe9f4e5ce827cf72ebf7c21cfd8e530d83000000000000000100000000000000000000000000000020f08a8095a81b042559c277caa120e67c6db10f76a1e996e9d6210a952f768f670000000000000001000000000000000000000000000000203c9b84ea790b2a2a39d9611d6fffe81b8f6a4780bc49ceef9d562efb8bb0e3c100000000000000010000000000000000000000000000002025970c30f2158b64f6db602006cf8ec3088a6951235f1463b4ec26472e7bf04e000000000000000100000000000000000000000000000020c0476d0bd1bba12844993b2b90c4d4e74f42cb95a863a33400c0b3ce5d7afb970000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f000000000000001f000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000000000000000000020ef2c1053a8eac5911150c672e5f8fc18606781dbf3f5fde508e9a9a948e5cd660000000000000001000000000000000000000000000000209ac57aee00b058ea0cd83781c86a1015291ec82b4b2210f70d7901cd6c310e0b00000000000000010000000000000000000000000000002023d97489db03b380974b7d10e10c0a8f85c4800f21e95c23e7827615a90c923c0000000000000001000000000000000000000000000000200c4338e456e8a386ea42ad72cd73d95178039fdb76ee7e286661fbbf95bb3b040000000000000001000000000000000000000000000000201f243121b9b86ee340c8e4e148b031fbfec331be88bb0e695bd3254fd9dedc460000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000001f00000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d000000000000000600000000000000010000000000000000000000000000002052fb9d8cf82b849d3cb1b9ef6cc42b63b642c872c76a2b6b241def6417ee88a30000000000000001000000000000000000000000000000207b9939446a1c36b2743389f20671740aa643050f2062f919c75d4ec5eb152be600000000000000010000000000000000000000000000002083b89a63fb02770e2f72bbc11c0bfed0438afe2b97dafc63d6b272c56e3f2360000000000000000100000000000000000000000000000020a978e635bc01e37323e8daa22db845c6f4b65dbff8aec0ddee43de3cb433d5d80000000000000001000000000000000000000000000000207c9185dc31c96b43974def3ef513a5c2fa4019e8f4cd70c66e8489740340b2d7000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000001f00000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000000000000000000020d37df8c81436203bdaead4b93d64c239ca30f2778e3f292822f30a6aea67342900000000000000010000000000000000000000000000002075413072637253ff050faf3a568c9b8a14ad4613c28e3bd7790ab9dbce3d7f090000000000000001000000000000000000000000000000201480dd9071ccde4a4f721bb5a64cbd7ecff12cfd29018b3d672f16038683d05000000000000000010000000000000000000000000000002049d1d86419f38c5e84555595d210426f3d97ab19505fa1438516e93a0552e041000000000000000100000000000000000000000000000020c261b56a4b700b9884a920f66b25b3f4e5b6af88658d82bd2b16f6956d7a628f000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed000000000000001f000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000000000000000000020bc42ad1aedbf8ba5a58cb2f9480c3e0895e6505ce614ab2b1e622dd9f0a378de000000000000000100000000000000000000000000000020c88770ba99897f3942d7c5126a4d6f829ae6d83aa91e1cef6ce2743b675fb745000000000000000100000000000000000000000000000020a4f30078f6c82eeb23635e8509271f741f7df1496de69591523572481398a01a0000000000000001000000000000000000000000000000207f6c04f2a2686f09f8ed1d6818a1534af529f47bed8bb55dbf5eafcc3ebff42400000000000000010000000000000000000000000000002031c46556a8536b0d3fe56fdfff2cfb21049ba3d5264152ba04673f2caa7e535700000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000001500000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e4000000000000000600000000000000010000000000000000000000000000002083fca54e46700fdc19b5808ae517cc0ac99ffafc4ea350df88cf68c383a0baa1000000000000000100000000000000010000000000000020cd6677de85b16b065ac594b9242fb27a207f45b22abab8921e1182d421ede8080000000000000001000000000000000000000000000000203033e580e5ecf18a4e51f0ecf90e49f75d07abf49e6e1f2fb0f6f3f21b2b13890000000000000001000000000000000100000000000000201796429c8b13ebc59c2f83b796b3b926978c70fec3627c1ec454c8494358fb2d000000000000000100000000000000000000000000000020c0476d0bd1bba12844993b2b90c4d4e74f42cb95a863a33400c0b3ce5d7afb970000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000015000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000000000000000000204f55e3f6bc9381d1bff63a964f5f17eb1c352d095126c6386bf0327af978a746000000000000000100000000000000010000000000000020beab344ab77c8598f29a53769f26f6315e9f6d6582bc2b9ff1c4ca2519f7d7f70000000000000001000000000000000000000000000000200fe86f07f5500c2b5e7c84736dc58b948b12731c0c53ee6e0bcf4e87b862641a00000000000000010000000000000001000000000000002085b5145a72d3b5cc42ebd3887f2b0d8b066dd487afb89617f433386cd39ad32e0000000000000001000000000000000000000000000000201f243121b9b86ee340c8e4e148b031fbfec331be88bb0e695bd3254fd9dedc460000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000001500000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d000000000000000600000000000000010000000000000000000000000000002028057a42dccd0f589047522b14cd391a55b93e97e0b8bc18a61dcc0e4b227f260000000000000001000000000000000100000000000000203970a3f189ca6e09449b5aaadbb2b4e4efd04c7f65ce13b05d5716fa50a425ab00000000000000010000000000000000000000000000002094f709638b3edb79f28d5546efd1d20615276922b29a850f63756fb3ca0c75990000000000000001000000000000000100000000000000204bbee7125d792587a9c1a2f857d5319e703fb6396be7cba35871f693d7de4ce00000000000000001000000000000000000000000000000207c9185dc31c96b43974def3ef513a5c2fa4019e8f4cd70c66e8489740340b2d7000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000001500000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b323000000000000000600000000000000010000000000000000000000000000002079bffa116b4ef85f25b45acef973a4fbd3d841c3bfd249fc24bc276fe02738850000000000000001000000000000000100000000000000202af2aa8e71f93d61fb3623054e61f3c8dc2f46b15086d77340818e316fbe544d000000000000000100000000000000000000000000000020717385618c24c857967504bf3b4790c277d34c10a2053f8387239b28978d282a0000000000000001000000000000000100000000000000206c36dc888e2b9eea00e51c0910ca1a39fed4c567e353a843c78f1449b7b894ec000000000000000100000000000000000000000000000020c261b56a4b700b9884a920f66b25b3f4e5b6af88658d82bd2b16f6956d7a628f000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000015000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b3000000000000000600000000000000010000000000000000000000000000002085977bbb663d7f8a6ab7c730fb25911ba8100e5d9e27ee9feda8fb1949da738b0000000000000001000000000000000100000000000000207c1229febc4bff04d2296f6692e6636ab7fe4d0e64e0de212b3aed75ef0ecbdb00000000000000010000000000000000000000000000002030d66f767abd1d0b73d7b3ea7c74252212fb4d88171febb5c5e5ed47357253ad00000000000000010000000000000001000000000000002057d66fcd5a6afc7d65bf36d032fddd74693048af41e04438e66c2fac0f88b93200000000000000010000000000000000000000000000002031c46556a8536b0d3fe56fdfff2cfb21049ba3d5264152ba04673f2caa7e535700000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000000100000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e400000000000000060000000000000001000000000000000000000000000000203c4c8e205aab5ca70c4b46de1c341b31594842f8d58bbd8c19819fc647bb161e000000000000000100000000000000010000000000000020e20bc164a2d176267835b99bb085e70ee37e78ff353a422c984073114f616b4a000000000000000100000000000000010000000000000020036e643e48a301a7a94aed42e82912eaec80e90bccc88d3226560d84666629b00000000000000001000000000000000100000000000000206a3d92b216e8d40712b4abc94e0d246cf0b1c2a650d3b728de1e144f5f135dd1000000000000000100000000000000010000000000000020cf7596a2151e6ecd0152bcfa96e547a86c616698a13eb311a31678d998a719af0000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000001000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000000000000000000207a654ca0e9f69c4247ac3c1fa418a0ea5395d8d67de4dbf5d8c2157fc06060fd000000000000000100000000000000010000000000000020b751ce72e98dccc2148ad757721ef6758c47d4aa7b0b42f5dec8be0e726cf8cb00000000000000010000000000000001000000000000002054be403ee6b8f8b6e7241a28dd4067a732c6494f9ca117cf49561797eed6d533000000000000000100000000000000010000000000000020012e51ceac3da1ee2785f84acb427d436432958c56fa02ff109defc16f64c3e100000000000000010000000000000001000000000000002031809213d4a7c0f0b7fbd21766c584377ac625d92403fd3c2e9421ca27c907db0000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000000100000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d00000000000000060000000000000001000000000000000000000000000000206a21cf8dad19b95d6976b80a0ea46f71e5acaeb0d7ce0c952c612cb0e1b39b500000000000000001000000000000000100000000000000204c709a8c4a4b20a4c4322b3ade4d3e9e2b2c7d4fc5883b395066ef3155908c7e00000000000000010000000000000001000000000000002070e7dcfc14e9faa78890ed551a4cf53d1af6bb685ff505bb76843215b07b7782000000000000000100000000000000010000000000000020c784e893e97965d1954bf00e2fab7b72fbb7d86352817409c7f61f9ee3d4be25000000000000000100000000000000010000000000000020ca05ed908befc970acc53cea33e55589e5965d8039c9e076f7ac7b36a36f6455000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000000100000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000000000000000000020c55bf5d6dcd4335300102ec318739ee75f5fbd435a3432dc5b5c8f8be5cf7a6300000000000000010000000000000001000000000000002075301234c565dac1ae84d09889d3f1d888ce8c86485e941d03e337e1ffbc2f0f00000000000000010000000000000001000000000000002063108f8d0ebc57e7d328e269e094211f951a8a50708c1b60724402499140bcbe000000000000000100000000000000010000000000000020429ead810e13405c3b60212aa5eafa299f1430976011b3956cf9ba62ffd1d91d0000000000000001000000000000000100000000000000206d6a12b490e789e5e3407255a61b3605485fc28f4ae6697fdbc41f4a62ac030e000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000001000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000000000000000000020e87da945d740bee23eba05f23c80fa3c259a1ccb10752b52b4dd68937ed44ace00000000000000010000000000000001000000000000002088dfac425732a6e73e6bd9697ee39aa13bebcbfbd05a069dedfe620464f7420e000000000000000100000000000000010000000000000020cc627ebfb735c76ebe34f36ee0a06d28daf02822f990a9a92460f542562da42c000000000000000100000000000000010000000000000020a36932769c7f9a976b385d2c4064689e893729c460a7115012784ced44d4169f00000000000000010000000000000001000000000000002010edd26513dde9e2d4d9edde73c0914d7c3f4f5c44106edb1335190bd6a8675d00000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000000000000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e400000000000000060000000000000001000000000000000100000000000000203bb89953794cd2baa3f836dec812c4b99b814f7577347c1b0508ae76233baf47000000000000000100000000000000010000000000000020e20bc164a2d176267835b99bb085e70ee37e78ff353a422c984073114f616b4a000000000000000100000000000000010000000000000020036e643e48a301a7a94aed42e82912eaec80e90bccc88d3226560d84666629b00000000000000001000000000000000100000000000000206a3d92b216e8d40712b4abc94e0d246cf0b1c2a650d3b728de1e144f5f135dd1000000000000000100000000000000010000000000000020cf7596a2151e6ecd0152bcfa96e547a86c616698a13eb311a31678d998a719af0000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000000000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000100000000000000203a66f41ebdb1cf249027d690746fb6e4c5816ecc627864f31cfe821cdd0df139000000000000000100000000000000010000000000000020b751ce72e98dccc2148ad757721ef6758c47d4aa7b0b42f5dec8be0e726cf8cb00000000000000010000000000000001000000000000002054be403ee6b8f8b6e7241a28dd4067a732c6494f9ca117cf49561797eed6d533000000000000000100000000000000010000000000000020012e51ceac3da1ee2785f84acb427d436432958c56fa02ff109defc16f64c3e100000000000000010000000000000001000000000000002031809213d4a7c0f0b7fbd21766c584377ac625d92403fd3c2e9421ca27c907db0000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000000000000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d0000000000000006000000000000000100000000000000010000000000000020bd730e5d7d21021a3b82c0debd626bb83120baa53da413056eb9f452064da95a0000000000000001000000000000000100000000000000204c709a8c4a4b20a4c4322b3ade4d3e9e2b2c7d4fc5883b395066ef3155908c7e00000000000000010000000000000001000000000000002070e7dcfc14e9faa78890ed551a4cf53d1af6bb685ff505bb76843215b07b7782000000000000000100000000000000010000000000000020c784e893e97965d1954bf00e2fab7b72fbb7d86352817409c7f61f9ee3d4be25000000000000000100000000000000010000000000000020ca05ed908befc970acc53cea33e55589e5965d8039c9e076f7ac7b36a36f6455000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000000000000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000010000000000000020e376b6de662a2fd89dab347b0d7c90b07a3cad0dc3e2f162c99458908e27606800000000000000010000000000000001000000000000002075301234c565dac1ae84d09889d3f1d888ce8c86485e941d03e337e1ffbc2f0f00000000000000010000000000000001000000000000002063108f8d0ebc57e7d328e269e094211f951a8a50708c1b60724402499140bcbe000000000000000100000000000000010000000000000020429ead810e13405c3b60212aa5eafa299f1430976011b3956cf9ba62ffd1d91d0000000000000001000000000000000100000000000000206d6a12b490e789e5e3407255a61b3605485fc28f4ae6697fdbc41f4a62ac030e000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000000000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000010000000000000020baf5f6d503b407d219fb1d31bf64c1689e66a5c830c810f50823a4b67bc9a4c600000000000000010000000000000001000000000000002088dfac425732a6e73e6bd9697ee39aa13bebcbfbd05a069dedfe620464f7420e000000000000000100000000000000010000000000000020cc627ebfb735c76ebe34f36ee0a06d28daf02822f990a9a92460f542562da42c000000000000000100000000000000010000000000000020a36932769c7f9a976b385d2c4064689e893729c460a7115012784ced44d4169f00000000000000010000000000000001000000000000002010edd26513dde9e2d4d9edde73c0914d7c3f4f5c44106edb1335190bd6a8675d00000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000000500000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e40000000000000006000000000000000100000000000000000000000000000020990d893ecd772d12e9fdffb40e63753b32fcc51d4f59a555cac87e8f8a6043c3000000000000000100000000000000010000000000000020e7a919c08bc1886b9f34ef01145d0fbc9283cbdd10f9c9a6df5f218a9335e593000000000000000100000000000000000000000000000020a0b1b5fc08c2e02f83f2f726b41a2505988e2197135ad1552cb352ec42efe3ee0000000000000001000000000000000100000000000000206a3d92b216e8d40712b4abc94e0d246cf0b1c2a650d3b728de1e144f5f135dd1000000000000000100000000000000010000000000000020cf7596a2151e6ecd0152bcfa96e547a86c616698a13eb311a31678d998a719af0000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000005000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000000000000000000020c8826e33aed28fd2c1375abbe11a76f9c603f28fa38275f3aaeae377e1be2acf000000000000000100000000000000010000000000000020c271469aaf67f254fd6d69e57975f51629fbfc3fb7b1bc0a9cbf0a8aa43a920400000000000000010000000000000000000000000000002073d36898ce02b74a10c4aef7a02a948616b5a7d0b174648f8ea70a30ae33c754000000000000000100000000000000010000000000000020012e51ceac3da1ee2785f84acb427d436432958c56fa02ff109defc16f64c3e100000000000000010000000000000001000000000000002031809213d4a7c0f0b7fbd21766c584377ac625d92403fd3c2e9421ca27c907db0000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000000500000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d000000000000000600000000000000010000000000000000000000000000002022e0bb4373d41696cc13d575e304948c004602bceee1df3d4e14b3294da86544000000000000000100000000000000010000000000000020d7692edfdb30d05016809594198c5437c534ad44354aa7223798a174037f47fd000000000000000100000000000000000000000000000020df64ba374100bd613493ca498420eebea8b6233d2c06bf756f9d2aaded4e0177000000000000000100000000000000010000000000000020c784e893e97965d1954bf00e2fab7b72fbb7d86352817409c7f61f9ee3d4be25000000000000000100000000000000010000000000000020ca05ed908befc970acc53cea33e55589e5965d8039c9e076f7ac7b36a36f6455000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000000500000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b32300000000000000060000000000000001000000000000000000000000000000209aca73648b728f0b18bfc2631867994acfbf68ac16b6844ee25995bb4c868ce5000000000000000100000000000000010000000000000020673319709a01475957ab85f17f6906b688c87bbe9cbf6be0fe391e55c49cf5580000000000000001000000000000000000000000000000206f2d3cf07495881ebe39657368b83e6af33701bf95947c06cc58dae5400eb216000000000000000100000000000000010000000000000020429ead810e13405c3b60212aa5eafa299f1430976011b3956cf9ba62ffd1d91d0000000000000001000000000000000100000000000000206d6a12b490e789e5e3407255a61b3605485fc28f4ae6697fdbc41f4a62ac030e000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000005000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000000000000000000020964613cb5e3b9cd3060439c13370a0b642bbda9f45189b6ae8899e5efe6a14130000000000000001000000000000000100000000000000209bfc3983cf43dceb48e11d90c256d5fc5afa7bb45818c6b058f83285ede9cd890000000000000001000000000000000000000000000000203d7a086bd38d4b04c47ab69c98301d88fcf9f0231ec623f6867e04d98ab06e37000000000000000100000000000000010000000000000020a36932769c7f9a976b385d2c4064689e893729c460a7115012784ced44d4169f00000000000000010000000000000001000000000000002010edd26513dde9e2d4d9edde73c0914d7c3f4f5c44106edb1335190bd6a8675d00000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000000f00000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e4000000000000000600000000000000010000000000000000000000000000002026b1b0a4ee0f3efc4a904d4bb001f4bf97035368288890b1a1aa7ea16d337ef400000000000000010000000000000000000000000000002058d9e671ab8d4e76324cddca2afc7147343cf671456f20a34cf1904a1a7d9baa0000000000000001000000000000000000000000000000205473551865909a8ddbd278f65ec42135b34cbc96bcd25339c3068de1607e364c000000000000000100000000000000000000000000000020300a899203d60a28e04b3b2612eddf8bcbbf1de62b02c3bf43d419c152e3b2ef000000000000000100000000000000010000000000000020cf7596a2151e6ecd0152bcfa96e547a86c616698a13eb311a31678d998a719af0000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f000000000000000f000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000000000000000000206ac07c21738f8fa61a6f228e16cbb51a971e8578aecd7a6d3eaafdba4817d8e50000000000000001000000000000000000000000000000207178fef13a6b6de65ac634e0a049bda2dc4d8b1f52f78655d9c99856f4dd6261000000000000000100000000000000000000000000000020e0f5fd7b378429de6ebc931f878e03478c9b1f84d5a49871f6071d3396c392ae0000000000000001000000000000000000000000000000207f47469f5ffdd5ad04194296e2bc72ea5fcb5ec274624c79ae7cfc4014621abb00000000000000010000000000000001000000000000002031809213d4a7c0f0b7fbd21766c584377ac625d92403fd3c2e9421ca27c907db0000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000000f00000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d000000000000000600000000000000010000000000000000000000000000002009894a9a56e60283b7df44f527cf20407ad7568d58e4fab0b3bbb0925e28e5120000000000000001000000000000000000000000000000203b7b56ebef554be4fcc92f9089438cc91a7703c031fa0c18651ca7eced2e774b000000000000000100000000000000000000000000000020321d0403bf05e43d79f16282a106e1fbf4a2e1c0c4cc72b6043ffd04ce5e92ba0000000000000001000000000000000000000000000000203280ab8cc5bacfb34810acbc089da721a2e58e824802a6ed1652fc0e8bbcd249000000000000000100000000000000010000000000000020ca05ed908befc970acc53cea33e55589e5965d8039c9e076f7ac7b36a36f6455000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000000f00000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000000000000000000020781e586dba73619deef25ad7f215755091c2bae74807ae61132321199d4039160000000000000001000000000000000000000000000000208860df9000d64832a4972b5bffc3dbb86bfbbde737f67ab664f02c2efc9410d0000000000000000100000000000000000000000000000020dc4836e3894dfbf408da01007d2625cbabc5403119d5e449e3eb602e93ae41c5000000000000000100000000000000000000000000000020b23e866daaf21825fa74bf7c0d75a5e4ed669fc725e71bc81712ffa8721c07250000000000000001000000000000000100000000000000206d6a12b490e789e5e3407255a61b3605485fc28f4ae6697fdbc41f4a62ac030e000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed000000000000000f000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000000000000000000020a3346abfb3666336152a5be97e10e6cc4f6a4a252b0bdd5edbcfbc2015399ac400000000000000010000000000000000000000000000002082016da58e41699dc9b6474ae045c40cd804d62c64f8b1147ed515b62f1eb911000000000000000100000000000000000000000000000020927607d17643eeb7c2f39cd26db1b0f6a08ceeeaeda979055824400d4c130907000000000000000100000000000000000000000000000020d273183507f843c7fef09828a295baf333ebca044edf2b79770c7a066c4ad36100000000000000010000000000000001000000000000002010edd26513dde9e2d4d9edde73c0914d7c3f4f5c44106edb1335190bd6a8675d00000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000003600000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e40000000000000006000000000000000100000000000000010000000000000020f122c9609f39f5794fddcb098f55a080cfb0493fd17f0f5484e2a4c90d82ef8a00000000000000010000000000000000000000000000002080552a6f9331724b60eb4988d50bdcc8b1529cafc6509fc1407e8aef96b5018a000000000000000100000000000000000000000000000020077e7532ae3d0af6e619c9660db9a0ab3e30c522e548acb01b8a8430a1a473660000000000000001000000000000000100000000000000208af6dbd46e837507be222c82ede0029250a5e53a9cd518f0935fffb99bb12ea7000000000000000100000000000000000000000000000020821cb4e5ed60f8ccefe58fd9ac3136abe727ed631fb9d4a33cf4415e024f9f020000000000000001000000000000000000000000000000202fa23e2d798b08467838b865973a53e4e19c5b2d80ade19cbb180aec56a9376e0000000000000036000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000100000000000000205c046b8470d5b16435806d6fcf614603d99ec77633931d33ed5cd52205640df30000000000000001000000000000000000000000000000204eecf7aac4a54a74bac778c5ac9b780ea46c4a9676cc2e3f21e5566a03426375000000000000000100000000000000000000000000000020ff0af5db9e2f521ead786d3caaa50281ce28565b14a268d10dceeb8f900a0ec00000000000000001000000000000000100000000000000202fc72a740ecbb1b330d4eee963085e5afe7bf5218d75e2f6d3eeb20efce57503000000000000000100000000000000000000000000000020e9da22de8ef9950c7c8ed7994a057a53da129fef638def79baaad47992e89bce00000000000000010000000000000000000000000000002072c42711719626fc8bcaf082271589b458b73b63db94ea53c13e43ca03482214000000000000003600000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d00000000000000060000000000000001000000000000000100000000000000204b9cad6b57e03baf3fa25a8c35bb23825c85d311ad7fc3fb0ecdef451146338f000000000000000100000000000000000000000000000020e8c87552488d5d5f307cf601721458ac82e60f819f7fea1b36455d28d6a8da710000000000000001000000000000000000000000000000200eafe55df4398be1e939b42dfc82a46af1e087ddf20320048587823dc5426aa80000000000000001000000000000000100000000000000203589e38940756f57b41d7b13fcdd382ec64fb407a8c7f1a2c95141f36d7fee6800000000000000010000000000000000000000000000002030e60438b48a10fa93ba2b2271e743883ab2776244e2b3e7ee271ed6db1f2e530000000000000001000000000000000000000000000000208b04487c0e92a27b8ce6e22f25723473ab966eb251464fa6d919c39ac29a60ff000000000000003600000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000010000000000000020b9b2fa45e36b14f80af3bfdb8c03a4c171fac9ee010fd292307abf7d5620c51a0000000000000001000000000000000000000000000000201d0be7cff306a81a133b553828027661bc20ef66a4c77a54cfbc1754d8491a5400000000000000010000000000000000000000000000002029e8f1fe38bef92c6e6ee3284dcfd6c1c382d830d00ecf940cdd7fd7084c54c00000000000000001000000000000000100000000000000204574ffa0b5387faf736ccd8e35a85b2364513eb7b4efb4065cf069df5358b51b000000000000000100000000000000000000000000000020ef7f27ef0af7f3384d95dccf464f81b3ada2d68b1c7b4e875db629973a25da5c000000000000000100000000000000000000000000000020a00b07acea464ec37ab41d5472f9101cc13a3cdfaa5f141199b9dad4efa0ccc30000000000000036000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b300000000000000060000000000000001000000000000000100000000000000203e781329994e9f716e7c5b91a32a6342909d740ae88b0fff94b746bbea48ba0b00000000000000010000000000000000000000000000002093900d869a39e162e03b9ded1188ff04e84de1a3dc90c5b3497d5c432011b061000000000000000100000000000000000000000000000020f5a5c372a81e2b53f1d9fc492c9aaf180d2d0dd1308294b63ca85ba144572ff90000000000000001000000000000000100000000000000208381a643e47a93238bd65404deffb2a516ca70cdb3c14626ec7194d84b5face30000000000000001000000000000000000000000000000205d37818349b6a8b2090fc629ee6549964519ab55586df49d7740da0a7f06a2f200000000000000010000000000000000000000000000002078cb1457e1c5d6fa6b6138eeb2c7dfa980dd7fa53f0e6b7e1e5bdc43f459f12c000000000000000200000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e400000000000000060000000000000001000000000000000100000000000000202c2a3358d239fb96a5e0050cc4327edd6cce78e76bd560169d7ad17adc2c727600000000000000010000000000000000000000000000002077289669ba2e6c829d0df23bcaafa73642d7223e17dbc52b19ed7228539b142d000000000000000100000000000000010000000000000020036e643e48a301a7a94aed42e82912eaec80e90bccc88d3226560d84666629b00000000000000001000000000000000100000000000000206a3d92b216e8d40712b4abc94e0d246cf0b1c2a650d3b728de1e144f5f135dd1000000000000000100000000000000010000000000000020cf7596a2151e6ecd0152bcfa96e547a86c616698a13eb311a31678d998a719af0000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000002000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000010000000000000020069e63e3135c114e3b6eaf97dc924122c8bca2cbc9ae88a7f247e5cb34dadf3f000000000000000100000000000000000000000000000020bdc88be5830648e3337ab2dd9af9e37f3e648a38fc1e26fac2cc4c99f0a0972500000000000000010000000000000001000000000000002054be403ee6b8f8b6e7241a28dd4067a732c6494f9ca117cf49561797eed6d533000000000000000100000000000000010000000000000020012e51ceac3da1ee2785f84acb427d436432958c56fa02ff109defc16f64c3e100000000000000010000000000000001000000000000002031809213d4a7c0f0b7fbd21766c584377ac625d92403fd3c2e9421ca27c907db0000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000000200000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d00000000000000060000000000000001000000000000000100000000000000202304ca2b0a7c6686642f04b56afe563c7ae8e4edf122e9a048ce1978a077d144000000000000000100000000000000000000000000000020d3d0be1ee60e216e6b2e044a6a83b4011aa9501107b8451217664cf027ddd83b00000000000000010000000000000001000000000000002070e7dcfc14e9faa78890ed551a4cf53d1af6bb685ff505bb76843215b07b7782000000000000000100000000000000010000000000000020c784e893e97965d1954bf00e2fab7b72fbb7d86352817409c7f61f9ee3d4be25000000000000000100000000000000010000000000000020ca05ed908befc970acc53cea33e55589e5965d8039c9e076f7ac7b36a36f6455000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000000200000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000010000000000000020c4fded6f0da5c0a50cadb84f323779f22ba6df87a50e9532779bdb2b76d42c820000000000000001000000000000000000000000000000200128dd090282e79c47f4be830c206958d62c000e2c62ed2d2ded81fe59564c8700000000000000010000000000000001000000000000002063108f8d0ebc57e7d328e269e094211f951a8a50708c1b60724402499140bcbe000000000000000100000000000000010000000000000020429ead810e13405c3b60212aa5eafa299f1430976011b3956cf9ba62ffd1d91d0000000000000001000000000000000100000000000000206d6a12b490e789e5e3407255a61b3605485fc28f4ae6697fdbc41f4a62ac030e000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000002000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000010000000000000020ad0957a8e5a8e9b53925156e920ce9b1624772bf9a0f25da6dc5538415e91c0b0000000000000001000000000000000000000000000000202e8f9e9293aea3862946424b368c2188dd37c47551b2b3c17dafcb05e1a069f0000000000000000100000000000000010000000000000020cc627ebfb735c76ebe34f36ee0a06d28daf02822f990a9a92460f542562da42c000000000000000100000000000000010000000000000020a36932769c7f9a976b385d2c4064689e893729c460a7115012784ced44d4169f00000000000000010000000000000001000000000000002010edd26513dde9e2d4d9edde73c0914d7c3f4f5c44106edb1335190bd6a8675d00000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000000200000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e400000000000000060000000000000001000000000000000100000000000000202c2a3358d239fb96a5e0050cc4327edd6cce78e76bd560169d7ad17adc2c727600000000000000010000000000000000000000000000002077289669ba2e6c829d0df23bcaafa73642d7223e17dbc52b19ed7228539b142d000000000000000100000000000000010000000000000020036e643e48a301a7a94aed42e82912eaec80e90bccc88d3226560d84666629b00000000000000001000000000000000100000000000000206a3d92b216e8d40712b4abc94e0d246cf0b1c2a650d3b728de1e144f5f135dd1000000000000000100000000000000010000000000000020cf7596a2151e6ecd0152bcfa96e547a86c616698a13eb311a31678d998a719af0000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000002000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000010000000000000020069e63e3135c114e3b6eaf97dc924122c8bca2cbc9ae88a7f247e5cb34dadf3f000000000000000100000000000000000000000000000020bdc88be5830648e3337ab2dd9af9e37f3e648a38fc1e26fac2cc4c99f0a0972500000000000000010000000000000001000000000000002054be403ee6b8f8b6e7241a28dd4067a732c6494f9ca117cf49561797eed6d533000000000000000100000000000000010000000000000020012e51ceac3da1ee2785f84acb427d436432958c56fa02ff109defc16f64c3e100000000000000010000000000000001000000000000002031809213d4a7c0f0b7fbd21766c584377ac625d92403fd3c2e9421ca27c907db0000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000000200000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d00000000000000060000000000000001000000000000000100000000000000202304ca2b0a7c6686642f04b56afe563c7ae8e4edf122e9a048ce1978a077d144000000000000000100000000000000000000000000000020d3d0be1ee60e216e6b2e044a6a83b4011aa9501107b8451217664cf027ddd83b00000000000000010000000000000001000000000000002070e7dcfc14e9faa78890ed551a4cf53d1af6bb685ff505bb76843215b07b7782000000000000000100000000000000010000000000000020c784e893e97965d1954bf00e2fab7b72fbb7d86352817409c7f61f9ee3d4be25000000000000000100000000000000010000000000000020ca05ed908befc970acc53cea33e55589e5965d8039c9e076f7ac7b36a36f6455000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000000200000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000010000000000000020c4fded6f0da5c0a50cadb84f323779f22ba6df87a50e9532779bdb2b76d42c820000000000000001000000000000000000000000000000200128dd090282e79c47f4be830c206958d62c000e2c62ed2d2ded81fe59564c8700000000000000010000000000000001000000000000002063108f8d0ebc57e7d328e269e094211f951a8a50708c1b60724402499140bcbe000000000000000100000000000000010000000000000020429ead810e13405c3b60212aa5eafa299f1430976011b3956cf9ba62ffd1d91d0000000000000001000000000000000100000000000000206d6a12b490e789e5e3407255a61b3605485fc28f4ae6697fdbc41f4a62ac030e000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000002000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000010000000000000020ad0957a8e5a8e9b53925156e920ce9b1624772bf9a0f25da6dc5538415e91c0b0000000000000001000000000000000000000000000000202e8f9e9293aea3862946424b368c2188dd37c47551b2b3c17dafcb05e1a069f0000000000000000100000000000000010000000000000020cc627ebfb735c76ebe34f36ee0a06d28daf02822f990a9a92460f542562da42c000000000000000100000000000000010000000000000020a36932769c7f9a976b385d2c4064689e893729c460a7115012784ced44d4169f00000000000000010000000000000001000000000000002010edd26513dde9e2d4d9edde73c0914d7c3f4f5c44106edb1335190bd6a8675d00000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000001c00000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e400000000000000060000000000000001000000000000000100000000000000200f143a16674958d9e28ba2f3c853a0649499d01da8145da611d76a546d68bef1000000000000000100000000000000010000000000000020f49c977f2b28edaece65e109dec4da08ee8eff546c65598210fdc1cb3fd9371d0000000000000001000000000000000000000000000000203c9b84ea790b2a2a39d9611d6fffe81b8f6a4780bc49ceef9d562efb8bb0e3c100000000000000010000000000000000000000000000002025970c30f2158b64f6db602006cf8ec3088a6951235f1463b4ec26472e7bf04e000000000000000100000000000000000000000000000020c0476d0bd1bba12844993b2b90c4d4e74f42cb95a863a33400c0b3ce5d7afb970000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f000000000000001c000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000100000000000000201cceaf7c47376237f108fb8705182e5a6095143f1424c853d1f89ca4d8bb08ea000000000000000100000000000000010000000000000020273c8c891ee07115e20bf18ab52966cd99ea87ede285698502fc4dab8458420000000000000000010000000000000000000000000000002023d97489db03b380974b7d10e10c0a8f85c4800f21e95c23e7827615a90c923c0000000000000001000000000000000000000000000000200c4338e456e8a386ea42ad72cd73d95178039fdb76ee7e286661fbbf95bb3b040000000000000001000000000000000000000000000000201f243121b9b86ee340c8e4e148b031fbfec331be88bb0e695bd3254fd9dedc460000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000001c00000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d00000000000000060000000000000001000000000000000100000000000000205b5deb0951110878cfa71a1f38b71299dc8a5cfea1c1885555b870f45e8eb67f000000000000000100000000000000010000000000000020d4bc73bbfb3732c9c2675cee6355f9cf43f14e3b5c653d8eeb18f8e3de4baaa400000000000000010000000000000000000000000000002083b89a63fb02770e2f72bbc11c0bfed0438afe2b97dafc63d6b272c56e3f2360000000000000000100000000000000000000000000000020a978e635bc01e37323e8daa22db845c6f4b65dbff8aec0ddee43de3cb433d5d80000000000000001000000000000000000000000000000207c9185dc31c96b43974def3ef513a5c2fa4019e8f4cd70c66e8489740340b2d7000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000001c00000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b323000000000000000600000000000000010000000000000001000000000000002087ceeab2dcdbbd6564e193050b486fbaaa65eff65a8c2709c0cf05056435a63e000000000000000100000000000000010000000000000020a03ce711afd0464d0fe4a4b467dc0ff4cce8199435953d6464d6a43f2dd6bcd90000000000000001000000000000000000000000000000201480dd9071ccde4a4f721bb5a64cbd7ecff12cfd29018b3d672f16038683d05000000000000000010000000000000000000000000000002049d1d86419f38c5e84555595d210426f3d97ab19505fa1438516e93a0552e041000000000000000100000000000000000000000000000020c261b56a4b700b9884a920f66b25b3f4e5b6af88658d82bd2b16f6956d7a628f000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed000000000000001c000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b3000000000000000600000000000000010000000000000001000000000000002007b2feeb68aada7c46af118d947b98785bf627ff74d8f09bd55efb66542602b20000000000000001000000000000000100000000000000202712fb7df6ea6c8cd188ee825119f43fcd845fc37e172448ff0b368cb4a2e894000000000000000100000000000000000000000000000020a4f30078f6c82eeb23635e8509271f741f7df1496de69591523572481398a01a0000000000000001000000000000000000000000000000207f6c04f2a2686f09f8ed1d6818a1534af529f47bed8bb55dbf5eafcc3ebff42400000000000000010000000000000000000000000000002031c46556a8536b0d3fe56fdfff2cfb21049ba3d5264152ba04673f2caa7e535700000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000000000000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e400000000000000060000000000000001000000000000000100000000000000203bb89953794cd2baa3f836dec812c4b99b814f7577347c1b0508ae76233baf47000000000000000100000000000000010000000000000020e20bc164a2d176267835b99bb085e70ee37e78ff353a422c984073114f616b4a000000000000000100000000000000010000000000000020036e643e48a301a7a94aed42e82912eaec80e90bccc88d3226560d84666629b00000000000000001000000000000000100000000000000206a3d92b216e8d40712b4abc94e0d246cf0b1c2a650d3b728de1e144f5f135dd1000000000000000100000000000000010000000000000020cf7596a2151e6ecd0152bcfa96e547a86c616698a13eb311a31678d998a719af0000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000000000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000100000000000000203a66f41ebdb1cf249027d690746fb6e4c5816ecc627864f31cfe821cdd0df139000000000000000100000000000000010000000000000020b751ce72e98dccc2148ad757721ef6758c47d4aa7b0b42f5dec8be0e726cf8cb00000000000000010000000000000001000000000000002054be403ee6b8f8b6e7241a28dd4067a732c6494f9ca117cf49561797eed6d533000000000000000100000000000000010000000000000020012e51ceac3da1ee2785f84acb427d436432958c56fa02ff109defc16f64c3e100000000000000010000000000000001000000000000002031809213d4a7c0f0b7fbd21766c584377ac625d92403fd3c2e9421ca27c907db0000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000000000000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d0000000000000006000000000000000100000000000000010000000000000020bd730e5d7d21021a3b82c0debd626bb83120baa53da413056eb9f452064da95a0000000000000001000000000000000100000000000000204c709a8c4a4b20a4c4322b3ade4d3e9e2b2c7d4fc5883b395066ef3155908c7e00000000000000010000000000000001000000000000002070e7dcfc14e9faa78890ed551a4cf53d1af6bb685ff505bb76843215b07b7782000000000000000100000000000000010000000000000020c784e893e97965d1954bf00e2fab7b72fbb7d86352817409c7f61f9ee3d4be25000000000000000100000000000000010000000000000020ca05ed908befc970acc53cea33e55589e5965d8039c9e076f7ac7b36a36f6455000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000000000000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000010000000000000020e376b6de662a2fd89dab347b0d7c90b07a3cad0dc3e2f162c99458908e27606800000000000000010000000000000001000000000000002075301234c565dac1ae84d09889d3f1d888ce8c86485e941d03e337e1ffbc2f0f00000000000000010000000000000001000000000000002063108f8d0ebc57e7d328e269e094211f951a8a50708c1b60724402499140bcbe000000000000000100000000000000010000000000000020429ead810e13405c3b60212aa5eafa299f1430976011b3956cf9ba62ffd1d91d0000000000000001000000000000000100000000000000206d6a12b490e789e5e3407255a61b3605485fc28f4ae6697fdbc41f4a62ac030e000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000000000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000010000000000000020baf5f6d503b407d219fb1d31bf64c1689e66a5c830c810f50823a4b67bc9a4c600000000000000010000000000000001000000000000002088dfac425732a6e73e6bd9697ee39aa13bebcbfbd05a069dedfe620464f7420e000000000000000100000000000000010000000000000020cc627ebfb735c76ebe34f36ee0a06d28daf02822f990a9a92460f542562da42c000000000000000100000000000000010000000000000020a36932769c7f9a976b385d2c4064689e893729c460a7115012784ced44d4169f00000000000000010000000000000001000000000000002010edd26513dde9e2d4d9edde73c0914d7c3f4f5c44106edb1335190bd6a8675d00000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000001500000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e4000000000000000600000000000000010000000000000000000000000000002083fca54e46700fdc19b5808ae517cc0ac99ffafc4ea350df88cf68c383a0baa1000000000000000100000000000000010000000000000020cd6677de85b16b065ac594b9242fb27a207f45b22abab8921e1182d421ede8080000000000000001000000000000000000000000000000203033e580e5ecf18a4e51f0ecf90e49f75d07abf49e6e1f2fb0f6f3f21b2b13890000000000000001000000000000000100000000000000201796429c8b13ebc59c2f83b796b3b926978c70fec3627c1ec454c8494358fb2d000000000000000100000000000000000000000000000020c0476d0bd1bba12844993b2b90c4d4e74f42cb95a863a33400c0b3ce5d7afb970000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000015000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000000000000000000204f55e3f6bc9381d1bff63a964f5f17eb1c352d095126c6386bf0327af978a746000000000000000100000000000000010000000000000020beab344ab77c8598f29a53769f26f6315e9f6d6582bc2b9ff1c4ca2519f7d7f70000000000000001000000000000000000000000000000200fe86f07f5500c2b5e7c84736dc58b948b12731c0c53ee6e0bcf4e87b862641a00000000000000010000000000000001000000000000002085b5145a72d3b5cc42ebd3887f2b0d8b066dd487afb89617f433386cd39ad32e0000000000000001000000000000000000000000000000201f243121b9b86ee340c8e4e148b031fbfec331be88bb0e695bd3254fd9dedc460000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000001500000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d000000000000000600000000000000010000000000000000000000000000002028057a42dccd0f589047522b14cd391a55b93e97e0b8bc18a61dcc0e4b227f260000000000000001000000000000000100000000000000203970a3f189ca6e09449b5aaadbb2b4e4efd04c7f65ce13b05d5716fa50a425ab00000000000000010000000000000000000000000000002094f709638b3edb79f28d5546efd1d20615276922b29a850f63756fb3ca0c75990000000000000001000000000000000100000000000000204bbee7125d792587a9c1a2f857d5319e703fb6396be7cba35871f693d7de4ce00000000000000001000000000000000000000000000000207c9185dc31c96b43974def3ef513a5c2fa4019e8f4cd70c66e8489740340b2d7000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000001500000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b323000000000000000600000000000000010000000000000000000000000000002079bffa116b4ef85f25b45acef973a4fbd3d841c3bfd249fc24bc276fe02738850000000000000001000000000000000100000000000000202af2aa8e71f93d61fb3623054e61f3c8dc2f46b15086d77340818e316fbe544d000000000000000100000000000000000000000000000020717385618c24c857967504bf3b4790c277d34c10a2053f8387239b28978d282a0000000000000001000000000000000100000000000000206c36dc888e2b9eea00e51c0910ca1a39fed4c567e353a843c78f1449b7b894ec000000000000000100000000000000000000000000000020c261b56a4b700b9884a920f66b25b3f4e5b6af88658d82bd2b16f6956d7a628f000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000015000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b3000000000000000600000000000000010000000000000000000000000000002085977bbb663d7f8a6ab7c730fb25911ba8100e5d9e27ee9feda8fb1949da738b0000000000000001000000000000000100000000000000207c1229febc4bff04d2296f6692e6636ab7fe4d0e64e0de212b3aed75ef0ecbdb00000000000000010000000000000000000000000000002030d66f767abd1d0b73d7b3ea7c74252212fb4d88171febb5c5e5ed47357253ad00000000000000010000000000000001000000000000002057d66fcd5a6afc7d65bf36d032fddd74693048af41e04438e66c2fac0f88b93200000000000000010000000000000000000000000000002031c46556a8536b0d3fe56fdfff2cfb21049ba3d5264152ba04673f2caa7e535700000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000001600000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e400000000000000060000000000000001000000000000000100000000000000209c9f68f179d5614145d954a25ca3489db56fb3665016d4a567b890a88fb6a75300000000000000010000000000000000000000000000002044a1806f651125fbbfa67d925626256465e7abb7a2ae7d8ef65e4df52570a1cb0000000000000001000000000000000000000000000000203033e580e5ecf18a4e51f0ecf90e49f75d07abf49e6e1f2fb0f6f3f21b2b13890000000000000001000000000000000100000000000000201796429c8b13ebc59c2f83b796b3b926978c70fec3627c1ec454c8494358fb2d000000000000000100000000000000000000000000000020c0476d0bd1bba12844993b2b90c4d4e74f42cb95a863a33400c0b3ce5d7afb970000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000016000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f409000000000000000600000000000000010000000000000001000000000000002093be386e76e4bbd538c0305503a97a28483a1b5626eb2699b26634be0d0882270000000000000001000000000000000000000000000000200e6be21a80969c82d9a8a648fd8c8b22ad3b74446c59e3ba88884dbdd7b307370000000000000001000000000000000000000000000000200fe86f07f5500c2b5e7c84736dc58b948b12731c0c53ee6e0bcf4e87b862641a00000000000000010000000000000001000000000000002085b5145a72d3b5cc42ebd3887f2b0d8b066dd487afb89617f433386cd39ad32e0000000000000001000000000000000000000000000000201f243121b9b86ee340c8e4e148b031fbfec331be88bb0e695bd3254fd9dedc460000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000001600000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d0000000000000006000000000000000100000000000000010000000000000020e66cdfb0a64ca7f93f454c0e9699c009da1c3cc8231193bb8fffffcc42233c6a000000000000000100000000000000000000000000000020058ad57f2267f5915e9512b529b6b6a865d2d80f1db8107bfa704eaf5975fb2000000000000000010000000000000000000000000000002094f709638b3edb79f28d5546efd1d20615276922b29a850f63756fb3ca0c75990000000000000001000000000000000100000000000000204bbee7125d792587a9c1a2f857d5319e703fb6396be7cba35871f693d7de4ce00000000000000001000000000000000000000000000000207c9185dc31c96b43974def3ef513a5c2fa4019e8f4cd70c66e8489740340b2d7000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000001600000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000010000000000000020d39900d0d3640f1fd480bc288d7a830b41c7bee12c77a9e72f5e2ed30326067c0000000000000001000000000000000000000000000000202d0665c8f29e372a750e6cd91c673df89ec607d3915ac350e3b9d697a08ca3a7000000000000000100000000000000000000000000000020717385618c24c857967504bf3b4790c277d34c10a2053f8387239b28978d282a0000000000000001000000000000000100000000000000206c36dc888e2b9eea00e51c0910ca1a39fed4c567e353a843c78f1449b7b894ec000000000000000100000000000000000000000000000020c261b56a4b700b9884a920f66b25b3f4e5b6af88658d82bd2b16f6956d7a628f000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000016000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000010000000000000020db745643fb4f1b6a9143171d941835cd2a49f22b8df13eb8db0fa3266cb99fb400000000000000010000000000000000000000000000002046b00ad7e24abe5714eee2a57bfb6969d2c5459ff04f4e726e1955cac69c891700000000000000010000000000000000000000000000002030d66f767abd1d0b73d7b3ea7c74252212fb4d88171febb5c5e5ed47357253ad00000000000000010000000000000001000000000000002057d66fcd5a6afc7d65bf36d032fddd74693048af41e04438e66c2fac0f88b93200000000000000010000000000000000000000000000002031c46556a8536b0d3fe56fdfff2cfb21049ba3d5264152ba04673f2caa7e535700000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000000300000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e400000000000000060000000000000001000000000000000000000000000000208454707b6e7951d8801e198b78b3ac1d037b51b81d77be80edf6bfd3c537b0fc00000000000000010000000000000000000000000000002077289669ba2e6c829d0df23bcaafa73642d7223e17dbc52b19ed7228539b142d000000000000000100000000000000010000000000000020036e643e48a301a7a94aed42e82912eaec80e90bccc88d3226560d84666629b00000000000000001000000000000000100000000000000206a3d92b216e8d40712b4abc94e0d246cf0b1c2a650d3b728de1e144f5f135dd1000000000000000100000000000000010000000000000020cf7596a2151e6ecd0152bcfa96e547a86c616698a13eb311a31678d998a719af0000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000003000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000000000000000000208a3b2beebf801e823b9e7e8ca292c4aa008e373e9da13bbe5bf45c4a822197ed000000000000000100000000000000000000000000000020bdc88be5830648e3337ab2dd9af9e37f3e648a38fc1e26fac2cc4c99f0a0972500000000000000010000000000000001000000000000002054be403ee6b8f8b6e7241a28dd4067a732c6494f9ca117cf49561797eed6d533000000000000000100000000000000010000000000000020012e51ceac3da1ee2785f84acb427d436432958c56fa02ff109defc16f64c3e100000000000000010000000000000001000000000000002031809213d4a7c0f0b7fbd21766c584377ac625d92403fd3c2e9421ca27c907db0000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000000300000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d00000000000000060000000000000001000000000000000000000000000000203154ffb0123f45c5b0bc96dbe3e8becd2aaaadedbca9c86f42ceb15e5ade783d000000000000000100000000000000000000000000000020d3d0be1ee60e216e6b2e044a6a83b4011aa9501107b8451217664cf027ddd83b00000000000000010000000000000001000000000000002070e7dcfc14e9faa78890ed551a4cf53d1af6bb685ff505bb76843215b07b7782000000000000000100000000000000010000000000000020c784e893e97965d1954bf00e2fab7b72fbb7d86352817409c7f61f9ee3d4be25000000000000000100000000000000010000000000000020ca05ed908befc970acc53cea33e55589e5965d8039c9e076f7ac7b36a36f6455000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000000300000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b323000000000000000600000000000000010000000000000000000000000000002050705274cb528e0c14ec33963539e066c064372be245d9f1b7b7c237967164500000000000000001000000000000000000000000000000200128dd090282e79c47f4be830c206958d62c000e2c62ed2d2ded81fe59564c8700000000000000010000000000000001000000000000002063108f8d0ebc57e7d328e269e094211f951a8a50708c1b60724402499140bcbe000000000000000100000000000000010000000000000020429ead810e13405c3b60212aa5eafa299f1430976011b3956cf9ba62ffd1d91d0000000000000001000000000000000100000000000000206d6a12b490e789e5e3407255a61b3605485fc28f4ae6697fdbc41f4a62ac030e000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000003000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000000000000000000020b9a4747e8dd350df110778a74d35378dfe87596e509c569dc044b979831360bd0000000000000001000000000000000000000000000000202e8f9e9293aea3862946424b368c2188dd37c47551b2b3c17dafcb05e1a069f0000000000000000100000000000000010000000000000020cc627ebfb735c76ebe34f36ee0a06d28daf02822f990a9a92460f542562da42c000000000000000100000000000000010000000000000020a36932769c7f9a976b385d2c4064689e893729c460a7115012784ced44d4169f00000000000000010000000000000001000000000000002010edd26513dde9e2d4d9edde73c0914d7c3f4f5c44106edb1335190bd6a8675d00000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000002d00000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e40000000000000006000000000000000100000000000000000000000000000020131e92b88b0a6d8b34699bbd2e9d86bdc39820bbadd8647fb23ca2b15dca9d590000000000000001000000000000000100000000000000208922f1b9f3074614b9db6f2549f3f5ce07ee8adbd9ac84e77de64f3f788a6eb5000000000000000100000000000000000000000000000020f3ad8fc6cfa3a99b28d096c90990f3c24ac076ab3cf689b7c267a1448cd773cb0000000000000001000000000000000000000000000000206c4baf98bc80c1abc6c59b8e82f4c2dc23405a6bc1abbc273de0e45984ffb9a00000000000000001000000000000000100000000000000201b96bf994f53f651394f15f5db116e896fa1ab44efe0a6262949e96de58bff090000000000000001000000000000000000000000000000202fa23e2d798b08467838b865973a53e4e19c5b2d80ade19cbb180aec56a9376e000000000000002d000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000000000000000000020d41d64993a4b576ff654a56ff2004cdcd4253b33e3a6f608478c2234f5fa046d000000000000000100000000000000010000000000000020c2544d7afbaa104d2d14886250617b176a0c680dbbb2ca48fdc472889ac8d452000000000000000100000000000000000000000000000020dd8b3cce2949cdb0d005dfcb4be92dddbcd03e8339b76662b640dd5480343878000000000000000100000000000000000000000000000020afbf1f71bc2124f671aca446e85c5b2a26b711122acb80fefe81dd090fdb8e9a00000000000000010000000000000001000000000000002046692d64e298cf42f3e0cf09149e8b1ba6093100c0f4d1501fee627da591f20e00000000000000010000000000000000000000000000002072c42711719626fc8bcaf082271589b458b73b63db94ea53c13e43ca03482214000000000000002d00000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d00000000000000060000000000000001000000000000000000000000000000206123be6594b9bab75aa9b2ab21d2bf69c3f067277618653028305a723fad41ba00000000000000010000000000000001000000000000002029d9a560ae6a780451ad91c7dee92ef3b9657a51559ed0a5c24d9ca761d680d0000000000000000100000000000000000000000000000020bdc5f7058de4f0db1e5c2da6a8823447801030e8d5200d3ea7b7de97786ee2d2000000000000000100000000000000000000000000000020463fbc9d5384e010009b169ceb3ef07bf1aae15d890cb1f5c86ec0fc5db6441a000000000000000100000000000000010000000000000020b865081822324014a2ad2adb025c6233367d552e7b8d5c65dcb3c00b68fdb2770000000000000001000000000000000000000000000000208b04487c0e92a27b8ce6e22f25723473ab966eb251464fa6d919c39ac29a60ff000000000000002d00000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b32300000000000000060000000000000001000000000000000000000000000000208e707591cbd8abb67a7b380462059c139bdc0be5bcb14fb69250cae4986e8f1d0000000000000001000000000000000100000000000000205d08cb676e9a43f004ed3cd33feb328f0c147e417fe17f18a75f9973cd323f7d000000000000000100000000000000000000000000000020d88f0886a68098a59d72569dfe3299ad38edcc59bd11338a537a8bf7aded471a00000000000000010000000000000000000000000000002059e0cffb1b66783ce400ea9e93bbaeaf0fc9283c9cfd578c65daa4375f5e01900000000000000001000000000000000100000000000000201da2e84c157ae73f74b662421f72dc7af8ef5d8001e6e962a5538cb1a53a8321000000000000000100000000000000000000000000000020a00b07acea464ec37ab41d5472f9101cc13a3cdfaa5f141199b9dad4efa0ccc3000000000000002d000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000000000000000000020bef08993e8ee26516c875432116ff4c1b8b45a302d15bcd77bcf87a8759d243d0000000000000001000000000000000100000000000000205db7a80f55dd7bd507d1603151fee6c109db040c4b431da58fd33002603a4e4d00000000000000010000000000000000000000000000002006ed4e0ef5d3ce0c49b6e8950af99435b5bca3905a6502fd9190b6f084a505f5000000000000000100000000000000000000000000000020d2ace2c01e400a2af009a43598dd9e34d359aa6ac5e1e4e2607befbfd9a370180000000000000001000000000000000100000000000000209cabf053781e02384f83b3ede75bfaadda9578d1f80727f379b0adbcf4e706d200000000000000010000000000000000000000000000002078cb1457e1c5d6fa6b6138eeb2c7dfa980dd7fa53f0e6b7e1e5bdc43f459f12c000000000000001600000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e400000000000000060000000000000001000000000000000100000000000000209c9f68f179d5614145d954a25ca3489db56fb3665016d4a567b890a88fb6a75300000000000000010000000000000000000000000000002044a1806f651125fbbfa67d925626256465e7abb7a2ae7d8ef65e4df52570a1cb0000000000000001000000000000000000000000000000203033e580e5ecf18a4e51f0ecf90e49f75d07abf49e6e1f2fb0f6f3f21b2b13890000000000000001000000000000000100000000000000201796429c8b13ebc59c2f83b796b3b926978c70fec3627c1ec454c8494358fb2d000000000000000100000000000000000000000000000020c0476d0bd1bba12844993b2b90c4d4e74f42cb95a863a33400c0b3ce5d7afb970000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000016000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f409000000000000000600000000000000010000000000000001000000000000002093be386e76e4bbd538c0305503a97a28483a1b5626eb2699b26634be0d0882270000000000000001000000000000000000000000000000200e6be21a80969c82d9a8a648fd8c8b22ad3b74446c59e3ba88884dbdd7b307370000000000000001000000000000000000000000000000200fe86f07f5500c2b5e7c84736dc58b948b12731c0c53ee6e0bcf4e87b862641a00000000000000010000000000000001000000000000002085b5145a72d3b5cc42ebd3887f2b0d8b066dd487afb89617f433386cd39ad32e0000000000000001000000000000000000000000000000201f243121b9b86ee340c8e4e148b031fbfec331be88bb0e695bd3254fd9dedc460000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000001600000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d0000000000000006000000000000000100000000000000010000000000000020e66cdfb0a64ca7f93f454c0e9699c009da1c3cc8231193bb8fffffcc42233c6a000000000000000100000000000000000000000000000020058ad57f2267f5915e9512b529b6b6a865d2d80f1db8107bfa704eaf5975fb2000000000000000010000000000000000000000000000002094f709638b3edb79f28d5546efd1d20615276922b29a850f63756fb3ca0c75990000000000000001000000000000000100000000000000204bbee7125d792587a9c1a2f857d5319e703fb6396be7cba35871f693d7de4ce00000000000000001000000000000000000000000000000207c9185dc31c96b43974def3ef513a5c2fa4019e8f4cd70c66e8489740340b2d7000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000001600000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000010000000000000020d39900d0d3640f1fd480bc288d7a830b41c7bee12c77a9e72f5e2ed30326067c0000000000000001000000000000000000000000000000202d0665c8f29e372a750e6cd91c673df89ec607d3915ac350e3b9d697a08ca3a7000000000000000100000000000000000000000000000020717385618c24c857967504bf3b4790c277d34c10a2053f8387239b28978d282a0000000000000001000000000000000100000000000000206c36dc888e2b9eea00e51c0910ca1a39fed4c567e353a843c78f1449b7b894ec000000000000000100000000000000000000000000000020c261b56a4b700b9884a920f66b25b3f4e5b6af88658d82bd2b16f6956d7a628f000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000016000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000010000000000000020db745643fb4f1b6a9143171d941835cd2a49f22b8df13eb8db0fa3266cb99fb400000000000000010000000000000000000000000000002046b00ad7e24abe5714eee2a57bfb6969d2c5459ff04f4e726e1955cac69c891700000000000000010000000000000000000000000000002030d66f767abd1d0b73d7b3ea7c74252212fb4d88171febb5c5e5ed47357253ad00000000000000010000000000000001000000000000002057d66fcd5a6afc7d65bf36d032fddd74693048af41e04438e66c2fac0f88b93200000000000000010000000000000000000000000000002031c46556a8536b0d3fe56fdfff2cfb21049ba3d5264152ba04673f2caa7e535700000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000002700000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e40000000000000006000000000000000100000000000000000000000000000020b2c3cf21c16d10118be05ea9f06a74c8636e1894dc001fce8df8979fbf53c7ac0000000000000001000000000000000000000000000000208cbdb49d77f56b3a6db9221d1d57b04818fca524c7267a0e8d4022fcfafd117800000000000000010000000000000000000000000000002055c308be9438db42c91d1431d01b869ac37750ba0513a5170220112753ea0a6d000000000000000100000000000000010000000000000020a5edd8ba3a02c79d2a439b5c19c698d48a65e1da6ea81f91e95da0f3870facfe0000000000000001000000000000000100000000000000201b96bf994f53f651394f15f5db116e896fa1ab44efe0a6262949e96de58bff090000000000000001000000000000000000000000000000202fa23e2d798b08467838b865973a53e4e19c5b2d80ade19cbb180aec56a9376e0000000000000027000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000000000000000000204977e800cfc467c1d09085ed6e9512c718f6873f75f0b6378f811505aaef10de000000000000000100000000000000000000000000000020caa15c2cef9d0822879f1cbc7e47bf2ecca0c34dcce47cf21e705e0c27facd2800000000000000010000000000000000000000000000002094bfaa799c5496d89c7fba1c0074bf53e44026b1e3dfcc51a0820cda8b8b592e00000000000000010000000000000001000000000000002091ef79e3954e71b043bab2f4f7563da4ffcc85b3b6a3abb402389ce312ae3a1b00000000000000010000000000000001000000000000002046692d64e298cf42f3e0cf09149e8b1ba6093100c0f4d1501fee627da591f20e00000000000000010000000000000000000000000000002072c42711719626fc8bcaf082271589b458b73b63db94ea53c13e43ca03482214000000000000002700000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d0000000000000006000000000000000100000000000000000000000000000020203b37c58e39089e089de87b86bcdff0e4f149ca576b2ef9fc50463f30eb32ca0000000000000001000000000000000000000000000000201a74b33545d3a31e38488fc2de7d796ea63b27a71bd3cb3cc8ae63fac1b7efad0000000000000001000000000000000000000000000000205821e6171d155bf5aafbdc8474a3a9c33f58e247c6f3c54f71d8c9caaf009eb800000000000000010000000000000001000000000000002013307d874fafd2c736df4f1675c3fc7573fd05858f421470013ba3aa52dcdcac000000000000000100000000000000010000000000000020b865081822324014a2ad2adb025c6233367d552e7b8d5c65dcb3c00b68fdb2770000000000000001000000000000000000000000000000208b04487c0e92a27b8ce6e22f25723473ab966eb251464fa6d919c39ac29a60ff000000000000002700000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b32300000000000000060000000000000001000000000000000000000000000000200a24f0f06db4a7d7321e4900fff281689501ee4f536d67d58bccb4368412ed0e0000000000000001000000000000000000000000000000207d428f3d57f89f1804dbbaa40de511c119d8f43b693258ebba485c5b8aedfc91000000000000000100000000000000000000000000000020c05b0bfce2b5cf26286b63fee5b1ce52f6fd2d6f3b79f0407ca7ced961abd5100000000000000001000000000000000100000000000000205333dabae5459fcb448fee6926384a3bafc2af8b75f276339e9b28108bb4995d0000000000000001000000000000000100000000000000201da2e84c157ae73f74b662421f72dc7af8ef5d8001e6e962a5538cb1a53a8321000000000000000100000000000000000000000000000020a00b07acea464ec37ab41d5472f9101cc13a3cdfaa5f141199b9dad4efa0ccc30000000000000027000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000000000000000000020f90e8e24d2cf73ab6c6eadaccc24f9204e0c7d3a7ee2fcc30369cb209394ed62000000000000000100000000000000000000000000000020cd263aed361b4e176016494f2e92a46d33c7ff0629bac17eaaf60ea69c1674660000000000000001000000000000000000000000000000200953edfc6e8ff0936b8105e6357c9590e4f20e0497be561dc97db9d13e014c0d000000000000000100000000000000010000000000000020cd1cbe0f3f5a57ed48862a459d119ab55aa7fbf2685055ced90ff45d1e7cd0720000000000000001000000000000000100000000000000209cabf053781e02384f83b3ede75bfaadda9578d1f80727f379b0adbcf4e706d200000000000000010000000000000000000000000000002078cb1457e1c5d6fa6b6138eeb2c7dfa980dd7fa53f0e6b7e1e5bdc43f459f12c000000000000002700000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e40000000000000006000000000000000100000000000000000000000000000020b2c3cf21c16d10118be05ea9f06a74c8636e1894dc001fce8df8979fbf53c7ac0000000000000001000000000000000000000000000000208cbdb49d77f56b3a6db9221d1d57b04818fca524c7267a0e8d4022fcfafd117800000000000000010000000000000000000000000000002055c308be9438db42c91d1431d01b869ac37750ba0513a5170220112753ea0a6d000000000000000100000000000000010000000000000020a5edd8ba3a02c79d2a439b5c19c698d48a65e1da6ea81f91e95da0f3870facfe0000000000000001000000000000000100000000000000201b96bf994f53f651394f15f5db116e896fa1ab44efe0a6262949e96de58bff090000000000000001000000000000000000000000000000202fa23e2d798b08467838b865973a53e4e19c5b2d80ade19cbb180aec56a9376e0000000000000027000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000000000000000000204977e800cfc467c1d09085ed6e9512c718f6873f75f0b6378f811505aaef10de000000000000000100000000000000000000000000000020caa15c2cef9d0822879f1cbc7e47bf2ecca0c34dcce47cf21e705e0c27facd2800000000000000010000000000000000000000000000002094bfaa799c5496d89c7fba1c0074bf53e44026b1e3dfcc51a0820cda8b8b592e00000000000000010000000000000001000000000000002091ef79e3954e71b043bab2f4f7563da4ffcc85b3b6a3abb402389ce312ae3a1b00000000000000010000000000000001000000000000002046692d64e298cf42f3e0cf09149e8b1ba6093100c0f4d1501fee627da591f20e00000000000000010000000000000000000000000000002072c42711719626fc8bcaf082271589b458b73b63db94ea53c13e43ca03482214000000000000002700000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d0000000000000006000000000000000100000000000000000000000000000020203b37c58e39089e089de87b86bcdff0e4f149ca576b2ef9fc50463f30eb32ca0000000000000001000000000000000000000000000000201a74b33545d3a31e38488fc2de7d796ea63b27a71bd3cb3cc8ae63fac1b7efad0000000000000001000000000000000000000000000000205821e6171d155bf5aafbdc8474a3a9c33f58e247c6f3c54f71d8c9caaf009eb800000000000000010000000000000001000000000000002013307d874fafd2c736df4f1675c3fc7573fd05858f421470013ba3aa52dcdcac000000000000000100000000000000010000000000000020b865081822324014a2ad2adb025c6233367d552e7b8d5c65dcb3c00b68fdb2770000000000000001000000000000000000000000000000208b04487c0e92a27b8ce6e22f25723473ab966eb251464fa6d919c39ac29a60ff000000000000002700000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b32300000000000000060000000000000001000000000000000000000000000000200a24f0f06db4a7d7321e4900fff281689501ee4f536d67d58bccb4368412ed0e0000000000000001000000000000000000000000000000207d428f3d57f89f1804dbbaa40de511c119d8f43b693258ebba485c5b8aedfc91000000000000000100000000000000000000000000000020c05b0bfce2b5cf26286b63fee5b1ce52f6fd2d6f3b79f0407ca7ced961abd5100000000000000001000000000000000100000000000000205333dabae5459fcb448fee6926384a3bafc2af8b75f276339e9b28108bb4995d0000000000000001000000000000000100000000000000201da2e84c157ae73f74b662421f72dc7af8ef5d8001e6e962a5538cb1a53a8321000000000000000100000000000000000000000000000020a00b07acea464ec37ab41d5472f9101cc13a3cdfaa5f141199b9dad4efa0ccc30000000000000027000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000000000000000000020f90e8e24d2cf73ab6c6eadaccc24f9204e0c7d3a7ee2fcc30369cb209394ed62000000000000000100000000000000000000000000000020cd263aed361b4e176016494f2e92a46d33c7ff0629bac17eaaf60ea69c1674660000000000000001000000000000000000000000000000200953edfc6e8ff0936b8105e6357c9590e4f20e0497be561dc97db9d13e014c0d000000000000000100000000000000010000000000000020cd1cbe0f3f5a57ed48862a459d119ab55aa7fbf2685055ced90ff45d1e7cd0720000000000000001000000000000000100000000000000209cabf053781e02384f83b3ede75bfaadda9578d1f80727f379b0adbcf4e706d200000000000000010000000000000000000000000000002078cb1457e1c5d6fa6b6138eeb2c7dfa980dd7fa53f0e6b7e1e5bdc43f459f12c000000000000002d00000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e40000000000000006000000000000000100000000000000000000000000000020131e92b88b0a6d8b34699bbd2e9d86bdc39820bbadd8647fb23ca2b15dca9d590000000000000001000000000000000100000000000000208922f1b9f3074614b9db6f2549f3f5ce07ee8adbd9ac84e77de64f3f788a6eb5000000000000000100000000000000000000000000000020f3ad8fc6cfa3a99b28d096c90990f3c24ac076ab3cf689b7c267a1448cd773cb0000000000000001000000000000000000000000000000206c4baf98bc80c1abc6c59b8e82f4c2dc23405a6bc1abbc273de0e45984ffb9a00000000000000001000000000000000100000000000000201b96bf994f53f651394f15f5db116e896fa1ab44efe0a6262949e96de58bff090000000000000001000000000000000000000000000000202fa23e2d798b08467838b865973a53e4e19c5b2d80ade19cbb180aec56a9376e000000000000002d000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000000000000000000020d41d64993a4b576ff654a56ff2004cdcd4253b33e3a6f608478c2234f5fa046d000000000000000100000000000000010000000000000020c2544d7afbaa104d2d14886250617b176a0c680dbbb2ca48fdc472889ac8d452000000000000000100000000000000000000000000000020dd8b3cce2949cdb0d005dfcb4be92dddbcd03e8339b76662b640dd5480343878000000000000000100000000000000000000000000000020afbf1f71bc2124f671aca446e85c5b2a26b711122acb80fefe81dd090fdb8e9a00000000000000010000000000000001000000000000002046692d64e298cf42f3e0cf09149e8b1ba6093100c0f4d1501fee627da591f20e00000000000000010000000000000000000000000000002072c42711719626fc8bcaf082271589b458b73b63db94ea53c13e43ca03482214000000000000002d00000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d00000000000000060000000000000001000000000000000000000000000000206123be6594b9bab75aa9b2ab21d2bf69c3f067277618653028305a723fad41ba00000000000000010000000000000001000000000000002029d9a560ae6a780451ad91c7dee92ef3b9657a51559ed0a5c24d9ca761d680d0000000000000000100000000000000000000000000000020bdc5f7058de4f0db1e5c2da6a8823447801030e8d5200d3ea7b7de97786ee2d2000000000000000100000000000000000000000000000020463fbc9d5384e010009b169ceb3ef07bf1aae15d890cb1f5c86ec0fc5db6441a000000000000000100000000000000010000000000000020b865081822324014a2ad2adb025c6233367d552e7b8d5c65dcb3c00b68fdb2770000000000000001000000000000000000000000000000208b04487c0e92a27b8ce6e22f25723473ab966eb251464fa6d919c39ac29a60ff000000000000002d00000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b32300000000000000060000000000000001000000000000000000000000000000208e707591cbd8abb67a7b380462059c139bdc0be5bcb14fb69250cae4986e8f1d0000000000000001000000000000000100000000000000205d08cb676e9a43f004ed3cd33feb328f0c147e417fe17f18a75f9973cd323f7d000000000000000100000000000000000000000000000020d88f0886a68098a59d72569dfe3299ad38edcc59bd11338a537a8bf7aded471a00000000000000010000000000000000000000000000002059e0cffb1b66783ce400ea9e93bbaeaf0fc9283c9cfd578c65daa4375f5e01900000000000000001000000000000000100000000000000201da2e84c157ae73f74b662421f72dc7af8ef5d8001e6e962a5538cb1a53a8321000000000000000100000000000000000000000000000020a00b07acea464ec37ab41d5472f9101cc13a3cdfaa5f141199b9dad4efa0ccc3000000000000002d000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000000000000000000020bef08993e8ee26516c875432116ff4c1b8b45a302d15bcd77bcf87a8759d243d0000000000000001000000000000000100000000000000205db7a80f55dd7bd507d1603151fee6c109db040c4b431da58fd33002603a4e4d00000000000000010000000000000000000000000000002006ed4e0ef5d3ce0c49b6e8950af99435b5bca3905a6502fd9190b6f084a505f5000000000000000100000000000000000000000000000020d2ace2c01e400a2af009a43598dd9e34d359aa6ac5e1e4e2607befbfd9a370180000000000000001000000000000000100000000000000209cabf053781e02384f83b3ede75bfaadda9578d1f80727f379b0adbcf4e706d200000000000000010000000000000000000000000000002078cb1457e1c5d6fa6b6138eeb2c7dfa980dd7fa53f0e6b7e1e5bdc43f459f12c000000000000000000000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e400000000000000060000000000000001000000000000000100000000000000203bb89953794cd2baa3f836dec812c4b99b814f7577347c1b0508ae76233baf47000000000000000100000000000000010000000000000020e20bc164a2d176267835b99bb085e70ee37e78ff353a422c984073114f616b4a000000000000000100000000000000010000000000000020036e643e48a301a7a94aed42e82912eaec80e90bccc88d3226560d84666629b00000000000000001000000000000000100000000000000206a3d92b216e8d40712b4abc94e0d246cf0b1c2a650d3b728de1e144f5f135dd1000000000000000100000000000000010000000000000020cf7596a2151e6ecd0152bcfa96e547a86c616698a13eb311a31678d998a719af0000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000000000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000100000000000000203a66f41ebdb1cf249027d690746fb6e4c5816ecc627864f31cfe821cdd0df139000000000000000100000000000000010000000000000020b751ce72e98dccc2148ad757721ef6758c47d4aa7b0b42f5dec8be0e726cf8cb00000000000000010000000000000001000000000000002054be403ee6b8f8b6e7241a28dd4067a732c6494f9ca117cf49561797eed6d533000000000000000100000000000000010000000000000020012e51ceac3da1ee2785f84acb427d436432958c56fa02ff109defc16f64c3e100000000000000010000000000000001000000000000002031809213d4a7c0f0b7fbd21766c584377ac625d92403fd3c2e9421ca27c907db0000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000000000000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d0000000000000006000000000000000100000000000000010000000000000020bd730e5d7d21021a3b82c0debd626bb83120baa53da413056eb9f452064da95a0000000000000001000000000000000100000000000000204c709a8c4a4b20a4c4322b3ade4d3e9e2b2c7d4fc5883b395066ef3155908c7e00000000000000010000000000000001000000000000002070e7dcfc14e9faa78890ed551a4cf53d1af6bb685ff505bb76843215b07b7782000000000000000100000000000000010000000000000020c784e893e97965d1954bf00e2fab7b72fbb7d86352817409c7f61f9ee3d4be25000000000000000100000000000000010000000000000020ca05ed908befc970acc53cea33e55589e5965d8039c9e076f7ac7b36a36f6455000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000000000000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000010000000000000020e376b6de662a2fd89dab347b0d7c90b07a3cad0dc3e2f162c99458908e27606800000000000000010000000000000001000000000000002075301234c565dac1ae84d09889d3f1d888ce8c86485e941d03e337e1ffbc2f0f00000000000000010000000000000001000000000000002063108f8d0ebc57e7d328e269e094211f951a8a50708c1b60724402499140bcbe000000000000000100000000000000010000000000000020429ead810e13405c3b60212aa5eafa299f1430976011b3956cf9ba62ffd1d91d0000000000000001000000000000000100000000000000206d6a12b490e789e5e3407255a61b3605485fc28f4ae6697fdbc41f4a62ac030e000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000000000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000010000000000000020baf5f6d503b407d219fb1d31bf64c1689e66a5c830c810f50823a4b67bc9a4c600000000000000010000000000000001000000000000002088dfac425732a6e73e6bd9697ee39aa13bebcbfbd05a069dedfe620464f7420e000000000000000100000000000000010000000000000020cc627ebfb735c76ebe34f36ee0a06d28daf02822f990a9a92460f542562da42c000000000000000100000000000000010000000000000020a36932769c7f9a976b385d2c4064689e893729c460a7115012784ced44d4169f00000000000000010000000000000001000000000000002010edd26513dde9e2d4d9edde73c0914d7c3f4f5c44106edb1335190bd6a8675d00000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000002f00000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e40000000000000006000000000000000100000000000000000000000000000020d759e7e0c0fa96a5bbfca84b4dc1fd73baaa4252bd418254dd5a157336a596ac00000000000000010000000000000000000000000000002020cfa38e76c620e335a635dbf82e40ebdf68ad527fe5e7944efa65cd70acb4e8000000000000000100000000000000000000000000000020f3ad8fc6cfa3a99b28d096c90990f3c24ac076ab3cf689b7c267a1448cd773cb0000000000000001000000000000000000000000000000206c4baf98bc80c1abc6c59b8e82f4c2dc23405a6bc1abbc273de0e45984ffb9a00000000000000001000000000000000100000000000000201b96bf994f53f651394f15f5db116e896fa1ab44efe0a6262949e96de58bff090000000000000001000000000000000000000000000000202fa23e2d798b08467838b865973a53e4e19c5b2d80ade19cbb180aec56a9376e000000000000002f000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000000000000000000020c9c6bbf782e36adc2ce58caec0a28797c616906d28693ae7d8fa8836086c08450000000000000001000000000000000000000000000000207f55f80d651144dca460e66b37a2533f9efd86b2044d033a8a5eeca8e67d1be6000000000000000100000000000000000000000000000020dd8b3cce2949cdb0d005dfcb4be92dddbcd03e8339b76662b640dd5480343878000000000000000100000000000000000000000000000020afbf1f71bc2124f671aca446e85c5b2a26b711122acb80fefe81dd090fdb8e9a00000000000000010000000000000001000000000000002046692d64e298cf42f3e0cf09149e8b1ba6093100c0f4d1501fee627da591f20e00000000000000010000000000000000000000000000002072c42711719626fc8bcaf082271589b458b73b63db94ea53c13e43ca03482214000000000000002f00000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d0000000000000006000000000000000100000000000000000000000000000020f8e4732d14ff9911d71b08e9ab9356e3757dcbcfcf498d45bf8842c519595d9900000000000000010000000000000000000000000000002072b550c74168f0a728985bbcb8f2cdd2bba61ab871852dbb35a88678d113d222000000000000000100000000000000000000000000000020bdc5f7058de4f0db1e5c2da6a8823447801030e8d5200d3ea7b7de97786ee2d2000000000000000100000000000000000000000000000020463fbc9d5384e010009b169ceb3ef07bf1aae15d890cb1f5c86ec0fc5db6441a000000000000000100000000000000010000000000000020b865081822324014a2ad2adb025c6233367d552e7b8d5c65dcb3c00b68fdb2770000000000000001000000000000000000000000000000208b04487c0e92a27b8ce6e22f25723473ab966eb251464fa6d919c39ac29a60ff000000000000002f00000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b32300000000000000060000000000000001000000000000000000000000000000201e87a16b7e97dc5568c507ee81a13788ab080551ff7825c86931f06bd913d5d9000000000000000100000000000000000000000000000020bb891ce3ccd2d3c3746b970108f3480b1f7db231cf78ce2b7b7247ae8bfef9d3000000000000000100000000000000000000000000000020d88f0886a68098a59d72569dfe3299ad38edcc59bd11338a537a8bf7aded471a00000000000000010000000000000000000000000000002059e0cffb1b66783ce400ea9e93bbaeaf0fc9283c9cfd578c65daa4375f5e01900000000000000001000000000000000100000000000000201da2e84c157ae73f74b662421f72dc7af8ef5d8001e6e962a5538cb1a53a8321000000000000000100000000000000000000000000000020a00b07acea464ec37ab41d5472f9101cc13a3cdfaa5f141199b9dad4efa0ccc3000000000000002f000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b300000000000000060000000000000001000000000000000000000000000000204f635a7b571f013735831c17a8d10e8b0b77a681fb94977b7241ec4a11e2d238000000000000000100000000000000000000000000000020f343e783b77e1c5d9c2b1a1afed07d74274605f0d80f9855757e6531c38ed81800000000000000010000000000000000000000000000002006ed4e0ef5d3ce0c49b6e8950af99435b5bca3905a6502fd9190b6f084a505f5000000000000000100000000000000000000000000000020d2ace2c01e400a2af009a43598dd9e34d359aa6ac5e1e4e2607befbfd9a370180000000000000001000000000000000100000000000000209cabf053781e02384f83b3ede75bfaadda9578d1f80727f379b0adbcf4e706d200000000000000010000000000000000000000000000002078cb1457e1c5d6fa6b6138eeb2c7dfa980dd7fa53f0e6b7e1e5bdc43f459f12c000000000000001c00000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e400000000000000060000000000000001000000000000000100000000000000200f143a16674958d9e28ba2f3c853a0649499d01da8145da611d76a546d68bef1000000000000000100000000000000010000000000000020f49c977f2b28edaece65e109dec4da08ee8eff546c65598210fdc1cb3fd9371d0000000000000001000000000000000000000000000000203c9b84ea790b2a2a39d9611d6fffe81b8f6a4780bc49ceef9d562efb8bb0e3c100000000000000010000000000000000000000000000002025970c30f2158b64f6db602006cf8ec3088a6951235f1463b4ec26472e7bf04e000000000000000100000000000000000000000000000020c0476d0bd1bba12844993b2b90c4d4e74f42cb95a863a33400c0b3ce5d7afb970000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f000000000000001c000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000100000000000000201cceaf7c47376237f108fb8705182e5a6095143f1424c853d1f89ca4d8bb08ea000000000000000100000000000000010000000000000020273c8c891ee07115e20bf18ab52966cd99ea87ede285698502fc4dab8458420000000000000000010000000000000000000000000000002023d97489db03b380974b7d10e10c0a8f85c4800f21e95c23e7827615a90c923c0000000000000001000000000000000000000000000000200c4338e456e8a386ea42ad72cd73d95178039fdb76ee7e286661fbbf95bb3b040000000000000001000000000000000000000000000000201f243121b9b86ee340c8e4e148b031fbfec331be88bb0e695bd3254fd9dedc460000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000001c00000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d00000000000000060000000000000001000000000000000100000000000000205b5deb0951110878cfa71a1f38b71299dc8a5cfea1c1885555b870f45e8eb67f000000000000000100000000000000010000000000000020d4bc73bbfb3732c9c2675cee6355f9cf43f14e3b5c653d8eeb18f8e3de4baaa400000000000000010000000000000000000000000000002083b89a63fb02770e2f72bbc11c0bfed0438afe2b97dafc63d6b272c56e3f2360000000000000000100000000000000000000000000000020a978e635bc01e37323e8daa22db845c6f4b65dbff8aec0ddee43de3cb433d5d80000000000000001000000000000000000000000000000207c9185dc31c96b43974def3ef513a5c2fa4019e8f4cd70c66e8489740340b2d7000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000001c00000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b323000000000000000600000000000000010000000000000001000000000000002087ceeab2dcdbbd6564e193050b486fbaaa65eff65a8c2709c0cf05056435a63e000000000000000100000000000000010000000000000020a03ce711afd0464d0fe4a4b467dc0ff4cce8199435953d6464d6a43f2dd6bcd90000000000000001000000000000000000000000000000201480dd9071ccde4a4f721bb5a64cbd7ecff12cfd29018b3d672f16038683d05000000000000000010000000000000000000000000000002049d1d86419f38c5e84555595d210426f3d97ab19505fa1438516e93a0552e041000000000000000100000000000000000000000000000020c261b56a4b700b9884a920f66b25b3f4e5b6af88658d82bd2b16f6956d7a628f000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed000000000000001c000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b3000000000000000600000000000000010000000000000001000000000000002007b2feeb68aada7c46af118d947b98785bf627ff74d8f09bd55efb66542602b20000000000000001000000000000000100000000000000202712fb7df6ea6c8cd188ee825119f43fcd845fc37e172448ff0b368cb4a2e894000000000000000100000000000000000000000000000020a4f30078f6c82eeb23635e8509271f741f7df1496de69591523572481398a01a0000000000000001000000000000000000000000000000207f6c04f2a2686f09f8ed1d6818a1534af529f47bed8bb55dbf5eafcc3ebff42400000000000000010000000000000000000000000000002031c46556a8536b0d3fe56fdfff2cfb21049ba3d5264152ba04673f2caa7e535700000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000005000000000000000290000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b3910000000000000006000000000000000100000000000000000000000000000020c74c7a663f5e5556cce5e40dcc4723a254a1289f2fec0e4a804e4a8743f9321a0000000000000001000000000000000100000000000000207e96198588b2c98048a2a523e89e4582b6ba4e3f31bbe96b996cfa77624978a6000000000000000100000000000000010000000000000020e0b386f5c76734d1c967fbdfe75dd3aed64ba618fbde140922269e55946a6ee1000000000000000100000000000000000000000000000020b9a52c56713a9880951e923afbecfaf24a90d9fb2b5a1dfa8d58a63c297f272d000000000000000100000000000000010000000000000020aed17919db728953ffd39208c53f105905f6b720d15998100add061d340ab11500000000000000010000000000000000000000000000002058b95513f1be96a860c8424ca1a253ece0a4464984acd90966bc2d86ac3f41c600000000000000090000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b0000000000000005000000000000000100000000000000000000000000000020f05ff6c0a3cd855542797f70d666f43ab729fee49e40c812eaa976dbbe99f0c7000000000000000100000000000000010000000000000020ec8bba671b0af81e7985a0b506d811723d71eba204e732ee6741191816cb528d0000000000000001000000000000000100000000000000200b90fa6f44bcd299d11d2fbd1e7ed373cd3ee663de279edf9e8b2221da057719000000000000000100000000000000000000000000000020a453503d52eee70b784c636e310fe65429b75b64fd26a77c27c20dbe18d3d33d000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc54160000000000000000050000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b3910000000000000006000000000000000100000000000000000000000000000020d4197789987b69fcf99802348621e4436198b5640253e2cd83d8ec01fba126480000000000000001000000000000000100000000000000207c94362dea318750b8d161143387f8d45e222f18674512708117534b14f8a7c400000000000000010000000000000000000000000000002009a61b41773b6098274b4848407db82a0be8b3a1a113cdbae829775aa5584cfa000000000000000100000000000000010000000000000020b86670486fdb118522b061bdd79d473f7af94d2557070d82d7fd34c53b2d6aa8000000000000000100000000000000010000000000000020add0fe147d971c5a4b9d01cf95aee412eb47a9c7e6ad03f2699e74a92c0d94a90000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000050000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b0000000000000005000000000000000100000000000000000000000000000020a74b1275f4702f5d549baf404f01ecb1ba0fe310f1a2623b3c8e76e5b429d894000000000000000100000000000000010000000000000020d528f718897f707480ad00bbc680116a7d17108680cbb5d41a52900111da53f7000000000000000100000000000000000000000000000020faeab7138ec7ab5c1ccf63393ccccc81e7c7645d384c90bdbd423e8a9317742600000000000000010000000000000001000000000000002065c61d2e4d097c2a39e44bdcfa0978b3b7f05e0efb6c860f1f7a5ae6fe361a49000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc54160000000000000000300000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b3910000000000000006000000000000000100000000000000010000000000000020f2a211c250594e89168805f5cc22cf53dd7137b57f0d9552043be0ec05cf319600000000000000010000000000000001000000000000002068d22abb67b912d1b54611e8f5839a58bbbd0ace6b45dfba9ea2087b8b62b4af00000000000000010000000000000001000000000000002006a8481ebcc9c5f42f46d7e76afeedbb089966303f1ca1d6d883d68e24714deb000000000000000100000000000000010000000000000020fd892962fbc5a00afae097f51d03d30aa581fce1038ab8aa58ae53143ec3c1090000000000000001000000000000000000000000000000209d48beddc57723125a7aaad3f517a3c4ec3d45b0a1187071510c102724d6433700000000000000010000000000000000000000000000002058b95513f1be96a860c8424ca1a253ece0a4464984acd90966bc2d86ac3f41c600000000000000100000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b000000000000000500000000000000010000000000000001000000000000002057463e4bc98f6988a183742279a24cde20fc4b4906b3333bd36ebeaad99697e6000000000000000100000000000000010000000000000020f00d9a40350d0d1821907115a4055c94a6f94f27d29c8fc375b0472d5496f1d8000000000000000100000000000000010000000000000020db01eaa2af7ae21f8fb39daf7f243ab551beb20f7362f8d1a332acb21c8cdc480000000000000001000000000000000100000000000000208919b73726bdfea3549af72be23670eef63dda5e0ed664d8862588eccc2cd10900000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca005589600000000000000240000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000100000000000000207e5f9905e87647d5253cd03b9ed779b2acbad183b1c4dfd5a1a7fcfc4450c589000000000000000100000000000000010000000000000020c2d4360b6a1cbcc2931ba7691406828d44fcccd177e9a50fa50b8c84a131b63700000000000000010000000000000000000000000000002010ec51adb290f82dffd967d7e0346ffc3b34441d4c608b0d345c6bc95721ee23000000000000000100000000000000010000000000000020d3c4d6f1b3c5ed676621751ada57ff8394febc0261a6f6c423de3deebf1c8f78000000000000000100000000000000010000000000000020aed17919db728953ffd39208c53f105905f6b720d15998100add061d340ab11500000000000000010000000000000000000000000000002058b95513f1be96a860c8424ca1a253ece0a4464984acd90966bc2d86ac3f41c600000000000000040000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b00000000000000050000000000000001000000000000000100000000000000202f81accfa481b11b05882d87a1c8cd92297a4e034d53c4842993ee2681b4d9b8000000000000000100000000000000010000000000000020d528f718897f707480ad00bbc680116a7d17108680cbb5d41a52900111da53f7000000000000000100000000000000000000000000000020faeab7138ec7ab5c1ccf63393ccccc81e7c7645d384c90bdbd423e8a9317742600000000000000010000000000000001000000000000002065c61d2e4d097c2a39e44bdcfa0978b3b7f05e0efb6c860f1f7a5ae6fe361a49000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc54160000000000000000110000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b3910000000000000006000000000000000100000000000000000000000000000020e60ca060a73991c547d1f960f0552a41a32039edf5dbc43b5a58936a85314032000000000000000100000000000000010000000000000020b4551287f718db7952b41488c73a1badd6f381e5c94e633562458eaa6b733a50000000000000000100000000000000010000000000000020cb1b6254c7c4c0b479593daf718044a33a32238686a1fa080c2c3dbe0407a7570000000000000001000000000000000100000000000000205f0bb053e088ded68d0c1786c068b03ec58098a3cf6214d1be943d29ba6d13ce000000000000000100000000000000000000000000000020465a1f127ad8c1d5d50e2e78e1987f675b5271439752c54cb80ffdaba65e25710000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000110000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b00000000000000050000000000000001000000000000000000000000000000204cade97a5e3fe77f12382c70a6a44a307a0d06fd5b97ac0b8cd4407b4833e0a9000000000000000100000000000000010000000000000020f00d9a40350d0d1821907115a4055c94a6f94f27d29c8fc375b0472d5496f1d8000000000000000100000000000000010000000000000020db01eaa2af7ae21f8fb39daf7f243ab551beb20f7362f8d1a332acb21c8cdc480000000000000001000000000000000100000000000000208919b73726bdfea3549af72be23670eef63dda5e0ed664d8862588eccc2cd10900000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca0055896000000000000001f0000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b391000000000000000600000000000000010000000000000000000000000000002046f418562881b0dc0fea9378c3a7e6376f5135066c32f5c7cc9050bca15e176b00000000000000010000000000000000000000000000002033fc4f9fe456848952c680822df1d03e02d0b1f7d5fa1c16b5a070069d04cf6400000000000000010000000000000000000000000000002066a864c0fe566ba1ee83def8ca951e608663970417cc2e7a1f58a4adc21faa5a0000000000000001000000000000000000000000000000205fd7db198abca387face9964712817e444014bcac13ce87f7a7f3a063c4a2ad2000000000000000100000000000000000000000000000020465a1f127ad8c1d5d50e2e78e1987f675b5271439752c54cb80ffdaba65e25710000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c0000000000000001f0000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b000000000000000500000000000000010000000000000000000000000000002053a7027fc0088bab63b956d9d7e144dea74808a43c2fc52570a32a18801b721e000000000000000100000000000000000000000000000020748f8042bc3e72602c13b9fa3a996b6d9254e2592f3f1782cafd1f16ae4018d6000000000000000100000000000000000000000000000020861b40a8f6e23edef75ddeac66348157ecc011e3241fcd4ac976118b14d79496000000000000000100000000000000000000000000000020d84b9cdaddc17699c6b3180b4637dccfc18fbc002defc08b67518e24eae2cb9800000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca0055896000000000000002b0000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000000000000000000200a35f412203dde346201ea471cf6fc92107442a8271dad1f61b3b7fa5b49fdf000000000000000010000000000000000000000000000002045d59f62838ceb66a37f76629c2e74f25c5520ef3203f025ffd7fc99bba06595000000000000000100000000000000010000000000000020e0b386f5c76734d1c967fbdfe75dd3aed64ba618fbde140922269e55946a6ee1000000000000000100000000000000000000000000000020b9a52c56713a9880951e923afbecfaf24a90d9fb2b5a1dfa8d58a63c297f272d000000000000000100000000000000010000000000000020aed17919db728953ffd39208c53f105905f6b720d15998100add061d340ab11500000000000000010000000000000000000000000000002058b95513f1be96a860c8424ca1a253ece0a4464984acd90966bc2d86ac3f41c6000000000000000b0000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b000000000000000500000000000000010000000000000000000000000000002043dfcca3011ff7c74972dc3e73a355a8efbd0ca6f4fcd323e4d2ac31994d4c580000000000000001000000000000000000000000000000205977e289245df759de7b30bbfcf9656a3b69742deecc7c6507a53286a68742910000000000000001000000000000000100000000000000200b90fa6f44bcd299d11d2fbd1e7ed373cd3ee663de279edf9e8b2221da057719000000000000000100000000000000000000000000000020a453503d52eee70b784c636e310fe65429b75b64fd26a77c27c20dbe18d3d33d000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc54160000000000000000190000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b3910000000000000006000000000000000100000000000000000000000000000020a342fd6e5de6fde9dbf3ccd8811b5df2611002d7098c38ad1ce8d88d2076cba0000000000000000100000000000000010000000000000020b616e6c6257c1ecbe26dde52747a1c51a1745aacb23d7672268e509271ef4519000000000000000100000000000000010000000000000020e280e6850f7d8d816b520869fe7b7ecca3598c0a5bff6d46697059ae66f307380000000000000001000000000000000000000000000000205fd7db198abca387face9964712817e444014bcac13ce87f7a7f3a063c4a2ad2000000000000000100000000000000000000000000000020465a1f127ad8c1d5d50e2e78e1987f675b5271439752c54cb80ffdaba65e25710000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000190000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b0000000000000005000000000000000100000000000000000000000000000020c242036f64e68597ce39c5174ea1d2d29bd4aeff167f5640774c30c9698a7ded0000000000000001000000000000000100000000000000207849297d6f8e29cf9000349e60c864caad33836101970be7a7d6531eb7610c6200000000000000010000000000000001000000000000002075a90d3b1b3603a9a9a62a5fe9700d07935423a2a1172b3c72e49c473654926f000000000000000100000000000000000000000000000020d84b9cdaddc17699c6b3180b4637dccfc18fbc002defc08b67518e24eae2cb9800000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca005589600000000000000160000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b3910000000000000006000000000000000100000000000000010000000000000020fe760f0f89bf553c5bb34f1a9333c1e39a9488cdcb634fc251b58ac563d62460000000000000000100000000000000000000000000000020ace2dd92e70e444a3063ee8a9babe6e954e1ddd3fa0d3d10e1a064cbbf086b45000000000000000100000000000000000000000000000020fa1763ae3c7da1186b59048bfaa651cb2ff2f493d66eb9f05a17a84c5e550ea00000000000000001000000000000000100000000000000205f0bb053e088ded68d0c1786c068b03ec58098a3cf6214d1be943d29ba6d13ce000000000000000100000000000000000000000000000020465a1f127ad8c1d5d50e2e78e1987f675b5271439752c54cb80ffdaba65e25710000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000160000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b0000000000000005000000000000000100000000000000010000000000000020eac057d1dcf2c99c28bed59ad24fd99705ec9b14bd87cf6a74d00d5f71cf30490000000000000001000000000000000000000000000000208deaa512203693c6744f730decf5b92dafd7056c4ec7f22725a1452c198f35e700000000000000010000000000000000000000000000002004bd9fbf938149c0a9661af06d3f7ca6f961fedb0c14fec24cc007c30aa59c3f0000000000000001000000000000000100000000000000208919b73726bdfea3549af72be23670eef63dda5e0ed664d8862588eccc2cd10900000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca005589600000000000000070000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b3910000000000000006000000000000000100000000000000000000000000000020b6eb19074a445844f786b4311e73c70e4f05427127e27e2470c02fe14e3096750000000000000001000000000000000000000000000000208d3540b31bd171594c25bb948b166f209270bb7df14a76a6ad76f9465d82e2c700000000000000010000000000000000000000000000002009a61b41773b6098274b4848407db82a0be8b3a1a113cdbae829775aa5584cfa000000000000000100000000000000010000000000000020b86670486fdb118522b061bdd79d473f7af94d2557070d82d7fd34c53b2d6aa8000000000000000100000000000000010000000000000020add0fe147d971c5a4b9d01cf95aee412eb47a9c7e6ad03f2699e74a92c0d94a90000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000070000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b0000000000000005000000000000000100000000000000000000000000000020e1e3b27036ad5ec4ea4923e3f81a81a1320924f3b1d852a7a0882b9b2f8f1802000000000000000100000000000000000000000000000020f7d72bccc5a546f5ff54fe19a5ee45d9d2e1baa2b1f84e1f11b141d15d8c337a000000000000000100000000000000000000000000000020faeab7138ec7ab5c1ccf63393ccccc81e7c7645d384c90bdbd423e8a9317742600000000000000010000000000000001000000000000002065c61d2e4d097c2a39e44bdcfa0978b3b7f05e0efb6c860f1f7a5ae6fe361a49000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc541600000000000000001d0000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b3910000000000000006000000000000000100000000000000000000000000000020da96cf54e2670f1e805dd1c0b9a5a9c6fb4f36fc37c03017dfa8b71a5c47171f0000000000000001000000000000000100000000000000204fc126b58e8e2fb3b9b98416396dfd6d88c3d75c10b8071f18747bdb5dd6818700000000000000010000000000000000000000000000002066a864c0fe566ba1ee83def8ca951e608663970417cc2e7a1f58a4adc21faa5a0000000000000001000000000000000000000000000000205fd7db198abca387face9964712817e444014bcac13ce87f7a7f3a063c4a2ad2000000000000000100000000000000000000000000000020465a1f127ad8c1d5d50e2e78e1987f675b5271439752c54cb80ffdaba65e25710000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c0000000000000001d0000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b0000000000000005000000000000000100000000000000000000000000000020f3a26540d4a323004772b9b6b4f8526c2b7d6166c67a86f7e749e2cc0bb0c1d90000000000000001000000000000000100000000000000206559a1a6d6e3b5a8dd58020285068f8d6e894ff31b992d685ade2a3e405e902c000000000000000100000000000000000000000000000020861b40a8f6e23edef75ddeac66348157ecc011e3241fcd4ac976118b14d79496000000000000000100000000000000000000000000000020d84b9cdaddc17699c6b3180b4637dccfc18fbc002defc08b67518e24eae2cb9800000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca005589600000000000000150000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000000000000000000208bc16c2eb4be4c8773060a710b8597ca7975d4adab442b16a4318c3828da493e00000000000000010000000000000001000000000000002082a0491857c498403cd48f4eafe06722748bc8a4c9debf3995d089bd81fbc7e9000000000000000100000000000000000000000000000020fa1763ae3c7da1186b59048bfaa651cb2ff2f493d66eb9f05a17a84c5e550ea00000000000000001000000000000000100000000000000205f0bb053e088ded68d0c1786c068b03ec58098a3cf6214d1be943d29ba6d13ce000000000000000100000000000000000000000000000020465a1f127ad8c1d5d50e2e78e1987f675b5271439752c54cb80ffdaba65e25710000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000150000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b00000000000000050000000000000001000000000000000000000000000000201c1515f2bcc6fe1e4f8e94256b544834b3e63979bad5991ff3dc27b080b231a9000000000000000100000000000000010000000000000020d96e84f531c37e66d70a303a5230591625d1dce94090e3b264d8ee7fc9caa6eb00000000000000010000000000000000000000000000002004bd9fbf938149c0a9661af06d3f7ca6f961fedb0c14fec24cc007c30aa59c3f0000000000000001000000000000000100000000000000208919b73726bdfea3549af72be23670eef63dda5e0ed664d8862588eccc2cd10900000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca005589600000000000000000000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000100000000000000206b8334f7b4b9a952c778940780f6e588c538faaa95c1696e36b699473dbb124c000000000000000100000000000000010000000000000020f7a761c374d56dfabb889c74e1a5e23bbb7923bd0b757f65fa784fdec304ccec0000000000000001000000000000000100000000000000204178366b50f377f3dabf65ef62f6cf5a6578eec538e5250111a043a3e6a4d5bc000000000000000100000000000000010000000000000020b86670486fdb118522b061bdd79d473f7af94d2557070d82d7fd34c53b2d6aa8000000000000000100000000000000010000000000000020add0fe147d971c5a4b9d01cf95aee412eb47a9c7e6ad03f2699e74a92c0d94a90000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000000000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b00000000000000050000000000000001000000000000000100000000000000202ec1c011f939c6e7b30a5f8d99f5d463ef8740881f88ea0762b286d1f7e2c6b20000000000000001000000000000000100000000000000204e2d792b7b178afde2ff751bf479e60bdc0eec820c6ee8cabea8433bdc3e10fd0000000000000001000000000000000100000000000000203fa49582a3a2bcdb51ae48dfde5f30bdbaf3982f24dc1af42947edcb1c853c1d00000000000000010000000000000001000000000000002065c61d2e4d097c2a39e44bdcfa0978b3b7f05e0efb6c860f1f7a5ae6fe361a49000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc541600000000000000003c0000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000100000000000000207009d41d6d2bd85d7fc0b2461a08516b7a1c98bafc6c8723f1e7f11b3df653ed000000000000000100000000000000010000000000000020132eed022bede456fbaaf837ccc3aef8a38c8ae12305e37916f12bf38456649f000000000000000100000000000000000000000000000020c601415fa7fed73591cf116d299d8303adabc54534059d5f6a22e0f5a0b6dadf000000000000000100000000000000000000000000000020699ef5c84904acf24bba0fd0f058ad555b71c9227b1803e846a582ca4937698e0000000000000001000000000000000000000000000000209d48beddc57723125a7aaad3f517a3c4ec3d45b0a1187071510c102724d6433700000000000000010000000000000000000000000000002058b95513f1be96a860c8424ca1a253ece0a4464984acd90966bc2d86ac3f41c6000000000000001c0000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b000000000000000500000000000000010000000000000001000000000000002048c8aa4cab17389c454943264383f3b3b44eed5d670bb9efc54cfe142000afe30000000000000001000000000000000100000000000000206559a1a6d6e3b5a8dd58020285068f8d6e894ff31b992d685ade2a3e405e902c000000000000000100000000000000000000000000000020861b40a8f6e23edef75ddeac66348157ecc011e3241fcd4ac976118b14d79496000000000000000100000000000000000000000000000020d84b9cdaddc17699c6b3180b4637dccfc18fbc002defc08b67518e24eae2cb9800000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca0055896000000000000001f0000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b391000000000000000600000000000000010000000000000000000000000000002046f418562881b0dc0fea9378c3a7e6376f5135066c32f5c7cc9050bca15e176b00000000000000010000000000000000000000000000002033fc4f9fe456848952c680822df1d03e02d0b1f7d5fa1c16b5a070069d04cf6400000000000000010000000000000000000000000000002066a864c0fe566ba1ee83def8ca951e608663970417cc2e7a1f58a4adc21faa5a0000000000000001000000000000000000000000000000205fd7db198abca387face9964712817e444014bcac13ce87f7a7f3a063c4a2ad2000000000000000100000000000000000000000000000020465a1f127ad8c1d5d50e2e78e1987f675b5271439752c54cb80ffdaba65e25710000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c0000000000000001f0000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b000000000000000500000000000000010000000000000000000000000000002053a7027fc0088bab63b956d9d7e144dea74808a43c2fc52570a32a18801b721e000000000000000100000000000000000000000000000020748f8042bc3e72602c13b9fa3a996b6d9254e2592f3f1782cafd1f16ae4018d6000000000000000100000000000000000000000000000020861b40a8f6e23edef75ddeac66348157ecc011e3241fcd4ac976118b14d79496000000000000000100000000000000000000000000000020d84b9cdaddc17699c6b3180b4637dccfc18fbc002defc08b67518e24eae2cb9800000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca005589600000000000000260000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b391000000000000000600000000000000010000000000000001000000000000002096daf99a0bcfbcd2c108563a582d649feaf8947acba4f0695c393336c1536fe7000000000000000100000000000000000000000000000020ce97867ee74c91d4cbf3e7a25f3ce20adde49401b611d53276d0209ca3953ea000000000000000010000000000000000000000000000002010ec51adb290f82dffd967d7e0346ffc3b34441d4c608b0d345c6bc95721ee23000000000000000100000000000000010000000000000020d3c4d6f1b3c5ed676621751ada57ff8394febc0261a6f6c423de3deebf1c8f78000000000000000100000000000000010000000000000020aed17919db728953ffd39208c53f105905f6b720d15998100add061d340ab11500000000000000010000000000000000000000000000002058b95513f1be96a860c8424ca1a253ece0a4464984acd90966bc2d86ac3f41c600000000000000060000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b0000000000000005000000000000000100000000000000010000000000000020264ab9904eed26255e457442dc93e232afef405ae99c3902756e0c04e83293c3000000000000000100000000000000000000000000000020f7d72bccc5a546f5ff54fe19a5ee45d9d2e1baa2b1f84e1f11b141d15d8c337a000000000000000100000000000000000000000000000020faeab7138ec7ab5c1ccf63393ccccc81e7c7645d384c90bdbd423e8a9317742600000000000000010000000000000001000000000000002065c61d2e4d097c2a39e44bdcfa0978b3b7f05e0efb6c860f1f7a5ae6fe361a49000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc541600000000000000000d0000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b3910000000000000006000000000000000100000000000000000000000000000020cb54918dbbc507ac5fbd39c97d8c309e8dea155e42df93c9e1cff91b6adbbfc50000000000000001000000000000000100000000000000200d1abc6c39d76cbef561c951c922aeedd3cc9f9c0d0c8bde13748cd366037ec2000000000000000100000000000000000000000000000020683e2e270d08ffb602941a4a39ef8d01b48d71b05a4b5ad5d0a589f7be6c7ef3000000000000000100000000000000000000000000000020d2e6e41401fcbf02dc267a22f734eb06244520113bccb208ba8ccdb5a8becbd5000000000000000100000000000000010000000000000020add0fe147d971c5a4b9d01cf95aee412eb47a9c7e6ad03f2699e74a92c0d94a90000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c0000000000000000d0000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b00000000000000050000000000000001000000000000000000000000000000203bfa073912d0de7657ca22aff98bcfdbf76e5a0fd7fb7f5e27060e68af49372c000000000000000100000000000000010000000000000020cf0ac1a1730a66809ab42852765f05e2b0f5b8abf57a2cc8b8866895c4d9f7cb000000000000000100000000000000000000000000000020b697dd650079632ef8e3e1d9d7ec7961a2008591ef5687500603dbc263b690d8000000000000000100000000000000000000000000000020a453503d52eee70b784c636e310fe65429b75b64fd26a77c27c20dbe18d3d33d000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc541600000000000000001c0000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b391000000000000000600000000000000010000000000000001000000000000002018946b1e9559c96a3a09330c1884a0701d0febccc52f2c25e2757006cc2e5a260000000000000001000000000000000100000000000000204fc126b58e8e2fb3b9b98416396dfd6d88c3d75c10b8071f18747bdb5dd6818700000000000000010000000000000000000000000000002066a864c0fe566ba1ee83def8ca951e608663970417cc2e7a1f58a4adc21faa5a0000000000000001000000000000000000000000000000205fd7db198abca387face9964712817e444014bcac13ce87f7a7f3a063c4a2ad2000000000000000100000000000000000000000000000020465a1f127ad8c1d5d50e2e78e1987f675b5271439752c54cb80ffdaba65e25710000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c0000000000000001c0000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b000000000000000500000000000000010000000000000001000000000000002048c8aa4cab17389c454943264383f3b3b44eed5d670bb9efc54cfe142000afe30000000000000001000000000000000100000000000000206559a1a6d6e3b5a8dd58020285068f8d6e894ff31b992d685ade2a3e405e902c000000000000000100000000000000000000000000000020861b40a8f6e23edef75ddeac66348157ecc011e3241fcd4ac976118b14d79496000000000000000100000000000000000000000000000020d84b9cdaddc17699c6b3180b4637dccfc18fbc002defc08b67518e24eae2cb9800000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca0055896000000000000001f0000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b391000000000000000600000000000000010000000000000000000000000000002046f418562881b0dc0fea9378c3a7e6376f5135066c32f5c7cc9050bca15e176b00000000000000010000000000000000000000000000002033fc4f9fe456848952c680822df1d03e02d0b1f7d5fa1c16b5a070069d04cf6400000000000000010000000000000000000000000000002066a864c0fe566ba1ee83def8ca951e608663970417cc2e7a1f58a4adc21faa5a0000000000000001000000000000000000000000000000205fd7db198abca387face9964712817e444014bcac13ce87f7a7f3a063c4a2ad2000000000000000100000000000000000000000000000020465a1f127ad8c1d5d50e2e78e1987f675b5271439752c54cb80ffdaba65e25710000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c0000000000000001f0000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b000000000000000500000000000000010000000000000000000000000000002053a7027fc0088bab63b956d9d7e144dea74808a43c2fc52570a32a18801b721e000000000000000100000000000000000000000000000020748f8042bc3e72602c13b9fa3a996b6d9254e2592f3f1782cafd1f16ae4018d6000000000000000100000000000000000000000000000020861b40a8f6e23edef75ddeac66348157ecc011e3241fcd4ac976118b14d79496000000000000000100000000000000000000000000000020d84b9cdaddc17699c6b3180b4637dccfc18fbc002defc08b67518e24eae2cb9800000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca005589600000000000000150000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000000000000000000208bc16c2eb4be4c8773060a710b8597ca7975d4adab442b16a4318c3828da493e00000000000000010000000000000001000000000000002082a0491857c498403cd48f4eafe06722748bc8a4c9debf3995d089bd81fbc7e9000000000000000100000000000000000000000000000020fa1763ae3c7da1186b59048bfaa651cb2ff2f493d66eb9f05a17a84c5e550ea00000000000000001000000000000000100000000000000205f0bb053e088ded68d0c1786c068b03ec58098a3cf6214d1be943d29ba6d13ce000000000000000100000000000000000000000000000020465a1f127ad8c1d5d50e2e78e1987f675b5271439752c54cb80ffdaba65e25710000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000150000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b00000000000000050000000000000001000000000000000000000000000000201c1515f2bcc6fe1e4f8e94256b544834b3e63979bad5991ff3dc27b080b231a9000000000000000100000000000000010000000000000020d96e84f531c37e66d70a303a5230591625d1dce94090e3b264d8ee7fc9caa6eb00000000000000010000000000000000000000000000002004bd9fbf938149c0a9661af06d3f7ca6f961fedb0c14fec24cc007c30aa59c3f0000000000000001000000000000000100000000000000208919b73726bdfea3549af72be23670eef63dda5e0ed664d8862588eccc2cd10900000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca005589600000000000000010000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b3910000000000000006000000000000000100000000000000000000000000000020f3b7ae9dc5e701787cb17a20d2ada19d3d52b32b39b548804c4b8b7052f4eb96000000000000000100000000000000010000000000000020f7a761c374d56dfabb889c74e1a5e23bbb7923bd0b757f65fa784fdec304ccec0000000000000001000000000000000100000000000000204178366b50f377f3dabf65ef62f6cf5a6578eec538e5250111a043a3e6a4d5bc000000000000000100000000000000010000000000000020b86670486fdb118522b061bdd79d473f7af94d2557070d82d7fd34c53b2d6aa8000000000000000100000000000000010000000000000020add0fe147d971c5a4b9d01cf95aee412eb47a9c7e6ad03f2699e74a92c0d94a90000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000010000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b0000000000000005000000000000000100000000000000000000000000000020853857f3ddaccb3cdf6382cae031d6cee50274876c5bb6a708271fe271b5a1720000000000000001000000000000000100000000000000204e2d792b7b178afde2ff751bf479e60bdc0eec820c6ee8cabea8433bdc3e10fd0000000000000001000000000000000100000000000000203fa49582a3a2bcdb51ae48dfde5f30bdbaf3982f24dc1af42947edcb1c853c1d00000000000000010000000000000001000000000000002065c61d2e4d097c2a39e44bdcfa0978b3b7f05e0efb6c860f1f7a5ae6fe361a49000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc54160000000000000000000000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000100000000000000206b8334f7b4b9a952c778940780f6e588c538faaa95c1696e36b699473dbb124c000000000000000100000000000000010000000000000020f7a761c374d56dfabb889c74e1a5e23bbb7923bd0b757f65fa784fdec304ccec0000000000000001000000000000000100000000000000204178366b50f377f3dabf65ef62f6cf5a6578eec538e5250111a043a3e6a4d5bc000000000000000100000000000000010000000000000020b86670486fdb118522b061bdd79d473f7af94d2557070d82d7fd34c53b2d6aa8000000000000000100000000000000010000000000000020add0fe147d971c5a4b9d01cf95aee412eb47a9c7e6ad03f2699e74a92c0d94a90000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000000000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b00000000000000050000000000000001000000000000000100000000000000202ec1c011f939c6e7b30a5f8d99f5d463ef8740881f88ea0762b286d1f7e2c6b20000000000000001000000000000000100000000000000204e2d792b7b178afde2ff751bf479e60bdc0eec820c6ee8cabea8433bdc3e10fd0000000000000001000000000000000100000000000000203fa49582a3a2bcdb51ae48dfde5f30bdbaf3982f24dc1af42947edcb1c853c1d00000000000000010000000000000001000000000000002065c61d2e4d097c2a39e44bdcfa0978b3b7f05e0efb6c860f1f7a5ae6fe361a49000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc54160000000000000000050000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b3910000000000000006000000000000000100000000000000000000000000000020d4197789987b69fcf99802348621e4436198b5640253e2cd83d8ec01fba126480000000000000001000000000000000100000000000000207c94362dea318750b8d161143387f8d45e222f18674512708117534b14f8a7c400000000000000010000000000000000000000000000002009a61b41773b6098274b4848407db82a0be8b3a1a113cdbae829775aa5584cfa000000000000000100000000000000010000000000000020b86670486fdb118522b061bdd79d473f7af94d2557070d82d7fd34c53b2d6aa8000000000000000100000000000000010000000000000020add0fe147d971c5a4b9d01cf95aee412eb47a9c7e6ad03f2699e74a92c0d94a90000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000050000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b0000000000000005000000000000000100000000000000000000000000000020a74b1275f4702f5d549baf404f01ecb1ba0fe310f1a2623b3c8e76e5b429d894000000000000000100000000000000010000000000000020d528f718897f707480ad00bbc680116a7d17108680cbb5d41a52900111da53f7000000000000000100000000000000000000000000000020faeab7138ec7ab5c1ccf63393ccccc81e7c7645d384c90bdbd423e8a9317742600000000000000010000000000000001000000000000002065c61d2e4d097c2a39e44bdcfa0978b3b7f05e0efb6c860f1f7a5ae6fe361a49000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc541600000000000000000f0000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b3910000000000000006000000000000000100000000000000000000000000000020d6695de8505d291f53c161bd5f8bfd95a71a53a52e9b286ecbdbeb585c7200df00000000000000010000000000000000000000000000002081bd98723e752363b1191e42c49e17b82ed3e6fae79af415ea8d2fee58a977bc000000000000000100000000000000000000000000000020683e2e270d08ffb602941a4a39ef8d01b48d71b05a4b5ad5d0a589f7be6c7ef3000000000000000100000000000000000000000000000020d2e6e41401fcbf02dc267a22f734eb06244520113bccb208ba8ccdb5a8becbd5000000000000000100000000000000010000000000000020add0fe147d971c5a4b9d01cf95aee412eb47a9c7e6ad03f2699e74a92c0d94a90000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c0000000000000000f0000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b00000000000000050000000000000001000000000000000000000000000000205f16d24275599e549e2533fbac86e79499f9a329aebdeca82d02048c9b90940e0000000000000001000000000000000000000000000000206727d263de7719d1bcfa4f90c0c8dfa16f99f5f2b61f07d6702dfa60b8b8db66000000000000000100000000000000000000000000000020b697dd650079632ef8e3e1d9d7ec7961a2008591ef5687500603dbc263b690d8000000000000000100000000000000000000000000000020a453503d52eee70b784c636e310fe65429b75b64fd26a77c27c20dbe18d3d33d000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc54160000000000000000360000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000100000000000000204385c454a899e92ad0ac713360b89b23270ca148f4dcb3ef7c1e45069fa38da20000000000000001000000000000000000000000000000203053fe42bdc6048d4366f351cc3207673bba9a85fd31928ea44dadd0eea6990b0000000000000001000000000000000000000000000000200a8473f14e57ca87b9b1a0a05f81818389048f7186fdd7cff1e1bc8ee52a4f13000000000000000100000000000000010000000000000020fd892962fbc5a00afae097f51d03d30aa581fce1038ab8aa58ae53143ec3c1090000000000000001000000000000000000000000000000209d48beddc57723125a7aaad3f517a3c4ec3d45b0a1187071510c102724d6433700000000000000010000000000000000000000000000002058b95513f1be96a860c8424ca1a253ece0a4464984acd90966bc2d86ac3f41c600000000000000160000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b0000000000000005000000000000000100000000000000010000000000000020eac057d1dcf2c99c28bed59ad24fd99705ec9b14bd87cf6a74d00d5f71cf30490000000000000001000000000000000000000000000000208deaa512203693c6744f730decf5b92dafd7056c4ec7f22725a1452c198f35e700000000000000010000000000000000000000000000002004bd9fbf938149c0a9661af06d3f7ca6f961fedb0c14fec24cc007c30aa59c3f0000000000000001000000000000000100000000000000208919b73726bdfea3549af72be23670eef63dda5e0ed664d8862588eccc2cd10900000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca005589600000000000000020000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000100000000000000205ac012a171398444fbef66c778c9a112a09483f18aa5c95ea72a40811752b63b000000000000000100000000000000000000000000000020ba7391ca0111f4b6f54fa029ab9551ae929a5e22b1fb6e6b5bb32475bb0800250000000000000001000000000000000100000000000000204178366b50f377f3dabf65ef62f6cf5a6578eec538e5250111a043a3e6a4d5bc000000000000000100000000000000010000000000000020b86670486fdb118522b061bdd79d473f7af94d2557070d82d7fd34c53b2d6aa8000000000000000100000000000000010000000000000020add0fe147d971c5a4b9d01cf95aee412eb47a9c7e6ad03f2699e74a92c0d94a90000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000020000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b00000000000000050000000000000001000000000000000100000000000000205fc59be8c0e06d324b965bb78420d82793759dc285ceee2246c1f7283ad2befd0000000000000001000000000000000000000000000000208d832052373c63ee165d0c7da4f85560944f17ffcc0f2bf2b8528ab90d1a6ff90000000000000001000000000000000100000000000000203fa49582a3a2bcdb51ae48dfde5f30bdbaf3982f24dc1af42947edcb1c853c1d00000000000000010000000000000001000000000000002065c61d2e4d097c2a39e44bdcfa0978b3b7f05e0efb6c860f1f7a5ae6fe361a49000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc54160000000000000000020000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000100000000000000205ac012a171398444fbef66c778c9a112a09483f18aa5c95ea72a40811752b63b000000000000000100000000000000000000000000000020ba7391ca0111f4b6f54fa029ab9551ae929a5e22b1fb6e6b5bb32475bb0800250000000000000001000000000000000100000000000000204178366b50f377f3dabf65ef62f6cf5a6578eec538e5250111a043a3e6a4d5bc000000000000000100000000000000010000000000000020b86670486fdb118522b061bdd79d473f7af94d2557070d82d7fd34c53b2d6aa8000000000000000100000000000000010000000000000020add0fe147d971c5a4b9d01cf95aee412eb47a9c7e6ad03f2699e74a92c0d94a90000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000020000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b00000000000000050000000000000001000000000000000100000000000000205fc59be8c0e06d324b965bb78420d82793759dc285ceee2246c1f7283ad2befd0000000000000001000000000000000000000000000000208d832052373c63ee165d0c7da4f85560944f17ffcc0f2bf2b8528ab90d1a6ff90000000000000001000000000000000100000000000000203fa49582a3a2bcdb51ae48dfde5f30bdbaf3982f24dc1af42947edcb1c853c1d00000000000000010000000000000001000000000000002065c61d2e4d097c2a39e44bdcfa0978b3b7f05e0efb6c860f1f7a5ae6fe361a49000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc541600000000000000001c0000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b391000000000000000600000000000000010000000000000001000000000000002018946b1e9559c96a3a09330c1884a0701d0febccc52f2c25e2757006cc2e5a260000000000000001000000000000000100000000000000204fc126b58e8e2fb3b9b98416396dfd6d88c3d75c10b8071f18747bdb5dd6818700000000000000010000000000000000000000000000002066a864c0fe566ba1ee83def8ca951e608663970417cc2e7a1f58a4adc21faa5a0000000000000001000000000000000000000000000000205fd7db198abca387face9964712817e444014bcac13ce87f7a7f3a063c4a2ad2000000000000000100000000000000000000000000000020465a1f127ad8c1d5d50e2e78e1987f675b5271439752c54cb80ffdaba65e25710000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c0000000000000001c0000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b000000000000000500000000000000010000000000000001000000000000002048c8aa4cab17389c454943264383f3b3b44eed5d670bb9efc54cfe142000afe30000000000000001000000000000000100000000000000206559a1a6d6e3b5a8dd58020285068f8d6e894ff31b992d685ade2a3e405e902c000000000000000100000000000000000000000000000020861b40a8f6e23edef75ddeac66348157ecc011e3241fcd4ac976118b14d79496000000000000000100000000000000000000000000000020d84b9cdaddc17699c6b3180b4637dccfc18fbc002defc08b67518e24eae2cb9800000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca005589600000000000000000000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000100000000000000206b8334f7b4b9a952c778940780f6e588c538faaa95c1696e36b699473dbb124c000000000000000100000000000000010000000000000020f7a761c374d56dfabb889c74e1a5e23bbb7923bd0b757f65fa784fdec304ccec0000000000000001000000000000000100000000000000204178366b50f377f3dabf65ef62f6cf5a6578eec538e5250111a043a3e6a4d5bc000000000000000100000000000000010000000000000020b86670486fdb118522b061bdd79d473f7af94d2557070d82d7fd34c53b2d6aa8000000000000000100000000000000010000000000000020add0fe147d971c5a4b9d01cf95aee412eb47a9c7e6ad03f2699e74a92c0d94a90000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000000000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b00000000000000050000000000000001000000000000000100000000000000202ec1c011f939c6e7b30a5f8d99f5d463ef8740881f88ea0762b286d1f7e2c6b20000000000000001000000000000000100000000000000204e2d792b7b178afde2ff751bf479e60bdc0eec820c6ee8cabea8433bdc3e10fd0000000000000001000000000000000100000000000000203fa49582a3a2bcdb51ae48dfde5f30bdbaf3982f24dc1af42947edcb1c853c1d00000000000000010000000000000001000000000000002065c61d2e4d097c2a39e44bdcfa0978b3b7f05e0efb6c860f1f7a5ae6fe361a49000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc54160000000000000000150000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000000000000000000208bc16c2eb4be4c8773060a710b8597ca7975d4adab442b16a4318c3828da493e00000000000000010000000000000001000000000000002082a0491857c498403cd48f4eafe06722748bc8a4c9debf3995d089bd81fbc7e9000000000000000100000000000000000000000000000020fa1763ae3c7da1186b59048bfaa651cb2ff2f493d66eb9f05a17a84c5e550ea00000000000000001000000000000000100000000000000205f0bb053e088ded68d0c1786c068b03ec58098a3cf6214d1be943d29ba6d13ce000000000000000100000000000000000000000000000020465a1f127ad8c1d5d50e2e78e1987f675b5271439752c54cb80ffdaba65e25710000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000150000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b00000000000000050000000000000001000000000000000000000000000000201c1515f2bcc6fe1e4f8e94256b544834b3e63979bad5991ff3dc27b080b231a9000000000000000100000000000000010000000000000020d96e84f531c37e66d70a303a5230591625d1dce94090e3b264d8ee7fc9caa6eb00000000000000010000000000000000000000000000002004bd9fbf938149c0a9661af06d3f7ca6f961fedb0c14fec24cc007c30aa59c3f0000000000000001000000000000000100000000000000208919b73726bdfea3549af72be23670eef63dda5e0ed664d8862588eccc2cd10900000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca005589600000000000000160000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b3910000000000000006000000000000000100000000000000010000000000000020fe760f0f89bf553c5bb34f1a9333c1e39a9488cdcb634fc251b58ac563d62460000000000000000100000000000000000000000000000020ace2dd92e70e444a3063ee8a9babe6e954e1ddd3fa0d3d10e1a064cbbf086b45000000000000000100000000000000000000000000000020fa1763ae3c7da1186b59048bfaa651cb2ff2f493d66eb9f05a17a84c5e550ea00000000000000001000000000000000100000000000000205f0bb053e088ded68d0c1786c068b03ec58098a3cf6214d1be943d29ba6d13ce000000000000000100000000000000000000000000000020465a1f127ad8c1d5d50e2e78e1987f675b5271439752c54cb80ffdaba65e25710000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000160000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b0000000000000005000000000000000100000000000000010000000000000020eac057d1dcf2c99c28bed59ad24fd99705ec9b14bd87cf6a74d00d5f71cf30490000000000000001000000000000000000000000000000208deaa512203693c6744f730decf5b92dafd7056c4ec7f22725a1452c198f35e700000000000000010000000000000000000000000000002004bd9fbf938149c0a9661af06d3f7ca6f961fedb0c14fec24cc007c30aa59c3f0000000000000001000000000000000100000000000000208919b73726bdfea3549af72be23670eef63dda5e0ed664d8862588eccc2cd10900000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca005589600000000000000030000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000000000000000000205c5d43f1aa5b8158b31eea03af2382014605e17b6ce8b7609c9544deebdc67eb000000000000000100000000000000000000000000000020ba7391ca0111f4b6f54fa029ab9551ae929a5e22b1fb6e6b5bb32475bb0800250000000000000001000000000000000100000000000000204178366b50f377f3dabf65ef62f6cf5a6578eec538e5250111a043a3e6a4d5bc000000000000000100000000000000010000000000000020b86670486fdb118522b061bdd79d473f7af94d2557070d82d7fd34c53b2d6aa8000000000000000100000000000000010000000000000020add0fe147d971c5a4b9d01cf95aee412eb47a9c7e6ad03f2699e74a92c0d94a90000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000030000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b0000000000000005000000000000000100000000000000000000000000000020cc628e1e20eb26fc1e106fdffeec542b704565e1e644758b45aa93c125665ceb0000000000000001000000000000000000000000000000208d832052373c63ee165d0c7da4f85560944f17ffcc0f2bf2b8528ab90d1a6ff90000000000000001000000000000000100000000000000203fa49582a3a2bcdb51ae48dfde5f30bdbaf3982f24dc1af42947edcb1c853c1d00000000000000010000000000000001000000000000002065c61d2e4d097c2a39e44bdcfa0978b3b7f05e0efb6c860f1f7a5ae6fe361a49000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc541600000000000000002d0000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000000000000000000207c3ac2be74098d36a55dff61c1ff1201851a58632884eceecdc61c02c48bdf070000000000000001000000000000000100000000000000205349324d3cf7e3b462f9fa513629efd1fb3ea05324e1cbc73311c35de7be5dcd000000000000000100000000000000000000000000000020d821f73d7a3ee617719da0b26f94d60c9890893140ebf81bef8472f66dcaa25a000000000000000100000000000000000000000000000020b9a52c56713a9880951e923afbecfaf24a90d9fb2b5a1dfa8d58a63c297f272d000000000000000100000000000000010000000000000020aed17919db728953ffd39208c53f105905f6b720d15998100add061d340ab11500000000000000010000000000000000000000000000002058b95513f1be96a860c8424ca1a253ece0a4464984acd90966bc2d86ac3f41c6000000000000000d0000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b00000000000000050000000000000001000000000000000000000000000000203bfa073912d0de7657ca22aff98bcfdbf76e5a0fd7fb7f5e27060e68af49372c000000000000000100000000000000010000000000000020cf0ac1a1730a66809ab42852765f05e2b0f5b8abf57a2cc8b8866895c4d9f7cb000000000000000100000000000000000000000000000020b697dd650079632ef8e3e1d9d7ec7961a2008591ef5687500603dbc263b690d8000000000000000100000000000000000000000000000020a453503d52eee70b784c636e310fe65429b75b64fd26a77c27c20dbe18d3d33d000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc54160000000000000000160000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b3910000000000000006000000000000000100000000000000010000000000000020fe760f0f89bf553c5bb34f1a9333c1e39a9488cdcb634fc251b58ac563d62460000000000000000100000000000000000000000000000020ace2dd92e70e444a3063ee8a9babe6e954e1ddd3fa0d3d10e1a064cbbf086b45000000000000000100000000000000000000000000000020fa1763ae3c7da1186b59048bfaa651cb2ff2f493d66eb9f05a17a84c5e550ea00000000000000001000000000000000100000000000000205f0bb053e088ded68d0c1786c068b03ec58098a3cf6214d1be943d29ba6d13ce000000000000000100000000000000000000000000000020465a1f127ad8c1d5d50e2e78e1987f675b5271439752c54cb80ffdaba65e25710000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000160000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b0000000000000005000000000000000100000000000000010000000000000020eac057d1dcf2c99c28bed59ad24fd99705ec9b14bd87cf6a74d00d5f71cf30490000000000000001000000000000000000000000000000208deaa512203693c6744f730decf5b92dafd7056c4ec7f22725a1452c198f35e700000000000000010000000000000000000000000000002004bd9fbf938149c0a9661af06d3f7ca6f961fedb0c14fec24cc007c30aa59c3f0000000000000001000000000000000100000000000000208919b73726bdfea3549af72be23670eef63dda5e0ed664d8862588eccc2cd10900000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca005589600000000000000270000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000000000000000000204a5611cfbfcdcb281fb2befe3a274279d974a4d15622f5cb96f01b1bca3911f0000000000000000100000000000000000000000000000020ce97867ee74c91d4cbf3e7a25f3ce20adde49401b611d53276d0209ca3953ea000000000000000010000000000000000000000000000002010ec51adb290f82dffd967d7e0346ffc3b34441d4c608b0d345c6bc95721ee23000000000000000100000000000000010000000000000020d3c4d6f1b3c5ed676621751ada57ff8394febc0261a6f6c423de3deebf1c8f78000000000000000100000000000000010000000000000020aed17919db728953ffd39208c53f105905f6b720d15998100add061d340ab11500000000000000010000000000000000000000000000002058b95513f1be96a860c8424ca1a253ece0a4464984acd90966bc2d86ac3f41c600000000000000070000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b0000000000000005000000000000000100000000000000000000000000000020e1e3b27036ad5ec4ea4923e3f81a81a1320924f3b1d852a7a0882b9b2f8f1802000000000000000100000000000000000000000000000020f7d72bccc5a546f5ff54fe19a5ee45d9d2e1baa2b1f84e1f11b141d15d8c337a000000000000000100000000000000000000000000000020faeab7138ec7ab5c1ccf63393ccccc81e7c7645d384c90bdbd423e8a9317742600000000000000010000000000000001000000000000002065c61d2e4d097c2a39e44bdcfa0978b3b7f05e0efb6c860f1f7a5ae6fe361a49000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc54160000000000000000270000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000000000000000000204a5611cfbfcdcb281fb2befe3a274279d974a4d15622f5cb96f01b1bca3911f0000000000000000100000000000000000000000000000020ce97867ee74c91d4cbf3e7a25f3ce20adde49401b611d53276d0209ca3953ea000000000000000010000000000000000000000000000002010ec51adb290f82dffd967d7e0346ffc3b34441d4c608b0d345c6bc95721ee23000000000000000100000000000000010000000000000020d3c4d6f1b3c5ed676621751ada57ff8394febc0261a6f6c423de3deebf1c8f78000000000000000100000000000000010000000000000020aed17919db728953ffd39208c53f105905f6b720d15998100add061d340ab11500000000000000010000000000000000000000000000002058b95513f1be96a860c8424ca1a253ece0a4464984acd90966bc2d86ac3f41c600000000000000070000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b0000000000000005000000000000000100000000000000000000000000000020e1e3b27036ad5ec4ea4923e3f81a81a1320924f3b1d852a7a0882b9b2f8f1802000000000000000100000000000000000000000000000020f7d72bccc5a546f5ff54fe19a5ee45d9d2e1baa2b1f84e1f11b141d15d8c337a000000000000000100000000000000000000000000000020faeab7138ec7ab5c1ccf63393ccccc81e7c7645d384c90bdbd423e8a9317742600000000000000010000000000000001000000000000002065c61d2e4d097c2a39e44bdcfa0978b3b7f05e0efb6c860f1f7a5ae6fe361a49000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc541600000000000000002d0000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000000000000000000207c3ac2be74098d36a55dff61c1ff1201851a58632884eceecdc61c02c48bdf070000000000000001000000000000000100000000000000205349324d3cf7e3b462f9fa513629efd1fb3ea05324e1cbc73311c35de7be5dcd000000000000000100000000000000000000000000000020d821f73d7a3ee617719da0b26f94d60c9890893140ebf81bef8472f66dcaa25a000000000000000100000000000000000000000000000020b9a52c56713a9880951e923afbecfaf24a90d9fb2b5a1dfa8d58a63c297f272d000000000000000100000000000000010000000000000020aed17919db728953ffd39208c53f105905f6b720d15998100add061d340ab11500000000000000010000000000000000000000000000002058b95513f1be96a860c8424ca1a253ece0a4464984acd90966bc2d86ac3f41c6000000000000000d0000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b00000000000000050000000000000001000000000000000000000000000000203bfa073912d0de7657ca22aff98bcfdbf76e5a0fd7fb7f5e27060e68af49372c000000000000000100000000000000010000000000000020cf0ac1a1730a66809ab42852765f05e2b0f5b8abf57a2cc8b8866895c4d9f7cb000000000000000100000000000000000000000000000020b697dd650079632ef8e3e1d9d7ec7961a2008591ef5687500603dbc263b690d8000000000000000100000000000000000000000000000020a453503d52eee70b784c636e310fe65429b75b64fd26a77c27c20dbe18d3d33d000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc54160000000000000000000000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000100000000000000206b8334f7b4b9a952c778940780f6e588c538faaa95c1696e36b699473dbb124c000000000000000100000000000000010000000000000020f7a761c374d56dfabb889c74e1a5e23bbb7923bd0b757f65fa784fdec304ccec0000000000000001000000000000000100000000000000204178366b50f377f3dabf65ef62f6cf5a6578eec538e5250111a043a3e6a4d5bc000000000000000100000000000000010000000000000020b86670486fdb118522b061bdd79d473f7af94d2557070d82d7fd34c53b2d6aa8000000000000000100000000000000010000000000000020add0fe147d971c5a4b9d01cf95aee412eb47a9c7e6ad03f2699e74a92c0d94a90000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000000000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b00000000000000050000000000000001000000000000000100000000000000202ec1c011f939c6e7b30a5f8d99f5d463ef8740881f88ea0762b286d1f7e2c6b20000000000000001000000000000000100000000000000204e2d792b7b178afde2ff751bf479e60bdc0eec820c6ee8cabea8433bdc3e10fd0000000000000001000000000000000100000000000000203fa49582a3a2bcdb51ae48dfde5f30bdbaf3982f24dc1af42947edcb1c853c1d00000000000000010000000000000001000000000000002065c61d2e4d097c2a39e44bdcfa0978b3b7f05e0efb6c860f1f7a5ae6fe361a49000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc541600000000000000002f0000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b3910000000000000006000000000000000100000000000000000000000000000020856a968fd3cb5876dba5712a865b062b6f03422d4995f67af19e00f51a754003000000000000000100000000000000000000000000000020557656fbc0f1ee9ab02fac82889134c19e4aabe88f12a5014ff364bdb1fd8f71000000000000000100000000000000000000000000000020d821f73d7a3ee617719da0b26f94d60c9890893140ebf81bef8472f66dcaa25a000000000000000100000000000000000000000000000020b9a52c56713a9880951e923afbecfaf24a90d9fb2b5a1dfa8d58a63c297f272d000000000000000100000000000000010000000000000020aed17919db728953ffd39208c53f105905f6b720d15998100add061d340ab11500000000000000010000000000000000000000000000002058b95513f1be96a860c8424ca1a253ece0a4464984acd90966bc2d86ac3f41c6000000000000000f0000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b00000000000000050000000000000001000000000000000000000000000000205f16d24275599e549e2533fbac86e79499f9a329aebdeca82d02048c9b90940e0000000000000001000000000000000000000000000000206727d263de7719d1bcfa4f90c0c8dfa16f99f5f2b61f07d6702dfa60b8b8db66000000000000000100000000000000000000000000000020b697dd650079632ef8e3e1d9d7ec7961a2008591ef5687500603dbc263b690d8000000000000000100000000000000000000000000000020a453503d52eee70b784c636e310fe65429b75b64fd26a77c27c20dbe18d3d33d000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc541600000000000000001c0000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b391000000000000000600000000000000010000000000000001000000000000002018946b1e9559c96a3a09330c1884a0701d0febccc52f2c25e2757006cc2e5a260000000000000001000000000000000100000000000000204fc126b58e8e2fb3b9b98416396dfd6d88c3d75c10b8071f18747bdb5dd6818700000000000000010000000000000000000000000000002066a864c0fe566ba1ee83def8ca951e608663970417cc2e7a1f58a4adc21faa5a0000000000000001000000000000000000000000000000205fd7db198abca387face9964712817e444014bcac13ce87f7a7f3a063c4a2ad2000000000000000100000000000000000000000000000020465a1f127ad8c1d5d50e2e78e1987f675b5271439752c54cb80ffdaba65e25710000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c0000000000000001c0000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b000000000000000500000000000000010000000000000001000000000000002048c8aa4cab17389c454943264383f3b3b44eed5d670bb9efc54cfe142000afe30000000000000001000000000000000100000000000000206559a1a6d6e3b5a8dd58020285068f8d6e894ff31b992d685ade2a3e405e902c000000000000000100000000000000000000000000000020861b40a8f6e23edef75ddeac66348157ecc011e3241fcd4ac976118b14d79496000000000000000100000000000000000000000000000020d84b9cdaddc17699c6b3180b4637dccfc18fbc002defc08b67518e24eae2cb9800000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca0055896000000000000000209730bfdcb271ca384f91ca5975c616ca2fd0fe1822531c794c4bcd489d3f30b32d2ff614ebfda46f6a48a5798cb4cfc84ff65ec16bd5b17ff229b089ee8aa06327b87bb \ No newline at end of file diff --git a/contracts/zkllvm/circuit4/modular_verifier.sol b/contracts/zkllvm/circuit4/modular_verifier.sol index 0a1cfcd..2b3ddc2 100644 --- a/contracts/zkllvm/circuit4/modular_verifier.sol +++ b/contracts/zkllvm/circuit4/modular_verifier.sol @@ -39,8 +39,8 @@ contract modular_verifier_circuit4 is IModularVerifier{ address _permutation_argument_address; address _lookup_argument_address; address _commitment_contract_address; - uint64 constant sorted_columns = 2; - uint64 constant f_parts = 8; // Individually on parts + uint64 constant sorted_columns = 2; + uint64 constant f_parts = 9; uint64 constant z_offset = 0xc9; uint64 constant table_offset = z_offset + 0x80 * 4 + 0xc0; uint64 constant table_end_offset = table_offset + 608; @@ -48,6 +48,8 @@ contract modular_verifier_circuit4 is IModularVerifier{ uint64 constant rows_amount = 8; uint256 constant omega = 199455130043951077247265858823823987229570523056509026484192158816218200659; uint256 constant special_selectors_offset = z_offset + 4 * 0x80; + + function initialize( // address permutation_argument_address, @@ -80,8 +82,7 @@ contract modular_verifier_circuit4 is IModularVerifier{ bool b; } - // Public input columns - function public_input_direct(bytes calldata blob, uint256[] calldata public_input, verifier_state memory state) internal view +function public_input_direct(bytes calldata blob, uint256[] calldata public_input, verifier_state memory state) internal view returns (bool check){ check = true; @@ -110,16 +111,12 @@ contract modular_verifier_circuit4 is IModularVerifier{ Omega = mulmod(Omega, omega, modulus); unchecked{i++;} } - result = mulmod( - result, addmod(field.pow_small(state.xi, rows_amount, modulus), modulus - 1, modulus), modulus - ); - result = mulmod(result, field.inverse_static(rows_amount, modulus), modulus); + result = mulmod(result, state.Z_at_xi, modulus); // Input is proof_map.eval_proof_combined_value_offset - if( result != basic_marshalling.get_uint256_be( - blob, 5903466939373624969 - )) check = false; + if( result != mulmod(basic_marshalling.get_uint256_be(blob, 5464385338715482808), rows_amount, modulus)) check = false; } + function verify( bytes calldata blob, @@ -136,13 +133,15 @@ contract modular_verifier_circuit4 is IModularVerifier{ modulus ); - //0. Direct public input check + + //Direct public input check if(public_input.length > 0) { if (!public_input_direct(blob[905:905+736], public_input, state)) { console.log("Wrong public input!"); state.b = false; } } + //1. Init transcript types.transcript_data memory tr_state; @@ -192,14 +191,12 @@ contract modular_verifier_circuit4 is IModularVerifier{ IGateArgument modular_gate_argument = IGateArgument(_gate_argument_address); state.F[7] = modular_gate_argument.verify(blob[table_offset:table_end_offset], transcript.get_field_challenge(tr_state, modulus)); } - - // No public input gate - + //No public input gate uint256 F_consolidated; { //7. Push quotient to transcript for( uint8 i = 0; i < f_parts;){ - F_consolidated = addmod(F_consolidated, mulmod(state.F[i],transcript.get_field_challenge(tr_state, modulus), modulus), modulus); + F_consolidated = addmod(F_consolidated, mulmod(state.F[i], transcript.get_field_challenge(tr_state, modulus), modulus), modulus); unchecked{i++;} } uint256 points_num = basic_marshalling.get_length(blob, 0xa1 + 0x20); diff --git a/contracts/zkllvm/circuit4/proof.bin b/contracts/zkllvm/circuit4/proof.bin index 11af0a0..8637101 100644 --- a/contracts/zkllvm/circuit4/proof.bin +++ b/contracts/zkllvm/circuit4/proof.bin @@ -1 +1 @@ -0x040000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d3e6039ed7769d8c3fa14f3df87db1bdd1897174295e78a26a9ddf2ca2608d37000000000000000393e6039ed7769d8c3fa14f3df87db1bdd1897174295e78a26a9ddf2ca2608d3702f5497c3241d226f7a598e125b70d4977a432d3256a5cca609eecd9708197ef737e121a355113bd3e268c35da7478b50f1d9105cc851ce52eca0fa3ebe2c212c2ca6f6cfb491ac2d63bfc65bc93426f4fc7c1707955613eb6622712c287f7ad01765a830a9562b236c0bd0d44465b8943022eddfc46523303a701f85b6dca5d81f42d20e86d85ce2f2bedfcaee04c2c88798a831cec778463324a315ca7d660d34fc48f34eaed7b11c3b142555fc9ae4ce680c62ccacb6d58b036caf924f3d371c4e1a48a239d06ebdba5ef6a617cdea616e1700f74b6727cd5ccd92f472fe3f3e6039ed7769d8c3fa14f3df87db1bdd1897174295e78a26a9ddf2ca2608d3702f5497c3241d226f7a598e125b70d4977a432d3256a5cca609eecd9708197ef737e121a355113bd3e268c35da7478b50f1d9105cc851ce52eca0fa3ebe2c212c2ca6f6cfb491ac2d63bfc65bc93426f4fc7c1707955613eb6622712c287f7ad01765a830a9562b236c0bd0d44465b8943022eddfc46523303a701f85b6dca5d81f42d20e86d85ce2f2bedfcaee04c2c88798a831cec778463324a315ca7d660d34fc48f34eaed7b11c3b142555fc9ae4ce680c62ccacb6d58b036caf924f3d371c4e1a48a239d06ebdba5ef6a617cdea616e1700f74b6727cd5ccd92f472fe3f127c24d6d93de9842f29a6d245d234127711e536c2cce0b14e876d8daf4400743149574fbf6c76bf168e26d0f5f1a1a64a1f4ba31ed74f9ae72b8eaffdec1696213512f755aea8bd75050bd7d649b6613b649871744b991958a487efc18cae330bd1a4bcdb23f87ab53e08d016e427e4599c7e0927778a9b08203cb9dc9c1b2d099b5aa69126781cc3d159d4a09fd903785e3e0b102ed6affdfbab0e6f46735d1efa2279781ce1bd13c856bbc25d85030f7e4f6209ce07f8a25cc8572e6e973a2eadac9f0aebfc38c7e7de2345d0bf8feb411a5fed0d72ac48862210eb7c020e252e956691cc101cf6b572037662781a6fc5c2ea336329870bcd98bb5f11e4af243c65637777d1ee46c13fa6d368a503c6ea125afaa809f6121faf4f7e8634ec1913976705b901625be9e1821c74fbd6f67ca6d47ab75cf4f871631d6f6e0fcc05ca7a1db7d20a01c15223145a49bc92f154bc5fe7711a038e0a84fb5beefd9310f4eb1c5290c61346203e82423cee59a6035bfd481bad6865fea0ccb30cc0123149574fbf6c76bf168e26d0f5f1a1a64a1f4ba31ed74f9ae72b8eaffdec16963d64554f4b7f8579b159b7524fdf1de9c36867b8d7831c2cfa87c44ded8feb793a73f59d35fce36e759ee3b753f2f4d97d01cf186f5e7c532c780e32ceef3b1d39e7f6550551935dd63c95ac7cc649d8a53ada8ac3288075313fb238029deb2b294fd51015a092e0a6b142a1790ecb1bae622443b27626f464a54e0c2be735a021b2366c4b9e1e011b98505da349a409519835bc1f088dcf428586a5741fe4613fd0ca8f3234758577329d6c6758c49bf9aa4a2494805125375911931004ba961ede1184bd8b0b641d3c049676beb869e7d16334622876f8867be818cb5d0d5f3068df1c8c31a742050a298cad58026329bf8315097e374ff48728e27633cdcc13cc23004f2aabbc9b7f05ca258e0b57a543e2bfb5ac023244bc9a46a0276b782699a1da7a5445ec88cb2d4d4bbf8a0276dff07367c6d6666b79c97f4f0942f708b73511398ef9d11ad293540836198f06f637ada1aaf3914b9fb2c021f4dd5331ce784f01d1baaf3354e4a5a2b800155c214539048cc90c3968396e2f3666900000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000130d990591c75b4f80f9da45aa1c40fe0fc1a3828959305e162c7600009d5e43c15f7bc57ae77305ea0748ac7b82f9330e3cf338a9259eb99031c0274a37199c20cb28b293b93f7628d2a91491749d0cbfd155d2df87d5bfdcfbd1c3c0295a3593ce300bbb45268381569894e967fbda3079473211a75dae8022e4eda201e26e6051b3c7e839ab7f9c66e65ec06fa89f005e5534d376350e6f0f1f09135424976208e720e605734e2fd028899385e1a0e8373fb1c08ed3032453fd046b0106928364fafe14b9a37e4ce1b07338b4eaaa8e9b26544526c13053eca9331caedd07d1a3707391b7645dee93181e36e5628dd8b0df1715a3509331d86fe2f4b90bc5e2299f021a1d3514b8fa21950f5a35c325555c335b67eb41ddd2a9f6d41e866a82192eec5337e67f53bd641bcbd660ea7d3149d37e82fcb3ada82530222f7c90a3902e97f2e93150a80a1dd6e47bda9bb965c796acf83775804a51fe6c1b4dfbf0c172c6d3e3017609f6f7086b01adeaa6a89ccac66cfcc808d68abe75695441324bfb797fbdc45495d44ee29ba8e5b5ad85044ee813695c837a7b382bdc8f80739de9f4874611b4d78c647049606ae9870a660356b1e3b57f0a5c3f8818fdfa5000000000000000a00100103020203060402000000000000001d0202020202020202030303030302020301010102020101010101010303000000000000000200000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a520000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000002010100000000000009102f50d95a6fbbf69d4b315b51feab760a01547d3e9b8250963cb44c579ff9d03410af26a590440962b4cea4ae015489f620f21bbd6dcaa8855c78e49560062fcd2c943ec42eabd11277f6c899f9594e319fd2a744eda4a79c63fdeaef1fe11101136bc13bd1542eed8809376606a6b1ce8273f1b71ba8517f352f45fde01eef001ee539d4e95b155c57d1eb01debe86f7b849796488505abb286e03e49f655502211ac62b16a4eaa3a82e14fe2141790869fd1f9780fc9e6070bf2d08609aaaff1a7a21288ec76acdb719970959b8a2d654e22cfe96f7d37097cbb19d1cfaa9082585ded77138953248e668f6a6475d29cd646bfd725525ab01617f4fe30556f92f50d95a6fbbf69d4b315b51feab760a01547d3e9b8250963cb44c579ff9d03410af26a590440962b4cea4ae015489f620f21bbd6dcaa8855c78e49560062fcd2c943ec42eabd11277f6c899f9594e319fd2a744eda4a79c63fdeaef1fe11101136bc13bd1542eed8809376606a6b1ce8273f1b71ba8517f352f45fde01eef001ee539d4e95b155c57d1eb01debe86f7b849796488505abb286e03e49f655502211ac62b16a4eaa3a82e14fe2141790869fd1f9780fc9e6070bf2d08609aaaff1a7a21288ec76acdb719970959b8a2d654e22cfe96f7d37097cbb19d1cfaa9082585ded77138953248e668f6a6475d29cd646bfd725525ab01617f4fe30556f92e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b33ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba1d95c8e017fa1e6895534fc3485c246a6b691d17e40c111566ee81de19a3c1b20c139b14e2f029cc073e76e7a64edf1a6f3ad871102218f612740857a337335316333d62a0235abdc8aff9d607499a1e81a3e021fbd93c3fb572b8bbc389927d0b6a22da128b55bb8dfa6731f74ce472dd044fad974689e3e68088fc4ae05e100bcfbb7d08c7af75c601962075b73bf4f6f7f3d7a8dc2e33e18626713e911ccc0dcea87c142cd7194c851c76df44aa147c540709bc62f27ba33ec049f82126cf0af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb1dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee19732fc7d6c9bf281cbafd3f11cd7c7c91d5c0c739eed7a50120c521e61f20f2ccd04f77edb1bd1e6790a44a9403823b1ef4a3e5fa3bac44521af6bca0d5f7fcebd33d48a0441bcc10db21bfab5e2260995ce53e9b24c0cd5872b95d968812e8b9e34f4a61c289fb65c3433abc4504da6f560be165bc3fefe860dd8bf19c2f213f6160308c93a5db9d78f85e0c31b0b5487463900648f97a3544d96dd3dec7faa0729fcf736c5a24628707a1f3ce4f4ab78dc0d989779b555c74b9653af138055fb23f774ed838f90b57abf43b0684bae3303b007d208749e32a7d8decce82935e72a1ef3c3a043fd49fdd75b8847fca8d7be5bc0b3d26b8c26a2ee5e761ed8574939581c22f12c79ce2411b819a164abf515bf3845a6c947f4856829b2992b4822195adfb4fb811e3cbf62007de7306d17d24a79fbe515900721ba68f16597b173266d16ce3f037cf03107ef1d9e857f70e9456bc4f3ffda7d5468f275b2067b9a0f78d397a09b580efbe063db59a165576a63376720573afda1169634429c340e00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001286df58a377fd6f9c7f2d2c8634d61b10285a99460b578cad6eb13c96e87fb720ded7bd7c9bd81fb972ec53f33312ee0dd98131341bc43a8615b6f83cf21d34403749d6cf7b8ab784321e2a3dc817e6d932ae938c6474af1fd695eeff8cb3bf31d1178c6deb1eb64194786bfe02bfb36f9f9ad37cd51426e4222822d8bdf2f3023bacce439f458351198fc056c900c801e66f6e299c271749a4654b2668a9f3924f17e90072a15a0ccbe24ec4552d0077a70408d500545936f85878ed4daf2b43ef55b4957253c22a74ea99ce45dada0e0719613d53b55c8d70309b7a6e74531228b119ebe78c765588a25758f77ae52792f82c23613e96b1a1a8154a8fbc94f263eecd9bef4943255077dc00633158a6698af7a6f87bedd8c2aaf823e71d76d0f80c412366b03b509ca9e83116b10b5a10b88e878d32b38eb8abd2a45065025278bc120eeda743c341fb41ea25ab2e149686ed0f3d11db215d4573b8bd3d69c1facd614ac890064460062ac4dd3f4191f0a6fcaabdd07e138abda522626fc982b4721f609d421b00587986cac1ba3accefae2f17cf74bfa48e96df55ce3faa9246394969770ce0d7c6e7fd58d97a21f511d02a2edb02433e54939d84b4b6cbd0ad42819c15b1e4f3125a7b872f24e28e85d733abeb20cd618c63253f16db6511fd3d5d68ae553ce37cbdd3bf01eafa7fc4dd3e7acb87fcd332559ddc92fff070aee82546242619f26e49557986033ac05c3ec937335f8da9b9f63d1253d783527488da53493fceb93e5c7283157adef550673c9e97f7d088ab21fcead2ce9c2233b71d5b1b9b94b37ea516b6d81d75713c2f380d31841dd7aeea14e31a9f1291cc48e2a4e4646b4c815ae94927e28a90e83a57b3634b73e1e3e8f9ece560ed83029392c78a09e7817939719238934b31e418f8c0cdf571c344ec4acf851b5cb0fd6c6d3875f6187e86c68e6dc76cb4d0405096ffc6da1ff64de6c4007ae4a3630ce1dde5b23185875e1f37db1ae077f307402c82475c83a3a024499d9988cf40f31e221a4dce7a78a1e0c824e51f880f1d29633e4d730e15f2aec532667730d34069557c7af79ba4d69c1747866257b8b7042f49a65fdd05683c43a3ffac0c10bf96aa838508645b2963e8b8799da8496d656076ee6fb4b42a96cb2c0053f40233b71d5b1b9b94b37ea516b6d81d75713c2f380d31841dd7aeea14e31a9f1291cc48e2a4e4646b4c815ae94927e28a90e83a57b3634b73e1e3e8f9ece560ed83029392c78a09e7817939719238934b31e418f8c0cdf571c344ec4acf851b5cb0fd6c6d3875f6187e86c68e6dc76cb4d0405096ffc6da1ff64de6c4007ae4a3630ce1dde5b23185875e1f37db1ae077f307402c82475c83a3a024499d9988cf40f31e221a4dce7a78a1e0c824e51f880f1d29633e4d730e15f2aec532667730d34069557c7af79ba4d69c1747866257b8b7042f49a65fdd05683c43a3ffac0c10bf96aa838508645b2963e8b8799da8496d656076ee6fb4b42a96cb2c0053f401d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f31191ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a23a3be95ea9f18d2ba1bdc9e20d742dd3d63c827f198de024754695b2fac8ef320aff83835a5b4ccf729e3b4b253bd1f7d7324fa0ce86a7dfa7275830f1bf16424100b05774826b954c1e98cabc2dcf1725adab78078c802023ab2171a81caa32deb307a3d1a7844d20e88da87b5ae0239b5c2e49342701737b9c664a4fd6d691fadffc2b1154b6729eb1fbe7e0fde2dae0bd0b60207b2e40ecc3f5492bd3c20163a206aa9162cf827adc731a5cdb7db8fbc61aa5764c85a123a61e921fdf31e31870947f95bdea9c3c192cb3bbf7effe29d0fb7bf7284c1d7e0d66acf118ab01040c9277dc8c6351fd039b70656118046072e337c872d37814fdf794ba768ca10f547f27e8c939e20c0942da06ea810edca7ce96c3f85ea1afab3e442288e863cb23cbf15913dc054ca1de6bfdee2e625b5cc8cb24762ca766016a63e8e29313f1c3e6d3646005b86ea2120e2bf073edb7fd6e3b821ad27eb134dbb05d43ff702ab940240dea4835ca7ab615f5689414d24670783d804d16e1d682914e4b3842edb7545b87d3a266719e769dc68f5be9578a8b03b9a7ff069c36e41ba2cd72d11248aba4782c5d998e6189623970a418ccdf04bcdb2792b2f69c2ab45d328d50fdbbf16201e2b7e24d31455600186627cdc68bf38594fb5eb8b03d379d818443d967b04dd949cb2ecb731cdc97b6e35f13711433f1753b02c1107ff351b889a2773b5ad7d2b090a09ffe4faa72bd5de4703574992ad1744c995de12627ad521083e79fc60e79fab809a7f5c728487406136c07b7bb86312f718fba4dec171d301a40fc986f5e508af31bfab40646b051423ecd55dc1683badbc83ed8173dcfa099c824c492194f65ae32b8b45476186f9502ad9c9f84b2a6482d38f9bab6cc90000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000127a4f9d6685fecf97d53a8f085597688770883222fe1164239468dfed7595818376c19be7028368ccb2f06c8e33e089cd0a01e6279c2b4377938b953e1c0d05b1ebf43097799114449d6d94b8f3da3f5c3c7395c128e6b1f3fde543b4e603ca00928c4cfd2b1bcab5fc034c822130b149bab0e646873ff883b1cccab5752d90130c03f23b86982feee2fa7017c5d31493befce3ac6fe2f752e49d2831efac9a600ebc5522cc043ee20c6e697b9746a0a2d5cf43d013d8e52a03b7e36e9dbad77196ad97a632be84e02346939fed354ddaf8c44ad1665639a62ccbf3b192d2ab0193cc39ecab1544515c0811be32cf039a8fc330414c142f983602927efe0907106d1c79450deac6f0efefca30f222ccb3ad70f94882bbe01b122a0ce0861c0ba3c483899dc3954a3ef751178a72a9c51ea4d23a4e3cea3a42f82d32c612f478817dc15fbc8badeec7e73586330e5a4d41ac84bc51727664d4d6e8564d11e5e33247ed126d5c76ce65c5be1d6d9eada9cbb042a91bb5cd9797e32f78dbc1704201c629fce4e6d8f4b17536c31055d4411f1c1a39a304eb740d08e5e2350a69b43334816be52d760726aa2ac11345601ba2e5641fa3a58b8ed5da449aa5788cc230800cc066c4d8d1b9ca821b6e824ba460ec9d4476bfea2b2a6a9ccd975c5adae09fe982a5677300c24045482cbcc4744d617ec0b7f052b2bcc305fe8338657513bde76e0cc154965d3e3c60e488ed1f78a53c6c7cdbfd913a83d629362567dfc3b7547978e246f4bd8ef072db9224ea37e4d3a0afa0d421c3e7f9ba79239be683188e3736946f3bf517c077eb5300c2b271757a63931e99ac339705544006eeb0e771c8c96b90c40ae83f8814acff3d4fb2f4155d01b0f80d5f3c097bbff911637ac71410e62c2bc976c257989f03cd75ca0eb4b0212a4b304979ee354022a9408538ebef19d3d436893da86760fc328c5a5adb1073a546894959209abfdd56d165e364547edcdaef51cbb5fb1b13034460a3486e5295310b24156bca40ad4e029a1c9bab81232510ae344a04e4ecfcbdc3c64752423a60ae6ebda305bf52b212fd70f5a67a5046ac98fa8de7875f1053bec6da67081a637e21980c23436285f1028f0a5985afb9536705721878a0efae65a2b5598cb52e3b713b02acbc9d7a23188e3736946f3bf517c077eb5300c2b271757a63931e99ac339705544006eeb0e771c8c96b90c40ae83f8814acff3d4fb2f4155d01b0f80d5f3c097bbff911637ac71410e62c2bc976c257989f03cd75ca0eb4b0212a4b304979ee354022a9408538ebef19d3d436893da86760fc328c5a5adb1073a546894959209abfdd56d165e364547edcdaef51cbb5fb1b13034460a3486e5295310b24156bca40ad4e029a1c9bab81232510ae344a04e4ecfcbdc3c64752423a60ae6ebda305bf52b212fd70f5a67a5046ac98fa8de7875f1053bec6da67081a637e21980c23436285f1028f0a5985afb9536705721878a0efae65a2b5598cb52e3b713b02acbc9d7a221fb658f6072cee97b6dab3dcbac82009de512e271ab489886ab5369ed4941f1174fbaaf88be79d412b9672c9d372a7d2fa63a6f94bf935c8b22a38f99927d5408e7ffa7a6007171ca846ab5c221a555d35b9aacf9f95610076d0f3575dc681c0440361a1ec224d7d8d5ea28a83a7d57f8b8b730acf476f957ec35112a3fa6163286eb1e3ecaa056affbea5789533a4e1831888b716c307e647a2160b3ab9f080df3103f23d9644fa72a1b6c1b961a9c14fca4bc6d64a098a22453fbe63b716a326db10dd5a7b1765db5e5acedf3cee26786f1363634c1a634a356a0e08b822a0d59dd55308f221e8b7b9adc30ff608a8d3a58f05c6accbda67dc57cd7b9e0ae305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe13091cc41ebd24a8f6c5f74d6bc44fb38cfedb7ee4c9d662770a1924f14a91592048a8d77f2449b3bd05b997cec8e288d41affeb53192dab303b17f1088070e8151c9ac8f98cbfa4ba0dea0c7231d8a9b105eb6c9da85a730b14ce4d9cda55f524700f36587f61541470aeaaba8e582af9e7a75bc798eec5b61e584c3c2ddc980bea23d2a258b52685fd44432cf7edc1499839ecb5bd4ecfea7a492bf8cde0f73415dc2d5da74ad97a02bbbcd308123ed8ae5f0f538faa4baeb2e7c107321f0b295949c65e84e39ddd916d8a5eb750fe1e993a7f64c7233128fca72696ba4bd233d9b3b2e196273920302ab4f0cc0cb0efca1d0ae24d53b96320533f6895b38a2f7d84f11737ba9270f1f1c990421704366925b9a5bd3cab8186296cc03195b63f8e441b2dd7b0c75643db88acd6e00e408e58bb0220e0143d1376b25224be260454614e0b222282c7525f736d4e04be8d07e8cda947ff0a3a7fb8968b912569163572611ffe7135de40c785f343601756a68c35809fba7a0895e0632a9f3384000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013fa880f204b67659db88783f9fa7fe47e98e45422fc8c1590eec2a62b5084bd53a2ef45f46cf9632b07208d52b3da38505f2bc91200a94894e451f6456a1d7bc399c5af606d464fdda7b3aafd31bb5f3f0f7c95aa05f4f6a25c0b89f3e217a6a1e83341ea0a57f6fce4d1e05d3dfa020431e8f0e9ecf5536df531d53b4d8dcd42a0999fcf856df9f68b675a4383e159a8f15783d7e394b08f4f0c9f1a00e2450145367e56033d97da14170a9c8e11a3b8accbe43b65286adb9bae93728f7f9791c12493642e4bcca7b93aa524f1569b68175d08bef6bd37fd56cbdb58dbc235b118481812f5e0c89007e5ceff8e9724ee9b0990fd6fe01be85e42f2c0fffb1781021028a38bfcd90b8fb8677a5c828c554ce1649e0e74fdd95a1e2120163ac04264c8e30b3f9e9e26b4a05b8071e358bfa9fc1afff5a62508898b2ddd82cd0d82a345e0659918f8f292eecbc5460a45005e6ae5fae85e144562c0c777afa91ce0972901d50adf78eec986e1db2d7eef2c9c791a2cd4fb612fbab14886790ae1e3322e67f703bca976e6c2c0735571431d508f21e56e85cf1fdc6fe367a2476e11c87d00d310925261389ec3b045c319a4b0ef37613bf133c306ba9972e0af08505aaebe4adc4910c74e6ce36f6f3ff576509616816b38230139c17532b157f27386a56695695124fda400f28dcb52fe691786947b62b8e8c794184a753da42251051875e21345b4424b3d28a9430690846a80e029c7b9d5c6ffc385dbcfd2b0b1f8aaa7cb77946d704b25613b4eb803ca340d0dfe2aa3d8f5af96779e9904bb63036b4f581afee8fdf581f5a12018200388315cef6b547c023c21149500f418d0fc94b0a7e50117020a7e0a5edfe7dffe9c3832d1297b15b756b1fa3aff0be74311188cb886fa8cf5cb89cc25a078a00b3bba216b5a37b6de742c3a7904c47be0eee773477905730a347633da5f875ff6e8af6e553a97dadb1ea6d456fb3b8433557abf9aa2e4c0ccf9b0fcbc225b2031bd65f7d704a7dd2b8c63f7ed17d66b30aa8540655d1b3f33064f0343dda4dfd0670397e99027b48e066f16e2e82994e0ab65be052e77c400e074efacabc7a0f021579830c4090af372a79c61773017b3549a41fad1883bff1f8b105354385f120311f78fd0c686c6202b726e88cfe863036b4f581afee8fdf581f5a12018200388315cef6b547c023c21149500f418d0fc94b0a7e50117020a7e0a5edfe7dffe9c3832d1297b15b756b1fa3aff0be74311188cb886fa8cf5cb89cc25a078a00b3bba216b5a37b6de742c3a7904c47be0eee773477905730a347633da5f875ff6e8af6e553a97dadb1ea6d456fb3b8433557abf9aa2e4c0ccf9b0fcbc225b2031bd65f7d704a7dd2b8c63f7ed17d66b30aa8540655d1b3f33064f0343dda4dfd0670397e99027b48e066f16e2e82994e0ab65be052e77c400e074efacabc7a0f021579830c4090af372a79c61773017b3549a41fad1883bff1f8b105354385f120311f78fd0c686c6202b726e88cfe8614840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d3126132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c836350c1986d63d0d76252cd4dcc0096252448ef72e67695958363393bbcb800d6809d0f28df34f89daacb5b062f76ba5e1e124926c9ceb5a5f7656919f3a5e969e21d8509a7454e82c6c01ee7f9d53e927b541a171fea9969f871cfc034c9763952b13cd6d52b7a32dda0c03c427c28bba72b3b40b5a8595a3c029cfe2dfe9b15a17dcd04956966bc87edd991719d6b3a0ba18caa2e4cd1d4bae3ffb819913f9ef0cf4d744869d6bb7ca44679edfd6ace4ee3f7c43864249b03768ed6a74a65a6a17f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a66373017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e36851d7d884ac33e3c6d15fde25d80bea7e85b54836569bb5cceeb6776c52af91789f475753530cb37be57062b43ebef7ca00989dac207ebd71aec10afdd45f2366fd69bf31349f99c35c37b1c54b8ec1ae6392344ecda412b8bb3f63a32c175230086247a469bcb4270f361e752adaddcad693d24550e9e2dd444b25ffba12e34f1910671874941dca3f837f88ccdc58cb41c93083d97434adc1f2d75aac2470b0e6ef98e78b6be235c07c80773323a95927c69010f61d84e5111bf8a553dbb17af240798a5008543bfe0b9679e54225743718e9bb9930fea943816910cef970e994204c31d5f373bd9181cc0343b4e845c2fd879814d14cadf7f06b8d5a2f319bac5d70ad5f06ea847e72e97e2f7f92decd8ccea10fe0953aacb5a049ed02f0fe999ea78989dbb38d7cb5bb19f2520bcc75b371ca868d817301801e58dc1e03135cb9b5ec77506e1a03afc26ac2031ab00af04290a74ee96b1feaac8230b652fbf036e6b1dc06dcd150c7524c199a86531ae64a74c947e8a2383fba9dd9b8700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001272d21c93420d5f46428b4873508974aa0885880ffc205269e7b45224dc0f6283352e5072b72af703226597d122d7e3ed912fd5c29630e7bebff2540aabfbc7b03e06be6b3e654db1fcfe721b4324deb6229090533dc9010ad0d49fc314374e70e0f101eabb056220f3dc408f98e581c3c1e3bed51b213f3ff0b02fa306e3dfa1c96b97ab758dc4ebc7de93530391099d05c1ea7c2ddc87c0dd68fb32b6fca053857793966bd7afaf0aa14b03533d3eaf15ebcb47e2a0dec88ce390dd2649e18165f19428609e4771f2ee90e4b25244fe4485e0c8adf37cb3abe838e01d37cc63e6d9e032ae4ca7b650092ee3572a2a7407b9284831272e1eae56bfcd8f8ca653ec557971b5ebb941ca4de50712c07df3f8cfd70b81c2f38b720cd81f0c7ad5928fc3170dc301f12682efb78b45788db51dff36cf912497b935fdb5555376dd52d4c63a6a89a3d999bd58ecd725a0db24ad6427f472a209c0317a85fdf554dfa2ac4cca44f3ba7a63abdbb3c785332bcfffbcca03ed6f29b1d34bf0e4ef4354f2ea2f3f7c5860af81a6fc5e864f1460fec0156d027c29d096abaa2021d56d32b2107c294dbbee4c567865259d4c1ffbc34168ec442e4d324c37805cb8ad8943b1a88f9b8568304a23418262de497712874cbb06e680171e55faa41d5409c1cd727df4264fee92b01e032e312d1dfc91aa6b438ba51735ca196c074b33b9586203af4271eaf61619994d793c93f7791eabda217ca0a238eedffccfdd9410e6e7004e5af2b8bf3062c5d8a3809a489c7203588a718a1bde21c52f2d13584eee29e18c9a65e9ae5bab13ad4f62d3fbee56ad22fa0754377246afce74eef4d0133c5273659a1651a454ec52b09d2c0411a955016f886c5d5d4b09c45e1fdb2fecc3c3bf03fd9067ca5762628cee23eba7b15f8a7894e4806bcfb575759bf810602d8040fc026f9835a89d9d7311dc14584ea299f0fadc1463c2041d5d72d7ef9fd292bb13f3d206f3b4ebecc0a6b39a4676d522b4a9742edcc7a4ffffd09851e0e34144ec0c2df90c4b14133f594c65b9892d01b4e64c65f2ca1492d33e37ae1f1cd1a763c31a22c2889b9fc3418203605223404aa0032be1310c4785e68999647012589c3ce5dd3d7764603cbe7dfc9faddee41eefbd68ee60ad4b4d2846669b90018c9a65e9ae5bab13ad4f62d3fbee56ad22fa0754377246afce74eef4d0133c5273659a1651a454ec52b09d2c0411a955016f886c5d5d4b09c45e1fdb2fecc3c3bf03fd9067ca5762628cee23eba7b15f8a7894e4806bcfb575759bf810602d8040fc026f9835a89d9d7311dc14584ea299f0fadc1463c2041d5d72d7ef9fd292bb13f3d206f3b4ebecc0a6b39a4676d522b4a9742edcc7a4ffffd09851e0e34144ec0c2df90c4b14133f594c65b9892d01b4e64c65f2ca1492d33e37ae1f1cd1a763c31a22c2889b9fc3418203605223404aa0032be1310c4785e68999647012589c3ce5dd3d7764603cbe7dfc9faddee41eefbd68ee60ad4b4d2846669b9001292d7ad405fa37806d82528bc3fe8435a85e151b1fdf1f84a5868f532008b7021658174cef8b7ca01d1325c91a7d18b8dc8db38e6a8a2490f75e8322349c589008b57e0805f4bb851eebf6269807c7c8bc1702f106a0fe1917f009e0d94070b34be1e0f4f65587db243499b8b6119fc53fecc9d8d6fee108adfe74bf5467f4d1893551854fec21b56a4fe98d8269f9e008b625f272cd03983e56987d34756360aed5a5fe4ee28d41d16d38afe5e1f30cf561aa5ee3b924ba91850578e01490f00e36f818aed72e9d9ce471abcc508f1cf43c096b753ff77aa8e927cf356a9b83e61b8d24cb0476c9cf12eb8dc052e293997707289505bfcbd2ced1efdf18ebf125c534548436e43bf17fe0c04c54749cf0b77aa2d2eed5e1e60a2d2e8abc0510461dda8d89f9244340ca170b871686ead72c0f6aeea72a59dcc85f5bf2f68613e5ab435fc970c298c82d266223fd9983bc6fe8ebcbfe5283127d7afb5c084202fdc85526d913a8fe306f6bfbf634ebdf8e773a1cd6871a211d15c1fa8ad94d02ce1d0723f4110cfa7391b74da3f9b403bff477b46e4f741bd55c759c06b6d8729dc607be1a1efb84beb8407e2f7147862c58a219e8161dd9804925be76fbb2d287ff2c966a17e8b732c7a0421ce32d18e8c868497fa849c1f894164013c052617800d36995e81748cd385fbde31cd2e93ba12777152747f79a3ef88fec3fadc1f91510ec6eb76d121edcdc0588234cb766490562efdd97194f39b898c23e4202bcb9008605ecd38436d5024a2365771ae9dd1bcbb0650dfe9ca8ad9c571a8d2078caf70af1b12b5e66faef300ef19583b8a20b6e5538ad9079e8b51e37487bb2c7839689d99667a8c349c9dc10e489663e4637e25da3ecb9bbcce1cfe7dc58b21d360d1f65200e87eb191af8efd34220d593361bbfde567ee157126aa31970c3ddd68c5cee4775c9e11cae233b6b0ed6600279df1b42be3a57c592bd84e97a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001353c92937c37763ec98d7ea0ea0f83e715cd971d9b25e3e93686981b1c47539b39d2269f04070261de91afd2f2fa1577efad1cade7613781727e0b08d32111bb1412a92afd63960195a29ead43df1942f5ab4ba35903e6a8803f778fceef6ae5009f8b888db070f67fd4f233e18da3cae07ca4ddc632f72fda406600543d893910684629314a3298d01f856f837b3f36bd81d2b7e8c6aecd97a0b886468dcb6d315adb75887f0ea5d8a884166acc0b78c9933aedc178b728458dbb7b55371db0246809d97aa1c318fb7fef4b392c6320777f0242c99b6ed59203daea5aedd6453aaf85eade63aff36e3be98eba871d5bc2bf50b38b302d0bd73aeb6f040c16ee330c7393a83f2ad779a0ce71b04f6f38419c59efcf353a81ce4c6a45ec4b120e09da1ede560299f348692cc51882b7caa5ae8701766fabf9f50571bdd482c0362360843b4463152da41b14b1d2c15121195e05a0031100d61ce8093d6a42b74d31c2b72f0e12059ab9e15fcf5ed69e41a7cdcea54ff2dbbe15b8ee6ca26b20d9225920c5dbafa448cfb68b0c5e2c3bbdca35721ab4457435b04f3e4fbe08b36c2d5195c6c5954b74b23f8d35db870a0e55e27379b661fbf87de3697dea26b3fa1d19c109fe9b405102d0c9e84ecc4bc65316b9fbfa8659ed90b31038b415ac9a22b1691f5afa61b1df3d0d5afd8a1d000fc12c1555b1600f24cba786d482a4a21889edc443c08f02ee63e98673cd877a31669abcbc0c1b91be91d0943123c4bc123e6dc8e3b19955799336a9e26a506d65d62fc535d1e792583417e8a454274e09a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22309a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a223305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe2622cbee39cde689d2d8a050b771f7a2c3b1ba52e62b09b30c8e93c520f6ada1196338b4638e14cfd60159eba3a4b37353ad4a5d4d9e176d1f2d58b8452241f00440361a1ec224d7d8d5ea28a83a7d57f8b8b730acf476f957ec35112a3fa61608e7ffa7a6007171ca846ab5c221a555d35b9aacf9f95610076d0f3575dc681c197c72c4ccb103b028475e963f041edf0457e1b288d586454f04237818425ece26bbfed82d1828baee8720e0a208b1b44b74061ef724dd8e083522442f783e5d022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c12334659429b892780000594c3d097f40db55bed1a591791fa10890d107b17803b6eeac5e4cb11c87a80550d4b74dfa3eb8d23386b65868e6be730962988072429830108cb5a02fb92b96cc16107c2713d5b965caf18aaee85332c9caa0d94d41d6a5055453de0b1f5ee004b172161a4672b9d1ed3c3d60b5965531316d1491424c267bffeb4a92a1f9ff71e8aab92bd8fcca320299f15f903a95dc267de98681b3d9840014b56d5e06008e175546d429279f5dbdfade3229583d32a9821679a1d04c802c73bb5682da8ae046269d75e6d067a1ee1225b7c287c4b176cf2a6de32dc9e0425440fd13b49e72087bbfd0944c40d96f6411202ccae4631e46097ad10107710165bc0e1593682c1358f9dd773b9f523e8d4a9a061632ed053cc2be02a058eedbea0901751c3cb699500e5c6a9232dbca0bbf3319c64a76754fd1b940d4599ce45d427e2d631ad7a1bd61fe7e487b02b5406a1dc6f2d36652d5e606a1fe51a21e994ffe1e00a4dd29d4ffedb384f01abea3acf52bf2ea331a1a8f0dd000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012baadf51c0967e82e22afe99af216599c49553ad3266faf11e98c33dbf9e89da128dfe18ca83ba51b71d807d3f39d29517c08d3d418123651e9b22f3394d42630dc725a7df7ce225916abdab44aabd4af843573d6ecc65c70c2f958111c023d91d044a1ae5ffd633fc55a978e1788b5ca21cbac0c02fc85d55b9a8a99f8b45492d14c3db2d1d856d8a3369a812bf4af1aa5e00b0c9e81f869e5c7ccb2a0d9c4b389a767e9f39ce0e63246e2b4bfebede42cd2103003c05ac485c77c0e47443aa3242c742ea77b559a654a1038fca6ab5e901bcb7f2a2962c6c8f1f48565445a3158f38c7926451d4feb0d6c8965e39b074e54a82fe5e6e4bedfa441e64850ea80e4b8f78e621c090866c82dcb40a0fbd9935f5d90968e9e6fe1d949ccf2fae732de77298419249ac825157b9714cd5a5719adc16a64ac75d69f8ea6726063f0b247d7fab66df23bb452507802b7a484d0c27e331576117a392e8977a39741d9d0f35170bf7b1bcf30dbb02f2ae357e426937428db2652b1ba5cbb935811ce03c3590d15e659dd2d2ce5079e2847ad2367006a11c7e5c5da5dcf61989554e61e81a19e52e3ba71ceab3a59e5fb5387395b0114477ec4b1288513c8e4452e1057e2a1047c055fb549955e70886683925272d662119c22c1135efff8899b67124e9334803f84404b90ab676dfa456b284ed80587877bf072248690682481ade24b104410a6aa4538987ca1074bb7cd7c8fc4b693aad33f0284765747bca59c57a370e823a99584cfc1d14cd8b09d1e015502fb910fb5e9bd8f0bb04d689f19e973718a62107e04b5f9b19f1ae1f7823a61b01ced64411dfefbd3a1d74748adefb682759def81fb4a064e60e51e087dc59e52077c2b7f76d095e5f0fbc78752104993b3ea5276178de0781b8669d58b23e86e6c396585012b59689661559b65ae90704c15ad89e8721f87e479962a74dc1793b8302a3b93a43850fc71b9349a516fa283939c4e75c5625889a0112bb7b38a1f8b78bc96b29a7824a49a70c8fc68d1f17c6c63b18a3a9da7765feed4484c75e298f0d329e2351994ee389e0703972e2091e20d884cdaebbab02055da9681b2974c1effafbe95a38a7e8b077cee0c19836e1df277b32514454fdfaa25697e4d6ad84a9010d639ee2f1448075311f3e6918a62107e04b5f9b19f1ae1f7823a61b01ced64411dfefbd3a1d74748adefb682759def81fb4a064e60e51e087dc59e52077c2b7f76d095e5f0fbc78752104993b3ea5276178de0781b8669d58b23e86e6c396585012b59689661559b65ae90704c15ad89e8721f87e479962a74dc1793b8302a3b93a43850fc71b9349a516fa283939c4e75c5625889a0112bb7b38a1f8b78bc96b29a7824a49a70c8fc68d1f17c6c63b18a3a9da7765feed4484c75e298f0d329e2351994ee389e0703972e2091e20d884cdaebbab02055da9681b2974c1effafbe95a38a7e8b077cee0c19836e1df277b32514454fdfaa25697e4d6ad84a9010d639ee2f1448075311f3e691dff3c5197fd00d1d0a0de7643244f7892ab4a9b26b3f4238af227929b22c07334ab22fea15d89c74a4ca0d1cbdd19b18c8dc4699b5e6d44a70b9e363033d81210cb754e0c9b4d86aec4eaea68bec328b666a9a043d5d0d875267093633c17020887259d6494d8930c8fe34dbb38b54f2e6ef48b37424d4d360826e2c99c10f5340e52de04aef29b278901aaca40eaafc3602d624e75ececc9c33045c86e16ae0574b614904f04d06536b5cfbd25bc253f053f3efab39148f663b7b5deec33cf3f0720632895548bb04d3cdc55cb4d809cb1013d9caee5a883a975497c80ea3008ce7d1e5e8778bcd1c33ee0e0d3c0dee902d2d8496b98b5aae77454189f7259154726d1e457b749e5a32d9cb269c17087add08c554ac6163f1ba6dfbda977f43ebbdef2711d9803441a84e31a9d5ceddb174d378971a5aeaf3f8ea84a27c794277554cf172a1465b5f0275fb0bb614ee6780d0b60ac0da8edb3fb4a42c9b65238bb19380ca3bcec1b7ac1e2b2b3cd0e595e5a6676b24b82c071862837b86c3611354e605b67b1a7809a369f541ced5ed934a4c09ec3341f991498c701a1288d02cdb763fa0d9da5a9237be078ea30ff6749e00736ac3e89bc196bd4063016fb12796f6dea4a19a43c7fb1bc397f90712063f0851e9e878c83023b0bb77960fa2d86909215b5e65bc3804e43c6806f8f01e2a876eaae718f162af5e148869f0827f3ad76d6fe5567cd5ff9f5a3152bf77d49c9ffc17416e6a828d1f05bc7cdcd020e374c6f0233b15766cc7ec727f49c8e2eb587852cb8d3d03033d6e7395c943ec38fbc0bd3eaa5293a811bda27f8e45fffc232211a8c618b67b2789a6b5a1e2069ed1fb636691fead243b864219818a5f1cb94479bfa0f76a8a63375ac6e2d3c1d73d3be3dd577aa4d76c5a7cf8ce2effdfd40d0b03e02f3c52b66a13020371f84c731bba07333a6189c23730e48ffd1a705d588a2213e1e958371e6294a4000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001231928ede12b62b0ff82da8e97913aa5396aa4867ac60b5505b50cd4e8c8fee30fecdbae950c124670743c80543af304ee59c24d0fe4f5da17e82768986dab8b3ca5c210bc84e5196dad9f4097850ed1090332f7339ee08963be3157318cfdf93b4c12d0d00be17716c0ec893706f28cb3a5b15644a0a13f50ccad9df697733c3430abbc391b49329355427cc60c601086afbb66e742ad1c02728d5a2e7e978126e91a6546aaf2fc0e41b5ae385cc0870596d8a23172f22bfad69d8d2c895a793ef6cbc729d7fc478cc54b6ea48ddb147bbd12019ee889a04c55767b01800b2c0ba013d0fafebeca5ec7c94bbc5142f3c3a45d4cdbd60c1eaf35dd90badca1fd2e2965ad0899af2feb2d3bb9c1de9c1cc81f6329ddf4f69a91f1c8575397b8ad30baa442d34859586b070f40628423b5d36cfd27e0a9128a88d9285976872f4831042d0c7e516e2df84d2f82682d39469c652c94c870ca22c7ac470fbdf079e10a5c76397f5447ecdbb700511f4c775d4fa59bb9a090b65f5dd28c6f449f8f7b0f17f6fa70415588d2a37b631eadcbe5c490f7b30f765d2d93abda12d2fe42450092bf9231039a34af529cdf1b0579e6394054e551e419e501599ccdd531252039cf79aee9a7d42a7ad719c553f935f4c276f3ec53e5c4e419a6a70e60ae64fe3788398ff62d4e376d88285fc6b64a64b3587e2df655f36a7dc5bc397aabb50a03cda650360bcab6979a7edadd19fdba369ff6268266d19148320967ee47773e280300c5c499ba409bf81dff9fb69b5c7a8e908a623ab4f12d30bcdb819877ea0cc3380dc616f2e1daf29ad1560833ed3baea3393eceb7bc8fa36376929b78cc333cc7f239e90d1e250d652ea9f7cc12e697f5c2ca7e415f0989cd766d6487353fd01844de72be6946bd0616ae2903a22a69301e3a0996aece30f150dd095bfc002fe7bb218d4196b942f9e951d6fc5df7dd68ddcf43626ccafc3f9c22f6a4053f107958583db80e61b11e7166cd122a4af38ca6fcfc0cfba23ff2e0512ecbe800ef86a7a7c247f19e4ee18e9932edd5d7530c550c50ec1ff6ed3e0caed134193b525eb9b9349847e875983702015ad2eda75b52cbb85c7bc68afaad95e9fb8404ada14646cb67b8178a67c8fdfea52d349f3da93d949c9fd2a2363f6a16047d0cc3380dc616f2e1daf29ad1560833ed3baea3393eceb7bc8fa36376929b78cc333cc7f239e90d1e250d652ea9f7cc12e697f5c2ca7e415f0989cd766d6487353fd01844de72be6946bd0616ae2903a22a69301e3a0996aece30f150dd095bfc002fe7bb218d4196b942f9e951d6fc5df7dd68ddcf43626ccafc3f9c22f6a4053f107958583db80e61b11e7166cd122a4af38ca6fcfc0cfba23ff2e0512ecbe800ef86a7a7c247f19e4ee18e9932edd5d7530c550c50ec1ff6ed3e0caed134193b525eb9b9349847e875983702015ad2eda75b52cbb85c7bc68afaad95e9fb8404ada14646cb67b8178a67c8fdfea52d349f3da93d949c9fd2a2363f6a16047d022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c125598985b4ae56415db9e2bb332c7ecbf1e5b2ee5b48d128e16c3f52244ff7e208231a5dff2845246ca0cf5e27115659713ebef7caa9effabbd28b13d9ef252196338b4638e14cfd60159eba3a4b37353ad4a5d4d9e176d1f2d58b8452241f02622cbee39cde689d2d8a050b771f7a2c3b1ba52e62b09b30c8e93c520f6ada10b45f4fb3203a579f75898884ba773de8b74c16da0c98fb3b4a53a4a4f9c399a34819967d4332e1af1d8e800d34bbb8e694c88b8f1d5feb0267be1d368a9293e02137e04dacf9afbc347f2bf066d88f624070fedb8de8410940ab528ab8fc49c0427665ed95b17a0576af512ebc575a225cca770747fc11a85e3405b33ad6bb0224b385c098e8641a085c4a165c658c92708e50a47976d7d269a67edbafeaa0c2a63020858900b61abae8a795fac74fabc6a7183931f80ac647ac8d64b3653b72b7daf5260c290bfd4966a6aab0043b18e76968a2f8279204734ed0f5f0b1f0a1abd3511536821dc461c7d674732bae6dda3b9d00728c5266be6396180321144275648f38767791f7d2b7557bf3ace0f68a9ef19bb02b805c151acb42b5db35a18a9b70c789886e082d48aa840c531f0b99ca9e24e4a4115d7db8438d4a24ca80deb22103a020cfd8a58e54d92782887c90b6f3100eb0a28aa6ef60f71552a3e2d7651c5b56dbfdc2be1b00a4402ed2aa4d03ef9fd5fb2180e6868d3677610ef09fad688a8ffae25ed535dd07007ef0a986aafc8f561c3d367ce2356723107ad0343c245d122c02008ea2e7bbbd4cd937034e802531a1218739649934acb5a8e3e7c416e397009bf4b6c43b7c3bf8916c88d771605072b714b0b4df92b009ff43f6c94247738f6d89cb4ea06ab708bb758bcc5a0d36752298087247c4f245a5a0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000122b575bbdee9d1530be28cf8db7a1d858183ca98f6235a6c99037eef81322ecf0554c7f5286c58d2c05b4647acbe0e3b44c407d8b77cb71eb96616683add57ed02925cb3865496f9289c249000cfab710b620a699986f4d97833bff019d7419a0c3743d7dcdfcaea18d3b2e0ac0ff35ecfd8cc323a8a5f9128f86d9a31dbaed528167781b4f99fd97f618911e58b431105a4e2d018477313a01b2d0df1156b961754e3453822487f237f8303842fe5b8b96f75a36dde5ac5b1d1dafee49a97bb2d83bd10483c61e8e07ffbd1cb75350a4f8da6547ddaecb1c8bb771f7d99fda91fdd967c4263c1d661f3bdb8aa77111deb7f8ecd3ac6c0e752d9d83af68624f72b23493c2c8cd8d2d38c8a0b2cfd73f5318a13a340cfdd58e6096064fe3c305429863f142d038616ef1110feebdee00db0f72dd4db1b5bdf8c3a24da4c801f003397454f7189c20df110c31b86d3f600991c11b85032d9c665391444fe266dfc3aa866bf75bc180b02b55b426b6569883c383fc01fc2ffa6e28cdb0cb243f24d2a53496fdddf198dc68629e1fe1e304ec23ede50519ab8bdffbb59b8bf15f00125576d1cc365d62fbb6fee603b95157d5dd90744190cb7702e774e14e91977650b565d97173850248e93414e74cbbc84c9c097f10ebfe6ed3f64a9b1a495c76704378d4e27ba5b7910b59460ac70722b04c1247a022cdb73f86c57d8c384736e02bf1c35330b894c0da34a795a2e1ad4cfaad69f73af3b47181d593fcbb72a97152f3b580e8a4403a45b9294f1cb88a2a307d8e10c32e40f3bd48996567a227f004ebed66970c16a21963c211e797937651cc016ab64496cde10a4ab01eef4183fb14129968f3e95de69c3dee18686c8bd29d8e55de8afaebb1c8c41fe110be90189ba300f33c712a7ef2ca5985f5e14f98fc07158f56f205653375709aac4783e7645cff0cc38ed5810d35a67a0a1eb28b6d88ab05789fb42d9f995f6553b8907b0a2f04c02e35d47abdf3bf9dcd668dfcec236bccb2ba1afa014b33055d658384f5d0fb3fd1ca2b85420c4062329974277d6c54c81cd79e98d1c39cfaa29a926732eb17c0e70d2665b5c2be150300c5f09cb11aff7da286e20677ff1ad2fb8198cd14e83f18f2d99a4a3d41eafcff3c33ccdea59551ef32b0cc96d0e52d049004ebed66970c16a21963c211e797937651cc016ab64496cde10a4ab01eef4183fb14129968f3e95de69c3dee18686c8bd29d8e55de8afaebb1c8c41fe110be90189ba300f33c712a7ef2ca5985f5e14f98fc07158f56f205653375709aac4783e7645cff0cc38ed5810d35a67a0a1eb28b6d88ab05789fb42d9f995f6553b8907b0a2f04c02e35d47abdf3bf9dcd668dfcec236bccb2ba1afa014b33055d658384f5d0fb3fd1ca2b85420c4062329974277d6c54c81cd79e98d1c39cfaa29a926732eb17c0e70d2665b5c2be150300c5f09cb11aff7da286e20677ff1ad2fb8198cd14e83f18f2d99a4a3d41eafcff3c33ccdea59551ef32b0cc96d0e52d0493feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d0b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c21d8509a7454e82c6c01ee7f9d53e927b541a171fea9969f871cfc034c9763952b13cd6d52b7a32dda0c03c427c28bba72b3b40b5a8595a3c029cfe2dfe9b15a14accce313f5db11d06b277e45099796f2a6b9e284bbd31bd5b1ef642a2dc7642c762708227d8d9d5db25342038160352c32ee7a89896b63b01e4d1acff394993cc40f2563957cd02b5394bc253c4d0448f634cd65e2e2c3d47c95b581077a621e6a494cbf36abaf8b8a6a8de1165276533eb64441a7a8777834e338713e3148132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c83614840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d312634a76e6f4fb6eea219bb2b8224ba3e1737cc1b3c3492986bfd06622dd49953c63f8f67741fafeeb2ce545cfa5eba44d303a5699b931d6c0773dd7044f906f34b1e3cf64720e291183435640328b4deaafa0719bb491bf1f643536c5aeffb05f10975a0e3a836f1d21b415fe01c2eb2874f85853d65345cc5824a08686ff7f36c09b8e669ea32e887f597fc5b0512f9e914ef1814e2d8335872b85232f5add4cb3647199615cd17780a6803a4faed06170d5780e72674c5c32674deba0a522b372bc3108ffd0d085b814b44b3f0faf2047e4804348f99908d3cd663004bc9825b285e555ab6d8ba93203502102492bd86d49972fc501592cb843a378f3aa52e540e59681b126b5f69214be5e4f3ded147e020a5ac1cd868938d2e1cbdc2eefc951f3163f13d85737fb86ee16339926dd220b1bd2cdd108e5400ea0618b9b8722235bff9de5fcaa2264c0038dc5840593451ea5f384bf256ea8cbfc33330ea528934bc4cad822d4f93dcf65f1272607b7fc1e2598364447fe8bc3209a1e85a280a000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012af8a5358325f3aacbedcf1b3d72cd810b38f0b3c4095dba50b5b5c2c73008822c990d111143ec5ae8b2fd5cfe95a081940e16508c8b08a4d563a88c6555cbd2039f457ad9bf9d471c4bd0bda0b2c9d97e80c7c3f74a6f21cd5444e26f81c0c01675f7640706525c4595c7e6a77e09401a688fcad0ef67e1c70ece1d1e91d15c3f4ac9fe2cf45dc9989e719ffa9f09bda9b2e908b6e4428c803c9997a6ff5c361e5495d541f5b8e99bdd7fa4da5aab729e508b3f7227ba4c840b70f4c19ff5d928ba57bcc7fb5f7ba8aa7d41e0dda2cfaa0b9194fd191de0477efa04948dc21a1e0064cc9cd6d8aa5a3377a98c18e93e0ff731baf39ffd422defac29e869431a2283975c0a2074975e5debf3eaddd50ff2300b755c1a9cebb9eadef53bf5ae1827b3d19b0b60fed53f9e42bce73564005381d319d0b1ccc4e590a4ed5debb3783a96b78c9605bc0f9c4ca9045c565a3ce2df7f60913a93bae4cec3c8c7b22580304004473fc82c196f9eeffd1e12d32f461f5e5ca5a5d7b03fd28dfba4f164100d24a45d9ba83d84cf36b9097f893b9a722a040d717843b9ef142419bbb6e4e70286122f059cb238b2bf5f38ba2a0a318ba7488aefe23358a5f152c6ec78827e2b7b3d7dcf3fc0df36f08d47b2bb3bb8cc58db29f4fc1c9a4a707c1d70fa0eb62b3d348fc27029a1f88e4122f8e229e7d56620ee4c8317ab25b08ca05680a555193e8c99add4c3351515044e2ca243a9c8f4a6f14d18bc47bac7391b641d42031336f2f7431eccb58cebb26efbc3726c769202c009ba0d97cbaf60354b63adb91cc48e2a4e4646b4c815ae94927e28a90e83a57b3634b73e1e3e8f9ece560ed8233b71d5b1b9b94b37ea516b6d81d75713c2f380d31841dd7aeea14e31a9f1290fd6c6d3875f6187e86c68e6dc76cb4d0405096ffc6da1ff64de6c4007ae4a363029392c78a09e7817939719238934b31e418f8c0cdf571c344ec4acf851b5cb0f31e221a4dce7a78a1e0c824e51f880f1d29633e4d730e15f2aec532667730d30ce1dde5b23185875e1f37db1ae077f307402c82475c83a3a024499d9988cf40bf96aa838508645b2963e8b8799da8496d656076ee6fb4b42a96cb2c0053f4034069557c7af79ba4d69c1747866257b8b7042f49a65fdd05683c43a3ffac0c11cc48e2a4e4646b4c815ae94927e28a90e83a57b3634b73e1e3e8f9ece560ed8233b71d5b1b9b94b37ea516b6d81d75713c2f380d31841dd7aeea14e31a9f1290fd6c6d3875f6187e86c68e6dc76cb4d0405096ffc6da1ff64de6c4007ae4a363029392c78a09e7817939719238934b31e418f8c0cdf571c344ec4acf851b5cb0f31e221a4dce7a78a1e0c824e51f880f1d29633e4d730e15f2aec532667730d30ce1dde5b23185875e1f37db1ae077f307402c82475c83a3a024499d9988cf40bf96aa838508645b2963e8b8799da8496d656076ee6fb4b42a96cb2c0053f4034069557c7af79ba4d69c1747866257b8b7042f49a65fdd05683c43a3ffac0c11ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a1d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f311920aff83835a5b4ccf729e3b4b253bd1f7d7324fa0ce86a7dfa7275830f1bf16423a3be95ea9f18d2ba1bdc9e20d742dd3d63c827f198de024754695b2fac8ef32deb307a3d1a7844d20e88da87b5ae0239b5c2e49342701737b9c664a4fd6d6924100b05774826b954c1e98cabc2dcf1725adab78078c802023ab2171a81caa3163a206aa9162cf827adc731a5cdb7db8fbc61aa5764c85a123a61e921fdf31e1fadffc2b1154b6729eb1fbe7e0fde2dae0bd0b60207b2e40ecc3f5492bd3c201040c9277dc8c6351fd039b70656118046072e337c872d37814fdf794ba768ca31870947f95bdea9c3c192cb3bbf7effe29d0fb7bf7284c1d7e0d66acf118ab03cb23cbf15913dc054ca1de6bfdee2e625b5cc8cb24762ca766016a63e8e293110f547f27e8c939e20c0942da06ea810edca7ce96c3f85ea1afab3e442288e8602ab940240dea4835ca7ab615f5689414d24670783d804d16e1d682914e4b3843f1c3e6d3646005b86ea2120e2bf073edb7fd6e3b821ad27eb134dbb05d43ff711248aba4782c5d998e6189623970a418ccdf04bcdb2792b2f69c2ab45d328d52edb7545b87d3a266719e769dc68f5be9578a8b03b9a7ff069c36e41ba2cd72d3d967b04dd949cb2ecb731cdc97b6e35f13711433f1753b02c1107ff351b889a0fdbbf16201e2b7e24d31455600186627cdc68bf38594fb5eb8b03d379d81844083e79fc60e79fab809a7f5c728487406136c07b7bb86312f718fba4dec171d32773b5ad7d2b090a09ffe4faa72bd5de4703574992ad1744c995de12627ad521099c824c492194f65ae32b8b45476186f9502ad9c9f84b2a6482d38f9bab6cc901a40fc986f5e508af31bfab40646b051423ecd55dc1683badbc83ed8173dcfa00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001376c19be7028368ccb2f06c8e33e089cd0a01e6279c2b4377938b953e1c0d05b27a4f9d6685fecf97d53a8f085597688770883222fe1164239468dfed75958180928c4cfd2b1bcab5fc034c822130b149bab0e646873ff883b1cccab5752d9011ebf43097799114449d6d94b8f3da3f5c3c7395c128e6b1f3fde543b4e603ca000ebc5522cc043ee20c6e697b9746a0a2d5cf43d013d8e52a03b7e36e9dbad7730c03f23b86982feee2fa7017c5d31493befce3ac6fe2f752e49d2831efac9a6193cc39ecab1544515c0811be32cf039a8fc330414c142f983602927efe09071196ad97a632be84e02346939fed354ddaf8c44ad1665639a62ccbf3b192d2ab03c483899dc3954a3ef751178a72a9c51ea4d23a4e3cea3a42f82d32c612f478806d1c79450deac6f0efefca30f222ccb3ad70f94882bbe01b122a0ce0861c0ba247ed126d5c76ce65c5be1d6d9eada9cbb042a91bb5cd9797e32f78dbc17042017dc15fbc8badeec7e73586330e5a4d41ac84bc51727664d4d6e8564d11e5e33334816be52d760726aa2ac11345601ba2e5641fa3a58b8ed5da449aa5788cc231c629fce4e6d8f4b17536c31055d4411f1c1a39a304eb740d08e5e2350a69b4309fe982a5677300c24045482cbcc4744d617ec0b7f052b2bcc305fe8338657510800cc066c4d8d1b9ca821b6e824ba460ec9d4476bfea2b2a6a9ccd975c5adae3b7547978e246f4bd8ef072db9224ea37e4d3a0afa0d421c3e7f9ba79239be683bde76e0cc154965d3e3c60e488ed1f78a53c6c7cdbfd913a83d629362567dfc17e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d28193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e1110593943781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e20087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e1158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c2a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b69652bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef617e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d28193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e1110593943781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e20087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e1158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c2a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b69652bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef62a541dc9aede8050ad6648812a33cfccec8163996bbfab69265fbcf2ef361c4e077596ab5d4f14c7435038a9742be3e6b737f77900011bd2975eecabf38cafdd3000000000000000000000000000000019b4f2bd06f9bad4b2e1e4b1c00000013000000000000000000000000000000019b4f2bd06f9bad4b2e1e4b1c00000011bbf6cf08a9fcae4eaea8d7a724774b3c8891d34d51de544ba34750fec2c5905054e43e7d570affb9aee4854bf65e29645e89aff47a48510591b37be81e7333b255565b8bac20b8c8e750132a560c37ef3df331436801a7896862ec06cba474336098084ccd24f630a4526a8ec327dd02e337604f5c9549b72cafc70dfac942c288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc73502405abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b328e0e5d239105f5b80d47da2bc3f88cdacf4a3d170591082de15897ab082ec95182ccb0627001b850504582c756dce7c72a060e0b10fd66001d0bbca3d909fac25abe23651217faf5299b77ed5cc30333e56dba19fe08bf95918c03550c9e3b4088a6954a2b0eb38bcafc7568bd41c195159aec6025222744eec5f8f4c7350242000000000000000000000000000000011234c7e04a67c8dcc969876800000012000000000000000000000000000000011234c7e04a67c8dcc969876800000010ac638a8cf8ea937a5cfd2dca9768e1e91fe046bbe2c220883ca8c33eee65e1223ea3210f0baf3d18e488ffeda72d1ed08283fff93761e18561d394428b76d9b3aeef6c630693d93fb6067e1d8d25b357b1be696bffdc11d34314f9a694cf4172850ba5536ba7642c5272fbfd65327d276a5b8fd336422cb3beee5b1199c3bba2e02372ed819e8b59bdd6f3191761e2c6482b87cfd81d4fe877ba8c5a68af88223f35650420d4301512ef7e3d889e3ca011820840ef356cdbc03611a0c5635d9000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013103173e02af76fe7bc01cca917b86174b47fdaaf691cd346f0c253577f0786522cd78f17f6d8c465091b7b0a204088a1e1ce8f5dcdf4df23e18eea57f29771503dff30ed4bfe2d4bb296220f3f7aebbb580faded744c81ea0609c96daca676f3f2897dd46f24017302a93e9a8477a721a53f3a987b1e349a714c59292dfe4e92e0130e4609e4a5f207f5279771f2b235aaab7efbfb5669cb2c32fbab20307411202fe3f48a90636391d2df50de506d7028f86e4b71fe2d3fc0603d09c17f35f2c7efebed0e46634548817edad3e11eefc659f95ea9f9397e1b7d3b0a9ced0fd36b9e9a4fa8d42d9cfaf325ef2fe632faacb6ff08f581fb4ddab283e99ffaeb325835cbe525fdbcf40b144f4c568fd72d0446f4b6815020e78dc2b25c3f87a3216c2e2174f049ed55afb2959828b35f6cf45c7bd6af632167786382f9a29d1f517ee70afb169f685e89b40e8c3029d8654573611c72df2eef9846237f2ce24923014812b48db8de104c6e95bc2b6da937f7a42ad448dda5bf48c2f8ec33bc3b730f0a144344f4295782e813fc0c8e76f65fd8387471362687ade7c5e3a314e321eba15486cf5ad2809c7970278ea5e5cba1a620d23940dc5b3542b6f6dfe19342ab1da45968df2538581430fcbd4f1de9ebde75007ad2f0c50fdb35d2562e8f02a68de31e6e82f780e0e468a1c6c12e27b01363b8fabfdbf99383913ee40330f006f8d6d35d713bccd649eabfa6cdf4482dab5eb981450f667029fc5280f20360375b746d74aa3f8a04de42a501de7199a4fc4c7e2c92f9cdbda891b3c5041b508ccf4d3a5e93ecf17c6dce5a8ee2a604a4de7693506ce6caa2463287a5d817937330b2c5a16c130e839231a5711d59fd7f8b192d4462aaeef08cdc485a27e882c00c8223d8e3a0b76e2507c4ca6d3e17385850e0922081f52b5efca63d3875d13ff37ddc271c5f4891daf83b3592c1eaec113ee002af0fc467741229c2c78a41c03e8ab33c72239526b926d7f422366dac7ce5211c33d49d2061c2cf321a4ce23fc1754cc38ddc6ad946d9280bddc99477ecaa9f789bbd1c72714c00cde5b330c138b5802e3ab1e9c19dc237c4ab1020159d5a246364039e7c42b06bfa8380433ec74a7fd1c54e163e623dc83b54efe20ecc359c316b8e1b16905e64057c7fd08ccf4d3a5e93ecf17c6dce5a8ee2a604a4de7693506ce6caa2463287a5d817937330b2c5a16c130e839231a5711d59fd7f8b192d4462aaeef08cdc485a27e882c00c8223d8e3a0b76e2507c4ca6d3e17385850e0922081f52b5efca63d3875d13ff37ddc271c5f4891daf83b3592c1eaec113ee002af0fc467741229c2c78a41c03e8ab33c72239526b926d7f422366dac7ce5211c33d49d2061c2cf321a4ce23fc1754cc38ddc6ad946d9280bddc99477ecaa9f789bbd1c72714c00cde5b330c138b5802e3ab1e9c19dc237c4ab1020159d5a246364039e7c42b06bfa8380433ec74a7fd1c54e163e623dc83b54efe20ecc359c316b8e1b16905e64057c7fd2ac0ac6f9b58736d8b9902a0567227960edc30fc3065398d32cc71a5620401191b32ecdb06154ad4de0590c2867c0b6df9c5abeae1a5be2bd2c68bbf2f76829604c82119cad824013ef1bf8ed46cf0b6b3d833551645db7f2f7b7bf50b5b920a3afe6009c6a9219031e2300b14d24812a826c447cc8618769faeca6169faef7b0f9953b8cab91378564d02cdcfe889df1f5284980d25d4396b9c92a113d972e024b344e00bdc152b96720f701c2d881e02b5b8ea83cfba3ed035374191b8161d049db4e05814bea45a0a83c63a28f040b3a6869c0b2427567d479b8bb6dba7433b67fecdfcf956a17525539c36a55ef1686f87628b8544536a784e130b4746e42c9c5447ae1258463f3aab447a9f9906b7afbc722f2eeaa83dc7e2d2b05d15550da9914a1efea3e5e652d1bebf32fb2c4a8339fdf7e114fbb9026c3948d1e57b3875d1ddefcd02331aa5654f15979079639b6a80e6aca760f7658a998c21daf13c1045975546e0df6145bd54ed3f48baa6fb0d5cda16e558a79c5acca4192c8a1077327699cf689135753dd0d520e7b35f9234aac2a1e40f36e5435292a06cdf29ceb31b3341939af0183f3264b1ac7fa2a0c1c5646e1b94bfe50bb9668e8df202cda12c7ad0c4ab4f226c1215edec87150efaaccac0cf137de2d71949ce87643d325ed3852f3b54b0dd93edea1213790d379e4f3e8c2a081b4a59d3b631789e37f2e5208c34ad64f2f232026274e3ad5f3c2468bb21c0d577f8fa4dd0573958367523ed5991ca9f478696e856af15610f624aa94d6bc08e5c213b06e02628fd1ba7ca113b0f7478d7fc6c6f164b0f787c96f727edbb3acef9f8c1af257a9c7f2360c14b8a91bbe15e3abf25bd7affe61e9f7cc3dd44196c2782bffb3e9d876a18721e0209fd7186c65a02ba3696ebc901cfcdfc4d1f91b0485dca66af687433041454542a0ecac2b8a2e92e155ea002c05248c440844188ea37f0eefac8c353000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011a84981eca93f884a2db4f38c3838701c2dde3d80aa2cbc2572d2f8d33f143fe3ac5af6d688906c0234d1eb31b88dd8e6c989f08e5890086ecbef1436a65462237c73422e8a223439211c36d87673168570b19122d8917c23250efa7c2729c9e2c694dca9ffb1724f4638bb6ba29f1b711607c64d0fe078fe93d38428535af9015d934e43b79a815cb429d9c54ee466c2e6716ad6bf282405b88d54d1604542b1f62f6fb0f643a803d036dfe26c762f1d6200b280749861c9a974a78433f1715046bc61203e911482e084af5e2dffa066a9c1ba418a20eef25b33d30beccb5fc2912ba0bcdbae64f3768b98f12e1da4c335a3ff2906865ab95d7d03fd8c67a9037be856b3aa3ca0cd973e145dc2f6302b17aba0ba5560fcd334e0e1b0130462102c0f6330e321174f60608f72c1ebd76a47e07f12e5c348758fe5631419346ac232729a73ced6cdf91af471586bbdd24ae56025870b4eb3eeccd2fc808a503bf103a7c1276f5849b7e96bc5907ca9d823634262192dc9f67f945fe3ae5919c3b2a9943e12103b2deb549c1cf2d7b9673f0a5f8fc14c7f60751de7a97d5574d84251172ab80413cdeccac56730c37af582f71ec9855df7a26dc542d35d2d819e2085155c2842c025f60f559c18e7043656c1bf9483b4f335fea8fb8109d1ea51c160503543d79a1c933a7e3b3b375d3d138ecbf7f8a96769fd4482450f37a465b35b90e768d50f6e2578ba668b6f747eaf22a816276ce66cfe3853792cdc45ccf3fee04410e62f937db2e2dc882c7016a96f8a5d70c760b31b1f11d1984b270b6363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545409c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad0f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a030dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f34537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e23a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d366363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545409c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad0f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a030dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f34537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e23a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d366063701d30cbb53d7978d008cd3615854317feab4f9fde2db6584c6b4ea9b95e5068b7cb70c4e968fe90a321a45ecb6c221e359af3f511fa60b4bca61ced1e0ae24ef2af288a311bbc5f02334c1052f8d299158fbdf2cdf5668b90bc81aac4bc125c75f1da7984a0e35ddd3cd4a1939fa3b3b9c2f959314eead426e27e2792dea0fec9db111a2bc701c877b6b49a793338e01242570cdb4629ba3d7dc2df4aef00c92b2d6b47058a06fbcb270dfd3adfdc463f7d18316e233d08b9f3170c2b1cd32e8f9e51b4996ea4ec2ea7f70712a16cff1a2df425c7ddac327a68cc9da51c90c5c2e6ebc54236c27fc8b5428590d0438e98e29fe47dd99a493d90f276de6ae2e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae96839ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e1077f591920208286e763acdb3280fb019c294548137c4442d22d87a3b88b5fb0150d0e603d5b11e21fffc0c6b34c7f9f61c2b730739d728c23e55906609311914d9d33a6aa19a6ca282dc3e6b99781ec735554b302236e9caef5e6ffab81e5c13ad242b4c191f61e117fa186ffa0f43c527a31d3468c486e09ef8634eb4f16a1ad9f810f690e544399e4ef64805b2645d573ecb5f0946ae44bc2833bbf5f7ff252607ef096f1abbc661b109b7fa4d9bc4ef5a30aa43b26d547108b9440a08032f88dc5e4ea5642eccf818c32f8b161f1a364cc57f3341c184caf16b339352972f54001cc08bdb63de0cfbbfc22b6423fdda3d8bf2383bc5295d4325287444e61a3b76ed4926cd668e66a7960f9359e61a128be2217824f476fa8e2df022948f2ed1dee3ca3fec857296b3b29fb017abb43f17f590e377b90a1a029653dba3c2189a1cb4646ee806fc9574f1f069b105345baeec8b6242a578800966a654500a1ff6e78263c71a516be36315a67937c01b5d236621c075307328cc3a2b06b312000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010d48c74f18cb38d4059436b8f8cd3331f84491d91ff6b08aaa67f480fb35c12f0f289be9ca8a8d0edee6cdd9d86a2d1131b3a78bdc3ab5c81fe46743aa0d12d42923bdce327788d7d7764ff10ddfd2a88a081ac9a4bf181e62b907e74b7d388008776fcdf6c96f2a0d34d6ed7d0c83f996f02a5f080f1032e45817d421443a0d3cba87251a3884150994c4e182167aeb6c804cbd83d9d09d1d95a439956db255280adb2095b8a32d0f1007453516acf1720522aaae717166a7b0c4d75843f0ca12ff597a13e2ee9152741a485848d30032c704ccfd9ff2e18e44725bff4fefcc3cf996ac7886009f2ff2212bfc949df5b071b3bc744ab991d8832a9f3693ad671dcc0de975482191fc71c68f2d9c043ffdd6e28a2d91e1d9bc3a909db70335801ab59ed070c06c6ac139095dcd5cc9e4d2f799826f4e4bc89809c4e71a452bb51de93d33098b646db587ddfd3f0f4cd04bde7a0c96d697b882fe58f55c4d88b8242c8ea6d8c6fdc8a19b6c242024d8fd7982c06b6c6bbfb50c20a7e9ae5781641a09c525a0b8b528e8271478f996c8fa5a7a9cb412689f6a488f50b8a76165c735a0f167008c3a9499cf03c9401c7cd1c59d48e0583ed0c3e5a3571500ce019f105ee449421154e0b84ea2557dda98bb8af7b51acf589e340989dd3a5e9b368f12794fa7f3144ea64b6f052a9003728ec6bd7382363742c25802beb5310454543915c396b02e51949eb7f630606a3953edcae2a5a9aa3cb7890410958cdf5aa623ec6a4442a2f57dd4b5ef4bde737b80f9da7a376cccb382184aba8866677d2805583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee83aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a06130191191ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a882546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d579059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a63a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b1c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e23ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c305583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee83aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a06130191191ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a882546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d579059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a63a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b1c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e23ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c3299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f1002214accce313f5db11d06b277e45099796f2a6b9e284bbd31bd5b1ef642a2dc7642c762708227d8d9d5db25342038160352c32ee7a89896b63b01e4d1acff394991ffaa18c3bc1139049500403dfb0a68045256159afd6c550275472c9aa6b8c621319406bfd32611570a209b85b38e49dd7727b21099400a3c3bf232a29135eb22368a8d9f0df500d29c787f59bee3d31a7284c876cd8b378363c8b9485c4beaf0168feb3ec5487731f5a78c05dbf2354012ffa5efe36b383af6c5d5787f595aa0b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c3feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d29cb941a2f109d6af605b466d71c4c622649f3c64cc21faf9dab0468e4ca2300082559f2d36f6e8b95cede951b4246eff9bad95367b060e060c585f8f4936c1901bdab451ade8278151aa000b6fbc7d54b1e479e66bad359e401066eba70867209a39f8854fb6f435560a9d83f0a321687ecf5e3a45fa3de41751ac1b91b6b4701d2f226b015fbbcb551f2837d048fa7d82069cfa53362d415443ddff702eff63e2d0dd94fea04434aae0d7c82fb70584a262f2c6419964783e8f30d08fd100c0dba471319cd6c8df99741293f7f59cdcc086e13965a56ac88e9c7b6f617e0513c7b0f2af395ef9c3e7c5b2d86c2e0446c353379649fcb3de211a6d48dff70923d4c3743bd7fef78b8474d1f56403d39ef10f74a953d58889dd7ba652d9aa2263823171b6cceea4c6b397fbd2fac3cb257a690c13a3179c5ea8e50d996db174f138cfe690622fccbf1a5144046b8057ef6343f2e51fb274c481c8a4ebd5f00a2398409e28ccdc2d7e9ada0a51a4e665440c1e30a0ac2d7803f1d083d08d9252100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001121925e11377999ac089e5509b9fae1e0da5d9cbf3582eefdd0f4eb3d8f67a16344b9a77d753303645bb081baa70f16dcfb273f4e18f6826746332914c66b56d2c4d6bb06a7d10b4ce83575682a6ac2782ad5ac3e03987cae9d64f1abe611b1535f0d90b8d1acaa4272131ebde9a5621cfa97ae909e030ec1ae2aff1a1aceaa40fbe3be46fd1a59a9040b6e255d7e4766edc7691ea152e2964c0be5c40a84b733f2340c5e8c8ef7e86fad6e53d5b551df977487a51126ff4b0265c3a845f37531271b64059999e7fbc140afdf170215165a2d9494d68dbe562e00974b08477e93c883f89615e3b2d7eee88fa98ecfd4e2e4cd91881599f9e452f49ac865522d323b5c0efd4ff0bd61a2094db3a90bb538ebe6724ae0144769e02100ed1653c5c010bb189b7abb2c1e08df8e8cf4d9a478a59546d4f4b35416cb6ffdf8af1142f2fd85e6375eb3f423bf8eea1b8f93476ee07ef50403135fd216f31beacd45f850c71b917bc21d56080243e775ad3fabc8e29b9a7f3e6b67478a268e0456c14e320c1859c9196baca20afe06fece3c925ce47538b9876455354ffd602ace41df82ee930f00fae34f3614637d24ccf7ca651d09208d2312adad932d1cafb4b496e3726c4b3a89dc19e07ef9761b96e90ccb7c49c1480c0431cb5e2f5a2206eba8315340ded9229034636021ff9172b181ba12f7d80e057ed96a05a53c10a90a16137acf332e665f2900acc5ae66d661e0538aa6807ccf32511dad7585d7828fefd1043bfeaf8891514de36def343ae15ac530d00748f805d418a7d8c2e8a9873cd35fdacfe5d9d523654e968cee4801bda3a702c8d324eb684cb8f198e119c1ed40a025301a262adc9ab1697311b7fe425e7d66c6ed6fe4296cd9e175eee63e12d0df460f7d4129b0fa88f0c0a76808b429b167ad1d655ac299516bc12580c9a20320b9f082bed64f05770f3f5897f74bd87301e2a32f74cf2041674daa7f365e105c5e4d7245d074e4acb3c345082b84ce529cd1d265f63b450447b6eb83f029f3a3a1b28dba2f8b1b534c3cbaf7d47b33d1ccbdee2ed956748e8b57e47c0fd621cdd7833b5d1248775f82d05928d998079d10191bfdcf28591566929993b0d1b232287cc4a2edb788a07d2fa6d72667fa875976a4970069607d6c7c366c4f2e635fdacfe5d9d523654e968cee4801bda3a702c8d324eb684cb8f198e119c1ed40a025301a262adc9ab1697311b7fe425e7d66c6ed6fe4296cd9e175eee63e12d0df460f7d4129b0fa88f0c0a76808b429b167ad1d655ac299516bc12580c9a20320b9f082bed64f05770f3f5897f74bd87301e2a32f74cf2041674daa7f365e105c5e4d7245d074e4acb3c345082b84ce529cd1d265f63b450447b6eb83f029f3a3a1b28dba2f8b1b534c3cbaf7d47b33d1ccbdee2ed956748e8b57e47c0fd621cdd7833b5d1248775f82d05928d998079d10191bfdcf28591566929993b0d1b232287cc4a2edb788a07d2fa6d72667fa875976a4970069607d6c7c366c4f2e620e6a6375b0b5eaeeb6fc87a8cbfa390fbf15474932bbe08a8d6ecbb879cb51f274d3dc3a846fc8924f1055fbf4f5ad5848b4b6ec07c76e6079ee428f532d6321d0e91854489c12ebe7a3fe60a253723a77be6156df5a2af0472425de5c64eb8266251b54c6d2543d21425e07ec0aeda47502ad99e9fa2f46262cd952d3d0000285e227dcac39affcaa9a3843ff26167e7011a6f7ac8f89a3b79077718e6e22b1c8da40b524441fd2cc45ebff9a1c1e345dfa49e131e3120c317c2ab7c76eff621f8b3feb7ed63a24514556281c512bf418eaefd6e5b0066bbafd9afd9e0cca10542da47936f227e122da6de23a2e72b4d2c3e2b7e5903e77be09f12841efbeb11fa42639b21ecaf1ed4e983217b62a6709fcf49a5422b064a6309c8e2c557662260f666d094d1a6403be2dc098fb8f586eb4ad8166745ba69d9a8268d67ce95320c56a8439f692f2fd68bc008d17532d03117ba485fbc1f13c462d99b8186f10f6e8ca648718d5b370910bda7dcc81a902a2f60423f21141d248842e6d8fc7a020ac843606ae0225615f79f691b254b7ed95e72082b9863ebe401d3929cfc2b325070870b4bde3308fad4bfc1eff65078b1bbafb37dd85cc858b01bdd9029d11fa9d1dc8fd60e7c15da14c35f8b6c561a34ac95fb114bc51b378a9a05352d9720562e237029f183ea25eb3ca07493aa0811ec660e3bad567df5a652facad26b2d9ba4be5e87a8a6d91e99ca9ccbe5a9a5fae8e8c00e8665e86885dec7035c892f449772772d8f0d1808979e6aa9cc1a262f7a594ad444b4daba98782763f23f2cea2a9bc2cd88a2b90e2a6284360f4ad85f71beaf67baf9a1d7998f7197c97d136368bdadccf4be7a47d1bf570ed9020ff486d6dc2b93d1caa3b207ad9bec5f1539816c6fcf97ec74ffa45e609c4a4e9a6e98b511ce4f61d3d2b75fdd100c6f0ba7f838f4116fa1950b63dc3d4bb4a25fa9385f95b0ecdbac5a8de0f31840d500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001278fefa3dc6bea632d3de4d91a3980fbf76ab722c80d9ec718e7868e20e1b7761de90dc22b8640c3c895066b3026a58c8c30d5f765c9c6894002a17f6da78a1336e08b361ffd42fad7a6739185f7a912bfe36a5b7d8b01771db7b59e2a14b0e23d05ff18ca10f74219cc3a8ec10cdb6d0be921fe9366e4b7c309c6ce929dcc6c15789941f64109be1ec03a21e0e9d34cf04216a04e514d609b8ab7d8e6f1a18b24b9ede6d2043eee37eb447935b0952df03257189a0164dfffa0c0ed589ee2a51d753d02252b3ab7dfb228201a5fddfe169601d97847bf196c8fa9cf8d9d16f43cc8d6b833722960e6385fc64214d3a2ec9e321aa817d603bdc9c0bdc6c2e7ab136757e08c18da1d2a7dff26c35b283df8b6873b075d7bcf63fce122e9fcee8d0d0165bcff194ca25b3c18ae14373c743d3801d9fa58dea76c0dc80921a36277223ba8a2540450eb68a159f975c8c3eff724591edb6e2b38b08ce28f085c36a41a9707aa16f84b4f634b35d931a8869cb1e400e5d724aaa3656ddfb311bb589834098345ba5acc7a21564c8b7102d36b2ee9f751b5cad9f6fbb4d3cbee0b60a71ba13346e6ea2343609fcbb6c8b07260f12dee42b4dc9637327dd401ba2406bf30336be1c13199a3df4ce746867ae5e5b83ebff4322a4a8e5975f6b9b78693900f6ab6cc4ae6bfa482d984aa4dbdfa3a29f83500eb724952dfd8c865202184c537547d67b3a629dff4aa8c7b11e0f0716196d4ad566c3d05f4c6a3fc4a51a963063ebd5608275f30a05dbd2797ce69efc0713e175cd8043cb24a44c12d63ec48167d061a091cbe6fb53239bd3b4d0803a1d7bc7db610da62362ef186623c8a902982f9e5f6e341904acdc642c4b2f7fc806edc7e533c1eb962fe3f669dc3757130711e822d8fb82e89fb20b22881281206f0157885074acf75bd86b2eb2eb4cf0f8ee17dd27047d17604df4dd77ed7ee1b5683838445ae4c236faa3a14d14b323235988ae3ce98e8b1e7a37aca85c859bbdca0667d3d8aba812c0eb797e988080dca67751c3167174e185c85357a37a66669f8958c0f6e6118012235681677f93b0bfab67308fc8b79863165f49ce9c0447b570c564cca51ba54b6cef78fa82504f405498cf703748679ce9a0b63163fddcb41efb3002ec9ded87a1e087057dc167d061a091cbe6fb53239bd3b4d0803a1d7bc7db610da62362ef186623c8a902982f9e5f6e341904acdc642c4b2f7fc806edc7e533c1eb962fe3f669dc3757130711e822d8fb82e89fb20b22881281206f0157885074acf75bd86b2eb2eb4cf0f8ee17dd27047d17604df4dd77ed7ee1b5683838445ae4c236faa3a14d14b323235988ae3ce98e8b1e7a37aca85c859bbdca0667d3d8aba812c0eb797e988080dca67751c3167174e185c85357a37a66669f8958c0f6e6118012235681677f93b0bfab67308fc8b79863165f49ce9c0447b570c564cca51ba54b6cef78fa82504f405498cf703748679ce9a0b63163fddcb41efb3002ec9ded87a1e087057dc25d748e65cffce8e1cf09924474a2e4fe7a8905061b1795b5a6792092ffcf4f90cf4744978dfa55935648e4fcab96ebd33e91eef20a37884bc15fd66c82c3f0310bd10672d5ad277e743b3964de956c989de2c98edf5232c2bb60ef008a66dce1223dc277bc3bc099279c7ae8696045e665e40faa556cf48884b19d8df5eaf553770ba7500d2a77b885a6e4b3ba0df84e485d504803ed74304deff67013e092d0c0a4154e40c2e2e1c318c762a15901802af7f7c0c739541a6229a3d1de7a7f33e69c8cebf0c352fc78c84a7593737392c05e8dbde96a0b602aeeff211da43f235a2d47907377ed6757fb66a488bc3e870c5f37d2b41fa1a6f352361f6a885da31db538e220d9050deb695a20721092fd516be72dcbf54583fa16ac019dccee5387802b35ef46d465536c7a5125bfe9b85eeefae2986b2a5c1676fce05f4e0003cdd3171d8a6ba1b12f5c44018b64cdd7c174aa5c11c0951e92f3baecf5f282f23bcddc963198d0d17d8bb3c7880c7979d283543419769d9a6fe661967c16bd0096ba6b275a55ef9fbcbb3456acc7ae6b0bfdc12b9a65c94130f8ff3c75c9d3b20e7af8f0b5c9e9d3821aa01aeb08ce487ff39124352b14e54cc19ad587511aa10f3a3ff16b0f1b3a694eba058707c4b4d178560996ca309ead55112c167bd3c2f0c5c00e94f0e4c596b145fa78f83b4d52f139b6fe05611ae57dfda3e9842c632b7726c1ab587e622d7b798dda4bf50ff0d62fe57a03eb289e7ca20323855642aa4d7d371480cb9ed5ab4f5edac4d6635a4fcda921daeb3e707530de88dd4c6356030f62fab83d1c710b6292adeb53f755b780845f55d01147b4f064d26568739ec6b5b9399c8c79e489a3ff704e833ac86e479f2decd52c3447487222c60c218272805373e5941625585177b3b2657c98bf8f154a011fbf54377601b907b291cb1fe07c87c1353fb6cd6feb039bbe516d6a73c7609eb18526807adc8555e000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000113a4e67335e4bc621eb491364957bdf6dfc3a8db625c859aabca7a52ae4e3ceb295e6748365ddff259019fd041bbd4a25d1a0290907cd37c2323b6e8942e682a188e0b15a67e88c58018293d07c15867a7c1fb774dad2a2986d78d166191daf502f058fc075055be5f96d11ce7257ae8e123ee00d0fb5fb9ab1b982fc9a928ae10d04c7f7b164effd5615873868af3cf32860cdebdf319c00000560e8d5bdd063c9acc621bcc413cbbed2dbb21be0e65ca262a9cd202f559bd46cfabfe0fe906299cbcfcccf473fc552450ee5c5dbfb0589ea6146c00c99994c3fa436d309225297e5a44948cabc8d9ec0e99e99c900ab3aa43c8d220d8d09b464aab756626312355fcba7a2a664b1eb04ed6b59dcc5362e07019fd7be06a72eb43726221468e3fa639c90428a211b306bb0ebe4d8b1392f91a9f65d640016e863a58ab7d488f11f37fb3b1c750192dd2b9c5ab8707c4292e7b323e24cffb499c65b4b1a5a4660cdcec32b21c4e42ef4888d291d320e6f26a19a82cdf863bebfd232251e97f8c077b881a2ba17e259f8b6c55f99ad206931433adc9f4f1d56739bc71d22eaa28082f2e7275a37197e26aabec401873c56abd18ea9765853d2dcbba6ed600bd3d07837bca364032b3cefa6ceaa15a888280a098267b42ff410c8dcd450f8f806d2bf90f1e9c437ce87db77553882f3954b1df2f69ddc96c68384c7f8ce097d6ed225c09bb253d45f3f783bab8b3a962fb84d7315790e4b343eb8900bea25a5b303e0619aeccb8f653c850c3b90efade9e876773e7509e5a226e42d8ed9358ea7707fc67f0d2530e47f91f36ded523f7e7013069392919e4978abc6e0f780c038c3803980f2dacf1b806e0c9212adc081921162fc2e03314840e70c2dd87f3fc7527ee07b41b9f4767dd9c125a29b3d78305f20e1dcd8176f5b5ae264d583c11bc1811f84be460b8982263eda5d64c287d1c548ade3bcb8225e37f0a9fa7c3ee4507a626848a1c6507540c5bc2d083358eb6e67ba0e7a06779c0df2cbbb92c58a93859d97b75e39af8abf3a43d2f7cca716b601d5b21ac91a1d84e043146d3a758263ec096b28df924a43dcace12900bc992806a2486220560c45bdfaa9dddbb4d19c13f694d7206db5bc23531ed6ff4368fc62ed7832af3bad4d15142622244b407fc67f0d2530e47f91f36ded523f7e7013069392919e4978abc6e0f780c038c3803980f2dacf1b806e0c9212adc081921162fc2e03314840e70c2dd87f3fc7527ee07b41b9f4767dd9c125a29b3d78305f20e1dcd8176f5b5ae264d583c11bc1811f84be460b8982263eda5d64c287d1c548ade3bcb8225e37f0a9fa7c3ee4507a626848a1c6507540c5bc2d083358eb6e67ba0e7a06779c0df2cbbb92c58a93859d97b75e39af8abf3a43d2f7cca716b601d5b21ac91a1d84e043146d3a758263ec096b28df924a43dcace12900bc992806a2486220560c45bdfaa9dddbb4d19c13f694d7206db5bc23531ed6ff4368fc62ed7832af3bad4d15142622244b402137e04dacf9afbc347f2bf066d88f624070fedb8de8410940ab528ab8fc49c0427665ed95b17a0576af512ebc575a225cca770747fc11a85e3405b33ad6bb03286eb1e3ecaa056affbea5789533a4e1831888b716c307e647a2160b3ab9f080df3103f23d9644fa72a1b6c1b961a9c14fca4bc6d64a098a22453fbe63b716a208231a5dff2845246ca0cf5e27115659713ebef7caa9effabbd28b13d9ef252125598985b4ae56415db9e2bb332c7ecbf1e5b2ee5b48d128e16c3f52244ff7e1c1053f85563d3a585d2dccf73935a30dd352dac1a3928520cac7269dbc179c024281da4a46558c590fba2a76d7976627296ba2565c13b814a8cd3526bf9236b174fbaaf88be79d412b9672c9d372a7d2fa63a6f94bf935c8b22a38f99927d5421fb658f6072cee97b6dab3dcbac82009de512e271ab489886ab5369ed4941f106a4fd9419c06adc19a2ad4699e30d08387f0d465988af971f1e8b895e959ff22bb8d14cbed8fa33ebdcf81756d77b6012cba58c3352a47fad441cad6767416e0b6596dce665c4ad8cbc22e9703f3cbbe60e0082df02448ca0a85a63a0c49c5e2de5896202cb8410016aef80f8a46fc1e77d4ccf2768976871259c95e61722e8296a314d85f2f5c4114e77aba492babb6a6f869c76a3f50fb32a37e6b37b5a6e1695ceb27a0d0a3beeb188545b6d4544b7d7125f92a9040be602f9064c84a59408cb7f09e36e97d5f4c18a4cf78d11226b8d0788536d4eef64cfe4dfe22e991d0ebea9a00086cb3fee4fb2f6f84ea714ef83cefcb503f4d4c5c5f442cf59d8ca23dfa70579ce7036dd3df8c67568dde38ecaacb516b8117599503d7f89c68bde25bff121f2036530ba545f705710eace5ddb7e1a9491437b339ea2f4c65068fa0f55fcc72552bfedbd7b0582d62f81b5a1c13638df79aef238742e393cd146d32b0ca606cf7a83fcfe94aa78a0e8e5e3c589ca2605228d2e9a792b8be071f4a6000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013329b5b4b22d3cea486623faaa91acb25a9c4700f6d3e66055a625eee34f3b703f6a506d0e359d21ac5ce6896f65142fd0c89d1d1f6694dfa736414502a7cbb708faf10edb2c47268335e9a72b34220e1e562156bb87cadb8e2855507a2985fd28911e857716c0f9f8a9673ef30c5aa7db8a6b6c4759041ef3dfbed4e68ba1b400e1ece38a851285c04d7357765e2842f3d60a60fb63dd54c688bdec501b3a39295c609a5ccd02fef68cbf9f05c614d850abd2c8493c491a1bd904793867ebd5226266ed55d330101bdfdc7d05d7ffcdc29cc9108af3f031d41d801d78e6f46a30f7d0465a07aca37f9eec2169b081a3b295e1ed2cac6648adafa76192aac4c219260a9ce271d86edad36aed9224a4086772e5bba90596abe2dafecc6d299a291e174492b5deb02f99c4470214fe266d8e769782a74291929e82e3340da558500c28391eff7e9aa8d07ea91d14027d0146b8af0f5fa811d4f66b75e252c1858f0d4ed275f0bc8ba89db6df631147533ced0009bcb3a2077591213593da9b8cd9283810b940f9db16e747b3dd8313bd7a1d94026d55c2ee44c899da5976bb52332772a5d3604b14a69aae6464b69f88520283e32714e481e96598cd74317415330e0aa4268aec9cd39f6ff4b2a51149ca6e715125db888773abc65d36524de5c33bde12c464f5d3b13ce95114c670e4eb7b46adcbc5425804088a5bebfa3114e518786fc2a20eab2dd07772d19d8ad03d9ab3b7482ff78f756b326eb1195896971c8ed4a17b943e982c0f9315a8d2de3246c58b723c846994933bc1a864021bd23f7851abb156cb6739a501506af6998436c3b9c6f29924ce57eaaef8e9e8b1b10087ae544ea93498c65afeaf9509667beb82df3516b3d44d414281f416174e503d59985a76b1f9042039069216d0ff9488b83cf297c9d39952e0a728918b787102a667a5894e06fbdfc6f96de92f006b998e5c0971832582464c89c46e74879032bff9c45179dd14a11d20da7214fde6227eccccd1bd3d9039ae8016d7b95a310d40063bae8622eb5ee2df258deb0219ffc7cc2f378fbb8b5f7eb0d62846a5d03dbfe0d5976151672591a4443a68f57e45a6350bfccb487e54e0edab369ec2f202401f2a689eae98da6e5bbbc5970a81dca063f00c81b09d444c4341c9613d0f3f7851abb156cb6739a501506af6998436c3b9c6f29924ce57eaaef8e9e8b1b10087ae544ea93498c65afeaf9509667beb82df3516b3d44d414281f416174e503d59985a76b1f9042039069216d0ff9488b83cf297c9d39952e0a728918b787102a667a5894e06fbdfc6f96de92f006b998e5c0971832582464c89c46e74879032bff9c45179dd14a11d20da7214fde6227eccccd1bd3d9039ae8016d7b95a310d40063bae8622eb5ee2df258deb0219ffc7cc2f378fbb8b5f7eb0d62846a5d03dbfe0d5976151672591a4443a68f57e45a6350bfccb487e54e0edab369ec2f202401f2a689eae98da6e5bbbc5970a81dca063f00c81b09d444c4341c9613d0f22fcff711ca6bb32171257895548f0d889e96121e743e2acc701e0bb637c5d8c1709b395ecdd7145b01f3db15cfa8cf1b8327eec8beea5431732cb0848e630a2175d00b7496acbb3cad3ade4d111c09ca445547256472b19d767238b1261166d28dc7e252513eebac458628145af069a4448e5e8d986d3278bc8f7f87848681133344d73b017b132f8d56944460562a818030f10c6e7f3f5ab73756535f51485187f19f3795326291a6b847dcde48b5b0a81e564babc6fc94b1522922479628125aaf1e2c9010a440122aa407ebc526668c09d23dd234ac591af55df4f50776a1a5ac1cb8c0d0b01ce0d2d21f211fccbb35570dab98620e4561093bf72d276bd18016098aa02665e1acfd881bf89573a1e3d6325e54235c9d8ace9a6067e91ef2dbe6d83ddfab2bb8ed281dd777263c51dec4d6493a42f57b175e1d9c275616937fc6e8d7aefd53437c728d31a72535ecbdb4265dd2dcf74daeef15a4150a68f137d79fd3ffc47b94c4db488e2b6d36d906210b07df58f245196bc068e7451fb05a5ffd799ee791a1e19fa91d9a54e8af417e367cbc1eb54fac42ca68a228c090019ce44ee0e9fff8b885fcd5d566c7425cb3426a3d780b0f6316dec3ed1674f17e79253bbf3c65e8f4778b46232eac5f8722eff416ab518e27b7bb9c7ad2aa128186dac440c39a170b8874b9dcd153a29d469fcc7e24402b6b1b5333852d561127c8da17b68fdc05c09fac1778efd85eb3d0fbd36e58e72ac1c731dab7251ee18c1728cc8408acf39ce6e5701e09cefd32585e7f9bde68ce47d3102919d70152f561be1a424a374896fbea96646dd18446caf39d768c13c57a3bbc8302ff38e020e08dc7df3bc05b7b099524aad916d752bef3772df07704def43312ae2824f225378b985f2abee66514f27d19959cb8a256b977ac12ffbbbf75edd024f72572ef23cd8a03d12a3cebc7c9b57e58afa805b90accc78527e3ed945ca67e6d181000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012255453d660e215d7741e799ee89b3094415d1cb15bfff59c1bf5f2a050ad0793d3d957d6f2434f344e28c6cd7e90f576ab8eed1e54c7cba099b98dcb63b8a4220bbf28d33ca4330d6af81e6bddbb921e979154a083e2e917de962fba6975b052e6b7df99736cde723d2a536f7c85db07a85a21d3bb5dd0937bf767ec006dbc71ddc79f879345308c5c6ca4659ef04327cc38a728cca665c500d0eb55c51523731695d18b43730b9b40c4cd0c25b7a54d198c5577208d0279eb1f13bd2f22c5f17985cb47b597950e59c6867b35d9c4a0545c2048530f5f1b0c8dea720c5ba4106f9f3ec2f68dc71dd4c8efbd862907ece043acfd1e53b936508ef172ba9b7d5106b3aa194f6400add150de83221de3ce7505644aa29f536c43118f128db6bfb2a462b4ac3f86439a791e420279234373cc4af812b4f6080eeeb9f121dd1025a04ad9d59e3f054105ae2326d6aeea595ae1a781c179964efdb1c748528a638bb366e1ff3a615a0292d03433897f1bc896610327431f4acfdc15823555f8748131e9b3d3894ba9b200c9bcd9067384d60f5449ab54913e582e06974c5bcf1e435310f79540c8a549d755a4ab1d27af86b2ad34adf21938aab4dc93307eb3d833110c01425031dae4c5ac1ce78336e5d4ee61ab469d97c7d462a0b3bd1a1927c620e8512002573b5744fd037942ac645b18885dc1fb77538f3713b64aec49a317d386c1d0d15b416862a7c91d954266a503c7affc23adb161dcff25ce2ce41cc1f19b759a368db68ca7e2e9fa20730d916db8a995f53826459ebd932f8a8062a352d30c4b65ccaff430a6ae8691b1502ed1df45381b89288e2a79f83e093ee643012cf3b49a33500bcf5951796e4eafd130452457a50ba7038f18dad0c6c119bd121f3d78fcff6fc4f34168a0d87690ea12ef1d6947ef5c11a7a96009be3a7f4ed1e0c2870300903b0cbe975f27896f15ef354c2678a5738011e9730511c580b1429c335cf0fd2ed8c0470b243a50d4925a62bfeee6832d34d3293a1317247c89f163cca30f02d1273fb8f4dbc5af2b6da7c1a9a0da11a25ce66998fbb8db8376210d00d0b4f1ea3bc16337b5239426dbbd8082fb3ed17352f315a93303b66eb182f2ff2f4b0e15c43e9cc84adc6bd92444a3e69481c35c3ec67d29dbcc49914e92d30c4b65ccaff430a6ae8691b1502ed1df45381b89288e2a79f83e093ee643012cf3b49a33500bcf5951796e4eafd130452457a50ba7038f18dad0c6c119bd121f3d78fcff6fc4f34168a0d87690ea12ef1d6947ef5c11a7a96009be3a7f4ed1e0c2870300903b0cbe975f27896f15ef354c2678a5738011e9730511c580b1429c335cf0fd2ed8c0470b243a50d4925a62bfeee6832d34d3293a1317247c89f163cca30f02d1273fb8f4dbc5af2b6da7c1a9a0da11a25ce66998fbb8db8376210d00d0b4f1ea3bc16337b5239426dbbd8082fb3ed17352f315a93303b66eb182f2ff2f4b0e15c43e9cc84adc6bd92444a3e69481c35c3ec67d29dbcc49914e93c5f354a6809f5d8fc0d754f10b0845dec5a231524772141e6eba5461ed414fa0552acfb4136a8687c086867198f336159a70e0de3347500c25c57abf0d8fec11e33c15bb7c48e9229bac840ac06e645d5d917c31e7bc20a0d2539cb4b8d780c018b32a08bd577cb0759e12c12649b35b1950d0243bdc98db464389292a9847109ba3ec16ce4e3b577c673d5f779617b91117c21acc708f2cb129044f137bc6730be7cf60e14728754091d3ce47d168eba3688ee70a16bc363f93b55af74c3ab140abd0d572caa3449846edca7dab68abf06b7538daa95c4ed7c7ffad844ffb50e59ceb397bebcaec96b9b376943e0716b5b2081089021d634130bdc897d5c4c2e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd630724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f63f7f30e3a522dc6fedabd456e1e59d3a23b81f83c1fce0491f79071ad8c30f1e1b3a96d7923c736fad0f134f3ba55954c26859c3027f01f0e736830ee9b27479256d0959e0317b94da37c2704348955c8259f71fcfa70eeb3e4982c8959e72fd3922206432f3dfcc7c9db66cd40c3169170a7debe25aba8d226ca0ae7c7d7cd034fac432e92a2b42e05aca56726b8cff6ba0fac7a6f2a5b1456c948b9eec1f080b053bcd16d5d4bd1fa535a98d947300b6a59e34625a536a53c09c616113e0fa1a2860d6799e7e8128c54e3756812bb83112475cde65eb68ed4524696648294d1acbeae826ae756b4fd92588190031879cd596490575d27d14629329ff7625c92e82e168b10984ebf3882af7c607017785483bca2939819d44e632e3b8ebf51c127157567c1b756d037771244847f987f11dd52364c7ce7d5742716e2eb606f112c3e655ddab7de8cb099b20822eca36512856454cbbb8b49966b76d6cb4d6c42f8b04a641f5bd9684e6c27e27603f178a74b98f35b6fd0218a9ee67420a6c9f000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012a138378678b9a9fa9f822caed56fceefea86209bd4021ba6bee573e3c901bb228c918ff0fa3a0c67bfb6b09e1e1955a75796a8302704342f297c61e7e1081c60b0adf181b14b623e53afdb2e3357fe89c04dcdecf9fd23fd88b5b2feee205421008e1c85bb82a2aa5cfc8c2c77c2d0e733746a9eec52b5a166f135d45bb56873c79fa398a7d17c021da2b08383b73cd11903f938bb3c1134144954dcff7a72d30446bfe51ae3da68c318458b05a568a5921c81748717c67b4dfa78c93d4ed823ac15e2ef54462aa2e11c88d098d49e62eb0c21fda51951f034a03ae61c24ee709a67d69275419ca93bedee89d544532aa80ac53ccbfe40f3fce4d88181c4492214e3a4e3e248494d38c08f1d5f7eba0c97998462ab93c1c6739d4e713a7bfcd2e3e162ffd97be3811337cae82bd1f822cc386b0dbe9975197b39c8f083b9a5e22b9de9a05cedd8225130d0caf51ab986662849eda2a51d47a9b045a9b1ad645120e7452eeccc843918d303bf6eea2d60b26712452de0050a4a46f5efc3a95ba298237ad97a925b7fb5f8fc518872edcc9ef6f7452d907d96b1f70a69e0e84a626287edf099bca058696887d212c16ef5628762017ce6854c31337270a20e2c03eaab85ccf078c24d4d49fd75524349b4a32bc61d43aa8f78a08534a1e7cafdf106d64d6e051bd4aa75782d3e051ec2d55a9fa53455bd1f4af3ebd2de24c32e1129415db32addd146daabee6f5ee6b77961e9789ad6a9d253cff105823ab8c7209b727b072fd9d39077a488d58ab0e7b60f7a3532ee5474d70e8e695a47a48f42994104ae8e0b8c6b498ef4a340e1f5dca7130cbfc365dfcbac8513f99314e91166befb5171f47394b6710b5cbf1e0a257d568300d169b1ede64dfad66ceb1700fe451768c639be186fcac7304469cd48d622907d128ea9cda620376fdf688d2301bae89739c641e7903538cfbb9632b94e46ff438240e7ebecb2d760209772f0f759750bdf20b67a2ef5e3f15611026a0a4342b0c7f9bf4aabce065f5d0ac19308a68af420df4985d10a1c0ea9eefd981a264d0fccd5d26ee7050870a2f53e80d4bf493b5ba39062eacd73b6ae550c100ee6bdb353112abbc833110cd135c7c32b40b6c4a45c6f9d15328c4951aaf3f21582d20d41be66fdca9ffdc32eca3852994104ae8e0b8c6b498ef4a340e1f5dca7130cbfc365dfcbac8513f99314e91166befb5171f47394b6710b5cbf1e0a257d568300d169b1ede64dfad66ceb1700fe451768c639be186fcac7304469cd48d622907d128ea9cda620376fdf688d2301bae89739c641e7903538cfbb9632b94e46ff438240e7ebecb2d760209772f0f759750bdf20b67a2ef5e3f15611026a0a4342b0c7f9bf4aabce065f5d0ac19308a68af420df4985d10a1c0ea9eefd981a264d0fccd5d26ee7050870a2f53e80d4bf493b5ba39062eacd73b6ae550c100ee6bdb353112abbc833110cd135c7c32b40b6c4a45c6f9d15328c4951aaf3f21582d20d41be66fdca9ffdc32eca3853a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f21621663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac509ae342a78dbce2f652ce83bc8df13cae92ffd4acd96c384d84b5b62829aa4c632e0e89af62d4b5e0a44b1fdae3b06376c9123be386de90ef339f6846a620c8503c88a181de5af86bd618c7ca6d2d1c6c23247c7fb1d7c35badde3a77e53e275374baf5ec512737c4b30713f1f990aee557a2b2289954c4678ebb40fec4e4b6d34dc26445dfc3d86f0c6ad853b8e90dc59275b991680e24ef59731a1d97c84bd325f6801ed604899667b4ebb69d9690e57da2a8bdf801b1adb26780d848343d022e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d570ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b2a2adbcd6a52d4ca8f75b25d259380a1098272a199bd1f2a1d40b13cab90e275145a40e4099c34ab09aab12529be4211daaf783bee3df5d9e430c580d2149a243c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db36bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b92c26ac95e8a94a86880b3000e6c5332ea933623775e674cff656eb1e973ac4a013d9536a1756b57977f4cfff193accd1791336c49366844ba2d645ce68c53b623964dcfc56c5aa7cffcebb8cd19e578dadf06b424364b3d74f499983307f128c397f861bf30d14bc54bd10d550d6206d46fe59f94c85e2fdf4358f440c824b1a0bb136dc421e7dc750855cf951fde0c09436e335d09bda551392f0d290e5af2935bd596c9b2ae909556bf04b32a63034bc8cd39fea8c460bed7ccef9520576252cf159565af759e9b439f0b428958e5879faccecb3d8b95c4d92fab4a1cd9cf530a19cdda9ef82a7008969622aa4f09a04654cafaafafa1fa28d11065ed6d113000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011e0743e56e71a36aff9f28654eeb8030d520a300414a7b5fa227d474e0035dab1432ca149237c258feaac194541ef39aa19ca3e5e875017a66b834c6c5caedb90a71eab065b9c1d5ddcef2bd1b0aa64576356dd16fefebd1e8a2567f69ba32b821a8e2251b1a94b1a52648f38a318650e5edfce507e0b49f9e09e66ec3cbe5a010d9c7fcf8baad946f7fff1dd1fff3465dcde12b5fdc16f9d6c6345bc9221cb9280ae3b05b1a35ff1de32fa833df4046bac51003fa860f7330638401512a96292837168504f3f1bd8ae89abfe989f2971f282688279284759f0a0411bea357ee130239b8f7fee47132573ec646024e73854d16a009287d79962010f52b24637209ee9ba9ef19816a6cb05f56974a6b200627c767b118f8764281d9427ce0cafb3098508783009f3ad14f288d95a6e2d5112cfc26044296f9587ba6ce5b328ff0284485e6f59286f30371e61fc3fe34f835fd3bcd65af2e168acdfd48472cf4d51904997016071d3ef5667a80c85cc7cc7fcadb4f3dc500dc9a2b16a8954ad3c81ae42a0190805844c482752e08f2673b468f52bdb3276a40a08d5f5ac5abe80034c68c8b10c49778bd73a31430c0de90d98892d6b78005ed8da54872e2837f661fdc5a1406be3b0a54a901eec489d4689df1ecabc7c114505106741f070a716539f8a32ea04060f7a60d7a5141140d7e384032298f71b53946365b6d1e7c384c2be1d91cc2806821444c578a9e45c73eaef4afeef24cd672b1466f7e98de85b51e55758d9bf57e390210647f4d206b1cade564ab62c3dba85fbd5b5eb82aa878142fbfa54ba90f415cce321fb844d3edc8fccd375fc0fbbaf04d1f5e9689a1872bd0405ab456f0bea331cde047bb2c125949cbc4a98bfd60a8e0118e69765e7a24eebe3a7a4d4c46d006fa9e995823a4caa96918d577f18b18546bebf0b027a21b1141c585b2b3b92ff9056166a7dc5b579d2fe333d5079080d8c5010f4fd85f38a9b72463827d621022e518feb8b237b0c1db8418bdc580474bb9c1b370c628075648db9c7d829defdd1ae701474dc87184bd77f08f339b51e1772b4c8f39d91b5093b5f18c72ea50ae797cf99b7b15eaaee5a45680f712ffc5dd148133dec424af6c4a0e738d15af518683066484ea3797b357b2cc0208996753d87ecc213d142fbfa54ba90f415cce321fb844d3edc8fccd375fc0fbbaf04d1f5e9689a1872bd0405ab456f0bea331cde047bb2c125949cbc4a98bfd60a8e0118e69765e7a24eebe3a7a4d4c46d006fa9e995823a4caa96918d577f18b18546bebf0b027a21b1141c585b2b3b92ff9056166a7dc5b579d2fe333d5079080d8c5010f4fd85f38a9b72463827d621022e518feb8b237b0c1db8418bdc580474bb9c1b370c628075648db9c7d829defdd1ae701474dc87184bd77f08f339b51e1772b4c8f39d91b5093b5f18c72ea50ae797cf99b7b15eaaee5a45680f712ffc5dd148133dec424af6c4a0e738d15af518683066484ea3797b357b2cc0208996753d87ecc213d2ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec08283f8b0e460d52c58913fad78e1fc4cce8aa7552f29062c225dd92e0b0220d0905d69e666e3b2a0d6d173f142cef7678532cc741da81bb8790348d2c293b4d248677f56dd7dd830c3d4eba7dc5a9491cd36a974b3715b2c93e973495bd87023f12e6d50c19d3afe7194b499f780b8254280277f27d10a690611b5074a3acfb11f76b80533490007d130518a294847325d3679c416406b0948885d8d5135f3c2cc2720a52f1c8b3e645a5a14ab153afd19f76d4391f99ebffdf81ecf51e775d36bc066bad4f192cbdf19e4a06169f22f64d1f342a06c9e1b7b20cb69f53d57911d68caa2862c78883eaee78094d9fb69b4c1aed67ae908a1a76c75ec48901252dcc61308ccdd0f07246c9274194c18a8befc9595e813ea573fa5d8eabafe912249ee770786f97c5ae19a5a2efede4059fcfcc794a65d5959bef42d651d7ed920907c64532b347c431682ff5de12a6dabb7611c175de7b7450d0d6b0e16f72d53f8accd0a2fe98f110745ccc315197fed62328601bd6def78157fd64826d63ca3731399b0a50803bad7d417dd4c5072442708fd0177ce405cf87403f1ce671b108cec664f5af7fc45282be822b3af8dbdfd6092bf1d01515c9a5f0ade3198e511a9f5752226a546c94c74f74504497574c58734b471215c882ca0664875b0210179f18f4efb54da6f69117ab24cb085fe3e17331c405e0e6366678c7e80231513c6faa9f6dd6652a222e877eb1b1dde117cb58f0ae22b84f44b0b00ed111f57c3e4b2492adf430a0e8a7a7195af426787038a07bb7fcfcc341310f29e13c28a51b8922ca8d5b7349006921bd3fa0c8999805bbbb209eaf81c6394ccfe6ced9520ef5d56097aacb5c3b09a0db63ef313f4a044b16b67dec81e6c650a89abf1ac70000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000113bd2d46074d2c4ef0b7388c8e89bd3b1513427629edcea4f56ef30c2b01067d3d95323c72ba34a7f1516223cf2cbf9109f1d9882d13d1c8d182552b65cdd17738d3365977db9eeb2e94903468cf63c31ea40bd0b89e49a68d8d9b2239da0279336a4cce4e803d48513c237d48fc61b41162f44e0e078d72209c1cdbde5a04251c2b55516a279760ee67d8de921bcb7c068d1a6a95a9c9afda3ca3a0f94c862b00c7ccc1c4c22b3cdfaa83e927074367f44a9859ac3415997cfbcb572847bec4030a47d9754c4d54970abe590dad94a813a623494b7b71e275a1a7239efefd4c33e0d098020d5454b3edca3830b326b110408c6f39347b059892b027a93771e3352d51f9d8788577206b2db2467dda613679306b3a6b4889d1c6591f170d488414b4cc37ebd8f1e886f6b6ca23d96bc348707f917fe703606fba0b6341aeec97336c222f33bd6b9f84a2035f192a293dd63b30bd584482b65aee8b69d373d4e6001c45ea3de1326c146f30ccd93c6e707908733e8170d5279b03ee768a2214d513444133402089027bec05e81b98217b123b9dda83bdb591598cc3a75daefd7e3c667559612466bb060a125a1e1b24510ddc47b9e6e9ba9cd4a5e4264a8069e8394c36e878ceb56350cf5363179a4214ddef89720697b57ac1d87ad06fb278e617664c998bd5235fe71ebfb64def298a47abfcfbe4a54edd55ce62bf4d86d2181d7a349cc00528ceed5cbcd0d70d8d7ae1f809d31fcd4f3ebb1f5caf8e2aa6110f6112a588513e482de5872e938c5f3cd186d3d747baa9d8edd41910ee5d99b4365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575109a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b00fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d430f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22334bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575109a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b00fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d430f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22334bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e196338b4638e14cfd60159eba3a4b37353ad4a5d4d9e176d1f2d58b8452241f02622cbee39cde689d2d8a050b771f7a2c3b1ba52e62b09b30c8e93c520f6ada108e7ffa7a6007171ca846ab5c221a555d35b9aacf9f95610076d0f3575dc681c0440361a1ec224d7d8d5ea28a83a7d57f8b8b730acf476f957ec35112a3fa61626bbfed82d1828baee8720e0a208b1b44b74061ef724dd8e083522442f783e5d197c72c4ccb103b028475e963f041edf0457e1b288d586454f04237818425ece04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a3b6eeac5e4cb11c87a80550d4b74dfa3eb8d23386b65868e6be730962988072412334659429b892780000594c3d097f40db55bed1a591791fa10890d107b17801d6a5055453de0b1f5ee004b172161a4672b9d1ed3c3d60b5965531316d1491429830108cb5a02fb92b96cc16107c2713d5b965caf18aaee85332c9caa0d94d41b3d9840014b56d5e06008e175546d429279f5dbdfade3229583d32a9821679a24c267bffeb4a92a1f9ff71e8aab92bd8fcca320299f15f903a95dc267de986832dc9e0425440fd13b49e72087bbfd0944c40d96f6411202ccae4631e46097ad1d04c802c73bb5682da8ae046269d75e6d067a1ee1225b7c287c4b176cf2a6de2a058eedbea0901751c3cb699500e5c6a9232dbca0bbf3319c64a76754fd1b9410107710165bc0e1593682c1358f9dd773b9f523e8d4a9a061632ed053cc2be01fe51a21e994ffe1e00a4dd29d4ffedb384f01abea3acf52bf2ea331a1a8f0dd0d4599ce45d427e2d631ad7a1bd61fe7e487b02b5406a1dc6f2d36652d5e606a00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001128dfe18ca83ba51b71d807d3f39d29517c08d3d418123651e9b22f3394d42632baadf51c0967e82e22afe99af216599c49553ad3266faf11e98c33dbf9e89da1d044a1ae5ffd633fc55a978e1788b5ca21cbac0c02fc85d55b9a8a99f8b45490dc725a7df7ce225916abdab44aabd4af843573d6ecc65c70c2f958111c023d9389a767e9f39ce0e63246e2b4bfebede42cd2103003c05ac485c77c0e47443aa2d14c3db2d1d856d8a3369a812bf4af1aa5e00b0c9e81f869e5c7ccb2a0d9c4b158f38c7926451d4feb0d6c8965e39b074e54a82fe5e6e4bedfa441e64850ea83242c742ea77b559a654a1038fca6ab5e901bcb7f2a2962c6c8f1f48565445a32de77298419249ac825157b9714cd5a5719adc16a64ac75d69f8ea6726063f0b0e4b8f78e621c090866c82dcb40a0fbd9935f5d90968e9e6fe1d949ccf2fae730f35170bf7b1bcf30dbb02f2ae357e426937428db2652b1ba5cbb935811ce03c247d7fab66df23bb452507802b7a484d0c27e331576117a392e8977a39741d9d1a19e52e3ba71ceab3a59e5fb5387395b0114477ec4b1288513c8e4452e1057e3590d15e659dd2d2ce5079e2847ad2367006a11c7e5c5da5dcf61989554e61e8334803f84404b90ab676dfa456b284ed80587877bf072248690682481ade24b12a1047c055fb549955e70886683925272d662119c22c1135efff8899b67124e90e823a99584cfc1d14cd8b09d1e015502fb910fb5e9bd8f0bb04d689f19e973704410a6aa4538987ca1074bb7cd7c8fc4b693aad33f0284765747bca59c57a371ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c692150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f398196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f61ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c692150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f398196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f63335039be7eedfac2e3ac623e673589a8852baecd7723f5e37deadf71fb908e23fa261b1844f304c485490d5e999b2633afba4d7b5b76ec065c640ecb11d4f8912de871e518f6b896a160fd7b607ebe62cb7c5e1696b514fa8b5840bbba96c710d2178e1ae70947695e9f02849f81419e46b869c9b3b2b3e23e1146ac45693900440930f7560351b151572858db88b4c489a2f492f8897491262236693d3a6fc1ab1bc182a8f50046511b7ab409a1d69cb3ab17ebd01f77d737b60b7fe18ccc60276de9a6932a003245ef15aef58d798be95c6f3cac18ae207855e797110dad218e807a31e61baec745b3680a23a69b641364929583aeb16689e9bcadb56009c3ccafc6418112053d1c539dc198ca765b3a8d0cc38d47492143067a7a046f720305d9e4e7bb0cfb3b7ab6f2a16664d9d00ffe6e15a8f452fe648d4b20ee2b0793440930f7560351b151572858db88b4c624f22063682521dc544081853d3a6fd0ab1bc182a8f50046511b7ab409a1d69c2a90b3fbaaeb9368d30147cbe18ccc639ec7545c681b4ca67af2a046384bb7f8f82b129d1bc618951c62fd7249d8ab0333c256ccd403b3d21c17f01cc6e398325260683c1a75838a8b30c828a8c1cea098ed6f74ad0e516b003bada4d1e6de28e82ca48772d1c596b7d5b2515bada3736712908b52f1ae94ffc4525b2e1921d93c3ceb3921fdcc22dafd5c7ea4525cb1b8da1104295ba42e4c7df11238b2ba685bbadf6caeefd46ec6802ba43f32c470a9d2905c385fa6e80abdf643f5f069cd2d70fd883d5ae14267f9e45f180bad22e94cea0e2160822da091f0cd312cd35b7d9bf51af4b8ff33048fd8573b67a961f3bb0cd27bf0ef02d5acd7b01d1d563ca1925e5938b10ccae4668147c09af480916df5e2529a6702fb45803196dabe75127ee9fca694157de13742f99e36cb20d92625f97f8b1f9d99a2e94ca7f36640906d12ffc4ff22c2d048ed7375bd63a00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001273c5541df839c579932a2bcae67f86d156e7dde88bfe5824a3fb09c0e1450c426d09be32ec3b470410c2239d01d6b894da7cfb0e6814d22e7458b2eb347a92f10e4410771fd221feb3133b0fa8f20a4ca6d33dcd4947330beb47cfb5ee2fc32128100847e0bba2f75506ec83acf9a262015f1cdfc41b43222e219b0ce3a45690aeb2417abd0a8f753afef6c79a479d5a78ea8e1b676558c5e9574769527f00034eee1477c30db62d2630c91e031089edb7bf6891559c7dc4497e66ba85248fd3ee1b111d13679cdd1c34529c759b388245a8d614b56ec0a3fd1f87d26620a780bf1378353ab53fcaf53fb41eca35b648094f8a3f3cc1f715981817a14e6c717047936fe314cbfc4a7df0a263777cbd9b9302191a14a799dd19b44ae4e0c0fe23b8753d50b973129ed5601a4d639bddfe4fdc2e6401c1244da8a748e3ae110dc37e5c8d6d84ab42b987c6c3b64e89fc659d0bad530d71102f4b7e15f96b9fd5f1b6328c24f0fb08fce6f98559838a0901d6a5f2f8afeaca839cd9a5381ad745a2373042f3df45c9deed6b72d72100b8f38c0dc0f684e8124f860e1436e59d0f92c37b25d6350931f931f6114c7a33a3ce75709850258ef0935d1c68a39d5966d2d14f860a4008590ea30bb6767286517d2266c368c7f80262a2b99efc012ff2226bf7ae88ee570e821cdb304297b238708918decf47ede80a92a4a6abf97c704183a12d869d4fd9cea41aa27f8c40661838115a2ce097dfd7217ceefcd82846a2bab31dba34cba188370d8ae51c6bffcbbeffe0cb620fbb169f28add96dcdd82259ebd15452653edce544ddc801f91dea739caf30047210f7dd049638c0e39e81a6142eabad9ac1231abb2237fe06e217b0cce090905d80c1b5ce78973f1c6193c19b16a59bfa3a507a5854e809dd958ff93c4c6eec9b31642b70d17bc47218603e64e95a6405c5af85a7ab17f6226a722b2d4351a834605567623d543b8de7b2c807713c0be3239263b9a8883153ebc74c873f284bc9b00e8de7dc2ad63a79a137f88ec3f41cdc6d9c465777ceac143ad7e250984905e1ab04eb32a529c58671e825362c3b6fb1dbf2a04aa8f6a39ade11678c87bc81bb1c0d0e20662f245ff217dac9d3c4904e240d5fb557095c652413020338d84dd69d85c4ee69d0dba02259ebd15452653edce544ddc801f91dea739caf30047210f7dd049638c0e39e81a6142eabad9ac1231abb2237fe06e217b0cce090905d80c1b5ce78973f1c6193c19b16a59bfa3a507a5854e809dd958ff93c4c6eec9b31642b70d17bc47218603e64e95a6405c5af85a7ab17f6226a722b2d4351a834605567623d543b8de7b2c807713c0be3239263b9a8883153ebc74c873f284bc9b00e8de7dc2ad63a79a137f88ec3f41cdc6d9c465777ceac143ad7e250984905e1ab04eb32a529c58671e825362c3b6fb1dbf2a04aa8f6a39ade11678c87bc81bb1c0d0e20662f245ff217dac9d3c4904e240d5fb557095c652413020338d84dd69d85c4ee69d0dba020af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb1dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1971e92d45cb316f06ce27fb80aeda7c705ff0948e9e26ecbe36515cab2c89ff7eb3fcfcb669a3a5f19c6d5e6ed13c1ba68e6dbb93e9d0b60303151556f28f6178b0c139b14e2f029cc073e76e7a64edf1a6f3ad871102218f612740857a33733531d95c8e017fa1e6895534fc3485c246a6b691d17e40c111566ee81de19a3c1b20a334d4c31960a61c9844aa2a55418924f410c8ce6bb75206c10b6ccadee8d3b1c2e4ebab1756f0f23f502c605b001645fb9918dbd52634ba85793651b5f2f2c0b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4822d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a177dbdeef57b7f879538de199d9bc38d4c3f281ea768a2d9f8f49153ee17916333c90642b81d79265e0349994fa5be88ed0cfd39dfe54d551c613a99dd2d542f16757cbde9eb9f5f59c6bb6da6ff3d7d9e8cd24ddc94847971d4facf87ee4a1c225eb35e5e6699b01693ff2025239088d5968f6bb9195fd4230a1040425b06e128dcdb1edebf50d9ee626e2e76cd0e1949a36bee01c32cc869536dfdd1bccda3172324e12140af26119d91d18932f1e6d8a32d0e0789cc532fd9c2ef2e43325f19f34934d5acb7b094cdc4a1b47488f34b4db22fc0f71af71046928bd9865ab11fd93ed2275ff6e2f2793ec11a905dcde2ce60ced0d5d03ec84b2523e43da5cf228c8b119057e8dd4ba65c5fd492162e49aece836d8b6cdfe009a4abab82359a0ce0fdf185b0ad531f95a87db902249037e2f030c9b75615dd4beda73663bf65009b9410cb6b15e9fe1ff40c2652e425db6d9b2780de8f730ca42e8cd06baca72cb76783dec14e807bc01fc49c705097911dc230859cb4639a6a3769a3a9e760000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011bc1c7dc0930444ba048114eecf4367011e6bcd9b6384e16ca7466019e1849a52eadafb321bf21bfb42a1fa82f669b9389efa6bbe70e2b801f25418505e5d52501e1aaf5339c981f6cde89bfcd2a38ac6e32b274b75dc71a61ea4b590ae40dd5127e2e8a7f92dbd4c8539f52fa1ea2fb2f0fa45984936b089ef4aa431714704b3b1a9818041c0b3391416e8e2f569a22be4bb8bcdc250b6a443f70a9b0277b590f76a91cb27a9e13a51a7b9afcd3be3aa9e23cc76ae8bfbb543551c1162ea5401332ac15911de103305e7b4c99572289ad64528bba90a1a40548ddf7c9aaf14736094eef685f8418afa9ed45d67b2402a4ee7b15a9b377989ec9c9d80eb1b9c72ee168c2801bd86ca2fe0140f70e0cdae234cb822e746397301fc6f769a5383f03939286d00500cec49d7f276fb33e24dddcf1a7ab2fc55eed7d0bc00b77b9cd0d151b8874088d2d94bd96ec3914aed6e5fda566fbb92e0937d7d23172c78e57108451c33fecd1bea4d55637256b53f99b5eba0db86dcaac22845701e36c2e03335fa90c2f1d566d6f886d9c9f1862d1670c163d88a7f9dc8c4c2bd14f40ea7b1c4b0d8072279950126daaa59a9ae2fab90bcf56e1ff7651a1e67bfc58ee7ceb306e4f70b3e118434307bdc8d7f0fc43303e97b65cf28453bdfeea74f15a08243034488f8a0bad1e4db438093e3b9960c9556eb39815f80b6be56e0d5a4e5bca3cb09cdb311f9c8d73314834d9a9b23bbddeef4069a308b62768a2dc2165060402dab7a5deb0d8257412ba0f5e3792ff83551d85a0754a9fced076b279c7f00f30b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b913383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d0c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d4019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d12407dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea51382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b030b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b913383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d0c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d4019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d12407dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea51382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b02260f666d094d1a6403be2dc098fb8f586eb4ad8166745ba69d9a8268d67ce9511fa42639b21ecaf1ed4e983217b62a6709fcf49a5422b064a6309c8e2c55766374baf5ec512737c4b30713f1f990aee557a2b2289954c4678ebb40fec4e4b6d03c88a181de5af86bd618c7ca6d2d1c6c23247c7fb1d7c35badde3a77e53e2751d0e91854489c12ebe7a3fe60a253723a77be6156df5a2af0472425de5c64eb8266251b54c6d2543d21425e07ec0aeda47502ad99e9fa2f46262cd952d3d00001b1353dbdcbacf05d7f8445e7cd1ac7ebae5ae3a8fe2a96f0215074076abd6803db11dddd7e8aad9d0c5bf60ddc65996faec969496034479f8b4e1d72b5460f73a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f21621663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac5056cb4030f4d5c2e8923e36a4a17988b6c366788df71a22da6be18e7fead30e202eff5c09eb16740fed884a0786270bd6ae9367ba870daf98c4d5f53a9b3eff526535a3a6a58badd7493abe4d6d73c1c6827bbfd729d60364f9505a38649e6012a3d338446f863ca23c98a0037b1cb92ef7481ea68ed51df93ec437c9ee6c6270fef7a203ab70c8cc8bef1e3b8603d5af1c670d79d1692a25e7f07f550285b3c301085dfc548f37337410e1c479fc2a5308028246c3666793aae28f7afd7a4c615c2fa3e41c489be4b82f6e4b3a7ce9cd1f313bf76ee9b065bf8679620a7f9510b3ebf5fb6480b30894371dba3a5fdbdd1b1b0fc6efc5b410a4aa2017f7ce63f25bc48f8eee95bee234994c721d6a872a35dbd73a770be9d5ced0c0702aa2e9100ceec7a2d04b43381f9bb53c95bc2ea0549de63bc0de1e33beed1f50f610ebf11856441a508a00582af0b0fd3035a2973748c851d8c298709e55cb2b32d70ce37dd43dc8a7697b1af2f9152ecdd753738a0c0deb79359e5b4c03d65a4cf912a0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000118a1d774bbadc7bf8d9f0e165d163aed99726cb1358331bc8815881d59b176b93fbde4d33f577cdc0b16ba95f3434a5912cca018368a8ec9b54797370ef40d513c813ed19ec5db98a48ea266eb5eb84d27dc5eb39b16f4c8752dbf5f3d1ca0f635ba15d9b8930bb88605a7e8a94cace3921b896bac7695770905ca81b6e25348142e0778b0ade784711ec2011b87996ebcbfb0ec52ff783cb4aa582520e23f7f2970f4e0780c49aed7e227b709a28f0168d2bcf59be5e60d7f8cb6522600b2ac34469ba642ca928249d3b20b0fe6b066ce1d2157a1dca03584243aacc862c667045570f698505c3e91f6cfb88b91125b51f0a61827d0a2eb031065c5ea231ce133a6e1c0b9e66da1270f563c654d65a057b0da2174829fc5257f7c433d05a7271f2aed6cd8f21cbc3307fd8132a7b6747bf206d51ed211520a99e84aed5de61b24db2c65d195325bb5cf468e366d298bbb60a1cf92b6918be9af697ce7584b2e0bcea397edd04341d3f4016a69b6dee45bc16d7c2fad358db5481ec3b60e88a01309e232d549a3b01d6819ac09fe6d3de6a6cdee1d09515b3daf4d2361bdfae53ca0d459cbfb4c0d648dfe962fb4d88e397117a64d9e1ed2f0835aaa46716c812c7d9b011a7bbb6df1305efce1da6300288de82c9f63fa627bf6b0ca8bdaca941184a8badf6da9f43fe202682ad25c851a03fec9e33fc8b7c714440e51a6b9d22f726e00485085aafca1e17ae2026351e8b7e4dbc96498204880fbd895c7330330ca71e693307609dd3239aea0796102e3e72e78af35e0c408ef573a638f44d32fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c1152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b529622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d0279169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd880eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a31153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a72fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c1152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b529622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d0279169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd880eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a31153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a73319a2a83a6dd65b246c9f7d539b67b09c3b0afe9bcc31f641e4746e726732ac352254da5cad22b2bb31a255d43899f5be174c33d783688ffa31918b2d0e604e012515c31c4d62deb68da72f0eaef3954e35414c7d634f15b8a251c3e93c47a806cb934fc247fa8d561ee4874ddb15c44061367e9c9857ba790f75d47e485c6631e58121b4e86da8dee5935258eb584177732ffc36cb6ca749c9dad8b2f3761711b3b2cdd522bbab58a1c1e190509f255ef725a55de7262c784576be6a96be272267e92a09901923b82bcf1dc9b164a7ad75052728e5f70769a126c426b1590501964ace5f996e004463cc51a0e0974be4467bf3704d77d22853a8ba1554a8c226c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa1101a49e89dccf3c20d53292a3e6513a4fca4c6dc28c40702523309daab5966042b8e40f40da8d8261d87a0534e4cda684b2f16fa51f2e5013e2a80240aac2a2d0bc14794a944c6c62505b9539db5a4ba37d64cb0f01d780f9ea66abaa45c85ae041217d5e10ae2bfeeaf7922ddec504623ce1649953138d125ec298d54a9434e22aed3a81d0d635fb1c9c5d18c74834c4e756908cc5b4d28f7419c56d904f60e1d512c57e2f29ca04e363a2e738b7cb3d3d12ff33cf1abf2a1eb949626fb09f41dfbdfbfab900b06d703918742fee32becdcfa772262ee36132d747d639097a51d743cba4ef5c5c973f7e3f83310b6ab185f459309c48b788fd3c0818f13e4dd2ccff72041769e1ab5953cb5eb2a58f5b297dbd420f16b057d9adb419cf0520139e3e4d4c3e51db81cc112b334ae70ef09672755571cf841dd1148a80b0d0dd0289ff1919d70b54093801e384624a8e4b61f346fbff46972aaafdbb493b2f904170358528f9ea89495fe9ff3291e85f0b45094571b098213b335449e48cdb05c0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000137a392654eb5f578529fadcbe2a4c2dc079acb4b754500861a959dafba2d729c28b78825e8832beebd7280e2cd23b67c7e5f077abb011c6f0a799e56edfba14d14b3c03d8e8cb9d42e00e04020cba3da9412a10a7234cd60a4f5dd4ce755d9f82c19eb440a8bb008d92f4ab43276fa74882bfa3e8e2223ac8d045f79e7c710dc14907fe178938da0c1b5e210d8c3884fe7c8b2d9239657ad2ac91f82fac2601035c36373bfbd29965ecb1d0228294a727513394713cf6a35cc3954c798c012a931f6cbf07686631245d7fdbb35ba33900b199cc9533a51deed2e843f764ce1b2119d0e1a69327e8ce78cb6fa2eed9d2c5a8d4f77c5a13c350ddb4170502c3ca3261e8f5cb4e8b064e054624cf949209b642013d600005127fd9665386b2d6579057ea1cecb6655061848284c59faf6d65096b828d5ea437958d4860d371c599629931425738248c9233a52e6971f90f1549b35af673cd84f9abdf1a9062bf87228f09846e6fb415c35a7f4331cfd5115134dfc5c8ccb3614315a7223fbdbbffa1647bfc9ee9f2da72863bf39910e675b0206a3e5f110f04d72712370a5a020d23962f6c2b2a5c21659925908a8a4de711e1141ae79967fe0bbc1845d028f46941a5be043504bd70e4fd13d76dd4c1e9b99c961c2ba5bfa4bb061243a3349bef62ccd94ce600e847e0bcb21e96ec0ef85be79d202f62269bae6edbb8fc0342c8b0098678d8dc0af9d7b2fde6742b8a43146f90d45feb29d550909e196d7f4e5ac25968f23a5e94b9ba3c2bc2e43ad27f06c5b646f0660186aa270e002450d6d0f0fab3b030e399a910420f77a6d3e1cbec6da7633b99b0a852ac771612a40b90f3054c4fcf1c6656efbdf088592c1e3415b6c22c84fb1ee966e65bf8bd5bf46f20e58270f472004d514a4d56422368fb9bffdb60696ba3b7e3cb805f8d3439d4a31a7d8f0b8dffb2aeb5b2a9bddc970466248e2f57292bd9d5c752af42cbc62b707b8c34c63a0182967382af4ab10cea09dadf524e856305b966aecef2052127138473cb39c5fe7d698c7d50b54ef315f8498a3d720f6c8c002c243fddfaded90269bd07df22078cf0418d6c7575409231465c9b889aef1c9f016a0aba19a5c3519642f820ddf8730fbe72938a8abf6dd0de0cf437f9e0751a91690415e65a3cc0fab3b030e399a910420f77a6d3e1cbec6da7633b99b0a852ac771612a40b90f3054c4fcf1c6656efbdf088592c1e3415b6c22c84fb1ee966e65bf8bd5bf46f20e58270f472004d514a4d56422368fb9bffdb60696ba3b7e3cb805f8d3439d4a31a7d8f0b8dffb2aeb5b2a9bddc970466248e2f57292bd9d5c752af42cbc62b707b8c34c63a0182967382af4ab10cea09dadf524e856305b966aecef2052127138473cb39c5fe7d698c7d50b54ef315f8498a3d720f6c8c002c243fddfaded90269bd07df22078cf0418d6c7575409231465c9b889aef1c9f016a0aba19a5c3519642f820ddf8730fbe72938a8abf6dd0de0cf437f9e0751a91690415e65a3cc1aebe5602a8f012b625ab7294163b3f936535be6d1710961e568ba8e309576381b3b6514a5e576d3bf2166ce9c7de55051cce16420aa35ea7603aa0f35bf89c43f12e6d50c19d3afe7194b499f780b8254280277f27d10a690611b5074a3acfb248677f56dd7dd830c3d4eba7dc5a9491cd36a974b3715b2c93e973495bd8702258c009b6c55c415c7005a595075d8836dee62fd6135be0aa4bb5872dd3440980945e93b1ef5f36d66097a6cc3cf18416f1c5ec2134a28f2aabbc65a15f262101c9a6bb97f8f6f3f575a6c7fc20e4386c06e282861ac391597c30727344a1ca924abb6bbda4a380c454ce8c650abe4568cac2b5f366a1885062f52ed01840cc12ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec3836c24108ce66ce68404d1ca775365e938b88362d7b8c5dab04017d645d2b471301c8cb088b9f81d172eda54f92059b1d10fe721bea267d7d2dcca484684367260133cac9572b24b68bfd8d1f244084ba11d3994eabd82ebc908bfb5ac6dcd0003e22f5ec42aba934a14a76e5bc7166b3a64d009d6bad7e59eaefa93482ef3c2e91d739d2c3ff3fd46d719864a2c7f9e6418fc4a3103fc62c4b8d00095d7be5116e28c62d3c00c02b928e679b5d38063c050937663cb9556ce1a3ecf6a2841d1984cf160c6f1dde10f4aca42699b220ff6ada0742d766f37b74b02b7889bac42a0a1100612f180662e6479f055a7b5347338eb375ae8c455f4b47ef19edd7f71637c1c467bd91285f2ea15bd7887d5987d39f02a102294a862894bd881a1810229907a1f6704af57f5f6492a221aae432d0e4f672585f6714dc8e9b431c3e91376f0c8e0f6514af8b4d4995bfc17ba38e860e90a6fcce4f1b40277252aaed2e27c596073b8b3c49cdfbba3fd83124e41c46ca2a0270603f784facce53f7330b000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010821e65648a53500bf2ec40bba31e894ca58655a21ae76a4a6af8e08941d437c3caa790d9253109319ad09e5bd3fc7987a5a16e8ebd00c6da5786acd1b4909b92dc7b44459c559834a8dade81118b5303e39ce230ec64049f997129e3754fb4323b6fb6e3b09a50fb797c36ae008fa8ef35b8572fbaca67e94ff5bd4ad39eb2f02649caeb21703f6e4fc594383e6d3d1db938937627a4bad4b503a727e6edbba0266e0cab7bad5475f216f9614b3191e14d2c0f8bc6eaa342c43a7fb00a7383a185be793af9dfcced20ae8360a2169518c2bc1949da42c42c311387b66d23d0b1fc5ce8e2a5227569c62e0a9acc66de86ed5fedb0a5a58f566e20afa561028fb0b69f674aec68ab86c79b4cd2ce2d3b7e9a09080d34dd3da0db023182e6c8ac9055c9250c19bc8925a253f9ebb2a758dbf332e249e48a99b0cc72be4d59bd31d07dd054c59e538ba583e08e9c706624df4eb71b58b117222c3e9fe9989eab1890d6fa932128942557374f84207668cf8bf0da47ef59ef004d91d0501ac4d1d4733a948170556d9f6d04b01181b2c1c5474d1fd98a946597c71bc58ea7a484e481c016e759bee15c6b1ab172a1e872977ab45e7fbc16116b1bc764ee32de7191e2c0c198dfeef001c890f3b36cf445420e1062c7bf5f0b087330babcbc6a00e6f3b2a134aa8b96d3ba4eb3a270340372d5e02d9b55ac3573cecf2e13433eb80ac134eabd1e0baaf3c658584fa6efbdf0d0235e8d40b00a7bb6809c4f5deb64a9524cc7e10baaa9c6fa8e1cac401adfa45dab26a8c0c93d24b9073f2e07c1df121333cc7f239e90d1e250d652ea9f7cc12e697f5c2ca7e415f0989cd766d6487350cc3380dc616f2e1daf29ad1560833ed3baea3393eceb7bc8fa36376929b78cc002fe7bb218d4196b942f9e951d6fc5df7dd68ddcf43626ccafc3f9c22f6a4053fd01844de72be6946bd0616ae2903a22a69301e3a0996aece30f150dd095bfc00ef86a7a7c247f19e4ee18e9932edd5d7530c550c50ec1ff6ed3e0caed134193f107958583db80e61b11e7166cd122a4af38ca6fcfc0cfba23ff2e0512ecbe804ada14646cb67b8178a67c8fdfea52d349f3da93d949c9fd2a2363f6a16047d3b525eb9b9349847e875983702015ad2eda75b52cbb85c7bc68afaad95e9fb84333cc7f239e90d1e250d652ea9f7cc12e697f5c2ca7e415f0989cd766d6487350cc3380dc616f2e1daf29ad1560833ed3baea3393eceb7bc8fa36376929b78cc002fe7bb218d4196b942f9e951d6fc5df7dd68ddcf43626ccafc3f9c22f6a4053fd01844de72be6946bd0616ae2903a22a69301e3a0996aece30f150dd095bfc00ef86a7a7c247f19e4ee18e9932edd5d7530c550c50ec1ff6ed3e0caed134193f107958583db80e61b11e7166cd122a4af38ca6fcfc0cfba23ff2e0512ecbe804ada14646cb67b8178a67c8fdfea52d349f3da93d949c9fd2a2363f6a16047d3b525eb9b9349847e875983702015ad2eda75b52cbb85c7bc68afaad95e9fb8404c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a208231a5dff2845246ca0cf5e27115659713ebef7caa9effabbd28b13d9ef252125598985b4ae56415db9e2bb332c7ecbf1e5b2ee5b48d128e16c3f52244ff7e2622cbee39cde689d2d8a050b771f7a2c3b1ba52e62b09b30c8e93c520f6ada1196338b4638e14cfd60159eba3a4b37353ad4a5d4d9e176d1f2d58b8452241f034819967d4332e1af1d8e800d34bbb8e694c88b8f1d5feb0267be1d368a9293e0b45f4fb3203a579f75898884ba773de8b74c16da0c98fb3b4a53a4a4f9c399a0427665ed95b17a0576af512ebc575a225cca770747fc11a85e3405b33ad6bb002137e04dacf9afbc347f2bf066d88f624070fedb8de8410940ab528ab8fc49c2a63020858900b61abae8a795fac74fabc6a7183931f80ac647ac8d64b3653b7224b385c098e8641a085c4a165c658c92708e50a47976d7d269a67edbafeaa0c1abd3511536821dc461c7d674732bae6dda3b9d00728c5266be63961803211442b7daf5260c290bfd4966a6aab0043b18e76968a2f8279204734ed0f5f0b1f0a18a9b70c789886e082d48aa840c531f0b99ca9e24e4a4115d7db8438d4a24ca8275648f38767791f7d2b7557bf3ace0f68a9ef19bb02b805c151acb42b5db35a2d7651c5b56dbfdc2be1b00a4402ed2aa4d03ef9fd5fb2180e6868d3677610ef0deb22103a020cfd8a58e54d92782887c90b6f3100eb0a28aa6ef60f71552a3e0343c245d122c02008ea2e7bbbd4cd937034e802531a1218739649934acb5a8e09fad688a8ffae25ed535dd07007ef0a986aafc8f561c3d367ce2356723107ad3f6c94247738f6d89cb4ea06ab708bb758bcc5a0d36752298087247c4f245a5a3e7c416e397009bf4b6c43b7c3bf8916c88d771605072b714b0b4df92b009ff4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010554c7f5286c58d2c05b4647acbe0e3b44c407d8b77cb71eb96616683add57ed22b575bbdee9d1530be28cf8db7a1d858183ca98f6235a6c99037eef81322ecf0c3743d7dcdfcaea18d3b2e0ac0ff35ecfd8cc323a8a5f9128f86d9a31dbaed502925cb3865496f9289c249000cfab710b620a699986f4d97833bff019d7419a1754e3453822487f237f8303842fe5b8b96f75a36dde5ac5b1d1dafee49a97bb28167781b4f99fd97f618911e58b431105a4e2d018477313a01b2d0df1156b961fdd967c4263c1d661f3bdb8aa77111deb7f8ecd3ac6c0e752d9d83af68624f72d83bd10483c61e8e07ffbd1cb75350a4f8da6547ddaecb1c8bb771f7d99fda929863f142d038616ef1110feebdee00db0f72dd4db1b5bdf8c3a24da4c801f002b23493c2c8cd8d2d38c8a0b2cfd73f5318a13a340cfdd58e6096064fe3c30543aa866bf75bc180b02b55b426b6569883c383fc01fc2ffa6e28cdb0cb243f24d3397454f7189c20df110c31b86d3f600991c11b85032d9c665391444fe266dfc25576d1cc365d62fbb6fee603b95157d5dd90744190cb7702e774e14e91977652a53496fdddf198dc68629e1fe1e304ec23ede50519ab8bdffbb59b8bf15f00104378d4e27ba5b7910b59460ac70722b04c1247a022cdb73f86c57d8c384736e0b565d97173850248e93414e74cbbc84c9c097f10ebfe6ed3f64a9b1a495c767152f3b580e8a4403a45b9294f1cb88a2a307d8e10c32e40f3bd48996567a227f02bf1c35330b894c0da34a795a2e1ad4cfaad69f73af3b47181d593fcbb72a970145de7c766ce3ef7a2a3f7f83c0179f1eab4bef2ab0e586d85964caf6d59fcd3eba218389931c1085d5c0807c3fe861039b4d0cde9c1394c0d3cc22092a6034065d586e502073ad62d33d7d92c0761b99587babd5747ba239bef7f6d22c1f0139a2a791afdf8c529d2cc2826d3f89e488ee1d5033d87d795f6e38f62dd3e1001fd2ba2790a24262ee203373ddc24e89feba6a5b2b466a2b20bad7d21adc9b05202d45d86f5dbd9d11dfcc8c223db176238c2ea0de068ef07872591ae52364fc1f1da2c5d32b4beea6a1014354cb88b1b516e1cfc5c620a0714bd540864f071720e25d3a2cd4b411595efebcab34774e6d2fb72c4386d87b27e15bac79b0f8ea0145de7c766ce3ef7a2a3f7f83c0179f1eab4bef2ab0e586d85964caf6d59fcd3eba218389931c1085d5c0807c3fe861039b4d0cde9c1394c0d3cc22092a6034065d586e502073ad62d33d7d92c0761b99587babd5747ba239bef7f6d22c1f0139a2a791afdf8c529d2cc2826d3f89e488ee1d5033d87d795f6e38f62dd3e1001fd2ba2790a24262ee203373ddc24e89feba6a5b2b466a2b20bad7d21adc9b05202d45d86f5dbd9d11dfcc8c223db176238c2ea0de068ef07872591ae52364fc1f1da2c5d32b4beea6a1014354cb88b1b516e1cfc5c620a0714bd540864f071720e25d3a2cd4b411595efebcab34774e6d2fb72c4386d87b27e15bac79b0f8ea31870947f95bdea9c3c192cb3bbf7effe29d0fb7bf7284c1d7e0d66acf118ab01040c9277dc8c6351fd039b70656118046072e337c872d37814fdf794ba768ca23395a400a684d94c6d78fbb9be15c3f755ec66343bd022f90dd2d33a0d5bb6d0acb6a404135136d1257fddd30a618cd231dcdf8bb21b7ee6788bc2a9fab0c8a20aff83835a5b4ccf729e3b4b253bd1f7d7324fa0ce86a7dfa7275830f1bf16423a3be95ea9f18d2ba1bdc9e20d742dd3d63c827f198de024754695b2fac8ef30f2d75830767eebf3d2ec7ab5e591790e76cd7fa3992cd0c5af72eed276f9b0d3aea6a4f9e6c98e1713851647dc952661f58279d7f9aa9ecb65c91af23d535b8328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff41daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f0e9b28b272c02d11c9386c8f3a096b2194e24ee296dde17998ff0afab4195ecc07b3c99b61e73f8c0eddc62acc9a1fce8d7809e368c4ace8b061ea854a2e59952b3f9c77fc3bd3c17566dd79285f24c0ec915bdd0f6a6b45c99c5e3b9018b9e624f3cc984102265dcdd7c86bc903d5b2b9219ccfd1a413f5b054954914ad8aae0d9535253cea21b1c3288e55a6ff883ef8e2c72bf8af28661332775036c2b547326acadac315de4e3cd771aa590077c12963d1d0109dd0b585fab99cc93d4abb2005f4f59c3c928ec3767307fe1673ed725e13a3f64d55664f83472ae6a2b5ae1a09575dfd31302f217a0aefe63ac1162caabdb0fca6292ec2bb36193d0fbdf53a117c06a995f4c30f7e58ac44e9bfa87a75d8350549f5048bcefd2e3904b99b158bc49e459984cd6f93b80394eed78f7e41df8d9670222d974ee5282991e1c0063cc7959032a8cf40b3e9d66afd820dfc06cd07462e7b298d0d20b5d59a95d43f24f74750d0897d09fcb8274e5dc71d0f1b936ad253290524ca09cf6495536c000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013cae966af414e5331e7a6afbfa56f6b27efa5df2817773abda389025fa7c1a54171265f133abe509df8b4fd9ef75f5bcb580cc5ea675ab30b5874443f92c26850539e21cc1d2023678b45998e91a75b13b41b6bfd2bcc54aa2d44a7b1e0642022dc2a77df835ec40708e899a857710c9fd452375d81076e9b20204892a8b47ed3f7bc581d66dad033a6016d228a15e58d59e815c862cd2ad2aa44028d1daf326095acd79f5deca617d24c8e205eb4299df7c47960dd2414b8eb693613781b3ff24dd10c46326210f5a63f762594708b9a32bcf4341db741c4fff6e69c647a48b2d1c61572e247619cec4a52bbefe1a057dceef0f83d4c6980fc8b3769bfca9fe3c668ab7fd5a3223d9ac025aad7aeb59466e383ba603e9b9828149ba55e9c9880bab4cefead8e3a6546d7e464987b7bf4b2d0cd13e40f8a47f041ecbdef9b6ab1602976ab66fed4103f081d0af2f2a5ae7d52ccd62affe6f82fe4272b232c6113ffa60694f62a30f0525e7e590aab06ee9d4b20b10470e01e5489873e7e913892fdb96c62d0e3bdb6edb6dd7e50d145c78bb99626bf9d840470cec4ad111e3951fcf1fc67436b3e2131aaa6a54a6316fa75c4c31fead97ede725bb82d71d83d12cfefca78c25e514ee8e8d5724d3d8dbae7d272ac7bd9adbab233cbd6e80514e1b4b6c77e416f53afc5ad5d412e3eb86769b1f450fee43cbe72c6e30ca9a167328a3cc98b18385adca63ed83e0a8986ee326fe2109e0de8d0b2ebae40a1ef4103679a97f40636cf5742883dd43ae9a37da822b1773cc23ef8acbdef6100a67333e8a50a7af3b74aced7eeba731946e35ef6fc91677fbbdcd3649ce4ae29070ec0175af5850c48b5312811458ce6b91ca32d6cfe591513b4e62e362a21d6f8f1538b393466c294760a37a9a43f7e6270d2414898032b6d093aabc43c26cd23498074c6cb993d6b89f5c8565bc0819d8f2fe320f7bd6962887ee70ed2a932dcb691b81e0601cce64e331650353d77ec3412b4c4b90d85e2e73f0f88f18201b06f4247e1f9fe3319b1cce9afcac28813cbef6fa4d6b30eecaa7a834a1d4dfe4f90d098961e09007f86ff6f910a33579d04593f047dc273cf60c8280699ea08722c236769e1f6ff807900906ef5cca862fba8e56511fe210030f16acc74e5f78dd3f3e8a50a7af3b74aced7eeba731946e35ef6fc91677fbbdcd3649ce4ae29070ec0175af5850c48b5312811458ce6b91ca32d6cfe591513b4e62e362a21d6f8f1538b393466c294760a37a9a43f7e6270d2414898032b6d093aabc43c26cd23498074c6cb993d6b89f5c8565bc0819d8f2fe320f7bd6962887ee70ed2a932dcb691b81e0601cce64e331650353d77ec3412b4c4b90d85e2e73f0f88f18201b06f4247e1f9fe3319b1cce9afcac28813cbef6fa4d6b30eecaa7a834a1d4dfe4f90d098961e09007f86ff6f910a33579d04593f047dc273cf60c8280699ea08722c236769e1f6ff807900906ef5cca862fba8e56511fe210030f16acc74e5f78dd3f288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc73502405abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b31ab1bc182a8f50046511b7ab409a1d69cb3ab17ebd01f77d737b60b7fe18ccc60440930f7560351b151572858db88b4c489a2f492f8897491262236693d3a6fc3000000000000000000000000000000019b4f2bd06f9bad4b2e1e4b1c00000013000000000000000000000000000000019b4f2bd06f9bad4b2e1e4b1c00000013aaa9a47453df473718afecd5a9f3c813f8ab265d7735b30cf3d9aa31345b8bf29f67f7b332db09cf5bad95713cd823005366f75182a210df2f8ccf2a0536bd63335039be7eedfac2e3ac623e673589a8852baecd7723f5e37deadf71fb908e23fa261b1844f304c485490d5e999b2633afba4d7b5b76ec065c640ecb11d4f89354e43e7d570affb9aee4854bf65e2965f9d8dbc4e9e3fe50bfd1c7041e7333c0bbf6cf08a9fcae4eaea8d7a724774b3bff776f5d2caa6fdd3e928d4ac2c59053cc3da9332bfc4c2de3e80fe3391c67d16d585354e9f5bb7a35c091c3573e31936138aba397e4b359850d5fb9c7b4480ac78da8f3e8a5266fa48e5c79b6275533d2178e1ae70947695e9f02849f81419fe207959a234e612d6c2f91c8456939102de871e518f6b896a160fd7b607ebe624261fa267181308c26a37d07ba96c711ab11ae211eab58d1a4268f08006dbf98434d7a4c8755389ff3231ef472433272031cbe0480a10a20622ae694ebc490d53f0bbbc0ed5648b9a630acc5ef6e77c39a535051151506b5379b027ba6db369fc9070a8e3c7ba8ae2b106182685f9e51997fc6544ea13622afb391fa25b0146d47b944c08be01418469a2f6bbe6e1ae0b4e8372a117ad61a73a4f0df1c052699b5c2c6271b5e00ff594cd2e004f0e583f15eba801d67514d55000295c0022953b2d64fdeda04fdd016e4b122ad52af8000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011d47ac5bafd101c409adeabe8a859450907335deecfb25c09904c9a985abd4c705e19450bb54b07ab47ccc26acfad25ede5b2a987fa54cf9b87d4ea38c2666c73a24667520284f7a5152b62a6d2372fd1ab669a5bd54f189669c29eebeb68211200ddd57ba3fb21be300646b7e66f9ea34d62b46fa73a270ac2661b9c4ef81570f99b0adae14c39bdcf8c6b9431465b83acfd2deac7c298b1e33bd52ab3ac172038d3957541213072766074fc87a24859774bd15d6dcb323c7292e2d64d1a6e43b91c77c9c0e54e49d01965ecfe431070ba32186d98d3dec93660db7b1f604e1359eae7ae059aa7ff69536b943af2399adba9f299e7f695bd9cc634e79d9bb8127b056a91917d5134e3d6942bcea7b241a292b370d746c37fdb2462633c343fd0d9b37aa8050a91ad08f5182c8afb8af55e97efc2ab6e5c84e6b79224711be8a2569dcf9193f30cd03d8228b71054c672a75e7602c055a6171980ce162be334a228f396e924c5317273dbede7e62682839e3a8b220547772f73c67574e2c6c7d3cf9e57a8fee85a61f247cff2aa2b1fe69f34ac69bda955359a15bb5eb45c7ee12b0d11211566a1762d19b430f1093cdb6249acdceccdadad4914c17bce99f783e2c8ee7684e289a132c5308d090ea2e64e62e49d548aa4240cdbc6b8b52edaa000dc125e13fb149069e9cd0185cf41ba0fc77c3eb1f7d25e93bc702b7676be903504cc2df3e61d7dcbab16fe7b4996503913b7a0cd5e9ce918479608725664639b69bd9f5433d2753e6a9bd9eaaf0c845d496025ff7080f32b95cfb7bf3e7e02fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c1152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b529622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d0279169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd880eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a31153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a72fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c1152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b529622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d0279169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd880eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a31153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a73319a2a83a6dd65b246c9f7d539b67b09c3b0afe9bcc31f641e4746e726732ac352254da5cad22b2bb31a255d43899f5be174c33d783688ffa31918b2d0e604e012515c31c4d62deb68da72f0eaef3954e35414c7d634f15b8a251c3e93c47a806cb934fc247fa8d561ee4874ddb15c44061367e9c9857ba790f75d47e485c6631e58121b4e86da8dee5935258eb584177732ffc36cb6ca749c9dad8b2f3761711b3b2cdd522bbab58a1c1e190509f255ef725a55de7262c784576be6a96be272267e92a09901923b82bcf1dc9b164a7ad75052728e5f70769a126c426b1590501964ace5f996e004463cc51a0e0974be4467bf3704d77d22853a8ba1554a8c226c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa1101a49e89dccf3c20d53292a3e6513a4fca4c6dc28c40702523309daab5966042b8e40f40da8d8261d87a0534e4cda684b2f16fa51f2e5013e2a80240aac2a2d0bc14794a944c6c62505b9539db5a4ba37d64cb0f01d780f9ea66abaa45c85ae041217d5e10ae2bfeeaf7922ddec504623ce1649953138d125ec298d54a9434e22aed3a81d0d635fb1c9c5d18c74834c4e756908cc5b4d28f7419c56d904f60e1d512c57e2f29ca04e363a2e738b7cb3d3d12ff33cf1abf2a1eb949626fb09f41dfbdfbfab900b06d703918742fee32becdcfa772262ee36132d747d639097a51d743cba4ef5c5c973f7e3f83310b6ab185f459309c48b788fd3c0818f13e4dd2ccff72041769e1ab5953cb5eb2a58f5b297dbd420f16b057d9adb419cf0520139e3e4d4c3e51db81cc112b334ae70ef09672755571cf841dd1148a80b0d0dd0289ff1919d70b54093801e384624a8e4b61f346fbff46972aaafdbb493b2f904170358528f9ea89495fe9ff3291e85f0b45094571b098213b335449e48cdb05c0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000137a392654eb5f578529fadcbe2a4c2dc079acb4b754500861a959dafba2d729c28b78825e8832beebd7280e2cd23b67c7e5f077abb011c6f0a799e56edfba14d14b3c03d8e8cb9d42e00e04020cba3da9412a10a7234cd60a4f5dd4ce755d9f82c19eb440a8bb008d92f4ab43276fa74882bfa3e8e2223ac8d045f79e7c710dc14907fe178938da0c1b5e210d8c3884fe7c8b2d9239657ad2ac91f82fac2601035c36373bfbd29965ecb1d0228294a727513394713cf6a35cc3954c798c012a931f6cbf07686631245d7fdbb35ba33900b199cc9533a51deed2e843f764ce1b2119d0e1a69327e8ce78cb6fa2eed9d2c5a8d4f77c5a13c350ddb4170502c3ca3261e8f5cb4e8b064e054624cf949209b642013d600005127fd9665386b2d6579057ea1cecb6655061848284c59faf6d65096b828d5ea437958d4860d371c599629931425738248c9233a52e6971f90f1549b35af673cd84f9abdf1a9062bf87228f09846e6fb415c35a7f4331cfd5115134dfc5c8ccb3614315a7223fbdbbffa1647bfc9ee9f2da72863bf39910e675b0206a3e5f110f04d72712370a5a020d23962f6c2b2a5c21659925908a8a4de711e1141ae79967fe0bbc1845d028f46941a5be043504bd70e4fd13d76dd4c1e9b99c961c2ba5bfa4bb061243a3349bef62ccd94ce600e847e0bcb21e96ec0ef85be79d202f62269bae6edbb8fc0342c8b0098678d8dc0af9d7b2fde6742b8a43146f90d45feb29d550909e196d7f4e5ac25968f23a5e94b9ba3c2bc2e43ad27f06c5b646f0660186aa270e002450d6d0f0a025301a262adc9ab1697311b7fe425e7d66c6ed6fe4296cd9e175eee63e12d35fdacfe5d9d523654e968cee4801bda3a702c8d324eb684cb8f198e119c1ed4320b9f082bed64f05770f3f5897f74bd87301e2a32f74cf2041674daa7f365e10df460f7d4129b0fa88f0c0a76808b429b167ad1d655ac299516bc12580c9a203a3a1b28dba2f8b1b534c3cbaf7d47b33d1ccbdee2ed956748e8b57e47c0fd6205c5e4d7245d074e4acb3c345082b84ce529cd1d265f63b450447b6eb83f029f232287cc4a2edb788a07d2fa6d72667fa875976a4970069607d6c7c366c4f2e61cdd7833b5d1248775f82d05928d998079d10191bfdcf28591566929993b0d1b0a025301a262adc9ab1697311b7fe425e7d66c6ed6fe4296cd9e175eee63e12d35fdacfe5d9d523654e968cee4801bda3a702c8d324eb684cb8f198e119c1ed4320b9f082bed64f05770f3f5897f74bd87301e2a32f74cf2041674daa7f365e10df460f7d4129b0fa88f0c0a76808b429b167ad1d655ac299516bc12580c9a203a3a1b28dba2f8b1b534c3cbaf7d47b33d1ccbdee2ed956748e8b57e47c0fd6205c5e4d7245d074e4acb3c345082b84ce529cd1d265f63b450447b6eb83f029f232287cc4a2edb788a07d2fa6d72667fa875976a4970069607d6c7c366c4f2e61cdd7833b5d1248775f82d05928d998079d10191bfdcf28591566929993b0d1b274d3dc3a846fc8924f1055fbf4f5ad5848b4b6ec07c76e6079ee428f532d63220e6a6375b0b5eaeeb6fc87a8cbfa390fbf15474932bbe08a8d6ecbb879cb51f266251b54c6d2543d21425e07ec0aeda47502ad99e9fa2f46262cd952d3d00001d0e91854489c12ebe7a3fe60a253723a77be6156df5a2af0472425de5c64eb81c8da40b524441fd2cc45ebff9a1c1e345dfa49e131e3120c317c2ab7c76eff6285e227dcac39affcaa9a3843ff26167e7011a6f7ac8f89a3b79077718e6e22b0542da47936f227e122da6de23a2e72b4d2c3e2b7e5903e77be09f12841efbeb21f8b3feb7ed63a24514556281c512bf418eaefd6e5b0066bbafd9afd9e0cca12260f666d094d1a6403be2dc098fb8f586eb4ad8166745ba69d9a8268d67ce9511fa42639b21ecaf1ed4e983217b62a6709fcf49a5422b064a6309c8e2c557660f6e8ca648718d5b370910bda7dcc81a902a2f60423f21141d248842e6d8fc7a320c56a8439f692f2fd68bc008d17532d03117ba485fbc1f13c462d99b8186f1325070870b4bde3308fad4bfc1eff65078b1bbafb37dd85cc858b01bdd9029d1020ac843606ae0225615f79f691b254b7ed95e72082b9863ebe401d3929cfc2b20562e237029f183ea25eb3ca07493aa0811ec660e3bad567df5a652facad26b1fa9d1dc8fd60e7c15da14c35f8b6c561a34ac95fb114bc51b378a9a05352d972f449772772d8f0d1808979e6aa9cc1a262f7a594ad444b4daba98782763f23f2d9ba4be5e87a8a6d91e99ca9ccbe5a9a5fae8e8c00e8665e86885dec7035c89136368bdadccf4be7a47d1bf570ed9020ff486d6dc2b93d1caa3b207ad9bec5f2cea2a9bc2cd88a2b90e2a6284360f4ad85f71beaf67baf9a1d7998f7197c97d0ba7f838f4116fa1950b63dc3d4bb4a25fa9385f95b0ecdbac5a8de0f31840d51539816c6fcf97ec74ffa45e609c4a4e9a6e98b511ce4f61d3d2b75fdd100c6f000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011de90dc22b8640c3c895066b3026a58c8c30d5f765c9c6894002a17f6da78a13278fefa3dc6bea632d3de4d91a3980fbf76ab722c80d9ec718e7868e20e1b7763d05ff18ca10f74219cc3a8ec10cdb6d0be921fe9366e4b7c309c6ce929dcc6c36e08b361ffd42fad7a6739185f7a912bfe36a5b7d8b01771db7b59e2a14b0e224b9ede6d2043eee37eb447935b0952df03257189a0164dfffa0c0ed589ee2a515789941f64109be1ec03a21e0e9d34cf04216a04e514d609b8ab7d8e6f1a18b3cc8d6b833722960e6385fc64214d3a2ec9e321aa817d603bdc9c0bdc6c2e7ab1d753d02252b3ab7dfb228201a5fddfe169601d97847bf196c8fa9cf8d9d16f40d0165bcff194ca25b3c18ae14373c743d3801d9fa58dea76c0dc80921a36277136757e08c18da1d2a7dff26c35b283df8b6873b075d7bcf63fce122e9fcee8d1a9707aa16f84b4f634b35d931a8869cb1e400e5d724aaa3656ddfb311bb5898223ba8a2540450eb68a159f975c8c3eff724591edb6e2b38b08ce28f085c36a41ba13346e6ea2343609fcbb6c8b07260f12dee42b4dc9637327dd401ba2406bf34098345ba5acc7a21564c8b7102d36b2ee9f751b5cad9f6fbb4d3cbee0b60a70f6ab6cc4ae6bfa482d984aa4dbdfa3a29f83500eb724952dfd8c865202184c530336be1c13199a3df4ce746867ae5e5b83ebff4322a4a8e5975f6b9b7869390063ebd5608275f30a05dbd2797ce69efc0713e175cd8043cb24a44c12d63ec4837547d67b3a629dff4aa8c7b11e0f0716196d4ad566c3d05f4c6a3fc4a51a9630c6a5a22c9f1ec21e26f9d72cef81074d6f17160818e39ed3c7ec8fb8159456e3395a5dd360e13de1d90628d3107ef8b4b55279b87bebf2e5cae67f17ea6ba933e13c2adf1b99ca96c2e133e0ad8524832b736e287c721a22e79ece986be5b2601ec3d520e46635693d1ecc1f527adb7ef8f62198185d7796ab344037941a4db3662cd65b8a00f4f1ce6603636399b687479ae7c81afc3bc83acdcdba1b7c7ba099d329a475ff0b0e3199fc9c9c66497adccea7f879d355f158054115e4838470fee02fc9b204c8b907fe10f0f200909bd46047e633aee402dab8c962896e69e3011fd0364dfb3746f801ef0f0dff6f66500947da6120adb6b81a456d76919630c6a5a22c9f1ec21e26f9d72cef81074d6f17160818e39ed3c7ec8fb8159456e3395a5dd360e13de1d90628d3107ef8b4b55279b87bebf2e5cae67f17ea6ba933e13c2adf1b99ca96c2e133e0ad8524832b736e287c721a22e79ece986be5b2601ec3d520e46635693d1ecc1f527adb7ef8f62198185d7796ab344037941a4db3662cd65b8a00f4f1ce6603636399b687479ae7c81afc3bc83acdcdba1b7c7ba099d329a475ff0b0e3199fc9c9c66497adccea7f879d355f158054115e4838470fee02fc9b204c8b907fe10f0f200909bd46047e633aee402dab8c962896e69e3011fd0364dfb3746f801ef0f0dff6f66500947da6120adb6b81a456d7691963328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff41daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f0ec70c44d876c57b82bb950c382934e3ec0009a81f04f2b33ea650419990bbc82ce53ced07446ce4cbfeaaa0f4abcb1f9db63b2df513b703b1ed32ba27a6c3e40acb6a404135136d1257fddd30a618cd231dcdf8bb21b7ee6788bc2a9fab0c8a23395a400a684d94c6d78fbb9be15c3f755ec66343bd022f90dd2d33a0d5bb6d3e67bfa2358232f285f9c6aa48a670ae33bc882dc8695475516879500f531a3b3780608b24a9456ccb9f2045db37255b2c52432e9a501fe468cb58daa56815042e26f67ab7b96cbd66298cf342505f2dedb559fa4be2273dd01899d6c3abb17105f957432b4d66c307dd8d7a9f77a65b49b53376dadd9b2290ea826fd6568a542e6f28d62bd42c3fcc73da7b517d5baa60819620acba95f0aedd2585cf579b7d03e95278400e0261be0173704e35195ed08b526147587391f22271c9aff1acd03eaff1fda99cf274ec44143257d36d2aa688c4542941c328302d04ff1aff044735705bc03969e10b81c3063b89f4985eb328621906caf853ca0348347f03378038b69aba7e4f8bb1e46686b7b85bc6cf5cd390dd4e6428059f42828f44a879f30749654581b0744e1b99794847a43930c573081ebae8d115f9eaae5dbb57860f1692321285153bfbd269c62de2a8b229adf2e7765fb13f6dfb9efe3f1b2d1a662ae97dec5beded385fc5a0fbc4dbad157d00b9605a7af6d457ef6729bf577f58379704caf1a3956679f4fed0cc79f4a409c31f28f7570b1a33dbf528767a0e0613c2edca043bfbefe137a27b08a8997d6151e2cc09bc0d9dbeeab485e46e228421670fa21cf311d03323710021d3b9af58b09f0e76a3999c34f7c17e93b32d272f244c42c07aa2adb178d863c82e44f801963c1abefa4604560d9922872b2210000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010ffaf1fd37fa3a6e30758b55573b347318cc7de00e4814622011ba8c3e9ecfeb05ef28bb37870e2956e0ca8373dfb53ca25283dc496523edd689fb24ce3d1516256b277f440eb07133b4423b52bafa9e9dd45e131174042c11460abcc73778d5060ba42e1243891a809b0732ff351aaf60e21644cf0c0906086b373948a4aa1c380c425f4f59e42dd633480ee8b3d074dc50238106293d871975a2d50bfd34fc05904adcdae87a17ffa72ad107d178f7218ca5501bb044fdf1123eb0240d03593281c89f95b4798d83161ed85339913ca2a26b67e4c00b38e7cdb240546c232119269ec04345ecb1b01703ca40eddbe064d6588a2225d64e4b597313ecabbaa93314e2d3d37a79154e4c0667e9d35eab4b93fd465dcd270227e4c50356307ca61121e2dfffad26e1abdb004617e8a86cdfc23110b7b3eb15d8e6ba4ac208cc7c2dc270fcf6540983a25c3adf5535e12bf378a54fc70a185a3a782c1184f2be3e1b0ccc75474575e42fcf2d4ed95c1a4c2acd36e268af6d9cd6a836a975a64605085da66e5a09e45d3bca34f174470c928c47bbcd172cc1e7287841e0bee3a2e0074d101e473b0b60462be350c56c3939718990cb4a2db52b6c8d34ffe94bc48521510bc249bffe88fca3965d33f041df0278db90c7a354595af64d6bd64248f63cf850aa9595be4878bd1cee2e3ac14946c856d6a49234233f265bbc83e8140a160658d4947e83dbf2406d62c6baf5c3f277f92548bb249da09d1b1ee212c0e23a70721b2b8b32dd3c51cb0dcca9765da60fc6630119acabc9e7cb2df21bc6933d73bb154c4cb168c6b15573da8bb045cc9f23e4ebba481d8fa2de9e9463ad30028c44eab3b34e97394eaa8c25744fba55a775171d92b0fe098a524e6b9c52d13342a76a7d7f770be176ab4344ba715c76014f88756f842569799564e5f261ec0cbd5895828088f41e8954bcbb458ea3ac45497393dd74f62fb39b881a0d9e15004d4514737d533b6751585057a436cdc4ec29ba25f9b04caaab27447dbbe9983fb2baeb8c82acc498aea7afa85bc9325d5a6f41e35348ceee8209a882441669018259664172a0290496b991b6351204d89cd0a2bde0717f5557c45674ab8ff83e7da699be8d5fd6fb69466e49caedfb49a9c8594b6c879c43d56c968b5470093d73bb154c4cb168c6b15573da8bb045cc9f23e4ebba481d8fa2de9e9463ad30028c44eab3b34e97394eaa8c25744fba55a775171d92b0fe098a524e6b9c52d13342a76a7d7f770be176ab4344ba715c76014f88756f842569799564e5f261ec0cbd5895828088f41e8954bcbb458ea3ac45497393dd74f62fb39b881a0d9e15004d4514737d533b6751585057a436cdc4ec29ba25f9b04caaab27447dbbe9983fb2baeb8c82acc498aea7afa85bc9325d5a6f41e35348ceee8209a882441669018259664172a0290496b991b6351204d89cd0a2bde0717f5557c45674ab8ff83e7da699be8d5fd6fb69466e49caedfb49a9c8594b6c879c43d56c968b5470090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012fae6bb6e8b95fc6bd1f0fc23dd23e396b097518d1029fe063291c6f3e44dc5f00000000000000000000000000000000000000000000000000000000000000003333bf7f95485d87044e3464bc8694346323572bed8df9d90bde399d7fdda4323dc439d0b6c27c96c0c187908d709a04d620ffe38d8908f4b89ede76ce9dbd313727167383919bbe46abc74f1815b726e26e6e0ca5c99adc9f01c98f3694f302325c2a5dafa39dd92df64edbcca10994ac1b9ce690977d16ae9fda428f7c799802644f4ad02ef979f92bda5bcc48c673933811bcde546b106900cc4bd620fbb734fba33cee2b7524df548de769105dada870e942e5f7935b1777f3cce79b927719a75f57963083c41da3331da6a3ad3f5e3bda1b65c729bbf2146761cf1d8d7d2896a75b673a561b682034d34db5bfba48144d49610b22e10a995b89c1308e2c0d7c31b4393d1eceb340f470609aa2d55a515d313000ce8bee52942dfadc5fdd283ff3c5769cd218da583f6bf7cb4bb9c1c266b8d10cc201d0e68e9e63f644a8278eb604e6b029f7a00ae627ae683c12caea2476033024dd7b02447fcece0e85281c0087ba94c5c5e1eb321a8b4b09b9552dc11e67774b50b330634dd96158e1000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000001a677e3364ef4e0c9908bb612bb8583a9294989fb02864d43959efd6baeed17000000000000000000000000000000000000000000000000000000000000000003395a5dd360e13de1d90628d3107ef8b4b55279b87bebf2e5cae67f17ea6ba930c6a5a22c9f1ec21e26f9d72cef81074d6f17160818e39ed3c7ec8fb8159456e01ec3d520e46635693d1ecc1f527adb7ef8f62198185d7796ab344037941a4db3e13c2adf1b99ca96c2e133e0ad8524832b736e287c721a22e79ece986be5b26099d329a475ff0b0e3199fc9c9c66497adccea7f879d355f158054115e4838473662cd65b8a00f4f1ce6603636399b687479ae7c81afc3bc83acdcdba1b7c7ba3011fd0364dfb3746f801ef0f0dff6f66500947da6120adb6b81a456d76919630fee02fc9b204c8b907fe10f0f200909bd46047e633aee402dab8c962896e69e3395a5dd360e13de1d90628d3107ef8b4b55279b87bebf2e5cae67f17ea6ba930c6a5a22c9f1ec21e26f9d72cef81074d6f17160818e39ed3c7ec8fb8159456e01ec3d520e46635693d1ecc1f527adb7ef8f62198185d7796ab344037941a4db3e13c2adf1b99ca96c2e133e0ad8524832b736e287c721a22e79ece986be5b26099d329a475ff0b0e3199fc9c9c66497adccea7f879d355f158054115e4838473662cd65b8a00f4f1ce6603636399b687479ae7c81afc3bc83acdcdba1b7c7ba3011fd0364dfb3746f801ef0f0dff6f66500947da6120adb6b81a456d76919630fee02fc9b204c8b907fe10f0f200909bd46047e633aee402dab8c962896e69e1daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff42ce53ced07446ce4cbfeaaa0f4abcb1f9db63b2df513b703b1ed32ba27a6c3e40ec70c44d876c57b82bb950c382934e3ec0009a81f04f2b33ea650419990bbc823395a400a684d94c6d78fbb9be15c3f755ec66343bd022f90dd2d33a0d5bb6d0acb6a404135136d1257fddd30a618cd231dcdf8bb21b7ee6788bc2a9fab0c8a3780608b24a9456ccb9f2045db37255b2c52432e9a501fe468cb58daa56815043e67bfa2358232f285f9c6aa48a670ae33bc882dc8695475516879500f531a3b05f957432b4d66c307dd8d7a9f77a65b49b53376dadd9b2290ea826fd6568a542e26f67ab7b96cbd66298cf342505f2dedb559fa4be2273dd01899d6c3abb17103e95278400e0261be0173704e35195ed08b526147587391f22271c9aff1acd02e6f28d62bd42c3fcc73da7b517d5baa60819620acba95f0aedd2585cf579b7d35705bc03969e10b81c3063b89f4985eb328621906caf853ca0348347f0337803eaff1fda99cf274ec44143257d36d2aa688c4542941c328302d04ff1aff04470749654581b0744e1b99794847a43930c573081ebae8d115f9eaae5dbb57860f38b69aba7e4f8bb1e46686b7b85bc6cf5cd390dd4e6428059f42828f44a879f32ae97dec5beded385fc5a0fbc4dbad157d00b9605a7af6d457ef6729bf577f581692321285153bfbd269c62de2a8b229adf2e7765fb13f6dfb9efe3f1b2d1a6613c2edca043bfbefe137a27b08a8997d6151e2cc09bc0d9dbeeab485e46e2284379704caf1a3956679f4fed0cc79f4a409c31f28f7570b1a33dbf528767a0e062f244c42c07aa2adb178d863c82e44f801963c1abefa4604560d9922872b221021670fa21cf311d03323710021d3b9af58b09f0e76a3999c34f7c17e93b32d270000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000105ef28bb37870e2956e0ca8373dfb53ca25283dc496523edd689fb24ce3d15160ffaf1fd37fa3a6e30758b55573b347318cc7de00e4814622011ba8c3e9ecfeb060ba42e1243891a809b0732ff351aaf60e21644cf0c0906086b373948a4aa1c256b277f440eb07133b4423b52bafa9e9dd45e131174042c11460abcc73778d505904adcdae87a17ffa72ad107d178f7218ca5501bb044fdf1123eb0240d0359380c425f4f59e42dd633480ee8b3d074dc50238106293d871975a2d50bfd34fc19269ec04345ecb1b01703ca40eddbe064d6588a2225d64e4b597313ecabbaa93281c89f95b4798d83161ed85339913ca2a26b67e4c00b38e7cdb240546c23211121e2dfffad26e1abdb004617e8a86cdfc23110b7b3eb15d8e6ba4ac208cc7c3314e2d3d37a79154e4c0667e9d35eab4b93fd465dcd270227e4c50356307ca61b0ccc75474575e42fcf2d4ed95c1a4c2acd36e268af6d9cd6a836a975a646052dc270fcf6540983a25c3adf5535e12bf378a54fc70a185a3a782c1184f2be3e074d101e473b0b60462be350c56c3939718990cb4a2db52b6c8d34ffe94bc485085da66e5a09e45d3bca34f174470c928c47bbcd172cc1e7287841e0bee3a2e03cf850aa9595be4878bd1cee2e3ac14946c856d6a49234233f265bbc83e8140a21510bc249bffe88fca3965d33f041df0278db90c7a354595af64d6bd64248f63a70721b2b8b32dd3c51cb0dcca9765da60fc6630119acabc9e7cb2df21bc693160658d4947e83dbf2406d62c6baf5c3f277f92548bb249da09d1b1ee212c0e235eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5600a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa10da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c8525044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b61584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff772a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a35eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5600a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa10da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c8525044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b61584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff772a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a0b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc28a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e8719da8e2638861c7ac4e5de71bdfc3b42ec37f154f40bbed4c5e50965a0156c061e34c8c6e8e486192e6d95d7e579bb63a7782fdbfb459376a1965feef865efee30c952866824f5b6d2e4327f33892b0af948d2089edcd99d46a4f26b26117ff80b9d798a0dcfe0f4f594784ce33add8e74da0a4ddf0a85c629a61dd7bc644bcd24b9719897af366a8aee83ab7091b28346d90278f468950f8d056030c45aaf4b3f44c25fd17a50b971a117c3fa0049706d29179dae17d2e59e1ca03a77ab527d3ba6fdac0b77d30417b290295f5091155d781ed0d0a66a28e5a091ccf9031fab1883d6e1d3620a99d127d8cf8f9f75ddfae5984b4c8b4ceb80eeda5649fd192231ee6849847258958971d9ae42381ea0477e13551c4028b2ff47442f0f4dc7a012690cd9d017db824bb35cd43115f352b53b40cc7ba2dd80a2b593ac3aaca8331b00dc3610a9bbfbfcadcd305379400e30def6fd40025399a6ac1292daa557403929f857ce3021a1ec2c9bc89b76c6e5277ec01edd2f637abfe35990685ae18e027d05543d47b1622b85f460c3d9ca3035f95eb1f37706ae25bd383c90a83e1e3d82faabc2b84e9dd47a0b9f3c2635cfec4d3a4a15d5f26d736ff8b06f57c1e4027a272eb0bef2388d30a17cdd6de681f0e9aafc077d44ea67fc21631f8296290a20f43070a7739f5f283ae39030222e09395edc7aa8ed87b6714a538d4dc88920bc14c2954208c50e7c6d47d5f93cbee0fee43eaa870008f61107b56423c16d11b6bfa05d8fddb6074ceae031bc984669fbce304a8245faaaf6192dd00298c203510ce1535c27897292d3763b964374f0d57506b413b4961540ac251c4d0df32e2f3235bae6b7fe5554a741bfadc34c85a846cb69511797de7ee59c95e491850000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000129a8467798d211200fafeb446bccf27dbdb090536d89c46c636088b5ed46e9782b4cda99ffcbb50a9d8058938bf3e8becb1db6593e296cf21a1be88697ccd24c27334daed98a159e3a0a64dc774463139038474d50bc4c5fdc38cea02543121e33dc7ec80868b2460ef065bbbe2eeb01be8736231ea5744ed07a68e9f0e1b6c438d06e65efce6cc6e885e95e1435ea4eb14b75687f57945133f08de44b099a2c3898e2e075df461e1091eebf1614216af95a6cc261cf7bbdc2f4ceec9d20e0080480f909f4d2b703d65a932b1ef564232a7f0c780117a936dae2dfe7f3512ff108c7a2a4fe39b8369753a244014b123f56bbbf61cf5e318035b603786cb676a828631ffa72189e2a6ab999681f05b9c7001752edebefd6e738dadf5345c1cf152d2c5a50e21b1da9671b084f89d3f44e4ce9f2efc6f3f679aad0bb07090d230216722d7986a899623cb9e6d67568a2819ee1a0831eab0448b72d55de0f7116ae3f8eaa90168f7958e6de3ecfe90a4e7b191b5bbca434302d393830de442b3f8c2df7263669deac4cad2e415393128dae4d2f54b89663f3a3ba7085a94ab02e8b21b3905637664370d4c7d6eea6a0b81dd2e890dbd4437c8a73c222245d7f38db25f075b0a9d629da622a04b201b85e7d13e7e7b0e9662bc36fa4af12c8057704374088dcf84a786ca55ddd2110a0e508efea7f35601fe5efae1aec768e97ed483ac1a91617f9a68b88a66f09cb368a78a5e17e949f44066eeb6620eb2342ab4626d9e9a0ce9fcda633cbfc0d4379362225ac371563fe372f2133d1168879c5d70070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae02347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f3dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc620b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de6371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a8708e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae02347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f3dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc620b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de6371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a8708e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001337c866282daa61ed5bc146cb87460a1095e7e5256c70505d32bea0344e50a5903a21794126a3368d4d03d3bc01eb270beb46fd17eb70e5a1a785af1b9b924e500561fe93582709370c4c2e53935a3e73062d0b900e4ec30d148d0815ca6c991247dad90bc9eb006a1d7519ba9412e47168d01c62f90a9c5872f617e6208a0af04daef5b9e4ce5326abad0b1c14ca91642cef5643d23f7b2a300a844a9ea581502c2b6bee0a4da1f242790eb3c70a597625a1ba85c6906df747fac8f44ef577c2c4f3844c63f2befb1874043e24560fed279166505a0eb482d279ab5e7c4b55d2c798b91a8fba19c4c33fe0122817c88430c766587e3bfef9bd4188adac71d4c10af8a9dc687a1f46442416e13853bb47a4a088adc0a2cd4c5ce224844ca31f53c7415c5a40827ce02ebc98c1693c910f2e02d2ff24ca032d8a8f1f37f574af501a2ab2e97cf9dbe7196565264434aa9f6584f21b6ec5c0426a1e4b8e4871ead0e080b5e097551ff105fc1efd56ffb220778fd76aa6e1b0e6e639227c3a848b800000000000000000000000000000000000000000000000000000000000000012d630b34b554215e425c4a4b695d3481ca06f5c34edf956de58d92d70dcff2672d630b34b554215e425c4a4b695d3481ca06f5c34edf956de58d92d70dcff267000000000000000000000000000000000000000000000000000000000000000005583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee83aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a06130191191ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a882546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d579059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a63a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b1c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e23ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c305583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee83aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a06130191191ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a882546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d579059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a63a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b1c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e23ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c3299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f1002214accce313f5db11d06b277e45099796f2a6b9e284bbd31bd5b1ef642a2dc7642c762708227d8d9d5db25342038160352c32ee7a89896b63b01e4d1acff394991ffaa18c3bc1139049500403dfb0a68045256159afd6c550275472c9aa6b8c621319406bfd32611570a209b85b38e49dd7727b21099400a3c3bf232a29135eb22368a8d9f0df500d29c787f59bee3d31a7284c876cd8b378363c8b9485c4beaf0168feb3ec5487731f5a78c05dbf2354012ffa5efe36b383af6c5d5787f595aa0b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c3feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d29cb941a2f109d6af605b466d71c4c622649f3c64cc21faf9dab0468e4ca2300082559f2d36f6e8b95cede951b4246eff9bad95367b060e060c585f8f4936c1901bdab451ade8278151aa000b6fbc7d54b1e479e66bad359e401066eba70867209a39f8854fb6f435560a9d83f0a321687ecf5e3a45fa3de41751ac1b91b6b4701d2f226b015fbbcb551f2837d048fa7d82069cfa53362d415443ddff702eff63e2d0dd94fea04434aae0d7c82fb70584a262f2c6419964783e8f30d08fd100c0dba471319cd6c8df99741293f7f59cdcc086e13965a56ac88e9c7b6f617e0513c7b0f2af395ef9c3e7c5b2d86c2e0446c353379649fcb3de211a6d48dff70923d4c3743bd7fef78b8474d1f56403d39ef10f74a953d58889dd7ba652d9aa2263823171b6cceea4c6b397fbd2fac3cb257a690c13a3179c5ea8e50d996db174f138cfe690622fccbf1a5144046b8057ef6343f2e51fb274c481c8a4ebd5f00a2398409e28ccdc2d7e9ada0a51a4e665440c1e30a0ac2d7803f1d083d08d9252100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001121925e11377999ac089e5509b9fae1e0da5d9cbf3582eefdd0f4eb3d8f67a16344b9a77d753303645bb081baa70f16dcfb273f4e18f6826746332914c66b56d2c4d6bb06a7d10b4ce83575682a6ac2782ad5ac3e03987cae9d64f1abe611b1535f0d90b8d1acaa4272131ebde9a5621cfa97ae909e030ec1ae2aff1a1aceaa40fbe3be46fd1a59a9040b6e255d7e4766edc7691ea152e2964c0be5c40a84b733f2340c5e8c8ef7e86fad6e53d5b551df977487a51126ff4b0265c3a845f37531271b64059999e7fbc140afdf170215165a2d9494d68dbe562e00974b08477e93c883f89615e3b2d7eee88fa98ecfd4e2e4cd91881599f9e452f49ac865522d323b5c0efd4ff0bd61a2094db3a90bb538ebe6724ae0144769e02100ed1653c5c010bb189b7abb2c1e08df8e8cf4d9a478a59546d4f4b35416cb6ffdf8af1142f2fd85e6375eb3f423bf8eea1b8f93476ee07ef50403135fd216f31beacd45f850c71b917bc21d56080243e775ad3fabc8e29b9a7f3e6b67478a268e0456c14e320c1859c9196baca20afe06fece3c925ce47538b9876455354ffd602ace41df82ee930f00fae34f3614637d24ccf7ca651d09208d2312adad932d1cafb4b496e3726c4b3a89dc19e07ef9761b96e90ccb7c49c1480c0431cb5e2f5a2206eba8315340ded9229034636021ff9172b181ba12f7d80e057ed96a05a53c10a90a16137acf332e665f2900acc5ae66d661e0538aa6807ccf32511dad7585d7828fefd1043bfeaf8891514de36def343ae15ac530d00748f805d418a7d8c2e8a9873cd34016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe00bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f861250210407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c3bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a51423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d33524b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200634016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe00bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f861250210407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c3bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a51423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d33524b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200622e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d570ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b1c8da40b524441fd2cc45ebff9a1c1e345dfa49e131e3120c317c2ab7c76eff6285e227dcac39affcaa9a3843ff26167e7011a6f7ac8f89a3b79077718e6e22b32e0e89af62d4b5e0a44b1fdae3b06376c9123be386de90ef339f6846a620c8509ae342a78dbce2f652ce83bc8df13cae92ffd4acd96c384d84b5b62829aa4c6374a86518aad0cff9744827bab36a25272529f9a68b28b9c99ecea69bdbe3fe42179eb6829f66ce011798143af6163c3437fa534bd33624c60dcfeade441f79320e6a6375b0b5eaeeb6fc87a8cbfa390fbf15474932bbe08a8d6ecbb879cb51f274d3dc3a846fc8924f1055fbf4f5ad5848b4b6ec07c76e6079ee428f532d6322a2c97f9bb3fbeda5575233ccdd411259fc4b5e4b8b63c39d2f879a756b057f10d76be4296c17db6228e74b86fb1e591ab624512c8b43fba93293f0a00ee873b00907813eae16d2b0149dd3dec4b0fe6f3df680e84f010b22ae146688cd1e2b507a36be71870ee0d0f16f09c5fc3ee7f6a569ed8c56b2b20ec67598eeffda89c19433a50429a70a1dc58d7de2cfbb511919ab59bcdc092e7bc6f932c979f0c8426bcc5afbd658f5e23a72821d3044aee90abe3603b8c6633dcbd9dc06860f37e15728bc657fc4890e0d015738ecca3e0c89c6236a5a01c3b1e2d932131f3968439c71b52906f2b9304b68400effb66067e06ad7c0828691772cf10cadd75c87a2cd71a0282f17bde8a35b159e9b29c6b9a05a96aea3adf56bf4f789a490ab46e2ae18ce8133c8fcdf73fb524cb31fef60d556f4290bef56a9efe61bb6afe257b159ea8a7ccff1b6a09354fd0534b67bf51f4be73a4a8dd2768be13ead72846bc228a3f609ab9c8c0061db17bfbb14afd12986d67a518942178403fcc1caddbfb00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001149786e1e7c06613b72b831c67bb7da293652e14a5e236d18ae139dbbb2e1e872e044804b2f80df8a245bce9b5f02961613ff17314c22e662675711d4e714e3227c03129f9a63a0469f27fe005a2657047d2d0d5bde425940337cdba77ccc0ad0943d1fd668c54b0eae9343011b03e8abe644fb8c982b1edd3b2a6b0faa98df12d42c367ec5a2c2f07c91ce9e51028c061b2cda8f213bbaf39abb8b10bbc69bf2fbcf1e9c82180d41c32492a1f08b2528a56f35ea5c7f88ab97b79db893e94212707316552fe9929842bc1ace8d071207e95ca9c3b90cc98e50d37e77a6080822109b387a5f00ec31be95c5a4353217733004dcdd154370487776f336d38e72107c48fe666fb89eee35d7ea1c501a65e72448362d17d9ded6a46fef43731c08b090161690f2e4d87630a41a730c1ed127d381ea7d6f792e2db5cbd874f08b26a26eb388c68571a1946df546d60fcf3f90fb7253c2d1fcc0634173b8eab292c3e195f645141fe9813353b7f51c37e45dec870ca5cc35134df4bdb72753bc458910085eb3323593eba941f64e02d1e3c709b72a81b57dfbacf51815f503830a9df0f24cb597debb102edd6b3620c95095b625ea47d097abc43438417906ffebd861480a5ea8693d7bd5f596a1e1a54e51d4033a77872898b83c019079b206b4e2508ee263f999a9ab8e9de2d4d1e7ad00f214b7d6495cd3a0afe55d66a09bcabd2027196e6cf4eb3dc4f75a0e3f5e406ab8bee544e5f972820cbe61f98d5748f84251c129a6f73bfd9b21b499f1cb5c1bc2654bfbc302352589abe40eef9f3bc7e09a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22309a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a223305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe2622cbee39cde689d2d8a050b771f7a2c3b1ba52e62b09b30c8e93c520f6ada1196338b4638e14cfd60159eba3a4b37353ad4a5d4d9e176d1f2d58b8452241f00440361a1ec224d7d8d5ea28a83a7d57f8b8b730acf476f957ec35112a3fa61608e7ffa7a6007171ca846ab5c221a555d35b9aacf9f95610076d0f3575dc681c197c72c4ccb103b028475e963f041edf0457e1b288d586454f04237818425ece26bbfed82d1828baee8720e0a208b1b44b74061ef724dd8e083522442f783e5d022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c12334659429b892780000594c3d097f40db55bed1a591791fa10890d107b17803b6eeac5e4cb11c87a80550d4b74dfa3eb8d23386b65868e6be730962988072429830108cb5a02fb92b96cc16107c2713d5b965caf18aaee85332c9caa0d94d41d6a5055453de0b1f5ee004b172161a4672b9d1ed3c3d60b5965531316d1491424c267bffeb4a92a1f9ff71e8aab92bd8fcca320299f15f903a95dc267de98681b3d9840014b56d5e06008e175546d429279f5dbdfade3229583d32a9821679a1d04c802c73bb5682da8ae046269d75e6d067a1ee1225b7c287c4b176cf2a6de32dc9e0425440fd13b49e72087bbfd0944c40d96f6411202ccae4631e46097ad10107710165bc0e1593682c1358f9dd773b9f523e8d4a9a061632ed053cc2be02a058eedbea0901751c3cb699500e5c6a9232dbca0bbf3319c64a76754fd1b940d4599ce45d427e2d631ad7a1bd61fe7e487b02b5406a1dc6f2d36652d5e606a1fe51a21e994ffe1e00a4dd29d4ffedb384f01abea3acf52bf2ea331a1a8f0dd000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012baadf51c0967e82e22afe99af216599c49553ad3266faf11e98c33dbf9e89da128dfe18ca83ba51b71d807d3f39d29517c08d3d418123651e9b22f3394d42630dc725a7df7ce225916abdab44aabd4af843573d6ecc65c70c2f958111c023d91d044a1ae5ffd633fc55a978e1788b5ca21cbac0c02fc85d55b9a8a99f8b45492d14c3db2d1d856d8a3369a812bf4af1aa5e00b0c9e81f869e5c7ccb2a0d9c4b389a767e9f39ce0e63246e2b4bfebede42cd2103003c05ac485c77c0e47443aa3242c742ea77b559a654a1038fca6ab5e901bcb7f2a2962c6c8f1f48565445a3158f38c7926451d4feb0d6c8965e39b074e54a82fe5e6e4bedfa441e64850ea80e4b8f78e621c090866c82dcb40a0fbd9935f5d90968e9e6fe1d949ccf2fae732de77298419249ac825157b9714cd5a5719adc16a64ac75d69f8ea6726063f0b247d7fab66df23bb452507802b7a484d0c27e331576117a392e8977a39741d9d0f35170bf7b1bcf30dbb02f2ae357e426937428db2652b1ba5cbb935811ce03c3590d15e659dd2d2ce5079e2847ad2367006a11c7e5c5da5dcf61989554e61e81a19e52e3ba71ceab3a59e5fb5387395b0114477ec4b1288513c8e4452e1057e2a1047c055fb549955e70886683925272d662119c22c1135efff8899b67124e9334803f84404b90ab676dfa456b284ed80587877bf072248690682481ade24b104410a6aa4538987ca1074bb7cd7c8fc4b693aad33f0284765747bca59c57a370e823a99584cfc1d14cd8b09d1e015502fb910fb5e9bd8f0bb04d689f19e973700000000000000a012772f6dd7ece01f30e76baf920f58f42b3717cbf02ea0753b33051545468212320bc77b720d7e8639c0835f8d8ca8eec8883f1693a12172be030fa39e66a49723d60176fabea54ab18918989b4685b511d53a3a2fdd5599f885d06f4ada356508b866359d3ad8ebaf6c6e63ce1f6a77fcab1d6d69b74acd9ca0b4e4fb45dce61df20fabf013cdd730b43c15d2ae583c4665c0ae9b570f16bafd0dbc33e71e992061f643aad614e58f11fd2f529fb5b57470654ff0ff7bed1d534fa2f51441b81d154530241389d5d4a653c99c28a8a16145ad40e8a31b4e5d1d3a2d3b11a9930f79227c73e5f4608c4f3332cd3d478bad3aaa66b0f1851938094b270b0e68b83be347c212e845bd01fc87c12ec7d4800cfd5aaf8f7154cfcc43ccaf0fc9f35c035fa9de6d6dc6e37a1325e2b7fc8c346a68e7a24908994341bea7091e416a723d9112d5f67ccbad0f174614a39fe96cd327fe94e78f0a384b7c6c3eff3df0412efd54d6a17cb28951de40e7c5c606c05d9ef20ebb528f4ae2d74a0246e2220b3f01cb024de0bf7a1a9229499c7a9cf451181a5fa7443bad9280bf0715b60d93278326830887b0c03b8bcb7cc04cffb98816f399390125fe7631bbc8689bcd0708d39803803d9e183955519334ed89b8f4181d8c0efd8c68449beeffcaa1e3e123bacfa917bbe01e27a03569347866741a683a1b8a9713ff508a96547b7e2e6a0727d6017d1220b5f2d1c62bb731530795e5a1945766616e4c426ab2239fe4fa2a41be7d7b25e7a5a8166279c2dcee61f56407decff4d1cf64ad75ac662f29e922e9e7343d93283fa55ab04ac3a592088d2f7785e08f6e6cb565375c62496c6709a480785a6655f6bb9ad6b1a5c05e248150e021b90531fadfc14df7e3d6a5e43de44dbf0417c02a8648521b63f19ad510a0f3c5769339508e07202475cfe4cf3b72fdad53cb385feb51e1ad65e9fa263670e6e8994b7f5beb3d59929770dead2efd54d6a17cb28951de40e7c5c606c05d9ef20ebb528f4ae2d74a0246e2220b3d9112d5f67ccbad0f174614a39fe96cd327fe94e78f0a384b7c6c3eff3df04125bea0b71a18cd4182296828b506c0da7854d555931abb4ef136d0982b270a020a0e4414c624b66c39511af76c064e5ae705836417fc2ff9f66dd19f4dc6e26c2deece6ae8ff5eb1c91e24f5962ca97b84bada21e9b48b01d0c4b29a0bfd7c673e9f9941aefa1f8497d76206d33946b1ac0c1681b92d0e815d8f03a73a2295e5035fa9de6d6dc6e37a1325e2b7fc8c346a68e7a24908994341bea7091e416a723be347c212e845bd01fc87c12ec7d4800cfd5aaf8f7154cfcc43ccaf0fc9f35c3d9112d5f67ccbad0f174614a39fe96cd327fe94e78f0a384b7c6c3eff3df0412efd54d6a17cb28951de40e7c5c606c05d9ef20ebb528f4ae2d74a0246e2220b126aa7bb284670eb1d6557ee883e401a113fd2bc30e369f77e538de6e5d78b763faaa3cc598a24057a2694b7cb9a18e7d4093c4ad72fdb1c0040e4b8d722bb3a23bacfa917bbe01e27a03569347866741a683a1b8a9713ff508a96547b7e2e6a08d39803803d9e183955519334ed89b8f4181d8c0efd8c68449beeffcaa1e3e11df20fabf013cdd730b43c15d2ae583c4665c0ae9b570f16bafd0dbc33e71e992061f643aad614e58f11fd2f529fb5b57470654ff0ff7bed1d534fa2f51441b81d154530241389d5d4a653c99c28a8a16145ad40e8a31b4e5d1d3a2d3b11a9930f79227c73e5f4608c4f3332cd3d478bad3aaa66b0f1851938094b270b0e68b824c4424cbcaa5a47c0133719877bcb22b9217972a4af8fd9f60e154ce00739c71215a8cf77f1408332f207e9e5ab71951245565ffcdf4e041cb58f586192381e0f33cf52aa04366aeec17b9d7c0ddfe1a293437ab40a14da75b9b6ca5c8da1141d5a9859edf547cb72340b5eed58104b6bed142ce58a8b8d1f6cce89e992713732722504c9e3a4d91b27e741d993e07d1a18a4221708b33e9749d1f573c43c472d4555d646b7a5bdd6172f0a13fd8a08e556b3b09cc634f148ac65e72024619f11da1be79624fd8e4bd3fe86ad636e703dcb44eede8e386fcaf598f9b393f3751ab44bc501d480a815218875bc0281bcd0b512b8bb0667f7ca30ec5a928c1ed62a41be7d7b25e7a5a8166279c2dcee61f56407decff4d1cf64ad75ac662f29e90727d6017d1220b5f2d1c62bb731530795e5a1945766616e4c426ab2239fe4fa22e9e7343d93283fa55ab04ac3a592088d2f7785e08f6e6cb565375c62496c6709a480785a6655f6bb9ad6b1a5c05e248150e021b90531fadfc14df7e3d6a5e4278326830887b0c03b8bcb7cc04cffb98816f399390125fe7631bbc8689bcd073f01cb024de0bf7a1a9229499c7a9cf451181a5fa7443bad9280bf0715b60d9308d39803803d9e183955519334ed89b8f4181d8c0efd8c68449beeffcaa1e3e123bacfa917bbe01e27a03569347866741a683a1b8a9713ff508a96547b7e2e6a1267c5c9db7c7f88315a97cb85255b0319180cd448640844383adf0bfc88d40e2f36f3e9eeb66972661afd25350c19b7445069701e1ae8d43abc13788d803a4519720c3253b47fdf79daa811129c508313859ae683cf17cd03a0b2a191f3f9c9131c5b7a4444fe56e71adeeb56c99fa9fafabcc115c5889a9185d2b2b42c18823b9052a8dcfd5de80f9358f5e0fe51010c72e5d1e617ac0c36c9d44e9738022c005191c1726095a02995d783ab84e17c3ebdc185e33ebd4a051bad7b118c7ba80dbf11065ec9a95c91c7f1e60d32a975b01f54f6840b9601004ffe5cc5b4da881ecf56a6392fd4d9cf2d95165c3346b75e6102b115890a6694d686f7806b37c33b72fdad53cb385feb51e1ad65e9fa263670e6e8994b7f5beb3d59929770dead3de44dbf0417c02a8648521b63f19ad510a0f3c5769339508e07202475cfe4cf2efd54d6a17cb28951de40e7c5c606c05d9ef20ebb528f4ae2d74a0246e2220b3d9112d5f67ccbad0f174614a39fe96cd327fe94e78f0a384b7c6c3eff3df0412d4555d646b7a5bdd6172f0a13fd8a08e556b3b09cc634f148ac65e72024619f32722504c9e3a4d91b27e741d993e07d1a18a4221708b33e9749d1f573c43c4711da1be79624fd8e4bd3fe86ad636e703dcb44eede8e386fcaf598f9b393f3751ab44bc501d480a815218875bc0281bcd0b512b8bb0667f7ca30ec5a928c1ed6086481607282ef3093a140410cbae07b482012c447275106f4c8f209cb21d4980b54bed854e2732e05f55286b7e8e46a2e2a239168c8db7fcec88d3c77ed920a1d6e69cdb8a0c82462b6f8cc95c9b5f3e27758f51da4d38c5392c0ee596244e70f1ffddedf58b611fe3e8e2fd39c3a392c08feb27befccdb4193c465ecbdcd642f36f3e9eeb66972661afd25350c19b7445069701e1ae8d43abc13788d803a451267c5c9db7c7f88315a97cb85255b0319180cd448640844383adf0bfc88d40e19720c3253b47fdf79daa811129c508313859ae683cf17cd03a0b2a191f3f9c9131c5b7a4444fe56e71adeeb56c99fa9fafabcc115c5889a9185d2b2b42c18820b0eefdee926ca3fa049043cb26b39d6bc9ddbe6433d3c630fe169efba425805165d00e0c311f8339ba519e6b5bbfd8af61df52dcb9131cec794353091da2cc92a48f7d31668b8726626a044fb956bd5dda5124952bb7a477f9fed6ed051d44102456fd98190c5c3facee6b76dd0845730db455e46d92620158697e575ce3e0a3de44dbf0417c02a8648521b63f19ad510a0f3c5769339508e07202475cfe4cf3b72fdad53cb385feb51e1ad65e9fa263670e6e8994b7f5beb3d59929770dead2efd54d6a17cb28951de40e7c5c606c05d9ef20ebb528f4ae2d74a0246e2220b3d9112d5f67ccbad0f174614a39fe96cd327fe94e78f0a384b7c6c3eff3df0411215a8cf77f1408332f207e9e5ab71951245565ffcdf4e041cb58f586192381e24c4424cbcaa5a47c0133719877bcb22b9217972a4af8fd9f60e154ce00739c70f33cf52aa04366aeec17b9d7c0ddfe1a293437ab40a14da75b9b6ca5c8da1141d5a9859edf547cb72340b5eed58104b6bed142ce58a8b8d1f6cce89e99271372bd1813cd6b0e465be0bf4dde373da87a3ed0a0b57110a030bdac295326922fd0845c4e6b78dc21fc4f5fd7fad90194504852316042ae1b8e908e5342535d7a308b866359d3ad8ebaf6c6e63ce1f6a77fcab1d6d69b74acd9ca0b4e4fb45dce623d60176fabea54ab18918989b4685b511d53a3a2fdd5599f885d06f4ada35650b6b3e5b59d54486545eb27a2508b6779bf2acf1a8c3d29c651ae180d62fa1172b9044fdb430d7aa01d59a01d165ca7da2d660cdcfc8e9ef1607e87cdb1371df131c5b7a4444fe56e71adeeb56c99fa9fafabcc115c5889a9185d2b2b42c188219720c3253b47fdf79daa811129c508313859ae683cf17cd03a0b2a191f3f9c9342ebefcf25f51d2901e23816caf0799121cec819631415c2d91f700dd0e009106194e90ec8243eb40162b321ecee51941aae39a9fa7bd893130ecadcaf0b11c01400a2ab8fcf15c3d0c40e14a148af6a563dd6a82a09f7a0a6d111cf7dc63c32b4e5d81defc8cda23e9461b1f516536691c7a3d16f400ed8ab974374e43ae8837b8dba8bd043447b4fe8d9006c7dc7dc57f30701fd028780923260a281e7edd1f7570a46efc0e6ffcbd35b941b0e1d023f6827fb06d16fa0d80f757c7111d9e02456fd98190c5c3facee6b76dd0845730db455e46d92620158697e575ce3e0a2a48f7d31668b8726626a044fb956bd5dda5124952bb7a477f9fed6ed051d441035fa9de6d6dc6e37a1325e2b7fc8c346a68e7a24908994341bea7091e416a723be347c212e845bd01fc87c12ec7d4800cfd5aaf8f7154cfcc43ccaf0fc9f35c3d9112d5f67ccbad0f174614a39fe96cd327fe94e78f0a384b7c6c3eff3df0412efd54d6a17cb28951de40e7c5c606c05d9ef20ebb528f4ae2d74a0246e2220b10ff230601d5e5358d6edd664dfbcc169bef8967965bd30988f257dc466c55e8294714173b793d38a074cac13d561ba7456bd49dbc594f968cd70746cbe46b100f79227c73e5f4608c4f3332cd3d478bad3aaa66b0f1851938094b270b0e68b81d154530241389d5d4a653c99c28a8a16145ad40e8a31b4e5d1d3a2d3b11a99330b3e4f605243c401f495af08add6d474c9979a548a1831d1c7eb20b839930c4110c6cfa9e792e1fdb5b4778b89b4bb084313a8bf4db4ca8bed765d176197ea01d5a9859edf547cb72340b5eed58104b6bed142ce58a8b8d1f6cce89e99271370f33cf52aa04366aeec17b9d7c0ddfe1a293437ab40a14da75b9b6ca5c8da114342ebefcf25f51d2901e23816caf0799121cec819631415c2d91f700dd0e009106194e90ec8243eb40162b321ecee51941aae39a9fa7bd893130ecadcaf0b11c01400a2ab8fcf15c3d0c40e14a148af6a563dd6a82a09f7a0a6d111cf7dc63c32b4e5d81defc8cda23e9461b1f516536691c7a3d16f400ed8ab974374e43ae881267c5c9db7c7f88315a97cb85255b0319180cd448640844383adf0bfc88d40e2f36f3e9eeb66972661afd25350c19b7445069701e1ae8d43abc13788d803a4519720c3253b47fdf79daa811129c508313859ae683cf17cd03a0b2a191f3f9c9131c5b7a4444fe56e71adeeb56c99fa9fafabcc115c5889a9185d2b2b42c18822061f643aad614e58f11fd2f529fb5b57470654ff0ff7bed1d534fa2f51441b81df20fabf013cdd730b43c15d2ae583c4665c0ae9b570f16bafd0dbc33e71e991d154530241389d5d4a653c99c28a8a16145ad40e8a31b4e5d1d3a2d3b11a9930f79227c73e5f4608c4f3332cd3d478bad3aaa66b0f1851938094b270b0e68b81763895f48b33a4b9507d294aa52e942475ec80fd94f3d9407a59cdb2bc8329d1b7aa41573bd9b38c5c2fea2047e990dd700012f8f14f4e79d6658d093676e8b03f73857890b449128160d6725e35caee7e240ae008dbda36997bcd67223adfd28972f550eee39a538df79954382937e269e16f99906e2c42b8ec87dd3fc644e2061f643aad614e58f11fd2f529fb5b57470654ff0ff7bed1d534fa2f51441b81df20fabf013cdd730b43c15d2ae583c4665c0ae9b570f16bafd0dbc33e71e991d154530241389d5d4a653c99c28a8a16145ad40e8a31b4e5d1d3a2d3b11a9930f79227c73e5f4608c4f3332cd3d478bad3aaa66b0f1851938094b270b0e68b806194e90ec8243eb40162b321ecee51941aae39a9fa7bd893130ecadcaf0b11c342ebefcf25f51d2901e23816caf0799121cec819631415c2d91f700dd0e009101400a2ab8fcf15c3d0c40e14a148af6a563dd6a82a09f7a0a6d111cf7dc63c32b4e5d81defc8cda23e9461b1f516536691c7a3d16f400ed8ab974374e43ae881b7aa41573bd9b38c5c2fea2047e990dd700012f8f14f4e79d6658d093676e8b1763895f48b33a4b9507d294aa52e942475ec80fd94f3d9407a59cdb2bc8329d03f73857890b449128160d6725e35caee7e240ae008dbda36997bcd67223adfd28972f550eee39a538df79954382937e269e16f99906e2c42b8ec87dd3fc644e278326830887b0c03b8bcb7cc04cffb98816f399390125fe7631bbc8689bcd073f01cb024de0bf7a1a9229499c7a9cf451181a5fa7443bad9280bf0715b60d9308d39803803d9e183955519334ed89b8f4181d8c0efd8c68449beeffcaa1e3e123bacfa917bbe01e27a03569347866741a683a1b8a9713ff508a96547b7e2e6a2b9044fdb430d7aa01d59a01d165ca7da2d660cdcfc8e9ef1607e87cdb1371df0b6b3e5b59d54486545eb27a2508b6779bf2acf1a8c3d29c651ae180d62fa117131c5b7a4444fe56e71adeeb56c99fa9fafabcc115c5889a9185d2b2b42c188219720c3253b47fdf79daa811129c508313859ae683cf17cd03a0b2a191f3f9c93de44dbf0417c02a8648521b63f19ad510a0f3c5769339508e07202475cfe4cf3b72fdad53cb385feb51e1ad65e9fa263670e6e8994b7f5beb3d59929770dead2efd54d6a17cb28951de40e7c5c606c05d9ef20ebb528f4ae2d74a0246e2220b3d9112d5f67ccbad0f174614a39fe96cd327fe94e78f0a384b7c6c3eff3df04100000000000000c8000000000000002d0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000000000000000000002053782b5983c3a3f41b87af8901b99235481c920bbe817dc8bb231466583d72b0000000000000000100000000000000010000000000000020953ad815a2963d664f0f467b59bd24c8e0fa06059f422523c2c9cc30e63622ef0000000000000001000000000000000000000000000000200ae4da6dd0ba3dba590cdc5b458241d43b05d834be20f06226ed69dfe3f4feff000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000002d0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000000000000000000203a54c6187a5d2d1d4fdfd7e6d830e00471dc777da45c92c200ff4be715489ec40000000000000001000000000000000100000000000000207bfd1e8b05c7d4db1ddb4abbc4ee4e2047ab1cea71eb4125c60d95dface639b80000000000000001000000000000000000000000000000202d5491c2b0a236a306dd587e3689fdac906752af96e9c92a11015dee02b355260000000000000001000000000000000000000000000000204c549c0a06011a5b940afdd9c949f7c54668b0449c63f74f64a3a00d1cc2a37800000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002d00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020763bf8fd5dbf7e26e508b1c752989720035769ec544fbfa3b5f634db87b0985c0000000000000001000000000000000100000000000000206ed7f1a6c47a44f2b7011b57308b53c7e5c8addfd07d945a9042a02777a833ae000000000000000100000000000000000000000000000020762ae3247aa8d6ed9a4528261d063545224ee7eb9564b86d08fa8e6b77499d24000000000000000100000000000000000000000000000020d880ce6b358a2b77330b5a0f9481e98d6528b9d0ad6b480d03501c04a93a647f00000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002d00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c8000000000000000600000000000000010000000000000000000000000000002020eab707c88c395501020600a1d50b1dc468718756fe508728371c0ffc40a7a2000000000000000100000000000000010000000000000020083bb08400cc00f8741cc5a61d5cd377218c13bf2ad0c114737eb149440507640000000000000001000000000000000000000000000000209f8adadaa16ce5cac8b348c7f9490ed007a31dec8fabfc34360ee0a7a7567dad0000000000000001000000000000000000000000000000205fd7cad6c08ee7d72dab067a907a496543f8562d1aff5010789f4fe3432c874200000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e1000000000000002d0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000000000000000000204ae7f953cf399a07a8ce89e8483573676dadd5736312e4cbbda64a605f0781d6000000000000000100000000000000010000000000000020bc50f558bf1c2801a35e0f3833a1192fa429fc028ec80669603d2c5da81d878f00000000000000010000000000000000000000000000002023ba7ff2b84d2058064e3dd64ff66a518516cb562d103469ed0615bb4c67d3f7000000000000000100000000000000000000000000000020896402e4d3f17887d11d2154920c6bff134c98834a80f987cc702496ef09c196000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000130000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020a51adb0dd5ff6139015f567454f916303ab3f39c830603b281712da0359980d000000000000000010000000000000000000000000000002077c77d7b993f04ae31fa6b6da7dff3c353004c11a049302a478e5dac04d508cf00000000000000010000000000000001000000000000002038c257c4acc7ae148c5c9b4409c82130df8554a30c1e722962697197980c56fb000000000000000100000000000000010000000000000020f158609c6b12d3609bdf1c7797edb538f985fe8ac4171f066b1d7b9c43c7bc3b0000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000130000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020e4c375b6de0dcd2144dc015638119fac2dff51212295bd568d0f822953dbe353000000000000000100000000000000000000000000000020410a9806148029c00be1c6575ce39cab980947f62d7b8c905215b520e160aa17000000000000000100000000000000010000000000000020d42e2ebd255e4349a7739a43dd3c719944636248abdb0bced6a610501e96e1b50000000000000001000000000000000100000000000000204dffb3cd723081a5601c700b71267e003c6301f69868c0143c1c7fb7f95e7282000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001300000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020d5fd1e9ac010c629f9995228fd1ce86410206a754ce5277b31e14511bc4678d00000000000000001000000000000000000000000000000200d8eb352cc26ae30ac8e735bd07c4afc629f8b935a6281b4a5d795206646f134000000000000000100000000000000010000000000000020fe4fd380a7b985c22fbf7e428d0522af491d32b3707fdee9600cc7816056f1200000000000000001000000000000000100000000000000205d9455d420eacea118c8dd606eeb03972280069211e33523e74b32b8a0a96ea70000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001300000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000000000000000000208f172a29c3f7a4928e95a442bc56edefb65be8dfadcec91da6c77898dd047f300000000000000001000000000000000000000000000000208ca5f4e39ff8097b3311dc5c6b8ee0f25e73013b54075212e77ec6bbe41ea8e5000000000000000100000000000000010000000000000020acbb53eff19327fdfe068637b56e56cf2ed3ea11c5ac335cac2a4c9e1b4ba555000000000000000100000000000000010000000000000020770adc9f5a476741bb8349e40e9edfd96156aacd1c6d9e3a586653b654b6aa5b000000000000000100000000000000000000000000000020f66cbef6ba027ee51a683e2c6bfc0ba5a9c25509bcbd67fc8c6ed57fed75d4ad000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000130000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020043e05299a97cdfdad83e9c096b1f11c65ec4a2b99d554ba0940abdbd2e5842f0000000000000001000000000000000000000000000000201cc2cb225f6ceb4dc0af62c3e4cdbff8b47664cb0876a05b70204156dc6ba240000000000000000100000000000000010000000000000020113e52f83563f3c9a8ca73087daed63db6e020f9b1908dae270f2d864860470b0000000000000001000000000000000100000000000000207558d367d7cb8046d18c333db9b72e09bb6459368f028b50b23b205b8ad03c430000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000140000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000201db39b2b58f01b4266a2f3a089f4de0cf8c9d9cc1a52eaba7802162bba95ead2000000000000000100000000000000010000000000000020934ab4c6e53dcf48d451f6ed7e4af86b758dd8dba6533f4175725e2e5845afc500000000000000010000000000000000000000000000002026fce9aa21f1ef53b559859e81595b7ea9f4a7505a8a6c162b86994251034ce3000000000000000100000000000000010000000000000020f158609c6b12d3609bdf1c7797edb538f985fe8ac4171f066b1d7b9c43c7bc3b0000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000140000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020f02c12c9e1987155b3dfab880a6c3fd179a7c43b36e4b5ef01e1660bacefc47f0000000000000001000000000000000100000000000000202fdbde1dac25caf98829f59666c2f0534d2832bdb689d8ad96cbb9a3dbd4d45f0000000000000001000000000000000000000000000000205194f6462193600d656db86b96325bf516174c3105f29544d28f3b649cc7fa4c0000000000000001000000000000000100000000000000204dffb3cd723081a5601c700b71267e003c6301f69868c0143c1c7fb7f95e7282000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001400000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb626512000000000000000600000000000000010000000000000001000000000000002060c1a1b58116c922c95ebd362b2aca38239b074ba70838c441c7e00fed0a95e9000000000000000100000000000000010000000000000020114537cddbda837705b4879cd66f5f4d256930dfee3834780cb134d8960e1304000000000000000100000000000000000000000000000020b4e0bb7d9649c1fbb4614e3f293bccd257330f04e0c3c1c27c3a9a4dcdec30130000000000000001000000000000000100000000000000205d9455d420eacea118c8dd606eeb03972280069211e33523e74b32b8a0a96ea70000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001400000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000100000000000000203f124e95b7dec0ff8f7a86ae1aaff6955eea438f36cae6f84a09579c75e2134700000000000000010000000000000001000000000000002011099e538c8737a24d756c6724727c5da6d771131318d85b8986cd3bc79b592b000000000000000100000000000000000000000000000020c28743b9fb456f5dab01de38dce8d1e72a393e786e47b640f11ef5dac00847bb000000000000000100000000000000010000000000000020770adc9f5a476741bb8349e40e9edfd96156aacd1c6d9e3a586653b654b6aa5b000000000000000100000000000000000000000000000020f66cbef6ba027ee51a683e2c6bfc0ba5a9c25509bcbd67fc8c6ed57fed75d4ad000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000140000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020c8bfe267f4915fec41dd5cdc2991233c6867d80f482a2f5e54923aa7e593286d000000000000000100000000000000010000000000000020a8ed275fa0c7c748c26664fcd0da42650d5f6d40a8b66187b846df67bdc2a97f000000000000000100000000000000000000000000000020c9fa3b6551025a0b0a3ab22e52aa56603723150da92dcef931270f46982c5f720000000000000001000000000000000100000000000000207558d367d7cb8046d18c333db9b72e09bb6459368f028b50b23b205b8ad03c430000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000190000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020f878c3196a2404bcd842121562576c7d651583fe9d63c1aaa1b869d205e345230000000000000001000000000000000100000000000000204536f7493e46af7ae74c52f21d137b781ab41b8d1503fa4f2492f216257d0e4700000000000000010000000000000001000000000000002041b447898ab19c91b1dbde93ea50c40354c2647926dd2df1d267edeeb4fa5b900000000000000001000000000000000000000000000000207a1424d413417eb28a018fd1d76958181366ee57c4d59ae0034a29ddbb1d2b590000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000190000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020c4c0ee0f8712b96d147ac05da64c1b99a740846e9a50722ac61b17649b751bff0000000000000001000000000000000100000000000000202aede3564ebfa30e74b8e2011d40a14f2a016492169b85c1f9415a281dbc49f7000000000000000100000000000000010000000000000020376d244ad38898e5a2d4a5d1596faa89190bb6be0021523a316dc31147bdabe8000000000000000100000000000000000000000000000020938375cf40ac56222ab4d00edc1add4f0c4d45658ef352f9c39d534a9202dcf7000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001900000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020c7d221511f5b0778a109fa2e3c1c884ec175c20abd2d834b083b1c7c07e139ce0000000000000001000000000000000100000000000000200b06c28f51eebefba1b90a051ee1ef7a91769619ad2533abf955ef50586e382c0000000000000001000000000000000100000000000000202b1f2b796b4b368a82c2fd19089c52aa941915742b1944326d6efc9a8bedb715000000000000000100000000000000000000000000000020a084e70b3f9ebf137fa0b89422463d8a968230d1e0fbcf139db6e018b78315170000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001900000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c8000000000000000600000000000000010000000000000000000000000000002059065e50b3aaadc6ce1d277772ae8d3d94e018bc51e3ab809332afeafa4587c40000000000000001000000000000000100000000000000207f3073022c338edf973f6c62336af47d02e7ee8395bcd48e00dd7c21c2ed6eef00000000000000010000000000000001000000000000002013f4d1041297765ba5721ab41dc03763741f894140a3affa1cc437f3ed9269ad000000000000000100000000000000000000000000000020ce498e000ddc8371c645a265d4b98546295ae06beeb91fa03885ec7c34dce7f9000000000000000100000000000000000000000000000020f66cbef6ba027ee51a683e2c6bfc0ba5a9c25509bcbd67fc8c6ed57fed75d4ad000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000190000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020dfaa7a61177963231160e33a42fb89948d6fa2b6cda193578f1607317576bd7900000000000000010000000000000001000000000000002004230d91f96402c0e2b32b8591b01d0bf15a0337d50562837b09d42f470657ea000000000000000100000000000000010000000000000020b669e28a8c8f93a11d50fc751d11cbd5c19eef7f4f73ab6849b9e5fb805ced8b0000000000000001000000000000000000000000000000205ef7704fa3778b449f726e5d0a98cf0942526fc336765751838fd6cbb761fb270000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb81659000000000000003e0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000208910319c4704675fb2e689fe85e65059409a009e9dc7f46029baed30c3f6050100000000000000010000000000000000000000000000002069a16d2b56ba3538a063eb8027cc1a4e3053ce82d49b49dbcb4419a7943fcccd0000000000000001000000000000000000000000000000206d638b48c620681d9ca1f3ca0b9269a4c587a473d6a7f7a9b87cd38c6b341a88000000000000000100000000000000000000000000000020228ad46578c60a8ae293c5203eb65e05045bb3651cc7f9dca5fdd52a9c021f9f000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000003e0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020191e3e906b69de629398f388037428d655068fb4f7201589352159a5d83ed8a5000000000000000100000000000000000000000000000020eef65a3f592189d4459cd38a7fdc20e3c6e4585e0d3713da14da36b4b547a0a200000000000000010000000000000000000000000000002066f2ddc800c59423dc3e6cb06ec895471d3ffafc6e3140cc34d397e66f29e633000000000000000100000000000000000000000000000020d3fe0ac3f0592a168395476738f2d379d0581dd02807271399e479432d094ace000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003e00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000010000000000000020717eb92b238367aa5b8d57e049cebd3624fa0fcbe6b53e3750f74c3c5edee9e20000000000000001000000000000000000000000000000201c170c2391b60742d4e50f166570297dd51524c3e9dfdde57583dbd0d59b98f0000000000000000100000000000000000000000000000020a72b7e194afd50ecaf1e33d2066f71486bac78d487b7fa0426a92e4a9ea310c9000000000000000100000000000000000000000000000020762aa6b8eaa622a60e5d82075304926867e1bfd72e6c9bc93d7ed5c083f0de9d00000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003e00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000100000000000000208537362dbc6b3aa76cf88ec42302f0a2cfddc88e92a0c151679ec1aa612782c4000000000000000100000000000000000000000000000020cdcf86385ef53b8ce97ccc6608b4101d620d5e47c63dacb968ff5e5a1512061d0000000000000001000000000000000000000000000000206889701554ee61bb802ca84af6486ce5e81ccd8180328c57ab9d2341a8808cc900000000000000010000000000000000000000000000002000a85bf2f2d421229c03bce75acc24a6f0df564cb379ef0e908c83449ac1caf40000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e1000000000000003e0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000208c22854966b4417b9c7cb65b4638e0cf5ff140c478d91859d71f24981c261bcd000000000000000100000000000000000000000000000020866bd428371641ca6284b28aa6547219a585a30105d51b7f4811297b39fc8a97000000000000000100000000000000000000000000000020a85d79547366d8e08f2cd889f73768075efa9a82bdcfd8eca2a0d03ec1c600af000000000000000100000000000000000000000000000020e275f0cac8a965b7c2d52bccf2fc2a08ba897eccce8ac56d94090bd934b9477a0000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000240000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020c24fc0a3e994aa4053143723d1ff953730e09d80308264f57f5e25286c7dcad00000000000000001000000000000000100000000000000204f58496d9785dbfafadd8f41e3167831200b5d8065731cf35b12e0f683eb6aba0000000000000001000000000000000000000000000000204cb7b4fa816710180675ddbc955531f8a709d427faf5200cdc6737874e060a55000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000240000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020a92607495561c9eeccd26d9cc9dfab304f5bdec362795340e1d8d93b162ff7f5000000000000000100000000000000010000000000000020056c9a4c4349cd5028c19714d82d2521d603233c99689f9551773f4c5a1bb87400000000000000010000000000000000000000000000002037a9c624bdb25b1ee261b13411e9d6acc0d0e8c738496cff14dc43abe65c9d1f000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002400000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000204be0b5c554d14ed3ecb1a4698c54f322ec73fcaf89c1a0d0f2287a93c2b4d62b0000000000000001000000000000000100000000000000203decfa57715a83c44aa9af101d28b91339338f8855c0070ab1a2c91f7f429ec30000000000000001000000000000000000000000000000205d6c3e37441823be85bdf046e1379fc5587812c68dc08d8750f2f6bd76bf08a100000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002400000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020b9bcab614083e91d90644c8bf147843d720ff77d9f63f4ec3cf28e93fd482b18000000000000000100000000000000010000000000000020c197f4a8824867039691d253f3aabc0aeadbd548577f61e901b469ba8e81b348000000000000000100000000000000000000000000000020580e91949e50afae5b838c9689875cb0378f05c69de9eb4bbdfa87dc8eff62000000000000000001000000000000000100000000000000209576be5e5da6b2eb368bfdcbab0970717630f25877a6b9664c345d452e1514d800000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000240000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000201dd42fc16aa12a31fa90168725c897d861f7e36b8c27441380a55b1025146bcc000000000000000100000000000000010000000000000020a80602202c5ebf9b0347c9106ef91bf2c358dd05edffa7aa90f9b9bd47fd10500000000000000001000000000000000000000000000000207f46e4b2eb51c53f78fb1f6b5310d84183eb4d3898e8ddf3b3eb940fc2ad8f4400000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c00000000000000003f0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020ae475446506dfaa59968c26931bee5eb87090ae33a057924eaef7eefd03110ad00000000000000010000000000000000000000000000002069a16d2b56ba3538a063eb8027cc1a4e3053ce82d49b49dbcb4419a7943fcccd0000000000000001000000000000000000000000000000206d638b48c620681d9ca1f3ca0b9269a4c587a473d6a7f7a9b87cd38c6b341a88000000000000000100000000000000000000000000000020228ad46578c60a8ae293c5203eb65e05045bb3651cc7f9dca5fdd52a9c021f9f000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000003f0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020c4446bba8c1b7fb429c7566fe2eb83cf8fc01f9962ea02859504fffbc0ccdb49000000000000000100000000000000000000000000000020eef65a3f592189d4459cd38a7fdc20e3c6e4585e0d3713da14da36b4b547a0a200000000000000010000000000000000000000000000002066f2ddc800c59423dc3e6cb06ec895471d3ffafc6e3140cc34d397e66f29e633000000000000000100000000000000000000000000000020d3fe0ac3f0592a168395476738f2d379d0581dd02807271399e479432d094ace000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003f00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020b6ca4da84f02aad90c581176daa3da05852b495655548ec26d1b19f76b322d320000000000000001000000000000000000000000000000201c170c2391b60742d4e50f166570297dd51524c3e9dfdde57583dbd0d59b98f0000000000000000100000000000000000000000000000020a72b7e194afd50ecaf1e33d2066f71486bac78d487b7fa0426a92e4a9ea310c9000000000000000100000000000000000000000000000020762aa6b8eaa622a60e5d82075304926867e1bfd72e6c9bc93d7ed5c083f0de9d00000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003f00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000000000000000000020ae7619fa0fc3e148815f5634731353e207a7c6409708ccece355065ef6880b09000000000000000100000000000000000000000000000020cdcf86385ef53b8ce97ccc6608b4101d620d5e47c63dacb968ff5e5a1512061d0000000000000001000000000000000000000000000000206889701554ee61bb802ca84af6486ce5e81ccd8180328c57ab9d2341a8808cc900000000000000010000000000000000000000000000002000a85bf2f2d421229c03bce75acc24a6f0df564cb379ef0e908c83449ac1caf40000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e1000000000000003f0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000000000000000000202df5948fb78d8e6f2f92a2ea101910a5ce745492735b256acd41c49158f2409c000000000000000100000000000000000000000000000020866bd428371641ca6284b28aa6547219a585a30105d51b7f4811297b39fc8a97000000000000000100000000000000000000000000000020a85d79547366d8e08f2cd889f73768075efa9a82bdcfd8eca2a0d03ec1c600af000000000000000100000000000000000000000000000020e275f0cac8a965b7c2d52bccf2fc2a08ba897eccce8ac56d94090bd934b9477a0000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000340000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020a51a1dc62392f295b15fe1655ecfe34f6022071edf8acb2dd4f0b8ebef99ec59000000000000000100000000000000010000000000000020c362cab2e6c4dc6ea82bb6f4ded48e2f8eb7e24ef0fa0baea7e88c5951f51ecf000000000000000100000000000000000000000000000020cacc7d788bbdb1c4d5dbf47f8afd9ed9b975d2203ba1769a80caa833f3fbb946000000000000000100000000000000010000000000000020f006cf8352bbf180ccb81999dec2d0377abf32ec1a119242758d07bf00181499000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000340000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000201a65187107853d80e0c2a9df94b775ee2882d9d528d05bf2d0dafca511d3ed2b0000000000000001000000000000000100000000000000204f8481d122e0655a5260d7d5ac27ab8f58be0e674599e596783b978e063f1e4d00000000000000010000000000000000000000000000002073a7127e76a6c5c3b45234b5814ccbf96b9d757a279114bbd33a663bd26d006e0000000000000001000000000000000100000000000000208d5b321bbfd951f9cb7659d22f534c96ff102f4c76a497617e5abb9dfa82d388000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003400000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000209725e35ee4c6df58b617aee3329c373f0e489a9026ce96fa222ea76aa2ac5e09000000000000000100000000000000010000000000000020121197ec56ab41beb7a2f051161dd268ccd5ab29e7d0b6fef8b7e1c7c912753d000000000000000100000000000000000000000000000020f4ad74e02cc77efb94d4fc24ec0d3cf9f818ea30d8cf64bbb281e90b63c46a2e00000000000000010000000000000001000000000000002077140c9519235b46e9281299155f5f67e417ff114e7ade36dfc35a5d9cd2e2d700000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003400000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c8000000000000000600000000000000010000000000000001000000000000002016b211f8e1c24460c33f79c50d34fdc5f21b4974075fefbf7e19d3ef3dd925d2000000000000000100000000000000010000000000000020d6ae3741cdfc33d16daa119fa69659d1edfd428dd8fa17d9b0e9cbe608e111e00000000000000001000000000000000000000000000000202a006a9ce5990c918a9042f52712f1deb0b3840b72b18b347088583ab1f5f8d300000000000000010000000000000001000000000000002048e1d107862aaa17d2844c76f1581f63cd00be4647fb6249784c8e84d204a7d30000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000340000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020bd3e2ffe3b5fc465e05ef39b4f6c0d1a48247d10a56154253ee5219438e761f6000000000000000100000000000000010000000000000020423d33b2be9113539696ac1ed9a134a1d7a1b4932f513b45a8fe1547e6621966000000000000000100000000000000000000000000000020f8cfa931b1b7944fb737694c4d6fc033dc405917f38330a742d6f02d503c8a1b00000000000000010000000000000001000000000000002072bbfd71e002ce04de2fac87c41cdb38dc917d8c5386b1ebdd6e02865da280340000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000090000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000208e04b4c723612b4d1e333accc4e24a04d69c173578faf07c8d2b973c0be9fb4100000000000000010000000000000001000000000000002014aa8e29f77d6a5fb881904df608256632c6604fbfb5192158e0932c0baf514500000000000000010000000000000001000000000000002093c99af014a3514bdcc84cdf0e72d42f20038a64dcba4071efdcce4cf6a76949000000000000000100000000000000000000000000000020a07353c5029eac2f5fb14b7aaa839b9ff2b01dd6feeb51c341820462ab766306000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000090000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000000000000000000201e1426bc22e09b48e2f3902ae15397de929e0b50905519518b2ffd6ff87b0f8d000000000000000100000000000000010000000000000020ff5c9eed6e4075d1dc3dad1312c9f0e4bcc23270345f8eea8c11a5b3619b24aa000000000000000100000000000000010000000000000020e23783733f2d245e0738ed8503ab8c6aef3aa526888e6b8dc670bfe0e224b8ff000000000000000100000000000000000000000000000020a45ee5473875579efd498bb9c2b6715752587f3d8b2592b454ecfaa7a4333af7000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000900000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb626512000000000000000600000000000000010000000000000000000000000000002009e66b718cc1244864884c2e809453b63f5bdb1357b3b4cc341fe71f437dca2e00000000000000010000000000000001000000000000002025a5c0035306c82abd392465404dd2a5af6ad78f6c662e811fb28ddd99a85857000000000000000100000000000000010000000000000020f0fde6ec22a87dce3563e4a3872da6fb65e744b1d395bcb2f83911d9ac21f1af00000000000000010000000000000000000000000000002017851b1e9a70cbcc32eb47f7ecfae668e5855348fa541f9cd9cc78455c2f52ed00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000900000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000000000000000000203366300a5e555c582038bc0af48618d1c44ec5457efee567d5c266b9d86372ee000000000000000100000000000000010000000000000020f7920379a56fc6ea52b03411a80201764cd5c9b889cce60510d3d289564f02a1000000000000000100000000000000010000000000000020b9f47dcff780b5d8194c00a89264a3eb8f7603479d71eafc29a9074cf428d552000000000000000100000000000000000000000000000020dab612d00eddc0f70596df141a7d854a89a2e881b62296a42c239a68553568e5000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000090000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020e6608d6b21e9b4d6fdacc91ba204748c8cdadde68638156e633ef52ca68d58a6000000000000000100000000000000010000000000000020f9459a5f7f85273cda341000cf6866270e90827995d041cbba1ac42de920723c00000000000000010000000000000001000000000000002045bb9d506f74a19123d41a442d1de0fdfbaca183dfb2af0cc5027621a991b2b2000000000000000100000000000000000000000000000020dd7d0f921f70b1c400e2053b21a89931a0d729e3164966f8cdf0a44bdd836801000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000130000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020a51adb0dd5ff6139015f567454f916303ab3f39c830603b281712da0359980d000000000000000010000000000000000000000000000002077c77d7b993f04ae31fa6b6da7dff3c353004c11a049302a478e5dac04d508cf00000000000000010000000000000001000000000000002038c257c4acc7ae148c5c9b4409c82130df8554a30c1e722962697197980c56fb000000000000000100000000000000010000000000000020f158609c6b12d3609bdf1c7797edb538f985fe8ac4171f066b1d7b9c43c7bc3b0000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000130000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020e4c375b6de0dcd2144dc015638119fac2dff51212295bd568d0f822953dbe353000000000000000100000000000000000000000000000020410a9806148029c00be1c6575ce39cab980947f62d7b8c905215b520e160aa17000000000000000100000000000000010000000000000020d42e2ebd255e4349a7739a43dd3c719944636248abdb0bced6a610501e96e1b50000000000000001000000000000000100000000000000204dffb3cd723081a5601c700b71267e003c6301f69868c0143c1c7fb7f95e7282000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001300000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020d5fd1e9ac010c629f9995228fd1ce86410206a754ce5277b31e14511bc4678d00000000000000001000000000000000000000000000000200d8eb352cc26ae30ac8e735bd07c4afc629f8b935a6281b4a5d795206646f134000000000000000100000000000000010000000000000020fe4fd380a7b985c22fbf7e428d0522af491d32b3707fdee9600cc7816056f1200000000000000001000000000000000100000000000000205d9455d420eacea118c8dd606eeb03972280069211e33523e74b32b8a0a96ea70000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001300000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000000000000000000208f172a29c3f7a4928e95a442bc56edefb65be8dfadcec91da6c77898dd047f300000000000000001000000000000000000000000000000208ca5f4e39ff8097b3311dc5c6b8ee0f25e73013b54075212e77ec6bbe41ea8e5000000000000000100000000000000010000000000000020acbb53eff19327fdfe068637b56e56cf2ed3ea11c5ac335cac2a4c9e1b4ba555000000000000000100000000000000010000000000000020770adc9f5a476741bb8349e40e9edfd96156aacd1c6d9e3a586653b654b6aa5b000000000000000100000000000000000000000000000020f66cbef6ba027ee51a683e2c6bfc0ba5a9c25509bcbd67fc8c6ed57fed75d4ad000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000130000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020043e05299a97cdfdad83e9c096b1f11c65ec4a2b99d554ba0940abdbd2e5842f0000000000000001000000000000000000000000000000201cc2cb225f6ceb4dc0af62c3e4cdbff8b47664cb0876a05b70204156dc6ba240000000000000000100000000000000010000000000000020113e52f83563f3c9a8ca73087daed63db6e020f9b1908dae270f2d864860470b0000000000000001000000000000000100000000000000207558d367d7cb8046d18c333db9b72e09bb6459368f028b50b23b205b8ad03c430000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000280000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000203fc4f8175b9c92350566386ba4636deeb2ec6d4187f6d0d3208c3db577ee4c1a000000000000000100000000000000010000000000000020c600a084e5647679dce1e61667cd049aa01cd0b29e54cfef6b28350be80914810000000000000001000000000000000100000000000000200ebe305ff48b2729427a6d3d9c605f9d8749d8a7f371875c0845a2841f05d610000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000280000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020c6f1cc07680dcd75a8f53c63f310a6d897c61d167e7cf74e0c15cd99fc146e0f0000000000000001000000000000000100000000000000209fb59ccf252a0568bd152caf34d3269d3a2b9a39857511b0bd86c4af33ce8dee0000000000000001000000000000000100000000000000201cef524c4bbd4352e55a822f72b50f13a0d37a3b4bd840b09474319d06e88b350000000000000001000000000000000000000000000000204c549c0a06011a5b940afdd9c949f7c54668b0449c63f74f64a3a00d1cc2a37800000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002800000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000200669822d3814118c5bf694c1ff7d0ed5355d049614d73f0cd41e47c2ba90a4ec000000000000000100000000000000010000000000000020e967db82093a838375e88444bf31c8b9602b5b9abee7d1014d9faa70e9e2ee07000000000000000100000000000000010000000000000020b65635b650f7751f683d4fdd6f77a7bbbf3914c331798f8c0a5e9b5bdd294ca9000000000000000100000000000000000000000000000020d880ce6b358a2b77330b5a0f9481e98d6528b9d0ad6b480d03501c04a93a647f00000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002800000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020e7576b6112be4e002c520903f76fa89a98aead2ed95573d928ee6c27f6ae8b0b000000000000000100000000000000010000000000000020c126701ba56f4a93107ba6cf51214a089bf26114a1c268096b5827a6c692eb22000000000000000100000000000000010000000000000020f9261c602c28cce1a3d266cbce50544b70ad2373d928eb6befd894a8ffb129540000000000000001000000000000000000000000000000205fd7cad6c08ee7d72dab067a907a496543f8562d1aff5010789f4fe3432c874200000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000280000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d000000000000000600000000000000010000000000000001000000000000002029df8d814e6ad33e7598df99f56ae5a9d1e95069c3ba023194079a911304b748000000000000000100000000000000010000000000000020eb547fc519df191930772af4c7f9a223f448ea9b096d6bb0615a7ccf53da66a3000000000000000100000000000000010000000000000020a9fa262c6bfaa50ee132d4609ab35f935bfd510e97d33e942458c27041a0083a000000000000000100000000000000000000000000000020896402e4d3f17887d11d2154920c6bff134c98834a80f987cc702496ef09c196000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000270000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020d2177cff3370731150de6ddcf6c893f5aec7252d0b7bd68caa69cf0af92a8edb000000000000000100000000000000000000000000000020ea0130bd476a2e99ed6edb948b6cb09cfecc8dd59caba4fc389609df359d15860000000000000001000000000000000000000000000000204cb7b4fa816710180675ddbc955531f8a709d427faf5200cdc6737874e060a55000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000270000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020b48dc2c77a67d852a5a1c89e57e8fa3cd275bd8e13e6fad63330fc34b32b72980000000000000001000000000000000000000000000000201e9235801c669c50c2b370f79c4c01eedac2bd811e7882f3c3ae07b72c66516100000000000000010000000000000000000000000000002037a9c624bdb25b1ee261b13411e9d6acc0d0e8c738496cff14dc43abe65c9d1f000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002700000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000208e708d32664cf9e3acd55714e1ebba48f1e2bbafa51332d5569992c483fc341e000000000000000100000000000000000000000000000020437286cce94ee481fb2d34b75a26a24d22661f691749677c792af071c156ccba0000000000000001000000000000000000000000000000205d6c3e37441823be85bdf046e1379fc5587812c68dc08d8750f2f6bd76bf08a100000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002700000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000000000000000000020c9082bcf2f61b4b629cb36f0b379306e38d104e61266b6364fb6540637220c8b0000000000000001000000000000000000000000000000202450d2ddcb8c5a42f4f5bd485d49bb34cecca473cf8cd0e02b10a0db351a7619000000000000000100000000000000000000000000000020580e91949e50afae5b838c9689875cb0378f05c69de9eb4bbdfa87dc8eff62000000000000000001000000000000000100000000000000209576be5e5da6b2eb368bfdcbab0970717630f25877a6b9664c345d452e1514d800000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000270000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000000000000000000200d223b5973ad045189a955bfd2f2dee5836de27b52beef52524919504211e9f40000000000000001000000000000000000000000000000207fc92ac8e569eed4ff8e3c4f82dd4cde5b6e4918cc3e7ab8884fb26fd7b0080e0000000000000001000000000000000000000000000000207f46e4b2eb51c53f78fb1f6b5310d84183eb4d3898e8ddf3b3eb940fc2ad8f4400000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c00000000000000001e0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000205b22e826fa41eab497f0d44485ed30b89e70dc3b8991721ecacea7676a1160ba000000000000000100000000000000000000000000000020a99b7e2901520fe9aa438e0b1d9ff1d42abd1e4774fe50a7af9abfdd5aeb49f0000000000000000100000000000000000000000000000020cd05d024922075f0d2191dff6b6b8977913542096c687b1aa6a6880a30f4f1780000000000000001000000000000000000000000000000207a1424d413417eb28a018fd1d76958181366ee57c4d59ae0034a29ddbb1d2b590000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000001e0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000204770899cd3e2cc4095956d615386c336d78390d82891791393ec7efd021b50d20000000000000001000000000000000000000000000000202a2de0868c528815ae4a83f77bed5e4618dd7631755e6f37a518ff031e998dfa000000000000000100000000000000000000000000000020e216681d6f38da8409d5c77334f0f51de756720aaa028880c59d6a832095ad4f000000000000000100000000000000000000000000000020938375cf40ac56222ab4d00edc1add4f0c4d45658ef352f9c39d534a9202dcf7000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001e00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb626512000000000000000600000000000000010000000000000001000000000000002000ffd50a0e09d1a2c7e1ba81e46e042ec77aef694fa7378b10eb2ced2513005b0000000000000001000000000000000000000000000000208aa088e796768de7229e31b34fe788da7fe2fdb8df344b029935b9d2d8dbdf2100000000000000010000000000000000000000000000002053b3233efca5252e2055e75028fefee3391d25eb106840c102b53e90d3d1fdf6000000000000000100000000000000000000000000000020a084e70b3f9ebf137fa0b89422463d8a968230d1e0fbcf139db6e018b78315170000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001e00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020952f485a7107b171858c16e5666bd6fdd98f452291ce9b99a78e8352889a14d2000000000000000100000000000000000000000000000020fe99ab1dcd065f673dbed84d1d54217d2ff636b0b7019ea641b3ceafae0b69d4000000000000000100000000000000000000000000000020b7d7c4fcec9b03c74f701ed9b4eedf7ec3386233c472d6ae64f7cb0ca1f7a448000000000000000100000000000000000000000000000020ce498e000ddc8371c645a265d4b98546295ae06beeb91fa03885ec7c34dce7f9000000000000000100000000000000000000000000000020f66cbef6ba027ee51a683e2c6bfc0ba5a9c25509bcbd67fc8c6ed57fed75d4ad000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e000000000000001e0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000204458dc689a3c9b3f3ea909e7f56b0abdac7a2bbad18f0649bcf794edf6e4ed8d0000000000000001000000000000000000000000000000208404c4d1b9523cf7c9a5ef7c4369fa8ae85b8450e69f5170f221214e928df1140000000000000001000000000000000000000000000000207fe3562c7d01ca88eef4c66c817964ae9239a6df889ab475368bf430de96cdb20000000000000001000000000000000000000000000000205ef7704fa3778b449f726e5d0a98cf0942526fc336765751838fd6cbb761fb270000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000390000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020f5f51df4455ffd83739dfaccef923a70df7a7cf5ea75b0be8ac453ab1ea59cd8000000000000000100000000000000010000000000000020314e9a848ea1d25911258d74b19f092dd444faf4da08b8c00a4f09adb9d4c623000000000000000100000000000000010000000000000020f8aa5e6a5b89d4a39d02bfe4f6c3c38deda3ec6df5ade3707863ea2453f03b73000000000000000100000000000000000000000000000020228ad46578c60a8ae293c5203eb65e05045bb3651cc7f9dca5fdd52a9c021f9f000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000390000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020c0be60ecb9302afcaf7e0974c2439749f493468a83262da26a96f1cc4c55cc73000000000000000100000000000000010000000000000020d409436a38cce955294f3fbb27f4d65e7100e98f4d77022a741a6e99195a3afd0000000000000001000000000000000100000000000000206d13fd38b84ca4e30cf7ae1f472014bbebd3d7449bae674ad6a36fae582015a8000000000000000100000000000000000000000000000020d3fe0ac3f0592a168395476738f2d379d0581dd02807271399e479432d094ace000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003900000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000205ac05e975b42062c31f9ed21b3fe8a6ddc0b04176c23fbf2924ac02c9a0be9e70000000000000001000000000000000100000000000000206140589f65135d68e263ae292fc0c763647ece71ba96e1bb1950b05093e479eb000000000000000100000000000000010000000000000020b6e03aa8283e3b21b7e5347673309cfecce4aa3d8d546f0c5e5fbac4333ddb46000000000000000100000000000000000000000000000020762aa6b8eaa622a60e5d82075304926867e1bfd72e6c9bc93d7ed5c083f0de9d00000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003900000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000000000000000000020a1d50e36dcacbeab3151583c0a0de6fcf3b158bca938c33d17bc65105aa4836e00000000000000010000000000000001000000000000002025e3c91b984175d866c1a7a0ab532b735a2322b380d5176f3f2898cdf3415d9f000000000000000100000000000000010000000000000020eb8e2038c836a712421ce8263fd03d719840bae9cbc574a061e776d5ef3f390800000000000000010000000000000000000000000000002000a85bf2f2d421229c03bce75acc24a6f0df564cb379ef0e908c83449ac1caf40000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000390000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020741795e4cfecca0b0fcd745a3aa59aa1b3c46d8f74bb8a06128fbf82dc802df80000000000000001000000000000000100000000000000204759d348b50c669646f5f52d2f8caba0a0a3c3f6941e016904bddc6b141451910000000000000001000000000000000100000000000000200e45b6073a5229fe074383c2f531128eda5ffeefe8fde89eb48d7aa45a77a0f5000000000000000100000000000000000000000000000020e275f0cac8a965b7c2d52bccf2fc2a08ba897eccce8ac56d94090bd934b9477a0000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000250000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000000000000000000002078ae3188ae8a7fa5036c69bcc6f6b6ac2a737d68f221d24a2b9be2c403a31f890000000000000001000000000000000100000000000000204f58496d9785dbfafadd8f41e3167831200b5d8065731cf35b12e0f683eb6aba0000000000000001000000000000000000000000000000204cb7b4fa816710180675ddbc955531f8a709d427faf5200cdc6737874e060a55000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000250000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e000000000000000600000000000000010000000000000000000000000000002018adf62c16c49037a919028f54b64de85326f5b2dd64be267a413db441bcecda000000000000000100000000000000010000000000000020056c9a4c4349cd5028c19714d82d2521d603233c99689f9551773f4c5a1bb87400000000000000010000000000000000000000000000002037a9c624bdb25b1ee261b13411e9d6acc0d0e8c738496cff14dc43abe65c9d1f000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002500000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000207dc81ce49e1b1df2f8fcc08b7356fc70192a5f60687461cb3c541bcf686e5a840000000000000001000000000000000100000000000000203decfa57715a83c44aa9af101d28b91339338f8855c0070ab1a2c91f7f429ec30000000000000001000000000000000000000000000000205d6c3e37441823be85bdf046e1379fc5587812c68dc08d8750f2f6bd76bf08a100000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002500000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000000000000000000020fc14ea81cdf469b2c3b971cb19a66445537058a9a44ee4d0d824b690404cc86e000000000000000100000000000000010000000000000020c197f4a8824867039691d253f3aabc0aeadbd548577f61e901b469ba8e81b348000000000000000100000000000000000000000000000020580e91949e50afae5b838c9689875cb0378f05c69de9eb4bbdfa87dc8eff62000000000000000001000000000000000100000000000000209576be5e5da6b2eb368bfdcbab0970717630f25877a6b9664c345d452e1514d800000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000250000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000000000000000000207f8f01e6b3f5a17ac295fe537986b11cff2ce290e66da7d3c4bfcf9f734bab14000000000000000100000000000000010000000000000020a80602202c5ebf9b0347c9106ef91bf2c358dd05edffa7aa90f9b9bd47fd10500000000000000001000000000000000000000000000000207f46e4b2eb51c53f78fb1f6b5310d84183eb4d3898e8ddf3b3eb940fc2ad8f4400000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c00000000000000002a0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000203da14c802e0b1caa6a7fdb57b49c71543b810414a29c1963edc1c2674d7504e500000000000000010000000000000000000000000000002064f12c9571923baec5fcc14481a7dfea3e02c1bfc8c062111edc34018395b7160000000000000001000000000000000100000000000000200ebe305ff48b2729427a6d3d9c605f9d8749d8a7f371875c0845a2841f05d610000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000002a0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000204effdd1c1b9fdb557b5e9669f69a5e62c7a414a05d5be0861dac7d232fc4d081000000000000000100000000000000000000000000000020372b730b0fbf5e9e53c6d82f9ea174dfa93e2b45f3d0604b1487c24ff8cbe32c0000000000000001000000000000000100000000000000201cef524c4bbd4352e55a822f72b50f13a0d37a3b4bd840b09474319d06e88b350000000000000001000000000000000000000000000000204c549c0a06011a5b940afdd9c949f7c54668b0449c63f74f64a3a00d1cc2a37800000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002a00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000010000000000000020fc73d0947f94446ed9761da0ab00e0a32a70321b875fdfcde46a3d4feb429f9c000000000000000100000000000000000000000000000020c08b6a80530ce28ab631eb2d126ffb2acdf90182e03c3ef66853b7e4fb457d93000000000000000100000000000000010000000000000020b65635b650f7751f683d4fdd6f77a7bbbf3914c331798f8c0a5e9b5bdd294ca9000000000000000100000000000000000000000000000020d880ce6b358a2b77330b5a0f9481e98d6528b9d0ad6b480d03501c04a93a647f00000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002a00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020e5055d1a6f42f4116932a0f289fe268d3d26e1e76a6e76a60f666b786dcc14e800000000000000010000000000000000000000000000002013c394365ef4ea229b732c1f74b1cdefeb9d0d67b4660f421b2359d2cdedd3df000000000000000100000000000000010000000000000020f9261c602c28cce1a3d266cbce50544b70ad2373d928eb6befd894a8ffb129540000000000000001000000000000000000000000000000205fd7cad6c08ee7d72dab067a907a496543f8562d1aff5010789f4fe3432c874200000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e1000000000000002a0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000202c42a64400c3e37a22aab41e4a6fba9f963188253d962bfb9d2d2c367ab29f1d0000000000000001000000000000000000000000000000200892a3f42888ca3862bea9ccf078bd63e0266f46f3fe49a9cca5cb8700d0934d000000000000000100000000000000010000000000000020a9fa262c6bfaa50ee132d4609ab35f935bfd510e97d33e942458c27041a0083a000000000000000100000000000000000000000000000020896402e4d3f17887d11d2154920c6bff134c98834a80f987cc702496ef09c196000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000040000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000205825f928f03cd4d9f2cc8a75322b12c7865a1397104c644c6e89be16cfebaa6a000000000000000100000000000000010000000000000020358c6702aa7ce3c8bdcd46a395295b533449972ac93e65796c809d3843af3e0a0000000000000001000000000000000000000000000000205653a7aef6c658c2fe00a9e102931ec0732cfb210b3c0f9786685131d83170b8000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000040000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000202288e579127e8d12c9b43d75f387921ffcd1e5d2d0279d05c76d0c914f33cd5b000000000000000100000000000000010000000000000020d8a894c95f18b89fc6b1966cca0468fb346cb33bd7ed5949846cd49fadfb28c5000000000000000100000000000000000000000000000020dbb74f6060a2f8daea889924e7610165d94588183449ef4022cf18b3bdaaf8d4000000000000000100000000000000010000000000000020a5ba1e43e43faaed55a5a360b6818e780f5c7442a5977ec37c50292584a00e03000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000400000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000207bfe765b64fb0383c673c7ad869d7e0858c875723f9a9dfb3e665add166827880000000000000001000000000000000100000000000000203d0c857c0178a4e206fc089efb3766ddb437e7a682bbeb9802198aa092a8cc08000000000000000100000000000000000000000000000020c358e6ecb6ab0ba0349b872be0aacb00d8660c507286f1680572dd7de7bbdb46000000000000000100000000000000010000000000000020dc0369b2684d24cbf4274ce023a89e3478b29bfaee34efd0a4da1dc660ba45de00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000400000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000100000000000000203f82b44fc772d0560564e2f1b7a14e9d2deba1e392791de2d5375e426eb636760000000000000001000000000000000100000000000000201c7a36516e9a052930373dcef0ce273c7649c024c7dd25a36bc87adf716bf4e800000000000000010000000000000000000000000000002017c85f2591fe6da29d118df27a1aef7ced0fb1a2b85b06c19337c12c92edb9cf000000000000000100000000000000010000000000000020e40fba18beb7a8bfcd3d0b191d6d10f4e3acec4778b08e3ae3c21ae92483fd86000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000040000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020b26445f763278356514594bd97c983d1ddc49fde57cd11428719e5152d4649070000000000000001000000000000000100000000000000202ed66359469b6c278e6162debbe51b6122cbf7aa0d285a925131c0f1651813ad000000000000000100000000000000000000000000000020dea113f87fef53166cf17cc40d78ddf07d9d08926378c792877f7ff4d200a8ed0000000000000001000000000000000100000000000000205a4b48d2d5c0deec9a967d4659defb7f8c12de581186bfae2c710f30835d378c000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000070000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020456e1d938e6648c4c29adf636e5183251a0ac349a008beb793b036853b4408e700000000000000010000000000000000000000000000002089f5f06a3eaa9feb6107ff18a664d8234f172a437fa0bd092c38efcfada850fb0000000000000001000000000000000000000000000000205653a7aef6c658c2fe00a9e102931ec0732cfb210b3c0f9786685131d83170b8000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000070000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020c969695602dcfd384104f908bcbce257dfd864710642f1523d9a81168955aa47000000000000000100000000000000000000000000000020cbbebb2d2ee01e244f99abd05209a18acdd9373999809a8cb24cf1b63e6ab391000000000000000100000000000000000000000000000020dbb74f6060a2f8daea889924e7610165d94588183449ef4022cf18b3bdaaf8d4000000000000000100000000000000010000000000000020a5ba1e43e43faaed55a5a360b6818e780f5c7442a5977ec37c50292584a00e03000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000700000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020b85d4b586ba947b693190c6ef1f6f990ae482425ac07ca3e5424f441c775da3800000000000000010000000000000000000000000000002084f8f08c1781b86a7d608482d19129b805186d05d826ff32e7da42cb40f5328b000000000000000100000000000000000000000000000020c358e6ecb6ab0ba0349b872be0aacb00d8660c507286f1680572dd7de7bbdb46000000000000000100000000000000010000000000000020dc0369b2684d24cbf4274ce023a89e3478b29bfaee34efd0a4da1dc660ba45de00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000700000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000000000000000000209f878f0838290fb1f9f2f7da960477fe4a6b7885ecdd858fc30349c6b990d3e80000000000000001000000000000000000000000000000206cc19031dc8ea162ed088aa714a1081e2754177da026376d0234c9d4449681c400000000000000010000000000000000000000000000002017c85f2591fe6da29d118df27a1aef7ced0fb1a2b85b06c19337c12c92edb9cf000000000000000100000000000000010000000000000020e40fba18beb7a8bfcd3d0b191d6d10f4e3acec4778b08e3ae3c21ae92483fd86000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000070000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000000000000000000200df2987c4ae921770f85c84d56a6af3f336ab04d54354e5885b02d92d80d2bba000000000000000100000000000000000000000000000020d3f5510399f216c8057188c39fff0caee23b375770f4b96ded21d5ec35dac884000000000000000100000000000000000000000000000020dea113f87fef53166cf17cc40d78ddf07d9d08926378c792877f7ff4d200a8ed0000000000000001000000000000000100000000000000205a4b48d2d5c0deec9a967d4659defb7f8c12de581186bfae2c710f30835d378c000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000260000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000205ad883312aa88562cf385178730267043900694b0b01c2234e202a67c428abaf000000000000000100000000000000000000000000000020ea0130bd476a2e99ed6edb948b6cb09cfecc8dd59caba4fc389609df359d15860000000000000001000000000000000000000000000000204cb7b4fa816710180675ddbc955531f8a709d427faf5200cdc6737874e060a55000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000260000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020414865cf4023e03fb5c98fc94f1afd26c3a460aca077222e25d930a4220f4db90000000000000001000000000000000000000000000000201e9235801c669c50c2b370f79c4c01eedac2bd811e7882f3c3ae07b72c66516100000000000000010000000000000000000000000000002037a9c624bdb25b1ee261b13411e9d6acc0d0e8c738496cff14dc43abe65c9d1f000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002600000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000010000000000000020cc2e00785e9824e205b01768c83ffa5c02315f61334fe0670ce06b07eae698d3000000000000000100000000000000000000000000000020437286cce94ee481fb2d34b75a26a24d22661f691749677c792af071c156ccba0000000000000001000000000000000000000000000000205d6c3e37441823be85bdf046e1379fc5587812c68dc08d8750f2f6bd76bf08a100000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002600000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020a5f6de84ebae064f086168e639ee83603818892e9ad4bf156cf637da40a148ca0000000000000001000000000000000000000000000000202450d2ddcb8c5a42f4f5bd485d49bb34cecca473cf8cd0e02b10a0db351a7619000000000000000100000000000000000000000000000020580e91949e50afae5b838c9689875cb0378f05c69de9eb4bbdfa87dc8eff62000000000000000001000000000000000100000000000000209576be5e5da6b2eb368bfdcbab0970717630f25877a6b9664c345d452e1514d800000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000260000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020dceccd7648b46c6136ae8027593d0005d441a51e50114030e8b908e8accac7100000000000000001000000000000000000000000000000207fc92ac8e569eed4ff8e3c4f82dd4cde5b6e4918cc3e7ab8884fb26fd7b0080e0000000000000001000000000000000000000000000000207f46e4b2eb51c53f78fb1f6b5310d84183eb4d3898e8ddf3b3eb940fc2ad8f4400000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000050000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020df632d8f7473aa2a266c94e0516913189d640957a4f03bdfca986886fba478de000000000000000100000000000000010000000000000020358c6702aa7ce3c8bdcd46a395295b533449972ac93e65796c809d3843af3e0a0000000000000001000000000000000000000000000000205653a7aef6c658c2fe00a9e102931ec0732cfb210b3c0f9786685131d83170b8000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000050000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000000000000000000208b5e31b3b9693fd99f4af22f146c47a96be5f96f6e2d1de7723eb81b05ab4517000000000000000100000000000000010000000000000020d8a894c95f18b89fc6b1966cca0468fb346cb33bd7ed5949846cd49fadfb28c5000000000000000100000000000000000000000000000020dbb74f6060a2f8daea889924e7610165d94588183449ef4022cf18b3bdaaf8d4000000000000000100000000000000010000000000000020a5ba1e43e43faaed55a5a360b6818e780f5c7442a5977ec37c50292584a00e03000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000500000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020a56fecf58a1a4c072cb8cf67dd9e508770f735536f8cd2a7c1e1ef73333f32730000000000000001000000000000000100000000000000203d0c857c0178a4e206fc089efb3766ddb437e7a682bbeb9802198aa092a8cc08000000000000000100000000000000000000000000000020c358e6ecb6ab0ba0349b872be0aacb00d8660c507286f1680572dd7de7bbdb46000000000000000100000000000000010000000000000020dc0369b2684d24cbf4274ce023a89e3478b29bfaee34efd0a4da1dc660ba45de00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000500000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000000000000000000020763aab24ec6f8139b22cd47151b3ee9984aecfd01fa36f684224a9c9f86d1cd80000000000000001000000000000000100000000000000201c7a36516e9a052930373dcef0ce273c7649c024c7dd25a36bc87adf716bf4e800000000000000010000000000000000000000000000002017c85f2591fe6da29d118df27a1aef7ced0fb1a2b85b06c19337c12c92edb9cf000000000000000100000000000000010000000000000020e40fba18beb7a8bfcd3d0b191d6d10f4e3acec4778b08e3ae3c21ae92483fd86000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000050000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020686d0a06f4ae390f0f7c009a298fc5272f1d751bfc23c567191f5f4bf85d9d6f0000000000000001000000000000000100000000000000202ed66359469b6c278e6162debbe51b6122cbf7aa0d285a925131c0f1651813ad000000000000000100000000000000000000000000000020dea113f87fef53166cf17cc40d78ddf07d9d08926378c792877f7ff4d200a8ed0000000000000001000000000000000100000000000000205a4b48d2d5c0deec9a967d4659defb7f8c12de581186bfae2c710f30835d378c000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb81659000000000000000c0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020724ffd0f25aa4e243d2c307552ed37381703107372320593eb3a4d313b319f910000000000000001000000000000000100000000000000207632194eaa79882c73a99557dd547ccd6fd120c5b43667fce4768d60ee466a6d000000000000000100000000000000000000000000000020266533c386eaecf62505c82a33fc748ed3dfb0dd1f1c3b6ef1c350f30907840f000000000000000100000000000000000000000000000020a07353c5029eac2f5fb14b7aaa839b9ff2b01dd6feeb51c341820462ab766306000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000000c0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000202ac7747cd68e0e8f386445c4b73e691738da5997681898b63d8a1fdd2f7318d500000000000000010000000000000001000000000000002048f8483f7e54318f5880730aa74c25c4d947a419c1457363fa11f33292ddacb10000000000000001000000000000000000000000000000203e730a9762014a0bc462be90ae606e5d47c72eb18f70e7e52e6fdbf0e6f0ca51000000000000000100000000000000000000000000000020a45ee5473875579efd498bb9c2b6715752587f3d8b2592b454ecfaa7a4333af7000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000c00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000204ac156fe78cb66cc11b0523329bdc9822cfc7ef36d86d1a58cac556bedacedaf00000000000000010000000000000001000000000000002010b0493443555dc67ee87c1bd8063b9e36aa14d724f309f7e8809f3a39a534e30000000000000001000000000000000000000000000000200f6629916e8ea9140c1e5fe82516b014e06c6a7ffb9a27dbe8073629cf7bcfd300000000000000010000000000000000000000000000002017851b1e9a70cbcc32eb47f7ecfae668e5855348fa541f9cd9cc78455c2f52ed00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000c00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000100000000000000201b0c51c2e6a457e77151cd2bd1a1fc5b8591639ceed4c78a361cff744e686314000000000000000100000000000000010000000000000020ed4f3a795008447bc60c29b44b4bebf37e71ce5d4696f2a4a703a2657c01dfc500000000000000010000000000000000000000000000002021e77df31f1eff95861984415a96b4b3e971e343430cde7965c4ffcd12acfcf9000000000000000100000000000000000000000000000020dab612d00eddc0f70596df141a7d854a89a2e881b62296a42c239a68553568e5000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e000000000000000c0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020547e4936c71929988cb4f1df9bc7e773529a27708006dacd48b89d487eac4d8b00000000000000010000000000000001000000000000002021bc05aef3a17c8a1d63eb499367fa51cd6c2c3b2716d1cd6b8c11c4a3b3722a0000000000000001000000000000000000000000000000204b3a8c95985e02c1091d8b74e359262a94d60b3baac08c1afc3d4c34b039a42b000000000000000100000000000000000000000000000020dd7d0f921f70b1c400e2053b21a89931a0d729e3164966f8cdf0a44bdd836801000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000240000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020c24fc0a3e994aa4053143723d1ff953730e09d80308264f57f5e25286c7dcad00000000000000001000000000000000100000000000000204f58496d9785dbfafadd8f41e3167831200b5d8065731cf35b12e0f683eb6aba0000000000000001000000000000000000000000000000204cb7b4fa816710180675ddbc955531f8a709d427faf5200cdc6737874e060a55000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000240000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020a92607495561c9eeccd26d9cc9dfab304f5bdec362795340e1d8d93b162ff7f5000000000000000100000000000000010000000000000020056c9a4c4349cd5028c19714d82d2521d603233c99689f9551773f4c5a1bb87400000000000000010000000000000000000000000000002037a9c624bdb25b1ee261b13411e9d6acc0d0e8c738496cff14dc43abe65c9d1f000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002400000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000204be0b5c554d14ed3ecb1a4698c54f322ec73fcaf89c1a0d0f2287a93c2b4d62b0000000000000001000000000000000100000000000000203decfa57715a83c44aa9af101d28b91339338f8855c0070ab1a2c91f7f429ec30000000000000001000000000000000000000000000000205d6c3e37441823be85bdf046e1379fc5587812c68dc08d8750f2f6bd76bf08a100000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002400000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020b9bcab614083e91d90644c8bf147843d720ff77d9f63f4ec3cf28e93fd482b18000000000000000100000000000000010000000000000020c197f4a8824867039691d253f3aabc0aeadbd548577f61e901b469ba8e81b348000000000000000100000000000000000000000000000020580e91949e50afae5b838c9689875cb0378f05c69de9eb4bbdfa87dc8eff62000000000000000001000000000000000100000000000000209576be5e5da6b2eb368bfdcbab0970717630f25877a6b9664c345d452e1514d800000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000240000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000201dd42fc16aa12a31fa90168725c897d861f7e36b8c27441380a55b1025146bcc000000000000000100000000000000010000000000000020a80602202c5ebf9b0347c9106ef91bf2c358dd05edffa7aa90f9b9bd47fd10500000000000000001000000000000000000000000000000207f46e4b2eb51c53f78fb1f6b5310d84183eb4d3898e8ddf3b3eb940fc2ad8f4400000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000080000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000001000000000000002042339e5d10b0a87ad4fe4a5593bdc05cee398a4a18ea7f97778781f69ff9d23900000000000000010000000000000001000000000000002014aa8e29f77d6a5fb881904df608256632c6604fbfb5192158e0932c0baf514500000000000000010000000000000001000000000000002093c99af014a3514bdcc84cdf0e72d42f20038a64dcba4071efdcce4cf6a76949000000000000000100000000000000000000000000000020a07353c5029eac2f5fb14b7aaa839b9ff2b01dd6feeb51c341820462ab766306000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000080000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020993982938287a52eaa295a8259c93c48d22125e67d985917441309ed46f8d051000000000000000100000000000000010000000000000020ff5c9eed6e4075d1dc3dad1312c9f0e4bcc23270345f8eea8c11a5b3619b24aa000000000000000100000000000000010000000000000020e23783733f2d245e0738ed8503ab8c6aef3aa526888e6b8dc670bfe0e224b8ff000000000000000100000000000000000000000000000020a45ee5473875579efd498bb9c2b6715752587f3d8b2592b454ecfaa7a4333af7000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000800000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb626512000000000000000600000000000000010000000000000001000000000000002019898700bf26a87ccaa60ae2e22476343b05ba5277b4aabd5310269c5066b3a000000000000000010000000000000001000000000000002025a5c0035306c82abd392465404dd2a5af6ad78f6c662e811fb28ddd99a85857000000000000000100000000000000010000000000000020f0fde6ec22a87dce3563e4a3872da6fb65e744b1d395bcb2f83911d9ac21f1af00000000000000010000000000000000000000000000002017851b1e9a70cbcc32eb47f7ecfae668e5855348fa541f9cd9cc78455c2f52ed00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000800000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020efcb1dbccdbb697cca27430b84af3a0549dce6cb8b08308384060acd9584df25000000000000000100000000000000010000000000000020f7920379a56fc6ea52b03411a80201764cd5c9b889cce60510d3d289564f02a1000000000000000100000000000000010000000000000020b9f47dcff780b5d8194c00a89264a3eb8f7603479d71eafc29a9074cf428d552000000000000000100000000000000000000000000000020dab612d00eddc0f70596df141a7d854a89a2e881b62296a42c239a68553568e5000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000080000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000209b2ceda6345229ee35c8f1d1ec5f70384bb152c4b78dd25b3534efa444f07101000000000000000100000000000000010000000000000020f9459a5f7f85273cda341000cf6866270e90827995d041cbba1ac42de920723c00000000000000010000000000000001000000000000002045bb9d506f74a19123d41a442d1de0fdfbaca183dfb2af0cc5027621a991b2b2000000000000000100000000000000000000000000000020dd7d0f921f70b1c400e2053b21a89931a0d729e3164966f8cdf0a44bdd836801000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb81659000000000000003d0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020c04f1fa9f3f965d8bece2549a2d58325a1b2514fb4e532926bff9d2574b86fb5000000000000000100000000000000010000000000000020fa95b871dc336a316326fbcb301108e4f714f2bd6e602d361ed24b034855b7490000000000000001000000000000000000000000000000206d638b48c620681d9ca1f3ca0b9269a4c587a473d6a7f7a9b87cd38c6b341a88000000000000000100000000000000000000000000000020228ad46578c60a8ae293c5203eb65e05045bb3651cc7f9dca5fdd52a9c021f9f000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000003d0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e000000000000000600000000000000010000000000000000000000000000002066ff1ec38e93c279868838ceb073cc1099f22a587203cee6c2d30bd5308ac995000000000000000100000000000000010000000000000020be85ed65a5a68087be9d2be76ba091a1b670d33ace117026a041765c69a90fda00000000000000010000000000000000000000000000002066f2ddc800c59423dc3e6cb06ec895471d3ffafc6e3140cc34d397e66f29e633000000000000000100000000000000000000000000000020d3fe0ac3f0592a168395476738f2d379d0581dd02807271399e479432d094ace000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003d00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb626512000000000000000600000000000000010000000000000000000000000000002085b03c835a69668615c33d712d17ec16cc032859deb4ff24b8cf4e7e3a7eaaed00000000000000010000000000000001000000000000002008aa7b0ca169d528158edb0c24743f0b68eacab6edcaa15ac970d1c5072772c3000000000000000100000000000000000000000000000020a72b7e194afd50ecaf1e33d2066f71486bac78d487b7fa0426a92e4a9ea310c9000000000000000100000000000000000000000000000020762aa6b8eaa622a60e5d82075304926867e1bfd72e6c9bc93d7ed5c083f0de9d00000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003d00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c8000000000000000600000000000000010000000000000000000000000000002071fce3dab75e3a384e0b67c215f8bd36207acdbf78d8e365c288e5405edde450000000000000000100000000000000010000000000000020fc02de609e9efa8ac9b0ee2de75181f281895b4d78139f99a656f6b2a5a9162a0000000000000001000000000000000000000000000000206889701554ee61bb802ca84af6486ce5e81ccd8180328c57ab9d2341a8808cc900000000000000010000000000000000000000000000002000a85bf2f2d421229c03bce75acc24a6f0df564cb379ef0e908c83449ac1caf40000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e1000000000000003d0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020d2c0aabf9e7e7d77e39ff416427987107c746e98e5f0cbb5acf12b7b3b27b5a30000000000000001000000000000000100000000000000200b795fddac1038a433c2c495ff393bde6b796f79e6ab17e827c1139be158bd2f000000000000000100000000000000000000000000000020a85d79547366d8e08f2cd889f73768075efa9a82bdcfd8eca2a0d03ec1c600af000000000000000100000000000000000000000000000020e275f0cac8a965b7c2d52bccf2fc2a08ba897eccce8ac56d94090bd934b9477a0000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000350000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000207c94017f1fb6147ba3e921f88be16fe2b5cefa8f7a8b23bc85945becaf18382a000000000000000100000000000000010000000000000020c362cab2e6c4dc6ea82bb6f4ded48e2f8eb7e24ef0fa0baea7e88c5951f51ecf000000000000000100000000000000000000000000000020cacc7d788bbdb1c4d5dbf47f8afd9ed9b975d2203ba1769a80caa833f3fbb946000000000000000100000000000000010000000000000020f006cf8352bbf180ccb81999dec2d0377abf32ec1a119242758d07bf00181499000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000350000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000000000000000000203e110ccc27f78d2053b055f013cd3746e7bb8e9db6260646682e83a67cf2080f0000000000000001000000000000000100000000000000204f8481d122e0655a5260d7d5ac27ab8f58be0e674599e596783b978e063f1e4d00000000000000010000000000000000000000000000002073a7127e76a6c5c3b45234b5814ccbf96b9d757a279114bbd33a663bd26d006e0000000000000001000000000000000100000000000000208d5b321bbfd951f9cb7659d22f534c96ff102f4c76a497617e5abb9dfa82d388000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003500000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000205c174de57ccd50a28402e5fe1ac358f81a0f7ae683941bf6d81ef41e7caf2cef000000000000000100000000000000010000000000000020121197ec56ab41beb7a2f051161dd268ccd5ab29e7d0b6fef8b7e1c7c912753d000000000000000100000000000000000000000000000020f4ad74e02cc77efb94d4fc24ec0d3cf9f818ea30d8cf64bbb281e90b63c46a2e00000000000000010000000000000001000000000000002077140c9519235b46e9281299155f5f67e417ff114e7ade36dfc35a5d9cd2e2d700000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003500000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000000000000000000020a87efb97f2db4047b7cfd391112aa21b8e772870e9b737515775d25692124ae7000000000000000100000000000000010000000000000020d6ae3741cdfc33d16daa119fa69659d1edfd428dd8fa17d9b0e9cbe608e111e00000000000000001000000000000000000000000000000202a006a9ce5990c918a9042f52712f1deb0b3840b72b18b347088583ab1f5f8d300000000000000010000000000000001000000000000002048e1d107862aaa17d2844c76f1581f63cd00be4647fb6249784c8e84d204a7d30000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000350000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000000000000000000208bfdca08db4332963e4f3e7a1f79f20c4c20d76672a80052bd13acab15a38546000000000000000100000000000000010000000000000020423d33b2be9113539696ac1ed9a134a1d7a1b4932f513b45a8fe1547e6621966000000000000000100000000000000000000000000000020f8cfa931b1b7944fb737694c4d6fc033dc405917f38330a742d6f02d503c8a1b00000000000000010000000000000001000000000000002072bbfd71e002ce04de2fac87c41cdb38dc917d8c5386b1ebdd6e02865da280340000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000010000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000207a810149b56beb7c711c05676c1721fd4595513d55341729b655fdf6bc7c6e9d000000000000000100000000000000010000000000000020c74fc5b5363c08b2d56ef59ce1523608b22b04f93198fc444fbc86eb42093a0b00000000000000010000000000000001000000000000002049b18f4c7c36a3e31f7aea5854ff3a4295357e9b4683efeb0cc263602c4cd838000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000010000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020756e52a4d940aed4b19471722db1b0f36cb3a58e6645651ae95985d0859986fe0000000000000001000000000000000100000000000000204e1424e71c26aac3d813020437cec6168eab7a8d75aad7109e865f34f3d82095000000000000000100000000000000010000000000000020c8ae564fce614307d01ae4e7ca514b4d438c025236d2f7c225df0916122c407a000000000000000100000000000000010000000000000020a5ba1e43e43faaed55a5a360b6818e780f5c7442a5977ec37c50292584a00e03000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000100000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020b2b00908d9b736c01784519b0884f9d47ad5d0521fb013eadc54c72234e9a0cf000000000000000100000000000000010000000000000020f1a1a812bf619f73c9cbf250be6b6627953604a3e339c59bdccc474788fb370a0000000000000001000000000000000100000000000000202d7e532bdad475f87cde4c2f0d86dfd080e22978cd3c4c8658c88cec2b0257b1000000000000000100000000000000010000000000000020dc0369b2684d24cbf4274ce023a89e3478b29bfaee34efd0a4da1dc660ba45de00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000100000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000000000000000000202d703b0f2dac82babade787a44c24dee732455802079b3585a1954c0d9f0bab600000000000000010000000000000001000000000000002051cddbbae06815e078a7cb86278880c9717f4dd37fcaae2d67a121881106aa820000000000000001000000000000000100000000000000202fae5685a1fb05d54b1bfdb2cba9f571c9a24db75580e22dffc6988ffc17820d000000000000000100000000000000010000000000000020e40fba18beb7a8bfcd3d0b191d6d10f4e3acec4778b08e3ae3c21ae92483fd86000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000010000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020c015d0794461e01805baa7f6791e97f3676505ee9a4e0a5e97308682ebdb2af7000000000000000100000000000000010000000000000020365c28a658836edeb78b6dd3b52b7d3d3588d7c226920a4c1a92f410c24d31bd0000000000000001000000000000000100000000000000206ba2588cc21b5cda24b2aa86f1ea326163ccc1d7e3f79cd11177546b0f9520e80000000000000001000000000000000100000000000000205a4b48d2d5c0deec9a967d4659defb7f8c12de581186bfae2c710f30835d378c000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb81659000000000000003c0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020273f7475a15fd0396c47b30cd7561abb6e08ae76b45a1e0e408916144079e75d000000000000000100000000000000010000000000000020fa95b871dc336a316326fbcb301108e4f714f2bd6e602d361ed24b034855b7490000000000000001000000000000000000000000000000206d638b48c620681d9ca1f3ca0b9269a4c587a473d6a7f7a9b87cd38c6b341a88000000000000000100000000000000000000000000000020228ad46578c60a8ae293c5203eb65e05045bb3651cc7f9dca5fdd52a9c021f9f000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000003c0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e000000000000000600000000000000010000000000000001000000000000002036962f5977ea5541488032e1cce4f44180c5480829010190ba9ae66a9ca2cd2d000000000000000100000000000000010000000000000020be85ed65a5a68087be9d2be76ba091a1b670d33ace117026a041765c69a90fda00000000000000010000000000000000000000000000002066f2ddc800c59423dc3e6cb06ec895471d3ffafc6e3140cc34d397e66f29e633000000000000000100000000000000000000000000000020d3fe0ac3f0592a168395476738f2d379d0581dd02807271399e479432d094ace000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003c00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000205a2fe717ccd1a37afc920d1f76fdde9b00b03821e87637dbc7ab2e32c4eb78da00000000000000010000000000000001000000000000002008aa7b0ca169d528158edb0c24743f0b68eacab6edcaa15ac970d1c5072772c3000000000000000100000000000000000000000000000020a72b7e194afd50ecaf1e33d2066f71486bac78d487b7fa0426a92e4a9ea310c9000000000000000100000000000000000000000000000020762aa6b8eaa622a60e5d82075304926867e1bfd72e6c9bc93d7ed5c083f0de9d00000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003c00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000100000000000000202dddbbbe19ddfb60f4efa66311ddfc4cb977874ab8db3212878a2b333802d1ec000000000000000100000000000000010000000000000020fc02de609e9efa8ac9b0ee2de75181f281895b4d78139f99a656f6b2a5a9162a0000000000000001000000000000000000000000000000206889701554ee61bb802ca84af6486ce5e81ccd8180328c57ab9d2341a8808cc900000000000000010000000000000000000000000000002000a85bf2f2d421229c03bce75acc24a6f0df564cb379ef0e908c83449ac1caf40000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e1000000000000003c0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000205b792c7369f97b8891deb0e8d0dbf32280fd9125a35c3bf0b3c02cb3b6090b630000000000000001000000000000000100000000000000200b795fddac1038a433c2c495ff393bde6b796f79e6ab17e827c1139be158bd2f000000000000000100000000000000000000000000000020a85d79547366d8e08f2cd889f73768075efa9a82bdcfd8eca2a0d03ec1c600af000000000000000100000000000000000000000000000020e275f0cac8a965b7c2d52bccf2fc2a08ba897eccce8ac56d94090bd934b9477a0000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000340000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020a51a1dc62392f295b15fe1655ecfe34f6022071edf8acb2dd4f0b8ebef99ec59000000000000000100000000000000010000000000000020c362cab2e6c4dc6ea82bb6f4ded48e2f8eb7e24ef0fa0baea7e88c5951f51ecf000000000000000100000000000000000000000000000020cacc7d788bbdb1c4d5dbf47f8afd9ed9b975d2203ba1769a80caa833f3fbb946000000000000000100000000000000010000000000000020f006cf8352bbf180ccb81999dec2d0377abf32ec1a119242758d07bf00181499000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000340000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000201a65187107853d80e0c2a9df94b775ee2882d9d528d05bf2d0dafca511d3ed2b0000000000000001000000000000000100000000000000204f8481d122e0655a5260d7d5ac27ab8f58be0e674599e596783b978e063f1e4d00000000000000010000000000000000000000000000002073a7127e76a6c5c3b45234b5814ccbf96b9d757a279114bbd33a663bd26d006e0000000000000001000000000000000100000000000000208d5b321bbfd951f9cb7659d22f534c96ff102f4c76a497617e5abb9dfa82d388000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003400000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000209725e35ee4c6df58b617aee3329c373f0e489a9026ce96fa222ea76aa2ac5e09000000000000000100000000000000010000000000000020121197ec56ab41beb7a2f051161dd268ccd5ab29e7d0b6fef8b7e1c7c912753d000000000000000100000000000000000000000000000020f4ad74e02cc77efb94d4fc24ec0d3cf9f818ea30d8cf64bbb281e90b63c46a2e00000000000000010000000000000001000000000000002077140c9519235b46e9281299155f5f67e417ff114e7ade36dfc35a5d9cd2e2d700000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003400000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c8000000000000000600000000000000010000000000000001000000000000002016b211f8e1c24460c33f79c50d34fdc5f21b4974075fefbf7e19d3ef3dd925d2000000000000000100000000000000010000000000000020d6ae3741cdfc33d16daa119fa69659d1edfd428dd8fa17d9b0e9cbe608e111e00000000000000001000000000000000000000000000000202a006a9ce5990c918a9042f52712f1deb0b3840b72b18b347088583ab1f5f8d300000000000000010000000000000001000000000000002048e1d107862aaa17d2844c76f1581f63cd00be4647fb6249784c8e84d204a7d30000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000340000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020bd3e2ffe3b5fc465e05ef39b4f6c0d1a48247d10a56154253ee5219438e761f6000000000000000100000000000000010000000000000020423d33b2be9113539696ac1ed9a134a1d7a1b4932f513b45a8fe1547e6621966000000000000000100000000000000000000000000000020f8cfa931b1b7944fb737694c4d6fc033dc405917f38330a742d6f02d503c8a1b00000000000000010000000000000001000000000000002072bbfd71e002ce04de2fac87c41cdb38dc917d8c5386b1ebdd6e02865da280340000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000230000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000000000000000000002024f3af1b1647bb312c015a48502bdcba582529e56718776c1cf05694f83b3cf10000000000000001000000000000000000000000000000204b06bb483c21112f9cdd7eff56256a5630233353d836a5d668685bfdc6a4041e000000000000000100000000000000010000000000000020d80cc5cdbb0ec297cddfda4fd988de76b705f83576117fb5ed10b48a9b959bb0000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000230000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e000000000000000600000000000000010000000000000000000000000000002026d903d0be54bf22c5189d1118bd93f6a98c383d8d88d66724bfe911e82b2b74000000000000000100000000000000000000000000000020393cccd066625747c7bb15e378554916665b267344c9bf3a1f1e239b4d3166fc00000000000000010000000000000001000000000000002072ecff12c730f10ff239ae5d5ec6e0ecd7a93d7c6f58e48faaf9efc69af68a03000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002300000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020315f848ff4d7d38fb384ae430ef99536792647667ccb2454dc022ec7a768aaf4000000000000000100000000000000000000000000000020d2096ab2fdbc4ed9fcb3f176b5554a872f0e907766b3c2d7a358a3e01f8fde260000000000000001000000000000000100000000000000209636be1e4b8abd68cb43b0274502fefa81dd44893b457dcd361701b81c119a5b00000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002300000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000000000000000000020ddfe152113a3bb968c9bfca59fcc1a6f2938bc90f8aa7bbf3dccccecfc179c3e0000000000000001000000000000000000000000000000203f56dd85e0a194ac8bc2d0dacc2bffefd23ba5e99d127148c082bdec01a7698d000000000000000100000000000000010000000000000020477f5dc159d908adca707dc48fabcb5e7760807f37a220b1e911898710933d820000000000000001000000000000000100000000000000209576be5e5da6b2eb368bfdcbab0970717630f25877a6b9664c345d452e1514d800000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000230000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000000000000000000209622e98ec4df3449c67d9e48114f130f446fae93b72f4bf53789536c86b6d631000000000000000100000000000000000000000000000020a58adfd2e024e06c922fbd6f0c6e29c0aa467b652272a9cd35196719e496cfd60000000000000001000000000000000100000000000000200df38a45fc387ce7388d7edbd245b965091614cd5a7aa1118bcbb22942e4bb9300000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000380000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000001000000000000002047d5bdc22d4cc9d2e30712eb6b535668edccd3c54e642dffa49675ed2e49beba000000000000000100000000000000010000000000000020314e9a848ea1d25911258d74b19f092dd444faf4da08b8c00a4f09adb9d4c623000000000000000100000000000000010000000000000020f8aa5e6a5b89d4a39d02bfe4f6c3c38deda3ec6df5ade3707863ea2453f03b73000000000000000100000000000000000000000000000020228ad46578c60a8ae293c5203eb65e05045bb3651cc7f9dca5fdd52a9c021f9f000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000380000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000203b312fb894342a3d1ab0f8d554c0b9119e28d879678de6f0ad8437f5e1b8064a000000000000000100000000000000010000000000000020d409436a38cce955294f3fbb27f4d65e7100e98f4d77022a741a6e99195a3afd0000000000000001000000000000000100000000000000206d13fd38b84ca4e30cf7ae1f472014bbebd3d7449bae674ad6a36fae582015a8000000000000000100000000000000000000000000000020d3fe0ac3f0592a168395476738f2d379d0581dd02807271399e479432d094ace000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003800000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000010000000000000020a3fbd11798caf887511151341254f395d67288c04269d5bfb729ced7e39ca6330000000000000001000000000000000100000000000000206140589f65135d68e263ae292fc0c763647ece71ba96e1bb1950b05093e479eb000000000000000100000000000000010000000000000020b6e03aa8283e3b21b7e5347673309cfecce4aa3d8d546f0c5e5fbac4333ddb46000000000000000100000000000000000000000000000020762aa6b8eaa622a60e5d82075304926867e1bfd72e6c9bc93d7ed5c083f0de9d00000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003800000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020d59a720ee0aa7fa3480384bef7b6157e084de0b7cfee7a05b174a87323f4bf2700000000000000010000000000000001000000000000002025e3c91b984175d866c1a7a0ab532b735a2322b380d5176f3f2898cdf3415d9f000000000000000100000000000000010000000000000020eb8e2038c836a712421ce8263fd03d719840bae9cbc574a061e776d5ef3f390800000000000000010000000000000000000000000000002000a85bf2f2d421229c03bce75acc24a6f0df564cb379ef0e908c83449ac1caf40000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000380000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020679054f608c563f3319164a76769160a401eeefa3236bfdbb8368a9d559dcb170000000000000001000000000000000100000000000000204759d348b50c669646f5f52d2f8caba0a0a3c3f6941e016904bddc6b141451910000000000000001000000000000000100000000000000200e45b6073a5229fe074383c2f531128eda5ffeefe8fde89eb48d7aa45a77a0f5000000000000000100000000000000000000000000000020e275f0cac8a965b7c2d52bccf2fc2a08ba897eccce8ac56d94090bd934b9477a0000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000010000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000207a810149b56beb7c711c05676c1721fd4595513d55341729b655fdf6bc7c6e9d000000000000000100000000000000010000000000000020c74fc5b5363c08b2d56ef59ce1523608b22b04f93198fc444fbc86eb42093a0b00000000000000010000000000000001000000000000002049b18f4c7c36a3e31f7aea5854ff3a4295357e9b4683efeb0cc263602c4cd838000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000010000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020756e52a4d940aed4b19471722db1b0f36cb3a58e6645651ae95985d0859986fe0000000000000001000000000000000100000000000000204e1424e71c26aac3d813020437cec6168eab7a8d75aad7109e865f34f3d82095000000000000000100000000000000010000000000000020c8ae564fce614307d01ae4e7ca514b4d438c025236d2f7c225df0916122c407a000000000000000100000000000000010000000000000020a5ba1e43e43faaed55a5a360b6818e780f5c7442a5977ec37c50292584a00e03000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000100000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020b2b00908d9b736c01784519b0884f9d47ad5d0521fb013eadc54c72234e9a0cf000000000000000100000000000000010000000000000020f1a1a812bf619f73c9cbf250be6b6627953604a3e339c59bdccc474788fb370a0000000000000001000000000000000100000000000000202d7e532bdad475f87cde4c2f0d86dfd080e22978cd3c4c8658c88cec2b0257b1000000000000000100000000000000010000000000000020dc0369b2684d24cbf4274ce023a89e3478b29bfaee34efd0a4da1dc660ba45de00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000100000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000000000000000000202d703b0f2dac82babade787a44c24dee732455802079b3585a1954c0d9f0bab600000000000000010000000000000001000000000000002051cddbbae06815e078a7cb86278880c9717f4dd37fcaae2d67a121881106aa820000000000000001000000000000000100000000000000202fae5685a1fb05d54b1bfdb2cba9f571c9a24db75580e22dffc6988ffc17820d000000000000000100000000000000010000000000000020e40fba18beb7a8bfcd3d0b191d6d10f4e3acec4778b08e3ae3c21ae92483fd86000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000010000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020c015d0794461e01805baa7f6791e97f3676505ee9a4e0a5e97308682ebdb2af7000000000000000100000000000000010000000000000020365c28a658836edeb78b6dd3b52b7d3d3588d7c226920a4c1a92f410c24d31bd0000000000000001000000000000000100000000000000206ba2588cc21b5cda24b2aa86f1ea326163ccc1d7e3f79cd11177546b0f9520e80000000000000001000000000000000100000000000000205a4b48d2d5c0deec9a967d4659defb7f8c12de581186bfae2c710f30835d378c000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000250000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000000000000000000002078ae3188ae8a7fa5036c69bcc6f6b6ac2a737d68f221d24a2b9be2c403a31f890000000000000001000000000000000100000000000000204f58496d9785dbfafadd8f41e3167831200b5d8065731cf35b12e0f683eb6aba0000000000000001000000000000000000000000000000204cb7b4fa816710180675ddbc955531f8a709d427faf5200cdc6737874e060a55000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000250000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e000000000000000600000000000000010000000000000000000000000000002018adf62c16c49037a919028f54b64de85326f5b2dd64be267a413db441bcecda000000000000000100000000000000010000000000000020056c9a4c4349cd5028c19714d82d2521d603233c99689f9551773f4c5a1bb87400000000000000010000000000000000000000000000002037a9c624bdb25b1ee261b13411e9d6acc0d0e8c738496cff14dc43abe65c9d1f000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002500000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000207dc81ce49e1b1df2f8fcc08b7356fc70192a5f60687461cb3c541bcf686e5a840000000000000001000000000000000100000000000000203decfa57715a83c44aa9af101d28b91339338f8855c0070ab1a2c91f7f429ec30000000000000001000000000000000000000000000000205d6c3e37441823be85bdf046e1379fc5587812c68dc08d8750f2f6bd76bf08a100000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002500000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000000000000000000020fc14ea81cdf469b2c3b971cb19a66445537058a9a44ee4d0d824b690404cc86e000000000000000100000000000000010000000000000020c197f4a8824867039691d253f3aabc0aeadbd548577f61e901b469ba8e81b348000000000000000100000000000000000000000000000020580e91949e50afae5b838c9689875cb0378f05c69de9eb4bbdfa87dc8eff62000000000000000001000000000000000100000000000000209576be5e5da6b2eb368bfdcbab0970717630f25877a6b9664c345d452e1514d800000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000250000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000000000000000000207f8f01e6b3f5a17ac295fe537986b11cff2ce290e66da7d3c4bfcf9f734bab14000000000000000100000000000000010000000000000020a80602202c5ebf9b0347c9106ef91bf2c358dd05edffa7aa90f9b9bd47fd10500000000000000001000000000000000000000000000000207f46e4b2eb51c53f78fb1f6b5310d84183eb4d3898e8ddf3b3eb940fc2ad8f4400000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000330000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000207344f3e7f6af9883c597d6e1f3a288c3ffc6aceb35435477812a31e3317c741900000000000000010000000000000000000000000000002005bd0da2469f2c21b3a29c3fb9805e1c169b17d94f8f17fb27b467cf42de28db0000000000000001000000000000000100000000000000205f3c867463c166fd9c0125885c51251e20c9b8d44030db7f8c699a0f747c2522000000000000000100000000000000010000000000000020f006cf8352bbf180ccb81999dec2d0377abf32ec1a119242758d07bf00181499000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000330000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020e531ed69121bdf5b18ac52087e7e317b94e4f8c8b4269cef4cc727a80b662a5500000000000000010000000000000000000000000000002065f01400d8c5267b0c9e1b41ef2836adc1616da98100daa5b32b8ba39b374ee10000000000000001000000000000000100000000000000201005d0456ea86f38d81d86687e8f11923a23456f3c2f3ff55d7c8acb9de64d690000000000000001000000000000000100000000000000208d5b321bbfd951f9cb7659d22f534c96ff102f4c76a497617e5abb9dfa82d388000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003300000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000206c87f4016feeab616e7bf0a7df62142470188914fe59e59df595763e4d47b9fe0000000000000001000000000000000000000000000000204c94dd0a0f2cb0cb59dcc9b4beb35fd98efaa2cc92cf08466d21549d33875f98000000000000000100000000000000010000000000000020c777ac306a941e7299543eb8e965674fbfd21d8db21d4e6efb2f426e941de1bf00000000000000010000000000000001000000000000002077140c9519235b46e9281299155f5f67e417ff114e7ade36dfc35a5d9cd2e2d700000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003300000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000000000000000000209c7c6e613712463c1c51f6e2e822dfe9bc4ba090afaf5c8c729901b5787db32c000000000000000100000000000000000000000000000020ab4c3f636a88e514ddaec7c6e1d4c81514983302354e8efc52833d305719ec230000000000000001000000000000000100000000000000208a6064188f59e346913e199ebd880503e24248cdea6f67e70edbb84b538e36bf00000000000000010000000000000001000000000000002048e1d107862aaa17d2844c76f1581f63cd00be4647fb6249784c8e84d204a7d30000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000330000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000000000000000000209b701f655210684798519c7d21d381389c5327f76961549a9e47317288332b210000000000000001000000000000000000000000000000204214f1b616812c5b41ff45c0d2acddfd991317d68de3ff1ed1900ce663f1230e0000000000000001000000000000000100000000000000200c26f3577db6f6fc8ca13505100d7c1f5e90088ce53af1ae45ddb54d2ffe746d00000000000000010000000000000001000000000000002072bbfd71e002ce04de2fac87c41cdb38dc917d8c5386b1ebdd6e02865da280340000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000300000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000209399208c484a329698fbd5fc3a1e5211545fe0819f858a740bdd001dd7359521000000000000000100000000000000010000000000000020b07fc62d561ac62b44d2a42d32b92ea5c1cc6bd1a2aaec7fc3bc3511de391ed20000000000000001000000000000000100000000000000205f3c867463c166fd9c0125885c51251e20c9b8d44030db7f8c699a0f747c2522000000000000000100000000000000010000000000000020f006cf8352bbf180ccb81999dec2d0377abf32ec1a119242758d07bf00181499000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000300000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000208a1cb832169c6172d08634e929dc75a3eb3fd45dd468f05da4b03fd04b87a012000000000000000100000000000000010000000000000020f4dd72267aad53529f4348fc166c5360db899801c1df5ddfd7c1626279eafdbe0000000000000001000000000000000100000000000000201005d0456ea86f38d81d86687e8f11923a23456f3c2f3ff55d7c8acb9de64d690000000000000001000000000000000100000000000000208d5b321bbfd951f9cb7659d22f534c96ff102f4c76a497617e5abb9dfa82d388000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003000000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000202eb98ec6ce2f42cb97679f5e5a34ad824dfdc8c0e485699d6467f2d893afad8f00000000000000010000000000000001000000000000002054718224361a6daea577b4c8ac8692eb3c575c6fa8dda2809f91df1663f010ea000000000000000100000000000000010000000000000020c777ac306a941e7299543eb8e965674fbfd21d8db21d4e6efb2f426e941de1bf00000000000000010000000000000001000000000000002077140c9519235b46e9281299155f5f67e417ff114e7ade36dfc35a5d9cd2e2d700000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003000000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000100000000000000201dda54f4d2bb667cedbd35f9351140244c940b9bb8c1e07c34faa5a6fb9989d8000000000000000100000000000000010000000000000020d5e88ffd88afa64b0c3121af7da31497014154deb20e99464118696d9efa5e9b0000000000000001000000000000000100000000000000208a6064188f59e346913e199ebd880503e24248cdea6f67e70edbb84b538e36bf00000000000000010000000000000001000000000000002048e1d107862aaa17d2844c76f1581f63cd00be4647fb6249784c8e84d204a7d30000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000300000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020e87dc95cd2d77b657a2fe755d131f1fc6c4d68f2b7774135dab1dff69ba9b7500000000000000001000000000000000100000000000000202ef95d28cf0a84661c817d8d3ca1cb00cf1caa4a9b834ef6d5eb0b1f02184b3c0000000000000001000000000000000100000000000000200c26f3577db6f6fc8ca13505100d7c1f5e90088ce53af1ae45ddb54d2ffe746d00000000000000010000000000000001000000000000002072bbfd71e002ce04de2fac87c41cdb38dc917d8c5386b1ebdd6e02865da280340000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000330000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000207344f3e7f6af9883c597d6e1f3a288c3ffc6aceb35435477812a31e3317c741900000000000000010000000000000000000000000000002005bd0da2469f2c21b3a29c3fb9805e1c169b17d94f8f17fb27b467cf42de28db0000000000000001000000000000000100000000000000205f3c867463c166fd9c0125885c51251e20c9b8d44030db7f8c699a0f747c2522000000000000000100000000000000010000000000000020f006cf8352bbf180ccb81999dec2d0377abf32ec1a119242758d07bf00181499000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000330000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020e531ed69121bdf5b18ac52087e7e317b94e4f8c8b4269cef4cc727a80b662a5500000000000000010000000000000000000000000000002065f01400d8c5267b0c9e1b41ef2836adc1616da98100daa5b32b8ba39b374ee10000000000000001000000000000000100000000000000201005d0456ea86f38d81d86687e8f11923a23456f3c2f3ff55d7c8acb9de64d690000000000000001000000000000000100000000000000208d5b321bbfd951f9cb7659d22f534c96ff102f4c76a497617e5abb9dfa82d388000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003300000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000206c87f4016feeab616e7bf0a7df62142470188914fe59e59df595763e4d47b9fe0000000000000001000000000000000000000000000000204c94dd0a0f2cb0cb59dcc9b4beb35fd98efaa2cc92cf08466d21549d33875f98000000000000000100000000000000010000000000000020c777ac306a941e7299543eb8e965674fbfd21d8db21d4e6efb2f426e941de1bf00000000000000010000000000000001000000000000002077140c9519235b46e9281299155f5f67e417ff114e7ade36dfc35a5d9cd2e2d700000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003300000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000000000000000000209c7c6e613712463c1c51f6e2e822dfe9bc4ba090afaf5c8c729901b5787db32c000000000000000100000000000000000000000000000020ab4c3f636a88e514ddaec7c6e1d4c81514983302354e8efc52833d305719ec230000000000000001000000000000000100000000000000208a6064188f59e346913e199ebd880503e24248cdea6f67e70edbb84b538e36bf00000000000000010000000000000001000000000000002048e1d107862aaa17d2844c76f1581f63cd00be4647fb6249784c8e84d204a7d30000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000330000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000000000000000000209b701f655210684798519c7d21d381389c5327f76961549a9e47317288332b210000000000000001000000000000000000000000000000204214f1b616812c5b41ff45c0d2acddfd991317d68de3ff1ed1900ce663f1230e0000000000000001000000000000000100000000000000200c26f3577db6f6fc8ca13505100d7c1f5e90088ce53af1ae45ddb54d2ffe746d00000000000000010000000000000001000000000000002072bbfd71e002ce04de2fac87c41cdb38dc917d8c5386b1ebdd6e02865da280340000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000210000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000208ce1cc949d66e29c2c057237e5763104b0ae5ea1586e63baefa724176f8b6022000000000000000100000000000000010000000000000020d3a8480b820bd6c782f5a7d8bc820d929996e9b8ab64d37789aa88140ba71654000000000000000100000000000000010000000000000020d80cc5cdbb0ec297cddfda4fd988de76b705f83576117fb5ed10b48a9b959bb0000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000210000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020664e0e862b31c615e1e57d6dcded9bf393ebbaacc99d0254d87cdda7f877d2540000000000000001000000000000000100000000000000200c04f15905ef31c5e7f95badee6ef48214fcec9a48dff3643ba924349c73daaf00000000000000010000000000000001000000000000002072ecff12c730f10ff239ae5d5ec6e0ecd7a93d7c6f58e48faaf9efc69af68a03000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002100000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020b30c05a30bda76fc1bf437fc950c818b4d0bbb12dda331a149e84851a5b2512c000000000000000100000000000000010000000000000020730dfd755e8bc4f3764cb6605b45ef36f2bf687e9a26d67efca88040d92455b70000000000000001000000000000000100000000000000209636be1e4b8abd68cb43b0274502fefa81dd44893b457dcd361701b81c119a5b00000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002100000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c8000000000000000600000000000000010000000000000000000000000000002046fac6a73e8bccd0e5adf631aa1d059f3165a71695159b70d7e97f814f6fcd28000000000000000100000000000000010000000000000020915a39315080ec6ed5cebeeb6b7dad131f8106659b1ee09e93e1bfae78eff704000000000000000100000000000000010000000000000020477f5dc159d908adca707dc48fabcb5e7760807f37a220b1e911898710933d820000000000000001000000000000000100000000000000209576be5e5da6b2eb368bfdcbab0970717630f25877a6b9664c345d452e1514d800000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000210000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d000000000000000600000000000000010000000000000000000000000000002069280c0ca4e25652715e70e30e873d0cee391df4455276e4338db0638372d77b00000000000000010000000000000001000000000000002053d45841276f047a813d87d7cc211dcf1d7057a623db3785c133608ed6d4499b0000000000000001000000000000000100000000000000200df38a45fc387ce7388d7edbd245b965091614cd5a7aa1118bcbb22942e4bb9300000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000100000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020c47d7bebc8c15f325d831bf339e2d3309c7c8d22969ec6186bc0568046427bd7000000000000000100000000000000010000000000000020640867ed08a3ecabe4859b1b36a9e35eed961ff22f4ecb3f19f23eafd153979300000000000000010000000000000001000000000000002038c257c4acc7ae148c5c9b4409c82130df8554a30c1e722962697197980c56fb000000000000000100000000000000010000000000000020f158609c6b12d3609bdf1c7797edb538f985fe8ac4171f066b1d7b9c43c7bc3b0000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000100000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000201ca4130b1b432206425cd549ec0a36397fe25e3902fc83e4fc886cd6f1950e7b000000000000000100000000000000010000000000000020630811e108ea35a320a27dbd41803a687d15b60a29050aeca50361d2714bf518000000000000000100000000000000010000000000000020d42e2ebd255e4349a7739a43dd3c719944636248abdb0bced6a610501e96e1b50000000000000001000000000000000100000000000000204dffb3cd723081a5601c700b71267e003c6301f69868c0143c1c7fb7f95e7282000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001000000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000202c428c9c3fa1a53d1b0e7ee50f01da261b77bab05c5f15d68ca27e3ad48349d5000000000000000100000000000000010000000000000020183a34534d82250369c5f2847e701d9341b41f119f4bfea1eb963c8a45731168000000000000000100000000000000010000000000000020fe4fd380a7b985c22fbf7e428d0522af491d32b3707fdee9600cc7816056f1200000000000000001000000000000000100000000000000205d9455d420eacea118c8dd606eeb03972280069211e33523e74b32b8a0a96ea70000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001000000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020985bb7ecbeb86f8f84bef68c141aefd03855e2e908da6ac0106ddcc00e15295d000000000000000100000000000000010000000000000020637b870a99da57ec6dae1de90c1943b37f34d8556acc557a05a65a8915fa9d88000000000000000100000000000000010000000000000020acbb53eff19327fdfe068637b56e56cf2ed3ea11c5ac335cac2a4c9e1b4ba555000000000000000100000000000000010000000000000020770adc9f5a476741bb8349e40e9edfd96156aacd1c6d9e3a586653b654b6aa5b000000000000000100000000000000000000000000000020f66cbef6ba027ee51a683e2c6bfc0ba5a9c25509bcbd67fc8c6ed57fed75d4ad000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000100000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020574ce443b2d1a579a226d2ef9963cddf83ae90ced338ea391881843fc95dddcc00000000000000010000000000000001000000000000002026c0e6ce4bf08b1f0ed800a51064fdf6f1f375dbc00c710881776df737596e59000000000000000100000000000000010000000000000020113e52f83563f3c9a8ca73087daed63db6e020f9b1908dae270f2d864860470b0000000000000001000000000000000100000000000000207558d367d7cb8046d18c333db9b72e09bb6459368f028b50b23b205b8ad03c430000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000390000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020f5f51df4455ffd83739dfaccef923a70df7a7cf5ea75b0be8ac453ab1ea59cd8000000000000000100000000000000010000000000000020314e9a848ea1d25911258d74b19f092dd444faf4da08b8c00a4f09adb9d4c623000000000000000100000000000000010000000000000020f8aa5e6a5b89d4a39d02bfe4f6c3c38deda3ec6df5ade3707863ea2453f03b73000000000000000100000000000000000000000000000020228ad46578c60a8ae293c5203eb65e05045bb3651cc7f9dca5fdd52a9c021f9f000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000390000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020c0be60ecb9302afcaf7e0974c2439749f493468a83262da26a96f1cc4c55cc73000000000000000100000000000000010000000000000020d409436a38cce955294f3fbb27f4d65e7100e98f4d77022a741a6e99195a3afd0000000000000001000000000000000100000000000000206d13fd38b84ca4e30cf7ae1f472014bbebd3d7449bae674ad6a36fae582015a8000000000000000100000000000000000000000000000020d3fe0ac3f0592a168395476738f2d379d0581dd02807271399e479432d094ace000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003900000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000205ac05e975b42062c31f9ed21b3fe8a6ddc0b04176c23fbf2924ac02c9a0be9e70000000000000001000000000000000100000000000000206140589f65135d68e263ae292fc0c763647ece71ba96e1bb1950b05093e479eb000000000000000100000000000000010000000000000020b6e03aa8283e3b21b7e5347673309cfecce4aa3d8d546f0c5e5fbac4333ddb46000000000000000100000000000000000000000000000020762aa6b8eaa622a60e5d82075304926867e1bfd72e6c9bc93d7ed5c083f0de9d00000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003900000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000000000000000000020a1d50e36dcacbeab3151583c0a0de6fcf3b158bca938c33d17bc65105aa4836e00000000000000010000000000000001000000000000002025e3c91b984175d866c1a7a0ab532b735a2322b380d5176f3f2898cdf3415d9f000000000000000100000000000000010000000000000020eb8e2038c836a712421ce8263fd03d719840bae9cbc574a061e776d5ef3f390800000000000000010000000000000000000000000000002000a85bf2f2d421229c03bce75acc24a6f0df564cb379ef0e908c83449ac1caf40000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000390000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020741795e4cfecca0b0fcd745a3aa59aa1b3c46d8f74bb8a06128fbf82dc802df80000000000000001000000000000000100000000000000204759d348b50c669646f5f52d2f8caba0a0a3c3f6941e016904bddc6b141451910000000000000001000000000000000100000000000000200e45b6073a5229fe074383c2f531128eda5ffeefe8fde89eb48d7aa45a77a0f5000000000000000100000000000000000000000000000020e275f0cac8a965b7c2d52bccf2fc2a08ba897eccce8ac56d94090bd934b9477a0000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000150000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020dffef2b6289ca42b6b10811bf557d0f0473b5148078520d4dd2c3c9e071683cf000000000000000100000000000000010000000000000020934ab4c6e53dcf48d451f6ed7e4af86b758dd8dba6533f4175725e2e5845afc500000000000000010000000000000000000000000000002026fce9aa21f1ef53b559859e81595b7ea9f4a7505a8a6c162b86994251034ce3000000000000000100000000000000010000000000000020f158609c6b12d3609bdf1c7797edb538f985fe8ac4171f066b1d7b9c43c7bc3b0000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000150000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020cec16a9d3b3f1de59cee51ed94138ed96cba68c2758159ba8a01bc52b516f72b0000000000000001000000000000000100000000000000202fdbde1dac25caf98829f59666c2f0534d2832bdb689d8ad96cbb9a3dbd4d45f0000000000000001000000000000000000000000000000205194f6462193600d656db86b96325bf516174c3105f29544d28f3b649cc7fa4c0000000000000001000000000000000100000000000000204dffb3cd723081a5601c700b71267e003c6301f69868c0143c1c7fb7f95e7282000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001500000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020f2de2f5fbaa2fe6e8591e83bc7d861f307c81e406ccc1a21b3787af696d241e7000000000000000100000000000000010000000000000020114537cddbda837705b4879cd66f5f4d256930dfee3834780cb134d8960e1304000000000000000100000000000000000000000000000020b4e0bb7d9649c1fbb4614e3f293bccd257330f04e0c3c1c27c3a9a4dcdec30130000000000000001000000000000000100000000000000205d9455d420eacea118c8dd606eeb03972280069211e33523e74b32b8a0a96ea70000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001500000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000000000000000000020c3174c1b88c696ebf436b05451cea169e316baa59fdc078665e7dbe65abebda100000000000000010000000000000001000000000000002011099e538c8737a24d756c6724727c5da6d771131318d85b8986cd3bc79b592b000000000000000100000000000000000000000000000020c28743b9fb456f5dab01de38dce8d1e72a393e786e47b640f11ef5dac00847bb000000000000000100000000000000010000000000000020770adc9f5a476741bb8349e40e9edfd96156aacd1c6d9e3a586653b654b6aa5b000000000000000100000000000000000000000000000020f66cbef6ba027ee51a683e2c6bfc0ba5a9c25509bcbd67fc8c6ed57fed75d4ad000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000150000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d000000000000000600000000000000010000000000000000000000000000002043e311e3ed17c50cd6418c4a642894593dd739e9a2bb8e77c841c12e04c9d211000000000000000100000000000000010000000000000020a8ed275fa0c7c748c26664fcd0da42650d5f6d40a8b66187b846df67bdc2a97f000000000000000100000000000000000000000000000020c9fa3b6551025a0b0a3ab22e52aa56603723150da92dcef931270f46982c5f720000000000000001000000000000000100000000000000207558d367d7cb8046d18c333db9b72e09bb6459368f028b50b23b205b8ad03c430000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000240000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020c24fc0a3e994aa4053143723d1ff953730e09d80308264f57f5e25286c7dcad00000000000000001000000000000000100000000000000204f58496d9785dbfafadd8f41e3167831200b5d8065731cf35b12e0f683eb6aba0000000000000001000000000000000000000000000000204cb7b4fa816710180675ddbc955531f8a709d427faf5200cdc6737874e060a55000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000240000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020a92607495561c9eeccd26d9cc9dfab304f5bdec362795340e1d8d93b162ff7f5000000000000000100000000000000010000000000000020056c9a4c4349cd5028c19714d82d2521d603233c99689f9551773f4c5a1bb87400000000000000010000000000000000000000000000002037a9c624bdb25b1ee261b13411e9d6acc0d0e8c738496cff14dc43abe65c9d1f000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002400000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000204be0b5c554d14ed3ecb1a4698c54f322ec73fcaf89c1a0d0f2287a93c2b4d62b0000000000000001000000000000000100000000000000203decfa57715a83c44aa9af101d28b91339338f8855c0070ab1a2c91f7f429ec30000000000000001000000000000000000000000000000205d6c3e37441823be85bdf046e1379fc5587812c68dc08d8750f2f6bd76bf08a100000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002400000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020b9bcab614083e91d90644c8bf147843d720ff77d9f63f4ec3cf28e93fd482b18000000000000000100000000000000010000000000000020c197f4a8824867039691d253f3aabc0aeadbd548577f61e901b469ba8e81b348000000000000000100000000000000000000000000000020580e91949e50afae5b838c9689875cb0378f05c69de9eb4bbdfa87dc8eff62000000000000000001000000000000000100000000000000209576be5e5da6b2eb368bfdcbab0970717630f25877a6b9664c345d452e1514d800000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000240000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000201dd42fc16aa12a31fa90168725c897d861f7e36b8c27441380a55b1025146bcc000000000000000100000000000000010000000000000020a80602202c5ebf9b0347c9106ef91bf2c358dd05edffa7aa90f9b9bd47fd10500000000000000001000000000000000000000000000000207f46e4b2eb51c53f78fb1f6b5310d84183eb4d3898e8ddf3b3eb940fc2ad8f4400000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c000000000000000050000000000000002d00000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a52000000000000000600000000000000010000000000000000000000000000002034378e2fb55078ca5da30a6fe91ba0dae39d33d2b95d1dd4fd4148d4be2a46de00000000000000010000000000000001000000000000002054bec82bc65e54f3129bc2dae46f394d92567e7676827cf517fd4c2047ce1b130000000000000001000000000000000000000000000000209795fad4596abb4752896d71b500cd50ba7b0d4824c458d03dc2b743fb2716790000000000000001000000000000000000000000000000205fd8d9df0c331cfa20f64999fe66f33de448a606f091fea0c4dc069567a12897000000000000000100000000000000010000000000000020e2ccf429fff0b34d816b93c8cf8b501b432d2c724ae13ebe64396e3bfb8af03f0000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff3000000000000000d0000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000005000000000000000100000000000000000000000000000020f1131acf7831f45368a2180dbbc59a2fb3398178fbdd5b4c2f2b4de497392a340000000000000001000000000000000100000000000000204d210ac66f1b41e1dacbe22f0f41d439bfb14246cb5535d4758108651602f946000000000000000100000000000000000000000000000020717aa0f0c0c84ee1c210f9323b5e8902641d8e0d5d949b130ee0b1969a3b54630000000000000001000000000000000000000000000000200f50117c3ce3dfc9bdb739106b82b69ec339192a4188f849239eebcce0a8f99d000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000001300000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a520000000000000006000000000000000100000000000000000000000000000020a900f8d69aa2a4e42f967d5fa5ef1ee59e90f63d3e95b16191cb0517acdeceac000000000000000100000000000000000000000000000020739e0129365f5b7b7fb33ae7df6a990819bed7110957ae52ba8109bd80a6aaa8000000000000000100000000000000010000000000000020dbe723c95d53e888025230e870e41af730db04f5a4fe5fdeb1444ecf96dac43800000000000000010000000000000001000000000000002092f224d4330575d99eabeae0d22592e4d2b1c69b7a59cef795c95717b5f99f98000000000000000100000000000000000000000000000020717cf27ef4c071050576ebf25c279dec9137f91ef5f75393f4be06096f35deca000000000000000100000000000000010000000000000020e23d8c06617ff978126b810a32d3a07f2882af6f1b32d03ceb9be224b40599db00000000000000130000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000005000000000000000100000000000000000000000000000020134db5284888ab7a3fc650757544b33fe5a392a2a8b382a25435ce1437dfacdb00000000000000010000000000000000000000000000002078188c0fd9d67ff25422ff3e634791c837bc9701979185b64ecb75340ddf79000000000000000001000000000000000100000000000000209a8a20fac17241a3ad71ba8d38361ad4431f3a6dcb0f48fcbb99bdfb4e6a82580000000000000001000000000000000100000000000000205e7c333b5ced6fbaaf857538f4dfda3c8f41285a1146441f22d1b85d3552f7f80000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000001400000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a520000000000000006000000000000000100000000000000010000000000000020843636fab1a56120bf7e8f545fa4c1f77282f7fb67f36ff219dbaa3e40d663d7000000000000000100000000000000010000000000000020d5fcdc79e96f738abb8bb277ed605b7b737c808b1f5340ac27c29b5aa8a30c69000000000000000100000000000000000000000000000020467e16c3f624841e187325144d484a0214f2a3f1d61a010347a7031fe49ba5db00000000000000010000000000000001000000000000002092f224d4330575d99eabeae0d22592e4d2b1c69b7a59cef795c95717b5f99f98000000000000000100000000000000000000000000000020717cf27ef4c071050576ebf25c279dec9137f91ef5f75393f4be06096f35deca000000000000000100000000000000010000000000000020e23d8c06617ff978126b810a32d3a07f2882af6f1b32d03ceb9be224b40599db00000000000000140000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d800000000000000050000000000000001000000000000000100000000000000204b6c0adaf43122fc51efffb126ff8dc4b62eb844e3bb96bb3ab89512df2081480000000000000001000000000000000100000000000000208ee407d3a705972308803e3ef706592c6c4dbc12b57ae325be89e06aa21756f4000000000000000100000000000000000000000000000020f314ba3bc4cdc6aa1771e68b46f4959495357441a69c83ffd997b68abd8736ce0000000000000001000000000000000100000000000000205e7c333b5ced6fbaaf857538f4dfda3c8f41285a1146441f22d1b85d3552f7f80000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000001900000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000000000000000000201b4ee497276f54facc111064a7458618a78f2945bde6cc8ced61886b2e81edc4000000000000000100000000000000010000000000000020cc7f88eec740d2ce6423e6aacd57ba8e3a0ae8f8d82a4dd2c590487e024b0d39000000000000000100000000000000010000000000000020a5951adbe54295995b321601efc70d1a6b54b1501ca822bd44b4bd9673215cf80000000000000001000000000000000000000000000000203366094542a9bb0027f595d72d4acf58ac651f8d8a396a3edccce48b7f1dc4f6000000000000000100000000000000000000000000000020717cf27ef4c071050576ebf25c279dec9137f91ef5f75393f4be06096f35deca000000000000000100000000000000010000000000000020e23d8c06617ff978126b810a32d3a07f2882af6f1b32d03ceb9be224b40599db00000000000000190000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d8000000000000000500000000000000010000000000000000000000000000002025e15e761f13338dcb65970e50346cd28655e87f0a50141bf9980de8b4052bb9000000000000000100000000000000010000000000000020c19e858aae236eec65be6125818e9b5fcb129062924e92f593a88d365e84e4f20000000000000001000000000000000100000000000000209aeb1ace25b05010556a2534a94e7ade975ac78d6e209d0eef28d26c71fb227f0000000000000001000000000000000000000000000000203380c8b7ddcd8cf40c958ac4a89037dfd1abfcddcca7d43760cd9d2a1925ae310000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000003e00000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000100000000000000208cfff48a2a87b77bb58c206afe9e5754d5bcba64ef4956a1e689927ae5fa9f390000000000000001000000000000000000000000000000202f2f5f5149430cee1516291f286d1cffef0d5b4e32fb27f15ddc098248c9b9ff000000000000000100000000000000000000000000000020fcd7a03b387505e7bd0397267678c37cc846481c7eb22b0b99b71c620942e529000000000000000100000000000000000000000000000020e5cdf01c705a4eb05bf7662c6aa117ad6b5ad8d82e1f146aa6324940d44b1779000000000000000100000000000000000000000000000020c485da17acf4a71ee4d9f6e69c25da20bab0524ccf1b0961e2f83e12c71d81110000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff3000000000000001e0000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d800000000000000050000000000000001000000000000000100000000000000208f52559a6b4ea42c2621e9b2e90fc81cdc467bce63e242c8f51ff38114aba16a00000000000000010000000000000000000000000000002003b94d966c6313e6583e5b2cd1d9aff0650e33553dacd0a69df0315832c607250000000000000001000000000000000000000000000000202a9eb3d5dcf6062684f2599075831e69e7b27433e5112076bf9a949e1c63a5f60000000000000001000000000000000000000000000000203380c8b7ddcd8cf40c958ac4a89037dfd1abfcddcca7d43760cd9d2a1925ae310000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000002400000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000100000000000000202fbb43f86a2045cb28a30f5df0c77ba4fbc9eb46bbc844434e755112fb3c61600000000000000001000000000000000100000000000000200e2053b2a7d29ee9112ecad513f15e9f85b7db29e74c57810cfc8d723e9678d800000000000000010000000000000000000000000000002033cea7f7501bde4541f3bb306a5cf7d1abb892582b69ef7fee1f059b220db5ea000000000000000100000000000000010000000000000020254f0f339cc7d05c9ffe26a48a9514580c0b4ea639e69198b29f17b60b0fcf79000000000000000100000000000000010000000000000020e2ccf429fff0b34d816b93c8cf8b501b432d2c724ae13ebe64396e3bfb8af03f0000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000040000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d8000000000000000500000000000000010000000000000001000000000000002063d92163774308f9f00e2432e954df872ea54239218040953b39e61792f0e08e00000000000000010000000000000001000000000000002017c47342b6615eb13e52578ce56bf523e5ed59d934d3aa869275198b0d0598cc000000000000000100000000000000000000000000000020f6d7c98e41f6386cda74fab86be9ef1624e94a1a8fd713610bee389c486a354600000000000000010000000000000001000000000000002079bb67cadbe7b316fc88dd4567dbe9ab632fd09d956d9007800eaf6ce51f07aa000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000003f00000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a520000000000000006000000000000000100000000000000000000000000000020b6acf652abf7ab0ca359c5563caa4e2287d2a5d47db36ec2202bf9737672f4760000000000000001000000000000000000000000000000202f2f5f5149430cee1516291f286d1cffef0d5b4e32fb27f15ddc098248c9b9ff000000000000000100000000000000000000000000000020fcd7a03b387505e7bd0397267678c37cc846481c7eb22b0b99b71c620942e529000000000000000100000000000000000000000000000020e5cdf01c705a4eb05bf7662c6aa117ad6b5ad8d82e1f146aa6324940d44b1779000000000000000100000000000000000000000000000020c485da17acf4a71ee4d9f6e69c25da20bab0524ccf1b0961e2f83e12c71d81110000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff3000000000000001f0000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d800000000000000050000000000000001000000000000000000000000000000205b8b87573e811bf2cec250726bf5602869ac680d82333414e85103e1f123e27400000000000000010000000000000000000000000000002003b94d966c6313e6583e5b2cd1d9aff0650e33553dacd0a69df0315832c607250000000000000001000000000000000000000000000000202a9eb3d5dcf6062684f2599075831e69e7b27433e5112076bf9a949e1c63a5f60000000000000001000000000000000000000000000000203380c8b7ddcd8cf40c958ac4a89037dfd1abfcddcca7d43760cd9d2a1925ae310000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000003400000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000100000000000000201518d3ba92b220fd4762298132f6a5a36e6d15de48d84d9da31f35e1b0b2c719000000000000000100000000000000010000000000000020b8e0b3d7bafd43fb584758afc4f1647cd28927a64f7e9fca9afeac0c04cc2e2c000000000000000100000000000000000000000000000020ad80e9adb163e8795ed0047d6a93464053698887bd2a3cf378faf4a4d380d4e000000000000000010000000000000001000000000000002084279b36d927c1e13d0a899ddfb927201990d578bf00f68098464ed390fd4f50000000000000000100000000000000000000000000000020c485da17acf4a71ee4d9f6e69c25da20bab0524ccf1b0961e2f83e12c71d81110000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000140000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d800000000000000050000000000000001000000000000000100000000000000204b6c0adaf43122fc51efffb126ff8dc4b62eb844e3bb96bb3ab89512df2081480000000000000001000000000000000100000000000000208ee407d3a705972308803e3ef706592c6c4dbc12b57ae325be89e06aa21756f4000000000000000100000000000000000000000000000020f314ba3bc4cdc6aa1771e68b46f4959495357441a69c83ffd997b68abd8736ce0000000000000001000000000000000100000000000000205e7c333b5ced6fbaaf857538f4dfda3c8f41285a1146441f22d1b85d3552f7f80000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000000900000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a520000000000000006000000000000000100000000000000000000000000000020ae62cb401a61607e89152d189ef5520ffa4ac2db7c9ca6d4845c2043eb0685b60000000000000001000000000000000100000000000000208d6b2d073a4b0a8925b3d996c1f657f15d4974edbfc8fd0158ad80905d092ce10000000000000001000000000000000100000000000000202a989c2625b73ed45435501341cf66be8d369e2049e8d882f455faf68ccbb6ad00000000000000010000000000000000000000000000002036dc00cee9075b11cf488d36d250e52feb6f9bb0f250e77ecf3cfa043b0c3012000000000000000100000000000000010000000000000020d2813f6f1bfd51edc460751a1055406bd25a2a0301eb25d9fd008a44f2c14eec000000000000000100000000000000010000000000000020e23d8c06617ff978126b810a32d3a07f2882af6f1b32d03ceb9be224b40599db00000000000000090000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d8000000000000000500000000000000010000000000000000000000000000002057e97218aa99311d30da486f48608ccbf70743154589bfcb9615e1689a021303000000000000000100000000000000010000000000000020f36cb583b7d8364b629b42d2c4683e8a6c59e8143f356b5c0ee72fe5638cc889000000000000000100000000000000010000000000000020b111f6a2f5c3e605b9b1ae29bcd9c4e69a2fdd6757f91ed0b745f2a4c832b0800000000000000001000000000000000000000000000000200f50117c3ce3dfc9bdb739106b82b69ec339192a4188f849239eebcce0a8f99d000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000001300000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a520000000000000006000000000000000100000000000000000000000000000020a900f8d69aa2a4e42f967d5fa5ef1ee59e90f63d3e95b16191cb0517acdeceac000000000000000100000000000000000000000000000020739e0129365f5b7b7fb33ae7df6a990819bed7110957ae52ba8109bd80a6aaa8000000000000000100000000000000010000000000000020dbe723c95d53e888025230e870e41af730db04f5a4fe5fdeb1444ecf96dac43800000000000000010000000000000001000000000000002092f224d4330575d99eabeae0d22592e4d2b1c69b7a59cef795c95717b5f99f98000000000000000100000000000000000000000000000020717cf27ef4c071050576ebf25c279dec9137f91ef5f75393f4be06096f35deca000000000000000100000000000000010000000000000020e23d8c06617ff978126b810a32d3a07f2882af6f1b32d03ceb9be224b40599db00000000000000130000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000005000000000000000100000000000000000000000000000020134db5284888ab7a3fc650757544b33fe5a392a2a8b382a25435ce1437dfacdb00000000000000010000000000000000000000000000002078188c0fd9d67ff25422ff3e634791c837bc9701979185b64ecb75340ddf79000000000000000001000000000000000100000000000000209a8a20fac17241a3ad71ba8d38361ad4431f3a6dcb0f48fcbb99bdfb4e6a82580000000000000001000000000000000100000000000000205e7c333b5ced6fbaaf857538f4dfda3c8f41285a1146441f22d1b85d3552f7f80000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000002800000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000100000000000000206e6a7c4caa7f9372b2a94d9a4778676268772c312546c1ec21e46cf17e178e7f0000000000000001000000000000000100000000000000209ab444c903943e968ce61bc9e4fc97e6a4048595739a4d14f76d4b53820ea824000000000000000100000000000000010000000000000020730d7a13da4f0168725c62ef54b8d973294fc6fdc65e7ba505336da7600aa4c00000000000000001000000000000000000000000000000205fd8d9df0c331cfa20f64999fe66f33de448a606f091fea0c4dc069567a12897000000000000000100000000000000010000000000000020e2ccf429fff0b34d816b93c8cf8b501b432d2c724ae13ebe64396e3bfb8af03f0000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000080000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d800000000000000050000000000000001000000000000000100000000000000205e19e52558da61a0a1a0e1e0b4884e18e944d55b37bf5995daaabf48eebda639000000000000000100000000000000010000000000000020f36cb583b7d8364b629b42d2c4683e8a6c59e8143f356b5c0ee72fe5638cc889000000000000000100000000000000010000000000000020b111f6a2f5c3e605b9b1ae29bcd9c4e69a2fdd6757f91ed0b745f2a4c832b0800000000000000001000000000000000000000000000000200f50117c3ce3dfc9bdb739106b82b69ec339192a4188f849239eebcce0a8f99d000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000002700000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a520000000000000006000000000000000100000000000000000000000000000020e2a2e3af59109bc9c5d40a1a66bb176e50c5e27d94d26e2076c1d8edb7416a9e00000000000000010000000000000000000000000000002023430c412f000ad0bcd2f99b81d49e936fef59bad9c25859c55019ec77545af000000000000000010000000000000000000000000000002033cea7f7501bde4541f3bb306a5cf7d1abb892582b69ef7fee1f059b220db5ea000000000000000100000000000000010000000000000020254f0f339cc7d05c9ffe26a48a9514580c0b4ea639e69198b29f17b60b0fcf79000000000000000100000000000000010000000000000020e2ccf429fff0b34d816b93c8cf8b501b432d2c724ae13ebe64396e3bfb8af03f0000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000070000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d800000000000000050000000000000001000000000000000000000000000000203d467c25ad853000d33007729d1d9e1fce027aa2a21f28e3bfa5c34e189839d9000000000000000100000000000000000000000000000020d638ae86675ac5b8acda0e9e6bbaf7a4097a53a60b84c1ddc92dc7a8bdb36bee000000000000000100000000000000000000000000000020f6d7c98e41f6386cda74fab86be9ef1624e94a1a8fd713610bee389c486a354600000000000000010000000000000001000000000000002079bb67cadbe7b316fc88dd4567dbe9ab632fd09d956d9007800eaf6ce51f07aa000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000001e00000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000100000000000000206ebae3fc6f5fd5b27039d2e721ea73edad27ddbb07d808ea06f48547f2965ddf0000000000000001000000000000000000000000000000204a1e2b9840f673c230a1186266d392afe32745abc71e6024c5e5672acfa525b1000000000000000100000000000000000000000000000020f693a7b1859b9a2622999b0191e9268f0431d46fa0c6393715eddcfb90b8a51c0000000000000001000000000000000000000000000000203366094542a9bb0027f595d72d4acf58ac651f8d8a396a3edccce48b7f1dc4f6000000000000000100000000000000000000000000000020717cf27ef4c071050576ebf25c279dec9137f91ef5f75393f4be06096f35deca000000000000000100000000000000010000000000000020e23d8c06617ff978126b810a32d3a07f2882af6f1b32d03ceb9be224b40599db000000000000001e0000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d800000000000000050000000000000001000000000000000100000000000000208f52559a6b4ea42c2621e9b2e90fc81cdc467bce63e242c8f51ff38114aba16a00000000000000010000000000000000000000000000002003b94d966c6313e6583e5b2cd1d9aff0650e33553dacd0a69df0315832c607250000000000000001000000000000000000000000000000202a9eb3d5dcf6062684f2599075831e69e7b27433e5112076bf9a949e1c63a5f60000000000000001000000000000000000000000000000203380c8b7ddcd8cf40c958ac4a89037dfd1abfcddcca7d43760cd9d2a1925ae310000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000003900000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000000000000000000209a7eb060f49f51b55498aae9e574b1687d4b65de1561f544b01f1dfa42e0f00500000000000000010000000000000001000000000000002029123ec1253c9a7988e18d82dbc6b567895ffa96a667ecf43edb6c459bfd580c00000000000000010000000000000001000000000000002063892ea07d238f9010c6c9add415f903820c0493fd6e8053f83e947d4d3c8000000000000000000100000000000000000000000000000020e5cdf01c705a4eb05bf7662c6aa117ad6b5ad8d82e1f146aa6324940d44b1779000000000000000100000000000000000000000000000020c485da17acf4a71ee4d9f6e69c25da20bab0524ccf1b0961e2f83e12c71d81110000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000190000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d8000000000000000500000000000000010000000000000000000000000000002025e15e761f13338dcb65970e50346cd28655e87f0a50141bf9980de8b4052bb9000000000000000100000000000000010000000000000020c19e858aae236eec65be6125818e9b5fcb129062924e92f593a88d365e84e4f20000000000000001000000000000000100000000000000209aeb1ace25b05010556a2534a94e7ade975ac78d6e209d0eef28d26c71fb227f0000000000000001000000000000000000000000000000203380c8b7ddcd8cf40c958ac4a89037dfd1abfcddcca7d43760cd9d2a1925ae310000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000002500000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a520000000000000006000000000000000100000000000000000000000000000020aad435f86a49bdd209464a7467ba8862786a120b4e5dbedd4e30454e28094a890000000000000001000000000000000100000000000000200e2053b2a7d29ee9112ecad513f15e9f85b7db29e74c57810cfc8d723e9678d800000000000000010000000000000000000000000000002033cea7f7501bde4541f3bb306a5cf7d1abb892582b69ef7fee1f059b220db5ea000000000000000100000000000000010000000000000020254f0f339cc7d05c9ffe26a48a9514580c0b4ea639e69198b29f17b60b0fcf79000000000000000100000000000000010000000000000020e2ccf429fff0b34d816b93c8cf8b501b432d2c724ae13ebe64396e3bfb8af03f0000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000050000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000005000000000000000100000000000000000000000000000020c96ff27465e07bcc23e2348c3d4adb82d8eb34cbedc306e88145b9f2865fc15f00000000000000010000000000000001000000000000002017c47342b6615eb13e52578ce56bf523e5ed59d934d3aa869275198b0d0598cc000000000000000100000000000000000000000000000020f6d7c98e41f6386cda74fab86be9ef1624e94a1a8fd713610bee389c486a354600000000000000010000000000000001000000000000002079bb67cadbe7b316fc88dd4567dbe9ab632fd09d956d9007800eaf6ce51f07aa000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000002a00000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000100000000000000205ca3b0ca582f65162c6a999974c5628ce5c6279fb8c9382d0c5e9b823468cdc800000000000000010000000000000000000000000000002093831ded572bae0895268c752ba81e8ac1aa2ad6dd74af73d9d06f12134cd078000000000000000100000000000000010000000000000020730d7a13da4f0168725c62ef54b8d973294fc6fdc65e7ba505336da7600aa4c00000000000000001000000000000000000000000000000205fd8d9df0c331cfa20f64999fe66f33de448a606f091fea0c4dc069567a12897000000000000000100000000000000010000000000000020e2ccf429fff0b34d816b93c8cf8b501b432d2c724ae13ebe64396e3bfb8af03f0000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff3000000000000000a0000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000005000000000000000100000000000000010000000000000020d9b5ad58050c8afe38335c5d3e8f8ab8c11d6046220cd89f0e0f70c1f7feba1f0000000000000001000000000000000000000000000000205a84f7a3d2763c5410a9c6689db8ad79cd35c4065f80573d947872ea4a0afd65000000000000000100000000000000010000000000000020b111f6a2f5c3e605b9b1ae29bcd9c4e69a2fdd6757f91ed0b745f2a4c832b0800000000000000001000000000000000000000000000000200f50117c3ce3dfc9bdb739106b82b69ec339192a4188f849239eebcce0a8f99d000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000000400000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000100000000000000201c5cb540902c8f52d1402e4a3bdd11c6bfe1b92b29577bb66be8763a68927a780000000000000001000000000000000100000000000000205cf14d0c0a22d1559a1eeaaabc15c8cf1b04bc1bb06dc2595bc8839508b6fe2f00000000000000010000000000000000000000000000002077d3d120f3a7146b82980826e7021808c63ef22365835fda5471961847a9cb0c0000000000000001000000000000000100000000000000202266d1df8708f81bd60142f013fc86b5a660ea5e8f6ecc94f497f677e3f086b3000000000000000100000000000000010000000000000020d2813f6f1bfd51edc460751a1055406bd25a2a0301eb25d9fd008a44f2c14eec000000000000000100000000000000010000000000000020e23d8c06617ff978126b810a32d3a07f2882af6f1b32d03ceb9be224b40599db00000000000000040000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d8000000000000000500000000000000010000000000000001000000000000002063d92163774308f9f00e2432e954df872ea54239218040953b39e61792f0e08e00000000000000010000000000000001000000000000002017c47342b6615eb13e52578ce56bf523e5ed59d934d3aa869275198b0d0598cc000000000000000100000000000000000000000000000020f6d7c98e41f6386cda74fab86be9ef1624e94a1a8fd713610bee389c486a354600000000000000010000000000000001000000000000002079bb67cadbe7b316fc88dd4567dbe9ab632fd09d956d9007800eaf6ce51f07aa000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000000700000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a52000000000000000600000000000000010000000000000000000000000000002038448219ee34c99646c435026adec9d681a458312637403a0819515d32f3046a000000000000000100000000000000000000000000000020f9c8becd54b7e4ae6e9a17fddaf333d894d935be57d7323c14eee61f43233eef00000000000000010000000000000000000000000000002077d3d120f3a7146b82980826e7021808c63ef22365835fda5471961847a9cb0c0000000000000001000000000000000100000000000000202266d1df8708f81bd60142f013fc86b5a660ea5e8f6ecc94f497f677e3f086b3000000000000000100000000000000010000000000000020d2813f6f1bfd51edc460751a1055406bd25a2a0301eb25d9fd008a44f2c14eec000000000000000100000000000000010000000000000020e23d8c06617ff978126b810a32d3a07f2882af6f1b32d03ceb9be224b40599db00000000000000070000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d800000000000000050000000000000001000000000000000000000000000000203d467c25ad853000d33007729d1d9e1fce027aa2a21f28e3bfa5c34e189839d9000000000000000100000000000000000000000000000020d638ae86675ac5b8acda0e9e6bbaf7a4097a53a60b84c1ddc92dc7a8bdb36bee000000000000000100000000000000000000000000000020f6d7c98e41f6386cda74fab86be9ef1624e94a1a8fd713610bee389c486a354600000000000000010000000000000001000000000000002079bb67cadbe7b316fc88dd4567dbe9ab632fd09d956d9007800eaf6ce51f07aa000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000002600000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000100000000000000202df13d86ed04542c170101daaabb66c20d12e15905ee086de44a3cfcd0949dde00000000000000010000000000000000000000000000002023430c412f000ad0bcd2f99b81d49e936fef59bad9c25859c55019ec77545af000000000000000010000000000000000000000000000002033cea7f7501bde4541f3bb306a5cf7d1abb892582b69ef7fee1f059b220db5ea000000000000000100000000000000010000000000000020254f0f339cc7d05c9ffe26a48a9514580c0b4ea639e69198b29f17b60b0fcf79000000000000000100000000000000010000000000000020e2ccf429fff0b34d816b93c8cf8b501b432d2c724ae13ebe64396e3bfb8af03f0000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000060000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000005000000000000000100000000000000010000000000000020e9dc9e39644b58b891696f63c510e6decff6bd4a3b91ab9664dbd3d26c8f5f2a000000000000000100000000000000000000000000000020d638ae86675ac5b8acda0e9e6bbaf7a4097a53a60b84c1ddc92dc7a8bdb36bee000000000000000100000000000000000000000000000020f6d7c98e41f6386cda74fab86be9ef1624e94a1a8fd713610bee389c486a354600000000000000010000000000000001000000000000002079bb67cadbe7b316fc88dd4567dbe9ab632fd09d956d9007800eaf6ce51f07aa000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000000500000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000000000000000000203214a122955c04f91afa587b74cc612254c9fbf651a892be5d71c53ab2320d4d0000000000000001000000000000000100000000000000205cf14d0c0a22d1559a1eeaaabc15c8cf1b04bc1bb06dc2595bc8839508b6fe2f00000000000000010000000000000000000000000000002077d3d120f3a7146b82980826e7021808c63ef22365835fda5471961847a9cb0c0000000000000001000000000000000100000000000000202266d1df8708f81bd60142f013fc86b5a660ea5e8f6ecc94f497f677e3f086b3000000000000000100000000000000010000000000000020d2813f6f1bfd51edc460751a1055406bd25a2a0301eb25d9fd008a44f2c14eec000000000000000100000000000000010000000000000020e23d8c06617ff978126b810a32d3a07f2882af6f1b32d03ceb9be224b40599db00000000000000050000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000005000000000000000100000000000000000000000000000020c96ff27465e07bcc23e2348c3d4adb82d8eb34cbedc306e88145b9f2865fc15f00000000000000010000000000000001000000000000002017c47342b6615eb13e52578ce56bf523e5ed59d934d3aa869275198b0d0598cc000000000000000100000000000000000000000000000020f6d7c98e41f6386cda74fab86be9ef1624e94a1a8fd713610bee389c486a354600000000000000010000000000000001000000000000002079bb67cadbe7b316fc88dd4567dbe9ab632fd09d956d9007800eaf6ce51f07aa000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000000c00000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a520000000000000006000000000000000100000000000000010000000000000020b318f7575f924f63fc96b063f56099a9451d4f64be759b5baa837daa6d1a76a9000000000000000100000000000000010000000000000020f19956ff46e47aceb570c5652c18bc5ca72b2be49c751ecdd95c23c2aa299cf70000000000000001000000000000000000000000000000204bab1d1d1225804799ecddb6756ce8315eaaf51d8fd525b6d677642d32df5baf00000000000000010000000000000000000000000000002036dc00cee9075b11cf488d36d250e52feb6f9bb0f250e77ecf3cfa043b0c3012000000000000000100000000000000010000000000000020d2813f6f1bfd51edc460751a1055406bd25a2a0301eb25d9fd008a44f2c14eec000000000000000100000000000000010000000000000020e23d8c06617ff978126b810a32d3a07f2882af6f1b32d03ceb9be224b40599db000000000000000c0000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d800000000000000050000000000000001000000000000000100000000000000209848bdc89484c41edf966285f29ec02fcee30e1a87219fd665fa701ac7334ec20000000000000001000000000000000100000000000000204d210ac66f1b41e1dacbe22f0f41d439bfb14246cb5535d4758108651602f946000000000000000100000000000000000000000000000020717aa0f0c0c84ee1c210f9323b5e8902641d8e0d5d949b130ee0b1969a3b54630000000000000001000000000000000000000000000000200f50117c3ce3dfc9bdb739106b82b69ec339192a4188f849239eebcce0a8f99d000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000002400000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000100000000000000202fbb43f86a2045cb28a30f5df0c77ba4fbc9eb46bbc844434e755112fb3c61600000000000000001000000000000000100000000000000200e2053b2a7d29ee9112ecad513f15e9f85b7db29e74c57810cfc8d723e9678d800000000000000010000000000000000000000000000002033cea7f7501bde4541f3bb306a5cf7d1abb892582b69ef7fee1f059b220db5ea000000000000000100000000000000010000000000000020254f0f339cc7d05c9ffe26a48a9514580c0b4ea639e69198b29f17b60b0fcf79000000000000000100000000000000010000000000000020e2ccf429fff0b34d816b93c8cf8b501b432d2c724ae13ebe64396e3bfb8af03f0000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000040000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d8000000000000000500000000000000010000000000000001000000000000002063d92163774308f9f00e2432e954df872ea54239218040953b39e61792f0e08e00000000000000010000000000000001000000000000002017c47342b6615eb13e52578ce56bf523e5ed59d934d3aa869275198b0d0598cc000000000000000100000000000000000000000000000020f6d7c98e41f6386cda74fab86be9ef1624e94a1a8fd713610bee389c486a354600000000000000010000000000000001000000000000002079bb67cadbe7b316fc88dd4567dbe9ab632fd09d956d9007800eaf6ce51f07aa000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000000800000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a52000000000000000600000000000000010000000000000001000000000000002038ca415b7c04239d2bd2d2c34b76356c05dc02c2c474de15d794460511fcc4f10000000000000001000000000000000100000000000000208d6b2d073a4b0a8925b3d996c1f657f15d4974edbfc8fd0158ad80905d092ce10000000000000001000000000000000100000000000000202a989c2625b73ed45435501341cf66be8d369e2049e8d882f455faf68ccbb6ad00000000000000010000000000000000000000000000002036dc00cee9075b11cf488d36d250e52feb6f9bb0f250e77ecf3cfa043b0c3012000000000000000100000000000000010000000000000020d2813f6f1bfd51edc460751a1055406bd25a2a0301eb25d9fd008a44f2c14eec000000000000000100000000000000010000000000000020e23d8c06617ff978126b810a32d3a07f2882af6f1b32d03ceb9be224b40599db00000000000000080000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d800000000000000050000000000000001000000000000000100000000000000205e19e52558da61a0a1a0e1e0b4884e18e944d55b37bf5995daaabf48eebda639000000000000000100000000000000010000000000000020f36cb583b7d8364b629b42d2c4683e8a6c59e8143f356b5c0ee72fe5638cc889000000000000000100000000000000010000000000000020b111f6a2f5c3e605b9b1ae29bcd9c4e69a2fdd6757f91ed0b745f2a4c832b0800000000000000001000000000000000000000000000000200f50117c3ce3dfc9bdb739106b82b69ec339192a4188f849239eebcce0a8f99d000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000003d00000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000000000000000000206253bd7ca45ef876b62e38536da369cca33ab710aed2b2ceba899c2d9e0d72860000000000000001000000000000000100000000000000201b92b2f5d2976e09b930b3dad4a806261e306b0276925ed164483cea8e66f82f000000000000000100000000000000000000000000000020fcd7a03b387505e7bd0397267678c37cc846481c7eb22b0b99b71c620942e529000000000000000100000000000000000000000000000020e5cdf01c705a4eb05bf7662c6aa117ad6b5ad8d82e1f146aa6324940d44b1779000000000000000100000000000000000000000000000020c485da17acf4a71ee4d9f6e69c25da20bab0524ccf1b0961e2f83e12c71d81110000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff3000000000000001d0000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d8000000000000000500000000000000010000000000000000000000000000002006c69d618b41ab442a3e0635d3379cf82ff957e0cb6a7763715887ea1fd42488000000000000000100000000000000010000000000000020e6ef04326bf1c7dc3b1930457d20cb5523eb2e802b2481621ed660a612ae58b90000000000000001000000000000000000000000000000202a9eb3d5dcf6062684f2599075831e69e7b27433e5112076bf9a949e1c63a5f60000000000000001000000000000000000000000000000203380c8b7ddcd8cf40c958ac4a89037dfd1abfcddcca7d43760cd9d2a1925ae310000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000003500000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000000000000000000201140d7cf85b16e9573d6eb5e6a10bec91a9d79e78e73991b10afc0765f13d50b000000000000000100000000000000010000000000000020b8e0b3d7bafd43fb584758afc4f1647cd28927a64f7e9fca9afeac0c04cc2e2c000000000000000100000000000000000000000000000020ad80e9adb163e8795ed0047d6a93464053698887bd2a3cf378faf4a4d380d4e000000000000000010000000000000001000000000000002084279b36d927c1e13d0a899ddfb927201990d578bf00f68098464ed390fd4f50000000000000000100000000000000000000000000000020c485da17acf4a71ee4d9f6e69c25da20bab0524ccf1b0961e2f83e12c71d81110000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000150000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000005000000000000000100000000000000000000000000000020c3108ce1bb34dd4c37fdec882b2bee1710577e9eaf80b5430889471d0ed58ca40000000000000001000000000000000100000000000000208ee407d3a705972308803e3ef706592c6c4dbc12b57ae325be89e06aa21756f4000000000000000100000000000000000000000000000020f314ba3bc4cdc6aa1771e68b46f4959495357441a69c83ffd997b68abd8736ce0000000000000001000000000000000100000000000000205e7c333b5ced6fbaaf857538f4dfda3c8f41285a1146441f22d1b85d3552f7f80000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000000100000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000000000000000000207bc2ab74c220c32fecc9f671db6adc533781b334a1210a1439c6ccfb8786e183000000000000000100000000000000010000000000000020354a792919e0f709c3a3075fb651425844e7f8bf79c04cb1192ac983cb62002f000000000000000100000000000000010000000000000020df4a1dbd4bcd072f004864ea3fd3b118b713d0640138eab1541be09548aa149d0000000000000001000000000000000100000000000000202266d1df8708f81bd60142f013fc86b5a660ea5e8f6ecc94f497f677e3f086b3000000000000000100000000000000010000000000000020d2813f6f1bfd51edc460751a1055406bd25a2a0301eb25d9fd008a44f2c14eec000000000000000100000000000000010000000000000020e23d8c06617ff978126b810a32d3a07f2882af6f1b32d03ceb9be224b40599db00000000000000010000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000005000000000000000100000000000000000000000000000020d4cb811aa6e1e9bcd9ae792b92e896529826ab4d40a6ab26448a9b675e43d3d70000000000000001000000000000000100000000000000202f9805493db688ef4d6dbd58ef8e6d6c8ca1bc67650efce1eccf17b114d04313000000000000000100000000000000010000000000000020e0583fa0fc62603284083a11e62f9d700f13c65c55c9f5fd9382e6f0714060cd00000000000000010000000000000001000000000000002079bb67cadbe7b316fc88dd4567dbe9ab632fd09d956d9007800eaf6ce51f07aa000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000003c00000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000100000000000000205e492b5373347bfff2421b8c9d467b61e862fcb9b389b19c49066652596a05490000000000000001000000000000000100000000000000201b92b2f5d2976e09b930b3dad4a806261e306b0276925ed164483cea8e66f82f000000000000000100000000000000000000000000000020fcd7a03b387505e7bd0397267678c37cc846481c7eb22b0b99b71c620942e529000000000000000100000000000000000000000000000020e5cdf01c705a4eb05bf7662c6aa117ad6b5ad8d82e1f146aa6324940d44b1779000000000000000100000000000000000000000000000020c485da17acf4a71ee4d9f6e69c25da20bab0524ccf1b0961e2f83e12c71d81110000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff3000000000000001c0000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000005000000000000000100000000000000010000000000000020044f90bf13c4d14559d0ae845670f49881216cdeb16d893a841a145c1c151e6f000000000000000100000000000000010000000000000020e6ef04326bf1c7dc3b1930457d20cb5523eb2e802b2481621ed660a612ae58b90000000000000001000000000000000000000000000000202a9eb3d5dcf6062684f2599075831e69e7b27433e5112076bf9a949e1c63a5f60000000000000001000000000000000000000000000000203380c8b7ddcd8cf40c958ac4a89037dfd1abfcddcca7d43760cd9d2a1925ae310000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000003400000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000100000000000000201518d3ba92b220fd4762298132f6a5a36e6d15de48d84d9da31f35e1b0b2c719000000000000000100000000000000010000000000000020b8e0b3d7bafd43fb584758afc4f1647cd28927a64f7e9fca9afeac0c04cc2e2c000000000000000100000000000000000000000000000020ad80e9adb163e8795ed0047d6a93464053698887bd2a3cf378faf4a4d380d4e000000000000000010000000000000001000000000000002084279b36d927c1e13d0a899ddfb927201990d578bf00f68098464ed390fd4f50000000000000000100000000000000000000000000000020c485da17acf4a71ee4d9f6e69c25da20bab0524ccf1b0961e2f83e12c71d81110000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000140000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d800000000000000050000000000000001000000000000000100000000000000204b6c0adaf43122fc51efffb126ff8dc4b62eb844e3bb96bb3ab89512df2081480000000000000001000000000000000100000000000000208ee407d3a705972308803e3ef706592c6c4dbc12b57ae325be89e06aa21756f4000000000000000100000000000000000000000000000020f314ba3bc4cdc6aa1771e68b46f4959495357441a69c83ffd997b68abd8736ce0000000000000001000000000000000100000000000000205e7c333b5ced6fbaaf857538f4dfda3c8f41285a1146441f22d1b85d3552f7f80000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000002300000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a52000000000000000600000000000000010000000000000000000000000000002079637d516d5ae7dfa560e0534abe1e5704d6a95320ff37fea4359aac8239809f0000000000000001000000000000000000000000000000209198a37dd49f1d8d1b34865d68edee965db03cffc3245f7b6d83a947698e94b30000000000000001000000000000000100000000000000205e80078f6c99aefb85050dc5d528e94bba2943c5502fc7592d8a484c2a3cdf2c000000000000000100000000000000010000000000000020254f0f339cc7d05c9ffe26a48a9514580c0b4ea639e69198b29f17b60b0fcf79000000000000000100000000000000010000000000000020e2ccf429fff0b34d816b93c8cf8b501b432d2c724ae13ebe64396e3bfb8af03f0000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000030000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000005000000000000000100000000000000000000000000000020a2f16a0dc709011bdfdb1b8287616b6a925cfa6ba473e983759bde127551cad90000000000000001000000000000000000000000000000204b4bc4316e1c1f018e8ad5acfb786fd40f1c5421112a43733ce53bd6d22656d3000000000000000100000000000000010000000000000020e0583fa0fc62603284083a11e62f9d700f13c65c55c9f5fd9382e6f0714060cd00000000000000010000000000000001000000000000002079bb67cadbe7b316fc88dd4567dbe9ab632fd09d956d9007800eaf6ce51f07aa000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000003800000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a520000000000000006000000000000000100000000000000010000000000000020c9962b74ba6d12e01ee71993ee8b33d677355137e6234744c45a0ed32afaf50400000000000000010000000000000001000000000000002029123ec1253c9a7988e18d82dbc6b567895ffa96a667ecf43edb6c459bfd580c00000000000000010000000000000001000000000000002063892ea07d238f9010c6c9add415f903820c0493fd6e8053f83e947d4d3c8000000000000000000100000000000000000000000000000020e5cdf01c705a4eb05bf7662c6aa117ad6b5ad8d82e1f146aa6324940d44b1779000000000000000100000000000000000000000000000020c485da17acf4a71ee4d9f6e69c25da20bab0524ccf1b0961e2f83e12c71d81110000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000180000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d800000000000000050000000000000001000000000000000100000000000000201f64fc21496be28b8f5e18c208a860fb42974bfeafed47e6669cb6107aa3232a000000000000000100000000000000010000000000000020c19e858aae236eec65be6125818e9b5fcb129062924e92f593a88d365e84e4f20000000000000001000000000000000100000000000000209aeb1ace25b05010556a2534a94e7ade975ac78d6e209d0eef28d26c71fb227f0000000000000001000000000000000000000000000000203380c8b7ddcd8cf40c958ac4a89037dfd1abfcddcca7d43760cd9d2a1925ae310000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000000100000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000000000000000000207bc2ab74c220c32fecc9f671db6adc533781b334a1210a1439c6ccfb8786e183000000000000000100000000000000010000000000000020354a792919e0f709c3a3075fb651425844e7f8bf79c04cb1192ac983cb62002f000000000000000100000000000000010000000000000020df4a1dbd4bcd072f004864ea3fd3b118b713d0640138eab1541be09548aa149d0000000000000001000000000000000100000000000000202266d1df8708f81bd60142f013fc86b5a660ea5e8f6ecc94f497f677e3f086b3000000000000000100000000000000010000000000000020d2813f6f1bfd51edc460751a1055406bd25a2a0301eb25d9fd008a44f2c14eec000000000000000100000000000000010000000000000020e23d8c06617ff978126b810a32d3a07f2882af6f1b32d03ceb9be224b40599db00000000000000010000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000005000000000000000100000000000000000000000000000020d4cb811aa6e1e9bcd9ae792b92e896529826ab4d40a6ab26448a9b675e43d3d70000000000000001000000000000000100000000000000202f9805493db688ef4d6dbd58ef8e6d6c8ca1bc67650efce1eccf17b114d04313000000000000000100000000000000010000000000000020e0583fa0fc62603284083a11e62f9d700f13c65c55c9f5fd9382e6f0714060cd00000000000000010000000000000001000000000000002079bb67cadbe7b316fc88dd4567dbe9ab632fd09d956d9007800eaf6ce51f07aa000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000002500000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a520000000000000006000000000000000100000000000000000000000000000020aad435f86a49bdd209464a7467ba8862786a120b4e5dbedd4e30454e28094a890000000000000001000000000000000100000000000000200e2053b2a7d29ee9112ecad513f15e9f85b7db29e74c57810cfc8d723e9678d800000000000000010000000000000000000000000000002033cea7f7501bde4541f3bb306a5cf7d1abb892582b69ef7fee1f059b220db5ea000000000000000100000000000000010000000000000020254f0f339cc7d05c9ffe26a48a9514580c0b4ea639e69198b29f17b60b0fcf79000000000000000100000000000000010000000000000020e2ccf429fff0b34d816b93c8cf8b501b432d2c724ae13ebe64396e3bfb8af03f0000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000050000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000005000000000000000100000000000000000000000000000020c96ff27465e07bcc23e2348c3d4adb82d8eb34cbedc306e88145b9f2865fc15f00000000000000010000000000000001000000000000002017c47342b6615eb13e52578ce56bf523e5ed59d934d3aa869275198b0d0598cc000000000000000100000000000000000000000000000020f6d7c98e41f6386cda74fab86be9ef1624e94a1a8fd713610bee389c486a354600000000000000010000000000000001000000000000002079bb67cadbe7b316fc88dd4567dbe9ab632fd09d956d9007800eaf6ce51f07aa000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000003300000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a52000000000000000600000000000000010000000000000000000000000000002042ce3bbda4fa0ba78418a854e9b092d17d2df31ed28daba91ed993851409ba9e0000000000000001000000000000000000000000000000204a6c82e62260282dbf672d51d1d25c39f6b0fb858dc3154a3e45c6a90c86bcd40000000000000001000000000000000100000000000000207988d5ca06dee1ff83661265fcfb1bbb7a052029308c3a4f4029c0819cf4e14d00000000000000010000000000000001000000000000002084279b36d927c1e13d0a899ddfb927201990d578bf00f68098464ed390fd4f50000000000000000100000000000000000000000000000020c485da17acf4a71ee4d9f6e69c25da20bab0524ccf1b0961e2f83e12c71d81110000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000130000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000005000000000000000100000000000000000000000000000020134db5284888ab7a3fc650757544b33fe5a392a2a8b382a25435ce1437dfacdb00000000000000010000000000000000000000000000002078188c0fd9d67ff25422ff3e634791c837bc9701979185b64ecb75340ddf79000000000000000001000000000000000100000000000000209a8a20fac17241a3ad71ba8d38361ad4431f3a6dcb0f48fcbb99bdfb4e6a82580000000000000001000000000000000100000000000000205e7c333b5ced6fbaaf857538f4dfda3c8f41285a1146441f22d1b85d3552f7f80000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000003000000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a520000000000000006000000000000000100000000000000010000000000000020784503751b0898a30a6d0383e9db26c0916614ca9497e4d4f30a34c1e5588a5f0000000000000001000000000000000100000000000000205b0a604d2a3c346b0fa6ae2d3def636ed7bf89cb9805d64cdda7064d5705a5a60000000000000001000000000000000100000000000000207988d5ca06dee1ff83661265fcfb1bbb7a052029308c3a4f4029c0819cf4e14d00000000000000010000000000000001000000000000002084279b36d927c1e13d0a899ddfb927201990d578bf00f68098464ed390fd4f50000000000000000100000000000000000000000000000020c485da17acf4a71ee4d9f6e69c25da20bab0524ccf1b0961e2f83e12c71d81110000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000100000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d800000000000000050000000000000001000000000000000100000000000000200ef7f4db5b8d528ef32021426933f849b362dbfa54459a4ad7a7a7bfd7c20f230000000000000001000000000000000100000000000000205288be97d15e57ab4a41e0bb7df42a2a286721d41010927910a04c1fb7972c1d0000000000000001000000000000000100000000000000209a8a20fac17241a3ad71ba8d38361ad4431f3a6dcb0f48fcbb99bdfb4e6a82580000000000000001000000000000000100000000000000205e7c333b5ced6fbaaf857538f4dfda3c8f41285a1146441f22d1b85d3552f7f80000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000003300000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a52000000000000000600000000000000010000000000000000000000000000002042ce3bbda4fa0ba78418a854e9b092d17d2df31ed28daba91ed993851409ba9e0000000000000001000000000000000000000000000000204a6c82e62260282dbf672d51d1d25c39f6b0fb858dc3154a3e45c6a90c86bcd40000000000000001000000000000000100000000000000207988d5ca06dee1ff83661265fcfb1bbb7a052029308c3a4f4029c0819cf4e14d00000000000000010000000000000001000000000000002084279b36d927c1e13d0a899ddfb927201990d578bf00f68098464ed390fd4f50000000000000000100000000000000000000000000000020c485da17acf4a71ee4d9f6e69c25da20bab0524ccf1b0961e2f83e12c71d81110000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000130000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000005000000000000000100000000000000000000000000000020134db5284888ab7a3fc650757544b33fe5a392a2a8b382a25435ce1437dfacdb00000000000000010000000000000000000000000000002078188c0fd9d67ff25422ff3e634791c837bc9701979185b64ecb75340ddf79000000000000000001000000000000000100000000000000209a8a20fac17241a3ad71ba8d38361ad4431f3a6dcb0f48fcbb99bdfb4e6a82580000000000000001000000000000000100000000000000205e7c333b5ced6fbaaf857538f4dfda3c8f41285a1146441f22d1b85d3552f7f80000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000002100000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000000000000000000207b76c018c077a4ce45e5783453caa03ffb5648b2c87082c775580eef17893cfd000000000000000100000000000000010000000000000020e9a606cd38a94b42330d291671a2972f93d93016feb3cfef278e291b2cb87dd70000000000000001000000000000000100000000000000205e80078f6c99aefb85050dc5d528e94bba2943c5502fc7592d8a484c2a3cdf2c000000000000000100000000000000010000000000000020254f0f339cc7d05c9ffe26a48a9514580c0b4ea639e69198b29f17b60b0fcf79000000000000000100000000000000010000000000000020e2ccf429fff0b34d816b93c8cf8b501b432d2c724ae13ebe64396e3bfb8af03f0000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000010000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000005000000000000000100000000000000000000000000000020d4cb811aa6e1e9bcd9ae792b92e896529826ab4d40a6ab26448a9b675e43d3d70000000000000001000000000000000100000000000000202f9805493db688ef4d6dbd58ef8e6d6c8ca1bc67650efce1eccf17b114d04313000000000000000100000000000000010000000000000020e0583fa0fc62603284083a11e62f9d700f13c65c55c9f5fd9382e6f0714060cd00000000000000010000000000000001000000000000002079bb67cadbe7b316fc88dd4567dbe9ab632fd09d956d9007800eaf6ce51f07aa000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f8000000000000001000000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000100000000000000204d9dfb0e0e171169d1007b77dc56f53151761e3ee807395aeeb6d33b69d68ebb000000000000000100000000000000010000000000000020d014bcc9776f76484319336426e22b822516727884603894d7dec602add277df000000000000000100000000000000010000000000000020dbe723c95d53e888025230e870e41af730db04f5a4fe5fdeb1444ecf96dac43800000000000000010000000000000001000000000000002092f224d4330575d99eabeae0d22592e4d2b1c69b7a59cef795c95717b5f99f98000000000000000100000000000000000000000000000020717cf27ef4c071050576ebf25c279dec9137f91ef5f75393f4be06096f35deca000000000000000100000000000000010000000000000020e23d8c06617ff978126b810a32d3a07f2882af6f1b32d03ceb9be224b40599db00000000000000100000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d800000000000000050000000000000001000000000000000100000000000000200ef7f4db5b8d528ef32021426933f849b362dbfa54459a4ad7a7a7bfd7c20f230000000000000001000000000000000100000000000000205288be97d15e57ab4a41e0bb7df42a2a286721d41010927910a04c1fb7972c1d0000000000000001000000000000000100000000000000209a8a20fac17241a3ad71ba8d38361ad4431f3a6dcb0f48fcbb99bdfb4e6a82580000000000000001000000000000000100000000000000205e7c333b5ced6fbaaf857538f4dfda3c8f41285a1146441f22d1b85d3552f7f80000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000003900000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000000000000000000209a7eb060f49f51b55498aae9e574b1687d4b65de1561f544b01f1dfa42e0f00500000000000000010000000000000001000000000000002029123ec1253c9a7988e18d82dbc6b567895ffa96a667ecf43edb6c459bfd580c00000000000000010000000000000001000000000000002063892ea07d238f9010c6c9add415f903820c0493fd6e8053f83e947d4d3c8000000000000000000100000000000000000000000000000020e5cdf01c705a4eb05bf7662c6aa117ad6b5ad8d82e1f146aa6324940d44b1779000000000000000100000000000000000000000000000020c485da17acf4a71ee4d9f6e69c25da20bab0524ccf1b0961e2f83e12c71d81110000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000190000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d8000000000000000500000000000000010000000000000000000000000000002025e15e761f13338dcb65970e50346cd28655e87f0a50141bf9980de8b4052bb9000000000000000100000000000000010000000000000020c19e858aae236eec65be6125818e9b5fcb129062924e92f593a88d365e84e4f20000000000000001000000000000000100000000000000209aeb1ace25b05010556a2534a94e7ade975ac78d6e209d0eef28d26c71fb227f0000000000000001000000000000000000000000000000203380c8b7ddcd8cf40c958ac4a89037dfd1abfcddcca7d43760cd9d2a1925ae310000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000001500000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000000000000000000200303792884ab3f8fe013aea3a7d8bec09318fde908e47010295cbe43305d9dfa000000000000000100000000000000010000000000000020d5fcdc79e96f738abb8bb277ed605b7b737c808b1f5340ac27c29b5aa8a30c69000000000000000100000000000000000000000000000020467e16c3f624841e187325144d484a0214f2a3f1d61a010347a7031fe49ba5db00000000000000010000000000000001000000000000002092f224d4330575d99eabeae0d22592e4d2b1c69b7a59cef795c95717b5f99f98000000000000000100000000000000000000000000000020717cf27ef4c071050576ebf25c279dec9137f91ef5f75393f4be06096f35deca000000000000000100000000000000010000000000000020e23d8c06617ff978126b810a32d3a07f2882af6f1b32d03ceb9be224b40599db00000000000000150000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d80000000000000005000000000000000100000000000000000000000000000020c3108ce1bb34dd4c37fdec882b2bee1710577e9eaf80b5430889471d0ed58ca40000000000000001000000000000000100000000000000208ee407d3a705972308803e3ef706592c6c4dbc12b57ae325be89e06aa21756f4000000000000000100000000000000000000000000000020f314ba3bc4cdc6aa1771e68b46f4959495357441a69c83ffd997b68abd8736ce0000000000000001000000000000000100000000000000205e7c333b5ced6fbaaf857538f4dfda3c8f41285a1146441f22d1b85d3552f7f80000000000000001000000000000000000000000000000204b887abdac3ca0d1de7b931b1db2211407b4cd0eeec75204b43bd68dba33c4e4000000000000002400000000000000204fc6ddf5dadf91a54f7c12647a52f5b5b4a84b261a89d917cdc0159fdcd95a5200000000000000060000000000000001000000000000000100000000000000202fbb43f86a2045cb28a30f5df0c77ba4fbc9eb46bbc844434e755112fb3c61600000000000000001000000000000000100000000000000200e2053b2a7d29ee9112ecad513f15e9f85b7db29e74c57810cfc8d723e9678d800000000000000010000000000000000000000000000002033cea7f7501bde4541f3bb306a5cf7d1abb892582b69ef7fee1f059b220db5ea000000000000000100000000000000010000000000000020254f0f339cc7d05c9ffe26a48a9514580c0b4ea639e69198b29f17b60b0fcf79000000000000000100000000000000010000000000000020e2ccf429fff0b34d816b93c8cf8b501b432d2c724ae13ebe64396e3bfb8af03f0000000000000001000000000000000000000000000000202f5eaf91e1c59a74876a9cb9bac2e1493b8ae4c7168c61b64910e2f1aab7eff300000000000000040000000000000020219f2f303aa88ab978615fb01fc7f6320e10342482e40815ef30958b6f6f03d8000000000000000500000000000000010000000000000001000000000000002063d92163774308f9f00e2432e954df872ea54239218040953b39e61792f0e08e00000000000000010000000000000001000000000000002017c47342b6615eb13e52578ce56bf523e5ed59d934d3aa869275198b0d0598cc000000000000000100000000000000000000000000000020f6d7c98e41f6386cda74fab86be9ef1624e94a1a8fd713610bee389c486a354600000000000000010000000000000001000000000000002079bb67cadbe7b316fc88dd4567dbe9ab632fd09d956d9007800eaf6ce51f07aa000000000000000100000000000000010000000000000020d51dde4f8f8b375f93997c2b4efd3f3071c686d5c6c2ff0455126aae66f430f80000000000000002364733d64bfcbf1b307ac37e34b2f81698637851d170ccc19729db20a3100926324ffb7ec2f17a8a0864b6170ecf9b67b08137a3d0e30f1e2d921e4a30ec5b29643e70b2 \ No newline at end of file +0x040000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d14d00f79bc81c1dd0fca037f92863b3f254f04411e03cdea562d939454445042000000000000003914d00f79bc81c1dd0fca037f92863b3f254f04411e03cdea562d9394544450422f5497c3241d226f7a598e125b70d4977a432d3256a5cca609eecd9708197ef728104d60ae88c9514ef2117ddc9f283b98447c498cc60c7815b6b0f8a55591492ca6f6cfb491ac2d63bfc65bc93426f4fc7c1707955613eb6622712c287f7ad0085182e368abee968aba57754f1bc9299282a27ba3f75305a109e2143aabd66a1f42d20e86d85ce2f2bedfcaee04c2c88798a831cec778463324a315ca7d660d29978e710b5ba8f0b5a3b54a8b8aedcfdc8d2c6a33d49f1c25316a65255b30121c4e1a48a239d06ebdba5ef6a617cdea616e1700f74b6727cd5ccd92f472fe3f14d00f79bc81c1dd0fca037f92863b3f254f04411e03cdea562d9394544450422f5497c3241d226f7a598e125b70d4977a432d3256a5cca609eecd9708197ef728104d60ae88c9514ef2117ddc9f283b98447c498cc60c7815b6b0f8a55591492ca6f6cfb491ac2d63bfc65bc93426f4fc7c1707955613eb6622712c287f7ad0085182e368abee968aba57754f1bc9299282a27ba3f75305a109e2143aabd66a1f42d20e86d85ce2f2bedfcaee04c2c88798a831cec778463324a315ca7d660d29978e710b5ba8f0b5a3b54a8b8aedcfdc8d2c6a33d49f1c25316a65255b30121c4e1a48a239d06ebdba5ef6a617cdea616e1700f74b6727cd5ccd92f472fe3f3eec1b9ceca61f8dd9950e01395508578b413f8f82d642d7e01bce387ab1503c04ff53745b649ddcc9db85f82ebfe53d148de1e08f6c70696764b7d9bd0c1c8b213512f755aea8bd75050bd7d649b6613b649871744b991958a487efc18cae3328e786617b604d69b9b90ba7e8b402e89d9264da696fd9e45fcf7922ece6f79a1fe9de5af03c1a4d045bd508e4d47036d16e59f61e748ccb93c91c0d59d91b341efa2279781ce1bd13c856bbc25d85030f7e4f6209ce07f8a25cc8572e6e973a20a804d5012f029bbcb2d8c3c452d7895aa54bf4204ab60938ae179a2e4b9e09183004e03a865c7c1e3f38f4a5267d4205e540f3d743d1c60f2902b77d852e96243c65637777d1ee46c13fa6d368a503c6ea125afaa809f6121faf4f7e8634ec0186a6f3f0209599f5436c213e537032d45bb8c0d5d1fc8fa5445ad0c951c9a3076dacec8d305f44db93f9ba5427d2a306b39f24d22dd2b99989eceaa4d1772d10f4eb1c5290c61346203e82423cee59a6035bfd481bad6865fea0ccb30cc01204ff53745b649ddcc9db85f82ebfe53d148de1e08f6c70696764b7d9bd0c1c8b1ba8b160a5ca64bef2d752cb9592f24c46176a1390de459fd1495fc0713f817e3a73f59d35fce36e759ee3b753f2f4d97d01cf186f5e7c532c780e32ceef3b1d1ba50a82033d9b4b414a002dce6369ca5bebb6addfee4954b48f77878c220b15294fd51015a092e0a6b142a1790ecb1bae622443b27626f464a54e0c2be735a0182c5e0197f993086cb1e656ddf6f4c01bb98d8e2653d57af26f1a7e9867b82d3fd0ca8f3234758577329d6c6758c49bf9aa4a2494805125375911931004ba9608f453e07d50f4ded0d765db927b42d5db0f57e5a7ffcf493ece47bb6e2340d0132d0a8d3c94f52ba2d6605eaf370f83072babad96e765118b0a62a4db5b9ba213cc23004f2aabbc9b7f05ca258e0b57a543e2bfb5ac023244bc9a46a0276b783c138a515123ca3d2a20910f9e5bdee8a72330149c4f6a872f4360aa9dad75300d82254061776b1f18a64a1d136aae1fc18105fbdb644e9d6fad5cf72c5412fd214d037d5103c2649541c28237c1bff95ccff48b6c0bb0bea61c1f6ad5a6cc520000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000124156e7bb4a4b194a4781b5e3f572bc178873ad4b8b4db76ce7961e5669feb2f2a932f1bb020ec4dbbc3c8906df10ff26750a46dc68ffcbc9b8ef5f1cb2354691716febf65496c7aeb46468c0fde56ebb1adae76b33d43acd0ac430668980fc1107a097b93a98368661f1da034410c596ad9d979c86181adf70a9e0c802072ee198fa3ab1fcff2a9b922896c156beeb90b8974000a9ae3cc35a71f10225820fd016469e8626effe7229c2afb6ffa79bf7a77ee61256c905de16e6f08bf40a2c21bea431384cc63987fd9165daa4f5a69703759911f4cad330e404f435c41f1820d8cf1a37134901a3b7e563dd57c42cdca5260827249976a12488acf6a849b3528c05757dd187d55f55efadd1b2bca7fe75402440bdda7fc85de423c414272c223f4564ca3a06207c5be0b796369e71290ee5c1c3671a537e6d475f741f5a86206ccba1e5f28a491e774a491a7e497b122207d0dc62074e3eff3b926c36f27f32454f877ce957e94d3c0bb589092f98cd9d62e9a4a9f24eb08ed0e0f00f2497111111bffcab26ab4c1faf453e95bdf0595bd83e06d377034df2cf561c463fd3a067b90cec48c93264c4908bfc7b4c72d0de77804cefc48a06835025ec29fe7ee000000000000000a00100103020203060402000000000000001d020202020202020203030303030202030101010202010101010101030300000000000000020000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b500000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d37000000000000000201010000000000000910039438a7b08638840d185421f618150dc0370e0ff389061f5fa0a8c68a2d035b3c6bc7584f79c77bf2e7abde09e7eaf2620f8aec15c3f2fc398c882675d2fca611e51b46729f1a944179a4a9ce786944c113464fc1ad1e9cde234be0b2e110c72e1ae4b98d60e56bbe865b56318796bb613352ac479fda7ebb09e50c4d1eef3a197988603d1b84e547603751085a0e57a319c692bf149ff4bd834a767e6553e22686779fc2e47b1ab89fc8aef7a5f1a87f2cd2694a385926dba9e676819aac1f3f5fa9e13189987a64e1149529c247b60d3a47e1b21a26ac1a63436377faa36900a0561ece7667859b1eeb6ad63db84a150c511a5732d26f7ec9ed8988055c98039438a7b08638840d185421f618150dc0370e0ff389061f5fa0a8c68a2d035b3c6bc7584f79c77bf2e7abde09e7eaf2620f8aec15c3f2fc398c882675d2fca611e51b46729f1a944179a4a9ce786944c113464fc1ad1e9cde234be0b2e110c72e1ae4b98d60e56bbe865b56318796bb613352ac479fda7ebb09e50c4d1eef3a197988603d1b84e547603751085a0e57a319c692bf149ff4bd834a767e6553e22686779fc2e47b1ab89fc8aef7a5f1a87f2cd2694a385926dba9e676819aac1f3f5fa9e13189987a64e1149529c247b60d3a47e1b21a26ac1a63436377faa36900a0561ece7667859b1eeb6ad63db84a150c511a5732d26f7ec9ed8988055c982dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd6258c009b6c55c415c7005a595075d8836dee62fd6135be0aa4bb5872dd3440980945e93b1ef5f36d66097a6cc3cf18416f1c5ec2134a28f2aabbc65a15f2621012aac1a59c78a2b8a13ff2c356ff5ddb259d2538cc45ce530648a90a8728eaaf09bbdf8fe995ac146b6973388bc2ed59adf49fb0089ffd8ad272064a6e75e1572d11f1bece483e5c430c5546a5cb8506ed18fc518858c674907a716dfa488ae911a7ebcbd7de1a58204c5573477a531c0a59e21ef22ada2803ed9657cfe94bb01b3b6514a5e576d3bf2166ce9c7de55051cce16420aa35ea7603aa0f35bf89c41aebe5602a8f012b625ab7294163b3f936535be6d1710961e568ba8e309576381ad30130aabeb00b66c906be2e8d7d9ff285cfae1f385eb5c86e869d67d90cbc12c1b62e5003e73e78d68a779fefdcd02647cc774a7a7f465a023ad79a9f1ca42ca98ddad3217793eab3f53637db1d568dd1ea9b86e6ef3fe2e54dfc2c620de1097dbc99fd53006b36c828c1a6067bf2fa4e52af6b34500c788716a139f2f21c11bda87aa892766888593e0cf677695d577e8eb4b575e5ddfd7c936dfbcc97a92e425785576d899777a6c1f3098896a2cac80a4753d7133d9bb09d7f0433685908f75423fcb69e61229e0ff5a461159015399b25044d7721a2a50d4191606b2925e44d87dae27f93d4aa5ae82d8cebe2561871b32f8a610516f1c065b987809233c5ea00b854ab2c4395dba0352ae790e88662aa436f21f63cfba75b46eb66ad25543c0608822b2d33dca61e64c056c89bbee4ee30db33758f50cfc345694fbb3ae4ff0867b276608e16c9c309d777d0db604be0024bf69a2caf81ab5ae236e830765f806c36a858b39a54780bc7d6392b50b6a995947f3c61a4eae711ae2c26000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011912ecebf5217e0c6d9f7518674945110fb6d6976ba64ce8ee83d03cb0a2e1cc125bca78fd7909a5edf4be1f33d1f2827ee1469f8516770a67af2db06adbee270ae8dc44cf6e38e607a0c6dbd59bb41f119270f952a28c007b0f9a921f71013227ff657a6490d5fda2170b06e2a35af44115fc07b402d60697b80bacea73c33107f2e4ef587c38871543ec9add6c8dc257b437ac6f2ad8929db3260bbc8491d70bc4441178eed6cc071e397d219b382cddb91931d150030a7165dd5aff23898a12c1216682f5163e25920e1e420d3531f330e1b02d67e9211209de1437f072ab1a028bf59bd77d1ea90862312c54fe8ff294950f4af79dbcde05cdbcdb03312c3b53aa1b41675e685357987a36fc359bb134a5e243f1089a27b89839c7e1ac25121666a8dbf893b08c485b9947ddc3794222445bdaeb802f12dfc6c83973f248145b87198ea33c8407c5aea933a834d9838d07861d8150b5cafcf5f01c05f53a0932a961f729b82e0f7946882b3755baeee3be3d8a0bd6c0ed4686a42432bd0c0fb0c2fef857e855848da9e00a399a4d163689c913d082f6cdbdb383d62da6ad3ff9f38da8ed0767fd686e622f79ab7f09e15bcb56d6ed376074f449d201c0b939bcadd72f5ef4fb6b6816b14e4035be2aae2de9901484cf80a960ebed42844f01edb6abc4b955e8c3886e15e97e406e57f94857556c74ecaeab87dfa895d6fc120689b9611ed06ce67f4dc635b2680717a15ca33159cf53f19b46f32ac0d5d708e8b86c70ce37e6d9a373e6f4c937fd917b5415662631d68458c5fa2175ae3b09a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22309a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a223305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe2622cbee39cde689d2d8a050b771f7a2c3b1ba52e62b09b30c8e93c520f6ada1196338b4638e14cfd60159eba3a4b37353ad4a5d4d9e176d1f2d58b8452241f00440361a1ec224d7d8d5ea28a83a7d57f8b8b730acf476f957ec35112a3fa61608e7ffa7a6007171ca846ab5c221a555d35b9aacf9f95610076d0f3575dc681c197c72c4ccb103b028475e963f041edf0457e1b288d586454f04237818425ece26bbfed82d1828baee8720e0a208b1b44b74061ef724dd8e083522442f783e5d022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c12334659429b892780000594c3d097f40db55bed1a591791fa10890d107b17803b6eeac5e4cb11c87a80550d4b74dfa3eb8d23386b65868e6be730962988072429830108cb5a02fb92b96cc16107c2713d5b965caf18aaee85332c9caa0d94d41d6a5055453de0b1f5ee004b172161a4672b9d1ed3c3d60b5965531316d1491424c267bffeb4a92a1f9ff71e8aab92bd8fcca320299f15f903a95dc267de98681b3d9840014b56d5e06008e175546d429279f5dbdfade3229583d32a9821679a1d04c802c73bb5682da8ae046269d75e6d067a1ee1225b7c287c4b176cf2a6de32dc9e0425440fd13b49e72087bbfd0944c40d96f6411202ccae4631e46097ad10107710165bc0e1593682c1358f9dd773b9f523e8d4a9a061632ed053cc2be02a058eedbea0901751c3cb699500e5c6a9232dbca0bbf3319c64a76754fd1b940d4599ce45d427e2d631ad7a1bd61fe7e487b02b5406a1dc6f2d36652d5e606a1fe51a21e994ffe1e00a4dd29d4ffedb384f01abea3acf52bf2ea331a1a8f0dd000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012baadf51c0967e82e22afe99af216599c49553ad3266faf11e98c33dbf9e89da128dfe18ca83ba51b71d807d3f39d29517c08d3d418123651e9b22f3394d42630dc725a7df7ce225916abdab44aabd4af843573d6ecc65c70c2f958111c023d91d044a1ae5ffd633fc55a978e1788b5ca21cbac0c02fc85d55b9a8a99f8b45492d14c3db2d1d856d8a3369a812bf4af1aa5e00b0c9e81f869e5c7ccb2a0d9c4b389a767e9f39ce0e63246e2b4bfebede42cd2103003c05ac485c77c0e47443aa3242c742ea77b559a654a1038fca6ab5e901bcb7f2a2962c6c8f1f48565445a3158f38c7926451d4feb0d6c8965e39b074e54a82fe5e6e4bedfa441e64850ea80e4b8f78e621c090866c82dcb40a0fbd9935f5d90968e9e6fe1d949ccf2fae732de77298419249ac825157b9714cd5a5719adc16a64ac75d69f8ea6726063f0b247d7fab66df23bb452507802b7a484d0c27e331576117a392e8977a39741d9d0f35170bf7b1bcf30dbb02f2ae357e426937428db2652b1ba5cbb935811ce03c3590d15e659dd2d2ce5079e2847ad2367006a11c7e5c5da5dcf61989554e61e81a19e52e3ba71ceab3a59e5fb5387395b0114477ec4b1288513c8e4452e1057e2a1047c055fb549955e70886683925272d662119c22c1135efff8899b67124e9334803f84404b90ab676dfa456b284ed80587877bf072248690682481ade24b104410a6aa4538987ca1074bb7cd7c8fc4b693aad33f0284765747bca59c57a370e823a99584cfc1d14cd8b09d1e015502fb910fb5e9bd8f0bb04d689f19e97371ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c692150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f398196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f61ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c692150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f398196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f63335039be7eedfac2e3ac623e673589a8852baecd7723f5e37deadf71fb908e23fa261b1844f304c485490d5e999b2633afba4d7b5b76ec065c640ecb11d4f8912de871e518f6b896a160fd7b607ebe62cb7c5e1696b514fa8b5840bbba96c710d2178e1ae70947695e9f02849f81419e46b869c9b3b2b3e23e1146ac45693900440930f7560351b151572858db88b4c489a2f492f8897491262236693d3a6fc1ab1bc182a8f50046511b7ab409a1d69cb3ab17ebd01f77d737b60b7fe18ccc60276de9a6932a003245ef15aef58d798be95c6f3cac18ae207855e797110dad218e807a31e61baec745b3680a23a69b641364929583aeb16689e9bcadb56009c3ccafc6418112053d1c539dc198ca765b3a8d0cc38d47492143067a7a046f720305d9e4e7bb0cfb3b7ab6f2a16664d9d00ffe6e15a8f452fe648d4b20ee2b0793440930f7560351b151572858db88b4c624f22063682521dc544081853d3a6fd0ab1bc182a8f50046511b7ab409a1d69c2a90b3fbaaeb9368d30147cbe18ccc639ec7545c681b4ca67af2a046384bb7f8f82b129d1bc618951c62fd7249d8ab0333c256ccd403b3d21c17f01cc6e398325260683c1a75838a8b30c828a8c1cea098ed6f74ad0e516b003bada4d1e6de28e82ca48772d1c596b7d5b2515bada3736712908b52f1ae94ffc4525b2e1921d93c3ceb3921fdcc22dafd5c7ea4525cb1b8da1104295ba42e4c7df11238b2ba685bbadf6caeefd46ec6802ba43f32c470a9d2905c385fa6e80abdf643f5f069cd2d70fd883d5ae14267f9e45f180bad22e94cea0e2160822da091f0cd312cd35b7d9bf51af4b8ff33048fd8573b67a961f3bb0cd27bf0ef02d5acd7b01d1d563ca1925e5938b10ccae4668147c09af480916df5e2529a6702fb45803196dabe75127ee9fca694157de13742f99e36cb20d92625f97f8b1f9d99a2e94ca7f36640906d12ffc4ff22c2d048ed7375bd63a00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001273c5541df839c579932a2bcae67f86d156e7dde88bfe5824a3fb09c0e1450c426d09be32ec3b470410c2239d01d6b894da7cfb0e6814d22e7458b2eb347a92f10e4410771fd221feb3133b0fa8f20a4ca6d33dcd4947330beb47cfb5ee2fc32128100847e0bba2f75506ec83acf9a262015f1cdfc41b43222e219b0ce3a45690aeb2417abd0a8f753afef6c79a479d5a78ea8e1b676558c5e9574769527f00034eee1477c30db62d2630c91e031089edb7bf6891559c7dc4497e66ba85248fd3ee1b111d13679cdd1c34529c759b388245a8d614b56ec0a3fd1f87d26620a780bf1378353ab53fcaf53fb41eca35b648094f8a3f3cc1f715981817a14e6c717047936fe314cbfc4a7df0a263777cbd9b9302191a14a799dd19b44ae4e0c0fe23b8753d50b973129ed5601a4d639bddfe4fdc2e6401c1244da8a748e3ae110dc37e5c8d6d84ab42b987c6c3b64e89fc659d0bad530d71102f4b7e15f96b9fd5f1b6328c24f0fb08fce6f98559838a0901d6a5f2f8afeaca839cd9a5381ad745a2373042f3df45c9deed6b72d72100b8f38c0dc0f684e8124f860e1436e59d0f92c37b25d6350931f931f6114c7a33a3ce75709850258ef0935d1c68a39d5966d2d14f860a4008590ea30bb6767286517d2266c368c7f80262a2b99efc012ff2226bf7ae88ee570e821cdb304297b238708918decf47ede80a92a4a6abf97c704183a12d869d4fd9cea41aa27f8c40661838115a2ce097dfd7217ceefcd82846a2bab31dba34cba188370d8ae51c6bffcbbeffe0cb620fbb169f28add96dcdd82259ebd15452653edce544ddc801f91dea739caf30047210f7dd049638c0e39e81a6142eabad9ac1231abb2237fe06e217b0cce090905d80c1b5ce78973f1c6193c19b16a59bfa3a507a5854e809dd958ff93c4c6eec9b31642b70d17bc47218603e64e95a6405c5af85a7ab17f6226a722b2d4351a834605567623d543b8de7b2c807713c0be3239263b9a8883153ebc74c873f284bc9b00e8de7dc2ad63a79a137f88ec3f41cdc6d9c465777ceac143ad7e250984905e1ab04eb32a529c58671e825362c3b6fb1dbf2a04aa8f6a39ade11678c87bc81bb1c0d0e20662f245ff217dac9d3c4904e240d5fb557095c652413020338d84dd69d85c4ee69d0dba02259ebd15452653edce544ddc801f91dea739caf30047210f7dd049638c0e39e81a6142eabad9ac1231abb2237fe06e217b0cce090905d80c1b5ce78973f1c6193c19b16a59bfa3a507a5854e809dd958ff93c4c6eec9b31642b70d17bc47218603e64e95a6405c5af85a7ab17f6226a722b2d4351a834605567623d543b8de7b2c807713c0be3239263b9a8883153ebc74c873f284bc9b00e8de7dc2ad63a79a137f88ec3f41cdc6d9c465777ceac143ad7e250984905e1ab04eb32a529c58671e825362c3b6fb1dbf2a04aa8f6a39ade11678c87bc81bb1c0d0e20662f245ff217dac9d3c4904e240d5fb557095c652413020338d84dd69d85c4ee69d0dba020af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb1dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1971e92d45cb316f06ce27fb80aeda7c705ff0948e9e26ecbe36515cab2c89ff7eb3fcfcb669a3a5f19c6d5e6ed13c1ba68e6dbb93e9d0b60303151556f28f6178b0c139b14e2f029cc073e76e7a64edf1a6f3ad871102218f612740857a33733531d95c8e017fa1e6895534fc3485c246a6b691d17e40c111566ee81de19a3c1b20a334d4c31960a61c9844aa2a55418924f410c8ce6bb75206c10b6ccadee8d3b1c2e4ebab1756f0f23f502c605b001645fb9918dbd52634ba85793651b5f2f2c0b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4822d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a177dbdeef57b7f879538de199d9bc38d4c3f281ea768a2d9f8f49153ee17916333c90642b81d79265e0349994fa5be88ed0cfd39dfe54d551c613a99dd2d542f16757cbde9eb9f5f59c6bb6da6ff3d7d9e8cd24ddc94847971d4facf87ee4a1c225eb35e5e6699b01693ff2025239088d5968f6bb9195fd4230a1040425b06e128dcdb1edebf50d9ee626e2e76cd0e1949a36bee01c32cc869536dfdd1bccda3172324e12140af26119d91d18932f1e6d8a32d0e0789cc532fd9c2ef2e43325f19f34934d5acb7b094cdc4a1b47488f34b4db22fc0f71af71046928bd9865ab11fd93ed2275ff6e2f2793ec11a905dcde2ce60ced0d5d03ec84b2523e43da5cf228c8b119057e8dd4ba65c5fd492162e49aece836d8b6cdfe009a4abab82359a0ce0fdf185b0ad531f95a87db902249037e2f030c9b75615dd4beda73663bf65009b9410cb6b15e9fe1ff40c2652e425db6d9b2780de8f730ca42e8cd06baca72cb76783dec14e807bc01fc49c705097911dc230859cb4639a6a3769a3a9e760000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011bc1c7dc0930444ba048114eecf4367011e6bcd9b6384e16ca7466019e1849a52eadafb321bf21bfb42a1fa82f669b9389efa6bbe70e2b801f25418505e5d52501e1aaf5339c981f6cde89bfcd2a38ac6e32b274b75dc71a61ea4b590ae40dd5127e2e8a7f92dbd4c8539f52fa1ea2fb2f0fa45984936b089ef4aa431714704b3b1a9818041c0b3391416e8e2f569a22be4bb8bcdc250b6a443f70a9b0277b590f76a91cb27a9e13a51a7b9afcd3be3aa9e23cc76ae8bfbb543551c1162ea5401332ac15911de103305e7b4c99572289ad64528bba90a1a40548ddf7c9aaf14736094eef685f8418afa9ed45d67b2402a4ee7b15a9b377989ec9c9d80eb1b9c72ee168c2801bd86ca2fe0140f70e0cdae234cb822e746397301fc6f769a5383f03939286d00500cec49d7f276fb33e24dddcf1a7ab2fc55eed7d0bc00b77b9cd0d151b8874088d2d94bd96ec3914aed6e5fda566fbb92e0937d7d23172c78e57108451c33fecd1bea4d55637256b53f99b5eba0db86dcaac22845701e36c2e03335fa90c2f1d566d6f886d9c9f1862d1670c163d88a7f9dc8c4c2bd14f40ea7b1c4b0d8072279950126daaa59a9ae2fab90bcf56e1ff7651a1e67bfc58ee7ceb306e4f70b3e118434307bdc8d7f0fc43303e97b65cf28453bdfeea74f15a08243034488f8a0bad1e4db438093e3b9960c9556eb39815f80b6be56e0d5a4e5bca3cb09cdb311f9c8d73314834d9a9b23bbddeef4069a308b62768a2dc2165060402dab7a5deb0d8257412ba0f5e3792ff83551d85a0754a9fced076b279c7f00f1961932c86c70d27431b51514f0a4e8ee6d185fb5db2d86e2d066bab217aefa8269e6cd37938f2d8bce4aeaeb0f5b1713b751300ab9a20ad6c26c541de8510593ee7dfdea1e341c44f8896968b3388ca5fd104eccb31410b47f2e96aa766ae47011820215e1cbe3bb077696974cc7735c275940f3e1bb810513a4782589951ba3a875f59297048d58daaf0f0b801abf355fab4afd2c260ca0309cb614501675f0578a0a6d68fb72a72550f0f47fe540ccc4be44c368a98519623658bbafe98a224a4dcbdcf316c2bc456b4b398085bc024cb237ef897ff83aa7c3532590704d71b5b234230ce93d43ba94b4c67f7a43ffd7b757d10b4f997eeb0fbbaa6f8fb2a1961932c86c70d27431b51514f0a4e8ee6d185fb5db2d86e2d066bab217aefa8269e6cd37938f2d8bce4aeaeb0f5b1713b751300ab9a20ad6c26c541de8510593ee7dfdea1e341c44f8896968b3388ca5fd104eccb31410b47f2e96aa766ae47011820215e1cbe3bb077696974cc7735c275940f3e1bb810513a4782589951ba3a875f59297048d58daaf0f0b801abf355fab4afd2c260ca0309cb614501675f0578a0a6d68fb72a72550f0f47fe540ccc4be44c368a98519623658bbafe98a224a4dcbdcf316c2bc456b4b398085bc024cb237ef897ff83aa7c3532590704d71b5b234230ce93d43ba94b4c67f7a43ffd7b757d10b4f997eeb0fbbaa6f8fb2a154726d1e457b749e5a32d9cb269c17087add08c554ac6163f1ba6dfbda977f43ebbdef2711d9803441a84e31a9d5ceddb174d378971a5aeaf3f8ea84a27c7942811da7d8566e18b5e499874095ab369c2dd6937effae0461fc73e2b699a6b391e6b1c8fe59b270914f6b0116f3ea5c17f4a5c1ed97593bb526c3bb2ef0b4a4d0887259d6494d8930c8fe34dbb38b54f2e6ef48b37424d4d360826e2c99c10f510cb754e0c9b4d86aec4eaea68bec328b666a9a043d5d0d875267093633c170213724f0ac1b4c5188c3274dfe3b442f0a5f988438b3c9aff9885f6af3af876cb24b81373b72e6d9ef1bd0f62e5acaeb018dfd59ea142d8d96b43818d2fe72caf1ec72c0c20573b5141e5d40e17d7293f3bb25cd5f92b26d68aa789660ac49eba06b8d7221f316ccd211c30eca2885f3786348b037a8ee4b5e05159fa94c46c3c0dfbdbb1f4e3dd6371c6991d785e71746d7433ca31f5de962c6bde98a88844c404d9c82c114a4021d64dec9532ffadd857803e0688fec4a9a5bc6fec2baa2daf02a6feb09641672abc1339ef443b8b25d7bb5f37c40752bf3a4a4be1d8bc1cd522d9047da94740f3a6eecb0b7623fd50ea2b88a1afb2b8cd30ae977ec6ccee223bee278e770ffa5d9af70902a1b32bee73cd6d3052c56724f32622d443f7b09a0411d87188f005a26508f6fd5e4cd411ae792bcbb68791f6a6070e18bc084f681152aa7a998ab109bcc09147bb690d1218497922c90773f8c809e158a5244eac284b21b331d7fc2157a772c939aa498cd46f9ad063e07861ce3362fa7a7a4217207404e4b8acf4084c8271e49c83d0332e4914a597d009e9e6b75ed89e3567ac26b1c682f1fcc8c46a8e23af587126fbc4d65cde9e386ad694c439eb9ef95aaf1e687d58ad6bd6345644c9acecdc594983faf5ea07a4e101a0d5e874de3180a3300b7f3df6373e5e36bb90cc78361a58ca1d86713d9878eca0119ec346780132000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011b8dc89968d74e1bf261833db2b8ee1446f8344f4b7f13dfc4742f66ced3711a3aac9297494d0d5858c8fb500a013093b1891eee2d5b99012f3e41c619edff9a3ebfd82e38ce89e722bbe2dd904648319c2ad36e3dc39cdb6a55d432922cf7083a36b13e386c21fe694758883d6458895a21f3a60120813a0e891a311f1c4b312801d0bcb981cf480e8cd70b19bae8303e2d2ea8a4d83fc8eb0608ddf0a094fa0fdcadd892398aa23efc5601ec3e66255afb6930257b2950a81d196e66850a4a051892e8291875ccafb17dfe252f9b9d860290086abe6b73848a0424f59c91a625fb3a884ad43b7508e04c3c30d33f486404a82288e1b024a041f394d30402fd388acdb1293a4ca89194095268d70b8f6512f637a011ac454535c7f12bfb548d0cea398a96c7f98065ed9c7c4b90298cfcc29bd52a78ebeaac50022b45a9a5ee2c5409f0bf8d7bb555f7e8f1a8731dcfcd8041ae75ac95e444a638a914e0d849234a98835360f4b28303ec2a4276c9e228d68118bfeb16452aa01bc5b08d32e71932182ecd2c9f648e2950f7e394a29ad00e99f9ab9f220e34e2bd614a66ee6436789e5dd4185058f3ccc74a561ea33150094b9abf084e1ff94fea6c5dc879020ce25dbd20623e1f88c2a8884c7be19efa68969346cdc56d69a4f69b3fe4c1aa07f2b11fd75c616010258a2008097ff305ac41105cf052eacb2d3eaa496da0b02e373e6c5d1014560389103ea8f9131236cb9249636a48c2859c5da9d9c01b6a1450ae69f91f2efd1c6ed7375e24a1cbed3a09e63ef96503e232de651bd097eb233b71d5b1b9b94b37ea516b6d81d75713c2f380d31841dd7aeea14e31a9f1291cc48e2a4e4646b4c815ae94927e28a90e83a57b3634b73e1e3e8f9ece560ed83029392c78a09e7817939719238934b31e418f8c0cdf571c344ec4acf851b5cb0fd6c6d3875f6187e86c68e6dc76cb4d0405096ffc6da1ff64de6c4007ae4a3630ce1dde5b23185875e1f37db1ae077f307402c82475c83a3a024499d9988cf40f31e221a4dce7a78a1e0c824e51f880f1d29633e4d730e15f2aec532667730d34069557c7af79ba4d69c1747866257b8b7042f49a65fdd05683c43a3ffac0c10bf96aa838508645b2963e8b8799da8496d656076ee6fb4b42a96cb2c0053f40233b71d5b1b9b94b37ea516b6d81d75713c2f380d31841dd7aeea14e31a9f1291cc48e2a4e4646b4c815ae94927e28a90e83a57b3634b73e1e3e8f9ece560ed83029392c78a09e7817939719238934b31e418f8c0cdf571c344ec4acf851b5cb0fd6c6d3875f6187e86c68e6dc76cb4d0405096ffc6da1ff64de6c4007ae4a3630ce1dde5b23185875e1f37db1ae077f307402c82475c83a3a024499d9988cf40f31e221a4dce7a78a1e0c824e51f880f1d29633e4d730e15f2aec532667730d34069557c7af79ba4d69c1747866257b8b7042f49a65fdd05683c43a3ffac0c10bf96aa838508645b2963e8b8799da8496d656076ee6fb4b42a96cb2c0053f401d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f31191ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a23a3be95ea9f18d2ba1bdc9e20d742dd3d63c827f198de024754695b2fac8ef320aff83835a5b4ccf729e3b4b253bd1f7d7324fa0ce86a7dfa7275830f1bf16424100b05774826b954c1e98cabc2dcf1725adab78078c802023ab2171a81caa32deb307a3d1a7844d20e88da87b5ae0239b5c2e49342701737b9c664a4fd6d691fadffc2b1154b6729eb1fbe7e0fde2dae0bd0b60207b2e40ecc3f5492bd3c20163a206aa9162cf827adc731a5cdb7db8fbc61aa5764c85a123a61e921fdf31e31870947f95bdea9c3c192cb3bbf7effe29d0fb7bf7284c1d7e0d66acf118ab01040c9277dc8c6351fd039b70656118046072e337c872d37814fdf794ba768ca10f547f27e8c939e20c0942da06ea810edca7ce96c3f85ea1afab3e442288e863cb23cbf15913dc054ca1de6bfdee2e625b5cc8cb24762ca766016a63e8e29313f1c3e6d3646005b86ea2120e2bf073edb7fd6e3b821ad27eb134dbb05d43ff702ab940240dea4835ca7ab615f5689414d24670783d804d16e1d682914e4b3842edb7545b87d3a266719e769dc68f5be9578a8b03b9a7ff069c36e41ba2cd72d11248aba4782c5d998e6189623970a418ccdf04bcdb2792b2f69c2ab45d328d50fdbbf16201e2b7e24d31455600186627cdc68bf38594fb5eb8b03d379d818443d967b04dd949cb2ecb731cdc97b6e35f13711433f1753b02c1107ff351b889a2773b5ad7d2b090a09ffe4faa72bd5de4703574992ad1744c995de12627ad521083e79fc60e79fab809a7f5c728487406136c07b7bb86312f718fba4dec171d301a40fc986f5e508af31bfab40646b051423ecd55dc1683badbc83ed8173dcfa099c824c492194f65ae32b8b45476186f9502ad9c9f84b2a6482d38f9bab6cc90000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000127a4f9d6685fecf97d53a8f085597688770883222fe1164239468dfed7595818376c19be7028368ccb2f06c8e33e089cd0a01e6279c2b4377938b953e1c0d05b1ebf43097799114449d6d94b8f3da3f5c3c7395c128e6b1f3fde543b4e603ca00928c4cfd2b1bcab5fc034c822130b149bab0e646873ff883b1cccab5752d90130c03f23b86982feee2fa7017c5d31493befce3ac6fe2f752e49d2831efac9a600ebc5522cc043ee20c6e697b9746a0a2d5cf43d013d8e52a03b7e36e9dbad77196ad97a632be84e02346939fed354ddaf8c44ad1665639a62ccbf3b192d2ab0193cc39ecab1544515c0811be32cf039a8fc330414c142f983602927efe0907106d1c79450deac6f0efefca30f222ccb3ad70f94882bbe01b122a0ce0861c0ba3c483899dc3954a3ef751178a72a9c51ea4d23a4e3cea3a42f82d32c612f478817dc15fbc8badeec7e73586330e5a4d41ac84bc51727664d4d6e8564d11e5e33247ed126d5c76ce65c5be1d6d9eada9cbb042a91bb5cd9797e32f78dbc1704201c629fce4e6d8f4b17536c31055d4411f1c1a39a304eb740d08e5e2350a69b43334816be52d760726aa2ac11345601ba2e5641fa3a58b8ed5da449aa5788cc230800cc066c4d8d1b9ca821b6e824ba460ec9d4476bfea2b2a6a9ccd975c5adae09fe982a5677300c24045482cbcc4744d617ec0b7f052b2bcc305fe8338657513bde76e0cc154965d3e3c60e488ed1f78a53c6c7cdbfd913a83d629362567dfc3b7547978e246f4bd8ef072db9224ea37e4d3a0afa0d421c3e7f9ba79239be68307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab21307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab2105f957432b4d66c307dd8d7a9f77a65b49b53376dadd9b2290ea826fd6568a542e26f67ab7b96cbd66298cf342505f2dedb559fa4be2273dd01899d6c3abb1712deb307a3d1a7844d20e88da87b5ae0239b5c2e49342701737b9c664a4fd6d6924100b05774826b954c1e98cabc2dcf1725adab78078c802023ab2171a81caa30ec70c44d876c57b82bb950c382934e3ec0009a81f04f2b33ea650419990bbc82ce53ced07446ce4cbfeaaa0f4abcb1f9db63b2df513b703b1ed32ba27a6c3e40fc904ba5d072ee14ffa59026c6d13d5bb675dec29e5aa4d2a4c867015ef710c3a4edb1848cd58bf5e6cc00d6fb556214b5da1ab8f47ccabe7073a2c35555fb91d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f31191ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a1992768519abd8e8951392e968cf4db10f1dd7a0da26aaa1a62f0c6c393bc852101e972d11acba7992d63a5c908d275ef0ce68952f83c017a99d2f00c87c7f500c1b7842979820f82613e9aad8d2aba29edba2a09b2cede1d088e81884ac08452dc8fe7fd0fe6c894514898011ecc3e0e47cfd46463f02f7600715ec21d283ef2f77047d0e1c7a4879e578c0ea7cf20369732ea22bed5d313918c5c4a8acad2c1088fb82f1e385b7861a873f15830dfcb8d36a59dd5f9bea60146b28575352d62cd3801e3ea3e5113e3c569c78708d04a316b949a519756a8befdf7cfc1fa2fc0a2f4974493866cb99197e1ed23cea20adf3be785b8a16c65b5bf5b831ac99c0217deb8a8ced2f5f0796c5eaa9793e68cac29744c57f86eb3050f48112eb752f13d8b191aff11d04939023c28ddb3f1fb250fb2eb481b3415dd06977b68c6a5b0524eafdbcf2907225592563011429666a348a0ec94980212de254e0f48257c519ad682ab4850ec4a1450404d5e2c23b89c1ed9adcc433fcf9c5dc59b5f005fb000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013b73fa2eff661ed03bb36b377c3d98164213a994fec7de3634dc11ec2d401af30e7e71b62f28f467dcb1b250c1b2d94421e6892a5643080be2c7183cbfbe14702747cec38c8bc6a83b9ee8dd046554915a19051afe579a44e35c5659abea8da2159d83123b3d4a30710fc49e22071adcb2c9325d4075a7d7bd524d92a6a2885d1f972af88fb7bb2148014b6b9a3e7fa63f3450cb78925b04d96b26a76fe8575235ff94da8ddfb2bd6cb3d194569a9a32af2ae8cad2cf3be75de045b68395793422ae619fb7f64f4433f25ec5bd52fe77ee02bfdb7785cb44ddbe77320bdbba5b232c7d4dd98147b556ccf8eb07dc749a0a4e9724b86a4fb5fc6220582001631b3d83f9c1bdb873ba69d830ed6d4529b2499dcce13a0279b3a24b1c3cdb1024d231a0d30060237ea9d3abed6775ebc52d293c8e1d65b2ee358dde34150293b5bf28ed28e231ac12c97f358fd2a2a0a45ae48c17a56c6b445e70da83bd966f52852afbf733ccb6f9e2955c7039dc8e8f8bc618bffb3088af5c3d27ff12c28a1dc21c54c01bde569fde6316b1eb79269d154884cdb85fe7c7fb5f6d35618c6fe8493355f670c2ee4fdf1edf6656c08ca8b6d79317dc0abfa832cec5726c1bbf7f1d1b9c8d8581b09e28af83f1afb83da0151801c20f5b6d0342d2b15bc9df5c718920b478943926dab106ac62a11941cd8df13d24647577adce600d84e6e8eb051a3b7e370bed18db92b038ef718c913aa99b85e582e29a091c45d6be8c366c12342d2edc443b43a134ec9fa4d9e42d1f6c47f9b19fb15ae0e075708c217829566209c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b09c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b068b7cb70c4e968fe90a321a45ecb6c221e359af3f511fa60b4bca61ced1e0ae063701d30cbb53d7978d008cd3615854317feab4f9fde2db6584c6b4ea9b95e525c75f1da7984a0e35ddd3cd4a1939fa3b3b9c2f959314eead426e27e2792dea24ef2af288a311bbc5f02334c1052f8d299158fbdf2cdf5668b90bc81aac4bc10c92b2d6b47058a06fbcb270dfd3adfdc463f7d18316e233d08b9f3170c2b1cd0fec9db111a2bc701c877b6b49a793338e01242570cdb4629ba3d7dc2df4aef00c5c2e6ebc54236c27fc8b5428590d0438e98e29fe47dd99a493d90f276de6ae32e8f9e51b4996ea4ec2ea7f70712a16cff1a2df425c7ddac327a68cc9da51c939ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e2e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae9680150d0e603d5b11e21fffc0c6b34c7f9f61c2b730739d728c23e5590660931191077f591920208286e763acdb3280fb019c294548137c4442d22d87a3b88b5fb13ad242b4c191f61e117fa186ffa0f43c527a31d3468c486e09ef8634eb4f16a14d9d33a6aa19a6ca282dc3e6b99781ec735554b302236e9caef5e6ffab81e5c252607ef096f1abbc661b109b7fa4d9bc4ef5a30aa43b26d547108b9440a08031ad9f810f690e544399e4ef64805b2645d573ecb5f0946ae44bc2833bbf5f7ff2f54001cc08bdb63de0cfbbfc22b6423fdda3d8bf2383bc5295d4325287444e62f88dc5e4ea5642eccf818c32f8b161f1a364cc57f3341c184caf16b339352972ed1dee3ca3fec857296b3b29fb017abb43f17f590e377b90a1a029653dba3c21a3b76ed4926cd668e66a7960f9359e61a128be2217824f476fa8e2df022948f1ff6e78263c71a516be36315a67937c01b5d236621c075307328cc3a2b06b312189a1cb4646ee806fc9574f1f069b105345baeec8b6242a578800966a654500a000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010f289be9ca8a8d0edee6cdd9d86a2d1131b3a78bdc3ab5c81fe46743aa0d12d40d48c74f18cb38d4059436b8f8cd3331f84491d91ff6b08aaa67f480fb35c12f08776fcdf6c96f2a0d34d6ed7d0c83f996f02a5f080f1032e45817d421443a0d2923bdce327788d7d7764ff10ddfd2a88a081ac9a4bf181e62b907e74b7d3880280adb2095b8a32d0f1007453516acf1720522aaae717166a7b0c4d75843f0ca3cba87251a3884150994c4e182167aeb6c804cbd83d9d09d1d95a439956db2553cf996ac7886009f2ff2212bfc949df5b071b3bc744ab991d8832a9f3693ad6712ff597a13e2ee9152741a485848d30032c704ccfd9ff2e18e44725bff4fefcc1ab59ed070c06c6ac139095dcd5cc9e4d2f799826f4e4bc89809c4e71a452bb51dcc0de975482191fc71c68f2d9c043ffdd6e28a2d91e1d9bc3a909db7033580242c8ea6d8c6fdc8a19b6c242024d8fd7982c06b6c6bbfb50c20a7e9ae5781641de93d33098b646db587ddfd3f0f4cd04bde7a0c96d697b882fe58f55c4d88b835a0f167008c3a9499cf03c9401c7cd1c59d48e0583ed0c3e5a3571500ce019f1a09c525a0b8b528e8271478f996c8fa5a7a9cb412689f6a488f50b8a76165c712794fa7f3144ea64b6f052a9003728ec6bd7382363742c25802beb531045454105ee449421154e0b84ea2557dda98bb8af7b51acf589e340989dd3a5e9b368f23ec6a4442a2f57dd4b5ef4bde737b80f9da7a376cccb382184aba8866677d283915c396b02e51949eb7f630606a3953edcae2a5a9aa3cb7890410958cdf5aa609423384f0d74a20ce8bb048dcd97d6222ae78c1c3540d2ab8e53c646732492636bdcc7b0f28b5df31744fb72326829dff98203a45f8ebf0e047f48898cdb6db2e4b0198b43472a408ba716c503f72eaad685bc8d0a441d59c7a2df603fb6dbe11b4fe674bcb8d5bf7458e93afc08d1574de3d3338a8b745fcb302f6fc049243277707fb85063d342ba4371d913d3e94fc35fff7f74e5dd942db530713e924b31888f8047af9c2cbd45bc8e26ec2c16b2610990411fe9b425651dde5ec16db4e055327e9991f3204da351393d63238e8863a34e3b8a0e9eb82c10c5c638db77c3aacd81666e0cdfb25caec6c29cdc7179c0c641850ac0f30166c24909c72488509423384f0d74a20ce8bb048dcd97d6222ae78c1c3540d2ab8e53c646732492636bdcc7b0f28b5df31744fb72326829dff98203a45f8ebf0e047f48898cdb6db2e4b0198b43472a408ba716c503f72eaad685bc8d0a441d59c7a2df603fb6dbe11b4fe674bcb8d5bf7458e93afc08d1574de3d3338a8b745fcb302f6fc049243277707fb85063d342ba4371d913d3e94fc35fff7f74e5dd942db530713e924b31888f8047af9c2cbd45bc8e26ec2c16b2610990411fe9b425651dde5ec16db4e055327e9991f3204da351393d63238e8863a34e3b8a0e9eb82c10c5c638db77c3aacd81666e0cdfb25caec6c29cdc7179c0c641850ac0f30166c24909c7248850000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000daf6eaf5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c832f25e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab3c7b171c9fdff60000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000001a2fa8a6252351a23c57839ced0c21237b8e32aa9312b18475b8748a1f1197f718cbf80fa1fb7c52c731711fa3d79f1c8dcc600ce571404d4e0cdd8604f0bc2025b6b3b541e80cafddab92f4f6196f885a74afd77946978b2f45da0a5ef0fb0322b6d56a80d5ca64c34054f850df6a677aa6956446750e99fe6da63bbcca63060c26524ab36acc912e48d88bc8673fa28524232039b5414bf8736880667a8c7105a35db04a8a22339d2b243c9f532098852a81a975569f844c69e63bf65e59550692084c27403d2d054a974ad7196a32d6b51ca55e92677807847ad3e085702a06863210e8c92a4fe7013817682622a919dc5cf89f8ac34229f20c94e170c82a1765bbe1b9f3dc08c1021f06af4091b5a895828ac48c9a1605c72f913bd6a2f93bfd2f99cfb2bb01a8818c740aa5e04afa4a1a5bbf766e9cc1fd61f28e44c93f14057060f3deea36eae1e208e3e0b1f9658d93c174925bb17ba283ccdfd3b5ff27796db55b4c49c1793b7bf7fa6436670a29fe0096d39ea0302ae9189f341ade283148d745f8a5fc08ba9c4a3f4f0f6515ede793d3d3d18dfe07beb508fb4c880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000001a677e3364ef4e0c9908bb612bb8583a9294989fb02864d43959efd6baeed1702759def81fb4a064e60e51e087dc59e52077c2b7f76d095e5f0fbc787521049918a62107e04b5f9b19f1ae1f7823a61b01ced64411dfefbd3a1d74748adefb6804c15ad89e8721f87e479962a74dc1793b8302a3b93a43850fc71b9349a516fa3b3ea5276178de0781b8669d58b23e86e6c396585012b59689661559b65ae90717c6c63b18a3a9da7765feed4484c75e298f0d329e2351994ee389e0703972e2283939c4e75c5625889a0112bb7b38a1f8b78bc96b29a7824a49a70c8fc68d1f36e1df277b32514454fdfaa25697e4d6ad84a9010d639ee2f1448075311f3e69091e20d884cdaebbab02055da9681b2974c1effafbe95a38a7e8b077cee0c1982759def81fb4a064e60e51e087dc59e52077c2b7f76d095e5f0fbc787521049918a62107e04b5f9b19f1ae1f7823a61b01ced64411dfefbd3a1d74748adefb6804c15ad89e8721f87e479962a74dc1793b8302a3b93a43850fc71b9349a516fa3b3ea5276178de0781b8669d58b23e86e6c396585012b59689661559b65ae90717c6c63b18a3a9da7765feed4484c75e298f0d329e2351994ee389e0703972e2283939c4e75c5625889a0112bb7b38a1f8b78bc96b29a7824a49a70c8fc68d1f36e1df277b32514454fdfaa25697e4d6ad84a9010d639ee2f1448075311f3e69091e20d884cdaebbab02055da9681b2974c1effafbe95a38a7e8b077cee0c19834ab22fea15d89c74a4ca0d1cbdd19b18c8dc4699b5e6d44a70b9e363033d8121dff3c5197fd00d1d0a0de7643244f7892ab4a9b26b3f4238af227929b22c0730887259d6494d8930c8fe34dbb38b54f2e6ef48b37424d4d360826e2c99c10f510cb754e0c9b4d86aec4eaea68bec328b666a9a043d5d0d875267093633c17020574b614904f04d06536b5cfbd25bc253f053f3efab39148f663b7b5deec33cf340e52de04aef29b278901aaca40eaafc3602d624e75ececc9c33045c86e16ae08ce7d1e5e8778bcd1c33ee0e0d3c0dee902d2d8496b98b5aae77454189f72593f0720632895548bb04d3cdc55cb4d809cb1013d9caee5a883a975497c80ea303ebbdef2711d9803441a84e31a9d5ceddb174d378971a5aeaf3f8ea84a27c794154726d1e457b749e5a32d9cb269c17087add08c554ac6163f1ba6dfbda977f438bb19380ca3bcec1b7ac1e2b2b3cd0e595e5a6676b24b82c071862837b86c36277554cf172a1465b5f0275fb0bb614ee6780d0b60ac0da8edb3fb4a42c9b65202cdb763fa0d9da5a9237be078ea30ff6749e00736ac3e89bc196bd4063016fb11354e605b67b1a7809a369f541ced5ed934a4c09ec3341f991498c701a1288d2d86909215b5e65bc3804e43c6806f8f01e2a876eaae718f162af5e148869f0812796f6dea4a19a43c7fb1bc397f90712063f0851e9e878c83023b0bb77960fa020e374c6f0233b15766cc7ec727f49c8e2eb587852cb8d3d03033d6e7395c9427f3ad76d6fe5567cd5ff9f5a3152bf77d49c9ffc17416e6a828d1f05bc7cdcd2069ed1fb636691fead243b864219818a5f1cb94479bfa0f76a8a63375ac6e2d3ec38fbc0bd3eaa5293a811bda27f8e45fffc232211a8c618b67b2789a6b5a1e1f84c731bba07333a6189c23730e48ffd1a705d588a2213e1e958371e6294a403c1d73d3be3dd577aa4d76c5a7cf8ce2effdfd40d0b03e02f3c52b66a1302037000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010fecdbae950c124670743c80543af304ee59c24d0fe4f5da17e82768986dab8b231928ede12b62b0ff82da8e97913aa5396aa4867ac60b5505b50cd4e8c8fee33b4c12d0d00be17716c0ec893706f28cb3a5b15644a0a13f50ccad9df697733c3ca5c210bc84e5196dad9f4097850ed1090332f7339ee08963be3157318cfdf926e91a6546aaf2fc0e41b5ae385cc0870596d8a23172f22bfad69d8d2c895a793430abbc391b49329355427cc60c601086afbb66e742ad1c02728d5a2e7e97810ba013d0fafebeca5ec7c94bbc5142f3c3a45d4cdbd60c1eaf35dd90badca1fd3ef6cbc729d7fc478cc54b6ea48ddb147bbd12019ee889a04c55767b01800b2c30baa442d34859586b070f40628423b5d36cfd27e0a9128a88d9285976872f482e2965ad0899af2feb2d3bb9c1de9c1cc81f6329ddf4f69a91f1c8575397b8ad0a5c76397f5447ecdbb700511f4c775d4fa59bb9a090b65f5dd28c6f449f8f7b31042d0c7e516e2df84d2f82682d39469c652c94c870ca22c7ac470fbdf079e10092bf9231039a34af529cdf1b0579e6394054e551e419e501599ccdd53125200f17f6fa70415588d2a37b631eadcbe5c490f7b30f765d2d93abda12d2fe42453788398ff62d4e376d88285fc6b64a64b3587e2df655f36a7dc5bc397aabb50a39cf79aee9a7d42a7ad719c553f935f4c276f3ec53e5c4e419a6a70e60ae64fe280300c5c499ba409bf81dff9fb69b5c7a8e908a623ab4f12d30bcdb819877ea03cda650360bcab6979a7edadd19fdba369ff6268266d19148320967ee47773e199708d32e6449e450523f4e624c14d8be8baccc0b83f0e5bd5d9dfff78b4ffc2668f72cd19bb61bafadc0b19db3eb2763baec2ffdc90835dbcf92ed0874b0053ff32c1fe7f57175919b3c87eb7c683b9673c7003046bb6119a6e512d5b88feb000cd3e0180a8e8a6e64c378148397c48bd2d1fbd9063dba7f864bda2a4770163fbfdc9f87cb374bd8082ea7996e092967287f10cc2dc4771b8db5aa2c9acf93004023607834c8b427f7d1586691f6d6bb1e19eb3d1f34a47d9f7b42d365306e3ebf4f1da6f8147b3828e945ff262dce7ab01763d7b0f1e5250fc89edf060ddb0140b0e25907eb84c7d716ba00d9d231a7968198319c0736741d684e20f9f226199708d32e6449e450523f4e624c14d8be8baccc0b83f0e5bd5d9dfff78b4ffc2668f72cd19bb61bafadc0b19db3eb2763baec2ffdc90835dbcf92ed0874b0053ff32c1fe7f57175919b3c87eb7c683b9673c7003046bb6119a6e512d5b88feb000cd3e0180a8e8a6e64c378148397c48bd2d1fbd9063dba7f864bda2a4770163fbfdc9f87cb374bd8082ea7996e092967287f10cc2dc4771b8db5aa2c9acf93004023607834c8b427f7d1586691f6d6bb1e19eb3d1f34a47d9f7b42d365306e3ebf4f1da6f8147b3828e945ff262dce7ab01763d7b0f1e5250fc89edf060ddb0140b0e25907eb84c7d716ba00d9d231a7968198319c0736741d684e20f9f22630724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f62e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd62b4085717c45478d689456807af22b83da8f7ea5fa2b9cbe7a5a0446adb462a11a46bed708c16235cb9c186ca9175c721eb5ae41fb05e0c288f491f8b19f1d501e33c15bb7c48e9229bac840ac06e645d5d917c31e7bc20a0d2539cb4b8d780c018b32a08bd577cb0759e12c12649b35b1950d0243bdc98db464389292a984713cab6d197f17180e56399a722450928f6d9116af63172aafb8dac171d79684af20f0072591fd810e96d65b79ca90d674ac9a437419480fec57f01490c6a71f53004c37cf170d22355a2c252313a00e318136f39a3ea0096dd1ef1c2bb8c26fb51b9d5a2a50c6d8a61acdf312b101a31352f3356636139aeb9593bce4d5ce209227ee001d24a97247a1813c16a38047c166ea93e4cb42cafcd837ca103cc534733249af9699e9ea525b62fe68f6e1b1c46bcb95f0b45f3551185d73e8421e481c244d35678cb368209d8eb165b430cc1f30fe1dfde66cf32325f63e695b99496c379c5c91db2092bad76b66d01070e525c572a3fe9793aa51dab9cb9432f746dd08afdb3d3bec8f7a82c0be53032f290bde0ae897b05958379062818485cb28da375024c2c41370857d3f41acfcd0d6f4443bb06458f3a0e408caaf687a34d72829a6b6fd1e4b2d970c1258195b44124432685d05f08392c8a4bfbe5d8b0b1a8c09f4e8f63b5978e1d659c6a182f4705c57a03afae95badbd02d696e29d3cd5d42342e64643792d4751497b75661ebd1f456dc3c135cbc3656d4e315095180e172058bd4d199ab72467bfa23aa6d73a99aa0f5a137428b43bab594b65003db7830eda07e79b6eab3ac9bddd8abddee463ba4f538542bff1569a039b8e4d62c60e1fecdc74c9ddacd5c5107a5110f66b95504bc100494a6512687ad87a74aa8fe2000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010b6b6bfd3902bb74a5a93a4985bbb6e13f30f8e1bab771823385a3593b3237823fc7a7486493807b561c9c7ec983b0b615ccc19851691207e5e323f915d9ea7f1ee3b386297e66d4148c3ee3a378f6e0158ef6eae39b3f5ff9837b307ac313f71e23d455fe1f0bdd340176dd0d95b1b887f8f6a330cdb92d4a9c38d53625a8903f9f3d00e0cb5b82f066aa18d53787f42575bd494d71028708ab42670f7c5db02b253b2859f4ca1e3b2e35e83ed75dd4799c5c18e018c05f9a50681b9dcc442c0bfce717f46a907ec7ef16816870d95e524400e229c8b4cdc0af2ff7bbb9b2f10f51ce4d656ff7012f5c86240ecefa27a8365113c60be83b6f9593670206f7f415cd4f2e5dace37243bf61c172714f303afbf77264764242c1162292d846392a0f37029373f542fab28cd862805dbc4ea2559db3f681882aee0dda4ff488bb970cda574e5423318e4189e1520645fad121a68c896a7381bd9fe6c6a95838341433ff920173c93b175f75b8694c10f8359bbec4ece9f38b193274013935de5271309b986c0eb87b566c092912b463134efc644b692eaea82b132f1899754581f61f0f1e20928c746715ecef2f8550327d23b39a2b3bf8c8031b038f3432e9e5701ff7704f28b2c3f36fc9662b04cf4432552c9ac636675fc32e32dfe0def7788f0774607f5dabbcbfb70702fbe6404677112a2d6c9f41084e32a557d13033ccd0125e737a35b8da6773e35f85d913931c878316cba91b51970fb94eb49286aee41850c4d549fe6382b41b1dc1613cc0dd207ee84d097fb8e5d512bfbd4c8402a83fb14129968f3e95de69c3dee18686c8bd29d8e55de8afaebb1c8c41fe110be9004ebed66970c16a21963c211e797937651cc016ab64496cde10a4ab01eef4183e7645cff0cc38ed5810d35a67a0a1eb28b6d88ab05789fb42d9f995f6553b890189ba300f33c712a7ef2ca5985f5e14f98fc07158f56f205653375709aac478384f5d0fb3fd1ca2b85420c4062329974277d6c54c81cd79e98d1c39cfaa29a907b0a2f04c02e35d47abdf3bf9dcd668dfcec236bccb2ba1afa014b33055d658198cd14e83f18f2d99a4a3d41eafcff3c33ccdea59551ef32b0cc96d0e52d04926732eb17c0e70d2665b5c2be150300c5f09cb11aff7da286e20677ff1ad2fb83fb14129968f3e95de69c3dee18686c8bd29d8e55de8afaebb1c8c41fe110be9004ebed66970c16a21963c211e797937651cc016ab64496cde10a4ab01eef4183e7645cff0cc38ed5810d35a67a0a1eb28b6d88ab05789fb42d9f995f6553b890189ba300f33c712a7ef2ca5985f5e14f98fc07158f56f205653375709aac478384f5d0fb3fd1ca2b85420c4062329974277d6c54c81cd79e98d1c39cfaa29a907b0a2f04c02e35d47abdf3bf9dcd668dfcec236bccb2ba1afa014b33055d658198cd14e83f18f2d99a4a3d41eafcff3c33ccdea59551ef32b0cc96d0e52d04926732eb17c0e70d2665b5c2be150300c5f09cb11aff7da286e20677ff1ad2fb80b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c3feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d2b13cd6d52b7a32dda0c03c427c28bba72b3b40b5a8595a3c029cfe2dfe9b15a21d8509a7454e82c6c01ee7f9d53e927b541a171fea9969f871cfc034c9763952c762708227d8d9d5db25342038160352c32ee7a89896b63b01e4d1acff3949914accce313f5db11d06b277e45099796f2a6b9e284bbd31bd5b1ef642a2dc7641e6a494cbf36abaf8b8a6a8de1165276533eb64441a7a8777834e338713e31483cc40f2563957cd02b5394bc253c4d0448f634cd65e2e2c3d47c95b581077a6214840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d3126132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c8363f8f67741fafeeb2ce545cfa5eba44d303a5699b931d6c0773dd7044f906f34b34a76e6f4fb6eea219bb2b8224ba3e1737cc1b3c3492986bfd06622dd49953c60975a0e3a836f1d21b415fe01c2eb2874f85853d65345cc5824a08686ff7f36c1e3cf64720e291183435640328b4deaafa0719bb491bf1f643536c5aeffb05f13647199615cd17780a6803a4faed06170d5780e72674c5c32674deba0a522b3709b8e669ea32e887f597fc5b0512f9e914ef1814e2d8335872b85232f5add4cb285e555ab6d8ba93203502102492bd86d49972fc501592cb843a378f3aa52e542bc3108ffd0d085b814b44b3f0faf2047e4804348f99908d3cd663004bc9825b1f3163f13d85737fb86ee16339926dd220b1bd2cdd108e5400ea0618b9b872220e59681b126b5f69214be5e4f3ded147e020a5ac1cd868938d2e1cbdc2eefc9534bc4cad822d4f93dcf65f1272607b7fc1e2598364447fe8bc3209a1e85a280a35bff9de5fcaa2264c0038dc5840593451ea5f384bf256ea8cbfc33330ea5289000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012c990d111143ec5ae8b2fd5cfe95a081940e16508c8b08a4d563a88c6555cbd22af8a5358325f3aacbedcf1b3d72cd810b38f0b3c4095dba50b5b5c2c73008821675f7640706525c4595c7e6a77e09401a688fcad0ef67e1c70ece1d1e91d15c039f457ad9bf9d471c4bd0bda0b2c9d97e80c7c3f74a6f21cd5444e26f81c0c01e5495d541f5b8e99bdd7fa4da5aab729e508b3f7227ba4c840b70f4c19ff5d93f4ac9fe2cf45dc9989e719ffa9f09bda9b2e908b6e4428c803c9997a6ff5c361e0064cc9cd6d8aa5a3377a98c18e93e0ff731baf39ffd422defac29e869431a28ba57bcc7fb5f7ba8aa7d41e0dda2cfaa0b9194fd191de0477efa04948dc21a27b3d19b0b60fed53f9e42bce73564005381d319d0b1ccc4e590a4ed5debb3782283975c0a2074975e5debf3eaddd50ff2300b755c1a9cebb9eadef53bf5ae18304004473fc82c196f9eeffd1e12d32f461f5e5ca5a5d7b03fd28dfba4f164103a96b78c9605bc0f9c4ca9045c565a3ce2df7f60913a93bae4cec3c8c7b225800286122f059cb238b2bf5f38ba2a0a318ba7488aefe23358a5f152c6ec78827e0d24a45d9ba83d84cf36b9097f893b9a722a040d717843b9ef142419bbb6e4e72b3d348fc27029a1f88e4122f8e229e7d56620ee4c8317ab25b08ca05680a5552b7b3d7dcf3fc0df36f08d47b2bb3bb8cc58db29f4fc1c9a4a707c1d70fa0eb61336f2f7431eccb58cebb26efbc3726c769202c009ba0d97cbaf60354b63adb9193e8c99add4c3351515044e2ca243a9c8f4a6f14d18bc47bac7391b641d420318c9a65e9ae5bab13ad4f62d3fbee56ad22fa0754377246afce74eef4d0133c5273659a1651a454ec52b09d2c0411a955016f886c5d5d4b09c45e1fdb2fecc3c3bf03fd9067ca5762628cee23eba7b15f8a7894e4806bcfb575759bf810602d8040fc026f9835a89d9d7311dc14584ea299f0fadc1463c2041d5d72d7ef9fd292bb13f3d206f3b4ebecc0a6b39a4676d522b4a9742edcc7a4ffffd09851e0e34144ec0c2df90c4b14133f594c65b9892d01b4e64c65f2ca1492d33e37ae1f1cd1a763c31a22c2889b9fc3418203605223404aa0032be1310c4785e68999647012589c3ce5dd3d7764603cbe7dfc9faddee41eefbd68ee60ad4b4d2846669b90018c9a65e9ae5bab13ad4f62d3fbee56ad22fa0754377246afce74eef4d0133c5273659a1651a454ec52b09d2c0411a955016f886c5d5d4b09c45e1fdb2fecc3c3bf03fd9067ca5762628cee23eba7b15f8a7894e4806bcfb575759bf810602d8040fc026f9835a89d9d7311dc14584ea299f0fadc1463c2041d5d72d7ef9fd292bb13f3d206f3b4ebecc0a6b39a4676d522b4a9742edcc7a4ffffd09851e0e34144ec0c2df90c4b14133f594c65b9892d01b4e64c65f2ca1492d33e37ae1f1cd1a763c31a22c2889b9fc3418203605223404aa0032be1310c4785e68999647012589c3ce5dd3d7764603cbe7dfc9faddee41eefbd68ee60ad4b4d2846669b9001292d7ad405fa37806d82528bc3fe8435a85e151b1fdf1f84a5868f532008b7021658174cef8b7ca01d1325c91a7d18b8dc8db38e6a8a2490f75e8322349c589008b57e0805f4bb851eebf6269807c7c8bc1702f106a0fe1917f009e0d94070b34be1e0f4f65587db243499b8b6119fc53fecc9d8d6fee108adfe74bf5467f4d1893551854fec21b56a4fe98d8269f9e008b625f272cd03983e56987d34756360aed5a5fe4ee28d41d16d38afe5e1f30cf561aa5ee3b924ba91850578e01490f00e36f818aed72e9d9ce471abcc508f1cf43c096b753ff77aa8e927cf356a9b83e61b8d24cb0476c9cf12eb8dc052e293997707289505bfcbd2ced1efdf18ebf125c534548436e43bf17fe0c04c54749cf0b77aa2d2eed5e1e60a2d2e8abc0510461dda8d89f9244340ca170b871686ead72c0f6aeea72a59dcc85f5bf2f68613e5ab435fc970c298c82d266223fd9983bc6fe8ebcbfe5283127d7afb5c084202fdc85526d913a8fe306f6bfbf634ebdf8e773a1cd6871a211d15c1fa8ad94d02ce1d0723f4110cfa7391b74da3f9b403bff477b46e4f741bd55c759c06b6d8729dc607be1a1efb84beb8407e2f7147862c58a219e8161dd9804925be76fbb2d287ff2c966a17e8b732c7a0421ce32d18e8c868497fa849c1f894164013c052617800d36995e81748cd385fbde31cd2e93ba12777152747f79a3ef88fec3fadc1f91510ec6eb76d121edcdc0588234cb766490562efdd97194f39b898c23e4202bcb9008605ecd38436d5024a2365771ae9dd1bcbb0650dfe9ca8ad9c571a8d2078caf70af1b12b5e66faef300ef19583b8a20b6e5538ad9079e8b51e37487bb2c7839689d99667a8c349c9dc10e489663e4637e25da3ecb9bbcce1cfe7dc58b21d360d1f65200e87eb191af8efd34220d593361bbfde567ee157126aa31970c3ddd68c5cee4775c9e11cae233b6b0ed6600279df1b42be3a57c592bd84e97a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001353c92937c37763ec98d7ea0ea0f83e715cd971d9b25e3e93686981b1c47539b39d2269f04070261de91afd2f2fa1577efad1cade7613781727e0b08d32111bb1412a92afd63960195a29ead43df1942f5ab4ba35903e6a8803f778fceef6ae5009f8b888db070f67fd4f233e18da3cae07ca4ddc632f72fda406600543d893910684629314a3298d01f856f837b3f36bd81d2b7e8c6aecd97a0b886468dcb6d315adb75887f0ea5d8a884166acc0b78c9933aedc178b728458dbb7b55371db0246809d97aa1c318fb7fef4b392c6320777f0242c99b6ed59203daea5aedd6453aaf85eade63aff36e3be98eba871d5bc2bf50b38b302d0bd73aeb6f040c16ee330c7393a83f2ad779a0ce71b04f6f38419c59efcf353a81ce4c6a45ec4b120e09da1ede560299f348692cc51882b7caa5ae8701766fabf9f50571bdd482c0362360843b4463152da41b14b1d2c15121195e05a0031100d61ce8093d6a42b74d31c2b72f0e12059ab9e15fcf5ed69e41a7cdcea54ff2dbbe15b8ee6ca26b20d9225920c5dbafa448cfb68b0c5e2c3bbdca35721ab4457435b04f3e4fbe08b36c2d5195c6c5954b74b23f8d35db870a0e55e27379b661fbf87de3697dea26b3fa1d19c109fe9b405102d0c9e84ecc4bc65316b9fbfa8659ed90b31038b415ac9a22b1691f5afa61b1df3d0d5afd8a1d000fc12c1555b1600f24cba786d482a4a21889edc443c08f02ee63e98673cd877a31669abcbc0c1b91be91d0943123c4bc123e6dc8e3b19955799336a9e26a506d65d62fc535d1e792583417e8a454274e2077dea666d302e9680c24a43d9ce3ab1eae47ce663b20eb61b77c8bd965303b1f882159992cfd1697f3db5bc2631c550398512da311d8303775b461269acfc622575940021f0e8f083cb7353410725754da350fec8db261b63b0ce13ef9f1251da8a6bffde0f170f7c348cacbef8da8cd6c63ec1cbf46b9e2f2240bc1060edc2bb4be400a9b48cb292f940a04523bb463b5d7578c2a89b15cccde8c3ae1b5b7144b41bff564b734d6d06bf5fbadc44bbe90c1a47d226f6a3c605260c51e4a4a1a87b74035086bf7cdede432159b2a858bb969c1a0edc5240478c5f626688c90257848bfcaf7940832121bcdea64d57a968d2f3a685f33f794b46af6d99773712077dea666d302e9680c24a43d9ce3ab1eae47ce663b20eb61b77c8bd965303b1f882159992cfd1697f3db5bc2631c550398512da311d8303775b461269acfc622575940021f0e8f083cb7353410725754da350fec8db261b63b0ce13ef9f1251da8a6bffde0f170f7c348cacbef8da8cd6c63ec1cbf46b9e2f2240bc1060edc2bb4be400a9b48cb292f940a04523bb463b5d7578c2a89b15cccde8c3ae1b5b7144b41bff564b734d6d06bf5fbadc44bbe90c1a47d226f6a3c605260c51e4a4a1a87b74035086bf7cdede432159b2a858bb969c1a0edc5240478c5f626688c90257848bfcaf7940832121bcdea64d57a968d2f3a685f33f794b46af6d99773710a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac629bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c0574b614904f04d06536b5cfbd25bc253f053f3efab39148f663b7b5deec33cf340e52de04aef29b278901aaca40eaafc3602d624e75ececc9c33045c86e16ae334663237c54b81bb6440c12f58e10e91a591b277bfeba39ca0dce7258cc3867336701f1127b21ca8e6725b4e67a769f455e78a51b8319d7bd1dfbf17a5b9fa53cc6685db8543c231286b2845afb78b7ce5da7711fdf1afa1599b0f8a5e75f2d3b63fa20c08ef6946b68d1be6e6578e912c24f6d15ed51fa875cf830c4f8444e1dff3c5197fd00d1d0a0de7643244f7892ab4a9b26b3f4238af227929b22c07334ab22fea15d89c74a4ca0d1cbdd19b18c8dc4699b5e6d44a70b9e363033d81211b17fb361efdf24cb3abc2464ccb6aa775cde4a4c2754d9834cd93847d782b31b78dc6e97e20355ecb0be28efd52a08e5f548e10231010243b8092fe3f60add3078abbf82471a760d2090327ca3dfe9b30f3b2045527bb00df4629e529c216d2231b390b71370230dccef15925d89406c29d3e47cbfe5b82409632a78ba77193bcd88c0e0e990aec2d3ef60b0c6c63848c80fb2b34107870015f5552268495c0432773f1f166f513d2c109f4f3939c7d97e8949560bf19499173b97dd97b6a6087cb610c7823b76ff97a53a595ce2561388daa3bc8b864ed8dfcea877bc09b614f6fecdc87754e058c9079d017600e29771f24f4c00fc5ec7781e11572d4cb0122813f8abb2a1f1ace3ff353179811997fd6cd9b738c90cde6c29d48122a4b92a5892d79c583b12c974ab8c552c605d94810e9df083004a22b59e0e0b9926a72afad388852c9861f26a1ad221c574a81dac9f47095bcb1f32f39857b3cb72652e9bc65b04c70a75b75e0f6e3f2705364638713fb122736cd2d2102f208a1653000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011d502d5d8ebfb220ea69bc998a3f2a238555ea1ccb625bd7519459ef7bfed6db17575a77015d07ca0f7f939c07f9b0ee08088775915fb2c1b38000cbedc830ba3c33883e6c22d421a7f1e172097c874b787231451081ee0e8798671fec2e48052767404e173bde8049b2551e245956a15cc5f7a1dc1d192b15ece8dea759c5593147abe3977a51eef89875dd33d62d97e3605fc23ba58c7f774ca67c300bea6d05465350c4bc5b9d317e25b0ac5132b897aa9e2c98578e894645d7389980cda80a2bc89c7261729866c8d43fee7e74ea60e210491ab2a0d538289e779b5ff8443350391208dfc2b35b4905cff412bf1720a5bd0b3f8f261c435bf068018bf38d022a8cf52568d54f732dffbbc667dcc1f521d63a0730ccb804af8d9f66e10e69100c42b8f67689632bfcfd2aa2dfd5ebf684a6135ff40999f717dee41db5ff4b16ba7f1871b67f0405a7e6a14bcda4430ea2519fa9310e9516b4207f3ced08e6018addbd4f07ae7df13dc84000d98e66d1806e2eb862a8c41a0e760f22242f3a24028dd8505fd97356749c9ec0005e918e7bea7ecb9a7dfd587e59116bff7d212ba828b450e5164a2b817ba379b2e73a919bfb159f0cf230d5b44ebc3c2fea4507cac7cd7d7e58eb0ecad795684f8b7baa944cf2a324af8d8f33d8b8d68acf123d505141f79db12ceb57f37f9f78250e1adb36e5a6f8d3b1e7a5973d6fcbab19313edd3f79adc015b1ce2dd1bf395e199f02f0f3a38ab7b81155f22870e26b2f1403bf524a666c02099ef064cebe79c4bbd99a3bc2668ddf3eef8563624ba55417e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d28193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e1110593943781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e20087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e1158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c2a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b69652bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef617e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d28193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e1110593943781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e20087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e1158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c2a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b69652bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef62a541dc9aede8050ad6648812a33cfccec8163996bbfab69265fbcf2ef361c4e077596ab5d4f14c7435038a9742be3e6b737f77900011bd2975eecabf38cafdd3000000000000000000000000000000019b4f2bd06f9bad4b2e1e4b1c00000013000000000000000000000000000000019b4f2bd06f9bad4b2e1e4b1c00000011bbf6cf08a9fcae4eaea8d7a724774b3c8891d34d51de544ba34750fec2c5905054e43e7d570affb9aee4854bf65e29645e89aff47a48510591b37be81e7333b255565b8bac20b8c8e750132a560c37ef3df331436801a7896862ec06cba474336098084ccd24f630a4526a8ec327dd02e337604f5c9549b72cafc70dfac942c288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc73502405abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b328e0e5d239105f5b80d47da2bc3f88cdacf4a3d170591082de15897ab082ec95182ccb0627001b850504582c756dce7c72a060e0b10fd66001d0bbca3d909fac25abe23651217faf5299b77ed5cc30333e56dba19fe08bf95918c03550c9e3b4088a6954a2b0eb38bcafc7568bd41c195159aec6025222744eec5f8f4c7350242000000000000000000000000000000011234c7e04a67c8dcc969876800000012000000000000000000000000000000011234c7e04a67c8dcc969876800000010ac638a8cf8ea937a5cfd2dca9768e1e91fe046bbe2c220883ca8c33eee65e1223ea3210f0baf3d18e488ffeda72d1ed08283fff93761e18561d394428b76d9b3aeef6c630693d93fb6067e1d8d25b357b1be696bffdc11d34314f9a694cf4172850ba5536ba7642c5272fbfd65327d276a5b8fd336422cb3beee5b1199c3bba2e02372ed819e8b59bdd6f3191761e2c6482b87cfd81d4fe877ba8c5a68af88223f35650420d4301512ef7e3d889e3ca011820840ef356cdbc03611a0c5635d9000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013103173e02af76fe7bc01cca917b86174b47fdaaf691cd346f0c253577f0786522cd78f17f6d8c465091b7b0a204088a1e1ce8f5dcdf4df23e18eea57f29771503dff30ed4bfe2d4bb296220f3f7aebbb580faded744c81ea0609c96daca676f3f2897dd46f24017302a93e9a8477a721a53f3a987b1e349a714c59292dfe4e92e0130e4609e4a5f207f5279771f2b235aaab7efbfb5669cb2c32fbab20307411202fe3f48a90636391d2df50de506d7028f86e4b71fe2d3fc0603d09c17f35f2c7efebed0e46634548817edad3e11eefc659f95ea9f9397e1b7d3b0a9ced0fd36b9e9a4fa8d42d9cfaf325ef2fe632faacb6ff08f581fb4ddab283e99ffaeb325835cbe525fdbcf40b144f4c568fd72d0446f4b6815020e78dc2b25c3f87a3216c2e2174f049ed55afb2959828b35f6cf45c7bd6af632167786382f9a29d1f517ee70afb169f685e89b40e8c3029d8654573611c72df2eef9846237f2ce24923014812b48db8de104c6e95bc2b6da937f7a42ad448dda5bf48c2f8ec33bc3b730f0a144344f4295782e813fc0c8e76f65fd8387471362687ade7c5e3a314e321eba15486cf5ad2809c7970278ea5e5cba1a620d23940dc5b3542b6f6dfe19342ab1da45968df2538581430fcbd4f1de9ebde75007ad2f0c50fdb35d2562e8f02a68de31e6e82f780e0e468a1c6c12e27b01363b8fabfdbf99383913ee40330f006f8d6d35d713bccd649eabfa6cdf4482dab5eb981450f667029fc5280f20360375b746d74aa3f8a04de42a501de7199a4fc4c7e2c92f9cdbda891b3c5041b510af26a590440962b4cea4ae015489f620f21bbd6dcaa8855c78e49560062fcd2f50d95a6fbbf69d4b315b51feab760a01547d3e9b8250963cb44c579ff9d034136bc13bd1542eed8809376606a6b1ce8273f1b71ba8517f352f45fde01eef002c943ec42eabd11277f6c899f9594e319fd2a744eda4a79c63fdeaef1fe11101211ac62b16a4eaa3a82e14fe2141790869fd1f9780fc9e6070bf2d08609aaaff1ee539d4e95b155c57d1eb01debe86f7b849796488505abb286e03e49f6555022585ded77138953248e668f6a6475d29cd646bfd725525ab01617f4fe30556f91a7a21288ec76acdb719970959b8a2d654e22cfe96f7d37097cbb19d1cfaa90810af26a590440962b4cea4ae015489f620f21bbd6dcaa8855c78e49560062fcd2f50d95a6fbbf69d4b315b51feab760a01547d3e9b8250963cb44c579ff9d034136bc13bd1542eed8809376606a6b1ce8273f1b71ba8517f352f45fde01eef002c943ec42eabd11277f6c899f9594e319fd2a744eda4a79c63fdeaef1fe11101211ac62b16a4eaa3a82e14fe2141790869fd1f9780fc9e6070bf2d08609aaaff1ee539d4e95b155c57d1eb01debe86f7b849796488505abb286e03e49f6555022585ded77138953248e668f6a6475d29cd646bfd725525ab01617f4fe30556f91a7a21288ec76acdb719970959b8a2d654e22cfe96f7d37097cbb19d1cfaa9083ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba2e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b30c139b14e2f029cc073e76e7a64edf1a6f3ad871102218f612740857a33733531d95c8e017fa1e6895534fc3485c246a6b691d17e40c111566ee81de19a3c1b20b6a22da128b55bb8dfa6731f74ce472dd044fad974689e3e68088fc4ae05e1016333d62a0235abdc8aff9d607499a1e81a3e021fbd93c3fb572b8bbc389927d0dcea87c142cd7194c851c76df44aa147c540709bc62f27ba33ec049f82126cf0bcfbb7d08c7af75c601962075b73bf4f6f7f3d7a8dc2e33e18626713e911ccc1dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb04f77edb1bd1e6790a44a9403823b1ef4a3e5fa3bac44521af6bca0d5f7fcebd32fc7d6c9bf281cbafd3f11cd7c7c91d5c0c739eed7a50120c521e61f20f2ccd34f4a61c289fb65c3433abc4504da6f560be165bc3fefe860dd8bf19c2f213f633d48a0441bcc10db21bfab5e2260995ce53e9b24c0cd5872b95d968812e8b9e29fcf736c5a24628707a1f3ce4f4ab78dc0d989779b555c74b9653af138055fb160308c93a5db9d78f85e0c31b0b5487463900648f97a3544d96dd3dec7faa072a1ef3c3a043fd49fdd75b8847fca8d7be5bc0b3d26b8c26a2ee5e761ed8574923f774ed838f90b57abf43b0684bae3303b007d208749e32a7d8decce82935e7195adfb4fb811e3cbf62007de7306d17d24a79fbe515900721ba68f16597b17339581c22f12c79ce2411b819a164abf515bf3845a6c947f4856829b2992b48220f78d397a09b580efbe063db59a165576a63376720573afda1169634429c340e266d16ce3f037cf03107ef1d9e857f70e9456bc4f3ffda7d5468f275b2067b9a000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010ded7bd7c9bd81fb972ec53f33312ee0dd98131341bc43a8615b6f83cf21d344286df58a377fd6f9c7f2d2c8634d61b10285a99460b578cad6eb13c96e87fb721d1178c6deb1eb64194786bfe02bfb36f9f9ad37cd51426e4222822d8bdf2f3003749d6cf7b8ab784321e2a3dc817e6d932ae938c6474af1fd695eeff8cb3bf324f17e90072a15a0ccbe24ec4552d0077a70408d500545936f85878ed4daf2b423bacce439f458351198fc056c900c801e66f6e299c271749a4654b2668a9f39228b119ebe78c765588a25758f77ae52792f82c23613e96b1a1a8154a8fbc94f3ef55b4957253c22a74ea99ce45dada0e0719613d53b55c8d70309b7a6e745310f80c412366b03b509ca9e83116b10b5a10b88e878d32b38eb8abd2a45065025263eecd9bef4943255077dc00633158a6698af7a6f87bedd8c2aaf823e71d76d1facd614ac890064460062ac4dd3f4191f0a6fcaabdd07e138abda522626fc98278bc120eeda743c341fb41ea25ab2e149686ed0f3d11db215d4573b8bd3d69c246394969770ce0d7c6e7fd58d97a21f511d02a2edb02433e54939d84b4b6cbd2b4721f609d421b00587986cac1ba3accefae2f17cf74bfa48e96df55ce3faa91fd3d5d68ae553ce37cbdd3bf01eafa7fc4dd3e7acb87fcd332559ddc92fff070ad42819c15b1e4f3125a7b872f24e28e85d733abeb20cd618c63253f16db65127488da53493fceb93e5c7283157adef550673c9e97f7d088ab21fcead2ce9c20aee82546242619f26e49557986033ac05c3ec937335f8da9b9f63d1253d78350fc94b0a7e50117020a7e0a5edfe7dffe9c3832d1297b15b756b1fa3aff0be743036b4f581afee8fdf581f5a12018200388315cef6b547c023c21149500f418d0eee773477905730a347633da5f875ff6e8af6e553a97dadb1ea6d456fb3b843311188cb886fa8cf5cb89cc25a078a00b3bba216b5a37b6de742c3a7904c47be0aa8540655d1b3f33064f0343dda4dfd0670397e99027b48e066f16e2e82994e3557abf9aa2e4c0ccf9b0fcbc225b2031bd65f7d704a7dd2b8c63f7ed17d66b33549a41fad1883bff1f8b105354385f120311f78fd0c686c6202b726e88cfe860ab65be052e77c400e074efacabc7a0f021579830c4090af372a79c61773017b0fc94b0a7e50117020a7e0a5edfe7dffe9c3832d1297b15b756b1fa3aff0be743036b4f581afee8fdf581f5a12018200388315cef6b547c023c21149500f418d0eee773477905730a347633da5f875ff6e8af6e553a97dadb1ea6d456fb3b843311188cb886fa8cf5cb89cc25a078a00b3bba216b5a37b6de742c3a7904c47be0aa8540655d1b3f33064f0343dda4dfd0670397e99027b48e066f16e2e82994e3557abf9aa2e4c0ccf9b0fcbc225b2031bd65f7d704a7dd2b8c63f7ed17d66b33549a41fad1883bff1f8b105354385f120311f78fd0c686c6202b726e88cfe860ab65be052e77c400e074efacabc7a0f021579830c4090af372a79c61773017b132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c83614840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d312609d0f28df34f89daacb5b062f76ba5e1e124926c9ceb5a5f7656919f3a5e969e350c1986d63d0d76252cd4dcc0096252448ef72e67695958363393bbcb800d682b13cd6d52b7a32dda0c03c427c28bba72b3b40b5a8595a3c029cfe2dfe9b15a21d8509a7454e82c6c01ee7f9d53e927b541a171fea9969f871cfc034c9763950cf4d744869d6bb7ca44679edfd6ace4ee3f7c43864249b03768ed6a74a65a6a17dcd04956966bc87edd991719d6b3a0ba18caa2e4cd1d4bae3ffb819913f9ef017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e17f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a663731789f475753530cb37be57062b43ebef7ca00989dac207ebd71aec10afdd45f236851d7d884ac33e3c6d15fde25d80bea7e85b54836569bb5cceeb6776c52af9230086247a469bcb4270f361e752adaddcad693d24550e9e2dd444b25ffba12e366fd69bf31349f99c35c37b1c54b8ec1ae6392344ecda412b8bb3f63a32c1750b0e6ef98e78b6be235c07c80773323a95927c69010f61d84e5111bf8a553dbb34f1910671874941dca3f837f88ccdc58cb41c93083d97434adc1f2d75aac2470e994204c31d5f373bd9181cc0343b4e845c2fd879814d14cadf7f06b8d5a2f317af240798a5008543bfe0b9679e54225743718e9bb9930fea943816910cef970fe999ea78989dbb38d7cb5bb19f2520bcc75b371ca868d817301801e58dc1e019bac5d70ad5f06ea847e72e97e2f7f92decd8ccea10fe0953aacb5a049ed02f2fbf036e6b1dc06dcd150c7524c199a86531ae64a74c947e8a2383fba9dd9b873135cb9b5ec77506e1a03afc26ac2031ab00af04290a74ee96b1feaac8230b65000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013352e5072b72af703226597d122d7e3ed912fd5c29630e7bebff2540aabfbc7b272d21c93420d5f46428b4873508974aa0885880ffc205269e7b45224dc0f6280e0f101eabb056220f3dc408f98e581c3c1e3bed51b213f3ff0b02fa306e3dfa03e06be6b3e654db1fcfe721b4324deb6229090533dc9010ad0d49fc314374e73857793966bd7afaf0aa14b03533d3eaf15ebcb47e2a0dec88ce390dd2649e181c96b97ab758dc4ebc7de93530391099d05c1ea7c2ddc87c0dd68fb32b6fca053e6d9e032ae4ca7b650092ee3572a2a7407b9284831272e1eae56bfcd8f8ca65165f19428609e4771f2ee90e4b25244fe4485e0c8adf37cb3abe838e01d37cc628fc3170dc301f12682efb78b45788db51dff36cf912497b935fdb5555376dd53ec557971b5ebb941ca4de50712c07df3f8cfd70b81c2f38b720cd81f0c7ad592ac4cca44f3ba7a63abdbb3c785332bcfffbcca03ed6f29b1d34bf0e4ef4354f2d4c63a6a89a3d999bd58ecd725a0db24ad6427f472a209c0317a85fdf554dfa2107c294dbbee4c567865259d4c1ffbc34168ec442e4d324c37805cb8ad8943b2ea2f3f7c5860af81a6fc5e864f1460fec0156d027c29d096abaa2021d56d32b27df4264fee92b01e032e312d1dfc91aa6b438ba51735ca196c074b33b9586201a88f9b8568304a23418262de497712874cbb06e680171e55faa41d5409c1cd704e5af2b8bf3062c5d8a3809a489c7203588a718a1bde21c52f2d13584eee29e3af4271eaf61619994d793c93f7791eabda217ca0a238eedffccfdd9410e6e702ef652b3ae7c09697e77730e53638cdce761b53eaca34b8d647514d2ee86b9da1109ad4c5183f69681888cf1ac9c73233ae4e3bd5ca9ad8e34b81c1a117946272acf9d82686c2f0f78553f47a0f1c0501e14bf4543498e702ac1d557a8a1a13f1530627d9793d0f087aac0b85f0e3fb00431d9b6c6036aab6e6b5b95575e5ec2160e138c0a1ceb4d59aa3c6624b8c1902f93f1663488dcde0a4197ef4b28263829f1ec73f5e314b2a655c399db473e6ff2b2a795d4c41c3d8eeb98fdb4d7d9c92e4661bc32909882c0532dfeb79bc7d0cb9d1e02fd5f573a9a1ac6bf77c8bf1711b99e43cd6f677d3facd2014864382f56a97af90beda1e0ff126a2d883740ea2ef652b3ae7c09697e77730e53638cdce761b53eaca34b8d647514d2ee86b9da1109ad4c5183f69681888cf1ac9c73233ae4e3bd5ca9ad8e34b81c1a117946272acf9d82686c2f0f78553f47a0f1c0501e14bf4543498e702ac1d557a8a1a13f1530627d9793d0f087aac0b85f0e3fb00431d9b6c6036aab6e6b5b95575e5ec2160e138c0a1ceb4d59aa3c6624b8c1902f93f1663488dcde0a4197ef4b28263829f1ec73f5e314b2a655c399db473e6ff2b2a795d4c41c3d8eeb98fdb4d7d9c92e4661bc32909882c0532dfeb79bc7d0cb9d1e02fd5f573a9a1ac6bf77c8bf1711b99e43cd6f677d3facd2014864382f56a97af90beda1e0ff126a2d883740ea39ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e2e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae9680aed5a5fe4ee28d41d16d38afe5e1f30cf561aa5ee3b924ba91850578e01490f1893551854fec21b56a4fe98d8269f9e008b625f272cd03983e56987d347563624ef2af288a311bbc5f02334c1052f8d299158fbdf2cdf5668b90bc81aac4bc125c75f1da7984a0e35ddd3cd4a1939fa3b3b9c2f959314eead426e27e2792dea18c9d9804d1af74f9e6525b58fa140978c05cc06abfbd4d3afdd2faa1c9c215527f0fe2bdb474e59eadb6476d794884dafac34e825f9c1ef1ac1b293f21ba6371292d7ad405fa37806d82528bc3fe8435a85e151b1fdf1f84a5868f532008b7021658174cef8b7ca01d1325c91a7d18b8dc8db38e6a8a2490f75e8322349c58934dbc8a39a45ce2be2779ea00aacc2c0b7927d214ffa93b9045ce3a448a0fab1325a11f45c08a2aea59a863e29ece7f7ff9f940118a9f7227dce0d59533bdfb73b12ca76a70122037a049f2cde0e1b14e91267d649f8769469e1aa59333c909638e58eab6857393e8ea4b8586fd99eba2182edb057fb16c88919d7bb220dc06519ad4901d8086a3978336cd04c6649895b498c9d634fd44b5a6bc2270ff2cb0d2652b6fe27f795c687cc932fb399b676c6fd0c5ea5fd24d03ec16ec5f00d34f503e207b7a3c6be417c4dc02b20c3c0f0969f1d125737e5a0271f1a6ee2a91ca208711f008c0299d44d156e9916d4b1e3869a5c494c1a1ced4369c1b433cd6355339e1fdad3365d0b2ba6f29b5fc10886070f9c53246b1970a712324c5ec795481a7a7cfc196b836dedc2600aeee8e683e31623660fe37ddf759a448853ba06c31852ed3fe35236800006e814fa47665db4745513ce5bb46bd29c43fa970c1f4e08817dd01e763bc5bc2b31498ff7c288161efe3592a6110e577d49eef1fe1e2b000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011f9a46c5ff7dcc9261bc2e80b5fa3f72529b9ae7f11d58b0946a4dfd7a629b0226c447fa74789fe130254821001189e6baa27a5ba6642961de7d830c074a23bf07c14b8a3d836c9ae1a09a75634d69cb21cb5ab35dc236eed59aa64f657aa53b1b7a4bc81fcd86273bad73aaefb52c79390c5323ee1a38ae9b8a675947f46a2726f25e4a66087b4dc62359a680efea4fe266ee18b4bd181b60223581e3568b4e12a8ee76db0397d245a81e746cc467f696946ffade925b5be9c329eb2c436215363ae72587b93c89b552f9cb2ecbf6f64fecc8c1e136440c3bfcac324fec34d81b6caf3410b44ae201b7098ca906f4186f7b843c8cc1dd3055e092a7f9bf2c633d5397b832a20e5dc30a03b2b45683b64b9738fefef7607251647000772e5beb35e5fcf4f94cbdc431d62556ec4ec64acf5f9f9ba24f8fe557400779d7f7eb4139385951e143178679c0ff4dd9a7b25e6aa5e97a7da6e7ea13638ef31a4f2dcd02f14cc86b6d53aca1a045e19fdf822fb035c03d5d3766c70ff213e8c52ff6a81f47752c1656386f9317b8cc4e80977c2748181264a82948f12cff02ae454d1d306341608aeeb74deede5f75eb32ae4ff8cfcd8205ff46e53d05a8caf9ea1a49228d1091e7a6be1bb6773cf6ee7e29002c2cf71ba3fcda0eb3167f0a526961451aaa8cafd2de7060e226c734b54f9dab7aaf3a06aeb2c98ba04ab478dad3712020d733a026a66fb5b6a74aae37ddb4c0940fb2dc423f1e38b6a76380e717e9a50e667ceedfdec71c4cc8bbb08b0777141fe835a73ca5830527cea9c3b1d25b463395a5dd360e13de1d90628d3107ef8b4b55279b87bebf2e5cae67f17ea6ba930c6a5a22c9f1ec21e26f9d72cef81074d6f17160818e39ed3c7ec8fb8159456e01ec3d520e46635693d1ecc1f527adb7ef8f62198185d7796ab344037941a4db3e13c2adf1b99ca96c2e133e0ad8524832b736e287c721a22e79ece986be5b26099d329a475ff0b0e3199fc9c9c66497adccea7f879d355f158054115e4838473662cd65b8a00f4f1ce6603636399b687479ae7c81afc3bc83acdcdba1b7c7ba3011fd0364dfb3746f801ef0f0dff6f66500947da6120adb6b81a456d76919630fee02fc9b204c8b907fe10f0f200909bd46047e633aee402dab8c962896e69e3395a5dd360e13de1d90628d3107ef8b4b55279b87bebf2e5cae67f17ea6ba930c6a5a22c9f1ec21e26f9d72cef81074d6f17160818e39ed3c7ec8fb8159456e01ec3d520e46635693d1ecc1f527adb7ef8f62198185d7796ab344037941a4db3e13c2adf1b99ca96c2e133e0ad8524832b736e287c721a22e79ece986be5b26099d329a475ff0b0e3199fc9c9c66497adccea7f879d355f158054115e4838473662cd65b8a00f4f1ce6603636399b687479ae7c81afc3bc83acdcdba1b7c7ba3011fd0364dfb3746f801ef0f0dff6f66500947da6120adb6b81a456d76919630fee02fc9b204c8b907fe10f0f200909bd46047e633aee402dab8c962896e69e1daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff42ce53ced07446ce4cbfeaaa0f4abcb1f9db63b2df513b703b1ed32ba27a6c3e40ec70c44d876c57b82bb950c382934e3ec0009a81f04f2b33ea650419990bbc823395a400a684d94c6d78fbb9be15c3f755ec66343bd022f90dd2d33a0d5bb6d0acb6a404135136d1257fddd30a618cd231dcdf8bb21b7ee6788bc2a9fab0c8a3780608b24a9456ccb9f2045db37255b2c52432e9a501fe468cb58daa56815043e67bfa2358232f285f9c6aa48a670ae33bc882dc8695475516879500f531a3b05f957432b4d66c307dd8d7a9f77a65b49b53376dadd9b2290ea826fd6568a542e26f67ab7b96cbd66298cf342505f2dedb559fa4be2273dd01899d6c3abb17103e95278400e0261be0173704e35195ed08b526147587391f22271c9aff1acd02e6f28d62bd42c3fcc73da7b517d5baa60819620acba95f0aedd2585cf579b7d35705bc03969e10b81c3063b89f4985eb328621906caf853ca0348347f0337803eaff1fda99cf274ec44143257d36d2aa688c4542941c328302d04ff1aff04470749654581b0744e1b99794847a43930c573081ebae8d115f9eaae5dbb57860f38b69aba7e4f8bb1e46686b7b85bc6cf5cd390dd4e6428059f42828f44a879f32ae97dec5beded385fc5a0fbc4dbad157d00b9605a7af6d457ef6729bf577f581692321285153bfbd269c62de2a8b229adf2e7765fb13f6dfb9efe3f1b2d1a6613c2edca043bfbefe137a27b08a8997d6151e2cc09bc0d9dbeeab485e46e2284379704caf1a3956679f4fed0cc79f4a409c31f28f7570b1a33dbf528767a0e062f244c42c07aa2adb178d863c82e44f801963c1abefa4604560d9922872b221021670fa21cf311d03323710021d3b9af58b09f0e76a3999c34f7c17e93b32d270000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000105ef28bb37870e2956e0ca8373dfb53ca25283dc496523edd689fb24ce3d15160ffaf1fd37fa3a6e30758b55573b347318cc7de00e4814622011ba8c3e9ecfeb060ba42e1243891a809b0732ff351aaf60e21644cf0c0906086b373948a4aa1c256b277f440eb07133b4423b52bafa9e9dd45e131174042c11460abcc73778d505904adcdae87a17ffa72ad107d178f7218ca5501bb044fdf1123eb0240d0359380c425f4f59e42dd633480ee8b3d074dc50238106293d871975a2d50bfd34fc19269ec04345ecb1b01703ca40eddbe064d6588a2225d64e4b597313ecabbaa93281c89f95b4798d83161ed85339913ca2a26b67e4c00b38e7cdb240546c23211121e2dfffad26e1abdb004617e8a86cdfc23110b7b3eb15d8e6ba4ac208cc7c3314e2d3d37a79154e4c0667e9d35eab4b93fd465dcd270227e4c50356307ca61b0ccc75474575e42fcf2d4ed95c1a4c2acd36e268af6d9cd6a836a975a646052dc270fcf6540983a25c3adf5535e12bf378a54fc70a185a3a782c1184f2be3e074d101e473b0b60462be350c56c3939718990cb4a2db52b6c8d34ffe94bc485085da66e5a09e45d3bca34f174470c928c47bbcd172cc1e7287841e0bee3a2e03cf850aa9595be4878bd1cee2e3ac14946c856d6a49234233f265bbc83e8140a21510bc249bffe88fca3965d33f041df0278db90c7a354595af64d6bd64248f63a70721b2b8b32dd3c51cb0dcca9765da60fc6630119acabc9e7cb2df21bc693160658d4947e83dbf2406d62c6baf5c3f277f92548bb249da09d1b1ee212c0e2000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000224698fc094cf91b992d30ed00000000000000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000224698fc094cf91b992d30ecfffffffc000000000000000000000000000000000000000000000000000000000000001940000000000000000000000000000000224698fc094cf91b992d30ecffffffe8000000000000000000000000000000000000000000000000000000000000007d40000000000000000000000000000000224698fc094cf91b992d30ecffffff84000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000224698fc094cf91b992d30ed00000000000000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000224698fc094cf91b992d30ecfffffffc000000000000000000000000000000000000000000000000000000000000001940000000000000000000000000000000224698fc094cf91b992d30ecffffffe8000000000000000000000000000000000000000000000000000000000000007d40000000000000000000000000000000224698fc094cf91b992d30ecffffff84000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000108d08231907c9829eccd4a91309167414dd18d99fe4ccb30ac14d7d64946095433121625652e11a21e7979b447166a4723577bfe10d303e8d932f7555f2dc071299555c5f80cb880c0e55cc9f4ad000adb2f2ea89796f672b3e4abb84084d04d240afb496711fc160dabf896983fa5dc1c8c2cac9efa3c2f9131c07a00c5dc262c76b33738a71d38ca97ac66cd08bcbb18d2cb2e437ab1329b86cd1f8cef84a633bf7776898bdb7f2b2e547c77748540650dc075b4747836bc229cd4e1bbc9861731df6cf0f76824ca03275332a4c52a9300b42d2edc6f6278d852767311342404496398400381fd6222d32bfe88020bdbd62d29ff83048e8ac9b83f30cc1a4f014b4e37b6e87976d693e33f832d6141b6450ec73aea72126098dfb4f364386238a75c7e73aaa296a87588106e82ff0fe9fe25bf6956ab374695b2807dc4db7723867a288eab65bd9a02d6c718e304f09d4d3b80a564f2cf11256e1c6c12345317a2142bf415f9af34b8b5a0f8e29a87b71b1b2559891f64474c62429b3a88e03808a260ad2ef60e4d3d62a140d0ab4468fcca6f111e50c9e6e6458b0cf4de860000000000000000000000000000000000000000000000000000000000000000078124a217daabc494ca96b5b5f602362b9f5ee69503655320f03beaf7084df62d630b34b554215e425c4a4b695d3481ca06f5c34edf956de58d92d70dcff26700000000000000000000000000000000000000000000000000000000000000000070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae02347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f3dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc620b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de6371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a8708e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae02347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f3dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc620b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de6371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a8708e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001337c866282daa61ed5bc146cb87460a1095e7e5256c70505d32bea0344e50a5903a21794126a3368d4d03d3bc01eb270beb46fd17eb70e5a1a785af1b9b924e500561fe93582709370c4c2e53935a3e73062d0b900e4ec30d148d0815ca6c991247dad90bc9eb006a1d7519ba9412e47168d01c62f90a9c5872f617e6208a0af04daef5b9e4ce5326abad0b1c14ca91642cef5643d23f7b2a300a844a9ea581502c2b6bee0a4da1f242790eb3c70a597625a1ba85c6906df747fac8f44ef577c2c4f3844c63f2befb1874043e24560fed279166505a0eb482d279ab5e7c4b55d2c798b91a8fba19c4c33fe0122817c88430c766587e3bfef9bd4188adac71d4c10af8a9dc687a1f46442416e13853bb47a4a088adc0a2cd4c5ce224844ca31f53c7415c5a40827ce02ebc98c1693c910f2e02d2ff24ca032d8a8f1f37f574af501a2ab2e97cf9dbe7196565264434aa9f6584f21b6ec5c0426a1e4b8e4871ead0e080b5e097551ff105fc1efd56ffb220778fd76aa6e1b0e6e639227c3a848b800000000000000000000000000000000000000000000000000000000000000012d630b34b554215e425c4a4b695d3481ca06f5c34edf956de58d92d70dcff2672d630b34b554215e425c4a4b695d3481ca06f5c34edf956de58d92d70dcff2670000000000000000000000000000000000000000000000000000000000000000000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae0591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f62000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae0591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f6236bc066bad4f192cbdf19e4a06169f22f64d1f342a06c9e1b7b20cb69f53d57911d68caa2862c78883eaee78094d9fb69b4c1aed67ae908a1a76c75ec489012509bbdf8fe995ac146b6973388bc2ed59adf49fb0089ffd8ad272064a6e75e15712aac1a59c78a2b8a13ff2c356ff5ddb259d2538cc45ce530648a90a8728eaaf0905d69e666e3b2a0d6d173f142cef7678532cc741da81bb8790348d2c293b4d08283f8b0e460d52c58913fad78e1fc4cce8aa7552f29062c225dd92e0b0220d2539ce1ab71bf03b306a3c65323082b11c9d2833d618dd553afeba6647d312751c0c545aa2bdb7106c3d18e0e089a52c307d2b53c1fd744562f39fadedfb16f52dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd60818bd7372880ed9f4866288b3a4faf8aa3496432b0a99467ec41ef0a0cce8472caeb7807c1dead5d1c662b55553c90de9bc150c9e29a6158b6474c7766da90f3f881a04691b3abed6a4ee7d6e267383a04b7313dff32acaa8364ed8f23649331b7eb1b03b2495bedad51ec49fb3026e615d58d5d5589a3e786dc083b44e142e124bbfd985642e97737691abd7fc07b7e76f8b895524aaae324bfae7421b9d5d2db440267a9bd1688c896e542803f8483ad70d72b4284e6d66e13605bde462a53c8943c0a39158f51e40680a874299163668bbd926f545d823fec0430e33f3fa1ecdca360517b11deb43d1b505cb984c70874c0706c8dc87f32ebe838006452a072eb60535474aa2f2f13e18ecf985b3f33229a46462339af7b2cbcae7898d992c2b8b5b8fe96d1aac380ba1f2cb0f5bf1410e49dc5a16bf18fbcf26d6d039a13b7c55d0dcdc793010395c95d0383e62f330a66e10312e1eb3ea52b6a85e438b0f74b0e5df43d8781959bec0dea5d93324a8746805e56f0326503eb5df812511000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011873dee48cfd8b70817d00adffbdc1b4b8827295e52c3577a70caf0d4600731e38ad415ec9c18fe54e4e4168eb6ea05cf06ad84343dfeafd40250d8f04e81576023e2d4e55079082b1953528c231713f47fc1df8755f64677109c4ab52ee8bc3105e0d0f3e3c8c9e1694bc207ae0c4b8c9978814014c6af662ccf55ef7179b4b1e06de6e9396f55ac583fa13a442065d42b74fdfcc7db22f3f725238cdabab633a393d84fb9269ec5cf4b76050b5d76a62b3be27491c96037a0169480bbd07743bb1344411f1518793a21c8585730f74fef859f08ccc74f26bda0e9cf70560c73ea2a54ea7922641e36722f16a7e723b75a7101df5d26fd9bf2b71f2c9352b172178f2aeb9bbe3a50389c048a7ed740d43c0d467b3489555a0ceb2e35c9a78f434fbbfe1fa7f08d0130e267b191065a0d3d43b57fe1add6b4293b5ced99d01c513af320705bebd6d354b9340bf9411e15c8d2578d5045720f2dd181aec53258634fdc36476b89cfc19544e611924662e5999319d28979b158296c95fba8a201e047caa7ebc1a2aefa605e46a57207cc16af48487b14a546fc4eb5ddba8fd35390b2e0c0de52ac4cddbf033d7e292c90a92dcc810b01022a2d01a1904ff32322c193409c8de3ac84a395423df4ecd699de9f0cacbc8c3f116e63d7406f22a320f281d11304e8f73d908f9afe360b96000ad83eaee1ee0e8401dfacb13c510d8f110149ce710066a3b27e340ae613a1641c740e23880a2bf029e25e97567b33a423f9ac29e6ed7b983a51a753fc3319d27dab8f1c6701dba542171124f06374de01ac928516cd83fe2cea612c51c7b6e783d48ab8fcdb13bd24eb21b3e871ae2032536d7ae9327c01d3159ed3ae3849187e4fded6c3b9bbd494a7b15ae78e51dfe05edc99720393f6e093e5dd98e692858edde27d6f1dc38e45720265ea3866a0d3a123668dfc6c091f6c1a2267196d7a7346871251770c037420d0a8e5c7995f41da4eff3a11e3d262e37d53fc80dc9bca556c732b94d1c75b3a0bfd931a01241225b100c5ee1c2d9d1c82ac037f236437cefd1c94fffdca5e58c7113ce5fedc01438afc2259731bee7172a3ee844f0aef624b2058be79c154fc95d63f8205b432bc7503dda68ce4118e8d5c117bb0f512c21e6f67d655d064963d38907dfa4be1ac928516cd83fe2cea612c51c7b6e783d48ab8fcdb13bd24eb21b3e871ae2032536d7ae9327c01d3159ed3ae3849187e4fded6c3b9bbd494a7b15ae78e51dfe05edc99720393f6e093e5dd98e692858edde27d6f1dc38e45720265ea3866a0d3a123668dfc6c091f6c1a2267196d7a7346871251770c037420d0a8e5c7995f41da4eff3a11e3d262e37d53fc80dc9bca556c732b94d1c75b3a0bfd931a01241225b100c5ee1c2d9d1c82ac037f236437cefd1c94fffdca5e58c7113ce5fedc01438afc2259731bee7172a3ee844f0aef624b2058be79c154fc95d63f8205b432bc7503dda68ce4118e8d5c117bb0f512c21e6f67d655d064963d38907dfa4be0c42ba95e57d85e81e62e43ece358248321ec92aa5f4b75b78640b9689961a6a1d8394ba2e4adcaeaef721748559b459a82e03b51fc3c9ede424d047bd7ed5f2048f2c43ec98418df9e7f3e6fcd964d4bcd802356279b7fff0f5824d2622a81629d7a4ab01bed336de2374a17e4b97338f6f18bb99d246b53105b90d6014862f1945226cd708e68d1e2209d7f1c11660f0b044e6400af76672c727c8f2c63f4c22fd51b03acc233e68925827f0ef75cc95274a555a5a6f94cde32383b3c2300e198183a5524851440ba9092293be000c102bcf54e9e649aa7462137a51fb0ed1284898ae85facafdfae320ee674e0a7af23650af192b3280d49b71d5f31b72de047780b393c9324d25d3cf2c8399bf9cb8b67dbfc80f7d2ddb11c11af25663f7235b5f0d6a17565734c6c297adb20db96542cc678885f50ad8c48986405d7d6b1a2416346f6b199301dfede424ccd873dbda7c06df07bd43968350a9f0a292a833b78cf9b412db73acc90b9342beb7b17ffc913fc85ea41e2158f0352faeae6f2f2e19262dea3889e7b527da34f118e3334fcd9c00de89c02fd3a30950473d8238a4c69acff6501a72e569e9fc5ab4730cf015875903e1941d2fd884e26ca3e20bd2ba18c3d2e232b2ee6542873f0b29ce0d0134785894b5570f19830fe9c017342d45e73c2d1dcd4d119abd78c0f4d6543997c790f46466421e1769f0163feb3aaa0bc91b50f1a5fbfba8ff7a77ebcbbf8980375da512d27db7eb7a941fd43f310023df2f8c547f4cfd73353ae424c178bdfaaf5b8603db3df7d60ee7ba75383e03b4973c05198832b87e7c40d59330c8ef04d69a6e5a88de571e8ff23b9d4c3b1955aa3aa0dda9dbeda17afc46d5000de2114961f0105c8425ee297669b090315dea9c405d30508123e005725128dcd8d0afea1dce0691ed318cfc89ac12c01f6fa38efe1be20a6c320608b2c28cf397c06ed7fae85e181a485b699b97d3b3000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012de87aa31e0e4cbd34cf424a6f50f56d045c6e3af77c0b7536cb862629f468e70b77c1197c929d4b643081e0cab4c952eb0b5364911ba8091ed58e769f20638101b246401454e18fe9a073508729b4a35819db4d8ad89b522c0ce0838d1541fa2a59fd6b134365688110c917ff3bbed34a79c14bc9cc3c30adaa95285604ed2c25774cc43cf2a96474a927094e46dec8dcd2d6a427a287a7f9e849d5d75955d42314d565684591129b71aff6d377b1a999912506058c542dfab933b085b4c2e90fc58df81892ef1dcc9a6a234a27fb86eeabf230c2ca7525555a1956a83a8f1f334206e8ae89a9494fb4e7d4bdb407e28f9dde3b0715f25f95ea5eb26c9b996338fc8497281cea95a3bbef03b55f569d9c20e0f404e84557c395b4462f485d980c69c22249e02ee86a0d1bd0acf01a6c3d6fc2f780f6b3494a46f9c33a6fb8d536dae0aa2cd2207b2c1bfe8e4eb4e2cd907fe956d5caee7dd680038ae122884f068a1adabcee2c5e692b141914f9bf71852151e77172ebdb884581ee9f558ea113a961523582a5f682efec692b1c652428a3091dca425ae5e9a9efbb020bd8833c01553a6bc249c6ff062bd90e96e0a7f774dc76a06515484488b812a6238ee314eeacdc4d29e267bf0abe112abea2e7144e9838d7bf4e57ce8064106e317781057d07783d74265ca6ba341ffae177d844bf5c1799805249c6544d01a2a28efa261627d0a17e0ef8ab6be82f257ea3bfd80ccc88d46f68451d34fe163f063ef22b841a0ae7462125ed92ede4756adaf8b85e7145c5ec1e77948f5be653b78569000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000224698fc094cf91b992d30ed00000000000000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000224698fc094cf91b992d30ecfffffffc000000000000000000000000000000000000000000000000000000000000001940000000000000000000000000000000224698fc094cf91b992d30ecffffffe8000000000000000000000000000000000000000000000000000000000000007d40000000000000000000000000000000224698fc094cf91b992d30ecffffff84000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000224698fc094cf91b992d30ed00000000000000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000224698fc094cf91b992d30ecfffffffc000000000000000000000000000000000000000000000000000000000000001940000000000000000000000000000000224698fc094cf91b992d30ecffffffe8000000000000000000000000000000000000000000000000000000000000007d40000000000000000000000000000000224698fc094cf91b992d30ecffffff84000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000108d08231907c9829eccd4a91309167414dd18d99fe4ccb30ac14d7d64946095433121625652e11a21e7979b447166a4723577bfe10d303e8d932f7555f2dc071299555c5f80cb880c0e55cc9f4ad000adb2f2ea89796f672b3e4abb84084d04d240afb496711fc160dabf896983fa5dc1c8c2cac9efa3c2f9131c07a00c5dc262c76b33738a71d38ca97ac66cd08bcbb18d2cb2e437ab1329b86cd1f8cef84a633bf7776898bdb7f2b2e547c77748540650dc075b4747836bc229cd4e1bbc9861731df6cf0f76824ca03275332a4c52a9300b42d2edc6f6278d852767311342404496398400381fd6222d32bfe88020bdbd62d29ff83048e8ac9b83f30cc1a4f014b4e37b6e87976d693e33f832d6141b6450ec73aea72126098dfb4f364386238a75c7e73aaa296a87588106e82ff0fe9fe25bf6956ab374695b2807dc4db7723867a288eab65bd9a02d6c718e304f09d4d3b80a564f2cf11256e1c6c12345317a2142bf415f9af34b8b5a0f8e29a87b71b1b2559891f64474c62429b3a88e03808a260ad2ef60e4d3d62a140d0ab4468fcca6f111e50c9e6e6458b0cf4de860000000000000000000000000000000000000000000000000000000000000000078124a217daabc494ca96b5b5f602362b9f5ee69503655320f03beaf7084df62d630b34b554215e425c4a4b695d3481ca06f5c34edf956de58d92d70dcff2670000000000000000000000000000000000000000000000000000000000000000307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab21307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab2105f957432b4d66c307dd8d7a9f77a65b49b53376dadd9b2290ea826fd6568a542e26f67ab7b96cbd66298cf342505f2dedb559fa4be2273dd01899d6c3abb1712deb307a3d1a7844d20e88da87b5ae0239b5c2e49342701737b9c664a4fd6d6924100b05774826b954c1e98cabc2dcf1725adab78078c802023ab2171a81caa30ec70c44d876c57b82bb950c382934e3ec0009a81f04f2b33ea650419990bbc82ce53ced07446ce4cbfeaaa0f4abcb1f9db63b2df513b703b1ed32ba27a6c3e40fc904ba5d072ee14ffa59026c6d13d5bb675dec29e5aa4d2a4c867015ef710c3a4edb1848cd58bf5e6cc00d6fb556214b5da1ab8f47ccabe7073a2c35555fb91d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f31191ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a1992768519abd8e8951392e968cf4db10f1dd7a0da26aaa1a62f0c6c393bc852101e972d11acba7992d63a5c908d275ef0ce68952f83c017a99d2f00c87c7f500c1b7842979820f82613e9aad8d2aba29edba2a09b2cede1d088e81884ac08452dc8fe7fd0fe6c894514898011ecc3e0e47cfd46463f02f7600715ec21d283ef2f77047d0e1c7a4879e578c0ea7cf20369732ea22bed5d313918c5c4a8acad2c1088fb82f1e385b7861a873f15830dfcb8d36a59dd5f9bea60146b28575352d62cd3801e3ea3e5113e3c569c78708d04a316b949a519756a8befdf7cfc1fa2fc0a2f4974493866cb99197e1ed23cea20adf3be785b8a16c65b5bf5b831ac99c0217deb8a8ced2f5f0796c5eaa9793e68cac29744c57f86eb3050f48112eb752f13d8b191aff11d04939023c28ddb3f1fb250fb2eb481b3415dd06977b68c6a5b0524eafdbcf2907225592563011429666a348a0ec94980212de254e0f48257c519ad682ab4850ec4a1450404d5e2c23b89c1ed9adcc433fcf9c5dc59b5f005fb000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013b73fa2eff661ed03bb36b377c3d98164213a994fec7de3634dc11ec2d401af30e7e71b62f28f467dcb1b250c1b2d94421e6892a5643080be2c7183cbfbe14702747cec38c8bc6a83b9ee8dd046554915a19051afe579a44e35c5659abea8da2159d83123b3d4a30710fc49e22071adcb2c9325d4075a7d7bd524d92a6a2885d1f972af88fb7bb2148014b6b9a3e7fa63f3450cb78925b04d96b26a76fe8575235ff94da8ddfb2bd6cb3d194569a9a32af2ae8cad2cf3be75de045b68395793422ae619fb7f64f4433f25ec5bd52fe77ee02bfdb7785cb44ddbe77320bdbba5b232c7d4dd98147b556ccf8eb07dc749a0a4e9724b86a4fb5fc6220582001631b3d83f9c1bdb873ba69d830ed6d4529b2499dcce13a0279b3a24b1c3cdb1024d231a0d30060237ea9d3abed6775ebc52d293c8e1d65b2ee358dde34150293b5bf28ed28e231ac12c97f358fd2a2a0a45ae48c17a56c6b445e70da83bd966f52852afbf733ccb6f9e2955c7039dc8e8f8bc618bffb3088af5c3d27ff12c28a1dc21c54c01bde569fde6316b1eb79269d154884cdb85fe7c7fb5f6d35618c6fe8493355f670c2ee4fdf1edf6656c08ca8b6d79317dc0abfa832cec5726c1bbf7f1d1b9c8d8581b09e28af83f1afb83da0151801c20f5b6d0342d2b15bc9df5c718920b478943926dab106ac62a11941cd8df13d24647577adce600d84e6e8eb051a3b7e370bed18db92b038ef718c913aa99b85e582e29a091c45d6be8c366c12342d2edc443b43a134ec9fa4d9e42d1f6c47f9b19fb15ae0e075708c21782956623188e3736946f3bf517c077eb5300c2b271757a63931e99ac339705544006eeb0e771c8c96b90c40ae83f8814acff3d4fb2f4155d01b0f80d5f3c097bbff911637ac71410e62c2bc976c257989f03cd75ca0eb4b0212a4b304979ee354022a9408538ebef19d3d436893da86760fc328c5a5adb1073a546894959209abfdd56d165e364547edcdaef51cbb5fb1b13034460a3486e5295310b24156bca40ad4e029a1c9bab81232510ae344a04e4ecfcbdc3c64752423a60ae6ebda305bf52b212fd70f5a67a5046ac98fa8de7875f1053bec6da67081a637e21980c23436285f1028f0a5985afb9536705721878a0efae65a2b5598cb52e3b713b02acbc9d7a23188e3736946f3bf517c077eb5300c2b271757a63931e99ac339705544006eeb0e771c8c96b90c40ae83f8814acff3d4fb2f4155d01b0f80d5f3c097bbff911637ac71410e62c2bc976c257989f03cd75ca0eb4b0212a4b304979ee354022a9408538ebef19d3d436893da86760fc328c5a5adb1073a546894959209abfdd56d165e364547edcdaef51cbb5fb1b13034460a3486e5295310b24156bca40ad4e029a1c9bab81232510ae344a04e4ecfcbdc3c64752423a60ae6ebda305bf52b212fd70f5a67a5046ac98fa8de7875f1053bec6da67081a637e21980c23436285f1028f0a5985afb9536705721878a0efae65a2b5598cb52e3b713b02acbc9d7a221fb658f6072cee97b6dab3dcbac82009de512e271ab489886ab5369ed4941f1174fbaaf88be79d412b9672c9d372a7d2fa63a6f94bf935c8b22a38f99927d5408e7ffa7a6007171ca846ab5c221a555d35b9aacf9f95610076d0f3575dc681c0440361a1ec224d7d8d5ea28a83a7d57f8b8b730acf476f957ec35112a3fa6163286eb1e3ecaa056affbea5789533a4e1831888b716c307e647a2160b3ab9f080df3103f23d9644fa72a1b6c1b961a9c14fca4bc6d64a098a22453fbe63b716a326db10dd5a7b1765db5e5acedf3cee26786f1363634c1a634a356a0e08b822a0d59dd55308f221e8b7b9adc30ff608a8d3a58f05c6accbda67dc57cd7b9e0ae305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe13091cc41ebd24a8f6c5f74d6bc44fb38cfedb7ee4c9d662770a1924f14a91592048a8d77f2449b3bd05b997cec8e288d41affeb53192dab303b17f1088070e8151c9ac8f98cbfa4ba0dea0c7231d8a9b105eb6c9da85a730b14ce4d9cda55f524700f36587f61541470aeaaba8e582af9e7a75bc798eec5b61e584c3c2ddc980bea23d2a258b52685fd44432cf7edc1499839ecb5bd4ecfea7a492bf8cde0f73415dc2d5da74ad97a02bbbcd308123ed8ae5f0f538faa4baeb2e7c107321f0b295949c65e84e39ddd916d8a5eb750fe1e993a7f64c7233128fca72696ba4bd233d9b3b2e196273920302ab4f0cc0cb0efca1d0ae24d53b96320533f6895b38a2f7d84f11737ba9270f1f1c990421704366925b9a5bd3cab8186296cc03195b63f8e441b2dd7b0c75643db88acd6e00e408e58bb0220e0143d1376b25224be260454614e0b222282c7525f736d4e04be8d07e8cda947ff0a3a7fb8968b912569163572611ffe7135de40c785f343601756a68c35809fba7a0895e0632a9f3384000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013fa880f204b67659db88783f9fa7fe47e98e45422fc8c1590eec2a62b5084bd53a2ef45f46cf9632b07208d52b3da38505f2bc91200a94894e451f6456a1d7bc399c5af606d464fdda7b3aafd31bb5f3f0f7c95aa05f4f6a25c0b89f3e217a6a1e83341ea0a57f6fce4d1e05d3dfa020431e8f0e9ecf5536df531d53b4d8dcd42a0999fcf856df9f68b675a4383e159a8f15783d7e394b08f4f0c9f1a00e2450145367e56033d97da14170a9c8e11a3b8accbe43b65286adb9bae93728f7f9791c12493642e4bcca7b93aa524f1569b68175d08bef6bd37fd56cbdb58dbc235b118481812f5e0c89007e5ceff8e9724ee9b0990fd6fe01be85e42f2c0fffb1781021028a38bfcd90b8fb8677a5c828c554ce1649e0e74fdd95a1e2120163ac04264c8e30b3f9e9e26b4a05b8071e358bfa9fc1afff5a62508898b2ddd82cd0d82a345e0659918f8f292eecbc5460a45005e6ae5fae85e144562c0c777afa91ce0972901d50adf78eec986e1db2d7eef2c9c791a2cd4fb612fbab14886790ae1e3322e67f703bca976e6c2c0735571431d508f21e56e85cf1fdc6fe367a2476e11c87d00d310925261389ec3b045c319a4b0ef37613bf133c306ba9972e0af08505aaebe4adc4910c74e6ce36f6f3ff576509616816b38230139c17532b157f27386a56695695124fda400f28dcb52fe691786947b62b8e8c794184a753da42251051875e21345b4424b3d28a9430690846a80e029c7b9d5c6ffc385dbcfd2b0b1f8aaa7cb77946d704b25613b4eb803ca340d0dfe2aa3d8f5af96779e9904bb63188e3736946f3bf517c077eb5300c2b271757a63931e99ac339705544006eeb0e771c8c96b90c40ae83f8814acff3d4fb2f4155d01b0f80d5f3c097bbff911637ac71410e62c2bc976c257989f03cd75ca0eb4b0212a4b304979ee354022a9408538ebef19d3d436893da86760fc328c5a5adb1073a546894959209abfdd56d165e364547edcdaef51cbb5fb1b13034460a3486e5295310b24156bca40ad4e029a1c9bab81232510ae344a04e4ecfcbdc3c64752423a60ae6ebda305bf52b212fd70f5a67a5046ac98fa8de7875f1053bec6da67081a637e21980c23436285f1028f0a5985afb9536705721878a0efae65a2b5598cb52e3b713b02acbc9d7a23188e3736946f3bf517c077eb5300c2b271757a63931e99ac339705544006eeb0e771c8c96b90c40ae83f8814acff3d4fb2f4155d01b0f80d5f3c097bbff911637ac71410e62c2bc976c257989f03cd75ca0eb4b0212a4b304979ee354022a9408538ebef19d3d436893da86760fc328c5a5adb1073a546894959209abfdd56d165e364547edcdaef51cbb5fb1b13034460a3486e5295310b24156bca40ad4e029a1c9bab81232510ae344a04e4ecfcbdc3c64752423a60ae6ebda305bf52b212fd70f5a67a5046ac98fa8de7875f1053bec6da67081a637e21980c23436285f1028f0a5985afb9536705721878a0efae65a2b5598cb52e3b713b02acbc9d7a221fb658f6072cee97b6dab3dcbac82009de512e271ab489886ab5369ed4941f1174fbaaf88be79d412b9672c9d372a7d2fa63a6f94bf935c8b22a38f99927d5408e7ffa7a6007171ca846ab5c221a555d35b9aacf9f95610076d0f3575dc681c0440361a1ec224d7d8d5ea28a83a7d57f8b8b730acf476f957ec35112a3fa6163286eb1e3ecaa056affbea5789533a4e1831888b716c307e647a2160b3ab9f080df3103f23d9644fa72a1b6c1b961a9c14fca4bc6d64a098a22453fbe63b716a326db10dd5a7b1765db5e5acedf3cee26786f1363634c1a634a356a0e08b822a0d59dd55308f221e8b7b9adc30ff608a8d3a58f05c6accbda67dc57cd7b9e0ae305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe13091cc41ebd24a8f6c5f74d6bc44fb38cfedb7ee4c9d662770a1924f14a91592048a8d77f2449b3bd05b997cec8e288d41affeb53192dab303b17f1088070e8151c9ac8f98cbfa4ba0dea0c7231d8a9b105eb6c9da85a730b14ce4d9cda55f524700f36587f61541470aeaaba8e582af9e7a75bc798eec5b61e584c3c2ddc980bea23d2a258b52685fd44432cf7edc1499839ecb5bd4ecfea7a492bf8cde0f73415dc2d5da74ad97a02bbbcd308123ed8ae5f0f538faa4baeb2e7c107321f0b295949c65e84e39ddd916d8a5eb750fe1e993a7f64c7233128fca72696ba4bd233d9b3b2e196273920302ab4f0cc0cb0efca1d0ae24d53b96320533f6895b38a2f7d84f11737ba9270f1f1c990421704366925b9a5bd3cab8186296cc03195b63f8e441b2dd7b0c75643db88acd6e00e408e58bb0220e0143d1376b25224be260454614e0b222282c7525f736d4e04be8d07e8cda947ff0a3a7fb8968b912569163572611ffe7135de40c785f343601756a68c35809fba7a0895e0632a9f3384000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013fa880f204b67659db88783f9fa7fe47e98e45422fc8c1590eec2a62b5084bd53a2ef45f46cf9632b07208d52b3da38505f2bc91200a94894e451f6456a1d7bc399c5af606d464fdda7b3aafd31bb5f3f0f7c95aa05f4f6a25c0b89f3e217a6a1e83341ea0a57f6fce4d1e05d3dfa020431e8f0e9ecf5536df531d53b4d8dcd42a0999fcf856df9f68b675a4383e159a8f15783d7e394b08f4f0c9f1a00e2450145367e56033d97da14170a9c8e11a3b8accbe43b65286adb9bae93728f7f9791c12493642e4bcca7b93aa524f1569b68175d08bef6bd37fd56cbdb58dbc235b118481812f5e0c89007e5ceff8e9724ee9b0990fd6fe01be85e42f2c0fffb1781021028a38bfcd90b8fb8677a5c828c554ce1649e0e74fdd95a1e2120163ac04264c8e30b3f9e9e26b4a05b8071e358bfa9fc1afff5a62508898b2ddd82cd0d82a345e0659918f8f292eecbc5460a45005e6ae5fae85e144562c0c777afa91ce0972901d50adf78eec986e1db2d7eef2c9c791a2cd4fb612fbab14886790ae1e3322e67f703bca976e6c2c0735571431d508f21e56e85cf1fdc6fe367a2476e11c87d00d310925261389ec3b045c319a4b0ef37613bf133c306ba9972e0af08505aaebe4adc4910c74e6ce36f6f3ff576509616816b38230139c17532b157f27386a56695695124fda400f28dcb52fe691786947b62b8e8c794184a753da42251051875e21345b4424b3d28a9430690846a80e029c7b9d5c6ffc385dbcfd2b0b1f8aaa7cb77946d704b25613b4eb803ca340d0dfe2aa3d8f5af96779e9904bb61043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a1043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a352254da5cad22b2bb31a255d43899f5be174c33d783688ffa31918b2d0e604e3319a2a83a6dd65b246c9f7d539b67b09c3b0afe9bcc31f641e4746e726732ac06cb934fc247fa8d561ee4874ddb15c44061367e9c9857ba790f75d47e485c66012515c31c4d62deb68da72f0eaef3954e35414c7d634f15b8a251c3e93c47a811b3b2cdd522bbab58a1c1e190509f255ef725a55de7262c784576be6a96be2731e58121b4e86da8dee5935258eb584177732ffc36cb6ca749c9dad8b2f3761701964ace5f996e004463cc51a0e0974be4467bf3704d77d22853a8ba1554a8c22267e92a09901923b82bcf1dc9b164a7ad75052728e5f70769a126c426b15905291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa126c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b2b8e40f40da8d8261d87a0534e4cda684b2f16fa51f2e5013e2a80240aac2a2d101a49e89dccf3c20d53292a3e6513a4fca4c6dc28c40702523309daab596604041217d5e10ae2bfeeaf7922ddec504623ce1649953138d125ec298d54a9434e0bc14794a944c6c62505b9539db5a4ba37d64cb0f01d780f9ea66abaa45c85ae1d512c57e2f29ca04e363a2e738b7cb3d3d12ff33cf1abf2a1eb949626fb09f422aed3a81d0d635fb1c9c5d18c74834c4e756908cc5b4d28f7419c56d904f60e1d743cba4ef5c5c973f7e3f83310b6ab185f459309c48b788fd3c0818f13e4dd1dfbdfbfab900b06d703918742fee32becdcfa772262ee36132d747d639097a539e3e4d4c3e51db81cc112b334ae70ef09672755571cf841dd1148a80b0d0dd02ccff72041769e1ab5953cb5eb2a58f5b297dbd420f16b057d9adb419cf05201170358528f9ea89495fe9ff3291e85f0b45094571b098213b335449e48cdb05c289ff1919d70b54093801e384624a8e4b61f346fbff46972aaafdbb493b2f9040000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000128b78825e8832beebd7280e2cd23b67c7e5f077abb011c6f0a799e56edfba14d37a392654eb5f578529fadcbe2a4c2dc079acb4b754500861a959dafba2d729c2c19eb440a8bb008d92f4ab43276fa74882bfa3e8e2223ac8d045f79e7c710dc14b3c03d8e8cb9d42e00e04020cba3da9412a10a7234cd60a4f5dd4ce755d9f835c36373bfbd29965ecb1d0228294a727513394713cf6a35cc3954c798c012a914907fe178938da0c1b5e210d8c3884fe7c8b2d9239657ad2ac91f82fac26010119d0e1a69327e8ce78cb6fa2eed9d2c5a8d4f77c5a13c350ddb4170502c3ca331f6cbf07686631245d7fdbb35ba33900b199cc9533a51deed2e843f764ce1b2057ea1cecb6655061848284c59faf6d65096b828d5ea437958d4860d371c5996261e8f5cb4e8b064e054624cf949209b642013d600005127fd9665386b2d657928f09846e6fb415c35a7f4331cfd5115134dfc5c8ccb3614315a7223fbdbbffa29931425738248c9233a52e6971f90f1549b35af673cd84f9abdf1a9062bf8723962f6c2b2a5c21659925908a8a4de711e1141ae79967fe0bbc1845d028f46941647bfc9ee9f2da72863bf39910e675b0206a3e5f110f04d72712370a5a020d22ccd94ce600e847e0bcb21e96ec0ef85be79d202f62269bae6edbb8fc0342c8b1a5be043504bd70e4fd13d76dd4c1e9b99c961c2ba5bfa4bb061243a3349bef625968f23a5e94b9ba3c2bc2e43ad27f06c5b646f0660186aa270e002450d6d0f0098678d8dc0af9d7b2fde6742b8a43146f90d45feb29d550909e196d7f4e5ac0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae02347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f3dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc620b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de6371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a8708e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae02347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f3dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc620b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de6371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a8708e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001337c866282daa61ed5bc146cb87460a1095e7e5256c70505d32bea0344e50a5903a21794126a3368d4d03d3bc01eb270beb46fd17eb70e5a1a785af1b9b924e500561fe93582709370c4c2e53935a3e73062d0b900e4ec30d148d0815ca6c991247dad90bc9eb006a1d7519ba9412e47168d01c62f90a9c5872f617e6208a0af04daef5b9e4ce5326abad0b1c14ca91642cef5643d23f7b2a300a844a9ea581502c2b6bee0a4da1f242790eb3c70a597625a1ba85c6906df747fac8f44ef577c2c4f3844c63f2befb1874043e24560fed279166505a0eb482d279ab5e7c4b55d2c798b91a8fba19c4c33fe0122817c88430c766587e3bfef9bd4188adac71d4c10af8a9dc687a1f46442416e13853bb47a4a088adc0a2cd4c5ce224844ca31f53c7415c5a40827ce02ebc98c1693c910f2e02d2ff24ca032d8a8f1f37f574af501a2ab2e97cf9dbe7196565264434aa9f6584f21b6ec5c0426a1e4b8e4871ead0e080b5e097551ff105fc1efd56ffb220778fd76aa6e1b0e6e639227c3a848b800000000000000000000000000000000000000000000000000000000000000012d630b34b554215e425c4a4b695d3481ca06f5c34edf956de58d92d70dcff2672d630b34b554215e425c4a4b695d3481ca06f5c34edf956de58d92d70dcff2670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000224698fc094cf91b992d30ed00000000000000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000224698fc094cf91b992d30ecfffffffc000000000000000000000000000000000000000000000000000000000000001940000000000000000000000000000000224698fc094cf91b992d30ecffffffe8000000000000000000000000000000000000000000000000000000000000007d40000000000000000000000000000000224698fc094cf91b992d30ecffffff84000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000224698fc094cf91b992d30ed00000000000000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000224698fc094cf91b992d30ecfffffffc000000000000000000000000000000000000000000000000000000000000001940000000000000000000000000000000224698fc094cf91b992d30ecffffffe8000000000000000000000000000000000000000000000000000000000000007d40000000000000000000000000000000224698fc094cf91b992d30ecffffff84000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000108d08231907c9829eccd4a91309167414dd18d99fe4ccb30ac14d7d64946095433121625652e11a21e7979b447166a4723577bfe10d303e8d932f7555f2dc071299555c5f80cb880c0e55cc9f4ad000adb2f2ea89796f672b3e4abb84084d04d240afb496711fc160dabf896983fa5dc1c8c2cac9efa3c2f9131c07a00c5dc262c76b33738a71d38ca97ac66cd08bcbb18d2cb2e437ab1329b86cd1f8cef84a633bf7776898bdb7f2b2e547c77748540650dc075b4747836bc229cd4e1bbc9861731df6cf0f76824ca03275332a4c52a9300b42d2edc6f6278d852767311342404496398400381fd6222d32bfe88020bdbd62d29ff83048e8ac9b83f30cc1a4f014b4e37b6e87976d693e33f832d6141b6450ec73aea72126098dfb4f364386238a75c7e73aaa296a87588106e82ff0fe9fe25bf6956ab374695b2807dc4db7723867a288eab65bd9a02d6c718e304f09d4d3b80a564f2cf11256e1c6c12345317a2142bf415f9af34b8b5a0f8e29a87b71b1b2559891f64474c62429b3a88e03808a260ad2ef60e4d3d62a140d0ab4468fcca6f111e50c9e6e6458b0cf4de860000000000000000000000000000000000000000000000000000000000000000078124a217daabc494ca96b5b5f602362b9f5ee69503655320f03beaf7084df62d630b34b554215e425c4a4b695d3481ca06f5c34edf956de58d92d70dcff26700000000000000000000000000000000000000000000000000000000000000000f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d1116327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb03be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d3c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9412b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab212d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e00f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d1116327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb03be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d3c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9412b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab212d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e02e26f67ab7b96cbd66298cf342505f2dedb559fa4be2273dd01899d6c3abb17105f957432b4d66c307dd8d7a9f77a65b49b53376dadd9b2290ea826fd6568a5424100b05774826b954c1e98cabc2dcf1725adab78078c802023ab2171a81caa32deb307a3d1a7844d20e88da87b5ae0239b5c2e49342701737b9c664a4fd6d692ce53ced07446ce4cbfeaaa0f4abcb1f9db63b2df513b703b1ed32ba27a6c3e40ec70c44d876c57b82bb950c382934e3ec0009a81f04f2b33ea650419990bbc83a4edb1848cd58bf5e6cc00d6fb556214b5da1ab8f47ccabe7073a2c35555fb90fc904ba5d072ee14ffa59026c6d13d5bb675dec29e5aa4d2a4c867015ef710c1ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a1d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f3119101e972d11acba7992d63a5c908d275ef0ce68952f83c017a99d2f00c87c7f501992768519abd8e8951392e968cf4db10f1dd7a0da26aaa1a62f0c6c393bc8522dc8fe7fd0fe6c894514898011ecc3e0e47cfd46463f02f7600715ec21d283ef0c1b7842979820f82613e9aad8d2aba29edba2a09b2cede1d088e81884ac08451088fb82f1e385b7861a873f15830dfcb8d36a59dd5f9bea60146b28575352d62f77047d0e1c7a4879e578c0ea7cf20369732ea22bed5d313918c5c4a8acad2c0a2f4974493866cb99197e1ed23cea20adf3be785b8a16c65b5bf5b831ac99c02cd3801e3ea3e5113e3c569c78708d04a316b949a519756a8befdf7cfc1fa2fc13d8b191aff11d04939023c28ddb3f1fb250fb2eb481b3415dd06977b68c6a5b217deb8a8ced2f5f0796c5eaa9793e68cac29744c57f86eb3050f48112eb752f19ad682ab4850ec4a1450404d5e2c23b89c1ed9adcc433fcf9c5dc59b5f005fb0524eafdbcf2907225592563011429666a348a0ec94980212de254e0f48257c5000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010e7e71b62f28f467dcb1b250c1b2d94421e6892a5643080be2c7183cbfbe14703b73fa2eff661ed03bb36b377c3d98164213a994fec7de3634dc11ec2d401af3159d83123b3d4a30710fc49e22071adcb2c9325d4075a7d7bd524d92a6a2885d2747cec38c8bc6a83b9ee8dd046554915a19051afe579a44e35c5659abea8da235ff94da8ddfb2bd6cb3d194569a9a32af2ae8cad2cf3be75de045b6839579341f972af88fb7bb2148014b6b9a3e7fa63f3450cb78925b04d96b26a76fe85752232c7d4dd98147b556ccf8eb07dc749a0a4e9724b86a4fb5fc6220582001631b22ae619fb7f64f4433f25ec5bd52fe77ee02bfdb7785cb44ddbe77320bdbba5b31a0d30060237ea9d3abed6775ebc52d293c8e1d65b2ee358dde34150293b5bf3d83f9c1bdb873ba69d830ed6d4529b2499dcce13a0279b3a24b1c3cdb1024d22afbf733ccb6f9e2955c7039dc8e8f8bc618bffb3088af5c3d27ff12c28a1dc228ed28e231ac12c97f358fd2a2a0a45ae48c17a56c6b445e70da83bd966f52853355f670c2ee4fdf1edf6656c08ca8b6d79317dc0abfa832cec5726c1bbf7f1d1c54c01bde569fde6316b1eb79269d154884cdb85fe7c7fb5f6d35618c6fe84920b478943926dab106ac62a11941cd8df13d24647577adce600d84e6e8eb051a1b9c8d8581b09e28af83f1afb83da0151801c20f5b6d0342d2b15bc9df5c71892d2edc443b43a134ec9fa4d9e42d1f6c47f9b19fb15ae0e075708c21782956623b7e370bed18db92b038ef718c913aa99b85e582e29a091c45d6be8c366c12343f89350493448494ad087f0540faba6b5030e1451bb10882a8ab298bc2b299810076cafb6cbb7b6b52f780fabf054594d215b7b6ed9bf098f08207613d4d66803dae0916e05696e7612a7b1a44e5a41807da02696541461ee6a30c06cd7cff810251f6e91fa969189ed584e5bb1a5be81a6c9692a40bb2fcb28a24e63283008034662d7261b0f284e5d46783587c34779e27a81ed5127a2c1c7a786e0370fd810b99d28d9e4f0d7b1a2b987ca783cb88841ef0dd343a7eef7cb2b87efc8f028005fee33be874bc987d260590ba6d06558dabe4aa04287e6e29af96721134f3813a011cc4178b436782d9fa6f4592f9aa949ab45205247aad6f7d9a7aeecb0c803f89350493448494ad087f0540faba6b5030e1451bb10882a8ab298bc2b299810076cafb6cbb7b6b52f780fabf054594d215b7b6ed9bf098f08207613d4d66803dae0916e05696e7612a7b1a44e5a41807da02696541461ee6a30c06cd7cff810251f6e91fa969189ed584e5bb1a5be81a6c9692a40bb2fcb28a24e63283008034662d7261b0f284e5d46783587c34779e27a81ed5127a2c1c7a786e0370fd810b99d28d9e4f0d7b1a2b987ca783cb88841ef0dd343a7eef7cb2b87efc8f028005fee33be874bc987d260590ba6d06558dabe4aa04287e6e29af96721134f3813a011cc4178b436782d9fa6f4592f9aa949ab45205247aad6f7d9a7aeecb0c800461dda8d89f9244340ca170b871686ead72c0f6aeea72a59dcc85f5bf2f6861125c534548436e43bf17fe0c04c54749cf0b77aa2d2eed5e1e60a2d2e8abc0510fec9db111a2bc701c877b6b49a793338e01242570cdb4629ba3d7dc2df4aef00c92b2d6b47058a06fbcb270dfd3adfdc463f7d18316e233d08b9f3170c2b1cd008b57e0805f4bb851eebf6269807c7c8bc1702f106a0fe1917f009e0d94070b34be1e0f4f65587db243499b8b6119fc53fecc9d8d6fee108adfe74bf5467f4d191e54644cae3a07efe25743022c9f057c693b00f14f119e55a4335700d26c1e279c8347dbb40ba1995e32e9650929dfbf48c5ede0a6852474faaee70de55b6e068b7cb70c4e968fe90a321a45ecb6c221e359af3f511fa60b4bca61ced1e0ae063701d30cbb53d7978d008cd3615854317feab4f9fde2db6584c6b4ea9b95e5191eacf8d55e0dd3a893bdfb41a71c1a8c4cd28e3796e01b15646a25e0db5d413fab786f34538151cf5a1d2689bf392d2354e7437bab805c33f837a38347c85c2bb184a615bdb14baf6be323fde7045de6d2b3dfe994d2135fbcd31b12dbe8b12110f9e4034c391bd12b4f831b670ab88ed7298059072989aa40eee8a6918de4257a82d309025d7417dee2972a85ac09b552c92aef96ef37fa380c66284052cc1a857d2cf6fda28be8211d68d57a53f66cf3cfd119b609e39ef52486d7bfad36218d67d9a71c8d93daeb1bd9eeea5e8abe9b4875713f66b1340aa6214b55512327e5b3dbf29e96ba4b5182f9ed0e28217032b5bab532d357993ae67ccb8df5722e4a962106b31e0daa9cd6e581e51350a1feb7936556c4f936118d0e4a752865068a8e5dac8fce5cc8582f9abe302a258f35c496ce0521d2ed86d59ea54ba85c35d346a97e6cae1b28fda2dba6183d14463786df81bd7794ee3e8be943374d5e11168077f25e650195940f2c7611cc31b53d5c74e79fde3e785e8504fc83235c000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012c3d230e942cb3480c46148d0c00e41a75cb130ae45bdb94a2ff617bc9fb6c881492c85432a1eb53bb821fbaeb221f88e8c0ead283b32883c745ca28c649190e0f069925325221aca8a50f25d3de702911908900c668c2f4e58f2396fb2409650ab11c2fde75f36233c2132ac104a0241dc2c8485d85c452f8bef655182c590d0158c9faa3aab59ee355456987d1244ab8b80f2bfd1cc15ad0e0c5c9ae43500a2c3949e0aaded936a07d69fc2ac2b66d7355a3845c7f0e660c786fddee675d7413faa40f2faea82072af011a9255a9de81c5fd81d5059b7468cfadae69ff7cca01719b2e7c0f3f2be92ee876a0e2c1a61aa7faf61df8d8c4888977448fbe9c7f1f374985aef7e35b9a8ec121273e19aef105b54d12f6e88cc3d52dd74808de5b36ae4ced471da6f35514fe71068e095590da16b66eb2d1028f0fd5466b0c53283e95ecb7b4a17553041b7aa1c55ed9fbd227705391d3710cec09d23b2c3cf4aa1d17a268aa380ab1f6068db728b965defcd0e0394f30d22a21ebcfc457d4b516086ab9dce9be73c3d19acbf42331b1e6bd450af6394608004168904aad1aec02073ffcafb7867bf9b05b4c4e168193e5408c41a228146f12539ce695fb147b633f47ff72844cd2e3ec700e6bc4b05e29af65a03b2359dd7f163d9e858d19f6e115c13507ffa186386c4d4fa65ca09dd251ab3f9233f8ca07515b3bd132499afe3c6e005892214a6fa71dd32553effe519bc104bf68257abf8603d0211463e76b1c1ed880819cee2930d72c287e4062962f293a1c214ad760539ad6351b70978205583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee83aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a06130191191ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a882546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d579059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a63a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b1c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e23ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c305583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee83aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a06130191191ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a882546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d579059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a63a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b1c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e23ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c3299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f1002214accce313f5db11d06b277e45099796f2a6b9e284bbd31bd5b1ef642a2dc7642c762708227d8d9d5db25342038160352c32ee7a89896b63b01e4d1acff394991ffaa18c3bc1139049500403dfb0a68045256159afd6c550275472c9aa6b8c621319406bfd32611570a209b85b38e49dd7727b21099400a3c3bf232a29135eb22368a8d9f0df500d29c787f59bee3d31a7284c876cd8b378363c8b9485c4beaf0168feb3ec5487731f5a78c05dbf2354012ffa5efe36b383af6c5d5787f595aa0b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c3feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d29cb941a2f109d6af605b466d71c4c622649f3c64cc21faf9dab0468e4ca2300082559f2d36f6e8b95cede951b4246eff9bad95367b060e060c585f8f4936c1901bdab451ade8278151aa000b6fbc7d54b1e479e66bad359e401066eba70867209a39f8854fb6f435560a9d83f0a321687ecf5e3a45fa3de41751ac1b91b6b4701d2f226b015fbbcb551f2837d048fa7d82069cfa53362d415443ddff702eff63e2d0dd94fea04434aae0d7c82fb70584a262f2c6419964783e8f30d08fd100c0dba471319cd6c8df99741293f7f59cdcc086e13965a56ac88e9c7b6f617e0513c7b0f2af395ef9c3e7c5b2d86c2e0446c353379649fcb3de211a6d48dff70923d4c3743bd7fef78b8474d1f56403d39ef10f74a953d58889dd7ba652d9aa2263823171b6cceea4c6b397fbd2fac3cb257a690c13a3179c5ea8e50d996db174f138cfe690622fccbf1a5144046b8057ef6343f2e51fb274c481c8a4ebd5f00a2398409e28ccdc2d7e9ada0a51a4e665440c1e30a0ac2d7803f1d083d08d9252100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001121925e11377999ac089e5509b9fae1e0da5d9cbf3582eefdd0f4eb3d8f67a16344b9a77d753303645bb081baa70f16dcfb273f4e18f6826746332914c66b56d2c4d6bb06a7d10b4ce83575682a6ac2782ad5ac3e03987cae9d64f1abe611b1535f0d90b8d1acaa4272131ebde9a5621cfa97ae909e030ec1ae2aff1a1aceaa40fbe3be46fd1a59a9040b6e255d7e4766edc7691ea152e2964c0be5c40a84b733f2340c5e8c8ef7e86fad6e53d5b551df977487a51126ff4b0265c3a845f37531271b64059999e7fbc140afdf170215165a2d9494d68dbe562e00974b08477e93c883f89615e3b2d7eee88fa98ecfd4e2e4cd91881599f9e452f49ac865522d323b5c0efd4ff0bd61a2094db3a90bb538ebe6724ae0144769e02100ed1653c5c010bb189b7abb2c1e08df8e8cf4d9a478a59546d4f4b35416cb6ffdf8af1142f2fd85e6375eb3f423bf8eea1b8f93476ee07ef50403135fd216f31beacd45f850c71b917bc21d56080243e775ad3fabc8e29b9a7f3e6b67478a268e0456c14e320c1859c9196baca20afe06fece3c925ce47538b9876455354ffd602ace41df82ee930f00fae34f3614637d24ccf7ca651d09208d2312adad932d1cafb4b496e3726c4b3a89dc19e07ef9761b96e90ccb7c49c1480c0431cb5e2f5a2206eba8315340ded9229034636021ff9172b181ba12f7d80e057ed96a05a53c10a90a16137acf332e665f2900acc5ae66d661e0538aa6807ccf32511dad7585d7828fefd1043bfeaf8891514de36def343ae15ac530d00748f805d418a7d8c2e8a9873cd2994104ae8e0b8c6b498ef4a340e1f5dca7130cbfc365dfcbac8513f99314e91166befb5171f47394b6710b5cbf1e0a257d568300d169b1ede64dfad66ceb1700fe451768c639be186fcac7304469cd48d622907d128ea9cda620376fdf688d2301bae89739c641e7903538cfbb9632b94e46ff438240e7ebecb2d760209772f0f759750bdf20b67a2ef5e3f15611026a0a4342b0c7f9bf4aabce065f5d0ac19308a68af420df4985d10a1c0ea9eefd981a264d0fccd5d26ee7050870a2f53e80d4bf493b5ba39062eacd73b6ae550c100ee6bdb353112abbc833110cd135c7c32b40b6c4a45c6f9d15328c4951aaf3f21582d20d41be66fdca9ffdc32eca3852994104ae8e0b8c6b498ef4a340e1f5dca7130cbfc365dfcbac8513f99314e91166befb5171f47394b6710b5cbf1e0a257d568300d169b1ede64dfad66ceb1700fe451768c639be186fcac7304469cd48d622907d128ea9cda620376fdf688d2301bae89739c641e7903538cfbb9632b94e46ff438240e7ebecb2d760209772f0f759750bdf20b67a2ef5e3f15611026a0a4342b0c7f9bf4aabce065f5d0ac19308a68af420df4985d10a1c0ea9eefd981a264d0fccd5d26ee7050870a2f53e80d4bf493b5ba39062eacd73b6ae550c100ee6bdb353112abbc833110cd135c7c32b40b6c4a45c6f9d15328c4951aaf3f21582d20d41be66fdca9ffdc32eca3853a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f21621663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac509ae342a78dbce2f652ce83bc8df13cae92ffd4acd96c384d84b5b62829aa4c632e0e89af62d4b5e0a44b1fdae3b06376c9123be386de90ef339f6846a620c8503c88a181de5af86bd618c7ca6d2d1c6c23247c7fb1d7c35badde3a77e53e275374baf5ec512737c4b30713f1f990aee557a2b2289954c4678ebb40fec4e4b6d34dc26445dfc3d86f0c6ad853b8e90dc59275b991680e24ef59731a1d97c84bd325f6801ed604899667b4ebb69d9690e57da2a8bdf801b1adb26780d848343d022e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d570ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b2a2adbcd6a52d4ca8f75b25d259380a1098272a199bd1f2a1d40b13cab90e275145a40e4099c34ab09aab12529be4211daaf783bee3df5d9e430c580d2149a243c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db36bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b92c26ac95e8a94a86880b3000e6c5332ea933623775e674cff656eb1e973ac4a013d9536a1756b57977f4cfff193accd1791336c49366844ba2d645ce68c53b623964dcfc56c5aa7cffcebb8cd19e578dadf06b424364b3d74f499983307f128c397f861bf30d14bc54bd10d550d6206d46fe59f94c85e2fdf4358f440c824b1a0bb136dc421e7dc750855cf951fde0c09436e335d09bda551392f0d290e5af2935bd596c9b2ae909556bf04b32a63034bc8cd39fea8c460bed7ccef9520576252cf159565af759e9b439f0b428958e5879faccecb3d8b95c4d92fab4a1cd9cf530a19cdda9ef82a7008969622aa4f09a04654cafaafafa1fa28d11065ed6d113000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011e0743e56e71a36aff9f28654eeb8030d520a300414a7b5fa227d474e0035dab1432ca149237c258feaac194541ef39aa19ca3e5e875017a66b834c6c5caedb90a71eab065b9c1d5ddcef2bd1b0aa64576356dd16fefebd1e8a2567f69ba32b821a8e2251b1a94b1a52648f38a318650e5edfce507e0b49f9e09e66ec3cbe5a010d9c7fcf8baad946f7fff1dd1fff3465dcde12b5fdc16f9d6c6345bc9221cb9280ae3b05b1a35ff1de32fa833df4046bac51003fa860f7330638401512a96292837168504f3f1bd8ae89abfe989f2971f282688279284759f0a0411bea357ee130239b8f7fee47132573ec646024e73854d16a009287d79962010f52b24637209ee9ba9ef19816a6cb05f56974a6b200627c767b118f8764281d9427ce0cafb3098508783009f3ad14f288d95a6e2d5112cfc26044296f9587ba6ce5b328ff0284485e6f59286f30371e61fc3fe34f835fd3bcd65af2e168acdfd48472cf4d51904997016071d3ef5667a80c85cc7cc7fcadb4f3dc500dc9a2b16a8954ad3c81ae42a0190805844c482752e08f2673b468f52bdb3276a40a08d5f5ac5abe80034c68c8b10c49778bd73a31430c0de90d98892d6b78005ed8da54872e2837f661fdc5a1406be3b0a54a901eec489d4689df1ecabc7c114505106741f070a716539f8a32ea04060f7a60d7a5141140d7e384032298f71b53946365b6d1e7c384c2be1d91cc2806821444c578a9e45c73eaef4afeef24cd672b1466f7e98de85b51e55758d9bf57e390210647f4d206b1cade564ab62c3dba85fbd5b5eb82aa8780204b49a0d32048e2071504769351aacac54528b75b0155e3a707f3192cbde183dfb4b65f2cdfb71df8eafb896cae55375f24670939ce3bd5ebcb1bb6d3421e90a17870241fa16c6a23691650e09855f5da59cb94c706ad724327bf7ddfb567835e878fdbe05e9395dc96e9af1f67aa0c4a0fc42bcdc8e4474fab4f52204a9893275a30b49e271e12b10d6f9462f9adcd43c0f9e7e321633b4fc6bd755e8b0580d8a5cf4b61d8e1ed4ef2906b9d065234e0a895d8b1ae2e7e430c515aa174fa93c4c2f38716c3965d75432de5eee064fbe5883245b1383afbd66886dad8b71b503b3d0c78e93c69a28abcd21a111f9b063ee15d7ae39756bdbc6a87f52748e4c0204b49a0d32048e2071504769351aacac54528b75b0155e3a707f3192cbde183dfb4b65f2cdfb71df8eafb896cae55375f24670939ce3bd5ebcb1bb6d3421e90a17870241fa16c6a23691650e09855f5da59cb94c706ad724327bf7ddfb567835e878fdbe05e9395dc96e9af1f67aa0c4a0fc42bcdc8e4474fab4f52204a9893275a30b49e271e12b10d6f9462f9adcd43c0f9e7e321633b4fc6bd755e8b0580d8a5cf4b61d8e1ed4ef2906b9d065234e0a895d8b1ae2e7e430c515aa174fa93c4c2f38716c3965d75432de5eee064fbe5883245b1383afbd66886dad8b71b503b3d0c78e93c69a28abcd21a111f9b063ee15d7ae39756bdbc6a87f52748e4c07b0d5bcc9ec3b3519e1c387b96fd2b5b394f2a19894a21b9af910b00e9f70833756d5b8b269cb43b4e1645cd9b858f5a91fbb368bec1f0b8c14c58ce7233b722361b64dae7e512dbcdd173d2457cc67766e5bee3bb3835c089c11f69494135838e121bda4be2151157ea3e6b2aab629c6187ca7e01ff0f7a2d6a67dd12eee68092d97c34e376b63e44ee2fdb8edc57dd52d967f44e9ff11340a69a0945aacef2c797c664f8e13589e5ead5f295b5206dee5742872158b36e1ef11847e977ecb283ee68b27d40a5745056f2725b3db7ee753772eb05448cb014af6500dc9ff2b07c7d654ee7df77bc86af58efab033151a0a46cf625813d4ed0f1e3d8dfb7b783c45ae4868a6aa3509ead71f15fb75699d7ae17f13dc248de26c8da6687adeda286fce36c7c6dcd354f645d87fd9dc5a5263fc02d1038a65afc7a75c3bff737628f43bb2c868137aee268d33127ffacdae6ab4bc988caf66d6b9a59cb77d5bd63070006b8220f8c2c22b4805f8c69a260daeaf4d153958c4c6277eedf5b1ce2714ed73f58795739d2941253b223860e2f8434a6c3504d3a3f5980e465ccc7c270fc80889a8d8136b359ff7bc739cf0e0d554fa19a68de234036ef5cf47add6292c7da5bebfce96c9d44adf62a25e8488c825e7656d4e4259defd97d720cd08b213825a41403169362bb5209d5da17b775a20b1969bfeb6c1ba2f9915df32f75029a6d80771b663e4de64aa6b34df3c2033e1020db0fd93ba8e4f3209f7c1025e3492f8eaae5db1eb890a2064be48010597bbbbbabc1338a8f04d89852245ef24166d60eb4ecfc5ac8a37f7f38a2acad7abb940418b00036fed80e5ba3d34cc8225d2edfee774f844ae703a465c427b1afe0a66eb5ab1d97dce6d6e62ef472ac62ef771597d4eff7928b363d047d0af484a03786872e005a385fca36dca85dfca252d4e66fc137aecf09b82a21fe778001bd22a058f5eb691501577ce02af8c54000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013e8c89ebe8cf3aed9e7495fe5bc65b79c118c65888071ed5000074cbc4a3838e3739adbe15b4f00cf6566f9732867431b26b0f1cb1d85e48f5d91cc144abd9a43c5d6ba41d6e56ffce2008de64c267539e49c9ed0e3c37e6e687e774c940f7bb159d64841e7cd27e59ae3afb8627c866501b367b7f0c4a20ea32c3a0a3c5d26437e7d2625892eaac5387f6aedbb0cb88354df93f17bd32c79e9c63045be4df1e2c70199e02bb598aee433a348bd0ff8d414b96190841ec99f191b9e09a7840ee352b211cdfc7aecbd7c3c207a7bdfa9f9c2cad38e050c86c439b611be52e99f83a8b0b104a8eac62101b8442dd3c79a55d435812908cae9b4c6321c0b9bbf9ee011089440fc397bbede39a82fa91085c1ac27e919d9b9a86bda0d7710b6dcdfe3450581507b9568513d6e3a6a8990ac9e2e23f31f024303d6d0c07f60ed8aa30399161e66345800d58f35cba9ab9e4304a711a3038c3a5c97bc66ee87b4c83f23bae76b40e5df3560a55f4796ff8bb393bf0792cdf62e0f33876e3ec607e617a05acc0ec31914f687ed7bb09b99b38e6d688c266a07b70f4b48bf6c6a8a5836609fdf5a06fb3a055031e5d3880180ce527488a31c0df061de0798019ff89e3ff017eae07e58a70f419101c374f919abfb14c2636fa5751460288a13b67a8601e26a4765c5264dca5ff7318d6e58b733715efecc4d252fedf78e98a0c029f5e352523bdfb1a5358adf6dbeee1a6fb4b6abcc94cfcb4a11ffac27a6ba6ac06918a0b3993c23116236e359fdb56daf4bc4f51f653b043b0510c043b13229d0b929d0a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa135eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5603256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c85250da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b6044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b2a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a1584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff770a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa135eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5603256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c85250da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b6044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b2a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a1584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff7728a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e870b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc1e34c8c6e8e486192e6d95d7e579bb63a7782fdbfb459376a1965feef865efee19da8e2638861c7ac4e5de71bdfc3b42ec37f154f40bbed4c5e50965a0156c060b9d798a0dcfe0f4f594784ce33add8e74da0a4ddf0a85c629a61dd7bc644bcd30c952866824f5b6d2e4327f33892b0af948d2089edcd99d46a4f26b26117ff83f44c25fd17a50b971a117c3fa0049706d29179dae17d2e59e1ca03a77ab527d24b9719897af366a8aee83ab7091b28346d90278f468950f8d056030c45aaf4b1883d6e1d3620a99d127d8cf8f9f75ddfae5984b4c8b4ceb80eeda5649fd19223ba6fdac0b77d30417b290295f5091155d781ed0d0a66a28e5a091ccf9031fab12690cd9d017db824bb35cd43115f352b53b40cc7ba2dd80a2b593ac3aaca83331ee6849847258958971d9ae42381ea0477e13551c4028b2ff47442f0f4dc7a03929f857ce3021a1ec2c9bc89b76c6e5277ec01edd2f637abfe35990685ae18e1b00dc3610a9bbfbfcadcd305379400e30def6fd40025399a6ac1292daa557403d82faabc2b84e9dd47a0b9f3c2635cfec4d3a4a15d5f26d736ff8b06f57c1e4027d05543d47b1622b85f460c3d9ca3035f95eb1f37706ae25bd383c90a83e1e0a20f43070a7739f5f283ae39030222e09395edc7aa8ed87b6714a538d4dc889027a272eb0bef2388d30a17cdd6de681f0e9aafc077d44ea67fc21631f82962911b6bfa05d8fddb6074ceae031bc984669fbce304a8245faaaf6192dd00298c220bc14c2954208c50e7c6d47d5f93cbee0fee43eaa870008f61107b56423c16d2e2f3235bae6b7fe5554a741bfadc34c85a846cb69511797de7ee59c95e4918503510ce1535c27897292d3763b964374f0d57506b413b4961540ac251c4d0df3000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012b4cda99ffcbb50a9d8058938bf3e8becb1db6593e296cf21a1be88697ccd24c29a8467798d211200fafeb446bccf27dbdb090536d89c46c636088b5ed46e97833dc7ec80868b2460ef065bbbe2eeb01be8736231ea5744ed07a68e9f0e1b6c427334daed98a159e3a0a64dc774463139038474d50bc4c5fdc38cea02543121e3898e2e075df461e1091eebf1614216af95a6cc261cf7bbdc2f4ceec9d20e00838d06e65efce6cc6e885e95e1435ea4eb14b75687f57945133f08de44b099a2c08c7a2a4fe39b8369753a244014b123f56bbbf61cf5e318035b603786cb676a80480f909f4d2b703d65a932b1ef564232a7f0c780117a936dae2dfe7f3512ff12d2c5a50e21b1da9671b084f89d3f44e4ce9f2efc6f3f679aad0bb07090d230228631ffa72189e2a6ab999681f05b9c7001752edebefd6e738dadf5345c1cf153f8eaa90168f7958e6de3ecfe90a4e7b191b5bbca434302d393830de442b3f8c16722d7986a899623cb9e6d67568a2819ee1a0831eab0448b72d55de0f7116ae21b3905637664370d4c7d6eea6a0b81dd2e890dbd4437c8a73c222245d7f38db2df7263669deac4cad2e415393128dae4d2f54b89663f3a3ba7085a94ab02e8b374088dcf84a786ca55ddd2110a0e508efea7f35601fe5efae1aec768e97ed4825f075b0a9d629da622a04b201b85e7d13e7e7b0e9662bc36fa4af12c805770426d9e9a0ce9fcda633cbfc0d4379362225ac371563fe372f2133d1168879c5d73ac1a91617f9a68b88a66f09cb368a78a5e17e949f44066eeb6620eb2342ab460a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa135eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5603256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c85250da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b6044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b2a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a1584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff770a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa135eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5603256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c85250da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b6044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b2a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a1584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff7728a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e870b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc1e34c8c6e8e486192e6d95d7e579bb63a7782fdbfb459376a1965feef865efee19da8e2638861c7ac4e5de71bdfc3b42ec37f154f40bbed4c5e50965a0156c060b9d798a0dcfe0f4f594784ce33add8e74da0a4ddf0a85c629a61dd7bc644bcd30c952866824f5b6d2e4327f33892b0af948d2089edcd99d46a4f26b26117ff83f44c25fd17a50b971a117c3fa0049706d29179dae17d2e59e1ca03a77ab527d24b9719897af366a8aee83ab7091b28346d90278f468950f8d056030c45aaf4b1883d6e1d3620a99d127d8cf8f9f75ddfae5984b4c8b4ceb80eeda5649fd19223ba6fdac0b77d30417b290295f5091155d781ed0d0a66a28e5a091ccf9031fab12690cd9d017db824bb35cd43115f352b53b40cc7ba2dd80a2b593ac3aaca83331ee6849847258958971d9ae42381ea0477e13551c4028b2ff47442f0f4dc7a03929f857ce3021a1ec2c9bc89b76c6e5277ec01edd2f637abfe35990685ae18e1b00dc3610a9bbfbfcadcd305379400e30def6fd40025399a6ac1292daa557403d82faabc2b84e9dd47a0b9f3c2635cfec4d3a4a15d5f26d736ff8b06f57c1e4027d05543d47b1622b85f460c3d9ca3035f95eb1f37706ae25bd383c90a83e1e0a20f43070a7739f5f283ae39030222e09395edc7aa8ed87b6714a538d4dc889027a272eb0bef2388d30a17cdd6de681f0e9aafc077d44ea67fc21631f82962911b6bfa05d8fddb6074ceae031bc984669fbce304a8245faaaf6192dd00298c220bc14c2954208c50e7c6d47d5f93cbee0fee43eaa870008f61107b56423c16d2e2f3235bae6b7fe5554a741bfadc34c85a846cb69511797de7ee59c95e4918503510ce1535c27897292d3763b964374f0d57506b413b4961540ac251c4d0df3000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012b4cda99ffcbb50a9d8058938bf3e8becb1db6593e296cf21a1be88697ccd24c29a8467798d211200fafeb446bccf27dbdb090536d89c46c636088b5ed46e97833dc7ec80868b2460ef065bbbe2eeb01be8736231ea5744ed07a68e9f0e1b6c427334daed98a159e3a0a64dc774463139038474d50bc4c5fdc38cea02543121e3898e2e075df461e1091eebf1614216af95a6cc261cf7bbdc2f4ceec9d20e00838d06e65efce6cc6e885e95e1435ea4eb14b75687f57945133f08de44b099a2c08c7a2a4fe39b8369753a244014b123f56bbbf61cf5e318035b603786cb676a80480f909f4d2b703d65a932b1ef564232a7f0c780117a936dae2dfe7f3512ff12d2c5a50e21b1da9671b084f89d3f44e4ce9f2efc6f3f679aad0bb07090d230228631ffa72189e2a6ab999681f05b9c7001752edebefd6e738dadf5345c1cf153f8eaa90168f7958e6de3ecfe90a4e7b191b5bbca434302d393830de442b3f8c16722d7986a899623cb9e6d67568a2819ee1a0831eab0448b72d55de0f7116ae21b3905637664370d4c7d6eea6a0b81dd2e890dbd4437c8a73c222245d7f38db2df7263669deac4cad2e415393128dae4d2f54b89663f3a3ba7085a94ab02e8b374088dcf84a786ca55ddd2110a0e508efea7f35601fe5efae1aec768e97ed4825f075b0a9d629da622a04b201b85e7d13e7e7b0e9662bc36fa4af12c805770426d9e9a0ce9fcda633cbfc0d4379362225ac371563fe372f2133d1168879c5d73ac1a91617f9a68b88a66f09cb368a78a5e17e949f44066eeb6620eb2342ab463c10a0708141d6f1d8fbd1cbbb5cb256ee4eeddae80d4551f2d19dd7d0ea978403ef5f8f7ebe290e27042e3444a34da933f7ab21213fb3c9a65b93152f15687d2c532232864932b93ceb18faa8cf7bb21e704156630e762b596351831494f59013acddcd79b6cd46c314e7055730844e03d657a5a63e82f03fc9df69eb6b0a711d9faafc9f6dfd9e30977ce54c0d6a7a315d7bbbd3616385f36904c866e8cbcd2260550360920261cf68831ab3f29585f0e91d4035eb9595a5c42c2499173434141e56ef1d25f416f2f5707a7c431462b24638b30e4cff668eb2b610028bfaff2be1a910e2da0be90d0a8f8583bceb9d70006048fafff9b50a7a7adcfd7405023c10a0708141d6f1d8fbd1cbbb5cb256ee4eeddae80d4551f2d19dd7d0ea978403ef5f8f7ebe290e27042e3444a34da933f7ab21213fb3c9a65b93152f15687d2c532232864932b93ceb18faa8cf7bb21e704156630e762b596351831494f59013acddcd79b6cd46c314e7055730844e03d657a5a63e82f03fc9df69eb6b0a711d9faafc9f6dfd9e30977ce54c0d6a7a315d7bbbd3616385f36904c866e8cbcd2260550360920261cf68831ab3f29585f0e91d4035eb9595a5c42c2499173434141e56ef1d25f416f2f5707a7c431462b24638b30e4cff668eb2b610028bfaff2be1a910e2da0be90d0a8f8583bceb9d70006048fafff9b50a7a7adcfd74050214cda1b9433fb43ff84e3aab6e2756c437f9c72677fb7a3897b566ae006fdb553fa1f2a2d0b4cce733cb9590433d6813522b16e9db2173a58e4bcaea7364b2a410ba3b497946b8354436b36b51cf41e4ead546ea6e0434895375ccb17bec7e6100def3c798623305e3bde40c330bc212eb2a37209efcc5dd23bc28e0fddc535c328d97abecc9fba594cc5b6a957df4c8ffa3554a419a966a7d7522a71d2380cc112ff4370160fa8ee47f429587d17f09bf124d723699f4d1743af3e63c540fdd386561ff2896754e1a9bfc8dbdd64e28bcb81dfcaa5cc1877214dbe5a00228450964ba54afaca6f3ebf02d833d35bc5e45aa020758b4baa3d6e8a96aa514596a150a02f1be7f1ef6e5d539f61024406f5775519521d6cc7c9950525f5fa4aada04ed39a11be374a6c61c5e56b99bfcc18cf3844790a53d75fbd6e84fb2bdf573371cc3efd9623d338eb44f519257599dbc7b577fa4144e6a6e6aa4f4434628e23b0798e2031fcdc5c2a2b737061d163d4e81662dd06c3b86a540acf39c68960c1a7822fd4379938ac37b11e940096756ff778aeb234d4a59ae01fd8d83a3a64c3f7f199596e90012e876866389b6d5da0737e3ed987bb8b480526e0e8ebefa03158ae95c27961ee3fd5eb392866d6a95728406a392a80ce3b22b153dd0e5b0d92a7516a3d869e11c02a14c6d7992956aafc2925876a4ec37e7021baf2f1a4f29231f3907049791f551a95c9df8fbee2e89a97e9454868a43994240195e19d8b504434dc9619f3394aa0ecd6f8d6e4ebaaced7a336f03cded2128c8f19a33ad71268a7bdcd32887a8fa0d72f3d21ac157c394647eea250c62d3990d621e94379c1ee0b1f5d14bf78f536e3324f2c9924f46e6c0d9c967651a28a8ab8916ed0d8f0d7135a36b344163aa853d266c8382e1a58d76c2df9149ca1cd1c23003925edc110a769eac5d72cda6bdb4cd4590283039c5c5d674e57e313e3348bf7b6e234600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001133a774a19ab61b8109f64814c51f34780235fc7fd842509d94be8a4d2a68ee83355bafa976cca4b782e3bae3d9491f279df8ae93f4a2c1b3945a22c7410a8ba26144697e233251cbd001833b4ff9c092b52a5e2dfafc869d22730ec1b183c1d1bb04044c661d74554fef5f83f32e7648e82a77e7a15a971608dafc22d60ec3636b7382e0aa19b435ab531f1a6090f7c45bd8d11b014fe832464d6bed538dd312c9623b104da38f6799ab754ce8c39b5a7d83f126d1f27d9a3b08111dba03a422f7c397c1ed31393314f5857c8ae4e0af15701a12f60f6faa3fea6b2ef5bc94029f6fa63659d6da706c1645eeae20ddce0b244fb9bee14173af2e31b226607d522c9045498d573a52b887db4c342e20ef2961a2837bd158ff054c033f73ae6931b9be59407de6536533ff0e414ea4500b9dfe4d4e090b7077d257df5e05b52e1200eb020a2be2dc001fa7c1bcf8a07b2a950d809e29eee449310ca02bb28c9bf0b36900480c46fe47dbdf8fdddfb85778d0b04ee35554e178ba05057c07420371d8ede1aeec5815daa129f8589ec50b4c38ae0ae88608075ab34b621e3644bd3321bd871b27f6e5fd7e378bcafc6f5175c8d04e5e246efb882fdf1abc4cb1b93363735a35595151b34e047f8e4c7673734dad13558ee078841673efe6223ba26177e1db765a9cfe132cabee8141f26a9554c8bce64f153286328811a1b97ceb522a2b0e7e95ea5247188b6c05063a52007110f5a4485de2a2c613a971c7f418c138d96a4a8209a27d0dd78d8a9c868e3e765da3629738e76d9ef1f071981bdf13bbb8144d1f3f33c6d2d55c2595efb92a12475950f44e843d5930d7461f3eb3e04447ebb2e0c0cc392d2aa3da6a1046d81222366fa0810d7c39a23789e0c14c32aa9865819c3c02e21e2accbbedae9dc9c9be7f92724a4e4c72a7f91e9c39832155679a7e63c3fd1de1d53344125162385aab102e2285436d202b15b163c67cf154f9fb880d2c0e6a96d5ffaba46914ea837bce9a7d04d25184ceb1290d1f8f72ab060477f2d3f195692a00545b96eb17a0edc12617cabf680e045da6f2e070a2a8e1e9a841dc4814f22dfe5a360d68926d017943dc4889de053666fd419dcd21571e1657be23b7eb0dd201a5c9f2976fb768167cb88707db8d9ca7d2be6232f3bbb8144d1f3f33c6d2d55c2595efb92a12475950f44e843d5930d7461f3eb3e04447ebb2e0c0cc392d2aa3da6a1046d81222366fa0810d7c39a23789e0c14c32aa9865819c3c02e21e2accbbedae9dc9c9be7f92724a4e4c72a7f91e9c39832155679a7e63c3fd1de1d53344125162385aab102e2285436d202b15b163c67cf154f9fb880d2c0e6a96d5ffaba46914ea837bce9a7d04d25184ceb1290d1f8f72ab060477f2d3f195692a00545b96eb17a0edc12617cabf680e045da6f2e070a2a8e1e9a841dc4814f22dfe5a360d68926d017943dc4889de053666fd419dcd21571e1657be23b7eb0dd201a5c9f2976fb768167cb88707db8d9ca7d2be6232f286fce36c7c6dcd354f645d87fd9dc5a5263fc02d1038a65afc7a75c3bff73763c45ae4868a6aa3509ead71f15fb75699d7ae17f13dc248de26c8da6687adeda23500dfb71972b65effbfc64e970bf0af2f850e628644348aaf32e368c725bc32708dddaf0a355dd8d56733e344629709d81d66a333624a6716db87e609b78862361b64dae7e512dbcdd173d2457cc67766e5bee3bb3835c089c11f69494135838e121bda4be2151157ea3e6b2aab629c6187ca7e01ff0f7a2d6a67dd12eee680bba83ec51b371ba634a2b0e62f1486240166ac739a6a2eccd207ad851377bd8043ebf3397fa8c728f45703b7caaa909e0d27036bcf9f98eddb2a187130309870409ae2f87c7368549686786a98175ac8c817825a11200d132276a2842980b550ce7e97ae590c12eda640bdea2f2501459f94dfc3a5ad39eeacb0ce72bdfce162c8f4e10fcb5bc91a12bfa3add4591e54b9bf26d809d826d3ca67b9728eec047255a9e23f44c34a9b3dd5145dc06083082b757d448e88312eb9887154fc66d32344023cdc6a1f7c6bb0dbdc296b5649aff30e50f19322488d79f8c47378e30ca1cb173dca6b5ffed68beb5a2b5be612609907a0ecb87a902de801bb536e9a8a327583a52e1113697e0a9b1e3f3c31486a5379712ded750e9ecd47f600bae62b418a7c5ad1eeec9681f564e1c0c3ceb797d0f01e92a75a831ac58b18cf4519d4e3025e96e987bbe517e6e7e45998e0925a2ba6bedbaf663a2772b3235e15b1452295861febdb13e884270cc249cd5017cc24c2d298a8c79d89d8046a15ddc4df935e09ee0e9f409062f0884b5facb714555472635795f44356b684717b8e949bf19d06026e54eeb1af4d37141ea9131f646f67e8d4de86bd14a1fb5686849a2080e21798416f284a1fdd6e2034fd2ccee9e48c973d3c2982b67c301401fcb6668252330e81efff4fef97bd85a4e63ea2cd7f49937046c4c0192901603b3e2f294000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010d6530f64db33846ee66c26f14fe0fd764653940ef391d5f5f33f9e0c7d8bee73e40b4609cb98c148af74c0085b958dcb1d412305272fb43559ed5afbb76898a1ac9d7841bf5d7d05894d548f8e5b9c708744e1845af51b139b6674756f6958b1b16f38f66591a290e9b9ef65c524c5ae648d00fb662dbfe2fc369302795d75d24db59828dcc1a81607af7b3bfe1485de9648ef36b890ca8832e7cf6d93b90390ffa786ed78359aa8ec7a920045a70e6ae4611b9455dc55a2616dba1e0a2ebf3236defffc72875ba3bd325d1bfca62b20bc4870f6ab4d3b4aa0b38951cbd4d43077e05f704ffb39ced7c78cfc5ac42996f389662be177ff8fe2d86d2a4319697211fd64f283b5ecd706e46d1f7719ac52a41b3a6e76077af9a5489b5ab816e8231fec00a26a7b503258d776d41550f518a1f2775700a819b46fd6a46fbc3415f3278f0dbd68db99b9fb663123d9117becf31ba242b7797160c4535662220da8a072f55a9c9477841f104b63ca094ceb1d74b22568d62b26f33c77eecebe7e55d0f74ed16a52d2f9cbec062d4c0b01beaa02380f8c53cc97a790243603e477dea0035c975fc17c020c335b56d790329e15dadcb9f9c1dad981c03338069e7e97b031580908d5081af7cd07aefcc4300f3270e517eb86516be3d54c68ce62208b131a6403e766c4895df1e8f45626e2058a625a2ea1049ab67ee922ccb050886f535c06b08b8a08eae2054ec9919a7143c46d44715a5c5111d5f42fb326270800b2972078a38b52b01fa2a6b85c217e21e18b20e1159d155e0f60860260b104c583ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f620591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f620591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f11d68caa2862c78883eaee78094d9fb69b4c1aed67ae908a1a76c75ec489012536bc066bad4f192cbdf19e4a06169f22f64d1f342a06c9e1b7b20cb69f53d57912aac1a59c78a2b8a13ff2c356ff5ddb259d2538cc45ce530648a90a8728eaaf09bbdf8fe995ac146b6973388bc2ed59adf49fb0089ffd8ad272064a6e75e15708283f8b0e460d52c58913fad78e1fc4cce8aa7552f29062c225dd92e0b0220d0905d69e666e3b2a0d6d173f142cef7678532cc741da81bb8790348d2c293b4d1c0c545aa2bdb7106c3d18e0e089a52c307d2b53c1fd744562f39fadedfb16f52539ce1ab71bf03b306a3c65323082b11c9d2833d618dd553afeba6647d312752d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd62dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a2caeb7807c1dead5d1c662b55553c90de9bc150c9e29a6158b6474c7766da90f0818bd7372880ed9f4866288b3a4faf8aa3496432b0a99467ec41ef0a0cce8471b7eb1b03b2495bedad51ec49fb3026e615d58d5d5589a3e786dc083b44e142e3f881a04691b3abed6a4ee7d6e267383a04b7313dff32acaa8364ed8f23649332db440267a9bd1688c896e542803f8483ad70d72b4284e6d66e13605bde462a5124bbfd985642e97737691abd7fc07b7e76f8b895524aaae324bfae7421b9d5d1ecdca360517b11deb43d1b505cb984c70874c0706c8dc87f32ebe838006452a3c8943c0a39158f51e40680a874299163668bbd926f545d823fec0430e33f3fa2c2b8b5b8fe96d1aac380ba1f2cb0f5bf1410e49dc5a16bf18fbcf26d6d039a1072eb60535474aa2f2f13e18ecf985b3f33229a46462339af7b2cbcae7898d990f74b0e5df43d8781959bec0dea5d93324a8746805e56f0326503eb5df8125113b7c55d0dcdc793010395c95d0383e62f330a66e10312e1eb3ea52b6a85e438b0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000138ad415ec9c18fe54e4e4168eb6ea05cf06ad84343dfeafd40250d8f04e815761873dee48cfd8b70817d00adffbdc1b4b8827295e52c3577a70caf0d4600731e105e0d0f3e3c8c9e1694bc207ae0c4b8c9978814014c6af662ccf55ef7179b4b023e2d4e55079082b1953528c231713f47fc1df8755f64677109c4ab52ee8bc33a393d84fb9269ec5cf4b76050b5d76a62b3be27491c96037a0169480bbd07741e06de6e9396f55ac583fa13a442065d42b74fdfcc7db22f3f725238cdabab633ea2a54ea7922641e36722f16a7e723b75a7101df5d26fd9bf2b71f2c9352b173bb1344411f1518793a21c8585730f74fef859f08ccc74f26bda0e9cf70560c734fbbfe1fa7f08d0130e267b191065a0d3d43b57fe1add6b4293b5ced99d01c52178f2aeb9bbe3a50389c048a7ed740d43c0d467b3489555a0ceb2e35c9a78f434fdc36476b89cfc19544e611924662e5999319d28979b158296c95fba8a201e13af320705bebd6d354b9340bf9411e15c8d2578d5045720f2dd181aec5325860b2e0c0de52ac4cddbf033d7e292c90a92dcc810b01022a2d01a1904ff32322c047caa7ebc1a2aefa605e46a57207cc16af48487b14a546fc4eb5ddba8fd3539281d11304e8f73d908f9afe360b96000ad83eaee1ee0e8401dfacb13c510d8f1193409c8de3ac84a395423df4ecd699de9f0cacbc8c3f116e63d7406f22a320f3f9ac29e6ed7b983a51a753fc3319d27dab8f1c6701dba542171124f06374de010149ce710066a3b27e340ae613a1641c740e23880a2bf029e25e97567b33a4200000000000000a0178d37c6a861c42307fd1549c9037283e75570d8b1037889376749420f47d1d718ae0469789f296e742dd05ad8db93e9f4b216e00e0d4b26fd8de54624d8d4b705b33f0767d5394a3d8b5937922b8272e2164d0c3ec032a54991fed5147590301ef4c93044996e3eb128019e80f32ffa63124f5fd1e44a319e88db0d1270b1fb2c4e51881c65b83575da1a2e932a889a128e531fc7fa307185d754820eac8a3b36be8fdf09882c44683178296abce3ae06e70a1f63691ec9cb82c0586905ed4a0e65927e783067f05b692fd4cd11862349d0a46a9c9c5fcb023a2c4f3fb8f85d164275b9343e3f98934a2b01460d2c49fb57f80174081d0be5e0ad92e72d49ce0b52f378e2c8aa9af533baf9303f5ce2c3dbdbde6c8c82493a93a31108963cfe2329b0139eb03ab05f0d1becce05b894b798584676ef9e507d48c148a24068a71f78dfdfa7efc48f370b104c40ded54b6cd86c460507ee313f1d27bcdba215c7052f2858047ee2f9b7a84a89d23fdd21d85030260b9c8ea5a8fdb2254b442c6404656bb4fd3cf92de34d28fb85ecd15584451f58eafca0616699caa6579b24bf2038ff34b6910c04729a0fa522d7462d76cb4786a59d55dbd59a5bc37e7724231b46b80f1b687ccbc2b5856f70de05b4daf3c08c874dd0ab2c8707a0199982b60961502891062abd2bfdd566a240acb86a34dbdf8956ac2bbb93d2420d4cbf7527e7aede3c56c24c3ae168fcf037e10117b1bd68787c4dd88b72480c3c5e260d13119bb099655eb32676c8dffe0b449b15b5fc2f0877a9e5ca8835a5e8f312df3670135f7ca5a11a5e66647d7cb6fa3f6c6d623088e0663d4689579a3bec38a52e37f4d82fc9066e904cf6589667b82dfb01d33791110fb53abeb334eafa098729c56acaa91271b3afd566ac50ff6137a8977aabc5a0e667f1fcd89ba3fcf7f92a9d7c69d049233edc537ddf568fbd4da3286a9fdf89846c212ce7cc3b7090b32439226d9cc68edf215406ce8a9fb521bbe987e961db0120acf7e71b665fa411006ee5ca0fa818a9cd5f5407887efd4b893f1482aec97bb63b22f2c6c0869e1a16a6d84e2f29900849fcba78ea2ceceaed24506aad357fd3f8755120adfd5efd03263475a99ff611e8f66691e145220df7bd69a0c303d2b8d2d41d30a621f626006ee5ca0fa818a9cd5f5407887efd4b893f1482aec97bb63b22f2c6c0869e1a2439226d9cc68edf215406ce8a9fb521bbe987e961db0120acf7e71b665fa41129c3aacb3d6c85e65a68156719d012c92ff0101ac9f55799d5eca92ba2ef0d853578231026003eccfee04bb58e3a97db5f1954f8d367c87e7d10c4a07d39f1962c053b44289e3bf31e1a24ed55d82f5c183903249123ff04d36b1674385a929438a2ccf383d06b95d09935e8bd4683114f36324388cd76edaddcf45aee8baf9817157ed197ba39d419b6ffd111bc88ec00e626b7fbedf31b1a12880c440fec3203ec04efb569545310efda76b2ddf133a189ccaa13434f193252dfa790719614266e79e0e6200fcf8ee495d4c8fac88ff8e081a537605031cabefc5939fcb7053e398e56c64e97b95fcec5014a23e9dd6e8eb3c2e29125c0b6890e75ece98b273706d088c495ddbed8dacaa42a575fabee60d1de15f558be1882da902e0403093c2fd8e0b7d31c4e84e909155a66a836371facdd87c7660009230763e037a1db2e37f4d82fc9066e904cf6589667b82dfb01d33791110fb53abeb334eafa09873670135f7ca5a11a5e66647d7cb6fa3f6c6d623088e0663d4689579a3bec38a5059c2af2c4869c1e5dd35a194d8371f3dbab3706436b30544bda6d8d5d180f0e37ce19edaad178f45d82c9fc49ee900e7316c5f5a80e184ebd9658cc39d6c5913140b2e42f6c6ce673257c294f402fa95e16fb4b0d7c69ad11b38048d6d0ca22336755537d023aa27b8ddeacc3de82c409583a1d0c750c456f948a865015780a1bab5518b9f420ba01d0d3331c89d026c92caad9b5f5ca29ce038d28ce1daccb1a1a71410df0474564b8beedf4dbfcb258039299712866b48e4acd56493092240bc3b6f6d7cc87088c0a6a68f79936fea7d9d6564242c73259f518583d34628e18e45140d4a2208062a8f06d1b857b6e9d4ec615ce61b5a48e25c189e9b1df9d3578231026003eccfee04bb58e3a97db5f1954f8d367c87e7d10c4a07d39f19629c3aacb3d6c85e65a68156719d012c92ff0101ac9f55799d5eca92ba2ef0d852c053b44289e3bf31e1a24ed55d82f5c183903249123ff04d36b1674385a929438a2ccf383d06b95d09935e8bd4683114f36324388cd76edaddcf45aee8baf9813119bb099655eb32676c8dffe0b449b15b5fc2f0877a9e5ca8835a5e8f312df27e7aede3c56c24c3ae168fcf037e10117b1bd68787c4dd88b72480c3c5e260d3670135f7ca5a11a5e66647d7cb6fa3f6c6d623088e0663d4689579a3bec38a52e37f4d82fc9066e904cf6589667b82dfb01d33791110fb53abeb334eafa09872329b0139eb03ab05f0d1becce05b894b798584676ef9e507d48c148a24068a70b52f378e2c8aa9af533baf9303f5ce2c3dbdbde6c8c82493a93a31108963cfe1f78dfdfa7efc48f370b104c40ded54b6cd86c460507ee313f1d27bcdba215c7052f2858047ee2f9b7a84a89d23fdd21d85030260b9c8ea5a8fdb2254b442c64217776f02f6e47a8386ab7e38df17add4349e042416c3b51e69c1c6ccbb58546281a121e6ee8ce3230ca15123c4b9b1df2475835435d8bd1bba2ebe291c50fa70961502891062abd2bfdd566a240acb86a34dbdf8956ac2bbb93d2420d4cbf751b46b80f1b687ccbc2b5856f70de05b4daf3c08c874dd0ab2c8707a0199982b6105da07aab1b77538ff4f2aaef494aab568c665854951a998e935c2973501b40280c8d23df253bb9c89d80ca725215f9b8e4fb8b99b071e8f3917810a8ee83a018e45140d4a2208062a8f06d1b857b6e9d4ec615ce61b5a48e25c189e9b1df9d0bc3b6f6d7cc87088c0a6a68f79936fea7d9d6564242c73259f518583d34628e18b852ff16facbb38e81aeaa776b6d5ef1d85b05265790561b418209d6e76d8d363bd31dd7bd8aa5d751f5cf538b157ad206783a5afc060e09616fd03c7c712838a2ccf383d06b95d09935e8bd4683114f36324388cd76edaddcf45aee8baf982c053b44289e3bf31e1a24ed55d82f5c183903249123ff04d36b1674385a92942a9d7c69d049233edc537ddf568fbd4da3286a9fdf89846c212ce7cc3b7090b329c56acaa91271b3afd566ac50ff6137a8977aabc5a0e667f1fcd89ba3fcf7f92439226d9cc68edf215406ce8a9fb521bbe987e961db0120acf7e71b665fa411006ee5ca0fa818a9cd5f5407887efd4b893f1482aec97bb63b22f2c6c0869e1a03ec04efb569545310efda76b2ddf133a189ccaa13434f193252dfa79071961417157ed197ba39d419b6ffd111bc88ec00e626b7fbedf31b1a12880c440fec32266e79e0e6200fcf8ee495d4c8fac88ff8e081a537605031cabefc5939fcb7053e398e56c64e97b95fcec5014a23e9dd6e8eb3c2e29125c0b6890e75ece98b270525d1fcd1b82308b4b3386cc7069a57833a7a19d5913357ca1ba8e7196cf51a0e089e3a334969dcdfc1f2e1e7601906e8b098df27544eb92ec4ed31459e666e3e398e56c64e97b95fcec5014a23e9dd6e8eb3c2e29125c0b6890e75ece98b27266e79e0e6200fcf8ee495d4c8fac88ff8e081a537605031cabefc5939fcb7050617bd2704cb272ac64d5299ab8a21e18d7996ff60ce36b5d591ae6261769aea37dcfaa12c5906507ca3cd582598052ec720809ef584c2fad3ec51ce9df59c571ef4c93044996e3eb128019e80f32ffa63124f5fd1e44a319e88db0d1270b1fb05b33f0767d5394a3d8b5937922b8272e2164d0c3ec032a54991fed5147590300b17c83c813c79924a7fdb4f5d5774971d7f2483aad16edcddfcab8920307cfe298d7743df472d0e07ea05599c30f7110cca506620abf63c77c59e7fe1c8cd0934cfd44515a28bc77f3630a5ab2047b2c90c78fde1b0a84d010e0647e9b449d12fd833f296cc1bc16f7d2a3067fe6aba9e62bc6a3840cda5803a04873d31f85b03ec04efb569545310efda76b2ddf133a189ccaa13434f193252dfa79071961417157ed197ba39d419b6ffd111bc88ec00e626b7fbedf31b1a12880c440fec32266e79e0e6200fcf8ee495d4c8fac88ff8e081a537605031cabefc5939fcb7053e398e56c64e97b95fcec5014a23e9dd6e8eb3c2e29125c0b6890e75ece98b2716a6d84e2f29900849fcba78ea2ceceaed24506aad357fd3f8755120adfd5efd03263475a99ff611e8f66691e145220df7bd69a0c303d2b8d2d41d30a621f626006ee5ca0fa818a9cd5f5407887efd4b893f1482aec97bb63b22f2c6c0869e1a2439226d9cc68edf215406ce8a9fb521bbe987e961db0120acf7e71b665fa4113d9b542b2e3c8724b2ca03fbfd41f0635b723d3fd7f10598d89400df8318ce050d87be65fdfaaf6e2e466f4277d7d0d2de009dd41b5c61a84db249ec38c19846164275b9343e3f98934a2b01460d2c49fb57f80174081d0be5e0ad92e72d49ce0e65927e783067f05b692fd4cd11862349d0a46a9c9c5fcb023a2c4f3fb8f85d3d9b542b2e3c8724b2ca03fbfd41f0635b723d3fd7f10598d89400df8318ce050d87be65fdfaaf6e2e466f4277d7d0d2de009dd41b5c61a84db249ec38c19846164275b9343e3f98934a2b01460d2c49fb57f80174081d0be5e0ad92e72d49ce0e65927e783067f05b692fd4cd11862349d0a46a9c9c5fcb023a2c4f3fb8f85d39258cb3222aa49e434eeab81c190b2e8e0a7bbe66f1a237a0be182bea4dc05518ebf1b17ba5ad212a8baaa017569883ee56588ecb49bc401a777c3a73e7412b343f9f5dd0698e7a878f1f8ac7ab8250134a212f44362db3205c0c913651aae6306868d9dc05190e67243b4b4b73301d54251438d5bb483f60ebfe3df09497460525d1fcd1b82308b4b3386cc7069a57833a7a19d5913357ca1ba8e7196cf51a0e089e3a334969dcdfc1f2e1e7601906e8b098df27544eb92ec4ed31459e666e3e398e56c64e97b95fcec5014a23e9dd6e8eb3c2e29125c0b6890e75ece98b27266e79e0e6200fcf8ee495d4c8fac88ff8e081a537605031cabefc5939fcb70503ec04efb569545310efda76b2ddf133a189ccaa13434f193252dfa79071961417157ed197ba39d419b6ffd111bc88ec00e626b7fbedf31b1a12880c440fec32266e79e0e6200fcf8ee495d4c8fac88ff8e081a537605031cabefc5939fcb7053e398e56c64e97b95fcec5014a23e9dd6e8eb3c2e29125c0b6890e75ece98b2716a6d84e2f29900849fcba78ea2ceceaed24506aad357fd3f8755120adfd5efd03263475a99ff611e8f66691e145220df7bd69a0c303d2b8d2d41d30a621f626006ee5ca0fa818a9cd5f5407887efd4b893f1482aec97bb63b22f2c6c0869e1a2439226d9cc68edf215406ce8a9fb521bbe987e961db0120acf7e71b665fa411363bd31dd7bd8aa5d751f5cf538b157ad206783a5afc060e09616fd03c7c712818b852ff16facbb38e81aeaa776b6d5ef1d85b05265790561b418209d6e76d8d38a2ccf383d06b95d09935e8bd4683114f36324388cd76edaddcf45aee8baf982c053b44289e3bf31e1a24ed55d82f5c183903249123ff04d36b1674385a9294280c8d23df253bb9c89d80ca725215f9b8e4fb8b99b071e8f3917810a8ee83a0105da07aab1b77538ff4f2aaef494aab568c665854951a998e935c2973501b4018e45140d4a2208062a8f06d1b857b6e9d4ec615ce61b5a48e25c189e9b1df9d0bc3b6f6d7cc87088c0a6a68f79936fea7d9d6564242c73259f518583d34628e3450f250d72e23b9743a881ef4daf06db23a88385d23d1e78e741dc2281fdc453edc874c55d3277582883a6d0a883a69f995dce0b7f3c000938b5115bb06fd3e226708b400f0c78e35c5638064fe13b2444d054cad6b0071805f08c34cc0701a0240ff83ab7ddffab8edf755ae209ebb00db971f63397c6567bbd11eda25d2112913be03f51417cbe050548fe0bd3cdf06727249507a7331076dad4b8b4fb68508717783aca2da5ab84eb2061a5dc302ca8cc2d0ec1bdb3a48d3a7f6f973d63616029ef2a2726b609215fd287a88027866de7c220c2103daa199682a7b9fac9c0ea5694509fc3c285c9d5dad9896aff4de4a204a048378fc468171b7ab46958f18ebf1b17ba5ad212a8baaa017569883ee56588ecb49bc401a777c3a73e7412b39258cb3222aa49e434eeab81c190b2e8e0a7bbe66f1a237a0be182bea4dc055343f9f5dd0698e7a878f1f8ac7ab8250134a212f44362db3205c0c913651aae6306868d9dc05190e67243b4b4b73301d54251438d5bb483f60ebfe3df094974618ebf1b17ba5ad212a8baaa017569883ee56588ecb49bc401a777c3a73e7412b39258cb3222aa49e434eeab81c190b2e8e0a7bbe66f1a237a0be182bea4dc055343f9f5dd0698e7a878f1f8ac7ab8250134a212f44362db3205c0c913651aae6306868d9dc05190e67243b4b4b73301d54251438d5bb483f60ebfe3df0949746298d7743df472d0e07ea05599c30f7110cca506620abf63c77c59e7fe1c8cd090b17c83c813c79924a7fdb4f5d5774971d7f2483aad16edcddfcab8920307cfe34cfd44515a28bc77f3630a5ab2047b2c90c78fde1b0a84d010e0647e9b449d12fd833f296cc1bc16f7d2a3067fe6aba9e62bc6a3840cda5803a04873d31f85b334a7441d46dbe2329e310d4a3b55090342842bafda92c4b6cfa9884535f986e09604a2edc006ac2fc99ee2bd430dd0c2b7a2781db2442aa213740f25b69b8a60ea5694509fc3c285c9d5dad9896aff4de4a204a048378fc468171b7ab46958f16029ef2a2726b609215fd287a88027866de7c220c2103daa199682a7b9fac9c0617bd2704cb272ac64d5299ab8a21e18d7996ff60ce36b5d591ae6261769aea37dcfaa12c5906507ca3cd582598052ec720809ef584c2fad3ec51ce9df59c571ef4c93044996e3eb128019e80f32ffa63124f5fd1e44a319e88db0d1270b1fb05b33f0767d5394a3d8b5937922b8272e2164d0c3ec032a54991fed51475903000000000000000c8000000000000002c0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000201a8f717f191695bf4ab76675b7a3219d2f27fb20740f7fd1c8b4de4c3b8d3ad1000000000000000100000000000000010000000000000020953ad815a2963d664f0f467b59bd24c8e0fa06059f422523c2c9cc30e63622ef0000000000000001000000000000000000000000000000200ae4da6dd0ba3dba590cdc5b458241d43b05d834be20f06226ed69dfe3f4feff000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000002c0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000203339dbf171cef49d7978b44819e11c800293110002342a85ab135c22da55bb710000000000000001000000000000000100000000000000207bfd1e8b05c7d4db1ddb4abbc4ee4e2047ab1cea71eb4125c60d95dface639b80000000000000001000000000000000000000000000000202d5491c2b0a236a306dd587e3689fdac906752af96e9c92a11015dee02b355260000000000000001000000000000000000000000000000204c549c0a06011a5b940afdd9c949f7c54668b0449c63f74f64a3a00d1cc2a37800000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002c00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb626512000000000000000600000000000000010000000000000001000000000000002044db4d15123ad26a49ff6b38a7a5b0389ec52091267b667b032f706366b283690000000000000001000000000000000100000000000000206ed7f1a6c47a44f2b7011b57308b53c7e5c8addfd07d945a9042a02777a833ae000000000000000100000000000000000000000000000020762ae3247aa8d6ed9a4528261d063545224ee7eb9564b86d08fa8e6b77499d24000000000000000100000000000000000000000000000020d880ce6b358a2b77330b5a0f9481e98d6528b9d0ad6b480d03501c04a93a647f00000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002c00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c8000000000000000600000000000000010000000000000001000000000000002094f870ce086f592f029953d963ae0855451bf25718fb85c02b750b6da3bf470f000000000000000100000000000000010000000000000020083bb08400cc00f8741cc5a61d5cd377218c13bf2ad0c114737eb149440507640000000000000001000000000000000000000000000000209f8adadaa16ce5cac8b348c7f9490ed007a31dec8fabfc34360ee0a7a7567dad0000000000000001000000000000000000000000000000205fd7cad6c08ee7d72dab067a907a496543f8562d1aff5010789f4fe3432c874200000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e1000000000000002c0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020ca7925636d4cfc29c14d10e1029315edd7f1add3dbc87eb29ba115df22cd8fed000000000000000100000000000000010000000000000020bc50f558bf1c2801a35e0f3833a1192fa429fc028ec80669603d2c5da81d878f00000000000000010000000000000000000000000000002023ba7ff2b84d2058064e3dd64ff66a518516cb562d103469ed0615bb4c67d3f7000000000000000100000000000000000000000000000020896402e4d3f17887d11d2154920c6bff134c98834a80f987cc702496ef09c196000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000240000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020c24fc0a3e994aa4053143723d1ff953730e09d80308264f57f5e25286c7dcad00000000000000001000000000000000100000000000000204f58496d9785dbfafadd8f41e3167831200b5d8065731cf35b12e0f683eb6aba0000000000000001000000000000000000000000000000204cb7b4fa816710180675ddbc955531f8a709d427faf5200cdc6737874e060a55000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000240000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020a92607495561c9eeccd26d9cc9dfab304f5bdec362795340e1d8d93b162ff7f5000000000000000100000000000000010000000000000020056c9a4c4349cd5028c19714d82d2521d603233c99689f9551773f4c5a1bb87400000000000000010000000000000000000000000000002037a9c624bdb25b1ee261b13411e9d6acc0d0e8c738496cff14dc43abe65c9d1f000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002400000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000204be0b5c554d14ed3ecb1a4698c54f322ec73fcaf89c1a0d0f2287a93c2b4d62b0000000000000001000000000000000100000000000000203decfa57715a83c44aa9af101d28b91339338f8855c0070ab1a2c91f7f429ec30000000000000001000000000000000000000000000000205d6c3e37441823be85bdf046e1379fc5587812c68dc08d8750f2f6bd76bf08a100000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002400000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020b9bcab614083e91d90644c8bf147843d720ff77d9f63f4ec3cf28e93fd482b18000000000000000100000000000000010000000000000020c197f4a8824867039691d253f3aabc0aeadbd548577f61e901b469ba8e81b348000000000000000100000000000000000000000000000020580e91949e50afae5b838c9689875cb0378f05c69de9eb4bbdfa87dc8eff62000000000000000001000000000000000100000000000000209576be5e5da6b2eb368bfdcbab0970717630f25877a6b9664c345d452e1514d800000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000240000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000201dd42fc16aa12a31fa90168725c897d861f7e36b8c27441380a55b1025146bcc000000000000000100000000000000010000000000000020a80602202c5ebf9b0347c9106ef91bf2c358dd05edffa7aa90f9b9bd47fd10500000000000000001000000000000000000000000000000207f46e4b2eb51c53f78fb1f6b5310d84183eb4d3898e8ddf3b3eb940fc2ad8f4400000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000080000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000001000000000000002042339e5d10b0a87ad4fe4a5593bdc05cee398a4a18ea7f97778781f69ff9d23900000000000000010000000000000001000000000000002014aa8e29f77d6a5fb881904df608256632c6604fbfb5192158e0932c0baf514500000000000000010000000000000001000000000000002093c99af014a3514bdcc84cdf0e72d42f20038a64dcba4071efdcce4cf6a76949000000000000000100000000000000000000000000000020a07353c5029eac2f5fb14b7aaa839b9ff2b01dd6feeb51c341820462ab766306000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000080000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020993982938287a52eaa295a8259c93c48d22125e67d985917441309ed46f8d051000000000000000100000000000000010000000000000020ff5c9eed6e4075d1dc3dad1312c9f0e4bcc23270345f8eea8c11a5b3619b24aa000000000000000100000000000000010000000000000020e23783733f2d245e0738ed8503ab8c6aef3aa526888e6b8dc670bfe0e224b8ff000000000000000100000000000000000000000000000020a45ee5473875579efd498bb9c2b6715752587f3d8b2592b454ecfaa7a4333af7000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000800000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb626512000000000000000600000000000000010000000000000001000000000000002019898700bf26a87ccaa60ae2e22476343b05ba5277b4aabd5310269c5066b3a000000000000000010000000000000001000000000000002025a5c0035306c82abd392465404dd2a5af6ad78f6c662e811fb28ddd99a85857000000000000000100000000000000010000000000000020f0fde6ec22a87dce3563e4a3872da6fb65e744b1d395bcb2f83911d9ac21f1af00000000000000010000000000000000000000000000002017851b1e9a70cbcc32eb47f7ecfae668e5855348fa541f9cd9cc78455c2f52ed00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000800000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020efcb1dbccdbb697cca27430b84af3a0549dce6cb8b08308384060acd9584df25000000000000000100000000000000010000000000000020f7920379a56fc6ea52b03411a80201764cd5c9b889cce60510d3d289564f02a1000000000000000100000000000000010000000000000020b9f47dcff780b5d8194c00a89264a3eb8f7603479d71eafc29a9074cf428d552000000000000000100000000000000000000000000000020dab612d00eddc0f70596df141a7d854a89a2e881b62296a42c239a68553568e5000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000080000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000209b2ceda6345229ee35c8f1d1ec5f70384bb152c4b78dd25b3534efa444f07101000000000000000100000000000000010000000000000020f9459a5f7f85273cda341000cf6866270e90827995d041cbba1ac42de920723c00000000000000010000000000000001000000000000002045bb9d506f74a19123d41a442d1de0fdfbaca183dfb2af0cc5027621a991b2b2000000000000000100000000000000000000000000000020dd7d0f921f70b1c400e2053b21a89931a0d729e3164966f8cdf0a44bdd836801000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb81659000000000000003d0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020c04f1fa9f3f965d8bece2549a2d58325a1b2514fb4e532926bff9d2574b86fb5000000000000000100000000000000010000000000000020fa95b871dc336a316326fbcb301108e4f714f2bd6e602d361ed24b034855b7490000000000000001000000000000000000000000000000206d638b48c620681d9ca1f3ca0b9269a4c587a473d6a7f7a9b87cd38c6b341a88000000000000000100000000000000000000000000000020228ad46578c60a8ae293c5203eb65e05045bb3651cc7f9dca5fdd52a9c021f9f000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000003d0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e000000000000000600000000000000010000000000000000000000000000002066ff1ec38e93c279868838ceb073cc1099f22a587203cee6c2d30bd5308ac995000000000000000100000000000000010000000000000020be85ed65a5a68087be9d2be76ba091a1b670d33ace117026a041765c69a90fda00000000000000010000000000000000000000000000002066f2ddc800c59423dc3e6cb06ec895471d3ffafc6e3140cc34d397e66f29e633000000000000000100000000000000000000000000000020d3fe0ac3f0592a168395476738f2d379d0581dd02807271399e479432d094ace000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003d00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb626512000000000000000600000000000000010000000000000000000000000000002085b03c835a69668615c33d712d17ec16cc032859deb4ff24b8cf4e7e3a7eaaed00000000000000010000000000000001000000000000002008aa7b0ca169d528158edb0c24743f0b68eacab6edcaa15ac970d1c5072772c3000000000000000100000000000000000000000000000020a72b7e194afd50ecaf1e33d2066f71486bac78d487b7fa0426a92e4a9ea310c9000000000000000100000000000000000000000000000020762aa6b8eaa622a60e5d82075304926867e1bfd72e6c9bc93d7ed5c083f0de9d00000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003d00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c8000000000000000600000000000000010000000000000000000000000000002071fce3dab75e3a384e0b67c215f8bd36207acdbf78d8e365c288e5405edde450000000000000000100000000000000010000000000000020fc02de609e9efa8ac9b0ee2de75181f281895b4d78139f99a656f6b2a5a9162a0000000000000001000000000000000000000000000000206889701554ee61bb802ca84af6486ce5e81ccd8180328c57ab9d2341a8808cc900000000000000010000000000000000000000000000002000a85bf2f2d421229c03bce75acc24a6f0df564cb379ef0e908c83449ac1caf40000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e1000000000000003d0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020d2c0aabf9e7e7d77e39ff416427987107c746e98e5f0cbb5acf12b7b3b27b5a30000000000000001000000000000000100000000000000200b795fddac1038a433c2c495ff393bde6b796f79e6ab17e827c1139be158bd2f000000000000000100000000000000000000000000000020a85d79547366d8e08f2cd889f73768075efa9a82bdcfd8eca2a0d03ec1c600af000000000000000100000000000000000000000000000020e275f0cac8a965b7c2d52bccf2fc2a08ba897eccce8ac56d94090bd934b9477a0000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c00000000000000000f0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000209c582254bc38500951591dd249dc1333b27277b5c820ad0c401b7ceb1a299208000000000000000100000000000000000000000000000020b173e65d659cc1f471d2922de643652b703159ad657dfddbb87c03928e9ae2e9000000000000000100000000000000000000000000000020266533c386eaecf62505c82a33fc748ed3dfb0dd1f1c3b6ef1c350f30907840f000000000000000100000000000000000000000000000020a07353c5029eac2f5fb14b7aaa839b9ff2b01dd6feeb51c341820462ab766306000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000000f0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020591ea4747567d0b1f0b4e49e5c8df791e4cfab5aa15e02699e5bee9b591b4f340000000000000001000000000000000000000000000000200ec2f1acb3815310ab25abd524869226b606f750b7f8740504796e125d37e5a70000000000000001000000000000000000000000000000203e730a9762014a0bc462be90ae606e5d47c72eb18f70e7e52e6fdbf0e6f0ca51000000000000000100000000000000000000000000000020a45ee5473875579efd498bb9c2b6715752587f3d8b2592b454ecfaa7a4333af7000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000f00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020ef837ecb955c6a90fa409bb8a82719e8bd8ae7ec82823de48ba4ced0636873410000000000000001000000000000000000000000000000203518b558a475690b7827b1de96f55519d9245f9117ab4d6bd433dc371d07a1570000000000000001000000000000000000000000000000200f6629916e8ea9140c1e5fe82516b014e06c6a7ffb9a27dbe8073629cf7bcfd300000000000000010000000000000000000000000000002017851b1e9a70cbcc32eb47f7ecfae668e5855348fa541f9cd9cc78455c2f52ed00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000f00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000000000000000000209a3dd86712db94b71f3c7cea26d8055dda5543945d0d72f6cbf55865591894b3000000000000000100000000000000000000000000000020ec0426330c65734ade67d296a589bad25e2db729a351d7658be53ef6a7fb88f800000000000000010000000000000000000000000000002021e77df31f1eff95861984415a96b4b3e971e343430cde7965c4ffcd12acfcf9000000000000000100000000000000000000000000000020dab612d00eddc0f70596df141a7d854a89a2e881b62296a42c239a68553568e5000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e000000000000000f0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020a7b6a608d0d865607fb8dfa6a0d9215aa284c32e5f42891e25647fce98133aaa000000000000000100000000000000000000000000000020046adb4ccc3450e7cbbdce1e0e6f6b3e5d17259cae89e17246f83d54dd8edd200000000000000001000000000000000000000000000000204b3a8c95985e02c1091d8b74e359262a94d60b3baac08c1afc3d4c34b039a42b000000000000000100000000000000000000000000000020dd7d0f921f70b1c400e2053b21a89931a0d729e3164966f8cdf0a44bdd836801000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000130000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020a51adb0dd5ff6139015f567454f916303ab3f39c830603b281712da0359980d000000000000000010000000000000000000000000000002077c77d7b993f04ae31fa6b6da7dff3c353004c11a049302a478e5dac04d508cf00000000000000010000000000000001000000000000002038c257c4acc7ae148c5c9b4409c82130df8554a30c1e722962697197980c56fb000000000000000100000000000000010000000000000020f158609c6b12d3609bdf1c7797edb538f985fe8ac4171f066b1d7b9c43c7bc3b0000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000130000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020e4c375b6de0dcd2144dc015638119fac2dff51212295bd568d0f822953dbe353000000000000000100000000000000000000000000000020410a9806148029c00be1c6575ce39cab980947f62d7b8c905215b520e160aa17000000000000000100000000000000010000000000000020d42e2ebd255e4349a7739a43dd3c719944636248abdb0bced6a610501e96e1b50000000000000001000000000000000100000000000000204dffb3cd723081a5601c700b71267e003c6301f69868c0143c1c7fb7f95e7282000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001300000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020d5fd1e9ac010c629f9995228fd1ce86410206a754ce5277b31e14511bc4678d00000000000000001000000000000000000000000000000200d8eb352cc26ae30ac8e735bd07c4afc629f8b935a6281b4a5d795206646f134000000000000000100000000000000010000000000000020fe4fd380a7b985c22fbf7e428d0522af491d32b3707fdee9600cc7816056f1200000000000000001000000000000000100000000000000205d9455d420eacea118c8dd606eeb03972280069211e33523e74b32b8a0a96ea70000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001300000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000000000000000000208f172a29c3f7a4928e95a442bc56edefb65be8dfadcec91da6c77898dd047f300000000000000001000000000000000000000000000000208ca5f4e39ff8097b3311dc5c6b8ee0f25e73013b54075212e77ec6bbe41ea8e5000000000000000100000000000000010000000000000020acbb53eff19327fdfe068637b56e56cf2ed3ea11c5ac335cac2a4c9e1b4ba555000000000000000100000000000000010000000000000020770adc9f5a476741bb8349e40e9edfd96156aacd1c6d9e3a586653b654b6aa5b000000000000000100000000000000000000000000000020f66cbef6ba027ee51a683e2c6bfc0ba5a9c25509bcbd67fc8c6ed57fed75d4ad000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000130000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020043e05299a97cdfdad83e9c096b1f11c65ec4a2b99d554ba0940abdbd2e5842f0000000000000001000000000000000000000000000000201cc2cb225f6ceb4dc0af62c3e4cdbff8b47664cb0876a05b70204156dc6ba240000000000000000100000000000000010000000000000020113e52f83563f3c9a8ca73087daed63db6e020f9b1908dae270f2d864860470b0000000000000001000000000000000100000000000000207558d367d7cb8046d18c333db9b72e09bb6459368f028b50b23b205b8ad03c430000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000030000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000206ff0195a134c259fe7543028850c1e5cad27da7360a4eaae4414e0bfdccdba62000000000000000100000000000000000000000000000020bc0e1e4d069a85667d831c6131bf23b47a10f808276f2d639351a2b29c6601f100000000000000010000000000000001000000000000002049b18f4c7c36a3e31f7aea5854ff3a4295357e9b4683efeb0cc263602c4cd838000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000030000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e000000000000000600000000000000010000000000000000000000000000002086459a0212426dc2ac2a376c2d40c3d2b8ccb49ccb264ff41e000e8323be00dc000000000000000100000000000000000000000000000020dd758e7e903cea5d2b8d56cb7ec81903a5d208516bc65446aaab10a4c88881f6000000000000000100000000000000010000000000000020c8ae564fce614307d01ae4e7ca514b4d438c025236d2f7c225df0916122c407a000000000000000100000000000000010000000000000020a5ba1e43e43faaed55a5a360b6818e780f5c7442a5977ec37c50292584a00e03000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000300000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000202970d043e5027eaed94acbe63e1917b6a011fdd08a740ef6c1e0bb3c348c406d000000000000000100000000000000000000000000000020e921a3304310ce0c4ea3ff193bc2b8d3e37939557d88c4c9d8d9aa74dade5fce0000000000000001000000000000000100000000000000202d7e532bdad475f87cde4c2f0d86dfd080e22978cd3c4c8658c88cec2b0257b1000000000000000100000000000000010000000000000020dc0369b2684d24cbf4274ce023a89e3478b29bfaee34efd0a4da1dc660ba45de00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000300000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000000000000000000204a7773cd46d18c41025b8d2593ba8eddbf921c9c7e1ebc7309af39ba3f8340cf0000000000000001000000000000000000000000000000201dedea2ea2a45095babafaaceb602b439a7a8de613dab9659c28452f2b43ba230000000000000001000000000000000100000000000000202fae5685a1fb05d54b1bfdb2cba9f571c9a24db75580e22dffc6988ffc17820d000000000000000100000000000000010000000000000020e40fba18beb7a8bfcd3d0b191d6d10f4e3acec4778b08e3ae3c21ae92483fd86000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000030000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020058deca8926462de969a8f6c7186d43908f874ed995eb7603a319ae7aa8ff440000000000000000100000000000000000000000000000020898c87da14d35ffd206c40c659830a17aafcb7a087947604f6abe545e28b58840000000000000001000000000000000100000000000000206ba2588cc21b5cda24b2aa86f1ea326163ccc1d7e3f79cd11177546b0f9520e80000000000000001000000000000000100000000000000205a4b48d2d5c0deec9a967d4659defb7f8c12de581186bfae2c710f30835d378c000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb81659000000000000001e0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000205b22e826fa41eab497f0d44485ed30b89e70dc3b8991721ecacea7676a1160ba000000000000000100000000000000000000000000000020a99b7e2901520fe9aa438e0b1d9ff1d42abd1e4774fe50a7af9abfdd5aeb49f0000000000000000100000000000000000000000000000020cd05d024922075f0d2191dff6b6b8977913542096c687b1aa6a6880a30f4f1780000000000000001000000000000000000000000000000207a1424d413417eb28a018fd1d76958181366ee57c4d59ae0034a29ddbb1d2b590000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000001e0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000204770899cd3e2cc4095956d615386c336d78390d82891791393ec7efd021b50d20000000000000001000000000000000000000000000000202a2de0868c528815ae4a83f77bed5e4618dd7631755e6f37a518ff031e998dfa000000000000000100000000000000000000000000000020e216681d6f38da8409d5c77334f0f51de756720aaa028880c59d6a832095ad4f000000000000000100000000000000000000000000000020938375cf40ac56222ab4d00edc1add4f0c4d45658ef352f9c39d534a9202dcf7000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001e00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb626512000000000000000600000000000000010000000000000001000000000000002000ffd50a0e09d1a2c7e1ba81e46e042ec77aef694fa7378b10eb2ced2513005b0000000000000001000000000000000000000000000000208aa088e796768de7229e31b34fe788da7fe2fdb8df344b029935b9d2d8dbdf2100000000000000010000000000000000000000000000002053b3233efca5252e2055e75028fefee3391d25eb106840c102b53e90d3d1fdf6000000000000000100000000000000000000000000000020a084e70b3f9ebf137fa0b89422463d8a968230d1e0fbcf139db6e018b78315170000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001e00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020952f485a7107b171858c16e5666bd6fdd98f452291ce9b99a78e8352889a14d2000000000000000100000000000000000000000000000020fe99ab1dcd065f673dbed84d1d54217d2ff636b0b7019ea641b3ceafae0b69d4000000000000000100000000000000000000000000000020b7d7c4fcec9b03c74f701ed9b4eedf7ec3386233c472d6ae64f7cb0ca1f7a448000000000000000100000000000000000000000000000020ce498e000ddc8371c645a265d4b98546295ae06beeb91fa03885ec7c34dce7f9000000000000000100000000000000000000000000000020f66cbef6ba027ee51a683e2c6bfc0ba5a9c25509bcbd67fc8c6ed57fed75d4ad000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e000000000000001e0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000204458dc689a3c9b3f3ea909e7f56b0abdac7a2bbad18f0649bcf794edf6e4ed8d0000000000000001000000000000000000000000000000208404c4d1b9523cf7c9a5ef7c4369fa8ae85b8450e69f5170f221214e928df1140000000000000001000000000000000000000000000000207fe3562c7d01ca88eef4c66c817964ae9239a6df889ab475368bf430de96cdb20000000000000001000000000000000000000000000000205ef7704fa3778b449f726e5d0a98cf0942526fc336765751838fd6cbb761fb270000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000200000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000001000000000000002099c439552bc012b331f78711afcc02ab45f65be8ef9aef37b56c34fe5ec62561000000000000000100000000000000010000000000000020d3a8480b820bd6c782f5a7d8bc820d929996e9b8ab64d37789aa88140ba71654000000000000000100000000000000010000000000000020d80cc5cdbb0ec297cddfda4fd988de76b705f83576117fb5ed10b48a9b959bb0000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000200000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020c5aada7333905262bd985fbc023814f24628710fde74d7d1291fa54ca5cb94ba0000000000000001000000000000000100000000000000200c04f15905ef31c5e7f95badee6ef48214fcec9a48dff3643ba924349c73daaf00000000000000010000000000000001000000000000002072ecff12c730f10ff239ae5d5ec6e0ecd7a93d7c6f58e48faaf9efc69af68a03000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002000000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000201b07870ebb742c3884ed4ecbc4e8996b04e58ac19af265c1cfa8cb933bcc8d7f000000000000000100000000000000010000000000000020730dfd755e8bc4f3764cb6605b45ef36f2bf687e9a26d67efca88040d92455b70000000000000001000000000000000100000000000000209636be1e4b8abd68cb43b0274502fefa81dd44893b457dcd361701b81c119a5b00000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002000000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000100000000000000204ac84588272640a51806311e618175660448384fe988fd740fe2caea700bf8ae000000000000000100000000000000010000000000000020915a39315080ec6ed5cebeeb6b7dad131f8106659b1ee09e93e1bfae78eff704000000000000000100000000000000010000000000000020477f5dc159d908adca707dc48fabcb5e7760807f37a220b1e911898710933d820000000000000001000000000000000100000000000000209576be5e5da6b2eb368bfdcbab0970717630f25877a6b9664c345d452e1514d800000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000200000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020f51957a1ed7316fb19166bc621acef4f5f5368cd4eb556d050dbd81c88fa917b00000000000000010000000000000001000000000000002053d45841276f047a813d87d7cc211dcf1d7057a623db3785c133608ed6d4499b0000000000000001000000000000000100000000000000200df38a45fc387ce7388d7edbd245b965091614cd5a7aa1118bcbb22942e4bb9300000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c00000000000000003f0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020ae475446506dfaa59968c26931bee5eb87090ae33a057924eaef7eefd03110ad00000000000000010000000000000000000000000000002069a16d2b56ba3538a063eb8027cc1a4e3053ce82d49b49dbcb4419a7943fcccd0000000000000001000000000000000000000000000000206d638b48c620681d9ca1f3ca0b9269a4c587a473d6a7f7a9b87cd38c6b341a88000000000000000100000000000000000000000000000020228ad46578c60a8ae293c5203eb65e05045bb3651cc7f9dca5fdd52a9c021f9f000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000003f0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020c4446bba8c1b7fb429c7566fe2eb83cf8fc01f9962ea02859504fffbc0ccdb49000000000000000100000000000000000000000000000020eef65a3f592189d4459cd38a7fdc20e3c6e4585e0d3713da14da36b4b547a0a200000000000000010000000000000000000000000000002066f2ddc800c59423dc3e6cb06ec895471d3ffafc6e3140cc34d397e66f29e633000000000000000100000000000000000000000000000020d3fe0ac3f0592a168395476738f2d379d0581dd02807271399e479432d094ace000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003f00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020b6ca4da84f02aad90c581176daa3da05852b495655548ec26d1b19f76b322d320000000000000001000000000000000000000000000000201c170c2391b60742d4e50f166570297dd51524c3e9dfdde57583dbd0d59b98f0000000000000000100000000000000000000000000000020a72b7e194afd50ecaf1e33d2066f71486bac78d487b7fa0426a92e4a9ea310c9000000000000000100000000000000000000000000000020762aa6b8eaa622a60e5d82075304926867e1bfd72e6c9bc93d7ed5c083f0de9d00000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003f00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000000000000000000020ae7619fa0fc3e148815f5634731353e207a7c6409708ccece355065ef6880b09000000000000000100000000000000000000000000000020cdcf86385ef53b8ce97ccc6608b4101d620d5e47c63dacb968ff5e5a1512061d0000000000000001000000000000000000000000000000206889701554ee61bb802ca84af6486ce5e81ccd8180328c57ab9d2341a8808cc900000000000000010000000000000000000000000000002000a85bf2f2d421229c03bce75acc24a6f0df564cb379ef0e908c83449ac1caf40000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e1000000000000003f0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000000000000000000202df5948fb78d8e6f2f92a2ea101910a5ce745492735b256acd41c49158f2409c000000000000000100000000000000000000000000000020866bd428371641ca6284b28aa6547219a585a30105d51b7f4811297b39fc8a97000000000000000100000000000000000000000000000020a85d79547366d8e08f2cd889f73768075efa9a82bdcfd8eca2a0d03ec1c600af000000000000000100000000000000000000000000000020e275f0cac8a965b7c2d52bccf2fc2a08ba897eccce8ac56d94090bd934b9477a0000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000360000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020d6ab637747cd4cf07614af7517bc5b895262c631bcb8c17be442d7ffb446d0d1000000000000000100000000000000000000000000000020af10c5c4dbfe0ae7d40ae80cbb399ff0ef8a3020aceee74eebf5f5da0a49f123000000000000000100000000000000000000000000000020cacc7d788bbdb1c4d5dbf47f8afd9ed9b975d2203ba1769a80caa833f3fbb946000000000000000100000000000000010000000000000020f006cf8352bbf180ccb81999dec2d0377abf32ec1a119242758d07bf00181499000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000360000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020255e26c2f87b871f240220765d6e7b0fc4b286716c776731703a2bca61f1ea9d000000000000000100000000000000000000000000000020ccbcc62e2e45f858be8e923e16326816135ae07a8d494cad2676102933a0113100000000000000010000000000000000000000000000002073a7127e76a6c5c3b45234b5814ccbf96b9d757a279114bbd33a663bd26d006e0000000000000001000000000000000100000000000000208d5b321bbfd951f9cb7659d22f534c96ff102f4c76a497617e5abb9dfa82d388000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003600000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000010000000000000020497e00ebd4975ce3d6e3b7215d96c4464817dca7bc4643571817b9418cc927ec00000000000000010000000000000000000000000000002038f8eec7fcd75ff3dba3a31187a969317b6cffacc4e5a3318979beb4ebfaa783000000000000000100000000000000000000000000000020f4ad74e02cc77efb94d4fc24ec0d3cf9f818ea30d8cf64bbb281e90b63c46a2e00000000000000010000000000000001000000000000002077140c9519235b46e9281299155f5f67e417ff114e7ade36dfc35a5d9cd2e2d700000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003600000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020a206eede38cee8e56a2aefcddf0301665f7409adc6bcc39833889a38a10d162e000000000000000100000000000000000000000000000020b9fe74151d32fe3dc5006856fea86eb93dd3003305e3c591ae5f03d9baa178cc0000000000000001000000000000000000000000000000202a006a9ce5990c918a9042f52712f1deb0b3840b72b18b347088583ab1f5f8d300000000000000010000000000000001000000000000002048e1d107862aaa17d2844c76f1581f63cd00be4647fb6249784c8e84d204a7d30000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000360000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020315d37a4c786bfc7296ce7111ff7b5b096c49b0f122622d10fc8b088bcad3ec5000000000000000100000000000000000000000000000020635393df74f0f4451136383e4092cca86f3f7c607e0d2f714b090a80d8f7e6c8000000000000000100000000000000000000000000000020f8cfa931b1b7944fb737694c4d6fc033dc405917f38330a742d6f02d503c8a1b00000000000000010000000000000001000000000000002072bbfd71e002ce04de2fac87c41cdb38dc917d8c5386b1ebdd6e02865da280340000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000090000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000208e04b4c723612b4d1e333accc4e24a04d69c173578faf07c8d2b973c0be9fb4100000000000000010000000000000001000000000000002014aa8e29f77d6a5fb881904df608256632c6604fbfb5192158e0932c0baf514500000000000000010000000000000001000000000000002093c99af014a3514bdcc84cdf0e72d42f20038a64dcba4071efdcce4cf6a76949000000000000000100000000000000000000000000000020a07353c5029eac2f5fb14b7aaa839b9ff2b01dd6feeb51c341820462ab766306000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000090000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000000000000000000201e1426bc22e09b48e2f3902ae15397de929e0b50905519518b2ffd6ff87b0f8d000000000000000100000000000000010000000000000020ff5c9eed6e4075d1dc3dad1312c9f0e4bcc23270345f8eea8c11a5b3619b24aa000000000000000100000000000000010000000000000020e23783733f2d245e0738ed8503ab8c6aef3aa526888e6b8dc670bfe0e224b8ff000000000000000100000000000000000000000000000020a45ee5473875579efd498bb9c2b6715752587f3d8b2592b454ecfaa7a4333af7000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000900000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb626512000000000000000600000000000000010000000000000000000000000000002009e66b718cc1244864884c2e809453b63f5bdb1357b3b4cc341fe71f437dca2e00000000000000010000000000000001000000000000002025a5c0035306c82abd392465404dd2a5af6ad78f6c662e811fb28ddd99a85857000000000000000100000000000000010000000000000020f0fde6ec22a87dce3563e4a3872da6fb65e744b1d395bcb2f83911d9ac21f1af00000000000000010000000000000000000000000000002017851b1e9a70cbcc32eb47f7ecfae668e5855348fa541f9cd9cc78455c2f52ed00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000900000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000000000000000000203366300a5e555c582038bc0af48618d1c44ec5457efee567d5c266b9d86372ee000000000000000100000000000000010000000000000020f7920379a56fc6ea52b03411a80201764cd5c9b889cce60510d3d289564f02a1000000000000000100000000000000010000000000000020b9f47dcff780b5d8194c00a89264a3eb8f7603479d71eafc29a9074cf428d552000000000000000100000000000000000000000000000020dab612d00eddc0f70596df141a7d854a89a2e881b62296a42c239a68553568e5000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000090000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020e6608d6b21e9b4d6fdacc91ba204748c8cdadde68638156e633ef52ca68d58a6000000000000000100000000000000010000000000000020f9459a5f7f85273cda341000cf6866270e90827995d041cbba1ac42de920723c00000000000000010000000000000001000000000000002045bb9d506f74a19123d41a442d1de0fdfbaca183dfb2af0cc5027621a991b2b2000000000000000100000000000000000000000000000020dd7d0f921f70b1c400e2053b21a89931a0d729e3164966f8cdf0a44bdd836801000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb81659000000000000003e0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000208910319c4704675fb2e689fe85e65059409a009e9dc7f46029baed30c3f6050100000000000000010000000000000000000000000000002069a16d2b56ba3538a063eb8027cc1a4e3053ce82d49b49dbcb4419a7943fcccd0000000000000001000000000000000000000000000000206d638b48c620681d9ca1f3ca0b9269a4c587a473d6a7f7a9b87cd38c6b341a88000000000000000100000000000000000000000000000020228ad46578c60a8ae293c5203eb65e05045bb3651cc7f9dca5fdd52a9c021f9f000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000003e0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020191e3e906b69de629398f388037428d655068fb4f7201589352159a5d83ed8a5000000000000000100000000000000000000000000000020eef65a3f592189d4459cd38a7fdc20e3c6e4585e0d3713da14da36b4b547a0a200000000000000010000000000000000000000000000002066f2ddc800c59423dc3e6cb06ec895471d3ffafc6e3140cc34d397e66f29e633000000000000000100000000000000000000000000000020d3fe0ac3f0592a168395476738f2d379d0581dd02807271399e479432d094ace000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003e00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000010000000000000020717eb92b238367aa5b8d57e049cebd3624fa0fcbe6b53e3750f74c3c5edee9e20000000000000001000000000000000000000000000000201c170c2391b60742d4e50f166570297dd51524c3e9dfdde57583dbd0d59b98f0000000000000000100000000000000000000000000000020a72b7e194afd50ecaf1e33d2066f71486bac78d487b7fa0426a92e4a9ea310c9000000000000000100000000000000000000000000000020762aa6b8eaa622a60e5d82075304926867e1bfd72e6c9bc93d7ed5c083f0de9d00000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003e00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000100000000000000208537362dbc6b3aa76cf88ec42302f0a2cfddc88e92a0c151679ec1aa612782c4000000000000000100000000000000000000000000000020cdcf86385ef53b8ce97ccc6608b4101d620d5e47c63dacb968ff5e5a1512061d0000000000000001000000000000000000000000000000206889701554ee61bb802ca84af6486ce5e81ccd8180328c57ab9d2341a8808cc900000000000000010000000000000000000000000000002000a85bf2f2d421229c03bce75acc24a6f0df564cb379ef0e908c83449ac1caf40000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e1000000000000003e0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000208c22854966b4417b9c7cb65b4638e0cf5ff140c478d91859d71f24981c261bcd000000000000000100000000000000000000000000000020866bd428371641ca6284b28aa6547219a585a30105d51b7f4811297b39fc8a97000000000000000100000000000000000000000000000020a85d79547366d8e08f2cd889f73768075efa9a82bdcfd8eca2a0d03ec1c600af000000000000000100000000000000000000000000000020e275f0cac8a965b7c2d52bccf2fc2a08ba897eccce8ac56d94090bd934b9477a0000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c00000000000000002f0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020187d6fc731ee3b7c74d0699a8a6aa921686bda392d9dbe628763e70ea0a4b2d2000000000000000100000000000000000000000000000020295e30ac0c53913c15b9f6857b753d9130839813b975f8c117da751871679a2c0000000000000001000000000000000000000000000000200ae4da6dd0ba3dba590cdc5b458241d43b05d834be20f06226ed69dfe3f4feff000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000002f0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020fe65c53e177613195349d0b57d67d6a8530a6c6f2c28c83f37722c1cae176d9e0000000000000001000000000000000000000000000000203dd087c43b43947a3e1b3cda6da753c0e5efbfdd346a082fe6eeff1094afbc930000000000000001000000000000000000000000000000202d5491c2b0a236a306dd587e3689fdac906752af96e9c92a11015dee02b355260000000000000001000000000000000000000000000000204c549c0a06011a5b940afdd9c949f7c54668b0449c63f74f64a3a00d1cc2a37800000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002f00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020b56214c9f99991a58d8a45fd96ec715c32120b4c504e2435402810c61337003f000000000000000100000000000000000000000000000020f8877e7a53d670528f552bf338731c7df7e8c9b1c5ac2c935f84bec7a7f67883000000000000000100000000000000000000000000000020762ae3247aa8d6ed9a4528261d063545224ee7eb9564b86d08fa8e6b77499d24000000000000000100000000000000000000000000000020d880ce6b358a2b77330b5a0f9481e98d6528b9d0ad6b480d03501c04a93a647f00000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002f00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000000000000000000020802d97ad198945d3a42f59269f904797a09e41cf6bba201d2f50d48022a658e40000000000000001000000000000000000000000000000209177d86a35497ce00c2f930c7dbac287c3b80e4734e61068ceba8a5083f5f3e10000000000000001000000000000000000000000000000209f8adadaa16ce5cac8b348c7f9490ed007a31dec8fabfc34360ee0a7a7567dad0000000000000001000000000000000000000000000000205fd7cad6c08ee7d72dab067a907a496543f8562d1aff5010789f4fe3432c874200000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e1000000000000002f0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020501814ba67715cbbc290032602beca10dbbaddc03c76b602b55d8ed16cc0ef660000000000000001000000000000000000000000000000201888aca35c605c0aa63a5322f0dbfe7dff46f905fe0d6fbbed9bf0a4ae49a0dc00000000000000010000000000000000000000000000002023ba7ff2b84d2058064e3dd64ff66a518516cb562d103469ed0615bb4c67d3f7000000000000000100000000000000000000000000000020896402e4d3f17887d11d2154920c6bff134c98834a80f987cc702496ef09c196000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000280000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000203fc4f8175b9c92350566386ba4636deeb2ec6d4187f6d0d3208c3db577ee4c1a000000000000000100000000000000010000000000000020c600a084e5647679dce1e61667cd049aa01cd0b29e54cfef6b28350be80914810000000000000001000000000000000100000000000000200ebe305ff48b2729427a6d3d9c605f9d8749d8a7f371875c0845a2841f05d610000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000280000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020c6f1cc07680dcd75a8f53c63f310a6d897c61d167e7cf74e0c15cd99fc146e0f0000000000000001000000000000000100000000000000209fb59ccf252a0568bd152caf34d3269d3a2b9a39857511b0bd86c4af33ce8dee0000000000000001000000000000000100000000000000201cef524c4bbd4352e55a822f72b50f13a0d37a3b4bd840b09474319d06e88b350000000000000001000000000000000000000000000000204c549c0a06011a5b940afdd9c949f7c54668b0449c63f74f64a3a00d1cc2a37800000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002800000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000200669822d3814118c5bf694c1ff7d0ed5355d049614d73f0cd41e47c2ba90a4ec000000000000000100000000000000010000000000000020e967db82093a838375e88444bf31c8b9602b5b9abee7d1014d9faa70e9e2ee07000000000000000100000000000000010000000000000020b65635b650f7751f683d4fdd6f77a7bbbf3914c331798f8c0a5e9b5bdd294ca9000000000000000100000000000000000000000000000020d880ce6b358a2b77330b5a0f9481e98d6528b9d0ad6b480d03501c04a93a647f00000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002800000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020e7576b6112be4e002c520903f76fa89a98aead2ed95573d928ee6c27f6ae8b0b000000000000000100000000000000010000000000000020c126701ba56f4a93107ba6cf51214a089bf26114a1c268096b5827a6c692eb22000000000000000100000000000000010000000000000020f9261c602c28cce1a3d266cbce50544b70ad2373d928eb6befd894a8ffb129540000000000000001000000000000000000000000000000205fd7cad6c08ee7d72dab067a907a496543f8562d1aff5010789f4fe3432c874200000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000280000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d000000000000000600000000000000010000000000000001000000000000002029df8d814e6ad33e7598df99f56ae5a9d1e95069c3ba023194079a911304b748000000000000000100000000000000010000000000000020eb547fc519df191930772af4c7f9a223f448ea9b096d6bb0615a7ccf53da66a3000000000000000100000000000000010000000000000020a9fa262c6bfaa50ee132d4609ab35f935bfd510e97d33e942458c27041a0083a000000000000000100000000000000000000000000000020896402e4d3f17887d11d2154920c6bff134c98834a80f987cc702496ef09c196000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c00000000000000002d0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000000000000000000002053782b5983c3a3f41b87af8901b99235481c920bbe817dc8bb231466583d72b0000000000000000100000000000000010000000000000020953ad815a2963d664f0f467b59bd24c8e0fa06059f422523c2c9cc30e63622ef0000000000000001000000000000000000000000000000200ae4da6dd0ba3dba590cdc5b458241d43b05d834be20f06226ed69dfe3f4feff000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000002d0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000000000000000000203a54c6187a5d2d1d4fdfd7e6d830e00471dc777da45c92c200ff4be715489ec40000000000000001000000000000000100000000000000207bfd1e8b05c7d4db1ddb4abbc4ee4e2047ab1cea71eb4125c60d95dface639b80000000000000001000000000000000000000000000000202d5491c2b0a236a306dd587e3689fdac906752af96e9c92a11015dee02b355260000000000000001000000000000000000000000000000204c549c0a06011a5b940afdd9c949f7c54668b0449c63f74f64a3a00d1cc2a37800000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002d00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020763bf8fd5dbf7e26e508b1c752989720035769ec544fbfa3b5f634db87b0985c0000000000000001000000000000000100000000000000206ed7f1a6c47a44f2b7011b57308b53c7e5c8addfd07d945a9042a02777a833ae000000000000000100000000000000000000000000000020762ae3247aa8d6ed9a4528261d063545224ee7eb9564b86d08fa8e6b77499d24000000000000000100000000000000000000000000000020d880ce6b358a2b77330b5a0f9481e98d6528b9d0ad6b480d03501c04a93a647f00000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002d00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c8000000000000000600000000000000010000000000000000000000000000002020eab707c88c395501020600a1d50b1dc468718756fe508728371c0ffc40a7a2000000000000000100000000000000010000000000000020083bb08400cc00f8741cc5a61d5cd377218c13bf2ad0c114737eb149440507640000000000000001000000000000000000000000000000209f8adadaa16ce5cac8b348c7f9490ed007a31dec8fabfc34360ee0a7a7567dad0000000000000001000000000000000000000000000000205fd7cad6c08ee7d72dab067a907a496543f8562d1aff5010789f4fe3432c874200000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e1000000000000002d0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000000000000000000204ae7f953cf399a07a8ce89e8483573676dadd5736312e4cbbda64a605f0781d6000000000000000100000000000000010000000000000020bc50f558bf1c2801a35e0f3833a1192fa429fc028ec80669603d2c5da81d878f00000000000000010000000000000000000000000000002023ba7ff2b84d2058064e3dd64ff66a518516cb562d103469ed0615bb4c67d3f7000000000000000100000000000000000000000000000020896402e4d3f17887d11d2154920c6bff134c98834a80f987cc702496ef09c196000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000190000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020f878c3196a2404bcd842121562576c7d651583fe9d63c1aaa1b869d205e345230000000000000001000000000000000100000000000000204536f7493e46af7ae74c52f21d137b781ab41b8d1503fa4f2492f216257d0e4700000000000000010000000000000001000000000000002041b447898ab19c91b1dbde93ea50c40354c2647926dd2df1d267edeeb4fa5b900000000000000001000000000000000000000000000000207a1424d413417eb28a018fd1d76958181366ee57c4d59ae0034a29ddbb1d2b590000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000190000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020c4c0ee0f8712b96d147ac05da64c1b99a740846e9a50722ac61b17649b751bff0000000000000001000000000000000100000000000000202aede3564ebfa30e74b8e2011d40a14f2a016492169b85c1f9415a281dbc49f7000000000000000100000000000000010000000000000020376d244ad38898e5a2d4a5d1596faa89190bb6be0021523a316dc31147bdabe8000000000000000100000000000000000000000000000020938375cf40ac56222ab4d00edc1add4f0c4d45658ef352f9c39d534a9202dcf7000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001900000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020c7d221511f5b0778a109fa2e3c1c884ec175c20abd2d834b083b1c7c07e139ce0000000000000001000000000000000100000000000000200b06c28f51eebefba1b90a051ee1ef7a91769619ad2533abf955ef50586e382c0000000000000001000000000000000100000000000000202b1f2b796b4b368a82c2fd19089c52aa941915742b1944326d6efc9a8bedb715000000000000000100000000000000000000000000000020a084e70b3f9ebf137fa0b89422463d8a968230d1e0fbcf139db6e018b78315170000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001900000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c8000000000000000600000000000000010000000000000000000000000000002059065e50b3aaadc6ce1d277772ae8d3d94e018bc51e3ab809332afeafa4587c40000000000000001000000000000000100000000000000207f3073022c338edf973f6c62336af47d02e7ee8395bcd48e00dd7c21c2ed6eef00000000000000010000000000000001000000000000002013f4d1041297765ba5721ab41dc03763741f894140a3affa1cc437f3ed9269ad000000000000000100000000000000000000000000000020ce498e000ddc8371c645a265d4b98546295ae06beeb91fa03885ec7c34dce7f9000000000000000100000000000000000000000000000020f66cbef6ba027ee51a683e2c6bfc0ba5a9c25509bcbd67fc8c6ed57fed75d4ad000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000190000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020dfaa7a61177963231160e33a42fb89948d6fa2b6cda193578f1607317576bd7900000000000000010000000000000001000000000000002004230d91f96402c0e2b32b8591b01d0bf15a0337d50562837b09d42f470657ea000000000000000100000000000000010000000000000020b669e28a8c8f93a11d50fc751d11cbd5c19eef7f4f73ab6849b9e5fb805ced8b0000000000000001000000000000000000000000000000205ef7704fa3778b449f726e5d0a98cf0942526fc336765751838fd6cbb761fb270000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb81659000000000000002e0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020e760e670dc84ddaf2d3fed358b41e7ca6702b40f75477190495c3f1750431a01000000000000000100000000000000000000000000000020295e30ac0c53913c15b9f6857b753d9130839813b975f8c117da751871679a2c0000000000000001000000000000000000000000000000200ae4da6dd0ba3dba590cdc5b458241d43b05d834be20f06226ed69dfe3f4feff000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000002e0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000202837ca4828a06d6714ba1aed20c5dda0f997b58f9124b8e5a758a5c562df69c20000000000000001000000000000000000000000000000203dd087c43b43947a3e1b3cda6da753c0e5efbfdd346a082fe6eeff1094afbc930000000000000001000000000000000000000000000000202d5491c2b0a236a306dd587e3689fdac906752af96e9c92a11015dee02b355260000000000000001000000000000000000000000000000204c549c0a06011a5b940afdd9c949f7c54668b0449c63f74f64a3a00d1cc2a37800000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002e00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000010000000000000020a280f3216bbaa60fbb01b28c2c848a663b42254a4ddd68f524653aad5b86a941000000000000000100000000000000000000000000000020f8877e7a53d670528f552bf338731c7df7e8c9b1c5ac2c935f84bec7a7f67883000000000000000100000000000000000000000000000020762ae3247aa8d6ed9a4528261d063545224ee7eb9564b86d08fa8e6b77499d24000000000000000100000000000000000000000000000020d880ce6b358a2b77330b5a0f9481e98d6528b9d0ad6b480d03501c04a93a647f00000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002e00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020c5b330e2e15eaa59ab88913b737667d66ab6bb9dc5cc33e5efe88ddd9ab441c50000000000000001000000000000000000000000000000209177d86a35497ce00c2f930c7dbac287c3b80e4734e61068ceba8a5083f5f3e10000000000000001000000000000000000000000000000209f8adadaa16ce5cac8b348c7f9490ed007a31dec8fabfc34360ee0a7a7567dad0000000000000001000000000000000000000000000000205fd7cad6c08ee7d72dab067a907a496543f8562d1aff5010789f4fe3432c874200000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e1000000000000002e0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020b049b4767c228add6ed9aca521d8ae0f73f195581c4f3795a498d56516148c5d0000000000000001000000000000000000000000000000201888aca35c605c0aa63a5322f0dbfe7dff46f905fe0d6fbbed9bf0a4ae49a0dc00000000000000010000000000000000000000000000002023ba7ff2b84d2058064e3dd64ff66a518516cb562d103469ed0615bb4c67d3f7000000000000000100000000000000000000000000000020896402e4d3f17887d11d2154920c6bff134c98834a80f987cc702496ef09c196000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000330000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000207344f3e7f6af9883c597d6e1f3a288c3ffc6aceb35435477812a31e3317c741900000000000000010000000000000000000000000000002005bd0da2469f2c21b3a29c3fb9805e1c169b17d94f8f17fb27b467cf42de28db0000000000000001000000000000000100000000000000205f3c867463c166fd9c0125885c51251e20c9b8d44030db7f8c699a0f747c2522000000000000000100000000000000010000000000000020f006cf8352bbf180ccb81999dec2d0377abf32ec1a119242758d07bf00181499000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000330000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020e531ed69121bdf5b18ac52087e7e317b94e4f8c8b4269cef4cc727a80b662a5500000000000000010000000000000000000000000000002065f01400d8c5267b0c9e1b41ef2836adc1616da98100daa5b32b8ba39b374ee10000000000000001000000000000000100000000000000201005d0456ea86f38d81d86687e8f11923a23456f3c2f3ff55d7c8acb9de64d690000000000000001000000000000000100000000000000208d5b321bbfd951f9cb7659d22f534c96ff102f4c76a497617e5abb9dfa82d388000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003300000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000206c87f4016feeab616e7bf0a7df62142470188914fe59e59df595763e4d47b9fe0000000000000001000000000000000000000000000000204c94dd0a0f2cb0cb59dcc9b4beb35fd98efaa2cc92cf08466d21549d33875f98000000000000000100000000000000010000000000000020c777ac306a941e7299543eb8e965674fbfd21d8db21d4e6efb2f426e941de1bf00000000000000010000000000000001000000000000002077140c9519235b46e9281299155f5f67e417ff114e7ade36dfc35a5d9cd2e2d700000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003300000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000000000000000000209c7c6e613712463c1c51f6e2e822dfe9bc4ba090afaf5c8c729901b5787db32c000000000000000100000000000000000000000000000020ab4c3f636a88e514ddaec7c6e1d4c81514983302354e8efc52833d305719ec230000000000000001000000000000000100000000000000208a6064188f59e346913e199ebd880503e24248cdea6f67e70edbb84b538e36bf00000000000000010000000000000001000000000000002048e1d107862aaa17d2844c76f1581f63cd00be4647fb6249784c8e84d204a7d30000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000330000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000000000000000000209b701f655210684798519c7d21d381389c5327f76961549a9e47317288332b210000000000000001000000000000000000000000000000204214f1b616812c5b41ff45c0d2acddfd991317d68de3ff1ed1900ce663f1230e0000000000000001000000000000000100000000000000200c26f3577db6f6fc8ca13505100d7c1f5e90088ce53af1ae45ddb54d2ffe746d00000000000000010000000000000001000000000000002072bbfd71e002ce04de2fac87c41cdb38dc917d8c5386b1ebdd6e02865da280340000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000000000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000201d3d3f661a4d2cfb95d0b26d84d3ea673341d60652986be7bb0cd3a9e45f8d0a000000000000000100000000000000010000000000000020c74fc5b5363c08b2d56ef59ce1523608b22b04f93198fc444fbc86eb42093a0b00000000000000010000000000000001000000000000002049b18f4c7c36a3e31f7aea5854ff3a4295357e9b4683efeb0cc263602c4cd838000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000000000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020aded1c5f214b9e1b47fb9091b38bd2d8074447d80630f16b9e5d2b22d8e2f61e0000000000000001000000000000000100000000000000204e1424e71c26aac3d813020437cec6168eab7a8d75aad7109e865f34f3d82095000000000000000100000000000000010000000000000020c8ae564fce614307d01ae4e7ca514b4d438c025236d2f7c225df0916122c407a000000000000000100000000000000010000000000000020a5ba1e43e43faaed55a5a360b6818e780f5c7442a5977ec37c50292584a00e03000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000000000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb626512000000000000000600000000000000010000000000000001000000000000002034b7760fda4c0db88f24fbf6ad0456b83f2ad05b408d45188023bbb4e06121af000000000000000100000000000000010000000000000020f1a1a812bf619f73c9cbf250be6b6627953604a3e339c59bdccc474788fb370a0000000000000001000000000000000100000000000000202d7e532bdad475f87cde4c2f0d86dfd080e22978cd3c4c8658c88cec2b0257b1000000000000000100000000000000010000000000000020dc0369b2684d24cbf4274ce023a89e3478b29bfaee34efd0a4da1dc660ba45de00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000000000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020bf82e0796dd87762e7cc0dbf651adb2a593869683a0f0e68e62f61a2a42ee67600000000000000010000000000000001000000000000002051cddbbae06815e078a7cb86278880c9717f4dd37fcaae2d67a121881106aa820000000000000001000000000000000100000000000000202fae5685a1fb05d54b1bfdb2cba9f571c9a24db75580e22dffc6988ffc17820d000000000000000100000000000000010000000000000020e40fba18beb7a8bfcd3d0b191d6d10f4e3acec4778b08e3ae3c21ae92483fd86000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000000000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000201d430a616e26a451a9e0aaf7d120da5d3efaf6ff609f161eb7c3a2dd14d2c7e8000000000000000100000000000000010000000000000020365c28a658836edeb78b6dd3b52b7d3d3588d7c226920a4c1a92f410c24d31bd0000000000000001000000000000000100000000000000206ba2588cc21b5cda24b2aa86f1ea326163ccc1d7e3f79cd11177546b0f9520e80000000000000001000000000000000100000000000000205a4b48d2d5c0deec9a967d4659defb7f8c12de581186bfae2c710f30835d378c000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000100000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020c47d7bebc8c15f325d831bf339e2d3309c7c8d22969ec6186bc0568046427bd7000000000000000100000000000000010000000000000020640867ed08a3ecabe4859b1b36a9e35eed961ff22f4ecb3f19f23eafd153979300000000000000010000000000000001000000000000002038c257c4acc7ae148c5c9b4409c82130df8554a30c1e722962697197980c56fb000000000000000100000000000000010000000000000020f158609c6b12d3609bdf1c7797edb538f985fe8ac4171f066b1d7b9c43c7bc3b0000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000100000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000201ca4130b1b432206425cd549ec0a36397fe25e3902fc83e4fc886cd6f1950e7b000000000000000100000000000000010000000000000020630811e108ea35a320a27dbd41803a687d15b60a29050aeca50361d2714bf518000000000000000100000000000000010000000000000020d42e2ebd255e4349a7739a43dd3c719944636248abdb0bced6a610501e96e1b50000000000000001000000000000000100000000000000204dffb3cd723081a5601c700b71267e003c6301f69868c0143c1c7fb7f95e7282000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001000000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000202c428c9c3fa1a53d1b0e7ee50f01da261b77bab05c5f15d68ca27e3ad48349d5000000000000000100000000000000010000000000000020183a34534d82250369c5f2847e701d9341b41f119f4bfea1eb963c8a45731168000000000000000100000000000000010000000000000020fe4fd380a7b985c22fbf7e428d0522af491d32b3707fdee9600cc7816056f1200000000000000001000000000000000100000000000000205d9455d420eacea118c8dd606eeb03972280069211e33523e74b32b8a0a96ea70000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001000000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020985bb7ecbeb86f8f84bef68c141aefd03855e2e908da6ac0106ddcc00e15295d000000000000000100000000000000010000000000000020637b870a99da57ec6dae1de90c1943b37f34d8556acc557a05a65a8915fa9d88000000000000000100000000000000010000000000000020acbb53eff19327fdfe068637b56e56cf2ed3ea11c5ac335cac2a4c9e1b4ba555000000000000000100000000000000010000000000000020770adc9f5a476741bb8349e40e9edfd96156aacd1c6d9e3a586653b654b6aa5b000000000000000100000000000000000000000000000020f66cbef6ba027ee51a683e2c6bfc0ba5a9c25509bcbd67fc8c6ed57fed75d4ad000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000100000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020574ce443b2d1a579a226d2ef9963cddf83ae90ced338ea391881843fc95dddcc00000000000000010000000000000001000000000000002026c0e6ce4bf08b1f0ed800a51064fdf6f1f375dbc00c710881776df737596e59000000000000000100000000000000010000000000000020113e52f83563f3c9a8ca73087daed63db6e020f9b1908dae270f2d864860470b0000000000000001000000000000000100000000000000207558d367d7cb8046d18c333db9b72e09bb6459368f028b50b23b205b8ad03c430000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb81659000000000000001c0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020dc473fbc2982536b3551210ff22dbfb86908bbdebdf4f9fcee59b94ae742f3e7000000000000000100000000000000010000000000000020f09e0551c369e8794e51f609fb64bc262c407f13317ebef64c17a4fb128e2b29000000000000000100000000000000000000000000000020cd05d024922075f0d2191dff6b6b8977913542096c687b1aa6a6880a30f4f1780000000000000001000000000000000000000000000000207a1424d413417eb28a018fd1d76958181366ee57c4d59ae0034a29ddbb1d2b590000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000001c0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020e326c18eb9bc5c22eeb0104ad67db5825445f27758a763e7a15c98afa3c60ee90000000000000001000000000000000100000000000000206f5361d60e69e71d110471fa559e5f9e4f0cacff5c4d21eefb041e57495d1c6b000000000000000100000000000000000000000000000020e216681d6f38da8409d5c77334f0f51de756720aaa028880c59d6a832095ad4f000000000000000100000000000000000000000000000020938375cf40ac56222ab4d00edc1add4f0c4d45658ef352f9c39d534a9202dcf7000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001c00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000010000000000000020b78c2786fd393a8a189ea69596d8d08620268eb4bee8ba8309a80def966a7437000000000000000100000000000000010000000000000020a3471994e86c3ff9f0b757f440b5ded70f1e167a40e6eff28a571f2a79e14df600000000000000010000000000000000000000000000002053b3233efca5252e2055e75028fefee3391d25eb106840c102b53e90d3d1fdf6000000000000000100000000000000000000000000000020a084e70b3f9ebf137fa0b89422463d8a968230d1e0fbcf139db6e018b78315170000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001c00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000100000000000000208979eb386fe5abfa278825db28a10963b3073757f7728b555d9e144460a0efe800000000000000010000000000000001000000000000002000269e3b9f38ca4fe7f736b5a97e648fa365df34c5db35b02085b50be90a5010000000000000000100000000000000000000000000000020b7d7c4fcec9b03c74f701ed9b4eedf7ec3386233c472d6ae64f7cb0ca1f7a448000000000000000100000000000000000000000000000020ce498e000ddc8371c645a265d4b98546295ae06beeb91fa03885ec7c34dce7f9000000000000000100000000000000000000000000000020f66cbef6ba027ee51a683e2c6bfc0ba5a9c25509bcbd67fc8c6ed57fed75d4ad000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e000000000000001c0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020b2669c955a48dabaf2c213befede7e967ab990f1c9b03bd7a65450003d408508000000000000000100000000000000010000000000000020fb06fb7152ac1f9d2222ce222624aa555ffa17371dfad3a80a1bf178befe1e6b0000000000000001000000000000000000000000000000207fe3562c7d01ca88eef4c66c817964ae9239a6df889ab475368bf430de96cdb20000000000000001000000000000000000000000000000205ef7704fa3778b449f726e5d0a98cf0942526fc336765751838fd6cbb761fb270000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb81659000000000000002b0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000202cc0a05107243620d3b647e265e82b8acebe905524da6da10e8bac593830a70900000000000000010000000000000000000000000000002064f12c9571923baec5fcc14481a7dfea3e02c1bfc8c062111edc34018395b7160000000000000001000000000000000100000000000000200ebe305ff48b2729427a6d3d9c605f9d8749d8a7f371875c0845a2841f05d610000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000002b0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020449a30f4fedf230c522be5fd070605f8c9841aa6e05ecc8c29e9c0fdcb6e0734000000000000000100000000000000000000000000000020372b730b0fbf5e9e53c6d82f9ea174dfa93e2b45f3d0604b1487c24ff8cbe32c0000000000000001000000000000000100000000000000201cef524c4bbd4352e55a822f72b50f13a0d37a3b4bd840b09474319d06e88b350000000000000001000000000000000000000000000000204c549c0a06011a5b940afdd9c949f7c54668b0449c63f74f64a3a00d1cc2a37800000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002b00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020949208691c206267cc3f83f0c03ce97b7123fb6e5291ad80e84b0246ebcd7ca0000000000000000100000000000000000000000000000020c08b6a80530ce28ab631eb2d126ffb2acdf90182e03c3ef66853b7e4fb457d93000000000000000100000000000000010000000000000020b65635b650f7751f683d4fdd6f77a7bbbf3914c331798f8c0a5e9b5bdd294ca9000000000000000100000000000000000000000000000020d880ce6b358a2b77330b5a0f9481e98d6528b9d0ad6b480d03501c04a93a647f00000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002b00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000000000000000000205cfe7df8215e8200a55cc42f7b8576f75b382e2f7b90ebb17c11fb154b32750f00000000000000010000000000000000000000000000002013c394365ef4ea229b732c1f74b1cdefeb9d0d67b4660f421b2359d2cdedd3df000000000000000100000000000000010000000000000020f9261c602c28cce1a3d266cbce50544b70ad2373d928eb6befd894a8ffb129540000000000000001000000000000000000000000000000205fd7cad6c08ee7d72dab067a907a496543f8562d1aff5010789f4fe3432c874200000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e1000000000000002b0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000000000000000000206e80d8e8df8fcc98c25ad548d5465c15309cc9d0d3e0bd25f4378ce44b8b29570000000000000001000000000000000000000000000000200892a3f42888ca3862bea9ccf078bd63e0266f46f3fe49a9cca5cb8700d0934d000000000000000100000000000000010000000000000020a9fa262c6bfaa50ee132d4609ab35f935bfd510e97d33e942458c27041a0083a000000000000000100000000000000000000000000000020896402e4d3f17887d11d2154920c6bff134c98834a80f987cc702496ef09c196000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000000000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000201d3d3f661a4d2cfb95d0b26d84d3ea673341d60652986be7bb0cd3a9e45f8d0a000000000000000100000000000000010000000000000020c74fc5b5363c08b2d56ef59ce1523608b22b04f93198fc444fbc86eb42093a0b00000000000000010000000000000001000000000000002049b18f4c7c36a3e31f7aea5854ff3a4295357e9b4683efeb0cc263602c4cd838000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000000000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020aded1c5f214b9e1b47fb9091b38bd2d8074447d80630f16b9e5d2b22d8e2f61e0000000000000001000000000000000100000000000000204e1424e71c26aac3d813020437cec6168eab7a8d75aad7109e865f34f3d82095000000000000000100000000000000010000000000000020c8ae564fce614307d01ae4e7ca514b4d438c025236d2f7c225df0916122c407a000000000000000100000000000000010000000000000020a5ba1e43e43faaed55a5a360b6818e780f5c7442a5977ec37c50292584a00e03000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000000000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb626512000000000000000600000000000000010000000000000001000000000000002034b7760fda4c0db88f24fbf6ad0456b83f2ad05b408d45188023bbb4e06121af000000000000000100000000000000010000000000000020f1a1a812bf619f73c9cbf250be6b6627953604a3e339c59bdccc474788fb370a0000000000000001000000000000000100000000000000202d7e532bdad475f87cde4c2f0d86dfd080e22978cd3c4c8658c88cec2b0257b1000000000000000100000000000000010000000000000020dc0369b2684d24cbf4274ce023a89e3478b29bfaee34efd0a4da1dc660ba45de00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000000000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020bf82e0796dd87762e7cc0dbf651adb2a593869683a0f0e68e62f61a2a42ee67600000000000000010000000000000001000000000000002051cddbbae06815e078a7cb86278880c9717f4dd37fcaae2d67a121881106aa820000000000000001000000000000000100000000000000202fae5685a1fb05d54b1bfdb2cba9f571c9a24db75580e22dffc6988ffc17820d000000000000000100000000000000010000000000000020e40fba18beb7a8bfcd3d0b191d6d10f4e3acec4778b08e3ae3c21ae92483fd86000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000000000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000201d430a616e26a451a9e0aaf7d120da5d3efaf6ff609f161eb7c3a2dd14d2c7e8000000000000000100000000000000010000000000000020365c28a658836edeb78b6dd3b52b7d3d3588d7c226920a4c1a92f410c24d31bd0000000000000001000000000000000100000000000000206ba2588cc21b5cda24b2aa86f1ea326163ccc1d7e3f79cd11177546b0f9520e80000000000000001000000000000000100000000000000205a4b48d2d5c0deec9a967d4659defb7f8c12de581186bfae2c710f30835d378c000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000030000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000206ff0195a134c259fe7543028850c1e5cad27da7360a4eaae4414e0bfdccdba62000000000000000100000000000000000000000000000020bc0e1e4d069a85667d831c6131bf23b47a10f808276f2d639351a2b29c6601f100000000000000010000000000000001000000000000002049b18f4c7c36a3e31f7aea5854ff3a4295357e9b4683efeb0cc263602c4cd838000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000030000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e000000000000000600000000000000010000000000000000000000000000002086459a0212426dc2ac2a376c2d40c3d2b8ccb49ccb264ff41e000e8323be00dc000000000000000100000000000000000000000000000020dd758e7e903cea5d2b8d56cb7ec81903a5d208516bc65446aaab10a4c88881f6000000000000000100000000000000010000000000000020c8ae564fce614307d01ae4e7ca514b4d438c025236d2f7c225df0916122c407a000000000000000100000000000000010000000000000020a5ba1e43e43faaed55a5a360b6818e780f5c7442a5977ec37c50292584a00e03000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000300000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000202970d043e5027eaed94acbe63e1917b6a011fdd08a740ef6c1e0bb3c348c406d000000000000000100000000000000000000000000000020e921a3304310ce0c4ea3ff193bc2b8d3e37939557d88c4c9d8d9aa74dade5fce0000000000000001000000000000000100000000000000202d7e532bdad475f87cde4c2f0d86dfd080e22978cd3c4c8658c88cec2b0257b1000000000000000100000000000000010000000000000020dc0369b2684d24cbf4274ce023a89e3478b29bfaee34efd0a4da1dc660ba45de00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000300000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000000000000000000204a7773cd46d18c41025b8d2593ba8eddbf921c9c7e1ebc7309af39ba3f8340cf0000000000000001000000000000000000000000000000201dedea2ea2a45095babafaaceb602b439a7a8de613dab9659c28452f2b43ba230000000000000001000000000000000100000000000000202fae5685a1fb05d54b1bfdb2cba9f571c9a24db75580e22dffc6988ffc17820d000000000000000100000000000000010000000000000020e40fba18beb7a8bfcd3d0b191d6d10f4e3acec4778b08e3ae3c21ae92483fd86000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000030000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020058deca8926462de969a8f6c7186d43908f874ed995eb7603a319ae7aa8ff440000000000000000100000000000000000000000000000020898c87da14d35ffd206c40c659830a17aafcb7a087947604f6abe545e28b58840000000000000001000000000000000100000000000000206ba2588cc21b5cda24b2aa86f1ea326163ccc1d7e3f79cd11177546b0f9520e80000000000000001000000000000000100000000000000205a4b48d2d5c0deec9a967d4659defb7f8c12de581186bfae2c710f30835d378c000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000140000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000201db39b2b58f01b4266a2f3a089f4de0cf8c9d9cc1a52eaba7802162bba95ead2000000000000000100000000000000010000000000000020934ab4c6e53dcf48d451f6ed7e4af86b758dd8dba6533f4175725e2e5845afc500000000000000010000000000000000000000000000002026fce9aa21f1ef53b559859e81595b7ea9f4a7505a8a6c162b86994251034ce3000000000000000100000000000000010000000000000020f158609c6b12d3609bdf1c7797edb538f985fe8ac4171f066b1d7b9c43c7bc3b0000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000140000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020f02c12c9e1987155b3dfab880a6c3fd179a7c43b36e4b5ef01e1660bacefc47f0000000000000001000000000000000100000000000000202fdbde1dac25caf98829f59666c2f0534d2832bdb689d8ad96cbb9a3dbd4d45f0000000000000001000000000000000000000000000000205194f6462193600d656db86b96325bf516174c3105f29544d28f3b649cc7fa4c0000000000000001000000000000000100000000000000204dffb3cd723081a5601c700b71267e003c6301f69868c0143c1c7fb7f95e7282000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001400000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb626512000000000000000600000000000000010000000000000001000000000000002060c1a1b58116c922c95ebd362b2aca38239b074ba70838c441c7e00fed0a95e9000000000000000100000000000000010000000000000020114537cddbda837705b4879cd66f5f4d256930dfee3834780cb134d8960e1304000000000000000100000000000000000000000000000020b4e0bb7d9649c1fbb4614e3f293bccd257330f04e0c3c1c27c3a9a4dcdec30130000000000000001000000000000000100000000000000205d9455d420eacea118c8dd606eeb03972280069211e33523e74b32b8a0a96ea70000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001400000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000100000000000000203f124e95b7dec0ff8f7a86ae1aaff6955eea438f36cae6f84a09579c75e2134700000000000000010000000000000001000000000000002011099e538c8737a24d756c6724727c5da6d771131318d85b8986cd3bc79b592b000000000000000100000000000000000000000000000020c28743b9fb456f5dab01de38dce8d1e72a393e786e47b640f11ef5dac00847bb000000000000000100000000000000010000000000000020770adc9f5a476741bb8349e40e9edfd96156aacd1c6d9e3a586653b654b6aa5b000000000000000100000000000000000000000000000020f66cbef6ba027ee51a683e2c6bfc0ba5a9c25509bcbd67fc8c6ed57fed75d4ad000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000140000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020c8bfe267f4915fec41dd5cdc2991233c6867d80f482a2f5e54923aa7e593286d000000000000000100000000000000010000000000000020a8ed275fa0c7c748c26664fcd0da42650d5f6d40a8b66187b846df67bdc2a97f000000000000000100000000000000000000000000000020c9fa3b6551025a0b0a3ab22e52aa56603723150da92dcef931270f46982c5f720000000000000001000000000000000100000000000000207558d367d7cb8046d18c333db9b72e09bb6459368f028b50b23b205b8ad03c430000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000140000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000201db39b2b58f01b4266a2f3a089f4de0cf8c9d9cc1a52eaba7802162bba95ead2000000000000000100000000000000010000000000000020934ab4c6e53dcf48d451f6ed7e4af86b758dd8dba6533f4175725e2e5845afc500000000000000010000000000000000000000000000002026fce9aa21f1ef53b559859e81595b7ea9f4a7505a8a6c162b86994251034ce3000000000000000100000000000000010000000000000020f158609c6b12d3609bdf1c7797edb538f985fe8ac4171f066b1d7b9c43c7bc3b0000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000140000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020f02c12c9e1987155b3dfab880a6c3fd179a7c43b36e4b5ef01e1660bacefc47f0000000000000001000000000000000100000000000000202fdbde1dac25caf98829f59666c2f0534d2832bdb689d8ad96cbb9a3dbd4d45f0000000000000001000000000000000000000000000000205194f6462193600d656db86b96325bf516174c3105f29544d28f3b649cc7fa4c0000000000000001000000000000000100000000000000204dffb3cd723081a5601c700b71267e003c6301f69868c0143c1c7fb7f95e7282000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001400000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb626512000000000000000600000000000000010000000000000001000000000000002060c1a1b58116c922c95ebd362b2aca38239b074ba70838c441c7e00fed0a95e9000000000000000100000000000000010000000000000020114537cddbda837705b4879cd66f5f4d256930dfee3834780cb134d8960e1304000000000000000100000000000000000000000000000020b4e0bb7d9649c1fbb4614e3f293bccd257330f04e0c3c1c27c3a9a4dcdec30130000000000000001000000000000000100000000000000205d9455d420eacea118c8dd606eeb03972280069211e33523e74b32b8a0a96ea70000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001400000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000100000000000000203f124e95b7dec0ff8f7a86ae1aaff6955eea438f36cae6f84a09579c75e2134700000000000000010000000000000001000000000000002011099e538c8737a24d756c6724727c5da6d771131318d85b8986cd3bc79b592b000000000000000100000000000000000000000000000020c28743b9fb456f5dab01de38dce8d1e72a393e786e47b640f11ef5dac00847bb000000000000000100000000000000010000000000000020770adc9f5a476741bb8349e40e9edfd96156aacd1c6d9e3a586653b654b6aa5b000000000000000100000000000000000000000000000020f66cbef6ba027ee51a683e2c6bfc0ba5a9c25509bcbd67fc8c6ed57fed75d4ad000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000140000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020c8bfe267f4915fec41dd5cdc2991233c6867d80f482a2f5e54923aa7e593286d000000000000000100000000000000010000000000000020a8ed275fa0c7c748c26664fcd0da42650d5f6d40a8b66187b846df67bdc2a97f000000000000000100000000000000000000000000000020c9fa3b6551025a0b0a3ab22e52aa56603723150da92dcef931270f46982c5f720000000000000001000000000000000100000000000000207558d367d7cb8046d18c333db9b72e09bb6459368f028b50b23b205b8ad03c430000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000010000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000207a810149b56beb7c711c05676c1721fd4595513d55341729b655fdf6bc7c6e9d000000000000000100000000000000010000000000000020c74fc5b5363c08b2d56ef59ce1523608b22b04f93198fc444fbc86eb42093a0b00000000000000010000000000000001000000000000002049b18f4c7c36a3e31f7aea5854ff3a4295357e9b4683efeb0cc263602c4cd838000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000010000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020756e52a4d940aed4b19471722db1b0f36cb3a58e6645651ae95985d0859986fe0000000000000001000000000000000100000000000000204e1424e71c26aac3d813020437cec6168eab7a8d75aad7109e865f34f3d82095000000000000000100000000000000010000000000000020c8ae564fce614307d01ae4e7ca514b4d438c025236d2f7c225df0916122c407a000000000000000100000000000000010000000000000020a5ba1e43e43faaed55a5a360b6818e780f5c7442a5977ec37c50292584a00e03000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000100000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020b2b00908d9b736c01784519b0884f9d47ad5d0521fb013eadc54c72234e9a0cf000000000000000100000000000000010000000000000020f1a1a812bf619f73c9cbf250be6b6627953604a3e339c59bdccc474788fb370a0000000000000001000000000000000100000000000000202d7e532bdad475f87cde4c2f0d86dfd080e22978cd3c4c8658c88cec2b0257b1000000000000000100000000000000010000000000000020dc0369b2684d24cbf4274ce023a89e3478b29bfaee34efd0a4da1dc660ba45de00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000100000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000000000000000000202d703b0f2dac82babade787a44c24dee732455802079b3585a1954c0d9f0bab600000000000000010000000000000001000000000000002051cddbbae06815e078a7cb86278880c9717f4dd37fcaae2d67a121881106aa820000000000000001000000000000000100000000000000202fae5685a1fb05d54b1bfdb2cba9f571c9a24db75580e22dffc6988ffc17820d000000000000000100000000000000010000000000000020e40fba18beb7a8bfcd3d0b191d6d10f4e3acec4778b08e3ae3c21ae92483fd86000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000010000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020c015d0794461e01805baa7f6791e97f3676505ee9a4e0a5e97308682ebdb2af7000000000000000100000000000000010000000000000020365c28a658836edeb78b6dd3b52b7d3d3588d7c226920a4c1a92f410c24d31bd0000000000000001000000000000000100000000000000206ba2588cc21b5cda24b2aa86f1ea326163ccc1d7e3f79cd11177546b0f9520e80000000000000001000000000000000100000000000000205a4b48d2d5c0deec9a967d4659defb7f8c12de581186bfae2c710f30835d378c000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000100000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020c47d7bebc8c15f325d831bf339e2d3309c7c8d22969ec6186bc0568046427bd7000000000000000100000000000000010000000000000020640867ed08a3ecabe4859b1b36a9e35eed961ff22f4ecb3f19f23eafd153979300000000000000010000000000000001000000000000002038c257c4acc7ae148c5c9b4409c82130df8554a30c1e722962697197980c56fb000000000000000100000000000000010000000000000020f158609c6b12d3609bdf1c7797edb538f985fe8ac4171f066b1d7b9c43c7bc3b0000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000100000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000201ca4130b1b432206425cd549ec0a36397fe25e3902fc83e4fc886cd6f1950e7b000000000000000100000000000000010000000000000020630811e108ea35a320a27dbd41803a687d15b60a29050aeca50361d2714bf518000000000000000100000000000000010000000000000020d42e2ebd255e4349a7739a43dd3c719944636248abdb0bced6a610501e96e1b50000000000000001000000000000000100000000000000204dffb3cd723081a5601c700b71267e003c6301f69868c0143c1c7fb7f95e7282000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001000000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000202c428c9c3fa1a53d1b0e7ee50f01da261b77bab05c5f15d68ca27e3ad48349d5000000000000000100000000000000010000000000000020183a34534d82250369c5f2847e701d9341b41f119f4bfea1eb963c8a45731168000000000000000100000000000000010000000000000020fe4fd380a7b985c22fbf7e428d0522af491d32b3707fdee9600cc7816056f1200000000000000001000000000000000100000000000000205d9455d420eacea118c8dd606eeb03972280069211e33523e74b32b8a0a96ea70000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001000000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020985bb7ecbeb86f8f84bef68c141aefd03855e2e908da6ac0106ddcc00e15295d000000000000000100000000000000010000000000000020637b870a99da57ec6dae1de90c1943b37f34d8556acc557a05a65a8915fa9d88000000000000000100000000000000010000000000000020acbb53eff19327fdfe068637b56e56cf2ed3ea11c5ac335cac2a4c9e1b4ba555000000000000000100000000000000010000000000000020770adc9f5a476741bb8349e40e9edfd96156aacd1c6d9e3a586653b654b6aa5b000000000000000100000000000000000000000000000020f66cbef6ba027ee51a683e2c6bfc0ba5a9c25509bcbd67fc8c6ed57fed75d4ad000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000100000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020574ce443b2d1a579a226d2ef9963cddf83ae90ced338ea391881843fc95dddcc00000000000000010000000000000001000000000000002026c0e6ce4bf08b1f0ed800a51064fdf6f1f375dbc00c710881776df737596e59000000000000000100000000000000010000000000000020113e52f83563f3c9a8ca73087daed63db6e020f9b1908dae270f2d864860470b0000000000000001000000000000000100000000000000207558d367d7cb8046d18c333db9b72e09bb6459368f028b50b23b205b8ad03c430000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000000000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000201d3d3f661a4d2cfb95d0b26d84d3ea673341d60652986be7bb0cd3a9e45f8d0a000000000000000100000000000000010000000000000020c74fc5b5363c08b2d56ef59ce1523608b22b04f93198fc444fbc86eb42093a0b00000000000000010000000000000001000000000000002049b18f4c7c36a3e31f7aea5854ff3a4295357e9b4683efeb0cc263602c4cd838000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000000000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020aded1c5f214b9e1b47fb9091b38bd2d8074447d80630f16b9e5d2b22d8e2f61e0000000000000001000000000000000100000000000000204e1424e71c26aac3d813020437cec6168eab7a8d75aad7109e865f34f3d82095000000000000000100000000000000010000000000000020c8ae564fce614307d01ae4e7ca514b4d438c025236d2f7c225df0916122c407a000000000000000100000000000000010000000000000020a5ba1e43e43faaed55a5a360b6818e780f5c7442a5977ec37c50292584a00e03000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000000000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb626512000000000000000600000000000000010000000000000001000000000000002034b7760fda4c0db88f24fbf6ad0456b83f2ad05b408d45188023bbb4e06121af000000000000000100000000000000010000000000000020f1a1a812bf619f73c9cbf250be6b6627953604a3e339c59bdccc474788fb370a0000000000000001000000000000000100000000000000202d7e532bdad475f87cde4c2f0d86dfd080e22978cd3c4c8658c88cec2b0257b1000000000000000100000000000000010000000000000020dc0369b2684d24cbf4274ce023a89e3478b29bfaee34efd0a4da1dc660ba45de00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000000000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020bf82e0796dd87762e7cc0dbf651adb2a593869683a0f0e68e62f61a2a42ee67600000000000000010000000000000001000000000000002051cddbbae06815e078a7cb86278880c9717f4dd37fcaae2d67a121881106aa820000000000000001000000000000000100000000000000202fae5685a1fb05d54b1bfdb2cba9f571c9a24db75580e22dffc6988ffc17820d000000000000000100000000000000010000000000000020e40fba18beb7a8bfcd3d0b191d6d10f4e3acec4778b08e3ae3c21ae92483fd86000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000000000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000201d430a616e26a451a9e0aaf7d120da5d3efaf6ff609f161eb7c3a2dd14d2c7e8000000000000000100000000000000010000000000000020365c28a658836edeb78b6dd3b52b7d3d3588d7c226920a4c1a92f410c24d31bd0000000000000001000000000000000100000000000000206ba2588cc21b5cda24b2aa86f1ea326163ccc1d7e3f79cd11177546b0f9520e80000000000000001000000000000000100000000000000205a4b48d2d5c0deec9a967d4659defb7f8c12de581186bfae2c710f30835d378c000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000030000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000206ff0195a134c259fe7543028850c1e5cad27da7360a4eaae4414e0bfdccdba62000000000000000100000000000000000000000000000020bc0e1e4d069a85667d831c6131bf23b47a10f808276f2d639351a2b29c6601f100000000000000010000000000000001000000000000002049b18f4c7c36a3e31f7aea5854ff3a4295357e9b4683efeb0cc263602c4cd838000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000030000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e000000000000000600000000000000010000000000000000000000000000002086459a0212426dc2ac2a376c2d40c3d2b8ccb49ccb264ff41e000e8323be00dc000000000000000100000000000000000000000000000020dd758e7e903cea5d2b8d56cb7ec81903a5d208516bc65446aaab10a4c88881f6000000000000000100000000000000010000000000000020c8ae564fce614307d01ae4e7ca514b4d438c025236d2f7c225df0916122c407a000000000000000100000000000000010000000000000020a5ba1e43e43faaed55a5a360b6818e780f5c7442a5977ec37c50292584a00e03000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000300000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000202970d043e5027eaed94acbe63e1917b6a011fdd08a740ef6c1e0bb3c348c406d000000000000000100000000000000000000000000000020e921a3304310ce0c4ea3ff193bc2b8d3e37939557d88c4c9d8d9aa74dade5fce0000000000000001000000000000000100000000000000202d7e532bdad475f87cde4c2f0d86dfd080e22978cd3c4c8658c88cec2b0257b1000000000000000100000000000000010000000000000020dc0369b2684d24cbf4274ce023a89e3478b29bfaee34efd0a4da1dc660ba45de00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000300000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000000000000000000204a7773cd46d18c41025b8d2593ba8eddbf921c9c7e1ebc7309af39ba3f8340cf0000000000000001000000000000000000000000000000201dedea2ea2a45095babafaaceb602b439a7a8de613dab9659c28452f2b43ba230000000000000001000000000000000100000000000000202fae5685a1fb05d54b1bfdb2cba9f571c9a24db75580e22dffc6988ffc17820d000000000000000100000000000000010000000000000020e40fba18beb7a8bfcd3d0b191d6d10f4e3acec4778b08e3ae3c21ae92483fd86000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000030000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020058deca8926462de969a8f6c7186d43908f874ed995eb7603a319ae7aa8ff440000000000000000100000000000000000000000000000020898c87da14d35ffd206c40c659830a17aafcb7a087947604f6abe545e28b58840000000000000001000000000000000100000000000000206ba2588cc21b5cda24b2aa86f1ea326163ccc1d7e3f79cd11177546b0f9520e80000000000000001000000000000000100000000000000205a4b48d2d5c0deec9a967d4659defb7f8c12de581186bfae2c710f30835d378c000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb81659000000000000000e0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000207b45a6f74d21671255910e2383548d6998e7c1bc14666e7c2deb215ce2aa87d5000000000000000100000000000000000000000000000020b173e65d659cc1f471d2922de643652b703159ad657dfddbb87c03928e9ae2e9000000000000000100000000000000000000000000000020266533c386eaecf62505c82a33fc748ed3dfb0dd1f1c3b6ef1c350f30907840f000000000000000100000000000000000000000000000020a07353c5029eac2f5fb14b7aaa839b9ff2b01dd6feeb51c341820462ab766306000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000000e0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000208e8ff8b382716bdeb251c5b8b6f713714671db47dcfcdd7f94b1a3a588a0e7200000000000000001000000000000000000000000000000200ec2f1acb3815310ab25abd524869226b606f750b7f8740504796e125d37e5a70000000000000001000000000000000000000000000000203e730a9762014a0bc462be90ae606e5d47c72eb18f70e7e52e6fdbf0e6f0ca51000000000000000100000000000000000000000000000020a45ee5473875579efd498bb9c2b6715752587f3d8b2592b454ecfaa7a4333af7000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000e00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000010000000000000020304cfdda91b4fa28817368de7b16305b52d500aa9ec49ed0d0091a8eb1ab14000000000000000001000000000000000000000000000000203518b558a475690b7827b1de96f55519d9245f9117ab4d6bd433dc371d07a1570000000000000001000000000000000000000000000000200f6629916e8ea9140c1e5fe82516b014e06c6a7ffb9a27dbe8073629cf7bcfd300000000000000010000000000000000000000000000002017851b1e9a70cbcc32eb47f7ecfae668e5855348fa541f9cd9cc78455c2f52ed00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000e00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020cfcef89819fde19362c6b0890aade91cf4e79a14651647b6b74eba7921ac556a000000000000000100000000000000000000000000000020ec0426330c65734ade67d296a589bad25e2db729a351d7658be53ef6a7fb88f800000000000000010000000000000000000000000000002021e77df31f1eff95861984415a96b4b3e971e343430cde7965c4ffcd12acfcf9000000000000000100000000000000000000000000000020dab612d00eddc0f70596df141a7d854a89a2e881b62296a42c239a68553568e5000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e000000000000000e0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d000000000000000600000000000000010000000000000001000000000000002065d62fb8cce38d231801558e212c8ad5ff555832c7a008975af4a04fa19a3fe2000000000000000100000000000000000000000000000020046adb4ccc3450e7cbbdce1e0e6f6b3e5d17259cae89e17246f83d54dd8edd200000000000000001000000000000000000000000000000204b3a8c95985e02c1091d8b74e359262a94d60b3baac08c1afc3d4c34b039a42b000000000000000100000000000000000000000000000020dd7d0f921f70b1c400e2053b21a89931a0d729e3164966f8cdf0a44bdd836801000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000390000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020f5f51df4455ffd83739dfaccef923a70df7a7cf5ea75b0be8ac453ab1ea59cd8000000000000000100000000000000010000000000000020314e9a848ea1d25911258d74b19f092dd444faf4da08b8c00a4f09adb9d4c623000000000000000100000000000000010000000000000020f8aa5e6a5b89d4a39d02bfe4f6c3c38deda3ec6df5ade3707863ea2453f03b73000000000000000100000000000000000000000000000020228ad46578c60a8ae293c5203eb65e05045bb3651cc7f9dca5fdd52a9c021f9f000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000390000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020c0be60ecb9302afcaf7e0974c2439749f493468a83262da26a96f1cc4c55cc73000000000000000100000000000000010000000000000020d409436a38cce955294f3fbb27f4d65e7100e98f4d77022a741a6e99195a3afd0000000000000001000000000000000100000000000000206d13fd38b84ca4e30cf7ae1f472014bbebd3d7449bae674ad6a36fae582015a8000000000000000100000000000000000000000000000020d3fe0ac3f0592a168395476738f2d379d0581dd02807271399e479432d094ace000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003900000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000205ac05e975b42062c31f9ed21b3fe8a6ddc0b04176c23fbf2924ac02c9a0be9e70000000000000001000000000000000100000000000000206140589f65135d68e263ae292fc0c763647ece71ba96e1bb1950b05093e479eb000000000000000100000000000000010000000000000020b6e03aa8283e3b21b7e5347673309cfecce4aa3d8d546f0c5e5fbac4333ddb46000000000000000100000000000000000000000000000020762aa6b8eaa622a60e5d82075304926867e1bfd72e6c9bc93d7ed5c083f0de9d00000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003900000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000000000000000000020a1d50e36dcacbeab3151583c0a0de6fcf3b158bca938c33d17bc65105aa4836e00000000000000010000000000000001000000000000002025e3c91b984175d866c1a7a0ab532b735a2322b380d5176f3f2898cdf3415d9f000000000000000100000000000000010000000000000020eb8e2038c836a712421ce8263fd03d719840bae9cbc574a061e776d5ef3f390800000000000000010000000000000000000000000000002000a85bf2f2d421229c03bce75acc24a6f0df564cb379ef0e908c83449ac1caf40000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000390000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020741795e4cfecca0b0fcd745a3aa59aa1b3c46d8f74bb8a06128fbf82dc802df80000000000000001000000000000000100000000000000204759d348b50c669646f5f52d2f8caba0a0a3c3f6941e016904bddc6b141451910000000000000001000000000000000100000000000000200e45b6073a5229fe074383c2f531128eda5ffeefe8fde89eb48d7aa45a77a0f5000000000000000100000000000000000000000000000020e275f0cac8a965b7c2d52bccf2fc2a08ba897eccce8ac56d94090bd934b9477a0000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000050000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020df632d8f7473aa2a266c94e0516913189d640957a4f03bdfca986886fba478de000000000000000100000000000000010000000000000020358c6702aa7ce3c8bdcd46a395295b533449972ac93e65796c809d3843af3e0a0000000000000001000000000000000000000000000000205653a7aef6c658c2fe00a9e102931ec0732cfb210b3c0f9786685131d83170b8000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000050000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000000000000000000208b5e31b3b9693fd99f4af22f146c47a96be5f96f6e2d1de7723eb81b05ab4517000000000000000100000000000000010000000000000020d8a894c95f18b89fc6b1966cca0468fb346cb33bd7ed5949846cd49fadfb28c5000000000000000100000000000000000000000000000020dbb74f6060a2f8daea889924e7610165d94588183449ef4022cf18b3bdaaf8d4000000000000000100000000000000010000000000000020a5ba1e43e43faaed55a5a360b6818e780f5c7442a5977ec37c50292584a00e03000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000500000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020a56fecf58a1a4c072cb8cf67dd9e508770f735536f8cd2a7c1e1ef73333f32730000000000000001000000000000000100000000000000203d0c857c0178a4e206fc089efb3766ddb437e7a682bbeb9802198aa092a8cc08000000000000000100000000000000000000000000000020c358e6ecb6ab0ba0349b872be0aacb00d8660c507286f1680572dd7de7bbdb46000000000000000100000000000000010000000000000020dc0369b2684d24cbf4274ce023a89e3478b29bfaee34efd0a4da1dc660ba45de00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000500000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000000000000000000020763aab24ec6f8139b22cd47151b3ee9984aecfd01fa36f684224a9c9f86d1cd80000000000000001000000000000000100000000000000201c7a36516e9a052930373dcef0ce273c7649c024c7dd25a36bc87adf716bf4e800000000000000010000000000000000000000000000002017c85f2591fe6da29d118df27a1aef7ced0fb1a2b85b06c19337c12c92edb9cf000000000000000100000000000000010000000000000020e40fba18beb7a8bfcd3d0b191d6d10f4e3acec4778b08e3ae3c21ae92483fd86000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000050000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020686d0a06f4ae390f0f7c009a298fc5272f1d751bfc23c567191f5f4bf85d9d6f0000000000000001000000000000000100000000000000202ed66359469b6c278e6162debbe51b6122cbf7aa0d285a925131c0f1651813ad000000000000000100000000000000000000000000000020dea113f87fef53166cf17cc40d78ddf07d9d08926378c792877f7ff4d200a8ed0000000000000001000000000000000100000000000000205a4b48d2d5c0deec9a967d4659defb7f8c12de581186bfae2c710f30835d378c000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000120000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020ab63dfd21d91db64c30c6ff03a0ac64ef7387ace22e915709bee4b1cce4734ac00000000000000010000000000000000000000000000002077c77d7b993f04ae31fa6b6da7dff3c353004c11a049302a478e5dac04d508cf00000000000000010000000000000001000000000000002038c257c4acc7ae148c5c9b4409c82130df8554a30c1e722962697197980c56fb000000000000000100000000000000010000000000000020f158609c6b12d3609bdf1c7797edb538f985fe8ac4171f066b1d7b9c43c7bc3b0000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000120000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e000000000000000600000000000000010000000000000001000000000000002046817fed75d4f02d731e97cf463418460dc149d4119eb395174cdc29bc56e05c000000000000000100000000000000000000000000000020410a9806148029c00be1c6575ce39cab980947f62d7b8c905215b520e160aa17000000000000000100000000000000010000000000000020d42e2ebd255e4349a7739a43dd3c719944636248abdb0bced6a610501e96e1b50000000000000001000000000000000100000000000000204dffb3cd723081a5601c700b71267e003c6301f69868c0143c1c7fb7f95e7282000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001200000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000010000000000000020e494797516182db07045c44685dc909e4d27f6cb9bb45a2bd77f46ca3361da950000000000000001000000000000000000000000000000200d8eb352cc26ae30ac8e735bd07c4afc629f8b935a6281b4a5d795206646f134000000000000000100000000000000010000000000000020fe4fd380a7b985c22fbf7e428d0522af491d32b3707fdee9600cc7816056f1200000000000000001000000000000000100000000000000205d9455d420eacea118c8dd606eeb03972280069211e33523e74b32b8a0a96ea70000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001200000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c8000000000000000600000000000000010000000000000001000000000000002015e5806849295b2da45a3fd8ce7ab23c7fd55ea442e04c344f9472f75c13c6540000000000000001000000000000000000000000000000208ca5f4e39ff8097b3311dc5c6b8ee0f25e73013b54075212e77ec6bbe41ea8e5000000000000000100000000000000010000000000000020acbb53eff19327fdfe068637b56e56cf2ed3ea11c5ac335cac2a4c9e1b4ba555000000000000000100000000000000010000000000000020770adc9f5a476741bb8349e40e9edfd96156aacd1c6d9e3a586653b654b6aa5b000000000000000100000000000000000000000000000020f66cbef6ba027ee51a683e2c6bfc0ba5a9c25509bcbd67fc8c6ed57fed75d4ad000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000120000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020ace56f983bb3454baa46bf315ca6356b2478c79693612cba0ec17f56ab0277cd0000000000000001000000000000000000000000000000201cc2cb225f6ceb4dc0af62c3e4cdbff8b47664cb0876a05b70204156dc6ba240000000000000000100000000000000010000000000000020113e52f83563f3c9a8ca73087daed63db6e020f9b1908dae270f2d864860470b0000000000000001000000000000000100000000000000207558d367d7cb8046d18c333db9b72e09bb6459368f028b50b23b205b8ad03c430000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000210000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000208ce1cc949d66e29c2c057237e5763104b0ae5ea1586e63baefa724176f8b6022000000000000000100000000000000010000000000000020d3a8480b820bd6c782f5a7d8bc820d929996e9b8ab64d37789aa88140ba71654000000000000000100000000000000010000000000000020d80cc5cdbb0ec297cddfda4fd988de76b705f83576117fb5ed10b48a9b959bb0000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000210000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020664e0e862b31c615e1e57d6dcded9bf393ebbaacc99d0254d87cdda7f877d2540000000000000001000000000000000100000000000000200c04f15905ef31c5e7f95badee6ef48214fcec9a48dff3643ba924349c73daaf00000000000000010000000000000001000000000000002072ecff12c730f10ff239ae5d5ec6e0ecd7a93d7c6f58e48faaf9efc69af68a03000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002100000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020b30c05a30bda76fc1bf437fc950c818b4d0bbb12dda331a149e84851a5b2512c000000000000000100000000000000010000000000000020730dfd755e8bc4f3764cb6605b45ef36f2bf687e9a26d67efca88040d92455b70000000000000001000000000000000100000000000000209636be1e4b8abd68cb43b0274502fefa81dd44893b457dcd361701b81c119a5b00000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002100000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c8000000000000000600000000000000010000000000000000000000000000002046fac6a73e8bccd0e5adf631aa1d059f3165a71695159b70d7e97f814f6fcd28000000000000000100000000000000010000000000000020915a39315080ec6ed5cebeeb6b7dad131f8106659b1ee09e93e1bfae78eff704000000000000000100000000000000010000000000000020477f5dc159d908adca707dc48fabcb5e7760807f37a220b1e911898710933d820000000000000001000000000000000100000000000000209576be5e5da6b2eb368bfdcbab0970717630f25877a6b9664c345d452e1514d800000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000210000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d000000000000000600000000000000010000000000000000000000000000002069280c0ca4e25652715e70e30e873d0cee391df4455276e4338db0638372d77b00000000000000010000000000000001000000000000002053d45841276f047a813d87d7cc211dcf1d7057a623db3785c133608ed6d4499b0000000000000001000000000000000100000000000000200df38a45fc387ce7388d7edbd245b965091614cd5a7aa1118bcbb22942e4bb9300000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000210000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000208ce1cc949d66e29c2c057237e5763104b0ae5ea1586e63baefa724176f8b6022000000000000000100000000000000010000000000000020d3a8480b820bd6c782f5a7d8bc820d929996e9b8ab64d37789aa88140ba71654000000000000000100000000000000010000000000000020d80cc5cdbb0ec297cddfda4fd988de76b705f83576117fb5ed10b48a9b959bb0000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000210000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020664e0e862b31c615e1e57d6dcded9bf393ebbaacc99d0254d87cdda7f877d2540000000000000001000000000000000100000000000000200c04f15905ef31c5e7f95badee6ef48214fcec9a48dff3643ba924349c73daaf00000000000000010000000000000001000000000000002072ecff12c730f10ff239ae5d5ec6e0ecd7a93d7c6f58e48faaf9efc69af68a03000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002100000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020b30c05a30bda76fc1bf437fc950c818b4d0bbb12dda331a149e84851a5b2512c000000000000000100000000000000010000000000000020730dfd755e8bc4f3764cb6605b45ef36f2bf687e9a26d67efca88040d92455b70000000000000001000000000000000100000000000000209636be1e4b8abd68cb43b0274502fefa81dd44893b457dcd361701b81c119a5b00000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002100000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c8000000000000000600000000000000010000000000000000000000000000002046fac6a73e8bccd0e5adf631aa1d059f3165a71695159b70d7e97f814f6fcd28000000000000000100000000000000010000000000000020915a39315080ec6ed5cebeeb6b7dad131f8106659b1ee09e93e1bfae78eff704000000000000000100000000000000010000000000000020477f5dc159d908adca707dc48fabcb5e7760807f37a220b1e911898710933d820000000000000001000000000000000100000000000000209576be5e5da6b2eb368bfdcbab0970717630f25877a6b9664c345d452e1514d800000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000210000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d000000000000000600000000000000010000000000000000000000000000002069280c0ca4e25652715e70e30e873d0cee391df4455276e4338db0638372d77b00000000000000010000000000000001000000000000002053d45841276f047a813d87d7cc211dcf1d7057a623db3785c133608ed6d4499b0000000000000001000000000000000100000000000000200df38a45fc387ce7388d7edbd245b965091614cd5a7aa1118bcbb22942e4bb9300000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c00000000000000000b0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000000000000000000002039b919da8460a7ced2f434d93e191c2e5f3ed6c16c5a563dde2d4088fe06329200000000000000010000000000000000000000000000002077631bed7d662ca95d374bb50963259dbae6fd85816b13bb5b057a5a051aa21b00000000000000010000000000000001000000000000002093c99af014a3514bdcc84cdf0e72d42f20038a64dcba4071efdcce4cf6a76949000000000000000100000000000000000000000000000020a07353c5029eac2f5fb14b7aaa839b9ff2b01dd6feeb51c341820462ab766306000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000000b0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000000000000000000205927b440119d91d39c3733f63f01775abc00426dddfe05736c43d2ec0905363a000000000000000100000000000000000000000000000020e36620d473cd1c4b96249370e894999a209a749fa70fb571d7cdc8d7dd5f2e54000000000000000100000000000000010000000000000020e23783733f2d245e0738ed8503ab8c6aef3aa526888e6b8dc670bfe0e224b8ff000000000000000100000000000000000000000000000020a45ee5473875579efd498bb9c2b6715752587f3d8b2592b454ecfaa7a4333af7000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000b00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000204882930d8658cd73eb924ef4d6ae5265e5f946d6d6e4198a4fa473b0c46262050000000000000001000000000000000000000000000000207ef9b1eced9bdd4e378e5106730b3ce6e1a70306d54252b4b0f320e029c8e300000000000000000100000000000000010000000000000020f0fde6ec22a87dce3563e4a3872da6fb65e744b1d395bcb2f83911d9ac21f1af00000000000000010000000000000000000000000000002017851b1e9a70cbcc32eb47f7ecfae668e5855348fa541f9cd9cc78455c2f52ed00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000b00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000000000000000000020b46f9374d4abefac0304eb77c7a7b3dcf0a10b2b88339f1d5c7facae494731af0000000000000001000000000000000000000000000000206a0132c6671ddf81a075e68fc636dda2913052e082ca48ba844539ede1ce7e47000000000000000100000000000000010000000000000020b9f47dcff780b5d8194c00a89264a3eb8f7603479d71eafc29a9074cf428d552000000000000000100000000000000000000000000000020dab612d00eddc0f70596df141a7d854a89a2e881b62296a42c239a68553568e5000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e000000000000000b0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020dbe2f7949c2848e292bebf1a30a4e72f4262acd55370a4d9815d9aa7bcaa012000000000000000010000000000000000000000000000002016c3a237b73b54311219f282ce47e3b5a782e5274e048bda1d6866b9819192e300000000000000010000000000000001000000000000002045bb9d506f74a19123d41a442d1de0fdfbaca183dfb2af0cc5027621a991b2b2000000000000000100000000000000000000000000000020dd7d0f921f70b1c400e2053b21a89931a0d729e3164966f8cdf0a44bdd836801000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000220000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020edbe94d8e8de5db41d18ad91301afefc3b3b6d97bf6925be6996ce1550d25f9f0000000000000001000000000000000000000000000000204b06bb483c21112f9cdd7eff56256a5630233353d836a5d668685bfdc6a4041e000000000000000100000000000000010000000000000020d80cc5cdbb0ec297cddfda4fd988de76b705f83576117fb5ed10b48a9b959bb0000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000220000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e000000000000000600000000000000010000000000000001000000000000002031207018e5337547011f31a2cb9b9576fae9ef496ac1f65b332c737338573b5f000000000000000100000000000000000000000000000020393cccd066625747c7bb15e378554916665b267344c9bf3a1f1e239b4d3166fc00000000000000010000000000000001000000000000002072ecff12c730f10ff239ae5d5ec6e0ecd7a93d7c6f58e48faaf9efc69af68a03000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002200000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000010000000000000020a502afaa3bdb59ad846d02004e3f49dd5a5e428cdc9767660dbcc0195391e24a000000000000000100000000000000000000000000000020d2096ab2fdbc4ed9fcb3f176b5554a872f0e907766b3c2d7a358a3e01f8fde260000000000000001000000000000000100000000000000209636be1e4b8abd68cb43b0274502fefa81dd44893b457dcd361701b81c119a5b00000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002200000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000100000000000000204819052a8ccb76ad656730ae11bbcc18eb0f1b12a8aa023c2d5d1bfea8985ee90000000000000001000000000000000000000000000000203f56dd85e0a194ac8bc2d0dacc2bffefd23ba5e99d127148c082bdec01a7698d000000000000000100000000000000010000000000000020477f5dc159d908adca707dc48fabcb5e7760807f37a220b1e911898710933d820000000000000001000000000000000100000000000000209576be5e5da6b2eb368bfdcbab0970717630f25877a6b9664c345d452e1514d800000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000220000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d000000000000000600000000000000010000000000000001000000000000002063f325f5186e10e6614bb85c0bcb3ba848415c8cb1225f99c8929543d82f2c90000000000000000100000000000000000000000000000020a58adfd2e024e06c922fbd6f0c6e29c0aa467b652272a9cd35196719e496cfd60000000000000001000000000000000100000000000000200df38a45fc387ce7388d7edbd245b965091614cd5a7aa1118bcbb22942e4bb9300000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c00000000000000001c0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020dc473fbc2982536b3551210ff22dbfb86908bbdebdf4f9fcee59b94ae742f3e7000000000000000100000000000000010000000000000020f09e0551c369e8794e51f609fb64bc262c407f13317ebef64c17a4fb128e2b29000000000000000100000000000000000000000000000020cd05d024922075f0d2191dff6b6b8977913542096c687b1aa6a6880a30f4f1780000000000000001000000000000000000000000000000207a1424d413417eb28a018fd1d76958181366ee57c4d59ae0034a29ddbb1d2b590000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000001c0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020e326c18eb9bc5c22eeb0104ad67db5825445f27758a763e7a15c98afa3c60ee90000000000000001000000000000000100000000000000206f5361d60e69e71d110471fa559e5f9e4f0cacff5c4d21eefb041e57495d1c6b000000000000000100000000000000000000000000000020e216681d6f38da8409d5c77334f0f51de756720aaa028880c59d6a832095ad4f000000000000000100000000000000000000000000000020938375cf40ac56222ab4d00edc1add4f0c4d45658ef352f9c39d534a9202dcf7000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001c00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000010000000000000020b78c2786fd393a8a189ea69596d8d08620268eb4bee8ba8309a80def966a7437000000000000000100000000000000010000000000000020a3471994e86c3ff9f0b757f440b5ded70f1e167a40e6eff28a571f2a79e14df600000000000000010000000000000000000000000000002053b3233efca5252e2055e75028fefee3391d25eb106840c102b53e90d3d1fdf6000000000000000100000000000000000000000000000020a084e70b3f9ebf137fa0b89422463d8a968230d1e0fbcf139db6e018b78315170000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001c00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000100000000000000208979eb386fe5abfa278825db28a10963b3073757f7728b555d9e144460a0efe800000000000000010000000000000001000000000000002000269e3b9f38ca4fe7f736b5a97e648fa365df34c5db35b02085b50be90a5010000000000000000100000000000000000000000000000020b7d7c4fcec9b03c74f701ed9b4eedf7ec3386233c472d6ae64f7cb0ca1f7a448000000000000000100000000000000000000000000000020ce498e000ddc8371c645a265d4b98546295ae06beeb91fa03885ec7c34dce7f9000000000000000100000000000000000000000000000020f66cbef6ba027ee51a683e2c6bfc0ba5a9c25509bcbd67fc8c6ed57fed75d4ad000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e000000000000001c0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020b2669c955a48dabaf2c213befede7e967ab990f1c9b03bd7a65450003d408508000000000000000100000000000000010000000000000020fb06fb7152ac1f9d2222ce222624aa555ffa17371dfad3a80a1bf178befe1e6b0000000000000001000000000000000000000000000000207fe3562c7d01ca88eef4c66c817964ae9239a6df889ab475368bf430de96cdb20000000000000001000000000000000000000000000000205ef7704fa3778b449f726e5d0a98cf0942526fc336765751838fd6cbb761fb270000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb816590000000000000050000000000000002c0000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000010000000000000020c2c07f3f276414e934062d4955aca8dc433b7b5b9ba6771d317103285875782f000000000000000100000000000000010000000000000020e729602d685c416c962467dbdf1b374fb2f89942497ae09c69465d542149427c00000000000000010000000000000000000000000000002032e8e35b6c4d05bda0aaab8695414091abb260f0f580caf07b72ff3b29986e7c0000000000000001000000000000000000000000000000208d18bfe654aea77b577e209a7121f19c73856373ca451d40b088cfae2bef19bb000000000000000100000000000000010000000000000020db06796a664833a518e2c00bf6346fb8db10b06ea8fb1307c8e7a7f19004f1390000000000000001000000000000000000000000000000204542a6a3c51453625650384282b528364f8869670db893316e927172ddfe2747000000000000000c00000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000010000000000000020ecfaa397abeca57b95fa264870e3b0d25b9e2a65247e42da70b53a719eb394650000000000000001000000000000000100000000000000200be9980c1163e18238277790cffcc071785ec9746963715e219a511418a28924000000000000000100000000000000000000000000000020a776a89bc4f2a786eba2c34381fe99ee2f8ceba73c8ad4c38ed66f45a43aeb3300000000000000010000000000000000000000000000002036c82a644c18b80bdac66d0d7a55af68bc85b40e8261a12a9ed9577dcee96073000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e00000000000000240000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000010000000000000020286877622c7dee3f9b726df8cf6b2f36647e673c66e154719c3f39a60aaf270e000000000000000100000000000000010000000000000020815caac7584b30c73a6edcb69fad0803b30dab6c0eeb1fdb3ef2708942f183f10000000000000001000000000000000000000000000000209ae1efacfad0e41a98733cb067fb80adca6409ed77a5b7a7a5e39a8646e69b04000000000000000100000000000000010000000000000020967128670c13aef78d9a62dafa580cce4ebfaac9d3d33e8c96ef7874404b54c0000000000000000100000000000000010000000000000020db06796a664833a518e2c00bf6346fb8db10b06ea8fb1307c8e7a7f19004f1390000000000000001000000000000000000000000000000204542a6a3c51453625650384282b528364f8869670db893316e927172ddfe2747000000000000000400000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000010000000000000020a373b19a9282c66292451aedb1a0a1a45ad7da43bd01139c25c9475c36a4265f0000000000000001000000000000000100000000000000206cdc48c8ce67892950287b173fd6fe41fce765ef313cd71b70b31229576c8a3a0000000000000001000000000000000000000000000000205ac3e0c0928dc1f95b3a0cb7133d4fe46d1c0cc3d390de16f8dd6b622d40dc60000000000000000100000000000000010000000000000020621827b451905551eaf829ea054aab3211c35ca76af183ffa5f553c2f9db00e0000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e00000000000000080000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000010000000000000020bab72fa698c597f9e88c8bacd17f2d13f2c1c2af659e8f40e12ed1b22006ef1c0000000000000001000000000000000100000000000000206f952d8693244d6b65b0c0fc47a539018d28006e9d5dbbac920ce0e650b0de4200000000000000010000000000000001000000000000002077a72d4a8be9a9cf3f2434bb4699c5623aec717f1270fe77f4a2731328ab348e0000000000000001000000000000000000000000000000209426233854beda52809595ae5fa911799a530fed0a60de3c7efbd8ff6606a6b1000000000000000100000000000000010000000000000020badc2e129abc53610f22682a1ffb0a74bda83f742dd0ecb0b08cfd6cbe03a6270000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000000800000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d3700000000000000050000000000000001000000000000000100000000000000206f2f80380cf7bf9835e1d622f10c98a08099210e4b35923ffd3ec7bb3a934d8800000000000000010000000000000001000000000000002076092798bbae11ffd473a8a7a133f039f6d1b11ce296efcd801a47be607d80a1000000000000000100000000000000010000000000000020699b396bee8bbb307d64d22163259543ac37ce00946fbcf73e966de05eef9c7300000000000000010000000000000000000000000000002036c82a644c18b80bdac66d0d7a55af68bc85b40e8261a12a9ed9577dcee96073000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e000000000000003d0000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b500000000000000060000000000000001000000000000000000000000000000209a87d435f3724833fa9d2d432215f94833003bcf7b3ae39c5329537a8126238f000000000000000100000000000000010000000000000020de9fcbbf0b4cf96f8c6252d1760932749b156fa676b593fc09fc9e1d7b9396c6000000000000000100000000000000000000000000000020ceb822d88639120d4a9efce455fe0cd62e453835b7604cb07103614d88e38d8b000000000000000100000000000000000000000000000020b135801365efafb9c75508970632fde9fd537c15321118fabd698ac97eb960e3000000000000000100000000000000000000000000000020c492c862eb7036072f242d732e2322b2f3aea9bf014f6366103d5b4c272a8b150000000000000001000000000000000000000000000000204542a6a3c51453625650384282b528364f8869670db893316e927172ddfe2747000000000000001d00000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d3700000000000000050000000000000001000000000000000000000000000000207c0025dd3474687c664e71232135ded3e659d7182171172777feb76b24315019000000000000000100000000000000010000000000000020305b6f32a8ad902134cb88e367d52b33870079a8ff6676b1bfa2a7b0e4907234000000000000000100000000000000000000000000000020d0934d8f0b87867233aedc2b55e8222542822036fda1786e06a9b62af2083fae000000000000000100000000000000000000000000000020bea715dcebfcd755fda508b5a6d96220a218c77f36045e2f9e03186ca85c1f8d000000000000000100000000000000000000000000000020fbaf96d5da18b3b058564a2b2e5276777b4e1a444a7e2a756a6cd7558a919b2b000000000000000f0000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000000000000000000020fab2b03990319acd99c0955097dda5bf73938bcb91fb021f6eeb0c25c26186f1000000000000000100000000000000000000000000000020658ccefa4c5eec6b0b7cf50f407db621e28f0890874affc1a0cb354761e5a4700000000000000001000000000000000000000000000000206d0190fa73226ecea58d4fa21f0307d7b3f9c9df4cf0a85eafe026290e095f980000000000000001000000000000000000000000000000209426233854beda52809595ae5fa911799a530fed0a60de3c7efbd8ff6606a6b1000000000000000100000000000000010000000000000020badc2e129abc53610f22682a1ffb0a74bda83f742dd0ecb0b08cfd6cbe03a6270000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000000f00000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d3700000000000000050000000000000001000000000000000000000000000000205c42ba249eb2e1822facfcfb612f056e719320e6698e294c79b1122ed64fb8fc0000000000000001000000000000000000000000000000203cd3df94a6963f46bdfe44751e6dc6ad5eb80b2b6041ba3da949b324db729c35000000000000000100000000000000000000000000000020a776a89bc4f2a786eba2c34381fe99ee2f8ceba73c8ad4c38ed66f45a43aeb3300000000000000010000000000000000000000000000002036c82a644c18b80bdac66d0d7a55af68bc85b40e8261a12a9ed9577dcee96073000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e00000000000000130000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b5000000000000000600000000000000010000000000000000000000000000002037af43bc36647adbcec0dccf071d6ec6300cc7f2b4e7ec6c23879a0126ee9284000000000000000100000000000000000000000000000020d067d64a08b6468ea39bf48520da7c019ee74a8065a4605a092c35ca515ea8c3000000000000000100000000000000010000000000000020e6861421be6a9fd34645f939609e4eb0ab267b7b82d254d5a511a655e073d81c00000000000000010000000000000001000000000000002074228cf6968b993babb2008379776ec0567e41667f5e4bc1bcdf4efeeb3e86e10000000000000001000000000000000000000000000000204f90cc70ed241fecba0e2e462d5fc9d01f44a8dd4483537b99c0454f1a4f7d180000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000001300000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000000000000000000020b63c454c722546dbcd496b3b283043b91d86608cf0a616343bd16691db411fc6000000000000000100000000000000000000000000000020f0ec652053e3b82e2a05505cbf5a8b6250ee4ccf2c6d6208c5afc5f67ee7676f000000000000000100000000000000010000000000000020403f8b1e8f4ead900bb367e27daa73e741f742a172366697f6271850f34d853700000000000000010000000000000001000000000000002025dba43c20154eb4e9183e191f0597c61034c6517b0a2a8f9a18ab98f482f7c5000000000000000100000000000000000000000000000020fbaf96d5da18b3b058564a2b2e5276777b4e1a444a7e2a756a6cd7558a919b2b00000000000000030000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b500000000000000060000000000000001000000000000000000000000000000202b8392032be94ab4c1ee7918de44801642659e7321adce3c0ccb560f1d673f98000000000000000100000000000000000000000000000020ac23e9a233518f7270f2910712fb77590ee8169c28fdce8b90feb16d54c7bf450000000000000001000000000000000100000000000000209f7e22c7d1dec7bd7360c0814267e1798fd769c8160bec810dc6bcf6fdc2d9f800000000000000010000000000000001000000000000002011420a4ee9a29da7ddae2bcd24e020edee7628cf483723930d352730ffc2789c000000000000000100000000000000010000000000000020badc2e129abc53610f22682a1ffb0a74bda83f742dd0ecb0b08cfd6cbe03a6270000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000000300000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d37000000000000000500000000000000010000000000000000000000000000002097faac4a0447ebc8cef844bce3f6743c966afb7d9c33dbe847002b5f2d1907be000000000000000100000000000000000000000000000020e04fd887c0f5fbb6db27f67bde93e088d30f04a45169d19816d7ac6701f57e0f000000000000000100000000000000010000000000000020601587465f813daa305f255198266f86d446e06b18fe6a38d22da16facdf643a000000000000000100000000000000010000000000000020621827b451905551eaf829ea054aab3211c35ca76af183ffa5f553c2f9db00e0000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e000000000000001e0000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000010000000000000020a924dbab7ef2bd52d3c47f11b030d7f1676cb65c0c7e465ab282666bcd6fa48a00000000000000010000000000000000000000000000002080eb0e1f22e3f4abcbe0a59bbba3f37580d80ed5c804773620c9cc1dde04486e0000000000000001000000000000000000000000000000203e6d9a000e282de64ca518d452164e1ee46e2b8594d53b6571bcd13e8c9e633e000000000000000100000000000000000000000000000020ddecb82087a47e9f37b5b8ef44a354d403416d4111650fc368c40ec20d6221d90000000000000001000000000000000000000000000000204f90cc70ed241fecba0e2e462d5fc9d01f44a8dd4483537b99c0454f1a4f7d180000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000001e00000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d3700000000000000050000000000000001000000000000000100000000000000201732611234cc439b0e1e1eb8e15a264061f5f345c1246482ff691c020f959fb800000000000000010000000000000000000000000000002000a83618f9e27263d0bdf24eae6ac440861a4bc74f98aa827aa7fb650ccc4ca8000000000000000100000000000000000000000000000020d0934d8f0b87867233aedc2b55e8222542822036fda1786e06a9b62af2083fae000000000000000100000000000000000000000000000020bea715dcebfcd755fda508b5a6d96220a218c77f36045e2f9e03186ca85c1f8d000000000000000100000000000000000000000000000020fbaf96d5da18b3b058564a2b2e5276777b4e1a444a7e2a756a6cd7558a919b2b00000000000000200000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000010000000000000020a0d976d4c7f8bea384fc177852387fd86e5662748415f3d19195ed8a700f32bb000000000000000100000000000000010000000000000020a7af022083c851de2c525ced8f9fd109351e953d42093d3e7890a9aec3b792ed0000000000000001000000000000000100000000000000209ecf5eb00ae02bc6c96683d195c3bcdc1abd10ee8958abdacae0a04c9fdea068000000000000000100000000000000010000000000000020967128670c13aef78d9a62dafa580cce4ebfaac9d3d33e8c96ef7874404b54c0000000000000000100000000000000010000000000000020db06796a664833a518e2c00bf6346fb8db10b06ea8fb1307c8e7a7f19004f1390000000000000001000000000000000000000000000000204542a6a3c51453625650384282b528364f8869670db893316e927172ddfe2747000000000000000000000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d37000000000000000500000000000000010000000000000001000000000000002068632f7198881a6101e366cd79d5974983362906a08365b044dddb7a454162040000000000000001000000000000000100000000000000206c6b0e0e89b0b49039c1a7adfc83697941ea7397b6981ba0bd48a1dfb41e5047000000000000000100000000000000010000000000000020601587465f813daa305f255198266f86d446e06b18fe6a38d22da16facdf643a000000000000000100000000000000010000000000000020621827b451905551eaf829ea054aab3211c35ca76af183ffa5f553c2f9db00e0000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e000000000000003f0000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b500000000000000060000000000000001000000000000000000000000000000203373f78a78202d7e6df091601779ff2a45dc4dc28d7c25e2b570bc963de53870000000000000000100000000000000000000000000000020b44997434effcfa4dc62c39dad5a5892b769fd927d8a9cbcdb69f6408278368f000000000000000100000000000000000000000000000020ceb822d88639120d4a9efce455fe0cd62e453835b7604cb07103614d88e38d8b000000000000000100000000000000000000000000000020b135801365efafb9c75508970632fde9fd537c15321118fabd698ac97eb960e3000000000000000100000000000000000000000000000020c492c862eb7036072f242d732e2322b2f3aea9bf014f6366103d5b4c272a8b150000000000000001000000000000000000000000000000204542a6a3c51453625650384282b528364f8869670db893316e927172ddfe2747000000000000001f00000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000000000000000000020229dbd2f0df8dca82fbe0a991399b322a6368fa8901907d5780c80921f3611f700000000000000010000000000000000000000000000002000a83618f9e27263d0bdf24eae6ac440861a4bc74f98aa827aa7fb650ccc4ca8000000000000000100000000000000000000000000000020d0934d8f0b87867233aedc2b55e8222542822036fda1786e06a9b62af2083fae000000000000000100000000000000000000000000000020bea715dcebfcd755fda508b5a6d96220a218c77f36045e2f9e03186ca85c1f8d000000000000000100000000000000000000000000000020fbaf96d5da18b3b058564a2b2e5276777b4e1a444a7e2a756a6cd7558a919b2b00000000000000360000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b500000000000000060000000000000001000000000000000100000000000000204b1b5c8573afde567a867833a96d3c9f4503b04d326fce228ee7931fe31a862700000000000000010000000000000000000000000000002039df29ad33ec98376e1c39358dada50dbed580582440c24d6550c1287d1c257b000000000000000100000000000000000000000000000020e8f75444f8e9d1862c495be040e24c2bc75ad0343247743671a10c971d478758000000000000000100000000000000010000000000000020f84397231cefa06e4be5bd6eda42b45e0d560cde33fa198edaf356e467a9d4f2000000000000000100000000000000000000000000000020c492c862eb7036072f242d732e2322b2f3aea9bf014f6366103d5b4c272a8b150000000000000001000000000000000000000000000000204542a6a3c51453625650384282b528364f8869670db893316e927172ddfe2747000000000000001600000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d3700000000000000050000000000000001000000000000000100000000000000205150809ffc7d7e8f1ec5f3e939eea11c77f109115cfaebdeed6d8a83c12e033e000000000000000100000000000000000000000000000020dcc973be1a6e187f63dfe83d032f028970a1ac0546f5b4fd5eb6beef8ea394d20000000000000001000000000000000000000000000000200363c105ec8d2707b1f0e2017bffda972db4e8da5174b96355a9d0fcfde90b2000000000000000010000000000000001000000000000002025dba43c20154eb4e9183e191f0597c61034c6517b0a2a8f9a18ab98f482f7c5000000000000000100000000000000000000000000000020fbaf96d5da18b3b058564a2b2e5276777b4e1a444a7e2a756a6cd7558a919b2b00000000000000090000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b500000000000000060000000000000001000000000000000000000000000000206de02f75c6c170d47e586dca99550bb8513f910f1df1d6d2ed90bda864cfc1dc0000000000000001000000000000000100000000000000206f952d8693244d6b65b0c0fc47a539018d28006e9d5dbbac920ce0e650b0de4200000000000000010000000000000001000000000000002077a72d4a8be9a9cf3f2434bb4699c5623aec717f1270fe77f4a2731328ab348e0000000000000001000000000000000000000000000000209426233854beda52809595ae5fa911799a530fed0a60de3c7efbd8ff6606a6b1000000000000000100000000000000010000000000000020badc2e129abc53610f22682a1ffb0a74bda83f742dd0ecb0b08cfd6cbe03a6270000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000000900000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d3700000000000000050000000000000001000000000000000000000000000000202997b274436da648df49d0cba61ace0ea7955255d950ceeed6de9f00e2590e7f00000000000000010000000000000001000000000000002076092798bbae11ffd473a8a7a133f039f6d1b11ce296efcd801a47be607d80a1000000000000000100000000000000010000000000000020699b396bee8bbb307d64d22163259543ac37ce00946fbcf73e966de05eef9c7300000000000000010000000000000000000000000000002036c82a644c18b80bdac66d0d7a55af68bc85b40e8261a12a9ed9577dcee96073000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e000000000000003e0000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000010000000000000020d2a56e338943f660e11a046bc1b675d80416e68612077a53bceafc0c9d3972cf000000000000000100000000000000000000000000000020b44997434effcfa4dc62c39dad5a5892b769fd927d8a9cbcdb69f6408278368f000000000000000100000000000000000000000000000020ceb822d88639120d4a9efce455fe0cd62e453835b7604cb07103614d88e38d8b000000000000000100000000000000000000000000000020b135801365efafb9c75508970632fde9fd537c15321118fabd698ac97eb960e3000000000000000100000000000000000000000000000020c492c862eb7036072f242d732e2322b2f3aea9bf014f6366103d5b4c272a8b150000000000000001000000000000000000000000000000204542a6a3c51453625650384282b528364f8869670db893316e927172ddfe2747000000000000001e00000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d3700000000000000050000000000000001000000000000000100000000000000201732611234cc439b0e1e1eb8e15a264061f5f345c1246482ff691c020f959fb800000000000000010000000000000000000000000000002000a83618f9e27263d0bdf24eae6ac440861a4bc74f98aa827aa7fb650ccc4ca8000000000000000100000000000000000000000000000020d0934d8f0b87867233aedc2b55e8222542822036fda1786e06a9b62af2083fae000000000000000100000000000000000000000000000020bea715dcebfcd755fda508b5a6d96220a218c77f36045e2f9e03186ca85c1f8d000000000000000100000000000000000000000000000020fbaf96d5da18b3b058564a2b2e5276777b4e1a444a7e2a756a6cd7558a919b2b000000000000002f0000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000000000000000000020fef0b99dfa683060ea46e917c4d75d1dc890f4f7f64302ef0c08f2fc58b3d8720000000000000001000000000000000000000000000000203e25bbd6aa6153faa8b97622023b206e12a613aaaeedf0c444a332dd9680ad7a00000000000000010000000000000000000000000000002032e8e35b6c4d05bda0aaab8695414091abb260f0f580caf07b72ff3b29986e7c0000000000000001000000000000000000000000000000208d18bfe654aea77b577e209a7121f19c73856373ca451d40b088cfae2bef19bb000000000000000100000000000000010000000000000020db06796a664833a518e2c00bf6346fb8db10b06ea8fb1307c8e7a7f19004f1390000000000000001000000000000000000000000000000204542a6a3c51453625650384282b528364f8869670db893316e927172ddfe2747000000000000000f00000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d3700000000000000050000000000000001000000000000000000000000000000205c42ba249eb2e1822facfcfb612f056e719320e6698e294c79b1122ed64fb8fc0000000000000001000000000000000000000000000000203cd3df94a6963f46bdfe44751e6dc6ad5eb80b2b6041ba3da949b324db729c35000000000000000100000000000000000000000000000020a776a89bc4f2a786eba2c34381fe99ee2f8ceba73c8ad4c38ed66f45a43aeb3300000000000000010000000000000000000000000000002036c82a644c18b80bdac66d0d7a55af68bc85b40e8261a12a9ed9577dcee96073000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e00000000000000280000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000010000000000000020a7e01b15d25b196f35c883f2a5bdb4161c019683f0f0e5a68aa7b3b39e8963fa00000000000000010000000000000001000000000000002040a57d1224104238995cb59f730356178a598d9367650309dad0f5e01202994500000000000000010000000000000001000000000000002015342a6f5f9edf147d8ced1ebdedf13746249ff32b7b21422eb32489f34820a20000000000000001000000000000000000000000000000208d18bfe654aea77b577e209a7121f19c73856373ca451d40b088cfae2bef19bb000000000000000100000000000000010000000000000020db06796a664833a518e2c00bf6346fb8db10b06ea8fb1307c8e7a7f19004f1390000000000000001000000000000000000000000000000204542a6a3c51453625650384282b528364f8869670db893316e927172ddfe2747000000000000000800000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d3700000000000000050000000000000001000000000000000100000000000000206f2f80380cf7bf9835e1d622f10c98a08099210e4b35923ffd3ec7bb3a934d8800000000000000010000000000000001000000000000002076092798bbae11ffd473a8a7a133f039f6d1b11ce296efcd801a47be607d80a1000000000000000100000000000000010000000000000020699b396bee8bbb307d64d22163259543ac37ce00946fbcf73e966de05eef9c7300000000000000010000000000000000000000000000002036c82a644c18b80bdac66d0d7a55af68bc85b40e8261a12a9ed9577dcee96073000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e000000000000002d0000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000000000000000000020335c83eb71bef4ff6d1780b97e88f07b15f33b84f55edf9ca782c83b89789fb7000000000000000100000000000000010000000000000020e729602d685c416c962467dbdf1b374fb2f89942497ae09c69465d542149427c00000000000000010000000000000000000000000000002032e8e35b6c4d05bda0aaab8695414091abb260f0f580caf07b72ff3b29986e7c0000000000000001000000000000000000000000000000208d18bfe654aea77b577e209a7121f19c73856373ca451d40b088cfae2bef19bb000000000000000100000000000000010000000000000020db06796a664833a518e2c00bf6346fb8db10b06ea8fb1307c8e7a7f19004f1390000000000000001000000000000000000000000000000204542a6a3c51453625650384282b528364f8869670db893316e927172ddfe2747000000000000000d00000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000000000000000000020442e9e3ed979fa14791ff4ee3864cfc712bf52ca822d156cdf131c5c1d2932f60000000000000001000000000000000100000000000000200be9980c1163e18238277790cffcc071785ec9746963715e219a511418a28924000000000000000100000000000000000000000000000020a776a89bc4f2a786eba2c34381fe99ee2f8ceba73c8ad4c38ed66f45a43aeb3300000000000000010000000000000000000000000000002036c82a644c18b80bdac66d0d7a55af68bc85b40e8261a12a9ed9577dcee96073000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e00000000000000190000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000000000000000000020d9a98d3747b6b90c3b32e2e06d22f2107f108062892c37dfe7493646c0056f45000000000000000100000000000000010000000000000020b3ba604d9c21cf7df802e28041ef5c11272860bf7d4d34385f1ffa34ae85d5840000000000000001000000000000000100000000000000206e66f55b5995a5ef59854a16beb1354fd005e344d9d57849b7d59a2306e3949e000000000000000100000000000000000000000000000020ddecb82087a47e9f37b5b8ef44a354d403416d4111650fc368c40ec20d6221d90000000000000001000000000000000000000000000000204f90cc70ed241fecba0e2e462d5fc9d01f44a8dd4483537b99c0454f1a4f7d180000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000001900000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d3700000000000000050000000000000001000000000000000000000000000000200dced4058ff4b92a15f33efa1070873d8d2365867bca476b260bc2f4afa9ae4d000000000000000100000000000000010000000000000020bfd362600dccae9031f70ffae7875813d37541f92f07a269b1b08afeac36d733000000000000000100000000000000010000000000000020c886027207546165dc36f9feb8449e2493f24eeb789c2d655e7b0d3e1ae16178000000000000000100000000000000000000000000000020bea715dcebfcd755fda508b5a6d96220a218c77f36045e2f9e03186ca85c1f8d000000000000000100000000000000000000000000000020fbaf96d5da18b3b058564a2b2e5276777b4e1a444a7e2a756a6cd7558a919b2b000000000000002e0000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b500000000000000060000000000000001000000000000000100000000000000205bac9264cd04a7367b65db9348ed64090646a5f1f5d3a9b618f2ef5e5efbcfaa0000000000000001000000000000000000000000000000203e25bbd6aa6153faa8b97622023b206e12a613aaaeedf0c444a332dd9680ad7a00000000000000010000000000000000000000000000002032e8e35b6c4d05bda0aaab8695414091abb260f0f580caf07b72ff3b29986e7c0000000000000001000000000000000000000000000000208d18bfe654aea77b577e209a7121f19c73856373ca451d40b088cfae2bef19bb000000000000000100000000000000010000000000000020db06796a664833a518e2c00bf6346fb8db10b06ea8fb1307c8e7a7f19004f1390000000000000001000000000000000000000000000000204542a6a3c51453625650384282b528364f8869670db893316e927172ddfe2747000000000000000e00000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d37000000000000000500000000000000010000000000000001000000000000002073ce048b3dd16c5e4de22971ae3058ad48ee51e4ad562f8879b49588e7a9909f0000000000000001000000000000000000000000000000203cd3df94a6963f46bdfe44751e6dc6ad5eb80b2b6041ba3da949b324db729c35000000000000000100000000000000000000000000000020a776a89bc4f2a786eba2c34381fe99ee2f8ceba73c8ad4c38ed66f45a43aeb3300000000000000010000000000000000000000000000002036c82a644c18b80bdac66d0d7a55af68bc85b40e8261a12a9ed9577dcee96073000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e00000000000000330000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b500000000000000060000000000000001000000000000000000000000000000203ff906a7deaafe3ef357a718311dc0f7f78fd8e88d924cba55cabd9cc97ecd4f00000000000000010000000000000000000000000000002056746c25ebe82cbe447039d3c47e332cc9608ab076e123cf73257f66b588609300000000000000010000000000000001000000000000002029d23a14c1825a8c3994b61aabc559c36aa999908df2d475a6af515455d5f628000000000000000100000000000000010000000000000020f84397231cefa06e4be5bd6eda42b45e0d560cde33fa198edaf356e467a9d4f2000000000000000100000000000000000000000000000020c492c862eb7036072f242d732e2322b2f3aea9bf014f6366103d5b4c272a8b150000000000000001000000000000000000000000000000204542a6a3c51453625650384282b528364f8869670db893316e927172ddfe2747000000000000001300000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000000000000000000020b63c454c722546dbcd496b3b283043b91d86608cf0a616343bd16691db411fc6000000000000000100000000000000000000000000000020f0ec652053e3b82e2a05505cbf5a8b6250ee4ccf2c6d6208c5afc5f67ee7676f000000000000000100000000000000010000000000000020403f8b1e8f4ead900bb367e27daa73e741f742a172366697f6271850f34d853700000000000000010000000000000001000000000000002025dba43c20154eb4e9183e191f0597c61034c6517b0a2a8f9a18ab98f482f7c5000000000000000100000000000000000000000000000020fbaf96d5da18b3b058564a2b2e5276777b4e1a444a7e2a756a6cd7558a919b2b00000000000000000000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b5000000000000000600000000000000010000000000000001000000000000002055f2f80cf32bc6f1f07362774e677791e8734fe30fc5ad449f4b774eaa49e74f000000000000000100000000000000010000000000000020a91f430325e85f2ffdbcb606ec266aa97007b05091da9344a82f1815850ce69b0000000000000001000000000000000100000000000000209f7e22c7d1dec7bd7360c0814267e1798fd769c8160bec810dc6bcf6fdc2d9f800000000000000010000000000000001000000000000002011420a4ee9a29da7ddae2bcd24e020edee7628cf483723930d352730ffc2789c000000000000000100000000000000010000000000000020badc2e129abc53610f22682a1ffb0a74bda83f742dd0ecb0b08cfd6cbe03a6270000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000000000000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d37000000000000000500000000000000010000000000000001000000000000002068632f7198881a6101e366cd79d5974983362906a08365b044dddb7a454162040000000000000001000000000000000100000000000000206c6b0e0e89b0b49039c1a7adfc83697941ea7397b6981ba0bd48a1dfb41e5047000000000000000100000000000000010000000000000020601587465f813daa305f255198266f86d446e06b18fe6a38d22da16facdf643a000000000000000100000000000000010000000000000020621827b451905551eaf829ea054aab3211c35ca76af183ffa5f553c2f9db00e0000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e00000000000000100000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b500000000000000060000000000000001000000000000000100000000000000207c1aa40ae97c97f452dea63398ce52a26a2db03daaeceb26f14b9ba21a85111900000000000000010000000000000001000000000000002057d2d9d03674b3e38a93b4406b4e1ffc878eccaf3461f1b576734c16afe22ae4000000000000000100000000000000010000000000000020e6861421be6a9fd34645f939609e4eb0ab267b7b82d254d5a511a655e073d81c00000000000000010000000000000001000000000000002074228cf6968b993babb2008379776ec0567e41667f5e4bc1bcdf4efeeb3e86e10000000000000001000000000000000000000000000000204f90cc70ed241fecba0e2e462d5fc9d01f44a8dd4483537b99c0454f1a4f7d180000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000001000000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000010000000000000020345fab90e725b27b13a4b4fbff5a81563e8390a9f9fa107825b2af11d2621764000000000000000100000000000000010000000000000020e8d78d98ab6f73caf41fe4be95ef5283fdc5337af173ba4ebdad0f294793efd3000000000000000100000000000000010000000000000020403f8b1e8f4ead900bb367e27daa73e741f742a172366697f6271850f34d853700000000000000010000000000000001000000000000002025dba43c20154eb4e9183e191f0597c61034c6517b0a2a8f9a18ab98f482f7c5000000000000000100000000000000000000000000000020fbaf96d5da18b3b058564a2b2e5276777b4e1a444a7e2a756a6cd7558a919b2b000000000000001c0000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b500000000000000060000000000000001000000000000000100000000000000206d9a358b33dcf96c3067538617c53b57dd6f2a00b55df5e16231d9886ef2309e000000000000000100000000000000010000000000000020b1b98dc4c3810469ed92d34af15b9dbb66a057d2970d5d34c334e5e997e66c530000000000000001000000000000000000000000000000203e6d9a000e282de64ca518d452164e1ee46e2b8594d53b6571bcd13e8c9e633e000000000000000100000000000000000000000000000020ddecb82087a47e9f37b5b8ef44a354d403416d4111650fc368c40ec20d6221d90000000000000001000000000000000000000000000000204f90cc70ed241fecba0e2e462d5fc9d01f44a8dd4483537b99c0454f1a4f7d180000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000001c00000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000010000000000000020ef6887e319d855b8560c7872c9f2b7503306572e9eb6b791fd550588a2802115000000000000000100000000000000010000000000000020305b6f32a8ad902134cb88e367d52b33870079a8ff6676b1bfa2a7b0e4907234000000000000000100000000000000000000000000000020d0934d8f0b87867233aedc2b55e8222542822036fda1786e06a9b62af2083fae000000000000000100000000000000000000000000000020bea715dcebfcd755fda508b5a6d96220a218c77f36045e2f9e03186ca85c1f8d000000000000000100000000000000000000000000000020fbaf96d5da18b3b058564a2b2e5276777b4e1a444a7e2a756a6cd7558a919b2b000000000000002b0000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b5000000000000000600000000000000010000000000000000000000000000002005378cbace6f0481acfbc59cfbdc5773df0a179feabacca027f711b03981521f000000000000000100000000000000000000000000000020ba798144c307a13d14d44367dc13adc60336eb9e88465586dd3410d3c3313d2a00000000000000010000000000000001000000000000002015342a6f5f9edf147d8ced1ebdedf13746249ff32b7b21422eb32489f34820a20000000000000001000000000000000000000000000000208d18bfe654aea77b577e209a7121f19c73856373ca451d40b088cfae2bef19bb000000000000000100000000000000010000000000000020db06796a664833a518e2c00bf6346fb8db10b06ea8fb1307c8e7a7f19004f1390000000000000001000000000000000000000000000000204542a6a3c51453625650384282b528364f8869670db893316e927172ddfe2747000000000000000b00000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000000000000000000020020fb0d418f335acb45648b34e1cfd88648c6a8edbbf0cfa344bf43c9d954d80000000000000000100000000000000000000000000000020f79785de95b5398ac0f3d55dd18140171b7f4ca125f9545b06e1e7691a33f527000000000000000100000000000000010000000000000020699b396bee8bbb307d64d22163259543ac37ce00946fbcf73e966de05eef9c7300000000000000010000000000000000000000000000002036c82a644c18b80bdac66d0d7a55af68bc85b40e8261a12a9ed9577dcee96073000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e00000000000000000000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b5000000000000000600000000000000010000000000000001000000000000002055f2f80cf32bc6f1f07362774e677791e8734fe30fc5ad449f4b774eaa49e74f000000000000000100000000000000010000000000000020a91f430325e85f2ffdbcb606ec266aa97007b05091da9344a82f1815850ce69b0000000000000001000000000000000100000000000000209f7e22c7d1dec7bd7360c0814267e1798fd769c8160bec810dc6bcf6fdc2d9f800000000000000010000000000000001000000000000002011420a4ee9a29da7ddae2bcd24e020edee7628cf483723930d352730ffc2789c000000000000000100000000000000010000000000000020badc2e129abc53610f22682a1ffb0a74bda83f742dd0ecb0b08cfd6cbe03a6270000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000000000000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d37000000000000000500000000000000010000000000000001000000000000002068632f7198881a6101e366cd79d5974983362906a08365b044dddb7a454162040000000000000001000000000000000100000000000000206c6b0e0e89b0b49039c1a7adfc83697941ea7397b6981ba0bd48a1dfb41e5047000000000000000100000000000000010000000000000020601587465f813daa305f255198266f86d446e06b18fe6a38d22da16facdf643a000000000000000100000000000000010000000000000020621827b451905551eaf829ea054aab3211c35ca76af183ffa5f553c2f9db00e0000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e00000000000000030000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b500000000000000060000000000000001000000000000000000000000000000202b8392032be94ab4c1ee7918de44801642659e7321adce3c0ccb560f1d673f98000000000000000100000000000000000000000000000020ac23e9a233518f7270f2910712fb77590ee8169c28fdce8b90feb16d54c7bf450000000000000001000000000000000100000000000000209f7e22c7d1dec7bd7360c0814267e1798fd769c8160bec810dc6bcf6fdc2d9f800000000000000010000000000000001000000000000002011420a4ee9a29da7ddae2bcd24e020edee7628cf483723930d352730ffc2789c000000000000000100000000000000010000000000000020badc2e129abc53610f22682a1ffb0a74bda83f742dd0ecb0b08cfd6cbe03a6270000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000000300000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d37000000000000000500000000000000010000000000000000000000000000002097faac4a0447ebc8cef844bce3f6743c966afb7d9c33dbe847002b5f2d1907be000000000000000100000000000000000000000000000020e04fd887c0f5fbb6db27f67bde93e088d30f04a45169d19816d7ac6701f57e0f000000000000000100000000000000010000000000000020601587465f813daa305f255198266f86d446e06b18fe6a38d22da16facdf643a000000000000000100000000000000010000000000000020621827b451905551eaf829ea054aab3211c35ca76af183ffa5f553c2f9db00e0000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e00000000000000140000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000010000000000000020b78d455913e68b69982340bbcb6104033b343408b8e5e640f14760d553b048540000000000000001000000000000000100000000000000204776aa059720654baf75a1ad8e00f1e1dd12f285013b20f4b915a40263de15b10000000000000001000000000000000000000000000000205f4204bdf3a6ccca7f4e9be82c06c99875a14166efe4fa79736c5692c5c2be1000000000000000010000000000000001000000000000002074228cf6968b993babb2008379776ec0567e41667f5e4bc1bcdf4efeeb3e86e10000000000000001000000000000000000000000000000204f90cc70ed241fecba0e2e462d5fc9d01f44a8dd4483537b99c0454f1a4f7d180000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000001400000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000010000000000000020fea7c7796ec1a524fda960f5bdaa97daf937c5c18d682ec8f5e4b21c229754bd000000000000000100000000000000010000000000000020ac5b61c439aab57ec726c496c23c345c11dafd38d070cb477dc1da638fe1345f0000000000000001000000000000000000000000000000200363c105ec8d2707b1f0e2017bffda972db4e8da5174b96355a9d0fcfde90b2000000000000000010000000000000001000000000000002025dba43c20154eb4e9183e191f0597c61034c6517b0a2a8f9a18ab98f482f7c5000000000000000100000000000000000000000000000020fbaf96d5da18b3b058564a2b2e5276777b4e1a444a7e2a756a6cd7558a919b2b00000000000000140000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000010000000000000020b78d455913e68b69982340bbcb6104033b343408b8e5e640f14760d553b048540000000000000001000000000000000100000000000000204776aa059720654baf75a1ad8e00f1e1dd12f285013b20f4b915a40263de15b10000000000000001000000000000000000000000000000205f4204bdf3a6ccca7f4e9be82c06c99875a14166efe4fa79736c5692c5c2be1000000000000000010000000000000001000000000000002074228cf6968b993babb2008379776ec0567e41667f5e4bc1bcdf4efeeb3e86e10000000000000001000000000000000000000000000000204f90cc70ed241fecba0e2e462d5fc9d01f44a8dd4483537b99c0454f1a4f7d180000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000001400000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000010000000000000020fea7c7796ec1a524fda960f5bdaa97daf937c5c18d682ec8f5e4b21c229754bd000000000000000100000000000000010000000000000020ac5b61c439aab57ec726c496c23c345c11dafd38d070cb477dc1da638fe1345f0000000000000001000000000000000000000000000000200363c105ec8d2707b1f0e2017bffda972db4e8da5174b96355a9d0fcfde90b2000000000000000010000000000000001000000000000002025dba43c20154eb4e9183e191f0597c61034c6517b0a2a8f9a18ab98f482f7c5000000000000000100000000000000000000000000000020fbaf96d5da18b3b058564a2b2e5276777b4e1a444a7e2a756a6cd7558a919b2b00000000000000010000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000000000000000000020602009b6cf354dddb43100b7e74cfa2f69df355c0f94fea1e2fb35618a3e1c10000000000000000100000000000000010000000000000020a91f430325e85f2ffdbcb606ec266aa97007b05091da9344a82f1815850ce69b0000000000000001000000000000000100000000000000209f7e22c7d1dec7bd7360c0814267e1798fd769c8160bec810dc6bcf6fdc2d9f800000000000000010000000000000001000000000000002011420a4ee9a29da7ddae2bcd24e020edee7628cf483723930d352730ffc2789c000000000000000100000000000000010000000000000020badc2e129abc53610f22682a1ffb0a74bda83f742dd0ecb0b08cfd6cbe03a6270000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000000100000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000000000000000000020d4456f8adde89e7acf7f03d7b1629ddd7cd809892557d27bb962be1d31e18cf20000000000000001000000000000000100000000000000206c6b0e0e89b0b49039c1a7adfc83697941ea7397b6981ba0bd48a1dfb41e5047000000000000000100000000000000010000000000000020601587465f813daa305f255198266f86d446e06b18fe6a38d22da16facdf643a000000000000000100000000000000010000000000000020621827b451905551eaf829ea054aab3211c35ca76af183ffa5f553c2f9db00e0000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e00000000000000100000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b500000000000000060000000000000001000000000000000100000000000000207c1aa40ae97c97f452dea63398ce52a26a2db03daaeceb26f14b9ba21a85111900000000000000010000000000000001000000000000002057d2d9d03674b3e38a93b4406b4e1ffc878eccaf3461f1b576734c16afe22ae4000000000000000100000000000000010000000000000020e6861421be6a9fd34645f939609e4eb0ab267b7b82d254d5a511a655e073d81c00000000000000010000000000000001000000000000002074228cf6968b993babb2008379776ec0567e41667f5e4bc1bcdf4efeeb3e86e10000000000000001000000000000000000000000000000204f90cc70ed241fecba0e2e462d5fc9d01f44a8dd4483537b99c0454f1a4f7d180000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000001000000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000010000000000000020345fab90e725b27b13a4b4fbff5a81563e8390a9f9fa107825b2af11d2621764000000000000000100000000000000010000000000000020e8d78d98ab6f73caf41fe4be95ef5283fdc5337af173ba4ebdad0f294793efd3000000000000000100000000000000010000000000000020403f8b1e8f4ead900bb367e27daa73e741f742a172366697f6271850f34d853700000000000000010000000000000001000000000000002025dba43c20154eb4e9183e191f0597c61034c6517b0a2a8f9a18ab98f482f7c5000000000000000100000000000000000000000000000020fbaf96d5da18b3b058564a2b2e5276777b4e1a444a7e2a756a6cd7558a919b2b00000000000000000000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b5000000000000000600000000000000010000000000000001000000000000002055f2f80cf32bc6f1f07362774e677791e8734fe30fc5ad449f4b774eaa49e74f000000000000000100000000000000010000000000000020a91f430325e85f2ffdbcb606ec266aa97007b05091da9344a82f1815850ce69b0000000000000001000000000000000100000000000000209f7e22c7d1dec7bd7360c0814267e1798fd769c8160bec810dc6bcf6fdc2d9f800000000000000010000000000000001000000000000002011420a4ee9a29da7ddae2bcd24e020edee7628cf483723930d352730ffc2789c000000000000000100000000000000010000000000000020badc2e129abc53610f22682a1ffb0a74bda83f742dd0ecb0b08cfd6cbe03a6270000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000000000000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d37000000000000000500000000000000010000000000000001000000000000002068632f7198881a6101e366cd79d5974983362906a08365b044dddb7a454162040000000000000001000000000000000100000000000000206c6b0e0e89b0b49039c1a7adfc83697941ea7397b6981ba0bd48a1dfb41e5047000000000000000100000000000000010000000000000020601587465f813daa305f255198266f86d446e06b18fe6a38d22da16facdf643a000000000000000100000000000000010000000000000020621827b451905551eaf829ea054aab3211c35ca76af183ffa5f553c2f9db00e0000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e00000000000000030000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b500000000000000060000000000000001000000000000000000000000000000202b8392032be94ab4c1ee7918de44801642659e7321adce3c0ccb560f1d673f98000000000000000100000000000000000000000000000020ac23e9a233518f7270f2910712fb77590ee8169c28fdce8b90feb16d54c7bf450000000000000001000000000000000100000000000000209f7e22c7d1dec7bd7360c0814267e1798fd769c8160bec810dc6bcf6fdc2d9f800000000000000010000000000000001000000000000002011420a4ee9a29da7ddae2bcd24e020edee7628cf483723930d352730ffc2789c000000000000000100000000000000010000000000000020badc2e129abc53610f22682a1ffb0a74bda83f742dd0ecb0b08cfd6cbe03a6270000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000000300000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d37000000000000000500000000000000010000000000000000000000000000002097faac4a0447ebc8cef844bce3f6743c966afb7d9c33dbe847002b5f2d1907be000000000000000100000000000000000000000000000020e04fd887c0f5fbb6db27f67bde93e088d30f04a45169d19816d7ac6701f57e0f000000000000000100000000000000010000000000000020601587465f813daa305f255198266f86d446e06b18fe6a38d22da16facdf643a000000000000000100000000000000010000000000000020621827b451905551eaf829ea054aab3211c35ca76af183ffa5f553c2f9db00e0000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e000000000000000e0000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b5000000000000000600000000000000010000000000000001000000000000002088b3b413b201a3914f1af1050f37ee5add3e3f762c993ed30765ba47bb34e949000000000000000100000000000000000000000000000020658ccefa4c5eec6b0b7cf50f407db621e28f0890874affc1a0cb354761e5a4700000000000000001000000000000000000000000000000206d0190fa73226ecea58d4fa21f0307d7b3f9c9df4cf0a85eafe026290e095f980000000000000001000000000000000000000000000000209426233854beda52809595ae5fa911799a530fed0a60de3c7efbd8ff6606a6b1000000000000000100000000000000010000000000000020badc2e129abc53610f22682a1ffb0a74bda83f742dd0ecb0b08cfd6cbe03a6270000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000000e00000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d37000000000000000500000000000000010000000000000001000000000000002073ce048b3dd16c5e4de22971ae3058ad48ee51e4ad562f8879b49588e7a9909f0000000000000001000000000000000000000000000000203cd3df94a6963f46bdfe44751e6dc6ad5eb80b2b6041ba3da949b324db729c35000000000000000100000000000000000000000000000020a776a89bc4f2a786eba2c34381fe99ee2f8ceba73c8ad4c38ed66f45a43aeb3300000000000000010000000000000000000000000000002036c82a644c18b80bdac66d0d7a55af68bc85b40e8261a12a9ed9577dcee96073000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e00000000000000390000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b5000000000000000600000000000000010000000000000000000000000000002016c8ba2af2a189e5311fa8a742a0c66832d7a11179bd78c369312b012bed1f3a000000000000000100000000000000010000000000000020fe378b2f853fd3258816909a28ae6e2fa1c36e7dfb7672a782396773e377d5c00000000000000001000000000000000100000000000000204587dabcb9a2173bd11f5e907bc63a061bd0259c303585553275acad80cbb75e000000000000000100000000000000000000000000000020b135801365efafb9c75508970632fde9fd537c15321118fabd698ac97eb960e3000000000000000100000000000000000000000000000020c492c862eb7036072f242d732e2322b2f3aea9bf014f6366103d5b4c272a8b150000000000000001000000000000000000000000000000204542a6a3c51453625650384282b528364f8869670db893316e927172ddfe2747000000000000001900000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d3700000000000000050000000000000001000000000000000000000000000000200dced4058ff4b92a15f33efa1070873d8d2365867bca476b260bc2f4afa9ae4d000000000000000100000000000000010000000000000020bfd362600dccae9031f70ffae7875813d37541f92f07a269b1b08afeac36d733000000000000000100000000000000010000000000000020c886027207546165dc36f9feb8449e2493f24eeb789c2d655e7b0d3e1ae16178000000000000000100000000000000000000000000000020bea715dcebfcd755fda508b5a6d96220a218c77f36045e2f9e03186ca85c1f8d000000000000000100000000000000000000000000000020fbaf96d5da18b3b058564a2b2e5276777b4e1a444a7e2a756a6cd7558a919b2b00000000000000050000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000000000000000000020850ff1a7549d9e13f85c404a63fd9b10ce96ddb00ac14e2902eac5862d049387000000000000000100000000000000010000000000000020a0288dda28990f85e476499229db158242c07c3c8a84a6f5abaa6a09507ff850000000000000000100000000000000000000000000000020902287d1561c5e2a9894b3b3f0d8566415fad06bb650fe2c25b82a51b546261c00000000000000010000000000000001000000000000002011420a4ee9a29da7ddae2bcd24e020edee7628cf483723930d352730ffc2789c000000000000000100000000000000010000000000000020badc2e129abc53610f22682a1ffb0a74bda83f742dd0ecb0b08cfd6cbe03a6270000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000000500000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d37000000000000000500000000000000010000000000000000000000000000002044ae6413dacf05820ed794f312ff025dbe07f64e0bccce21488305bac46622da0000000000000001000000000000000100000000000000206cdc48c8ce67892950287b173fd6fe41fce765ef313cd71b70b31229576c8a3a0000000000000001000000000000000000000000000000205ac3e0c0928dc1f95b3a0cb7133d4fe46d1c0cc3d390de16f8dd6b622d40dc60000000000000000100000000000000010000000000000020621827b451905551eaf829ea054aab3211c35ca76af183ffa5f553c2f9db00e0000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e00000000000000120000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b500000000000000060000000000000001000000000000000100000000000000208ff329b91578b948d8a81916c25d00afc345ca817221de89f21a45406d75434a000000000000000100000000000000000000000000000020d067d64a08b6468ea39bf48520da7c019ee74a8065a4605a092c35ca515ea8c3000000000000000100000000000000010000000000000020e6861421be6a9fd34645f939609e4eb0ab267b7b82d254d5a511a655e073d81c00000000000000010000000000000001000000000000002074228cf6968b993babb2008379776ec0567e41667f5e4bc1bcdf4efeeb3e86e10000000000000001000000000000000000000000000000204f90cc70ed241fecba0e2e462d5fc9d01f44a8dd4483537b99c0454f1a4f7d180000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000001200000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000010000000000000020f4e83e9a425241e39c73bdab9fea3afc510bf68e07c394713242850c9f3c90af000000000000000100000000000000000000000000000020f0ec652053e3b82e2a05505cbf5a8b6250ee4ccf2c6d6208c5afc5f67ee7676f000000000000000100000000000000010000000000000020403f8b1e8f4ead900bb367e27daa73e741f742a172366697f6271850f34d853700000000000000010000000000000001000000000000002025dba43c20154eb4e9183e191f0597c61034c6517b0a2a8f9a18ab98f482f7c5000000000000000100000000000000000000000000000020fbaf96d5da18b3b058564a2b2e5276777b4e1a444a7e2a756a6cd7558a919b2b00000000000000210000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000000000000000000020fb79384b9c177bced9bc175cdf404080a3171feffeb0eef20962d87ac45fae66000000000000000100000000000000010000000000000020a7af022083c851de2c525ced8f9fd109351e953d42093d3e7890a9aec3b792ed0000000000000001000000000000000100000000000000209ecf5eb00ae02bc6c96683d195c3bcdc1abd10ee8958abdacae0a04c9fdea068000000000000000100000000000000010000000000000020967128670c13aef78d9a62dafa580cce4ebfaac9d3d33e8c96ef7874404b54c0000000000000000100000000000000010000000000000020db06796a664833a518e2c00bf6346fb8db10b06ea8fb1307c8e7a7f19004f1390000000000000001000000000000000000000000000000204542a6a3c51453625650384282b528364f8869670db893316e927172ddfe2747000000000000000100000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000000000000000000020d4456f8adde89e7acf7f03d7b1629ddd7cd809892557d27bb962be1d31e18cf20000000000000001000000000000000100000000000000206c6b0e0e89b0b49039c1a7adfc83697941ea7397b6981ba0bd48a1dfb41e5047000000000000000100000000000000010000000000000020601587465f813daa305f255198266f86d446e06b18fe6a38d22da16facdf643a000000000000000100000000000000010000000000000020621827b451905551eaf829ea054aab3211c35ca76af183ffa5f553c2f9db00e0000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e00000000000000210000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000000000000000000020fb79384b9c177bced9bc175cdf404080a3171feffeb0eef20962d87ac45fae66000000000000000100000000000000010000000000000020a7af022083c851de2c525ced8f9fd109351e953d42093d3e7890a9aec3b792ed0000000000000001000000000000000100000000000000209ecf5eb00ae02bc6c96683d195c3bcdc1abd10ee8958abdacae0a04c9fdea068000000000000000100000000000000010000000000000020967128670c13aef78d9a62dafa580cce4ebfaac9d3d33e8c96ef7874404b54c0000000000000000100000000000000010000000000000020db06796a664833a518e2c00bf6346fb8db10b06ea8fb1307c8e7a7f19004f1390000000000000001000000000000000000000000000000204542a6a3c51453625650384282b528364f8869670db893316e927172ddfe2747000000000000000100000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000000000000000000020d4456f8adde89e7acf7f03d7b1629ddd7cd809892557d27bb962be1d31e18cf20000000000000001000000000000000100000000000000206c6b0e0e89b0b49039c1a7adfc83697941ea7397b6981ba0bd48a1dfb41e5047000000000000000100000000000000010000000000000020601587465f813daa305f255198266f86d446e06b18fe6a38d22da16facdf643a000000000000000100000000000000010000000000000020621827b451905551eaf829ea054aab3211c35ca76af183ffa5f553c2f9db00e0000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e000000000000000b0000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000000000000000000020bd511ba2cab651bf7d54911a9b47b203eed978a8f3913b54c3d3770eee8b4229000000000000000100000000000000000000000000000020e7e03ca6277364bc25585095cd4ebe22831f1a59b7907aa3edfc7647ef98563100000000000000010000000000000001000000000000002077a72d4a8be9a9cf3f2434bb4699c5623aec717f1270fe77f4a2731328ab348e0000000000000001000000000000000000000000000000209426233854beda52809595ae5fa911799a530fed0a60de3c7efbd8ff6606a6b1000000000000000100000000000000010000000000000020badc2e129abc53610f22682a1ffb0a74bda83f742dd0ecb0b08cfd6cbe03a6270000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000000b00000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000000000000000000020020fb0d418f335acb45648b34e1cfd88648c6a8edbbf0cfa344bf43c9d954d80000000000000000100000000000000000000000000000020f79785de95b5398ac0f3d55dd18140171b7f4ca125f9545b06e1e7691a33f527000000000000000100000000000000010000000000000020699b396bee8bbb307d64d22163259543ac37ce00946fbcf73e966de05eef9c7300000000000000010000000000000000000000000000002036c82a644c18b80bdac66d0d7a55af68bc85b40e8261a12a9ed9577dcee96073000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e00000000000000220000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b5000000000000000600000000000000010000000000000001000000000000002089c9989c008f16715e52ed7b89f7f0f72ba15c94afcf7c6c0c9f48c20c404f100000000000000001000000000000000000000000000000207efbe5c96cdcad9840a44e4808cc077f7f529568375073749896306d003942d70000000000000001000000000000000100000000000000209ecf5eb00ae02bc6c96683d195c3bcdc1abd10ee8958abdacae0a04c9fdea068000000000000000100000000000000010000000000000020967128670c13aef78d9a62dafa580cce4ebfaac9d3d33e8c96ef7874404b54c0000000000000000100000000000000010000000000000020db06796a664833a518e2c00bf6346fb8db10b06ea8fb1307c8e7a7f19004f1390000000000000001000000000000000000000000000000204542a6a3c51453625650384282b528364f8869670db893316e927172ddfe2747000000000000000200000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000010000000000000020ab69f2a64b9f895600d3f2076746a7d8e9298844e5bd60da61e26ebfcf238c5a000000000000000100000000000000000000000000000020e04fd887c0f5fbb6db27f67bde93e088d30f04a45169d19816d7ac6701f57e0f000000000000000100000000000000010000000000000020601587465f813daa305f255198266f86d446e06b18fe6a38d22da16facdf643a000000000000000100000000000000010000000000000020621827b451905551eaf829ea054aab3211c35ca76af183ffa5f553c2f9db00e0000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e000000000000001c0000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b500000000000000060000000000000001000000000000000100000000000000206d9a358b33dcf96c3067538617c53b57dd6f2a00b55df5e16231d9886ef2309e000000000000000100000000000000010000000000000020b1b98dc4c3810469ed92d34af15b9dbb66a057d2970d5d34c334e5e997e66c530000000000000001000000000000000000000000000000203e6d9a000e282de64ca518d452164e1ee46e2b8594d53b6571bcd13e8c9e633e000000000000000100000000000000000000000000000020ddecb82087a47e9f37b5b8ef44a354d403416d4111650fc368c40ec20d6221d90000000000000001000000000000000000000000000000204f90cc70ed241fecba0e2e462d5fc9d01f44a8dd4483537b99c0454f1a4f7d180000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000001c00000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000010000000000000020ef6887e319d855b8560c7872c9f2b7503306572e9eb6b791fd550588a2802115000000000000000100000000000000010000000000000020305b6f32a8ad902134cb88e367d52b33870079a8ff6676b1bfa2a7b0e4907234000000000000000100000000000000000000000000000020d0934d8f0b87867233aedc2b55e8222542822036fda1786e06a9b62af2083fae000000000000000100000000000000000000000000000020bea715dcebfcd755fda508b5a6d96220a218c77f36045e2f9e03186ca85c1f8d000000000000000100000000000000000000000000000020fbaf96d5da18b3b058564a2b2e5276777b4e1a444a7e2a756a6cd7558a919b2b00000000000000023254041bd63753c47759ad6b098f5936b3b79ab40cf8baf940a4056793732116341a75c50fe8bc0b178ae869bf6b6f59676f7fed33b48e54234827dea68995f0643d78ea \ No newline at end of file diff --git a/contracts/zkllvm/circuit6/modular_verifier.sol b/contracts/zkllvm/circuit6/modular_verifier.sol index 16911a8..c21356c 100644 --- a/contracts/zkllvm/circuit6/modular_verifier.sol +++ b/contracts/zkllvm/circuit6/modular_verifier.sol @@ -39,8 +39,8 @@ contract modular_verifier_circuit6 is IModularVerifier{ address _permutation_argument_address; address _lookup_argument_address; address _commitment_contract_address; - uint64 constant sorted_columns = 7; - uint64 constant f_parts = 8; // Individually on parts + uint64 constant sorted_columns = 7; + uint64 constant f_parts = 9; uint64 constant z_offset = 0xc9; uint64 constant table_offset = z_offset + 0x80 * 4 + 0xc0; uint64 constant table_end_offset = table_offset + 608; @@ -48,6 +48,8 @@ contract modular_verifier_circuit6 is IModularVerifier{ uint64 constant rows_amount = 8; uint256 constant omega = 199455130043951077247265858823823987229570523056509026484192158816218200659; uint256 constant special_selectors_offset = z_offset + 4 * 0x80; + + function initialize( // address permutation_argument_address, @@ -80,8 +82,7 @@ contract modular_verifier_circuit6 is IModularVerifier{ bool b; } - // Public input columns - function public_input_direct(bytes calldata blob, uint256[] calldata public_input, verifier_state memory state) internal view +function public_input_direct(bytes calldata blob, uint256[] calldata public_input, verifier_state memory state) internal view returns (bool check){ check = true; @@ -110,16 +111,12 @@ contract modular_verifier_circuit6 is IModularVerifier{ Omega = mulmod(Omega, omega, modulus); unchecked{i++;} } - result = mulmod( - result, addmod(field.pow_small(state.xi, rows_amount, modulus), modulus - 1, modulus), modulus - ); - result = mulmod(result, field.inverse_static(rows_amount, modulus), modulus); + result = mulmod(result, state.Z_at_xi, modulus); // Input is proof_map.eval_proof_combined_value_offset - if( result != basic_marshalling.get_uint256_be( - blob, 6334575803019471875 - )) check = false; + if( result != mulmod(basic_marshalling.get_uint256_be(blob, 16284747935102926605), rows_amount, modulus)) check = false; } + function verify( bytes calldata blob, @@ -136,13 +133,15 @@ contract modular_verifier_circuit6 is IModularVerifier{ modulus ); - //0. Direct public input check + + //Direct public input check if(public_input.length > 0) { if (!public_input_direct(blob[905:905+736], public_input, state)) { console.log("Wrong public input!"); state.b = false; } } + //1. Init transcript types.transcript_data memory tr_state; @@ -192,14 +191,12 @@ contract modular_verifier_circuit6 is IModularVerifier{ IGateArgument modular_gate_argument = IGateArgument(_gate_argument_address); state.F[7] = modular_gate_argument.verify(blob[table_offset:table_end_offset], transcript.get_field_challenge(tr_state, modulus)); } - - // No public input gate - + //No public input gate uint256 F_consolidated; { //7. Push quotient to transcript for( uint8 i = 0; i < f_parts;){ - F_consolidated = addmod(F_consolidated, mulmod(state.F[i],transcript.get_field_challenge(tr_state, modulus), modulus), modulus); + F_consolidated = addmod(F_consolidated, mulmod(state.F[i], transcript.get_field_challenge(tr_state, modulus), modulus), modulus); unchecked{i++;} } uint256 points_num = basic_marshalling.get_length(blob, 0xa1 + 0x20); diff --git a/contracts/zkllvm/circuit6/proof.bin b/contracts/zkllvm/circuit6/proof.bin index dab61d5..33f1581 100644 --- a/contracts/zkllvm/circuit6/proof.bin +++ b/contracts/zkllvm/circuit6/proof.bin @@ -1 +1 @@ -0x040000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec3b8a6660e79ffa5bc1b3aeda35a0aeab6e7b408c29c83550df3bb166597efe6800000000000000533b8a6660e79ffa5bc1b3aeda35a0aeab6e7b408c29c83550df3bb166597efe680d48b9f9a1f52577da4d5cb94d65e04052d79db412bde4a0173fa42abd6d4a4529b3ffe4861fe3cac8826a430c2369589f4ddeccabb52625f775b34bbf7af804026ba1e029c9bb574382cf9e82fd61417bef7b8854687e04db1103e8b32273581083ff769e9f72f5ea8c134f3cb10ebab5b18f0b3ea2d36b09c4edb3bd66d8110c1a2960d0f0a8b4518e0e188ef2e6476bad69a9a60a76184755138b7fac40b81293fd51191d3ecd94bc608c2f7549a56a31323c2fe127fb97ab7395b30238543c82cee414b34b8597c6467acabe7f651a6310503e344e7964a961b97e5d43983b8a6660e79ffa5bc1b3aeda35a0aeab6e7b408c29c83550df3bb166597efe680d48b9f9a1f52577da4d5cb94d65e04052d79db412bde4a0173fa42abd6d4a4529b3ffe4861fe3cac8826a430c2369589f4ddeccabb52625f775b34bbf7af804026ba1e029c9bb574382cf9e82fd61417bef7b8854687e04db1103e8b32273581083ff769e9f72f5ea8c134f3cb10ebab5b18f0b3ea2d36b09c4edb3bd66d8110c1a2960d0f0a8b4518e0e188ef2e6476bad69a9a60a76184755138b7fac40b81293fd51191d3ecd94bc608c2f7549a56a31323c2fe127fb97ab7395b30238543c82cee414b34b8597c6467acabe7f651a6310503e344e7964a961b97e5d43981fcae388c10f0310e6552f841d230c8abbc5e3952fd6e048dbcb86da2bf4dac63e4a437fef1a8cbcc09bf7ef5cd0de7413278462f4a280672fe7fc60fbb24d1f38fb1266f415fbd2618cfb2426d85025c3e9ac6c13d4ce1cb5709b216b4da6b23ad5f1e1878da42a2ccdff2145677506b43c7f3953fd0fb5837646c7449552fa1fcae388c10f0310e6552f841d230c8abbc5e3952fd6e048dbcb86da2bf4dac61af710639a33a9ee25a99551d3fd807e70499333913a0f7ce486c5d6cd45a1b60e3b793fd5a68f9a482cf67859f3839a0135ebf429b91712d8b08c7fa3a7567c25783486835278b791d4f86fac81f6b5f44bd4014429fd274ea0d8ff2b30eabb378ae8b217281e98232cf4c6dc2b21498547a11fd3025f8ab5fc7ade97636da70b9c4039ea8b3beac33234743333ca87f5134f53de0e5205308912bb2f311cc028e0b7f36cbe74e06f193787efb9169bffc97bda59757876b0ee320f0e0284712fb0a4b594cb133a84d3b178be4595d031abfaaf17d83f3aa7f7c86c6477497e39b510be988b37278da62e5c6fcd77080526baae86e6536138ce73158217757114fad50563699062130a310707b77fc1bc087e3b682af35da42912bbed2a3db539f429a1fa53e4b8ea5cf81151d917a9c6df281fe390dd60fc915b3d85c942d23f79c1653760ef434bcdd9325ea674961fd9467593c46b4c11254bc5b581f4752714e715c848cc082c40d96b40a49ffae3a9e3c2a3707aed3c5dc8c493c3852524d458cd7f86fdba1387bf56c6d2174e370b3a80acf28f008c4d6010f5d0c592255f2a95b76358c4ecdcd15a9d757e6ed48acf298ec60238d31894388f75d2432c0ddd3571b65a3f78c96f8a052a2f5c1059f2586d8b149d986300e1c76cb79b3f79c1653760ef434bcdd9325ea674961fd9467593c46b4c11254bc5b581f47524d458cd7f86fdba1387bf56c6d2174e370b3a80acf28f008c4d6010f5d0c59235d6c0e2bc4bf9b3478b00e830212313714dbb35ed434ef0f81e1f97afa9dde0207754c58fa029b19d60823cb9b80600c65426bb7cd0f76bd4bb35a6ab228f6d093cfc0545994d8462194e84f773fb5e55e6f18257f6b4c0b7759840e0eae616000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011386e11508028bd92fcb743e3ceb317fe6f5df7f6f1d300aa7f809d449ea0c022e4dfe7d12164b6239e7c9eb2ebdca4cbcc6d444a2201b7c000b2ef4486f2e9301eb82bec9b8486ae3708fadc07941183b8fb79edf197285a2a872fdb26e9f49308d1e68759d249863813a3c914ced6451c4e9e114040b78d30b1753caf4562e1381845cd9d1929d28af991511cd6b73c337557dec89e983ec4ca6a61326d025104662ae04621992f1644ff6e07dbabf4fc02d8fb207b7d7a581b064f8a49618211033eb9c643f5aa17d6d6ca1bb6b7eafbc604d1357cc738f677838f84f699b2e5a3d96333ebff3ee0af36678a36a49a49b81dac445b83cfd9afafa3d1b765122742dea9cfabcd5006f3d3344fd28adb33119837314942138ce20930c14a3ef02642d30fb1a2590d0ff02320494e00adf51ccb1ed181c5985a32605c23c8e4c04060aa38c19f2e05ca7a9739317f6b800cb62fb5239e178153a818b4c56d2500eb257f27891f0ca13714e85da863122c32f475ac530ccaeeb609063d779997c2c540d28920a418db3a6fe15b4809af09d78b633ac8080e545dba5e0213495740ad6d6dd1167d144780a998114791307ca8d6b1ca4394812e2626e2bb0fa267539e43bc6c21a50a9f8a3fdaa801b11c295065e29310dd12d9dca0d29ba0c3ec4378ce952f611196c6e223a96364b0e815988e7195d6a1fe4739343f43891a05d0523a72265b1e1ba213d0539480b67cc811195501ca6efe7e67107a0dc596f6f3ef15adc4bf1cca3a0d046d0335a292ffaa53f387c1c6cf3021946253a125e8c1b6584e14daa5c859bda222ad588895a241f0e837a115d6a8dfbbeabf029804a08cb88878c651b92667a32bbcd6e579972825ff0330f1cd625bb36b5bda0a940253c4909ed3dfaa23ea5f69763398832bb1b29e242fdb37e42ae03817d76f26831d06a215bd7d99e225fb0e631e3cccef4daf6126e6438169ad736971bd733e60c2e5bfc1a4f690282180993a161dc042d6bc330b9d726aaef5476d772153a2b3316f51d7f572789ff802a0ab7ea5a94820235a8e4a479befdd609b0e39b911716bf4f3d0177c64e2a1e5806404df80697708d5955c4506b023c764d8566128b118bd25cd4a88e33805f8b08bafb39a45de3d3b9ef1fe0d8dda473a3381a952b33d23ac99eb5e027d7f8b3ac77261c44217a8df7cf370485223a1991d22dbe7e2f92c088ce97cfc0af663c5a49a20aa3a911020ac06609cf037b26026da6f43d3c85b46332cda28f4c9a1d257ce7b66c404ff57c3ad427693e3320e5a08da3ab3184098bcd5e02c70ae14e1ef4961d49b2d955779a7f67196a834e0b98c93ec41ee89881b9bca881ba7c672deb97409af7d2c942480213e6c407fdf32966b4c806b2624e45eeb55e757026af6b0de308efd88a2a8f5b95d6f536fbbb89c036f41463da7e94e3f3c10299bd1c2b60d8c9d5530eed1292a4fc5d472eabf191dc92224c25c11f608b7574a554eb06636054d8ba984845e7f1f2393da13aa3db4c4518525e3d2ff319d7ec1e5de34a5e5abd048b28a36d173bfbaba0dafab00a56882e3ce1069ab30c677937f40ec2cc289905bec7b29d0141ee6c0d8449c71561200951110389a4d974683608aadbaac0b5cd9ef1e88b6ed648ac7bf530321e2feb178f6389ae42eddc7b9a4073bbd19cd0d1903da304e2079bef3e4e68fedc349e3a2d32c27d6c01b6f7bb149b2e591fa1958325ac84fcfb89d2fd23544096d77903d705e49c48196ba36aa0458c744e62e738feecc9abb9734a89bb3278e4aaa8000000000000000a00100102020203110407000000000000002c0202020202020202030303030303020202010202010101010101010101010101010101010103030303030303000000000000000200000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff259000000000000000201010000000000000dc00a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa135eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5603256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c85250da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b6044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b2a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a1584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff770a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa135eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5603256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c85250da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b6044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b2a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a1584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff77291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa126c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b352254da5cad22b2bb31a255d43899f5be174c33d783688ffa31918b2d0e604e3319a2a83a6dd65b246c9f7d539b67b09c3b0afe9bcc31f641e4746e726732ac054d2413280ec17c6620f5d9331f6279010efdd8b39bd72e8d5068ef8a9e85020e21a3242b6971d3fe4ccb9ef696b9135da7bcf4fca2d262a5eaa074516d97dc040243d4624103ea078037d2db2be41cd84ba35cf91ab2d2197a06bed39137111249a9fbefe0ae6d10083758728c436f632e70c3dee37c0fa87bf17cbf10fe1d09b2b29c8babd2a0b67e37f0c6846a560b6c78a30f0ca75ad56ceaedaf1344f12393439f711e2b08f75b68f05cb3b276815f865555ed2e10a9d53c730721c2362624398d0ba3a6e2b9dfd9febb35b3873f9ce34b46adf497ab23701e0e96f06a0da19af7f417d8eb69f248beb2644edf3b290f5bc8b5ed5b52594d3115ed7ada21cb3739171b79e6d1926a281a86449c7ace69200e0765a4f796d0fe079a1014262571d9c779e3853b1a218e4203c4bd360ea7a715413a46d34827875fea93fc2624398d0ba3a6e2b9dfd9febb35b3873f9ce34b46adf497ab23701e0e96f06a0da19af7f417d8eb69f248beb2644edf3b290f5bc8b5ed5b52594d3115ed7ada27177fb2c298c3e589cfb206d276b9d07679c8d79643496a368a65eef2d2fb491bf90a1889423f7d0d781be9bda36aaff0d5258b1656ea0fe114fc9590d8da451ad4c5a96eb27d29759dd9ea539f7bde9c2c9e9e0317560410399d89568fb04f3baa8b5930a0b9898617b57e6630c42e29d90a9259c187073aa0ce5f0928421d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001215ebba77b4db36265d82f216ebe040b8e43301151f85e4da04175b72540d2b4093344aa5551c9d5f5e550ed013a08dfbd10410b94fdc010412822d567e884b92bd42515e3b696dd829d945b17c664461221a67dbbecc87c05d9d07f5f0a71853dbed5249e75063b30ad99d106d9530cc22653c567b0f4e01557b039211155c617da6479265927e185d2d73d372bff4f2e873a95359b8b6a0f37ad0179950c34200d21315a898ee21cc4662f5ffc477ab2baaa06ae28764c04764f2aa609fd1418a741d5987f7763923aa3a9e4d825a3c611007d2d1a3fe1c6dc3b4f6301313525cef83c7d3327068ecd76d87c5c57d360343b129e81ea96cca82a2e75b4d5f205a6e70ca2ab65100f014f978e9796945da1c77551e3f0a9dd6e3fe21abf9143108255465a529a572ae1b1b54394dad36846488042a56ec14c6fe952d18df069355b2b6332619f6e17c56f48b51e1ec19c549258d3efbf5371381317cb587cbf2f1b50bd9b18486bc4d1ad07b8f37ba24a5eb2749bdab1f57267741639252447170f6423726cf447b56acc165c82efb98dc57b8417f3660477fde88802ece7581c120860c5b2f4dd377e5bb6c685c77ab528d9a3c8445a577b48155d621c6c512d00fa2f4cfdd0530e324ccc8d77190144133bfb458fee8ce0e5815f1958afaf3aabc6d365494c3fe7a8b4b601d7609bc1d7197ad8ea2883b415324b5011208f08b38855ec1ef24871d5e05e65b5151207792f3d2d606d35a27411cafe2a00f016f8dd3503b8f3a886f6381060bcbc3f08922007b5bcdfbde3a85380fa7a39b71ea68aa63202dabb517b741ead5ebc7419f2f5f139d5498aa4d31ce2c27363260306246aae23311b3d68ec6e942727bd2eecdd2f46c917a2f188697e15467b1819ddae318bf4dcd55b17f3fa4e4d99ece632e45bff54b54e313e4ec274c10c0c2b92d8f8fb08ed61065655fc37c98dbf66bc23cfd92a39d6452ec97465132f562ec078961936ee31a1f5c4f08b6f7808883adc2b1dc794be6eef4b647de38e580f3cec39d5447ba79dcd3f56481d4476689f13e26a03dfa79e41551822693b4131fc43cb87d7eedffac21f8ce47604d5b52b6f28a05bc408c76d759890a0228920cd61561e622fbf4729eef4a6b6262af44089635c720e09d25fb6260a60a0271a7a8e3eefe81bd012c1fcba3907be1af3eb3798a5351c2f22196f01520756063505db2eaca7cb6c118a0773a439208666a25ebc401aed8634853835bca17ccf179d60261259eae4300e1035a637144d282b386114aa91cd89a1ea421aa9b0be3f791c9a36cd2080991066a02005ce3bd9e9f0adc2ed35646d789f172e81892225ca0650c0869e913ee053a594ba70e27f14edfacd1fe986f6450333a380f3033edb9eb85b150517c9774aecaecafb4257e4501c81c4a7bbabde2660e5ea3ae807121e6171151738ff202a2644f5fd60e1b6ea1710bb69bebe72a1d228cf17891d575cd005ed347d37490087b7337d03814da192397db0618d95092f4370928d061f655fbbc7963ae95add872fba10115aee62ad7162c4d708207857af60d7733cfcc337e7958d062f5ed29dcec2feb3009681f2ca026a5512013888cfa97bad17616564587c5586670c03e25e4876314d5e8d82710537d261878f98e7f2037f27c25397202a42f211f61cc3b7a43ba4c8900e38ff31a3ff7fd68b05b1bc0b093a96b2855133dbb7ad638dd547d4c769b5dbc814147f8977e09f3caa55b3d95f2a8885194bdcf7f5d6079d10bea0d29a9635ed4cd029d8434a775c821a4e16da05a21c604c153979d4d5b4169bc22e5da3e920853c172c36774e5abe1b2aad2007b1dc16bc129755a8ea24021754ec94a5fabca5cdf72b34a66ced589fe4fdc117c3f1468f9773097839a306a1e1e8dd6d6e0213cdcb86851a96088ba8cb7a840281fa11cec3160470754e0f11984bab0e0a38283e1e63ea8fac5f63707f543e3cf2c34064b11fabd018c452a280ab136da447d4adae8629dd21611d8f56f6953a49d1d59f338127fda5bf82217f116db50d0be89b62d5dc5b85e022cfa092d810f4df5397033e67469c4a07ac1a5e2e7c2d269c004fe4688e0de28dc37503b11321004ffa7604461606ad6cae91468b08bd4a3bb88dd90406214dd855fe13a63292e1f572c5d814410be7311ecf189116e8baa3a73167b838da308efb62ad05281314f0ad7c196b92dc983413b825753eba9d072f5e8ee73470b2612ba69b3c0a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa135eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5603256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c85250da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b6044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b2a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a1584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff770a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa135eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5603256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c85250da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b6044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b2a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a1584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff77291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa126c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b352254da5cad22b2bb31a255d43899f5be174c33d783688ffa31918b2d0e604e3319a2a83a6dd65b246c9f7d539b67b09c3b0afe9bcc31f641e4746e726732ac054d2413280ec17c6620f5d9331f6279010efdd8b39bd72e8d5068ef8a9e85020e21a3242b6971d3fe4ccb9ef696b9135da7bcf4fca2d262a5eaa074516d97dc040243d4624103ea078037d2db2be41cd84ba35cf91ab2d2197a06bed39137111249a9fbefe0ae6d10083758728c436f632e70c3dee37c0fa87bf17cbf10fe1d09b2b29c8babd2a0b67e37f0c6846a560b6c78a30f0ca75ad56ceaedaf1344f12393439f711e2b08f75b68f05cb3b276815f865555ed2e10a9d53c730721c2362624398d0ba3a6e2b9dfd9febb35b3873f9ce34b46adf497ab23701e0e96f06a0da19af7f417d8eb69f248beb2644edf3b290f5bc8b5ed5b52594d3115ed7ada21cb3739171b79e6d1926a281a86449c7ace69200e0765a4f796d0fe079a1014262571d9c779e3853b1a218e4203c4bd360ea7a715413a46d34827875fea93fc2624398d0ba3a6e2b9dfd9febb35b3873f9ce34b46adf497ab23701e0e96f06a0da19af7f417d8eb69f248beb2644edf3b290f5bc8b5ed5b52594d3115ed7ada27177fb2c298c3e589cfb206d276b9d07679c8d79643496a368a65eef2d2fb491bf90a1889423f7d0d781be9bda36aaff0d5258b1656ea0fe114fc9590d8da451ad4c5a96eb27d29759dd9ea539f7bde9c2c9e9e0317560410399d89568fb04f3baa8b5930a0b9898617b57e6630c42e29d90a9259c187073aa0ce5f0928421d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001215ebba77b4db36265d82f216ebe040b8e43301151f85e4da04175b72540d2b4093344aa5551c9d5f5e550ed013a08dfbd10410b94fdc010412822d567e884b92bd42515e3b696dd829d945b17c664461221a67dbbecc87c05d9d07f5f0a71853dbed5249e75063b30ad99d106d9530cc22653c567b0f4e01557b039211155c617da6479265927e185d2d73d372bff4f2e873a95359b8b6a0f37ad0179950c34200d21315a898ee21cc4662f5ffc477ab2baaa06ae28764c04764f2aa609fd1418a741d5987f7763923aa3a9e4d825a3c611007d2d1a3fe1c6dc3b4f6301313525cef83c7d3327068ecd76d87c5c57d360343b129e81ea96cca82a2e75b4d5f205a6e70ca2ab65100f014f978e9796945da1c77551e3f0a9dd6e3fe21abf9143108255465a529a572ae1b1b54394dad36846488042a56ec14c6fe952d18df069355b2b6332619f6e17c56f48b51e1ec19c549258d3efbf5371381317cb587cbf2f1b50bd9b18486bc4d1ad07b8f37ba24a5eb2749bdab1f57267741639252447170f6423726cf447b56acc165c82efb98dc57b8417f3660477fde88802ece7581c120860c5b2f4dd377e5bb6c685c77ab528d9a3c8445a577b48155d621c6c512d00fa2f4cfdd0530e324ccc8d77190144133bfb458fee8ce0e5815f1958afaf3aabc6d365494c3fe7a8b4b601d7609bc1d7197ad8ea2883b415324b5011208f08b38855ec1ef24871d5e05e65b5151207792f3d2d606d35a27411cafe2a00f016f8dd3503b8f3a886f6381060bcbc3f08922007b5bcdfbde3a85380fa7a39b71ea68aa63202dabb517b741ead5ebc7419f2f5f139d5498aa4d31ce2c27363260306246aae23311b3d68ec6e942727bd2eecdd2f46c917a2f188697e15467b1819ddae318bf4dcd55b17f3fa4e4d99ece632e45bff54b54e313e4ec274c10c0c2b92d8f8fb08ed61065655fc37c98dbf66bc23cfd92a39d6452ec97465132f562ec078961936ee31a1f5c4f08b6f7808883adc2b1dc794be6eef4b647de38e580f3cec39d5447ba79dcd3f56481d4476689f13e26a03dfa79e41551822693b4131fc43cb87d7eedffac21f8ce47604d5b52b6f28a05bc408c76d759890a0228920cd61561e622fbf4729eef4a6b6262af44089635c720e09d25fb6260a60a0271a7a8e3eefe81bd012c1fcba3907be1af3eb3798a5351c2f22196f01520756063505db2eaca7cb6c118a0773a439208666a25ebc401aed8634853835bca17ccf179d60261259eae4300e1035a637144d282b386114aa91cd89a1ea421aa9b0be3f791c9a36cd2080991066a02005ce3bd9e9f0adc2ed35646d789f172e81892225ca0650c0869e913ee053a594ba70e27f14edfacd1fe986f6450333a380f3033edb9eb85b150517c9774aecaecafb4257e4501c81c4a7bbabde2660e5ea3ae807121e6171151738ff202a2644f5fd60e1b6ea1710bb69bebe72a1d228cf17891d575cd005ed347d37490087b7337d03814da192397db0618d95092f4370928d061f655fbbc7963ae95add872fba10115aee62ad7162c4d708207857af60d7733cfcc337e7958d062f5ed29dcec2feb3009681f2ca026a5512013888cfa97bad17616564587c5586670c03e25e4876314d5e8d82710537d261878f98e7f2037f27c25397202a42f211f61cc3b7a43ba4c8900e38ff31a3ff7fd68b05b1bc0b093a96b2855133dbb7ad638dd547d4c769b5dbc814147f8977e09f3caa55b3d95f2a8885194bdcf7f5d6079d10bea0d29a9635ed4cd029d8434a775c821a4e16da05a21c604c153979d4d5b4169bc22e5da3e920853c172c36774e5abe1b2aad2007b1dc16bc129755a8ea24021754ec94a5fabca5cdf72b34a66ced589fe4fdc117c3f1468f9773097839a306a1e1e8dd6d6e0213cdcb86851a96088ba8cb7a840281fa11cec3160470754e0f11984bab0e0a38283e1e63ea8fac5f63707f543e3cf2c34064b11fabd018c452a280ab136da447d4adae8629dd21611d8f56f6953a49d1d59f338127fda5bf82217f116db50d0be89b62d5dc5b85e022cfa092d810f4df5397033e67469c4a07ac1a5e2e7c2d269c004fe4688e0de28dc37503b11321004ffa7604461606ad6cae91468b08bd4a3bb88dd90406214dd855fe13a63292e1f572c5d814410be7311ecf189116e8baa3a73167b838da308efb62ad05281314f0ad7c196b92dc983413b825753eba9d072f5e8ee73470b2612ba69b3c199708d32e6449e450523f4e624c14d8be8baccc0b83f0e5bd5d9dfff78b4ffc2668f72cd19bb61bafadc0b19db3eb2763baec2ffdc90835dbcf92ed0874b0053ff32c1fe7f57175919b3c87eb7c683b9673c7003046bb6119a6e512d5b88feb000cd3e0180a8e8a6e64c378148397c48bd2d1fbd9063dba7f864bda2a4770163fbfdc9f87cb374bd8082ea7996e092967287f10cc2dc4771b8db5aa2c9acf93004023607834c8b427f7d1586691f6d6bb1e19eb3d1f34a47d9f7b42d365306e3ebf4f1da6f8147b3828e945ff262dce7ab01763d7b0f1e5250fc89edf060ddb0140b0e25907eb84c7d716ba00d9d231a7968198319c0736741d684e20f9f226199708d32e6449e450523f4e624c14d8be8baccc0b83f0e5bd5d9dfff78b4ffc2668f72cd19bb61bafadc0b19db3eb2763baec2ffdc90835dbcf92ed0874b0053ff32c1fe7f57175919b3c87eb7c683b9673c7003046bb6119a6e512d5b88feb000cd3e0180a8e8a6e64c378148397c48bd2d1fbd9063dba7f864bda2a4770163fbfdc9f87cb374bd8082ea7996e092967287f10cc2dc4771b8db5aa2c9acf93004023607834c8b427f7d1586691f6d6bb1e19eb3d1f34a47d9f7b42d365306e3ebf4f1da6f8147b3828e945ff262dce7ab01763d7b0f1e5250fc89edf060ddb0140b0e25907eb84c7d716ba00d9d231a7968198319c0736741d684e20f9f2260552acfb4136a8687c086867198f336159a70e0de3347500c25c57abf0d8fec13c5f354a6809f5d8fc0d754f10b0845dec5a231524772141e6eba5461ed414fa25edd8763b0e9f24ec8bee196162f82280e8709816f727bdb7fdac9abcdb63e01de7898ca0b76c5ccf8ea31d9866d81454a22428dfdbb89c3b361d9f92cb08572d20453530a536138a5e783467eae3615daf0175f4fbd68ec917cd7f4275be3927541176da83940bcddba5bf8fca313a0cf166a61adf78fb1346d8c784dd7d830acae72a2f689511f97308548c27da6e25827a2532409dc67754fc46b0e92e44227540383b7afdf410f271f0e0351c0831df6f510d3bd8407f2ed3eb70f5bc712d9984b2636e7d95d7648d19f09250ebbdbbed363f3f0389a1539eebd5e1d9b6011c70368251cafa3a9d1d43276700552c4966997ab9e345bb35caec036d63d53922206432f3dfcc7c9db66cd40c3169170a7debe25aba8d226ca0ae7c7d7cd0256d0959e0317b94da37c2704348955c8259f71fcfa70eeb3e4982c8959e72fd14bf7a8e83bab872976ba97f850dd47c47b71a560f215c5d1ed32ca6524b9d6125b94128f73e9dca3463e79356e8a38e0390eaba0e47185910389ef44e60e2b23922206432f3dfcc7c9db66cd40c3169170a7debe25aba8d226ca0ae7c7d7cd0256d0959e0317b94da37c2704348955c8259f71fcfa70eeb3e4982c8959e72fd09f67cd79f6c9ea55552cf333eabf41a64ebd2fb578364a8c11b8073f59370eb36d0d7bea811feabb88bcb8754ef126671f65ad6cfe084bd4307db1effeda6bd045f67fec76c6d85e7cdc28969f10237420cfca3bc3e07141c0a988ad89ad17910dc43438b3af9ea7e4af625215f18e4bae8675268673fa4921d0774e43981e9000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013d3de6486ea971e50e75884a9177159143d0cd294c08e36805cb1fa24ebfb94e3bf16a8543794442cb993557b7032a37963f85fe4384f8e3366c2f0bb2faa6a735e4af2a577d6f40a1f3d713adbfd3da76edf72f93ad1227f59cf7020e5f10a83fbbd36c32898729ebcb44b74874bba5c64e8a6f27daf1a97ddc56d91efd21f41594e65a3cd5945700c12dde5ac376ecde82270fe68374444f02a0511ce3629f2697b139bb344dc5e672c8d8f08c4ce75b7ff44d43d339f7c43a915c329089c22b6819b640bffb1cdcebab5f60a8ad2c5d6308d69da6c3e724df6ce1f4227852378834af039048762d4b0efe360368a170b576ca2a9934551e236b6e160ba56e177e9c4311e1a0d463957ed804b7fa61cf3f2faa91e8a43fe5ade8fd10e9399a3de47bc85a5237d403f9e3af00592cf78cf6cd62d0a4f6c5c7dc1087b2dcc60f199f4941e69d97e8ca4d120c7638e45ab58dac8c7a22db382f2eb6e9fe2a601b1dccdff2c9aa0020cb99701236e192b2475c4c90c4d5ca8f9465e0b261ec08573a8f77d5d8c9c456eb6710f2d55ab11e35e89506820c7b7974471fd70689069a27d792960c260c938dd0790075e1cce774ad0c0e1c4af6b2e8a7205b9dd065692824277b4ad60ff928394024f0f4d3efc182dca78ead45b8897938e7350efa282587502eaf5323b28ab2ab776a503c5845f10fb0572b01bba0a8ada4421d901b1ec1a81cb12ff6a37c161b3194175a3a6cf04a29af7e2bd74caacd8481c36533129b293648015cc76c01cab02dbba55629cc736a8f20aa1b91e5054f266d31970c44573cfa444774f81a9c028adfe9368364a9f7b0e93b920a2392ff6a0ac2511d7e2a444603bf318f740226b80761a9ca6a486e2c31c2fc309e1162d6d9f49a2550f00423bd6a1fee8eade0d897e165a13e3f5d9fa23a1db78d1c678aed58cd20ed395e194da53e7994c5d9e3ef8d6b6b7e7e23bbb105a21d769c9bbf8e5af7220e478e02a2bf8de1dc4bb2218f8f64b81c7236e106664182a612eee0c824783366e5d145199a821f568849eb9be15230efa8fa28dbf9b97ab1058c019ef10b28ba5ec667fd38647402432a7f73e02e446f81193ecad00a78da0453ee89a76028aad27892f15b4d25ae07daac1e2a7194eafc560be1a86789e7cf29a296ec1d1962909c34ccce87f1eaddcd023370a023c82c812d173d77a00270b61b5df8883f517e00f2942bb82fd457ece279df4686ca472f3e42afbed451e5e02628d51219c506b3aa6d1038ff3c9750b149865e5e59358faac5347acbb7cee1c18df93d24ed4f1d9cd3d3ab6997f67d244301b7cf895495ad826352cdbc47996697497b110a9498497230750931bd53008acc60a903bb540596f4fa36ee65f596146ae22c9068efb5ae069eafbe26584e355b7505c096a3424c0be84d8bf25a70f56b110bce18c4a2852667fd3e69f63c1373e3f450521b4b436c17f6b533efea835c5e3b43a780a0476d55cffa68bed9efcf6c0f7e421b0dc10865ce2995f058967c9b2b82595072eb5a00dbd494c6038b578224bde13de6f39188f7a4fe389b5748570e763d61bb5146d898a9b5734297dd15793fb6506ad680e3eacebe3f1133a3cc363248cc0b417f88cb687c9bf93f8a13c40e5898d5654df942ab50998a5f70f72b9c5e50bbcf4970120ae84d8fb6897e49592f63aeab663d400167813bde570d0dac2408b59f92f485bb6956e1c39a8599ba8020dd79b9c4ba6c43ee348428ef3a69173ba8ad9ebeab82a208e4260a6530e6e46f2e90cb93e50375a530b5ff561c13510367f56d0447f1e3992c01825febc301d6f3f88470a4b815511abcdbf3352d6e7759e4d2edbd058c166bf8e889af28c30b7c04090142d1f3ca25e58bc401e8fb73adb5e8b1430dfa710ee1418b3071a626764092ba403776cb55e9165f0a5e7e2bac28cc18b2dd40223e3bff546731078259051337869aeabd29f1796b1f1165690a6de088780a66f6fe3d045bbf581dacf7d54bb72caf7e289b2e8d5a01894dc5790e5d722b3089187c9471ad2fa83bd7201fcae54371be94e483ee282f826e9ac8f410e07e55ff410bb545a545e57eb482270a457e2277b55e81dcb23b37f1a8402e68ae077fa8480174a8f8e037ee53932b2c53dad9a3f5e7e28275059749ccbb38e8d4c892305b6a4782735923772cc8ea3148e3622bbc849ad7c02b165048e960d45e6cd292222436f3167f7b999f08e4d547ca58d5d9d61bbb831ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c692150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f398196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f61ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c692150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f398196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f6288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc73502405abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b32a541dc9aede8050ad6648812a33cfccec8163996bbfab69265fbcf2ef361c4e077596ab5d4f14c7435038a9742be3e6b737f77900011bd2975eecabf38cafdd1153c84f592e126fc3f1f0f20bbadd94f35f1eb7f65990d2549a7aba8284127f38fc1c0df7b9b2919072952602cbf7174ee45ebbee63633b443106eed2c1c2ec01270d2f56ecea3e1b2a75e90d93be05ba29bbd650f57dde8784b3a68dc781f7075dd1b117312a9d8a06c31011344d9a01dfa69bf89621b429bb8f33dbae0d86192e3ee660fd39226aee0bea6ad54ddb98f9abab4929986c135f5323816ea52108ea80bab1eb868323ca07cb55c73606bee844de917a21bfbfa6dc19489d7fda3cc3da9332bfc4c2de3e80fe3391c67d16d585354e9f5bb7a35c091c3573e31936138aba397e4b359850d5fb9c7b4480ac78da8f3e8a5266fa48e5c79b6275532d2178e1ae70947695e9f02849f81419f58ed31a9fe1a7cbf077ace14456939132de871e518f6b896a160fd7b607ebe63ddb125f6e11cddd754c1c823ba96c723cc3da9332bfc4c2de3e80fe3391c67d16d585354e9f5bb7a35c091c3573e31936138aba397e4b359850d5fb9c7b4480ac78da8f3e8a5266fa48e5c79b6275530c625bb64ab2b757e5284ac022d5876bd6a163865cca8c33d1906267b895b0c202e1a0ad09302e70affa09e470781c2aa53a461958dd93735097393e52bb0f591148c5f0078079278f0071002b6a0b381757985374deeda3f8434a2ca9b57c9a084b1ad09d4a31a25a8669bc766a6d0a8480f5c41c392cf52982a235b6e118eb000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013d9ba56a20ebf966144e9b57a8eb956f338749c55b81838fe3c6802201fb6f84319158984f800818b8dc621c8b6de6de564390e0af79033ed30d33eac409a05617c38fbecad253a41da5e0b7b3224a0e914897fe0bc9e7206484766ef9597a0005c43187dd83b9ff4c5dc0e43a1194b52bb768b0d9aa89c5796f5a7ee99d0c6429d046df41a1d723923b344a4a33e191089ac7549fc9259c2f0e1cad0c0144070d1e7f2e0415b0b0911dd4655390bcddde29a06493bd2fb6469895c6eace7094108d2c3c7416e9333963126d143e609bdac300b17b1f12cf538520ba8c89f2ba3bc607a23e56cfc0fc6ef3d645576e54616d56f8a6e7c2a8a0398afc0847f9d616068f3cbca5c44bf0fd38bc6b658c6024ec821bc803bfe980b5bac296956152340bad9806b42d9054d88184b02dea8d92260c8f6dd23deb76bd0eaf3cc3db6a1489077f79d9a39e61e3c852835137caaf01d68fdf2224c669e41d2153bc8fa83b6046b76399e360c7b370cb5b82da8e7d512977baf726151c187588ae1dbcae28d356df4b6ae98e81752984502997165cd2c4062bcdc259615a016c3a93345220d9d89cf8e9a7b1e093ac45f8443d653aa5f84996a1ccc178471a53b7182a862346199401f400fa598fc60bdd8fa464a6459191b1112f0f865d39d1dcbf450529eb3df50e2d9d1483c04b7073b2f0663c54b40786024508a7a4e3f0576f4ab334f332497af673c656398346b0b4b53f7c467e0d1de7fe145dba6f798e50f04911acb02e546ef6ae608ac6da5d124fe9dfcdf9ea17d63cde2f35db46e1422ce93c0d8428cb9f6adcac3a829c14f461ab04fb9401bbac5e1490a845cdda35d5cd0c982502ebc94445d22b726c61eaf8d6a57e991506dab5db04c7d060666c487335d347b2fe6a7af1aef8b9facd2531b0c68365e380504133bb03f5599580a7ad3a15b070a6fae36f514a1e57a78ec403f7c14fbdb1fd51c788ecbc65d7adc64f1063a867e20a9c9bc3f53506d2cc6867874cba4ee9bcddc16a05f3b1aab2eecd0e6a9a9aeb645a509e5e96639ffe121a8280c2107b72125adba0453601d4d2511414f57c0b834872381154d15ed479b91a24d78f742cf92339ec426f33960d2024970fb294195240b0e274c811f3e63529ac015a78c7f4ba59ecd8a6a2efd2af2a40465f19008b8918645b814279d1c88f1b179b09dccf7631d3c076fafd68a82cfc8cccb748b78afccf881a0879ed4368411ce3b8d60dc4f0ce7da72df3194011c6cc3b12b60d746ad0cd3fff60dca9d469eae207902a5207be011af4ee0fce34bae4db68539e20e4416218f9855bf2a9aa6fab403a0e371616b30eb7f7111f0187cc4b674c2c51718f2687906cd308866268a419f79c23436e57b98f41a2cf37cfc028a170389a4f418596f3b77189c89f93ce8bdebf1619b5616afae1c3bd132db7816998f30f4b766b0dc7608c4992222460d99b43f5b02119af9057319538f63df414640beec935f678c8e800bf2c7a01d31e82e9193f0794d8c8064ceb3073c5ac8b33937f30a990fb3dc3119c62a373d7415eda72fb00400a8c3006b53488be8c296b67d30c025026adfbf58f553fec767d500edc3324a88e13288114216ee5170bcb78e2f86a3b4a0fa17a44e369fa1df9c43cdc0153e6d0bb02ce4017855decc6858f4763210a0161158aca7b7ee605ea1024f8d18d40b261e3c18133e1618f64beb5a16cb0db50d737ce2bac26238ca4bbbaddda3902759bfd6c8b1b96f4391a0d6ea97cc2d9a112c143984901e6f34082bbc06b1af3a312027952340e57b36eed5f486af653e8410590ae107d3b7668737e8039e448a53b5b79e10095f991ded6909625a967c5455b335108ec1097dcebcdb5d209aeeb4c8192eb3f29310ab81f56a0f65855ba9f17a1b41b22c0976e343921ece09b9e8aed3e402d8728138571c687e8d0c5fe7abf8a63d04e6f0cdfdbee4e4cba628f505e4b5d102b8c8f5fcb744b41e0ab029f96813b0251f5cff4db33fb86bacf704d42875c0ce8f89d097f3bdbcdeb80364cba43b4b771f07a3b83bba6c6be688fb1c5b55f16a1df07e5433bd567f382202d8fda03127403a4dedfcb9f42dfa2bdee9118e8058025a18a0ff3721199aa85c26ca5116243584a34e62f173e86d46bd3e0ef0429e2292e975bac6f85e17094ea27ee591f99d85e431b24e0ad5f84bf90fe1f7b058ca254ff9c5b0bdff70b8eea25a96d40d3f082bc8013ea1595777187c12abc3fb14129968f3e95de69c3dee18686c8bd29d8e55de8afaebb1c8c41fe110be9004ebed66970c16a21963c211e797937651cc016ab64496cde10a4ab01eef4183e7645cff0cc38ed5810d35a67a0a1eb28b6d88ab05789fb42d9f995f6553b890189ba300f33c712a7ef2ca5985f5e14f98fc07158f56f205653375709aac478384f5d0fb3fd1ca2b85420c4062329974277d6c54c81cd79e98d1c39cfaa29a907b0a2f04c02e35d47abdf3bf9dcd668dfcec236bccb2ba1afa014b33055d658198cd14e83f18f2d99a4a3d41eafcff3c33ccdea59551ef32b0cc96d0e52d04926732eb17c0e70d2665b5c2be150300c5f09cb11aff7da286e20677ff1ad2fb83fb14129968f3e95de69c3dee18686c8bd29d8e55de8afaebb1c8c41fe110be9004ebed66970c16a21963c211e797937651cc016ab64496cde10a4ab01eef4183e7645cff0cc38ed5810d35a67a0a1eb28b6d88ab05789fb42d9f995f6553b890189ba300f33c712a7ef2ca5985f5e14f98fc07158f56f205653375709aac478384f5d0fb3fd1ca2b85420c4062329974277d6c54c81cd79e98d1c39cfaa29a907b0a2f04c02e35d47abdf3bf9dcd668dfcec236bccb2ba1afa014b33055d658198cd14e83f18f2d99a4a3d41eafcff3c33ccdea59551ef32b0cc96d0e52d04926732eb17c0e70d2665b5c2be150300c5f09cb11aff7da286e20677ff1ad2fb8299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f10022017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e17f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a6637328ac34a34e3477da9beec282464ba9847d896f4b35e24e84c8fe8af8467fd44c390fcc75e09a2c67f60ded5e1540c114e7ce7298b4ea99b3a4909b4f555039a731608cfcd48d04330573e285d93690aef520d56337886f463d03ab21eab274862941ea1f898358b8a0f13e975073bb856d28a70ee17bd3ef52acf02af2d9520914e4073d426e1da0fd3f800893cd5dff856b5b6cd0c1e836b00c4d30bd464d5833ab7a63fbc937280087f622f47a590e3cd4edafab2eb54f78501027ad49075301bdab451ade8278151aa000b6fbc7d54b1e479e66bad359e401066eba70867209a39f8854fb6f435560a9d83f0a321687ecf5e3a45fa3de41751ac1b91b6b4714ec3292ad485cd225f3fc3bd83d7445af92e4f0aec76377d903610a20164ea81e27af658bab17d393fe118062ac16d86d04f78a0aa3627c121034e9b3689c6d01bdab451ade8278151aa000b6fbc7d54b1e479e66bad359e401066eba70867209a39f8854fb6f435560a9d83f0a321687ecf5e3a45fa3de41751ac1b91b6b473acf06347cdff8730f42a4f5df5d257f7d329bb24630d13283bd06f771db93b62a0112f8fc14005585b36e19fb0033b0fb5767f5e15de5323474b1a41b4f45130862f007a9b13d21cc1167741a5912ed7c6c413c08096ec310cb02372103a3b13e292a3efe115fe95ae15b7c1b90b0dc1ce87257f7b83da2e29b7ad207f74309000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011e3b1d4a3b6cd26f58ee36192224bd63e9efadd106c65ef6ea6602afe748a70c05345d627fc87959dfdb3c4e9ccdad9003126e5f5521563ec5e83471ff91201b1826f6f09825796877107882ad16d20c76f09758a13bc447e77383e54a62bba52a1ea8a559f566522640927b850b0b80575e26670eeb843e8018161afcfc518a3ee437ade46152d608ef3b717768446d21f179e219b1bcec40f2e8b2067945bf054752bb90f310cb227c8d1c1e6698719dcfee785ad9406fc9baa569141654d22d1af9af2c01d82de3344cdc357543ba065120096097595d4595f71714f8172700d0a4f00c9d6d91705ef0a1a12437426d6fa115560e25a1c3f995e915f11f042598821001a22d25beaeaa3dcdb7c11b10dc7827da46bf86c4ad0d8cec4fae153759100cf64012bcb6d298b5a35f3fa7a57c7e10293855ed93a36195c94c504d20f3efec87a618d2852ce5d8cbac4832aa46107cba82f4f91b5f709708486b87001df58d043d1b24e10a7e7ff5aa411399891250ed584e4c8179131e882e965f2cb0183da19fe408d6659e94bd618ed9a5f9f8890e0038beee54aa494f80f7fc3cd147b98986c2eac3fecf700b325b2e0edf8addbd2e6cc3a8c2aca46b813889227de42edd13f3ece5e1c97988802ea53268f7c546271aaed7e194cdbffb76232681351333cd5668150a0df45446261a201c5ab7e3883e372bf70057ef23f112172b475d33c11b93f6f85b821fe63eb76f7544b156f84392672de200ff17756a34b026c3efa6e759715d92ccc7b5481aaf42cd3065903ac12fce74908f5ebed00514e6904ac24679618f754456760799c507fa250e72c7b87bcae1276b1cbc8c03d52b3c92a7bf03233e7d6f192f0c0a420c2cb8f9c41c5c86d2665e5672ef6a07536f2be513e040fa3bf31e77ab0e27536c4b0f02f810c5910e820ddc1c57143608bbdcf0601a222fc4f8165c4c6850b306969f86d58a19e4b31f6d19948fb721b7356727000f021ac4b93fd6605fa02760cf528af97f0f71cadd248d592d5e03a4fd8e46a75f8fb7c1f438ab930cd443e78bb13156ea6d1b09092cd8fd574102505f7217d1d5bac4f5323d08d399219a216adc0c33db03ed8caccd9e72497d079d3114954ce1b33fb2f2d2fbe7803351eefee0942a87a721737a9950561dc917e72e6ddb816f1b214b862b638a340913fba9977f6e5d75af30b362f8776e6c032f04d158a8c8d309914b39f3db7e41f3b811a7cd4df00549d2240910e7dbb809ebc296401fa2e388f8fce96cf63e7ef0c9b5f3b1df53df78a447e0e4b1a2ca13beb8089c9bcc2d5072ed11fa34fc0d32fe177b291056b871432e7f6ace08930503373e179b32a4af9807c94e5b616f4d9b74b4e7cdadd9ceaf94b22af901423e5a680f641e10932646ab096c4444a258861286bcf0fbc95033fc4f3d182bf5323f624e10d5f3b2c3be08aea034eeddd3e898a558772bbec88bc4baf05ce466039076912aead66b3682211c5e7c3938d08bbf95d9a2d65eb868e074baccf93f2b7c10cb83936b53ce34327f1870deb4a4b356722472012a1a2ef78248c0a41c0439d05a19f4297e3b2cb83357a41d700d5e2ac2e3229e05783a2ae96b23e45b385622b62e9830d445330426446754544546818c2a4087a655efe00ecf8a249b11f65a1dee6ef8bf2b7c9d7dcb295c7106d5188df52594989d644ca2632cd3f613528676835b00b38b816b536a7e2d0bc632a379780f3a71f8c1d0e218b0b3383c663a00f8ce74aab5476729af208ffbbbca28d48e2266a355adde9ca84c0af4122c9445622578a824c5fe68872bb03e48052b5697efd885ac07bfcffd978dd40f902859cef30a579a9de0b5fb9209eed99e295ad1d40ec73308790d6577d6241aa0af672f733d0034b311f0a6ff9154068fd1cdc4a3ab8186d479fcb7531f0e1b431233994824a317c7a6c70e3b9b1e2e38fdf810291fa0a9d87c31cef05731043e858f0f130653c6221c6e085e675da54eca4207bdaed91987217618e8362b1157821baaddd77900b869c2f36d425699ca85f3ee132b3aaf36c83df351dc643f0216681a18b694896d2d642ecf0bf7f3302ce36aac8365825507e80854a89737224b0d2dcfda9905a7f0d4925c1b6f31c3017f36c073b03c743e8f9527a5b21355fd9eac0a53714f3d350d3d22d28d2ac502bfec6306eda65b949e9ee077f109bf5c5dacf1b60b82dc5dffa6002291aea9faab207a902ec4bdbd73819253f209a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22309a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22321fb658f6072cee97b6dab3dcbac82009de512e271ab489886ab5369ed4941f1174fbaaf88be79d412b9672c9d372a7d2fa63a6f94bf935c8b22a38f99927d540427665ed95b17a0576af512ebc575a225cca770747fc11a85e3405b33ad6bb002137e04dacf9afbc347f2bf066d88f624070fedb8de8410940ab528ab8fc49c0d9ee0aee8af2693b7c6d2b811f5e292dcba481eee343b0632b3ec627a654d182635f86d86e7f83f7cb3eac6b05058573f241e38075ba38ed35ba3f423be9bbb372de69bc86ee4cb5a0c64f64cef1de32f914841f9310629d0eec2f98aa8fae01c66447d4164dee3e2e7541c5518112db9d6980ed1716218966bcaaa50a3eab03d57416bb298fbb8b8a6f8955a5627f3e5733e2347fd5211b97218dc5a3c07793540b68c25f88ff0f5483000beac2202e9344265235d5a9ef25cfe04d226571a151c9ac8f98cbfa4ba0dea0c7231d8a9b105eb6c9da85a730b14ce4d9cda55f524700f36587f61541470aeaaba8e582af9e7a75bc798eec5b61e584c3c2ddc9819dd3411c63219762d275faf488e085d5e94dea92321ef688c9e9d27df095261269cc74b9c71eb3029fea6145c5b4c8cce994e9ebbaee1ae79ffd834baddbe12151c9ac8f98cbfa4ba0dea0c7231d8a9b105eb6c9da85a730b14ce4d9cda55f524700f36587f61541470aeaaba8e582af9e7a75bc798eec5b61e584c3c2ddc983acfc35901a552582ed8d9519f2fb0790d4a39e21af232d1f8a16642eaf0c668342f0b5472a17c01c6d806d03ccfd6d357e0d4554eeee519e3a817fa97394d5501dacf7d3d24d0d332878c6c0a3a8ef9bc78065c927af019645206cd8df4d33620f8d84ca6b91c59f7a41134940b333c80043c39ba5c14304baca5ec925929580000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000135f8158aa52f7d2ce4a03c6b5f52e1917f5dc0c650cfd6d8297117356e4d187e39876bbc4931fbd6addd6c0a78dab4aaa486421e6606dbb561c061836014d8b80e5682fdc13348a3d4e6967a7a3ce51a584008df9095b23fd9767b40824f3d263480a7d3bcc2c3b50fa79c7552a0eff2cf6e55f74bef49f56ea0117ef32066b33793e1333e291fc40ad76356057b2222b1a038046d2c77f8b531ae00ab9a2fc61c510f1fbd8f9d8e4af572890ae3bc5d2a7f2fddbf00919186392d947e49f8c73ab59e83a74bf11f630617abe0fe3102c6fa4a037ac3b5c2571f09a014b3f8bd3be14ea37a8d97507eeb1d774c18894176c0883be31c9cc663b9c4a87574e75c22697dda0a49513d537d80d86bfa461b7e73d40e08d1339770cbb6a4ccbe00e7265ba8981b9e785b4e1b3320d8df7a113b5c236b39edcfbb14e103b0facc95670ac3a2c8011d228a4ea0ebb278a873d3a3d9e010da2cff7cdf3331151757bef71063f8811749f19936b687c44673882719fa4364522227a95cd7baad1a58eebc0575d0e1cb7a3ce96ce38298b2379ad91400687ef0c8fec64043bf9f87072e931e5efa653c42425efe8c37e0992c854943d4d533b8534d64229792de316beea13188b458ba0045fd313cee5282a44de0281fdaa1c387e51013568fa5c96f2b0b3697165c37077acd10f6476b4990597a872942f371308036ae5673470b0ac7350bc3d4de73535bcca0633dff2e4be6603ae5eebaa27715bb172c5d0e15e93c832baa0df3f57ec469f4f3dc42b6802ecb6766b5852d0debd808e98f2aa2e992443f90db1e8497b34f1d36620fbaccda66d807cf776d350301747a559b479756f300d53887d6841a4513da72e197dd5a6f0021a46731ff9a3673d5822a0da5757f2a464d9a1dd031d6567a32616c11d7a3bcd5ddb55954e185b2d63ea0c51238951f7a0cc27d12b651e7c0a5b0292d211b4dc7b6e6c0c0919f947350e80b82839629f01a6996c5639cf3f021969fe42eb9994cdc242f4602b538694ca90550bb8b2523b351f23b1495fe963be32c764545008c0c39e2b7b09370dbf536640b8cb916cd6243002f6735741bf5a2e7bc320dec382539a70717bea51e378c08308dd81729b70e3d7c5a836474632cb179d0f7386227b46ac8f166ce0ae4e7c29634d03352f2fcbb620e7f91832f755d63c33e0b119a233d208413d0f786e6cadb0781265c1a8da1f358b9b12e0eb9a7c1a64c0df5318e7df24338b7efbaeea35f42440c717db365c169efa9300d0f4429a56c0bf064924fc6d81340536c90f1332ec403150329050119a300473cc6907708541f6cac9f1c45e1d412a8c93cff11550004d3679406d5f02cf30450acf7c4ec85be496a0ebd6413e1f83bdb3e2c1d115c1f9fa3b245f67e784df30551366ebba33ade51e92ab5d7b5d1f5771ffed1b24c2f13df1c123642933645f37e243de0b7d82419be2e998d9f61643679ddeb6e2323ccdfba924fb4a0a40d8106952f48cf7919759dc376422879b3a82748de5a501c3840d83e6261fa80724677596bf3c335dcdea320e20430351033b6ea829309079439dbd9feef594f71413c8cefd98b241258623f8148aec85735c772e2c6fe2a1b9fde3055e26bd5f33f8b810d6c303485540c3659fcad69bd015ee5cceb9033dd22c0c0e3257569639bf3a95b38494681d76c752dffa3af6ddea20e5018892e1bf784c87630ac76543bb0777afa95d6fe3807828ff702d235d86c2e8742e326aed6517fa9f4fca080c0be75525045c8cc113f3749928ca68b018fa0364ac1249f4391a9f570a174e3495bdb7818533a463f48d5a9a69044564b14fada9b9b0a35b7d1bae9284ec4887ed80cda743c223d1dd12695d68965097299ab0a57dd28ed86e3685fa6963082661be2422853eac44be0403e74ab2aa75f413ecafba314349e2d7eea7ba0cfe8224fc78bf5b8907b8743b5fbe870c9192b9aecba264008ee11d1253b10b3883d37ad2a75ed4ba48a352ebc7fa5566dd66a4a9cbe160802c5f8ffb6eb3f61fbe03a4b8dc8877cf2849453bf51f5c4f096ba58343e7fdd2b75d523b5fb453bd1234e35e65816163f6ab4a819887ed66c8bf06659e91d321e4dbc6304f45f5f2388db2462b3dddcde05b5a4b94237695399ae08c28a5f251ee8b21001cf5ffb72ce0d6bbe8d0c6dc0d50aa886e22c37f43128409ca4f7101293fd45f3b680eabe5558c574ae62bf134374846804dbfaee25ade8b2234ec73aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a061301911905583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee82546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d5791ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a883a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a623ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c31c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e3aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a061301911905583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee82546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d5791ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a883a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a623ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c31c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e17f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a66373017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e14840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d3126132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c8361f5af3dbb9b764e06388b88c8ae25f7a7275bfb8e202712160cfad61b5bc73ef2084ff4eaf933d6bc5e8c80a6d386cf8915c72d09b721619ee695ae36cebe46207bb5847f3ec89cd59900a77cd11b5b93e4e9cc3e7a81b21a34e34673562c4cf398f614735db5469d4e59f20f2345e22d9b2ae524ebbb628ea9a24fec8e30f0920e7576a254c589f1b44c49b053e6896e604e8ae80f95b2742d55558ff28c21b08e5b7ee0f136a61bd9204360bf642cbc56347a0da0cb8daaf842450dcb7999008134748d8710762979b1062406fde0c96064ace3630870592558b307fee102d2b6879fe81419e32cfcc2b0480ff303bbca2014ac309b579f4be78fa1264a2221389d8f7dd827262a24dacbdfc7e9fcaf613aa817fc38db7e90ee3d2300c6b692b53331cec0a24ee2f94d881baf668692f9fdf19849125ffc37b4188d5d2389e08134748d8710762979b1062406fde0c96064ace3630870592558b307fee102d2b6879fe81419e32cfcc2b0480ff303bbca2014ac309b579f4be78fa1264a2221201404b9118789ee6e3c7cc266561200731412207e697b129f03118c7666b500d8982f95c998465292000d2ef16ab93e858287d8a1eeae2b889ec302280e45f135e5aa9aaf3c8fae644b82ac49ac30be8fe1a4af456aab9601c10ec8c1691910c0c5bc5ac08d6555330910b48fc161ae816e8e211d665fa3869e3b48079166e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011e8211f6215d3f294dd80b0cc1951e3048971276fd79940514b019ca4d2d8ee42e9a0d4ff7d0ef6c39a0eeb6a75eab621b80f91b32cf528655086f798e9b79db0a411141710abe9a66f2a2672c7ccb52c30b6578878d8bfa7dd820f46c4354913bbadbc2fa4e935b2b65f20da325dba3eedd6d852ebb5c1ab8140c7636587a5d09ec192b96080adff5f979629e777996a5b93a626afa260cc62321104bafc1d6169e375fdc798c9866f8aee0b7d0719f794b6b0dc8586850dbaf3b00d9c8dc631b3635d1173873d148912d6452594dbfac5953ad47f7be1e4c57d1f99ae7fb8f0b75099f466f0e9079fe4dcc935f79194fbada452ec854ed15cf4b300a34be691ea5e15d441c009d35f44955679168420cd65f3f3977eca810abd18313707dfb26d4e8916062abd84e7e38ea36649a45ec2e134014ba96d129d6f37872b1d57f1e04e952902cc3726ecd1aa1603b742acfc0e3f1e94556b45139e27d6c1084ca20d504f93c106ce262d7aaf6b1af2ea686837277d93811525e2e1c0d1854740a3587f318303707661da0685c626eb54f898aafdab7e3bdd3c2cb7c4c4668f8f827f688b224a460740920ed7e71368fbca0fd5cd5c409552a0e73fbaf4c4c815c30d9c99f82a90a6027c91897a2ea30fa8e63f2684b4137ffda8f246c9fd71abb2976a697bb0345ee6c37e2cdc5ccdfe091f741c7c2c38686a4210fc1c2f2a55829535485eb49c59524c254021aecff3f5f7d161f44b4c92bdedbe87ca1bc23d52f24f95171dc0cfe1aa1fae9fe7623498ed0f9421b5d7ba3f44b6c5fdc2311e70717af79452ef31b08e9c7e062b7353f10ae2e9cf403783c07e6b3625797af2f3853cadc15aeb61aa60ee21e0a057dd2bef3a5465ae32f35f5f5cdf7207fb1bb29220126098d211bceb0b2abde6d3daacab9bce22db2451131291c9e47cc7bd70fbc9450dedaf563513106fd968e20ed28e3953236024291211816f775f6ca89326efce07a711bed0515a6938092bcfdbb9c57ab63bcca79675222c83d1e11fe153922c9ac0b1b5efbd72815e5291abe0959bd3648e74c824e020043efc6a4b71e573786669a55ab7a5808e5939d2f29f5c2f2922970f54b347e5b8b2c887577012e27761fd000209a57aba3106559982569d4f26213b8689ecd3d3510bdccf43cdf491b9743512850222a7ac234d06cc5ba3019dcce11f26367cff209ffe60c2f8b56cf5644536ef30609a97892f7ad0686cd862b4061743705fca7cf0a626723bc9a302ebc18ea5f971dd9b09b96104535acc0871dca9e2b30565457b518d9385344768516c2cd8e93ec22d1227836db9eb6eca4f329641b65929225d549db09ccfc2f086c96c46b2dbec2173af03cd5b446611455066fff6e4e970474a5bb1a606e51ed8aff5afc22d0a335856a79a7eb17da205e1b41c4afe732bd4c3a3a0e4acb8feba77e7a590edb92a2912e8f11afdd5a7b7fcead3a67026d2831c5b92764083f2f8cba59e2ee10fc5994ecf947d9ee07aea9b9714932ba0a8f50fc5a3b6747210dded8a57c534c4790f444fbc6528e2e26e5c6903817ec2e0f3e4e4e269ef60355a1acd7cdcfefb5c36354cad977971664aa57aca735593020017e3d239a46101b406c4c270587316bca5e7d8394f7ad46693b7991423054a4edd7b61b1ff84ec641c10a11b301c29c9646c15d4816c6e7de5b70effff8ab70c0579e08bd8d26b3cdefa8f2f75ca34d9e263e39b980c92b898ed1b0a4f8cb549a6299313df5d2fb267b0318a3a6400bb23ccdff9f70d456bfd2327e64f8451dfe376c3089e2ff68e1bc8f3b430057abd9f8bb13e4366e1224c962ed2c04300fc303f139782905a6f4185f1657e7b3764bd5c9d76d78ab259727a7b85b32f5fd66dfa510ae20e2f80e5a0292463b006caa17279e877bddf8a97b14bc843e5bfa6581201adb5e5546a169b9663aca708895d62c515ba7c290579923142432ab3b3df9ee26c556b54102bf24cefe9c6901414a31c67017d369c53bee10b544fca659cdc53cc8aca8990ca75003429f0b044cb06152ac83f97a00039d84062666fcca2dc52b5af8408269a6c1856e44a44b7fb6b8d0b963e9167b98040cc27b1951c4d1250641a44bb7869e35a067dd0c9661360e105764ae9e443e485fd98ffa0cbacd3935a060125926efeba4853790c285e2e252707d985473ab32aed1eb24f36f7a8e052b16ffcd23d4c90a46b7731fe5fa632a3664e59490ad8c7fd433f693e379100bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb0bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb1663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac53a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f216211fa42639b21ecaf1ed4e983217b62a6709fcf49a5422b064a6309c8e2c557662260f666d094d1a6403be2dc098fb8f586eb4ad8166745ba69d9a8268d67ce95224688bf433df1ae089e293b28e241cab5fcd9cd6a27caada7343d9684dde77a20de236c8d5a6a0e502a2e3ffe172e2714300642e4b9f8986569c7538a0b81fa33ee9d35863311447a1f0d41296828ef14e845415c2e1024c8b39e27624bf3130d97ba61a8a2316eb79f39a161619e8bcb7a52eef1358e006dba79ce51baa33c10c697823a4c4bcf76cef00e67a7c4573c7f2b17dabd0fdfacb93a9679d4e8a211bd6a4c417911b42b7f4e8354b2a758409284328da8c61546bbaa13ac0ab63936bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b93c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db17a1dd82353c650035565c7bc00d9e983b457e8c8e8400815db42975e7191dd723725bf4adbbbe02d33ba140065e3e1cdc66f45df62ec7fad6156e418389100c36bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b93c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db16e08890aa848dc2cf6ebff393973a719895979a2e346a08da82cd7f791497511f9a4131e99449698ce8ce1eaa5edf794bef39d7950170d87650c3653eec76d50bba2f36522d59ab82ede2c4985d52a8c1af4cb45768d4d34000a3c4b4678bc92de546b81283d93d323202c8cc923733cabbcbd1b161d0388443c11d1282ebd00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000119855653a92b5b37bc84430dedfee92e5fa2a1627ef010cc358ffc7ca795f8ff10f91417ebc5fa0a82c0fc211c1ffd54bfedcb8a1eacc12001db3d3dfcf6410336fcd7247b582bd4755c005b613b80ca2f8820cddcb43e242679713b9c095089132f24b896d0c5362ec7896ef900a2aba3d25adf53f77108f34a222c4498678214299ad45294b6b41dddc527a1ae46013a4622388f6d3f7fbd08cb5da0b408e8111e3f7e1b77c40285c0545eb39b341c4a7f097d9bd852d41d534ba5324d57cc066debc195b53304b7c8f3785ea52c698fab1c33036da1aadb1d57d46a57fa0b1b55c2439894e8561eecc4e7337a6c428414211cb9e391ff0d1e54a1dc8492741382fb675176bbf903e404bdded09f4a79609c13f8dd0adc9bf398380d0643c00e803f15245b8ee7e24b7a7c9b475907f23b775017e95e80844dc3591d4578e518f961d2961eace213ddef4c9fff847634c6aed28ea2b36c47e11aa8476227f61e1a563dba60b85dba030b80ae9ae90dfed627a0c3282e96dcc4f6f5795a0aea303db71302220fdc36cb981571a7a39988356de91cbd34414c176a4cbfbd0b1606547e6644a457d54b633df37048afd98c0a7b53fe4373e2fe2654b7e11f75890f4a5c550e927e552d2bdfb5ad5b579ec4d13e605ba0e8be836ec282edc0bc8c20e9dfe79ff700f343168ec6a16ab1dfcbd35a3498546dbd3834c9a0c16f318722b5bf8602797964cfe223f7f39caed228cef4a518f6375ea58a12923cea8cd12d374dc211ef11c761695eab8bc0a9a0aab656a0122a5f78e1d299ba93419f1a0d1a3a23a33ac356a53f60b4d8d4635586b2e25f81d3fe22d36ae75e7cf442be2e35b50d9687b4c7d820a14f2e63abb3597f2ad46eeef9d20d6372707e81089a184020a4fb3d8a714a4f626e3ea5bb356c6ef4c6747cb8aedb354a201f92f6e62176aab83a16b5378cbd7456d7163bdaf3976424bdb7563de4371f703e5b6e3c05a54c3ca90caaf0882824ecae0496d22fa11c473eb0fa671156a4345449255933935e3d12203a4564b3f7bd3e5188139552f235daee4ea1fdf45a81915341650b88d5843256b8f16a31985616cb634b4a614bdb510b92f6e2c2d2268695cf210ce82eabb395d8486c049a6304082636414c908c415de6ca846f31620d3fe25903aa258c4f5cf8008e3f972b21e33b538622309766d0a7dd0cef851a07dd74421a435475fb6ab1e7162ed84df5693d343dec523b4069c64b9c89cd0df7fdfa610bd0cc0e4bf690b74cccc9f4da3b379896be27c571590c67e76971b5caed42ba2bac1db6f1236abc4a0927a957c66dee1dec17d2890ebbec9617ce5b2781620303d3d397302499301ec0ff0a2f2a6171831491c3c698372840da2d0655b68ccf3cadec78445ae88b4e7beec24095bbdae8981bebc7a1b4ea4fbefe3effe7f40f02c35d2cc186cb97ee70cbab620a055322aae8a6337a853544e15a280f4a93972f17598b444349e9adba8bb649ef188d910c0e3d0b79989f0f8604fcff06ffee3220e40b6e3b8bd5b56e9d049c833f29339266b485253e9871760ec1a5c9b1522a0cf327b065fdc58065610095ec4a60fd601c623a664c5cbc801b45440faaac201a60c7a9c8790d2e4b2ead49dbe70a7267da3683781a11f5f64e49c64a1b472c4e2bbf32761299b938962a6b3e204de7e452718bd691428f31b78e05d97c3a3d732743c82f5d48ed9a893e0be8edbac1b2687ef0af6b353bf98639ede4427f240f99396e8262647d1ba5ebb951165380ed43913e404c2172eece648b8f431a0e9d13f24d8f4cbadaa2dd0b29bc97e0bc6655051cd7ec595ba8de236553f1b63eea4050be3b1b13be6c78e3df2888e1650abab2218939e2b61702514684dca807e123367bec5811decdc8d749c29c23b23750bfd52fb11e10c429b7d98d419a06bd7b4e1dd77eb398b7f72bfd3e106249cb9737d11d912acff5585563a76e991bfbb9289dd155b42171679d712ab8ff9c4333bbd29764c3031ef81e91eaceb23655e9153f46b97ba2ad0a01a65b132807b0cff3264c4050421e3033d3e4307c10c685bb1338e347aa2c5765e3d9ec3d3b00716a4ae009b3c2120d02fc58526d3db2f9de3c0d7d640b53605e1cc84df1907e3ee914a236e7832439bad289fc523378d8b5238ab2438e658a8f45f4a8ec8f007da873d23e81eefea7862b977dbe26660162bd1cb7ec1dfad6a884665218c6c67233f897f80a722d9017bbf94e090bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb0bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb1663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac53a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f216211fa42639b21ecaf1ed4e983217b62a6709fcf49a5422b064a6309c8e2c557662260f666d094d1a6403be2dc098fb8f586eb4ad8166745ba69d9a8268d67ce95224688bf433df1ae089e293b28e241cab5fcd9cd6a27caada7343d9684dde77a20de236c8d5a6a0e502a2e3ffe172e2714300642e4b9f8986569c7538a0b81fa33ee9d35863311447a1f0d41296828ef14e845415c2e1024c8b39e27624bf3130d97ba61a8a2316eb79f39a161619e8bcb7a52eef1358e006dba79ce51baa33c10c697823a4c4bcf76cef00e67a7c4573c7f2b17dabd0fdfacb93a9679d4e8a211bd6a4c417911b42b7f4e8354b2a758409284328da8c61546bbaa13ac0ab63936bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b93c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db17a1dd82353c650035565c7bc00d9e983b457e8c8e8400815db42975e7191dd723725bf4adbbbe02d33ba140065e3e1cdc66f45df62ec7fad6156e418389100c36bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b93c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db16e08890aa848dc2cf6ebff393973a719895979a2e346a08da82cd7f791497511f9a4131e99449698ce8ce1eaa5edf794bef39d7950170d87650c3653eec76d50bba2f36522d59ab82ede2c4985d52a8c1af4cb45768d4d34000a3c4b4678bc92de546b81283d93d323202c8cc923733cabbcbd1b161d0388443c11d1282ebd00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000119855653a92b5b37bc84430dedfee92e5fa2a1627ef010cc358ffc7ca795f8ff10f91417ebc5fa0a82c0fc211c1ffd54bfedcb8a1eacc12001db3d3dfcf6410336fcd7247b582bd4755c005b613b80ca2f8820cddcb43e242679713b9c095089132f24b896d0c5362ec7896ef900a2aba3d25adf53f77108f34a222c4498678214299ad45294b6b41dddc527a1ae46013a4622388f6d3f7fbd08cb5da0b408e8111e3f7e1b77c40285c0545eb39b341c4a7f097d9bd852d41d534ba5324d57cc066debc195b53304b7c8f3785ea52c698fab1c33036da1aadb1d57d46a57fa0b1b55c2439894e8561eecc4e7337a6c428414211cb9e391ff0d1e54a1dc8492741382fb675176bbf903e404bdded09f4a79609c13f8dd0adc9bf398380d0643c00e803f15245b8ee7e24b7a7c9b475907f23b775017e95e80844dc3591d4578e518f961d2961eace213ddef4c9fff847634c6aed28ea2b36c47e11aa8476227f61e1a563dba60b85dba030b80ae9ae90dfed627a0c3282e96dcc4f6f5795a0aea303db71302220fdc36cb981571a7a39988356de91cbd34414c176a4cbfbd0b1606547e6644a457d54b633df37048afd98c0a7b53fe4373e2fe2654b7e11f75890f4a5c550e927e552d2bdfb5ad5b579ec4d13e605ba0e8be836ec282edc0bc8c20e9dfe79ff700f343168ec6a16ab1dfcbd35a3498546dbd3834c9a0c16f318722b5bf8602797964cfe223f7f39caed228cef4a518f6375ea58a12923cea8cd12d374dc211ef11c761695eab8bc0a9a0aab656a0122a5f78e1d299ba93419f1a0d1a3a23a33ac356a53f60b4d8d4635586b2e25f81d3fe22d36ae75e7cf442be2e35b50d9687b4c7d820a14f2e63abb3597f2ad46eeef9d20d6372707e81089a184020a4fb3d8a714a4f626e3ea5bb356c6ef4c6747cb8aedb354a201f92f6e62176aab83a16b5378cbd7456d7163bdaf3976424bdb7563de4371f703e5b6e3c05a54c3ca90caaf0882824ecae0496d22fa11c473eb0fa671156a4345449255933935e3d12203a4564b3f7bd3e5188139552f235daee4ea1fdf45a81915341650b88d5843256b8f16a31985616cb634b4a614bdb510b92f6e2c2d2268695cf210ce82eabb395d8486c049a6304082636414c908c415de6ca846f31620d3fe25903aa258c4f5cf8008e3f972b21e33b538622309766d0a7dd0cef851a07dd74421a435475fb6ab1e7162ed84df5693d343dec523b4069c64b9c89cd0df7fdfa610bd0cc0e4bf690b74cccc9f4da3b379896be27c571590c67e76971b5caed42ba2bac1db6f1236abc4a0927a957c66dee1dec17d2890ebbec9617ce5b2781620303d3d397302499301ec0ff0a2f2a6171831491c3c698372840da2d0655b68ccf3cadec78445ae88b4e7beec24095bbdae8981bebc7a1b4ea4fbefe3effe7f40f02c35d2cc186cb97ee70cbab620a055322aae8a6337a853544e15a280f4a93972f17598b444349e9adba8bb649ef188d910c0e3d0b79989f0f8604fcff06ffee3220e40b6e3b8bd5b56e9d049c833f29339266b485253e9871760ec1a5c9b1522a0cf327b065fdc58065610095ec4a60fd601c623a664c5cbc801b45440faaac201a60c7a9c8790d2e4b2ead49dbe70a7267da3683781a11f5f64e49c64a1b472c4e2bbf32761299b938962a6b3e204de7e452718bd691428f31b78e05d97c3a3d732743c82f5d48ed9a893e0be8edbac1b2687ef0af6b353bf98639ede4427f240f99396e8262647d1ba5ebb951165380ed43913e404c2172eece648b8f431a0e9d13f24d8f4cbadaa2dd0b29bc97e0bc6655051cd7ec595ba8de236553f1b63eea4050be3b1b13be6c78e3df2888e1650abab2218939e2b61702514684dca807e123367bec5811decdc8d749c29c23b23750bfd52fb11e10c429b7d98d419a06bd7b4e1dd77eb398b7f72bfd3e106249cb9737d11d912acff5585563a76e991bfbb9289dd155b42171679d712ab8ff9c4333bbd29764c3031ef81e91eaceb23655e9153f46b97ba2ad0a01a65b132807b0cff3264c4050421e3033d3e4307c10c685bb1338e347aa2c5765e3d9ec3d3b00716a4ae009b3c2120d02fc58526d3db2f9de3c0d7d640b53605e1cc84df1907e3ee914a236e7832439bad289fc523378d8b5238ab2438e658a8f45f4a8ec8f007da873d23e81eefea7862b977dbe26660162bd1cb7ec1dfad6a884665218c6c67233f897f80a722d9017bbf94e0909423384f0d74a20ce8bb048dcd97d6222ae78c1c3540d2ab8e53c646732492636bdcc7b0f28b5df31744fb72326829dff98203a45f8ebf0e047f48898cdb6db2e4b0198b43472a408ba716c503f72eaad685bc8d0a441d59c7a2df603fb6dbe11b4fe674bcb8d5bf7458e93afc08d1574de3d3338a8b745fcb302f6fc049243277707fb85063d342ba4371d913d3e94fc35fff7f74e5dd942db530713e924b31888f8047af9c2cbd45bc8e26ec2c16b2610990411fe9b425651dde5ec16db4e055327e9991f3204da351393d63238e8863a34e3b8a0e9eb82c10c5c638db77c3aacd81666e0cdfb25caec6c29cdc7179c0c641850ac0f30166c24909c72488509423384f0d74a20ce8bb048dcd97d6222ae78c1c3540d2ab8e53c646732492636bdcc7b0f28b5df31744fb72326829dff98203a45f8ebf0e047f48898cdb6db2e4b0198b43472a408ba716c503f72eaad685bc8d0a441d59c7a2df603fb6dbe11b4fe674bcb8d5bf7458e93afc08d1574de3d3338a8b745fcb302f6fc049243277707fb85063d342ba4371d913d3e94fc35fff7f74e5dd942db530713e924b31888f8047af9c2cbd45bc8e26ec2c16b2610990411fe9b425651dde5ec16db4e055327e9991f3204da351393d63238e8863a34e3b8a0e9eb82c10c5c638db77c3aacd81666e0cdfb25caec6c29cdc7179c0c641850ac0f30166c24909c724885000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000104f76403bf60615a60b90f6473eb481cf6da2c22d4594ce4afdbee7f237f41e03e92aa0756591803b616ea271a70651e7d44a52672d5fbca8fdd25dbe60153f922c5f554f55e1f6dec782a0be0543f4c7b71f8485a2e10391db44ebd31833ff019268ca41e96598a5bf44df952f5a40e60fed7c75dd31635181d04c0a385e58b14803586fe72a309548596d30bfffcdbf511f7a83d11433501fad6f0a0112fa824d9a756ad18f420b8cfb08ebb78d0e0f005efa04ce9938df69d42917677a1cf1e5cce4deff9a1062fd3254d52043a0050968e019bd4f2913c411c1d46c3acd93740cf01dd71ce350f17c67f6ab0118524b0d39877f3102f9eaa4bdd83b9e86c2ba2411fe33dfa0cd3dacc7bb65f403845f5298a058be1088e664d8e35e28b3e38aa5d8a8c8ffcc90210d317d7a218f822ab186b05d3e754a2972260577fd5cb31b63e639e7c63bdb2566fb4bf6c4a4d47856a6e1e40b69f076a2987733f02353449b39b4db203e12d02b250d4a37c45376d0b3cef7b238f444ca914db382f33022d1e12632fcf13577760615c9228d54f95239d2e6af4e022a0f0e63c95f1b30f4d3df90294087010c0bbc7ddb44465a3855066139de4a4ba5bb9f6e4b1f07232a00ff0c1f2a9994947ed8b953bd689d92d0dd0c8167669fd89bd0e4419e966301794149966b4642a1cadc30ecb49a523fb126470cf825604e33b538d4703582f6f0aac8b0fd732b645605b224be9b74aef4263407633737bedca382812e0b520970bc14627532c8bfe08072b11cba9f8ec7d317392b48bdf1ff843080787b815a820764e4778b26e0ac7eb4f30eed2b7745eaba300e232fdf38ab089544ff32df364a9b439f23a9070f858f2b427f71d641687063294d36197caf4e338193d2393fc84ac0bb9c0edb4d1a35957e02ada3722c56996742824f523449b55a7fa39d07fbf7506aeff02e0fa8c479d035c0142326eaeb3c73b021978541d25353238e29f3b3655597f9b6ceb034d24933eaa3a4255054f66a097d66d85e6d8af3812a65c7ac483cf32160294705ba461aa93043cb3a1d7ebb46b6694030146e51601d937ca6e8181422a95b3a03cbf404a03063240ebbbe9b912f21b3cf33c42660f9a94cea1ab2c7aaca768c247ce4733c2090fc2878f79c5890e031758ff78322d21637a983cf8fc40b47ae3d5cd2923950bb6dcb33134d388e47c4305e4f87f051b58ac719787c9cfa4b09dacb90b750cb83283142507de06fab8f9282b5f69312d89b3c3a2f8ab20a41d59b6238a028c1b05d60387327db2d3cdc4b9f244ac35a7ab178202e6bbd3cfb19d644630b8569075c194874de5437a5cda3ec936810d7a073716774f9df7932c400369e53f19c761313c964714ef6c0dfca05e4ac3215d571d6a754dff8a55feae655b6a5f23e40494c012359650fab34a4c1423572cd9efcf51a8443f80889d4ffff667d40acc81eadb064e6daa86d645283ae7272e76ee78ce60e4a9e195c859ac5c4665aaba808a51d660c3bb574521a6fd29da3862a19944318981e595a81f7ac780e95422f879aeb14a506320057c5b0b25691f69768a3499de67274e501cc7bdb52254099a24420b67dc27a58158b87506ea2fb4bb451a4cef3393a7280e63deda913b28199025ac307be0695922dc3a837600000000000000000000000000000000000000000000000000000000000000001f69768a3499de67274e501cc7bdb52254099a24420b67dc27a58158b87506ea0f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5f278f18e7a77366cd5d7abc1595ce47d9c798d9da33dbcc2c04076d3dca57c53106f88f71dc0d453484c90c325d8bfcfbf95bdb026c9a3aec927fbda982cccc190f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5f36ad4ab6f65a346818703440c16ad78d3483f49292466b6872e916cc5f074f8e06f88f71dc0d453484c90c325d8bfcfbf95bdb026c9a3aec927fbda982cccc191e3c639e9dcd9b3575eaf05657391f66d9d63570bcd53e78ddc3531d295f14bc2e87a8598380ac01e243c847f35a44d5c0f4b4dca076071896872ae74d24914800000000000000000000000000000000000000000000000000000000000000001e3c639e9dcd9b3575eaf05657391f66d9d63570bcd53e78ddc3531d295f14bc35c3976d398f747336feaa383f3713a35943f3c4edb6b1b51af8347c453c12f50a3c6892c6708b8cc90155c7c0c8ec5cc902a5371b9647667e34fc70bac3ed0c0cd1f5221fcd464012f953193c13623035395ee87f5d941b222442b95a2c5ec5332e0adde032b9bfed06ace6c3ec9dcfed0d3a1389ef65007708ee33a5d3a13c0019c9aa9f025f405ede9f7e2c60eaf0e7d8418e7386eb6c11881cb1c2ddd9d83fe6365560fda0bfa1216081d39f150f3a6e576d95c60daf87a5143b3d2226290080f0551b0bdc41da591d76dde496b4873947c841a2991c57a88f78ce5541383f7f0faae4f423be25a6e289221b694b9b0d5133c7aa5fff4184a17431aabec935c3976d398f747336feaa383f3713a35943f3c4edb6b1b51af8347c453c12f50a3c6892c6708b8cc90155c7c0c8ec5cc902a5371b9647667e34fc70bac3ed0c0cd1f5221fcd464012f953193c13623035395ee87f5d941b222442b95a2c5ec5332e0adde032b9bfed06ace6c3ec9dcfed0d3a1389ef65007708ee33a5d3a13c0019c9aa9f025f405ede9f7e2c60eaf0e7d8418e7386eb6c11881cb1c2ddd9d83fe6365560fda0bfa1216081d39f150f3a6e576d95c60daf87a5143b3d2226290080f0551b0bdc41da591d76dde496b4873947c841a2991c57a88f78ce5541383f7f0faae4f423be25a6e289221b694b9b0d5133c7aa5fff4184a17431aabec91b9d5a2a50c6d8a61acdf312b101a31352f3356636139aeb9593bce4d5ce2092004c37cf170d22355a2c252313a00e318136f39a3ea0096dd1ef1c2bb8c26fb52e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd630724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f63cad42d00b1c85898c8734a7773fcde6e6af3362fc537e8d1fe577eb4c0800a338709587a5684be366fed5b4d585796e7a7e5ccf560909712327421873ae33ae1e2dfe94e27245c14963a6ee4e6e50a81ef6143d149d890fa3d060d4fbcce9c82a1ac3d118f0c53456a73980df4807bea044cdd1d80f8a0ac83026c45229679b36ce8f7204cdcd52921112439e0939cffed0e736b34ba50a088e2a713f722f8e373208b0487abcc23f2dbc50176c88c08aa57f0078482afdc8ee361b7c5ae30739e68bf42b1126718c2c16daf7d61a26c72192c1415bc802805c2c4eeff42ea209eed60eb0b4e5102fee7a5c01f3b6100e6901ffb577185772d79deb5fb23d963645c13e931b1c4a88398c2a08869e8491351cda5c85f028ce1aa0a80ec8439b0f418309f1eb8d78abf6e2c31b82e9716810100d98ab8d583533f597508b3c5739e68bf42b1126718c2c16daf7d61a26c72192c1415bc802805c2c4eeff42ea209eed60eb0b4e5102fee7a5c01f3b6100e6901ffb577185772d79deb5fb23d962626a20c33c3a27336b57989aabf81883b76d3d0498da0a016c11e0834a825e736ad7d9c95d25958a87be1a7b086e0fb2a18f17d14baa9b18f138d547414667f37ecdff67eabaabe09513ef1756b02481adee2767f8b5a5adf3dce04b680b2201a051809fb6f227ac966269c32a0a790675141111e7f85bdd7493581b1f20e95000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010ef1aed1e99d35333aefb565fce63e1f87ef05633d9d5433c044940ca903df933b515c8d933e52a9f4e25c2951d411084a0317b852cf4aa10b55f555fd9e77c1061b6dd0393ad8b0d79ae5356d1e12bf764ea121e407e8ffe834f52a58cf8b8937f86ce6f44285ad08aa2e2db9152390896a1314bf0efbad0fb91c2cdfac755e19885eb943206dd7003add9b4925c6a74f601bcaa42b6d5ab8185f7e357c6e700ac7e9e0839a3bc4da2fbd5d627611afb4ef28927076f95112d7464f7e7d5b9d16677da981820c0d3eb8e84bedf01d153eff9795cc821c32eb58f32eccca22082e9e46f5d3129d4ada6467e4e2eee6246c8fb1308908e92c76edb08adefb35b515f2c9a15cf8aa3eed7158eb888b55e2f91a6239d7dc8d07b429aa54f04a6e12097d60155e15cbb4a0534e68e562fcb8b56ef096fc1236b202092ba7a816a5fb3d116770b74f0e9f87a66224aaa8babe24d26840515ab2356116d9e0c27659f4094f2ec0d4360f8560e677d2088409a5a641206e524401a35429c88c321a66123082a82bc61e459f3753188c44e0d5579c22ac574ddca6b3f81c80f67925dd5010689ead8168faba155d6790261d42ceac8ee9b9ba239c685d1d9e07e3ac3f8a2ec752eaa54990a8639bc0d5c6eae9334c7344b2bdf0edcd343b270715f1511b06a4f340ff9372b09ed71be1b1921ce1c2f63146cc4cda9946b8face352051c0241d51f973ec8aab3bc0bd141361ba811826064418bfbcd50030a2d270276d623c5fe4bea3668ab379728f856431503573394681aa6801eeb6c5507afc3b91e51bd2c9bab6d812e0247f93890b784f671df3ed1a6afb0577b4025a12dbcc33aa14bb72cdeb75063bd9e167ab9514f46ec56148b74506045515b4d89e6bf6e034214253cb08e2ca8d3317e1a60b2ad00d6758d41dc87e78fa016a945330c165f32606b3c701efbe3d79f6e21f76d933a0bfb29a41b15647743bd8c81d2e2ad40535f942b0b9ce3ff60178a0e7a559c811a46e5dd66741c045a1913396552f73cb2951d87f933a62fcaa043793e9446e565cc8bc81aea656d8106b0c1559ddb2fc1f8884b52931b5d8ffb43fecf35c15c4c9289366cfb1c31fafdb9ce248f84e263427773a1352493de4bdc538d0dcaeb8f3948baa4bfe8b5b1472fbe724d2133d013794c48f22e05a0f4741ab678b7f38a39bec722ca897559a3b4ac851254f7b2ee6efe9b669a8df1a22f7ee3846bb06a939ac5bf8e67e7131a6fb28186194352225da593e63f90b1e67c212a09d6cdd7c486f19efaaf91d1fb3ada181bebd74315e8ced145d45552753e0c36d74a393761e01c6c825192cccaffe0f7557d3a712383550e52fb3f15ec09038331bea0ad5b7a68e1dfc835917793c5d3b941df23e26832180d1ee0e0b863411129b2e1f52082087a0208631f69f6d69328c664617103ffcda66f4f2f185dae86fd53c3d7ceb9be7ab8b149978874746bffcfbd32b57a865fdd5207ddb77dfe83e74cff193a6506843b8a9b67a17b4ae47284efa2e091835a3caef20ad21959f18f0100774e0d7fc4a01f311679d7a42292af16f2ff2016a7b2c5acc3177b5c557ecb5d24a3de2d2b67aded0d71ccf5f06f684230837f390e3078b515a3b393787fe51ef23dcc60f7f1d8c28344459801be141bc0ca6b0094c41e01de0c1961fb076720c25863f82986524255525361e7ce845d01365a59a5a547f22994b91b4a696bd455e99ddae2c2e08e12e58b8ad6adb89c01ba41855a71f6e48b51b5fec2037b341f5a02d4b64dad53b376753ddac81cd390d9dd072d36c533c8bd6b9f3c8303e499a625e4aa34b5bcb3453978de23aa11f1cb6da54d386cdcf8c9e2589b7ad19d110831cba6caf8eee46a339b3f4c0c149039d7ed98a9616c2872b6d34e58ea2bda3bf573f4fbc5b15f13f6f3989add9a7154ffa97956614dd7d9d54c0821938c597d00b8b0a6d785db8314004a2a3776636983cfa735e0b52dc617363c8c174366a55847f987b4545418b3766c8151cd1262c1edc789c474650b7bc5de73dda7a1383228b67ba7cd52dc04b7d24322b2b1d3db38069b1fb7a25c08b1fc92ca68127deba11ca59ae1656508c2ea388c6d30e5856f5917cc70dffc048d112b4a05d7099919af1e51f59e45cd24d6604579e3c27bf2e50e25a0f368854220de77ab707f943391ac0d1180a4a968ea0fed7033af07e4e2a46f4164710eeed7386f644388b1013bba4b99c45c3fc5828fc47663395a5dd360e13de1d90628d3107ef8b4b55279b87bebf2e5cae67f17ea6ba930c6a5a22c9f1ec21e26f9d72cef81074d6f17160818e39ed3c7ec8fb8159456e01ec3d520e46635693d1ecc1f527adb7ef8f62198185d7796ab344037941a4db3e13c2adf1b99ca96c2e133e0ad8524832b736e287c721a22e79ece986be5b26099d329a475ff0b0e3199fc9c9c66497adccea7f879d355f158054115e4838473662cd65b8a00f4f1ce6603636399b687479ae7c81afc3bc83acdcdba1b7c7ba3011fd0364dfb3746f801ef0f0dff6f66500947da6120adb6b81a456d76919630fee02fc9b204c8b907fe10f0f200909bd46047e633aee402dab8c962896e69e3395a5dd360e13de1d90628d3107ef8b4b55279b87bebf2e5cae67f17ea6ba930c6a5a22c9f1ec21e26f9d72cef81074d6f17160818e39ed3c7ec8fb8159456e01ec3d520e46635693d1ecc1f527adb7ef8f62198185d7796ab344037941a4db3e13c2adf1b99ca96c2e133e0ad8524832b736e287c721a22e79ece986be5b26099d329a475ff0b0e3199fc9c9c66497adccea7f879d355f158054115e4838473662cd65b8a00f4f1ce6603636399b687479ae7c81afc3bc83acdcdba1b7c7ba3011fd0364dfb3746f801ef0f0dff6f66500947da6120adb6b81a456d76919630fee02fc9b204c8b907fe10f0f200909bd46047e633aee402dab8c962896e69e1040c9277dc8c6351fd039b70656118046072e337c872d37814fdf794ba768ca31870947f95bdea9c3c192cb3bbf7effe29d0fb7bf7284c1d7e0d66acf118ab01ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a1d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f31193e844b86b8c4f590bdf70d22aa7ffb46cef2f868facb733f6021b5cd75c6b3b234a1d408a815218dd978d85cbabe63906fcb6edc584daec2c3ecebe09c9ba6e637474a7ffdcfb565c32df73d979327c405c73d83f718ebb906410d73dd2a69150cdfe26095404455247b2bba849a1b548587d63d802de2b14f45ff566d1748603b6d97230c19cc65a61d650d6c2e045fdfebc3d59be318deace7d9def822802206fb559fd2cded1180d261ade475b90a049b867c6e953e68a9eae362c128b6c024f3cc984102265dcdd7c86bc903d5b2b9219ccfd1a413f5b054954914ad8aae2b3f9c77fc3bd3c17566dd79285f24c0ec915bdd0f6a6b45c99c5e3b9018b9e6131ac312f8bb931b3401555f0b5434e084905dce14394217e73ffe32d8593c1e3138f3bb27893a847d446af3c7d6cb1c36468f53ea4806685a86e0ab666f443a24f3cc984102265dcdd7c86bc903d5b2b9219ccfd1a413f5b054954914ad8aae2b3f9c77fc3bd3c17566dd79285f24c0ec915bdd0f6a6b45c99c5e3b9018b9e61ab6d33a256f9ad9258d987fc73942cbf04716c5e24983a94667648133a2579013028389c7b47ac20c77285aa156d89333428bad1a0b508e0dfd7bac1f48d5fa3b81313d00adce58bbecb348378aeb69c112565a7b6ba2dfb2c61918559cf740255e45164d505e610d87f31196438ecc7eef1a61cab55a3e2c8037d60fb090e100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001073b4a1eb8fe17b673990fa342e545e24dfb8685f4210b39223ef563a79db2c129ed5e43b8bd8aafe2a130c52a1cdf5b99ae1ffe96194dad9da08ea193ff17b6198b4a05c5b94ec13631b16713c23eb403f6b9e369c19b239ea2ebb612b32e73161fbbda3f40e71973b503a1395f71fa4fcb43b0ea068c3eccf4bd9aa8cb62bd018f2232c024a3d15bc3c9722138cecc5513aa81f29fbcd2a97989fe824f71473a8f50d944a9ac248e6770fcd64c081213cf506149cc2f953a004c56a9dcba680a84c77abefb37c669bbc12d0b6a7eb69e7d887607a84358e885c87f88098afb1a315b13c35185a7d6d5dd6d6938ea943a82c1f6189dfaf30b7f507eea06e1710835da4e579dfe8bda8459a51c1b43c8207f2641354401dc13412bad779521131bc000af4bb3f5d0225fb0f2d05d82c4cad7b4c068776e0da431d4e631d6afe91bebf8084e2c27e38019186c7bb801a99388d4aa03a4ab1c3b1d4c75f2ae8ea831dfef699cc11334256a51b70c962c8ba0906081987be73b25205bf87e9c57210c0fbc5522022c83ae635c6b0e421efd868aef1b16d230732b248f0f4b90e84d37b1d5bb083c15571301a3183bead41b1eb5bc4499c6d3d816e954b1e134aaf22021d23c1073689414fa1843893ff47e7247a15e7587c8147c7debc123e4a90e021405eab26fc6d428e2203a2ecae62a60f79a2e7a5ef26ae7f92a440c801b2c14f5e9ec431386bd2eaf5368a704e71d5b9c5659312634947f4aaff4f5b2581b15186484bd03fddb13a6ac062b99a7ec01d793066d24781c2bf7be0b5a3b51bf2201cb98d6fe299c6637d98221a9cc402d909e1643b44edea8a30c71ef24fb263f951ab541067b9b81a3ec7ea1adf3dbd337ecb893e70d5d55dc33992beef97630209b797e6d29c9f7e8926c58384c4ce180d56748f95b9c1b6e35f266df2cfc23edfb065a24470fc84700185e9a910b1727e51c9517b51dd673176457319063192a27015103d510a8827a90f59a17381873469330073218a7daa0cf7e324c9f1b0ca38c8833d206868983f400476bfcff0ee127b68ddb17477b3e56788b3ecc115b95c6235a3d610ebe714c86bf9f4ebf93b83a9b4414173c997cdd417b96d23d78bce8ae81b920ef4b7903d9c08cd872703c6b4f66d479273dd8917ae9845a0676ba9e7b3c07c5a72a7b38063045e1fd246ef22ab2302f7c955cc3e0dcdb3f1d27eaf4d7888d0a0d9a9d67c7dd73411d91d34dbba3131a66e9d47916d936d91462a1507f707ec51d5fbdd99de869bc2b6bd47576570de760085da7a8b8e12a316d243a37743924532886c296f1b75b7eb61926680886b0c713337c5c599abe30b9e705df3127c54212d7bd8edf76919ebe0c8defe0ee15971fcc51a9bc80f92dc5f034dea36a0cb2d675938b2ab53528a3716eb206e71d7c44abeeb4fe627318f1ca3e68c0bcf4c032ec309195131fc1a8ac23e6944121d9e83408db3f6c4a3c895a8a7aee43f0012314a91d01584c6bbdfe92ec5031c40d7df80bfafb94bc074cadecb23eadc033a99788919a86341dec11e186cb285baa7a8213110e7feb19f7e46777360d87f158535207543d165b7e494642329ee38be36be6b879180b085b61fb02349dbe19b984935f6fdf4a40f8d9c80b2cff9feba62f83ff926f9a0998eb32a389c0d74c23a60b6479c2a7e0a41fc4d57a9614d6393d06201679fc11a7c27fa5f4f5fcdf75148432691a24f42642d2a29faef2b49e55aee4184a750cf9dc975fb46b7656e0fab9563f4e8c37c4a5485865eff94e159c1b6fba166c3d8b94a4e41b774fcf776a635bc137890d98df0a5f2d1abdcd92fc98afec331a350cd650cdd9f4b99628027b95ee8daf4e4fe7878cedb817fa7825d0c505f2603651891a3141e4cc81635c07785493a066fa230855c255c36dc7360531e951d20b0fb98332dda0a19587a296b85f9ffae32ce9bfa7df549185c600ec3f5925791a63b835bb765beee4abbd64941f7edbf29bb92406f1b4408e5ce862a1d1558f1676a52a3a934b5f6074a8c55b5e273a513d242d8953521fa5465cdcfd29a9cb25ba85b701fe31c68b9001a0fb746fa1322688ce73db4c460d31588de18cb15311c92dff67b240aaab4bfb8d0e868423564221b0dadf19da4b19e4d23891a21e367e12dd6e679106257a7c79ba353e987d305f681a8367b0ab4a5aed2c6feae6011e2639dd83ca031ee96e66626b8a0d2b91c85ba68feb6123b7f43ef8c7babf2f712d9402cd551e2139b3bf60d1b084583955d2599440b2edcc989065d09091108ed26bfd32aae1dec64c409f2e4f7bca0d4329afb8b868ab60985c9a2f6f702d35e3e40e02a996a62082bce4187295524ae227a3fe582bd977680afd12d2d212ca1c1bf1fd566959df7d431be78d6acffbb6d4654ea0efbfb5c8e202ed2d2f220d7374460d4ff13ea28db0747a3cea34a29fd21810cd8873cd756ff15e1e171df28c8bb9f2b00ec15d724f8b85c315eda3f929f13c2b93255fbb7d0ea1e1ea2a4341455e428fb6392cc47246633092c29fed2265ba117310a8e955b6d6967115bcbebaa1bd7049c6d33b8db99ccf6d5fa6abd9a392e7a888844797492969902f712d9402cd551e2139b3bf60d1b084583955d2599440b2edcc989065d09091108ed26bfd32aae1dec64c409f2e4f7bca0d4329afb8b868ab60985c9a2f6f702d35e3e40e02a996a62082bce4187295524ae227a3fe582bd977680afd12d2d212ca1c1bf1fd566959df7d431be78d6acffbb6d4654ea0efbfb5c8e202ed2d2f220d7374460d4ff13ea28db0747a3cea34a29fd21810cd8873cd756ff15e1e171df28c8bb9f2b00ec15d724f8b85c315eda3f929f13c2b93255fbb7d0ea1e1ea2a4341455e428fb6392cc47246633092c29fed2265ba117310a8e955b6d6967115bcbebaa1bd7049c6d33b8db99ccf6d5fa6abd9a392e7a88884479749296990059566e6dec5172aa9a3d8a9347fd6550f6f1691a37f82eac53d94a6e7613a4813923ea18517c0e7c6fac4d117b9917c9f0728c9ec39dbb77de85b5c17f2c7f431db538e220d9050deb695a20721092fd516be72dcbf54583fa16ac019dccee5387802b35ef46d465536c7a5125bfe9b85eeefae2986b2a5c1676fce05f4e00023096f3065f532e86a57ac40df2077670a0043ede4ae3acb82a22513f9e11ce71d7fc490211442a89bda54e307c18b2d6a33e4d61c37a7bc14225d70a1b8807910a15e6790d8e4b82fe087135089323ffd067829bc177774d67da45e03ba2635208638785079210403ebcf053fb691039dc5feb64d5e55135b61c9172354fdb2209fd7b79a22778c407ba6c5dcfb5a08d6ca01be1025bc844dde9f67b13c1656140f7c93a4f215a82cf6beb8864c0e021c398fe6116c383d633ad8f237112c8922b7fca4a22d89f65ab4f8907d14f22b785ecca330a9a198d313d069cec501dd27014a61a3142c78ae69e53a0b31012aebadfa90dc35eb5536f4994919ec190c088f458aff2d588477a591b4c45f207b3dc0c3f7890e21d8944e3185fec1f6d533f5beab1bf3d1d1e3ce7389d5ea6fe81f97197ffcd963d9f30a96afe218580f22b7fca4a22d89f65ab4f8907d14f22b785ecca330a9a198d313d069cec501dd27014a61a3142c78ae69e53a0b31012aebadfa90dc35eb5536f4994919ec190c0d3f2980d086bfb2e58ba6ce5ac11b7bd0731a80dc6b6c793fe46e38ee655f9519e781dadf3ba4e72988916863b109d130a72d53323930274c4836483e1199181c29cf91f965479c756d730c77c70021fb3acc627abea6dad9ce7d0b1124fff70b860f8a3d66928e9fd8c64e2d8d27bf57cd0b398b7edf31aff5790db6eb96150000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000123f35faee494ebb4c59eafb62b0df636b312cc70a4e5329719ddbaad43bbb9b80583766f430c6f91c97bc97657653637e79c84d16fce01910ad73a1d7420d32527cc9f3aebff16a8c5b46486ef959fd8fa21a285c505f467355b3e0dbb9d3c982e8d96db2821d25e24703ae370b04a39bdf60e36cf5467872870ce76b50a5dce0e2fa435410a8c1c4626c3a2399ef4f3e7f49b00809672c0cc797ef0bbe4f46b0eb6584f1bee2e847cf46d0e0f28826524128b718e01e1f12d80d3bd64a881b509c01fba9adadfb72f80b0fb0ecd6d8df38b165dd837e7db926352d9b2459bf72a99211336806a80603683b6e59d9899be1bbd0135526d57afb817c5dafcaec8367dc56b395f205f463ff9fdcd89b715f5dfba6fbb54b5581e3225ec18afb8c62f02aa3f189dddffcb605bcd45d8ec26b3cd713922b962ab1546fb27f9d8dbb70ee7784cb73aa5746ac9b0fc196c03caedce74f78ea31fe717a3ba8f94f1d9002efb4e132456ac608b2b0bd2e4dc1326976b07b3fadd6fcc9660d1c7612bd70c343726fe838f3a3c9c765b38f6f28559aeeeed73492af3ac96c6f32a36558f0b242d9d391304f380882e63c6cf4eda0cf23ddba9061221f4117f214bce80dd540c9f6c9ece2744ed3ace154f099e84203e1b8f23d10b36e131086e296ac985a326d44e92cdecb938d560ff7b2ae6f49c238ec90baf2661430860cbe493af63c71a64bf86d4425f7de5ec5950b2b5d48c28c01230b9761773a24575911a56b872177a79d6111fb1236952250654d0c6bf71b4862ebd290fb13743ce91e77c56be0f84e56d31327343b976b067f1457edcb90ddf61741850d6e21df900256d2a6419d3f9e52edbd3c7f83aa742c64ec7abde3893a2f3661c3ec681f8d024bacba606be0542bfeff4c62143ea64dbf81858fccf8a615bb55fa06fe6faee822718c82534e42e71395236f660fbe71479c08c79ce06ca0ae084dde004234fec323088058bf245d9276a6979300a8cf8100285ade835ab97c030243d0f1b9c263f6dce0cd23ee40190f5eefd890d85d2c5f546996e1a4cd42538feb7f1bdd7f8980fc02ad26bd5eaa123f4af116900287b4da58571bc2e4071bd64f684d2525384d1ee21c271db5433c0a973724a26a3532ce46013147b7ce371b52f086c851dd62dd238e3d4a1730e3b62fa6f6b4c94628d6a35ae06903b091f56ae8d40d4dd0b8b123bae78c33ad4e44922ec766fbaf320ca1c1042048e62823f552e69b209fc018c3b27e6c44bd2a53cf48d9c7f56201f125b3024f0a3c68c3f6bc4830f874568ca279dde32f0eed025ecc50fd4dc654ef1f63f06e970c170ef01df318220075f821adfcc5b4692853c651d8f926b2c7154a9cd16d2ccb1d9c1cf56d75b06a2815c1426daa572bc47f0c86027fc0d683f9cc28adc49d864169d6297053cb989bef029b837c61533b35147be518f7a1ec5ac20c1b869795298af7fcb4525316fa069269f5af4a904c6931da7efdb70da7285e27d11a086095a60c830d468ed87a10b2dc71069b5708d3f6d841adbe0745f1e252c202d24425afe18442fee071ed5b73cf8c3567d099d289397d68a11b8add8c9e74261bc7cc1a3179d7c42796eb8e802e737223015faf51bef402211804a8826f9d4745a168c00bc2060d8948a086e2d1de66acd4d22e67f2343647b35aade163c0fc427d9b278f936ffe1214b6a883badafd4e75fe8f6fde0ec1bb0158a418eab6b2cd2ae4c4e5eab957d28d12179287616dbbe7e6493eb0fd9424bf29484c88ce2ecb09ca703b1604c7ca348b86204b2b95241c7e60e94cc491ef52a9c905811ffa0841ff0783fb38fce7f0036d11c1d40f722ec39fc3bcdbe21dc7fd9cef439a940d0787ed87a4a52789dd73a221e26a207066cade8de3d1db06f90a14ab79673d49433453328f60366d015184c0e6aa11a8349f0a7ee8602c0b55364f8831bcd8d526766f6300a3654f213532b0f0dbccd4776c81a75a28c5765ccfeac8d5c22177a88ee05de350f41900b5b4d058522493228b84de2db5f6e1424cde7fcd9c372c58c179fc9f41e5525b593312027f6ecbb9f2a9ac0568b6fc779dfb771ee58979de0a61c0c0f2a5dd68adb541c8239e652a81b4de18c39dd0ccd5439d4fb63ebf9f0773ea5fdebe8f614ec93288c9e5e5b12fd993aec4254bdcbb3839978078453a017675330b60cc5fb60570447a26efa6892213635e4d73e9772c98cd6028fa21472a0f3cbe54a5c4890ca0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae02347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f3dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc620b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de6371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a8708e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae02347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f3dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc620b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de6371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a8708e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001289653772664e5b0687671b6bf39d7359fb26e826dba5e1eb38a7e5233ce8de93ec6491753a6df9dd49388db1f1753ffdc69a266f0748b95abf20a8f65cc98142b1f7ac0060c8f935b9a328ffd8580f8af3732d9b1e774dae76956e5bf07120d155ff29f7d0992088c9b20b255a58866102fb254c5b20f82ff84bbfa157893462457c2be8825a49fce7d2fe697a07c834e1498a2ff2636a5e653e8b5efc346403ab7e0e2a2ad5b030ce3f960e10aa3dc9233db165cd5c5ba88137213ea653f0810fda5aba2d75ab166e0cca6c8c4ed479483bd7cd4f9db3ac2fdf7d7adb1c9500bf2d5e86ba4e45091aad8653583b89ae65d2931d7268adfe5cce3309bb9cccd083cbeec5e36de6f1a6470030880bdef9f26456b706a217813fb8bf4742020f4209b9c6de16feadea3cbdc9be6aa583c22765a600d194cd0186885816517bb6f3ce885e56bcbb6cefd35e6cc844861fb57e89766dc3b1a33201c82801f92f9d2337bf87b75540bbc0106c7074996ae1f14c1a5dbf89ef0941ef4cb729f7be01b09157e2d89205913d660f9152e494cb27b7a42b1292441c93f9c124aafcbf12c31ea65c4e9e714558acd2928da3d3675dfc9859551c535c081a81e79f163baf21513d7bf8fc2099863b97b5c05af50d4ca71eb13b6ccb5c815bd2bd83f4a0ff0293ff13332dbbb46d5613ec2484b2be2db4b22b31fce600d7d8f476f1d7526ec03ad1481b1a3c72c5736c382b3c04bcb2d1fb76fe935e37c3e130e70a50e6eca344b100f9ffff50223345ab458fcb028dd259864c2b9297ebcec62b5e8fe033f313a4b3154e4069adaecd8d03bf1b05e4e84b2c8fe6d28ff02f50c48bc01ea2c28753404c226483eaa05bd14aa4c69bbe15d937dbd2bfd61cf65df36f3b6f47634b1b6989ff53115569a27bcaf2df5a5ce24e1fd6a1de71ab52215d2492604b1202d2bc1ea579926677fd525d466ab4e90526da65e7975ae2458c0d59db6d06c104124bf579fa64ae96db0a0d5cf1eb4abfb3af7101b4ba1f2b8f9f85980a51119b0a870a9efa9b32e0ed0d073789fe0d4814ad6c0fbffa7dbb9ef4d4d0cd98d0e8ec97b0027960bbecd21346c6defe5f660b38dbe05ec072b7f145833b24d57151f0f65216996636648e72ccc7caf96813cb94c3a72e99654095c7c0210c1d03ac0c241ab7743d248a5d6c07fdb76b9e9fe2f62eca4a6e137c192078f1a9f0c3a60ca090e2aef847602f31970a055785c21fdddf5b8e4882af5d6baf7a2abe4243e807054c24a4e5c8590d5fb6c0ffe7ccd5129829c67636e5559755d69cdc434a11a37bf8651ea7467328346742b24cadd210bf96eb351dc21d7d55481960d0d8ef9df286fc3a7e42f5867cce8e2b201afc1f47eeaa928bf90c13a0608fdb915de826447ab5db14dc07da870987d8725078f6048ff976c83c95bd98fdf23a928695493d7ff52efb78cdb88959f994c0c0b74c13a8a00ef1974a07096a70bf42980d9b72f734e4ec0c9e0dbbf3ffac26f3bdca8db19d036caf234f2ac0f96882c89b461ec1f50ef1b247777597ae7273f9093e8c42f90f36a1a3b65b759e55f155acaa9bffb52c7acf71a95f8df3508239426b68deda949f5c777496e2b71702fb4bb451a4cef3393a7280e63deda913b28199025ac307be0695922dc3a83761f69768a3499de67274e501cc7bdb52254099a24420b67dc27a58158b87506ea1f69768a3499de67274e501cc7bdb52254099a24420b67dc27a58158b87506ea0f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5e2fb4bb451a4cef3393a7280e63deda913b28199025ac307be0695922dc3a83770f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5f0f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5f06f88f71dc0d453484c90c325d8bfcfbf95bdb026c9a3aec927fbda982cccc1906f88f71dc0d453484c90c325d8bfcfbf95bdb026c9a3aec927fbda982cccc193ed2ed146933bcce4e9ca0398f7b6a44a81334488416cfb84f4b02b170ea0dd42e87a8598380ac01e243c847f35a44d5c0f4b4dca076071896872ae74d24914800000000000000000000000000000000000000000000000000000000000000001e3c639e9dcd9b3575eaf05657391f66d9d63570bcd53e78ddc3531d295f14bc00000000000000000000000000000000000000000000000000000000000000000c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba03012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b05e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df622724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a331d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce0c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba03012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b05e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df622724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a331d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce154726d1e457b749e5a32d9cb269c17087add08c554ac6163f1ba6dfbda977f43ebbdef2711d9803441a84e31a9d5ceddb174d378971a5aeaf3f8ea84a27c7941dff3c5197fd00d1d0a0de7643244f7892ab4a9b26b3f4238af227929b22c07334ab22fea15d89c74a4ca0d1cbdd19b18c8dc4699b5e6d44a70b9e363033d81225bcbf352e713ef1b86fb85c844fefc903d503fdcb484921d323ce1fc3a082f81012df7cabe39036022d724c01bf03b4c3f033f62c418be42a9a3df04001865d32ffb8a81db842c764cfda08d979a7863a7de0149f6ce6ddf6974988ff4d13213e4ff5f0fa47d4f844d769855072f649123cad26882535aeeba8d19022022d051fd3f0470b10d600d0e6b73732ca85c61cc8769d3057e0f6bb7b8e9628d159fc222c35e3ef570b6bd331848989afdfca2c62d1ac0492d2f8b11ff463519b299202a6feb09641672abc1339ef443b8b25d7bb5f37c40752bf3a4a4be1d8bc1cd522d9047da94740f3a6eecb0b7623fd50ea2b88a1afb2b8cd30ae977ec6ccee220cb99cdc83ab47e449bbf3ed0a71ef1707ed7dd48d4e3ee1cf1f627aa733c79b0c98fe0eed84de357198da4b19858960dce82056edc9df43dc0f34fb85a4605d02a6feb09641672abc1339ef443b8b25d7bb5f37c40752bf3a4a4be1d8bc1cd522d9047da94740f3a6eecb0b7623fd50ea2b88a1afb2b8cd30ae977ec6ccee220065ae6aed6f15d7f50605401f337c3ff7ca9d27764389f52364064fbd2c3f80251001d0a425157b25743a0b0d071bc241473e526eff30792980e044ff103a4d16fdb19c15198228b4de779421645f9d26bdf93adc95a6bdc50bafffc3ad071c04479d5156cf78522038f25f90e52be2b7d28136f6e9ef9aec6a11b7fc317c0500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001388b0333da03374f9da2acd2136f4b7d88bdd35749e15808a64704e43de754dd090a3a3bbb5eb5167928ae828b166e81370a7342fad5731a55ed33d1784705a92781f343ec76148b7454891fe9444c8a2e10f7f88790d40cbf34dda89d33ba9c2a8bc53887742d71a89bbc3c2194748549444007da46c8d5b134fe54ebca754b2dc0f5389654a41d09d968af293434e6ffc97db65c5a227c55e42f102340ad1010fc59263e01be589e125af93ec1f1c3972d08b02328c0ae07034c80255793a30884825c2cb56eb151660b550b8f95bd0d8cf94c5f65c7c953fc5a4aa8edb38639efcdb6fad468b4d12c945ad611a77e893ce9f2893b1274855a00cb4f23341b1d71f4d444d4694ef37c68aa87ff05801edd71f131328c1d068557f90dbfa88c26358d6ea201b5eea34c3705aa8eedd7be17e2bb6eada4bdc3e1d74e7f2f718a361b4d2604e4a24b415d17caa58b57cdcac84f0e37b241c066e78854c1d556e92dee9c42126f2a104a4f2eb7ece763ffe970d9937c434ed2892491ce9cca07fe21490ef65ffbd3c61aaa38b589fe18945f7135c81cda5debffc16eeade02b3cd15db30b5e9c254b250319879409e41139c81fe75efe74059545246d5fc7611452665d50cb3613833ce7969d425a2a156c92b7eae6c9daa08288d710400f5f8b61b8ed75ead34786034e9bcf00d38da5404d971f53414a3804dd9b46036775bcd0a56bafb3a3a667f7a0963272665bc4c37d3d6ff8092479208aea2bab54f37822e94ef99e76160d9d1b049908fd9e62ad2df6a1fd8e8192b1845f95b0d84774c27d9d15b3176866b5aad640722526738505b412544167463038fb78b2268aece050bc8f9238ccfaf7eb890774fb55ef0aca46e6cd3d7e9ca9b6b6b9ee5db2da101c563cb9d9a7f1e8ef0721213ec32605d7698d7c57faa3213f1281583572bd0280608f5aadd3b022e6884004de6d2c362e8c01c0db39f68f515a154e98f7ef0229109c2dec6cf3c7c15ae9908d954724e57fb053cb2f3a0210007a0996d799a00a5463efa60612193b39e2ac53aa1810b1edd58ff876fa9d57500bd7c4430d403c712f50e41686dbc49641ef0352cd8fde7ad7b7ca0b684e1fe6b81edaa032423ab2bdc36a8e3d57bb79687afe480ba7358a9765291b394e7829d659fa45d983fc5a0bde5715a43764839499273851d7073fd0b29e1323e7a1cf2f508f6c4f80fbaa6ea9ff1f357b9943eda225518dd7d87e96820de245b2454ff461e121fbc283a217875bfd1e6bb1527dc9ca3ec5c8a2f12607891d4fa54fad09c2910747636acdf27bdf4abd5dc2877a1f085c40065d250478e696df36b71b5aaf079da082c241ac8755dcb5292471bd978ee86f1e081c8dc66437d2f66712f205d83898d2375b40379044b8be5958152ec34aeb2fdd41f803655dff3b4b9af032292711c0d3d386d3d957295b22bad96740932be953066cf8b4e95ebb78dca94d3b089ba30438fbbe1ea021c9361409083e9f51e832431ea376c5ae6b12d085922707fcd14307e53f0b7ea141f98243a2f8f90f05b6d6d867547cb251b6e75cb3c2a5c423e36dd4297da6a9c7436a8cbe3b444203ee8f681e12ceb49965b626839b1ae693b919521508d3d2e78d114072fceaa74b06e5a91ec5d064d0b46d03a86d6071d050736f42d6d95b7a31d50e66fb2e025384890142e2e478f7d8ec2b48d80121f3ae316041a4c37d4506da396f0d24d29eeed488315df43666f999553f8bbe81001b62b47c621ad369a4afa5ebddea27ff5e7bf7ac9a8ebf63610e2dc3c3d769d3913074b74a765a7082b2753b76fc74a4299ffe56f7b17436da3dd5c74615bc72cb932a1d85dda76d4e84cedfb2401ab90786ce997a6379ebccbeab56f84fb83137841e8ff5a77846dcf3dbde9caa99680aa61f87d3d0df09380da628bba66e00d90e455bd1e552c2ff431e72b51f4eb82a2de11dff4ed7748d07426d32879713a4e20230346c367e619985be1283b95eef2bc166deae71d93d7d2d668c93218084ce7b567f57f365af0c8fe030243d7cebe7af6320b94ea5d48eb7d72a1a7d1207f44e8c2548ceae32a983a06f9c873fac23fdb58f23bacdb077b785a579df61e37dd9388e52541fbd63823b52d5694ef13edce0a8ba60b3976b9023869ed82056db320d4f6d4e12994e576f3dd8375de4f49fc044e4776a603639e755c50a21cec7a6c4ef5caa07973ac1b16f04eb815f80fcdd5e0db38ebb26ac0420896263188e3736946f3bf517c077eb5300c2b271757a63931e99ac339705544006eeb0e771c8c96b90c40ae83f8814acff3d4fb2f4155d01b0f80d5f3c097bbff911637ac71410e62c2bc976c257989f03cd75ca0eb4b0212a4b304979ee354022a9408538ebef19d3d436893da86760fc328c5a5adb1073a546894959209abfdd56d165e364547edcdaef51cbb5fb1b13034460a3486e5295310b24156bca40ad4e029a1c9bab81232510ae344a04e4ecfcbdc3c64752423a60ae6ebda305bf52b212fd70f5a67a5046ac98fa8de7875f1053bec6da67081a637e21980c23436285f1028f0a5985afb9536705721878a0efae65a2b5598cb52e3b713b02acbc9d7a23188e3736946f3bf517c077eb5300c2b271757a63931e99ac339705544006eeb0e771c8c96b90c40ae83f8814acff3d4fb2f4155d01b0f80d5f3c097bbff911637ac71410e62c2bc976c257989f03cd75ca0eb4b0212a4b304979ee354022a9408538ebef19d3d436893da86760fc328c5a5adb1073a546894959209abfdd56d165e364547edcdaef51cbb5fb1b13034460a3486e5295310b24156bca40ad4e029a1c9bab81232510ae344a04e4ecfcbdc3c64752423a60ae6ebda305bf52b212fd70f5a67a5046ac98fa8de7875f1053bec6da67081a637e21980c23436285f1028f0a5985afb9536705721878a0efae65a2b5598cb52e3b713b02acbc9d7a20427665ed95b17a0576af512ebc575a225cca770747fc11a85e3405b33ad6bb002137e04dacf9afbc347f2bf066d88f624070fedb8de8410940ab528ab8fc49c04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a3b34304bda9f35e9ae3a465520952b043317ea89000a964bfcae2b94c9360dc91d4a164b68075b693e2db439bd86b92efd5b5b35359cf24326474ea04c03f18c20afdf35e898ca39b550f3d9fbcb59cd2f7006a49fe1a6e7cdb576ce47a9bc4d1646089be80432ccfdda62c8eec2e8da595ac4c7875b4fe6b063e1a56fdaff6126c27098218a30c011033a0ba7b53d15c7aad1d58e7f50088459cf9ec915a2d808c3125accc5382298d1a2f142f6d8ce841ad42a618144605589dad1893754662de5896202cb8410016aef80f8a46fc1e77d4ccf2768976871259c95e61722e80b6596dce665c4ad8cbc22e9703f3cbbe60e0082df02448ca0a85a63a0c49c5e3718005859ff8e8e357b954a3dde5aaa4eeafe4f0f53a30b91c021b78a2397e63bbfc9e5e13ddb28272a15d757c582a8298de1cb5c5882224140fbdbd5c059ec2de5896202cb8410016aef80f8a46fc1e77d4ccf2768976871259c95e61722e80b6596dce665c4ad8cbc22e9703f3cbbe60e0082df02448ca0a85a63a0c49c5e04ada1a618404a7f8ef455a4ae015b691552321b7e85bfc2dcbcc69d6c2ea32e322204d59cb6ddbc607a8f33211f7e32a5ad37bd025bd16bc602b2a9187f278c351347fa588ab24938ae2c698ac6c65b1c430e5d171147f694b99f53db294e0f1a3aa5189f130745a328b2fd2275f773ace9083d962ad8ab97ce233abebe7bff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001019df7293d86a46a9264394f565f5daca9ba9b71f72bef5bde9835ef9e5493f02d190ba5382f6c31778815364522878224af4161e59587610263c747f7fd22e90f53f3b7df9db111a06d0629ea0903e971e8f05ba76838550a4e630ea9ce80023f499838a660f8bfa5b754436e124ec6bbff3f4ea4faf897a26f2a3e7a83413727b96a39d5ac2857d0137654c0927241959a3c49aac98813b66cb0871b3cf9ed1512f8cf9db84d3dac121ab81241c1e89d400f43d37f1fff62741238cee89f6627b72e57645ee9fc07f35979967c5c553f443f00833d5013081fc400d03a20da1756c0456371aaa19faa6b2c4145e5cfd2b06f23eb4a4377d5162165e86db16911db4fbe018e220f8bc8cfc43d91387aafeba8d04123dd0c2684e5fe981912fe03b94034b93f551f6d63c77c9b34e6953aeb90b3adce0fc70db5ed94dd9cb33e0699fb87f635069e39b74702fa17b2afe52b59e8a0ec022662eb1c521b0a2e0a3979d00a5028f20106176c8bfe3768e282061588c9c28ab0e3576b2f1e6bfef60305451768b2cb1ed83ef987331dadc85752bfa41f6a98601da057b34c2daa5d024c6407807018ffe6d7c504bd39fdd28053a9a1d2830f4a5d1780423638b59814446321293e8b059e85cc7369635e0476ce54ff670e09a4d5cf03bad67ab7430bd01fb1e6028d1cba542432c0d7c1db0c18e09488f29fa5c943a820a2224aae1f5852e3f49676f5ef3448e458b96945e3ccd7489bc45d61f5d28571d88cd8621b031bb9a38b34a04d462b45801967f78893de715d00fe35f72717e63e7df4230d6200acfd3630a96bde871e12cff4318153054afacf68b3e4972bbade3e6dbf0e467bc2002fc5173381483533d2039445872ce4c305f4caf221d4853e94a85928c92bffad1a947f3d0a5e4143ec1daa0bef4b826b5f5f89b23273f431c3ad581c64a1a762721cd2187580eccdad6197c8ca3cfabd35590be48671db8e2429eb3053bdee9e38389a62c631c803379ea095486b4bfcde182583f3d51c552b5f0d2ed6df01d9c106cb987ab9f77e8734ee9dcabfdf5828d04777fd2a21d02b999a239956e1a43bad45c34b5358c2b9b05469651f0a604e7ddec26cf76834e29c5a2d1eb9e713dfd7ac2f2325a0cb80d1fc9b4fd4f2a7912bf54b035ad75e7e86030a87ce3683bf8473f2eb587f3b7d775bc82afe4334d93fe583d8c13a2abcfbe72dcb6cb14e570ef6fb373af55de656c1a5c27acf5602b4a0d8da0c1aa6404a380b7f720a36b7907a627016a7a08c6ad7f20968a0c0800138f619004c73e51638196b50383f43afe50b72f7103c1cf1ba31e3178e6b05f13db06bb27db2ee23471f4dce3ea1059604d7ad61f766815ea8b528e181838f6d9c9329f980718d3a4408c0b6b3250178abda63833769c70c608b9b6c89cfc1d3a115fb17b0212d605621686c92f4fecc7d748db702827c0df00def8d67c4f5d249fab3bf45a76ef27005e056b4864cbb1993ba900072aafda82edef208b391c8be318e86d5cc4dbcc90c9a7e42e462d5fe34a56f3a7b42953fd08d0561f0cc43dac167ab0d35f397e50935d0b476fd0fcf7d1134015c5a27168a1edfd11b9cee2a4bb92939deb8cabf053f7bb6901504cde120132749bfa8fdfcf70b39283cdcb001ee1f3a65ed3081120c59f6a59e257d1e20b1732c3267d4c67d0aed60eb117b5598b9d75a9728143a63f089841ff0d54ffbca7481451fe2b7e8fb01d3c3aeb827c871ffbe3482b90f74329b4d5325dfb73890ff58581c798e096c11be2c93ea297f247390e004a4069d7aa826f5194f6a21b49116fa425f8dc4da06df2f922c28c0c442b34cd49015ac91e7c59ea0f5281005a2fe4295af43de58e5c767b346c60ba786b46b362f057e9bdd8aa14d5d5ae83586607880b97a41598eb06e8ccf9656d60886f2dc3e23d5f788866649ef4be8031c0d1aaae2643d18467026a2daae5c6c317f71b6330d3a1c991e86858859bedd2f106139ed1204d31762f5f79815ce23aa22a2a09a20a9ea1781f8e67dc84e15f82690bf9dca3fe613cd25d949e7331ede799fa191365678c8b59610bfdb97a168107aa69b9e5aa53176fc22f09292fde1354a53e600f6bed4653ed4182724ecf083e647df363f9a27b425e2c09c280492a067a6290934a9536e82efa526fcb10a2a27da202f5d55a966f804776523defed5c67961201ce8617718e9d1d43c8c2cdde6472f628a18b6d71b7db08fc1db134b0e10871f882159992cfd1697f3db5bc2631c550398512da311d8303775b461269acfc62077dea666d302e9680c24a43d9ce3ab1eae47ce663b20eb61b77c8bd965303b1da8a6bffde0f170f7c348cacbef8da8cd6c63ec1cbf46b9e2f2240bc1060edc22575940021f0e8f083cb7353410725754da350fec8db261b63b0ce13ef9f125144b41bff564b734d6d06bf5fbadc44bbe90c1a47d226f6a3c605260c51e4a4a2bb4be400a9b48cb292f940a04523bb463b5d7578c2a89b15cccde8c3ae1b5b7257848bfcaf7940832121bcdea64d57a968d2f3a685f33f794b46af6d99773711a87b74035086bf7cdede432159b2a858bb969c1a0edc5240478c5f626688c901f882159992cfd1697f3db5bc2631c550398512da311d8303775b461269acfc62077dea666d302e9680c24a43d9ce3ab1eae47ce663b20eb61b77c8bd965303b1da8a6bffde0f170f7c348cacbef8da8cd6c63ec1cbf46b9e2f2240bc1060edc22575940021f0e8f083cb7353410725754da350fec8db261b63b0ce13ef9f125144b41bff564b734d6d06bf5fbadc44bbe90c1a47d226f6a3c605260c51e4a4a2bb4be400a9b48cb292f940a04523bb463b5d7578c2a89b15cccde8c3ae1b5b7257848bfcaf7940832121bcdea64d57a968d2f3a685f33f794b46af6d99773711a87b74035086bf7cdede432159b2a858bb969c1a0edc5240478c5f626688c901ec72c0c20573b5141e5d40e17d7293f3bb25cd5f92b26d68aa789660ac49eba06b8d7221f316ccd211c30eca2885f3786348b037a8ee4b5e05159fa94c46c3c154726d1e457b749e5a32d9cb269c17087add08c554ac6163f1ba6dfbda977f43ebbdef2711d9803441a84e31a9d5ceddb174d378971a5aeaf3f8ea84a27c7942516c5e8bd23c856c28b99e4ae16221700e7e1896d964f9b380b182fedeb9e46175df52e034c121156ab055e4ceb7ea10a6bb7e6078749c128fdcb7b731e63520ad2f9faadc80735e9ba393f6b1bff4e20561f7e5b92c0ef278f8683fc176aac34beb7ce0aed491ae91a54369fdd516fbbeda28747ae2e8713b31280277e27f7275d49c4a7f096e45e097e735f41461e1bdfefdf16d904f59a52f0ab5535ea900681d319abe950e3c5d7f06d93ddf9efee2466ed5d76c58c33b9131e4a7f718b2df270d063540c9307d61fdef29ac5d7ee81b9fa9d701126dda50a019c6f28e205e026ecce537168507ca95e76fd2a2956b39553733afa8dfbbddb00f0dff4210bf1ad21fb510d64d876fe5535bf15505ee66b99bad70c2ecf6a00a73791e9543a8b49eb6fb0fb2f9ac94a3042da43dae34159bd0e9967d2a2c979372113cc332df270d063540c9307d61fdef29ac5d7ee81b9fa9d701126dda50a019c6f28e205e026ecce537168507ca95e76fd2a2956b39553733afa8dfbbddb00f0dff4213bbc4b99a61a5f56e1525410224e4f94e185efb9a747317b6c9c9c73f92f4fdb2a041cd08caaa25bf08632438fa0c85c847da06bc85fd999bfb0940ae71424321d74a6b0997513bcbcd7fc5e7be3c2c34d6ad8aac3f0a7ef8a1712044728185904c07cd059bfc85e2e372938310cf5e5df5f1ef20e3a0a4ad0e4a04bfa255d4a000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013dbe423988e83108825bbfb00d1d7e04d63f21bb6be9f947808b21ffb281bee0344c53aee03fad78657129b6293499814b1a137ecb7ff92367fc8b00aeff05f42a21bd0f8d8bb623ae50c387e3706d14db9e16fc98071761e743cea4a1260381058a33cf44896784d9faaf2135b95318fe18d780c9c110a3bde2ea5a333f4f361117c3207b9a6c83fab3ee0c9c50c91e75780ebccbdc9d1586ace01321d15fa31d8a07f3a6627948736b3ff171e57cd2898702c8c51620f7c9be6f8f390a3733280481541c55f34f239586115503d05ea246efab8b8e66dee49f4648cdeb815d322f4778a6a77669a0c5d789b556463650638e06adaf5308aa08f6cc35ad08df13b9a5af8944e1f6562b96dc74f416105fb1635dabed7662256983764913674235fb3dfa78ab3502f6e4c0f1155a6b378eefbc6e579e64f1d08f3d6dbfd5dbdd14af0b179144eda5f2fb61d7939f5a9752d1a3a48d186a2c1df77709168aaff9047875de77d872aa6adcc4ccc01eaf5f9bd14914aabf352c135dfd0ef8da202629038e412dc750d36d540171ef42f75254ecac8008f7875ae8213b0a2952bad4091107fca0bcc5f6097ee777fd92ee355ab6835c1ee4e33ae2dc69ba9771835b308049890f6c5690c6693cf100414ad30cdbe30a1b1464eb50fe7734f6b7400629f2ce5059dc187abbe89889691ec1df7448da7fca61bad36e9def0a6174f1ca2c063842be9d3725b194f3128dfc319d20ff0b7132757a620edd843074eb15bf035eaaa1c830ca3392470a62b12a47b6aa83ed6b17df599b8015315e7d0538bb2093c59540a049729492710b9f73dd4af81d04896cadd3eb23ba4813a26b64cb26b72e8e7164881809f003bf747f53a6f50e25bc3ed0e30e2eaf6a8163188551061fe83987fea42973c39d3da8b853c072d13cae1163fe8e3ec4f8bb13e4679c22928c2137b1cbaf59d5dcce696c1118ba8f889f4dbd78de7f34e64dbbe1b0fc2fe79df98b9c3b8a7bade06993e4501e21849aed85b22cc7106d9ff00b6ef01b2398c2029fe94c24bad613a1d93b6b5bfd58ffe68b4b3cbefac10f8e738077d026aadaf8ae1463ce0128c043f66320f6455870deb7bf894ea50f2831e92744312caf502139232681abe5cf3e88336fe46f70ab44b1841d6b219583990be24b7e36cdc9fe12645d9f7cb97eb1e3afb6d263f107d037c742c12e20c8de0557078537e46a736f650af7a720a85dd8792e48bb59b905f597d72d2857c3b90c575f88306fa95ad82e12ea4c19046d17cf682f100d31a27449acb2ce0a2e7fabfe454b0cbb12a2343bbd1501d2a8232690055d22e4e0b8b7c91ee013dcdaeca68e10b111537385064f500381dd00d8db2b9f4db2cd63990b2586d71cd7c15a6d0b1eb43ac241825d38efd3f7a209fe69c5d3a8b0a8547610e8c24d38ea0d12708b5ca722e65f38aa8c400aac74ed2e0881b819cac6f6aa5616617620f1f79eebd1333633679df7710a264965f9d32f063901b0c08f20b9d922e85effd78948859779172c3c2de11017bc590139a8564fd00b5b9a36c38cbbcc4a8243504727927731192808df58c67a6129209acc0febf49879978f56a2598549d8ad17a1a8cdbc5f3d1e30dbc7539d21bd602e2791101b81e45a5387205db23a1bc163ab92adbf6c38147863f452cf5e179a900161114160eae746155c53e5e14e5764b2f31a224a900a1c95bd003036102564fd6a1a82b6cd4986013abc63bfc12e3a321c7b94d758082476d8aa111672b1ada2cb6871e96766058162fab95baa1f933525df3168fa2642afb24b3d3ecef0e8ea43bbe8deafe86c8c8ae241ad351dbcdf23e5f88e603cb1f103298c7aa9f4caf6788c2f6c624e2f2cfc627ce9894fd259222caa6864152d164bdd8407649e9eb8a8d0c253a3f809dd2455ca5d198568884d3e33a5e30b67ed239e97f3e9f78278c7947f2824454679ab5a4f9ba7362bcc6c972060371e46a7d6efd8b59a59af607045ff87be3ea0bbf7a7cf285a11d827dedb56bda00070706616914e863b3f4731f6d9a4a38963ca591b59c4bc1e6adb9ac4473cbe0ffaa089f39661850b64e177d1624015be776ebcfee53d681b4ff904f56594413c94522dccb83e1c8832f295f8b881ff6523229feb1ca0d9f49b3753cbb3efd43b78d10828ce58190f0beeeab42ed89e73dc8af01dbc3b2edf624596a874e6160bc171745c8c1879cf5d1c1b2eaef611a5b151ab3629533595471e9442feb6200145de7c766ce3ef7a2a3f7f83c0179f1eab4bef2ab0e586d85964caf6d59fcd3eba218389931c1085d5c0807c3fe861039b4d0cde9c1394c0d3cc22092a6034065d586e502073ad62d33d7d92c0761b99587babd5747ba239bef7f6d22c1f0139a2a791afdf8c529d2cc2826d3f89e488ee1d5033d87d795f6e38f62dd3e1001fd2ba2790a24262ee203373ddc24e89feba6a5b2b466a2b20bad7d21adc9b05202d45d86f5dbd9d11dfcc8c223db176238c2ea0de068ef07872591ae52364fc1f1da2c5d32b4beea6a1014354cb88b1b516e1cfc5c620a0714bd540864f071720e25d3a2cd4b411595efebcab34774e6d2fb72c4386d87b27e15bac79b0f8ea0145de7c766ce3ef7a2a3f7f83c0179f1eab4bef2ab0e586d85964caf6d59fcd3eba218389931c1085d5c0807c3fe861039b4d0cde9c1394c0d3cc22092a6034065d586e502073ad62d33d7d92c0761b99587babd5747ba239bef7f6d22c1f0139a2a791afdf8c529d2cc2826d3f89e488ee1d5033d87d795f6e38f62dd3e1001fd2ba2790a24262ee203373ddc24e89feba6a5b2b466a2b20bad7d21adc9b05202d45d86f5dbd9d11dfcc8c223db176238c2ea0de068ef07872591ae52364fc1f1da2c5d32b4beea6a1014354cb88b1b516e1cfc5c620a0714bd540864f071720e25d3a2cd4b411595efebcab34774e6d2fb72c4386d87b27e15bac79b0f8ea1d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f31191ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a05f957432b4d66c307dd8d7a9f77a65b49b53376dadd9b2290ea826fd6568a542e26f67ab7b96cbd66298cf342505f2dedb559fa4be2273dd01899d6c3abb17114e207edc4aed3b7485d1c83777c9c4c561f78ac89a338b9ee76e9868d96287d088c341dec8b2c621e00483f977d30a3e5b173d640b2391f5af81fd5db955dcb106f400fd40cd580eaefc227e537c085f43dae32f3cabcf787f5798caabb684b15e6182930e462f2ed46a126742ddeea676776fbd3ea5136818b28a3440cdf5f3552ed1e8b48044a52f98d8aa0f456f0d0f57fd83b4569af6ff68a9545f2ff89200af01b0a6fb62857dc0890780e6f0f9db4d45a2e2039d12960e1ecfab86a303f1c3e6d3646005b86ea2120e2bf073edb7fd6e3b821ad27eb134dbb05d43ff702ab940240dea4835ca7ab615f5689414d24670783d804d16e1d682914e4b3841cc6a5bff597b26b39287044641ea3c0ace7d298c58ff6ec085003b95f2a4495353495bfbecaec92eda80222cf59e732ff28cb034e2b412d31a474c26054f3783f1c3e6d3646005b86ea2120e2bf073edb7fd6e3b821ad27eb134dbb05d43ff702ab940240dea4835ca7ab615f5689414d24670783d804d16e1d682914e4b3842999f372dbdae7508001930a7d02bd263520eeae778c7065165377a747cd5c0737da317fa6c6928622c3ce38cf64f415ce1cdfd6a9f3b1e59d2154d79ce4001a3d53abdf6d93c81ee435e68bbdc13a245ba0686a732affcd62ab641af8408ebb018eb51ec647b1d124ecdf7a9da04407c127b9a16f5d9b3b010b40d3559c53ad00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001045246bcd44fba1018badf3e93bf8e0b92efd6838c0c27e304bf1f13210ea3512835e27eb280107a91da9ae8856761aaea541be3306ba5b21770b1d7fa88db801d90efd612016ccf0ebea59080c2faa7d6cb1fee4123895adff0a8320e96ce060cbcde422cd9ce111ae60055b24b714f02a56911dc8fcc13165577a6f78373e500f41229f9fa64564daf2211756cccd9b6936088f4e6bab5df7eee3a9ac043dd08bd1ed4105f746f64e8d83dbed020a22a5c36a364c361991f3fd29645d7dfc40e31a328d6f4b281520b51172c5691df1f520d4902d4cdd011904784ed7720e91791eb17c144946c7829c0d7b6395fe8902129b4eee2baae1b9c0f3477cb0a593c0e91cf1a8954ae4421af2d721f96690f7aa3b1b54bc55cb0cd99a8a14fa93c05fbf978abcb2c581979d4e82a55216ab35a860d7049f87ff650697688b58df7121eabf39a8c0cade49afd6e7b8510ef8888bec07a70bb7bce2680eb57bf21fb0ad3982347a466b2e4d0056906b2c521c86b43c5cd779161f08b1fa66be624a50728cf83f95f032d8ab577a3e168af02cbcb28d75d1d9bd6e3950ef0f94a4d330d32f678c68e642899f39d8cb8363df500b8a412974ed07973f9090d4089cf7f164bee843e1f81ab0866240092ef7e18fa808614bc45b3a9347e1234e49171510e24fc4c885c5cb82a895bfeadc71c6fc5dbb3b75cea0b4a3ae3af12e91d1b913cc83c7d552c8e248ec4469792d86f9ce00da169ff140048e86fdb247520d3a214a3fbcb413ed0a275d47e088ff621f38e6211bfafc908298213ebaf19703a0929ccbc2059c6062b70158e71f99ad1bbb929f76bb548bcabdb0824187f1b71bd1c8e2a5e7d2f1cf6405a530f2cf111e0539fcbfe83bdf87e9987f3f47e35d6e8394758386c96815813d1c4117ec7a3ea0e3cc079959ae65c3d03a17b7615ccf228d76c0e7fb1b75043d0a2dc7896dfd50418b5cc682de6d970b8bfd2c26436cd3f519fd666bcc9166763fa1369056b120bd583d8a27f069f19c928b6170a6ba61190373f0a21b1832756c3b7a469c9e6019f88ec260ffdbad53baa40af7216da317fe991aca15cb92ad80a5a00b051d9aa8171a63ca801aa8972476edda4c63e0b89cd2aa4e0de30ad75448ce923ef89b3a7143f08c25073b83c1391014a6fc325ef4fd9f4c687b2f400cef048639302fa354740b6c6b61ae68502477f3aefca146942e255565e42ee8d6a30e28ad71f931b89e2784db568370cd795e6e06ebd0ce38eb371766006e3623ca90cd055121bcb977906988812ff7ae972b36e9d3420bf33ebb5a97a6abf04b5ea01272880b592d618858b4fbf664156cc72ae4378150adf991ba8e7efe73c39b49c1cd0067d3cda25a74abe8eea321f995f9640000879123cb995fa501c081dae52af936749b731e9295780e09272d8bb6b35c0711fa7409367c39521bfff921975460b6f3a3037eb9f2a184eeedce330a7589ffd2089124a4d4dbb999005131f01e682e755253f0ffb182d1ecf1a93a83c17a6562d46c894c00a0dcec27e87ad6ceada99bcbd0713f885c5b073f82c59e79e7cf91bcd8d8b4acf84d888860e8c11a0dacfc9886e8820b9b3585207ad217176300412998b7ca9259b5a7518a67de3edc03250014deb7d7eccf7780da26c60dc3c641338eeeaddad8b37859869b4d76ce3426388a5aff0f5f31ff757097e5c832e94185277c85a7e576155d77b48675526e84c836103b4eb1a1fdeab205e6a98bb51335370a335a58453fa497aa35ea359fb206c9192fbcae1bd1e8c3dedc9a65e791fcb93b1151567d999087ea31049689afc01690dc4f380a84d5b1d942dbf510038ef16e3b99c362a44f06daa19da4df88b6e1f299207a1df7d0b67a6c7f0b67a2ddaec23e4f87eab58fc5c510349acb1a6babbc056e66a453440adef1f9f5d1f1ea710c5288f52ef6139cae470fe0e14ec845018eb4781af0685a3706bba303030ab4421a6f9f1f24e276eb061e1a772a51036f8cace2f3a2e382d6056c00ea004d9d61824c2bf612be18d30706224c43fa9d1bf90cddcba0217a4b0c264561a18cc5378f2224cb7fc63f83f9d14b2c16386525d293c16d1af71eb69e89705593d0102112e724dc9fd33710a2e240fb5af456afe33f46fe273d24b0005edc9cc399530b3aaac2575e57c75d13cd39fc2fcd80b6e9d4b5f32c9c49028f9ef0f9227cecd7524c8b6cf607b9f376faf87672949f6cb0ca193ca9b07f4591346f1342d73402dfcfd34ba16150a91430dc4beb3f7a008f69778a18a461b50462a0e16128cbfd20302cb45e9eaf56ebcf23b416e4ef8f312b5807a0ee7159cb9d5f1eb234040e5f0f207a26e6934d64f44d7b91d025538b50e6fd4e7d6f5ca5ed2466b1cbfbf1a0f0df85d9196cb29b0bb2847054443c3543e8946b1563b22a12db9963041447db4ba262c280e082f8c58369d4c7e782376ae3cf154d86b19da1b60150fbebb824b45d9d3d7f1f7d073a7c962d5c820d8929ebc2a4454c5d325e49fec3146567487a2bedcc84628edbdb9111217a48dbd35804563dcb284ba4288e0660eb9a98b785d412337b9d7124246eeee0aa20b3ed3ccb3b7bc7aac32bd771f9b2d73402dfcfd34ba16150a91430dc4beb3f7a008f69778a18a461b50462a0e16128cbfd20302cb45e9eaf56ebcf23b416e4ef8f312b5807a0ee7159cb9d5f1eb234040e5f0f207a26e6934d64f44d7b91d025538b50e6fd4e7d6f5ca5ed2466b1cbfbf1a0f0df85d9196cb29b0bb2847054443c3543e8946b1563b22a12db9963041447db4ba262c280e082f8c58369d4c7e782376ae3cf154d86b19da1b60150fbebb824b45d9d3d7f1f7d073a7c962d5c820d8929ebc2a4454c5d325e49fec3146567487a2bedcc84628edbdb9111217a48dbd35804563dcb284ba4288e0660eb9a98b785d412337b9d7124246eeee0aa20b3ed3ccb3b7bc7aac32bd771f9b1d8394ba2e4adcaeaef721748559b459a82e03b51fc3c9ede424d047bd7ed5f20c42ba95e57d85e81e62e43ece358248321ec92aa5f4b75b78640b9689961a6a150a02f1be7f1ef6e5d539f61024406f5775519521d6cc7c9950525f5fa4aada04ed39a11be374a6c61c5e56b99bfcc18cf3844790a53d75fbd6e84fb2bdf57313ba0f2bd7accf7cfee43fcfbaa353d00184443feba854ca882abd9d0f8f5aa5363ab4e4200171a4ca45d1c9686169bde1abc395d177ee75de4c60c7e7ffc8822ef1f031e77c60013d5f5161a868da0eb91a4bf48387d840b56534817bae8e0b222132a305948c5650cf990c7116e62d592063b1b09cbac868b9cc427963fc0827b94f41bf8bc13d62c0f6f7d4407563447f087fcf2cd7dd627a3cf89d17ae8e36292dca26faa676dc7dde3a7b4d2aa55588db6fc006ac2574821d07c356e21038a4c69acff6501a72e569e9fc5ab4730cf015875903e1941d2fd884e26ca3e22f2e19262dea3889e7b527da34f118e3334fcd9c00de89c02fd3a30950473d820d7268541336045a6b33a4956a820b3722a343b1c7b262b11bb80e45e2dc7f362ed00bc8fe9f05711b80bd6a782e80f663344b89d2b3044a24f23d06c3abf02538a4c69acff6501a72e569e9fc5ab4730cf015875903e1941d2fd884e26ca3e22f2e19262dea3889e7b527da34f118e3334fcd9c00de89c02fd3a30950473d822e2e6b755576a27d644f8bab0e9a8f2f602e884b3d2e83a4b47c897cb45aa8d036bfcb9a3af8e619b9395d7f19f2f47ac7ca2119056a8464a55a171ef3b5b56203a3cb30d827dff092d5d3f5f5cb12d8fe9371e99111eea58fd8eb67cefd4aa22b3f2feeaff5e9c853dd26cd55c72e5ec8080d585c0d6a6cfe1a71bed0a236b500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001361c448f7ee1d45f605cf0f21f363e73000a908ae26b77c3fe16e9f5f918c59d0611920d47f26e4736f4ebe1dc3292f1aa8aca5c40b9a4b9f80617941e8b19163a408c0a4ca174f5882b1df0d7f896b9a61000a33e141eaf42e12983ff8013d30fe89210c75098cf37c6febafa31f11c979ff9b71276b0fdb7221d81a8845987250508d90cda637a8d9be2a6f535843832b7169d78283e79c54f19f2d7fd53aa2e41609c93c1a22056e1d69233b664b70b4d34bf7f580bd1e2f4d980e76a311d15778af37abfdbfd68e86ab730a8a70c94703355cc0d385b1fc7f19ed75700cf2fe6c15ff2f828bdc1915b0f5c8e66220d1af1e3782c37a3a696d36c0140469d2d4fc887753024a68ff99bb5133b167d2048a835aacee7a4114a0355260cdde6202eff54e77c63f56d6905933d73f0cba1ee5409a713e36d040db574d60d52d1148da9ede12ec609ee540da6284be2a5a17dad3223e1426f8796b0a35f5bb291352961739a387ca456a9b27645fefca1537d403378c9641a7d0bed83ef6ab18503e2e4f9cc8fead18d7a9d27f2f51d939eb4dc0b1b3090393a0ba8ef58a21f73008e0dd695c64bdff5c824c74c581a8ed1ba5713902ebe2acc0484cc60caf0a93d635513b5e3a0c800676b0204875fbbcebb777a15205050901f507a2fd1b55708b1a0fb95bfbca0caa08fa08e1014aeed630479180dbe5e07c0050e51cc8f6e13a72558138cb4cc4a20f9b6e6b386d2a506bd5f727075b52d1a546ad1aa08ce1c62874839a58835f8e8289a796db021a783e66d074b7929451a17d6ecd63684061eff0276eb8707e194b5cfe5b611ed734849d8c4866890fdf53bc4c03d1a690f535e11f50b6eded5be9b16982d9742f92e5d1e413f1051dfe5b44378ec772832f6602609ac4055c2e03cfa00bf7bdddd7982ae7e14587e0cd9278e20ae1365037112c7f58b6aa79a6ab4bc1e72bda2c8e91139307452f2549170624b0917261bae1c0992baf6755b3c639bda232b3c6cf1d03154ae2db55007607aea299afc230252a33cf670499f27a808a9bbf4cf5a5b5ce424649d4399b939ee67864d323378ebd642ff9526013d50433a96fb6c9427c0b02b506c9f357161b5096afcca2ec0b3bc97df38096242b53b3eb3cb4b5909906e0c7e13b916b420a78c305fba096fbe634bfbb35052e91a5329a794573e32823e3436fb2e01b3ad28ec0e905316355d864036704ce833f2bf2aa277b8ff9c0e28780f3c7dbf2cc4a4ab6729122cb6f19ce78f2f4c54d4dd7238e6811fec41083ae47620eda7b930fb6e412c3c2c6012e473b9b47b7abcf0f516cc718d0b7f11d4c54fe8e80081a54314d2d49e3fb80337b719c915c7b08a71a2b115102449882039677398425730976b6c0e2d3b5b9aaf22eee860f3b75cffd8817b8aa2735f56f8e317e1ae7cb954573b338334dc51cad0123937d6ed41389783f8a47ec784240e4380cc555e4044259150312e5d9a3f80f1d129fb20f2285a6eca31c37294a94d922eaf6d0d7fb212e2da8c0247834b58bb9f06632ccc69e1efcbfdb0c8a01d5cc5e488523ad27d086c3eb039a9d0348ffd1705d1bb396c7df8a5ae94b316d820b43678bdb41157762e7b101da88cb51d6301fececeb42530660ba61c5370d86ba293b1f6da4d27d2b77c0403cdf777b1eb52b3888bb3efcd3eb7538b47d9d02416e6984ecaa9a15b3056e43dea0d342c00344e99762e59d02af22d5849e79f1adc31b77aecbb481049458124deed3268506c69bcace4285eb94af7b397c10960f1e3b5854103d013849788316f96d21e758abf19432e82bce8a6aeafce049a1e86a16f5858ed698182395f1e15ed1686013c1efd10cb357a3eea499b49395b27585cb3227e66c348edeaa9308c9d52d06dd584ab4913c6c823b0e1eecac75bb78d6a6c8c1616adfa80b2cf1fcfd46d803f7f6df40f6de5d424521ec48451dfda9e19192066c33104915c55018814c6eced74f1dcf15389b9faa911808f71591d3a483dc09a0ed9e24b5e952c682bf0267c8afd26952eecc6c98db26cd65300efe6e37c10c7d94100a12641027d02f60896b5a61618742144e81a8afc90714959e5e3bc0d5d8a2ba40c87510bc743c760ac6002eebb003908b7982cc9d118fa44db4cb08d11ea46a6edb1bd1e9ca129f6a653a7ff63790cdaf7536b95acdf19b42e416816debef4d04c007418fc96547db88d56b8a5e40e792121c5b47502dc34903c63468d726df39fe4fb1dcb6a7e37beb060963ff69ec240c9dbacbf88d2179940f941cc64926ad0c37622349581c8414f9f69c009613dbf362475871029f1b3b8225760cc5a952f3c8b14f9147716b971e2ef3fd119cb43f14a1b307a22636452a716a395021613d14c2b06eb88e9468e1d10c02ee634bc0eb607161ed9a5e8a67482899beae9ec2eb528dd6653719f396eac3f1580f853b67265abc9afe7a8a427d804b81d6e63167b172299ac8e60c69153c0ea7f07ac498dbc9acf4c21a454f3c12878cf919ce9860c52ffa1381c1f295d3b6b84d9a2903b9587257b6a6449746c9005cc27ef706433ad005ec7e3e0d6a2c4947b265d6fc48cbf73809ee8afa72c9d2b20d8108f9d1dcb6a7e37beb060963ff69ec240c9dbacbf88d2179940f941cc64926ad0c37622349581c8414f9f69c009613dbf362475871029f1b3b8225760cc5a952f3c8b14f9147716b971e2ef3fd119cb43f14a1b307a22636452a716a395021613d14c2b06eb88e9468e1d10c02ee634bc0eb607161ed9a5e8a67482899beae9ec2eb528dd6653719f396eac3f1580f853b67265abc9afe7a8a427d804b81d6e63167b172299ac8e60c69153c0ea7f07ac498dbc9acf4c21a454f3c12878cf919ce9860c52ffa1381c1f295d3b6b84d9a2903b9587257b6a6449746c9005cc27ef706433ad005ec7e3e0d6a2c4947b265d6fc48cbf73809ee8afa72c9d2b20d8108f9d28a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e870b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa126c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b0656a0cf4c32a485099d4b8e3389c827090d82d1172db3667feac40730816f133ecad465c6944b325598776b427052e58c94c13e930403f45b0a408f56709bd724287a8653234caea67c56793cdbaaa0456cdf7b43e6c05ddaa6c0253a47d6d505cf217419e4f71e44fd795ce3ce932c1a1bc93cb728baa1d0df0aa69bab50142df7a41daa41939712174d67499152bc832f079a0136eead02e44982e442929e040a5288c7f4cfcfd8259e43e9af00a99f1296f2d19b0da9d22eea413fc016fb3929f857ce3021a1ec2c9bc89b76c6e5277ec01edd2f637abfe35990685ae18e1b00dc3610a9bbfbfcadcd305379400e30def6fd40025399a6ac1292daa557402e4c4d322add4454a75e3e1e6faf60dac34f7356ab65d2ef20e7ba2e956941db0e1a7ede4b179257211a6cada714a7beaad368ffd2818c744f6356144d0c89eb3929f857ce3021a1ec2c9bc89b76c6e5277ec01edd2f637abfe35990685ae18e1b00dc3610a9bbfbfcadcd305379400e30def6fd40025399a6ac1292daa5574021100de44a90c742e7239c06a9ea36ec9ec3477fa9a1765acc534ee4953fa74e050f3816577d1dfdfc2f1335a8d2086b31c2b7113b5c78176d8e7206458c2e9d33c712de6dace1a342255ed1feadcc51b04401ff72de0eeda55ba84253c2ac583779a8514727f35500631363ca088e12b5e440a11c5196df6f7b1d3f0dfb347d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001140c5a7692c13bf29fccd79fc7b59c241d9b36c2138c8451721e79d56ee3dff93ab3c6a304539caf8174716d91fd0748ecd1c02867a2a9bc51c1ce339c402e0f1501629162ca64dee0f707aaa90c7d5630aad867eb70aebec0df2a9e8ddafcd338b22df9786325aad82e7706fae9df40ea43092bca22f78ee771bf95ac3be33c25f521f30eb5199257632af18058066eba6082f631bd65426a04f3b41cdbae831c38e8dc2e0bf6d8d7009571c756ebc05ab11e0c052f39e2471296d791ba9b791b1a3483515a690a9322491cedc5b8ca58505d85ac2eb2808d23919586d52c0a3675729934e077328c1c9224e5b8f99e0784d8360e1c7be45f78bdff68a0fd8a3ef233635e87dcac82ba936d53be6b9c25a0354ab9efbf996a9e31cf6796a4df1e99339dec81a5cf32006c696165f2f4fdffed4e31e608892dc7eec12b057c7524d8c73f137cf21e26e922f5445367962e2e7d9edf3a9d99dfc99732844f06b930403ff170f8453b93209f7212e30e64bdecf1f13a90827f8af5271a803f9a5417b2883cf87686ba01aa44b95631e5814ab0a6ab9ffcbdc888d1f88d166178440a7606c3266196b06f6bcd6ca8d7426ccd0da5cadf02eb5cbb8b2f63c7bb5ad811e4315bf57734cd08d875e9d166dadb8b98f5c714d29f1d7b659d4171d25e041b0d11e7260ac976f1eab0194dbd2862933e2d75d331545584286b4d5d606f010963d8cba260134c0c873ed541ad2f9ba37daf7c67838a3baee19647679d34600c48b3cb341b205699727da85b9a6129e38b746802999a390a83c4ee15498d2a251e4c427a5152a0114236c44f600f8a7c07a91f2e1fcdeee3d1606a8dabb0c80f49ac0c3bd3a2429093997492dcd565dc5ec93132dd4a5acb7d6670678e397b24e63f99330d2cb016186b40067d8d254a2b6d4996634022db437e13c224f55220f21650aa5baa46a61de66652adb1f204b520344cd991715763b3cae77d2bb81e94e1525b3b070973a066bbca258fab3e293b13ac0480c935ec5f9cfec9c2050e84f1e6dfc9fe5fcb4b97e73380a9defda1328e41b72cae7b232ca9c876eb11126580bb604c6c0fb0313e8183042fbe1d97413705c6d8214de25979fbbcf04f3f1f873ce2e8d95b7ad6769d85030c70a8892dbf02c040e85cd3583ffa3e48872aeb5ca5afb2895dd83e3c55333e671d9c27b9110d3797041767ebc21dfebe481cdb853465888cea5cac08957ddb880c7ce23ba26ff78a325ed0138d492b5b553b2aaab104f6a221fba503b915c766c85a59a8cdbc20fb5e6a38390ba511bdea0c1ae22b9ef6aea0b81855ee84aefcdf54724253e1949c5da3590718fb92601913c3a6cb190ffa51dadc8b2c77bbd9df2257045332aa63ffc4d517764e34a08f1da5d98c792e3bb6f562b751fe604f1226528e9a150fc23e03867dcaf7e88dac26bb9fd357878b46601a75f300b9b22088a3993b35d8446b99bdc2fc5439ff873e0aaa508874894f35d98e97daf4c4ff27bb59efc2bdf0c992d417ee02becd6007887ea83f631f68cc1ffc026db83015a119266db552e323667f7d84f631f28927276fc450288daccb3c57c6b6291e9682470bc3bddd8907da1b617ce13928452ef0466440c54d709d37091e8a0e5b618d8ed232433aaa2f235ba755c5a3433c1a5a3f384d050ec2d0ec514e8ec8d612550130f14d79116b27204f374a77be090de4a7370b5abe0b2678f3b109a6b29f888ee2469b55c80749a23fb2bb24b81f1a24d5eec5523baa3d4ac4aab7f267d029c4e92016191eecc8bf936fcc0574912d82cede978c24bd540f0cb28d0bccfde338849465b6fc0d3b8ee6f21821eee82547d26e911eccc7af03e9470955b4e5a9708959ac27f0fe1f9d003cab56f7df25c229a6d54b464d8e9a3f18ba29cfe000b98eff019d2675c348a01d5376763d356bcd72f389fa174f007bf72f04331d264019762cc6c52d3f6db1f76c29bef932f2c78c5af6f059b467f597f5ac87cf74e95c0d7926402a3d88874168940f26375ff5a13695e9721d8353d7e34a67bbdd3eac99ef5311a7a8fe08ed57130ca527b5d62c5d8a56312e6528e621f40fbb5470a93fc5a1f574c44ed0035e02a21837c835ff75991b61091898106cb0bbc56f8cd4fcd5c1b35305ab78773bd55dd02b872fe0d0a5ea9243aad32f68db51897ed60756f633d76b612f87ede72d661c3d67eba4b7ca818a4b1e96943c4715814ecd7e0aab01cd8b72c0ad116ba1d2f430b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b913383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d0c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d4019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d12407dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea51382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b030b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b913383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d0c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d4019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d12407dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea51382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b0274d3dc3a846fc8924f1055fbf4f5ad5848b4b6ec07c76e6079ee428f532d63220e6a6375b0b5eaeeb6fc87a8cbfa390fbf15474932bbe08a8d6ecbb879cb51f0ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b22e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d570355318fbeb9546267d1f91a3b3aeb3c6b8d2038fde5d8e6452f982d32f801e116745b5d9e2068629c6da06d336b8c7be2eb1b5e5cbb7bf0f3471505361db6e23ee76432f734ab6194b820d904eabace6031ffb363742763636375f186c8d2f320aa44ae8036c90e4adb768a40f346f55d29f398859575e48ebb1e27132ea3b91bc54654878e6a646bc1f8fd173f8bc473d96b6016316261019188f962c1f5c3188163288502819c09079b78ed45bf89f2306d58620b24af0eb015eadf5bd204325070870b4bde3308fad4bfc1eff65078b1bbafb37dd85cc858b01bdd9029d1020ac843606ae0225615f79f691b254b7ed95e72082b9863ebe401d3929cfc2b08b450a13aed8c83b4cf8ec0e066f511cccc6dd97fb7acd520417cdd13b1b4953c3775e7e21a5079429e7383592d2e39601451340e2f7ce5de4f4d4581ac1d8d325070870b4bde3308fad4bfc1eff65078b1bbafb37dd85cc858b01bdd9029d1020ac843606ae0225615f79f691b254b7ed95e72082b9863ebe401d3929cfc2b0fd5252d6c0946fc90fd8f343f19871fff59652da3eda531b3edea469962bd6a127482c9b4815bb6bb68e678dd88650ad1f40e2fbec26dd5f6086dec509c6bf207028617c9b38b5df3e64ff4355aa739424fc96d40abf61ce88abe474c4d0d183510aeccb3b0d41a5cbfbf4055edbca9dd75e5877ca571c1f9e2471e06c7d507000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011ab29e3d3d1d83eb85a0adee37327561774f53c5b80b2c4dd4617166060c8c051df6100841e4c45981deb94ba04cc531cd1ddd3e3fd0d81e36bddb4ce0f13bf320d177e59c10ca9a48209c1416cc95b9c4f21b7d6c5fb1d12193a20527e9c1e609b838f53772217db70211af5967df18bc04984d4cb65f43b231c88553f74a5d38e5205119abde37052eced7dcbc5920e50c544ecbb81c7b67270a27566b5e28296800697b1b80e4d2805f42a976c46d33afaaac761fb40c0fd4087481db535a35922b63fa5dbf1f1e16fb01a63d4c777bb7c6a4228d8f71d94064aa3e2b843e20aa3829a5e87fd60708b951f74d6d694d70faeeeeacc846641419cbeacb759a3ae937819d5fc526e9ada277bf13363fe1606f9ceddbd7c246740d8570444a4e24f5836bc6096938c560454278d70cb4400980e883aaec29f755103f984cfb231c8d8dd319d52b49bb42a071dcd4a70f8b37282798d3d504ff8a6c0558078f1313f2a474cc64d0842670065d60249e348f9daca7794090883a6f95fb904dfc6b0207d3a038713e6894ac189ce861f5580feeae085dea84cc3c4b22af8d58fb910c7459144ae1fa20828f9f7a46a7a1be1e816ae90169f5d40b73c0b565d128b62332555e2cf2bb06cdc786a4672c69a1ad62ce9d3a10f962b068e8324f6f0b6e3d9814f773fea6e4766a7efcbcd81f8aee9ce2f14ec66288c3125786fe3f78860c7e3a0a9ba31f819f44ca2ec4f480b41e76001e05edfa78379152e092c003150544269702f1da11e57e852f79ab0f5a5b1f4f0a87662d971e13a08ab2986eba0c7e044c60980496d5c3b7280993cbc1ffe11fd974e4125f942b96f3d53b355d243238aed1ddc8f3ae757ebef38740f2e96b9c85102d152a3dccfa9006a960b40ce6363b55660a713891a3872ab0e439a05d8d07adcf35cb1e85f8070e15589407661407b4dfa865343994adb88831cfc0f8bcbae8af15158291c760be3b23d62cc82b6feb068fd212c4e5dcdf1c47555942d55c4af61b1dabd8237eca0a40b42bb677810688364c9a7fd3f4e7a47b1979d037ef52413d891d73d0413dc1fc9c2175a12bc91f3e8c15cacdb62e63783f053703626bb5d6ef6b4af021ccd27e4c03dfcf1dfe3e965e2ca0818423f90fcf4af4e5690dccaa9c48c9ad0b8ebf017c015db0d6e0141dfe706ee6cf24cbcbdae8bcbe6bc2c39dd0a02c4417713360c3284c28485b94f5555da407d50c2bca6ddf0388076055242ca949471dfe8999c40d4ea350fafcc19a024a7e6662109d34eac2ebef9ce8cdeb07383d3a990cf1f039c44bb43b67276d31bb6035b6db1af88b43bedc81d6c627a1b46fa4a531209a0497a8b88cf6eb7ae7ac51ebf13659b0d30144ac429c6449de9cf724593a3af21ddcb3a8767561d8bda4de7d7251e5f141c1409002ba5342f1379cd54001eed31f27e9fc4e11b57ecf337d6e7fd3b682604537bca8efd8f790b8c80e384cd8cc337f6c304e8bc704baf8a0c2a9f918b831f1afc88502745bd463c64c16637a32307330ae6c85228b7a36c0dc08bd288d98e89f9ba60450cb305217b63c42f85025eafc0b739576db7f8e55e9b0fb73edf732eaafd56af332957e02deb182a3fe28767c1115b977786e54490ff5f503322dda4f660723315801d4f710b7728c5701ce421f04623148c2982659165bcd02cea41180852187d785194ad0db712bb80efa89237dee0eb2e192baa1a7eeb902b5fb9896886a8d60a8e610534c4dd5650548317d607974fed87161aac3b581e1e8e3796dbf530a30909b7d11f44e59b7221442a3c2cd38f82e0293b632e40a3deec9a8029032502f836c42798ff529200eaccf882f8577b60c2fc89c93c24502b04feb17fe302ada06e07fa460df67b32244f4cdfc67e0bd7bd354be4b14857883983f5782cc41be815e4ac445a3b0e834515fbde3af28e7075ae7c722afea6475dd822009a2ee79a75874e229537fbd3a260fe7e443a27d8c96f5b37e9249ea6faa0b343453c99585ec6ed8cfb008b6320548874a777e66ce5060784af49cc49db4eba87a7e6e2c679da063523e36cd05055dbba90fdc786fe383af7f7f6f2581aeae4992c33bd28bf0979865d445640d26593904a3646f44d6b937fc7c6f5e03b4abdbc8df1fd44a535184e1f09f0e041092a13c1176341252430183fb11ffe66abd93575a942ad0327e4c32dfb606105a4ed9ca063972aea7cf76e73a2199d2514481faf92aa9608285113023d5343e8a50a7af3b74aced7eeba731946e35ef6fc91677fbbdcd3649ce4ae29070ec0175af5850c48b5312811458ce6b91ca32d6cfe591513b4e62e362a21d6f8f1538b393466c294760a37a9a43f7e6270d2414898032b6d093aabc43c26cd23498074c6cb993d6b89f5c8565bc0819d8f2fe320f7bd6962887ee70ed2a932dcb691b81e0601cce64e331650353d77ec3412b4c4b90d85e2e73f0f88f18201b06f4247e1f9fe3319b1cce9afcac28813cbef6fa4d6b30eecaa7a834a1d4dfe4f90d098961e09007f86ff6f910a33579d04593f047dc273cf60c8280699ea08722c236769e1f6ff807900906ef5cca862fba8e56511fe210030f16acc74e5f78dd3f3e8a50a7af3b74aced7eeba731946e35ef6fc91677fbbdcd3649ce4ae29070ec0175af5850c48b5312811458ce6b91ca32d6cfe591513b4e62e362a21d6f8f1538b393466c294760a37a9a43f7e6270d2414898032b6d093aabc43c26cd23498074c6cb993d6b89f5c8565bc0819d8f2fe320f7bd6962887ee70ed2a932dcb691b81e0601cce64e331650353d77ec3412b4c4b90d85e2e73f0f88f18201b06f4247e1f9fe3319b1cce9afcac28813cbef6fa4d6b30eecaa7a834a1d4dfe4f90d098961e09007f86ff6f910a33579d04593f047dc273cf60c8280699ea08722c236769e1f6ff807900906ef5cca862fba8e56511fe210030f16acc74e5f78dd3f2a541dc9aede8050ad6648812a33cfccec8163996bbfab69265fbcf2ef361c4e077596ab5d4f14c7435038a9742be3e6b737f77900011bd2975eecabf38cafdd305d9e4e7bb0cfb3b7ab6f2a16664d9d00ffe6e15a8f452fe648d4b20ee2b0793ccafc6418112053d1c539dc198ca765b3a8d0cc38d47492143067a7a046f720082c04067244a0b5097d8b2535880d4cabeea64b093c8e2fbe2f9efa66a6c0b331badafdbd1585cbb98145ff82a67b2f4b94bd1185102716f6439295fc619aea04876f1607ec1f21a67e209f6284fe4c7ccd257f0cb85ebbb023cd3dfa9833341c6ee9a4ea8a1de768f02ab03dcb07adc00e8df3875dda40e7b43f757aa22b9d040e9a8bcd91fc37df3499f205924265fc241caf3d6bbfeefcecac04c976ac69267ceff7a04b06a8d83d580e8df1512faded984c128ca45819e749ca9567c1af25abe23651217faf5299b77ed5cc30333e56dba19fe08bf95918c03550c9e3b4088a6954a2b0eb38bcafc7568bd41c195159aec6025222744eec5f8f4c735024254e43e7d570affb9aee4854bf65e296570be77d4c4b019e25b1d03501e7333c3bbf6cf08a9fcae4eaea8d7a724774b3d9ac69b2d9c461d286cb0d866c2c590625abe23651217faf5299b77ed5cc30333e56dba19fe08bf95918c03550c9e3b4088a6954a2b0eb38bcafc7568bd41c195159aec6025222744eec5f8f4c735024270c074a19e0d608eef484c90c5a438d6a5dcac528ed52d17fbd08e48f2b9b44310fd23d32afa05224d6ff3cbc157be23a55630fd82183a3b2eeb340680c7a670ec31754be27918b72935054df458667c3b4568ff57c4ffaa9a1c031b2ac570a033fa136bdc30b50643704d5a158c18393f508a98745498a0b22cba9a7941a3c0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000135c88351452e25d6ece38c940f0f91b21bf719f781b6af2b9efaefe0923050742b361203b6c88ed965a1e9ca25a491a063a4ffa7d70a2b25ab5fbb6bfa6382f21b9a93c702f355b18dacace4fb882661d433beea9a3c99d117c977f370f348c02e412c8e5d5d346182e552eba7d750b5699becff24ac9987b7e2ea9c0c5270d40e031608ce4dc3f38320d96236577781cafa47daa0c6594749294a14d8132cd22412b8b9b3ce468b13e348fffc7ff5406c282e71d32f93a53c34b897274bf1dc13180cab478d94470db55e812d1b9285233898d1dd7f1f3de25190a5ff97798701f0943014fa296f1974bb55f0c5c09f8a5dbfe3d071bb5d7e505285bc440107024f677d7a3c8217988accf35e0887ffb85b1be6bdb1600db08f6b6a99ea148604ee5a4273bf7c3c53c0fee996792737c7cbbc07137549ce8cc56e8b3da06ae93f6c6769e946f256b71b923578c930734900559dfab96bab969d67acdef09d32395f6cea4489b9bb9ae52bf70e98fb86a57f507276182971a5c0956359360ce623bced039d4955259e068a8e8e9bf608d7722533e3776b648f35af33f25b81a43beb07f902b820ede4c94a5312909394b8018f11f8b8591f803fd775bddb83450a80d621f6d63ef0fb9f65fa2410f1e4c31d71f55098642f0578359ce336a37d3bb00afbd8a2e7469bee8f055e55d1338157e81ff8fe7fded3cc07386b74c20112352dd4f524609fb1093aef958ac3464070bd30e9acddd399b3407c01404d47174d21f3c812f3743f3ec0bf89b53820b16d0019f077802a2fb9dd37b588ebac212890683e663987c92d2cba3a7b4dcc06ff09f25c76895ade4d84fa27a5636815d82c213060c812cb31b5b589c5ce981d043bb1066f8dbca124e028f9094b321530252c0dd58f3ad480808b30e4fd3022f381b86e2eb1caa4b97a9bc808392c162b162067444abdf82a0d078473c364f2611b8b5b484a115b24fffb4ca34639347f2bb09a5b9eb682aecd3c79891d968113c875ab2b035088e166122647ae7e335761944434dc407695b3bff43710be6a689b3d9b4336bc825cd83bc7548b9834eb4a46d679ab0149ac2303b3d3e3a1f1852fa02f2f74800bdbcd2834d376fc0fa0251177315fbe203708a4eddd4fb8dc9bf733cb9471ec4753bdeac0ebfea20ac86ff871d0cdf3a6e8e1534f277212f50fcbe6726f3f8b55c5f214765f1bdc0ef5a4cacefa93a294067ddb41bbed2a55225ae659f41b02f3a05bffd5b8a37802a87660e6f845472a21bf927ce9eb9c1e730659222f2389515b26a670c68c72188b9b30ec0a5e0eaa1714ae355312e9455b03f20e52b48518779e39131f987b052735e8e28ddc32a775463484e080b750e3aacf3d65fc7edcc25c610fd1ad9d0a25a244140848624ba58233c0d93231479441fdcac6d066570f0d015cad1075054fb2bec102478858fbc73e88836f5440a37464023cfbe2d6bb7486c89f45cb1cc1b13ed6519f8541e85b5effbccaa539e4f39d3d996d221861abb0709bcade3cf02dc67faa6ae089ad6cb06ca53cbafaece3242c322bc801743adcdc47fb4c10adc635486d136ebb6b9870237c8977fa4834155c6055c4bf95f94aa3261d023a8d3737c1a13117a1a4776cd03cd8ea97f9c068f631225ecc9374913b05df6d00c96e23b98be91c6a93a2b3907892dc136b865e57988fe33977af4b747dc85b17645bfa5bf93b4a04229d193d29897c5ab16f94c309a8e0e2a3e9f4313a229e1e5482251fc3f6a5d68a49c57bd1854eaff585d8df47f1d9121a55085fb0ab0a0aa1b0167c35a2215a63acb83110860ae0b03f5c81e9926eab6af89c7df6bb9b1456b2ab6a8abaad6d0fe410b2d79e8d26ad17963a7f27e878ce6510978ecb8a395eba04441ab26fb2decf60aba67ed26fb0b927a3faeb4e138fc8063d9add15393bbf83f8d2bdc54a7b2ee3aebc0f5f2d52348bfeb0470e0a5589c0987b135809e442b9b2e2f4248bb65426aa4e25c34abf20bd76ebc7557ed6c6c5a537fdab3e253e778cb9ff4e08f26deeda9837e72026ce9222c081786d5f5218ba5dd4f81ea140c608cf9d5640a274b060d5529c904c66814288691462f27d672cd81b2b08ae113f9f85af01b66f4b88bb2c6a18a80483738ff6541369ad6f52e640d27a203eda3145a4a6f6f36ea0dd02e1bdd34f77d24a2f8a7a2cff9eb072ebf5af2f3be95357ade555934d843bd702df78e792f8836ab23c62520101d411e2b8ba71392fe0c521b0d3013cae90a1574708afd01f83082845c7177f28a9c547495b2606d01f3ade4f2cfec3516f5ea8b8f750522715f3e10732041a048727b8b6a4db1def63d9a8741f062f68d326b4632b6e87832b38a428ff0717168d26646ec7ba22109c26578be0f9d0972cd94b9cd4919ac36dc36523fa148216a3c69b91384715acf3404a449b1eed0c1fc185efd9286102a623223308ec41165fe5f629e6a02a530cbfb5bb64e112f3e03e7a1026d7c143f2d8e719f02f5816d10709d619612c60c0417357079aa13c9ec79daf3dc9c2c6a5b3a1b23381ac42ae90ced1811f139f3fbe8ca8f8655ec361386250c2365f7ff348679ac599ecea825c312e7ee2392fe0c521b0d3013cae90a1574708afd01f83082845c7177f28a9c547495b2606d01f3ade4f2cfec3516f5ea8b8f750522715f3e10732041a048727b8b6a4db1def63d9a8741f062f68d326b4632b6e87832b38a428ff0717168d26646ec7ba22109c26578be0f9d0972cd94b9cd4919ac36dc36523fa148216a3c69b91384715acf3404a449b1eed0c1fc185efd9286102a623223308ec41165fe5f629e6a02a530cbfb5bb64e112f3e03e7a1026d7c143f2d8e719f02f5816d10709d619612c60c0417357079aa13c9ec79daf3dc9c2c6a5b3a1b23381ac42ae90ced1811f139f3fbe8ca8f8655ec361386250c2365f7ff348679ac599ecea825c312e7ee231db538e220d9050deb695a20721092fd516be72dcbf54583fa16ac019dccee5387802b35ef46d465536c7a5125bfe9b85eeefae2986b2a5c1676fce05f4e00025d748e65cffce8e1cf09924474a2e4fe7a8905061b1795b5a6792092ffcf4f90cf4744978dfa55935648e4fcab96ebd33e91eef20a37884bc15fd66c82c3f0324a70a2f54232261e930d8e266dac5ed0364fae58746633ea1321cffa6afd2e01f5d7cb6ff8ff6bfae7b1d8a38d3c4e4bf7b1b9bbe389d3a746532311f7fa2173c53e30c8f90f0365d804528cfd3d5eead638cee8784c9366a3d01a881ecc2540576df83b77261476d44c4a74cf9bbfb393e946479ff1e36c8bd9bbd40e6bdd2059ed546283abacab0be9d75c8bc266a495db0e592be93d634c2ca71415f0b7c283ced1e861f661296b0c445c9f4b7695b12e37504bdf7568c4fb1feb6910f5c2b2291c5d8af8f90e40fe2747b6503339cf6df65d26ddd0eea83b17cc572964b2e0513c28b2d48818c8ebb05d0d4649e33c5f8f1c6987aaef1cf6f7339e16bf3284d638b80f2a1210458d139b194c88087cde334d429248398516510b6263c253a938903282bed607564aa0b22ea92a78ab5235ac86fc70cb4dcf4a531dee1002b2291c5d8af8f90e40fe2747b6503339cf6df65d26ddd0eea83b17cc572964b2e0513c28b2d48818c8ebb05d0d4649e33c5f8f1c6987aaef1cf6f7339e16bf33ee534c74a7da73f32e714c882265fb514f5ba5260d5d2075c7f3679ff101f29002ea89c121a830a800326dcf8093aa2234edcd8776972ad89b03dccb005efab115b03fb0d13632efd1ec53a5bc161bbd0fbccde6fefdf08961a3b1cf1059fc731bd604ea337e03c4d776cd7be1cc36d07e247d1a4816d09cc7f576d843fe403000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010c5dd275295a380cbf61a6cb19daea54a210848aeab0b5a88e2f2e2fd023e6b626c1e5aeea2363f56863e2c671a8d8ab9d6ca55346562056218992f7b7e50c6b3b4d4e9685b1f5b28867379aa7d509579a87c788e4ac37959fa3c80bb70774700b3d08f6bb0ab4c986247ee6818a72bf22df05809585958a9c2720936e93fcb93790c2816c1d27d4cfba63dfb3ddfd005d0727df8112b92b7953580e4bea0dea2909f7707e387dca2c453c167d9ab5e98757de40f68661f63d98002e6763b4f738fffb46b08bfea9ff3f1809764137cbb28b10a17f63ce3ef972ba3f1cc1179032892e358dead99bdedcd78b7c5cb03d28636f4f2237f22811249281e7b9e2122cd568e02726cf8bd158e2b5b56cf510be3d04de916b5db18ff09347a9dc9dcb23e4e6fb273254cdde13e680429d0c0f9c1bc137939b8ecde29a5eda1cf0f371326abf66b1befe3e0b48419e59d32c9d44224be4ada3e1327b52c0e6f49a929b29e6410c9b63bd8dc3fe0109dba8191f78f970222b910eb6d30ec5492fb68cf2317aa7280bb52f1b3c3391f26512c613afed003ba91194bbc1402cc16e0ecb7e147d4f095bd53f082c93a11bf71355d6f1943e6f8ae5550ec0e4303938515a3835238f4ce26749ccc160aeecc0d9708be3b7f97c39cfb877542f7da5c7998cb62acf1a23ec3c887047190ff520ef1bff63234f12b8f82f32a0f6c19dd37c21a904e9c14a161ce1be3cb5e53954d2c1c859037073e26cd0038b7f8eee5a10da133970bf4f99af78a122f80dab28c18d349837d111414a1b364ffdaaa4a86a2a19032c242e6df093962c7163067acd24e9f93fc999840bcc336972007956b4b982343ec188dff9848fa549be8a13eb4c39badef74630ac7f8d0e256cd8fe9151e31451ffb76b824812a937b7d1bec4facd6d5ea0666215220870044dac6f435c423e6e1805f99ebde39fa4f9db3e458482705749dfae66cc9584b019261ddf99b43a26b20a58ca051f7b0467adfe4ed7d88e199699d2d1f73370bca5f65fa91c15198655a913d62b3fa1611221975b81f3ff62f846cab696632acd9dea989bcc76248121a20ea93bca7ef92374f59e0f8e52473dca6b224aa8d05ff8efe63fb8f230ff81087a76fe685c93b14cd8a39c53b69846d83523363a3e4c8d220fe6976f2cb50a179aab31de6796dec08d8e4e55587ed6c5d9d7a73b00dc26e689d852703c5e8db029f8f1623d3e8db3edb19d13075da29b75e92549869f3e560033d8f71ee5c7d59a8e467b6fa5a339df0032df893d81ed3433c6d563ccd5cd7c20f4d73c48dfdc51cee2e325a21ffaf79c2324ec53c24b7b4671a8ddb35df23338f3bd012cb1c092d14141e8c8169b4207b3f849bd3a4e33be0b3097c8d0493596f2f516486e6569503e8803fa9227f768411e18dbcfba0e67a7a1c7614136bad15888330d920bdc8a9b9b7c20558b5e0e42af0298a1214752cc6246a4ed5c9c7449772df1c1f37efc98590bf15e7c418cfd2c7420c08817fc074896a83d701c9ada92032453e3d6ce223ef52e6f1212e9fe865417949f6fd6f87ee1e038df8ab1b067242159d968bf357ac1253b6b6f1e7d29744dfb8e7563e93df31ecb2fc2c0a8760feb1a6d19555152e140e851c8a6b1460ac56235023324fc101094ee519cde9005326938cdfa6eb8a128db967edb6c74da06103fe81d9eb42b9539b7899cdece01f2b935cd5bb1a5674441c4e62112b23b0bc0150cf3d4fda4c084d5525dd5ca299737a1aafda2c148b28a9e1b04de1cd46bb9a39d1089a68fe345596b19a3e8024bdad25fb9cb73c2c3f092e8c2ba97d011697b6b7e2f45e4639e3671f2d7ee3529fa5b02faa16c1ca19f760e9b87ab601ab49095219b86c20d78cdd02e6d7632100b630531193edcddf33be74e2aff631e3af1ff2f420dc0338a49e7931ea430dc20e4e7c2e809a81698efc10a87e2a62b37509a6f1522078896d474c9c91e3c78421673d4059987cf2cbec042366f819834e396d7ad5b7f3b0cf5ceac60a41f3af07aad1d7fce56bbd67315d874ceedb830e563c5d986096c0e8ad3c255d82c11ce1328a9e35ec497515bef939bb61b1d058763455206b04479e7a10a9eb0143d441e9039dd2140934ae548dcedb21baf45445dab534fcfca9652c596274b3ed71003620192f1e2754ba04563a2b236cdda01411cacb6ee9acbdff9e8c2803fc626a5ec37f54ec385346ec8821cea4579d0db2ca58d6ca8e1ddee5ab40c1909c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b09c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b0461dda8d89f9244340ca170b871686ead72c0f6aeea72a59dcc85f5bf2f6861125c534548436e43bf17fe0c04c54749cf0b77aa2d2eed5e1e60a2d2e8abc05121658174cef8b7ca01d1325c91a7d18b8dc8db38e6a8a2490f75e8322349c5891292d7ad405fa37806d82528bc3fe8435a85e151b1fdf1f84a5868f532008b701712904481ea91840a767ee6fb814cc3d2571a51c249d288fff9855569f29e602dc0305b7814d160885c828f8813c73f8b14b706ab63d2e9b2a9ed101d552303318a2782ee9f07fe7791ee9af1046298eda0d2bd364b019713221215c83e29d2131511cf8891eeeb9e35101f1116fcd9ee74bb944ca0b7473a6704d45e2ce8740c5237c904e44f8c390ea5afe6d43465bfaba69ea892100bb3705ddce24ee8440ccbb6b02792ad4dce07ba2548d480a5e46e5c1bf4881bce63fc0d59ced2a6aa2bb184a615bdb14baf6be323fde7045de6d2b3dfe994d2135fbcd31b12dbe8b12110f9e4034c391bd12b4f831b670ab88ed7298059072989aa40eee8a6918de41a38a0e25867b5f1ca222c32b5e6c605e70afccc73b9e42cebeac2c51d86d2181b10d50d775cee443a0fdccb3efad072f8b540002a2019c530742524e553b4412bb184a615bdb14baf6be323fde7045de6d2b3dfe994d2135fbcd31b12dbe8b12110f9e4034c391bd12b4f831b670ab88ed7298059072989aa40eee8a6918de40a9ccbc9ecc16a1f555fca2117935cc0d720603be643101832dfd64bc5225cf62f5ad83b4caa5a9c2aacdd733971989b085fc5498fd9c89362a287375520910e3e9c297edb5164abd2511940eb41e071ae05ccdb5257c7c19268b17dca62aee3002e3b265819c2f4408e8fc9e95828ed6c9f91068825bd411c8fed7dd72800830000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000138af5d8a5c9c8237c4bf92cbc14c14327c69870db8769623a1165e7879cdffb7022bb6a96467f4a082f2ec08a72d18e4524f10920db8819ee074dd8cbb955f2637185f96f3942596f1f5f5a0af86ae2fb9fc731ef6adc74829e006378e880c88126470a120588fb32517b5a92ef7e5320af2efcd3fd90fcccf053f528da95d292da24288bbc9ac99d1fa2c8e1b16b65a4fb2e812b89b645137e8670f9ea7d0f01c35176c396dbf9cf9a37b678a590fd67c56450f5cbe7235ac39da5d7b71c1ae34e6e6d9d0f0a2b9082cd73ca1b721ca2d39158f5421100f89a24ee3194e2fc229d2d43ef9d5c87e6836b0f68f679b59164aadd7186413c247e4d81ce78ec0b011bc1793d5f3038a47ad6f9a894acdfee6f1f70ead1f9d995d74c3ec818aa3bc03004180fce8ced30ce02fe114c71dd208576a213ec72faa729cb229eeb3ddb60769a1da7fb6115d82d044ee6699988fab6f68e9bc79e2a60f111f374be60ccf05d1e6e7beee05342dd3dd7bc6585706ae26ec7ab07b06036261d7da0094e9922446dc67671da8b7acbc07bfbd58f597e17f816d1805cfb646529df281695b5539d0420b0c27fdae916e09b8d7f4e60e126e2e3af0e6f18399906421a793b38d28d93646960b635bc30ac1362a1e66af0c8c8c7df134666277c865dcbf586c140a58011db163424184c8b2d37258aaa705ddb883453d26bdfef94c913bdd51310446926984360f138201638cffd70906ede8c938685624e9b67e9dbedff3fcc70cdbe4588825732b39449fab4f2fa301c0a6522a2dad742bf00bf5d3427f4bfd30cf2df8999021bbfca195585fc3eb4d026d70c322bdddb3f05ffcbc10581d360c132600463f15a48669b0f07292dfde295215aafe804edcf8cbf67aaa0e1c541ff480fb82c3f90052f99f9981b4b3288e991e26af38b4731bc7b644ca5e33653b4dfd2dee3364179fdf3c46975c0bc2ab4723651d14e69dcce85de1259f72930d7e38952b81cf9897fb9757658cb85e91fc43717edab8027a428ce171571b40230083e608b9bce9ba49f5021f43bc48fce80ded93c64646677c99f5b5fbc7860a23a25f05b2d5d61fc25b2de5be218d7ff02e6b45ae6e0eac3504030ff7a478042f24058c21681190095fe27319e2f84d22fc58db9c0f67c99d3508c8f3a1e60bebeaaf27108d87fcc57f800f756593df91e0a2868f3dda27ea9aac8d54c0a23e629317ceb4ca358edf224fd83797d189df38c6b2ff4c87efc3003a59ce75d2354237211767fa0edb47309527dbcd2edb26792aab1977da2ac085bbc965c0be34b613970b0fc5c0e25cc8b5c504e8958be8dd278457f43c515c8d656cdf9ecc01d2654b58f1db54e974e2fef0c3d2960d5f6665036bd8e67cc94a0385c54d2302515b528e951771a94b5d0461cb662a906d747faa8c8b69e1793cfc8793de270c2257ea5a8b33ae171b5e34dc19a64611c02f24963908221ca98292f3b6c38f24a012e500f7bab589fa492979fab0155c13abd55a8d4172b291970ba8c7ae0337cedeabbf05f8e23a1bf9cb80fe70c8ea8ed5c5bb454b0068b6b5eb9180a37412ade19c54dbdac6756bddeedbfba99e6ba646a067c731e12ef11c69f06a007634723ced1541a294df2eb55f96c5ece2a50debc0734261bd53ed0901ba5dd0860c01f103a703ad1a31f2014f12a05268a4ce2eccffc5474dfe7b1346c0982bbf02afe18085b3af2a17d503a87f7e6bd98bd77bfb285b38e8b1136c13cdef636902e4745a778adc6df8c8cdf1d5439e3555ae4da79df5926a0cd3ca1d62d5131b0091485d3f5206a43775cb776b8c4c30cacc5c7377248231357f34c9a00b9d133d0656d438fabe87b6a4313e0bafef9d4448b27819251e9f5a07a4e89268c4cc33bfa06564ad7bf61b756b0721ca7846b329f43f063d401bc5eac0847a4cba011ef4dd57077ecd63716f6527f0086e86052a716de78a94b12e92fe7ceb66712320e5ad617c7e377fcc27994123a5da4298a731391da2c06de846f9f3881716dd10d603f71183b8b7c9f61a0226098f920272a3629d68a35724577c8d80af63820941ec7bba58aa6589649f9b2f438ef5fad9f80e04634e71e3cd5a688e6d8acb1230fc5c222929afe214aff5bed29f0f57835ce696877d343d3b4efbb1c0d6f13245bbfd9be9db2ef9f5d6195c413d72183a2e218bb2fd265225c2a507340b6a25b19c7cd3e4850ab4b64bf1c4e75dd7c84b37a2057a301876daac96290bfb980bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb0bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb1663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac53a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f216211fa42639b21ecaf1ed4e983217b62a6709fcf49a5422b064a6309c8e2c557662260f666d094d1a6403be2dc098fb8f586eb4ad8166745ba69d9a8268d67ce95224688bf433df1ae089e293b28e241cab5fcd9cd6a27caada7343d9684dde77a20de236c8d5a6a0e502a2e3ffe172e2714300642e4b9f8986569c7538a0b81fa33ee9d35863311447a1f0d41296828ef14e845415c2e1024c8b39e27624bf3130d97ba61a8a2316eb79f39a161619e8bcb7a52eef1358e006dba79ce51baa33c10c697823a4c4bcf76cef00e67a7c4573c7f2b17dabd0fdfacb93a9679d4e8a211bd6a4c417911b42b7f4e8354b2a758409284328da8c61546bbaa13ac0ab63936bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b93c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db17a1dd82353c650035565c7bc00d9e983b457e8c8e8400815db42975e7191dd723725bf4adbbbe02d33ba140065e3e1cdc66f45df62ec7fad6156e418389100c36bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b93c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db16e08890aa848dc2cf6ebff393973a719895979a2e346a08da82cd7f791497511f9a4131e99449698ce8ce1eaa5edf794bef39d7950170d87650c3653eec76d50bba2f36522d59ab82ede2c4985d52a8c1af4cb45768d4d34000a3c4b4678bc92de546b81283d93d323202c8cc923733cabbcbd1b161d0388443c11d1282ebd00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000119855653a92b5b37bc84430dedfee92e5fa2a1627ef010cc358ffc7ca795f8ff10f91417ebc5fa0a82c0fc211c1ffd54bfedcb8a1eacc12001db3d3dfcf6410336fcd7247b582bd4755c005b613b80ca2f8820cddcb43e242679713b9c095089132f24b896d0c5362ec7896ef900a2aba3d25adf53f77108f34a222c4498678214299ad45294b6b41dddc527a1ae46013a4622388f6d3f7fbd08cb5da0b408e8111e3f7e1b77c40285c0545eb39b341c4a7f097d9bd852d41d534ba5324d57cc066debc195b53304b7c8f3785ea52c698fab1c33036da1aadb1d57d46a57fa0b1b55c2439894e8561eecc4e7337a6c428414211cb9e391ff0d1e54a1dc8492741382fb675176bbf903e404bdded09f4a79609c13f8dd0adc9bf398380d0643c00e803f15245b8ee7e24b7a7c9b475907f23b775017e95e80844dc3591d4578e518f961d2961eace213ddef4c9fff847634c6aed28ea2b36c47e11aa8476227f61e1a563dba60b85dba030b80ae9ae90dfed627a0c3282e96dcc4f6f5795a0aea303db71302220fdc36cb981571a7a39988356de91cbd34414c176a4cbfbd0b1606547e6644a457d54b633df37048afd98c0a7b53fe4373e2fe2654b7e11f75890f4a5c550e927e552d2bdfb5ad5b579ec4d13e605ba0e8be836ec282edc0bc8c20e9dfe79ff700f343168ec6a16ab1dfcbd35a3498546dbd3834c9a0c16f318722b5bf8602797964cfe223f7f39caed228cef4a518f6375ea58a12923cea8cd12d374dc211ef11c761695eab8bc0a9a0aab656a0122a5f78e1d299ba93419f1a0d1a3a23a33ac356a53f60b4d8d4635586b2e25f81d3fe22d36ae75e7cf442be2e35b50d9687b4c7d820a14f2e63abb3597f2ad46eeef9d20d6372707e81089a184020a4fb3d8a714a4f626e3ea5bb356c6ef4c6747cb8aedb354a201f92f6e62176aab83a16b5378cbd7456d7163bdaf3976424bdb7563de4371f703e5b6e3c05a54c3ca90caaf0882824ecae0496d22fa11c473eb0fa671156a4345449255933935e3d12203a4564b3f7bd3e5188139552f235daee4ea1fdf45a81915341650b88d5843256b8f16a31985616cb634b4a614bdb510b92f6e2c2d2268695cf210ce82eabb395d8486c049a6304082636414c908c415de6ca846f31620d3fe25903aa258c4f5cf8008e3f972b21e33b538622309766d0a7dd0cef851a07dd74421a435475fb6ab1e7162ed84df5693d343dec523b4069c64b9c89cd0df7fdfa610bd0cc0e4bf690b74cccc9f4da3b379896be27c571590c67e76971b5caed42ba2bac1db6f1236abc4a0927a957c66dee1dec17d2890ebbec9617ce5b2781620303d3d397302499301ec0ff0a2f2a6171831491c3c698372840da2d0655b68ccf3cadec78445ae88b4e7beec24095bbdae8981bebc7a1b4ea4fbefe3effe7f40f02c35d2cc186cb97ee70cbab620a055322aae8a6337a853544e15a280f4a93972f17598b444349e9adba8bb649ef188d910c0e3d0b79989f0f8604fcff06ffee3220e40b6e3b8bd5b56e9d049c833f29339266b485253e9871760ec1a5c9b1522a0cf327b065fdc58065610095ec4a60fd601c623a664c5cbc801b45440faaac201a60c7a9c8790d2e4b2ead49dbe70a7267da3683781a11f5f64e49c64a1b472c4e2bbf32761299b938962a6b3e204de7e452718bd691428f31b78e05d97c3a3d732743c82f5d48ed9a893e0be8edbac1b2687ef0af6b353bf98639ede4427f240f99396e8262647d1ba5ebb951165380ed43913e404c2172eece648b8f431a0e9d13f24d8f4cbadaa2dd0b29bc97e0bc6655051cd7ec595ba8de236553f1b63eea4050be3b1b13be6c78e3df2888e1650abab2218939e2b61702514684dca807e123367bec5811decdc8d749c29c23b23750bfd52fb11e10c429b7d98d419a06bd7b4e1dd77eb398b7f72bfd3e106249cb9737d11d912acff5585563a76e991bfbb9289dd155b42171679d712ab8ff9c4333bbd29764c3031ef81e91eaceb23655e9153f46b97ba2ad0a01a65b132807b0cff3264c4050421e3033d3e4307c10c685bb1338e347aa2c5765e3d9ec3d3b00716a4ae009b3c2120d02fc58526d3db2f9de3c0d7d640b53605e1cc84df1907e3ee914a236e7832439bad289fc523378d8b5238ab2438e658a8f45f4a8ec8f007da873d23e81eefea7862b977dbe26660162bd1cb7ec1dfad6a884665218c6c67233f897f80a722d9017bbf94e090087ae544ea93498c65afeaf9509667beb82df3516b3d44d414281f416174e503f7851abb156cb6739a501506af6998436c3b9c6f29924ce57eaaef8e9e8b1b102a667a5894e06fbdfc6f96de92f006b998e5c0971832582464c89c46e7487903d59985a76b1f9042039069216d0ff9488b83cf297c9d39952e0a728918b78710d40063bae8622eb5ee2df258deb0219ffc7cc2f378fbb8b5f7eb0d62846a5d032bff9c45179dd14a11d20da7214fde6227eccccd1bd3d9039ae8016d7b95a3102401f2a689eae98da6e5bbbc5970a81dca063f00c81b09d444c4341c9613d0f3dbfe0d5976151672591a4443a68f57e45a6350bfccb487e54e0edab369ec2f20087ae544ea93498c65afeaf9509667beb82df3516b3d44d414281f416174e503f7851abb156cb6739a501506af6998436c3b9c6f29924ce57eaaef8e9e8b1b102a667a5894e06fbdfc6f96de92f006b998e5c0971832582464c89c46e7487903d59985a76b1f9042039069216d0ff9488b83cf297c9d39952e0a728918b78710d40063bae8622eb5ee2df258deb0219ffc7cc2f378fbb8b5f7eb0d62846a5d032bff9c45179dd14a11d20da7214fde6227eccccd1bd3d9039ae8016d7b95a3102401f2a689eae98da6e5bbbc5970a81dca063f00c81b09d444c4341c9613d0f3dbfe0d5976151672591a4443a68f57e45a6350bfccb487e54e0edab369ec2f20da9914a1efea3e5e652d1bebf32fb2c4a8339fdf7e114fbb9026c3948d1e57b2c9c5447ae1258463f3aab447a9f9906b7afbc722f2eeaa83dc7e2d2b05d15551b32ecdb06154ad4de0590c2867c0b6df9c5abeae1a5be2bd2c68bbf2f7682962ac0ac6f9b58736d8b9902a0567227960edc30fc3065398d32cc71a56204011925c4068e93fc72390510b6dcf7548b9fe416a538e12783a0801a41c7e1d00a490dd0ae184d005c939bca7b69cee29254f77bca2721921649c08956f39f7f26f8216eacd9888cc8bca9478fcddd3ab67aa2d834db55bb347387aece5067ed2853344786f08804e466db8b8c9e644ddc6cfa2b36dcc7c728b7ab476189774ecfd535998f1a4af402d58a1d3bdbc15b9a0d1f4a581b877c3b1611c4e89b0eac481902b6d53a273e12c7cc35c2e499ce4b6ca3422eb981e069145cef3b4f05f262113f22214230e9aae720d7c4fcfac7a22be206e8e953d0e945cde4803b813906033ae491c4d89a8190a659d03db77bdb9e825b902128ae97c5a97d5c752b29882d172381dadaec11453ba79d7eba50f965ddfdb3132fc625f40d6438f487b797f128a2ff48b695344c352c521b2eee3f637e014489b305ce01c1c60d61ed9ee9953f22214230e9aae720d7c4fcfac7a22be206e8e953d0e945cde4803b813906033ae491c4d89a8190a659d03db77bdb9e825b902128ae97c5a97d5c752b29882d12231646f213859320989493a10bbf7640ba070b8ee78c8f375bb5dc8926614a1b166eb91a9a40a596ab9848fc583b711b8ccbb038cae98ea601b29dd5a12b9c0e968dca49b9a68c9787830d6141ed42c931b1f31b939e598cb93a6f6c3e56f91237abdca3f0ee78c097dc1602592b994c60f72ca58b7892f81a95d973d8672d000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011dc4797cd50639f39c3f34ef7810c3b7c7257214aad6854b2137a6fd72d5a90b175f23f6556b0cabc02ce6e1fccc7a3e498c9d027647c8133b68f35c7fb93bcd2d82432244777e2efaa9c4edb325942f6f36c5086409a6571a58c671d416d978314b14fd64651cfe79e100493969e59cd108a415d3b625cd3cace16a7d5109ca1ceb3e9fea25ca8c979df9acb0f3fed3b765bc5bc3cffd49617da66c30d1730327c6b1b8cdeb55bbc7ec5eda6e07f3b9f4e850b9607d7cb70a5eaa5098854fb73258845db47032802d93b668bcd91609d20ec10b48e80a664ad046e97f6f96ff34a9ee97affd509c6c064c8d24cedf9c1063ade15105bcb9db0542c6d0b65a7e0eeff6dd112e801da783c04575f8066954951299747c33890166c36d0290072a07cf65d7454f5170576bd2b1482f71fa9cd9a1ec558e680d3eae8f30fc1b084b2afefd14ba08b2449f6b810fa740fff9088e3c135ede11c583aa686bbb3662291c06878d9f6fd731d4329fead761ab1247ace036e7920c294a192eab3c069a07359a2794023f44668dbe7b560320e71b338e557d219c86f02307366a73a7c083377152da278e88cea3bf0c0809482975d672fdc1c345052a473bf0e6d806e3bb3e5b4fa6c296873fe8316cfe0f0b90930eb2f5333c66c845fa00c15ede4038700509246b6d31e6782e9648929744edc4e894e31bca7a3b4bdb744be64bb2d2a61a5ceac187d72d81acc0341bd96ec0acb31a51f0b9ac17855c1bc1277d5be4a93905c8c6b5f3a53e3a0e60e5a53fa5e5685b1804efdcda4f902f8b92fabfb3791f9f3121f079e75590882dbdd5613220f3a7adc0b8ef4b14a718459614a44ded3c8bb66083ce2e95c6cb7ab17e5b7851113eacc3e43af40ccf5405daf51b1a070a0a59929f82b6b6e58ef1caf246b2e7a155c7ab90fcbaff3abd0e3c61230caa313f6c985dd93d39c7ded1fb53f8d380c2f7b9e12cb45e3ec093ca97c07c9c0f09c26ec92534bf1ec5320b07cef15fed49cebbf8545ff499ea6a42ca1fadb63522a8929c46234c715f2dd6c4dd0b5be57744d3609f4038ef7a4d218c0db4404e0c12b5c0d1f56add6d0defa435b92c14fc4f9fff8b7fc2ded5db83b0f678369f34eed586532a6af17f174fc7ab3956f89661b3f833cb48abe681967243cb84ea290687b47c9558cef2d227a891f23bed95ba6255bd559d8fafc947e100a44edd010f983d905078a1c1a4a4844742f545ed89890e7bb0a43118b7ae9d4b2b13e537d3759338aa84d1f1f00844233b23cf2ab9d85d136234f95b8d1cbda50ded2a133938aab9a6f04b12af64b10b31859118d3425967a97eaa3176d415c54bcef72406d1b89bb1eba9454d47c1b8686fcdfd044c02f422780022d2c18afdc43a2d190bf1afc203821fdbac49b707820b0147d4726618890cf968fb21ff5d3db1fb31179bc0ad934631257fc9627b1eaa57dff968ff6dc984b8646e184c6f6ebbaa0ba9459ddbdf5eba4a9fa5700066eaf607a6e97c57b6d6b1117f9b213c178c0a186988fa35e573a7539241faf775223dade866310293e1a93c495c2f855399040cdaa876badb1097b8b03f87c81a531b949950778ce40e3f9d001f736053f4b23d3cfa66702ff7b5db5dc529bcc4e0266b495ea6947c663f8a8f0ec73d2229f52d732692cb984977673bbe9650c7ea1cab36d8f54fd3afc582be9d95fc20310b1ef342ae7f8a882d64c8274f88b08e8cdcc8816d637700bf474fcab770aa2657159c58bda25169b53096f8c70d5cd6b1f7ddddfe64a74c5422c60b030984cd721caff27d6b0d3fc97face67f3b0e7fc931265fd3a4af1fe299a95141d22b19a41420cae4e4ec4176f10b53245dbaebfc78948e5d886e8a2a289c6cd87ed0217618842bc89dd2fe3d0093d2bb12c4a976853e274e6f7e74ca71fe989ae20d3d8901cd90a76e52bf5c2cbf1be936e265ddfa8e325f9d0fb50d2191546cd395276518b2cef8826e1e42a917f710bc00fb57c1aa427c00d85045e9d07e4dc26058db266651bfb0e979dbe2af5926d639ae305e58cffd144ea917ca6f049c8dfdbb7a37f994fbee372e3049401c4323c1828d09bf08f6525a869686fb9773135a1eb61b2a459145612f2357da92ca380208498d3a2323d4a3e03ca5d0fda896eba10b0b15dc385f7b11c71a649b8aac603265747c2e37fde1b6af7037920cfe2074262d8dac1d0183dd67426b1be88fbb8c5f0681f39c5c0e5f3c75fe6446ea7f6a7a35fdacfe5d9d523654e968cee4801bda3a702c8d324eb684cb8f198e119c1ed40a025301a262adc9ab1697311b7fe425e7d66c6ed6fe4296cd9e175eee63e12d0df460f7d4129b0fa88f0c0a76808b429b167ad1d655ac299516bc12580c9a20320b9f082bed64f05770f3f5897f74bd87301e2a32f74cf2041674daa7f365e105c5e4d7245d074e4acb3c345082b84ce529cd1d265f63b450447b6eb83f029f3a3a1b28dba2f8b1b534c3cbaf7d47b33d1ccbdee2ed956748e8b57e47c0fd621cdd7833b5d1248775f82d05928d998079d10191bfdcf28591566929993b0d1b232287cc4a2edb788a07d2fa6d72667fa875976a4970069607d6c7c366c4f2e635fdacfe5d9d523654e968cee4801bda3a702c8d324eb684cb8f198e119c1ed40a025301a262adc9ab1697311b7fe425e7d66c6ed6fe4296cd9e175eee63e12d0df460f7d4129b0fa88f0c0a76808b429b167ad1d655ac299516bc12580c9a20320b9f082bed64f05770f3f5897f74bd87301e2a32f74cf2041674daa7f365e105c5e4d7245d074e4acb3c345082b84ce529cd1d265f63b450447b6eb83f029f3a3a1b28dba2f8b1b534c3cbaf7d47b33d1ccbdee2ed956748e8b57e47c0fd621cdd7833b5d1248775f82d05928d998079d10191bfdcf28591566929993b0d1b232287cc4a2edb788a07d2fa6d72667fa875976a4970069607d6c7c366c4f2e622e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d570ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b3a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f21621663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac5377081ff8f64eeb38aba78d10d3e83a080413ad79e951fcf6038959643c52ada2ad9f13b09f574b71da85b15d3abb34658f227e01576acb02dd2d56431d385d43a42da6325cc108a912bcb06aab5d323439e43203745734a369ef5a103de9863110b0cbe842a1af8691b0e23b27f5bc34a5ca91fe7418b3932aa6441e1c7d0df06c5a0ef02911e040f765ee71384bed36e78e0ae3b40c85a028f4ce699d6a07c1ba90ed5254b289cb51347547d2f2df8d9c8d92d37b90c6f7bab01c63fe3e74f00907813eae16d2b0149dd3dec4b0fe6f3df680e84f010b22ae146688cd1e2b507a36be71870ee0d0f16f09c5fc3ee7f6a569ed8c56b2b20ec67598eeffda89c22f16e7abb763ed14185c019f5dac8dc7acab2e69b57566c94baee8f1a39b14a199dae4ab392dabc2debda1f813f5125daf66e226aad562736ca6357d2c3000200907813eae16d2b0149dd3dec4b0fe6f3df680e84f010b22ae146688cd1e2b507a36be71870ee0d0f16f09c5fc3ee7f6a569ed8c56b2b20ec67598eeffda89c397e08619c655f78605c17faf4ad123b4f78f9cd1eddca9a21a1834116aa43a91fd13331c06f24a63d10b2fb16b844d5b689156e8c7abf5c5cb9d211cfb6b4892eefd583669a38c5c24df6a11f480751df43634c58e9ba096b7380f1358316340ca9d94a8f94aec38381a83bcd0786a5bb64dcaef3e0aa356e98dd82267692aa00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001026032bdd7d9b7ffdb83b66776e0f195bafcedc76ed876981d2503b5867429a70c7cbccc220deed40a54004054e9dd47c2b0cac74586224252808e7ecaa858801990b1ce63d4909ffe9a3bf868c77f101386c395765a90b6ab1f98eab1b2fdcc2082323dac448e912698bbbd54f8118d84473241bed58cc37c3da213201b642a2f5e99d300159c74fb2963525eecbfd57a48fff09c7f9911c684b5005c2f5b6f1eb177c3cac8c0f9fe1c5937d8f92f683f9bf810ce97bbea8794b06a2b644d6a0eee515e7828881edc016f3d93851bec7837cae25d48d89d8d33f7c93c0318f21d8d3e3ffeaee25dcd6ea6a176b0d0d773416212b2bfcf817a0d4f59601f3bd922caf69aa34014ba5104e49e7f6163bab1caecc34ac7dbf4e23832fd08552f8b00ab78b6d1d16674f984222680c05561f7ff2f3b84cb41b78d8621db55ca9bd41be2e022eb09e09ab8bd2dedef3e2996a92a40b5de61f38420d2f046f1f562922c0e755600863dde74dd98dead3f4e78540648be04c785a6392e24daac600bea3e741acc1252cb988448da854fa62e21d981d1e83d2102e88d677801b64c04ad0b286c13422fe1eae734e355c52620523324c6c9bef939d5545e6cd29806f4b43a7d039aee8e07e40e19ab27c674a0bc8929389c00c01fb4efc1904a103c529f2ed93359beb4cdde6898a4b9ac5ebfab740676fbf154e261c64b32e2b41fcc530b603bff0a03f69520fa77e7794d9701b177b42bd66886dea86c741dfd9a1f1d2065f59bb72d27bd25233f07f40b8be58e7df3c6d4ce48ef22660670eaa0a4a80935ccfe056b1e32501f50f099808e0370b8a8a79de8c7c69881bfe806ad5af93012d6884e3627268b3a309f4654e2447c82d015030a79781454465728fcdfd52f4bbd872e0d110ff686fafb6b52ec7a6575bcffb14818fc724bedd1472e9b541f36c346be95efeed94ffb6beef12f67858c108c764ca9050994a8a04e46e4502b3d6fb9c3691371c8371c92d983b28ffe8870d1d43fb84a71287bcae2e0a3be37f82c8b233857acb286c67af6cedf8771b342101fe8a7bbf0fcc17fded4dd78080370d3a2470a62b4d445a5f3049829095c9c4652bb1c3a4d40d4354f3f8fdd0dfda4002fa70be16b6f36286af41998227f65b00b1f3d5a4bc1ceb92e64f52c0b796145b31f7f71c363e4773e17362f40075c5ebb0c08a8f4e1de7ef77f46e31a0a0605d0de3ad5e54da84c8bfe96898d7fee596326a880d7adc0c87e27ee161faa67c3d1927c27503929236c412304118072545c765453ed372f7a657444291940514a3293792779c02b42bba82004bfebc64132de0105bce6ab0c2f85d2d10ef35fb22e49eec9ca6a1d9c93cc6a7710610c7d0f68616a3ba8b05c82a8615a1ca3a0848582402f267f866f40046baf466d0d8f220e8b766531b037704142d11fd71ac7cc3f5e41e2c50cc72c1dddf920008ed2ab47afd434084a1b661f90bd1730b3e79597b145a9eb98bef8e5d6b12c5ecf68b39809cfe9111a9c31b8e9e31be3ab015be7357c0d936ed20dd35501e3f2b9ef643558e85858b815ab2aad5c23890207f9d0282fd0d5cce79ecea876c62ba58a58e0cbdf6ded23a141c4642a3afb82dcfd0f689fd01dff2c258a78be1dbee198b204f019c02750f5f2a4b82f0e9bb2ef3ed3aff18e412556061bfbd0afae913fdd8adc4e514d7998e6719f0a18b13cc12f40f9064c4cd27dde7f7a25fb5162eb114249fb80076aac1d45953e16aada71bc18f6fde9fa593e5e675cc2491961aaa53059d1f9cbf1c93de5934f0c29593b4578ccc390abebc67ff9b65019d7025d66adfa5dbb2bd7ad54192c890fd771095404cef6635c7675b447bd36d9b442d1da568bdd4374b47b739182db10af14d333dfb9e7ea0e7ed83292a33f5e0d89852f73d4d80231db5458c61dbb3a25f7e9d463a6d07acb4311bf33b5de14942536835f32c7256bcaba3ac55cc32ea9c8e875e9f424ba462bf48466480a275a80defd7ed0e7feebab8b8737a51232e6ca2f4d8d0debb2f2b64f96f457d77d05b5ba8802b8fd0dd5b5c5c5757e9f3e16d862332f3bc7feed9cfd89096b94e53e0676c8a66dab47f4a5fa8a64aa862aa1abfeca99e681435a70be09fc6468cc578206f71a1bcce11f7559d801bcfa064069818e794c024eb8474e264a2f58ef3f0b4ccfa907e8875b25924d9cb8b62e11df3ab90954ed5fa0d101a9a301d7fd8e14cbaf1884b613178a9265c70de422349581c8414f9f69c009613dbf362475871029f1b3b8225760cc5a952f3c8b1dcb6a7e37beb060963ff69ec240c9dbacbf88d2179940f941cc64926ad0c3762b06eb88e9468e1d10c02ee634bc0eb607161ed9a5e8a67482899beae9ec2eb514f9147716b971e2ef3fd119cb43f14a1b307a22636452a716a395021613d14c172299ac8e60c69153c0ea7f07ac498dbc9acf4c21a454f3c12878cf919ce98628dd6653719f396eac3f1580f853b67265abc9afe7a8a427d804b81d6e63167b33ad005ec7e3e0d6a2c4947b265d6fc48cbf73809ee8afa72c9d2b20d8108f9d0c52ffa1381c1f295d3b6b84d9a2903b9587257b6a6449746c9005cc27ef706422349581c8414f9f69c009613dbf362475871029f1b3b8225760cc5a952f3c8b1dcb6a7e37beb060963ff69ec240c9dbacbf88d2179940f941cc64926ad0c3762b06eb88e9468e1d10c02ee634bc0eb607161ed9a5e8a67482899beae9ec2eb514f9147716b971e2ef3fd119cb43f14a1b307a22636452a716a395021613d14c172299ac8e60c69153c0ea7f07ac498dbc9acf4c21a454f3c12878cf919ce98628dd6653719f396eac3f1580f853b67265abc9afe7a8a427d804b81d6e63167b33ad005ec7e3e0d6a2c4947b265d6fc48cbf73809ee8afa72c9d2b20d8108f9d0c52ffa1381c1f295d3b6b84d9a2903b9587257b6a6449746c9005cc27ef70640b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc28a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e8726c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa13ecad465c6944b325598776b427052e58c94c13e930403f45b0a408f56709bd70656a0cf4c32a485099d4b8e3389c827090d82d1172db3667feac40730816f1305cf217419e4f71e44fd795ce3ce932c1a1bc93cb728baa1d0df0aa69bab501424287a8653234caea67c56793cdbaaa0456cdf7b43e6c05ddaa6c0253a47d6d5040a5288c7f4cfcfd8259e43e9af00a99f1296f2d19b0da9d22eea413fc016fb2df7a41daa41939712174d67499152bc832f079a0136eead02e44982e442929e1b00dc3610a9bbfbfcadcd305379400e30def6fd40025399a6ac1292daa557403929f857ce3021a1ec2c9bc89b76c6e5277ec01edd2f637abfe35990685ae18e0e1a7ede4b179257211a6cada714a7beaad368ffd2818c744f6356144d0c89eb2e4c4d322add4454a75e3e1e6faf60dac34f7356ab65d2ef20e7ba2e956941db1b00dc3610a9bbfbfcadcd305379400e30def6fd40025399a6ac1292daa557403929f857ce3021a1ec2c9bc89b76c6e5277ec01edd2f637abfe35990685ae18e050f3816577d1dfdfc2f1335a8d2086b31c2b7113b5c78176d8e7206458c2e9d21100de44a90c742e7239c06a9ea36ec9ec3477fa9a1765acc534ee4953fa74e3779a8514727f35500631363ca088e12b5e440a11c5196df6f7b1d3f0dfb347d33c712de6dace1a342255ed1feadcc51b04401ff72de0eeda55ba84253c2ac58000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013ab3c6a304539caf8174716d91fd0748ecd1c02867a2a9bc51c1ce339c402e0f140c5a7692c13bf29fccd79fc7b59c241d9b36c2138c8451721e79d56ee3dff938b22df9786325aad82e7706fae9df40ea43092bca22f78ee771bf95ac3be33c1501629162ca64dee0f707aaa90c7d5630aad867eb70aebec0df2a9e8ddafcd31c38e8dc2e0bf6d8d7009571c756ebc05ab11e0c052f39e2471296d791ba9b7925f521f30eb5199257632af18058066eba6082f631bd65426a04f3b41cdbae833675729934e077328c1c9224e5b8f99e0784d8360e1c7be45f78bdff68a0fd8a1b1a3483515a690a9322491cedc5b8ca58505d85ac2eb2808d23919586d52c0a1e99339dec81a5cf32006c696165f2f4fdffed4e31e608892dc7eec12b057c753ef233635e87dcac82ba936d53be6b9c25a0354ab9efbf996a9e31cf6796a4df30403ff170f8453b93209f7212e30e64bdecf1f13a90827f8af5271a803f9a5424d8c73f137cf21e26e922f5445367962e2e7d9edf3a9d99dfc99732844f06b90a7606c3266196b06f6bcd6ca8d7426ccd0da5cadf02eb5cbb8b2f63c7bb5ad817b2883cf87686ba01aa44b95631e5814ab0a6ab9ffcbdc888d1f88d166178441b0d11e7260ac976f1eab0194dbd2862933e2d75d331545584286b4d5d606f0111e4315bf57734cd08d875e9d166dadb8b98f5c714d29f1d7b659d4171d25e040c48b3cb341b205699727da85b9a6129e38b746802999a390a83c4ee15498d2a0963d8cba260134c0c873ed541ad2f9ba37daf7c67838a3baee19647679d34600f49ac0c3bd3a2429093997492dcd565dc5ec93132dd4a5acb7d6670678e397b251e4c427a5152a0114236c44f600f8a7c07a91f2e1fcdeee3d1606a8dabb0c820f21650aa5baa46a61de66652adb1f204b520344cd991715763b3cae77d2bb824e63f99330d2cb016186b40067d8d254a2b6d4996634022db437e13c224f5520e84f1e6dfc9fe5fcb4b97e73380a9defda1328e41b72cae7b232ca9c876eb111e94e1525b3b070973a066bbca258fab3e293b13ac0480c935ec5f9cfec9c2053f1f873ce2e8d95b7ad6769d85030c70a8892dbf02c040e85cd3583ffa3e4887126580bb604c6c0fb0313e8183042fbe1d97413705c6d8214de25979fbbcf04f1cdb853465888cea5cac08957ddb880c7ce23ba26ff78a325ed0138d492b5b552aeb5ca5afb2895dd83e3c55333e671d9c27b9110d3797041767ebc21dfebe480c1ae22b9ef6aea0b81855ee84aefcdf54724253e1949c5da3590718fb9260193b2aaab104f6a221fba503b915c766c85a59a8cdbc20fb5e6a38390ba511bdea1da5d98c792e3bb6f562b751fe604f1226528e9a150fc23e03867dcaf7e88dac13c3a6cb190ffa51dadc8b2c77bbd9df2257045332aa63ffc4d517764e34a08f3e0aaa508874894f35d98e97daf4c4ff27bb59efc2bdf0c992d417ee02becd6026bb9fd357878b46601a75f300b9b22088a3993b35d8446b99bdc2fc5439ff8727276fc450288daccb3c57c6b6291e9682470bc3bddd8907da1b617ce139284507887ea83f631f68cc1ffc026db83015a119266db552e323667f7d84f631f2891a5a3f384d050ec2d0ec514e8ec8d612550130f14d79116b27204f374a77be092ef0466440c54d709d37091e8a0e5b618d8ed232433aaa2f235ba755c5a3433c1a24d5eec5523baa3d4ac4aab7f267d029c4e92016191eecc8bf936fcc0574910de4a7370b5abe0b2678f3b109a6b29f888ee2469b55c80749a23fb2bb24b81f2547d26e911eccc7af03e9470955b4e5a9708959ac27f0fe1f9d003cab56f7df2d82cede978c24bd540f0cb28d0bccfde338849465b6fc0d3b8ee6f21821eee8356bcd72f389fa174f007bf72f04331d264019762cc6c52d3f6db1f76c29bef925c229a6d54b464d8e9a3f18ba29cfe000b98eff019d2675c348a01d5376763d375ff5a13695e9721d8353d7e34a67bbdd3eac99ef5311a7a8fe08ed57130ca532f2c78c5af6f059b467f597f5ac87cf74e95c0d7926402a3d88874168940f2637c835ff75991b61091898106cb0bbc56f8cd4fcd5c1b35305ab78773bd55dd027b5d62c5d8a56312e6528e621f40fbb5470a93fc5a1f574c44ed0035e02a2183d67eba4b7ca818a4b1e96943c4715814ecd7e0aab01cd8b72c0ad116ba1d2f42b872fe0d0a5ea9243aad32f68db51897ed60756f633d76b612f87ede72d661c00a31cd9ef8679794deeb656fd6b01c97550149e556476b314244fb708d44fc33f5ce32610798686b21149a90294fe36acf6845db3e882688508e135f72bb03e032f9041ada05f5e85a98fb2f31708ef4a906717aaf6517f64b58e932c258ecf3cd06fbe525fa0a17a56704d0ce8f710d7b631e45e56a79c3477a259d3da71320fedd1486421dcd89c4fce7ebf732cac74d2037656cf977cf78bc8dfdcbbca0b30122eb79bde232763b03181408cd353ad749585b27d619ea1a1680d234435f60fa51669f4a9503b0d8f0879bd3fdf5e25d37853a8c0fc553c8dbb724faaf236305ae9960b56afc4f270f78642c020a1fc7320a8608bfcc65c9f757ab0550dcb00a31cd9ef8679794deeb656fd6b01c97550149e556476b314244fb708d44fc33f5ce32610798686b21149a90294fe36acf6845db3e882688508e135f72bb03e032f9041ada05f5e85a98fb2f31708ef4a906717aaf6517f64b58e932c258ecf3cd06fbe525fa0a17a56704d0ce8f710d7b631e45e56a79c3477a259d3da71320fedd1486421dcd89c4fce7ebf732cac74d2037656cf977cf78bc8dfdcbbca0b30122eb79bde232763b03181408cd353ad749585b27d619ea1a1680d234435f60fa51669f4a9503b0d8f0879bd3fdf5e25d37853a8c0fc553c8dbb724faaf236305ae9960b56afc4f270f78642c020a1fc7320a8608bfcc65c9f757ab0550dcb0b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4822d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a0af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb1dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1971ff13de4018ac2f204d8e0cb4a7c30f750cb2b2ec36ed94c33f890ef98225aba181ccd4d1b3c80f4b8c727f6526322ec76bec9aa4b2b38cf1447328166df4fe00804a96ca16c5a8c7e9573fafa97145f3de7ef8b9a2c4f92876ec904cc8e00d4243364fff85335141c1dd1584ef14afcac6b8156563c1859d08fa716ef4bddf906950214b2ea38a5f0f7c7a5a6a6ee9328253d0e0cad482ac7e284531768c1d903696c13ac367d18219cc9b7f7bb935a0cb57b9e7d3ce80eb9cf043b476aeea23b371581b99384b87ebf50a3233893e1b81926a8343faa5cdd11a28ad748bad3359e1e56f9048a6cad77bb79ff4fa19cf2f49f1f3cda8d9839cc3e751b48e93929ccc29d5fdca54237500629f8b665e1a0a2b8da0d73bcdbe3ba78313c766d853495dd25ed74aa44720598ce08b31b8d4542494e72066f37b2aca7f0b51fa1f23b371581b99384b87ebf50a3233893e1b81926a8343faa5cdd11a28ad748bad3359e1e56f9048a6cad77bb79ff4fa19cf2f49f1f3cda8d9839cc3e751b48e9393d42f9edaf7b353d72b4f5705136b9544064463b70cee08fb306697083486b4f1b8a58b763a9292e92394598721020cf3d45bd1dc23574467f0f344bad60376f0a58380a94981b87a2e450aa1b995b9557c678c3630cc221dc505112261580c2068325cb9b5386cb1fa9f320448cd271a8e04d76cbf7b2986baaae410994cc94000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011cc51988adfa9bddbf04825e0364b0d6f78985a7302ca7f0f40abf0f0e194c9419c740145c297d228294e49ab0a74dcdac5107ab7147aea9b9666cb7818888050f23e6f32d636615bf3ed80f5d52b390300856755b4435d1228378aaa53af5d117945fa7911b5084fbfd1cbdfb91bd187259f5c50b13c21ca5f0d6d33761d4ad245ef57a3800023656419f40762d7ef573f8b632116ce4752fd67c2b30ebdec106ecbd33771d748e21ac89f798906235cf547a88bd0d15c6221cf1da6dbce806185437524ed7a9e5a54cb9da9f4be9be8ef8817e38dacc4aca8fbb32974b5487011dc8efba17b47935a9f10b93f7f876fcef86d2f70becc610f80e40201e619a3f530f091a8d214c3c29cce1c905fc3f09cae923cfdb4e05b20ee4a1f16724b309ae5be93a7679e40e9f0e0cfbbf123a2b04674b54fda7764ed3e1900588d3510caef3124b9e6c78e982f2b8ea2ab2ed955c4eacce0ceaff2a6d0904778bebf83e6b3bb7b3f865b5c8eee07f2c07977845441ee4110ae576cc3286d0bd9ae4071935a2fad27af26f8f8c0867034137f81634a36e5b935117c4ccebaaf5d736440e845fa7cc6ee2706090567921ee47a6bf9f871f68bbfabcf5caf023ca66928b1f7f253cb6289b9d463b12db4e3777b354c00131672784a8327041ccff367c471a50ae75b7ac42282c922e51b7f319ac23b9ad6f3aba4775e2cbc9baab95eb1f2f0cbb0abd9719d8bba3d99486596344f522850be36e4b4cb2aaa9f9e462ec8b177ca00447e5bb513462e473011263ef82bb902d23f5902efc86bae6c3ac8e7338039db99a20cba12fecb88aa3441f43b2056c77d815eb848ee15a1f309e02f939fa82249f2b298caa9f5558a812dc4adbb50cdd2455f7a26f4b3223f8ea6d4e1d52b98d0b4d83e6b738a4adc5782a37e20310873eb6b807cbc330abc93709203e919578faa754cd2659c4487762a0d367bd09f5e2f3c777b2495b78b67ad75f2407966530071cb09b047c9e476000ef7628b62fdb301f891e0c40cb5cc5e3bf1877ee09939876de919946af38b39633a65754fdd482995490ed826de848e2c31fd9336d69019fda986c1ca431e889e2a082505bc557fbd43b799d00dcdf670037d087c964537c7f4c6c24bea0f21f46f105246cb418f96eebe7559a190c9dd43d6aa1ca48475f7a7ecca33c8eaed0f24d6a443deef2c127666a466967b87c7223633e49e295a253db94b12b9fadcfa5456c4c69009332b3a35be6b44f65876e369349534cf6df747b73d50158a38aeb7f477cb866acad5277cbc578eac412d32bf0cd032c2d8e149f5303d345ae831b60e2bafc61efac80f52d7e689e52e8c70857a39242466c4058487f8df987a06d1abc6cfc08d01927e765085eaf47e1c206881c03c1f3cef4999d4305df16971770c08af7b9b66debc25a88215635370c26786fd3db8825bc338b280d453faa87ab32e075da25f6b5bffb777f881faa5a2d2f621f1ccfb40b6a58e08505ab504bdbc677bae9a7ccc141af2c47065bba91138637211487e10d96fb6d68a8813794e10aee194ba2f044c63a763e315e24742319c90ee3ad05b475c1f8cde24d41202fd1525a7849536aed8e6232c68f51de281805deaacb59e1ad5a66cde72835ec1287ff5347f11b774c1d792705a1642c3dfff2d62b613ab66a9a14a34c6347c440cf5ff629d2d91d3de8280974cda6f726c9d34677212e7db0a583a55ad83f819c71dadcc959e6294523b8309f1f0f431fb0c80810344c9e92ef891fa947bfcb1c5c0bf95e195caf51dc38e8a47a1b280cbd6854c1a4d2e84aef8f8d979fd10c54622679a5b77a214decc08c70cdcaf40ee420fb9486f4630464a102d312fb3fdefadfa41c9426038118f13aaa38fe86341139c9939fe2b466aa3900cfd9c4354133c19a3d1fc72fdf58d29e3ab8504909be8b92d4a8e8587de1661c7c4347f0fb3472a3fe9d31827e278b83608f364a13ad4b1c2ef1cdbbb11936639f789a64f5b65b3f8e6df8d9365847bb5956f1331acdfc34cab7cfbbc3655ba0a379c9560f174bfdfc84fcd725cc378c9010d97139663de3a45c5c3c390a8fdbbdd7dc07bbb3201bbf9b95aabe5f033f005497da061c3d7f82e4975084a58e038daa12460b882f722b102aad0ba0cff471d6530a036d57db9d851fe86e85d2af13db67e635574767cf710aed89bc7d8bd0191ffc094ade89e36dca61f77200d6e24d389b2bbd94be91295dd2564cc924300413663f5ce32610798686b21149a90294fe36acf6845db3e882688508e135f72bb03e00a31cd9ef8679794deeb656fd6b01c97550149e556476b314244fb708d44fc33cd06fbe525fa0a17a56704d0ce8f710d7b631e45e56a79c3477a259d3da7132032f9041ada05f5e85a98fb2f31708ef4a906717aaf6517f64b58e932c258ecf30122eb79bde232763b03181408cd353ad749585b27d619ea1a1680d234435f60fedd1486421dcd89c4fce7ebf732cac74d2037656cf977cf78bc8dfdcbbca0b305ae9960b56afc4f270f78642c020a1fc7320a8608bfcc65c9f757ab0550dcb0fa51669f4a9503b0d8f0879bd3fdf5e25d37853a8c0fc553c8dbb724faaf2363f5ce32610798686b21149a90294fe36acf6845db3e882688508e135f72bb03e00a31cd9ef8679794deeb656fd6b01c97550149e556476b314244fb708d44fc33cd06fbe525fa0a17a56704d0ce8f710d7b631e45e56a79c3477a259d3da7132032f9041ada05f5e85a98fb2f31708ef4a906717aaf6517f64b58e932c258ecf30122eb79bde232763b03181408cd353ad749585b27d619ea1a1680d234435f60fedd1486421dcd89c4fce7ebf732cac74d2037656cf977cf78bc8dfdcbbca0b305ae9960b56afc4f270f78642c020a1fc7320a8608bfcc65c9f757ab0550dcb0fa51669f4a9503b0d8f0879bd3fdf5e25d37853a8c0fc553c8dbb724faaf2362d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a0b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4821dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb181ccd4d1b3c80f4b8c727f6526322ec76bec9aa4b2b38cf1447328166df4fe01ff13de4018ac2f204d8e0cb4a7c30f750cb2b2ec36ed94c33f890ef98225aba243364fff85335141c1dd1584ef14afcac6b8156563c1859d08fa716ef4bddf90804a96ca16c5a8c7e9573fafa97145f3de7ef8b9a2c4f92876ec904cc8e00d403696c13ac367d18219cc9b7f7bb935a0cb57b9e7d3ce80eb9cf043b476aeea206950214b2ea38a5f0f7c7a5a6a6ee9328253d0e0cad482ac7e284531768c1d9359e1e56f9048a6cad77bb79ff4fa19cf2f49f1f3cda8d9839cc3e751b48e9393b371581b99384b87ebf50a3233893e1b81926a8343faa5cdd11a28ad748bad33495dd25ed74aa44720598ce08b31b8d4542494e72066f37b2aca7f0b51fa1f229ccc29d5fdca54237500629f8b665e1a0a2b8da0d73bcdbe3ba78313c766d85359e1e56f9048a6cad77bb79ff4fa19cf2f49f1f3cda8d9839cc3e751b48e9393b371581b99384b87ebf50a3233893e1b81926a8343faa5cdd11a28ad748bad31b8a58b763a9292e92394598721020cf3d45bd1dc23574467f0f344bad60376f3d42f9edaf7b353d72b4f5705136b9544064463b70cee08fb306697083486b4f068325cb9b5386cb1fa9f320448cd271a8e04d76cbf7b2986baaae410994cc940a58380a94981b87a2e450aa1b995b9557c678c3630cc221dc505112261580c20000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000119c740145c297d228294e49ab0a74dcdac5107ab7147aea9b9666cb7818888051cc51988adfa9bddbf04825e0364b0d6f78985a7302ca7f0f40abf0f0e194c9417945fa7911b5084fbfd1cbdfb91bd187259f5c50b13c21ca5f0d6d33761d4ad0f23e6f32d636615bf3ed80f5d52b390300856755b4435d1228378aaa53af5d106ecbd33771d748e21ac89f798906235cf547a88bd0d15c6221cf1da6dbce806245ef57a3800023656419f40762d7ef573f8b632116ce4752fd67c2b30ebdec1011dc8efba17b47935a9f10b93f7f876fcef86d2f70becc610f80e40201e619a185437524ed7a9e5a54cb9da9f4be9be8ef8817e38dacc4aca8fbb32974b548709ae5be93a7679e40e9f0e0cfbbf123a2b04674b54fda7764ed3e1900588d3513f530f091a8d214c3c29cce1c905fc3f09cae923cfdb4e05b20ee4a1f16724b33e6b3bb7b3f865b5c8eee07f2c07977845441ee4110ae576cc3286d0bd9ae4070caef3124b9e6c78e982f2b8ea2ab2ed955c4eacce0ceaff2a6d0904778bebf80e845fa7cc6ee2706090567921ee47a6bf9f871f68bbfabcf5caf023ca66928b1935a2fad27af26f8f8c0867034137f81634a36e5b935117c4ccebaaf5d736441a50ae75b7ac42282c922e51b7f319ac23b9ad6f3aba4775e2cbc9baab95eb1f1f7f253cb6289b9d463b12db4e3777b354c00131672784a8327041ccff367c47177ca00447e5bb513462e473011263ef82bb902d23f5902efc86bae6c3ac8e732f0cbb0abd9719d8bba3d99486596344f522850be36e4b4cb2aaa9f9e462ec8b39fa82249f2b298caa9f5558a812dc4adbb50cdd2455f7a26f4b3223f8ea6d4e38039db99a20cba12fecb88aa3441f43b2056c77d815eb848ee15a1f309e02f93e919578faa754cd2659c4487762a0d367bd09f5e2f3c777b2495b78b67ad75f1d52b98d0b4d83e6b738a4adc5782a37e20310873eb6b807cbc330abc93709201877ee09939876de919946af38b39633a65754fdd482995490ed826de848e2c32407966530071cb09b047c9e476000ef7628b62fdb301f891e0c40cb5cc5e3bf37d087c964537c7f4c6c24bea0f21f46f105246cb418f96eebe7559a190c9dd41fd9336d69019fda986c1ca431e889e2a082505bc557fbd43b799d00dcdf670023633e49e295a253db94b12b9fadcfa5456c4c69009332b3a35be6b44f65876e3d6aa1ca48475f7a7ecca33c8eaed0f24d6a443deef2c127666a466967b87c722bf0cd032c2d8e149f5303d345ae831b60e2bafc61efac80f52d7e689e52e8c7369349534cf6df747b73d50158a38aeb7f477cb866acad5277cbc578eac412d306881c03c1f3cef4999d4305df16971770c08af7b9b66debc25a88215635370c0857a39242466c4058487f8df987a06d1abc6cfc08d01927e765085eaf47e1c22d2f621f1ccfb40b6a58e08505ab504bdbc677bae9a7ccc141af2c47065bba9126786fd3db8825bc338b280d453faa87ab32e075da25f6b5bffb777f881faa5a2319c90ee3ad05b475c1f8cde24d41202fd1525a7849536aed8e6232c68f51de138637211487e10d96fb6d68a8813794e10aee194ba2f044c63a763e315e24743dfff2d62b613ab66a9a14a34c6347c440cf5ff629d2d91d3de8280974cda6f7281805deaacb59e1ad5a66cde72835ec1287ff5347f11b774c1d792705a1642c1fb0c80810344c9e92ef891fa947bfcb1c5c0bf95e195caf51dc38e8a47a1b2826c9d34677212e7db0a583a55ad83f819c71dadcc959e6294523b8309f1f0f430ee420fb9486f4630464a102d312fb3fdefadfa41c9426038118f13aaa38fe860cbd6854c1a4d2e84aef8f8d979fd10c54622679a5b77a214decc08c70cdcaf409be8b92d4a8e8587de1661c7c4347f0fb3472a3fe9d31827e278b83608f364a341139c9939fe2b466aa3900cfd9c4354133c19a3d1fc72fdf58d29e3ab850491acdfc34cab7cfbbc3655ba0a379c9560f174bfdfc84fcd725cc378c9010d97113ad4b1c2ef1cdbbb11936639f789a64f5b65b3f8e6df8d9365847bb5956f133061c3d7f82e4975084a58e038daa12460b882f722b102aad0ba0cff471d6530a39663de3a45c5c3c390a8fdbbdd7dc07bbb3201bbf9b95aabe5f033f005497da094ade89e36dca61f77200d6e24d389b2bbd94be91295dd2564cc92430041366036d57db9d851fe86e85d2af13db67e635574767cf710aed89bc7d8bd0191ffc1043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a1043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a3ba6fdac0b77d30417b290295f5091155d781ed0d0a66a28e5a091ccf9031fab1883d6e1d3620a99d127d8cf8f9f75ddfae5984b4c8b4ceb80eeda5649fd19220b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc28a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e871e6e0637fbd2eec7f53d9274a1ec6abff0bb5a737b45b8caa2d0031846ce7ac63e2a62af0c0ec157b4163e558a1589e5f2ba4a4494e1c6ac46d6793eed0d61503aaf8c3339f1ab672444e10a08c0dc0efc9e314ea9c148b218529c30eafd8e0a2b14b240c176e1fde32638dfea6520d5983e5f855c8c72873458769e662a2ceb1d6a0e5afb7cf7e470de56335d310ff0d4c2db1069fa5d8157b7ebacf070fb0905658bc419c6b4c20a8cbfb280bf03d8dbdbe0984d0a63bd1af5ba6f8911e8a8127381323f9fbf530967dc8447c416a96fa1e32b0b281b6702eff53454096a4115c87650577b39bad636654ee00feafcc869db0b5eda86039ff8dfd84b6c28b939346cb03db80572a9e11b78b224ea3be1e5627d6cb4a161201dbb1881b7a39c3edaea3ce3b29d21497258d0f1510c6ad41157af8be9aa05e08adf2916c3b85a127381323f9fbf530967dc8447c416a96fa1e32b0b281b6702eff53454096a4115c87650577b39bad636654ee00feafcc869db0b5eda86039ff8dfd84b6c28b90aba3c0ae3f5d44b2eaf76521f4a79bb1588c87035dc42cfc5acb78db015bf4f16336e223958af763698572cbb2d5db8372a6343c009f1ab4dd5e65908446cf61e224492f0ecd28f7e1ae56ccb5b965df65fa883d72bb44e8db5d426a899dbff1f63ce81344361519080b8dc3b1e35bb17828eec25950687d646152a439c2c5b0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000107cd991467d98ecc1f174f69b3cf8bf0b1976a8ea4e81104070b183741ea18a9177b9baae372d9712012fb537e9fdadf97cea8d618ef30458fc621655fcea19c0eabec8a14610c3856648a3897d69e0eb18307c4ae4cf817f17cedf7c5e4cc4f1f88050448226a97040f75754e25139bb0570d8e99af8eac208e84acc83a179d070b1d3037a8998b521c14d2a1d07f574413b06993e70eaadc2d95ce211d3dbb2777822f755ea05294d70ed7b1e66e7623c2d6aef461de92da5e2d26a7bfd3d00c834ab853614d17846ec48b4788755a7a3fb4ccd908ffd802465fc9ef4b80c627bb4b669f0c3f74e19118b70e9a8c5c7cfd5b445c1a5e4bf984d8846ee3309e2c0256abaff20e849f8e28fe8e78405369bac6ee4e4af3bea3388060dad1ef01132ff7407f317c67194eeef4e6f06ffb863ea1bfef1822c21a8dec69d1b30a350b5eadaa5d71cfc010951794a17606984a75fe920f4fd04b2eb8c97edcea0621142b4dfc0c27060ec48ccaa8c6aeafebcc4e78b9597c47eadfc16751aea555c02d873d6695efa3a93a852470debc527b02e0b56ae5a845e7b0e1a28e4270f8482b2356aa9f2c4e107c4082226888c155e061648bd4aad7047766daca7916121731c9a260c5eebb702bd9b707a0d331a13b9ba26b30a96e5ecf4e4d9609e29a2a07184a2826f745b37aaff3d111048ac514386316cd9b7554a900c4c089c7df2525d254bc7d742a082c49e4329a2f1fb98b45cc8474f076dc7f29b81c6faeb61e006a327739e8634a68044a97e38ccfa47d2c62f492be109cfdb36fa2e50498c806bdc2f66d59434df2bddf6154113e9d882953541aaab57a10903bfc9787117e331cecafab7c9037b4b82829d6811744d132c2b36c52a94f878dc49b3a3276412f8a528c4c27323ee24ca610384ed0116e93ec75d4d167e974ca3d327e9a2caa1f5453c9706a4a025229425ebd9492951cc48ee280919729bd85120d0411e4af0cf03eb1f74a7f111a7d41335f7afe88c3acd0a698584562ecf39a35066af6a52705e3c19f4cba43af91ead2da566f45b5439a5e4315b433d9a0537bf30052e521f3a508aa2a92778a66b50aa6ecc219df8c4e081bc32bfb1efa007d32f54b93338663d7480f6323c6af4a541b408fbabcf655c549db437fe3a006e5ea2616900b6d00e793bd8639360aaa5e93af62a62837fade57aa044435c73b08bdc6d5ef3d19837de103456d6c9ca8fe8ca15476f5bc8e645e93533b9e8cc1af889842563a7e1eec500462cd49dc6019e6f0ea97155fb61a6e13c0bb5c0c6747c6e47cfd0bc677608f8a59938e462678495e3104f0106d7c4c98e34af7dae75f8111aaee36cf28f487309ac7d025ae00a496aebb27fb8b9fa6c6ca549efcd3d07ed555b632b8e0e65632e5e563c8e1128c381a8f46b7e97a9ce30cf202c347fee9090f291306c8d52d1017fd96f78aa2bcd962cb2bf443001db53dcc10d06e80c4d749ec02294b70212e847623f4419352838b39dd682dfab88df5c65fbd306c42928a2c1b484ae52268df8a449e365ef86abab3e56ec4845701b32a21e8d5ceced66da92f9018badc0322a95be61ddf228951848a00d4179b72e9168969b8a2e7aa8b6933722c8bf2a85ab5294f55913d8f20c65c5bc0f3375ef3cbc7bf3fbd3bb307780417652f8b0b413a761ebe096def04f0e48030dff3fd94e662f8ed5d89a6399029ed6bb25ac21c417bcfe687ffd5ee748c8f69f36abf46c0861ecbab95b3eaf90000a4ad422bd2c7c7727c8fec5dab3769956033df1c40fb5a98f75bbe358a0d283e254cad7238fc7e2fe80df46539f941457df46ca2e6999bad8b756c8be5a51626aeeafeb81001936b6d0ba479319c73f1c4cae6632e229bdadaa6615a6d9738fc69db4646d84c91edab319fe360bb3acaf8835b08dcb38e5b4e862e25c8b011f29ddcd5397f0f801760416167871f3f3576afcbc9ab5dd0d28b3e64bb4966111df108ccb2859ed1f350974895024b5e2ebe74fa45e46f1da5eadc3bc78d290257920a7d1c296d175d0e80e61439db6ba1b942b170ae365460ca72d22c386f18639ed24240f76d15bb2e5e08799be36a705156178dd55c654947a7c6185fa424e725cfcf9eab025c3a75eeb1efa7481cb0c5575b037239a2291c62c651b9a61e56816992ddd56206d8aaea597da34c6e5007ff6ebcc913e67db65dffc279a71c632d3ee1e97561a2d55a63b3fbc02869b32856030bc899f3f50ab4e187e348307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab21307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab211daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff41040c9277dc8c6351fd039b70656118046072e337c872d37814fdf794ba768ca31870947f95bdea9c3c192cb3bbf7effe29d0fb7bf7284c1d7e0d66acf118ab0301d31d12dfe16fb786dc57c6e8747c7dbffd151ce61faae4cef5f41a07180ea0a1512d88975ca686798718111f5436c9ac2d9b4ba608e39bb61ba7ec94fb5cc3b4efc924d0f7c35013ce4a6204e41a0d2af57decb24efe2da4b04941b8196660384ccccd98686b104ecd67cc9166541300db26d5a288078ae60ded9504acb2a01444d02b0f68c8a15244aca7777246f0f229f53f481e8d97c637933f42699f6303f57e3f35b5d7b1330f25c1de91dfe5560a11d88c671b2ad2b21c643f4334935705bc03969e10b81c3063b89f4985eb328621906caf853ca0348347f0337803eaff1fda99cf274ec44143257d36d2aa688c4542941c328302d04ff1aff04471214cf85c2e587bb2df17725784a51fde890d617760a890461736a885b0292991beff4fa88b7d946ab3e1673543d230eafebbe4488d4311996f27ed5e57e355f35705bc03969e10b81c3063b89f4985eb328621906caf853ca0348347f0337803eaff1fda99cf274ec44143257d36d2aa688c4542941c328302d04ff1aff04470310e392b7bfc261d9d4450166493780a504deddcc6b22b0c0f59941b6e8983c2592d74d6b734b6831cd72cb2971813a80c8eb30d48f2b1936168bc8afaadc7401b6a62cfdb824ebd6775569f045fc1f088839689943ab9bebe6beee6684e561211f595cdceeca42153099601ff147d071c1a2b0872c31fa7a494eef69cfc604000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013d832d5751f38d2361a891dac2847eb390a392ad3a680ce7b277e521a48e02e33b49c52a5fad048356d49bf9a0b056bf520be8edbcda73b5dbdfe93c28e6442f08ca65976458382e22a76042fb1f6a82ae686bb13d93837bc049ec2896a86ac902ef5a0c2ad4b0d970548d26d87d6353b221679190153c66cf05ee0c3bac42340933843c157921d307f024dce0e8d968a632b164c70ffcaaebde5010aa215e080502d6682c21d67fd90176c66ea5460f34074809187fe09acc244ab1f7a04e2237e5d479e7eef3c7ad6dd17bbb1cc6efd848dde8ec11bd3400e250c38e545f5514cdc59c6c2557cb7244f7dd9728b147150d554399b2c089a4eecbd7e6e08f940c9725d3b7a60b9432c3aca3bf6ba34692dbb9d4446c6a6a5571bc64396b3d9d162ee13c33b69bfff42a279db7db55e44c555f7ea1d182048305060448d3f80605c0dd532ae7b8295dfbde57ec930f63fd79c955453ea1e3715d81275959f3bb317986b64c95f04b5fc539f366ec24625d2752f76ed8a815c476e7ebe67fd02437d571d180ed1d3464cd1044e2d28e29cbcbc65de0f55a7fade0bb4ee42d9f8332d7d942f9ce7632f49b210eeed444205298e7f3f87b881127a0f6313c473fec39e2d897a1b21575783c367761c56a361f5fbe2b3fb1bbcffde0f8ee710c1c3f3a6505cf500be5d21da03dc1f5a913fa6e3af38901ddfbfafbddbd710ce3dee42f1b2b67b761ccba01383ba12e9eb6ccb33a70b24d26de4678b568d71f03a6253aab9682018a212897f017dcdfac5cc313a62d54b0d9f128de883aef62085ba90ae15642cfd907a81e9c4d655f43b5f9c99c08ce8ba4e3bbcb64d95e7a6fa0da0a1873919d5622947f1bcd7cb769fc6b53810939dcac7c29bfb593f434eda821078de98bd2ac0489b0128cdfb2f21b0f9f976b8ab4f6b5616e5f4889597b0fb12294ee7ebe73e073be321087cae9aa48f5e07cdf03cd5cd3044dbe181a82f00c2c94b57047a8110cfea361f2e078d8355ab6cb5644f361ec9d85d4f0898805580e94c838a485ce7b04a81e882d135b86715f7ed27f923cd5f7c4720d8e8224dc3c39010d0e5ca80b5acfc72edcc144b54c36b0b57c8aec130e9fd92e18e48d50380dcfb2df092211ef6efc72b6170aa6dacaff216443daa2933adb3b42c15c400626f0bf01e6d053270e307205a8ea9f887f3ace9421b6b1eca6aa51152b041a0cd1fd2355ace86f7d6450306e0a022dc607cd75100a659ee048bf893e449d9d3468489ae215cd5f5fa9a6da9697ec94e5f1e5541ce6e02c7814251a00bc3608245bdfa1041f78f109958e6aafebda3706f322417949591deef2be4cd8e8e9490890e102b7f312cbd513cc72e3375fa2ba010d2bfae0e07b392c9be8e0e9a05318cfb4f5013b62a06d2b9cec8ef3f8db366a1b7fa1c8db216b7a92658642bd4930fb6b51c9ce6a1d87fe201982b87ba35f2c4c101565a6807411aaf556f15b6031138301b2aeb237776d12d18bd9c6b039c97a2b5feb20b9bcbe0e3fccc9b25c1d83f680d7f38be6f24b0bea509471808de1d4820d071252ea4bca973daac3321ddb6d87dc323255a975c205f1773eb42a167f54cd1adc720eba18ba2fd1b10314e9d8f1edd4c0493b591abfd5d7c900b53b3e46faca612a81a7acb412096ed43bf0f75d81b24d8ce266094e30386b17ee055bac325443421b09ef1a8f9e75c43d1284a9a4a46c8aa5122c4719d6539985eb2eefd25e31cf7b68c4cac305c5223e8e8e32355d70c1d84c88a2fac660ce618db4e31f3d1debb0b1b66e8410d74606b1217095a59093685ea591242a9d21d90193fac197fe5aed4dd22a59614b083bd99a16efacfea03b5f61a42dcf2f9ce11920e978cf72552e0feef0cb1009b80cb1a32e6b39090ba241a25d524ba4d9a7a5e5247a6ca616bdd6d9d15fb7211d0c0152f9011a05c39e3c32f5ee31bcc2ba93b8717621e07610d31682c11b326c010ba34436c47d361a927f3819d850515dc5e6de9c9989a234c18435e1cb97531e87181643506ff74f917c55aa4dab4eade31eb8cca435d556208c97d526696101f73b5a77865b4759fa089d025b70c7e75ebbb2b28090b91d6dbf26908dbe7f0d0d5a7fda90c6d3ac56a5ce1f7a49629c63b9c846322a0ffb1ede0fa0a2ea2407be20a12a5f4baa852aa228ab93eedc4321c81a391906ffae06c6fd797e58a215bc770ad2b789c8c4496ea3ebfa5438089508f18b66c6fa3415134007211e691ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c692150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f398196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f61ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c692150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f398196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f6288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc73502405abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b32a541dc9aede8050ad6648812a33cfccec8163996bbfab69265fbcf2ef361c4e077596ab5d4f14c7435038a9742be3e6b737f77900011bd2975eecabf38cafdd1153c84f592e126fc3f1f0f20bbadd94f35f1eb7f65990d2549a7aba8284127f38fc1c0df7b9b2919072952602cbf7174ee45ebbee63633b443106eed2c1c2ec01270d2f56ecea3e1b2a75e90d93be05ba29bbd650f57dde8784b3a68dc781f7075dd1b117312a9d8a06c31011344d9a01dfa69bf89621b429bb8f33dbae0d86192e3ee660fd39226aee0bea6ad54ddb98f9abab4929986c135f5323816ea52108ea80bab1eb868323ca07cb55c73606bee844de917a21bfbfa6dc19489d7fda3cc3da9332bfc4c2de3e80fe3391c67d16d585354e9f5bb7a35c091c3573e31936138aba397e4b359850d5fb9c7b4480ac78da8f3e8a5266fa48e5c79b6275532d2178e1ae70947695e9f02849f81419f58ed31a9fe1a7cbf077ace14456939132de871e518f6b896a160fd7b607ebe63ddb125f6e11cddd754c1c823ba96c723cc3da9332bfc4c2de3e80fe3391c67d16d585354e9f5bb7a35c091c3573e31936138aba397e4b359850d5fb9c7b4480ac78da8f3e8a5266fa48e5c79b6275530c625bb64ab2b757e5284ac022d5876bd6a163865cca8c33d1906267b895b0c202e1a0ad09302e70affa09e470781c2aa53a461958dd93735097393e52bb0f591148c5f0078079278f0071002b6a0b381757985374deeda3f8434a2ca9b57c9a084b1ad09d4a31a25a8669bc766a6d0a8480f5c41c392cf52982a235b6e118eb000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013d9ba56a20ebf966144e9b57a8eb956f338749c55b81838fe3c6802201fb6f84319158984f800818b8dc621c8b6de6de564390e0af79033ed30d33eac409a05617c38fbecad253a41da5e0b7b3224a0e914897fe0bc9e7206484766ef9597a0005c43187dd83b9ff4c5dc0e43a1194b52bb768b0d9aa89c5796f5a7ee99d0c6429d046df41a1d723923b344a4a33e191089ac7549fc9259c2f0e1cad0c0144070d1e7f2e0415b0b0911dd4655390bcddde29a06493bd2fb6469895c6eace7094108d2c3c7416e9333963126d143e609bdac300b17b1f12cf538520ba8c89f2ba3bc607a23e56cfc0fc6ef3d645576e54616d56f8a6e7c2a8a0398afc0847f9d616068f3cbca5c44bf0fd38bc6b658c6024ec821bc803bfe980b5bac296956152340bad9806b42d9054d88184b02dea8d92260c8f6dd23deb76bd0eaf3cc3db6a1489077f79d9a39e61e3c852835137caaf01d68fdf2224c669e41d2153bc8fa83b6046b76399e360c7b370cb5b82da8e7d512977baf726151c187588ae1dbcae28d356df4b6ae98e81752984502997165cd2c4062bcdc259615a016c3a93345220d9d89cf8e9a7b1e093ac45f8443d653aa5f84996a1ccc178471a53b7182a862346199401f400fa598fc60bdd8fa464a6459191b1112f0f865d39d1dcbf450529eb3df50e2d9d1483c04b7073b2f0663c54b40786024508a7a4e3f0576f4ab334f332497af673c656398346b0b4b53f7c467e0d1de7fe145dba6f798e50f04911acb02e546ef6ae608ac6da5d124fe9dfcdf9ea17d63cde2f35db46e1422ce93c0d8428cb9f6adcac3a829c14f461ab04fb9401bbac5e1490a845cdda35d5cd0c982502ebc94445d22b726c61eaf8d6a57e991506dab5db04c7d060666c487335d347b2fe6a7af1aef8b9facd2531b0c68365e380504133bb03f5599580a7ad3a15b070a6fae36f514a1e57a78ec403f7c14fbdb1fd51c788ecbc65d7adc64f1063a867e20a9c9bc3f53506d2cc6867874cba4ee9bcddc16a05f3b1aab2eecd0e6a9a9aeb645a509e5e96639ffe121a8280c2107b72125adba0453601d4d2511414f57c0b834872381154d15ed479b91a24d78f742cf92339ec426f33960d2024970fb294195240b0e274c811f3e63529ac015a78c7f4ba59ecd8a6a2efd2af2a40465f19008b8918645b814279d1c88f1b179b09dccf7631d3c076fafd68a82cfc8cccb748b78afccf881a0879ed4368411ce3b8d60dc4f0ce7da72df3194011c6cc3b12b60d746ad0cd3fff60dca9d469eae207902a5207be011af4ee0fce34bae4db68539e20e4416218f9855bf2a9aa6fab403a0e371616b30eb7f7111f0187cc4b674c2c51718f2687906cd308866268a419f79c23436e57b98f41a2cf37cfc028a170389a4f418596f3b77189c89f93ce8bdebf1619b5616afae1c3bd132db7816998f30f4b766b0dc7608c4992222460d99b43f5b02119af9057319538f63df414640beec935f678c8e800bf2c7a01d31e82e9193f0794d8c8064ceb3073c5ac8b33937f30a990fb3dc3119c62a373d7415eda72fb00400a8c3006b53488be8c296b67d30c025026adfbf58f553fec767d500edc3324a88e13288114216ee5170bcb78e2f86a3b4a0fa17a44e369fa1df9c43cdc0153e6d0bb02ce4017855decc6858f4763210a0161158aca7b7ee605ea1024f8d18d40b261e3c18133e1618f64beb5a16cb0db50d737ce2bac26238ca4bbbaddda3902759bfd6c8b1b96f4391a0d6ea97cc2d9a112c143984901e6f34082bbc06b1af3a312027952340e57b36eed5f486af653e8410590ae107d3b7668737e8039e448a53b5b79e10095f991ded6909625a967c5455b335108ec1097dcebcdb5d209aeeb4c8192eb3f29310ab81f56a0f65855ba9f17a1b41b22c0976e343921ece09b9e8aed3e402d8728138571c687e8d0c5fe7abf8a63d04e6f0cdfdbee4e4cba628f505e4b5d102b8c8f5fcb744b41e0ab029f96813b0251f5cff4db33fb86bacf704d42875c0ce8f89d097f3bdbcdeb80364cba43b4b771f07a3b83bba6c6be688fb1c5b55f16a1df07e5433bd567f382202d8fda03127403a4dedfcb9f42dfa2bdee9118e8058025a18a0ff3721199aa85c26ca5116243584a34e62f173e86d46bd3e0ef0429e2292e975bac6f85e17094ea27ee591f99d85e431b24e0ad5f84bf90fe1f7b058ca254ff9c5b0bdff70b8eea25a96d40d3f082bc8013ea1595777187c12abc1b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac24fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a60215507121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a7235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec21ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f30c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c80f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f046391b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac24fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a60215507121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a7235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec21ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f30c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c80f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f04639132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c83614840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d31263feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d0b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c342bed61af12a068269a5db3057451efde070145726d01d52f5bc67a7ec63d333d5eafbc96ee19566bf0f54485b4c58d8048d16c5850aafd92e5e7db1c530647232e8c181273ab6072cf1e9c8a11b654c69644830c2f5f9948f98b2f5eb063160d8de0c8564e8b3678fdc6ac135c62295b66f230827010b96ebe77093f50cd8b240649b5bb4f4d871d4b6896d7e024258a7958f57c2ed8c48ee412ce7fcb8e220d3e0f4f64e777b3528529c553f8ab0fec08b3cede187ffa0ec88648ba611172230086247a469bcb4270f361e752adaddcad693d24550e9e2dd444b25ffba12e366fd69bf31349f99c35c37b1c54b8ec1ae6392344ecda412b8bb3f63a32c1752ce6bf9402cd9eea8f5df647a4c71b624ad41ddaffb8f877d56e0dc2d6eca15020055e73c43eec6fb6affbfc204f597fdd2137a2597633cb71d8be23559473a0230086247a469bcb4270f361e752adaddcad693d24550e9e2dd444b25ffba12e366fd69bf31349f99c35c37b1c54b8ec1ae6392344ecda412b8bb3f63a32c17507b84ef2185dc20c88214b5382af44e5fbf1d259af3cbb7957c71a8caedf69af2ea5f052917a6daa99c6a0e6a946016449ffae0bda0c1278d5e5d6b2b63b693e09bdf445c2064d1b051a48e22cc01ed0e8b9cb8f277f5679dd28c73e6290594e1e2ae81d2dd29c5aaf58f64f8a5e3ef676fa559019ed3213e06b767c9da3bd17000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010fbdb94e47d80b00c39594e72690003494eda25bbf1b259e297c3742706923dd3ec7a54e87f6d50568da743b2c4630bd8d37bf500e872e4e1c275a79e69b89ec386197dcb5abdc2f0a67527782f03fdc53062b18c35cb4182378c1c127a89cd22d237a3a12b3630a0336dda2b8c52777ecaab5434fc58c004db30e9e613a09ef26f930d6f22fb7db9e570a574b2d0692afdd65666435859664f9c69f64a76b933d44b92237cdca4feb15aed4c26dca4f642f3e3a78ffaa9752a970472f77bfc304523907e3f052ae73478779ca0705438651f4406c1a62934b321e6e5abbb5e139c82d98b13a960dca7dbafd9506a4acb4d75a12f08966e24eac4de237593159132399a54ef4f4b95d86f91e3290b590b019198e9a1d7042c78e67af4619c5033cdf702839ef497009c404fe00b1b04536e527cb8df5a58b7c783afba0fb94a208a4fd8febcb74e1fca4cf006fc2199b6e9a578630861995b2b608f94fa81a793938127d1c0de81a774cd0a8086038fd4d9aff344a0bceacc2bafc8abe60cf811df9ba35c665b5624f17d8544a1b3dd57055dc290c4d6ece429dd8df0367a4f22a621f5e27783733d3e79a40d1000c7bc07387b437a126f627d5b9b7e64f3e0434b3e8a7b30a9d0f9aa8283af50e04b0dbaf2c2ff1c07bc026cad685fd666f4e16d5ecad89e6677f22dc4e94ca3b59280d630f5e0929d84e1f91fe69a698effc03be131f420526b5270946e40e0990c45b3d90c1a2a3fbd56b5d111135097ed037a95455f20157a377dd68b0f4225596bafb3e9104566ba819ab45e308e0c436282c90b1572d2c094c013d649814f46de72a76a306c4e1a0fe161dfbd5aec7223319f63243bc2280ef8c4636f0b535a2a9b1197a7158c173ee9bbe309e620668330771db22d8fbcadd9cefa3f70d4d61c40eb1869c5c56252ce3628f5dca086d02f413d9cfcb502f6f0a04ad70c6f466e3f3adc26eef29721855baa0bb486ba808ad0bb61c2db6e2d7b839d14b4fe346b53146b82dcdaef35390ae1f4d230fc213b4d4bb5d26920d6554dc8113cb30f6d80c5747a636488849db49368e30e3191a2ff394c241edf20eb016b8c51544f772c8d66d0e556983a2e2c40d8dc91f9a0de00ed42a34d2566cbc8a2215cb6c40f6d467bf10f12030999eab6167dd65653bd1dac68d0e555569e04f6f57d2b28e3574b944b46e892f19d50701f00a2c2d3990b0e60200f8c3bd9e02270df07e51bc4bcb2dd829ef77bb57c6ecc116455b1343ad3ad1f6ce72289a3f0cf1c19f3c08e99364788734b2b53346116ad0a0c7085824fa21447daeaa45cc7dca8fb70877bfc237686ec6c035b4c753ef1c45f428ca366175053001a2314d4669fd7c12b1076c99ab774b4a37104b7a05cb007e3490aab09acb3e0b82fa5c37195d33455240b2528d86835acac8ad29d7b0ff54104004715efb9d4981396663691f54e52da3d70afa1ddef3b11171d00f54bf8f18d8edd49a19b99b8d9a6db2bdc15f25241d9b2411caf4e7933578b9e4aaac43114b3c64383aebe32819127ef77682d2ceab66cd4261d1d868b7f94b550fdaf80d706dbc76175de04bbbb2495700b40b1e20f1a3b208a63cac303e1d8c136c6839a88a2023ca96a66d426ff71a60f5cda39d09e0e804aae9f746ae8c64e8616432b843c2b588742e3a7e22a5977930fa8958828f9d759676baa89d68c767f59c2ae506a9720c8de1491c119a398ead306c2ee68de1e617736abc83ea6062488b0bbfa7442859c2be019e1990a62b34054eb8204a700d6235f03c87f4b6d0d2ad38a91926e49caa10649300d14d1d6769f2e3943357a5e261f822fbcf78de897f02b2aa1ae57ae62fe1b96dee6ebb8fd6f5398fc9486a3fe942dbbb31847f285c2429350ab905a0ca7874231188eba1c63841f1a163b1bc8ca536dbb18e579ad40b27fc6af819ddfc35c520bf769e4e2a886de807fa3dead2338c6fd39790cfc53a1996abd5c4243e7a84d388334f33c304d85959e66675cd1ae9fabd8bae11f72ee18f8f4cbb7655c3a0d398c5940dd681448dedcc5661fe8424d8e59f5edd1a1bd6ec904b6203a9d754458c81ea5fc424c36bc1134825356be592bcc92145762b429b5002228d9f67112ec9adeec6b7b5f468b9edd1408cd2bf3ebc5a5c493b30bf77b4fcd6ea8270bf7e5582ccf9d6795128519d594c4e3bb972409576517c1e294ffe5baf63aa7558ff0dc158faf7a69ee6d7a219a9dc4e72f8e2cbb469d72042ad6d44b85d8c2e6cf1da18bbb0083196e509bf2b27e7fb20497e0a4cbfab1fbd5292bb47a273d1930e25e7444ff7f0afb3f24a21d1339e0ce76ef5b34056214d63225799d3bce820b9427baa7028b3654738a93dd550b5470d9c337fbe551eb29cdda8662c4317df46bd84558fd76ee151c3600f23cae3e62350cc8041ac2682efabb60122b088a39e4c6a5430cb3c6d32233b9b385c5808e233017eb7a7197d105449fedd4f775c61b395abcf34e5d966d8cdb1c0bf41244eb9fe81485a008eae5a8e05ad72ab32177e13a4f3f7c74e2fbc0e212e7aeca4d838077996403f7151a571fa528d54cde881ec5b0c085af8693ffb2bcaa0ac8858b4f88669c12042ad6d44b85d8c2e6cf1da18bbb0083196e509bf2b27e7fb20497e0a4cbfab1fbd5292bb47a273d1930e25e7444ff7f0afb3f24a21d1339e0ce76ef5b34056214d63225799d3bce820b9427baa7028b3654738a93dd550b5470d9c337fbe551eb29cdda8662c4317df46bd84558fd76ee151c3600f23cae3e62350cc8041ac2682efabb60122b088a39e4c6a5430cb3c6d32233b9b385c5808e233017eb7a7197d105449fedd4f775c61b395abcf34e5d966d8cdb1c0bf41244eb9fe81485a008eae5a8e05ad72ab32177e13a4f3f7c74e2fbc0e212e7aeca4d838077996403f7151a571fa528d54cde881ec5b0c085af8693ffb2bcaa0ac8858b4f88669c11dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb3ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba2e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b3333a6c18bf778e668d61325e69e25d3175cee5aaec8d1f3ab9c818b7019ff2af38225810aa0ced9279f11d7bb6bd5fdb922d34fcb89ee3ac44c8fa2bd5f655bb1f13ecf097788ed6fe452dff23942fdd3aebe7d16e25130c9d72d7314d671511286dc7c63ba70a6f3ad2c69ff9b9934f66601e89f4eb87d44b977e5f7d9dc8451c70686c6ccf34410eeff581bdaac669356723247562a74c0d699d751c4452860d81d8e6f70b78783550c923d3f6e1e2e57f77b631c25142f146fe065f2b794c225eb35e5e6699b01693ff2025239088d5968f6bb9195fd4230a1040425b06e116757cbde9eb9f5f59c6bb6da6ff3d7d9e8cd24ddc94847971d4facf87ee4a1c2336bff60430d8f218dc08b92f81d10147de057f17abe549424dcb46d17a65b20672a3fef6b96f4283b5bdf1bf29328392c5f009dc8244c23714beeeeb608f54225eb35e5e6699b01693ff2025239088d5968f6bb9195fd4230a1040425b06e116757cbde9eb9f5f59c6bb6da6ff3d7d9e8cd24ddc94847971d4facf87ee4a1c3fa55a619d63d535c420e506d77f602bd8fdc2fea70d92ec808b1d33d3d955d304b98db9612503e92443ca7cf18ce40d2933312886b225ff2f4405a7ebd2f86820b6503a8bc3e9c20db16cc2ef7b7e2fb237deb7411e8df9523508d8144d455c0f055c09dc496b55e205929afa3083161367fe1f7f333ba229d0cb0c82f55147000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013fe09b2a7b9cbb636c3e1e8036bbf71c286bed82502c6a779d39c46e3e4398cd28e487b81ef2aa59cb55cb93375ecf3499cc12964e11847917e10cfa34b479e72481258db8323dfef2959a14f20a698ea5be08659071e32286dc1dbf76d2d7a60df177d352543d1e324da0b7b4debcdf1e8ca8c2fc2cf8c6006a13d9d6c9e60805aa9065091ce82966ebafdf61f58bd8ed6511ba7aa75d81c10cc225f7a5099f1c36fbfb00f2bf5b1963d92c31c94bc55f0f720ed5e9cbfb5b4431e601a82c5e0aa7ce671053eaac33001ce7bd4c77f27defba86cc0840215dc44ffe1354912a18973e4aa85b9efedfc1102516ec70a20ad50af95f87a69530993b537c067de01a92ce4798baa574c7bfbfea7bde8024dbca94fb85a08bf6ae99f566788d052c009032154aecbbb19e8444e316492893f5a9e6f773ff01c5dc73895e95f0d20702ea221a55e8a1784f03d48e3ca79ff4b6fa4287db15ae1623a025c31a1eb35509f4abb59da884fff9d09609b14ca72a5ed0808b28c02ce5f304d41099f2a7b823636db5703ab1dcd748411083287be900a02762e8a354eebe282467005dd82b3952b411e8671574f9c096b7b5ffa147b5d82e146d0d57dd187822c5c5fbfed70f1cddecf1d23ee920ee629c00b2a8aa4cc1d80284792274d80502a6af0415c53f76f15c754d0d00e9acf1d39d79d7c344c6f5eb92fe2ea044cdbc4b45d419ad3175a9a970dcf98610ce032e7b7501452fcce482eaa6ae8969d623a8b4a15bb7281efe5ce357c84999a9f5f22925e0cdb10ee12e64e89a8ee051561dbc90d2d6032282ae9aa6f2e9164b5fb86258f993a747b5a78c0a12caf7695e913b90219802468ec9b7750a9e304508aeadf3d15101a84852018d1a89b13ed20211db92e937b11f30ceb1914247799f1649b3ae04cf50aae2222eb355139d9a25515cddcf2fb47ac77571664eda291aa642dd392ccb29f9cd60e20cae42415e11f381c479367703b72014e7ae6c3407a2ea73ddbc35ace7280bf425cb18f23b15162b3fab1bc7ced06989bce94fb771a15690467dff88a1c122afd6c0b5d4177764039bd415cc6823cf0202eed28c577f713b6a4b2d6ffa5a25ef82ea7f0f0380cc98406a29e1c6ca3f676f5853b447695a956c6b6136e9319d2ebc7a8250001f8c159dc714c83453c2c8af778ce5a8d649d54bee481a83717f0f1cb012e024d947c4bf7524d1fafce0af398adceb4505c1268e4d1353fde9ba983f475f71073a032914be3f4a858bf6d93babe8a3996c77519dfe1b929812c0993026c55022b328481eb620190a77ce32b6a3be2e67b2441ccf39512495edb76fe94e5ef543df96aa79b73aba9d477dd4ef8da37dbf1613ea2be99c1338f759ec5d555a9f10afe65a12553dfab46ec40f69d02008288ec1be314a8bd60712436772b681cb8324ae8b29ec14391d672710359c0b8db0526198bbb746440139ea742bba1777bef0c637e5f738002451223bb3342b32cbbcb2862ed80b5fa89a466eeb164acb65c76f1f17c3246e8dd73a882666e8e16f822ede3aec72b050869e533696cab035ed85c1f7982b5b560714bb188a6cc63021b97a1280b5c05574bfa49fbeacdc0c83c0b5d5050841399e3fd3c4bbdb2f1e11cf304f6f4d1bc6d0e4fde150080ff7f396a79b9c311c50506b15dfb172a7fa4a4fee7f014bf4b5dcd7e16e74770161919a7d305615afa325ba6e002e14b3498549ce998a04223f1d27bd1bcc5783bf95401e8f86096a43f355d82d7614ce0e6df2d7972fe083a836361f96dc16c3a7fdadb929952b13ecd2393dce0b1fb57aa0c82ca6b16a01525444c9b6a20fd858db9f5575260d46187b1d95d413da017309b61eb6854a68b8bc86affd35c69f5d3ba00965963de82ffc1ec28af40f5dbb578c2500f23856efd6d2077174ceb49faf17ac1cf904e33ecf51fdecf36a3673cae0569e9b5e8ac9ddf37a71d369022b97bd692cfc0a13b05400945176bdd81cdbee19f8ca9817b3331fa408b1b82b59ae68a7f1421cccd40ca515de17f60941b8499a2d000700aa6a8d79874fb3202486c8ef790c12c08f19a8e5ce10f8a71c512a34accb2ebfdd7486eacf31da855a3a28b82cd01974a46bf035a081ac401b7bc0d438c138ab0b42109f065a2b65b4ae322200471721d9b8ddf81f743bf530c3c92566f6d06b5c43197cbad2f84e05b9421d132332dc171ad2023254abb71daf1e483983d3743c39be9a15bd0cb17f40bb82bdc13c6bc7584f79c77bf2e7abde09e7eaf2620f8aec15c3f2fc398c882675d2fca6039438a7b08638840d185421f618150dc0370e0ff389061f5fa0a8c68a2d035b2e1ae4b98d60e56bbe865b56318796bb613352ac479fda7ebb09e50c4d1eef3a11e51b46729f1a944179a4a9ce786944c113464fc1ad1e9cde234be0b2e110c72686779fc2e47b1ab89fc8aef7a5f1a87f2cd2694a385926dba9e676819aac1f197988603d1b84e547603751085a0e57a319c692bf149ff4bd834a767e6553e200a0561ece7667859b1eeb6ad63db84a150c511a5732d26f7ec9ed8988055c983f5fa9e13189987a64e1149529c247b60d3a47e1b21a26ac1a63436377faa3693c6bc7584f79c77bf2e7abde09e7eaf2620f8aec15c3f2fc398c882675d2fca6039438a7b08638840d185421f618150dc0370e0ff389061f5fa0a8c68a2d035b2e1ae4b98d60e56bbe865b56318796bb613352ac479fda7ebb09e50c4d1eef3a11e51b46729f1a944179a4a9ce786944c113464fc1ad1e9cde234be0b2e110c72686779fc2e47b1ab89fc8aef7a5f1a87f2cd2694a385926dba9e676819aac1f197988603d1b84e547603751085a0e57a319c692bf149ff4bd834a767e6553e200a0561ece7667859b1eeb6ad63db84a150c511a5732d26f7ec9ed8988055c983f5fa9e13189987a64e1149529c247b60d3a47e1b21a26ac1a63436377faa36911d68caa2862c78883eaee78094d9fb69b4c1aed67ae908a1a76c75ec489012536bc066bad4f192cbdf19e4a06169f22f64d1f342a06c9e1b7b20cb69f53d579376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec2ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20110e76f7b02ece9c3982ecb3f70fe1da83530d64b42225be0ca1b006d5dbe60e08a16f39db930aa46c04d98a0ed3505cce76287f52f1f5bd01502952c6adb8cf1a87ef68d7e5bb567fac868b158eee0225989799cc4336bf346c10bf5b624af20649f14fe91b305e9d3d81fd359391ee448e6af68430ee284c7dbeee81bd26c909f05442c5b704f241fd71377c641d2be4ff2d19d1a65d63a743118b73a8f2233a613834ed46c0f20fbb2de129cd6a2a0a80d21a19174d504d9a97fc5a8b6e591b7eb1b03b2495bedad51ec49fb3026e615d58d5d5589a3e786dc083b44e142e3f881a04691b3abed6a4ee7d6e267383a04b7313dff32acaa8364ed8f236493336ba16c4e10a0c9299f685933c30e7beb32a3a39f602d028ee716a92ea0d9df21a73ff6493aa3bea38ffa5a6af8a277cb45835fea8173b10f471d87a22cbbf6a1b7eb1b03b2495bedad51ec49fb3026e615d58d5d5589a3e786dc083b44e142e3f881a04691b3abed6a4ee7d6e267383a04b7313dff32acaa8364ed8f236493329f6a9800d003070cdcda76110aaf9aa7d36e81b2f992f2fbc193b97964147a82949cd58fedd1464592a82c0a259555dbdf0ff8d00b7d2f85e6c24fc2514f30e3d0fce52e8d5d063f3df4a42dc12ac3f72d87fa110c46427e42a8914083973c22fe08eb7aec94db1d8a0a61cdcd4d5001a189deb26a0b97b444cb0d94fa665d1000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011e5e5ca3d6d68cc37d95be7f9ad216d6f9dfa3386728f9f6e61c9314cd2a739a10710b41d3177ebea26696f874b807b7f63c97799b02175c3278e6a28729ae492035414a5b1408f785a513a4101d25de8d35a1cf91967f570b494cf548b712cc38b756ec6d7a07c3c9abc26c0187e912fda4ff8ab1b94bd2928b170854989368391b63e043f55a9e4dfa32dceacfd29ec1a46a74a5c060691cc4c916132d21590272298b3d7dbeaa10e0aa6b4e0c9a1df97f9874e6f99dc182bc4b035c6c0a3002a71eb0e5d213893cebb782bc7ff542bf9f17e4d8c339426eadc4e62e6dbaa8351698df5151ba7a4f92aab7db805f5e08ae55ce9f173d1647da725ef41a5b3409212357deeea463d84634616b2e455c701c277b733ebb5f06c076071cbbfc7c347d387f0dc314078def1c5ceaa809a19bb56870bb9c06f60f0eaa644d8b4b352e522d2d3e90bda2d91629cadb8fdf5d3de408a79a5646bbbf4cb395474e13e619667bbe394a278e2c476d2fdcd51133050c72b0195114798cd82972a952603f19c0421d72a90022a4ec52028dc8a65549639c675dd5bc013b46a1ebd1ef7e5909b11ffa9af7f5937ae0fbe962fdc6b87c1522efb571473adeda64cf8c4728db1e44c67e92d5adef8080670ac5417285b47ce544f191f8721149c48ce1ce3fcc217d296dcb681bb8bef0dc1fea3be8336d6c2296c26b242fbb545ffb6c76b68106f85f66e3129b1925c803b3440dc51a33647a103d52647c9697712be32aa2431be458d64fe7a417dd51e1e4eb29a5b13005a05546dcabc2225384e6d5410e430adbcbe0d5fadc3e29fc66f172688120b8881f108dbaaacd6c0d42feab8cc73f2168de2a48c3ca413954d243b44c3ceb36bf9932ea6f618ff50b7b2a45f035e121c2994e7d0db799844dee192bfe6c668efebb6b2b9c07ad45de1363eff5f1f11ded5e75ad3d41adee65fa47d01cda02b28d00b904e28dc84b0b68d2a5e3b7d816b1cfe0e18eb9972f25086d456b4b4979b594e0fd1954453bd7d1bf6798f0152492fbd0b99f1bb08c37feb6cd2461d5765b957d7a71ca61101dd0ab63859c361b06837f9c614ecd1ce30f5ea61ec3e8ea6f7abe63e266f32dd9ebdf9ce22f070b3c8dc9f2c8aefa5e1993d83b0751869846a068e389cc200f01f212ffe83bd4182d31e0993f65ab6232d5e9a5d46b4f943f7c7eb4ba5622559a3a23962a9add3b9912c3395ae8e1e194100b3ee4bd920fe43c65bf3331eef50a8fb53682682335a804fc2242d1fd07eb65b582927e8d4f4621a6359b04a9b7e400d6bee5044a275455592b86188c5dd8a8dcfd52f0e1234ec03d4cdd60cb5b4865bfec14ca1114bec47a8b355a78fe65fe9db9204c000e164111f01eda8be6f8f86ceaa380d017c8d4ee077f90a817617fa9a674f2ac640d03bd9cd8f5e0f6d645f756ee4e6400753b64d54528bee349d1a4eceb23f5002c8f12ebe652c81fa4823a7c7b766e07ba688a119fd96407f15bc478ca0ae4a50fbfa38bd6db9a2b67b1239e1e94902d40cd354048941ae0095b66e149d1241b3a99d6ae68e5d677b07571fb530bec0bc8332e37c8a1081d102be5fd16cb94cd41f80d36ad85bf28e75569f81300973569060a0c2d0a692932e24132ddcae677e5ecdbf472f2762e49f9966aa3efcd18ac9a7dbec42f785012585af2bd75836b68667ec4235fe1a57562fe205ee9db33f384163236e52a6fa73ee6425215d81bf12fb4c045ed696ed4c1d9ac1480143ea88ff9f4bf08727c90c6edaeed8c9301d3215240eb267ff1146f86ed917d1a2948471aa0c8e8ec27081d23afb4e1f554204cfe775d38c9bf33332e48c1d0302a966bc3537ae3aaa704887931bcd0b19022b2939a3c59b460ff50ebc55f4b072d4a0c59a5d418672e1ff69198450545f11210f4c39be3993587f81c59aad6d3053042527de7bbfc273bcad22e7692248b6a7896638194e277c29416a3c8d1fa2b9156d0883e2e597576460c0fa250ecb176f934eb8f97229e58da9feec87b080e2f92eeba6f16a3dc63818b7f24db8de3dd01053d37a70fd28fc751cda945051c2fa4e08f20e99f88d061ba12dd46ac60bb78bb76eb1d29acf11dcd6c12c7de027f069b45abae2527025d0be42b7f9ba7d4cbd85192ebdb8e4e558c9dee7f9132bc44dd584c65c32ad6554ec87b84d6f83c3f4f908fa793f680e3ebdfdd79fc095f58e683b963a33e36c98625e01739c0cf459d0b77770438d1b6860959ae253b36e87e22293239da1febd7ddc2d207efc9824ee6248300ef3b4a2b3c7b480104c91781ddd6cdc625e01428223d2df8327d16ad2328761aa9f1e6c1c384b80028128a76aacdfb21429f9b3754ce1a2725d5279a5982aa964773af242e68680117ed7589553204debd6064c8ab31e5d8fc717161afca4e8551b981c8d1979800085cb4515605e7a64d1e0814a80682c35655fb0fa3a6699c99bad8ede80a080237a34baea9fa1859b2e1f7eb57f97d3ccbf09dec65a68f7eff7257ff17f5f7ff29cf8596ae1d863f8196286748208dd0afade74e3240100f00a63ca58832280a16307a6951e279c07e69d798b7df722f7298b1add70ce90c9886f44777cdd7f73b36e87e22293239da1febd7ddc2d207efc9824ee6248300ef3b4a2b3c7b480104c91781ddd6cdc625e01428223d2df8327d16ad2328761aa9f1e6c1c384b80028128a76aacdfb21429f9b3754ce1a2725d5279a5982aa964773af242e68680117ed7589553204debd6064c8ab31e5d8fc717161afca4e8551b981c8d1979800085cb4515605e7a64d1e0814a80682c35655fb0fa3a6699c99bad8ede80a080237a34baea9fa1859b2e1f7eb57f97d3ccbf09dec65a68f7eff7257ff17f5f7ff29cf8596ae1d863f8196286748208dd0afade74e3240100f00a63ca58832280a16307a6951e279c07e69d798b7df722f7298b1add70ce90c9886f44777cdd7f73fa261b1844f304c485490d5e999b2633afba4d7b5b76ec065c640ecb11d4f893335039be7eedfac2e3ac623e673589a8852baecd7723f5e37deadf71fb908e205abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b3288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc7350242b34f3b5c32fec58d1fde9006f2ca9ad4ee7bcedcbc67bf20323b940d6e4f9c4085fc63c2bc758e4cdebe5491ef1d312b8c5202a31dea6a908f8fe3ff7ae185f2b61aed5c571148a7ac564096d53c93c7f8b79906ed7509ee9ee34198ba18a5229fe10990c4fe0d8d457b75f10897c8ffd38320b2558a9e93d2329bfaec1cdcb26d1c1199f02c6dd9511f415952ab224894ced50c02360af85cdddc97e915aef37157f454e14797cdc35f834aa38c9f9635e541d77d2d75bd98654d3b7628036333c256ccd403b3d21c17f01cc6e398325260683c1a75838a8b30c828a8c1cea39ec7545c681b4ca67af2a046384bb7f8f82b129d1bc618951c62fd7249d8ab03ab1bc182a8f50046511b7ab409a1d69dc5dfdfcc1a8740b4011f92e7e18ccc72440930f7560351b151572858db88b4c59bd7bc7342f13d6def8bbdd13d3a6fd333c256ccd403b3d21c17f01cc6e398325260683c1a75838a8b30c828a8c1cea39ec7545c681b4ca67af2a046384bb7f8f82b129d1bc618951c62fd7249d8ab03da25df0442be8b3b878f477fe003148b647cc696260b5bf4f48d490dcfafca40ee2e24ae7af46019b015fa6a7fccdf90c0cc098957ae925d96f07ccdf661252191678764b6e33b0806843555161cad4caa518cba775e1b2013942e7e3ac3e63270381b6cf64404272fbdf12e2b9b12cdd15b85244bde6b29a6e2009a747e2b5000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010d1d003f32b0328e66cd74f1227438545fc219bc2a122603998a572a1d2e40531a4357eb921ab79667ab8c16ab48dcea82a3cbde07b417ffba57b5d5522c9331337bba61307c48821f3c40efd004ed4bde2007a52541fe9f74548fd9f2fda8e4333be876a397d00a7e7f739886bbd30c5cb6a4a7f7b793778690cf271b1dc0ec292d18346086432f85cbf906f769f61a7657bb68e57641a600d320a4e94037160e75f18209edfeef73d94fd2fccdae45a306ca1654e7c17a1842438d61becbd215d69d9d3e242b76e4391c2a414e84106dcff26ff4f0ff5a590a76de01197d7b1956357c1f3e6143f4e3d37de18e32712f32439770e5087435b11d3a1a7777c43e42f620a5fb98afdb43eab4d1a54e80d92f32ef0afffa53255c925521a3d158039f855a8434bede418526c49d85abea4ac9d8a01ddbfc7708d08ae7893fa60e2ec8f92cf08accc2367d525cc348e11cb695f24539cb6135e5f9a2481ef0890910026f41252233e1f13ffae6f356cdb343c28bae0315e8a19b1d6add61e7c0db39d2d866797ed09d18c6e387b6a6f360af643d9e818372eebb3e26eaae9ed6762e628ede598c6bdea2ade0bfb075eab3aadebde63b429fa005ded2adbc909c933210afaa6b3c4ab81a5ffbca49932223dfc54b1ed16d34ba45e89832cbd6d4b1377b461507691af8804d04bfd685a2d1c03ca32a01921a199acbd5c2483d774d1a72a524e8dc8c653047a917ff120f325d67cb79566aab33a21f6a0e23d932f827312cd5593e47f3f248ce578dd5388f7b853c27e3ad978468292dbd3eac15d9171870e189c9f8ebb6c30e5d3b010bc9f838b17a78d1508f910d298a06b3b75b1ee2192070da2ab9a7833741c9fde9edf1666b41a2d359b42a0cdb05f27332110f4aa9804cacfa7e5cb011cf1efcd2d32049406786953d0a881b5f2b169d8c0d2104848414e701638c8f7b57bed6996ec94e8443c0a8663a370e0eff4ea8b9a00577a9d2f24cdd4a2c58011d109623ae4e93817c0ff980096c2d5a39d578c5dd136a81abcbf51d10a5ea44821ccb7c89ac1cc3d788e791d270c527addf5139bc311c68133bcc0aaf12d9d9fe779376196aee8a797328a9d008701141e79eddb53bd626a48cb8bc5d9be59a750fc7fbf0f4983d7fe0fb6a55a30741d6a414c5742c15b6f134eee641fbd923bd1aaea6d1521be34531be6a960560267a593d6110156a3dfc665e576ab1784615870192a14a7fedaca0a927d7e5eb14a0c135d25a1c2318fba516e267c5fe6677595144c260ff2d4c00abd030d3011ec26e20391b21af7571dc2423ecee31f1d85df3c7489c8631134619621acdda029ce32b36991e02dc0c5a4d0c6718de0f9ba8c64df818a84ffa9c5b4865176200f827b4129116ea535f05c9898473adf5152d4c602de71b93d8ced8a31ce26e15e600dcac923d04100da26039d18722fd89181b25a7d563292cbef6ee790f732b27d941d8d7125d27697515563dc26681e7cf738d40fd011d02a9ec276ac1fcb4d92d580ed33d4edf7a57e9c475d27b00b8012a24cbfe65c7c60bb2495a903f88a9115122941192c9a7a6d376c3d8b49afa7cbf1463ae25ad23045557cd65cb19987ef1467e0bdcb09b1535ee9fd97ebc72d635d6543afcd591fba260eada976cc6285151a12f79f4c065f72b9432b95dad8a7f957270687135522751572b73b71687325627017d33c805104954d52d30569b012ed17b42737fc6d83bed8ba350ca54c205ed3ebb39ac2c99f78a170d7c98e0bf94bfa35a031f32d611fe453ead628d3409933ecfb0982159cb32fc540195ed116f5adb4359a1fc6659ace19cf20566eb9a412028b229c566919bcb1f8f32f6d6b53d4e60964cc94f59c5dbc99c94ae99ece5194d3cc41e76b81a7eacff222d314718bd5e2a5bccaf1ca0425c106ceb0af836194d3cc41e76b81a7eacff222d314718bd5e2a5bccaf1ca0425c106ceb0af8361336cb3c1f89c18a0ecad5a7d8f4884cec7f9da4fd1f60bae1772e33664b9e1e39977aa471cb55fbe73796178beea2cc175f1ef1707788ed7112e35e1e8464931139aeea0b74266bc7b4c686ee7e6b1899a72bc880f8e847e02ee51f28fb678e13caeba64198c7fab5ae87ef6c6628466d77dc9b502500bcf08451cf3efd18932d6ac108893cf4bb445b3cc0aa391511bf10f50fa3f375f9e6ad65a3201a80273a62578fcdde45b6cafc9ee57edc6b1a4fedd29f15e083c8740d38f7d52f621335eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5600a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa10da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c8525044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b61584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff772a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a35eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5600a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa10da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c8525044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b61584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff772a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a26c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa13319a2a83a6dd65b246c9f7d539b67b09c3b0afe9bcc31f641e4746e726732ac352254da5cad22b2bb31a255d43899f5be174c33d783688ffa31918b2d0e604e0e21a3242b6971d3fe4ccb9ef696b9135da7bcf4fca2d262a5eaa074516d97dc054d2413280ec17c6620f5d9331f6279010efdd8b39bd72e8d5068ef8a9e85021249a9fbefe0ae6d10083758728c436f632e70c3dee37c0fa87bf17cbf10fe1d040243d4624103ea078037d2db2be41cd84ba35cf91ab2d2197a06bed39137112393439f711e2b08f75b68f05cb3b276815f865555ed2e10a9d53c730721c23609b2b29c8babd2a0b67e37f0c6846a560b6c78a30f0ca75ad56ceaedaf1344f10da19af7f417d8eb69f248beb2644edf3b290f5bc8b5ed5b52594d3115ed7ada2624398d0ba3a6e2b9dfd9febb35b3873f9ce34b46adf497ab23701e0e96f06a262571d9c779e3853b1a218e4203c4bd360ea7a715413a46d34827875fea93fc21cb3739171b79e6d1926a281a86449c7ace69200e0765a4f796d0fe079a10140da19af7f417d8eb69f248beb2644edf3b290f5bc8b5ed5b52594d3115ed7ada2624398d0ba3a6e2b9dfd9febb35b3873f9ce34b46adf497ab23701e0e96f06a1bf90a1889423f7d0d781be9bda36aaff0d5258b1656ea0fe114fc9590d8da4527177fb2c298c3e589cfb206d276b9d07679c8d79643496a368a65eef2d2fb493baa8b5930a0b9898617b57e6630c42e29d90a9259c187073aa0ce5f0928421d1ad4c5a96eb27d29759dd9ea539f7bde9c2c9e9e0317560410399d89568fb04f00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001093344aa5551c9d5f5e550ed013a08dfbd10410b94fdc010412822d567e884b9215ebba77b4db36265d82f216ebe040b8e43301151f85e4da04175b72540d2b43dbed5249e75063b30ad99d106d9530cc22653c567b0f4e01557b039211155c62bd42515e3b696dd829d945b17c664461221a67dbbecc87c05d9d07f5f0a7185200d21315a898ee21cc4662f5ffc477ab2baaa06ae28764c04764f2aa609fd1417da6479265927e185d2d73d372bff4f2e873a95359b8b6a0f37ad0179950c3425cef83c7d3327068ecd76d87c5c57d360343b129e81ea96cca82a2e75b4d5f218a741d5987f7763923aa3a9e4d825a3c611007d2d1a3fe1c6dc3b4f63013135108255465a529a572ae1b1b54394dad36846488042a56ec14c6fe952d18df06905a6e70ca2ab65100f014f978e9796945da1c77551e3f0a9dd6e3fe21abf91432f1b50bd9b18486bc4d1ad07b8f37ba24a5eb2749bdab1f57267741639252447355b2b6332619f6e17c56f48b51e1ec19c549258d3efbf5371381317cb587cbf1c120860c5b2f4dd377e5bb6c685c77ab528d9a3c8445a577b48155d621c6c51170f6423726cf447b56acc165c82efb98dc57b8417f3660477fde88802ece7583aabc6d365494c3fe7a8b4b601d7609bc1d7197ad8ea2883b415324b5011208f2d00fa2f4cfdd0530e324ccc8d77190144133bfb458fee8ce0e5815f1958afaf16f8dd3503b8f3a886f6381060bcbc3f08922007b5bcdfbde3a85380fa7a39b708b38855ec1ef24871d5e05e65b5151207792f3d2d606d35a27411cafe2a00f00306246aae23311b3d68ec6e942727bd2eecdd2f46c917a2f188697e15467b181ea68aa63202dabb517b741ead5ebc7419f2f5f139d5498aa4d31ce2c27363262b92d8f8fb08ed61065655fc37c98dbf66bc23cfd92a39d6452ec97465132f5619ddae318bf4dcd55b17f3fa4e4d99ece632e45bff54b54e313e4ec274c10c0c0f3cec39d5447ba79dcd3f56481d4476689f13e26a03dfa79e41551822693b412ec078961936ee31a1f5c4f08b6f7808883adc2b1dc794be6eef4b647de38e5820cd61561e622fbf4729eef4a6b6262af44089635c720e09d25fb6260a60a02731fc43cb87d7eedffac21f8ce47604d5b52b6f28a05bc408c76d759890a022893505db2eaca7cb6c118a0773a439208666a25ebc401aed8634853835bca17ccf1a7a8e3eefe81bd012c1fcba3907be1af3eb3798a5351c2f22196f01520756063f791c9a36cd2080991066a02005ce3bd9e9f0adc2ed35646d789f172e818922179d60261259eae4300e1035a637144d282b386114aa91cd89a1ea421aa9b0be3edb9eb85b150517c9774aecaecafb4257e4501c81c4a7bbabde2660e5ea3ae825ca0650c0869e913ee053a594ba70e27f14edfacd1fe986f6450333a380f3031d575cd005ed347d37490087b7337d03814da192397db0618d95092f4370928d07121e6171151738ff202a2644f5fd60e1b6ea1710bb69bebe72a1d228cf17893cfcc337e7958d062f5ed29dcec2feb3009681f2ca026a5512013888cfa97bad061f655fbbc7963ae95add872fba10115aee62ad7162c4d708207857af60d77327c25397202a42f211f61cc3b7a43ba4c8900e38ff31a3ff7fd68b05b1bc0b0917616564587c5586670c03e25e4876314d5e8d82710537d261878f98e7f2037f2a8885194bdcf7f5d6079d10bea0d29a9635ed4cd029d8434a775c821a4e16da3a96b2855133dbb7ad638dd547d4c769b5dbc814147f8977e09f3caa55b3d95f07b1dc16bc129755a8ea24021754ec94a5fabca5cdf72b34a66ced589fe4fdc105a21c604c153979d4d5b4169bc22e5da3e920853c172c36774e5abe1b2aad200281fa11cec3160470754e0f11984bab0e0a38283e1e63ea8fac5f63707f543e17c3f1468f9773097839a306a1e1e8dd6d6e0213cdcb86851a96088ba8cb7a843a49d1d59f338127fda5bf82217f116db50d0be89b62d5dc5b85e022cfa092d83cf2c34064b11fabd018c452a280ab136da447d4adae8629dd21611d8f56f6951321004ffa7604461606ad6cae91468b08bd4a3bb88dd90406214dd855fe13a610f4df5397033e67469c4a07ac1a5e2e7c2d269c004fe4688e0de28dc37503b1281314f0ad7c196b92dc983413b825753eba9d072f5e8ee73470b2612ba69b3c3292e1f572c5d814410be7311ecf189116e8baa3a73167b838da308efb62ad051cc48e2a4e4646b4c815ae94927e28a90e83a57b3634b73e1e3e8f9ece560ed8233b71d5b1b9b94b37ea516b6d81d75713c2f380d31841dd7aeea14e31a9f1290fd6c6d3875f6187e86c68e6dc76cb4d0405096ffc6da1ff64de6c4007ae4a363029392c78a09e7817939719238934b31e418f8c0cdf571c344ec4acf851b5cb0f31e221a4dce7a78a1e0c824e51f880f1d29633e4d730e15f2aec532667730d30ce1dde5b23185875e1f37db1ae077f307402c82475c83a3a024499d9988cf40bf96aa838508645b2963e8b8799da8496d656076ee6fb4b42a96cb2c0053f4034069557c7af79ba4d69c1747866257b8b7042f49a65fdd05683c43a3ffac0c11cc48e2a4e4646b4c815ae94927e28a90e83a57b3634b73e1e3e8f9ece560ed8233b71d5b1b9b94b37ea516b6d81d75713c2f380d31841dd7aeea14e31a9f1290fd6c6d3875f6187e86c68e6dc76cb4d0405096ffc6da1ff64de6c4007ae4a363029392c78a09e7817939719238934b31e418f8c0cdf571c344ec4acf851b5cb0f31e221a4dce7a78a1e0c824e51f880f1d29633e4d730e15f2aec532667730d30ce1dde5b23185875e1f37db1ae077f307402c82475c83a3a024499d9988cf40bf96aa838508645b2963e8b8799da8496d656076ee6fb4b42a96cb2c0053f4034069557c7af79ba4d69c1747866257b8b7042f49a65fdd05683c43a3ffac0c12e26f67ab7b96cbd66298cf342505f2dedb559fa4be2273dd01899d6c3abb17105f957432b4d66c307dd8d7a9f77a65b49b53376dadd9b2290ea826fd6568a54328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff41daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f00344d74eb36915306adaf8e9269821e7f7d18fdbe18f81e064f72ed1f9b4231350512464b4176111b7ecf3178e1c6e6184b4c23c0e9cf8ce8968bfbfb15a651252145f4002eb00160145f0eec0955828f1a4069016d1ba01aeb4dc2c8b7d5d9318e6b93413a1ae9d9e25f87b4ff2113104ee04abf7d7bda6215e3899271cfa9256bedfdcbed166f3cf67200d7192e89a3a7176b008c5abbb6eb7fa995de2f2c1149a31f1b218ba1c8eef40229e00b9f2dbe6d8f3381345e94107f4c3810633a2dc8fe7fd0fe6c894514898011ecc3e0e47cfd46463f02f7600715ec21d283ef0c1b7842979820f82613e9aad8d2aba29edba2a09b2cede1d088e81884ac08451f5007c7ca5a4b3308d61c4b4dac42e0a4d37401fc648e9d9ebabb69f0e40e9e1c5c416a1560e72d45e42361df28bd22e4e2d0d417b41b1951d8c791d053710f2dc8fe7fd0fe6c894514898011ecc3e0e47cfd46463f02f7600715ec21d283ef0c1b7842979820f82613e9aad8d2aba29edba2a09b2cede1d088e81884ac08451df43507dea22f3a583eb27914338fd90d5e94b243086826d631eaa1fe63b6542a3a94618e653389c755739ca719ead12f269437235c37fb8f9d075b636c4b6c0332614ce7d08a2f70578ff2630152ffc6052c2897ef2f2e4c848f8f853d0a333a35c7d7bbaedff8d16914e3639770aeec01c8e6442b3f836f033069f743e00e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010da2fc30f5f1da78edfcd3338b6c83105390b140e43cfb43a5d1af52483e3b0629302da82482cb813c829229fc382f35abbacf7a85924e3c6390dfbe079dd7e53547343398ec0b810500359a12bd7785629707ea6eb263b608a4ef0a6caf11250adbef287e4208f7045556b18a42eb5417e4ab912396740c7049642de19f3532263e9e0b8bf9b9f1a757f687c9680b8f8af213433e00d7a89067a2c4db9e4de1348cd82ff10c1760f07e3dc9a80395ca6570142e4013029bbf3f8ce6aa810cb01e6f04b71c89f8e7826917560785cd88e4be148b5498614a6c1c2a687dd7e61911dd91a0123e06760481675cb9afeb8b64d372e4d45cf5f17bf2ea1a4084870a38ee07640f46c71664a859a87dcf81f6fa52ed0adb17d822a8458ea05005dedf15eb95ac73b1d85c6d7328443e8cf4762256306c64d20af914683f621d88283b1495c0a20c93fa6ba10f060d00da4454e81ea57201e8d588c5d9a25c2f4b7c763f9fa3d8bc1a9d07d6aa148456a6c489d4611a8e87f25990955318ad96dc775331d007ec2fd2f29200f10bfeedb8c7df886f3656c5852cd3ab58a4be694b017b1e7c7a36421b461f040d1faa3b6ba725924626c946bf940c171111c002c754b10740d19dfed2a4c63287768d738a3d4a1f116f8ca2d2a153ad0e23b219f504873e42c19c76463767af3a92f8c191df0b608f4fc25983a0d1b7927cdbf07edbe53844f67fe121c2924504f4fc87d4b85f0bbd0ba3ff13a50623537125170ffc23221a86d80123637f202e6d0c723ea132fc17cb74489bfe30e034de464f7401bd31b7c22c5b1fc4aa24101c7fadd49a3af1748f3d5bb4dc4a58f637a633eab78e3311452ace09b790e06cb0a9efa5d3288d4a47977cad80abccb2393846922c680259de44da58f7e9596ddb898ca45714d5544ef75917e520da2febc41d347a7422ef5938829f86d3e6920acc0afef66c46be344f1c905c09a5b4010849b1907c1db47217c00f55794941a86b11bc15b0c9f267757c45f3f6a1108b547e568b9e2078c2a720ff8f5f548975cb7af55990bd07fe04b9cebeaacb446c64303e45000d6bdaf9d70465bca58479379e7ccb7a82b2fd0336c3ee40ddc054485e3ef808042ea0f96cb858a8de2a7ea2f841c1976ed834db8f28fd4d12072bb3453ae4ae287dfcba1fa8736043ef524f4006628e464f89f4dfdfdc9abbd11670c380dcf83843a27a7be7c9abc4bff7fad92c4b1364a174b7b7ef70d973c982c21f3c710a3d0c359af13bfd9429290520a3b2b16bf5960a05d3532bb12f8e7e601e6036e323b4241f6a461db452977c31fbde52547d77103d014850d43e26fb27de96483217645fb8957970d792a5379fb1bcc85e15b5fda78d3c86d0649ac9abed7ff9c73b2214aa6ae258a5baca24ba8e2e1051e2b01d731b5ebdd9abcd0625c6ddeea02796019a40f8886702de808ca43e81ce321ee1ac90f1c873f3dfc4e09905221a3197dac8ef94b1127e3101b1ec0a795d91205f7761beb2bbc3bc49b8ba42a16311f305bf9aec636f5ff95b4b49901597de08615206713d5456fa2e0c63d9e9700df7af33054e4eeb9605e838bc8c88408d52ef5c96e7d896b56630265ca9ef8a045b7bc1c8cc4bdae9a6071e4963e3bea62eaba23e6e7302c3ccbbe1a29ccae1205d81c787cf89f7c8ed0283b41d51dc6cb84f63733062b0ed3cee609cc19b1833740d9c69b019c85bcb0c4eb097bc0608b14c587d64a29e7c3b441f5374eab93a5ff36f23dc582e7d56fe6e944a0736943c1e62d45dd7c9c33deff2d6b3705520a264de5ca066fbd42ecb90f6a8306519119b5080a9bd8230133317dda013d73dad4c91f34e2561c3f7dcc8addba06fc16a4963c6636e4c22c22739c245176e0eec0b901cb8800c0ccc9aea12458d0495da5f32d889199fddd93505aa9f2f5514e7a4e2f902daefd6fc630071cb5bc315773d745c91ae8c3809d5bc904a3a3834f318343d36b7701694fb1cc747fda5bb1d9172178119e09217e3a7d96ae2a31d75b9dc32be4dfdbf17b8c0d772c72aee4f8bcfd20d6f2eb6f2f2f4157512751f8abb29df275828c3ad25beeaf5728c8286c35f772cc635e4ae5c18f62cf93f0b02531973cd7007e6cc9f1c35fd94a0dad9840eba0bfb04bc6f8b9b7b1526ab166d4f7b846dd37cdd6de15d7cfbd74089ba6f679ce126c9e7fdc8ca30ca5ac70a45d3b1781f27cc9c58bf9cd66f92ddbf2039beed15f6a4f01559c8eb03ef700bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb0bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb1663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac53a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f216211fa42639b21ecaf1ed4e983217b62a6709fcf49a5422b064a6309c8e2c557662260f666d094d1a6403be2dc098fb8f586eb4ad8166745ba69d9a8268d67ce95224688bf433df1ae089e293b28e241cab5fcd9cd6a27caada7343d9684dde77a20de236c8d5a6a0e502a2e3ffe172e2714300642e4b9f8986569c7538a0b81fa33ee9d35863311447a1f0d41296828ef14e845415c2e1024c8b39e27624bf3130d97ba61a8a2316eb79f39a161619e8bcb7a52eef1358e006dba79ce51baa33c10c697823a4c4bcf76cef00e67a7c4573c7f2b17dabd0fdfacb93a9679d4e8a211bd6a4c417911b42b7f4e8354b2a758409284328da8c61546bbaa13ac0ab63936bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b93c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db17a1dd82353c650035565c7bc00d9e983b457e8c8e8400815db42975e7191dd723725bf4adbbbe02d33ba140065e3e1cdc66f45df62ec7fad6156e418389100c36bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b93c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db16e08890aa848dc2cf6ebff393973a719895979a2e346a08da82cd7f791497511f9a4131e99449698ce8ce1eaa5edf794bef39d7950170d87650c3653eec76d50bba2f36522d59ab82ede2c4985d52a8c1af4cb45768d4d34000a3c4b4678bc92de546b81283d93d323202c8cc923733cabbcbd1b161d0388443c11d1282ebd00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000119855653a92b5b37bc84430dedfee92e5fa2a1627ef010cc358ffc7ca795f8ff10f91417ebc5fa0a82c0fc211c1ffd54bfedcb8a1eacc12001db3d3dfcf6410336fcd7247b582bd4755c005b613b80ca2f8820cddcb43e242679713b9c095089132f24b896d0c5362ec7896ef900a2aba3d25adf53f77108f34a222c4498678214299ad45294b6b41dddc527a1ae46013a4622388f6d3f7fbd08cb5da0b408e8111e3f7e1b77c40285c0545eb39b341c4a7f097d9bd852d41d534ba5324d57cc066debc195b53304b7c8f3785ea52c698fab1c33036da1aadb1d57d46a57fa0b1b55c2439894e8561eecc4e7337a6c428414211cb9e391ff0d1e54a1dc8492741382fb675176bbf903e404bdded09f4a79609c13f8dd0adc9bf398380d0643c00e803f15245b8ee7e24b7a7c9b475907f23b775017e95e80844dc3591d4578e518f961d2961eace213ddef4c9fff847634c6aed28ea2b36c47e11aa8476227f61e1a563dba60b85dba030b80ae9ae90dfed627a0c3282e96dcc4f6f5795a0aea303db71302220fdc36cb981571a7a39988356de91cbd34414c176a4cbfbd0b1606547e6644a457d54b633df37048afd98c0a7b53fe4373e2fe2654b7e11f75890f4a5c550e927e552d2bdfb5ad5b579ec4d13e605ba0e8be836ec282edc0bc8c20e9dfe79ff700f343168ec6a16ab1dfcbd35a3498546dbd3834c9a0c16f318722b5bf8602797964cfe223f7f39caed228cef4a518f6375ea58a12923cea8cd12d374dc211ef11c761695eab8bc0a9a0aab656a0122a5f78e1d299ba93419f1a0d1a3a23a33ac356a53f60b4d8d4635586b2e25f81d3fe22d36ae75e7cf442be2e35b50d9687b4c7d820a14f2e63abb3597f2ad46eeef9d20d6372707e81089a184020a4fb3d8a714a4f626e3ea5bb356c6ef4c6747cb8aedb354a201f92f6e62176aab83a16b5378cbd7456d7163bdaf3976424bdb7563de4371f703e5b6e3c05a54c3ca90caaf0882824ecae0496d22fa11c473eb0fa671156a4345449255933935e3d12203a4564b3f7bd3e5188139552f235daee4ea1fdf45a81915341650b88d5843256b8f16a31985616cb634b4a614bdb510b92f6e2c2d2268695cf210ce82eabb395d8486c049a6304082636414c908c415de6ca846f31620d3fe25903aa258c4f5cf8008e3f972b21e33b538622309766d0a7dd0cef851a07dd74421a435475fb6ab1e7162ed84df5693d343dec523b4069c64b9c89cd0df7fdfa610bd0cc0e4bf690b74cccc9f4da3b379896be27c571590c67e76971b5caed42ba2bac1db6f1236abc4a0927a957c66dee1dec17d2890ebbec9617ce5b2781620303d3d397302499301ec0ff0a2f2a6171831491c3c698372840da2d0655b68ccf3cadec78445ae88b4e7beec24095bbdae8981bebc7a1b4ea4fbefe3effe7f40f02c35d2cc186cb97ee70cbab620a055322aae8a6337a853544e15a280f4a93972f17598b444349e9adba8bb649ef188d910c0e3d0b79989f0f8604fcff06ffee3220e40b6e3b8bd5b56e9d049c833f29339266b485253e9871760ec1a5c9b1522a0cf327b065fdc58065610095ec4a60fd601c623a664c5cbc801b45440faaac201a60c7a9c8790d2e4b2ead49dbe70a7267da3683781a11f5f64e49c64a1b472c4e2bbf32761299b938962a6b3e204de7e452718bd691428f31b78e05d97c3a3d732743c82f5d48ed9a893e0be8edbac1b2687ef0af6b353bf98639ede4427f240f99396e8262647d1ba5ebb951165380ed43913e404c2172eece648b8f431a0e9d13f24d8f4cbadaa2dd0b29bc97e0bc6655051cd7ec595ba8de236553f1b63eea4050be3b1b13be6c78e3df2888e1650abab2218939e2b61702514684dca807e123367bec5811decdc8d749c29c23b23750bfd52fb11e10c429b7d98d419a06bd7b4e1dd77eb398b7f72bfd3e106249cb9737d11d912acff5585563a76e991bfbb9289dd155b42171679d712ab8ff9c4333bbd29764c3031ef81e91eaceb23655e9153f46b97ba2ad0a01a65b132807b0cff3264c4050421e3033d3e4307c10c685bb1338e347aa2c5765e3d9ec3d3b00716a4ae009b3c2120d02fc58526d3db2f9de3c0d7d640b53605e1cc84df1907e3ee914a236e7832439bad289fc523378d8b5238ab2438e658a8f45f4a8ec8f007da873d23e81eefea7862b977dbe26660162bd1cb7ec1dfad6a884665218c6c67233f897f80a722d9017bbf94e0900000000000000a012759c0215a1a86702a2500237030a7e03d85fe9d051c66296b7e3a93b6477a3049d2c7dd3c3702c25deaed9a5c26aa3cace293c144ba9fedccd9d695fb5c6fd1a7e99fbd4f431e180a0d561519c950249514312d1a144922021cadfdcc7771435c685de832aee99ad4ad16e045196e91c27e77c6562d73408655f1ae8dcea0612759c0215a1a86702a2500237030a7e03d85fe9d051c66296b7e3a93b6477a3049d2c7dd3c3702c25deaed9a5c26aa3cace293c144ba9fedccd9d695fb5c6fd1a7e99fbd4f431e180a0d561519c950249514312d1a144922021cadfdcc7771435c685de832aee99ad4ad16e045196e91c27e77c6562d73408655f1ae8dcea062a0356a4972f0421effb68d4d5f6f5c3bcbe7e912063ea82541e548f2076393f13918014f2a51b817d20796e29149f424ebd328958ffbc5a54b6f83420764b9a3721ae20720e35dde1611b5221e5d51c2766d5642f5c20aed5e2833b77e216bf192371b9e610ea9d4c8a8b7d340856cf3e12552b07a7fb1752a4a6bf4dc24a5b266dc96aaeb153895cbd2cae918ce0ba2625002923160c55f43297beb9fe1c5408a36e3187e124a289371d2a7ce9833f837369f6cffdfb17914199a72f6c4c403d2b7280faa8aec9196a423095f6cbbaa781ef4c9ef7d7cf8c845f2bb4c45b7f1319ad595d7671b21481649ebff76030bdf73b42980c43f69c02cacf10e0059b2af4bd3e350157c6dc4ad17d71d9d09f0365bbf4068e4fc1c65be7804e9bea392cc1385dfc4d334710cd10d84ec95a56d670743278a526281835a48e83c7bc16198ebce1e2b0b9e60b09b7445ce129128b765f67c20dab54dd7b0ec250963e1536b662f8756e669522e1ef8af90d02d8da02cb2774f670714b0c1b38750e230519f7996275ceb858f86846647bacafe3dc452c066e49770eaaf3570abb42bfb33f97adcf90b2e05fe074ffea7791ab775345e1b1f316e44041af4994f1c01eaf2357efb434a2fde9aeede8771e6cbb28df384a5238457f134f9d721b19da57292ced3026237c22917efdbe58378170c28640e03cfebe9cb2d8e9b7dfabca09f124e385070545ca9c812a55aa1ac11c99ae6d5d0ea07fc9e3c3e8cda29fcf1cee3e8fe80e82c9ceda4c6b9c9fd182a30a8332ecbd2a678670ef1f01f5d30b38ab36b662f8756e669522e1ef8af90d02d8da02cb2774f670714b0c1b38750e2305198ebce1e2b0b9e60b09b7445ce129128b765f67c20dab54dd7b0ec250963e150b981816a940df8ab3aeb045431c8e77922a3de0a2667242b4f5b4649926663108778f2f4bfc62db9739a4bdd5aff1ee913927e51313f78b76c04e60a62cfea5390c1e3b11c180dd00aa36dfc93ff970c62b664ff9d598b3877f8f82c71510b91739019f465d9f9e2d416fef8cae327a9f4dc43f3d2e8312a1079a77fe8f50610b981816a940df8ab3aeb045431c8e77922a3de0a2667242b4f5b4649926663108778f2f4bfc62db9739a4bdd5aff1ee913927e51313f78b76c04e60a62cfea5390c1e3b11c180dd00aa36dfc93ff970c62b664ff9d598b3877f8f82c71510b91739019f465d9f9e2d416fef8cae327a9f4dc43f3d2e8312a1079a77fe8f50611477735ec4434b59005bcea40822ec5db8cd6e1559b47efec9eda5670f59608a373f4b7e989755551406ac5cf738e8a87b1007ac673e5ff469d05dc761865ed514a0e10566701e8d6f1ddb86c994ce9401f40322dd1827ccb0efbd610a9591fc3ba43ed4f1af01edbecdcb488c595d576385276c59ebf3f977976c99bb0ecf1e13918014f2a51b817d20796e29149f424ebd328958ffbc5a54b6f83420764b9a2a0356a4972f0421effb68d4d5f6f5c3bcbe7e912063ea82541e548f2076393f3721ae20720e35dde1611b5221e5d51c2766d5642f5c20aed5e2833b77e216bf192371b9e610ea9d4c8a8b7d340856cf3e12552b07a7fb1752a4a6bf4dc24a5b289c84dc117c8e14414cd7755a9d79743cc41808276b14dee965bf166f0bd82208c4aa0a17623fe4335ee49bc2bf96977f9aa13ff9704a3b619880177765bde635267a1432074b6ae08d4daaf3299ddc5a0f8254fc14bb86e7e37316178f8cb71b1ea5c62617d5104d5e592462c48e0f0b69a83a3aef603f40a3b6e4ae14d46326c6ee19977fddf8caa5f645a697eb0a8e14609c7306b4da8ef83393403b2e1a292cd9d9b0f1ce4ae1de94853f43093be2801d236860816c5b9c443e7b5a0ae6033ec7580d6414554b1cf18685d99bc8981a1758631eef6433533d652ae693920d0658824abb0c25e2ceb548d0149022ab187a3aca9833465c06bba89abdcd871c8f802af927bc9e83701a248880c3577cb2e584558b882c5c90c9c48ad5a22112e323a9635bc73822db3f7a250a523c389f85b02a4f6603681d5dc749889a673ba43ed4f1af01edbecdcb488c595d576385276c59ebf3f977976c99bb0ecf1e14a0e10566701e8d6f1ddb86c994ce9401f40322dd1827ccb0efbd610a9591fc08cb9e62053a24cef26be596b4b7a9694d5277bf9c18d301fe074d62e51a75a433db95fd1b3bf2bf3fef6a7887cfd16de64c9bea757c219043f9662e633661b63620fd11220b311ab70496f4548c486df9e084a4fa2e6c52300e17177e8a8e531a2422c93613ef6076e70fdb0161e37d6b98a5ea3cd5af73f87912e34719d2c721e9956eb80c7652957af5da3f8b7c196bda3f3323076028cde0a33b8e69885c3fb08610fad015794c5598767a1d132570112d06c5b30ac6d71617cc09d1952a2ced3026237c22917efdbe58378170c28640e03cfebe9cb2d8e9b7dfabca09f12357efb434a2fde9aeede8771e6cbb28df384a5238457f134f9d721b19da5729041cfe2c86efe3847f1adf1eae867f3c6a0ee184e2f260219d94f9f096fb35fa3a65302611f829720937a571c1d8f0864b81ebc74c46786f18d67d3865f1ee931a2422c93613ef6076e70fdb0161e37d6b98a5ea3cd5af73f87912e34719d2c73620fd11220b311ab70496f4548c486df9e084a4fa2e6c52300e17177e8a8e5312ef1e7dddc34de23b4855bdf0f32e11492eff625322a346879e6d19d4afce8536d9154db2bc08aa0ab9c2d09e96ac7ce3a2284bcccfcac225cf7e728a1c975a1b1ea5c62617d5104d5e592462c48e0f0b69a83a3aef603f40a3b6e4ae14d46335267a1432074b6ae08d4daaf3299ddc5a0f8254fc14bb86e7e37316178f8cb7361eebedd397316f4a9f704b42880811ce4e2d3521bec84ce4c720a20a48b0332ce4abdc3944e4dc6dcc0cbbb6cd1b8eb7ba055a1f87c988ccb1f2f410c6ff3726ce83f33034969929d12797406b017d3fcc69efdde1b7854b3dd23f13a8285729769be727ea89e2041a7f3815832a6e25acc09f59226440dd4957bbb1fc38c334cb825923f5d4f4e17c7b161afca5f1903c77c9df4a9fabadd7118dbf35c18c2f4b17d8ac0336fcb0b05aadb524cf868a4ce0067ce5bd15d70f9819eaedfbbb35c685de832aee99ad4ad16e045196e91c27e77c6562d73408655f1ae8dcea061a7e99fbd4f431e180a0d561519c950249514312d1a144922021cadfdcc7771408778f2f4bfc62db9739a4bdd5aff1ee913927e51313f78b76c04e60a62cfea50b981816a940df8ab3aeb045431c8e77922a3de0a2667242b4f5b46499266631390c1e3b11c180dd00aa36dfc93ff970c62b664ff9d598b3877f8f82c71510b91739019f465d9f9e2d416fef8cae327a9f4dc43f3d2e8312a1079a77fe8f5061383c00920bb719499f368278bdd05cc8604fc66af40277748b17a1492c0aa72613dc2a837714930f3583084de0a029d7df47b06b59b74e40e7e0580b2fc8ec2d1319ad595d7671b21481649ebff76030bdf73b42980c43f69c02cacf10e0059b3d2b7280faa8aec9196a423095f6cbbaa781ef4c9ef7d7cf8c845f2bb4c45b7f0553049f03e13cc6764c4f07f085e5e5d329c2319466a145451088f98224098825e2961f6d0b3b7a97dcfaccd686106da571a104d0fff596c8c729ef0784b95f0d0658824abb0c25e2ceb548d0149022ab187a3aca9833465c06bba89abdcd87033ec7580d6414554b1cf18685d99bc8981a1758631eef6433533d652ae69392113d3479bf81c081aadcab8d86c1e0d018b8b8c63a79256aad04e75f50c25c262c4cbd11c2c355cf1c8ac3d0a3828be6430c7c2ea545e399207f1c2abfa1e32f3be4dc30e784e37c6b98e7b2181f10c731bdb24fec890edb6fa636d9af02308f146043a9709a3cfec252bf1d3dcf1b2433bb783f4a7b0ceab8e0f32116a2308b0b981816a940df8ab3aeb045431c8e77922a3de0a2667242b4f5b4649926663108778f2f4bfc62db9739a4bdd5aff1ee913927e51313f78b76c04e60a62cfea5390c1e3b11c180dd00aa36dfc93ff970c62b664ff9d598b3877f8f82c71510b91739019f465d9f9e2d416fef8cae327a9f4dc43f3d2e8312a1079a77fe8f506131e8f52123f63e60d9a7797f28509c1eaa3c0cbb7d474715075ff36e781586ea074f2aacb98d4ac71105d6e3a7a62fcc955ce91c60962cc9adf017c2b19a1d0d09de9e84f3633649af21ba800ec78d2857419f7ffe7a8082e165167adc42264d0666815564bbea317ec9ec4f47269ec2ebf0f2132f3ca227adf4e292e9623acc0c42022362c171542728c385974c9ead0602c821d8e6e467f7f6236d5616ce161ad7b948615f70ca489cbc16fccdcb869d831a12a91f85d13b92d39aafd3c8fa1739019f465d9f9e2d416fef8cae327a9f4dc43f3d2e8312a1079a77fe8f5061390c1e3b11c180dd00aa36dfc93ff970c62b664ff9d598b3877f8f82c71510b934cb825923f5d4f4e17c7b161afca5f1903c77c9df4a9fabadd7118dbf35c18c2f4b17d8ac0336fcb0b05aadb524cf868a4ce0067ce5bd15d70f9819eaedfbbb35c685de832aee99ad4ad16e045196e91c27e77c6562d73408655f1ae8dcea061a7e99fbd4f431e180a0d561519c950249514312d1a144922021cadfdcc777140873e05790b82c8f9fe464835722a2b6a6f0f25aa6b0b2f116dad0b9ab66214f0b37864fb85b65cea3903c4e797d18140d40d628fa8698a02462233343317e8b2b415e8104aed64ee15ea2fbed9cc6db366c99f5eeebf4409604abbfe43c11342503c15953704a2c4c8d03d3685165102f0c90994818278592827e3ae1684fe60873e05790b82c8f9fe464835722a2b6a6f0f25aa6b0b2f116dad0b9ab66214f0b37864fb85b65cea3903c4e797d18140d40d628fa8698a02462233343317e8b2b415e8104aed64ee15ea2fbed9cc6db366c99f5eeebf4409604abbfe43c11342503c15953704a2c4c8d03d3685165102f0c90994818278592827e3ae1684fe6049d2c7dd3c3702c25deaed9a5c26aa3cace293c144ba9fedccd9d695fb5c6fd12759c0215a1a86702a2500237030a7e03d85fe9d051c66296b7e3a93b6477a31a7e99fbd4f431e180a0d561519c950249514312d1a144922021cadfdcc7771435c685de832aee99ad4ad16e045196e91c27e77c6562d73408655f1ae8dcea0636d9154db2bc08aa0ab9c2d09e96ac7ce3a2284bcccfcac225cf7e728a1c975a12ef1e7dddc34de23b4855bdf0f32e11492eff625322a346879e6d19d4afce851b1ea5c62617d5104d5e592462c48e0f0b69a83a3aef603f40a3b6e4ae14d46335267a1432074b6ae08d4daaf3299ddc5a0f8254fc14bb86e7e37316178f8cb7266dc96aaeb153895cbd2cae918ce0ba2625002923160c55f43297beb9fe1c5408a36e3187e124a289371d2a7ce9833f837369f6cffdfb17914199a72f6c4c403d2b7280faa8aec9196a423095f6cbbaa781ef4c9ef7d7cf8c845f2bb4c45b7f1319ad595d7671b21481649ebff76030bdf73b42980c43f69c02cacf10e0059b2cc1385dfc4d334710cd10d84ec95a56d670743278a526281835a48e83c7bc162af4bd3e350157c6dc4ad17d71d9d09f0365bbf4068e4fc1c65be7804e9bea39198ebce1e2b0b9e60b09b7445ce129128b765f67c20dab54dd7b0ec250963e1536b662f8756e669522e1ef8af90d02d8da02cb2774f670714b0c1b38750e23053f2a32a8f84122d2924e0142e794000d42ad24e90c5a1d5e07957c890bc920932853c96178096f53e4eb328af4b32fc1f250f389933c6433b599ba444add3b7a2503c15953704a2c4c8d03d3685165102f0c90994818278592827e3ae1684fe62b415e8104aed64ee15ea2fbed9cc6db366c99f5eeebf4409604abbfe43c11343ad27b7818115430e0511e71f2ef6faccefce48d246229ba6deae61888a43f7e1b606c6d3f92951d658c49cf9c241e318a3cfb3d9a23a839201f24be2bcc57172b0fb5b790cae5da3370e475482680941ee43b054dfb1a11d6fea8dc66dca23525356a22c7543aa0fa7ac25a0dc7ab574694ef89e90901b45188811e5ec7bee513dc2a837714930f3583084de0a029d7df47b06b59b74e40e7e0580b2fc8ec2d383c00920bb719499f368278bdd05cc8604fc66af40277748b17a1492c0aa7261319ad595d7671b21481649ebff76030bdf73b42980c43f69c02cacf10e0059b3d2b7280faa8aec9196a423095f6cbbaa781ef4c9ef7d7cf8c845f2bb4c45b7f12759c0215a1a86702a2500237030a7e03d85fe9d051c66296b7e3a93b6477a3049d2c7dd3c3702c25deaed9a5c26aa3cace293c144ba9fedccd9d695fb5c6fd1a7e99fbd4f431e180a0d561519c950249514312d1a144922021cadfdcc7771435c685de832aee99ad4ad16e045196e91c27e77c6562d73408655f1ae8dcea0608c4aa0a17623fe4335ee49bc2bf96977f9aa13ff9704a3b619880177765bde6289c84dc117c8e14414cd7755a9d79743cc41808276b14dee965bf166f0bd82235267a1432074b6ae08d4daaf3299ddc5a0f8254fc14bb86e7e37316178f8cb71b1ea5c62617d5104d5e592462c48e0f0b69a83a3aef603f40a3b6e4ae14d4630b981816a940df8ab3aeb045431c8e77922a3de0a2667242b4f5b4649926663108778f2f4bfc62db9739a4bdd5aff1ee913927e51313f78b76c04e60a62cfea5390c1e3b11c180dd00aa36dfc93ff970c62b664ff9d598b3877f8f82c71510b91739019f465d9f9e2d416fef8cae327a9f4dc43f3d2e8312a1079a77fe8f506100000000000000c800000000000000210000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020b0ab6e706afe61983c5bf1d6e3d09621da7d9cd32bdd7e2130b81dcc46ef5802000000000000000100000000000000010000000000000020d087600766bd1df7913f14ae88a2e9b5b651504535f46ee5da14954af94de668000000000000000100000000000000010000000000000020cd2cd9ad2c779aa3995be1014c80f94a5247dc5109218180e006fbbe588ce2d800000000000000010000000000000001000000000000002020ca2ebe06b78b863c42ebd67e820162645990710fb2212c31964405270d49be00000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000210000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000000000000000000002086cb5263dbaf418e96721addfd841cb67f9896781c9e8093170a2bebd35c8a0d00000000000000010000000000000001000000000000002005e8acde41240846b1b148e6f1731d982d9499b315b49571f3c4e12d88da5822000000000000000100000000000000010000000000000020dfd7eac1317ff666e7a446a260d70430c9aa0f0bfccfe2edf4ae24a5d163595d000000000000000100000000000000010000000000000020cb0c915a2fbf42f67d8ddb4687cdb94a70ea6dba8c337fad662aef43a1ff09120000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000210000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020d7e7c468e06a8e592edbe1f9eff3164f0499e8ad0072da91fd4fa087ea820a1000000000000000010000000000000001000000000000002064922111b65302bddd53948632f9de2e4135390b8620b248b8a335776dedfd030000000000000001000000000000000100000000000000205dea807bd3761c569e5d91569ff1a4d18ca2750ddf526909660f91b2f84080cf000000000000000100000000000000010000000000000020ec94ab368df3700c4e485459b45d7544203947bced6933b6d2419aa51552b1e70000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002100000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000206394d562d30d4d72e250c260ecbf498fb3d176889437362e030db290cfd3b22b000000000000000100000000000000010000000000000020aa69a887755987122b41014784240cfa2ea17a4e9b3aeba12dc7762da7582ecc000000000000000100000000000000010000000000000020c802860c649238e4c1cbd0ff648821a708a95501e146298b5b303abf07320669000000000000000100000000000000010000000000000020ce508bfa21ae59f4e3a574d7cf9aa2266b30a92dca771c1fb0e1be0bca3e9fec00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000210000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020af5fad30063ecb19951eac8cf60da4f79cdbb44b8297f1e89b410ad48971a7a700000000000000010000000000000001000000000000002001ae3a0c28f45072672fa1d9d722f50b96f496c2095844698ce94190b48086ca000000000000000100000000000000010000000000000020378b42427141ebdcf4a6aaa2ee39a4e2bd01cb4125d3f5ce563ae81c900aa929000000000000000100000000000000010000000000000020c1bc4adb66edbd4e3dab7de23832af2889cdfe7d4f7313a79599994c65f1d267000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000210000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020b0ab6e706afe61983c5bf1d6e3d09621da7d9cd32bdd7e2130b81dcc46ef5802000000000000000100000000000000010000000000000020d087600766bd1df7913f14ae88a2e9b5b651504535f46ee5da14954af94de668000000000000000100000000000000010000000000000020cd2cd9ad2c779aa3995be1014c80f94a5247dc5109218180e006fbbe588ce2d800000000000000010000000000000001000000000000002020ca2ebe06b78b863c42ebd67e820162645990710fb2212c31964405270d49be00000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000210000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000000000000000000002086cb5263dbaf418e96721addfd841cb67f9896781c9e8093170a2bebd35c8a0d00000000000000010000000000000001000000000000002005e8acde41240846b1b148e6f1731d982d9499b315b49571f3c4e12d88da5822000000000000000100000000000000010000000000000020dfd7eac1317ff666e7a446a260d70430c9aa0f0bfccfe2edf4ae24a5d163595d000000000000000100000000000000010000000000000020cb0c915a2fbf42f67d8ddb4687cdb94a70ea6dba8c337fad662aef43a1ff09120000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000210000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020d7e7c468e06a8e592edbe1f9eff3164f0499e8ad0072da91fd4fa087ea820a1000000000000000010000000000000001000000000000002064922111b65302bddd53948632f9de2e4135390b8620b248b8a335776dedfd030000000000000001000000000000000100000000000000205dea807bd3761c569e5d91569ff1a4d18ca2750ddf526909660f91b2f84080cf000000000000000100000000000000010000000000000020ec94ab368df3700c4e485459b45d7544203947bced6933b6d2419aa51552b1e70000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002100000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000206394d562d30d4d72e250c260ecbf498fb3d176889437362e030db290cfd3b22b000000000000000100000000000000010000000000000020aa69a887755987122b41014784240cfa2ea17a4e9b3aeba12dc7762da7582ecc000000000000000100000000000000010000000000000020c802860c649238e4c1cbd0ff648821a708a95501e146298b5b303abf07320669000000000000000100000000000000010000000000000020ce508bfa21ae59f4e3a574d7cf9aa2266b30a92dca771c1fb0e1be0bca3e9fec00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000210000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020af5fad30063ecb19951eac8cf60da4f79cdbb44b8297f1e89b410ad48971a7a700000000000000010000000000000001000000000000002001ae3a0c28f45072672fa1d9d722f50b96f496c2095844698ce94190b48086ca000000000000000100000000000000010000000000000020378b42427141ebdcf4a6aaa2ee39a4e2bd01cb4125d3f5ce563ae81c900aa929000000000000000100000000000000010000000000000020c1bc4adb66edbd4e3dab7de23832af2889cdfe7d4f7313a79599994c65f1d267000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000360000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020c3a4db706c3c3b07e0984d10824acb5797a59a8b4d40d709cfa0452e6ee0f23400000000000000010000000000000000000000000000002015ad821dcbca21c0f24f28f58131f9ab7767c0d6fbf621d34a2c84ab7b24c75e000000000000000100000000000000000000000000000020f4d1e64380a2c05ab0dc64ea31b5e288a4325921fa907811ded50419cc51d1ad00000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000360000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020cb1624e04edb0a38a5aa48ab98ce3b4498ce06e3501400449d8c60820ae716c30000000000000001000000000000000000000000000000207abb1eeebe74b58b73790fca56a415654e76bfd897d0c45e5884d0e78242d270000000000000000100000000000000000000000000000020ecf960f1bd96e938be9efe0e8178c6faac8e4dade22047baafaa2cc5b776587a00000000000000010000000000000001000000000000002025513b7f08a347e3b4653b6a5b7b4504d17f3335eb68b911a07580668480ea5f000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000360000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000100000000000000204e3e5050a68c19a9070116bf52c252ea80b09fe3aeba37912ec913755fd6f20f000000000000000100000000000000000000000000000020741327993888baf18dec79d5c37eb2b44abfbb9eccb3d86290a10c24f9dfac2600000000000000010000000000000000000000000000002057231a860f30ab1475bd8cdc0a3b4a8273fc215ab0540eb9f5f6b4129d47a3f6000000000000000100000000000000010000000000000020a61e4bd78e6377780bb7580457ace8abedf45db5c6b1905e0fc76ee6b540ec6f000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003600000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000100000000000000204f2c258eed013e0c55e57bb7b25f90a885545ce90dc6ab98cbcab8b42618b739000000000000000100000000000000000000000000000020f44b12df590997e771be2d8ca025bc1169a99fd2640c935a548d3f72f53e1905000000000000000100000000000000000000000000000020e07633752c9a7d0ab4d4825434743a1a21102cdb34ac00f9cb0067d34ffca5d90000000000000001000000000000000100000000000000201273eb79132092546fe9e443e04ce70d652607cb46845d8269cc51b07a5e2636000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000360000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000200dab1cfdca431b0959f28b363ee2140ddc896a2331b81f80be5d7d672807597900000000000000010000000000000000000000000000002052ba876dcdee686e84a449cad07b633edb67153d5f14f385fb256af53ea89d65000000000000000100000000000000000000000000000020f53683e29b7f89c0854446521e9f08cece64960ee2669247016ed70294c71940000000000000000100000000000000010000000000000020ca0bbcf3ba7d635c190762d1905f0cdb8d6b2af98d668d282ab970819d0796e0000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000080000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020657f400c23f985ef1ba27d0e61eec710dc328bb9ca9d9fcbbed56910fe31e4490000000000000001000000000000000100000000000000204e8bc169e0bffb7af86e442b025c73a9c0e2c8fcbfdcbdbfd7d568446045f1ae000000000000000100000000000000010000000000000020f7575ab7c2207c8a39c727bb104d9b7c0105c5ae631fc01ee25378fbc615b0d20000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000080000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020325051efdb8424e62d624b11d6b7eeb927253341aa3927034fbb0c8bf76c12ff000000000000000100000000000000010000000000000020785181f64823ec7b563f1cdf18df75b075d0a5963a0db15b3a9e3b0b42f36f1b0000000000000001000000000000000100000000000000205dc15f79b1aa0ed50e58e550fd41c07ace7cdd1101aa37ef4273ae5e9038146f000000000000000100000000000000000000000000000020d1816e01b598e08ee1c459e3283ac87d454a19f2e41f3f85158e9f10b9faef71000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000080000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000100000000000000202eeead91b20ab57873ca7c783915a4212ed0dc2f7961aab41598ea0bc8a47329000000000000000100000000000000010000000000000020a6ac2199362ac987e04ad05199fe7f8be4b60786974730c5353094867d88f34f000000000000000100000000000000010000000000000020abf88fdff603d4d880f1564dd8b5a9e24fd51a61c22d45624f73911e449bcf94000000000000000100000000000000000000000000000020dede73056e97d895ee544cd1f515e7f872b01d10ad51bde6457326fcf11c7b20000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000800000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020920e2801b283c6626363cc9ab21f52393946e3a96b1195de32cbde245b3fa8d8000000000000000100000000000000010000000000000020cf8a0f1ddefe7b4046369acf63949764e63161ba93c9f157762361c30aae1fc100000000000000010000000000000001000000000000002009f1dd01603cfe8cb20303e6d66fb1ad83bdc7093f7a52699cb4afa68588b483000000000000000100000000000000000000000000000020d4666304bf2809e0fe3311603148aa6aef2cc88395ddc38a022a9c742dada87d0000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000080000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000207835bfb9721cf146284a361fac9b687f1d55206c50ec6b050d1a1c0f1283c2f50000000000000001000000000000000100000000000000207a3fa367a923e5d12e87ccdb6cd209b3bc3cc0afde4ed5f86101656aafd030520000000000000001000000000000000100000000000000203c7ec701f5e4b6f4992798f93bc359521c17689c879f0a4d5728d25a602fe261000000000000000100000000000000000000000000000020c1a70db1dbbbf1d266cc63410c3e1f798fbc2f00cc35d561bc0706474f565a7d000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000090000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000000000000000000002066ef082a7312ec8003c37280968e36b4beb91918666462610d2e0f921d66262e0000000000000001000000000000000100000000000000204e8bc169e0bffb7af86e442b025c73a9c0e2c8fcbfdcbdbfd7d568446045f1ae000000000000000100000000000000010000000000000020f7575ab7c2207c8a39c727bb104d9b7c0105c5ae631fc01ee25378fbc615b0d20000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000090000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000000000000000000020cd5f59c76bc5632df1e3b8c11713a7a553a405f716f3f73d6b2ab918bf5d2833000000000000000100000000000000010000000000000020785181f64823ec7b563f1cdf18df75b075d0a5963a0db15b3a9e3b0b42f36f1b0000000000000001000000000000000100000000000000205dc15f79b1aa0ed50e58e550fd41c07ace7cdd1101aa37ef4273ae5e9038146f000000000000000100000000000000000000000000000020d1816e01b598e08ee1c459e3283ac87d454a19f2e41f3f85158e9f10b9faef71000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000090000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020255d2bd3266375246a076280b11aeceeeb5621a497d1636ce377cd490e6bd1f9000000000000000100000000000000010000000000000020a6ac2199362ac987e04ad05199fe7f8be4b60786974730c5353094867d88f34f000000000000000100000000000000010000000000000020abf88fdff603d4d880f1564dd8b5a9e24fd51a61c22d45624f73911e449bcf94000000000000000100000000000000000000000000000020dede73056e97d895ee544cd1f515e7f872b01d10ad51bde6457326fcf11c7b20000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000900000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020a0d79cccb761943b5256e1394b1226a2e684690943fb852321ae8d060722506b000000000000000100000000000000010000000000000020cf8a0f1ddefe7b4046369acf63949764e63161ba93c9f157762361c30aae1fc100000000000000010000000000000001000000000000002009f1dd01603cfe8cb20303e6d66fb1ad83bdc7093f7a52699cb4afa68588b483000000000000000100000000000000000000000000000020d4666304bf2809e0fe3311603148aa6aef2cc88395ddc38a022a9c742dada87d0000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000090000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000000000000000000200952292f8d6e229e47b3e346ef0d04cbe603ce81219126946b961ca91912577d0000000000000001000000000000000100000000000000207a3fa367a923e5d12e87ccdb6cd209b3bc3cc0afde4ed5f86101656aafd030520000000000000001000000000000000100000000000000203c7ec701f5e4b6f4992798f93bc359521c17689c879f0a4d5728d25a602fe261000000000000000100000000000000000000000000000020c1a70db1dbbbf1d266cc63410c3e1f798fbc2f00cc35d561bc0706474f565a7d000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000240000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020362ac7a88313f3547caa33e18f1bf2d22be8defe6282b59d479c56f15d583bca00000000000000010000000000000001000000000000002089d1f5e7ddab385cee9ef3c6e039bf9dba4cd0c7bf5968af1e87a54f1c8b98f4000000000000000100000000000000000000000000000020254ad08d8f651887ccdedd4264cbe8ac8a820f273e7e6a6eec9571b2bee83fed00000000000000010000000000000001000000000000002020ca2ebe06b78b863c42ebd67e820162645990710fb2212c31964405270d49be00000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000240000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020d748a576eca49ddf992cba75efec0f1d12f629d58fcde8a33bb703dab645e37f00000000000000010000000000000001000000000000002048d27b60aa9bff8a3ad72fa50e506b89b2c70434429163e60518d3b54dd8d4f40000000000000001000000000000000000000000000000201e4829424cc3731a985d6b9986b78d322139a6d6965ff67e79bdb4abe7107c85000000000000000100000000000000010000000000000020cb0c915a2fbf42f67d8ddb4687cdb94a70ea6dba8c337fad662aef43a1ff09120000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000240000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000001000000000000002028cb827a61cf5bd7ce600cd7f3eab1c60ed4942811ac1915593695bb3dd953d80000000000000001000000000000000100000000000000207295a2c10b1acf16129d092a7b9af37c389c4566a2bf22d8c69e0cf9f8719868000000000000000100000000000000000000000000000020504c7cfdf9b9d8a744d6d07015dc694b3c1e96fa04d9711bca9e89e47aea70bd000000000000000100000000000000010000000000000020ec94ab368df3700c4e485459b45d7544203947bced6933b6d2419aa51552b1e70000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002400000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020e1479132f529d1d3199b01f807de0d91cf20dcad1e7b80585f280b09fbf3754b000000000000000100000000000000010000000000000020d8587c740444d396342bde08fcc2aa14d09b3841a86867a8968a39985c1aae5f0000000000000001000000000000000000000000000000201b51cd96b5e7d3c5907dc40ebc575470d0b53cb58c9a11acee482a80587db2ca000000000000000100000000000000010000000000000020ce508bfa21ae59f4e3a574d7cf9aa2266b30a92dca771c1fb0e1be0bca3e9fec00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000240000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000209c5dc119f411a0ef5642262c45fc391cfca0ded082e37ef7d49b5a2ed9518bfb000000000000000100000000000000010000000000000020dbb5f88bfd82f174b6b75b33b6e1b57f9e8c171e2884327da5b36cbefd7067110000000000000001000000000000000000000000000000202f7c3c123b082e8ba8e01175c4f6ae18dec43d9efebf55f2769ff4eef4d2582b000000000000000100000000000000010000000000000020c1bc4adb66edbd4e3dab7de23832af2889cdfe7d4f7313a79599994c65f1d267000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000390000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020c5bfbba30acd27adf9049b86e741c9aed9f0aa634f4c011c25fe4d6bc0e6e2ec00000000000000010000000000000001000000000000002092254bddc93af51db85c84258645a7368b11c67713d9b7edb7798f818a67b7d100000000000000010000000000000001000000000000002013cba62cb82888bb083b50937d466b49f9391c00299bd77abb46de4352465093000000000000000100000000000000000000000000000020a3c68cdf76781d19db7aa603f4cd91ea38edfc0b5126585e0c4cc27eb1121e50000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000390000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000000000000000000002057eeed9c417c56a554abbabe201f1b8f7419e6c4f9c588b7cd73e53049aec360000000000000000100000000000000010000000000000020659bdac5e12fafcfbfba4939413f2dbcb8f4622495fa9d7b4be9541e24bf3f5f000000000000000100000000000000010000000000000020d1b5b1709939c022502c02de40058bf39c150bc062b6e13ba9efa821c1b2284200000000000000010000000000000000000000000000002081d62fb6f8e3c63bb07414f173e2f1761186f3a609b96be8e54bf144e18bd1e9000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000390000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000000000000000000204ae66da4ec6e996543c99f2e603b4283208ae6528b924ce9946629501ef0edd600000000000000010000000000000001000000000000002042ccda5e4f3610e7833759239b87dcb5feb5654641bd57359476edc936a15e8e000000000000000100000000000000010000000000000020de3c1116c517fc559702c15da18fca7713ea045f49bee0d28a5b11b093f744f5000000000000000100000000000000000000000000000020c8c39661891e6889268d1a75425c16fa10b5ce02a5817678bfb61fd4d7ba745b000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003900000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000000000000000000002028fa0341159216430f3cec85a0e258c1c6780b325aa638c561f0c89609574b68000000000000000100000000000000010000000000000020fdf80980218da61f93fdbe491188fb7f3191a3b3bb5166ce6014e8f20d70673d00000000000000010000000000000001000000000000002096a037551b0b573c983aaa7a75192a672a3c09151e279ffd3c1e0e670d35fd370000000000000001000000000000000000000000000000208ef32cdd20ab9840d12ae9a0d741f7d3f389289d74ea182f48337a1058f3b15d000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000390000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000000000000000000209c451188f9bea2f2b6d07b3db3ceaaa498f80506d191610f9d61974099dbe5e80000000000000001000000000000000100000000000000209e11faaa3c075b6834d4668a36d21b8294c07a039a232c100665d90b3d03bf4500000000000000010000000000000001000000000000002080cf796e32484601f36528ae033f1d268f38cb3aa9d351ba1b0fcd4e2043d757000000000000000100000000000000000000000000000020a79432284160ffbe7605792344dd2c3b75b783de349a59eac5f705dbb10d4fec000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000150000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000209a7f6ee04285cc053d122b4d2dc01674868c1c4198d702144ec6673d4f1735470000000000000001000000000000000100000000000000209b10e94ccc495ed067a2c6b3180fdcfddf4c8bc779cdf7fc14dde8feb399309d000000000000000100000000000000000000000000000020080b28b1dece6dde43a662bb2943cbbcfb4977254ddfb567d20ec3694d07decc000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000150000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000203ac1614b3ebad34b37931ec463de127c8bb45876ebd8f753c177b3b708f2eccb000000000000000100000000000000010000000000000020576d77dac3a70e1802ac9cbaf6777f6090720d9e7fccb6078e57d4811b497ee2000000000000000100000000000000000000000000000020ace429d6a2e0ab83426a9b9ba04ca6bb90f71e7ceee02c278a82a7859d4bc1820000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000150000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020b315c72fa41b10fad5bfe97985d9d38cdfb966274cd890d82281a154ddf380870000000000000001000000000000000100000000000000209c160349b93bdba6b3a6c3afcd2503bc1a79db30aeb896003c136aefc2ff9b3a00000000000000010000000000000000000000000000002005c7231b545188d801508269d5e616db314e98d0d1d96b4d859cba418919dce7000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001500000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020dee119a0ca0d75cbae521579b9854eb21e572f571eb2bc9024914fdc09b7d6760000000000000001000000000000000100000000000000204d597031c84975b5e61070724ab3d606668a57320d7d99c5a77ab1a1d5221bb4000000000000000100000000000000000000000000000020792b54430c2c7a5202334fa577281d00396a0c9d5a6149e8832c12c7a186e7b6000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000150000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020fb6f21306c23be5f073086377b0217641f535be016cabf1ed1dc1319d6107c3000000000000000010000000000000001000000000000002064127693e8da9c8e8a48196327c3c787b11da3246b2e852de189d6ccb7f2da7a0000000000000001000000000000000000000000000000208eb0d4e58e0649d2818142c4c7cefb08dd13094d3a575e5054570ef7155a1a53000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000150000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000209a7f6ee04285cc053d122b4d2dc01674868c1c4198d702144ec6673d4f1735470000000000000001000000000000000100000000000000209b10e94ccc495ed067a2c6b3180fdcfddf4c8bc779cdf7fc14dde8feb399309d000000000000000100000000000000000000000000000020080b28b1dece6dde43a662bb2943cbbcfb4977254ddfb567d20ec3694d07decc000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000150000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000203ac1614b3ebad34b37931ec463de127c8bb45876ebd8f753c177b3b708f2eccb000000000000000100000000000000010000000000000020576d77dac3a70e1802ac9cbaf6777f6090720d9e7fccb6078e57d4811b497ee2000000000000000100000000000000000000000000000020ace429d6a2e0ab83426a9b9ba04ca6bb90f71e7ceee02c278a82a7859d4bc1820000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000150000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020b315c72fa41b10fad5bfe97985d9d38cdfb966274cd890d82281a154ddf380870000000000000001000000000000000100000000000000209c160349b93bdba6b3a6c3afcd2503bc1a79db30aeb896003c136aefc2ff9b3a00000000000000010000000000000000000000000000002005c7231b545188d801508269d5e616db314e98d0d1d96b4d859cba418919dce7000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001500000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020dee119a0ca0d75cbae521579b9854eb21e572f571eb2bc9024914fdc09b7d6760000000000000001000000000000000100000000000000204d597031c84975b5e61070724ab3d606668a57320d7d99c5a77ab1a1d5221bb4000000000000000100000000000000000000000000000020792b54430c2c7a5202334fa577281d00396a0c9d5a6149e8832c12c7a186e7b6000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000150000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020fb6f21306c23be5f073086377b0217641f535be016cabf1ed1dc1319d6107c3000000000000000010000000000000001000000000000002064127693e8da9c8e8a48196327c3c787b11da3246b2e852de189d6ccb7f2da7a0000000000000001000000000000000000000000000000208eb0d4e58e0649d2818142c4c7cefb08dd13094d3a575e5054570ef7155a1a53000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000200000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020209825fa6d197927a0715d3fab3f49b0ae6f3efd3002918c17dc046ee978861c000000000000000100000000000000010000000000000020d087600766bd1df7913f14ae88a2e9b5b651504535f46ee5da14954af94de668000000000000000100000000000000010000000000000020cd2cd9ad2c779aa3995be1014c80f94a5247dc5109218180e006fbbe588ce2d800000000000000010000000000000001000000000000002020ca2ebe06b78b863c42ebd67e820162645990710fb2212c31964405270d49be00000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000200000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000100000000000000209aaa5cb490c71c98b9c07167071ae295f65b0a068c84a1f8eb2bda1e9dc68c8200000000000000010000000000000001000000000000002005e8acde41240846b1b148e6f1731d982d9499b315b49571f3c4e12d88da5822000000000000000100000000000000010000000000000020dfd7eac1317ff666e7a446a260d70430c9aa0f0bfccfe2edf4ae24a5d163595d000000000000000100000000000000010000000000000020cb0c915a2fbf42f67d8ddb4687cdb94a70ea6dba8c337fad662aef43a1ff09120000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000200000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000100000000000000209f162f0f2e1022c5e53050c46473ed871f621c6d953e6b6adda61d3b41ae303600000000000000010000000000000001000000000000002064922111b65302bddd53948632f9de2e4135390b8620b248b8a335776dedfd030000000000000001000000000000000100000000000000205dea807bd3761c569e5d91569ff1a4d18ca2750ddf526909660f91b2f84080cf000000000000000100000000000000010000000000000020ec94ab368df3700c4e485459b45d7544203947bced6933b6d2419aa51552b1e70000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002000000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020a6ef89ab9286315344599180c41362feb0e0dfafcedeb8970cb5549a047ce2a2000000000000000100000000000000010000000000000020aa69a887755987122b41014784240cfa2ea17a4e9b3aeba12dc7762da7582ecc000000000000000100000000000000010000000000000020c802860c649238e4c1cbd0ff648821a708a95501e146298b5b303abf07320669000000000000000100000000000000010000000000000020ce508bfa21ae59f4e3a574d7cf9aa2266b30a92dca771c1fb0e1be0bca3e9fec00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000200000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000010000000000000020ed9a22f6279d115c66072ff65bbcf9f22659696c2f828e556ae86d9a52d8431800000000000000010000000000000001000000000000002001ae3a0c28f45072672fa1d9d722f50b96f496c2095844698ce94190b48086ca000000000000000100000000000000010000000000000020378b42427141ebdcf4a6aaa2ee39a4e2bd01cb4125d3f5ce563ae81c900aa929000000000000000100000000000000010000000000000020c1bc4adb66edbd4e3dab7de23832af2889cdfe7d4f7313a79599994c65f1d267000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000160000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000001000000000000002042cb2165201ab8ea41affe9fbc23ef70f009dba666b45581fe56a336d6b425f7000000000000000100000000000000000000000000000020864e47462260929d60876a0babd915b08229a85eed60fe22ac85ec61ee1e866e000000000000000100000000000000000000000000000020080b28b1dece6dde43a662bb2943cbbcfb4977254ddfb567d20ec3694d07decc000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000160000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000001000000000000002063b397895a79ef39803fdb53e29d3e65bbfcff9fe06ef6fe7f9f0037e1e039660000000000000001000000000000000000000000000000206fd3b782e68eb5fac7cc20822b3858250b376d7e56a4db91bf0cb95ec3c4170b000000000000000100000000000000000000000000000020ace429d6a2e0ab83426a9b9ba04ca6bb90f71e7ceee02c278a82a7859d4bc1820000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000160000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000100000000000000205ecaaefbe239613fa89a9f1621b62fb6559f9289d5ec382aa2a032bb7a47a5700000000000000001000000000000000000000000000000202141d6e5fd028bcf7861ef8a16b249210fe3d52dc20d20c123863cd1b492a65f00000000000000010000000000000000000000000000002005c7231b545188d801508269d5e616db314e98d0d1d96b4d859cba418919dce7000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001600000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020dad428dcf0f2d1a3daeae2b619eccf0d064f6e5614b842c1b9daee22a6900e24000000000000000100000000000000000000000000000020688ce44aebd966aaa0c0b45729d96bcbe7ef069f1dbd95b956527d6cbc0a81cf000000000000000100000000000000000000000000000020792b54430c2c7a5202334fa577281d00396a0c9d5a6149e8832c12c7a186e7b6000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000160000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000001000000000000002005d3170f1b1685aeb531ffa7cef87ca50cb7887f2e0d9c871c7a07db84ea38bb000000000000000100000000000000000000000000000020484b1a9029b822ebc27ac439a0f45a04f55b9d4dedb7bacbc5e2a7b131bac56f0000000000000001000000000000000000000000000000208eb0d4e58e0649d2818142c4c7cefb08dd13094d3a575e5054570ef7155a1a53000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000330000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020729f9a4842e47471ec9eb0fc15695f30feec4440cdeba085eca4d8ffa6fca96500000000000000010000000000000000000000000000002020357880fc8e6dd74df46742da252f118fdb87961923030914ba2e8adf16cb52000000000000000100000000000000010000000000000020d668a432d047c9e275f7c7d20e0a761a44ce7e63d76a8974123279ebd303ad5300000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000330000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000205e2f9379af38ba02e299363f94ff2613db345709ae3930ec78e9d34cb8dc5808000000000000000100000000000000000000000000000020b36150103dfa24ee16b032ef9999b88d058ffbfb179c3608748ca0b3b79700ce000000000000000100000000000000010000000000000020a7afa996971e49948edcc6953b8e85b3a85abca1a8ca02bb441959ca7fbddc1e00000000000000010000000000000001000000000000002025513b7f08a347e3b4653b6a5b7b4504d17f3335eb68b911a07580668480ea5f000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000330000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020d74139170c3e989869dece6d59cd5c6a0d47fc349b6efd8fb24bf4f29e61dd410000000000000001000000000000000000000000000000209f5a2e0d1d216a03f22617946d77aff086f5e10c79f90d4eafcbe495bb54cb7e000000000000000100000000000000010000000000000020f956d888804e64a270d247562d2e4df7cb3baaff4b906f94b4e64fcb67d3fb92000000000000000100000000000000010000000000000020a61e4bd78e6377780bb7580457ace8abedf45db5c6b1905e0fc76ee6b540ec6f000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003300000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020d767ea564249bee1f3ae16b3f3dcecec061c22846a13b0e468a24bd36a75064900000000000000010000000000000000000000000000002069b52e0358d48b02c58f9efb5a46719a68c0846a23a5cd0907fb795dbe8a38da000000000000000100000000000000010000000000000020695844727e2fac06bb31a161155a39527775fb0591002573a9e4d4aee1e794880000000000000001000000000000000100000000000000201273eb79132092546fe9e443e04ce70d652607cb46845d8269cc51b07a5e2636000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000330000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000000000000000000002013db7d66d0dcb7034e195d6ffe9b124b9be9f43675296335fa70a1629fc586c50000000000000001000000000000000000000000000000201c91dcf009aaa43325becc5afa841bc4e23160c3c4cb657fac24880e6a26d3d5000000000000000100000000000000010000000000000020b4683887999b2d9372eba712b4bcbe56fe7c3bbf097eb71436f394f19c5e540e000000000000000100000000000000010000000000000020ca0bbcf3ba7d635c190762d1905f0cdb8d6b2af98d668d282ab970819d0796e0000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a6000000000000001a0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020867f4e7838d3464819f68d32891adc5d0d944835deee9dfab0413a6187f910fc0000000000000001000000000000000000000000000000208cdaf05b84ace4e1b630d731222e016e66fbb851f5088ed3b8479b35f2e863df000000000000000100000000000000010000000000000020087a599f409cb7bacc0662f1cbc4762c6f1a1276b1ec901eff46c07ae65a8c6900000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001a0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020d2b499fcc9331b1e24804113044924d390b6850d5bc89e618066edca59d1ed13000000000000000100000000000000000000000000000020d9a7882e1b23bd0c798af89adfff13ddc6504fb40d7de05d8d9b5e18a0c070a3000000000000000100000000000000010000000000000020c6bf6988a3e7187fae893c7eac58fd5d4e190f4f27238b2c7529d1f3965c96c30000000000000001000000000000000000000000000000201d592eaf7b775ac80f80f65ac71600e7b42e34c2b41369815d26559f705c392800000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000001a0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000010000000000000020a79ae30a48c139549d208cf89a135461b28439fd8919e5c233ca5b3e33aeceea00000000000000010000000000000000000000000000002098e0c7b3feeb36a5a88273df56a05597fc09a092f707963f75f04f69677c717e0000000000000001000000000000000100000000000000203ef5c9702626ef1d8658d6fd366e6eccf85b6bc4df13c0bb45cf2cd03ed14cdb00000000000000010000000000000000000000000000002008ef744cc4c71b3dc0ad6709747a269607614084afb6b3ce67e9224db4721b010000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001a00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000001000000000000002006cd2449db56d43a2c3e2dded95bfa66bd4cf5400f78048722d40908fa75fedb0000000000000001000000000000000000000000000000207ec39b6a5dc9b329823099187a25fa0797a534ea7de2324e8a8ac23d9de81f570000000000000001000000000000000100000000000000203e2095fe80077dc9629cd9c8a40245961543a9420478c0c9442afc86a4142c350000000000000001000000000000000000000000000000204a15bacd4d08e8dc5188fa2617ce3f2048ab093a457dbb1568a132452c1264e70000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000001a0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000206f2b697aeae6d5a5e69fdfc864eb42fb46914825f75d057503ccc7c0278fbb8c000000000000000100000000000000000000000000000020a60503c7177b62afb9c55a941b3a16a6533e3e51d6b343ef1576611e39f1ea93000000000000000100000000000000010000000000000020375d4ed2adacd2b33684527fb299ea4f3b26ea60a3e425eec8be3753fb113dad000000000000000100000000000000000000000000000020b705227efab8bbcce7e6efa6e6c2c8c24b0165a04b60ba4382b0c252dfa09b540000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000100000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020111b56eef069a81117bb82e07a549448811f7b498d0b8cbeaf3c460faf2448d100000000000000010000000000000001000000000000002025fba5ee32d0d9d008535ac6a7988f247a404065ee59ff9a7ab673fd8e76748e000000000000000100000000000000010000000000000020931fc0f60710e5550ab975b9da43260c532daa1aa0981b844a267625739ffb1b000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000100000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020bac9d793deaf5ca2cb626ce251dbd5baa016d0ecff6b13d4ef9cd35e7e50fc5e000000000000000100000000000000010000000000000020533af2ef25021e15fe55aca5e4979523d6e65ecbcdb590a881474ec1388d0773000000000000000100000000000000010000000000000020db75f2f16c24e1f86b75a7358eb0bff98736d767e792ba6500dc20c7a0f5b35f0000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000100000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000010000000000000020e6015a26b94bcdb79e6f934cfa346d3ee0e8daf62553fa64f1fd936655d5bd66000000000000000100000000000000010000000000000020b8afb98b9198daa87dda8a04edc3349eaed9056af0fcedb7edebe0393976711f0000000000000001000000000000000100000000000000208eca8e88d782a2c50068f91856cdb198e83fe75b53d95126db0ce5ba952fe000000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001000000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020855fd74a9c7da68d5343c0434ff683c9e73dc407ec49776b81e6584876f458cc00000000000000010000000000000001000000000000002052d82acada3026c4c21ecc2d34974875b8167e5120f6dc4a3d2696a6c0e4f004000000000000000100000000000000010000000000000020ef20ce255fff4244508dc0bf36aba9eeda1f94ba8303d6b23520cd52b598e748000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000100000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000001000000000000002038d9cc8443d7d65106239e86f0a2aa9c84d77501c33085e73594b698d102e803000000000000000100000000000000010000000000000020407f2fe6361457a84abe1bfbda60edd29b3305f1a37e916f7f923783f031398b00000000000000010000000000000001000000000000002003de737e05bbc77f493cd34846521552aa2f36e8056c458268b5b2cb15e5e244000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f000000000000001f0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000204887d5e2c6d2717d60c83accb5514a0f47e17910c8fc71f978c1948c709def1c000000000000000100000000000000000000000000000020a2502a6ae92a724a6e2a3a94ad93bd71bd29b046475706a32afa43f571c551f200000000000000010000000000000000000000000000002070f93532da12d95bd9b02b2acb02b74a3a532fbd8d1ec178ca7acf3e54865fb800000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001f0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000000000000000000020ebe4d8dc5157df91db0d0995b681cbbf37fbeb89712b703226fea4166f4a1be40000000000000001000000000000000000000000000000209556d77d8faa0780c175114ccc703ccef5e23f99123014f3cb64b72a60e79680000000000000000100000000000000000000000000000020635115868949cf601b309c4df546e182524084c9811bb9ee1fb0b250cc7303b00000000000000001000000000000000000000000000000201d592eaf7b775ac80f80f65ac71600e7b42e34c2b41369815d26559f705c392800000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000001f0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020413728e8c4f675e5ae69c204d5baf909547eab0d0db9a21f9e0c83a4af26c7a8000000000000000100000000000000000000000000000020b1f59360b8604b8aeb5462a45975637ec382c2d69e9898248c3ff0b5c0f84a490000000000000001000000000000000000000000000000201ee947871b7c23ff35900da33157b598a2a0de9b805ba0c5a66fd0f7a777b96e00000000000000010000000000000000000000000000002008ef744cc4c71b3dc0ad6709747a269607614084afb6b3ce67e9224db4721b010000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001f00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000208e23a76fd590b1f4b1a8ff7c9d4908df56bc09305057dc0722abd364823feacb0000000000000001000000000000000000000000000000203ba2c97654de7bfcc8d53977aba10d361172900252c2564628c1c4d0269897da000000000000000100000000000000000000000000000020f5ce7f2db68efde598b83474b5a87a6b370a42d4f72227049cb83d4df11bb6a10000000000000001000000000000000000000000000000204a15bacd4d08e8dc5188fa2617ce3f2048ab093a457dbb1568a132452c1264e70000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000001f0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020f9051b50a21ced87b20c943f4e2c2f753afa0b310bce31df963b96a0c87a200a000000000000000100000000000000000000000000000020c594fd6aef9bf0a9ad32de1c2b21fef40fc7cf55d5778a950bfba5bcec02647a000000000000000100000000000000000000000000000020b4a1b1f3f1cb855740daf8c4833a49820c58975955c04f60f0e741d105e354a6000000000000000100000000000000000000000000000020b705227efab8bbcce7e6efa6e6c2c8c24b0165a04b60ba4382b0c252dfa09b540000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000140000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000001000000000000002082733cd589abe0f03b4dffe58247afcd2988371e94575cc7b881fbe2971094360000000000000001000000000000000100000000000000209b10e94ccc495ed067a2c6b3180fdcfddf4c8bc779cdf7fc14dde8feb399309d000000000000000100000000000000000000000000000020080b28b1dece6dde43a662bb2943cbbcfb4977254ddfb567d20ec3694d07decc000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000140000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020ac03bba973f9db60405efd99de3388034a573b54a4261eb03c3e2c20b8bd8087000000000000000100000000000000010000000000000020576d77dac3a70e1802ac9cbaf6777f6090720d9e7fccb6078e57d4811b497ee2000000000000000100000000000000000000000000000020ace429d6a2e0ab83426a9b9ba04ca6bb90f71e7ceee02c278a82a7859d4bc1820000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000140000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000001000000000000002020c3867137bd66e5ae3cc59759dbb65bc16ccac01adc0650317f7aa6742d485a0000000000000001000000000000000100000000000000209c160349b93bdba6b3a6c3afcd2503bc1a79db30aeb896003c136aefc2ff9b3a00000000000000010000000000000000000000000000002005c7231b545188d801508269d5e616db314e98d0d1d96b4d859cba418919dce7000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001400000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000001000000000000002036af30d89ea435f7697c2571f0fd4b21940d3569d3b6aa5da5ab2a139ec941dc0000000000000001000000000000000100000000000000204d597031c84975b5e61070724ab3d606668a57320d7d99c5a77ab1a1d5221bb4000000000000000100000000000000000000000000000020792b54430c2c7a5202334fa577281d00396a0c9d5a6149e8832c12c7a186e7b6000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000140000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000010000000000000020e6129739f096f01e63ff5fd506580df7ed092542294fdec8b931b3ab9e3d289200000000000000010000000000000001000000000000002064127693e8da9c8e8a48196327c3c787b11da3246b2e852de189d6ccb7f2da7a0000000000000001000000000000000000000000000000208eb0d4e58e0649d2818142c4c7cefb08dd13094d3a575e5054570ef7155a1a53000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f000000000000002f0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000206762968d2a038b693f39a5fafabb81fab3aa9f357a0350c916992948fd26e55000000000000000010000000000000000000000000000002039207a50ee132e79b7d0ce2800c532ee3a79757e9182e86f047b4749e0a8f553000000000000000100000000000000000000000000000020a99ec68e5e702c95d72c271dfc6b7fba83a95d182bfe10c3b55beafee6b02033000000000000000100000000000000000000000000000020bc7cafa2d5bbcd43a2687bac1aaae39ea07c2b052355ee18f7bed28530381a1900000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba3610000000000000002f0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000206a66eb0dfb8905926c23fa9e6367d1d376993dc9d50000669fb74f7cdf2a1ceb00000000000000010000000000000000000000000000002046c654f85322efa17d6f767fbdb262d58f272795ab09da595b797b6dbc104b67000000000000000100000000000000000000000000000020eb65f60cc50d4a78bbd6805dbdb2bf94cc2376e36aa8b971a31f71d4de0675d8000000000000000100000000000000000000000000000020f69c63796b0fc3bb3288db5fc6b6321528bbbae678a35651696d958320b7b7430000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb000000000000002f0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020ca065fdd78dac515b99610f258fe14968d10b9e20f8bb65813195429d99bdadf00000000000000010000000000000000000000000000002053f8d1326552cc01162d03184cb369965f4fe3b3f9288f37fb45fe4cb085e3d900000000000000010000000000000000000000000000002006426e33baa1776913fabf5a4a6b22a45faa4944ecb6ee3596d2a7f071dad382000000000000000100000000000000000000000000000020907caeb633215ff4129e7dab9f17c9025c93f92b16178fd8678a98fad237f0c60000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002f00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020873b792ec4e2410a853e85a77ade2297f0c5052debe2f4a72bc8be27e11aa763000000000000000100000000000000000000000000000020c2c3840e2225f4c86bdad2b4e2fdb543bbc7c0eff9166fd7bb13cfeeaac17bdb00000000000000010000000000000000000000000000002045de5171730c798b920963229c38e2585a2ba74ae374a05c055e8f9ca4de381a000000000000000100000000000000000000000000000020f873579facce3b51fb36341332ab2926a95297aa0acd0b4108cefea53d9e1c8a00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee2000000000000002f0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020363e68339dbddefd48c83175cca73c718742589e41321b9e3ba208909cfd915800000000000000010000000000000000000000000000002088652ad02d50d76bbfaa8b1856252bba2bace61a0c45f2856992f5b6a2c97595000000000000000100000000000000000000000000000020fce731c6ff148191e5989829d154266d461abbe1b87f3bf49e080e482df6295c00000000000000010000000000000000000000000000002083502f4dae1d1e7cce3b35cd08cd8214523868a7bad81a68fd16bfd40a434166000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000230000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000201aeff246b42ff765abb4a54feaaa121e65140f197557feb8bf84c12e9f9cc26c000000000000000100000000000000000000000000000020c1d918bfc6a90fe225a1ed5b38fd5f39628d83f18dd4387d4b4ab6a9b10e1767000000000000000100000000000000010000000000000020cd2cd9ad2c779aa3995be1014c80f94a5247dc5109218180e006fbbe588ce2d800000000000000010000000000000001000000000000002020ca2ebe06b78b863c42ebd67e820162645990710fb2212c31964405270d49be00000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000230000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000204f31ffbfd0e93845466096a7290c6e796da7b8eef869fcf2e22c31915eeda6e10000000000000001000000000000000000000000000000203ed38b1bd3bc3ddd75d04c4629fd665a304c5dab0b4910b39bfffbe10171a7f6000000000000000100000000000000010000000000000020dfd7eac1317ff666e7a446a260d70430c9aa0f0bfccfe2edf4ae24a5d163595d000000000000000100000000000000010000000000000020cb0c915a2fbf42f67d8ddb4687cdb94a70ea6dba8c337fad662aef43a1ff09120000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000230000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000000000000000000200f140f9e31aac227063bc01121f02c025b3285deb2e8fc7ef121fedf9f1736e000000000000000010000000000000000000000000000002086e7040a0774570f9960fe464fb83c42abc7b879f0dfe879f0de85735aec02ad0000000000000001000000000000000100000000000000205dea807bd3761c569e5d91569ff1a4d18ca2750ddf526909660f91b2f84080cf000000000000000100000000000000010000000000000020ec94ab368df3700c4e485459b45d7544203947bced6933b6d2419aa51552b1e70000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002300000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000204754d4a00b78e831b7681bf22ec5a300527459ecea067b4ce92022571531057e000000000000000100000000000000000000000000000020efd9f706f3b59a5d1d59f20f48b351840e733afcd7bb618967149f2aa78ed243000000000000000100000000000000010000000000000020c802860c649238e4c1cbd0ff648821a708a95501e146298b5b303abf07320669000000000000000100000000000000010000000000000020ce508bfa21ae59f4e3a574d7cf9aa2266b30a92dca771c1fb0e1be0bca3e9fec00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000230000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020c154628481f4f2e5a3c3b45b667c4176aa437bf02ff4087354250339bb4fe09600000000000000010000000000000000000000000000002018bb48cc6fa644a9082407ccc46de0476228f9478d12605334faca8cc021fef9000000000000000100000000000000010000000000000020378b42427141ebdcf4a6aaa2ee39a4e2bd01cb4125d3f5ce563ae81c900aa929000000000000000100000000000000010000000000000020c1bc4adb66edbd4e3dab7de23832af2889cdfe7d4f7313a79599994c65f1d267000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a6000000000000003b0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020c1934ee86183446a30ea734b2dfd4b55040db13048b55756e26319ef2bf41196000000000000000100000000000000000000000000000020d6ba9716b244280517fc338189ee3d18ef53ca399f72746f13fab57a2218a56500000000000000010000000000000001000000000000002013cba62cb82888bb083b50937d466b49f9391c00299bd77abb46de4352465093000000000000000100000000000000000000000000000020a3c68cdf76781d19db7aa603f4cd91ea38edfc0b5126585e0c4cc27eb1121e50000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba3610000000000000003b0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000203dbad06c47412cde657291699361e7df3f49410981533a5b98eb5a7b822b79e800000000000000010000000000000000000000000000002017de19751749ce0d54847a722097b43c34cac652dc95e009a1582a98f79e57e1000000000000000100000000000000010000000000000020d1b5b1709939c022502c02de40058bf39c150bc062b6e13ba9efa821c1b2284200000000000000010000000000000000000000000000002081d62fb6f8e3c63bb07414f173e2f1761186f3a609b96be8e54bf144e18bd1e9000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb000000000000003b0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020e8780357828dfcc1dea266c0702c4256387aad7a3ec5bead3d5db0c5c4a4ca7d0000000000000001000000000000000000000000000000209f234605cf01ef33d332204251222525c89be80ab747123af25517094cb7af9d000000000000000100000000000000010000000000000020de3c1116c517fc559702c15da18fca7713ea045f49bee0d28a5b11b093f744f5000000000000000100000000000000000000000000000020c8c39661891e6889268d1a75425c16fa10b5ce02a5817678bfb61fd4d7ba745b000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003b00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020cb90048f4882d47276cf3683ae16a70258671d78dd923e6201215df11e3778560000000000000001000000000000000000000000000000208d08c383a659604b451ffe2487072ec95148a1d9b296a7c3b24165cd2e9af15400000000000000010000000000000001000000000000002096a037551b0b573c983aaa7a75192a672a3c09151e279ffd3c1e0e670d35fd370000000000000001000000000000000000000000000000208ef32cdd20ab9840d12ae9a0d741f7d3f389289d74ea182f48337a1058f3b15d000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee2000000000000003b0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020eda4a40d9789e39711c1618a46fd381d5cdec0b84999d1d7954531cc90a2a7110000000000000001000000000000000000000000000000208481796e2bcdf1b590dbf05053d7cd86a4031b1a280958468d49c2edd113db8f00000000000000010000000000000001000000000000002080cf796e32484601f36528ae033f1d268f38cb3aa9d351ba1b0fcd4e2043d757000000000000000100000000000000000000000000000020a79432284160ffbe7605792344dd2c3b75b783de349a59eac5f705dbb10d4fec000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000310000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020e7cde93b02f69b3bdfec265c0a80e30146008063d4d41d7952e09fef525ba56900000000000000010000000000000001000000000000002088b9c36ce6c205415134c822e13277bf26dc808cf4164d31fb3feb408d5a5e06000000000000000100000000000000010000000000000020d668a432d047c9e275f7c7d20e0a761a44ce7e63d76a8974123279ebd303ad5300000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000310000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000209a08d4167dd497190fd45acf9002d380b4bccfa4516d724073519f6dcaa34ff3000000000000000100000000000000010000000000000020eee7a3b5bd32066ff6fae493f197ab42d452b72e6653f36c785e7ffcaaef4bdc000000000000000100000000000000010000000000000020a7afa996971e49948edcc6953b8e85b3a85abca1a8ca02bb441959ca7fbddc1e00000000000000010000000000000001000000000000002025513b7f08a347e3b4653b6a5b7b4504d17f3335eb68b911a07580668480ea5f000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000310000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000000000000000000002055ec1c4f82144f667ff57b0b35d09d06d151bcd64d77112ba763dbb421ec0f560000000000000001000000000000000100000000000000200478375712328a539e0af75efba3145a5b83977f65fd6f26f2bef0e92f4cf47c000000000000000100000000000000010000000000000020f956d888804e64a270d247562d2e4df7cb3baaff4b906f94b4e64fcb67d3fb92000000000000000100000000000000010000000000000020a61e4bd78e6377780bb7580457ace8abedf45db5c6b1905e0fc76ee6b540ec6f000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003100000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000200bc04b47f026e77bdba7fa5067531c8b573f79f8515535e0a7f6cc54758ce5f5000000000000000100000000000000010000000000000020e4d3556944aef39dc24c83873c204349c90de3d0febf5e94f5d30752aacf58d1000000000000000100000000000000010000000000000020695844727e2fac06bb31a161155a39527775fb0591002573a9e4d4aee1e794880000000000000001000000000000000100000000000000201273eb79132092546fe9e443e04ce70d652607cb46845d8269cc51b07a5e2636000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000310000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020907d7781ed9c8c3275965d95e3143f70ea11068a85f6abc38fa31a0fbdfe2c26000000000000000100000000000000010000000000000020a834b11452e58e60e9d991391a3e2e59588fa25493c192ba98d1d33f296b4e32000000000000000100000000000000010000000000000020b4683887999b2d9372eba712b4bcbe56fe7c3bbf097eb71436f394f19c5e540e000000000000000100000000000000010000000000000020ca0bbcf3ba7d635c190762d1905f0cdb8d6b2af98d668d282ab970819d0796e0000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000350000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020940f95c06a507e6f7d898e90b69cf59c322cbc1bf161c7e7708a20e2008daae000000000000000010000000000000001000000000000002019594bf3fa8c4ace4d35341a4d29a3224bf349b4111630660fbc89ec6aac104c000000000000000100000000000000000000000000000020f4d1e64380a2c05ab0dc64ea31b5e288a4325921fa907811ded50419cc51d1ad00000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000350000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000000000000000000002053e10520c89a9d1c8bdf0299253b3e1ca6f732d90152e564751bae242a1ea2bf000000000000000100000000000000010000000000000020758d3cb1dae81bd7b5510b225e37ec1c33d27e558dbe4753d95613ab2950d5bb000000000000000100000000000000000000000000000020ecf960f1bd96e938be9efe0e8178c6faac8e4dade22047baafaa2cc5b776587a00000000000000010000000000000001000000000000002025513b7f08a347e3b4653b6a5b7b4504d17f3335eb68b911a07580668480ea5f000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000350000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020eae24cc712d4f1a65e36209bf029b296466b50798ad83a68022cdfe9d0a71b53000000000000000100000000000000010000000000000020d93941bd50076e052ac499d54a60936db5cc808ce93db11f3b5f2dbb9e84fdc900000000000000010000000000000000000000000000002057231a860f30ab1475bd8cdc0a3b4a8273fc215ab0540eb9f5f6b4129d47a3f6000000000000000100000000000000010000000000000020a61e4bd78e6377780bb7580457ace8abedf45db5c6b1905e0fc76ee6b540ec6f000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003500000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020a1c9ebb7e9894aaf5a518e2e5add167f6b300838e38da25e7147996653a3358800000000000000010000000000000001000000000000002018f7652e6b6650db62a7971a3982b0cb933246f7ee71973244096397d4069a48000000000000000100000000000000000000000000000020e07633752c9a7d0ab4d4825434743a1a21102cdb34ac00f9cb0067d34ffca5d90000000000000001000000000000000100000000000000201273eb79132092546fe9e443e04ce70d652607cb46845d8269cc51b07a5e2636000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000350000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020c0aebb3503b26954be7c1775bef21ec8009433f43163b9a737d5f6404505ab33000000000000000100000000000000010000000000000020f1df539161429e1cffb6b4435a018168f9836656cd0fc0043c6de7fa4ee6ca11000000000000000100000000000000000000000000000020f53683e29b7f89c0854446521e9f08cece64960ee2669247016ed70294c71940000000000000000100000000000000010000000000000020ca0bbcf3ba7d635c190762d1905f0cdb8d6b2af98d668d282ab970819d0796e0000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000380000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020d5d9e84739c0813f71d0359e99b9765469d7a41ef279c691c2254c026b06582900000000000000010000000000000001000000000000002092254bddc93af51db85c84258645a7368b11c67713d9b7edb7798f818a67b7d100000000000000010000000000000001000000000000002013cba62cb82888bb083b50937d466b49f9391c00299bd77abb46de4352465093000000000000000100000000000000000000000000000020a3c68cdf76781d19db7aa603f4cd91ea38edfc0b5126585e0c4cc27eb1121e50000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000380000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000001000000000000002055d67c076c5d396d33996ca84ffc7f8d71fd9b1d73515cdaa4c72d0551f4e075000000000000000100000000000000010000000000000020659bdac5e12fafcfbfba4939413f2dbcb8f4622495fa9d7b4be9541e24bf3f5f000000000000000100000000000000010000000000000020d1b5b1709939c022502c02de40058bf39c150bc062b6e13ba9efa821c1b2284200000000000000010000000000000000000000000000002081d62fb6f8e3c63bb07414f173e2f1761186f3a609b96be8e54bf144e18bd1e9000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000380000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000010000000000000020e3f22df1ef809bdd780125e0869fc594b795001da2cb5255ac86c869e41bb3d100000000000000010000000000000001000000000000002042ccda5e4f3610e7833759239b87dcb5feb5654641bd57359476edc936a15e8e000000000000000100000000000000010000000000000020de3c1116c517fc559702c15da18fca7713ea045f49bee0d28a5b11b093f744f5000000000000000100000000000000000000000000000020c8c39661891e6889268d1a75425c16fa10b5ce02a5817678bfb61fd4d7ba745b000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003800000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020dcad9ad63ac90f36294e45ac4e2910b6be1ff4ab582ec77d94b36aee2aaec3b7000000000000000100000000000000010000000000000020fdf80980218da61f93fdbe491188fb7f3191a3b3bb5166ce6014e8f20d70673d00000000000000010000000000000001000000000000002096a037551b0b573c983aaa7a75192a672a3c09151e279ffd3c1e0e670d35fd370000000000000001000000000000000000000000000000208ef32cdd20ab9840d12ae9a0d741f7d3f389289d74ea182f48337a1058f3b15d000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000380000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000202317a666cb7ea69255e854e67aa19b531a4a222717cc9440e4546a3fab5d7ed80000000000000001000000000000000100000000000000209e11faaa3c075b6834d4668a36d21b8294c07a039a232c100665d90b3d03bf4500000000000000010000000000000001000000000000002080cf796e32484601f36528ae033f1d268f38cb3aa9d351ba1b0fcd4e2043d757000000000000000100000000000000000000000000000020a79432284160ffbe7605792344dd2c3b75b783de349a59eac5f705dbb10d4fec000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a6000000000000000a0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020476556fd01eea8de8589b358ad655136b4529120df47439f805a84b80db3f0d4000000000000000100000000000000000000000000000020dfa1f4a78895997367f9cc44c38621692b6fc048ae50b225156222237c41470e000000000000000100000000000000010000000000000020f7575ab7c2207c8a39c727bb104d9b7c0105c5ae631fc01ee25378fbc615b0d20000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000000a0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020e3b0a77cc98e77fc6fdd13ed8259ab6d4de79d49242c183c0de0d56ef4309378000000000000000100000000000000000000000000000020aa1f37e3209956f186a8818de28664641609ece32260276f3cd7bc90fd2eff250000000000000001000000000000000100000000000000205dc15f79b1aa0ed50e58e550fd41c07ace7cdd1101aa37ef4273ae5e9038146f000000000000000100000000000000000000000000000020d1816e01b598e08ee1c459e3283ac87d454a19f2e41f3f85158e9f10b9faef71000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000000a0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000010000000000000020d0c6ac0a7420d305c0b0db904bd7753c10e5ad7e852b470a6ff6c97163a1d16c00000000000000010000000000000000000000000000002070360d152385685b7e662a1e2a50c902712bfecfae32367357c1a56b444bbe8b000000000000000100000000000000010000000000000020abf88fdff603d4d880f1564dd8b5a9e24fd51a61c22d45624f73911e449bcf94000000000000000100000000000000000000000000000020dede73056e97d895ee544cd1f515e7f872b01d10ad51bde6457326fcf11c7b20000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000a00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000001000000000000002027f3bc54e0caa3cf10949e5571695f1c1507a702c9659e3798e08a9c705770cf000000000000000100000000000000000000000000000020930e0dd388f89437381d9fbfbd30a20cad6120bbd212c874b3c1322539175da500000000000000010000000000000001000000000000002009f1dd01603cfe8cb20303e6d66fb1ad83bdc7093f7a52699cb4afa68588b483000000000000000100000000000000000000000000000020d4666304bf2809e0fe3311603148aa6aef2cc88395ddc38a022a9c742dada87d0000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000000a0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000209a4f190afc1d5b77cff588fa4251a0c9a43a7844bb96ea2e5800bc106f21c0b70000000000000001000000000000000000000000000000200b40b1436d0bc1adaefb89a6d250d74c85d9475ff40591b745878d6727b5078d0000000000000001000000000000000100000000000000203c7ec701f5e4b6f4992798f93bc359521c17689c879f0a4d5728d25a602fe261000000000000000100000000000000000000000000000020c1a70db1dbbbf1d266cc63410c3e1f798fbc2f00cc35d561bc0706474f565a7d000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f000000000000001e0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000001000000000000002017458b640f162e7d2ffc58f6689da16dfa3d46aee041a56d60baba3307c3c593000000000000000100000000000000000000000000000020a2502a6ae92a724a6e2a3a94ad93bd71bd29b046475706a32afa43f571c551f200000000000000010000000000000000000000000000002070f93532da12d95bd9b02b2acb02b74a3a532fbd8d1ec178ca7acf3e54865fb800000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001e0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020ead80559e72048aad5e5aee9cf2d51cd297f81e63afc70a01bc77e252efdd4830000000000000001000000000000000000000000000000209556d77d8faa0780c175114ccc703ccef5e23f99123014f3cb64b72a60e79680000000000000000100000000000000000000000000000020635115868949cf601b309c4df546e182524084c9811bb9ee1fb0b250cc7303b00000000000000001000000000000000000000000000000201d592eaf7b775ac80f80f65ac71600e7b42e34c2b41369815d26559f705c392800000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000001e0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000001000000000000002015c175fafb17797c6df0b95eb3e0e3b53d779fa8704c43da7ecffc8f14d2cdec000000000000000100000000000000000000000000000020b1f59360b8604b8aeb5462a45975637ec382c2d69e9898248c3ff0b5c0f84a490000000000000001000000000000000000000000000000201ee947871b7c23ff35900da33157b598a2a0de9b805ba0c5a66fd0f7a777b96e00000000000000010000000000000000000000000000002008ef744cc4c71b3dc0ad6709747a269607614084afb6b3ce67e9224db4721b010000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001e00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000001000000000000002052bbf92873b320b044fee87d383170b9570274940c7da766e23b6f77aa71011d0000000000000001000000000000000000000000000000203ba2c97654de7bfcc8d53977aba10d361172900252c2564628c1c4d0269897da000000000000000100000000000000000000000000000020f5ce7f2db68efde598b83474b5a87a6b370a42d4f72227049cb83d4df11bb6a10000000000000001000000000000000000000000000000204a15bacd4d08e8dc5188fa2617ce3f2048ab093a457dbb1568a132452c1264e70000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000001e0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000200c76146bd78d259f950c8d58437a5baf9a6bb130c93e14380f25bd735a47e106000000000000000100000000000000000000000000000020c594fd6aef9bf0a9ad32de1c2b21fef40fc7cf55d5778a950bfba5bcec02647a000000000000000100000000000000000000000000000020b4a1b1f3f1cb855740daf8c4833a49820c58975955c04f60f0e741d105e354a6000000000000000100000000000000000000000000000020b705227efab8bbcce7e6efa6e6c2c8c24b0165a04b60ba4382b0c252dfa09b540000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000150000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000209a7f6ee04285cc053d122b4d2dc01674868c1c4198d702144ec6673d4f1735470000000000000001000000000000000100000000000000209b10e94ccc495ed067a2c6b3180fdcfddf4c8bc779cdf7fc14dde8feb399309d000000000000000100000000000000000000000000000020080b28b1dece6dde43a662bb2943cbbcfb4977254ddfb567d20ec3694d07decc000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000150000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000203ac1614b3ebad34b37931ec463de127c8bb45876ebd8f753c177b3b708f2eccb000000000000000100000000000000010000000000000020576d77dac3a70e1802ac9cbaf6777f6090720d9e7fccb6078e57d4811b497ee2000000000000000100000000000000000000000000000020ace429d6a2e0ab83426a9b9ba04ca6bb90f71e7ceee02c278a82a7859d4bc1820000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000150000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020b315c72fa41b10fad5bfe97985d9d38cdfb966274cd890d82281a154ddf380870000000000000001000000000000000100000000000000209c160349b93bdba6b3a6c3afcd2503bc1a79db30aeb896003c136aefc2ff9b3a00000000000000010000000000000000000000000000002005c7231b545188d801508269d5e616db314e98d0d1d96b4d859cba418919dce7000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001500000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020dee119a0ca0d75cbae521579b9854eb21e572f571eb2bc9024914fdc09b7d6760000000000000001000000000000000100000000000000204d597031c84975b5e61070724ab3d606668a57320d7d99c5a77ab1a1d5221bb4000000000000000100000000000000000000000000000020792b54430c2c7a5202334fa577281d00396a0c9d5a6149e8832c12c7a186e7b6000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000150000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020fb6f21306c23be5f073086377b0217641f535be016cabf1ed1dc1319d6107c3000000000000000010000000000000001000000000000002064127693e8da9c8e8a48196327c3c787b11da3246b2e852de189d6ccb7f2da7a0000000000000001000000000000000000000000000000208eb0d4e58e0649d2818142c4c7cefb08dd13094d3a575e5054570ef7155a1a53000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000070000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020c999afc4670b92c57b5bdc1307bc519e96e3f6ce67a073eed8ce5ef11f19e6e90000000000000001000000000000000000000000000000209f204347ecc49a4dd4d3f69e4b19d6830b85a828d152c59461d5362f5cb21db2000000000000000100000000000000000000000000000020e2c28e037d30a9b1cafa16794e336898558e512395cfcbdeb25f5f9c08dba0820000000000000001000000000000000100000000000000209dc48d41a2d4c25b90ae286b21502aabe4177429574808eac78aed0ba9b970ba00000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000070000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000000000000000000020586da498cb5e8901c3ec5d5508acf316da62a500cdb2968accfb203b1bea9070000000000000000100000000000000000000000000000020b145ff653878ffcbd547f41efb06850149e78220022ff24e962b02ea4e2f228900000000000000010000000000000000000000000000002040a8544c04c63db69600b9141e0ac5c5c6f2f63672ad293fbf89e200ff76e373000000000000000100000000000000010000000000000020980805126f19ea693dca5bc5ccf2a5596180ccaa904f73633259ef7aabc46a94000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000070000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000000000000000000202ef43b85290f15bd3d8362bd3a87c43882d99278fde40955f79539a250ddcfe5000000000000000100000000000000000000000000000020eb8edb8d4ad346a6f22f37ed4739e1db15924952e1f20fa8193f29d46a4bc88100000000000000010000000000000000000000000000002009a92cdc4908f685ce6b1345b92ded1885178ef2a7aded52334aff5467d169d000000000000000010000000000000001000000000000002006ee5d52edd1f31a36e4a7048840c9439f8ef7333453a9f11e8679d7622f8558000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000700000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020e567f0c95d913448523311549b056d21dfa31416ea385df80191fca7982aa46f000000000000000100000000000000000000000000000020b175634046bfa2f2b9b36cdb156d3733a331af1ccbc15e26288e9c28db4926d0000000000000000100000000000000000000000000000020e371e374acaaf27337ab92c2b2c57caddfa4c8901247aecc181d0f2d03ab2034000000000000000100000000000000010000000000000020a990e84ca9579c1d2e4df0c931557e80f89da355c549b820bd65c57780b190f50000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000070000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000000000000000000209472ffaa4bf8f28e6b02bce59e72f9ef36670aac23b3ce8d524cf6c94d853e3300000000000000010000000000000000000000000000002050248d415788337ff59a4c34ebfd10ed22ae84b98064ecf23658f168d00faceb0000000000000001000000000000000000000000000000204f94e19275c3ad1b0968aa350973ee3c5947aff002b686efe6c16032d7650d02000000000000000100000000000000010000000000000020ffeab4f50dd382561e76011c806cd6dddf3c589391f5e48ba92af3fc97a82252000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000250000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020630872b42a7ea5d62dfc2184c80e80a41c4d9f74c4b045dc408ae07cd64da6c900000000000000010000000000000001000000000000002089d1f5e7ddab385cee9ef3c6e039bf9dba4cd0c7bf5968af1e87a54f1c8b98f4000000000000000100000000000000000000000000000020254ad08d8f651887ccdedd4264cbe8ac8a820f273e7e6a6eec9571b2bee83fed00000000000000010000000000000001000000000000002020ca2ebe06b78b863c42ebd67e820162645990710fb2212c31964405270d49be00000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000250000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000207f982963152f03dde7968faf90b0d81ff99227c62e69923666ebc8173d6462eb00000000000000010000000000000001000000000000002048d27b60aa9bff8a3ad72fa50e506b89b2c70434429163e60518d3b54dd8d4f40000000000000001000000000000000000000000000000201e4829424cc3731a985d6b9986b78d322139a6d6965ff67e79bdb4abe7107c85000000000000000100000000000000010000000000000020cb0c915a2fbf42f67d8ddb4687cdb94a70ea6dba8c337fad662aef43a1ff09120000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000250000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020b123420fcecb372d37588afff58d72c753d9db2472c3503179752ce3dd8e91030000000000000001000000000000000100000000000000207295a2c10b1acf16129d092a7b9af37c389c4566a2bf22d8c69e0cf9f8719868000000000000000100000000000000000000000000000020504c7cfdf9b9d8a744d6d07015dc694b3c1e96fa04d9711bca9e89e47aea70bd000000000000000100000000000000010000000000000020ec94ab368df3700c4e485459b45d7544203947bced6933b6d2419aa51552b1e70000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002500000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000207ed847cad377a356eb74ddd306fd60d367e6c53509cf6d4d21669a79b2262fba000000000000000100000000000000010000000000000020d8587c740444d396342bde08fcc2aa14d09b3841a86867a8968a39985c1aae5f0000000000000001000000000000000000000000000000201b51cd96b5e7d3c5907dc40ebc575470d0b53cb58c9a11acee482a80587db2ca000000000000000100000000000000010000000000000020ce508bfa21ae59f4e3a574d7cf9aa2266b30a92dca771c1fb0e1be0bca3e9fec00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000250000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020cb6ec0139eb350e0de5a5a6e174e0cb4917a55d918936048b34724b384826deb000000000000000100000000000000010000000000000020dbb5f88bfd82f174b6b75b33b6e1b57f9e8c171e2884327da5b36cbefd7067110000000000000001000000000000000000000000000000202f7c3c123b082e8ba8e01175c4f6ae18dec43d9efebf55f2769ff4eef4d2582b000000000000000100000000000000010000000000000020c1bc4adb66edbd4e3dab7de23832af2889cdfe7d4f7313a79599994c65f1d267000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000310000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020e7cde93b02f69b3bdfec265c0a80e30146008063d4d41d7952e09fef525ba56900000000000000010000000000000001000000000000002088b9c36ce6c205415134c822e13277bf26dc808cf4164d31fb3feb408d5a5e06000000000000000100000000000000010000000000000020d668a432d047c9e275f7c7d20e0a761a44ce7e63d76a8974123279ebd303ad5300000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000310000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000209a08d4167dd497190fd45acf9002d380b4bccfa4516d724073519f6dcaa34ff3000000000000000100000000000000010000000000000020eee7a3b5bd32066ff6fae493f197ab42d452b72e6653f36c785e7ffcaaef4bdc000000000000000100000000000000010000000000000020a7afa996971e49948edcc6953b8e85b3a85abca1a8ca02bb441959ca7fbddc1e00000000000000010000000000000001000000000000002025513b7f08a347e3b4653b6a5b7b4504d17f3335eb68b911a07580668480ea5f000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000310000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000000000000000000002055ec1c4f82144f667ff57b0b35d09d06d151bcd64d77112ba763dbb421ec0f560000000000000001000000000000000100000000000000200478375712328a539e0af75efba3145a5b83977f65fd6f26f2bef0e92f4cf47c000000000000000100000000000000010000000000000020f956d888804e64a270d247562d2e4df7cb3baaff4b906f94b4e64fcb67d3fb92000000000000000100000000000000010000000000000020a61e4bd78e6377780bb7580457ace8abedf45db5c6b1905e0fc76ee6b540ec6f000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003100000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000200bc04b47f026e77bdba7fa5067531c8b573f79f8515535e0a7f6cc54758ce5f5000000000000000100000000000000010000000000000020e4d3556944aef39dc24c83873c204349c90de3d0febf5e94f5d30752aacf58d1000000000000000100000000000000010000000000000020695844727e2fac06bb31a161155a39527775fb0591002573a9e4d4aee1e794880000000000000001000000000000000100000000000000201273eb79132092546fe9e443e04ce70d652607cb46845d8269cc51b07a5e2636000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000310000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020907d7781ed9c8c3275965d95e3143f70ea11068a85f6abc38fa31a0fbdfe2c26000000000000000100000000000000010000000000000020a834b11452e58e60e9d991391a3e2e59588fa25493c192ba98d1d33f296b4e32000000000000000100000000000000010000000000000020b4683887999b2d9372eba712b4bcbe56fe7c3bbf097eb71436f394f19c5e540e000000000000000100000000000000010000000000000020ca0bbcf3ba7d635c190762d1905f0cdb8d6b2af98d668d282ab970819d0796e0000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a6000000000000001d0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020a89096b06ea97fc764549f477ec35dc13b208ea05aea251072e9bc82b6f3a78e0000000000000001000000000000000100000000000000202ec5ed8b835c098bcf1fbaa0f4aab5053575fbe2dd675f6a8528d2ae539d073300000000000000010000000000000000000000000000002070f93532da12d95bd9b02b2acb02b74a3a532fbd8d1ec178ca7acf3e54865fb800000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001d0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000206838e20cdd11196c2c33d5322dd690e81a3eee788ea691ed628a7ef36ca21b6b000000000000000100000000000000010000000000000020e4b2b21638b26d0fbd21e1a61477670910de9d6a5a534cc89f2e66926c92590d000000000000000100000000000000000000000000000020635115868949cf601b309c4df546e182524084c9811bb9ee1fb0b250cc7303b00000000000000001000000000000000000000000000000201d592eaf7b775ac80f80f65ac71600e7b42e34c2b41369815d26559f705c392800000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000001d0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020d0fd57f00841b509d4c6d2212ccb38587bbc741e02dedf856402a2bdd12ad0ad000000000000000100000000000000010000000000000020197b3fade2da4dccae7c39182e13ca3c80d7ab354bd093846a22e052814766ac0000000000000001000000000000000000000000000000201ee947871b7c23ff35900da33157b598a2a0de9b805ba0c5a66fd0f7a777b96e00000000000000010000000000000000000000000000002008ef744cc4c71b3dc0ad6709747a269607614084afb6b3ce67e9224db4721b010000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001d00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020e167853023255bc66f0953cc3ff2785ec81d96ef333e5412c12995ee607e79f2000000000000000100000000000000010000000000000020ea6edfa94c83df2c0120776cb5622744d2e6b641fe47e78813b62588fad5a6e8000000000000000100000000000000000000000000000020f5ce7f2db68efde598b83474b5a87a6b370a42d4f72227049cb83d4df11bb6a10000000000000001000000000000000000000000000000204a15bacd4d08e8dc5188fa2617ce3f2048ab093a457dbb1568a132452c1264e70000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000001d0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020977dcc0f390edc4c8e7c60ca37d139fd8af75cdd07d7f51df6f4a33958ded816000000000000000100000000000000010000000000000020fd33a21eeff04663387fcf1c31e815a571114521fabf808a5505ae8eb3bc6104000000000000000100000000000000000000000000000020b4a1b1f3f1cb855740daf8c4833a49820c58975955c04f60f0e741d105e354a6000000000000000100000000000000000000000000000020b705227efab8bbcce7e6efa6e6c2c8c24b0165a04b60ba4382b0c252dfa09b540000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f000000000000001d0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020a89096b06ea97fc764549f477ec35dc13b208ea05aea251072e9bc82b6f3a78e0000000000000001000000000000000100000000000000202ec5ed8b835c098bcf1fbaa0f4aab5053575fbe2dd675f6a8528d2ae539d073300000000000000010000000000000000000000000000002070f93532da12d95bd9b02b2acb02b74a3a532fbd8d1ec178ca7acf3e54865fb800000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001d0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000206838e20cdd11196c2c33d5322dd690e81a3eee788ea691ed628a7ef36ca21b6b000000000000000100000000000000010000000000000020e4b2b21638b26d0fbd21e1a61477670910de9d6a5a534cc89f2e66926c92590d000000000000000100000000000000000000000000000020635115868949cf601b309c4df546e182524084c9811bb9ee1fb0b250cc7303b00000000000000001000000000000000000000000000000201d592eaf7b775ac80f80f65ac71600e7b42e34c2b41369815d26559f705c392800000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000001d0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020d0fd57f00841b509d4c6d2212ccb38587bbc741e02dedf856402a2bdd12ad0ad000000000000000100000000000000010000000000000020197b3fade2da4dccae7c39182e13ca3c80d7ab354bd093846a22e052814766ac0000000000000001000000000000000000000000000000201ee947871b7c23ff35900da33157b598a2a0de9b805ba0c5a66fd0f7a777b96e00000000000000010000000000000000000000000000002008ef744cc4c71b3dc0ad6709747a269607614084afb6b3ce67e9224db4721b010000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001d00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020e167853023255bc66f0953cc3ff2785ec81d96ef333e5412c12995ee607e79f2000000000000000100000000000000010000000000000020ea6edfa94c83df2c0120776cb5622744d2e6b641fe47e78813b62588fad5a6e8000000000000000100000000000000000000000000000020f5ce7f2db68efde598b83474b5a87a6b370a42d4f72227049cb83d4df11bb6a10000000000000001000000000000000000000000000000204a15bacd4d08e8dc5188fa2617ce3f2048ab093a457dbb1568a132452c1264e70000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000001d0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020977dcc0f390edc4c8e7c60ca37d139fd8af75cdd07d7f51df6f4a33958ded816000000000000000100000000000000010000000000000020fd33a21eeff04663387fcf1c31e815a571114521fabf808a5505ae8eb3bc6104000000000000000100000000000000000000000000000020b4a1b1f3f1cb855740daf8c4833a49820c58975955c04f60f0e741d105e354a6000000000000000100000000000000000000000000000020b705227efab8bbcce7e6efa6e6c2c8c24b0165a04b60ba4382b0c252dfa09b540000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000010000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020ce2da5dd3f1d2499114e62007db0bc8b52860a97086c4d1d9b291f96e0ac9c2e000000000000000100000000000000010000000000000020fc1dbba6f9b455616fa548f07000bd186f0be1060371081b1c952c87cb2969850000000000000001000000000000000100000000000000205bc3e12c36d4a2e20b1b195ac346c64db1219ed22eb08085da4d26fcd4973a5e0000000000000001000000000000000100000000000000209dc48d41a2d4c25b90ae286b21502aabe4177429574808eac78aed0ba9b970ba00000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000010000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000000000000000000020bf352c60784b74b941824f2d63cf3836272db67d7aeeacad2aebe65815faf2a5000000000000000100000000000000010000000000000020426a93f6deffd2b075525a4dae94d94e1a8e6a36b7caff23457ae4cce303aa10000000000000000100000000000000010000000000000020e625f3331016e7cd88bea7a7b855bae1ee013995c9ef355b8748e4878dd9c543000000000000000100000000000000010000000000000020980805126f19ea693dca5bc5ccf2a5596180ccaa904f73633259ef7aabc46a94000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000010000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000000000000000000202b14082c23a02f1d9d6db9546bbf2312f865ca20039d204443ce8702eca55d60000000000000000100000000000000010000000000000020f020441b9681e335c14a2a6c21dd8510b27a0dae0eec61b72fa315a598c8b87f000000000000000100000000000000010000000000000020ddf36e15c6d2cad2a2d13ca341f8f429ea1de4012e969c8489e61f092d7f701d00000000000000010000000000000001000000000000002006ee5d52edd1f31a36e4a7048840c9439f8ef7333453a9f11e8679d7622f8558000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000100000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000200043a3e5aa00392afa1907a58865b4472da25d1bb465711605b4bce58b63030300000000000000010000000000000001000000000000002031a4776534529348397cae2c9d705a8eafe3961afed35fdad2915095b5efbf33000000000000000100000000000000010000000000000020886082a9355e3afea404279c3bebead20b99039dd4aa0b3d0dab726e1e29aff9000000000000000100000000000000010000000000000020a990e84ca9579c1d2e4df0c931557e80f89da355c549b820bd65c57780b190f50000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000010000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020c82ca78efe4b64d5751be30417b609833fac301f253ecbffe41e8e9bee96cff60000000000000001000000000000000100000000000000206ebbae03bedcb30a6ac53ee99b1ba731605aa9a26e3a2462ba854af10e81ed47000000000000000100000000000000010000000000000020e211041d56d70c70c0fe4028f21a169da1cd4ca4e960c648ebea202d6c43674c000000000000000100000000000000010000000000000020ffeab4f50dd382561e76011c806cd6dddf3c589391f5e48ba92af3fc97a82252000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000030000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020b7c8e313feed160e8acf05ea4bfb6f176446c2ac0bc9f2abc9b686508ab52f6c0000000000000001000000000000000000000000000000209671522c78c40e86ef0e8a667a3e46003403098881dba6475154303e1c3e65ac0000000000000001000000000000000100000000000000205bc3e12c36d4a2e20b1b195ac346c64db1219ed22eb08085da4d26fcd4973a5e0000000000000001000000000000000100000000000000209dc48d41a2d4c25b90ae286b21502aabe4177429574808eac78aed0ba9b970ba00000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000030000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000000000000000000020c7c617fe5a8e3fcee395b25f5aad1075de8af4c63d02a7a5ccf0ebcc3757baa10000000000000001000000000000000000000000000000201fe587fe304db71b83584845c66187566a5fb7270585460d0475013af24044b6000000000000000100000000000000010000000000000020e625f3331016e7cd88bea7a7b855bae1ee013995c9ef355b8748e4878dd9c543000000000000000100000000000000010000000000000020980805126f19ea693dca5bc5ccf2a5596180ccaa904f73633259ef7aabc46a94000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000030000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020ce056a02bde877e3b53dd1faa6938832c1ed6fadac97fd1c0a924161b6298fa2000000000000000100000000000000000000000000000020254828136b43e34900d85850fa1210c25e9d1c343f57d660963534a5e494b204000000000000000100000000000000010000000000000020ddf36e15c6d2cad2a2d13ca341f8f429ea1de4012e969c8489e61f092d7f701d00000000000000010000000000000001000000000000002006ee5d52edd1f31a36e4a7048840c9439f8ef7333453a9f11e8679d7622f8558000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000300000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020c066efe3dfef71694149148ee6cb2872aefd1b4f2fc9862252abee42af30ed5a000000000000000100000000000000000000000000000020bb61afaca75702079a77cb4ffb618e76255194cb8ac3e09cf817da739cc0038d000000000000000100000000000000010000000000000020886082a9355e3afea404279c3bebead20b99039dd4aa0b3d0dab726e1e29aff9000000000000000100000000000000010000000000000020a990e84ca9579c1d2e4df0c931557e80f89da355c549b820bd65c57780b190f50000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000030000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000000000000000000002051a58812d4ed2697e8b31024f55f4062373f3388fd3d1701366bc11ac7a6b961000000000000000100000000000000000000000000000020e0698d131d704ec64db6c2ee76f3fff3800a90d403f81572de0ab695e257b3e9000000000000000100000000000000010000000000000020e211041d56d70c70c0fe4028f21a169da1cd4ca4e960c648ebea202d6c43674c000000000000000100000000000000010000000000000020ffeab4f50dd382561e76011c806cd6dddf3c589391f5e48ba92af3fc97a82252000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000080000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020657f400c23f985ef1ba27d0e61eec710dc328bb9ca9d9fcbbed56910fe31e4490000000000000001000000000000000100000000000000204e8bc169e0bffb7af86e442b025c73a9c0e2c8fcbfdcbdbfd7d568446045f1ae000000000000000100000000000000010000000000000020f7575ab7c2207c8a39c727bb104d9b7c0105c5ae631fc01ee25378fbc615b0d20000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000080000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020325051efdb8424e62d624b11d6b7eeb927253341aa3927034fbb0c8bf76c12ff000000000000000100000000000000010000000000000020785181f64823ec7b563f1cdf18df75b075d0a5963a0db15b3a9e3b0b42f36f1b0000000000000001000000000000000100000000000000205dc15f79b1aa0ed50e58e550fd41c07ace7cdd1101aa37ef4273ae5e9038146f000000000000000100000000000000000000000000000020d1816e01b598e08ee1c459e3283ac87d454a19f2e41f3f85158e9f10b9faef71000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000080000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000100000000000000202eeead91b20ab57873ca7c783915a4212ed0dc2f7961aab41598ea0bc8a47329000000000000000100000000000000010000000000000020a6ac2199362ac987e04ad05199fe7f8be4b60786974730c5353094867d88f34f000000000000000100000000000000010000000000000020abf88fdff603d4d880f1564dd8b5a9e24fd51a61c22d45624f73911e449bcf94000000000000000100000000000000000000000000000020dede73056e97d895ee544cd1f515e7f872b01d10ad51bde6457326fcf11c7b20000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000800000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020920e2801b283c6626363cc9ab21f52393946e3a96b1195de32cbde245b3fa8d8000000000000000100000000000000010000000000000020cf8a0f1ddefe7b4046369acf63949764e63161ba93c9f157762361c30aae1fc100000000000000010000000000000001000000000000002009f1dd01603cfe8cb20303e6d66fb1ad83bdc7093f7a52699cb4afa68588b483000000000000000100000000000000000000000000000020d4666304bf2809e0fe3311603148aa6aef2cc88395ddc38a022a9c742dada87d0000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000080000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000207835bfb9721cf146284a361fac9b687f1d55206c50ec6b050d1a1c0f1283c2f50000000000000001000000000000000100000000000000207a3fa367a923e5d12e87ccdb6cd209b3bc3cc0afde4ed5f86101656aafd030520000000000000001000000000000000100000000000000203c7ec701f5e4b6f4992798f93bc359521c17689c879f0a4d5728d25a602fe261000000000000000100000000000000000000000000000020c1a70db1dbbbf1d266cc63410c3e1f798fbc2f00cc35d561bc0706474f565a7d000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000290000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000204b88604a6608c6eb9ba3bede044e248d62becadb080a456681805ab480b64a2400000000000000010000000000000001000000000000002092ff38622b2decefcf8307aa018adefdfdaa06fc5a520c0c3a04990f33027694000000000000000100000000000000010000000000000020a346fbbeee725da089a6715dac946ab17533f7a77d571694ca1f1b28abb7d944000000000000000100000000000000000000000000000020bc7cafa2d5bbcd43a2687bac1aaae39ea07c2b052355ee18f7bed28530381a1900000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000290000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000000000000000000002046b4103846ae2c10a547fe76a6b5a371acc433d524e7482d268b79767c7664dc000000000000000100000000000000010000000000000020a7171d4fa61fd12128f5c4965241652c8ddc0c46e8c7a964ffcf0984ffd7f89500000000000000010000000000000001000000000000002052ba89114da2853e8fa07d551806893e486429c35967e90f1364b3d437abdd22000000000000000100000000000000000000000000000020f69c63796b0fc3bb3288db5fc6b6321528bbbae678a35651696d958320b7b7430000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000290000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000000000000000000002070ac9c1a1cc0f370eef8792db4e8a07c0a2b92e6fe6e9e2b6988a0f7d968a20b000000000000000100000000000000010000000000000020c53a0cd0107f66cc790becb38f5fee3c0f9d025124f698f0f2467cde1fbb7f93000000000000000100000000000000010000000000000020512ede82de18eac361b0347346d45577998f11f0951205ca4172f9d850b9919b000000000000000100000000000000000000000000000020907caeb633215ff4129e7dab9f17c9025c93f92b16178fd8678a98fad237f0c60000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002900000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020b6e877a515adfcb592a770d462b43e449cee8c738d16f969724fb575ae8bb0b7000000000000000100000000000000010000000000000020580ef9da1ed5e2babc435eca9ea73f027bf97010b64a6f63c69c2aadf5386b910000000000000001000000000000000100000000000000200df33e0d9ca72d06a434af2c6b972a6b03667095ac1a683b86514e0012239182000000000000000100000000000000000000000000000020f873579facce3b51fb36341332ab2926a95297aa0acd0b4108cefea53d9e1c8a00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000290000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020b09d90014812ec62509979fb5d4af4e69400cc5cd308cd96ced13e9dd3199e310000000000000001000000000000000100000000000000200dbed97830aea5096cb060a71b37c812fde90fb3a125044efa801f95addf091d0000000000000001000000000000000100000000000000204b8c5f91ebd422cdb230fb374d30859759d449e266b2903f6b848cf8e5baf94f00000000000000010000000000000000000000000000002083502f4dae1d1e7cce3b35cd08cd8214523868a7bad81a68fd16bfd40a434166000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a6000000000000000d0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020b2bd9166fb292fd068715be077faabd5100a082db2ee30b660a7a840a453295e00000000000000010000000000000001000000000000002057d79dbf8ed8b8aa3585c69adf87ef75ce64bdf75ac79a37fcbc979ba37b0a3e000000000000000100000000000000000000000000000020e4531c0cf3964a849077d3f66aca1c780770dbd36f02f9e591cac1251871b88a0000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000000d0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000205e14be2c5de23e6ed70fd6d842a4c814558815484501d6531472c2a4b9b7c626000000000000000100000000000000010000000000000020c3bd632f94a0f936e286d09638e32d9a2fc3eea8f13d18b4ae707edd67fdf6740000000000000001000000000000000000000000000000204e242999845fcac82f38a2f8827ba9e31d01ad478796f9013f43e0bec62d088f000000000000000100000000000000000000000000000020d1816e01b598e08ee1c459e3283ac87d454a19f2e41f3f85158e9f10b9faef71000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000000d0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000000000000000000002090ff676b9c14f4671a0e91cf403a88fb0b22e7a8a8a370aba0a28e26bcea1ac300000000000000010000000000000001000000000000002020093024ea2eaeb3c5934a41935a11dab2086c3d0aab8084952a99d9f0d224c20000000000000001000000000000000000000000000000207e61af4d68362cc7280f55cf450babaa4c27e0d7b623080a1dc3e5db95a6761d000000000000000100000000000000000000000000000020dede73056e97d895ee544cd1f515e7f872b01d10ad51bde6457326fcf11c7b20000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000d00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000000000000000000002031239eb1c08af680c4f00771654ce894f0d3587f58ea53c47ed4a11c1fa85145000000000000000100000000000000010000000000000020a91a262b04c6a7139a4bd4ed8b0f30807db95327049cf2a6d7b25f8be94e37b90000000000000001000000000000000000000000000000208184ee99edcbc305656197375ced84668d6a6dfe60525a4437554af40db6661e000000000000000100000000000000000000000000000020d4666304bf2809e0fe3311603148aa6aef2cc88395ddc38a022a9c742dada87d0000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000000d0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020eb8d9836cb953c6437c496ece6cbdfdd7243ec51671ccb3af47a85fa778e312c00000000000000010000000000000001000000000000002018c3f53aac4183df50ec2d566e245042dd3e3d71adf78621df52d71069399b8400000000000000010000000000000000000000000000002047d66e60185c2492df2be91f5c8e879243c3ec6d4ebe0b5f2c37fcf0fff4d188000000000000000100000000000000000000000000000020c1a70db1dbbbf1d266cc63410c3e1f798fbc2f00cc35d561bc0706474f565a7d000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f000000000000002c0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000100000000000000203143eaf6c1aa46c7aacd87875465de486e36c316b7a0b8bddd6c1517dc726d4d000000000000000100000000000000010000000000000020f10b3d1735c0e4a98365cd6a45c7b241ee1170e0a7ba2fc4a24bab4dfa03f86b000000000000000100000000000000000000000000000020a99ec68e5e702c95d72c271dfc6b7fba83a95d182bfe10c3b55beafee6b02033000000000000000100000000000000000000000000000020bc7cafa2d5bbcd43a2687bac1aaae39ea07c2b052355ee18f7bed28530381a1900000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba3610000000000000002c0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020325148bc2c92b4a9b7fbd60e3c2c802e14a460b09bb186e104c1c59b926381ac000000000000000100000000000000010000000000000020bcfd43a16b89cd418f8366dfd07ee2192ea7ffa028e030d1b656dc88979acb7c000000000000000100000000000000000000000000000020eb65f60cc50d4a78bbd6805dbdb2bf94cc2376e36aa8b971a31f71d4de0675d8000000000000000100000000000000000000000000000020f69c63796b0fc3bb3288db5fc6b6321528bbbae678a35651696d958320b7b7430000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb000000000000002c0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000100000000000000204f0fb56f75e03da7f2f554b9aab31d03c16451499c7e038f1b1254547541cefb000000000000000100000000000000010000000000000020392bbf45b43f0b143a079c45cdf97d23e309c818a7f50d8a138242f783f140e000000000000000010000000000000000000000000000002006426e33baa1776913fabf5a4a6b22a45faa4944ecb6ee3596d2a7f071dad382000000000000000100000000000000000000000000000020907caeb633215ff4129e7dab9f17c9025c93f92b16178fd8678a98fad237f0c60000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002c00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000100000000000000205d5491afbc2809464939001fd12ae88cb0a41ac4661174168145ed550bc70fd1000000000000000100000000000000010000000000000020facfada9baddf0e1d85bdc12bcb699700bc1eef3a5c1ac428f0a1b755f36b17400000000000000010000000000000000000000000000002045de5171730c798b920963229c38e2585a2ba74ae374a05c055e8f9ca4de381a000000000000000100000000000000000000000000000020f873579facce3b51fb36341332ab2926a95297aa0acd0b4108cefea53d9e1c8a00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee2000000000000002c0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000001000000000000002045f539421644e8c322c67c727085f4fa90364e2b03fedb21592e199092e759af00000000000000010000000000000001000000000000002045bc4c337b54e6e486f7686f4544d67b52d3d9407afb6f807b84c181ecad3077000000000000000100000000000000000000000000000020fce731c6ff148191e5989829d154266d461abbe1b87f3bf49e080e482df6295c00000000000000010000000000000000000000000000002083502f4dae1d1e7cce3b35cd08cd8214523868a7bad81a68fd16bfd40a434166000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000180000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020e37ac79746bf4ccddc8c206c6aed5212120d8eb3fc8f9deefaecc4cb8cee272600000000000000010000000000000001000000000000002064e8ee4e1f10a0c37b320e29748186b9e21c030e00ccb00c88b21962c5f0f301000000000000000100000000000000010000000000000020087a599f409cb7bacc0662f1cbc4762c6f1a1276b1ec901eff46c07ae65a8c6900000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000180000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020cc0712b34302d3e6312f8647a0a6fa2b486544a0d2e848deaf69f02cb204a167000000000000000100000000000000010000000000000020b8f1edd8329da4a7d85eebc33d21ba29663838aa392d4b38abe6c3a3fc8039ba000000000000000100000000000000010000000000000020c6bf6988a3e7187fae893c7eac58fd5d4e190f4f27238b2c7529d1f3965c96c30000000000000001000000000000000000000000000000201d592eaf7b775ac80f80f65ac71600e7b42e34c2b41369815d26559f705c392800000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000180000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000001000000000000002096aa3031b3fe3f10a3f58af8d0bdb75f0e49a9ba47f632761dcbaa87e948d0960000000000000001000000000000000100000000000000208654ba3f3a471881a1ca07ad0134da045fba51136fc896da6ec67bfcd91573740000000000000001000000000000000100000000000000203ef5c9702626ef1d8658d6fd366e6eccf85b6bc4df13c0bb45cf2cd03ed14cdb00000000000000010000000000000000000000000000002008ef744cc4c71b3dc0ad6709747a269607614084afb6b3ce67e9224db4721b010000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001800000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020c30eef258145d30eda1c64b433b7e983e0045f54639e7f4262d7f3c9a5ad2e8c000000000000000100000000000000010000000000000020095442c6eb9b5d21a073d82e33b0a318459f5eba2be957b08f2effbf317f97c50000000000000001000000000000000100000000000000203e2095fe80077dc9629cd9c8a40245961543a9420478c0c9442afc86a4142c350000000000000001000000000000000000000000000000204a15bacd4d08e8dc5188fa2617ce3f2048ab093a457dbb1568a132452c1264e70000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000180000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000202303afb97227519b0d04097e4e48bcfc01846cc471033f9c5f9860318330912a000000000000000100000000000000010000000000000020887135bbc11bb37e81167b1bd7f635abd792ae414769e49a3d7009ecd03a6a9f000000000000000100000000000000010000000000000020375d4ed2adacd2b33684527fb299ea4f3b26ea60a3e425eec8be3753fb113dad000000000000000100000000000000000000000000000020b705227efab8bbcce7e6efa6e6c2c8c24b0165a04b60ba4382b0c252dfa09b540000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000210000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020b0ab6e706afe61983c5bf1d6e3d09621da7d9cd32bdd7e2130b81dcc46ef5802000000000000000100000000000000010000000000000020d087600766bd1df7913f14ae88a2e9b5b651504535f46ee5da14954af94de668000000000000000100000000000000010000000000000020cd2cd9ad2c779aa3995be1014c80f94a5247dc5109218180e006fbbe588ce2d800000000000000010000000000000001000000000000002020ca2ebe06b78b863c42ebd67e820162645990710fb2212c31964405270d49be00000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000210000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000000000000000000002086cb5263dbaf418e96721addfd841cb67f9896781c9e8093170a2bebd35c8a0d00000000000000010000000000000001000000000000002005e8acde41240846b1b148e6f1731d982d9499b315b49571f3c4e12d88da5822000000000000000100000000000000010000000000000020dfd7eac1317ff666e7a446a260d70430c9aa0f0bfccfe2edf4ae24a5d163595d000000000000000100000000000000010000000000000020cb0c915a2fbf42f67d8ddb4687cdb94a70ea6dba8c337fad662aef43a1ff09120000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000210000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020d7e7c468e06a8e592edbe1f9eff3164f0499e8ad0072da91fd4fa087ea820a1000000000000000010000000000000001000000000000002064922111b65302bddd53948632f9de2e4135390b8620b248b8a335776dedfd030000000000000001000000000000000100000000000000205dea807bd3761c569e5d91569ff1a4d18ca2750ddf526909660f91b2f84080cf000000000000000100000000000000010000000000000020ec94ab368df3700c4e485459b45d7544203947bced6933b6d2419aa51552b1e70000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002100000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000206394d562d30d4d72e250c260ecbf498fb3d176889437362e030db290cfd3b22b000000000000000100000000000000010000000000000020aa69a887755987122b41014784240cfa2ea17a4e9b3aeba12dc7762da7582ecc000000000000000100000000000000010000000000000020c802860c649238e4c1cbd0ff648821a708a95501e146298b5b303abf07320669000000000000000100000000000000010000000000000020ce508bfa21ae59f4e3a574d7cf9aa2266b30a92dca771c1fb0e1be0bca3e9fec00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000210000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020af5fad30063ecb19951eac8cf60da4f79cdbb44b8297f1e89b410ad48971a7a700000000000000010000000000000001000000000000002001ae3a0c28f45072672fa1d9d722f50b96f496c2095844698ce94190b48086ca000000000000000100000000000000010000000000000020378b42427141ebdcf4a6aaa2ee39a4e2bd01cb4125d3f5ce563ae81c900aa929000000000000000100000000000000010000000000000020c1bc4adb66edbd4e3dab7de23832af2889cdfe7d4f7313a79599994c65f1d267000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000130000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000000000000000000002090b33c873032a5ec45b5f67351f43f1b225ffd1fb110a4b7260789aee51a15d00000000000000001000000000000000000000000000000200314646f9ee1f2da5ba523b66c95aea6a8139895748d499e7ea045d702e5076c000000000000000100000000000000010000000000000020931fc0f60710e5550ab975b9da43260c532daa1aa0981b844a267625739ffb1b000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000130000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000000000000000000002046fbba018a8a4a6e5e98ff98b6f815b2ded50ca9a7a90716180a022f9187825d00000000000000010000000000000000000000000000002028038eef8da57d82ce0de2ccd5f23763a39282ebbd5fb66a194bcecda2353b37000000000000000100000000000000010000000000000020db75f2f16c24e1f86b75a7358eb0bff98736d767e792ba6500dc20c7a0f5b35f0000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000130000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020d2ffec8fc1d53dec40b42a89c0cae0dc549a408cc92a2e1de6b140998dee7cc700000000000000010000000000000000000000000000002093ba70ed0c69d5b989f971113943ff263312cc3df6696a3a6c2f47a6d1d600a00000000000000001000000000000000100000000000000208eca8e88d782a2c50068f91856cdb198e83fe75b53d95126db0ce5ba952fe000000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001300000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000202c0f8e4c859a1b20d731414777322cb6bdf2e51a797b98f208ceff77a4018e8c000000000000000100000000000000000000000000000020fadaa9ce6822813c952cf021b4274e0bb104bcbd8836b7475735d844eea89533000000000000000100000000000000010000000000000020ef20ce255fff4244508dc0bf36aba9eeda1f94ba8303d6b23520cd52b598e748000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000130000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000000000000000000002014803cd2ff52736be7bae826f5a432e5b31ba001fda84d1a774978f7b7f4f6f70000000000000001000000000000000000000000000000205761fffcf89e32cefe31af94ba1a6ba27b6bcb99a3272756b2193dd132a912fb00000000000000010000000000000001000000000000002003de737e05bbc77f493cd34846521552aa2f36e8056c458268b5b2cb15e5e244000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000150000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000209a7f6ee04285cc053d122b4d2dc01674868c1c4198d702144ec6673d4f1735470000000000000001000000000000000100000000000000209b10e94ccc495ed067a2c6b3180fdcfddf4c8bc779cdf7fc14dde8feb399309d000000000000000100000000000000000000000000000020080b28b1dece6dde43a662bb2943cbbcfb4977254ddfb567d20ec3694d07decc000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000150000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000203ac1614b3ebad34b37931ec463de127c8bb45876ebd8f753c177b3b708f2eccb000000000000000100000000000000010000000000000020576d77dac3a70e1802ac9cbaf6777f6090720d9e7fccb6078e57d4811b497ee2000000000000000100000000000000000000000000000020ace429d6a2e0ab83426a9b9ba04ca6bb90f71e7ceee02c278a82a7859d4bc1820000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000150000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020b315c72fa41b10fad5bfe97985d9d38cdfb966274cd890d82281a154ddf380870000000000000001000000000000000100000000000000209c160349b93bdba6b3a6c3afcd2503bc1a79db30aeb896003c136aefc2ff9b3a00000000000000010000000000000000000000000000002005c7231b545188d801508269d5e616db314e98d0d1d96b4d859cba418919dce7000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001500000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020dee119a0ca0d75cbae521579b9854eb21e572f571eb2bc9024914fdc09b7d6760000000000000001000000000000000100000000000000204d597031c84975b5e61070724ab3d606668a57320d7d99c5a77ab1a1d5221bb4000000000000000100000000000000000000000000000020792b54430c2c7a5202334fa577281d00396a0c9d5a6149e8832c12c7a186e7b6000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000150000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020fb6f21306c23be5f073086377b0217641f535be016cabf1ed1dc1319d6107c3000000000000000010000000000000001000000000000002064127693e8da9c8e8a48196327c3c787b11da3246b2e852de189d6ccb7f2da7a0000000000000001000000000000000000000000000000208eb0d4e58e0649d2818142c4c7cefb08dd13094d3a575e5054570ef7155a1a53000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f0000000000000050000000000000002100000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000207ed7024cfb851e729174b4bebcb3b43b7e74c7bf66e598fab0fe7503c28e28b9000000000000000100000000000000010000000000000020eaac2ba91abd5bedfb2645fd52534b0616c14c1d5a3ca5c8b57f170ce3a0123c0000000000000001000000000000000100000000000000201fbe6a1d0ec9dde7d25203e3597b6c9a6d52920b54bd402cbb49f44f820ecf2c0000000000000001000000000000000100000000000000205af8bd106a023dca58d9a2c1bf942eb3d9260592c7e617bf3803dc794a32ef1000000000000000010000000000000001000000000000002022bf8b04326101ffd27638a46eb4cb6dede7d786c49f4991191e5801277902d400000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000010000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000000000000000000204ffcc22c01ec89a91054ab22f4a6d8c255900fc815ae761f6b79cbe12ddc5505000000000000000100000000000000010000000000000020e435bd09932a6fdfff43746acb12d98720259cdc5ccdd25434bebb30b64793c9000000000000000100000000000000010000000000000020a379eef4ebc6c053f9ebce7246a926491170464546aad4ee25049465b0409d3b000000000000000100000000000000010000000000000020b8b8d6428fc5a3713842905985e54c13a460d972a6fedc366bd72b9cf28b4717000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000002100000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000207ed7024cfb851e729174b4bebcb3b43b7e74c7bf66e598fab0fe7503c28e28b9000000000000000100000000000000010000000000000020eaac2ba91abd5bedfb2645fd52534b0616c14c1d5a3ca5c8b57f170ce3a0123c0000000000000001000000000000000100000000000000201fbe6a1d0ec9dde7d25203e3597b6c9a6d52920b54bd402cbb49f44f820ecf2c0000000000000001000000000000000100000000000000205af8bd106a023dca58d9a2c1bf942eb3d9260592c7e617bf3803dc794a32ef1000000000000000010000000000000001000000000000002022bf8b04326101ffd27638a46eb4cb6dede7d786c49f4991191e5801277902d400000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000010000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000000000000000000204ffcc22c01ec89a91054ab22f4a6d8c255900fc815ae761f6b79cbe12ddc5505000000000000000100000000000000010000000000000020e435bd09932a6fdfff43746acb12d98720259cdc5ccdd25434bebb30b64793c9000000000000000100000000000000010000000000000020a379eef4ebc6c053f9ebce7246a926491170464546aad4ee25049465b0409d3b000000000000000100000000000000010000000000000020b8b8d6428fc5a3713842905985e54c13a460d972a6fedc366bd72b9cf28b4717000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000003600000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000010000000000000020849f2b1f21df2ce4e701e935453d3a0e4115b6a2a8d075608035a88159cd9bf200000000000000010000000000000000000000000000002044077fb626c21b86b05e6607087853c88990ce85f620523b57ded4d77fa00deb0000000000000001000000000000000000000000000000203e91cf9fe968f301931a38865a0ef8edba05ddd912d2579a948fe706de6f6ec20000000000000001000000000000000100000000000000200247efeb8213912082e29ea2ef805a95ec45bbf7e81039cae60e1e2cc9f70398000000000000000100000000000000000000000000000020341d651035e8af56ef3eb04b8092ff8a9e98be3fc659ac423cd204e9e75c5bdc00000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000160000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000010000000000000020c68f67732b556dafe5e6cc710dcf62a4f48d186e1177070f41403a3ea73eda7f00000000000000010000000000000000000000000000002034e8bb0c47b5f4c22eaf01dde0989cbdb99d29897ff4d4ce2af0816deae250d300000000000000010000000000000000000000000000002078033d92f40a38ac4cc7886e9667aaded348dd6ee664101a06b369949493fbb900000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000000800000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000100000000000000208f4914df53c50f650eaeb1e2644816a4d6571c8eadc34d0851795c3f6011fdb00000000000000001000000000000000100000000000000206f6f08120957917775f7e12d4d9fd5057d4ceeffb3313e9087de7e748a235134000000000000000100000000000000010000000000000020f0c276f87c11a544c7dff23228f592c3b45684bf70982045e5db020d2ee3ff180000000000000001000000000000000000000000000000200da9d11aaea100332a200903d50e52aa35159a71dc619287204508beb8f25033000000000000000100000000000000010000000000000020abc911f24faf622896006bddac6f447414b585d2ae78c0de86550319adfa6ba100000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000080000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000010000000000000020fdfdce8038e314379ee4ef9d7435ac3bb67f81a42222ada24ec0b5edc53504e4000000000000000100000000000000010000000000000020ccea233de53953c0a0be4befba3181d87583ecf3ee74bc0c1b609c57583968bf0000000000000001000000000000000100000000000000201e7f0e6313dd3a48bccca00c1b7955c16cb8be0aef8b3ed3dc6c35130ff160af000000000000000100000000000000000000000000000020c6ac9586a5a315e9ce7efb473123de78e6943be10030817ad46f29947c4f461f000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000000900000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000000000000000000020b4b77abaefede57853903c9155b4817fcdab1186aa4d78f63abb195247b0ba190000000000000001000000000000000100000000000000206f6f08120957917775f7e12d4d9fd5057d4ceeffb3313e9087de7e748a235134000000000000000100000000000000010000000000000020f0c276f87c11a544c7dff23228f592c3b45684bf70982045e5db020d2ee3ff180000000000000001000000000000000000000000000000200da9d11aaea100332a200903d50e52aa35159a71dc619287204508beb8f25033000000000000000100000000000000010000000000000020abc911f24faf622896006bddac6f447414b585d2ae78c0de86550319adfa6ba100000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000090000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000000000000000000020e1c255daaa951116cdbc9d3e573d3cc9d0809bc3de7dbfc5e1243febc3afb770000000000000000100000000000000010000000000000020ccea233de53953c0a0be4befba3181d87583ecf3ee74bc0c1b609c57583968bf0000000000000001000000000000000100000000000000201e7f0e6313dd3a48bccca00c1b7955c16cb8be0aef8b3ed3dc6c35130ff160af000000000000000100000000000000000000000000000020c6ac9586a5a315e9ce7efb473123de78e6943be10030817ad46f29947c4f461f000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000002400000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000100000000000000200a02cb614bf9361920cbe4da3b2aa0e5c76b4a05ee7685fbe7fe220b69b26a31000000000000000100000000000000010000000000000020266177fdcc4d675568f2cf052c7330dd20c5ba8ea8ed31a8f8ca6b52ba5126bb00000000000000010000000000000000000000000000002037aee6114b0e64049396c6974301981cc460b03b844091c0c8331ea0fd369b4f0000000000000001000000000000000100000000000000205af8bd106a023dca58d9a2c1bf942eb3d9260592c7e617bf3803dc794a32ef1000000000000000010000000000000001000000000000002022bf8b04326101ffd27638a46eb4cb6dede7d786c49f4991191e5801277902d400000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000040000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000010000000000000020f9cc1a2a80f33c6788bbb46711c7348050019176cd19f0b641afa766ba2eccb60000000000000001000000000000000100000000000000207c89f71843664bf97f22261fc06f08da09e4584d95f32099263db21dece008f10000000000000001000000000000000000000000000000207ef776b622132973cde5e96a32f68fa0775ac3f4a7ac0d1cb6b14e7458c2c3a0000000000000000100000000000000010000000000000020b8b8d6428fc5a3713842905985e54c13a460d972a6fedc366bd72b9cf28b4717000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000003900000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000000000000000000020d487f7402c94e3aedfab01d6fdd66ba63ac7b0b39528b423a602d6a66c3a54970000000000000001000000000000000100000000000000202556b21fc161effaf655242fbec58230efd9a1ffaddb2e9252e9ca8c72b7a93000000000000000010000000000000001000000000000002049771951b4589a4f75df5ea08351bc0a5eccbbebfaa0b96a63026f42394809930000000000000001000000000000000000000000000000207f787b1eba07ba8e040c4ee51aec45ceca0b33082ebfdcb8e257ebb4a9dfd4cb000000000000000100000000000000000000000000000020341d651035e8af56ef3eb04b8092ff8a9e98be3fc659ac423cd204e9e75c5bdc00000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000190000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000000000000000000201dcf0c90a040b7d44aeece89de2caddf8d4241cd6302789300a382098b2275ed00000000000000010000000000000001000000000000002027f6be963ba9a68fb0cc1fa6dda0da09202e16643a07fa47b9e138f9c1c1c4d70000000000000001000000000000000100000000000000209161c5f561c46c1f9278bc201a1baad2f908ac10490c37cb8e0cd2207c0cd8690000000000000001000000000000000000000000000000205a0ee6b1b5a7910e92c7a5e35549a549beb666c8dc6cdb9739435f82bdcf952d00000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000001500000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000204bd56642aaf3c573e5cd15126fb7e1312436ca036171e0a975756f614b9206ac0000000000000001000000000000000100000000000000209e0ce15915d4ea607803d57136fe385cce0e7cb13820a1be73c873adb2e8c7f200000000000000010000000000000000000000000000002001b76aa22668890adea47c01aecbb7765240964a9d6de3b23a711d1271a0b80100000000000000010000000000000001000000000000002081c445d198d3219e5606d548b6529d92cf1f29c4b029656318db8e3c519d4b42000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000150000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff259000000000000000500000000000000010000000000000000000000000000002061040707b37eebcd03ebc1f93a574d2b169116e92f5267dba73fd8e4f762e26e0000000000000001000000000000000100000000000000204b88a4d6281a737d17ce6ddb1a0fb418eb07a0ed9a80d6f472307649d6f1f7d000000000000000010000000000000000000000000000002078033d92f40a38ac4cc7886e9667aaded348dd6ee664101a06b369949493fbb900000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000001500000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000204bd56642aaf3c573e5cd15126fb7e1312436ca036171e0a975756f614b9206ac0000000000000001000000000000000100000000000000209e0ce15915d4ea607803d57136fe385cce0e7cb13820a1be73c873adb2e8c7f200000000000000010000000000000000000000000000002001b76aa22668890adea47c01aecbb7765240964a9d6de3b23a711d1271a0b80100000000000000010000000000000001000000000000002081c445d198d3219e5606d548b6529d92cf1f29c4b029656318db8e3c519d4b42000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000150000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff259000000000000000500000000000000010000000000000000000000000000002061040707b37eebcd03ebc1f93a574d2b169116e92f5267dba73fd8e4f762e26e0000000000000001000000000000000100000000000000204b88a4d6281a737d17ce6ddb1a0fb418eb07a0ed9a80d6f472307649d6f1f7d000000000000000010000000000000000000000000000002078033d92f40a38ac4cc7886e9667aaded348dd6ee664101a06b369949493fbb900000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000002000000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000010000000000000020f4f54b18608f86b37f6a4fce419e18c64d9843b26ed1139133beed327349997f000000000000000100000000000000010000000000000020eaac2ba91abd5bedfb2645fd52534b0616c14c1d5a3ca5c8b57f170ce3a0123c0000000000000001000000000000000100000000000000201fbe6a1d0ec9dde7d25203e3597b6c9a6d52920b54bd402cbb49f44f820ecf2c0000000000000001000000000000000100000000000000205af8bd106a023dca58d9a2c1bf942eb3d9260592c7e617bf3803dc794a32ef1000000000000000010000000000000001000000000000002022bf8b04326101ffd27638a46eb4cb6dede7d786c49f4991191e5801277902d400000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000000000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000010000000000000020ebb76c613ec2138cc765f6029dd676279ca18928eacb0ca66a73239b16ebd3fc000000000000000100000000000000010000000000000020e435bd09932a6fdfff43746acb12d98720259cdc5ccdd25434bebb30b64793c9000000000000000100000000000000010000000000000020a379eef4ebc6c053f9ebce7246a926491170464546aad4ee25049465b0409d3b000000000000000100000000000000010000000000000020b8b8d6428fc5a3713842905985e54c13a460d972a6fedc366bd72b9cf28b4717000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000001600000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000100000000000000205db25233e9e5bb53c0da3d320e373b024bf6bcd66fbde02c2bb035190a54dc2c00000000000000010000000000000000000000000000002032db83af7e8a03af6c4d6db50e40b3606ac274cd836c2557af03817657239bc200000000000000010000000000000000000000000000002001b76aa22668890adea47c01aecbb7765240964a9d6de3b23a711d1271a0b80100000000000000010000000000000001000000000000002081c445d198d3219e5606d548b6529d92cf1f29c4b029656318db8e3c519d4b42000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000160000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000010000000000000020c68f67732b556dafe5e6cc710dcf62a4f48d186e1177070f41403a3ea73eda7f00000000000000010000000000000000000000000000002034e8bb0c47b5f4c22eaf01dde0989cbdb99d29897ff4d4ce2af0816deae250d300000000000000010000000000000000000000000000002078033d92f40a38ac4cc7886e9667aaded348dd6ee664101a06b369949493fbb900000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000003300000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e9000000000000000600000000000000010000000000000000000000000000002061da684bf608d9580c0cc2133031db2a991bfa9e757d3c3e5e3b691d844523660000000000000001000000000000000000000000000000204646c98ef994930122f932e1bd39e2f66f536e8fa208d8193f7bdcf8e1f3af85000000000000000100000000000000010000000000000020aa484e5c5ecfcf8fb6454c4562f9b8bac41d0f819a7adf9df986cd01feaf6d0b0000000000000001000000000000000100000000000000200247efeb8213912082e29ea2ef805a95ec45bbf7e81039cae60e1e2cc9f70398000000000000000100000000000000000000000000000020341d651035e8af56ef3eb04b8092ff8a9e98be3fc659ac423cd204e9e75c5bdc00000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000130000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000000000000000000020003c5181d177130a079dd07db243c1bffde9bba5d53b47eacfed53b2ce9c3681000000000000000100000000000000000000000000000020381d36f286eae8d50f3531344d0a48579eaf3200ed3706a450bb4146875685a1000000000000000100000000000000010000000000000020b3916ac3752cae2d46d7dcb3fc70a902dfce1044031504a7edcd60ef7d716cd200000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000001a00000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000010000000000000020ecfc09a1aa8d9ee5a8eb3132bd716973bc22a5e61e30e1cce19092f97e105bb500000000000000010000000000000000000000000000002053628602ff2c02ce8ad8fbebd918e7d3cafbdaddd3b7268770e57808957f1232000000000000000100000000000000010000000000000020decbd49a114a2ff486ec9d9a796b2980384089cf58329ce34c5e84e86d802607000000000000000100000000000000000000000000000020c70900e7458ba5ffca08cee0b301ca2a12c146e8d38de8b98842090913f710f5000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de4000000000000001a0000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000010000000000000020246ad833f257c0db5c611060ffd92b752323e555a9d3ce9241552b2ca48a1bc20000000000000001000000000000000000000000000000204efc73fd363945dfd0ec858227d4dabefc07b3b9a677a8b8b83cb33e300ca6be0000000000000001000000000000000100000000000000209161c5f561c46c1f9278bc201a1baad2f908ac10490c37cb8e0cd2207c0cd8690000000000000001000000000000000000000000000000205a0ee6b1b5a7910e92c7a5e35549a549beb666c8dc6cdb9739435f82bdcf952d00000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000001000000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e9000000000000000600000000000000010000000000000001000000000000002015bfea6ff8fca02fe6793892b620093f76fdb61a7ae895af3ea034f0854923a6000000000000000100000000000000010000000000000020876b4a50c733ecf3750fffe1cca0eae370bd8cfd58e91a3cbe7739d0c66b0618000000000000000100000000000000010000000000000020f89fd4c78cc2c9dbc27d0fb1fd81eb8f093a104c5e427e12ad01a2838309868500000000000000010000000000000001000000000000002081c445d198d3219e5606d548b6529d92cf1f29c4b029656318db8e3c519d4b42000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000100000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000010000000000000020569d6d364fc742b43f44eaeb7f2eb7676c465bde82753ed68594a01654718419000000000000000100000000000000010000000000000020275586ebf233ef8f7846a29d521dcacb6ca189a9efd2f0be606a28aa8fd399ac000000000000000100000000000000010000000000000020b3916ac3752cae2d46d7dcb3fc70a902dfce1044031504a7edcd60ef7d716cd200000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000001f00000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e9000000000000000600000000000000010000000000000000000000000000002031b2732ef75d00a6a7c27ebeff1cd0d03f346720e4f4d828a34b8fa4f458f713000000000000000100000000000000000000000000000020f3d1cefaa411f3b25de14a2e127376387097ceead58b7e50b1af55f56df6d098000000000000000100000000000000000000000000000020b05d29b90323e11d1d321ebe0887a78c97dd38e44c2a432ee388b16d804a569a000000000000000100000000000000000000000000000020c70900e7458ba5ffca08cee0b301ca2a12c146e8d38de8b98842090913f710f5000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de4000000000000001f0000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000000000000000000020e410c26e823abe624be41eebe8e629b245ede97bdb7fdf6533f5c763055809d60000000000000001000000000000000000000000000000203f4b9ec9d01b32cc29af1299c145fb4383f202af59554929cf1d3b1287509e71000000000000000100000000000000000000000000000020b5529a20d217fadab6e859d7dab84da86df6c50f6e0c8c43db6e0bb4ebe47cf70000000000000001000000000000000000000000000000205a0ee6b1b5a7910e92c7a5e35549a549beb666c8dc6cdb9739435f82bdcf952d00000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000001400000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000010000000000000020389c3ba00dfbcc90788c828e8faca19a83ccf2aa514c170a0288d97cd0ccfca30000000000000001000000000000000100000000000000209e0ce15915d4ea607803d57136fe385cce0e7cb13820a1be73c873adb2e8c7f200000000000000010000000000000000000000000000002001b76aa22668890adea47c01aecbb7765240964a9d6de3b23a711d1271a0b80100000000000000010000000000000001000000000000002081c445d198d3219e5606d548b6529d92cf1f29c4b029656318db8e3c519d4b42000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000140000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000010000000000000020c6ced8f29f221765860c4186984364c584f9025debf27105743b23409833ac510000000000000001000000000000000100000000000000204b88a4d6281a737d17ce6ddb1a0fb418eb07a0ed9a80d6f472307649d6f1f7d000000000000000010000000000000000000000000000002078033d92f40a38ac4cc7886e9667aaded348dd6ee664101a06b369949493fbb900000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000002f00000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e9000000000000000600000000000000010000000000000000000000000000002089196285e51aec79c8c2915494e037406a6e0fe2cefb471c5d42076be26d98d80000000000000001000000000000000000000000000000205dc6f165eebd96352a4cb969a5dcfee0e66cc7785e9dbf852898a0a6da3154a3000000000000000100000000000000000000000000000020dae97944862e3b39439dbbafe16fec39dcfc3ef2523acc7c32e0c79e841986fe000000000000000100000000000000000000000000000020c719af11451e09db51b0e7e95bbcb366f977fe49929d06a1eb1dbba9ade869f200000000000000010000000000000001000000000000002022bf8b04326101ffd27638a46eb4cb6dede7d786c49f4991191e5801277902d400000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be7000000000000000f0000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff259000000000000000500000000000000010000000000000000000000000000002035afcffd3e00318f678e350839d8b13b237a5c7251993091b28eb4d099034f2e0000000000000001000000000000000000000000000000205527bb338af53baea8cfccdd4caf87562d405c126925d5cf98425363c9497def00000000000000010000000000000000000000000000002057f7424c876eadf4612cc90ceb28d3c5c5cf304d091a0d7d1b90d874d9fa6f8e000000000000000100000000000000000000000000000020c6ac9586a5a315e9ce7efb473123de78e6943be10030817ad46f29947c4f461f000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000002300000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000209876c7a7a7134b6f1445fb927fb6dac60b40dcbe3218ffbd304107df4fe4c0f90000000000000001000000000000000000000000000000203f2276f0dc08f8fb8b5640ce5560df918698947c0e2f9884cc7d91c2174663080000000000000001000000000000000100000000000000201fbe6a1d0ec9dde7d25203e3597b6c9a6d52920b54bd402cbb49f44f820ecf2c0000000000000001000000000000000100000000000000205af8bd106a023dca58d9a2c1bf942eb3d9260592c7e617bf3803dc794a32ef1000000000000000010000000000000001000000000000002022bf8b04326101ffd27638a46eb4cb6dede7d786c49f4991191e5801277902d400000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000030000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff259000000000000000500000000000000010000000000000000000000000000002002e34643c2144471f9f6145ad57f70ee183d493b2dc578179078c28be9ffec3b000000000000000100000000000000000000000000000020b43d7064ea2d8208d7be4788658e4735a84f9ec43344ef22d85e927a3e9a17f1000000000000000100000000000000010000000000000020a379eef4ebc6c053f9ebce7246a926491170464546aad4ee25049465b0409d3b000000000000000100000000000000010000000000000020b8b8d6428fc5a3713842905985e54c13a460d972a6fedc366bd72b9cf28b4717000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000003b00000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000201f56c1c2bb2a840a87ef49cdffa74be6e5022f1360438f218ca799e75d58a16c000000000000000100000000000000000000000000000020477206f63bbd21ec0c4004c23263e3fb437d7cde780b644d6fdd403b70224a4300000000000000010000000000000001000000000000002049771951b4589a4f75df5ea08351bc0a5eccbbebfaa0b96a63026f42394809930000000000000001000000000000000000000000000000207f787b1eba07ba8e040c4ee51aec45ceca0b33082ebfdcb8e257ebb4a9dfd4cb000000000000000100000000000000000000000000000020341d651035e8af56ef3eb04b8092ff8a9e98be3fc659ac423cd204e9e75c5bdc00000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be7000000000000001b0000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000000000000000000205ac89c286b6f05cfaa11bf95f89f76175e3face799d5d16abb799e5995dbb30d0000000000000001000000000000000000000000000000204efc73fd363945dfd0ec858227d4dabefc07b3b9a677a8b8b83cb33e300ca6be0000000000000001000000000000000100000000000000209161c5f561c46c1f9278bc201a1baad2f908ac10490c37cb8e0cd2207c0cd8690000000000000001000000000000000000000000000000205a0ee6b1b5a7910e92c7a5e35549a549beb666c8dc6cdb9739435f82bdcf952d00000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000003100000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000000000000000000020e6688cecf8d676d3e9ed1b38f506d2d3ee6a1e7f7bf9b9b27c7c8ebbbbfbc3fe000000000000000100000000000000010000000000000020336878fe322f6d830c68420e0dc1b35d5a0c11b162dc5251cb07896d43953c40000000000000000100000000000000010000000000000020aa484e5c5ecfcf8fb6454c4562f9b8bac41d0f819a7adf9df986cd01feaf6d0b0000000000000001000000000000000100000000000000200247efeb8213912082e29ea2ef805a95ec45bbf7e81039cae60e1e2cc9f70398000000000000000100000000000000000000000000000020341d651035e8af56ef3eb04b8092ff8a9e98be3fc659ac423cd204e9e75c5bdc00000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000110000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000000000000000000020ac6f02bfb2a76e494be82303631f5a999bd5a24943e56d5b8f152aa677de2f64000000000000000100000000000000010000000000000020275586ebf233ef8f7846a29d521dcacb6ca189a9efd2f0be606a28aa8fd399ac000000000000000100000000000000010000000000000020b3916ac3752cae2d46d7dcb3fc70a902dfce1044031504a7edcd60ef7d716cd200000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000003500000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000000000000000000020bbac30f26337d4923268a0bd7464bf9a67e22440161c9b69a21ae02b18d453990000000000000001000000000000000100000000000000200d9355c2e1d6759eaeaadf6b2d2b204ab011124cade48173b71f15910bd0c5950000000000000001000000000000000000000000000000203e91cf9fe968f301931a38865a0ef8edba05ddd912d2579a948fe706de6f6ec20000000000000001000000000000000100000000000000200247efeb8213912082e29ea2ef805a95ec45bbf7e81039cae60e1e2cc9f70398000000000000000100000000000000000000000000000020341d651035e8af56ef3eb04b8092ff8a9e98be3fc659ac423cd204e9e75c5bdc00000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000150000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff259000000000000000500000000000000010000000000000000000000000000002061040707b37eebcd03ebc1f93a574d2b169116e92f5267dba73fd8e4f762e26e0000000000000001000000000000000100000000000000204b88a4d6281a737d17ce6ddb1a0fb418eb07a0ed9a80d6f472307649d6f1f7d000000000000000010000000000000000000000000000002078033d92f40a38ac4cc7886e9667aaded348dd6ee664101a06b369949493fbb900000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000003800000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e9000000000000000600000000000000010000000000000001000000000000002080db3e7e35fdc05c23f3f40679877aa15d35090e3f76f4bb40e0fabfb286c3ac0000000000000001000000000000000100000000000000202556b21fc161effaf655242fbec58230efd9a1ffaddb2e9252e9ca8c72b7a93000000000000000010000000000000001000000000000002049771951b4589a4f75df5ea08351bc0a5eccbbebfaa0b96a63026f42394809930000000000000001000000000000000000000000000000207f787b1eba07ba8e040c4ee51aec45ceca0b33082ebfdcb8e257ebb4a9dfd4cb000000000000000100000000000000000000000000000020341d651035e8af56ef3eb04b8092ff8a9e98be3fc659ac423cd204e9e75c5bdc00000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000180000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000100000000000000205ae3d4135b3f2d058460864483f1cbe5f3b6bdc632e4e17a6c02125ee273a2ce00000000000000010000000000000001000000000000002027f6be963ba9a68fb0cc1fa6dda0da09202e16643a07fa47b9e138f9c1c1c4d70000000000000001000000000000000100000000000000209161c5f561c46c1f9278bc201a1baad2f908ac10490c37cb8e0cd2207c0cd8690000000000000001000000000000000000000000000000205a0ee6b1b5a7910e92c7a5e35549a549beb666c8dc6cdb9739435f82bdcf952d00000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000000a00000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000100000000000000202e106a939c39ddc4226fb2936bac6f3356bb937b34f0463a1f2a1b809991fd91000000000000000100000000000000000000000000000020629bae8d629c777b0fecdcdf854d2b4aebf90e5dc949e41530065e7fa1960390000000000000000100000000000000010000000000000020f0c276f87c11a544c7dff23228f592c3b45684bf70982045e5db020d2ee3ff180000000000000001000000000000000000000000000000200da9d11aaea100332a200903d50e52aa35159a71dc619287204508beb8f25033000000000000000100000000000000010000000000000020abc911f24faf622896006bddac6f447414b585d2ae78c0de86550319adfa6ba100000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de4000000000000000a0000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff259000000000000000500000000000000010000000000000001000000000000002023f2d7fdc7350dfefeca95e26a82ff86528d3b529d1899610c41522623ac9013000000000000000100000000000000000000000000000020bce3f006a8c4a90d1a2289eb8bd2a0b518768a264917075f53da7847511688fb0000000000000001000000000000000100000000000000201e7f0e6313dd3a48bccca00c1b7955c16cb8be0aef8b3ed3dc6c35130ff160af000000000000000100000000000000000000000000000020c6ac9586a5a315e9ce7efb473123de78e6943be10030817ad46f29947c4f461f000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000001e00000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000010000000000000020687a94d7253329d11552525353081457c3572af75a1d92bf530351e890a28b07000000000000000100000000000000000000000000000020f3d1cefaa411f3b25de14a2e127376387097ceead58b7e50b1af55f56df6d098000000000000000100000000000000000000000000000020b05d29b90323e11d1d321ebe0887a78c97dd38e44c2a432ee388b16d804a569a000000000000000100000000000000000000000000000020c70900e7458ba5ffca08cee0b301ca2a12c146e8d38de8b98842090913f710f5000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de4000000000000001e0000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff259000000000000000500000000000000010000000000000001000000000000002023e228d10c03f0dc24434a1c56874a28f2ee29e2a622efb9de8af20a1143dded0000000000000001000000000000000000000000000000203f4b9ec9d01b32cc29af1299c145fb4383f202af59554929cf1d3b1287509e71000000000000000100000000000000000000000000000020b5529a20d217fadab6e859d7dab84da86df6c50f6e0c8c43db6e0bb4ebe47cf70000000000000001000000000000000000000000000000205a0ee6b1b5a7910e92c7a5e35549a549beb666c8dc6cdb9739435f82bdcf952d00000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000001500000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000204bd56642aaf3c573e5cd15126fb7e1312436ca036171e0a975756f614b9206ac0000000000000001000000000000000100000000000000209e0ce15915d4ea607803d57136fe385cce0e7cb13820a1be73c873adb2e8c7f200000000000000010000000000000000000000000000002001b76aa22668890adea47c01aecbb7765240964a9d6de3b23a711d1271a0b80100000000000000010000000000000001000000000000002081c445d198d3219e5606d548b6529d92cf1f29c4b029656318db8e3c519d4b42000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000150000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff259000000000000000500000000000000010000000000000000000000000000002061040707b37eebcd03ebc1f93a574d2b169116e92f5267dba73fd8e4f762e26e0000000000000001000000000000000100000000000000204b88a4d6281a737d17ce6ddb1a0fb418eb07a0ed9a80d6f472307649d6f1f7d000000000000000010000000000000000000000000000002078033d92f40a38ac4cc7886e9667aaded348dd6ee664101a06b369949493fbb900000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000000700000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000000000000000000020a05a3df24e3db240ce5264d833c60775f5cd42a9af73b33bda22444fc7cfe5240000000000000001000000000000000000000000000000202479d55ac3ebcfce8bcef04f25a66095f0e177d75de948b79a974e89ce18122500000000000000010000000000000000000000000000002062d1c5e4b7ac49ee1c7713f61bbadf7e25b2f04bd22ca8f4e9ae534b27d49e6e000000000000000100000000000000010000000000000020c4604cb8be32d18b87b7ba1b59170cd0016943ec460edd6ef1ac5700279c55ac000000000000000100000000000000010000000000000020abc911f24faf622896006bddac6f447414b585d2ae78c0de86550319adfa6ba100000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000070000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000000000000000000020111d546f48ae7364248b22c362b27b2d74053554905fcea72cb00eb4bfe3e4620000000000000001000000000000000000000000000000203a5792f3983b8a669190dca7e5659ab8b5822c3fa8a58a541a5cb3562d616bd60000000000000001000000000000000000000000000000207ef776b622132973cde5e96a32f68fa0775ac3f4a7ac0d1cb6b14e7458c2c3a0000000000000000100000000000000010000000000000020b8b8d6428fc5a3713842905985e54c13a460d972a6fedc366bd72b9cf28b4717000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000002500000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000000000000000000020d8ba2670290c2b526ed7c2b0e5b76fc8ea9fe53387368f8df6f91c79dea821ab000000000000000100000000000000010000000000000020266177fdcc4d675568f2cf052c7330dd20c5ba8ea8ed31a8f8ca6b52ba5126bb00000000000000010000000000000000000000000000002037aee6114b0e64049396c6974301981cc460b03b844091c0c8331ea0fd369b4f0000000000000001000000000000000100000000000000205af8bd106a023dca58d9a2c1bf942eb3d9260592c7e617bf3803dc794a32ef1000000000000000010000000000000001000000000000002022bf8b04326101ffd27638a46eb4cb6dede7d786c49f4991191e5801277902d400000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000050000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000000000000000000020297b949a7036ae60c54a97ea10d725842cd327dd5fc484af898fb0e154085b490000000000000001000000000000000100000000000000207c89f71843664bf97f22261fc06f08da09e4584d95f32099263db21dece008f10000000000000001000000000000000000000000000000207ef776b622132973cde5e96a32f68fa0775ac3f4a7ac0d1cb6b14e7458c2c3a0000000000000000100000000000000010000000000000020b8b8d6428fc5a3713842905985e54c13a460d972a6fedc366bd72b9cf28b4717000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000003100000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000000000000000000020e6688cecf8d676d3e9ed1b38f506d2d3ee6a1e7f7bf9b9b27c7c8ebbbbfbc3fe000000000000000100000000000000010000000000000020336878fe322f6d830c68420e0dc1b35d5a0c11b162dc5251cb07896d43953c40000000000000000100000000000000010000000000000020aa484e5c5ecfcf8fb6454c4562f9b8bac41d0f819a7adf9df986cd01feaf6d0b0000000000000001000000000000000100000000000000200247efeb8213912082e29ea2ef805a95ec45bbf7e81039cae60e1e2cc9f70398000000000000000100000000000000000000000000000020341d651035e8af56ef3eb04b8092ff8a9e98be3fc659ac423cd204e9e75c5bdc00000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000110000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000000000000000000020ac6f02bfb2a76e494be82303631f5a999bd5a24943e56d5b8f152aa677de2f64000000000000000100000000000000010000000000000020275586ebf233ef8f7846a29d521dcacb6ca189a9efd2f0be606a28aa8fd399ac000000000000000100000000000000010000000000000020b3916ac3752cae2d46d7dcb3fc70a902dfce1044031504a7edcd60ef7d716cd200000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000001d00000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000206f2cfaabd2028464e29f5299792065dc5db1d213db1f4011753464da9c630937000000000000000100000000000000010000000000000020e196d6324776c8342202907ff780e58c7cefbd2a85e2f70cfd5770f202307d97000000000000000100000000000000000000000000000020b05d29b90323e11d1d321ebe0887a78c97dd38e44c2a432ee388b16d804a569a000000000000000100000000000000000000000000000020c70900e7458ba5ffca08cee0b301ca2a12c146e8d38de8b98842090913f710f5000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de4000000000000001d0000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000000000000000000209f865945db83e4b37fb2c6b6337a566479d6573bcce817b7669722e615fa5bf50000000000000001000000000000000100000000000000203cedf7f5a6e7e2a5ace8729fabf1d7933b10f8a0ad1e5e2ea8831795cf5ebefb000000000000000100000000000000000000000000000020b5529a20d217fadab6e859d7dab84da86df6c50f6e0c8c43db6e0bb4ebe47cf70000000000000001000000000000000000000000000000205a0ee6b1b5a7910e92c7a5e35549a549beb666c8dc6cdb9739435f82bdcf952d00000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000001d00000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000206f2cfaabd2028464e29f5299792065dc5db1d213db1f4011753464da9c630937000000000000000100000000000000010000000000000020e196d6324776c8342202907ff780e58c7cefbd2a85e2f70cfd5770f202307d97000000000000000100000000000000000000000000000020b05d29b90323e11d1d321ebe0887a78c97dd38e44c2a432ee388b16d804a569a000000000000000100000000000000000000000000000020c70900e7458ba5ffca08cee0b301ca2a12c146e8d38de8b98842090913f710f5000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de4000000000000001d0000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000000000000000000209f865945db83e4b37fb2c6b6337a566479d6573bcce817b7669722e615fa5bf50000000000000001000000000000000100000000000000203cedf7f5a6e7e2a5ace8729fabf1d7933b10f8a0ad1e5e2ea8831795cf5ebefb000000000000000100000000000000000000000000000020b5529a20d217fadab6e859d7dab84da86df6c50f6e0c8c43db6e0bb4ebe47cf70000000000000001000000000000000000000000000000205a0ee6b1b5a7910e92c7a5e35549a549beb666c8dc6cdb9739435f82bdcf952d00000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000000100000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000202909624f315a60a3ec233407bbae0b08731680fb803e3811cf43ad5565f5ed220000000000000001000000000000000100000000000000207d794f712ac6e85c0a1f085d46b6957a222bf1367977dd1ba8fdccef925944af000000000000000100000000000000010000000000000020ae2da6c12c5d162a3ef339a55f47d09290d11febadeb8a3f8a5eac666d7553d0000000000000000100000000000000010000000000000020c4604cb8be32d18b87b7ba1b59170cd0016943ec460edd6ef1ac5700279c55ac000000000000000100000000000000010000000000000020abc911f24faf622896006bddac6f447414b585d2ae78c0de86550319adfa6ba100000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000010000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000000000000000000204ffcc22c01ec89a91054ab22f4a6d8c255900fc815ae761f6b79cbe12ddc5505000000000000000100000000000000010000000000000020e435bd09932a6fdfff43746acb12d98720259cdc5ccdd25434bebb30b64793c9000000000000000100000000000000010000000000000020a379eef4ebc6c053f9ebce7246a926491170464546aad4ee25049465b0409d3b000000000000000100000000000000010000000000000020b8b8d6428fc5a3713842905985e54c13a460d972a6fedc366bd72b9cf28b4717000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000000300000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000000000000000000020e7d128862aadbe4f99d50b9c5db8ffad7d032842f105055b53d275a596ccc65e00000000000000010000000000000000000000000000002013512b8bba2360869ac557865e2084fb0e839c7c241e547ea36a08da5afc0323000000000000000100000000000000010000000000000020ae2da6c12c5d162a3ef339a55f47d09290d11febadeb8a3f8a5eac666d7553d0000000000000000100000000000000010000000000000020c4604cb8be32d18b87b7ba1b59170cd0016943ec460edd6ef1ac5700279c55ac000000000000000100000000000000010000000000000020abc911f24faf622896006bddac6f447414b585d2ae78c0de86550319adfa6ba100000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000030000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff259000000000000000500000000000000010000000000000000000000000000002002e34643c2144471f9f6145ad57f70ee183d493b2dc578179078c28be9ffec3b000000000000000100000000000000000000000000000020b43d7064ea2d8208d7be4788658e4735a84f9ec43344ef22d85e927a3e9a17f1000000000000000100000000000000010000000000000020a379eef4ebc6c053f9ebce7246a926491170464546aad4ee25049465b0409d3b000000000000000100000000000000010000000000000020b8b8d6428fc5a3713842905985e54c13a460d972a6fedc366bd72b9cf28b4717000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000000800000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000100000000000000208f4914df53c50f650eaeb1e2644816a4d6571c8eadc34d0851795c3f6011fdb00000000000000001000000000000000100000000000000206f6f08120957917775f7e12d4d9fd5057d4ceeffb3313e9087de7e748a235134000000000000000100000000000000010000000000000020f0c276f87c11a544c7dff23228f592c3b45684bf70982045e5db020d2ee3ff180000000000000001000000000000000000000000000000200da9d11aaea100332a200903d50e52aa35159a71dc619287204508beb8f25033000000000000000100000000000000010000000000000020abc911f24faf622896006bddac6f447414b585d2ae78c0de86550319adfa6ba100000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000080000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000010000000000000020fdfdce8038e314379ee4ef9d7435ac3bb67f81a42222ada24ec0b5edc53504e4000000000000000100000000000000010000000000000020ccea233de53953c0a0be4befba3181d87583ecf3ee74bc0c1b609c57583968bf0000000000000001000000000000000100000000000000201e7f0e6313dd3a48bccca00c1b7955c16cb8be0aef8b3ed3dc6c35130ff160af000000000000000100000000000000000000000000000020c6ac9586a5a315e9ce7efb473123de78e6943be10030817ad46f29947c4f461f000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000002900000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e9000000000000000600000000000000010000000000000000000000000000002071d75f39458987845dcf942a0501e1d0a428e36ebd7c9f38bc602456582efb3b0000000000000001000000000000000100000000000000206201f5e1adb7b50a1b3c6acc1b1392317c003234b4583e38e50f392b58216883000000000000000100000000000000010000000000000020a5e13859e3a8080939d0a2a7780843b0f6be0d291fdd0c09d166df1c8435fd34000000000000000100000000000000000000000000000020c719af11451e09db51b0e7e95bbcb366f977fe49929d06a1eb1dbba9ade869f200000000000000010000000000000001000000000000002022bf8b04326101ffd27638a46eb4cb6dede7d786c49f4991191e5801277902d400000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000090000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000000000000000000020e1c255daaa951116cdbc9d3e573d3cc9d0809bc3de7dbfc5e1243febc3afb770000000000000000100000000000000010000000000000020ccea233de53953c0a0be4befba3181d87583ecf3ee74bc0c1b609c57583968bf0000000000000001000000000000000100000000000000201e7f0e6313dd3a48bccca00c1b7955c16cb8be0aef8b3ed3dc6c35130ff160af000000000000000100000000000000000000000000000020c6ac9586a5a315e9ce7efb473123de78e6943be10030817ad46f29947c4f461f000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000000d00000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000000000000000000020e19d985edcf88f77b87ff3034ac9e781e3bba2e8cdaae6105322f29f7cd26b7800000000000000010000000000000001000000000000002052bb7866ef5b2878c3a72eaa9b66f9a42101fee01719ad0257cfd4155c4fd67d000000000000000100000000000000000000000000000020a6fbf8b597859fe7801b57d7295b57ab889b52c97b4a3e8ba1fe46be478d7ca60000000000000001000000000000000000000000000000200da9d11aaea100332a200903d50e52aa35159a71dc619287204508beb8f25033000000000000000100000000000000010000000000000020abc911f24faf622896006bddac6f447414b585d2ae78c0de86550319adfa6ba100000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de4000000000000000d0000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000000000000000000208ca9ad4c8f2b48c0e78e288cad4a1e1e118896618e60e116cac861bda85047c40000000000000001000000000000000100000000000000200b3f292d9180e48caf9240831d1b97177d9961550cf42b9a4d497a935b987f8800000000000000010000000000000000000000000000002057f7424c876eadf4612cc90ceb28d3c5c5cf304d091a0d7d1b90d874d9fa6f8e000000000000000100000000000000000000000000000020c6ac9586a5a315e9ce7efb473123de78e6943be10030817ad46f29947c4f461f000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000002c00000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000010000000000000020990a05747f2b2a9f2bad4e43c29f7d54c683bfddcc1dca0fe45fdee1bc36c906000000000000000100000000000000010000000000000020518fb00e146a7b75e04903228f53bc837ff1750989635ede283c0901589a9d84000000000000000100000000000000000000000000000020dae97944862e3b39439dbbafe16fec39dcfc3ef2523acc7c32e0c79e841986fe000000000000000100000000000000000000000000000020c719af11451e09db51b0e7e95bbcb366f977fe49929d06a1eb1dbba9ade869f200000000000000010000000000000001000000000000002022bf8b04326101ffd27638a46eb4cb6dede7d786c49f4991191e5801277902d400000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be7000000000000000c0000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000100000000000000205ce7bfbb83bd467dfa4292d88c84d9118a0a3eec8c8a3ce9189fede5772914af0000000000000001000000000000000100000000000000200b3f292d9180e48caf9240831d1b97177d9961550cf42b9a4d497a935b987f8800000000000000010000000000000000000000000000002057f7424c876eadf4612cc90ceb28d3c5c5cf304d091a0d7d1b90d874d9fa6f8e000000000000000100000000000000000000000000000020c6ac9586a5a315e9ce7efb473123de78e6943be10030817ad46f29947c4f461f000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000001800000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000010000000000000020cf915e8779c55df2a5aba19dc39cf7fa44f7bfa6115db7c874f75102f5109c32000000000000000100000000000000010000000000000020b4ca5f93e3e6b332af3c77c76080f161aaf53c14dec5c04e1f4fe43375a6d58d000000000000000100000000000000010000000000000020decbd49a114a2ff486ec9d9a796b2980384089cf58329ce34c5e84e86d802607000000000000000100000000000000000000000000000020c70900e7458ba5ffca08cee0b301ca2a12c146e8d38de8b98842090913f710f5000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000180000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000100000000000000205ae3d4135b3f2d058460864483f1cbe5f3b6bdc632e4e17a6c02125ee273a2ce00000000000000010000000000000001000000000000002027f6be963ba9a68fb0cc1fa6dda0da09202e16643a07fa47b9e138f9c1c1c4d70000000000000001000000000000000100000000000000209161c5f561c46c1f9278bc201a1baad2f908ac10490c37cb8e0cd2207c0cd8690000000000000001000000000000000000000000000000205a0ee6b1b5a7910e92c7a5e35549a549beb666c8dc6cdb9739435f82bdcf952d00000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000002100000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000207ed7024cfb851e729174b4bebcb3b43b7e74c7bf66e598fab0fe7503c28e28b9000000000000000100000000000000010000000000000020eaac2ba91abd5bedfb2645fd52534b0616c14c1d5a3ca5c8b57f170ce3a0123c0000000000000001000000000000000100000000000000201fbe6a1d0ec9dde7d25203e3597b6c9a6d52920b54bd402cbb49f44f820ecf2c0000000000000001000000000000000100000000000000205af8bd106a023dca58d9a2c1bf942eb3d9260592c7e617bf3803dc794a32ef1000000000000000010000000000000001000000000000002022bf8b04326101ffd27638a46eb4cb6dede7d786c49f4991191e5801277902d400000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000010000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000000000000000000204ffcc22c01ec89a91054ab22f4a6d8c255900fc815ae761f6b79cbe12ddc5505000000000000000100000000000000010000000000000020e435bd09932a6fdfff43746acb12d98720259cdc5ccdd25434bebb30b64793c9000000000000000100000000000000010000000000000020a379eef4ebc6c053f9ebce7246a926491170464546aad4ee25049465b0409d3b000000000000000100000000000000010000000000000020b8b8d6428fc5a3713842905985e54c13a460d972a6fedc366bd72b9cf28b4717000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000001300000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e9000000000000000600000000000000010000000000000000000000000000002088f5c5d2fda12d4c8cf34cdb62aa095eb07a8da108b2ba4e7e4dd07f871b636f000000000000000100000000000000000000000000000020635cb57885dbdeabbc4503774433cce56d21f7bdaa7ef016bf082b6dca48b58f000000000000000100000000000000010000000000000020f89fd4c78cc2c9dbc27d0fb1fd81eb8f093a104c5e427e12ad01a2838309868500000000000000010000000000000001000000000000002081c445d198d3219e5606d548b6529d92cf1f29c4b029656318db8e3c519d4b42000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000130000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000000000000000000020003c5181d177130a079dd07db243c1bffde9bba5d53b47eacfed53b2ce9c3681000000000000000100000000000000000000000000000020381d36f286eae8d50f3531344d0a48579eaf3200ed3706a450bb4146875685a1000000000000000100000000000000010000000000000020b3916ac3752cae2d46d7dcb3fc70a902dfce1044031504a7edcd60ef7d716cd200000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000001500000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000204bd56642aaf3c573e5cd15126fb7e1312436ca036171e0a975756f614b9206ac0000000000000001000000000000000100000000000000209e0ce15915d4ea607803d57136fe385cce0e7cb13820a1be73c873adb2e8c7f200000000000000010000000000000000000000000000002001b76aa22668890adea47c01aecbb7765240964a9d6de3b23a711d1271a0b80100000000000000010000000000000001000000000000002081c445d198d3219e5606d548b6529d92cf1f29c4b029656318db8e3c519d4b42000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000150000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff259000000000000000500000000000000010000000000000000000000000000002061040707b37eebcd03ebc1f93a574d2b169116e92f5267dba73fd8e4f762e26e0000000000000001000000000000000100000000000000204b88a4d6281a737d17ce6ddb1a0fb418eb07a0ed9a80d6f472307649d6f1f7d000000000000000010000000000000000000000000000002078033d92f40a38ac4cc7886e9667aaded348dd6ee664101a06b369949493fbb900000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000000228228fed2c0f903d96f5d367aaf715f5b2bc95479b820de3144394fd62d2308d2c7e51183a608e4fd828081f1e9db89e717e06d74ae3130535d95950a7c3617066348cbc \ No newline at end of file +0x040000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec01a849ed073bfbbca9ae5a2a9c78d36e896cbb5259a558e0c49f3d49d038f208000000000000005301a849ed073bfbbca9ae5a2a9c78d36e896cbb5259a558e0c49f3d49d038f2080d48b9f9a1f52577da4d5cb94d65e04052d79db412bde4a0173fa42abd6d4a45084971a1242beaaf5067c2d50e5c2128af1fa89bc03abc63d71c3271111cba28026ba1e029c9bb574382cf9e82fd61417bef7b8854687e04db1103e8b3227358296f3825b4db956c9206ce2947cca5cb6b9e4b0ac125adf3338cfc35558fa2c80c1a2960d0f0a8b4518e0e188ef2e6476bad69a9a60a76184755138b7fac40b80f2c18bc8849eb1eda2206ce66ff3cf8b343ac41a9d57a6d36395a43abce2de53c82cee414b34b8597c6467acabe7f651a6310503e344e7964a961b97e5d439801a849ed073bfbbca9ae5a2a9c78d36e896cbb5259a558e0c49f3d49d038f2080d48b9f9a1f52577da4d5cb94d65e04052d79db412bde4a0173fa42abd6d4a45084971a1242beaaf5067c2d50e5c2128af1fa89bc03abc63d71c3271111cba28026ba1e029c9bb574382cf9e82fd61417bef7b8854687e04db1103e8b3227358296f3825b4db956c9206ce2947cca5cb6b9e4b0ac125adf3338cfc35558fa2c80c1a2960d0f0a8b4518e0e188ef2e6476bad69a9a60a76184755138b7fac40b80f2c18bc8849eb1eda2206ce66ff3cf8b343ac41a9d57a6d36395a43abce2de53c82cee414b34b8597c6467acabe7f651a6310503e344e7964a961b97e5d43983c77d0f9764fca6bb9bf9dc47709c031b8e3ef02a8c94aaa83090d797498d5a8346f5602dd83f4a5aa9348e0af9d08c05ef19dfe1634a57bfa4722ab9015110b38fb1266f415fbd2618cfb2426d85025c3e9ac6c13d4ce1cb5709b216b4da6b22f6c4e899e653044774a47b155569a31daee40ff72a092524622323eb76f878c3c77d0f9764fca6bb9bf9dc47709c031b8e3ef02a8c94aaa83090d797498d5a81af710639a33a9ee25a99551d3fd807e70499333913a0f7ce486c5d6cd45a1b61befddd4b82552d9396cfaa54940b25181b1a062fb4362f8370689eb8e4f6b372d81d53c3d9eec308dcef7a00b621059e4d64295a041b5ce0e423db645ae1929378ae8b217281e98232cf4c6dc2b21498547a11fd3025f8ab5fc7ade97636da721f40b4c04a9169c56fd1c6d805e21fd1bb211d95c183f090ebdc7d28e410d2d0be0899e82823f8343bd0fef9f6f20a7c252686517c4d6bd6b249cdf991af1ff2fb0a4b594cb133a84d3b178be4595d031abfaaf17d83f3aa7f7c86c6477497e1b3d39eb1e0909077a26b77a1de03f357875954e83db0ec78ac0d18cffdd84b53c167db8a554c7f9b4a1d3f2301f5a54c55ede82cce40cae631c50062e9ed53739f429a1fa53e4b8ea5cf81151d917a9c6df281fe390dd60fc915b3d85c942d2279a6f7e4280c0c09f8339f4d7d2afef335da5aee5bf27e0ba3fc355fffd20651fac8a7a0dc710aa2462d1a984029cdc740ffcf3ea4868da0815306343e291c524d458cd7f86fdba1387bf56c6d2174e370b3a80acf28f008c4d6010f5d0c592141be07ceb4b054fcef61a8a339fa59cb0bb01f5f730153a692f2221d3f7a2cf2c0ddd3571b65a3f78c96f8a052a2f5c1059f2586d8b149d986300e1c76cb79b279a6f7e4280c0c09f8339f4d7d2afef335da5aee5bf27e0ba3fc355fffd206524d458cd7f86fdba1387bf56c6d2174e370b3a80acf28f008c4d6010f5d0c59238c34db0c527641be1803b8e53eb167a6381d6c07b297529564de2a1784c663033eb321046273dcf0bc23dc5aa93d36afd73babf03316c3a2e295c3a6fb09c580763ece43fceb112211d687947ab49c42f170930ec76c6fb7cf0ff07a85787db000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010a212710eb0559e5e17c6bcc9b1d0a90f3bd6bff981d0b303ad64318b2f6593937ab0feebcc7152b2b0059b4303acd517559547c2d6b3623843e740a00379cc61ad217d7e94cb1a80d2232b8d8142bfd7a48d4bdc9aae26628045bf3052ac6441ecc316796c2c50c5b979f6c6c46b318021bf021eec393508aa1e2a5108946603bac730c5fb5f45d47dcee8e5cea73333d2e613c6dd583cba29583d3c25bc2ec22c85910373a895d5d7d637ba10f1fb285cd8a18e5b38ff590c961f203ea293b2d20ed334d06b5b61aaf0a3ca4aea13789830cde90ce8763755269fc57bfc9ff2f3b55bcc62d15928319eeeed8c046bcff44b8a578b58ac7acafd18bbca7c23936995cf673fd09fcede49b3c10546cb0993838dfd083c5549edcaf4dc8620e02286656664670671c2f4dc38ea57cefbb9c696e904193a8ddbd39f73740bbe87227488f5102ac9ddfd2cd38681512469f285090e1874958d4b9e7575d41ad621d0e4dcdeddf160001a8e9d46f7d8186e408ae41d6c80e4c674fc77334b37484ce1089ef44fd97c9fe8a6723e744a472f4889f7733ec0bc222b55be00e37a99e2d06c31e54830b6379a0e5da91a7aee0b77fb053027ebcff7d27208bb55bd346070630c7450ab3bcf7c7cce2a6f15b6c472ca9e1aac81d54a4224123128469f98037fec4d8157b438167c8fc17971bad67b55e7e5ce0fa2befc7286b7e9dc31ebc06ba7f038e815a764b4c0044e590a4f6ab50611869bece627f2e93137b025a301c4a86623e427fa7ca3ce11bb548daa094cf6f6835e6d08c545bf67a4114aa93399dfeb09e2f17c8d116529bce1fc926274eea527205de4c14bb8117ecf6ba841ace5468b73e87c0b38c3af0356f6ab752b1a6964031e78a037658f02a0496dd1a980cfa4c57410afdb84d762d83ecc5201be8863a0b788463f75a137c68fa6239aed4de1eb64ecdd519c1cc251ac01f5b17768a7657a68b5e24d185a8210fdc322d6826299941097a1d795100c252b9793837b227397f43239f91d2468ddabb0796c5633ae911e2e7eaeee7c0d7583af22df6a2144f6077f07ffc3fec98a1460bccca794b22c382ef2e401a93790779ea9ecd3f6cbaa3cc4a708812faeef999371c6839c1a7936cadb8b959987312ec2a32c2f58754ecd1d0eb3dc95e4533f00cb6b49c159219ab4f67879e558691ac9515c26c45000daf96e9ce9b1412b44b15beb3d3c21dcd8c5a0acd90c8a8c450ba086bd50cd153e14c7e54439d3ba4a11081ab4468bd9f718cdb0f401a1e3ea28e6ebed058932339c06188e9d2e30bf30e84874da2f02352278931713f051ee2e4cb4ec4c3f0ee2ef19be7e3aa31dbfc16a84e880bbf880f28b0b895102bb65ae0b6b2a2494446691dc41d7204de3d022f765dc204f1575ab645d6aa5ae1deb6eab0664a827139ae13a2f962d4c333fc3a8d60d7eb758a647b9370d1be0dc581a731ce4d0f0948bcb16dc2d461fafda91ecb9a7e742f6fac959222ecd3041fc8d317087004ecef824f5ea8925d2c614c330ede642e70d39c6e383f0538f15be2b6a01260abcdf727e0d25d5f78260b632c824fe3fffeac883d93a58d692c43fd520fb32c8c61d25fb71260120d2d58863dd2592f728c00d94e88059f93a930394cc3094dff9cd668ffb1c328c4fd8c033c77256fbd0f477e6f56afbc0b1377593e5d9ef51d35da46c3fe6e00c2f344010a4e94b685567c2ffafffe5b57f2abc18e3bc518fc7d391a5511cbf52fe53fa7031d91b4f4913ca332d8e76be267006d09fe74843f0b75139955016c09e528bb000000000000000a00100102020203110407000000000000002c020202020202020203030303030302020201020201010101010101010101010101010101010303030303030300000000000000020000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d0000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f22000000000000000201010000000000000dc02042ad6d44b85d8c2e6cf1da18bbb0083196e509bf2b27e7fb20497e0a4cbfab1fbd5292bb47a273d1930e25e7444ff7f0afb3f24a21d1339e0ce76ef5b34056214d63225799d3bce820b9427baa7028b3654738a93dd550b5470d9c337fbe551eb29cdda8662c4317df46bd84558fd76ee151c3600f23cae3e62350cc8041ac2682efabb60122b088a39e4c6a5430cb3c6d32233b9b385c5808e233017eb7a7197d105449fedd4f775c61b395abcf34e5d966d8cdb1c0bf41244eb9fe81485a008eae5a8e05ad72ab32177e13a4f3f7c74e2fbc0e212e7aeca4d838077996403f7151a571fa528d54cde881ec5b0c085af8693ffb2bcaa0ac8858b4f88669c12042ad6d44b85d8c2e6cf1da18bbb0083196e509bf2b27e7fb20497e0a4cbfab1fbd5292bb47a273d1930e25e7444ff7f0afb3f24a21d1339e0ce76ef5b34056214d63225799d3bce820b9427baa7028b3654738a93dd550b5470d9c337fbe551eb29cdda8662c4317df46bd84558fd76ee151c3600f23cae3e62350cc8041ac2682efabb60122b088a39e4c6a5430cb3c6d32233b9b385c5808e233017eb7a7197d105449fedd4f775c61b395abcf34e5d966d8cdb1c0bf41244eb9fe81485a008eae5a8e05ad72ab32177e13a4f3f7c74e2fbc0e212e7aeca4d838077996403f7151a571fa528d54cde881ec5b0c085af8693ffb2bcaa0ac8858b4f88669c11dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb3ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba2e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b3333a6c18bf778e668d61325e69e25d3175cee5aaec8d1f3ab9c818b7019ff2af38225810aa0ced9279f11d7bb6bd5fdb922d34fcb89ee3ac44c8fa2bd5f655bb1f13ecf097788ed6fe452dff23942fdd3aebe7d16e25130c9d72d7314d671511286dc7c63ba70a6f3ad2c69ff9b9934f66601e89f4eb87d44b977e5f7d9dc8451c70686c6ccf34410eeff581bdaac669356723247562a74c0d699d751c4452860d81d8e6f70b78783550c923d3f6e1e2e57f77b631c25142f146fe065f2b794c225eb35e5e6699b01693ff2025239088d5968f6bb9195fd4230a1040425b06e116757cbde9eb9f5f59c6bb6da6ff3d7d9e8cd24ddc94847971d4facf87ee4a1c2336bff60430d8f218dc08b92f81d10147de057f17abe549424dcb46d17a65b20672a3fef6b96f4283b5bdf1bf29328392c5f009dc8244c23714beeeeb608f54225eb35e5e6699b01693ff2025239088d5968f6bb9195fd4230a1040425b06e116757cbde9eb9f5f59c6bb6da6ff3d7d9e8cd24ddc94847971d4facf87ee4a1c3fa55a619d63d535c420e506d77f602bd8fdc2fea70d92ec808b1d33d3d955d304b98db9612503e92443ca7cf18ce40d2933312886b225ff2f4405a7ebd2f86820b6503a8bc3e9c20db16cc2ef7b7e2fb237deb7411e8df9523508d8144d455c0f055c09dc496b55e205929afa3083161367fe1f7f333ba229d0cb0c82f55147000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013fe09b2a7b9cbb636c3e1e8036bbf71c286bed82502c6a779d39c46e3e4398cd28e487b81ef2aa59cb55cb93375ecf3499cc12964e11847917e10cfa34b479e72481258db8323dfef2959a14f20a698ea5be08659071e32286dc1dbf76d2d7a60df177d352543d1e324da0b7b4debcdf1e8ca8c2fc2cf8c6006a13d9d6c9e60805aa9065091ce82966ebafdf61f58bd8ed6511ba7aa75d81c10cc225f7a5099f1c36fbfb00f2bf5b1963d92c31c94bc55f0f720ed5e9cbfb5b4431e601a82c5e0aa7ce671053eaac33001ce7bd4c77f27defba86cc0840215dc44ffe1354912a18973e4aa85b9efedfc1102516ec70a20ad50af95f87a69530993b537c067de01a92ce4798baa574c7bfbfea7bde8024dbca94fb85a08bf6ae99f566788d052c009032154aecbbb19e8444e316492893f5a9e6f773ff01c5dc73895e95f0d20702ea221a55e8a1784f03d48e3ca79ff4b6fa4287db15ae1623a025c31a1eb35509f4abb59da884fff9d09609b14ca72a5ed0808b28c02ce5f304d41099f2a7b823636db5703ab1dcd748411083287be900a02762e8a354eebe282467005dd82b3952b411e8671574f9c096b7b5ffa147b5d82e146d0d57dd187822c5c5fbfed70f1cddecf1d23ee920ee629c00b2a8aa4cc1d80284792274d80502a6af0415c53f76f15c754d0d00e9acf1d39d79d7c344c6f5eb92fe2ea044cdbc4b45d419ad3175a9a970dcf98610ce032e7b7501452fcce482eaa6ae8969d623a8b4a15bb7281efe5ce357c84999a9f5f22925e0cdb10ee12e64e89a8ee051561dbc90d2d6032282ae9aa6f2e9164b5fb86258f993a747b5a78c0a12caf7695e913b90219802468ec9b7750a9e304508aeadf3d15101a84852018d1a89b13ed20211db92e937b11f30ceb1914247799f1649b3ae04cf50aae2222eb355139d9a25515cddcf2fb47ac77571664eda291aa642dd392ccb29f9cd60e20cae42415e11f381c479367703b72014e7ae6c3407a2ea73ddbc35ace7280bf425cb18f23b15162b3fab1bc7ced06989bce94fb771a15690467dff88a1c122afd6c0b5d4177764039bd415cc6823cf0202eed28c577f713b6a4b2d6ffa5a25ef82ea7f0f0380cc98406a29e1c6ca3f676f5853b447695a956c6b6136e9319d2ebc7a8250001f8c159dc714c83453c2c8af778ce5a8d649d54bee481a83717f0f1cb012e024d947c4bf7524d1fafce0af398adceb4505c1268e4d1353fde9ba983f475f71073a032914be3f4a858bf6d93babe8a3996c77519dfe1b929812c0993026c55022b328481eb620190a77ce32b6a3be2e67b2441ccf39512495edb76fe94e5ef543df96aa79b73aba9d477dd4ef8da37dbf1613ea2be99c1338f759ec5d555a9f10afe65a12553dfab46ec40f69d02008288ec1be314a8bd60712436772b681cb8324ae8b29ec14391d672710359c0b8db0526198bbb746440139ea742bba1777bef0c637e5f738002451223bb3342b32cbbcb2862ed80b5fa89a466eeb164acb65c76f1f17c3246e8dd73a882666e8e16f822ede3aec72b050869e533696cab035ed85c1f7982b5b560714bb188a6cc63021b97a1280b5c05574bfa49fbeacdc0c83c0b5d5050841399e3fd3c4bbdb2f1e11cf304f6f4d1bc6d0e4fde150080ff7f396a79b9c311c50506b15dfb172a7fa4a4fee7f014bf4b5dcd7e16e74770161919a7d305615afa325ba6e002e14b3498549ce998a04223f1d27bd1bcc5783bf95401e8f86096a43f355d82d7614ce0e6df2d7972fe083a836361f96dc16c3a7fdadb929952b13ecd2393dce0b1fb57aa0c82ca6b16a01525444c9b6a20fd858db9f5575260d46187b1d95d413da017309b61eb6854a68b8bc86affd35c69f5d3ba00965963de82ffc1ec28af40f5dbb578c2500f23856efd6d2077174ceb49faf17ac1cf904e33ecf51fdecf36a3673cae0569e9b5e8ac9ddf37a71d369022b97bd692cfc0a13b05400945176bdd81cdbee19f8ca9817b3331fa408b1b82b59ae68a7f1421cccd40ca515de17f60941b8499a2d000700aa6a8d79874fb3202486c8ef790c12c08f19a8e5ce10f8a71c512a34accb2ebfdd7486eacf31da855a3a28b82cd01974a46bf035a081ac401b7bc0d438c138ab0b42109f065a2b65b4ae322200471721d9b8ddf81f743bf530c3c92566f6d06b5c43197cbad2f84e05b9421d132332dc171ad2023254abb71daf1e483983d3743c39be9a15bd0cb17f40bb82bdc10c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba03012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b05e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df622724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a331d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce0c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba03012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b05e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df622724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a331d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce154726d1e457b749e5a32d9cb269c17087add08c554ac6163f1ba6dfbda977f43ebbdef2711d9803441a84e31a9d5ceddb174d378971a5aeaf3f8ea84a27c7941dff3c5197fd00d1d0a0de7643244f7892ab4a9b26b3f4238af227929b22c07334ab22fea15d89c74a4ca0d1cbdd19b18c8dc4699b5e6d44a70b9e363033d81225bcbf352e713ef1b86fb85c844fefc903d503fdcb484921d323ce1fc3a082f81012df7cabe39036022d724c01bf03b4c3f033f62c418be42a9a3df04001865d32ffb8a81db842c764cfda08d979a7863a7de0149f6ce6ddf6974988ff4d13213e4ff5f0fa47d4f844d769855072f649123cad26882535aeeba8d19022022d051fd3f0470b10d600d0e6b73732ca85c61cc8769d3057e0f6bb7b8e9628d159fc222c35e3ef570b6bd331848989afdfca2c62d1ac0492d2f8b11ff463519b299202a6feb09641672abc1339ef443b8b25d7bb5f37c40752bf3a4a4be1d8bc1cd522d9047da94740f3a6eecb0b7623fd50ea2b88a1afb2b8cd30ae977ec6ccee220cb99cdc83ab47e449bbf3ed0a71ef1707ed7dd48d4e3ee1cf1f627aa733c79b0c98fe0eed84de357198da4b19858960dce82056edc9df43dc0f34fb85a4605d02a6feb09641672abc1339ef443b8b25d7bb5f37c40752bf3a4a4be1d8bc1cd522d9047da94740f3a6eecb0b7623fd50ea2b88a1afb2b8cd30ae977ec6ccee220065ae6aed6f15d7f50605401f337c3ff7ca9d27764389f52364064fbd2c3f80251001d0a425157b25743a0b0d071bc241473e526eff30792980e044ff103a4d16fdb19c15198228b4de779421645f9d26bdf93adc95a6bdc50bafffc3ad071c04479d5156cf78522038f25f90e52be2b7d28136f6e9ef9aec6a11b7fc317c0500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001388b0333da03374f9da2acd2136f4b7d88bdd35749e15808a64704e43de754dd090a3a3bbb5eb5167928ae828b166e81370a7342fad5731a55ed33d1784705a92781f343ec76148b7454891fe9444c8a2e10f7f88790d40cbf34dda89d33ba9c2a8bc53887742d71a89bbc3c2194748549444007da46c8d5b134fe54ebca754b2dc0f5389654a41d09d968af293434e6ffc97db65c5a227c55e42f102340ad1010fc59263e01be589e125af93ec1f1c3972d08b02328c0ae07034c80255793a30884825c2cb56eb151660b550b8f95bd0d8cf94c5f65c7c953fc5a4aa8edb38639efcdb6fad468b4d12c945ad611a77e893ce9f2893b1274855a00cb4f23341b1d71f4d444d4694ef37c68aa87ff05801edd71f131328c1d068557f90dbfa88c26358d6ea201b5eea34c3705aa8eedd7be17e2bb6eada4bdc3e1d74e7f2f718a361b4d2604e4a24b415d17caa58b57cdcac84f0e37b241c066e78854c1d556e92dee9c42126f2a104a4f2eb7ece763ffe970d9937c434ed2892491ce9cca07fe21490ef65ffbd3c61aaa38b589fe18945f7135c81cda5debffc16eeade02b3cd15db30b5e9c254b250319879409e41139c81fe75efe74059545246d5fc7611452665d50cb3613833ce7969d425a2a156c92b7eae6c9daa08288d710400f5f8b61b8ed75ead34786034e9bcf00d38da5404d971f53414a3804dd9b46036775bcd0a56bafb3a3a667f7a0963272665bc4c37d3d6ff8092479208aea2bab54f37822e94ef99e76160d9d1b049908fd9e62ad2df6a1fd8e8192b1845f95b0d84774c27d9d15b3176866b5aad640722526738505b412544167463038fb78b2268aece050bc8f9238ccfaf7eb890774fb55ef0aca46e6cd3d7e9ca9b6b6b9ee5db2da101c563cb9d9a7f1e8ef0721213ec32605d7698d7c57faa3213f1281583572bd0280608f5aadd3b022e6884004de6d2c362e8c01c0db39f68f515a154e98f7ef0229109c2dec6cf3c7c15ae9908d954724e57fb053cb2f3a0210007a0996d799a00a5463efa60612193b39e2ac53aa1810b1edd58ff876fa9d57500bd7c4430d403c712f50e41686dbc49641ef0352cd8fde7ad7b7ca0b684e1fe6b81edaa032423ab2bdc36a8e3d57bb79687afe480ba7358a9765291b394e7829d659fa45d983fc5a0bde5715a43764839499273851d7073fd0b29e1323e7a1cf2f508f6c4f80fbaa6ea9ff1f357b9943eda225518dd7d87e96820de245b2454ff461e121fbc283a217875bfd1e6bb1527dc9ca3ec5c8a2f12607891d4fa54fad09c2910747636acdf27bdf4abd5dc2877a1f085c40065d250478e696df36b71b5aaf079da082c241ac8755dcb5292471bd978ee86f1e081c8dc66437d2f66712f205d83898d2375b40379044b8be5958152ec34aeb2fdd41f803655dff3b4b9af032292711c0d3d386d3d957295b22bad96740932be953066cf8b4e95ebb78dca94d3b089ba30438fbbe1ea021c9361409083e9f51e832431ea376c5ae6b12d085922707fcd14307e53f0b7ea141f98243a2f8f90f05b6d6d867547cb251b6e75cb3c2a5c423e36dd4297da6a9c7436a8cbe3b444203ee8f681e12ceb49965b626839b1ae693b919521508d3d2e78d114072fceaa74b06e5a91ec5d064d0b46d03a86d6071d050736f42d6d95b7a31d50e66fb2e025384890142e2e478f7d8ec2b48d80121f3ae316041a4c37d4506da396f0d24d29eeed488315df43666f999553f8bbe81001b62b47c621ad369a4afa5ebddea27ff5e7bf7ac9a8ebf63610e2dc3c3d769d3913074b74a765a7082b2753b76fc74a4299ffe56f7b17436da3dd5c74615bc72cb932a1d85dda76d4e84cedfb2401ab90786ce997a6379ebccbeab56f84fb83137841e8ff5a77846dcf3dbde9caa99680aa61f87d3d0df09380da628bba66e00d90e455bd1e552c2ff431e72b51f4eb82a2de11dff4ed7748d07426d32879713a4e20230346c367e619985be1283b95eef2bc166deae71d93d7d2d668c93218084ce7b567f57f365af0c8fe030243d7cebe7af6320b94ea5d48eb7d72a1a7d1207f44e8c2548ceae32a983a06f9c873fac23fdb58f23bacdb077b785a579df61e37dd9388e52541fbd63823b52d5694ef13edce0a8ba60b3976b9023869ed82056db320d4f6d4e12994e576f3dd8375de4f49fc044e4776a603639e755c50a21cec7a6c4ef5caa07973ac1b16f04eb815f80fcdd5e0db38ebb26ac0420896262042ad6d44b85d8c2e6cf1da18bbb0083196e509bf2b27e7fb20497e0a4cbfab1fbd5292bb47a273d1930e25e7444ff7f0afb3f24a21d1339e0ce76ef5b34056214d63225799d3bce820b9427baa7028b3654738a93dd550b5470d9c337fbe551eb29cdda8662c4317df46bd84558fd76ee151c3600f23cae3e62350cc8041ac2682efabb60122b088a39e4c6a5430cb3c6d32233b9b385c5808e233017eb7a7197d105449fedd4f775c61b395abcf34e5d966d8cdb1c0bf41244eb9fe81485a008eae5a8e05ad72ab32177e13a4f3f7c74e2fbc0e212e7aeca4d838077996403f7151a571fa528d54cde881ec5b0c085af8693ffb2bcaa0ac8858b4f88669c12042ad6d44b85d8c2e6cf1da18bbb0083196e509bf2b27e7fb20497e0a4cbfab1fbd5292bb47a273d1930e25e7444ff7f0afb3f24a21d1339e0ce76ef5b34056214d63225799d3bce820b9427baa7028b3654738a93dd550b5470d9c337fbe551eb29cdda8662c4317df46bd84558fd76ee151c3600f23cae3e62350cc8041ac2682efabb60122b088a39e4c6a5430cb3c6d32233b9b385c5808e233017eb7a7197d105449fedd4f775c61b395abcf34e5d966d8cdb1c0bf41244eb9fe81485a008eae5a8e05ad72ab32177e13a4f3f7c74e2fbc0e212e7aeca4d838077996403f7151a571fa528d54cde881ec5b0c085af8693ffb2bcaa0ac8858b4f88669c11dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb3ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba2e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b3333a6c18bf778e668d61325e69e25d3175cee5aaec8d1f3ab9c818b7019ff2af38225810aa0ced9279f11d7bb6bd5fdb922d34fcb89ee3ac44c8fa2bd5f655bb1f13ecf097788ed6fe452dff23942fdd3aebe7d16e25130c9d72d7314d671511286dc7c63ba70a6f3ad2c69ff9b9934f66601e89f4eb87d44b977e5f7d9dc8451c70686c6ccf34410eeff581bdaac669356723247562a74c0d699d751c4452860d81d8e6f70b78783550c923d3f6e1e2e57f77b631c25142f146fe065f2b794c225eb35e5e6699b01693ff2025239088d5968f6bb9195fd4230a1040425b06e116757cbde9eb9f5f59c6bb6da6ff3d7d9e8cd24ddc94847971d4facf87ee4a1c2336bff60430d8f218dc08b92f81d10147de057f17abe549424dcb46d17a65b20672a3fef6b96f4283b5bdf1bf29328392c5f009dc8244c23714beeeeb608f54225eb35e5e6699b01693ff2025239088d5968f6bb9195fd4230a1040425b06e116757cbde9eb9f5f59c6bb6da6ff3d7d9e8cd24ddc94847971d4facf87ee4a1c3fa55a619d63d535c420e506d77f602bd8fdc2fea70d92ec808b1d33d3d955d304b98db9612503e92443ca7cf18ce40d2933312886b225ff2f4405a7ebd2f86820b6503a8bc3e9c20db16cc2ef7b7e2fb237deb7411e8df9523508d8144d455c0f055c09dc496b55e205929afa3083161367fe1f7f333ba229d0cb0c82f55147000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013fe09b2a7b9cbb636c3e1e8036bbf71c286bed82502c6a779d39c46e3e4398cd28e487b81ef2aa59cb55cb93375ecf3499cc12964e11847917e10cfa34b479e72481258db8323dfef2959a14f20a698ea5be08659071e32286dc1dbf76d2d7a60df177d352543d1e324da0b7b4debcdf1e8ca8c2fc2cf8c6006a13d9d6c9e60805aa9065091ce82966ebafdf61f58bd8ed6511ba7aa75d81c10cc225f7a5099f1c36fbfb00f2bf5b1963d92c31c94bc55f0f720ed5e9cbfb5b4431e601a82c5e0aa7ce671053eaac33001ce7bd4c77f27defba86cc0840215dc44ffe1354912a18973e4aa85b9efedfc1102516ec70a20ad50af95f87a69530993b537c067de01a92ce4798baa574c7bfbfea7bde8024dbca94fb85a08bf6ae99f566788d052c009032154aecbbb19e8444e316492893f5a9e6f773ff01c5dc73895e95f0d20702ea221a55e8a1784f03d48e3ca79ff4b6fa4287db15ae1623a025c31a1eb35509f4abb59da884fff9d09609b14ca72a5ed0808b28c02ce5f304d41099f2a7b823636db5703ab1dcd748411083287be900a02762e8a354eebe282467005dd82b3952b411e8671574f9c096b7b5ffa147b5d82e146d0d57dd187822c5c5fbfed70f1cddecf1d23ee920ee629c00b2a8aa4cc1d80284792274d80502a6af0415c53f76f15c754d0d00e9acf1d39d79d7c344c6f5eb92fe2ea044cdbc4b45d419ad3175a9a970dcf98610ce032e7b7501452fcce482eaa6ae8969d623a8b4a15bb7281efe5ce357c84999a9f5f22925e0cdb10ee12e64e89a8ee051561dbc90d2d6032282ae9aa6f2e9164b5fb86258f993a747b5a78c0a12caf7695e913b90219802468ec9b7750a9e304508aeadf3d15101a84852018d1a89b13ed20211db92e937b11f30ceb1914247799f1649b3ae04cf50aae2222eb355139d9a25515cddcf2fb47ac77571664eda291aa642dd392ccb29f9cd60e20cae42415e11f381c479367703b72014e7ae6c3407a2ea73ddbc35ace7280bf425cb18f23b15162b3fab1bc7ced06989bce94fb771a15690467dff88a1c122afd6c0b5d4177764039bd415cc6823cf0202eed28c577f713b6a4b2d6ffa5a25ef82ea7f0f0380cc98406a29e1c6ca3f676f5853b447695a956c6b6136e9319d2ebc7a8250001f8c159dc714c83453c2c8af778ce5a8d649d54bee481a83717f0f1cb012e024d947c4bf7524d1fafce0af398adceb4505c1268e4d1353fde9ba983f475f71073a032914be3f4a858bf6d93babe8a3996c77519dfe1b929812c0993026c55022b328481eb620190a77ce32b6a3be2e67b2441ccf39512495edb76fe94e5ef543df96aa79b73aba9d477dd4ef8da37dbf1613ea2be99c1338f759ec5d555a9f10afe65a12553dfab46ec40f69d02008288ec1be314a8bd60712436772b681cb8324ae8b29ec14391d672710359c0b8db0526198bbb746440139ea742bba1777bef0c637e5f738002451223bb3342b32cbbcb2862ed80b5fa89a466eeb164acb65c76f1f17c3246e8dd73a882666e8e16f822ede3aec72b050869e533696cab035ed85c1f7982b5b560714bb188a6cc63021b97a1280b5c05574bfa49fbeacdc0c83c0b5d5050841399e3fd3c4bbdb2f1e11cf304f6f4d1bc6d0e4fde150080ff7f396a79b9c311c50506b15dfb172a7fa4a4fee7f014bf4b5dcd7e16e74770161919a7d305615afa325ba6e002e14b3498549ce998a04223f1d27bd1bcc5783bf95401e8f86096a43f355d82d7614ce0e6df2d7972fe083a836361f96dc16c3a7fdadb929952b13ecd2393dce0b1fb57aa0c82ca6b16a01525444c9b6a20fd858db9f5575260d46187b1d95d413da017309b61eb6854a68b8bc86affd35c69f5d3ba00965963de82ffc1ec28af40f5dbb578c2500f23856efd6d2077174ceb49faf17ac1cf904e33ecf51fdecf36a3673cae0569e9b5e8ac9ddf37a71d369022b97bd692cfc0a13b05400945176bdd81cdbee19f8ca9817b3331fa408b1b82b59ae68a7f1421cccd40ca515de17f60941b8499a2d000700aa6a8d79874fb3202486c8ef790c12c08f19a8e5ce10f8a71c512a34accb2ebfdd7486eacf31da855a3a28b82cd01974a46bf035a081ac401b7bc0d438c138ab0b42109f065a2b65b4ae322200471721d9b8ddf81f743bf530c3c92566f6d06b5c43197cbad2f84e05b9421d132332dc171ad2023254abb71daf1e483983d3743c39be9a15bd0cb17f40bb82bdc11043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a1043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a3ba6fdac0b77d30417b290295f5091155d781ed0d0a66a28e5a091ccf9031fab1883d6e1d3620a99d127d8cf8f9f75ddfae5984b4c8b4ceb80eeda5649fd19220b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc28a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e871e6e0637fbd2eec7f53d9274a1ec6abff0bb5a737b45b8caa2d0031846ce7ac63e2a62af0c0ec157b4163e558a1589e5f2ba4a4494e1c6ac46d6793eed0d61503aaf8c3339f1ab672444e10a08c0dc0efc9e314ea9c148b218529c30eafd8e0a2b14b240c176e1fde32638dfea6520d5983e5f855c8c72873458769e662a2ceb1d6a0e5afb7cf7e470de56335d310ff0d4c2db1069fa5d8157b7ebacf070fb0905658bc419c6b4c20a8cbfb280bf03d8dbdbe0984d0a63bd1af5ba6f8911e8a8127381323f9fbf530967dc8447c416a96fa1e32b0b281b6702eff53454096a4115c87650577b39bad636654ee00feafcc869db0b5eda86039ff8dfd84b6c28b939346cb03db80572a9e11b78b224ea3be1e5627d6cb4a161201dbb1881b7a39c3edaea3ce3b29d21497258d0f1510c6ad41157af8be9aa05e08adf2916c3b85a127381323f9fbf530967dc8447c416a96fa1e32b0b281b6702eff53454096a4115c87650577b39bad636654ee00feafcc869db0b5eda86039ff8dfd84b6c28b90aba3c0ae3f5d44b2eaf76521f4a79bb1588c87035dc42cfc5acb78db015bf4f16336e223958af763698572cbb2d5db8372a6343c009f1ab4dd5e65908446cf61e224492f0ecd28f7e1ae56ccb5b965df65fa883d72bb44e8db5d426a899dbff1f63ce81344361519080b8dc3b1e35bb17828eec25950687d646152a439c2c5b0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000107cd991467d98ecc1f174f69b3cf8bf0b1976a8ea4e81104070b183741ea18a9177b9baae372d9712012fb537e9fdadf97cea8d618ef30458fc621655fcea19c0eabec8a14610c3856648a3897d69e0eb18307c4ae4cf817f17cedf7c5e4cc4f1f88050448226a97040f75754e25139bb0570d8e99af8eac208e84acc83a179d070b1d3037a8998b521c14d2a1d07f574413b06993e70eaadc2d95ce211d3dbb2777822f755ea05294d70ed7b1e66e7623c2d6aef461de92da5e2d26a7bfd3d00c834ab853614d17846ec48b4788755a7a3fb4ccd908ffd802465fc9ef4b80c627bb4b669f0c3f74e19118b70e9a8c5c7cfd5b445c1a5e4bf984d8846ee3309e2c0256abaff20e849f8e28fe8e78405369bac6ee4e4af3bea3388060dad1ef01132ff7407f317c67194eeef4e6f06ffb863ea1bfef1822c21a8dec69d1b30a350b5eadaa5d71cfc010951794a17606984a75fe920f4fd04b2eb8c97edcea0621142b4dfc0c27060ec48ccaa8c6aeafebcc4e78b9597c47eadfc16751aea555c02d873d6695efa3a93a852470debc527b02e0b56ae5a845e7b0e1a28e4270f8482b2356aa9f2c4e107c4082226888c155e061648bd4aad7047766daca7916121731c9a260c5eebb702bd9b707a0d331a13b9ba26b30a96e5ecf4e4d9609e29a2a07184a2826f745b37aaff3d111048ac514386316cd9b7554a900c4c089c7df2525d254bc7d742a082c49e4329a2f1fb98b45cc8474f076dc7f29b81c6faeb61e006a327739e8634a68044a97e38ccfa47d2c62f492be109cfdb36fa2e50498c806bdc2f66d59434df2bddf6154113e9d882953541aaab57a10903bfc9787117e331cecafab7c9037b4b82829d6811744d132c2b36c52a94f878dc49b3a3276412f8a528c4c27323ee24ca610384ed0116e93ec75d4d167e974ca3d327e9a2caa1f5453c9706a4a025229425ebd9492951cc48ee280919729bd85120d0411e4af0cf03eb1f74a7f111a7d41335f7afe88c3acd0a698584562ecf39a35066af6a52705e3c19f4cba43af91ead2da566f45b5439a5e4315b433d9a0537bf30052e521f3a508aa2a92778a66b50aa6ecc219df8c4e081bc32bfb1efa007d32f54b93338663d7480f6323c6af4a541b408fbabcf655c549db437fe3a006e5ea2616900b6d00e793bd8639360aaa5e93af62a62837fade57aa044435c73b08bdc6d5ef3d19837de103456d6c9ca8fe8ca15476f5bc8e645e93533b9e8cc1af889842563a7e1eec500462cd49dc6019e6f0ea97155fb61a6e13c0bb5c0c6747c6e47cfd0bc677608f8a59938e462678495e3104f0106d7c4c98e34af7dae75f8111aaee36cf28f487309ac7d025ae00a496aebb27fb8b9fa6c6ca549efcd3d07ed555b632b8e0e65632e5e563c8e1128c381a8f46b7e97a9ce30cf202c347fee9090f291306c8d52d1017fd96f78aa2bcd962cb2bf443001db53dcc10d06e80c4d749ec02294b70212e847623f4419352838b39dd682dfab88df5c65fbd306c42928a2c1b484ae52268df8a449e365ef86abab3e56ec4845701b32a21e8d5ceced66da92f9018badc0322a95be61ddf228951848a00d4179b72e9168969b8a2e7aa8b6933722c8bf2a85ab5294f55913d8f20c65c5bc0f3375ef3cbc7bf3fbd3bb307780417652f8b0b413a761ebe096def04f0e48030dff3fd94e662f8ed5d89a6399029ed6bb25ac21c417bcfe687ffd5ee748c8f69f36abf46c0861ecbab95b3eaf90000a4ad422bd2c7c7727c8fec5dab3769956033df1c40fb5a98f75bbe358a0d283e254cad7238fc7e2fe80df46539f941457df46ca2e6999bad8b756c8be5a51626aeeafeb81001936b6d0ba479319c73f1c4cae6632e229bdadaa6615a6d9738fc69db4646d84c91edab319fe360bb3acaf8835b08dcb38e5b4e862e25c8b011f29ddcd5397f0f801760416167871f3f3576afcbc9ab5dd0d28b3e64bb4966111df108ccb2859ed1f350974895024b5e2ebe74fa45e46f1da5eadc3bc78d290257920a7d1c296d175d0e80e61439db6ba1b942b170ae365460ca72d22c386f18639ed24240f76d15bb2e5e08799be36a705156178dd55c654947a7c6185fa424e725cfcf9eab025c3a75eeb1efa7481cb0c5575b037239a2291c62c651b9a61e56816992ddd56206d8aaea597da34c6e5007ff6ebcc913e67db65dffc279a71c632d3ee1e97561a2d55a63b3fbc02869b32856030bc899f3f50ab4e187e3481961932c86c70d27431b51514f0a4e8ee6d185fb5db2d86e2d066bab217aefa8269e6cd37938f2d8bce4aeaeb0f5b1713b751300ab9a20ad6c26c541de8510593ee7dfdea1e341c44f8896968b3388ca5fd104eccb31410b47f2e96aa766ae47011820215e1cbe3bb077696974cc7735c275940f3e1bb810513a4782589951ba3a875f59297048d58daaf0f0b801abf355fab4afd2c260ca0309cb614501675f0578a0a6d68fb72a72550f0f47fe540ccc4be44c368a98519623658bbafe98a224a4dcbdcf316c2bc456b4b398085bc024cb237ef897ff83aa7c3532590704d71b5b234230ce93d43ba94b4c67f7a43ffd7b757d10b4f997eeb0fbbaa6f8fb2a1961932c86c70d27431b51514f0a4e8ee6d185fb5db2d86e2d066bab217aefa8269e6cd37938f2d8bce4aeaeb0f5b1713b751300ab9a20ad6c26c541de8510593ee7dfdea1e341c44f8896968b3388ca5fd104eccb31410b47f2e96aa766ae47011820215e1cbe3bb077696974cc7735c275940f3e1bb810513a4782589951ba3a875f59297048d58daaf0f0b801abf355fab4afd2c260ca0309cb614501675f0578a0a6d68fb72a72550f0f47fe540ccc4be44c368a98519623658bbafe98a224a4dcbdcf316c2bc456b4b398085bc024cb237ef897ff83aa7c3532590704d71b5b234230ce93d43ba94b4c67f7a43ffd7b757d10b4f997eeb0fbbaa6f8fb2a1dff3c5197fd00d1d0a0de7643244f7892ab4a9b26b3f4238af227929b22c07334ab22fea15d89c74a4ca0d1cbdd19b18c8dc4699b5e6d44a70b9e363033d8120a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac629bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c1c07d24dd30cb6b53d135f2ccc068e0e8f6acb1479d8c3fb00d3afa7c818c99d06d9e8a188f6a404b1f7f08513740ab7153d20df8d8cb0ce8cdf805c2b5ea6f432125a2f9c132efac0167049709730e8ab2b69db8a5bcf7d650d7a9dd03e945d14de7d956b3ab840ffa95be77006ffb419ae81039ee9e97f395e9b804a4f19db0e7fac8448dc53da073a8f77f15b2071c7a3ee13553f8628616f968d138de69921a498afb8a363c3eda9ce85aafa4bf8d77680569012ee74d1310df04a4113c411354e605b67b1a7809a369f541ced5ed934a4c09ec3341f991498c701a1288d02cdb763fa0d9da5a9237be078ea30ff6749e00736ac3e89bc196bd4063016fb17ee25827a991e74a1b6678bf6a54c965f692fc4195218d57965f2c1966594c92194e3701a64d8f6eb094fee90c15a3ea2fc3cdd2fd7656046c0f53a10f4b5b511354e605b67b1a7809a369f541ced5ed934a4c09ec3341f991498c701a1288d02cdb763fa0d9da5a9237be078ea30ff6749e00736ac3e89bc196bd4063016fb380b1198b97b15df78b15606de08402caa294a8b00f103cac4a11e370d1297011a5ee87b8ca31b253365a7e839699982f339b529ce81573045358b607d8998791ed15569a2a2227b10567a5c1a89a71e9da700825df5c7790d8cde408c276863167a5f99ff7f69438acbd344dc62cb56821d522a6f950f2ff0cfca6df1ec37a70000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000112293d486832182eb2786718eac05daccbb8aadea7ce6656ba2024a8305e0441136235257695795b5a1a0982c5bc272fdbd736ab010b0f78fa33c861491121111b5e44144a8a595736152a2d42aab2e242f801bb2fc56753314920f64f4e06a839eba19b3bed4546db88e8edd741238dd418395a00591d790b6ddfbcd451544a2b2f7d984b6a2a053859ca3a463df8fad7f038a12bd57706004e02f6d9b27497107183b9ad496451d65be90714392e1dcb02bba1f7d86993c113f81140323baa2aa241c59f4952da4eb477f15e6e373ca6f3c2a19dbd4eb6a11e6fe6638b49350ac323942cc5d7f27a8cfcc16e9756d1bd05d0aeddf44e854403a83d84c8315a2100c1a2a9ea09da38977ff173b7c93a74903dfa165a9a0db495d9c8444d515d3065b9f6aa879c37222305f9ba2f87c3eb8bcca2ebf10f2aa5b84f48ca4148ad1c49ba1cfb8e7fd64ff3aba16d36bb5cb917f2c0621e7843aadcc401917b7dba2bac0721e0501b6df6cb375602d77d52eb0e5ff8f2b84f4bddf7c40ba6ceac6c3deeee8ab1d483350d9d697241108accf0ebb0f02d00cfa72814397b46070f252f7923addc6c46ee92f5a342dc9fe415f0434768511d556769776c57c1fa8dd01891a71c73c665a729a8017804c07cbf541fac2b904b7f34d5d395d193a2bb272b753e17d87d5616d5ab27322890b7f9026ac74fd5577f74d379251db0fe16351eab8391e8e37b8d64d9fd7595bd00bf57a7b4e5844311fb0b03497c11a8d57f28a3a439be10f9b222e861b49b124153b17ad2b481ff3d99cf561e293961792703769894d346776f6d8d3607e5f79e068405fe3821ee87a215f5e47f940f0592012940f549e6cca4b793c34d7b598bcd06fa26454daf5a08bd1c0993fafd7b161177149fee752d40a07f0c3b6c3ab0d4884c90b757450caf6771efc9f846056e308bd10d6654c54b451533065e8d95633740d04e4945319977fd198bc752eafb1c648954cea49473975592b6e13c5004db855d51f844fa58a3bb537f1f4caef110cbbfba5a562aee40ce4a63109d65d9b4322d8b2af57e0844e153f218edfab90fd49fece1131386886e02b0cc6b91fe60d532bf7e817ebd9b721a864f9daa8e18f3f69e70df7fe7de3c2e5dc5aacee9a393bbe19ae6c868fff89ad044ec195d281060fe9bde441c4e58c555ae53f49e65f3dcb477098461d641752e47f8d3021bd1eac6ac5ec905bb2e9aeb1a2979d2b6566d332a117fbfce95c933dbe6e5de0a9075ea0fe428710b1120ff4de407d6f01fd82132ab3fd343804705fb6150fe3f0293b9940ee12a248f867cf5483b22344847be46821fa01eca94918489e9fe3462ffecb7f1b2560ccc64336492cfead2759d1bce66ec2461aeb3ec2a8eb5df3731fdac99878213c91c2492acd0c0a48f93aa941a4ae9b8a1a2707ff075c26209e3cd90eaf7fd44b5c98e39a874d3de58c0b82948c8614e5ba9f29d893491e93e5620e0cfe39934467da747dc53f4756bda877e64610099ab3d60540105032e334dedbb7b75f4fddae98f210817f0de7439bbeb07d5010089b802b70d92a82013f80d72a12eeb1054f03256dbd8a69a8c99904f4495f2100af887beeb54c3182ad6b56dd2b7060c3a6300fdca7854d1f357269ac29d202bbe6f6b597d87e5b4192d558d7d36ae86e34f0a50d5959fec21d9ca77275e28ee34de7dda199db3143d250dfe8e7a464afc671c03822e4c97bc85f8164b481db3cc83880cea4ee2b612897d7e6bc1cee93ac37a343997ae1bb04c25d043f0c42afddd9c64c4667926275639216ebb7370e2609befac38eed12f54060b8d926d45abd9355510846f761ba952aefbcfaee338275fa7bf817e34e4dd1e5f5b21407d231ae196daae2a050943188105c39fc00ac7adea7d005b92c3d4c6ca94655764f9df4b7ae32449283b5cd71ff7fb455b59cb1d2dd2834507f4538bd4ee3d225b53fca17ef3b39196069e4774371188f95c7b9e6461829e37e8fb86543156e3312b57100228fb0c3b36a294e0dbb621ea8be72b12b15fdfa8d496419a273cba099f7f6212d583d453041e1ba9418df9bcfefc74fc07dd05ce5d4ef8bd8ff278648d5f8e95268826ec01f16e3bb98150061b2b7c7434da17e7398c722254968361896523b87f3d53d1052507a97ee886fae67251575ff2898f48603b9b17176967a94edb1b95832e4e0ebcf77fb24a27d960bf14c529fd5df6955ca3af8924f1877d2892f3a24d8ad41b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac24fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a60215507121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a7235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec21ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f30c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c80f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f046391b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac24fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a60215507121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a7235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec21ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f30c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c80f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f04639132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c83614840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d31263feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d0b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c342bed61af12a068269a5db3057451efde070145726d01d52f5bc67a7ec63d333d5eafbc96ee19566bf0f54485b4c58d8048d16c5850aafd92e5e7db1c530647232e8c181273ab6072cf1e9c8a11b654c69644830c2f5f9948f98b2f5eb063160d8de0c8564e8b3678fdc6ac135c62295b66f230827010b96ebe77093f50cd8b240649b5bb4f4d871d4b6896d7e024258a7958f57c2ed8c48ee412ce7fcb8e220d3e0f4f64e777b3528529c553f8ab0fec08b3cede187ffa0ec88648ba611172230086247a469bcb4270f361e752adaddcad693d24550e9e2dd444b25ffba12e366fd69bf31349f99c35c37b1c54b8ec1ae6392344ecda412b8bb3f63a32c1752ce6bf9402cd9eea8f5df647a4c71b624ad41ddaffb8f877d56e0dc2d6eca15020055e73c43eec6fb6affbfc204f597fdd2137a2597633cb71d8be23559473a0230086247a469bcb4270f361e752adaddcad693d24550e9e2dd444b25ffba12e366fd69bf31349f99c35c37b1c54b8ec1ae6392344ecda412b8bb3f63a32c17507b84ef2185dc20c88214b5382af44e5fbf1d259af3cbb7957c71a8caedf69af2ea5f052917a6daa99c6a0e6a946016449ffae0bda0c1278d5e5d6b2b63b693e09bdf445c2064d1b051a48e22cc01ed0e8b9cb8f277f5679dd28c73e6290594e1e2ae81d2dd29c5aaf58f64f8a5e3ef676fa559019ed3213e06b767c9da3bd17000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010fbdb94e47d80b00c39594e72690003494eda25bbf1b259e297c3742706923dd3ec7a54e87f6d50568da743b2c4630bd8d37bf500e872e4e1c275a79e69b89ec386197dcb5abdc2f0a67527782f03fdc53062b18c35cb4182378c1c127a89cd22d237a3a12b3630a0336dda2b8c52777ecaab5434fc58c004db30e9e613a09ef26f930d6f22fb7db9e570a574b2d0692afdd65666435859664f9c69f64a76b933d44b92237cdca4feb15aed4c26dca4f642f3e3a78ffaa9752a970472f77bfc304523907e3f052ae73478779ca0705438651f4406c1a62934b321e6e5abbb5e139c82d98b13a960dca7dbafd9506a4acb4d75a12f08966e24eac4de237593159132399a54ef4f4b95d86f91e3290b590b019198e9a1d7042c78e67af4619c5033cdf702839ef497009c404fe00b1b04536e527cb8df5a58b7c783afba0fb94a208a4fd8febcb74e1fca4cf006fc2199b6e9a578630861995b2b608f94fa81a793938127d1c0de81a774cd0a8086038fd4d9aff344a0bceacc2bafc8abe60cf811df9ba35c665b5624f17d8544a1b3dd57055dc290c4d6ece429dd8df0367a4f22a621f5e27783733d3e79a40d1000c7bc07387b437a126f627d5b9b7e64f3e0434b3e8a7b30a9d0f9aa8283af50e04b0dbaf2c2ff1c07bc026cad685fd666f4e16d5ecad89e6677f22dc4e94ca3b59280d630f5e0929d84e1f91fe69a698effc03be131f420526b5270946e40e0990c45b3d90c1a2a3fbd56b5d111135097ed037a95455f20157a377dd68b0f4225596bafb3e9104566ba819ab45e308e0c436282c90b1572d2c094c013d649814f46de72a76a306c4e1a0fe161dfbd5aec7223319f63243bc2280ef8c4636f0b535a2a9b1197a7158c173ee9bbe309e620668330771db22d8fbcadd9cefa3f70d4d61c40eb1869c5c56252ce3628f5dca086d02f413d9cfcb502f6f0a04ad70c6f466e3f3adc26eef29721855baa0bb486ba808ad0bb61c2db6e2d7b839d14b4fe346b53146b82dcdaef35390ae1f4d230fc213b4d4bb5d26920d6554dc8113cb30f6d80c5747a636488849db49368e30e3191a2ff394c241edf20eb016b8c51544f772c8d66d0e556983a2e2c40d8dc91f9a0de00ed42a34d2566cbc8a2215cb6c40f6d467bf10f12030999eab6167dd65653bd1dac68d0e555569e04f6f57d2b28e3574b944b46e892f19d50701f00a2c2d3990b0e60200f8c3bd9e02270df07e51bc4bcb2dd829ef77bb57c6ecc116455b1343ad3ad1f6ce72289a3f0cf1c19f3c08e99364788734b2b53346116ad0a0c7085824fa21447daeaa45cc7dca8fb70877bfc237686ec6c035b4c753ef1c45f428ca366175053001a2314d4669fd7c12b1076c99ab774b4a37104b7a05cb007e3490aab09acb3e0b82fa5c37195d33455240b2528d86835acac8ad29d7b0ff54104004715efb9d4981396663691f54e52da3d70afa1ddef3b11171d00f54bf8f18d8edd49a19b99b8d9a6db2bdc15f25241d9b2411caf4e7933578b9e4aaac43114b3c64383aebe32819127ef77682d2ceab66cd4261d1d868b7f94b550fdaf80d706dbc76175de04bbbb2495700b40b1e20f1a3b208a63cac303e1d8c136c6839a88a2023ca96a66d426ff71a60f5cda39d09e0e804aae9f746ae8c64e8616432b843c2b588742e3a7e22a5977930fa8958828f9d759676baa89d68c767f59c2ae506a9720c8de1491c119a398ead306c2ee68de1e617736abc83ea6062488b0bbfa7442859c2be019e1990a62b34054eb8204a700d6235f03c87f4b6d0d2ad38a91926e49caa10649300d14d1d6769f2e3943357a5e261f822fbcf78de897f02b2aa1ae57ae62fe1b96dee6ebb8fd6f5398fc9486a3fe942dbbb31847f285c2429350ab905a0ca7874231188eba1c63841f1a163b1bc8ca536dbb18e579ad40b27fc6af819ddfc35c520bf769e4e2a886de807fa3dead2338c6fd39790cfc53a1996abd5c4243e7a84d388334f33c304d85959e66675cd1ae9fabd8bae11f72ee18f8f4cbb7655c3a0d398c5940dd681448dedcc5661fe8424d8e59f5edd1a1bd6ec904b6203a9d754458c81ea5fc424c36bc1134825356be592bcc92145762b429b5002228d9f67112ec9adeec6b7b5f468b9edd1408cd2bf3ebc5a5c493b30bf77b4fcd6ea8270bf7e5582ccf9d6795128519d594c4e3bb972409576517c1e294ffe5baf63aa7558ff0dc158faf7a69ee6d7a219a9dc4e72f8e2cbb469d72bd0405ab456f0bea331cde047bb2c125949cbc4a98bfd60a8e0118e69765e7a142fbfa54ba90f415cce321fb844d3edc8fccd375fc0fbbaf04d1f5e9689a1871b1141c585b2b3b92ff9056166a7dc5b579d2fe333d5079080d8c5010f4fd85f24eebe3a7a4d4c46d006fa9e995823a4caa96918d577f18b18546bebf0b027a2075648db9c7d829defdd1ae701474dc87184bd77f08f339b51e1772b4c8f39d938a9b72463827d621022e518feb8b237b0c1db8418bdc580474bb9c1b370c62824af6c4a0e738d15af518683066484ea3797b357b2cc0208996753d87ecc213d1b5093b5f18c72ea50ae797cf99b7b15eaaee5a45680f712ffc5dd148133dec42bd0405ab456f0bea331cde047bb2c125949cbc4a98bfd60a8e0118e69765e7a142fbfa54ba90f415cce321fb844d3edc8fccd375fc0fbbaf04d1f5e9689a1871b1141c585b2b3b92ff9056166a7dc5b579d2fe333d5079080d8c5010f4fd85f24eebe3a7a4d4c46d006fa9e995823a4caa96918d577f18b18546bebf0b027a2075648db9c7d829defdd1ae701474dc87184bd77f08f339b51e1772b4c8f39d938a9b72463827d621022e518feb8b237b0c1db8418bdc580474bb9c1b370c62824af6c4a0e738d15af518683066484ea3797b357b2cc0208996753d87ecc213d1b5093b5f18c72ea50ae797cf99b7b15eaaee5a45680f712ffc5dd148133dec41b3b6514a5e576d3bf2166ce9c7de55051cce16420aa35ea7603aa0f35bf89c41aebe5602a8f012b625ab7294163b3f936535be6d1710961e568ba8e309576382dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd60921f7e41df776f9a63500f53f202facebeff31ff4c585a0e33131f38d1133752246abbfbdad4cf426e08de505e53d908fdc5a264898b9fbbb1eca3cad9dd35b0a58a6b1bb44d147ad5b7547bbce66ae6e2f742307dfe918a4c7e041939fdfa1204caeb5ac6124abb79c81a6a19a8027cb61b130b60d07929e69f35e7380236802e9a38713200bee778f7d92c4d550d06bcb9c07610c21ec37033bee762336d0080e6d81701605b88e8fe29d75b30637c8e7bc4b6ef3526fa68a394d415259b9003e22f5ec42aba934a14a76e5bc7166b3a64d009d6bad7e59eaefa93482ef3c260133cac9572b24b68bfd8d1f244084ba11d3994eabd82ebc908bfb5ac6dcd036fa29619991c4d5f292e8c0ebd31089a9f36c34c7727760119cfc5fd3d6c4b537d7c074f1b9f2ad3a76ec052871e03b555dee86b65a68b8d707535a1f4fddf5003e22f5ec42aba934a14a76e5bc7166b3a64d009d6bad7e59eaefa93482ef3c260133cac9572b24b68bfd8d1f244084ba11d3994eabd82ebc908bfb5ac6dcd0017eb022ccf8a7e9bf1d453aad9b22442187f3a6159b27b85bc599fc541811dd29fab68ecd506bf57d433b5d8ca666d6bd099c1e3de46fd7b74a3e22bac38a12281250890a9c11d86146b5db02d1d1e143d65a875f4317c53704048c4a77d6b52ecfb9cc6b51c5f4a82f59977c75247716878283319abf677a5bcfc2ff12cc0a0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000130a339b30b79ca90ee424468c83eaf5932d8cf4421ec0b26f06fbb51cdc430513baf48c2ba19db55d39308ec3c6a64273a4f7da9229ac1ba87c247798a8248743fe93f7ec5fce50165e2f967674a18d1b1896e1dc892546cfe5493c5bd4c780215442a3b118c78666ba49ae43512cebf9a65482b3a85e8a2dd47e7287f2ed84a371a35c94f34a6ce159a098d5881d0beec040d7d0f64412def8feca0100b471f23a4311e3e7f0c88e0d63fcb4738dc06c3f5b94affeb619d1c6d5b0315ed27eb2efa893a4c193d1fc84a965c486e71ad09fabeb20aee95d3440f22868cb38e7b29ee0a54f254d09cb53ec8277bf159f1e961d512cd684e42eadb1a98c1ec6f4e3be3ddeaa991e87fc2cb7aa6a61524e8c8e8b55a105a28e11e0a8936bfc308ff0372d2db4de5d94e2c8d1a59c17334dd1e04b3717ba7f88669e49988c6f23beb01a3c7f0184d8682e92af560ea52fdf6669324449b48211a64db9e8e4a1d9a2726c661d672cf403aa9a4dafcf32d991817fd7be1c9e161c10129a139c53b1a9d39e22597e8211960f56a66950593f439ce97c81da977747dd2d45b5f9a1ba3ba026e2dd782d1f2b8ab22478d350b59bf2c3ce3984e46a97e88dd4bca3d493f5114977b7d6c5c476e3729ab0b0bfd289dd87f8768dddc373dee0bd81adbc364f00750be9da4ffc4161188bce371e0af59fd97937655b1eee09f3bc57a4ad422c42ecb7c4009eabbca3bf50c75027149c5d0ef818c0858b04ab2783f4d1df7d33f2c45514fae8b5031ce5637caedaa5c39c2a5769128eeeef58544867b2d4e42e827314f959a496015e29a17867721b3ee59b08fa3f4de8ab909642d22837eb5f9361c14a1c6685f8de1123b41f59cff9d2e4ca173bf0b6a190c687f047ae64fbf2e774fe6bb63cdab911b90425cb63483ab277299ee2049546b9a2bae358a0772172c98e8d87183fca5d4504621cdd091fbddaf2de0ee630b14945fbdafe9ece51b70512fe43333c927bbc65c6879a0c88209c59173410e7fd036bad199b416e63927d2473da214f8a954ce563bd8d476e1d7733c831e241db6e8c4455760be320002d3bca1c05147db87a104c2798325b3500a6b037ba3bc9979734cb14bd04b265ff8da7b75a907010bc36004645f94d327fb22e487a3796eb5a1c94a2eee3b01bd64c6705c4b336cefbc36cb952890111066d4d34e16e6bbc6143d5cda9b301cf6458f1ef448d3f5ca384dd7e38ef12923d2db8600e8dee9beb8d81b35eb480d4c516e4792c46a5fd9ae81408aa2407f24e95a52b2d72e0aaeacdb6640f9bc1ce85a617bdb642d834bb19d1433172952a9a08120e06dae7515c719ac3eea533a0692bc9a3f0989802c617979cd8710201ea2bc1e1a8956bbc3cbcac5101216391cc6712c3cb7898a5dc6ea2e621b4a535b577007114b991bf86e68e9b750db22b6901dbdb1ad3bbe9b8ffefb3e7d8b3edd9461e84a25047c660a914538e7bd2cd986f91933e18bb22600ceb3a92b3a570735a482203a3d738276cb60cac920320f86753d89c58d943e6f670f32ec4642a48d247d7ded0fa2c9c9e4c74f33f826adad25e337111b339dbfeeb931ea95cfd4be1a7907af0d8183dd2faafbcea2260a454cfa7a556c9060f46bdc757a71e93432f2c863e2ea2f524aca4d20f003028d64e230eea51a0eca0538bf5a1cb18a4807411a992f420904a05a86e385e53d90af94e02a156d692f1bc9999979bee6afe09c7340109e71166a68179a2ab801987094a9bff5b049329a04710a118493df739737ab2e0379bbf8909f44dbae29ac9cf5aa49d06e2baa4a0b0c126b2efcb2a6b4c31755b8fa427ab014bdd8e208bda464280210c0e5cbe2424bfd74b5b67860369fcea3feef4ea0f74ce3cd5c178eb3fb15c60f1658383779766087e88d863eb0aa5d4bfb93ceb86f99ad2cb71b2bf0694058fcf04d2003ab77a8fd0feb75e1336141ae09c856fd11150b0b543a0efd6c22040b7a31f64cb4a708c4ec8b7d16aa65f26a78c60b0bcb9b09ca2e369a2246abf1f26a416f80157870efad6f50ab9861274552e5ebbbe8ccfa7bca2d8974773e0e1230457a89cd0db1499e12f3ed33018111b5485b29eae6f561f80448dd7f4d16dd14e623a43f502ecce277a5879778af64aab534ee51d8623f3e09a26e214eff071030060a2aa5aa3697b51d4f388df9f6ba7dbf55c8d6fa5e552479da04516f86bf9303569842aacf462cefa7152c5fc717aa557735cd465c670f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d1116327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb03be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d3c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9412b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab212d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e00f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d1116327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb03be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d3c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9412b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab212d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e0328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff41daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f31870947f95bdea9c3c192cb3bbf7effe29d0fb7bf7284c1d7e0d66acf118ab01040c9277dc8c6351fd039b70656118046072e337c872d37814fdf794ba768ca0a1512d88975ca686798718111f5436c9ac2d9b4ba608e39bb61ba7ec94fb5cc301d31d12dfe16fb786dc57c6e8747c7dbffd151ce61faae4cef5f41a07180ea0384ccccd98686b104ecd67cc9166541300db26d5a288078ae60ded9504acb2a3b4efc924d0f7c35013ce4a6204e41a0d2af57decb24efe2da4b04941b819666303f57e3f35b5d7b1330f25c1de91dfe5560a11d88c671b2ad2b21c643f4334901444d02b0f68c8a15244aca7777246f0f229f53f481e8d97c637933f42699f63eaff1fda99cf274ec44143257d36d2aa688c4542941c328302d04ff1aff044735705bc03969e10b81c3063b89f4985eb328621906caf853ca0348347f0337801beff4fa88b7d946ab3e1673543d230eafebbe4488d4311996f27ed5e57e355f1214cf85c2e587bb2df17725784a51fde890d617760a890461736a885b0292993eaff1fda99cf274ec44143257d36d2aa688c4542941c328302d04ff1aff044735705bc03969e10b81c3063b89f4985eb328621906caf853ca0348347f0337802592d74d6b734b6831cd72cb2971813a80c8eb30d48f2b1936168bc8afaadc740310e392b7bfc261d9d4450166493780a504deddcc6b22b0c0f59941b6e8983c211f595cdceeca42153099601ff147d071c1a2b0872c31fa7a494eef69cfc60401b6a62cfdb824ebd6775569f045fc1f088839689943ab9bebe6beee6684e561000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013b49c52a5fad048356d49bf9a0b056bf520be8edbcda73b5dbdfe93c28e6442f3d832d5751f38d2361a891dac2847eb390a392ad3a680ce7b277e521a48e02e302ef5a0c2ad4b0d970548d26d87d6353b221679190153c66cf05ee0c3bac423408ca65976458382e22a76042fb1f6a82ae686bb13d93837bc049ec2896a86ac90502d6682c21d67fd90176c66ea5460f34074809187fe09acc244ab1f7a04e220933843c157921d307f024dce0e8d968a632b164c70ffcaaebde5010aa215e0814cdc59c6c2557cb7244f7dd9728b147150d554399b2c089a4eecbd7e6e08f9437e5d479e7eef3c7ad6dd17bbb1cc6efd848dde8ec11bd3400e250c38e545f55162ee13c33b69bfff42a279db7db55e44c555f7ea1d182048305060448d3f8060c9725d3b7a60b9432c3aca3bf6ba34692dbb9d4446c6a6a5571bc64396b3d9d317986b64c95f04b5fc539f366ec24625d2752f76ed8a815c476e7ebe67fd02405c0dd532ae7b8295dfbde57ec930f63fd79c955453ea1e3715d81275959f3bb32d7d942f9ce7632f49b210eeed444205298e7f3f87b881127a0f6313c473fec37d571d180ed1d3464cd1044e2d28e29cbcbc65de0f55a7fade0bb4ee42d9f833a6505cf500be5d21da03dc1f5a913fa6e3af38901ddfbfafbddbd710ce3dee439e2d897a1b21575783c367761c56a361f5fbe2b3fb1bbcffde0f8ee710c1c3f3aab9682018a212897f017dcdfac5cc313a62d54b0d9f128de883aef62085ba92f1b2b67b761ccba01383ba12e9eb6ccb33a70b24d26de4678b568d71f03a6250a1873919d5622947f1bcd7cb769fc6b53810939dcac7c29bfb593f434eda8210ae15642cfd907a81e9c4d655f43b5f9c99c08ce8ba4e3bbcb64d95e7a6fa0da2294ee7ebe73e073be321087cae9aa48f5e07cdf03cd5cd3044dbe181a82f00c078de98bd2ac0489b0128cdfb2f21b0f9f976b8ab4f6b5616e5f4889597b0fb10e94c838a485ce7b04a81e882d135b86715f7ed27f923cd5f7c4720d8e8224dc2c94b57047a8110cfea361f2e078d8355ab6cb5644f361ec9d85d4f089880558380dcfb2df092211ef6efc72b6170aa6dacaff216443daa2933adb3b42c15c403c39010d0e5ca80b5acfc72edcc144b54c36b0b57c8aec130e9fd92e18e48d500cd1fd2355ace86f7d6450306e0a022dc607cd75100a659ee048bf893e449d9d0626f0bf01e6d053270e307205a8ea9f887f3ace9421b6b1eca6aa51152b041a245bdfa1041f78f109958e6aafebda3706f322417949591deef2be4cd8e8e9493468489ae215cd5f5fa9a6da9697ec94e5f1e5541ce6e02c7814251a00bc360818cfb4f5013b62a06d2b9cec8ef3f8db366a1b7fa1c8db216b7a92658642bd490890e102b7f312cbd513cc72e3375fa2ba010d2bfae0e07b392c9be8e0e9a05331138301b2aeb237776d12d18bd9c6b039c97a2b5feb20b9bcbe0e3fccc9b25c30fb6b51c9ce6a1d87fe201982b87ba35f2c4c101565a6807411aaf556f15b601ddb6d87dc323255a975c205f1773eb42a167f54cd1adc720eba18ba2fd1b1031d83f680d7f38be6f24b0bea509471808de1d4820d071252ea4bca973daac3323bf0f75d81b24d8ce266094e30386b17ee055bac325443421b09ef1a8f9e75c414e9d8f1edd4c0493b591abfd5d7c900b53b3e46faca612a81a7acb412096ed43e8e8e32355d70c1d84c88a2fac660ce618db4e31f3d1debb0b1b66e8410d7463d1284a9a4a46c8aa5122c4719d6539985eb2eefd25e31cf7b68c4cac305c5223bd99a16efacfea03b5f61a42dcf2f9ce11920e978cf72552e0feef0cb1009b806b1217095a59093685ea591242a9d21d90193fac197fe5aed4dd22a59614b080c0152f9011a05c39e3c32f5ee31bcc2ba93b8717621e07610d31682c11b326c0cb1a32e6b39090ba241a25d524ba4d9a7a5e5247a6ca616bdd6d9d15fb7211d1e87181643506ff74f917c55aa4dab4eade31eb8cca435d556208c97d5266961010ba34436c47d361a927f3819d850515dc5e6de9c9989a234c18435e1cb97530d0d5a7fda90c6d3ac56a5ce1f7a49629c63b9c846322a0ffb1ede0fa0a2ea2401f73b5a77865b4759fa089d025b70c7e75ebbb2b28090b91d6dbf26908dbe7f15bc770ad2b789c8c4496ea3ebfa5438089508f18b66c6fa3415134007211e6907be20a12a5f4baa852aa228ab93eedc4321c81a391906ffae06c6fd797e58a2028c44eab3b34e97394eaa8c25744fba55a775171d92b0fe098a524e6b9c52d13d73bb154c4cb168c6b15573da8bb045cc9f23e4ebba481d8fa2de9e9463ad300cbd5895828088f41e8954bcbb458ea3ac45497393dd74f62fb39b881a0d9e153342a76a7d7f770be176ab4344ba715c76014f88756f842569799564e5f261ec3fb2baeb8c82acc498aea7afa85bc9325d5a6f41e35348ceee8209a882441669004d4514737d533b6751585057a436cdc4ec29ba25f9b04caaab27447dbbe9983e7da699be8d5fd6fb69466e49caedfb49a9c8594b6c879c43d56c968b547009018259664172a0290496b991b6351204d89cd0a2bde0717f5557c45674ab8ff8028c44eab3b34e97394eaa8c25744fba55a775171d92b0fe098a524e6b9c52d13d73bb154c4cb168c6b15573da8bb045cc9f23e4ebba481d8fa2de9e9463ad300cbd5895828088f41e8954bcbb458ea3ac45497393dd74f62fb39b881a0d9e153342a76a7d7f770be176ab4344ba715c76014f88756f842569799564e5f261ec3fb2baeb8c82acc498aea7afa85bc9325d5a6f41e35348ceee8209a882441669004d4514737d533b6751585057a436cdc4ec29ba25f9b04caaab27447dbbe9983e7da699be8d5fd6fb69466e49caedfb49a9c8594b6c879c43d56c968b547009018259664172a0290496b991b6351204d89cd0a2bde0717f5557c45674ab8ff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000397a8de23f943fe84375116b76a48df8f6ea5b4c8ed72576c77c2cca319948ba3d485e1b69020be4f0703f0fd96ca0a8b43666312e8276cd8a7a1bcffaf1c2e02d451e8ec54c0cdd1728d2b226f4309ab4a8f5766a0ee077779ded76ac81513f2384b6580e42dff2f39b18fcce93f9a742fc9b561f3bc9dde422612f4b5421603d2b1f74c77730ff357879774a451f92cc83b959c56f5c6760fa70aa04721d3228467498cdb75c3f5264c644b151704577e55d6351841b8d3308854c4cf7028a3405a1897a11563b340ebd47d1dfd9078865d07cf1488fa7c8c0d35ef2a3cbf533ed7a4622228ff20972fb04a766aa94a897e6b4d03bc2a837200c5819a84fe116747f21fd869d7810c99560cf6d45f18f41f541ab9c7fbe8eddcbb7a5396d5a3b0e1cda859a8d83ff3a8cacdb81a50dacbb47f37a5f84c4c404a7af37254c931f872525e9e5a580089d587cb3dfc4a0771e5bf7cbb7e71e1fadeef552002aeb0c792f2fb935ed7c22ccddaadd879446aa0ad72e1264b41c89555dcc20a144d2213bd8ee889e0bae3a1b62acc11fd529089b8de20cdab4b0a6da30b072ab4b6c1662fbdb4898c5fe4547f274e04fbe137ddb23a3dd2367f18b7f333fe243ce881e27dd4cff015c430846910a99e3ef21bed8473b1782596b0732e157d4d63c863de44c6bd7175adb9f877895b626541d61286701392b28e940f55353f1a6960239168f10a79ce336cb01164ffde19aaf22a7e887d48d960a2d7e6a87503606ec197272acff6d516dc7329dd016cb960dbee5b7b9f7e05f7c3674c44676145172170664a2998bbd4b9995d4ba3bd24b1742eb695b84c9420d7adc39c60abae30606a3d94bd010ca60a5ea274a163d0b0006aa163d95c29921bba7fda496dcf72e07c96aeffd032cc5f717d11ccf71ee2278c9ddaa8f73974bdf6a96ea39d3586a24a2f4246ab2bf6a2201f1d133e240eea0a52a91684d208768987c10965e5a4d37303dff6d87cd6f0dfb792f77ad52fcddc2f79e24a46a0df5b0936d5255c8eb0f832e98ae88694a7c3c674786ee6e7db58d7689ba0d634e5ebc06de48248be23790db196b0a7c1a5de0fc45114b95392aed956849140ba1393dee699d887db0333031d821329471b6ac2f46432a5aa9a528debbfb0aadd1c51340110d02b2fb22dd73bff320190877dcbc80e633292f51fbf2df5cc53d9ebd5941c9bcb0808a3c835c2b533ed2d5adb65eebfef3ebd0c20802ac063c254e8e8b54954457506a27bfab302527007c52d7481a83ec9e3147a7d5c4016723a63ecaa60d3b0578f405c98caf150fbd3ede0ee99fd096e8cc3bcef231ae0e5737f891e1d69bce311c04d9585321d700e98ca44a7c43ee189cd89b44d9c45c9d315ef9c5adf2742eaf09f60ac9feb3d278589049a7e2fc3ac2b8474a1230290aecb26c41e1a43d71b53d0ea78d98b672250bdf05553a3ab2214149d2c9430445e20bbaa2dc700351893aa739f772d12d37977d7fe2630caa09b6e3b7eb9eaf1524ae4ea481a4de5bba1cff0d11c7e0c8a46241a539bc1625c398d2adfbe2eeeee1e5e82c1e876afb6c0000000000000000000000000000000000000000000000000000000000000000278f18e7a77366cd5d7abc1595ce47d9c798d9da33dbcc2c04076d3dca57c53000000000000000000000000000000000000000000000000000000000000000001743d42cc1c05600f121e423f9ad226ae07a5a6e503b038c4b439573a69248a400000000000000000000000000000000000000000000000000000000000000001f69768a3499de67274e501cc7bdb52254099a24420b67dc27a58158b87506eb00000000000000000000000000000000000000000000000000000000000000000f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5f000000000000000000000000000000000000000000000000000000000000000006f88f71dc0d453484c90c325d8bfcfbf95bdb026c9a3aec927fbda982cccc1900000000000000000000000000000000000000000000000000000000000000002e87a8598380ac01e243c847f35a44d5c0f4b4dca076071896872ae74d24914800000000000000000000000000000000000000000000000000000000000000001e3c639e9dcd9b3575eaf05657391f66d9d63570bcd53e78ddc3531d295f14bc1f882159992cfd1697f3db5bc2631c550398512da311d8303775b461269acfc62077dea666d302e9680c24a43d9ce3ab1eae47ce663b20eb61b77c8bd965303b1da8a6bffde0f170f7c348cacbef8da8cd6c63ec1cbf46b9e2f2240bc1060edc22575940021f0e8f083cb7353410725754da350fec8db261b63b0ce13ef9f125144b41bff564b734d6d06bf5fbadc44bbe90c1a47d226f6a3c605260c51e4a4a2bb4be400a9b48cb292f940a04523bb463b5d7578c2a89b15cccde8c3ae1b5b7257848bfcaf7940832121bcdea64d57a968d2f3a685f33f794b46af6d99773711a87b74035086bf7cdede432159b2a858bb969c1a0edc5240478c5f626688c901f882159992cfd1697f3db5bc2631c550398512da311d8303775b461269acfc62077dea666d302e9680c24a43d9ce3ab1eae47ce663b20eb61b77c8bd965303b1da8a6bffde0f170f7c348cacbef8da8cd6c63ec1cbf46b9e2f2240bc1060edc22575940021f0e8f083cb7353410725754da350fec8db261b63b0ce13ef9f125144b41bff564b734d6d06bf5fbadc44bbe90c1a47d226f6a3c605260c51e4a4a2bb4be400a9b48cb292f940a04523bb463b5d7578c2a89b15cccde8c3ae1b5b7257848bfcaf7940832121bcdea64d57a968d2f3a685f33f794b46af6d99773711a87b74035086bf7cdede432159b2a858bb969c1a0edc5240478c5f626688c901ec72c0c20573b5141e5d40e17d7293f3bb25cd5f92b26d68aa789660ac49eba06b8d7221f316ccd211c30eca2885f3786348b037a8ee4b5e05159fa94c46c3c154726d1e457b749e5a32d9cb269c17087add08c554ac6163f1ba6dfbda977f43ebbdef2711d9803441a84e31a9d5ceddb174d378971a5aeaf3f8ea84a27c7942516c5e8bd23c856c28b99e4ae16221700e7e1896d964f9b380b182fedeb9e46175df52e034c121156ab055e4ceb7ea10a6bb7e6078749c128fdcb7b731e63520ad2f9faadc80735e9ba393f6b1bff4e20561f7e5b92c0ef278f8683fc176aac34beb7ce0aed491ae91a54369fdd516fbbeda28747ae2e8713b31280277e27f7275d49c4a7f096e45e097e735f41461e1bdfefdf16d904f59a52f0ab5535ea900681d319abe950e3c5d7f06d93ddf9efee2466ed5d76c58c33b9131e4a7f718b2df270d063540c9307d61fdef29ac5d7ee81b9fa9d701126dda50a019c6f28e205e026ecce537168507ca95e76fd2a2956b39553733afa8dfbbddb00f0dff4210bf1ad21fb510d64d876fe5535bf15505ee66b99bad70c2ecf6a00a73791e9543a8b49eb6fb0fb2f9ac94a3042da43dae34159bd0e9967d2a2c979372113cc332df270d063540c9307d61fdef29ac5d7ee81b9fa9d701126dda50a019c6f28e205e026ecce537168507ca95e76fd2a2956b39553733afa8dfbbddb00f0dff4213bbc4b99a61a5f56e1525410224e4f94e185efb9a747317b6c9c9c73f92f4fdb2a041cd08caaa25bf08632438fa0c85c847da06bc85fd999bfb0940ae71424321d74a6b0997513bcbcd7fc5e7be3c2c34d6ad8aac3f0a7ef8a1712044728185904c07cd059bfc85e2e372938310cf5e5df5f1ef20e3a0a4ad0e4a04bfa255d4a000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013dbe423988e83108825bbfb00d1d7e04d63f21bb6be9f947808b21ffb281bee0344c53aee03fad78657129b6293499814b1a137ecb7ff92367fc8b00aeff05f42a21bd0f8d8bb623ae50c387e3706d14db9e16fc98071761e743cea4a1260381058a33cf44896784d9faaf2135b95318fe18d780c9c110a3bde2ea5a333f4f361117c3207b9a6c83fab3ee0c9c50c91e75780ebccbdc9d1586ace01321d15fa31d8a07f3a6627948736b3ff171e57cd2898702c8c51620f7c9be6f8f390a3733280481541c55f34f239586115503d05ea246efab8b8e66dee49f4648cdeb815d322f4778a6a77669a0c5d789b556463650638e06adaf5308aa08f6cc35ad08df13b9a5af8944e1f6562b96dc74f416105fb1635dabed7662256983764913674235fb3dfa78ab3502f6e4c0f1155a6b378eefbc6e579e64f1d08f3d6dbfd5dbdd14af0b179144eda5f2fb61d7939f5a9752d1a3a48d186a2c1df77709168aaff9047875de77d872aa6adcc4ccc01eaf5f9bd14914aabf352c135dfd0ef8da202629038e412dc750d36d540171ef42f75254ecac8008f7875ae8213b0a2952bad4091107fca0bcc5f6097ee777fd92ee355ab6835c1ee4e33ae2dc69ba9771835b308049890f6c5690c6693cf100414ad30cdbe30a1b1464eb50fe7734f6b7400629f2ce5059dc187abbe89889691ec1df7448da7fca61bad36e9def0a6174f1ca2c063842be9d3725b194f3128dfc319d20ff0b7132757a620edd843074eb15bf035eaaa1c830ca3392470a62b12a47b6aa83ed6b17df599b8015315e7d0538bb2093c59540a049729492710b9f73dd4af81d04896cadd3eb23ba4813a26b64cb26b72e8e7164881809f003bf747f53a6f50e25bc3ed0e30e2eaf6a8163188551061fe83987fea42973c39d3da8b853c072d13cae1163fe8e3ec4f8bb13e4679c22928c2137b1cbaf59d5dcce696c1118ba8f889f4dbd78de7f34e64dbbe1b0fc2fe79df98b9c3b8a7bade06993e4501e21849aed85b22cc7106d9ff00b6ef01b2398c2029fe94c24bad613a1d93b6b5bfd58ffe68b4b3cbefac10f8e738077d026aadaf8ae1463ce0128c043f66320f6455870deb7bf894ea50f2831e92744312caf502139232681abe5cf3e88336fe46f70ab44b1841d6b219583990be24b7e36cdc9fe12645d9f7cb97eb1e3afb6d263f107d037c742c12e20c8de0557078537e46a736f650af7a720a85dd8792e48bb59b905f597d72d2857c3b90c575f88306fa95ad82e12ea4c19046d17cf682f100d31a27449acb2ce0a2e7fabfe454b0cbb12a2343bbd1501d2a8232690055d22e4e0b8b7c91ee013dcdaeca68e10b111537385064f500381dd00d8db2b9f4db2cd63990b2586d71cd7c15a6d0b1eb43ac241825d38efd3f7a209fe69c5d3a8b0a8547610e8c24d38ea0d12708b5ca722e65f38aa8c400aac74ed2e0881b819cac6f6aa5616617620f1f79eebd1333633679df7710a264965f9d32f063901b0c08f20b9d922e85effd78948859779172c3c2de11017bc590139a8564fd00b5b9a36c38cbbcc4a8243504727927731192808df58c67a6129209acc0febf49879978f56a2598549d8ad17a1a8cdbc5f3d1e30dbc7539d21bd602e2791101b81e45a5387205db23a1bc163ab92adbf6c38147863f452cf5e179a900161114160eae746155c53e5e14e5764b2f31a224a900a1c95bd003036102564fd6a1a82b6cd4986013abc63bfc12e3a321c7b94d758082476d8aa111672b1ada2cb6871e96766058162fab95baa1f933525df3168fa2642afb24b3d3ecef0e8ea43bbe8deafe86c8c8ae241ad351dbcdf23e5f88e603cb1f103298c7aa9f4caf6788c2f6c624e2f2cfc627ce9894fd259222caa6864152d164bdd8407649e9eb8a8d0c253a3f809dd2455ca5d198568884d3e33a5e30b67ed239e97f3e9f78278c7947f2824454679ab5a4f9ba7362bcc6c972060371e46a7d6efd8b59a59af607045ff87be3ea0bbf7a7cf285a11d827dedb56bda00070706616914e863b3f4731f6d9a4a38963ca591b59c4bc1e6adb9ac4473cbe0ffaa089f39661850b64e177d1624015be776ebcfee53d681b4ff904f56594413c94522dccb83e1c8832f295f8b881ff6523229feb1ca0d9f49b3753cbb3efd43b78d10828ce58190f0beeeab42ed89e73dc8af01dbc3b2edf624596a874e6160bc171745c8c1879cf5d1c1b2eaef611a5b151ab3629533595471e9442feb62028193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e11105939417e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e13781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e202a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b6965158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef62bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b28193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e11105939417e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e13781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e202a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b6965158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef62bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b3ccafc6418112053d1c539dc198ca765b3a8d0cc38d47492143067a7a046f720305d9e4e7bb0cfb3b7ab6f2a16664d9d00ffe6e15a8f452fe648d4b20ee2b0793335039be7eedfac2e3ac623e673589a8852baecd7723f5e37deadf71fb908e23fa261b1844f304c485490d5e999b2633afba4d7b5b76ec065c640ecb11d4f892d679058a78e2c05d4030b4b24059a64e30ddfdd7bcc0c90180dc70898c719d01accf253e938a33a74afcf2e87268bb36498c62a38b90beef34b91f0e057a31d32b381b17a1993ea2494269a68e10de6660268bc772b1b1f4051cdedda8689230e718744539124cdd7af39b45a299ab38b28a0b732e9fd1c1b0c17720c6630a2198310085fb4f95727c2a7f1720eaed0745900aff6c054c37f45e7226a983e613bf16574326e03c820cb660dfa6dbd9a26227c4ccbe1392c9c4084e8368953a7277596ab5d4f14c7435038a9742be3e6c85b43f704a7986063f58522738cafde0a541dc9aede8050ad6648812a33cfccdb5e171b67192edb59c9247c6f361c4e100000000000000000000000000000000891a63f02533e46e64b4c3b40000001100000000000000000000000000000000891a63f02533e46e64b4c3b40000001277596ab5d4f14c7435038a9742be3e6c85b43f704a7986063f58522738cafde0a541dc9aede8050ad6648812a33cfccdb5e171b67192edb59c9247c6f361c4e25524c2a032148a548910725eaf0933a72cb0c9d44ba9a0e08592d5295a8a46026c89db030902c81bb06cc1113550a7e336bf2dc31e6b55eded06238ab6d76ff0112801a427c8e5a2f0261a79d1dc91dd72da52cb60b902086b6420a18bedc61133cec6c81fbb60d1d484c090c53fab2d222ce5c6280e594397244a0a175fbe9000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012b32aee95c096d40266242271d799e7b87ef19099646a41f91921ab19f48a6c92a92538d376996fdcf4096c01cbe4952f5733b548548a67226545c41134845b91713608b28462d0122617bf990a5131d86f5963fcd6f92e248bdd03fe37effac00a731f8e52f90f6352a02b578d424046de2b7294bf344591205c4c590651cfc0efccb01849d54eaebdf28ff871a018dc6a84c82a2aba12d8ffb2dad135e9e3f3f2d0b6216e3c90475a967c7a0cdd40d38c79be37880d2cfdefa4b81e018e19c17ee10f846c7f858324776a13da376aefecff13836d8bc09896048db6835df061f032870ea42538f4903723192b73d1839c26467541127d842953500366fb85703d452a60f54d0ef1957a5a5b87bcaa082ff028fa2d88e37f6f8d255786dac6f00993dafed20a3bbeb46a79e84d502c7a98e2dd70d7ad782009ad036f50964eb12dd7d275912d0ef515ba1bed92abd361d2fded99018df3d0555838c5b5382501bcfebec9345e9bbafb7b98abf8596928c19aa165363485600567d9e24c521703cf682485c97672fc2c6421dcab0db8bc00041be7de44353a8c1f8e76bb9bb8a0496173dc2dcca49e160c09fc32f09a68bf56edebabe63a677beffc17a55533931c21ae58f8e0aff9eca357e0f8a87f6e607c21f7ba893221c2be3029c8dda0d11c1eb4d0e67b04a3a14f9b881ff6ae816042f4180f73262c73eb39852fb116b264ed1a31b16fc8835a773ad84710f76c89ea5f89c50252fa43efca48247b16f278bf01d47e567e9460648a8bf6c35f288d495d0a3402dd5d279fa34bae566cd03bfb72d4a23799f843eca9e714a0829eab135a2f15e2a7efb0d572e51daba452853f7141a5b20cf4536a7d7eca24eb8e459d9011598d55cbf9b2e4c95ecf9a604897853020259d0c908daeed47a9eb7bf5f86ab71ef1779ff851673bf8db265357c908734dc7f3046e0af34e755b2ad3ff7fe3e5554e7b88fb0f11e2ac0e6581ed8e6c7aa0be7c6e4cbd829b7d1bef55db1343c75c2e7648bb2f1d5662e5d6c000f717d0305920c4c36f0d1d7d053260815f183e63046688d42d4f3cebcb0830b21925b7772ad66e390b979d404b71f0464eab874246e04e0fe7ccedf284ec01c73c0842741a008bf1dd18406118d8632dba9d126cf967dc3a96ec36352d01d12d2c4f27101db0d25dbb6a0c620def652ea097fe8c1019e36b9354ac274f66b0c64239772a1b3302124b97042398702706ae49607264cbc6f8e118f420df54703722473e567ad6eb05a79c3ce98b92b39fe55a1ea3e2e824fd799e4cd061cbe09fc94966b0cf14570191819f7e56cde7d7f32341965be9db6df982ab2ae28ac234651c073f173bc87e9dcf3a4ab3eed84e9380992f97d618196e8d81c71742f0f12ed9e79431fd2bf7b14427650dbd3e8b92fb902518acb9f8f1b8b096cd1ef154797894062edf03ce5c544a14e207c0e31b64bf3a62206c29a7970ebd4a9b43e0a19e9d8a143635bd5926223389cdadcf00565375d33a3824c119daca6f80a10018d4456f3be5743d3e93f80a9da938b46e577542c9455d3a441c9b1b7beef342552d4b6474b5490fe2753e52ee59f82a5d559c0dc96d57b406a07efdbca0c2486a7d4a99193f673a1fcfbc27ae42be2b6f46094c7845cbd10791cd4684b5819325fde7a7798474942f1f98e38ee52152ab90a22f77e527c24a7196db8747711ad69b8e2c681ed544aa979fd826512e9465bff83114d1ceea9091be376e82b3ca59054ee617364d851d2968be81805f348bdb7e17cbf6fd8b49216f4f8c6f02927834152b6e0fa34adb9ec343ca80a635976185cec19360c607b270dffce401070e877e7ec9b282b48718f8fe36425859dad618d86cc6ed45c02386e10c3a03371487d84ce19940701a889bb4aec7d81e02d1c3476f93a3104b6284b28b22d05135174b77ba9ad14893845dfa303cdaa6de5aab9824af237fdbe4a85b7a50f2b009c72444df5000b249090209b5987ca67b8b827c90f56573e93108470e5073b6e1c542d459b1d595e27d82dec8b830cff56f6e88f2287ed953a26f61262cb110bdb274630d1d76718842379b6d29737e875cf58578e82398795f6488456ad0d60e0f7846abb618c231a453762d5d36e00c7b0bccf405743cb96ff250e1ec32b6924f67762bc4c08690d866e2afc2662a48929df77036a3a541fd99e8777d93860bb7dbc040d478f0a6fab42ce522ef38166b951641138c7b3f32e539c59c52994104ae8e0b8c6b498ef4a340e1f5dca7130cbfc365dfcbac8513f99314e91166befb5171f47394b6710b5cbf1e0a257d568300d169b1ede64dfad66ceb1700fe451768c639be186fcac7304469cd48d622907d128ea9cda620376fdf688d2301bae89739c641e7903538cfbb9632b94e46ff438240e7ebecb2d760209772f0f759750bdf20b67a2ef5e3f15611026a0a4342b0c7f9bf4aabce065f5d0ac19308a68af420df4985d10a1c0ea9eefd981a264d0fccd5d26ee7050870a2f53e80d4bf493b5ba39062eacd73b6ae550c100ee6bdb353112abbc833110cd135c7c32b40b6c4a45c6f9d15328c4951aaf3f21582d20d41be66fdca9ffdc32eca3852994104ae8e0b8c6b498ef4a340e1f5dca7130cbfc365dfcbac8513f99314e91166befb5171f47394b6710b5cbf1e0a257d568300d169b1ede64dfad66ceb1700fe451768c639be186fcac7304469cd48d622907d128ea9cda620376fdf688d2301bae89739c641e7903538cfbb9632b94e46ff438240e7ebecb2d760209772f0f759750bdf20b67a2ef5e3f15611026a0a4342b0c7f9bf4aabce065f5d0ac19308a68af420df4985d10a1c0ea9eefd981a264d0fccd5d26ee7050870a2f53e80d4bf493b5ba39062eacd73b6ae550c100ee6bdb353112abbc833110cd135c7c32b40b6c4a45c6f9d15328c4951aaf3f21582d20d41be66fdca9ffdc32eca3852260f666d094d1a6403be2dc098fb8f586eb4ad8166745ba69d9a8268d67ce9511fa42639b21ecaf1ed4e983217b62a6709fcf49a5422b064a6309c8e2c55766274d3dc3a846fc8924f1055fbf4f5ad5848b4b6ec07c76e6079ee428f532d63220e6a6375b0b5eaeeb6fc87a8cbfa390fbf15474932bbe08a8d6ecbb879cb51f31c6a57b7536d3ab06d30dd7f72ad0598766313fdb854fa4d6483d5e9ef49b2c0f00ae30c3fcb068f3c22d3e924b11160fdbb450ec1fb02cbb4c693e737392073167689f88f279fe4db56950295efce72959123efcb1456198a9c6c93e66192e2232afc626d6a35ba6b1df3fa8c40af4564e72f0dcdb5e37d36227e68df570c70be83abcfc28c26176ec0eba1216d153f1eea0fd1e45b2ca8abfed2f4b76c8053ade6a3353a4ad79ad7278029c558ae24987e818aa0506b9bed6d35c72d149cd26535a3a6a58badd7493abe4d6d73c1c6827bbfd729d60364f9505a38649e6012a3d338446f863ca23c98a0037b1cb92ef7481ea68ed51df93ec437c9ee6c6273651cbd5872431d09ad317c43720ec3539169bb13bb63596c0e1d58a7d655b3c0d1f176509d2b4a1f5bb4e0251c4f9c8b5b5753dd0df100ca5f33a68959df37d26535a3a6a58badd7493abe4d6d73c1c6827bbfd729d60364f9505a38649e6012a3d338446f863ca23c98a0037b1cb92ef7481ea68ed51df93ec437c9ee6c627356f5e163a373c41c1a90be284b17cccd1b89545e31b6a66da1283218e58baae187cf49cb450c5bff82c25681551260cfb8d7a9f70da0228117d0227e94615b926fa11ac1925fe3243fd8d8cab49be765ee80a766e81df9299274e0fbc9f004d27b994b30e9587e3706cded4782ec5d2e3595203a3cb93b24acface9cd67fd4c00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001365c78c5ec25aa773d902a14290caf5d0596404ea971360db20760eb3e0fb52b24f06cf7ca9fb5bf799fc69c9a8cfd5c3d606577ab2e523d766507e459ce69f81934a7a557126a505f055d96a0a3fd9ce159ca15e2b6316649a4030fade9ae5c1dd87e8e9d590796485e47c9c7f926d25d05b6e9d911fe6ea4beeb840600f1d0048a2ff4a1d7f46b2730b1a73bf0609acd3a8ec4125616b7e14f43ff9ac677b614a238515e3ec6b479c74ee09d689da812149a74127beacd024fbf78670323471f82555035413f876348c9a503d1b4cc75f1d9608be3bee50481cec2b463d75d037beabb22b94af8a8d5ac5e2cfc9840810836ce563fa95d7dbe60044a8a413b0ac6988fc6643a0fb694532ad7bf18f761a6a2ee38d2c2f463687b42fc06ff4b27810d1ac34a8de9bd2e23f732ade09e118f78b45ec5ef66c2844aac363a782c02ee9c13ebbf34fdcafb136e21c12d59a36713f9e03eb19ad9b09894cfa5c59c03ba1827ff4139dbfc3f24006bb3e8ba8ade3252f166ecd684717adb23e4f19a03f3cc3726e1536c5a872b419044209bdc299581c863035302a896acf643b2aa00786fff9157d41ee504fa74288cc7c63ad12161394ebeff88c1e3f91a8394992448d9e9d948d252d17657fb5bee54f12234b2e59b749293368c7636cb23aad021d47d281a2f5bf7ebcd1a4243bfc7b37714d2b745f3256dafad59e6fa18f0e30286554168aa564b04ab7ad54b5b7f102b006eb4ed864033b1403be530af89952fa4d13554dafdf6447275cf871a03429dfb2e9b2f0c66a9e51d6fff979fcc1d39c313705962abd10e7f9487f9d195f5b63362b9a3aa3f0bf6b8ca772ef6483702a8bad56c1637fe4f0e418ac011a1851a39f9118d97355d344f49530c4505c3250281719fd7653d2c7cd917a6498f4dec065cc5bffe734064b9827666614a2f0411526ee6ddb48185ea9eb6ca2dbba701dd367e50b3a923b7e32f45ab59206b1b13af6888b652d7ad6f0b8bb6ae99b753ab51fa6150d3cea4e985bcd8e1d2972e6ebaf2fb3f7cc69c8f95ec63764e073e605c79a6bb868499816c42fbd910e32668b11a0033430a06978337988534da6ad37ae2f57baa577c0a19403b48c26f178f1bb6d514fa7c64c873ba103d51ccf1a2e83c64f4fb81d47a2614f21f9eb714bdb9e4eb46978f3c1d0fd93aec4e40a18213e1744ac1a7d779e43f9db59ee60fd951149a506181ed2521f3389b93ea84605977eb477c7ecd757c561109234e11c3aca555e522a837bde2351ac5d0c7ca8177639fed47be9986f61d21afed6923b8cba25232f7822b5be6f19b49f7b1f28d49ac83992f9f5e543fd11a743f4f0704c9aaedcc4a4a091357d6f7c5ebac56f39451d4adbdf09d6a8879f61b1dd31a58ed1933196aa97b5150551c0da1a126af538bd4cccd5d0d38957b6d31bd3e17ac6dffb72b8d4783a0d922fff8958c12898900ad4eec350fcc55fe75f8b83e3db1f8c98a60789a5b2c66ffc9dbfff051d3ca7152c5f0a10e329199c5daff3037f45c26a595af1b775dada1918c412b47dd0842d63117093b23614206d351b81bb5f4528ea58ebd7c669462354c6217b48732229e102c6b3eeee93e853b369a21b7ec48a130bb335ae2708b808a4948ab8038b83add64bb622155f97fad87990b5e28a2194660a35f2e9f33153a19b5dddce1fdd126336098802731064370be0dd35b8683246f811d1b380096ab4255977654a9e19206784a1e183217e85ff920c7ad9279c3e98764db159da3af09081b541ff3cdcd79878cc946dccc2d34e40a9f98f5e386b98f9db5e99ab25f93e155440039388f2ec0f2dfddf7ecd897600744b8d8dac6b7d81a7d0aa25c24a1f407c13533624c5047a7902396ddc807012ab2ebff6e8239a75c3733aff723b496d17680b1fd76b54cd4f23c640f3ce9272facfa540315460a39a306eecbdb0eaed3a712fd8bbfaeb0a60d902e09637d342926133c69fe48bef3d51031b01bcc63f89e36b8fc66c8424aa3f4940f161c010f2764037287d0597ee65735781f13a1d3e4d2fd27a91e15e00dd3207a70db7f3c111b0aa6beb0d415aa7d71918b0257db59f6037f09f86e9fade33b01449cd20173d7648dcf828e1f1159e576cd8c8bc0cc34c5e53443caea2afb3730c3b3a13ab77d87e95523276d9a8b1c9f872b1bae8e33a46cd289f97836555c4cac5b9a39da7041fd6d2a1dc4489a930f191216dbddf77d18721e9ae2a0c0ef8436ee790175af5850c48b5312811458ce6b91ca32d6cfe591513b4e62e362a21d6f8f153e8a50a7af3b74aced7eeba731946e35ef6fc91677fbbdcd3649ce4ae29070ec074c6cb993d6b89f5c8565bc0819d8f2fe320f7bd6962887ee70ed2a932dcb6938b393466c294760a37a9a43f7e6270d2414898032b6d093aabc43c26cd23498247e1f9fe3319b1cce9afcac28813cbef6fa4d6b30eecaa7a834a1d4dfe4f90d1b81e0601cce64e331650353d77ec3412b4c4b90d85e2e73f0f88f18201b06f436769e1f6ff807900906ef5cca862fba8e56511fe210030f16acc74e5f78dd3f098961e09007f86ff6f910a33579d04593f047dc273cf60c8280699ea08722c20175af5850c48b5312811458ce6b91ca32d6cfe591513b4e62e362a21d6f8f153e8a50a7af3b74aced7eeba731946e35ef6fc91677fbbdcd3649ce4ae29070ec074c6cb993d6b89f5c8565bc0819d8f2fe320f7bd6962887ee70ed2a932dcb6938b393466c294760a37a9a43f7e6270d2414898032b6d093aabc43c26cd23498247e1f9fe3319b1cce9afcac28813cbef6fa4d6b30eecaa7a834a1d4dfe4f90d1b81e0601cce64e331650353d77ec3412b4c4b90d85e2e73f0f88f18201b06f436769e1f6ff807900906ef5cca862fba8e56511fe210030f16acc74e5f78dd3f098961e09007f86ff6f910a33579d04593f047dc273cf60c8280699ea08722c2077596ab5d4f14c7435038a9742be3e6b737f77900011bd2975eecabf38cafdd2a541dc9aede8050ad6648812a33cfccec8163996bbfab69265fbcf2ef361c4e3ccafc6418112053d1c539dc198ca765b3a8d0cc38d47492143067a7a046f720305d9e4e7bb0cfb3b7ab6f2a16664d9d00ffe6e15a8f452fe648d4b20ee2b07931badafdbd1585cbb98145ff82a67b2f4b94bd1185102716f6439295fc619aea082c04067244a0b5097d8b2535880d4cabeea64b093c8e2fbe2f9efa66a6c0b31c6ee9a4ea8a1de768f02ab03dcb07adc00e8df3875dda40e7b43f757aa22b9d04876f1607ec1f21a67e209f6284fe4c7ccd257f0cb85ebbb023cd3dfa983334267ceff7a04b06a8d83d580e8df1512faded984c128ca45819e749ca9567c1af040e9a8bcd91fc37df3499f205924265fc241caf3d6bbfeefcecac04c976ac69088a6954a2b0eb38bcafc7568bd41c195159aec6025222744eec5f8f4c73502425abe23651217faf5299b77ed5cc30333e56dba19fe08bf95918c03550c9e3b43bbf6cf08a9fcae4eaea8d7a724774b3d9ac69b2d9c461d286cb0d866c2c5906254e43e7d570affb9aee4854bf65e296570be77d4c4b019e25b1d03501e7333c088a6954a2b0eb38bcafc7568bd41c195159aec6025222744eec5f8f4c73502425abe23651217faf5299b77ed5cc30333e56dba19fe08bf95918c03550c9e3b4310fd23d32afa05224d6ff3cbc157be23a55630fd82183a3b2eeb340680c7a67270c074a19e0d608eef484c90c5a438d6a5dcac528ed52d17fbd08e48f2b9b44033fa136bdc30b50643704d5a158c18393f508a98745498a0b22cba9a7941a3c0ec31754be27918b72935054df458667c3b4568ff57c4ffaa9a1c031b2ac570a000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012b361203b6c88ed965a1e9ca25a491a063a4ffa7d70a2b25ab5fbb6bfa6382f235c88351452e25d6ece38c940f0f91b21bf719f781b6af2b9efaefe0923050742e412c8e5d5d346182e552eba7d750b5699becff24ac9987b7e2ea9c0c5270d41b9a93c702f355b18dacace4fb882661d433beea9a3c99d117c977f370f348c02412b8b9b3ce468b13e348fffc7ff5406c282e71d32f93a53c34b897274bf1dc0e031608ce4dc3f38320d96236577781cafa47daa0c6594749294a14d8132cd201f0943014fa296f1974bb55f0c5c09f8a5dbfe3d071bb5d7e505285bc44010713180cab478d94470db55e812d1b9285233898d1dd7f1f3de25190a5ff97798704ee5a4273bf7c3c53c0fee996792737c7cbbc07137549ce8cc56e8b3da06ae9024f677d7a3c8217988accf35e0887ffb85b1be6bdb1600db08f6b6a99ea1486395f6cea4489b9bb9ae52bf70e98fb86a57f507276182971a5c0956359360ce63f6c6769e946f256b71b923578c930734900559dfab96bab969d67acdef09d323beb07f902b820ede4c94a5312909394b8018f11f8b8591f803fd775bddb834523bced039d4955259e068a8e8e9bf608d7722533e3776b648f35af33f25b81a43bb00afbd8a2e7469bee8f055e55d1338157e81ff8fe7fded3cc07386b74c2010a80d621f6d63ef0fb9f65fa2410f1e4c31d71f55098642f0578359ce336a37d174d21f3c812f3743f3ec0bf89b53820b16d0019f077802a2fb9dd37b588ebac12352dd4f524609fb1093aef958ac3464070bd30e9acddd399b3407c01404d4715d82c213060c812cb31b5b589c5ce981d043bb1066f8dbca124e028f9094b32212890683e663987c92d2cba3a7b4dcc06ff09f25c76895ade4d84fa27a56368162b162067444abdf82a0d078473c364f2611b8b5b484a115b24fffb4ca346391530252c0dd58f3ad480808b30e4fd3022f381b86e2eb1caa4b97a9bc808392c335761944434dc407695b3bff43710be6a689b3d9b4336bc825cd83bc7548b98347f2bb09a5b9eb682aecd3c79891d968113c875ab2b035088e166122647ae7e0fa0251177315fbe203708a4eddd4fb8dc9bf733cb9471ec4753bdeac0ebfea234eb4a46d679ab0149ac2303b3d3e3a1f1852fa02f2f74800bdbcd2834d376fc0ef5a4cacefa93a294067ddb41bbed2a55225ae659f41b02f3a05bffd5b8a3780ac86ff871d0cdf3a6e8e1534f277212f50fcbe6726f3f8b55c5f214765f1bdc188b9b30ec0a5e0eaa1714ae355312e9455b03f20e52b48518779e39131f987b02a87660e6f845472a21bf927ce9eb9c1e730659222f2389515b26a670c68c720a25a244140848624ba58233c0d93231479441fdcac6d066570f0d015cad1075052735e8e28ddc32a775463484e080b750e3aacf3d65fc7edcc25c610fd1ad9d1cc1b13ed6519f8541e85b5effbccaa539e4f39d3d996d221861abb0709bcade054fb2bec102478858fbc73e88836f5440a37464023cfbe2d6bb7486c89f45cb10adc635486d136ebb6b9870237c8977fa4834155c6055c4bf95f94aa3261d023cf02dc67faa6ae089ad6cb06ca53cbafaece3242c322bc801743adcdc47fb4c00c96e23b98be91c6a93a2b3907892dc136b865e57988fe33977af4b747dc85b3a8d3737c1a13117a1a4776cd03cd8ea97f9c068f631225ecc9374913b05df6d1e5482251fc3f6a5d68a49c57bd1854eaff585d8df47f1d9121a55085fb0ab0a17645bfa5bf93b4a04229d193d29897c5ab16f94c309a8e0e2a3e9f4313a229e1456b2ab6a8abaad6d0fe410b2d79e8d26ad17963a7f27e878ce6510978ecb8a0aa1b0167c35a2215a63acb83110860ae0b03f5c81e9926eab6af89c7df6bb9b393bbf83f8d2bdc54a7b2ee3aebc0f5f2d52348bfeb0470e0a5589c0987b1358395eba04441ab26fb2decf60aba67ed26fb0b927a3faeb4e138fc8063d9add153e253e778cb9ff4e08f26deeda9837e72026ce9222c081786d5f5218ba5dd4f809e442b9b2e2f4248bb65426aa4e25c34abf20bd76ebc7557ed6c6c5a537fdab08ae113f9f85af01b66f4b88bb2c6a18a80483738ff6541369ad6f52e640d27a1ea140c608cf9d5640a274b060d5529c904c66814288691462f27d672cd81b2b3be95357ade555934d843bd702df78e792f8836ab23c62520101d411e2b8ba71203eda3145a4a6f6f36ea0dd02e1bdd34f77d24a2f8a7a2cff9eb072ebf5af2f0f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b9130b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d43383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d124019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b007dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea510f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b9130b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d43383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d124019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b007dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea5120e6a6375b0b5eaeeb6fc87a8cbfa390fbf15474932bbe08a8d6ecbb879cb51f274d3dc3a846fc8924f1055fbf4f5ad5848b4b6ec07c76e6079ee428f532d63222e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d570ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b16745b5d9e2068629c6da06d336b8c7be2eb1b5e5cbb7bf0f3471505361db6e20355318fbeb9546267d1f91a3b3aeb3c6b8d2038fde5d8e6452f982d32f801e120aa44ae8036c90e4adb768a40f346f55d29f398859575e48ebb1e27132ea3b93ee76432f734ab6194b820d904eabace6031ffb363742763636375f186c8d2f3188163288502819c09079b78ed45bf89f2306d58620b24af0eb015eadf5bd2041bc54654878e6a646bc1f8fd173f8bc473d96b6016316261019188f962c1f5c3020ac843606ae0225615f79f691b254b7ed95e72082b9863ebe401d3929cfc2b325070870b4bde3308fad4bfc1eff65078b1bbafb37dd85cc858b01bdd9029d13c3775e7e21a5079429e7383592d2e39601451340e2f7ce5de4f4d4581ac1d8d08b450a13aed8c83b4cf8ec0e066f511cccc6dd97fb7acd520417cdd13b1b495020ac843606ae0225615f79f691b254b7ed95e72082b9863ebe401d3929cfc2b325070870b4bde3308fad4bfc1eff65078b1bbafb37dd85cc858b01bdd9029d1127482c9b4815bb6bb68e678dd88650ad1f40e2fbec26dd5f6086dec509c6bf20fd5252d6c0946fc90fd8f343f19871fff59652da3eda531b3edea469962bd6a3510aeccb3b0d41a5cbfbf4055edbca9dd75e5877ca571c1f9e2471e06c7d50707028617c9b38b5df3e64ff4355aa739424fc96d40abf61ce88abe474c4d0d18000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011df6100841e4c45981deb94ba04cc531cd1ddd3e3fd0d81e36bddb4ce0f13bf31ab29e3d3d1d83eb85a0adee37327561774f53c5b80b2c4dd4617166060c8c0509b838f53772217db70211af5967df18bc04984d4cb65f43b231c88553f74a5d20d177e59c10ca9a48209c1416cc95b9c4f21b7d6c5fb1d12193a20527e9c1e6296800697b1b80e4d2805f42a976c46d33afaaac761fb40c0fd4087481db535a38e5205119abde37052eced7dcbc5920e50c544ecbb81c7b67270a27566b5e2820aa3829a5e87fd60708b951f74d6d694d70faeeeeacc846641419cbeacb759a35922b63fa5dbf1f1e16fb01a63d4c777bb7c6a4228d8f71d94064aa3e2b843e24f5836bc6096938c560454278d70cb4400980e883aaec29f755103f984cfb233ae937819d5fc526e9ada277bf13363fe1606f9ceddbd7c246740d8570444a4e13f2a474cc64d0842670065d60249e348f9daca7794090883a6f95fb904dfc6b1c8d8dd319d52b49bb42a071dcd4a70f8b37282798d3d504ff8a6c0558078f130c7459144ae1fa20828f9f7a46a7a1be1e816ae90169f5d40b73c0b565d128b60207d3a038713e6894ac189ce861f5580feeae085dea84cc3c4b22af8d58fb913d9814f773fea6e4766a7efcbcd81f8aee9ce2f14ec66288c3125786fe3f78862332555e2cf2bb06cdc786a4672c69a1ad62ce9d3a10f962b068e8324f6f0b6e0544269702f1da11e57e852f79ab0f5a5b1f4f0a87662d971e13a08ab2986eba0c7e3a0a9ba31f819f44ca2ec4f480b41e76001e05edfa78379152e092c00315243238aed1ddc8f3ae757ebef38740f2e96b9c85102d152a3dccfa9006a960b40c7e044c60980496d5c3b7280993cbc1ffe11fd974e4125f942b96f3d53b355d07661407b4dfa865343994adb88831cfc0f8bcbae8af15158291c760be3b23d60ce6363b55660a713891a3872ab0e439a05d8d07adcf35cb1e85f8070e1558942bb677810688364c9a7fd3f4e7a47b1979d037ef52413d891d73d0413dc1fc9c2cc82b6feb068fd212c4e5dcdf1c47555942d55c4af61b1dabd8237eca0a40b403dfcf1dfe3e965e2ca0818423f90fcf4af4e5690dccaa9c48c9ad0b8ebf017c2175a12bc91f3e8c15cacdb62e63783f053703626bb5d6ef6b4af021ccd27e4c284c28485b94f5555da407d50c2bca6ddf0388076055242ca949471dfe8999c4015db0d6e0141dfe706ee6cf24cbcbdae8bcbe6bc2c39dd0a02c4417713360c339c44bb43b67276d31bb6035b6db1af88b43bedc81d6c627a1b46fa4a531209a0d4ea350fafcc19a024a7e6662109d34eac2ebef9ce8cdeb07383d3a990cf1f01ddcb3a8767561d8bda4de7d7251e5f141c1409002ba5342f1379cd54001eed30497a8b88cf6eb7ae7ac51ebf13659b0d30144ac429c6449de9cf724593a3af2337f6c304e8bc704baf8a0c2a9f918b831f1afc88502745bd463c64c16637a321f27e9fc4e11b57ecf337d6e7fd3b682604537bca8efd8f790b8c80e384cd8cc25eafc0b739576db7f8e55e9b0fb73edf732eaafd56af332957e02deb182a3fe307330ae6c85228b7a36c0dc08bd288d98e89f9ba60450cb305217b63c42f85001ce421f04623148c2982659165bcd02cea41180852187d785194ad0db712bb828767c1115b977786e54490ff5f503322dda4f660723315801d4f710b7728c570548317d607974fed87161aac3b581e1e8e3796dbf530a30909b7d11f44e59b70efa89237dee0eb2e192baa1a7eeb902b5fb9896886a8d60a8e610534c4dd5650eaccf882f8577b60c2fc89c93c24502b04feb17fe302ada06e07fa460df67b3221442a3c2cd38f82e0293b632e40a3deec9a8029032502f836c42798ff5292034515fbde3af28e7075ae7c722afea6475dd822009a2ee79a75874e229537fbd2244f4cdfc67e0bd7bd354be4b14857883983f5782cc41be815e4ac445a3b0e8320548874a777e66ce5060784af49cc49db4eba87a7e6e2c679da063523e36cd3a260fe7e443a27d8c96f5b37e9249ea6faa0b343453c99585ec6ed8cfb008b60d26593904a3646f44d6b937fc7c6f5e03b4abdbc8df1fd44a535184e1f09f0e05055dbba90fdc786fe383af7f7f6f2581aeae4992c33bd28bf0979865d44564105a4ed9ca063972aea7cf76e73a2199d2514481faf92aa9608285113023d534041092a13c1176341252430183fb11ffe66abd93575a942ad0327e4c32dfb6060fab3b030e399a910420f77a6d3e1cbec6da7633b99b0a852ac771612a40b90f3054c4fcf1c6656efbdf088592c1e3415b6c22c84fb1ee966e65bf8bd5bf46f20e58270f472004d514a4d56422368fb9bffdb60696ba3b7e3cb805f8d3439d4a31a7d8f0b8dffb2aeb5b2a9bddc970466248e2f57292bd9d5c752af42cbc62b707b8c34c63a0182967382af4ab10cea09dadf524e856305b966aecef2052127138473cb39c5fe7d698c7d50b54ef315f8498a3d720f6c8c002c243fddfaded90269bd07df22078cf0418d6c7575409231465c9b889aef1c9f016a0aba19a5c3519642f820ddf8730fbe72938a8abf6dd0de0cf437f9e0751a91690415e65a3cc0fab3b030e399a910420f77a6d3e1cbec6da7633b99b0a852ac771612a40b90f3054c4fcf1c6656efbdf088592c1e3415b6c22c84fb1ee966e65bf8bd5bf46f20e58270f472004d514a4d56422368fb9bffdb60696ba3b7e3cb805f8d3439d4a31a7d8f0b8dffb2aeb5b2a9bddc970466248e2f57292bd9d5c752af42cbc62b707b8c34c63a0182967382af4ab10cea09dadf524e856305b966aecef2052127138473cb39c5fe7d698c7d50b54ef315f8498a3d720f6c8c002c243fddfaded90269bd07df22078cf0418d6c7575409231465c9b889aef1c9f016a0aba19a5c3519642f820ddf8730fbe72938a8abf6dd0de0cf437f9e0751a91690415e65a3cc2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd62dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a11d68caa2862c78883eaee78094d9fb69b4c1aed67ae908a1a76c75ec489012536bc066bad4f192cbdf19e4a06169f22f64d1f342a06c9e1b7b20cb69f53d579265d7ba4fd1cfceedc564f5ab495bc5803613829245d8f789c633cc124ee5aee3d78393a560ee95de34d6346b9f7e4c766e878b6d18e35412df8910f5d2b13b015d22aa6efbbff06ee3f1b22f2b62816c4a23c9a3316269b5dd97cfa46ad15791cc7fe8075b63f4178d12d55d13f7777a2e7a9d04edcfd1237be53483b15591131e4d737dfe405069161e913c84dcf639965473cfd26c77a0d27dea1b763594f17f2a641e5919aef006f7e8a9e45600d93a2376a086b6e21d956206a1498a684097dbc99fd53006b36c828c1a6067bf2fa4e52af6b34500c788716a139f2f21c2ca98ddad3217793eab3f53637db1d568dd1ea9b86e6ef3fe2e54dfc2c620de100ed192af3e62c5018e6b4b66087f47dce1e968416cfe87508cc159c8b5c53071b79880a9228227cf3c2b145823a56b705732e64be15e368cfee99b86a427900097dbc99fd53006b36c828c1a6067bf2fa4e52af6b34500c788716a139f2f21c2ca98ddad3217793eab3f53637db1d568dd1ea9b86e6ef3fe2e54dfc2c620de130d8bd8024330a69ed4b9dc95c3c1653ab4724099c03dd213af469ec1a3503d825c3eb9f1916e75ee31cfe99ede632162a34519d8f90d5e6783e40c75ae17f0531b35fb1bea2759d0e5ebc1f176cf2d8d7e1ce53b2ccb94e49136e7f8412674108befe4cd1d3627881ad92e5a142f6b02356263b5c19cc3c0220a82a731d8a38000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010a17ce4de9a16d0fe71ebcce91723907510d15e9fe6474aa21277374dfc8b13210d5a9be7e14e0113d174b1bb11ee171313acab3c9224ed1c08d9df67421a5652bfaa295a93965dba6db581ed4d49813ec8c64f1c2949c1d514a95a9644f93bf28dee16d809d824035e336f343fe123a438738d82dacfe7db752940c3a5110de3972bfaae7d22290e41ba90d50394227c83affa2cb125f4d0b3bec9d45e323ee2b88d479e225289ea590b32ba124dfc9215b3985fce9d4747f08708389972b9539c19634cbe513f66be6b6bf175feedfa96edb6208c4b546a4cfa96d709eb4620800c432f0e742dd7921a6ea2de9c7fec6e4b7e3662b79dc21bb4e83b4db6164039d3eb3b5500bedadd94aada95bcf70ff94a96e1828fc80531cb6c73dbf9bf710eda4b63fd9f03e36af1150a7a12167aa3fed1ab3f5e42233c72629608f48a0339c6f9f7fb1babe2a9a1d53a7598f0c718b386e4123bb53f2d59c16e5506c6a0003418f07abd6b55b83e0f497eee399fdcc2c7540ca8a7c8e8ccc1323f79e52049b2738b90412fc3be621b5ad02df15caddd130a8f60dd91d9ef481f29edf2317273bab4abdb0e6000a93fe1819a802a44e355920e166359222fe1d3179dcfe09ecc2efaa41552f47b323463a1ec8ed5bf4a0287fc7e1d50cba323ea9f2be922c13d91ec709ac998bded4adfcc617ca20cd5983f2ee70dfde05f5afcede79482305c42c2f4279c98b6d5b6e1cde0715a4fcaf04b0a94e77998d9f05fc47754d3585af4fa94e7cbb1160d7d4aa12f560465d3bceacf55c7ed6a008c33dce89c10c89d5e3e2896fb509f2e5ef5b537902ff6b9c4de3078060caf728e197558d05184aee29d17bb614490e1c72b6e68743a434c7d139c120e7a82a98e6b232824013b9c107f8213d861023bd62f2ae6ca7858cf3d64bbf6bb85c99587b9d7c380a37e72b75fceebc5c9ab892c2d4d05d1d6632c49b6b646596100495169ebd64c62b6e3cc6832f9893c85d0445c8adea66af68b211537f490167aae395806534b538c55c41608fda4882c80d505f1660a180babfec87d042d5dbca30fa88266a1b386a3d4c8cf79445f096ac371469ea0324a3e170d85d23457141286aaffce00e3ac876de5c082e79b243604aad9557d1099ba2333818418abd08e647f9f0a1820d385db31dafd2896dda51f4c828e6e4727f4639ce4bb2410d15dda3c746c8e403e9af3bee4923f65864be11da44b4718316fd5fb89a37be8eb210a4cc10b12104821220b8a0b12addc10c05e7c88303031f1862ed2d876d1581a9d88d4ae2b413c58190cc292d867a86edbf5dfeca9a516b7ad7a8ca187177103af74f7d19e535576fe31bad7c51fd0c2060d4651dbf453b0e0d0ee22dee3ef2aaeee0e376de2588c5d51f338e89389240afed76df649387e8502aca23005faad46b649436f0169827bf3a37f1d85a0cbed3ada09ec9cd2a157349333ec75239a137b5d31f7224ac285dbab83c76e7a972c4ba6ba5becc347c42dbe07d6a48132024a8d47ea4215ef7acc71aeac4dbc09d8037541ad3e0a0e723d14f74797048b8ce621bf5f816c9e098c0c70f5b1632f0ce9735ed64ff13b58a44661899d6e700c7a9ac684f32815a6a32dc02028440ae32ccb09f2c3e340473fad13d2d0522d32dd24d9df205de7734a45c52698e554488c1aaf4024d8bcde424102185aec278cc4b2eebbe0d1a44f9c0de93088999a38b5ac597006c75e1317060d772ae424aa5d70fc3562d33ed71923292c80fdede46f514ba3b8bcfa970e12bc532704a0592e3632dba0894db7aa4aa1a5f0f0f602e835624601cb892d1bd0d7b034d91f7ca89147c701c8860201633f4d5d60ef8da186bddbba9ca5bb9d88f02fffa93ef889c633a17394fc1e6638df78e01ca478258695ff7e3876abf1b180050260dbdc7a01efaac3750c23133e83daac418a1c3733e85185e469a5c3f683d380e74c90b5cf33b16383fa452b9ffe74a9ac4f353f58ce4075da8653e493d5f68fbdf7325e6d491cd30ea6e9ee4c25895130376ebda5627afed22a5f87db2bd9f4d5c59cfde77cb342c05ed86003cded7bf6ffdea3afffbd5d83ca85f6755c3b5bb28bf9d974d35182d807b43d12b4ea9fd2b347e9f10399134a4c2423956db79a44c869914fb224e26537f29ec87b7e17d22183cea7b2c128543cccc0cd22209edf78850f1bae051255ead0276c7666df314d3df281c1d67c25442b5f624aecbf05f7e43b3414bdc30b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b913383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d0c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d4019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d12407dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea51382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b030b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b913383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d0c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d4019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d12407dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea51382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b0274d3dc3a846fc8924f1055fbf4f5ad5848b4b6ec07c76e6079ee428f532d63220e6a6375b0b5eaeeb6fc87a8cbfa390fbf15474932bbe08a8d6ecbb879cb51f0ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b22e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d570355318fbeb9546267d1f91a3b3aeb3c6b8d2038fde5d8e6452f982d32f801e116745b5d9e2068629c6da06d336b8c7be2eb1b5e5cbb7bf0f3471505361db6e23ee76432f734ab6194b820d904eabace6031ffb363742763636375f186c8d2f320aa44ae8036c90e4adb768a40f346f55d29f398859575e48ebb1e27132ea3b91bc54654878e6a646bc1f8fd173f8bc473d96b6016316261019188f962c1f5c3188163288502819c09079b78ed45bf89f2306d58620b24af0eb015eadf5bd204325070870b4bde3308fad4bfc1eff65078b1bbafb37dd85cc858b01bdd9029d1020ac843606ae0225615f79f691b254b7ed95e72082b9863ebe401d3929cfc2b08b450a13aed8c83b4cf8ec0e066f511cccc6dd97fb7acd520417cdd13b1b4953c3775e7e21a5079429e7383592d2e39601451340e2f7ce5de4f4d4581ac1d8d325070870b4bde3308fad4bfc1eff65078b1bbafb37dd85cc858b01bdd9029d1020ac843606ae0225615f79f691b254b7ed95e72082b9863ebe401d3929cfc2b0fd5252d6c0946fc90fd8f343f19871fff59652da3eda531b3edea469962bd6a127482c9b4815bb6bb68e678dd88650ad1f40e2fbec26dd5f6086dec509c6bf207028617c9b38b5df3e64ff4355aa739424fc96d40abf61ce88abe474c4d0d183510aeccb3b0d41a5cbfbf4055edbca9dd75e5877ca571c1f9e2471e06c7d507000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011ab29e3d3d1d83eb85a0adee37327561774f53c5b80b2c4dd4617166060c8c051df6100841e4c45981deb94ba04cc531cd1ddd3e3fd0d81e36bddb4ce0f13bf320d177e59c10ca9a48209c1416cc95b9c4f21b7d6c5fb1d12193a20527e9c1e609b838f53772217db70211af5967df18bc04984d4cb65f43b231c88553f74a5d38e5205119abde37052eced7dcbc5920e50c544ecbb81c7b67270a27566b5e28296800697b1b80e4d2805f42a976c46d33afaaac761fb40c0fd4087481db535a35922b63fa5dbf1f1e16fb01a63d4c777bb7c6a4228d8f71d94064aa3e2b843e20aa3829a5e87fd60708b951f74d6d694d70faeeeeacc846641419cbeacb759a3ae937819d5fc526e9ada277bf13363fe1606f9ceddbd7c246740d8570444a4e24f5836bc6096938c560454278d70cb4400980e883aaec29f755103f984cfb231c8d8dd319d52b49bb42a071dcd4a70f8b37282798d3d504ff8a6c0558078f1313f2a474cc64d0842670065d60249e348f9daca7794090883a6f95fb904dfc6b0207d3a038713e6894ac189ce861f5580feeae085dea84cc3c4b22af8d58fb910c7459144ae1fa20828f9f7a46a7a1be1e816ae90169f5d40b73c0b565d128b62332555e2cf2bb06cdc786a4672c69a1ad62ce9d3a10f962b068e8324f6f0b6e3d9814f773fea6e4766a7efcbcd81f8aee9ce2f14ec66288c3125786fe3f78860c7e3a0a9ba31f819f44ca2ec4f480b41e76001e05edfa78379152e092c003150544269702f1da11e57e852f79ab0f5a5b1f4f0a87662d971e13a08ab2986eba0c7e044c60980496d5c3b7280993cbc1ffe11fd974e4125f942b96f3d53b355d243238aed1ddc8f3ae757ebef38740f2e96b9c85102d152a3dccfa9006a960b40ce6363b55660a713891a3872ab0e439a05d8d07adcf35cb1e85f8070e15589407661407b4dfa865343994adb88831cfc0f8bcbae8af15158291c760be3b23d62cc82b6feb068fd212c4e5dcdf1c47555942d55c4af61b1dabd8237eca0a40b42bb677810688364c9a7fd3f4e7a47b1979d037ef52413d891d73d0413dc1fc9c2175a12bc91f3e8c15cacdb62e63783f053703626bb5d6ef6b4af021ccd27e4c03dfcf1dfe3e965e2ca0818423f90fcf4af4e5690dccaa9c48c9ad0b8ebf017c015db0d6e0141dfe706ee6cf24cbcbdae8bcbe6bc2c39dd0a02c4417713360c3284c28485b94f5555da407d50c2bca6ddf0388076055242ca949471dfe8999c40d4ea350fafcc19a024a7e6662109d34eac2ebef9ce8cdeb07383d3a990cf1f039c44bb43b67276d31bb6035b6db1af88b43bedc81d6c627a1b46fa4a531209a0497a8b88cf6eb7ae7ac51ebf13659b0d30144ac429c6449de9cf724593a3af21ddcb3a8767561d8bda4de7d7251e5f141c1409002ba5342f1379cd54001eed31f27e9fc4e11b57ecf337d6e7fd3b682604537bca8efd8f790b8c80e384cd8cc337f6c304e8bc704baf8a0c2a9f918b831f1afc88502745bd463c64c16637a32307330ae6c85228b7a36c0dc08bd288d98e89f9ba60450cb305217b63c42f85025eafc0b739576db7f8e55e9b0fb73edf732eaafd56af332957e02deb182a3fe28767c1115b977786e54490ff5f503322dda4f660723315801d4f710b7728c5701ce421f04623148c2982659165bcd02cea41180852187d785194ad0db712bb80efa89237dee0eb2e192baa1a7eeb902b5fb9896886a8d60a8e610534c4dd5650548317d607974fed87161aac3b581e1e8e3796dbf530a30909b7d11f44e59b7221442a3c2cd38f82e0293b632e40a3deec9a8029032502f836c42798ff529200eaccf882f8577b60c2fc89c93c24502b04feb17fe302ada06e07fa460df67b32244f4cdfc67e0bd7bd354be4b14857883983f5782cc41be815e4ac445a3b0e834515fbde3af28e7075ae7c722afea6475dd822009a2ee79a75874e229537fbd3a260fe7e443a27d8c96f5b37e9249ea6faa0b343453c99585ec6ed8cfb008b6320548874a777e66ce5060784af49cc49db4eba87a7e6e2c679da063523e36cd05055dbba90fdc786fe383af7f7f6f2581aeae4992c33bd28bf0979865d445640d26593904a3646f44d6b937fc7c6f5e03b4abdbc8df1fd44a535184e1f09f0e041092a13c1176341252430183fb11ffe66abd93575a942ad0327e4c32dfb606105a4ed9ca063972aea7cf76e73a2199d2514481faf92aa9608285113023d5343b9e758ae3cf4a360111446f6309d4e0b97c76a054c3cef3055e7cbfbf7586fc04618a751c30b5c9feeebb909cf62b1f68ca225bb4892a2893ceb42d408a79052a184bb6730c730e0556562cef3128631653ed31829f2650b623ac0abd4ba2e815e7b4498cf38cf1faa9a9d310ced79d0bf2abca86add2cae30984e242b45d1912797a903f3e3f461aafaee0abf5c9ef08cfd7037134d440c32ac96eb27a2e852d86856fc0c1c0b9e550511f540a36111976c1f8981824dad602677e4d85d17c1c5f64d13c373c5e856e6a635bccf1ab09c89a152cbb2c2836a8be3c7c62e89823a09b2ec3c8c3a17a91959ca4330e55187dfee6dc91ccf3628472b0839d17693b9e758ae3cf4a360111446f6309d4e0b97c76a054c3cef3055e7cbfbf7586fc04618a751c30b5c9feeebb909cf62b1f68ca225bb4892a2893ceb42d408a79052a184bb6730c730e0556562cef3128631653ed31829f2650b623ac0abd4ba2e815e7b4498cf38cf1faa9a9d310ced79d0bf2abca86add2cae30984e242b45d1912797a903f3e3f461aafaee0abf5c9ef08cfd7037134d440c32ac96eb27a2e852d86856fc0c1c0b9e550511f540a36111976c1f8981824dad602677e4d85d17c1c5f64d13c373c5e856e6a635bccf1ab09c89a152cbb2c2836a8be3c7c62e89823a09b2ec3c8c3a17a91959ca4330e55187dfee6dc91ccf3628472b0839d1769352254da5cad22b2bb31a255d43899f5be174c33d783688ffa31918b2d0e604e3319a2a83a6dd65b246c9f7d539b67b09c3b0afe9bcc31f641e4746e726732ac3ba6fdac0b77d30417b290295f5091155d781ed0d0a66a28e5a091ccf9031fab1883d6e1d3620a99d127d8cf8f9f75ddfae5984b4c8b4ceb80eeda5649fd19220a730c6daee74777213c7c88f0e5f2d69b5b8ac88a22e8a46d754cfabacfb59f00644e3ee2f7e56171cc2e3b4367e1eaf3a99c96272c224b663bbb7aae56469a1ecd839b141db536caa9da37468384354e61fa38741904ba2b121cbd621e06253b2ab426314fc7402ae8ccdd57f4198e0ad91c0ad7bf7a997f7bd11fe424e30030d91e068c82a0ff3039ada26713c349ada90b72fe4ea9cdc711f29ff7ef27a80d0f5af7ef395149bc44afeb6483b8ba597e66532ec7ae843d729ee5b4564426041217d5e10ae2bfeeaf7922ddec504623ce1649953138d125ec298d54a9434e0bc14794a944c6c62505b9539db5a4ba37d64cb0f01d780f9ea66abaa45c85ae0f36ad7997db0a492d1bcd80cc76d4f528fdc6f36a701f7e52883e81d9ee800a34628675f2301f0b0a6b87b31cc52271ad6c8eae2a4273556f871315439bb435041217d5e10ae2bfeeaf7922ddec504623ce1649953138d125ec298d54a9434e0bc14794a944c6c62505b9539db5a4ba37d64cb0f01d780f9ea66abaa45c85ae3737047dd2fe949e581e2c73cabdd7625337652d093ba62cac397e183cc0b3cb3eab818f21c9fefcc7ff88e077f3ed52b15ae61b9479e7da53778445ac6d749224910455af560f54dee8d1dcbc5443688cddda53d6f40e127f45cef46e4fe77e1c28dc63d751b11ed43d8e3bbaab560de472ff576ec391c8baef0af1e4043d1700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001226d68da6fbce6a65741d7e102bc0a70950b3da3f70a9447f3ad0048963b52c912482ef3a1e2ffd3d0616207722c7b13f0704335876fd580aad466f6a44330c10225e5891f5a1f6316081072f0a9b550ce2313b1b533a89b0d672c2ef21a2ecb3e35551b10f9b06592f017a55791d2702d923a6f0da573a3b9814eb0a7d00c601b390f408c2927a5074d5cedf4a40e824b4dec8072bc8ce4e2f648c453722f532b0035cfd6f4c9af564f864ac5894fe38d3d52b3e7509e5f24c800104a20c1ea057b65074ebfbc9a774e48931037e29d7af0a438d1646dc9a81b04812f671e6c3dba04e7c047877e93cedcfbcfa07829e959af6d3d9570142437dfe0b521f3301783735d2811889db913621b3ccf83217851f3dc522253c21a6f73e0f53467240d35a5c838bf26fcf2fa69a98307ea8f5832ac71d9946b80593b69aca29b419204b918af2541b36321b44e44b7ccf785ffa63a1abce74d015e87c4598846ccd4185b5c662c8045fb16f1909dd04c8282b2f4ae3b72b261adf49032781e0f794914b7f008193f453e38a1ffcbcad573ac4203863c7c6ca8842ee5b9572a3d511a106aa5a6318237c1f70d915eaa6abac008a5a8edeb76ebff0988d64aca36634d3733d94aea9eb63b770d360783edaf6746d4184b76b18bac5d282ba2d40d758a3bbe6a7f4ae8130ada352dd6a114270f07b3e8d7d4d4f29b616564f4e622a0900b4501be9b095fe9b2e0f504c20253306468777296da2939168919f8700fd74f18c64ae718faf0835f5580da5a53e9162fd62c9f8b2e1a5bd21c93058bc094ca02a1aa6bbb9156de10057ea13ae3d70312f40ff2fd4663f1f9d4ca6d7b0c4a470f239c871aa043b4524ad89b14d2cd79574a99b2d8dc9fd819dabc2e2885cfa9364d2518dcb0a89a19de29ca1e6c7c469cb690c5f54c237bacd9cd3d71af763d3524c1cbb54947345a1dcf59d01e2e401af093ae0d284722a31e6c6d599ce7ca1b9350c6bb06b28524fea0b5575315d7e24b55706b26fb031cea488f3fb8b6a303cea8c79c348af4f1208b5c3b36e17acde12d01e455535aa50e5ce2e32791e03311807846de72c3a6c87c02b9de0759443ab713f54006a91b33608a09b505c124e51fac31f8ed853f72b5b164ac899b7ab632d97fea84cd6e04d05ae2a7b40a06db5ce34e5868bb7aa612f76201fa0e99eaaac7deab944287fd43bea7cab03e2b0898d61b213eadcdf16d4075343ebd984ef43c6349faff6da058173001ab64089dec40384bc03dd24d05bb565a843bf0c6e5729e0ea933f912ce051b0d56eb3fb87df61acd1b2dd0a390fc4189832e345a5fcc074676120fee4827b4f824412bde73d50f64e32c7b872b9cc85dff1752c6c34388c05f261deea463f7589e900475305ab1fb756fffcfcead081e62eab8505d6b5e132017b41820991651ca4c1a181de716dd91da84143949ded0aabd0d06607d7b5e1cce742d91ea8e29d21518704adb89b018d486782682fe98acfbaa9da6cd2e1d68cffe1a521ed7e1fb663ce8166a6af5afcf4764578bade79397d2a6c46882002c85c4928cbb502d7c7c0c167060ec643c2d69c7e2d07468c980844e9a6f3ffad9f5d04f8ed6f378aea731dc6c182630ded41b8092c07b26b830de870fcb84d04b32e4f0ed5fb766863e3b865902425ef9608ecc47132d6cede8b7fa139b8f5c56d275d694b99785c80e2dfe0660abe82fdb3ef1c1605242173871322bbce0123d0c049449a5388082f82ea7cfe546c7a0247394bd16a19afbe0953e199825c65e59af8d557975ba5d390f9b606a793d250ce082461404f82cd314f10ef48084bbdc9ea87d08494e429e3e0eb41bffadf53f0c8c9f7b2b01e42092ac799cc2788a957f324ecd993b8575322c63d7ad481313430b32d383a2ebd84b1e6e88f65379251f49d66140747c8317da981f03bd8cf1da0e0ea547f42d8da5a72b6d175206d4809d4a2aac172f2021d7228085e7dc0d16d21d7ffe79c27cbf6bff3278da567b8eb9a644c9fc6d79017f0d2d46a845845f2dc7995a88880e01d9ce9071debcfdb11f02a467628198197149eb889dfb79262c590203ded4c706811c4b988a0e14ffb96fce515b04562c92b3013036a516b4fb24047063ef66c8139bb27fc6a6146911dce81a05b6450c447ca004e1fb2c15e1dc727d58da5aaf59251b20a06c844d9017580f54ef2c0c9ab464f2a8647f2b54e6c651a1ba21db190aaeb89590cb1ded111164639a423e46c73e7550160a5a0737d08b513beb5cff349ee09fb56142cae3e635fca8ab01b938c18aafe9f5a5f8c82f74aec414c547645d28ad43ba56624d06ca0357563761e4384a906e33c2241712b8962b9847e1a32a3deaa677e941afcb0def4b53089e1bc7b56f91cc3ddbe8ed4769d467da64f5d1cb6252a3afeb8121f210b4ae14e9751974d22702cab4735d9aeed9f8de4dcbe310615be92993ab4345ac789b2b168ae68b2dd8fd354b8ca26511260743f8cd18f8eb9d326f9985a9ba538766288f497f481ac30df58640d406aa41dc353e62734899d27236b527635c5e5b061770b680b7e53cf20a79bf2bf955be23ed083688c0b326a962780989a3a1a4fb3e46c73e7550160a5a0737d08b513beb5cff349ee09fb56142cae3e635fca8ab01b938c18aafe9f5a5f8c82f74aec414c547645d28ad43ba56624d06ca0357563761e4384a906e33c2241712b8962b9847e1a32a3deaa677e941afcb0def4b53089e1bc7b56f91cc3ddbe8ed4769d467da64f5d1cb6252a3afeb8121f210b4ae14e9751974d22702cab4735d9aeed9f8de4dcbe310615be92993ab4345ac789b2b168ae68b2dd8fd354b8ca26511260743f8cd18f8eb9d326f9985a9ba538766288f497f481ac30df58640d406aa41dc353e62734899d27236b527635c5e5b061770b680b7e53cf20a79bf2bf955be23ed083688c0b326a962780989a3a1a4fb22fcff711ca6bb32171257895548f0d889e96121e743e2acc701e0bb637c5d8c1709b395ecdd7145b01f3db15cfa8cf1b8327eec8beea5431732cb0848e630a22c9c5447ae1258463f3aab447a9f9906b7afbc722f2eeaa83dc7e2d2b05d15550da9914a1efea3e5e652d1bebf32fb2c4a8339fdf7e114fbb9026c3948d1e57b2f471ecd1901253cbe48eaa120449f9234db7f1c3147cc3c8e3fb3d6972ce32533a4ffe89edcd0f48aad7d03e65501a41b7d74f235434cbff622390271badfbd0b851e031aa982bf54cacf7a607f2848d70c572722c46bc9dae7622a49d99f51342607414525f0f244575c06b9051fe8d87579b36878d034c5195e9fabd1e44803c7fe1b372dad396937bed633bfae834ed80fe183ca0ee02804e6e1799e906b0135ab3b28af7ffa8a647da0600d1571c58671cfae1a084b8a512712f1d0d7b405a5ffd799ee791a1e19fa91d9a54e8af417e367cbc1eb54fac42ca68a228c090019ce44ee0e9fff8b885fcd5d566c7425cb3426a3d780b0f6316dec3ed1674f3066ac473546ec87a9b2fd323017762102f41463fc2724e22d909e4bec268d221b4cbb1ff423ead4698df08fe3d277e21f90e011857d3edcc8f7f9ab6e47e9e505a5ffd799ee791a1e19fa91d9a54e8af417e367cbc1eb54fac42ca68a228c090019ce44ee0e9fff8b885fcd5d566c7425cb3426a3d780b0f6316dec3ed1674f288be2360d28845380f3807149982cda50cb24832520b39611c73055697e2c051775be5f865df9de2a9796efc9661dcb0a38a608f05055ec9961ca28d6d1adcc31f659974de3bc152ffc1363499139fa7fbad5588cd0f2db3f50246c104129a530f765b3fd80b84dc4856ba2d006b1e1095b5045e5de3688570d91fe38f6730d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001192e9d8aa470b69c63dcd85d43198eb476cd4353e4526a14f0f0941bd3e348b135a2eecdea5a08c1046c9a40130f8e7ae963f6a8c759cfc15c5871dbaf1061fc04a83bb3accf4050cdc34f6a6ac84f2768e5afadf5daba8aa64efeef77010b20203dc0de49f6bf45e73b5c0d87556ba4ee19cce4e18ee893fcf78c8cd92a033e14c9d8213a15c517ade1c405bc74c19df222ce2b668356bd7d798f083f6838f73ab4ffe08a19851c3b4cd0b00c27a934d6e33bd84cac52af809c2453aac6e20a083a160fca31030cbdce33c40fa2fa9b50bbe5cc0daf98cefcd9af1a4e01e01533d6dda26cd7566db2516e48a162202786371ee872092cb513a8224afc10aede23c549455d396c2de4d686202aae068cfb696def99b750b6efaf87cfbeb2500a363c956fc1ed922ee4e3698b0e339af70821907122a5a6d8a558a91a15753a0c003e9968982043f30870a3475a4ebf6862675b807b5840d6d1e18d438dfe88300e6d09f18e87fecd25f1371d7ef4f3c78fa8d94bcf670f61241eb003f94fa8d824d3a7bd30d1cd89b363eab342390b12e5a3e1af53111142c1af748961e3ec191d60467dd3347d4511886a24bc932a75b5b343d68348f703318d379c1c8a4df83ce0bab6edc6865fe7fafc825bd4a3ed542c4645040539d698c460a4bd8664c6343988d5acc6f49d183dadd3cc57edcc4bfa1cd85030ac2071f0a5e0bac94e22287948f62f61184c3bef1ea89f4cf310787276c9ccd5ee7b90b885ff7c06b3243d1863193096b46a0a5d32882746dfa9d84d98a1476a9b4e09a9cbd4a812c7402dc903f94f55981747711121acc5a8f7bfa3c439a44265062aac1a931452acab2973e94cf348563dbcdd9dae06dbf1931156965b77345a006d67d809019a769b0ec40b598841c207420effb092664eb532024baaf823dd784607a3f2d0c234453ff5c50fff04b5b520aa226acb5b02f6ff6c2497b8d7de7b5c9d437879dc9eb53176422cb0ef2837a8102bf10e9db68bdadd872ccd0b26136511d8749f49cde90ea1a09d7b58ae0c44397ca9fc5fb804e20d67e55913c948fe4fe0138e3a325e013041f6c534852998c9c4d637e918ee6518cd171bf62811cdf4f21de001a43b3e01b88d9d10801cebf47d5a32c0385958c637c9ad993fe9db2d1d29afc5c5f31476a27dc62290acf80bb18f8f64191e1fe3cd0572a2cc1f65abba6dfb40935612acebac382d4cbe2819b1f09310b2673dcdf79ca070d6c282b4daa6d9e79d4c2da213602a92ff64919c58f3f7109a0a0930b6d4996837e6c001e4944d51bdde246b2f58a713f7e217837c508db7d1035fc38a2c5a103a8ec4cad26ed3e53841160ad7142c9d075b8d8f026165661c1dca0cf38761b4011778f7d399736598471dc25cdba86a89da7dceeb67983895bfc59e850a87c9fa6344ec23867115fc583611b9514e27345e1967d843e4ba8898b0e15d0ba5a65e15cbac5d6b25027c070f419f9d1c9ffe7e9c3d205eefdb542945d6456bfe02f0079d613219cdc2bfca37c1345995725f3fd49bb717082b997a125505a128c15dfd57eae030e13a1a1a3dff9f2f3144ad87ffe135f0a5772520d315375d68806a9f49e825d17b5a76b6126bb3469cf0f85ba2dbe485dd0c0046847e3d8f19dd4312e14924463d38f7162c19976bdfbdc8dd7f5e0c56ad228f2d339bf2c765f4df40886d70039fb59ab429ba47637a4f479448f577fb75d24c0732a1e71bd997dd56d5a540a4e3ff41c13bf77466aeb8a4c2beeea4d28437149fcd4a231e7f3d0ae82dd534f1d8b155bf322755456302f1dcaae49b989826a8eea4fd526ab2f1808a0249d13bc9b612772e8b965d6ad7a67e1db2b0d659875761553bc8ba4070cded9fa81e4b5847e18c32819dab094897d6a6fb6b2d49245c56686981387ab5a02e155d0f81dcec94ac124387f1b152f18f0ec6e2f02443c7812271ee6c4c741f218a1e435b115b529934bd2a609bc76c0765c8c43fa2df26cad770b5b9b22e9d7b4073e4f3d59e68fb2857dc3d1b2604b3592620bedb7bb552e503c985810179207ac654b876a865763888ca4dd85f8e466b9fa53db319ddf68d85f4d109b3c8bba3b6843646d11def09cd492ca7b48ee8ea50d2d5284c5b51919e687f7059b7fb7c0ab58c7c92340a28d77aa80aa4ea5bfda05e314919edfe2831e94c4628ceb356a61b145fde3c72154f38c9c99bdfde4c53c13079a7cbc7599964241267b7aa7a8011fdc317dddf365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575109a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b00fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d430f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22334bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575109a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b00fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d430f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22334bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde174fbaaf88be79d412b9672c9d372a7d2fa63a6f94bf935c8b22a38f99927d5421fb658f6072cee97b6dab3dcbac82009de512e271ab489886ab5369ed4941f102137e04dacf9afbc347f2bf066d88f624070fedb8de8410940ab528ab8fc49c0427665ed95b17a0576af512ebc575a225cca770747fc11a85e3405b33ad6bb02635f86d86e7f83f7cb3eac6b05058573f241e38075ba38ed35ba3f423be9bbb0d9ee0aee8af2693b7c6d2b811f5e292dcba481eee343b0632b3ec627a654d181c66447d4164dee3e2e7541c5518112db9d6980ed1716218966bcaaa50a3eab0372de69bc86ee4cb5a0c64f64cef1de32f914841f9310629d0eec2f98aa8fae03540b68c25f88ff0f5483000beac2202e9344265235d5a9ef25cfe04d226571a3d57416bb298fbb8b8a6f8955a5627f3e5733e2347fd5211b97218dc5a3c077924700f36587f61541470aeaaba8e582af9e7a75bc798eec5b61e584c3c2ddc98151c9ac8f98cbfa4ba0dea0c7231d8a9b105eb6c9da85a730b14ce4d9cda55f5269cc74b9c71eb3029fea6145c5b4c8cce994e9ebbaee1ae79ffd834baddbe1219dd3411c63219762d275faf488e085d5e94dea92321ef688c9e9d27df09526124700f36587f61541470aeaaba8e582af9e7a75bc798eec5b61e584c3c2ddc98151c9ac8f98cbfa4ba0dea0c7231d8a9b105eb6c9da85a730b14ce4d9cda55f5342f0b5472a17c01c6d806d03ccfd6d357e0d4554eeee519e3a817fa97394d553acfc35901a552582ed8d9519f2fb0790d4a39e21af232d1f8a16642eaf0c66820f8d84ca6b91c59f7a41134940b333c80043c39ba5c14304baca5ec9259295801dacf7d3d24d0d332878c6c0a3a8ef9bc78065c927af019645206cd8df4d3360000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000139876bbc4931fbd6addd6c0a78dab4aaa486421e6606dbb561c061836014d8b835f8158aa52f7d2ce4a03c6b5f52e1917f5dc0c650cfd6d8297117356e4d187e3480a7d3bcc2c3b50fa79c7552a0eff2cf6e55f74bef49f56ea0117ef32066b30e5682fdc13348a3d4e6967a7a3ce51a584008df9095b23fd9767b40824f3d261c510f1fbd8f9d8e4af572890ae3bc5d2a7f2fddbf00919186392d947e49f8c73793e1333e291fc40ad76356057b2222b1a038046d2c77f8b531ae00ab9a2fc63be14ea37a8d97507eeb1d774c18894176c0883be31c9cc663b9c4a87574e75c3ab59e83a74bf11f630617abe0fe3102c6fa4a037ac3b5c2571f09a014b3f8bd265ba8981b9e785b4e1b3320d8df7a113b5c236b39edcfbb14e103b0facc956722697dda0a49513d537d80d86bfa461b7e73d40e08d1339770cbb6a4ccbe00e71063f8811749f19936b687c44673882719fa4364522227a95cd7baad1a58eebc0ac3a2c8011d228a4ea0ebb278a873d3a3d9e010da2cff7cdf3331151757bef71e5efa653c42425efe8c37e0992c854943d4d533b8534d64229792de316beea10575d0e1cb7a3ce96ce38298b2379ad91400687ef0c8fec64043bf9f87072e933697165c37077acd10f6476b4990597a872942f371308036ae5673470b0ac7353188b458ba0045fd313cee5282a44de0281fdaa1c387e51013568fa5c96f2b0b2baa0df3f57ec469f4f3dc42b6802ecb6766b5852d0debd808e98f2aa2e992440bc3d4de73535bcca0633dff2e4be6603ae5eebaa27715bb172c5d0e15e93c8300d53887d6841a4513da72e197dd5a6f0021a46731ff9a3673d5822a0da5757f3f90db1e8497b34f1d36620fbaccda66d807cf776d350301747a559b479756f31f7a0cc27d12b651e7c0a5b0292d211b4dc7b6e6c0c0919f947350e80b8283962a464d9a1dd031d6567a32616c11d7a3bcd5ddb55954e185b2d63ea0c51238952523b351f23b1495fe963be32c764545008c0c39e2b7b09370dbf536640b8cb929f01a6996c5639cf3f021969fe42eb9994cdc242f4602b538694ca90550bb8b1729b70e3d7c5a836474632cb179d0f7386227b46ac8f166ce0ae4e7c29634d016cd6243002f6735741bf5a2e7bc320dec382539a70717bea51e378c08308dd8265c1a8da1f358b9b12e0eb9a7c1a64c0df5318e7df24338b7efbaeea35f42443352f2fcbb620e7f91832f755d63c33e0b119a233d208413d0f786e6cadb078103150329050119a300473cc6907708541f6cac9f1c45e1d412a8c93cff1155000c717db365c169efa9300d0f4429a56c0bf064924fc6d81340536c90f1332ec41f9fa3b245f67e784df30551366ebba33ade51e92ab5d7b5d1f5771ffed1b24c04d3679406d5f02cf30450acf7c4ec85be496a0ebd6413e1f83bdb3e2c1d115c23ccdfba924fb4a0a40d8106952f48cf7919759dc376422879b3a82748de5a502f13df1c123642933645f37e243de0b7d82419be2e998d9f61643679ddeb6e23079439dbd9feef594f71413c8cefd98b241258623f8148aec85735c772e2c6fe1c3840d83e6261fa80724677596bf3c335dcdea320e20430351033b6ea82930933dd22c0c0e3257569639bf3a95b38494681d76c752dffa3af6ddea20e5018892a1b9fde3055e26bd5f33f8b810d6c303485540c3659fcad69bd015ee5cceb9026aed6517fa9f4fca080c0be75525045c8cc113f3749928ca68b018fa0364ac12e1bf784c87630ac76543bb0777afa95d6fe3807828ff702d235d86c2e8742e30a35b7d1bae9284ec4887ed80cda743c223d1dd12695d68965097299ab0a57dd249f4391a9f570a174e3495bdb7818533a463f48d5a9a69044564b14fada9b9b14349e2d7eea7ba0cfe8224fc78bf5b8907b8743b5fbe870c9192b9aecba264028ed86e3685fa6963082661be2422853eac44be0403e74ab2aa75f413ecafba302c5f8ffb6eb3f61fbe03a4b8dc8877cf2849453bf51f5c4f096ba58343e7fdd08ee11d1253b10b3883d37ad2a75ed4ba48a352ebc7fa5566dd66a4a9cbe16081e4dbc6304f45f5f2388db2462b3dddcde05b5a4b94237695399ae08c28a5f252b75d523b5fb453bd1234e35e65816163f6ab4a819887ed66c8bf06659e91d321293fd45f3b680eabe5558c574ae62bf134374846804dbfaee25ade8b2234ec71ee8b21001cf5ffb72ce0d6bbe8d0c6dc0d50aa886e22c37f43128409ca4f7103ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f620591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f620591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec2ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b201b3b6514a5e576d3bf2166ce9c7de55051cce16420aa35ea7603aa0f35bf89c41aebe5602a8f012b625ab7294163b3f936535be6d1710961e568ba8e3095763832cc9fbaa6d221ba27e3b44f177f938d7cf171c02263a9cf8842e050c65a2734244521909e9b5acaa5db43f72f0a2bded449be25c8721acd65d44008e053c49930829fcdd5cb1e6f7a29844c0e178b8700403eb47f15271b1118dea6527d1a21116c00ea9c1bc19f9ce433c485676e245b517df10c7d8af760bb4090478102c13a8199c7a3ef2b4cc57459924fd31ff0909d51ace7c3bf6a7b2ec6871d20ad6d2c5d4b3e60675d3250e23f8668dfd240a7423c157d20d058309cdf5d913961fb3f8accd0a2fe98f110745ccc315197fed62328601bd6def78157fd64826d63ca0907c64532b347c431682ff5de12a6dabb7611c175de7b7450d0d6b0e16f72d52d553e5a63875d475ec00d3ca900a224fca973c33d072ac892e487e278d7155336442070166a53eb94968cc7743d12a67451f94c00acfb90c6bb2aa2918a1eab3f8accd0a2fe98f110745ccc315197fed62328601bd6def78157fd64826d63ca0907c64532b347c431682ff5de12a6dabb7611c175de7b7450d0d6b0e16f72d52c6e4191dc75e8ab002f05462dbfc0eba40394e9ed43f67564cefb876bef95ac3e3b37c44019ccd7cc0fb39c9ad81e8818287aee91d79a54b84b15b354c810ee2ab01aec2395d63a5d781415e35f2e61423cd3bd60ca6f2d939c3b19bacc76a2170b1fb53e675bcd3c859d132bc2707e869d3a08f68cf402453a94a0ac991bc30000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000101ca71c52dea46cf2c666886344219f271475f9e6f593eb1cf570b47c16d4e6c157719cbbf7e5f38b15e3a83e5fc3632d3ce346a20e5171b98c8e83bb292639915ae63890e000e8e6577fad01038e5761df2a563f0d23c855ecc997aaffdde3b0d33cd7b1242096d0ccde06619bfc70e27f5a479bc8b2752bb9bb654b9d24d190370a80c3c222d4f18efdffd0d969274880fdab00cf8e6409cc7f54d883908b430194465b888ad431da3a1dc152fb7447c38075c9554f78049b21543476063430acfe35ca40a91440f4ea106ad1bdf742520e80c0e9b91a26b503e8681b67e6d2a415858c6f98b74b30539271be8d5cb90835838fc4779ab30f126e6f28b4be304555e8e2cfd48a29c9562c02bb7c61560bdc7d370da1479e1c74deb5cc3c4ab01cabbd0d1aafd617cdd405e827d8e468a6e4b7ae8562b5c541ef529d72f0f0e1ff1fed1f10802ac4ea7978d4184b0bbec145bcba7b845fea0c44a143b6bb2463279715a91ecae523775a2a99ed395ea7f4137d1df83ee67db9f9e0ef644fe26303d45f48edd89fbfb6d05c34cd6d713b172b42dd875e772deed9cc9083d99192755c6e3cba2259b4cbcba2ba13e082ca7abc4fad41b9e3693d7f583912f0612072eeed61423e4be43fc5b2fc2d87da5eb09d76e5e7c33cc012aa0331071cbe927987facfb2d298d48b837ff5e337ea91ec4598a84f1b106533a730e8857aae6347e28f2be65e4981a4233877d54abdbc0c688a89f3afb91205d4323e444bcb534a9a3bfaf4cd10980d4e8f39a32d49ef7798ba9e087d1c2ef59813da40234c330e55047533a349285baf332c84ae8994285d9a385be9a44f53addc789ee7c1402687b60fea2ae523ac70dfb3013690929bc76fc796d9869ab62fb7c7ee6dc003b67cbd51ce99b2d8cd527a407aded38b61acf6ce9efd6d20f774859354909c1393cd167e2d82d3ce4c13c7c79e471745463cfab72f240749e2e9571e49e871b30e0c7e2f14539bfeb0f49dc96aae85a7c65259407d6b6690f610c9f11c060cf197e03f7854b1b6b9c3b63b8283d056999d3826061fac885533bdf0fad59a7bc04e6c52e579e9642aaf706c1370bd695436d8f368efd956b8515b044d2732e880cfffee4678268d5fee3d9d4d2dc39650b978fb4fea17f51a59001e685ce3df9201e2759f27a86cfa3f30a41b9b325f6e3f1689b5645f93ccc6d727094e315112df7a2242fa710b033c227eba18f1c04e99f7b89a6fcad7ea53c1680270647ca39d5d721068bc7e60deb531461c18498d93a3eb3ad77687cdb56bf050b3a8d8b13a89928832f3a3b48d2323cacba6e284703a65c92877671cd8d7f045c4ebe6b2b1a47b3199a50736c4efcef68db890f4fd9f023ac3f0a165d4d3704028061b40a4563699ef1ab78c59d65c2887059288b334151290d0da32ccf70ac0cbfe83a1cf3956a34f4f31296ca705233d0776d2c1a8698f6de20e0c4b38c57f2e25a0320f0a1d05e1af5225d57fb1a1424a3acd3c9c60dc4749dcfc17a06731e86649c12d7cade3e117fecc77603560e58218f9ec9603d114afdd3e590bc090ecd535028dc2a4d29e938ae83674a40dbfb2963cbd634376068ab79a94b5256d055d16f0aa63583f4585dd238a3ec9306bad2b3d2ee4ee049dfa45afff9e445f35074df33a743942ac98229cd3654f22c5471aaf81c6c5632d26176583717794e3a51012c9ffc8505559d07cb2989b05f217c59e840dc25d2df7640e517e6ebe3cd088e3b09383ff414d0d8d9bbfdabfd4065f4a4671d3d1e90ff7b1d1f33e40a8b74ef2492ded135c83dc5db6b6e48f72c5efec52e499b71d5eabe5c1277cd07ca229b1c3473de9eb22adddf706f7f45e125b9104277c535feaaad204e625591f4126011292a94c34687ac405f85d0509a358c59db5a1b0aa093d018bc4b3b01525502236b44641f1e2384f4718d72988301c67c15e334d6e89a44555ea092adc7561505bd174634d4cba283829021b22348ca341260b1204d6b21bb38d96892ee6f193f09d15ac795fcd9086f82b2f45afd28133712767a28d6ea48e6508fe14087c30351584dbdef6a15ff2ad480417ac7f8e15c0b66d6c81b18e295b9869a62dae91989eed44007d89d4a06e602a7889d6afaeff55d1bb32f2aba5f6d609b11d02f235c48c68db514f6ba1458c52c29c887101ab33368996e4418de20dde25391013de7973ca78b7d8ef734ed369eabe91292f0ff3c00d30f0f388e7288ba13c7a32042ad6d44b85d8c2e6cf1da18bbb0083196e509bf2b27e7fb20497e0a4cbfab1fbd5292bb47a273d1930e25e7444ff7f0afb3f24a21d1339e0ce76ef5b34056214d63225799d3bce820b9427baa7028b3654738a93dd550b5470d9c337fbe551eb29cdda8662c4317df46bd84558fd76ee151c3600f23cae3e62350cc8041ac2682efabb60122b088a39e4c6a5430cb3c6d32233b9b385c5808e233017eb7a7197d105449fedd4f775c61b395abcf34e5d966d8cdb1c0bf41244eb9fe81485a008eae5a8e05ad72ab32177e13a4f3f7c74e2fbc0e212e7aeca4d838077996403f7151a571fa528d54cde881ec5b0c085af8693ffb2bcaa0ac8858b4f88669c12042ad6d44b85d8c2e6cf1da18bbb0083196e509bf2b27e7fb20497e0a4cbfab1fbd5292bb47a273d1930e25e7444ff7f0afb3f24a21d1339e0ce76ef5b34056214d63225799d3bce820b9427baa7028b3654738a93dd550b5470d9c337fbe551eb29cdda8662c4317df46bd84558fd76ee151c3600f23cae3e62350cc8041ac2682efabb60122b088a39e4c6a5430cb3c6d32233b9b385c5808e233017eb7a7197d105449fedd4f775c61b395abcf34e5d966d8cdb1c0bf41244eb9fe81485a008eae5a8e05ad72ab32177e13a4f3f7c74e2fbc0e212e7aeca4d838077996403f7151a571fa528d54cde881ec5b0c085af8693ffb2bcaa0ac8858b4f88669c11dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb3ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba2e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b3333a6c18bf778e668d61325e69e25d3175cee5aaec8d1f3ab9c818b7019ff2af38225810aa0ced9279f11d7bb6bd5fdb922d34fcb89ee3ac44c8fa2bd5f655bb1f13ecf097788ed6fe452dff23942fdd3aebe7d16e25130c9d72d7314d671511286dc7c63ba70a6f3ad2c69ff9b9934f66601e89f4eb87d44b977e5f7d9dc8451c70686c6ccf34410eeff581bdaac669356723247562a74c0d699d751c4452860d81d8e6f70b78783550c923d3f6e1e2e57f77b631c25142f146fe065f2b794c225eb35e5e6699b01693ff2025239088d5968f6bb9195fd4230a1040425b06e116757cbde9eb9f5f59c6bb6da6ff3d7d9e8cd24ddc94847971d4facf87ee4a1c2336bff60430d8f218dc08b92f81d10147de057f17abe549424dcb46d17a65b20672a3fef6b96f4283b5bdf1bf29328392c5f009dc8244c23714beeeeb608f54225eb35e5e6699b01693ff2025239088d5968f6bb9195fd4230a1040425b06e116757cbde9eb9f5f59c6bb6da6ff3d7d9e8cd24ddc94847971d4facf87ee4a1c3fa55a619d63d535c420e506d77f602bd8fdc2fea70d92ec808b1d33d3d955d304b98db9612503e92443ca7cf18ce40d2933312886b225ff2f4405a7ebd2f86820b6503a8bc3e9c20db16cc2ef7b7e2fb237deb7411e8df9523508d8144d455c0f055c09dc496b55e205929afa3083161367fe1f7f333ba229d0cb0c82f55147000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013fe09b2a7b9cbb636c3e1e8036bbf71c286bed82502c6a779d39c46e3e4398cd28e487b81ef2aa59cb55cb93375ecf3499cc12964e11847917e10cfa34b479e72481258db8323dfef2959a14f20a698ea5be08659071e32286dc1dbf76d2d7a60df177d352543d1e324da0b7b4debcdf1e8ca8c2fc2cf8c6006a13d9d6c9e60805aa9065091ce82966ebafdf61f58bd8ed6511ba7aa75d81c10cc225f7a5099f1c36fbfb00f2bf5b1963d92c31c94bc55f0f720ed5e9cbfb5b4431e601a82c5e0aa7ce671053eaac33001ce7bd4c77f27defba86cc0840215dc44ffe1354912a18973e4aa85b9efedfc1102516ec70a20ad50af95f87a69530993b537c067de01a92ce4798baa574c7bfbfea7bde8024dbca94fb85a08bf6ae99f566788d052c009032154aecbbb19e8444e316492893f5a9e6f773ff01c5dc73895e95f0d20702ea221a55e8a1784f03d48e3ca79ff4b6fa4287db15ae1623a025c31a1eb35509f4abb59da884fff9d09609b14ca72a5ed0808b28c02ce5f304d41099f2a7b823636db5703ab1dcd748411083287be900a02762e8a354eebe282467005dd82b3952b411e8671574f9c096b7b5ffa147b5d82e146d0d57dd187822c5c5fbfed70f1cddecf1d23ee920ee629c00b2a8aa4cc1d80284792274d80502a6af0415c53f76f15c754d0d00e9acf1d39d79d7c344c6f5eb92fe2ea044cdbc4b45d419ad3175a9a970dcf98610ce032e7b7501452fcce482eaa6ae8969d623a8b4a15bb7281efe5ce357c84999a9f5f22925e0cdb10ee12e64e89a8ee051561dbc90d2d6032282ae9aa6f2e9164b5fb86258f993a747b5a78c0a12caf7695e913b90219802468ec9b7750a9e304508aeadf3d15101a84852018d1a89b13ed20211db92e937b11f30ceb1914247799f1649b3ae04cf50aae2222eb355139d9a25515cddcf2fb47ac77571664eda291aa642dd392ccb29f9cd60e20cae42415e11f381c479367703b72014e7ae6c3407a2ea73ddbc35ace7280bf425cb18f23b15162b3fab1bc7ced06989bce94fb771a15690467dff88a1c122afd6c0b5d4177764039bd415cc6823cf0202eed28c577f713b6a4b2d6ffa5a25ef82ea7f0f0380cc98406a29e1c6ca3f676f5853b447695a956c6b6136e9319d2ebc7a8250001f8c159dc714c83453c2c8af778ce5a8d649d54bee481a83717f0f1cb012e024d947c4bf7524d1fafce0af398adceb4505c1268e4d1353fde9ba983f475f71073a032914be3f4a858bf6d93babe8a3996c77519dfe1b929812c0993026c55022b328481eb620190a77ce32b6a3be2e67b2441ccf39512495edb76fe94e5ef543df96aa79b73aba9d477dd4ef8da37dbf1613ea2be99c1338f759ec5d555a9f10afe65a12553dfab46ec40f69d02008288ec1be314a8bd60712436772b681cb8324ae8b29ec14391d672710359c0b8db0526198bbb746440139ea742bba1777bef0c637e5f738002451223bb3342b32cbbcb2862ed80b5fa89a466eeb164acb65c76f1f17c3246e8dd73a882666e8e16f822ede3aec72b050869e533696cab035ed85c1f7982b5b560714bb188a6cc63021b97a1280b5c05574bfa49fbeacdc0c83c0b5d5050841399e3fd3c4bbdb2f1e11cf304f6f4d1bc6d0e4fde150080ff7f396a79b9c311c50506b15dfb172a7fa4a4fee7f014bf4b5dcd7e16e74770161919a7d305615afa325ba6e002e14b3498549ce998a04223f1d27bd1bcc5783bf95401e8f86096a43f355d82d7614ce0e6df2d7972fe083a836361f96dc16c3a7fdadb929952b13ecd2393dce0b1fb57aa0c82ca6b16a01525444c9b6a20fd858db9f5575260d46187b1d95d413da017309b61eb6854a68b8bc86affd35c69f5d3ba00965963de82ffc1ec28af40f5dbb578c2500f23856efd6d2077174ceb49faf17ac1cf904e33ecf51fdecf36a3673cae0569e9b5e8ac9ddf37a71d369022b97bd692cfc0a13b05400945176bdd81cdbee19f8ca9817b3331fa408b1b82b59ae68a7f1421cccd40ca515de17f60941b8499a2d000700aa6a8d79874fb3202486c8ef790c12c08f19a8e5ce10f8a71c512a34accb2ebfdd7486eacf31da855a3a28b82cd01974a46bf035a081ac401b7bc0d438c138ab0b42109f065a2b65b4ae322200471721d9b8ddf81f743bf530c3c92566f6d06b5c43197cbad2f84e05b9421d132332dc171ad2023254abb71daf1e483983d3743c39be9a15bd0cb17f40bb82bdc10070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae02347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f3dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc620b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de6371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a8708e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae02347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f3dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc620b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de6371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a8708e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001289653772664e5b0687671b6bf39d7359fb26e826dba5e1eb38a7e5233ce8de93ec6491753a6df9dd49388db1f1753ffdc69a266f0748b95abf20a8f65cc98142b1f7ac0060c8f935b9a328ffd8580f8af3732d9b1e774dae76956e5bf07120d155ff29f7d0992088c9b20b255a58866102fb254c5b20f82ff84bbfa157893462457c2be8825a49fce7d2fe697a07c834e1498a2ff2636a5e653e8b5efc346403ab7e0e2a2ad5b030ce3f960e10aa3dc9233db165cd5c5ba88137213ea653f0810fda5aba2d75ab166e0cca6c8c4ed479483bd7cd4f9db3ac2fdf7d7adb1c9500bf2d5e86ba4e45091aad8653583b89ae65d2931d7268adfe5cce3309bb9cccd083cbeec5e36de6f1a6470030880bdef9f26456b706a217813fb8bf4742020f4209b9c6de16feadea3cbdc9be6aa583c22765a600d194cd0186885816517bb6f3ce885e56bcbb6cefd35e6cc844861fb57e89766dc3b1a33201c82801f92f9d2337bf87b75540bbc0106c7074996ae1f14c1a5dbf89ef0941ef4cb729f7be01b09157e2d89205913d660f9152e494cb27b7a42b1292441c93f9c124aafcbf12c31ea65c4e9e714558acd2928da3d3675dfc9859551c535c081a81e79f163baf21513d7bf8fc2099863b97b5c05af50d4ca71eb13b6ccb5c815bd2bd83f4a0ff0293ff13332dbbb46d5613ec2484b2be2db4b22b31fce600d7d8f476f1d7526ec03ad1481b1a3c72c5736c382b3c04bcb2d1fb76fe935e37c3e130e70a50e6eca344b100f9ffff50223345ab458fcb028dd259864c2b9297ebcec62b5e8fe033f313a4b3154e4069adaecd8d03bf1b05e4e84b2c8fe6d28ff02f50c48bc01ea2c28753404c226483eaa05bd14aa4c69bbe15d937dbd2bfd61cf65df36f3b6f47634b1b6989ff53115569a27bcaf2df5a5ce24e1fd6a1de71ab52215d2492604b1202d2bc1ea579926677fd525d466ab4e90526da65e7975ae2458c0d59db6d06c104124bf579fa64ae96db0a0d5cf1eb4abfb3af7101b4ba1f2b8f9f85980a51119b0a870a9efa9b32e0ed0d073789fe0d4814ad6c0fbffa7dbb9ef4d4d0cd98d0e8ec97b0027960bbecd21346c6defe5f660b38dbe05ec072b7f145833b24d57151f0f65216996636648e72ccc7caf96813cb94c3a72e99654095c7c0210c1d03ac0c241ab7743d248a5d6c07fdb76b9e9fe2f62eca4a6e137c192078f1a9f0c3a60ca090e2aef847602f31970a055785c21fdddf5b8e4882af5d6baf7a2abe4243e807054c24a4e5c8590d5fb6c0ffe7ccd5129829c67636e5559755d69cdc434a11a37bf8651ea7467328346742b24cadd210bf96eb351dc21d7d55481960d0d8ef9df286fc3a7e42f5867cce8e2b201afc1f47eeaa928bf90c13a0608fdb915de826447ab5db14dc07da870987d8725078f6048ff976c83c95bd98fdf23a928695493d7ff52efb78cdb88959f994c0c0b74c13a8a00ef1974a07096a70bf42980d9b72f734e4ec0c9e0dbbf3ffac26f3bdca8db19d036caf234f2ac0f96882c89b461ec1f50ef1b247777597ae7273f9093e8c42f90f36a1a3b65b759e55f155acaa9bffb52c7acf71a95f8df3508239426b68deda949f5c777496e2b71702fb4bb451a4cef3393a7280e63deda913b28199025ac307be0695922dc3a83761f69768a3499de67274e501cc7bdb52254099a24420b67dc27a58158b87506ea1f69768a3499de67274e501cc7bdb52254099a24420b67dc27a58158b87506ea0f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5e2fb4bb451a4cef3393a7280e63deda913b28199025ac307be0695922dc3a83770f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5f0f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5f06f88f71dc0d453484c90c325d8bfcfbf95bdb026c9a3aec927fbda982cccc1906f88f71dc0d453484c90c325d8bfcfbf95bdb026c9a3aec927fbda982cccc193ed2ed146933bcce4e9ca0398f7b6a44a81334488416cfb84f4b02b170ea0dd42e87a8598380ac01e243c847f35a44d5c0f4b4dca076071896872ae74d24914800000000000000000000000000000000000000000000000000000000000000001e3c639e9dcd9b3575eaf05657391f66d9d63570bcd53e78ddc3531d295f14bc00000000000000000000000000000000000000000000000000000000000000002e1e44accb70a379e0aa7bbfa5861300e6c5a66e7b2e4f6ae1e8e0476d7f0b3b11e1bb53348f5c861f5584405a79ecff3b80f28d8e1ea9b0b74450a59280f4c62697575ff933316163546abe3b9e5f041b0875344c00a1c39e04ce9e237b38241968a8a006ccce9e9cab9541c461a0fc073e23c7bd4c5757fb28624edc84c7dd00f4b4dfddfff6e6f0a615b72a17db1420567f11601c3d7f4a90764fb16818b13f0b4b20220009190f59ea48d5e824ec01f019eaa930bb9c4e9cba9d4e97e75004c7885f55ffd282b33e6c93d2774764a1b07b56e08d337c74d24f8e77087b753b3877a0aa002d7d4cc1936c2d88b89b80961da528bfc59f245ae15e88f7848c2e1e44accb70a379e0aa7bbfa5861300e6c5a66e7b2e4f6ae1e8e0476d7f0b3b11e1bb53348f5c861f5584405a79ecff3b80f28d8e1ea9b0b74450a59280f4c62697575ff933316163546abe3b9e5f041b0875344c00a1c39e04ce9e237b38241968a8a006ccce9e9cab9541c461a0fc073e23c7bd4c5757fb28624edc84c7dd00f4b4dfddfff6e6f0a615b72a17db1420567f11601c3d7f4a90764fb16818b13f0b4b20220009190f59ea48d5e824ec01f019eaa930bb9c4e9cba9d4e97e75004c7885f55ffd282b33e6c93d2774764a1b07b56e08d337c74d24f8e77087b753b3877a0aa002d7d4cc1936c2d88b89b80961da528bfc59f245ae15e88f7848c286fce36c7c6dcd354f645d87fd9dc5a5263fc02d1038a65afc7a75c3bff73763c45ae4868a6aa3509ead71f15fb75699d7ae17f13dc248de26c8da6687adeda3756d5b8b269cb43b4e1645cd9b858f5a91fbb368bec1f0b8c14c58ce7233b7207b0d5bcc9ec3b3519e1c387b96fd2b5b394f2a19894a21b9af910b00e9f7083225672761d053a3b33c986f1cccebeed69b8b8e0a662584daee4a3ecf52a66cd080bb0154dd19857ab16716a59b9c322965f949922d7ea62c13144b31785d4e82797257afe2f111cdb0e3bbebe59b5f3dc92ce3bff292a8b804d9d9d0af15abb1782f3648f5f97fab6cffd97e671a8e081a4c4eb09e44539e7576d632a1620153301ada54f979d50c4a4e51f1080b742c1cf5bd8daa4f471b8e3db019aaa496f18516e57d087ff20e8f083a084ec8dc7c764bbc55bdb0e98701f57dd92f3e79f344023cdc6a1f7c6bb0dbdc296b5649aff30e50f19322488d79f8c47378e30ca1cb173dca6b5ffed68beb5a2b5be612609907a0ecb87a902de801bb536e9a8a320395c1085cf57e8f62855caa66dcab049097abeb5aa48c5f67df4f0dcdd511b3c097bfacd6d1a95dc3365593094b7e0f37d5dd766292b8db4f4c38388e5b0a6344023cdc6a1f7c6bb0dbdc296b5649aff30e50f19322488d79f8c47378e30ca1cb173dca6b5ffed68beb5a2b5be612609907a0ecb87a902de801bb536e9a8a32caf37acad6295155d4a9349d6e8209a59bf0f0aa3fc13c8845c48dfaf86abf9173e6940143b1fa8726a7ce1ab4558145e99f2cb41d624552cbdd0c06a77dc8906a5b1274f5db51109fd1be0553ec266a07122498bc0efe416f2a5c97139e13327aa1250dd16d23fa497eca753773857f5b9940a19fe91ce71102b89b574e303000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011d46046aad7f8eb0655671f76c864310e954b56e3ba19858417154143fba02ae2f0ca4454f36c4311e3c383c550b40d4e27ae08f1c301687e61129f695d764e737fd1c9954494c3abf458ece8faf50f26f0ff0d6acce417965b8e12adcc4f29b3dcaee70446cb0f7b8109fbeb215df4086da480e2a9ca98374f5c399ac6310e50932998b252ae5bccc6c0af9b5b3428073ba6ba2691fc44dfac8b701d933405e3dfe25ee7fa435722f96344e4ce128f7ea4b025a1ffd532f768d0da3621a76842a193a7d94c62620ab642445731300955c1b01455f1c7ba95b1ce8b01ecf678014b9b8e08a7f84bc887dd989e70fa5a4d063d64d335e669efe4815b76a9a3c8a2c51dc86de2ad5032dacfe540e34b5631a6f771bfdce90cb6dc320f9cc214e121e2ce9062d45aff052bf2da6bf696ee2609ef29c3f575656aae5da72817c68da18fa3753a719563812b2ccc172ca4732d2919747dcec1dc585f3f7a4abab74a63db31a72055a2380fcf77f83167636222de7ebe72b4d771c316945a8b5b607c1318039b8de15a8affdd17a778c30f0cf43e76d40f69d9521466c96d26880fe981b3677143f95a7b0826b9ebc39a2cbb8f0b542c2692286897956aa2d794ade872e29d1960ddfa6c4d4979266cb4ed02a7f64a814c611d3767fab9f7f92e416f41063c9d11e922cdd2f341e9ce1557531c20dddb552f9f620c7539ea965f7834f2375b16d7eddcffc1612e399d79bd91d539c154e071af0e39dd2c088ac822d873714b183f60cf436a096156193b821d77588f1f1007625a475ef2c0f7f1076d52e34dc18cf65f69f07ea623d505e1bfb3497bc28dda7639ab0931d94a3604dc227b3f7544dbb553a79b292ecb3b7aa93816080f8dbb308201f06bd239d3f89d834906a6727bb6e3c3d57f3f82e02357a7e9c006eb4a6f58155971b94de3c42f331de06a275f0b686dee724a63c5fa2d3f136224f1ecb1e9034168808e64494e739bf967ec78d3af8ee4b0d46762a6f5579c0a508e6c988b44dcc2ad128bd1862127c953e1ca108a4e7f498a3cd3f27af4728100002e4f521c5ea529a9cf662443a43c3a3b417cfe24893a0a2cc31591ba2321f9b330e85c927ed6aa6e96a81023c66101f65963993fb3c06e40dd3a0b2328422570c5b273af5cc953b30b08e3728a65165a3f1f648b7d7c77d3cd4f01afcf8cdf95a541b9baa5a12bcaea3dc8927c8bdfff29adc0dec8a404e520fcebb3bdcddd5fba65c474eb65d454627ae9007baf6b629153941ae93f77119ec560e84969252375a6554b7cda84894d74fdc321544ef30845766f4b2b149bba526363bb5f229677ba79e9d343fe0bd20cb681b646e2bda1605ea3fe26ae044272d1b33ae103c9a693b261007623c8f4ee2e33c1c8fd55193d4a7678d04b29fc8b0aff3eed19d0a07bbf33c6e5923931364c436fcf7d3dce833d557f4dd62114352a59b84adea1f435fcccca717740bee8aff3be89c19de868b328a904dc3a83ef7d1c73b96f29d9b384bb53295e395f1e0b9165bb454591c94aa57ee80c4d924411011d47939dd5b67d85258e1b3aba367f933b04500e3559febcc95ee6b89dfa7f2e2a078a28132810b27b9417efcda430f164924fc8084c582d401243721187dec38595765c674fc31a5dfe67ee350a4d10cb7a7824b57f6af559feb58ceca6a245b9d73f1982e0888acecf600e63c895b3251f6719e14efc5a8385dc084993dd4bfee64922df132c137dec03bad259ba204853d17421b05cb4317eba124dd04a64d656fa8e72c544d4326247556bbaa0d28388b9fa11ed37a9e349c452b50828f624e4a93dcf85bea3423222a08aaaea539fd428f0cdeddbf5b9b7b2b82f26c3c449385c720d44460f7110c2357d1d9de0425d10ae94579f9f4ecf945c3227badbe221e4b84b8d46408e3ed92a2b34a9a2e74a7c1db5545f7cc28118e99e72caec739c55509cfc47d5a4f1ccbe9d2d0d423e6e756eea62d8fa48de752930108e3d05915cecfae22c4d49b41f930d7874701f4e19b139aab11f8e1a3bf577c5323320d17d6f26189f6d0c046f26741e36508fb9c17d9efae483c28deb96689c9bee0ade65fcabe445f66faf72088e0691c3c7ed103eda108210c0127f35eda1e54aed3f8dccc754321174e3bb37396a8510087d48e8a9896b3d275828f549e0a74796b8836ff155e7488bc1d9350051c401a78d38c3a0153b56408efbd5037243a578af297ef9390b30303954ff9efe9191cc48e2a4e4646b4c815ae94927e28a90e83a57b3634b73e1e3e8f9ece560ed8233b71d5b1b9b94b37ea516b6d81d75713c2f380d31841dd7aeea14e31a9f1290fd6c6d3875f6187e86c68e6dc76cb4d0405096ffc6da1ff64de6c4007ae4a363029392c78a09e7817939719238934b31e418f8c0cdf571c344ec4acf851b5cb0f31e221a4dce7a78a1e0c824e51f880f1d29633e4d730e15f2aec532667730d30ce1dde5b23185875e1f37db1ae077f307402c82475c83a3a024499d9988cf40bf96aa838508645b2963e8b8799da8496d656076ee6fb4b42a96cb2c0053f4034069557c7af79ba4d69c1747866257b8b7042f49a65fdd05683c43a3ffac0c11cc48e2a4e4646b4c815ae94927e28a90e83a57b3634b73e1e3e8f9ece560ed8233b71d5b1b9b94b37ea516b6d81d75713c2f380d31841dd7aeea14e31a9f1290fd6c6d3875f6187e86c68e6dc76cb4d0405096ffc6da1ff64de6c4007ae4a363029392c78a09e7817939719238934b31e418f8c0cdf571c344ec4acf851b5cb0f31e221a4dce7a78a1e0c824e51f880f1d29633e4d730e15f2aec532667730d30ce1dde5b23185875e1f37db1ae077f307402c82475c83a3a024499d9988cf40bf96aa838508645b2963e8b8799da8496d656076ee6fb4b42a96cb2c0053f4034069557c7af79ba4d69c1747866257b8b7042f49a65fdd05683c43a3ffac0c12e26f67ab7b96cbd66298cf342505f2dedb559fa4be2273dd01899d6c3abb17105f957432b4d66c307dd8d7a9f77a65b49b53376dadd9b2290ea826fd6568a54328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff41daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f00344d74eb36915306adaf8e9269821e7f7d18fdbe18f81e064f72ed1f9b4231350512464b4176111b7ecf3178e1c6e6184b4c23c0e9cf8ce8968bfbfb15a651252145f4002eb00160145f0eec0955828f1a4069016d1ba01aeb4dc2c8b7d5d9318e6b93413a1ae9d9e25f87b4ff2113104ee04abf7d7bda6215e3899271cfa9256bedfdcbed166f3cf67200d7192e89a3a7176b008c5abbb6eb7fa995de2f2c1149a31f1b218ba1c8eef40229e00b9f2dbe6d8f3381345e94107f4c3810633a2dc8fe7fd0fe6c894514898011ecc3e0e47cfd46463f02f7600715ec21d283ef0c1b7842979820f82613e9aad8d2aba29edba2a09b2cede1d088e81884ac08451f5007c7ca5a4b3308d61c4b4dac42e0a4d37401fc648e9d9ebabb69f0e40e9e1c5c416a1560e72d45e42361df28bd22e4e2d0d417b41b1951d8c791d053710f2dc8fe7fd0fe6c894514898011ecc3e0e47cfd46463f02f7600715ec21d283ef0c1b7842979820f82613e9aad8d2aba29edba2a09b2cede1d088e81884ac08451df43507dea22f3a583eb27914338fd90d5e94b243086826d631eaa1fe63b6542a3a94618e653389c755739ca719ead12f269437235c37fb8f9d075b636c4b6c0332614ce7d08a2f70578ff2630152ffc6052c2897ef2f2e4c848f8f853d0a333a35c7d7bbaedff8d16914e3639770aeec01c8e6442b3f836f033069f743e00e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010da2fc30f5f1da78edfcd3338b6c83105390b140e43cfb43a5d1af52483e3b0629302da82482cb813c829229fc382f35abbacf7a85924e3c6390dfbe079dd7e53547343398ec0b810500359a12bd7785629707ea6eb263b608a4ef0a6caf11250adbef287e4208f7045556b18a42eb5417e4ab912396740c7049642de19f3532263e9e0b8bf9b9f1a757f687c9680b8f8af213433e00d7a89067a2c4db9e4de1348cd82ff10c1760f07e3dc9a80395ca6570142e4013029bbf3f8ce6aa810cb01e6f04b71c89f8e7826917560785cd88e4be148b5498614a6c1c2a687dd7e61911dd91a0123e06760481675cb9afeb8b64d372e4d45cf5f17bf2ea1a4084870a38ee07640f46c71664a859a87dcf81f6fa52ed0adb17d822a8458ea05005dedf15eb95ac73b1d85c6d7328443e8cf4762256306c64d20af914683f621d88283b1495c0a20c93fa6ba10f060d00da4454e81ea57201e8d588c5d9a25c2f4b7c763f9fa3d8bc1a9d07d6aa148456a6c489d4611a8e87f25990955318ad96dc775331d007ec2fd2f29200f10bfeedb8c7df886f3656c5852cd3ab58a4be694b017b1e7c7a36421b461f040d1faa3b6ba725924626c946bf940c171111c002c754b10740d19dfed2a4c63287768d738a3d4a1f116f8ca2d2a153ad0e23b219f504873e42c19c76463767af3a92f8c191df0b608f4fc25983a0d1b7927cdbf07edbe53844f67fe121c2924504f4fc87d4b85f0bbd0ba3ff13a50623537125170ffc23221a86d80123637f202e6d0c723ea132fc17cb74489bfe30e034de464f7401bd31b7c22c5b1fc4aa24101c7fadd49a3af1748f3d5bb4dc4a58f637a633eab78e3311452ace09b790e06cb0a9efa5d3288d4a47977cad80abccb2393846922c680259de44da58f7e9596ddb898ca45714d5544ef75917e520da2febc41d347a7422ef5938829f86d3e6920acc0afef66c46be344f1c905c09a5b4010849b1907c1db47217c00f55794941a86b11bc15b0c9f267757c45f3f6a1108b547e568b9e2078c2a720ff8f5f548975cb7af55990bd07fe04b9cebeaacb446c64303e45000d6bdaf9d70465bca58479379e7ccb7a82b2fd0336c3ee40ddc054485e3ef808042ea0f96cb858a8de2a7ea2f841c1976ed834db8f28fd4d12072bb3453ae4ae287dfcba1fa8736043ef524f4006628e464f89f4dfdfdc9abbd11670c380dcf83843a27a7be7c9abc4bff7fad92c4b1364a174b7b7ef70d973c982c21f3c710a3d0c359af13bfd9429290520a3b2b16bf5960a05d3532bb12f8e7e601e6036e323b4241f6a461db452977c31fbde52547d77103d014850d43e26fb27de96483217645fb8957970d792a5379fb1bcc85e15b5fda78d3c86d0649ac9abed7ff9c73b2214aa6ae258a5baca24ba8e2e1051e2b01d731b5ebdd9abcd0625c6ddeea02796019a40f8886702de808ca43e81ce321ee1ac90f1c873f3dfc4e09905221a3197dac8ef94b1127e3101b1ec0a795d91205f7761beb2bbc3bc49b8ba42a16311f305bf9aec636f5ff95b4b49901597de08615206713d5456fa2e0c63d9e9700df7af33054e4eeb9605e838bc8c88408d52ef5c96e7d896b56630265ca9ef8a045b7bc1c8cc4bdae9a6071e4963e3bea62eaba23e6e7302c3ccbbe1a29ccae1205d81c787cf89f7c8ed0283b41d51dc6cb84f63733062b0ed3cee609cc19b1833740d9c69b019c85bcb0c4eb097bc0608b14c587d64a29e7c3b441f5374eab93a5ff36f23dc582e7d56fe6e944a0736943c1e62d45dd7c9c33deff2d6b3705520a264de5ca066fbd42ecb90f6a8306519119b5080a9bd8230133317dda013d73dad4c91f34e2561c3f7dcc8addba06fc16a4963c6636e4c22c22739c245176e0eec0b901cb8800c0ccc9aea12458d0495da5f32d889199fddd93505aa9f2f5514e7a4e2f902daefd6fc630071cb5bc315773d745c91ae8c3809d5bc904a3a3834f318343d36b7701694fb1cc747fda5bb1d9172178119e09217e3a7d96ae2a31d75b9dc32be4dfdbf17b8c0d772c72aee4f8bcfd20d6f2eb6f2f2f4157512751f8abb29df275828c3ad25beeaf5728c8286c35f772cc635e4ae5c18f62cf93f0b02531973cd7007e6cc9f1c35fd94a0dad9840eba0bfb04bc6f8b9b7b1526ab166d4f7b846dd37cdd6de15d7cfbd74089ba6f679ce126c9e7fdc8ca30ca5ac70a45d3b1781f27cc9c58bf9cd66f92ddbf2039beed15f6a4f01559c8eb03ef7003ef5f8f7ebe290e27042e3444a34da933f7ab21213fb3c9a65b93152f15687d3c10a0708141d6f1d8fbd1cbbb5cb256ee4eeddae80d4551f2d19dd7d0ea978413acddcd79b6cd46c314e7055730844e03d657a5a63e82f03fc9df69eb6b0a712c532232864932b93ceb18faa8cf7bb21e704156630e762b596351831494f5902260550360920261cf68831ab3f29585f0e91d4035eb9595a5c42c24991734341d9faafc9f6dfd9e30977ce54c0d6a7a315d7bbbd3616385f36904c866e8cbcd2be1a910e2da0be90d0a8f8583bceb9d70006048fafff9b50a7a7adcfd740502141e56ef1d25f416f2f5707a7c431462b24638b30e4cff668eb2b610028bfaff03ef5f8f7ebe290e27042e3444a34da933f7ab21213fb3c9a65b93152f15687d3c10a0708141d6f1d8fbd1cbbb5cb256ee4eeddae80d4551f2d19dd7d0ea978413acddcd79b6cd46c314e7055730844e03d657a5a63e82f03fc9df69eb6b0a712c532232864932b93ceb18faa8cf7bb21e704156630e762b596351831494f5902260550360920261cf68831ab3f29585f0e91d4035eb9595a5c42c24991734341d9faafc9f6dfd9e30977ce54c0d6a7a315d7bbbd3616385f36904c866e8cbcd2be1a910e2da0be90d0a8f8583bceb9d70006048fafff9b50a7a7adcfd740502141e56ef1d25f416f2f5707a7c431462b24638b30e4cff668eb2b610028bfaff235b5f0d6a17565734c6c297adb20db96542cc678885f50ad8c48986405d7d6b047780b393c9324d25d3cf2c8399bf9cb8b67dbfc80f7d2ddb11c11af25663f71d8394ba2e4adcaeaef721748559b459a82e03b51fc3c9ede424d047bd7ed5f20c42ba95e57d85e81e62e43ece358248321ec92aa5f4b75b78640b9689961a6a3e7a7fdb477f2bb4f0f6ccead36e55ba20681c3394e062d6b2ed3399304d474705682e66e4d4e3e110c77a8c8a99157e458083d2f44607ed61b3bf227eb3af8810edae3c951891c5011736df837e492ef59109a2da0b80319adbfc445cc8503f1922e5d1fb020394dd2821c25180dc3e3321bdd10d90c028078e97f6955f6c6b39146f4fed7028268d1a97e4d9bfe1e58be6946724960155214c2d9c9df415893c2685010205e5af841b2ae776f910330df776943e8f859246497892d00292212a170946a91eae03366ce1fdbccffd7ddfa71046487966c1dc20b5aca27f01cc2a588b156ad5d323f5acee3df494c159aa7dcdca0aa3871c49e07bebd1558c2e3f210c38679dccfa1c421bf3ccf43ded371c61db6a50333e7571080c0223aca62f45c4b686b947cabbc94c94ae30be1b377152119b48c49245b7643b841381a12a170946a91eae03366ce1fdbccffd7ddfa71046487966c1dc20b5aca27f01cc2a588b156ad5d323f5acee3df494c159aa7dcdca0aa3871c49e07bebd1558c2e0e74ff4231a60da6a38b97c6afb96c86392f5ed96d1dedcb6bfc4388dbbc07b22c093a35741a01664e07cf304720d52e88eb1f433924061d5685c1e322cb5ea5279d393c460e06fd7cb241c5dc946aab84ba436eef470adc0a28ecd82cd3c09016c3ae7d8c0617a5769f6ca8784d4241810241b836d45ab533ccda6280b49c95000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012a16c339c0a37f6eedf93ac0c9e08da19fa1a5152ee9891ce9c7c5ada34373aa1213212681fce11f3157c2af9c953f72663bc0be9fa52575a1d941e93898ce4a23f1ea202623eec9e4ee0bd0785f8c23f8199b6c1e4aaffa332a9fcde3a2f50d36bcbf3b95916fb74c974db8baf264e19c691ed8064b5e89306bcac0d56a52383aca46b6a2a9a7c9cefb68c571b1274fcfe243b41622813c001cabcb5b62122a0e5a2e3157d615f9f2f9d8b3c1ccd25e19ccb9effb63db02be39bef3a89c6c971292c190012d28a1a9fde70d6a34ed5160c7e4ee90bb506ef67d5db89ea7966a3fb4b15035500f3fcafef0fda26639088a9887a3d300e27bdbd0eb34c595ec60009766f1f8ca67ce6f892ddc8753d79429d03efce1979ce21af1ac3757981b701e6497cecfaaff8c604e9a336e3da4e44feb65dddcc87f0d0534f1417d15446c221857c4f31cd42e1945b59986da30403507441b89971461e4e2293843e3807d0f68507cc0062fd44f4d2062e8057e8a1cf118216f3a1dbde6950d89965e84592687a113744caeffcee7d38c84e1cf793960669ab2e4aaff281867c7dd52149c3fdb697c550df2725374396b6cc663decb4b641d309da3caab28b77c43e2df3913760415c4553122ddd3f1cf251b3d9fba2f6b554357fdae25505cc9b12510263329bd0b0a7660f45c79d90d9fa236a79dc96216a75a1edf4fd9defda86750f636ceb590f85889d8bf477cff0e77b461bac38dd461fe9045f034e85353ae3433120b9b5dddd219865d323f62a44770b5c6e19d7c79a78326b880697398c5f89a1be160608436056b942a6ce87093cac1daf11abd74573574fbe57d26b2a3d1c50189eab428c0c764097b8991d49cf0d3e1fd5d5c63442a8a23bab08a26781a5c3852f518da4f19818c634f68012374d71cc2dffd796b7108581b03eea9685e7f152e189cf7781b3b34ceb827e6717a34aa4e6ad948310027b8e3050a376fe968313ff94f1827fe9589978cd79461288a6201e483d200bf4d8425f3234bb1020c25a927c380a780b33c716b01fe44faa0935f3468f7ec066383f7d712cec4508236d4d8002f369829b1af63b2078143bb6d1f3bccd3e4899f0c3bf5cacf9cc88f39053cf9a7dc50be7e570569a98a0210cd37cf2eb1f3cc747fe222f5ce0e7021306d228ea5533f4429bfb5d9ad388e4c8c332a2593284ffe7da2b79004b68f7833f7b089e2d0815c52878ddb8fd8b4f4c77d1cc6642e0ea11be106f3164007230f1205bdd7939178be3d114fd6054589f3eb50b185505d8170319d63ed644a9f2ae5c1d38eb70c33b86024dc49409ec0d0fbf4a7aa19be5eb5dbb012829af9fc0d9262b35065aed82dad66c14bd421f7bfde6e27645f2cbd2085bdb8a64e1b841b2511f53ec394660ad51489e26942072b2dde15c56d9c12fcdb65756ed047ed312f869d73b69e8c794952810bd21ebb93a59d8e7a2755a0092f40c8c256d902356b2255591ff8323cc4d12dcb24d33b7c27923fe13dc485e6c8804ab9d160c20b135581e0b85e827c7865e8aa27e0c6177b73a6e4d176811f9e3b3cb0c427a11620202fdb6bd45d216327af24b5257e49d44e0559c3a3823140c772037a3df139dd1afb91aab1aed7f8eb5f73939d6fa26b2595aaacfad1eef2d4247d542e7524fd66ec884ab7f6bd6d8f7f0fc3fabb21e019c453d3f02bcd6079fd02a59f7730bcac727771fdd5f19bf47e0313edeb9c7b03cf2e737a6c11058d4690faffa219618fcc03bc1bc66dec8c336501c7a611137bed899e5ab4ffaa560f5bf477e13846fbc614f8e861194d22b36ffb7aa436287ae9ca2a95b3d547b5272d21a8db2461a82e77ba697ef4f9a1da7bcf3b4ac16f624acfda29bdea941bf69e992157227c1ce0ae88bcd2f46fd147cb5539deb4a1149f503142c76228dd695aece750043be33b5046697c716f98b83ef78d2d00eef734a73235e5d8f4d3e2ff649251252072fd39cdbc7bed96b220b17a034b0059cba09c4ca9532359bf15f07ad2921d54980725de16076481b91d0ab0850ea2f75211311361105f6419f31b83ac992bea6721b44e3e6cbe35b2910448d60ea6190f1df1467ee62e965e9f79e08b4b2c471dfad112070bc50994f1ca233fd57c4df40d2d7e8abda3c855506917c22627eef360152094664a2079324aace4eb280ac020e18a3b2a49cd96a25b353a7436c1b10ad3cf7b1dc80179a6d1421f88474b371816c23ec8d9fdf649c24d8aeb3f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc6202347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de60b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b08e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a873f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc6202347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de60b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b08e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a87000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000b0000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013ec6491753a6df9dd49388db1f1753ffdc69a266f0748b95abf20a8f65cc9814289653772664e5b0687671b6bf39d7359fb26e826dba5e1eb38a7e5233ce8de9155ff29f7d0992088c9b20b255a58866102fb254c5b20f82ff84bbfa157893462b1f7ac0060c8f935b9a328ffd8580f8af3732d9b1e774dae76956e5bf07120d3ab7e0e2a2ad5b030ce3f960e10aa3dc9233db165cd5c5ba88137213ea653f082457c2be8825a49fce7d2fe697a07c834e1498a2ff2636a5e653e8b5efc346400bf2d5e86ba4e45091aad8653583b89ae65d2931d7268adfe5cce3309bb9cccd10fda5aba2d75ab166e0cca6c8c4ed479483bd7cd4f9db3ac2fdf7d7adb1c950209b9c6de16feadea3cbdc9be6aa583c22765a600d194cd0186885816517bb6f083cbeec5e36de6f1a6470030880bdef9f26456b706a217813fb8bf4742020f4337bf87b75540bbc0106c7074996ae1f14c1a5dbf89ef0941ef4cb729f7be01b3ce885e56bcbb6cefd35e6cc844861fb57e89766dc3b1a33201c82801f92f9d231ea65c4e9e714558acd2928da3d3675dfc9859551c535c081a81e79f163baf209157e2d89205913d660f9152e494cb27b7a42b1292441c93f9c124aafcbf12c293ff13332dbbb46d5613ec2484b2be2db4b22b31fce600d7d8f476f1d7526ec1513d7bf8fc2099863b97b5c05af50d4ca71eb13b6ccb5c815bd2bd83f4a0ff0344b100f9ffff50223345ab458fcb028dd259864c2b9297ebcec62b5e8fe033f03ad1481b1a3c72c5736c382b3c04bcb2d1fb76fe935e37c3e130e70a50e6eca28753404c226483eaa05bd14aa4c69bbe15d937dbd2bfd61cf65df36f3b6f476313a4b3154e4069adaecd8d03bf1b05e4e84b2c8fe6d28ff02f50c48bc01ea2c202d2bc1ea579926677fd525d466ab4e90526da65e7975ae2458c0d59db6d06c34b1b6989ff53115569a27bcaf2df5a5ce24e1fd6a1de71ab52215d2492604b119b0a870a9efa9b32e0ed0d073789fe0d4814ad6c0fbffa7dbb9ef4d4d0cd98d104124bf579fa64ae96db0a0d5cf1eb4abfb3af7101b4ba1f2b8f9f85980a511151f0f65216996636648e72ccc7caf96813cb94c3a72e99654095c7c0210c1d00e8ec97b0027960bbecd21346c6defe5f660b38dbe05ec072b7f145833b24d573a60ca090e2aef847602f31970a055785c21fdddf5b8e4882af5d6baf7a2abe43ac0c241ab7743d248a5d6c07fdb76b9e9fe2f62eca4a6e137c192078f1a9f0c34a11a37bf8651ea7467328346742b24cadd210bf96eb351dc21d7d55481960d243e807054c24a4e5c8590d5fb6c0ffe7ccd5129829c67636e5559755d69cdc415de826447ab5db14dc07da870987d8725078f6048ff976c83c95bd98fdf23a90d8ef9df286fc3a7e42f5867cce8e2b201afc1f47eeaa928bf90c13a0608fdb92980d9b72f734e4ec0c9e0dbbf3ffac26f3bdca8db19d036caf234f2ac0f968828695493d7ff52efb78cdb88959f994c0c0b74c13a8a00ef1974a07096a70bf4155acaa9bffb52c7acf71a95f8df3508239426b68deda949f5c777496e2b71702c89b461ec1f50ef1b247777597ae7273f9093e8c42f90f36a1a3b65b759e55f1f69768a3499de67274e501cc7bdb52254099a24420b67dc27a58158b87506ea2fb4bb451a4cef3393a7280e63deda913b28199025ac307be0695922dc3a83760f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5e1f69768a3499de67274e501cc7bdb52254099a24420b67dc27a58158b87506ea0f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5f2fb4bb451a4cef3393a7280e63deda913b28199025ac307be0695922dc3a837706f88f71dc0d453484c90c325d8bfcfbf95bdb026c9a3aec927fbda982cccc190f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5f3ed2ed146933bcce4e9ca0398f7b6a44a81334488416cfb84f4b02b170ea0dd406f88f71dc0d453484c90c325d8bfcfbf95bdb026c9a3aec927fbda982cccc1900000000000000000000000000000000000000000000000000000000000000002e87a8598380ac01e243c847f35a44d5c0f4b4dca076071896872ae74d24914800000000000000000000000000000000000000000000000000000000000000001e3c639e9dcd9b3575eaf05657391f66d9d63570bcd53e78ddc3531d295f14bc34016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe00bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f861250210407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c3bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a51423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d33524b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200634016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe00bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f861250210407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c3bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a51423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d33524b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f120063a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f21621663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac52260f666d094d1a6403be2dc098fb8f586eb4ad8166745ba69d9a8268d67ce9511fa42639b21ecaf1ed4e983217b62a6709fcf49a5422b064a6309c8e2c5576620de236c8d5a6a0e502a2e3ffe172e2714300642e4b9f8986569c7538a0b81fa224688bf433df1ae089e293b28e241cab5fcd9cd6a27caada7343d9684dde77a0d97ba61a8a2316eb79f39a161619e8bcb7a52eef1358e006dba79ce51baa33c33ee9d35863311447a1f0d41296828ef14e845415c2e1024c8b39e27624bf31311bd6a4c417911b42b7f4e8354b2a758409284328da8c61546bbaa13ac0ab63910c697823a4c4bcf76cef00e67a7c4573c7f2b17dabd0fdfacb93a9679d4e8a23c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db36bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b923725bf4adbbbe02d33ba140065e3e1cdc66f45df62ec7fad6156e418389100c17a1dd82353c650035565c7bc00d9e983b457e8c8e8400815db42975e7191dd73c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db36bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b91f9a4131e99449698ce8ce1eaa5edf794bef39d7950170d87650c3653eec76d516e08890aa848dc2cf6ebff393973a719895979a2e346a08da82cd7f791497512de546b81283d93d323202c8cc923733cabbcbd1b161d0388443c11d1282ebd00bba2f36522d59ab82ede2c4985d52a8c1af4cb45768d4d34000a3c4b4678bc90000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000110f91417ebc5fa0a82c0fc211c1ffd54bfedcb8a1eacc12001db3d3dfcf6410319855653a92b5b37bc84430dedfee92e5fa2a1627ef010cc358ffc7ca795f8ff132f24b896d0c5362ec7896ef900a2aba3d25adf53f77108f34a222c4498678236fcd7247b582bd4755c005b613b80ca2f8820cddcb43e242679713b9c095089111e3f7e1b77c40285c0545eb39b341c4a7f097d9bd852d41d534ba5324d57cc14299ad45294b6b41dddc527a1ae46013a4622388f6d3f7fbd08cb5da0b408e81b55c2439894e8561eecc4e7337a6c428414211cb9e391ff0d1e54a1dc849274066debc195b53304b7c8f3785ea52c698fab1c33036da1aadb1d57d46a57fa0b0e803f15245b8ee7e24b7a7c9b475907f23b775017e95e80844dc3591d4578e51382fb675176bbf903e404bdded09f4a79609c13f8dd0adc9bf398380d0643c01e1a563dba60b85dba030b80ae9ae90dfed627a0c3282e96dcc4f6f5795a0aea18f961d2961eace213ddef4c9fff847634c6aed28ea2b36c47e11aa8476227f606547e6644a457d54b633df37048afd98c0a7b53fe4373e2fe2654b7e11f7589303db71302220fdc36cb981571a7a39988356de91cbd34414c176a4cbfbd0b1620e9dfe79ff700f343168ec6a16ab1dfcbd35a3498546dbd3834c9a0c16f31870f4a5c550e927e552d2bdfb5ad5b579ec4d13e605ba0e8be836ec282edc0bc8c2d374dc211ef11c761695eab8bc0a9a0aab656a0122a5f78e1d299ba93419f1a22b5bf8602797964cfe223f7f39caed228cef4a518f6375ea58a12923cea8cd12e35b50d9687b4c7d820a14f2e63abb3597f2ad46eeef9d20d6372707e81089a0d1a3a23a33ac356a53f60b4d8d4635586b2e25f81d3fe22d36ae75e7cf442be2176aab83a16b5378cbd7456d7163bdaf3976424bdb7563de4371f703e5b6e3c184020a4fb3d8a714a4f626e3ea5bb356c6ef4c6747cb8aedb354a201f92f6e633935e3d12203a4564b3f7bd3e5188139552f235daee4ea1fdf45a819153416505a54c3ca90caaf0882824ecae0496d22fa11c473eb0fa671156a434544925590ce82eabb395d8486c049a6304082636414c908c415de6ca846f31620d3fe2590b88d5843256b8f16a31985616cb634b4a614bdb510b92f6e2c2d2268695cf211a435475fb6ab1e7162ed84df5693d343dec523b4069c64b9c89cd0df7fdfa6103aa258c4f5cf8008e3f972b21e33b538622309766d0a7dd0cef851a07dd74422bac1db6f1236abc4a0927a957c66dee1dec17d2890ebbec9617ce5b278162030bd0cc0e4bf690b74cccc9f4da3b379896be27c571590c67e76971b5caed42ba3cadec78445ae88b4e7beec24095bbdae8981bebc7a1b4ea4fbefe3effe7f40f03d3d397302499301ec0ff0a2f2a6171831491c3c698372840da2d0655b68ccf2f17598b444349e9adba8bb649ef188d910c0e3d0b79989f0f8604fcff06ffee02c35d2cc186cb97ee70cbab620a055322aae8a6337a853544e15a280f4a93972a0cf327b065fdc58065610095ec4a60fd601c623a664c5cbc801b45440faaac3220e40b6e3b8bd5b56e9d049c833f29339266b485253e9871760ec1a5c9b1522c4e2bbf32761299b938962a6b3e204de7e452718bd691428f31b78e05d97c3a201a60c7a9c8790d2e4b2ead49dbe70a7267da3683781a11f5f64e49c64a1b47240f99396e8262647d1ba5ebb951165380ed43913e404c2172eece648b8f431a3d732743c82f5d48ed9a893e0be8edbac1b2687ef0af6b353bf98639ede4427f3eea4050be3b1b13be6c78e3df2888e1650abab2218939e2b61702514684dca80e9d13f24d8f4cbadaa2dd0b29bc97e0bc6655051cd7ec595ba8de236553f1b606bd7b4e1dd77eb398b7f72bfd3e106249cb9737d11d912acff5585563a76e9907e123367bec5811decdc8d749c29c23b23750bfd52fb11e10c429b7d98d419a3655e9153f46b97ba2ad0a01a65b132807b0cff3264c4050421e3033d3e4307c1bfbb9289dd155b42171679d712ab8ff9c4333bbd29764c3031ef81e91eaceb23db2f9de3c0d7d640b53605e1cc84df1907e3ee914a236e7832439bad289fc5210c685bb1338e347aa2c5765e3d9ec3d3b00716a4ae009b3c2120d02fc58526d26660162bd1cb7ec1dfad6a884665218c6c67233f897f80a722d9017bbf94e093378d8b5238ab2438e658a8f45f4a8ec8f007da873d23e81eefea7862b977dbe039438a7b08638840d185421f618150dc0370e0ff389061f5fa0a8c68a2d035b3c6bc7584f79c77bf2e7abde09e7eaf2620f8aec15c3f2fc398c882675d2fca611e51b46729f1a944179a4a9ce786944c113464fc1ad1e9cde234be0b2e110c72e1ae4b98d60e56bbe865b56318796bb613352ac479fda7ebb09e50c4d1eef3a197988603d1b84e547603751085a0e57a319c692bf149ff4bd834a767e6553e22686779fc2e47b1ab89fc8aef7a5f1a87f2cd2694a385926dba9e676819aac1f3f5fa9e13189987a64e1149529c247b60d3a47e1b21a26ac1a63436377faa36900a0561ece7667859b1eeb6ad63db84a150c511a5732d26f7ec9ed8988055c98039438a7b08638840d185421f618150dc0370e0ff389061f5fa0a8c68a2d035b3c6bc7584f79c77bf2e7abde09e7eaf2620f8aec15c3f2fc398c882675d2fca611e51b46729f1a944179a4a9ce786944c113464fc1ad1e9cde234be0b2e110c72e1ae4b98d60e56bbe865b56318796bb613352ac479fda7ebb09e50c4d1eef3a197988603d1b84e547603751085a0e57a319c692bf149ff4bd834a767e6553e22686779fc2e47b1ab89fc8aef7a5f1a87f2cd2694a385926dba9e676819aac1f3f5fa9e13189987a64e1149529c247b60d3a47e1b21a26ac1a63436377faa36900a0561ece7667859b1eeb6ad63db84a150c511a5732d26f7ec9ed8988055c9836bc066bad4f192cbdf19e4a06169f22f64d1f342a06c9e1b7b20cb69f53d57911d68caa2862c78883eaee78094d9fb69b4c1aed67ae908a1a76c75ec48901252ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec08a16f39db930aa46c04d98a0ed3505cce76287f52f1f5bd01502952c6adb8cf110e76f7b02ece9c3982ecb3f70fe1da83530d64b42225be0ca1b006d5dbe60e0649f14fe91b305e9d3d81fd359391ee448e6af68430ee284c7dbeee81bd26c91a87ef68d7e5bb567fac868b158eee0225989799cc4336bf346c10bf5b624af23a613834ed46c0f20fbb2de129cd6a2a0a80d21a19174d504d9a97fc5a8b6e5909f05442c5b704f241fd71377c641d2be4ff2d19d1a65d63a743118b73a8f2233f881a04691b3abed6a4ee7d6e267383a04b7313dff32acaa8364ed8f23649331b7eb1b03b2495bedad51ec49fb3026e615d58d5d5589a3e786dc083b44e142e1a73ff6493aa3bea38ffa5a6af8a277cb45835fea8173b10f471d87a22cbbf6a36ba16c4e10a0c9299f685933c30e7beb32a3a39f602d028ee716a92ea0d9df23f881a04691b3abed6a4ee7d6e267383a04b7313dff32acaa8364ed8f23649331b7eb1b03b2495bedad51ec49fb3026e615d58d5d5589a3e786dc083b44e142e2949cd58fedd1464592a82c0a259555dbdf0ff8d00b7d2f85e6c24fc2514f30e29f6a9800d003070cdcda76110aaf9aa7d36e81b2f992f2fbc193b97964147a82fe08eb7aec94db1d8a0a61cdcd4d5001a189deb26a0b97b444cb0d94fa665d13d0fce52e8d5d063f3df4a42dc12ac3f72d87fa110c46427e42a8914083973c20000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000110710b41d3177ebea26696f874b807b7f63c97799b02175c3278e6a28729ae491e5e5ca3d6d68cc37d95be7f9ad216d6f9dfa3386728f9f6e61c9314cd2a739a38b756ec6d7a07c3c9abc26c0187e912fda4ff8ab1b94bd2928b1708549893682035414a5b1408f785a513a4101d25de8d35a1cf91967f570b494cf548b712cc0272298b3d7dbeaa10e0aa6b4e0c9a1df97f9874e6f99dc182bc4b035c6c0a30391b63e043f55a9e4dfa32dceacfd29ec1a46a74a5c060691cc4c916132d2159351698df5151ba7a4f92aab7db805f5e08ae55ce9f173d1647da725ef41a5b3402a71eb0e5d213893cebb782bc7ff542bf9f17e4d8c339426eadc4e62e6dbaa8347d387f0dc314078def1c5ceaa809a19bb56870bb9c06f60f0eaa644d8b4b3509212357deeea463d84634616b2e455c701c277b733ebb5f06c076071cbbfc7c19667bbe394a278e2c476d2fdcd51133050c72b0195114798cd82972a952603f2e522d2d3e90bda2d91629cadb8fdf5d3de408a79a5646bbbf4cb395474e13e609b11ffa9af7f5937ae0fbe962fdc6b87c1522efb571473adeda64cf8c4728db19c0421d72a90022a4ec52028dc8a65549639c675dd5bc013b46a1ebd1ef7e59217d296dcb681bb8bef0dc1fea3be8336d6c2296c26b242fbb545ffb6c76b6811e44c67e92d5adef8080670ac5417285b47ce544f191f8721149c48ce1ce3fcc1be458d64fe7a417dd51e1e4eb29a5b13005a05546dcabc2225384e6d5410e4306f85f66e3129b1925c803b3440dc51a33647a103d52647c9697712be32aa2432168de2a48c3ca413954d243b44c3ceb36bf9932ea6f618ff50b7b2a45f035e10adbcbe0d5fadc3e29fc66f172688120b8881f108dbaaacd6c0d42feab8cc73f1ded5e75ad3d41adee65fa47d01cda02b28d00b904e28dc84b0b68d2a5e3b7d821c2994e7d0db799844dee192bfe6c668efebb6b2b9c07ad45de1363eff5f1f12492fbd0b99f1bb08c37feb6cd2461d5765b957d7a71ca61101dd0ab63859c3616b1cfe0e18eb9972f25086d456b4b4979b594e0fd1954453bd7d1bf6798f0150b3c8dc9f2c8aefa5e1993d83b0751869846a068e389cc200f01f212ffe83bd41b06837f9c614ecd1ce30f5ea61ec3e8ea6f7abe63e266f32dd9ebdf9ce22f073b9912c3395ae8e1e194100b3ee4bd920fe43c65bf3331eef50a8fb536826823182d31e0993f65ab6232d5e9a5d46b4f943f7c7eb4ba5622559a3a23962a9add275455592b86188c5dd8a8dcfd52f0e1234ec03d4cdd60cb5b4865bfec14ca1135a804fc2242d1fd07eb65b582927e8d4f4621a6359b04a9b7e400d6bee5044a17c8d4ee077f90a817617fa9a674f2ac640d03bd9cd8f5e0f6d645f756ee4e6414bec47a8b355a78fe65fe9db9204c000e164111f01eda8be6f8f86ceaa380d007ba688a119fd96407f15bc478ca0ae4a50fbfa38bd6db9a2b67b1239e1e949000753b64d54528bee349d1a4eceb23f5002c8f12ebe652c81fa4823a7c7b766e0bc8332e37c8a1081d102be5fd16cb94cd41f80d36ad85bf28e75569f81300972d40cd354048941ae0095b66e149d1241b3a99d6ae68e5d677b07571fb530bec18ac9a7dbec42f785012585af2bd75836b68667ec4235fe1a57562fe205ee9db3569060a0c2d0a692932e24132ddcae677e5ecdbf472f2762e49f9966aa3efcd3ea88ff9f4bf08727c90c6edaeed8c9301d3215240eb267ff1146f86ed917d1a33f384163236e52a6fa73ee6425215d81bf12fb4c045ed696ed4c1d9ac1480142a966bc3537ae3aaa704887931bcd0b19022b2939a3c59b460ff50ebc55f4b072948471aa0c8e8ec27081d23afb4e1f554204cfe775d38c9bf33332e48c1d030053042527de7bbfc273bcad22e7692248b6a7896638194e277c29416a3c8d1fa2d4a0c59a5d418672e1ff69198450545f11210f4c39be3993587f81c59aad6d30e2f92eeba6f16a3dc63818b7f24db8de3dd01053d37a70fd28fc751cda945052b9156d0883e2e597576460c0fa250ecb176f934eb8f97229e58da9feec87b08027f069b45abae2527025d0be42b7f9ba7d4cbd85192ebdb8e4e558c9dee7f911c2fa4e08f20e99f88d061ba12dd46ac60bb78bb76eb1d29acf11dcd6c12c7de095f58e683b963a33e36c98625e01739c0cf459d0b77770438d1b6860959ae2532bc44dd584c65c32ad6554ec87b84d6f83c3f4f908fa793f680e3ebdfdd79fc0e771c8c96b90c40ae83f8814acff3d4fb2f4155d01b0f80d5f3c097bbff91163188e3736946f3bf517c077eb5300c2b271757a63931e99ac339705544006eeb08538ebef19d3d436893da86760fc328c5a5adb1073a546894959209abfdd56d37ac71410e62c2bc976c257989f03cd75ca0eb4b0212a4b304979ee354022a9429a1c9bab81232510ae344a04e4ecfcbdc3c64752423a60ae6ebda305bf52b21165e364547edcdaef51cbb5fb1b13034460a3486e5295310b24156bca40ad4e01028f0a5985afb9536705721878a0efae65a2b5598cb52e3b713b02acbc9d7a22fd70f5a67a5046ac98fa8de7875f1053bec6da67081a637e21980c23436285f0e771c8c96b90c40ae83f8814acff3d4fb2f4155d01b0f80d5f3c097bbff91163188e3736946f3bf517c077eb5300c2b271757a63931e99ac339705544006eeb08538ebef19d3d436893da86760fc328c5a5adb1073a546894959209abfdd56d37ac71410e62c2bc976c257989f03cd75ca0eb4b0212a4b304979ee354022a9429a1c9bab81232510ae344a04e4ecfcbdc3c64752423a60ae6ebda305bf52b21165e364547edcdaef51cbb5fb1b13034460a3486e5295310b24156bca40ad4e01028f0a5985afb9536705721878a0efae65a2b5598cb52e3b713b02acbc9d7a22fd70f5a67a5046ac98fa8de7875f1053bec6da67081a637e21980c23436285f02137e04dacf9afbc347f2bf066d88f624070fedb8de8410940ab528ab8fc49c0427665ed95b17a0576af512ebc575a225cca770747fc11a85e3405b33ad6bb0022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c1d4a164b68075b693e2db439bd86b92efd5b5b35359cf24326474ea04c03f18c3b34304bda9f35e9ae3a465520952b043317ea89000a964bfcae2b94c9360dc91646089be80432ccfdda62c8eec2e8da595ac4c7875b4fe6b063e1a56fdaff6120afdf35e898ca39b550f3d9fbcb59cd2f7006a49fe1a6e7cdb576ce47a9bc4d08c3125accc5382298d1a2f142f6d8ce841ad42a618144605589dad18937546626c27098218a30c011033a0ba7b53d15c7aad1d58e7f50088459cf9ec915a2d80b6596dce665c4ad8cbc22e9703f3cbbe60e0082df02448ca0a85a63a0c49c5e2de5896202cb8410016aef80f8a46fc1e77d4ccf2768976871259c95e61722e83bbfc9e5e13ddb28272a15d757c582a8298de1cb5c5882224140fbdbd5c059ec3718005859ff8e8e357b954a3dde5aaa4eeafe4f0f53a30b91c021b78a2397e60b6596dce665c4ad8cbc22e9703f3cbbe60e0082df02448ca0a85a63a0c49c5e2de5896202cb8410016aef80f8a46fc1e77d4ccf2768976871259c95e61722e8322204d59cb6ddbc607a8f33211f7e32a5ad37bd025bd16bc602b2a9187f278c04ada1a618404a7f8ef455a4ae015b691552321b7e85bfc2dcbcc69d6c2ea32e1a3aa5189f130745a328b2fd2275f773ace9083d962ad8ab97ce233abebe7bff351347fa588ab24938ae2c698ac6c65b1c430e5d171147f694b99f53db294e0f000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012d190ba5382f6c31778815364522878224af4161e59587610263c747f7fd22e9019df7293d86a46a9264394f565f5daca9ba9b71f72bef5bde9835ef9e5493f03f499838a660f8bfa5b754436e124ec6bbff3f4ea4faf897a26f2a3e7a8341370f53f3b7df9db111a06d0629ea0903e971e8f05ba76838550a4e630ea9ce80021512f8cf9db84d3dac121ab81241c1e89d400f43d37f1fff62741238cee89f6627b96a39d5ac2857d0137654c0927241959a3c49aac98813b66cb0871b3cf9ed1756c0456371aaa19faa6b2c4145e5cfd2b06f23eb4a4377d5162165e86db16927b72e57645ee9fc07f35979967c5c553f443f00833d5013081fc400d03a20da03b94034b93f551f6d63c77c9b34e6953aeb90b3adce0fc70db5ed94dd9cb33e11db4fbe018e220f8bc8cfc43d91387aafeba8d04123dd0c2684e5fe981912fe3979d00a5028f20106176c8bfe3768e282061588c9c28ab0e3576b2f1e6bfef60699fb87f635069e39b74702fa17b2afe52b59e8a0ec022662eb1c521b0a2e0a024c6407807018ffe6d7c504bd39fdd28053a9a1d2830f4a5d1780423638b5980305451768b2cb1ed83ef987331dadc85752bfa41f6a98601da057b34c2daa5d0bd01fb1e6028d1cba542432c0d7c1db0c18e09488f29fa5c943a820a2224aae14446321293e8b059e85cc7369635e0476ce54ff670e09a4d5cf03bad67ab7431b031bb9a38b34a04d462b45801967f78893de715d00fe35f72717e63e7df4231f5852e3f49676f5ef3448e458b96945e3ccd7489bc45d61f5d28571d88cd8620e467bc2002fc5173381483533d2039445872ce4c305f4caf221d4853e94a8590d6200acfd3630a96bde871e12cff4318153054afacf68b3e4972bbade3e6dbf1c64a1a762721cd2187580eccdad6197c8ca3cfabd35590be48671db8e2429eb28c92bffad1a947f3d0a5e4143ec1daa0bef4b826b5f5f89b23273f431c3ad582ed6df01d9c106cb987ab9f77e8734ee9dcabfdf5828d04777fd2a21d02b999a3053bdee9e38389a62c631c803379ea095486b4bfcde182583f3d51c552b5f0d2d1eb9e713dfd7ac2f2325a0cb80d1fc9b4fd4f2a7912bf54b035ad75e7e8603239956e1a43bad45c34b5358c2b9b05469651f0a604e7ddec26cf76834e29c5a2dcb6cb14e570ef6fb373af55de656c1a5c27acf5602b4a0d8da0c1aa6404a380a87ce3683bf8473f2eb587f3b7d775bc82afe4334d93fe583d8c13a2abcfbe7196b50383f43afe50b72f7103c1cf1ba31e3178e6b05f13db06bb27db2ee23470b7f720a36b7907a627016a7a08c6ad7f20968a0c0800138f619004c73e5163808c0b6b3250178abda63833769c70c608b9b6c89cfc1d3a115fb17b0212d60561f4dce3ea1059604d7ad61f766815ea8b528e181838f6d9c9329f980718d3a4405e056b4864cbb1993ba900072aafda82edef208b391c8be318e86d5cc4dbcc921686c92f4fecc7d748db702827c0df00def8d67c4f5d249fab3bf45a76ef2700935d0b476fd0fcf7d1134015c5a27168a1edfd11b9cee2a4bb92939deb8cabf0c9a7e42e462d5fe34a56f3a7b42953fd08d0561f0cc43dac167ab0d35f397e5120c59f6a59e257d1e20b1732c3267d4c67d0aed60eb117b5598b9d75a972814053f7bb6901504cde120132749bfa8fdfcf70b39283cdcb001ee1f3a65ed30810f74329b4d5325dfb73890ff58581c798e096c11be2c93ea297f247390e004a43a63f089841ff0d54ffbca7481451fe2b7e8fb01d3c3aeb827c871ffbe3482b915ac91e7c59ea0f5281005a2fe4295af43de58e5c767b346c60ba786b46b362f069d7aa826f5194f6a21b49116fa425f8dc4da06df2f922c28c0c442b34cd49023d5f788866649ef4be8031c0d1aaae2643d18467026a2daae5c6c317f71b633057e9bdd8aa14d5d5ae83586607880b97a41598eb06e8ccf9656d60886f2dc3e20a9ea1781f8e67dc84e15f82690bf9dca3fe613cd25d949e7331ede799fa1910d3a1c991e86858859bedd2f106139ed1204d31762f5f79815ce23aa22a2a09a00f6bed4653ed4182724ecf083e647df363f9a27b425e2c09c280492a067a629365678c8b59610bfdb97a168107aa69b9e5aa53176fc22f09292fde1354a53e6201ce8617718e9d1d43c8c2cdde6472f628a18b6d71b7db08fc1db134b0e10870934a9536e82efa526fcb10a2a27da202f5d55a966f804776523defed5c6796136bdcc7b0f28b5df31744fb72326829dff98203a45f8ebf0e047f48898cdb6db09423384f0d74a20ce8bb048dcd97d6222ae78c1c3540d2ab8e53c646732492611b4fe674bcb8d5bf7458e93afc08d1574de3d3338a8b745fcb302f6fc0492432e4b0198b43472a408ba716c503f72eaad685bc8d0a441d59c7a2df603fb6dbe1888f8047af9c2cbd45bc8e26ec2c16b2610990411fe9b425651dde5ec16db4e277707fb85063d342ba4371d913d3e94fc35fff7f74e5dd942db530713e924b33aacd81666e0cdfb25caec6c29cdc7179c0c641850ac0f30166c24909c724885055327e9991f3204da351393d63238e8863a34e3b8a0e9eb82c10c5c638db77c36bdcc7b0f28b5df31744fb72326829dff98203a45f8ebf0e047f48898cdb6db09423384f0d74a20ce8bb048dcd97d6222ae78c1c3540d2ab8e53c646732492611b4fe674bcb8d5bf7458e93afc08d1574de3d3338a8b745fcb302f6fc0492432e4b0198b43472a408ba716c503f72eaad685bc8d0a441d59c7a2df603fb6dbe1888f8047af9c2cbd45bc8e26ec2c16b2610990411fe9b425651dde5ec16db4e277707fb85063d342ba4371d913d3e94fc35fff7f74e5dd942db530713e924b33aacd81666e0cdfb25caec6c29cdc7179c0c641850ac0f30166c24909c724885055327e9991f3204da351393d63238e8863a34e3b8a0e9eb82c10c5c638db77c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000104f76403bf60615a60b90f6473eb481cf6da2c22d4594ce4afdbee7f237f41e0000000000000000000000000000000000000000000000000000000000000000122c5f554f55e1f6dec782a0be0543f4c7b71f8485a2e10391db44ebd31833ff03e92aa0756591803b616ea271a70651e7d44a52672d5fbca8fdd25dbe60153f914803586fe72a309548596d30bfffcdbf511f7a83d11433501fad6f0a0112fa819268ca41e96598a5bf44df952f5a40e60fed7c75dd31635181d04c0a385e58b1e5cce4deff9a1062fd3254d52043a0050968e019bd4f2913c411c1d46c3acd924d9a756ad18f420b8cfb08ebb78d0e0f005efa04ce9938df69d42917677a1cf2ba2411fe33dfa0cd3dacc7bb65f403845f5298a058be1088e664d8e35e28b3e3740cf01dd71ce350f17c67f6ab0118524b0d39877f3102f9eaa4bdd83b9e86c31b63e639e7c63bdb2566fb4bf6c4a4d47856a6e1e40b69f076a2987733f023538aa5d8a8c8ffcc90210d317d7a218f822ab186b05d3e754a2972260577fd5cb022d1e12632fcf13577760615c9228d54f95239d2e6af4e022a0f0e63c95f1b33449b39b4db203e12d02b250d4a37c45376d0b3cef7b238f444ca914db382f3332a00ff0c1f2a9994947ed8b953bd689d92d0dd0c8167669fd89bd0e4419e9660f4d3df90294087010c0bbc7ddb44465a3855066139de4a4ba5bb9f6e4b1f0722f6f0aac8b0fd732b645605b224be9b74aef4263407633737bedca382812e0b5301794149966b4642a1cadc30ecb49a523fb126470cf825604e33b538d47035815a820764e4778b26e0ac7eb4f30eed2b7745eaba300e232fdf38ab089544ff320970bc14627532c8bfe08072b11cba9f8ec7d317392b48bdf1ff843080787b82393fc84ac0bb9c0edb4d1a35957e02ada3722c56996742824f523449b55a7fa2df364a9b439f23a9070f858f2b427f71d641687063294d36197caf4e338193d38e29f3b3655597f9b6ceb034d24933eaa3a4255054f66a097d66d85e6d8af3839d07fbf7506aeff02e0fa8c479d035c0142326eaeb3c73b021978541d25353201d937ca6e8181422a95b3a03cbf404a03063240ebbbe9b912f21b3cf33c426612a65c7ac483cf32160294705ba461aa93043cb3a1d7ebb46b6694030146e5162d21637a983cf8fc40b47ae3d5cd2923950bb6dcb33134d388e47c4305e4f87f0f9a94cea1ab2c7aaca768c247ce4733c2090fc2878f79c5890e031758ff7832312d89b3c3a2f8ab20a41d59b6238a028c1b05d60387327db2d3cdc4b9f244ac051b58ac719787c9cfa4b09dacb90b750cb83283142507de06fab8f9282b5f690d7a073716774f9df7932c400369e53f19c761313c964714ef6c0dfca05e4ac335a7ab178202e6bbd3cfb19d644630b8569075c194874de5437a5cda3ec936812cd9efcf51a8443f80889d4ffff667d40acc81eadb064e6daa86d645283ae727215d571d6a754dff8a55feae655b6a5f23e40494c012359650fab34a4c1423573862a19944318981e595a81f7ac780e95422f879aeb14a506320057c5b0b25692e76ee78ce60e4a9e195c859ac5c4665aaba808a51d660c3bb574521a6fd29da2fb4bb451a4cef3393a7280e63deda913b28199025ac307be0695922dc3a83761f69768a3499de67274e501cc7bdb52254099a24420b67dc27a58158b87506ea1f69768a3499de67274e501cc7bdb52254099a24420b67dc27a58158b87506ea0000000000000000000000000000000000000000000000000000000000000000278f18e7a77366cd5d7abc1595ce47d9c798d9da33dbcc2c04076d3dca57c5310f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5f0f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5f06f88f71dc0d453484c90c325d8bfcfbf95bdb026c9a3aec927fbda982cccc1906f88f71dc0d453484c90c325d8bfcfbf95bdb026c9a3aec927fbda982cccc1936ad4ab6f65a346818703440c16ad78d3483f49292466b6872e916cc5f074f8e2e87a8598380ac01e243c847f35a44d5c0f4b4dca076071896872ae74d2491481e3c639e9dcd9b3575eaf05657391f66d9d63570bcd53e78ddc3531d295f14bc1e3c639e9dcd9b3575eaf05657391f66d9d63570bcd53e78ddc3531d295f14bc00000000000000000000000000000000000000000000000000000000000000000bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb0bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb1663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac53a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f216211fa42639b21ecaf1ed4e983217b62a6709fcf49a5422b064a6309c8e2c557662260f666d094d1a6403be2dc098fb8f586eb4ad8166745ba69d9a8268d67ce95224688bf433df1ae089e293b28e241cab5fcd9cd6a27caada7343d9684dde77a20de236c8d5a6a0e502a2e3ffe172e2714300642e4b9f8986569c7538a0b81fa33ee9d35863311447a1f0d41296828ef14e845415c2e1024c8b39e27624bf3130d97ba61a8a2316eb79f39a161619e8bcb7a52eef1358e006dba79ce51baa33c10c697823a4c4bcf76cef00e67a7c4573c7f2b17dabd0fdfacb93a9679d4e8a211bd6a4c417911b42b7f4e8354b2a758409284328da8c61546bbaa13ac0ab63936bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b93c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db17a1dd82353c650035565c7bc00d9e983b457e8c8e8400815db42975e7191dd723725bf4adbbbe02d33ba140065e3e1cdc66f45df62ec7fad6156e418389100c36bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b93c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db16e08890aa848dc2cf6ebff393973a719895979a2e346a08da82cd7f791497511f9a4131e99449698ce8ce1eaa5edf794bef39d7950170d87650c3653eec76d50bba2f36522d59ab82ede2c4985d52a8c1af4cb45768d4d34000a3c4b4678bc92de546b81283d93d323202c8cc923733cabbcbd1b161d0388443c11d1282ebd00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000119855653a92b5b37bc84430dedfee92e5fa2a1627ef010cc358ffc7ca795f8ff10f91417ebc5fa0a82c0fc211c1ffd54bfedcb8a1eacc12001db3d3dfcf6410336fcd7247b582bd4755c005b613b80ca2f8820cddcb43e242679713b9c095089132f24b896d0c5362ec7896ef900a2aba3d25adf53f77108f34a222c4498678214299ad45294b6b41dddc527a1ae46013a4622388f6d3f7fbd08cb5da0b408e8111e3f7e1b77c40285c0545eb39b341c4a7f097d9bd852d41d534ba5324d57cc066debc195b53304b7c8f3785ea52c698fab1c33036da1aadb1d57d46a57fa0b1b55c2439894e8561eecc4e7337a6c428414211cb9e391ff0d1e54a1dc8492741382fb675176bbf903e404bdded09f4a79609c13f8dd0adc9bf398380d0643c00e803f15245b8ee7e24b7a7c9b475907f23b775017e95e80844dc3591d4578e518f961d2961eace213ddef4c9fff847634c6aed28ea2b36c47e11aa8476227f61e1a563dba60b85dba030b80ae9ae90dfed627a0c3282e96dcc4f6f5795a0aea303db71302220fdc36cb981571a7a39988356de91cbd34414c176a4cbfbd0b1606547e6644a457d54b633df37048afd98c0a7b53fe4373e2fe2654b7e11f75890f4a5c550e927e552d2bdfb5ad5b579ec4d13e605ba0e8be836ec282edc0bc8c20e9dfe79ff700f343168ec6a16ab1dfcbd35a3498546dbd3834c9a0c16f318722b5bf8602797964cfe223f7f39caed228cef4a518f6375ea58a12923cea8cd12d374dc211ef11c761695eab8bc0a9a0aab656a0122a5f78e1d299ba93419f1a0d1a3a23a33ac356a53f60b4d8d4635586b2e25f81d3fe22d36ae75e7cf442be2e35b50d9687b4c7d820a14f2e63abb3597f2ad46eeef9d20d6372707e81089a184020a4fb3d8a714a4f626e3ea5bb356c6ef4c6747cb8aedb354a201f92f6e62176aab83a16b5378cbd7456d7163bdaf3976424bdb7563de4371f703e5b6e3c05a54c3ca90caaf0882824ecae0496d22fa11c473eb0fa671156a4345449255933935e3d12203a4564b3f7bd3e5188139552f235daee4ea1fdf45a81915341650b88d5843256b8f16a31985616cb634b4a614bdb510b92f6e2c2d2268695cf210ce82eabb395d8486c049a6304082636414c908c415de6ca846f31620d3fe25903aa258c4f5cf8008e3f972b21e33b538622309766d0a7dd0cef851a07dd74421a435475fb6ab1e7162ed84df5693d343dec523b4069c64b9c89cd0df7fdfa610bd0cc0e4bf690b74cccc9f4da3b379896be27c571590c67e76971b5caed42ba2bac1db6f1236abc4a0927a957c66dee1dec17d2890ebbec9617ce5b2781620303d3d397302499301ec0ff0a2f2a6171831491c3c698372840da2d0655b68ccf3cadec78445ae88b4e7beec24095bbdae8981bebc7a1b4ea4fbefe3effe7f40f02c35d2cc186cb97ee70cbab620a055322aae8a6337a853544e15a280f4a93972f17598b444349e9adba8bb649ef188d910c0e3d0b79989f0f8604fcff06ffee3220e40b6e3b8bd5b56e9d049c833f29339266b485253e9871760ec1a5c9b1522a0cf327b065fdc58065610095ec4a60fd601c623a664c5cbc801b45440faaac201a60c7a9c8790d2e4b2ead49dbe70a7267da3683781a11f5f64e49c64a1b472c4e2bbf32761299b938962a6b3e204de7e452718bd691428f31b78e05d97c3a3d732743c82f5d48ed9a893e0be8edbac1b2687ef0af6b353bf98639ede4427f240f99396e8262647d1ba5ebb951165380ed43913e404c2172eece648b8f431a0e9d13f24d8f4cbadaa2dd0b29bc97e0bc6655051cd7ec595ba8de236553f1b63eea4050be3b1b13be6c78e3df2888e1650abab2218939e2b61702514684dca807e123367bec5811decdc8d749c29c23b23750bfd52fb11e10c429b7d98d419a06bd7b4e1dd77eb398b7f72bfd3e106249cb9737d11d912acff5585563a76e991bfbb9289dd155b42171679d712ab8ff9c4333bbd29764c3031ef81e91eaceb23655e9153f46b97ba2ad0a01a65b132807b0cff3264c4050421e3033d3e4307c10c685bb1338e347aa2c5765e3d9ec3d3b00716a4ae009b3c2120d02fc58526d3db2f9de3c0d7d640b53605e1cc84df1907e3ee914a236e7832439bad289fc523378d8b5238ab2438e658a8f45f4a8ec8f007da873d23e81eefea7862b977dbe26660162bd1cb7ec1dfad6a884665218c6c67233f897f80a722d9017bbf94e0909423384f0d74a20ce8bb048dcd97d6222ae78c1c3540d2ab8e53c646732492636bdcc7b0f28b5df31744fb72326829dff98203a45f8ebf0e047f48898cdb6db2e4b0198b43472a408ba716c503f72eaad685bc8d0a441d59c7a2df603fb6dbe11b4fe674bcb8d5bf7458e93afc08d1574de3d3338a8b745fcb302f6fc049243277707fb85063d342ba4371d913d3e94fc35fff7f74e5dd942db530713e924b31888f8047af9c2cbd45bc8e26ec2c16b2610990411fe9b425651dde5ec16db4e055327e9991f3204da351393d63238e8863a34e3b8a0e9eb82c10c5c638db77c3aacd81666e0cdfb25caec6c29cdc7179c0c641850ac0f30166c24909c72488509423384f0d74a20ce8bb048dcd97d6222ae78c1c3540d2ab8e53c646732492636bdcc7b0f28b5df31744fb72326829dff98203a45f8ebf0e047f48898cdb6db2e4b0198b43472a408ba716c503f72eaad685bc8d0a441d59c7a2df603fb6dbe11b4fe674bcb8d5bf7458e93afc08d1574de3d3338a8b745fcb302f6fc049243277707fb85063d342ba4371d913d3e94fc35fff7f74e5dd942db530713e924b31888f8047af9c2cbd45bc8e26ec2c16b2610990411fe9b425651dde5ec16db4e055327e9991f3204da351393d63238e8863a34e3b8a0e9eb82c10c5c638db77c3aacd81666e0cdfb25caec6c29cdc7179c0c641850ac0f30166c24909c724885000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000104f76403bf60615a60b90f6473eb481cf6da2c22d4594ce4afdbee7f237f41e03e92aa0756591803b616ea271a70651e7d44a52672d5fbca8fdd25dbe60153f922c5f554f55e1f6dec782a0be0543f4c7b71f8485a2e10391db44ebd31833ff019268ca41e96598a5bf44df952f5a40e60fed7c75dd31635181d04c0a385e58b14803586fe72a309548596d30bfffcdbf511f7a83d11433501fad6f0a0112fa824d9a756ad18f420b8cfb08ebb78d0e0f005efa04ce9938df69d42917677a1cf1e5cce4deff9a1062fd3254d52043a0050968e019bd4f2913c411c1d46c3acd93740cf01dd71ce350f17c67f6ab0118524b0d39877f3102f9eaa4bdd83b9e86c2ba2411fe33dfa0cd3dacc7bb65f403845f5298a058be1088e664d8e35e28b3e38aa5d8a8c8ffcc90210d317d7a218f822ab186b05d3e754a2972260577fd5cb31b63e639e7c63bdb2566fb4bf6c4a4d47856a6e1e40b69f076a2987733f02353449b39b4db203e12d02b250d4a37c45376d0b3cef7b238f444ca914db382f33022d1e12632fcf13577760615c9228d54f95239d2e6af4e022a0f0e63c95f1b30f4d3df90294087010c0bbc7ddb44465a3855066139de4a4ba5bb9f6e4b1f07232a00ff0c1f2a9994947ed8b953bd689d92d0dd0c8167669fd89bd0e4419e966301794149966b4642a1cadc30ecb49a523fb126470cf825604e33b538d4703582f6f0aac8b0fd732b645605b224be9b74aef4263407633737bedca382812e0b520970bc14627532c8bfe08072b11cba9f8ec7d317392b48bdf1ff843080787b815a820764e4778b26e0ac7eb4f30eed2b7745eaba300e232fdf38ab089544ff32df364a9b439f23a9070f858f2b427f71d641687063294d36197caf4e338193d2393fc84ac0bb9c0edb4d1a35957e02ada3722c56996742824f523449b55a7fa39d07fbf7506aeff02e0fa8c479d035c0142326eaeb3c73b021978541d25353238e29f3b3655597f9b6ceb034d24933eaa3a4255054f66a097d66d85e6d8af3812a65c7ac483cf32160294705ba461aa93043cb3a1d7ebb46b6694030146e51601d937ca6e8181422a95b3a03cbf404a03063240ebbbe9b912f21b3cf33c42660f9a94cea1ab2c7aaca768c247ce4733c2090fc2878f79c5890e031758ff78322d21637a983cf8fc40b47ae3d5cd2923950bb6dcb33134d388e47c4305e4f87f051b58ac719787c9cfa4b09dacb90b750cb83283142507de06fab8f9282b5f69312d89b3c3a2f8ab20a41d59b6238a028c1b05d60387327db2d3cdc4b9f244ac35a7ab178202e6bbd3cfb19d644630b8569075c194874de5437a5cda3ec936810d7a073716774f9df7932c400369e53f19c761313c964714ef6c0dfca05e4ac3215d571d6a754dff8a55feae655b6a5f23e40494c012359650fab34a4c1423572cd9efcf51a8443f80889d4ffff667d40acc81eadb064e6daa86d645283ae7272e76ee78ce60e4a9e195c859ac5c4665aaba808a51d660c3bb574521a6fd29da3862a19944318981e595a81f7ac780e95422f879aeb14a506320057c5b0b25691f69768a3499de67274e501cc7bdb52254099a24420b67dc27a58158b87506ea2fb4bb451a4cef3393a7280e63deda913b28199025ac307be0695922dc3a837600000000000000000000000000000000000000000000000000000000000000001f69768a3499de67274e501cc7bdb52254099a24420b67dc27a58158b87506ea0f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5f278f18e7a77366cd5d7abc1595ce47d9c798d9da33dbcc2c04076d3dca57c53106f88f71dc0d453484c90c325d8bfcfbf95bdb026c9a3aec927fbda982cccc190f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5f36ad4ab6f65a346818703440c16ad78d3483f49292466b6872e916cc5f074f8e06f88f71dc0d453484c90c325d8bfcfbf95bdb026c9a3aec927fbda982cccc191e3c639e9dcd9b3575eaf05657391f66d9d63570bcd53e78ddc3531d295f14bc2e87a8598380ac01e243c847f35a44d5c0f4b4dca076071896872ae74d24914800000000000000000000000000000000000000000000000000000000000000001e3c639e9dcd9b3575eaf05657391f66d9d63570bcd53e78ddc3531d295f14bc1109ad4c5183f69681888cf1ac9c73233ae4e3bd5ca9ad8e34b81c1a117946272ef652b3ae7c09697e77730e53638cdce761b53eaca34b8d647514d2ee86b9da1530627d9793d0f087aac0b85f0e3fb00431d9b6c6036aab6e6b5b95575e5ec22acf9d82686c2f0f78553f47a0f1c0501e14bf4543498e702ac1d557a8a1a13f29f1ec73f5e314b2a655c399db473e6ff2b2a795d4c41c3d8eeb98fdb4d7d9c9160e138c0a1ceb4d59aa3c6624b8c1902f93f1663488dcde0a4197ef4b28263811b99e43cd6f677d3facd2014864382f56a97af90beda1e0ff126a2d883740ea2e4661bc32909882c0532dfeb79bc7d0cb9d1e02fd5f573a9a1ac6bf77c8bf171109ad4c5183f69681888cf1ac9c73233ae4e3bd5ca9ad8e34b81c1a117946272ef652b3ae7c09697e77730e53638cdce761b53eaca34b8d647514d2ee86b9da1530627d9793d0f087aac0b85f0e3fb00431d9b6c6036aab6e6b5b95575e5ec22acf9d82686c2f0f78553f47a0f1c0501e14bf4543498e702ac1d557a8a1a13f29f1ec73f5e314b2a655c399db473e6ff2b2a795d4c41c3d8eeb98fdb4d7d9c9160e138c0a1ceb4d59aa3c6624b8c1902f93f1663488dcde0a4197ef4b28263811b99e43cd6f677d3facd2014864382f56a97af90beda1e0ff126a2d883740ea2e4661bc32909882c0532dfeb79bc7d0cb9d1e02fd5f573a9a1ac6bf77c8bf17063701d30cbb53d7978d008cd3615854317feab4f9fde2db6584c6b4ea9b95e5068b7cb70c4e968fe90a321a45ecb6c221e359af3f511fa60b4bca61ced1e0ae125c534548436e43bf17fe0c04c54749cf0b77aa2d2eed5e1e60a2d2e8abc0510461dda8d89f9244340ca170b871686ead72c0f6aeea72a59dcc85f5bf2f6861174fd3cd0a6329e80675e8c922f8f31f9328a293d0aba8eaa2afd97ed729e45e3201e461c6d62e2c900795707feed522eea9853c0e3de460c22ce004ea67351e3f90f3f11f8b2e07330436013cf84bb954ecb40fb809c260002f80c1bcc27c291463993a4353cb15f57f77eaafd1217583e282d601afc8cbf2ed581b73efec2e3a35e6bcff933d179e2252ed0b31a170efac349225b3a7a2b7b0da78c0a16c4d2c1db207912d78968d1fb9253fb8b72cd707da6a59024affbbec11e0b07b50f514d9d33a6aa19a6ca282dc3e6b99781ec735554b302236e9caef5e6ffab81e5c13ad242b4c191f61e117fa186ffa0f43c527a31d3468c486e09ef8634eb4f16a276caae7ab013de4a95b016727d9606221bb369ce22028e21547c7652cb8a9cc3512a5a01b11d72be2e92c7501a1e0cf52f07e561b1166cff014e09571feb6f314d9d33a6aa19a6ca282dc3e6b99781ec735554b302236e9caef5e6ffab81e5c13ad242b4c191f61e117fa186ffa0f43c527a31d3468c486e09ef8634eb4f16a37fd4d9c0c09272e09dac7907aee6e40a0533ae3648ff919128189d40b1782de350a8a0c8137e5d2c487873d8c24be763ca1bc1f175a9ca9d17057a4697cbe7b39c6a1eccd6e7524bbc21130f4d7adac6cfe8ae825234d5559e372c0769432dd3c92edea910beff0a91dbbd6b523474ccf81faee2c63dc9d55bdf74ebf9127f7000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011c635a31419e8ee535c67cb18a30e056bf9d7d5bbc2ec77dd73bdf33a4396e9e3e834d8bd2bbb8fac2808a6263115fda804b06ac6eb51a377e0b7c7687e7647e175d9063bea1f224138af92b3cf420c3ba452cafab4095d20c75a19924e4411838d886a78d0e911d093f67752ee9c63269a66a17d5f4847bb38f7ce24319e8181c5339e8429116503ece7f9694066a289c34f04305e6873f3a912fb9ce89f6142dcb6577aacb8423df3e8d9706e6963ea80f6b376f01aab1c4ebbb4e7d7854860c5ce4290ea4c70357776c54f1abcf2ac05cff47968d842623d982dc386712fa0a05692590e81d7a1199f5c8f82fdca3a963d668e3f081be9692f86dc4e141ef02594ab30b692c2728cd3ef2f454b2b359f540ae29463292fc2f214e5c878ba736e67db2f02e04451f1ef3c6222d9de573cf774149b548a4b6f8dcfaadddc8c91de819500cdbe404882c2bb84a87fc383c11a04c5822f6679c0239982e08e92e3aa800397243ebbf6ba21821b352f09c9db3bf0970049b110aaae9901767ef1235626a189b74a81ce5494421d946f2498497d395e25328a17df5b432335ebed41dc92499408c71b903aef31edfe02f9a09526eac536f097c22bf1daf57c5237237bcb0c358460fe23f77e9055d6cddc87c9f01508c1a7d56072afd2db02331c43f1bef2a00f21119a8907a94f01ae68c68fc86e942782164e45bedcff3058d0f33be7264706c8b0a7927abfbc7340e8ff026e6a1516686e85bf2b7e7bee8fec1179b1a0c5c649351b644d53967beb36d78fc5eee55a7f8dfc0e54759c940dbed30745f57d80351d9256943d44ae92eefd1938653c55cd6003d1e7134c6fc5bce0573e264dd1fcba8b4edfcb4ec9c0b30ba8503a98b3ccdccc15b6d0337d34a0725081fde68a868a20e214ca2608d8b733a42debda35c2d81d151ffb569b0eb9f330bb5ebb59957cb6dcca0400c5b8592877aaee1d683082e8b446f83bfe400fd00286cf880bd6b33f58342b9da51a6b805191d8e9fe1e984627d09ec6bf6ba5d2bcf96f7c2acab8b191b7656b908df37b89b84f76e40d5b0a50bcb6e08f3cd4e10725f71833c91dd65904087d5d703d860bc5f22d9a17a40a8d4d7574e3c314212656494c6d49af5bf148ebc39110b546e8b9812f37984fdc62dd371e88a820d0d3821f33321263c182b31cd9d853c851f9d2b1f3b0a2be18efa6071d38dd3852c1fda7275acc456b0f9d2f3b633dbae0cbd00e94a41b6c5e5ddba6079baa7c53b53869bbeabc713a69360ebd48147b7570ec8e8e0add47e1955688e9425f4451107077b22c1ddce6b443317fecf21557833e0460f860182be16ffd2a7598dbe278adfa93585e0ccba19eb22a9b69b372dc76a512b12dbaa690e132d8d04767b05cc2d62b52a15d273446d211007703913d208a6933b922d93eb9ae968219b0d3069263667acc6fabd52cb1e3a468962606d3fa3adc16293ab710fd16fdd32b70b096c0d261d23205c9c5fe0dea0dac7b192f57eec47bac9ac8de00e45346eb003e23eb47fbff38d46a1696cfe2ec73f22636fbef27dd883d855f12cf8a9df9c3eb249a02dc55ed9aa60f71bf55ee4601e8ab9ca35ca412bebc089e36c5890091339c2ac300f4d4a53a9da129e5466599cda5cf7a4bc650f7aa1584b70fcbdfb0364ede3505c2976485f5edb9fc0ae8ae6fb89a7868976ce3ab7ee467c9a98bb219cf51bc0072c8432cf59d3925efb710c7e9d441cd5a27d42c478b858b3d19125e465182209658401df2804d51acdc351095cbd3976ad46fce0d367a32306983cc694dd8b3c36512a0bebf5f1e4ed0dcc09c024b3ddd332736d879a07bc81a6021c15d93654e41fe8842798da6198317726b3590e687320f5cb2c84d76ae5ed087638babde95df1d652fb849d6cd2058e876c5e3eeb15008cec33d75673df29380933a19b5408ce75339cf61a89bf498427b6dae6594eb7cae01fb88f87275302c05a00499d79ff065c89115c5412a390ba30e4992fe3520a5dd365b6428f3308a92c7d0688cbc26b2cf4d3b8d3b409dc85e4229fe3d8afaf0f9d510503951b3d1331dfd73730263ee55917a463ef65bd8ed613921438412e6f998b2298e45f16a9220abe0c53c0d1b375d2c5a181829e70edadcd210feaaca57b946434d2f2135e3ad6537866d85f40e6f638b84fdaa597d3d42fa00de76417cd7a274f52c112cca25736b43ce66cb381e50a7412e7c061f6f3ad20caed25d7a52324a646a818a62107e04b5f9b19f1ae1f7823a61b01ced64411dfefbd3a1d74748adefb682759def81fb4a064e60e51e087dc59e52077c2b7f76d095e5f0fbc78752104993b3ea5276178de0781b8669d58b23e86e6c396585012b59689661559b65ae90704c15ad89e8721f87e479962a74dc1793b8302a3b93a43850fc71b9349a516fa283939c4e75c5625889a0112bb7b38a1f8b78bc96b29a7824a49a70c8fc68d1f17c6c63b18a3a9da7765feed4484c75e298f0d329e2351994ee389e0703972e2091e20d884cdaebbab02055da9681b2974c1effafbe95a38a7e8b077cee0c19836e1df277b32514454fdfaa25697e4d6ad84a9010d639ee2f1448075311f3e6918a62107e04b5f9b19f1ae1f7823a61b01ced64411dfefbd3a1d74748adefb682759def81fb4a064e60e51e087dc59e52077c2b7f76d095e5f0fbc78752104993b3ea5276178de0781b8669d58b23e86e6c396585012b59689661559b65ae90704c15ad89e8721f87e479962a74dc1793b8302a3b93a43850fc71b9349a516fa283939c4e75c5625889a0112bb7b38a1f8b78bc96b29a7824a49a70c8fc68d1f17c6c63b18a3a9da7765feed4484c75e298f0d329e2351994ee389e0703972e2091e20d884cdaebbab02055da9681b2974c1effafbe95a38a7e8b077cee0c19836e1df277b32514454fdfaa25697e4d6ad84a9010d639ee2f1448075311f3e690a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac629bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c06b8d7221f316ccd211c30eca2885f3786348b037a8ee4b5e05159fa94c46c3c1ec72c0c20573b5141e5d40e17d7293f3bb25cd5f92b26d68aa789660ac49eba00120ee4967571f55c23da6ff0262095069566c72741b0cac7d213ce1f205c2c2ac7dc6372c289c0e0fd0bf2af4eb26fe87da6d58098575c173b5f3988bc286d326d69a221d8f6439dc6ab6c5f5980251f0dc37465f72fe842106e1ebc2d034a15c05e370623ba7025fdb75e8b2260b19e7aff57d470e8a1ffe2bc46e4607be705a80cfa1b553d889d86c25dd7ae7ef3303b64a6ec290a4844dde716df5191131a546ac894e941a4a59b3502dc626f04444e58cda130edfc1961806fa8bd95263078abbf82471a760d2090327ca3dfe9b30f3b2045527bb00df4629e529c216d2231b390b71370230dccef15925d89406c29d3e47cbfe5b82409632a78ba77192f348ab1f364b279513b151597413cd76bdfef5bc57728432406c0599cc3e9003778da629b6b276cf3701cb244c74ab0f3d7a470d20aabce63250a0a3663ef0d3078abbf82471a760d2090327ca3dfe9b30f3b2045527bb00df4629e529c216d2231b390b71370230dccef15925d89406c29d3e47cbfe5b82409632a78ba7719069728541b80cb1f1815c854e7c2261e8c56a297c2f5dc2ab74a3daf63980f5e1bc8c4f1da07d6d64f80741d22a2503ec04b56043de1e7c52a61c559754bd369305f2cf46b08f12b82f72d4f21f4ad9d3c6041055d672bc9d5609444525589a61cdaab9993b7ac8021bff58587e49bc4ff54c5334b4aa04ceb58e1cc2e6addba000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010760ad18c9ac26e70207c991cfbd27a32b5967936b2837b2683076a4e99127d52cc4fb1a1da32139d699ced91bf11ea892ddd05017a18589728968f9f9d536c4052c7a4b999a0c714fb3838e4fdaf335abf57722c199ef1e97fbad24161d43ff09a5ada1841f6385694f85f563040272166ccd992561d4be1905e4b04b1ba4e101718099010a3934cdc769d1425814428d4327f2c3c3b1ead774c8fd403734ba045fd98bddb7e2932302f5f9d9bfdd354e42feccfbd28c84a3b8d25c3715998724619d4621f61b24b8c0e95379e06ed01ba818214cd597b4616ffceec073bad1110ac5bcc4d5c83c48739d4437cd3baed88bc89fdf9ecbc999ae248566734c7e1b99e72ddd961baa5bca7a70d3e84caadf3b90a0d148578be66f8489a81913041d4341b1bd2dc476b92aed01fde4dbafc15ec4d07bc5e9798bc5274476be3aaa120e808fa0f84b166adc8e57354b975c6e1478348d478146082b80e7559ac7b91ef847e07001db5a0948c16229fbab1ae71733b6540fdf86fd8ed5ed3f08c32c235a8c84422e5f34fa6497ea43d306b4ecca18ce4d2fc04a6c615ae6a2fb6d5a191bb09cee240caec7ce12f8c5a16c98314f0e7a8acf25d81489087eace6d7fc0d164026318e13faaf0a78ae75df8c38f2bdb213ea64e8b011a526205cb088e112ed4af9a885f5e8b45798a545dfc6690865129f70cc1ec24142c187558c4c1b33bb0888ee61282bc99f91dd8279c41d3b07adf4b840cc64130fb438588056bd1c46082cf3f491356452de61551c6bc05df209222738ddfa3a0e89966dc014870fcc90837e6a376803ecc0324bc338ad97b30c7b36c66b7af34d894e670b17931917a572e2b2cbaf998a6cbc6afc69e45802fa4dd4ea79be39b3874e3e600b6a124e6d1ef3e389b8e08f55964572b6828317acf7948740bb51223b91d12e0aac1eca3666621c66fe750078393f7e0d3969dcd73f9992f827016f83cb03fb0d5d12e65990860c30655a032e7168dd75163127b25fc95010b2d7b0b40cb8ccc04507a2016d639f3e3ce6690ea707a37ec81c8d9ab766af13ee84dbac8bfe308c74213147c7b570cdb40c356f97aae83e63c26a91c91052219d67b0e3654e5f2ab70cf90de020fb82394c55c9e4183c6c3e9995cfc56b537a3f0ab96678353338652fd6b1fb0a83eb3a763e9efafed2bfe2950cf6ee07de8fbbf33245ff68ce32451fc64b8c3617c20570f87e3e4da00c4b276e642c42e70663a3016ccdce9929743344b8c61048c76885f1f4ee8b800fde926d69388c2ad57b64bd3c061cf35c4b140d8b192b61d5345d33054d8eb0f87601a97eea9ce8decaf8388700f8d5bf391c1dcba41a8810f7dc103d62737c53a6854236b3c81931996a0d471a6a84a8c10c88865a8eb216e3e487fc418bf83391705647fe57a96046fffa878b61db92db04f4b8f6ee2839007e0bb7db7942b693b5d391080fa9e34aa0c5445aeaf63b232fead59b61b0fceebf86bf5abfe4d6b2d8910f481d1381c7c36b4ead53f4928331dc25f501630d2e48eb8edf1dfc9737c6c9279b04d8c812dfaec6fff2eb44f325d4777c0b825f17d35e00c50ead1f2ad3d7b534af4831421d8d58598eba46f80de03bc54a5e2a8eeb2dd4938559fcbad37981b06187899e55d8d7bc718bd5ae283442dc2e0136f31153fabf9c8f50389a9a21381f808d092d67dd0dd92560a62f1ae53e1e1dae8469de5d62c86117214796456f495a1e208331146b0026ecef0618dccd5a5297257a23930af252bf858feb09566d4727edf81a8538bab48a55170cfb8424890bf12df93d1e16433920fd9fd3b9c02569e85b6ca3390b175db50960208b0504fdc274347b0795a75f303a2930eac6849b74a517d7a7422567ba39889d96906e7066b1cce979418b21540962fa7b70a876ec682ec5d0b694caf10aa32f3b2cf3a352ab23a36a5e1d5c8ce8c86ee964e2002cc4f02d5996b4359623bf8b5dd5c935db047f32c129024335ec6dca76ed45758bb3e7858db5b3e07d16087d3c519923bf3c1f0c41c7b9c5d7adf3b92095b4def697be454a2eb5c48e20acc0c159c508fd13a7eebf79f9beea130b5a9d499f779b9608b5f721c1e4ba14e04d83cef452b040d55522db09b9d5c4ffa0405a2e357c64032b9c8fb37c1f3e2b3ae4c5b5b81ba2679aaeac42446ba2e10fd8d24b11b56e59bfc4a6a832d61b8c480174d49106e28c144c903fd032d5027ea718db13bf52cd70214d89f8b708ccf4d3a5e93ecf17c6dce5a8ee2a604a4de7693506ce6caa2463287a5d817937330b2c5a16c130e839231a5711d59fd7f8b192d4462aaeef08cdc485a27e882c00c8223d8e3a0b76e2507c4ca6d3e17385850e0922081f52b5efca63d3875d13ff37ddc271c5f4891daf83b3592c1eaec113ee002af0fc467741229c2c78a41c03e8ab33c72239526b926d7f422366dac7ce5211c33d49d2061c2cf321a4ce23fc1754cc38ddc6ad946d9280bddc99477ecaa9f789bbd1c72714c00cde5b330c138b5802e3ab1e9c19dc237c4ab1020159d5a246364039e7c42b06bfa8380433ec74a7fd1c54e163e623dc83b54efe20ecc359c316b8e1b16905e64057c7fd08ccf4d3a5e93ecf17c6dce5a8ee2a604a4de7693506ce6caa2463287a5d817937330b2c5a16c130e839231a5711d59fd7f8b192d4462aaeef08cdc485a27e882c00c8223d8e3a0b76e2507c4ca6d3e17385850e0922081f52b5efca63d3875d13ff37ddc271c5f4891daf83b3592c1eaec113ee002af0fc467741229c2c78a41c03e8ab33c72239526b926d7f422366dac7ce5211c33d49d2061c2cf321a4ce23fc1754cc38ddc6ad946d9280bddc99477ecaa9f789bbd1c72714c00cde5b330c138b5802e3ab1e9c19dc237c4ab1020159d5a246364039e7c42b06bfa8380433ec74a7fd1c54e163e623dc83b54efe20ecc359c316b8e1b16905e64057c7fd2dbe6d83ddfab2bb8ed281dd777263c51dec4d6493a42f57b175e1d9c275616918016098aa02665e1acfd881bf89573a1e3d6325e54235c9d8ace9a6067e91ef1709b395ecdd7145b01f3db15cfa8cf1b8327eec8beea5431732cb0848e630a222fcff711ca6bb32171257895548f0d889e96121e743e2acc701e0bb637c5d8c29efa948873b237cea7f71480c82ca90ec78471eb81ce2d11c5c552cbe43a25d2264d357438fb89f37e5fee76a0cdab29544a76f2251ab429b0f912ab7e173d80db72d54f6093bf930289ac42a632f2216f5bd7b7aa729862b13fd3219604cca1c5f4dbffbe6576f0255b6599cd37534c848ebad823064851127b68e34295bd522aba35109eea12a40c9305d1480f15c9cd1440b7b609eab7ecde1880dde65d424bf8c2e873649f2b2a5b84546a972d22f75eaf8ed8750b595f7b412c3dfc6602d8e4d9c16293818dabb6eb26c60141d23eb2ba8fb2608a0b0af48beabd2887d18654bae8b4486298ee324b0708e1ee6e4b6b13e16e4ef1854e3b4a5e5a7fb333b37dee63527dbfec10e40712b930f496e6e65a6f3071d9c69b1b4f7f4a46df805019ff63956de6fce1dcff4eb2db7ed7a1fd4b43cc6e0a4f97e668b960510872d8e4d9c16293818dabb6eb26c60141d23eb2ba8fb2608a0b0af48beabd2887d18654bae8b4486298ee324b0708e1ee6e4b6b13e16e4ef1854e3b4a5e5a7fb332133e8bacbed959d0f40c7302a229f326305bf7160d27ab3e00dd72da02a7c61319845f37c72b97008aae355a947b5187f1014cd777173f3c381dae3c330e4ec0f2fc9e17b674ac793e1c82b647357e400120e0cded3ded8473b2daec2b1922b0ff0e16c97c3e061a66f5289e586a1aa1f3382c7c144ababe16608e016cee555000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012d2cedc84412c4a734bdce8d6dedbab0b55a5ddaadeb5f643f7f2c0485677c6d064174421ef1bb06548cf646f2699564fc42c0a26bbb353d3b8ed5152a28e21a23bdf36eca6f20c8d11fa624423cd141c56616c83f7e9ee4cf12e6f716569f8205f20ad1c18f5994eb0047710d836a4a62b50bdccdd9c54099311c1761389b8b38cf0f98b9f9b971afb3f1e36d611c1d55fbd054d47d476fc1dc94fb997cd62101771d48cc9f94c327721eb4f972d56533204dbf03b163ccc7f3352d8e3befb72163856419400c506ebfc41c85ef9057240a302dad62cc68ae56c183f5a8167c0e95bb81f6e9cbe0e60f55c9f10484afa8330713d5f646e665659ab3f8103408173d296b7e3fef5c4fd72dbb8fc10af345c7ec95830f089755bdc0f8236fdaeb1f562a99088b04a8e96b2206dcc6f81a6347f126a78a2ec78ec3c17a37989ae136c7b92c02ea68573d662308971a613b2fd84a7c5a6027e2168338ab796c299b1f8e776d934a1c023f47d122de7a50e9ad451816a6808f41f4c00281aca0219a20c906740bf2bab89e72e288adc7a24a54ce34ebfb576f790c8db068a4dd883516a87ed2c54f85f26a2d7263c4f659dadeba5c3a8b167b04edb8ebdce169715b0cd3140add2829119fdc1c746d769bd6e96908ec74e99a5496e81a9c633959cf095071ba003a5359e72d3894ddb998b6f461f84acbc38566d7f947df6e0a320d0ab019acd8522239f2adc5a4097e09052feaccfd8f6d38f39d080e80e5622c94353ea813543a561cca22c69994bbf21a927f280bf96c37e98393e0a55031bf5817d58e18f7077c4e6912e76989048873f2c72bf514637717eada865ef0668df504668c7eea107f0dc8a034ea611eb680cc277fe92e5edc1ae952646873fc1d1a14b1ccb571f04c522de9ced868e1b6f314d34d98353bec22ae8a5873d8a171292cc3b8eccba2a3d8634fdc3bb0e34ddee1108428a18e4f763b9bf1d3df5ddec71d51be2cf8dcb8274683acd95e11617e874d10dda269400b71194216ff31f29909e8a948c17d31f0f4d96a37f4fc72ab9c23aa550be37a730688f1c15c8032e62fa0372593215c1340f8825a7ed82d2afa683114dda86e30e89a5be5a7ee30a81c4acb9085c2fe5873ea8ff04a087011822ba1209c27e2b95cf8b89adfb4608607972ad3502ffa8746065f5e4922c26a51bbb5a49a396e5b0fe4e9bb32a76f8818228b818440336a325880c63d7dfe64c9dc15761dd89188b8eca2d278f27e1e0d1c7d7343fd295d4641eef5b460deb6b623e2dbeda5fb04e208e74b5bd878580247f3b925172f34abbefa1088f1364f75a60d8df370f3031d917fe9b7ef5fbd003d4bbfb09e14c3a88c717317af51767ce4d616a85d9944f4e171aead535358298a30ff0a1c3e4a9e90324b60c1bd467efb5de743641c64e8a39c46ca5157b10a3cfa46e16046107cda192bf8b3532ba93595b07e721c839a16abe2a1b5034d1f9b1cd925e0246a1c20d90f6d369de4b3ee1767e14fcaa23d68d792cdac98122b037aab52ea043b3705486250f0760ded1591b17d4d6bcf785d1a2cedbcc9410cce6cfd75e2008ddd6a52378dfc5da1eb64e811170e2339e057a9eaa0e1b87d01fe46e566422a243a96e518bf0e2309a05165654d845015a590397b09fe952009fee2d8544fc9169b3fcb67f4cfea409ff8f08d69befe69593861e11bc65f701d267a2cf7dce9274c9270ce1adf0583b555f4e6284505c37deeb0de4514ad401f0d3b3d0fa7c2622207f30cfd71550fca0a1e9ead2d3df34f8cfc29f386d2710728d584053ec577855336da9999c65f3ef4c1f1a35a459f6a9775e69a82f5971053281880561dab1eb7d0cca2293c1ed084effaa53834b937b2fc26bfb9b0f502a8753e119cca2e2097e8822d6a87008f7f8e36aa3c1dbb01028897e02d9d04083ac1625c1858a2acc925623db3860dc3e6288e72a531d2dbb09b27165bdee51ffbeb1936a93cf2779c8fd974b07f0a9c97d98fd5f557617fb89cd85d7effbb15fbc504406cc1686e8bcb241a9215810abb61045db97f69c650e1f5544fa1d8201ba9189247a5f3e2de308df0c9dcf927916ebc697432520c1e5286fd5aa3ad389a5ce8faa24ec9509988ffbff4c2207603a2709f8549c9622caad88f85459630d7cfdc69c27ddd879ecca9fd20fef284d4954c5231ed6b21766c35665fee150f6ae2a9697aaafc5ed8f10f46c5f8a77cdb52de217bd6efae45508c931906703f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc6202347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de60b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b08e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a873f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc6202347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de60b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b08e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a87000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000b0000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013ec6491753a6df9dd49388db1f1753ffdc69a266f0748b95abf20a8f65cc9814289653772664e5b0687671b6bf39d7359fb26e826dba5e1eb38a7e5233ce8de9155ff29f7d0992088c9b20b255a58866102fb254c5b20f82ff84bbfa157893462b1f7ac0060c8f935b9a328ffd8580f8af3732d9b1e774dae76956e5bf07120d3ab7e0e2a2ad5b030ce3f960e10aa3dc9233db165cd5c5ba88137213ea653f082457c2be8825a49fce7d2fe697a07c834e1498a2ff2636a5e653e8b5efc346400bf2d5e86ba4e45091aad8653583b89ae65d2931d7268adfe5cce3309bb9cccd10fda5aba2d75ab166e0cca6c8c4ed479483bd7cd4f9db3ac2fdf7d7adb1c950209b9c6de16feadea3cbdc9be6aa583c22765a600d194cd0186885816517bb6f083cbeec5e36de6f1a6470030880bdef9f26456b706a217813fb8bf4742020f4337bf87b75540bbc0106c7074996ae1f14c1a5dbf89ef0941ef4cb729f7be01b3ce885e56bcbb6cefd35e6cc844861fb57e89766dc3b1a33201c82801f92f9d231ea65c4e9e714558acd2928da3d3675dfc9859551c535c081a81e79f163baf209157e2d89205913d660f9152e494cb27b7a42b1292441c93f9c124aafcbf12c293ff13332dbbb46d5613ec2484b2be2db4b22b31fce600d7d8f476f1d7526ec1513d7bf8fc2099863b97b5c05af50d4ca71eb13b6ccb5c815bd2bd83f4a0ff0344b100f9ffff50223345ab458fcb028dd259864c2b9297ebcec62b5e8fe033f03ad1481b1a3c72c5736c382b3c04bcb2d1fb76fe935e37c3e130e70a50e6eca28753404c226483eaa05bd14aa4c69bbe15d937dbd2bfd61cf65df36f3b6f476313a4b3154e4069adaecd8d03bf1b05e4e84b2c8fe6d28ff02f50c48bc01ea2c202d2bc1ea579926677fd525d466ab4e90526da65e7975ae2458c0d59db6d06c34b1b6989ff53115569a27bcaf2df5a5ce24e1fd6a1de71ab52215d2492604b119b0a870a9efa9b32e0ed0d073789fe0d4814ad6c0fbffa7dbb9ef4d4d0cd98d104124bf579fa64ae96db0a0d5cf1eb4abfb3af7101b4ba1f2b8f9f85980a511151f0f65216996636648e72ccc7caf96813cb94c3a72e99654095c7c0210c1d00e8ec97b0027960bbecd21346c6defe5f660b38dbe05ec072b7f145833b24d573a60ca090e2aef847602f31970a055785c21fdddf5b8e4882af5d6baf7a2abe43ac0c241ab7743d248a5d6c07fdb76b9e9fe2f62eca4a6e137c192078f1a9f0c34a11a37bf8651ea7467328346742b24cadd210bf96eb351dc21d7d55481960d243e807054c24a4e5c8590d5fb6c0ffe7ccd5129829c67636e5559755d69cdc415de826447ab5db14dc07da870987d8725078f6048ff976c83c95bd98fdf23a90d8ef9df286fc3a7e42f5867cce8e2b201afc1f47eeaa928bf90c13a0608fdb92980d9b72f734e4ec0c9e0dbbf3ffac26f3bdca8db19d036caf234f2ac0f968828695493d7ff52efb78cdb88959f994c0c0b74c13a8a00ef1974a07096a70bf4155acaa9bffb52c7acf71a95f8df3508239426b68deda949f5c777496e2b71702c89b461ec1f50ef1b247777597ae7273f9093e8c42f90f36a1a3b65b759e55f1f69768a3499de67274e501cc7bdb52254099a24420b67dc27a58158b87506ea2fb4bb451a4cef3393a7280e63deda913b28199025ac307be0695922dc3a83760f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5e1f69768a3499de67274e501cc7bdb52254099a24420b67dc27a58158b87506ea0f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5f2fb4bb451a4cef3393a7280e63deda913b28199025ac307be0695922dc3a837706f88f71dc0d453484c90c325d8bfcfbf95bdb026c9a3aec927fbda982cccc190f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5f3ed2ed146933bcce4e9ca0398f7b6a44a81334488416cfb84f4b02b170ea0dd406f88f71dc0d453484c90c325d8bfcfbf95bdb026c9a3aec927fbda982cccc1900000000000000000000000000000000000000000000000000000000000000002e87a8598380ac01e243c847f35a44d5c0f4b4dca076071896872ae74d24914800000000000000000000000000000000000000000000000000000000000000001e3c639e9dcd9b3575eaf05657391f66d9d63570bcd53e78ddc3531d295f14bc24fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a6021551b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a707121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a1ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec20f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f0463930c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c824fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a6021551b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a707121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a1ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec20f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f0463930c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c814840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d3126132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c8360b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c3feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d3d5eafbc96ee19566bf0f54485b4c58d8048d16c5850aafd92e5e7db1c530647342bed61af12a068269a5db3057451efde070145726d01d52f5bc67a7ec63d330d8de0c8564e8b3678fdc6ac135c62295b66f230827010b96ebe77093f50cd8b232e8c181273ab6072cf1e9c8a11b654c69644830c2f5f9948f98b2f5eb063160d3e0f4f64e777b3528529c553f8ab0fec08b3cede187ffa0ec88648ba611172240649b5bb4f4d871d4b6896d7e024258a7958f57c2ed8c48ee412ce7fcb8e22366fd69bf31349f99c35c37b1c54b8ec1ae6392344ecda412b8bb3f63a32c175230086247a469bcb4270f361e752adaddcad693d24550e9e2dd444b25ffba12e20055e73c43eec6fb6affbfc204f597fdd2137a2597633cb71d8be23559473a02ce6bf9402cd9eea8f5df647a4c71b624ad41ddaffb8f877d56e0dc2d6eca150366fd69bf31349f99c35c37b1c54b8ec1ae6392344ecda412b8bb3f63a32c175230086247a469bcb4270f361e752adaddcad693d24550e9e2dd444b25ffba12e2ea5f052917a6daa99c6a0e6a946016449ffae0bda0c1278d5e5d6b2b63b693e07b84ef2185dc20c88214b5382af44e5fbf1d259af3cbb7957c71a8caedf69af1e2ae81d2dd29c5aaf58f64f8a5e3ef676fa559019ed3213e06b767c9da3bd1709bdf445c2064d1b051a48e22cc01ed0e8b9cb8f277f5679dd28c73e6290594e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013ec7a54e87f6d50568da743b2c4630bd8d37bf500e872e4e1c275a79e69b89ec0fbdb94e47d80b00c39594e72690003494eda25bbf1b259e297c3742706923dd2d237a3a12b3630a0336dda2b8c52777ecaab5434fc58c004db30e9e613a09ef386197dcb5abdc2f0a67527782f03fdc53062b18c35cb4182378c1c127a89cd23d44b92237cdca4feb15aed4c26dca4f642f3e3a78ffaa9752a970472f77bfc326f930d6f22fb7db9e570a574b2d0692afdd65666435859664f9c69f64a76b9339c82d98b13a960dca7dbafd9506a4acb4d75a12f08966e24eac4de23759315904523907e3f052ae73478779ca0705438651f4406c1a62934b321e6e5abbb5e13cdf702839ef497009c404fe00b1b04536e527cb8df5a58b7c783afba0fb94a2132399a54ef4f4b95d86f91e3290b590b019198e9a1d7042c78e67af4619c5033938127d1c0de81a774cd0a8086038fd4d9aff344a0bceacc2bafc8abe60cf8108a4fd8febcb74e1fca4cf006fc2199b6e9a578630861995b2b608f94fa81a792a621f5e27783733d3e79a40d1000c7bc07387b437a126f627d5b9b7e64f3e041df9ba35c665b5624f17d8544a1b3dd57055dc290c4d6ece429dd8df0367a4f216d5ecad89e6677f22dc4e94ca3b59280d630f5e0929d84e1f91fe69a698effc34b3e8a7b30a9d0f9aa8283af50e04b0dbaf2c2ff1c07bc026cad685fd666f4e37a95455f20157a377dd68b0f4225596bafb3e9104566ba819ab45e308e0c43603be131f420526b5270946e40e0990c45b3d90c1a2a3fbd56b5d111135097ed03319f63243bc2280ef8c4636f0b535a2a9b1197a7158c173ee9bbe309e620668282c90b1572d2c094c013d649814f46de72a76a306c4e1a0fe161dfbd5aec72202f413d9cfcb502f6f0a04ad70c6f466e3f3adc26eef29721855baa0bb486ba8330771db22d8fbcadd9cefa3f70d4d61c40eb1869c5c56252ce3628f5dca086d13b4d4bb5d26920d6554dc8113cb30f6d80c5747a636488849db49368e30e31908ad0bb61c2db6e2d7b839d14b4fe346b53146b82dcdaef35390ae1f4d230fc20de00ed42a34d2566cbc8a2215cb6c40f6d467bf10f12030999eab6167dd65651a2ff394c241edf20eb016b8c51544f772c8d66d0e556983a2e2c40d8dc91f9a3990b0e60200f8c3bd9e02270df07e51bc4bcb2dd829ef77bb57c6ecc116455b3bd1dac68d0e555569e04f6f57d2b28e3574b944b46e892f19d50701f00a2c2d085824fa21447daeaa45cc7dca8fb70877bfc237686ec6c035b4c753ef1c45f41343ad3ad1f6ce72289a3f0cf1c19f3c08e99364788734b2b53346116ad0a0c73490aab09acb3e0b82fa5c37195d33455240b2528d86835acac8ad29d7b0ff5428ca366175053001a2314d4669fd7c12b1076c99ab774b4a37104b7a05cb007e18d8edd49a19b99b8d9a6db2bdc15f25241d9b2411caf4e7933578b9e4aaac43104004715efb9d4981396663691f54e52da3d70afa1ddef3b11171d00f54bf8f0d706dbc76175de04bbbb2495700b40b1e20f1a3b208a63cac303e1d8c136c68114b3c64383aebe32819127ef77682d2ceab66cd4261d1d868b7f94b550fdaf832b843c2b588742e3a7e22a5977930fa8958828f9d759676baa89d68c767f59c39a88a2023ca96a66d426ff71a60f5cda39d09e0e804aae9f746ae8c64e861640bbfa7442859c2be019e1990a62b34054eb8204a700d6235f03c87f4b6d0d2ad2ae506a9720c8de1491c119a398ead306c2ee68de1e617736abc83ea6062488b02b2aa1ae57ae62fe1b96dee6ebb8fd6f5398fc9486a3fe942dbbb31847f285c38a91926e49caa10649300d14d1d6769f2e3943357a5e261f822fbcf78de897f0b27fc6af819ddfc35c520bf769e4e2a886de807fa3dead2338c6fd39790cfc52429350ab905a0ca7874231188eba1c63841f1a163b1bc8ca536dbb18e579ad42ee18f8f4cbb7655c3a0d398c5940dd681448dedcc5661fe8424d8e59f5edd1a3a1996abd5c4243e7a84d388334f33c304d85959e66675cd1ae9fabd8bae11f72b429b5002228d9f67112ec9adeec6b7b5f468b9edd1408cd2bf3ebc5a5c493b1bd6ec904b6203a9d754458c81ea5fc424c36bc1134825356be592bcc92145761e294ffe5baf63aa7558ff0dc158faf7a69ee6d7a219a9dc4e72f8e2cbb469d730bf77b4fcd6ea8270bf7e5582ccf9d6795128519d594c4e3bb972409576517c333cc7f239e90d1e250d652ea9f7cc12e697f5c2ca7e415f0989cd766d6487350cc3380dc616f2e1daf29ad1560833ed3baea3393eceb7bc8fa36376929b78cc002fe7bb218d4196b942f9e951d6fc5df7dd68ddcf43626ccafc3f9c22f6a4053fd01844de72be6946bd0616ae2903a22a69301e3a0996aece30f150dd095bfc00ef86a7a7c247f19e4ee18e9932edd5d7530c550c50ec1ff6ed3e0caed134193f107958583db80e61b11e7166cd122a4af38ca6fcfc0cfba23ff2e0512ecbe804ada14646cb67b8178a67c8fdfea52d349f3da93d949c9fd2a2363f6a16047d3b525eb9b9349847e875983702015ad2eda75b52cbb85c7bc68afaad95e9fb84333cc7f239e90d1e250d652ea9f7cc12e697f5c2ca7e415f0989cd766d6487350cc3380dc616f2e1daf29ad1560833ed3baea3393eceb7bc8fa36376929b78cc002fe7bb218d4196b942f9e951d6fc5df7dd68ddcf43626ccafc3f9c22f6a4053fd01844de72be6946bd0616ae2903a22a69301e3a0996aece30f150dd095bfc00ef86a7a7c247f19e4ee18e9932edd5d7530c550c50ec1ff6ed3e0caed134193f107958583db80e61b11e7166cd122a4af38ca6fcfc0cfba23ff2e0512ecbe804ada14646cb67b8178a67c8fdfea52d349f3da93d949c9fd2a2363f6a16047d3b525eb9b9349847e875983702015ad2eda75b52cbb85c7bc68afaad95e9fb84093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e174fbaaf88be79d412b9672c9d372a7d2fa63a6f94bf935c8b22a38f99927d5421fb658f6072cee97b6dab3dcbac82009de512e271ab489886ab5369ed4941f10e9e371204e023d84fcbffc3c9e32ceb0e6f399a5fb326b02d035825e0f5085519c548ca9f9dfc811f060388dc34312ebbbfedf557f4edd6da91e2bc28bb6d0821b1c8bc5f1587521d72013b3d8a1520cdbc193c6fec62b1b9a395ab530b75b729544df698600b6afca5234fc15afd6487b612d0a789592ca90a2f047aff552920fbc3ff3ee6885787280385159093b42aaa6085bead2afe32ddf04411cf6ceb32240c69883823cae0b119108c5d1d4df05cdd73f40d336d0e29c0dcf8a2f9e91d6a5055453de0b1f5ee004b172161a4672b9d1ed3c3d60b5965531316d1491429830108cb5a02fb92b96cc16107c2713d5b965caf18aaee85332c9caa0d94d41f7dce5a200d7badb935f30a1d8eea9a8b32ad0c8ca25a1bed70083bc2610db02daa6767a4b51a9bea2461d44ccd381363283dcd23986c090b166cf7ddbb00841d6a5055453de0b1f5ee004b172161a4672b9d1ed3c3d60b5965531316d1491429830108cb5a02fb92b96cc16107c2713d5b965caf18aaee85332c9caa0d94d40154e8c614a87aaabea16988e9ce116e552634a75cc315254e6e66fa349fca3b07a2ff213c9730ae3b21322866044462e49baba6b4fae80fe9f33bdcfef7cdee048fa4630c8088aa96ed65de9a8b01b1ac8a0fc666cb409e2a977fa4f63da7702ccbc360e93d4307d1a7391f5b5eb2395766f817629ad11e155f5e14470a66160000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000112621b2e0f004f77e913d011d2a8bdc9856769796b2c3d959d32b08bfe0d5a843a06010a916f03be335e3c1b9f3f2c9c2b8681760b5b512a3a184c8115e25b7029bc6abd193f5894e41e8a99d8cdb2a2c0ce4efb1242fe2bae9832425963112825128cdad0c32f3335bfee5e4264862c929c9ed8de0f54cafff20fdd13890fd72130058c87e3a8b5247fa0f26085d0770b4ef7b8cd4721bebd29f1f08966d37b2b3e1130687fb136273eaf60928289853ae2253db2ef92102ee298e119c843a637aba0ff87963b1b465575d346c58d3cf65b54f2cbce00a56abffdac883842d73a991a3cee42b22f5dd47b9cf287adae5aa8ad4b00325f143b3277663b41d3ea381b944d4222dfe7f6c5ce750410d3c328defa42c106be4888d2cb2416d2ba4028fdab278e1a1594b94c5735869c4903409d09d4bfa2676b91492b984e411356371c30a4a605cc80df37bad9a499c1436ffd97db2f0a73441857fb79a746622e0f73c4bb787f33ca3dbf1f0b970954fed84943c5061b57530db9c6f7bb09787328f331e6cff5f3354ae6e037788b65bc98911183652bb13ef1eb7d4d19507caa0d674cab49a5cdff22455c988a0b1f0698f3fa0165b48821eaee0c1030ca59d20a6107866d52206c324b5e3b0702482e7aa3b211ea0936ad1e0e73faf91c26691b50f729103e45f8a8f347f78074e668d35325c873497a6f19e3fca4a82ffe5f2f0c3f951529f9b02955a2f4fa9b0e6b017c2db1fa2361fd84e3c26fc2f269a71dc40f9b396c3e8652b7f78bdcafa6e52d258fbcbee612846723f0fbdb8b634b311bc8489d743f8fb50d77ace6dfb8f4b91587d83c9c39237f11aed677880aef1b9ffc7a51b552085a29ae2fa1aad055f0bb9c7a01d30fbd7bd377a143cbade10b3b1d22925f96269448b9d712aa1bfe6d613545d522b3f9133662781176f5db3e9c28fc22fe64e088786b7050d692b101933e57aefc2c47c218416553553f730527017d7867b396fbd14c74c1ecf52480e6f15ed99540f9cfdde049fc6420b113b869f29107937dea9949a134819f42c31f8d99230a4400d370eaaaed50b00038e8d5e280940a991c83e51f11239133792411d6d8188fd8e26b757c7701d3ab39bd0d6cebf2815e5be7dffaf66fd546e9c3c7ff565586e0608e0a4bbd8810f9015d1ec612b211286ad8e26db0617af03aa337a9d53913c0b1bc2fe6f923842a380cac2de0871295adbe9373343bb668218d3035d4d8b7002b33006d11b64dd40c24f074e62f32fe9b94d6ed6da9024695c579502aa71d572f79a91428f86ea529206e8c34958acbabfc433114aa3ac5a3717fdf7e03bc1f6e21e219aca55a193f89912010091329c4e44f1d96a3b273e4d172d8829182f112ebe5d19b9c4a7706741a1752d3d0bf4d5b2aead505fb602ec41cabd8e1806d61d106407f9222dd2c87eb10e92b36460ed27cc615c1d2e8508f4cae67df78e1f7ad9daa08333d0d1a2fbb6ef3cf7f5f8aa84f8bca46429184794ca93eb82adf9571e58e9f2e9e020897898bd08c6d193e1771fdfbd8b42dc33ade92b63a64b462077e374788f0af03363ea900941e6fed7948c62ed8d8e0362440ae669011fca84b1edf4c4e34931fb891e31bd45911f08e802228f5708ce436a43589668c35f924b5a13a2604aa3fa8e326a4d2b10b28a0ef842283562daf1fd3328904ea22bb6ab906645cf25126df3e5f9b27d539df5a2d1c98fbb69bfcf94a66296e09f8eb0380c0c0ce6e8f02332e6ff1e93bc474e26bf2e9d8cf614bba4b8d682176e5f339a71e16324469099c1f7353b682e6e6bb0121fb61ca9a385b963db77fcb1c181df55ed8208f871e1810bf2afd12a8ece7a4d167c5c68c39f6c2c60bbaae686dbf57e084c9b9aa3e61ac1c8b93664052c208278a1acfc1b98d7a140b6f9478a8894fc387693b633d7eb38ddd3fe2dd0121bbbebd1721057fb356821004a779b560e0a31e5e13053c151947add8bc338a81165fb72196775f75574e80e303c771923aae5e62e3ca39616d55154a98a33da96f6e1f135a4d8a3cfd2b6996a4574c0b3df05976427e0b49bc43ffde2d44c1a6853602b3689f5f5a0aaeb06d23b0e92b2cc253dfd16838eaeae7d964570ef3f24d2238491c22599105efc1b2e8bb01cf0eecfdb0997f1aed6ccb34cfac55a5b618681d724dd5a87f54a01bab38f11d0d39058ad3dcd41a53fc59fe779381bcc22b068ddbe958342346402495040deb5a5a42bb3403870076cafb6cbb7b6b52f780fabf054594d215b7b6ed9bf098f08207613d4d66803f89350493448494ad087f0540faba6b5030e1451bb10882a8ab298bc2b299810251f6e91fa969189ed584e5bb1a5be81a6c9692a40bb2fcb28a24e6328300803dae0916e05696e7612a7b1a44e5a41807da02696541461ee6a30c06cd7cff810b99d28d9e4f0d7b1a2b987ca783cb88841ef0dd343a7eef7cb2b87efc8f028034662d7261b0f284e5d46783587c34779e27a81ed5127a2c1c7a786e0370fd813a011cc4178b436782d9fa6f4592f9aa949ab45205247aad6f7d9a7aeecb0c8005fee33be874bc987d260590ba6d06558dabe4aa04287e6e29af96721134f3810076cafb6cbb7b6b52f780fabf054594d215b7b6ed9bf098f08207613d4d66803f89350493448494ad087f0540faba6b5030e1451bb10882a8ab298bc2b299810251f6e91fa969189ed584e5bb1a5be81a6c9692a40bb2fcb28a24e6328300803dae0916e05696e7612a7b1a44e5a41807da02696541461ee6a30c06cd7cff810b99d28d9e4f0d7b1a2b987ca783cb88841ef0dd343a7eef7cb2b87efc8f028034662d7261b0f284e5d46783587c34779e27a81ed5127a2c1c7a786e0370fd813a011cc4178b436782d9fa6f4592f9aa949ab45205247aad6f7d9a7aeecb0c8005fee33be874bc987d260590ba6d06558dabe4aa04287e6e29af96721134f3811292d7ad405fa37806d82528bc3fe8435a85e151b1fdf1f84a5868f532008b7021658174cef8b7ca01d1325c91a7d18b8dc8db38e6a8a2490f75e8322349c58939ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e2e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae968344dad601a0e974b48b6f53a435fb17f925868d818d820d31a33d3ca1bf836563f753bc0732ef9f9fbc963da7ce162a9ecfb9a810182c69786b04034e797921114b6bf9b5653eb598cd47e82869db9c0353a6a50561d10ad682bf4d6de1159f510c31e2bdb58a8937762f801ebb4c90351bce938f4d5cb7d1a12584c6cc639ee1a95c55af70cc9bbd6ad497a3afb4701bdc291e70853ce38169bd0cd0509224c365485ce93973ca38f0a305ea394f5a3b1544aaf2cf5c6a1effa85d3d93cc6152ce1d0723f4110cfa7391b74da3f9b403bff477b46e4f741bd55c759c06b6d8729dc607be1a1efb84beb8407e2f7147862c58a219e8161dd9804925be76fbb2d336d4d294b8fa75f90434d8f202c52025de2a12a863616e7c8a191bb8f3d4e353013624eee5d438fe3788494b6586ccc944574d6987f44b8fd895910d20b51122ce1d0723f4110cfa7391b74da3f9b403bff477b46e4f741bd55c759c06b6d8729dc607be1a1efb84beb8407e2f7147862c58a219e8161dd9804925be76fbb2d10fdc50e60d1de7555c3fec661caeadddea3bd3e8acdbb14446a639639c77e4302b53af53a4f5a33651a3c97fe57b150a25fe5a9d48a3f073b6fce1c605c07fc2a53f7e19a5285ea7cdbcf726424f9f0fef5059e77169cd64ecb08acaf69e5141d21f1428e0c44038282c500bc3eb666df1c07a6f94f4b9438c60c17ee496991000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013b792ec8a62bd37bc66f6305f155d4ca5e6d68ee490e15e44e79f18a9a0699ba2c2f8f25fe909eba5a91a8f7a0fc0494ca4555dc766a69559f455038773571d3261f3fbd15e0f906f38336fb111a1c146b07af0afa592ebdb52acf335e100364149437cd3935a7277251460ed981a76b27f8979d8f44e47fc951653067d6e7ba3dfe78719ee04bcdeb08348329f751b45fa9b2768fb31c5100a58c719a98e7ba1e98ad767d063651b8c4192162d7a29d5aca54a628fe9f68bae095c3773ffc140a4b248c8318e51bee63539e0c4af35b6bc7ee3b6b123bfe7bdccbda444386b211e038e318b8abe672ce4f5baf0676d45a83f4c9a9420c21c25a3ad60c60951526d00ca3de21fd96f1cc31a2375cc154f2358bfcb3ab9ae94b4f13cfa22190d03238a2979919e3f33d69ad0d14dd6f75a0c342d37f45cd07767dc12d6088099d3b837c600fccefaf40c33381c54c57d211b24f6a6612f569c470ff6c4ed362b33f617fe0ea1d09d0b8421cb30ab54b7ff942aa6157b25e718768ccd937831bca233a4a144c136db546ff8bfa2d544e1d435d256c4d02c7e67a5a887e21cc567d26df25969daccdf13aff967bde9510f2f2f84470c7b84ee33289df9d69115fc20c70b21d4532aaa4fbc7be206544d6f013e8e02b48fd42ab34bde3387efe796b01baad81185ca62fe2affd93989a0aef8c241dcaa86e88db0f179f9a47cf87bb1e5399d235af9893f78072ae151aec503d73b6c98de19c1edc946b08ef4207da2d6607993efb69eb300e54e6f477c2ad5b0139d3d2cc4afdeb52ce2bd25e29ab00019f190b65ff6d05214cbc02a48eee51c6260bd9bdb4a2ff7aedfa25da50fd013f0736acb2612b30ee2064c41151fa34c96cb0b1a3543c1d4f3b7791490d681ee0d75bd9622ad28259b1381c21f2f6b5b43e86e6d5938bbd2b96ebf084e560284bf1063fcdcfcc48b58a131d5780a5454eb35b6b074cbf871a2ab406bb2fa11eb17e62a90e7cc5dad5ed61bf475a3755e0906fe328f2ccfaaaff445147feaa3d9d78c232c7266c4fa32529ed411cff9948e399a2c0798f0a1decfb32d7bd6628c7c32421f17b8a0d7ed2fe1a7489306308db294d5e67eaf3bb4da22e7de7bc25fcc9d7403399d2b23c3c4f9338e80f658eefc0ad8573fccc117e1884e2e47b24dd09968a4c3e1b11f5353ae227c689b36a0a6e8a53a7fa7b370cdd8ec987e327686aef5a244f08625a85d9f8e548784ddd2fc3bf2e35d757fbd2843289828c1186a453a7d66e06dc8d70d0a2a0eebcb3f234b2136dfea48d8c0b385861a035255fd953d28dbb40b9ccb749926c173dd1c57b98c28919bd12465911019fbe762ace747f18b671b0b89b78d5426a046d5709f6e279564302a15e00a8cefad2d92f726414d296a7c01f808979e796f230e7763c3c585c9163b1cf5054aa71e5f934df53770f395f2a63f6ff57dd597f760f40f75429204d29acdceefe0974bab42ac101c810bb88a9053c1b64ba57a8df76b85c3f119a63c72f1ae18679bd757508cea4eff118f1b4326265c035f385a4aed6cfa1209dd4458bb1e90910e6e785109cd71d52a1580a34cf4362b9f3ab83eccd40a90db3fef66bce8f26875962e41303caccc771e93acc65d875319fbf79ea5ad71c5b361a052aa4e3c7a16440dd0d0acf5aae7cd46cb00122dd51b6032ec65336d70bca758592eaec72d00bb7fc2e5541209b157a4f07db14c925ff34dfef7dd12b7860d65db3275e1946d9faf22816c5da3c46e70a01cefecd33fa64192e89a34d0f12b8c801629bf2bb3a17180260e7d6fd0fcdd56fb4d11bd771a4338f673411a2a5d2c90630a9feb824441a2cb507bff6d4d0321dc039a60aa9001adc183373a2ff6140ae45ad117dab488906e173d94221e9589d9fd1932d096eb043bff1c860e5570a1b3f696972c5b04e1dd412dade7b9051118d927acfc51c639f09946dac92b7be966484ba536b2a0e09106c4e01e729e480556b3eae02700bdf27c5fa1d820f6e24867dfaecaac9cb38b0a3417ea5d7f121399bbcb274e7e8293f788e95dec776fb06dd9b9a61c4d60af260200bd48ad129f695316bd1c3f743919edb6ed34a1db7eb08ccd91f21e92e6254df0baba1d47e1a4ee76c6ce809afc9ff645691deec57aa69e294c2018720ac05322dd47bc4fcb4512b3adf9c85209b458ebdaf78fec4c7533af5409a9e1580dc50624f51cd324b4edd09c20e386d19dcf9f1f5fe051efd3cf4b486c1441b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac24fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a60215507121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a7235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec21ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f30c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c80f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f046391b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac24fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a60215507121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a7235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec21ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f30c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c80f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f04639132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c83614840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d31263feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d0b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c342bed61af12a068269a5db3057451efde070145726d01d52f5bc67a7ec63d333d5eafbc96ee19566bf0f54485b4c58d8048d16c5850aafd92e5e7db1c530647232e8c181273ab6072cf1e9c8a11b654c69644830c2f5f9948f98b2f5eb063160d8de0c8564e8b3678fdc6ac135c62295b66f230827010b96ebe77093f50cd8b240649b5bb4f4d871d4b6896d7e024258a7958f57c2ed8c48ee412ce7fcb8e220d3e0f4f64e777b3528529c553f8ab0fec08b3cede187ffa0ec88648ba611172230086247a469bcb4270f361e752adaddcad693d24550e9e2dd444b25ffba12e366fd69bf31349f99c35c37b1c54b8ec1ae6392344ecda412b8bb3f63a32c1752ce6bf9402cd9eea8f5df647a4c71b624ad41ddaffb8f877d56e0dc2d6eca15020055e73c43eec6fb6affbfc204f597fdd2137a2597633cb71d8be23559473a0230086247a469bcb4270f361e752adaddcad693d24550e9e2dd444b25ffba12e366fd69bf31349f99c35c37b1c54b8ec1ae6392344ecda412b8bb3f63a32c17507b84ef2185dc20c88214b5382af44e5fbf1d259af3cbb7957c71a8caedf69af2ea5f052917a6daa99c6a0e6a946016449ffae0bda0c1278d5e5d6b2b63b693e09bdf445c2064d1b051a48e22cc01ed0e8b9cb8f277f5679dd28c73e6290594e1e2ae81d2dd29c5aaf58f64f8a5e3ef676fa559019ed3213e06b767c9da3bd17000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010fbdb94e47d80b00c39594e72690003494eda25bbf1b259e297c3742706923dd3ec7a54e87f6d50568da743b2c4630bd8d37bf500e872e4e1c275a79e69b89ec386197dcb5abdc2f0a67527782f03fdc53062b18c35cb4182378c1c127a89cd22d237a3a12b3630a0336dda2b8c52777ecaab5434fc58c004db30e9e613a09ef26f930d6f22fb7db9e570a574b2d0692afdd65666435859664f9c69f64a76b933d44b92237cdca4feb15aed4c26dca4f642f3e3a78ffaa9752a970472f77bfc304523907e3f052ae73478779ca0705438651f4406c1a62934b321e6e5abbb5e139c82d98b13a960dca7dbafd9506a4acb4d75a12f08966e24eac4de237593159132399a54ef4f4b95d86f91e3290b590b019198e9a1d7042c78e67af4619c5033cdf702839ef497009c404fe00b1b04536e527cb8df5a58b7c783afba0fb94a208a4fd8febcb74e1fca4cf006fc2199b6e9a578630861995b2b608f94fa81a793938127d1c0de81a774cd0a8086038fd4d9aff344a0bceacc2bafc8abe60cf811df9ba35c665b5624f17d8544a1b3dd57055dc290c4d6ece429dd8df0367a4f22a621f5e27783733d3e79a40d1000c7bc07387b437a126f627d5b9b7e64f3e0434b3e8a7b30a9d0f9aa8283af50e04b0dbaf2c2ff1c07bc026cad685fd666f4e16d5ecad89e6677f22dc4e94ca3b59280d630f5e0929d84e1f91fe69a698effc03be131f420526b5270946e40e0990c45b3d90c1a2a3fbd56b5d111135097ed037a95455f20157a377dd68b0f4225596bafb3e9104566ba819ab45e308e0c436282c90b1572d2c094c013d649814f46de72a76a306c4e1a0fe161dfbd5aec7223319f63243bc2280ef8c4636f0b535a2a9b1197a7158c173ee9bbe309e620668330771db22d8fbcadd9cefa3f70d4d61c40eb1869c5c56252ce3628f5dca086d02f413d9cfcb502f6f0a04ad70c6f466e3f3adc26eef29721855baa0bb486ba808ad0bb61c2db6e2d7b839d14b4fe346b53146b82dcdaef35390ae1f4d230fc213b4d4bb5d26920d6554dc8113cb30f6d80c5747a636488849db49368e30e3191a2ff394c241edf20eb016b8c51544f772c8d66d0e556983a2e2c40d8dc91f9a0de00ed42a34d2566cbc8a2215cb6c40f6d467bf10f12030999eab6167dd65653bd1dac68d0e555569e04f6f57d2b28e3574b944b46e892f19d50701f00a2c2d3990b0e60200f8c3bd9e02270df07e51bc4bcb2dd829ef77bb57c6ecc116455b1343ad3ad1f6ce72289a3f0cf1c19f3c08e99364788734b2b53346116ad0a0c7085824fa21447daeaa45cc7dca8fb70877bfc237686ec6c035b4c753ef1c45f428ca366175053001a2314d4669fd7c12b1076c99ab774b4a37104b7a05cb007e3490aab09acb3e0b82fa5c37195d33455240b2528d86835acac8ad29d7b0ff54104004715efb9d4981396663691f54e52da3d70afa1ddef3b11171d00f54bf8f18d8edd49a19b99b8d9a6db2bdc15f25241d9b2411caf4e7933578b9e4aaac43114b3c64383aebe32819127ef77682d2ceab66cd4261d1d868b7f94b550fdaf80d706dbc76175de04bbbb2495700b40b1e20f1a3b208a63cac303e1d8c136c6839a88a2023ca96a66d426ff71a60f5cda39d09e0e804aae9f746ae8c64e8616432b843c2b588742e3a7e22a5977930fa8958828f9d759676baa89d68c767f59c2ae506a9720c8de1491c119a398ead306c2ee68de1e617736abc83ea6062488b0bbfa7442859c2be019e1990a62b34054eb8204a700d6235f03c87f4b6d0d2ad38a91926e49caa10649300d14d1d6769f2e3943357a5e261f822fbcf78de897f02b2aa1ae57ae62fe1b96dee6ebb8fd6f5398fc9486a3fe942dbbb31847f285c2429350ab905a0ca7874231188eba1c63841f1a163b1bc8ca536dbb18e579ad40b27fc6af819ddfc35c520bf769e4e2a886de807fa3dead2338c6fd39790cfc53a1996abd5c4243e7a84d388334f33c304d85959e66675cd1ae9fabd8bae11f72ee18f8f4cbb7655c3a0d398c5940dd681448dedcc5661fe8424d8e59f5edd1a1bd6ec904b6203a9d754458c81ea5fc424c36bc1134825356be592bcc92145762b429b5002228d9f67112ec9adeec6b7b5f468b9edd1408cd2bf3ebc5a5c493b30bf77b4fcd6ea8270bf7e5582ccf9d6795128519d594c4e3bb972409576517c1e294ffe5baf63aa7558ff0dc158faf7a69ee6d7a219a9dc4e72f8e2cbb469d700000000000000a00ceeac090e4aed9c63f4aa95e7c3c59dbd48cff4fb4027160f3876c9414683e31422dc0eabf172ea41e36e4ce98112f6366e17b504a9b4d6eaf424dfa484dbe00a7300b160d980495e63a4794efd8ccb90c1dbb8e56f15387290721add720e812cfc58adb6767c3a27fae1c1aa027e2d0ef7be38bd4381c0c8bfb07e5fbcf61638185e242c5b9b638a0e6d6b46c95aad39f760a080daf61ffd3e86bd4763fcd22d7fb5f0078c9ebb0b041deb0334c87357f1a4cd4339c9f94341579d64fb0c070d54b6a24aaaaa9e45c25d7945ced2da7e13d5bddcf7ac8e1d5774afaec9e9be2a1aa2bccca551e5409c28c1b331381e21a5c433c5baea6b1df8ade98e651ad90ceeac090e4aed9c63f4aa95e7c3c59dbd48cff4fb4027160f3876c9414683e31422dc0eabf172ea41e36e4ce98112f6366e17b504a9b4d6eaf424dfa484dbe00a7300b160d980495e63a4794efd8ccb90c1dbb8e56f15387290721add720e812cfc58adb6767c3a27fae1c1aa027e2d0ef7be38bd4381c0c8bfb07e5fbcf61629b45556af7917c24aebbd8b412958233d574c98415bacb27f6e8dd7ded630d2241678da99960f76ca3b12ee3edb4c2c390aa003dbbc24a2cd82f6e3bf67af1a38f7e423f82c8f4aa3bafe6967a5c256c616f5a6f9dd61d5135da69852d1057e3e77753b1f236d38e2a387d1915a48a1fbe93d46b2222e3fc11facedea5dff1a3aeb603786d20695b7c8257629cc0fe8c91641990c76a719e47bb09be36fa968233d96a4577669331e6160d44caf56b9e44b257d11e1a2a21e6b1fa9eb2d10932a1aa2bccca551e5409c28c1b331381e21a5c433c5baea6b1df8ade98e651ad90d54b6a24aaaaa9e45c25d7945ced2da7e13d5bddcf7ac8e1d5774afaec9e9be02df8b981fcc7145707c08793b0828c6a3f06faa8798c78d640265fb92be70cc12163e6b4864f4013960616fcfb015eaa67e6cfae250bb88d4e5c6a741f94bd432406cbe974a88df71b18b5a811babf87b09d3fb4811577b53aeff489966d6dc052eeca0800573a414acfae077e45f0024afc5f65aa13f7de7a12350a3c82dbb3cc6291bef4d74e21d11e5d3d4c191a34349e52665d4616f548e6002c250a89e07fccf135a086ab1acda61eb1d70f69d8e316f37387fcde21d86d239dab117c52295bb64d2a13de614231b1a6adbd5b090d3af87dd9ae880d9325ce2962c690614d99dfa44aebe9d723b6b208e2435480ee5ea69c517ae78621dc5b6a7029b912272d5aa7b691a1e163d0c4150ed5959c44e0ebe43916d8a601f8972e0fda5b32038dede95005e45bfa19963311d8f09b1b1990a5da33929e3c44cc2a1e5385e31faa7d978de83395a34f50a8a96df0bb3421d049dcb0e2feef5a14b3648a7e70574b1859e71794a2c2991306e692becec777ced04e788c94c5a814e06e65cb0129173d33f1a8ede6f9da052a3d8a77765aff282cea8862b5c3971a8e63f7d733455a78076e0ae1a4e6ff61d782439d61321ad29e09f1c465eaff4e88eb30c9a0e7d8079a5fa5e5134ba3f2be09220f1b11141dd6fc75236cad580d885f7771028f1d8e571559e3251a4470f186dea06eea8581432eb44c2707aa1c0b7378d87233d96a4577669331e6160d44caf56b9e44b257d11e1a2a21e6b1fa9eb2d10933aeb603786d20695b7c8257629cc0fe8c91641990c76a719e47bb09be36fa9682a1aa2bccca551e5409c28c1b331381e21a5c433c5baea6b1df8ade98e651ad90d54b6a24aaaaa9e45c25d7945ced2da7e13d5bddcf7ac8e1d5774afaec9e9be1ab9625bcd06fce757b40005fac7b5d8ec99e0652adb9fb1b4bdf69d818400900376c40b8bde3deb482bd801fbe4d31166171932fe487dbcc452a6da928819f82f5e62ec5aab8f0cf858bdd252f9fa6f0c996ecb54b98574453dfee55b35dbc20810f672bca46d768e05c868a606108993202b264df91184f61223b3e1f928d51140b43b09811dc78f617faa7b682ef0889a8eec92ca509ac9c5d75b4d1dea323e877c97cec9695442eebdc9730a85587f236889a14428a1c39fac61bf50548228379c8e887b74ac0fc8a632f1ecaff32c6891e06cd0229430b87ea226ef3e650f37bcd08ed487d77695e00807135b057351081135e274650a97a3f7163fc6323a06847a9f6df7452019b769e953709fb6adbf8573996772e760161f9ab5d93f2b8a600e19dd77cfab42822ee079903913a51a6a3c628bd849c8ca1bcc39cf0c0810f672bca46d768e05c868a606108993202b264df91184f61223b3e1f928d52f5e62ec5aab8f0cf858bdd252f9fa6f0c996ecb54b98574453dfee55b35dbc20c85d215d1deadf053c2c66afe33c1bbd9594408ce3e52dda16d3eb34ea8b23027730807680774db45290dc1d3d313be3bec9808d6d3449f7b66bb431fe4d1ef0f37bcd08ed487d77695e00807135b057351081135e274650a97a3f7163fc63228379c8e887b74ac0fc8a632f1ecaff32c6891e06cd0229430b87ea226ef3e650cb4d80e3dda71901d5c24dbf0c209d88ccede9fc316138c09598a860007060932493ab28b0058c383f3a505dd84f7a9beb9a08a77b5cddc2ecac0f0ddf2fc6714d99dfa44aebe9d723b6b208e2435480ee5ea69c517ae78621dc5b6a7029b912295bb64d2a13de614231b1a6adbd5b090d3af87dd9ae880d9325ce2962c69060c85d215d1deadf053c2c66afe33c1bbd9594408ce3e52dda16d3eb34ea8b23027730807680774db45290dc1d3d313be3bec9808d6d3449f7b66bb431fe4d1ef0f37bcd08ed487d77695e00807135b057351081135e274650a97a3f7163fc63228379c8e887b74ac0fc8a632f1ecaff32c6891e06cd0229430b87ea226ef3e653ede4b82e20d30e60b8bb2269b61d72d46c24c6078c1b943b0f63e1ef5404fe73717f13be71451c84a898f00a5130e46822633874c937f3c457eebc5e77d93013e77753b1f236d38e2a387d1915a48a1fbe93d46b2222e3fc11facedea5dff1a38f7e423f82c8f4aa3bafe6967a5c256c616f5a6f9dd61d5135da69852d1057e353fe47d3ae28834800421cd043114d86bcef0026e4523eb728df28c818819be35f48fe02e251f37b85106a85c014207d93a197d1cca4859e6745215f03d16df14e9241f8c41082e90b6dbf772d49284cf0c037e46e6629128e5d3964c5a94ba2286353f8b0ef454f5a7aa43862b7873d0ad96735bcc3468126a4f02f0d46fdd1b4c3ab90dd5ea9d4f6d6c14db28a29c60a14a857d36a90ec46911f3511795c214bbf85cadc4e37dc42723144d19736dc557074674dbd11b645e596a3120240e0ef718040c695441666b9e99a6a4482869a8c87600e634e5267414b4b7cfb6d72878415b0ae6a8421ff2e7a1525bc2d03610d17ba1cc621414dc0de4855f4dc032493ab28b0058c383f3a505dd84f7a9beb9a08a77b5cddc2ecac0f0ddf2fc670cb4d80e3dda71901d5c24dbf0c209d88ccede9fc316138c09598a860007060914d99dfa44aebe9d723b6b208e2435480ee5ea69c517ae78621dc5b6a7029b912295bb64d2a13de614231b1a6adbd5b090d3af87dd9ae880d9325ce2962c69060ceeac090e4aed9c63f4aa95e7c3c59dbd48cff4fb4027160f3876c9414683e31422dc0eabf172ea41e36e4ce98112f6366e17b504a9b4d6eaf424dfa484dbe00a7300b160d980495e63a4794efd8ccb90c1dbb8e56f15387290721add720e812cfc58adb6767c3a27fae1c1aa027e2d0ef7be38bd4381c0c8bfb07e5fbcf6163455a78076e0ae1a4e6ff61d782439d61321ad29e09f1c465eaff4e88eb30c9a129173d33f1a8ede6f9da052a3d8a77765aff282cea8862b5c3971a8e63f7d730e7d8079a5fa5e5134ba3f2be09220f1b11141dd6fc75236cad580d885f7771028f1d8e571559e3251a4470f186dea06eea8581432eb44c2707aa1c0b7378d8704889b1c3c4749d810017f9a4921ca2b3abe1c7a065fbd59e71ce9d69b279ebf1397f2ec4cdbca2cfd13ab78e1a087beaef6b2b44d13a382053dad700cbab1f32b53d83946867cb5f682f3b3a7c991c6737dbf8225dc2a6dfe33d64d1897de090c1b8125d0c97fcd8fdb9287513679322c3bda6f7cd66c8b3d1c4c4c2497268e0ad76b7fdd1c3db6de7600e2160e72315b326c840972b993f72d19d7db0b4eac363deae724aaf3ccb6e76b1a28602f2e4bd1bf3b2e78b0716f288da61d0d96160574b1859e71794a2c2991306e692becec777ced04e788c94c5a814e06e65cb031faa7d978de83395a34f50a8a96df0bb3421d049dcb0e2feef5a14b3648a7e712903ac3c6885a24eee7a589ed94ab58e48180d8f467c69961f54f1cc6f0bb811051f0e40626545e0e63900d9b1b2fac5cd3aac59e6c34d2c06673e267af8b850b4ed7b8baaf8273f38b5298b410a775504025338b97f5bed1bb04ab29c19fc32c2081a65ca07a0f92d333a244ef63834f7974be171aa13a69951dee136d64d43455a78076e0ae1a4e6ff61d782439d61321ad29e09f1c465eaff4e88eb30c9a129173d33f1a8ede6f9da052a3d8a77765aff282cea8862b5c3971a8e63f7d730e7d8079a5fa5e5134ba3f2be09220f1b11141dd6fc75236cad580d885f7771028f1d8e571559e3251a4470f186dea06eea8581432eb44c2707aa1c0b7378d8727730807680774db45290dc1d3d313be3bec9808d6d3449f7b66bb431fe4d1ef0c85d215d1deadf053c2c66afe33c1bbd9594408ce3e52dda16d3eb34ea8b2300f37bcd08ed487d77695e00807135b057351081135e274650a97a3f7163fc63228379c8e887b74ac0fc8a632f1ecaff32c6891e06cd0229430b87ea226ef3e6507fccf135a086ab1acda61eb1d70f69d8e316f37387fcde21d86d239dab117c53cc6291bef4d74e21d11e5d3d4c191a34349e52665d4616f548e6002c250a89e2295bb64d2a13de614231b1a6adbd5b090d3af87dd9ae880d9325ce2962c690614d99dfa44aebe9d723b6b208e2435480ee5ea69c517ae78621dc5b6a7029b913d4a80a442b307f7786bdf4ce3f51b721cb694c39c3ca2fa5544af7c8f4765b7166e573613e2d3d4df3ba32ab4425846da54ecf84ad0f3952c2d62d9697ca34c2878415b0ae6a8421ff2e7a1525bc2d03610d17ba1cc621414dc0de4855f4dc00ef718040c695441666b9e99a6a4482869a8c87600e634e5267414b4b7cfb6d734fe695450c170f3ce3ae0e079f19f23ca3aef39a0715ebec05d08f3863de4c707db86480b73fbfadef39a502a8b0951d9f744a189670f892ef30e2e7fcb53ff28f1d8e571559e3251a4470f186dea06eea8581432eb44c2707aa1c0b7378d870e7d8079a5fa5e5134ba3f2be09220f1b11141dd6fc75236cad580d885f7771027730807680774db45290dc1d3d313be3bec9808d6d3449f7b66bb431fe4d1ef0c85d215d1deadf053c2c66afe33c1bbd9594408ce3e52dda16d3eb34ea8b2300f37bcd08ed487d77695e00807135b057351081135e274650a97a3f7163fc63228379c8e887b74ac0fc8a632f1ecaff32c6891e06cd0229430b87ea226ef3e6534fe695450c170f3ce3ae0e079f19f23ca3aef39a0715ebec05d08f3863de4c707db86480b73fbfadef39a502a8b0951d9f744a189670f892ef30e2e7fcb53ff28f1d8e571559e3251a4470f186dea06eea8581432eb44c2707aa1c0b7378d870e7d8079a5fa5e5134ba3f2be09220f1b11141dd6fc75236cad580d885f7771036274e719a2da824f12422a7496d85ffac92ca3063479c2382e5ee2d5880b25d18dcbf9606234c6b8b053fb8820857f83d22bc8eae52448373c3cc5965998aaa0a8edbbf99c2f158cee0a27c84c1785adff38c614b6b7e693353ac6abc3d57582ce07d9f7d8d0b2ab77de3be743e929dbfc60d905747189007fc762e80f1ad3f2d7fb5f0078c9ebb0b041deb0334c87357f1a4cd4339c9f94341579d64fb0c0738185e242c5b9b638a0e6d6b46c95aad39f760a080daf61ffd3e86bd4763fcd20d54b6a24aaaaa9e45c25d7945ced2da7e13d5bddcf7ac8e1d5774afaec9e9be2a1aa2bccca551e5409c28c1b331381e21a5c433c5baea6b1df8ade98e651ad9161c909db80e33f3c396a0dc2803f5f90a5721189e0218e7eea40fc02da15e6f027005f4f11ace876f50484f38433ce9cda3a8efb00e8b8c62932950db9533c72286353f8b0ef454f5a7aa43862b7873d0ad96735bcc3468126a4f02f0d46fdd14e9241f8c41082e90b6dbf772d49284cf0c037e46e6629128e5d3964c5a94ba3455a78076e0ae1a4e6ff61d782439d61321ad29e09f1c465eaff4e88eb30c9a129173d33f1a8ede6f9da052a3d8a77765aff282cea8862b5c3971a8e63f7d730e7d8079a5fa5e5134ba3f2be09220f1b11141dd6fc75236cad580d885f7771028f1d8e571559e3251a4470f186dea06eea8581432eb44c2707aa1c0b7378d8702df8b981fcc7145707c08793b0828c6a3f06faa8798c78d640265fb92be70cc12163e6b4864f4013960616fcfb015eaa67e6cfae250bb88d4e5c6a741f94bd432406cbe974a88df71b18b5a811babf87b09d3fb4811577b53aeff489966d6dc052eeca0800573a414acfae077e45f0024afc5f65aa13f7de7a12350a3c82dbb166e573613e2d3d4df3ba32ab4425846da54ecf84ad0f3952c2d62d9697ca34c3d4a80a442b307f7786bdf4ce3f51b721cb694c39c3ca2fa5544af7c8f4765b72878415b0ae6a8421ff2e7a1525bc2d03610d17ba1cc621414dc0de4855f4dc00ef718040c695441666b9e99a6a4482869a8c87600e634e5267414b4b7cfb6d718dcbf9606234c6b8b053fb8820857f83d22bc8eae52448373c3cc5965998aaa36274e719a2da824f12422a7496d85ffac92ca3063479c2382e5ee2d5880b25d0a8edbbf99c2f158cee0a27c84c1785adff38c614b6b7e693353ac6abc3d57582ce07d9f7d8d0b2ab77de3be743e929dbfc60d905747189007fc762e80f1ad3f02df8b981fcc7145707c08793b0828c6a3f06faa8798c78d640265fb92be70cc12163e6b4864f4013960616fcfb015eaa67e6cfae250bb88d4e5c6a741f94bd432406cbe974a88df71b18b5a811babf87b09d3fb4811577b53aeff489966d6dc052eeca0800573a414acfae077e45f0024afc5f65aa13f7de7a12350a3c82dbb00000000000000c8000000000000000d0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020b2bd9166fb292fd068715be077faabd5100a082db2ee30b660a7a840a453295e00000000000000010000000000000001000000000000002057d79dbf8ed8b8aa3585c69adf87ef75ce64bdf75ac79a37fcbc979ba37b0a3e000000000000000100000000000000000000000000000020e4531c0cf3964a849077d3f66aca1c780770dbd36f02f9e591cac1251871b88a0000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000000d0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000205e14be2c5de23e6ed70fd6d842a4c814558815484501d6531472c2a4b9b7c626000000000000000100000000000000010000000000000020c3bd632f94a0f936e286d09638e32d9a2fc3eea8f13d18b4ae707edd67fdf6740000000000000001000000000000000000000000000000204e242999845fcac82f38a2f8827ba9e31d01ad478796f9013f43e0bec62d088f000000000000000100000000000000000000000000000020d1816e01b598e08ee1c459e3283ac87d454a19f2e41f3f85158e9f10b9faef71000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000000d0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000000000000000000002090ff676b9c14f4671a0e91cf403a88fb0b22e7a8a8a370aba0a28e26bcea1ac300000000000000010000000000000001000000000000002020093024ea2eaeb3c5934a41935a11dab2086c3d0aab8084952a99d9f0d224c20000000000000001000000000000000000000000000000207e61af4d68362cc7280f55cf450babaa4c27e0d7b623080a1dc3e5db95a6761d000000000000000100000000000000000000000000000020dede73056e97d895ee544cd1f515e7f872b01d10ad51bde6457326fcf11c7b20000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000d00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000000000000000000002031239eb1c08af680c4f00771654ce894f0d3587f58ea53c47ed4a11c1fa85145000000000000000100000000000000010000000000000020a91a262b04c6a7139a4bd4ed8b0f30807db95327049cf2a6d7b25f8be94e37b90000000000000001000000000000000000000000000000208184ee99edcbc305656197375ced84668d6a6dfe60525a4437554af40db6661e000000000000000100000000000000000000000000000020d4666304bf2809e0fe3311603148aa6aef2cc88395ddc38a022a9c742dada87d0000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000000d0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020eb8d9836cb953c6437c496ece6cbdfdd7243ec51671ccb3af47a85fa778e312c00000000000000010000000000000001000000000000002018c3f53aac4183df50ec2d566e245042dd3e3d71adf78621df52d71069399b8400000000000000010000000000000000000000000000002047d66e60185c2492df2be91f5c8e879243c3ec6d4ebe0b5f2c37fcf0fff4d188000000000000000100000000000000000000000000000020c1a70db1dbbbf1d266cc63410c3e1f798fbc2f00cc35d561bc0706474f565a7d000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f000000000000001f0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000204887d5e2c6d2717d60c83accb5514a0f47e17910c8fc71f978c1948c709def1c000000000000000100000000000000000000000000000020a2502a6ae92a724a6e2a3a94ad93bd71bd29b046475706a32afa43f571c551f200000000000000010000000000000000000000000000002070f93532da12d95bd9b02b2acb02b74a3a532fbd8d1ec178ca7acf3e54865fb800000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001f0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000000000000000000020ebe4d8dc5157df91db0d0995b681cbbf37fbeb89712b703226fea4166f4a1be40000000000000001000000000000000000000000000000209556d77d8faa0780c175114ccc703ccef5e23f99123014f3cb64b72a60e79680000000000000000100000000000000000000000000000020635115868949cf601b309c4df546e182524084c9811bb9ee1fb0b250cc7303b00000000000000001000000000000000000000000000000201d592eaf7b775ac80f80f65ac71600e7b42e34c2b41369815d26559f705c392800000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000001f0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020413728e8c4f675e5ae69c204d5baf909547eab0d0db9a21f9e0c83a4af26c7a8000000000000000100000000000000000000000000000020b1f59360b8604b8aeb5462a45975637ec382c2d69e9898248c3ff0b5c0f84a490000000000000001000000000000000000000000000000201ee947871b7c23ff35900da33157b598a2a0de9b805ba0c5a66fd0f7a777b96e00000000000000010000000000000000000000000000002008ef744cc4c71b3dc0ad6709747a269607614084afb6b3ce67e9224db4721b010000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001f00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000208e23a76fd590b1f4b1a8ff7c9d4908df56bc09305057dc0722abd364823feacb0000000000000001000000000000000000000000000000203ba2c97654de7bfcc8d53977aba10d361172900252c2564628c1c4d0269897da000000000000000100000000000000000000000000000020f5ce7f2db68efde598b83474b5a87a6b370a42d4f72227049cb83d4df11bb6a10000000000000001000000000000000000000000000000204a15bacd4d08e8dc5188fa2617ce3f2048ab093a457dbb1568a132452c1264e70000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000001f0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020f9051b50a21ced87b20c943f4e2c2f753afa0b310bce31df963b96a0c87a200a000000000000000100000000000000000000000000000020c594fd6aef9bf0a9ad32de1c2b21fef40fc7cf55d5778a950bfba5bcec02647a000000000000000100000000000000000000000000000020b4a1b1f3f1cb855740daf8c4833a49820c58975955c04f60f0e741d105e354a6000000000000000100000000000000000000000000000020b705227efab8bbcce7e6efa6e6c2c8c24b0165a04b60ba4382b0c252dfa09b540000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f000000000000000d0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020b2bd9166fb292fd068715be077faabd5100a082db2ee30b660a7a840a453295e00000000000000010000000000000001000000000000002057d79dbf8ed8b8aa3585c69adf87ef75ce64bdf75ac79a37fcbc979ba37b0a3e000000000000000100000000000000000000000000000020e4531c0cf3964a849077d3f66aca1c780770dbd36f02f9e591cac1251871b88a0000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000000d0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000205e14be2c5de23e6ed70fd6d842a4c814558815484501d6531472c2a4b9b7c626000000000000000100000000000000010000000000000020c3bd632f94a0f936e286d09638e32d9a2fc3eea8f13d18b4ae707edd67fdf6740000000000000001000000000000000000000000000000204e242999845fcac82f38a2f8827ba9e31d01ad478796f9013f43e0bec62d088f000000000000000100000000000000000000000000000020d1816e01b598e08ee1c459e3283ac87d454a19f2e41f3f85158e9f10b9faef71000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000000d0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000000000000000000002090ff676b9c14f4671a0e91cf403a88fb0b22e7a8a8a370aba0a28e26bcea1ac300000000000000010000000000000001000000000000002020093024ea2eaeb3c5934a41935a11dab2086c3d0aab8084952a99d9f0d224c20000000000000001000000000000000000000000000000207e61af4d68362cc7280f55cf450babaa4c27e0d7b623080a1dc3e5db95a6761d000000000000000100000000000000000000000000000020dede73056e97d895ee544cd1f515e7f872b01d10ad51bde6457326fcf11c7b20000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000d00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000000000000000000002031239eb1c08af680c4f00771654ce894f0d3587f58ea53c47ed4a11c1fa85145000000000000000100000000000000010000000000000020a91a262b04c6a7139a4bd4ed8b0f30807db95327049cf2a6d7b25f8be94e37b90000000000000001000000000000000000000000000000208184ee99edcbc305656197375ced84668d6a6dfe60525a4437554af40db6661e000000000000000100000000000000000000000000000020d4666304bf2809e0fe3311603148aa6aef2cc88395ddc38a022a9c742dada87d0000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000000d0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020eb8d9836cb953c6437c496ece6cbdfdd7243ec51671ccb3af47a85fa778e312c00000000000000010000000000000001000000000000002018c3f53aac4183df50ec2d566e245042dd3e3d71adf78621df52d71069399b8400000000000000010000000000000000000000000000002047d66e60185c2492df2be91f5c8e879243c3ec6d4ebe0b5f2c37fcf0fff4d188000000000000000100000000000000000000000000000020c1a70db1dbbbf1d266cc63410c3e1f798fbc2f00cc35d561bc0706474f565a7d000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000010000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020ce2da5dd3f1d2499114e62007db0bc8b52860a97086c4d1d9b291f96e0ac9c2e000000000000000100000000000000010000000000000020fc1dbba6f9b455616fa548f07000bd186f0be1060371081b1c952c87cb2969850000000000000001000000000000000100000000000000205bc3e12c36d4a2e20b1b195ac346c64db1219ed22eb08085da4d26fcd4973a5e0000000000000001000000000000000100000000000000209dc48d41a2d4c25b90ae286b21502aabe4177429574808eac78aed0ba9b970ba00000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000010000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000000000000000000020bf352c60784b74b941824f2d63cf3836272db67d7aeeacad2aebe65815faf2a5000000000000000100000000000000010000000000000020426a93f6deffd2b075525a4dae94d94e1a8e6a36b7caff23457ae4cce303aa10000000000000000100000000000000010000000000000020e625f3331016e7cd88bea7a7b855bae1ee013995c9ef355b8748e4878dd9c543000000000000000100000000000000010000000000000020980805126f19ea693dca5bc5ccf2a5596180ccaa904f73633259ef7aabc46a94000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000010000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000000000000000000202b14082c23a02f1d9d6db9546bbf2312f865ca20039d204443ce8702eca55d60000000000000000100000000000000010000000000000020f020441b9681e335c14a2a6c21dd8510b27a0dae0eec61b72fa315a598c8b87f000000000000000100000000000000010000000000000020ddf36e15c6d2cad2a2d13ca341f8f429ea1de4012e969c8489e61f092d7f701d00000000000000010000000000000001000000000000002006ee5d52edd1f31a36e4a7048840c9439f8ef7333453a9f11e8679d7622f8558000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000100000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000200043a3e5aa00392afa1907a58865b4472da25d1bb465711605b4bce58b63030300000000000000010000000000000001000000000000002031a4776534529348397cae2c9d705a8eafe3961afed35fdad2915095b5efbf33000000000000000100000000000000010000000000000020886082a9355e3afea404279c3bebead20b99039dd4aa0b3d0dab726e1e29aff9000000000000000100000000000000010000000000000020a990e84ca9579c1d2e4df0c931557e80f89da355c549b820bd65c57780b190f50000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000010000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020c82ca78efe4b64d5751be30417b609833fac301f253ecbffe41e8e9bee96cff60000000000000001000000000000000100000000000000206ebbae03bedcb30a6ac53ee99b1ba731605aa9a26e3a2462ba854af10e81ed47000000000000000100000000000000010000000000000020e211041d56d70c70c0fe4028f21a169da1cd4ca4e960c648ebea202d6c43674c000000000000000100000000000000010000000000000020ffeab4f50dd382561e76011c806cd6dddf3c589391f5e48ba92af3fc97a82252000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f000000000000000f0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020301b4d516917696285e32354781ba454355eafff4bdecce666c60e53122e85360000000000000001000000000000000000000000000000204588bf4dc76f289ce58141eaaa216d8458cb8d1be94c124d08fddc13ae448698000000000000000100000000000000000000000000000020e4531c0cf3964a849077d3f66aca1c780770dbd36f02f9e591cac1251871b88a0000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000000f0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000000000000000000020f12fc226381ce8e3f502297de802f760cb0f32bb5d1b361e6f513ba8a95476060000000000000001000000000000000000000000000000209e5207dedcc1751d464d0ca5b0ec7453293485e46045e1d8d664665f599454ab0000000000000001000000000000000000000000000000204e242999845fcac82f38a2f8827ba9e31d01ad478796f9013f43e0bec62d088f000000000000000100000000000000000000000000000020d1816e01b598e08ee1c459e3283ac87d454a19f2e41f3f85158e9f10b9faef71000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000000f0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020b99f4182071387551529a9c385263632f437f3bc2b0c054b6a3d44555157ab03000000000000000100000000000000000000000000000020c8c3b0b7b843e6f5fda633ddb5b1cc221cb87cf202273d9001876d377f85a4440000000000000001000000000000000000000000000000207e61af4d68362cc7280f55cf450babaa4c27e0d7b623080a1dc3e5db95a6761d000000000000000100000000000000000000000000000020dede73056e97d895ee544cd1f515e7f872b01d10ad51bde6457326fcf11c7b20000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000f00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000000000000000000002052735365a691582208b58d5ecee8b9fe9b7d821ea55454eb0bf6fc9e1e3779a6000000000000000100000000000000000000000000000020b64d62e87ecb757a8ecbf5f123498416bdf3e454a4dc754743740ab117e026640000000000000001000000000000000000000000000000208184ee99edcbc305656197375ced84668d6a6dfe60525a4437554af40db6661e000000000000000100000000000000000000000000000020d4666304bf2809e0fe3311603148aa6aef2cc88395ddc38a022a9c742dada87d0000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000000f0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000000000000000000209915fbffdbe3d5e2fa4d3409a39045e76b7516f4933b106d291bebdcd63e5b4c000000000000000100000000000000000000000000000020948ce3c71f8a3e63738c63ad7f65e0bd1940222862e86527ec3ba97701942c9900000000000000010000000000000000000000000000002047d66e60185c2492df2be91f5c8e879243c3ec6d4ebe0b5f2c37fcf0fff4d188000000000000000100000000000000000000000000000020c1a70db1dbbbf1d266cc63410c3e1f798fbc2f00cc35d561bc0706474f565a7d000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000290000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000204b88604a6608c6eb9ba3bede044e248d62becadb080a456681805ab480b64a2400000000000000010000000000000001000000000000002092ff38622b2decefcf8307aa018adefdfdaa06fc5a520c0c3a04990f33027694000000000000000100000000000000010000000000000020a346fbbeee725da089a6715dac946ab17533f7a77d571694ca1f1b28abb7d944000000000000000100000000000000000000000000000020bc7cafa2d5bbcd43a2687bac1aaae39ea07c2b052355ee18f7bed28530381a1900000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000290000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000000000000000000002046b4103846ae2c10a547fe76a6b5a371acc433d524e7482d268b79767c7664dc000000000000000100000000000000010000000000000020a7171d4fa61fd12128f5c4965241652c8ddc0c46e8c7a964ffcf0984ffd7f89500000000000000010000000000000001000000000000002052ba89114da2853e8fa07d551806893e486429c35967e90f1364b3d437abdd22000000000000000100000000000000000000000000000020f69c63796b0fc3bb3288db5fc6b6321528bbbae678a35651696d958320b7b7430000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000290000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000000000000000000002070ac9c1a1cc0f370eef8792db4e8a07c0a2b92e6fe6e9e2b6988a0f7d968a20b000000000000000100000000000000010000000000000020c53a0cd0107f66cc790becb38f5fee3c0f9d025124f698f0f2467cde1fbb7f93000000000000000100000000000000010000000000000020512ede82de18eac361b0347346d45577998f11f0951205ca4172f9d850b9919b000000000000000100000000000000000000000000000020907caeb633215ff4129e7dab9f17c9025c93f92b16178fd8678a98fad237f0c60000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002900000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020b6e877a515adfcb592a770d462b43e449cee8c738d16f969724fb575ae8bb0b7000000000000000100000000000000010000000000000020580ef9da1ed5e2babc435eca9ea73f027bf97010b64a6f63c69c2aadf5386b910000000000000001000000000000000100000000000000200df33e0d9ca72d06a434af2c6b972a6b03667095ac1a683b86514e0012239182000000000000000100000000000000000000000000000020f873579facce3b51fb36341332ab2926a95297aa0acd0b4108cefea53d9e1c8a00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000290000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020b09d90014812ec62509979fb5d4af4e69400cc5cd308cd96ced13e9dd3199e310000000000000001000000000000000100000000000000200dbed97830aea5096cb060a71b37c812fde90fb3a125044efa801f95addf091d0000000000000001000000000000000100000000000000204b8c5f91ebd422cdb230fb374d30859759d449e266b2903f6b848cf8e5baf94f00000000000000010000000000000000000000000000002083502f4dae1d1e7cce3b35cd08cd8214523868a7bad81a68fd16bfd40a434166000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a6000000000000000c0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020c85af4484a55018f037779039e4af40967235a50df4e34940d889e279e7db7d800000000000000010000000000000001000000000000002057d79dbf8ed8b8aa3585c69adf87ef75ce64bdf75ac79a37fcbc979ba37b0a3e000000000000000100000000000000000000000000000020e4531c0cf3964a849077d3f66aca1c780770dbd36f02f9e591cac1251871b88a0000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000000c0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000100000000000000201190e2255ff642d9c04a819b8d08e7503ff296909b7b525ccfb3a72bef579c81000000000000000100000000000000010000000000000020c3bd632f94a0f936e286d09638e32d9a2fc3eea8f13d18b4ae707edd67fdf6740000000000000001000000000000000000000000000000204e242999845fcac82f38a2f8827ba9e31d01ad478796f9013f43e0bec62d088f000000000000000100000000000000000000000000000020d1816e01b598e08ee1c459e3283ac87d454a19f2e41f3f85158e9f10b9faef71000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000000c0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000010000000000000020a28d19e90d0c21695d1a99cd46401c2a3ea320aca26e6b627cf752164cf176ec00000000000000010000000000000001000000000000002020093024ea2eaeb3c5934a41935a11dab2086c3d0aab8084952a99d9f0d224c20000000000000001000000000000000000000000000000207e61af4d68362cc7280f55cf450babaa4c27e0d7b623080a1dc3e5db95a6761d000000000000000100000000000000000000000000000020dede73056e97d895ee544cd1f515e7f872b01d10ad51bde6457326fcf11c7b20000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000c00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000001000000000000002092134a195653536c63176080c856c53c435e8ca272feda5da160ef10361d2b8c000000000000000100000000000000010000000000000020a91a262b04c6a7139a4bd4ed8b0f30807db95327049cf2a6d7b25f8be94e37b90000000000000001000000000000000000000000000000208184ee99edcbc305656197375ced84668d6a6dfe60525a4437554af40db6661e000000000000000100000000000000000000000000000020d4666304bf2809e0fe3311603148aa6aef2cc88395ddc38a022a9c742dada87d0000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000000c0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000001000000000000002058f9707780fd27cdd0b9aebb6b75725bea560c2a875e748df961dc1e3240fbb800000000000000010000000000000001000000000000002018c3f53aac4183df50ec2d566e245042dd3e3d71adf78621df52d71069399b8400000000000000010000000000000000000000000000002047d66e60185c2492df2be91f5c8e879243c3ec6d4ebe0b5f2c37fcf0fff4d188000000000000000100000000000000000000000000000020c1a70db1dbbbf1d266cc63410c3e1f798fbc2f00cc35d561bc0706474f565a7d000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000030000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020b7c8e313feed160e8acf05ea4bfb6f176446c2ac0bc9f2abc9b686508ab52f6c0000000000000001000000000000000000000000000000209671522c78c40e86ef0e8a667a3e46003403098881dba6475154303e1c3e65ac0000000000000001000000000000000100000000000000205bc3e12c36d4a2e20b1b195ac346c64db1219ed22eb08085da4d26fcd4973a5e0000000000000001000000000000000100000000000000209dc48d41a2d4c25b90ae286b21502aabe4177429574808eac78aed0ba9b970ba00000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000030000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000000000000000000020c7c617fe5a8e3fcee395b25f5aad1075de8af4c63d02a7a5ccf0ebcc3757baa10000000000000001000000000000000000000000000000201fe587fe304db71b83584845c66187566a5fb7270585460d0475013af24044b6000000000000000100000000000000010000000000000020e625f3331016e7cd88bea7a7b855bae1ee013995c9ef355b8748e4878dd9c543000000000000000100000000000000010000000000000020980805126f19ea693dca5bc5ccf2a5596180ccaa904f73633259ef7aabc46a94000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000030000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020ce056a02bde877e3b53dd1faa6938832c1ed6fadac97fd1c0a924161b6298fa2000000000000000100000000000000000000000000000020254828136b43e34900d85850fa1210c25e9d1c343f57d660963534a5e494b204000000000000000100000000000000010000000000000020ddf36e15c6d2cad2a2d13ca341f8f429ea1de4012e969c8489e61f092d7f701d00000000000000010000000000000001000000000000002006ee5d52edd1f31a36e4a7048840c9439f8ef7333453a9f11e8679d7622f8558000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000300000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020c066efe3dfef71694149148ee6cb2872aefd1b4f2fc9862252abee42af30ed5a000000000000000100000000000000000000000000000020bb61afaca75702079a77cb4ffb618e76255194cb8ac3e09cf817da739cc0038d000000000000000100000000000000010000000000000020886082a9355e3afea404279c3bebead20b99039dd4aa0b3d0dab726e1e29aff9000000000000000100000000000000010000000000000020a990e84ca9579c1d2e4df0c931557e80f89da355c549b820bd65c57780b190f50000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000030000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000000000000000000002051a58812d4ed2697e8b31024f55f4062373f3388fd3d1701366bc11ac7a6b961000000000000000100000000000000000000000000000020e0698d131d704ec64db6c2ee76f3fff3800a90d403f81572de0ab695e257b3e9000000000000000100000000000000010000000000000020e211041d56d70c70c0fe4028f21a169da1cd4ca4e960c648ebea202d6c43674c000000000000000100000000000000010000000000000020ffeab4f50dd382561e76011c806cd6dddf3c589391f5e48ba92af3fc97a82252000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000300000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020dd4252bb6107e816486d4dcbde9497ac5b6d60be375f7c8da919b25a1ae2f30200000000000000010000000000000001000000000000002088b9c36ce6c205415134c822e13277bf26dc808cf4164d31fb3feb408d5a5e06000000000000000100000000000000010000000000000020d668a432d047c9e275f7c7d20e0a761a44ce7e63d76a8974123279ebd303ad5300000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000300000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000100000000000000206945e57e84c96b129297a93301811351561f3d2f8b631c113721e152dde14d58000000000000000100000000000000010000000000000020eee7a3b5bd32066ff6fae493f197ab42d452b72e6653f36c785e7ffcaaef4bdc000000000000000100000000000000010000000000000020a7afa996971e49948edcc6953b8e85b3a85abca1a8ca02bb441959ca7fbddc1e00000000000000010000000000000001000000000000002025513b7f08a347e3b4653b6a5b7b4504d17f3335eb68b911a07580668480ea5f000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000300000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000001000000000000002045af0be380c0e1e58d7424ab0c75e1ba0ee396f9e8e1fc5654fc95433d44e2dd0000000000000001000000000000000100000000000000200478375712328a539e0af75efba3145a5b83977f65fd6f26f2bef0e92f4cf47c000000000000000100000000000000010000000000000020f956d888804e64a270d247562d2e4df7cb3baaff4b906f94b4e64fcb67d3fb92000000000000000100000000000000010000000000000020a61e4bd78e6377780bb7580457ace8abedf45db5c6b1905e0fc76ee6b540ec6f000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003000000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000001000000000000002001c0a5a341fdffb1f03c9b9b9b36cae4916225720198476efd222612d31d43b3000000000000000100000000000000010000000000000020e4d3556944aef39dc24c83873c204349c90de3d0febf5e94f5d30752aacf58d1000000000000000100000000000000010000000000000020695844727e2fac06bb31a161155a39527775fb0591002573a9e4d4aee1e794880000000000000001000000000000000100000000000000201273eb79132092546fe9e443e04ce70d652607cb46845d8269cc51b07a5e2636000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000300000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000200ebaea229f668cb6e0046bdf430c8c0fdf3982fa590d45114806f8013f0d4518000000000000000100000000000000010000000000000020a834b11452e58e60e9d991391a3e2e59588fa25493c192ba98d1d33f296b4e32000000000000000100000000000000010000000000000020b4683887999b2d9372eba712b4bcbe56fe7c3bbf097eb71436f394f19c5e540e000000000000000100000000000000010000000000000020ca0bbcf3ba7d635c190762d1905f0cdb8d6b2af98d668d282ab970819d0796e0000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a6000000000000002f0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000206762968d2a038b693f39a5fafabb81fab3aa9f357a0350c916992948fd26e55000000000000000010000000000000000000000000000002039207a50ee132e79b7d0ce2800c532ee3a79757e9182e86f047b4749e0a8f553000000000000000100000000000000000000000000000020a99ec68e5e702c95d72c271dfc6b7fba83a95d182bfe10c3b55beafee6b02033000000000000000100000000000000000000000000000020bc7cafa2d5bbcd43a2687bac1aaae39ea07c2b052355ee18f7bed28530381a1900000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba3610000000000000002f0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000206a66eb0dfb8905926c23fa9e6367d1d376993dc9d50000669fb74f7cdf2a1ceb00000000000000010000000000000000000000000000002046c654f85322efa17d6f767fbdb262d58f272795ab09da595b797b6dbc104b67000000000000000100000000000000000000000000000020eb65f60cc50d4a78bbd6805dbdb2bf94cc2376e36aa8b971a31f71d4de0675d8000000000000000100000000000000000000000000000020f69c63796b0fc3bb3288db5fc6b6321528bbbae678a35651696d958320b7b7430000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb000000000000002f0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020ca065fdd78dac515b99610f258fe14968d10b9e20f8bb65813195429d99bdadf00000000000000010000000000000000000000000000002053f8d1326552cc01162d03184cb369965f4fe3b3f9288f37fb45fe4cb085e3d900000000000000010000000000000000000000000000002006426e33baa1776913fabf5a4a6b22a45faa4944ecb6ee3596d2a7f071dad382000000000000000100000000000000000000000000000020907caeb633215ff4129e7dab9f17c9025c93f92b16178fd8678a98fad237f0c60000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002f00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020873b792ec4e2410a853e85a77ade2297f0c5052debe2f4a72bc8be27e11aa763000000000000000100000000000000000000000000000020c2c3840e2225f4c86bdad2b4e2fdb543bbc7c0eff9166fd7bb13cfeeaac17bdb00000000000000010000000000000000000000000000002045de5171730c798b920963229c38e2585a2ba74ae374a05c055e8f9ca4de381a000000000000000100000000000000000000000000000020f873579facce3b51fb36341332ab2926a95297aa0acd0b4108cefea53d9e1c8a00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee2000000000000002f0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020363e68339dbddefd48c83175cca73c718742589e41321b9e3ba208909cfd915800000000000000010000000000000000000000000000002088652ad02d50d76bbfaa8b1856252bba2bace61a0c45f2856992f5b6a2c97595000000000000000100000000000000000000000000000020fce731c6ff148191e5989829d154266d461abbe1b87f3bf49e080e482df6295c00000000000000010000000000000000000000000000002083502f4dae1d1e7cce3b35cd08cd8214523868a7bad81a68fd16bfd40a434166000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000280000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020019303facd12ed364b60ea052721239b91d5a11b113641454778fe5b6eed20f500000000000000010000000000000001000000000000002092ff38622b2decefcf8307aa018adefdfdaa06fc5a520c0c3a04990f33027694000000000000000100000000000000010000000000000020a346fbbeee725da089a6715dac946ab17533f7a77d571694ca1f1b28abb7d944000000000000000100000000000000000000000000000020bc7cafa2d5bbcd43a2687bac1aaae39ea07c2b052355ee18f7bed28530381a1900000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000280000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020a1bc29549c1436976d32bde24352a6520ac184cd6c2191d3863c7eea66c808af000000000000000100000000000000010000000000000020a7171d4fa61fd12128f5c4965241652c8ddc0c46e8c7a964ffcf0984ffd7f89500000000000000010000000000000001000000000000002052ba89114da2853e8fa07d551806893e486429c35967e90f1364b3d437abdd22000000000000000100000000000000000000000000000020f69c63796b0fc3bb3288db5fc6b6321528bbbae678a35651696d958320b7b7430000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000280000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000100000000000000208479dbf19ba3d95758587a9b77fcc709fcc518203b11b572bde25687cbc1b7ae000000000000000100000000000000010000000000000020c53a0cd0107f66cc790becb38f5fee3c0f9d025124f698f0f2467cde1fbb7f93000000000000000100000000000000010000000000000020512ede82de18eac361b0347346d45577998f11f0951205ca4172f9d850b9919b000000000000000100000000000000000000000000000020907caeb633215ff4129e7dab9f17c9025c93f92b16178fd8678a98fad237f0c60000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002800000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000100000000000000208347afe8d28617b64b6361b5d4058415807e7dee926a89c1641831aaea7f873a000000000000000100000000000000010000000000000020580ef9da1ed5e2babc435eca9ea73f027bf97010b64a6f63c69c2aadf5386b910000000000000001000000000000000100000000000000200df33e0d9ca72d06a434af2c6b972a6b03667095ac1a683b86514e0012239182000000000000000100000000000000000000000000000020f873579facce3b51fb36341332ab2926a95297aa0acd0b4108cefea53d9e1c8a00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000280000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000201a6a9ef0b96675ec68fd7f287589e1c02658e278567bcad6f703cd378421f1480000000000000001000000000000000100000000000000200dbed97830aea5096cb060a71b37c812fde90fb3a125044efa801f95addf091d0000000000000001000000000000000100000000000000204b8c5f91ebd422cdb230fb374d30859759d449e266b2903f6b848cf8e5baf94f00000000000000010000000000000000000000000000002083502f4dae1d1e7cce3b35cd08cd8214523868a7bad81a68fd16bfd40a434166000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000050000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000202a807ea0bcdaf350e376b8250e11c8d9fb71f170bd45d5708a33d1ef37ccd14000000000000000010000000000000001000000000000002051eb7c5f8572912a00b4d921a0269e737f961978a81975a7117df74f933d6478000000000000000100000000000000000000000000000020e2c28e037d30a9b1cafa16794e336898558e512395cfcbdeb25f5f9c08dba0820000000000000001000000000000000100000000000000209dc48d41a2d4c25b90ae286b21502aabe4177429574808eac78aed0ba9b970ba00000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000050000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000000000000000000020e1753faf8c96a0c70493d4c1eace8f86cb12f9a7513245f0e9c9b29260a20a860000000000000001000000000000000100000000000000204349f09052a312f65934f4c9f6b26ec92ce76cb1f56e10a96c9d72781e25d27900000000000000010000000000000000000000000000002040a8544c04c63db69600b9141e0ac5c5c6f2f63672ad293fbf89e200ff76e373000000000000000100000000000000010000000000000020980805126f19ea693dca5bc5ccf2a5596180ccaa904f73633259ef7aabc46a94000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000050000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020569417ca435ceb040a38404de114ab843f8ef2d32e126d9db99f89a76a11c352000000000000000100000000000000010000000000000020f9f104f3003bafc209ba496c4e4a57286b7eec7b6758f569290514d520472dc800000000000000010000000000000000000000000000002009a92cdc4908f685ce6b1345b92ded1885178ef2a7aded52334aff5467d169d000000000000000010000000000000001000000000000002006ee5d52edd1f31a36e4a7048840c9439f8ef7333453a9f11e8679d7622f8558000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000500000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000204d22dbc9aead47c8c0979b5cfe3ab2d3b701951a48d8ece625026a7a670e54700000000000000001000000000000000100000000000000207138f271998a62fa2399a4e52560f50654a859dd08debe05942136ed27f256ab000000000000000100000000000000000000000000000020e371e374acaaf27337ab92c2b2c57caddfa4c8901247aecc181d0f2d03ab2034000000000000000100000000000000010000000000000020a990e84ca9579c1d2e4df0c931557e80f89da355c549b820bd65c57780b190f50000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000050000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020eb619bb9ad7813b14ca81b91cca3d418b424e22c020f0c9db78feda19bc3661700000000000000010000000000000001000000000000002030e531b71faff116b0a75ec94f7440094de074d30a3e02d6e8f07a57d3767f280000000000000001000000000000000000000000000000204f94e19275c3ad1b0968aa350973ee3c5947aff002b686efe6c16032d7650d02000000000000000100000000000000010000000000000020ffeab4f50dd382561e76011c806cd6dddf3c589391f5e48ba92af3fc97a82252000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000380000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020d5d9e84739c0813f71d0359e99b9765469d7a41ef279c691c2254c026b06582900000000000000010000000000000001000000000000002092254bddc93af51db85c84258645a7368b11c67713d9b7edb7798f818a67b7d100000000000000010000000000000001000000000000002013cba62cb82888bb083b50937d466b49f9391c00299bd77abb46de4352465093000000000000000100000000000000000000000000000020a3c68cdf76781d19db7aa603f4cd91ea38edfc0b5126585e0c4cc27eb1121e50000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000380000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000001000000000000002055d67c076c5d396d33996ca84ffc7f8d71fd9b1d73515cdaa4c72d0551f4e075000000000000000100000000000000010000000000000020659bdac5e12fafcfbfba4939413f2dbcb8f4622495fa9d7b4be9541e24bf3f5f000000000000000100000000000000010000000000000020d1b5b1709939c022502c02de40058bf39c150bc062b6e13ba9efa821c1b2284200000000000000010000000000000000000000000000002081d62fb6f8e3c63bb07414f173e2f1761186f3a609b96be8e54bf144e18bd1e9000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000380000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000010000000000000020e3f22df1ef809bdd780125e0869fc594b795001da2cb5255ac86c869e41bb3d100000000000000010000000000000001000000000000002042ccda5e4f3610e7833759239b87dcb5feb5654641bd57359476edc936a15e8e000000000000000100000000000000010000000000000020de3c1116c517fc559702c15da18fca7713ea045f49bee0d28a5b11b093f744f5000000000000000100000000000000000000000000000020c8c39661891e6889268d1a75425c16fa10b5ce02a5817678bfb61fd4d7ba745b000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003800000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020dcad9ad63ac90f36294e45ac4e2910b6be1ff4ab582ec77d94b36aee2aaec3b7000000000000000100000000000000010000000000000020fdf80980218da61f93fdbe491188fb7f3191a3b3bb5166ce6014e8f20d70673d00000000000000010000000000000001000000000000002096a037551b0b573c983aaa7a75192a672a3c09151e279ffd3c1e0e670d35fd370000000000000001000000000000000000000000000000208ef32cdd20ab9840d12ae9a0d741f7d3f389289d74ea182f48337a1058f3b15d000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000380000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000202317a666cb7ea69255e854e67aa19b531a4a222717cc9440e4546a3fab5d7ed80000000000000001000000000000000100000000000000209e11faaa3c075b6834d4668a36d21b8294c07a039a232c100665d90b3d03bf4500000000000000010000000000000001000000000000002080cf796e32484601f36528ae033f1d268f38cb3aa9d351ba1b0fcd4e2043d757000000000000000100000000000000000000000000000020a79432284160ffbe7605792344dd2c3b75b783de349a59eac5f705dbb10d4fec000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000350000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020940f95c06a507e6f7d898e90b69cf59c322cbc1bf161c7e7708a20e2008daae000000000000000010000000000000001000000000000002019594bf3fa8c4ace4d35341a4d29a3224bf349b4111630660fbc89ec6aac104c000000000000000100000000000000000000000000000020f4d1e64380a2c05ab0dc64ea31b5e288a4325921fa907811ded50419cc51d1ad00000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000350000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000000000000000000002053e10520c89a9d1c8bdf0299253b3e1ca6f732d90152e564751bae242a1ea2bf000000000000000100000000000000010000000000000020758d3cb1dae81bd7b5510b225e37ec1c33d27e558dbe4753d95613ab2950d5bb000000000000000100000000000000000000000000000020ecf960f1bd96e938be9efe0e8178c6faac8e4dade22047baafaa2cc5b776587a00000000000000010000000000000001000000000000002025513b7f08a347e3b4653b6a5b7b4504d17f3335eb68b911a07580668480ea5f000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000350000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020eae24cc712d4f1a65e36209bf029b296466b50798ad83a68022cdfe9d0a71b53000000000000000100000000000000010000000000000020d93941bd50076e052ac499d54a60936db5cc808ce93db11f3b5f2dbb9e84fdc900000000000000010000000000000000000000000000002057231a860f30ab1475bd8cdc0a3b4a8273fc215ab0540eb9f5f6b4129d47a3f6000000000000000100000000000000010000000000000020a61e4bd78e6377780bb7580457ace8abedf45db5c6b1905e0fc76ee6b540ec6f000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003500000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020a1c9ebb7e9894aaf5a518e2e5add167f6b300838e38da25e7147996653a3358800000000000000010000000000000001000000000000002018f7652e6b6650db62a7971a3982b0cb933246f7ee71973244096397d4069a48000000000000000100000000000000000000000000000020e07633752c9a7d0ab4d4825434743a1a21102cdb34ac00f9cb0067d34ffca5d90000000000000001000000000000000100000000000000201273eb79132092546fe9e443e04ce70d652607cb46845d8269cc51b07a5e2636000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000350000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020c0aebb3503b26954be7c1775bef21ec8009433f43163b9a737d5f6404505ab33000000000000000100000000000000010000000000000020f1df539161429e1cffb6b4435a018168f9836656cd0fc0043c6de7fa4ee6ca11000000000000000100000000000000000000000000000020f53683e29b7f89c0854446521e9f08cece64960ee2669247016ed70294c71940000000000000000100000000000000010000000000000020ca0bbcf3ba7d635c190762d1905f0cdb8d6b2af98d668d282ab970819d0796e0000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a6000000000000003c0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020472b2c232ee796bc1ef6d02e4eed1b1ae881f4da980066415be4678b0b9cad77000000000000000100000000000000010000000000000020a1c76d31ef82470da8e9580b7e9bf531be3ad85a99a81783aa23ffd4ca2b5a6d0000000000000001000000000000000000000000000000201d0f1670f4690edbf111d45e385b2241e1ec7c0d7e483f87ab326686bca0511f000000000000000100000000000000000000000000000020a3c68cdf76781d19db7aa603f4cd91ea38edfc0b5126585e0c4cc27eb1121e50000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba3610000000000000003c0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000001000000000000002058876a708a360c52c2d9739916a5864330c1951494fc274d830354de6c5caeb100000000000000010000000000000001000000000000002069875052c379268df062043b906d4b124f5727f9d842fd62c91d1f91cbedc32f0000000000000001000000000000000000000000000000207679149deecdb133a6fb94a0d7ff74465fc3c6693f57f8043b0630b94de2b59d00000000000000010000000000000000000000000000002081d62fb6f8e3c63bb07414f173e2f1761186f3a609b96be8e54bf144e18bd1e9000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb000000000000003c0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000010000000000000020df671214458725a5eaa07c9ba495d0a2d5246b3f96cc745314c646c677dcc934000000000000000100000000000000010000000000000020cde5b242518872447691300cad1ddad8fbc2b2146b8eeb6bb2195d09d32e640e000000000000000100000000000000000000000000000020c0d7bac2d29fe515550469b26c52547108748ccb8ea0ca9fccbce5734f5264e5000000000000000100000000000000000000000000000020c8c39661891e6889268d1a75425c16fa10b5ce02a5817678bfb61fd4d7ba745b000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003c00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000100000000000000205d63b0bbc53756988b4a08a2fb6ba0ce39a6a7f1867e038ab435b926bb3ebe9b000000000000000100000000000000010000000000000020fb24d677b5145543fa1d697af1be5a72082e6e5f210e424fed652e51a8296a1300000000000000010000000000000000000000000000002013cb09170444222793c8a76d1d3876b7475882d743c475bb142672de6a05a9f60000000000000001000000000000000000000000000000208ef32cdd20ab9840d12ae9a0d741f7d3f389289d74ea182f48337a1058f3b15d000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee2000000000000003c0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000209bc2c75454bcfc94ac270f961a31b5dbf809701331b09890ec02bca52668699f0000000000000001000000000000000100000000000000201d7316afec9f3ec58c2cac44ce02d87da3d376e4e35c6e213b47d33053367c03000000000000000100000000000000000000000000000020f724f9908f48731cc2db122190e08a30cf56ef00f006f8ac9b5475671045abf9000000000000000100000000000000000000000000000020a79432284160ffbe7605792344dd2c3b75b783de349a59eac5f705dbb10d4fec000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000350000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020940f95c06a507e6f7d898e90b69cf59c322cbc1bf161c7e7708a20e2008daae000000000000000010000000000000001000000000000002019594bf3fa8c4ace4d35341a4d29a3224bf349b4111630660fbc89ec6aac104c000000000000000100000000000000000000000000000020f4d1e64380a2c05ab0dc64ea31b5e288a4325921fa907811ded50419cc51d1ad00000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000350000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000000000000000000002053e10520c89a9d1c8bdf0299253b3e1ca6f732d90152e564751bae242a1ea2bf000000000000000100000000000000010000000000000020758d3cb1dae81bd7b5510b225e37ec1c33d27e558dbe4753d95613ab2950d5bb000000000000000100000000000000000000000000000020ecf960f1bd96e938be9efe0e8178c6faac8e4dade22047baafaa2cc5b776587a00000000000000010000000000000001000000000000002025513b7f08a347e3b4653b6a5b7b4504d17f3335eb68b911a07580668480ea5f000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000350000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020eae24cc712d4f1a65e36209bf029b296466b50798ad83a68022cdfe9d0a71b53000000000000000100000000000000010000000000000020d93941bd50076e052ac499d54a60936db5cc808ce93db11f3b5f2dbb9e84fdc900000000000000010000000000000000000000000000002057231a860f30ab1475bd8cdc0a3b4a8273fc215ab0540eb9f5f6b4129d47a3f6000000000000000100000000000000010000000000000020a61e4bd78e6377780bb7580457ace8abedf45db5c6b1905e0fc76ee6b540ec6f000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003500000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020a1c9ebb7e9894aaf5a518e2e5add167f6b300838e38da25e7147996653a3358800000000000000010000000000000001000000000000002018f7652e6b6650db62a7971a3982b0cb933246f7ee71973244096397d4069a48000000000000000100000000000000000000000000000020e07633752c9a7d0ab4d4825434743a1a21102cdb34ac00f9cb0067d34ffca5d90000000000000001000000000000000100000000000000201273eb79132092546fe9e443e04ce70d652607cb46845d8269cc51b07a5e2636000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000350000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020c0aebb3503b26954be7c1775bef21ec8009433f43163b9a737d5f6404505ab33000000000000000100000000000000010000000000000020f1df539161429e1cffb6b4435a018168f9836656cd0fc0043c6de7fa4ee6ca11000000000000000100000000000000000000000000000020f53683e29b7f89c0854446521e9f08cece64960ee2669247016ed70294c71940000000000000000100000000000000010000000000000020ca0bbcf3ba7d635c190762d1905f0cdb8d6b2af98d668d282ab970819d0796e0000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000110000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020aa280aedc2e8dfab0553724983ca17476bb280a4ebce83a2eb4b9b64f74ac88c00000000000000010000000000000001000000000000002025fba5ee32d0d9d008535ac6a7988f247a404065ee59ff9a7ab673fd8e76748e000000000000000100000000000000010000000000000020931fc0f60710e5550ab975b9da43260c532daa1aa0981b844a267625739ffb1b000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000110000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000205a9874caea8e9e7872541b46232a9d4ca3ec860a14af4e58996c80c5e6de6716000000000000000100000000000000010000000000000020533af2ef25021e15fe55aca5e4979523d6e65ecbcdb590a881474ec1388d0773000000000000000100000000000000010000000000000020db75f2f16c24e1f86b75a7358eb0bff98736d767e792ba6500dc20c7a0f5b35f0000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000110000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000000000000000000206749c92f83affaea1cc3c48d46c59c6e6d55476a9d2d45fc423f49f3ac4d54a6000000000000000100000000000000010000000000000020b8afb98b9198daa87dda8a04edc3349eaed9056af0fcedb7edebe0393976711f0000000000000001000000000000000100000000000000208eca8e88d782a2c50068f91856cdb198e83fe75b53d95126db0ce5ba952fe000000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001100000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020968fb6868e8e6ce1901bbc4a74360268a93d09d7ee7d0522de2875891fd1541a00000000000000010000000000000001000000000000002052d82acada3026c4c21ecc2d34974875b8167e5120f6dc4a3d2696a6c0e4f004000000000000000100000000000000010000000000000020ef20ce255fff4244508dc0bf36aba9eeda1f94ba8303d6b23520cd52b598e748000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000110000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020a101b2c1f509805a150824550aae8f773f226d7554a3bba7bdd098622cdff74f000000000000000100000000000000010000000000000020407f2fe6361457a84abe1bfbda60edd29b3305f1a37e916f7f923783f031398b00000000000000010000000000000001000000000000002003de737e05bbc77f493cd34846521552aa2f36e8056c458268b5b2cb15e5e244000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000170000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020a0c329674d73730336f6ce60133ccf4aac3865051d354d21037187f6396071b3000000000000000100000000000000000000000000000020864e47462260929d60876a0babd915b08229a85eed60fe22ac85ec61ee1e866e000000000000000100000000000000000000000000000020080b28b1dece6dde43a662bb2943cbbcfb4977254ddfb567d20ec3694d07decc000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000170000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000206ea536af2fd3bd821edd7c84bc064037e9a107cd5fd0d654bb372e1e4898378e0000000000000001000000000000000000000000000000206fd3b782e68eb5fac7cc20822b3858250b376d7e56a4db91bf0cb95ec3c4170b000000000000000100000000000000000000000000000020ace429d6a2e0ab83426a9b9ba04ca6bb90f71e7ceee02c278a82a7859d4bc1820000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000170000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020bb8af4f85876487eb137718690c11c37280284c2b151fac99b8f361ce8974a2b0000000000000001000000000000000000000000000000202141d6e5fd028bcf7861ef8a16b249210fe3d52dc20d20c123863cd1b492a65f00000000000000010000000000000000000000000000002005c7231b545188d801508269d5e616db314e98d0d1d96b4d859cba418919dce7000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001700000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000200db762ea054948c2ec8c739440bf53ea0418ca6842893f345bc8a494402956c2000000000000000100000000000000000000000000000020688ce44aebd966aaa0c0b45729d96bcbe7ef069f1dbd95b956527d6cbc0a81cf000000000000000100000000000000000000000000000020792b54430c2c7a5202334fa577281d00396a0c9d5a6149e8832c12c7a186e7b6000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000170000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000000000000000000002016f906be5610aa02020b6123c0a5b395a072dcbdc2714977f5f2615e64adc2a3000000000000000100000000000000000000000000000020484b1a9029b822ebc27ac439a0f45a04f55b9d4dedb7bacbc5e2a7b131bac56f0000000000000001000000000000000000000000000000208eb0d4e58e0649d2818142c4c7cefb08dd13094d3a575e5054570ef7155a1a53000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000240000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020362ac7a88313f3547caa33e18f1bf2d22be8defe6282b59d479c56f15d583bca00000000000000010000000000000001000000000000002089d1f5e7ddab385cee9ef3c6e039bf9dba4cd0c7bf5968af1e87a54f1c8b98f4000000000000000100000000000000000000000000000020254ad08d8f651887ccdedd4264cbe8ac8a820f273e7e6a6eec9571b2bee83fed00000000000000010000000000000001000000000000002020ca2ebe06b78b863c42ebd67e820162645990710fb2212c31964405270d49be00000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000240000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020d748a576eca49ddf992cba75efec0f1d12f629d58fcde8a33bb703dab645e37f00000000000000010000000000000001000000000000002048d27b60aa9bff8a3ad72fa50e506b89b2c70434429163e60518d3b54dd8d4f40000000000000001000000000000000000000000000000201e4829424cc3731a985d6b9986b78d322139a6d6965ff67e79bdb4abe7107c85000000000000000100000000000000010000000000000020cb0c915a2fbf42f67d8ddb4687cdb94a70ea6dba8c337fad662aef43a1ff09120000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000240000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000001000000000000002028cb827a61cf5bd7ce600cd7f3eab1c60ed4942811ac1915593695bb3dd953d80000000000000001000000000000000100000000000000207295a2c10b1acf16129d092a7b9af37c389c4566a2bf22d8c69e0cf9f8719868000000000000000100000000000000000000000000000020504c7cfdf9b9d8a744d6d07015dc694b3c1e96fa04d9711bca9e89e47aea70bd000000000000000100000000000000010000000000000020ec94ab368df3700c4e485459b45d7544203947bced6933b6d2419aa51552b1e70000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002400000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020e1479132f529d1d3199b01f807de0d91cf20dcad1e7b80585f280b09fbf3754b000000000000000100000000000000010000000000000020d8587c740444d396342bde08fcc2aa14d09b3841a86867a8968a39985c1aae5f0000000000000001000000000000000000000000000000201b51cd96b5e7d3c5907dc40ebc575470d0b53cb58c9a11acee482a80587db2ca000000000000000100000000000000010000000000000020ce508bfa21ae59f4e3a574d7cf9aa2266b30a92dca771c1fb0e1be0bca3e9fec00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000240000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000209c5dc119f411a0ef5642262c45fc391cfca0ded082e37ef7d49b5a2ed9518bfb000000000000000100000000000000010000000000000020dbb5f88bfd82f174b6b75b33b6e1b57f9e8c171e2884327da5b36cbefd7067110000000000000001000000000000000000000000000000202f7c3c123b082e8ba8e01175c4f6ae18dec43d9efebf55f2769ff4eef4d2582b000000000000000100000000000000010000000000000020c1bc4adb66edbd4e3dab7de23832af2889cdfe7d4f7313a79599994c65f1d267000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a6000000000000001c0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000001000000000000002037b6c67d542cc82de1bdb70e49b269e367dd16e912af30b78c822650621202e20000000000000001000000000000000100000000000000202ec5ed8b835c098bcf1fbaa0f4aab5053575fbe2dd675f6a8528d2ae539d073300000000000000010000000000000000000000000000002070f93532da12d95bd9b02b2acb02b74a3a532fbd8d1ec178ca7acf3e54865fb800000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001c0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020d4f690692d3e9a181339765b83955f457fa5d73471c81b01a24740e196531779000000000000000100000000000000010000000000000020e4b2b21638b26d0fbd21e1a61477670910de9d6a5a534cc89f2e66926c92590d000000000000000100000000000000000000000000000020635115868949cf601b309c4df546e182524084c9811bb9ee1fb0b250cc7303b00000000000000001000000000000000000000000000000201d592eaf7b775ac80f80f65ac71600e7b42e34c2b41369815d26559f705c392800000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000001c0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000100000000000000201066782497ccf705d900039fb3b7501efd8697f2a483b80f564d0e896b1215be000000000000000100000000000000010000000000000020197b3fade2da4dccae7c39182e13ca3c80d7ab354bd093846a22e052814766ac0000000000000001000000000000000000000000000000201ee947871b7c23ff35900da33157b598a2a0de9b805ba0c5a66fd0f7a777b96e00000000000000010000000000000000000000000000002008ef744cc4c71b3dc0ad6709747a269607614084afb6b3ce67e9224db4721b010000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001c00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020e9e57568a0eb81c0ea6d261029387a8c42c11b8e68c97a120de98697bd08fc83000000000000000100000000000000010000000000000020ea6edfa94c83df2c0120776cb5622744d2e6b641fe47e78813b62588fad5a6e8000000000000000100000000000000000000000000000020f5ce7f2db68efde598b83474b5a87a6b370a42d4f72227049cb83d4df11bb6a10000000000000001000000000000000000000000000000204a15bacd4d08e8dc5188fa2617ce3f2048ab093a457dbb1568a132452c1264e70000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000001c0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000001000000000000002029ba95cb86722cea31e94a7849e0f54af04c4e7e477f3499d9d82d65b310a447000000000000000100000000000000010000000000000020fd33a21eeff04663387fcf1c31e815a571114521fabf808a5505ae8eb3bc6104000000000000000100000000000000000000000000000020b4a1b1f3f1cb855740daf8c4833a49820c58975955c04f60f0e741d105e354a6000000000000000100000000000000000000000000000020b705227efab8bbcce7e6efa6e6c2c8c24b0165a04b60ba4382b0c252dfa09b540000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f000000000000000d0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020b2bd9166fb292fd068715be077faabd5100a082db2ee30b660a7a840a453295e00000000000000010000000000000001000000000000002057d79dbf8ed8b8aa3585c69adf87ef75ce64bdf75ac79a37fcbc979ba37b0a3e000000000000000100000000000000000000000000000020e4531c0cf3964a849077d3f66aca1c780770dbd36f02f9e591cac1251871b88a0000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000000d0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000205e14be2c5de23e6ed70fd6d842a4c814558815484501d6531472c2a4b9b7c626000000000000000100000000000000010000000000000020c3bd632f94a0f936e286d09638e32d9a2fc3eea8f13d18b4ae707edd67fdf6740000000000000001000000000000000000000000000000204e242999845fcac82f38a2f8827ba9e31d01ad478796f9013f43e0bec62d088f000000000000000100000000000000000000000000000020d1816e01b598e08ee1c459e3283ac87d454a19f2e41f3f85158e9f10b9faef71000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000000d0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000000000000000000002090ff676b9c14f4671a0e91cf403a88fb0b22e7a8a8a370aba0a28e26bcea1ac300000000000000010000000000000001000000000000002020093024ea2eaeb3c5934a41935a11dab2086c3d0aab8084952a99d9f0d224c20000000000000001000000000000000000000000000000207e61af4d68362cc7280f55cf450babaa4c27e0d7b623080a1dc3e5db95a6761d000000000000000100000000000000000000000000000020dede73056e97d895ee544cd1f515e7f872b01d10ad51bde6457326fcf11c7b20000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000d00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000000000000000000002031239eb1c08af680c4f00771654ce894f0d3587f58ea53c47ed4a11c1fa85145000000000000000100000000000000010000000000000020a91a262b04c6a7139a4bd4ed8b0f30807db95327049cf2a6d7b25f8be94e37b90000000000000001000000000000000000000000000000208184ee99edcbc305656197375ced84668d6a6dfe60525a4437554af40db6661e000000000000000100000000000000000000000000000020d4666304bf2809e0fe3311603148aa6aef2cc88395ddc38a022a9c742dada87d0000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000000d0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020eb8d9836cb953c6437c496ece6cbdfdd7243ec51671ccb3af47a85fa778e312c00000000000000010000000000000001000000000000002018c3f53aac4183df50ec2d566e245042dd3e3d71adf78621df52d71069399b8400000000000000010000000000000000000000000000002047d66e60185c2492df2be91f5c8e879243c3ec6d4ebe0b5f2c37fcf0fff4d188000000000000000100000000000000000000000000000020c1a70db1dbbbf1d266cc63410c3e1f798fbc2f00cc35d561bc0706474f565a7d000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000100000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020111b56eef069a81117bb82e07a549448811f7b498d0b8cbeaf3c460faf2448d100000000000000010000000000000001000000000000002025fba5ee32d0d9d008535ac6a7988f247a404065ee59ff9a7ab673fd8e76748e000000000000000100000000000000010000000000000020931fc0f60710e5550ab975b9da43260c532daa1aa0981b844a267625739ffb1b000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000100000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020bac9d793deaf5ca2cb626ce251dbd5baa016d0ecff6b13d4ef9cd35e7e50fc5e000000000000000100000000000000010000000000000020533af2ef25021e15fe55aca5e4979523d6e65ecbcdb590a881474ec1388d0773000000000000000100000000000000010000000000000020db75f2f16c24e1f86b75a7358eb0bff98736d767e792ba6500dc20c7a0f5b35f0000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000100000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000010000000000000020e6015a26b94bcdb79e6f934cfa346d3ee0e8daf62553fa64f1fd936655d5bd66000000000000000100000000000000010000000000000020b8afb98b9198daa87dda8a04edc3349eaed9056af0fcedb7edebe0393976711f0000000000000001000000000000000100000000000000208eca8e88d782a2c50068f91856cdb198e83fe75b53d95126db0ce5ba952fe000000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001000000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020855fd74a9c7da68d5343c0434ff683c9e73dc407ec49776b81e6584876f458cc00000000000000010000000000000001000000000000002052d82acada3026c4c21ecc2d34974875b8167e5120f6dc4a3d2696a6c0e4f004000000000000000100000000000000010000000000000020ef20ce255fff4244508dc0bf36aba9eeda1f94ba8303d6b23520cd52b598e748000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000100000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000001000000000000002038d9cc8443d7d65106239e86f0a2aa9c84d77501c33085e73594b698d102e803000000000000000100000000000000010000000000000020407f2fe6361457a84abe1bfbda60edd29b3305f1a37e916f7f923783f031398b00000000000000010000000000000001000000000000002003de737e05bbc77f493cd34846521552aa2f36e8056c458268b5b2cb15e5e244000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000320000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000100000000000000204551b7e47f6ca2d50d8dcfc72d7f82c5bf816540ff8972425307a26bbfcc903800000000000000010000000000000000000000000000002020357880fc8e6dd74df46742da252f118fdb87961923030914ba2e8adf16cb52000000000000000100000000000000010000000000000020d668a432d047c9e275f7c7d20e0a761a44ce7e63d76a8974123279ebd303ad5300000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000320000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000001000000000000002062fee7f2be76701c26cff7c1ab717bf1ca4084ca31e76a32ab71642ba634c735000000000000000100000000000000000000000000000020b36150103dfa24ee16b032ef9999b88d058ffbfb179c3608748ca0b3b79700ce000000000000000100000000000000010000000000000020a7afa996971e49948edcc6953b8e85b3a85abca1a8ca02bb441959ca7fbddc1e00000000000000010000000000000001000000000000002025513b7f08a347e3b4653b6a5b7b4504d17f3335eb68b911a07580668480ea5f000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000320000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000001000000000000002031162479f92c254feaaaca777ef6dd761c930c30b482aecbaaf17f69f110fd750000000000000001000000000000000000000000000000209f5a2e0d1d216a03f22617946d77aff086f5e10c79f90d4eafcbe495bb54cb7e000000000000000100000000000000010000000000000020f956d888804e64a270d247562d2e4df7cb3baaff4b906f94b4e64fcb67d3fb92000000000000000100000000000000010000000000000020a61e4bd78e6377780bb7580457ace8abedf45db5c6b1905e0fc76ee6b540ec6f000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003200000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000001000000000000002074850d3714892ae3c1155975b5ae3ff1e3cc3bf09e27ed58c1307f75be72257600000000000000010000000000000000000000000000002069b52e0358d48b02c58f9efb5a46719a68c0846a23a5cd0907fb795dbe8a38da000000000000000100000000000000010000000000000020695844727e2fac06bb31a161155a39527775fb0591002573a9e4d4aee1e794880000000000000001000000000000000100000000000000201273eb79132092546fe9e443e04ce70d652607cb46845d8269cc51b07a5e2636000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000320000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000010000000000000020c0df937f2aceb7764219a39c845fd1c9a31dc99746d96af47c7fc8a029fc87860000000000000001000000000000000000000000000000201c91dcf009aaa43325becc5afa841bc4e23160c3c4cb657fac24880e6a26d3d5000000000000000100000000000000010000000000000020b4683887999b2d9372eba712b4bcbe56fe7c3bbf097eb71436f394f19c5e540e000000000000000100000000000000010000000000000020ca0bbcf3ba7d635c190762d1905f0cdb8d6b2af98d668d282ab970819d0796e0000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000130000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000000000000000000002090b33c873032a5ec45b5f67351f43f1b225ffd1fb110a4b7260789aee51a15d00000000000000001000000000000000000000000000000200314646f9ee1f2da5ba523b66c95aea6a8139895748d499e7ea045d702e5076c000000000000000100000000000000010000000000000020931fc0f60710e5550ab975b9da43260c532daa1aa0981b844a267625739ffb1b000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000130000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000000000000000000002046fbba018a8a4a6e5e98ff98b6f815b2ded50ca9a7a90716180a022f9187825d00000000000000010000000000000000000000000000002028038eef8da57d82ce0de2ccd5f23763a39282ebbd5fb66a194bcecda2353b37000000000000000100000000000000010000000000000020db75f2f16c24e1f86b75a7358eb0bff98736d767e792ba6500dc20c7a0f5b35f0000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000130000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020d2ffec8fc1d53dec40b42a89c0cae0dc549a408cc92a2e1de6b140998dee7cc700000000000000010000000000000000000000000000002093ba70ed0c69d5b989f971113943ff263312cc3df6696a3a6c2f47a6d1d600a00000000000000001000000000000000100000000000000208eca8e88d782a2c50068f91856cdb198e83fe75b53d95126db0ce5ba952fe000000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001300000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000202c0f8e4c859a1b20d731414777322cb6bdf2e51a797b98f208ceff77a4018e8c000000000000000100000000000000000000000000000020fadaa9ce6822813c952cf021b4274e0bb104bcbd8836b7475735d844eea89533000000000000000100000000000000010000000000000020ef20ce255fff4244508dc0bf36aba9eeda1f94ba8303d6b23520cd52b598e748000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000130000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000000000000000000002014803cd2ff52736be7bae826f5a432e5b31ba001fda84d1a774978f7b7f4f6f70000000000000001000000000000000000000000000000205761fffcf89e32cefe31af94ba1a6ba27b6bcb99a3272756b2193dd132a912fb00000000000000010000000000000001000000000000002003de737e05bbc77f493cd34846521552aa2f36e8056c458268b5b2cb15e5e244000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f000000000000000b0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020ad82ea2a45d85b48e6c82ed5ce28deab27d4ccdf080aa1d4cce08b7c9106cc24000000000000000100000000000000000000000000000020dfa1f4a78895997367f9cc44c38621692b6fc048ae50b225156222237c41470e000000000000000100000000000000010000000000000020f7575ab7c2207c8a39c727bb104d9b7c0105c5ae631fc01ee25378fbc615b0d20000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000000b0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000203e023ca85a41eea127ce9823b7fd51057b69ed1d562fa1ae9bea0e3a120d71e5000000000000000100000000000000000000000000000020aa1f37e3209956f186a8818de28664641609ece32260276f3cd7bc90fd2eff250000000000000001000000000000000100000000000000205dc15f79b1aa0ed50e58e550fd41c07ace7cdd1101aa37ef4273ae5e9038146f000000000000000100000000000000000000000000000020d1816e01b598e08ee1c459e3283ac87d454a19f2e41f3f85158e9f10b9faef71000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000000b0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020e82250e386293f776323a285ccd6573a592c62a062333d54fee929c0ef13ed7500000000000000010000000000000000000000000000002070360d152385685b7e662a1e2a50c902712bfecfae32367357c1a56b444bbe8b000000000000000100000000000000010000000000000020abf88fdff603d4d880f1564dd8b5a9e24fd51a61c22d45624f73911e449bcf94000000000000000100000000000000000000000000000020dede73056e97d895ee544cd1f515e7f872b01d10ad51bde6457326fcf11c7b20000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000b00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000000000000000000002038c926f2197eabbe9b419500fdc266de56dc8d12378a0e4580631aba1a38fbc0000000000000000100000000000000000000000000000020930e0dd388f89437381d9fbfbd30a20cad6120bbd212c874b3c1322539175da500000000000000010000000000000001000000000000002009f1dd01603cfe8cb20303e6d66fb1ad83bdc7093f7a52699cb4afa68588b483000000000000000100000000000000000000000000000020d4666304bf2809e0fe3311603148aa6aef2cc88395ddc38a022a9c742dada87d0000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000000b0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020f9dfb0b946ae4771487128dd841a82abf366f779f33b704b2447e0dd843c7feb0000000000000001000000000000000000000000000000200b40b1436d0bc1adaefb89a6d250d74c85d9475ff40591b745878d6727b5078d0000000000000001000000000000000100000000000000203c7ec701f5e4b6f4992798f93bc359521c17689c879f0a4d5728d25a602fe261000000000000000100000000000000000000000000000020c1a70db1dbbbf1d266cc63410c3e1f798fbc2f00cc35d561bc0706474f565a7d000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000100000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020111b56eef069a81117bb82e07a549448811f7b498d0b8cbeaf3c460faf2448d100000000000000010000000000000001000000000000002025fba5ee32d0d9d008535ac6a7988f247a404065ee59ff9a7ab673fd8e76748e000000000000000100000000000000010000000000000020931fc0f60710e5550ab975b9da43260c532daa1aa0981b844a267625739ffb1b000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000100000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020bac9d793deaf5ca2cb626ce251dbd5baa016d0ecff6b13d4ef9cd35e7e50fc5e000000000000000100000000000000010000000000000020533af2ef25021e15fe55aca5e4979523d6e65ecbcdb590a881474ec1388d0773000000000000000100000000000000010000000000000020db75f2f16c24e1f86b75a7358eb0bff98736d767e792ba6500dc20c7a0f5b35f0000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000100000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000010000000000000020e6015a26b94bcdb79e6f934cfa346d3ee0e8daf62553fa64f1fd936655d5bd66000000000000000100000000000000010000000000000020b8afb98b9198daa87dda8a04edc3349eaed9056af0fcedb7edebe0393976711f0000000000000001000000000000000100000000000000208eca8e88d782a2c50068f91856cdb198e83fe75b53d95126db0ce5ba952fe000000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001000000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020855fd74a9c7da68d5343c0434ff683c9e73dc407ec49776b81e6584876f458cc00000000000000010000000000000001000000000000002052d82acada3026c4c21ecc2d34974875b8167e5120f6dc4a3d2696a6c0e4f004000000000000000100000000000000010000000000000020ef20ce255fff4244508dc0bf36aba9eeda1f94ba8303d6b23520cd52b598e748000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000100000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000001000000000000002038d9cc8443d7d65106239e86f0a2aa9c84d77501c33085e73594b698d102e803000000000000000100000000000000010000000000000020407f2fe6361457a84abe1bfbda60edd29b3305f1a37e916f7f923783f031398b00000000000000010000000000000001000000000000002003de737e05bbc77f493cd34846521552aa2f36e8056c458268b5b2cb15e5e244000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000150000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000209a7f6ee04285cc053d122b4d2dc01674868c1c4198d702144ec6673d4f1735470000000000000001000000000000000100000000000000209b10e94ccc495ed067a2c6b3180fdcfddf4c8bc779cdf7fc14dde8feb399309d000000000000000100000000000000000000000000000020080b28b1dece6dde43a662bb2943cbbcfb4977254ddfb567d20ec3694d07decc000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000150000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000203ac1614b3ebad34b37931ec463de127c8bb45876ebd8f753c177b3b708f2eccb000000000000000100000000000000010000000000000020576d77dac3a70e1802ac9cbaf6777f6090720d9e7fccb6078e57d4811b497ee2000000000000000100000000000000000000000000000020ace429d6a2e0ab83426a9b9ba04ca6bb90f71e7ceee02c278a82a7859d4bc1820000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000150000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020b315c72fa41b10fad5bfe97985d9d38cdfb966274cd890d82281a154ddf380870000000000000001000000000000000100000000000000209c160349b93bdba6b3a6c3afcd2503bc1a79db30aeb896003c136aefc2ff9b3a00000000000000010000000000000000000000000000002005c7231b545188d801508269d5e616db314e98d0d1d96b4d859cba418919dce7000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001500000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020dee119a0ca0d75cbae521579b9854eb21e572f571eb2bc9024914fdc09b7d6760000000000000001000000000000000100000000000000204d597031c84975b5e61070724ab3d606668a57320d7d99c5a77ab1a1d5221bb4000000000000000100000000000000000000000000000020792b54430c2c7a5202334fa577281d00396a0c9d5a6149e8832c12c7a186e7b6000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000150000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020fb6f21306c23be5f073086377b0217641f535be016cabf1ed1dc1319d6107c3000000000000000010000000000000001000000000000002064127693e8da9c8e8a48196327c3c787b11da3246b2e852de189d6ccb7f2da7a0000000000000001000000000000000000000000000000208eb0d4e58e0649d2818142c4c7cefb08dd13094d3a575e5054570ef7155a1a53000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f000000000000002c0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000100000000000000203143eaf6c1aa46c7aacd87875465de486e36c316b7a0b8bddd6c1517dc726d4d000000000000000100000000000000010000000000000020f10b3d1735c0e4a98365cd6a45c7b241ee1170e0a7ba2fc4a24bab4dfa03f86b000000000000000100000000000000000000000000000020a99ec68e5e702c95d72c271dfc6b7fba83a95d182bfe10c3b55beafee6b02033000000000000000100000000000000000000000000000020bc7cafa2d5bbcd43a2687bac1aaae39ea07c2b052355ee18f7bed28530381a1900000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba3610000000000000002c0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020325148bc2c92b4a9b7fbd60e3c2c802e14a460b09bb186e104c1c59b926381ac000000000000000100000000000000010000000000000020bcfd43a16b89cd418f8366dfd07ee2192ea7ffa028e030d1b656dc88979acb7c000000000000000100000000000000000000000000000020eb65f60cc50d4a78bbd6805dbdb2bf94cc2376e36aa8b971a31f71d4de0675d8000000000000000100000000000000000000000000000020f69c63796b0fc3bb3288db5fc6b6321528bbbae678a35651696d958320b7b7430000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb000000000000002c0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000100000000000000204f0fb56f75e03da7f2f554b9aab31d03c16451499c7e038f1b1254547541cefb000000000000000100000000000000010000000000000020392bbf45b43f0b143a079c45cdf97d23e309c818a7f50d8a138242f783f140e000000000000000010000000000000000000000000000002006426e33baa1776913fabf5a4a6b22a45faa4944ecb6ee3596d2a7f071dad382000000000000000100000000000000000000000000000020907caeb633215ff4129e7dab9f17c9025c93f92b16178fd8678a98fad237f0c60000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002c00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000100000000000000205d5491afbc2809464939001fd12ae88cb0a41ac4661174168145ed550bc70fd1000000000000000100000000000000010000000000000020facfada9baddf0e1d85bdc12bcb699700bc1eef3a5c1ac428f0a1b755f36b17400000000000000010000000000000000000000000000002045de5171730c798b920963229c38e2585a2ba74ae374a05c055e8f9ca4de381a000000000000000100000000000000000000000000000020f873579facce3b51fb36341332ab2926a95297aa0acd0b4108cefea53d9e1c8a00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee2000000000000002c0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000001000000000000002045f539421644e8c322c67c727085f4fa90364e2b03fedb21592e199092e759af00000000000000010000000000000001000000000000002045bc4c337b54e6e486f7686f4544d67b52d3d9407afb6f807b84c181ecad3077000000000000000100000000000000000000000000000020fce731c6ff148191e5989829d154266d461abbe1b87f3bf49e080e482df6295c00000000000000010000000000000000000000000000002083502f4dae1d1e7cce3b35cd08cd8214523868a7bad81a68fd16bfd40a434166000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000140000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000001000000000000002082733cd589abe0f03b4dffe58247afcd2988371e94575cc7b881fbe2971094360000000000000001000000000000000100000000000000209b10e94ccc495ed067a2c6b3180fdcfddf4c8bc779cdf7fc14dde8feb399309d000000000000000100000000000000000000000000000020080b28b1dece6dde43a662bb2943cbbcfb4977254ddfb567d20ec3694d07decc000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000140000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020ac03bba973f9db60405efd99de3388034a573b54a4261eb03c3e2c20b8bd8087000000000000000100000000000000010000000000000020576d77dac3a70e1802ac9cbaf6777f6090720d9e7fccb6078e57d4811b497ee2000000000000000100000000000000000000000000000020ace429d6a2e0ab83426a9b9ba04ca6bb90f71e7ceee02c278a82a7859d4bc1820000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000140000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000001000000000000002020c3867137bd66e5ae3cc59759dbb65bc16ccac01adc0650317f7aa6742d485a0000000000000001000000000000000100000000000000209c160349b93bdba6b3a6c3afcd2503bc1a79db30aeb896003c136aefc2ff9b3a00000000000000010000000000000000000000000000002005c7231b545188d801508269d5e616db314e98d0d1d96b4d859cba418919dce7000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001400000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000001000000000000002036af30d89ea435f7697c2571f0fd4b21940d3569d3b6aa5da5ab2a139ec941dc0000000000000001000000000000000100000000000000204d597031c84975b5e61070724ab3d606668a57320d7d99c5a77ab1a1d5221bb4000000000000000100000000000000000000000000000020792b54430c2c7a5202334fa577281d00396a0c9d5a6149e8832c12c7a186e7b6000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000140000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000010000000000000020e6129739f096f01e63ff5fd506580df7ed092542294fdec8b931b3ab9e3d289200000000000000010000000000000001000000000000002064127693e8da9c8e8a48196327c3c787b11da3246b2e852de189d6ccb7f2da7a0000000000000001000000000000000000000000000000208eb0d4e58e0649d2818142c4c7cefb08dd13094d3a575e5054570ef7155a1a53000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000200000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020209825fa6d197927a0715d3fab3f49b0ae6f3efd3002918c17dc046ee978861c000000000000000100000000000000010000000000000020d087600766bd1df7913f14ae88a2e9b5b651504535f46ee5da14954af94de668000000000000000100000000000000010000000000000020cd2cd9ad2c779aa3995be1014c80f94a5247dc5109218180e006fbbe588ce2d800000000000000010000000000000001000000000000002020ca2ebe06b78b863c42ebd67e820162645990710fb2212c31964405270d49be00000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000200000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000100000000000000209aaa5cb490c71c98b9c07167071ae295f65b0a068c84a1f8eb2bda1e9dc68c8200000000000000010000000000000001000000000000002005e8acde41240846b1b148e6f1731d982d9499b315b49571f3c4e12d88da5822000000000000000100000000000000010000000000000020dfd7eac1317ff666e7a446a260d70430c9aa0f0bfccfe2edf4ae24a5d163595d000000000000000100000000000000010000000000000020cb0c915a2fbf42f67d8ddb4687cdb94a70ea6dba8c337fad662aef43a1ff09120000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000200000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000100000000000000209f162f0f2e1022c5e53050c46473ed871f621c6d953e6b6adda61d3b41ae303600000000000000010000000000000001000000000000002064922111b65302bddd53948632f9de2e4135390b8620b248b8a335776dedfd030000000000000001000000000000000100000000000000205dea807bd3761c569e5d91569ff1a4d18ca2750ddf526909660f91b2f84080cf000000000000000100000000000000010000000000000020ec94ab368df3700c4e485459b45d7544203947bced6933b6d2419aa51552b1e70000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002000000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020a6ef89ab9286315344599180c41362feb0e0dfafcedeb8970cb5549a047ce2a2000000000000000100000000000000010000000000000020aa69a887755987122b41014784240cfa2ea17a4e9b3aeba12dc7762da7582ecc000000000000000100000000000000010000000000000020c802860c649238e4c1cbd0ff648821a708a95501e146298b5b303abf07320669000000000000000100000000000000010000000000000020ce508bfa21ae59f4e3a574d7cf9aa2266b30a92dca771c1fb0e1be0bca3e9fec00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000200000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000010000000000000020ed9a22f6279d115c66072ff65bbcf9f22659696c2f828e556ae86d9a52d8431800000000000000010000000000000001000000000000002001ae3a0c28f45072672fa1d9d722f50b96f496c2095844698ce94190b48086ca000000000000000100000000000000010000000000000020378b42427141ebdcf4a6aaa2ee39a4e2bd01cb4125d3f5ce563ae81c900aa929000000000000000100000000000000010000000000000020c1bc4adb66edbd4e3dab7de23832af2889cdfe7d4f7313a79599994c65f1d267000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000150000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000209a7f6ee04285cc053d122b4d2dc01674868c1c4198d702144ec6673d4f1735470000000000000001000000000000000100000000000000209b10e94ccc495ed067a2c6b3180fdcfddf4c8bc779cdf7fc14dde8feb399309d000000000000000100000000000000000000000000000020080b28b1dece6dde43a662bb2943cbbcfb4977254ddfb567d20ec3694d07decc000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000150000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000203ac1614b3ebad34b37931ec463de127c8bb45876ebd8f753c177b3b708f2eccb000000000000000100000000000000010000000000000020576d77dac3a70e1802ac9cbaf6777f6090720d9e7fccb6078e57d4811b497ee2000000000000000100000000000000000000000000000020ace429d6a2e0ab83426a9b9ba04ca6bb90f71e7ceee02c278a82a7859d4bc1820000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000150000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020b315c72fa41b10fad5bfe97985d9d38cdfb966274cd890d82281a154ddf380870000000000000001000000000000000100000000000000209c160349b93bdba6b3a6c3afcd2503bc1a79db30aeb896003c136aefc2ff9b3a00000000000000010000000000000000000000000000002005c7231b545188d801508269d5e616db314e98d0d1d96b4d859cba418919dce7000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001500000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020dee119a0ca0d75cbae521579b9854eb21e572f571eb2bc9024914fdc09b7d6760000000000000001000000000000000100000000000000204d597031c84975b5e61070724ab3d606668a57320d7d99c5a77ab1a1d5221bb4000000000000000100000000000000000000000000000020792b54430c2c7a5202334fa577281d00396a0c9d5a6149e8832c12c7a186e7b6000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000150000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020fb6f21306c23be5f073086377b0217641f535be016cabf1ed1dc1319d6107c3000000000000000010000000000000001000000000000002064127693e8da9c8e8a48196327c3c787b11da3246b2e852de189d6ccb7f2da7a0000000000000001000000000000000000000000000000208eb0d4e58e0649d2818142c4c7cefb08dd13094d3a575e5054570ef7155a1a53000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000200000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020209825fa6d197927a0715d3fab3f49b0ae6f3efd3002918c17dc046ee978861c000000000000000100000000000000010000000000000020d087600766bd1df7913f14ae88a2e9b5b651504535f46ee5da14954af94de668000000000000000100000000000000010000000000000020cd2cd9ad2c779aa3995be1014c80f94a5247dc5109218180e006fbbe588ce2d800000000000000010000000000000001000000000000002020ca2ebe06b78b863c42ebd67e820162645990710fb2212c31964405270d49be00000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000200000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000100000000000000209aaa5cb490c71c98b9c07167071ae295f65b0a068c84a1f8eb2bda1e9dc68c8200000000000000010000000000000001000000000000002005e8acde41240846b1b148e6f1731d982d9499b315b49571f3c4e12d88da5822000000000000000100000000000000010000000000000020dfd7eac1317ff666e7a446a260d70430c9aa0f0bfccfe2edf4ae24a5d163595d000000000000000100000000000000010000000000000020cb0c915a2fbf42f67d8ddb4687cdb94a70ea6dba8c337fad662aef43a1ff09120000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000200000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000100000000000000209f162f0f2e1022c5e53050c46473ed871f621c6d953e6b6adda61d3b41ae303600000000000000010000000000000001000000000000002064922111b65302bddd53948632f9de2e4135390b8620b248b8a335776dedfd030000000000000001000000000000000100000000000000205dea807bd3761c569e5d91569ff1a4d18ca2750ddf526909660f91b2f84080cf000000000000000100000000000000010000000000000020ec94ab368df3700c4e485459b45d7544203947bced6933b6d2419aa51552b1e70000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002000000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020a6ef89ab9286315344599180c41362feb0e0dfafcedeb8970cb5549a047ce2a2000000000000000100000000000000010000000000000020aa69a887755987122b41014784240cfa2ea17a4e9b3aeba12dc7762da7582ecc000000000000000100000000000000010000000000000020c802860c649238e4c1cbd0ff648821a708a95501e146298b5b303abf07320669000000000000000100000000000000010000000000000020ce508bfa21ae59f4e3a574d7cf9aa2266b30a92dca771c1fb0e1be0bca3e9fec00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000200000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000010000000000000020ed9a22f6279d115c66072ff65bbcf9f22659696c2f828e556ae86d9a52d8431800000000000000010000000000000001000000000000002001ae3a0c28f45072672fa1d9d722f50b96f496c2095844698ce94190b48086ca000000000000000100000000000000010000000000000020378b42427141ebdcf4a6aaa2ee39a4e2bd01cb4125d3f5ce563ae81c900aa929000000000000000100000000000000010000000000000020c1bc4adb66edbd4e3dab7de23832af2889cdfe7d4f7313a79599994c65f1d267000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a6000000000000002e0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020747bba5f58ec7a15c1d2a13deb552cedc032b4832e58b846730270e15dcf2df100000000000000010000000000000000000000000000002039207a50ee132e79b7d0ce2800c532ee3a79757e9182e86f047b4749e0a8f553000000000000000100000000000000000000000000000020a99ec68e5e702c95d72c271dfc6b7fba83a95d182bfe10c3b55beafee6b02033000000000000000100000000000000000000000000000020bc7cafa2d5bbcd43a2687bac1aaae39ea07c2b052355ee18f7bed28530381a1900000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba3610000000000000002e0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020ff1df323b8b672d14cec25facf3f20caf4e8864e2ba2a70a6760804db98f221400000000000000010000000000000000000000000000002046c654f85322efa17d6f767fbdb262d58f272795ab09da595b797b6dbc104b67000000000000000100000000000000000000000000000020eb65f60cc50d4a78bbd6805dbdb2bf94cc2376e36aa8b971a31f71d4de0675d8000000000000000100000000000000000000000000000020f69c63796b0fc3bb3288db5fc6b6321528bbbae678a35651696d958320b7b7430000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb000000000000002e0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000001000000000000002024b74684da23d10e0063b0b4bbe9aee2739c33c81812cfcba39431c71fbe479400000000000000010000000000000000000000000000002053f8d1326552cc01162d03184cb369965f4fe3b3f9288f37fb45fe4cb085e3d900000000000000010000000000000000000000000000002006426e33baa1776913fabf5a4a6b22a45faa4944ecb6ee3596d2a7f071dad382000000000000000100000000000000000000000000000020907caeb633215ff4129e7dab9f17c9025c93f92b16178fd8678a98fad237f0c60000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002e00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020e9ffc15fee06636ed209732ec8b265cb3a55d8baf5f49ed7837cd08dc0fd258c000000000000000100000000000000000000000000000020c2c3840e2225f4c86bdad2b4e2fdb543bbc7c0eff9166fd7bb13cfeeaac17bdb00000000000000010000000000000000000000000000002045de5171730c798b920963229c38e2585a2ba74ae374a05c055e8f9ca4de381a000000000000000100000000000000000000000000000020f873579facce3b51fb36341332ab2926a95297aa0acd0b4108cefea53d9e1c8a00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee2000000000000002e0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000202522143dac8360516902155543fb12271d3ff20bbcc39c22e41bcd14fc9e94a000000000000000010000000000000000000000000000002088652ad02d50d76bbfaa8b1856252bba2bace61a0c45f2856992f5b6a2c97595000000000000000100000000000000000000000000000020fce731c6ff148191e5989829d154266d461abbe1b87f3bf49e080e482df6295c00000000000000010000000000000000000000000000002083502f4dae1d1e7cce3b35cd08cd8214523868a7bad81a68fd16bfd40a434166000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a6000000000000003f0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020e806c4a23f82fc487b6c081e18e128bb84880b3267559d06a5125a57514d087a00000000000000010000000000000000000000000000002018b1612eb1dad97c59689c51b208232a96f3bc2f7825df0cd725412e93bc97040000000000000001000000000000000000000000000000201d0f1670f4690edbf111d45e385b2241e1ec7c0d7e483f87ab326686bca0511f000000000000000100000000000000000000000000000020a3c68cdf76781d19db7aa603f4cd91ea38edfc0b5126585e0c4cc27eb1121e50000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba3610000000000000003f0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000000000000000000020ac407f82c3e92e4a655f6761ed8966c5a93e922c80d4bcb5c21c6afa91a3953c0000000000000001000000000000000000000000000000204bce6dab5222a3748647067a231d54dada21e3699da6362c4bc94673296502790000000000000001000000000000000000000000000000207679149deecdb133a6fb94a0d7ff74465fc3c6693f57f8043b0630b94de2b59d00000000000000010000000000000000000000000000002081d62fb6f8e3c63bb07414f173e2f1761186f3a609b96be8e54bf144e18bd1e9000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb000000000000003f0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020ba5e552ddee84c30765283313ce11b3f24700287d6275e9c59f0d847cd797538000000000000000100000000000000000000000000000020da1aebdd346f93adfc944cc3f50de52bdeb469d89dd186d78310d7ff88911265000000000000000100000000000000000000000000000020c0d7bac2d29fe515550469b26c52547108748ccb8ea0ca9fccbce5734f5264e5000000000000000100000000000000000000000000000020c8c39661891e6889268d1a75425c16fa10b5ce02a5817678bfb61fd4d7ba745b000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003f00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000204b78de6c5e435f8135b1ece9de16360bea2e7357ecc9f035ec45d98e22083dca000000000000000100000000000000000000000000000020710760cf50139c3c5b476b52bfb6d60ac97ccb96e53b35bc985ad612f7f831f100000000000000010000000000000000000000000000002013cb09170444222793c8a76d1d3876b7475882d743c475bb142672de6a05a9f60000000000000001000000000000000000000000000000208ef32cdd20ab9840d12ae9a0d741f7d3f389289d74ea182f48337a1058f3b15d000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee2000000000000003f0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000000000000000000002032aad11c0a19636ed7ee369f66b72a54187794f22fb5434315b8160942bce1d0000000000000000100000000000000000000000000000020043442f334df2d17a911211f8f5e0538e4a3c0c68126a6326145d35aeebe9c1f000000000000000100000000000000000000000000000020f724f9908f48731cc2db122190e08a30cf56ef00f006f8ac9b5475671045abf9000000000000000100000000000000000000000000000020a79432284160ffbe7605792344dd2c3b75b783de349a59eac5f705dbb10d4fec000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000270000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000000000000000000002091e3e86f7478b8e521e57d423b2af9fe75190a6a6a852374d3745ce1b94b48f500000000000000010000000000000000000000000000002065495ff47c8a31364d3c3c58f071d7c1aa52f198d9059056dd041a1f272fa7d1000000000000000100000000000000000000000000000020254ad08d8f651887ccdedd4264cbe8ac8a820f273e7e6a6eec9571b2bee83fed00000000000000010000000000000001000000000000002020ca2ebe06b78b863c42ebd67e820162645990710fb2212c31964405270d49be00000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000270000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000000000000000000020b7033f8a4452886179c750dd54470427ba3e9fb615b48a5c1edd22956b26fd29000000000000000100000000000000000000000000000020fac7320aabb8fe2966c025202e7475a20483edb4654b4bde9447a78ac7df0e180000000000000001000000000000000000000000000000201e4829424cc3731a985d6b9986b78d322139a6d6965ff67e79bdb4abe7107c85000000000000000100000000000000010000000000000020cb0c915a2fbf42f67d8ddb4687cdb94a70ea6dba8c337fad662aef43a1ff09120000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000270000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020061757d29256647fdf28e74b6b15791216e6a4beb2bf142289551444d6cc4e1f000000000000000100000000000000000000000000000020ef97c873beb65dad829377e4465e11b59a8a88bc93509cff5716091f805681ea000000000000000100000000000000000000000000000020504c7cfdf9b9d8a744d6d07015dc694b3c1e96fa04d9711bca9e89e47aea70bd000000000000000100000000000000010000000000000020ec94ab368df3700c4e485459b45d7544203947bced6933b6d2419aa51552b1e70000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002700000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000000000000000000002030e1c5253b6d1976f3fb2681ccebc566ec38f5bfad5dc09d1d8e83450a6d2fcd000000000000000100000000000000000000000000000020ceed573e58e4a1a2786dfe9309ae6f6bf3ca00eb2be46bf2d1d42d91395bee860000000000000001000000000000000000000000000000201b51cd96b5e7d3c5907dc40ebc575470d0b53cb58c9a11acee482a80587db2ca000000000000000100000000000000010000000000000020ce508bfa21ae59f4e3a574d7cf9aa2266b30a92dca771c1fb0e1be0bca3e9fec00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000270000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000000000000000000203b1073654afe2f4b909602ea71d1713ab3344e2404fca1bcb91168bd1dd2d1290000000000000001000000000000000000000000000000202a33abf23f5055ddc1dfd07a07ea40dbaff78292a711b2f873efcea09d1764700000000000000001000000000000000000000000000000202f7c3c123b082e8ba8e01175c4f6ae18dec43d9efebf55f2769ff4eef4d2582b000000000000000100000000000000010000000000000020c1bc4adb66edbd4e3dab7de23832af2889cdfe7d4f7313a79599994c65f1d267000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000100000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020111b56eef069a81117bb82e07a549448811f7b498d0b8cbeaf3c460faf2448d100000000000000010000000000000001000000000000002025fba5ee32d0d9d008535ac6a7988f247a404065ee59ff9a7ab673fd8e76748e000000000000000100000000000000010000000000000020931fc0f60710e5550ab975b9da43260c532daa1aa0981b844a267625739ffb1b000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000100000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020bac9d793deaf5ca2cb626ce251dbd5baa016d0ecff6b13d4ef9cd35e7e50fc5e000000000000000100000000000000010000000000000020533af2ef25021e15fe55aca5e4979523d6e65ecbcdb590a881474ec1388d0773000000000000000100000000000000010000000000000020db75f2f16c24e1f86b75a7358eb0bff98736d767e792ba6500dc20c7a0f5b35f0000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000100000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000010000000000000020e6015a26b94bcdb79e6f934cfa346d3ee0e8daf62553fa64f1fd936655d5bd66000000000000000100000000000000010000000000000020b8afb98b9198daa87dda8a04edc3349eaed9056af0fcedb7edebe0393976711f0000000000000001000000000000000100000000000000208eca8e88d782a2c50068f91856cdb198e83fe75b53d95126db0ce5ba952fe000000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001000000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020855fd74a9c7da68d5343c0434ff683c9e73dc407ec49776b81e6584876f458cc00000000000000010000000000000001000000000000002052d82acada3026c4c21ecc2d34974875b8167e5120f6dc4a3d2696a6c0e4f004000000000000000100000000000000010000000000000020ef20ce255fff4244508dc0bf36aba9eeda1f94ba8303d6b23520cd52b598e748000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000100000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000001000000000000002038d9cc8443d7d65106239e86f0a2aa9c84d77501c33085e73594b698d102e803000000000000000100000000000000010000000000000020407f2fe6361457a84abe1bfbda60edd29b3305f1a37e916f7f923783f031398b00000000000000010000000000000001000000000000002003de737e05bbc77f493cd34846521552aa2f36e8056c458268b5b2cb15e5e244000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000290000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000204b88604a6608c6eb9ba3bede044e248d62becadb080a456681805ab480b64a2400000000000000010000000000000001000000000000002092ff38622b2decefcf8307aa018adefdfdaa06fc5a520c0c3a04990f33027694000000000000000100000000000000010000000000000020a346fbbeee725da089a6715dac946ab17533f7a77d571694ca1f1b28abb7d944000000000000000100000000000000000000000000000020bc7cafa2d5bbcd43a2687bac1aaae39ea07c2b052355ee18f7bed28530381a1900000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000290000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000000000000000000002046b4103846ae2c10a547fe76a6b5a371acc433d524e7482d268b79767c7664dc000000000000000100000000000000010000000000000020a7171d4fa61fd12128f5c4965241652c8ddc0c46e8c7a964ffcf0984ffd7f89500000000000000010000000000000001000000000000002052ba89114da2853e8fa07d551806893e486429c35967e90f1364b3d437abdd22000000000000000100000000000000000000000000000020f69c63796b0fc3bb3288db5fc6b6321528bbbae678a35651696d958320b7b7430000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000290000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000000000000000000002070ac9c1a1cc0f370eef8792db4e8a07c0a2b92e6fe6e9e2b6988a0f7d968a20b000000000000000100000000000000010000000000000020c53a0cd0107f66cc790becb38f5fee3c0f9d025124f698f0f2467cde1fbb7f93000000000000000100000000000000010000000000000020512ede82de18eac361b0347346d45577998f11f0951205ca4172f9d850b9919b000000000000000100000000000000000000000000000020907caeb633215ff4129e7dab9f17c9025c93f92b16178fd8678a98fad237f0c60000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002900000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020b6e877a515adfcb592a770d462b43e449cee8c738d16f969724fb575ae8bb0b7000000000000000100000000000000010000000000000020580ef9da1ed5e2babc435eca9ea73f027bf97010b64a6f63c69c2aadf5386b910000000000000001000000000000000100000000000000200df33e0d9ca72d06a434af2c6b972a6b03667095ac1a683b86514e0012239182000000000000000100000000000000000000000000000020f873579facce3b51fb36341332ab2926a95297aa0acd0b4108cefea53d9e1c8a00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000290000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020b09d90014812ec62509979fb5d4af4e69400cc5cd308cd96ced13e9dd3199e310000000000000001000000000000000100000000000000200dbed97830aea5096cb060a71b37c812fde90fb3a125044efa801f95addf091d0000000000000001000000000000000100000000000000204b8c5f91ebd422cdb230fb374d30859759d449e266b2903f6b848cf8e5baf94f00000000000000010000000000000000000000000000002083502f4dae1d1e7cce3b35cd08cd8214523868a7bad81a68fd16bfd40a434166000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000340000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020353923cb446bd5d538f5a935fecea5ee5c5ac14750aa609ff64d5b43ce7bfb2500000000000000010000000000000001000000000000002019594bf3fa8c4ace4d35341a4d29a3224bf349b4111630660fbc89ec6aac104c000000000000000100000000000000000000000000000020f4d1e64380a2c05ab0dc64ea31b5e288a4325921fa907811ded50419cc51d1ad00000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000340000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020b2a4327c83b14d1974375dae5dc3bd4410e1d159382d8f8212a0e84401e6d832000000000000000100000000000000010000000000000020758d3cb1dae81bd7b5510b225e37ec1c33d27e558dbe4753d95613ab2950d5bb000000000000000100000000000000000000000000000020ecf960f1bd96e938be9efe0e8178c6faac8e4dade22047baafaa2cc5b776587a00000000000000010000000000000001000000000000002025513b7f08a347e3b4653b6a5b7b4504d17f3335eb68b911a07580668480ea5f000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000340000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000100000000000000202624947e7c0865b70a434a4c35988e03a26d1e3b453460e9c7a20b194b120909000000000000000100000000000000010000000000000020d93941bd50076e052ac499d54a60936db5cc808ce93db11f3b5f2dbb9e84fdc900000000000000010000000000000000000000000000002057231a860f30ab1475bd8cdc0a3b4a8273fc215ab0540eb9f5f6b4129d47a3f6000000000000000100000000000000010000000000000020a61e4bd78e6377780bb7580457ace8abedf45db5c6b1905e0fc76ee6b540ec6f000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003400000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000100000000000000202f9b61ee3075d87acffcda0bdbcc7e81b586c9bf022685ac69056c0e30b10b8600000000000000010000000000000001000000000000002018f7652e6b6650db62a7971a3982b0cb933246f7ee71973244096397d4069a48000000000000000100000000000000000000000000000020e07633752c9a7d0ab4d4825434743a1a21102cdb34ac00f9cb0067d34ffca5d90000000000000001000000000000000100000000000000201273eb79132092546fe9e443e04ce70d652607cb46845d8269cc51b07a5e2636000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000340000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000010000000000000020ded4e8902dac5154193921dd660efe6de4b00616a646e884bdd96a2cff9894f8000000000000000100000000000000010000000000000020f1df539161429e1cffb6b4435a018168f9836656cd0fc0043c6de7fa4ee6ca11000000000000000100000000000000000000000000000020f53683e29b7f89c0854446521e9f08cece64960ee2669247016ed70294c71940000000000000000100000000000000010000000000000020ca0bbcf3ba7d635c190762d1905f0cdb8d6b2af98d668d282ab970819d0796e0000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a6000000000000000e0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020dc667fc52cadaed6930a933beb7e1ad3a2d93e2bcdd8aab777fdafa73de41b640000000000000001000000000000000000000000000000204588bf4dc76f289ce58141eaaa216d8458cb8d1be94c124d08fddc13ae448698000000000000000100000000000000000000000000000020e4531c0cf3964a849077d3f66aca1c780770dbd36f02f9e591cac1251871b88a0000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000000e0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000100000000000000201f9db38ea49d2abf509f0d450490944fc3f7059cdf6a488a15f4fbb624ac99910000000000000001000000000000000000000000000000209e5207dedcc1751d464d0ca5b0ec7453293485e46045e1d8d664665f599454ab0000000000000001000000000000000000000000000000204e242999845fcac82f38a2f8827ba9e31d01ad478796f9013f43e0bec62d088f000000000000000100000000000000000000000000000020d1816e01b598e08ee1c459e3283ac87d454a19f2e41f3f85158e9f10b9faef71000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000000e0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000001000000000000002073f62dcfe025252893d9e663ad4f79749cbd2aaaf1ad8affa46b9e03c6d026b8000000000000000100000000000000000000000000000020c8c3b0b7b843e6f5fda633ddb5b1cc221cb87cf202273d9001876d377f85a4440000000000000001000000000000000000000000000000207e61af4d68362cc7280f55cf450babaa4c27e0d7b623080a1dc3e5db95a6761d000000000000000100000000000000000000000000000020dede73056e97d895ee544cd1f515e7f872b01d10ad51bde6457326fcf11c7b20000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000e00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020a7d6f8d5cef626096acb2b445ec0d21b7624fe5c6a25ddb13a06ad35ca5f37c4000000000000000100000000000000000000000000000020b64d62e87ecb757a8ecbf5f123498416bdf3e454a4dc754743740ab117e026640000000000000001000000000000000000000000000000208184ee99edcbc305656197375ced84668d6a6dfe60525a4437554af40db6661e000000000000000100000000000000000000000000000020d4666304bf2809e0fe3311603148aa6aef2cc88395ddc38a022a9c742dada87d0000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000000e0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000010000000000000020ec28cf06733238cc03a9f055d2b8b5ce39beb257b4c29d281f681535c6b33ce9000000000000000100000000000000000000000000000020948ce3c71f8a3e63738c63ad7f65e0bd1940222862e86527ec3ba97701942c9900000000000000010000000000000000000000000000002047d66e60185c2492df2be91f5c8e879243c3ec6d4ebe0b5f2c37fcf0fff4d188000000000000000100000000000000000000000000000020c1a70db1dbbbf1d266cc63410c3e1f798fbc2f00cc35d561bc0706474f565a7d000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000290000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000204b88604a6608c6eb9ba3bede044e248d62becadb080a456681805ab480b64a2400000000000000010000000000000001000000000000002092ff38622b2decefcf8307aa018adefdfdaa06fc5a520c0c3a04990f33027694000000000000000100000000000000010000000000000020a346fbbeee725da089a6715dac946ab17533f7a77d571694ca1f1b28abb7d944000000000000000100000000000000000000000000000020bc7cafa2d5bbcd43a2687bac1aaae39ea07c2b052355ee18f7bed28530381a1900000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000290000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000000000000000000002046b4103846ae2c10a547fe76a6b5a371acc433d524e7482d268b79767c7664dc000000000000000100000000000000010000000000000020a7171d4fa61fd12128f5c4965241652c8ddc0c46e8c7a964ffcf0984ffd7f89500000000000000010000000000000001000000000000002052ba89114da2853e8fa07d551806893e486429c35967e90f1364b3d437abdd22000000000000000100000000000000000000000000000020f69c63796b0fc3bb3288db5fc6b6321528bbbae678a35651696d958320b7b7430000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000290000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000000000000000000002070ac9c1a1cc0f370eef8792db4e8a07c0a2b92e6fe6e9e2b6988a0f7d968a20b000000000000000100000000000000010000000000000020c53a0cd0107f66cc790becb38f5fee3c0f9d025124f698f0f2467cde1fbb7f93000000000000000100000000000000010000000000000020512ede82de18eac361b0347346d45577998f11f0951205ca4172f9d850b9919b000000000000000100000000000000000000000000000020907caeb633215ff4129e7dab9f17c9025c93f92b16178fd8678a98fad237f0c60000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002900000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020b6e877a515adfcb592a770d462b43e449cee8c738d16f969724fb575ae8bb0b7000000000000000100000000000000010000000000000020580ef9da1ed5e2babc435eca9ea73f027bf97010b64a6f63c69c2aadf5386b910000000000000001000000000000000100000000000000200df33e0d9ca72d06a434af2c6b972a6b03667095ac1a683b86514e0012239182000000000000000100000000000000000000000000000020f873579facce3b51fb36341332ab2926a95297aa0acd0b4108cefea53d9e1c8a00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000290000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020b09d90014812ec62509979fb5d4af4e69400cc5cd308cd96ced13e9dd3199e310000000000000001000000000000000100000000000000200dbed97830aea5096cb060a71b37c812fde90fb3a125044efa801f95addf091d0000000000000001000000000000000100000000000000204b8c5f91ebd422cdb230fb374d30859759d449e266b2903f6b848cf8e5baf94f00000000000000010000000000000000000000000000002083502f4dae1d1e7cce3b35cd08cd8214523868a7bad81a68fd16bfd40a434166000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a60000000000000050000000000000000d0000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000000000000000000020a46c48fdec84acc56577aefe7054e02bfc1856e40cfe70794aacf5dba47f5ac8000000000000000100000000000000010000000000000020513a244ed30bea03f955060e962514942238fca2eeab43d89fe954789416c2550000000000000001000000000000000000000000000000204ec4fbe14157b781bb37e9e7ee4b81b5d9722883a00cae3760d2952c34138407000000000000000100000000000000000000000000000020c9ba63ba09d11172eb9679477c02cdd4c8548636386b24d774960c00905b0712000000000000000100000000000000010000000000000020d3836a99589ef6589becf1d4e63f66d87835b816a66ad09a5c5ebf1042db1423000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e4000000000000000d000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f22000000000000000500000000000000010000000000000000000000000000002029954571d2c11b61867cd36d1239cd8a5e9b053779aadd08ed9fd002557266ef00000000000000010000000000000001000000000000002027ad7f2a3b2965ad47c5d13dd83f68c091154e23d58072c4d9db5500e2a82f7e0000000000000001000000000000000000000000000000205776bc63bc8e79c4d4e75b3a2615529a3a8c00c2dbf3e7bf6593a546aaf7ffa1000000000000000100000000000000000000000000000020bb0091c6616437edcbd8efccba7fb3b927f72c66ec3766297f35e4602cfd2178000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b48000000000000001f0000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000000000000000000020d0c0a08b03ab94543e650741667f7e053160684af954899c9656be1c9f71951d000000000000000100000000000000000000000000000020a219b2d8da3cdd63db4d93b046564f92c187682ba234f54928c806e15bf48b91000000000000000100000000000000000000000000000020c101bfd73a67c157e99ba91d8d5d299d14f17d7b9fa505488f852118f5cc694b0000000000000001000000000000000000000000000000207470cea585717c533257fc8f4b120ade8c86a10033ccb1c417a42dfddfd359f40000000000000001000000000000000000000000000000209465f9312245ecb16d74250a0d035d955d389ec7b69fa15f18764b6e2068a85f000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e4000000000000001f000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000000000000000000020249f70c83f02b7ab2a26987366fa4080bed68f0e2465133381926012c5d537460000000000000001000000000000000000000000000000202916348747e4a1886c8a06c53e34db0f89de76f193208ca20a769fbdfdbb7d7100000000000000010000000000000000000000000000002067555b03b5e50b46aae191ded9753ba10e19a72644ee97c779f38300e16408010000000000000001000000000000000000000000000000208e0b779ae73988997c60f43e98cb8a6a99bc4233a6006cca1aff6bfcde22a7750000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de000000000000000d0000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000000000000000000020a46c48fdec84acc56577aefe7054e02bfc1856e40cfe70794aacf5dba47f5ac8000000000000000100000000000000010000000000000020513a244ed30bea03f955060e962514942238fca2eeab43d89fe954789416c2550000000000000001000000000000000000000000000000204ec4fbe14157b781bb37e9e7ee4b81b5d9722883a00cae3760d2952c34138407000000000000000100000000000000000000000000000020c9ba63ba09d11172eb9679477c02cdd4c8548636386b24d774960c00905b0712000000000000000100000000000000010000000000000020d3836a99589ef6589becf1d4e63f66d87835b816a66ad09a5c5ebf1042db1423000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e4000000000000000d000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f22000000000000000500000000000000010000000000000000000000000000002029954571d2c11b61867cd36d1239cd8a5e9b053779aadd08ed9fd002557266ef00000000000000010000000000000001000000000000002027ad7f2a3b2965ad47c5d13dd83f68c091154e23d58072c4d9db5500e2a82f7e0000000000000001000000000000000000000000000000205776bc63bc8e79c4d4e75b3a2615529a3a8c00c2dbf3e7bf6593a546aaf7ffa1000000000000000100000000000000000000000000000020bb0091c6616437edcbd8efccba7fb3b927f72c66ec3766297f35e4602cfd2178000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b4800000000000000010000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d000000000000000060000000000000001000000000000000000000000000000209d2385e20c69ba1687d88bef23f3b1e87fbf459ecb62f88c78738a4c9c50fc8400000000000000010000000000000001000000000000002090d6188cae73dee15f293b173d2299d2756747ab789ceef25f9171b1c8ef505c00000000000000010000000000000001000000000000002054c97f8b2d76bfc52069915ecb77741656fcfe1b7faa5ee2eb910d01551cf33600000000000000010000000000000001000000000000002032d80a4e3696ae67351b732030c0b0a636c4cfb3af4671cd1af41941112b937d000000000000000100000000000000010000000000000020d3836a99589ef6589becf1d4e63f66d87835b816a66ad09a5c5ebf1042db1423000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e40000000000000001000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000000000000000000020bd0d17a83dfe2e522bec4cc424f7150cc7f467802ce19b6b7930c08768d9d3c5000000000000000100000000000000010000000000000020b8b5791a76ef66332e50c46b2b5647c4fd236315013539a7bf48cc374cf3c6f600000000000000010000000000000001000000000000002010ea51456d442e877ded1d0a577fc618c3f7dac6862c38170dec07ce169fd2eb000000000000000100000000000000010000000000000020c2d55771b44ed20c42ec47c4e40541639cf71f150d00ff2366e732dfb3ca4496000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b48000000000000000f0000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000000000000000000020fa8751dc47e1687a20d9f5ed8cb722d8aef884ffc743062c639d97d77a67d4c1000000000000000100000000000000000000000000000020709822e0b4ed9edf475f0023de91ba3d4868336c0c70ee665dd651c2aa2147e20000000000000001000000000000000000000000000000204ec4fbe14157b781bb37e9e7ee4b81b5d9722883a00cae3760d2952c34138407000000000000000100000000000000000000000000000020c9ba63ba09d11172eb9679477c02cdd4c8548636386b24d774960c00905b0712000000000000000100000000000000010000000000000020d3836a99589ef6589becf1d4e63f66d87835b816a66ad09a5c5ebf1042db1423000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e4000000000000000f000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f2200000000000000050000000000000001000000000000000000000000000000207ea54623abb2e221642f9e379fa0cd08bf4d718eb75a1ad677ea1272e1aa6d2e0000000000000001000000000000000000000000000000209d3ecfaabf2349b466e75f5d4d21d6bef1004d3ff8a3e35f6d25e0666d6d73470000000000000001000000000000000000000000000000205776bc63bc8e79c4d4e75b3a2615529a3a8c00c2dbf3e7bf6593a546aaf7ffa1000000000000000100000000000000000000000000000020bb0091c6616437edcbd8efccba7fb3b927f72c66ec3766297f35e4602cfd2178000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b4800000000000000290000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000000000000000000020575175cf206fcdabc4591de306abe1dfd23958c188be1065ce39f114072e1b3b000000000000000100000000000000010000000000000020269a4be1df6cd35893511c8c31a8ed43c5d35d850e300e9ab2f0adbbbbd83bce000000000000000100000000000000010000000000000020bba8a10d74ff3c54bfeecd7d2d784ae92cc9e785fcc43b81b5e8f48b43a38ff50000000000000001000000000000000000000000000000205f7d8f694d13a6ab2ad2fc661b08a8dd8d9db8ee3d0444be9f7345f75a594f30000000000000000100000000000000010000000000000020c7bf28ee73face5265fe79bb8a589a3f982ce2fc9a85952518a5c62d7b8b4c64000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac60000000000000009000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f22000000000000000500000000000000010000000000000000000000000000002019caecf361bc35f371daf2dcbd46d69a115c5ca4fecef1b3c66cbc581cf69390000000000000000100000000000000010000000000000020fb5c3fdcbf73601e13aea9c6240825f773e1ee25b768467052a7d1d64ddf741d00000000000000010000000000000001000000000000002043ae730be375d36839a01e6c35704f00c131d4d88f636ea06ef0371f726da4a3000000000000000100000000000000000000000000000020bb0091c6616437edcbd8efccba7fb3b927f72c66ec3766297f35e4602cfd2178000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b48000000000000000c0000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000010000000000000020268da1398c17c449f22641db02dcbae39a8b972b55a27a7b98b0f18dc11c923f000000000000000100000000000000010000000000000020513a244ed30bea03f955060e962514942238fca2eeab43d89fe954789416c2550000000000000001000000000000000000000000000000204ec4fbe14157b781bb37e9e7ee4b81b5d9722883a00cae3760d2952c34138407000000000000000100000000000000000000000000000020c9ba63ba09d11172eb9679477c02cdd4c8548636386b24d774960c00905b0712000000000000000100000000000000010000000000000020d3836a99589ef6589becf1d4e63f66d87835b816a66ad09a5c5ebf1042db1423000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e4000000000000000c000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000010000000000000020b0357e5505d6a180dd10e0a38fe72ffe9adb95b0f5ee53f7780fdd38a9ecb21000000000000000010000000000000001000000000000002027ad7f2a3b2965ad47c5d13dd83f68c091154e23d58072c4d9db5500e2a82f7e0000000000000001000000000000000000000000000000205776bc63bc8e79c4d4e75b3a2615529a3a8c00c2dbf3e7bf6593a546aaf7ffa1000000000000000100000000000000000000000000000020bb0091c6616437edcbd8efccba7fb3b927f72c66ec3766297f35e4602cfd2178000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b4800000000000000030000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d000000000000000060000000000000001000000000000000000000000000000207052fdb925fd766a821b8f3b018d555aa3d330a6152fe8aa01241906c087a6d6000000000000000100000000000000000000000000000020e8e206152891e9d09eed78597e8bd87e240e3978e62e9e41b117d7c7bafec35e00000000000000010000000000000001000000000000002054c97f8b2d76bfc52069915ecb77741656fcfe1b7faa5ee2eb910d01551cf33600000000000000010000000000000001000000000000002032d80a4e3696ae67351b732030c0b0a636c4cfb3af4671cd1af41941112b937d000000000000000100000000000000010000000000000020d3836a99589ef6589becf1d4e63f66d87835b816a66ad09a5c5ebf1042db1423000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e40000000000000003000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000000000000000000020dcb64ecaf148e18230d6c8faae0debfa25bacdf7c7c2c3bc88a7a303e26635f4000000000000000100000000000000000000000000000020338d0dfe6fc16a03a2c0b06f6f175854d77859b540f792fbe6337498388a470000000000000000010000000000000001000000000000002010ea51456d442e877ded1d0a577fc618c3f7dac6862c38170dec07ce169fd2eb000000000000000100000000000000010000000000000020c2d55771b44ed20c42ec47c4e40541639cf71f150d00ff2366e732dfb3ca4496000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b4800000000000000300000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000010000000000000020686078cbf217f56cc5d8eacf1d92664164b89809eabc7373a46a35efdb9b40960000000000000001000000000000000100000000000000201e2c86672bf8a6c42d0c138d2e10e0367c01872b5c4595fff8a8a1b20f548e40000000000000000100000000000000010000000000000020266e4605430c234e67dbb242a8e44e3780ff710465b34d6c2df0f8b00ff65986000000000000000100000000000000010000000000000020fc12c5a2aee6718fe266d2ad3deb393026c277d8f63fdb4468ca5f106e54081f000000000000000100000000000000000000000000000020035851a56b7064cdd51a4fbb03b1407948fca5abb5ea818749904591c0a56b79000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac60000000000000010000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f2200000000000000050000000000000001000000000000000100000000000000205a53f605494897b831ce4800c7816cdf85d67ad309a8c93b31507f5029cfe46a000000000000000100000000000000010000000000000020d84ef8b16e30c344e7cc3ad64f0d59b40f7e203717d3ee63e2a5ac4775980fe20000000000000001000000000000000100000000000000206877f0af54e1897bd18be8322d34c806e54d6050df1b5a284baabec781dcb09f000000000000000100000000000000010000000000000020f7704799215b573c2650c1c1f1602bdf4a4c859453e8e4822ba37b47b47583c90000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de000000000000002f0000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d000000000000000060000000000000001000000000000000000000000000000203e4d4d94f3412e0cbbc3a9de9fc8de80777fdc9432e99d2af30c152971b22fa60000000000000001000000000000000000000000000000207dfcb8c9f57ca5159b6b0f5da579050079f9b22c18be38b7405925544de7975a00000000000000010000000000000000000000000000002042006d6f57bb854e8bb72c4e98beb6a2aed05e72abe3aed0fe4ea958bf24592c0000000000000001000000000000000000000000000000205f7d8f694d13a6ab2ad2fc661b08a8dd8d9db8ee3d0444be9f7345f75a594f30000000000000000100000000000000010000000000000020c7bf28ee73face5265fe79bb8a589a3f982ce2fc9a85952518a5c62d7b8b4c64000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac6000000000000000f000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f2200000000000000050000000000000001000000000000000000000000000000207ea54623abb2e221642f9e379fa0cd08bf4d718eb75a1ad677ea1272e1aa6d2e0000000000000001000000000000000000000000000000209d3ecfaabf2349b466e75f5d4d21d6bef1004d3ff8a3e35f6d25e0666d6d73470000000000000001000000000000000000000000000000205776bc63bc8e79c4d4e75b3a2615529a3a8c00c2dbf3e7bf6593a546aaf7ffa1000000000000000100000000000000000000000000000020bb0091c6616437edcbd8efccba7fb3b927f72c66ec3766297f35e4602cfd2178000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b4800000000000000280000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d0000000000000000600000000000000010000000000000001000000000000002064acdf03a725f1f949605a27d0024ff749f4615f492846586ed305f967e40e16000000000000000100000000000000010000000000000020269a4be1df6cd35893511c8c31a8ed43c5d35d850e300e9ab2f0adbbbbd83bce000000000000000100000000000000010000000000000020bba8a10d74ff3c54bfeecd7d2d784ae92cc9e785fcc43b81b5e8f48b43a38ff50000000000000001000000000000000000000000000000205f7d8f694d13a6ab2ad2fc661b08a8dd8d9db8ee3d0444be9f7345f75a594f30000000000000000100000000000000010000000000000020c7bf28ee73face5265fe79bb8a589a3f982ce2fc9a85952518a5c62d7b8b4c64000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac60000000000000008000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f2200000000000000050000000000000001000000000000000100000000000000201d732b4d260973e6a2376385268d2f6c4a39203c77f054d9467d11b45c376a43000000000000000100000000000000010000000000000020fb5c3fdcbf73601e13aea9c6240825f773e1ee25b768467052a7d1d64ddf741d00000000000000010000000000000001000000000000002043ae730be375d36839a01e6c35704f00c131d4d88f636ea06ef0371f726da4a3000000000000000100000000000000000000000000000020bb0091c6616437edcbd8efccba7fb3b927f72c66ec3766297f35e4602cfd2178000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b4800000000000000050000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d000000000000000060000000000000001000000000000000000000000000000200dd9e75ebaf66f83c680fdd8cb1868e1a786161d3ac8e4f64bf582c30b2bed10000000000000000100000000000000010000000000000020231e64eb0a3dff549a75b06dde6aa3139c47c94ae74e7cfd5e9932a8c2532cfe000000000000000100000000000000000000000000000020798304ad302cc668b771aeb6f24c031cb9a774439bb7ef7240622f0cd209577a00000000000000010000000000000001000000000000002032d80a4e3696ae67351b732030c0b0a636c4cfb3af4671cd1af41941112b937d000000000000000100000000000000010000000000000020d3836a99589ef6589becf1d4e63f66d87835b816a66ad09a5c5ebf1042db1423000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e40000000000000005000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f2200000000000000050000000000000001000000000000000000000000000000202843f24a236ac5a65a843bd0bfcee637330ee76b5722f5bc5237b760e87a1a490000000000000001000000000000000100000000000000202dcc2566cdf3549ffca230a70ab0af2d282e8675207167d2de94b884c8838935000000000000000100000000000000000000000000000020773cb9dbf1ccad8eb8156e9a250210a545518f07508f01bbbcfb6de31681f54c000000000000000100000000000000010000000000000020c2d55771b44ed20c42ec47c4e40541639cf71f150d00ff2366e732dfb3ca4496000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b4800000000000000380000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d000000000000000060000000000000001000000000000000100000000000000200d2c25ff581183b1f1eee8f47fad8a8fc63bcb7089879b5fc12efaeb9b4ed7a7000000000000000100000000000000010000000000000020f51a1a0cb77d42ba97fdb0147c71e1c7ef7aae2ec96ad60196112997eae9ae6400000000000000010000000000000001000000000000002084e6c9c6f0749922eaa9791028d6573f819d5d241e7c81d4917ee819239542c100000000000000010000000000000000000000000000002090cc97417219408f556666854f319b8a85d02d829def6fdb6ad22e5c9ec340f2000000000000000100000000000000000000000000000020035851a56b7064cdd51a4fbb03b1407948fca5abb5ea818749904591c0a56b79000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac60000000000000018000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000010000000000000020f2d485461a1697bf42d91034e7d584f62a68f21ae74da1641966731fd26ed1110000000000000001000000000000000100000000000000208d6df75c78b7ca2d268f31cba04a920dc781ec492a35cfc1e95bf5e87dc65bb800000000000000010000000000000001000000000000002051cda1da388d30c4aca2471e988eb39f45c77eadfecddd87aa5ae68e63788ea90000000000000001000000000000000000000000000000208e0b779ae73988997c60f43e98cb8a6a99bc4233a6006cca1aff6bfcde22a7750000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de00000000000000350000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000000000000000000020cd7bea7aa06521205e9740430c6fffa3ad25f235309ddbd76a3a4c7293b38df50000000000000001000000000000000100000000000000204efbcbc5dac303e4094a1f4abd4ba72877f1eb11481aad2deda8db3839bc26ee0000000000000001000000000000000000000000000000203eb4c192d55cee6b45e35fbdb149bb4b0133d0c00b566475a6f0414ce7b905fe000000000000000100000000000000010000000000000020fc12c5a2aee6718fe266d2ad3deb393026c277d8f63fdb4468ca5f106e54081f000000000000000100000000000000000000000000000020035851a56b7064cdd51a4fbb03b1407948fca5abb5ea818749904591c0a56b79000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac60000000000000015000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000000000000000000020937f8edacb9e74910070dc910169105945b1e7f096cbd15d624add0cd218c7e70000000000000001000000000000000100000000000000206c4c67ebddd0aba228206ae542313971086f4df8f63de57637d9ddd7b0c833380000000000000001000000000000000000000000000000206bac2681822f454c32baa7eb2bba682b6bc2648d24ae75b227ddbbfc182acf34000000000000000100000000000000010000000000000020f7704799215b573c2650c1c1f1602bdf4a4c859453e8e4822ba37b47b47583c90000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de000000000000003c0000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000010000000000000020a46e8fe400bb0e24841710f8179b213555fe68cc65feec148307c8714302b637000000000000000100000000000000010000000000000020452727d60b9fbcd98c988faefff7f8852fdbedff43864ae33df0455d5c51d0d00000000000000001000000000000000000000000000000205206346f75b18d2c300ceaa3b5769985e3e1b1ed21d2ee1547545fc5175c6a1500000000000000010000000000000000000000000000002090cc97417219408f556666854f319b8a85d02d829def6fdb6ad22e5c9ec340f2000000000000000100000000000000000000000000000020035851a56b7064cdd51a4fbb03b1407948fca5abb5ea818749904591c0a56b79000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac6000000000000001c000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f2200000000000000050000000000000001000000000000000100000000000000200712d099bd11889fcfb541c0faea979c4eda5a32412201e7c3be5fbdfeff4821000000000000000100000000000000010000000000000020c48e403700560738f2ca421e2d6f37c042731c20f87bde6fec99b0aee67cef2700000000000000010000000000000000000000000000002067555b03b5e50b46aae191ded9753ba10e19a72644ee97c779f38300e16408010000000000000001000000000000000000000000000000208e0b779ae73988997c60f43e98cb8a6a99bc4233a6006cca1aff6bfcde22a7750000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de00000000000000350000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000000000000000000020cd7bea7aa06521205e9740430c6fffa3ad25f235309ddbd76a3a4c7293b38df50000000000000001000000000000000100000000000000204efbcbc5dac303e4094a1f4abd4ba72877f1eb11481aad2deda8db3839bc26ee0000000000000001000000000000000000000000000000203eb4c192d55cee6b45e35fbdb149bb4b0133d0c00b566475a6f0414ce7b905fe000000000000000100000000000000010000000000000020fc12c5a2aee6718fe266d2ad3deb393026c277d8f63fdb4468ca5f106e54081f000000000000000100000000000000000000000000000020035851a56b7064cdd51a4fbb03b1407948fca5abb5ea818749904591c0a56b79000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac60000000000000015000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000000000000000000020937f8edacb9e74910070dc910169105945b1e7f096cbd15d624add0cd218c7e70000000000000001000000000000000100000000000000206c4c67ebddd0aba228206ae542313971086f4df8f63de57637d9ddd7b0c833380000000000000001000000000000000000000000000000206bac2681822f454c32baa7eb2bba682b6bc2648d24ae75b227ddbbfc182acf34000000000000000100000000000000010000000000000020f7704799215b573c2650c1c1f1602bdf4a4c859453e8e4822ba37b47b47583c90000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de00000000000000110000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000000000000000000020c466adbb18bf6b0328e2856f960fe9a8dec531e4c729012fc99b886ae6e2b57a000000000000000100000000000000010000000000000020b134e1d4f75f877055e565c41463cfb0dfc902862d8a24b25304326a472c821a0000000000000001000000000000000100000000000000207cf2f6b647b8ceefb7bd84df3f0996d132dafc56d6dbea89eb9f73d7b8e4dbfc000000000000000100000000000000010000000000000020df2cab15903eaa73ce7464dfe5826b7721dc7f203f86ace6ef641307874ba0e20000000000000001000000000000000000000000000000209465f9312245ecb16d74250a0d035d955d389ec7b69fa15f18764b6e2068a85f000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e40000000000000011000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000000000000000000020b61e44417763ff99319f363363cf98fd46fb7be0c0f15919e9363261028983dd000000000000000100000000000000010000000000000020d84ef8b16e30c344e7cc3ad64f0d59b40f7e203717d3ee63e2a5ac4775980fe20000000000000001000000000000000100000000000000206877f0af54e1897bd18be8322d34c806e54d6050df1b5a284baabec781dcb09f000000000000000100000000000000010000000000000020f7704799215b573c2650c1c1f1602bdf4a4c859453e8e4822ba37b47b47583c90000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de00000000000000170000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000000000000000000020dfb7f3bb3492636e9d2f14bcf98dcc22d9437893c5196b544a4210ece12b3474000000000000000100000000000000000000000000000020bfc5ffb287440f21f937881d40a7c43d690b58a52eb954637d784781667f2c33000000000000000100000000000000000000000000000020be7b72f41360e813c4b7943eb7fcf810bfdb91cd6a54c9149c23e8ca4d09a16e000000000000000100000000000000010000000000000020df2cab15903eaa73ce7464dfe5826b7721dc7f203f86ace6ef641307874ba0e20000000000000001000000000000000000000000000000209465f9312245ecb16d74250a0d035d955d389ec7b69fa15f18764b6e2068a85f000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e40000000000000017000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000000000000000000020d6d6fd399b8aa505a8fffcda1b793e965194b48e677b727160ddf771527b06880000000000000001000000000000000000000000000000200286921f0441ed35616a8fc9b34eaab3ac25bbd32906964e19f89d4d334558480000000000000001000000000000000000000000000000206bac2681822f454c32baa7eb2bba682b6bc2648d24ae75b227ddbbfc182acf34000000000000000100000000000000010000000000000020f7704799215b573c2650c1c1f1602bdf4a4c859453e8e4822ba37b47b47583c90000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de00000000000000240000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000010000000000000020c7b6c312b26c0b124544cda7ecba30b852a9afa125c12884e9684c7fda957454000000000000000100000000000000010000000000000020d4cdb29a7be63029b677632534c52877d7e85b879e0c0e408b28ecbb0d031f0a000000000000000100000000000000000000000000000020c1e013d8ba86dee1e79fe4da35f79570511b59a83912aeb51c87be2dfcc3264d0000000000000001000000000000000100000000000000200d2d3cafbe675eebb53c04c5efdf84dcc1861855d328d30f484e0ab38e7b4ee9000000000000000100000000000000010000000000000020c7bf28ee73face5265fe79bb8a589a3f982ce2fc9a85952518a5c62d7b8b4c64000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac60000000000000004000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000010000000000000020374375974be3a1f6b4881605ec0160eb7eb65c075102e07f25873e4c46afc5c40000000000000001000000000000000100000000000000202dcc2566cdf3549ffca230a70ab0af2d282e8675207167d2de94b884c8838935000000000000000100000000000000000000000000000020773cb9dbf1ccad8eb8156e9a250210a545518f07508f01bbbcfb6de31681f54c000000000000000100000000000000010000000000000020c2d55771b44ed20c42ec47c4e40541639cf71f150d00ff2366e732dfb3ca4496000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b48000000000000001c0000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000010000000000000020c8d234dd73f2d05b06d5968260f14dcc027a6e6ed471a95c024ded563ef12d0e000000000000000100000000000000010000000000000020f36f9307adf7ae40e5080aaea3e879d040d8bc3bafdfe31ff6de8928d1e43541000000000000000100000000000000000000000000000020c101bfd73a67c157e99ba91d8d5d299d14f17d7b9fa505488f852118f5cc694b0000000000000001000000000000000000000000000000207470cea585717c533257fc8f4b120ade8c86a10033ccb1c417a42dfddfd359f40000000000000001000000000000000000000000000000209465f9312245ecb16d74250a0d035d955d389ec7b69fa15f18764b6e2068a85f000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e4000000000000001c000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f2200000000000000050000000000000001000000000000000100000000000000200712d099bd11889fcfb541c0faea979c4eda5a32412201e7c3be5fbdfeff4821000000000000000100000000000000010000000000000020c48e403700560738f2ca421e2d6f37c042731c20f87bde6fec99b0aee67cef2700000000000000010000000000000000000000000000002067555b03b5e50b46aae191ded9753ba10e19a72644ee97c779f38300e16408010000000000000001000000000000000000000000000000208e0b779ae73988997c60f43e98cb8a6a99bc4233a6006cca1aff6bfcde22a7750000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de000000000000000d0000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000000000000000000020a46c48fdec84acc56577aefe7054e02bfc1856e40cfe70794aacf5dba47f5ac8000000000000000100000000000000010000000000000020513a244ed30bea03f955060e962514942238fca2eeab43d89fe954789416c2550000000000000001000000000000000000000000000000204ec4fbe14157b781bb37e9e7ee4b81b5d9722883a00cae3760d2952c34138407000000000000000100000000000000000000000000000020c9ba63ba09d11172eb9679477c02cdd4c8548636386b24d774960c00905b0712000000000000000100000000000000010000000000000020d3836a99589ef6589becf1d4e63f66d87835b816a66ad09a5c5ebf1042db1423000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e4000000000000000d000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f22000000000000000500000000000000010000000000000000000000000000002029954571d2c11b61867cd36d1239cd8a5e9b053779aadd08ed9fd002557266ef00000000000000010000000000000001000000000000002027ad7f2a3b2965ad47c5d13dd83f68c091154e23d58072c4d9db5500e2a82f7e0000000000000001000000000000000000000000000000205776bc63bc8e79c4d4e75b3a2615529a3a8c00c2dbf3e7bf6593a546aaf7ffa1000000000000000100000000000000000000000000000020bb0091c6616437edcbd8efccba7fb3b927f72c66ec3766297f35e4602cfd2178000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b4800000000000000100000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d000000000000000060000000000000001000000000000000100000000000000208933f1db4cc8ba86bbbe1910b9a8b85feaca389d0253d1846ae5f7cbe7180746000000000000000100000000000000010000000000000020b134e1d4f75f877055e565c41463cfb0dfc902862d8a24b25304326a472c821a0000000000000001000000000000000100000000000000207cf2f6b647b8ceefb7bd84df3f0996d132dafc56d6dbea89eb9f73d7b8e4dbfc000000000000000100000000000000010000000000000020df2cab15903eaa73ce7464dfe5826b7721dc7f203f86ace6ef641307874ba0e20000000000000001000000000000000000000000000000209465f9312245ecb16d74250a0d035d955d389ec7b69fa15f18764b6e2068a85f000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e40000000000000010000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f2200000000000000050000000000000001000000000000000100000000000000205a53f605494897b831ce4800c7816cdf85d67ad309a8c93b31507f5029cfe46a000000000000000100000000000000010000000000000020d84ef8b16e30c344e7cc3ad64f0d59b40f7e203717d3ee63e2a5ac4775980fe20000000000000001000000000000000100000000000000206877f0af54e1897bd18be8322d34c806e54d6050df1b5a284baabec781dcb09f000000000000000100000000000000010000000000000020f7704799215b573c2650c1c1f1602bdf4a4c859453e8e4822ba37b47b47583c90000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de00000000000000320000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d000000000000000060000000000000001000000000000000100000000000000201a3ac3ba9da961e2aa56d8aa7ca86a0d07f02a388ac9d33ae9dd6470a7e35e1f0000000000000001000000000000000000000000000000208de34e4b40222ae65d6b7cd4cc33a5ad034ec9cfd1f24fc21116fcd83a435c24000000000000000100000000000000010000000000000020266e4605430c234e67dbb242a8e44e3780ff710465b34d6c2df0f8b00ff65986000000000000000100000000000000010000000000000020fc12c5a2aee6718fe266d2ad3deb393026c277d8f63fdb4468ca5f106e54081f000000000000000100000000000000000000000000000020035851a56b7064cdd51a4fbb03b1407948fca5abb5ea818749904591c0a56b79000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac60000000000000012000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f2200000000000000050000000000000001000000000000000100000000000000205b83836f7add7f1e39530638ac8deef5ed7d41b0a982030de18646dc70df390800000000000000010000000000000000000000000000002025ef29344c4329635be411d163d84595994f0c67c5b352c2a66d40632c7a58910000000000000001000000000000000100000000000000206877f0af54e1897bd18be8322d34c806e54d6050df1b5a284baabec781dcb09f000000000000000100000000000000010000000000000020f7704799215b573c2650c1c1f1602bdf4a4c859453e8e4822ba37b47b47583c90000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de00000000000000130000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d000000000000000060000000000000001000000000000000000000000000000205628b4b3f9d92ce95da23456b0bd4a2df3a9b76a08355f837a1cbe2ba5df5abf0000000000000001000000000000000000000000000000208ecb4ffe4281e1ef75948eeb519ae34b8613748612e1b584a21491dd241e5ffa0000000000000001000000000000000100000000000000207cf2f6b647b8ceefb7bd84df3f0996d132dafc56d6dbea89eb9f73d7b8e4dbfc000000000000000100000000000000010000000000000020df2cab15903eaa73ce7464dfe5826b7721dc7f203f86ace6ef641307874ba0e20000000000000001000000000000000000000000000000209465f9312245ecb16d74250a0d035d955d389ec7b69fa15f18764b6e2068a85f000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e40000000000000013000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000000000000000000020d18f506a6337cdb75dfc6f6c08fca9bb479865af3687f703dfcacc1c944092c600000000000000010000000000000000000000000000002025ef29344c4329635be411d163d84595994f0c67c5b352c2a66d40632c7a58910000000000000001000000000000000100000000000000206877f0af54e1897bd18be8322d34c806e54d6050df1b5a284baabec781dcb09f000000000000000100000000000000010000000000000020f7704799215b573c2650c1c1f1602bdf4a4c859453e8e4822ba37b47b47583c90000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de000000000000000b0000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000000000000000000020e241f17b1edaa193953b0c6256a394c99a102e2f27a318f303bb23cd910e43d1000000000000000100000000000000000000000000000020d2a1e56303ae7e862ed3bb7a015aee18560bc8eebcc6d405414dc0b560a13ae50000000000000001000000000000000100000000000000200f7c57bfd632a57c1093842d14319ab138e7de55470d78e62fe4a048b0346185000000000000000100000000000000000000000000000020c9ba63ba09d11172eb9679477c02cdd4c8548636386b24d774960c00905b0712000000000000000100000000000000010000000000000020d3836a99589ef6589becf1d4e63f66d87835b816a66ad09a5c5ebf1042db1423000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e4000000000000000b000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000000000000000000020db705ec832b590eb3514922b05203163213ca9886940c06a54a67431dfd8ab93000000000000000100000000000000000000000000000020c4808d4d78d09dead656ffb5c5bf211e6657f04e03b3cc5f75e0f9f2901a06af00000000000000010000000000000001000000000000002043ae730be375d36839a01e6c35704f00c131d4d88f636ea06ef0371f726da4a3000000000000000100000000000000000000000000000020bb0091c6616437edcbd8efccba7fb3b927f72c66ec3766297f35e4602cfd2178000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b4800000000000000100000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d000000000000000060000000000000001000000000000000100000000000000208933f1db4cc8ba86bbbe1910b9a8b85feaca389d0253d1846ae5f7cbe7180746000000000000000100000000000000010000000000000020b134e1d4f75f877055e565c41463cfb0dfc902862d8a24b25304326a472c821a0000000000000001000000000000000100000000000000207cf2f6b647b8ceefb7bd84df3f0996d132dafc56d6dbea89eb9f73d7b8e4dbfc000000000000000100000000000000010000000000000020df2cab15903eaa73ce7464dfe5826b7721dc7f203f86ace6ef641307874ba0e20000000000000001000000000000000000000000000000209465f9312245ecb16d74250a0d035d955d389ec7b69fa15f18764b6e2068a85f000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e40000000000000010000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f2200000000000000050000000000000001000000000000000100000000000000205a53f605494897b831ce4800c7816cdf85d67ad309a8c93b31507f5029cfe46a000000000000000100000000000000010000000000000020d84ef8b16e30c344e7cc3ad64f0d59b40f7e203717d3ee63e2a5ac4775980fe20000000000000001000000000000000100000000000000206877f0af54e1897bd18be8322d34c806e54d6050df1b5a284baabec781dcb09f000000000000000100000000000000010000000000000020f7704799215b573c2650c1c1f1602bdf4a4c859453e8e4822ba37b47b47583c90000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de00000000000000150000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000000000000000000020e13b5b8397ffca142248e988db22b3e5e6e83fbd2f1effb8f13ac055075e20aa00000000000000010000000000000001000000000000002025b17ff3c65b99b75d5e2bfdba2b8e3e17aa059d3809b54753c1320c7edb0f2b000000000000000100000000000000000000000000000020be7b72f41360e813c4b7943eb7fcf810bfdb91cd6a54c9149c23e8ca4d09a16e000000000000000100000000000000010000000000000020df2cab15903eaa73ce7464dfe5826b7721dc7f203f86ace6ef641307874ba0e20000000000000001000000000000000000000000000000209465f9312245ecb16d74250a0d035d955d389ec7b69fa15f18764b6e2068a85f000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e40000000000000015000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000000000000000000020937f8edacb9e74910070dc910169105945b1e7f096cbd15d624add0cd218c7e70000000000000001000000000000000100000000000000206c4c67ebddd0aba228206ae542313971086f4df8f63de57637d9ddd7b0c833380000000000000001000000000000000000000000000000206bac2681822f454c32baa7eb2bba682b6bc2648d24ae75b227ddbbfc182acf34000000000000000100000000000000010000000000000020f7704799215b573c2650c1c1f1602bdf4a4c859453e8e4822ba37b47b47583c90000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de000000000000002c0000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d0000000000000000600000000000000010000000000000001000000000000002033d912e54f79a98774bb7e1d1d1101fd6185c3be2724a7a595c88ef01b33bed2000000000000000100000000000000010000000000000020bef017a3d479a3a90681d443f0a2a0327c49bbf999892d9cdbb033275e8564d900000000000000010000000000000000000000000000002042006d6f57bb854e8bb72c4e98beb6a2aed05e72abe3aed0fe4ea958bf24592c0000000000000001000000000000000000000000000000205f7d8f694d13a6ab2ad2fc661b08a8dd8d9db8ee3d0444be9f7345f75a594f30000000000000000100000000000000010000000000000020c7bf28ee73face5265fe79bb8a589a3f982ce2fc9a85952518a5c62d7b8b4c64000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac6000000000000000c000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000010000000000000020b0357e5505d6a180dd10e0a38fe72ffe9adb95b0f5ee53f7780fdd38a9ecb21000000000000000010000000000000001000000000000002027ad7f2a3b2965ad47c5d13dd83f68c091154e23d58072c4d9db5500e2a82f7e0000000000000001000000000000000000000000000000205776bc63bc8e79c4d4e75b3a2615529a3a8c00c2dbf3e7bf6593a546aaf7ffa1000000000000000100000000000000000000000000000020bb0091c6616437edcbd8efccba7fb3b927f72c66ec3766297f35e4602cfd2178000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b4800000000000000140000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d0000000000000000600000000000000010000000000000001000000000000002004566fbf9c8f4f08fa61df40eab3e64bb0e2ff5798011b9b24c3601992b9bb6b00000000000000010000000000000001000000000000002025b17ff3c65b99b75d5e2bfdba2b8e3e17aa059d3809b54753c1320c7edb0f2b000000000000000100000000000000000000000000000020be7b72f41360e813c4b7943eb7fcf810bfdb91cd6a54c9149c23e8ca4d09a16e000000000000000100000000000000010000000000000020df2cab15903eaa73ce7464dfe5826b7721dc7f203f86ace6ef641307874ba0e20000000000000001000000000000000000000000000000209465f9312245ecb16d74250a0d035d955d389ec7b69fa15f18764b6e2068a85f000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e40000000000000014000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000010000000000000020a9a324bc7ece27e7c994ea1b7d4f2cf98a86c3b6c28e04c62f325df813ee95380000000000000001000000000000000100000000000000206c4c67ebddd0aba228206ae542313971086f4df8f63de57637d9ddd7b0c833380000000000000001000000000000000000000000000000206bac2681822f454c32baa7eb2bba682b6bc2648d24ae75b227ddbbfc182acf34000000000000000100000000000000010000000000000020f7704799215b573c2650c1c1f1602bdf4a4c859453e8e4822ba37b47b47583c90000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de00000000000000200000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d0000000000000000600000000000000010000000000000001000000000000002065d428600660c5551e82f8844e01cedf1971428ab526e652bfd2c7d0713e1d3600000000000000010000000000000001000000000000002083b30e2cc1942f709aff7eae195e5a54877b52b79f8283e64f512aacfc2c5719000000000000000100000000000000010000000000000020c1d1c50c3f6b5fd6d125cba173a28030dde3e8555d07a3e109c07122b1ee0d1b0000000000000001000000000000000100000000000000200d2d3cafbe675eebb53c04c5efdf84dcc1861855d328d30f484e0ab38e7b4ee9000000000000000100000000000000010000000000000020c7bf28ee73face5265fe79bb8a589a3f982ce2fc9a85952518a5c62d7b8b4c64000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac60000000000000000000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000010000000000000020c88413c981d0825483a68b70aeecc2f58c2cb7edad9ebf314a012e8430b5fa2c000000000000000100000000000000010000000000000020b8b5791a76ef66332e50c46b2b5647c4fd236315013539a7bf48cc374cf3c6f600000000000000010000000000000001000000000000002010ea51456d442e877ded1d0a577fc618c3f7dac6862c38170dec07ce169fd2eb000000000000000100000000000000010000000000000020c2d55771b44ed20c42ec47c4e40541639cf71f150d00ff2366e732dfb3ca4496000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b4800000000000000150000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000000000000000000020e13b5b8397ffca142248e988db22b3e5e6e83fbd2f1effb8f13ac055075e20aa00000000000000010000000000000001000000000000002025b17ff3c65b99b75d5e2bfdba2b8e3e17aa059d3809b54753c1320c7edb0f2b000000000000000100000000000000000000000000000020be7b72f41360e813c4b7943eb7fcf810bfdb91cd6a54c9149c23e8ca4d09a16e000000000000000100000000000000010000000000000020df2cab15903eaa73ce7464dfe5826b7721dc7f203f86ace6ef641307874ba0e20000000000000001000000000000000000000000000000209465f9312245ecb16d74250a0d035d955d389ec7b69fa15f18764b6e2068a85f000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e40000000000000015000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000000000000000000020937f8edacb9e74910070dc910169105945b1e7f096cbd15d624add0cd218c7e70000000000000001000000000000000100000000000000206c4c67ebddd0aba228206ae542313971086f4df8f63de57637d9ddd7b0c833380000000000000001000000000000000000000000000000206bac2681822f454c32baa7eb2bba682b6bc2648d24ae75b227ddbbfc182acf34000000000000000100000000000000010000000000000020f7704799215b573c2650c1c1f1602bdf4a4c859453e8e4822ba37b47b47583c90000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de00000000000000200000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d0000000000000000600000000000000010000000000000001000000000000002065d428600660c5551e82f8844e01cedf1971428ab526e652bfd2c7d0713e1d3600000000000000010000000000000001000000000000002083b30e2cc1942f709aff7eae195e5a54877b52b79f8283e64f512aacfc2c5719000000000000000100000000000000010000000000000020c1d1c50c3f6b5fd6d125cba173a28030dde3e8555d07a3e109c07122b1ee0d1b0000000000000001000000000000000100000000000000200d2d3cafbe675eebb53c04c5efdf84dcc1861855d328d30f484e0ab38e7b4ee9000000000000000100000000000000010000000000000020c7bf28ee73face5265fe79bb8a589a3f982ce2fc9a85952518a5c62d7b8b4c64000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac60000000000000000000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000010000000000000020c88413c981d0825483a68b70aeecc2f58c2cb7edad9ebf314a012e8430b5fa2c000000000000000100000000000000010000000000000020b8b5791a76ef66332e50c46b2b5647c4fd236315013539a7bf48cc374cf3c6f600000000000000010000000000000001000000000000002010ea51456d442e877ded1d0a577fc618c3f7dac6862c38170dec07ce169fd2eb000000000000000100000000000000010000000000000020c2d55771b44ed20c42ec47c4e40541639cf71f150d00ff2366e732dfb3ca4496000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b48000000000000002e0000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000010000000000000020182f82e7262eeacb438f51374a7004f300e44ef73c95a930aad6e27e862185c10000000000000001000000000000000000000000000000207dfcb8c9f57ca5159b6b0f5da579050079f9b22c18be38b7405925544de7975a00000000000000010000000000000000000000000000002042006d6f57bb854e8bb72c4e98beb6a2aed05e72abe3aed0fe4ea958bf24592c0000000000000001000000000000000000000000000000205f7d8f694d13a6ab2ad2fc661b08a8dd8d9db8ee3d0444be9f7345f75a594f30000000000000000100000000000000010000000000000020c7bf28ee73face5265fe79bb8a589a3f982ce2fc9a85952518a5c62d7b8b4c64000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac6000000000000000e000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000010000000000000020c8ed5356e52489778c54543a278d444efebc5f030be2e4c3da67d57fabfbc3390000000000000001000000000000000000000000000000209d3ecfaabf2349b466e75f5d4d21d6bef1004d3ff8a3e35f6d25e0666d6d73470000000000000001000000000000000000000000000000205776bc63bc8e79c4d4e75b3a2615529a3a8c00c2dbf3e7bf6593a546aaf7ffa1000000000000000100000000000000000000000000000020bb0091c6616437edcbd8efccba7fb3b927f72c66ec3766297f35e4602cfd2178000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b48000000000000003f0000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000000000000000000020aa91659e81a9e3beb2010d16c49d2db51657b89c9c28fbf36d62030345c6dd8c000000000000000100000000000000000000000000000020c42e0962a2206fc81f628b42c20604d0e662376d935441849b31562a20765abc0000000000000001000000000000000000000000000000205206346f75b18d2c300ceaa3b5769985e3e1b1ed21d2ee1547545fc5175c6a1500000000000000010000000000000000000000000000002090cc97417219408f556666854f319b8a85d02d829def6fdb6ad22e5c9ec340f2000000000000000100000000000000000000000000000020035851a56b7064cdd51a4fbb03b1407948fca5abb5ea818749904591c0a56b79000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac6000000000000001f000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000000000000000000020249f70c83f02b7ab2a26987366fa4080bed68f0e2465133381926012c5d537460000000000000001000000000000000000000000000000202916348747e4a1886c8a06c53e34db0f89de76f193208ca20a769fbdfdbb7d7100000000000000010000000000000000000000000000002067555b03b5e50b46aae191ded9753ba10e19a72644ee97c779f38300e16408010000000000000001000000000000000000000000000000208e0b779ae73988997c60f43e98cb8a6a99bc4233a6006cca1aff6bfcde22a7750000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de00000000000000270000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000000000000000000020fb429f1781c169be615a8d329685b7cab551a23557e69c54c8e6c0bda88d871a000000000000000100000000000000000000000000000020c95b9d9a3cd41a15d71a235836add0556e76bdb2384a45492c1b0af8f5e0cc89000000000000000100000000000000000000000000000020c1e013d8ba86dee1e79fe4da35f79570511b59a83912aeb51c87be2dfcc3264d0000000000000001000000000000000100000000000000200d2d3cafbe675eebb53c04c5efdf84dcc1861855d328d30f484e0ab38e7b4ee9000000000000000100000000000000010000000000000020c7bf28ee73face5265fe79bb8a589a3f982ce2fc9a85952518a5c62d7b8b4c64000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac60000000000000007000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f22000000000000000500000000000000010000000000000000000000000000002074ac1ff9212e5ecd566fb9c760faf214ccf5f8076fc44e3b97a40e2a8f2e5a3d0000000000000001000000000000000000000000000000200c5710198e2e5685360c556e3532d7b2aa35391509c057a0af539692558838e7000000000000000100000000000000000000000000000020773cb9dbf1ccad8eb8156e9a250210a545518f07508f01bbbcfb6de31681f54c000000000000000100000000000000010000000000000020c2d55771b44ed20c42ec47c4e40541639cf71f150d00ff2366e732dfb3ca4496000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b4800000000000000100000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d000000000000000060000000000000001000000000000000100000000000000208933f1db4cc8ba86bbbe1910b9a8b85feaca389d0253d1846ae5f7cbe7180746000000000000000100000000000000010000000000000020b134e1d4f75f877055e565c41463cfb0dfc902862d8a24b25304326a472c821a0000000000000001000000000000000100000000000000207cf2f6b647b8ceefb7bd84df3f0996d132dafc56d6dbea89eb9f73d7b8e4dbfc000000000000000100000000000000010000000000000020df2cab15903eaa73ce7464dfe5826b7721dc7f203f86ace6ef641307874ba0e20000000000000001000000000000000000000000000000209465f9312245ecb16d74250a0d035d955d389ec7b69fa15f18764b6e2068a85f000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e40000000000000010000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f2200000000000000050000000000000001000000000000000100000000000000205a53f605494897b831ce4800c7816cdf85d67ad309a8c93b31507f5029cfe46a000000000000000100000000000000010000000000000020d84ef8b16e30c344e7cc3ad64f0d59b40f7e203717d3ee63e2a5ac4775980fe20000000000000001000000000000000100000000000000206877f0af54e1897bd18be8322d34c806e54d6050df1b5a284baabec781dcb09f000000000000000100000000000000010000000000000020f7704799215b573c2650c1c1f1602bdf4a4c859453e8e4822ba37b47b47583c90000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de00000000000000290000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000000000000000000020575175cf206fcdabc4591de306abe1dfd23958c188be1065ce39f114072e1b3b000000000000000100000000000000010000000000000020269a4be1df6cd35893511c8c31a8ed43c5d35d850e300e9ab2f0adbbbbd83bce000000000000000100000000000000010000000000000020bba8a10d74ff3c54bfeecd7d2d784ae92cc9e785fcc43b81b5e8f48b43a38ff50000000000000001000000000000000000000000000000205f7d8f694d13a6ab2ad2fc661b08a8dd8d9db8ee3d0444be9f7345f75a594f30000000000000000100000000000000010000000000000020c7bf28ee73face5265fe79bb8a589a3f982ce2fc9a85952518a5c62d7b8b4c64000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac60000000000000009000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f22000000000000000500000000000000010000000000000000000000000000002019caecf361bc35f371daf2dcbd46d69a115c5ca4fecef1b3c66cbc581cf69390000000000000000100000000000000010000000000000020fb5c3fdcbf73601e13aea9c6240825f773e1ee25b768467052a7d1d64ddf741d00000000000000010000000000000001000000000000002043ae730be375d36839a01e6c35704f00c131d4d88f636ea06ef0371f726da4a3000000000000000100000000000000000000000000000020bb0091c6616437edcbd8efccba7fb3b927f72c66ec3766297f35e4602cfd2178000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b4800000000000000340000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000010000000000000020fffc24af5d4c94822c94141e57efe083d9a0665517b9c2fa43e3f704bfa3af560000000000000001000000000000000100000000000000204efbcbc5dac303e4094a1f4abd4ba72877f1eb11481aad2deda8db3839bc26ee0000000000000001000000000000000000000000000000203eb4c192d55cee6b45e35fbdb149bb4b0133d0c00b566475a6f0414ce7b905fe000000000000000100000000000000010000000000000020fc12c5a2aee6718fe266d2ad3deb393026c277d8f63fdb4468ca5f106e54081f000000000000000100000000000000000000000000000020035851a56b7064cdd51a4fbb03b1407948fca5abb5ea818749904591c0a56b79000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac60000000000000014000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000010000000000000020a9a324bc7ece27e7c994ea1b7d4f2cf98a86c3b6c28e04c62f325df813ee95380000000000000001000000000000000100000000000000206c4c67ebddd0aba228206ae542313971086f4df8f63de57637d9ddd7b0c833380000000000000001000000000000000000000000000000206bac2681822f454c32baa7eb2bba682b6bc2648d24ae75b227ddbbfc182acf34000000000000000100000000000000010000000000000020f7704799215b573c2650c1c1f1602bdf4a4c859453e8e4822ba37b47b47583c90000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de000000000000000e0000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d0000000000000000600000000000000010000000000000001000000000000002058f261dab560c2ec7776c311bfaa0fe7b7fcbc9f30f66b1171039ec68be7722d000000000000000100000000000000000000000000000020709822e0b4ed9edf475f0023de91ba3d4868336c0c70ee665dd651c2aa2147e20000000000000001000000000000000000000000000000204ec4fbe14157b781bb37e9e7ee4b81b5d9722883a00cae3760d2952c34138407000000000000000100000000000000000000000000000020c9ba63ba09d11172eb9679477c02cdd4c8548636386b24d774960c00905b0712000000000000000100000000000000010000000000000020d3836a99589ef6589becf1d4e63f66d87835b816a66ad09a5c5ebf1042db1423000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e4000000000000000e000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000010000000000000020c8ed5356e52489778c54543a278d444efebc5f030be2e4c3da67d57fabfbc3390000000000000001000000000000000000000000000000209d3ecfaabf2349b466e75f5d4d21d6bef1004d3ff8a3e35f6d25e0666d6d73470000000000000001000000000000000000000000000000205776bc63bc8e79c4d4e75b3a2615529a3a8c00c2dbf3e7bf6593a546aaf7ffa1000000000000000100000000000000000000000000000020bb0091c6616437edcbd8efccba7fb3b927f72c66ec3766297f35e4602cfd2178000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b4800000000000000290000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000000000000000000020575175cf206fcdabc4591de306abe1dfd23958c188be1065ce39f114072e1b3b000000000000000100000000000000010000000000000020269a4be1df6cd35893511c8c31a8ed43c5d35d850e300e9ab2f0adbbbbd83bce000000000000000100000000000000010000000000000020bba8a10d74ff3c54bfeecd7d2d784ae92cc9e785fcc43b81b5e8f48b43a38ff50000000000000001000000000000000000000000000000205f7d8f694d13a6ab2ad2fc661b08a8dd8d9db8ee3d0444be9f7345f75a594f30000000000000000100000000000000010000000000000020c7bf28ee73face5265fe79bb8a589a3f982ce2fc9a85952518a5c62d7b8b4c64000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac60000000000000009000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f22000000000000000500000000000000010000000000000000000000000000002019caecf361bc35f371daf2dcbd46d69a115c5ca4fecef1b3c66cbc581cf69390000000000000000100000000000000010000000000000020fb5c3fdcbf73601e13aea9c6240825f773e1ee25b768467052a7d1d64ddf741d00000000000000010000000000000001000000000000002043ae730be375d36839a01e6c35704f00c131d4d88f636ea06ef0371f726da4a3000000000000000100000000000000000000000000000020bb0091c6616437edcbd8efccba7fb3b927f72c66ec3766297f35e4602cfd2178000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b4800000000000000023bb7acaf8ba7fe41c32f431d7c80057c61001976d5ffc80a6a3ea9c31e97824c2d3a2c35e5ad9ff08e7503f19bede48aafeed799663875d39f6928ea98a00b3c6633cfbe \ No newline at end of file From c8f76b8cdc53f1bfa75c952a5abf8723dca9144c Mon Sep 17 00:00:00 2001 From: Vasiliy Olekhov Date: Thu, 5 Oct 2023 13:42:50 +0300 Subject: [PATCH 08/10] added exists check for gate_libs_list.json #77 --- deploy/modular-verifier.js | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/deploy/modular-verifier.js b/deploy/modular-verifier.js index 1195bf4..81ae548 100644 --- a/deploy/modular-verifier.js +++ b/deploy/modular-verifier.js @@ -56,13 +56,15 @@ module.exports = async function() { }); let deployedLib = {} - let libs = losslessJSON.parse(fs.readFileSync("./contracts/zkllvm/"+circuits[k]+"/gate_libs_list.json", 'utf8')); - for (let lib of libs){ - await deploy(lib, { - from: deployer, - log: true, - }); - deployedLib[lib] = (await hre.deployments.get(lib)).address + if( fs.existsSync("./contracts/zkllvm/"+circuits[k]+"/gate_libs_list.json")) { + let libs = losslessJSON.parse(fs.readFileSync("./contracts/zkllvm/"+circuits[k]+"/gate_libs_list.json", 'utf8')); + for (let lib of libs){ + await deploy(lib, { + from: deployer, + log: true, + }); + deployedLib[lib] = (await hre.deployments.get(lib)).address + } } gate_argument_contract = await deploy("modular_gate_argument_" + circuits[k], { from: deployer, From 7e17aeaab04d2fbb23324bb2226f199db4d82e46 Mon Sep 17 00:00:00 2001 From: Vasiliy Olekhov <145333445+vo-nil@users.noreply.github.com> Date: Thu, 9 Nov 2023 18:31:14 +0300 Subject: [PATCH 09/10] Interface update #81 nil-foundation/zkllvm-transpiler#45 (#82) * Interface update #81 nil-foundation/zkllvm-transpiler#45 * updated example circuits to new interface #81 * cleanup #81 NilFoundation/zkllvm-transpiler#45 * modular_verifier interface update, added eta value checks #81 NilFoundation/zkllvm-transpiler#46 --- contracts/interfaces/modular_verifier.sol | 4 +- contracts/zkllvm/circuit1/commitment.sol | 56 +++++-- contracts/zkllvm/circuit1/gate_0.sol | 51 ------- contracts/zkllvm/circuit1/gate_1.sol | 50 ------- contracts/zkllvm/circuit1/gate_argument.sol | 39 ++++- contracts/zkllvm/circuit1/gate_libs_list.json | 4 - contracts/zkllvm/circuit1/lookup_argument.sol | 3 +- .../zkllvm/circuit1/modular_verifier.sol | 70 +++++---- contracts/zkllvm/circuit1/proof.bin | 2 +- contracts/zkllvm/circuit2/commitment.sol | 56 +++++-- contracts/zkllvm/circuit2/gate_0.sol | 51 ------- contracts/zkllvm/circuit2/gate_1.sol | 52 ------- contracts/zkllvm/circuit2/gate_argument.sol | 41 +++++- contracts/zkllvm/circuit2/gate_libs_list.json | 4 - contracts/zkllvm/circuit2/lookup_argument.sol | 3 +- .../zkllvm/circuit2/modular_verifier.sol | 70 +++++---- contracts/zkllvm/circuit2/proof.bin | 2 +- contracts/zkllvm/circuit3/commitment.sol | 62 ++++++-- contracts/zkllvm/circuit3/gate_argument.sol | 1 + contracts/zkllvm/circuit3/gate_libs_list.json | 2 - contracts/zkllvm/circuit3/input.json | 4 - contracts/zkllvm/circuit3/lookup_0.sol | 13 +- contracts/zkllvm/circuit3/lookup_argument.sol | 23 ++- .../zkllvm/circuit3/modular_verifier.sol | 137 ++++++++++-------- contracts/zkllvm/circuit3/params.json | 2 +- contracts/zkllvm/circuit3/proof.bin | 2 +- contracts/zkllvm/circuit4/commitment.sol | 62 +++++++- contracts/zkllvm/circuit4/gate_0.sol | 50 ------- contracts/zkllvm/circuit4/gate_argument.sol | 21 ++- contracts/zkllvm/circuit4/gate_libs_list.json | 3 - contracts/zkllvm/circuit4/lookup_0.sol | 13 +- contracts/zkllvm/circuit4/lookup_argument.sol | 23 ++- .../zkllvm/circuit4/modular_verifier.sol | 78 ++++++---- contracts/zkllvm/circuit4/proof.bin | 2 +- contracts/zkllvm/circuit6/commitment.sol | 62 +++++++- contracts/zkllvm/circuit6/gate_argument.sol | 1 + contracts/zkllvm/circuit6/gate_libs_list.json | 2 - contracts/zkllvm/circuit6/lookup_0.sol | 47 +++++- contracts/zkllvm/circuit6/lookup_1.sol | 55 ------- contracts/zkllvm/circuit6/lookup_argument.sol | 50 +++---- .../zkllvm/circuit6/lookup_libs_list.json | 3 +- .../zkllvm/circuit6/modular_verifier.sol | 78 ++++++---- contracts/zkllvm/circuit6/proof.bin | 2 +- 43 files changed, 725 insertions(+), 631 deletions(-) delete mode 100644 contracts/zkllvm/circuit1/gate_0.sol delete mode 100644 contracts/zkllvm/circuit1/gate_1.sol delete mode 100644 contracts/zkllvm/circuit1/gate_libs_list.json delete mode 100644 contracts/zkllvm/circuit2/gate_0.sol delete mode 100644 contracts/zkllvm/circuit2/gate_1.sol delete mode 100644 contracts/zkllvm/circuit2/gate_libs_list.json delete mode 100644 contracts/zkllvm/circuit3/gate_libs_list.json delete mode 100644 contracts/zkllvm/circuit3/input.json delete mode 100644 contracts/zkllvm/circuit4/gate_0.sol delete mode 100644 contracts/zkllvm/circuit4/gate_libs_list.json delete mode 100644 contracts/zkllvm/circuit6/gate_libs_list.json delete mode 100644 contracts/zkllvm/circuit6/lookup_1.sol diff --git a/contracts/interfaces/modular_verifier.sol b/contracts/interfaces/modular_verifier.sol index 58e3a91..7624bbb 100644 --- a/contracts/interfaces/modular_verifier.sol +++ b/contracts/interfaces/modular_verifier.sol @@ -24,8 +24,8 @@ interface IModularVerifier { address commitment_contract_address ) external; - function verify( + function verify( bytes calldata blob, uint256[] calldata public_input - ) external view; + ) external view returns (bool result); } diff --git a/contracts/zkllvm/circuit1/commitment.sol b/contracts/zkllvm/circuit1/commitment.sol index a8ce01a..3aae944 100644 --- a/contracts/zkllvm/circuit1/commitment.sol +++ b/contracts/zkllvm/circuit1/commitment.sol @@ -37,7 +37,7 @@ library modular_commitment_scheme_circuit1 { uint256 constant unique_points = 4; uint256 constant permutation_point = 2; uint256 constant quotient_point = 0; - uint256 constant lookup_point = 94325795984320; + uint256 constant lookup_point = 0; bytes constant points_ids = hex"01010101010101010303010100000000"; uint256 constant omega = 14450201850503471296781915119640920297985789873634237091629829669980153907901; uint256 constant _etha = 14062721881273474090606415031361994540585550571695842571456013353340629726555; @@ -247,8 +247,8 @@ library modular_commitment_scheme_circuit1 { } function compute_combined_Q(bytes calldata blob,commitment_state memory state) internal view returns(uint256[2] memory y){ - for(uint256 p = 0; p < unique_points; ){ - uint256[2] memory tmp; + uint256[2][unique_points] memory values; + { uint256 offset = state.initial_data_offset - state.poly_num * 0x40; // Save initial data offset for future use; uint256 cur = 0; for(uint256 b = 0; b < batches_num;){ @@ -260,17 +260,21 @@ library modular_commitment_scheme_circuit1 { else if(b == 4) cur_point = lookup_point; else console.log("Wrong index"); - tmp[0] = mulmod(tmp[0], state.theta, modulus); - tmp[1] = mulmod(tmp[1], state.theta, modulus); - - if(cur_point == p){ - tmp[0] = addmod(tmp[0], basic_marshalling.get_uint256_be(blob, offset), modulus); - tmp[1] = addmod(tmp[1], basic_marshalling.get_uint256_be(blob, offset + 0x20), modulus); + for(uint256 k = 0; k < unique_points; ){ + values[k][0] = mulmod(values[k][0], state.theta, modulus); + values[k][1] = mulmod(values[k][1], state.theta, modulus); + unchecked{k++;} } + + values[cur_point][0] = addmod(values[cur_point][0], basic_marshalling.get_uint256_be(blob, offset), modulus); + values[cur_point][1] = addmod(values[cur_point][1], basic_marshalling.get_uint256_be(blob, offset + 0x20), modulus); unchecked{offset += 0x40;j++; cur++;} } unchecked{b++;} } + } + for(uint256 p = 0; p < unique_points; ){ + uint256[2] memory tmp = values[p]; tmp[0] = mulmod(tmp[0], state.factors[p], modulus); tmp[1] = mulmod(tmp[1], state.factors[p], modulus); uint256 s = state.x; @@ -417,6 +421,40 @@ library modular_commitment_scheme_circuit1 { types.transcript_data memory tr_state; tr_state.current_challenge = transcript_state; commitment_state memory state; + + { + uint256 poly_at_eta; + /* 1 - 2*permutation_size */ + poly_at_eta = basic_marshalling.get_uint256_be(blob, 40);// 0 + if(poly_at_eta != 0x1f1737f0f9693494b37fd517f70fe4d844c0e4dd11e9df8639a0be9abfccb55b) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x68);// 0x1 + if(poly_at_eta != 0x1b7417b4df0e06e7817f2977d34f78391337465946f76b67edc9572bbeff8ac5) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0xa8);// 0x2 + if(poly_at_eta != 0x94476885b462285877bcf57208d591d1b872dc6503b26d072945200bafdb5d7) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0xe8);// 0x3 + if(poly_at_eta != 0x2e5650a9c85eac9ba56b0cb3a2c2bd9189a3e4df9127c2123ce59a03a6f48d33) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x128);// 0x4 + if(poly_at_eta != 0x1f1737f0f9693494b37fd517f70fe4d844c0e4dd11e9df8639a0be9abfccb55b) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x168);// 0x5 + if(poly_at_eta != 0x1b7417b4df0e06e7817f2977d34f78391337465946f76b67edc9572bbeff8ac5) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x1a8);// 0x6 + if(poly_at_eta != 0x94476885b462285877bcf57208d591d1b872dc6503b26d072945200bafdb5d7) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x1e8);// 0x7 + if(poly_at_eta != 0x2e5650a9c85eac9ba56b0cb3a2c2bd9189a3e4df9127c2123ce59a03a6f48d33) return false; + /* 2 - special selectors */ + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x248);// 0x8 + if(poly_at_eta != 0xf3114c664f481e6028c47f122b53b12f6aa455ea26f54aad80ad778950b2177) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x2a8);// 0x9 + if(poly_at_eta != 0x2acd90c58b8637d005a76e69a474de1cc5f432a41724e855b2a0b19b71a52150) return false; + /* 3 - constant columns */ + /* 4 - selector columns */ + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x2e8);// 0xa + if(poly_at_eta != 0x277b3d077e65208b010bc2f62957e87b900bd1f007ef61acf14649463be06cbb) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x328);// 0xb + if(poly_at_eta != 0x308efe88baf9b3bc3787b68d279234d783ef3e4064de84b20dc2a1d72eb2e0e3) return false; + } + + { uint256 offset; diff --git a/contracts/zkllvm/circuit1/gate_0.sol b/contracts/zkllvm/circuit1/gate_0.sol deleted file mode 100644 index 4060b84..0000000 --- a/contracts/zkllvm/circuit1/gate_0.sol +++ /dev/null @@ -1,51 +0,0 @@ - -// SPDX-License-Identifier: Apache-2.0. -//---------------------------------------------------------------------------// -// Copyright (c) 2023 -- Generated by zkllvm-transpiler -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//---------------------------------------------------------------------------// -pragma solidity >=0.8.4; - -import "../../../contracts/basic_marshalling.sol"; - -library gate_circuit1_0{ - uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; - - function evaluate_gate_be( - bytes calldata blob, - uint256 theta, - uint256 theta_acc - ) external pure returns (uint256 F, uint256) { - uint256 sum; - uint256 gate; - uint256 prod; - - gate = 0; - sum = 0; - prod = 28948022309329048855892746252171976963363056481941560715954676764349967630336; - prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 192), modulus); - sum = addmod(sum, prod, modulus); - prod = basic_marshalling.get_uint256_be(blob, 160); - sum = addmod(sum, prod, modulus); - prod = basic_marshalling.get_uint256_be(blob, 128); - sum = addmod(sum, prod, modulus); - gate = addmod(gate, mulmod(theta_acc, sum, modulus), modulus); - theta_acc = mulmod(theta_acc, theta, modulus); - gate = mulmod(gate, basic_marshalling.get_uint256_be(blob, 0), modulus); - F = addmod(F, gate, modulus); - - return( F, theta_acc ); - } -} - \ No newline at end of file diff --git a/contracts/zkllvm/circuit1/gate_1.sol b/contracts/zkllvm/circuit1/gate_1.sol deleted file mode 100644 index 7504710..0000000 --- a/contracts/zkllvm/circuit1/gate_1.sol +++ /dev/null @@ -1,50 +0,0 @@ - -// SPDX-License-Identifier: Apache-2.0. -//---------------------------------------------------------------------------// -// Copyright (c) 2023 -- Generated by zkllvm-transpiler -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//---------------------------------------------------------------------------// -pragma solidity >=0.8.4; - -import "../../../contracts/basic_marshalling.sol"; - -library gate_circuit1_1{ - uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; - - function evaluate_gate_be( - bytes calldata blob, - uint256 theta, - uint256 theta_acc - ) external pure returns (uint256 F, uint256) { - uint256 sum; - uint256 gate; - uint256 prod; - - gate = 0; - sum = 0; - prod = 28948022309329048855892746252171976963363056481941560715954676764349967630336; - prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 192), modulus); - sum = addmod(sum, prod, modulus); - prod = basic_marshalling.get_uint256_be(blob, 128); - prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 160), modulus); - sum = addmod(sum, prod, modulus); - gate = addmod(gate, mulmod(theta_acc, sum, modulus), modulus); - theta_acc = mulmod(theta_acc, theta, modulus); - gate = mulmod(gate, basic_marshalling.get_uint256_be(blob, 64), modulus); - F = addmod(F, gate, modulus); - - return( F, theta_acc ); - } -} - \ No newline at end of file diff --git a/contracts/zkllvm/circuit1/gate_argument.sol b/contracts/zkllvm/circuit1/gate_argument.sol index 70d9976..ad6070c 100644 --- a/contracts/zkllvm/circuit1/gate_argument.sol +++ b/contracts/zkllvm/circuit1/gate_argument.sol @@ -21,8 +21,6 @@ import "../../types.sol"; import "../../basic_marshalling.sol"; import "../../interfaces/modular_gate_argument.sol"; import "hardhat/console.sol"; -import "./gate_0.sol"; -import "./gate_1.sol"; contract modular_gate_argument_circuit1 is IGateArgument{ @@ -35,9 +33,42 @@ contract modular_gate_argument_circuit1 is IGateArgument{ ) external view returns (uint256 F){ uint256 theta_acc = 1; uint256 eval; + uint256 x; - (eval, theta_acc) = gate_circuit1_0.evaluate_gate_be( blob, theta, theta_acc ); F = addmod(F, eval, modulus); - (eval, theta_acc) = gate_circuit1_1.evaluate_gate_be( blob, theta, theta_acc ); F = addmod(F, eval, modulus); + uint256 prod; + uint256 sum; + uint256 gate; +// gate === 0 === + gate = 0; +// constraint 0 + sum = 0; + prod = basic_marshalling.get_uint256_be(blob, 192); + prod = mulmod(prod, 28948022309329048855892746252171976963363056481941560715954676764349967630336, modulus); + sum = addmod(sum, prod, modulus); + prod = basic_marshalling.get_uint256_be(blob, 160); + sum = addmod(sum, prod, modulus); + prod = basic_marshalling.get_uint256_be(blob, 128); + sum = addmod(sum, prod, modulus); + sum = mulmod(sum, theta_acc, modulus); + theta_acc = mulmod(theta, theta_acc, modulus); + gate = addmod(gate, sum, modulus); + gate = mulmod(gate, basic_marshalling.get_uint256_be(blob, 0), modulus); + F = addmod(F, gate, modulus); +// gate === 1 === + gate = 0; +// constraint 0 + sum = 0; + prod = basic_marshalling.get_uint256_be(blob, 192); + prod = mulmod(prod, 28948022309329048855892746252171976963363056481941560715954676764349967630336, modulus); + sum = addmod(sum, prod, modulus); + prod = basic_marshalling.get_uint256_be(blob, 128); + prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 160), modulus); + sum = addmod(sum, prod, modulus); + sum = mulmod(sum, theta_acc, modulus); + theta_acc = mulmod(theta, theta_acc, modulus); + gate = addmod(gate, sum, modulus); + gate = mulmod(gate, basic_marshalling.get_uint256_be(blob, 64), modulus); + F = addmod(F, gate, modulus); } } \ No newline at end of file diff --git a/contracts/zkllvm/circuit1/gate_libs_list.json b/contracts/zkllvm/circuit1/gate_libs_list.json deleted file mode 100644 index df84e4e..0000000 --- a/contracts/zkllvm/circuit1/gate_libs_list.json +++ /dev/null @@ -1,4 +0,0 @@ -[ -"gate_circuit1_0", -"gate_circuit1_1" -] diff --git a/contracts/zkllvm/circuit1/lookup_argument.sol b/contracts/zkllvm/circuit1/lookup_argument.sol index 14d686e..13d3288 100644 --- a/contracts/zkllvm/circuit1/lookup_argument.sol +++ b/contracts/zkllvm/circuit1/lookup_argument.sol @@ -19,5 +19,4 @@ pragma solidity >=0.8.4; library modular_lookup_argument_circuit1{ -} - \ No newline at end of file +} diff --git a/contracts/zkllvm/circuit1/modular_verifier.sol b/contracts/zkllvm/circuit1/modular_verifier.sol index 4d23268..e9febc4 100644 --- a/contracts/zkllvm/circuit1/modular_verifier.sol +++ b/contracts/zkllvm/circuit1/modular_verifier.sol @@ -39,8 +39,8 @@ contract modular_verifier_circuit1 is IModularVerifier{ address _permutation_argument_address; address _lookup_argument_address; address _commitment_contract_address; - uint64 constant sorted_columns = 0; - uint64 constant f_parts = 9; + uint64 constant sorted_columns = 0; + uint64 constant f_parts = 8; // Individually on parts uint64 constant z_offset = 0xa1; uint64 constant table_offset = z_offset + 0x80 * 4 + 0xc0; uint64 constant table_end_offset = table_offset + 256; @@ -48,12 +48,10 @@ contract modular_verifier_circuit1 is IModularVerifier{ uint64 constant rows_amount = 16; uint256 constant omega = 14450201850503471296781915119640920297985789873634237091629829669980153907901; uint256 constant special_selectors_offset = z_offset + 4 * 0x80; - - function initialize( // address permutation_argument_address, - address lookup_argument_address, + address lookup_argument_address, address gate_argument_address, address commitment_contract_address ) public{ @@ -82,7 +80,8 @@ contract modular_verifier_circuit1 is IModularVerifier{ bool b; } -function public_input_direct(bytes calldata blob, uint256[] calldata public_input, verifier_state memory state) internal view + // Public input columns + function public_input_direct(bytes calldata blob, uint256[] calldata public_input, verifier_state memory state) internal view returns (bool check){ check = true; @@ -99,51 +98,53 @@ function public_input_direct(bytes calldata blob, uint256[] calldata public_inpu ), modulus ); - + result = addmod( - result, + result, mulmod( public_input[i], L, modulus - ), + ), modulus ); } Omega = mulmod(Omega, omega, modulus); unchecked{i++;} } - result = mulmod(result, state.Z_at_xi, modulus); + result = mulmod( + result, addmod(field.pow_small(state.xi, rows_amount, modulus), modulus - 1, modulus), modulus + ); + result = mulmod(result, field.inverse_static(rows_amount, modulus), modulus); // Input is proof_map.eval_proof_combined_value_offset - if( result != mulmod(basic_marshalling.get_uint256_be(blob, 224), rows_amount, modulus)) check = false; + if( result != basic_marshalling.get_uint256_be( + blob, 224 + )) check = false; } - function verify( bytes calldata blob, uint256[] calldata public_input - ) public view{ + ) public view returns (bool result) { verifier_state memory state; state.b = true; state.gas = gasleft(); state.xi = basic_marshalling.get_uint256_be(blob, 0x79); state.Z_at_xi = addmod(field.pow_small(state.xi, rows_amount, modulus), modulus-1, modulus); state.l0 = mulmod( - state.Z_at_xi, - field.inverse_static(mulmod(addmod(state.xi, modulus - 1, modulus), rows_amount, modulus), modulus), + state.Z_at_xi, + field.inverse_static(mulmod(addmod(state.xi, modulus - 1, modulus), rows_amount, modulus), modulus), modulus ); - - //Direct public input check + //0. Direct public input check if(public_input.length > 0) { if (!public_input_direct(blob[865:865+320], public_input, state)) { console.log("Wrong public input!"); state.b = false; } } - - //1. Init transcript + //1. Init transcript types.transcript_data memory tr_state; tr_state.current_challenge = transcript_state; @@ -153,8 +154,8 @@ function public_input_direct(bytes calldata blob, uint256[] calldata public_inpu //3. Permutation argument uint256[3] memory permutation_argument = modular_permutation_argument_circuit1.verify( - blob[0xa1:865+320], - transcript.get_field_challenge(tr_state, modulus), + blob[0xa1:865+320], + transcript.get_field_challenge(tr_state, modulus), transcript.get_field_challenge(tr_state, modulus), state.l0 ); @@ -163,6 +164,7 @@ function public_input_direct(bytes calldata blob, uint256[] calldata public_inpu state.F[2] = permutation_argument[2]; } + //4. Lookup library call //No lookups //5. Push permutation batch to transcript @@ -172,13 +174,28 @@ function public_input_direct(bytes calldata blob, uint256[] calldata public_inpu //6. Gate argument IGateArgument modular_gate_argument = IGateArgument(_gate_argument_address); state.F[7] = modular_gate_argument.verify(blob[table_offset:table_end_offset], transcript.get_field_challenge(tr_state, modulus)); + state.F[7] = mulmod( + state.F[7], + addmod( + 1, + modulus - addmod( + basic_marshalling.get_uint256_be(blob, special_selectors_offset), + basic_marshalling.get_uint256_be(blob, special_selectors_offset + 0x60), + modulus + ), + modulus + ), + modulus + ); } - //No public input gate + + // No public input gate + uint256 F_consolidated; { //7. Push quotient to transcript for( uint8 i = 0; i < f_parts;){ - F_consolidated = addmod(F_consolidated, mulmod(state.F[i], transcript.get_field_challenge(tr_state, modulus), modulus), modulus); + F_consolidated = addmod(F_consolidated, mulmod(state.F[i],transcript.get_field_challenge(tr_state, modulus), modulus), modulus); unchecked{i++;} } uint256 points_num = basic_marshalling.get_length(blob, 0x79 + 0x20); @@ -208,8 +225,8 @@ function public_input_direct(bytes calldata blob, uint256[] calldata public_inpu uint256 factor = 1; for(uint64 i = 0; i < uint64(uint8(blob[z_offset + basic_marshalling.get_length(blob, z_offset - 0x8) *0x20 + 0xf]));){ T_consolidated = addmod( - T_consolidated, - mulmod(basic_marshalling.get_uint256_be(blob, table_offset + quotient_offset + i *0x20), factor, modulus), + T_consolidated, + mulmod(basic_marshalling.get_uint256_be(blob, table_offset + quotient_offset + i *0x20), factor, modulus), modulus ); factor = mulmod(factor, state.Z_at_xi + 1, modulus); @@ -223,6 +240,7 @@ function public_input_direct(bytes calldata blob, uint256[] calldata public_inpu } console.log("Gas for verification:", state.gas-gasleft()); + result = state.b; } -} +} \ No newline at end of file diff --git a/contracts/zkllvm/circuit1/proof.bin b/contracts/zkllvm/circuit1/proof.bin index c16ff44..128da32 100644 --- a/contracts/zkllvm/circuit1/proof.bin +++ b/contracts/zkllvm/circuit1/proof.bin @@ -1 +1 @@ -0x03000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b000000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d343a642d206f24cfb2bd99ba9d80d43a9c0c9ecc099688b35a29c17ff610dcd90000000000000022343a642d206f24cfb2bd99ba9d80d43a9c0c9ecc099688b35a29c17ff610dcd91f1737f0f9693494b37fd517f70fe4d844c0e4dd11e9df8639a0be9abfccb55b0523f4e1a22bb80e7db400a5138425248324b60c0abcc7125e1c03cbce5450391b7417b4df0e06e7817f2977d34f78391337465946f76b67edc9572bbeff8ac519b3c8682ada9848748403396194b9b68fb78e3c35afe35bd68c12fb07a5911d094476885b462285877bcf57208d591d1b872dc6503b26d072945200bafdb5d70082ea08d644f96a4694101ee7e7a0908a089534f9d57e93fe61fd0d263bd58f2e5650a9c85eac9ba56b0cb3a2c2bd9189a3e4df9127c2123ce59a03a6f48d33343a642d206f24cfb2bd99ba9d80d43a9c0c9ecc099688b35a29c17ff610dcd91f1737f0f9693494b37fd517f70fe4d844c0e4dd11e9df8639a0be9abfccb55b0523f4e1a22bb80e7db400a5138425248324b60c0abcc7125e1c03cbce5450391b7417b4df0e06e7817f2977d34f78391337465946f76b67edc9572bbeff8ac519b3c8682ada9848748403396194b9b68fb78e3c35afe35bd68c12fb07a5911d094476885b462285877bcf57208d591d1b872dc6503b26d072945200bafdb5d70082ea08d644f96a4694101ee7e7a0908a089534f9d57e93fe61fd0d263bd58f2e5650a9c85eac9ba56b0cb3a2c2bd9189a3e4df9127c2123ce59a03a6f48d33237dab60b98c242bdc040462620fa39561fa93443e3f35366d2c37b40246ea3f15e6b91ca3f769953eb151173a98d00ee92aa36a2bb9d98d22263948a9f9f5bc0f3114c664f481e6028c47f122b53b12f6aa455ea26f54aad80ad778950b21772a9c1e52bc40ac6d6f3f6e7ae53d3431ed25d2de53537b0ca1eae11146076fba1120d7036b44a66c97653cc3a108eec9dc327c772c89953ea30416a55b92da5a2acd90c58b8637d005a76e69a474de1cc5f432a41724e855b2a0b19b71a5215001af70b396bee1c8ac831d5acb411d2d45716d6772267574091ca6165c5a495a277b3d077e65208b010bc2f62957e87b900bd1f007ef61acf14649463be06cbb32296b1e5e8b9c405edae3a23730c95f510716074c49d64788b93bdf133721e2308efe88baf9b3bc3787b68d279234d783ef3e4064de84b20dc2a1d72eb2e0e3308416941f77a0090a1a336f58a5fc1f5ea108144346340d25b0c8cbbb1c6e4d233a8987192e93bd25d9a764986c84f04d95c7c3604fb5579e867861434e17b4099c717f35db14d2697e363c8f15869eed2d07c39bc4c08839cebb610ab1a2800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010309a3b1f7b4a2f86fb021777006f31758ac85048ce903abdde687765d672f671691c73ae7f3c41138bac2bbda11010fd5c77fa9a85c18ffb2b5dab719c393430000000000000008000c01040201030200000000000000130202020202020202030302020101010102010100000000000000030000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe00000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f700000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b893000000000000000301010100000000000005f01c7c76063334c4548c3e5bd1b8803368daeffeb85520cd112001956de73d5af4238389f9cccb3bab73c1a42e477fcc9747569a43b42c2c0a792b9b7f18c2a50d0e6e4e1f0007d5a6bd37cb189a81010c0222c7a1970a0f1e6dad894b8432c6c23191b1e0fff82a5942c834e7657efef42023d15a7242e9fd2b7fa7a17bcd393f0827869b00272c41b216f77b0485053be8674d2be9e5527c8b367d8c94fde1c937d87964ffd8d3be4de90884fb7afac439df4bd01f67a69f0df6b3606b021e3828c5a10700c3dd487a72d56716991a2b8a0481db917a9c6eb81073bee8f568ed173a5ef8ff3c22b7858d2a98e966e5d49842172077d25cace11cbd2e170a97141c7c76063334c4548c3e5bd1b8803368daeffeb85520cd112001956de73d5af4238389f9cccb3bab73c1a42e477fcc9747569a43b42c2c0a792b9b7f18c2a50d0e6e4e1f0007d5a6bd37cb189a81010c0222c7a1970a0f1e6dad894b8432c6c23191b1e0fff82a5942c834e7657efef42023d15a7242e9fd2b7fa7a17bcd393f0827869b00272c41b216f77b0485053be8674d2be9e5527c8b367d8c94fde1c937d87964ffd8d3be4de90884fb7afac439df4bd01f67a69f0df6b3606b021e3828c5a10700c3dd487a72d56716991a2b8a0481db917a9c6eb81073bee8f568ed173a5ef8ff3c22b7858d2a98e966e5d49842172077d25cace11cbd2e170a97142f9100e7d9729cc8a4849ff8a3f726e058f54d2932408faf7a9e60e588d42726155c38b94270d7de2197be5e15a4d5e15644d01a67b1a6e21a65b85729e9ce4e2a8a0766c0e73aebd9f41489a19b5fb4e621e8c63975fad355c990da1a93021338734a4979e4e8528e9e439e4f541617d14bfa8b2a316ddd1146c396992f2dfc05de22137de15c03e481b0d88423e3e59054423063e206cbd6cd73c4109e954423f9829783dd7732f9a1c3c8fa27b34dff1ad68b35f03fe95a3845494f75f0ec3378e96abdb61bcbba1d3eabd7fed54d0690575ebb22e24a202a312fe5e0ea871d4151debb909c698a1974bf79d06c98068b8887bc2e4b5acc78cc6e960b93db3863f5ba1ed723e7487a2530d2cd6b1241479a272f4fe6ec44a548d9601f436132c090b776a1d67b34de1f40c1b97866b13e287528a6a1071b01d55e369cd33d0b8c04ad1d90783b373b4fda1f93a0ff41676b51b1199a785c248c2f21529e833734380f5f30f4ff965a2825cb1dcc691c999cb5cbf1fc76200593bd74554d0433ea94dfc7a4ad58c5e4179c08716939398ba390401a3c81f1758e34ca620e162821d51170eabbc57e4e2e8a40f47523b3ccca3c14c50f0bcc00bb47ffdf421100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012eac6184c940184e023e06c719f49a1fc6d6ac3f862ed70c09dcde569f6dad020d6d0023355d2e4a622f01fcf78be2e7f893c0f7928d71cceb78937b9df0260a2a25c8cbc84e082e14ba564c6ee897a12e8a59a559dac5cdabbca682bd68475e015dbb7c6e1df224e9b8c0af2af894663536899fb337404f7d00c7526309197711b0c2716a3b801981da446fab38d939e892d7ac50c425e198aba1a55eed2bc92e4f3d8e95c47fe67e25bb9054c726c639b3c14fb888d33a00818f47a112d4381873cc371329807f8943562e581c3e2168979d618a87c44c622cf74ddaa1daec278c33c8ecd67f8076bca9d1a7e3c1deb9aefb9a7ec534cf3700399f255e25153a42fd135fcf827dae50aee7b88d36a6e8af79ebab59dc6251b3a3984529469b05bd02eca0307d8251af51184772c95939971f105df31cb947798d54bad6b966234ef160df0d8c7467936a869ac211420252fdaa338d697d33cd6e4559ce61031cb10e9f20f2738b986c9579653deebe1ff39b51d5bf8f9e655fc2a7a6319efe11b0c2716a3b801981da446fab38d939e892d7ac50c425e198aba1a55eed2bc92e4f3d8e95c47fe67e25bb9054c726c639b3c14fb888d33a00818f47a112d4381873cc371329807f8943562e581c3e2168979d618a87c44c622cf74ddaa1daec278c33c8ecd67f8076bca9d1a7e3c1deb9aefb9a7ec534cf3700399f255e25153a42fd135fcf827dae50aee7b88d36a6e8af79ebab59dc6251b3a3984529469b05bd02eca0307d8251af51184772c95939971f105df31cb947798d54bad6b966234ef160df0d8c7467936a869ac211420252fdaa338d697d33cd6e4559ce61031cb10e9f20f2738b986c9579653deebe1ff39b51d5bf8f9e655fc2a7a6319efe28af10f352863be3603c58450ac349ce1d7a69742680e6ab4dff37b2a6fd6ec9074e164dba4793ffc9b2aa3f0d66ab37f9054d43e2b9d2b9106dbd59bc74d6700ee0232a48d3c6ccfa558c99f9b0da61e5bb58c8c1d0fe29a53259cdd84532823c89ffafc9b78eee93a4da97fd9c0a11198f8fe0dec284d5da7b601b729b2b8f00ab52175e9af80a78b3b080fda9bd7a45178804d4e78608bb8bdbc43b5af4a70b6848fd845531c18e8ac666a8a521a02a23506c3b3a92ed56e82c9367dc3ead16455d69fdad6d43f2e9f8c3e0f202d32bf94e0ac49d6660cabdb4ba775ec4102347fe970b9923798960494a5fe4caa963875ae7682d4df8975abd439d40ac9e011a719655003ac0875d6972dbd552bb37b2ddb2475332cb963707ecc3ab1fee20eb5250067100d5c3d5eacb1fc82370455a2b02ab604c8eaaa64babec44b95c053f2c9eb8200f1f6c5847826607faf8bf8bea3897451592ab22259dad3b0fe51101eab62935f45a6787c09b3fe8148c43c2fbaa7e718e8b124aa35b21dd58a9229c5d28ba70d933994723a8dfc999e1d54a8783275bd294bfb12c39ce2b2c982ca9d01ab9d6b02fe8bb2c12841ef463cb20b14b665be6365510aba694619b91000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000123132e30fc924df57f9caf56690b54b8a8390bee052df6ffa24c8b0fcc9e92512b9ade66852b129824e881fb308454247e9b25a68cce931b128e1e67e41eece80daa2982bcd8075e72b5849fde12f8e8640dc7aad3f14b97592128ec5c2333ec3f3886d2047ea9f3c4a454785c5b359beeb9e13a5e8aa3a34c89f8c6e6f8721603fd7dcdec4c7e7ef376d505a1884aa211315316654ff11a080c79b99eb27c653c02823213b381810c892afa5e77b55e111545e5a3fd08019120b733614d839c13f375059d7e787ac152291c27a9752a55f69f6ffa8fb582283e60a0197c6df92c0c8afa628187853eadd6e3d8568ad5cc4ff98c0ebd439970eed04ce683920823c1491c13785a65c69acd8cc64f49d38b8a8433db81926f300ab2337f6e25dc1c3eb6e3ec87a59a3965327339b0b62c96bc14c82dcb66ac69227eb98091da2532c66d8c6159c3fce10603bfdf8c71217527630b36ede9f4bddb19277d26bd4a0d3992739ea63c031ef9fc4020738edead1f35f0d25f0f26db5217c582d942b703fd7dcdec4c7e7ef376d505a1884aa211315316654ff11a080c79b99eb27c653c02823213b381810c892afa5e77b55e111545e5a3fd08019120b733614d839c13f375059d7e787ac152291c27a9752a55f69f6ffa8fb582283e60a0197c6df92c0c8afa628187853eadd6e3d8568ad5cc4ff98c0ebd439970eed04ce683920823c1491c13785a65c69acd8cc64f49d38b8a8433db81926f300ab2337f6e25dc1c3eb6e3ec87a59a3965327339b0b62c96bc14c82dcb66ac69227eb98091da2532c66d8c6159c3fce10603bfdf8c71217527630b36ede9f4bddb19277d26bd4a0d3992739ea63c031ef9fc4020738edead1f35f0d25f0f26db5217c582d942b739492c28df8980e9e622cbca7c106fa4a36ba8727e675886340b9965a9b211ed0b2e548ab43fb1633fb1036207894ff837916e4952f51dc3403358a248a4520b39545e6f1e77f35dc58e67531364d2d4dbab492baec592d24c001c4d1643503d17db95c7e2e907311ef0db42746cac3505ad9d4291215b1ac16808862610bfa12cf5376805f2dd7a08fda197b4d51309cdce871244f1318b7d18c2c548a08d0e13e9bc5f926f558bdac042747e36af093fa2490a63588d6d3fd09708b53bc6500744c761362bdbe7773b833b22cf34e3465cc1ebfda0e15aef3b66fb079115f82292dd49cb92f74f66e7f1665b7c6250491256cf9c31655a41ca5212588370373f2519335ab361d0ab93cedd33552d965f451c177e07dd611becf7c6a9148ac13b5c499d0822aa018bafce0830438f58f330fb78d78e407a1fee4ef746b3c972346592009a177a93ddfb6417d8130cd2b9342a5f0a79332ece3a893f06ada56e32fe9725f9f658dcf13e33af9897f238075b142790d234663e95211c4118339c36fbb4dbc61b8d012dc8c572885c5e795002207c447eed64ee4085b03a38ec211a860eb477601a65ad8403ad08a26eaa8a325c752f271b8fdca6ad3cf294e1a90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001264ddefa76c671adea087982db8ed1b06b7d72dbdf503f2cbbbb94cba6e6d43f3f72c8960564530ae92226d9cb097d0e260a478cdcbc42e737f4c57a601ed16932a8d2ce28406777430e4dfdd90af709537fbb9eb5493d9f4e22a973c47313352d0b1b7da7fa0cc1542b6f68b1b9360392fcc53e98f9f143b4a520a81f82f42924fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a6021551b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a707121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a1ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec20f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f0463930c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c824fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a6021551b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a707121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a1ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec20f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f0463930c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c81742baab87a0512aae50a1b71a451bd35fc2a8e5d9e9d1588e2a3a32169865ec20141b0d2ac97a190690c2a5bf733d22495d1250b2024db2fdea8b5ad08ad586088e9bc8ed6084f49d5cd96f90c1cbf8f08c0d55ddb6f7f077ee85d460554996305285f4b75d9c5c7821ca7721e8ea30d58c6f520268f9072ae820a970d9a4d220b45d2505771be3d80c47a1da5474ff0a6b7d0440779eb5a4c707c21fe2c59e065480b5eb2c39f9b54a2b9c59f1b47193165965f2be85f0cca6b0bc40b8b2e91ac9dcdf8df857055bf275f85a5e96c14c9fc78f2f36c7a19eeb6ae820ac9f7011af9f86c195bc53426c3766cefcbb459245ac9942dec3954303a69c5deadf5b3712880d9a718ae53a09644756774a892d3e72a8f6d7378f33813d42edeb60562b08dfac195d8edfcac91624fd224de0deda98b8a231e5af80673142ef8c17981eb1ea6ae94ef2b189de1e9a397ed32288b6de34602b54cc89300269b359c0a2059e34457c3063f003c81336485c5ccd3033de404e006ddea9df6da89d22a27a04f1da5060f75e597108542418f0b9631ffa301b78ebb08b79378d5197ac6ea12b73bd8378736e0c774e1d50b7166acfb7fb7863334794d69b990b21c968007e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000135a256dd066e4ced815f59c66198b6f3aac47671d1782039cfd103e0ad07cd1211ecc2d16773f901cdb001dff320885cf98fe9ef30fe22c769dd16c538fb0bcc23afa3f49d003369649342964fb111ac9c626cc4949cd4e9d8602663813514fd05b11cd7e03488d6bf19ddf593ef3b744ea464bc9bd8056b5d7233be80b4713f004ebed66970c16a21963c211e797937651cc016ab64496cde10a4ab01eef4183fb14129968f3e95de69c3dee18686c8bd29d8e55de8afaebb1c8c41fe110be90189ba300f33c712a7ef2ca5985f5e14f98fc07158f56f205653375709aac4783e7645cff0cc38ed5810d35a67a0a1eb28b6d88ab05789fb42d9f995f6553b8907b0a2f04c02e35d47abdf3bf9dcd668dfcec236bccb2ba1afa014b33055d658384f5d0fb3fd1ca2b85420c4062329974277d6c54c81cd79e98d1c39cfaa29a926732eb17c0e70d2665b5c2be150300c5f09cb11aff7da286e20677ff1ad2fb8198cd14e83f18f2d99a4a3d41eafcff3c33ccdea59551ef32b0cc96d0e52d049004ebed66970c16a21963c211e797937651cc016ab64496cde10a4ab01eef4183fb14129968f3e95de69c3dee18686c8bd29d8e55de8afaebb1c8c41fe110be90189ba300f33c712a7ef2ca5985f5e14f98fc07158f56f205653375709aac4783e7645cff0cc38ed5810d35a67a0a1eb28b6d88ab05789fb42d9f995f6553b8907b0a2f04c02e35d47abdf3bf9dcd668dfcec236bccb2ba1afa014b33055d658384f5d0fb3fd1ca2b85420c4062329974277d6c54c81cd79e98d1c39cfaa29a926732eb17c0e70d2665b5c2be150300c5f09cb11aff7da286e20677ff1ad2fb8198cd14e83f18f2d99a4a3d41eafcff3c33ccdea59551ef32b0cc96d0e52d0491b01758c049a62ce71a32817f0c287840aa0025270fb9a226de5a2995d46f5e82caf6030c551d866a83e9b6fc8ad4b31cb3b894b30e60114c6409f03b1587a9c345fcb2b90798a2249ae6aa00814c1444ca5aeed5d332cf439b4c96a0d9f37042f01eb221e04c70b732eac9d1c430b234c0f45fce7cd4f836814797986f4dc550eface441246d79ff30fd55ebb3d51be15c1fd1fa534fdc858dbb36e8429d6c014553fb75f5053c5fcec27062e336d4cdd3653c6832f458052177ac80848850417bef5c294c16a4f0d8fbf9fede424fa622ca71b64559b0a6df07e7121375e35316ea200b9760114d6bf235dcb09a0839547885fe9e15d225f471c1c73234ebb23a634dd829c2879df5d7443509b061cfbe4f5056abdc5036379f2cd87258d7020c398f3a6c4d62406a713b0626dbaa2fbecccdbdb1a993791ea26e670a3b5d60fa95dabaf4ceb20a1ea0cf9739ace8987ce3cedea14c0e33eac64aa303c674735f214ee1eefbe24bb76664b7a76d72eba3c5de6b0ea421d229470961ab7fc11177f5232f70a75893c1c8bed02ae9df506feb670069c594106ce31cf6f6a0b2036db1dd74b825102d9e73ecd1e489a8bea2628096fadb7fbbf89e6fc0339684f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013ee0997d0a52eb5d6a919fac84b948e42e90b06d284a96edac83840ede9196d73e73053e33e92e5f3e81cabaebe370c875a499cb393834f80c64ba2d69af7b901dd563b751da854cc8f3787534c1bda82be36fd7a565cae3bd7bac30bfb88bd40a0c2d0906633b0368f36bb95e8c77d9a3c008aa63429b594c1a1056aa64819a01b938c18aafe9f5a5f8c82f74aec414c547645d28ad43ba56624d06ca0357563e46c73e7550160a5a0737d08b513beb5cff349ee09fb56142cae3e635fca8ab089e1bc7b56f91cc3ddbe8ed4769d467da64f5d1cb6252a3afeb8121f210b4ae3761e4384a906e33c2241712b8962b9847e1a32a3deaa677e941afcb0def4b532b168ae68b2dd8fd354b8ca26511260743f8cd18f8eb9d326f9985a9ba53876614e9751974d22702cab4735d9aeed9f8de4dcbe310615be92993ab4345ac789b1770b680b7e53cf20a79bf2bf955be23ed083688c0b326a962780989a3a1a4fb288f497f481ac30df58640d406aa41dc353e62734899d27236b527635c5e5b0601b938c18aafe9f5a5f8c82f74aec414c547645d28ad43ba56624d06ca0357563e46c73e7550160a5a0737d08b513beb5cff349ee09fb56142cae3e635fca8ab089e1bc7b56f91cc3ddbe8ed4769d467da64f5d1cb6252a3afeb8121f210b4ae3761e4384a906e33c2241712b8962b9847e1a32a3deaa677e941afcb0def4b532b168ae68b2dd8fd354b8ca26511260743f8cd18f8eb9d326f9985a9ba53876614e9751974d22702cab4735d9aeed9f8de4dcbe310615be92993ab4345ac789b1770b680b7e53cf20a79bf2bf955be23ed083688c0b326a962780989a3a1a4fb288f497f481ac30df58640d406aa41dc353e62734899d27236b527635c5e5b060df237e95603c22b115b51664f40ce8a1bf3b428e1c80bf071341ff56c8a1d8b2094e452eca6427b095af7a868bef31e068b2dbfb1a9ff44b42700a19e20cbdd2cde337a7b3c0ef134647820650c6ec7d5c865e563213bee2e943d34813d12542bb5219dd9c2b32a22408678731a30d64d099575cd588d66ee7e5d40520a43e30c0812d76c6f3d6ca6d1e6b527a66a7e647f93196e3898e285d784653440ccb13483450913f00e4bab1cd8ad41da11fe49887611ab7e701aa4d4ad25d9533a5c267aa804e96598e51944feeb0d9eebd8e9770699808f77d8146bb47a9a3344ca3f4cb718be32b1291c98d4e23c7a4e21740b2e921e5096323203ea9a4845e9211255406cdfa0f53f584b1db47762c816409f1fef9f3e3eb828c388d99e85cd112e336d0daa6f82d9f0f5d31d68f388cf835cc7481cfbedb523acf3fb73068c2a18559430108bed6edefb8e856f582ec04af7702308006ddc902ed5848f640d693e5d61737dc96252e83e54b8a2581c2700252ff0a3417303bb33d87408224a720ea44c2fc012c9709ee65948a7ec14364380337810bebc6acfcf8b318dbb1a94150b9add47d877cd5eddccec1a7bcda2e82555935b680a59efd4607139eca78200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013ee38e4a501d63bfb08fdcf31132b036ab7e4cd2963807cd3c07b7f5d01f652e0a60a855ccbd4a77f6de4dd657bd725841ee32dcb64a4d7229a25f4bc928bf8e36287dfef02b117b4df3c8277bdf7be1f86eb3b6332934874058db8c8a06db3710c7935bcb6e175a58365d826737aa3ae06d8de2df0fd2a9b6d5d424101680b830b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b913383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d0c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d4019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d12407dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea51382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b030b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b913383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d0c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d4019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d12407dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea51382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b0029a3a1c6f41964b9b68a7284459f07faaec11e2ecc625a37dbad47ff53f13750a5a3a2d099e0f0d99fbe727865f7e3d88fd0d0c33dd52e13e5b28e6d2ed2b8e20899be034bb367aeb6327c489f2fff9f9cbc864c35ab1152660e9397ff33a35319a40474708858ea7169fe9fca304648ed91191eb49174efb17618c5f6b7521232394d4641ac26bffbf0e8312921ff232a0d35142b6d7ac52a7a582d1a4c5533fde85d7a1281db23d7a79666ae7d3aac22559ca2a02e23f4ebad1074f0bd5821237f319d05ab81aa5bbca31f5e173ee541b4e6aca701512b448911f6f5b009d39d24e3b13b176137675c24434341c29d0daca0d4b50794a8b073a0aae8ca7572198993f437ef68a2c797c6434da39d1d7c9c38890674aabbf8c96f0d6967c4628b3f454c4513f025ed42e9b07b385a448c4218a5acbe5c0d4d64416f1df028c25f1cc386d4a495b4c7e832d649d4503020d5d926ee9cd68afc9956d52de9a4425048fc1d7d4dfbe9e41ff71237a8cc0237a2f9047f26bf33b651dbfe18a04ce071c566cf0e9b7870f65477ccb6f4009d1817cdc9657df12f43a0fb86c9d677429b93a34cef87cdbf9202d41416a9c9d49765bc9d694f660104592d44b6156ab000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000136f1e408c87deffa380af27147aae18d45928b8b18f6bf312fa1c5a8be48ad783a2ded64e515941056e7f07fd9dc286f1d70a8578828b20f1e7c974bf33a36b80fa3d7e7c3c9d48cfb942ddcc6d659816f63c7b0c4615edd3a9474fb882e208b0d1597db48ef86f20fdaf352a3c7a17680123a583970cf7e42760bf476fcc9f50b9e6a431ecb9d4d13aa7958fd16be84480f6a6cbebc56322649f2ea95fd06c1346195bce13462b2ec5586a702e9417bda372e8f4a90a2e972e33e026a02f9403a18134f99fa128162545ebcf171b895684d141fb9adaefabf71be94edf121c505e7ecb06605ed7e9daba1430e8e476ab9f984dc4f9f4a20d9bb7258120ede3c2278608e01e25c86eba5d9b0b7389aea806700ae7b3086775883f534a5b5a8d51d879f71fe1da379145a264f48c76515a1df984d8e1c72a440a93bb85a4a572c2c59e2c6096bcea29a3d4073941b06943d75d1705558ae1d8839682d3c8c4c2713a61d39f694315d65c2bf8c6be4f96be4d0c78bb3f44afe10f3c8bfc373b3da0b9e6a431ecb9d4d13aa7958fd16be84480f6a6cbebc56322649f2ea95fd06c1346195bce13462b2ec5586a702e9417bda372e8f4a90a2e972e33e026a02f9403a18134f99fa128162545ebcf171b895684d141fb9adaefabf71be94edf121c505e7ecb06605ed7e9daba1430e8e476ab9f984dc4f9f4a20d9bb7258120ede3c2278608e01e25c86eba5d9b0b7389aea806700ae7b3086775883f534a5b5a8d51d879f71fe1da379145a264f48c76515a1df984d8e1c72a440a93bb85a4a572c2c59e2c6096bcea29a3d4073941b06943d75d1705558ae1d8839682d3c8c4c2713a61d39f694315d65c2bf8c6be4f96be4d0c78bb3f44afe10f3c8bfc373b3da36f638696b3494e042cc24ef0a03017341a810ea0e7082c785281a0594562fe93e2c1c70f1788dd278657d66ca3598829eb5d445d25fdee40e36a87298b8306636613bf28559c9975162fcd4f3ef25ab73c83427ccee2ac7bbad66e91d9b2078106a575d3cee30f604bbe7b259ebf018eedf9b52d8f7260e568f3fd860ad3bef01c4b99e348afdfd40ba69c835715274d0e31bb3bc6133eab4d89fab5ece5e9409d8bfebd944e2f7b4da0e84adc98b19a3f6ee9a22a951db74cd7e2c5d95ed3a0a30d303645911520afcd87161e76f5a40a40c659a82c83eed862befbc8dfd460782dfca70c9aa594da4e9702e692fcb1e53193fc3645ded8abf4aceae08c0e1329156e525792f5e9e4de150f7328058980f249a82b84750a7034f1669f53fba18bd631388308b5ddeae3ed6a97e21a61c31b6bef48f5cbab3a08ccb07dec11f13e552b579009cf78bed13f3c61ffcdcfc40660344420be61b0cf14e750bad891e80937512ccba6b84e635edf3b4f9fc3b88ca110c4d7612d4bad2049221af0f328ee72c2df12cc05efaeddcb75ca090dec35a5ddec9aec45042f143ef51833a132a0e4ccfdd4dfdc86f0bb5fd290d1603cff81d1e0f7d63498562de4d0ddda3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000125147966ab80e921cc3c321a7d7b455142950ee3134e96c2468a4580c5224d920f63ca87fb6554e5ccdd68f6b077d73a3bb4c5f84b96d2dfe59c58d0513744890c5b60b0c50986ac5a055ceb11ebefe02922a1cc24c3ac3a94018cc07f765c4d2060b993a965e04147611162ef30911181d332b4cc5c8942f0e97b233c0920f415cacbe1323d0fa43c58bfa0e77370cf3929bffd73861a9f5c0c5c9008a6ea482a35341ecdc2f05bc3a7405f188c8f30e91cd8fe95c6de7c3d20d45cf75915b92cf5fb65fb314e352dbbbe248541340bfb8a26f738518c0133109de32b429367130a049a04ceb1cad24441db7abecbf426bc7204d0fb6d1a661c9309d4bd6c9a20cde8fde7f68709e4aab6b69a46043b82def7dffdb0d0b333cb82a8d84ce1001f321702180978f61b55494965b9fbc49f67a11c0b9c28686561ae4427b31f0124058cf587d0a33177559191035e152949cda567e1da2148d09f2b72398064fe1bfa730a782f5cce88aa6e6efca1ead6d878f3942772d7d2c88e057ac67f9b0315cacbe1323d0fa43c58bfa0e77370cf3929bffd73861a9f5c0c5c9008a6ea482a35341ecdc2f05bc3a7405f188c8f30e91cd8fe95c6de7c3d20d45cf75915b92cf5fb65fb314e352dbbbe248541340bfb8a26f738518c0133109de32b429367130a049a04ceb1cad24441db7abecbf426bc7204d0fb6d1a661c9309d4bd6c9a20cde8fde7f68709e4aab6b69a46043b82def7dffdb0d0b333cb82a8d84ce1001f321702180978f61b55494965b9fbc49f67a11c0b9c28686561ae4427b31f0124058cf587d0a33177559191035e152949cda567e1da2148d09f2b72398064fe1bfa730a782f5cce88aa6e6efca1ead6d878f3942772d7d2c88e057ac67f9b0336c9c54533db5ef75a7768cd4d6eb285b2f66a544697edfc98ae3300b0b8f78827fd66c6ec7bdc59e76e6b40ca6876b9ab028b7dbbe031f58b2687525a0ba733003ab197af5139bcd4c783f275fa48234fa53ac560737cdc3b9de94f229f7d7e330bb18bcd037e5ee17c88207f93c8c5cab3e0621b8b3d5d8e6fe523362cbae93659a6e98505b72f629e7157b5444745e8a12145b40dd2e9e724a11e11cde8cf0f1b0f2b0b494da10298447807e174df78aab6f54ff2b77aa86c4784cd1e4b023b0d0def9e887241670083ac22704cc721a0b517d82254a0881bcfecf78b6dbe235e0ea04712b4c7adf62c654cce58fa7ff040030aa03836637d9cb2f77fdc9033f5831e3dc35eff256a852b4fb7bd3ec59d9665bfbc9c6809f9da71a95e9d33190daed5c6532cf7803b839b87cbfb7c0aa2c16bef4df7a84215955655f2138811953a3041ce47f4493bda3d37c444cac2395ae93ce6305cc4a1ae2daa977ba11dcbdeda049cd2981dba34820becc414ebc6c3d2a3b42171647903caae26487d246c0bffef6c3775333e4f44b75c69c6b5a400bf21778c3adbbed21ce3d23e840b47cba8c278568ae1976ee2e51d8f7d10776e926929dbc23093fcafa61351a9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000114aff20891dec628f120e9224fa2d9a9e71238cdb92cbeb0b90c54e06eb7511d322016bb5981f1a478af84acf87ea6184ff701909bffd1cf8980259f12dd916434efdb70ac2162d6102e8c904bc912a0594e624fafa4870cdbd8d31857a69cbd2a8ceaf146ab667cc554fd1adab09ec5c49c8c77003d30d0eceff1ebfead4f0935c3976d398f747336feaa383f3713a35943f3c4edb6b1b51af8347c453c12f50a3c6892c6708b8cc90155c7c0c8ec5cc902a5371b9647667e34fc70bac3ed0c0cd1f5221fcd464012f953193c13623035395ee87f5d941b222442b95a2c5ec5332e0adde032b9bfed06ace6c3ec9dcfed0d3a1389ef65007708ee33a5d3a13c0019c9aa9f025f405ede9f7e2c60eaf0e7d8418e7386eb6c11881cb1c2ddd9d83fe6365560fda0bfa1216081d39f150f3a6e576d95c60daf87a5143b3d2226290080f0551b0bdc41da591d76dde496b4873947c841a2991c57a88f78ce5541383f7f0faae4f423be25a6e289221b694b9b0d5133c7aa5fff4184a17431aabec935c3976d398f747336feaa383f3713a35943f3c4edb6b1b51af8347c453c12f50a3c6892c6708b8cc90155c7c0c8ec5cc902a5371b9647667e34fc70bac3ed0c0cd1f5221fcd464012f953193c13623035395ee87f5d941b222442b95a2c5ec5332e0adde032b9bfed06ace6c3ec9dcfed0d3a1389ef65007708ee33a5d3a13c0019c9aa9f025f405ede9f7e2c60eaf0e7d8418e7386eb6c11881cb1c2ddd9d83fe6365560fda0bfa1216081d39f150f3a6e576d95c60daf87a5143b3d2226290080f0551b0bdc41da591d76dde496b4873947c841a2991c57a88f78ce5541383f7f0faae4f423be25a6e289221b694b9b0d5133c7aa5fff4184a17431aabec91842790d41a46d52230fd55dcfc5cf04c065532fa3f0be4dc4da72d81b61e0761587f87c7ee457042b3bdb12a7e93b218867912f868c869ee5df4892db07d11438eaff01efd8dabe412bae633e9bd4d5111992530074f5f31c85b12bd88815c92ca101997c7ce95785d4abf611da03ae7f1b69a66a0dc1332162d83404ac2ad02e28b28b9832cbb7e4963f990c028798b90c4b53b8b4b6d3855f61e73982d40310ea344973e707f802830bb0937583e99b1bb72439c859d30b01b9693b20d8f90e336e2e5226abe8fbcdff736db4e3f738e8b6205468b8d67aa5c343273535b0047753774a51f6cfa571f34fe94a79e3ecb46f1877dd157c8ba2e5c75ff3b4ff1eeaf6a32790688336278b5aa199e7fa577fbf88a9950eebb575fecabaa257861998f263080922b1b43bda2c9a72baf39a8b60b04475cdf2f307c59253cbb60414d33ecd1c3fcb8f64194f2a3d947a1e680d0ef7e3357c43c6971a38c4fb0b59077ac2e73029a926b8a1e3f181ff6e5c70f923864d2017683d3d0181b50ab4bb11581d319456009ebcb1ba7b5de29278d962df937a12c59a0910e06b1c9cbcd436da92305d6548501e30c15a16e7af230696d4aa27a7e2aee0a875c3b9987b42000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000124743b19f3d570b081ddc48e07d05252b32e05c78e38aaa997e7c53603f15b12112f8d52efc78515c75b0c9e0b83004d361529fa8ba6148a4a8d17c0212d56161e52e8ba4c54330779ca4ce92bf7623ae035444cba9a16ec593670bd35bdb75c399c8f2d4594a32e58b53ced54d647f62fa5f788fa7af778ea87a720aa15b6a22759def81fb4a064e60e51e087dc59e52077c2b7f76d095e5f0fbc787521049918a62107e04b5f9b19f1ae1f7823a61b01ced64411dfefbd3a1d74748adefb6804c15ad89e8721f87e479962a74dc1793b8302a3b93a43850fc71b9349a516fa3b3ea5276178de0781b8669d58b23e86e6c396585012b59689661559b65ae90717c6c63b18a3a9da7765feed4484c75e298f0d329e2351994ee389e0703972e2283939c4e75c5625889a0112bb7b38a1f8b78bc96b29a7824a49a70c8fc68d1f36e1df277b32514454fdfaa25697e4d6ad84a9010d639ee2f1448075311f3e69091e20d884cdaebbab02055da9681b2974c1effafbe95a38a7e8b077cee0c1982759def81fb4a064e60e51e087dc59e52077c2b7f76d095e5f0fbc787521049918a62107e04b5f9b19f1ae1f7823a61b01ced64411dfefbd3a1d74748adefb6804c15ad89e8721f87e479962a74dc1793b8302a3b93a43850fc71b9349a516fa3b3ea5276178de0781b8669d58b23e86e6c396585012b59689661559b65ae90717c6c63b18a3a9da7765feed4484c75e298f0d329e2351994ee389e0703972e2283939c4e75c5625889a0112bb7b38a1f8b78bc96b29a7824a49a70c8fc68d1f36e1df277b32514454fdfaa25697e4d6ad84a9010d639ee2f1448075311f3e69091e20d884cdaebbab02055da9681b2974c1effafbe95a38a7e8b077cee0c19812acd9bfd8eb5891fa2950d9166d6c5704da7e36dee8999df84ecbd043c4bea93fe5fded67744ae60caed44fa5d27bec77f1fc16dc625175eb36ce11ee3bccc8100c915fa51e4beb8f437eacd8b4034e5bc8e5ef3b841247cbce392774e4e2dd307ec680db40ffccc2ab40b590cc792e523f233bde32f6b55eddf86398af242f224873f76fc0aad5a7a7fec3cf49d55e3abeec31933fab9bacd5982572802b912da429b9a1e2119a74df7ca77a5dbdd57588d0efe6db01e287fb70a3bb7483612cde337a7b3c0ef134647820650c6ec7d5c865e563213bee2e943d34813d12542bb5219dd9c2b32a22408678731a30d64d099575cd588d66ee7e5d40520a43e32eacbcb0b294836bcef324243ff56879b7ccc74fe604d5dec5c6f260dfa3b8bb19c79fc3c3a674af714263ca4cc17abc5222cf0d542df1f48859f3308174493404ecc28fa1cbce07df28e781bfcd9b31c7964954ecf0d89e742feeefbc84df05183623b4bedd191fa4c34c4168aa12fbc608db7bfcc4548c26f886a3109403a529b6088278d5e59497691d09d4c60f682558db4f8888deeb613f2d907c708adf2a97f3a5e7e480eec6cbcf02690581c553939a86087ce00b9da69a78d140cb3a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012163288b24bdbaff3f796a23386f63517eb59acb99af98cea6f9a14ee29f9bb32e0f4cdb0e11ac1ac906ddea0a09c201225de585664e48198fefd0cffc080d5a00277a09f31d456c7e0fac0b2281d9f1112e32f430565ff089e227081f401af33db1824beeba4f3d540243bb52645a8f624b0505b6e24e637e8a9754a85b79b215fc67563cc179633e1cbf21513de2b53c035dbaa8a6c2108948bd116473dfcf2a0398a9c33e869cc1e340deaec21d4ae6433b4160a6370b0fe473db9b8c20322dee04af2fc75ef0368fbba696356d8a09ca3ba941f4d137153e8069f6435f0a1211fb50d038a10fc970445969ca9276187c5d52c75827e483eeb08309bca0f725a6176beee4dab110ceaa40ef0b23b1ca1f5f5a2de12ac09eb0ef4acf50db2f1a59e894111b254eef3155bf10f4dc4e582739a1db6bce5afa7c41a230af24d23c3e751baa78457554095344ab37b278ae0faacad2cbe38be71a4a9c0c9447e903c18ae45587ba8aabf6acbb54c84d877436ee313681158fb212e650f36bb81815fc67563cc179633e1cbf21513de2b53c035dbaa8a6c2108948bd116473dfcf2a0398a9c33e869cc1e340deaec21d4ae6433b4160a6370b0fe473db9b8c20322dee04af2fc75ef0368fbba696356d8a09ca3ba941f4d137153e8069f6435f0a1211fb50d038a10fc970445969ca9276187c5d52c75827e483eeb08309bca0f725a6176beee4dab110ceaa40ef0b23b1ca1f5f5a2de12ac09eb0ef4acf50db2f1a59e894111b254eef3155bf10f4dc4e582739a1db6bce5afa7c41a230af24d23c3e751baa78457554095344ab37b278ae0faacad2cbe38be71a4a9c0c9447e903c18ae45587ba8aabf6acbb54c84d877436ee313681158fb212e650f36bb8182056047dccfa458fe390a5c3f9492976fa73fbb1191df0d7398961f82831bc983c4e6f47bc81611fc89dcb25f50c90287f81aa4568bb921090412235b3cd9e8337621577525ffb468c78fc42532e747607bfc4678c3cf49dbccaa56b9744768e294de2c0e345b9866ab0e7725f2548a997f9f98e89f86efbd6d5010477d77ad7315dc66f7c4a57e138ea20398ad2e9f02565ec2be67a058e1c1de029145cfaa431db93d08e1df5b38ded6f82110e724f723f7333668ff5bd0dec7df78c78c0cb0ea6ff98db649b04f52dee8ec3ed936f640ab05fec9ddec568197b993c4dadd71f4430e161b5dd3fdce09a4bc3c81a92d5ab1284a6a49151cfa04acb68afbf9206dfaf82c2a9a79d47a1ea3a3e50c793e9cb0e5dcbaeca88a5e01b54114e3bac03e0fb2b7f4ae5c239427a684c3dd029eeb6c4b15766bbca4ab588a1699b870f03bea15621e8c027cb0a04ae13bca46ea35a94ad32da9f26921c7c840a82741d12743267ab93b6bd93938fdb39995dba9b89d25fec5cee18c4f8547d41af3e1d14ccfe9a7afa36fe951876f4e166a76fd647f6a899527158a7b370ab4aa63208150189f35dd2d809226c6e5c719b087ec1df3730d830d36efb97358c1d44d05b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000135833ffe93869007c6533a7ca400f7a2baf6507eb7078b1cd9f8d515ed99328230c559a1bcc9d3ee6b22c0a3a4fc03b42991335350fa041be59d617ec58c7254126e0b1d78acec3d2efcf684b3d1497b734f7c45ce46115e9876544d9e3153cd0a5602eeefb3335b534bcaadbd1caadaed68313293960bfce89184bb029ced383d73bb154c4cb168c6b15573da8bb045cc9f23e4ebba481d8fa2de9e9463ad30028c44eab3b34e97394eaa8c25744fba55a775171d92b0fe098a524e6b9c52d13342a76a7d7f770be176ab4344ba715c76014f88756f842569799564e5f261ec0cbd5895828088f41e8954bcbb458ea3ac45497393dd74f62fb39b881a0d9e15004d4514737d533b6751585057a436cdc4ec29ba25f9b04caaab27447dbbe9983fb2baeb8c82acc498aea7afa85bc9325d5a6f41e35348ceee8209a882441669018259664172a0290496b991b6351204d89cd0a2bde0717f5557c45674ab8ff83e7da699be8d5fd6fb69466e49caedfb49a9c8594b6c879c43d56c968b5470093d73bb154c4cb168c6b15573da8bb045cc9f23e4ebba481d8fa2de9e9463ad30028c44eab3b34e97394eaa8c25744fba55a775171d92b0fe098a524e6b9c52d13342a76a7d7f770be176ab4344ba715c76014f88756f842569799564e5f261ec0cbd5895828088f41e8954bcbb458ea3ac45497393dd74f62fb39b881a0d9e15004d4514737d533b6751585057a436cdc4ec29ba25f9b04caaab27447dbbe9983fb2baeb8c82acc498aea7afa85bc9325d5a6f41e35348ceee8209a882441669018259664172a0290496b991b6351204d89cd0a2bde0717f5557c45674ab8ff83e7da699be8d5fd6fb69466e49caedfb49a9c8594b6c879c43d56c968b54700900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000159d3d4d94f424b4a7321b64fecbf3cc294b9483a29337f43578f27fa71d442f0000000000000000000000000000000000000000000000000000000000000000096b2e845687aacf28b23b179f9e5bba3e92ace37985c6947760248f6a140f4e00000000000000000000000000000000000000000000000000000000000000001f086bd1eb7bcf83cfe4567c9e6a4f8667de41671c18fe88acd9170f1131537d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011faa165bae4ff955c34d8c24e3394502cb25084fc9f4fafdd0472feffbb166863f8af24b0c4ddefec4f81a9c6043b2868271f59ddf9f01839c6c95a9f970753b39058264978a321cac56ea889b27709bda2e45f693622f380db4458f4cdd048900750db4f3b221013b07e5639fbc4d799fd4a35e29adf797fcc09b43068f8ac63dbf2fb1a2ee15a78a481a00805b627ca9c26c7109ed0f2d27a690846721c0210240d04e5d11ea5875b7e5ff7fa49d8378842c8aff5fe9ee7186a06898de3fe034bbee782ea66c45b368820281c8ec6ec7b1ba450c6d6773618c0ee203a8c0a10b441187d15993ba4c977dfd7e3713915a94deb6fcdf91a837a1220afc573f6007aba858e9401d5c810a8a0c88ec9e295d5e3f6918ef20d2830786b6124bc321385457a716bfe2a37ef575f3771361d6c4e85992f05dd8491625aa36edb43ce0265a49bc8e4092ce8534b23eac9f16ced2d73d0d7caba41c8f25a18e5b7acfa519a5b64371bf6d317acb4dc15360e9314f6f5bee8ca154ff0a078f5ea485305c3dbf2fb1a2ee15a78a481a00805b627ca9c26c7109ed0f2d27a690846721c0210240d04e5d11ea5875b7e5ff7fa49d8378842c8aff5fe9ee7186a06898de3fe034bbee782ea66c45b368820281c8ec6ec7b1ba450c6d6773618c0ee203a8c0a10b441187d15993ba4c977dfd7e3713915a94deb6fcdf91a837a1220afc573f6007aba858e9401d5c810a8a0c88ec9e295d5e3f6918ef20d2830786b6124bc321385457a716bfe2a37ef575f3771361d6c4e85992f05dd8491625aa36edb43ce0265a49bc8e4092ce8534b23eac9f16ced2d73d0d7caba41c8f25a18e5b7acfa519a5b64371bf6d317acb4dc15360e9314f6f5bee8ca154ff0a078f5ea485305c06269888565b866079fd6ed6faea80ed95e23070b63929273ac74a30861c2cff17d8a3c941a17a7156a36f9f4839ce8afcc91a2a707acafc502add6215069374345661ac3de6130102277b6a9397f83fc66def025300e6d915cb09ec134435a91c7513a1ceb53a85ac9d6f7fd526cae9123f5399fa21e31af88897944ff7e15a2400976ebe5b0ebc0a996c6a7ba0cf7e78a3570fb75b022800d535b73c04bf733a6a85212740184d0a5d43a6f39dd64328ed9e0b2b678aaeeac436e8b3068adc14e27fca6323d4584eed848a4f11be91bd8da27317e54d1045a1f1580a1c351c1f2bd313a18b1e42d89b7d207b2f2c1e05d28aef36909fdc84213eedbe51e1921566ecd21fe2cc32f663db2caf73e87ddd72968eebf24dda9e837edc1c2617db1ec1c24d7f27b60961dfb60af24e007a36d0219cb06b024f8958587f8488954733cd83343b8859204d2651b666c11199f23cd7625033995f61a2c8b9e473aa71226b4c487c6108330d2dcff520fce8652dfcafeafc3a7cf8c4d4d1b3f92976633b971de5ce3e4b0f0ecd2cd3b1e269367903d8dbe438b8d2674639fb2c3748b50362d778d5531e48b5fa5ed595582688688f585bdedd172f90a6e463bc6faa900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001377b9a881c7636fcfcf631906dd8c68263d0400648e2f6e83957af8f6aac95b30aed235ec269a510d67e576a3108f556d56c74b110f9833f510211a135ed937c1e8b4b1e582a382323100fa10cb94a41a766c485ea00894ba68350b0541e7bbd220d75b3c9411be47265be641b662ee6304ab53d2e5922261fdbf168fd6cbffd0122be8c6e5ee32eff9a8f8a745a8553b0d65ac623e9b076425cf68a52168c043edd417391a11cd1006570758ba57aac71703e35e56348a556d03a62ade973fd05adb8be27da6feafe04cdb445c49aa2742fc5deb390724f4bd0d0b39a70bc143a524741d825901501fb324bba3b655dae16d31d55bc86cc4d5c6039658f43ed1c649bb6c7442f96f61804855cd7052c44eedd5981d23b8c7b1413820433ac64239b644938bbd06909e7fb7aa328fad3dd57bba2877abd8f1e191d6afbcc539d0df70a91e454edf2ce78169ad03319dd141d20c7768137873509ffb015025df23208f56e1bab120d3187e9652fcce6230e29783492cbc1946423313ceafda20f0122be8c6e5ee32eff9a8f8a745a8553b0d65ac623e9b076425cf68a52168c043edd417391a11cd1006570758ba57aac71703e35e56348a556d03a62ade973fd05adb8be27da6feafe04cdb445c49aa2742fc5deb390724f4bd0d0b39a70bc143a524741d825901501fb324bba3b655dae16d31d55bc86cc4d5c6039658f43ed1c649bb6c7442f96f61804855cd7052c44eedd5981d23b8c7b1413820433ac64239b644938bbd06909e7fb7aa328fad3dd57bba2877abd8f1e191d6afbcc539d0df70a91e454edf2ce78169ad03319dd141d20c7768137873509ffb015025df23208f56e1bab120d3187e9652fcce6230e29783492cbc1946423313ceafda20f3cc2811d356fc9f66dca009d3efbf4c2831a0ad1ff2220b4bd92d490e778eb3910e7102ce98ed9ef7888d12180370669e9afc828020bed62949cc8956158fa4318c2f44116168ddf6a4198fb4b8ff7d0cbeb43607ad72c02416b298500088b2a1a7159329a0123538e93d048fa756ad74c17cbb04c10c7f36a084be035ec895b131633796bec0377675ebbb5ce602bdb34e151c7370e7d6026cd5f11b5c59e3b0446cd3ddd7ec83c6374f22f02b194c16f6402ab1f38adb9b099c4795c9b7833137a2ee667588a75e49c93ff4329efc9673d6c789bd7b35d983958365be075e7314df233637f998b5a552b8f914300ed6ee15fd883bb213d306f54abaf7b1c242b5924eb19e1aa3a954f92e9ec7bf8793483e1a25dd7ba9c4a97da83ac0e1ae209a0a9490f52e8b5cd05352f12f2eeeca59d6e75bb763ccfb1099df28904359806faf1c95a5417875f946491ebc0f3100f11d1095f9110deb6dc3456b4bb60da1988befa4936733f4ac7a893e19c605b8936053d517dc02ed5755b065a31e67105c5365eedc2310cfb31ac6f43bc4b984f5a62995f59a2ece9c8a47d30e1938807458053f5e9a2531fda48ac7b21e25fcb455c5d72beffed2e87c0b80f40112400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010ac5424b8cf22df6b3e8d640d4417416c2080e5e9b3c5f59d301b07f6331541e2d410809e9e41cc7c72abdba454e8d11d395c1903b02442b802b2002c67da9b2255e5e4fb5df98a49efbb211c422993988a0aaf1f1c0d753c8ed71f24f7379790a4785d726ab9a9d1cbfe58cbdeb48becf1487f9602e9548fa917bb41ce89b523683d68ffd10ecd20c288c3868838e92df69a7981e366aa743bf857453a6e582097c297002ef132df3d773c7977c716d42dcf163eb168e74556dab78ac591a7f109330cff154a01a3ccabd1a0a91c8ddd3f5e20871dc30d5ee08d791a2427b862f6ccf300eab5fe5c33542e5f56e37224e50b6f39770c845ab24595b5dbd847b12dff40fb6a720832ff5b18234d8ec550186d12e2ffffb120cff04eb2b4c699d2d200bf04958df7cd00a4e7dcb2713ab20bfc7cdd94cfe098c2e2c01d4b396641e5fc44e9143a28fefcc778b083c9da8e55b7ceae6b2ee3ea7cde7aad87e101021a03bb16ebc5d7010338874f7c362573ceb1c11229a0adcf15f49422781eff13683d68ffd10ecd20c288c3868838e92df69a7981e366aa743bf857453a6e582097c297002ef132df3d773c7977c716d42dcf163eb168e74556dab78ac591a7f109330cff154a01a3ccabd1a0a91c8ddd3f5e20871dc30d5ee08d791a2427b862f6ccf300eab5fe5c33542e5f56e37224e50b6f39770c845ab24595b5dbd847b12dff40fb6a720832ff5b18234d8ec550186d12e2ffffb120cff04eb2b4c699d2d200bf04958df7cd00a4e7dcb2713ab20bfc7cdd94cfe098c2e2c01d4b396641e5fc44e9143a28fefcc778b083c9da8e55b7ceae6b2ee3ea7cde7aad87e101021a03bb16ebc5d7010338874f7c362573ceb1c11229a0adcf15f49422781eff13211d8035f65f813c9cf1863754ffdd754a7033a3fb07cd47d62a7f8dcc36ff224f7db928d777931e650254de7aa8f1a85d214ae558b218a32fd53fc6c22c0b135d26133b5c96946b7ce3b9f066b7c2eb43819996ec11e03914716f4db4d88d8330a1cf16f4a85740c8a26e23f438a6bb257654b7412ae3f93af11f09cfadf3a09105856f4922d4f0002e7f54f5d32419957962ff7c6db4096d9695074f35f6b0688fb61d626e629564a1ad8808b579d85faee68155ef8f8d4c329509ee613762f585a47608182c75e22660eb0c6e35429cfe3576a764686b84d8367c6c7ba442926bfac18d1a361bc491e6f1d1da80702f89b095993225e2bf4d0175db1a83e371293b3b0f61513e22d18d27d723dbfc9dbdc6ce23d6ce2a8e5733940b5924c2a6a60dc0956ecac47d0fa9bb654c8ff3141b15025cadb27694ecbf5109bbdbf143b11943061401fe437d21ac6023bc0f1dfca802d90f1de7f8a434d49f2f3c51cfacb8e7411eb1360bbf0abd2c212b1650f135f3513b210e23942523bc2c8773d7ae0fcce0d9037cb2e5476161ad36d5af81182085421d67c0a50075e2f6c420ed020b5971140eaafc9383a60d150717264275369f412ac3434b593d1937a6800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013322021e5d0367ecd04c20b599aca1f0d5c2037d6b9bcd8d95481e060618ffdd084e4bb4e47aec3be2b7f2341835d341ee3a4ed5f4e0e22b6adec13c514ccb0d1fce3c08fd3ec25819d9a53b3f7f5b31c7e49c0cfcd0ed25ff70e2f6fbdf1e00199f800d98cc42cf0cfcbad2bc82936aff50de1f0c8673d700e3865d771abc69000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae0591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f62000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae0591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f621917989447b2cc4575c26f35f25ddd13908b6d1d72c526ab2f12b8334faad3002c9449a2096eb369dcd74848e36e531fbeeebb0231c1e1dbf69ca078811f10b42b0dda7aab625e197ac62c2c9323d9a64b62fc81e1b2afd5950287c46a6798961932b894c9fdd7019a4f4658fa94b1a61f7dcbc35722e08f168ccc8f296c0e670b088947b25487d40a8436018cc9936431ce83b75b30b8543582c6289884982507d5fdd69f3ae3b55f91d9d6293e5881fae9422a0e3a98fb7332bde32324d44d380000000000000000000000000000001dfdc5dc882359f826078acf60000001380000000000000000000000000000001dfdc5dc882359f826078acf6000000125c9d20fe9cebc86ac47b48ae8b36a52bfb5774cbc3f2bce71e24cae4452b8660d70e0ce98afc6cc63678c23ab21b0072140db4f664839547601e6ad2c78dcb716e760658d2de7ce507cff79aaf982d880f38fae4b47ade8a74f11d4a2b2cea60c06e898b7ad11ae80a72e8a180a42da3423bb2f683ba38fcc94dad64bcbe0183446fdbf1d6e8ace645cd3d0524fc3e2569b1f7947cdb31b71fc74954f9044121e8aa435cba9acca6c53f083385d4b7d080c25c6e5a4e26da68f1c706f8a0b77000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000117a3dc2c074853a60bb187593db4a4dfb11569f40664ea4f9e87442efb57c2720a721bdbebfd4a87b8fc792d5cb7226ff8ac409a2f6277002cabaaadd3e5593e357194b67a68a548c7170eab2d63b2172107db3a352b48090042a7c8b9f1403b3c9cc7ba985c6b201842c94af0abc04f343a6eb81de61572162028b43c965217307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab21307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab212876855487ff336836a0f33ee2a9bfb97c9b0acee0f75ff33fd9f20480d259f317d5b27a8f0deecd238b31e430f64e7826e281c766f5a2962b425b1437f015c30abe003460a462f4fc31a0637f8d253719132698391ea5d48d2a75d69693a9322b06f1edd79995c579b3c01d6adf168779937cc9dc173181c73c00ff50f7a9851b83557d474a36772934cb8e5ebddc87ce9238e19b25b31e33466ab0fb3febeb2e36e944259aad3e4e91a84798bb84f3e4c5dc3c1aee4ef030f95680f5f7d07e066c15e7ad9e05f7cc658e57a8230a048ef44719cc9716dd26c4473c13a2e98813daa8ef5b235c3dff368a1500f4526d8fc167282e6ec9e562304abc9dfc33c828bcd32c8ebbdf36c8b2b19c6669af4b2e65c346cf6e731044bd9ab7aae4973821199e54d94791c0c39dd9abb587658286230a49dfb335e1b801cef02fe23ed00cb9e82ea7610bcf34d053d66e0d11b0e771da75884eed1f17b2ffd9afe7f05701ade79b7ce560a2874a106d525815419ec400ee5eadb8ced2a385839e388abd2535d07942cda1a5768ba29ae871d85ffe0b6e7bc254e569adfd35c859f633ca3fdee13e0d9232dfc3a24457b7b01be9fbe19598938d1bf2e4df23c1b73055d9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000130d346460893857e2ae9fd474752068b6bed1ab5bdd20068147d163095b521dc0a8c26e5cb43292a62405ebff46a9accfdea998a0357edff1a8c8eb6b82d1f2734402a574c64c1c67187fdc0b5442a193659d406e1867d370bbc7a1c04e77c463325cef28d5e193333401f30b957499d0306bb9879c068f59af9c4887800dee22e06b6d9f5879f50c5b703bb87c931418d5d570965c1facc2041aecb618b6bf011f949260a7860af3a48fc447836cebe94e941f2a38afe4f78eb82219e74941126219241cba61c93dc9312a9a6edf6475bfee83ae0e2faa9d5c0d731e7b91bad19de6dbe3459e36c236ced56591209b8c647b0c12869fe71c36c59bb1846e4543ea7db48fa3e8ee34edf5d5042a5cf64876d572e51d4f319fa69d21f869d8a5f015824b705c1711cb120a2afbd5a309b9ad941cdb77806019ec35ecd796275a23947486ce338ca708a5cd2914d3d0cf61c084ff773f4db137f5c56e9a113b3d706b8b7931cc7358f75a32d6eb2c2f30a063e490495581e0819d0da035eec4c2a2e06b6d9f5879f50c5b703bb87c931418d5d570965c1facc2041aecb618b6bf011f949260a7860af3a48fc447836cebe94e941f2a38afe4f78eb82219e74941126219241cba61c93dc9312a9a6edf6475bfee83ae0e2faa9d5c0d731e7b91bad19de6dbe3459e36c236ced56591209b8c647b0c12869fe71c36c59bb1846e4543ea7db48fa3e8ee34edf5d5042a5cf64876d572e51d4f319fa69d21f869d8a5f015824b705c1711cb120a2afbd5a309b9ad941cdb77806019ec35ecd796275a23947486ce338ca708a5cd2914d3d0cf61c084ff773f4db137f5c56e9a113b3d706b8b7931cc7358f75a32d6eb2c2f30a063e490495581e0819d0da035eec4c2a2843200288f6cc4361de4f3164c7e4b3db2f6e4fa374218a50fc2fa0efdf24630943e9457065126661e34399d6f79a4c076da1681bfe633786e4a6c9df32664d0970b8464c52f5bd79857d6e595e9cd20090f8673adc85d9924dc05f28bcc70e19c8a1f9be1557d74d52124d4282bf6d74cdcdfc08e07c55fe8f6cd47818f45f32b9a7cfc219347197a0d9971fef80e999127abc4a074004428a4259891e066c3a2b951d452b3873345dd109d4bc4a3626ea596db459701b0890214d9e88bd7a37621577525ffb468c78fc42532e747607bfc4678c3cf49dbccaa56b9744768e294de2c0e345b9866ab0e7725f2548a997f9f98e89f86efbd6d5010477d77ad712d904a55bf64e9154522a01b44c818964631421eb3052ace53cff13ecd55e3434c5ac1eb8b4c44b688219e765f32076d4ddf6355ad625d96922e4d7368e698a1656b674728f867fcdd22c642154830125f80adee6aa699ece810555862f3f58201dfc1fe803e5e2cc27d82b67fb83304f64a3c817a93727cc4a9ea72c695c310a67ced9e83816fd4db8933f0eaf4c825998777c4760005440ee6a295b2115760acf87610a7178651cabe06bd15ae22deabaa7f097dde43b304e7e3d708019d700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010702e50427b2875fb779175c01510d6702a33244df639bb8f8c37412a03a7ceb030db31e3694b6cd1a81753d9216f3c29df89792c9d64813451257bfe776c3221d287accf212979f1b695d5702790102a22899499397b26701e9b95fc1b1075035fdfc2b21373a8b9295e9adca98b23d215e36514716a20d6d62437cd1ca6c27030cd05e75d1e255409209127d4b9ce678dd55a5805b50748a762ff9f03fcf4c3cf32fa18a2e1daabf6df6ed82b46319a969435688f1a8a70eb700f30fc030b50f4011d84d196baa42da2d5c727a10805c52ac3b81c89246b44eefe1b13f0c7c30bfee27b2e69455bd25d2a38d85ef7fc5f3ecc0878466d4e4de410b4ec0f3850c405939817f1a534e42e2ce3c625281ab56c42d7f9de245ec5d7e7b763b3e6b33bfa6c67e80e5acb1bd1d31c39dad7e76efd4ce89af16d5accfb27189c4c1963d41be1f877b83a0874e6e072deb9c8858b1d4e37e156b5d9dd378694f28381702be41e078847c5f78b191f8d2146377c994c4188b378dbdfb59b883b0d7c7ea030cd05e75d1e255409209127d4b9ce678dd55a5805b50748a762ff9f03fcf4c3cf32fa18a2e1daabf6df6ed82b46319a969435688f1a8a70eb700f30fc030b50f4011d84d196baa42da2d5c727a10805c52ac3b81c89246b44eefe1b13f0c7c30bfee27b2e69455bd25d2a38d85ef7fc5f3ecc0878466d4e4de410b4ec0f3850c405939817f1a534e42e2ce3c625281ab56c42d7f9de245ec5d7e7b763b3e6b33bfa6c67e80e5acb1bd1d31c39dad7e76efd4ce89af16d5accfb27189c4c1963d41be1f877b83a0874e6e072deb9c8858b1d4e37e156b5d9dd378694f28381702be41e078847c5f78b191f8d2146377c994c4188b378dbdfb59b883b0d7c7ea28620dce6dafbf4b7e2414532dc079987522b996f945aafb84a03cda0d98ea0b2ce5190376a7f7fe677f194984a947d834d1aff16552143653a89af2b0108dea2f6d78133ae6b84c5dc58ddbad1c3fd556bf69a7592623ebd825e2ce3854c7e538a4626a4a80293f00840a985c3e73948e64988ca021b575e0ce8c4a3145a355047278bcef93da404257f6ca7f3b3ad58bb5779010c878c65f24c2be0eb5960f2ef4893422e7478a4c0f2eea673f3bc9b9a901150abaa1115df939336ba609971eddc2099265b17d3c4315c335a3b21e34ac930c9def205e05e1ed4b7eb30b1b29a96393d22f2715d04ccd8a859503311c08fa7aa2a0260ac9536a844ae905db175409608dbd35edd2ef8b6d61c28e095eaea8489b151a2246d5e6b22f36e97503ef050d4f6f80ddfc1b3b321ac94e9bf0cabcbfc1a3ca060731172ddb5de9c619e0c7caf16fe7bc2da39b953adde20f1a5d5c3836707533bfa585adf543b48a27f6b579f16ab3e5e17184f9efee5988a6ff153a7204b9dc385c954beb5cf7991aea60afb05b2f77038a6ef9d0342f6cca3287b917fa4a7f04cb746fe569113737f396d9b7c3b706bf6567c06e6af00bdbc858d0865a86df440be204a5d232a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013a622eff40a0ef2b133017eff6ca1a14d94041f587cccc42e60d601b49fe70b3343440fca569e45135993df5872d39f4ea915e3225427151ea8095e22cd971a100127817af50d97f56ec51606338d2b8c5ebcea16220a8cb1bb636ab8287fee23a70ca1ce1b972bb6799bd721bd9501a5f9866e062a4ad5ce05e8e685a5cfd2635fe374963f87f68a0fa64ff49b6b426ef09cad00c00b9d210a5ef3785cc785b0a01c8b69c0780975f059b00b6494bd9333cce2bfd4c3f49888741b57a3387a60df7146ef3da7d0b24e3f8fc709184c22216922016cfbcabee88e8619cfe59c33208eb910c2582f4db1c07038f6e7b3e003006dbf27d3c6faaa4488b6301a63e05d3662ac3447137b873dcee32d797ca882a41a468c1b6400f7f58fb10f7c0ce3a2c99d53cbb8ec8478c2311cd2868359a1c5757a08b42db89add7f1ef083f331d20fed5d05636169a4350a6fe35f6f4a8d348360bc88f404d7cbce754d6c40622df012a2fa9c9e965bcaf5901ca090b797350c5fd8469db4bb07405ab293bfb35fe374963f87f68a0fa64ff49b6b426ef09cad00c00b9d210a5ef3785cc785b0a01c8b69c0780975f059b00b6494bd9333cce2bfd4c3f49888741b57a3387a60df7146ef3da7d0b24e3f8fc709184c22216922016cfbcabee88e8619cfe59c33208eb910c2582f4db1c07038f6e7b3e003006dbf27d3c6faaa4488b6301a63e05d3662ac3447137b873dcee32d797ca882a41a468c1b6400f7f58fb10f7c0ce3a2c99d53cbb8ec8478c2311cd2868359a1c5757a08b42db89add7f1ef083f331d20fed5d05636169a4350a6fe35f6f4a8d348360bc88f404d7cbce754d6c40622df012a2fa9c9e965bcaf5901ca090b797350c5fd8469db4bb07405ab293bfb39a0c4d49b17a7dc76778d0617ef30ca2dcfb8cf37a899d300229c4e86f516f5008be8cfe697c87a7610eeddd822d823b36b39f2ce5b4aaef248af23681a0a6d15fab13365a6c967b3909664a194dd29f2b083f7eb372687bb31b658fa03b33733b382f7133504c7b19c51d7274a36a118c6124eebac9618b646d5f68896f190048fd8d34571176885e6c7f03c6ed46304da1ded9b91a549366f61dadc6f0c7423ce49aa8552839744c2db9403838d04e226fc81df3753510509a59c3c77d5b805dd87da7d5bcd91c3172948ba4bb1bf831695bfa31aba26026aa4716d6ad0df3deb023da089e1f4fa4a6333ec87200761624b04614fbb2b51a0702310e9119730bf65cead3e62d49ce3a99cd4f9deaa94597320ac39c267f40cb771422e18711594e039fcea375da7a13cdc47e15be3b186a6e4931b77eb4e2dbec39ca3e06739ef10540f395a5dfb60e6efb6f6dab43c0f7e5a9f4a8c84b7b5051733b167280efa6428c14f9784d698901e48a331c9f96fee66142f6377559511e0fd2393961fe37277648a1171250a1fcf71a647d9d9fc8b005a168fff775056bb0f9caa6a316bb04acb7eb3e13c9d253ac6eb38a4a5500735160ee309872964d560e11365000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000112836710fb73c8622b5d6a6849c289014d735d1f0af0e388aceee1fd09e1ada83d4e04287b06412d6a0e40468df1dc6f47efbe1cfe00d7db4aec24edeff72ece3a3d1fe9326780d03b82722e16a387e32c274e72c8aae19393b2c3cfa91201a8041b1a603cdad670a8ac259292e09213b99da9d6d3ae13e17cf432439b09139722349581c8414f9f69c009613dbf362475871029f1b3b8225760cc5a952f3c8b1dcb6a7e37beb060963ff69ec240c9dbacbf88d2179940f941cc64926ad0c3762b06eb88e9468e1d10c02ee634bc0eb607161ed9a5e8a67482899beae9ec2eb514f9147716b971e2ef3fd119cb43f14a1b307a22636452a716a395021613d14c172299ac8e60c69153c0ea7f07ac498dbc9acf4c21a454f3c12878cf919ce98628dd6653719f396eac3f1580f853b67265abc9afe7a8a427d804b81d6e63167b33ad005ec7e3e0d6a2c4947b265d6fc48cbf73809ee8afa72c9d2b20d8108f9d0c52ffa1381c1f295d3b6b84d9a2903b9587257b6a6449746c9005cc27ef706422349581c8414f9f69c009613dbf362475871029f1b3b8225760cc5a952f3c8b1dcb6a7e37beb060963ff69ec240c9dbacbf88d2179940f941cc64926ad0c3762b06eb88e9468e1d10c02ee634bc0eb607161ed9a5e8a67482899beae9ec2eb514f9147716b971e2ef3fd119cb43f14a1b307a22636452a716a395021613d14c172299ac8e60c69153c0ea7f07ac498dbc9acf4c21a454f3c12878cf919ce98628dd6653719f396eac3f1580f853b67265abc9afe7a8a427d804b81d6e63167b33ad005ec7e3e0d6a2c4947b265d6fc48cbf73809ee8afa72c9d2b20d8108f9d0c52ffa1381c1f295d3b6b84d9a2903b9587257b6a6449746c9005cc27ef706409e4fb41c3e3d120440ed8495e07407f7558dc7d3ae0924dc3f3c3f6efb89e221e8ad2f503e30bb310e76d8f21d29bdadd0b1f859622f817ebd3e3654c46d554131323fab31a8c01f5421f08004353bc583a6504b90a2ebd8f60d3134c4d4c3a103cea00be7c9f63fab9dd5ce92d6b4e9abdebe16f5a148b1b925b2340250f8921e9e31e36a1ce9e269541efeedd1670323ff051c2e569ac2e9914728bba7b5b220ca0e6fbf116cbfd3758b6e08e31af1ecfe3cee98b5cfd4ecc89e3eb5fd403345fcb2b90798a2249ae6aa00814c1444ca5aeed5d332cf439b4c96a0d9f37042f01eb221e04c70b732eac9d1c430b234c0f45fce7cd4f836814797986f4dc5522ebb012850f0885cfdc130e992dc76bd3a9422108b44d4e802b920b62054efe28d0623cd23d04c92b164b5cddf7830661c456464875646cc9bf6b2953a716112455d20b94abbe74f0596705b8d73bd5d6ef9f82c45d109c87c1595ce188f2263189ad719f1113b1a088676b8a02c2c0aff7b5da9ef6327656b765acc7f3425a2d0395e8003940cca13daba29ebc5a8b83415997db78a8d7a0373e9ef6ce88361bd35de5835350de322d3ee11e5b247987bef75211ab309a47b20d946ce75d4300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013547c091fcd758b552a601ccaebb1ee6a002c23e7dfd0d6bc5bdc90eb2ce3daa2f1e09c43e5730a70e72b2bf6367d74b611474ba17fe0fe8da1b2c08d914358f21fbf11f0ce5b508ba0c138d17b74a84bb6a18db114dca957d9b6a53b2a89913124b6866169597f28032f5728865649d67b5739cc36364e7395a5f3e397f3ef21dcb6a7e37beb060963ff69ec240c9dbacbf88d2179940f941cc64926ad0c37622349581c8414f9f69c009613dbf362475871029f1b3b8225760cc5a952f3c8b14f9147716b971e2ef3fd119cb43f14a1b307a22636452a716a395021613d14c2b06eb88e9468e1d10c02ee634bc0eb607161ed9a5e8a67482899beae9ec2eb528dd6653719f396eac3f1580f853b67265abc9afe7a8a427d804b81d6e63167b172299ac8e60c69153c0ea7f07ac498dbc9acf4c21a454f3c12878cf919ce9860c52ffa1381c1f295d3b6b84d9a2903b9587257b6a6449746c9005cc27ef706433ad005ec7e3e0d6a2c4947b265d6fc48cbf73809ee8afa72c9d2b20d8108f9d1dcb6a7e37beb060963ff69ec240c9dbacbf88d2179940f941cc64926ad0c37622349581c8414f9f69c009613dbf362475871029f1b3b8225760cc5a952f3c8b14f9147716b971e2ef3fd119cb43f14a1b307a22636452a716a395021613d14c2b06eb88e9468e1d10c02ee634bc0eb607161ed9a5e8a67482899beae9ec2eb528dd6653719f396eac3f1580f853b67265abc9afe7a8a427d804b81d6e63167b172299ac8e60c69153c0ea7f07ac498dbc9acf4c21a454f3c12878cf919ce9860c52ffa1381c1f295d3b6b84d9a2903b9587257b6a6449746c9005cc27ef706433ad005ec7e3e0d6a2c4947b265d6fc48cbf73809ee8afa72c9d2b20d8108f9d1e8ad2f503e30bb310e76d8f21d29bdadd0b1f859622f817ebd3e3654c46d55409e4fb41c3e3d120440ed8495e07407f7558dc7d3ae0924dc3f3c3f6efb89e22103cea00be7c9f63fab9dd5ce92d6b4e9abdebe16f5a148b1b925b2340250f89131323fab31a8c01f5421f08004353bc583a6504b90a2ebd8f60d3134c4d4c3a220ca0e6fbf116cbfd3758b6e08e31af1ecfe3cee98b5cfd4ecc89e3eb5fd40321e9e31e36a1ce9e269541efeedd1670323ff051c2e569ac2e9914728bba7b5b2f01eb221e04c70b732eac9d1c430b234c0f45fce7cd4f836814797986f4dc55345fcb2b90798a2249ae6aa00814c1444ca5aeed5d332cf439b4c96a0d9f370428d0623cd23d04c92b164b5cddf7830661c456464875646cc9bf6b2953a7161122ebb012850f0885cfdc130e992dc76bd3a9422108b44d4e802b920b62054efe3189ad719f1113b1a088676b8a02c2c0aff7b5da9ef6327656b765acc7f3425a2455d20b94abbe74f0596705b8d73bd5d6ef9f82c45d109c87c1595ce188f2261bd35de5835350de322d3ee11e5b247987bef75211ab309a47b20d946ce75d432d0395e8003940cca13daba29ebc5a8b83415997db78a8d7a0373e9ef6ce883600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012f1e09c43e5730a70e72b2bf6367d74b611474ba17fe0fe8da1b2c08d914358f3547c091fcd758b552a601ccaebb1ee6a002c23e7dfd0d6bc5bdc90eb2ce3daa124b6866169597f28032f5728865649d67b5739cc36364e7395a5f3e397f3ef221fbf11f0ce5b508ba0c138d17b74a84bb6a18db114dca957d9b6a53b2a8991334c7810dabffcabfa2e0ea28ecfae9e70d324c576033413a7c1987f9e74385410b387ef2540035405d1f15d71305161915144ca4a919b7e11d13a8f318bc7ac007e585445bfef5be2e6492cca0e69182b8e119c4bbcc61b607cae42d84519a41381a7abba4010a41d19b6d335f196e7d69657f374d80976591624cbf7bae65c0277b9a55cbfaccb6e7f6ddff2480d78d9c6580d7aafde88e26f674e395980345188465aa3405334918092200db7f287285e118245e4f108d7236bc096a67fcbc056a03acfbe5ff9287d255fbb68435c3a727b9423b0e9f73f748b5aaebf810563a95fc53041a006d782daa04497bca3c7b1edfb9ce3e59a7a1e47b421407efab34c7810dabffcabfa2e0ea28ecfae9e70d324c576033413a7c1987f9e74385410b387ef2540035405d1f15d71305161915144ca4a919b7e11d13a8f318bc7ac007e585445bfef5be2e6492cca0e69182b8e119c4bbcc61b607cae42d84519a41381a7abba4010a41d19b6d335f196e7d69657f374d80976591624cbf7bae65c0277b9a55cbfaccb6e7f6ddff2480d78d9c6580d7aafde88e26f674e395980345188465aa3405334918092200db7f287285e118245e4f108d7236bc096a67fcbc056a03acfbe5ff9287d255fbb68435c3a727b9423b0e9f73f748b5aaebf810563a95fc53041a006d782daa04497bca3c7b1edfb9ce3e59a7a1e47b421407efab0fcb955a514d7590bb79461edd06e725d2134541dd0631ce5dee91b5d403fd8322bd6c632c9ed27ed58710a292fc76cbdff11eb9ed4d0a8d65987ae3776c42712c58fff8fa7e4d777d4d560bcc14cb8b1fd203a5d91b69f83ea9bc0b8768b106226e0c4bddf87804056e3f006c146958ee749efe4f3681d69929c52312280ac3375722b831be7b1c1d7bf7809253cd74d31cb7bc04540ab8defd5bee7d0f8bfe36940dc20b5bfd28b4929159f561e08d88dfa424983b5e79f1e99b6327ede16d15d0bcae4e79a51577d56c79772af1ac2321c5960c60d6226ffa609757a11bd634faad91f2bb6e579a829163b97b27212242a15eb80ddae790bb8c804809f0b51cf1ce2553a50e8b24cd1eddf5643faf90866a72cc972adccb37eacd1822885313adbabfbc9f1d9b450387fd426716df3a37eb2e478a9d92ba71541eb67cb2a12fa7cb39abd3b1ee1b7d83011fc9584607340c6dff7795456eb376da381c44753f6c8201cedadeb9e791da74698e6fa9ff8f6ff72624ff08c316093cf2cf6d0d2c5655ee4c1f9d4d380e8f138fba98ac94324b16c0df513597abd594c3922e050a709d34cc86674d15be36f1fb7a5472520117d4b0e789d06ae4e8d9a22028240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001064647d878f8f0a8a766382c6901540d7d0e194f3b102817d80ab103e9a0a25a024d9515a062de026933f3b37f16b069ca393a6456ce0cc93be935d140b5287d0eff22eb8c4644a84ad11699cd0c10d73583ecc7583b291c777e2221dcb28a3632824c9174b09ad674862dcb3b2063312a5816ba9616dfd850a53c4fcbae779d259ebd15452653edce544ddc801f91dea739caf30047210f7dd049638c0e39e81a6142eabad9ac1231abb2237fe06e217b0cce090905d80c1b5ce78973f1c6193c19b16a59bfa3a507a5854e809dd958ff93c4c6eec9b31642b70d17bc47218603e64e95a6405c5af85a7ab17f6226a722b2d4351a834605567623d543b8de7b2c807713c0be3239263b9a8883153ebc74c873f284bc9b00e8de7dc2ad63a79a137f88ec3f41cdc6d9c465777ceac143ad7e250984905e1ab04eb32a529c58671e825362c3b6fb1dbf2a04aa8f6a39ade11678c87bc81bb1c0d0e20662f245ff217dac9d3c4904e240d5fb557095c652413020338d84dd69d85c4ee69d0dba02259ebd15452653edce544ddc801f91dea739caf30047210f7dd049638c0e39e81a6142eabad9ac1231abb2237fe06e217b0cce090905d80c1b5ce78973f1c6193c19b16a59bfa3a507a5854e809dd958ff93c4c6eec9b31642b70d17bc47218603e64e95a6405c5af85a7ab17f6226a722b2d4351a834605567623d543b8de7b2c807713c0be3239263b9a8883153ebc74c873f284bc9b00e8de7dc2ad63a79a137f88ec3f41cdc6d9c465777ceac143ad7e250984905e1ab04eb32a529c58671e825362c3b6fb1dbf2a04aa8f6a39ade11678c87bc81bb1c0d0e20662f245ff217dac9d3c4904e240d5fb557095c652413020338d84dd69d85c4ee69d0dba020a4cbbb39b871defcf4bc6dd245aaf529dd9b08e97e7f2c46f9e9979d78825562e2b46ffc36d4f5685eb00c7ee014f48e8153f1f919ebfe151c8d6542e6cbaaa2b328097c5d2e75095a089fb6c5a6a784c55b5a6c101c81a2655e6066e33eeee2e5068f2500b62e78899f359b075324e60c92cad6ac5f5e3f1facd7f51f5c52313eb6578a5913238011c1163652ecd7eeb27476da593b0d4ae86ccb3f1a9f13603c736fbd97c2ca6fa8b1d62e93c6a00af516e598f9023c35254ff28582fd2a825d3645f6e411b3bee85a0adf374008ca3b61b5db5f7e46ddac27139047548c82ae9ac07bf19b73bf8be12e85a75563d086eaa37414a37d9ea20cea4043125070ffe80a5f23019e0ec880642a3959f86b64383cb2e460f25501f1c138bc12a930cbc44318fb49535b2ebc087c7de5dadef0623c6e789d2738e02813db54a097713ae7a52f4129b5e613854042e2b675db092a3928f1e5e133a424dc1f6de38231a098260efa5254e77a1eab0c4bd7f60d42653d1fb07953aeddb8b390dc20cdd3fb50d2f53229e58bd441cee45c940dcba139bd8e785eefe840ac2d181cd94ce1bbf121fe1c3aacd74d0d3605b05e0efb61a43729e22c874722597510560922c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000138efda2dd22b4bb536e122b644b127c9f9e43cc665f757d0039b4bbf31ff3e9726b250e62f0171c232a682eabeff6480c8fe76916d1ac774674b725c9ac10f9b2889b0b81a26df830a67223462232e782d1a7ed64bd662a9d6b000810b6814f313b58197c9e7798c559643502df8dc1780a44828cd2eb7246b599fea909493f70175af5850c48b5312811458ce6b91ca32d6cfe591513b4e62e362a21d6f8f153e8a50a7af3b74aced7eeba731946e35ef6fc91677fbbdcd3649ce4ae29070ec074c6cb993d6b89f5c8565bc0819d8f2fe320f7bd6962887ee70ed2a932dcb6938b393466c294760a37a9a43f7e6270d2414898032b6d093aabc43c26cd23498247e1f9fe3319b1cce9afcac28813cbef6fa4d6b30eecaa7a834a1d4dfe4f90d1b81e0601cce64e331650353d77ec3412b4c4b90d85e2e73f0f88f18201b06f436769e1f6ff807900906ef5cca862fba8e56511fe210030f16acc74e5f78dd3f098961e09007f86ff6f910a33579d04593f047dc273cf60c8280699ea08722c20175af5850c48b5312811458ce6b91ca32d6cfe591513b4e62e362a21d6f8f153e8a50a7af3b74aced7eeba731946e35ef6fc91677fbbdcd3649ce4ae29070ec074c6cb993d6b89f5c8565bc0819d8f2fe320f7bd6962887ee70ed2a932dcb6938b393466c294760a37a9a43f7e6270d2414898032b6d093aabc43c26cd23498247e1f9fe3319b1cce9afcac28813cbef6fa4d6b30eecaa7a834a1d4dfe4f90d1b81e0601cce64e331650353d77ec3412b4c4b90d85e2e73f0f88f18201b06f436769e1f6ff807900906ef5cca862fba8e56511fe210030f16acc74e5f78dd3f098961e09007f86ff6f910a33579d04593f047dc273cf60c8280699ea08722c2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f76ec95f31716a3325338a9c741a645235ff53151342230a8053755acbc9175000000000000000000000000000000000000000000000000000000000000000008334d36ac74f524d6838eb29f72d77118dba10003796e5ed22c9cc5a99b5c5f000000000000000000000000000000000000000000000000000000000000000027aa39cc9f8c0bc808d6c75c66b47db63c3b963154ad908f7a31d41b5657edd40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000137a3194d45e2c2a36f12d8bcd51316b4105292f6fb5f781b043c727d3a63dbcb1d4723e74b6ecda5b75b1f90d5f970ee7ae3f5318b3a0f4b5be48117cc41f3bb02ddc4b46fcb30701ec06fc62c61510357d17edc8e24ccb99e12a5fb965ec38a22b8dc18b491325a48a4e06f2a068f11a762a3ca7e12e9d03d48afd533be0c462ea29935b680ddc9d09db5bb767c308cf109041774f53222cd326a318f5b4ed8115d66ca497f22362f624a448983cf73313d94e49457c6f8cbfac6bb70a4b129292cfe0c908454f113148ca9506cf2c04e5949812ce30f5b36748030ccc88a3516d301f36f7bab0eeceb7356af930d3fd3ed4f7adc69e9c062b8b0bc333775cc0de0f63ed295a8b55f66bf4e9220bdc120eaa491c488617544beee2cffeab306321f09c12d6a574aa09940b16ddf423f015bf46a44c497a6546e42c000154cfb0564cf3a1cec4b8add01bc88daa3b4c5824e9ddccd5cee2ebe8d75f3ff957f1d3a9b30c5e313b47522fe4377255c4b3a9ff7fb1f3bf00aecda9fbaf9006a80e42ea29935b680ddc9d09db5bb767c308cf109041774f53222cd326a318f5b4ed8115d66ca497f22362f624a448983cf73313d94e49457c6f8cbfac6bb70a4b129292cfe0c908454f113148ca9506cf2c04e5949812ce30f5b36748030ccc88a3516d301f36f7bab0eeceb7356af930d3fd3ed4f7adc69e9c062b8b0bc333775cc0de0f63ed295a8b55f66bf4e9220bdc120eaa491c488617544beee2cffeab306321f09c12d6a574aa09940b16ddf423f015bf46a44c497a6546e42c000154cfb0564cf3a1cec4b8add01bc88daa3b4c5824e9ddccd5cee2ebe8d75f3ff957f1d3a9b30c5e313b47522fe4377255c4b3a9ff7fb1f3bf00aecda9fbaf9006a80e41638c722d681b9a367707bc6a94b9a9aab39f07019eec840162b9a06124d16191897330ce884f145a19e4048a1139ec5eeadec55268d2504700ae2a32b9355071c23a9dd8057d4424e0aa40a65228e8ad90ea49260f18f97874f0461b4902bf82c0495ad8dee3910777e6ff0726b913a16209edefb4df9e6d4040a1e2c1ff6161ebc262606335e3e587d7e63750e0a5adad8838f1aa5042ed3c5763b731e8aca33ee9b7f9645447a48c2745fe1f153806d0b3aa5baedc33fcbb063bc140a5fe73af4b0ec5afb8e6cfccb07fa6516093f2644f5128a76ec00cb3489fde19ce0262991c70912dc4f160f7246c018afa00a18d50e80ca0d22cd97373e23b420a6dd3ed3b9fd366cb2ea9c8c372d4d9bb436807bbeed619a62413867af17ada660120c8ed627793d7679f752f7b2eb08445853ab3f8c5f8aa6cd8b28e4055ba2114d22504c2136fece9f7f1480da4d842dd5885e9ea119f60e6b64061e5d3c3f2dcd084d4c62435110f12795cebf6c56887617746f00a1de72b234aa13dfeda4318a2873e2947e0c13fb8e6ce993ec953bf19c42c40e1fe9dfffb3fbb894d43f176e1a7a00e99edbe1f5dcdd6e5005b6116ddf14af058b884a805f6ed87cc837943c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010944343b9f542d234ac6606a8d0a522ffa4fd4a5ca5a5a43dd63536094033712112574c621565efb10633553bccb5d6fcf8fa861f4c88df5c4c75de0d3c4a5ca11a1497c749551fc6707b82e3be75fb736fde2e0ca5aa0675c9011ed778eab581100e5ece6c74c75bae26d51eb858ba50b331c507d5e7a378a251dc401dbc6e62759def81fb4a064e60e51e087dc59e52077c2b7f76d095e5f0fbc787521049918a62107e04b5f9b19f1ae1f7823a61b01ced64411dfefbd3a1d74748adefb6804c15ad89e8721f87e479962a74dc1793b8302a3b93a43850fc71b9349a516fa3b3ea5276178de0781b8669d58b23e86e6c396585012b59689661559b65ae90717c6c63b18a3a9da7765feed4484c75e298f0d329e2351994ee389e0703972e2283939c4e75c5625889a0112bb7b38a1f8b78bc96b29a7824a49a70c8fc68d1f36e1df277b32514454fdfaa25697e4d6ad84a9010d639ee2f1448075311f3e69091e20d884cdaebbab02055da9681b2974c1effafbe95a38a7e8b077cee0c1982759def81fb4a064e60e51e087dc59e52077c2b7f76d095e5f0fbc787521049918a62107e04b5f9b19f1ae1f7823a61b01ced64411dfefbd3a1d74748adefb6804c15ad89e8721f87e479962a74dc1793b8302a3b93a43850fc71b9349a516fa3b3ea5276178de0781b8669d58b23e86e6c396585012b59689661559b65ae90717c6c63b18a3a9da7765feed4484c75e298f0d329e2351994ee389e0703972e2283939c4e75c5625889a0112bb7b38a1f8b78bc96b29a7824a49a70c8fc68d1f36e1df277b32514454fdfaa25697e4d6ad84a9010d639ee2f1448075311f3e69091e20d884cdaebbab02055da9681b2974c1effafbe95a38a7e8b077cee0c19812acd9bfd8eb5891fa2950d9166d6c5704da7e36dee8999df84ecbd043c4bea93fe5fded67744ae60caed44fa5d27bec77f1fc16dc625175eb36ce11ee3bccc8100c915fa51e4beb8f437eacd8b4034e5bc8e5ef3b841247cbce392774e4e2dd307ec680db40ffccc2ab40b590cc792e523f233bde32f6b55eddf86398af242f224873f76fc0aad5a7a7fec3cf49d55e3abeec31933fab9bacd5982572802b912da429b9a1e2119a74df7ca77a5dbdd57588d0efe6db01e287fb70a3bb7483612cde337a7b3c0ef134647820650c6ec7d5c865e563213bee2e943d34813d12542bb5219dd9c2b32a22408678731a30d64d099575cd588d66ee7e5d40520a43e32eacbcb0b294836bcef324243ff56879b7ccc74fe604d5dec5c6f260dfa3b8bb19c79fc3c3a674af714263ca4cc17abc5222cf0d542df1f48859f3308174493404ecc28fa1cbce07df28e781bfcd9b31c7964954ecf0d89e742feeefbc84df05183623b4bedd191fa4c34c4168aa12fbc608db7bfcc4548c26f886a3109403a529b6088278d5e59497691d09d4c60f682558db4f8888deeb613f2d907c708adf2a97f3a5e7e480eec6cbcf02690581c553939a86087ce00b9da69a78d140cb3a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012163288b24bdbaff3f796a23386f63517eb59acb99af98cea6f9a14ee29f9bb32e0f4cdb0e11ac1ac906ddea0a09c201225de585664e48198fefd0cffc080d5a00277a09f31d456c7e0fac0b2281d9f1112e32f430565ff089e227081f401af33db1824beeba4f3d540243bb52645a8f624b0505b6e24e637e8a9754a85b79b22a0398a9c33e869cc1e340deaec21d4ae6433b4160a6370b0fe473db9b8c203215fc67563cc179633e1cbf21513de2b53c035dbaa8a6c2108948bd116473dfcf1211fb50d038a10fc970445969ca9276187c5d52c75827e483eeb08309bca0f72dee04af2fc75ef0368fbba696356d8a09ca3ba941f4d137153e8069f6435f0a1a59e894111b254eef3155bf10f4dc4e582739a1db6bce5afa7c41a230af24d225a6176beee4dab110ceaa40ef0b23b1ca1f5f5a2de12ac09eb0ef4acf50db2f03c18ae45587ba8aabf6acbb54c84d877436ee313681158fb212e650f36bb8183c3e751baa78457554095344ab37b278ae0faacad2cbe38be71a4a9c0c9447e92a0398a9c33e869cc1e340deaec21d4ae6433b4160a6370b0fe473db9b8c203215fc67563cc179633e1cbf21513de2b53c035dbaa8a6c2108948bd116473dfcf1211fb50d038a10fc970445969ca9276187c5d52c75827e483eeb08309bca0f72dee04af2fc75ef0368fbba696356d8a09ca3ba941f4d137153e8069f6435f0a1a59e894111b254eef3155bf10f4dc4e582739a1db6bce5afa7c41a230af24d225a6176beee4dab110ceaa40ef0b23b1ca1f5f5a2de12ac09eb0ef4acf50db2f03c18ae45587ba8aabf6acbb54c84d877436ee313681158fb212e650f36bb8183c3e751baa78457554095344ab37b278ae0faacad2cbe38be71a4a9c0c9447e93c4e6f47bc81611fc89dcb25f50c90287f81aa4568bb921090412235b3cd9e832056047dccfa458fe390a5c3f9492976fa73fbb1191df0d7398961f82831bc98294de2c0e345b9866ab0e7725f2548a997f9f98e89f86efbd6d5010477d77ad737621577525ffb468c78fc42532e747607bfc4678c3cf49dbccaa56b9744768e31db93d08e1df5b38ded6f82110e724f723f7333668ff5bd0dec7df78c78c0cb315dc66f7c4a57e138ea20398ad2e9f02565ec2be67a058e1c1de029145cfaa41f4430e161b5dd3fdce09a4bc3c81a92d5ab1284a6a49151cfa04acb68afbf920ea6ff98db649b04f52dee8ec3ed936f640ab05fec9ddec568197b993c4dadd703e0fb2b7f4ae5c239427a684c3dd029eeb6c4b15766bbca4ab588a1699b870f06dfaf82c2a9a79d47a1ea3a3e50c793e9cb0e5dcbaeca88a5e01b54114e3bac12743267ab93b6bd93938fdb39995dba9b89d25fec5cee18c4f8547d41af3e1d03bea15621e8c027cb0a04ae13bca46ea35a94ad32da9f26921c7c840a82741d150189f35dd2d809226c6e5c719b087ec1df3730d830d36efb97358c1d44d05b14ccfe9a7afa36fe951876f4e166a76fd647f6a899527158a7b370ab4aa63208000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000130c559a1bcc9d3ee6b22c0a3a4fc03b42991335350fa041be59d617ec58c725435833ffe93869007c6533a7ca400f7a2baf6507eb7078b1cd9f8d515ed9932820a5602eeefb3335b534bcaadbd1caadaed68313293960bfce89184bb029ced38126e0b1d78acec3d2efcf684b3d1497b734f7c45ce46115e9876544d9e3153cd1e0fdc6c3dff304c7851041d5d1206a0c595b4f5d4c6f020fda5c49959ae3f6e21f02393c200cfb387aefbe2a2edf95f5cb0e406348608fa9b876c53a651c093164f4e1d35fbf17e59951492d15a2123975f56d51548be6dc1e27524c0673d2429b0b1e2ca040e81a66aeb6d2ea5dedc8ae74226f4043aadd74abbc83f98c2dd2f8c86920debb777bfe966de16c2a5b1d296192d611ebf09303f18cac20431b31073796df214488840169921e93d5a4e4fb07fcea82e3a1268ee18223dfbce4e2dbea0da459a9556bf8f025671cd3c78b61ab2eec9b2cfdb25b3e92eca14f87c12415f25ba656aa94070fda98e32c3876c2be60d3f9a2940737947be35eb07851e0fdc6c3dff304c7851041d5d1206a0c595b4f5d4c6f020fda5c49959ae3f6e21f02393c200cfb387aefbe2a2edf95f5cb0e406348608fa9b876c53a651c093164f4e1d35fbf17e59951492d15a2123975f56d51548be6dc1e27524c0673d2429b0b1e2ca040e81a66aeb6d2ea5dedc8ae74226f4043aadd74abbc83f98c2dd2f8c86920debb777bfe966de16c2a5b1d296192d611ebf09303f18cac20431b31073796df214488840169921e93d5a4e4fb07fcea82e3a1268ee18223dfbce4e2dbea0da459a9556bf8f025671cd3c78b61ab2eec9b2cfdb25b3e92eca14f87c12415f25ba656aa94070fda98e32c3876c2be60d3f9a2940737947be35eb07851d763af3cdbb5bd24300924a36f9fdc11899615f61b1ee7f430d03231ebd938e0f261953e056fc73fc3a18fa43a59b459f165b12cd7cfc28fabadfaf919f81c72f585a47608182c75e22660eb0c6e35429cfe3576a764686b84d8367c6c7ba442926bfac18d1a361bc491e6f1d1da80702f89b095993225e2bf4d0175db1a83e29be6f2422a6108e5f6233e47627412e1bd318da147ac47795282d7ee6c8b5ce3f1e0f01026dde2c64f62e9ccf87c56c4abc660ace5907cb8fcdfb66917fb2451761239d4fb718c435abbb5f2cc7dfe5b3f06a28fb937500bda236c456ee8c72239d3c6c76f208cbfc3674abe80a682cf4365a1ed0f2a375e20c939d130c63090ef3842e128504b12bcd03af94a592d8b744ab6296cd43a42060ac5c477f1bb82f739046b8d5f8caa60dcaaa86df6f7f6e25eecd3fb2f3ca5734439108d4b78b38fab99eabcb14621010c09757adc50dd16c299800deccf74cea8c0d194d957c1d56a167d6b76e2d9410b4a6620a003aefd9cd6193c5b87207d2b78055732214103064ca39cc102c089a804ceea623ef61cc3e4fd78dbf8941ccb89faf5ede2e3eaa1496b527b496a8113838287f632946778f5df6e67f06596a2b0884e92aae00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013a75b6e700d83bcd30f356955ef0713b7c60d81d635449a4badf798817e4c8931efe0c36036014c5e15c6b3ebafc26063e5c90054f32eaee0122d5790d29bb7007ff21bbbafb4d84e00ac3cba6e041c253380405456e5d0bf6704d521e01604a396433c441964947a5b53538276e5aa452f91cdc72a6671cb86ea0a8b1af9e461963143f546c0f422f4784fc7c656ac1f4c1442a9c50875b1ada968a5dbd906b269cebc0ab93f0bdd0b87b03839a953e2d8554d16cfc71c07e529a62a2426f963eef653ca61c4c4aec6598ee6dfb15c9a57fbbd90445ababed17bfc6d4b3d21601109ac359e3b3b5139a67119204ea367cc6dd2305074d6fac1571262b4c2deb3aacfa2f3e8d7d769dfbfca825e76cefb264474cf02875ed3cc1fb2e27831a6a055305d0c172828962040357da1893106fe251af1924832e5c6b35bed87ce5972560e2ec38c3735115ebef48bd8520adf2db00908b966933cb152432c58f840e1a9f1d13c73c8caeea1410b7427adf522f6b986b7db68fe7ce180cba3a707bf31963143f546c0f422f4784fc7c656ac1f4c1442a9c50875b1ada968a5dbd906b269cebc0ab93f0bdd0b87b03839a953e2d8554d16cfc71c07e529a62a2426f963eef653ca61c4c4aec6598ee6dfb15c9a57fbbd90445ababed17bfc6d4b3d21601109ac359e3b3b5139a67119204ea367cc6dd2305074d6fac1571262b4c2deb3aacfa2f3e8d7d769dfbfca825e76cefb264474cf02875ed3cc1fb2e27831a6a055305d0c172828962040357da1893106fe251af1924832e5c6b35bed87ce5972560e2ec38c3735115ebef48bd8520adf2db00908b966933cb152432c58f840e1a9f1d13c73c8caeea1410b7427adf522f6b986b7db68fe7ce180cba3a707bf334b842841cedb97b5483ac511c81d71d3affc77e3c75b7668ff28be66ea98da034dd4553b43de8fac5f68c2fe778c976cbc868f8eaad945ae8b4e020acb8248d3c02bc9e588ca02e564444840938db89f144d512832678f9dc87fb94d9a591f318aa1044bb693ae37a26e2fa3bd0bc0d23a87dcc0ae2533d925724bc508835722dc603108bce34c40ff733cac54296d9dd3220626c3ecf094220db4912e4cd7034124d89e886b3685c0abab4d811524dfa561a0b9bb7c0b1de2951a739b296271ee90c8ae9c69e2b70674c218703f6f2065f40f80bdced46efce7db166ac33f30111950151fa7564d8e8b7e258acaf8e3ec62061a3f9d8093785f51843bf586f082e3efdb8e54f8b014f208801020a4946d8c5b617034cb8e57cba8ae8ae74580754c7a477155ddb97714b4aaeea63ccaeaa989aa15e611f08c98ed527e7dafd17786641f50b081a1d09c956f3ef1e3b346027e5643873cfc8d6c6210ec6517a309932eb88e18dd3c3458b0ff7c3dc825c41db90cdd4a1ac79313772a8345dc21ac21abbe91c79d7fb163522e14bf87ca8ad6fd635dd73f2c8a57f36d0b6526b39b68c689625e392cba45e26bcf796f63cfaee620b0267886873265876bba3e90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001191fd525a53a31ff2ebc5ac4e72548302dde57df918e0c5c127fd796286e84421a7517c7884fc45521d29394b231a4f42a121fdcd6f6c7ecfd4a6c16a0a9dbc623a25485b69496fc2d2c5a6f46d251ba6602002c4a9a515d681aa61513ed4b160478e0e342156e1718286310a7ca98954ba39f2318b72e8a6cc47b0131c9f8343bbb8144d1f3f33c6d2d55c2595efb92a12475950f44e843d5930d7461f3eb3e04447ebb2e0c0cc392d2aa3da6a1046d81222366fa0810d7c39a23789e0c14c32aa9865819c3c02e21e2accbbedae9dc9c9be7f92724a4e4c72a7f91e9c39832155679a7e63c3fd1de1d53344125162385aab102e2285436d202b15b163c67cf154f9fb880d2c0e6a96d5ffaba46914ea837bce9a7d04d25184ceb1290d1f8f72ab060477f2d3f195692a00545b96eb17a0edc12617cabf680e045da6f2e070a2a8e1e9a841dc4814f22dfe5a360d68926d017943dc4889de053666fd419dcd21571e1657be23b7eb0dd201a5c9f2976fb768167cb88707db8d9ca7d2be6232f3bbb8144d1f3f33c6d2d55c2595efb92a12475950f44e843d5930d7461f3eb3e04447ebb2e0c0cc392d2aa3da6a1046d81222366fa0810d7c39a23789e0c14c32aa9865819c3c02e21e2accbbedae9dc9c9be7f92724a4e4c72a7f91e9c39832155679a7e63c3fd1de1d53344125162385aab102e2285436d202b15b163c67cf154f9fb880d2c0e6a96d5ffaba46914ea837bce9a7d04d25184ceb1290d1f8f72ab060477f2d3f195692a00545b96eb17a0edc12617cabf680e045da6f2e070a2a8e1e9a841dc4814f22dfe5a360d68926d017943dc4889de053666fd419dcd21571e1657be23b7eb0dd201a5c9f2976fb768167cb88707db8d9ca7d2be6232f288c08e7c49b38a277195ff155e5bd3a57be57c2100493cd9902acfb5fbdca731b9b5d7714bfdefde051952195dfb867f054e8aa6dc82668860dc44cd3efa13e145ab0bfe1474414e5fd8ed92aaf47728a6cce394340738f5664337b08eb544f39985f7f4292203ac12c8c92f0e6d329acd66f7f33712624e4ed516ddd501d1c13fd3e388871b7b3e9415a1034e515149a1083b4a9c3f7449075c42046c91eba3042f7e196506d23ef9490187355684380eecc780c7d78d060a3a1dde376875e33074f428aec6392e033d84f44e471657be6e00f2f7915afa956cdbe9c6339a11f4e4955d05e81d135a7c5dc6e4e5687657e141bbf88707e7ded272385e1c5de1cc53e50a62c2e976ad1eb543197abe50cba5bc66f0956faf9ba4382817ca720240304befa1f8c0fc545a48238e3fbb156e33cbfb1ea0492f2e8c527a4c27de42b4504e3ab7f3827b2d8da163d1f70ddd1ba03ffdc5796cbbe2f245a4f4d5e1f18114c0af35c25dbedfc2f841f67a146ab687c182ece8aa3085098248758bdf234f23c8c7454fc1860f19cace950cefe0cfb374e6549ba2027c3270cd1cfa22a1cfe71901c7edc6fd2070e161037599a8fb887790452d9e05320b4c52294fbc100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013ba25f754ad88fbc786a6d769a1ab20b2ead3fcebaa74ff81f4177bc5fd71e94245a907e31a77fa75b14b2cc4aa9d93184faf78dcee1bdaf7122717ae7624202314824422291c9b9d65d60d0d5f6c2143df7bf73b5a2433e55caf964bb0c4ec400a2820f8b932d9afc3b66d0fa3f35bf9eebbc592973b82e23bdcc318f5e66f006cdcb2bc891bc8e7dc2721c141e22aebd1cc68bee2eb0d440d969f2d240b1df393234d4376e4371823d8de3ebe1dd516529d2701b1e48475853c6fa2dbf4e222204f7daead8aec874cc3a8c6496ad69b18fe0bba6e97425443f11be1b43795b1dfb0825152751378b33c5739b69529670b6b840626384f654ee1f2ee4bc86a62a18d746963b69ea47fd24bdf6f16310334231b22ff5528322e0f6dc88515ec515e728b969c49615b802db42090e9cefef046749d957a698764c3a1077aea13c127c3460ef29119367f1b7b5d2b6ef5099772d86d3e3b13ce2dd3f87a996d9d62d83cb9f10d6ee6c980e484a2d4910af88cf6b75356947deb64ff1655669262b06cdcb2bc891bc8e7dc2721c141e22aebd1cc68bee2eb0d440d969f2d240b1df393234d4376e4371823d8de3ebe1dd516529d2701b1e48475853c6fa2dbf4e222204f7daead8aec874cc3a8c6496ad69b18fe0bba6e97425443f11be1b43795b1dfb0825152751378b33c5739b69529670b6b840626384f654ee1f2ee4bc86a62a18d746963b69ea47fd24bdf6f16310334231b22ff5528322e0f6dc88515ec515e728b969c49615b802db42090e9cefef046749d957a698764c3a1077aea13c127c3460ef29119367f1b7b5d2b6ef5099772d86d3e3b13ce2dd3f87a996d9d62d83cb9f10d6ee6c980e484a2d4910af88cf6b75356947deb64ff1655669262b2e84d25f06d3f18109ff8542916f308f34ad5a3826c7540f0baf8ba5e656dc9f23757004944dfb2e14d56440900c32175e390e0d87c7d012d7e0af0ffc6e7ac83deb023da089e1f4fa4a6333ec87200761624b04614fbb2b51a0702310e9119705dd87da7d5bcd91c3172948ba4bb1bf831695bfa31aba26026aa4716d6ad0df0b9b0fd66c0b2d7d21546473f44e377e02ad53a809de73a11e3f274aa95ad03c3e1324540cd0a0b243d883c7d490dc4d08c9429ecd0548ff53396504d93fd48c076932bd05ff36926450c437b5989fc7f864ff20b24924acc4828fa2f74b37241ef91ef8466deeb16dc361a8c9280f124eeb2bb8ec567e479de03df235f1c8dc00e70402278d0099e9fa00c7aded8435e585f2d36b8e7ac6295bbca3ffb4c58b1add87bbf2520ad6f8ccc9a7c0c156d4234e4bc975a8c1f6c03f976eb107e4133c43265bf4ed7e0bec8b76a3ef32108ce882bdd64413da82793e89ca15475bf12b093203d98ebb4440516fb8640fb97595c0cb2951a98f375ab376f12508efaa2a5dbb8518f390afecb9c54d84c5e65d02b41eec79e17d1d9923def9edaa3c402c121b312209f6bd502cca6a09e8d1b6ef1493da1c27ed8d780bac8bd98237cd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010ff324daac4f7366c80664f2d8b720b50c84884aa234fd58821a63373d8a461f0d25cd02148d1b67e860d0ed7b02e3d3885fd2de6ae94ca43d3e838b3e9a0685053ee71919771440f1a681b8224d52e89da695aeb69fe2afaeddef11cb4ace411e9f4402f4149c2ee004f215c0f40eddf97671df46be3694efe42c34a4cc51551a0c5110f2938a65d9acb749701ff358e6230b2fb183e128dd9a1498049990cb25f3aeef0d6c759a265348b68fe00ca73c238dcc57c917f2bb931c54fb666f36023d9554bce1b3fd405f946f309fc0bc3a2205f664f9739521a8051e16ffd3f53dc26aab431e4c02bfa06b90cf603f43e8249305a453858677852bcee9002c0c0b33eaa7b06883f241dde62bf31ec3ad22aa1dcff8df41e9a848199672ff23c934cc15584f977c0dbe2219d40ce13c52ff9c7b2c106db731f0e517568d00dc3838039546720a93bb49557edbbf99d261ad52950fdc5c499049687ff03efbb2ed07fc6ab98df56c44b6aa812440662d9e74f403ec2cf0af8b4fc4b0fcc1044d141a0c5110f2938a65d9acb749701ff358e6230b2fb183e128dd9a1498049990cb25f3aeef0d6c759a265348b68fe00ca73c238dcc57c917f2bb931c54fb666f36023d9554bce1b3fd405f946f309fc0bc3a2205f664f9739521a8051e16ffd3f53dc26aab431e4c02bfa06b90cf603f43e8249305a453858677852bcee9002c0c0b33eaa7b06883f241dde62bf31ec3ad22aa1dcff8df41e9a848199672ff23c934cc15584f977c0dbe2219d40ce13c52ff9c7b2c106db731f0e517568d00dc3838039546720a93bb49557edbbf99d261ad52950fdc5c499049687ff03efbb2ed07fc6ab98df56c44b6aa812440662d9e74f403ec2cf0af8b4fc4b0fcc1044d14385117c5c2a3e378cefc1a9644ac30b2575c45d18b5dbf42535daec6e3d905ff09c2663f182bb782f44bd828c1c15843eef1631836cdbde9d9da374ec7b6be9e1fa87d6b0d993e3c9a1422a538dd2eacbdf7743089b68789326f0b7bc1f2982d12de6db33131621a15e7c7b250760ba15a3a145ae7b5a8f5320b15e4f1b906db356bcf378df613176d12190ee844b73804a5268a1947c56996b545beb12ffe63137c3070180a5e5a5d7251a6d9dcee1df0fd0d1ee9fe89c209e4fa63c4ac69bb02b7096af95909d0a65940eb585f38428acbc67a60fb707a1050662c7b25ee261dcb283ae6997a81a070cc0a8a11dd230c4825751baf2e859b6cc284c279042c3ee6a58a97dd4264707d95a6d0edca15a76100bbdcb834ad8cc3079a26c7006437bda57c6e13a13b63a345aff28318a61175e1dc3ea9778f7b1fb6367006af1c2ed26f78dd02f11ae35fa904b3056f1361b509065d2b8a67bc4154b84bb6e58e1430eca796ac26e32ca825a35b89eb444bb4b780bf1cd08211969b478c2add8c26ad156d0dfef1d122f99052c253c2db6be7cbd662e708fc1ca5421658e29cd108e11dc9945785f97e81d5626a32f07db2da83dd0da38c8ec8c5bdb02049192d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000135976e411d72f967b8aceba596ad5300768fe02f747bdc07b40290fe9230c55e2b736471bc32858e81f42dd48d7677c53d9e59ae0c602719c3c49653273bfcf30fdbeb89ddd8aab99818f47500f75bd58109cce93af69c2631a5141123a8540424f40d0bd86ea80ac1a7f7d7b72a0102480af316f2caa0b59581b0e83e8379313395a5dd360e13de1d90628d3107ef8b4b55279b87bebf2e5cae67f17ea6ba930c6a5a22c9f1ec21e26f9d72cef81074d6f17160818e39ed3c7ec8fb8159456e01ec3d520e46635693d1ecc1f527adb7ef8f62198185d7796ab344037941a4db3e13c2adf1b99ca96c2e133e0ad8524832b736e287c721a22e79ece986be5b26099d329a475ff0b0e3199fc9c9c66497adccea7f879d355f158054115e4838473662cd65b8a00f4f1ce6603636399b687479ae7c81afc3bc83acdcdba1b7c7ba3011fd0364dfb3746f801ef0f0dff6f66500947da6120adb6b81a456d76919630fee02fc9b204c8b907fe10f0f200909bd46047e633aee402dab8c962896e69e3395a5dd360e13de1d90628d3107ef8b4b55279b87bebf2e5cae67f17ea6ba930c6a5a22c9f1ec21e26f9d72cef81074d6f17160818e39ed3c7ec8fb8159456e01ec3d520e46635693d1ecc1f527adb7ef8f62198185d7796ab344037941a4db3e13c2adf1b99ca96c2e133e0ad8524832b736e287c721a22e79ece986be5b26099d329a475ff0b0e3199fc9c9c66497adccea7f879d355f158054115e4838473662cd65b8a00f4f1ce6603636399b687479ae7c81afc3bc83acdcdba1b7c7ba3011fd0364dfb3746f801ef0f0dff6f66500947da6120adb6b81a456d76919630fee02fc9b204c8b907fe10f0f200909bd46047e633aee402dab8c962896e69e1fe7a2b2c9d10aa70952c1e9c3c2191869fc31e85a80caff1ee88719463a2a94256b0a4877659dc172b5a67d55cd1a4911f175219200a31d3ca1017faa9ed42e3b313b3a8dcb90293d41cbf6ffd70b1fdd0bda39fef20342f856b28243eef6120659f765fe09e7a1ca181535128d9015f6cfcbc44e18bf66553ab6fd4eba8e603fef3924d001a0fe26c34c78e244dbafa0c9cf70f368c3efa32366d24ca173481a5785b238bfc137a4d8cbf3c6d280c2a03277cd10ea15ee7efe5c1364fdaa0a134ce2d61ed28bb6297fd1b89e74cbd82bb1ff7ebf953ac8ae1be0c1d12bd8911d719a1fef41e6d12a894b8446084ab68e84896fb10c30fab5dd5a93de48eb1a205f471369bb4842850f8fe3e4b6e2f298720d4ca4413cf2e9ca3140015378031b54a78a28471c21e3b3df992b6696b54b8823209b11f3252a889c75e5fc86b0377f17094b5ceee0a823ab167ccf735112711ce61cbfbf79b0dc963693a42aac0019fb64d1f094b8599fe9ac04fc1fde7ac602dac014b1fd1da62072a1ebb5fe3dee9c7de627aaab7717761e61d6183ca9a830add64478b2c47c956bff79b8f823ef619dde7215cd631f3da50c16735b8510bf03366ebf704345f06850df76ae000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000139d7c2d9d368c594d5d0027794770b8a2b100bd39da03c61e898b65fe27bf6c7286877b207aa3a35b82a8412b0b92b7e55f9508563ac6e7eca55a9562f48cd3821e97cd068084943198f2ff6c6c9b74119e1d02a3867c8f787e7d376429af39c2f35e08c8c06ef1eac057611b5833d63676af471df49b339fb673be02b2dd9293e701a4ad15eb3c53bf941cb04926beff646ea7e65f8ca90454388157ff6a252018fe5b52ea14c3ac406be34fb6d94102bffae7da3542e8b53e9a8d780095daf3830837616d982da2bde48f716dc1baf46483087d8a81062f59ce4b77fd12b9607cf7c89e9267d25d421b708e923e450dbfe687430a4e8b8a3904c35802ed46b18f2914e723f8e42db576cd3724c8a6bd64e8eb716146d80675bb3e17f15d9ea270d6eb18dc071bd24a8932c8db375944bf80a44f3388b9b31d17d0b80ea26173cbcd6883b3dc74e48b520213b7eb41b0d42309765192a666b9d527a7b6d419103432977c4c238b1b74adfdec4814be515046864a433ceb52d8fde728492be703e701a4ad15eb3c53bf941cb04926beff646ea7e65f8ca90454388157ff6a252018fe5b52ea14c3ac406be34fb6d94102bffae7da3542e8b53e9a8d780095daf3830837616d982da2bde48f716dc1baf46483087d8a81062f59ce4b77fd12b9607cf7c89e9267d25d421b708e923e450dbfe687430a4e8b8a3904c35802ed46b18f2914e723f8e42db576cd3724c8a6bd64e8eb716146d80675bb3e17f15d9ea270d6eb18dc071bd24a8932c8db375944bf80a44f3388b9b31d17d0b80ea26173cbcd6883b3dc74e48b520213b7eb41b0d42309765192a666b9d527a7b6d419103432977c4c238b1b74adfdec4814be515046864a433ceb52d8fde728492be7014a4a91425c128c7b6f1eb9fc031fdaa27cea5ad9eefea1057322a881fd8341d19824d6691f843f5af37a153821e6183c5e6b44cacf23d2d78e66f4ea3d37d540b008c65b5959ec237655fd3f7c45b7f98d9f40d877432fc1d677997674b66d3190f7e9fc1b287f71d5c89b8b3fe8171d980e6a9f9049505e4d3387fb33663d030acd708d05d4fe947162207362a78b21b8e2b14ea20d8d4a17176908468814a32f6e78d1a41c8e97305ba96eaacca2b441c360f10c4fe493f1023b7ab440dab35830733ff4a3ccc2702a2b60a92a97f55113c7956529c09d421b1a7d22afd69376235b907fa3018a4fc07eaea1921a06aeb97b0a80e141576f8b1ff557bc67c3924d1721189ca06167ba0590da50b3adcd5653d8388b7853af2bd3ad789452a1731205f7b4f84592e9ad2ac36e6c6745c2a599234e9299f4e8be2ff4da994633358cdd5beda3f94bfba232085ccc92d1f8a1fa97175e494456719ef17a768191a99f95499ec0167b3dd4d78128ae54439d9da4763c3945d0ec3f99d650c6f4c0bf7dcb1c418a90c9eaddb72c0e9321f2eee16177f64c4a3317edf595db533e320e47ad1ec0c66a9e9288ebb05400f8f14d1f6e900493bce2906d7064e25fe4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012fe0e37faaa68292455ba8453f0fcd0f7c02ea57076349b1ba8fda4659e7ee0932e2581c4953d4467b96f386aa6e69e8805adc63a952657cceb6372b4c0be8900d95171230816ae75c3d4af3746085fbb19f84605df8d747a9f2b9e6db85ea473451c9111408ad332c1584a7808a32696e0c553f3eddfb9c9c64fb0bf7e9ef241109ad4c5183f69681888cf1ac9c73233ae4e3bd5ca9ad8e34b81c1a117946272ef652b3ae7c09697e77730e53638cdce761b53eaca34b8d647514d2ee86b9da1530627d9793d0f087aac0b85f0e3fb00431d9b6c6036aab6e6b5b95575e5ec22acf9d82686c2f0f78553f47a0f1c0501e14bf4543498e702ac1d557a8a1a13f29f1ec73f5e314b2a655c399db473e6ff2b2a795d4c41c3d8eeb98fdb4d7d9c9160e138c0a1ceb4d59aa3c6624b8c1902f93f1663488dcde0a4197ef4b28263811b99e43cd6f677d3facd2014864382f56a97af90beda1e0ff126a2d883740ea2e4661bc32909882c0532dfeb79bc7d0cb9d1e02fd5f573a9a1ac6bf77c8bf171109ad4c5183f69681888cf1ac9c73233ae4e3bd5ca9ad8e34b81c1a117946272ef652b3ae7c09697e77730e53638cdce761b53eaca34b8d647514d2ee86b9da1530627d9793d0f087aac0b85f0e3fb00431d9b6c6036aab6e6b5b95575e5ec22acf9d82686c2f0f78553f47a0f1c0501e14bf4543498e702ac1d557a8a1a13f29f1ec73f5e314b2a655c399db473e6ff2b2a795d4c41c3d8eeb98fdb4d7d9c9160e138c0a1ceb4d59aa3c6624b8c1902f93f1663488dcde0a4197ef4b28263811b99e43cd6f677d3facd2014864382f56a97af90beda1e0ff126a2d883740ea2e4661bc32909882c0532dfeb79bc7d0cb9d1e02fd5f573a9a1ac6bf77c8bf1733f2b7ed47f7856ef53c59d1176dc340e16dbd4ffbeaa34b8f12f425e46753031de3d4bce06b42198eae94a6f1dfdc75dc24f6997510e65a24910425e021ae23047753774a51f6cfa571f34fe94a79e3ecb46f1877dd157c8ba2e5c75ff3b4ff0e336e2e5226abe8fbcdff736db4e3f738e8b6205468b8d67aa5c343273535b015ea52416e7a587aec0b33c1f23bf92f14f4cfcdb7542338aa763af82c0cfaf50fa1ae59fddb6b9adaf526975e39df5458f9932fa9e19ad1fa451d7ab12745a41c23a9dd8057d4424e0aa40a65228e8ad90ea49260f18f97874f0461b4902bf82c0495ad8dee3910777e6ff0726b913a16209edefb4df9e6d4040a1e2c1ff6162c160ccdcc3eccbd04f689f695d8c129f99a4962fcb2f2cff6efb9c305db3cd3115f91808ea4f0d3608dee915625e47cae0fe746151e4ea622de1a4ec99bd0051552905690cfcfc984cb1e90e3bcc995106535da7ee5771176a716317c7958352508dd874cee153ed8dd03aedd20fd55c2ce6fa932b5ccacc5bb60761ae953250add71751236b3a5ab2c12dc6512d1442a976a95082255e9cdaeb8f4b836b9ed2eee419f3d7ce03e589c2ebe6647954bc31ee10efa8985d0bd778ed4d6a2001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010d933b368fd613460d8b71ee8ac1492cc7e1422b141fdb3ee5da92071cd2ae7d2b06563531667cce25d09267055b5c12e5e3ef2129ced9172591fba81a78277b37bcada8274ebbd1b0b22244a805d70770638f72e59f234df8c9d3a3fba7c02f2169f599caad475a1480b8f2fa55edb3c9ce109bac922fd44d85a3e246af20c1075037af39b74e0abe5e437cf5104bee3105b9117ff1c72a0872196798dbae2638afc850c648b1f541a1bc830aefb411f140dfea895b31f190bb1785672451db2491166c20948635b7d75170c9517ba6f51c9d577fb8e3d22a3a7f05fc4a66be1b6ee993df6b79ca4828ae8f36ae84592d29fba4899415496ef2b1e703b5994336d5701ca2e69f0c97349733ee976a428501e0bd6c0280e3a0ca1943ed7401b4092a8fe35d1960f368cb68cc116895bd9d44b83e9d4a7837f86317a9128bfe4d122b308f2e811b3ef406f403a8f5134c0feeffc2f6d8a003bf3dba9fa34408802dd4cf70d17ee4c10bf90bfc570aecb41257993912745917d9ef764d5cbbf781075037af39b74e0abe5e437cf5104bee3105b9117ff1c72a0872196798dbae2638afc850c648b1f541a1bc830aefb411f140dfea895b31f190bb1785672451db2491166c20948635b7d75170c9517ba6f51c9d577fb8e3d22a3a7f05fc4a66be1b6ee993df6b79ca4828ae8f36ae84592d29fba4899415496ef2b1e703b5994336d5701ca2e69f0c97349733ee976a428501e0bd6c0280e3a0ca1943ed7401b4092a8fe35d1960f368cb68cc116895bd9d44b83e9d4a7837f86317a9128bfe4d122b308f2e811b3ef406f403a8f5134c0feeffc2f6d8a003bf3dba9fa34408802dd4cf70d17ee4c10bf90bfc570aecb41257993912745917d9ef764d5cbbf7811cd0a90b42c983084844182d7385363419e94fdf2b6322ab2e82cf681a594ccb0df00364588ef0654354ea72e2ecf161f4f2e11d050216e20449a23d47aab44e314df233637f998b5a552b8f914300ed6ee15fd883bb213d306f54abaf7b1c24137a2ee667588a75e49c93ff4329efc9673d6c789bd7b35d983958365be075e70dea12feae9bf2cc0caabb74d3712f66d993397fce385000cfbae9053c5aa58c254a3a75017bbe66ec2aadcf729433413e6fd590f8afa3f4dbb88c5ff99a6efa13104195c18c16b0d8332faca78f930df87f8098933770eb6f108c2b9877f7453c891223092cfcc77e19d3212858f6d149199cfb833b5c6995b937627b617b9c0d9a1a493d334657c460f119c632933d3cb740b5c14195e9f2daca072ef4489d163028c4262085f05d78ac745c1bd7c9f6f64c1825151810c2b90fc7461f514a06433bcf4190dc210695235dc1facb2d9c9339bd654d4f05917b86aaa8ac8454335fea82974fc6f0de996da42328ef7383759f6537ea77e3bfcfba60a83e142e1298c4f7731bfe3f64f35d1b0540639bcf7ad25869f9e98a9b553d38789505df049fa38259a2f8e7f59f0009fe4812982b9ddcdd5225973490251353743274d900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013ecd3d5c960f2952dbbb295e9cb8762e1af8eaacf7834ed92393d89bd9a1dd05046722078d3a19a50cadf5e30bbe119a7c166a1f3fd6059b4d242ca2fa2f13ed1345632e673294bed588ea86522495971e044c6ec64fdd686483df5b399943823ec7d148053a735d0a6f6e9c7518293e1bd3bb048d9c6e0fe13da6bdfdfcd7c110716c8f87ff81bdc1870ee0f0abd655e5836e82187eba5a3f0801cc7a6905e32f8e937078007e423e78f11f0f5429aa3cc32a79f0ce3ec15a252f208596fa1e12371ecda7fd88b4c7a34a64b35b2fad594a8f8e712caaa7a1fad811640d1d6e2dc8e1325802774b385cb59b4ca4d052c8fc096d98204e73f73258db9bf2e2931b139a0447f3ab87e63073f780c7ee629c2e34cc2c925c2a90b90769f441932524ec65fbb80c547819cf8c087f38119d8618642fdcba9cf1087429830bbe6cdc0762021567c259a77ef243d583e7a7ecc859d604cc41da9da142c337c547dfb7389dfdea983da658810dbc2a7c18581359ecc2f73d0b1e7df7ea6db53ab8204a10716c8f87ff81bdc1870ee0f0abd655e5836e82187eba5a3f0801cc7a6905e32f8e937078007e423e78f11f0f5429aa3cc32a79f0ce3ec15a252f208596fa1e12371ecda7fd88b4c7a34a64b35b2fad594a8f8e712caaa7a1fad811640d1d6e2dc8e1325802774b385cb59b4ca4d052c8fc096d98204e73f73258db9bf2e2931b139a0447f3ab87e63073f780c7ee629c2e34cc2c925c2a90b90769f441932524ec65fbb80c547819cf8c087f38119d8618642fdcba9cf1087429830bbe6cdc0762021567c259a77ef243d583e7a7ecc859d604cc41da9da142c337c547dfb7389dfdea983da658810dbc2a7c18581359ecc2f73d0b1e7df7ea6db53ab8204a09da084b117a2cc2b3629ea9f160d3d402bd6cbea00cc724e55340aa980254cd31ccf560f9fda641644ff17f6defbd415abab2123099a304004d51226100cade269e3b8db2feb819d1b8ebfa6836d8c4e0cfe919ba1f9c653f43afc1c3a6ccb50b47459401e9b58f0d2ca757f0b47f7c96a346e27cabd0420a862b16ef4ca9623db0a676a925fbee07da8aec55ccec0e7bc31dfcf5d131b545b27c239ceda2f003746f4c732766f0aeb31c42b8e20786f4b8bc4b90df167c0c1d068d4c4ea4ba24b4459dcb3bf57ecaab9e344cd9840957583940bcb98d1a06a87753ca78dd0f398083291da8909a63c1f7a398a0375a72668f9747d8ff78341b19882ded12e0112471c915805303b4e3b1c588ddb79192675f7c117e6fe258288b5dd6afe2b11584af9c7dc403190d9c54135a3a899da6c7064a43a819a9315c84095b4a094f31a6b5e79ac62fba12a1c1166433e3fd9dc14211a7c888cbffc2b53779277aaa0c446abc089a003007ac9cb89fb4b108d361b8850cbaf3672da9d3fb25732a6e24067c94a6426b15b9ecbf58c29c1ce832c8e032b03990e43921248d4e26904022026267bf157cbb6b9aa8b994a68357c72184f268449af92dee0ef15b64d0be0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001196d310799389b5f013c0af2a16c9cd07f91e62153413f270d0bbb9699ca647834cf2bd128035c95c729ed13ad3dcf62d37a9aa588fc5535565bcc11c9f662671c0cb8c8684ca8419d60a7d69ef56eea36a0e8a4c804be29e294f804f23fb49433a388bb6a261b53219a7381ad27c72be89a1cdd870d0ebb51184265a82d75b9333cc7f239e90d1e250d652ea9f7cc12e697f5c2ca7e415f0989cd766d6487350cc3380dc616f2e1daf29ad1560833ed3baea3393eceb7bc8fa36376929b78cc002fe7bb218d4196b942f9e951d6fc5df7dd68ddcf43626ccafc3f9c22f6a4053fd01844de72be6946bd0616ae2903a22a69301e3a0996aece30f150dd095bfc00ef86a7a7c247f19e4ee18e9932edd5d7530c550c50ec1ff6ed3e0caed134193f107958583db80e61b11e7166cd122a4af38ca6fcfc0cfba23ff2e0512ecbe804ada14646cb67b8178a67c8fdfea52d349f3da93d949c9fd2a2363f6a16047d3b525eb9b9349847e875983702015ad2eda75b52cbb85c7bc68afaad95e9fb84333cc7f239e90d1e250d652ea9f7cc12e697f5c2ca7e415f0989cd766d6487350cc3380dc616f2e1daf29ad1560833ed3baea3393eceb7bc8fa36376929b78cc002fe7bb218d4196b942f9e951d6fc5df7dd68ddcf43626ccafc3f9c22f6a4053fd01844de72be6946bd0616ae2903a22a69301e3a0996aece30f150dd095bfc00ef86a7a7c247f19e4ee18e9932edd5d7530c550c50ec1ff6ed3e0caed134193f107958583db80e61b11e7166cd122a4af38ca6fcfc0cfba23ff2e0512ecbe804ada14646cb67b8178a67c8fdfea52d349f3da93d949c9fd2a2363f6a16047d3b525eb9b9349847e875983702015ad2eda75b52cbb85c7bc68afaad95e9fb841ee8676bb84d33ba8a3d90ca0da222ec8d7258bf155e334cf6f4d29c10552d010b6bb65df6914c962328b7b71c91ace05f0f0ada5661781c2f6aea56dee0ef4d380000000000000000000000000000001dfdc5dc882359f826078acf60000001380000000000000000000000000000001dfdc5dc882359f826078acf600000010b0dda7aab625e197ac62c2c9323d9a63a3fb003dd0c3347c86bef4dea6798963932b894c9fdd7019a4f4658fa94b1a630a118415bc95d1ce3236505a96c0e6804f22585549da1e68539d3d36cdc2659ce51f63b25470aff1ddf5ced5598676b16cd476b360228fe65b0b9a7056b4e59fa3726f9afd6da459c5518229693f19a3eb5a9d34a538dd25581976ce7d7bf79b8cf14bf922b8d6d2f45e8a93fa8246a10d181f069c10407806a09de46af1387fb87d486cb5be383996b8aed9b506d832512457754130613f984a3f8d34995d70e7da448dc79ef50e39ecb2869eda95e31e782457c1d49e40fccbce8a5fa32169993850e39663f4f947f7db80e527b923eec7aae67991d57854923065d7b4773bd5e5a31dc97b62e0ca3d77ce3b3e1f520f79e6d0beccd840ac3093c92947c6ad8688809b637586dfe0775fec946e05600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013db8ac82fa9892d0d4901345124af2d8d809b2152856a09de8f9371a242b8d5a1746f2aae98d322f2640cd03cc3cc43423e720bf7d734cdc6b53102eae372c7b2a608fd6fa2e6eb294b1af324e761835fed3da923d70ad1fafc1b1f511d42bbf1d31d81dff352acc30d30123f83a9b5e9d62eec17ce1695f0648749613217c4e00000000000000f0015ca8f7fbdfb3d6eebb14a440dd4473ca2b4ffa871fde69e2b39ef49c2182b30d2e3a75bfb78f3d782c00ab2dce01dfad571c8aa55431d376ac755fe8dc2da60701a3e76dcf449eaa301d32afd0f6b510687d445cd65b1d136294dc2f37ef9c0aee02eaf9cfa3d191110998422206879b55e62602ce7c1d71e03cc49e5cdd6f13ed6f0df60d9011112190a2e9d76f4132751ab6161e7e0f361110aafd2f8d933b244cccefc4d643d8a3c1d2fbc45012297a00f12c345c196507e7f50f8eec0a32fad851d2aa1f1cd19725b719b3fa7c3e107fca9288e2d2d3e217fd4706b4cc0a6230497e0e682778302a07e0d5d01f144ededfcf7457a2565720c1823dc36c32458f174084377a365292901bf33dea752a9272a07d384f3f72ca3182079f103362a25cd5aa3a8ab4f0c1ab9892855e5c2165225dba43ae03b7a8cae3cc68b21941ac87d7bdedf58cbd9a0823a2b341341f33bd96c0d2a4681efaf6a06b407d35d00f530e14785f5d07b86dc1f90c1227cfe7e9ab92078432f9fda96c533920261f73e7eec7266078800eae69089e0d43e09950501c3f88f808df0fd5bcdf0d38ab9d7428d793709ffd93ae69413ca68ae99c1d05df527125359b33834130eb0aee02eaf9cfa3d191110998422206879b55e62602ce7c1d71e03cc49e5cdd6f0701a3e76dcf449eaa301d32afd0f6b510687d445cd65b1d136294dc2f37ef9c13ed6f0df60d9011112190a2e9d76f4132751ab6161e7e0f361110aafd2f8d933b244cccefc4d643d8a3c1d2fbc45012297a00f12c345c196507e7f50f8eec0a1032366bcb30db0b38a377393bad32d72fa38b1ff6973b477737ea8426487c640a47ba92fe96890129ad3e230cca733f76ac1ee8fcc6115cbbe7af837e7ca8642e1141f0f2cd3cdf0a57ad8500885840a9f9437dc6b987da8ad826fc56268cbd1a0ecfa8af9f9e4015ec291121aed343a3ac4a865515b3f811637cdf2b9243db10bf01b496492de6cc54da9d74a5e60497ac4a9655bb973b61ac07b72b1ca3213e52ba264f89386e1d7077d870f5d94ec442d110ec9742ed396cf0e8e1a1d67c0a47ba92fe96890129ad3e230cca733f76ac1ee8fcc6115cbbe7af837e7ca8641032366bcb30db0b38a377393bad32d72fa38b1ff6973b477737ea8426487c642e1141f0f2cd3cdf0a57ad8500885840a9f9437dc6b987da8ad826fc56268cbd1a0ecfa8af9f9e4015ec291121aed343a3ac4a865515b3f811637cdf2b9243db10bf01b496492de6cc54da9d74a5e60497ac4a9655bb973b61ac07b72b1ca3213e52ba264f89386e1d7077d870f5d94ec442d110ec9742ed396cf0e8e1a1d67c07d7549fae0d2ff12f9bef9037357c7a627ede63c9018900ddb4be229984d523291e848ffcc66d9b7494d8e983c6ecf65af970893c7044149e1109ddd533167a34953e49e45a4e17ad7063ade57f82df7425d76d6bbef006f074534d382b9cc815956c557cf199e89e31a76bd3332e1e0924f8acd9a3a8f810ac2e4e8b2ed31b1d3e4eec9ba7e1b314ae06f6eebc809f1780c4a94298c85cd1e24d3365965a7c31d36cee4a2a84a1d5174b7ef6df3eb4446e56fdffba11cbc936ab6ca7281f2122c3bf5e44c3f94017b09c7d0acb1fbeb989be0564d4c90089ab272c32fb3ad42e4df062a6002740e4cffa9fa8e83392ce63827687031b9c3b68b3515f803a51297aa17500f63bd2775d60698e65543f3deb2137d14839a5adc6726c63d5b4cd335bbbfb197cef2faa6bb7f062ebd943e74705cfad6146c920f11f6bf57906df2577f45016a2c0de24389a9d45d558df6d6c62b089dce2bbfb4c7674ce5faad82999c78acf2fa576c58cb7d89fc66673ee82b8f6b875f76c9fcc822b3e5ecec5015867502c7cf5aa0c628068b545894eda28a91519debfa02898dddc13e9fabc2b84a7eb1e88abc53fc378fb0feea245efb420eb47541a1ea789ed0d827fb67e36304a15a688ee4c0e73ddbd6acae52112546ddda37bccff0fd1c6495cd15dc53797458ab159a99928ddc32cad6e603a5657d1b3f862adb0a5a4d12f3011ef5a08d0359ccd981d88352c7dd700b7bb37dac1a762fdda882bbfac571fafe3acbc0641863e183a48ccb498d49ee4e4041b5ee6db483b2b58e1423f70935cdacce0165395cf108681af4bfde69cde283af785bc11ee987a101a6d9e83f3a11911021451f179867c6abb22b5be61b32a8e2cd9b6c1849faf00f208d7382dc4d0a1ab39fffd9e740c5f7bd7ecc8d64ecc8e0ef7abc100d41ad45a91e4fbb84e9a56372035be1cc92f9635effa81de365d1a6d8a5301b7f4dac67f12937f0e4be110213694e7435b183d4c220d6b759289a74ff29c8381bbee9abe93b3fbe8de2af0ed187cd4978aba2908c7b7e700531218036952982586643f6a0764fcb72e9388b01a3afd41d86d2084a86d58158e6af0b34bec0174be75e504613705551ca90823193198fd5182f281d111d88d478b34f90b0d5d14b2493c29a25b3f4e73437205281e089150c5e1268fedf4a8db6671bd3f955fef43fba4b3b24f1fc869fbfbf301b05259115f044d7b132d7b0ed602bc03d0127afdfe183caf8fca6e76e45e8e370bef09d395064aa83d38cf1bc98ca451d68c8027962ad488d736f422afdf6b1805ccd1123d600a418819a6c9d232af0a188f271abcaf541241c1abea0e9a322fc2ced33c660132b5631050ae0b7da33b9e223d87ebfad376eac4b7bc85b1f2264d0b122f934a418285b847c666b792a8b30c32d8fd56c2de8e876d9b379355164478f3a688282a2c03c4a996d11e4d091ccf06122fa89ac4582e6d79f03dc03eec71ffa4c40ca74a16512f936b30ec5f6ed5ff187c89be54c295d3c22c4abe31d36cee4a2a84a1d5174b7ef6df3eb4446e56fdffba11cbc936ab6ca7281f211d3e4eec9ba7e1b314ae06f6eebc809f1780c4a94298c85cd1e24d3365965a7c3b1933f18d49f5265d10a2fb0a9f41759e2bf091c5deb393a91385c8ba2fbf22114c1be8941aa083c3686527e14840a5e9a226ee0af6c989f9298f717bfe4031189eb8ab0e0e4d928dedcc929a9ec591c0996ebdd9ad99259a00e7d55d85de3c09d5ee772b9585cd356b7f367cd93ca7643a69bfea717dfb6e5546bf380b76541ec45889f66d6150273796464aeb0e680a998343d5c806f74356cb2a815bad9d304d6350ef650504c28dbc2f9ab0b0eb515598636c8ad33157c22d758b62cc00161ce1f78a52f3156c187ad782a677302222d81029106e5d2ae0c43fef2f04102108a6f8f7ce97d07de1254f07dd0e78a3a9d4c62fc88f28f77052dd61ee5de0156e20bf4595749abf660fca7a433db7422d4a9bfde7779a695147149251dce63150daf9b565a6fd7e87bb3b6255078f509f8a97715fb0083047aaeedbc8bc0a26477489a9f8dc923cbd6a4c44213d5086852ae008effd65eb907e00f6865d9728ca47513bd989c2ad07e829a17a8202d569f0c73962dcc2af887a9f16381c061874927a8664f48e4de254a17c749a0f2ad84155297c312968d16c59fbb6043e07f7766b6cfb5470b2013307daec92d04d2e37147c7ee981e9c8ccfa502d49cf2035be1cc92f9635effa81de365d1a6d8a5301b7f4dac67f12937f0e4be1102139fffd9e740c5f7bd7ecc8d64ecc8e0ef7abc100d41ad45a91e4fbb84e9a56373694e7435b183d4c220d6b759289a74ff29c8381bbee9abe93b3fbe8de2af0ed187cd4978aba2908c7b7e700531218036952982586643f6a0764fcb72e9388b02c2d7ff72bc5f4e44c9750e6d641460520ac3d281558f003a6021cb95e28ce252a700fc02406ab8cb46adfba914989e5f3a7a8e0ffae878ea7a7e84c76298e9819c439d524d8fcd92119039e86d0878d9cfff60bbef26f7d6322c520aa754a91069246dccdc101eeacd94255c0354395e9b892fa008875219f0f89f5acdd31c7201995971eb7760759a15659ed49ba5ff99cc4e328cbee69c513b288d3d5658e2ef82643c71af04d9023fc1bf85204f3625256c41986ebbed605461738e9140f275afbd70ec81c88b6946476517bfe3b061f79bc127bdc14160275eaf61ee30b3aa4b6e4ae6f75d626586f4548d203b90c7dfeca9fdd238d8b5d4f055438b1773e82a7d1896bd8e6fbeec2952a3f6af440d607006f6a37c459981f685552348500826d0f30924522f7db186971a9ca1efc014c1d37dcb5d92543a67152d247832ef82643c71af04d9023fc1bf85204f3625256c41986ebbed605461738e9140f201995971eb7760759a15659ed49ba5ff99cc4e328cbee69c513b288d3d5658e37aef99373a44f0ab0082319987bf811ca3eef205fef53621666821cf5d225a23398149ab4e05e33a3a08c3b4b3c8f46b18648f89ce3de39bf63d4f05415aa473b2ead535657aff2603f80acaf2bcbacb9199b8b33d94e4d2c6d8d845fea335f007a349374b3b7d23ae27b49758e703fae0e9ec2aa3f6fc282566d337bc9cdbf373e1e13594ca6213059dafd3845fe0cd357291a394ed6adb077a291351fb06c17d39dc78c85c033b96b7778ad55c1468897f28d0904037aeaa1560ed79ec9310b0fd4faf9570c19ed22a7ff1db934fb8f7c5ff384998dfffb6aefe08e1ff74e00c1aaabec1cee86386058bfe8ce9f2bfa202c5f566178836c54fe7e387cffeb1494ec3b2cde2993091ea3e9ed10865a7ab1720bdaf588126b48a5008b9925042b2d99e4371bc82727119042e9934db8560d8de6eb64242c6eac4e9647ca5a2c20559a1191f73485d1c62dd0c1eaefd4efb918ddbc701ffcfcb481f5472fce972ebc21c953db31cf17ff24a523b0cf7e6c3602c985e2ba2b9e6476aac58eab063cedf22e643cb13101b36fefc53abd151389a0ff6c5d3f051d395089a243b100284c6d995d8539a659edf1bb8c9b55b6263b0ffd1c2f7b40f28b0a20b84bb5d106122c5a18945e3426d8e981976be56bcfb28cb194260edd63b9e8079d8acfb836d4c2165a5feb3dd789eba8340b1891cf0976f40e7cac3e14fdfe53cc5ad418304d6350ef650504c28dbc2f9ab0b0eb515598636c8ad33157c22d758b62cc001ec45889f66d6150273796464aeb0e680a998343d5c806f74356cb2a815bad9d37b2a5bb30758d4fd4bc48770d8836eb39ad9d9dc095762c59b8b8a456ba86341325207a1509a26b0a0660cd88de70f5958609f60339e4d74bfc714cfc886e502616e0c1832c99945bee8e99a3c833da67929fe1b206a4b888fe744e040e24ec1f0ef915ec2f8d8b9de647a4b9fd23dffc451284f5128bc5ecc456c860ed6d1d187cd4978aba2908c7b7e700531218036952982586643f6a0764fcb72e9388b03694e7435b183d4c220d6b759289a74ff29c8381bbee9abe93b3fbe8de2af0ed32c9afa74e0ca20a879fb375d8232fde7f540af3e345d44f0fc35e34e7d7ff5c37182b830d75c192716fd3a071163043ba32c74c46802efe4ebb36f3d97b2ef62439f94609df7ae9c8fb2a6231d79171d21782d8ef08d986724e043dffb01eea111493bc10f57d32edfe3355ff379c89ab5e4069b8479f7cb963c6e8471390fb07cfed8bd0aa7beef069fafdb92aac6ed8753a2bb0da9a56f69c6cb8c17b432b0741ce4f1527ea65f95b57782c7112e46133487f882b46b60b4f5afa4b4336710b6380adaa3bc4354f0c6923cd32d37904f618cc4e38e43117a2b01add0b68a31124567269c1f4ad4ca9648a8b80b60eb50a59a68fbb2f9f6fdeaacce10b6f2b066fb02c3aedb7bb704bc565ac6689b1ead833e939ff1fe01c01a5d2dbfea77910cbd3cccf3d89f7312c84f714514b008b121a3610f37689c8d0cb41a1bf804f3e52ba264f89386e1d7077d870f5d94ec442d110ec9742ed396cf0e8e1a1d67c10bf01b496492de6cc54da9d74a5e60497ac4a9655bb973b61ac07b72b1ca3210b6380adaa3bc4354f0c6923cd32d37904f618cc4e38e43117a2b01add0b68a31124567269c1f4ad4ca9648a8b80b60eb50a59a68fbb2f9f6fdeaacce10b6f2b066fb02c3aedb7bb704bc565ac6689b1ead833e939ff1fe01c01a5d2dbfea77910cbd3cccf3d89f7312c84f714514b008b121a3610f37689c8d0cb41a1bf804f3e52ba264f89386e1d7077d870f5d94ec442d110ec9742ed396cf0e8e1a1d67c10bf01b496492de6cc54da9d74a5e60497ac4a9655bb973b61ac07b72b1ca3212d4b018a8fd75f9b23461097aa219c27de86e0e7c0859fe9d55e8aeb59e1b7ee2fd67492ce9136b16e2273fb5b4219ae9e1984e6282f816187c7c2262251d9da09d5ee772b9585cd356b7f367cd93ca7643a69bfea717dfb6e5546bf380b7654189eb8ab0e0e4d928dedcc929a9ec591c0996ebdd9ad99259a00e7d55d85de3c1ec45889f66d6150273796464aeb0e680a998343d5c806f74356cb2a815bad9d304d6350ef650504c28dbc2f9ab0b0eb515598636c8ad33157c22d758b62cc0030b3bf01cc632c011e75864828c03a63a73d82b41bd7d95fb207c6e8f094e3fd10ef79d6dcd5755f7eace13e90e4cee252a7cf20c0896d348123a349e593bf6932bde448aa413e53290d7505b12acb52b9952b8aa063bf514ee98c45fb74dfc90fc753d9e7e3b37c76e5939340730761070f228d51018b97fc9a27beaab35cec2999c78acf2fa576c58cb7d89fc66673ee82b8f6b875f76c9fcc822b3e5ecec52577f45016a2c0de24389a9d45d558df6d6c62b089dce2bbfb4c7674ce5faad83f4ac50815c43d7ac77322d652e63661801702aab3ef45c7b714f51be33f8a9f00d705c9ce25818cc99bac2faa78e365bc3831cf2b8b47c6f0e9c79f08ef94ba0e02732599268a0d5b48b114238f622dcfc84b49ff529f3125e4cfc0d6b244fa0a9a26b41876772c2885a4d8e2c758c260fabba5f8280b68c190532bbaaa1a7628ca47513bd989c2ad07e829a17a8202d569f0c73962dcc2af887a9f16381c0626477489a9f8dc923cbd6a4c44213d5086852ae008effd65eb907e00f6865d971ab94f7e29b834e9b9a6530a9345224b895821166fbaccc20f39bbd55c349c50122f3b1d5b492564b0c38e58159d71cae44d0e1593ecbfe742b0a68053e307ad01b05259115f044d7b132d7b0ed602bc03d0127afdfe183caf8fca6e76e45e8e281e089150c5e1268fedf4a8db6671bd3f955fef43fba4b3b24f1fc869fbfbf3370bef09d395064aa83d38cf1bc98ca451d68c8027962ad488d736f422afdf6b1805ccd1123d600a418819a6c9d232af0a188f271abcaf541241c1abea0e9a322fc2ced33c660132b5631050ae0b7da33b9e223d87ebfad376eac4b7bc85b1f2264d0b122f934a418285b847c666b792a8b30c32d8fd56c2de8e876d9b379355164478f3a688282a2c03c4a996d11e4d091ccf06122fa89ac4582e6d79f03dc03eec71ffa4c40ca74a16512f936b30ec5f6ed5ff187c89be54c295d3c22c4abe31d36cee4a2a84a1d5174b7ef6df3eb4446e56fdffba11cbc936ab6ca7281f211d3e4eec9ba7e1b314ae06f6eebc809f1780c4a94298c85cd1e24d3365965a7c3b1933f18d49f5265d10a2fb0a9f41759e2bf091c5deb393a91385c8ba2fbf22114c1be8941aa083c3686527e14840a5e9a226ee0af6c989f9298f717bfe4031189eb8ab0e0e4d928dedcc929a9ec591c0996ebdd9ad99259a00e7d55d85de3c09d5ee772b9585cd356b7f367cd93ca7643a69bfea717dfb6e5546bf380b76541ec45889f66d6150273796464aeb0e680a998343d5c806f74356cb2a815bad9d304d6350ef650504c28dbc2f9ab0b0eb515598636c8ad33157c22d758b62cc002a700fc02406ab8cb46adfba914989e5f3a7a8e0ffae878ea7a7e84c76298e982c2d7ff72bc5f4e44c9750e6d641460520ac3d281558f003a6021cb95e28ce2519c439d524d8fcd92119039e86d0878d9cfff60bbef26f7d6322c520aa754a91069246dccdc101eeacd94255c0354395e9b892fa008875219f0f89f5acdd31c7201995971eb7760759a15659ed49ba5ff99cc4e328cbee69c513b288d3d5658e2ef82643c71af04d9023fc1bf85204f3625256c41986ebbed605461738e9140f2eddab56bb59ad4a488d96b908163edb22b01f5a72d2e3ca909f58b815c2c3e93cff5b1ebe7ca237a8f3f192d48eca073bc4c7c0daac3ea7e6f6988ba51fe3e5223ab64b123d655170ab2766d2fb3364a27e5073f30b915f3472ccfb72a8fc150af6d7e674448026c3b7e6e9b3f34238b0847464ff2af39481a44f7bd8155103305edaa0bc489302a51ed5fe8c9cd4d16399ada3c3ed6b8c94f5963a06a03a2e1eb2e13a2989d35244a67c7758feea81f8556e037e656e9c06236266061e3f6f2d65240b11fa91fff95ba5b6e43f82b4043c3828b7e057527e6968f52b87310e318db6ab290ca6c13f2ea839ef8a407a41f77563d59a6fcebbd9f02f16a19c38139e5b6672f23a09745b7b2d266bd5f653e0b0462ecb68afe7886e4c5d0c85462c1dfbe351585ff302528977f4160de3431ee54b249573c3c555d6a6c3e7c9bc1880fba447fc9c953d962ffc2751c6808d35d31749d2022851fa6fd8fcd0381e3690c0369dd5c9bfac2f2279be49f8d2ceb9488ff880d800491e88c70fee417f0660a7efd782ddf3d2992b72548dc18b7b3df5c25e50e7718dd4381e52e6b7982a69cb07dc6c0e5825cafa5fbfb4490d61860b4b5e9bf00ecaa9e8ce8a0b9b5f182b1723602d2652e9312fdbb56aad7465248fca737d35af0a164ad59899797e11e1f16d3195fe622191935efc7524c6e0f589164bf4238a4b45fef42019cefd0741ce4f1527ea65f95b57782c7112e46133487f882b46b60b4f5afa4b43367107cfed8bd0aa7beef069fafdb92aac6ed8753a2bb0da9a56f69c6cb8c17b432b318db6ab290ca6c13f2ea839ef8a407a41f77563d59a6fcebbd9f02f16a19c382d65240b11fa91fff95ba5b6e43f82b4043c3828b7e057527e6968f52b87310e139e5b6672f23a09745b7b2d266bd5f653e0b0462ecb68afe7886e4c5d0c85462c1dfbe351585ff302528977f4160de3431ee54b249573c3c555d6a6c3e7c9bc1880fba447fc9c953d962ffc2751c6808d35d31749d2022851fa6fd8fcd0381e3690c0369dd5c9bfac2f2279be49f8d2ceb9488ff880d800491e88c70fee417f2c555c04f25c7c88ba4c42079204c5b03fe5273ce4c6b5ad2dd8083964a8659321f1a5f2f1099318e2de9d623c88a9d304bbfc59ad685f9c5537a363a3f82d3d2b2d99e4371bc82727119042e9934db8560d8de6eb64242c6eac4e9647ca5a2c1494ec3b2cde2993091ea3e9ed10865a7ab1720bdaf588126b48a5008b99250420559a1191f73485d1c62dd0c1eaefd4efb918ddbc701ffcfcb481f5472fce972ebc21c953db31cf17ff24a523b0cf7e6c3602c985e2ba2b9e6476aac58eab060189385a3cb23f80ff6e4173d28ddaf0de402d36f4dbba1be8f940b638e7aee0086eb6207b4f9bb90b4c2b417d17fb712003c6d1b37d2f4ffd73aca0ac75e29936d4c2165a5feb3dd789eba8340b1891cf0976f40e7cac3e14fdfe53cc5ad41806122c5a18945e3426d8e981976be56bcfb28cb194260edd63b9e8079d8acfb8304d6350ef650504c28dbc2f9ab0b0eb515598636c8ad33157c22d758b62cc001ec45889f66d6150273796464aeb0e680a998343d5c806f74356cb2a815bad9d0256aec07a045669964dc1d6b67f3c74aa2e3f4f416ac4d511c69fb3288fb08e27a35926d53dc93f0d634b73d6cda1c441e913f3d2573eb52ce7bde546babf4317f564427a4c0a0e3b85cbcb6d58dabef6383136ec659f178387d32af8a028af1d97d665d0272d4f7b3533038b59b0fe89f23882386276349ba7578e25f675301805ccd1123d600a418819a6c9d232af0a188f271abcaf541241c1abea0e9a32370bef09d395064aa83d38cf1bc98ca451d68c8027962ad488d736f422afdf6b2bda098ce7b34bf52fe51f2c86733ac045433f62e8697f37cdb41b63a7698b212565ad7b8abe4306e8a561ddfb2d135a633bcfba7aa2d883fee249727c3ef1be00826d0f30924522f7db186971a9ca1efc014c1d37dcb5d92543a67152d247833e82a7d1896bd8e6fbeec2952a3f6af440d607006f6a37c459981f68555234852ef82643c71af04d9023fc1bf85204f3625256c41986ebbed605461738e9140f201995971eb7760759a15659ed49ba5ff99cc4e328cbee69c513b288d3d5658e144350de61d4acc28317962e3b5c4b55ed15d0189dd137934b6ee33b3c1b90692f1fb369f39e8b33de619b348e1a30decd4a6970a0c265e5c6a9c4fdea4e176b069fcc007f82c1aceb9019cd604587ec83ebf8374b001a23cdf8eb83628463cb2af439f1d532c33f9eda663b6a7032eef93e3d568930368496cbc2e1100f47770641863e183a48ccb498d49ee4e4041b5ee6db483b2b58e1423f70935cdacce008d0359ccd981d88352c7dd700b7bb37dac1a762fdda882bbfac571fafe3acbc2a103c1c0d6a067c37c3652827cb92f31036fd2fa0e7b8d090f69b562b7c77b1282a2105846027d6e1771786a758232f90faee84a701e993f95d437f50a65da02b9ebf40c4e2fc8560c24309fa822566d33f0e71a5cf2e743438d1e47511c6643813f46b1ca9b887c5d7e1f2c3b29ee3ab6f2c5fec26ded4373e7940aeb130df17d39dc78c85c033b96b7778ad55c1468897f28d0904037aeaa1560ed79ec931373e1e13594ca6213059dafd3845fe0cd357291a394ed6adb077a291351fb06c00000000000000a0000000000000005b0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020047fcea24e2848e86d1875a116a7804e981e2d93506f62bd7f5fe8e4122d10f800000000000000010000000000000000000000000000002000a92b30ce6c574c8df94866550b7545970186d13c6aa105d8bea832707fbcdc000000000000000100000000000000010000000000000020a2108799ba60b14b4528e026d0f575f797028a9469cdfbc41cf7cb8c648a846a0000000000000001000000000000000000000000000000204ad6dc0cd0533f78182e33f1a845ac02537dc3fd9cd6a8afe705ed7185762a5c000000000000000100000000000000000000000000000020440141033be391d351cbd747235dd0dd8925385fcbdaf63ca3ce8096a77f70ba0000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000005b000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020d65923988748e851be6ffe76bfe18e5b63e7a8d75e27cb2dee5b04b48e61323d000000000000000100000000000000000000000000000020f1356cef5b3e8bbc1ed73abc6b758482cb3d9a88947b415be273ca177e19650a000000000000000100000000000000010000000000000020dd80cacd766c514bea4e75a998238e23cceb858decbd9583d9466348cafc2b4b000000000000000100000000000000000000000000000020241e42aeb3c798b84ad9a34ccc6b26a5fb12fe91536ea9394f0e34b50690f3390000000000000001000000000000000000000000000000204d271360d6ea5729d441a303230c4b3fd940e15129f6f043ffe200fe1412df3c000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000005b0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000005b00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020c86fcee50c797a5d96dd4164cf80c44850e5cecba2d6e8dcd427d30e734fe0d60000000000000001000000000000000000000000000000207f441a38e4324f085ee400b3b49251c3d2f126f609272c2e3eec57a548c8420d0000000000000001000000000000000100000000000000209f55b0d4ff746defcce8e220bf8a58f9e4506f61e04b70fe2556ece7b0d76fd1000000000000000100000000000000000000000000000020196600714e2413375e79dfb52d0da692a476ee202a5b16a99a81d9e03b5b4da30000000000000001000000000000000000000000000000204b2589cc642be6064ae59c9496cf16edb00687dfa69b285a43c510b78bfc57d30000000000000001000000000000000100000000000000204bf1e1669389897cdf60a4c21a8ebf7bc19a07905ce2001a19e2353ccbd0bc330000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb9000000000000005d0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000000000000000000200a3f2c9db01aee5013812dac02b44ddb3f8b9f4db6e3fd97555ff779c90826fd000000000000000100000000000000010000000000000020368d67564a09158dfb6de68dfb9eb87ba299687ff58fa2c7213d13474b130927000000000000000100000000000000000000000000000020f476b958e87db8a02656f8467c6e5e45d866f25792959994b010cfab414a683f0000000000000001000000000000000000000000000000204ad6dc0cd0533f78182e33f1a845ac02537dc3fd9cd6a8afe705ed7185762a5c000000000000000100000000000000000000000000000020440141033be391d351cbd747235dd0dd8925385fcbdaf63ca3ce8096a77f70ba0000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000005d000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000000000000000000002029e5eabd4f13f0d857063d1c90440a33e937b425dd060ee972960b18be6820c8000000000000000100000000000000010000000000000020ae367347ec635549b68bfb78721a6c7a1a6084fca918c06287dbc1b6afc3f9c20000000000000001000000000000000000000000000000200465cea58d937eb0fdb98fcaf6de41b5bc5a9ef8128bb64c6d5c79fe8b30bd02000000000000000100000000000000000000000000000020241e42aeb3c798b84ad9a34ccc6b26a5fb12fe91536ea9394f0e34b50690f3390000000000000001000000000000000000000000000000204d271360d6ea5729d441a303230c4b3fd940e15129f6f043ffe200fe1412df3c000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000005d0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000005d00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000000000000000000205822270472f2a26f8189d9a79a85d14380e4e32365d98810dde469b25f6c5fcf000000000000000100000000000000010000000000000020ffbf0c26e0bb6487527adbbb7430418f551be74dc521a103c0c228b9307ac930000000000000000100000000000000000000000000000020bfc3833208072c06854906543f4c49a3ddc86f212ff116bde59fa27acaae0ba0000000000000000100000000000000000000000000000020196600714e2413375e79dfb52d0da692a476ee202a5b16a99a81d9e03b5b4da30000000000000001000000000000000000000000000000204b2589cc642be6064ae59c9496cf16edb00687dfa69b285a43c510b78bfc57d30000000000000001000000000000000100000000000000204bf1e1669389897cdf60a4c21a8ebf7bc19a07905ce2001a19e2353ccbd0bc330000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb9000000000000007b0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000000000000000000203d4cadfb8073d99841f561dd132befa59faf1624bb814d7749294350bebf7fa9000000000000000100000000000000000000000000000020f7a03e6aab33c259b776a0a1068e9b29f69e476bfd7bd164913d1edd6dbe937e000000000000000100000000000000010000000000000020a0ff9b979dbd1cb58a689c4f7cb8c8e56e1dda716de815f8dce6e6624d7e57ac0000000000000001000000000000000000000000000000204d5c20971314a886143fcf4f31e5b0fe465897f95edb2ebb496a671eb51686a3000000000000000100000000000000000000000000000020484695c1718ea9babdf0da4a169839654a70d31dfb7bfa030bd34c4fd296f173000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000007b000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000000000000000000002015ffc12c94d34637f3daf59c45686dd7cabc61ce848b58f2e75d5bd35321b97d0000000000000001000000000000000000000000000000202dad7cb660b8d7478673d74df249c7bca96ad2a77a9e6df8cd53b3b04533f1c800000000000000010000000000000001000000000000002016a4ade761eb6230e27dd29c0ca0b6ca9e5ed431dfbc829f10335bc89c30fd1a0000000000000001000000000000000000000000000000209ef4b79cde573ddf1a1cfe0df94952533f934e8712306ff6e1df26da2304bf2d000000000000000100000000000000000000000000000020eed5635aa9fe26e55ac534a89c39cf891254e6457318ced7e38ad88fc125ecc7000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000007b0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000007b00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000000000000000000207175d2460f6f2e40180fefcf0494db9bc6ad735df022431d1de050a974fc30f000000000000000010000000000000000000000000000002079b1caa581c5d2688d2628b43e3067fd9121337852f19ee6997b9d92a843518f00000000000000010000000000000001000000000000002000259d57f7bce9389ee7e73f33e5b2ca1c650ce9e8dc63130f8749fbdcfdfb2d000000000000000100000000000000000000000000000020bcd18cc2e0a4ed036f070637e84e56eaa6c50f80555c3785ecb5cd923c93e4870000000000000001000000000000000000000000000000205f345c922e75b5ee09f6a30d4e99bc3797063459fe2e79c3075e31feffa4522f000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000520000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020f7e065a28ecbb695e25859e5fd51c7f03e3135fb68900cbf9a9b34c58431328e00000000000000010000000000000000000000000000002010f78593628c76ae17379f9e02ec099ae562b11af869e7416a6488bb0b1bb49b0000000000000001000000000000000100000000000000201d83882e46f5088affd079555b2c275d2386d81b8b37a98bfd2519fc364a4aa10000000000000001000000000000000100000000000000200bf7ab1c0d308f7966b26422ec6c126e5956a6ce55c01414a62362c696861137000000000000000100000000000000000000000000000020440141033be391d351cbd747235dd0dd8925385fcbdaf63ca3ce8096a77f70ba0000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000052000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020843095c441ed8a883c4a61402b3f969bba299dc1395cf98130c31b7a2d402e3e000000000000000100000000000000000000000000000020dbecea5d177004be6400dfd6354337a164a96b209b155cac9f94436b7d32e72b00000000000000010000000000000001000000000000002080791f87519ff3c06a911030e79b46f0075ebfa5b433792d826d53d2916e1fce000000000000000100000000000000010000000000000020a0b86bb2b9ed1d88c1716ee2897d7e5305051401751e458c39f027a27ad7553f0000000000000001000000000000000000000000000000204d271360d6ea5729d441a303230c4b3fd940e15129f6f043ffe200fe1412df3c000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000520000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000005200000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020d56441ec15dd8cb4e3cca83becde965c60763d974b7da7781b28e631f2d5e358000000000000000100000000000000000000000000000020591ff3beebb75fc99be3da6db333801c968dbfcebb0bace6ca9eef943b888aea0000000000000001000000000000000100000000000000203123b1b063eb4477af1095ffa8004b86436aa43d1437d489a673b4afeea9807a0000000000000001000000000000000100000000000000201739593b6adf1df20681bdb468e8cf329b9aaa69ac06a77967055637d4ed0b720000000000000001000000000000000000000000000000204b2589cc642be6064ae59c9496cf16edb00687dfa69b285a43c510b78bfc57d30000000000000001000000000000000100000000000000204bf1e1669389897cdf60a4c21a8ebf7bc19a07905ce2001a19e2353ccbd0bc330000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000120000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020dd731878aa783938962f50b06a017d61b761910fe7013c104be4cd051a7c23a900000000000000010000000000000000000000000000002090e94b9236820d03f62325b921ff73b3069ef95294bed57f9e6903a5f06dde580000000000000001000000000000000100000000000000202954bf45fe77defb69128714be17592fe6b385a27c1f56d18e1e183bcc1594ee000000000000000100000000000000010000000000000020e2acecbe8619d7478dee57fcb82511df4fa4f1bdb2d5253db0ff26c50b7344b300000000000000010000000000000000000000000000002067b848c6a8fd93922564ee17c6101e314bbd3846fcea2a0a759b6e14ee53062a000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000012000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000100000000000000203c5b35133c049a994fa08e376fdc7166117ab784c84a806c38cf0cc23635a7c8000000000000000100000000000000000000000000000020bc7f56ce6c6c34651e3eb1cd934cca80982251de322d2dc8ef472188db64ced2000000000000000100000000000000010000000000000020c570a41900e5df8ba34a98c813dcad69f97d3d94bb76ff8216e35356ca2cacfd00000000000000010000000000000001000000000000002022828921a6b0f0bee2649772e95581d881e7c8e59ac79244530985451478d83800000000000000010000000000000000000000000000002081a27a248db0076bc7a7f51b5ccf3cf5b9e1c7455e27068c417e64832913ff410000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000120000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000001200000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020bef2b4f2fc3726c2bfc0912c7b0053f648e8968f651d59c327fb282b5f6a7abb0000000000000001000000000000000000000000000000209f5fe62f2a856f23a9d3785a79b57aa782795ccc99e9e2e5db5a9e35fe7d0d87000000000000000100000000000000010000000000000020007a2897a91dac716a38ce55b9e88e544225dda467a77e6a984c7bbd5918d49800000000000000010000000000000001000000000000002016bdef74d3a4a3bf89aacb899b6f0c9002f0bb74b43dcea2dd6c6252a2ede355000000000000000100000000000000000000000000000020e31eb63203c4c86dcc10bca35f7905f868623039545d8b3017d8c39b9f6116d100000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e000000000000002e0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000203878f31f94c5c1a942ef37c0dee2a2862b6737d4fd31a77bb051334568784e810000000000000001000000000000000000000000000000209704413d8a707d33244faf00e0702f156ed165f379edaa132d13bb73341f1ad6000000000000000100000000000000000000000000000020d4c0df32ee86ae7b5161167dcef1b7eeb12a4a6dc9a1b6566aeeabe819adc61a0000000000000001000000000000000000000000000000201f4bfe7d2398692f0c7abdb85ed16895ef0857d4d738e32f167340e5542a22b20000000000000001000000000000000100000000000000205d77fe2ccf9c9f8603070bd03123cd3455d47968e542db3d55abf5cd35b03d050000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d000000000000002e000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020f89f5b3c95de5b964413e926569bbf56c879e8482061ee3b51ddc6a2772580ab000000000000000100000000000000000000000000000020085890d220c9891a29283984b66b1e3f0c2465e990f215083f62d7a8bb46e1d5000000000000000100000000000000000000000000000020a4e4ca5bbb50dfe8edcfb7963ea98588d32ac467780c2cade2a34fedc58db14d000000000000000100000000000000000000000000000020b6d1fb90220eb827e5a0d6cff1a17436b1d8a5cbf6a2bec68975b0b2c4d80d8a000000000000000100000000000000010000000000000020e7444cc161f3e7f01cf05762fb0fb97caf4bc92619aabc44b759df970816cdad0000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de000000000000002e0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000002e00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020611dbc6481ac1f5e469c2a11a2f23079f4487ee7efba88b0e9ca7ae96f562c3700000000000000010000000000000000000000000000002030fc221820f6c0a9fc466fdd84bfb9cb04e1a543c357588140f769ccfbc3c39c0000000000000001000000000000000000000000000000200496c2ffc33bfff4769087999dc54f9ee00a37d262f77c5425667f17d151a0a2000000000000000100000000000000000000000000000020f7c430e5be26ecc9ace2846a2dd9aac8ff25889109484b43997f6080ae01699500000000000000010000000000000001000000000000002080f4c94164dc4597576888e1e7dfeeb82efbc11ac8b5ecc2b2df1058b8fa2b0500000000000000010000000000000000000000000000002040fcfc6bb63dbae33d624e3777a816b50ebb7a75c3788096fb31802eed5badf20000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e000000000000006a0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703000000000000000700000000000000010000000000000001000000000000002002b1b7b579feecea1603adcefe60285831fc1ef6f92fb6df3d3907a02aa5cf36000000000000000100000000000000000000000000000020f4fa51ef0775ff149667acbb46117fb98f6af6f007ff719bcb42b30611e7d5570000000000000001000000000000000100000000000000204bb79970c2fb9ceeb2b3b825d98db63307bfbd367bb0eb605f16caa342d20f42000000000000000100000000000000000000000000000020c897f9cc214e1d82ae3fa75be40cec804be624b41c23e139bfad78e7e7d5fc3b000000000000000100000000000000010000000000000020cca38bcaaeed86d1c037ddb148bba22f6b95749f7f352486d9b2248d154972a4000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000006a000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020729123ca4d9a8d922dabefb9899d58e28f1fb034a770a85cb4b91a1ddc8bcb4a000000000000000100000000000000000000000000000020205cec1b82d9f0d6d449b3229673690e31ff7f138430659da23c7dcf8ba0980b0000000000000001000000000000000100000000000000203d3437767a18c76c6b3ce58e0eaba9f957fb31192a19e2e3adf0c19d5ac4cda30000000000000001000000000000000000000000000000207fadb498e4408564c5da8cdaf1ddd40a060ac7be00e86d18a70cff218a853e5400000000000000010000000000000001000000000000002015dc39279a52d41ddbcaf227c199cbd51b1f711d661184752155a6495562235a000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000006a0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000006a00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000100000000000000208c07a914068e90b61173a77e1b914b00970d53c1e5306d27e793c3698bc15a4e0000000000000001000000000000000000000000000000204810a4d0a61207ded71aeb4fe4fa059d9e3000d4407f432e9ee999ff895079d1000000000000000100000000000000010000000000000020bd214e04a0d15a2b5ac00a7ad42151c6d124291cbcf919f2a8b5311fd49008470000000000000001000000000000000000000000000000207a18ca5e193aa28605c4cd2e9b219710808aed7388ffc2616a116a897b71ab510000000000000001000000000000000100000000000000205c412ce971308b3c81ea6b705658f52dec02ecb3332ae0a2ccd740263bcc7a7b000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000010000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020727653dd0ba5c260f42127d3913985b281e9ea7b231a6d3e7a283c39d193ce9b0000000000000001000000000000000100000000000000206555e950641c26f0150d14efc11a572e64fb0ffa9ee6a450a552495c26807510000000000000000100000000000000010000000000000020fead840665604a5a49e398fb78efac6fe1eb6f9b9330acae96d1f30f5ec2a112000000000000000100000000000000010000000000000020ca3dc5f22e4573bfae9e4282c195d191a87ba277e564f158302218ee7bcec57300000000000000010000000000000001000000000000002056e5e7ca74faee51ae45c7001256fed2e7e080dcb95a859867c22dcb1608665f000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000001000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000000000000000000002071c1a3db6bf2f3fbb6225379025b7c2af6fef00e97870cda238d7a252164edfe00000000000000010000000000000001000000000000002097030da7360a458af1b5de0ad0e77770fedada0480d022f05f634898465c9954000000000000000100000000000000010000000000000020442b7310681f9144ce05c5c0335794243b1628a10269ea3f920a1d69cf0170b4000000000000000100000000000000010000000000000020ea8b53cd7415ecfb610e991f3187dc70583ec968dd6f325946dad2d066766dd100000000000000010000000000000001000000000000002099796d2366d350a09cad2698ab80419a6869a2524f9cfcc2eb3055449273a24a0000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000010000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000000100000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000000000000000000200f7d3d47144478bb9935a9c51fc46b1b1a5a0c2193dde53d033cfc11a38eaa4a000000000000000100000000000000010000000000000020427991f215fe7e45997ccba33054721026a6c1327066c6b3403cf7227aed474c0000000000000001000000000000000100000000000000208ee52142db58fe442ca24e9577a242b6b0a01d185709369184976ec6ed203b4d0000000000000001000000000000000100000000000000202ef4e1908e5c1feba751546a1b19b44ec3948b5b79fb15cbc254b6ae858d0622000000000000000100000000000000010000000000000020cf7b4774e00157cbbb3d3167eebc39e16fa993a1f6d067c9342e404e34e33a4a00000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e000000000000005f0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020eb1727f0bf2b5e547bdb3dc5666fb012a50ebb1b2d870fa61f0fd80e64e4ecc100000000000000010000000000000000000000000000002091f87159cb7ef9c51ade2808531bfc2fc6514c9f6cfea7e8bbe97aafa477d16f000000000000000100000000000000000000000000000020f476b958e87db8a02656f8467c6e5e45d866f25792959994b010cfab414a683f0000000000000001000000000000000000000000000000204ad6dc0cd0533f78182e33f1a845ac02537dc3fd9cd6a8afe705ed7185762a5c000000000000000100000000000000000000000000000020440141033be391d351cbd747235dd0dd8925385fcbdaf63ca3ce8096a77f70ba0000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000005f000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020d1f146b90580d7905cf5df3d76fc6594716909be5c75bf65750901a194a541e1000000000000000100000000000000000000000000000020de7e1aedd16874ba4da3786e9ec2e855e1fa1ddf8e3a39472a92f48313c40e610000000000000001000000000000000000000000000000200465cea58d937eb0fdb98fcaf6de41b5bc5a9ef8128bb64c6d5c79fe8b30bd02000000000000000100000000000000000000000000000020241e42aeb3c798b84ad9a34ccc6b26a5fb12fe91536ea9394f0e34b50690f3390000000000000001000000000000000000000000000000204d271360d6ea5729d441a303230c4b3fd940e15129f6f043ffe200fe1412df3c000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000005f0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000005f00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020bfba88cf19e95fa2d76014aa479928cf59ef37f366d0370f1dc74116722c0fe90000000000000001000000000000000000000000000000204fa4ea9eee7f4826a051f13cea287aff6631d277919dfca5d8b58864817bfbdb000000000000000100000000000000000000000000000020bfc3833208072c06854906543f4c49a3ddc86f212ff116bde59fa27acaae0ba0000000000000000100000000000000000000000000000020196600714e2413375e79dfb52d0da692a476ee202a5b16a99a81d9e03b5b4da30000000000000001000000000000000000000000000000204b2589cc642be6064ae59c9496cf16edb00687dfa69b285a43c510b78bfc57d30000000000000001000000000000000100000000000000204bf1e1669389897cdf60a4c21a8ebf7bc19a07905ce2001a19e2353ccbd0bc330000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb9000000000000002c0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000204f52ba97ad293a1f2b148563321a3bd6b16628f74a5f5f0cdc2305639c6738d0000000000000000100000000000000010000000000000020317f2ada516faa6c99c15fc7daeea898f34ee70865e79dbf9862878b68c7db6e000000000000000100000000000000000000000000000020d4c0df32ee86ae7b5161167dcef1b7eeb12a4a6dc9a1b6566aeeabe819adc61a0000000000000001000000000000000000000000000000201f4bfe7d2398692f0c7abdb85ed16895ef0857d4d738e32f167340e5542a22b20000000000000001000000000000000100000000000000205d77fe2ccf9c9f8603070bd03123cd3455d47968e542db3d55abf5cd35b03d050000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d000000000000002c000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020cadc694bcab0b2d7370c8dcf7f32643b7ccc790157e036ca1d3beefb0898b82700000000000000010000000000000001000000000000002044e913a22e8b8b1762579db9e8881fb42a8fece24e32f32655687c652cc641f1000000000000000100000000000000000000000000000020a4e4ca5bbb50dfe8edcfb7963ea98588d32ac467780c2cade2a34fedc58db14d000000000000000100000000000000000000000000000020b6d1fb90220eb827e5a0d6cff1a17436b1d8a5cbf6a2bec68975b0b2c4d80d8a000000000000000100000000000000010000000000000020e7444cc161f3e7f01cf05762fb0fb97caf4bc92619aabc44b759df970816cdad0000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de000000000000002c0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000002c00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020824ed5cd0ffaf8dc9234762c6bc9feb6d3026bfae609819dd4319525966a4a46000000000000000100000000000000010000000000000020985631fd32f27cf13ae3272acbe192a07da5b490b59ba02a5efbc894d2f886840000000000000001000000000000000000000000000000200496c2ffc33bfff4769087999dc54f9ee00a37d262f77c5425667f17d151a0a2000000000000000100000000000000000000000000000020f7c430e5be26ecc9ace2846a2dd9aac8ff25889109484b43997f6080ae01699500000000000000010000000000000001000000000000002080f4c94164dc4597576888e1e7dfeeb82efbc11ac8b5ecc2b2df1058b8fa2b0500000000000000010000000000000000000000000000002040fcfc6bb63dbae33d624e3777a816b50ebb7a75c3788096fb31802eed5badf20000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e000000000000007e0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020b782aa7eaea72c5380ded75fc76a02b41f70147c14be1b5ef055b77629fc5bab000000000000000100000000000000000000000000000020e6377433847885cf37e45054debb564d20b150c03c731c35544d18873c6fc80e0000000000000001000000000000000000000000000000202ecd8753fbd4e9753d3ab5792022235b0d61965948a9802845ac769c195f73920000000000000001000000000000000000000000000000204d5c20971314a886143fcf4f31e5b0fe465897f95edb2ebb496a671eb51686a3000000000000000100000000000000000000000000000020484695c1718ea9babdf0da4a169839654a70d31dfb7bfa030bd34c4fd296f173000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000007e000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020ce65a52b98dddd706a68273f7920918697bd68520b127620b85a53f34121f96f000000000000000100000000000000000000000000000020a9c4b3c744c5537998728fd2fbc3b94e03972295db498ff96c58bad33a968e830000000000000001000000000000000000000000000000202ab79d9f3374ce44e12d2c803ade3b7883c480ea68b516a8844e29d1f144ce230000000000000001000000000000000000000000000000209ef4b79cde573ddf1a1cfe0df94952533f934e8712306ff6e1df26da2304bf2d000000000000000100000000000000000000000000000020eed5635aa9fe26e55ac534a89c39cf891254e6457318ced7e38ad88fc125ecc7000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000007e0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000007e00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020a3ec2ca4c2cad220c3ff1c6236c5fb9e9ac9ac5764370b83ec724f57c91f4fb900000000000000010000000000000000000000000000002016479a7042ae183dbd5f3dd916e005f0c4c049b3d3e2bafd47b35c7641802139000000000000000100000000000000000000000000000020252d0142e29f6f046a2bf2cb488c2f50c948efdf554303dbdc36c746c9b0c6bd000000000000000100000000000000000000000000000020bcd18cc2e0a4ed036f070637e84e56eaa6c50f80555c3785ecb5cd923c93e4870000000000000001000000000000000000000000000000205f345c922e75b5ee09f6a30d4e99bc3797063459fe2e79c3075e31feffa4522f000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000130000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703000000000000000700000000000000010000000000000000000000000000002021703590d8a3d620522d01efe94bca9d70a471bc2f28da7c69582c0f63c1380200000000000000010000000000000000000000000000002090e94b9236820d03f62325b921ff73b3069ef95294bed57f9e6903a5f06dde580000000000000001000000000000000100000000000000202954bf45fe77defb69128714be17592fe6b385a27c1f56d18e1e183bcc1594ee000000000000000100000000000000010000000000000020e2acecbe8619d7478dee57fcb82511df4fa4f1bdb2d5253db0ff26c50b7344b300000000000000010000000000000000000000000000002067b848c6a8fd93922564ee17c6101e314bbd3846fcea2a0a759b6e14ee53062a000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000013000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000000000000000000207e8f55c7960c67adc03754727cc4021051862d5af299f4bdd96fd557f5fb625a000000000000000100000000000000000000000000000020bc7f56ce6c6c34651e3eb1cd934cca80982251de322d2dc8ef472188db64ced2000000000000000100000000000000010000000000000020c570a41900e5df8ba34a98c813dcad69f97d3d94bb76ff8216e35356ca2cacfd00000000000000010000000000000001000000000000002022828921a6b0f0bee2649772e95581d881e7c8e59ac79244530985451478d83800000000000000010000000000000000000000000000002081a27a248db0076bc7a7f51b5ccf3cf5b9e1c7455e27068c417e64832913ff410000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000130000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000001300000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020161c5455f5f4ad1845ef85971e485e4568ff207a47acbb9cfceaae627ab139610000000000000001000000000000000000000000000000209f5fe62f2a856f23a9d3785a79b57aa782795ccc99e9e2e5db5a9e35fe7d0d87000000000000000100000000000000010000000000000020007a2897a91dac716a38ce55b9e88e544225dda467a77e6a984c7bbd5918d49800000000000000010000000000000001000000000000002016bdef74d3a4a3bf89aacb899b6f0c9002f0bb74b43dcea2dd6c6252a2ede355000000000000000100000000000000000000000000000020e31eb63203c4c86dcc10bca35f7905f868623039545d8b3017d8c39b9f6116d100000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000600000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703000000000000000700000000000000010000000000000001000000000000002030f0a6e18a9c2b696ab84a3debd90d10cefee51ad8d09faa2471ba7cb9c0734c000000000000000100000000000000010000000000000020d2e2ba3fc80ee026557e5bfcac4bed00ed62af39a123d3ee482cbd1a0959035c0000000000000001000000000000000100000000000000208898e207f899afef2d8054a80f751d82d7922c515dc762bb6fe3ca09982a4a8c000000000000000100000000000000010000000000000020c333590dcb0e6145e72bd463f743db0abfaeb8772dc580c71cf682d91309ed1f000000000000000100000000000000010000000000000020cca38bcaaeed86d1c037ddb148bba22f6b95749f7f352486d9b2248d154972a4000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000060000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020446cebac3d6fc37a7b25695955c0a474b81db2e30b58565167330f8ad341eabe00000000000000010000000000000001000000000000002040aaa91a76e76b209d5782919ffbac0c1b40c4d4763b7179e423c793cda2a3080000000000000001000000000000000100000000000000204760ed6b8f37b8811c4472d07018ef33254862de57fd87fdcb222f78d35c0c3c000000000000000100000000000000010000000000000020231c9cddba9de91f81f082284626d72c840c35a049839db16d0798671da9a94e00000000000000010000000000000001000000000000002015dc39279a52d41ddbcaf227c199cbd51b1f711d661184752155a6495562235a000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000600000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000006000000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020ca7eaf8ab66ea9f679a93a302c51b3aeb35824dd0a5b5381ea9ca6bbd5434d5b000000000000000100000000000000010000000000000020be3c304600dee094ac7b11b22bc4c6940552fbc5f077a7e24a4a568ea0b7540d00000000000000010000000000000001000000000000002004ce2cc4d87e262ec2f5f995c0158bc7b0330315c341537e2539f463c075a8cf000000000000000100000000000000010000000000000020ccdfc1ce31f7c9c3c299e0c8c2dcba2323cfe7190c2ecab871962f8a14a10c5f0000000000000001000000000000000100000000000000205c412ce971308b3c81ea6b705658f52dec02ecb3332ae0a2ccd740263bcc7a7b000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb9000000000000003f0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020792f9e91a004a8a4d8d29ecba8f9cba46c15e95a1a542d5d2e6a5bb946d8ad0f00000000000000010000000000000000000000000000002046ac07b7f7a61188086b6c4b68e04c2ab56f2c6523b241a09c8b73a6d2c4fd8600000000000000010000000000000000000000000000002003e351314794759cd9806174a52250b9cb8fa9581fa9e27d53e8a0c841303e0a00000000000000010000000000000000000000000000002038633c23221765310c92698cee8362c0d12200537889693a08f64eb0a28d0eb50000000000000001000000000000000000000000000000204cc7901d510046ae5f98d6b431c2a311cc066cdd794fd6e53cc30587ed00a61e0000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d000000000000003f000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000000000000000000206255b409b338405ad7f641b83a505fc2fb24e8c63255dc53f604f5202d06933f00000000000000010000000000000000000000000000002036670a01fac60d516547b53a292308b7180d6cadb33e8c70762b23893e9541a4000000000000000100000000000000000000000000000020a9ab9c5ee7b9555a000953fc28810de93e021fd6c3bd175a54f424a6c2f67cc8000000000000000100000000000000000000000000000020d0aef9b77b039100567fbec3deac5294b41ec41336a21a95a35be851fa112511000000000000000100000000000000000000000000000020f8cfb327d9517742fe31d66ff60129d85a3e464d22188d95a53c32e3132069560000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de000000000000003f0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000003f00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d000000000000000700000000000000010000000000000000000000000000002034b34841abb9aa55cc86c5c9c5468ff5c82badf98b26a6a7efec2a5682addbbb0000000000000001000000000000000000000000000000202cbda8598c8494d01b63f8ad898e82f5bf191915bec6b423b5193aeed5358d8d00000000000000010000000000000000000000000000002051d1c8fbe14916c1ada979c389c6e526187b29de31453aab6ad0a7df0008d5d90000000000000001000000000000000000000000000000206916699a45fdfb8384004d89c6a315b17df2f235f5b835b904c0db675c6a94010000000000000001000000000000000000000000000000208f995ec61c2dccbeb9c7fe1f9ab07ecdb151d4c25dee869fcddca0342e9f92e100000000000000010000000000000000000000000000002040fcfc6bb63dbae33d624e3777a816b50ebb7a75c3788096fb31802eed5badf20000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000770000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020fc9d3453af4b7b3e940e6c02b1bb3d4a1b0f19ca29afc165ae93adac2ea0fa940000000000000001000000000000000000000000000000201e656782b06961a71c694b3be69f51cae2a87b559293a9fa06cbddf255974523000000000000000100000000000000000000000000000020a558aea553fc003fae0160895074fcdcbf7c6993b4c04e8a9955882d31ce13d10000000000000001000000000000000100000000000000201ddaf21874d2f1dceb73b2bd9c919f8080291efd13ced9f813727e4f480d6481000000000000000100000000000000000000000000000020484695c1718ea9babdf0da4a169839654a70d31dfb7bfa030bd34c4fd296f173000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000077000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000000000000000000002098dea6d7fef8334eba9e48d934ec45ee0f2570b11f0997dae6ad364fbaeb41a10000000000000001000000000000000000000000000000201abd87bae25c461ef9694f95f408c9a6eab8c430b875a63d15e4d4b4058788760000000000000001000000000000000000000000000000209590ef6739c33ffd9d841690bc70d7db3670f18ec3d415639f73a8814d96a578000000000000000100000000000000010000000000000020aef86b1c25b74932f43f0295cd7c5728d8beb0c22d00656fa8fddbeccc1fc88d000000000000000100000000000000000000000000000020eed5635aa9fe26e55ac534a89c39cf891254e6457318ced7e38ad88fc125ecc7000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000770000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000007700000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020a108486816a0efbb5218d3d6e065f4ad236aeb7b64c2f7d27c1bb280138c511800000000000000010000000000000000000000000000002080a5be1805522417a278f5274f59ca801abff529b8b0c424373e94da81c9e28c000000000000000100000000000000000000000000000020a571342689300bf3f24c41daa8f18038acebef87a4aff9779badb1e45a3ad12b00000000000000010000000000000001000000000000002089d96d9f124e0114712142e432156e3f28d1d69fb964225488694ab55328440b0000000000000001000000000000000000000000000000205f345c922e75b5ee09f6a30d4e99bc3797063459fe2e79c3075e31feffa4522f000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000070000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020c7b1e5bf0733e0a3747103b05723724641d9922cf804ee197149894fc86e9c1600000000000000010000000000000000000000000000002024dd71f470a74bc9d00007238db817e2951ab47beab380e9dfb9c9bf28a0a90c00000000000000010000000000000000000000000000002093a0881cb11f378c3ee374298a66b649fae44fbb2f35e3704ab5f4655c883f85000000000000000100000000000000010000000000000020ca3dc5f22e4573bfae9e4282c195d191a87ba277e564f158302218ee7bcec57300000000000000010000000000000001000000000000002056e5e7ca74faee51ae45c7001256fed2e7e080dcb95a859867c22dcb1608665f000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000007000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000000000000000000204511364e6740dece985a8421cf505ace7c56a037e4c50c10c6cf1b04eb6fa5f8000000000000000100000000000000000000000000000020fa774f7f08a9caf5f4c2a4ec6081fa509a5e34d6de7388ccc80b06493b538fe8000000000000000100000000000000000000000000000020159fb7d1dbca35eff1d0f710637a19e2e36d57033adbce658e94920357d85089000000000000000100000000000000010000000000000020ea8b53cd7415ecfb610e991f3187dc70583ec968dd6f325946dad2d066766dd100000000000000010000000000000001000000000000002099796d2366d350a09cad2698ab80419a6869a2524f9cfcc2eb3055449273a24a0000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000070000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000000700000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020654ee39115d17871e13b2bdb9d698fe90beb54a1a366def2c328492b645068b60000000000000001000000000000000000000000000000207cdbe844b738198bfa602bed3dba6a064e3e226eb9af5f8121b0f4607ad4f1a5000000000000000100000000000000000000000000000020808c6faf169e8190470dfac9fe647ef5fac0047b66fa4b6fdb48e599786a862f0000000000000001000000000000000100000000000000202ef4e1908e5c1feba751546a1b19b44ec3948b5b79fb15cbc254b6ae858d0622000000000000000100000000000000010000000000000020cf7b4774e00157cbbb3d3167eebc39e16fa993a1f6d067c9342e404e34e33a4a00000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000380000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020d2b0c172c88804b019623c0ab76fe68968ce29df8d16ea64dfe04da5a9dfac9e00000000000000010000000000000001000000000000002058ca14bea62f02472920c94cef064e2b62a2215697046a17b9b4a72b1f79519d0000000000000001000000000000000100000000000000208b6c0dbf8846167552cf8ae1f5eccfada0c9c12fa603ef04a1bcf5b2d8d640de00000000000000010000000000000000000000000000002038633c23221765310c92698cee8362c0d12200537889693a08f64eb0a28d0eb50000000000000001000000000000000000000000000000204cc7901d510046ae5f98d6b431c2a311cc066cdd794fd6e53cc30587ed00a61e0000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000038000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000100000000000000205540c6210c4ea6250903e6e934550eb8cc7cbf54238f042e0841ae6e6707d79a000000000000000100000000000000010000000000000020c9853024a416fef377cb4d8cfd6cccbacb7c1d28e5d801967cd0793b83fb0d660000000000000001000000000000000100000000000000200e020dc06db87756c28132502389a84e3c64cd7df4b64b8737793c282df50a32000000000000000100000000000000000000000000000020d0aef9b77b039100567fbec3deac5294b41ec41336a21a95a35be851fa112511000000000000000100000000000000000000000000000020f8cfb327d9517742fe31d66ff60129d85a3e464d22188d95a53c32e3132069560000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000380000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000003800000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020adb005fe708243d49b98a809c185d6154f6e4bf420cc455d04d6cf7f7d51661a000000000000000100000000000000010000000000000020b1c646c25625c8766b0fa6a1aff4bd5dc9ee0fc27074f54d2072a3d8cdbf1ded00000000000000010000000000000001000000000000002095a3bea66806a0a16ce3c74b0f3b32494e1345651cb0e438ed2e97385107e3430000000000000001000000000000000000000000000000206916699a45fdfb8384004d89c6a315b17df2f235f5b835b904c0db675c6a94010000000000000001000000000000000000000000000000208f995ec61c2dccbeb9c7fe1f9ab07ecdb151d4c25dee869fcddca0342e9f92e100000000000000010000000000000000000000000000002040fcfc6bb63dbae33d624e3777a816b50ebb7a75c3788096fb31802eed5badf20000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000060000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020cf9c9d36e50f3be003abb72eadda4014f3014d18f065cdcf3718c8ea27781d7f00000000000000010000000000000000000000000000002024dd71f470a74bc9d00007238db817e2951ab47beab380e9dfb9c9bf28a0a90c00000000000000010000000000000000000000000000002093a0881cb11f378c3ee374298a66b649fae44fbb2f35e3704ab5f4655c883f85000000000000000100000000000000010000000000000020ca3dc5f22e4573bfae9e4282c195d191a87ba277e564f158302218ee7bcec57300000000000000010000000000000001000000000000002056e5e7ca74faee51ae45c7001256fed2e7e080dcb95a859867c22dcb1608665f000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000006000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020918cc2cb0516abac2122f4106181be6c4332bef5202829ed0c2504e9d66cd1e8000000000000000100000000000000000000000000000020fa774f7f08a9caf5f4c2a4ec6081fa509a5e34d6de7388ccc80b06493b538fe8000000000000000100000000000000000000000000000020159fb7d1dbca35eff1d0f710637a19e2e36d57033adbce658e94920357d85089000000000000000100000000000000010000000000000020ea8b53cd7415ecfb610e991f3187dc70583ec968dd6f325946dad2d066766dd100000000000000010000000000000001000000000000002099796d2366d350a09cad2698ab80419a6869a2524f9cfcc2eb3055449273a24a0000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000060000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000000600000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020b92604315276e660d69e3d60848b4e1b545ac29935cb28e912408dde71a820870000000000000001000000000000000000000000000000207cdbe844b738198bfa602bed3dba6a064e3e226eb9af5f8121b0f4607ad4f1a5000000000000000100000000000000000000000000000020808c6faf169e8190470dfac9fe647ef5fac0047b66fa4b6fdb48e599786a862f0000000000000001000000000000000100000000000000202ef4e1908e5c1feba751546a1b19b44ec3948b5b79fb15cbc254b6ae858d0622000000000000000100000000000000010000000000000020cf7b4774e00157cbbb3d3167eebc39e16fa993a1f6d067c9342e404e34e33a4a00000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000630000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703000000000000000700000000000000010000000000000000000000000000002090a5c0dfecd68b96260de0e176f1daaa0cefbdbbf4bed734ac888093198137f20000000000000001000000000000000000000000000000205217f042c4103dfce290399af2d7f6e91b0303d9374068c157fddf417ac1466c0000000000000001000000000000000100000000000000208898e207f899afef2d8054a80f751d82d7922c515dc762bb6fe3ca09982a4a8c000000000000000100000000000000010000000000000020c333590dcb0e6145e72bd463f743db0abfaeb8772dc580c71cf682d91309ed1f000000000000000100000000000000010000000000000020cca38bcaaeed86d1c037ddb148bba22f6b95749f7f352486d9b2248d154972a4000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000063000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020f750a8df74970bf8b1f2cb625632f0010a1ebd07ceb50b9b55baeca9734481bc0000000000000001000000000000000000000000000000204437135e388dbbc0f4134ea178c5475160607cb1a13f453188a7b6009d99e7d20000000000000001000000000000000100000000000000204760ed6b8f37b8811c4472d07018ef33254862de57fd87fdcb222f78d35c0c3c000000000000000100000000000000010000000000000020231c9cddba9de91f81f082284626d72c840c35a049839db16d0798671da9a94e00000000000000010000000000000001000000000000002015dc39279a52d41ddbcaf227c199cbd51b1f711d661184752155a6495562235a000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000630000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000006300000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000000000000000000205ae1bdb7fd65e5b724a890e024d01cbf17c7d7da4f37a1acf94d982287b552be0000000000000001000000000000000000000000000000209def4bb721745767975c519652187717ac9df39e7dd95f4cf70cc5a58431187700000000000000010000000000000001000000000000002004ce2cc4d87e262ec2f5f995c0158bc7b0330315c341537e2539f463c075a8cf000000000000000100000000000000010000000000000020ccdfc1ce31f7c9c3c299e0c8c2dcba2323cfe7190c2ecab871962f8a14a10c5f0000000000000001000000000000000100000000000000205c412ce971308b3c81ea6b705658f52dec02ecb3332ae0a2ccd740263bcc7a7b000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb9000000000000004f0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703000000000000000700000000000000010000000000000000000000000000002069df69981837d9a2682438028756fc2495603017b32ec9a842f551862e713ce9000000000000000100000000000000000000000000000020031183c242d0006598e5b7d676d9417602ba0479e19628cfd3363bcd15acbd26000000000000000100000000000000000000000000000020abaf0b06722523bc4bde176d2e6139a66b13737d4ba7c832f6ffc69c42134659000000000000000100000000000000000000000000000020e2cfdef2e013593d17123ff3c49fb968341cf622151374e7b49d49569fdcf51e000000000000000100000000000000010000000000000020e6fbce7ccc80a578a93cc241360a739d0248edab1a37196cc8564d3cea08f1a90000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000004f000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020de96c6c139ca517e3397d9714e0f9d56dcf2793eda355e6c6f334d42da316be0000000000000000100000000000000000000000000000020c88bca0d3c3ad45aa29f3b4c3779ef43a1be883fc13bbe6a6e4f864830412148000000000000000100000000000000000000000000000020ff282d6b8f29787926c8a85ab4250c615749a6cfa03fcf66109c36e40f1a5c30000000000000000100000000000000000000000000000020ecb1f059ced073c0f1f4ab430f41a2243331d77e965de85e9fbb5ae14eed25980000000000000001000000000000000100000000000000201e2c25d0355b2435f10a6081fe0d1c18b2bcf5ac219aa03a7bf09921024c667f000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000004f0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000004f00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020f5ce0a4e0da6f86c1c6a63d91c1c00d501eafa65637a0f94c179bba3470898a50000000000000001000000000000000000000000000000207efb1d6a7164e5e46e9a57cb170c5436c302c7699499c6d9a4576174ded9095d0000000000000001000000000000000000000000000000204402b00e03a3126bf5507574b33e77c1225e27606f6b99dc241f58e7751462bf00000000000000010000000000000000000000000000002005a7d139ea1c50e2d46ee67598c7cccdfa30f9ddabe7cfc41f5862d2aabb182b000000000000000100000000000000010000000000000020653a458519e3320afef3854df67dd297919d49bad510656792603e8433e203430000000000000001000000000000000100000000000000204bf1e1669389897cdf60a4c21a8ebf7bc19a07905ce2001a19e2353ccbd0bc330000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000450000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020d089cd76daba71dc91c5120df9a57c2c9593628d60e22fb13354a3c8db4abf7e000000000000000100000000000000010000000000000020bcad8b753d996e6fe12bd8ad8923329d0cf1f6606b0d8e7e85c065482ff69b6a0000000000000001000000000000000000000000000000204480fc856c36220f6771e9b17ac2e69c39a94b5b5ac72fefb864f31a46f8b565000000000000000100000000000000010000000000000020d882d23dcecd5a4ff24e4f097ada499103f4217af8b869ce0275076671c667bc000000000000000100000000000000010000000000000020e6fbce7ccc80a578a93cc241360a739d0248edab1a37196cc8564d3cea08f1a90000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000045000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020e6bc676bce506377233290e03e99593eb3422cad5514af7f08c365cd50482d09000000000000000100000000000000010000000000000020b4961ae32337fb330d5cbe2c567652cf97c1b08eb68d8d3e9fb6cd488a1973b80000000000000001000000000000000000000000000000202f32d27f3c9dab9e7d39411802445169183e1a69655269ff4612e20b5845aae2000000000000000100000000000000010000000000000020c57390cb340730fb4757e6d9269625065f9b6612660a2177c39d2619ba6c9f820000000000000001000000000000000100000000000000201e2c25d0355b2435f10a6081fe0d1c18b2bcf5ac219aa03a7bf09921024c667f000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000450000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000004500000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020f6d02688a637d3c87bf49d7a8631d373cd9f645da6deb90f5e60c091125ff6900000000000000001000000000000000100000000000000207eb3c7c591e0f892945432343c9ad2c27759b7c1cbd244f947e71d519365d523000000000000000100000000000000000000000000000020cb746b8631299eca5f4ac56057e7c228c9eda8fc7ae1639f197b536a7e9f1f3b00000000000000010000000000000001000000000000002093e04c833bb94046be76dac782b2f4e32bd43fb9f5792101228a36dfb286a712000000000000000100000000000000010000000000000020653a458519e3320afef3854df67dd297919d49bad510656792603e8433e203430000000000000001000000000000000100000000000000204bf1e1669389897cdf60a4c21a8ebf7bc19a07905ce2001a19e2353ccbd0bc330000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000620000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000209222a4b9ead180ea57875e5b570b0a873e3a11e75023cd766bdff57e2cb3bc890000000000000001000000000000000000000000000000205217f042c4103dfce290399af2d7f6e91b0303d9374068c157fddf417ac1466c0000000000000001000000000000000100000000000000208898e207f899afef2d8054a80f751d82d7922c515dc762bb6fe3ca09982a4a8c000000000000000100000000000000010000000000000020c333590dcb0e6145e72bd463f743db0abfaeb8772dc580c71cf682d91309ed1f000000000000000100000000000000010000000000000020cca38bcaaeed86d1c037ddb148bba22f6b95749f7f352486d9b2248d154972a4000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000062000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000100000000000000203d63a2c5fa7924ce4227afab2a451ab6c2ab403e213d466140f680f9f2cd56660000000000000001000000000000000000000000000000204437135e388dbbc0f4134ea178c5475160607cb1a13f453188a7b6009d99e7d20000000000000001000000000000000100000000000000204760ed6b8f37b8811c4472d07018ef33254862de57fd87fdcb222f78d35c0c3c000000000000000100000000000000010000000000000020231c9cddba9de91f81f082284626d72c840c35a049839db16d0798671da9a94e00000000000000010000000000000001000000000000002015dc39279a52d41ddbcaf227c199cbd51b1f711d661184752155a6495562235a000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000620000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000006200000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000100000000000000207e20411da1ee7c3183e4590085d2269d70d8ca2344d39505ef5d330d0bcf404b0000000000000001000000000000000000000000000000209def4bb721745767975c519652187717ac9df39e7dd95f4cf70cc5a58431187700000000000000010000000000000001000000000000002004ce2cc4d87e262ec2f5f995c0158bc7b0330315c341537e2539f463c075a8cf000000000000000100000000000000010000000000000020ccdfc1ce31f7c9c3c299e0c8c2dcba2323cfe7190c2ecab871962f8a14a10c5f0000000000000001000000000000000100000000000000205c412ce971308b3c81ea6b705658f52dec02ecb3332ae0a2ccd740263bcc7a7b000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000620000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000209222a4b9ead180ea57875e5b570b0a873e3a11e75023cd766bdff57e2cb3bc890000000000000001000000000000000000000000000000205217f042c4103dfce290399af2d7f6e91b0303d9374068c157fddf417ac1466c0000000000000001000000000000000100000000000000208898e207f899afef2d8054a80f751d82d7922c515dc762bb6fe3ca09982a4a8c000000000000000100000000000000010000000000000020c333590dcb0e6145e72bd463f743db0abfaeb8772dc580c71cf682d91309ed1f000000000000000100000000000000010000000000000020cca38bcaaeed86d1c037ddb148bba22f6b95749f7f352486d9b2248d154972a4000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000062000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000100000000000000203d63a2c5fa7924ce4227afab2a451ab6c2ab403e213d466140f680f9f2cd56660000000000000001000000000000000000000000000000204437135e388dbbc0f4134ea178c5475160607cb1a13f453188a7b6009d99e7d20000000000000001000000000000000100000000000000204760ed6b8f37b8811c4472d07018ef33254862de57fd87fdcb222f78d35c0c3c000000000000000100000000000000010000000000000020231c9cddba9de91f81f082284626d72c840c35a049839db16d0798671da9a94e00000000000000010000000000000001000000000000002015dc39279a52d41ddbcaf227c199cbd51b1f711d661184752155a6495562235a000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000620000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000006200000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000100000000000000207e20411da1ee7c3183e4590085d2269d70d8ca2344d39505ef5d330d0bcf404b0000000000000001000000000000000000000000000000209def4bb721745767975c519652187717ac9df39e7dd95f4cf70cc5a58431187700000000000000010000000000000001000000000000002004ce2cc4d87e262ec2f5f995c0158bc7b0330315c341537e2539f463c075a8cf000000000000000100000000000000010000000000000020ccdfc1ce31f7c9c3c299e0c8c2dcba2323cfe7190c2ecab871962f8a14a10c5f0000000000000001000000000000000100000000000000205c412ce971308b3c81ea6b705658f52dec02ecb3332ae0a2ccd740263bcc7a7b000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000730000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020ff14d754d3226b23ef4b6bfb982e0149dda2e2058aa7017be3bbee7afe1f30dc0000000000000001000000000000000000000000000000203f1184d99c0c6f37844768d0fd9fd6b2b34d22db285cdeef3fddc041c496e2e7000000000000000100000000000000010000000000000020b4894900c33f5635d85562ebbda7805f0ac1d98ae53665e714382ea448ac52c20000000000000001000000000000000100000000000000201ddaf21874d2f1dceb73b2bd9c919f8080291efd13ced9f813727e4f480d6481000000000000000100000000000000000000000000000020484695c1718ea9babdf0da4a169839654a70d31dfb7bfa030bd34c4fd296f173000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000073000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020ce1c9a80555da1eb2cfcdaad12bfb4279830eb496320959d3ff86dd0c00ec62d00000000000000010000000000000000000000000000002020f2a31bfd572314732bbf381b5314858e97f3aa9d9aecf077369cf5b72048fd0000000000000001000000000000000100000000000000200755751b5c06801532af40f5137b978866beb2f616a3d040c4a46f352c038982000000000000000100000000000000010000000000000020aef86b1c25b74932f43f0295cd7c5728d8beb0c22d00656fa8fddbeccc1fc88d000000000000000100000000000000000000000000000020eed5635aa9fe26e55ac534a89c39cf891254e6457318ced7e38ad88fc125ecc7000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000730000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000007300000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d000000000000000700000000000000010000000000000000000000000000002044b12064ace8517211b4c512da17f8451b880c4a8cca2d87c643ece4ea914ae9000000000000000100000000000000000000000000000020ab2bba1f31aeb4211b52890655f3b6ec8a05d02b4beafb14a9a68b11944e32da00000000000000010000000000000001000000000000002071aa0b28d4c939a843faaecd9b982f474a73bc624ea848b3a9684b03b7cc50e700000000000000010000000000000001000000000000002089d96d9f124e0114712142e432156e3f28d1d69fb964225488694ab55328440b0000000000000001000000000000000000000000000000205f345c922e75b5ee09f6a30d4e99bc3797063459fe2e79c3075e31feffa4522f000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb9000000000000007a0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020c75ec940d0e95377720389ceeb0eafd8a3d3ceda65d360e25f92b78b759b64d5000000000000000100000000000000000000000000000020f7a03e6aab33c259b776a0a1068e9b29f69e476bfd7bd164913d1edd6dbe937e000000000000000100000000000000010000000000000020a0ff9b979dbd1cb58a689c4f7cb8c8e56e1dda716de815f8dce6e6624d7e57ac0000000000000001000000000000000000000000000000204d5c20971314a886143fcf4f31e5b0fe465897f95edb2ebb496a671eb51686a3000000000000000100000000000000000000000000000020484695c1718ea9babdf0da4a169839654a70d31dfb7bfa030bd34c4fd296f173000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000007a000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020c8852b920b05e5706551ba5f636d8d26d15193c6584fadd468986532d24c74a40000000000000001000000000000000000000000000000202dad7cb660b8d7478673d74df249c7bca96ad2a77a9e6df8cd53b3b04533f1c800000000000000010000000000000001000000000000002016a4ade761eb6230e27dd29c0ca0b6ca9e5ed431dfbc829f10335bc89c30fd1a0000000000000001000000000000000000000000000000209ef4b79cde573ddf1a1cfe0df94952533f934e8712306ff6e1df26da2304bf2d000000000000000100000000000000000000000000000020eed5635aa9fe26e55ac534a89c39cf891254e6457318ced7e38ad88fc125ecc7000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000007a0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000007a00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020c323e0b3ffc569382aaece5eeca62c4f79883a936e990531f49bdd6df7cc5cae00000000000000010000000000000000000000000000002079b1caa581c5d2688d2628b43e3067fd9121337852f19ee6997b9d92a843518f00000000000000010000000000000001000000000000002000259d57f7bce9389ee7e73f33e5b2ca1c650ce9e8dc63130f8749fbdcfdfb2d000000000000000100000000000000000000000000000020bcd18cc2e0a4ed036f070637e84e56eaa6c50f80555c3785ecb5cd923c93e4870000000000000001000000000000000000000000000000205f345c922e75b5ee09f6a30d4e99bc3797063459fe2e79c3075e31feffa4522f000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000700000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020bdf52ce85dc6e0a5f9086cf31cd92ffa1893b5a641fcb6edd31404b8d5b8d16800000000000000010000000000000001000000000000002084cc04492d17a5edb263d9419913adcdd2a248cbccea218baca50c1e640d6302000000000000000100000000000000010000000000000020b4894900c33f5635d85562ebbda7805f0ac1d98ae53665e714382ea448ac52c20000000000000001000000000000000100000000000000201ddaf21874d2f1dceb73b2bd9c919f8080291efd13ced9f813727e4f480d6481000000000000000100000000000000000000000000000020484695c1718ea9babdf0da4a169839654a70d31dfb7bfa030bd34c4fd296f173000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000070000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000001000000000000002068387d66eee106bd33e6c664aeea5943e24de44b5d37170c9e9abac629ffb43f0000000000000001000000000000000100000000000000205f667a6c0717dc4c601a1184bd0891be7afdc355fe30045920dae63e1f3c856e0000000000000001000000000000000100000000000000200755751b5c06801532af40f5137b978866beb2f616a3d040c4a46f352c038982000000000000000100000000000000010000000000000020aef86b1c25b74932f43f0295cd7c5728d8beb0c22d00656fa8fddbeccc1fc88d000000000000000100000000000000000000000000000020eed5635aa9fe26e55ac534a89c39cf891254e6457318ced7e38ad88fc125ecc7000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000700000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000007000000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d000000000000000700000000000000010000000000000001000000000000002032781ef50b45f2ca8291227218b1e212b3d8772ff9039bfa42feb33ca91d650600000000000000010000000000000001000000000000002011b7f140ef09eef7538363306696405c4689008ce8490adf33f20f762f28539a00000000000000010000000000000001000000000000002071aa0b28d4c939a843faaecd9b982f474a73bc624ea848b3a9684b03b7cc50e700000000000000010000000000000001000000000000002089d96d9f124e0114712142e432156e3f28d1d69fb964225488694ab55328440b0000000000000001000000000000000000000000000000205f345c922e75b5ee09f6a30d4e99bc3797063459fe2e79c3075e31feffa4522f000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb9000000000000000c0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000206930a5f9ea4d52e17a1c3dd55cbf7c35474dfd3483718902410c439dd6694c640000000000000001000000000000000100000000000000207f083025d7b5e20a3e96dbdb4f9f90b3702807776e2b2f53ab95311f3f7c3a9f000000000000000100000000000000000000000000000020e5744ea7917af5a15f1aa03739836609a2e30d754ad8e74253c5d416ce47902100000000000000010000000000000000000000000000002074c92898599a40af39cc7a4aa694631d7e51488babfa65b017e19bd852de297900000000000000010000000000000001000000000000002056e5e7ca74faee51ae45c7001256fed2e7e080dcb95a859867c22dcb1608665f000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d000000000000000c000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000001000000000000002093289367b31a97a2928a2f8e9e97c81bec79c1ed15af4738eb8f5db23b67455f00000000000000010000000000000001000000000000002056b2509eded6bd717e4ce53f680b40ab0a6c36b9fb7645d5ab33e0dbab72ba200000000000000001000000000000000000000000000000204f17285237eba98af78b80bd5e8de5f5a53fe8a071411b6c6e4d4c36f536e1330000000000000001000000000000000000000000000000208f3d18cc0b0da6433287a04f00ac88b64a41656e27ea9ddc94e4472173bebea600000000000000010000000000000001000000000000002099796d2366d350a09cad2698ab80419a6869a2524f9cfcc2eb3055449273a24a0000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de000000000000000c0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000000c00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020c66cecbeef046c7594b1aac080d12b84bd6d9dfcdb4354be3e3a3a694ea80c390000000000000001000000000000000100000000000000203ddfb243b2e80e7898329ebb8feaa08651ec49faf128c819a10fca1420b0190700000000000000010000000000000000000000000000002043dcee93d73702dc34c625490d12d8c33feba409024369d58d359e26aafe6b22000000000000000100000000000000000000000000000020c00237dc35ffd084252306466001d905dafd040f1eef9871a7001cc4e9b4f108000000000000000100000000000000010000000000000020cf7b4774e00157cbbb3d3167eebc39e16fa993a1f6d067c9342e404e34e33a4a00000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e000000000000007e0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020b782aa7eaea72c5380ded75fc76a02b41f70147c14be1b5ef055b77629fc5bab000000000000000100000000000000000000000000000020e6377433847885cf37e45054debb564d20b150c03c731c35544d18873c6fc80e0000000000000001000000000000000000000000000000202ecd8753fbd4e9753d3ab5792022235b0d61965948a9802845ac769c195f73920000000000000001000000000000000000000000000000204d5c20971314a886143fcf4f31e5b0fe465897f95edb2ebb496a671eb51686a3000000000000000100000000000000000000000000000020484695c1718ea9babdf0da4a169839654a70d31dfb7bfa030bd34c4fd296f173000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000007e000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020ce65a52b98dddd706a68273f7920918697bd68520b127620b85a53f34121f96f000000000000000100000000000000000000000000000020a9c4b3c744c5537998728fd2fbc3b94e03972295db498ff96c58bad33a968e830000000000000001000000000000000000000000000000202ab79d9f3374ce44e12d2c803ade3b7883c480ea68b516a8844e29d1f144ce230000000000000001000000000000000000000000000000209ef4b79cde573ddf1a1cfe0df94952533f934e8712306ff6e1df26da2304bf2d000000000000000100000000000000000000000000000020eed5635aa9fe26e55ac534a89c39cf891254e6457318ced7e38ad88fc125ecc7000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000007e0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000007e00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020a3ec2ca4c2cad220c3ff1c6236c5fb9e9ac9ac5764370b83ec724f57c91f4fb900000000000000010000000000000000000000000000002016479a7042ae183dbd5f3dd916e005f0c4c049b3d3e2bafd47b35c7641802139000000000000000100000000000000000000000000000020252d0142e29f6f046a2bf2cb488c2f50c948efdf554303dbdc36c746c9b0c6bd000000000000000100000000000000000000000000000020bcd18cc2e0a4ed036f070637e84e56eaa6c50f80555c3785ecb5cd923c93e4870000000000000001000000000000000000000000000000205f345c922e75b5ee09f6a30d4e99bc3797063459fe2e79c3075e31feffa4522f000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000130000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703000000000000000700000000000000010000000000000000000000000000002021703590d8a3d620522d01efe94bca9d70a471bc2f28da7c69582c0f63c1380200000000000000010000000000000000000000000000002090e94b9236820d03f62325b921ff73b3069ef95294bed57f9e6903a5f06dde580000000000000001000000000000000100000000000000202954bf45fe77defb69128714be17592fe6b385a27c1f56d18e1e183bcc1594ee000000000000000100000000000000010000000000000020e2acecbe8619d7478dee57fcb82511df4fa4f1bdb2d5253db0ff26c50b7344b300000000000000010000000000000000000000000000002067b848c6a8fd93922564ee17c6101e314bbd3846fcea2a0a759b6e14ee53062a000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000013000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000000000000000000207e8f55c7960c67adc03754727cc4021051862d5af299f4bdd96fd557f5fb625a000000000000000100000000000000000000000000000020bc7f56ce6c6c34651e3eb1cd934cca80982251de322d2dc8ef472188db64ced2000000000000000100000000000000010000000000000020c570a41900e5df8ba34a98c813dcad69f97d3d94bb76ff8216e35356ca2cacfd00000000000000010000000000000001000000000000002022828921a6b0f0bee2649772e95581d881e7c8e59ac79244530985451478d83800000000000000010000000000000000000000000000002081a27a248db0076bc7a7f51b5ccf3cf5b9e1c7455e27068c417e64832913ff410000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000130000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000001300000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020161c5455f5f4ad1845ef85971e485e4568ff207a47acbb9cfceaae627ab139610000000000000001000000000000000000000000000000209f5fe62f2a856f23a9d3785a79b57aa782795ccc99e9e2e5db5a9e35fe7d0d87000000000000000100000000000000010000000000000020007a2897a91dac716a38ce55b9e88e544225dda467a77e6a984c7bbd5918d49800000000000000010000000000000001000000000000002016bdef74d3a4a3bf89aacb899b6f0c9002f0bb74b43dcea2dd6c6252a2ede355000000000000000100000000000000000000000000000020e31eb63203c4c86dcc10bca35f7905f868623039545d8b3017d8c39b9f6116d100000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000370000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020fb3488e3405dc5dfd6da7f19f92954e4aeb951531c333dddcc531a604f273cb10000000000000001000000000000000000000000000000205e0f50e6647448b37ecb900b2e98938852d04e3c7a8814ad45c8f5555096bfb500000000000000010000000000000000000000000000002015974e5cde8b68336383dff938d22e92f360b18ffe56429530ed75be9b66f34600000000000000010000000000000001000000000000002035603eb04728f46297d39deef07280b0efb1ad34cd06e614ab18bb44a27f7e2e0000000000000001000000000000000000000000000000204cc7901d510046ae5f98d6b431c2a311cc066cdd794fd6e53cc30587ed00a61e0000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000037000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020936ea6a916508fe9839bfccdf95a9299a28867747548e1a74b38208ee3ace14e000000000000000100000000000000000000000000000020eb939b7425a45e6af5ee8bbd51aa96cb2fd43c51864a08f260c6b1f8c2aca314000000000000000100000000000000000000000000000020617144785e76e054a86588f283941ec49cb303cfe7fa0c4860356593023b62a70000000000000001000000000000000100000000000000208167f508c5eb6be817a066fba8c0346e424b21acf020be61c9420e0d0fe6ef23000000000000000100000000000000000000000000000020f8cfb327d9517742fe31d66ff60129d85a3e464d22188d95a53c32e3132069560000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000370000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000003700000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000000000000000000206c078bb7ac199799dee0c5c49ed1d0d210984e680d33373f1f2683f2184ce983000000000000000100000000000000000000000000000020e71ba0d2168fa3484961ca6a6263ba6305b6bcbfc7d076c7b11adb924bf3a74300000000000000010000000000000000000000000000002062f2b2903f1a7436363f3a5c5592a114e9fe69ef6adeb2631c9a458007c9663b0000000000000001000000000000000100000000000000204fcd2ada01b5d173195b35a487f5b16437dabdb84cce492f9d9213768cb11a090000000000000001000000000000000000000000000000208f995ec61c2dccbeb9c7fe1f9ab07ecdb151d4c25dee869fcddca0342e9f92e100000000000000010000000000000000000000000000002040fcfc6bb63dbae33d624e3777a816b50ebb7a75c3788096fb31802eed5badf20000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000390000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020386990815d7d47219e906dfb1af70f41402e8fc59565f8f1efb9a95727bc671d00000000000000010000000000000001000000000000002058ca14bea62f02472920c94cef064e2b62a2215697046a17b9b4a72b1f79519d0000000000000001000000000000000100000000000000208b6c0dbf8846167552cf8ae1f5eccfada0c9c12fa603ef04a1bcf5b2d8d640de00000000000000010000000000000000000000000000002038633c23221765310c92698cee8362c0d12200537889693a08f64eb0a28d0eb50000000000000001000000000000000000000000000000204cc7901d510046ae5f98d6b431c2a311cc066cdd794fd6e53cc30587ed00a61e0000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000039000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000000000000000000002041af11f8d316c8db8428918022130cebb00a19a040e7d2ba6a3028e547ce64c0000000000000000100000000000000010000000000000020c9853024a416fef377cb4d8cfd6cccbacb7c1d28e5d801967cd0793b83fb0d660000000000000001000000000000000100000000000000200e020dc06db87756c28132502389a84e3c64cd7df4b64b8737793c282df50a32000000000000000100000000000000000000000000000020d0aef9b77b039100567fbec3deac5294b41ec41336a21a95a35be851fa112511000000000000000100000000000000000000000000000020f8cfb327d9517742fe31d66ff60129d85a3e464d22188d95a53c32e3132069560000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000390000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000003900000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020bd83a4fd723da593b4104242a65dc4c9f0aa51595b97c39c28ca65f474c66ec7000000000000000100000000000000010000000000000020b1c646c25625c8766b0fa6a1aff4bd5dc9ee0fc27074f54d2072a3d8cdbf1ded00000000000000010000000000000001000000000000002095a3bea66806a0a16ce3c74b0f3b32494e1345651cb0e438ed2e97385107e3430000000000000001000000000000000000000000000000206916699a45fdfb8384004d89c6a315b17df2f235f5b835b904c0db675c6a94010000000000000001000000000000000000000000000000208f995ec61c2dccbeb9c7fe1f9ab07ecdb151d4c25dee869fcddca0342e9f92e100000000000000010000000000000000000000000000002040fcfc6bb63dbae33d624e3777a816b50ebb7a75c3788096fb31802eed5badf20000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000440000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703000000000000000700000000000000010000000000000001000000000000002051c6eedc336e8c7c64ff8155254b31da7820204f27c0a158d1cac8a135eb2f9c000000000000000100000000000000010000000000000020bcad8b753d996e6fe12bd8ad8923329d0cf1f6606b0d8e7e85c065482ff69b6a0000000000000001000000000000000000000000000000204480fc856c36220f6771e9b17ac2e69c39a94b5b5ac72fefb864f31a46f8b565000000000000000100000000000000010000000000000020d882d23dcecd5a4ff24e4f097ada499103f4217af8b869ce0275076671c667bc000000000000000100000000000000010000000000000020e6fbce7ccc80a578a93cc241360a739d0248edab1a37196cc8564d3cea08f1a90000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000044000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020604cd428564c7fd4f1f56b98d6e3606560a88ef775c7a7d98001b51b042cfb91000000000000000100000000000000010000000000000020b4961ae32337fb330d5cbe2c567652cf97c1b08eb68d8d3e9fb6cd488a1973b80000000000000001000000000000000000000000000000202f32d27f3c9dab9e7d39411802445169183e1a69655269ff4612e20b5845aae2000000000000000100000000000000010000000000000020c57390cb340730fb4757e6d9269625065f9b6612660a2177c39d2619ba6c9f820000000000000001000000000000000100000000000000201e2c25d0355b2435f10a6081fe0d1c18b2bcf5ac219aa03a7bf09921024c667f000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000440000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000004400000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000010000000000000020df28aab0c1e0b9eb875cd6eaef77484710ac9bda66b5309d3f75f549f2dca92a0000000000000001000000000000000100000000000000207eb3c7c591e0f892945432343c9ad2c27759b7c1cbd244f947e71d519365d523000000000000000100000000000000000000000000000020cb746b8631299eca5f4ac56057e7c228c9eda8fc7ae1639f197b536a7e9f1f3b00000000000000010000000000000001000000000000002093e04c833bb94046be76dac782b2f4e32bd43fb9f5792101228a36dfb286a712000000000000000100000000000000010000000000000020653a458519e3320afef3854df67dd297919d49bad510656792603e8433e203430000000000000001000000000000000100000000000000204bf1e1669389897cdf60a4c21a8ebf7bc19a07905ce2001a19e2353ccbd0bc330000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000750000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020a673f2a13dee1f295baf54863b4ade9f8ad36194543dc96e5f27641f75b8a6130000000000000001000000000000000100000000000000203a714c997001e9a05fc7ec383aca44129a209ae357dfceecd6a4a62283beb92d000000000000000100000000000000000000000000000020a558aea553fc003fae0160895074fcdcbf7c6993b4c04e8a9955882d31ce13d10000000000000001000000000000000100000000000000201ddaf21874d2f1dceb73b2bd9c919f8080291efd13ced9f813727e4f480d6481000000000000000100000000000000000000000000000020484695c1718ea9babdf0da4a169839654a70d31dfb7bfa030bd34c4fd296f173000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000075000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020af1258b69d7476d28621a7f53d0f6970e64ffa4aaa3854a58fde5f9b9ef6f246000000000000000100000000000000010000000000000020d1c537e415fe4be67566c3b3f2f317368ba0e9245cbc9e5bb763ab0860f54acb0000000000000001000000000000000000000000000000209590ef6739c33ffd9d841690bc70d7db3670f18ec3d415639f73a8814d96a578000000000000000100000000000000010000000000000020aef86b1c25b74932f43f0295cd7c5728d8beb0c22d00656fa8fddbeccc1fc88d000000000000000100000000000000000000000000000020eed5635aa9fe26e55ac534a89c39cf891254e6457318ced7e38ad88fc125ecc7000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000750000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000007500000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020f444187b6aed8b923053f21016b19735ac1ae7a5b388c3a24b77ff51e1c8a9b1000000000000000100000000000000010000000000000020e89d576a3d310168700903ef33234b3a6596b234e1da5542d524874248157959000000000000000100000000000000000000000000000020a571342689300bf3f24c41daa8f18038acebef87a4aff9779badb1e45a3ad12b00000000000000010000000000000001000000000000002089d96d9f124e0114712142e432156e3f28d1d69fb964225488694ab55328440b0000000000000001000000000000000000000000000000205f345c922e75b5ee09f6a30d4e99bc3797063459fe2e79c3075e31feffa4522f000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000040000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000202cac98730dcde3a8d3993db1dca0f1985094bcb603acd679de1f2169353995980000000000000001000000000000000100000000000000204447a886401319eabaa837dbf2e6633da15ddf83424342259464f374e35caacf00000000000000010000000000000000000000000000002093a0881cb11f378c3ee374298a66b649fae44fbb2f35e3704ab5f4655c883f85000000000000000100000000000000010000000000000020ca3dc5f22e4573bfae9e4282c195d191a87ba277e564f158302218ee7bcec57300000000000000010000000000000001000000000000002056e5e7ca74faee51ae45c7001256fed2e7e080dcb95a859867c22dcb1608665f000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000004000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020039944d7b72e0b16c0425a2ee0ea494707e2737847468b67852c75844488e28a00000000000000010000000000000001000000000000002038f9389965a1255e737eb7b50b266491f8214deee249c7108d209f37a58f6479000000000000000100000000000000000000000000000020159fb7d1dbca35eff1d0f710637a19e2e36d57033adbce658e94920357d85089000000000000000100000000000000010000000000000020ea8b53cd7415ecfb610e991f3187dc70583ec968dd6f325946dad2d066766dd100000000000000010000000000000001000000000000002099796d2366d350a09cad2698ab80419a6869a2524f9cfcc2eb3055449273a24a0000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000040000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000000400000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000100000000000000204213b43486f6be4ba1e16835a46a0efc4a75028848343aeb079c1820e6d66e9d00000000000000010000000000000001000000000000002067c05032372570f57ce0b0a5709a69faf8cd5b4f4816b0ebfaeebdc5ddb423f3000000000000000100000000000000000000000000000020808c6faf169e8190470dfac9fe647ef5fac0047b66fa4b6fdb48e599786a862f0000000000000001000000000000000100000000000000202ef4e1908e5c1feba751546a1b19b44ec3948b5b79fb15cbc254b6ae858d0622000000000000000100000000000000010000000000000020cf7b4774e00157cbbb3d3167eebc39e16fa993a1f6d067c9342e404e34e33a4a00000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000660000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703000000000000000700000000000000010000000000000001000000000000002000c74ee6020589d97e05e66ef58e188e911bd4a090c41e22dacf938568beefbc0000000000000001000000000000000000000000000000205f4102b0b8800e19f474637f55a226fec10861748b9fa2ec8bdae4826e142bb5000000000000000100000000000000000000000000000020786f95a2172647531fa82d40b84de37a8c8c7ed9f5255069d2aa70f6d62cd587000000000000000100000000000000010000000000000020c333590dcb0e6145e72bd463f743db0abfaeb8772dc580c71cf682d91309ed1f000000000000000100000000000000010000000000000020cca38bcaaeed86d1c037ddb148bba22f6b95749f7f352486d9b2248d154972a4000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000066000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020012f1be2dbfbf432564211d5e2321006bfaab480377832f56a60de51c5b7721d000000000000000100000000000000000000000000000020a208a8f0c84ba755ac34583a27706f071785155bb44e2c1c1b42da927f25c20200000000000000010000000000000000000000000000002033f11f3f1d395d654c44f337de010654fc274e24f3eb38f1d043e7dfd62e1485000000000000000100000000000000010000000000000020231c9cddba9de91f81f082284626d72c840c35a049839db16d0798671da9a94e00000000000000010000000000000001000000000000002015dc39279a52d41ddbcaf227c199cbd51b1f711d661184752155a6495562235a000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000660000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000006600000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000100000000000000205213ac0942e8f89a6a6f456bb1f432e2cfa62a2c0f2dffa90f43645e55942ed4000000000000000100000000000000000000000000000020f80772757f8c8cdbabda52736674cd5cfecab385704328c7d1a93a5476929a24000000000000000100000000000000000000000000000020a18f21e7e8468794ce9a72aafad56c67612abcaa36d917dc7026a967abbe5d10000000000000000100000000000000010000000000000020ccdfc1ce31f7c9c3c299e0c8c2dcba2323cfe7190c2ecab871962f8a14a10c5f0000000000000001000000000000000100000000000000205c412ce971308b3c81ea6b705658f52dec02ecb3332ae0a2ccd740263bcc7a7b000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000030000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020a1c9ad5541c54f701ea497e54275c85960536afb5b4b2b29d90d497b022a49d60000000000000001000000000000000000000000000000200e893726c2a4574ace576d45340294995ea64dae1060cc967d7c262b3fa41f7b000000000000000100000000000000010000000000000020fead840665604a5a49e398fb78efac6fe1eb6f9b9330acae96d1f30f5ec2a112000000000000000100000000000000010000000000000020ca3dc5f22e4573bfae9e4282c195d191a87ba277e564f158302218ee7bcec57300000000000000010000000000000001000000000000002056e5e7ca74faee51ae45c7001256fed2e7e080dcb95a859867c22dcb1608665f000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000003000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000000000000000000002084fd9a7871a3c39bf1a72fbc505f00ca2b3ece9475e686d43e381ea5beaa546f0000000000000001000000000000000000000000000000204acfe5e6ce078248de8120a7c43fd555f9cc48d3ab927360d7d650fa93c6af09000000000000000100000000000000010000000000000020442b7310681f9144ce05c5c0335794243b1628a10269ea3f920a1d69cf0170b4000000000000000100000000000000010000000000000020ea8b53cd7415ecfb610e991f3187dc70583ec968dd6f325946dad2d066766dd100000000000000010000000000000001000000000000002099796d2366d350a09cad2698ab80419a6869a2524f9cfcc2eb3055449273a24a0000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000030000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000000300000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020cf915e6e1dfbc015257586f694a4123ae6676df281514d1da03b191aa271ba8b0000000000000001000000000000000000000000000000208d31059ab3e749d30c903d6e90b31150d2eee4a9dd76ef061c60b12ce67104b20000000000000001000000000000000100000000000000208ee52142db58fe442ca24e9577a242b6b0a01d185709369184976ec6ed203b4d0000000000000001000000000000000100000000000000202ef4e1908e5c1feba751546a1b19b44ec3948b5b79fb15cbc254b6ae858d0622000000000000000100000000000000010000000000000020cf7b4774e00157cbbb3d3167eebc39e16fa993a1f6d067c9342e404e34e33a4a00000000000000010000000000000001000000000000002090d49217cced73d8e6769ccd1ea2bc863a5bd6a04f13aba9aa2f3b1b8ca710190000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e000000000000005c0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703000000000000000700000000000000010000000000000001000000000000002047e1f5e0fe3ff76eaf6533b6ad4f15e6298846f17c92b90fee4090916be3d5ae000000000000000100000000000000010000000000000020368d67564a09158dfb6de68dfb9eb87ba299687ff58fa2c7213d13474b130927000000000000000100000000000000000000000000000020f476b958e87db8a02656f8467c6e5e45d866f25792959994b010cfab414a683f0000000000000001000000000000000000000000000000204ad6dc0cd0533f78182e33f1a845ac02537dc3fd9cd6a8afe705ed7185762a5c000000000000000100000000000000000000000000000020440141033be391d351cbd747235dd0dd8925385fcbdaf63ca3ce8096a77f70ba0000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000005c000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020bdfd29cfbbedae4c9227f8f665d1fc396e7c7d81b60456b2769aa3128a012cce000000000000000100000000000000010000000000000020ae367347ec635549b68bfb78721a6c7a1a6084fca918c06287dbc1b6afc3f9c20000000000000001000000000000000000000000000000200465cea58d937eb0fdb98fcaf6de41b5bc5a9ef8128bb64c6d5c79fe8b30bd02000000000000000100000000000000000000000000000020241e42aeb3c798b84ad9a34ccc6b26a5fb12fe91536ea9394f0e34b50690f3390000000000000001000000000000000000000000000000204d271360d6ea5729d441a303230c4b3fd940e15129f6f043ffe200fe1412df3c000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000005c0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000005c00000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d000000000000000700000000000000010000000000000001000000000000002016481fb3348ec209c5b73140bbb547579f4e76bc9ff2b2fafb9cf0bc486ebb0d000000000000000100000000000000010000000000000020ffbf0c26e0bb6487527adbbb7430418f551be74dc521a103c0c228b9307ac930000000000000000100000000000000000000000000000020bfc3833208072c06854906543f4c49a3ddc86f212ff116bde59fa27acaae0ba0000000000000000100000000000000000000000000000020196600714e2413375e79dfb52d0da692a476ee202a5b16a99a81d9e03b5b4da30000000000000001000000000000000000000000000000204b2589cc642be6064ae59c9496cf16edb00687dfa69b285a43c510b78bfc57d30000000000000001000000000000000100000000000000204bf1e1669389897cdf60a4c21a8ebf7bc19a07905ce2001a19e2353ccbd0bc330000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000270000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703000000000000000700000000000000010000000000000000000000000000002080f7ef92de39fceff81065b7019818e6930334436fdc315685d044001b58c09a0000000000000001000000000000000000000000000000206646e85b38be67320dd5f242052434bb096fc2dd3addf7630266aefa790b07c7000000000000000100000000000000000000000000000020ec22875e1413e14f0b228057c008ca6093a9bcc7bb60d0bd9e92aaa0cf0b83610000000000000001000000000000000100000000000000205174f398ccc856cdbbef4aa77674b4b7eef12d39c064ad97e2c59fc16b229eba0000000000000001000000000000000100000000000000205d77fe2ccf9c9f8603070bd03123cd3455d47968e542db3d55abf5cd35b03d050000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000027000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020aef4f9c0f0239b6889cce148d1dbaccf95010c94f0be3cf9748d71b4945def43000000000000000100000000000000000000000000000020ba86fb189507f2c681123bb98e433685488997ef80ef20ecfd7d745299e4c7df00000000000000010000000000000000000000000000002054c2a7e3d5246f862f53d205afda57fd943cfff4406a59fa2696999b1743dc66000000000000000100000000000000010000000000000020a88fc00e48cff7ada818659ce1afb1d48fbf00ea30b15d29f469922cbe8e2d8c000000000000000100000000000000010000000000000020e7444cc161f3e7f01cf05762fb0fb97caf4bc92619aabc44b759df970816cdad0000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000270000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000002700000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020b138ffae81bc200f061c2ab67715620d7b7abcbfba5efe2efa6264f94ef51b1100000000000000010000000000000000000000000000002044df9f5110073b3f1ffe881eae3bac9162053ab186cde304268de14c32095bba0000000000000001000000000000000000000000000000202f5d2b0dcf4bc4cc6aaeaf0b370ed5744b17239bc12f2916ecbc735ffffed915000000000000000100000000000000010000000000000020738ec93c8a9b7a0f5985915570b5f09db8fea468f04aef909e23d781767e0ee800000000000000010000000000000001000000000000002080f4c94164dc4597576888e1e7dfeeb82efbc11ac8b5ecc2b2df1058b8fa2b0500000000000000010000000000000000000000000000002040fcfc6bb63dbae33d624e3777a816b50ebb7a75c3788096fb31802eed5badf20000000000000001000000000000000100000000000000203ac8349c8cd08158635f258b4de10a0c52964b1e02dabaa9528080ffa20ac49e00000000000000710000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020cb320b710908037368cfddfb964289f3a40a24e6f3f27a80df5c67f40179b5e000000000000000010000000000000001000000000000002084cc04492d17a5edb263d9419913adcdd2a248cbccea218baca50c1e640d6302000000000000000100000000000000010000000000000020b4894900c33f5635d85562ebbda7805f0ac1d98ae53665e714382ea448ac52c20000000000000001000000000000000100000000000000201ddaf21874d2f1dceb73b2bd9c919f8080291efd13ced9f813727e4f480d6481000000000000000100000000000000000000000000000020484695c1718ea9babdf0da4a169839654a70d31dfb7bfa030bd34c4fd296f173000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000071000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000000000000000000002006799f797656e0505ea9aa0a535611f5ea743079e75576d2d53744c897f84ed70000000000000001000000000000000100000000000000205f667a6c0717dc4c601a1184bd0891be7afdc355fe30045920dae63e1f3c856e0000000000000001000000000000000100000000000000200755751b5c06801532af40f5137b978866beb2f616a3d040c4a46f352c038982000000000000000100000000000000010000000000000020aef86b1c25b74932f43f0295cd7c5728d8beb0c22d00656fa8fddbeccc1fc88d000000000000000100000000000000000000000000000020eed5635aa9fe26e55ac534a89c39cf891254e6457318ced7e38ad88fc125ecc7000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000710000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000007100000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d0000000000000007000000000000000100000000000000000000000000000020205ab1bf21fb0168bf5748b6e174de4555503c40e6d52b3821b5370aac0b0e4700000000000000010000000000000001000000000000002011b7f140ef09eef7538363306696405c4689008ce8490adf33f20f762f28539a00000000000000010000000000000001000000000000002071aa0b28d4c939a843faaecd9b982f474a73bc624ea848b3a9684b03b7cc50e700000000000000010000000000000001000000000000002089d96d9f124e0114712142e432156e3f28d1d69fb964225488694ab55328440b0000000000000001000000000000000000000000000000205f345c922e75b5ee09f6a30d4e99bc3797063459fe2e79c3075e31feffa4522f000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb900000000000000680000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020867251af4b6d29ac71995e022b966b472192d5a1d90690e4af5514a68ce8b565000000000000000100000000000000010000000000000020ca6c56e94dc3db3569b8aa66acc2394bd332e25aca38585f988144d360a7d0d30000000000000001000000000000000100000000000000204bb79970c2fb9ceeb2b3b825d98db63307bfbd367bb0eb605f16caa342d20f42000000000000000100000000000000000000000000000020c897f9cc214e1d82ae3fa75be40cec804be624b41c23e139bfad78e7e7d5fc3b000000000000000100000000000000010000000000000020cca38bcaaeed86d1c037ddb148bba22f6b95749f7f352486d9b2248d154972a4000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000068000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000001000000000000002039a27cc84cea9e85fa67f5248d96cc688de59a7d210956775502db27f8f443ff0000000000000001000000000000000100000000000000209a0722187a4b5424088f7a2e0ef119365189add036f54ccfbf7f3a122c00608d0000000000000001000000000000000100000000000000203d3437767a18c76c6b3ce58e0eaba9f957fb31192a19e2e3adf0c19d5ac4cda30000000000000001000000000000000000000000000000207fadb498e4408564c5da8cdaf1ddd40a060ac7be00e86d18a70cff218a853e5400000000000000010000000000000001000000000000002015dc39279a52d41ddbcaf227c199cbd51b1f711d661184752155a6495562235a000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000680000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000006800000000000000202ee0129a922010917576f663d6c73b1430cbb8bb37e8bfed7765014f0f613e7d00000000000000070000000000000001000000000000000100000000000000202a6a70840616ebfb5d1638e323b8f43a6a377eab9d3eaa3991cd39d12667f3be0000000000000001000000000000000100000000000000202780d1d9a2c7592a41e6a59139511ee2aef0d99d9db23fe438898262ea68f128000000000000000100000000000000010000000000000020bd214e04a0d15a2b5ac00a7ad42151c6d124291cbcf919f2a8b5311fd49008470000000000000001000000000000000000000000000000207a18ca5e193aa28605c4cd2e9b219710808aed7388ffc2616a116a897b71ab510000000000000001000000000000000100000000000000205c412ce971308b3c81ea6b705658f52dec02ecb3332ae0a2ccd740263bcc7a7b000000000000000100000000000000000000000000000020cf62a06f1c784f4af093568172baed0598d6461a229b745b5fee5352495cbcca0000000000000001000000000000000000000000000000200cbeca967fd610bf4815624670f4e5d60873e1f1b961ec426e93a229cb806fb90000000000000078000000000000005b0000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe00000000000000070000000000000001000000000000000000000000000000205aec0d3335169cf580f7505e7c4cd7cc24c27e4390fdb239fd735df0807599f600000000000000010000000000000000000000000000002098d50afb5cec089047d465c257f6f4f67eb2b1f3f3db3ea9c04acdfb6b594c6800000000000000010000000000000001000000000000002015773bcfd66536eea7acbaae25c30db476b28a3f1319614f1cc53428c222a6a2000000000000000100000000000000000000000000000020117c170cc0d4c56447da1eabb6ef154ea6c4e377a1aa5cd346b12e7de0586b34000000000000000100000000000000000000000000000020abd064ff49887f96babfd46cd68124e8258009456052f82c6f841ed3333cea4e000000000000000100000000000000010000000000000020e34f236cd38596d429603de46eb5d6aeac840855619c4c9bdd620fe41275334b00000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000001b00000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000000000000000000020c8fbd2629d514dab2cbce9e4ae83462fcc6774e941e9585c4a8ddabdbfa90577000000000000000100000000000000000000000000000020fd53cfc0780c4cc2dfd4b382bb68e4cf47711ab6ea93dfc92bff0f885acda1e10000000000000001000000000000000100000000000000203c59224dfa1f02358d3ce793ac666f8b9487e65fd92a19d6ae5b58ffadb40bac00000000000000010000000000000000000000000000002056d53e1552c97d45efe7b3bd26f642633292b8a3481be3d7c021602bb51e0d7e00000000000000010000000000000000000000000000002093bd1f00893ff9e252007222a4d57a16e3aaecfd947f7b9e377dd265ffa0358f000000000000000100000000000000010000000000000020561e8e49d509154002e334c20d827875059af43fbbd69612622be05df2b019da000000000000001b00000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b8930000000000000005000000000000000100000000000000000000000000000020a9d575a765685ebfd9f2e6d86e097bb50fe939759709ce22edad33490bad713e000000000000000100000000000000000000000000000020937a6afa565f265504600456e86163bee3158083e484ac73de8fbe12ec3c95d70000000000000001000000000000000100000000000000201d644d71a3c2a5baea02720e1965f5c4bb866f3546c28496338095e44181a1800000000000000001000000000000000000000000000000209e2fb1bd7e772c2ef8b3847b057de145a6afb5adf66440f0813cd95b9bc5f90f00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f3000000000000005d0000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe00000000000000070000000000000001000000000000000000000000000000206061f85087ac026822c8c6ab57840624bb6df58ff9b8b57614c153579a74219e00000000000000010000000000000001000000000000002035bc263cfd2b97dd0a8d24f53df8168c4fbea500ed4242ae583cbebc0a6e7a00000000000000000100000000000000000000000000000020b7e2c56261281c47cc6a1730563e59a5e33b5698094865fa5de7a3860bbca5c3000000000000000100000000000000000000000000000020117c170cc0d4c56447da1eabb6ef154ea6c4e377a1aa5cd346b12e7de0586b34000000000000000100000000000000000000000000000020abd064ff49887f96babfd46cd68124e8258009456052f82c6f841ed3333cea4e000000000000000100000000000000010000000000000020e34f236cd38596d429603de46eb5d6aeac840855619c4c9bdd620fe41275334b00000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000001d00000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000000000000000000020412571a55095270d685bcb09f282bf29fdfcf6798b24e86864619fc006a13e390000000000000001000000000000000100000000000000206c7fe6075a2295ea07b0f2815f314701c1855f0171f1451c1534412020472a020000000000000001000000000000000000000000000000204b819fe281e85642646916125b6160c384e5d4dc79c677ae533d58cf83beefb700000000000000010000000000000000000000000000002056d53e1552c97d45efe7b3bd26f642633292b8a3481be3d7c021602bb51e0d7e00000000000000010000000000000000000000000000002093bd1f00893ff9e252007222a4d57a16e3aaecfd947f7b9e377dd265ffa0358f000000000000000100000000000000010000000000000020561e8e49d509154002e334c20d827875059af43fbbd69612622be05df2b019da000000000000001d00000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b89300000000000000050000000000000001000000000000000000000000000000206d8dcdeb6bc7b6e5ec214f43e0bef2f78bc11e4a948b30852760e328ea1605a900000000000000010000000000000001000000000000002057ba129bae8250be11b8ef0ca4f6b99ce552fe8a57fc34467f8b469995fca00c0000000000000001000000000000000000000000000000209562c0f996b1a2fa0659b9d4063818df0a46e090cb6c622aa3191cc4ba2386b40000000000000001000000000000000000000000000000209e2fb1bd7e772c2ef8b3847b057de145a6afb5adf66440f0813cd95b9bc5f90f00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f3000000000000007b0000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000000000000000000020afe376b07715fa07f5bbfd62c4bba956114b291f3d224c464cf8bf20120c8cec000000000000000100000000000000000000000000000020f6d5a463bbb0a73a9a61ebd810ea985d27eb7e2fa406d039d43f6257a2010243000000000000000100000000000000010000000000000020729b12088efe2e8116ebb2cd4846fc2a276838a6e83690c6f481dc8583b060a300000000000000010000000000000000000000000000002034ee0063e0f3e2c387de8e07e0faf6210500285cf7dd65f7f099bac3e4df87e500000000000000010000000000000000000000000000002048316aff2ac932e667717670ab3529a8d92d5dbbb3cef3caecd037647159ebd300000000000000010000000000000000000000000000002069f2b2bef63d46c56e2aff6004f910949758c752bbce0f7bfa10638e327881f400000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000003b00000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f7000000000000000600000000000000010000000000000000000000000000002024c5f5c33b0b60cc454aa7be23f12fe1b9f9951c5de2d77975692a338a1d3ec80000000000000001000000000000000000000000000000201bfa05ecaf27f7e13c1de6ea6f28fb1dd0659291de5449096cfa9ad0e23196a8000000000000000100000000000000010000000000000020bb82c6d7233771dd6d82915bc338643a78182b31c871117ab88551300c5812b10000000000000001000000000000000000000000000000206d9466490f7a354ba312a54733cdf0c7068effff9ce1188478bc77942bb7fc53000000000000000100000000000000000000000000000020c5505fdbeca3e6bd0ea4f41a0f376ee34b35fe16baea6e452cd3c7d6768184f0000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000001b00000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b8930000000000000005000000000000000100000000000000000000000000000020a9d575a765685ebfd9f2e6d86e097bb50fe939759709ce22edad33490bad713e000000000000000100000000000000000000000000000020937a6afa565f265504600456e86163bee3158083e484ac73de8fbe12ec3c95d70000000000000001000000000000000100000000000000201d644d71a3c2a5baea02720e1965f5c4bb866f3546c28496338095e44181a1800000000000000001000000000000000000000000000000209e2fb1bd7e772c2ef8b3847b057de145a6afb5adf66440f0813cd95b9bc5f90f00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f300000000000000520000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000010000000000000020468bf95a93e5b32db604e10f5be2b2a570cd08cd3c67c18fd60aa8f2e61778b40000000000000001000000000000000000000000000000204b3b34f4798a8440de8549b76fe35491af86f335a13eee173a203221e46ea0680000000000000001000000000000000100000000000000208976e4be7c19020457e59334000621a40ff508f226584783ab19bf386a46b64d000000000000000100000000000000010000000000000020d0e9867221bd5537fa01926bc0f3c292909077d01e79a6316f9c3565a4810334000000000000000100000000000000000000000000000020abd064ff49887f96babfd46cd68124e8258009456052f82c6f841ed3333cea4e000000000000000100000000000000010000000000000020e34f236cd38596d429603de46eb5d6aeac840855619c4c9bdd620fe41275334b00000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000001200000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f700000000000000060000000000000001000000000000000100000000000000201184ef183bad74923b34033210e19f29f0ae26b1b33cd3122e478359fd45f89f000000000000000100000000000000000000000000000020e706dae44aff0564e538ec9cc80da2da921fa166b9c667a5410698bc02b40e2700000000000000010000000000000001000000000000002051674c68b6b6a55f3f91adf242321e1d3da47838a74be7536f675533333e42a0000000000000000100000000000000010000000000000020a31dc88707744214d54f9c8108474f617c0344f1f1f9bfed63f368598e405eb700000000000000010000000000000000000000000000002093bd1f00893ff9e252007222a4d57a16e3aaecfd947f7b9e377dd265ffa0358f000000000000000100000000000000010000000000000020561e8e49d509154002e334c20d827875059af43fbbd69612622be05df2b019da000000000000001200000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b89300000000000000050000000000000001000000000000000100000000000000207eadc6995ca008150482703f134f349657dbe818978458d9686b369d224ad1550000000000000001000000000000000000000000000000207115746818b0050db5b18ae5951096ff5c5d516aa4fb4c28ea91ca4f853db970000000000000000100000000000000010000000000000020d151125856a9846bd7412a70749a6b1f21aa215e2c42ca1fa4d79739b9183654000000000000000100000000000000010000000000000020c36aefd79dad8645dfb14e40698462ce6783af41b84398cf29a85f6b56d9c3fe00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f300000000000000120000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000010000000000000020ffd8c2064262f3f0f1a403944154a50cfd52f7b8ea70190c1a3a2fa64c17a8b700000000000000010000000000000000000000000000002019f4b1cbad3a275822cf7b06a6e30ddb58984039965670158b65475c55ae7b22000000000000000100000000000000010000000000000020ed5c0c913a696d4fc36995b49adb98793fbdc75deeab48c0b474a117efc2b6bb0000000000000001000000000000000100000000000000201f7f35161a08c3ce3297695032655d42368e84c81f094c9353c03285e552446e000000000000000100000000000000000000000000000020191e7831d1e8586bc4af5d49625fea5f677bc8dc91da26cf372f455ca0c3da030000000000000001000000000000000100000000000000205f07d8c8d032c001837b7bbcf14619856fe91011d5aff21fccda9a13597afcb000000000000000010000000000000001000000000000002028d8a0c369da9999b54e52cac432245cb8c71873c1bdb1486a877fdce8f5f4ff000000000000001200000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f700000000000000060000000000000001000000000000000100000000000000201184ef183bad74923b34033210e19f29f0ae26b1b33cd3122e478359fd45f89f000000000000000100000000000000000000000000000020e706dae44aff0564e538ec9cc80da2da921fa166b9c667a5410698bc02b40e2700000000000000010000000000000001000000000000002051674c68b6b6a55f3f91adf242321e1d3da47838a74be7536f675533333e42a0000000000000000100000000000000010000000000000020a31dc88707744214d54f9c8108474f617c0344f1f1f9bfed63f368598e405eb700000000000000010000000000000000000000000000002093bd1f00893ff9e252007222a4d57a16e3aaecfd947f7b9e377dd265ffa0358f000000000000000100000000000000010000000000000020561e8e49d509154002e334c20d827875059af43fbbd69612622be05df2b019da000000000000001200000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b89300000000000000050000000000000001000000000000000100000000000000207eadc6995ca008150482703f134f349657dbe818978458d9686b369d224ad1550000000000000001000000000000000000000000000000207115746818b0050db5b18ae5951096ff5c5d516aa4fb4c28ea91ca4f853db970000000000000000100000000000000010000000000000020d151125856a9846bd7412a70749a6b1f21aa215e2c42ca1fa4d79739b9183654000000000000000100000000000000010000000000000020c36aefd79dad8645dfb14e40698462ce6783af41b84398cf29a85f6b56d9c3fe00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f3000000000000002e0000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe000000000000000700000000000000010000000000000001000000000000002017eac69bdc38aa14f15d67868c4fa45bfadd42415848dce58fc913abc8806dc2000000000000000100000000000000000000000000000020174e9dec632104506b2a7a2b22156cb03f6a02ed35f0c146d6c39d18bdb989cb00000000000000010000000000000000000000000000002028921cc908fc6f45669cb85636cb19ed07751b63c10070e499ec563d290cf2e40000000000000001000000000000000000000000000000209d209fc3f90c6426265e47c89c963bb6fe05e05f0f7ce5be98239a5b7f5c1a3900000000000000010000000000000001000000000000002089c584e6019abf5295c24cc7c5347bce9d8a69e599062588a9308149f83e95fd0000000000000001000000000000000000000000000000205adb9aebbffe3cd8200fbd8b1da579960d8844069ce8920a1343f3d8c48b7bfc00000000000000010000000000000001000000000000002028d8a0c369da9999b54e52cac432245cb8c71873c1bdb1486a877fdce8f5f4ff000000000000002e00000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000010000000000000020ac13b2d49f41036c0f67abc25acdaf6daba872b440e1485b1c9d54ab2929b3aa000000000000000100000000000000000000000000000020e85d9feb63515e2f8b87636de1d40df44bd82c81dd63b2210ab8837b2f7d4375000000000000000100000000000000000000000000000020567c45887d744179c481988b026eb6fade0c872d8fe8126e8496c8a536f0bb23000000000000000100000000000000000000000000000020bb4f5a180f26eb7dd9d6c1b7357041cd85ce4cdb1ae3c965bbb530394a6cdb6d000000000000000100000000000000010000000000000020aa190a7636f9917a9691ff309a2844cfc4aac3e251781f1f0e7c63623540714a000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000000e00000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b8930000000000000005000000000000000100000000000000010000000000000020de8f4b83c4ef8ad99c836e5c4376268b2120e96b4f51511efab0f70d12361a250000000000000001000000000000000000000000000000207c6e86606677bf3e70bfa6940c8ff5d46fe2064bd193bf1009f7f2a27b9f94aa0000000000000001000000000000000000000000000000204e7e2fe1621d5b523d51298ffea591b8ada737e3ffc38a3e28fb1abbe4bad47f000000000000000100000000000000000000000000000020676b9b69dbb0335c8ffc750e47b9002e096de3b682b79a0809bb8cd5020a5c120000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d8000000000000006a0000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000010000000000000020b6c130025d8a678808198cef2806c4dda6651e840b26e9e18212eb166d1e9029000000000000000100000000000000000000000000000020d2a2f545bacaff22ea61988c01df147e9af4528d59918e5a881a9f769cddabe4000000000000000100000000000000010000000000000020fe4cb80d7963d1a7b2b513a9e6f097c5767bf79ef141b220b9bf637477ec0b3c00000000000000010000000000000000000000000000002086968b78264832f401e50405cec5cfb99218e7e056e02b4d24bfff31e90892a7000000000000000100000000000000010000000000000020522bf3cf53240bf6d14a46e8fd9b38443eaab67e1a6a827c2608b577701babe100000000000000010000000000000000000000000000002069f2b2bef63d46c56e2aff6004f910949758c752bbce0f7bfa10638e327881f400000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000002a00000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000010000000000000020c81914a825445780e87e562e1ee2a9f558fe8593726fb358dfe7b05c3f3a1c88000000000000000100000000000000000000000000000020adc1f55eaf2be34a19036c594b47152a5cd8af88f7ea333393d5b3d18f49775000000000000000010000000000000001000000000000002069f48946897b62c62586bf42e0d8d56cdb0900cad1b1afdd83921875a89087d6000000000000000100000000000000000000000000000020bb4f5a180f26eb7dd9d6c1b7357041cd85ce4cdb1ae3c965bbb530394a6cdb6d000000000000000100000000000000010000000000000020aa190a7636f9917a9691ff309a2844cfc4aac3e251781f1f0e7c63623540714a000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000000a00000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b893000000000000000500000000000000010000000000000001000000000000002082a030df8809d68054fda72fb33671ce9978fc4739b48fc483d8f1bb0920d16b000000000000000100000000000000000000000000000020b60164232206ffe0dde93a8d5ff6e11cac98b23e616d034908fbc37735e37e43000000000000000100000000000000010000000000000020cb46828135062d95c77a8184050a77537dd54b40b4a65b59197e170c577e7309000000000000000100000000000000000000000000000020676b9b69dbb0335c8ffc750e47b9002e096de3b682b79a0809bb8cd5020a5c120000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d800000000000000010000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000000000000000000020f1a7c5d6e07283fceac6b06de347abf710543f327192fd8ae4755ace11b1d5720000000000000001000000000000000100000000000000200422bd6c9fd876fc7a495ab450493fee011b5c8538e4006990a7e7f77dd81d330000000000000001000000000000000100000000000000203231373985c731dc714de4a2b03cf381d8724927bfb1cb6a58024edf11873cba00000000000000010000000000000001000000000000002095f4234017c7a78c5ed078740e89362af8c99771d4cc60febfa6394b2913b9110000000000000001000000000000000100000000000000202508e5fb00289c04a04868dd9a8e650164a89dac9743cf12cc57e4ade9d9f1590000000000000001000000000000000100000000000000205f07d8c8d032c001837b7bbcf14619856fe91011d5aff21fccda9a13597afcb000000000000000010000000000000001000000000000002028d8a0c369da9999b54e52cac432245cb8c71873c1bdb1486a877fdce8f5f4ff000000000000000100000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000000000000000000020c83bb151d04b94c2f0c58e4d7c173f0cbbe1e22c942d0cd63b93cf93a5870f2e000000000000000100000000000000010000000000000020ea8bac70e77069f4233ca6db83710bdea6cbc05b367e424d6005513567f4cb8e000000000000000100000000000000010000000000000020d92c2ca99c237bb5c8cf19fcba261cfb217560b8d62dc8ad3cbb21b90b88897f00000000000000010000000000000001000000000000002030116ed526a9a272ab37478970a12458e07b270ff594e7068a36ed8c06edcd36000000000000000100000000000000010000000000000020fc8c882597983ad3169a658b567ca73ade33f768fecca21826b7fbe16b4cc82e000000000000000100000000000000010000000000000020561e8e49d509154002e334c20d827875059af43fbbd69612622be05df2b019da000000000000000100000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b8930000000000000005000000000000000100000000000000000000000000000020c75c3594f60695ba625ac759fd919c488f6fa21e40c0c0aced786fcce840a72000000000000000010000000000000001000000000000002096221dffc08ee08ad7381bfd9d88278ffd23cae14ae24b720f5553a9a5e0b1e20000000000000001000000000000000100000000000000204ece1523b41d3acdd62d941f79a184e58f321c32583ab228f101ad36aacbea49000000000000000100000000000000010000000000000020b406364799e599e8956dddafdf979d5726d49f1b43921cb68fcd71e95b34642a0000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d8000000000000005f0000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe000000000000000700000000000000010000000000000000000000000000002007b11e26721e21e4135caed18e99bde7c658bb53b8c4a5c355ff45b04b14d852000000000000000100000000000000000000000000000020d94a70c429f933aae2501500f9478fe5deadcf5025156fe67682eec65fc9b7c9000000000000000100000000000000000000000000000020b7e2c56261281c47cc6a1730563e59a5e33b5698094865fa5de7a3860bbca5c3000000000000000100000000000000000000000000000020117c170cc0d4c56447da1eabb6ef154ea6c4e377a1aa5cd346b12e7de0586b34000000000000000100000000000000000000000000000020abd064ff49887f96babfd46cd68124e8258009456052f82c6f841ed3333cea4e000000000000000100000000000000010000000000000020e34f236cd38596d429603de46eb5d6aeac840855619c4c9bdd620fe41275334b00000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000001f00000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000000000000000000020503f8020d78b15ad16ca8d4d4915385b86c3ed274626d2376b96fda28975cee8000000000000000100000000000000000000000000000020c245b850eec4e6901bf46304ab90332aa6c45933b8f0b7310d3c284389febd980000000000000001000000000000000000000000000000204b819fe281e85642646916125b6160c384e5d4dc79c677ae533d58cf83beefb700000000000000010000000000000000000000000000002056d53e1552c97d45efe7b3bd26f642633292b8a3481be3d7c021602bb51e0d7e00000000000000010000000000000000000000000000002093bd1f00893ff9e252007222a4d57a16e3aaecfd947f7b9e377dd265ffa0358f000000000000000100000000000000010000000000000020561e8e49d509154002e334c20d827875059af43fbbd69612622be05df2b019da000000000000001f00000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b89300000000000000050000000000000001000000000000000000000000000000208d90b6ac15c8761491565219e912a94ee7aa75d5571777cf4cf30d5bc0dedc69000000000000000100000000000000000000000000000020773fef777c3fc91d4537d35597e3266a9123c3f5d4571760e30964d8914012ce0000000000000001000000000000000000000000000000209562c0f996b1a2fa0659b9d4063818df0a46e090cb6c622aa3191cc4ba2386b40000000000000001000000000000000000000000000000209e2fb1bd7e772c2ef8b3847b057de145a6afb5adf66440f0813cd95b9bc5f90f00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f3000000000000002c0000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe000000000000000700000000000000010000000000000001000000000000002089e92ff4585d582f07fbbf725bf63a7f7b6eaa8b8a5520a46da65cf81de675ea0000000000000001000000000000000100000000000000201af5c8e18513dd78629af2c6fbb8dff45d76eefd40c050b9ebfc8ba67729246900000000000000010000000000000000000000000000002028921cc908fc6f45669cb85636cb19ed07751b63c10070e499ec563d290cf2e40000000000000001000000000000000000000000000000209d209fc3f90c6426265e47c89c963bb6fe05e05f0f7ce5be98239a5b7f5c1a3900000000000000010000000000000001000000000000002089c584e6019abf5295c24cc7c5347bce9d8a69e599062588a9308149f83e95fd0000000000000001000000000000000000000000000000205adb9aebbffe3cd8200fbd8b1da579960d8844069ce8920a1343f3d8c48b7bfc00000000000000010000000000000001000000000000002028d8a0c369da9999b54e52cac432245cb8c71873c1bdb1486a877fdce8f5f4ff000000000000002c00000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000010000000000000020fb791ffc22394649f5227e0ec103fb03fff37bcddb09e5e76276c09655c7fcab000000000000000100000000000000010000000000000020e997ea5b7a7d7f9996d9c7728fb106ba9856ed292628202c4e6596582b410fa5000000000000000100000000000000000000000000000020567c45887d744179c481988b026eb6fade0c872d8fe8126e8496c8a536f0bb23000000000000000100000000000000000000000000000020bb4f5a180f26eb7dd9d6c1b7357041cd85ce4cdb1ae3c965bbb530394a6cdb6d000000000000000100000000000000010000000000000020aa190a7636f9917a9691ff309a2844cfc4aac3e251781f1f0e7c63623540714a000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000000c00000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b89300000000000000050000000000000001000000000000000100000000000000201d90e9ab63a4ac8cf858080bb3689a27376376a70ebe97ab6affbd2c4b27c219000000000000000100000000000000010000000000000020ea8dad601197a18c3d2c2d22a4b8359f5b9c2885a61421537363980b82ed6e8d0000000000000001000000000000000000000000000000204e7e2fe1621d5b523d51298ffea591b8ada737e3ffc38a3e28fb1abbe4bad47f000000000000000100000000000000000000000000000020676b9b69dbb0335c8ffc750e47b9002e096de3b682b79a0809bb8cd5020a5c120000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d8000000000000007e0000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000010000000000000020f3e155be9af5b04464a40e781139221214b6fd01541245758f775e85604c1d440000000000000001000000000000000000000000000000208a3d07cfe26342bf84f1b087c20d593200b6504fcd329ac6f26543643c3572750000000000000001000000000000000000000000000000209625e5ff3d74f577f1e8b53ffc880d7a9e3b991e2f8bae6dc35eaf4f93b3315f00000000000000010000000000000000000000000000002034ee0063e0f3e2c387de8e07e0faf6210500285cf7dd65f7f099bac3e4df87e500000000000000010000000000000000000000000000002048316aff2ac932e667717670ab3529a8d92d5dbbb3cef3caecd037647159ebd300000000000000010000000000000000000000000000002069f2b2bef63d46c56e2aff6004f910949758c752bbce0f7bfa10638e327881f400000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000003e00000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000010000000000000020a80685be55e7def2df17b0574bed2a94c17a30a37754904f01e6cc7d07273f580000000000000001000000000000000000000000000000201e9fc6b4ac4fd9cbe77018d1deca0d5f0fa6be029d90a928252dba6c759f7c7a000000000000000100000000000000000000000000000020422bb341469f1780f456ab99dd657d890e0ac86e839d1919c0c871dd8bb463d80000000000000001000000000000000000000000000000206d9466490f7a354ba312a54733cdf0c7068effff9ce1188478bc77942bb7fc53000000000000000100000000000000000000000000000020c5505fdbeca3e6bd0ea4f41a0f376ee34b35fe16baea6e452cd3c7d6768184f0000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000001e00000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b8930000000000000005000000000000000100000000000000010000000000000020d0fd081654c8aa4cf2c84a303be9ad404ff9321e11ed279911842c7712e3bf05000000000000000100000000000000000000000000000020773fef777c3fc91d4537d35597e3266a9123c3f5d4571760e30964d8914012ce0000000000000001000000000000000000000000000000209562c0f996b1a2fa0659b9d4063818df0a46e090cb6c622aa3191cc4ba2386b40000000000000001000000000000000000000000000000209e2fb1bd7e772c2ef8b3847b057de145a6afb5adf66440f0813cd95b9bc5f90f00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f300000000000000130000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe000000000000000700000000000000010000000000000000000000000000002084409188b65dd9604d22afd4a664aa0bcf5c8f33a05b11f700b292197276870100000000000000010000000000000000000000000000002019f4b1cbad3a275822cf7b06a6e30ddb58984039965670158b65475c55ae7b22000000000000000100000000000000010000000000000020ed5c0c913a696d4fc36995b49adb98793fbdc75deeab48c0b474a117efc2b6bb0000000000000001000000000000000100000000000000201f7f35161a08c3ce3297695032655d42368e84c81f094c9353c03285e552446e000000000000000100000000000000000000000000000020191e7831d1e8586bc4af5d49625fea5f677bc8dc91da26cf372f455ca0c3da030000000000000001000000000000000100000000000000205f07d8c8d032c001837b7bbcf14619856fe91011d5aff21fccda9a13597afcb000000000000000010000000000000001000000000000002028d8a0c369da9999b54e52cac432245cb8c71873c1bdb1486a877fdce8f5f4ff000000000000001300000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f700000000000000060000000000000001000000000000000000000000000000207ff021f07f5a82f2af15e41d39579befd26922c3707cb6b90e4693a28c89d468000000000000000100000000000000000000000000000020e706dae44aff0564e538ec9cc80da2da921fa166b9c667a5410698bc02b40e2700000000000000010000000000000001000000000000002051674c68b6b6a55f3f91adf242321e1d3da47838a74be7536f675533333e42a0000000000000000100000000000000010000000000000020a31dc88707744214d54f9c8108474f617c0344f1f1f9bfed63f368598e405eb700000000000000010000000000000000000000000000002093bd1f00893ff9e252007222a4d57a16e3aaecfd947f7b9e377dd265ffa0358f000000000000000100000000000000010000000000000020561e8e49d509154002e334c20d827875059af43fbbd69612622be05df2b019da000000000000001300000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b8930000000000000005000000000000000100000000000000000000000000000020c356c883ff5ffec5372cfe1b0e709631d90d2107e9f2891f0c2ce64b5b505c220000000000000001000000000000000000000000000000207115746818b0050db5b18ae5951096ff5c5d516aa4fb4c28ea91ca4f853db970000000000000000100000000000000010000000000000020d151125856a9846bd7412a70749a6b1f21aa215e2c42ca1fa4d79739b9183654000000000000000100000000000000010000000000000020c36aefd79dad8645dfb14e40698462ce6783af41b84398cf29a85f6b56d9c3fe00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f300000000000000600000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000010000000000000020048ffc878e877e49adf2a2aa911191c7d57f843173dafb031e80d29dd659c2c50000000000000001000000000000000100000000000000203c153481e2fb28abba1eb045c5872de7867c4da6e03ad309a1e10d882524a4ed00000000000000010000000000000001000000000000002046aa03ba8a9886a3f0aed110bc7bd5a800b3a0c72e0882d90a75488848fb444a00000000000000010000000000000001000000000000002043fd33e570512d1ec7c5a2d8d9e016f651663874b20ff2cfed24bc514da4efcb000000000000000100000000000000010000000000000020522bf3cf53240bf6d14a46e8fd9b38443eaab67e1a6a827c2608b577701babe100000000000000010000000000000000000000000000002069f2b2bef63d46c56e2aff6004f910949758c752bbce0f7bfa10638e327881f400000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000002000000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f7000000000000000600000000000000010000000000000001000000000000002042a82350d26acba6691b326c15636cb755104006b5d341f998acda6c10c81d2e0000000000000001000000000000000100000000000000205454d545f19342284d07b287f7279f0663887e4aa7f92acf63677ad07a2e576800000000000000010000000000000001000000000000002013e785e18a24d136cd6ab95d4bd71df18d225451d041c1a5b3774ecb0596f08600000000000000010000000000000001000000000000002008838d39ec562eab71e05ccb9d707477e4333bf52a9478716e77d269f0cda014000000000000000100000000000000010000000000000020aa190a7636f9917a9691ff309a2844cfc4aac3e251781f1f0e7c63623540714a000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000000000000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b89300000000000000050000000000000001000000000000000100000000000000202a17b1a6f155c5b6f4736035d75ec3a0f54add070a7ebdcc679218234feade3f00000000000000010000000000000001000000000000002096221dffc08ee08ad7381bfd9d88278ffd23cae14ae24b720f5553a9a5e0b1e20000000000000001000000000000000100000000000000204ece1523b41d3acdd62d941f79a184e58f321c32583ab228f101ad36aacbea49000000000000000100000000000000010000000000000020b406364799e599e8956dddafdf979d5726d49f1b43921cb68fcd71e95b34642a0000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d8000000000000003f0000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe00000000000000070000000000000001000000000000000000000000000000202bc97e6e1c27dfe52a47504d26e874913ef704aee0eb7537041654f7aa9c359100000000000000010000000000000000000000000000002046c7ca545ca2569f57f8698e628f2c35ba42042e3507a87102b2ba303bac043c0000000000000001000000000000000000000000000000203ce0d6af0b7fea7440278264dde3b7faa7338d64cd4f9e78def5bf514624e165000000000000000100000000000000000000000000000020962ba35cedafee3b867acfec185039aee289a4c66789c1406b399a3cde120bb10000000000000001000000000000000000000000000000204f2c990b2efc129bf5b5178763583755b59f44b45aa91e2d21892fb30f59ebdf0000000000000001000000000000000000000000000000205adb9aebbffe3cd8200fbd8b1da579960d8844069ce8920a1343f3d8c48b7bfc00000000000000010000000000000001000000000000002028d8a0c369da9999b54e52cac432245cb8c71873c1bdb1486a877fdce8f5f4ff000000000000003f00000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f7000000000000000600000000000000010000000000000000000000000000002001c9f6fb7d2d5899135d55226583e1acf1f37a6cfa643a6a9b582ca451c50b160000000000000001000000000000000000000000000000201e9fc6b4ac4fd9cbe77018d1deca0d5f0fa6be029d90a928252dba6c759f7c7a000000000000000100000000000000000000000000000020422bb341469f1780f456ab99dd657d890e0ac86e839d1919c0c871dd8bb463d80000000000000001000000000000000000000000000000206d9466490f7a354ba312a54733cdf0c7068effff9ce1188478bc77942bb7fc53000000000000000100000000000000000000000000000020c5505fdbeca3e6bd0ea4f41a0f376ee34b35fe16baea6e452cd3c7d6768184f0000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000001f00000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b89300000000000000050000000000000001000000000000000000000000000000208d90b6ac15c8761491565219e912a94ee7aa75d5571777cf4cf30d5bc0dedc69000000000000000100000000000000000000000000000020773fef777c3fc91d4537d35597e3266a9123c3f5d4571760e30964d8914012ce0000000000000001000000000000000000000000000000209562c0f996b1a2fa0659b9d4063818df0a46e090cb6c622aa3191cc4ba2386b40000000000000001000000000000000000000000000000209e2fb1bd7e772c2ef8b3847b057de145a6afb5adf66440f0813cd95b9bc5f90f00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f300000000000000770000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000000000000000000020157070aa3b4b2ba9d2da9658d51417ea4e85b423389df6b78373cb4d32129f97000000000000000100000000000000000000000000000020174122918306a895b7dca317d3f3a4930494e7229897667d4b06395bcd0eb9fd000000000000000100000000000000000000000000000020a45b8ef53d45b6e3a90bb8763a53beeac821059fc33602b8d1362f596e2bd81b000000000000000100000000000000010000000000000020112c2364e43f3f1054969d6d4cac83d5d2003a5a1dcb27b62871795005af3ac800000000000000010000000000000000000000000000002048316aff2ac932e667717670ab3529a8d92d5dbbb3cef3caecd037647159ebd300000000000000010000000000000000000000000000002069f2b2bef63d46c56e2aff6004f910949758c752bbce0f7bfa10638e327881f400000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000003700000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000000000000000000020b53f925bd62ba522748ac26afff5dde8debd3a5e70f850b0bfce12c1c84ebda30000000000000001000000000000000000000000000000207d0636feadeb48a4ed1bf79de1f384a00de7aad77601b72efdc798e10a70ae57000000000000000100000000000000000000000000000020d5bfe4372e7eca6eb201533a0e55526d2c937b7d9b288ed958a55e759201868c00000000000000010000000000000001000000000000002032001ae94e4bda6153b4388b21e2413e9cb17eecfa21be7afd2b39fec286c263000000000000000100000000000000000000000000000020c5505fdbeca3e6bd0ea4f41a0f376ee34b35fe16baea6e452cd3c7d6768184f0000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000001700000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b8930000000000000005000000000000000100000000000000000000000000000020b7b6e38156242525a08b887284578daa050b1228f0e544c23c726a2411dd1de600000000000000010000000000000000000000000000002026c4940e558d3e4b12b82d0f681bee119ead66c37e0891be106398f3cf09db510000000000000001000000000000000000000000000000206cd045d983b4126a87b7c4814223e855db6e7eda6d30b38003e7ad93cea1cef9000000000000000100000000000000010000000000000020c36aefd79dad8645dfb14e40698462ce6783af41b84398cf29a85f6b56d9c3fe00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f300000000000000070000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000000000000000000020357c339e74e7dda467996be86e472f0a9abb30f7edb90f0dece7f7e4c3febf4e000000000000000100000000000000000000000000000020add43efb76976b279d68d188be203aadb4e99ba4032e992e6c4b686b6f48167500000000000000010000000000000000000000000000002050bf81f56c9f182c6309ee50e28e87ff24ef1a9ae7592e5b73f5cfb6bf92244b00000000000000010000000000000001000000000000002095f4234017c7a78c5ed078740e89362af8c99771d4cc60febfa6394b2913b9110000000000000001000000000000000100000000000000202508e5fb00289c04a04868dd9a8e650164a89dac9743cf12cc57e4ade9d9f1590000000000000001000000000000000100000000000000205f07d8c8d032c001837b7bbcf14619856fe91011d5aff21fccda9a13597afcb000000000000000010000000000000001000000000000002028d8a0c369da9999b54e52cac432245cb8c71873c1bdb1486a877fdce8f5f4ff000000000000000700000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000000000000000000020cb7203fee52fc010561deb5cd86ac8e9a1f636750072fb73da4240e45cdd4f01000000000000000100000000000000000000000000000020c21ff070ddaa1e1011aee49c969226c4c737f9280869afbd8af4ebdeca0068e9000000000000000100000000000000000000000000000020f79f68c245a25558534328f907179db0e975ec353da7e91aca2894b4a4d0f65100000000000000010000000000000001000000000000002030116ed526a9a272ab37478970a12458e07b270ff594e7068a36ed8c06edcd36000000000000000100000000000000010000000000000020fc8c882597983ad3169a658b567ca73ade33f768fecca21826b7fbe16b4cc82e000000000000000100000000000000010000000000000020561e8e49d509154002e334c20d827875059af43fbbd69612622be05df2b019da000000000000000700000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b893000000000000000500000000000000010000000000000000000000000000002049c1995f648d3e042291611621bebf89011a04b6bfadc9a0a71bb6f3a7bfa342000000000000000100000000000000000000000000000020b7471941d11a0896d48c1222932ed56424a798cff532c025bc4731f96910fb3700000000000000010000000000000000000000000000002042b48c3932deab345a34655a3ebce45d7acbcb123c3b4161b8bcae4d81afcea3000000000000000100000000000000010000000000000020b406364799e599e8956dddafdf979d5726d49f1b43921cb68fcd71e95b34642a0000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d800000000000000380000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe00000000000000070000000000000001000000000000000100000000000000204e6dbf1f8cb18138e2f0a88b588aee3f0a68e408df9bfd12ce37e89eb80b79b7000000000000000100000000000000010000000000000020e9165bbb9049059f9475b25b7e2c56ef6827fc9d10b41d576c6dbf6310e956a6000000000000000100000000000000010000000000000020a732decfbed445f9226c8b8801bc4d85d1415c5a4e93714484d65ef3820d4dc4000000000000000100000000000000000000000000000020962ba35cedafee3b867acfec185039aee289a4c66789c1406b399a3cde120bb10000000000000001000000000000000000000000000000204f2c990b2efc129bf5b5178763583755b59f44b45aa91e2d21892fb30f59ebdf0000000000000001000000000000000000000000000000205adb9aebbffe3cd8200fbd8b1da579960d8844069ce8920a1343f3d8c48b7bfc00000000000000010000000000000001000000000000002028d8a0c369da9999b54e52cac432245cb8c71873c1bdb1486a877fdce8f5f4ff000000000000003800000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f700000000000000060000000000000001000000000000000100000000000000200284fc891b4c6b42cd4c0c2a6dcd5655d2b0808c75e100d88573d47a56e9f66b00000000000000010000000000000001000000000000002095a9e2ff01c9ec3c31608fac2bad1d98d046d63911881f1933a281f7cd9bde32000000000000000100000000000000010000000000000020bb82c6d7233771dd6d82915bc338643a78182b31c871117ab88551300c5812b10000000000000001000000000000000000000000000000206d9466490f7a354ba312a54733cdf0c7068effff9ce1188478bc77942bb7fc53000000000000000100000000000000000000000000000020c5505fdbeca3e6bd0ea4f41a0f376ee34b35fe16baea6e452cd3c7d6768184f0000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000001800000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b8930000000000000005000000000000000100000000000000010000000000000020d00575ae3727d2061079df580520d9a797cd9d952529f81afef713523dac6f00000000000000000100000000000000010000000000000020112ac177060220e43704d3e0888610177f455c0d250d239a9a2f9760ac9fc5610000000000000001000000000000000100000000000000201d644d71a3c2a5baea02720e1965f5c4bb866f3546c28496338095e44181a1800000000000000001000000000000000000000000000000209e2fb1bd7e772c2ef8b3847b057de145a6afb5adf66440f0813cd95b9bc5f90f00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f300000000000000060000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe00000000000000070000000000000001000000000000000100000000000000206b814440d86cb0dbb4a7b3348f8a9394ee0d62bc5008b139e00daea3dec87f83000000000000000100000000000000000000000000000020add43efb76976b279d68d188be203aadb4e99ba4032e992e6c4b686b6f48167500000000000000010000000000000000000000000000002050bf81f56c9f182c6309ee50e28e87ff24ef1a9ae7592e5b73f5cfb6bf92244b00000000000000010000000000000001000000000000002095f4234017c7a78c5ed078740e89362af8c99771d4cc60febfa6394b2913b9110000000000000001000000000000000100000000000000202508e5fb00289c04a04868dd9a8e650164a89dac9743cf12cc57e4ade9d9f1590000000000000001000000000000000100000000000000205f07d8c8d032c001837b7bbcf14619856fe91011d5aff21fccda9a13597afcb000000000000000010000000000000001000000000000002028d8a0c369da9999b54e52cac432245cb8c71873c1bdb1486a877fdce8f5f4ff000000000000000600000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f7000000000000000600000000000000010000000000000001000000000000002048233e132e19b0a345b12467e9b8bd638243d05979e444ca9eb49f1a5aaa33c1000000000000000100000000000000000000000000000020c21ff070ddaa1e1011aee49c969226c4c737f9280869afbd8af4ebdeca0068e9000000000000000100000000000000000000000000000020f79f68c245a25558534328f907179db0e975ec353da7e91aca2894b4a4d0f65100000000000000010000000000000001000000000000002030116ed526a9a272ab37478970a12458e07b270ff594e7068a36ed8c06edcd36000000000000000100000000000000010000000000000020fc8c882597983ad3169a658b567ca73ade33f768fecca21826b7fbe16b4cc82e000000000000000100000000000000010000000000000020561e8e49d509154002e334c20d827875059af43fbbd69612622be05df2b019da000000000000000600000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b89300000000000000050000000000000001000000000000000100000000000000205cd6f132532ffd62306f15011a420a0b8ec62efc0e19d635fbe837b20d1f6383000000000000000100000000000000000000000000000020b7471941d11a0896d48c1222932ed56424a798cff532c025bc4731f96910fb3700000000000000010000000000000000000000000000002042b48c3932deab345a34655a3ebce45d7acbcb123c3b4161b8bcae4d81afcea3000000000000000100000000000000010000000000000020b406364799e599e8956dddafdf979d5726d49f1b43921cb68fcd71e95b34642a0000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d800000000000000630000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe00000000000000070000000000000001000000000000000000000000000000208874cc67226c4b2c45f1cd4547eb9ee1ef2d778c78dbae9a512c926c91fc42250000000000000001000000000000000000000000000000209bb03b71f8958bc746c557f0f8faf121940b3b5bcb04a7ed2e5343acd64d062400000000000000010000000000000001000000000000002046aa03ba8a9886a3f0aed110bc7bd5a800b3a0c72e0882d90a75488848fb444a00000000000000010000000000000001000000000000002043fd33e570512d1ec7c5a2d8d9e016f651663874b20ff2cfed24bc514da4efcb000000000000000100000000000000010000000000000020522bf3cf53240bf6d14a46e8fd9b38443eaab67e1a6a827c2608b577701babe100000000000000010000000000000000000000000000002069f2b2bef63d46c56e2aff6004f910949758c752bbce0f7bfa10638e327881f400000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000002300000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000000000000000000020dc904301a3a730319cecc814c8c65fa219ce8d8092a23f13d9458125918898a7000000000000000100000000000000000000000000000020f067bfccbdc15e24f6e857e8fbdab2d4ecedb8c6aa15a2a0717c07eea62b306c00000000000000010000000000000001000000000000002013e785e18a24d136cd6ab95d4bd71df18d225451d041c1a5b3774ecb0596f08600000000000000010000000000000001000000000000002008838d39ec562eab71e05ccb9d707477e4333bf52a9478716e77d269f0cda014000000000000000100000000000000010000000000000020aa190a7636f9917a9691ff309a2844cfc4aac3e251781f1f0e7c63623540714a000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000000300000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b89300000000000000050000000000000001000000000000000000000000000000201336110f91f33c3f364d7ae79745ab074706829f1990aa15a5156c2b014ad96a0000000000000001000000000000000000000000000000200f27fddea6bb159e213c6edb71cefec5c18ec69adb31d5715312ce3405d664d30000000000000001000000000000000100000000000000204ece1523b41d3acdd62d941f79a184e58f321c32583ab228f101ad36aacbea49000000000000000100000000000000010000000000000020b406364799e599e8956dddafdf979d5726d49f1b43921cb68fcd71e95b34642a0000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d8000000000000004f0000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe00000000000000070000000000000001000000000000000000000000000000203d74cfa6ce8753c2314f744f87a56b6b108ecf65653caa2364a634d2b8851cf5000000000000000100000000000000000000000000000020eb6555b6c2a8565d28f8e09c107fbe6032aebd2eaac7fa32d82f49b0d087d1fb00000000000000010000000000000000000000000000002018508f563a07ec3c3507650251f0eef23b66d16d738f722bc8282a57ffb21dec0000000000000001000000000000000000000000000000205605f37a90437bfddedbdf2de353ae2e469b08b3a208b421026e44924f19d08b000000000000000100000000000000010000000000000020e571a03c8ba07fbb21c326d64891dcc277d09b2ce6b879007c30997bb5605a4b000000000000000100000000000000010000000000000020e34f236cd38596d429603de46eb5d6aeac840855619c4c9bdd620fe41275334b00000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000000f00000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000000000000000000020afc25536630b069a34435cc05318ddb953b9633a40eaba836178401e8bb052c300000000000000010000000000000000000000000000002021ea327632b6446a4aa123c2730e923343ffbcb6e5438fd52c99501c949fb18b000000000000000100000000000000000000000000000020140d8b2eab427236acae3996398960db371067a8f3cdc1c20d5914f41359c7a9000000000000000100000000000000000000000000000020543a8f359826fa3a987e94bf4b62785956e4a9d25036837a95569f62d41a3292000000000000000100000000000000010000000000000020fc8c882597983ad3169a658b567ca73ade33f768fecca21826b7fbe16b4cc82e000000000000000100000000000000010000000000000020561e8e49d509154002e334c20d827875059af43fbbd69612622be05df2b019da000000000000000f00000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b893000000000000000500000000000000010000000000000000000000000000002072d90abf523f26774741f850d36435a85517b60f12559e7c4108c551981a73220000000000000001000000000000000000000000000000207c6e86606677bf3e70bfa6940c8ff5d46fe2064bd193bf1009f7f2a27b9f94aa0000000000000001000000000000000000000000000000204e7e2fe1621d5b523d51298ffea591b8ada737e3ffc38a3e28fb1abbe4bad47f000000000000000100000000000000000000000000000020676b9b69dbb0335c8ffc750e47b9002e096de3b682b79a0809bb8cd5020a5c120000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d800000000000000450000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000000000000000000020bf15a32964fa49ccf957d8c7cce69c0fad6f70c4a1fbe27e3f3a52cdf2d00044000000000000000100000000000000010000000000000020ba9536d49b32f9e3c7e991e29b0bd02a5a02e28ce59fc14b2043f265e364a20b000000000000000100000000000000000000000000000020224fcfa2f025556b9ceebf913227cb4e52dafa048de2963f5f345b783587be03000000000000000100000000000000010000000000000020f3322c8cd2171da20bd4218e7860791c9a033371f045431933127e378d908b2a000000000000000100000000000000010000000000000020e571a03c8ba07fbb21c326d64891dcc277d09b2ce6b879007c30997bb5605a4b000000000000000100000000000000010000000000000020e34f236cd38596d429603de46eb5d6aeac840855619c4c9bdd620fe41275334b00000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000000500000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000000000000000000020f17e59a6a2f7fe5627ac0917e6fd673335773268c07775baf6b9f2e29eeb7f8a0000000000000001000000000000000100000000000000205c77f71bd3605e3927a4d46c159f0cd6cf57e7d539be80d007f3774d6102ad03000000000000000100000000000000000000000000000020f79f68c245a25558534328f907179db0e975ec353da7e91aca2894b4a4d0f65100000000000000010000000000000001000000000000002030116ed526a9a272ab37478970a12458e07b270ff594e7068a36ed8c06edcd36000000000000000100000000000000010000000000000020fc8c882597983ad3169a658b567ca73ade33f768fecca21826b7fbe16b4cc82e000000000000000100000000000000010000000000000020561e8e49d509154002e334c20d827875059af43fbbd69612622be05df2b019da000000000000000500000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b89300000000000000050000000000000001000000000000000000000000000000203b6a2e2877ee5fa68235db6d135c1857121d9d41acdcab0e497e1c8bc24fc16e000000000000000100000000000000010000000000000020ff55c769435380013cdb0bfb22ab501c554f4dc914c17c50183ef4785931b20d00000000000000010000000000000000000000000000002042b48c3932deab345a34655a3ebce45d7acbcb123c3b4161b8bcae4d81afcea3000000000000000100000000000000010000000000000020b406364799e599e8956dddafdf979d5726d49f1b43921cb68fcd71e95b34642a0000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d800000000000000620000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000010000000000000020fe1de043daa22da500ffdc5b720243832c0731a1aeed2bbeba5bf527981366240000000000000001000000000000000000000000000000209bb03b71f8958bc746c557f0f8faf121940b3b5bcb04a7ed2e5343acd64d062400000000000000010000000000000001000000000000002046aa03ba8a9886a3f0aed110bc7bd5a800b3a0c72e0882d90a75488848fb444a00000000000000010000000000000001000000000000002043fd33e570512d1ec7c5a2d8d9e016f651663874b20ff2cfed24bc514da4efcb000000000000000100000000000000010000000000000020522bf3cf53240bf6d14a46e8fd9b38443eaab67e1a6a827c2608b577701babe100000000000000010000000000000000000000000000002069f2b2bef63d46c56e2aff6004f910949758c752bbce0f7bfa10638e327881f400000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000002200000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000010000000000000020be724f0141ec45bb72784a388a07910a894a83065b9294b5a031d4a17c4194aa000000000000000100000000000000000000000000000020f067bfccbdc15e24f6e857e8fbdab2d4ecedb8c6aa15a2a0717c07eea62b306c00000000000000010000000000000001000000000000002013e785e18a24d136cd6ab95d4bd71df18d225451d041c1a5b3774ecb0596f08600000000000000010000000000000001000000000000002008838d39ec562eab71e05ccb9d707477e4333bf52a9478716e77d269f0cda014000000000000000100000000000000010000000000000020aa190a7636f9917a9691ff309a2844cfc4aac3e251781f1f0e7c63623540714a000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000000200000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b89300000000000000050000000000000001000000000000000100000000000000206f340a6a830da3070b8d724240179ce6f28151ed466358ef4dfcfc0bb5bb3a540000000000000001000000000000000000000000000000200f27fddea6bb159e213c6edb71cefec5c18ec69adb31d5715312ce3405d664d30000000000000001000000000000000100000000000000204ece1523b41d3acdd62d941f79a184e58f321c32583ab228f101ad36aacbea49000000000000000100000000000000010000000000000020b406364799e599e8956dddafdf979d5726d49f1b43921cb68fcd71e95b34642a0000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d800000000000000620000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000010000000000000020fe1de043daa22da500ffdc5b720243832c0731a1aeed2bbeba5bf527981366240000000000000001000000000000000000000000000000209bb03b71f8958bc746c557f0f8faf121940b3b5bcb04a7ed2e5343acd64d062400000000000000010000000000000001000000000000002046aa03ba8a9886a3f0aed110bc7bd5a800b3a0c72e0882d90a75488848fb444a00000000000000010000000000000001000000000000002043fd33e570512d1ec7c5a2d8d9e016f651663874b20ff2cfed24bc514da4efcb000000000000000100000000000000010000000000000020522bf3cf53240bf6d14a46e8fd9b38443eaab67e1a6a827c2608b577701babe100000000000000010000000000000000000000000000002069f2b2bef63d46c56e2aff6004f910949758c752bbce0f7bfa10638e327881f400000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000002200000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000010000000000000020be724f0141ec45bb72784a388a07910a894a83065b9294b5a031d4a17c4194aa000000000000000100000000000000000000000000000020f067bfccbdc15e24f6e857e8fbdab2d4ecedb8c6aa15a2a0717c07eea62b306c00000000000000010000000000000001000000000000002013e785e18a24d136cd6ab95d4bd71df18d225451d041c1a5b3774ecb0596f08600000000000000010000000000000001000000000000002008838d39ec562eab71e05ccb9d707477e4333bf52a9478716e77d269f0cda014000000000000000100000000000000010000000000000020aa190a7636f9917a9691ff309a2844cfc4aac3e251781f1f0e7c63623540714a000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000000200000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b89300000000000000050000000000000001000000000000000100000000000000206f340a6a830da3070b8d724240179ce6f28151ed466358ef4dfcfc0bb5bb3a540000000000000001000000000000000000000000000000200f27fddea6bb159e213c6edb71cefec5c18ec69adb31d5715312ce3405d664d30000000000000001000000000000000100000000000000204ece1523b41d3acdd62d941f79a184e58f321c32583ab228f101ad36aacbea49000000000000000100000000000000010000000000000020b406364799e599e8956dddafdf979d5726d49f1b43921cb68fcd71e95b34642a0000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d800000000000000730000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe00000000000000070000000000000001000000000000000000000000000000203e5f3958cdf032e3e17a2e24cedf027a19188b960db3e5f31505680b9c0087e20000000000000001000000000000000000000000000000201a7cc6ce9734c60109a2f48fb8c0e076e091609e68a9ad35b9770c9f40466f8700000000000000010000000000000001000000000000002082c510abb7ab366618f4e21659ae732925e8b5d09a0983d1bfc509fca0011b76000000000000000100000000000000010000000000000020112c2364e43f3f1054969d6d4cac83d5d2003a5a1dcb27b62871795005af3ac800000000000000010000000000000000000000000000002048316aff2ac932e667717670ab3529a8d92d5dbbb3cef3caecd037647159ebd300000000000000010000000000000000000000000000002069f2b2bef63d46c56e2aff6004f910949758c752bbce0f7bfa10638e327881f400000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000003300000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000000000000000000020c6a28c4f743c54bbba24b3436b1c02d0455f65740e9dd0477bc55af5719fc604000000000000000100000000000000000000000000000020be96ea44676688e02065d4e8cd5a4bdd15f59b2b78791c0ab690b3b4d11782b90000000000000001000000000000000100000000000000204a100f20769f2571b41cb55506579f2bccb45ff24e743f262c4545da984bb38700000000000000010000000000000001000000000000002032001ae94e4bda6153b4388b21e2413e9cb17eecfa21be7afd2b39fec286c263000000000000000100000000000000000000000000000020c5505fdbeca3e6bd0ea4f41a0f376ee34b35fe16baea6e452cd3c7d6768184f0000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000001300000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b8930000000000000005000000000000000100000000000000000000000000000020c356c883ff5ffec5372cfe1b0e709631d90d2107e9f2891f0c2ce64b5b505c220000000000000001000000000000000000000000000000207115746818b0050db5b18ae5951096ff5c5d516aa4fb4c28ea91ca4f853db970000000000000000100000000000000010000000000000020d151125856a9846bd7412a70749a6b1f21aa215e2c42ca1fa4d79739b9183654000000000000000100000000000000010000000000000020c36aefd79dad8645dfb14e40698462ce6783af41b84398cf29a85f6b56d9c3fe00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f3000000000000007a0000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000010000000000000020d800f45787d4b34c088343dfcfdbce8f698ed98f0e99475701756b2de4e7a144000000000000000100000000000000000000000000000020f6d5a463bbb0a73a9a61ebd810ea985d27eb7e2fa406d039d43f6257a2010243000000000000000100000000000000010000000000000020729b12088efe2e8116ebb2cd4846fc2a276838a6e83690c6f481dc8583b060a300000000000000010000000000000000000000000000002034ee0063e0f3e2c387de8e07e0faf6210500285cf7dd65f7f099bac3e4df87e500000000000000010000000000000000000000000000002048316aff2ac932e667717670ab3529a8d92d5dbbb3cef3caecd037647159ebd300000000000000010000000000000000000000000000002069f2b2bef63d46c56e2aff6004f910949758c752bbce0f7bfa10638e327881f400000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000003a00000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000010000000000000020be22c64c6f10c37f81573dae6997a35ac59b14e7b6040c85cdef359abbf3ba480000000000000001000000000000000000000000000000201bfa05ecaf27f7e13c1de6ea6f28fb1dd0659291de5449096cfa9ad0e23196a8000000000000000100000000000000010000000000000020bb82c6d7233771dd6d82915bc338643a78182b31c871117ab88551300c5812b10000000000000001000000000000000000000000000000206d9466490f7a354ba312a54733cdf0c7068effff9ce1188478bc77942bb7fc53000000000000000100000000000000000000000000000020c5505fdbeca3e6bd0ea4f41a0f376ee34b35fe16baea6e452cd3c7d6768184f0000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000001a00000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b8930000000000000005000000000000000100000000000000010000000000000020bd2b65582a88cc0513a45c4c416a1c4bf9bbf62653fd946594e3ada4b1327434000000000000000100000000000000000000000000000020937a6afa565f265504600456e86163bee3158083e484ac73de8fbe12ec3c95d70000000000000001000000000000000100000000000000201d644d71a3c2a5baea02720e1965f5c4bb866f3546c28496338095e44181a1800000000000000001000000000000000000000000000000209e2fb1bd7e772c2ef8b3847b057de145a6afb5adf66440f0813cd95b9bc5f90f00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f300000000000000700000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe00000000000000070000000000000001000000000000000100000000000000207937118954fdf14d9945feec3c420c6f9a5d1f275a42d6b93b18e473b84b81e6000000000000000100000000000000010000000000000020401b7c21e140274c7e8d4a8f507c4e1a86fe93ef28142385a7d6ca9b6768f88800000000000000010000000000000001000000000000002082c510abb7ab366618f4e21659ae732925e8b5d09a0983d1bfc509fca0011b76000000000000000100000000000000010000000000000020112c2364e43f3f1054969d6d4cac83d5d2003a5a1dcb27b62871795005af3ac800000000000000010000000000000000000000000000002048316aff2ac932e667717670ab3529a8d92d5dbbb3cef3caecd037647159ebd300000000000000010000000000000000000000000000002069f2b2bef63d46c56e2aff6004f910949758c752bbce0f7bfa10638e327881f400000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000003000000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f700000000000000060000000000000001000000000000000100000000000000200b5f80759fc17b8d06820fb3d9478057acd91c3b89d9cfa75ddf5a78d75a8aa40000000000000001000000000000000100000000000000200b2d3fd6687c6f4d199b59b6be5483a7180f4c78fe8bda6a313c29e49b0626400000000000000001000000000000000100000000000000204a100f20769f2571b41cb55506579f2bccb45ff24e743f262c4545da984bb38700000000000000010000000000000001000000000000002032001ae94e4bda6153b4388b21e2413e9cb17eecfa21be7afd2b39fec286c263000000000000000100000000000000000000000000000020c5505fdbeca3e6bd0ea4f41a0f376ee34b35fe16baea6e452cd3c7d6768184f0000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000001000000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b89300000000000000050000000000000001000000000000000100000000000000201657c76f30141b4b1d137a3a4a44a30e8b7ea3a50d83d90e989374f66a30a1530000000000000001000000000000000100000000000000202228e0e241d31c13782611d2b364808db3b50d401f8236b44f0134f75d80cca7000000000000000100000000000000010000000000000020d151125856a9846bd7412a70749a6b1f21aa215e2c42ca1fa4d79739b9183654000000000000000100000000000000010000000000000020c36aefd79dad8645dfb14e40698462ce6783af41b84398cf29a85f6b56d9c3fe00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f3000000000000000c0000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000010000000000000020713e8b3e35bce27f0896c4d1c8a42e2052c8309c2cfeded17cbc9cfc8fd0f6b500000000000000010000000000000001000000000000002066d0ad996d352703a7a25dec0b7a2761a39637b24d0a0ba8f9847218a42da14f000000000000000100000000000000000000000000000020ea9b4fdf58d8e2b1ff19ee1198d015726301477852316f90867fe4a9481d77f7000000000000000100000000000000000000000000000020db76e9394eda26faae81ec6fdaa96fc0c044f26fefc0d73dbb3cbef867182db30000000000000001000000000000000100000000000000202508e5fb00289c04a04868dd9a8e650164a89dac9743cf12cc57e4ade9d9f1590000000000000001000000000000000100000000000000205f07d8c8d032c001837b7bbcf14619856fe91011d5aff21fccda9a13597afcb000000000000000010000000000000001000000000000002028d8a0c369da9999b54e52cac432245cb8c71873c1bdb1486a877fdce8f5f4ff000000000000000c00000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000010000000000000020b2862ba2451033358e6aeb98d3f2723464cbdae9d9b6a1dba545c1fbf80379070000000000000001000000000000000100000000000000205d18875629b970708e8902ae08ed5a65574a8513da0f29196eb0cf5a335655e7000000000000000100000000000000000000000000000020140d8b2eab427236acae3996398960db371067a8f3cdc1c20d5914f41359c7a9000000000000000100000000000000000000000000000020543a8f359826fa3a987e94bf4b62785956e4a9d25036837a95569f62d41a3292000000000000000100000000000000010000000000000020fc8c882597983ad3169a658b567ca73ade33f768fecca21826b7fbe16b4cc82e000000000000000100000000000000010000000000000020561e8e49d509154002e334c20d827875059af43fbbd69612622be05df2b019da000000000000000c00000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b89300000000000000050000000000000001000000000000000100000000000000201d90e9ab63a4ac8cf858080bb3689a27376376a70ebe97ab6affbd2c4b27c219000000000000000100000000000000010000000000000020ea8dad601197a18c3d2c2d22a4b8359f5b9c2885a61421537363980b82ed6e8d0000000000000001000000000000000000000000000000204e7e2fe1621d5b523d51298ffea591b8ada737e3ffc38a3e28fb1abbe4bad47f000000000000000100000000000000000000000000000020676b9b69dbb0335c8ffc750e47b9002e096de3b682b79a0809bb8cd5020a5c120000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d8000000000000007e0000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000010000000000000020f3e155be9af5b04464a40e781139221214b6fd01541245758f775e85604c1d440000000000000001000000000000000000000000000000208a3d07cfe26342bf84f1b087c20d593200b6504fcd329ac6f26543643c3572750000000000000001000000000000000000000000000000209625e5ff3d74f577f1e8b53ffc880d7a9e3b991e2f8bae6dc35eaf4f93b3315f00000000000000010000000000000000000000000000002034ee0063e0f3e2c387de8e07e0faf6210500285cf7dd65f7f099bac3e4df87e500000000000000010000000000000000000000000000002048316aff2ac932e667717670ab3529a8d92d5dbbb3cef3caecd037647159ebd300000000000000010000000000000000000000000000002069f2b2bef63d46c56e2aff6004f910949758c752bbce0f7bfa10638e327881f400000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000003e00000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000010000000000000020a80685be55e7def2df17b0574bed2a94c17a30a37754904f01e6cc7d07273f580000000000000001000000000000000000000000000000201e9fc6b4ac4fd9cbe77018d1deca0d5f0fa6be029d90a928252dba6c759f7c7a000000000000000100000000000000000000000000000020422bb341469f1780f456ab99dd657d890e0ac86e839d1919c0c871dd8bb463d80000000000000001000000000000000000000000000000206d9466490f7a354ba312a54733cdf0c7068effff9ce1188478bc77942bb7fc53000000000000000100000000000000000000000000000020c5505fdbeca3e6bd0ea4f41a0f376ee34b35fe16baea6e452cd3c7d6768184f0000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000001e00000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b8930000000000000005000000000000000100000000000000010000000000000020d0fd081654c8aa4cf2c84a303be9ad404ff9321e11ed279911842c7712e3bf05000000000000000100000000000000000000000000000020773fef777c3fc91d4537d35597e3266a9123c3f5d4571760e30964d8914012ce0000000000000001000000000000000000000000000000209562c0f996b1a2fa0659b9d4063818df0a46e090cb6c622aa3191cc4ba2386b40000000000000001000000000000000000000000000000209e2fb1bd7e772c2ef8b3847b057de145a6afb5adf66440f0813cd95b9bc5f90f00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f300000000000000130000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe000000000000000700000000000000010000000000000000000000000000002084409188b65dd9604d22afd4a664aa0bcf5c8f33a05b11f700b292197276870100000000000000010000000000000000000000000000002019f4b1cbad3a275822cf7b06a6e30ddb58984039965670158b65475c55ae7b22000000000000000100000000000000010000000000000020ed5c0c913a696d4fc36995b49adb98793fbdc75deeab48c0b474a117efc2b6bb0000000000000001000000000000000100000000000000201f7f35161a08c3ce3297695032655d42368e84c81f094c9353c03285e552446e000000000000000100000000000000000000000000000020191e7831d1e8586bc4af5d49625fea5f677bc8dc91da26cf372f455ca0c3da030000000000000001000000000000000100000000000000205f07d8c8d032c001837b7bbcf14619856fe91011d5aff21fccda9a13597afcb000000000000000010000000000000001000000000000002028d8a0c369da9999b54e52cac432245cb8c71873c1bdb1486a877fdce8f5f4ff000000000000001300000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f700000000000000060000000000000001000000000000000000000000000000207ff021f07f5a82f2af15e41d39579befd26922c3707cb6b90e4693a28c89d468000000000000000100000000000000000000000000000020e706dae44aff0564e538ec9cc80da2da921fa166b9c667a5410698bc02b40e2700000000000000010000000000000001000000000000002051674c68b6b6a55f3f91adf242321e1d3da47838a74be7536f675533333e42a0000000000000000100000000000000010000000000000020a31dc88707744214d54f9c8108474f617c0344f1f1f9bfed63f368598e405eb700000000000000010000000000000000000000000000002093bd1f00893ff9e252007222a4d57a16e3aaecfd947f7b9e377dd265ffa0358f000000000000000100000000000000010000000000000020561e8e49d509154002e334c20d827875059af43fbbd69612622be05df2b019da000000000000001300000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b8930000000000000005000000000000000100000000000000000000000000000020c356c883ff5ffec5372cfe1b0e709631d90d2107e9f2891f0c2ce64b5b505c220000000000000001000000000000000000000000000000207115746818b0050db5b18ae5951096ff5c5d516aa4fb4c28ea91ca4f853db970000000000000000100000000000000010000000000000020d151125856a9846bd7412a70749a6b1f21aa215e2c42ca1fa4d79739b9183654000000000000000100000000000000010000000000000020c36aefd79dad8645dfb14e40698462ce6783af41b84398cf29a85f6b56d9c3fe00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f300000000000000370000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe000000000000000700000000000000010000000000000000000000000000002074b3c95973eead8975454cce7160b3507cc744fe8b5ef5acd495aa415fcd85ca000000000000000100000000000000000000000000000020316001362999d5865dd44adbbcd3d3c614e6570b8acef0b4acea5ab6bbf5ebf10000000000000001000000000000000000000000000000207d159c02e2d4fc9c88a5c29c43778e391c0c7f740a7300b434453a70bd73bcc4000000000000000100000000000000010000000000000020b190b8f8ce07f9dd0c67d2fe23a468c229e3a1470dca69d12daa7dc56d8f1d790000000000000001000000000000000000000000000000204f2c990b2efc129bf5b5178763583755b59f44b45aa91e2d21892fb30f59ebdf0000000000000001000000000000000000000000000000205adb9aebbffe3cd8200fbd8b1da579960d8844069ce8920a1343f3d8c48b7bfc00000000000000010000000000000001000000000000002028d8a0c369da9999b54e52cac432245cb8c71873c1bdb1486a877fdce8f5f4ff000000000000003700000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000000000000000000020b53f925bd62ba522748ac26afff5dde8debd3a5e70f850b0bfce12c1c84ebda30000000000000001000000000000000000000000000000207d0636feadeb48a4ed1bf79de1f384a00de7aad77601b72efdc798e10a70ae57000000000000000100000000000000000000000000000020d5bfe4372e7eca6eb201533a0e55526d2c937b7d9b288ed958a55e759201868c00000000000000010000000000000001000000000000002032001ae94e4bda6153b4388b21e2413e9cb17eecfa21be7afd2b39fec286c263000000000000000100000000000000000000000000000020c5505fdbeca3e6bd0ea4f41a0f376ee34b35fe16baea6e452cd3c7d6768184f0000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000001700000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b8930000000000000005000000000000000100000000000000000000000000000020b7b6e38156242525a08b887284578daa050b1228f0e544c23c726a2411dd1de600000000000000010000000000000000000000000000002026c4940e558d3e4b12b82d0f681bee119ead66c37e0891be106398f3cf09db510000000000000001000000000000000000000000000000206cd045d983b4126a87b7c4814223e855db6e7eda6d30b38003e7ad93cea1cef9000000000000000100000000000000010000000000000020c36aefd79dad8645dfb14e40698462ce6783af41b84398cf29a85f6b56d9c3fe00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f300000000000000390000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000000000000000000020ee98793be78b98b18c18683663725e6d4011f8bd7e63ce9f90439bbdd203c3ab000000000000000100000000000000010000000000000020e9165bbb9049059f9475b25b7e2c56ef6827fc9d10b41d576c6dbf6310e956a6000000000000000100000000000000010000000000000020a732decfbed445f9226c8b8801bc4d85d1415c5a4e93714484d65ef3820d4dc4000000000000000100000000000000000000000000000020962ba35cedafee3b867acfec185039aee289a4c66789c1406b399a3cde120bb10000000000000001000000000000000000000000000000204f2c990b2efc129bf5b5178763583755b59f44b45aa91e2d21892fb30f59ebdf0000000000000001000000000000000000000000000000205adb9aebbffe3cd8200fbd8b1da579960d8844069ce8920a1343f3d8c48b7bfc00000000000000010000000000000001000000000000002028d8a0c369da9999b54e52cac432245cb8c71873c1bdb1486a877fdce8f5f4ff000000000000003900000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000000000000000000020146f4766eb226fa952c0e1b8a376f9ed560b5bc7a3617d3f9fb87edb8b2a7e1d00000000000000010000000000000001000000000000002095a9e2ff01c9ec3c31608fac2bad1d98d046d63911881f1933a281f7cd9bde32000000000000000100000000000000010000000000000020bb82c6d7233771dd6d82915bc338643a78182b31c871117ab88551300c5812b10000000000000001000000000000000000000000000000206d9466490f7a354ba312a54733cdf0c7068effff9ce1188478bc77942bb7fc53000000000000000100000000000000000000000000000020c5505fdbeca3e6bd0ea4f41a0f376ee34b35fe16baea6e452cd3c7d6768184f0000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000001900000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b893000000000000000500000000000000010000000000000000000000000000002006b73d8e2ccbe42120be814ebdb2a6715b414b14c04d8aab2d611b2693a04609000000000000000100000000000000010000000000000020112ac177060220e43704d3e0888610177f455c0d250d239a9a2f9760ac9fc5610000000000000001000000000000000100000000000000201d644d71a3c2a5baea02720e1965f5c4bb866f3546c28496338095e44181a1800000000000000001000000000000000000000000000000209e2fb1bd7e772c2ef8b3847b057de145a6afb5adf66440f0813cd95b9bc5f90f00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f300000000000000440000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe00000000000000070000000000000001000000000000000100000000000000206d3b36b12cb8abf4fd5d64c8de4abce4762487c956ef7f57402f95b9f1f61b8b000000000000000100000000000000010000000000000020ba9536d49b32f9e3c7e991e29b0bd02a5a02e28ce59fc14b2043f265e364a20b000000000000000100000000000000000000000000000020224fcfa2f025556b9ceebf913227cb4e52dafa048de2963f5f345b783587be03000000000000000100000000000000010000000000000020f3322c8cd2171da20bd4218e7860791c9a033371f045431933127e378d908b2a000000000000000100000000000000010000000000000020e571a03c8ba07fbb21c326d64891dcc277d09b2ce6b879007c30997bb5605a4b000000000000000100000000000000010000000000000020e34f236cd38596d429603de46eb5d6aeac840855619c4c9bdd620fe41275334b00000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000000400000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f700000000000000060000000000000001000000000000000100000000000000207507e35dcf5d38241edac52ad3c9271c047de682d2f81f157e296cdfeace30760000000000000001000000000000000100000000000000205c77f71bd3605e3927a4d46c159f0cd6cf57e7d539be80d007f3774d6102ad03000000000000000100000000000000000000000000000020f79f68c245a25558534328f907179db0e975ec353da7e91aca2894b4a4d0f65100000000000000010000000000000001000000000000002030116ed526a9a272ab37478970a12458e07b270ff594e7068a36ed8c06edcd36000000000000000100000000000000010000000000000020fc8c882597983ad3169a658b567ca73ade33f768fecca21826b7fbe16b4cc82e000000000000000100000000000000010000000000000020561e8e49d509154002e334c20d827875059af43fbbd69612622be05df2b019da000000000000000400000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b8930000000000000005000000000000000100000000000000010000000000000020f494a9919bf0f3bd6e57b9b8c5a51230e21ce304c3f79afb24053355ae06a051000000000000000100000000000000010000000000000020ff55c769435380013cdb0bfb22ab501c554f4dc914c17c50183ef4785931b20d00000000000000010000000000000000000000000000002042b48c3932deab345a34655a3ebce45d7acbcb123c3b4161b8bcae4d81afcea3000000000000000100000000000000010000000000000020b406364799e599e8956dddafdf979d5726d49f1b43921cb68fcd71e95b34642a0000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d800000000000000750000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000000000000000000020a937846a3b91cce03dca1be7622cf27752cb69a77a396df0ed904cc4de0e29b2000000000000000100000000000000010000000000000020bece01fd526b71f393f471d430cdd4b9048fca6221941cf2df19af02e20ae6e4000000000000000100000000000000000000000000000020a45b8ef53d45b6e3a90bb8763a53beeac821059fc33602b8d1362f596e2bd81b000000000000000100000000000000010000000000000020112c2364e43f3f1054969d6d4cac83d5d2003a5a1dcb27b62871795005af3ac800000000000000010000000000000000000000000000002048316aff2ac932e667717670ab3529a8d92d5dbbb3cef3caecd037647159ebd300000000000000010000000000000000000000000000002069f2b2bef63d46c56e2aff6004f910949758c752bbce0f7bfa10638e327881f400000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000003500000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000000000000000000020364b556d609ff25d8d32aa976d5318b11a316062fc25569ee3d360f9fb7a167c000000000000000100000000000000010000000000000020f5d1aef2327bd5d20b0ba21b89bb497cdde4cd40653756f953750ecb7122dab8000000000000000100000000000000000000000000000020d5bfe4372e7eca6eb201533a0e55526d2c937b7d9b288ed958a55e759201868c00000000000000010000000000000001000000000000002032001ae94e4bda6153b4388b21e2413e9cb17eecfa21be7afd2b39fec286c263000000000000000100000000000000000000000000000020c5505fdbeca3e6bd0ea4f41a0f376ee34b35fe16baea6e452cd3c7d6768184f0000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000001500000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b89300000000000000050000000000000001000000000000000000000000000000206dc521805ac4876c6dbbe88a64d6717ca9b5ea296a23f31afd132a2385988a020000000000000001000000000000000100000000000000206c0c3108b3a30f1de5230c8f194dfb65a633dd235ae54e44422f152475c990080000000000000001000000000000000000000000000000206cd045d983b4126a87b7c4814223e855db6e7eda6d30b38003e7ad93cea1cef9000000000000000100000000000000010000000000000020c36aefd79dad8645dfb14e40698462ce6783af41b84398cf29a85f6b56d9c3fe00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f300000000000000040000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000010000000000000020649002cc2095226846f79987655b356e40f1e10309ec72bb7da9d33be62cadcf000000000000000100000000000000010000000000000020e741a0d1ac7d963fcac3cbc4eb9139e20b835333060427a55ebbe727ed87bc8300000000000000010000000000000000000000000000002050bf81f56c9f182c6309ee50e28e87ff24ef1a9ae7592e5b73f5cfb6bf92244b00000000000000010000000000000001000000000000002095f4234017c7a78c5ed078740e89362af8c99771d4cc60febfa6394b2913b9110000000000000001000000000000000100000000000000202508e5fb00289c04a04868dd9a8e650164a89dac9743cf12cc57e4ade9d9f1590000000000000001000000000000000100000000000000205f07d8c8d032c001837b7bbcf14619856fe91011d5aff21fccda9a13597afcb000000000000000010000000000000001000000000000002028d8a0c369da9999b54e52cac432245cb8c71873c1bdb1486a877fdce8f5f4ff000000000000000400000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f700000000000000060000000000000001000000000000000100000000000000207507e35dcf5d38241edac52ad3c9271c047de682d2f81f157e296cdfeace30760000000000000001000000000000000100000000000000205c77f71bd3605e3927a4d46c159f0cd6cf57e7d539be80d007f3774d6102ad03000000000000000100000000000000000000000000000020f79f68c245a25558534328f907179db0e975ec353da7e91aca2894b4a4d0f65100000000000000010000000000000001000000000000002030116ed526a9a272ab37478970a12458e07b270ff594e7068a36ed8c06edcd36000000000000000100000000000000010000000000000020fc8c882597983ad3169a658b567ca73ade33f768fecca21826b7fbe16b4cc82e000000000000000100000000000000010000000000000020561e8e49d509154002e334c20d827875059af43fbbd69612622be05df2b019da000000000000000400000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b8930000000000000005000000000000000100000000000000010000000000000020f494a9919bf0f3bd6e57b9b8c5a51230e21ce304c3f79afb24053355ae06a051000000000000000100000000000000010000000000000020ff55c769435380013cdb0bfb22ab501c554f4dc914c17c50183ef4785931b20d00000000000000010000000000000000000000000000002042b48c3932deab345a34655a3ebce45d7acbcb123c3b4161b8bcae4d81afcea3000000000000000100000000000000010000000000000020b406364799e599e8956dddafdf979d5726d49f1b43921cb68fcd71e95b34642a0000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d800000000000000660000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe00000000000000070000000000000001000000000000000100000000000000209b060efce539cbc044ea2a4bce8974f6d0d9d8c07654a89218c923a3d98f3980000000000000000100000000000000000000000000000020b92840051aeae3e1a76083406d42232782abe83ff39347ec7b2c7547a9f88c190000000000000001000000000000000000000000000000202debe765062f237f39d528278da9a4dce81f0d0b375fd570fb76f75bb21107df00000000000000010000000000000001000000000000002043fd33e570512d1ec7c5a2d8d9e016f651663874b20ff2cfed24bc514da4efcb000000000000000100000000000000010000000000000020522bf3cf53240bf6d14a46e8fd9b38443eaab67e1a6a827c2608b577701babe100000000000000010000000000000000000000000000002069f2b2bef63d46c56e2aff6004f910949758c752bbce0f7bfa10638e327881f400000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000002600000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f700000000000000060000000000000001000000000000000100000000000000205ebf86620afdb372ac1e285a4ce52d070a871f49ae187cfb91efa92522c56dff0000000000000001000000000000000000000000000000201f057783c7016fe7282d0a3e13280be3f65e2b1b7b21c318563814cfc4c3990200000000000000010000000000000000000000000000002034e1de55b855d0ac3e221e10a90307574200c2a8207deacbaa1a7773bb67740d00000000000000010000000000000001000000000000002008838d39ec562eab71e05ccb9d707477e4333bf52a9478716e77d269f0cda014000000000000000100000000000000010000000000000020aa190a7636f9917a9691ff309a2844cfc4aac3e251781f1f0e7c63623540714a000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000000600000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b89300000000000000050000000000000001000000000000000100000000000000205cd6f132532ffd62306f15011a420a0b8ec62efc0e19d635fbe837b20d1f6383000000000000000100000000000000000000000000000020b7471941d11a0896d48c1222932ed56424a798cff532c025bc4731f96910fb3700000000000000010000000000000000000000000000002042b48c3932deab345a34655a3ebce45d7acbcb123c3b4161b8bcae4d81afcea3000000000000000100000000000000010000000000000020b406364799e599e8956dddafdf979d5726d49f1b43921cb68fcd71e95b34642a0000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d800000000000000030000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000000000000000000020f519e7e4db8fa0581d104d8d16acfe8805c5932366cecb93f24987ed4c8c10f800000000000000010000000000000000000000000000002081161472593eaf76636e40f4770cc542f5a018aedf664225a833a410fdbfdad90000000000000001000000000000000100000000000000203231373985c731dc714de4a2b03cf381d8724927bfb1cb6a58024edf11873cba00000000000000010000000000000001000000000000002095f4234017c7a78c5ed078740e89362af8c99771d4cc60febfa6394b2913b9110000000000000001000000000000000100000000000000202508e5fb00289c04a04868dd9a8e650164a89dac9743cf12cc57e4ade9d9f1590000000000000001000000000000000100000000000000205f07d8c8d032c001837b7bbcf14619856fe91011d5aff21fccda9a13597afcb000000000000000010000000000000001000000000000002028d8a0c369da9999b54e52cac432245cb8c71873c1bdb1486a877fdce8f5f4ff000000000000000300000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f700000000000000060000000000000001000000000000000000000000000000207915e80f066ce2df5dfa59a27d2ad30e120276590a12d64b8c05246961a15b900000000000000001000000000000000000000000000000204c259c1d194a7043ab9dc05e7e5d72e038ebcafee263421f7d8fbe6732c3ad5a000000000000000100000000000000010000000000000020d92c2ca99c237bb5c8cf19fcba261cfb217560b8d62dc8ad3cbb21b90b88897f00000000000000010000000000000001000000000000002030116ed526a9a272ab37478970a12458e07b270ff594e7068a36ed8c06edcd36000000000000000100000000000000010000000000000020fc8c882597983ad3169a658b567ca73ade33f768fecca21826b7fbe16b4cc82e000000000000000100000000000000010000000000000020561e8e49d509154002e334c20d827875059af43fbbd69612622be05df2b019da000000000000000300000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b89300000000000000050000000000000001000000000000000000000000000000201336110f91f33c3f364d7ae79745ab074706829f1990aa15a5156c2b014ad96a0000000000000001000000000000000000000000000000200f27fddea6bb159e213c6edb71cefec5c18ec69adb31d5715312ce3405d664d30000000000000001000000000000000100000000000000204ece1523b41d3acdd62d941f79a184e58f321c32583ab228f101ad36aacbea49000000000000000100000000000000010000000000000020b406364799e599e8956dddafdf979d5726d49f1b43921cb68fcd71e95b34642a0000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d8000000000000005c0000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe000000000000000700000000000000010000000000000001000000000000002044cac760e44f1646323e62b1335bf1d0cd02a613f15f151cadf2890afc3174fa00000000000000010000000000000001000000000000002035bc263cfd2b97dd0a8d24f53df8168c4fbea500ed4242ae583cbebc0a6e7a00000000000000000100000000000000000000000000000020b7e2c56261281c47cc6a1730563e59a5e33b5698094865fa5de7a3860bbca5c3000000000000000100000000000000000000000000000020117c170cc0d4c56447da1eabb6ef154ea6c4e377a1aa5cd346b12e7de0586b34000000000000000100000000000000000000000000000020abd064ff49887f96babfd46cd68124e8258009456052f82c6f841ed3333cea4e000000000000000100000000000000010000000000000020e34f236cd38596d429603de46eb5d6aeac840855619c4c9bdd620fe41275334b00000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000001c00000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f7000000000000000600000000000000010000000000000001000000000000002089d7a845c1838075c3155ac126c32e6ba27da75268e35d18556dd2b127681ffd0000000000000001000000000000000100000000000000206c7fe6075a2295ea07b0f2815f314701c1855f0171f1451c1534412020472a020000000000000001000000000000000000000000000000204b819fe281e85642646916125b6160c384e5d4dc79c677ae533d58cf83beefb700000000000000010000000000000000000000000000002056d53e1552c97d45efe7b3bd26f642633292b8a3481be3d7c021602bb51e0d7e00000000000000010000000000000000000000000000002093bd1f00893ff9e252007222a4d57a16e3aaecfd947f7b9e377dd265ffa0358f000000000000000100000000000000010000000000000020561e8e49d509154002e334c20d827875059af43fbbd69612622be05df2b019da000000000000001c00000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b893000000000000000500000000000000010000000000000001000000000000002069531b0e969ac42eafd9bb65f349b30082142d98ece89d82f8ccd23110352f2300000000000000010000000000000001000000000000002057ba129bae8250be11b8ef0ca4f6b99ce552fe8a57fc34467f8b469995fca00c0000000000000001000000000000000000000000000000209562c0f996b1a2fa0659b9d4063818df0a46e090cb6c622aa3191cc4ba2386b40000000000000001000000000000000000000000000000209e2fb1bd7e772c2ef8b3847b057de145a6afb5adf66440f0813cd95b9bc5f90f00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f300000000000000270000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000000000000000000020b9dba67d65a6d85918d38f31ae106544302682f595ad119d53feb31d269f467600000000000000010000000000000000000000000000002015e70746f025bf600eb0e58360560f5a38828ccec1e70e60cffe29f934dcf29d000000000000000100000000000000000000000000000020990411a2a3322c0a288565447e3b662f5faa8c1a841d956ea1982a76dcb125ba0000000000000001000000000000000100000000000000201e47dfee7de232067e8e8f22a9466e7be54d7ded354ae3bf1b1e099da762ac3a00000000000000010000000000000001000000000000002089c584e6019abf5295c24cc7c5347bce9d8a69e599062588a9308149f83e95fd0000000000000001000000000000000000000000000000205adb9aebbffe3cd8200fbd8b1da579960d8844069ce8920a1343f3d8c48b7bfc00000000000000010000000000000001000000000000002028d8a0c369da9999b54e52cac432245cb8c71873c1bdb1486a877fdce8f5f4ff000000000000002700000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f70000000000000006000000000000000100000000000000000000000000000020c0138b6c8c94741653fb44e08bf9f82e7bbe366029745689021cbc600d651c430000000000000001000000000000000000000000000000201f057783c7016fe7282d0a3e13280be3f65e2b1b7b21c318563814cfc4c3990200000000000000010000000000000000000000000000002034e1de55b855d0ac3e221e10a90307574200c2a8207deacbaa1a7773bb67740d00000000000000010000000000000001000000000000002008838d39ec562eab71e05ccb9d707477e4333bf52a9478716e77d269f0cda014000000000000000100000000000000010000000000000020aa190a7636f9917a9691ff309a2844cfc4aac3e251781f1f0e7c63623540714a000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000000700000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b893000000000000000500000000000000010000000000000000000000000000002049c1995f648d3e042291611621bebf89011a04b6bfadc9a0a71bb6f3a7bfa342000000000000000100000000000000000000000000000020b7471941d11a0896d48c1222932ed56424a798cff532c025bc4731f96910fb3700000000000000010000000000000000000000000000002042b48c3932deab345a34655a3ebce45d7acbcb123c3b4161b8bcae4d81afcea3000000000000000100000000000000010000000000000020b406364799e599e8956dddafdf979d5726d49f1b43921cb68fcd71e95b34642a0000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d800000000000000710000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000000000000000000020a73b725cf8580ddc74020217d8edb14fbfab55ea44493b7b517b2dc64ae9635b000000000000000100000000000000010000000000000020401b7c21e140274c7e8d4a8f507c4e1a86fe93ef28142385a7d6ca9b6768f88800000000000000010000000000000001000000000000002082c510abb7ab366618f4e21659ae732925e8b5d09a0983d1bfc509fca0011b76000000000000000100000000000000010000000000000020112c2364e43f3f1054969d6d4cac83d5d2003a5a1dcb27b62871795005af3ac800000000000000010000000000000000000000000000002048316aff2ac932e667717670ab3529a8d92d5dbbb3cef3caecd037647159ebd300000000000000010000000000000000000000000000002069f2b2bef63d46c56e2aff6004f910949758c752bbce0f7bfa10638e327881f400000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000003100000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f700000000000000060000000000000001000000000000000000000000000000209293486a0c62d413ab3076b6e8b17c81146afa37795c7047c1968769ada41ca70000000000000001000000000000000100000000000000200b2d3fd6687c6f4d199b59b6be5483a7180f4c78fe8bda6a313c29e49b0626400000000000000001000000000000000100000000000000204a100f20769f2571b41cb55506579f2bccb45ff24e743f262c4545da984bb38700000000000000010000000000000001000000000000002032001ae94e4bda6153b4388b21e2413e9cb17eecfa21be7afd2b39fec286c263000000000000000100000000000000000000000000000020c5505fdbeca3e6bd0ea4f41a0f376ee34b35fe16baea6e452cd3c7d6768184f0000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000001100000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b8930000000000000005000000000000000100000000000000000000000000000020e5c9234f571a04b908e5966b14ebdce5040631f0021fe25f089e0e89ffa943c00000000000000001000000000000000100000000000000202228e0e241d31c13782611d2b364808db3b50d401f8236b44f0134f75d80cca7000000000000000100000000000000010000000000000020d151125856a9846bd7412a70749a6b1f21aa215e2c42ca1fa4d79739b9183654000000000000000100000000000000010000000000000020c36aefd79dad8645dfb14e40698462ce6783af41b84398cf29a85f6b56d9c3fe00000000000000010000000000000000000000000000002054906c158e45ce4540fd762a258d7d7093901b9a3eb2050db5d134b7c5b0b5f300000000000000680000000000000020b057c5926e5e79db729eaad551bfa0c0e5999a96493e57f281005e4536cfa4fe0000000000000007000000000000000100000000000000010000000000000020fa69b43f9bc7e37f767c0ca1b478c379ad01eb5eac2627a879bab6a074108a0a000000000000000100000000000000010000000000000020269739d1f316261b40ad3270c90a62fd7d4403efcf353ebdb5eca1be408530ba000000000000000100000000000000010000000000000020fe4cb80d7963d1a7b2b513a9e6f097c5767bf79ef141b220b9bf637477ec0b3c00000000000000010000000000000000000000000000002086968b78264832f401e50405cec5cfb99218e7e056e02b4d24bfff31e90892a7000000000000000100000000000000010000000000000020522bf3cf53240bf6d14a46e8fd9b38443eaab67e1a6a827c2608b577701babe100000000000000010000000000000000000000000000002069f2b2bef63d46c56e2aff6004f910949758c752bbce0f7bfa10638e327881f400000000000000010000000000000000000000000000002035b55a48e14c866a56e93e2be40acdc31e1381cf6361399cbee53e7de9729bae000000000000002800000000000000209cb46089fbedbf02e289a5e5b01ee856407894f121efe6bce16d68d22216e3f7000000000000000600000000000000010000000000000001000000000000002032a9300ae08928c74cc0d28f402428200de915dddc0d0e08c5ec2c615d7f6469000000000000000100000000000000010000000000000020f2a29f4798f32e744bd950b211b434ee04d462fcf48e67944d5ac70ef858b04d00000000000000010000000000000001000000000000002069f48946897b62c62586bf42e0d8d56cdb0900cad1b1afdd83921875a89087d6000000000000000100000000000000000000000000000020bb4f5a180f26eb7dd9d6c1b7357041cd85ce4cdb1ae3c965bbb530394a6cdb6d000000000000000100000000000000010000000000000020aa190a7636f9917a9691ff309a2844cfc4aac3e251781f1f0e7c63623540714a000000000000000100000000000000000000000000000020f93a9e7a57068b40581c82e83f487d74562de9a6748db30686284203effebe69000000000000000800000000000000208401c3c722efaa26bcbf07eaa4a104da68f10f6373b0bb8fcea560f629f5b8930000000000000005000000000000000100000000000000010000000000000020a83f511513fb5ae2235f0030cf95726ec9b9616cfa958baafd72248e6d3fb5f30000000000000001000000000000000100000000000000204f352a60b9a3f58cef173bb4159f074092fef7486663513d465fff4aad8cedf2000000000000000100000000000000010000000000000020cb46828135062d95c77a8184050a77537dd54b40b4a65b59197e170c577e7309000000000000000100000000000000000000000000000020676b9b69dbb0335c8ffc750e47b9002e096de3b682b79a0809bb8cd5020a5c120000000000000001000000000000000100000000000000204e7b2f002c0b481bc0a5e5995b8950b79c35f1d74b356394de55b86ddd8623d800000000000000020788dded72e9332a74e2a93af2cddfa99cd441559c82f08680f5e3d9865f3cce1ebe969c370fa967c7dac11151535da6e9b0e98a6c6d0cdf6a9a9a27702720c96b8c11c1 \ No newline at end of file +0x03000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b000000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b86864390843455559a33435d7ea0e466a55ff1cd88cbdb9b23da131de61fabcd7fcaa0000000000000023390843455559a33435d7ea0e466a55ff1cd88cbdb9b23da131de61fabcd7fcaa1f1737f0f9693494b37fd517f70fe4d844c0e4dd11e9df8639a0be9abfccb55b1d29505aaac030050d3792476013adfb07205bc47b474fb794a32631b037ef4e1b7417b4df0e06e7817f2977d34f78391337465946f76b67edc9572bbeff8ac511ce91c555c0f0194215db64e06265e6df1498de55ca9c5eb4d55d1e7117ac84094476885b462285877bcf57208d591d1b872dc6503b26d072945200bafdb5d71908d8daacc4b07e4a6d48f861ebfd823920635ba3a814bdeefda0ab35765e932e5650a9c85eac9ba56b0cb3a2c2bd9189a3e4df9127c2123ce59a03a6f48d33390843455559a33435d7ea0e466a55ff1cd88cbdb9b23da131de61fabcd7fcaa1f1737f0f9693494b37fd517f70fe4d844c0e4dd11e9df8639a0be9abfccb55b1d29505aaac030050d3792476013adfb07205bc47b474fb794a32631b037ef4e1b7417b4df0e06e7817f2977d34f78391337465946f76b67edc9572bbeff8ac511ce91c555c0f0194215db64e06265e6df1498de55ca9c5eb4d55d1e7117ac84094476885b462285877bcf57208d591d1b872dc6503b26d072945200bafdb5d71908d8daacc4b07e4a6d48f861ebfd823920635ba3a814bdeefda0ab35765e932e5650a9c85eac9ba56b0cb3a2c2bd9189a3e4df9127c2123ce59a03a6f48d3300a3dff88bd9509adea9da707a0f8ed8dd100d7759fdee4f61dbf448532e3cbb36424a2464e95c40fde398f8ce172f3ff19b15feff8f068637d0c102005d19d60f3114c664f481e6028c47f122b53b12f6aa455ea26f54aad80ad778950b21773da8d6f3b802e97c62207f400077969769aab69ed1e315cf8d7c7abe9560ce5b2d3e5cc6659cd3288008607dcd20d37d3bd464e21db1280e83838b6d6ab524d82acd90c58b8637d005a76e69a474de1cc5f432a41724e855b2a0b19b71a52150268af7a9c709ba4ccea993bdb6b7e4e6ab971e9e695b77ca73e7ae951e8b9289277b3d077e65208b010bc2f62957e87b900bd1f007ef61acf14649463be06cbb39e427f6c488214d4a4b6ed7d9c800d6c61c36db465ff836773e825334bc9a6c308efe88baf9b3bc3787b68d279234d783ef3e4064de84b20dc2a1d72eb2e0e30b33ae6368f06867ba84e35431096c288d88168a04c90c594de03c8ce09ed7673f9f27c0c15a9aead606186784b9df044f52c817a559e5273c9398043a3083613895862bf8977c1d84d582a2a22ba128dc3ff08e1ad0381928c07f01e2ff2e3c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001397aef946f4a2f3d330955086a9c61d967f0000d540c04a068b6e14b519f27392d94c6a0eae33625cea4cdc34f2c46200f14fd0f10bbb313c40e3ca46a8430a008bb54962c0c3dd8caf254437324e7440dd82041de60bb1c8e2961498c075f810000000000000008000c0104020103030000000000000014020202020202020203030202010101010201010100000000000000030000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e6300000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d487000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c000000000000000301010100000000000006401e1b8b7383e2e5b905aaf5ff8e73df2f3669ec6d652e68218193404fd92a5cde21e4748c7c1d1a46fa550a00718c20d0ebdcac8ea41e90fa1799f09d26d5a3231689b941936e7c9d1c56cdfdc8435bebcb846c2ae74e16705585dfb53dd3d054297646be6c918362e3a9320237bca41456c22cd121fee2ab43a75137c22c2fad30b09e47e1286f118db205f4e950cb9ad74f83da7b39771612702d9d352311a30f4f61b81ed790ee724dfa0b16af34654af715218e13820586bd034fcadcee5e3373176765ca2b57c47a1dc88e93fa05cdb9c8504c38681b90a9514b09af582c0c8ce8989a35d4a83b85e237716c05fa548cd0abbd1491000883dfa1f650a7d51e1b8b7383e2e5b905aaf5ff8e73df2f3669ec6d652e68218193404fd92a5cde21e4748c7c1d1a46fa550a00718c20d0ebdcac8ea41e90fa1799f09d26d5a3231689b941936e7c9d1c56cdfdc8435bebcb846c2ae74e16705585dfb53dd3d054297646be6c918362e3a9320237bca41456c22cd121fee2ab43a75137c22c2fad30b09e47e1286f118db205f4e950cb9ad74f83da7b39771612702d9d352311a30f4f61b81ed790ee724dfa0b16af34654af715218e13820586bd034fcadcee5e3373176765ca2b57c47a1dc88e93fa05cdb9c8504c38681b90a9514b09af582c0c8ce8989a35d4a83b85e237716c05fa548cd0abbd1491000883dfa1f650a7d521b211d3615f6a0bc517ca1b91a1cc830ee9d10623e044212550b98106a27de812f9112b3ffe1fbb8534d6b63a3b4d2e7da3f363777e292381bae4b529915a2a29a96393d22f2715d04ccd8a859503311c08fa7aa2a0260ac9536a844ae905db1eddc2099265b17d3c4315c335a3b21e34ac930c9def205e05e1ed4b7eb30b1b10c341dd597b65bc43da9db380092aaa25bb172f8f4bd01504be99aca81122a6174e98a02beb7bcf1a6efac0895188bf9d22520860af10311b08a47ec189489436fc2fb7fc4e1123bf41b15ce416bdc9e154385260c89cdb847c3a225652cbb10e78865c9400f3aca5f50472d90efe5b7ff79fe8a337ed890b14ae808899681f3891d43743e7c6ea9ef2b4668dd0cab181ffa9c7d65709fbd8c6f1458aa7f2f8115e6655b2217413d0319b05623e865febdc6b3d05b84495c24b331b91e9ea873b7f224a7b4ace293b6f562a3e2af552c14d76c6f85d0564f5b021da6788e94f3fe11c4f35bc8932ff469649b25a3379c4719e4c5650887eee2a41a26093af4705e3508fe05fb27232cc0e9a5b56133139667f0a530c0810d2c44abe825386d00a13c1aa98287cbc53273351635ddb9a631663fd04c1807c68294bedd13227a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013b074e03204f4cad7435d08f6ca6914d3bfbeb3b59c3db122d949b9c20d08c6709188e0f7507e9c5f02958cdef3ec3662a5a05b18535050775de705665d6c8e8249c577886d36f674db0073cc7dfaf47b059979e6e6126dbb1437a83e2e654e70b729613d8bfa5cac111607798d8e9f51fa06190ab2802a29672f229b73854f43a1408253886d2cf38ff9f1c150310310f9c5a07af9ff7f6b28b4c518e162e733ccb99d80bfbdfc6e9c69e587ea1db15503a1a9d33b487c4d37f80e1c328534209423384f0d74a20ce8bb048dcd97d6222ae78c1c3540d2ab8e53c646732492636bdcc7b0f28b5df31744fb72326829dff98203a45f8ebf0e047f48898cdb6db2e4b0198b43472a408ba716c503f72eaad685bc8d0a441d59c7a2df603fb6dbe11b4fe674bcb8d5bf7458e93afc08d1574de3d3338a8b745fcb302f6fc049243277707fb85063d342ba4371d913d3e94fc35fff7f74e5dd942db530713e924b31888f8047af9c2cbd45bc8e26ec2c16b2610990411fe9b425651dde5ec16db4e055327e9991f3204da351393d63238e8863a34e3b8a0e9eb82c10c5c638db77c3aacd81666e0cdfb25caec6c29cdc7179c0c641850ac0f30166c24909c72488509423384f0d74a20ce8bb048dcd97d6222ae78c1c3540d2ab8e53c646732492636bdcc7b0f28b5df31744fb72326829dff98203a45f8ebf0e047f48898cdb6db2e4b0198b43472a408ba716c503f72eaad685bc8d0a441d59c7a2df603fb6dbe11b4fe674bcb8d5bf7458e93afc08d1574de3d3338a8b745fcb302f6fc049243277707fb85063d342ba4371d913d3e94fc35fff7f74e5dd942db530713e924b31888f8047af9c2cbd45bc8e26ec2c16b2610990411fe9b425651dde5ec16db4e055327e9991f3204da351393d63238e8863a34e3b8a0e9eb82c10c5c638db77c3aacd81666e0cdfb25caec6c29cdc7179c0c641850ac0f30166c24909c7248850000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000030d5089697900f486566b25f937f0c13c19035483fae49286eebf770f651fd0d3450935f5c08b5ba732fec2aae8bc669e710b184f199794f62f0f1119def62f43bb05ba472fe9f607276cf0eae181f3df3e75bece43ce943391be0b4a39054f837bc0fccaab13923f84568390f6aefa9196a6fe7b297f541e70051016fe153780eaa767ff83871ece09a83b6b7081c6132dd314a36e56ca2610a002c374fa4612c0ca32c06b9eede6b755463bdf6b612de3488709ae47575b0c411260dd0b66b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013c5c59aa5381eb0793a266f332e604bfa9586714b997c0e69f62d86ff3d0bdba1eced22b1fe4ad3fb2dd796efa07efdb1876f1d2c8b4ec89dee8678f46497e620a898b9c12d595e62186a40699b2fb175a7bbf5a863310119e1710997888b04d00dd803e8573f4f5e2efa4ad24a77d03052b667076c31991da02a42511c2632b37e19db43c4cc56bed77a7a9303a422616c9b7025f170bb5c47acfce69afa17f0345761d7080e24e209afd6a601b6a044d7ecaa82f5221dcc6d3b708c2177ae5259ebd15452653edce544ddc801f91dea739caf30047210f7dd049638c0e39e81a6142eabad9ac1231abb2237fe06e217b0cce090905d80c1b5ce78973f1c6193c19b16a59bfa3a507a5854e809dd958ff93c4c6eec9b31642b70d17bc47218603e64e95a6405c5af85a7ab17f6226a722b2d4351a834605567623d543b8de7b2c807713c0be3239263b9a8883153ebc74c873f284bc9b00e8de7dc2ad63a79a137f88ec3f41cdc6d9c465777ceac143ad7e250984905e1ab04eb32a529c58671e825362c3b6fb1dbf2a04aa8f6a39ade11678c87bc81bb1c0d0e20662f245ff217dac9d3c4904e240d5fb557095c652413020338d84dd69d85c4ee69d0dba02259ebd15452653edce544ddc801f91dea739caf30047210f7dd049638c0e39e81a6142eabad9ac1231abb2237fe06e217b0cce090905d80c1b5ce78973f1c6193c19b16a59bfa3a507a5854e809dd958ff93c4c6eec9b31642b70d17bc47218603e64e95a6405c5af85a7ab17f6226a722b2d4351a834605567623d543b8de7b2c807713c0be3239263b9a8883153ebc74c873f284bc9b00e8de7dc2ad63a79a137f88ec3f41cdc6d9c465777ceac143ad7e250984905e1ab04eb32a529c58671e825362c3b6fb1dbf2a04aa8f6a39ade11678c87bc81bb1c0d0e20662f245ff217dac9d3c4904e240d5fb557095c652413020338d84dd69d85c4ee69d0dba020a4cbbb39b871defcf4bc6dd245aaf529dd9b08e97e7f2c46f9e9979d78825562e2b46ffc36d4f5685eb00c7ee014f48e8153f1f919ebfe151c8d6542e6cbaaa2b328097c5d2e75095a089fb6c5a6a784c55b5a6c101c81a2655e6066e33eeee2e5068f2500b62e78899f359b075324e60c92cad6ac5f5e3f1facd7f51f5c52313eb6578a5913238011c1163652ecd7eeb27476da593b0d4ae86ccb3f1a9f13603c736fbd97c2ca6fa8b1d62e93c6a00af516e598f9023c35254ff28582fd2a825d3645f6e411b3bee85a0adf374008ca3b61b5db5f7e46ddac27139047548c82ae9ac07bf19b73bf8be12e85a75563d086eaa37414a37d9ea20cea4043125070ffe80a5f23019e0ec880642a3959f86b64383cb2e460f25501f1c138bc12a930cbc44318fb49535b2ebc087c7de5dadef0623c6e789d2738e02813db54a097713ae7a52f4129b5e613854042e2b675db092a3928f1e5e133a424dc1f6de38231a098260efa5254e77a1eab0c4bd7f60d42653d1fb07953aeddb8b390dc20cdd3fb50d2f53229e58bd441cee45c940dcba139bd8e785eefe840ac2d181cd94ce1bbf121fe1c3aacd74d0d3605b05e0efb61a43729e22c874722597510560922c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000126a5f2925168380670d3f83a7bd3928c36b0d1d9f3303053e4453cecd10dccd02ca244ea7bb6dcc27df8e39c6932c4e07910a5affd6b00bd098462c0a784835c3470b9538776dd1b6c7c5cf1fb2e46b5c97ea31c3a93f392e6600d348686a904215e65df09ef8acd4f87d8c2b6aea41090729954662e6805302be0474d3631c30662df001373161663f7efbe2fd27d0026cf46a6840996930fa6021ee5d2ddb62c6727b4734283bebabc09dbcd16d7a7626618b1dffd0ef23222002c369aee74235ada66b30d9ea891e5d5862b7a632a32acd508c18862d2b81d2fc8f3768de01ca525994cf261576e1a2a79d4859cd5ef99c3f347c49648e11001240c89722130c644017f44194ad97d2b9ed963efd2b8d2f733b50ffbe666378d12c150c55e0f39bbfe80bbe6b52682d461269c102d6973a1c8543cfd3532f5a3da3eaf3aa333df54077c547e763f71da1a3ef3af1d354b090e6d69002d338e2e96c693dad30c20abf883ab8189c08e25e5c10c50e2ecfb8fed9be3f8ee659f0256396c252e035ca4256da6784f3d3942833ac26b91815cc957fdd91c739d12253de0e3461b3ca35bda925987b0c2c6bd7cc53d946ea0e9cfa40b73dca7fc1b0baf1f1cb9e6235ada66b30d9ea891e5d5862b7a632a32acd508c18862d2b81d2fc8f3768de01ca525994cf261576e1a2a79d4859cd5ef99c3f347c49648e11001240c89722130c644017f44194ad97d2b9ed963efd2b8d2f733b50ffbe666378d12c150c55e0f39bbfe80bbe6b52682d461269c102d6973a1c8543cfd3532f5a3da3eaf3aa333df54077c547e763f71da1a3ef3af1d354b090e6d69002d338e2e96c693dad30c20abf883ab8189c08e25e5c10c50e2ecfb8fed9be3f8ee659f0256396c252e035ca4256da6784f3d3942833ac26b91815cc957fdd91c739d12253de0e3461b3ca35bda925987b0c2c6bd7cc53d946ea0e9cfa40b73dca7fc1b0baf1f1cb9e61450b86881ee62ce14e2dc3dd9ec39fecd54d905e2116a08bcaf35074d0252d41a44f4b3245abdbba3add948fb9198013d7b5228006fa191e326d18c182b5fdf06334b596acdc68e54a65a54b3b9ab02de3ccea8bfdf7a022d54627b12a1e5ae17627d86ad2c57da40acf56e94a279678d2c4e6f242c9713399a1f630701dc041cefd86a95dc4b582147fe23cb6bdda62b2e13f63893352d8106ec2a7c51c4ce22dff2fc045e13c1a58de8c94855dcc2bbada54864782b02b04a6944aca452be0ae7592f64362eeb6c7da0c74fa53312397567d73678fb7209bb2333079be6620b4be4333bed2bd25c32590eb7a4670c482e784ac56040cdabb79588bbedac1b1bd573db3ee65572df86d66b2fd88163d94159a3b93651e2102d590782dedc9a250ace7d466517268157648e3ffa8f12b8867a0aea07087232f3c955f5a6d0a224402d27dd806593b819c36d5bdb17c967dc04890c7695a05366f840b1d7c918194445848f7a136ef48a363cdadcba8257c234ef1e1577f24323bd9b611eb00711ef7b42deaba5db5f2ab63f9abd1335f446c94fadd4056398fe1553143a73a11084c20d2cbdb2ff4ec115bc2146c5506cc3c1120455f360db4f5c72ec16fef300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011beb16ee188c239b27700cf98c43b24b27665d7d2e3fe7582b2720b534f6b391367c242c816bd311cb88bd53e79ad84f5783a2c6350cb8ca28b9adeeb9fde55421816b9474487a26380456b6987add95a210991569b27a6cf987c2abbf17b08b1b555d4e96d1a1fcce869e7334dbe6f819c62c8f406d3f495ebb84b1318eb31824349747045c816d3a7876c6d7c65a7aaf924e2735e6e53206a7ffbf8a07c79b35f671a13d4902d69e127b3f98ebbb30aa316c57bd5f74660e6cc9b314c07566199708d32e6449e450523f4e624c14d8be8baccc0b83f0e5bd5d9dfff78b4ffc2668f72cd19bb61bafadc0b19db3eb2763baec2ffdc90835dbcf92ed0874b0053ff32c1fe7f57175919b3c87eb7c683b9673c7003046bb6119a6e512d5b88feb000cd3e0180a8e8a6e64c378148397c48bd2d1fbd9063dba7f864bda2a4770163fbfdc9f87cb374bd8082ea7996e092967287f10cc2dc4771b8db5aa2c9acf93004023607834c8b427f7d1586691f6d6bb1e19eb3d1f34a47d9f7b42d365306e3ebf4f1da6f8147b3828e945ff262dce7ab01763d7b0f1e5250fc89edf060ddb0140b0e25907eb84c7d716ba00d9d231a7968198319c0736741d684e20f9f226199708d32e6449e450523f4e624c14d8be8baccc0b83f0e5bd5d9dfff78b4ffc2668f72cd19bb61bafadc0b19db3eb2763baec2ffdc90835dbcf92ed0874b0053ff32c1fe7f57175919b3c87eb7c683b9673c7003046bb6119a6e512d5b88feb000cd3e0180a8e8a6e64c378148397c48bd2d1fbd9063dba7f864bda2a4770163fbfdc9f87cb374bd8082ea7996e092967287f10cc2dc4771b8db5aa2c9acf93004023607834c8b427f7d1586691f6d6bb1e19eb3d1f34a47d9f7b42d365306e3ebf4f1da6f8147b3828e945ff262dce7ab01763d7b0f1e5250fc89edf060ddb0140b0e25907eb84c7d716ba00d9d231a7968198319c0736741d684e20f9f226038f178447887833d083f5f9a8eecdd760e68df98af3bed13f90683ba6e87fef29ad42a69c2e93f392aa66d7ed3b9df457f55990ffdac14b3659ebb609322be7188d2630c17464fb4fbb7de52171a8dc6a328c843021e0e91252173a441c440230b8c30a5d818e72164dfc87a25d6f6527306b39ec7541253196e00cd1d61e0f0f4cf45a56fae7a75c66bbac8cec0f932ab0fa0a2745341b4f14adafa0f5d1131539839b16dcf5dbafd6930df0d999b5f222708d23f1e1977a29e984f4c7b5f0010cb1362eeab2224898ba3f6a90622881a1643e8d9a66fe6b515398b0cacb2d08af2e59baaaf9f222d0b8f921328b312c533b717b05968c6720b2b1bdab162a0679d7a997174d5c8a53e7338cf77a54a055d546e4c6e93c63918aed1f87b18c12ec8cccd6af177c0e2620749e1163989007659920e35aa91024023fe4fff24911daf319db04cf2ed44b826a3fb1153d8a66070abc09575acc8bd7976038b82b3af1b8676a9c6715613248afff088ad1e72b661557f376afb5b111a386c66ec236c607af4a3782480462bddcbb955b8bfa052184fcb056d951dd8282068c0c9e2084388c021785ab4703cf673ba086e5d1f8f0becbbfd85ebcfe4fdafc8a3875000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000116d3b1db91737ef1d5de49f8026bb04fc6d3241e5863eef519ab29f189f68294096c2b5b04baed35e9cf07fd7a6d1ccba9a43c176caef07f87ddf7007a358cbb1878eff685cc564b57c7c96b708955eb47716f4ca7a74c670b0ad965b9b62ff3008beb0fb6ad44266273ea5660ac2ce3336d48e16bd72c12b8bba910ef3c1c8924b0f9649626789290420e7cd9c80f1aeca4e39c53b888e5e82572cefc81e0a62a0b604225db8906be57d35f6f784ef72c5b8e2436c19449e8bae6548b0cb3612bd0405ab456f0bea331cde047bb2c125949cbc4a98bfd60a8e0118e69765e7a142fbfa54ba90f415cce321fb844d3edc8fccd375fc0fbbaf04d1f5e9689a1871b1141c585b2b3b92ff9056166a7dc5b579d2fe333d5079080d8c5010f4fd85f24eebe3a7a4d4c46d006fa9e995823a4caa96918d577f18b18546bebf0b027a2075648db9c7d829defdd1ae701474dc87184bd77f08f339b51e1772b4c8f39d938a9b72463827d621022e518feb8b237b0c1db8418bdc580474bb9c1b370c62824af6c4a0e738d15af518683066484ea3797b357b2cc0208996753d87ecc213d1b5093b5f18c72ea50ae797cf99b7b15eaaee5a45680f712ffc5dd148133dec42bd0405ab456f0bea331cde047bb2c125949cbc4a98bfd60a8e0118e69765e7a142fbfa54ba90f415cce321fb844d3edc8fccd375fc0fbbaf04d1f5e9689a1871b1141c585b2b3b92ff9056166a7dc5b579d2fe333d5079080d8c5010f4fd85f24eebe3a7a4d4c46d006fa9e995823a4caa96918d577f18b18546bebf0b027a2075648db9c7d829defdd1ae701474dc87184bd77f08f339b51e1772b4c8f39d938a9b72463827d621022e518feb8b237b0c1db8418bdc580474bb9c1b370c62824af6c4a0e738d15af518683066484ea3797b357b2cc0208996753d87ecc213d1b5093b5f18c72ea50ae797cf99b7b15eaaee5a45680f712ffc5dd148133dec43f2dfc56a569b232fb0cd164124b4a1e052b4717ad55508e134cb9e5129703ba3d9d000d72a76e20d6b8687807415d47d0c422b094cc1d1f9a10deaf8daff36704f22585549da1e68539d3d36cdc2659ce51f63b25470aff1ddf5ced5598676b16cd476b360228fe65b0b9a7056b4e59fa3726f9afd6da459c5518229693f19a165e70d81fa89ff379620cc0a77eb1f40a5c5c384f0ff180105cc548ef874c7c19a18f27e057600c869df33f58814e0c0f589684b7e9c954a2851f68d078b386069905e02e02d8387c19bd3dcbb7baa7d9413faddb8f71dcf9dcb32297f41b6106887301806dbc3e19d032ea7e4059720b2a46eebfabb9612a0461482c62782f31e97f7e1a62f828b9e84050ed2b73fad35c1c170d5cb5aecfbcdfc1301f61452d3e5d8707fecb838d78079e0e2e1bb84a57aa8f0161a99086a1976b2baf64fb0c49a1b45ea7f25482a0ac4ed04664e0eee8a9691c7d6901db9aa3abf48ba7893322e8fa845ee3f84ff9597992abf8947a23eb02db9fb1649f92651459092a253b2a4af4f3090a24615865f0bab7589741152f134cc0b6c825f3d8b9db248292168796af202ed7d6d64441efe438e03066abb1ce30edaa9751f0937626387a5b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000102724c839ac2868a79b3abea5d4b3a393d8c96f8cb8de831d2a82bd3e227496f0845947f943e84d3c5d9e5e7ad501401fb51b3657cb392d5287ca3f5d609a81939a35dba926df99b6c5a07cde0f60cc9ab3351f7d08a905715179b4c62f3293b2cb44da81a573ff3c5171cbed85fbc8f89a41d1e18d4dfd889fb8d9c156338092c8a101d2733526d7e8102e90621bfd94e67fc3435717b680d2dde7ff1f6e539302203d45abc159ab973bfb271be1ae3e51adac2c9584841fe437c314395c57e2ef652b3ae7c09697e77730e53638cdce761b53eaca34b8d647514d2ee86b9da1109ad4c5183f69681888cf1ac9c73233ae4e3bd5ca9ad8e34b81c1a117946272acf9d82686c2f0f78553f47a0f1c0501e14bf4543498e702ac1d557a8a1a13f1530627d9793d0f087aac0b85f0e3fb00431d9b6c6036aab6e6b5b95575e5ec2160e138c0a1ceb4d59aa3c6624b8c1902f93f1663488dcde0a4197ef4b28263829f1ec73f5e314b2a655c399db473e6ff2b2a795d4c41c3d8eeb98fdb4d7d9c92e4661bc32909882c0532dfeb79bc7d0cb9d1e02fd5f573a9a1ac6bf77c8bf1711b99e43cd6f677d3facd2014864382f56a97af90beda1e0ff126a2d883740ea2ef652b3ae7c09697e77730e53638cdce761b53eaca34b8d647514d2ee86b9da1109ad4c5183f69681888cf1ac9c73233ae4e3bd5ca9ad8e34b81c1a117946272acf9d82686c2f0f78553f47a0f1c0501e14bf4543498e702ac1d557a8a1a13f1530627d9793d0f087aac0b85f0e3fb00431d9b6c6036aab6e6b5b95575e5ec2160e138c0a1ceb4d59aa3c6624b8c1902f93f1663488dcde0a4197ef4b28263829f1ec73f5e314b2a655c399db473e6ff2b2a795d4c41c3d8eeb98fdb4d7d9c92e4661bc32909882c0532dfeb79bc7d0cb9d1e02fd5f573a9a1ac6bf77c8bf1711b99e43cd6f677d3facd2014864382f56a97af90beda1e0ff126a2d883740ea1de3d4bce06b42198eae94a6f1dfdc75dc24f6997510e65a24910425e021ae2333f2b7ed47f7856ef53c59d1176dc340e16dbd4ffbeaa34b8f12f425e46753030e336e2e5226abe8fbcdff736db4e3f738e8b6205468b8d67aa5c343273535b0047753774a51f6cfa571f34fe94a79e3ecb46f1877dd157c8ba2e5c75ff3b4ff0fa1ae59fddb6b9adaf526975e39df5458f9932fa9e19ad1fa451d7ab12745a415ea52416e7a587aec0b33c1f23bf92f14f4cfcdb7542338aa763af82c0cfaf52c0495ad8dee3910777e6ff0726b913a16209edefb4df9e6d4040a1e2c1ff6161c23a9dd8057d4424e0aa40a65228e8ad90ea49260f18f97874f0461b4902bf8115f91808ea4f0d3608dee915625e47cae0fe746151e4ea622de1a4ec99bd0052c160ccdcc3eccbd04f689f695d8c129f99a4962fcb2f2cff6efb9c305db3cd32508dd874cee153ed8dd03aedd20fd55c2ce6fa932b5ccacc5bb60761ae953251552905690cfcfc984cb1e90e3bcc995106535da7ee5771176a716317c7958352eee419f3d7ce03e589c2ebe6647954bc31ee10efa8985d0bd778ed4d6a200110add71751236b3a5ab2c12dc6512d1442a976a95082255e9cdaeb8f4b836b9ed00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010bdcf3a50e1c2740f10c63fafb9213dc1372c8907669bd12bd59edcf78f5382a2319485744650301d738d25c6acea202161badc3e30d202c1690b054fc2a2d4b37deb4d6275a0eb18a4b7d8e05e8e841cfe268cfdffbb59d4f61663e6b29da0738081f39d703d8783385ee00278e66981eb640edb2f13651b9094d917936131908b4a353c69d8e35bef969d0fe364da8cc5cce5c7ffb963b665c4b7c7d08360b2a2e814d9bbbf39db37ed3d6a06a179a25b97be86d0da12aa83798b1a31a2e4934016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe00bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f861250210407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c3bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a51423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d33524b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200634016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe00bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f861250210407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c3bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a51423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d33524b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f120063d02f7a85a011ab3d193efa523c5d182e55a5787410c926429866125060f3aa428d4513e02feb3da4b5ca97f23845ccd2494d1c529f1e012ca0e61d129edba562ae9ac07bf19b73bf8be12e85a75563d086eaa37414a37d9ea20cea40431250725d3645f6e411b3bee85a0adf374008ca3b61b5db5f7e46ddac27139047548c80ecb69fa9e2459cff953c2509f39e344097798a0225f99849aa7eafb331f51720ab77f8f77b9f06824e6bb047d95b9828160b0b8001b2b5de47b979d8d0a629f1b1cab55855384e9b66f3a59f489a5b3877df175e591c7aecb6fa1ae9433943d1c540f1f7b7f2291d1eb33f1471739d15d07e38e9aad0f94396f5db86d0a74f03f03b651336479cf7e5f8e176e2dc3bdb8cb77b08c79330524d0c7c37a077c6e292e9dc6880900dedba48d1d694b3b26fc8fe3ecec53611c003a1900b101b5093ac0d231ab34d03d1e7f80e5a225b34fdd32e8189f4a590e142acc9ccea949d91ba9c8c6afbe6cbab07fc606b34f4399859b369b265719a5c9481f37e65c5a3a1224da528dde0285944d29f07843b8aacdce3e7002b30e8a85bd90230a9c258e1d5da3e25fa63f43fa34e304957ff5d1a3d35de359b816331b4beeb998868c2e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010143cefbbaf645c7636246b17a3d9dd7c17193c380ba635b4497d7873d59ac2c139440638326766193946c8df7df1acfcc2d51b34b4ce2eb1d3f88fe8b2983420e0d025664586f2340986e96c7431a1cbb961b962ad55815e8272c5f8c02f07726951aa9ad6c828ab5f225e060a8f17da3f990faa09b507ec8611a888378785732337d5aa6f5a19910865a962b09061c4f4ab8195a2c6e64d32bef72d824289020e655e5c0ac823e70207e1a51e86c5669f3162317d8e8f40265932637baaf1101844652b7767569126315e53419b86ba772190d84ec0ef1b498b7f94d9e39fe3e7bb9ad48898a96ed9cea1acbe647947ad47fee8460ea29e49478f3b261c60307955f9d95504b0d5bef6d7a04809a1a453a7d43989c4ab886fb97de841721f6386aa0626aafb4f2a4109285fb7f65e5dd0c1bb870b0ae631231990e7be8de0b25eade13ea917742cbad2362168302835a247251fb0d759aa2e9f7589473a9ce1a1521ec156e88bd3452dc9de97cfd7cc82226aa0e3f8380f64339946b8c56333d96566394d7544dfa61b0ea708f0c907e2909a1d4a959cdfc3772e0e64251040269a99c6b28abb2059e4f158f70f36fa41d8f5a34a39f4d9cf5be0c19bdaefd01844652b7767569126315e53419b86ba772190d84ec0ef1b498b7f94d9e39fe3e7bb9ad48898a96ed9cea1acbe647947ad47fee8460ea29e49478f3b261c60307955f9d95504b0d5bef6d7a04809a1a453a7d43989c4ab886fb97de841721f6386aa0626aafb4f2a4109285fb7f65e5dd0c1bb870b0ae631231990e7be8de0b25eade13ea917742cbad2362168302835a247251fb0d759aa2e9f7589473a9ce1a1521ec156e88bd3452dc9de97cfd7cc82226aa0e3f8380f64339946b8c56333d96566394d7544dfa61b0ea708f0c907e2909a1d4a959cdfc3772e0e64251040269a99c6b28abb2059e4f158f70f36fa41d8f5a34a39f4d9cf5be0c19bdaefd2813fcc45e8a5285e1cbacf5e834ff98a3fcc1b460a42b7d0660eb37cdfa139401abfccce5b34abbe8de6249bb2c8c7771066efce6bff4153e2ce331f0dd5ea81f2bd313a18b1e42d89b7d207b2f2c1e05d28aef36909fdc84213eedbe51e19214e27fca6323d4584eed848a4f11be91bd8da27317e54d1045a1f1580a1c351c014e8ca1340b71803f6c6aca735bbfcd6e44bec4594c9fbf3aa18eef149d74730f7ce8acd88fdc066f58801ff563035b4821eadbea8931193a84e1a44e9ea2901f98ffbd8a3da345af88fb7fe10645f12fb00c65b19dbc221d0bcb634a1002f613ce0233883d7e84dede2a35057430ae15ae6c3f69e55db5a012308e304b9caf386e50ac287fdf164671aa74a1a0fbcd991e733b3c4d22cd3ad54fd414983f86154741743258f7f3339586900485c8b8b9db97e47dcd0c7472c86185bf6287ef0950f3cbfb7c66bf4cab00062a21cbdb172eb8b53313b03a0e5493a79246a0521920edba972c04b4413bd718855927b0832e20f636920f806c5e0072a06de3b81d7d530514521efdf9645ba452bc7a87c60ede23b639ad37aa2b388abc959ad10d3193efe14d043381cee2719185b8426a97e763868ff513629e61d6323caf3700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013b6b9c73a07dbcbb9623b54515234117aee9dd9b895762a8bac498ce487388e010abd2693f80de75d448bf4fc83fc6d09a6e8667dde5788732c48435e913dc73104bde2ad832adf4b8fdb681fcebbf5f5f79f2eed0959504933e03ea6b0942ce0045343ed52ed0e08ff6152fb0e4621aaa4bad90e352f9808dedabde2e394da81100079377da2ee8d79b8ba882f94451afe9a4578c0503ce6f00c3d8b2ed11e931db04cd50ad0d5ff8a795b8e223f933d9dc4cc4f0fd431b1bbb87d25b32bcd90076cafb6cbb7b6b52f780fabf054594d215b7b6ed9bf098f08207613d4d66803f89350493448494ad087f0540faba6b5030e1451bb10882a8ab298bc2b299810251f6e91fa969189ed584e5bb1a5be81a6c9692a40bb2fcb28a24e6328300803dae0916e05696e7612a7b1a44e5a41807da02696541461ee6a30c06cd7cff810b99d28d9e4f0d7b1a2b987ca783cb88841ef0dd343a7eef7cb2b87efc8f028034662d7261b0f284e5d46783587c34779e27a81ed5127a2c1c7a786e0370fd813a011cc4178b436782d9fa6f4592f9aa949ab45205247aad6f7d9a7aeecb0c8005fee33be874bc987d260590ba6d06558dabe4aa04287e6e29af96721134f3810076cafb6cbb7b6b52f780fabf054594d215b7b6ed9bf098f08207613d4d66803f89350493448494ad087f0540faba6b5030e1451bb10882a8ab298bc2b299810251f6e91fa969189ed584e5bb1a5be81a6c9692a40bb2fcb28a24e6328300803dae0916e05696e7612a7b1a44e5a41807da02696541461ee6a30c06cd7cff810b99d28d9e4f0d7b1a2b987ca783cb88841ef0dd343a7eef7cb2b87efc8f028034662d7261b0f284e5d46783587c34779e27a81ed5127a2c1c7a786e0370fd813a011cc4178b436782d9fa6f4592f9aa949ab45205247aad6f7d9a7aeecb0c8005fee33be874bc987d260590ba6d06558dabe4aa04287e6e29af96721134f3811409ce8c93f7f811e4366bad70c664e8906d7d5143809c2eb157f590d918d5c922b237df1957211ad9bb329c95503a3a65dfa1e2e6862db3065a1725c63affb0010cb1362eeab2224898ba3f6a90622881a1643e8d9a66fe6b515398b0cacb2d08af2e59baaaf9f222d0b8f921328b312c533b717b05968c6720b2b1bdab162a0a2127e241e898c75310b86d757662367ff7d7149f5f38db6df53d1481a724163f24c158dd0d5aa612f8c1ff4e58b60b116b20a97d37e932d5f3ba32944b3dfc1d3940d6b3ac44d0af9c2bac064408e12f59525e0ddefe41cefe42734d8cbb072bcc95c7b2c1f6595dd0eb930de8e6956b4073653d487c9551bf2306de9c8047229fafd6c6001f8451e1521cb0adc57ef569af29ef1ef974b5cc2377a18a929b10d8d57f4bf168b9a643d118f18f504093c97d50b25e9f2954726d5e927afa9b2612e27fa4d5782e70f00cfe75824a65c6420d99628ebc29cd8b5a628f0b2e192628a912af774137b0850073a52f6dc427126f570d49018794a9c0706733ef08068974e58f253445a77093ffc604ae5c8530c7cde8bc5dd49ac7813f1f5c26d920aac848056eced72587dc83fba8af2b70a95c19c5a37577233cf3ada6bb6cff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011ef76be62ad6e7e02da14a928ca9b3e101b5a6712dd859d213a063fb74e55e8b1591b5d002ab0bc1bd96a2dac2e8c7271c681da4f39a3f1eaf8f4b4ca6d7b944127d873b22104d0f0b46375ad78960db322003ce6a07ed94a2aadeceb42c18672defb1a5454faeb43acad301a70ab42518687d10fa14e9269b31ced6d7a65c68303f73320521c1731a2de80485b99196bda820a588904619cebb18d61ecd79b030174d1407cd3d6e0f9eee99117562f9aa89ce3de0a2853abaae283abb50c9e22536d7ae9327c01d3159ed3ae3849187e4fded6c3b9bbd494a7b15ae78e51dfe1ac928516cd83fe2cea612c51c7b6e783d48ab8fcdb13bd24eb21b3e871ae2033a123668dfc6c091f6c1a2267196d7a7346871251770c037420d0a8e5c7995f405edc99720393f6e093e5dd98e692858edde27d6f1dc38e45720265ea3866a0d225b100c5ee1c2d9d1c82ac037f236437cefd1c94fffdca5e58c7113ce5fedc01da4eff3a11e3d262e37d53fc80dc9bca556c732b94d1c75b3a0bfd931a012412bc7503dda68ce4118e8d5c117bb0f512c21e6f67d655d064963d38907dfa4be1438afc2259731bee7172a3ee844f0aef624b2058be79c154fc95d63f8205b432536d7ae9327c01d3159ed3ae3849187e4fded6c3b9bbd494a7b15ae78e51dfe1ac928516cd83fe2cea612c51c7b6e783d48ab8fcdb13bd24eb21b3e871ae2033a123668dfc6c091f6c1a2267196d7a7346871251770c037420d0a8e5c7995f405edc99720393f6e093e5dd98e692858edde27d6f1dc38e45720265ea3866a0d225b100c5ee1c2d9d1c82ac037f236437cefd1c94fffdca5e58c7113ce5fedc01da4eff3a11e3d262e37d53fc80dc9bca556c732b94d1c75b3a0bfd931a012412bc7503dda68ce4118e8d5c117bb0f512c21e6f67d655d064963d38907dfa4be1438afc2259731bee7172a3ee844f0aef624b2058be79c154fc95d63f8205b432adc0f1222742d33d793127796e834835158809590c722740b4b4811d9b7276b3b11c964189a71f114f8dba1ca7ac39f51d688fe8f7cfe6545df9575e3243c762200324024e69b70ced70d6d249c0adcdf0349867da0ff2750147c07c241622c27ba0c8147fe4844a8ef6668d2dd569ed454cb97387302e7142b452a2ef65a3c16854b42245a4704e7faa14323a277476b3acca92230f419d5c4f75a134fc6b007ae7619936a478d41c026fd88646efe6a9e4b19fc4acdf037604271383db15d0abe003460a462f4fc31a0637f8d253719132698391ea5d48d2a75d69693a9322b06f1edd79995c579b3c01d6adf168779937cc9dc173181c73c00ff50f7a9851a41181f640a7403918b2c004e2f502ff7f0bb47ada97039c8f9d36a7842d4552f0307cd4acf9a6b1384492e6263d501fcee8a18e58a41afc686146ff1ee4ba91781e5119e26caaf6fb92129f0a492650d195901f356d80689ff27635e3594ce0902a95e3d089d845901c437ddffa764910f58ee88434d4ada59fa79f38f25850ba0c5c1b728a963a4ed4bc85075192a68444ed9e670f2982d89aaa858b7423113b5c6893b3b2420508f6a10f58e0fc150e23935a2be4fc7a1dd3afe4324af0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013d63118ee0faf133dc4700cd42aa9925ba57e373071764e4a1d4befdce01ad7e1650d05af8c79e4e162826167c3205b1d9334e7261dafc200a0068a7d309299f2c2d20c6eae1c8e4207d1e617c9ea297b0415a352d9098c8e89574c9834ba31c370c6a9cc1b25bb7dd86dd97b019175ecabebecb29e0ee628742d0db4cf3bda70b8e9dca6f315a0fa44f5af56e0898fb8ae5f5eb0af5843f7a563621333a4d323917e0fe9bc744e38d5bb00144dcef1c420810a58913ce26b0def3a812d0aeb31961932c86c70d27431b51514f0a4e8ee6d185fb5db2d86e2d066bab217aefa8269e6cd37938f2d8bce4aeaeb0f5b1713b751300ab9a20ad6c26c541de8510593ee7dfdea1e341c44f8896968b3388ca5fd104eccb31410b47f2e96aa766ae47011820215e1cbe3bb077696974cc7735c275940f3e1bb810513a4782589951ba3a875f59297048d58daaf0f0b801abf355fab4afd2c260ca0309cb614501675f0578a0a6d68fb72a72550f0f47fe540ccc4be44c368a98519623658bbafe98a224a4dcbdcf316c2bc456b4b398085bc024cb237ef897ff83aa7c3532590704d71b5b234230ce93d43ba94b4c67f7a43ffd7b757d10b4f997eeb0fbbaa6f8fb2a1961932c86c70d27431b51514f0a4e8ee6d185fb5db2d86e2d066bab217aefa8269e6cd37938f2d8bce4aeaeb0f5b1713b751300ab9a20ad6c26c541de8510593ee7dfdea1e341c44f8896968b3388ca5fd104eccb31410b47f2e96aa766ae47011820215e1cbe3bb077696974cc7735c275940f3e1bb810513a4782589951ba3a875f59297048d58daaf0f0b801abf355fab4afd2c260ca0309cb614501675f0578a0a6d68fb72a72550f0f47fe540ccc4be44c368a98519623658bbafe98a224a4dcbdcf316c2bc456b4b398085bc024cb237ef897ff83aa7c3532590704d71b5b234230ce93d43ba94b4c67f7a43ffd7b757d10b4f997eeb0fbbaa6f8fb2a23e05acac8a61cb993ec659c0d776d653174f6fb40fe18fe66557cc5aef96e892256a7084415371e03a09af0c5e9eaef22518cb5c24cc2f8985c7adc3ba2275d07bac4c07890e1569b02f52c0b753f5d714001955f6fccc2da327d9f914ca2211d346632101230652aed2e08b58ff02fb85157667fbd12938e868e28895fa9a006b63c5784298261fdbcd42f0eaca7b5553714b0d469db00708bf2789107b57b04371e0860c4a6721f59ff5befb1777b7a1f05f519d1b74b388c5ddefcf9939511c1adfd13df51e88b6d12f4c8b0f50a84ed479ac4e13d93ba2a32c692cd94653e2aefb3fdc36a87911a687680f69e292b5a7586b5396fea7aa6d6029b271a8c0f7703060bb5570f74d3fb958399eb74d829e54cd901369c0066cac3a1e560cd33f0579fde0f34c6e16b75f5ce232f41531279794b06d084ea4344c4b8c2125620637bf5fd7292eb3cd32c758105d23add806b301422f8891b91030e8313ca9b1c7d4f27373a4af6a313c9a16932525ba15f047df135b30eb3ab227b2174438127c3c5602d2129ca10eb09c5123b6a7b040e5579b407bdbb1de3f870123d7184130924584301a804419c19381a5491f0f891ec80cf3c5c2ced1f5566fe02fbd700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011b5cdac5added3ca6f7985ba98cc73cac9c693fc242533c7cd5cb14d9b043536310cfa1903dabbdd69cca8e0e9a298b6369483e59b0eaf7bbff78b19cb5db05812b8922a9115daefdf287be3d169ea87de16853281125a96fc26b57103ce18730f4ffcfd88eb83a05627feae7fec419f74f20a5b98b407a498b0bccf8ae01e3937e5149d21d3338ee3babc23e7e9603e12002913752dbd0aebb7353672ce74ee27f49c4c7e586b835d37c7392d6cd39ca385ab8957b83f273e74a5b405c921913aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a061301911905583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee82546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d5791ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a883a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a623ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c31c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e3aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a061301911905583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee82546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d5791ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a883a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a623ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c31c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e10e4e19dca1485e517e39daefc575641d746eb11f4563553daf7a6f130f4014e3324cc91bdb2b0a03184c9d7ad2a1f6ad781260fb608c498f05cf42411a40a082127b5ed4b84224af25f7a00784c5c52d51b856314ca63a6521dfe290651040e3e9eee022eac85cc17783034e145d8fd266831d6482545cae9be6ec01cd1aada13a6a00bf3edb5ed0b5d75f6a8de22fc1fb43f3650806a15376b5ecc5913e8bb3586f7b75a49b576d8f16d07100fa281d7bff044fdb68e1795cc3bc13b46c4363e7c5f19caff670ba36df508fc7ff2867ffec62dd9d891c2cca2c51239f22b9e288c7ec125a3eed1e9e87e3537c636ea3fc9a93862aa8bff3df8245926a94ce930592c2a209f517b40c2d7304132ec6c487a8ff34d3f48a643e15fb655ede290229b4337fd5e58c6a70e25e2358f1d3c1c1469e96a664a487876094f589fcfe50f1e11a45a52518e313e7a56b36820d828eb5388c28d0aa3848d39a4dd32ccb72041c61194b848a54952adee12b07ac6bcbad718d914f7c133c4b106d7af0b881d6a21b7d74f870100b8293d2e07d11d0685508ffaf71d13f2b79a9a10e940d732730a72287ecd2932ae7dfeca084af70d77b7d4c70a8ed6a5caea70c4fdab1f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012a011a4f7331bc20e8d872dce61ac4be0333a5483b73f6844110ad3dca8c186c37809903bfced672e0f320b5d4dbebe53e9747aebe9dce65b24aa4d095bab53324c3d84c9a73622946d9738151cee29e727ec77bd8ef1b5fb7829c7f1f2daf87141bca7feabc44065ffa1d528b32fc949936bb28028c6aa26da654a3a4bb665f1b4c8742764394f14aa5db7b75a3087a422ec28ee2ae6d74967f52d068e7578303f031d4c4fb8a88314ec1406a1cbecd77eed488dd17bd849157bcac39dcf5fb21f02393c200cfb387aefbe2a2edf95f5cb0e406348608fa9b876c53a651c0931e0fdc6c3dff304c7851041d5d1206a0c595b4f5d4c6f020fda5c49959ae3f6e29b0b1e2ca040e81a66aeb6d2ea5dedc8ae74226f4043aadd74abbc83f98c2dd164f4e1d35fbf17e59951492d15a2123975f56d51548be6dc1e27524c0673d241073796df214488840169921e93d5a4e4fb07fcea82e3a1268ee18223dfbce4e2f8c86920debb777bfe966de16c2a5b1d296192d611ebf09303f18cac20431b312415f25ba656aa94070fda98e32c3876c2be60d3f9a2940737947be35eb07852dbea0da459a9556bf8f025671cd3c78b61ab2eec9b2cfdb25b3e92eca14f87c21f02393c200cfb387aefbe2a2edf95f5cb0e406348608fa9b876c53a651c0931e0fdc6c3dff304c7851041d5d1206a0c595b4f5d4c6f020fda5c49959ae3f6e29b0b1e2ca040e81a66aeb6d2ea5dedc8ae74226f4043aadd74abbc83f98c2dd164f4e1d35fbf17e59951492d15a2123975f56d51548be6dc1e27524c0673d241073796df214488840169921e93d5a4e4fb07fcea82e3a1268ee18223dfbce4e2f8c86920debb777bfe966de16c2a5b1d296192d611ebf09303f18cac20431b312415f25ba656aa94070fda98e32c3876c2be60d3f9a2940737947be35eb07852dbea0da459a9556bf8f025671cd3c78b61ab2eec9b2cfdb25b3e92eca14f87c0f261953e056fc73fc3a18fa43a59b459f165b12cd7cfc28fabadfaf919f81c71d763af3cdbb5bd24300924a36f9fdc11899615f61b1ee7f430d03231ebd938e2926bfac18d1a361bc491e6f1d1da80702f89b095993225e2bf4d0175db1a83e2f585a47608182c75e22660eb0c6e35429cfe3576a764686b84d8367c6c7ba443f1e0f01026dde2c64f62e9ccf87c56c4abc660ace5907cb8fcdfb66917fb24529be6f2422a6108e5f6233e47627412e1bd318da147ac47795282d7ee6c8b5ce239d3c6c76f208cbfc3674abe80a682cf4365a1ed0f2a375e20c939d130c63091761239d4fb718c435abbb5f2cc7dfe5b3f06a28fb937500bda236c456ee8c722f739046b8d5f8caa60dcaaa86df6f7f6e25eecd3fb2f3ca5734439108d4b78b0ef3842e128504b12bcd03af94a592d8b744ab6296cd43a42060ac5c477f1bb81d56a167d6b76e2d9410b4a6620a003aefd9cd6193c5b87207d2b7805573221438fab99eabcb14621010c09757adc50dd16c299800deccf74cea8c0d194d957c3eaa1496b527b496a8113838287f632946778f5df6e67f06596a2b0884e92aae103064ca39cc102c089a804ceea623ef61cc3e4fd78dbf8941ccb89faf5ede2e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000110c8886208ce36bde7237baf5a345edfac3023acf9b883dc5b3a2bd13cb652e10bc796d908cc2ab6c9e44358ed778564566a133d20bed05b8461a0d3ad4ddabe15d9b3626ed3a492b70deac0adf67ebcbb2fbe3f3de6713894a0b478751cd7853d4a61121319187ac38799b7961ad3f9193886243eb684f253f50a9586d7dcac31c00435cd5482bce8e03a06da3fa30e29f5caf58a3a5cf5c9b695d80d062f503962e0b79fee462083923d50823e59a0823cdbbd529a4a7e72264c5e01c071740a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa135eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5603256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c85250da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b6044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b2a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a1584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff770a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa135eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5603256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c85250da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b6044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b2a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a1584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff773028cef393b3254af4291ab729ba2e2c73a7728cc6a4bff3b6d500b56f9a3a043bd0694f2b7a3ad746f17d50e5fe37e91abe551ae86d56809a63c9ce35b4e64f17bef5c294c16a4f0d8fbf9fede424fa622ca71b64559b0a6df07e7121375e35316ea200b9760114d6bf235dcb09a0839547885fe9e15d225f471c1c73234ebb1e77d7bba44487cb752bcd5c16594c585ff77d2337cbb0674f1e0246f515c70904e9de920a39c96247b149e10dfe800f1676decb03e7d2f4b97e0faf9f7e4c503e9eee022eac85cc17783034e145d8fd266831d6482545cae9be6ec01cd1aada2127b5ed4b84224af25f7a00784c5c52d51b856314ca63a6521dfe290651040e3902a76361ae17a62722c3fa45ba1290b286d61bf7d9ffb0d099fc5724d63c3c2f616a24365573c958cc48d37b4806cf1bfb7c49a76ead000a105c17a13082c13c2fea06e74fc7cc2e9946b68ebb048cf5c8e38c8e611f7562def6c3ff951f7d299bf7227cad9d22d79843d62848e4983bdd282d0de807c86c77255c2117add5287a45f9da3ac701bb356c255a1a9bb0f7840ddcb536f0fe9e27a51e00424ace028eb257184eb3f4e99cb46cbe4697473cae24af90dddd71a4419770594586540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001025f0ffca969cea05b4332041c59f82c70b16d7e5c44ed89127b2dda824de3f930bfbce1976ed3a01c6aaa75c6ff98f2873eef4c008908592af8252cbe9c4d110daee137e62b1b95b1720daf5ca613201654685a1a965c8ee32488e800d2a9d737324f45bce792ba69305fe7b2a5df35a86d99c37607e4c1e55baafb5d83ee7708988eb7966c12422fd5f30769b5d1df2f5c40ec2950b20f87b892c4d5776fd61f5f8256d6bfbb813cc93cc02ed3567ac3cea3c221adad72a80115353bcb9e461569f4d3abaea12fd118434a90511e828ce4c46bc52b8ac40231ab03b177b1932a960b2c54515ed02ee7bcb56faee17d9561d49044216e5796fb85e94e884e6e2b11c8225a6925ef15795074d195988c9e313d1ed08cbcb871cb2625775677de14ee37dda596da10ea86af8b2e6a677384155bdd38c03c6327620ac788a988231758e8abc40dbdab6b5e924817ebfabeb02266a5f6d8c4476d702bf454b0575328a717543bf2425494a16db7e814054172243256127434d42bbd04f8ab4fa8ae34bc8b5ad444b45918d8db68779be5b94e656841c8eedc498a03aad8a771b49e0b4374a52bbb4ba6e727249788641a46d3e130ba405e1cd20f298614588e4b631569f4d3abaea12fd118434a90511e828ce4c46bc52b8ac40231ab03b177b1932a960b2c54515ed02ee7bcb56faee17d9561d49044216e5796fb85e94e884e6e2b11c8225a6925ef15795074d195988c9e313d1ed08cbcb871cb2625775677de14ee37dda596da10ea86af8b2e6a677384155bdd38c03c6327620ac788a988231758e8abc40dbdab6b5e924817ebfabeb02266a5f6d8c4476d702bf454b0575328a717543bf2425494a16db7e814054172243256127434d42bbd04f8ab4fa8ae34bc8b5ad444b45918d8db68779be5b94e656841c8eedc498a03aad8a771b49e0b4374a52bbb4ba6e727249788641a46d3e130ba405e1cd20f298614588e4b631eaeb505a7e79a10e66bfe193f5c9dcdac9682ed54bfb16a772b4e9d65b2cbc2365b4dec169784e5ff693bdcd0c7a2a1cd2567a3d664142dbb5234aef9f1df190f127cced7eb0ea1c02cf6af23a9147ad40d422b9a66d1b30ad25c173b74f6800a32a59dff1dd7eb5df51328ce1801e61ca302baa5a425b367f4cbb1b75148cc19b3bd19be75aab658636ee3ef0833c3dfda1156aea3d795be49fa20c0dff32b2adb6f2a2e2296d7a18485030dd13110ff4489dabd22d985cbd8b9196542b4ed10407c31b841422e86976109dd7c949f151072730ca1d2fd121be47700bbb21a309e7795e020f0d75d268302558f2d73f8605da99ba7ebfbaacd7556fd20a1430e8496034aedcc30f42af459aa231c1a8bc69876893fa9c01c7274c2bb326c620ea1b6ab368ebcf860ac265f962fe650c551564ac3875de6a28288320774ddd22b08a8c7dfbb45f308bedc96c6e958c3a3e5e806896a8daca3a30ee9cfa6efe6073b51dd2b7ec1656fe2910743df336d1f24793190a46c086e81e5b130ac9d803d6b3ab5b2ea9fd321134178b072ed7ef6eda2fe211e738c3a0afb46afa585f42a462438cef16b9dbf1b5b279643f2190843748e77c1be660691869f2924e49c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012b3316b1d1e6a3fc6d8eb076f97d9ccd1be3779882ad9d5bea13e56bb2def191011a189ffb82756e16a5a42a2906299a777d65fa8c91cbbf294792f794cb5d0f11be203761c293390befc670e8a92e0001f637e63653b5054af54ec9dae3c0ae2c92f5819266ca23cb9111987f1b60f9722eaaad11e5652beb871838d26b890b016def64b49cb5bc66d7601e6a9e3ca5d50c49a736323111b0cd679198491d9218e70d51196f6a34d8a1af651cac8270faed231d3dd1676d2a386fd6564548c035eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5600a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa10da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c8525044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b61584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff772a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a35eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5600a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa10da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c8525044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b61584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff772a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a3bd0694f2b7a3ad746f17d50e5fe37e91abe551ae86d56809a63c9ce35b4e64f3028cef393b3254af4291ab729ba2e2c73a7728cc6a4bff3b6d500b56f9a3a04316ea200b9760114d6bf235dcb09a0839547885fe9e15d225f471c1c73234ebb17bef5c294c16a4f0d8fbf9fede424fa622ca71b64559b0a6df07e7121375e3504e9de920a39c96247b149e10dfe800f1676decb03e7d2f4b97e0faf9f7e4c501e77d7bba44487cb752bcd5c16594c585ff77d2337cbb0674f1e0246f515c7092127b5ed4b84224af25f7a00784c5c52d51b856314ca63a6521dfe290651040e3e9eee022eac85cc17783034e145d8fd266831d6482545cae9be6ec01cd1aada2f616a24365573c958cc48d37b4806cf1bfb7c49a76ead000a105c17a13082c13902a76361ae17a62722c3fa45ba1290b286d61bf7d9ffb0d099fc5724d63c3c299bf7227cad9d22d79843d62848e4983bdd282d0de807c86c77255c2117add53c2fea06e74fc7cc2e9946b68ebb048cf5c8e38c8e611f7562def6c3ff951f7d028eb257184eb3f4e99cb46cbe4697473cae24af90dddd71a441977059458654287a45f9da3ac701bb356c255a1a9bb0f7840ddcb536f0fe9e27a51e00424ace000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000130bfbce1976ed3a01c6aaa75c6ff98f2873eef4c008908592af8252cbe9c4d11025f0ffca969cea05b4332041c59f82c70b16d7e5c44ed89127b2dda824de3f937324f45bce792ba69305fe7b2a5df35a86d99c37607e4c1e55baafb5d83ee770daee137e62b1b95b1720daf5ca613201654685a1a965c8ee32488e800d2a9d71f5f8256d6bfbb813cc93cc02ed3567ac3cea3c221adad72a80115353bcb9e4608988eb7966c12422fd5f30769b5d1df2f5c40ec2950b20f87b892c4d5776fd612749e285ee7893f4ef20bf4424092af1e03a73a3447775907037a9a2ed725942d8b61d7a11876c0b10df40bbdbf6d510442f1c1d50581c29229b652d128da6d1c4716c9da85ae3c8aba3bc54b42dd6b73cbab26fc185ba189e43415ea33bbe323b8e936257a51c37545c43ab4bd2294ae7aedd50d349d7a0f48fcd715cc441e0d6371f1449c672eb5a32ada784e5318fe6d25cad9dfd7f07f1aa2939302ab6d329c8e0ebb6398d14a5cd52587b1ace723d973312f6d212b1a128e596cfd549402f139b6570e03e98c2fd64459879f7cd5db23fa38123e96e257fbf4df0d59203d0ec649a8f1fc1673d029bba67860834c6b7501d13aba84b6d534f820f2a6e112749e285ee7893f4ef20bf4424092af1e03a73a3447775907037a9a2ed725942d8b61d7a11876c0b10df40bbdbf6d510442f1c1d50581c29229b652d128da6d1c4716c9da85ae3c8aba3bc54b42dd6b73cbab26fc185ba189e43415ea33bbe323b8e936257a51c37545c43ab4bd2294ae7aedd50d349d7a0f48fcd715cc441e0d6371f1449c672eb5a32ada784e5318fe6d25cad9dfd7f07f1aa2939302ab6d329c8e0ebb6398d14a5cd52587b1ace723d973312f6d212b1a128e596cfd549402f139b6570e03e98c2fd64459879f7cd5db23fa38123e96e257fbf4df0d59203d0ec649a8f1fc1673d029bba67860834c6b7501d13aba84b6d534f820f2a6e103e4284423ab5d3e807bf34d1c1fc4829c7bd3e24771b3efca9f0374f2d0a47510e979751f94570177d2475e520792419b7df3443089c648cd1663390d9f36e03378e96abdb61bcbba1d3eabd7fed54d0690575ebb22e24a202a312fe5e0ea871d4151debb909c698a1974bf79d06c98068b8887bc2e4b5acc78cc6e960b93db096d8fdc990823e96e676a7a017ead61849f2e60fa6cc8af75caa97de161ff2d198fc1d3a1c3ff54fa2aedadef70c86b10881bf45feda6e558187a05d26030e20fa45d8cac23c643b27ac394666b91eec3ec8b2ce358039e572822d1bd184ab422e93a1f40a63561e25197d62f1262da3bb6ca1d5e4292cc264cffd5600b36181ce97758d8a24a6e060d660308c3c8dabe66ffa56f03b63444904ff575e0e84f1f4f41787063dbde3fff083b3a9486a3d3dd34d58e4be8a0e0394f0227042c8e30715d12cf5870132067ac1d822bb23746bc136e44f94798ceb83bb9f5a85c7d3dba94dbfb8bd0dbd2ca9a1eef9dcb9d621b0758bd27556f6569154f8b25bc2922345a22e32ba2e1011291d784facf1bb2e80de6a26f748644865c2be40e76210301a01494f864fbe98d05bc6bfda7365198fe1486a82386efc7b7c65444331a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001130eaedf7ee6ecd05c5226c4a0bc50c971033bdbde01bb54c5842c53d81f81e61f77e0cd4fbcddccfc7dc06f7a8c16113c8c0cfbb7fc2698f4baf5524f4dba693a1b29dae37d6330d2e6e6acab4ea78b6ab981f39c43caa4cbea6daf9edbf4150c8d9cf5384e0ba9d4f5af192ae0bcc6a3576f92f35695fc79c28486103818750c5b92f4e315308a85aac8d324b02e7919a3df746a942542cd95661d3bc0190f34fdb6a71d7ce5e42387aa7b1d332a3b1cce430c7653585bcfc6301a0157c1112eb06d39d0dda893398f3fc8ea58ac593c8c62c1a79cd8e0468901d4b8adff67114f92c62f22576cc670c03715a753a6e5ba363a61b0203b52a42f184752009a2972222114544ae01fcc3eec93bb5dbdc7ea22d42a29510e952576609b65fd00168ddddeebabb51fe033c1136c44a2425a5c7627df23a80d0407ba8c649a03010f3aaaa565a576609efd3a9ee2a8d4b480bee330b6e7a9f61e33bd1c08fdf0fd30c5555a9a5a899f6102c5611d572b4ba187b5cb52654f257af973d0f7020f040c25553afc3b4fe31af2251a6d4c27866173d6f7893958b2fdd5809f2cf5b4f033daaac503c4b01ce50ddae592b3d879c0d2c2048013a0689b57b04dd30a4b112eb06d39d0dda893398f3fc8ea58ac593c8c62c1a79cd8e0468901d4b8adff67114f92c62f22576cc670c03715a753a6e5ba363a61b0203b52a42f184752009a2972222114544ae01fcc3eec93bb5dbdc7ea22d42a29510e952576609b65fd00168ddddeebabb51fe033c1136c44a2425a5c7627df23a80d0407ba8c649a03010f3aaaa565a576609efd3a9ee2a8d4b480bee330b6e7a9f61e33bd1c08fdf0fd30c5555a9a5a899f6102c5611d572b4ba187b5cb52654f257af973d0f7020f040c25553afc3b4fe31af2251a6d4c27866173d6f7893958b2fdd5809f2cf5b4f033daaac503c4b01ce50ddae592b3d879c0d2c2048013a0689b57b04dd30a4b112688292cd9c367ac524620cd82a3eb86dae8fdf6f3a6a751919effce31c0acaa028a4abfb273fbba20f5d2b48e9d35e730be7ead39687cb0aef2ff829996e2f7080624bc02f2ba952bc81c10bb966c567f2ca808691faced5a5cb83030ba853228c32dca65323b21a71c166e77f2beb47a1c2a0035bd2cafec483a3af556fac62f618d03f9add6db0e00daac883dbe56c866c64c4f5eac00ca36db0c4f413bad2a7901223ed8459fb6e503c535be7cec4617c404adfa0bef94db5f4650d4305b1b7fd600fe2802b022979f6cd0fccd8735ee97182d8a930e0aebcfa18598ab5825a53fc21e25602e93f607c23db2260e3a8d43305925b52346e3b30f63a39c513eff0375c782c1f941321294713679f672cb7ae3aaee2f14e7487f7fd93aaa553f508e67788b67dfd0c500f69157f2f36adb0584a492109e07e39e1fbe73eec6064906455ac7fcec8864462d3f51c8a563619980395b153b7698e1a7b3a869b1078be9bdcf4831a53cc073b50beacd56903925b7598775b2095ff185c90735f73649fc32df3b18ef7b5242d236a3f4199c9b8c049152922b9ab196cebd2b287a1a4e2c6eafbd36bdf4e6a302ff5fab0ba0d161a71765fb817e2a5f575435ed670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001372ccd770e79d18be1c8de46c274d18d5f2419938f0534619feb501f15017d221b7f692f01349056f7a9e64dd9027fa1f53f37ea636e126ccc2abe473681dcf61b9c529a7bf89435d5e4be412740891077ea8d72e090d173e05992160ab6e900103ca61e0600ce16aa1a3ad0e0af33e9af42c9cc48ede6fd0cc6da72aa8a300d2a00d1e41fb62f7fd7b1524ac3a30c08a76efa9fd4ead1cb3b2013fe7f72430824d80dd3687e92cdb61dfe193051c737dac57279f677012b9645748eb4d8c4d6115d66ca497f22362f624a448983cf73313d94e49457c6f8cbfac6bb70a4b1292ea29935b680ddc9d09db5bb767c308cf109041774f53222cd326a318f5b4ed816d301f36f7bab0eeceb7356af930d3fd3ed4f7adc69e9c062b8b0bc333775cc292cfe0c908454f113148ca9506cf2c04e5949812ce30f5b36748030ccc88a35321f09c12d6a574aa09940b16ddf423f015bf46a44c497a6546e42c000154cfb0de0f63ed295a8b55f66bf4e9220bdc120eaa491c488617544beee2cffeab3063a9b30c5e313b47522fe4377255c4b3a9ff7fb1f3bf00aecda9fbaf9006a80e40564cf3a1cec4b8add01bc88daa3b4c5824e9ddccd5cee2ebe8d75f3ff957f1d115d66ca497f22362f624a448983cf73313d94e49457c6f8cbfac6bb70a4b1292ea29935b680ddc9d09db5bb767c308cf109041774f53222cd326a318f5b4ed816d301f36f7bab0eeceb7356af930d3fd3ed4f7adc69e9c062b8b0bc333775cc292cfe0c908454f113148ca9506cf2c04e5949812ce30f5b36748030ccc88a35321f09c12d6a574aa09940b16ddf423f015bf46a44c497a6546e42c000154cfb0de0f63ed295a8b55f66bf4e9220bdc120eaa491c488617544beee2cffeab3063a9b30c5e313b47522fe4377255c4b3a9ff7fb1f3bf00aecda9fbaf9006a80e40564cf3a1cec4b8add01bc88daa3b4c5824e9ddccd5cee2ebe8d75f3ff957f1d1897330ce884f145a19e4048a1139ec5eeadec55268d2504700ae2a32b9355071638c722d681b9a367707bc6a94b9a9aab39f07019eec840162b9a06124d16192c0495ad8dee3910777e6ff0726b913a16209edefb4df9e6d4040a1e2c1ff6161c23a9dd8057d4424e0aa40a65228e8ad90ea49260f18f97874f0461b4902bf833ee9b7f9645447a48c2745fe1f153806d0b3aa5baedc33fcbb063bc140a5fe71ebc262606335e3e587d7e63750e0a5adad8838f1aa5042ed3c5763b731e8aca2991c70912dc4f160f7246c018afa00a18d50e80ca0d22cd97373e23b420a6dd3af4b0ec5afb8e6cfccb07fa6516093f2644f5128a76ec00cb3489fde19ce0260c8ed627793d7679f752f7b2eb08445853ab3f8c5f8aa6cd8b28e4055ba2114d3ed3b9fd366cb2ea9c8c372d4d9bb436807bbeed619a62413867af17ada66012084d4c62435110f12795cebf6c56887617746f00a1de72b234aa13dfeda4318a22504c2136fece9f7f1480da4d842dd5885e9ea119f60e6b64061e5d3c3f2dcd1a7a00e99edbe1f5dcdd6e5005b6116ddf14af058b884a805f6ed87cc837943c2873e2947e0c13fb8e6ce993ec953bf19c42c40e1fe9dfffb3fbb894d43f176e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001097a657ce318d0ca75461ca5b088d15adb88479add9b66554ea6ebd22813788f0c56d65ec087ad01cd5dbea6634edf80bb59a3ae965619c30cfc54753b4c3c8d16d98ae8da526f2d48c2c7780c7b322a8dc0b9a749441e1c5e18cbda30f95faf18a5dee125ffe8532147d1f0e0552faf64caf5b70fee05b7337be1199aab33c701d26a4d4ab26b790d3cbe87eb4ce58f7179c3704b4783bba22cc3f87c93947235e8c8782d61e9cac3288801854da2b7336fb71cf7bdd44c92a860ac359a72170240d04e5d11ea5875b7e5ff7fa49d8378842c8aff5fe9ee7186a06898de3fe03dbf2fb1a2ee15a78a481a00805b627ca9c26c7109ed0f2d27a690846721c0210b441187d15993ba4c977dfd7e3713915a94deb6fcdf91a837a1220afc573f6034bbee782ea66c45b368820281c8ec6ec7b1ba450c6d6773618c0ee203a8c0a1385457a716bfe2a37ef575f3771361d6c4e85992f05dd8491625aa36edb43ce007aba858e9401d5c810a8a0c88ec9e295d5e3f6918ef20d2830786b6124bc32119a5b64371bf6d317acb4dc15360e9314f6f5bee8ca154ff0a078f5ea485305c265a49bc8e4092ce8534b23eac9f16ced2d73d0d7caba41c8f25a18e5b7acfa50240d04e5d11ea5875b7e5ff7fa49d8378842c8aff5fe9ee7186a06898de3fe03dbf2fb1a2ee15a78a481a00805b627ca9c26c7109ed0f2d27a690846721c0210b441187d15993ba4c977dfd7e3713915a94deb6fcdf91a837a1220afc573f6034bbee782ea66c45b368820281c8ec6ec7b1ba450c6d6773618c0ee203a8c0a1385457a716bfe2a37ef575f3771361d6c4e85992f05dd8491625aa36edb43ce007aba858e9401d5c810a8a0c88ec9e295d5e3f6918ef20d2830786b6124bc32119a5b64371bf6d317acb4dc15360e9314f6f5bee8ca154ff0a078f5ea485305c265a49bc8e4092ce8534b23eac9f16ced2d73d0d7caba41c8f25a18e5b7acfa517d8a3c941a17a7156a36f9f4839ce8afcc91a2a707acafc502add621506937406269888565b866079fd6ed6faea80ed95e23070b63929273ac74a30861c2cff1c7513a1ceb53a85ac9d6f7fd526cae9123f5399fa21e31af88897944ff7e15a345661ac3de6130102277b6a9397f83fc66def025300e6d915cb09ec134435a93a6a85212740184d0a5d43a6f39dd64328ed9e0b2b678aaeeac436e8b3068adc2400976ebe5b0ebc0a996c6a7ba0cf7e78a3570fb75b022800d535b73c04bf731f2bd313a18b1e42d89b7d207b2f2c1e05d28aef36909fdc84213eedbe51e19214e27fca6323d4584eed848a4f11be91bd8da27317e54d1045a1f1580a1c351c1ec1c24d7f27b60961dfb60af24e007a36d0219cb06b024f8958587f848895471566ecd21fe2cc32f663db2caf73e87ddd72968eebf24dda9e837edc1c2617db226b4c487c6108330d2dcff520fce8652dfcafeafc3a7cf8c4d4d1b3f929766333cd83343b8859204d2651b666c11199f23cd7625033995f61a2c8b9e473aa710362d778d5531e48b5fa5ed595582688688f585bdedd172f90a6e463bc6faa903b971de5ce3e4b0f0ecd2cd3b1e269367903d8dbe438b8d2674639fb2c3748b500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011cab6ea7ad24b70454131035e255d54ef0e997a01f1b6c5b9e3b3eade5c3611015792660ac9628510aafdf8918c6d599bb4275d5b397c23f1ca2363a3681be4c29590672ca122deb2a12db65b5d99b730f4ef28547330a391287e5293687855d114e866d73e38919b08da1d0eb3f9465abb4cb1fa2cf2c4fa409e557efa54edf26f623f81473dc05cabe2a32b43fb37b27c538c4e25127ec59481020170f6d0d2f3f38d85426bdb564c8bfd7768ba6c4a43fc396dc7c91a51f2ee4ad98a404453c2437be8c6c7141370ffecb98f1f49b24ce7267e37f8c441da9b052efb9b31a03dbc84173938ebec8f00134670e0b64fd78269425cd6cd77b83809a10464ce72cb516b8be1e3646134ff9f9fcb9c7072eedd8174c49d8e62f9badeaaea07f7e134ae94741e1c9b9ecb00606034638f8f358c0e4bd03203569918302515f80831f89719bb6970f5e608fe1e1efa0e32383d16d80618a512c2282d2ce69227d7320768e644968f0a19f701e1e105f1cdc9e752b7ba7c2a7ef76aa5e1e96dd828e1daf380a90f34cd7e2cf6969ae246fb14e89f189d519a3a57a33bc2e0dac733d2250c7f56f0cb3281d30969651db904ed3bca772343355761ef974bef2538cc43c2437be8c6c7141370ffecb98f1f49b24ce7267e37f8c441da9b052efb9b31a03dbc84173938ebec8f00134670e0b64fd78269425cd6cd77b83809a10464ce72cb516b8be1e3646134ff9f9fcb9c7072eedd8174c49d8e62f9badeaaea07f7e134ae94741e1c9b9ecb00606034638f8f358c0e4bd03203569918302515f80831f89719bb6970f5e608fe1e1efa0e32383d16d80618a512c2282d2ce69227d7320768e644968f0a19f701e1e105f1cdc9e752b7ba7c2a7ef76aa5e1e96dd828e1daf380a90f34cd7e2cf6969ae246fb14e89f189d519a3a57a33bc2e0dac733d2250c7f56f0cb3281d30969651db904ed3bca772343355761ef974bef2538cc4216856e307f292621acd7b9bcdd9f1f234dd023a65742fa4b403e12a7f1d05f60c5616a0d608205974050641a99871d2e90f4b2a2e2fffb2fd7200af43585b732ed4592094d5c20a37991900b44bf299b57a75103585a46da1c84b9cc43c5b2a35deebbf770653215ed8f66f67e195846f81dcd657970eecc79a1c91cd7bbaf40b4d318dbc93c00bdd3fb3a49c83a4e51b8b6969a14d1b74c1834d4e6269b9682fb12e7c0a15618454a27c66784ea32d8c9b5ade2b38fd01de2b7d13079136142b663e58264a4c3786557cbd19e6ef230d8c427c66b405614756a560666847dc2bf6c25f23207f7c447e3127b72ad179b8ffaaf1f8e01ed4293daf17abf8ce922baa350e3db7229f424cbd5cc7806424d06d1fb09eb1f4d94ef9a721470e919d2b234a6f0b5f972145fc38198cb042a555f3a4c1dbfd98dd0bdf60f47d98fb0b3bbd2831fc73352ce929a7bdf486763f5969560765b9bdcbf3e1eb8896f9c0ca1fec5d2adafec6ca6341db7ed3afcf484cf2ef07d13eaaaed82b2413d8fd20402ec5fd2d63d7b873f4e13a65f034023a8c5823125194dba402e8c5f572f0e0013f95250625542c010935da25269a54fe2028bffe4fa93d730e3e9ab6b76a66c80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001381a0dccaec7d9c298bc99492037b03fd72ffb2015647ca08d3ffff7127589d412f1b8068c96bfcf3b37cb4b25f24d58aafc4f73668e28e83c619494f3b06fa50ef7b7cc2b923ab2f07e4cbe304bbbf0dbb6fce4490a598d0ac9dfd775ed7bae014e86a19e664f7ad4253e399b96e338aeaa93692438eda0c7c110a833c6928e33a8d3cd23b0f5a9e69ac9b039cea6c22e4c20a21b4fd76cafe599368c1ccfc11a062a96887f9bc506b3bfe8c3b758743ad6d7d48ed816a17381b059d2ce56300a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa135eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5603256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c85250da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b6044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b2a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a1584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff770a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa135eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5603256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c85250da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b6044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b2a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a1584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff773028cef393b3254af4291ab729ba2e2c73a7728cc6a4bff3b6d500b56f9a3a043bd0694f2b7a3ad746f17d50e5fe37e91abe551ae86d56809a63c9ce35b4e64f17bef5c294c16a4f0d8fbf9fede424fa622ca71b64559b0a6df07e7121375e35316ea200b9760114d6bf235dcb09a0839547885fe9e15d225f471c1c73234ebb1e77d7bba44487cb752bcd5c16594c585ff77d2337cbb0674f1e0246f515c70904e9de920a39c96247b149e10dfe800f1676decb03e7d2f4b97e0faf9f7e4c503e9eee022eac85cc17783034e145d8fd266831d6482545cae9be6ec01cd1aada2127b5ed4b84224af25f7a00784c5c52d51b856314ca63a6521dfe290651040e3902a76361ae17a62722c3fa45ba1290b286d61bf7d9ffb0d099fc5724d63c3c2f616a24365573c958cc48d37b4806cf1bfb7c49a76ead000a105c17a13082c13c2fea06e74fc7cc2e9946b68ebb048cf5c8e38c8e611f7562def6c3ff951f7d299bf7227cad9d22d79843d62848e4983bdd282d0de807c86c77255c2117add5287a45f9da3ac701bb356c255a1a9bb0f7840ddcb536f0fe9e27a51e00424ace028eb257184eb3f4e99cb46cbe4697473cae24af90dddd71a4419770594586540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001025f0ffca969cea05b4332041c59f82c70b16d7e5c44ed89127b2dda824de3f930bfbce1976ed3a01c6aaa75c6ff98f2873eef4c008908592af8252cbe9c4d110daee137e62b1b95b1720daf5ca613201654685a1a965c8ee32488e800d2a9d737324f45bce792ba69305fe7b2a5df35a86d99c37607e4c1e55baafb5d83ee7708988eb7966c12422fd5f30769b5d1df2f5c40ec2950b20f87b892c4d5776fd61f5f8256d6bfbb813cc93cc02ed3567ac3cea3c221adad72a80115353bcb9e461a6142eabad9ac1231abb2237fe06e217b0cce090905d80c1b5ce78973f1c619259ebd15452653edce544ddc801f91dea739caf30047210f7dd049638c0e39e803e64e95a6405c5af85a7ab17f6226a722b2d4351a834605567623d543b8de7b3c19b16a59bfa3a507a5854e809dd958ff93c4c6eec9b31642b70d17bc472186137f88ec3f41cdc6d9c465777ceac143ad7e250984905e1ab04eb32a529c58672c807713c0be3239263b9a8883153ebc74c873f284bc9b00e8de7dc2ad63a79a217dac9d3c4904e240d5fb557095c652413020338d84dd69d85c4ee69d0dba021e825362c3b6fb1dbf2a04aa8f6a39ade11678c87bc81bb1c0d0e20662f245ff1a6142eabad9ac1231abb2237fe06e217b0cce090905d80c1b5ce78973f1c619259ebd15452653edce544ddc801f91dea739caf30047210f7dd049638c0e39e803e64e95a6405c5af85a7ab17f6226a722b2d4351a834605567623d543b8de7b3c19b16a59bfa3a507a5854e809dd958ff93c4c6eec9b31642b70d17bc472186137f88ec3f41cdc6d9c465777ceac143ad7e250984905e1ab04eb32a529c58672c807713c0be3239263b9a8883153ebc74c873f284bc9b00e8de7dc2ad63a79a217dac9d3c4904e240d5fb557095c652413020338d84dd69d85c4ee69d0dba021e825362c3b6fb1dbf2a04aa8f6a39ade11678c87bc81bb1c0d0e20662f245ff2e2b46ffc36d4f5685eb00c7ee014f48e8153f1f919ebfe151c8d6542e6cbaaa0a4cbbb39b871defcf4bc6dd245aaf529dd9b08e97e7f2c46f9e9979d78825562e5068f2500b62e78899f359b075324e60c92cad6ac5f5e3f1facd7f51f5c5232b328097c5d2e75095a089fb6c5a6a784c55b5a6c101c81a2655e6066e33eeee03c736fbd97c2ca6fa8b1d62e93c6a00af516e598f9023c35254ff28582fd2a813eb6578a5913238011c1163652ecd7eeb27476da593b0d4ae86ccb3f1a9f1362ae9ac07bf19b73bf8be12e85a75563d086eaa37414a37d9ea20cea40431250725d3645f6e411b3bee85a0adf374008ca3b61b5db5f7e46ddac27139047548c80cbc44318fb49535b2ebc087c7de5dadef0623c6e789d2738e02813db54a09770ffe80a5f23019e0ec880642a3959f86b64383cb2e460f25501f1c138bc12a931a098260efa5254e77a1eab0c4bd7f60d42653d1fb07953aeddb8b390dc20cdd13ae7a52f4129b5e613854042e2b675db092a3928f1e5e133a424dc1f6de38231bbf121fe1c3aacd74d0d3605b05e0efb61a43729e22c874722597510560922c3fb50d2f53229e58bd441cee45c940dcba139bd8e785eefe840ac2d181cd94ce00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012ca244ea7bb6dcc27df8e39c6932c4e07910a5affd6b00bd098462c0a784835c26a5f2925168380670d3f83a7bd3928c36b0d1d9f3303053e4453cecd10dccd0215e65df09ef8acd4f87d8c2b6aea41090729954662e6805302be0474d3631c33470b9538776dd1b6c7c5cf1fb2e46b5c97ea31c3a93f392e6600d348686a9042c6727b4734283bebabc09dbcd16d7a7626618b1dffd0ef23222002c369aee740662df001373161663f7efbe2fd27d0026cf46a6840996930fa6021ee5d2ddb63b36e87e22293239da1febd7ddc2d207efc9824ee6248300ef3b4a2b3c7b480104c91781ddd6cdc625e01428223d2df8327d16ad2328761aa9f1e6c1c384b80028128a76aacdfb21429f9b3754ce1a2725d5279a5982aa964773af242e68680117ed7589553204debd6064c8ab31e5d8fc717161afca4e8551b981c8d1979800085cb4515605e7a64d1e0814a80682c35655fb0fa3a6699c99bad8ede80a080237a34baea9fa1859b2e1f7eb57f97d3ccbf09dec65a68f7eff7257ff17f5f7ff29cf8596ae1d863f8196286748208dd0afade74e3240100f00a63ca58832280a16307a6951e279c07e69d798b7df722f7298b1add70ce90c9886f44777cdd7f73b36e87e22293239da1febd7ddc2d207efc9824ee6248300ef3b4a2b3c7b480104c91781ddd6cdc625e01428223d2df8327d16ad2328761aa9f1e6c1c384b80028128a76aacdfb21429f9b3754ce1a2725d5279a5982aa964773af242e68680117ed7589553204debd6064c8ab31e5d8fc717161afca4e8551b981c8d1979800085cb4515605e7a64d1e0814a80682c35655fb0fa3a6699c99bad8ede80a080237a34baea9fa1859b2e1f7eb57f97d3ccbf09dec65a68f7eff7257ff17f5f7ff29cf8596ae1d863f8196286748208dd0afade74e3240100f00a63ca58832280a16307a6951e279c07e69d798b7df722f7298b1add70ce90c9886f44777cdd7f7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000001f8e94c42a3989bc0525c4b88d85b5739625b62a65d794ae2ee5a11343c55b26127a9d5e74c644b7bca6ab72c6342dcb2fb379fe43b9eaa3793de0976a2748f4189ddd23bc35ace2b428205e451f3e0391d28302ad85627d257d35180133b91e12f8af4d9cb24e26265117859e1d5c3552fae7a404cf6880229da8809184e32225fb46c68b3f6c057237f25e96a8984e4c998858214b9c21f95cd9571777b46225734cac117892dde2f7c2f864518a0082ae61a2488953239bdb8917fbac2c1600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012613408c3e0ad699cd7b228bfdfd45b30262a0ee9b8b0f47ddf4fb894bdf7340009d38860a0c77765d5b92619489a48cde4571e17cd551c1d78598746fa75ebf3b12101e710281493e4178ed5e00d3b375589a8d5051767547496e1b23caf75c2125428db9bdcc5ccc14afd998d56595ba131b6f2696338cbb75d93bd04fb32e12d36ea027cb5b09a95bf1b7cf7ebf018d4e8e3f89b70899958f18347effadcd18a0b0e1bf38e399ba6bc1393e08f5de3be53d4003570c5d27753ff1cc3628373aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a061301911905583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee82546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d5791ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a883a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a623ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c31c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e3aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a061301911905583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee82546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d5791ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a883a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a623ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c31c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e10e4e19dca1485e517e39daefc575641d746eb11f4563553daf7a6f130f4014e3324cc91bdb2b0a03184c9d7ad2a1f6ad781260fb608c498f05cf42411a40a082127b5ed4b84224af25f7a00784c5c52d51b856314ca63a6521dfe290651040e3e9eee022eac85cc17783034e145d8fd266831d6482545cae9be6ec01cd1aada13a6a00bf3edb5ed0b5d75f6a8de22fc1fb43f3650806a15376b5ecc5913e8bb3586f7b75a49b576d8f16d07100fa281d7bff044fdb68e1795cc3bc13b46c4363e7c5f19caff670ba36df508fc7ff2867ffec62dd9d891c2cca2c51239f22b9e288c7ec125a3eed1e9e87e3537c636ea3fc9a93862aa8bff3df8245926a94ce930592c2a209f517b40c2d7304132ec6c487a8ff34d3f48a643e15fb655ede290229b4337fd5e58c6a70e25e2358f1d3c1c1469e96a664a487876094f589fcfe50f1e11a45a52518e313e7a56b36820d828eb5388c28d0aa3848d39a4dd32ccb72041c61194b848a54952adee12b07ac6bcbad718d914f7c133c4b106d7af0b881d6a21b7d74f870100b8293d2e07d11d0685508ffaf71d13f2b79a9a10e940d732730a72287ecd2932ae7dfeca084af70d77b7d4c70a8ed6a5caea70c4fdab1f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012a011a4f7331bc20e8d872dce61ac4be0333a5483b73f6844110ad3dca8c186c37809903bfced672e0f320b5d4dbebe53e9747aebe9dce65b24aa4d095bab53324c3d84c9a73622946d9738151cee29e727ec77bd8ef1b5fb7829c7f1f2daf87141bca7feabc44065ffa1d528b32fc949936bb28028c6aa26da654a3a4bb665f1b4c8742764394f14aa5db7b75a3087a422ec28ee2ae6d74967f52d068e7578303f031d4c4fb8a88314ec1406a1cbecd77eed488dd17bd849157bcac39dcf5fb097c297002ef132df3d773c7977c716d42dcf163eb168e74556dab78ac591a7f3683d68ffd10ecd20c288c3868838e92df69a7981e366aa743bf857453a6e5822f6ccf300eab5fe5c33542e5f56e37224e50b6f39770c845ab24595b5dbd847b109330cff154a01a3ccabd1a0a91c8ddd3f5e20871dc30d5ee08d791a2427b862d200bf04958df7cd00a4e7dcb2713ab20bfc7cdd94cfe098c2e2c01d4b3966412dff40fb6a720832ff5b18234d8ec550186d12e2ffffb120cff04eb2b4c699d21a03bb16ebc5d7010338874f7c362573ceb1c11229a0adcf15f49422781eff11e5fc44e9143a28fefcc778b083c9da8e55b7ceae6b2ee3ea7cde7aad87e1010097c297002ef132df3d773c7977c716d42dcf163eb168e74556dab78ac591a7f3683d68ffd10ecd20c288c3868838e92df69a7981e366aa743bf857453a6e5822f6ccf300eab5fe5c33542e5f56e37224e50b6f39770c845ab24595b5dbd847b109330cff154a01a3ccabd1a0a91c8ddd3f5e20871dc30d5ee08d791a2427b862d200bf04958df7cd00a4e7dcb2713ab20bfc7cdd94cfe098c2e2c01d4b3966412dff40fb6a720832ff5b18234d8ec550186d12e2ffffb120cff04eb2b4c699d21a03bb16ebc5d7010338874f7c362573ceb1c11229a0adcf15f49422781eff11e5fc44e9143a28fefcc778b083c9da8e55b7ceae6b2ee3ea7cde7aad87e101024f7db928d777931e650254de7aa8f1a85d214ae558b218a32fd53fc6c22c0b13211d8035f65f813c9cf1863754ffdd754a7033a3fb07cd47d62a7f8dcc36ff2330a1cf16f4a85740c8a26e23f438a6bb257654b7412ae3f93af11f09cfadf3a35d26133b5c96946b7ce3b9f066b7c2eb43819996ec11e03914716f4db4d88d80688fb61d626e629564a1ad8808b579d85faee68155ef8f8d4c329509ee6137609105856f4922d4f0002e7f54f5d32419957962ff7c6db4096d9695074f35f6b2926bfac18d1a361bc491e6f1d1da80702f89b095993225e2bf4d0175db1a83e2f585a47608182c75e22660eb0c6e35429cfe3576a764686b84d8367c6c7ba442a6a60dc0956ecac47d0fa9bb654c8ff3141b15025cadb27694ecbf5109bbdbf371293b3b0f61513e22d18d27d723dbfc9dbdc6ce23d6ce2a8e5733940b5924c1cfacb8e7411eb1360bbf0abd2c212b1650f135f3513b210e23942523bc2c877143b11943061401fe437d21ac6023bc0f1dfca802d90f1de7f8a434d49f2f3c50ed020b5971140eaafc9383a60d150717264275369f412ac3434b593d1937a683d7ae0fcce0d9037cb2e5476161ad36d5af81182085421d67c0a50075e2f6c420000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001389baaeefb48f484e3d23d5cc5a3f71f3ae0cce0fbc3f0d0f3370668714bfdab01237f6eb194e27b2fdce2d23b063165705db06a9ffd3c808f867e6854b621d92af8325de7ebf9e3b59022f37fa3ba2651fa7e2bf07967ff3d6591f6dead58d83310f78766404f3c5bde83f79b27bb332cbf4f0a0837bbefad25e7a81832c92e3e59ee759a1240a256524cb68f70b567a53d13e027c3ef696d801114786e30f51ebbc731426cf88d5e6a5f2702fe108a0089a015c037c243580c9aec950f32d63d02ddf8a637ca4243b1ba4392d93f3373120e47f4e9f01d5b996fb1bc75a83c02fd220759c835bdbc4e45bc6d26c0ccaf348ab4146308fe3d93c13b438a57c5310e55db3f16f34b5278a351de3e3c00b63fe377a35dcc24654a6ac4ae4c49280ef1aa24c0e90cb4ad875cae21c1c3ff6c06b58465ef2cf733e2c62851b3b6d93547ad483b72c0789c5b309957372c03286ba66214ee11632eec8310677d6dc50ab852b7c48d3f8763a4cf66a8c8d3fcf9daf299f45ee7b86a40addc9882923c0a666269293dc25b0dc7f2feb413dc0f40ffdbfa4372728185e9cb9e057324d535999d96d6c23da4f2380d014bec23f0e146bd01c5da869a1343654efa8cdb2c3d02ddf8a637ca4243b1ba4392d93f3373120e47f4e9f01d5b996fb1bc75a83c02fd220759c835bdbc4e45bc6d26c0ccaf348ab4146308fe3d93c13b438a57c5310e55db3f16f34b5278a351de3e3c00b63fe377a35dcc24654a6ac4ae4c49280ef1aa24c0e90cb4ad875cae21c1c3ff6c06b58465ef2cf733e2c62851b3b6d93547ad483b72c0789c5b309957372c03286ba66214ee11632eec8310677d6dc50ab852b7c48d3f8763a4cf66a8c8d3fcf9daf299f45ee7b86a40addc9882923c0a666269293dc25b0dc7f2feb413dc0f40ffdbfa4372728185e9cb9e057324d535999d96d6c23da4f2380d014bec23f0e146bd01c5da869a1343654efa8cdb2c2c760185232808422bd675dc68c88fa2fa25aa541c347b293e6a01b193ad38392b7c15a5c8a5dccaf33e75bd7716ebd06f3bdb7c105e2ab83a46622e41f92b3b1ee90c8ae9c69e2b70674c218703f6f2065f40f80bdced46efce7db166ac33f30111950151fa7564d8e8b7e258acaf8e3ec62061a3f9d8093785f51843bf586f1dd500863b47c729927d55ec3466e39e997a18ffa146c8afb7eec9c7926b99e236d7cc5cd8ae13e83dedd19210a2b3f87b7339deecc20387b6f0568997c22d842213aee59adbd8ed7cc13bc4bf4abeaf91d4ff2a161902cc556dbdb604916c5627bd43a85873b0ed2ff4749e3820e73271962c3e901f50aeba1604d635cd2a493ebeadfc4cf15e57b924f9966a73fa1d5a093a0cbc60c00ed6f07bab5dc868cb1559b6f899672a19cbf38b4e7d121134dc1163006b2331cbbccb16672ec818113c4fe108bd7108f097cffc121a5b6325e0ef58ad8e3b0a7b63691785318f5c6d2bfbb11f6c555a385474f23629d0bb395308de38cca296f07974493d1f999e261ffcfb86c58670343df12d4ec15c1e3301a31a78bb39559c3f0ade715ae469ab27d833df4d3f0dc1602cb240830a149b4778c2660a6f7a8b6155b706a83e338a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010613f94e0d770902acfe72f5adeb212705d03083e0d1fc10fc8042028e3da80206c79d6257d392209ffdd7b583d75cf228ea4de9adfc8c18edec5efa6e15497638514361c0a589d7fabf89c8e9b5d6747509e7b2a8f3317a2c2cc0d2ac8451000ce40da0c50fe0f0d94b1dfed0366a8a2ddbcd902857fe59629e3490ffa324fa0612449ec552f289b1ed2b8a6b7df6a279e792f0dd70b39588659a68178198d217696dae2d05b09d9ef4e406a4f077b94e9b4c99808471285ab4529dded2d4983aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a061301911905583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee82546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d5791ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a883a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a623ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c31c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e3aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a061301911905583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee82546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d5791ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a883a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a623ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c31c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e10e4e19dca1485e517e39daefc575641d746eb11f4563553daf7a6f130f4014e3324cc91bdb2b0a03184c9d7ad2a1f6ad781260fb608c498f05cf42411a40a082127b5ed4b84224af25f7a00784c5c52d51b856314ca63a6521dfe290651040e3e9eee022eac85cc17783034e145d8fd266831d6482545cae9be6ec01cd1aada13a6a00bf3edb5ed0b5d75f6a8de22fc1fb43f3650806a15376b5ecc5913e8bb3586f7b75a49b576d8f16d07100fa281d7bff044fdb68e1795cc3bc13b46c4363e7c5f19caff670ba36df508fc7ff2867ffec62dd9d891c2cca2c51239f22b9e288c7ec125a3eed1e9e87e3537c636ea3fc9a93862aa8bff3df8245926a94ce930592c2a209f517b40c2d7304132ec6c487a8ff34d3f48a643e15fb655ede290229b4337fd5e58c6a70e25e2358f1d3c1c1469e96a664a487876094f589fcfe50f1e11a45a52518e313e7a56b36820d828eb5388c28d0aa3848d39a4dd32ccb72041c61194b848a54952adee12b07ac6bcbad718d914f7c133c4b106d7af0b881d6a21b7d74f870100b8293d2e07d11d0685508ffaf71d13f2b79a9a10e940d732730a72287ecd2932ae7dfeca084af70d77b7d4c70a8ed6a5caea70c4fdab1f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012a011a4f7331bc20e8d872dce61ac4be0333a5483b73f6844110ad3dca8c186c37809903bfced672e0f320b5d4dbebe53e9747aebe9dce65b24aa4d095bab53324c3d84c9a73622946d9738151cee29e727ec77bd8ef1b5fb7829c7f1f2daf87141bca7feabc44065ffa1d528b32fc949936bb28028c6aa26da654a3a4bb665f1b4c8742764394f14aa5db7b75a3087a422ec28ee2ae6d74967f52d068e7578303f031d4c4fb8a88314ec1406a1cbecd77eed488dd17bd849157bcac39dcf5fb3e0d9957a57a3e0d78397558e911012e778d90db4da488250bc19c64d3ca966e01f266a85a85c1f287c68aa716eefed1aab90820bba870f68d6b94882c3569933643feb63b633643591f4abc8d5505e7cca970585f02c44ad6134a4422f4f02209bc0149c49cc9bca6e0b54372aafa18559d28a3aa4a34d0c319e6a8dd0b0fdf0f53f98f28f00f50bd9c75aec2a91d867634cdc9b5d9f107c9abafa0aec8b0a630ac0670d70ff0af42638a513d56e279ac11cb3253730813cf81814c51374f5b0ca3dfcbccb04c93b40e4c69cd4d93a02cc16bf483f4bc0b572d3d3669eb733d335c2034334fb36c4bf1b39632b26c5ff5852d0785583d1041fff3b696148cc43e0d9957a57a3e0d78397558e911012e778d90db4da488250bc19c64d3ca966e01f266a85a85c1f287c68aa716eefed1aab90820bba870f68d6b94882c3569933643feb63b633643591f4abc8d5505e7cca970585f02c44ad6134a4422f4f02209bc0149c49cc9bca6e0b54372aafa18559d28a3aa4a34d0c319e6a8dd0b0fdf0f53f98f28f00f50bd9c75aec2a91d867634cdc9b5d9f107c9abafa0aec8b0a630ac0670d70ff0af42638a513d56e279ac11cb3253730813cf81814c51374f5b0ca3dfcbccb04c93b40e4c69cd4d93a02cc16bf483f4bc0b572d3d3669eb733d335c2034334fb36c4bf1b39632b26c5ff5852d0785583d1041fff3b696148cc40c9fee924a3f838a2a5424c9a6caf8c2b20c19023a1f92fe9b50e6ae207ea8cc321bf06026de147919c6601973d2642b290b34354f5212b013eea7fa29a91ec83b0d0def9e887241670083ac22704cc721a0b517d82254a0881bcfecf78b6dbe235e0ea04712b4c7adf62c654cce58fa7ff040030aa03836637d9cb2f77fdc900d32dc8ca576983c120c735255be0fb119c2a383700c2eddf9a19f3f23f8bc4926138696d6de1fdfa43798c09fd00138009677a40bf28b5bd06c2f3334d37c1f345661ac3de6130102277b6a9397f83fc66def025300e6d915cb09ec134435a91c7513a1ceb53a85ac9d6f7fd526cae9123f5399fa21e31af88897944ff7e15a04794c19cce14b306cac3256d913911cb42d5f45f5d007f8afb9f780476793d004376ad29662aee5c907afe555fbf44a44e67d25962335e9d951464eb4b680d20053e546027c39207ea10ccb7517b67d1df7dc7dc7f4bc9a1f444552bf16d0eb111635328b9735e83803dc4dbc4a56c9647838f1d8fdc99eaab2cab4dab6222a28eca41df5e4b188c96c6eb025f079f8b62c1d5dc9bc5788084524f37f60a76b2fc1f86c41f601ba4f909f0cf5e2c73fd381559b1cad46ec23b33d0e8cc88d2d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013aeb070aa7498648ab375422b3010968badea344b43a9c2d30727a275db1ec3414c245edc6ff71fd3103a8001a967a7453f7402960f1c754c2f7f1a10fc3efee295bba80c5057dc4f18c47e55eefafb85127a5fa368fbbb66523e852de390e0128bb17a9af433b7e18b4565c29c750739ec02aad1cb4155a95468a63aa1e8a730a6093afc1345f60363b5cb967f309226b75021abbf419b2b70fe19ee61ddff11e6b82f12923a12ee027d0a4a42412fd34bb12acb9d1f5c2b3851781b3e90caa2f50d95a6fbbf69d4b315b51feab760a01547d3e9b8250963cb44c579ff9d03410af26a590440962b4cea4ae015489f620f21bbd6dcaa8855c78e49560062fcd2c943ec42eabd11277f6c899f9594e319fd2a744eda4a79c63fdeaef1fe11101136bc13bd1542eed8809376606a6b1ce8273f1b71ba8517f352f45fde01eef001ee539d4e95b155c57d1eb01debe86f7b849796488505abb286e03e49f655502211ac62b16a4eaa3a82e14fe2141790869fd1f9780fc9e6070bf2d08609aaaff1a7a21288ec76acdb719970959b8a2d654e22cfe96f7d37097cbb19d1cfaa9082585ded77138953248e668f6a6475d29cd646bfd725525ab01617f4fe30556f92f50d95a6fbbf69d4b315b51feab760a01547d3e9b8250963cb44c579ff9d03410af26a590440962b4cea4ae015489f620f21bbd6dcaa8855c78e49560062fcd2c943ec42eabd11277f6c899f9594e319fd2a744eda4a79c63fdeaef1fe11101136bc13bd1542eed8809376606a6b1ce8273f1b71ba8517f352f45fde01eef001ee539d4e95b155c57d1eb01debe86f7b849796488505abb286e03e49f655502211ac62b16a4eaa3a82e14fe2141790869fd1f9780fc9e6070bf2d08609aaaff1a7a21288ec76acdb719970959b8a2d654e22cfe96f7d37097cbb19d1cfaa9082585ded77138953248e668f6a6475d29cd646bfd725525ab01617f4fe30556f920d8466abc34d842fba4a2d3e5faec3ac358a89a8d247538e7fabd1f9b46c3602bb62ed5e0c9cc9bed314c316c1b41ceb5dd1aca7dffd040743ff8ff5cb6b1ae1b1cab55855384e9b66f3a59f489a5b3877df175e591c7aecb6fa1ae9433943d1c540f1f7b7f2291d1eb33f1471739d15d07e38e9aad0f94396f5db86d0a74f0326120b6bf515b221310852856fb6eff0fcc1bc19c5ed661409d107320011cdf1e5befb06e097755d4332e6df6ede7ca9c58a9d35ae345e684462f69e8a550f114a6f5e0a5252cfd6947ae04aaba2d9026d6bd9acbc545a5adf9c260aa7550e430c5811c32aee5a22153a7f0325b3fc8930151027e64e584cf83aad423abce1f2f7fa171a293ce141f9fec267b2a905730ad52c91bb12d9c3f6f12e752be2da13819438f28470d1a7dd5e6a8de314adc7cf83914e30968248bfa89437b811a3b1305167a20d9ac65c4a1983492f784dc2b3dcd80074d1458a30cae7a9bb6933922a06a5fc9ba92285aff11e0f33ce7d04324d4a0bcd101fb9af49c39994f25b93c171529bf19016939b7cadd8bc2020271f1704718d120cdedd255a45c6cabeb1a2347260af1024a4eff20ffd047fac459560f8fa7d4ec98fd1ef8ddd427bab900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010d8ca4bca28072834a8daffedfa7e430adb101ceff0ef97394e1230706c756ef36df61061a3a69f0378967f3aa87c78da1905579a2eb4cf3e13e4c87efae6fab01b396d360d348b31e52ee8c978f0d2f43739cf0a0d6ff589228fbca8a24b5a017f449bff750251d13c9cc65446e10b4d648e55e770b271560f9e3580b37631530bf9aa0216b0ccff7c088b54038c4d35318c0589ea85364bc1573cb2f996dd62027600e81a387bbc81ed61f9f8dfdfd8508a8be161dc505564cf0a955da641901b938c18aafe9f5a5f8c82f74aec414c547645d28ad43ba56624d06ca0357563e46c73e7550160a5a0737d08b513beb5cff349ee09fb56142cae3e635fca8ab089e1bc7b56f91cc3ddbe8ed4769d467da64f5d1cb6252a3afeb8121f210b4ae3761e4384a906e33c2241712b8962b9847e1a32a3deaa677e941afcb0def4b532b168ae68b2dd8fd354b8ca26511260743f8cd18f8eb9d326f9985a9ba53876614e9751974d22702cab4735d9aeed9f8de4dcbe310615be92993ab4345ac789b1770b680b7e53cf20a79bf2bf955be23ed083688c0b326a962780989a3a1a4fb288f497f481ac30df58640d406aa41dc353e62734899d27236b527635c5e5b0601b938c18aafe9f5a5f8c82f74aec414c547645d28ad43ba56624d06ca0357563e46c73e7550160a5a0737d08b513beb5cff349ee09fb56142cae3e635fca8ab089e1bc7b56f91cc3ddbe8ed4769d467da64f5d1cb6252a3afeb8121f210b4ae3761e4384a906e33c2241712b8962b9847e1a32a3deaa677e941afcb0def4b532b168ae68b2dd8fd354b8ca26511260743f8cd18f8eb9d326f9985a9ba53876614e9751974d22702cab4735d9aeed9f8de4dcbe310615be92993ab4345ac789b1770b680b7e53cf20a79bf2bf955be23ed083688c0b326a962780989a3a1a4fb288f497f481ac30df58640d406aa41dc353e62734899d27236b527635c5e5b060df237e95603c22b115b51664f40ce8a1bf3b428e1c80bf071341ff56c8a1d8b2094e452eca6427b095af7a868bef31e068b2dbfb1a9ff44b42700a19e20cbdd2cde337a7b3c0ef134647820650c6ec7d5c865e563213bee2e943d34813d12542bb5219dd9c2b32a22408678731a30d64d099575cd588d66ee7e5d40520a43e30c0812d76c6f3d6ca6d1e6b527a66a7e647f93196e3898e285d784653440ccb13483450913f00e4bab1cd8ad41da11fe49887611ab7e701aa4d4ad25d9533a5c267aa804e96598e51944feeb0d9eebd8e9770699808f77d8146bb47a9a3344ca3f4cb718be32b1291c98d4e23c7a4e21740b2e921e5096323203ea9a4845e9211255406cdfa0f53f584b1db47762c816409f1fef9f3e3eb828c388d99e85cd112e336d0daa6f82d9f0f5d31d68f388cf835cc7481cfbedb523acf3fb73068c2a18559430108bed6edefb8e856f582ec04af7702308006ddc902ed5848f640d693e5d61737dc96252e83e54b8a2581c2700252ff0a3417303bb33d87408224a720ea44c2fc012c9709ee65948a7ec14364380337810bebc6acfcf8b318dbb1a94150b9add47d877cd5eddccec1a7bcda2e82555935b680a59efd4607139eca78200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013b4ffabf54ef14aa7b13f5a7b7257a5e308e816faa0c39222a4e7fa06db5db7021d8bde17c424baafa7f59723dfb01ec9ee571a93959718b3ac813122d7f9d82186ab7491d37885c441bf8f072881beb9892b82587c063a323a0f78bcb5bd58d25e7d810ef4669c8b1c014f5dfee91e34bb098e877bce6843c04da727181ce7c21515a40ce21d8343f53b682636495cedacbc6f397949f8f2e711c5621148f681367a5bf2ca2ac5ea2d53cf0a10b88c35a0c4f29ed90c12802d876d83a3dd4491109ad4c5183f69681888cf1ac9c73233ae4e3bd5ca9ad8e34b81c1a117946272ef652b3ae7c09697e77730e53638cdce761b53eaca34b8d647514d2ee86b9da1530627d9793d0f087aac0b85f0e3fb00431d9b6c6036aab6e6b5b95575e5ec22acf9d82686c2f0f78553f47a0f1c0501e14bf4543498e702ac1d557a8a1a13f29f1ec73f5e314b2a655c399db473e6ff2b2a795d4c41c3d8eeb98fdb4d7d9c9160e138c0a1ceb4d59aa3c6624b8c1902f93f1663488dcde0a4197ef4b28263811b99e43cd6f677d3facd2014864382f56a97af90beda1e0ff126a2d883740ea2e4661bc32909882c0532dfeb79bc7d0cb9d1e02fd5f573a9a1ac6bf77c8bf171109ad4c5183f69681888cf1ac9c73233ae4e3bd5ca9ad8e34b81c1a117946272ef652b3ae7c09697e77730e53638cdce761b53eaca34b8d647514d2ee86b9da1530627d9793d0f087aac0b85f0e3fb00431d9b6c6036aab6e6b5b95575e5ec22acf9d82686c2f0f78553f47a0f1c0501e14bf4543498e702ac1d557a8a1a13f29f1ec73f5e314b2a655c399db473e6ff2b2a795d4c41c3d8eeb98fdb4d7d9c9160e138c0a1ceb4d59aa3c6624b8c1902f93f1663488dcde0a4197ef4b28263811b99e43cd6f677d3facd2014864382f56a97af90beda1e0ff126a2d883740ea2e4661bc32909882c0532dfeb79bc7d0cb9d1e02fd5f573a9a1ac6bf77c8bf1733f2b7ed47f7856ef53c59d1176dc340e16dbd4ffbeaa34b8f12f425e46753031de3d4bce06b42198eae94a6f1dfdc75dc24f6997510e65a24910425e021ae23047753774a51f6cfa571f34fe94a79e3ecb46f1877dd157c8ba2e5c75ff3b4ff0e336e2e5226abe8fbcdff736db4e3f738e8b6205468b8d67aa5c343273535b015ea52416e7a587aec0b33c1f23bf92f14f4cfcdb7542338aa763af82c0cfaf50fa1ae59fddb6b9adaf526975e39df5458f9932fa9e19ad1fa451d7ab12745a41c23a9dd8057d4424e0aa40a65228e8ad90ea49260f18f97874f0461b4902bf82c0495ad8dee3910777e6ff0726b913a16209edefb4df9e6d4040a1e2c1ff6162c160ccdcc3eccbd04f689f695d8c129f99a4962fcb2f2cff6efb9c305db3cd3115f91808ea4f0d3608dee915625e47cae0fe746151e4ea622de1a4ec99bd0051552905690cfcfc984cb1e90e3bcc995106535da7ee5771176a716317c7958352508dd874cee153ed8dd03aedd20fd55c2ce6fa932b5ccacc5bb60761ae953250add71751236b3a5ab2c12dc6512d1442a976a95082255e9cdaeb8f4b836b9ed2eee419f3d7ce03e589c2ebe6647954bc31ee10efa8985d0bd778ed4d6a2001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012319485744650301d738d25c6acea202161badc3e30d202c1690b054fc2a2d4b0bdcf3a50e1c2740f10c63fafb9213dc1372c8907669bd12bd59edcf78f5382a38081f39d703d8783385ee00278e66981eb640edb2f13651b9094d917936131937deb4d6275a0eb18a4b7d8e05e8e841cfe268cfdffbb59d4f61663e6b29da072a2e814d9bbbf39db37ed3d6a06a179a25b97be86d0da12aa83798b1a31a2e4908b4a353c69d8e35bef969d0fe364da8cc5cce5c7ffb963b665c4b7c7d08360b2b3b77dd176cf217af800564125910b91877e9fab9f505e3b5b89671c40417f614c48822e8930de8507ffa9beda6ef4709ceaf014f57f337e3749a7b3bfbe80b182957517520ba766d801af45bbd539d1383c6f185e2321fc1135d71d41477cb27d6a8ae8adf4589927fe50ba442ac630ec2d20a836ac6fbd819d37b2beb883638ceb49749a3a450238086c5cab2a2113f4c49bb941e01832c33a24c246656f607314b68b65c5bafdc7f793a354d5deee2fa4f40752ef7986cf98ea0db99a90b1c0986f470323590b182a1dcf57d2a55b3630cb9bf622321784d67c8b5ffb2ca23f6790b8fcdca6f4e7d5e230a82d5aa6ee38c4249ead5fa20dfc9244a004d372b3b77dd176cf217af800564125910b91877e9fab9f505e3b5b89671c40417f614c48822e8930de8507ffa9beda6ef4709ceaf014f57f337e3749a7b3bfbe80b182957517520ba766d801af45bbd539d1383c6f185e2321fc1135d71d41477cb27d6a8ae8adf4589927fe50ba442ac630ec2d20a836ac6fbd819d37b2beb883638ceb49749a3a450238086c5cab2a2113f4c49bb941e01832c33a24c246656f607314b68b65c5bafdc7f793a354d5deee2fa4f40752ef7986cf98ea0db99a90b1c0986f470323590b182a1dcf57d2a55b3630cb9bf622321784d67c8b5ffb2ca23f6790b8fcdca6f4e7d5e230a82d5aa6ee38c4249ead5fa20dfc9244a004d373b13c6714b78cef8dc5e3cc4f50c91780db08667489f7b207fe4c0b6a1ae27fa152d02b6324ff73c4371fcf2114980085a9d40c83d34ab329a984fafa9f940d115d0bcae4e79a51577d56c79772af1ac2321c5960c60d6226ffa609757a11bd634faad91f2bb6e579a829163b97b27212242a15eb80ddae790bb8c804809f0b52bd9b1190731be1d19db257c95f3f46e8c614ce2f37433674ab0f9e46537466a22ed5b2bd145075e68e06f8fa235407581e555c134ddb8678d22874a345975603376366d0d8e5843d677eb2620cda147d78cecd1f66c34da3308e5decd757847302d8828dd10c08ee3a3f1780009a195881d74520479a243ad78b469623716ad04db9499666d1e5ed579a883588953998840cc5df74367787be511c7cb382b08195ce8da3a1e82250dea64a1ae7115f6a63d6abbe74025bd26c4720b2ab106213b7ac5e31fc839494cf9d28fe703932d1e74f2e2a7a59942218324056b7720d11fd573ec707a252070a1e3a1bcb5397c49621b71fe4c2e80aa20a772dd124d860815699b4b2480f697f491a63ee880e35e0a223ce53ef1dce28627d8b29685bd36d3dee588d76b0d4360da1e3e572f65b967506c65f109f395fb245e753c57eb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013e1ed7574e918e35b946e3027817a9863d26450831cdd8c06722c94e1efb042312a6dd5802890d174a6bbd93825cc197809ca44d5b27ca6ca5aad0ff128c77ab252cb31dc9d810c23b5012a6edf86b8809fcf64c46caea3495a5980c3aa59cc22b58633e537e1284dfbab141fd1e6073206d56cfcedcdfc34e049cc929e0165c1acbb09235e331d44357972b7820f97240b4b998f4810d2ae58fb0d3f208b3101a480fffff12c7e4d4e60447bcdf97072f8e3b4cacf924ed2dc61dcdd6bca4872982f9e5f6e341904acdc642c4b2f7fc806edc7e533c1eb962fe3f669dc37571167d061a091cbe6fb53239bd3b4d0803a1d7bc7db610da62362ef186623c8a900f8ee17dd27047d17604df4dd77ed7ee1b5683838445ae4c236faa3a14d14b3230711e822d8fb82e89fb20b22881281206f0157885074acf75bd86b2eb2eb4cf0dca67751c3167174e185c85357a37a66669f8958c0f6e6118012235681677f93235988ae3ce98e8b1e7a37aca85c859bbdca0667d3d8aba812c0eb797e9880804f405498cf703748679ce9a0b63163fddcb41efb3002ec9ded87a1e087057dc3b0bfab67308fc8b79863165f49ce9c0447b570c564cca51ba54b6cef78fa8252982f9e5f6e341904acdc642c4b2f7fc806edc7e533c1eb962fe3f669dc37571167d061a091cbe6fb53239bd3b4d0803a1d7bc7db610da62362ef186623c8a900f8ee17dd27047d17604df4dd77ed7ee1b5683838445ae4c236faa3a14d14b3230711e822d8fb82e89fb20b22881281206f0157885074acf75bd86b2eb2eb4cf0dca67751c3167174e185c85357a37a66669f8958c0f6e6118012235681677f93235988ae3ce98e8b1e7a37aca85c859bbdca0667d3d8aba812c0eb797e9880804f405498cf703748679ce9a0b63163fddcb41efb3002ec9ded87a1e087057dc3b0bfab67308fc8b79863165f49ce9c0447b570c564cca51ba54b6cef78fa8253217d362b7ff0d86f7e9427389d9d0d9fe1c87f0ee68d310812357bdbf6acca32fe3922ca873c162838468ca41d2b126c20f23ed8c8f6ea39eb52c992dde754f36446919f348dae890318cb52dd74143a3ca07b9d86174c8e83d69cea1adb98212a3968db2b796893a52de00944a641251d82bef2ae4da62b85cd653d42eae9b3e23054270ed13a79518070fa51b1ed82c5208acf28367f028f244ade6330dc41b403371f2a1012840e952dbfe89949b49a1daac6467a8988f6844f75eef342e12de6db33131621a15e7c7b250760ba15a3a145ae7b5a8f5320b15e4f1b906db1fa87d6b0d993e3c9a1422a538dd2eacbdf7743089b68789326f0b7bc1f2982d2045ccca50f80829241c0db60b335fe4fce338903cd2eed7192b6bd30970c9d42d71f1d35ea3d8c78816622c6524b7459faf044e02e22889564d4948ca50c7ae2044614dfd6ce647a4628030c55b5be66282a9cd40905d93c841c6905bd1ffef1032501704d8d68f352d08ed6a87fd9848d66d26040d682bda75fe87613a6901276b63821ca7fbbb77e8167c71a92aee70f1fbb1d47b116af88f0aa2a2941e8322d2a6858b72d923954db4276c406b2a8b10a7c2aecaa27b0075acc4b9a5040d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011ad61a3540a15933e799d16c17ad93f8d4ec63a02132b08a43d71f62823fa5031ea10f1ea75e92e3f40408ca5177f4fdcd4400c77672ac572a8ce52eeda4ed3c3dfe68ba42fbbbaa3c3998c238e63a901c1baa3a6a22b366b8ef8dcba12f50cd21b3cb2bcf2f3ee81b36ebb27f1d9c4d35a0e7cd8fa3b454e1d98f2515b21c2e1e90fa6dd08826d3fa8819d2b45591f8161bc956136680e4cd845d8f0d01b5063139a10c547544b4061c41a42028c05d62a294257ff559e6105bfd54835813a4269e6cd37938f2d8bce4aeaeb0f5b1713b751300ab9a20ad6c26c541de8510591961932c86c70d27431b51514f0a4e8ee6d185fb5db2d86e2d066bab217aefa8011820215e1cbe3bb077696974cc7735c275940f3e1bb810513a4782589951ba3ee7dfdea1e341c44f8896968b3388ca5fd104eccb31410b47f2e96aa766ae470578a0a6d68fb72a72550f0f47fe540ccc4be44c368a98519623658bbafe98a23a875f59297048d58daaf0f0b801abf355fab4afd2c260ca0309cb614501675f1b5b234230ce93d43ba94b4c67f7a43ffd7b757d10b4f997eeb0fbbaa6f8fb2a24a4dcbdcf316c2bc456b4b398085bc024cb237ef897ff83aa7c3532590704d7269e6cd37938f2d8bce4aeaeb0f5b1713b751300ab9a20ad6c26c541de8510591961932c86c70d27431b51514f0a4e8ee6d185fb5db2d86e2d066bab217aefa8011820215e1cbe3bb077696974cc7735c275940f3e1bb810513a4782589951ba3ee7dfdea1e341c44f8896968b3388ca5fd104eccb31410b47f2e96aa766ae470578a0a6d68fb72a72550f0f47fe540ccc4be44c368a98519623658bbafe98a23a875f59297048d58daaf0f0b801abf355fab4afd2c260ca0309cb614501675f1b5b234230ce93d43ba94b4c67f7a43ffd7b757d10b4f997eeb0fbbaa6f8fb2a24a4dcbdcf316c2bc456b4b398085bc024cb237ef897ff83aa7c3532590704d72256a7084415371e03a09af0c5e9eaef22518cb5c24cc2f8985c7adc3ba2275d23e05acac8a61cb993ec659c0d776d653174f6fb40fe18fe66557cc5aef96e891d346632101230652aed2e08b58ff02fb85157667fbd12938e868e28895fa9a007bac4c07890e1569b02f52c0b753f5d714001955f6fccc2da327d9f914ca22104371e0860c4a6721f59ff5befb1777b7a1f05f519d1b74b388c5ddefcf9939506b63c5784298261fdbcd42f0eaca7b5553714b0d469db00708bf2789107b57b3e2aefb3fdc36a87911a687680f69e292b5a7586b5396fea7aa6d6029b271a8c11c1adfd13df51e88b6d12f4c8b0f50a84ed479ac4e13d93ba2a32c692cd946533f0579fde0f34c6e16b75f5ce232f41531279794b06d084ea4344c4b8c212560f7703060bb5570f74d3fb958399eb74d829e54cd901369c0066cac3a1e560cd1c7d4f27373a4af6a313c9a16932525ba15f047df135b30eb3ab227b2174438120637bf5fd7292eb3cd32c758105d23add806b301422f8891b91030e8313ca9b130924584301a804419c19381a5491f0f891ec80cf3c5c2ced1f5566fe02fbd727c3c5602d2129ca10eb09c5123b6a7b040e5579b407bdbb1de3f870123d71840000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001310cfa1903dabbdd69cca8e0e9a298b6369483e59b0eaf7bbff78b19cb5db0581b5cdac5added3ca6f7985ba98cc73cac9c693fc242533c7cd5cb14d9b0435360f4ffcfd88eb83a05627feae7fec419f74f20a5b98b407a498b0bccf8ae01e3912b8922a9115daefdf287be3d169ea87de16853281125a96fc26b57103ce187327f49c4c7e586b835d37c7392d6cd39ca385ab8957b83f273e74a5b405c9219137e5149d21d3338ee3babc23e7e9603e12002913752dbd0aebb7353672ce74ee03dbc84173938ebec8f00134670e0b64fd78269425cd6cd77b83809a10464ce73c2437be8c6c7141370ffecb98f1f49b24ce7267e37f8c441da9b052efb9b31a134ae94741e1c9b9ecb00606034638f8f358c0e4bd03203569918302515f80832cb516b8be1e3646134ff9f9fcb9c7072eedd8174c49d8e62f9badeaaea07f7e20768e644968f0a19f701e1e105f1cdc9e752b7ba7c2a7ef76aa5e1e96dd828e1f89719bb6970f5e608fe1e1efa0e32383d16d80618a512c2282d2ce69227d732250c7f56f0cb3281d30969651db904ed3bca772343355761ef974bef2538cc41daf380a90f34cd7e2cf6969ae246fb14e89f189d519a3a57a33bc2e0dac733d03dbc84173938ebec8f00134670e0b64fd78269425cd6cd77b83809a10464ce73c2437be8c6c7141370ffecb98f1f49b24ce7267e37f8c441da9b052efb9b31a134ae94741e1c9b9ecb00606034638f8f358c0e4bd03203569918302515f80832cb516b8be1e3646134ff9f9fcb9c7072eedd8174c49d8e62f9badeaaea07f7e20768e644968f0a19f701e1e105f1cdc9e752b7ba7c2a7ef76aa5e1e96dd828e1f89719bb6970f5e608fe1e1efa0e32383d16d80618a512c2282d2ce69227d732250c7f56f0cb3281d30969651db904ed3bca772343355761ef974bef2538cc41daf380a90f34cd7e2cf6969ae246fb14e89f189d519a3a57a33bc2e0dac733d0c5616a0d608205974050641a99871d2e90f4b2a2e2fffb2fd7200af43585b73216856e307f292621acd7b9bcdd9f1f234dd023a65742fa4b403e12a7f1d05f635deebbf770653215ed8f66f67e195846f81dcd657970eecc79a1c91cd7bbaf42ed4592094d5c20a37991900b44bf299b57a75103585a46da1c84b9cc43c5b2a2fb12e7c0a15618454a27c66784ea32d8c9b5ade2b38fd01de2b7d13079136140b4d318dbc93c00bdd3fb3a49c83a4e51b8b6969a14d1b74c1834d4e6269b9682bf6c25f23207f7c447e3127b72ad179b8ffaaf1f8e01ed4293daf17abf8ce922b663e58264a4c3786557cbd19e6ef230d8c427c66b405614756a560666847dc2b234a6f0b5f972145fc38198cb042a555f3a4c1dbfd98dd0bdf60f47d98fb0b2baa350e3db7229f424cbd5cc7806424d06d1fb09eb1f4d94ef9a721470e919d1fec5d2adafec6ca6341db7ed3afcf484cf2ef07d13eaaaed82b2413d8fd20403bbd2831fc73352ce929a7bdf486763f5969560765b9bdcbf3e1eb8896f9c0ca3f95250625542c010935da25269a54fe2028bffe4fa93d730e3e9ab6b76a66c82ec5fd2d63d7b873f4e13a65f034023a8c5823125194dba402e8c5f572f0e001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000112f1b8068c96bfcf3b37cb4b25f24d58aafc4f73668e28e83c619494f3b06fa5381a0dccaec7d9c298bc99492037b03fd72ffb2015647ca08d3ffff7127589d4014e86a19e664f7ad4253e399b96e338aeaa93692438eda0c7c110a833c6928e0ef7b7cc2b923ab2f07e4cbe304bbbf0dbb6fce4490a598d0ac9dfd775ed7bae1a062a96887f9bc506b3bfe8c3b758743ad6d7d48ed816a17381b059d2ce563033a8d3cd23b0f5a9e69ac9b039cea6c22e4c20a21b4fd76cafe599368c1ccfc116cd78174dcca99bf1ffc17681b9752c4950b672045387a2f8e296293b38b403293287e8b23356640e003e897e468ad3d8f5e28a04f97178a04a9ac3c4c74bfe3203587484ff500bb9fec750889f49dd4c4cf73e0c54ad13433fbde1281b840e0dfca78b7b00aff4460138af7760b622d5f9a1bdfcf84c0855ed730bd7e47bf33a10ba4698fc903aa1f9e492ab1c715216ad094221c0760d84b7229ec889944305ef45b967036fc55e061b6d54e38eae0b998fb9e78c830e14760e4e37766bbe2253a360fceed12529e176dd578e3699e846ca5a838e69d532dee965eaafe54b1dac5c9f03112edad61e8922a871c96639ffcea185be8f46664e478715501ab616cd78174dcca99bf1ffc17681b9752c4950b672045387a2f8e296293b38b403293287e8b23356640e003e897e468ad3d8f5e28a04f97178a04a9ac3c4c74bfe3203587484ff500bb9fec750889f49dd4c4cf73e0c54ad13433fbde1281b840e0dfca78b7b00aff4460138af7760b622d5f9a1bdfcf84c0855ed730bd7e47bf33a10ba4698fc903aa1f9e492ab1c715216ad094221c0760d84b7229ec889944305ef45b967036fc55e061b6d54e38eae0b998fb9e78c830e14760e4e37766bbe2253a360fceed12529e176dd578e3699e846ca5a838e69d532dee965eaafe54b1dac5c9f03112edad61e8922a871c96639ffcea185be8f46664e478715501ab601d897ca49c170227ba0dfa932440598cdeb86e669185a8a6fc3c7d2681abf5304e03f57d56ffcaaa57b51437044599eb849041d11768a2b708d92282ca9ace91f98ffbd8a3da345af88fb7fe10645f12fb00c65b19dbc221d0bcb634a1002f613ce0233883d7e84dede2a35057430ae15ae6c3f69e55db5a012308e304b9caf3dd6094982f670d2f2866d48a842414936d6dd67006af3b35788880f4e9586d23638499481b881c83502946221fea966aecfe8f75757f2550b67d92379d88fde38a4626a4a80293f00840a985c3e73948e64988ca021b575e0ce8c4a3145a3552f6d78133ae6b84c5dc58ddbad1c3fd556bf69a7592623ebd825e2ce3854c7e50db3d96f7651062b959429420fee3708d15c5c8020609b5b5aacaf25b53a1df62d9c699ca45939986006081df3441da5169175af170263df4cd82a74434458d5204344d0a0505072dfb98875019cd64a12d5491f251ca5ba5ea96dde0c88a5202156e8aaf9a63ecdec73f8b14f23095bdcc22c417729aa2096772c0af75f01162f35c89eabe8aa73f72f6b5b9a014c522849b7ae6f66fc50af9303c0cbff254c126c0bcae5eb4d3a8d202ac977cb55830b47820df4dd952038a1fccaa7d6c4f500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012358fe7c9cef3ff046b8298c1d7c098dc45ada6c5d910f64eb50491768556b6f3ab682e1f8fa84a2a56f37b93cc5b4963ca9d1c95ca082e53d5aee8369a6aef02a725984ce33256fe69afbc5595b497f1ad47293e86482a800f4ab141d6310b2125d20e64ac58d1e2eb21f967313a08089a04fcff02196b1a2007546fd47adc6174966432cae29191abe2602b4c76ae461d287a9d5e9a11bebebe6437ad285e01f1d4ae6364ceec2c3e4719e5c86b6c92aa5b9d85b97bf4a4877d8131c6cdc8e1fbd5292bb47a273d1930e25e7444ff7f0afb3f24a21d1339e0ce76ef5b340562042ad6d44b85d8c2e6cf1da18bbb0083196e509bf2b27e7fb20497e0a4cbfab1eb29cdda8662c4317df46bd84558fd76ee151c3600f23cae3e62350cc8041ac214d63225799d3bce820b9427baa7028b3654738a93dd550b5470d9c337fbe55197d105449fedd4f775c61b395abcf34e5d966d8cdb1c0bf41244eb9fe81485a2682efabb60122b088a39e4c6a5430cb3c6d32233b9b385c5808e233017eb7a73f7151a571fa528d54cde881ec5b0c085af8693ffb2bcaa0ac8858b4f88669c1008eae5a8e05ad72ab32177e13a4f3f7c74e2fbc0e212e7aeca4d838077996401fbd5292bb47a273d1930e25e7444ff7f0afb3f24a21d1339e0ce76ef5b340562042ad6d44b85d8c2e6cf1da18bbb0083196e509bf2b27e7fb20497e0a4cbfab1eb29cdda8662c4317df46bd84558fd76ee151c3600f23cae3e62350cc8041ac214d63225799d3bce820b9427baa7028b3654738a93dd550b5470d9c337fbe55197d105449fedd4f775c61b395abcf34e5d966d8cdb1c0bf41244eb9fe81485a2682efabb60122b088a39e4c6a5430cb3c6d32233b9b385c5808e233017eb7a73f7151a571fa528d54cde881ec5b0c085af8693ffb2bcaa0ac8858b4f88669c1008eae5a8e05ad72ab32177e13a4f3f7c74e2fbc0e212e7aeca4d83807799640364dd1d7f616c318475ba546e39a93b592fb9adb0bdc5703588701952d70c6c806dcffedb22c4e77d8ed497e529531977a2201efff2be98cee73e2ebc342df1339d24e3b13b176137675c24434341c29d0daca0d4b50794a8b073a0aae8ca7571237f319d05ab81aa5bbca31f5e173ee541b4e6aca701512b448911f6f5b009d3530b26cc20d4b39891caf70150df9705e98ea421ae5b26cf16e8fdddd59bf991cf329bab9b670d0095d183e71880aee2a0befb493be15f73009bae80204efbe1054f3532a8c6c8d1f1601dd4cc3d8731b676ebd75f715b6b82f9e6273bba6be075da9215480f251dc912ce901a75f0c7f114709bf2cbee148ac2d79d61e1d1f2352b408d5ff68a7694410471c6370eab5b216228d4570aad27ebca929cc815824acd20a653dface2729932149d1bfcb9a4a58a0c1b81c40e5fcafe3843509c90ab9730d5750a1962378aee49724c60264ae62835483fc8a05a0011af39c3d8430d39d3364de4c60fcb4cea0244c19937759c6c39d7b666501ad782ee5ee5c6d37732e318680b588ac1835cef0c912c021d7b0449b222b655b312f5a2da7d1b5392d9bb0f4ae0e7b73f9cdbdd049512386b39ffcf7b53d74b01cf90f5b6eb979000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000105f968c6b8c2411e4468217aec6246e62aec0ebfb5b7ebd3d6e6d96a8187210d3c32aa160f96f4e94bf3d4c4fa8edc23b99973cc860293fb0865f9f636d25e5303257a36a28051fdb15c773a6b35081660989b3b34516dd75985ae6879cbfd6d32ecadcfebac3eb9163559ff1645f81c2adc5212b596f050b93590d0d33552d511083ab205e0fb55a09eb8c2dbbca21124ba9d2bd617869eac23ea90202b11a117eb982c04cde16893b977104bb173ab0f9c30c7e207ae4507bdefa730435fa72ea29935b680ddc9d09db5bb767c308cf109041774f53222cd326a318f5b4ed8115d66ca497f22362f624a448983cf73313d94e49457c6f8cbfac6bb70a4b129292cfe0c908454f113148ca9506cf2c04e5949812ce30f5b36748030ccc88a3516d301f36f7bab0eeceb7356af930d3fd3ed4f7adc69e9c062b8b0bc333775cc0de0f63ed295a8b55f66bf4e9220bdc120eaa491c488617544beee2cffeab306321f09c12d6a574aa09940b16ddf423f015bf46a44c497a6546e42c000154cfb0564cf3a1cec4b8add01bc88daa3b4c5824e9ddccd5cee2ebe8d75f3ff957f1d3a9b30c5e313b47522fe4377255c4b3a9ff7fb1f3bf00aecda9fbaf9006a80e42ea29935b680ddc9d09db5bb767c308cf109041774f53222cd326a318f5b4ed8115d66ca497f22362f624a448983cf73313d94e49457c6f8cbfac6bb70a4b129292cfe0c908454f113148ca9506cf2c04e5949812ce30f5b36748030ccc88a3516d301f36f7bab0eeceb7356af930d3fd3ed4f7adc69e9c062b8b0bc333775cc0de0f63ed295a8b55f66bf4e9220bdc120eaa491c488617544beee2cffeab306321f09c12d6a574aa09940b16ddf423f015bf46a44c497a6546e42c000154cfb0564cf3a1cec4b8add01bc88daa3b4c5824e9ddccd5cee2ebe8d75f3ff957f1d3a9b30c5e313b47522fe4377255c4b3a9ff7fb1f3bf00aecda9fbaf9006a80e41638c722d681b9a367707bc6a94b9a9aab39f07019eec840162b9a06124d16191897330ce884f145a19e4048a1139ec5eeadec55268d2504700ae2a32b9355071c23a9dd8057d4424e0aa40a65228e8ad90ea49260f18f97874f0461b4902bf82c0495ad8dee3910777e6ff0726b913a16209edefb4df9e6d4040a1e2c1ff6161ebc262606335e3e587d7e63750e0a5adad8838f1aa5042ed3c5763b731e8aca33ee9b7f9645447a48c2745fe1f153806d0b3aa5baedc33fcbb063bc140a5fe73af4b0ec5afb8e6cfccb07fa6516093f2644f5128a76ec00cb3489fde19ce0262991c70912dc4f160f7246c018afa00a18d50e80ca0d22cd97373e23b420a6dd3ed3b9fd366cb2ea9c8c372d4d9bb436807bbeed619a62413867af17ada660120c8ed627793d7679f752f7b2eb08445853ab3f8c5f8aa6cd8b28e4055ba2114d22504c2136fece9f7f1480da4d842dd5885e9ea119f60e6b64061e5d3c3f2dcd084d4c62435110f12795cebf6c56887617746f00a1de72b234aa13dfeda4318a2873e2947e0c13fb8e6ce993ec953bf19c42c40e1fe9dfffb3fbb894d43f176e1a7a00e99edbe1f5dcdd6e5005b6116ddf14af058b884a805f6ed87cc837943c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010c56d65ec087ad01cd5dbea6634edf80bb59a3ae965619c30cfc54753b4c3c8d097a657ce318d0ca75461ca5b088d15adb88479add9b66554ea6ebd22813788f18a5dee125ffe8532147d1f0e0552faf64caf5b70fee05b7337be1199aab33c716d98ae8da526f2d48c2c7780c7b322a8dc0b9a749441e1c5e18cbda30f95faf35e8c8782d61e9cac3288801854da2b7336fb71cf7bdd44c92a860ac359a721701d26a4d4ab26b790d3cbe87eb4ce58f7179c3704b4783bba22cc3f87c93947200000000000000f03548583f27b2b4356807d53955641877730d4b45ee8548a527f7218a4e6bb5cb10f302574e63c4b901599e64ce113f4baa387661895f6d7299c43272ad1427cc0e1ae38ed33bb62b1a0b7f491bb98e69fbe3550a5e0be42038bd2efcc282c0e924027d756315df18a66547111d6e5db85b85a4bd47dddc3f14afd6a089a5c040278a8a8a8e5dac85ceb92c2d77d16a68c57f2319f6f1d4c13423f04294ce9949304729f054d8488ce2ed9cb8ec4885d6c6b3767f6146065a3db7cb19a5858db41ebc6cf7602cf88907d29c45469c168031144ab964be099a1bfed1d7ebacca8127ee0d6a6edf1e09317a457fd01fab4191160a300f07e861a449419f0db246ea3de3d974342f70b5e8b36cd853985b4e2f6a43ad440389e636190d40fb5945d53dc4c7373646342503af1ab5dd8cd6e5a96dbe546a289f69c88ffc135acd5706307e18133834c41eed5d5cbd2c1bb726a5af7214b4eabf3cbcefba81bfa9d45227539c67ab0130f3c4496c2937fe3918e6832784a34d1bdeb4ec00da7aaa52ab0dab453d8897bd04da30484ac84dc2dc28c579462d414d16a68b96bf79d7c5981350675ef057ba6799139e1d1ccf464ac430b501e523c9fc53655595dd9d61b71aeea8239b7bd1a94d67fcf6beb2ca6e53264f1afd4a928d40ab689990a7099d3107d98eb2bf1d8b0dcf8ed3cdcc79b994c9260a2593ce67d256f31552f5f7ea288f3a8dea32ebd799f0570c944829da5b9625ea29b5afe9b8052621b4d653752f4279ecf903093b17b671d9cfd1c665309c73af2e822b31b9d6953a857dd38825d10926e819c20767a22c0e93f9e463397373746220f22466a00616cb2fdb1138ade1a9f42d8bbe0d189cb26aa4f20a1e3b8f171beb167913178c820f1b39713dd0205de1bbeba9c5f9a5467299ed320cc2734f238b7df7dedcd76665d9a9e839a716318e3efd0c0f6e942d02e4b885834b18d8677790073a2388cf060b023f31dfef18567d7afba8b417d13983b6bd95b2be7567e37e9d2c0b231f6919ef4a25f1c5628cb87a1708f2b1152a963981f67fdb23f0545c7e45d0983cd13a37b33dfeb7450f295aac9fb7e7e80fec236aa169578a3f37dbfc5e2c0696ee5ba9d026462f30e2171900e7cc2cddab700e18c657df1d5bab56c58d73d58c0935142b0f2b01e36389a9e349caec0249558ba6ff64344f0a17d9c53300237d135c887334b557b99be09f308204b837be51c4ab6019b57ee2c08588d477ae2fbc108f7e0127b8189b51952b18175e69fb40436f2c1138645d7a6b2f52e4972c1510555e16a9fc6247e45fe7998f6a7c68d9acd03ddac838f17076d085c9f3432543d19e3b56f4937abb30bddae323414bca449358f3a64577a64986cc670e0b7e7aaa6f1598820972a7f0dbf2fbedf842076ef74357fae8d0482f300fe63c8ede319bee13b651b1bb25255aa47a3060c44f355793b84d119b0bc89311b690ed61e48cfc1b9fc41962845834e8919a924f87e488e39891e1ecc47dc60b8ec3bb555c11b22f12f0e5a1cc1c70d68873652cd03bdb3cd1a8c8a44af488b0a441df2f155ef828bec3954169d8a1db1e55813749b4644f60f0d0b3ece692c137797d0b3ec80506b9902a20d07685054293a6abeb2376046176e32eb721a3a344f7bb3280e8af2c20b023c8484c63bfd50b4930a4469a0b6a256b46aaa5a62c98b21d9044e8cd3962e8cc9d676d4f60ab2516610279de88c7bb546cdb12845a72b0ae3ff2994a2260665e325b5b469947c9b3154c17aab49e66e4547b825a074947527cc9361416a9fc6247e45fe7998f6a7c68d9acd03ddac838f17076d085c9f3432543d19e0127b8189b51952b18175e69fb40436f2c1138645d7a6b2f52e4972c1510555e31b82c487111ed480812f9c025d4f2846b808c9f9b3f29dba60e68e417ce476a0ab274da6ee70bdc8e19f3348185d3f8bc7630f65dcca16e7436a4be369b452436afe854276b0136e6752222c4749b786e684f82dc84aca54326c12e2f8a1a1d1cfd3ec15987213e8415e5162d02023b468c475eaecbe692130aacd07901cbab2f4279ecf903093b17b671d9cfd1c665309c73af2e822b31b9d6953a857dd388288f3a8dea32ebd799f0570c944829da5b9625ea29b5afe9b8052621b4d6537500e1a9b085436ea221593043cbcb63107f0190bc006ba5990dd74f9897d244d412cfceb6f70f2398a228ae0ba3ca9f9a7daa6859270e162295f21db2e1fe598e1e313c78bc1ca28333c42a2698827cc02659a9477c720091c5ad88a49371d9a90f550b4adcbed9e2d18da282ac4b78f8fcdacffb82863a1fbcec0a7eac8e8c7c304729f054d8488ce2ed9cb8ec4885d6c6b3767f6146065a3db7cb19a5858db4278a8a8a8e5dac85ceb92c2d77d16a68c57f2319f6f1d4c13423f04294ce99492c20b023c8484c63bfd50b4930a4469a0b6a256b46aaa5a62c98b21d9044e8cd06b9902a20d07685054293a6abeb2376046176e32eb721a3a344f7bb3280e8af3962e8cc9d676d4f60ab2516610279de88c7bb546cdb12845a72b0ae3ff2994a2260665e325b5b469947c9b3154c17aab49e66e4547b825a074947527cc9361416a9fc6247e45fe7998f6a7c68d9acd03ddac838f17076d085c9f3432543d19e0127b8189b51952b18175e69fb40436f2c1138645d7a6b2f52e4972c1510555e07944f28e671033062544d5097c62496ee838e082d1d3613441aaf48a4bcd9233bd107d8a0f5ba8fcc18c7bf0ee4a144498c02cd0d8ac0fb20558bcf1c1365d73457b90160907f2aeb4633bc0b364085d6a9e4a5934f3acb6e229374a1c046752541e3fa2c2db924d7db53fde34e3970de790a14bfd0852c5b1a2b3196b12bc626e78348b7c3e26387cd9b5fdf858de3977badd3b3b0cec4a8eee31885336c1c30ea31322b7212af29d92d868494625bf4b6ebc5a4870c56c8ecd843b520bae104d774ecaa938cc135a513fe1550866b2850f62fd8cad6b29ec843a9da6bf54a2d7289f2bf436020ce582c0bdaa85fdeda2979598d9bc4a7e10f4aaa2e64167c0b34f8d905e2cf16720cc7283908de4336a682d1b6c1c0e43e094f69f2810772216abb6d7c57260cb8030a57d9ffe28aefea4c1266b54d31590f850552e6143314c792684ab495982a758597475718449cf226a61fa02c3ede0cbb4058695046030a221298815f7a8731434f1cc2d7faccf9d9f72f4ab5c0faa1cf2ee1ead6b63209c0a4b08410ef1141611633842024b71ed37b030dc1591b9f24d2e2f6bc6f315cb68648dc98e76bcd56d3a4c3d6f4f36da65d451697c057da5f0ffeb3bb4f3b582be094f0faaf81beff486a92dcf60e8f9ed2d21f4fddc0cd7297247ae21200a468462286c55d93702260059eca5b3fdf029d42237d58bdb4ea009782d77d042e35ebe22430bd87e5b1a95a830fee76d5e19f459f76357089b727a2dd5daa13a37e8f0111c45529c1173d0996e050f3161efe094b6bca6824d3479776c952042531204dd34628c78122232886faf93bc45560766493f1002161bec381a8c23e90531512c7bc57c8991f7b63cb5ba3464edc92c2c1ce07e4527fcbc334ea452b3d169c7a1973483419483d16223ae3bfb11c835c0a56ca9f191d86b942b37d13e25fb5377716754bf92963dc4e0901f5f684f25603c5108e61a2181fd2c6753d65eccd61a2e2b57a6ad957c8e514d4df70afb5c40cc22e26643584b156c7dc1a6bc7ad8193125d373bef8e9b34db6aacc1e9e3942b18ed4b7785d788fd5f21108ac1640bb3cfe3cae9963278770b25ad558b7dbeadae83f9a9479fe3704ca017d4d6e6b68c307824d68e7db72524ee04dccfa3a1c7edda73e9a5fd3342af2f0d8f740da0acde454a99785238eafac63fe00d09110b3b24cc4f74b1785a6f721617a0937708735765f9f908d4d93fc3ec4ec4917f93f2b58534c77757d0be4d13a37e8f0111c45529c1173d0996e050f3161efe094b6bca6824d3479776c952042e35ebe22430bd87e5b1a95a830fee76d5e19f459f76357089b727a2dd5daa0a1cecdf9d81c9b80147d2f3f495b9461c005a05fe062b3fc6343a77eaa37faf33ec5e649bb17b24971233729063440f272ef3613cc51d7b554cdcbfd65b0e2e09c7ef1664371d144ed190ff3f53966e79a3eb8c3f902ac48b815f3ad5ebc6e22cca7e3c59b95ee5d610142f7ded8a28b709459b19da3110a9d42c4209142e5203dc54e8f9270f097a92e466bd58cbe380504c9b2364ae5a63f77a15e80e183f13f55f91ea0ee6093713e47fa6c1245be99bb4022b8633a574b7105952460ebd108ac1640bb3cfe3cae9963278770b25ad558b7dbeadae83f9a9479fe3704ca017d4d6e6b68c307824d68e7db72524ee04dccfa3a1c7edda73e9a5fd3342af2f0d8f740da0acde454a99785238eafac63fe00d09110b3b24cc4f74b1785a6f721617a0937708735765f9f908d4d93fc3ec4ec4917f93f2b58534c77757d0be4d13a37e8f0111c45529c1173d0996e050f3161efe094b6bca6824d3479776c952042e35ebe22430bd87e5b1a95a830fee76d5e19f459f76357089b727a2dd5daa0b9f7d8568bf92422ffb0b862e1f3c9a0dc73a8b9778e64389fc1bdfc1546e1f388d6260c6d7284458018724c6a0a1e0c7b564e7eeb29d45095f6c9f3317ce2909cb750558594ee5d025820fa8492312ff6a198e3fa498af67be88f5f853ebed1f45c66fb8e346c9d0bb6bc5186b9e314a8628550bd3068c32f2844db4d5062d13f55f91ea0ee6093713e47fa6c1245be99bb4022b8633a574b7105952460ebd03dc54e8f9270f097a92e466bd58cbe380504c9b2364ae5a63f77a15e80e183f2b73427823db194a631d74688980d99b6c0b4413dd6076c5edb84b79cf2e569111878cad6442b92476be1aaf8a346cbd0995712db840180872f5eb4a0286abe7301c8cc67e43cbdb6a82eb8f6b4a4b7d14d2734f5fe3574e827207a468f45304337d55ee920079efd28ee088a3ebbf80368d88b7a8e55257ec5f9219362196a42d00fc7202af9f2942b82f54ac03520d84ae617052fbe8270d9fd7c8007e7ed12ad0b808e08655e96eee9991b8169e3207843829053bf2f4643be39439d5a82c01a4aa81bf6989c7727db214c1e9e9d1f499bfaede585106581c20e19342e0ba0499a64a4ba8137997c10db39b8ddb0073ea33c73df188eb0850756999c2f9cc34b557b99be09f308204b837be51c4ab6019b57ee2c08588d477ae2fbc108f7e0f2b01e36389a9e349caec0249558ba6ff64344f0a17d9c53300237d135c88730127b8189b51952b18175e69fb40436f2c1138645d7a6b2f52e4972c1510555e16a9fc6247e45fe7998f6a7c68d9acd03ddac838f17076d085c9f3432543d19e10f302574e63c4b901599e64ce113f4baa387661895f6d7299c43272ad1427cc3548583f27b2b4356807d53955641877730d4b45ee8548a527f7218a4e6bb5cb0e1ae38ed33bb62b1a0b7f491bb98e69fbe3550a5e0be42038bd2efcc282c0e924027d756315df18a66547111d6e5db85b85a4bd47dddc3f14afd6a089a5c040278a8a8a8e5dac85ceb92c2d77d16a68c57f2319f6f1d4c13423f04294ce9949304729f054d8488ce2ed9cb8ec4885d6c6b3767f6146065a3db7cb19a5858db40fcba45636eb958418480aef120117a9261669186c9672b0113e352be44a86a7303a1c7194ef6e38a61d3b1ea613c1cc8b6cde488f0b09c958e1f769375aea5b13e25fb5377716754bf92963dc4e0901f5f684f25603c5108e61a2181fd2c6752b3d169c7a1973483419483d16223ae3bfb11c835c0a56ca9f191d86b942b37d3d65eccd61a2e2b57a6ad957c8e514d4df70afb5c40cc22e26643584b156c7dc1a6bc7ad8193125d373bef8e9b34db6aacc1e9e3942b18ed4b7785d788fd5f21108ac1640bb3cfe3cae9963278770b25ad558b7dbeadae83f9a9479fe3704ca017d4d6e6b68c307824d68e7db72524ee04dccfa3a1c7edda73e9a5fd3342af2f0d8f740da0acde454a99785238eafac63fe00d09110b3b24cc4f74b1785a6f721617a0937708735765f9f908d4d93fc3ec4ec4917f93f2b58534c77757d0be4d13a37e8f0111c45529c1173d0996e050f3161efe094b6bca6824d3479776c952042e35ebe22430bd87e5b1a95a830fee76d5e19f459f76357089b727a2dd5daa0dab453d8897bd04da30484ac84dc2dc28c579462d414d16a68b96bf79d7c5981350675ef057ba6799139e1d1ccf464ac430b501e523c9fc53655595dd9d61b71aeea8239b7bd1a94d67fcf6beb2ca6e53264f1afd4a928d40ab689990a7099d3107d98eb2bf1d8b0dcf8ed3cdcc79b994c9260a2593ce67d256f31552f5f7ea288f3a8dea32ebd799f0570c944829da5b9625ea29b5afe9b8052621b4d653752f4279ecf903093b17b671d9cfd1c665309c73af2e822b31b9d6953a857dd3882d7e8e273e95660889eef34e296c15e15603cd92e0a9c5198a378eeacfb927572cc3dcb901cb2ea6b70e37813c1d571a44eb4e840f5f7c7908c2a671be86106219d6dfaa151fb2e1c3aa8497cd788f24debb4b490de6f85d24a52ce88c0219b40a2428724f97b9ed15b586dd7f582082e550bebbf21bd27f45e59370aa0030c027539c67ab0130f3c4496c2937fe3918e6832784a34d1bdeb4ec00da7aaa52ab307e18133834c41eed5d5cbd2c1bb726a5af7214b4eabf3cbcefba81bfa9d4523209c0a4b08410ef1141611633842024b71ed37b030dc1591b9f24d2e2f6bc6f315cb68648dc98e76bcd56d3a4c3d6f4f36da65d451697c057da5f0ffeb3bb4f3b582be094f0faaf81beff486a92dcf60e8f9ed2d21f4fddc0cd7297247ae21200a468462286c55d93702260059eca5b3fdf029d42237d58bdb4ea009782d77d042e35ebe22430bd87e5b1a95a830fee76d5e19f459f76357089b727a2dd5daa13a37e8f0111c45529c1173d0996e050f3161efe094b6bca6824d3479776c9523c6783de757680ca1d947038380f28f6b8b6d406c5197742f1d00986e670b92f263826ad295781509d611ef3c1e8706bbf861e0cf5414c985e45af0061919f021fa5d61299c81c3dd663be66db553ebeb9faabe8f4a020576bbb9fae13cb1e0400de5c6383d46bae6f4c62fbb0305f370afb25abfe33bede36d039739f484f581a6bc7ad8193125d373bef8e9b34db6aacc1e9e3942b18ed4b7785d788fd5f213d65eccd61a2e2b57a6ad957c8e514d4df70afb5c40cc22e26643584b156c7dc05801ff375a83048851b5eea5c329577cac8460d5634e9d3187a6cc5f19566451e126e4ec572024d121f1e5d0dd209a9b295b2303e3a52d89b1821f85b3ffbae05690883dcaf71a82e2924979c8d6d68e9052d484f4c966b7be6b324d208664b267320cd0e41afa5a6908b07659ec7fcacc9399bccdd4d2f22b3e0b0cf710bd22db1cce1b152729b35f68cb7cea2fdf5c86fdf761cbc3b7452d1c1bb3fe63a7a2a1fe79931e382777bb03c2e9576f249c3c2ba233b7b9fa71f09f9a0fa6dec833209c0a4b08410ef1141611633842024b71ed37b030dc1591b9f24d2e2f6bc6f315cb68648dc98e76bcd56d3a4c3d6f4f36da65d451697c057da5f0ffeb3bb4f3b582be094f0faaf81beff486a92dcf60e8f9ed2d21f4fddc0cd7297247ae21200a468462286c55d93702260059eca5b3fdf029d42237d58bdb4ea009782d77d042e35ebe22430bd87e5b1a95a830fee76d5e19f459f76357089b727a2dd5daa13a37e8f0111c45529c1173d0996e050f3161efe094b6bca6824d3479776c952121b72aaf879e0b31c728bc8be3a44aaf5c262f85a5913715a203b4680033eff31552d0bf91df1848a83d61de834e27f3f9f9914d0be644e1a0878b38bdd72710f550b4adcbed9e2d18da282ac4b78f8fcdacffb82863a1fbcec0a7eac8e8c7c1e313c78bc1ca28333c42a2698827cc02659a9477c720091c5ad88a49371d9a9304729f054d8488ce2ed9cb8ec4885d6c6b3767f6146065a3db7cb19a5858db4278a8a8a8e5dac85ceb92c2d77d16a68c57f2319f6f1d4c13423f04294ce99491521fba820b10604599aacb5a4b352d5b9dce31abce1ef6f431421351e55a9501598ff7e77e1b3c3a33f656c6a9069c8e8997257e1c1dc05fee30d82f369587c3107d98eb2bf1d8b0dcf8ed3cdcc79b994c9260a2593ce67d256f31552f5f7ea1aeea8239b7bd1a94d67fcf6beb2ca6e53264f1afd4a928d40ab689990a7099d288f3a8dea32ebd799f0570c944829da5b9625ea29b5afe9b8052621b4d653752f4279ecf903093b17b671d9cfd1c665309c73af2e822b31b9d6953a857dd38803225ddd684fb2c2d28873a00edc9beb01e999a07597639d0631fb8efbf8c9863c5a57b675e309145f5c9db8adb0512299fa2e9c20db456004b1e2b2b0e36b163a6ebcf8739cd5e03481d0dccc16f521e41ffcf4eb7cfd55038263487821e13d38953788d95646a66730f0a69ed62beb9233402da53ae8c1ce9891f5ce9fea6d030a221298815f7a8731434f1cc2d7faccf9d9f72f4ab5c0faa1cf2ee1ead6b614c792684ab495982a758597475718449cf226a61fa02c3ede0cbb405869504606b9902a20d07685054293a6abeb2376046176e32eb721a3a344f7bb3280e8af2c20b023c8484c63bfd50b4930a4469a0b6a256b46aaa5a62c98b21d9044e8cd3962e8cc9d676d4f60ab2516610279de88c7bb546cdb12845a72b0ae3ff2994a2260665e325b5b469947c9b3154c17aab49e66e4547b825a074947527cc9361416a9fc6247e45fe7998f6a7c68d9acd03ddac838f17076d085c9f3432543d19e0127b8189b51952b18175e69fb40436f2c1138645d7a6b2f52e4972c1510555e1f2d1fcea6bb60bd6a54c3cb94f303cb21f809d63685ce555b8664cdb4d3d0b1338f92dbcba38e2a67aa0c91e8b239b7991a50606445288f9dd7dbe9f01cbba329f4b35f64ad07046bbf295e95df038e75916e326ec659f06ecbeb9368062ba427b0be11c63778dbc64002419072d4dd1c702751b464dc317d3bd0d99fca766f352759b1566ac82977517a13dfffdd712972cf7bbdf177cbe287e039dad685ec22aa5ac98ccb2ce93a554ed2841a12ce62bfca1d9a46634f8f53db225f7da11101a93e91a4be7fde95bb34ecdde4ca5b0d2438136ca1baee65de01ea0875e6d43289e0268c3acffcfb3ca982484783af5333c64f141de634bd5602cac1aea57122e4a0d0a703325e99844964a63cea37ca4942cc7b6ecc537858cbd30240918e352143050738f13e65d30e4cd0c7d5d1eb7cb1c4308eeea51a5d510575b72f97093eac82a38037f185e28aa09b78fa3506ecd41144ed03c60276c42272376c0b0e9307f83fb5bd212bc43e45c8a0f60a62ff2c8c09fdde39d637c64cc81cbaf104d774ecaa938cc135a513fe1550866b2850f62fd8cad6b29ec843a9da6bf54a2d7289f2bf436020ce582c0bdaa85fdeda2979598d9bc4a7e10f4aaa2e64167c0b34f8d905e2cf16720cc7283908de4336a682d1b6c1c0e43e094f69f2810772216abb6d7c57260cb8030a57d9ffe28aefea4c1266b54d31590f850552e6143314c792684ab495982a758597475718449cf226a61fa02c3ede0cbb4058695046030a221298815f7a8731434f1cc2d7faccf9d9f72f4ab5c0faa1cf2ee1ead6b60fcba45636eb958418480aef120117a9261669186c9672b0113e352be44a86a7303a1c7194ef6e38a61d3b1ea613c1cc8b6cde488f0b09c958e1f769375aea5b13e25fb5377716754bf92963dc4e0901f5f684f25603c5108e61a2181fd2c6752b3d169c7a1973483419483d16223ae3bfb11c835c0a56ca9f191d86b942b37d3d65eccd61a2e2b57a6ad957c8e514d4df70afb5c40cc22e26643584b156c7dc1a6bc7ad8193125d373bef8e9b34db6aacc1e9e3942b18ed4b7785d788fd5f2124fe5e08ffe2e4ed842c22b02f85228b6e3bbc54e04f8062eb62d44807bf2a4b1369b2b2bc7eb9da3767f0128549dc3c06d5a6c6dde6dffdc958b8760e1bf88224027d756315df18a66547111d6e5db85b85a4bd47dddc3f14afd6a089a5c0400e1ae38ed33bb62b1a0b7f491bb98e69fbe3550a5e0be42038bd2efcc282c0e9278a8a8a8e5dac85ceb92c2d77d16a68c57f2319f6f1d4c13423f04294ce9949304729f054d8488ce2ed9cb8ec4885d6c6b3767f6146065a3db7cb19a5858db41598ff7e77e1b3c3a33f656c6a9069c8e8997257e1c1dc05fee30d82f369587c1521fba820b10604599aacb5a4b352d5b9dce31abce1ef6f431421351e55a9503107d98eb2bf1d8b0dcf8ed3cdcc79b994c9260a2593ce67d256f31552f5f7ea1aeea8239b7bd1a94d67fcf6beb2ca6e53264f1afd4a928d40ab689990a7099d288f3a8dea32ebd799f0570c944829da5b9625ea29b5afe9b8052621b4d653752f4279ecf903093b17b671d9cfd1c665309c73af2e822b31b9d6953a857dd38801a4aa81bf6989c7727db214c1e9e9d1f499bfaede585106581c20e19342e0ba0499a64a4ba8137997c10db39b8ddb0073ea33c73df188eb0850756999c2f9cc34b557b99be09f308204b837be51c4ab6019b57ee2c08588d477ae2fbc108f7e0f2b01e36389a9e349caec0249558ba6ff64344f0a17d9c53300237d135c88730127b8189b51952b18175e69fb40436f2c1138645d7a6b2f52e4972c1510555e16a9fc6247e45fe7998f6a7c68d9acd03ddac838f17076d085c9f3432543d19e00000000000000a0000000000000007f0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703000000000000000700000000000000010000000000000000000000000000002039979f5a4a3416a5e14d7e7b16a26ea64e8865b6b6c0f104a45e502a88523501000000000000000100000000000000000000000000000020e6377433847885cf37e45054debb564d20b150c03c731c35544d18873c6fc80e0000000000000001000000000000000000000000000000202ecd8753fbd4e9753d3ab5792022235b0d61965948a9802845ac769c195f73920000000000000001000000000000000000000000000000204d5c20971314a886143fcf4f31e5b0fe465897f95edb2ebb496a671eb51686a3000000000000000100000000000000000000000000000020484695c1718ea9babdf0da4a169839654a70d31dfb7bfa030bd34c4fd296f173000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000007f000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020d23f38419c8fb346fa957db05434769d2875b5fb47e5fc931712b74bbdf800b5000000000000000100000000000000000000000000000020a9c4b3c744c5537998728fd2fbc3b94e03972295db498ff96c58bad33a968e830000000000000001000000000000000000000000000000202ab79d9f3374ce44e12d2c803ade3b7883c480ea68b516a8844e29d1f144ce230000000000000001000000000000000000000000000000209ef4b79cde573ddf1a1cfe0df94952533f934e8712306ff6e1df26da2304bf2d000000000000000100000000000000000000000000000020eed5635aa9fe26e55ac534a89c39cf891254e6457318ced7e38ad88fc125ecc7000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000007f0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000007f00000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b868640000000000000007000000000000000100000000000000000000000000000020c4580eeda24ab41c6b7e79ae3be6d1a9be1034ca323cb46d0b3a501e4dd460d40000000000000001000000000000000000000000000000200ec33e9fb49d8d5c4545e10d863f1dd39412d3e819308652961db70c833fc7bf00000000000000010000000000000000000000000000002081bd58c7f1c8ffb6f5fd64f9980d799e2b22a717c3fa63ea0aca5d78e0e8d8610000000000000001000000000000000000000000000000208e6eda75688a92e7d9b73d9fc52f0a368909e9ede3c0d82c223aa41f84394d3d000000000000000100000000000000000000000000000020095e06275987f2e31a13d40ea9a221f0eaba482fa32be91d8d06d10ec4f3b7dc000000000000000100000000000000000000000000000020069a44f33fa4ebf420d47453d2f737ebfbe1a3f859c30591a7613e6ba4d43471000000000000000100000000000000000000000000000020c2373acd9e43392c84b483f993c3e9f2259f83ad4ab88d7b8236af1afb2dde9700000000000000400000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020154d708c94728da21ae79f7bc8eea099ed1ed556d0331bb6e5f674b49ebb5fb40000000000000001000000000000000100000000000000209959a9fa8cf2cc6841adecf6bc66911dcc73f1b340a3842c04e0c46136002b740000000000000001000000000000000100000000000000209afaedc0e6bab96075363da97bcae2f752541d66b966d854fd4fbdc665f57314000000000000000100000000000000010000000000000020d882d23dcecd5a4ff24e4f097ada499103f4217af8b869ce0275076671c667bc000000000000000100000000000000010000000000000020e6fbce7ccc80a578a93cc241360a739d0248edab1a37196cc8564d3cea08f1a90000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000040000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000001000000000000002028d654573603c50879ed324d2fd84d726f6f22db8ccaa3dac3a6bb8864487fda000000000000000100000000000000010000000000000020ae771d87cc10e8f417936ffbe0e6c19302834301bdaaf3adcce353d6b826910a000000000000000100000000000000010000000000000020c5d2b777de88f6a24bc4c18fe3273a24d763c55d7a193de1e88f2d165846a925000000000000000100000000000000010000000000000020c57390cb340730fb4757e6d9269625065f9b6612660a2177c39d2619ba6c9f820000000000000001000000000000000100000000000000201e2c25d0355b2435f10a6081fe0d1c18b2bcf5ac219aa03a7bf09921024c667f000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000400000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000004000000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b8686400000000000000070000000000000001000000000000000100000000000000200b72db7d6df5e816d2383a68047c65124a0ad0a62c2f896e3621f24370169c370000000000000001000000000000000100000000000000206ff8a45ece994756082aef3dbffc9d3b4876c2bf1cf5a118a1eeb7bb848e4eef00000000000000010000000000000001000000000000002025cb7f631988f3e596cbdb9b02071efa2f165944e96c99f6ed9f2b23bae6ab360000000000000001000000000000000100000000000000205709334cab87b717f6bac115c894cd9cdcede151c56c53d4413a66e5b4ff07640000000000000001000000000000000100000000000000206b1d4f880c4e42a008fbab67419836c1001352c589450d1f88e94da62e75a43b0000000000000001000000000000000100000000000000208a36bc7a0b21cde4d5a39d220aa8982b3b727a22e15308c3ed8e5a6ccba654b7000000000000000100000000000000000000000000000020c2373acd9e43392c84b483f993c3e9f2259f83ad4ab88d7b8236af1afb2dde97000000000000007a0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020c75ec940d0e95377720389ceeb0eafd8a3d3ceda65d360e25f92b78b759b64d5000000000000000100000000000000000000000000000020f7a03e6aab33c259b776a0a1068e9b29f69e476bfd7bd164913d1edd6dbe937e000000000000000100000000000000010000000000000020a0ff9b979dbd1cb58a689c4f7cb8c8e56e1dda716de815f8dce6e6624d7e57ac0000000000000001000000000000000000000000000000204d5c20971314a886143fcf4f31e5b0fe465897f95edb2ebb496a671eb51686a3000000000000000100000000000000000000000000000020484695c1718ea9babdf0da4a169839654a70d31dfb7bfa030bd34c4fd296f173000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000007a000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020c8852b920b05e5706551ba5f636d8d26d15193c6584fadd468986532d24c74a40000000000000001000000000000000000000000000000202dad7cb660b8d7478673d74df249c7bca96ad2a77a9e6df8cd53b3b04533f1c800000000000000010000000000000001000000000000002016a4ade761eb6230e27dd29c0ca0b6ca9e5ed431dfbc829f10335bc89c30fd1a0000000000000001000000000000000000000000000000209ef4b79cde573ddf1a1cfe0df94952533f934e8712306ff6e1df26da2304bf2d000000000000000100000000000000000000000000000020eed5635aa9fe26e55ac534a89c39cf891254e6457318ced7e38ad88fc125ecc7000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000007a0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000007a00000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b868640000000000000007000000000000000100000000000000010000000000000020e56a983748e4822c1fda8f3dbddfeec6fb2635b24eb16a6ab741d9bf4059420100000000000000010000000000000000000000000000002065f27579bab0bbce84be78665e6a5d96c419245da1f363c6c7f72dc30425c3010000000000000001000000000000000100000000000000207be15b9618a30386615fde520fbd00cbe45924c66bc2ce0039d5538e4a5281cd0000000000000001000000000000000000000000000000208e6eda75688a92e7d9b73d9fc52f0a368909e9ede3c0d82c223aa41f84394d3d000000000000000100000000000000000000000000000020095e06275987f2e31a13d40ea9a221f0eaba482fa32be91d8d06d10ec4f3b7dc000000000000000100000000000000000000000000000020069a44f33fa4ebf420d47453d2f737ebfbe1a3f859c30591a7613e6ba4d43471000000000000000100000000000000000000000000000020c2373acd9e43392c84b483f993c3e9f2259f83ad4ab88d7b8236af1afb2dde97000000000000006d0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000000000000000000206f3328d1727f73f3876081e147b00fb4b287d4d43760aaf27328e7c284eb32cf0000000000000001000000000000000100000000000000205acc4a1fae260d37f528036a4818258a8a3ac3bd0f6c9a42d6087c7fba468ee80000000000000001000000000000000000000000000000205a97192d11dff369c5254a42e9aa1d64d4bc1b11032d8337324b166479ffd47d000000000000000100000000000000000000000000000020c897f9cc214e1d82ae3fa75be40cec804be624b41c23e139bfad78e7e7d5fc3b000000000000000100000000000000010000000000000020cca38bcaaeed86d1c037ddb148bba22f6b95749f7f352486d9b2248d154972a4000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000006d000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020dc29e562282831965d9350bb109d944b59cfb94edad84b8e3d31fcb11f71c9ac000000000000000100000000000000010000000000000020341e33044a4b4083f716409b4516107a15153193895c3c01da88f0e4b48be4b000000000000000010000000000000000000000000000002003ee70b9b2dda7268a83806f621e379f70a678a90ff599155c525519a3a447930000000000000001000000000000000000000000000000207fadb498e4408564c5da8cdaf1ddd40a060ac7be00e86d18a70cff218a853e5400000000000000010000000000000001000000000000002015dc39279a52d41ddbcaf227c199cbd51b1f711d661184752155a6495562235a000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000006d0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000006d00000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b8686400000000000000070000000000000001000000000000000000000000000000204dd3f20a94d56f280f56b90efee714918ff7661d885f1add2315c54024a55cf3000000000000000100000000000000010000000000000020ca1974e488e5eec619436bfcf13e7d45a51909ecd60bc5f09e67c30c4641847400000000000000010000000000000000000000000000002053a87c9cb1c6b7451e4fd7b513f3fbc886fa44151f99a4704cd4f3e2b37f765b0000000000000001000000000000000000000000000000205ed2d16071bbd3f9afdb7711ba48151b7400c563773be3198665ade42f3a27fb000000000000000100000000000000010000000000000020327193f3223190f61d5993a1f33ad008cb85cada5c5129e3a69754a718f818bf000000000000000100000000000000000000000000000020069a44f33fa4ebf420d47453d2f737ebfbe1a3f859c30591a7613e6ba4d43471000000000000000100000000000000000000000000000020c2373acd9e43392c84b483f993c3e9f2259f83ad4ab88d7b8236af1afb2dde97000000000000006c0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020028ef24d7b011d3e6cc54df40a2cba856cb326e265cf155e0ff5928f0f8e0db00000000000000001000000000000000100000000000000205acc4a1fae260d37f528036a4818258a8a3ac3bd0f6c9a42d6087c7fba468ee80000000000000001000000000000000000000000000000205a97192d11dff369c5254a42e9aa1d64d4bc1b11032d8337324b166479ffd47d000000000000000100000000000000000000000000000020c897f9cc214e1d82ae3fa75be40cec804be624b41c23e139bfad78e7e7d5fc3b000000000000000100000000000000010000000000000020cca38bcaaeed86d1c037ddb148bba22f6b95749f7f352486d9b2248d154972a4000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000006c000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020f3f07bdd6f2ed1f1fa7724af62bd828ff39b8774a5b3266fce212740ba3e4137000000000000000100000000000000010000000000000020341e33044a4b4083f716409b4516107a15153193895c3c01da88f0e4b48be4b000000000000000010000000000000000000000000000002003ee70b9b2dda7268a83806f621e379f70a678a90ff599155c525519a3a447930000000000000001000000000000000000000000000000207fadb498e4408564c5da8cdaf1ddd40a060ac7be00e86d18a70cff218a853e5400000000000000010000000000000001000000000000002015dc39279a52d41ddbcaf227c199cbd51b1f711d661184752155a6495562235a000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000006c0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000006c00000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b868640000000000000007000000000000000100000000000000010000000000000020e6a8e2d7878c6faa41713eaa699e92dfa5d0fbec459c08ba11c7974221551fc8000000000000000100000000000000010000000000000020ca1974e488e5eec619436bfcf13e7d45a51909ecd60bc5f09e67c30c4641847400000000000000010000000000000000000000000000002053a87c9cb1c6b7451e4fd7b513f3fbc886fa44151f99a4704cd4f3e2b37f765b0000000000000001000000000000000000000000000000205ed2d16071bbd3f9afdb7711ba48151b7400c563773be3198665ade42f3a27fb000000000000000100000000000000010000000000000020327193f3223190f61d5993a1f33ad008cb85cada5c5129e3a69754a718f818bf000000000000000100000000000000000000000000000020069a44f33fa4ebf420d47453d2f737ebfbe1a3f859c30591a7613e6ba4d43471000000000000000100000000000000000000000000000020c2373acd9e43392c84b483f993c3e9f2259f83ad4ab88d7b8236af1afb2dde9700000000000000180000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703000000000000000700000000000000010000000000000001000000000000002089bad6834f4c246d3c4178d60e1a7402d7a777a23e9142d631f5ae67b62b75f900000000000000010000000000000001000000000000002010214618282eae8199fb12959e11cbc03fc216f2e26d885483c44dd1500f02b5000000000000000100000000000000010000000000000020b19c107e100ede570d154889a6c02538ece94377272412924433c14033b82edb0000000000000001000000000000000000000000000000208c23ceb38bdfeb620de2d6414912490a34ad95503da09b70a73e57ca9658817b00000000000000010000000000000000000000000000002067b848c6a8fd93922564ee17c6101e314bbd3846fcea2a0a759b6e14ee53062a000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000018000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000001000000000000002018d580ea941c4f08fdecf59b02ea8f309129dcbde68142ea8ac7cec61f97c143000000000000000100000000000000010000000000000020d682998e25a5fbcb3775a68416e2fab8f449a5fb9057a3b6af23027646c629470000000000000001000000000000000100000000000000206fbb63d499e0b1b5c50bb34cc0627d36caeab3783e498fb870f0d059a71cad20000000000000000100000000000000000000000000000020470c7d58bd807351d8c0392710e22aa86ff411e42398f3719c76ffa4b8e767ed00000000000000010000000000000000000000000000002081a27a248db0076bc7a7f51b5ccf3cf5b9e1c7455e27068c417e64832913ff410000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000180000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000001800000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b868640000000000000007000000000000000100000000000000010000000000000020d6e016f4474a50e9248288b84f2359a9ff10e472fecd8b0d08ab01041206ab5c00000000000000010000000000000001000000000000002071ad56b471e249f6105af18690b68cd198b09af36b62f96b9f4817edc3dcf71a000000000000000100000000000000010000000000000020239a46dbf277baafe52f53464283343e42f543bd83bb7dc8d1dd1315f876005d000000000000000100000000000000000000000000000020475cad41419c208faffd1efcd00935b2a82e660bd30f5223d3c70d1c09e78a660000000000000001000000000000000000000000000000201f9e8255ea645ed6dac4dbd6d7f94bc08f5c7221a6c23f62f70ad185c154b4a80000000000000001000000000000000100000000000000209612f8ccc3d773d4654e0ff003cfebf4d2472a2ce0e99df1b061fe6cdbe42b0a0000000000000001000000000000000100000000000000201b1209df24fc035a2c9a10f8fa4a257b162a0fa319c7fe99195373ca0c28dd74000000000000005c0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703000000000000000700000000000000010000000000000001000000000000002047e1f5e0fe3ff76eaf6533b6ad4f15e6298846f17c92b90fee4090916be3d5ae000000000000000100000000000000010000000000000020368d67564a09158dfb6de68dfb9eb87ba299687ff58fa2c7213d13474b130927000000000000000100000000000000000000000000000020f476b958e87db8a02656f8467c6e5e45d866f25792959994b010cfab414a683f0000000000000001000000000000000000000000000000204ad6dc0cd0533f78182e33f1a845ac02537dc3fd9cd6a8afe705ed7185762a5c000000000000000100000000000000000000000000000020440141033be391d351cbd747235dd0dd8925385fcbdaf63ca3ce8096a77f70ba0000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000005c000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020bdfd29cfbbedae4c9227f8f665d1fc396e7c7d81b60456b2769aa3128a012cce000000000000000100000000000000010000000000000020ae367347ec635549b68bfb78721a6c7a1a6084fca918c06287dbc1b6afc3f9c20000000000000001000000000000000000000000000000200465cea58d937eb0fdb98fcaf6de41b5bc5a9ef8128bb64c6d5c79fe8b30bd02000000000000000100000000000000000000000000000020241e42aeb3c798b84ad9a34ccc6b26a5fb12fe91536ea9394f0e34b50690f3390000000000000001000000000000000000000000000000204d271360d6ea5729d441a303230c4b3fd940e15129f6f043ffe200fe1412df3c000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000005c0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000005c00000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b868640000000000000007000000000000000100000000000000010000000000000020ddbd43ac314c7c912d6e8b2350320186f100294968a82f775d4cf5614f62a05c00000000000000010000000000000001000000000000002024f67aaa65e7eaa4e23a4baf19e4eaaaebaa4c816d2da87d9928c3e0d10d1fb3000000000000000100000000000000000000000000000020321306172bc598e434645e4dc5f2c9b16e5f929d8bcc57a33b107a6fb24cbfa4000000000000000100000000000000000000000000000020dce7bbd9df3b93dd701565c3edb9065d5b787889b79eacfbd682100bb76efcdf0000000000000001000000000000000000000000000000202a919df14ce5514b57e6eb9a7f6b25d9178d9241708e72a76970cd595d0ec4370000000000000001000000000000000100000000000000208a36bc7a0b21cde4d5a39d220aa8982b3b727a22e15308c3ed8e5a6ccba654b7000000000000000100000000000000000000000000000020c2373acd9e43392c84b483f993c3e9f2259f83ad4ab88d7b8236af1afb2dde97000000000000002a0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020e4d5ab050b1cbd0db90da3a68fcd9dc9ed8f116ed9e63b8bbcfabab4e1c0d2db00000000000000010000000000000000000000000000002036d642259a9610da09490a34cc56151eff1d21198923d9f37551523a0c1d7296000000000000000100000000000000010000000000000020feffaa714556b27a2dda8d1987f9b21b7c07cdbd2ba25dd553aa795bb22458060000000000000001000000000000000000000000000000201f4bfe7d2398692f0c7abdb85ed16895ef0857d4d738e32f167340e5542a22b20000000000000001000000000000000100000000000000205d77fe2ccf9c9f8603070bd03123cd3455d47968e542db3d55abf5cd35b03d050000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d000000000000002a000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020c0b56238a521dc312f65cee567e1401f709ff5b7ed87d6ef6019808e05453606000000000000000100000000000000000000000000000020f94d3eb70abe97b6a0b31f4a89662535a8de6d8a3fd538bcfcf1bab5a45d8c97000000000000000100000000000000010000000000000020af1eb3d7d585cac460fb089230f35cc56b94ac9cafd3a68a235ce4dc2a8a3522000000000000000100000000000000000000000000000020b6d1fb90220eb827e5a0d6cff1a17436b1d8a5cbf6a2bec68975b0b2c4d80d8a000000000000000100000000000000010000000000000020e7444cc161f3e7f01cf05762fb0fb97caf4bc92619aabc44b759df970816cdad0000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de000000000000002a0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000002a00000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b8686400000000000000070000000000000001000000000000000100000000000000206db78860dee8ef2b70c8e4a5baa7ae85d5296f00caaa613343e04bb4eb63e3b2000000000000000100000000000000000000000000000020f51238886db115f4e584f55faade3bcc6c2e247acc57fb94d35f5e0ea20a6c7100000000000000010000000000000001000000000000002008e30092e5f851604f8f8a02d0f1e55c0af1e239723e59de7bb74ff8d0f4f4320000000000000001000000000000000000000000000000201d75768073a4c5340a2027c911af89ea3fa42a086d72fb39c6cae7a72aeac2c500000000000000010000000000000001000000000000002002dc6532f6ebc1f490383ba0ff1a45f0e25f74ece2d69dba9eca4d71e450033e0000000000000001000000000000000000000000000000207fc850a920818cb68997ea7c87330937152a868df48b228e28706b9aa75616f40000000000000001000000000000000100000000000000201b1209df24fc035a2c9a10f8fa4a257b162a0fa319c7fe99195373ca0c28dd74000000000000006f0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020173a8befcafe3bd9a4419e4bf987e800a4ba35a3a80b3932031c9b19b63d05af00000000000000010000000000000000000000000000002047059c74f0845c02c32418ad4498ca6fd8d0ad7b96000246a18b6e79f427d84c0000000000000001000000000000000000000000000000205a97192d11dff369c5254a42e9aa1d64d4bc1b11032d8337324b166479ffd47d000000000000000100000000000000000000000000000020c897f9cc214e1d82ae3fa75be40cec804be624b41c23e139bfad78e7e7d5fc3b000000000000000100000000000000010000000000000020cca38bcaaeed86d1c037ddb148bba22f6b95749f7f352486d9b2248d154972a4000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000006f000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000000000000000000002084ffd3ddeb210896ea7e45f3285bfc46fae0703e14d11aba07c378036c833e4a0000000000000001000000000000000000000000000000204da23c96386465de6c1e3c1054b7f915846079f7e27e9d358a1510f2fae7529100000000000000010000000000000000000000000000002003ee70b9b2dda7268a83806f621e379f70a678a90ff599155c525519a3a447930000000000000001000000000000000000000000000000207fadb498e4408564c5da8cdaf1ddd40a060ac7be00e86d18a70cff218a853e5400000000000000010000000000000001000000000000002015dc39279a52d41ddbcaf227c199cbd51b1f711d661184752155a6495562235a000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000006f0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000006f00000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b8686400000000000000070000000000000001000000000000000000000000000000203696627f637c70f9ea0e0e8dba51a78ad58244f0a0a095662e72d7af7ecf8e4d0000000000000001000000000000000000000000000000203e382b7ed35b6de9cd1af305246944f92ebca5211e93e23b7bfbc71668ae009400000000000000010000000000000000000000000000002053a87c9cb1c6b7451e4fd7b513f3fbc886fa44151f99a4704cd4f3e2b37f765b0000000000000001000000000000000000000000000000205ed2d16071bbd3f9afdb7711ba48151b7400c563773be3198665ade42f3a27fb000000000000000100000000000000010000000000000020327193f3223190f61d5993a1f33ad008cb85cada5c5129e3a69754a718f818bf000000000000000100000000000000000000000000000020069a44f33fa4ebf420d47453d2f737ebfbe1a3f859c30591a7613e6ba4d43471000000000000000100000000000000000000000000000020c2373acd9e43392c84b483f993c3e9f2259f83ad4ab88d7b8236af1afb2dde97000000000000001c0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020165645606068df7eb067fc94ea3e3a509839117b978bea9851e36a1f07d4c54e000000000000000100000000000000010000000000000020466a843d279e2d09cfb98b4604ad55550c4b32d858d74301ced48d4cf2a5f8a70000000000000001000000000000000000000000000000208d2e2729a32aca8b2598698736e9fb6648f7a570764827ae42629ee8e0b363c40000000000000001000000000000000000000000000000208c23ceb38bdfeb620de2d6414912490a34ad95503da09b70a73e57ca9658817b00000000000000010000000000000000000000000000002067b848c6a8fd93922564ee17c6101e314bbd3846fcea2a0a759b6e14ee53062a000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d000000000000001c000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000001000000000000002042d611d8e698d043948ed2c4010fb0adec245bb30c12a61cdb01d6833d9bfc28000000000000000100000000000000010000000000000020aaae5c36ffc93586fd6e7da9318b26f5cb0052b41e106f29d5e9b9ba2a05e64d0000000000000001000000000000000000000000000000202556fe526824a8a26854d8a628546f1d11f4f769eaba5f9e50313c2ef40b6ac4000000000000000100000000000000000000000000000020470c7d58bd807351d8c0392710e22aa86ff411e42398f3719c76ffa4b8e767ed00000000000000010000000000000000000000000000002081a27a248db0076bc7a7f51b5ccf3cf5b9e1c7455e27068c417e64832913ff410000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de000000000000001c0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000001c00000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b868640000000000000007000000000000000100000000000000010000000000000020900199381ddb4e03b85f1ef1ae34e7371c1880395f098dfe1fff89b88cbafebd000000000000000100000000000000010000000000000020b1b588f1313a74e639552396242911490bde8bc17cb78fe2e797fbec9802e9b50000000000000001000000000000000000000000000000209f47744fb15546f73a4e679754b45dceed245abbc33eb5862b85b6b400a67d83000000000000000100000000000000000000000000000020475cad41419c208faffd1efcd00935b2a82e660bd30f5223d3c70d1c09e78a660000000000000001000000000000000000000000000000201f9e8255ea645ed6dac4dbd6d7f94bc08f5c7221a6c23f62f70ad185c154b4a80000000000000001000000000000000100000000000000209612f8ccc3d773d4654e0ff003cfebf4d2472a2ce0e99df1b061fe6cdbe42b0a0000000000000001000000000000000100000000000000201b1209df24fc035a2c9a10f8fa4a257b162a0fa319c7fe99195373ca0c28dd7400000000000000560000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000202a8631eeda7f04841093ac671aff6ba0087eec062694de7b0e0fe82a9b51ec28000000000000000100000000000000000000000000000020d84b8ed9b75f6d7b81a5e0e0c00b30eafd36279c56eb509da6237e8beddd6ae3000000000000000100000000000000000000000000000020f02df779af74ece096b6b51019afda9aad006f692c3013a0d59e0d28d8c8933d0000000000000001000000000000000100000000000000200bf7ab1c0d308f7966b26422ec6c126e5956a6ce55c01414a62362c696861137000000000000000100000000000000000000000000000020440141033be391d351cbd747235dd0dd8925385fcbdaf63ca3ce8096a77f70ba0000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000056000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020d77300d9ea796002e168813f09b166f9ff012cdc919b061f3df7b4f1c01eba7f000000000000000100000000000000000000000000000020f1d8edd1329bfcc3d980e136aa034b72277023735d3a12f620d8b2c1211e57710000000000000001000000000000000000000000000000206c2f42e175bc59959c539065448f0c9c2f330f12deb5a78d2b4137394d93105c000000000000000100000000000000010000000000000020a0b86bb2b9ed1d88c1716ee2897d7e5305051401751e458c39f027a27ad7553f0000000000000001000000000000000000000000000000204d271360d6ea5729d441a303230c4b3fd940e15129f6f043ffe200fe1412df3c000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000560000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000005600000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b8686400000000000000070000000000000001000000000000000100000000000000202ca020c19897dcff0b31e11dd1a78bd6647d01d819f7b630225ef74e0f5c4185000000000000000100000000000000000000000000000020a1b8863401b4c65f130438c941794629b626442e857e44ac92d9f7128186ed2a000000000000000100000000000000000000000000000020b4a82e404c0d3051551a338ff9c4d142925ceb91c02f22466560b77b3b7c8ef600000000000000010000000000000001000000000000002051db9e18acb024639c6d1c6e33aea673be61c3065471e467357b0d2c77bd2d150000000000000001000000000000000000000000000000202a919df14ce5514b57e6eb9a7f6b25d9178d9241708e72a76970cd595d0ec4370000000000000001000000000000000100000000000000208a36bc7a0b21cde4d5a39d220aa8982b3b727a22e15308c3ed8e5a6ccba654b7000000000000000100000000000000000000000000000020c2373acd9e43392c84b483f993c3e9f2259f83ad4ab88d7b8236af1afb2dde97000000000000001e0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020354be51518ac0dd91f26219f17e44719a158cf4fdd100c3f919a3981f113149f000000000000000100000000000000000000000000000020706cc8ac5e50d226053688830a31a7963f67b7a499e16df101a87cea86c1aeed0000000000000001000000000000000000000000000000208d2e2729a32aca8b2598698736e9fb6648f7a570764827ae42629ee8e0b363c40000000000000001000000000000000000000000000000208c23ceb38bdfeb620de2d6414912490a34ad95503da09b70a73e57ca9658817b00000000000000010000000000000000000000000000002067b848c6a8fd93922564ee17c6101e314bbd3846fcea2a0a759b6e14ee53062a000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d000000000000001e000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000100000000000000208ed4ca977c2167441b7cb04831df3ba03526c5d424958138c146503c57800fd100000000000000010000000000000000000000000000002069aa7cd5e7cdb89fd78a6dd640e079eaedaa0682d6b8fc2001514dedf61a381f0000000000000001000000000000000000000000000000202556fe526824a8a26854d8a628546f1d11f4f769eaba5f9e50313c2ef40b6ac4000000000000000100000000000000000000000000000020470c7d58bd807351d8c0392710e22aa86ff411e42398f3719c76ffa4b8e767ed00000000000000010000000000000000000000000000002081a27a248db0076bc7a7f51b5ccf3cf5b9e1c7455e27068c417e64832913ff410000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de000000000000001e0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000001e00000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b868640000000000000007000000000000000100000000000000010000000000000020fd5dbf2000054fb68d2aa2990ce5fd22bed6f3dc05f6e9dea6849ad605d4982000000000000000010000000000000000000000000000002050276d31c82e273e0901b23103bf4ba2a27d1c95c64fc431fe49aaeb14c2d3180000000000000001000000000000000000000000000000209f47744fb15546f73a4e679754b45dceed245abbc33eb5862b85b6b400a67d83000000000000000100000000000000000000000000000020475cad41419c208faffd1efcd00935b2a82e660bd30f5223d3c70d1c09e78a660000000000000001000000000000000000000000000000201f9e8255ea645ed6dac4dbd6d7f94bc08f5c7221a6c23f62f70ad185c154b4a80000000000000001000000000000000100000000000000209612f8ccc3d773d4654e0ff003cfebf4d2472a2ce0e99df1b061fe6cdbe42b0a0000000000000001000000000000000100000000000000201b1209df24fc035a2c9a10f8fa4a257b162a0fa319c7fe99195373ca0c28dd7400000000000000720000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000209c7a5f066cf9bfe96a421d74ac0d0b269d63914873d68b400e4f73be4bc1aebd0000000000000001000000000000000000000000000000203f1184d99c0c6f37844768d0fd9fd6b2b34d22db285cdeef3fddc041c496e2e7000000000000000100000000000000010000000000000020b4894900c33f5635d85562ebbda7805f0ac1d98ae53665e714382ea448ac52c20000000000000001000000000000000100000000000000201ddaf21874d2f1dceb73b2bd9c919f8080291efd13ced9f813727e4f480d6481000000000000000100000000000000000000000000000020484695c1718ea9babdf0da4a169839654a70d31dfb7bfa030bd34c4fd296f173000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000072000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000100000000000000206f29a656c148cf7e744cb1e37fa1387917b3c54963d92e644311b433d969376800000000000000010000000000000000000000000000002020f2a31bfd572314732bbf381b5314858e97f3aa9d9aecf077369cf5b72048fd0000000000000001000000000000000100000000000000200755751b5c06801532af40f5137b978866beb2f616a3d040c4a46f352c038982000000000000000100000000000000010000000000000020aef86b1c25b74932f43f0295cd7c5728d8beb0c22d00656fa8fddbeccc1fc88d000000000000000100000000000000000000000000000020eed5635aa9fe26e55ac534a89c39cf891254e6457318ced7e38ad88fc125ecc7000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000720000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000007200000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b868640000000000000007000000000000000100000000000000010000000000000020482ac8c78456995cc2328924a8f29ac59328e4f9578145836c87e612674ae5a1000000000000000100000000000000000000000000000020c564b8b761ffb4073dc7d9365dcedbafecacec7bec5f32e70da67023022033110000000000000001000000000000000100000000000000201c5adbe7813e824a5134310dfd54433fa8fde77999a70c1ede5413026277ad550000000000000001000000000000000100000000000000204f51bf5ce5ecb58d545e7c31c05242ce62c29bdddf378e54233f75ac620e2b89000000000000000100000000000000000000000000000020095e06275987f2e31a13d40ea9a221f0eaba482fa32be91d8d06d10ec4f3b7dc000000000000000100000000000000000000000000000020069a44f33fa4ebf420d47453d2f737ebfbe1a3f859c30591a7613e6ba4d43471000000000000000100000000000000000000000000000020c2373acd9e43392c84b483f993c3e9f2259f83ad4ab88d7b8236af1afb2dde9700000000000000370000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020fb3488e3405dc5dfd6da7f19f92954e4aeb951531c333dddcc531a604f273cb10000000000000001000000000000000000000000000000205e0f50e6647448b37ecb900b2e98938852d04e3c7a8814ad45c8f5555096bfb500000000000000010000000000000000000000000000002015974e5cde8b68336383dff938d22e92f360b18ffe56429530ed75be9b66f34600000000000000010000000000000001000000000000002035603eb04728f46297d39deef07280b0efb1ad34cd06e614ab18bb44a27f7e2e0000000000000001000000000000000000000000000000204cc7901d510046ae5f98d6b431c2a311cc066cdd794fd6e53cc30587ed00a61e0000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000037000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020936ea6a916508fe9839bfccdf95a9299a28867747548e1a74b38208ee3ace14e000000000000000100000000000000000000000000000020eb939b7425a45e6af5ee8bbd51aa96cb2fd43c51864a08f260c6b1f8c2aca314000000000000000100000000000000000000000000000020617144785e76e054a86588f283941ec49cb303cfe7fa0c4860356593023b62a70000000000000001000000000000000100000000000000208167f508c5eb6be817a066fba8c0346e424b21acf020be61c9420e0d0fe6ef23000000000000000100000000000000000000000000000020f8cfb327d9517742fe31d66ff60129d85a3e464d22188d95a53c32e3132069560000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000370000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000003700000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b8686400000000000000070000000000000001000000000000000000000000000000200a7a20030b46544d04f4bcb79a79bdcc41840dd455e7d882395a996c7d229ef2000000000000000100000000000000000000000000000020656a6464953c94ecb421c770ae399690777aeef90aef5b3327426d9316fef0ac000000000000000100000000000000000000000000000020a5f838f02ee3d1a0eba68a4f9f520e9f54bb859ee5c7b3dab03340a565297b85000000000000000100000000000000010000000000000020f23d5f6b8abd73a44d9df8939a7335ea30233894a58e5c5d12f8bb36a1c04139000000000000000100000000000000000000000000000020a4106813ae8b7f27b2f203214542ef786a84eb12c970d8efc1931970c8d3c8d50000000000000001000000000000000000000000000000207fc850a920818cb68997ea7c87330937152a868df48b228e28706b9aa75616f40000000000000001000000000000000100000000000000201b1209df24fc035a2c9a10f8fa4a257b162a0fa319c7fe99195373ca0c28dd7400000000000000420000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000207677d19c09f7af9c3fbf4c63ddfafdb72bd81b73730c9377b41dc99112ea5434000000000000000100000000000000000000000000000020cf9361b31d239a19eea704187c6836abe58f98df0dd0176ebe575c2cb2fd51ee0000000000000001000000000000000100000000000000209afaedc0e6bab96075363da97bcae2f752541d66b966d854fd4fbdc665f57314000000000000000100000000000000010000000000000020d882d23dcecd5a4ff24e4f097ada499103f4217af8b869ce0275076671c667bc000000000000000100000000000000010000000000000020e6fbce7ccc80a578a93cc241360a739d0248edab1a37196cc8564d3cea08f1a90000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000042000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020032d095cf3416369c4256a0702349ea9063cc6339fdd18b618fb7e489100f3d00000000000000001000000000000000000000000000000209c1047c0e1c7e052208e9f913623d1866bdd10b5e8952f329ef211c0439a7de1000000000000000100000000000000010000000000000020c5d2b777de88f6a24bc4c18fe3273a24d763c55d7a193de1e88f2d165846a925000000000000000100000000000000010000000000000020c57390cb340730fb4757e6d9269625065f9b6612660a2177c39d2619ba6c9f820000000000000001000000000000000100000000000000201e2c25d0355b2435f10a6081fe0d1c18b2bcf5ac219aa03a7bf09921024c667f000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000420000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000004200000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b868640000000000000007000000000000000100000000000000010000000000000020604fef87c5b7629a8d65c60c1e2cd37ab5614eea7fd55412557706e95582d62800000000000000010000000000000000000000000000002096d8e72eb8de9c0d711de6801af9cd0d3be593eebb12cb1f6182397283f673ae00000000000000010000000000000001000000000000002025cb7f631988f3e596cbdb9b02071efa2f165944e96c99f6ed9f2b23bae6ab360000000000000001000000000000000100000000000000205709334cab87b717f6bac115c894cd9cdcede151c56c53d4413a66e5b4ff07640000000000000001000000000000000100000000000000206b1d4f880c4e42a008fbab67419836c1001352c589450d1f88e94da62e75a43b0000000000000001000000000000000100000000000000208a36bc7a0b21cde4d5a39d220aa8982b3b727a22e15308c3ed8e5a6ccba654b7000000000000000100000000000000000000000000000020c2373acd9e43392c84b483f993c3e9f2259f83ad4ab88d7b8236af1afb2dde97000000000000001b0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703000000000000000700000000000000010000000000000000000000000000002093156535f37ddb7e58f116266b77ef51a4cad0d0279e73ee220f3efe2dc007df0000000000000001000000000000000000000000000000202f79641d9c0a7238e695300b36fa1c5be4867aaf5047e715b0ab5ce5a4c9a1ef000000000000000100000000000000010000000000000020b19c107e100ede570d154889a6c02538ece94377272412924433c14033b82edb0000000000000001000000000000000000000000000000208c23ceb38bdfeb620de2d6414912490a34ad95503da09b70a73e57ca9658817b00000000000000010000000000000000000000000000002067b848c6a8fd93922564ee17c6101e314bbd3846fcea2a0a759b6e14ee53062a000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d000000000000001b000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020897288b85d3023dae229397fa718bd5717c17ada6383fe3ec0f79512b641d09f0000000000000001000000000000000000000000000000206de41ae63863e4dcf765564dd0dfbcc8cfec4ff8f79ca1ef7f4bd578c9b90ab60000000000000001000000000000000100000000000000206fbb63d499e0b1b5c50bb34cc0627d36caeab3783e498fb870f0d059a71cad20000000000000000100000000000000000000000000000020470c7d58bd807351d8c0392710e22aa86ff411e42398f3719c76ffa4b8e767ed00000000000000010000000000000000000000000000002081a27a248db0076bc7a7f51b5ccf3cf5b9e1c7455e27068c417e64832913ff410000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de000000000000001b0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000001b00000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b8686400000000000000070000000000000001000000000000000000000000000000205da9d21e7af3a5d5145684db10aab16584e80f44105028e75ea729dbd394574900000000000000010000000000000000000000000000002051bb888cb39b3df7a847e26194d635bdc80de0ed878d45493bdb0fee9d794576000000000000000100000000000000010000000000000020239a46dbf277baafe52f53464283343e42f543bd83bb7dc8d1dd1315f876005d000000000000000100000000000000000000000000000020475cad41419c208faffd1efcd00935b2a82e660bd30f5223d3c70d1c09e78a660000000000000001000000000000000000000000000000201f9e8255ea645ed6dac4dbd6d7f94bc08f5c7221a6c23f62f70ad185c154b4a80000000000000001000000000000000100000000000000209612f8ccc3d773d4654e0ff003cfebf4d2472a2ce0e99df1b061fe6cdbe42b0a0000000000000001000000000000000100000000000000201b1209df24fc035a2c9a10f8fa4a257b162a0fa319c7fe99195373ca0c28dd7400000000000000420000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000207677d19c09f7af9c3fbf4c63ddfafdb72bd81b73730c9377b41dc99112ea5434000000000000000100000000000000000000000000000020cf9361b31d239a19eea704187c6836abe58f98df0dd0176ebe575c2cb2fd51ee0000000000000001000000000000000100000000000000209afaedc0e6bab96075363da97bcae2f752541d66b966d854fd4fbdc665f57314000000000000000100000000000000010000000000000020d882d23dcecd5a4ff24e4f097ada499103f4217af8b869ce0275076671c667bc000000000000000100000000000000010000000000000020e6fbce7ccc80a578a93cc241360a739d0248edab1a37196cc8564d3cea08f1a90000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000042000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020032d095cf3416369c4256a0702349ea9063cc6339fdd18b618fb7e489100f3d00000000000000001000000000000000000000000000000209c1047c0e1c7e052208e9f913623d1866bdd10b5e8952f329ef211c0439a7de1000000000000000100000000000000010000000000000020c5d2b777de88f6a24bc4c18fe3273a24d763c55d7a193de1e88f2d165846a925000000000000000100000000000000010000000000000020c57390cb340730fb4757e6d9269625065f9b6612660a2177c39d2619ba6c9f820000000000000001000000000000000100000000000000201e2c25d0355b2435f10a6081fe0d1c18b2bcf5ac219aa03a7bf09921024c667f000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000420000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000004200000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b868640000000000000007000000000000000100000000000000010000000000000020604fef87c5b7629a8d65c60c1e2cd37ab5614eea7fd55412557706e95582d62800000000000000010000000000000000000000000000002096d8e72eb8de9c0d711de6801af9cd0d3be593eebb12cb1f6182397283f673ae00000000000000010000000000000001000000000000002025cb7f631988f3e596cbdb9b02071efa2f165944e96c99f6ed9f2b23bae6ab360000000000000001000000000000000100000000000000205709334cab87b717f6bac115c894cd9cdcede151c56c53d4413a66e5b4ff07640000000000000001000000000000000100000000000000206b1d4f880c4e42a008fbab67419836c1001352c589450d1f88e94da62e75a43b0000000000000001000000000000000100000000000000208a36bc7a0b21cde4d5a39d220aa8982b3b727a22e15308c3ed8e5a6ccba654b7000000000000000100000000000000000000000000000020c2373acd9e43392c84b483f993c3e9f2259f83ad4ab88d7b8236af1afb2dde97000000000000000b0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000000000000000000201a89e481bba18dfa9d4416ef0205ba9c067ab904a04b02a35855188fff0ad57200000000000000010000000000000000000000000000002034eb72e07f1bf338a90c88f33d60e76f13297c61f81d3a00a186398991c46d9a000000000000000100000000000000010000000000000020f4788f282cc48569bec74e73b39f71e265eb51ef211aecf4d1a7add0f34d7b1600000000000000010000000000000000000000000000002074c92898599a40af39cc7a4aa694631d7e51488babfa65b017e19bd852de297900000000000000010000000000000001000000000000002056e5e7ca74faee51ae45c7001256fed2e7e080dcb95a859867c22dcb1608665f000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d000000000000000b000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020dd67b97f66f8ec35d2badf9cbecef66029be7519b0cb7fc3c98ef1b46effb6710000000000000001000000000000000000000000000000203fb1c1672356fe7d5dd51118e2141a18470022a596efa96d71df01663dbacaf7000000000000000100000000000000010000000000000020a52b91bce93e4fa0572db86458eba139088189bddae7d7b79620966038af80c50000000000000001000000000000000000000000000000208f3d18cc0b0da6433287a04f00ac88b64a41656e27ea9ddc94e4472173bebea600000000000000010000000000000001000000000000002099796d2366d350a09cad2698ab80419a6869a2524f9cfcc2eb3055449273a24a0000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de000000000000000b0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000000b00000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b868640000000000000007000000000000000100000000000000000000000000000020a61d3646dcc63d4e36ed1f7cae1de66a7b7287b834a4740774c2a66c5d328804000000000000000100000000000000000000000000000020edd758c981a5485735cfb214b282b2f560e9ce109ccafdc024675d656f10a8490000000000000001000000000000000100000000000000204a424d30038ba3931370d35033d9eaf5e67267d2c0b24a83f04501b708a597100000000000000001000000000000000000000000000000200a811c67215d2836baae6caa0f504bbfcfbc0dde40ac3cdb17a78f196390ece2000000000000000100000000000000010000000000000020e37459f4af5b5707d5514ce01420f09564ba84b8869477082c7888c4e5c8acb40000000000000001000000000000000100000000000000209612f8ccc3d773d4654e0ff003cfebf4d2472a2ce0e99df1b061fe6cdbe42b0a0000000000000001000000000000000100000000000000201b1209df24fc035a2c9a10f8fa4a257b162a0fa319c7fe99195373ca0c28dd7400000000000000110000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703000000000000000700000000000000010000000000000000000000000000002061b27a134980f9011f418c391a94063267383484fc3c537d29383d9cbf4c9486000000000000000100000000000000010000000000000020bd4e5c151e0a68965ae8f3bb82c3ba76db3c0eb23d9d7a4d3dcda7f18e7356260000000000000001000000000000000100000000000000202954bf45fe77defb69128714be17592fe6b385a27c1f56d18e1e183bcc1594ee000000000000000100000000000000010000000000000020e2acecbe8619d7478dee57fcb82511df4fa4f1bdb2d5253db0ff26c50b7344b300000000000000010000000000000000000000000000002067b848c6a8fd93922564ee17c6101e314bbd3846fcea2a0a759b6e14ee53062a000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000011000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020f77b97657f252177f9abf78c0045626dc1392f6da6115fabcff97cb9331dab3e000000000000000100000000000000010000000000000020e1e5edc865c227675ca64eb732a4b2007be5c195b322c86eb0699660ab3d41a9000000000000000100000000000000010000000000000020c570a41900e5df8ba34a98c813dcad69f97d3d94bb76ff8216e35356ca2cacfd00000000000000010000000000000001000000000000002022828921a6b0f0bee2649772e95581d881e7c8e59ac79244530985451478d83800000000000000010000000000000000000000000000002081a27a248db0076bc7a7f51b5ccf3cf5b9e1c7455e27068c417e64832913ff410000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000110000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000001100000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b868640000000000000007000000000000000100000000000000000000000000000020a99cd6722f8e00f8ade402f469aa74204de70179e8684a112527fa04f9b59a80000000000000000100000000000000010000000000000020e19613a745447ab8d1bd6e94691a3893d39beccee1b0fc7364b8d234c8dae01f0000000000000001000000000000000100000000000000205b32d2653aaa213e4384f7742074420889bf11336c786c1c743b15302fe1a82400000000000000010000000000000001000000000000002086140aa1aeeb29951884301e2b42e87686485bd984b7d346ddd36d29e2ccc64a0000000000000001000000000000000000000000000000201f9e8255ea645ed6dac4dbd6d7f94bc08f5c7221a6c23f62f70ad185c154b4a80000000000000001000000000000000100000000000000209612f8ccc3d773d4654e0ff003cfebf4d2472a2ce0e99df1b061fe6cdbe42b0a0000000000000001000000000000000100000000000000201b1209df24fc035a2c9a10f8fa4a257b162a0fa319c7fe99195373ca0c28dd74000000000000000c0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000206930a5f9ea4d52e17a1c3dd55cbf7c35474dfd3483718902410c439dd6694c640000000000000001000000000000000100000000000000207f083025d7b5e20a3e96dbdb4f9f90b3702807776e2b2f53ab95311f3f7c3a9f000000000000000100000000000000000000000000000020e5744ea7917af5a15f1aa03739836609a2e30d754ad8e74253c5d416ce47902100000000000000010000000000000000000000000000002074c92898599a40af39cc7a4aa694631d7e51488babfa65b017e19bd852de297900000000000000010000000000000001000000000000002056e5e7ca74faee51ae45c7001256fed2e7e080dcb95a859867c22dcb1608665f000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d000000000000000c000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000001000000000000002093289367b31a97a2928a2f8e9e97c81bec79c1ed15af4738eb8f5db23b67455f00000000000000010000000000000001000000000000002056b2509eded6bd717e4ce53f680b40ab0a6c36b9fb7645d5ab33e0dbab72ba200000000000000001000000000000000000000000000000204f17285237eba98af78b80bd5e8de5f5a53fe8a071411b6c6e4d4c36f536e1330000000000000001000000000000000000000000000000208f3d18cc0b0da6433287a04f00ac88b64a41656e27ea9ddc94e4472173bebea600000000000000010000000000000001000000000000002099796d2366d350a09cad2698ab80419a6869a2524f9cfcc2eb3055449273a24a0000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de000000000000000c0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000000c00000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b86864000000000000000700000000000000010000000000000001000000000000002035d2d1e8a517e4ad0beff9d025795e47120269ad35afccdcc8f7b6b6ddb9f57b00000000000000010000000000000001000000000000002028c63b2e8b8f0feba668214e4781978e3156c27ce6450fef5ce5b0485951c164000000000000000100000000000000000000000000000020db3cef5e7ca6ac584217ed4415cda60573719fa053e5379b12cf4e13db34d8170000000000000001000000000000000000000000000000200a811c67215d2836baae6caa0f504bbfcfbc0dde40ac3cdb17a78f196390ece2000000000000000100000000000000010000000000000020e37459f4af5b5707d5514ce01420f09564ba84b8869477082c7888c4e5c8acb40000000000000001000000000000000100000000000000209612f8ccc3d773d4654e0ff003cfebf4d2472a2ce0e99df1b061fe6cdbe42b0a0000000000000001000000000000000100000000000000201b1209df24fc035a2c9a10f8fa4a257b162a0fa319c7fe99195373ca0c28dd74000000000000003f0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020792f9e91a004a8a4d8d29ecba8f9cba46c15e95a1a542d5d2e6a5bb946d8ad0f00000000000000010000000000000000000000000000002046ac07b7f7a61188086b6c4b68e04c2ab56f2c6523b241a09c8b73a6d2c4fd8600000000000000010000000000000000000000000000002003e351314794759cd9806174a52250b9cb8fa9581fa9e27d53e8a0c841303e0a00000000000000010000000000000000000000000000002038633c23221765310c92698cee8362c0d12200537889693a08f64eb0a28d0eb50000000000000001000000000000000000000000000000204cc7901d510046ae5f98d6b431c2a311cc066cdd794fd6e53cc30587ed00a61e0000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d000000000000003f000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000000000000000000206255b409b338405ad7f641b83a505fc2fb24e8c63255dc53f604f5202d06933f00000000000000010000000000000000000000000000002036670a01fac60d516547b53a292308b7180d6cadb33e8c70762b23893e9541a4000000000000000100000000000000000000000000000020a9ab9c5ee7b9555a000953fc28810de93e021fd6c3bd175a54f424a6c2f67cc8000000000000000100000000000000000000000000000020d0aef9b77b039100567fbec3deac5294b41ec41336a21a95a35be851fa112511000000000000000100000000000000000000000000000020f8cfb327d9517742fe31d66ff60129d85a3e464d22188d95a53c32e3132069560000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de000000000000003f0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000003f00000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b868640000000000000007000000000000000100000000000000000000000000000020d901fbc5256b2b9e86e37c1f056dcafe1462e64980cfd474e67a6cb6838363ec000000000000000100000000000000000000000000000020cb964b84923795e306d837d5c4b11ea4cdc784b5e76d2f6ee325531e8fc5aa64000000000000000100000000000000000000000000000020fed9890dd98e6c1638f9890976242c287adbd2a0428c0b625fe3e7d5013c205900000000000000010000000000000000000000000000002079bc5bbafb1da115c390257c26dd3ea5b09add220e6b98825ced402134928180000000000000000100000000000000000000000000000020a4106813ae8b7f27b2f203214542ef786a84eb12c970d8efc1931970c8d3c8d50000000000000001000000000000000000000000000000207fc850a920818cb68997ea7c87330937152a868df48b228e28706b9aa75616f40000000000000001000000000000000100000000000000201b1209df24fc035a2c9a10f8fa4a257b162a0fa319c7fe99195373ca0c28dd7400000000000000170000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020be83654dd5cd7a88a27b5cfa09782831fbc365eddb2daa2ff542587999916d4f000000000000000100000000000000000000000000000020a02a6e0ca0e6da26d12a40de1ecaecc8c54a4a02ae4013e997a6266c39ee2d64000000000000000100000000000000000000000000000020236a87f0094607aef55b5855bcf5d40e5a4d31eb60bcf52103d540e1255750fd000000000000000100000000000000010000000000000020e2acecbe8619d7478dee57fcb82511df4fa4f1bdb2d5253db0ff26c50b7344b300000000000000010000000000000000000000000000002067b848c6a8fd93922564ee17c6101e314bbd3846fcea2a0a759b6e14ee53062a000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000017000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000000000000000000206eb3202475484b8a5f03e7a5942ff542a04b2a0e85ffb8b1ac313bf1d5912fd0000000000000000100000000000000000000000000000020fba19ae29a6b891fd2f7c5c35423245aeea2e18c6ca57ef3f6b76c07374f2c15000000000000000100000000000000000000000000000020b6825f551393ddf40c3d0d57b2c88b4047463cc27d41309df512b8de3748521600000000000000010000000000000001000000000000002022828921a6b0f0bee2649772e95581d881e7c8e59ac79244530985451478d83800000000000000010000000000000000000000000000002081a27a248db0076bc7a7f51b5ccf3cf5b9e1c7455e27068c417e64832913ff410000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000170000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000001700000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b86864000000000000000700000000000000010000000000000000000000000000002093e349c1c6ad9f4148382b4b7d1da376d4d33320f0e8a546c60b363e85341fcd000000000000000100000000000000000000000000000020dcc292348ffaa2374842c930b27f83e226fd755fa4f2461119d8ff800437715600000000000000010000000000000000000000000000002015efc2b3df07a916f42125652366222810c06a316b67cd86a476859ec50b32e400000000000000010000000000000001000000000000002086140aa1aeeb29951884301e2b42e87686485bd984b7d346ddd36d29e2ccc64a0000000000000001000000000000000000000000000000201f9e8255ea645ed6dac4dbd6d7f94bc08f5c7221a6c23f62f70ad185c154b4a80000000000000001000000000000000100000000000000209612f8ccc3d773d4654e0ff003cfebf4d2472a2ce0e99df1b061fe6cdbe42b0a0000000000000001000000000000000100000000000000201b1209df24fc035a2c9a10f8fa4a257b162a0fa319c7fe99195373ca0c28dd7400000000000000420000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000207677d19c09f7af9c3fbf4c63ddfafdb72bd81b73730c9377b41dc99112ea5434000000000000000100000000000000000000000000000020cf9361b31d239a19eea704187c6836abe58f98df0dd0176ebe575c2cb2fd51ee0000000000000001000000000000000100000000000000209afaedc0e6bab96075363da97bcae2f752541d66b966d854fd4fbdc665f57314000000000000000100000000000000010000000000000020d882d23dcecd5a4ff24e4f097ada499103f4217af8b869ce0275076671c667bc000000000000000100000000000000010000000000000020e6fbce7ccc80a578a93cc241360a739d0248edab1a37196cc8564d3cea08f1a90000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000042000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020032d095cf3416369c4256a0702349ea9063cc6339fdd18b618fb7e489100f3d00000000000000001000000000000000000000000000000209c1047c0e1c7e052208e9f913623d1866bdd10b5e8952f329ef211c0439a7de1000000000000000100000000000000010000000000000020c5d2b777de88f6a24bc4c18fe3273a24d763c55d7a193de1e88f2d165846a925000000000000000100000000000000010000000000000020c57390cb340730fb4757e6d9269625065f9b6612660a2177c39d2619ba6c9f820000000000000001000000000000000100000000000000201e2c25d0355b2435f10a6081fe0d1c18b2bcf5ac219aa03a7bf09921024c667f000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000420000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000004200000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b868640000000000000007000000000000000100000000000000010000000000000020604fef87c5b7629a8d65c60c1e2cd37ab5614eea7fd55412557706e95582d62800000000000000010000000000000000000000000000002096d8e72eb8de9c0d711de6801af9cd0d3be593eebb12cb1f6182397283f673ae00000000000000010000000000000001000000000000002025cb7f631988f3e596cbdb9b02071efa2f165944e96c99f6ed9f2b23bae6ab360000000000000001000000000000000100000000000000205709334cab87b717f6bac115c894cd9cdcede151c56c53d4413a66e5b4ff07640000000000000001000000000000000100000000000000206b1d4f880c4e42a008fbab67419836c1001352c589450d1f88e94da62e75a43b0000000000000001000000000000000100000000000000208a36bc7a0b21cde4d5a39d220aa8982b3b727a22e15308c3ed8e5a6ccba654b7000000000000000100000000000000000000000000000020c2373acd9e43392c84b483f993c3e9f2259f83ad4ab88d7b8236af1afb2dde97000000000000007a0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020c75ec940d0e95377720389ceeb0eafd8a3d3ceda65d360e25f92b78b759b64d5000000000000000100000000000000000000000000000020f7a03e6aab33c259b776a0a1068e9b29f69e476bfd7bd164913d1edd6dbe937e000000000000000100000000000000010000000000000020a0ff9b979dbd1cb58a689c4f7cb8c8e56e1dda716de815f8dce6e6624d7e57ac0000000000000001000000000000000000000000000000204d5c20971314a886143fcf4f31e5b0fe465897f95edb2ebb496a671eb51686a3000000000000000100000000000000000000000000000020484695c1718ea9babdf0da4a169839654a70d31dfb7bfa030bd34c4fd296f173000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000007a000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020c8852b920b05e5706551ba5f636d8d26d15193c6584fadd468986532d24c74a40000000000000001000000000000000000000000000000202dad7cb660b8d7478673d74df249c7bca96ad2a77a9e6df8cd53b3b04533f1c800000000000000010000000000000001000000000000002016a4ade761eb6230e27dd29c0ca0b6ca9e5ed431dfbc829f10335bc89c30fd1a0000000000000001000000000000000000000000000000209ef4b79cde573ddf1a1cfe0df94952533f934e8712306ff6e1df26da2304bf2d000000000000000100000000000000000000000000000020eed5635aa9fe26e55ac534a89c39cf891254e6457318ced7e38ad88fc125ecc7000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000007a0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000007a00000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b868640000000000000007000000000000000100000000000000010000000000000020e56a983748e4822c1fda8f3dbddfeec6fb2635b24eb16a6ab741d9bf4059420100000000000000010000000000000000000000000000002065f27579bab0bbce84be78665e6a5d96c419245da1f363c6c7f72dc30425c3010000000000000001000000000000000100000000000000207be15b9618a30386615fde520fbd00cbe45924c66bc2ce0039d5538e4a5281cd0000000000000001000000000000000000000000000000208e6eda75688a92e7d9b73d9fc52f0a368909e9ede3c0d82c223aa41f84394d3d000000000000000100000000000000000000000000000020095e06275987f2e31a13d40ea9a221f0eaba482fa32be91d8d06d10ec4f3b7dc000000000000000100000000000000000000000000000020069a44f33fa4ebf420d47453d2f737ebfbe1a3f859c30591a7613e6ba4d43471000000000000000100000000000000000000000000000020c2373acd9e43392c84b483f993c3e9f2259f83ad4ab88d7b8236af1afb2dde9700000000000000300000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000208aefc20cc770b1a5ef0c043584191ae28658a1bcf7d09eb38ac5190d3d0d657e0000000000000001000000000000000100000000000000200c4f0578207e76426e059ff8acf398c5fcb841251552c8e47d2464973c5cc1f10000000000000001000000000000000100000000000000202d3d71c190cf6c43416cbe47335b0e25e426bc497ce5758c1606e0f1aa2ca3df00000000000000010000000000000001000000000000002035603eb04728f46297d39deef07280b0efb1ad34cd06e614ab18bb44a27f7e2e0000000000000001000000000000000000000000000000204cc7901d510046ae5f98d6b431c2a311cc066cdd794fd6e53cc30587ed00a61e0000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000030000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000001000000000000002045877823b52f2f70dea6732faf89cdddbf4fe7a7fc4cf2090bdaa8fd650066bb0000000000000001000000000000000100000000000000205b66dba87a0bf7977482f714ecb33f926d0e43dd6b035692bf1333cafd75fafa00000000000000010000000000000001000000000000002072ebca755ad2ef4b7250f091f16fa7df2d4de8ea26d8d83c79b0f03cc45baa930000000000000001000000000000000100000000000000208167f508c5eb6be817a066fba8c0346e424b21acf020be61c9420e0d0fe6ef23000000000000000100000000000000000000000000000020f8cfb327d9517742fe31d66ff60129d85a3e464d22188d95a53c32e3132069560000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000300000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000003000000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b868640000000000000007000000000000000100000000000000010000000000000020d4e596fe7eb8f2fd4942056e9ff42c8b8eafac574e32999114b196ce803d5b5f00000000000000010000000000000001000000000000002006d50216ea3b8c6485951098662781af839c866591b608a14746136fd69b8df50000000000000001000000000000000100000000000000203ece4da5049b09ca7047e3f7546dfb074bada86cf6fd78b6623d92c84be8582a000000000000000100000000000000010000000000000020f23d5f6b8abd73a44d9df8939a7335ea30233894a58e5c5d12f8bb36a1c04139000000000000000100000000000000000000000000000020a4106813ae8b7f27b2f203214542ef786a84eb12c970d8efc1931970c8d3c8d50000000000000001000000000000000000000000000000207fc850a920818cb68997ea7c87330937152a868df48b228e28706b9aa75616f40000000000000001000000000000000100000000000000201b1209df24fc035a2c9a10f8fa4a257b162a0fa319c7fe99195373ca0c28dd7400000000000000720000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000209c7a5f066cf9bfe96a421d74ac0d0b269d63914873d68b400e4f73be4bc1aebd0000000000000001000000000000000000000000000000203f1184d99c0c6f37844768d0fd9fd6b2b34d22db285cdeef3fddc041c496e2e7000000000000000100000000000000010000000000000020b4894900c33f5635d85562ebbda7805f0ac1d98ae53665e714382ea448ac52c20000000000000001000000000000000100000000000000201ddaf21874d2f1dceb73b2bd9c919f8080291efd13ced9f813727e4f480d6481000000000000000100000000000000000000000000000020484695c1718ea9babdf0da4a169839654a70d31dfb7bfa030bd34c4fd296f173000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000072000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000100000000000000206f29a656c148cf7e744cb1e37fa1387917b3c54963d92e644311b433d969376800000000000000010000000000000000000000000000002020f2a31bfd572314732bbf381b5314858e97f3aa9d9aecf077369cf5b72048fd0000000000000001000000000000000100000000000000200755751b5c06801532af40f5137b978866beb2f616a3d040c4a46f352c038982000000000000000100000000000000010000000000000020aef86b1c25b74932f43f0295cd7c5728d8beb0c22d00656fa8fddbeccc1fc88d000000000000000100000000000000000000000000000020eed5635aa9fe26e55ac534a89c39cf891254e6457318ced7e38ad88fc125ecc7000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000720000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000007200000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b868640000000000000007000000000000000100000000000000010000000000000020482ac8c78456995cc2328924a8f29ac59328e4f9578145836c87e612674ae5a1000000000000000100000000000000000000000000000020c564b8b761ffb4073dc7d9365dcedbafecacec7bec5f32e70da67023022033110000000000000001000000000000000100000000000000201c5adbe7813e824a5134310dfd54433fa8fde77999a70c1ede5413026277ad550000000000000001000000000000000100000000000000204f51bf5ce5ecb58d545e7c31c05242ce62c29bdddf378e54233f75ac620e2b89000000000000000100000000000000000000000000000020095e06275987f2e31a13d40ea9a221f0eaba482fa32be91d8d06d10ec4f3b7dc000000000000000100000000000000000000000000000020069a44f33fa4ebf420d47453d2f737ebfbe1a3f859c30591a7613e6ba4d43471000000000000000100000000000000000000000000000020c2373acd9e43392c84b483f993c3e9f2259f83ad4ab88d7b8236af1afb2dde9700000000000000070000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020c7b1e5bf0733e0a3747103b05723724641d9922cf804ee197149894fc86e9c1600000000000000010000000000000000000000000000002024dd71f470a74bc9d00007238db817e2951ab47beab380e9dfb9c9bf28a0a90c00000000000000010000000000000000000000000000002093a0881cb11f378c3ee374298a66b649fae44fbb2f35e3704ab5f4655c883f85000000000000000100000000000000010000000000000020ca3dc5f22e4573bfae9e4282c195d191a87ba277e564f158302218ee7bcec57300000000000000010000000000000001000000000000002056e5e7ca74faee51ae45c7001256fed2e7e080dcb95a859867c22dcb1608665f000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000007000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000000000000000000204511364e6740dece985a8421cf505ace7c56a037e4c50c10c6cf1b04eb6fa5f8000000000000000100000000000000000000000000000020fa774f7f08a9caf5f4c2a4ec6081fa509a5e34d6de7388ccc80b06493b538fe8000000000000000100000000000000000000000000000020159fb7d1dbca35eff1d0f710637a19e2e36d57033adbce658e94920357d85089000000000000000100000000000000010000000000000020ea8b53cd7415ecfb610e991f3187dc70583ec968dd6f325946dad2d066766dd100000000000000010000000000000001000000000000002099796d2366d350a09cad2698ab80419a6869a2524f9cfcc2eb3055449273a24a0000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000070000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000000700000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b8686400000000000000070000000000000001000000000000000000000000000000201a5627feb33e02846e2267f97c132f77f5f7781b22127148f25e3c0985a08ce600000000000000010000000000000000000000000000002006f0abf8012c918f93809f9e59a7df74630df9e0b99556e0951b0b3359a42bfa000000000000000100000000000000000000000000000020831cdcfba9f17eed5f7c9a3df5fb68d5accb25e6de514071b4280f355d240c87000000000000000100000000000000010000000000000020b51c3fa252a3e9d0887102fb7225c454ea04da1d53389cc7c7d4e6b69f1a21f0000000000000000100000000000000010000000000000020e37459f4af5b5707d5514ce01420f09564ba84b8869477082c7888c4e5c8acb40000000000000001000000000000000100000000000000209612f8ccc3d773d4654e0ff003cfebf4d2472a2ce0e99df1b061fe6cdbe42b0a0000000000000001000000000000000100000000000000201b1209df24fc035a2c9a10f8fa4a257b162a0fa319c7fe99195373ca0c28dd7400000000000000690000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020168d2dae5908e276103440583e5e91e00075a90f2175709bf90956381663a353000000000000000100000000000000010000000000000020ca6c56e94dc3db3569b8aa66acc2394bd332e25aca38585f988144d360a7d0d30000000000000001000000000000000100000000000000204bb79970c2fb9ceeb2b3b825d98db63307bfbd367bb0eb605f16caa342d20f42000000000000000100000000000000000000000000000020c897f9cc214e1d82ae3fa75be40cec804be624b41c23e139bfad78e7e7d5fc3b000000000000000100000000000000010000000000000020cca38bcaaeed86d1c037ddb148bba22f6b95749f7f352486d9b2248d154972a4000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000069000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020ea39b356e9304b8cfbf68f82c585a449d32fe7be745ef5611e3ea754f2eabafc0000000000000001000000000000000100000000000000209a0722187a4b5424088f7a2e0ef119365189add036f54ccfbf7f3a122c00608d0000000000000001000000000000000100000000000000203d3437767a18c76c6b3ce58e0eaba9f957fb31192a19e2e3adf0c19d5ac4cda30000000000000001000000000000000000000000000000207fadb498e4408564c5da8cdaf1ddd40a060ac7be00e86d18a70cff218a853e5400000000000000010000000000000001000000000000002015dc39279a52d41ddbcaf227c199cbd51b1f711d661184752155a6495562235a000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000690000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000006900000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b8686400000000000000070000000000000001000000000000000000000000000000202d99bdb3babeba7dee5d609001c510aeb44e8afc63e0871d23080d386a7106110000000000000001000000000000000100000000000000204f8fb8274097610605f62be66375dfaa0417f51c9306df0f02368e01ca9dd530000000000000000100000000000000010000000000000020f1b4ae3d887837dc9b181cd7f6918a6e5c5747614adf29fc779923bc61f90cc20000000000000001000000000000000000000000000000205ed2d16071bbd3f9afdb7711ba48151b7400c563773be3198665ade42f3a27fb000000000000000100000000000000010000000000000020327193f3223190f61d5993a1f33ad008cb85cada5c5129e3a69754a718f818bf000000000000000100000000000000000000000000000020069a44f33fa4ebf420d47453d2f737ebfbe1a3f859c30591a7613e6ba4d43471000000000000000100000000000000000000000000000020c2373acd9e43392c84b483f993c3e9f2259f83ad4ab88d7b8236af1afb2dde9700000000000000720000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000209c7a5f066cf9bfe96a421d74ac0d0b269d63914873d68b400e4f73be4bc1aebd0000000000000001000000000000000000000000000000203f1184d99c0c6f37844768d0fd9fd6b2b34d22db285cdeef3fddc041c496e2e7000000000000000100000000000000010000000000000020b4894900c33f5635d85562ebbda7805f0ac1d98ae53665e714382ea448ac52c20000000000000001000000000000000100000000000000201ddaf21874d2f1dceb73b2bd9c919f8080291efd13ced9f813727e4f480d6481000000000000000100000000000000000000000000000020484695c1718ea9babdf0da4a169839654a70d31dfb7bfa030bd34c4fd296f173000000000000000100000000000000000000000000000020b8740f80df5d6c03f9539bc858e68e4ce320577a1339e9a4ea1b5e788b67c556000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000072000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000100000000000000206f29a656c148cf7e744cb1e37fa1387917b3c54963d92e644311b433d969376800000000000000010000000000000000000000000000002020f2a31bfd572314732bbf381b5314858e97f3aa9d9aecf077369cf5b72048fd0000000000000001000000000000000100000000000000200755751b5c06801532af40f5137b978866beb2f616a3d040c4a46f352c038982000000000000000100000000000000010000000000000020aef86b1c25b74932f43f0295cd7c5728d8beb0c22d00656fa8fddbeccc1fc88d000000000000000100000000000000000000000000000020eed5635aa9fe26e55ac534a89c39cf891254e6457318ced7e38ad88fc125ecc7000000000000000100000000000000000000000000000020ad19fa7fb50ab6a82a3863500c3460818014abceb8273ffa1add6f0d72e972b10000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000720000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000007200000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b868640000000000000007000000000000000100000000000000010000000000000020482ac8c78456995cc2328924a8f29ac59328e4f9578145836c87e612674ae5a1000000000000000100000000000000000000000000000020c564b8b761ffb4073dc7d9365dcedbafecacec7bec5f32e70da67023022033110000000000000001000000000000000100000000000000201c5adbe7813e824a5134310dfd54433fa8fde77999a70c1ede5413026277ad550000000000000001000000000000000100000000000000204f51bf5ce5ecb58d545e7c31c05242ce62c29bdddf378e54233f75ac620e2b89000000000000000100000000000000000000000000000020095e06275987f2e31a13d40ea9a221f0eaba482fa32be91d8d06d10ec4f3b7dc000000000000000100000000000000000000000000000020069a44f33fa4ebf420d47453d2f737ebfbe1a3f859c30591a7613e6ba4d43471000000000000000100000000000000000000000000000020c2373acd9e43392c84b483f993c3e9f2259f83ad4ab88d7b8236af1afb2dde97000000000000000f0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020fb6baadf8d1513fbb8742de6172487166f7f80e61757ce16004208aba42a815f00000000000000010000000000000000000000000000002097b3073c51a53f04165f4ec59a2f22e187b4350b5d42958cd9593664445a7659000000000000000100000000000000000000000000000020e5744ea7917af5a15f1aa03739836609a2e30d754ad8e74253c5d416ce47902100000000000000010000000000000000000000000000002074c92898599a40af39cc7a4aa694631d7e51488babfa65b017e19bd852de297900000000000000010000000000000001000000000000002056e5e7ca74faee51ae45c7001256fed2e7e080dcb95a859867c22dcb1608665f000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d000000000000000f000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020cd03123013f86b370c53a60db2fa440cbacc323a01cf5e4bda90a9095253ce610000000000000001000000000000000000000000000000201db687ef0106f4f32437f43e6c3481e0ddcab84ecc785b92ea2b49d514d27db50000000000000001000000000000000000000000000000204f17285237eba98af78b80bd5e8de5f5a53fe8a071411b6c6e4d4c36f536e1330000000000000001000000000000000000000000000000208f3d18cc0b0da6433287a04f00ac88b64a41656e27ea9ddc94e4472173bebea600000000000000010000000000000001000000000000002099796d2366d350a09cad2698ab80419a6869a2524f9cfcc2eb3055449273a24a0000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de000000000000000f0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000000f00000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b868640000000000000007000000000000000100000000000000000000000000000020625a8c2f6eadb4ecbcb1fe722121f6a75b3ddf31aff5d78c9485ced60f732031000000000000000100000000000000000000000000000020d5ca72d395564a32b52e81116fd6b9682926f2593abe0117e4a078781fb818da000000000000000100000000000000000000000000000020db3cef5e7ca6ac584217ed4415cda60573719fa053e5379b12cf4e13db34d8170000000000000001000000000000000000000000000000200a811c67215d2836baae6caa0f504bbfcfbc0dde40ac3cdb17a78f196390ece2000000000000000100000000000000010000000000000020e37459f4af5b5707d5514ce01420f09564ba84b8869477082c7888c4e5c8acb40000000000000001000000000000000100000000000000209612f8ccc3d773d4654e0ff003cfebf4d2472a2ce0e99df1b061fe6cdbe42b0a0000000000000001000000000000000100000000000000201b1209df24fc035a2c9a10f8fa4a257b162a0fa319c7fe99195373ca0c28dd74000000000000005a0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020c73dd476fd269c7ac557c89c943e8914676f093878b76857a8775a4defd82b4000000000000000010000000000000000000000000000002000a92b30ce6c574c8df94866550b7545970186d13c6aa105d8bea832707fbcdc000000000000000100000000000000010000000000000020a2108799ba60b14b4528e026d0f575f797028a9469cdfbc41cf7cb8c648a846a0000000000000001000000000000000000000000000000204ad6dc0cd0533f78182e33f1a845ac02537dc3fd9cd6a8afe705ed7185762a5c000000000000000100000000000000000000000000000020440141033be391d351cbd747235dd0dd8925385fcbdaf63ca3ce8096a77f70ba0000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000005a000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020f342d8f88a4f21a8e0c9c8ff3b07a4b357d03edc3ea9f9f263f51ff8fe79831c000000000000000100000000000000000000000000000020f1356cef5b3e8bbc1ed73abc6b758482cb3d9a88947b415be273ca177e19650a000000000000000100000000000000010000000000000020dd80cacd766c514bea4e75a998238e23cceb858decbd9583d9466348cafc2b4b000000000000000100000000000000000000000000000020241e42aeb3c798b84ad9a34ccc6b26a5fb12fe91536ea9394f0e34b50690f3390000000000000001000000000000000000000000000000204d271360d6ea5729d441a303230c4b3fd940e15129f6f043ffe200fe1412df3c000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000005a0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000005a00000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b868640000000000000007000000000000000100000000000000010000000000000020af4ab977c0df316c8a4086c5c1ab99beb07d1384e44276ab8772efe1daa4f8f50000000000000001000000000000000000000000000000206cd7cb6bc957dab22950361c42cc7b9b6df302d2fc409e1ef771192fb049aab40000000000000001000000000000000100000000000000207f0990d2982a1c4a1b58341455aa1c3ffb366f1c34dbd3d5cc9bfe4082ce3a5c000000000000000100000000000000000000000000000020dce7bbd9df3b93dd701565c3edb9065d5b787889b79eacfbd682100bb76efcdf0000000000000001000000000000000000000000000000202a919df14ce5514b57e6eb9a7f6b25d9178d9241708e72a76970cd595d0ec4370000000000000001000000000000000100000000000000208a36bc7a0b21cde4d5a39d220aa8982b3b727a22e15308c3ed8e5a6ccba654b7000000000000000100000000000000000000000000000020c2373acd9e43392c84b483f993c3e9f2259f83ad4ab88d7b8236af1afb2dde97000000000000002e0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000203878f31f94c5c1a942ef37c0dee2a2862b6737d4fd31a77bb051334568784e810000000000000001000000000000000000000000000000209704413d8a707d33244faf00e0702f156ed165f379edaa132d13bb73341f1ad6000000000000000100000000000000000000000000000020d4c0df32ee86ae7b5161167dcef1b7eeb12a4a6dc9a1b6566aeeabe819adc61a0000000000000001000000000000000000000000000000201f4bfe7d2398692f0c7abdb85ed16895ef0857d4d738e32f167340e5542a22b20000000000000001000000000000000100000000000000205d77fe2ccf9c9f8603070bd03123cd3455d47968e542db3d55abf5cd35b03d050000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d000000000000002e000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020f89f5b3c95de5b964413e926569bbf56c879e8482061ee3b51ddc6a2772580ab000000000000000100000000000000000000000000000020085890d220c9891a29283984b66b1e3f0c2465e990f215083f62d7a8bb46e1d5000000000000000100000000000000000000000000000020a4e4ca5bbb50dfe8edcfb7963ea98588d32ac467780c2cade2a34fedc58db14d000000000000000100000000000000000000000000000020b6d1fb90220eb827e5a0d6cff1a17436b1d8a5cbf6a2bec68975b0b2c4d80d8a000000000000000100000000000000010000000000000020e7444cc161f3e7f01cf05762fb0fb97caf4bc92619aabc44b759df970816cdad0000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de000000000000002e0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000002e00000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b868640000000000000007000000000000000100000000000000010000000000000020c673b838cb38f866d9b03e62c922b9f488e4d5ecec551cc5545f49ab2a556806000000000000000100000000000000000000000000000020ed2d1248b077c866d2d67cc9bfbae82880de42a04897c55660524ba3f62dda9f0000000000000001000000000000000000000000000000201d8ad03d2011ef6ce54c1a81dba952791bea124ea00f3b113807dbfbe254a5900000000000000001000000000000000000000000000000201d75768073a4c5340a2027c911af89ea3fa42a086d72fb39c6cae7a72aeac2c500000000000000010000000000000001000000000000002002dc6532f6ebc1f490383ba0ff1a45f0e25f74ece2d69dba9eca4d71e450033e0000000000000001000000000000000000000000000000207fc850a920818cb68997ea7c87330937152a868df48b228e28706b9aa75616f40000000000000001000000000000000100000000000000201b1209df24fc035a2c9a10f8fa4a257b162a0fa319c7fe99195373ca0c28dd74000000000000005c0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703000000000000000700000000000000010000000000000001000000000000002047e1f5e0fe3ff76eaf6533b6ad4f15e6298846f17c92b90fee4090916be3d5ae000000000000000100000000000000010000000000000020368d67564a09158dfb6de68dfb9eb87ba299687ff58fa2c7213d13474b130927000000000000000100000000000000000000000000000020f476b958e87db8a02656f8467c6e5e45d866f25792959994b010cfab414a683f0000000000000001000000000000000000000000000000204ad6dc0cd0533f78182e33f1a845ac02537dc3fd9cd6a8afe705ed7185762a5c000000000000000100000000000000000000000000000020440141033be391d351cbd747235dd0dd8925385fcbdaf63ca3ce8096a77f70ba0000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a61000000000000005c000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020bdfd29cfbbedae4c9227f8f665d1fc396e7c7d81b60456b2769aa3128a012cce000000000000000100000000000000010000000000000020ae367347ec635549b68bfb78721a6c7a1a6084fca918c06287dbc1b6afc3f9c20000000000000001000000000000000000000000000000200465cea58d937eb0fdb98fcaf6de41b5bc5a9ef8128bb64c6d5c79fe8b30bd02000000000000000100000000000000000000000000000020241e42aeb3c798b84ad9a34ccc6b26a5fb12fe91536ea9394f0e34b50690f3390000000000000001000000000000000000000000000000204d271360d6ea5729d441a303230c4b3fd940e15129f6f043ffe200fe1412df3c000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b23000000000000005c0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000005c00000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b868640000000000000007000000000000000100000000000000010000000000000020ddbd43ac314c7c912d6e8b2350320186f100294968a82f775d4cf5614f62a05c00000000000000010000000000000001000000000000002024f67aaa65e7eaa4e23a4baf19e4eaaaebaa4c816d2da87d9928c3e0d10d1fb3000000000000000100000000000000000000000000000020321306172bc598e434645e4dc5f2c9b16e5f929d8bcc57a33b107a6fb24cbfa4000000000000000100000000000000000000000000000020dce7bbd9df3b93dd701565c3edb9065d5b787889b79eacfbd682100bb76efcdf0000000000000001000000000000000000000000000000202a919df14ce5514b57e6eb9a7f6b25d9178d9241708e72a76970cd595d0ec4370000000000000001000000000000000100000000000000208a36bc7a0b21cde4d5a39d220aa8982b3b727a22e15308c3ed8e5a6ccba654b7000000000000000100000000000000000000000000000020c2373acd9e43392c84b483f993c3e9f2259f83ad4ab88d7b8236af1afb2dde9700000000000000230000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020eb229bfab917139f1053b6dd4f072dede01de2655c5ed6ed280e80bf8329edc30000000000000001000000000000000000000000000000206cf71400d8e57867a304c5590652dd7adf3d4272e4b81b7c72eb4367d804b449000000000000000100000000000000010000000000000020dda255470d0e3d9d6cdaa2fb7a505f6c7a4e24ad53cf261ae845d526ff84b25a0000000000000001000000000000000100000000000000205174f398ccc856cdbbef4aa77674b4b7eef12d39c064ad97e2c59fc16b229eba0000000000000001000000000000000100000000000000205d77fe2ccf9c9f8603070bd03123cd3455d47968e542db3d55abf5cd35b03d050000000000000001000000000000000000000000000000206fc55d69be08d34a81908ff98a5ee71ca33164641f453a60fcb6fe167f57da5b000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000023000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020f2209ea108e3ed845623a13e39ec42c1cd3bc8b594dc35593f0af074fe358179000000000000000100000000000000000000000000000020020643005f0606b68d89294ab9119d3b6b26695018578e134a820ba53f44c93c000000000000000100000000000000010000000000000020635786b3451c8fcd72df2a7f9875620e9c4a9d61248ed35461e4ea6478f57b52000000000000000100000000000000010000000000000020a88fc00e48cff7ada818659ce1afb1d48fbf00ea30b15d29f469922cbe8e2d8c000000000000000100000000000000010000000000000020e7444cc161f3e7f01cf05762fb0fb97caf4bc92619aabc44b759df970816cdad0000000000000001000000000000000000000000000000203ac5ec986d57650e3ca79fa4603a1061602175b454dc001d06f6f25fc1050d5c0000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000230000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000000000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000002300000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b868640000000000000007000000000000000100000000000000000000000000000020e8d5a661e3fecc674bce7b299a9f463db20d0617ff0f4ab12ea266d3daa85b02000000000000000100000000000000000000000000000020c4bed048e8ba23b401527c2fb537af23b7e56f80a8229e24ccd33b66583ab043000000000000000100000000000000010000000000000020d79cbee9869a3c46953aa9c62ba0934763e71c50acbdfa93d2f34c8f5461a4f400000000000000010000000000000001000000000000002004ace2b0b5cf3a7818a350cf261d2203be3b8384204cea5d7f25a1f738277d8300000000000000010000000000000001000000000000002002dc6532f6ebc1f490383ba0ff1a45f0e25f74ece2d69dba9eca4d71e450033e0000000000000001000000000000000000000000000000207fc850a920818cb68997ea7c87330937152a868df48b228e28706b9aa75616f40000000000000001000000000000000100000000000000201b1209df24fc035a2c9a10f8fa4a257b162a0fa319c7fe99195373ca0c28dd7400000000000000540000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000208c29f50c6a921e6c039421dd22522be89566bbd3b7a80fccac2bef837aaed014000000000000000100000000000000010000000000000020ae061b5194494d30b474e8ca84e30311d10fe173845210baede494005bcff504000000000000000100000000000000000000000000000020f02df779af74ece096b6b51019afda9aad006f692c3013a0d59e0d28d8c8933d0000000000000001000000000000000100000000000000200bf7ab1c0d308f7966b26422ec6c126e5956a6ce55c01414a62362c696861137000000000000000100000000000000000000000000000020440141033be391d351cbd747235dd0dd8925385fcbdaf63ca3ce8096a77f70ba0000000000000001000000000000000100000000000000202078c498345e40f2793827c70bdd0c1453f14d69ba33fc6a8c8d31743022cf74000000000000000100000000000000000000000000000020e970c37741ec44d7f6bb7a660fdaee60389e7914a07ab9464ce775e56f179a610000000000000054000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000010000000000000020bb5840b7a1b74f62bf274503506ad5438c0bc38e0c13ac476a270efd5f90e55d000000000000000100000000000000010000000000000020820cb12153954ed792168965679b90767ca6c7b93ae2a29fe9a015e858cbf22d0000000000000001000000000000000000000000000000206c2f42e175bc59959c539065448f0c9c2f330f12deb5a78d2b4137394d93105c000000000000000100000000000000010000000000000020a0b86bb2b9ed1d88c1716ee2897d7e5305051401751e458c39f027a27ad7553f0000000000000001000000000000000000000000000000204d271360d6ea5729d441a303230c4b3fd940e15129f6f043ffe200fe1412df3c000000000000000100000000000000010000000000000020e231ce722ab14c17f283bb99b859081ec782def3c7aeba236db5db98af78145b0000000000000001000000000000000000000000000000202e3213f0f94066d410cc001dd9f1dcf97793d5d1d126ad43329a8c9587113b2300000000000000540000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000000000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000005400000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b868640000000000000007000000000000000100000000000000010000000000000020705c7d5f29f20eaf325fade3eaec97d01a160b62fc9ae3d811fd5929116fe475000000000000000100000000000000010000000000000020977da01180c75be39459fed4961409c222ea5ecebd9175c4f239bad9eab446fb000000000000000100000000000000000000000000000020b4a82e404c0d3051551a338ff9c4d142925ceb91c02f22466560b77b3b7c8ef600000000000000010000000000000001000000000000002051db9e18acb024639c6d1c6e33aea673be61c3065471e467357b0d2c77bd2d150000000000000001000000000000000000000000000000202a919df14ce5514b57e6eb9a7f6b25d9178d9241708e72a76970cd595d0ec4370000000000000001000000000000000100000000000000208a36bc7a0b21cde4d5a39d220aa8982b3b727a22e15308c3ed8e5a6ccba654b7000000000000000100000000000000000000000000000020c2373acd9e43392c84b483f993c3e9f2259f83ad4ab88d7b8236af1afb2dde97000000000000001e0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020354be51518ac0dd91f26219f17e44719a158cf4fdd100c3f919a3981f113149f000000000000000100000000000000000000000000000020706cc8ac5e50d226053688830a31a7963f67b7a499e16df101a87cea86c1aeed0000000000000001000000000000000000000000000000208d2e2729a32aca8b2598698736e9fb6648f7a570764827ae42629ee8e0b363c40000000000000001000000000000000000000000000000208c23ceb38bdfeb620de2d6414912490a34ad95503da09b70a73e57ca9658817b00000000000000010000000000000000000000000000002067b848c6a8fd93922564ee17c6101e314bbd3846fcea2a0a759b6e14ee53062a000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d000000000000001e000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000100000000000000208ed4ca977c2167441b7cb04831df3ba03526c5d424958138c146503c57800fd100000000000000010000000000000000000000000000002069aa7cd5e7cdb89fd78a6dd640e079eaedaa0682d6b8fc2001514dedf61a381f0000000000000001000000000000000000000000000000202556fe526824a8a26854d8a628546f1d11f4f769eaba5f9e50313c2ef40b6ac4000000000000000100000000000000000000000000000020470c7d58bd807351d8c0392710e22aa86ff411e42398f3719c76ffa4b8e767ed00000000000000010000000000000000000000000000002081a27a248db0076bc7a7f51b5ccf3cf5b9e1c7455e27068c417e64832913ff410000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de000000000000001e0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000001e00000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b868640000000000000007000000000000000100000000000000010000000000000020fd5dbf2000054fb68d2aa2990ce5fd22bed6f3dc05f6e9dea6849ad605d4982000000000000000010000000000000000000000000000002050276d31c82e273e0901b23103bf4ba2a27d1c95c64fc431fe49aaeb14c2d3180000000000000001000000000000000000000000000000209f47744fb15546f73a4e679754b45dceed245abbc33eb5862b85b6b400a67d83000000000000000100000000000000000000000000000020475cad41419c208faffd1efcd00935b2a82e660bd30f5223d3c70d1c09e78a660000000000000001000000000000000000000000000000201f9e8255ea645ed6dac4dbd6d7f94bc08f5c7221a6c23f62f70ad185c154b4a80000000000000001000000000000000100000000000000209612f8ccc3d773d4654e0ff003cfebf4d2472a2ce0e99df1b061fe6cdbe42b0a0000000000000001000000000000000100000000000000201b1209df24fc035a2c9a10f8fa4a257b162a0fa319c7fe99195373ca0c28dd7400000000000000170000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000000000000000000020be83654dd5cd7a88a27b5cfa09782831fbc365eddb2daa2ff542587999916d4f000000000000000100000000000000000000000000000020a02a6e0ca0e6da26d12a40de1ecaecc8c54a4a02ae4013e997a6266c39ee2d64000000000000000100000000000000000000000000000020236a87f0094607aef55b5855bcf5d40e5a4d31eb60bcf52103d540e1255750fd000000000000000100000000000000010000000000000020e2acecbe8619d7478dee57fcb82511df4fa4f1bdb2d5253db0ff26c50b7344b300000000000000010000000000000000000000000000002067b848c6a8fd93922564ee17c6101e314bbd3846fcea2a0a759b6e14ee53062a000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d0000000000000017000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d000000000000000070000000000000001000000000000000000000000000000206eb3202475484b8a5f03e7a5942ff542a04b2a0e85ffb8b1ac313bf1d5912fd0000000000000000100000000000000000000000000000020fba19ae29a6b891fd2f7c5c35423245aeea2e18c6ca57ef3f6b76c07374f2c15000000000000000100000000000000000000000000000020b6825f551393ddf40c3d0d57b2c88b4047463cc27d41309df512b8de3748521600000000000000010000000000000001000000000000002022828921a6b0f0bee2649772e95581d881e7c8e59ac79244530985451478d83800000000000000010000000000000000000000000000002081a27a248db0076bc7a7f51b5ccf3cf5b9e1c7455e27068c417e64832913ff410000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de00000000000000170000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000100000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000001700000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b86864000000000000000700000000000000010000000000000000000000000000002093e349c1c6ad9f4148382b4b7d1da376d4d33320f0e8a546c60b363e85341fcd000000000000000100000000000000000000000000000020dcc292348ffaa2374842c930b27f83e226fd755fa4f2461119d8ff800437715600000000000000010000000000000000000000000000002015efc2b3df07a916f42125652366222810c06a316b67cd86a476859ec50b32e400000000000000010000000000000001000000000000002086140aa1aeeb29951884301e2b42e87686485bd984b7d346ddd36d29e2ccc64a0000000000000001000000000000000000000000000000201f9e8255ea645ed6dac4dbd6d7f94bc08f5c7221a6c23f62f70ad185c154b4a80000000000000001000000000000000100000000000000209612f8ccc3d773d4654e0ff003cfebf4d2472a2ce0e99df1b061fe6cdbe42b0a0000000000000001000000000000000100000000000000201b1209df24fc035a2c9a10f8fa4a257b162a0fa319c7fe99195373ca0c28dd74000000000000001f0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a440703000000000000000700000000000000010000000000000000000000000000002004a5645a7e16572b82bf7bf97cead97d0ec9b551b7c27a70dd1dca2cbb7a5326000000000000000100000000000000000000000000000020706cc8ac5e50d226053688830a31a7963f67b7a499e16df101a87cea86c1aeed0000000000000001000000000000000000000000000000208d2e2729a32aca8b2598698736e9fb6648f7a570764827ae42629ee8e0b363c40000000000000001000000000000000000000000000000208c23ceb38bdfeb620de2d6414912490a34ad95503da09b70a73e57ca9658817b00000000000000010000000000000000000000000000002067b848c6a8fd93922564ee17c6101e314bbd3846fcea2a0a759b6e14ee53062a000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d000000000000001f000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d00000000000000007000000000000000100000000000000000000000000000020b573713518140f56ed4a1352101ae04e6e17105f32b487d529b31a9436df56f300000000000000010000000000000000000000000000002069aa7cd5e7cdb89fd78a6dd640e079eaedaa0682d6b8fc2001514dedf61a381f0000000000000001000000000000000000000000000000202556fe526824a8a26854d8a628546f1d11f4f769eaba5f9e50313c2ef40b6ac4000000000000000100000000000000000000000000000020470c7d58bd807351d8c0392710e22aa86ff411e42398f3719c76ffa4b8e767ed00000000000000010000000000000000000000000000002081a27a248db0076bc7a7f51b5ccf3cf5b9e1c7455e27068c417e64832913ff410000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de000000000000001f0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000000000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000001f00000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b868640000000000000007000000000000000100000000000000000000000000000020e242dddfae8e72a3b72fe0c4795c1ad98c8fa187f8b215940dc455226d91badf00000000000000010000000000000000000000000000002050276d31c82e273e0901b23103bf4ba2a27d1c95c64fc431fe49aaeb14c2d3180000000000000001000000000000000000000000000000209f47744fb15546f73a4e679754b45dceed245abbc33eb5862b85b6b400a67d83000000000000000100000000000000000000000000000020475cad41419c208faffd1efcd00935b2a82e660bd30f5223d3c70d1c09e78a660000000000000001000000000000000000000000000000201f9e8255ea645ed6dac4dbd6d7f94bc08f5c7221a6c23f62f70ad185c154b4a80000000000000001000000000000000100000000000000209612f8ccc3d773d4654e0ff003cfebf4d2472a2ce0e99df1b061fe6cdbe42b0a0000000000000001000000000000000100000000000000201b1209df24fc035a2c9a10f8fa4a257b162a0fa319c7fe99195373ca0c28dd74000000000000001a0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a4407030000000000000007000000000000000100000000000000010000000000000020ca0dbef3e95b581e5b9cfdefbe9025cfa08c7604dc04c5855dad14cacb178a0e0000000000000001000000000000000000000000000000202f79641d9c0a7238e695300b36fa1c5be4867aaf5047e715b0ab5ce5a4c9a1ef000000000000000100000000000000010000000000000020b19c107e100ede570d154889a6c02538ece94377272412924433c14033b82edb0000000000000001000000000000000000000000000000208c23ceb38bdfeb620de2d6414912490a34ad95503da09b70a73e57ca9658817b00000000000000010000000000000000000000000000002067b848c6a8fd93922564ee17c6101e314bbd3846fcea2a0a759b6e14ee53062a000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d000000000000001a000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000001000000000000002068f33381ba67c64e677ce00a04392cac412620297a4b432774de25b4007520360000000000000001000000000000000000000000000000206de41ae63863e4dcf765564dd0dfbcc8cfec4ff8f79ca1ef7f4bd578c9b90ab60000000000000001000000000000000100000000000000206fbb63d499e0b1b5c50bb34cc0627d36caeab3783e498fb870f0d059a71cad20000000000000000100000000000000000000000000000020470c7d58bd807351d8c0392710e22aa86ff411e42398f3719c76ffa4b8e767ed00000000000000010000000000000000000000000000002081a27a248db0076bc7a7f51b5ccf3cf5b9e1c7455e27068c417e64832913ff410000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de000000000000001a0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000000000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000010000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000000000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000001a00000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b868640000000000000007000000000000000100000000000000010000000000000020e5c102db5392ee04b3360bac316ae72779c12fc8dac8ce7964118c01a217550300000000000000010000000000000000000000000000002051bb888cb39b3df7a847e26194d635bdc80de0ed878d45493bdb0fee9d794576000000000000000100000000000000010000000000000020239a46dbf277baafe52f53464283343e42f543bd83bb7dc8d1dd1315f876005d000000000000000100000000000000000000000000000020475cad41419c208faffd1efcd00935b2a82e660bd30f5223d3c70d1c09e78a660000000000000001000000000000000000000000000000201f9e8255ea645ed6dac4dbd6d7f94bc08f5c7221a6c23f62f70ad185c154b4a80000000000000001000000000000000100000000000000209612f8ccc3d773d4654e0ff003cfebf4d2472a2ce0e99df1b061fe6cdbe42b0a0000000000000001000000000000000100000000000000201b1209df24fc035a2c9a10f8fa4a257b162a0fa319c7fe99195373ca0c28dd74000000000000000c0000000000000020f347e1a5c5bec69f49b12f482b4eb2ba2687d9270cb998f29ba4ead18a44070300000000000000070000000000000001000000000000000100000000000000206930a5f9ea4d52e17a1c3dd55cbf7c35474dfd3483718902410c439dd6694c640000000000000001000000000000000100000000000000207f083025d7b5e20a3e96dbdb4f9f90b3702807776e2b2f53ab95311f3f7c3a9f000000000000000100000000000000000000000000000020e5744ea7917af5a15f1aa03739836609a2e30d754ad8e74253c5d416ce47902100000000000000010000000000000000000000000000002074c92898599a40af39cc7a4aa694631d7e51488babfa65b017e19bd852de297900000000000000010000000000000001000000000000002056e5e7ca74faee51ae45c7001256fed2e7e080dcb95a859867c22dcb1608665f000000000000000100000000000000010000000000000020fdadf4722339d8141ce1734688219c5f74e10f50b00539056a67ce2548de0ea9000000000000000100000000000000010000000000000020abf64a454a1aaa9dc4e06b86002c621451287f916407499098b84d335388ea1d000000000000000c000000000000002098a1232e7138714283381c3354e9c2bd4d33ebe6c0d8009e823308eb609084d0000000000000000700000000000000010000000000000001000000000000002093289367b31a97a2928a2f8e9e97c81bec79c1ed15af4738eb8f5db23b67455f00000000000000010000000000000001000000000000002056b2509eded6bd717e4ce53f680b40ab0a6c36b9fb7645d5ab33e0dbab72ba200000000000000001000000000000000000000000000000204f17285237eba98af78b80bd5e8de5f5a53fe8a071411b6c6e4d4c36f536e1330000000000000001000000000000000000000000000000208f3d18cc0b0da6433287a04f00ac88b64a41656e27ea9ddc94e4472173bebea600000000000000010000000000000001000000000000002099796d2366d350a09cad2698ab80419a6869a2524f9cfcc2eb3055449273a24a0000000000000001000000000000000100000000000000201d7686b1048a9d7100702c25ca2734a02205d608c3afeafb3275f01e8ccfa0420000000000000001000000000000000100000000000000200750aa8849b6903eb8c1c553e91c0b92da06f15b40fe0e4e56ea1e6659ee64de000000000000000c0000000000000020a9460230e5193e83d967512cc12279bc0317812e4236b1780631e0cb577f29b00000000000000007000000000000000100000000000000010000000000000020cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f000000000000000100000000000000010000000000000020b2b21799d127b293c62e02a8be38f25fd37326268c6093eee2b28e94cd7be124000000000000000100000000000000000000000000000020bba21d351206562028d9e8ce383d33041f68d468ec829dc93335b549d4771efb0000000000000001000000000000000000000000000000208165fdfd395528523b2517a93b1132df1aa545b6420d83cb31530c5a319ee7f30000000000000001000000000000000100000000000000201c1a2ecf2ea1c75426d2f1abb56d3cbef980b50e7d8b11b7db430bbbfead645c000000000000000100000000000000010000000000000020400db23ff4b8f4e9ec9a90f22a11799efc55b6f1dd13439c76af0bcb348b5f790000000000000001000000000000000100000000000000207431a85b309497f0dec9f8e1568c8a146f5e761125bee485d9bb2f3905e2f6be000000000000000c00000000000000202b0ba717019fd8819f2b9a10133a1bd45fb14f9ed5706e57e54ab76a85b86864000000000000000700000000000000010000000000000001000000000000002035d2d1e8a517e4ad0beff9d025795e47120269ad35afccdcc8f7b6b6ddb9f57b00000000000000010000000000000001000000000000002028c63b2e8b8f0feba668214e4781978e3156c27ce6450fef5ce5b0485951c164000000000000000100000000000000000000000000000020db3cef5e7ca6ac584217ed4415cda60573719fa053e5379b12cf4e13db34d8170000000000000001000000000000000000000000000000200a811c67215d2836baae6caa0f504bbfcfbc0dde40ac3cdb17a78f196390ece2000000000000000100000000000000010000000000000020e37459f4af5b5707d5514ce01420f09564ba84b8869477082c7888c4e5c8acb40000000000000001000000000000000100000000000000209612f8ccc3d773d4654e0ff003cfebf4d2472a2ce0e99df1b061fe6cdbe42b0a0000000000000001000000000000000100000000000000201b1209df24fc035a2c9a10f8fa4a257b162a0fa319c7fe99195373ca0c28dd740000000000000078000000000000007f0000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e6300000000000000070000000000000001000000000000000000000000000000207a3fd5b6cbd489a63d5f3dbd95c3449fddd1dcfb44d545c4b168816e2104d1410000000000000001000000000000000000000000000000209a710e8ee5d06d99f70d7bc59f66237ff85c047c67c75715818f8e063f9cc08200000000000000010000000000000000000000000000002068af6f2f654d8175393a4e2296ca5da29c4ecdce2e5b1d0b4d5c1c76c0f46223000000000000000100000000000000000000000000000020d9b8d5ec67254b42678ab91739e07b1ddcd23647902b76537c5f5b68b6b53be7000000000000000100000000000000000000000000000020ff0e61f4a21c645f0a5fc8fc1d6204e2b2befec15e74ee679959788e62c2b7220000000000000001000000000000000000000000000000203f11b2fdafe389d4b4fba99881e3cf8e613dd21e28861c021036836c21d90e240000000000000001000000000000000000000000000000208cd694b74ce1af9846da9590068d85c983646f7a712ec8ce838b5751ff39da7e000000000000003f00000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d487000000000000000600000000000000010000000000000000000000000000002051a280cf5323746430a83b983c8ae27456adc35ab32c06202b9ed6076bfdbd540000000000000001000000000000000000000000000000209ac47f0db306fce2bf48e3a36a61ba34d40f847b8538f926c732b1e84c6d56ea00000000000000010000000000000000000000000000002087ddb794b71304c7adada2bc3591f9cc037724ece83a65fdd8e1020925b9957c000000000000000100000000000000000000000000000020278cc806407a74ae434d1b1dff34326b54f20a3de6ad3df2d2448c7346240da700000000000000010000000000000000000000000000002039ead5b3ef03500baddf8be78b748f4ba57eeb8c385a3365cdae3ce2216dc965000000000000000100000000000000000000000000000020e1dffbeb542db104ce196a3d292995512e151764a713dfae161524e42791443b000000000000001f000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c00000000000000050000000000000001000000000000000000000000000000203d459898e5917fe5627848ee6da9448d8b05360947d45e408293e71f0c38578f00000000000000010000000000000000000000000000002041f935ee7b8e9d4e4c37487dbeefbea7b5a747f4dd17ce3b3d48d14596b4e72e000000000000000100000000000000000000000000000020929d0189eb8b3e306cd93f3be03855fe5bd6e6618a882ced8479cadca3ef7fc400000000000000010000000000000000000000000000002019437050708dd830be222646c89d46c2eb36070ff99c92acce71ffd5b0b44384000000000000000100000000000000000000000000000020be2083ebcb8e5eb87e562bf062e6d215cfaa4997eac6f483f15c4fd871ecad0600000000000000400000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e630000000000000007000000000000000100000000000000010000000000000020e668edc7ac41d983f74008271cdb4d79f7c3cdf513cdb1feca01156ba65c6971000000000000000100000000000000010000000000000020f96f5fe97740ed4d0ac78bd6ee6de02f50b02a2869e6b3960d738a88f2cf11e80000000000000001000000000000000100000000000000207cea880a0a8bda0eba998f9db419725855015589b371edd989dbe4f2703e66fd000000000000000100000000000000010000000000000020c834ecb1c39055e35872e8d68d01a84d3fe36a451d1bd01030847bdbc188a8100000000000000001000000000000000100000000000000205d020dd197cd8bc8d2a700f7b64d0ee052f49e38a4b57340dac8626609704eb3000000000000000100000000000000010000000000000020f7b2ca4db943ce00bdc52efca23a7b276b14e2f07b8f59b903ce1f04538c30650000000000000001000000000000000000000000000000208cd694b74ce1af9846da9590068d85c983646f7a712ec8ce838b5751ff39da7e000000000000000000000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d4870000000000000006000000000000000100000000000000010000000000000020155b886d0681f186484801cf7b590bcf69bd7fa3e92f3676a253b4488bd372ee000000000000000100000000000000010000000000000020a11a50c4af6d78737792b97fb191f5d2692ccaf74776880c18e54137175dfb090000000000000001000000000000000100000000000000208426f227fd3e4328478afa6bfa8c45d6edaa61863be34324fb04ca8d95cd6c51000000000000000100000000000000010000000000000020b1c0755d20ab702b866cc8ac512368f4ce980380c6f5d7eb40b89839ba4b796600000000000000010000000000000001000000000000002006fce0ce3069ee6294018d140a01041f6b9e176142ef829c02e133dfe9b2de34000000000000000100000000000000010000000000000020fff772654f3af7c8f9c95d786737ebccc3ae1e9ae47307a5594181b3b08695ff0000000000000000000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c00000000000000050000000000000001000000000000000100000000000000204efb9415ee3c2dd215aa767e9a0862fc668ccdfbe84133e79c06fc777a26149b0000000000000001000000000000000100000000000000203012b53125bec6acf9ddb8021520d7e8b05fbd920c3f27437f3043180efe2bca0000000000000001000000000000000100000000000000207f6a4fb33bf8bfff5e59e759184fee41613d7717ee0492c3ad6399d0722993830000000000000001000000000000000100000000000000206d40fa545d5914d0673b52a7c1b477cd46d585972da343cacc3892f3bbfa7923000000000000000100000000000000010000000000000020e5d3c6a76342fcad913e816a80c0ef42f59c71a5881bb0b5b21cb0d97dc46479000000000000007a0000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e630000000000000007000000000000000100000000000000010000000000000020deb6076e49b4fc6e6a34a06fa058a9fc133c39f69724ac5417e08d696ab29642000000000000000100000000000000000000000000000020dd37c618dfd92b3c41049f2e0dc4d8a18bc3ea3bdc0dc63c4772b9954c439d730000000000000001000000000000000100000000000000204d948ee02f121541df5adbc84ffca22dbbbb38600235df9941a2f20ab5c96df3000000000000000100000000000000000000000000000020d9b8d5ec67254b42678ab91739e07b1ddcd23647902b76537c5f5b68b6b53be7000000000000000100000000000000000000000000000020ff0e61f4a21c645f0a5fc8fc1d6204e2b2befec15e74ee679959788e62c2b7220000000000000001000000000000000000000000000000203f11b2fdafe389d4b4fba99881e3cf8e613dd21e28861c021036836c21d90e240000000000000001000000000000000000000000000000208cd694b74ce1af9846da9590068d85c983646f7a712ec8ce838b5751ff39da7e000000000000003a00000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d48700000000000000060000000000000001000000000000000100000000000000205d6beb5f08c9ef8bd9359bd224406206b660b1fed3f616221fd6c21a5895c30500000000000000010000000000000000000000000000002092b0a7d54412ecb194281235cf7896f354655403bb6cf7d6ad7e4d14335856a0000000000000000100000000000000010000000000000020f8199fc40a1a0c9db7b80b75095eeab687bfbb6e6550e93657ee6f2d4ae3d86d000000000000000100000000000000000000000000000020278cc806407a74ae434d1b1dff34326b54f20a3de6ad3df2d2448c7346240da700000000000000010000000000000000000000000000002039ead5b3ef03500baddf8be78b748f4ba57eeb8c385a3365cdae3ce2216dc965000000000000000100000000000000000000000000000020e1dffbeb542db104ce196a3d292995512e151764a713dfae161524e42791443b000000000000001a000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c0000000000000005000000000000000100000000000000010000000000000020eea1b50ec40a1d88c2995fadbcd9f72a382913df10f4333fcb9be71e194fe87600000000000000010000000000000000000000000000002008f60556d73bb163220ae34d041b7dbe7733e8f9227c3af0a177a00b4b742bed000000000000000100000000000000010000000000000020c9de92c70724f2fa66cdd10cb0c2b9e1cc33e37ec8233a5650e23f84148402e000000000000000010000000000000000000000000000002019437050708dd830be222646c89d46c2eb36070ff99c92acce71ffd5b0b44384000000000000000100000000000000000000000000000020be2083ebcb8e5eb87e562bf062e6d215cfaa4997eac6f483f15c4fd871ecad06000000000000006d0000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e630000000000000007000000000000000100000000000000000000000000000020d26ec6807018b2644d35a8792ca7706ec515082274f63f9193f84f274aa59e09000000000000000100000000000000010000000000000020c7eb03cecc37c8f6051116d6956623fcc836ee8a367bd52436d1b1e584ca7f57000000000000000100000000000000000000000000000020e94429f8742ecea1d8baafd0a9e5ba1f9391b38feb3aceebab08baf65e26f0450000000000000001000000000000000000000000000000201fe41c7c2aa462598d402faec6fb9cd0bd2fcc35d1ce562c8cf3f7f8ad4588cc0000000000000001000000000000000100000000000000203981922e553fc8e354731be6bd375b1785364b2e2476151e7154d94fce95b2110000000000000001000000000000000000000000000000203f11b2fdafe389d4b4fba99881e3cf8e613dd21e28861c021036836c21d90e240000000000000001000000000000000000000000000000208cd694b74ce1af9846da9590068d85c983646f7a712ec8ce838b5751ff39da7e000000000000002d00000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d487000000000000000600000000000000010000000000000000000000000000002024151db8d38cf3038774b9dd8ff5ce28aac63f36853e52f4bd9b3ad89bac25e20000000000000001000000000000000100000000000000209c353e38dff86e8d057ad81e0d879a01a1b93cd7e16c03abd6c57147b8758047000000000000000100000000000000000000000000000020a5a3a78d21fabb4c098c133a0e4cf00d903bbad62c9c916d47a3b6ebfdca2f680000000000000001000000000000000000000000000000209df67d6696a217d379788a570014872e39da29c1a327fbd7754c8f2bdf33ee0e00000000000000010000000000000001000000000000002039c7bbacb3b195fd96b8f1dcbf563bc14598dc6decf19beca1354343c60c51ce000000000000000100000000000000000000000000000020e1dffbeb542db104ce196a3d292995512e151764a713dfae161524e42791443b000000000000000d000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c0000000000000005000000000000000100000000000000000000000000000020501fa6430ac62046f86a46e9a646835b2004327218ea12dcc685e77c14094ee6000000000000000100000000000000010000000000000020f12525946b31c3188fc50cee9b7544de3bf4b598d9b9e0dd535b10a78d0bb27b000000000000000100000000000000000000000000000020644e758401b5e0e7263e1ceadaa1172bbfbec88158f44db196a188aacda03e6600000000000000010000000000000000000000000000002085c13800d5031086d1af1e59d5969748b38b9482fe9db3f8607940e29d5568b3000000000000000100000000000000010000000000000020e5d3c6a76342fcad913e816a80c0ef42f59c71a5881bb0b5b21cb0d97dc46479000000000000006c0000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e630000000000000007000000000000000100000000000000010000000000000020a3c98d2dffd099463c220ed7acfc6ee3a34c7054883954f13509a31bd0cd9703000000000000000100000000000000010000000000000020c7eb03cecc37c8f6051116d6956623fcc836ee8a367bd52436d1b1e584ca7f57000000000000000100000000000000000000000000000020e94429f8742ecea1d8baafd0a9e5ba1f9391b38feb3aceebab08baf65e26f0450000000000000001000000000000000000000000000000201fe41c7c2aa462598d402faec6fb9cd0bd2fcc35d1ce562c8cf3f7f8ad4588cc0000000000000001000000000000000100000000000000203981922e553fc8e354731be6bd375b1785364b2e2476151e7154d94fce95b2110000000000000001000000000000000000000000000000203f11b2fdafe389d4b4fba99881e3cf8e613dd21e28861c021036836c21d90e240000000000000001000000000000000000000000000000208cd694b74ce1af9846da9590068d85c983646f7a712ec8ce838b5751ff39da7e000000000000002c00000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d48700000000000000060000000000000001000000000000000100000000000000205f2cdaec8ebf35dc3816253bcce976a50b20abd939447a39f0093d65366334bc0000000000000001000000000000000100000000000000209c353e38dff86e8d057ad81e0d879a01a1b93cd7e16c03abd6c57147b8758047000000000000000100000000000000000000000000000020a5a3a78d21fabb4c098c133a0e4cf00d903bbad62c9c916d47a3b6ebfdca2f680000000000000001000000000000000000000000000000209df67d6696a217d379788a570014872e39da29c1a327fbd7754c8f2bdf33ee0e00000000000000010000000000000001000000000000002039c7bbacb3b195fd96b8f1dcbf563bc14598dc6decf19beca1354343c60c51ce000000000000000100000000000000000000000000000020e1dffbeb542db104ce196a3d292995512e151764a713dfae161524e42791443b000000000000000c000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c00000000000000050000000000000001000000000000000100000000000000209f7120f23a7dc936ece89768acd7a10948b7f8e3a3c79e9d7cf32e35b63c0388000000000000000100000000000000010000000000000020f12525946b31c3188fc50cee9b7544de3bf4b598d9b9e0dd535b10a78d0bb27b000000000000000100000000000000000000000000000020644e758401b5e0e7263e1ceadaa1172bbfbec88158f44db196a188aacda03e6600000000000000010000000000000000000000000000002085c13800d5031086d1af1e59d5969748b38b9482fe9db3f8607940e29d5568b3000000000000000100000000000000010000000000000020e5d3c6a76342fcad913e816a80c0ef42f59c71a5881bb0b5b21cb0d97dc4647900000000000000180000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e6300000000000000070000000000000001000000000000000100000000000000205add4d19a832bf2e6532263a22967f8adc3a314d36cb356de5cacdc7bdd213ae0000000000000001000000000000000100000000000000202615b226d279a3efa6d40bdc8fdbf31c4de995a81cf0dfc1e3b243bf29ae3878000000000000000100000000000000010000000000000020360de1e1fe41da256567e19a623d1143bf34f8300179317f0ee23637a1496984000000000000000100000000000000000000000000000020fe36a11a026c432e51bf4e8eb77ee04bbc9dff00ae0bc5d532be95b91d484e860000000000000001000000000000000000000000000000205557e212321aacbd26740638259e16cc5103b3432956c5bb69ad2b6e2503392a0000000000000001000000000000000100000000000000209e3bb8ee3ce9ff666177b27136fed42cb363c7cabe90e5215830e9c88727e55c0000000000000001000000000000000100000000000000205a63b79d9bdc6f6ef6fa02370ddf7cd533cf9028f080c1b673f8c0c8a7756d3e000000000000001800000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d48700000000000000060000000000000001000000000000000100000000000000200430c08d5ea73aacfb2dc0646a7034c5893caeee51dc7f321b3a9496cd8814640000000000000001000000000000000100000000000000207c648cf1d135f3ddef05d9ba19a07d84ca375dc645200396b259b2d3216d1773000000000000000100000000000000010000000000000020a406da53348c4c7e0239eb6a2fc7fdb8e52304f542b526606966b0a389120188000000000000000100000000000000000000000000000020419f3dc9d443c3df07838567fe3d290c6219bd356f3f46dba8090b9d8565cffc0000000000000001000000000000000000000000000000209dedd3c8d9111eaae6e346a23db97436b0f402a56e62edef9a21f054f1fd2b45000000000000000100000000000000010000000000000020fff772654f3af7c8f9c95d786737ebccc3ae1e9ae47307a5594181b3b08695ff0000000000000018000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c00000000000000050000000000000001000000000000000100000000000000204e743d46febadc18130d98508dfd6edfd26db2b05ff5d5429fbbbe31acf2fc2300000000000000010000000000000001000000000000002027130d104091b47b17eea77d851efd86ce50a5c4cf8bbb944c20516c8b08e0bd000000000000000100000000000000010000000000000020c9de92c70724f2fa66cdd10cb0c2b9e1cc33e37ec8233a5650e23f84148402e000000000000000010000000000000000000000000000002019437050708dd830be222646c89d46c2eb36070ff99c92acce71ffd5b0b44384000000000000000100000000000000000000000000000020be2083ebcb8e5eb87e562bf062e6d215cfaa4997eac6f483f15c4fd871ecad06000000000000005c0000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e630000000000000007000000000000000100000000000000010000000000000020474416b31e937b0f731c62dc9055a992b6997ff7f888f52fddbc8b7fa8208a0c00000000000000010000000000000001000000000000002038b1c75543428992f499c63c0f64a2962657c6532a4d8009908c01d2ac6078810000000000000001000000000000000000000000000000207d4963b5724ebf61b258f4970661899221da919a12138a2998c0ab92d4aea935000000000000000100000000000000000000000000000020a9662c874be7945649b98b9c81f465a508fe14539573b8c3fec3f2d611bf1e7c000000000000000100000000000000000000000000000020de6926c2b2c79f2370d45818ff9eb4d4547065c9f10f31f9416413a9a91e1b68000000000000000100000000000000010000000000000020f7b2ca4db943ce00bdc52efca23a7b276b14e2f07b8f59b903ce1f04538c30650000000000000001000000000000000000000000000000208cd694b74ce1af9846da9590068d85c983646f7a712ec8ce838b5751ff39da7e000000000000001c00000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d48700000000000000060000000000000001000000000000000100000000000000201634c0f0337a12534f7a2b46e7f0c13d65c6d66882e2ce2ebf8f4da0eb0fa69d000000000000000100000000000000010000000000000020053fead031d6f530ead877c5775adf9f092d11b293da5580c027ccd0b0238273000000000000000100000000000000000000000000000020eef772e834ab948f74fe439b2765a904f6737992cd2a6c66e5b0a2076e78a0bf000000000000000100000000000000000000000000000020419f3dc9d443c3df07838567fe3d290c6219bd356f3f46dba8090b9d8565cffc0000000000000001000000000000000000000000000000209dedd3c8d9111eaae6e346a23db97436b0f402a56e62edef9a21f054f1fd2b45000000000000000100000000000000010000000000000020fff772654f3af7c8f9c95d786737ebccc3ae1e9ae47307a5594181b3b08695ff000000000000001c000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c00000000000000050000000000000001000000000000000100000000000000208acaef2a5a512f2b783ce1db962701cf184ebb814600da20c7c0dde465b78e8e0000000000000001000000000000000100000000000000208d8faa056ddb0662b9699b4244eccc38910a8e83ed97e5d0d9a0a68b62c60226000000000000000100000000000000000000000000000020929d0189eb8b3e306cd93f3be03855fe5bd6e6618a882ced8479cadca3ef7fc400000000000000010000000000000000000000000000002019437050708dd830be222646c89d46c2eb36070ff99c92acce71ffd5b0b44384000000000000000100000000000000000000000000000020be2083ebcb8e5eb87e562bf062e6d215cfaa4997eac6f483f15c4fd871ecad06000000000000002a0000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e6300000000000000070000000000000001000000000000000100000000000000207207273d284705d93208e79f3ac21f931634cd1ede43287b529e2ad8459f80a9000000000000000100000000000000000000000000000020725b2720a04f60dd54ed2b38f3beeb986fe2d3ce28d4181b55846c0ed176c85e0000000000000001000000000000000100000000000000200fc14509d562c9f75e5e1a937da3e8f0f41140501a4b71d85a2dede96d6b5ccb00000000000000010000000000000000000000000000002098a42ef655f9e2b2020ef1d59bae4b378804e09b92201707c9bafe56215bb37d000000000000000100000000000000010000000000000020f8a086bacd0b41568194a8a5696422282191bb07bd68b5fc1884372d5a87e710000000000000000100000000000000000000000000000020cd6e61cf43694efd95cda323b25b2d4aaee54a194dbfb5a42b32da586bc1fa680000000000000001000000000000000100000000000000205a63b79d9bdc6f6ef6fa02370ddf7cd533cf9028f080c1b673f8c0c8a7756d3e000000000000002a00000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d4870000000000000006000000000000000100000000000000010000000000000020d8bcacbf15f3529ff7cbdbf71badf8c899af2cc07b53e74913d673199141fa470000000000000001000000000000000000000000000000208e35cb228a71a3da1d606e5e51d7126df395ab88e238a8655eeec47e4d30951e000000000000000100000000000000010000000000000020fdcfe324c22049dd7d8344f164cf4d2433ffb80a9020bef28383e88d2cf96d080000000000000001000000000000000000000000000000209df67d6696a217d379788a570014872e39da29c1a327fbd7754c8f2bdf33ee0e00000000000000010000000000000001000000000000002039c7bbacb3b195fd96b8f1dcbf563bc14598dc6decf19beca1354343c60c51ce000000000000000100000000000000000000000000000020e1dffbeb542db104ce196a3d292995512e151764a713dfae161524e42791443b000000000000000a000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c0000000000000005000000000000000100000000000000010000000000000020561aa2ba78d50edb75b74ab80d2bcb5553427f38f142ef99920981f7b6adc0b7000000000000000100000000000000000000000000000020d0974be052f14dec56f452df9ef263f9f7ef784c616e66e25f3c6283f358373800000000000000010000000000000001000000000000002072a19f5940dcf756c5399fb0515736767a580459dd186a47274ed1642b39c5c000000000000000010000000000000000000000000000002085c13800d5031086d1af1e59d5969748b38b9482fe9db3f8607940e29d5568b3000000000000000100000000000000010000000000000020e5d3c6a76342fcad913e816a80c0ef42f59c71a5881bb0b5b21cb0d97dc46479000000000000006f0000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e630000000000000007000000000000000100000000000000000000000000000020bfcda80dde4f4baeb9c987131ceb0e5e4ea174f7d8309d4e404423561f0e11d8000000000000000100000000000000000000000000000020823049c4e196ef320a2dab97f1f6b5c87823e90fe90fc54bc021d56e338bba96000000000000000100000000000000000000000000000020e94429f8742ecea1d8baafd0a9e5ba1f9391b38feb3aceebab08baf65e26f0450000000000000001000000000000000000000000000000201fe41c7c2aa462598d402faec6fb9cd0bd2fcc35d1ce562c8cf3f7f8ad4588cc0000000000000001000000000000000100000000000000203981922e553fc8e354731be6bd375b1785364b2e2476151e7154d94fce95b2110000000000000001000000000000000000000000000000203f11b2fdafe389d4b4fba99881e3cf8e613dd21e28861c021036836c21d90e240000000000000001000000000000000000000000000000208cd694b74ce1af9846da9590068d85c983646f7a712ec8ce838b5751ff39da7e000000000000002f00000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d487000000000000000600000000000000010000000000000000000000000000002071f2515674da8ee74a324ae5af5de23fc1d26e5911bc2fe1dc08607aac712eb10000000000000001000000000000000000000000000000203012119f6499bb8adbe11342961e20660dc88752a608cff867148e2ca4498402000000000000000100000000000000000000000000000020a5a3a78d21fabb4c098c133a0e4cf00d903bbad62c9c916d47a3b6ebfdca2f680000000000000001000000000000000000000000000000209df67d6696a217d379788a570014872e39da29c1a327fbd7754c8f2bdf33ee0e00000000000000010000000000000001000000000000002039c7bbacb3b195fd96b8f1dcbf563bc14598dc6decf19beca1354343c60c51ce000000000000000100000000000000000000000000000020e1dffbeb542db104ce196a3d292995512e151764a713dfae161524e42791443b000000000000000f000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c0000000000000005000000000000000100000000000000000000000000000020b9e5ab5aeb2b43e65e0c8693fc28386fb06a6c997f398a642c95f88df7741ed6000000000000000100000000000000000000000000000020ee4272859658c2d7124d91bc6a4803ed75d25c5923efdc417f76a407c217f10b000000000000000100000000000000000000000000000020644e758401b5e0e7263e1ceadaa1172bbfbec88158f44db196a188aacda03e6600000000000000010000000000000000000000000000002085c13800d5031086d1af1e59d5969748b38b9482fe9db3f8607940e29d5568b3000000000000000100000000000000010000000000000020e5d3c6a76342fcad913e816a80c0ef42f59c71a5881bb0b5b21cb0d97dc46479000000000000001c0000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e6300000000000000070000000000000001000000000000000100000000000000207588297841ea4adb3e9954686fc1e4327ad874b558dd494194b5452f0bd5c8b1000000000000000100000000000000010000000000000020b73a3f1172fad13086984b611f286b62f1bc115b44828766f282648a15c276bb0000000000000001000000000000000000000000000000201ee3c6a81e72922427fb7143300c4ba2e6b17afef0c34ec5dd487b43943a0543000000000000000100000000000000000000000000000020fe36a11a026c432e51bf4e8eb77ee04bbc9dff00ae0bc5d532be95b91d484e860000000000000001000000000000000000000000000000205557e212321aacbd26740638259e16cc5103b3432956c5bb69ad2b6e2503392a0000000000000001000000000000000100000000000000209e3bb8ee3ce9ff666177b27136fed42cb363c7cabe90e5215830e9c88727e55c0000000000000001000000000000000100000000000000205a63b79d9bdc6f6ef6fa02370ddf7cd533cf9028f080c1b673f8c0c8a7756d3e000000000000001c00000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d48700000000000000060000000000000001000000000000000100000000000000201634c0f0337a12534f7a2b46e7f0c13d65c6d66882e2ce2ebf8f4da0eb0fa69d000000000000000100000000000000010000000000000020053fead031d6f530ead877c5775adf9f092d11b293da5580c027ccd0b0238273000000000000000100000000000000000000000000000020eef772e834ab948f74fe439b2765a904f6737992cd2a6c66e5b0a2076e78a0bf000000000000000100000000000000000000000000000020419f3dc9d443c3df07838567fe3d290c6219bd356f3f46dba8090b9d8565cffc0000000000000001000000000000000000000000000000209dedd3c8d9111eaae6e346a23db97436b0f402a56e62edef9a21f054f1fd2b45000000000000000100000000000000010000000000000020fff772654f3af7c8f9c95d786737ebccc3ae1e9ae47307a5594181b3b08695ff000000000000001c000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c00000000000000050000000000000001000000000000000100000000000000208acaef2a5a512f2b783ce1db962701cf184ebb814600da20c7c0dde465b78e8e0000000000000001000000000000000100000000000000208d8faa056ddb0662b9699b4244eccc38910a8e83ed97e5d0d9a0a68b62c60226000000000000000100000000000000000000000000000020929d0189eb8b3e306cd93f3be03855fe5bd6e6618a882ced8479cadca3ef7fc400000000000000010000000000000000000000000000002019437050708dd830be222646c89d46c2eb36070ff99c92acce71ffd5b0b44384000000000000000100000000000000000000000000000020be2083ebcb8e5eb87e562bf062e6d215cfaa4997eac6f483f15c4fd871ecad0600000000000000560000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e630000000000000007000000000000000100000000000000010000000000000020cf2096b82487fd0b4ebf90013950dd889d72ba25c40b38873bbe55d444fc30af00000000000000010000000000000000000000000000002034b5b5a0c8c24b575aa3f74270b73cbc439cb880c751d9daa8af8c2350f83f76000000000000000100000000000000000000000000000020776b06a5acf790761f6240bf2c13f5d36e321443e8307f2636608749378b82df000000000000000100000000000000010000000000000020db0e023ec8d72c071ea8d995edc8f074b62fe7ea5d79f7f861578fc217f6c5b3000000000000000100000000000000000000000000000020de6926c2b2c79f2370d45818ff9eb4d4547065c9f10f31f9416413a9a91e1b68000000000000000100000000000000010000000000000020f7b2ca4db943ce00bdc52efca23a7b276b14e2f07b8f59b903ce1f04538c30650000000000000001000000000000000000000000000000208cd694b74ce1af9846da9590068d85c983646f7a712ec8ce838b5751ff39da7e000000000000001600000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d4870000000000000006000000000000000100000000000000010000000000000020bab814f583e5dff7def3c9bfa67fa93b4fa83624c3b778c61c6e3a7f9c5eb029000000000000000100000000000000000000000000000020fa8c57349cd8e988761c9bf04624f98d40aad1258694ef86a33a29ef41f3336a000000000000000100000000000000000000000000000020fb410790acd5fdbf89d24f2ede1d32c95e8336f3583010cf24f41e2ac1fb39d60000000000000001000000000000000100000000000000201d3aa2233b91add56e9b89574fd69e12e9d23dec9dc72db6e6d0fe8d1bcd3d910000000000000001000000000000000000000000000000209dedd3c8d9111eaae6e346a23db97436b0f402a56e62edef9a21f054f1fd2b45000000000000000100000000000000010000000000000020fff772654f3af7c8f9c95d786737ebccc3ae1e9ae47307a5594181b3b08695ff0000000000000016000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c0000000000000005000000000000000100000000000000010000000000000020a26e442aa35decbd11f2707b79df635527ea80561da9712b8afc6855a9a7fbef00000000000000010000000000000000000000000000002093c2f58026d47aa6bd82686021e20b129925139433f046168b00a8775db238be00000000000000010000000000000000000000000000002091a1a84e836796bff075a433deefbf7e25101832a3dfa8fe5085023a05c3bebe0000000000000001000000000000000100000000000000204416ff43eecbe10f2bf44eb13e02cf951c3da99d4488c99e7e0f7dd3d90cafce000000000000000100000000000000000000000000000020be2083ebcb8e5eb87e562bf062e6d215cfaa4997eac6f483f15c4fd871ecad06000000000000001e0000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e630000000000000007000000000000000100000000000000010000000000000020b15b870f5863ab3bd204dc8d6d479d1c04e4e43a62c3af50c8d64ebfb053ae52000000000000000100000000000000000000000000000020fffe67ddb49f969a2fcf113bd2e7a7440b2f0c3b23e494a0539d2b632d20c8050000000000000001000000000000000000000000000000201ee3c6a81e72922427fb7143300c4ba2e6b17afef0c34ec5dd487b43943a0543000000000000000100000000000000000000000000000020fe36a11a026c432e51bf4e8eb77ee04bbc9dff00ae0bc5d532be95b91d484e860000000000000001000000000000000000000000000000205557e212321aacbd26740638259e16cc5103b3432956c5bb69ad2b6e2503392a0000000000000001000000000000000100000000000000209e3bb8ee3ce9ff666177b27136fed42cb363c7cabe90e5215830e9c88727e55c0000000000000001000000000000000100000000000000205a63b79d9bdc6f6ef6fa02370ddf7cd533cf9028f080c1b673f8c0c8a7756d3e000000000000001e00000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d487000000000000000600000000000000010000000000000001000000000000002085a908a127f6b193f4ef9e5c74797bec786af9acedaf5d038e9451ec1c3d351f000000000000000100000000000000000000000000000020898fce017de36c56a496c2d075e9a3589b8a6c632cb9c88c17c616b9dedc60b8000000000000000100000000000000000000000000000020eef772e834ab948f74fe439b2765a904f6737992cd2a6c66e5b0a2076e78a0bf000000000000000100000000000000000000000000000020419f3dc9d443c3df07838567fe3d290c6219bd356f3f46dba8090b9d8565cffc0000000000000001000000000000000000000000000000209dedd3c8d9111eaae6e346a23db97436b0f402a56e62edef9a21f054f1fd2b45000000000000000100000000000000010000000000000020fff772654f3af7c8f9c95d786737ebccc3ae1e9ae47307a5594181b3b08695ff000000000000001e000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c00000000000000050000000000000001000000000000000100000000000000207aa6510bda4e0ecaebc65c79eb393e806122e5528076754acddcaf9ddc391e4d00000000000000010000000000000000000000000000002041f935ee7b8e9d4e4c37487dbeefbea7b5a747f4dd17ce3b3d48d14596b4e72e000000000000000100000000000000000000000000000020929d0189eb8b3e306cd93f3be03855fe5bd6e6618a882ced8479cadca3ef7fc400000000000000010000000000000000000000000000002019437050708dd830be222646c89d46c2eb36070ff99c92acce71ffd5b0b44384000000000000000100000000000000000000000000000020be2083ebcb8e5eb87e562bf062e6d215cfaa4997eac6f483f15c4fd871ecad0600000000000000720000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e6300000000000000070000000000000001000000000000000100000000000000208de8f620a5fc399b5ecc2d43ea902931f71f9ae447700c2535c6a6f115938cde000000000000000100000000000000000000000000000020de9f046f1aad750186b57c9cfeacfa4e57ba177d31a0724e326df1e60afc15920000000000000001000000000000000100000000000000205af0c30301c2cebde85b26134fb68923a872af8613b7ede4104a7f3786c2e399000000000000000100000000000000010000000000000020e64a0b1e5bfa3cc13b42f1c94f8b754ddbc1ac5c7410d9e82bea6b20ba17c12d000000000000000100000000000000000000000000000020ff0e61f4a21c645f0a5fc8fc1d6204e2b2befec15e74ee679959788e62c2b7220000000000000001000000000000000000000000000000203f11b2fdafe389d4b4fba99881e3cf8e613dd21e28861c021036836c21d90e240000000000000001000000000000000000000000000000208cd694b74ce1af9846da9590068d85c983646f7a712ec8ce838b5751ff39da7e000000000000003200000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d4870000000000000006000000000000000100000000000000010000000000000020869a859ad83c189942deb65c779868ea78a24f226849d17f6f7c75dc8094366d000000000000000100000000000000000000000000000020e5227b76320bb43e07aeca54708b074ddca560d8f5f10ba85577ff643ba11b48000000000000000100000000000000010000000000000020c8e48abe7707919d92a6c7ada60f64b5c9d5b1dc6b0c597a76fa4dde365b28790000000000000001000000000000000100000000000000204be907fa0033d260ddb828cd6bd1a2f16b4b7c8b78b9f3cb0f79a8c797e54c1100000000000000010000000000000000000000000000002039ead5b3ef03500baddf8be78b748f4ba57eeb8c385a3365cdae3ce2216dc965000000000000000100000000000000000000000000000020e1dffbeb542db104ce196a3d292995512e151764a713dfae161524e42791443b0000000000000012000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c000000000000000500000000000000010000000000000001000000000000002056c62ecc4d2213c21068a2cdd186922392f41def2d327df33699a445258e5a780000000000000001000000000000000000000000000000200f5dd7c1922948c1439777ed0b491d1fa487cb063021a98b2df0412b70d5c4670000000000000001000000000000000100000000000000200a020532b9330815e1b068025d04ffb8ead304a30c535e98e92b157bab1b99b00000000000000001000000000000000100000000000000204416ff43eecbe10f2bf44eb13e02cf951c3da99d4488c99e7e0f7dd3d90cafce000000000000000100000000000000000000000000000020be2083ebcb8e5eb87e562bf062e6d215cfaa4997eac6f483f15c4fd871ecad0600000000000000370000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e6300000000000000070000000000000001000000000000000000000000000000203b3a18526dbbfd1ff865d7a299b747bad14115f35e1ac09b2a3398204debab7d000000000000000100000000000000000000000000000020d2696bc36277658ec9e8e35ac799d2e6c06c9244e092fc7addc19e11033ad5190000000000000001000000000000000000000000000000200d1b3af869c8d78079cedd835e78f5bf042fe359c737649e31850d975c47955400000000000000010000000000000001000000000000002089ec037db050a177374eb9421ba4035962ad6c11985e3d3682c8a38d803cb8ee00000000000000010000000000000000000000000000002059b6d00a0f8faf8f5da1d200d318a515f3333f98ddf3acbfcb22f9d5e829d943000000000000000100000000000000000000000000000020cd6e61cf43694efd95cda323b25b2d4aaee54a194dbfb5a42b32da586bc1fa680000000000000001000000000000000100000000000000205a63b79d9bdc6f6ef6fa02370ddf7cd533cf9028f080c1b673f8c0c8a7756d3e000000000000003700000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d48700000000000000060000000000000001000000000000000000000000000000202768f5abdff5bd38dd7a5126680a094ae0890071146d5670726e7ade65ef3f00000000000000000100000000000000000000000000000020bb93bdd4182a1e1be23fe4633b3a17ef29d9394f1395d96dd06129c1fd7026e2000000000000000100000000000000000000000000000020604247288613d9947a4ceffd3da8b7f3867475b2f5aac9cdaacd4b0259430df50000000000000001000000000000000100000000000000204be907fa0033d260ddb828cd6bd1a2f16b4b7c8b78b9f3cb0f79a8c797e54c1100000000000000010000000000000000000000000000002039ead5b3ef03500baddf8be78b748f4ba57eeb8c385a3365cdae3ce2216dc965000000000000000100000000000000000000000000000020e1dffbeb542db104ce196a3d292995512e151764a713dfae161524e42791443b0000000000000017000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c000000000000000500000000000000010000000000000000000000000000002092eb996e80537dc31c88663e3f823c2c8b62d2eb287accdc28b3729d0703df6000000000000000010000000000000000000000000000002093c2f58026d47aa6bd82686021e20b129925139433f046168b00a8775db238be00000000000000010000000000000000000000000000002091a1a84e836796bff075a433deefbf7e25101832a3dfa8fe5085023a05c3bebe0000000000000001000000000000000100000000000000204416ff43eecbe10f2bf44eb13e02cf951c3da99d4488c99e7e0f7dd3d90cafce000000000000000100000000000000000000000000000020be2083ebcb8e5eb87e562bf062e6d215cfaa4997eac6f483f15c4fd871ecad0600000000000000420000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e63000000000000000700000000000000010000000000000001000000000000002075a6d91ca5f1c98dc29169c87c815299a0a0cbb59cb81a7cdfea1c760215dbcf0000000000000001000000000000000000000000000000205d1af57993b1311f451cd8f3ad1630a69d364f98f0aa121c7a5351255c68f1120000000000000001000000000000000100000000000000207cea880a0a8bda0eba998f9db419725855015589b371edd989dbe4f2703e66fd000000000000000100000000000000010000000000000020c834ecb1c39055e35872e8d68d01a84d3fe36a451d1bd01030847bdbc188a8100000000000000001000000000000000100000000000000205d020dd197cd8bc8d2a700f7b64d0ee052f49e38a4b57340dac8626609704eb3000000000000000100000000000000010000000000000020f7b2ca4db943ce00bdc52efca23a7b276b14e2f07b8f59b903ce1f04538c30650000000000000001000000000000000000000000000000208cd694b74ce1af9846da9590068d85c983646f7a712ec8ce838b5751ff39da7e000000000000000200000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d48700000000000000060000000000000001000000000000000100000000000000203f1d5733faf6919bb0221886fef7723c556b881dd37499da796b310c0a510553000000000000000100000000000000000000000000000020973abe56098c5cb6f2fd1a10ed41542aa7e5dd0213808541bcd299c4276351150000000000000001000000000000000100000000000000208426f227fd3e4328478afa6bfa8c45d6edaa61863be34324fb04ca8d95cd6c51000000000000000100000000000000010000000000000020b1c0755d20ab702b866cc8ac512368f4ce980380c6f5d7eb40b89839ba4b796600000000000000010000000000000001000000000000002006fce0ce3069ee6294018d140a01041f6b9e176142ef829c02e133dfe9b2de34000000000000000100000000000000010000000000000020fff772654f3af7c8f9c95d786737ebccc3ae1e9ae47307a5594181b3b08695ff0000000000000002000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c0000000000000005000000000000000100000000000000010000000000000020c7a75c7b0fd962d10fa408a394120615ef9bb9f0eb7b56b7b0191f35fda0cb460000000000000001000000000000000000000000000000207c3b41e0459d429789bc86f01b4ed1339eb1ef45db1cebe9aaf7645752bfcfae0000000000000001000000000000000100000000000000207f6a4fb33bf8bfff5e59e759184fee41613d7717ee0492c3ad6399d0722993830000000000000001000000000000000100000000000000206d40fa545d5914d0673b52a7c1b477cd46d585972da343cacc3892f3bbfa7923000000000000000100000000000000010000000000000020e5d3c6a76342fcad913e816a80c0ef42f59c71a5881bb0b5b21cb0d97dc46479000000000000001b0000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e630000000000000007000000000000000100000000000000000000000000000020640e3f3ff7ad663637c5f5ef98820d322f1a543b419c459f8b8e7a4dfe8dcf1000000000000000010000000000000000000000000000002028341ede75d2ef06bfe13bbeee6b5c35cbc0fd8322130f5aeb56b5cf32c584e5000000000000000100000000000000010000000000000020360de1e1fe41da256567e19a623d1143bf34f8300179317f0ee23637a1496984000000000000000100000000000000000000000000000020fe36a11a026c432e51bf4e8eb77ee04bbc9dff00ae0bc5d532be95b91d484e860000000000000001000000000000000000000000000000205557e212321aacbd26740638259e16cc5103b3432956c5bb69ad2b6e2503392a0000000000000001000000000000000100000000000000209e3bb8ee3ce9ff666177b27136fed42cb363c7cabe90e5215830e9c88727e55c0000000000000001000000000000000100000000000000205a63b79d9bdc6f6ef6fa02370ddf7cd533cf9028f080c1b673f8c0c8a7756d3e000000000000001b00000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d48700000000000000060000000000000001000000000000000000000000000000206896e2106ca62340c925f41cb2fc5737808ea05aec4e9f4da15b2c80cebd0ed500000000000000010000000000000000000000000000002071e1b34d4462f76c0df1694ec6f9b40f08cbaf8010ce392863ad7cff3ea79bde000000000000000100000000000000010000000000000020a406da53348c4c7e0239eb6a2fc7fdb8e52304f542b526606966b0a389120188000000000000000100000000000000000000000000000020419f3dc9d443c3df07838567fe3d290c6219bd356f3f46dba8090b9d8565cffc0000000000000001000000000000000000000000000000209dedd3c8d9111eaae6e346a23db97436b0f402a56e62edef9a21f054f1fd2b45000000000000000100000000000000010000000000000020fff772654f3af7c8f9c95d786737ebccc3ae1e9ae47307a5594181b3b08695ff000000000000001b000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c00000000000000050000000000000001000000000000000000000000000000207bfd50ec28a9603301e0f406b169f77884e96d61cbdb11b3fd09833c6d1a43e300000000000000010000000000000000000000000000002008f60556d73bb163220ae34d041b7dbe7733e8f9227c3af0a177a00b4b742bed000000000000000100000000000000010000000000000020c9de92c70724f2fa66cdd10cb0c2b9e1cc33e37ec8233a5650e23f84148402e000000000000000010000000000000000000000000000002019437050708dd830be222646c89d46c2eb36070ff99c92acce71ffd5b0b44384000000000000000100000000000000000000000000000020be2083ebcb8e5eb87e562bf062e6d215cfaa4997eac6f483f15c4fd871ecad0600000000000000420000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e63000000000000000700000000000000010000000000000001000000000000002075a6d91ca5f1c98dc29169c87c815299a0a0cbb59cb81a7cdfea1c760215dbcf0000000000000001000000000000000000000000000000205d1af57993b1311f451cd8f3ad1630a69d364f98f0aa121c7a5351255c68f1120000000000000001000000000000000100000000000000207cea880a0a8bda0eba998f9db419725855015589b371edd989dbe4f2703e66fd000000000000000100000000000000010000000000000020c834ecb1c39055e35872e8d68d01a84d3fe36a451d1bd01030847bdbc188a8100000000000000001000000000000000100000000000000205d020dd197cd8bc8d2a700f7b64d0ee052f49e38a4b57340dac8626609704eb3000000000000000100000000000000010000000000000020f7b2ca4db943ce00bdc52efca23a7b276b14e2f07b8f59b903ce1f04538c30650000000000000001000000000000000000000000000000208cd694b74ce1af9846da9590068d85c983646f7a712ec8ce838b5751ff39da7e000000000000000200000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d48700000000000000060000000000000001000000000000000100000000000000203f1d5733faf6919bb0221886fef7723c556b881dd37499da796b310c0a510553000000000000000100000000000000000000000000000020973abe56098c5cb6f2fd1a10ed41542aa7e5dd0213808541bcd299c4276351150000000000000001000000000000000100000000000000208426f227fd3e4328478afa6bfa8c45d6edaa61863be34324fb04ca8d95cd6c51000000000000000100000000000000010000000000000020b1c0755d20ab702b866cc8ac512368f4ce980380c6f5d7eb40b89839ba4b796600000000000000010000000000000001000000000000002006fce0ce3069ee6294018d140a01041f6b9e176142ef829c02e133dfe9b2de34000000000000000100000000000000010000000000000020fff772654f3af7c8f9c95d786737ebccc3ae1e9ae47307a5594181b3b08695ff0000000000000002000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c0000000000000005000000000000000100000000000000010000000000000020c7a75c7b0fd962d10fa408a394120615ef9bb9f0eb7b56b7b0191f35fda0cb460000000000000001000000000000000000000000000000207c3b41e0459d429789bc86f01b4ed1339eb1ef45db1cebe9aaf7645752bfcfae0000000000000001000000000000000100000000000000207f6a4fb33bf8bfff5e59e759184fee41613d7717ee0492c3ad6399d0722993830000000000000001000000000000000100000000000000206d40fa545d5914d0673b52a7c1b477cd46d585972da343cacc3892f3bbfa7923000000000000000100000000000000010000000000000020e5d3c6a76342fcad913e816a80c0ef42f59c71a5881bb0b5b21cb0d97dc46479000000000000000b0000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e6300000000000000070000000000000001000000000000000000000000000000208eda1a225e2718acef44e424ef68fd56cef70e49eea70b00c34fa4f30ef25efc000000000000000100000000000000000000000000000020b9c99aa72545b85f4cfe87140ac26921b0f73bb1fdffff4aa58491d50ec71d1e0000000000000001000000000000000100000000000000205d3fc9b15b4a6ebdca0105ab038974a59de979911cdfffe9b4070dbd771a360d00000000000000010000000000000000000000000000002025792043171cc4f0cd46bcdcb41991bddf423d2bf5a2d92b108cc43718a777c400000000000000010000000000000001000000000000002099055a5888504b4ed0efd5c8af2f74de5a3393c42b7bf782fc33893679ecf96d0000000000000001000000000000000100000000000000209e3bb8ee3ce9ff666177b27136fed42cb363c7cabe90e5215830e9c88727e55c0000000000000001000000000000000100000000000000205a63b79d9bdc6f6ef6fa02370ddf7cd533cf9028f080c1b673f8c0c8a7756d3e000000000000000b00000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d4870000000000000006000000000000000100000000000000000000000000000020f7ee07df88c96c5556aaaaf0592199655409839928ef36a857405582e14fd2850000000000000001000000000000000000000000000000201fd03114734a909f2af9dfbfc1a402ed2d45cfe212772b029540e8d1d47bc5630000000000000001000000000000000100000000000000206725d101631566887b8eb9586e109b8d43a61c2a38c0cb3f0c081d9259a077070000000000000001000000000000000000000000000000209bdd6b7b6cb5c1ad04c3223eb734f02259a900dabfa2e5fbdf2c53f1ba29a89800000000000000010000000000000001000000000000002006fce0ce3069ee6294018d140a01041f6b9e176142ef829c02e133dfe9b2de34000000000000000100000000000000010000000000000020fff772654f3af7c8f9c95d786737ebccc3ae1e9ae47307a5594181b3b08695ff000000000000000b000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c0000000000000005000000000000000100000000000000000000000000000020a2efb5a2eb11373f1a7a64d61ccdecc4f72e8508b953ffefb6c11436dab4763a000000000000000100000000000000000000000000000020d0974be052f14dec56f452df9ef263f9f7ef784c616e66e25f3c6283f358373800000000000000010000000000000001000000000000002072a19f5940dcf756c5399fb0515736767a580459dd186a47274ed1642b39c5c000000000000000010000000000000000000000000000002085c13800d5031086d1af1e59d5969748b38b9482fe9db3f8607940e29d5568b3000000000000000100000000000000010000000000000020e5d3c6a76342fcad913e816a80c0ef42f59c71a5881bb0b5b21cb0d97dc4647900000000000000110000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e6300000000000000070000000000000001000000000000000000000000000000201f2df64b02c9b286c65cefb571614170a82f64edcd620fae61b8feb7606576f8000000000000000100000000000000010000000000000020607633779fc9548f6c03d39df9afd4c608220c8a57ea3a79dcb3482526773bcc000000000000000100000000000000010000000000000020a848b049a7fb70f1b42aa0e44a4f49dda984a02cbaf493d9f85e1b6012bfde1f000000000000000100000000000000010000000000000020439fe973303483577ecab19db8caf1eb316ab2a99e8f21e89acb06368d44beef0000000000000001000000000000000000000000000000205557e212321aacbd26740638259e16cc5103b3432956c5bb69ad2b6e2503392a0000000000000001000000000000000100000000000000209e3bb8ee3ce9ff666177b27136fed42cb363c7cabe90e5215830e9c88727e55c0000000000000001000000000000000100000000000000205a63b79d9bdc6f6ef6fa02370ddf7cd533cf9028f080c1b673f8c0c8a7756d3e000000000000001100000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d48700000000000000060000000000000001000000000000000000000000000000205948b47c964e3a9d6c46bbdd27aab3059250496ab3c8376f6f888f2480b7c715000000000000000100000000000000010000000000000020e27c34d3b719a65401a92ab17e372c2a694f15bb047dda8c848f06b1e4cc58c6000000000000000100000000000000010000000000000020a266ad3dcdd42e3fd32f436bc9e907341340a124556a48afb6888dc3034d15770000000000000001000000000000000100000000000000201d3aa2233b91add56e9b89574fd69e12e9d23dec9dc72db6e6d0fe8d1bcd3d910000000000000001000000000000000000000000000000209dedd3c8d9111eaae6e346a23db97436b0f402a56e62edef9a21f054f1fd2b45000000000000000100000000000000010000000000000020fff772654f3af7c8f9c95d786737ebccc3ae1e9ae47307a5594181b3b08695ff0000000000000011000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c000000000000000500000000000000010000000000000000000000000000002077729fe996c05cdb57999d70c8708509e0af512232163b286452bf0e9812e9d5000000000000000100000000000000010000000000000020ff3db225a43867cf28972b6cbbb49c9dca91a4450ee7eb5dc1b5c8c1f529685e0000000000000001000000000000000100000000000000200a020532b9330815e1b068025d04ffb8ead304a30c535e98e92b157bab1b99b00000000000000001000000000000000100000000000000204416ff43eecbe10f2bf44eb13e02cf951c3da99d4488c99e7e0f7dd3d90cafce000000000000000100000000000000000000000000000020be2083ebcb8e5eb87e562bf062e6d215cfaa4997eac6f483f15c4fd871ecad06000000000000000c0000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e6300000000000000070000000000000001000000000000000100000000000000203d67e891d44f5cecad2331b37af621f439ca5bd2342dea8efd59ba26287c040f00000000000000010000000000000001000000000000002042877b2cba3d1570bb3b50091755de23f1d7444ec6b12b83dd73760da9b3988e0000000000000001000000000000000000000000000000201aed8ecced497889326ef67a146e0204c4108f8085e91a939ef0543a35c0c5c000000000000000010000000000000000000000000000002025792043171cc4f0cd46bcdcb41991bddf423d2bf5a2d92b108cc43718a777c400000000000000010000000000000001000000000000002099055a5888504b4ed0efd5c8af2f74de5a3393c42b7bf782fc33893679ecf96d0000000000000001000000000000000100000000000000209e3bb8ee3ce9ff666177b27136fed42cb363c7cabe90e5215830e9c88727e55c0000000000000001000000000000000100000000000000205a63b79d9bdc6f6ef6fa02370ddf7cd533cf9028f080c1b673f8c0c8a7756d3e000000000000000c00000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d4870000000000000006000000000000000100000000000000010000000000000020048f22f5e9be99ff08bee5e1d9d4a515b0bc8c5b236ebdc52ec29ef7cd77be530000000000000001000000000000000100000000000000209cc3cf496fe8ce5bc784e21b86b497b39c543f22ebf57bce4bc41da1ee5d9ed1000000000000000100000000000000000000000000000020f702b28cbc382aed2634a1cc751d12e676d74a66fd98ce3e17dfc965f1d74ad10000000000000001000000000000000000000000000000209bdd6b7b6cb5c1ad04c3223eb734f02259a900dabfa2e5fbdf2c53f1ba29a89800000000000000010000000000000001000000000000002006fce0ce3069ee6294018d140a01041f6b9e176142ef829c02e133dfe9b2de34000000000000000100000000000000010000000000000020fff772654f3af7c8f9c95d786737ebccc3ae1e9ae47307a5594181b3b08695ff000000000000000c000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c00000000000000050000000000000001000000000000000100000000000000209f7120f23a7dc936ece89768acd7a10948b7f8e3a3c79e9d7cf32e35b63c0388000000000000000100000000000000010000000000000020f12525946b31c3188fc50cee9b7544de3bf4b598d9b9e0dd535b10a78d0bb27b000000000000000100000000000000000000000000000020644e758401b5e0e7263e1ceadaa1172bbfbec88158f44db196a188aacda03e6600000000000000010000000000000000000000000000002085c13800d5031086d1af1e59d5969748b38b9482fe9db3f8607940e29d5568b3000000000000000100000000000000010000000000000020e5d3c6a76342fcad913e816a80c0ef42f59c71a5881bb0b5b21cb0d97dc46479000000000000003f0000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e630000000000000007000000000000000100000000000000000000000000000020120cd4bc1d76acd4e3050669eea7fee73d73d2b1be80280adf22f97082ee9c92000000000000000100000000000000000000000000000020f6c78ce5d7063167734cd1f5cdbc8e39b2a71d977071916a6347aa0317b255f4000000000000000100000000000000000000000000000020171867ad694f5802e6c97a9b0ad25708e020cb5be5521e80eeb5c49f56817e1b0000000000000001000000000000000000000000000000207508190087b5ebd4e3ce7dea2b51142411a26feea0e1883128d3ad2ac3f8843500000000000000010000000000000000000000000000002059b6d00a0f8faf8f5da1d200d318a515f3333f98ddf3acbfcb22f9d5e829d943000000000000000100000000000000000000000000000020cd6e61cf43694efd95cda323b25b2d4aaee54a194dbfb5a42b32da586bc1fa680000000000000001000000000000000100000000000000205a63b79d9bdc6f6ef6fa02370ddf7cd533cf9028f080c1b673f8c0c8a7756d3e000000000000003f00000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d487000000000000000600000000000000010000000000000000000000000000002051a280cf5323746430a83b983c8ae27456adc35ab32c06202b9ed6076bfdbd540000000000000001000000000000000000000000000000209ac47f0db306fce2bf48e3a36a61ba34d40f847b8538f926c732b1e84c6d56ea00000000000000010000000000000000000000000000002087ddb794b71304c7adada2bc3591f9cc037724ece83a65fdd8e1020925b9957c000000000000000100000000000000000000000000000020278cc806407a74ae434d1b1dff34326b54f20a3de6ad3df2d2448c7346240da700000000000000010000000000000000000000000000002039ead5b3ef03500baddf8be78b748f4ba57eeb8c385a3365cdae3ce2216dc965000000000000000100000000000000000000000000000020e1dffbeb542db104ce196a3d292995512e151764a713dfae161524e42791443b000000000000001f000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c00000000000000050000000000000001000000000000000000000000000000203d459898e5917fe5627848ee6da9448d8b05360947d45e408293e71f0c38578f00000000000000010000000000000000000000000000002041f935ee7b8e9d4e4c37487dbeefbea7b5a747f4dd17ce3b3d48d14596b4e72e000000000000000100000000000000000000000000000020929d0189eb8b3e306cd93f3be03855fe5bd6e6618a882ced8479cadca3ef7fc400000000000000010000000000000000000000000000002019437050708dd830be222646c89d46c2eb36070ff99c92acce71ffd5b0b44384000000000000000100000000000000000000000000000020be2083ebcb8e5eb87e562bf062e6d215cfaa4997eac6f483f15c4fd871ecad0600000000000000170000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e630000000000000007000000000000000100000000000000000000000000000020599d1bf380a068738c5999aa5c956a93ebcbde3a151eaace2f3b784d9585422b000000000000000100000000000000000000000000000020e7e34aadae33b44b777965a45b2d15cbd15069af0dcf0b26d33a838994dab5480000000000000001000000000000000000000000000000201c88b470940b086f3bcb2a9c1deb4fac39468f9d8c03e4ee2c93715bdfd36793000000000000000100000000000000010000000000000020439fe973303483577ecab19db8caf1eb316ab2a99e8f21e89acb06368d44beef0000000000000001000000000000000000000000000000205557e212321aacbd26740638259e16cc5103b3432956c5bb69ad2b6e2503392a0000000000000001000000000000000100000000000000209e3bb8ee3ce9ff666177b27136fed42cb363c7cabe90e5215830e9c88727e55c0000000000000001000000000000000100000000000000205a63b79d9bdc6f6ef6fa02370ddf7cd533cf9028f080c1b673f8c0c8a7756d3e000000000000001700000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d487000000000000000600000000000000010000000000000000000000000000002086889ddc8d9e4979bfa600b5cd027847947a35aade48ff618e5f592a65b83289000000000000000100000000000000000000000000000020fa8c57349cd8e988761c9bf04624f98d40aad1258694ef86a33a29ef41f3336a000000000000000100000000000000000000000000000020fb410790acd5fdbf89d24f2ede1d32c95e8336f3583010cf24f41e2ac1fb39d60000000000000001000000000000000100000000000000201d3aa2233b91add56e9b89574fd69e12e9d23dec9dc72db6e6d0fe8d1bcd3d910000000000000001000000000000000000000000000000209dedd3c8d9111eaae6e346a23db97436b0f402a56e62edef9a21f054f1fd2b45000000000000000100000000000000010000000000000020fff772654f3af7c8f9c95d786737ebccc3ae1e9ae47307a5594181b3b08695ff0000000000000017000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c000000000000000500000000000000010000000000000000000000000000002092eb996e80537dc31c88663e3f823c2c8b62d2eb287accdc28b3729d0703df6000000000000000010000000000000000000000000000002093c2f58026d47aa6bd82686021e20b129925139433f046168b00a8775db238be00000000000000010000000000000000000000000000002091a1a84e836796bff075a433deefbf7e25101832a3dfa8fe5085023a05c3bebe0000000000000001000000000000000100000000000000204416ff43eecbe10f2bf44eb13e02cf951c3da99d4488c99e7e0f7dd3d90cafce000000000000000100000000000000000000000000000020be2083ebcb8e5eb87e562bf062e6d215cfaa4997eac6f483f15c4fd871ecad0600000000000000420000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e63000000000000000700000000000000010000000000000001000000000000002075a6d91ca5f1c98dc29169c87c815299a0a0cbb59cb81a7cdfea1c760215dbcf0000000000000001000000000000000000000000000000205d1af57993b1311f451cd8f3ad1630a69d364f98f0aa121c7a5351255c68f1120000000000000001000000000000000100000000000000207cea880a0a8bda0eba998f9db419725855015589b371edd989dbe4f2703e66fd000000000000000100000000000000010000000000000020c834ecb1c39055e35872e8d68d01a84d3fe36a451d1bd01030847bdbc188a8100000000000000001000000000000000100000000000000205d020dd197cd8bc8d2a700f7b64d0ee052f49e38a4b57340dac8626609704eb3000000000000000100000000000000010000000000000020f7b2ca4db943ce00bdc52efca23a7b276b14e2f07b8f59b903ce1f04538c30650000000000000001000000000000000000000000000000208cd694b74ce1af9846da9590068d85c983646f7a712ec8ce838b5751ff39da7e000000000000000200000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d48700000000000000060000000000000001000000000000000100000000000000203f1d5733faf6919bb0221886fef7723c556b881dd37499da796b310c0a510553000000000000000100000000000000000000000000000020973abe56098c5cb6f2fd1a10ed41542aa7e5dd0213808541bcd299c4276351150000000000000001000000000000000100000000000000208426f227fd3e4328478afa6bfa8c45d6edaa61863be34324fb04ca8d95cd6c51000000000000000100000000000000010000000000000020b1c0755d20ab702b866cc8ac512368f4ce980380c6f5d7eb40b89839ba4b796600000000000000010000000000000001000000000000002006fce0ce3069ee6294018d140a01041f6b9e176142ef829c02e133dfe9b2de34000000000000000100000000000000010000000000000020fff772654f3af7c8f9c95d786737ebccc3ae1e9ae47307a5594181b3b08695ff0000000000000002000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c0000000000000005000000000000000100000000000000010000000000000020c7a75c7b0fd962d10fa408a394120615ef9bb9f0eb7b56b7b0191f35fda0cb460000000000000001000000000000000000000000000000207c3b41e0459d429789bc86f01b4ed1339eb1ef45db1cebe9aaf7645752bfcfae0000000000000001000000000000000100000000000000207f6a4fb33bf8bfff5e59e759184fee41613d7717ee0492c3ad6399d0722993830000000000000001000000000000000100000000000000206d40fa545d5914d0673b52a7c1b477cd46d585972da343cacc3892f3bbfa7923000000000000000100000000000000010000000000000020e5d3c6a76342fcad913e816a80c0ef42f59c71a5881bb0b5b21cb0d97dc46479000000000000007a0000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e630000000000000007000000000000000100000000000000010000000000000020deb6076e49b4fc6e6a34a06fa058a9fc133c39f69724ac5417e08d696ab29642000000000000000100000000000000000000000000000020dd37c618dfd92b3c41049f2e0dc4d8a18bc3ea3bdc0dc63c4772b9954c439d730000000000000001000000000000000100000000000000204d948ee02f121541df5adbc84ffca22dbbbb38600235df9941a2f20ab5c96df3000000000000000100000000000000000000000000000020d9b8d5ec67254b42678ab91739e07b1ddcd23647902b76537c5f5b68b6b53be7000000000000000100000000000000000000000000000020ff0e61f4a21c645f0a5fc8fc1d6204e2b2befec15e74ee679959788e62c2b7220000000000000001000000000000000000000000000000203f11b2fdafe389d4b4fba99881e3cf8e613dd21e28861c021036836c21d90e240000000000000001000000000000000000000000000000208cd694b74ce1af9846da9590068d85c983646f7a712ec8ce838b5751ff39da7e000000000000003a00000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d48700000000000000060000000000000001000000000000000100000000000000205d6beb5f08c9ef8bd9359bd224406206b660b1fed3f616221fd6c21a5895c30500000000000000010000000000000000000000000000002092b0a7d54412ecb194281235cf7896f354655403bb6cf7d6ad7e4d14335856a0000000000000000100000000000000010000000000000020f8199fc40a1a0c9db7b80b75095eeab687bfbb6e6550e93657ee6f2d4ae3d86d000000000000000100000000000000000000000000000020278cc806407a74ae434d1b1dff34326b54f20a3de6ad3df2d2448c7346240da700000000000000010000000000000000000000000000002039ead5b3ef03500baddf8be78b748f4ba57eeb8c385a3365cdae3ce2216dc965000000000000000100000000000000000000000000000020e1dffbeb542db104ce196a3d292995512e151764a713dfae161524e42791443b000000000000001a000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c0000000000000005000000000000000100000000000000010000000000000020eea1b50ec40a1d88c2995fadbcd9f72a382913df10f4333fcb9be71e194fe87600000000000000010000000000000000000000000000002008f60556d73bb163220ae34d041b7dbe7733e8f9227c3af0a177a00b4b742bed000000000000000100000000000000010000000000000020c9de92c70724f2fa66cdd10cb0c2b9e1cc33e37ec8233a5650e23f84148402e000000000000000010000000000000000000000000000002019437050708dd830be222646c89d46c2eb36070ff99c92acce71ffd5b0b44384000000000000000100000000000000000000000000000020be2083ebcb8e5eb87e562bf062e6d215cfaa4997eac6f483f15c4fd871ecad0600000000000000300000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e6300000000000000070000000000000001000000000000000100000000000000203148fb929632385bce86f244f506ab76df645dc019218fc0decfac79e3624c1b0000000000000001000000000000000100000000000000209c1914954a83375d5ba09778a49cebd88fdef1e220d5b262dfdfb2dee2b3946e000000000000000100000000000000010000000000000020146ccd87ea3ec153babac0b26e23b789e526d8bce6cdd5d6b0af3e0316a40ab000000000000000010000000000000001000000000000002089ec037db050a177374eb9421ba4035962ad6c11985e3d3682c8a38d803cb8ee00000000000000010000000000000000000000000000002059b6d00a0f8faf8f5da1d200d318a515f3333f98ddf3acbfcb22f9d5e829d943000000000000000100000000000000000000000000000020cd6e61cf43694efd95cda323b25b2d4aaee54a194dbfb5a42b32da586bc1fa680000000000000001000000000000000100000000000000205a63b79d9bdc6f6ef6fa02370ddf7cd533cf9028f080c1b673f8c0c8a7756d3e000000000000003000000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d4870000000000000006000000000000000100000000000000010000000000000020bf8a1de46276016b7e41424ca5afeaf232fb50079cd21e0151a2af069d460665000000000000000100000000000000010000000000000020dd3fd863d5d16d0a55e43e579b2bab134d41ee0596a279cb4e270900f70aa313000000000000000100000000000000010000000000000020c8e48abe7707919d92a6c7ada60f64b5c9d5b1dc6b0c597a76fa4dde365b28790000000000000001000000000000000100000000000000204be907fa0033d260ddb828cd6bd1a2f16b4b7c8b78b9f3cb0f79a8c797e54c1100000000000000010000000000000000000000000000002039ead5b3ef03500baddf8be78b748f4ba57eeb8c385a3365cdae3ce2216dc965000000000000000100000000000000000000000000000020e1dffbeb542db104ce196a3d292995512e151764a713dfae161524e42791443b0000000000000010000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c000000000000000500000000000000010000000000000001000000000000002031a42ac7ae67e6afa4327feed11d2bc7194411f35667988901d26d44be6d8428000000000000000100000000000000010000000000000020ff3db225a43867cf28972b6cbbb49c9dca91a4450ee7eb5dc1b5c8c1f529685e0000000000000001000000000000000100000000000000200a020532b9330815e1b068025d04ffb8ead304a30c535e98e92b157bab1b99b00000000000000001000000000000000100000000000000204416ff43eecbe10f2bf44eb13e02cf951c3da99d4488c99e7e0f7dd3d90cafce000000000000000100000000000000000000000000000020be2083ebcb8e5eb87e562bf062e6d215cfaa4997eac6f483f15c4fd871ecad0600000000000000720000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e6300000000000000070000000000000001000000000000000100000000000000208de8f620a5fc399b5ecc2d43ea902931f71f9ae447700c2535c6a6f115938cde000000000000000100000000000000000000000000000020de9f046f1aad750186b57c9cfeacfa4e57ba177d31a0724e326df1e60afc15920000000000000001000000000000000100000000000000205af0c30301c2cebde85b26134fb68923a872af8613b7ede4104a7f3786c2e399000000000000000100000000000000010000000000000020e64a0b1e5bfa3cc13b42f1c94f8b754ddbc1ac5c7410d9e82bea6b20ba17c12d000000000000000100000000000000000000000000000020ff0e61f4a21c645f0a5fc8fc1d6204e2b2befec15e74ee679959788e62c2b7220000000000000001000000000000000000000000000000203f11b2fdafe389d4b4fba99881e3cf8e613dd21e28861c021036836c21d90e240000000000000001000000000000000000000000000000208cd694b74ce1af9846da9590068d85c983646f7a712ec8ce838b5751ff39da7e000000000000003200000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d4870000000000000006000000000000000100000000000000010000000000000020869a859ad83c189942deb65c779868ea78a24f226849d17f6f7c75dc8094366d000000000000000100000000000000000000000000000020e5227b76320bb43e07aeca54708b074ddca560d8f5f10ba85577ff643ba11b48000000000000000100000000000000010000000000000020c8e48abe7707919d92a6c7ada60f64b5c9d5b1dc6b0c597a76fa4dde365b28790000000000000001000000000000000100000000000000204be907fa0033d260ddb828cd6bd1a2f16b4b7c8b78b9f3cb0f79a8c797e54c1100000000000000010000000000000000000000000000002039ead5b3ef03500baddf8be78b748f4ba57eeb8c385a3365cdae3ce2216dc965000000000000000100000000000000000000000000000020e1dffbeb542db104ce196a3d292995512e151764a713dfae161524e42791443b0000000000000012000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c000000000000000500000000000000010000000000000001000000000000002056c62ecc4d2213c21068a2cdd186922392f41def2d327df33699a445258e5a780000000000000001000000000000000000000000000000200f5dd7c1922948c1439777ed0b491d1fa487cb063021a98b2df0412b70d5c4670000000000000001000000000000000100000000000000200a020532b9330815e1b068025d04ffb8ead304a30c535e98e92b157bab1b99b00000000000000001000000000000000100000000000000204416ff43eecbe10f2bf44eb13e02cf951c3da99d4488c99e7e0f7dd3d90cafce000000000000000100000000000000000000000000000020be2083ebcb8e5eb87e562bf062e6d215cfaa4997eac6f483f15c4fd871ecad0600000000000000070000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e6300000000000000070000000000000001000000000000000000000000000000200d40956f150b4f78df8af2a02cbbef42cd88a0b4aabad3f35e6843351c0484aa000000000000000100000000000000000000000000000020d0624510677ea5fbded312cb11b11718c6277617f42d3af3c4f16cdbba6738d7000000000000000100000000000000000000000000000020f14f80821903860da087c1b1b7662a08cab4a040fd04b70c275657809939505600000000000000010000000000000001000000000000002029241ba8217ad72b0dac9bd7c8fc4389f23ac41b9c9678eaa733f4b31af8de9500000000000000010000000000000001000000000000002099055a5888504b4ed0efd5c8af2f74de5a3393c42b7bf782fc33893679ecf96d0000000000000001000000000000000100000000000000209e3bb8ee3ce9ff666177b27136fed42cb363c7cabe90e5215830e9c88727e55c0000000000000001000000000000000100000000000000205a63b79d9bdc6f6ef6fa02370ddf7cd533cf9028f080c1b673f8c0c8a7756d3e000000000000000700000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d48700000000000000060000000000000001000000000000000000000000000000208615bd29e618d25bdbe58a362147791e1b5f677f0387ec318eb836a6707302a200000000000000010000000000000000000000000000002066b9314b439c03d070c13b7b828678e8f19ad511e17e8b01d622b96a03e0b4b9000000000000000100000000000000000000000000000020796a6a4942c9915ef0f135ff4654fff6b509514e9b42ecc4f0196a67fdd57f19000000000000000100000000000000010000000000000020b1c0755d20ab702b866cc8ac512368f4ce980380c6f5d7eb40b89839ba4b796600000000000000010000000000000001000000000000002006fce0ce3069ee6294018d140a01041f6b9e176142ef829c02e133dfe9b2de34000000000000000100000000000000010000000000000020fff772654f3af7c8f9c95d786737ebccc3ae1e9ae47307a5594181b3b08695ff0000000000000007000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c00000000000000050000000000000001000000000000000000000000000000202640fa45ff42b079f1168b1432978039a8629fd8be06d40efc409c716dda3ee0000000000000000100000000000000000000000000000020be2a61482da2e4d2a8cf7a7dd6bc41ce863ee0ba102d7216015c80a9a1458d10000000000000000100000000000000000000000000000020bac21397425e5c4a7c69631fc20e4e1bdc8c609022763df48f6210c07e174c940000000000000001000000000000000100000000000000206d40fa545d5914d0673b52a7c1b477cd46d585972da343cacc3892f3bbfa7923000000000000000100000000000000010000000000000020e5d3c6a76342fcad913e816a80c0ef42f59c71a5881bb0b5b21cb0d97dc4647900000000000000690000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e6300000000000000070000000000000001000000000000000000000000000000200d88ce3f344e954dfc58453be74afbb006ef4240da2054e63d4c7fa81c430d72000000000000000100000000000000010000000000000020e9a61279ce8e341b1d01690fece60bff1b8c7f612e1ea2db3f5c9dd86224a41d000000000000000100000000000000010000000000000020f9b98f9d2ac5c44cfeea49c4f61670e54a8c1db8c61cdc69be4f90c254556a400000000000000001000000000000000000000000000000201fe41c7c2aa462598d402faec6fb9cd0bd2fcc35d1ce562c8cf3f7f8ad4588cc0000000000000001000000000000000100000000000000203981922e553fc8e354731be6bd375b1785364b2e2476151e7154d94fce95b2110000000000000001000000000000000000000000000000203f11b2fdafe389d4b4fba99881e3cf8e613dd21e28861c021036836c21d90e240000000000000001000000000000000000000000000000208cd694b74ce1af9846da9590068d85c983646f7a712ec8ce838b5751ff39da7e000000000000002900000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d4870000000000000006000000000000000100000000000000000000000000000020051fdca82bb8199a879c2bafe8e08d239b0559424120b9538cb6c23b2a93aea8000000000000000100000000000000010000000000000020d1ca734f51f8b1f82c822515046edbdb1d584a1b7511e971d6b9c17296d93440000000000000000100000000000000010000000000000020fdcfe324c22049dd7d8344f164cf4d2433ffb80a9020bef28383e88d2cf96d080000000000000001000000000000000000000000000000209df67d6696a217d379788a570014872e39da29c1a327fbd7754c8f2bdf33ee0e00000000000000010000000000000001000000000000002039c7bbacb3b195fd96b8f1dcbf563bc14598dc6decf19beca1354343c60c51ce000000000000000100000000000000000000000000000020e1dffbeb542db104ce196a3d292995512e151764a713dfae161524e42791443b0000000000000009000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c0000000000000005000000000000000100000000000000000000000000000020edd286fa7d8544b79d9e8a3ec191602b32d0ee1316648eba56c3903cf324e9b00000000000000001000000000000000100000000000000202c95cca30e6a3964ec1d029cfe401ff1e3ebe84b1b151fd02a835412277c516a00000000000000010000000000000001000000000000002072a19f5940dcf756c5399fb0515736767a580459dd186a47274ed1642b39c5c000000000000000010000000000000000000000000000002085c13800d5031086d1af1e59d5969748b38b9482fe9db3f8607940e29d5568b3000000000000000100000000000000010000000000000020e5d3c6a76342fcad913e816a80c0ef42f59c71a5881bb0b5b21cb0d97dc4647900000000000000720000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e6300000000000000070000000000000001000000000000000100000000000000208de8f620a5fc399b5ecc2d43ea902931f71f9ae447700c2535c6a6f115938cde000000000000000100000000000000000000000000000020de9f046f1aad750186b57c9cfeacfa4e57ba177d31a0724e326df1e60afc15920000000000000001000000000000000100000000000000205af0c30301c2cebde85b26134fb68923a872af8613b7ede4104a7f3786c2e399000000000000000100000000000000010000000000000020e64a0b1e5bfa3cc13b42f1c94f8b754ddbc1ac5c7410d9e82bea6b20ba17c12d000000000000000100000000000000000000000000000020ff0e61f4a21c645f0a5fc8fc1d6204e2b2befec15e74ee679959788e62c2b7220000000000000001000000000000000000000000000000203f11b2fdafe389d4b4fba99881e3cf8e613dd21e28861c021036836c21d90e240000000000000001000000000000000000000000000000208cd694b74ce1af9846da9590068d85c983646f7a712ec8ce838b5751ff39da7e000000000000003200000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d4870000000000000006000000000000000100000000000000010000000000000020869a859ad83c189942deb65c779868ea78a24f226849d17f6f7c75dc8094366d000000000000000100000000000000000000000000000020e5227b76320bb43e07aeca54708b074ddca560d8f5f10ba85577ff643ba11b48000000000000000100000000000000010000000000000020c8e48abe7707919d92a6c7ada60f64b5c9d5b1dc6b0c597a76fa4dde365b28790000000000000001000000000000000100000000000000204be907fa0033d260ddb828cd6bd1a2f16b4b7c8b78b9f3cb0f79a8c797e54c1100000000000000010000000000000000000000000000002039ead5b3ef03500baddf8be78b748f4ba57eeb8c385a3365cdae3ce2216dc965000000000000000100000000000000000000000000000020e1dffbeb542db104ce196a3d292995512e151764a713dfae161524e42791443b0000000000000012000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c000000000000000500000000000000010000000000000001000000000000002056c62ecc4d2213c21068a2cdd186922392f41def2d327df33699a445258e5a780000000000000001000000000000000000000000000000200f5dd7c1922948c1439777ed0b491d1fa487cb063021a98b2df0412b70d5c4670000000000000001000000000000000100000000000000200a020532b9330815e1b068025d04ffb8ead304a30c535e98e92b157bab1b99b00000000000000001000000000000000100000000000000204416ff43eecbe10f2bf44eb13e02cf951c3da99d4488c99e7e0f7dd3d90cafce000000000000000100000000000000000000000000000020be2083ebcb8e5eb87e562bf062e6d215cfaa4997eac6f483f15c4fd871ecad06000000000000000f0000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e6300000000000000070000000000000001000000000000000000000000000000209c248715b17e880946d47aa4058d59a9e664c930c34d52f5c241516595cedfb20000000000000001000000000000000000000000000000206849fbce696f1f582d99563aebb45d14dde4a1c6b49b743b8e9a01129807eec40000000000000001000000000000000000000000000000201aed8ecced497889326ef67a146e0204c4108f8085e91a939ef0543a35c0c5c000000000000000010000000000000000000000000000002025792043171cc4f0cd46bcdcb41991bddf423d2bf5a2d92b108cc43718a777c400000000000000010000000000000001000000000000002099055a5888504b4ed0efd5c8af2f74de5a3393c42b7bf782fc33893679ecf96d0000000000000001000000000000000100000000000000209e3bb8ee3ce9ff666177b27136fed42cb363c7cabe90e5215830e9c88727e55c0000000000000001000000000000000100000000000000205a63b79d9bdc6f6ef6fa02370ddf7cd533cf9028f080c1b673f8c0c8a7756d3e000000000000000f00000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d48700000000000000060000000000000001000000000000000000000000000000202c67b8dd43e7c16379ebd0d0e7fe8695bb3152eff29f5761175f20a5b80839fe0000000000000001000000000000000000000000000000206b865f9ad9b586b35ea83fde83095ef4f15863dafb699beed1c2a42a45bf013e000000000000000100000000000000000000000000000020f702b28cbc382aed2634a1cc751d12e676d74a66fd98ce3e17dfc965f1d74ad10000000000000001000000000000000000000000000000209bdd6b7b6cb5c1ad04c3223eb734f02259a900dabfa2e5fbdf2c53f1ba29a89800000000000000010000000000000001000000000000002006fce0ce3069ee6294018d140a01041f6b9e176142ef829c02e133dfe9b2de34000000000000000100000000000000010000000000000020fff772654f3af7c8f9c95d786737ebccc3ae1e9ae47307a5594181b3b08695ff000000000000000f000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c0000000000000005000000000000000100000000000000000000000000000020b9e5ab5aeb2b43e65e0c8693fc28386fb06a6c997f398a642c95f88df7741ed6000000000000000100000000000000000000000000000020ee4272859658c2d7124d91bc6a4803ed75d25c5923efdc417f76a407c217f10b000000000000000100000000000000000000000000000020644e758401b5e0e7263e1ceadaa1172bbfbec88158f44db196a188aacda03e6600000000000000010000000000000000000000000000002085c13800d5031086d1af1e59d5969748b38b9482fe9db3f8607940e29d5568b3000000000000000100000000000000010000000000000020e5d3c6a76342fcad913e816a80c0ef42f59c71a5881bb0b5b21cb0d97dc46479000000000000005a0000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e630000000000000007000000000000000100000000000000010000000000000020563d891caf44e0e5830cf9749bcf785be1528da09496073b989d7fd1be4ed2ec0000000000000001000000000000000000000000000000201a78db441159e4de1508d5ed0e22f2f0794cd20bede4cbbced995d5ee52239ff000000000000000100000000000000010000000000000020fb8497c96e63b0dce651489de58a59d110992d4ef229862380f25c74cc429715000000000000000100000000000000000000000000000020a9662c874be7945649b98b9c81f465a508fe14539573b8c3fec3f2d611bf1e7c000000000000000100000000000000000000000000000020de6926c2b2c79f2370d45818ff9eb4d4547065c9f10f31f9416413a9a91e1b68000000000000000100000000000000010000000000000020f7b2ca4db943ce00bdc52efca23a7b276b14e2f07b8f59b903ce1f04538c30650000000000000001000000000000000000000000000000208cd694b74ce1af9846da9590068d85c983646f7a712ec8ce838b5751ff39da7e000000000000001a00000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d4870000000000000006000000000000000100000000000000010000000000000020ec19530ba3c8e532d436daf323283e3d1fcc9fa9b53cc67b9a249455e989fa3b00000000000000010000000000000000000000000000002071e1b34d4462f76c0df1694ec6f9b40f08cbaf8010ce392863ad7cff3ea79bde000000000000000100000000000000010000000000000020a406da53348c4c7e0239eb6a2fc7fdb8e52304f542b526606966b0a389120188000000000000000100000000000000000000000000000020419f3dc9d443c3df07838567fe3d290c6219bd356f3f46dba8090b9d8565cffc0000000000000001000000000000000000000000000000209dedd3c8d9111eaae6e346a23db97436b0f402a56e62edef9a21f054f1fd2b45000000000000000100000000000000010000000000000020fff772654f3af7c8f9c95d786737ebccc3ae1e9ae47307a5594181b3b08695ff000000000000001a000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c0000000000000005000000000000000100000000000000010000000000000020eea1b50ec40a1d88c2995fadbcd9f72a382913df10f4333fcb9be71e194fe87600000000000000010000000000000000000000000000002008f60556d73bb163220ae34d041b7dbe7733e8f9227c3af0a177a00b4b742bed000000000000000100000000000000010000000000000020c9de92c70724f2fa66cdd10cb0c2b9e1cc33e37ec8233a5650e23f84148402e000000000000000010000000000000000000000000000002019437050708dd830be222646c89d46c2eb36070ff99c92acce71ffd5b0b44384000000000000000100000000000000000000000000000020be2083ebcb8e5eb87e562bf062e6d215cfaa4997eac6f483f15c4fd871ecad06000000000000002e0000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e630000000000000007000000000000000100000000000000010000000000000020f995393982a1a00e8c52af6da1d39fc8d247269b546070e81ca680e4be2dd8860000000000000001000000000000000000000000000000205435cfed5b93e6ef62f4b72b7fc10a6f4c566bc09853e384793b3486bce087f50000000000000001000000000000000000000000000000207a98025427da3a2e44cfa149cc3f9191b0b1be4d884c0f9fea387a4f51769e3500000000000000010000000000000000000000000000002098a42ef655f9e2b2020ef1d59bae4b378804e09b92201707c9bafe56215bb37d000000000000000100000000000000010000000000000020f8a086bacd0b41568194a8a5696422282191bb07bd68b5fc1884372d5a87e710000000000000000100000000000000000000000000000020cd6e61cf43694efd95cda323b25b2d4aaee54a194dbfb5a42b32da586bc1fa680000000000000001000000000000000100000000000000205a63b79d9bdc6f6ef6fa02370ddf7cd533cf9028f080c1b673f8c0c8a7756d3e000000000000002e00000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d4870000000000000006000000000000000100000000000000010000000000000020cbc3acb82e65ece3d9eecc2c0d5a423c5f8ee0939377bb7aaabdd6cea8a1f80e0000000000000001000000000000000000000000000000203012119f6499bb8adbe11342961e20660dc88752a608cff867148e2ca4498402000000000000000100000000000000000000000000000020a5a3a78d21fabb4c098c133a0e4cf00d903bbad62c9c916d47a3b6ebfdca2f680000000000000001000000000000000000000000000000209df67d6696a217d379788a570014872e39da29c1a327fbd7754c8f2bdf33ee0e00000000000000010000000000000001000000000000002039c7bbacb3b195fd96b8f1dcbf563bc14598dc6decf19beca1354343c60c51ce000000000000000100000000000000000000000000000020e1dffbeb542db104ce196a3d292995512e151764a713dfae161524e42791443b000000000000000e000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c0000000000000005000000000000000100000000000000010000000000000020dd04ab9f83c6236e21306d40a1fb47fda70a351259a413be4247a8fc729d7bcb000000000000000100000000000000000000000000000020ee4272859658c2d7124d91bc6a4803ed75d25c5923efdc417f76a407c217f10b000000000000000100000000000000000000000000000020644e758401b5e0e7263e1ceadaa1172bbfbec88158f44db196a188aacda03e6600000000000000010000000000000000000000000000002085c13800d5031086d1af1e59d5969748b38b9482fe9db3f8607940e29d5568b3000000000000000100000000000000010000000000000020e5d3c6a76342fcad913e816a80c0ef42f59c71a5881bb0b5b21cb0d97dc46479000000000000005c0000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e630000000000000007000000000000000100000000000000010000000000000020474416b31e937b0f731c62dc9055a992b6997ff7f888f52fddbc8b7fa8208a0c00000000000000010000000000000001000000000000002038b1c75543428992f499c63c0f64a2962657c6532a4d8009908c01d2ac6078810000000000000001000000000000000000000000000000207d4963b5724ebf61b258f4970661899221da919a12138a2998c0ab92d4aea935000000000000000100000000000000000000000000000020a9662c874be7945649b98b9c81f465a508fe14539573b8c3fec3f2d611bf1e7c000000000000000100000000000000000000000000000020de6926c2b2c79f2370d45818ff9eb4d4547065c9f10f31f9416413a9a91e1b68000000000000000100000000000000010000000000000020f7b2ca4db943ce00bdc52efca23a7b276b14e2f07b8f59b903ce1f04538c30650000000000000001000000000000000000000000000000208cd694b74ce1af9846da9590068d85c983646f7a712ec8ce838b5751ff39da7e000000000000001c00000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d48700000000000000060000000000000001000000000000000100000000000000201634c0f0337a12534f7a2b46e7f0c13d65c6d66882e2ce2ebf8f4da0eb0fa69d000000000000000100000000000000010000000000000020053fead031d6f530ead877c5775adf9f092d11b293da5580c027ccd0b0238273000000000000000100000000000000000000000000000020eef772e834ab948f74fe439b2765a904f6737992cd2a6c66e5b0a2076e78a0bf000000000000000100000000000000000000000000000020419f3dc9d443c3df07838567fe3d290c6219bd356f3f46dba8090b9d8565cffc0000000000000001000000000000000000000000000000209dedd3c8d9111eaae6e346a23db97436b0f402a56e62edef9a21f054f1fd2b45000000000000000100000000000000010000000000000020fff772654f3af7c8f9c95d786737ebccc3ae1e9ae47307a5594181b3b08695ff000000000000001c000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c00000000000000050000000000000001000000000000000100000000000000208acaef2a5a512f2b783ce1db962701cf184ebb814600da20c7c0dde465b78e8e0000000000000001000000000000000100000000000000208d8faa056ddb0662b9699b4244eccc38910a8e83ed97e5d0d9a0a68b62c60226000000000000000100000000000000000000000000000020929d0189eb8b3e306cd93f3be03855fe5bd6e6618a882ced8479cadca3ef7fc400000000000000010000000000000000000000000000002019437050708dd830be222646c89d46c2eb36070ff99c92acce71ffd5b0b44384000000000000000100000000000000000000000000000020be2083ebcb8e5eb87e562bf062e6d215cfaa4997eac6f483f15c4fd871ecad0600000000000000230000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e6300000000000000070000000000000001000000000000000000000000000000207b8ba165be5ab6fea302bb060f8adf5f3a4b56fb6bcd469b1580cdd7d1806f5900000000000000010000000000000000000000000000002086d22fbf42869ef478ec4797be93bbbdcfaaf203661b20797091ae826d9f8488000000000000000100000000000000010000000000000020e4637e60a830369d12bd5e240878b11dc6158cb775f69d6a5abeb1b75cff57b9000000000000000100000000000000010000000000000020d59beb50aed87de53804691d5b74758777567391095861dfa441a4787c37fab8000000000000000100000000000000010000000000000020f8a086bacd0b41568194a8a5696422282191bb07bd68b5fc1884372d5a87e710000000000000000100000000000000000000000000000020cd6e61cf43694efd95cda323b25b2d4aaee54a194dbfb5a42b32da586bc1fa680000000000000001000000000000000100000000000000205a63b79d9bdc6f6ef6fa02370ddf7cd533cf9028f080c1b673f8c0c8a7756d3e000000000000002300000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d4870000000000000006000000000000000100000000000000000000000000000020399da0b17ec864f5ff0a5b849a7134434c0f882db8cefb522c6d01e3a0f9ccfe000000000000000100000000000000000000000000000020198cb6817a75d5e897eed314bf956f062fa221a79c3c1d55716e70d69fa53a3c000000000000000100000000000000010000000000000020dcda586de071ee0cbb711d6baf80877c910becd3394981818fe235d70af5ab830000000000000001000000000000000100000000000000202f920dfb490f5730be959b8ee4207a1fbddfa14c6cd180ad99571d5efd70ac1000000000000000010000000000000001000000000000002039c7bbacb3b195fd96b8f1dcbf563bc14598dc6decf19beca1354343c60c51ce000000000000000100000000000000000000000000000020e1dffbeb542db104ce196a3d292995512e151764a713dfae161524e42791443b0000000000000003000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c000000000000000500000000000000010000000000000000000000000000002084e999944751f08db324a339ed4ab115c054ba5873577cd1570f798131e6ac9b0000000000000001000000000000000000000000000000207c3b41e0459d429789bc86f01b4ed1339eb1ef45db1cebe9aaf7645752bfcfae0000000000000001000000000000000100000000000000207f6a4fb33bf8bfff5e59e759184fee41613d7717ee0492c3ad6399d0722993830000000000000001000000000000000100000000000000206d40fa545d5914d0673b52a7c1b477cd46d585972da343cacc3892f3bbfa7923000000000000000100000000000000010000000000000020e5d3c6a76342fcad913e816a80c0ef42f59c71a5881bb0b5b21cb0d97dc4647900000000000000540000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e630000000000000007000000000000000100000000000000010000000000000020ed2c59819375f748af482f68303d7e171fc16ec4c849ba99838a0e7d1337e4f7000000000000000100000000000000010000000000000020ae31e7d56865ba73361fab52429db2c86655fc720f15894c4caa0eabb96ddee9000000000000000100000000000000000000000000000020776b06a5acf790761f6240bf2c13f5d36e321443e8307f2636608749378b82df000000000000000100000000000000010000000000000020db0e023ec8d72c071ea8d995edc8f074b62fe7ea5d79f7f861578fc217f6c5b3000000000000000100000000000000000000000000000020de6926c2b2c79f2370d45818ff9eb4d4547065c9f10f31f9416413a9a91e1b68000000000000000100000000000000010000000000000020f7b2ca4db943ce00bdc52efca23a7b276b14e2f07b8f59b903ce1f04538c30650000000000000001000000000000000000000000000000208cd694b74ce1af9846da9590068d85c983646f7a712ec8ce838b5751ff39da7e000000000000001400000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d4870000000000000006000000000000000100000000000000010000000000000020ab9d3efc17262d1a0de889df50c8d8e0c34fa8097386fcceb4f9786185c772730000000000000001000000000000000100000000000000209e28b5e71c8e4fbfcba667a5fcab5eccf8d9293468118f40284906b1c8d31b25000000000000000100000000000000000000000000000020fb410790acd5fdbf89d24f2ede1d32c95e8336f3583010cf24f41e2ac1fb39d60000000000000001000000000000000100000000000000201d3aa2233b91add56e9b89574fd69e12e9d23dec9dc72db6e6d0fe8d1bcd3d910000000000000001000000000000000000000000000000209dedd3c8d9111eaae6e346a23db97436b0f402a56e62edef9a21f054f1fd2b45000000000000000100000000000000010000000000000020fff772654f3af7c8f9c95d786737ebccc3ae1e9ae47307a5594181b3b08695ff0000000000000014000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c0000000000000005000000000000000100000000000000010000000000000020a0368e6257a2538a36867260471dcc6623e02133134066ddf5c41f0e10a3df950000000000000001000000000000000100000000000000206bdeec54f7dc5d17354cdb7530097a76052cd0bc590bb4caccfa6745607184c200000000000000010000000000000000000000000000002091a1a84e836796bff075a433deefbf7e25101832a3dfa8fe5085023a05c3bebe0000000000000001000000000000000100000000000000204416ff43eecbe10f2bf44eb13e02cf951c3da99d4488c99e7e0f7dd3d90cafce000000000000000100000000000000000000000000000020be2083ebcb8e5eb87e562bf062e6d215cfaa4997eac6f483f15c4fd871ecad06000000000000001e0000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e630000000000000007000000000000000100000000000000010000000000000020b15b870f5863ab3bd204dc8d6d479d1c04e4e43a62c3af50c8d64ebfb053ae52000000000000000100000000000000000000000000000020fffe67ddb49f969a2fcf113bd2e7a7440b2f0c3b23e494a0539d2b632d20c8050000000000000001000000000000000000000000000000201ee3c6a81e72922427fb7143300c4ba2e6b17afef0c34ec5dd487b43943a0543000000000000000100000000000000000000000000000020fe36a11a026c432e51bf4e8eb77ee04bbc9dff00ae0bc5d532be95b91d484e860000000000000001000000000000000000000000000000205557e212321aacbd26740638259e16cc5103b3432956c5bb69ad2b6e2503392a0000000000000001000000000000000100000000000000209e3bb8ee3ce9ff666177b27136fed42cb363c7cabe90e5215830e9c88727e55c0000000000000001000000000000000100000000000000205a63b79d9bdc6f6ef6fa02370ddf7cd533cf9028f080c1b673f8c0c8a7756d3e000000000000001e00000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d487000000000000000600000000000000010000000000000001000000000000002085a908a127f6b193f4ef9e5c74797bec786af9acedaf5d038e9451ec1c3d351f000000000000000100000000000000000000000000000020898fce017de36c56a496c2d075e9a3589b8a6c632cb9c88c17c616b9dedc60b8000000000000000100000000000000000000000000000020eef772e834ab948f74fe439b2765a904f6737992cd2a6c66e5b0a2076e78a0bf000000000000000100000000000000000000000000000020419f3dc9d443c3df07838567fe3d290c6219bd356f3f46dba8090b9d8565cffc0000000000000001000000000000000000000000000000209dedd3c8d9111eaae6e346a23db97436b0f402a56e62edef9a21f054f1fd2b45000000000000000100000000000000010000000000000020fff772654f3af7c8f9c95d786737ebccc3ae1e9ae47307a5594181b3b08695ff000000000000001e000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c00000000000000050000000000000001000000000000000100000000000000207aa6510bda4e0ecaebc65c79eb393e806122e5528076754acddcaf9ddc391e4d00000000000000010000000000000000000000000000002041f935ee7b8e9d4e4c37487dbeefbea7b5a747f4dd17ce3b3d48d14596b4e72e000000000000000100000000000000000000000000000020929d0189eb8b3e306cd93f3be03855fe5bd6e6618a882ced8479cadca3ef7fc400000000000000010000000000000000000000000000002019437050708dd830be222646c89d46c2eb36070ff99c92acce71ffd5b0b44384000000000000000100000000000000000000000000000020be2083ebcb8e5eb87e562bf062e6d215cfaa4997eac6f483f15c4fd871ecad0600000000000000170000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e630000000000000007000000000000000100000000000000000000000000000020599d1bf380a068738c5999aa5c956a93ebcbde3a151eaace2f3b784d9585422b000000000000000100000000000000000000000000000020e7e34aadae33b44b777965a45b2d15cbd15069af0dcf0b26d33a838994dab5480000000000000001000000000000000000000000000000201c88b470940b086f3bcb2a9c1deb4fac39468f9d8c03e4ee2c93715bdfd36793000000000000000100000000000000010000000000000020439fe973303483577ecab19db8caf1eb316ab2a99e8f21e89acb06368d44beef0000000000000001000000000000000000000000000000205557e212321aacbd26740638259e16cc5103b3432956c5bb69ad2b6e2503392a0000000000000001000000000000000100000000000000209e3bb8ee3ce9ff666177b27136fed42cb363c7cabe90e5215830e9c88727e55c0000000000000001000000000000000100000000000000205a63b79d9bdc6f6ef6fa02370ddf7cd533cf9028f080c1b673f8c0c8a7756d3e000000000000001700000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d487000000000000000600000000000000010000000000000000000000000000002086889ddc8d9e4979bfa600b5cd027847947a35aade48ff618e5f592a65b83289000000000000000100000000000000000000000000000020fa8c57349cd8e988761c9bf04624f98d40aad1258694ef86a33a29ef41f3336a000000000000000100000000000000000000000000000020fb410790acd5fdbf89d24f2ede1d32c95e8336f3583010cf24f41e2ac1fb39d60000000000000001000000000000000100000000000000201d3aa2233b91add56e9b89574fd69e12e9d23dec9dc72db6e6d0fe8d1bcd3d910000000000000001000000000000000000000000000000209dedd3c8d9111eaae6e346a23db97436b0f402a56e62edef9a21f054f1fd2b45000000000000000100000000000000010000000000000020fff772654f3af7c8f9c95d786737ebccc3ae1e9ae47307a5594181b3b08695ff0000000000000017000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c000000000000000500000000000000010000000000000000000000000000002092eb996e80537dc31c88663e3f823c2c8b62d2eb287accdc28b3729d0703df6000000000000000010000000000000000000000000000002093c2f58026d47aa6bd82686021e20b129925139433f046168b00a8775db238be00000000000000010000000000000000000000000000002091a1a84e836796bff075a433deefbf7e25101832a3dfa8fe5085023a05c3bebe0000000000000001000000000000000100000000000000204416ff43eecbe10f2bf44eb13e02cf951c3da99d4488c99e7e0f7dd3d90cafce000000000000000100000000000000000000000000000020be2083ebcb8e5eb87e562bf062e6d215cfaa4997eac6f483f15c4fd871ecad06000000000000001f0000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e630000000000000007000000000000000100000000000000000000000000000020b57bf905c639a799c9fbf01da746c6854e9da77de76bbe6186df70a1ef95ba70000000000000000100000000000000000000000000000020fffe67ddb49f969a2fcf113bd2e7a7440b2f0c3b23e494a0539d2b632d20c8050000000000000001000000000000000000000000000000201ee3c6a81e72922427fb7143300c4ba2e6b17afef0c34ec5dd487b43943a0543000000000000000100000000000000000000000000000020fe36a11a026c432e51bf4e8eb77ee04bbc9dff00ae0bc5d532be95b91d484e860000000000000001000000000000000000000000000000205557e212321aacbd26740638259e16cc5103b3432956c5bb69ad2b6e2503392a0000000000000001000000000000000100000000000000209e3bb8ee3ce9ff666177b27136fed42cb363c7cabe90e5215830e9c88727e55c0000000000000001000000000000000100000000000000205a63b79d9bdc6f6ef6fa02370ddf7cd533cf9028f080c1b673f8c0c8a7756d3e000000000000001f00000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d4870000000000000006000000000000000100000000000000000000000000000020284325469dc675e0360ae715af1f9f4aa4951a0b1c1d8ed3c65da0fefa16f680000000000000000100000000000000000000000000000020898fce017de36c56a496c2d075e9a3589b8a6c632cb9c88c17c616b9dedc60b8000000000000000100000000000000000000000000000020eef772e834ab948f74fe439b2765a904f6737992cd2a6c66e5b0a2076e78a0bf000000000000000100000000000000000000000000000020419f3dc9d443c3df07838567fe3d290c6219bd356f3f46dba8090b9d8565cffc0000000000000001000000000000000000000000000000209dedd3c8d9111eaae6e346a23db97436b0f402a56e62edef9a21f054f1fd2b45000000000000000100000000000000010000000000000020fff772654f3af7c8f9c95d786737ebccc3ae1e9ae47307a5594181b3b08695ff000000000000001f000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c00000000000000050000000000000001000000000000000000000000000000203d459898e5917fe5627848ee6da9448d8b05360947d45e408293e71f0c38578f00000000000000010000000000000000000000000000002041f935ee7b8e9d4e4c37487dbeefbea7b5a747f4dd17ce3b3d48d14596b4e72e000000000000000100000000000000000000000000000020929d0189eb8b3e306cd93f3be03855fe5bd6e6618a882ced8479cadca3ef7fc400000000000000010000000000000000000000000000002019437050708dd830be222646c89d46c2eb36070ff99c92acce71ffd5b0b44384000000000000000100000000000000000000000000000020be2083ebcb8e5eb87e562bf062e6d215cfaa4997eac6f483f15c4fd871ecad06000000000000001a0000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e630000000000000007000000000000000100000000000000010000000000000020ac0f55a69aa7de6bf0e578dd3801650bad210e2414984e08b18ac61c5df4860000000000000000010000000000000000000000000000002028341ede75d2ef06bfe13bbeee6b5c35cbc0fd8322130f5aeb56b5cf32c584e5000000000000000100000000000000010000000000000020360de1e1fe41da256567e19a623d1143bf34f8300179317f0ee23637a1496984000000000000000100000000000000000000000000000020fe36a11a026c432e51bf4e8eb77ee04bbc9dff00ae0bc5d532be95b91d484e860000000000000001000000000000000000000000000000205557e212321aacbd26740638259e16cc5103b3432956c5bb69ad2b6e2503392a0000000000000001000000000000000100000000000000209e3bb8ee3ce9ff666177b27136fed42cb363c7cabe90e5215830e9c88727e55c0000000000000001000000000000000100000000000000205a63b79d9bdc6f6ef6fa02370ddf7cd533cf9028f080c1b673f8c0c8a7756d3e000000000000001a00000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d4870000000000000006000000000000000100000000000000010000000000000020ec19530ba3c8e532d436daf323283e3d1fcc9fa9b53cc67b9a249455e989fa3b00000000000000010000000000000000000000000000002071e1b34d4462f76c0df1694ec6f9b40f08cbaf8010ce392863ad7cff3ea79bde000000000000000100000000000000010000000000000020a406da53348c4c7e0239eb6a2fc7fdb8e52304f542b526606966b0a389120188000000000000000100000000000000000000000000000020419f3dc9d443c3df07838567fe3d290c6219bd356f3f46dba8090b9d8565cffc0000000000000001000000000000000000000000000000209dedd3c8d9111eaae6e346a23db97436b0f402a56e62edef9a21f054f1fd2b45000000000000000100000000000000010000000000000020fff772654f3af7c8f9c95d786737ebccc3ae1e9ae47307a5594181b3b08695ff000000000000001a000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c0000000000000005000000000000000100000000000000010000000000000020eea1b50ec40a1d88c2995fadbcd9f72a382913df10f4333fcb9be71e194fe87600000000000000010000000000000000000000000000002008f60556d73bb163220ae34d041b7dbe7733e8f9227c3af0a177a00b4b742bed000000000000000100000000000000010000000000000020c9de92c70724f2fa66cdd10cb0c2b9e1cc33e37ec8233a5650e23f84148402e000000000000000010000000000000000000000000000002019437050708dd830be222646c89d46c2eb36070ff99c92acce71ffd5b0b44384000000000000000100000000000000000000000000000020be2083ebcb8e5eb87e562bf062e6d215cfaa4997eac6f483f15c4fd871ecad06000000000000000c0000000000000020e9585d034cb679e41ed017aca9f733e1453b98feffff268ef67b10a4d9cd8e6300000000000000070000000000000001000000000000000100000000000000203d67e891d44f5cecad2331b37af621f439ca5bd2342dea8efd59ba26287c040f00000000000000010000000000000001000000000000002042877b2cba3d1570bb3b50091755de23f1d7444ec6b12b83dd73760da9b3988e0000000000000001000000000000000000000000000000201aed8ecced497889326ef67a146e0204c4108f8085e91a939ef0543a35c0c5c000000000000000010000000000000000000000000000002025792043171cc4f0cd46bcdcb41991bddf423d2bf5a2d92b108cc43718a777c400000000000000010000000000000001000000000000002099055a5888504b4ed0efd5c8af2f74de5a3393c42b7bf782fc33893679ecf96d0000000000000001000000000000000100000000000000209e3bb8ee3ce9ff666177b27136fed42cb363c7cabe90e5215830e9c88727e55c0000000000000001000000000000000100000000000000205a63b79d9bdc6f6ef6fa02370ddf7cd533cf9028f080c1b673f8c0c8a7756d3e000000000000000c00000000000000208ef370db3cb27007677913d01c918d47ae91cfb8b23d3de351487fcbd560d4870000000000000006000000000000000100000000000000010000000000000020048f22f5e9be99ff08bee5e1d9d4a515b0bc8c5b236ebdc52ec29ef7cd77be530000000000000001000000000000000100000000000000209cc3cf496fe8ce5bc784e21b86b497b39c543f22ebf57bce4bc41da1ee5d9ed1000000000000000100000000000000000000000000000020f702b28cbc382aed2634a1cc751d12e676d74a66fd98ce3e17dfc965f1d74ad10000000000000001000000000000000000000000000000209bdd6b7b6cb5c1ad04c3223eb734f02259a900dabfa2e5fbdf2c53f1ba29a89800000000000000010000000000000001000000000000002006fce0ce3069ee6294018d140a01041f6b9e176142ef829c02e133dfe9b2de34000000000000000100000000000000010000000000000020fff772654f3af7c8f9c95d786737ebccc3ae1e9ae47307a5594181b3b08695ff000000000000000c000000000000002041acf452f2cfcc262df4243c0ecc2e0530739ed713cdca7308187408ac9e7d9c00000000000000050000000000000001000000000000000100000000000000209f7120f23a7dc936ece89768acd7a10948b7f8e3a3c79e9d7cf32e35b63c0388000000000000000100000000000000010000000000000020f12525946b31c3188fc50cee9b7544de3bf4b598d9b9e0dd535b10a78d0bb27b000000000000000100000000000000000000000000000020644e758401b5e0e7263e1ceadaa1172bbfbec88158f44db196a188aacda03e6600000000000000010000000000000000000000000000002085c13800d5031086d1af1e59d5969748b38b9482fe9db3f8607940e29d5568b3000000000000000100000000000000010000000000000020e5d3c6a76342fcad913e816a80c0ef42f59c71a5881bb0b5b21cb0d97dc4647900000000000000020be8da3d719afa8958d36473320cf81fb4f6004ea77570ffec5745379d2a137e24953dd5c699c9959489f849fa0ebf06f0b971c60d754e3cd098754a227fc0d46b8c13a7 \ No newline at end of file diff --git a/contracts/zkllvm/circuit2/commitment.sol b/contracts/zkllvm/circuit2/commitment.sol index 2f13324..1dfdb2f 100644 --- a/contracts/zkllvm/circuit2/commitment.sol +++ b/contracts/zkllvm/circuit2/commitment.sol @@ -37,7 +37,7 @@ library modular_commitment_scheme_circuit2 { uint256 constant unique_points = 5; uint256 constant permutation_point = 3; uint256 constant quotient_point = 1; - uint256 constant lookup_point = 94325795983600; + uint256 constant lookup_point = 0; bytes constant points_ids = hex"02020202020202020404020200010101"; uint256 constant omega = 14788168760825820622209131888203028446852016562542525606630160374691593895118; uint256 constant _etha = 12217208067492249031102872072655908974751031861422067257283053495957748658893; @@ -250,8 +250,8 @@ library modular_commitment_scheme_circuit2 { } function compute_combined_Q(bytes calldata blob,commitment_state memory state) internal view returns(uint256[2] memory y){ - for(uint256 p = 0; p < unique_points; ){ - uint256[2] memory tmp; + uint256[2][unique_points] memory values; + { uint256 offset = state.initial_data_offset - state.poly_num * 0x40; // Save initial data offset for future use; uint256 cur = 0; for(uint256 b = 0; b < batches_num;){ @@ -263,17 +263,21 @@ library modular_commitment_scheme_circuit2 { else if(b == 4) cur_point = lookup_point; else console.log("Wrong index"); - tmp[0] = mulmod(tmp[0], state.theta, modulus); - tmp[1] = mulmod(tmp[1], state.theta, modulus); - - if(cur_point == p){ - tmp[0] = addmod(tmp[0], basic_marshalling.get_uint256_be(blob, offset), modulus); - tmp[1] = addmod(tmp[1], basic_marshalling.get_uint256_be(blob, offset + 0x20), modulus); + for(uint256 k = 0; k < unique_points; ){ + values[k][0] = mulmod(values[k][0], state.theta, modulus); + values[k][1] = mulmod(values[k][1], state.theta, modulus); + unchecked{k++;} } + + values[cur_point][0] = addmod(values[cur_point][0], basic_marshalling.get_uint256_be(blob, offset), modulus); + values[cur_point][1] = addmod(values[cur_point][1], basic_marshalling.get_uint256_be(blob, offset + 0x20), modulus); unchecked{offset += 0x40;j++; cur++;} } unchecked{b++;} } + } + for(uint256 p = 0; p < unique_points; ){ + uint256[2] memory tmp = values[p]; tmp[0] = mulmod(tmp[0], state.factors[p], modulus); tmp[1] = mulmod(tmp[1], state.factors[p], modulus); uint256 s = state.x; @@ -420,6 +424,40 @@ library modular_commitment_scheme_circuit2 { types.transcript_data memory tr_state; tr_state.current_challenge = transcript_state; commitment_state memory state; + + { + uint256 poly_at_eta; + /* 1 - 2*permutation_size */ + poly_at_eta = basic_marshalling.get_uint256_be(blob, 40);// 0 + if(poly_at_eta != 0x1b02b1d914ea72056989679d7826ca1f9adbc9880002cf6daffb7f1fa3b332cd) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x68);// 0x1 + if(poly_at_eta != 0x4925359c68cba0ddaf87fd463f6daed7e844deb500155000cfe079de79e6639a) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0xa8);// 0x2 + if(poly_at_eta != 0x304dd9fa371b70eeffd08ccb957867d20aeb86e7009bc009af235519554cb932) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0xe8);// 0x3 + if(poly_at_eta != 0x6a45a7312e851bf898402981030726b3a4f5684b04458845c9f753b35519105c) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x128);// 0x4 + if(poly_at_eta != 0x1b02b1d914ea72056989679d7826ca1f9adbc9880002cf6daffb7f1fa3b332cd) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x168);// 0x5 + if(poly_at_eta != 0x3d9bd931d08eee60195862ede438d303f80e10fc9093f2a0920d1f3d2bed12c9) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x1a8);// 0x6 + if(poly_at_eta != 0x5d118568c35ccff0c8e14aeb77fcd0a05ba585f78d646348b66c554b10625e60) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x1e8);// 0x7 + if(poly_at_eta != 0x3a68771f10abc9d88dbdf7ce531cd3044141f573048011fdb1b76e4ec34435a6) return false; + /* 2 - special selectors */ + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x248);// 0x8 + if(poly_at_eta != 0x3f1b4adcabfaa14cf2ee7ec3990f58d91ae75bfaaefe1327313d89eb23baf96f) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x2a8);// 0x9 + if(poly_at_eta != 0x662761bdeda7376d374c58b68475ecfa30064120c27daa97edfbda94eecaeaff) return false; + /* 3 - constant columns */ + /* 4 - selector columns */ + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x2e8);// 0xa + if(poly_at_eta != 0x369369e984155e5f975bd41103c801ea569e500244152d768985604be0800b06) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x328);// 0xb + if(poly_at_eta != 0x3cd3d24de7686966f8fa3577ea539d516c0a16d46d0e2c283db58b157952ca53) return false; + } + + { uint256 offset; diff --git a/contracts/zkllvm/circuit2/gate_0.sol b/contracts/zkllvm/circuit2/gate_0.sol deleted file mode 100644 index 64cd081..0000000 --- a/contracts/zkllvm/circuit2/gate_0.sol +++ /dev/null @@ -1,51 +0,0 @@ - -// SPDX-License-Identifier: Apache-2.0. -//---------------------------------------------------------------------------// -// Copyright (c) 2023 -- Generated by zkllvm-transpiler -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//---------------------------------------------------------------------------// -pragma solidity >=0.8.4; - -import "../../../contracts/basic_marshalling.sol"; - -library gate_circuit2_0{ - uint256 constant modulus = 52435875175126190479447740508185965837690552500527637822603658699938581184513; - - function evaluate_gate_be( - bytes calldata blob, - uint256 theta, - uint256 theta_acc - ) external pure returns (uint256 F, uint256) { - uint256 sum; - uint256 gate; - uint256 prod; - - gate = 0; - sum = 0; - prod = basic_marshalling.get_uint256_be(blob, 192); - sum = addmod(sum, prod, modulus); - prod = 52435875175126190479447740508185965837690552500527637822603658699938581184512; - prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 224), modulus); - sum = addmod(sum, prod, modulus); - prod = basic_marshalling.get_uint256_be(blob, 160); - sum = addmod(sum, prod, modulus); - gate = addmod(gate, mulmod(theta_acc, sum, modulus), modulus); - theta_acc = mulmod(theta_acc, theta, modulus); - gate = mulmod(gate, basic_marshalling.get_uint256_be(blob, 0), modulus); - F = addmod(F, gate, modulus); - - return( F, theta_acc ); - } -} - \ No newline at end of file diff --git a/contracts/zkllvm/circuit2/gate_1.sol b/contracts/zkllvm/circuit2/gate_1.sol deleted file mode 100644 index f09b7eb..0000000 --- a/contracts/zkllvm/circuit2/gate_1.sol +++ /dev/null @@ -1,52 +0,0 @@ - -// SPDX-License-Identifier: Apache-2.0. -//---------------------------------------------------------------------------// -// Copyright (c) 2023 -- Generated by zkllvm-transpiler -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//---------------------------------------------------------------------------// -pragma solidity >=0.8.4; - -import "../../../contracts/basic_marshalling.sol"; - -library gate_circuit2_1{ - uint256 constant modulus = 52435875175126190479447740508185965837690552500527637822603658699938581184513; - - function evaluate_gate_be( - bytes calldata blob, - uint256 theta, - uint256 theta_acc - ) external pure returns (uint256 F, uint256) { - uint256 sum; - uint256 gate; - uint256 prod; - - gate = 0; - sum = 0; - prod = basic_marshalling.get_uint256_be(blob, 128); - sum = addmod(sum, prod, modulus); - prod = 52435875175126190479447740508185965837690552500527637822603658699938581184512; - prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 224), modulus); - sum = addmod(sum, prod, modulus); - prod = basic_marshalling.get_uint256_be(blob, 160); - prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 192), modulus); - sum = addmod(sum, prod, modulus); - gate = addmod(gate, mulmod(theta_acc, sum, modulus), modulus); - theta_acc = mulmod(theta_acc, theta, modulus); - gate = mulmod(gate, basic_marshalling.get_uint256_be(blob, 64), modulus); - F = addmod(F, gate, modulus); - - return( F, theta_acc ); - } -} - \ No newline at end of file diff --git a/contracts/zkllvm/circuit2/gate_argument.sol b/contracts/zkllvm/circuit2/gate_argument.sol index 6a404fb..e5aa99d 100644 --- a/contracts/zkllvm/circuit2/gate_argument.sol +++ b/contracts/zkllvm/circuit2/gate_argument.sol @@ -21,8 +21,6 @@ import "../../types.sol"; import "../../basic_marshalling.sol"; import "../../interfaces/modular_gate_argument.sol"; import "hardhat/console.sol"; -import "./gate_0.sol"; -import "./gate_1.sol"; contract modular_gate_argument_circuit2 is IGateArgument{ @@ -35,9 +33,44 @@ contract modular_gate_argument_circuit2 is IGateArgument{ ) external view returns (uint256 F){ uint256 theta_acc = 1; uint256 eval; + uint256 x; - (eval, theta_acc) = gate_circuit2_0.evaluate_gate_be( blob, theta, theta_acc ); F = addmod(F, eval, modulus); - (eval, theta_acc) = gate_circuit2_1.evaluate_gate_be( blob, theta, theta_acc ); F = addmod(F, eval, modulus); + uint256 prod; + uint256 sum; + uint256 gate; +// gate === 0 === + gate = 0; +// constraint 0 + sum = 0; + prod = basic_marshalling.get_uint256_be(blob, 224); + prod = mulmod(prod, 52435875175126190479447740508185965837690552500527637822603658699938581184512, modulus); + sum = addmod(sum, prod, modulus); + prod = basic_marshalling.get_uint256_be(blob, 192); + sum = addmod(sum, prod, modulus); + prod = basic_marshalling.get_uint256_be(blob, 160); + sum = addmod(sum, prod, modulus); + sum = mulmod(sum, theta_acc, modulus); + theta_acc = mulmod(theta, theta_acc, modulus); + gate = addmod(gate, sum, modulus); + gate = mulmod(gate, basic_marshalling.get_uint256_be(blob, 0), modulus); + F = addmod(F, gate, modulus); +// gate === 1 === + gate = 0; +// constraint 0 + sum = 0; + prod = basic_marshalling.get_uint256_be(blob, 128); + sum = addmod(sum, prod, modulus); + prod = basic_marshalling.get_uint256_be(blob, 224); + prod = mulmod(prod, 52435875175126190479447740508185965837690552500527637822603658699938581184512, modulus); + sum = addmod(sum, prod, modulus); + prod = basic_marshalling.get_uint256_be(blob, 160); + prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 192), modulus); + sum = addmod(sum, prod, modulus); + sum = mulmod(sum, theta_acc, modulus); + theta_acc = mulmod(theta, theta_acc, modulus); + gate = addmod(gate, sum, modulus); + gate = mulmod(gate, basic_marshalling.get_uint256_be(blob, 64), modulus); + F = addmod(F, gate, modulus); } } \ No newline at end of file diff --git a/contracts/zkllvm/circuit2/gate_libs_list.json b/contracts/zkllvm/circuit2/gate_libs_list.json deleted file mode 100644 index 28309ff..0000000 --- a/contracts/zkllvm/circuit2/gate_libs_list.json +++ /dev/null @@ -1,4 +0,0 @@ -[ -"gate_circuit2_0", -"gate_circuit2_1" -] diff --git a/contracts/zkllvm/circuit2/lookup_argument.sol b/contracts/zkllvm/circuit2/lookup_argument.sol index c4bce5c..e4233b1 100644 --- a/contracts/zkllvm/circuit2/lookup_argument.sol +++ b/contracts/zkllvm/circuit2/lookup_argument.sol @@ -19,5 +19,4 @@ pragma solidity >=0.8.4; library modular_lookup_argument_circuit2{ -} - \ No newline at end of file +} diff --git a/contracts/zkllvm/circuit2/modular_verifier.sol b/contracts/zkllvm/circuit2/modular_verifier.sol index a8e0596..8fcdd4c 100644 --- a/contracts/zkllvm/circuit2/modular_verifier.sol +++ b/contracts/zkllvm/circuit2/modular_verifier.sol @@ -39,8 +39,8 @@ contract modular_verifier_circuit2 is IModularVerifier{ address _permutation_argument_address; address _lookup_argument_address; address _commitment_contract_address; - uint64 constant sorted_columns = 0; - uint64 constant f_parts = 9; + uint64 constant sorted_columns = 0; + uint64 constant f_parts = 8; // Individually on parts uint64 constant z_offset = 0xa1; uint64 constant table_offset = z_offset + 0x80 * 4 + 0xc0; uint64 constant table_end_offset = table_offset + 288; @@ -48,12 +48,10 @@ contract modular_verifier_circuit2 is IModularVerifier{ uint64 constant rows_amount = 16; uint256 constant omega = 14788168760825820622209131888203028446852016562542525606630160374691593895118; uint256 constant special_selectors_offset = z_offset + 4 * 0x80; - - function initialize( // address permutation_argument_address, - address lookup_argument_address, + address lookup_argument_address, address gate_argument_address, address commitment_contract_address ) public{ @@ -82,7 +80,8 @@ contract modular_verifier_circuit2 is IModularVerifier{ bool b; } -function public_input_direct(bytes calldata blob, uint256[] calldata public_input, verifier_state memory state) internal view + // Public input columns + function public_input_direct(bytes calldata blob, uint256[] calldata public_input, verifier_state memory state) internal view returns (bool check){ check = true; @@ -99,51 +98,53 @@ function public_input_direct(bytes calldata blob, uint256[] calldata public_inpu ), modulus ); - + result = addmod( - result, + result, mulmod( public_input[i], L, modulus - ), + ), modulus ); } Omega = mulmod(Omega, omega, modulus); unchecked{i++;} } - result = mulmod(result, state.Z_at_xi, modulus); + result = mulmod( + result, addmod(field.pow_small(state.xi, rows_amount, modulus), modulus - 1, modulus), modulus + ); + result = mulmod(result, field.inverse_static(rows_amount, modulus), modulus); // Input is proof_map.eval_proof_combined_value_offset - if( result != mulmod(basic_marshalling.get_uint256_be(blob, 256), rows_amount, modulus)) check = false; + if( result != basic_marshalling.get_uint256_be( + blob, 256 + )) check = false; } - function verify( bytes calldata blob, uint256[] calldata public_input - ) public view{ + ) public view returns (bool result) { verifier_state memory state; state.b = true; state.gas = gasleft(); state.xi = basic_marshalling.get_uint256_be(blob, 0x79); state.Z_at_xi = addmod(field.pow_small(state.xi, rows_amount, modulus), modulus-1, modulus); state.l0 = mulmod( - state.Z_at_xi, - field.inverse_static(mulmod(addmod(state.xi, modulus - 1, modulus), rows_amount, modulus), modulus), + state.Z_at_xi, + field.inverse_static(mulmod(addmod(state.xi, modulus - 1, modulus), rows_amount, modulus), modulus), modulus ); - - //Direct public input check + //0. Direct public input check if(public_input.length > 0) { if (!public_input_direct(blob[865:865+352], public_input, state)) { console.log("Wrong public input!"); state.b = false; } } - - //1. Init transcript + //1. Init transcript types.transcript_data memory tr_state; tr_state.current_challenge = transcript_state; @@ -153,8 +154,8 @@ function public_input_direct(bytes calldata blob, uint256[] calldata public_inpu //3. Permutation argument uint256[3] memory permutation_argument = modular_permutation_argument_circuit2.verify( - blob[0xa1:865+352], - transcript.get_field_challenge(tr_state, modulus), + blob[0xa1:865+352], + transcript.get_field_challenge(tr_state, modulus), transcript.get_field_challenge(tr_state, modulus), state.l0 ); @@ -163,6 +164,7 @@ function public_input_direct(bytes calldata blob, uint256[] calldata public_inpu state.F[2] = permutation_argument[2]; } + //4. Lookup library call //No lookups //5. Push permutation batch to transcript @@ -172,13 +174,28 @@ function public_input_direct(bytes calldata blob, uint256[] calldata public_inpu //6. Gate argument IGateArgument modular_gate_argument = IGateArgument(_gate_argument_address); state.F[7] = modular_gate_argument.verify(blob[table_offset:table_end_offset], transcript.get_field_challenge(tr_state, modulus)); + state.F[7] = mulmod( + state.F[7], + addmod( + 1, + modulus - addmod( + basic_marshalling.get_uint256_be(blob, special_selectors_offset), + basic_marshalling.get_uint256_be(blob, special_selectors_offset + 0x60), + modulus + ), + modulus + ), + modulus + ); } - //No public input gate + + // No public input gate + uint256 F_consolidated; { //7. Push quotient to transcript for( uint8 i = 0; i < f_parts;){ - F_consolidated = addmod(F_consolidated, mulmod(state.F[i], transcript.get_field_challenge(tr_state, modulus), modulus), modulus); + F_consolidated = addmod(F_consolidated, mulmod(state.F[i],transcript.get_field_challenge(tr_state, modulus), modulus), modulus); unchecked{i++;} } uint256 points_num = basic_marshalling.get_length(blob, 0x79 + 0x20); @@ -208,8 +225,8 @@ function public_input_direct(bytes calldata blob, uint256[] calldata public_inpu uint256 factor = 1; for(uint64 i = 0; i < uint64(uint8(blob[z_offset + basic_marshalling.get_length(blob, z_offset - 0x8) *0x20 + 0xf]));){ T_consolidated = addmod( - T_consolidated, - mulmod(basic_marshalling.get_uint256_be(blob, table_offset + quotient_offset + i *0x20), factor, modulus), + T_consolidated, + mulmod(basic_marshalling.get_uint256_be(blob, table_offset + quotient_offset + i *0x20), factor, modulus), modulus ); factor = mulmod(factor, state.Z_at_xi + 1, modulus); @@ -223,6 +240,7 @@ function public_input_direct(bytes calldata blob, uint256[] calldata public_inpu } console.log("Gas for verification:", state.gas-gasleft()); + result = state.b; } -} +} \ No newline at end of file diff --git a/contracts/zkllvm/circuit2/proof.bin b/contracts/zkllvm/circuit2/proof.bin index ca3fc61..205a5ca 100644 --- a/contracts/zkllvm/circuit2/proof.bin +++ b/contracts/zkllvm/circuit2/proof.bin @@ -1 +1 @@ -0x0300000000000000206e0fe76ccc16389dabe44f38a09dcb5c41e9f34af073814f6971e5b8f20e95bc0000000000000020a21d7eff64e31e0c8164e05b74a1b3949edc3c6c67fa6b7a5ba5bd0556b41d680000000000000020dbc43b8e6cc13c7a990560c3fc7275cda79df3aeeac7106db3fe9cb63ad29a1e0f6b69e3c386635a500becfbedac41b14ee8d59f85fb3c2979d810d10629cd4e00000000000000260f6b69e3c386635a500becfbedac41b14ee8d59f85fb3c2979d810d10629cd4e1b02b1d914ea72056989679d7826ca1f9adbc9880002cf6daffb7f1fa3b332cd6befe53a58acb77830537ae37fb5cbd9285dd75ca9dea52254e875b72b249d224925359c68cba0ddaf87fd463f6daed7e844deb500155000cfe079de79e6639a3bfd58a5730814981eed4c08442d82d0241f0b76a5205bf6525b38082e004be8304dd9fa371b70eeffd08ccb957867d20aeb86e7009bc009af235519554cb9324824768ca86018503ecf8c21c0590ba101a0643583e76fbf407e883c420213556a45a7312e851bf898402981030726b3a4f5684b04458845c9f753b35519105c0f6b69e3c386635a500becfbedac41b14ee8d59f85fb3c2979d810d10629cd4e1b02b1d914ea72056989679d7826ca1f9adbc9880002cf6daffb7f1fa3b332cd311783623d393da06076d00c033882854dd9fe507d917b6af1e42525c23465e33d9bd931d08eee60195862ede438d303f80e10fc9093f2a0920d1f3d2bed12c91e5d83ce8775e89538baadea54ec4d0bb9988dd85d8bb74998273f0356d3ad115d118568c35ccff0c8e14aeb77fcd0a05ba585f78d646348b66c554b10625e60190bb6368f8a3f754b2f5a4842002c99e6ffc656b260b7b382b7e0b299b938c03a68771f10abc9d88dbdf7ce531cd3044141f573048011fdb1b76e4ec34435a6027a47e1e4dd96059e238db1e4f9e50d4fb49b509820f1466df333a98c5a809302181be99ea8a03b4e2aeafe6747837f7a4912c44851e818936af0154e39c94c3f1b4adcabfaa14cf2ee7ec3990f58d91ae75bfaaefe1327313d89eb23baf96f04673ae3240b899503e6b1249f6b955574881e72f458b312ccfe800f03aeecc72ca42c7624b740eaa079dca4c5b6fb8310ec9f7da2ae4c4830ddc1b5b24f5f6b662761bdeda7376d374c58b68475ecfa30064120c27daa97edfbda94eecaeaff3aecd24c1adad158d580e59b7a3b3005536aa0a46e644387275bc4ce9b4dfa76369369e984155e5f975bd41103c801ea569e500244152d768985604be0800b062405a440915bf6d75d3b451fa2728452162c6ee49827a6e1516076e718aad9823cd3d24de7686966f8fa3577ea539d516c0a16d46d0e2c283db58b157952ca531e3de9338c4bdfe7455d843942ff0d79d11f720fa4bbfcc3a5393216581247c93e9463c4f3cd47253ca6321ca66833672e84c3a35acd4e832b958e46666f635d27f3132dd5a5e689441f73cc5dffab3d5261a9e28ad03ffa0e77991fe192da493c302bd8b5c9949394d341b6125546e86283d2fb8a1541d867d21dccea471993407925006c75d26383092176e82c585cb580f26b036c06dcf5dd77a8faf6bd512b4dd6e700b0d5660197194045ffb61018271d82aaa0175a1eb4f3ec1ec204a47246da55d9e0fae5d40dafb3a8a65c14e7cb23016d9b59778fb911039b4076621a977275fe367097a8fc79fcd6645d8f415ee0ed3f25f1c557e5bbb72ed0a56e5d4d01fd77ccca79d7c2bfaacba45cbb8476cd1e64bc7e79eeef0d2933ae6b7b191c694b9e62d86a1b72b4bdbe318f48dda70bcaaa7a7d6e80243c69330a7f87279b607c1799e797c7c72044ea9c3c39eec4488f8f3c389d05e45748a23fdb41356839719488572001aa14eebcb0e1b05e7de7869dc8d7f5c0e4f09f82297f350000000000000008000c01040201030500000000000000160202020202020202030302020201010102010101010100000000000000030000000000000020feaf0cf88d8685d494a312ab58407ff6bbbf156455f24d64c686de41468ea1c000000000000000208f69048870ef551677a55d5dd02ba6acedfc619e823dbe6220a7f588a65658790000000000000020fba6df4d32572510e646ef1f9a7b1daf19dc882b01fca6d9485f969ba1301e4e0000000000000003010101000000000000002c519947e7840143b38aeed579d92544a1d482d714b1cb5d445b0e07816f77b3a722545f6ba59c3994a84b028e307c93637f3accee4e32febaa4f1f87d90884c5a6b7a5a07f592e4c7ffa07634c97d8057809d5184dc961ce27d62348e0c45e98d08734d4b340a9880339961d3402457add320527e23683f1c829dcb70f3ba167438c68a44bd5351c6ca082b4148a372448ddb62900824a2376daf6fe855e962d53b271d0e6c4a2b816931acc6c0fe65c0c5e24172f7d9b9c792509016aa169d2c31a4d1e7b06ec496ec8ba6b0df9297cfe5c6c5e739055b86ffcc0f5d5961b3d04248d56b792eb8b146ae31572a0f40356df6de1bc6f900780033f0a1a69e4c31519947e7840143b38aeed579d92544a1d482d714b1cb5d445b0e07816f77b3a722545f6ba59c3994a84b028e307c93637f3accee4e32febaa4f1f87d90884c5a164c567ff83ae28f67b6f888db44bf07b363ff55d637a14f2ae892f83eb86fde3598aba23be9bf451827af930b69a508c42397500e1333663a7ce39b5ac20ff46375252b6da3caae24bbced6c81742d262cd049f55408dd30bec617e628d30580fc66af2d13e18d81146e3ac06c1e7b8a0913f307ebd98b84ad5593cf5e38f391748091a9903992570efb36ee47e687ea7d1c7ba992c0516c148deae50cf85f60a30fd46b0f3ed60de50f3cbb656e505bb5bdee637b8be8bb2f8743d2df249622de5eb496ef8cb72be648a2f95dd45cc86d07463d1ab41880c53535766b4b36d342a3ca266ffb3349f4cdb2af5f7e669ecd05f53cb049d8122947c82b985b9ae510dd73e659757da335b793c7972d74c71bcd68e4c1b49ebdce66764dd5e3bcc2f5a22662dd7728171b31cf2da83f774fb466e23273abce8340ead7e365c542f11d9d3a09ff8a4cae8a779f77135c82938b7dba5dc9869ddb1dabb4cde45cd7916a8c19cadf8fa17532c52a9629e94374d4016f162fc26416640e94d5fd7e38c2445ba6cb47adb176065f9fe0b1c11a95c218fe0502ad50d495b26a13a92efea0b456ea03ecb4f0290ef04a03008b5ff51e8cf2e65ffd333b600512c5e40777d3b7336f79ae54d87455f5ce7ace0ad182239ffd651a24df54d1db89c7794db024832d57b0424a1e774591921bfef86fd2ac6adb2d81b6f4e1f7dde797621070707b2980ef91d0e7f89817ad5e39cfbbda73094d39d791a8405ac830d6ccef24b5ba820e7b1b055c00c302b09dd38d98f1b7bb18611365141dfa42052152839da089f3d34b948f87c9ba62ec7e3a6ae733ccca56d9dd90bc038553827651edaf53ba7aed311cc700f48235a11d8eaa11155ae4c2383a354137e76b4ef1ad23c7a4791929f561525e1d73d556289326c4ea99c4de689a7ec5ad5b5b4114342a09f0ce8e51109999fb191d18086284019da715f453e2f01433e7a2687fdc26eebac17a130fd98ca93b79782f123552a16440001326bd8a73128ea52ab952b83e9a04f9af917f5892960a57de38b03ba74a3cfd6939f25ec7c20dffaf6ae31d350a72f488dc6f60e1e77e2b0276125cc065e6812cabad260123ba50278d45dfa19bf2040369cf9ba09330a442fb09855ef520352d8eec6c0434fab5eec2c43059c7f4fb38bcb80f6d19ae0051c0e225b776cdd485681fc0825b1368a34d8ec01f37a1fcb4a0ead0bf2084115930e5a946efae68da303f2dd27dbf07dbe8c53f53bd96ca4f5c54906181a85e24f012cd70570937c8b8c39bed912ef7f6101a33c32cc2155f571b94ea39220ebd70de739f671c62af3828e8e306d52c11feef81eff426c6b09205b1dbb29f98e7fa91b038b0faed0f65874b35ee5269df602bc65756121d33d4e658517d0df5b878a1de23e107e24b35f163b06977b6cd6674443839825fc166108ec9398859ba8ba4b4d5f291b7a6ec1102432f32a209a65dec62eb10e3ed03c74834b4ffbaf85ef1ec41f2e10be1e4b3bad6065bc4500031ad6ee55000000000000000604f2063bebec672cc8e873d041689bf409c0988993db4d5828784e6675e705934b0c6d2e8acaab75ee3d8e42acad6c1bc405e3f67fdeb10ffd12d14f390d8da32d60fb55b0aa57ad88865902146bb82135bcc06a8f4f372465b36ed586db0f9f2c2b23f8bbe105004fa4bb1830534d4b55eb8d613062fd7f9a16694d344ea9fc50931c3d0b093c6e82c754717b65c78005415858f4c9131d9544354884b391806b4e9613a24d7b6eed8e738b3738ab2fa8397544403a324be563b28d99e1886f0000000000000004000000000000004a0000000000000020b024bd12fb5b07a167bc8a510f274a06946eac1240e823dd682ec71d18e04b4e00000000000000070000000000000001000000000000000100000000000000201127979a98602f6c0fe9c97d634a02ba9e605c04082425a87a283cbaaa1b2012000000000000000100000000000000000000000000000020c5f6b93ad37d613fb494a003da95bd7ba672ac55f0586d2c7947438152c593be000000000000000100000000000000010000000000000020250e1c64a18f6212b6a945f816a7aa19a74c5412859e159a80d0d3b3c962e7a3000000000000000100000000000000000000000000000020ae39b4caf19460d61b2e9216964104f01cd1a093f497fdbe6ebc76bd9c8b461000000000000000010000000000000001000000000000002003449363278bf61c44b39ef55b9ea4cf53fd2a1342610607a303a38651aed84b000000000000000100000000000000010000000000000020c32a0d03207fdc70dd7f1a4f65654f7f921570d423753644507fb723e9043ef2000000000000000100000000000000000000000000000020a5791a4d1fb68b8c5de94b338a0e0ba2ce64eca86311b65648af6a74b0fb4d91000000000000004a00000000000000206e0fe76ccc16389dabe44f38a09dcb5c41e9f34af073814f6971e5b8f20e95bc0000000000000007000000000000000100000000000000010000000000000020223d9a04ca5944222da292d9d39b1f9270482c7d303ded6ca2b8cc0deff0b3cc000000000000000100000000000000000000000000000020ebef12eacdb7fb02c3d4a999072427dc8742fb6b5dcf00e48d67d07269cda61f000000000000000100000000000000010000000000000020da9c0e8c463880a050e5b53b30694e4ab84a13d2dcdf44abf5b2fef998b7484f000000000000000100000000000000000000000000000020d33519cdcaee8e441533b6503329a37ba9b86fd71f3b9020a82742c6c47880ec0000000000000001000000000000000100000000000000208f5dd6a3562b924871f423783208dc8f67f3bfebce2340d40aea9c2bba7f7d8e000000000000000100000000000000010000000000000020776761c667b614813c6d2035a52419033065c90d625eb51604f8126da59b8837000000000000000100000000000000000000000000000020e8107b4428330f98569aef3a2a72eb91c7df59bb9e25c172e710f4ae8eb76da4000000000000004a0000000000000020a21d7eff64e31e0c8164e05b74a1b3949edc3c6c67fa6b7a5ba5bd0556b41d68000000000000000700000000000000010000000000000001000000000000002023d366f21bdd185690f10121951add652f39c93e461051702501dfb15f587ee10000000000000001000000000000000000000000000000202278da8ba76e9411cff17ae3f23ce92bceeb96fea862c0e014873c7c181a39610000000000000001000000000000000100000000000000205aaa76d7e0549aaa38222d65742b149237301518a27fa0f6791ca75687133421000000000000000100000000000000000000000000000020bab2e2756e4073ad9bf33fbc8f560aee7564ca57914f937bc30b193b1c89abaa000000000000000100000000000000010000000000000020398196b2740f4eeae547d3333a51402af30ce0b959786c635af38925ead7073e0000000000000001000000000000000100000000000000206d29d412ca0ba09ae6198a61ff3fb1b170f43fb56afee674c817d16a9ef01631000000000000000100000000000000000000000000000020fb338b544fbd403f45766eca5f5d32a48c3755169d738ccdb6ce40d1ac1bec45000000000000004a0000000000000020dbc43b8e6cc13c7a990560c3fc7275cda79df3aeeac7106db3fe9cb63ad29a1e0000000000000007000000000000000100000000000000010000000000000020053bc5bbb6c72795efbae18e8b577455d433ce9f0b8af435363da1bb23306b440000000000000001000000000000000000000000000000200637d37f87fba3f969849ec3e073adf88b773437df7671e1ed9bb91603869ae4000000000000000100000000000000010000000000000020a4ec94dc366c7126d6e60bf6bfdcbb06af99d1aab06a4a6c834998944ce1c5670000000000000001000000000000000000000000000000203f02df79e4669b546ce2438502235dcfc4df94cac6b27811d549d160011b103500000000000000010000000000000001000000000000002016a9ec264fb08047e7caf2688dc5a49729957f8283e9fd77faa8f7e78506fece0000000000000001000000000000000100000000000000202717e48d62e4dab4f4450f01e4987410e148ab52a1528c404a9abc6df0a6f45f0000000000000001000000000000000000000000000000208426260fd451d51a91d3b293e8548b32f68073a48c8d66eb9c738ad1e90cda3e0000000000000003000000000000004a0000000000000020feaf0cf88d8685d494a312ab58407ff6bbbf156455f24d64c686de41468ea1c00000000000000007000000000000000100000000000000010000000000000020b9f6fce5fb491112a9f2a097353a917115598e23dd2a0347c87f340b1c67389f00000000000000010000000000000000000000000000002096d144923cda25a1891dce53bc66494b3deee0881731e56daffd7446f46ebecd00000000000000010000000000000001000000000000002093c466593f12d27ffbc6d87f95f946b056793ee3d48df0587dad21d6c0f3ae08000000000000000100000000000000000000000000000020bd1c89af953335b4ec3b9cf5c8f4d0e9664b1df53ec2a09cbb4aad188f7086b3000000000000000100000000000000010000000000000020a91c75e78b44703124a6d5aa395652aec5be728ed3eac23a7d23452543fcfe290000000000000001000000000000000100000000000000200fe9cb2e9e8f1303a0b269dca505f59d561651d6b043756b52dfdd9a87c0bfb8000000000000000100000000000000000000000000000020ced85db91c326c9fdf43b148f48839febfcb312d9197e098044b10c31f1daae5000000000000000a00000000000000208f69048870ef551677a55d5dd02ba6acedfc619e823dbe6220a7f588a65658790000000000000006000000000000000100000000000000010000000000000020170bc87e08fc0c097b223d9c4337042faaacf6e8c33245dde67f937ebcc309240000000000000001000000000000000000000000000000201ebb28966943148d636b57965dd95847ff5738da937d7313c59cef3adab979a1000000000000000100000000000000010000000000000020a29c08eefb8633390c0bd3275707819bf4e0cb2e59841b04edd1a1e5e7b13318000000000000000100000000000000000000000000000020a8dd4e6bd13a27b0587fa5c92a0db6d7326ec014b89af4f72cbb3d7ba51aa3570000000000000001000000000000000100000000000000209abf4ce5476172afc96f609bb27ee4fdb238675f58747e2dc202742e2da914c9000000000000000100000000000000010000000000000020e332267a93104ed072e6933dca7f6a82b3fef91bfde1cf8c821ff2767337d089000000000000000a0000000000000020fba6df4d32572510e646ef1f9a7b1daf19dc882b01fca6d9485f969ba1301e4e00000000000000050000000000000001000000000000000100000000000000207af77f0fce0462273a7fbbd8ded2bce9f43017bc6ad553f2114733c3efc5af5d000000000000000100000000000000000000000000000020c0e5a4b0d9fc02bf3dc1ff8557309f02035fe9200bc148940623b1a9bde93f4500000000000000010000000000000001000000000000002048d5924fd319d142024fea6e835cfa5e5fbdf48ce9cc075bd304a9bb103d5698000000000000000100000000000000000000000000000020bbc730af07a36df10be55ed08ca051ef964f04757d40f460db8ed9c407ebe9940000000000000001000000000000000100000000000000205eb3a1311254a08d50edbcc4ef2186bc85185d843b1fc66973085f7b5fadfa82000000000000000223fa057ec1dc9d4a9e8df7fa547e4d552cde94cd1a8274b53d53f3eb8f4a8cf73cba838943038eb1e51c851f2fb3890ed8a3f2ab0a681283bbcd56d28a04b9d7 \ No newline at end of file +0x030000000000000020d277592a1f41b99afa485f4c42a3654b8fd6d352aa9d23d7834df9300fad277c00000000000000207d96695d6e5e034ed9a9e3558e19054b1529f8f3126e78cd8dc5c86e18e21f51000000000000002011e3a60f680d7c94b700843923562bb14e24721da40a305210b05f9bc1c7af6a076d02cdb87fd35597401fcf7fbab994092a7da914d1d101d26e7629b3e904530000000000000026076d02cdb87fd35597401fcf7fbab994092a7da914d1d101d26e7629b3e904531b02b1d914ea72056989679d7826ca1f9adbc9880002cf6daffb7f1fa3b332cd33fb13a00b7ec75722c0deac7e1b130c40296f9f91bcb70cc1053b23eb5f1e454925359c68cba0ddaf87fd463f6daed7e844deb500155000cfe079de79e6639a10149366d39efb8959988e9f55d7fd45c5e92153fc2ded5c47249dfe6f99d3e0304dd9fa371b70eeffd08ccb957867d20aeb86e7009bc009af235519554cb932709007cfc958e0c1732be65b58e7ece8695fe94be5417d85f20051f50d34cb206a45a7312e851bf898402981030726b3a4f5684b04458845c9f753b35519105c076d02cdb87fd35597401fcf7fbab994092a7da914d1d101d26e7629b3e904531b02b1d914ea72056989679d7826ca1f9adbc9880002cf6daffb7f1fa3b332cd65476cfed5ce98501e1bdca980884f702a00c9a8bbc5e882f3c1f670b57cd4bf3d9bd931d08eee60195862ede438d303f80e10fc9093f2a0920d1f3d2bed12c90b735fee7da58662cfc3ba77b94ba0ab2a3c5799f504d9905f8069ef3f7e87b35d118568c35ccff0c8e14aeb77fcd0a05ba585f78d646348b66c554b10625e6008979b31b607fa74f2688372f0d85a0f5d63d995f280047d29a59d81b3a990003a68771f10abc9d88dbdf7ce531cd3044141f573048011fdb1b76e4ec34435a6073fa327c7433f2cdd0c48b8f980d4d6affc65a9871bb8d353c6d352a6c451a93cfe135937821cafcca2836afecc23591cbafa1dac1e4ae3fb231824a3d3efbc3f1b4adcabfaa14cf2ee7ec3990f58d91ae75bfaaefe1327313d89eb23baf96f5c0e50763d61ec184d141366d8a7fa9505750a949981ddd43a02ff770689bb263ace92c4a76af1ddc4fc1c0bcbf88b0e402f30c0a6e62f251e90de388ad707cd662761bdeda7376d374c58b68475ecfa30064120c27daa97edfbda94eecaeaff55a18419f251e638338e1e39442c76b877e374bf3e1c0c03eb18e268869c915a369369e984155e5f975bd41103c801ea569e500244152d768985604be0800b06048df221d88ffcb1dc6531accce4ddd82bdfa74c7a075cc5b8fc1ec5a2353a943cd3d24de7686966f8fa3577ea539d516c0a16d46d0e2c283db58b157952ca53690aa55054de8a559e504341fa260cb71c175ff43113a0e28857bf1c90e817616d146822c1d922be356b38568404f082a9db122c065141ef8eada46febb654c6706bb2efe091991659a0e776933a9bae820861d210beb210e9eb7d4e0584942c1fd83c0eed5b2480034d71765c23a1d836fc02e9f76083b563b79b2ccfe8f0f75e9fb5520e0421f66d463aee771a3c3488f0d1089ea4bb7eb73e8ba7748e49f50bef2f17eb488cc17e059e3aa13955a4dc478a9a3c33538917c6871299f47fdd3a9b02b405e054a10e6727163a5f24d7c9654359dcddc5d093cd60bba2aeed36692bcacb008ad9f0d0a4d2e5587ebff607cf94ce8e71de2b5655db57e75ee8ec319973133213ac9fe701c96f3f26814b440faea09970b14574699bbd32e511b16c0d83e4a97ca400ff607a5a96f28638202237e99d5e470ff44d3a4b7806c2ba05ba30277dc6901464a56bdfaf74c286dfa37bd359c1a6c8ce7fb253705cfc1d2c8a6f868f2b666b645788277a20e6950a99948d0980e0f95796fd212b16b97a0000000000000008000c01040201030500000000000000160202020202020202030302020201010102010101010100000000000000030000000000000020078b78b592bdb8f457bf244a5a635c504244e5a06f53b97441427099c31ab900000000000000002052ebb33c7fc6f0dd4f952423bd0ca1fa05e9bf499f5d8f3b1e5c933c2e4777990000000000000020f79a7b60ee4a1dd245cd500cdea7390c3328a08241131c5f775fd6a10e1148e30000000000000003010101000000000000002c1579b9c6e6797777851425ea12dcacdae7452d43f6d5756f51cb57e0e3035d155e73ed8c432405d0ae25b21df6c52b2a6c7876bf0928e68fae34a81e1cfca2ec22666d1d23b4c6fc7053315e7a66e1f6ff2698d8bfd7da0c3c8f672735178b9251873a3605e8b64bc2e6a6a98f3af60e54970b2a402681f2c37098d7cae8746f08f1ad25a6b67656abd2a985458c7db65292e5e73eea3e57a7ebd21473a4d0fc6afbfa2d82e706f187672e82c4155a4f012abe1bc1141da758142dea8c5b2f053e9bbc078efd3c5eb2c2a2a4e6d76ffc42044952b867b4659772be8f2981b6e43551eb4b9aa040e98077356322ca680911b95ab04796a799688d416fd67e491d1579b9c6e6797777851425ea12dcacdae7452d43f6d5756f51cb57e0e3035d155e73ed8c432405d0ae25b21df6c52b2a6c7876bf0928e68fae34a81e1cfca2ec6ee0f834b4e3ef490530f4731544cc4f2eec013dbfbb3865aec04a5d79a2a46214b98871a3ce712a71155e86c89e4c09dac93a29ee76c9c92fbc76120b0b9d0a1fcf9f19999a8dba2075e601c9bdf0426d92d6be0f72d90b976a5f4ea951693714b532ef52bcae268021ff90a973b3073a01ec4a871c0bd7f0a160b4ef84ccd22be95a869432b943891463e4d68abe29a5fd68026839bc7983667ea59947390030051c7754aed2969f4d3fbbca2474681ccf43097c60e129bfc6fde1a39aeb844227cbd99b2ecee534e9669a440ed244c575d98dfc27206aa29a559de9e4bcb80e6af3b407f1355bbec47503d2d7faea57574c39274ec0bf273241d5b8cc770369c8afa9359e9d04251bd8c1e86e242f3a7d004eb07aa97a92f9a218a1a9f1a31a8e8ee19165c0db45d82575022a7662822cfba9d02980d2e7354fe8116dce8807c9ddcc248e75fec47b5457b78a35d7f1524f718c772499ab12ba55de74545466ffff1f65045ce8e5dd63808165fdf950ee528a0328bd5a0cbc17d30aa5e05038d544b23adf9e5977815307cf825a06d6d01b9cb0de774622bd129b903c31cb1e1cf8cc24567f9caeea0efe37b707fd27fe1f658f204db91d42ed63afc3ce36046e58eab3cea24cbb386f6a8b55120c328af118b9fd4d887048889d38f73a2114ed56232af1afbcdd3a6d4b12b15516440bf0606e1666353c2e8690633355681a09e69a43e6efaeaa3917085f54906168c4791f0ce2a101ae88e0c44eff427b4095101a56a7426925eb4cdc14872b7ad4c74fd38fe9414825381f04bf689b812d1fe302c5117b97edacbb93ab8b1a6a65b3444b9141d8e441713d7996a4723a6a7001e3344e174a34a0a2ef121bf605011fd45c29c5c25679c2e6ebb83f8f932c91ada67aeb5503ae4df6efe904666837f5ed1ef98b3084b860f01fb727cb8e096060fd4e54e423391853296bdf9457ffb958a87bcc8009cbcfdaa8f215d3c82e36aa50b7590b9390f5b453da96acc50f44cc309cb437a889dfad2afb70e4900e1d3a58957b6b0b699070377983fb1109cb73201aeae9653bf3dd1c2023562418158774e2c132d0f5c28d31c2a2129375d74b7a7c0ebca47f5388a3f85b7e9e1145974343a4e38ba3a1165e535049d5274c6075e8e26a8fda43d2deafdbcdc837e29159e5412adaa42a3569b6c3936f01732482556f4e28fca2a477828dc5540741c29e3447993e885c9f2724625465f785c07acbaf22967572437089ce16da4c7571e6f871fca120ee78c7707ce7b19e2fec8c2640a9fa57d8c4c78dc8e763266c7b0274a5f75e3cdc7c626903a9ea87d672b66530ba6b70ede2f1fea5b0b84d9d9f5de42a17b21174de237d6ddd2fd2469ccc899269cd2b114edf3d5d44825b6e87a73f8369fdcd01f568812560c57fc8c1f1d7c45896162448ffa41c342353be8da658e482f99b2ad45ac442526db559032950e0c396e5a18014bd40879965dde288db3da85358d5e8b525bc6dbcc286b4b4d9f6a566fcc9f781342c5a06000000000000000641b94983b007a27fcf472b5fb60675c2ba0f4154606da8f64d715e0cf9f98b5251763bfe745396f42bc05d7c126029300efa63cdb30391efee2910679916f92b548cb28d10cd2aad73d18e2c192de754f5db877df8d0170f810a644b1c5881cd0c9b34281a61309b3bce0afafa46cfd2457916c168f90078895e0489c92769ec22c75c3aee1e41fec8b0f6205aa90edbce3204adf01faf3ac0e4f14ad3523f553a584f42d67ff3b1f8429e5169987ed69ad9882ced0daed8f25e43838c91f7f5000000000000000400000000000000780000000000000020b024bd12fb5b07a167bc8a510f274a06946eac1240e823dd682ec71d18e04b4e0000000000000007000000000000000100000000000000010000000000000020864a6e5d3d12e5cd66b162014caa0a4d94d0f51d49aa266a97c50b480954eb05000000000000000100000000000000010000000000000020ea221d3445345bd1be5a21fbac1a25c1e4267f9f9b6b8151995674710f05350000000000000000010000000000000001000000000000002066101c789379fe04ae3e26dfe714e0f2a3f93efd154755598204d9e9afda167a0000000000000001000000000000000000000000000000209dc5b73860f1d5fcb4a1bb5fb66ffa37cb3e8fe2d1e91e35ceca9c4273579697000000000000000100000000000000000000000000000020b99b720f65fd2ca634f2e27add86b91881c22c9433b4c0b417df0f2e4db672b40000000000000001000000000000000000000000000000207669c0f3ad1aac4960d43e15fb3c7bdd96a6dd1a4a347da03a0d1619b59396e0000000000000000100000000000000000000000000000020a5791a4d1fb68b8c5de94b338a0e0ba2ce64eca86311b65648af6a74b0fb4d9100000000000000780000000000000020d277592a1f41b99afa485f4c42a3654b8fd6d352aa9d23d7834df9300fad277c00000000000000070000000000000001000000000000000100000000000000204e3bac65748504e1cfef37773f4270a8c1a80ac447caba7fa24fa19284b0c9a20000000000000001000000000000000100000000000000209eb1f87ef00af91d95cbceecfbd32705c4839e84ac1a5c9b7009c417b212d7680000000000000001000000000000000100000000000000208f7561dc689b2191860892b67e9a81d71bbb65d7a1c2ce6d137df706f5d59cd90000000000000001000000000000000000000000000000208eee847d70f6bca0ad5e2754ca732fcd32f4663971ffd9e4060bfac131d203c20000000000000001000000000000000000000000000000207324fb6c688150ff564c10de1750f77712744326e833cd62a76e5b36513b5dce000000000000000100000000000000000000000000000020e1d6ab31258fd6120a7abfd477253a4c2d5e151b7859538ca39f9e1605827810000000000000000100000000000000000000000000000020fdb6149e9c105ea392137b7b84f9830ff470ca39c248f0087f5f4c1ef0ff358b000000000000007800000000000000207d96695d6e5e034ed9a9e3558e19054b1529f8f3126e78cd8dc5c86e18e21f51000000000000000700000000000000010000000000000001000000000000002074faa270f04371dd70dc87a6b1b7dec7c1066f4dce9fb9ef55dcd663648ad43900000000000000010000000000000001000000000000002037de1147a06ae1cab60aff8d762fee3ab9957e9168354a3bc630d58607d4f5f2000000000000000100000000000000010000000000000020bbbf5dd53474978976a2b6db05ec115d5a915375c096fc49b3ed4df54f47cced0000000000000001000000000000000000000000000000207df3314a967746ab2847b207fc171fa110f6853922414bca0b1bdd7742d633fd00000000000000010000000000000000000000000000002091a66d066c7f8edbec732f712edd3659def818fe1dc0c090a95e59919582241800000000000000010000000000000000000000000000002033492e2b310b06849628e1bd4ad584f3dad137e0935268d921b25b24f08f5398000000000000000100000000000000000000000000000020a8c63237e987ee62978847e5234c0599bcd717b51b8105e754466f7226fc50ef0000000000000078000000000000002011e3a60f680d7c94b700843923562bb14e24721da40a305210b05f9bc1c7af6a0000000000000007000000000000000100000000000000010000000000000020d4b336d38f73d3ba1d499b528a94938235b8cae5790ae8fe35ca7516b6d1d5020000000000000001000000000000000100000000000000202c54bd9e3c12161c4309ddb3ad77f3c74d9a10a812261271e6f797128177be55000000000000000100000000000000010000000000000020c1471e7d143c415e6c54c0a4c79b5cf6fac93f3a413fd3452304f4c34c78a5360000000000000001000000000000000000000000000000200a4a2eba1cc63493bb902795b510b4f0e0146b1c8e72b0b0766cbe2577ae8b5600000000000000010000000000000000000000000000002049b53301733436287abca28c39a2cfbdf4c32db43e369dcd6a7354e0c154827900000000000000010000000000000000000000000000002050526717e4101b69991228baf573fbd0e37da1eeda9d9b7c9a9ff210e58a1b4c000000000000000100000000000000000000000000000020c95b77e10bca22732015b42ce22589d7c645d2ded00b509bec1a9ea3eb566bd0000000000000000300000000000000780000000000000020078b78b592bdb8f457bf244a5a635c504244e5a06f53b97441427099c31ab9000000000000000007000000000000000100000000000000010000000000000020f54f1017adcc892da476a817de3a724e58430b55d223df9d6fb92a27eabf444b000000000000000100000000000000010000000000000020ca713d28b5b43e7aa5a4684792de03ec334a0668e9d0e140070168fc41a9fe2f0000000000000001000000000000000100000000000000202ab677a9de5c479d957d4c1ec09b2d18493f1f13a59a7b1580468a39dcb20a9f00000000000000010000000000000000000000000000002026a07dda84c4fd9397449c4645d09377bec7413b9559103a078c3da80f78502e0000000000000001000000000000000000000000000000206459b2465bb1010fba6212e3f8bbe29de777350075bfda82ef2d7a7595a05e490000000000000001000000000000000000000000000000201b055b2c54a1a8955d6adeb9528fbe7055cb358ae8ea257af639724cdd80338c000000000000000100000000000000000000000000000020702383032ae6477bce2d5a0be8ef9dedec6616c9ba60d56b89c5388ff1334fc90000000000000038000000000000002052ebb33c7fc6f0dd4f952423bd0ca1fa05e9bf499f5d8f3b1e5c933c2e477799000000000000000600000000000000010000000000000001000000000000002022922c20e0c5b7d22e9a652dc6aa9118c2e1a9cac3f76888d6c57b96da837e33000000000000000100000000000000010000000000000020d439166c4040bb0a3bf207b329edb6d32dafede3afba35d0381dee5f8341db71000000000000000100000000000000010000000000000020db8856fdd8822c3d121cd8de41b6755ac4ca8fa6451daad979dca9d70ee137a40000000000000001000000000000000000000000000000207a41b9b6808d6909e7d2931629061986744e45fb3a5e51555a57a7ccd0ffe8c900000000000000010000000000000000000000000000002087bb6cfe2a09c35e307dd60482764ee9a05cbd57a44274c68770fdd5bc2fb1370000000000000001000000000000000000000000000000201a47bcb958b30168051b2cb2893cda6347694c2a359c50ef1bb3b36dd73f284800000000000000180000000000000020f79a7b60ee4a1dd245cd500cdea7390c3328a08241131c5f775fd6a10e1148e300000000000000050000000000000001000000000000000100000000000000204502c24583839e205de7298aaa1ef69bb549107644e6a03ad6fea1cdf6fcf5940000000000000001000000000000000100000000000000207951e0fd764a504201dd52f7c8d4bfa57a2fbae05813cf04e5951fb463707094000000000000000100000000000000010000000000000020f4081ce31b80a37168b695ec5d0cb2a04d6d5a396b0ec1e304a1f4f438ed93890000000000000001000000000000000000000000000000205a5dd7b64d5735b118f90d264766ba51fb82265921d017e03d20cf7503b01d9700000000000000010000000000000000000000000000002030fcc65290cd0ba63959759688cb9ac09f7397ac407c921370c4091b88ff0a3d00000000000000022e8fd5bee24f1ad86079ca38e220c6d93485c66d6e96af09d9a19a672ff21ba570ba016d109fbb18e6b55aa88caa054418f9a9d45edeba0266992ca9e2315137 \ No newline at end of file diff --git a/contracts/zkllvm/circuit3/commitment.sol b/contracts/zkllvm/circuit3/commitment.sol index cfc1c94..f010741 100644 --- a/contracts/zkllvm/circuit3/commitment.sol +++ b/contracts/zkllvm/circuit3/commitment.sol @@ -40,7 +40,7 @@ library modular_commitment_scheme_circuit3 { uint256 constant lookup_point = 4; bytes constant points_ids = hex"010101010101010103030303030103000000"; uint256 constant omega = 199455130043951077247265858823823987229570523056509026484192158816218200659; - uint256 constant _etha = 21915464855991742419581116609754714573146270272201618920517025040509264867430; + uint256 constant _etha = 23625454313544905426346299048229678104684481021196451178545456502003633541374; struct commitment_state{ bytes leaf_data; @@ -251,8 +251,8 @@ library modular_commitment_scheme_circuit3 { } function compute_combined_Q(bytes calldata blob,commitment_state memory state) internal view returns(uint256[2] memory y){ - for(uint256 p = 0; p < unique_points; ){ - uint256[2] memory tmp; + uint256[2][unique_points] memory values; + { uint256 offset = state.initial_data_offset - state.poly_num * 0x40; // Save initial data offset for future use; uint256 cur = 0; for(uint256 b = 0; b < batches_num;){ @@ -264,17 +264,21 @@ library modular_commitment_scheme_circuit3 { else if(b == 4) cur_point = lookup_point; else console.log("Wrong index"); - tmp[0] = mulmod(tmp[0], state.theta, modulus); - tmp[1] = mulmod(tmp[1], state.theta, modulus); - - if(cur_point == p){ - tmp[0] = addmod(tmp[0], basic_marshalling.get_uint256_be(blob, offset), modulus); - tmp[1] = addmod(tmp[1], basic_marshalling.get_uint256_be(blob, offset + 0x20), modulus); + for(uint256 k = 0; k < unique_points; ){ + values[k][0] = mulmod(values[k][0], state.theta, modulus); + values[k][1] = mulmod(values[k][1], state.theta, modulus); + unchecked{k++;} } + + values[cur_point][0] = addmod(values[cur_point][0], basic_marshalling.get_uint256_be(blob, offset), modulus); + values[cur_point][1] = addmod(values[cur_point][1], basic_marshalling.get_uint256_be(blob, offset + 0x20), modulus); unchecked{offset += 0x40;j++; cur++;} } unchecked{b++;} } + } + for(uint256 p = 0; p < unique_points; ){ + uint256[2] memory tmp = values[p]; tmp[0] = mulmod(tmp[0], state.factors[p], modulus); tmp[1] = mulmod(tmp[1], state.factors[p], modulus); uint256 s = state.x; @@ -421,6 +425,46 @@ library modular_commitment_scheme_circuit3 { types.transcript_data memory tr_state; tr_state.current_challenge = transcript_state; commitment_state memory state; + + { + uint256 poly_at_eta; + /* 1 - 2*permutation_size */ + poly_at_eta = basic_marshalling.get_uint256_be(blob, 40);// 0 + if(poly_at_eta != 0x343b8884869e63daf6dd0953387348368c7a4fe70ddf9f3c44b97c38fff8d0fe) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x68);// 0x1 + if(poly_at_eta != 0x529aa96a117f346d2512ea01a40691035492b93202a37bef2eaa968ffdc14f2) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0xa8);// 0x2 + if(poly_at_eta != 0x19d054f12577c0621b95e92083420d510a6dd9dfa0d316babe954f0cff4c68ba) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0xe8);// 0x3 + if(poly_at_eta != 0x111a8b5bb56c1ea89ed8da2904a4294ef980f6611857f6e86902966fc7e0ba0) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x128);// 0x4 + if(poly_at_eta != 0x343b8884869e63daf6dd0953387348368c7a4fe70ddf9f3c44b97c38fff8d0fe) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x168);// 0x5 + if(poly_at_eta != 0x529aa96a117f346d2512ea01a40691035492b93202a37bef2eaa968ffdc14f2) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x1a8);// 0x6 + if(poly_at_eta != 0x19d054f12577c0621b95e92083420d510a6dd9dfa0d316babe954f0cff4c68ba) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x1e8);// 0x7 + if(poly_at_eta != 0x111a8b5bb56c1ea89ed8da2904a4294ef980f6611857f6e86902966fc7e0ba0) return false; + /* 2 - special selectors */ + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x248);// 0x8 + if(poly_at_eta != 0x17751bf2a581542ee47b5ae7d4e0e02af7a71bc873c7f7385aba2bddea3a5ef6) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x2a8);// 0x9 + if(poly_at_eta != 0x3dfbdbf08c58e4f3e916fa1a6f3e75208970c68882f242793123b14ab791cdf2) return false; + /* 3 - constant columns */ + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x308);// 0xa + if(poly_at_eta != 0x295b7fbed4e2420808d6b3101d2f0041fbb28c89a4e944619e14aae32632b0f2) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x368);// 0xb + if(poly_at_eta != 0x428994f647f501b7fa5a6746b98e0c986f9913eb8a053bc75ba3024743908f2) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x3c8);// 0xc + if(poly_at_eta != 0x2810d8e2f6270a1cd3890c3c5e5c18991066713e9329e8403c9707e7899494b6) return false; + /* 4 - selector columns */ + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x408);// 0xd + if(poly_at_eta != 0x3d0aef0e94c434b9a9f151793318c9a9630fcadac7a319832bdada96c3c81938) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x468);// 0xe + if(poly_at_eta != 0x2d84190e39619223887c598488c7e10b82ac1dc85d89981e13cedb079a6bb9e4) return false; + } + + { uint256 offset; diff --git a/contracts/zkllvm/circuit3/gate_argument.sol b/contracts/zkllvm/circuit3/gate_argument.sol index 2b4a577..25e357d 100644 --- a/contracts/zkllvm/circuit3/gate_argument.sol +++ b/contracts/zkllvm/circuit3/gate_argument.sol @@ -33,6 +33,7 @@ contract modular_gate_argument_circuit3 is IGateArgument{ ) external view returns (uint256 F){ uint256 theta_acc = 1; uint256 eval; + uint256 x; } diff --git a/contracts/zkllvm/circuit3/gate_libs_list.json b/contracts/zkllvm/circuit3/gate_libs_list.json deleted file mode 100644 index 0d4f101..0000000 --- a/contracts/zkllvm/circuit3/gate_libs_list.json +++ /dev/null @@ -1,2 +0,0 @@ -[ -] diff --git a/contracts/zkllvm/circuit3/input.json b/contracts/zkllvm/circuit3/input.json deleted file mode 100644 index 4047112..0000000 --- a/contracts/zkllvm/circuit3/input.json +++ /dev/null @@ -1,4 +0,0 @@ -[ - {"field": 1 }, - {"field": 8581019244592484057451115223056269892373872147623551301775254067902153024290 } -] \ No newline at end of file diff --git a/contracts/zkllvm/circuit3/lookup_0.sol b/contracts/zkllvm/circuit3/lookup_0.sol index 9f4d254..7abb16b 100644 --- a/contracts/zkllvm/circuit3/lookup_0.sol +++ b/contracts/zkllvm/circuit3/lookup_0.sol @@ -21,8 +21,9 @@ import "../../../contracts/basic_marshalling.sol"; library lookup_circuit3_0{ uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; - - function evaluate_gate_be( + + + function evaluate_lookup_0_be( bytes calldata blob, uint256 theta, uint256 theta_acc, @@ -34,8 +35,9 @@ library lookup_circuit3_0{ uint256 sum; uint256 prod; + g = 1; + selector_value=basic_marshalling.get_uint256_be(blob, 288); - g = 1; l = mulmod( 1,selector_value, modulus); theta_acc=theta; sum = 0; @@ -59,9 +61,12 @@ library lookup_circuit3_0{ l = addmod( l, mulmod( mulmod(theta_acc, selector_value, modulus), sum, modulus), modulus); theta_acc = mulmod(theta_acc, theta, modulus); - g = mulmod(g, mulmod(addmod(1, beta, modulus), addmod(l,gamma, modulus), modulus), modulus); + g = mulmod(g, mulmod(addmod(1, beta, modulus), addmod(l, gamma, modulus), modulus), modulus); + return( g, theta_acc ); } + + } \ No newline at end of file diff --git a/contracts/zkllvm/circuit3/lookup_argument.sol b/contracts/zkllvm/circuit3/lookup_argument.sol index a250183..ae1ae4e 100644 --- a/contracts/zkllvm/circuit3/lookup_argument.sol +++ b/contracts/zkllvm/circuit3/lookup_argument.sol @@ -23,7 +23,7 @@ import "../../types.sol"; import "../../basic_marshalling.sol"; import "../../cryptography/transcript.sol"; import "../../interfaces/modular_lookup_argument.sol"; -import "./lookup_0.sol"; +import "./lookup_0.sol"; import "hardhat/console.sol"; @@ -89,25 +89,25 @@ contract modular_lookup_argument_circuit3 is ILookupArgument{ state.beta = transcript.get_field_challenge(tr_state, modulus); //beta state.gamma = transcript.get_field_challenge(tr_state, modulus); //gamma state.factor = mulmod(addmod(1, state.beta, modulus), state.gamma, modulus); - (l, state.theta_acc) = lookup_circuit3_0.evaluate_gate_be( blob, state.theta, state.theta_acc, state.beta, state.gamma ); + (l, state.theta_acc) = lookup_circuit3_0.evaluate_lookup_0_be( blob, state.theta, state.theta_acc, state.beta, state.gamma ); state.g = mulmod(state.g, l, modulus); - state.selector_value=basic_marshalling.get_uint256_be(blob, 352); - state.shifted_selector_value=basic_marshalling.get_uint256_be(blob, 384); - l= mulmod( 1, state.selector_value, modulus); + state.selector_value = basic_marshalling.get_uint256_be(blob, 352); + state.shifted_selector_value = basic_marshalling.get_uint256_be(blob, 384); + l = mulmod( 1, state.selector_value, modulus); state.l_shifted = mulmod( 1, state.shifted_selector_value, modulus); state.theta_acc=state.theta; - l= addmod( l, mulmod(state.selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 0), modulus), modulus), modulus); + l = addmod( l, mulmod(state.selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 0), modulus), modulus), modulus); state.l_shifted = addmod( state.l_shifted, mulmod(state.shifted_selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 32), modulus), modulus), modulus); state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); - l= addmod( l, mulmod(state.selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 96), modulus), modulus), modulus); + l = addmod( l, mulmod(state.selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 96), modulus), modulus), modulus); state.l_shifted = addmod( state.l_shifted, mulmod(state.shifted_selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 128), modulus), modulus), modulus); state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); - l= addmod( l, mulmod(state.selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 192), modulus), modulus), modulus); + l = addmod( l, mulmod(state.selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 192), modulus), modulus), modulus); state.l_shifted = addmod( state.l_shifted, mulmod(state.shifted_selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 224), modulus), modulus), modulus); state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); - l= mulmod( l, state.mask, modulus); + l = mulmod( l, state.mask, modulus); state.l_shifted = mulmod( state.l_shifted, state.shifted_mask, modulus); - state.g = mulmod(state.g, addmod( state.factor, addmod(l, mulmod(state.beta, state.l_shifted, modulus), modulus), modulus), modulus); + state.g = mulmod(state.g, addmod( state.factor, addmod(l, mulmod(state.beta, state.l_shifted, modulus), modulus), modulus), modulus); } @@ -179,5 +179,4 @@ contract modular_lookup_argument_circuit3 is ILookupArgument{ } tr_state_after = tr_state.current_challenge; } -} - \ No newline at end of file +} diff --git a/contracts/zkllvm/circuit3/modular_verifier.sol b/contracts/zkllvm/circuit3/modular_verifier.sol index 6725492..2682eff 100644 --- a/contracts/zkllvm/circuit3/modular_verifier.sol +++ b/contracts/zkllvm/circuit3/modular_verifier.sol @@ -33,14 +33,14 @@ contract modular_verifier_circuit3 is IModularVerifier{ uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; bool constant use_lookups = false; bytes32 constant vk1 = bytes32(0xc45106e20a95531a40e12ee49dc5b9e85fa30183f7c8ec3bce5f6a62694b1933); - bytes32 constant vk2 = bytes32(0x9f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e4); + bytes32 constant vk2 = bytes32(0xf7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e); bytes32 transcript_state; address _gate_argument_address; address _permutation_argument_address; address _lookup_argument_address; address _commitment_contract_address; - uint64 constant sorted_columns = 2; - uint64 constant f_parts = 9; + uint64 constant sorted_columns = 2; + uint64 constant f_parts = 8; // Individually on parts uint64 constant z_offset = 0xc9; uint64 constant table_offset = z_offset + 0x80 * 4 + 0xc0; uint64 constant table_end_offset = table_offset + 544; @@ -48,12 +48,10 @@ contract modular_verifier_circuit3 is IModularVerifier{ uint64 constant rows_amount = 8; uint256 constant omega = 199455130043951077247265858823823987229570523056509026484192158816218200659; uint256 constant special_selectors_offset = z_offset + 4 * 0x80; - bytes constant public_input_columns = hex"01c001e0"; - bytes constant public_input_rows = hex"0002"; function initialize( // address permutation_argument_address, - address lookup_argument_address, + address lookup_argument_address, address gate_argument_address, address commitment_contract_address ) public{ @@ -82,68 +80,71 @@ contract modular_verifier_circuit3 is IModularVerifier{ bool b; } - function uint16_from_two_bytes(bytes1 b1, bytes1 b2) internal pure returns( uint256 result){ - unchecked{ - result = uint8(b1); - result = result << 8; - result += uint8(b2); - } - } + // Public input columns + function public_input_direct(bytes calldata blob, uint256[] calldata public_input, verifier_state memory state) internal view + returns (bool check){ + check = true; + + uint256 result = 0; + uint256 Omega = 1; - // Function is optimized for the case when public input cells are placed in the first table row - function public_input_gate( - bytes calldata blob, uint256[] calldata public_input, verifier_state memory state, uint256 alpha - ) internal view returns (uint256 F){ - for( uint256 i = 0; i < public_input.length; ){ - uint256 l; - - if(uint8(public_input_rows[i]) == 0){ - l = state.l0; - } else { - uint256 Omega = field.pow_small(omega, uint8(public_input_rows[i]), modulus); - l = mulmod( - Omega, - field.inverse_static( - addmod(state.xi, modulus - Omega, modulus), - modulus - ), + for(uint256 i = 0; i < public_input.length;){ + if( public_input[i] != 0){ + uint256 L = mulmod( + Omega, + field.inverse_static( + addmod(state.xi, modulus - Omega, modulus), modulus - ); - l = mulmod(l, state.Z_at_xi, modulus); - l = mulmod(l, field.inverse_static(rows_amount, modulus), modulus); - } - - l = mulmod(l, addmod( - basic_marshalling.get_uint256_be(blob, uint16_from_two_bytes(public_input_columns[i<<1], public_input_columns[(i<<1)+1])), - modulus - public_input[i], + ), modulus - ), modulus); + ); - F = mulmod(F, alpha, modulus); - F = addmod(F, l, modulus); - unchecked{i++;} + result = addmod( + result, + mulmod( + public_input[i], L, modulus + ), + modulus + ); } + Omega = mulmod(Omega, omega, modulus); + unchecked{i++;} } - + result = mulmod( + result, addmod(field.pow_small(state.xi, rows_amount, modulus), modulus - 1, modulus), modulus + ); + result = mulmod(result, field.inverse_static(rows_amount, modulus), modulus); + + // Input is proof_map.eval_proof_combined_value_offset + if( result != basic_marshalling.get_uint256_be( + blob, 448 + )) check = false; + } function verify( bytes calldata blob, uint256[] calldata public_input - ) public view{ + ) public view returns (bool result) { verifier_state memory state; state.b = true; state.gas = gasleft(); state.xi = basic_marshalling.get_uint256_be(blob, 0xa1); state.Z_at_xi = addmod(field.pow_small(state.xi, rows_amount, modulus), modulus-1, modulus); state.l0 = mulmod( - state.Z_at_xi, - field.inverse_static(mulmod(addmod(state.xi, modulus - 1, modulus), rows_amount, modulus), modulus), + state.Z_at_xi, + field.inverse_static(mulmod(addmod(state.xi, modulus - 1, modulus), rows_amount, modulus), modulus), modulus ); - + //0. Direct public input check + if(public_input.length > 0) { + if (!public_input_direct(blob[905:905+672], public_input, state)) { + console.log("Wrong public input!"); + state.b = false; + } + } - //1. Init transcript + //1. Init transcript types.transcript_data memory tr_state; tr_state.current_challenge = transcript_state; @@ -153,8 +154,8 @@ contract modular_verifier_circuit3 is IModularVerifier{ //3. Permutation argument uint256[3] memory permutation_argument = modular_permutation_argument_circuit3.verify( - blob[0xc9:905+672], - transcript.get_field_challenge(tr_state, modulus), + blob[0xc9:905+672], + transcript.get_field_challenge(tr_state, modulus), transcript.get_field_challenge(tr_state, modulus), state.l0 ); @@ -163,16 +164,17 @@ contract modular_verifier_circuit3 is IModularVerifier{ state.F[2] = permutation_argument[2]; } + //4. Lookup library call { uint256 lookup_offset = table_offset + quotient_offset + uint256(uint8(blob[z_offset + basic_marshalling.get_length(blob, z_offset - 0x8) *0x20 + 0xf])) * 0x20; uint256[4] memory lookup_argument; + uint256 lookup_commitment = basic_marshalling.get_uint256_be(blob, 0x81); ILookupArgument lookup_contract = ILookupArgument(_lookup_argument_address); (lookup_argument, tr_state.current_challenge) = lookup_contract.verify( -// (lookup_argument, tr_state.current_challenge) = modular_lookup_argument_circuit3.verify( - blob[special_selectors_offset: table_offset + quotient_offset], - blob[lookup_offset:lookup_offset + sorted_columns * 0x60], - basic_marshalling.get_uint256_be(blob, 0x81), + blob[special_selectors_offset: table_offset + quotient_offset], + blob[lookup_offset:lookup_offset + sorted_columns * 0x60], + lookup_commitment, state.l0, tr_state.current_challenge ); @@ -190,16 +192,28 @@ contract modular_verifier_circuit3 is IModularVerifier{ //6. Gate argument IGateArgument modular_gate_argument = IGateArgument(_gate_argument_address); state.F[7] = modular_gate_argument.verify(blob[table_offset:table_end_offset], transcript.get_field_challenge(tr_state, modulus)); + state.F[7] = mulmod( + state.F[7], + addmod( + 1, + modulus - addmod( + basic_marshalling.get_uint256_be(blob, special_selectors_offset), + basic_marshalling.get_uint256_be(blob, special_selectors_offset + 0x60), + modulus + ), + modulus + ), + modulus + ); } - //Compute public input gate - state.F[8] = public_input_gate(blob[905:905+672], public_input, state, transcript.get_field_challenge(tr_state, modulus)); - + // No public input gate + uint256 F_consolidated; { //7. Push quotient to transcript for( uint8 i = 0; i < f_parts;){ - F_consolidated = addmod(F_consolidated, mulmod(state.F[i], transcript.get_field_challenge(tr_state, modulus), modulus), modulus); + F_consolidated = addmod(F_consolidated, mulmod(state.F[i],transcript.get_field_challenge(tr_state, modulus), modulus), modulus); unchecked{i++;} } uint256 points_num = basic_marshalling.get_length(blob, 0xa1 + 0x20); @@ -229,8 +243,8 @@ contract modular_verifier_circuit3 is IModularVerifier{ uint256 factor = 1; for(uint64 i = 0; i < uint64(uint8(blob[z_offset + basic_marshalling.get_length(blob, z_offset - 0x8) *0x20 + 0xf]));){ T_consolidated = addmod( - T_consolidated, - mulmod(basic_marshalling.get_uint256_be(blob, table_offset + quotient_offset + i *0x20), factor, modulus), + T_consolidated, + mulmod(basic_marshalling.get_uint256_be(blob, table_offset + quotient_offset + i *0x20), factor, modulus), modulus ); factor = mulmod(factor, state.Z_at_xi + 1, modulus); @@ -244,6 +258,7 @@ contract modular_verifier_circuit3 is IModularVerifier{ } console.log("Gas for verification:", state.gas-gasleft()); + result = state.b; } -} +} \ No newline at end of file diff --git a/contracts/zkllvm/circuit3/params.json b/contracts/zkllvm/circuit3/params.json index 77a61da..f97c134 100644 --- a/contracts/zkllvm/circuit3/params.json +++ b/contracts/zkllvm/circuit3/params.json @@ -4,7 +4,7 @@ "rows_amount": "8", "usable_rows_amount": "4", "omega": "199455130043951077247265858823823987229570523056509026484192158816218200659", - "verification_key": "c45106e20a95531a40e12ee49dc5b9e85fa30183f7c8ec3bce5f6a62694b1933 9f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e4", + "verification_key": "c45106e20a95531a40e12ee49dc5b9e85fa30183f7c8ec3bce5f6a62694b1933 f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e", "ar_params": [ "3", "0", diff --git a/contracts/zkllvm/circuit3/proof.bin b/contracts/zkllvm/circuit3/proof.bin index 6d34aec..fb5ac32 100644 --- a/contracts/zkllvm/circuit3/proof.bin +++ b/contracts/zkllvm/circuit3/proof.bin @@ -1 +1 @@ -0x04000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d00000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b323000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b307095fc383115ae51991f4b0cc31aaeb95d4365c131cad45b44b40efbf0505ed000000000000003707095fc383115ae51991f4b0cc31aaeb95d4365c131cad45b44b40efbf0505ed3073b6aa63e339e360120f2077e8b3b232f80d5a36b89deac8b21ca7d1ae3066232eded18f56c6797fd9c773fcf85699ed250fcc5f8f625c857844aebb191da132429153f3702170e05a4ba2578b827a980477cef5b42a431ff2fc801866f1fb2fea5a17ccb1e05f7f40e543f0d9b1015d2c1d05cb32f99768fef58fa77d94233b4cd6a3c130a73461c37a2bb5b98c6491428c16b09de7fcd4375bb97a02b9e42f93c276ff7961dd7c447a53b44075066b08c628dc17f4a2417339074573e4ac28803132c5f34405e8d162da8c9fbdf64d3258814de1a381c06006eb620da17007095fc383115ae51991f4b0cc31aaeb95d4365c131cad45b44b40efbf0505ed3073b6aa63e339e360120f2077e8b3b232f80d5a36b89deac8b21ca7d1ae3066232eded18f56c6797fd9c773fcf85699ed250fcc5f8f625c857844aebb191da132429153f3702170e05a4ba2578b827a980477cef5b42a431ff2fc801866f1fb2fea5a17ccb1e05f7f40e543f0d9b1015d2c1d05cb32f99768fef58fa77d94233b4cd6a3c130a73461c37a2bb5b98c6491428c16b09de7fcd4375bb97a02b9e42f93c276ff7961dd7c447a53b44075066b08c628dc17f4a2417339074573e4ac28803132c5f34405e8d162da8c9fbdf64d3258814de1a381c06006eb620da17036465733ce9e083b72f8b42314a3d4ea8a741c64e1ccdc4f45d9b9765e6dbd30084427f02579e33891006645a8c438b61839225ef01ef6b3d215229dbc2a8ef316c06f44c5e04dcf1fc11090c129b1b14b68ddd13a5ee7dc01b3ebfb28d1be3b3123e4c59b8e33081473ac722a96df43fe1330d141962c772c97312a861a0fc211a271a494dfde93907dfd30c2080ba654185c91b149c1729c9328f528728c421a4373c0e204b1ab007c0d3b7d26e6ba7cca7e185013ef7b7aea72e84bbb8295085715d1bd3f5aa71e976124f7f4d51664b54cf43480a1462d5f9fa67d08cc1123b40190638b8f680e7b47f6f17e1a0216c9a0fb4bb1096e1c7fb6801b6e1c902d73951643ef6982d053a4a6e3ef17a2558c2a14a48e36ab6fa48acb07d509323592388e3122119b9b78cdce09c8dad8c134a5c83c8961fcf1a87ab71fada58c3771ed84e8a995ddfdca28a4f1e3768872867a0ba251e1c2e9f6246e32efd2670a0541a64433b53b7750d4296171d8ffee645f3d1fa1bee1d4f1a29c9804ddee0f6d563ccbf41832e7ff2d6d1ada8acab7b6d7744dc4d4ef881b1a3c7e4a4e163b5558579d5481ac05586b488b389356a51d8ad5378ddd9686d21f2e46e62e65242b6553a8992af4f3ebc7f13ac5bbeebc90bc0cd484f9b2de3fdeaf561b7e242be1c52b88c0274d8446b7b77d4cf5bfc4bea15801db8808134c81abb5cf6e651f2171b719535be63b0cf1cba17bc9a849abbfb8dbdb1bb21ed4d6f665927d172cb3fedb0d139d6ef44ce7b343785612198ddc65f6a85a8445ca267a65a8c4ad10519c167059e183e79339251801131ba3ccc262ff17f2bcedd4549b5f4da41e2fdaab433ec7a49fa4b5f06820339dec32ae1655ac4bff2d96e72c0025e0421c2e773afc92730427b4d864b2a8783c88953516d6c1246f092cbc6812ea1551f911b67f45afea74b7d55c8dc46b0e2bb93686e9c3a42a3ea4154b6566131f5fb72d5873a7b57baeae5f84217dfe4b56397a390d674c5f7ff858e50ca441a91460000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013b80659b742147c86ecefea7529ecaba995c5a2bd9517c0a34a19e3c211772b10bf2fe872b134f2a01eaec3f8d577e053bbd9b464d0197755e83dbed7cdf2c961b583fbdb45f979c0351fd3472abe3922f2afd49f03ac31a95f60ca4f1454da20eb8e70beaa68ca808e60368c799eaceddf60a3a5b882115a7ce951be60680682d8b076f205d93f6129d868801700a003c8e650c88dd43d3c8e986e0c616ded52d98a6c4a4984f43b26ec7a5dafa2179ab7bd727bc905babcf08ca1e4a9375b80c08635cbf0b7b506e0a6ec73e49af91659027d786e571b75f57592292f8889a00351831de2e84ddee9600c1127ad63606509226d6d6f9ec8e6e6b98b019ef182291726bc15c6b6d238885eb70b6542c9870da3f09ad44c9e3f5e2c93e67f5c00e94102aa718004effa2db6c6b5338f784ae7fdb2d6ff05715d186a5458a10680b06602ee7a318594d89d1ce4505f2b8dca4f4fb28ce3c20e27d3f30b2f12f2826a8626e86e1d981020b2e3162374abc729cea2d9815001e001f1d965d7a2a23287dad8f5ae34b96743c39292fa125986bef4efb16bb613e8d383e29578535390726928c83df7a88fcbc894f452c9d24850ae218f63ec1d5b9fa14f7077b0550000000000000000a000f0103020203060402000000000000001c0202020202020202030303030302030101010202010101010101030300000000000000020000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b3910000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b0000000000000002010100000000000008c01b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac24fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a60215507121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a7235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec21ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f30c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c80f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f046391b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac24fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a60215507121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a7235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec21ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f30c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c80f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f04639299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f10022149786017ebe61cd3033d4fb7f00cfc465a497b1464343a1a46eb7f2ed9b5de037ecb8b7278ef89d6864ef9dbf9021f38c404e2dd31c721606d7a5bc8011efd525644e452168904b7a1d5c55603780e8100ccb377e28efcc010b83283a6e51041d10d9ea1eb55d26b4407881b1f460a7d964b217ec016d41341b1740c5a49fd13b6339000e724755889e235f56b8dc1d2ce9442682cf4eb7650f52013138ce5428bf979022de60e7eafb0f0685d4337c078cb56ef1ad2d277c80dfdd3a76407721f5eda13a6df04bf7549ce0a7f4144c5f5be181a1dd31ba610d58c43a80a88309ddbc5645512211cd820a96d1956b49b55e49c58bee1588858530603d08ad4109e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f10022299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c37ecb8b7278ef89d6864ef9dbf9021f38c404e2dd31c721606d7a5bc8011efd5149786017ebe61cd3033d4fb7f00cfc465a497b1464343a1a46eb7f2ed9b5de000f1ceacf81b922b55ff754fcbf780867c0bf602cd44f1ceb8e657ccf45de6dd1b1c92b474f6363129c9fd2ac8c2d5e02d1ce7501d11f06d15e77aa926ff59f2293d2dcd25f1cc47c638985f759c97fbdba4d15626b4c7b525600fbcd00f893e0eaad862ac3c2215cfeb3fa64e48aa186d12f0dab877607a4b0b9f09dc6567641062fa3f265bd19bf498d3f7772aa222351fb66f6aa8bc5bb6114d39970a909d1a177138a3b4ffc8d389f08f2dc735d8028e91ac14bb14c4a168a2ab82a47503000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013724e4b412227f0c35c86171e17a7a5963cff48738a950e73caafdd0c9fc0ac7358ad68081f7bd143619db4422c4c68d965d3069564b9253c61846b1313d1b48305cbeb04498f59a451fd4b7146316d73da46d50827b1bc900fd47a11e00131f1344e7230ba4387806a5758cb1cd4f1471d011f0fa87c5255b8b4389645d8044068be9d68cc1490ee164ca929a4966d1f9735d3d6934220e21190d4b28adae5133836e06d011f019195fd02970314bf72239eb135cfc444ddbe9b6e3b0d1c1d9082d5ed635b09384ed9ea37068ddfa49ca2ccc748bd50f9525dfc01ee6b76d89280d4bbc5553578d5a1f011c5953b94c91ad2a137748abff36e089ad02cf31ca335cc0d3d2cdc8b7446b3e59426019a354bde27192530a8764efbc3558861256148d2727fc0d42f592c6a6fc3e70bd9eb8d5ef90d4915457a9c37651a540f5f92a375380d2157b932caf1438ff75e69b18fabd562c23c6c995917fb067997c030f5594dd109957dc3d6412df7e8ea9a4943730d652131825a740bca29240eb1c1a914c3b903dee00cac8e9c0111f18cd187d5bdf569c5033a142750b694cd9d72b1a5001f318f76a814ce82e9ffd0bd8b774ee352baa5e2c4b79b5345bfb3a0809a33997029e6941ffccfdcb561f4294eebcb4253537b1517a9116c01c58e9292fcceb6f17af5e218bb127b1bd6efd1bba5f174c2490d221be900c96f6e672e61c1b0c0a7543f48399a20d7470aac34f8db2871cd7bab8664009212db11d151202268fee5f72984fa7a3bbdfa4d421113e2f272f4282aeb821107094b65f3c56166befb5171f47394b6710b5cbf1e0a257d568300d169b1ede64dfad66ceb1702994104ae8e0b8c6b498ef4a340e1f5dca7130cbfc365dfcbac8513f99314e91301bae89739c641e7903538cfbb9632b94e46ff438240e7ebecb2d760209772f0fe451768c639be186fcac7304469cd48d622907d128ea9cda620376fdf688d2308a68af420df4985d10a1c0ea9eefd981a264d0fccd5d26ee7050870a2f53e80f759750bdf20b67a2ef5e3f15611026a0a4342b0c7f9bf4aabce065f5d0ac1932b40b6c4a45c6f9d15328c4951aaf3f21582d20d41be66fdca9ffdc32eca3850d4bf493b5ba39062eacd73b6ae550c100ee6bdb353112abbc833110cd135c7c166befb5171f47394b6710b5cbf1e0a257d568300d169b1ede64dfad66ceb1702994104ae8e0b8c6b498ef4a340e1f5dca7130cbfc365dfcbac8513f99314e91301bae89739c641e7903538cfbb9632b94e46ff438240e7ebecb2d760209772f0fe451768c639be186fcac7304469cd48d622907d128ea9cda620376fdf688d2308a68af420df4985d10a1c0ea9eefd981a264d0fccd5d26ee7050870a2f53e80f759750bdf20b67a2ef5e3f15611026a0a4342b0c7f9bf4aabce065f5d0ac1932b40b6c4a45c6f9d15328c4951aaf3f21582d20d41be66fdca9ffdc32eca3850d4bf493b5ba39062eacd73b6ae550c100ee6bdb353112abbc833110cd135c7c0ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b22e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d570944c8b525cef9aeb6196bfeccb204f8c0abd5e804a7bd874b22c345a083974903dae1cefa8b3e8651b5641fb8f11cb8a8245710ca4daeeb318975e771a9c62700bc77aca9e7d8c088a46bb0d9352ccafb655af885121e63593dfac07b085ddf2cfa0c976ae6ff0848edde9901d28c0cd51308db7b21e9a8dfe07d759bd8457a155688d981b77c5547844ba72261d22ec5abcdd07d725ce2033964d5927e021f1cdd669fc5d79a448ffcd0efe3977a2eb750b395fba24cce8643b5f22f878eec10b56b9db92952b7facf8cc9fa4b002ccca752fc869e8b81623d6e13f80d981b3f129d2ae85a2df8d274826217c3812ab5def954d619e1d6fd251490400a998a22e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d570ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b03dae1cefa8b3e8651b5641fb8f11cb8a8245710ca4daeeb318975e771a9c6270944c8b525cef9aeb6196bfeccb204f8c0abd5e804a7bd874b22c345a0839749389355a77324a20e98a97cf4334d6cc63ef1125f05f2a92027e77632ac752e0429c0e79552f4bd7f5c27e602447a6eb089434e9863cc800a19d71828ceb06a4308e4eaf8d45865d08c3e5a339a76afcd3eee7b847a39282181123160cf3940c63613f858722a9322bf067b46254399fa1a2641c93ad924642fa03b4414f618413c8af2f15dc61b1a8a5cf3558c2f94279b9c82c34d9aea4efdf7fae0c5156ff02d0eeb76db4e5e4b69a018064e9e2fd0f8e1202b3adb5b1e3d1316f63603eb21000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012575936d191ba8bf36e9dd481b8fa2598f52cb457eb1133a841bde2965afb79813e724a5a11a4708151d907146931621a309e4dcd972b35a2ed46dcda145c65f2ec4358cffe8a19ecef5b8839c65d8459e54980e9dc99561d4183c5eae76f9041be9564bebf2fe310e746c1c51a90505734e14ce9053136249a1506d518209a02ef35421c2912cf3e071a5343e46f614c7b889cc93508c7b53acbed6d48e5f79127d9318c88ccd8da528bb6dab16ae73fba914293def1d512aad1284eab37f8b315dbe7e63d4b47ed5b6ed5fa6d110b85ce099bf2ce745984bb59394bfd17c2424fc4b0a9a7b9c1eb15f758dc93fe5e6f563fd277f9f94af7e48870f8b61575932ab80cfe0349877ff8a37704225c1451bcb2b2456e7e4406081731ce7ecfa530c24d48abb9adef5f311edfb09cf041140be417a21ba9d9cf3be36c8f3d0ceac1f970aedc5f86cd926938ba3af3c265e5010b9ac70a862c234ac1f5970f8f3d329d14fead2daa35a993adc1970e9bf748abb0d75fcbceafec473450cdfed324f182cdf870a13d21b705480f690b07805141109de326eb89c7f560b939c4bb7ab2d7ebcb67943134fdbc150f8206baca0bbe140364fd7f5c36d661eac28fc5c341d6508de366806ad1bbcdabcf2c3cd44fc2ac7a2f1e12ee5ea1584d1a7ba5e73032222cf45f7cbac5f585fead897490d48b102636ba8c1a78f7313f86a368dc327cfb9e9289768449a9e9070f6a32a8f0abbae7f41a2beaf3e0d2c3635cc658d2b6e5fcf2a824bbd44bf5d0562d1e4ff943c3514ed83f539c40acbe3492005f8028c44eab3b34e97394eaa8c25744fba55a775171d92b0fe098a524e6b9c52d13d73bb154c4cb168c6b15573da8bb045cc9f23e4ebba481d8fa2de9e9463ad300cbd5895828088f41e8954bcbb458ea3ac45497393dd74f62fb39b881a0d9e153342a76a7d7f770be176ab4344ba715c76014f88756f842569799564e5f261ec3fb2baeb8c82acc498aea7afa85bc9325d5a6f41e35348ceee8209a882441669004d4514737d533b6751585057a436cdc4ec29ba25f9b04caaab27447dbbe9983e7da699be8d5fd6fb69466e49caedfb49a9c8594b6c879c43d56c968b547009018259664172a0290496b991b6351204d89cd0a2bde0717f5557c45674ab8ff8028c44eab3b34e97394eaa8c25744fba55a775171d92b0fe098a524e6b9c52d13d73bb154c4cb168c6b15573da8bb045cc9f23e4ebba481d8fa2de9e9463ad300cbd5895828088f41e8954bcbb458ea3ac45497393dd74f62fb39b881a0d9e153342a76a7d7f770be176ab4344ba715c76014f88756f842569799564e5f261ec3fb2baeb8c82acc498aea7afa85bc9325d5a6f41e35348ceee8209a882441669004d4514737d533b6751585057a436cdc4ec29ba25f9b04caaab27447dbbe9983e7da699be8d5fd6fb69466e49caedfb49a9c8594b6c879c43d56c968b547009018259664172a0290496b991b6351204d89cd0a2bde0717f5557c45674ab8ff80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000189ddd23bc35ace2b428205e451f3e0391d28302ad85627d257d35180133b91e0000000000000000000000000000000000000000000000000000000000000001384aad28b9aa43bc96a5a5d0b149c019f725846ee1b96895502f139d94ce4c98000000000000000000000000000000000000000000000000000000000000000002de8d279306fadf8d43d48197436ff95aa2cd5d91e9386f17a5d0a64c5c3b0b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001090996438597da1fc234a220f1d5d27f89914ab924b2cd0994ff3fc1a3d1dd20218483c5916b5e587adfc8ae8765a857cfea4a27caae7de67a4842c16229393a159d3d4d94f424b4a7321b64fecbf3cc294b9483a29337f43578f27fa71d442f3450935f5c08b5ba732fec2aae8bc669e710b184f199794f62f0f1119def62f416a5859bdd775c94910ccae390b037aeb145da523781a7c3106bf87beb117ade08334d36ac74f524d6838eb29f72d77118dba10003796e5ed22c9cc5a99b5c5f00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000018ad7fd01ab9b011618c9b1fbe46ec19fd9f9b5a48e1b551676aebd48fc0d4203b96eee7b92b767a50431ec867c7f8ed490783c3e68211a4ba282ed52188f0b43045447b1197a14c273bbd82558a1341bfcf504f80afb0b647e98db95e046b591466c53feaa430bbab2f8287ef1d7cc35dfd1dc427be655e410984c8abd0a74928cbbf65d3760a2f16ae7781d6c7510032ba30f08ad0926bd5c542ba8a1128fa3c586920c4b1d237940002d53f46637f8bc4fdb95f562ac674452607268b40770d59eeb3e6eee8f8b4df47781492ffecebcac8c9769c0e5f428c2c2b27faf56c0456559408edd02e1ac3b053e95988454fbfeded9a42d811ebace7b175923ac7194a0ca601b4111daec4dcd2ac7fa58c514a9480eb261d4cd268e2e7dcfe54b9193008f56f631f32175a5199e334f4af1f8cdead77584edd8a8222c84cc8944a1036bd99b1623abe9bef85be3389f5da64441568a171dcb133c553b2a04208e531a86e2fe6e27e2ecdae1f696ced7015d92e0fb3074b47ffb20d282d848b54ae14032e0d9c74673c7e67b285442eb48ff6c43a617afb66603aaf021240bcbf310000000000000000000000000000000000000000000000000000000000000000109454259592027c6cf5644a5d02ea129d9399ce489991c269f698a79313d94000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575109a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b00fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d430f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22334bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575109a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b00fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d430f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22334bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a2295afaabac21f4e0a11ffb4e8de9e5bbb1afbdd358923103fc7ddd9e92eb6ee167cfef734a5fd046d46933e9ef83d8ee4eb029f5a344e2d13fa045055f26b2e113b60b09c7b5b98ea91e103c6062589628b6f8b82f9626aab445c9f02396d0605d74903a2f864b1766aac93530771ff772dc8cd9b5831030e4a6115e6863aa1310f2eca598d3d00e275210852674b0ea2f59088c39391ed93441ffaa8ee75f12e9c4847830f113296f2177751632c13ee7a49ac4a8361c20b5f4f4fe6c2d4032bc67032c253b8e63f817254b80049072c24c786ac1373af1f28c25d7e7a7efa027bc995bd2ef4cdf70abadb1d5a5b734cb2e86dc22a34bbd6ef456a884c08c1022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c167cfef734a5fd046d46933e9ef83d8ee4eb029f5a344e2d13fa045055f26b2e2295afaabac21f4e0a11ffb4e8de9e5bbb1afbdd358923103fc7ddd9e92eb6ee3967096d528a85ed365287686f92a8804e9a86a0e269aa149acec026b7a3956909f4388f55228362a4e625ade8c9b4a0833f57db88a56f4967f54ad9b11d7c472e8e5c7df9fe1269f5166c9b8802781ea6babaf5a155593a1ace47ae2d06904e16089b91dec1f74ce308b61c19ff6861b5d992bcee09c23c650ee73f05e75d3117812ae92aa2f3525670377986b10d79dc00ce4848088ee9cc011bf312dd6ed80ccad85659149fa78a908ada922248f293ee70afb0ef76912d8964f05eaf381d0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000106af74a187e239a5d4f6576bde70f6adb61c2ba19c738f85147f04fd7640cd14046f4f29df8f33704561d2ab49a3dbe2f61b4d9953e691bd08754dd6347d4ae01e30b2dfcd8c75fe29ffba7f562fdba2a9f36a95410965d6acc6484fe77a7040307eb5e1adad177f709609b534888a8ddcd93011d35e911666c43faeb3671f78166dc038530fafeba17106a91cae355f009369be454b656e00c3d8957e9bac8114e733d83ddae8bea954a1f0d09cccad0fcc5d3f965bd30fd4f628f99dcc608e02cd2da61f6ccce4a2584c51638701bfacc42c88c596a5e17885cb4a08fc3d150263db3c4272776505e23bc9c7de759b0e9360c623ed3fe06f52d84bffca2bac137e567a049a57c43ba823d8bba1b48f31504ce084cbe35d6046a35818039fdb2191f1182cfdb5a51d30050873ff61f990be58aafa9e206b019115a8f56035a024bc3a3af7da671cc5b93aeba2b55d26239217711855c8c1654a71ee3214558e0fc887183b9ef36be050137e5bbe29ff312734a7258f83183d5b72808ff34f81211803aa24255ebe214e7a33840a021562f46e4020f16acfc55ee5373872f363249398935f3186ad2ac757bb2d1222906cfddbd461554390275d45088cd5207c350f3f98191236d0186532fa8a99cd5ffcb9ed4f1d36f652fe85961bc3636b5836d138eaef1a25a02f58d4a216a2b7161497813d2147d4e6c650bff471160b900cd408e2bd8d8d96764d3c26cb762a821c3e734c63d7ee7c95ff1f0343f497a32db22c720eeb006d1fc192e32022092e97b524f53e7b0e08ec0207e03e7a05e43b9e758ae3cf4a360111446f6309d4e0b97c76a054c3cef3055e7cbfbf7586fc04618a751c30b5c9feeebb909cf62b1f68ca225bb4892a2893ceb42d408a79052a184bb6730c730e0556562cef3128631653ed31829f2650b623ac0abd4ba2e815e7b4498cf38cf1faa9a9d310ced79d0bf2abca86add2cae30984e242b45d1912797a903f3e3f461aafaee0abf5c9ef08cfd7037134d440c32ac96eb27a2e852d86856fc0c1c0b9e550511f540a36111976c1f8981824dad602677e4d85d17c1c5f64d13c373c5e856e6a635bccf1ab09c89a152cbb2c2836a8be3c7c62e89823a09b2ec3c8c3a17a91959ca4330e55187dfee6dc91ccf3628472b0839d17693b9e758ae3cf4a360111446f6309d4e0b97c76a054c3cef3055e7cbfbf7586fc04618a751c30b5c9feeebb909cf62b1f68ca225bb4892a2893ceb42d408a79052a184bb6730c730e0556562cef3128631653ed31829f2650b623ac0abd4ba2e815e7b4498cf38cf1faa9a9d310ced79d0bf2abca86add2cae30984e242b45d1912797a903f3e3f461aafaee0abf5c9ef08cfd7037134d440c32ac96eb27a2e852d86856fc0c1c0b9e550511f540a36111976c1f8981824dad602677e4d85d17c1c5f64d13c373c5e856e6a635bccf1ab09c89a152cbb2c2836a8be3c7c62e89823a09b2ec3c8c3a17a91959ca4330e55187dfee6dc91ccf3628472b0839d176928a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e870b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc19dbc672f45c591d4620260144ca4c78e2a9b5b0c29f0483ee09c0cef1690f98325e65080be82714960db7414d9bb120e71d89a040970bc046d3e3bbea12852839c694bf556cccd9364084035d17b9f96ecc47be1f4d2133ccd0390fa60f5fe021bb3e913ead353b0742060c1370ebfe3c7e98124d1c2b4d99a2d82d21f52ba5362edc5ae96c7b2779e897a96dc4bd9b8fb237eb0d1effcbd6d53ccd22de8ad60a066c759323c828ea80bfb2ce0bc6b15af40804404a913b29729525ab1fc80f389ca414683fbb35b9e9a041c888ed8252cd07fce13e165292a0792797ad785f27bf2e632a2138ad0834a8464d9ddf9ccbffae45f65702d5ff1ed1a6503f00010b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc28a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e87325e65080be82714960db7414d9bb120e71d89a040970bc046d3e3bbea12852819dbc672f45c591d4620260144ca4c78e2a9b5b0c29f0483ee09c0cef1690f9800d30b83ec9b11411bcbda065c1e4b7eb295c4c4f6d8ad76d4a489977faf4b3330dba54bfe379a89a8822c591ef302b8005cf3abf692b0e44279f5fd8d7b6d7a0986bbefec0195cee16a190bf985ee4f9c41a4c2c3d72e49789d256b9e56f44f312ae9121a99b19a8dbf7bc527afc7a15ea68e245d6f6355112beeec71825fe903c389a77683e16e6a50cf61cdc4498c099f64d7417152dffac676e8f9dcd8fa00de8e1ee8b1b3fc579a7f287fe495d41fc184c524b305d37ac94b9307228cf6000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011d828e4ce41d73f828155a137842a2ba0117f9e60f0c659c9d91f69d1ffa952503089b5c09d2f3c8127243cf6c9cd96880bcf23fa17432c8da68980510d6539834e1eee8c05c1290d3c06b6633d52b6577f70ea9dd3bf047fdc6cae102a23e233e2db85c82f74eae479f96fc8ba3afac91c3a0fc28c37b3ae99c80104d4da8192ab4413372eb7f6210a2bf6633c101d4873fbdbdf2c8f7c4cd05a65c3762d1b6164d61961bca52de3fa0dd08b850ff1a203944f5d4855bc73023d065b1ceb88029451a23464e9de2cdee4c6da4c80948b52a711ed2bc76aedbedd4decc3b6a6f191523cfa938089e3812000a84ed39a307134f706f21cc95f401c29648272505394862713033de766b75beb758ea7a7f693209d3edeff44ec887bb0b5d06e5430ab219358f4e79ca9fba3bb645971af7e0ca02afb370ba879b11ba17a6ffeb1327ea37938a74b95b14e61a3366cf774614854c75be13e22b717f1a3fc751baf73bf2c701ddcada3af8eae16281ea8630295103c28c88fe7335b6daeedc29eee332cb6858a711edb3f0cf61f46efd2fcf549a5493b2d9de1896fc6e90e70f09f512e033e4dc44f7b75b466ffa421ef4d67b57f580cf6cd04755bfbbaede3909ea2c39d7573059deb7ff99940a55ec308df9f3dca6d1ee13483d653cf9d263466e0df1b7c0e5c8d04f2751a60189c47380b475311d8f4ad9750f435b50dbfd5a5f01c8d7964ec20270882bd4241d07bbb41581693978f0de35ab66815377b3d8b42db1bdb2a44092854640220ddda3085037f435d5f6c4b31e35790ea088ada71b336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a0c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba0305e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df63a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b1d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce22724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a33336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a0c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba0305e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df63a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b1d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce22724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a330a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac629bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c3a1fd91331ac8e97af8356a18902d5d6cb9303a89611fe8d9d6f55ec0f200be1120d8f2f9cabf36cf829e0210d653a2833c4df016bdce7f4bb8826eb6390d72016baf5e7af78967b999941f98581a9d2f912731f0fbf834efeb125d9bcf3732012540e141ce2a315e825d6a10645a6f5c73a3120ecfc19f4474424dd222169b5381534886392ddb64e77febf8bdf5c4998f8cc6075d0825191be8fc4cdd391172821af27180482573f3ecee0774ea94b46f631ff5dc52bd5e10128d777516f412ce3106d2a4a3626079a2edbee62aa99c3122521fdb7f49f32ce4008627d45dc2fa1a25a8bf6d439b9708221ea96b0fa996bc633864855bcb0f6ac53241ac67729bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c0a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac6120d8f2f9cabf36cf829e0210d653a2833c4df016bdce7f4bb8826eb6390d7203a1fd91331ac8e97af8356a18902d5d6cb9303a89611fe8d9d6f55ec0f200be1118c5ee80f099e8df8b52cb1f015b009941088d4f688bb58fb9bb569998b37d8147441836362e8118976426673d67273cb3cf157e2cc4d5bccd96b59e710cb00287c73f5fd950aa93f04237026d37d0948266965fbe3dc006391b57ed538f732384824ce748cf5a7d156a59e0d985d577dfd40238b9a57749245502337e3e0bf01f6cf45ffbdd7644013efdb0149f0d13d05d378ccecef68279ac2af2d55934b1c722d17982370e0f6daa91bf2096015c3df93f6e05393f28aee44939517961e00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001072c5b805a273c453eb6ac32ce90892bbde748ff4d2c9ccc80a9f438b77976762691588600d6cd9790d8ce492a02b92e45f5fcf1bd7c738551eb4dadb1ee211400eec28673637baa2ad837ee56b0eabc416ab0ce96d3bff2fdb57a9ff20d1dd00284dd9c592a15f98e67560ea7358d722ea18f4bcc5d891145bb69bcd68fd23739f3ee737bff0ba7233b544262d02c3942d4d9ec6459e3d7f81e13118fa1ec731b1f706b62e812a37b3309696a70c2794529ecefbea33c8b1b9a0a5b62f1873e1f995bdaf1da5b1c9da459fe0e9568a8b946f78a0ef76cd6df4e43e631ac75462f9a1d8dd21de953a15e5947a708f4a52246c07b22586e0fcebe7f4882cc036a305b225aa447010a399917100475e37f170b2ae8879183f1571ac2111a47d32a038fea98ea12d9434e2f29d0f89994403000952296db69c072e46933215b13522e0ac4338ee633dec7b678ba61ab735a54ee4c0ece327c7d56579df308e959c92a39a4af6433adac6e6119a8cefe9375ba808ce745e9306a0918c661d0f27767055115b3d3d604e221d944cc6370be0747639af5b33e9060b094afe5ed518109005a8689af80e0892a3c8d224dab669e66481622c5bb24e3a2fa496cd7f692d53cb38645b96e16b9a92e76600443478585a041ac8ced2c83ad365d73f8618571288e92fe825a5896e7b00171d66c2cf7a1cbac0ba98ab430c4badc5169161c21062b6fa37e95086467b2f244e1f82c15cb6f012de29bb0caf621312a6120f34e0d6bc7e5e38df29064e930b982c5e49aa0799d8b89438a87b9005df43b77b7b32536d7ae9327c01d3159ed3ae3849187e4fded6c3b9bbd494a7b15ae78e51dfe1ac928516cd83fe2cea612c51c7b6e783d48ab8fcdb13bd24eb21b3e871ae2033a123668dfc6c091f6c1a2267196d7a7346871251770c037420d0a8e5c7995f405edc99720393f6e093e5dd98e692858edde27d6f1dc38e45720265ea3866a0d225b100c5ee1c2d9d1c82ac037f236437cefd1c94fffdca5e58c7113ce5fedc01da4eff3a11e3d262e37d53fc80dc9bca556c732b94d1c75b3a0bfd931a012412bc7503dda68ce4118e8d5c117bb0f512c21e6f67d655d064963d38907dfa4be1438afc2259731bee7172a3ee844f0aef624b2058be79c154fc95d63f8205b432536d7ae9327c01d3159ed3ae3849187e4fded6c3b9bbd494a7b15ae78e51dfe1ac928516cd83fe2cea612c51c7b6e783d48ab8fcdb13bd24eb21b3e871ae2033a123668dfc6c091f6c1a2267196d7a7346871251770c037420d0a8e5c7995f405edc99720393f6e093e5dd98e692858edde27d6f1dc38e45720265ea3866a0d225b100c5ee1c2d9d1c82ac037f236437cefd1c94fffdca5e58c7113ce5fedc01da4eff3a11e3d262e37d53fc80dc9bca556c732b94d1c75b3a0bfd931a012412bc7503dda68ce4118e8d5c117bb0f512c21e6f67d655d064963d38907dfa4be1438afc2259731bee7172a3ee844f0aef624b2058be79c154fc95d63f8205b43235b5f0d6a17565734c6c297adb20db96542cc678885f50ad8c48986405d7d6b047780b393c9324d25d3cf2c8399bf9cb8b67dbfc80f7d2ddb11c11af25663f7075b39653009afe58d1a961603a54b8d15568374b04917877bfd58681d935c2010d1e6d9d215c776184ad825cb0ee71ceef6cb60086e6f5b69598de3afb8c2800964d9d3330d1670a4e42fbc3a9cafb73d8bb473828ee56bd51e00139804035f34de7ed6cdd5e9ec53e61b5cf8bd1553b3aefdb5dfd6e19b85504cdc9fdf0c5718d47e3a9332a846a812c94d8c36d118eb79d9d7f584302d5054988978b26f841d9ab56e8560cc5b188fd8644205937462a09bc21b28a4c47ffb683f72a166bd1c0f064577bfe79112d438e1d93c5e021497a4e3ac45ee050b3d18fab40f739201b38119d0dd919597fbee818ad62366b6b64f31cd53789ea4949f910193441a047780b393c9324d25d3cf2c8399bf9cb8b67dbfc80f7d2ddb11c11af25663f7235b5f0d6a17565734c6c297adb20db96542cc678885f50ad8c48986405d7d6b10d1e6d9d215c776184ad825cb0ee71ceef6cb60086e6f5b69598de3afb8c280075b39653009afe58d1a961603a54b8d15568374b04917877bfd58681d935c203c6205425790ef06985ac604ec04e5bc9d3d2d03b5732f80164c65824a3e05c90406e37c033832a090e243740a516edbebce3ce6b2323e10020a43fb145471121a93e76657d1bf2388918c108fbe19107cba5cb74fdeb6990ca199928cb0ef17033fb6a0f23fcce245175e9a3da1ba805652695547dd6f581c0d64cab19d760e00db884aab45e127363abcf0c0b693034089ec707082b8688ee267a938e8de5a27300cd024f133a83fb00a8df7abba94e76172e142187e5582f6a907b21576b7000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013a01018a895b9b3914b81ba4b10fba8d618518a7478e694f320211753070f8a92608a4ab5ce560906a986ce7d4b58b0def30804856461e75252b4a562553b1f400e00aeab28bb22116224f1a05f7aebab5ef02779ecc6cdb5d5dddb716be2ad719be254c22cb3b14cf62371be05d77b6b13824ad804be2e1ebf1840074bd8c3e059004863d41049d0669d64b3c21ac172b8fff8c429f6fd3761e861b2d20e3f51404205823c398f26306c1cf86efc9a0c75f21c9b8a8b50719b7cb2c9d61a6bc191dd603e3dce6f71f7a2cccdcf1c1af827169531bf8d52dc1b1466555d595000f0362bc2830be3685d149b28e9ae8361fc140c85e9ed38214c61b75cf2ec3e70948eea80556d72d679874404f21a41b088745195d025d9c00ced9f429bd96521dfc693ba66b6882274b4f90bc26b512652ef3d430807ad60e107b8c056ea5861e3782f5e125f2a61897c01876ec0aced34109b5eb5511bc6413ec92a96190dd217cf72d1a8c086d2234350f7a528fcdbd2284f3b63837f4533eae3182b8a70c09f7c3dbb7f17a84c17b5948ff986c7e693c5b5897dd966feccf955ab5f682d53bb3d861cb656ae68a9a78a5b183b82766b5eebbea6917efffec94e50f51910a3d8f4e59b66dd924165fcf84abb1da2532544cbc9871fc2883e4917cba795fa631cccc3472e5f4e8112800ae099a4ce0eb4e2bd7ec43f9ee8e757ea7048ebe5d2f0e7a4fd7ad5a14535ec06dd84c83566f629b500aadda5276c7621309f569240de46c9cce07756a77c71bdefd3eea51d363580546d4b159b3ce6bbb662b0ee23036b4f581afee8fdf581f5a12018200388315cef6b547c023c21149500f418d0fc94b0a7e50117020a7e0a5edfe7dffe9c3832d1297b15b756b1fa3aff0be74311188cb886fa8cf5cb89cc25a078a00b3bba216b5a37b6de742c3a7904c47be0eee773477905730a347633da5f875ff6e8af6e553a97dadb1ea6d456fb3b8433557abf9aa2e4c0ccf9b0fcbc225b2031bd65f7d704a7dd2b8c63f7ed17d66b30aa8540655d1b3f33064f0343dda4dfd0670397e99027b48e066f16e2e82994e0ab65be052e77c400e074efacabc7a0f021579830c4090af372a79c61773017b3549a41fad1883bff1f8b105354385f120311f78fd0c686c6202b726e88cfe863036b4f581afee8fdf581f5a12018200388315cef6b547c023c21149500f418d0fc94b0a7e50117020a7e0a5edfe7dffe9c3832d1297b15b756b1fa3aff0be74311188cb886fa8cf5cb89cc25a078a00b3bba216b5a37b6de742c3a7904c47be0eee773477905730a347633da5f875ff6e8af6e553a97dadb1ea6d456fb3b8433557abf9aa2e4c0ccf9b0fcbc225b2031bd65f7d704a7dd2b8c63f7ed17d66b30aa8540655d1b3f33064f0343dda4dfd0670397e99027b48e066f16e2e82994e0ab65be052e77c400e074efacabc7a0f021579830c4090af372a79c61773017b3549a41fad1883bff1f8b105354385f120311f78fd0c686c6202b726e88cfe8617f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a66373017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e099029640cecb60663ca3c84e3ab471407605fd8c4601eda6da17cf6c5cd3e8d1cff79db85b96434bd8f0c9e18ad525245992fbee4f7ea7d6b58ec3aa0045ed408c85ae8189c346ae34d8272b01c1bcef5ee292e4a4c244926ff48e0d8bb2c8b0e8dc8be172e251b5ad8247c6a8cf3cb3d9b1fb15fa2407b9062ca256ddd6dd510c579ef7a63df171afa3028349cb22409e97a4fd2ff1d3668b6e0093f87f0a902690d4f4950a80bccbef628066c3195b8abac22791669f6cff2ede7df810fc93abda6361e872e85d93352bd64dcf053ac029cd86e08c349cace3839e84452383312a351e4b44da20799ff07b367b2ba8a6c33c10cc30255a45e011599823e7b017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e17f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a663731cff79db85b96434bd8f0c9e18ad525245992fbee4f7ea7d6b58ec3aa0045ed4099029640cecb60663ca3c84e3ab471407605fd8c4601eda6da17cf6c5cd3e8d320eec6debac4683b85647653b81b8799ad9a7ef5dabf08ac81c7ea93bbc5ece05a6b50f6afc6a928ae0bafe9f3abc8dbb59b27883237f00fec2eb3db5a5a31c1db2df172c59615c18237ffde8a17415445b67a97940020f843d821c3a72fb3f246dc857f182f70d22ef809b8915546eb77270772499c8fb688d07d9a7d8529d1d3d89258afba8c41f5393ab1a1f6458661c7133b1113f34f10fc11efed0ed31122345bdcf51e8e35db729e3c7f32c608c79ca39153033e0b82065380d8e4dbc000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012b9810dddcf90f9f4c06f260004342fc63662858ed4ff39d0a8cf2e7775269c82475ea91da2758d6b09cd461dae0af12b679ab26e447b9ac605660e3acba14af0c2e55ba1e2b49c5f145283b0b8ea87e8b3a66ce7fba776142537074fae780dc2e174cdb9018fd04fb0673c1769fdbce5cae41cfd6fdc35ccdf5cd3c54063dfc25cd767b5e321744344bf968778d56b3c321fea4f71ce737d857caef85bdaeb720fc789a36bde8317d9c77eb0bef30bab9b79973e88b480ffc3f2bb6a6c366f83b6916a23f7996b650da8b33dc59952e9b1bccfdf2b312ce7cfdc71b2943aefd28c23c54bcb0909629a70cb5f3a84298b045da7facd6a0b60257db1787c2175f13bc35b7dbe7a40af6da79731bb2193c2fc10c1a9b66aa5419257b5f5c4a3fa12b1714470ea2e4371b06d4eac2b18f840779bb265fcc567e009574fb3fcb710d0d965cdd60678c78c42601485bd5e413bc7f8b1a7e1cde3dab7c3dee2fe807f033e356a5bfb39401153fe01fe114bdefcf32f82eb18c6e20f0a422a91accdb191ee4bd9830e4164e8a7c8046147916ed9233a6a1d5d0f148b2c04ac3ccdb624226c6dea55272cf1cc19951a89ca30db83dbea372ac75bd1739fbdf7bf86cb19d1d3856a41545e20d100bd9bc6a9b7c78dde807f91f52dbe0f2051dd45d13f4b10c593a8474488c9b78b8b3ea4ed7c537d97c40fe0bc239e9974fc5d817c312e72e5289f9efc5a8f9dc4b0fc6404e455d0ea75d8b925df0b95f93f67aa1d3767d10b2dd43f66095d3b13515594454fa739be3fb595395c0796430e5f468770f7835c3976d398f747336feaa383f3713a35943f3c4edb6b1b51af8347c453c12f50a3c6892c6708b8cc90155c7c0c8ec5cc902a5371b9647667e34fc70bac3ed0c0cd1f5221fcd464012f953193c13623035395ee87f5d941b222442b95a2c5ec5332e0adde032b9bfed06ace6c3ec9dcfed0d3a1389ef65007708ee33a5d3a13c0019c9aa9f025f405ede9f7e2c60eaf0e7d8418e7386eb6c11881cb1c2ddd9d83fe6365560fda0bfa1216081d39f150f3a6e576d95c60daf87a5143b3d2226290080f0551b0bdc41da591d76dde496b4873947c841a2991c57a88f78ce5541383f7f0faae4f423be25a6e289221b694b9b0d5133c7aa5fff4184a17431aabec935c3976d398f747336feaa383f3713a35943f3c4edb6b1b51af8347c453c12f50a3c6892c6708b8cc90155c7c0c8ec5cc902a5371b9647667e34fc70bac3ed0c0cd1f5221fcd464012f953193c13623035395ee87f5d941b222442b95a2c5ec5332e0adde032b9bfed06ace6c3ec9dcfed0d3a1389ef65007708ee33a5d3a13c0019c9aa9f025f405ede9f7e2c60eaf0e7d8418e7386eb6c11881cb1c2ddd9d83fe6365560fda0bfa1216081d39f150f3a6e576d95c60daf87a5143b3d2226290080f0551b0bdc41da591d76dde496b4873947c841a2991c57a88f78ce5541383f7f0faae4f423be25a6e289221b694b9b0d5133c7aa5fff4184a17431aabec90552acfb4136a8687c086867198f336159a70e0de3347500c25c57abf0d8fec13c5f354a6809f5d8fc0d754f10b0845dec5a231524772141e6eba5461ed414fa2fa81737a7f382da645261ef58dc599e11f9ecb9c3be30b083103cdfae1320470ea60682aecbdee42397c05a7ce3eea2ec92141b47302b4406022808423fcc010559925ea413ce9bc0338a00d6e23724ee9d834c52594f99ba3c69852b150a673b442fe80237f9f2471ed5bec0a322c9943733baa45cff62f815d8df1ad316173fe1468df0d4367ccccba93df2730956b4dec3517611b685993d5bd3dee7bd183f8129a0cbf2c2ee7797ce18340fa10c6fc510cf0c940f15873982226f52810b1bd3832741c31cd41f4b79e067ea358ea2ad751c49ea6025c7f9ab78073c10f9203cc350bbecc8ec4012b59703593e4317e7ede6417f5509819c6dc37e94d8b53c5f354a6809f5d8fc0d754f10b0845dec5a231524772141e6eba5461ed414fa0552acfb4136a8687c086867198f336159a70e0de3347500c25c57abf0d8fec10ea60682aecbdee42397c05a7ce3eea2ec92141b47302b4406022808423fcc012fa81737a7f382da645261ef58dc599e11f9ecb9c3be30b083103cdfae1320470a6c518d4bc90f7ded1669419cc1c92e5a9676d06593ac5f2145fdb1e9471d481b5dfa9bd184d0569fdc43066fe8b048bd08e7d34083390f0f6b37b5dfee82f037fbe9f526022308ffc49beb531c492be5de1b05c054cdac3d5c551939cde90a20374efa3e791f5d3c185680619348147ad51d8ce8be00c16f9cfeba2b95d02e19ec0292880f6c4530091eea15cc26cba9f2702828e5b9e9fed63b24d514a6d63140ff15e22c58558c7ff547f9d9d0da5a7030b0219337e3d303e7dc731867640000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000110fc56c95710c1a945f27477766b823f188f19e53e367835e5e911758cf1a1f414d8780aabd115c01d8be5a83eb232a5f8586dc670dd48dc15a1ea3dba0392f42a2eff5392285967d07c6dc9450daad9480872be9e81b6ea4021536af147cd470debae6fa3b3602532c67da61fb6dedc1f10a099e661ac47304a1f82bb1a48703629157a361d92390fb6e3aa790c3c0d5d4d940407cb058e8b2fb255b9a05eb63f7ad558ad51046f91d3ae56cbbf49f30d17fc268201af9fbc4281196030106a220023e72f010d84d9151db5e846a5cf86bad30c71fa9edd01327fdcf7d4d954098006a27938312658134224b1e12467530b30fb362e3056b1da2688d20d0d09378cb2eacda6d23a45e376177ad6dffd17495835e91b1fd2ca888c7e5d287c383f9a015901a40e675ef09f0243a0bd4740cc66aa2ac05806cb7d2ddc917c2a043588b992a12ab13cf2ea4c93246d49a657fa8777bd47e45fbfc8c24c09ef021027e26129456fd53cb4d76b77064c7b3f2c75e6246a31225ac749637d51ebefb41cfe54bd01cfd75bacf774d91e2519ba284b1324861ce98e805096b87dd148f528ad478081870e0f9f1e5d1592f70aeba7a736effc29c4d16c6b93874776caea2ba71a2265ccfdd6e7ba337058782260776aee5a61a7cf94f2e53881d6e6d16e21934f9fd4970d89945a97c337426fc319019daaface7f8ed1dbbdab3a4a4d9f3ed55c19fa51dcfc783b1b5da6d51e9e56ceaec37c5b5b3f556c2cd703c22a811c5921863a91a1143d13dffc222623fcdc8f8333ca2677d9976aa55e6c064be50087ae544ea93498c65afeaf9509667beb82df3516b3d44d414281f416174e503f7851abb156cb6739a501506af6998436c3b9c6f29924ce57eaaef8e9e8b1b102a667a5894e06fbdfc6f96de92f006b998e5c0971832582464c89c46e7487903d59985a76b1f9042039069216d0ff9488b83cf297c9d39952e0a728918b78710d40063bae8622eb5ee2df258deb0219ffc7cc2f378fbb8b5f7eb0d62846a5d032bff9c45179dd14a11d20da7214fde6227eccccd1bd3d9039ae8016d7b95a3102401f2a689eae98da6e5bbbc5970a81dca063f00c81b09d444c4341c9613d0f3dbfe0d5976151672591a4443a68f57e45a6350bfccb487e54e0edab369ec2f20087ae544ea93498c65afeaf9509667beb82df3516b3d44d414281f416174e503f7851abb156cb6739a501506af6998436c3b9c6f29924ce57eaaef8e9e8b1b102a667a5894e06fbdfc6f96de92f006b998e5c0971832582464c89c46e7487903d59985a76b1f9042039069216d0ff9488b83cf297c9d39952e0a728918b78710d40063bae8622eb5ee2df258deb0219ffc7cc2f378fbb8b5f7eb0d62846a5d032bff9c45179dd14a11d20da7214fde6227eccccd1bd3d9039ae8016d7b95a3102401f2a689eae98da6e5bbbc5970a81dca063f00c81b09d444c4341c9613d0f3dbfe0d5976151672591a4443a68f57e45a6350bfccb487e54e0edab369ec2f22dbe6d83ddfab2bb8ed281dd777263c51dec4d6493a42f57b175e1d9c275616918016098aa02665e1acfd881bf89573a1e3d6325e54235c9d8ace9a6067e91ef3fe631bb11f160007477a032a2a9938bfc7b64d56575786aa2fbc300c12e98b33a5a0028661186e5e1e6056e265ab1752e2eb5943d8b0dc69e69044675dd73f920f539e17e56e6d8e1a350a3f87cd64461769b51a41683968980c2e69927c7212f766d6f117e8c93692d9eff721781f012b206ed1eb5dfd67d9c9baad29155e036547ae9215cf7abbbf32ca66c4debd23d5eea335570606a2bade875366e10512d38a35e710e42a79c971a8773f83da7b692bc0de16795eb4fbb476d0490467b3dda0174e5c54720b5c7688d7381f972f648bf686bc300dfadf9ed525031842e00d841157829e66e10b0f037e3c451a1f6e65cb7ccb62a8cd3f8422331798a6518016098aa02665e1acfd881bf89573a1e3d6325e54235c9d8ace9a6067e91ef2dbe6d83ddfab2bb8ed281dd777263c51dec4d6493a42f57b175e1d9c27561693a5a0028661186e5e1e6056e265ab1752e2eb5943d8b0dc69e69044675dd73f93fe631bb11f160007477a032a2a9938bfc7b64d56575786aa2fbc300c12e98b31cbbc3c32ab1e6f98d545d26f50f9f309038ae684fda2c0e53bd1f1e33bff281097a3be20b33e220e5d9a6ff84b0baafdabb08adac472cf734fb1e51a64d7a3a1ae15fa1247a0b60519fe4da4c26b7519e780d32107850f363dc6158a48eb7593f6af63c1a7262b62030f05ee9a2901de610cecd134d624c71b008a6ad74abe20e485a992242e4fdb56fe2c2d381b086fa6f3f7db33f1bd4d5a3e80acb9c3f9914182e29f5fdba76c257da06388e2aa54e7c0a25335bd49252c2b844c0c3096c000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010aa06ee759f8326ec774fdf8967a20dab0ee6882cb76e0c22edb028745379ad43f29c94ab83557e30f8870a0a581a0332475e3763da5f125891e931aa82149353553e06891c04e5b44a33770b79afcf8a6aa3e29c7f0009d9e7674146a498e631159fe599a73e6e5da0e7f03e60031470fd00a3cd9a556d0ae10364399ab61f72da5a12359319adbb5137aa37cf2e28c61b611d7fb2ada2cfcddfa383a45ed880d32e92cc802fc846420e566b3819b6d702b8db610135000780c615493afa4853a0f25158c7e7c04321929508195e7d974155d02f3d82189ac01752ddff875b62a4522dea8b2dd4ce638646d644db5cd64a4e32527b6b324418cf1cc912a01dc2341f932decfbe580bc69c3bbef606745c9cb92336bbf39038a10351e4645853210959e3fbec99b0094fb206406951d629dd26a1adbc8f01ed993e923cee0baf32db7bdc7253812a3aa2f3f78e78f41d5e5017222f154aa015145974fda8bfc53cdf2a6a8206ac73ca7d1f07854dbf916891504264641c6b46ef38ecd9af73f03c1435b91807ae3086882469b4bfd6e79610dbd8d5f168ae370642ee97c6cc33099766846b4f373ac58dad84fc5c4dbe39e16e3bac5545b1b5b5e7512d8147ac2e6a9d95390c5fb46d4f1df3470ac8a655c0fdfe27b115ba88434f9473670d8e1bcb79051d637674a99f8107e21287dea4c4cbc7e674d006228818a9033ec20c0788a5b9485a83fbe25f0c808ad51c95d4aabd211e5979a39244c7bea34ee3b73e7dcf606c4a09db3550c3a2671ad13d804ae2b02f1f6791ced7bfd64f3c00ab3f5ce32610798686b21149a90294fe36acf6845db3e882688508e135f72bb03e00a31cd9ef8679794deeb656fd6b01c97550149e556476b314244fb708d44fc33cd06fbe525fa0a17a56704d0ce8f710d7b631e45e56a79c3477a259d3da7132032f9041ada05f5e85a98fb2f31708ef4a906717aaf6517f64b58e932c258ecf30122eb79bde232763b03181408cd353ad749585b27d619ea1a1680d234435f60fedd1486421dcd89c4fce7ebf732cac74d2037656cf977cf78bc8dfdcbbca0b305ae9960b56afc4f270f78642c020a1fc7320a8608bfcc65c9f757ab0550dcb0fa51669f4a9503b0d8f0879bd3fdf5e25d37853a8c0fc553c8dbb724faaf2363f5ce32610798686b21149a90294fe36acf6845db3e882688508e135f72bb03e00a31cd9ef8679794deeb656fd6b01c97550149e556476b314244fb708d44fc33cd06fbe525fa0a17a56704d0ce8f710d7b631e45e56a79c3477a259d3da7132032f9041ada05f5e85a98fb2f31708ef4a906717aaf6517f64b58e932c258ecf30122eb79bde232763b03181408cd353ad749585b27d619ea1a1680d234435f60fedd1486421dcd89c4fce7ebf732cac74d2037656cf977cf78bc8dfdcbbca0b305ae9960b56afc4f270f78642c020a1fc7320a8608bfcc65c9f757ab0550dcb0fa51669f4a9503b0d8f0879bd3fdf5e25d37853a8c0fc553c8dbb724faaf2362e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b33ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba3b674a1b1f59259eb7e969b60f76d978f3840665a081434844ed7e08ae52a349170b49fa45ed99ffcaf8036f11a7da96f3eb56355a6bc1b4d4b673c252a8f14e277cd2dbd77afb48c0d9cb258f76d85648d4b774d43e66c5212e3c568e0855d5373356dda86854f354b5a1fb1115a099561537dbd56755287f0d6f83bcf006980e3af2af2cf6e4a29194b7a334fa4e29af95938116f109c4f463a604d1863586377e8f803ecb5000f04bbb52af8da4428f21fcff4588aad7b5573f680cf3a65115828222a2835887dabc623c15047e2f730b844a92ab881614b9e919030e03111ec223c4fadeeb0f10194b845cc02f4f321a901221bb83066a2e5ba4aef824533ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba2e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b3170b49fa45ed99ffcaf8036f11a7da96f3eb56355a6bc1b4d4b673c252a8f14e3b674a1b1f59259eb7e969b60f76d978f3840665a081434844ed7e08ae52a34926ef865edd2b474226799459c190e7df6c9b27ef76928f9ff74b9b23723fe40e262ecd6bd93cc02b818ce8196c0e2c10d35892e0b37d3086b3f2641b69a2a6bf085bd8d345f1ba6f7fbfeeaaee4ab021a9b8554e0b92ed4a776fa5a15d12a2182819821065cdf51920ab7a64e13a4c29db4188432444b87ecdb3ac036dc06abf1186a3cf711bea2552241eda0237076c9f825768f8af07a55234612af4a08d5305d0915a1faace1421293e908cd8bbd3b003ea35cd08d271b33adea70349c3c000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001375c623f3a202cfd81911ca524cba2eba0a0d2366965087dd929791c352710140dba5d03e86c034983f02535bcdf742a3d8cc96978c41432636ed8c228a84a3e36b96aa23eeeb8d7e3e7ef78b79db2234e4576bc35fdbda72365b5784930b2b630c3ff3509cee52910172b60519a65435cb86a5e680ecd6506bcabf14a63bd5c0b6a62d270177d43c2fa84c5382b0649aaa9817e616fa5d98e1181bc7a57f88736eec725f77483ca4b8f58a0483085c0df2002b7fe6599d98af4fb6b290b927506293644d897295c6d439652559a02d490ae960081a1f5f1a499dcef40877b9302874fe9ebaa574a7996a4f2bb450a4172fa7fc3a8b1fa9c249a83bbc5b89bf00c6fa2311f87a81be471f6302ac5e29b3a7234f3e371c7f7af46a3e4412da71b10a16882eebb80de1d7fcb4d995a544e789edb34a54e8da91ed4b7e3881330d42eb8bce3fe75228f1452ccee5d926a4383f29ecbbf32cf6dd755b6fdaa68d3231923226cf7887309ed149d9744fed36e5e27f932923e547b17b5b13b6743f3d437e55216a8d0f2c1be868652d9266608df53f49bde77cd4ab472fd3d81caabf70dc64a26da85f2a98d8f4b9bd7f5be9cf09e5578a3cee11538492d02437d67e83d8cf46e8c52f74ebc2fed140ee9f781e17b126fdb23acf60ff5a6926b5517070f25b6265f45cb53280caaf11983c8602b12561e78d0efc16486cf5d3bc00d0b2555d6062e99b9e00f8b3a37bfdb426d9b7f1bf07fac300bd2f5f3ebc4eafa460d20534d8b63c6bb18182fcd8166d156cf23587f8acc1cc3b8891ef05efa78eb0bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb0bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb274d3dc3a846fc8924f1055fbf4f5ad5848b4b6ec07c76e6079ee428f532d63220e6a6375b0b5eaeeb6fc87a8cbfa390fbf15474932bbe08a8d6ecbb879cb51f385c9418e78f11f2f0e90f63a03c1180b7effa2343e1cdfaacc5d75e100257663f6f87ec151e92d4feb622c213b4f0192e6730ed845ce8696e4bea84732e1d4d26cf1d52079afdcd1ce080241e148c73601ff86a7b42ab9580e99e5cfacbc6fd05d7b01fc5928349864d3bbf35dc4ce4bb3f2133d7bd7e79f17d62f36cfa701a2008bf70c75a3a64c4723b888adafce692f77f601a006122816a6bf55160bfa511e36c37e953c77eed67e9a7f536741ff0e0ae19f19a231119b79c38c3313c941246ac812774e53f2e2998e14f8bbf7685d50cd9324383a9b5506da93e1dc1b43acb20f7f96884d38b60d863f37e7a46f9768491f166e41f4f1eea9d44082f9d20e6a6375b0b5eaeeb6fc87a8cbfa390fbf15474932bbe08a8d6ecbb879cb51f274d3dc3a846fc8924f1055fbf4f5ad5848b4b6ec07c76e6079ee428f532d6323f6f87ec151e92d4feb622c213b4f0192e6730ed845ce8696e4bea84732e1d4d385c9418e78f11f2f0e90f63a03c1180b7effa2343e1cdfaacc5d75e1002576600dd7eba496b4a22ddaf036016b0a2506c0ebdee7c68a338924d25d59ee664182376a0e146db80f9232878a8653f4c05a8d9537aff2e62c133d1d5a10bf467432ee4bd85dd221ca7d634f2a0597787fae54214fd8b34dfbcd54e261f00a41f001c080b92f513d781f6a43f0e3f911382f71c24d09ff2ec801afccdf9099f0a5438de073465b4d9cbbdd00019109c8549702622771ea08e8ffd24ac876a608886350b4b970e4331edb05b328eb7dc52828f13293845bacae491cf893d5d468e5b000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011a3607f1b09bf69a213b8f966c74db8d7275a4ecf135d64fd56ce4296eee050d33be3c557bdc01ccc10c798358e0cee3eb43c346de7f42657ff107b45e4bb65b2cead8a7e42c4286a6b22d6bf54f28033e556ee3f49b6e1e36c6ae52ed2f9a283ee087709e94a89522c2a8b258260c10ad288da81e454aedcf4cb419ab71de45214ad2cb6d28b3d126d71b63e0251ccc2a6a5fb4f961ef8199535b76ab08e99f3db4a9d8d6ee73871f340d6788dd10fb9a9874388be59eb482fb34e8ab373f8e028efef65d37994fd79d1e8c1320b1820e28b7c707f0a263c127a907a5c6506f2955b675a9be4fc5c46f106b616151bd2cf64e34fa910bea29f61991214448ec3c11963271eef0de132d1b2438183b4ced38fd68d999de6747a64783ff6ae3223ff9dc7f1688cb46357569836569c64037f7f9aa635a1e9a3c53b2242fef277e2fbe1c792bf180d2fb149f8a036b70debb3248d390cf091386c615b3a674d4aa1c58fef18f2dfcb2404e58215972a96eae84b219edb9c6cd4f0ff57e91d938fd07587f442b39337915ad88e44065262937b500d93948e861da46069e94e8f7893e531cf9581db1f23668490a70b6fe7c983d493b48fdc5fe127623a1305f1c5619e008d1fecf3ff3718fdb27cdd733074b7bf962400f331f3d89f0627ec4d14d16dbd01504330ee8328e63f94997524dda4fa79f3d9a3b05e64368df5fcb46ad27aee29ca74849954a142956ab11e4d7528f67c0181be1c3f695e66e9d067f9b274c6c95f030a55532a5dcca19d77da040dcf1a6cd1089c3b6e751c98dbd7ee4000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000224698fc094cf91b992d30ed00000000000000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000224698fc094cf91b992d30ecfffffffc000000000000000000000000000000000000000000000000000000000000001940000000000000000000000000000000224698fc094cf91b992d30ecffffffe8000000000000000000000000000000000000000000000000000000000000007d40000000000000000000000000000000224698fc094cf91b992d30ecffffff84000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000224698fc094cf91b992d30ed00000000000000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000224698fc094cf91b992d30ecfffffffc000000000000000000000000000000000000000000000000000000000000001940000000000000000000000000000000224698fc094cf91b992d30ecffffffe8000000000000000000000000000000000000000000000000000000000000007d40000000000000000000000000000000224698fc094cf91b992d30ecffffff840000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017b2dac71546dc2493713ac1ebd0fc3a180c7c29eaae5b0e85f3959b824bca32000000000000000000000000000000000000000000000000000000000000000030d5089697900f486566b25f937f0c13c19035483fae49286eebf770f651fd0d000000000000000000000000000000000000000000000000000000000000000034ce144c6c81c3a065162768a4dc8aa13b043653f4c1e5bd888034758056cb76000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011f6c5bf0052d0873a5ee9794164e1b09565f9848122f6b4dd6094219ecf3e6a5000000000000000000000000000000000000000000000000000000000000000037bc0fccaab13923f84568390f6aefa9196a6fe7b297f541e70051016fe153780000000000000000000000000000000000000000000000000000000000000000339d0d4d0e435170fa0d03cd8276be2a77f98662e0d14983f9f93f5df8d163300000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001059efa75a99d314ac7e112966c68bef66639555674fb743cda201d0006fddf94262d56b50f01332bf2091ff8ca8974beeeff26a7de49cd6845face6de868e49a02491972a0a46d36e51fef75356ccf64fa2455296f3e6c7ad2ebc9a569a6d0b90ee2d718dba3d2c0e9fb7496d83c29ca835758f1a68a7e328107eeefc2a638641bbbc4356548b3c004b57613e391ea038bbbd00c9802dbd5405a0f74475967613c3eb696d239418abd665e2024739c1360744c464563db9fd506fee08dd698ab026540da72d1d2fa2f1adabd99277622f2e1514eebacce0a7043282bfc0e37441461a66da9fe325f8f731378f355c8b87d9af15c4f0b1518822d426dfe4f107d29c02968955c98b4c06eef3aa08ea5cabe2452d6157b60515962be6da4a884261ef3c52013dec7dfa0a29f051baa17e1794e684a4900f2464b296f4e50b2c75127a429d3ba8483c97cb451d7ae587a4eda0ff3ace4c6198856baddfa9f90dad61e077269c8d261a1cf61801702c3aa56f5e256679d8094d796014c4525b739090000000000000000000000000000000000000000000000000000000000000000109454259592027c6cf5644a5d02ea129d9399ce489991c269f698a79313d940109454259592027c6cf5644a5d02ea129d9399ce489991c269f698a79313d94000000000000000000000000000000000000000000000000000000000000000003054c4fcf1c6656efbdf088592c1e3415b6c22c84fb1ee966e65bf8bd5bf46f20fab3b030e399a910420f77a6d3e1cbec6da7633b99b0a852ac771612a40b90f31a7d8f0b8dffb2aeb5b2a9bddc970466248e2f57292bd9d5c752af42cbc62b70e58270f472004d514a4d56422368fb9bffdb60696ba3b7e3cb805f8d3439d4a38473cb39c5fe7d698c7d50b54ef315f8498a3d720f6c8c002c243fddfaded9007b8c34c63a0182967382af4ab10cea09dadf524e856305b966aecef2052127119642f820ddf8730fbe72938a8abf6dd0de0cf437f9e0751a91690415e65a3cc269bd07df22078cf0418d6c7575409231465c9b889aef1c9f016a0aba19a5c353054c4fcf1c6656efbdf088592c1e3415b6c22c84fb1ee966e65bf8bd5bf46f20fab3b030e399a910420f77a6d3e1cbec6da7633b99b0a852ac771612a40b90f31a7d8f0b8dffb2aeb5b2a9bddc970466248e2f57292bd9d5c752af42cbc62b70e58270f472004d514a4d56422368fb9bffdb60696ba3b7e3cb805f8d3439d4a38473cb39c5fe7d698c7d50b54ef315f8498a3d720f6c8c002c243fddfaded9007b8c34c63a0182967382af4ab10cea09dadf524e856305b966aecef2052127119642f820ddf8730fbe72938a8abf6dd0de0cf437f9e0751a91690415e65a3cc269bd07df22078cf0418d6c7575409231465c9b889aef1c9f016a0aba19a5c35376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec2ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b203fc1dd0a13bd5456cb5eb5891a438e996ea04bfb6be14b9d3f424143cb7d10c619fecc3536a8d4db49740272e0dbbf7b6834c562baa120ecdc9ca4f1a53923323ab712d6e78f12ee1f63f27f00f3c866b4cd08f692caf384248962c84182437b1d703986363355d64a0649679518c8bc7268c2f8e13d6488239677eaaa724b201908910219cea4d4cccaab81c3e50f7e3bed59615b0ad1741989c3bfacbbcb43026459318558e89e2ca02c8526f78e9530cb28431b2bc59b9f73416825d64fd52c618c4060d5852334ba45d5d959d7fa53993dc2eee17490cbb3cb85469d2daf342727529f7cdbc925c362c74bf4910471302ff687aeb6098cf997a4549e2c102ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec19fecc3536a8d4db49740272e0dbbf7b6834c562baa120ecdc9ca4f1a53923323fc1dd0a13bd5456cb5eb5891a438e996ea04bfb6be14b9d3f424143cb7d10c6342c96fb7d297a81aa72fced5e97d398c5a81fab7b36c15f717dadc5c50731c12915bf92892c01df25b052ddde5dc4b5ac6de8a2053172dd354a88cf0b9c72673d0dcaedc81f75e06627d442fe899f9d6c2453b834231e42879f0dfc6a2c1f0b1668ca19b24662de161732a8242200b04d20ea45e288b3f303caab8e7214119a1d6dd7ddf41ed88321679b2b8ef7e0aafbd2a50a4b39e3c28d267895e072eb2c02be92f5663f28f6090d1f2a9282d4807c6903766e4cb8e138850d3c46cd3a3a0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000102643df89159eeacd6bb1ea506b3228cd2ea36c6eaee7945c86e9b5c687490ec047f6df3d0d56b7b572150799513def863e7670ab5eaf96aa24551f105268df404dc32215ca55ac6bb0ae6d57d1c8bcbae65093980d2a94d140a1c83ecd19ba31f816d8bc8094fcb0573c87e58d40bd50e2ab4afd2a36a16982027c5eba9c57202b2b10094a64576a7d372db4eb83604cecc0128c7299098b296f027a128d67a39b0d2852d6e64282066f42184f5d4580ac88e4ce0e9d4fd7e1317ee61ada79f292f10048177d1732282b6451b1387ae32d3e8319f2d99874524220d32eb0b0028a36547dad2283e6042ada370046cc07d9c118c0d8bb263165b70bbe1e4461c0e42e1e2cb5e20434079d1bb9eb064ceab7c6f2c06a4d6341ea501f5a947ae661c71f4a0919e243b74e5c6e4eb021f0648041ca186a6c195d369b9f2b37dd75500e02a10c108cd4200470971770eaebaea0c12f985171de101b4fc76c0c962f22184297946a4b3d88c8a5102e513f94fea9359ea0f9ce5351825e46dacf0ee11268c7c7abaeeb889a13b82264ac62ffe8077c0c892634a614b3a1afd68fcb7d31f1f1fc2c8682ce1aada4fc86655f4a74f7a894befe363fea1820f425c4b5c0c150ca73918296585b7127f19250128afc9443699352f29f862329c93572273df1252a4c87031bf450dbc4df745e9888b0eda78e73fc970db7ffe5b9b0e00176516063ef4039d3dde5ae2ca004bda31e93261c9b4c585966699aeeb1da5bd91cc10d8168c365d31a187a4cc1ebce743828f75030bfc987e2943f26eff86509c4d336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a0c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba0305e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df63a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b1d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce22724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a33336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a0c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba0305e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df63a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b1d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce22724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a330a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac629bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c3a1fd91331ac8e97af8356a18902d5d6cb9303a89611fe8d9d6f55ec0f200be1120d8f2f9cabf36cf829e0210d653a2833c4df016bdce7f4bb8826eb6390d72016baf5e7af78967b999941f98581a9d2f912731f0fbf834efeb125d9bcf3732012540e141ce2a315e825d6a10645a6f5c73a3120ecfc19f4474424dd222169b5381534886392ddb64e77febf8bdf5c4998f8cc6075d0825191be8fc4cdd391172821af27180482573f3ecee0774ea94b46f631ff5dc52bd5e10128d777516f412ce3106d2a4a3626079a2edbee62aa99c3122521fdb7f49f32ce4008627d45dc2fa1a25a8bf6d439b9708221ea96b0fa996bc633864855bcb0f6ac53241ac67729bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c0a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac6120d8f2f9cabf36cf829e0210d653a2833c4df016bdce7f4bb8826eb6390d7203a1fd91331ac8e97af8356a18902d5d6cb9303a89611fe8d9d6f55ec0f200be1118c5ee80f099e8df8b52cb1f015b009941088d4f688bb58fb9bb569998b37d8147441836362e8118976426673d67273cb3cf157e2cc4d5bccd96b59e710cb00287c73f5fd950aa93f04237026d37d0948266965fbe3dc006391b57ed538f732384824ce748cf5a7d156a59e0d985d577dfd40238b9a57749245502337e3e0bf01f6cf45ffbdd7644013efdb0149f0d13d05d378ccecef68279ac2af2d55934b1c722d17982370e0f6daa91bf2096015c3df93f6e05393f28aee44939517961e00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001072c5b805a273c453eb6ac32ce90892bbde748ff4d2c9ccc80a9f438b77976762691588600d6cd9790d8ce492a02b92e45f5fcf1bd7c738551eb4dadb1ee211400eec28673637baa2ad837ee56b0eabc416ab0ce96d3bff2fdb57a9ff20d1dd00284dd9c592a15f98e67560ea7358d722ea18f4bcc5d891145bb69bcd68fd23739f3ee737bff0ba7233b544262d02c3942d4d9ec6459e3d7f81e13118fa1ec731b1f706b62e812a37b3309696a70c2794529ecefbea33c8b1b9a0a5b62f1873e1f995bdaf1da5b1c9da459fe0e9568a8b946f78a0ef76cd6df4e43e631ac75462f9a1d8dd21de953a15e5947a708f4a52246c07b22586e0fcebe7f4882cc036a305b225aa447010a399917100475e37f170b2ae8879183f1571ac2111a47d32a038fea98ea12d9434e2f29d0f89994403000952296db69c072e46933215b13522e0ac4338ee633dec7b678ba61ab735a54ee4c0ece327c7d56579df308e959c92a39a4af6433adac6e6119a8cefe9375ba808ce745e9306a0918c661d0f27767055115b3d3d604e221d944cc6370be0747639af5b33e9060b094afe5ed518109005a8689af80e0892a3c8d224dab669e66481622c5bb24e3a2fa496cd7f692d53cb38645b96e16b9a92e76600443478585a041ac8ced2c83ad365d73f8618571288e92fe825a5896e7b00171d66c2cf7a1cbac0ba98ab430c4badc5169161c21062b6fa37e95086467b2f244e1f82c15cb6f012de29bb0caf621312a6120f34e0d6bc7e5e38df29064e930b982c5e49aa0799d8b89438a87b9005df43b77b7b32d30c4b65ccaff430a6ae8691b1502ed1df45381b89288e2a79f83e093ee643012cf3b49a33500bcf5951796e4eafd130452457a50ba7038f18dad0c6c119bd121f3d78fcff6fc4f34168a0d87690ea12ef1d6947ef5c11a7a96009be3a7f4ed1e0c2870300903b0cbe975f27896f15ef354c2678a5738011e9730511c580b1429c335cf0fd2ed8c0470b243a50d4925a62bfeee6832d34d3293a1317247c89f163cca30f02d1273fb8f4dbc5af2b6da7c1a9a0da11a25ce66998fbb8db8376210d00d0b4f1ea3bc16337b5239426dbbd8082fb3ed17352f315a93303b66eb182f2ff2f4b0e15c43e9cc84adc6bd92444a3e69481c35c3ec67d29dbcc49914e92d30c4b65ccaff430a6ae8691b1502ed1df45381b89288e2a79f83e093ee643012cf3b49a33500bcf5951796e4eafd130452457a50ba7038f18dad0c6c119bd121f3d78fcff6fc4f34168a0d87690ea12ef1d6947ef5c11a7a96009be3a7f4ed1e0c2870300903b0cbe975f27896f15ef354c2678a5738011e9730511c580b1429c335cf0fd2ed8c0470b243a50d4925a62bfeee6832d34d3293a1317247c89f163cca30f02d1273fb8f4dbc5af2b6da7c1a9a0da11a25ce66998fbb8db8376210d00d0b4f1ea3bc16337b5239426dbbd8082fb3ed17352f315a93303b66eb182f2ff2f4b0e15c43e9cc84adc6bd92444a3e69481c35c3ec67d29dbcc49914e92e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd630724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f61a92f6a61fce846b25c83d8fbcb76aa39feca1dc39a5ea305ae3ae246a618d0506dddf9bcd0c2033836249932bf3ce970b3c1b1026f23e8e76c0903e838283320d47011dbe4842ddcb46cee3bc93051b079e966d0795ed8d9d2fa460859d414b2b16e365af7fc992613da0dec2a1839798b59c2aed4b96e971effaaac769d88205589d48f89167bb6c18866b1da1c7c27466fcf376113b606329f23c6159ff953152ba4d55ab2eb545784ef20617e46681897e3b59f43b5b177180c733204c12246b4f47d57192ad67d0bf45df12877608e52a8f4b2b46bdbd6ebbfa702c00f120eb2ef40d5b986647d1e67e7a20042a73559b7436910ee4b68cd54f94d7ee3130724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f62e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd606dddf9bcd0c2033836249932bf3ce970b3c1b1026f23e8e76c0903e838283321a92f6a61fce846b25c83d8fbcb76aa39feca1dc39a5ea305ae3ae246a618d052ae728f41d9fd3554292c1264e709d4258193b7462002fab2b6671237435e6dd3864e85f235fbbfe4f3b08e55fd21a9741d0ed960b8dc5fcf48f485455c0622116e40249f314f61afa9d96c70b5aed7b325e63499f0946d2cf8dc52925d7fc17260d0c31274aebd1f186ebb85b0fbb0d0b7f8e264edf0fe9e34e678117299def23149d9b4fa18ab2234a33313bf8ee993930e0b4e1352178596a605687d8f96410a108ab5f7d3c07cbfafb48d0b5c55281f6a8f288e5505c5e114badd4b9c6500000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000122227b9bdd780d1638fafcb673fed85998f8321b6f14df17ef8a1ea8862c9a722c4aa1b038fffd3dcb2ab5bc45ff15f8daf4e36b28fabcc31940173c236b64d83d37622ce6a0677168793528d24f7039c01a162c30ae4f015339c8b7ce2ba7810ed579df21b36f3148cab4920493f1991404260c10561e8116e9a2a9711dfc5f00eec41b726869e3e8c4b9747279bb0ebe79c48a037256f4423a072d152a34643d3831fbf85b8e19a50fc5c383be8d1030038453a475b544ed0df9825507c2073d4a0d94f910cf786ae6fad9d6950bd1108537475894dfc2f36d84e52e08267f02c56a1b180193ff9c3163d46f5936dd768fec284814bac72cd9b76828bcfd670c5eb24861dcf57691bbcda3446d231b38a25d2a50a5d5e6028892a69a44c64f2ec4caba591c56193107e18023851b87bc6c24eeb791404d8793a11a267021330f2cc891636b2b7c8727519b6cce51b8302f2d1d372e8f66891477788f371cfd3cad8a8810035d76491de2fa5e6b21ec4b03ad6edf3a8790232a147cb4e40bfb3643ee2e2f79fa8abd2947416a36c0b3871cbd4794c3e128a9a0cbeb8cc353290f67ae0f53dceae08eec8aad46e563f248d58ccced82cd37431b5e543884c0b623fd70aa40f6892522633908c633b6030bdca880016597f0c42fac5e14b3ab7531050434e392c51826beb5805f421acb329edfbeeabe4a374f08eccb47242648397ce144ef8d5be01bc9793ea2d504ac0fb0124b1eb298500eee4b3c792263df0a3cbfcbc735f28cb3b46cf711febffd55a862f8c1a227e042710aabcad685ad1fbd5292bb47a273d1930e25e7444ff7f0afb3f24a21d1339e0ce76ef5b340562042ad6d44b85d8c2e6cf1da18bbb0083196e509bf2b27e7fb20497e0a4cbfab1eb29cdda8662c4317df46bd84558fd76ee151c3600f23cae3e62350cc8041ac214d63225799d3bce820b9427baa7028b3654738a93dd550b5470d9c337fbe55197d105449fedd4f775c61b395abcf34e5d966d8cdb1c0bf41244eb9fe81485a2682efabb60122b088a39e4c6a5430cb3c6d32233b9b385c5808e233017eb7a73f7151a571fa528d54cde881ec5b0c085af8693ffb2bcaa0ac8858b4f88669c1008eae5a8e05ad72ab32177e13a4f3f7c74e2fbc0e212e7aeca4d838077996401fbd5292bb47a273d1930e25e7444ff7f0afb3f24a21d1339e0ce76ef5b340562042ad6d44b85d8c2e6cf1da18bbb0083196e509bf2b27e7fb20497e0a4cbfab1eb29cdda8662c4317df46bd84558fd76ee151c3600f23cae3e62350cc8041ac214d63225799d3bce820b9427baa7028b3654738a93dd550b5470d9c337fbe55197d105449fedd4f775c61b395abcf34e5d966d8cdb1c0bf41244eb9fe81485a2682efabb60122b088a39e4c6a5430cb3c6d32233b9b385c5808e233017eb7a73f7151a571fa528d54cde881ec5b0c085af8693ffb2bcaa0ac8858b4f88669c1008eae5a8e05ad72ab32177e13a4f3f7c74e2fbc0e212e7aeca4d8380779964000d80c97a5ca3f42024809990a5e4078724776135e9285751f43bb068f1f5ed12ffd27410ccdcfe329ef02841829f506167fb6b8093ab9645e6cf50c6372453904c8ea7e466c7b478140af5cdcc76c1e6a2d7253d50d4ebebc1b8e6228b7452f0a61e1a906fb75935288448600b05e632f51f9dccc726b835f60f277e4b716c93c948846199166c7700540ea78bb3dcbd43c6109d9cdecf3bc4f98f9ee929e530691ad88730b2a26077516458e989e9039eee9a77c9b4d17698bf5265741a36e12f72fb01ef2160a3a302ee37b8f18c35b1165916ee10001388141713e87e8a13fc325961a9778f31dee05adfec6f1eabaecccb7deb1a019cdb3280a6bc7193411ca2033d0425810f5c6874cf1815ec30639a0b7d0c664e46884ef40c0f149aa1ceaa9ace403133719e326fe68eb67bc9717abc6e66be2f2bace6fbc08d4b3bd2ffd27410ccdcfe329ef02841829f506167fb6b8093ab9645e6cf50c6372453900d80c97a5ca3f42024809990a5e4078724776135e9285751f43bb068f1f5ed10a61e1a906fb75935288448600b05e632f51f9dccc726b835f60f277e4b716c904c8ea7e466c7b478140af5cdcc76c1e6a2d7253d50d4ebebc1b8e6228b7452f0b80ee2375bd1f4cc9af27c6b7bc1ad0779f02d4a4c8398399442f64b749184720708fa268cc3b83d8cfcdc58a91d93839f96e6372b38ab7030755a4ca579151060666a57eedbbb34e79c6e2b670cdee0b7792576b293afc2b25621bd0efae4b32305f69a561267bf9b1ddeb0f1ef5f8089359c2da994effe0342a71f2ffdb743c5225c849f1b191b64c2df0d70224a22c2694e6d91ede4c1d157f1d2b04ad532948fc89df567ecc74d87772a983e79eb4e61705f3789f08919338e230502e35000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013d02c8e47937454338542a7985a7f882e194d05bda48b649ff954928c0e7329437a054a7a1dc77d30c96c48caab951f7d199df460f7f37fc41f37d40f36d87ce07226cdfe83eaafacddc29cb421c538b1e5675fe90e878cd57ce300234fd8b120d00e39bcaa8f96e0e5c7a3969d19f77179693164fa575e2a62367cf47c867063344c97607152462508457fcece0bea9aafa5fa4767526a21df35deeb872e07f21a4c28917a1ae74bb79cc0ee84f1aeae8972feaa237734fa2756213900b7cd208619c29d8eafd9e64a8b1cd657b7c24a7b8485e5490565cc1463e6ed9e39aa520b37b72b086873b030d902af0315847c5e084c4e26f3f547f43d9c090010a302d70db737048cb4e905d9cd6c54df1e28be5de4c4bb2d4c9cb407374bf5a89cb31ebffc9c6328c9c856e63e6bb633b8bf4be8b91da9e6f69d77941494bd2417b0dc5503dbe6e6f75b2825ddf5c1251a9ae1a844c9a0b6e61f3363c5e5fb1ed410dece4beed7fc705eda8e2c2c056b0f30bac229e808f66a56a8c118f1bb5a24e28995eed630e3684b389fe57f06799107300945a607105bafdc4353e7ed2cc9f1d123d502048aee6988bd396c0b48b955cf1b5ba21d5a8a4eef7f5014675474019a3b2b5e0f979ab84340c49072c07f32f170ecd868e1526bb13ce1963bab96f0822409533ac128c4edf102e1c4615f1fb2abc9f6a62094a6644bccfae26779e19361ae6ab6ac67cb352a6d9fdaa11de3ea49185febc8605cad7912c24eb134429016f24dfd002a796370e23b64ec4b1e29782586a78d1232572728338c55a04000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae0591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f62000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae0591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f622dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd60077e5fb96e4c541295b118291d98c7c81fb25e82959ce50f0f6e2140dc9b6cf24814e4fc4db6a41252ae13b604cfd91c0e9402633f45edd20bf70694bb1ebd411a5d0d13ef2f7fc6bd8b0affa92f4cbba751a6012855cfd63068e53b1e7ea321ec7b10604b385cb2749eb87d33d0e9beb216c2e4fc1d6d54f8797f55c1538f83267f9262df888432d1ecc40f27a38cf9db65ae4da4bafc18877223a13a945531ed9c17cdb69ace7a3d401aaa2df7e5a9b14849af98f7611c4bdd3533d1ad60a3e70a184511f6011b0be0e0136a08a5a034d05b4b30d2967b136e746b880657c3ce554ec5c7e4eeea68fddfd0fd855dc8e1253cf4bfc7aa51318ff0adcfd61dd2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd62dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a24814e4fc4db6a41252ae13b604cfd91c0e9402633f45edd20bf70694bb1ebd40077e5fb96e4c541295b118291d98c7c81fb25e82959ce50f0f6e2140dc9b6cf15c5b97e9c8eecce1664fc3d76610ff2cfcdfbf119d0e88e8b8ba21b10fce3f437c73866f3de54d1573a852ac7d8973b09376e92d5746f8b39e7e8b39428a5b718ef4abe7e5304886052e2051ad306821f537f7bd04fb30512cae350ba6cc6dc0abf282cc046c682e4b9d780d031027b9841844676d3eae5eb5d39245258d5c9306daa5ef60afc60ecf3f28aa368f5ceeb1e87a3dd0b629fd57021d85a9211cb3143ae19d0765f8251ec9caa175eff551accda880f5e36360e24433000b6e90700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001248f4e3367bfe80f66b6d262599a4d12230166ac4d7eae65352e86c20ac48f4b0e67867b245d9150d09cdaffac183b9ef0c7f42451f3e9e217eb6ec72af21c031b8235b1a37a457a455cfc398d7998ae5ca0009088603447f6f18e317194d6902a6f5f497b5d6fe8faf81383a7419ee815a531da38edca7d2ff417ddad78934d36b9c145d8222e25c8e5461b05f5bbd20c66fddf46913a66e18fdaa62d109d052e7cb1465bbda547125bf468c1e912cf798434f03c2fddd4046a82603923115716161ca582134fa61030d568e3c49e3c8968c8cf6acd8172391717817f5f82cb09ead7496b1043ece7441745aa35ee44d075a405d577d223df2535911233948917c583a34f02107a1d1bcf887e1b7d2a1a220c53f15a44d700121fb578688cb42bec045c26efacf09675a4f279d1876192d8a6ecad3fe109f8db1bc5c4039e993d24ecc00c9d4934b84bc448d3f535c1194e6c5ea08f4c1abb8220c95687fa0e16e0415e4ce7701c4ffa85a0569e4eb7184f141ab43aafea63aa03f80b8e44be28fc2a883695da6c910927bc31062e30305023dea17a870da94cbd93bc816c6a1caf71b54cc10afebb0caa328015f6759fa22635e0cc2752436f6cac08c6a77523f0ee907659754ac17a2c1cc1c1e2c476035e71c9c841cbf7c5f0918b66426324e42939c12b45fc12b364cae2422d51ce52df86b26759c33df2cb318d0d34763f92fdbc5a0001e6241ca7088c395c34ba9938eb196dfcc50135060e6b859ddb2d18359828e53c67b967d69ad2a7270dec9daae567d8e9ca879251fcab7268af0c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba03012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b05e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df622724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a331d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce0c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba03012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b05e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df622724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a331d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce29bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c0a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac6120d8f2f9cabf36cf829e0210d653a2833c4df016bdce7f4bb8826eb6390d7203a1fd91331ac8e97af8356a18902d5d6cb9303a89611fe8d9d6f55ec0f200be112540e141ce2a315e825d6a10645a6f5c73a3120ecfc19f4474424dd222169b516baf5e7af78967b999941f98581a9d2f912731f0fbf834efeb125d9bcf373202821af27180482573f3ecee0774ea94b46f631ff5dc52bd5e10128d777516f41381534886392ddb64e77febf8bdf5c4998f8cc6075d0825191be8fc4cdd391172fa1a25a8bf6d439b9708221ea96b0fa996bc633864855bcb0f6ac53241ac6772ce3106d2a4a3626079a2edbee62aa99c3122521fdb7f49f32ce4008627d45dc0a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac629bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c3a1fd91331ac8e97af8356a18902d5d6cb9303a89611fe8d9d6f55ec0f200be1120d8f2f9cabf36cf829e0210d653a2833c4df016bdce7f4bb8826eb6390d720147441836362e8118976426673d67273cb3cf157e2cc4d5bccd96b59e710cb00118c5ee80f099e8df8b52cb1f015b009941088d4f688bb58fb9bb569998b37d8384824ce748cf5a7d156a59e0d985d577dfd40238b9a57749245502337e3e0bf287c73f5fd950aa93f04237026d37d0948266965fbe3dc006391b57ed538f7321c722d17982370e0f6daa91bf2096015c3df93f6e05393f28aee44939517961e01f6cf45ffbdd7644013efdb0149f0d13d05d378ccecef68279ac2af2d55934b000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012691588600d6cd9790d8ce492a02b92e45f5fcf1bd7c738551eb4dadb1ee2114072c5b805a273c453eb6ac32ce90892bbde748ff4d2c9ccc80a9f438b77976760284dd9c592a15f98e67560ea7358d722ea18f4bcc5d891145bb69bcd68fd23700eec28673637baa2ad837ee56b0eabc416ab0ce96d3bff2fdb57a9ff20d1dd01b1f706b62e812a37b3309696a70c2794529ecefbea33c8b1b9a0a5b62f1873e39f3ee737bff0ba7233b544262d02c3942d4d9ec6459e3d7f81e13118fa1ec732f9a1d8dd21de953a15e5947a708f4a52246c07b22586e0fcebe7f4882cc036a1f995bdaf1da5b1c9da459fe0e9568a8b946f78a0ef76cd6df4e43e631ac7546038fea98ea12d9434e2f29d0f89994403000952296db69c072e46933215b1352305b225aa447010a399917100475e37f170b2ae8879183f1571ac2111a47d32a2a39a4af6433adac6e6119a8cefe9375ba808ce745e9306a0918c661d0f277672e0ac4338ee633dec7b678ba61ab735a54ee4c0ece327c7d56579df308e959c9005a8689af80e0892a3c8d224dab669e66481622c5bb24e3a2fa496cd7f692d5055115b3d3d604e221d944cc6370be0747639af5b33e9060b094afe5ed518109288e92fe825a5896e7b00171d66c2cf7a1cbac0ba98ab430c4badc5169161c213cb38645b96e16b9a92e76600443478585a041ac8ced2c83ad365d73f86185710d6bc7e5e38df29064e930b982c5e49aa0799d8b89438a87b9005df43b77b7b3062b6fa37e95086467b2f244e1f82c15cb6f012de29bb0caf621312a6120f34e34016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe00bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f861250210407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c3bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a51423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d33524b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200634016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe00bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f861250210407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c3bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a51423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d33524b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200620e6a6375b0b5eaeeb6fc87a8cbfa390fbf15474932bbe08a8d6ecbb879cb51f274d3dc3a846fc8924f1055fbf4f5ad5848b4b6ec07c76e6079ee428f532d6323f6f87ec151e92d4feb622c213b4f0192e6730ed845ce8696e4bea84732e1d4d385c9418e78f11f2f0e90f63a03c1180b7effa2343e1cdfaacc5d75e1002576605d7b01fc5928349864d3bbf35dc4ce4bb3f2133d7bd7e79f17d62f36cfa701a26cf1d52079afdcd1ce080241e148c73601ff86a7b42ab9580e99e5cfacbc6fd11e36c37e953c77eed67e9a7f536741ff0e0ae19f19a231119b79c38c3313c942008bf70c75a3a64c4723b888adafce692f77f601a006122816a6bf55160bfa53acb20f7f96884d38b60d863f37e7a46f9768491f166e41f4f1eea9d44082f9d1246ac812774e53f2e2998e14f8bbf7685d50cd9324383a9b5506da93e1dc1b4274d3dc3a846fc8924f1055fbf4f5ad5848b4b6ec07c76e6079ee428f532d63220e6a6375b0b5eaeeb6fc87a8cbfa390fbf15474932bbe08a8d6ecbb879cb51f385c9418e78f11f2f0e90f63a03c1180b7effa2343e1cdfaacc5d75e100257663f6f87ec151e92d4feb622c213b4f0192e6730ed845ce8696e4bea84732e1d4d2376a0e146db80f9232878a8653f4c05a8d9537aff2e62c133d1d5a10bf4674300dd7eba496b4a22ddaf036016b0a2506c0ebdee7c68a338924d25d59ee664181c080b92f513d781f6a43f0e3f911382f71c24d09ff2ec801afccdf9099f0a542ee4bd85dd221ca7d634f2a0597787fae54214fd8b34dfbcd54e261f00a41f00350b4b970e4331edb05b328eb7dc52828f13293845bacae491cf893d5d468e5b38de073465b4d9cbbdd00019109c8549702622771ea08e8ffd24ac876a6088860000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000133be3c557bdc01ccc10c798358e0cee3eb43c346de7f42657ff107b45e4bb65b1a3607f1b09bf69a213b8f966c74db8d7275a4ecf135d64fd56ce4296eee050d3ee087709e94a89522c2a8b258260c10ad288da81e454aedcf4cb419ab71de452cead8a7e42c4286a6b22d6bf54f28033e556ee3f49b6e1e36c6ae52ed2f9a283db4a9d8d6ee73871f340d6788dd10fb9a9874388be59eb482fb34e8ab373f8e214ad2cb6d28b3d126d71b63e0251ccc2a6a5fb4f961ef8199535b76ab08e99f2955b675a9be4fc5c46f106b616151bd2cf64e34fa910bea29f61991214448ec028efef65d37994fd79d1e8c1320b1820e28b7c707f0a263c127a907a5c6506f3ff9dc7f1688cb46357569836569c64037f7f9aa635a1e9a3c53b2242fef277e3c11963271eef0de132d1b2438183b4ced38fd68d999de6747a64783ff6ae3221c58fef18f2dfcb2404e58215972a96eae84b219edb9c6cd4f0ff57e91d938fd2fbe1c792bf180d2fb149f8a036b70debb3248d390cf091386c615b3a674d4aa3e531cf9581db1f23668490a70b6fe7c983d493b48fdc5fe127623a1305f1c5607587f442b39337915ad88e44065262937b500d93948e861da46069e94e8f78916dbd01504330ee8328e63f94997524dda4fa79f3d9a3b05e64368df5fcb46ad19e008d1fecf3ff3718fdb27cdd733074b7bf962400f331f3d89f0627ec4d14d274c6c95f030a55532a5dcca19d77da040dcf1a6cd1089c3b6e751c98dbd7ee427aee29ca74849954a142956ab11e4d7528f67c0181be1c3f695e66e9d067f9b1043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a1043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa126c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b3bede82a1ef51d40115086dd2213afb9fe7882b2741bc04a7341075fab56bcb4343eb86b56bb3939dafa46ac624a5b45ea704c4b192f810bfa86c6325ba37a5411f31c380ff535de8c3cc50b225ef2fb6f74153ba4138cd81b848638fac22bd607a5352d3ff4c5af156fed5e55643942b0c32539c53f8d6cc7a48b6635d188190f1925d317b1131f80adba414fff7c1eae07c6574506cc034faeb217ca92d76321dbb95697d91b43b21b5ac71e64c582d902f4b6fe5dd9b30f47ea4c84d6c643367157fe70f52f851fed1dd05a3a4edf961b25e32d10aadec036377d3f206b47325f31e9a5ea5e301aa79b28971ee713d984919abbdb476b771d182c8d4fc72826c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa1343eb86b56bb3939dafa46ac624a5b45ea704c4b192f810bfa86c6325ba37a543bede82a1ef51d40115086dd2213afb9fe7882b2741bc04a7341075fab56bcb43538a1c63f60600e793ff6c90dae89ea3ab04e2f1357ccab5f3cc2c890c10a912dee0e171182e6076cc31e9987dc98ffeff03154cc147fc8e475a0d9047635933bad79ba6d247f4fe4f6588f49387aee9f51302808f1d95ce1b6502836fde4c73df97463687513929904461eb445c15eb2ed5b51c157b05943e00fb30c74bde237643d1660c690962952d8058b291b26bc2ed20a98272ab18900295ee44913c220db018f05da8169beb6c59c0f0747e12ea3f9d415201f8cb59d542e61113b8a00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001038900937b55369774acf6534fa3d9a2f862e38fd3162b1a797b7d433479f5e206505432eaf39bc3502d8933d2d9b10b4b1cd71a7061b2cccdea39d079eeaf253a5b5111db1ee26a1707b41775c1c57bd83f6f018723c7be21916174c2f775332edde91a5f8b8b2e1d9e90d7739a65fcbf5bfc2a84e2f2b3672bb42689e2fc5b3c1ecbb364c7829b21cdfb04e59fec413a1d2d66d7d0420878f401a353b31bfb19fe4c71565d1102053eb9f9a9b1b13f56df7b724a3cfc9f73c136050c3e149722e2e19d02d2b28c1e9cc80d179aa7a56b45bef30580921150e6bbfae24d3ee300ae83026de4f92ce5bbc9f3dbf83693d07b886888a928f6e22331bd4812940632e288b3b274a88988e16c650123bbafb86dda584ecb69195b5bbf95178b65ff014f79a24d097c6684d58c307c1033292c7ea2471bae6dc55fd2ebbae1ba61dc2e15b7a6fb85ee6c0418b39bb600fa8533121740e355e4c2447154dd9bc8f5430d1e8962ea1d3320e3ad37aea77607e690677306cd0cb132e91935b27ab3d73e1dc8413c9d667842938d896fecd6f285e5b0b4bd39a47dc3c4c7cfe1e16934dd27e35b00e5f06d28b888487ec445321fea41955748a2309c27f45a5de3dedf021dc71d681d73837aa0016f3eef74d0864387a0996b12bc48370faf93e4495b68160e7ff2e73f44a2a4c69ce305d456e7d0f0b7c5f5a583e0939555b936365d2b1e20d20c2549dbd9a31238aa847f88a185f5ffcac3192619fdb1cfaccb39e821396265359bc7c9cd8fc9f8a75db1bb5a7a738669a2d08746d90a77e059f77f03000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000224698fc094cf91b992d30ed00000000000000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000224698fc094cf91b992d30ecfffffffc000000000000000000000000000000000000000000000000000000000000001940000000000000000000000000000000224698fc094cf91b992d30ecffffffe8000000000000000000000000000000000000000000000000000000000000007d40000000000000000000000000000000224698fc094cf91b992d30ecffffff84000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000224698fc094cf91b992d30ed00000000000000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000224698fc094cf91b992d30ecfffffffc000000000000000000000000000000000000000000000000000000000000001940000000000000000000000000000000224698fc094cf91b992d30ecffffffe8000000000000000000000000000000000000000000000000000000000000007d40000000000000000000000000000000224698fc094cf91b992d30ecffffff840000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017b2dac71546dc2493713ac1ebd0fc3a180c7c29eaae5b0e85f3959b824bca32000000000000000000000000000000000000000000000000000000000000000030d5089697900f486566b25f937f0c13c19035483fae49286eebf770f651fd0d000000000000000000000000000000000000000000000000000000000000000034ce144c6c81c3a065162768a4dc8aa13b043653f4c1e5bd888034758056cb76000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011f6c5bf0052d0873a5ee9794164e1b09565f9848122f6b4dd6094219ecf3e6a5000000000000000000000000000000000000000000000000000000000000000037bc0fccaab13923f84568390f6aefa9196a6fe7b297f541e70051016fe153780000000000000000000000000000000000000000000000000000000000000000339d0d4d0e435170fa0d03cd8276be2a77f98662e0d14983f9f93f5df8d163300000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001059efa75a99d314ac7e112966c68bef66639555674fb743cda201d0006fddf94262d56b50f01332bf2091ff8ca8974beeeff26a7de49cd6845face6de868e49a02491972a0a46d36e51fef75356ccf64fa2455296f3e6c7ad2ebc9a569a6d0b90ee2d718dba3d2c0e9fb7496d83c29ca835758f1a68a7e328107eeefc2a638641bbbc4356548b3c004b57613e391ea038bbbd00c9802dbd5405a0f74475967613c3eb696d239418abd665e2024739c1360744c464563db9fd506fee08dd698ab026540da72d1d2fa2f1adabd99277622f2e1514eebacce0a7043282bfc0e37441461a66da9fe325f8f731378f355c8b87d9af15c4f0b1518822d426dfe4f107d29c02968955c98b4c06eef3aa08ea5cabe2452d6157b60515962be6da4a884261ef3c52013dec7dfa0a29f051baa17e1794e684a4900f2464b296f4e50b2c75127a429d3ba8483c97cb451d7ae587a4eda0ff3ace4c6198856baddfa9f90dad61e077269c8d261a1cf61801702c3aa56f5e256679d8094d796014c4525b739090000000000000000000000000000000000000000000000000000000000000000109454259592027c6cf5644a5d02ea129d9399ce489991c269f698a79313d940109454259592027c6cf5644a5d02ea129d9399ce489991c269f698a79313d9400000000000000000000000000000000000000000000000000000000000000000166befb5171f47394b6710b5cbf1e0a257d568300d169b1ede64dfad66ceb1702994104ae8e0b8c6b498ef4a340e1f5dca7130cbfc365dfcbac8513f99314e91301bae89739c641e7903538cfbb9632b94e46ff438240e7ebecb2d760209772f0fe451768c639be186fcac7304469cd48d622907d128ea9cda620376fdf688d2308a68af420df4985d10a1c0ea9eefd981a264d0fccd5d26ee7050870a2f53e80f759750bdf20b67a2ef5e3f15611026a0a4342b0c7f9bf4aabce065f5d0ac1932b40b6c4a45c6f9d15328c4951aaf3f21582d20d41be66fdca9ffdc32eca3850d4bf493b5ba39062eacd73b6ae550c100ee6bdb353112abbc833110cd135c7c166befb5171f47394b6710b5cbf1e0a257d568300d169b1ede64dfad66ceb1702994104ae8e0b8c6b498ef4a340e1f5dca7130cbfc365dfcbac8513f99314e91301bae89739c641e7903538cfbb9632b94e46ff438240e7ebecb2d760209772f0fe451768c639be186fcac7304469cd48d622907d128ea9cda620376fdf688d2308a68af420df4985d10a1c0ea9eefd981a264d0fccd5d26ee7050870a2f53e80f759750bdf20b67a2ef5e3f15611026a0a4342b0c7f9bf4aabce065f5d0ac1932b40b6c4a45c6f9d15328c4951aaf3f21582d20d41be66fdca9ffdc32eca3850d4bf493b5ba39062eacd73b6ae550c100ee6bdb353112abbc833110cd135c7c0ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b22e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d570944c8b525cef9aeb6196bfeccb204f8c0abd5e804a7bd874b22c345a083974903dae1cefa8b3e8651b5641fb8f11cb8a8245710ca4daeeb318975e771a9c62700bc77aca9e7d8c088a46bb0d9352ccafb655af885121e63593dfac07b085ddf2cfa0c976ae6ff0848edde9901d28c0cd51308db7b21e9a8dfe07d759bd8457a155688d981b77c5547844ba72261d22ec5abcdd07d725ce2033964d5927e021f1cdd669fc5d79a448ffcd0efe3977a2eb750b395fba24cce8643b5f22f878eec10b56b9db92952b7facf8cc9fa4b002ccca752fc869e8b81623d6e13f80d981b3f129d2ae85a2df8d274826217c3812ab5def954d619e1d6fd251490400a998a22e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d570ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b03dae1cefa8b3e8651b5641fb8f11cb8a8245710ca4daeeb318975e771a9c6270944c8b525cef9aeb6196bfeccb204f8c0abd5e804a7bd874b22c345a0839749389355a77324a20e98a97cf4334d6cc63ef1125f05f2a92027e77632ac752e0429c0e79552f4bd7f5c27e602447a6eb089434e9863cc800a19d71828ceb06a4308e4eaf8d45865d08c3e5a339a76afcd3eee7b847a39282181123160cf3940c63613f858722a9322bf067b46254399fa1a2641c93ad924642fa03b4414f618413c8af2f15dc61b1a8a5cf3558c2f94279b9c82c34d9aea4efdf7fae0c5156ff02d0eeb76db4e5e4b69a018064e9e2fd0f8e1202b3adb5b1e3d1316f63603eb21000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012575936d191ba8bf36e9dd481b8fa2598f52cb457eb1133a841bde2965afb79813e724a5a11a4708151d907146931621a309e4dcd972b35a2ed46dcda145c65f2ec4358cffe8a19ecef5b8839c65d8459e54980e9dc99561d4183c5eae76f9041be9564bebf2fe310e746c1c51a90505734e14ce9053136249a1506d518209a02ef35421c2912cf3e071a5343e46f614c7b889cc93508c7b53acbed6d48e5f79127d9318c88ccd8da528bb6dab16ae73fba914293def1d512aad1284eab37f8b315dbe7e63d4b47ed5b6ed5fa6d110b85ce099bf2ce745984bb59394bfd17c2424fc4b0a9a7b9c1eb15f758dc93fe5e6f563fd277f9f94af7e48870f8b61575932ab80cfe0349877ff8a37704225c1451bcb2b2456e7e4406081731ce7ecfa530c24d48abb9adef5f311edfb09cf041140be417a21ba9d9cf3be36c8f3d0ceac1f970aedc5f86cd926938ba3af3c265e5010b9ac70a862c234ac1f5970f8f3d329d14fead2daa35a993adc1970e9bf748abb0d75fcbceafec473450cdfed324f182cdf870a13d21b705480f690b07805141109de326eb89c7f560b939c4bb7ab2d7ebcb67943134fdbc150f8206baca0bbe140364fd7f5c36d661eac28fc5c341d6508de366806ad1bbcdabcf2c3cd44fc2ac7a2f1e12ee5ea1584d1a7ba5e73032222cf45f7cbac5f585fead897490d48b102636ba8c1a78f7313f86a368dc327cfb9e9289768449a9e9070f6a32a8f0abbae7f41a2beaf3e0d2c3635cc658d2b6e5fcf2a824bbd44bf5d0562d1e4ff943c3514ed83f539c40acbe3492005f81961932c86c70d27431b51514f0a4e8ee6d185fb5db2d86e2d066bab217aefa8269e6cd37938f2d8bce4aeaeb0f5b1713b751300ab9a20ad6c26c541de8510593ee7dfdea1e341c44f8896968b3388ca5fd104eccb31410b47f2e96aa766ae47011820215e1cbe3bb077696974cc7735c275940f3e1bb810513a4782589951ba3a875f59297048d58daaf0f0b801abf355fab4afd2c260ca0309cb614501675f0578a0a6d68fb72a72550f0f47fe540ccc4be44c368a98519623658bbafe98a224a4dcbdcf316c2bc456b4b398085bc024cb237ef897ff83aa7c3532590704d71b5b234230ce93d43ba94b4c67f7a43ffd7b757d10b4f997eeb0fbbaa6f8fb2a1961932c86c70d27431b51514f0a4e8ee6d185fb5db2d86e2d066bab217aefa8269e6cd37938f2d8bce4aeaeb0f5b1713b751300ab9a20ad6c26c541de8510593ee7dfdea1e341c44f8896968b3388ca5fd104eccb31410b47f2e96aa766ae47011820215e1cbe3bb077696974cc7735c275940f3e1bb810513a4782589951ba3a875f59297048d58daaf0f0b801abf355fab4afd2c260ca0309cb614501675f0578a0a6d68fb72a72550f0f47fe540ccc4be44c368a98519623658bbafe98a224a4dcbdcf316c2bc456b4b398085bc024cb237ef897ff83aa7c3532590704d71b5b234230ce93d43ba94b4c67f7a43ffd7b757d10b4f997eeb0fbbaa6f8fb2a1ec72c0c20573b5141e5d40e17d7293f3bb25cd5f92b26d68aa789660ac49eba06b8d7221f316ccd211c30eca2885f3786348b037a8ee4b5e05159fa94c46c3c3d59014f69be98d543ecc610bbc474da4a8b39c44545a65c5ee2e50b2743e32d1d26fb8256b8bf0c591134f489dc02af381b105a599a404e687e996e393311e00accbe583b545fb38b27e761a7954d532e03c9bce1ae519dda251eecbd253c22291a7d9d51e1873f509830d40d37ca4fdd4b58d7404f92373e7458343a41febd20b53e70ef69b0d459c6fde443784ffee9edf0284899dc3ba99de7928f2bd0ce0164e290842bb8f13598c1ebff13e016e2ced9b45f33e3e7e8ac453282cf33dc0a381a4ae5917494d115c8d2e6d64899a6eed9e19a70676c9f93661f5ca474001e0616e81070f4b1445258ffcb484ce0d2cc65a9955cb49856c1b9a1d7f08c7306b8d7221f316ccd211c30eca2885f3786348b037a8ee4b5e05159fa94c46c3c1ec72c0c20573b5141e5d40e17d7293f3bb25cd5f92b26d68aa789660ac49eba1d26fb8256b8bf0c591134f489dc02af381b105a599a404e687e996e393311e03d59014f69be98d543ecc610bbc474da4a8b39c44545a65c5ee2e50b2743e32d0668809afb958aa7a20547d2362394491c5d17c8f9a513b534a14957932f915f24b83f17d0daa8f54d81c5f4d0134bee8e195a18c2447a982a1bae3a2eadad5325c28cc99671e24b386981c8f466943c3bd301dce25feeb670f18c8841e1889719c154c2b53ed63fcb6a05d6837d2f35734736ab3aa44d58917b9d8951209e702fd41b6af8965c8645df53226f2325e30988df966d968bc3b2b630bb97bee3151eceb8c400290a1853d775cc4750464c85de67a6eeb400f5071c6a7d88223b12000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010fc9c891dbe4f45aead3ad51cff16ee961d53c08b877a756338740ffacf05e0736f97c0068a31a98a2a88c1bba8704f9049290d832681b78d76203216dc42d661f30bae981f21acbf9d25643f67ae2699cc5d8e9f96c12becbbf90fe42a22126398ff36cb5b0754121bf50d4a9462fc2ff19a6d26c39771f736da5275fb4deae25a0d5aed4ef7b756972bf1521691186eff51e70e92c3db08fe6545a24ee887b3d1f7a387f040172e40f96015700c7c311d4a28a4ffb8831719f46a218dbcc9c11d5857d2ca2e8bb4fbeabe3a4313e3e680875822c634991b5ee9c2eba3e820a0b7069ac37b67ed706f2dcc026034248faf0e3a132e462a99d0e3aa2b3adf9211444faa949f38516104d7a7a38b1bccb833bc6fb3bbf267fa08d63a6e3b704601c22fe03f98955841f072b07c43853b81a3b5df35506e04a1315234ef1cec4d225689d49f43578818d565b5cb9e1a39ec9ffeeedb7a0048ba4fbb94b5297867e35a2b2f1791a6ab631193b7b1fdf54c131f72090eaf5ce3f27a0945977fca5c52fcd130aed6809a34e3125d42ec8e240e6919302f89d9ef1ee79872efa72ca1615de893295eedbc7fde4ac1a82534264e960b71189a90f6dfe42a310cad549c92ea729bdee80b6323e4fca1750d7888883b2c3538839218662b9663cf9a9799a212f938efde73b3343bc728ffb9a067752b157426300ec17b6bb8c9513b692cd23bbe4f95cca26aca10a469af325c1066413c65d5113753f7135d9674a3090310582d1237429bd25eab99fda90507ae3c5c8dab2080af461d7350511e5d2a8982668f72cd19bb61bafadc0b19db3eb2763baec2ffdc90835dbcf92ed0874b005199708d32e6449e450523f4e624c14d8be8baccc0b83f0e5bd5d9dfff78b4ffc000cd3e0180a8e8a6e64c378148397c48bd2d1fbd9063dba7f864bda2a4770163ff32c1fe7f57175919b3c87eb7c683b9673c7003046bb6119a6e512d5b88feb004023607834c8b427f7d1586691f6d6bb1e19eb3d1f34a47d9f7b42d365306e3fbfdc9f87cb374bd8082ea7996e092967287f10cc2dc4771b8db5aa2c9acf930140b0e25907eb84c7d716ba00d9d231a7968198319c0736741d684e20f9f2263ebf4f1da6f8147b3828e945ff262dce7ab01763d7b0f1e5250fc89edf060ddb2668f72cd19bb61bafadc0b19db3eb2763baec2ffdc90835dbcf92ed0874b005199708d32e6449e450523f4e624c14d8be8baccc0b83f0e5bd5d9dfff78b4ffc000cd3e0180a8e8a6e64c378148397c48bd2d1fbd9063dba7f864bda2a4770163ff32c1fe7f57175919b3c87eb7c683b9673c7003046bb6119a6e512d5b88feb004023607834c8b427f7d1586691f6d6bb1e19eb3d1f34a47d9f7b42d365306e3fbfdc9f87cb374bd8082ea7996e092967287f10cc2dc4771b8db5aa2c9acf930140b0e25907eb84c7d716ba00d9d231a7968198319c0736741d684e20f9f2263ebf4f1da6f8147b3828e945ff262dce7ab01763d7b0f1e5250fc89edf060ddb1b9d5a2a50c6d8a61acdf312b101a31352f3356636139aeb9593bce4d5ce2092004c37cf170d22355a2c252313a00e318136f39a3ea0096dd1ef1c2bb8c26fb50863a36e24df6d452894992fef8f1ada5cd3f4fd71b94ec9be736558cd08b9251bb2ca98734c97df62714e9a4bcf33e0f1487afe22e005f87336f283a466b69626de51a9c0432e9233d5ff0fa6e978d74b8ceb505468ff47033c4158ba81122917962546033d745af260236f1a774b09990764d0a4fb480ee1cbb633aa2b21903a8d76eae43c4286f65024d603d163417b3276691236fe2a24e81b45a9fc881720e7dfe8ca6ea1a9068afa49b96617ab01a4767f9e599ee02e1b58b37d0544fa15507b2c58da3393af15ddfc2caa057e02f2d2665faa3857b6a72f998b26c97413f3da867c025697630dbdc9d2e68df1265cbd1e156dc23cd676c654b5ab7b62004c37cf170d22355a2c252313a00e318136f39a3ea0096dd1ef1c2bb8c26fb51b9d5a2a50c6d8a61acdf312b101a31352f3356636139aeb9593bce4d5ce20921bb2ca98734c97df62714e9a4bcf33e0f1487afe22e005f87336f283a466b6960863a36e24df6d452894992fef8f1ada5cd3f4fd71b94ec9be736558cd08b925355c3888647814e076c45b1c7bca960e87dfb29bd0dc193d3dac7ea9c82a9cec39d951dc9a17fc40c2fb6eccef63f80e7ca3737b5d3802efe8b4293cea8aca1c384df99b74ee45c6251e75b0d7e2239dfcdcc6fdd9d8b2ab30fc1dd6cd78e13913f3e8cd05c9d12a85bd95dd54082ecd1fdf946fc3dc1699747b8aab8569203f1c905ba60c5b4c94761639faa7b068b1356290f40a6647ffc15e81f55e4d50e70f7972ae5f7697a0be244bf1c91014111b8313f639a792e9f193fdd3210397ae0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000104ab24b463ea905f2fa42afd64819cdee45f8b322ecb017fcce74b902f20cc2a164a3044e618a17e040be73eefcc1064ef01434e7d2b4f62ee5c84bbc5a3fa9a2b1ed1e48653a23b853ad37d1e6368afd030629967e3aa168bdf12a0f8985e8924efbf2f33d90812a0b6434ff4d12c28f248806fcff4f2be0920168c7163cfbf3d66957211153dff18b114af5af96152dedf4e66ba820d44dcc435178fe45f183283a93519926e0e1994a53fc3bb9882d3fe6549ae79f7ddf5b8017126509c8a055f49805e7909b91f6118befcee32ab4a028a9a84487ff780e3afc54c89482e20e974fbff04f27d2c46b1f66470ca29202f9f7639f23d1aead4b90035cf656b06ea750221bd4035bee2f82d37db18bc757f963f60e703749f2a05a45dc824962666b0f14f11d1406d0ec0cf0742a96f8c872abe2f8ab58b09f1bb40fe33513c2ad1d9d9e2d2fb99e85727c32578a163c5be629bbd46109faf4e00a97039801426e2d4c44ca155fbdd3d9b68f368ae2a41dbb7765520f436958a39be6fc9f3ee042d2bcb3ca88d72290cc0343d124f64922d103dbe2b3d9791862ba63015b38c017e707246ae57f9230911ba7409d5411b7ea0dabace77acc208cdac953260521c2221e19bf446cf507ff89ad63144825423cfb8aeb0cae0c436c2dc87ef5b133767ca69085437372a5496b595dfb1cb02a395b50f69ec646c444638b4c4d8201c5b8e6e773b4ff66280858872d8c7a001a53502623138bd39b6d359bd192a60134c249b402315301d037f5b5b2e10a31751d859895699631925ecc575a823c11a0c5110f2938a65d9acb749701ff358e6230b2fb183e128dd9a1498049990cb25f3aeef0d6c759a265348b68fe00ca73c238dcc57c917f2bb931c54fb666f36023d9554bce1b3fd405f946f309fc0bc3a2205f664f9739521a8051e16ffd3f53dc26aab431e4c02bfa06b90cf603f43e8249305a453858677852bcee9002c0c0b33eaa7b06883f241dde62bf31ec3ad22aa1dcff8df41e9a848199672ff23c934cc15584f977c0dbe2219d40ce13c52ff9c7b2c106db731f0e517568d00dc3838039546720a93bb49557edbbf99d261ad52950fdc5c499049687ff03efbb2ed07fc6ab98df56c44b6aa812440662d9e74f403ec2cf0af8b4fc4b0fcc1044d141a0c5110f2938a65d9acb749701ff358e6230b2fb183e128dd9a1498049990cb25f3aeef0d6c759a265348b68fe00ca73c238dcc57c917f2bb931c54fb666f36023d9554bce1b3fd405f946f309fc0bc3a2205f664f9739521a8051e16ffd3f53dc26aab431e4c02bfa06b90cf603f43e8249305a453858677852bcee9002c0c0b33eaa7b06883f241dde62bf31ec3ad22aa1dcff8df41e9a848199672ff23c934cc15584f977c0dbe2219d40ce13c52ff9c7b2c106db731f0e517568d00dc3838039546720a93bb49557edbbf99d261ad52950fdc5c499049687ff03efbb2ed07fc6ab98df56c44b6aa812440662d9e74f403ec2cf0af8b4fc4b0fcc1044d143756d5b8b269cb43b4e1645cd9b858f5a91fbb368bec1f0b8c14c58ce7233b7207b0d5bcc9ec3b3519e1c387b96fd2b5b394f2a19894a21b9af910b00e9f70833526d0060d64cb861f697b05c8a62b93414cc52aeaaf1c69ec16033739a9cd410bd1848476452e0111d35d15a431a8c1a68bbef5036a14a61f368865d09386cd3ad934a73d6210f3436198cf706d0c529ee8f3e0af7bb288788b039c224e8bd4213c85ab00768dc03b8f4c70efd1f64f9ee55853e2313e040b0adf708dd8022a0ca5c55c106ee3fbdd2947651b71433936ca4922df2937c257ca88db8b83b0b60723c709a6272b17b289627929ef7705cafebe9305db3177e0f44f0e73ee97ae1fa649dab640faf090d17447ddf9d23a254196504d398554ab3b4d964b97d48c083b6eb52d06f7d451ea47f7ebb58020527da3464c685f3143ca07c73734352607b0d5bcc9ec3b3519e1c387b96fd2b5b394f2a19894a21b9af910b00e9f70833756d5b8b269cb43b4e1645cd9b858f5a91fbb368bec1f0b8c14c58ce7233b720bd1848476452e0111d35d15a431a8c1a68bbef5036a14a61f368865d09386cd3526d0060d64cb861f697b05c8a62b93414cc52aeaaf1c69ec16033739a9cd410f69994eaf6c5973aac4084a24d3e173a6ee550c3ebfc2c745a3b7882697876c159f112b59f228a9640e270323da5a1918d1a18446c546c83da7abb4ea3ff4b1174e78ae4567d31bf1f5578b9dd5b68577e35b28e5d4122f56605c9f1bc5a3d30ec73f79bba864248816bb2078526480cc66295fd10e1453bf8d4f77b2ec232e2886b903ce8357ee205ae50fb04751656b4705946bb83f61d3df0417dc41907d3964aa6454fa1522cbd2619a25e4cdf4f3e1572c885f1fc06f7899ebc28545f2000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010c45fd780cc95a186f522bf84d5070e169ffb185855570c26d419dcd3fb9e11b312ca7dba08fb184f03549b3f243d804d1e80ed3cf035ffac711c3adcc1c1f811f88dec9755ba648718467cc6c27bd8105d74f4a6660287bdab8e27358e642f41591106f5f248adbd700a446a4bc65fc899d88e9d89543263aa8ad385bbf26fc0854c3ad044f71f37370c662bb14eb0d29a7efe6006a7d0efacacfa44430672e1bade85c468713b4ec049c4399e2b43f023f6db762243ba536d396aa4ce6506c158282813e4eb2213261e38bde19a0f1bd42579e5d718fbeb436f1c82e3cdf9d3e0ddf4929ef0129fcb875216ff95a6d06c0af674d6c88cd11b411171b1696581113773d6aac02e345fb32de856db413e2adaee61974f28eaee2af8b13d235f81b8a481b13c14f9fa77e12c2c8dd9b1b5e3c50d97e432a8383e2b58b6b9c628313807906eb663ceee078fb9140b72e827f83a6ee27a6b190574557afaa41f8691089ed3afd1bf77ce5ceead9b14ef8700ba9be9f00003c5c0c66e99d7db75e1a1ea0099c3ea76d59d536ce6983c34da7be9f0c22ea4206042fcc0ed91d731cd4270b92a144af781176df03852d58d6fe11533df19804a85bbcf01b66a7d4f70b194d24625f15abdf7c51804f191f6cd6ff9bea811450160f6a9d861a1410b4352595b84cf0f248898b6df9bfb17ac69b973f0f9a624842b970aaa9a8a1cec656292626f3adac0161c25797f370c353c85334d181616051d26ac4879b5010feb836ed216f846ae1eeb4d07f5c00eda703c20a6572ad606dec9cdbf86ffd198f2d25f3aeef0d6c759a265348b68fe00ca73c238dcc57c917f2bb931c54fb666f361a0c5110f2938a65d9acb749701ff358e6230b2fb183e128dd9a1498049990cb3dc26aab431e4c02bfa06b90cf603f43e8249305a453858677852bcee9002c0c023d9554bce1b3fd405f946f309fc0bc3a2205f664f9739521a8051e16ffd3f534cc15584f977c0dbe2219d40ce13c52ff9c7b2c106db731f0e517568d00dc380b33eaa7b06883f241dde62bf31ec3ad22aa1dcff8df41e9a848199672ff23c907fc6ab98df56c44b6aa812440662d9e74f403ec2cf0af8b4fc4b0fcc1044d1438039546720a93bb49557edbbf99d261ad52950fdc5c499049687ff03efbb2ed25f3aeef0d6c759a265348b68fe00ca73c238dcc57c917f2bb931c54fb666f361a0c5110f2938a65d9acb749701ff358e6230b2fb183e128dd9a1498049990cb3dc26aab431e4c02bfa06b90cf603f43e8249305a453858677852bcee9002c0c023d9554bce1b3fd405f946f309fc0bc3a2205f664f9739521a8051e16ffd3f534cc15584f977c0dbe2219d40ce13c52ff9c7b2c106db731f0e517568d00dc380b33eaa7b06883f241dde62bf31ec3ad22aa1dcff8df41e9a848199672ff23c907fc6ab98df56c44b6aa812440662d9e74f403ec2cf0af8b4fc4b0fcc1044d1438039546720a93bb49557edbbf99d261ad52950fdc5c499049687ff03efbb2ed07b0d5bcc9ec3b3519e1c387b96fd2b5b394f2a19894a21b9af910b00e9f70833756d5b8b269cb43b4e1645cd9b858f5a91fbb368bec1f0b8c14c58ce7233b720bd1848476452e0111d35d15a431a8c1a68bbef5036a14a61f368865d09386cd3526d0060d64cb861f697b05c8a62b93414cc52aeaaf1c69ec16033739a9cd41213c85ab00768dc03b8f4c70efd1f64f9ee55853e2313e040b0adf708dd8022a3ad934a73d6210f3436198cf706d0c529ee8f3e0af7bb288788b039c224e8bd40723c709a6272b17b289627929ef7705cafebe9305db3177e0f44f0e73ee97ae0ca5c55c106ee3fbdd2947651b71433936ca4922df2937c257ca88db8b83b0b6083b6eb52d06f7d451ea47f7ebb58020527da3464c685f3143ca07c7373435261fa649dab640faf090d17447ddf9d23a254196504d398554ab3b4d964b97d48c3756d5b8b269cb43b4e1645cd9b858f5a91fbb368bec1f0b8c14c58ce7233b7207b0d5bcc9ec3b3519e1c387b96fd2b5b394f2a19894a21b9af910b00e9f70833526d0060d64cb861f697b05c8a62b93414cc52aeaaf1c69ec16033739a9cd410bd1848476452e0111d35d15a431a8c1a68bbef5036a14a61f368865d09386cd159f112b59f228a9640e270323da5a1918d1a18446c546c83da7abb4ea3ff4b10f69994eaf6c5973aac4084a24d3e173a6ee550c3ebfc2c745a3b7882697876c0ec73f79bba864248816bb2078526480cc66295fd10e1453bf8d4f77b2ec232e174e78ae4567d31bf1f5578b9dd5b68577e35b28e5d4122f56605c9f1bc5a3d33964aa6454fa1522cbd2619a25e4cdf4f3e1572c885f1fc06f7899ebc28545f22886b903ce8357ee205ae50fb04751656b4705946bb83f61d3df0417dc41907d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001312ca7dba08fb184f03549b3f243d804d1e80ed3cf035ffac711c3adcc1c1f810c45fd780cc95a186f522bf84d5070e169ffb185855570c26d419dcd3fb9e11b1591106f5f248adbd700a446a4bc65fc899d88e9d89543263aa8ad385bbf26fc1f88dec9755ba648718467cc6c27bd8105d74f4a6660287bdab8e27358e642f41bade85c468713b4ec049c4399e2b43f023f6db762243ba536d396aa4ce6506c0854c3ad044f71f37370c662bb14eb0d29a7efe6006a7d0efacacfa44430672e3e0ddf4929ef0129fcb875216ff95a6d06c0af674d6c88cd11b411171b169658158282813e4eb2213261e38bde19a0f1bd42579e5d718fbeb436f1c82e3cdf9d1b8a481b13c14f9fa77e12c2c8dd9b1b5e3c50d97e432a8383e2b58b6b9c62831113773d6aac02e345fb32de856db413e2adaee61974f28eaee2af8b13d235f81089ed3afd1bf77ce5ceead9b14ef8700ba9be9f00003c5c0c66e99d7db75e1a13807906eb663ceee078fb9140b72e827f83a6ee27a6b190574557afaa41f869270b92a144af781176df03852d58d6fe11533df19804a85bbcf01b66a7d4f70b1ea0099c3ea76d59d536ce6983c34da7be9f0c22ea4206042fcc0ed91d731cd42595b84cf0f248898b6df9bfb17ac69b973f0f9a624842b970aaa9a8a1cec656194d24625f15abdf7c51804f191f6cd6ff9bea811450160f6a9d861a1410b43536ed216f846ae1eeb4d07f5c00eda703c20a6572ad606dec9cdbf86ffd198f2d292626f3adac0161c25797f370c353c85334d181616051d26ac4879b5010feb83ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f620591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f620591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd62dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a24814e4fc4db6a41252ae13b604cfd91c0e9402633f45edd20bf70694bb1ebd40077e5fb96e4c541295b118291d98c7c81fb25e82959ce50f0f6e2140dc9b6cf1ec7b10604b385cb2749eb87d33d0e9beb216c2e4fc1d6d54f8797f55c1538f811a5d0d13ef2f7fc6bd8b0affa92f4cbba751a6012855cfd63068e53b1e7ea321ed9c17cdb69ace7a3d401aaa2df7e5a9b14849af98f7611c4bdd3533d1ad60a3267f9262df888432d1ecc40f27a38cf9db65ae4da4bafc18877223a13a945533ce554ec5c7e4eeea68fddfd0fd855dc8e1253cf4bfc7aa51318ff0adcfd61dd3e70a184511f6011b0be0e0136a08a5a034d05b4b30d2967b136e746b880657c2dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd60077e5fb96e4c541295b118291d98c7c81fb25e82959ce50f0f6e2140dc9b6cf24814e4fc4db6a41252ae13b604cfd91c0e9402633f45edd20bf70694bb1ebd437c73866f3de54d1573a852ac7d8973b09376e92d5746f8b39e7e8b39428a5b715c5b97e9c8eecce1664fc3d76610ff2cfcdfbf119d0e88e8b8ba21b10fce3f40abf282cc046c682e4b9d780d031027b9841844676d3eae5eb5d39245258d5c918ef4abe7e5304886052e2051ad306821f537f7bd04fb30512cae350ba6cc6dc3143ae19d0765f8251ec9caa175eff551accda880f5e36360e24433000b6e907306daa5ef60afc60ecf3f28aa368f5ceeb1e87a3dd0b629fd57021d85a9211cb000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010e67867b245d9150d09cdaffac183b9ef0c7f42451f3e9e217eb6ec72af21c03248f4e3367bfe80f66b6d262599a4d12230166ac4d7eae65352e86c20ac48f4b2a6f5f497b5d6fe8faf81383a7419ee815a531da38edca7d2ff417ddad78934d1b8235b1a37a457a455cfc398d7998ae5ca0009088603447f6f18e317194d6902e7cb1465bbda547125bf468c1e912cf798434f03c2fddd4046a82603923115736b9c145d8222e25c8e5461b05f5bbd20c66fddf46913a66e18fdaa62d109d0509ead7496b1043ece7441745aa35ee44d075a405d577d223df2535911233948916161ca582134fa61030d568e3c49e3c8968c8cf6acd8172391717817f5f82cb2bec045c26efacf09675a4f279d1876192d8a6ecad3fe109f8db1bc5c4039e9917c583a34f02107a1d1bcf887e1b7d2a1a220c53f15a44d700121fb578688cb416e0415e4ce7701c4ffa85a0569e4eb7184f141ab43aafea63aa03f80b8e44be3d24ecc00c9d4934b84bc448d3f535c1194e6c5ea08f4c1abb8220c95687fa0e1caf71b54cc10afebb0caa328015f6759fa22635e0cc2752436f6cac08c6a77528fc2a883695da6c910927bc31062e30305023dea17a870da94cbd93bc816c6a24e42939c12b45fc12b364cae2422d51ce52df86b26759c33df2cb318d0d347623f0ee907659754ac17a2c1cc1c1e2c476035e71c9c841cbf7c5f0918b6642632d18359828e53c67b967d69ad2a7270dec9daae567d8e9ca879251fcab7268af3f92fdbc5a0001e6241ca7088c395c34ba9938eb196dfcc50135060e6b859ddb40000000000000000000000000000000224698fc094cf91b992d30ed00000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000224698fc094cf91b992d30ecfffffffc000000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000224698fc094cf91b992d30ecffffffe8000000000000000000000000000000000000000000000000000000000000001940000000000000000000000000000000224698fc094cf91b992d30ecffffff84000000000000000000000000000000000000000000000000000000000000007d40000000000000000000000000000000224698fc094cf91b992d30ed00000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000224698fc094cf91b992d30ecfffffffc000000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000224698fc094cf91b992d30ecffffffe8000000000000000000000000000000000000000000000000000000000000001940000000000000000000000000000000224698fc094cf91b992d30ecffffff84000000000000000000000000000000000000000000000000000000000000007d000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017b2dac71546dc2493713ac1ebd0fc3a180c7c29eaae5b0e85f3959b824bca32000000000000000000000000000000000000000000000000000000000000000030d5089697900f486566b25f937f0c13c19035483fae49286eebf770f651fd0d000000000000000000000000000000000000000000000000000000000000000034ce144c6c81c3a065162768a4dc8aa13b043653f4c1e5bd888034758056cb76000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f6c5bf0052d0873a5ee9794164e1b09565f9848122f6b4dd6094219ecf3e6a5000000000000000000000000000000000000000000000000000000000000000137bc0fccaab13923f84568390f6aefa9196a6fe7b297f541e70051016fe153780000000000000000000000000000000000000000000000000000000000000000339d0d4d0e435170fa0d03cd8276be2a77f98662e0d14983f9f93f5df8d1633000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001262d56b50f01332bf2091ff8ca8974beeeff26a7de49cd6845face6de868e49a059efa75a99d314ac7e112966c68bef66639555674fb743cda201d0006fddf940ee2d718dba3d2c0e9fb7496d83c29ca835758f1a68a7e328107eeefc2a6386402491972a0a46d36e51fef75356ccf64fa2455296f3e6c7ad2ebc9a569a6d0b93c3eb696d239418abd665e2024739c1360744c464563db9fd506fee08dd698ab1bbbc4356548b3c004b57613e391ea038bbbd00c9802dbd5405a0f74475967611461a66da9fe325f8f731378f355c8b87d9af15c4f0b1518822d426dfe4f107d026540da72d1d2fa2f1adabd99277622f2e1514eebacce0a7043282bfc0e37441ef3c52013dec7dfa0a29f051baa17e1794e684a4900f2464b296f4e50b2c75129c02968955c98b4c06eef3aa08ea5cabe2452d6157b60515962be6da4a884261e077269c8d261a1cf61801702c3aa56f5e256679d8094d796014c4525b7390927a429d3ba8483c97cb451d7ae587a4eda0ff3ace4c6198856baddfa9f90dad6109454259592027c6cf5644a5d02ea129d9399ce489991c269f698a79313d94000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000109454259592027c6cf5644a5d02ea129d9399ce489991c269f698a79313d94034016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe00bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f861250210407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c3bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a51423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d33524b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200634016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe00bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f861250210407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c3bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a51423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d33524b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200620e6a6375b0b5eaeeb6fc87a8cbfa390fbf15474932bbe08a8d6ecbb879cb51f274d3dc3a846fc8924f1055fbf4f5ad5848b4b6ec07c76e6079ee428f532d6323f6f87ec151e92d4feb622c213b4f0192e6730ed845ce8696e4bea84732e1d4d385c9418e78f11f2f0e90f63a03c1180b7effa2343e1cdfaacc5d75e1002576605d7b01fc5928349864d3bbf35dc4ce4bb3f2133d7bd7e79f17d62f36cfa701a26cf1d52079afdcd1ce080241e148c73601ff86a7b42ab9580e99e5cfacbc6fd11e36c37e953c77eed67e9a7f536741ff0e0ae19f19a231119b79c38c3313c942008bf70c75a3a64c4723b888adafce692f77f601a006122816a6bf55160bfa53acb20f7f96884d38b60d863f37e7a46f9768491f166e41f4f1eea9d44082f9d1246ac812774e53f2e2998e14f8bbf7685d50cd9324383a9b5506da93e1dc1b4274d3dc3a846fc8924f1055fbf4f5ad5848b4b6ec07c76e6079ee428f532d63220e6a6375b0b5eaeeb6fc87a8cbfa390fbf15474932bbe08a8d6ecbb879cb51f385c9418e78f11f2f0e90f63a03c1180b7effa2343e1cdfaacc5d75e100257663f6f87ec151e92d4feb622c213b4f0192e6730ed845ce8696e4bea84732e1d4d2376a0e146db80f9232878a8653f4c05a8d9537aff2e62c133d1d5a10bf4674300dd7eba496b4a22ddaf036016b0a2506c0ebdee7c68a338924d25d59ee664181c080b92f513d781f6a43f0e3f911382f71c24d09ff2ec801afccdf9099f0a542ee4bd85dd221ca7d634f2a0597787fae54214fd8b34dfbcd54e261f00a41f00350b4b970e4331edb05b328eb7dc52828f13293845bacae491cf893d5d468e5b38de073465b4d9cbbdd00019109c8549702622771ea08e8ffd24ac876a6088860000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000133be3c557bdc01ccc10c798358e0cee3eb43c346de7f42657ff107b45e4bb65b1a3607f1b09bf69a213b8f966c74db8d7275a4ecf135d64fd56ce4296eee050d3ee087709e94a89522c2a8b258260c10ad288da81e454aedcf4cb419ab71de452cead8a7e42c4286a6b22d6bf54f28033e556ee3f49b6e1e36c6ae52ed2f9a283db4a9d8d6ee73871f340d6788dd10fb9a9874388be59eb482fb34e8ab373f8e214ad2cb6d28b3d126d71b63e0251ccc2a6a5fb4f961ef8199535b76ab08e99f2955b675a9be4fc5c46f106b616151bd2cf64e34fa910bea29f61991214448ec028efef65d37994fd79d1e8c1320b1820e28b7c707f0a263c127a907a5c6506f3ff9dc7f1688cb46357569836569c64037f7f9aa635a1e9a3c53b2242fef277e3c11963271eef0de132d1b2438183b4ced38fd68d999de6747a64783ff6ae3221c58fef18f2dfcb2404e58215972a96eae84b219edb9c6cd4f0ff57e91d938fd2fbe1c792bf180d2fb149f8a036b70debb3248d390cf091386c615b3a674d4aa3e531cf9581db1f23668490a70b6fe7c983d493b48fdc5fe127623a1305f1c5607587f442b39337915ad88e44065262937b500d93948e861da46069e94e8f78916dbd01504330ee8328e63f94997524dda4fa79f3d9a3b05e64368df5fcb46ad19e008d1fecf3ff3718fdb27cdd733074b7bf962400f331f3d89f0627ec4d14d274c6c95f030a55532a5dcca19d77da040dcf1a6cd1089c3b6e751c98dbd7ee427aee29ca74849954a142956ab11e4d7528f67c0181be1c3f695e66e9d067f9b0a3c6892c6708b8cc90155c7c0c8ec5cc902a5371b9647667e34fc70bac3ed0c35c3976d398f747336feaa383f3713a35943f3c4edb6b1b51af8347c453c12f5332e0adde032b9bfed06ace6c3ec9dcfed0d3a1389ef65007708ee33a5d3a13c0cd1f5221fcd464012f953193c13623035395ee87f5d941b222442b95a2c5ec53fe6365560fda0bfa1216081d39f150f3a6e576d95c60daf87a5143b3d2226290019c9aa9f025f405ede9f7e2c60eaf0e7d8418e7386eb6c11881cb1c2ddd9d83f7f0faae4f423be25a6e289221b694b9b0d5133c7aa5fff4184a17431aabec90080f0551b0bdc41da591d76dde496b4873947c841a2991c57a88f78ce5541380a3c6892c6708b8cc90155c7c0c8ec5cc902a5371b9647667e34fc70bac3ed0c35c3976d398f747336feaa383f3713a35943f3c4edb6b1b51af8347c453c12f5332e0adde032b9bfed06ace6c3ec9dcfed0d3a1389ef65007708ee33a5d3a13c0cd1f5221fcd464012f953193c13623035395ee87f5d941b222442b95a2c5ec53fe6365560fda0bfa1216081d39f150f3a6e576d95c60daf87a5143b3d2226290019c9aa9f025f405ede9f7e2c60eaf0e7d8418e7386eb6c11881cb1c2ddd9d83f7f0faae4f423be25a6e289221b694b9b0d5133c7aa5fff4184a17431aabec90080f0551b0bdc41da591d76dde496b4873947c841a2991c57a88f78ce5541383c5f354a6809f5d8fc0d754f10b0845dec5a231524772141e6eba5461ed414fa0552acfb4136a8687c086867198f336159a70e0de3347500c25c57abf0d8fec10ea60682aecbdee42397c05a7ce3eea2ec92141b47302b4406022808423fcc012fa81737a7f382da645261ef58dc599e11f9ecb9c3be30b083103cdfae1320473b442fe80237f9f2471ed5bec0a322c9943733baa45cff62f815d8df1ad316170559925ea413ce9bc0338a00d6e23724ee9d834c52594f99ba3c69852b150a673f8129a0cbf2c2ee7797ce18340fa10c6fc510cf0c940f15873982226f52810b3fe1468df0d4367ccccba93df2730956b4dec3517611b685993d5bd3dee7bd18203cc350bbecc8ec4012b59703593e4317e7ede6417f5509819c6dc37e94d8b51bd3832741c31cd41f4b79e067ea358ea2ad751c49ea6025c7f9ab78073c10f90552acfb4136a8687c086867198f336159a70e0de3347500c25c57abf0d8fec13c5f354a6809f5d8fc0d754f10b0845dec5a231524772141e6eba5461ed414fa2fa81737a7f382da645261ef58dc599e11f9ecb9c3be30b083103cdfae1320470ea60682aecbdee42397c05a7ce3eea2ec92141b47302b4406022808423fcc011b5dfa9bd184d0569fdc43066fe8b048bd08e7d34083390f0f6b37b5dfee82f00a6c518d4bc90f7ded1669419cc1c92e5a9676d06593ac5f2145fdb1e9471d4820374efa3e791f5d3c185680619348147ad51d8ce8be00c16f9cfeba2b95d02e37fbe9f526022308ffc49beb531c492be5de1b05c054cdac3d5c551939cde90a3140ff15e22c58558c7ff547f9d9d0da5a7030b0219337e3d303e7dc7318676419ec0292880f6c4530091eea15cc26cba9f2702828e5b9e9fed63b24d514a6d60000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000114d8780aabd115c01d8be5a83eb232a5f8586dc670dd48dc15a1ea3dba0392f410fc56c95710c1a945f27477766b823f188f19e53e367835e5e911758cf1a1f40debae6fa3b3602532c67da61fb6dedc1f10a099e661ac47304a1f82bb1a48702a2eff5392285967d07c6dc9450daad9480872be9e81b6ea4021536af147cd473f7ad558ad51046f91d3ae56cbbf49f30d17fc268201af9fbc4281196030106a3629157a361d92390fb6e3aa790c3c0d5d4d940407cb058e8b2fb255b9a05eb6098006a27938312658134224b1e12467530b30fb362e3056b1da2688d20d0d09220023e72f010d84d9151db5e846a5cf86bad30c71fa9edd01327fdcf7d4d9543f9a015901a40e675ef09f0243a0bd4740cc66aa2ac05806cb7d2ddc917c2a04378cb2eacda6d23a45e376177ad6dffd17495835e91b1fd2ca888c7e5d287c3827e26129456fd53cb4d76b77064c7b3f2c75e6246a31225ac749637d51ebefb43588b992a12ab13cf2ea4c93246d49a657fa8777bd47e45fbfc8c24c09ef021028ad478081870e0f9f1e5d1592f70aeba7a736effc29c4d16c6b93874776caea1cfe54bd01cfd75bacf774d91e2519ba284b1324861ce98e805096b87dd148f521934f9fd4970d89945a97c337426fc319019daaface7f8ed1dbbdab3a4a4d9f2ba71a2265ccfdd6e7ba337058782260776aee5a61a7cf94f2e53881d6e6d16e1c5921863a91a1143d13dffc222623fcdc8f8333ca2677d9976aa55e6c064be53ed55c19fa51dcfc783b1b5da6d51e9e56ceaec37c5b5b3f556c2cd703c22a81307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab21307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab211d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f31191ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a33e487bd6867df07d9ec1655272d545d836af65b6e200b39c8a448d47b53f7bd123701802f019376baeb767fee133c1f3dc99bb5c30df62439261b00de2d7c131d548f3a37824e69d2a303268bf95ebe4d234c7efcf767cd5b468655c42d6e0c35a39850482b091a74764e0c664c3ce29d58afb92b8e646a5f733ba602893b0b1f6ac28802d85254bf34bc745b22b6329dfeda79f795b6edf8d1295dbdbe5145305a296dafd6e9d44dbfe1828fc0bbb540195dda23348aa6ab24be0bae152e6712b2922da287875eb02404c25118a64be76d37784d70d8e9e573b9a8dba470942d33e100830ba545a02a1743cb8742e85b824a8c0cac15020e1122ab107a14291ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a1d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f3119123701802f019376baeb767fee133c1f3dc99bb5c30df62439261b00de2d7c1333e487bd6867df07d9ec1655272d545d836af65b6e200b39c8a448d47b53f7bd35dc61c66e94143707d8718d93ca49596ad35e3a664f2f7c8421a152d35d45da01d0b41dfef4b7824640b03a7c79fa83b58fda78ab814665979f8bf04bb5909028a68289f22ce6e9bc094b17961df8c0411153a275fd71849a30a813a669550d3df8dff7eb723c0b4620407c0f8dd83d3b15a9cf842aa7f83921972a82bfe4c82096cd836558aac4c77e426521fd711022117695c1c4be6ea49a5c36811dc0f2028b37877cf77748214f180647bb2071d18a7b3d7adb19a7af8f5c33eef6805d000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013dbb8123a201f395db9f2f2c3d4ff82cc0f292e70d03be073f8c10b780ab6b112b6f47b0bc19cfbd55b379a01fc7fbeef10f2555c641cacfbdb3e5d40c0c99d2213370d52f4338ec1be5da8d495ec0412b0c849085a948b7d8f42b822ec6265b37e08811cd6f415558a20d16becee1d01867b2ba7867f9d38eb9339d22bf2c941abfdb6cadb66b16fefc7571039f4148724f5550aebcbbf40412b92b6dc016bf05146708553da5e44bbf4dff562a274db6790b9744f3e5048b86db4d55ec8c543856230d60c179d69bfc51d553973ebc928e7daea19be3ebd80b35fc0ce5f0262f25569f5ee15b0d2d3b65d2eb0a6374b93fc3dcdfccb0842099a1830ba4ca610cf33767c34c206a5818c9f6d3715991bacb418650e48bcbb8403090c988c7c80104b7018746f5dbcff36efe0c1c1a206de14938a4a48cc26631587803ea830321c905eaea25e3dedc370bd327272a6bca531b1569e6391cdf7175a681cb3a27246363f6aa13006b2614b010694833fd8a2d547ce950eb416636c9c424ff6ba117dc9233abaa8edc7a19fc22ebd1084cb864d3ba89306b18cd74403fa7f6207e2dcf0a09d7ac568ed1fbd5cbc54b1c59178d7659f91643471f47ea001d51f3613d8e2c431b1a79a8a46285cf68d1935784bb81c82a8e31ca08dc72071de6b0da19a19b0c1df1bf82cb47c9487fb65c9856553aee9e895c797a5639efda877991367ab44d9ec8b69ac840786b5bd0a08bd77cd20cc6cd74e514ad17279db103b0354372abd4c87a3a0317c3c50b078e9a6c0db353f6adba84d4e77af76e1500052f50d95a6fbbf69d4b315b51feab760a01547d3e9b8250963cb44c579ff9d03410af26a590440962b4cea4ae015489f620f21bbd6dcaa8855c78e49560062fcd2c943ec42eabd11277f6c899f9594e319fd2a744eda4a79c63fdeaef1fe11101136bc13bd1542eed8809376606a6b1ce8273f1b71ba8517f352f45fde01eef001ee539d4e95b155c57d1eb01debe86f7b849796488505abb286e03e49f655502211ac62b16a4eaa3a82e14fe2141790869fd1f9780fc9e6070bf2d08609aaaff1a7a21288ec76acdb719970959b8a2d654e22cfe96f7d37097cbb19d1cfaa9082585ded77138953248e668f6a6475d29cd646bfd725525ab01617f4fe30556f92f50d95a6fbbf69d4b315b51feab760a01547d3e9b8250963cb44c579ff9d03410af26a590440962b4cea4ae015489f620f21bbd6dcaa8855c78e49560062fcd2c943ec42eabd11277f6c899f9594e319fd2a744eda4a79c63fdeaef1fe11101136bc13bd1542eed8809376606a6b1ce8273f1b71ba8517f352f45fde01eef001ee539d4e95b155c57d1eb01debe86f7b849796488505abb286e03e49f655502211ac62b16a4eaa3a82e14fe2141790869fd1f9780fc9e6070bf2d08609aaaff1a7a21288ec76acdb719970959b8a2d654e22cfe96f7d37097cbb19d1cfaa9082585ded77138953248e668f6a6475d29cd646bfd725525ab01617f4fe30556f90af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb1dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970c2b75fbbe433ef24de4054a1dd9f66a53f2af49bd4023946d9757847ed174640b0b59e3d76049a3cbcc543bafb2590ac18882a0454dfa958b5471d33d0dec0c1ff9fb5636e682c54595ae59308d07b83e992344f2f2cdd3faa8f6f65562a9d72d8b0a9adb08667a4f595126e49cb9c6146df06cf9296fd136693e2ad6bcfec3131387d000f3b84b0d7360a8584bbecb731811508a4bc39d7c83f9146eec555b1d001fb9101e1c85d546e96e3ee048999048fc9978fc24836c19b236813e700b1d603d758367eee3706b0b6ecb5d21cf7be345ce033e19028c81871ffa8f27aa2ea5d26188142b36adcc8e5c588ad3d4bdf1f15f2a91055f361f8d9f681f7c071dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb0b0b59e3d76049a3cbcc543bafb2590ac18882a0454dfa958b5471d33d0dec0c0c2b75fbbe433ef24de4054a1dd9f66a53f2af49bd4023946d9757847ed17464249ee2267d42291f0143aff4e004a73bc2c6ca985c62e685ef063d5f050e2f4c1c62474a42fc66a79c370c0505864b724b0497dce43e033f363cba068a980a520d68748f355bb5d665a0cc6b855033dc50e3db4660cf56cc96eeace1dcac050f280e7de87cf6808708c0047cc81e562a8a5e323d5299092cef7020c786d0905f097394f4110e81f6cc3974aef75edf9c8342da3af841a2caf68cc08c7eb7c1cc21939d25be3f8d2e963faa8524a102756ace49d2fad7b6b56a3eaa33fee30fdb000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012f9258dc5237d4854b4f5874a94e1fb60994518abe2c81c8c0287dc230533f2437b3241106aca0a0c54ea3cfedc6f71c5dfc017115a6edd1e134a09c2b86bf053ed91e7e6c068ded8de8887bf1263504ff247985d547938635653d7d9a5c8a520f3fe0e2f28842a70f7c8c106624a2cdbe2d1b260ae9870f437fc0f6b084bfeb118a912bfbb1ebcdf428adfcf3acc0f34a726b5d2696ab3b3cc27455f6ca2ed60189d9842c08854fca2d31c1ebaa06bb87c7eaccf863f880b57df873246fb1593b88b8ccef17fe3b65cb84d8ada0d9e9039bcb7214f792942030f879e00a82443881e11db9f7fbe1f8c64e867139d83f68885d69ad5b5cc0f9b8441df2e767002bc5fd6a32ca7d8a028109bef03b2d74f71cfec86aafec4a29d28bf3b17a9c291e75294be9d02bbe06faafb1759c6bcf98a4235c3553f0daca2fc424389922783629ac374ad86192e9220ca56f91edbb59ec5df2e6dcf8933782a432f3cd3db11bfd1e2b05195e6056509c20f7e8c28faad23272b42c762a76d06d95730caa0237a22583fe6ffc08dacfbb51eb7bfa8f2f40f86343fdf07945dfa5cf93cda2060e0976b984e6e9627146169cc5a02a16a0b151b13e48bde6a6dc8470317a71d929dfec695b53155c6e261af6f5d9cf19368bb14d260b927b5ba5c5728c13cae43c58ee7418200325de18346cc1eb218dd839616d9715acba5dfda770fa7120ca0a047eb15946cf044914e7ff9aa54ddd9ba6e7f10812807fda31eedba2ea376316506ccc7f82e6fb2e8540a2503be691e540ea8d6f35860d316f34c0be1c2f4e35c3976d398f747336feaa383f3713a35943f3c4edb6b1b51af8347c453c12f50a3c6892c6708b8cc90155c7c0c8ec5cc902a5371b9647667e34fc70bac3ed0c0cd1f5221fcd464012f953193c13623035395ee87f5d941b222442b95a2c5ec5332e0adde032b9bfed06ace6c3ec9dcfed0d3a1389ef65007708ee33a5d3a13c0019c9aa9f025f405ede9f7e2c60eaf0e7d8418e7386eb6c11881cb1c2ddd9d83fe6365560fda0bfa1216081d39f150f3a6e576d95c60daf87a5143b3d2226290080f0551b0bdc41da591d76dde496b4873947c841a2991c57a88f78ce5541383f7f0faae4f423be25a6e289221b694b9b0d5133c7aa5fff4184a17431aabec935c3976d398f747336feaa383f3713a35943f3c4edb6b1b51af8347c453c12f50a3c6892c6708b8cc90155c7c0c8ec5cc902a5371b9647667e34fc70bac3ed0c0cd1f5221fcd464012f953193c13623035395ee87f5d941b222442b95a2c5ec5332e0adde032b9bfed06ace6c3ec9dcfed0d3a1389ef65007708ee33a5d3a13c0019c9aa9f025f405ede9f7e2c60eaf0e7d8418e7386eb6c11881cb1c2ddd9d83fe6365560fda0bfa1216081d39f150f3a6e576d95c60daf87a5143b3d2226290080f0551b0bdc41da591d76dde496b4873947c841a2991c57a88f78ce5541383f7f0faae4f423be25a6e289221b694b9b0d5133c7aa5fff4184a17431aabec90552acfb4136a8687c086867198f336159a70e0de3347500c25c57abf0d8fec13c5f354a6809f5d8fc0d754f10b0845dec5a231524772141e6eba5461ed414fa2fa81737a7f382da645261ef58dc599e11f9ecb9c3be30b083103cdfae1320470ea60682aecbdee42397c05a7ce3eea2ec92141b47302b4406022808423fcc010559925ea413ce9bc0338a00d6e23724ee9d834c52594f99ba3c69852b150a673b442fe80237f9f2471ed5bec0a322c9943733baa45cff62f815d8df1ad316173fe1468df0d4367ccccba93df2730956b4dec3517611b685993d5bd3dee7bd183f8129a0cbf2c2ee7797ce18340fa10c6fc510cf0c940f15873982226f52810b1bd3832741c31cd41f4b79e067ea358ea2ad751c49ea6025c7f9ab78073c10f9203cc350bbecc8ec4012b59703593e4317e7ede6417f5509819c6dc37e94d8b53c5f354a6809f5d8fc0d754f10b0845dec5a231524772141e6eba5461ed414fa0552acfb4136a8687c086867198f336159a70e0de3347500c25c57abf0d8fec10ea60682aecbdee42397c05a7ce3eea2ec92141b47302b4406022808423fcc012fa81737a7f382da645261ef58dc599e11f9ecb9c3be30b083103cdfae1320470a6c518d4bc90f7ded1669419cc1c92e5a9676d06593ac5f2145fdb1e9471d481b5dfa9bd184d0569fdc43066fe8b048bd08e7d34083390f0f6b37b5dfee82f037fbe9f526022308ffc49beb531c492be5de1b05c054cdac3d5c551939cde90a20374efa3e791f5d3c185680619348147ad51d8ce8be00c16f9cfeba2b95d02e19ec0292880f6c4530091eea15cc26cba9f2702828e5b9e9fed63b24d514a6d63140ff15e22c58558c7ff547f9d9d0da5a7030b0219337e3d303e7dc731867640000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000110fc56c95710c1a945f27477766b823f188f19e53e367835e5e911758cf1a1f414d8780aabd115c01d8be5a83eb232a5f8586dc670dd48dc15a1ea3dba0392f42a2eff5392285967d07c6dc9450daad9480872be9e81b6ea4021536af147cd470debae6fa3b3602532c67da61fb6dedc1f10a099e661ac47304a1f82bb1a48703629157a361d92390fb6e3aa790c3c0d5d4d940407cb058e8b2fb255b9a05eb63f7ad558ad51046f91d3ae56cbbf49f30d17fc268201af9fbc4281196030106a220023e72f010d84d9151db5e846a5cf86bad30c71fa9edd01327fdcf7d4d954098006a27938312658134224b1e12467530b30fb362e3056b1da2688d20d0d09378cb2eacda6d23a45e376177ad6dffd17495835e91b1fd2ca888c7e5d287c383f9a015901a40e675ef09f0243a0bd4740cc66aa2ac05806cb7d2ddc917c2a043588b992a12ab13cf2ea4c93246d49a657fa8777bd47e45fbfc8c24c09ef021027e26129456fd53cb4d76b77064c7b3f2c75e6246a31225ac749637d51ebefb41cfe54bd01cfd75bacf774d91e2519ba284b1324861ce98e805096b87dd148f528ad478081870e0f9f1e5d1592f70aeba7a736effc29c4d16c6b93874776caea2ba71a2265ccfdd6e7ba337058782260776aee5a61a7cf94f2e53881d6e6d16e21934f9fd4970d89945a97c337426fc319019daaface7f8ed1dbbdab3a4a4d9f3ed55c19fa51dcfc783b1b5da6d51e9e56ceaec37c5b5b3f556c2cd703c22a811c5921863a91a1143d13dffc222623fcdc8f8333ca2677d9976aa55e6c064be508ccf4d3a5e93ecf17c6dce5a8ee2a604a4de7693506ce6caa2463287a5d817937330b2c5a16c130e839231a5711d59fd7f8b192d4462aaeef08cdc485a27e882c00c8223d8e3a0b76e2507c4ca6d3e17385850e0922081f52b5efca63d3875d13ff37ddc271c5f4891daf83b3592c1eaec113ee002af0fc467741229c2c78a41c03e8ab33c72239526b926d7f422366dac7ce5211c33d49d2061c2cf321a4ce23fc1754cc38ddc6ad946d9280bddc99477ecaa9f789bbd1c72714c00cde5b330c138b5802e3ab1e9c19dc237c4ab1020159d5a246364039e7c42b06bfa8380433ec74a7fd1c54e163e623dc83b54efe20ecc359c316b8e1b16905e64057c7fd08ccf4d3a5e93ecf17c6dce5a8ee2a604a4de7693506ce6caa2463287a5d817937330b2c5a16c130e839231a5711d59fd7f8b192d4462aaeef08cdc485a27e882c00c8223d8e3a0b76e2507c4ca6d3e17385850e0922081f52b5efca63d3875d13ff37ddc271c5f4891daf83b3592c1eaec113ee002af0fc467741229c2c78a41c03e8ab33c72239526b926d7f422366dac7ce5211c33d49d2061c2cf321a4ce23fc1754cc38ddc6ad946d9280bddc99477ecaa9f789bbd1c72714c00cde5b330c138b5802e3ab1e9c19dc237c4ab1020159d5a246364039e7c42b06bfa8380433ec74a7fd1c54e163e623dc83b54efe20ecc359c316b8e1b16905e64057c7fd2c9c5447ae1258463f3aab447a9f9906b7afbc722f2eeaa83dc7e2d2b05d15550da9914a1efea3e5e652d1bebf32fb2c4a8339fdf7e114fbb9026c3948d1e57b2f88cd896630976eca8ac22f2adf184cc2b4645146ab150c6247ed9a6d5f932316314ce4ccbe6c650fe7c0cd9b4e53807fa5d736a4dedd86d948253399717210280071283699db36bbd4074eb20321a1e278c9f5621fb2f066ebfa421fbac1f52916854ebc2d902dc4b62a539145498f767a3216baa217ddac4e6ae33f95c02c379de3c2e00b0c9069a6b6f870606c66d94be64a708f86f546b5bc1beeb2b09620870a490cc02e987fa4ceb204b4ccd3cf810ca8193c482b89ae095a2dae1c841ccca892b98c6f9673f2f11e146986ea5e04c39076f443387d615ce92955727f0f072b23cbd331b6925ccd7811a2402021115005c32c178165b23f01d0d04c810da9914a1efea3e5e652d1bebf32fb2c4a8339fdf7e114fbb9026c3948d1e57b2c9c5447ae1258463f3aab447a9f9906b7afbc722f2eeaa83dc7e2d2b05d155516314ce4ccbe6c650fe7c0cd9b4e53807fa5d736a4dedd86d9482533997172102f88cd896630976eca8ac22f2adf184cc2b4645146ab150c6247ed9a6d5f93230265de0258f37ea129b98c9e34d5ba77803df2da194a219240ef84381bbd74ff2c9b0cdc05357dc7920ac520eaaf6b8927df381d4e35697d3ebd5bbca77c715c36badd17c1271bb94c788cc26ed5a76eb295e9099c93b8bbf582e8efd1d356c80d814f8ca76fcda4d6ff52e0aa2272dbce96c8db31093a772bba74a6ffb94fef03e9b2f9e6efac2b1a653709c8900f69691d24568ebeae187eb7467da420f00a3190331c5b435e0768c9ddbf1daaed7203a4bb0686a96633c69c68e1cede3d360000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000118ea5ffe0484b679a2538d233ef9839b2e4b1a9d099148ec3cb9713369fbac6d1502892d11ad291e23cb6f9a85aaf8e72e3b6105711e4d995a3f6a0dd0936c5b0811d1dd75c978970675ab2b25029db6fec46f042c0a150ef0a6cab2c61ba0d814606767deb4780d7ab3829207368cca4a0dcd8092bca17179348103f1db761e39ee5c66ab28643ceb96f74110128c7c3e8567de8c4d7b2391c75b1298f61937165789d56fd9885adc2ae67dbb16ab17f6f9a3f50f705e7e5160cdf9c9d4a5eb3d5d08669f675ee6d85de193a8e61cbf5ab2e564245114d9a42aec7bf794d4632729d07bd357396582fb5258fb1fe8d777ec414605215d3cc5b2ec9636ce7cec1555e5d1cd521cfb1253de961ce04bd515d9d1392599bd8d9006da996f77e94027018192264400bbf2889caedb2f50e6fec6012fe3199dfe7de4b30cfd98c565345d67a93a5f559e5e4e17f0d0e5e02de122ccf75cc8ba0e274f0322dfda14513d89d0130748bc72f09fd09cf99b38c4340c891a447a971b946cdbef9df787ff0c0741e1429523fbfbece0bdd8e58f468b616c54e6fdef7b4f4a5e3f85cd191839a45a5c40c1c16f5028f130d836955f4490ddbf9b48bee49d71cc003f7afac703723b4b035add2995fec3df305cad4c39ed844248fd86f8503fa89e716972d824dae78cb797c661e38f9003dbd418e521036a7a09d940a889b4b86cfdf3292b22f38e839d5300832fe1cd6e51b12d5c4e9c9a61df508f71464273f113943b0601149d4453c3b84f8bcf84d2901a5886beff5c3e24b69c23eb7ededb60cfc82e37330b2c5a16c130e839231a5711d59fd7f8b192d4462aaeef08cdc485a27e8808ccf4d3a5e93ecf17c6dce5a8ee2a604a4de7693506ce6caa2463287a5d817913ff37ddc271c5f4891daf83b3592c1eaec113ee002af0fc467741229c2c78a42c00c8223d8e3a0b76e2507c4ca6d3e17385850e0922081f52b5efca63d3875d23fc1754cc38ddc6ad946d9280bddc99477ecaa9f789bbd1c72714c00cde5b331c03e8ab33c72239526b926d7f422366dac7ce5211c33d49d2061c2cf321a4ce33ec74a7fd1c54e163e623dc83b54efe20ecc359c316b8e1b16905e64057c7fd0c138b5802e3ab1e9c19dc237c4ab1020159d5a246364039e7c42b06bfa8380437330b2c5a16c130e839231a5711d59fd7f8b192d4462aaeef08cdc485a27e8808ccf4d3a5e93ecf17c6dce5a8ee2a604a4de7693506ce6caa2463287a5d817913ff37ddc271c5f4891daf83b3592c1eaec113ee002af0fc467741229c2c78a42c00c8223d8e3a0b76e2507c4ca6d3e17385850e0922081f52b5efca63d3875d23fc1754cc38ddc6ad946d9280bddc99477ecaa9f789bbd1c72714c00cde5b331c03e8ab33c72239526b926d7f422366dac7ce5211c33d49d2061c2cf321a4ce33ec74a7fd1c54e163e623dc83b54efe20ecc359c316b8e1b16905e64057c7fd0c138b5802e3ab1e9c19dc237c4ab1020159d5a246364039e7c42b06bfa838040da9914a1efea3e5e652d1bebf32fb2c4a8339fdf7e114fbb9026c3948d1e57b2c9c5447ae1258463f3aab447a9f9906b7afbc722f2eeaa83dc7e2d2b05d155516314ce4ccbe6c650fe7c0cd9b4e53807fa5d736a4dedd86d9482533997172102f88cd896630976eca8ac22f2adf184cc2b4645146ab150c6247ed9a6d5f93232916854ebc2d902dc4b62a539145498f767a3216baa217ddac4e6ae33f95c02c280071283699db36bbd4074eb20321a1e278c9f5621fb2f066ebfa421fbac1f520870a490cc02e987fa4ceb204b4ccd3cf810ca8193c482b89ae095a2dae1c84379de3c2e00b0c9069a6b6f870606c66d94be64a708f86f546b5bc1beeb2b0960f072b23cbd331b6925ccd7811a2402021115005c32c178165b23f01d0d04c811ccca892b98c6f9673f2f11e146986ea5e04c39076f443387d615ce92955727f2c9c5447ae1258463f3aab447a9f9906b7afbc722f2eeaa83dc7e2d2b05d15550da9914a1efea3e5e652d1bebf32fb2c4a8339fdf7e114fbb9026c3948d1e57b2f88cd896630976eca8ac22f2adf184cc2b4645146ab150c6247ed9a6d5f932316314ce4ccbe6c650fe7c0cd9b4e53807fa5d736a4dedd86d9482533997172102c9b0cdc05357dc7920ac520eaaf6b8927df381d4e35697d3ebd5bbca77c715c0265de0258f37ea129b98c9e34d5ba77803df2da194a219240ef84381bbd74ff0d814f8ca76fcda4d6ff52e0aa2272dbce96c8db31093a772bba74a6ffb94fef36badd17c1271bb94c788cc26ed5a76eb295e9099c93b8bbf582e8efd1d356c83190331c5b435e0768c9ddbf1daaed7203a4bb0686a96633c69c68e1cede3d3603e9b2f9e6efac2b1a653709c8900f69691d24568ebeae187eb7467da420f00a000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011502892d11ad291e23cb6f9a85aaf8e72e3b6105711e4d995a3f6a0dd0936c5b18ea5ffe0484b679a2538d233ef9839b2e4b1a9d099148ec3cb9713369fbac6d14606767deb4780d7ab3829207368cca4a0dcd8092bca17179348103f1db761e0811d1dd75c978970675ab2b25029db6fec46f042c0a150ef0a6cab2c61ba0d8165789d56fd9885adc2ae67dbb16ab17f6f9a3f50f705e7e5160cdf9c9d4a5eb39ee5c66ab28643ceb96f74110128c7c3e8567de8c4d7b2391c75b1298f619372729d07bd357396582fb5258fb1fe8d777ec414605215d3cc5b2ec9636ce7cec3d5d08669f675ee6d85de193a8e61cbf5ab2e564245114d9a42aec7bf794d46327018192264400bbf2889caedb2f50e6fec6012fe3199dfe7de4b30cfd98c5651555e5d1cd521cfb1253de961ce04bd515d9d1392599bd8d9006da996f77e9403d89d0130748bc72f09fd09cf99b38c4340c891a447a971b946cdbef9df787ff345d67a93a5f559e5e4e17f0d0e5e02de122ccf75cc8ba0e274f0322dfda145139a45a5c40c1c16f5028f130d836955f4490ddbf9b48bee49d71cc003f7afac70c0741e1429523fbfbece0bdd8e58f468b616c54e6fdef7b4f4a5e3f85cd191824dae78cb797c661e38f9003dbd418e521036a7a09d940a889b4b86cfdf3292b03723b4b035add2995fec3df305cad4c39ed844248fd86f8503fa89e716972d801149d4453c3b84f8bcf84d2901a5886beff5c3e24b69c23eb7ededb60cfc82e22f38e839d5300832fe1cd6e51b12d5c4e9c9a61df508f71464273f113943b0610af26a590440962b4cea4ae015489f620f21bbd6dcaa8855c78e49560062fcd2f50d95a6fbbf69d4b315b51feab760a01547d3e9b8250963cb44c579ff9d034136bc13bd1542eed8809376606a6b1ce8273f1b71ba8517f352f45fde01eef002c943ec42eabd11277f6c899f9594e319fd2a744eda4a79c63fdeaef1fe11101211ac62b16a4eaa3a82e14fe2141790869fd1f9780fc9e6070bf2d08609aaaff1ee539d4e95b155c57d1eb01debe86f7b849796488505abb286e03e49f6555022585ded77138953248e668f6a6475d29cd646bfd725525ab01617f4fe30556f91a7a21288ec76acdb719970959b8a2d654e22cfe96f7d37097cbb19d1cfaa90810af26a590440962b4cea4ae015489f620f21bbd6dcaa8855c78e49560062fcd2f50d95a6fbbf69d4b315b51feab760a01547d3e9b8250963cb44c579ff9d034136bc13bd1542eed8809376606a6b1ce8273f1b71ba8517f352f45fde01eef002c943ec42eabd11277f6c899f9594e319fd2a744eda4a79c63fdeaef1fe11101211ac62b16a4eaa3a82e14fe2141790869fd1f9780fc9e6070bf2d08609aaaff1ee539d4e95b155c57d1eb01debe86f7b849796488505abb286e03e49f6555022585ded77138953248e668f6a6475d29cd646bfd725525ab01617f4fe30556f91a7a21288ec76acdb719970959b8a2d654e22cfe96f7d37097cbb19d1cfaa9081dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb0b0b59e3d76049a3cbcc543bafb2590ac18882a0454dfa958b5471d33d0dec0c0c2b75fbbe433ef24de4054a1dd9f66a53f2af49bd4023946d9757847ed174642d8b0a9adb08667a4f595126e49cb9c6146df06cf9296fd136693e2ad6bcfec31ff9fb5636e682c54595ae59308d07b83e992344f2f2cdd3faa8f6f65562a9d71d001fb9101e1c85d546e96e3ee048999048fc9978fc24836c19b236813e700b131387d000f3b84b0d7360a8584bbecb731811508a4bc39d7c83f9146eec555b2ea5d26188142b36adcc8e5c588ad3d4bdf1f15f2a91055f361f8d9f681f7c071d603d758367eee3706b0b6ecb5d21cf7be345ce033e19028c81871ffa8f27aa0af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb1dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970c2b75fbbe433ef24de4054a1dd9f66a53f2af49bd4023946d9757847ed174640b0b59e3d76049a3cbcc543bafb2590ac18882a0454dfa958b5471d33d0dec0c1c62474a42fc66a79c370c0505864b724b0497dce43e033f363cba068a980a52249ee2267d42291f0143aff4e004a73bc2c6ca985c62e685ef063d5f050e2f4c280e7de87cf6808708c0047cc81e562a8a5e323d5299092cef7020c786d0905f0d68748f355bb5d665a0cc6b855033dc50e3db4660cf56cc96eeace1dcac050f21939d25be3f8d2e963faa8524a102756ace49d2fad7b6b56a3eaa33fee30fdb097394f4110e81f6cc3974aef75edf9c8342da3af841a2caf68cc08c7eb7c1cc0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000137b3241106aca0a0c54ea3cfedc6f71c5dfc017115a6edd1e134a09c2b86bf052f9258dc5237d4854b4f5874a94e1fb60994518abe2c81c8c0287dc230533f240f3fe0e2f28842a70f7c8c106624a2cdbe2d1b260ae9870f437fc0f6b084bfeb3ed91e7e6c068ded8de8887bf1263504ff247985d547938635653d7d9a5c8a520189d9842c08854fca2d31c1ebaa06bb87c7eaccf863f880b57df873246fb159118a912bfbb1ebcdf428adfcf3acc0f34a726b5d2696ab3b3cc27455f6ca2ed63881e11db9f7fbe1f8c64e867139d83f68885d69ad5b5cc0f9b8441df2e767003b88b8ccef17fe3b65cb84d8ada0d9e9039bcb7214f792942030f879e00a82441e75294be9d02bbe06faafb1759c6bcf98a4235c3553f0daca2fc424389922782bc5fd6a32ca7d8a028109bef03b2d74f71cfec86aafec4a29d28bf3b17a9c291bfd1e2b05195e6056509c20f7e8c28faad23272b42c762a76d06d95730caa023629ac374ad86192e9220ca56f91edbb59ec5df2e6dcf8933782a432f3cd3db10e0976b984e6e9627146169cc5a02a16a0b151b13e48bde6a6dc8470317a71d937a22583fe6ffc08dacfbb51eb7bfa8f2f40f86343fdf07945dfa5cf93cda2063c58ee7418200325de18346cc1eb218dd839616d9715acba5dfda770fa7120ca29dfec695b53155c6e261af6f5d9cf19368bb14d260b927b5ba5c5728c13cae416506ccc7f82e6fb2e8540a2503be691e540ea8d6f35860d316f34c0be1c2f4e0a047eb15946cf044914e7ff9aa54ddd9ba6e7f10812807fda31eedba2ea376340000000000000000000000000000000224698fc094cf91b992d30ed00000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000224698fc094cf91b992d30ecfffffffc000000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000224698fc094cf91b992d30ecffffffe8000000000000000000000000000000000000000000000000000000000000001940000000000000000000000000000000224698fc094cf91b992d30ecffffff84000000000000000000000000000000000000000000000000000000000000007d40000000000000000000000000000000224698fc094cf91b992d30ed00000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000224698fc094cf91b992d30ecfffffffc000000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000224698fc094cf91b992d30ecffffffe8000000000000000000000000000000000000000000000000000000000000001940000000000000000000000000000000224698fc094cf91b992d30ecffffff84000000000000000000000000000000000000000000000000000000000000007d000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017b2dac71546dc2493713ac1ebd0fc3a180c7c29eaae5b0e85f3959b824bca32000000000000000000000000000000000000000000000000000000000000000030d5089697900f486566b25f937f0c13c19035483fae49286eebf770f651fd0d000000000000000000000000000000000000000000000000000000000000000034ce144c6c81c3a065162768a4dc8aa13b043653f4c1e5bd888034758056cb76000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f6c5bf0052d0873a5ee9794164e1b09565f9848122f6b4dd6094219ecf3e6a5000000000000000000000000000000000000000000000000000000000000000137bc0fccaab13923f84568390f6aefa9196a6fe7b297f541e70051016fe153780000000000000000000000000000000000000000000000000000000000000000339d0d4d0e435170fa0d03cd8276be2a77f98662e0d14983f9f93f5df8d1633000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001262d56b50f01332bf2091ff8ca8974beeeff26a7de49cd6845face6de868e49a059efa75a99d314ac7e112966c68bef66639555674fb743cda201d0006fddf940ee2d718dba3d2c0e9fb7496d83c29ca835758f1a68a7e328107eeefc2a6386402491972a0a46d36e51fef75356ccf64fa2455296f3e6c7ad2ebc9a569a6d0b93c3eb696d239418abd665e2024739c1360744c464563db9fd506fee08dd698ab1bbbc4356548b3c004b57613e391ea038bbbd00c9802dbd5405a0f74475967611461a66da9fe325f8f731378f355c8b87d9af15c4f0b1518822d426dfe4f107d026540da72d1d2fa2f1adabd99277622f2e1514eebacce0a7043282bfc0e37441ef3c52013dec7dfa0a29f051baa17e1794e684a4900f2464b296f4e50b2c75129c02968955c98b4c06eef3aa08ea5cabe2452d6157b60515962be6da4a884261e077269c8d261a1cf61801702c3aa56f5e256679d8094d796014c4525b7390927a429d3ba8483c97cb451d7ae587a4eda0ff3ace4c6198856baddfa9f90dad6109454259592027c6cf5644a5d02ea129d9399ce489991c269f698a79313d94000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000109454259592027c6cf5644a5d02ea129d9399ce489991c269f698a79313d9402077dea666d302e9680c24a43d9ce3ab1eae47ce663b20eb61b77c8bd965303b1f882159992cfd1697f3db5bc2631c550398512da311d8303775b461269acfc622575940021f0e8f083cb7353410725754da350fec8db261b63b0ce13ef9f1251da8a6bffde0f170f7c348cacbef8da8cd6c63ec1cbf46b9e2f2240bc1060edc2bb4be400a9b48cb292f940a04523bb463b5d7578c2a89b15cccde8c3ae1b5b7144b41bff564b734d6d06bf5fbadc44bbe90c1a47d226f6a3c605260c51e4a4a1a87b74035086bf7cdede432159b2a858bb969c1a0edc5240478c5f626688c90257848bfcaf7940832121bcdea64d57a968d2f3a685f33f794b46af6d99773712077dea666d302e9680c24a43d9ce3ab1eae47ce663b20eb61b77c8bd965303b1f882159992cfd1697f3db5bc2631c550398512da311d8303775b461269acfc622575940021f0e8f083cb7353410725754da350fec8db261b63b0ce13ef9f1251da8a6bffde0f170f7c348cacbef8da8cd6c63ec1cbf46b9e2f2240bc1060edc2bb4be400a9b48cb292f940a04523bb463b5d7578c2a89b15cccde8c3ae1b5b7144b41bff564b734d6d06bf5fbadc44bbe90c1a47d226f6a3c605260c51e4a4a1a87b74035086bf7cdede432159b2a858bb969c1a0edc5240478c5f626688c90257848bfcaf7940832121bcdea64d57a968d2f3a685f33f794b46af6d99773711dff3c5197fd00d1d0a0de7643244f7892ab4a9b26b3f4238af227929b22c07334ab22fea15d89c74a4ca0d1cbdd19b18c8dc4699b5e6d44a70b9e363033d8120f8754407db8e589f2df6fcd835c20166f375ddbc3fa7d6b8b38ce4ead63de951dce4c6f48ec8fdcf23310ea6da276bfb61cc5178c8d13637523cdc2874588e93b512473326dd17f630cf4f2bdb98870473ba57244f5f5298bb9bdd6748394392597090cea89eef236171ebdb214b1c2392c3e8f57a638e0d8ec29a89dfdaeb32129e1b09890a4e68254dec50a8fbb04d793377007221f890a8244a869bdbdbc186ae90f1118add7e77c4b14d730ddd639dc8732d6fdd5accb45a761eb123eab1d8008be35f89625327893f97e4b5e1820c197976d1ed3b55b900b33df3fddc40888417657eb9741bfc8a8cdb43839fb0baad193af6f201d97463a722e62175534ab22fea15d89c74a4ca0d1cbdd19b18c8dc4699b5e6d44a70b9e363033d8121dff3c5197fd00d1d0a0de7643244f7892ab4a9b26b3f4238af227929b22c0731dce4c6f48ec8fdcf23310ea6da276bfb61cc5178c8d13637523cdc2874588e90f8754407db8e589f2df6fcd835c20166f375ddbc3fa7d6b8b38ce4ead63de9528e42fd61415d882d055e82cd77eb192c69fc75d2f892718f84bf92b043ae3720c5f12f989dda461e547a1f377eb478b922cc5bcb14d4bb84c255de8e0ac4af810a20878ecb59a83c17a2b5f3bbb6c6fbfcb15648e7785550dff15f9a73d202016c7c1d7d7b729081c8171b9b81d9d265fa97030458f0ca9e74c52b39ddbba890e94e7f01ff81d440df5b6f00791a84d8ec76f31125a15e5654c80135ea001171bac9295417c4b85ace3098a22411c4a6f70aa5b9917c831b226e335142dc6e0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012e8478ec4916e73e4bf6142c978d1d79f72219c72ce93d6dc5c6b1a36cf05fd017c2a7bf33ab8382881d10885e4f0bce501f0cc53ecd61921c6d4819569a1c802a57c15a31e87682b86b574c93d45a2441d81bbdb9499866a08f9c9f247b7775286eb773b499d50f39ffe837b7b79fab1335b995ac28306ab62232d01ade4b3427b3f512a0198b323b05b42bf55315f9da1c98b6f97599507a7fed3c02cdffe0211b9172c673a1c749a263ad3f453243d01fa297dd95fe27e29f71c3c71860c23434581ec2162896ae5d2cff3f7a2f91b3dab94c40e59995ecedb2994586a9111810bf2ac979a1efe19b387f35dd54e5dfa755ca2c1302b263bd1f225a2357f13bcf409782aea10591a5e8afc7c5ea2519d57e5522e9dd39d5bcccf431f7bc5822cfc37efc0b5475705d8d51c05b24b7cb2031090fb397c1daeed6c6c0af561237f35bed0a9a93caf6fabe19e1e4136caebdad1da9c212fd1806199c6b09d6623d5437437da5254b5b89ff00c6e2e04699fadc7fd946c291df65f705b170f5c123c0808cc690318011f3686b69d3548cf4bc3f1288e8475ee84fb215c77eb98421eb1bb0bcc6b3eb3a2269834748d018db360b01f95e6701046c7829fdc95a5b049b12ad6c2c418da5d472b7ebebfd32e0cda2babeb9b3e66e376fe30d6348bd23e3fe84d0d828808ef96c70f70816b36bc811c54869ab1fe54f0f14911ee6f41c77a3bc00b4dcca9782a5568097054c102a06552d5dabdd619beeb0ef261d10365566966f484bcab526ae5f968222b0ee6c8209f9cb12a9385bb890388ca9883ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f620591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f620591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd62dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a24814e4fc4db6a41252ae13b604cfd91c0e9402633f45edd20bf70694bb1ebd40077e5fb96e4c541295b118291d98c7c81fb25e82959ce50f0f6e2140dc9b6cf1ec7b10604b385cb2749eb87d33d0e9beb216c2e4fc1d6d54f8797f55c1538f811a5d0d13ef2f7fc6bd8b0affa92f4cbba751a6012855cfd63068e53b1e7ea321ed9c17cdb69ace7a3d401aaa2df7e5a9b14849af98f7611c4bdd3533d1ad60a3267f9262df888432d1ecc40f27a38cf9db65ae4da4bafc18877223a13a945533ce554ec5c7e4eeea68fddfd0fd855dc8e1253cf4bfc7aa51318ff0adcfd61dd3e70a184511f6011b0be0e0136a08a5a034d05b4b30d2967b136e746b880657c2dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd60077e5fb96e4c541295b118291d98c7c81fb25e82959ce50f0f6e2140dc9b6cf24814e4fc4db6a41252ae13b604cfd91c0e9402633f45edd20bf70694bb1ebd437c73866f3de54d1573a852ac7d8973b09376e92d5746f8b39e7e8b39428a5b715c5b97e9c8eecce1664fc3d76610ff2cfcdfbf119d0e88e8b8ba21b10fce3f40abf282cc046c682e4b9d780d031027b9841844676d3eae5eb5d39245258d5c918ef4abe7e5304886052e2051ad306821f537f7bd04fb30512cae350ba6cc6dc3143ae19d0765f8251ec9caa175eff551accda880f5e36360e24433000b6e907306daa5ef60afc60ecf3f28aa368f5ceeb1e87a3dd0b629fd57021d85a9211cb000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010e67867b245d9150d09cdaffac183b9ef0c7f42451f3e9e217eb6ec72af21c03248f4e3367bfe80f66b6d262599a4d12230166ac4d7eae65352e86c20ac48f4b2a6f5f497b5d6fe8faf81383a7419ee815a531da38edca7d2ff417ddad78934d1b8235b1a37a457a455cfc398d7998ae5ca0009088603447f6f18e317194d6902e7cb1465bbda547125bf468c1e912cf798434f03c2fddd4046a82603923115736b9c145d8222e25c8e5461b05f5bbd20c66fddf46913a66e18fdaa62d109d0509ead7496b1043ece7441745aa35ee44d075a405d577d223df2535911233948916161ca582134fa61030d568e3c49e3c8968c8cf6acd8172391717817f5f82cb2bec045c26efacf09675a4f279d1876192d8a6ecad3fe109f8db1bc5c4039e9917c583a34f02107a1d1bcf887e1b7d2a1a220c53f15a44d700121fb578688cb416e0415e4ce7701c4ffa85a0569e4eb7184f141ab43aafea63aa03f80b8e44be3d24ecc00c9d4934b84bc448d3f535c1194e6c5ea08f4c1abb8220c95687fa0e1caf71b54cc10afebb0caa328015f6759fa22635e0cc2752436f6cac08c6a77528fc2a883695da6c910927bc31062e30305023dea17a870da94cbd93bc816c6a24e42939c12b45fc12b364cae2422d51ce52df86b26759c33df2cb318d0d347623f0ee907659754ac17a2c1cc1c1e2c476035e71c9c841cbf7c5f0918b6642632d18359828e53c67b967d69ad2a7270dec9daae567d8e9ca879251fcab7268af3f92fdbc5a0001e6241ca7088c395c34ba9938eb196dfcc50135060e6b859ddb00000000000000a03b036c39f2589940d9a6743c1418b4879ce7859c4f2518a068bb32e0401944c41f57c06976ed774702aa04f6b92fcdda85f30babce103befcef44ce82ea7bd5b131f073b7570fc274fd4b17ff8a98d35f910f8c3edd2df16480ae55919b75cb13fc710c020dd3d1fba1d87cb360f35a36f2fbffb1fc47d947aabc53cf9f089663b149a1b7d09b5262e1aa978cd4ee289328da0417fd4e0b3472fca33c284e964052b7f762dbb47271f1780db308b8fb406ac40d49b3f077f0679cb8249e72e9e152194e7eac84e47f18a33a9c9c9ececa123bd6677849483cd3cbedca5ea95253dc48313ab85eaff186805a164eed5ecc71cfb589612c826f579ebb96dbd50f221730be45bd676c98de619132b53bda262a17b5dfee8171a0c25d5d271634c6634feaa199f323fdf443531de0f93ed011a9699f5309bdeb161387719789f236116a00c9c7c67425c8e54924dfe911470404442f174b4cfcb2ecf52b8eaeb49063c460b5f19e6f6ea7b9da6fd3027ae6927fc75cd98e28cdf93e757dd28bc9d1122f0ed212e5a81b165450ca6a135be40887e96bfe0aee699bc6f5834e8bac4903d931e63a746224008556489c7a698715588e6027a0030c23ed92bf8af97bd4101a9166a2df9cc86c6a06d62991b5db65e1041b6801ab67b622182aa8fce0561113d019168546cc04351cbe8959d6522e7e9de0c842fad13c767f6fe83d9e0b506c381c30e37f49824abf80c93ff74fceac74baf1dd186507cdfc0ee65faca5a0f00a2fa779a1ea61fbf2027dae7be132dbe99f3f652112c960d06bba69c3e420124c05a33473d2bbf459836519623f5279d733a6709b8a39adbeb10f62d785211c157a16306fc1b4aaca114dd229ee41e5cac889d40aaeb8ead8e981d7a6dc4126ca8cc51acde483c132874d3fb98002f4967128899c455c2cc7dc477b8e53321d2890f993ade2a837bfa4fb855e93e3fbb397d5a30227760374e0eb0313f9119f2acc069775c245bd4f2509d1e736c268dad18a5c8e332446f76db773e076438f36b3b2cd6dd22ae1d46fa919a4f6d41b30ba667ce79787e4733ba9c69deb3179f8458f5af6b13be67cacd5c13f4c8d0c184654ffcf2f20ae5a85d769aeae50f108adb7234fd09e136a23b41a707e8dde19947f7ff6b3c667f618044641b9004724bc3d9a53559826ca8a5bd089e742216b38072be34f4ba2ce85ccf52da710e73cc37bca903ed878590a571b0246523e36c42918c2e9a6f5c914c44550ba53265ad49b64b1982609c9ab8853b8d3eeaca2c640e2e174f2c0e1e4890b5335c277bef8a22511ac63c0fa4e41ba54c6add31285b9719c943a11a09716665c8463fc710c020dd3d1fba1d87cb360f35a36f2fbffb1fc47d947aabc53cf9f08966131f073b7570fc274fd4b17ff8a98d35f910f8c3edd2df16480ae55919b75cb12ca6d48f504c3aacfcd3db833ca65f5d0995c18cb39bd67f4d3a2f713912fec1065b02b0ec0fd5a98447f0beeddd35dd38de0447322441936f2bab9bc249485019a7dee53a33f1038e1cccdf200d2e00ecbb340b3a76847bea2659879f464d89393e39165c1a48437bd56c6c0eab94d87b8584b3d320d82ed890510e7461988e32ce7767ee05179be59fb848c9b93ae22bb73c2be7ce16c04ee75af4a3c090ad21f6de687cfdae6d14e6b8c67e02d47e5994de24260f372d217909edf915b5030adbabd9f4f70fc6410b65a17e768e5ed9e25575cf8d4509295811b88e63b1d3080a6c21a1572980c8e6d3a9b042347a6c17ca4d34bd1e86003167f085443443024294ea2c6d028fdffbf615ccb92483a2293a4a84eb274d4d8bcca54d77728819010f286edb4d2daeb0f1bb9f82b2044d90d27fd23db55d5ddf1e87f1b60ad4384bf1896985b1a05f2e2604d3461d58647248824dff9462e74beab00c6ecb7c1a9a26722cc887a6aac413465b72a58103ce703cbf97c847db6abfe607391a9b19ded7dc4a54abb27228d6ff8ec2ec2d9dbdc58f6043e0b74eeb879828b4e1ca1a1dd8094cc89cd0b9a1b77be18bfda0f197a6663dd8731dcf15594730bb03f43dc48313ab85eaff186805a164eed5ecc71cfb589612c826f579ebb96dbd50f2152194e7eac84e47f18a33a9c9c9ececa123bd6677849483cd3cbedca5ea952526b79bc5b63b185648a6350faf9e99fb8132091aa266ffb83a4952063e539be1371377b3909e75d15e3b38ce83a3176cec6bc799f0923f9f5d3008903d85f2193c460b5f19e6f6ea7b9da6fd3027ae6927fc75cd98e28cdf93e757dd28bc9d1116a00c9c7c67425c8e54924dfe911470404442f174b4cfcb2ecf52b8eaeb49063a560de62c18cc2b175fefeaaf95d64c7f4b6029c7dee4d180a30f67d23051bd3009b9b1b8f426e1215cdf0a6185f969763601d452b3a78dd63512ffdcd8c6200707f2ba2d928a45003ee1c596fa9740f8285259868438be4e6a70465c02bcf60bde254168bbaf0209b3578597be2b984dd1cd697dc62ad0db1f0962b7a52920126ca8cc51acde483c132874d3fb98002f4967128899c455c2cc7dc477b8e53321d2890f993ade2a837bfa4fb855e93e3fbb397d5a30227760374e0eb0313f9119f2acc069775c245bd4f2509d1e736c268dad18a5c8e332446f76db773e076438f36b3b2cd6dd22ae1d46fa919a4f6d41b30ba667ce79787e4733ba9c69deb31d8906b4841a942a3532e61e4ae5fdc8a31b4d75ed793b49b8ed23a15947e6ea23b1eb82816ba04fc2ae066ef8bfc908e30039c1e5f6e8aaf65777e71137cfc5393e39165c1a48437bd56c6c0eab94d87b8584b3d320d82ed890510e7461988e19a7dee53a33f1038e1cccdf200d2e00ecbb340b3a76847bea2659879f464d89063ec7f7f7bee86efd50a3aad598a6dc0c1f018f2d323b7cdc1d79757dd662e612ba5d6caedb0ca3ecff2d532c54dea7aa6fa5b62b882ac44af4e105a8d81d7d1a9a26722cc887a6aac413465b72a58103ce703cbf97c847db6abfe607391a9b384bf1896985b1a05f2e2604d3461d58647248824dff9462e74beab00c6ecb7c3009b9b1b8f426e1215cdf0a6185f969763601d452b3a78dd63512ffdcd8c6203a560de62c18cc2b175fefeaaf95d64c7f4b6029c7dee4d180a30f67d23051bd0707f2ba2d928a45003ee1c596fa9740f8285259868438be4e6a70465c02bcf60bde254168bbaf0209b3578597be2b984dd1cd697dc62ad0db1f0962b7a52920126ca8cc51acde483c132874d3fb98002f4967128899c455c2cc7dc477b8e53321d2890f993ade2a837bfa4fb855e93e3fbb397d5a30227760374e0eb0313f9119f2acc069775c245bd4f2509d1e736c268dad18a5c8e332446f76db773e076438f36b3b2cd6dd22ae1d46fa919a4f6d41b30ba667ce79787e4733ba9c69deb319ded7dc4a54abb27228d6ff8ec2ec2d9dbdc58f6043e0b74eeb879828b4e1ca1a1dd8094cc89cd0b9a1b77be18bfda0f197a6663dd8731dcf15594730bb03f43dc48313ab85eaff186805a164eed5ecc71cfb589612c826f579ebb96dbd50f2152194e7eac84e47f18a33a9c9c9ececa123bd6677849483cd3cbedca5ea95253b1b9a3df31a401394930e0a3be0f651c439aabd68482aaaab52bb07d475661f235d0a7bc8f5f17e9ffe9290c36132a9ebcfbcab3cc479dfad6af3e384cf8f0511c157a16306fc1b4aaca114dd229ee41e5cac889d40aaeb8ead8e981d7a6dc40124c05a33473d2bbf459836519623f5279d733a6709b8a39adbeb10f62d785226b79bc5b63b185648a6350faf9e99fb8132091aa266ffb83a4952063e539be1371377b3909e75d15e3b38ce83a3176cec6bc799f0923f9f5d3008903d85f2193c460b5f19e6f6ea7b9da6fd3027ae6927fc75cd98e28cdf93e757dd28bc9d1116a00c9c7c67425c8e54924dfe911470404442f174b4cfcb2ecf52b8eaeb49063b149a1b7d09b5262e1aa978cd4ee289328da0417fd4e0b3472fca33c284e964052b7f762dbb47271f1780db308b8fb406ac40d49b3f077f0679cb8249e72e9e152194e7eac84e47f18a33a9c9c9ececa123bd6677849483cd3cbedca5ea95253dc48313ab85eaff186805a164eed5ecc71cfb589612c826f579ebb96dbd50f21cf0ca1ece02f15ae587172d6e9475e281008f88a667f82cb84f5174f83cd61e230ccd7c88f79702d3e67edd734364ead88a1cf32ffe5d0d9057594d45b502de38f36b3b2cd6dd22ae1d46fa919a4f6d41b30ba667ce79787e4733ba9c69deb319f2acc069775c245bd4f2509d1e736c268dad18a5c8e332446f76db773e0764065b02b0ec0fd5a98447f0beeddd35dd38de0447322441936f2bab9bc24948502ca6d48f504c3aacfcd3db833ca65f5d0995c18cb39bd67f4d3a2f713912fec119a7dee53a33f1038e1cccdf200d2e00ecbb340b3a76847bea2659879f464d89393e39165c1a48437bd56c6c0eab94d87b8584b3d320d82ed890510e7461988e2855f7268e726404ba1c6bdca51acc0ca0d4a8124bc9db399cdac8a1d452a558032223970a7a385bb3dbf138df00129e330b46c9a2409c9b9c6630d45e8c72652714176e5014af979761acc840d193f2aeed39d81ae24ebab8f3365c6dbaeea12bd2008d463989af72908c82ede72ee6b9537ee6f2b50df009c37439a5ecf7762855f7268e726404ba1c6bdca51acc0ca0d4a8124bc9db399cdac8a1d452a558032223970a7a385bb3dbf138df00129e330b46c9a2409c9b9c6630d45e8c72652714176e5014af979761acc840d193f2aeed39d81ae24ebab8f3365c6dbaeea12bd2008d463989af72908c82ede72ee6b9537ee6f2b50df009c37439a5ecf7763009b9b1b8f426e1215cdf0a6185f969763601d452b3a78dd63512ffdcd8c6203a560de62c18cc2b175fefeaaf95d64c7f4b6029c7dee4d180a30f67d23051bd0707f2ba2d928a45003ee1c596fa9740f8285259868438be4e6a70465c02bcf60bde254168bbaf0209b3578597be2b984dd1cd697dc62ad0db1f0962b7a5292026b79bc5b63b185648a6350faf9e99fb8132091aa266ffb83a4952063e539be1371377b3909e75d15e3b38ce83a3176cec6bc799f0923f9f5d3008903d85f2193c460b5f19e6f6ea7b9da6fd3027ae6927fc75cd98e28cdf93e757dd28bc9d1116a00c9c7c67425c8e54924dfe911470404442f174b4cfcb2ecf52b8eaeb490619ded7dc4a54abb27228d6ff8ec2ec2d9dbdc58f6043e0b74eeb879828b4e1ca1a1dd8094cc89cd0b9a1b77be18bfda0f197a6663dd8731dcf15594730bb03f43dc48313ab85eaff186805a164eed5ecc71cfb589612c826f579ebb96dbd50f2152194e7eac84e47f18a33a9c9c9ececa123bd6677849483cd3cbedca5ea95252ca6d48f504c3aacfcd3db833ca65f5d0995c18cb39bd67f4d3a2f713912fec1065b02b0ec0fd5a98447f0beeddd35dd38de0447322441936f2bab9bc249485019a7dee53a33f1038e1cccdf200d2e00ecbb340b3a76847bea2659879f464d89393e39165c1a48437bd56c6c0eab94d87b8584b3d320d82ed890510e7461988e26aca5b8d5cc815c8bdb40bff5136bb65c4dd63bccc65665dda6871178442f641ec2168d2836e8c0a9c45c140915073ea1f7a75f2d3a127f5a2485c7576c931d216088713d38b145f61e08e24402de1847fa6cd856de9cea5337dac6fc4f722031858f8a5915880113d43068eab5e4c120464be6b6b8bfc06f7ecfcf175873f712ba5d6caedb0ca3ecff2d532c54dea7aa6fa5b62b882ac44af4e105a8d81d7d063ec7f7f7bee86efd50a3aad598a6dc0c1f018f2d323b7cdc1d79757dd662e61a9a26722cc887a6aac413465b72a58103ce703cbf97c847db6abfe607391a9b384bf1896985b1a05f2e2604d3461d58647248824dff9462e74beab00c6ecb7c2ca6d48f504c3aacfcd3db833ca65f5d0995c18cb39bd67f4d3a2f713912fec1065b02b0ec0fd5a98447f0beeddd35dd38de0447322441936f2bab9bc249485019a7dee53a33f1038e1cccdf200d2e00ecbb340b3a76847bea2659879f464d89393e39165c1a48437bd56c6c0eab94d87b8584b3d320d82ed890510e7461988e21f6de687cfdae6d14e6b8c67e02d47e5994de24260f372d217909edf915b50332ce7767ee05179be59fb848c9b93ae22bb73c2be7ce16c04ee75af4a3c090ad0adbabd9f4f70fc6410b65a17e768e5ed9e25575cf8d4509295811b88e63b1d3080a6c21a1572980c8e6d3a9b042347a6c17ca4d34bd1e86003167f08544344321f6de687cfdae6d14e6b8c67e02d47e5994de24260f372d217909edf915b50332ce7767ee05179be59fb848c9b93ae22bb73c2be7ce16c04ee75af4a3c090ad0adbabd9f4f70fc6410b65a17e768e5ed9e25575cf8d4509295811b88e63b1d3080a6c21a1572980c8e6d3a9b042347a6c17ca4d34bd1e86003167f08544344312ba5d6caedb0ca3ecff2d532c54dea7aa6fa5b62b882ac44af4e105a8d81d7d063ec7f7f7bee86efd50a3aad598a6dc0c1f018f2d323b7cdc1d79757dd662e61a9a26722cc887a6aac413465b72a58103ce703cbf97c847db6abfe607391a9b384bf1896985b1a05f2e2604d3461d58647248824dff9462e74beab00c6ecb7c26b79bc5b63b185648a6350faf9e99fb8132091aa266ffb83a4952063e539be1371377b3909e75d15e3b38ce83a3176cec6bc799f0923f9f5d3008903d85f2193c460b5f19e6f6ea7b9da6fd3027ae6927fc75cd98e28cdf93e757dd28bc9d1116a00c9c7c67425c8e54924dfe911470404442f174b4cfcb2ecf52b8eaeb4906230ccd7c88f79702d3e67edd734364ead88a1cf32ffe5d0d9057594d45b502de1cf0ca1ece02f15ae587172d6e9475e281008f88a667f82cb84f5174f83cd61e38f36b3b2cd6dd22ae1d46fa919a4f6d41b30ba667ce79787e4733ba9c69deb319f2acc069775c245bd4f2509d1e736c268dad18a5c8e332446f76db773e07643009b9b1b8f426e1215cdf0a6185f969763601d452b3a78dd63512ffdcd8c6203a560de62c18cc2b175fefeaaf95d64c7f4b6029c7dee4d180a30f67d23051bd0707f2ba2d928a45003ee1c596fa9740f8285259868438be4e6a70465c02bcf60bde254168bbaf0209b3578597be2b984dd1cd697dc62ad0db1f0962b7a5292000000000000000c8000000000000002900000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e4000000000000000600000000000000010000000000000000000000000000002058629123f2d258a72e12ee99888f1a45d6a9ba324e34bfd219e775e73d8ca85f000000000000000100000000000000010000000000000020c0472ed99df8c98e5053970eb2b995e9cc5d45ab50701468216cf9d2b7a47f7a0000000000000001000000000000000100000000000000202aa499dbf9ec8fbcc14b5f1965ed265ddf8ee66d692393ce8fd7241342b81ea20000000000000001000000000000000000000000000000206c4baf98bc80c1abc6c59b8e82f4c2dc23405a6bc1abbc273de0e45984ffb9a00000000000000001000000000000000100000000000000201b96bf994f53f651394f15f5db116e896fa1ab44efe0a6262949e96de58bff090000000000000001000000000000000000000000000000202fa23e2d798b08467838b865973a53e4e19c5b2d80ade19cbb180aec56a9376e0000000000000029000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000000000000000000207d52a1ed95406b53b8d027c776a331c9133187017e9eaa8aef0f41263358ada4000000000000000100000000000000010000000000000020e157ddeb32319921e86efbf2a2199b47e232b751f0c6d0686f24b376402c52ef000000000000000100000000000000010000000000000020590a1c067f1904c9d81311a9eccefe8cbc9f2ef64f32f64836b95d9898871bfc000000000000000100000000000000000000000000000020afbf1f71bc2124f671aca446e85c5b2a26b711122acb80fefe81dd090fdb8e9a00000000000000010000000000000001000000000000002046692d64e298cf42f3e0cf09149e8b1ba6093100c0f4d1501fee627da591f20e00000000000000010000000000000000000000000000002072c42711719626fc8bcaf082271589b458b73b63db94ea53c13e43ca03482214000000000000002900000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d0000000000000006000000000000000100000000000000000000000000000020519b47e936fd7dd3509bac59d50c2f5d00349fd7b18b600682a79ef8e9dde9e900000000000000010000000000000001000000000000002047d66bc3641d092be7a62f230786289855e9d04deda0ea41711ebbaec9dd4b2600000000000000010000000000000001000000000000002083de1dd42585e79045ac01da3006a3e8ee12391cf0548c87088f09268f2f6907000000000000000100000000000000000000000000000020463fbc9d5384e010009b169ceb3ef07bf1aae15d890cb1f5c86ec0fc5db6441a000000000000000100000000000000010000000000000020b865081822324014a2ad2adb025c6233367d552e7b8d5c65dcb3c00b68fdb2770000000000000001000000000000000000000000000000208b04487c0e92a27b8ce6e22f25723473ab966eb251464fa6d919c39ac29a60ff000000000000002900000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000000000000000000020fa0f395ab9bc7ab5106727402b0ed92bf23b1512aafcaa97d28e06a231cae72b000000000000000100000000000000010000000000000020b5a598bf5cdfea2c7a80873dbcd171f6409727492db5277d4913905bd327383100000000000000010000000000000001000000000000002072af80d275908afd7b3c050fc11cd485ccaf9b974e2bf29dedea8e9063ee262b00000000000000010000000000000000000000000000002059e0cffb1b66783ce400ea9e93bbaeaf0fc9283c9cfd578c65daa4375f5e01900000000000000001000000000000000100000000000000201da2e84c157ae73f74b662421f72dc7af8ef5d8001e6e962a5538cb1a53a8321000000000000000100000000000000000000000000000020a00b07acea464ec37ab41d5472f9101cc13a3cdfaa5f141199b9dad4efa0ccc30000000000000029000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000000000000000000020a8e4daa8548af23f485497cdc36775580929300da1b73351dc656e5b0382c07300000000000000010000000000000001000000000000002051947b9a7065dfad8b041b1bd1f198b163cc4de9a92790651b8242d8a3c4bad20000000000000001000000000000000100000000000000208715bf4aa5c6570da98e62c31a38256c37e95853c4329fbf12fe2809f2cce7ae000000000000000100000000000000000000000000000020d2ace2c01e400a2af009a43598dd9e34d359aa6ac5e1e4e2607befbfd9a370180000000000000001000000000000000100000000000000209cabf053781e02384f83b3ede75bfaadda9578d1f80727f379b0adbcf4e706d200000000000000010000000000000000000000000000002078cb1457e1c5d6fa6b6138eeb2c7dfa980dd7fa53f0e6b7e1e5bdc43f459f12c000000000000000500000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e40000000000000006000000000000000100000000000000000000000000000020990d893ecd772d12e9fdffb40e63753b32fcc51d4f59a555cac87e8f8a6043c3000000000000000100000000000000010000000000000020e7a919c08bc1886b9f34ef01145d0fbc9283cbdd10f9c9a6df5f218a9335e593000000000000000100000000000000000000000000000020a0b1b5fc08c2e02f83f2f726b41a2505988e2197135ad1552cb352ec42efe3ee0000000000000001000000000000000100000000000000206a3d92b216e8d40712b4abc94e0d246cf0b1c2a650d3b728de1e144f5f135dd1000000000000000100000000000000010000000000000020cf7596a2151e6ecd0152bcfa96e547a86c616698a13eb311a31678d998a719af0000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000005000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000000000000000000020c8826e33aed28fd2c1375abbe11a76f9c603f28fa38275f3aaeae377e1be2acf000000000000000100000000000000010000000000000020c271469aaf67f254fd6d69e57975f51629fbfc3fb7b1bc0a9cbf0a8aa43a920400000000000000010000000000000000000000000000002073d36898ce02b74a10c4aef7a02a948616b5a7d0b174648f8ea70a30ae33c754000000000000000100000000000000010000000000000020012e51ceac3da1ee2785f84acb427d436432958c56fa02ff109defc16f64c3e100000000000000010000000000000001000000000000002031809213d4a7c0f0b7fbd21766c584377ac625d92403fd3c2e9421ca27c907db0000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000000500000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d000000000000000600000000000000010000000000000000000000000000002022e0bb4373d41696cc13d575e304948c004602bceee1df3d4e14b3294da86544000000000000000100000000000000010000000000000020d7692edfdb30d05016809594198c5437c534ad44354aa7223798a174037f47fd000000000000000100000000000000000000000000000020df64ba374100bd613493ca498420eebea8b6233d2c06bf756f9d2aaded4e0177000000000000000100000000000000010000000000000020c784e893e97965d1954bf00e2fab7b72fbb7d86352817409c7f61f9ee3d4be25000000000000000100000000000000010000000000000020ca05ed908befc970acc53cea33e55589e5965d8039c9e076f7ac7b36a36f6455000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000000500000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b32300000000000000060000000000000001000000000000000000000000000000209aca73648b728f0b18bfc2631867994acfbf68ac16b6844ee25995bb4c868ce5000000000000000100000000000000010000000000000020673319709a01475957ab85f17f6906b688c87bbe9cbf6be0fe391e55c49cf5580000000000000001000000000000000000000000000000206f2d3cf07495881ebe39657368b83e6af33701bf95947c06cc58dae5400eb216000000000000000100000000000000010000000000000020429ead810e13405c3b60212aa5eafa299f1430976011b3956cf9ba62ffd1d91d0000000000000001000000000000000100000000000000206d6a12b490e789e5e3407255a61b3605485fc28f4ae6697fdbc41f4a62ac030e000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000005000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000000000000000000020964613cb5e3b9cd3060439c13370a0b642bbda9f45189b6ae8899e5efe6a14130000000000000001000000000000000100000000000000209bfc3983cf43dceb48e11d90c256d5fc5afa7bb45818c6b058f83285ede9cd890000000000000001000000000000000000000000000000203d7a086bd38d4b04c47ab69c98301d88fcf9f0231ec623f6867e04d98ab06e37000000000000000100000000000000010000000000000020a36932769c7f9a976b385d2c4064689e893729c460a7115012784ced44d4169f00000000000000010000000000000001000000000000002010edd26513dde9e2d4d9edde73c0914d7c3f4f5c44106edb1335190bd6a8675d00000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000003000000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e40000000000000006000000000000000100000000000000010000000000000020ff2ad6a074e79edefd8e3c95c04cb3127b34667be675c250f91d2c0f0e273c3d00000000000000010000000000000001000000000000002031821516bcdf7998ee06c8f241bd90e0d6b6bf38a228e24c1af484501fe172a200000000000000010000000000000001000000000000002002988dea686d413839659267ab764d4c76addd0c300316526c335ff617a319c50000000000000001000000000000000100000000000000208af6dbd46e837507be222c82ede0029250a5e53a9cd518f0935fffb99bb12ea7000000000000000100000000000000000000000000000020821cb4e5ed60f8ccefe58fd9ac3136abe727ed631fb9d4a33cf4415e024f9f020000000000000001000000000000000000000000000000202fa23e2d798b08467838b865973a53e4e19c5b2d80ade19cbb180aec56a9376e0000000000000030000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000010000000000000020afc82c776c120bf2a2b5159114c58acc4aa315366169a3a0e4e20d043faa09c30000000000000001000000000000000100000000000000201fbf7fa1d2af583363d72c05f4e59213b5effd0e7c70ee969c104a58c008083e00000000000000010000000000000001000000000000002059a733cc0ae55d2ed3aff8f2a001e62d0e11d7d789664610f47f3bff365739ea0000000000000001000000000000000100000000000000202fc72a740ecbb1b330d4eee963085e5afe7bf5218d75e2f6d3eeb20efce57503000000000000000100000000000000000000000000000020e9da22de8ef9950c7c8ed7994a057a53da129fef638def79baaad47992e89bce00000000000000010000000000000000000000000000002072c42711719626fc8bcaf082271589b458b73b63db94ea53c13e43ca03482214000000000000003000000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d00000000000000060000000000000001000000000000000100000000000000206a74390fe294c195cc89d68fbda15ee86ad3e15c293fbacb93ecbd91953dc902000000000000000100000000000000010000000000000020bbd0374a0d0edaadc6eaf34295366e761ea3c67574c4b7004f34d8044c02e44e000000000000000100000000000000010000000000000020d359b856a918202e2835d24df0d6b65e33afd2de9cb50af3fce50a126cf613990000000000000001000000000000000100000000000000203589e38940756f57b41d7b13fcdd382ec64fb407a8c7f1a2c95141f36d7fee6800000000000000010000000000000000000000000000002030e60438b48a10fa93ba2b2271e743883ab2776244e2b3e7ee271ed6db1f2e530000000000000001000000000000000000000000000000208b04487c0e92a27b8ce6e22f25723473ab966eb251464fa6d919c39ac29a60ff000000000000003000000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000010000000000000020b148b00327df3273c96aa9f6404e9ad5ca80ca3b2973eb8c98afc05a0085df75000000000000000100000000000000010000000000000020633a45788131b5c50aea804ad386ce8bc8712bffc2584e8b3d7dca26668700c60000000000000001000000000000000100000000000000209cfb9bfb1d5055fa0419973bf7445a150fb5b8d951827f1a57ded35cb038bc1a0000000000000001000000000000000100000000000000204574ffa0b5387faf736ccd8e35a85b2364513eb7b4efb4065cf069df5358b51b000000000000000100000000000000000000000000000020ef7f27ef0af7f3384d95dccf464f81b3ada2d68b1c7b4e875db629973a25da5c000000000000000100000000000000000000000000000020a00b07acea464ec37ab41d5472f9101cc13a3cdfaa5f141199b9dad4efa0ccc30000000000000030000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b300000000000000060000000000000001000000000000000100000000000000203716fec60db85f903061b2944babdcc3b47bad31f13acebd8cfe168585199b550000000000000001000000000000000100000000000000205d9d1935ba1899bbbf58317292518cd70fe480a1ab392a921a8b7e90de63376d0000000000000001000000000000000100000000000000204ca5a5b6ed82f63497a18e8e2e47203e7381c9e0f82f25549bed96e8a415c9ec0000000000000001000000000000000100000000000000208381a643e47a93238bd65404deffb2a516ca70cdb3c14626ec7194d84b5face30000000000000001000000000000000000000000000000205d37818349b6a8b2090fc629ee6549964519ab55586df49d7740da0a7f06a2f200000000000000010000000000000000000000000000002078cb1457e1c5d6fa6b6138eeb2c7dfa980dd7fa53f0e6b7e1e5bdc43f459f12c000000000000002400000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e40000000000000006000000000000000100000000000000010000000000000020cc89ed7e96eb511c33c6d9227ff9cfc0d9ba8b5852b848b642de0179c0cc0100000000000000000100000000000000010000000000000020cbe64a56e4d843ebf1f53cb31790aa9e70002079b4fa236cbb68f50881cc158e00000000000000010000000000000000000000000000002055c308be9438db42c91d1431d01b869ac37750ba0513a5170220112753ea0a6d000000000000000100000000000000010000000000000020a5edd8ba3a02c79d2a439b5c19c698d48a65e1da6ea81f91e95da0f3870facfe0000000000000001000000000000000100000000000000201b96bf994f53f651394f15f5db116e896fa1ab44efe0a6262949e96de58bff090000000000000001000000000000000000000000000000202fa23e2d798b08467838b865973a53e4e19c5b2d80ade19cbb180aec56a9376e0000000000000024000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000010000000000000020d1be6851b44a9589b1e8dca30dfd175d1c3bf8269326d4baf8fc441997a4872f000000000000000100000000000000010000000000000020180fbb0ee992384fded4a309443f6a9a42285cb1dd7d90cf8797e07006750d9a00000000000000010000000000000000000000000000002094bfaa799c5496d89c7fba1c0074bf53e44026b1e3dfcc51a0820cda8b8b592e00000000000000010000000000000001000000000000002091ef79e3954e71b043bab2f4f7563da4ffcc85b3b6a3abb402389ce312ae3a1b00000000000000010000000000000001000000000000002046692d64e298cf42f3e0cf09149e8b1ba6093100c0f4d1501fee627da591f20e00000000000000010000000000000000000000000000002072c42711719626fc8bcaf082271589b458b73b63db94ea53c13e43ca03482214000000000000002400000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d000000000000000600000000000000010000000000000001000000000000002071ffaeb9885a750e231faa692c4d8d1c0aace7c72c3f6b8619faf19ef418a6610000000000000001000000000000000100000000000000208574500fe91c1384c1fa73cab259a718b780095f61c469cfe154e83e1f6d971b0000000000000001000000000000000000000000000000205821e6171d155bf5aafbdc8474a3a9c33f58e247c6f3c54f71d8c9caaf009eb800000000000000010000000000000001000000000000002013307d874fafd2c736df4f1675c3fc7573fd05858f421470013ba3aa52dcdcac000000000000000100000000000000010000000000000020b865081822324014a2ad2adb025c6233367d552e7b8d5c65dcb3c00b68fdb2770000000000000001000000000000000000000000000000208b04487c0e92a27b8ce6e22f25723473ab966eb251464fa6d919c39ac29a60ff000000000000002400000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000010000000000000020800642fd8b281fe765779764b969c0469953b1f145b09fe722a523fac89a593d000000000000000100000000000000010000000000000020fa5e77b5e61842f96ba2c55552ebde460a535e5cbd00cbfad9862e3cc944e380000000000000000100000000000000000000000000000020c05b0bfce2b5cf26286b63fee5b1ce52f6fd2d6f3b79f0407ca7ced961abd5100000000000000001000000000000000100000000000000205333dabae5459fcb448fee6926384a3bafc2af8b75f276339e9b28108bb4995d0000000000000001000000000000000100000000000000201da2e84c157ae73f74b662421f72dc7af8ef5d8001e6e962a5538cb1a53a8321000000000000000100000000000000000000000000000020a00b07acea464ec37ab41d5472f9101cc13a3cdfaa5f141199b9dad4efa0ccc30000000000000024000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b300000000000000060000000000000001000000000000000100000000000000204a59681bfc8b7f2ddeaa99aedfdc7e5e70701ca7badbe758a17ae757dbefb30900000000000000010000000000000001000000000000002038d401f7d334e803a12b1a1837a99bc9dca4a5e0892439c48a1fc4763fb2fa970000000000000001000000000000000000000000000000200953edfc6e8ff0936b8105e6357c9590e4f20e0497be561dc97db9d13e014c0d000000000000000100000000000000010000000000000020cd1cbe0f3f5a57ed48862a459d119ab55aa7fbf2685055ced90ff45d1e7cd0720000000000000001000000000000000100000000000000209cabf053781e02384f83b3ede75bfaadda9578d1f80727f379b0adbcf4e706d200000000000000010000000000000000000000000000002078cb1457e1c5d6fa6b6138eeb2c7dfa980dd7fa53f0e6b7e1e5bdc43f459f12c000000000000001100000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e4000000000000000600000000000000010000000000000000000000000000002038da13f950a83e854140aeeb8d7d855365d1831db0df3ca1812646285f5adea300000000000000010000000000000001000000000000002028d67512ee7bfe65bfa26a202678bc24f81966e94f128ba5c7682a6b24f6f9d70000000000000001000000000000000100000000000000200dbc62aa1c5a2b5774146ca475f9016fc2bc6babca24827b52d365f3e31a52ef0000000000000001000000000000000100000000000000201796429c8b13ebc59c2f83b796b3b926978c70fec3627c1ec454c8494358fb2d000000000000000100000000000000000000000000000020c0476d0bd1bba12844993b2b90c4d4e74f42cb95a863a33400c0b3ce5d7afb970000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000011000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000000000000000000020468f06c1f236183a515105519fbeef0dc0cd6bdc2e55b294879adbb55e868ace0000000000000001000000000000000100000000000000201582706b99d3c6b911e67ea7d6a34e164d24dbad32d8fc939431adff95f43354000000000000000100000000000000010000000000000020871dc37c07c58b6181062c00bcd94fc2658b4211db7080cd968a495924987ff100000000000000010000000000000001000000000000002085b5145a72d3b5cc42ebd3887f2b0d8b066dd487afb89617f433386cd39ad32e0000000000000001000000000000000000000000000000201f243121b9b86ee340c8e4e148b031fbfec331be88bb0e695bd3254fd9dedc460000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000001100000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d000000000000000600000000000000010000000000000000000000000000002071c424fc59ab1b8a34c74ab53b07c06eec015e3eeb5567817b422ae6bc33384600000000000000010000000000000001000000000000002006bc6b416a0465feae1ad27e6ca615523d4da0c02f918ef1751a813d86df368000000000000000010000000000000001000000000000002021ed4d241d7ada67d897e5648aef0f3eb362a70c914a67454c5bf7df12159d390000000000000001000000000000000100000000000000204bbee7125d792587a9c1a2f857d5319e703fb6396be7cba35871f693d7de4ce00000000000000001000000000000000000000000000000207c9185dc31c96b43974def3ef513a5c2fa4019e8f4cd70c66e8489740340b2d7000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000001100000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b323000000000000000600000000000000010000000000000000000000000000002016ce4572b86ff54f0d0bf0fe24c081623e0493047e14e77dcb9be223881833e2000000000000000100000000000000010000000000000020a8080a1341ad590ef497d2f6fc4865a8b9df88c008d59ad6170ea9fbd0e512110000000000000001000000000000000100000000000000202cc54ec7a922ec427d47d576af2ccd9d172c897ec669c55733377e0c6be061070000000000000001000000000000000100000000000000206c36dc888e2b9eea00e51c0910ca1a39fed4c567e353a843c78f1449b7b894ec000000000000000100000000000000000000000000000020c261b56a4b700b9884a920f66b25b3f4e5b6af88658d82bd2b16f6956d7a628f000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000011000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b3000000000000000600000000000000010000000000000000000000000000002086844284d373dca6580bcc9d6581b82472f1d97b9d19145a3e120a6d2aa7a8470000000000000001000000000000000100000000000000207a02131c7ef5ff047d998919008ec2176e361ea2b623572273bcb0bc7af6fe6d000000000000000100000000000000010000000000000020d186153ca6161b9936121d74b366a8a3b767ad338e41cd240ff4a14c033065fc00000000000000010000000000000001000000000000002057d66fcd5a6afc7d65bf36d032fddd74693048af41e04438e66c2fac0f88b93200000000000000010000000000000000000000000000002031c46556a8536b0d3fe56fdfff2cfb21049ba3d5264152ba04673f2caa7e535700000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000001f00000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e40000000000000006000000000000000100000000000000000000000000000020aea0257863e10318831d52f58d53aabe9f4e5ce827cf72ebf7c21cfd8e530d83000000000000000100000000000000000000000000000020f08a8095a81b042559c277caa120e67c6db10f76a1e996e9d6210a952f768f670000000000000001000000000000000000000000000000203c9b84ea790b2a2a39d9611d6fffe81b8f6a4780bc49ceef9d562efb8bb0e3c100000000000000010000000000000000000000000000002025970c30f2158b64f6db602006cf8ec3088a6951235f1463b4ec26472e7bf04e000000000000000100000000000000000000000000000020c0476d0bd1bba12844993b2b90c4d4e74f42cb95a863a33400c0b3ce5d7afb970000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f000000000000001f000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000000000000000000020ef2c1053a8eac5911150c672e5f8fc18606781dbf3f5fde508e9a9a948e5cd660000000000000001000000000000000000000000000000209ac57aee00b058ea0cd83781c86a1015291ec82b4b2210f70d7901cd6c310e0b00000000000000010000000000000000000000000000002023d97489db03b380974b7d10e10c0a8f85c4800f21e95c23e7827615a90c923c0000000000000001000000000000000000000000000000200c4338e456e8a386ea42ad72cd73d95178039fdb76ee7e286661fbbf95bb3b040000000000000001000000000000000000000000000000201f243121b9b86ee340c8e4e148b031fbfec331be88bb0e695bd3254fd9dedc460000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000001f00000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d000000000000000600000000000000010000000000000000000000000000002052fb9d8cf82b849d3cb1b9ef6cc42b63b642c872c76a2b6b241def6417ee88a30000000000000001000000000000000000000000000000207b9939446a1c36b2743389f20671740aa643050f2062f919c75d4ec5eb152be600000000000000010000000000000000000000000000002083b89a63fb02770e2f72bbc11c0bfed0438afe2b97dafc63d6b272c56e3f2360000000000000000100000000000000000000000000000020a978e635bc01e37323e8daa22db845c6f4b65dbff8aec0ddee43de3cb433d5d80000000000000001000000000000000000000000000000207c9185dc31c96b43974def3ef513a5c2fa4019e8f4cd70c66e8489740340b2d7000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000001f00000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000000000000000000020d37df8c81436203bdaead4b93d64c239ca30f2778e3f292822f30a6aea67342900000000000000010000000000000000000000000000002075413072637253ff050faf3a568c9b8a14ad4613c28e3bd7790ab9dbce3d7f090000000000000001000000000000000000000000000000201480dd9071ccde4a4f721bb5a64cbd7ecff12cfd29018b3d672f16038683d05000000000000000010000000000000000000000000000002049d1d86419f38c5e84555595d210426f3d97ab19505fa1438516e93a0552e041000000000000000100000000000000000000000000000020c261b56a4b700b9884a920f66b25b3f4e5b6af88658d82bd2b16f6956d7a628f000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed000000000000001f000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000000000000000000020bc42ad1aedbf8ba5a58cb2f9480c3e0895e6505ce614ab2b1e622dd9f0a378de000000000000000100000000000000000000000000000020c88770ba99897f3942d7c5126a4d6f829ae6d83aa91e1cef6ce2743b675fb745000000000000000100000000000000000000000000000020a4f30078f6c82eeb23635e8509271f741f7df1496de69591523572481398a01a0000000000000001000000000000000000000000000000207f6c04f2a2686f09f8ed1d6818a1534af529f47bed8bb55dbf5eafcc3ebff42400000000000000010000000000000000000000000000002031c46556a8536b0d3fe56fdfff2cfb21049ba3d5264152ba04673f2caa7e535700000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000002b00000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e400000000000000060000000000000001000000000000000000000000000000201632aaa1ca5d3d00008831d7ddb00a0b7e559c9263adfc06b37775acdebd098d00000000000000010000000000000000000000000000002081d47b65a940129bce279261185fdc142445e7ea42fc847b1732e3a3f0f866eb0000000000000001000000000000000100000000000000202aa499dbf9ec8fbcc14b5f1965ed265ddf8ee66d692393ce8fd7241342b81ea20000000000000001000000000000000000000000000000206c4baf98bc80c1abc6c59b8e82f4c2dc23405a6bc1abbc273de0e45984ffb9a00000000000000001000000000000000100000000000000201b96bf994f53f651394f15f5db116e896fa1ab44efe0a6262949e96de58bff090000000000000001000000000000000000000000000000202fa23e2d798b08467838b865973a53e4e19c5b2d80ade19cbb180aec56a9376e000000000000002b000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000000000000000000020cc3de3a03159d8624a33aa3d781a050ad5afec79ed8b9d7e30455c19f64e67b20000000000000001000000000000000000000000000000205462ee42647fe7f07b153d6d12be88e53621ceda74c8f12c8226be36cfafdf2b000000000000000100000000000000010000000000000020590a1c067f1904c9d81311a9eccefe8cbc9f2ef64f32f64836b95d9898871bfc000000000000000100000000000000000000000000000020afbf1f71bc2124f671aca446e85c5b2a26b711122acb80fefe81dd090fdb8e9a00000000000000010000000000000001000000000000002046692d64e298cf42f3e0cf09149e8b1ba6093100c0f4d1501fee627da591f20e00000000000000010000000000000000000000000000002072c42711719626fc8bcaf082271589b458b73b63db94ea53c13e43ca03482214000000000000002b00000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d000000000000000600000000000000010000000000000000000000000000002064e018bb06bd8190f4f5a2ac9e85385295745b4e66d48cdadbb360196a7b0c830000000000000001000000000000000000000000000000206cf89f246ab28e406d650d1c153e49f92ec9675fddeae1bb665e1febe5bda31800000000000000010000000000000001000000000000002083de1dd42585e79045ac01da3006a3e8ee12391cf0548c87088f09268f2f6907000000000000000100000000000000000000000000000020463fbc9d5384e010009b169ceb3ef07bf1aae15d890cb1f5c86ec0fc5db6441a000000000000000100000000000000010000000000000020b865081822324014a2ad2adb025c6233367d552e7b8d5c65dcb3c00b68fdb2770000000000000001000000000000000000000000000000208b04487c0e92a27b8ce6e22f25723473ab966eb251464fa6d919c39ac29a60ff000000000000002b00000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b32300000000000000060000000000000001000000000000000000000000000000203188d385bd0d8c68b465b67024cc3b16e47c02563bfa664aebfbffe418128ec20000000000000001000000000000000000000000000000200d1df8b3ee28188121c8c0702d8c75ba0962a4441daa471d7e494bc6832ebd5700000000000000010000000000000001000000000000002072af80d275908afd7b3c050fc11cd485ccaf9b974e2bf29dedea8e9063ee262b00000000000000010000000000000000000000000000002059e0cffb1b66783ce400ea9e93bbaeaf0fc9283c9cfd578c65daa4375f5e01900000000000000001000000000000000100000000000000201da2e84c157ae73f74b662421f72dc7af8ef5d8001e6e962a5538cb1a53a8321000000000000000100000000000000000000000000000020a00b07acea464ec37ab41d5472f9101cc13a3cdfaa5f141199b9dad4efa0ccc3000000000000002b000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b300000000000000060000000000000001000000000000000000000000000000205f6723eabfc6e98e47719c542759b9340243f2d17c33a7d3bd39900c9a268fc2000000000000000100000000000000000000000000000020b1d7bb230d848f2a86e22fa061e670a9113c5a3474fb292c97327428fcea62700000000000000001000000000000000100000000000000208715bf4aa5c6570da98e62c31a38256c37e95853c4329fbf12fe2809f2cce7ae000000000000000100000000000000000000000000000020d2ace2c01e400a2af009a43598dd9e34d359aa6ac5e1e4e2607befbfd9a370180000000000000001000000000000000100000000000000209cabf053781e02384f83b3ede75bfaadda9578d1f80727f379b0adbcf4e706d200000000000000010000000000000000000000000000002078cb1457e1c5d6fa6b6138eeb2c7dfa980dd7fa53f0e6b7e1e5bdc43f459f12c000000000000001900000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e400000000000000060000000000000001000000000000000000000000000000204d7b507ecba473c6ce9e23d9fcacd70ad6b224867b684df6ca7056ed7b5bac8d00000000000000010000000000000001000000000000002047f783916f4b4a00d70f60a02cfc754c22300fbbbd08baaa3b339fb1eca3affa0000000000000001000000000000000100000000000000208dcba5c31e4dfcb434af5f06cccc7911b7d304ae3f553f7c1f040e38d13debb400000000000000010000000000000000000000000000002025970c30f2158b64f6db602006cf8ec3088a6951235f1463b4ec26472e7bf04e000000000000000100000000000000000000000000000020c0476d0bd1bba12844993b2b90c4d4e74f42cb95a863a33400c0b3ce5d7afb970000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000019000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000000000000000000020b43e69cefcd888f538abdbe07a841b5d9730d1280808b41c4cb2ecdaafea36ec0000000000000001000000000000000100000000000000206baebb09ef9df5fca11c05b6266f6d7089ac7181add20f3df5419d603aeabf5b00000000000000010000000000000001000000000000002052e2485ac628276f50964c89426ea5ed80da4a7f45529dc19237df746c5255aa0000000000000001000000000000000000000000000000200c4338e456e8a386ea42ad72cd73d95178039fdb76ee7e286661fbbf95bb3b040000000000000001000000000000000000000000000000201f243121b9b86ee340c8e4e148b031fbfec331be88bb0e695bd3254fd9dedc460000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000001900000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d00000000000000060000000000000001000000000000000000000000000000209a3766e2c587a6c91c76fd52ba1a96db6d2b5075f9b0dc98a4eb65f2796c61c3000000000000000100000000000000010000000000000020b73290daf6dea64b6cb10a791a646899090c49102522ab61acb42107e0ad2d4f000000000000000100000000000000010000000000000020e6a403d38bcd3025c82cb1e9361298d1b3eb297b3bfccc5381624711ec1d4a29000000000000000100000000000000000000000000000020a978e635bc01e37323e8daa22db845c6f4b65dbff8aec0ddee43de3cb433d5d80000000000000001000000000000000000000000000000207c9185dc31c96b43974def3ef513a5c2fa4019e8f4cd70c66e8489740340b2d7000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000001900000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000000000000000000020cf2e32da7a1e377e91f547fd0e3e31fd7e4691633d9cb6d4a58346303599260c000000000000000100000000000000010000000000000020ac555debdb185439b59201de7a24d0519cb16d9560704e0173b985c0844fd483000000000000000100000000000000010000000000000020c995be1ce6be7157e0b7c8bb50e229e783719026072b921367be2b828004463c00000000000000010000000000000000000000000000002049d1d86419f38c5e84555595d210426f3d97ab19505fa1438516e93a0552e041000000000000000100000000000000000000000000000020c261b56a4b700b9884a920f66b25b3f4e5b6af88658d82bd2b16f6956d7a628f000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000019000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000000000000000000020a45cf00219b7c4c429be8ba24de58cbdc09ff5729bfa6bf63b558a6ab0e1a952000000000000000100000000000000010000000000000020d930027c9ddd09bd4dcaac24b2d27caa0a309aafb08500f208e59fd9696bfa54000000000000000100000000000000010000000000000020727f91716bfcaaf8aff898f8ee4bff4560592e98b4bcfc385c449fc1f35af7b20000000000000001000000000000000000000000000000207f6c04f2a2686f09f8ed1d6818a1534af529f47bed8bb55dbf5eafcc3ebff42400000000000000010000000000000000000000000000002031c46556a8536b0d3fe56fdfff2cfb21049ba3d5264152ba04673f2caa7e535700000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000001600000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e400000000000000060000000000000001000000000000000100000000000000209c9f68f179d5614145d954a25ca3489db56fb3665016d4a567b890a88fb6a75300000000000000010000000000000000000000000000002044a1806f651125fbbfa67d925626256465e7abb7a2ae7d8ef65e4df52570a1cb0000000000000001000000000000000000000000000000203033e580e5ecf18a4e51f0ecf90e49f75d07abf49e6e1f2fb0f6f3f21b2b13890000000000000001000000000000000100000000000000201796429c8b13ebc59c2f83b796b3b926978c70fec3627c1ec454c8494358fb2d000000000000000100000000000000000000000000000020c0476d0bd1bba12844993b2b90c4d4e74f42cb95a863a33400c0b3ce5d7afb970000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000016000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f409000000000000000600000000000000010000000000000001000000000000002093be386e76e4bbd538c0305503a97a28483a1b5626eb2699b26634be0d0882270000000000000001000000000000000000000000000000200e6be21a80969c82d9a8a648fd8c8b22ad3b74446c59e3ba88884dbdd7b307370000000000000001000000000000000000000000000000200fe86f07f5500c2b5e7c84736dc58b948b12731c0c53ee6e0bcf4e87b862641a00000000000000010000000000000001000000000000002085b5145a72d3b5cc42ebd3887f2b0d8b066dd487afb89617f433386cd39ad32e0000000000000001000000000000000000000000000000201f243121b9b86ee340c8e4e148b031fbfec331be88bb0e695bd3254fd9dedc460000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000001600000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d0000000000000006000000000000000100000000000000010000000000000020e66cdfb0a64ca7f93f454c0e9699c009da1c3cc8231193bb8fffffcc42233c6a000000000000000100000000000000000000000000000020058ad57f2267f5915e9512b529b6b6a865d2d80f1db8107bfa704eaf5975fb2000000000000000010000000000000000000000000000002094f709638b3edb79f28d5546efd1d20615276922b29a850f63756fb3ca0c75990000000000000001000000000000000100000000000000204bbee7125d792587a9c1a2f857d5319e703fb6396be7cba35871f693d7de4ce00000000000000001000000000000000000000000000000207c9185dc31c96b43974def3ef513a5c2fa4019e8f4cd70c66e8489740340b2d7000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000001600000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000010000000000000020d39900d0d3640f1fd480bc288d7a830b41c7bee12c77a9e72f5e2ed30326067c0000000000000001000000000000000000000000000000202d0665c8f29e372a750e6cd91c673df89ec607d3915ac350e3b9d697a08ca3a7000000000000000100000000000000000000000000000020717385618c24c857967504bf3b4790c277d34c10a2053f8387239b28978d282a0000000000000001000000000000000100000000000000206c36dc888e2b9eea00e51c0910ca1a39fed4c567e353a843c78f1449b7b894ec000000000000000100000000000000000000000000000020c261b56a4b700b9884a920f66b25b3f4e5b6af88658d82bd2b16f6956d7a628f000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000016000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000010000000000000020db745643fb4f1b6a9143171d941835cd2a49f22b8df13eb8db0fa3266cb99fb400000000000000010000000000000000000000000000002046b00ad7e24abe5714eee2a57bfb6969d2c5459ff04f4e726e1955cac69c891700000000000000010000000000000000000000000000002030d66f767abd1d0b73d7b3ea7c74252212fb4d88171febb5c5e5ed47357253ad00000000000000010000000000000001000000000000002057d66fcd5a6afc7d65bf36d032fddd74693048af41e04438e66c2fac0f88b93200000000000000010000000000000000000000000000002031c46556a8536b0d3fe56fdfff2cfb21049ba3d5264152ba04673f2caa7e535700000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000000700000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e4000000000000000600000000000000010000000000000000000000000000002026b66d7e03a4d5b48ae8e8d0c56df76207ef1ce1d29d5260ce30d65e651eeecd00000000000000010000000000000000000000000000002041765ff716fe1ade091e3145b175f4ffe11c5f5f8c2b3516e6844825d7ad85a5000000000000000100000000000000000000000000000020a0b1b5fc08c2e02f83f2f726b41a2505988e2197135ad1552cb352ec42efe3ee0000000000000001000000000000000100000000000000206a3d92b216e8d40712b4abc94e0d246cf0b1c2a650d3b728de1e144f5f135dd1000000000000000100000000000000010000000000000020cf7596a2151e6ecd0152bcfa96e547a86c616698a13eb311a31678d998a719af0000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000007000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f409000000000000000600000000000000010000000000000000000000000000002049212a4ce342bcb9cd5b4dc13d2f24ecda9cf56d9986734ebb46413d7bb80e5d00000000000000010000000000000000000000000000002016aeeed1ee1e37f4daa74703e5398e5d042ccc2ab35d37afef2a6cb69b49c80700000000000000010000000000000000000000000000002073d36898ce02b74a10c4aef7a02a948616b5a7d0b174648f8ea70a30ae33c754000000000000000100000000000000010000000000000020012e51ceac3da1ee2785f84acb427d436432958c56fa02ff109defc16f64c3e100000000000000010000000000000001000000000000002031809213d4a7c0f0b7fbd21766c584377ac625d92403fd3c2e9421ca27c907db0000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000000700000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d000000000000000600000000000000010000000000000000000000000000002090fe290bf7cbc68b685c2586b5e68238f845b38295f7b257b5ebfd4a17e4afec0000000000000001000000000000000000000000000000205294e04c7f57cc6d4c8265a54665b5a1f2a62ca7a37e1149665ac102cbdeb4f2000000000000000100000000000000000000000000000020df64ba374100bd613493ca498420eebea8b6233d2c06bf756f9d2aaded4e0177000000000000000100000000000000010000000000000020c784e893e97965d1954bf00e2fab7b72fbb7d86352817409c7f61f9ee3d4be25000000000000000100000000000000010000000000000020ca05ed908befc970acc53cea33e55589e5965d8039c9e076f7ac7b36a36f6455000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000000700000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b323000000000000000600000000000000010000000000000000000000000000002094edefd83fd1ecfd9b1cc6ae5d9484b466107747132b3db765d7c6ba27332619000000000000000100000000000000000000000000000020069d44776ba9b0c01a51910066aa9230fa705da21522f7bce8805f74a4a1b04b0000000000000001000000000000000000000000000000206f2d3cf07495881ebe39657368b83e6af33701bf95947c06cc58dae5400eb216000000000000000100000000000000010000000000000020429ead810e13405c3b60212aa5eafa299f1430976011b3956cf9ba62ffd1d91d0000000000000001000000000000000100000000000000206d6a12b490e789e5e3407255a61b3605485fc28f4ae6697fdbc41f4a62ac030e000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000007000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b300000000000000060000000000000001000000000000000000000000000000207b8e7cd0a89be91078a018e04f1983f6be782daeb373785e756e04770e84921d0000000000000001000000000000000000000000000000203252a96f4ab629cc86ec0e4883214fea68ff621483740b60c0bc29f602ff43b50000000000000001000000000000000000000000000000203d7a086bd38d4b04c47ab69c98301d88fcf9f0231ec623f6867e04d98ab06e37000000000000000100000000000000010000000000000020a36932769c7f9a976b385d2c4064689e893729c460a7115012784ced44d4169f00000000000000010000000000000001000000000000002010edd26513dde9e2d4d9edde73c0914d7c3f4f5c44106edb1335190bd6a8675d00000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000001d00000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e40000000000000006000000000000000100000000000000000000000000000020a29d329de349c08783102e1e2ebb538380cde0620348dd7dc122d955e6aa4fa7000000000000000100000000000000010000000000000020f49c977f2b28edaece65e109dec4da08ee8eff546c65598210fdc1cb3fd9371d0000000000000001000000000000000000000000000000203c9b84ea790b2a2a39d9611d6fffe81b8f6a4780bc49ceef9d562efb8bb0e3c100000000000000010000000000000000000000000000002025970c30f2158b64f6db602006cf8ec3088a6951235f1463b4ec26472e7bf04e000000000000000100000000000000000000000000000020c0476d0bd1bba12844993b2b90c4d4e74f42cb95a863a33400c0b3ce5d7afb970000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f000000000000001d000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000000000000000000208333202919c9f5aeb9b73ac4c031fa8da82fd055f108044d89ec0ca8f2ec4614000000000000000100000000000000010000000000000020273c8c891ee07115e20bf18ab52966cd99ea87ede285698502fc4dab8458420000000000000000010000000000000000000000000000002023d97489db03b380974b7d10e10c0a8f85c4800f21e95c23e7827615a90c923c0000000000000001000000000000000000000000000000200c4338e456e8a386ea42ad72cd73d95178039fdb76ee7e286661fbbf95bb3b040000000000000001000000000000000000000000000000201f243121b9b86ee340c8e4e148b031fbfec331be88bb0e695bd3254fd9dedc460000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000001d00000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d0000000000000006000000000000000100000000000000000000000000000020cf8d118716eefde3ff7b40ca3541732ee2eb83b2fa835cf796ab7a7675890d66000000000000000100000000000000010000000000000020d4bc73bbfb3732c9c2675cee6355f9cf43f14e3b5c653d8eeb18f8e3de4baaa400000000000000010000000000000000000000000000002083b89a63fb02770e2f72bbc11c0bfed0438afe2b97dafc63d6b272c56e3f2360000000000000000100000000000000000000000000000020a978e635bc01e37323e8daa22db845c6f4b65dbff8aec0ddee43de3cb433d5d80000000000000001000000000000000000000000000000207c9185dc31c96b43974def3ef513a5c2fa4019e8f4cd70c66e8489740340b2d7000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000001d00000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b32300000000000000060000000000000001000000000000000000000000000000208ae182d70f58d2140866b79c8b60d5ed5ef4c9c046f4e7e782ff946e8d212d72000000000000000100000000000000010000000000000020a03ce711afd0464d0fe4a4b467dc0ff4cce8199435953d6464d6a43f2dd6bcd90000000000000001000000000000000000000000000000201480dd9071ccde4a4f721bb5a64cbd7ecff12cfd29018b3d672f16038683d05000000000000000010000000000000000000000000000002049d1d86419f38c5e84555595d210426f3d97ab19505fa1438516e93a0552e041000000000000000100000000000000000000000000000020c261b56a4b700b9884a920f66b25b3f4e5b6af88658d82bd2b16f6956d7a628f000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed000000000000001d000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b300000000000000060000000000000001000000000000000000000000000000209e50d11b1755333d699a0cebbe7a67a8e68d4f42356555a3415da2e32ac53c850000000000000001000000000000000100000000000000202712fb7df6ea6c8cd188ee825119f43fcd845fc37e172448ff0b368cb4a2e894000000000000000100000000000000000000000000000020a4f30078f6c82eeb23635e8509271f741f7df1496de69591523572481398a01a0000000000000001000000000000000000000000000000207f6c04f2a2686f09f8ed1d6818a1534af529f47bed8bb55dbf5eafcc3ebff42400000000000000010000000000000000000000000000002031c46556a8536b0d3fe56fdfff2cfb21049ba3d5264152ba04673f2caa7e535700000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000001500000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e4000000000000000600000000000000010000000000000000000000000000002083fca54e46700fdc19b5808ae517cc0ac99ffafc4ea350df88cf68c383a0baa1000000000000000100000000000000010000000000000020cd6677de85b16b065ac594b9242fb27a207f45b22abab8921e1182d421ede8080000000000000001000000000000000000000000000000203033e580e5ecf18a4e51f0ecf90e49f75d07abf49e6e1f2fb0f6f3f21b2b13890000000000000001000000000000000100000000000000201796429c8b13ebc59c2f83b796b3b926978c70fec3627c1ec454c8494358fb2d000000000000000100000000000000000000000000000020c0476d0bd1bba12844993b2b90c4d4e74f42cb95a863a33400c0b3ce5d7afb970000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000015000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000000000000000000204f55e3f6bc9381d1bff63a964f5f17eb1c352d095126c6386bf0327af978a746000000000000000100000000000000010000000000000020beab344ab77c8598f29a53769f26f6315e9f6d6582bc2b9ff1c4ca2519f7d7f70000000000000001000000000000000000000000000000200fe86f07f5500c2b5e7c84736dc58b948b12731c0c53ee6e0bcf4e87b862641a00000000000000010000000000000001000000000000002085b5145a72d3b5cc42ebd3887f2b0d8b066dd487afb89617f433386cd39ad32e0000000000000001000000000000000000000000000000201f243121b9b86ee340c8e4e148b031fbfec331be88bb0e695bd3254fd9dedc460000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000001500000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d000000000000000600000000000000010000000000000000000000000000002028057a42dccd0f589047522b14cd391a55b93e97e0b8bc18a61dcc0e4b227f260000000000000001000000000000000100000000000000203970a3f189ca6e09449b5aaadbb2b4e4efd04c7f65ce13b05d5716fa50a425ab00000000000000010000000000000000000000000000002094f709638b3edb79f28d5546efd1d20615276922b29a850f63756fb3ca0c75990000000000000001000000000000000100000000000000204bbee7125d792587a9c1a2f857d5319e703fb6396be7cba35871f693d7de4ce00000000000000001000000000000000000000000000000207c9185dc31c96b43974def3ef513a5c2fa4019e8f4cd70c66e8489740340b2d7000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000001500000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b323000000000000000600000000000000010000000000000000000000000000002079bffa116b4ef85f25b45acef973a4fbd3d841c3bfd249fc24bc276fe02738850000000000000001000000000000000100000000000000202af2aa8e71f93d61fb3623054e61f3c8dc2f46b15086d77340818e316fbe544d000000000000000100000000000000000000000000000020717385618c24c857967504bf3b4790c277d34c10a2053f8387239b28978d282a0000000000000001000000000000000100000000000000206c36dc888e2b9eea00e51c0910ca1a39fed4c567e353a843c78f1449b7b894ec000000000000000100000000000000000000000000000020c261b56a4b700b9884a920f66b25b3f4e5b6af88658d82bd2b16f6956d7a628f000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000015000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b3000000000000000600000000000000010000000000000000000000000000002085977bbb663d7f8a6ab7c730fb25911ba8100e5d9e27ee9feda8fb1949da738b0000000000000001000000000000000100000000000000207c1229febc4bff04d2296f6692e6636ab7fe4d0e64e0de212b3aed75ef0ecbdb00000000000000010000000000000000000000000000002030d66f767abd1d0b73d7b3ea7c74252212fb4d88171febb5c5e5ed47357253ad00000000000000010000000000000001000000000000002057d66fcd5a6afc7d65bf36d032fddd74693048af41e04438e66c2fac0f88b93200000000000000010000000000000000000000000000002031c46556a8536b0d3fe56fdfff2cfb21049ba3d5264152ba04673f2caa7e535700000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000000000000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e400000000000000060000000000000001000000000000000100000000000000203bb89953794cd2baa3f836dec812c4b99b814f7577347c1b0508ae76233baf47000000000000000100000000000000010000000000000020e20bc164a2d176267835b99bb085e70ee37e78ff353a422c984073114f616b4a000000000000000100000000000000010000000000000020036e643e48a301a7a94aed42e82912eaec80e90bccc88d3226560d84666629b00000000000000001000000000000000100000000000000206a3d92b216e8d40712b4abc94e0d246cf0b1c2a650d3b728de1e144f5f135dd1000000000000000100000000000000010000000000000020cf7596a2151e6ecd0152bcfa96e547a86c616698a13eb311a31678d998a719af0000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000000000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000100000000000000203a66f41ebdb1cf249027d690746fb6e4c5816ecc627864f31cfe821cdd0df139000000000000000100000000000000010000000000000020b751ce72e98dccc2148ad757721ef6758c47d4aa7b0b42f5dec8be0e726cf8cb00000000000000010000000000000001000000000000002054be403ee6b8f8b6e7241a28dd4067a732c6494f9ca117cf49561797eed6d533000000000000000100000000000000010000000000000020012e51ceac3da1ee2785f84acb427d436432958c56fa02ff109defc16f64c3e100000000000000010000000000000001000000000000002031809213d4a7c0f0b7fbd21766c584377ac625d92403fd3c2e9421ca27c907db0000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000000000000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d0000000000000006000000000000000100000000000000010000000000000020bd730e5d7d21021a3b82c0debd626bb83120baa53da413056eb9f452064da95a0000000000000001000000000000000100000000000000204c709a8c4a4b20a4c4322b3ade4d3e9e2b2c7d4fc5883b395066ef3155908c7e00000000000000010000000000000001000000000000002070e7dcfc14e9faa78890ed551a4cf53d1af6bb685ff505bb76843215b07b7782000000000000000100000000000000010000000000000020c784e893e97965d1954bf00e2fab7b72fbb7d86352817409c7f61f9ee3d4be25000000000000000100000000000000010000000000000020ca05ed908befc970acc53cea33e55589e5965d8039c9e076f7ac7b36a36f6455000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000000000000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000010000000000000020e376b6de662a2fd89dab347b0d7c90b07a3cad0dc3e2f162c99458908e27606800000000000000010000000000000001000000000000002075301234c565dac1ae84d09889d3f1d888ce8c86485e941d03e337e1ffbc2f0f00000000000000010000000000000001000000000000002063108f8d0ebc57e7d328e269e094211f951a8a50708c1b60724402499140bcbe000000000000000100000000000000010000000000000020429ead810e13405c3b60212aa5eafa299f1430976011b3956cf9ba62ffd1d91d0000000000000001000000000000000100000000000000206d6a12b490e789e5e3407255a61b3605485fc28f4ae6697fdbc41f4a62ac030e000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000000000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000010000000000000020baf5f6d503b407d219fb1d31bf64c1689e66a5c830c810f50823a4b67bc9a4c600000000000000010000000000000001000000000000002088dfac425732a6e73e6bd9697ee39aa13bebcbfbd05a069dedfe620464f7420e000000000000000100000000000000010000000000000020cc627ebfb735c76ebe34f36ee0a06d28daf02822f990a9a92460f542562da42c000000000000000100000000000000010000000000000020a36932769c7f9a976b385d2c4064689e893729c460a7115012784ced44d4169f00000000000000010000000000000001000000000000002010edd26513dde9e2d4d9edde73c0914d7c3f4f5c44106edb1335190bd6a8675d00000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000003c00000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e400000000000000060000000000000001000000000000000100000000000000200aad70f86d10e8d16c18580da7c5a7ccfbeec8f8f7815f6e4175c30ad1e2e73f0000000000000001000000000000000100000000000000207f79a0efd8f6d62f486f886006b818a7315031ea33c0069b061f6845d58a9ad6000000000000000100000000000000000000000000000020ebc770f3b8a62a2b95187dce0f350a241db177a008e165198fee46bc74bdcf5a000000000000000100000000000000000000000000000020c9b3ad75701ec8a54b6c9bf898b00ecc8b8d291a70a3a3b2c5eb9c54606203d3000000000000000100000000000000000000000000000020821cb4e5ed60f8ccefe58fd9ac3136abe727ed631fb9d4a33cf4415e024f9f020000000000000001000000000000000000000000000000202fa23e2d798b08467838b865973a53e4e19c5b2d80ade19cbb180aec56a9376e000000000000003c000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000010000000000000020e3183f3117ada73ac1cfc9f61128a72d5f9de4a43dec18ef1038500aca68cdda000000000000000100000000000000010000000000000020c9f27acf01b354bad9acabd32ffae7b0a02e0c17367416346b55ae88da3ccd63000000000000000100000000000000000000000000000020590325535bcff96f350b76df132df0348f8bae179375df66dc1c1778d8bd1fd7000000000000000100000000000000000000000000000020d251cf40cd7ee5a019ed521b80e81611fd3a89746e2c54021cd41e0bdba0a010000000000000000100000000000000000000000000000020e9da22de8ef9950c7c8ed7994a057a53da129fef638def79baaad47992e89bce00000000000000010000000000000000000000000000002072c42711719626fc8bcaf082271589b458b73b63db94ea53c13e43ca03482214000000000000003c00000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d0000000000000006000000000000000100000000000000010000000000000020db2d1674b645323e08fd8aad73da51e3373c0fad6270f233011fd6cc8de0640d000000000000000100000000000000010000000000000020cee9389753eec88c5457fec73835d4380268b324a907c3ba3eb119065d9a00750000000000000001000000000000000000000000000000205f0d894669e0825f01950ca190446d072a93f7d7e276f124f226f321e86a11a7000000000000000100000000000000000000000000000020a10bf13f59ec7702d89279a7e07ffd326efc49d509c094863ab0454222b1e41e00000000000000010000000000000000000000000000002030e60438b48a10fa93ba2b2271e743883ab2776244e2b3e7ee271ed6db1f2e530000000000000001000000000000000000000000000000208b04487c0e92a27b8ce6e22f25723473ab966eb251464fa6d919c39ac29a60ff000000000000003c00000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b32300000000000000060000000000000001000000000000000100000000000000207d7cf982a2ea0d6f48e28132aefe315f2b53d40732309dac7d0d8fe5a233f06c0000000000000001000000000000000100000000000000206a7f55c72cf23ea8568d0b0213c4c4d3910169a043d11586fad1be8aa4f6864100000000000000010000000000000000000000000000002005f82cbeea46b7ccbbcf890db4b2328c9d35044b010b8c15569f19e4f1e15dd00000000000000001000000000000000000000000000000200ce4e9ccb51b54aaaba6f54b2118412f63ce1a898fa9a21ea0c2d9e4ffa0a7c9000000000000000100000000000000000000000000000020ef7f27ef0af7f3384d95dccf464f81b3ada2d68b1c7b4e875db629973a25da5c000000000000000100000000000000000000000000000020a00b07acea464ec37ab41d5472f9101cc13a3cdfaa5f141199b9dad4efa0ccc3000000000000003c000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b3000000000000000600000000000000010000000000000001000000000000002003a9b3f47660d99cd459a6f0bfa4df795db6f953c2247842847b00b6f0d19ebc000000000000000100000000000000010000000000000020759f79b62ee8f6d95d2339990767f366314914bee012c7ef943f3e3ceaf76c52000000000000000100000000000000000000000000000020e1d8bf6c66eb23ccb64812da24ca3b1df8796a8df6481ba1d99aaeab0d2031b9000000000000000100000000000000000000000000000020c95493bd2a81fded0791c5ffa57ae8846587ede7997e5603d6d12a82d83971ae0000000000000001000000000000000000000000000000205d37818349b6a8b2090fc629ee6549964519ab55586df49d7740da0a7f06a2f200000000000000010000000000000000000000000000002078cb1457e1c5d6fa6b6138eeb2c7dfa980dd7fa53f0e6b7e1e5bdc43f459f12c000000000000001f00000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e40000000000000006000000000000000100000000000000000000000000000020aea0257863e10318831d52f58d53aabe9f4e5ce827cf72ebf7c21cfd8e530d83000000000000000100000000000000000000000000000020f08a8095a81b042559c277caa120e67c6db10f76a1e996e9d6210a952f768f670000000000000001000000000000000000000000000000203c9b84ea790b2a2a39d9611d6fffe81b8f6a4780bc49ceef9d562efb8bb0e3c100000000000000010000000000000000000000000000002025970c30f2158b64f6db602006cf8ec3088a6951235f1463b4ec26472e7bf04e000000000000000100000000000000000000000000000020c0476d0bd1bba12844993b2b90c4d4e74f42cb95a863a33400c0b3ce5d7afb970000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f000000000000001f000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000000000000000000020ef2c1053a8eac5911150c672e5f8fc18606781dbf3f5fde508e9a9a948e5cd660000000000000001000000000000000000000000000000209ac57aee00b058ea0cd83781c86a1015291ec82b4b2210f70d7901cd6c310e0b00000000000000010000000000000000000000000000002023d97489db03b380974b7d10e10c0a8f85c4800f21e95c23e7827615a90c923c0000000000000001000000000000000000000000000000200c4338e456e8a386ea42ad72cd73d95178039fdb76ee7e286661fbbf95bb3b040000000000000001000000000000000000000000000000201f243121b9b86ee340c8e4e148b031fbfec331be88bb0e695bd3254fd9dedc460000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000001f00000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d000000000000000600000000000000010000000000000000000000000000002052fb9d8cf82b849d3cb1b9ef6cc42b63b642c872c76a2b6b241def6417ee88a30000000000000001000000000000000000000000000000207b9939446a1c36b2743389f20671740aa643050f2062f919c75d4ec5eb152be600000000000000010000000000000000000000000000002083b89a63fb02770e2f72bbc11c0bfed0438afe2b97dafc63d6b272c56e3f2360000000000000000100000000000000000000000000000020a978e635bc01e37323e8daa22db845c6f4b65dbff8aec0ddee43de3cb433d5d80000000000000001000000000000000000000000000000207c9185dc31c96b43974def3ef513a5c2fa4019e8f4cd70c66e8489740340b2d7000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000001f00000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000000000000000000020d37df8c81436203bdaead4b93d64c239ca30f2778e3f292822f30a6aea67342900000000000000010000000000000000000000000000002075413072637253ff050faf3a568c9b8a14ad4613c28e3bd7790ab9dbce3d7f090000000000000001000000000000000000000000000000201480dd9071ccde4a4f721bb5a64cbd7ecff12cfd29018b3d672f16038683d05000000000000000010000000000000000000000000000002049d1d86419f38c5e84555595d210426f3d97ab19505fa1438516e93a0552e041000000000000000100000000000000000000000000000020c261b56a4b700b9884a920f66b25b3f4e5b6af88658d82bd2b16f6956d7a628f000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed000000000000001f000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000000000000000000020bc42ad1aedbf8ba5a58cb2f9480c3e0895e6505ce614ab2b1e622dd9f0a378de000000000000000100000000000000000000000000000020c88770ba99897f3942d7c5126a4d6f829ae6d83aa91e1cef6ce2743b675fb745000000000000000100000000000000000000000000000020a4f30078f6c82eeb23635e8509271f741f7df1496de69591523572481398a01a0000000000000001000000000000000000000000000000207f6c04f2a2686f09f8ed1d6818a1534af529f47bed8bb55dbf5eafcc3ebff42400000000000000010000000000000000000000000000002031c46556a8536b0d3fe56fdfff2cfb21049ba3d5264152ba04673f2caa7e535700000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000002600000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e4000000000000000600000000000000010000000000000001000000000000002060dc51158dd926b04c627752dfc89b588126039eeba7d386f14b9010d4da00110000000000000001000000000000000000000000000000208cbdb49d77f56b3a6db9221d1d57b04818fca524c7267a0e8d4022fcfafd117800000000000000010000000000000000000000000000002055c308be9438db42c91d1431d01b869ac37750ba0513a5170220112753ea0a6d000000000000000100000000000000010000000000000020a5edd8ba3a02c79d2a439b5c19c698d48a65e1da6ea81f91e95da0f3870facfe0000000000000001000000000000000100000000000000201b96bf994f53f651394f15f5db116e896fa1ab44efe0a6262949e96de58bff090000000000000001000000000000000000000000000000202fa23e2d798b08467838b865973a53e4e19c5b2d80ade19cbb180aec56a9376e0000000000000026000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000010000000000000020bf75c76533813cfb8387c5575b27a6b43ed18fc816ba1ce110e537fff4715697000000000000000100000000000000000000000000000020caa15c2cef9d0822879f1cbc7e47bf2ecca0c34dcce47cf21e705e0c27facd2800000000000000010000000000000000000000000000002094bfaa799c5496d89c7fba1c0074bf53e44026b1e3dfcc51a0820cda8b8b592e00000000000000010000000000000001000000000000002091ef79e3954e71b043bab2f4f7563da4ffcc85b3b6a3abb402389ce312ae3a1b00000000000000010000000000000001000000000000002046692d64e298cf42f3e0cf09149e8b1ba6093100c0f4d1501fee627da591f20e00000000000000010000000000000000000000000000002072c42711719626fc8bcaf082271589b458b73b63db94ea53c13e43ca03482214000000000000002600000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d0000000000000006000000000000000100000000000000010000000000000020ffa5b70b50ebe9f5509bbc1114be92f7213bf079debf48029c922b205f34d43c0000000000000001000000000000000000000000000000201a74b33545d3a31e38488fc2de7d796ea63b27a71bd3cb3cc8ae63fac1b7efad0000000000000001000000000000000000000000000000205821e6171d155bf5aafbdc8474a3a9c33f58e247c6f3c54f71d8c9caaf009eb800000000000000010000000000000001000000000000002013307d874fafd2c736df4f1675c3fc7573fd05858f421470013ba3aa52dcdcac000000000000000100000000000000010000000000000020b865081822324014a2ad2adb025c6233367d552e7b8d5c65dcb3c00b68fdb2770000000000000001000000000000000000000000000000208b04487c0e92a27b8ce6e22f25723473ab966eb251464fa6d919c39ac29a60ff000000000000002600000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b32300000000000000060000000000000001000000000000000100000000000000202fc3201f9c70e83cbb8662ad8f2dabe26aadb570e77df983d942acd21e0af5b10000000000000001000000000000000000000000000000207d428f3d57f89f1804dbbaa40de511c119d8f43b693258ebba485c5b8aedfc91000000000000000100000000000000000000000000000020c05b0bfce2b5cf26286b63fee5b1ce52f6fd2d6f3b79f0407ca7ced961abd5100000000000000001000000000000000100000000000000205333dabae5459fcb448fee6926384a3bafc2af8b75f276339e9b28108bb4995d0000000000000001000000000000000100000000000000201da2e84c157ae73f74b662421f72dc7af8ef5d8001e6e962a5538cb1a53a8321000000000000000100000000000000000000000000000020a00b07acea464ec37ab41d5472f9101cc13a3cdfaa5f141199b9dad4efa0ccc30000000000000026000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000010000000000000020f70714ff5623a7bb893486edf7a24391e44c96542acc679564827b1d02d68257000000000000000100000000000000000000000000000020cd263aed361b4e176016494f2e92a46d33c7ff0629bac17eaaf60ea69c1674660000000000000001000000000000000000000000000000200953edfc6e8ff0936b8105e6357c9590e4f20e0497be561dc97db9d13e014c0d000000000000000100000000000000010000000000000020cd1cbe0f3f5a57ed48862a459d119ab55aa7fbf2685055ced90ff45d1e7cd0720000000000000001000000000000000100000000000000209cabf053781e02384f83b3ede75bfaadda9578d1f80727f379b0adbcf4e706d200000000000000010000000000000000000000000000002078cb1457e1c5d6fa6b6138eeb2c7dfa980dd7fa53f0e6b7e1e5bdc43f459f12c000000000000000d00000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e40000000000000006000000000000000100000000000000000000000000000020ae86931be989abef5b8aa3d16d184247829d57b4ede03882c50cd3e4968ef74f0000000000000001000000000000000100000000000000209cd2ce2c3abfb1bd0161a72cedc8684941fb2677c271f825ea1b4479ce3141c10000000000000001000000000000000000000000000000205473551865909a8ddbd278f65ec42135b34cbc96bcd25339c3068de1607e364c000000000000000100000000000000000000000000000020300a899203d60a28e04b3b2612eddf8bcbbf1de62b02c3bf43d419c152e3b2ef000000000000000100000000000000010000000000000020cf7596a2151e6ecd0152bcfa96e547a86c616698a13eb311a31678d998a719af0000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f000000000000000d000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000000000000000000020524a8aa29199ed83582e8f2dcd14d0eed0638b158f02f04bd2bee28b24d41d58000000000000000100000000000000010000000000000020e821c31d9668f7ffe3c9de076e7405ce3d546abd7009431ddec7e6d7938cbc94000000000000000100000000000000000000000000000020e0f5fd7b378429de6ebc931f878e03478c9b1f84d5a49871f6071d3396c392ae0000000000000001000000000000000000000000000000207f47469f5ffdd5ad04194296e2bc72ea5fcb5ec274624c79ae7cfc4014621abb00000000000000010000000000000001000000000000002031809213d4a7c0f0b7fbd21766c584377ac625d92403fd3c2e9421ca27c907db0000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000000d00000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d0000000000000006000000000000000100000000000000000000000000000020c76a9de96cba7a825833b25b8706d9037481bb05a9c025449ee3077e628a02aa000000000000000100000000000000010000000000000020f7112090a6f46e4bc6fe9b70796ee945012d2a7ca350c9e77be25d308cea551b000000000000000100000000000000000000000000000020321d0403bf05e43d79f16282a106e1fbf4a2e1c0c4cc72b6043ffd04ce5e92ba0000000000000001000000000000000000000000000000203280ab8cc5bacfb34810acbc089da721a2e58e824802a6ed1652fc0e8bbcd249000000000000000100000000000000010000000000000020ca05ed908befc970acc53cea33e55589e5965d8039c9e076f7ac7b36a36f6455000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000000d00000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b323000000000000000600000000000000010000000000000000000000000000002056639f83288d5a02741b467610ad5e7bf427e602c32901fbffbe50d538bee16f000000000000000100000000000000010000000000000020ac6b949df2065371ed5dfd4b13a35d4199c780a0eb2cfc4ae2ed2b364d488328000000000000000100000000000000000000000000000020dc4836e3894dfbf408da01007d2625cbabc5403119d5e449e3eb602e93ae41c5000000000000000100000000000000000000000000000020b23e866daaf21825fa74bf7c0d75a5e4ed669fc725e71bc81712ffa8721c07250000000000000001000000000000000100000000000000206d6a12b490e789e5e3407255a61b3605485fc28f4ae6697fdbc41f4a62ac030e000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed000000000000000d000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b3000000000000000600000000000000010000000000000000000000000000002061783a6fcbbf770e4e2c33e1972ff573329893efdddc34aa1688d6a8081be88a000000000000000100000000000000010000000000000020bbe135268a79de7ca67b8c1b40a8f464d2efd1c16b633231987836e77f513751000000000000000100000000000000000000000000000020927607d17643eeb7c2f39cd26db1b0f6a08ceeeaeda979055824400d4c130907000000000000000100000000000000000000000000000020d273183507f843c7fef09828a295baf333ebca044edf2b79770c7a066c4ad36100000000000000010000000000000001000000000000002010edd26513dde9e2d4d9edde73c0914d7c3f4f5c44106edb1335190bd6a8675d00000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000001c00000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e400000000000000060000000000000001000000000000000100000000000000200f143a16674958d9e28ba2f3c853a0649499d01da8145da611d76a546d68bef1000000000000000100000000000000010000000000000020f49c977f2b28edaece65e109dec4da08ee8eff546c65598210fdc1cb3fd9371d0000000000000001000000000000000000000000000000203c9b84ea790b2a2a39d9611d6fffe81b8f6a4780bc49ceef9d562efb8bb0e3c100000000000000010000000000000000000000000000002025970c30f2158b64f6db602006cf8ec3088a6951235f1463b4ec26472e7bf04e000000000000000100000000000000000000000000000020c0476d0bd1bba12844993b2b90c4d4e74f42cb95a863a33400c0b3ce5d7afb970000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f000000000000001c000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000100000000000000201cceaf7c47376237f108fb8705182e5a6095143f1424c853d1f89ca4d8bb08ea000000000000000100000000000000010000000000000020273c8c891ee07115e20bf18ab52966cd99ea87ede285698502fc4dab8458420000000000000000010000000000000000000000000000002023d97489db03b380974b7d10e10c0a8f85c4800f21e95c23e7827615a90c923c0000000000000001000000000000000000000000000000200c4338e456e8a386ea42ad72cd73d95178039fdb76ee7e286661fbbf95bb3b040000000000000001000000000000000000000000000000201f243121b9b86ee340c8e4e148b031fbfec331be88bb0e695bd3254fd9dedc460000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000001c00000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d00000000000000060000000000000001000000000000000100000000000000205b5deb0951110878cfa71a1f38b71299dc8a5cfea1c1885555b870f45e8eb67f000000000000000100000000000000010000000000000020d4bc73bbfb3732c9c2675cee6355f9cf43f14e3b5c653d8eeb18f8e3de4baaa400000000000000010000000000000000000000000000002083b89a63fb02770e2f72bbc11c0bfed0438afe2b97dafc63d6b272c56e3f2360000000000000000100000000000000000000000000000020a978e635bc01e37323e8daa22db845c6f4b65dbff8aec0ddee43de3cb433d5d80000000000000001000000000000000000000000000000207c9185dc31c96b43974def3ef513a5c2fa4019e8f4cd70c66e8489740340b2d7000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000001c00000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b323000000000000000600000000000000010000000000000001000000000000002087ceeab2dcdbbd6564e193050b486fbaaa65eff65a8c2709c0cf05056435a63e000000000000000100000000000000010000000000000020a03ce711afd0464d0fe4a4b467dc0ff4cce8199435953d6464d6a43f2dd6bcd90000000000000001000000000000000000000000000000201480dd9071ccde4a4f721bb5a64cbd7ecff12cfd29018b3d672f16038683d05000000000000000010000000000000000000000000000002049d1d86419f38c5e84555595d210426f3d97ab19505fa1438516e93a0552e041000000000000000100000000000000000000000000000020c261b56a4b700b9884a920f66b25b3f4e5b6af88658d82bd2b16f6956d7a628f000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed000000000000001c000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b3000000000000000600000000000000010000000000000001000000000000002007b2feeb68aada7c46af118d947b98785bf627ff74d8f09bd55efb66542602b20000000000000001000000000000000100000000000000202712fb7df6ea6c8cd188ee825119f43fcd845fc37e172448ff0b368cb4a2e894000000000000000100000000000000000000000000000020a4f30078f6c82eeb23635e8509271f741f7df1496de69591523572481398a01a0000000000000001000000000000000000000000000000207f6c04f2a2686f09f8ed1d6818a1534af529f47bed8bb55dbf5eafcc3ebff42400000000000000010000000000000000000000000000002031c46556a8536b0d3fe56fdfff2cfb21049ba3d5264152ba04673f2caa7e535700000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000001f00000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e40000000000000006000000000000000100000000000000000000000000000020aea0257863e10318831d52f58d53aabe9f4e5ce827cf72ebf7c21cfd8e530d83000000000000000100000000000000000000000000000020f08a8095a81b042559c277caa120e67c6db10f76a1e996e9d6210a952f768f670000000000000001000000000000000000000000000000203c9b84ea790b2a2a39d9611d6fffe81b8f6a4780bc49ceef9d562efb8bb0e3c100000000000000010000000000000000000000000000002025970c30f2158b64f6db602006cf8ec3088a6951235f1463b4ec26472e7bf04e000000000000000100000000000000000000000000000020c0476d0bd1bba12844993b2b90c4d4e74f42cb95a863a33400c0b3ce5d7afb970000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f000000000000001f000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000000000000000000020ef2c1053a8eac5911150c672e5f8fc18606781dbf3f5fde508e9a9a948e5cd660000000000000001000000000000000000000000000000209ac57aee00b058ea0cd83781c86a1015291ec82b4b2210f70d7901cd6c310e0b00000000000000010000000000000000000000000000002023d97489db03b380974b7d10e10c0a8f85c4800f21e95c23e7827615a90c923c0000000000000001000000000000000000000000000000200c4338e456e8a386ea42ad72cd73d95178039fdb76ee7e286661fbbf95bb3b040000000000000001000000000000000000000000000000201f243121b9b86ee340c8e4e148b031fbfec331be88bb0e695bd3254fd9dedc460000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000001f00000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d000000000000000600000000000000010000000000000000000000000000002052fb9d8cf82b849d3cb1b9ef6cc42b63b642c872c76a2b6b241def6417ee88a30000000000000001000000000000000000000000000000207b9939446a1c36b2743389f20671740aa643050f2062f919c75d4ec5eb152be600000000000000010000000000000000000000000000002083b89a63fb02770e2f72bbc11c0bfed0438afe2b97dafc63d6b272c56e3f2360000000000000000100000000000000000000000000000020a978e635bc01e37323e8daa22db845c6f4b65dbff8aec0ddee43de3cb433d5d80000000000000001000000000000000000000000000000207c9185dc31c96b43974def3ef513a5c2fa4019e8f4cd70c66e8489740340b2d7000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000001f00000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000000000000000000020d37df8c81436203bdaead4b93d64c239ca30f2778e3f292822f30a6aea67342900000000000000010000000000000000000000000000002075413072637253ff050faf3a568c9b8a14ad4613c28e3bd7790ab9dbce3d7f090000000000000001000000000000000000000000000000201480dd9071ccde4a4f721bb5a64cbd7ecff12cfd29018b3d672f16038683d05000000000000000010000000000000000000000000000002049d1d86419f38c5e84555595d210426f3d97ab19505fa1438516e93a0552e041000000000000000100000000000000000000000000000020c261b56a4b700b9884a920f66b25b3f4e5b6af88658d82bd2b16f6956d7a628f000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed000000000000001f000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000000000000000000020bc42ad1aedbf8ba5a58cb2f9480c3e0895e6505ce614ab2b1e622dd9f0a378de000000000000000100000000000000000000000000000020c88770ba99897f3942d7c5126a4d6f829ae6d83aa91e1cef6ce2743b675fb745000000000000000100000000000000000000000000000020a4f30078f6c82eeb23635e8509271f741f7df1496de69591523572481398a01a0000000000000001000000000000000000000000000000207f6c04f2a2686f09f8ed1d6818a1534af529f47bed8bb55dbf5eafcc3ebff42400000000000000010000000000000000000000000000002031c46556a8536b0d3fe56fdfff2cfb21049ba3d5264152ba04673f2caa7e535700000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000001500000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e4000000000000000600000000000000010000000000000000000000000000002083fca54e46700fdc19b5808ae517cc0ac99ffafc4ea350df88cf68c383a0baa1000000000000000100000000000000010000000000000020cd6677de85b16b065ac594b9242fb27a207f45b22abab8921e1182d421ede8080000000000000001000000000000000000000000000000203033e580e5ecf18a4e51f0ecf90e49f75d07abf49e6e1f2fb0f6f3f21b2b13890000000000000001000000000000000100000000000000201796429c8b13ebc59c2f83b796b3b926978c70fec3627c1ec454c8494358fb2d000000000000000100000000000000000000000000000020c0476d0bd1bba12844993b2b90c4d4e74f42cb95a863a33400c0b3ce5d7afb970000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000015000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000000000000000000204f55e3f6bc9381d1bff63a964f5f17eb1c352d095126c6386bf0327af978a746000000000000000100000000000000010000000000000020beab344ab77c8598f29a53769f26f6315e9f6d6582bc2b9ff1c4ca2519f7d7f70000000000000001000000000000000000000000000000200fe86f07f5500c2b5e7c84736dc58b948b12731c0c53ee6e0bcf4e87b862641a00000000000000010000000000000001000000000000002085b5145a72d3b5cc42ebd3887f2b0d8b066dd487afb89617f433386cd39ad32e0000000000000001000000000000000000000000000000201f243121b9b86ee340c8e4e148b031fbfec331be88bb0e695bd3254fd9dedc460000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000001500000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d000000000000000600000000000000010000000000000000000000000000002028057a42dccd0f589047522b14cd391a55b93e97e0b8bc18a61dcc0e4b227f260000000000000001000000000000000100000000000000203970a3f189ca6e09449b5aaadbb2b4e4efd04c7f65ce13b05d5716fa50a425ab00000000000000010000000000000000000000000000002094f709638b3edb79f28d5546efd1d20615276922b29a850f63756fb3ca0c75990000000000000001000000000000000100000000000000204bbee7125d792587a9c1a2f857d5319e703fb6396be7cba35871f693d7de4ce00000000000000001000000000000000000000000000000207c9185dc31c96b43974def3ef513a5c2fa4019e8f4cd70c66e8489740340b2d7000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000001500000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b323000000000000000600000000000000010000000000000000000000000000002079bffa116b4ef85f25b45acef973a4fbd3d841c3bfd249fc24bc276fe02738850000000000000001000000000000000100000000000000202af2aa8e71f93d61fb3623054e61f3c8dc2f46b15086d77340818e316fbe544d000000000000000100000000000000000000000000000020717385618c24c857967504bf3b4790c277d34c10a2053f8387239b28978d282a0000000000000001000000000000000100000000000000206c36dc888e2b9eea00e51c0910ca1a39fed4c567e353a843c78f1449b7b894ec000000000000000100000000000000000000000000000020c261b56a4b700b9884a920f66b25b3f4e5b6af88658d82bd2b16f6956d7a628f000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000015000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b3000000000000000600000000000000010000000000000000000000000000002085977bbb663d7f8a6ab7c730fb25911ba8100e5d9e27ee9feda8fb1949da738b0000000000000001000000000000000100000000000000207c1229febc4bff04d2296f6692e6636ab7fe4d0e64e0de212b3aed75ef0ecbdb00000000000000010000000000000000000000000000002030d66f767abd1d0b73d7b3ea7c74252212fb4d88171febb5c5e5ed47357253ad00000000000000010000000000000001000000000000002057d66fcd5a6afc7d65bf36d032fddd74693048af41e04438e66c2fac0f88b93200000000000000010000000000000000000000000000002031c46556a8536b0d3fe56fdfff2cfb21049ba3d5264152ba04673f2caa7e535700000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000000100000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e400000000000000060000000000000001000000000000000000000000000000203c4c8e205aab5ca70c4b46de1c341b31594842f8d58bbd8c19819fc647bb161e000000000000000100000000000000010000000000000020e20bc164a2d176267835b99bb085e70ee37e78ff353a422c984073114f616b4a000000000000000100000000000000010000000000000020036e643e48a301a7a94aed42e82912eaec80e90bccc88d3226560d84666629b00000000000000001000000000000000100000000000000206a3d92b216e8d40712b4abc94e0d246cf0b1c2a650d3b728de1e144f5f135dd1000000000000000100000000000000010000000000000020cf7596a2151e6ecd0152bcfa96e547a86c616698a13eb311a31678d998a719af0000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000001000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000000000000000000207a654ca0e9f69c4247ac3c1fa418a0ea5395d8d67de4dbf5d8c2157fc06060fd000000000000000100000000000000010000000000000020b751ce72e98dccc2148ad757721ef6758c47d4aa7b0b42f5dec8be0e726cf8cb00000000000000010000000000000001000000000000002054be403ee6b8f8b6e7241a28dd4067a732c6494f9ca117cf49561797eed6d533000000000000000100000000000000010000000000000020012e51ceac3da1ee2785f84acb427d436432958c56fa02ff109defc16f64c3e100000000000000010000000000000001000000000000002031809213d4a7c0f0b7fbd21766c584377ac625d92403fd3c2e9421ca27c907db0000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000000100000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d00000000000000060000000000000001000000000000000000000000000000206a21cf8dad19b95d6976b80a0ea46f71e5acaeb0d7ce0c952c612cb0e1b39b500000000000000001000000000000000100000000000000204c709a8c4a4b20a4c4322b3ade4d3e9e2b2c7d4fc5883b395066ef3155908c7e00000000000000010000000000000001000000000000002070e7dcfc14e9faa78890ed551a4cf53d1af6bb685ff505bb76843215b07b7782000000000000000100000000000000010000000000000020c784e893e97965d1954bf00e2fab7b72fbb7d86352817409c7f61f9ee3d4be25000000000000000100000000000000010000000000000020ca05ed908befc970acc53cea33e55589e5965d8039c9e076f7ac7b36a36f6455000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000000100000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000000000000000000020c55bf5d6dcd4335300102ec318739ee75f5fbd435a3432dc5b5c8f8be5cf7a6300000000000000010000000000000001000000000000002075301234c565dac1ae84d09889d3f1d888ce8c86485e941d03e337e1ffbc2f0f00000000000000010000000000000001000000000000002063108f8d0ebc57e7d328e269e094211f951a8a50708c1b60724402499140bcbe000000000000000100000000000000010000000000000020429ead810e13405c3b60212aa5eafa299f1430976011b3956cf9ba62ffd1d91d0000000000000001000000000000000100000000000000206d6a12b490e789e5e3407255a61b3605485fc28f4ae6697fdbc41f4a62ac030e000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000001000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000000000000000000020e87da945d740bee23eba05f23c80fa3c259a1ccb10752b52b4dd68937ed44ace00000000000000010000000000000001000000000000002088dfac425732a6e73e6bd9697ee39aa13bebcbfbd05a069dedfe620464f7420e000000000000000100000000000000010000000000000020cc627ebfb735c76ebe34f36ee0a06d28daf02822f990a9a92460f542562da42c000000000000000100000000000000010000000000000020a36932769c7f9a976b385d2c4064689e893729c460a7115012784ced44d4169f00000000000000010000000000000001000000000000002010edd26513dde9e2d4d9edde73c0914d7c3f4f5c44106edb1335190bd6a8675d00000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000000000000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e400000000000000060000000000000001000000000000000100000000000000203bb89953794cd2baa3f836dec812c4b99b814f7577347c1b0508ae76233baf47000000000000000100000000000000010000000000000020e20bc164a2d176267835b99bb085e70ee37e78ff353a422c984073114f616b4a000000000000000100000000000000010000000000000020036e643e48a301a7a94aed42e82912eaec80e90bccc88d3226560d84666629b00000000000000001000000000000000100000000000000206a3d92b216e8d40712b4abc94e0d246cf0b1c2a650d3b728de1e144f5f135dd1000000000000000100000000000000010000000000000020cf7596a2151e6ecd0152bcfa96e547a86c616698a13eb311a31678d998a719af0000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000000000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000100000000000000203a66f41ebdb1cf249027d690746fb6e4c5816ecc627864f31cfe821cdd0df139000000000000000100000000000000010000000000000020b751ce72e98dccc2148ad757721ef6758c47d4aa7b0b42f5dec8be0e726cf8cb00000000000000010000000000000001000000000000002054be403ee6b8f8b6e7241a28dd4067a732c6494f9ca117cf49561797eed6d533000000000000000100000000000000010000000000000020012e51ceac3da1ee2785f84acb427d436432958c56fa02ff109defc16f64c3e100000000000000010000000000000001000000000000002031809213d4a7c0f0b7fbd21766c584377ac625d92403fd3c2e9421ca27c907db0000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000000000000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d0000000000000006000000000000000100000000000000010000000000000020bd730e5d7d21021a3b82c0debd626bb83120baa53da413056eb9f452064da95a0000000000000001000000000000000100000000000000204c709a8c4a4b20a4c4322b3ade4d3e9e2b2c7d4fc5883b395066ef3155908c7e00000000000000010000000000000001000000000000002070e7dcfc14e9faa78890ed551a4cf53d1af6bb685ff505bb76843215b07b7782000000000000000100000000000000010000000000000020c784e893e97965d1954bf00e2fab7b72fbb7d86352817409c7f61f9ee3d4be25000000000000000100000000000000010000000000000020ca05ed908befc970acc53cea33e55589e5965d8039c9e076f7ac7b36a36f6455000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000000000000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000010000000000000020e376b6de662a2fd89dab347b0d7c90b07a3cad0dc3e2f162c99458908e27606800000000000000010000000000000001000000000000002075301234c565dac1ae84d09889d3f1d888ce8c86485e941d03e337e1ffbc2f0f00000000000000010000000000000001000000000000002063108f8d0ebc57e7d328e269e094211f951a8a50708c1b60724402499140bcbe000000000000000100000000000000010000000000000020429ead810e13405c3b60212aa5eafa299f1430976011b3956cf9ba62ffd1d91d0000000000000001000000000000000100000000000000206d6a12b490e789e5e3407255a61b3605485fc28f4ae6697fdbc41f4a62ac030e000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000000000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000010000000000000020baf5f6d503b407d219fb1d31bf64c1689e66a5c830c810f50823a4b67bc9a4c600000000000000010000000000000001000000000000002088dfac425732a6e73e6bd9697ee39aa13bebcbfbd05a069dedfe620464f7420e000000000000000100000000000000010000000000000020cc627ebfb735c76ebe34f36ee0a06d28daf02822f990a9a92460f542562da42c000000000000000100000000000000010000000000000020a36932769c7f9a976b385d2c4064689e893729c460a7115012784ced44d4169f00000000000000010000000000000001000000000000002010edd26513dde9e2d4d9edde73c0914d7c3f4f5c44106edb1335190bd6a8675d00000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000000500000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e40000000000000006000000000000000100000000000000000000000000000020990d893ecd772d12e9fdffb40e63753b32fcc51d4f59a555cac87e8f8a6043c3000000000000000100000000000000010000000000000020e7a919c08bc1886b9f34ef01145d0fbc9283cbdd10f9c9a6df5f218a9335e593000000000000000100000000000000000000000000000020a0b1b5fc08c2e02f83f2f726b41a2505988e2197135ad1552cb352ec42efe3ee0000000000000001000000000000000100000000000000206a3d92b216e8d40712b4abc94e0d246cf0b1c2a650d3b728de1e144f5f135dd1000000000000000100000000000000010000000000000020cf7596a2151e6ecd0152bcfa96e547a86c616698a13eb311a31678d998a719af0000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000005000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000000000000000000020c8826e33aed28fd2c1375abbe11a76f9c603f28fa38275f3aaeae377e1be2acf000000000000000100000000000000010000000000000020c271469aaf67f254fd6d69e57975f51629fbfc3fb7b1bc0a9cbf0a8aa43a920400000000000000010000000000000000000000000000002073d36898ce02b74a10c4aef7a02a948616b5a7d0b174648f8ea70a30ae33c754000000000000000100000000000000010000000000000020012e51ceac3da1ee2785f84acb427d436432958c56fa02ff109defc16f64c3e100000000000000010000000000000001000000000000002031809213d4a7c0f0b7fbd21766c584377ac625d92403fd3c2e9421ca27c907db0000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000000500000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d000000000000000600000000000000010000000000000000000000000000002022e0bb4373d41696cc13d575e304948c004602bceee1df3d4e14b3294da86544000000000000000100000000000000010000000000000020d7692edfdb30d05016809594198c5437c534ad44354aa7223798a174037f47fd000000000000000100000000000000000000000000000020df64ba374100bd613493ca498420eebea8b6233d2c06bf756f9d2aaded4e0177000000000000000100000000000000010000000000000020c784e893e97965d1954bf00e2fab7b72fbb7d86352817409c7f61f9ee3d4be25000000000000000100000000000000010000000000000020ca05ed908befc970acc53cea33e55589e5965d8039c9e076f7ac7b36a36f6455000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000000500000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b32300000000000000060000000000000001000000000000000000000000000000209aca73648b728f0b18bfc2631867994acfbf68ac16b6844ee25995bb4c868ce5000000000000000100000000000000010000000000000020673319709a01475957ab85f17f6906b688c87bbe9cbf6be0fe391e55c49cf5580000000000000001000000000000000000000000000000206f2d3cf07495881ebe39657368b83e6af33701bf95947c06cc58dae5400eb216000000000000000100000000000000010000000000000020429ead810e13405c3b60212aa5eafa299f1430976011b3956cf9ba62ffd1d91d0000000000000001000000000000000100000000000000206d6a12b490e789e5e3407255a61b3605485fc28f4ae6697fdbc41f4a62ac030e000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000005000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000000000000000000020964613cb5e3b9cd3060439c13370a0b642bbda9f45189b6ae8899e5efe6a14130000000000000001000000000000000100000000000000209bfc3983cf43dceb48e11d90c256d5fc5afa7bb45818c6b058f83285ede9cd890000000000000001000000000000000000000000000000203d7a086bd38d4b04c47ab69c98301d88fcf9f0231ec623f6867e04d98ab06e37000000000000000100000000000000010000000000000020a36932769c7f9a976b385d2c4064689e893729c460a7115012784ced44d4169f00000000000000010000000000000001000000000000002010edd26513dde9e2d4d9edde73c0914d7c3f4f5c44106edb1335190bd6a8675d00000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000000f00000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e4000000000000000600000000000000010000000000000000000000000000002026b1b0a4ee0f3efc4a904d4bb001f4bf97035368288890b1a1aa7ea16d337ef400000000000000010000000000000000000000000000002058d9e671ab8d4e76324cddca2afc7147343cf671456f20a34cf1904a1a7d9baa0000000000000001000000000000000000000000000000205473551865909a8ddbd278f65ec42135b34cbc96bcd25339c3068de1607e364c000000000000000100000000000000000000000000000020300a899203d60a28e04b3b2612eddf8bcbbf1de62b02c3bf43d419c152e3b2ef000000000000000100000000000000010000000000000020cf7596a2151e6ecd0152bcfa96e547a86c616698a13eb311a31678d998a719af0000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f000000000000000f000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000000000000000000206ac07c21738f8fa61a6f228e16cbb51a971e8578aecd7a6d3eaafdba4817d8e50000000000000001000000000000000000000000000000207178fef13a6b6de65ac634e0a049bda2dc4d8b1f52f78655d9c99856f4dd6261000000000000000100000000000000000000000000000020e0f5fd7b378429de6ebc931f878e03478c9b1f84d5a49871f6071d3396c392ae0000000000000001000000000000000000000000000000207f47469f5ffdd5ad04194296e2bc72ea5fcb5ec274624c79ae7cfc4014621abb00000000000000010000000000000001000000000000002031809213d4a7c0f0b7fbd21766c584377ac625d92403fd3c2e9421ca27c907db0000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000000f00000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d000000000000000600000000000000010000000000000000000000000000002009894a9a56e60283b7df44f527cf20407ad7568d58e4fab0b3bbb0925e28e5120000000000000001000000000000000000000000000000203b7b56ebef554be4fcc92f9089438cc91a7703c031fa0c18651ca7eced2e774b000000000000000100000000000000000000000000000020321d0403bf05e43d79f16282a106e1fbf4a2e1c0c4cc72b6043ffd04ce5e92ba0000000000000001000000000000000000000000000000203280ab8cc5bacfb34810acbc089da721a2e58e824802a6ed1652fc0e8bbcd249000000000000000100000000000000010000000000000020ca05ed908befc970acc53cea33e55589e5965d8039c9e076f7ac7b36a36f6455000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000000f00000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000000000000000000020781e586dba73619deef25ad7f215755091c2bae74807ae61132321199d4039160000000000000001000000000000000000000000000000208860df9000d64832a4972b5bffc3dbb86bfbbde737f67ab664f02c2efc9410d0000000000000000100000000000000000000000000000020dc4836e3894dfbf408da01007d2625cbabc5403119d5e449e3eb602e93ae41c5000000000000000100000000000000000000000000000020b23e866daaf21825fa74bf7c0d75a5e4ed669fc725e71bc81712ffa8721c07250000000000000001000000000000000100000000000000206d6a12b490e789e5e3407255a61b3605485fc28f4ae6697fdbc41f4a62ac030e000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed000000000000000f000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000000000000000000020a3346abfb3666336152a5be97e10e6cc4f6a4a252b0bdd5edbcfbc2015399ac400000000000000010000000000000000000000000000002082016da58e41699dc9b6474ae045c40cd804d62c64f8b1147ed515b62f1eb911000000000000000100000000000000000000000000000020927607d17643eeb7c2f39cd26db1b0f6a08ceeeaeda979055824400d4c130907000000000000000100000000000000000000000000000020d273183507f843c7fef09828a295baf333ebca044edf2b79770c7a066c4ad36100000000000000010000000000000001000000000000002010edd26513dde9e2d4d9edde73c0914d7c3f4f5c44106edb1335190bd6a8675d00000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000003600000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e40000000000000006000000000000000100000000000000010000000000000020f122c9609f39f5794fddcb098f55a080cfb0493fd17f0f5484e2a4c90d82ef8a00000000000000010000000000000000000000000000002080552a6f9331724b60eb4988d50bdcc8b1529cafc6509fc1407e8aef96b5018a000000000000000100000000000000000000000000000020077e7532ae3d0af6e619c9660db9a0ab3e30c522e548acb01b8a8430a1a473660000000000000001000000000000000100000000000000208af6dbd46e837507be222c82ede0029250a5e53a9cd518f0935fffb99bb12ea7000000000000000100000000000000000000000000000020821cb4e5ed60f8ccefe58fd9ac3136abe727ed631fb9d4a33cf4415e024f9f020000000000000001000000000000000000000000000000202fa23e2d798b08467838b865973a53e4e19c5b2d80ade19cbb180aec56a9376e0000000000000036000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000100000000000000205c046b8470d5b16435806d6fcf614603d99ec77633931d33ed5cd52205640df30000000000000001000000000000000000000000000000204eecf7aac4a54a74bac778c5ac9b780ea46c4a9676cc2e3f21e5566a03426375000000000000000100000000000000000000000000000020ff0af5db9e2f521ead786d3caaa50281ce28565b14a268d10dceeb8f900a0ec00000000000000001000000000000000100000000000000202fc72a740ecbb1b330d4eee963085e5afe7bf5218d75e2f6d3eeb20efce57503000000000000000100000000000000000000000000000020e9da22de8ef9950c7c8ed7994a057a53da129fef638def79baaad47992e89bce00000000000000010000000000000000000000000000002072c42711719626fc8bcaf082271589b458b73b63db94ea53c13e43ca03482214000000000000003600000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d00000000000000060000000000000001000000000000000100000000000000204b9cad6b57e03baf3fa25a8c35bb23825c85d311ad7fc3fb0ecdef451146338f000000000000000100000000000000000000000000000020e8c87552488d5d5f307cf601721458ac82e60f819f7fea1b36455d28d6a8da710000000000000001000000000000000000000000000000200eafe55df4398be1e939b42dfc82a46af1e087ddf20320048587823dc5426aa80000000000000001000000000000000100000000000000203589e38940756f57b41d7b13fcdd382ec64fb407a8c7f1a2c95141f36d7fee6800000000000000010000000000000000000000000000002030e60438b48a10fa93ba2b2271e743883ab2776244e2b3e7ee271ed6db1f2e530000000000000001000000000000000000000000000000208b04487c0e92a27b8ce6e22f25723473ab966eb251464fa6d919c39ac29a60ff000000000000003600000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000010000000000000020b9b2fa45e36b14f80af3bfdb8c03a4c171fac9ee010fd292307abf7d5620c51a0000000000000001000000000000000000000000000000201d0be7cff306a81a133b553828027661bc20ef66a4c77a54cfbc1754d8491a5400000000000000010000000000000000000000000000002029e8f1fe38bef92c6e6ee3284dcfd6c1c382d830d00ecf940cdd7fd7084c54c00000000000000001000000000000000100000000000000204574ffa0b5387faf736ccd8e35a85b2364513eb7b4efb4065cf069df5358b51b000000000000000100000000000000000000000000000020ef7f27ef0af7f3384d95dccf464f81b3ada2d68b1c7b4e875db629973a25da5c000000000000000100000000000000000000000000000020a00b07acea464ec37ab41d5472f9101cc13a3cdfaa5f141199b9dad4efa0ccc30000000000000036000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b300000000000000060000000000000001000000000000000100000000000000203e781329994e9f716e7c5b91a32a6342909d740ae88b0fff94b746bbea48ba0b00000000000000010000000000000000000000000000002093900d869a39e162e03b9ded1188ff04e84de1a3dc90c5b3497d5c432011b061000000000000000100000000000000000000000000000020f5a5c372a81e2b53f1d9fc492c9aaf180d2d0dd1308294b63ca85ba144572ff90000000000000001000000000000000100000000000000208381a643e47a93238bd65404deffb2a516ca70cdb3c14626ec7194d84b5face30000000000000001000000000000000000000000000000205d37818349b6a8b2090fc629ee6549964519ab55586df49d7740da0a7f06a2f200000000000000010000000000000000000000000000002078cb1457e1c5d6fa6b6138eeb2c7dfa980dd7fa53f0e6b7e1e5bdc43f459f12c000000000000000200000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e400000000000000060000000000000001000000000000000100000000000000202c2a3358d239fb96a5e0050cc4327edd6cce78e76bd560169d7ad17adc2c727600000000000000010000000000000000000000000000002077289669ba2e6c829d0df23bcaafa73642d7223e17dbc52b19ed7228539b142d000000000000000100000000000000010000000000000020036e643e48a301a7a94aed42e82912eaec80e90bccc88d3226560d84666629b00000000000000001000000000000000100000000000000206a3d92b216e8d40712b4abc94e0d246cf0b1c2a650d3b728de1e144f5f135dd1000000000000000100000000000000010000000000000020cf7596a2151e6ecd0152bcfa96e547a86c616698a13eb311a31678d998a719af0000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000002000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000010000000000000020069e63e3135c114e3b6eaf97dc924122c8bca2cbc9ae88a7f247e5cb34dadf3f000000000000000100000000000000000000000000000020bdc88be5830648e3337ab2dd9af9e37f3e648a38fc1e26fac2cc4c99f0a0972500000000000000010000000000000001000000000000002054be403ee6b8f8b6e7241a28dd4067a732c6494f9ca117cf49561797eed6d533000000000000000100000000000000010000000000000020012e51ceac3da1ee2785f84acb427d436432958c56fa02ff109defc16f64c3e100000000000000010000000000000001000000000000002031809213d4a7c0f0b7fbd21766c584377ac625d92403fd3c2e9421ca27c907db0000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000000200000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d00000000000000060000000000000001000000000000000100000000000000202304ca2b0a7c6686642f04b56afe563c7ae8e4edf122e9a048ce1978a077d144000000000000000100000000000000000000000000000020d3d0be1ee60e216e6b2e044a6a83b4011aa9501107b8451217664cf027ddd83b00000000000000010000000000000001000000000000002070e7dcfc14e9faa78890ed551a4cf53d1af6bb685ff505bb76843215b07b7782000000000000000100000000000000010000000000000020c784e893e97965d1954bf00e2fab7b72fbb7d86352817409c7f61f9ee3d4be25000000000000000100000000000000010000000000000020ca05ed908befc970acc53cea33e55589e5965d8039c9e076f7ac7b36a36f6455000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000000200000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000010000000000000020c4fded6f0da5c0a50cadb84f323779f22ba6df87a50e9532779bdb2b76d42c820000000000000001000000000000000000000000000000200128dd090282e79c47f4be830c206958d62c000e2c62ed2d2ded81fe59564c8700000000000000010000000000000001000000000000002063108f8d0ebc57e7d328e269e094211f951a8a50708c1b60724402499140bcbe000000000000000100000000000000010000000000000020429ead810e13405c3b60212aa5eafa299f1430976011b3956cf9ba62ffd1d91d0000000000000001000000000000000100000000000000206d6a12b490e789e5e3407255a61b3605485fc28f4ae6697fdbc41f4a62ac030e000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000002000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000010000000000000020ad0957a8e5a8e9b53925156e920ce9b1624772bf9a0f25da6dc5538415e91c0b0000000000000001000000000000000000000000000000202e8f9e9293aea3862946424b368c2188dd37c47551b2b3c17dafcb05e1a069f0000000000000000100000000000000010000000000000020cc627ebfb735c76ebe34f36ee0a06d28daf02822f990a9a92460f542562da42c000000000000000100000000000000010000000000000020a36932769c7f9a976b385d2c4064689e893729c460a7115012784ced44d4169f00000000000000010000000000000001000000000000002010edd26513dde9e2d4d9edde73c0914d7c3f4f5c44106edb1335190bd6a8675d00000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000000200000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e400000000000000060000000000000001000000000000000100000000000000202c2a3358d239fb96a5e0050cc4327edd6cce78e76bd560169d7ad17adc2c727600000000000000010000000000000000000000000000002077289669ba2e6c829d0df23bcaafa73642d7223e17dbc52b19ed7228539b142d000000000000000100000000000000010000000000000020036e643e48a301a7a94aed42e82912eaec80e90bccc88d3226560d84666629b00000000000000001000000000000000100000000000000206a3d92b216e8d40712b4abc94e0d246cf0b1c2a650d3b728de1e144f5f135dd1000000000000000100000000000000010000000000000020cf7596a2151e6ecd0152bcfa96e547a86c616698a13eb311a31678d998a719af0000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000002000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000010000000000000020069e63e3135c114e3b6eaf97dc924122c8bca2cbc9ae88a7f247e5cb34dadf3f000000000000000100000000000000000000000000000020bdc88be5830648e3337ab2dd9af9e37f3e648a38fc1e26fac2cc4c99f0a0972500000000000000010000000000000001000000000000002054be403ee6b8f8b6e7241a28dd4067a732c6494f9ca117cf49561797eed6d533000000000000000100000000000000010000000000000020012e51ceac3da1ee2785f84acb427d436432958c56fa02ff109defc16f64c3e100000000000000010000000000000001000000000000002031809213d4a7c0f0b7fbd21766c584377ac625d92403fd3c2e9421ca27c907db0000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000000200000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d00000000000000060000000000000001000000000000000100000000000000202304ca2b0a7c6686642f04b56afe563c7ae8e4edf122e9a048ce1978a077d144000000000000000100000000000000000000000000000020d3d0be1ee60e216e6b2e044a6a83b4011aa9501107b8451217664cf027ddd83b00000000000000010000000000000001000000000000002070e7dcfc14e9faa78890ed551a4cf53d1af6bb685ff505bb76843215b07b7782000000000000000100000000000000010000000000000020c784e893e97965d1954bf00e2fab7b72fbb7d86352817409c7f61f9ee3d4be25000000000000000100000000000000010000000000000020ca05ed908befc970acc53cea33e55589e5965d8039c9e076f7ac7b36a36f6455000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000000200000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000010000000000000020c4fded6f0da5c0a50cadb84f323779f22ba6df87a50e9532779bdb2b76d42c820000000000000001000000000000000000000000000000200128dd090282e79c47f4be830c206958d62c000e2c62ed2d2ded81fe59564c8700000000000000010000000000000001000000000000002063108f8d0ebc57e7d328e269e094211f951a8a50708c1b60724402499140bcbe000000000000000100000000000000010000000000000020429ead810e13405c3b60212aa5eafa299f1430976011b3956cf9ba62ffd1d91d0000000000000001000000000000000100000000000000206d6a12b490e789e5e3407255a61b3605485fc28f4ae6697fdbc41f4a62ac030e000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000002000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000010000000000000020ad0957a8e5a8e9b53925156e920ce9b1624772bf9a0f25da6dc5538415e91c0b0000000000000001000000000000000000000000000000202e8f9e9293aea3862946424b368c2188dd37c47551b2b3c17dafcb05e1a069f0000000000000000100000000000000010000000000000020cc627ebfb735c76ebe34f36ee0a06d28daf02822f990a9a92460f542562da42c000000000000000100000000000000010000000000000020a36932769c7f9a976b385d2c4064689e893729c460a7115012784ced44d4169f00000000000000010000000000000001000000000000002010edd26513dde9e2d4d9edde73c0914d7c3f4f5c44106edb1335190bd6a8675d00000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000001c00000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e400000000000000060000000000000001000000000000000100000000000000200f143a16674958d9e28ba2f3c853a0649499d01da8145da611d76a546d68bef1000000000000000100000000000000010000000000000020f49c977f2b28edaece65e109dec4da08ee8eff546c65598210fdc1cb3fd9371d0000000000000001000000000000000000000000000000203c9b84ea790b2a2a39d9611d6fffe81b8f6a4780bc49ceef9d562efb8bb0e3c100000000000000010000000000000000000000000000002025970c30f2158b64f6db602006cf8ec3088a6951235f1463b4ec26472e7bf04e000000000000000100000000000000000000000000000020c0476d0bd1bba12844993b2b90c4d4e74f42cb95a863a33400c0b3ce5d7afb970000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f000000000000001c000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000100000000000000201cceaf7c47376237f108fb8705182e5a6095143f1424c853d1f89ca4d8bb08ea000000000000000100000000000000010000000000000020273c8c891ee07115e20bf18ab52966cd99ea87ede285698502fc4dab8458420000000000000000010000000000000000000000000000002023d97489db03b380974b7d10e10c0a8f85c4800f21e95c23e7827615a90c923c0000000000000001000000000000000000000000000000200c4338e456e8a386ea42ad72cd73d95178039fdb76ee7e286661fbbf95bb3b040000000000000001000000000000000000000000000000201f243121b9b86ee340c8e4e148b031fbfec331be88bb0e695bd3254fd9dedc460000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000001c00000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d00000000000000060000000000000001000000000000000100000000000000205b5deb0951110878cfa71a1f38b71299dc8a5cfea1c1885555b870f45e8eb67f000000000000000100000000000000010000000000000020d4bc73bbfb3732c9c2675cee6355f9cf43f14e3b5c653d8eeb18f8e3de4baaa400000000000000010000000000000000000000000000002083b89a63fb02770e2f72bbc11c0bfed0438afe2b97dafc63d6b272c56e3f2360000000000000000100000000000000000000000000000020a978e635bc01e37323e8daa22db845c6f4b65dbff8aec0ddee43de3cb433d5d80000000000000001000000000000000000000000000000207c9185dc31c96b43974def3ef513a5c2fa4019e8f4cd70c66e8489740340b2d7000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000001c00000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b323000000000000000600000000000000010000000000000001000000000000002087ceeab2dcdbbd6564e193050b486fbaaa65eff65a8c2709c0cf05056435a63e000000000000000100000000000000010000000000000020a03ce711afd0464d0fe4a4b467dc0ff4cce8199435953d6464d6a43f2dd6bcd90000000000000001000000000000000000000000000000201480dd9071ccde4a4f721bb5a64cbd7ecff12cfd29018b3d672f16038683d05000000000000000010000000000000000000000000000002049d1d86419f38c5e84555595d210426f3d97ab19505fa1438516e93a0552e041000000000000000100000000000000000000000000000020c261b56a4b700b9884a920f66b25b3f4e5b6af88658d82bd2b16f6956d7a628f000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed000000000000001c000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b3000000000000000600000000000000010000000000000001000000000000002007b2feeb68aada7c46af118d947b98785bf627ff74d8f09bd55efb66542602b20000000000000001000000000000000100000000000000202712fb7df6ea6c8cd188ee825119f43fcd845fc37e172448ff0b368cb4a2e894000000000000000100000000000000000000000000000020a4f30078f6c82eeb23635e8509271f741f7df1496de69591523572481398a01a0000000000000001000000000000000000000000000000207f6c04f2a2686f09f8ed1d6818a1534af529f47bed8bb55dbf5eafcc3ebff42400000000000000010000000000000000000000000000002031c46556a8536b0d3fe56fdfff2cfb21049ba3d5264152ba04673f2caa7e535700000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000000000000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e400000000000000060000000000000001000000000000000100000000000000203bb89953794cd2baa3f836dec812c4b99b814f7577347c1b0508ae76233baf47000000000000000100000000000000010000000000000020e20bc164a2d176267835b99bb085e70ee37e78ff353a422c984073114f616b4a000000000000000100000000000000010000000000000020036e643e48a301a7a94aed42e82912eaec80e90bccc88d3226560d84666629b00000000000000001000000000000000100000000000000206a3d92b216e8d40712b4abc94e0d246cf0b1c2a650d3b728de1e144f5f135dd1000000000000000100000000000000010000000000000020cf7596a2151e6ecd0152bcfa96e547a86c616698a13eb311a31678d998a719af0000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000000000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000100000000000000203a66f41ebdb1cf249027d690746fb6e4c5816ecc627864f31cfe821cdd0df139000000000000000100000000000000010000000000000020b751ce72e98dccc2148ad757721ef6758c47d4aa7b0b42f5dec8be0e726cf8cb00000000000000010000000000000001000000000000002054be403ee6b8f8b6e7241a28dd4067a732c6494f9ca117cf49561797eed6d533000000000000000100000000000000010000000000000020012e51ceac3da1ee2785f84acb427d436432958c56fa02ff109defc16f64c3e100000000000000010000000000000001000000000000002031809213d4a7c0f0b7fbd21766c584377ac625d92403fd3c2e9421ca27c907db0000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000000000000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d0000000000000006000000000000000100000000000000010000000000000020bd730e5d7d21021a3b82c0debd626bb83120baa53da413056eb9f452064da95a0000000000000001000000000000000100000000000000204c709a8c4a4b20a4c4322b3ade4d3e9e2b2c7d4fc5883b395066ef3155908c7e00000000000000010000000000000001000000000000002070e7dcfc14e9faa78890ed551a4cf53d1af6bb685ff505bb76843215b07b7782000000000000000100000000000000010000000000000020c784e893e97965d1954bf00e2fab7b72fbb7d86352817409c7f61f9ee3d4be25000000000000000100000000000000010000000000000020ca05ed908befc970acc53cea33e55589e5965d8039c9e076f7ac7b36a36f6455000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000000000000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000010000000000000020e376b6de662a2fd89dab347b0d7c90b07a3cad0dc3e2f162c99458908e27606800000000000000010000000000000001000000000000002075301234c565dac1ae84d09889d3f1d888ce8c86485e941d03e337e1ffbc2f0f00000000000000010000000000000001000000000000002063108f8d0ebc57e7d328e269e094211f951a8a50708c1b60724402499140bcbe000000000000000100000000000000010000000000000020429ead810e13405c3b60212aa5eafa299f1430976011b3956cf9ba62ffd1d91d0000000000000001000000000000000100000000000000206d6a12b490e789e5e3407255a61b3605485fc28f4ae6697fdbc41f4a62ac030e000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000000000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000010000000000000020baf5f6d503b407d219fb1d31bf64c1689e66a5c830c810f50823a4b67bc9a4c600000000000000010000000000000001000000000000002088dfac425732a6e73e6bd9697ee39aa13bebcbfbd05a069dedfe620464f7420e000000000000000100000000000000010000000000000020cc627ebfb735c76ebe34f36ee0a06d28daf02822f990a9a92460f542562da42c000000000000000100000000000000010000000000000020a36932769c7f9a976b385d2c4064689e893729c460a7115012784ced44d4169f00000000000000010000000000000001000000000000002010edd26513dde9e2d4d9edde73c0914d7c3f4f5c44106edb1335190bd6a8675d00000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000001500000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e4000000000000000600000000000000010000000000000000000000000000002083fca54e46700fdc19b5808ae517cc0ac99ffafc4ea350df88cf68c383a0baa1000000000000000100000000000000010000000000000020cd6677de85b16b065ac594b9242fb27a207f45b22abab8921e1182d421ede8080000000000000001000000000000000000000000000000203033e580e5ecf18a4e51f0ecf90e49f75d07abf49e6e1f2fb0f6f3f21b2b13890000000000000001000000000000000100000000000000201796429c8b13ebc59c2f83b796b3b926978c70fec3627c1ec454c8494358fb2d000000000000000100000000000000000000000000000020c0476d0bd1bba12844993b2b90c4d4e74f42cb95a863a33400c0b3ce5d7afb970000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000015000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000000000000000000204f55e3f6bc9381d1bff63a964f5f17eb1c352d095126c6386bf0327af978a746000000000000000100000000000000010000000000000020beab344ab77c8598f29a53769f26f6315e9f6d6582bc2b9ff1c4ca2519f7d7f70000000000000001000000000000000000000000000000200fe86f07f5500c2b5e7c84736dc58b948b12731c0c53ee6e0bcf4e87b862641a00000000000000010000000000000001000000000000002085b5145a72d3b5cc42ebd3887f2b0d8b066dd487afb89617f433386cd39ad32e0000000000000001000000000000000000000000000000201f243121b9b86ee340c8e4e148b031fbfec331be88bb0e695bd3254fd9dedc460000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000001500000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d000000000000000600000000000000010000000000000000000000000000002028057a42dccd0f589047522b14cd391a55b93e97e0b8bc18a61dcc0e4b227f260000000000000001000000000000000100000000000000203970a3f189ca6e09449b5aaadbb2b4e4efd04c7f65ce13b05d5716fa50a425ab00000000000000010000000000000000000000000000002094f709638b3edb79f28d5546efd1d20615276922b29a850f63756fb3ca0c75990000000000000001000000000000000100000000000000204bbee7125d792587a9c1a2f857d5319e703fb6396be7cba35871f693d7de4ce00000000000000001000000000000000000000000000000207c9185dc31c96b43974def3ef513a5c2fa4019e8f4cd70c66e8489740340b2d7000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000001500000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b323000000000000000600000000000000010000000000000000000000000000002079bffa116b4ef85f25b45acef973a4fbd3d841c3bfd249fc24bc276fe02738850000000000000001000000000000000100000000000000202af2aa8e71f93d61fb3623054e61f3c8dc2f46b15086d77340818e316fbe544d000000000000000100000000000000000000000000000020717385618c24c857967504bf3b4790c277d34c10a2053f8387239b28978d282a0000000000000001000000000000000100000000000000206c36dc888e2b9eea00e51c0910ca1a39fed4c567e353a843c78f1449b7b894ec000000000000000100000000000000000000000000000020c261b56a4b700b9884a920f66b25b3f4e5b6af88658d82bd2b16f6956d7a628f000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000015000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b3000000000000000600000000000000010000000000000000000000000000002085977bbb663d7f8a6ab7c730fb25911ba8100e5d9e27ee9feda8fb1949da738b0000000000000001000000000000000100000000000000207c1229febc4bff04d2296f6692e6636ab7fe4d0e64e0de212b3aed75ef0ecbdb00000000000000010000000000000000000000000000002030d66f767abd1d0b73d7b3ea7c74252212fb4d88171febb5c5e5ed47357253ad00000000000000010000000000000001000000000000002057d66fcd5a6afc7d65bf36d032fddd74693048af41e04438e66c2fac0f88b93200000000000000010000000000000000000000000000002031c46556a8536b0d3fe56fdfff2cfb21049ba3d5264152ba04673f2caa7e535700000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000001600000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e400000000000000060000000000000001000000000000000100000000000000209c9f68f179d5614145d954a25ca3489db56fb3665016d4a567b890a88fb6a75300000000000000010000000000000000000000000000002044a1806f651125fbbfa67d925626256465e7abb7a2ae7d8ef65e4df52570a1cb0000000000000001000000000000000000000000000000203033e580e5ecf18a4e51f0ecf90e49f75d07abf49e6e1f2fb0f6f3f21b2b13890000000000000001000000000000000100000000000000201796429c8b13ebc59c2f83b796b3b926978c70fec3627c1ec454c8494358fb2d000000000000000100000000000000000000000000000020c0476d0bd1bba12844993b2b90c4d4e74f42cb95a863a33400c0b3ce5d7afb970000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000016000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f409000000000000000600000000000000010000000000000001000000000000002093be386e76e4bbd538c0305503a97a28483a1b5626eb2699b26634be0d0882270000000000000001000000000000000000000000000000200e6be21a80969c82d9a8a648fd8c8b22ad3b74446c59e3ba88884dbdd7b307370000000000000001000000000000000000000000000000200fe86f07f5500c2b5e7c84736dc58b948b12731c0c53ee6e0bcf4e87b862641a00000000000000010000000000000001000000000000002085b5145a72d3b5cc42ebd3887f2b0d8b066dd487afb89617f433386cd39ad32e0000000000000001000000000000000000000000000000201f243121b9b86ee340c8e4e148b031fbfec331be88bb0e695bd3254fd9dedc460000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000001600000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d0000000000000006000000000000000100000000000000010000000000000020e66cdfb0a64ca7f93f454c0e9699c009da1c3cc8231193bb8fffffcc42233c6a000000000000000100000000000000000000000000000020058ad57f2267f5915e9512b529b6b6a865d2d80f1db8107bfa704eaf5975fb2000000000000000010000000000000000000000000000002094f709638b3edb79f28d5546efd1d20615276922b29a850f63756fb3ca0c75990000000000000001000000000000000100000000000000204bbee7125d792587a9c1a2f857d5319e703fb6396be7cba35871f693d7de4ce00000000000000001000000000000000000000000000000207c9185dc31c96b43974def3ef513a5c2fa4019e8f4cd70c66e8489740340b2d7000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000001600000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000010000000000000020d39900d0d3640f1fd480bc288d7a830b41c7bee12c77a9e72f5e2ed30326067c0000000000000001000000000000000000000000000000202d0665c8f29e372a750e6cd91c673df89ec607d3915ac350e3b9d697a08ca3a7000000000000000100000000000000000000000000000020717385618c24c857967504bf3b4790c277d34c10a2053f8387239b28978d282a0000000000000001000000000000000100000000000000206c36dc888e2b9eea00e51c0910ca1a39fed4c567e353a843c78f1449b7b894ec000000000000000100000000000000000000000000000020c261b56a4b700b9884a920f66b25b3f4e5b6af88658d82bd2b16f6956d7a628f000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000016000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000010000000000000020db745643fb4f1b6a9143171d941835cd2a49f22b8df13eb8db0fa3266cb99fb400000000000000010000000000000000000000000000002046b00ad7e24abe5714eee2a57bfb6969d2c5459ff04f4e726e1955cac69c891700000000000000010000000000000000000000000000002030d66f767abd1d0b73d7b3ea7c74252212fb4d88171febb5c5e5ed47357253ad00000000000000010000000000000001000000000000002057d66fcd5a6afc7d65bf36d032fddd74693048af41e04438e66c2fac0f88b93200000000000000010000000000000000000000000000002031c46556a8536b0d3fe56fdfff2cfb21049ba3d5264152ba04673f2caa7e535700000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000000300000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e400000000000000060000000000000001000000000000000000000000000000208454707b6e7951d8801e198b78b3ac1d037b51b81d77be80edf6bfd3c537b0fc00000000000000010000000000000000000000000000002077289669ba2e6c829d0df23bcaafa73642d7223e17dbc52b19ed7228539b142d000000000000000100000000000000010000000000000020036e643e48a301a7a94aed42e82912eaec80e90bccc88d3226560d84666629b00000000000000001000000000000000100000000000000206a3d92b216e8d40712b4abc94e0d246cf0b1c2a650d3b728de1e144f5f135dd1000000000000000100000000000000010000000000000020cf7596a2151e6ecd0152bcfa96e547a86c616698a13eb311a31678d998a719af0000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000003000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000000000000000000208a3b2beebf801e823b9e7e8ca292c4aa008e373e9da13bbe5bf45c4a822197ed000000000000000100000000000000000000000000000020bdc88be5830648e3337ab2dd9af9e37f3e648a38fc1e26fac2cc4c99f0a0972500000000000000010000000000000001000000000000002054be403ee6b8f8b6e7241a28dd4067a732c6494f9ca117cf49561797eed6d533000000000000000100000000000000010000000000000020012e51ceac3da1ee2785f84acb427d436432958c56fa02ff109defc16f64c3e100000000000000010000000000000001000000000000002031809213d4a7c0f0b7fbd21766c584377ac625d92403fd3c2e9421ca27c907db0000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000000300000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d00000000000000060000000000000001000000000000000000000000000000203154ffb0123f45c5b0bc96dbe3e8becd2aaaadedbca9c86f42ceb15e5ade783d000000000000000100000000000000000000000000000020d3d0be1ee60e216e6b2e044a6a83b4011aa9501107b8451217664cf027ddd83b00000000000000010000000000000001000000000000002070e7dcfc14e9faa78890ed551a4cf53d1af6bb685ff505bb76843215b07b7782000000000000000100000000000000010000000000000020c784e893e97965d1954bf00e2fab7b72fbb7d86352817409c7f61f9ee3d4be25000000000000000100000000000000010000000000000020ca05ed908befc970acc53cea33e55589e5965d8039c9e076f7ac7b36a36f6455000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000000300000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b323000000000000000600000000000000010000000000000000000000000000002050705274cb528e0c14ec33963539e066c064372be245d9f1b7b7c237967164500000000000000001000000000000000000000000000000200128dd090282e79c47f4be830c206958d62c000e2c62ed2d2ded81fe59564c8700000000000000010000000000000001000000000000002063108f8d0ebc57e7d328e269e094211f951a8a50708c1b60724402499140bcbe000000000000000100000000000000010000000000000020429ead810e13405c3b60212aa5eafa299f1430976011b3956cf9ba62ffd1d91d0000000000000001000000000000000100000000000000206d6a12b490e789e5e3407255a61b3605485fc28f4ae6697fdbc41f4a62ac030e000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000003000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000000000000000000020b9a4747e8dd350df110778a74d35378dfe87596e509c569dc044b979831360bd0000000000000001000000000000000000000000000000202e8f9e9293aea3862946424b368c2188dd37c47551b2b3c17dafcb05e1a069f0000000000000000100000000000000010000000000000020cc627ebfb735c76ebe34f36ee0a06d28daf02822f990a9a92460f542562da42c000000000000000100000000000000010000000000000020a36932769c7f9a976b385d2c4064689e893729c460a7115012784ced44d4169f00000000000000010000000000000001000000000000002010edd26513dde9e2d4d9edde73c0914d7c3f4f5c44106edb1335190bd6a8675d00000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000002d00000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e40000000000000006000000000000000100000000000000000000000000000020131e92b88b0a6d8b34699bbd2e9d86bdc39820bbadd8647fb23ca2b15dca9d590000000000000001000000000000000100000000000000208922f1b9f3074614b9db6f2549f3f5ce07ee8adbd9ac84e77de64f3f788a6eb5000000000000000100000000000000000000000000000020f3ad8fc6cfa3a99b28d096c90990f3c24ac076ab3cf689b7c267a1448cd773cb0000000000000001000000000000000000000000000000206c4baf98bc80c1abc6c59b8e82f4c2dc23405a6bc1abbc273de0e45984ffb9a00000000000000001000000000000000100000000000000201b96bf994f53f651394f15f5db116e896fa1ab44efe0a6262949e96de58bff090000000000000001000000000000000000000000000000202fa23e2d798b08467838b865973a53e4e19c5b2d80ade19cbb180aec56a9376e000000000000002d000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000000000000000000020d41d64993a4b576ff654a56ff2004cdcd4253b33e3a6f608478c2234f5fa046d000000000000000100000000000000010000000000000020c2544d7afbaa104d2d14886250617b176a0c680dbbb2ca48fdc472889ac8d452000000000000000100000000000000000000000000000020dd8b3cce2949cdb0d005dfcb4be92dddbcd03e8339b76662b640dd5480343878000000000000000100000000000000000000000000000020afbf1f71bc2124f671aca446e85c5b2a26b711122acb80fefe81dd090fdb8e9a00000000000000010000000000000001000000000000002046692d64e298cf42f3e0cf09149e8b1ba6093100c0f4d1501fee627da591f20e00000000000000010000000000000000000000000000002072c42711719626fc8bcaf082271589b458b73b63db94ea53c13e43ca03482214000000000000002d00000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d00000000000000060000000000000001000000000000000000000000000000206123be6594b9bab75aa9b2ab21d2bf69c3f067277618653028305a723fad41ba00000000000000010000000000000001000000000000002029d9a560ae6a780451ad91c7dee92ef3b9657a51559ed0a5c24d9ca761d680d0000000000000000100000000000000000000000000000020bdc5f7058de4f0db1e5c2da6a8823447801030e8d5200d3ea7b7de97786ee2d2000000000000000100000000000000000000000000000020463fbc9d5384e010009b169ceb3ef07bf1aae15d890cb1f5c86ec0fc5db6441a000000000000000100000000000000010000000000000020b865081822324014a2ad2adb025c6233367d552e7b8d5c65dcb3c00b68fdb2770000000000000001000000000000000000000000000000208b04487c0e92a27b8ce6e22f25723473ab966eb251464fa6d919c39ac29a60ff000000000000002d00000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b32300000000000000060000000000000001000000000000000000000000000000208e707591cbd8abb67a7b380462059c139bdc0be5bcb14fb69250cae4986e8f1d0000000000000001000000000000000100000000000000205d08cb676e9a43f004ed3cd33feb328f0c147e417fe17f18a75f9973cd323f7d000000000000000100000000000000000000000000000020d88f0886a68098a59d72569dfe3299ad38edcc59bd11338a537a8bf7aded471a00000000000000010000000000000000000000000000002059e0cffb1b66783ce400ea9e93bbaeaf0fc9283c9cfd578c65daa4375f5e01900000000000000001000000000000000100000000000000201da2e84c157ae73f74b662421f72dc7af8ef5d8001e6e962a5538cb1a53a8321000000000000000100000000000000000000000000000020a00b07acea464ec37ab41d5472f9101cc13a3cdfaa5f141199b9dad4efa0ccc3000000000000002d000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000000000000000000020bef08993e8ee26516c875432116ff4c1b8b45a302d15bcd77bcf87a8759d243d0000000000000001000000000000000100000000000000205db7a80f55dd7bd507d1603151fee6c109db040c4b431da58fd33002603a4e4d00000000000000010000000000000000000000000000002006ed4e0ef5d3ce0c49b6e8950af99435b5bca3905a6502fd9190b6f084a505f5000000000000000100000000000000000000000000000020d2ace2c01e400a2af009a43598dd9e34d359aa6ac5e1e4e2607befbfd9a370180000000000000001000000000000000100000000000000209cabf053781e02384f83b3ede75bfaadda9578d1f80727f379b0adbcf4e706d200000000000000010000000000000000000000000000002078cb1457e1c5d6fa6b6138eeb2c7dfa980dd7fa53f0e6b7e1e5bdc43f459f12c000000000000001600000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e400000000000000060000000000000001000000000000000100000000000000209c9f68f179d5614145d954a25ca3489db56fb3665016d4a567b890a88fb6a75300000000000000010000000000000000000000000000002044a1806f651125fbbfa67d925626256465e7abb7a2ae7d8ef65e4df52570a1cb0000000000000001000000000000000000000000000000203033e580e5ecf18a4e51f0ecf90e49f75d07abf49e6e1f2fb0f6f3f21b2b13890000000000000001000000000000000100000000000000201796429c8b13ebc59c2f83b796b3b926978c70fec3627c1ec454c8494358fb2d000000000000000100000000000000000000000000000020c0476d0bd1bba12844993b2b90c4d4e74f42cb95a863a33400c0b3ce5d7afb970000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000016000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f409000000000000000600000000000000010000000000000001000000000000002093be386e76e4bbd538c0305503a97a28483a1b5626eb2699b26634be0d0882270000000000000001000000000000000000000000000000200e6be21a80969c82d9a8a648fd8c8b22ad3b74446c59e3ba88884dbdd7b307370000000000000001000000000000000000000000000000200fe86f07f5500c2b5e7c84736dc58b948b12731c0c53ee6e0bcf4e87b862641a00000000000000010000000000000001000000000000002085b5145a72d3b5cc42ebd3887f2b0d8b066dd487afb89617f433386cd39ad32e0000000000000001000000000000000000000000000000201f243121b9b86ee340c8e4e148b031fbfec331be88bb0e695bd3254fd9dedc460000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000001600000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d0000000000000006000000000000000100000000000000010000000000000020e66cdfb0a64ca7f93f454c0e9699c009da1c3cc8231193bb8fffffcc42233c6a000000000000000100000000000000000000000000000020058ad57f2267f5915e9512b529b6b6a865d2d80f1db8107bfa704eaf5975fb2000000000000000010000000000000000000000000000002094f709638b3edb79f28d5546efd1d20615276922b29a850f63756fb3ca0c75990000000000000001000000000000000100000000000000204bbee7125d792587a9c1a2f857d5319e703fb6396be7cba35871f693d7de4ce00000000000000001000000000000000000000000000000207c9185dc31c96b43974def3ef513a5c2fa4019e8f4cd70c66e8489740340b2d7000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000001600000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000010000000000000020d39900d0d3640f1fd480bc288d7a830b41c7bee12c77a9e72f5e2ed30326067c0000000000000001000000000000000000000000000000202d0665c8f29e372a750e6cd91c673df89ec607d3915ac350e3b9d697a08ca3a7000000000000000100000000000000000000000000000020717385618c24c857967504bf3b4790c277d34c10a2053f8387239b28978d282a0000000000000001000000000000000100000000000000206c36dc888e2b9eea00e51c0910ca1a39fed4c567e353a843c78f1449b7b894ec000000000000000100000000000000000000000000000020c261b56a4b700b9884a920f66b25b3f4e5b6af88658d82bd2b16f6956d7a628f000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000016000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000010000000000000020db745643fb4f1b6a9143171d941835cd2a49f22b8df13eb8db0fa3266cb99fb400000000000000010000000000000000000000000000002046b00ad7e24abe5714eee2a57bfb6969d2c5459ff04f4e726e1955cac69c891700000000000000010000000000000000000000000000002030d66f767abd1d0b73d7b3ea7c74252212fb4d88171febb5c5e5ed47357253ad00000000000000010000000000000001000000000000002057d66fcd5a6afc7d65bf36d032fddd74693048af41e04438e66c2fac0f88b93200000000000000010000000000000000000000000000002031c46556a8536b0d3fe56fdfff2cfb21049ba3d5264152ba04673f2caa7e535700000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000002700000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e40000000000000006000000000000000100000000000000000000000000000020b2c3cf21c16d10118be05ea9f06a74c8636e1894dc001fce8df8979fbf53c7ac0000000000000001000000000000000000000000000000208cbdb49d77f56b3a6db9221d1d57b04818fca524c7267a0e8d4022fcfafd117800000000000000010000000000000000000000000000002055c308be9438db42c91d1431d01b869ac37750ba0513a5170220112753ea0a6d000000000000000100000000000000010000000000000020a5edd8ba3a02c79d2a439b5c19c698d48a65e1da6ea81f91e95da0f3870facfe0000000000000001000000000000000100000000000000201b96bf994f53f651394f15f5db116e896fa1ab44efe0a6262949e96de58bff090000000000000001000000000000000000000000000000202fa23e2d798b08467838b865973a53e4e19c5b2d80ade19cbb180aec56a9376e0000000000000027000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000000000000000000204977e800cfc467c1d09085ed6e9512c718f6873f75f0b6378f811505aaef10de000000000000000100000000000000000000000000000020caa15c2cef9d0822879f1cbc7e47bf2ecca0c34dcce47cf21e705e0c27facd2800000000000000010000000000000000000000000000002094bfaa799c5496d89c7fba1c0074bf53e44026b1e3dfcc51a0820cda8b8b592e00000000000000010000000000000001000000000000002091ef79e3954e71b043bab2f4f7563da4ffcc85b3b6a3abb402389ce312ae3a1b00000000000000010000000000000001000000000000002046692d64e298cf42f3e0cf09149e8b1ba6093100c0f4d1501fee627da591f20e00000000000000010000000000000000000000000000002072c42711719626fc8bcaf082271589b458b73b63db94ea53c13e43ca03482214000000000000002700000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d0000000000000006000000000000000100000000000000000000000000000020203b37c58e39089e089de87b86bcdff0e4f149ca576b2ef9fc50463f30eb32ca0000000000000001000000000000000000000000000000201a74b33545d3a31e38488fc2de7d796ea63b27a71bd3cb3cc8ae63fac1b7efad0000000000000001000000000000000000000000000000205821e6171d155bf5aafbdc8474a3a9c33f58e247c6f3c54f71d8c9caaf009eb800000000000000010000000000000001000000000000002013307d874fafd2c736df4f1675c3fc7573fd05858f421470013ba3aa52dcdcac000000000000000100000000000000010000000000000020b865081822324014a2ad2adb025c6233367d552e7b8d5c65dcb3c00b68fdb2770000000000000001000000000000000000000000000000208b04487c0e92a27b8ce6e22f25723473ab966eb251464fa6d919c39ac29a60ff000000000000002700000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b32300000000000000060000000000000001000000000000000000000000000000200a24f0f06db4a7d7321e4900fff281689501ee4f536d67d58bccb4368412ed0e0000000000000001000000000000000000000000000000207d428f3d57f89f1804dbbaa40de511c119d8f43b693258ebba485c5b8aedfc91000000000000000100000000000000000000000000000020c05b0bfce2b5cf26286b63fee5b1ce52f6fd2d6f3b79f0407ca7ced961abd5100000000000000001000000000000000100000000000000205333dabae5459fcb448fee6926384a3bafc2af8b75f276339e9b28108bb4995d0000000000000001000000000000000100000000000000201da2e84c157ae73f74b662421f72dc7af8ef5d8001e6e962a5538cb1a53a8321000000000000000100000000000000000000000000000020a00b07acea464ec37ab41d5472f9101cc13a3cdfaa5f141199b9dad4efa0ccc30000000000000027000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000000000000000000020f90e8e24d2cf73ab6c6eadaccc24f9204e0c7d3a7ee2fcc30369cb209394ed62000000000000000100000000000000000000000000000020cd263aed361b4e176016494f2e92a46d33c7ff0629bac17eaaf60ea69c1674660000000000000001000000000000000000000000000000200953edfc6e8ff0936b8105e6357c9590e4f20e0497be561dc97db9d13e014c0d000000000000000100000000000000010000000000000020cd1cbe0f3f5a57ed48862a459d119ab55aa7fbf2685055ced90ff45d1e7cd0720000000000000001000000000000000100000000000000209cabf053781e02384f83b3ede75bfaadda9578d1f80727f379b0adbcf4e706d200000000000000010000000000000000000000000000002078cb1457e1c5d6fa6b6138eeb2c7dfa980dd7fa53f0e6b7e1e5bdc43f459f12c000000000000002700000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e40000000000000006000000000000000100000000000000000000000000000020b2c3cf21c16d10118be05ea9f06a74c8636e1894dc001fce8df8979fbf53c7ac0000000000000001000000000000000000000000000000208cbdb49d77f56b3a6db9221d1d57b04818fca524c7267a0e8d4022fcfafd117800000000000000010000000000000000000000000000002055c308be9438db42c91d1431d01b869ac37750ba0513a5170220112753ea0a6d000000000000000100000000000000010000000000000020a5edd8ba3a02c79d2a439b5c19c698d48a65e1da6ea81f91e95da0f3870facfe0000000000000001000000000000000100000000000000201b96bf994f53f651394f15f5db116e896fa1ab44efe0a6262949e96de58bff090000000000000001000000000000000000000000000000202fa23e2d798b08467838b865973a53e4e19c5b2d80ade19cbb180aec56a9376e0000000000000027000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000000000000000000204977e800cfc467c1d09085ed6e9512c718f6873f75f0b6378f811505aaef10de000000000000000100000000000000000000000000000020caa15c2cef9d0822879f1cbc7e47bf2ecca0c34dcce47cf21e705e0c27facd2800000000000000010000000000000000000000000000002094bfaa799c5496d89c7fba1c0074bf53e44026b1e3dfcc51a0820cda8b8b592e00000000000000010000000000000001000000000000002091ef79e3954e71b043bab2f4f7563da4ffcc85b3b6a3abb402389ce312ae3a1b00000000000000010000000000000001000000000000002046692d64e298cf42f3e0cf09149e8b1ba6093100c0f4d1501fee627da591f20e00000000000000010000000000000000000000000000002072c42711719626fc8bcaf082271589b458b73b63db94ea53c13e43ca03482214000000000000002700000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d0000000000000006000000000000000100000000000000000000000000000020203b37c58e39089e089de87b86bcdff0e4f149ca576b2ef9fc50463f30eb32ca0000000000000001000000000000000000000000000000201a74b33545d3a31e38488fc2de7d796ea63b27a71bd3cb3cc8ae63fac1b7efad0000000000000001000000000000000000000000000000205821e6171d155bf5aafbdc8474a3a9c33f58e247c6f3c54f71d8c9caaf009eb800000000000000010000000000000001000000000000002013307d874fafd2c736df4f1675c3fc7573fd05858f421470013ba3aa52dcdcac000000000000000100000000000000010000000000000020b865081822324014a2ad2adb025c6233367d552e7b8d5c65dcb3c00b68fdb2770000000000000001000000000000000000000000000000208b04487c0e92a27b8ce6e22f25723473ab966eb251464fa6d919c39ac29a60ff000000000000002700000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b32300000000000000060000000000000001000000000000000000000000000000200a24f0f06db4a7d7321e4900fff281689501ee4f536d67d58bccb4368412ed0e0000000000000001000000000000000000000000000000207d428f3d57f89f1804dbbaa40de511c119d8f43b693258ebba485c5b8aedfc91000000000000000100000000000000000000000000000020c05b0bfce2b5cf26286b63fee5b1ce52f6fd2d6f3b79f0407ca7ced961abd5100000000000000001000000000000000100000000000000205333dabae5459fcb448fee6926384a3bafc2af8b75f276339e9b28108bb4995d0000000000000001000000000000000100000000000000201da2e84c157ae73f74b662421f72dc7af8ef5d8001e6e962a5538cb1a53a8321000000000000000100000000000000000000000000000020a00b07acea464ec37ab41d5472f9101cc13a3cdfaa5f141199b9dad4efa0ccc30000000000000027000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000000000000000000020f90e8e24d2cf73ab6c6eadaccc24f9204e0c7d3a7ee2fcc30369cb209394ed62000000000000000100000000000000000000000000000020cd263aed361b4e176016494f2e92a46d33c7ff0629bac17eaaf60ea69c1674660000000000000001000000000000000000000000000000200953edfc6e8ff0936b8105e6357c9590e4f20e0497be561dc97db9d13e014c0d000000000000000100000000000000010000000000000020cd1cbe0f3f5a57ed48862a459d119ab55aa7fbf2685055ced90ff45d1e7cd0720000000000000001000000000000000100000000000000209cabf053781e02384f83b3ede75bfaadda9578d1f80727f379b0adbcf4e706d200000000000000010000000000000000000000000000002078cb1457e1c5d6fa6b6138eeb2c7dfa980dd7fa53f0e6b7e1e5bdc43f459f12c000000000000002d00000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e40000000000000006000000000000000100000000000000000000000000000020131e92b88b0a6d8b34699bbd2e9d86bdc39820bbadd8647fb23ca2b15dca9d590000000000000001000000000000000100000000000000208922f1b9f3074614b9db6f2549f3f5ce07ee8adbd9ac84e77de64f3f788a6eb5000000000000000100000000000000000000000000000020f3ad8fc6cfa3a99b28d096c90990f3c24ac076ab3cf689b7c267a1448cd773cb0000000000000001000000000000000000000000000000206c4baf98bc80c1abc6c59b8e82f4c2dc23405a6bc1abbc273de0e45984ffb9a00000000000000001000000000000000100000000000000201b96bf994f53f651394f15f5db116e896fa1ab44efe0a6262949e96de58bff090000000000000001000000000000000000000000000000202fa23e2d798b08467838b865973a53e4e19c5b2d80ade19cbb180aec56a9376e000000000000002d000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000000000000000000020d41d64993a4b576ff654a56ff2004cdcd4253b33e3a6f608478c2234f5fa046d000000000000000100000000000000010000000000000020c2544d7afbaa104d2d14886250617b176a0c680dbbb2ca48fdc472889ac8d452000000000000000100000000000000000000000000000020dd8b3cce2949cdb0d005dfcb4be92dddbcd03e8339b76662b640dd5480343878000000000000000100000000000000000000000000000020afbf1f71bc2124f671aca446e85c5b2a26b711122acb80fefe81dd090fdb8e9a00000000000000010000000000000001000000000000002046692d64e298cf42f3e0cf09149e8b1ba6093100c0f4d1501fee627da591f20e00000000000000010000000000000000000000000000002072c42711719626fc8bcaf082271589b458b73b63db94ea53c13e43ca03482214000000000000002d00000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d00000000000000060000000000000001000000000000000000000000000000206123be6594b9bab75aa9b2ab21d2bf69c3f067277618653028305a723fad41ba00000000000000010000000000000001000000000000002029d9a560ae6a780451ad91c7dee92ef3b9657a51559ed0a5c24d9ca761d680d0000000000000000100000000000000000000000000000020bdc5f7058de4f0db1e5c2da6a8823447801030e8d5200d3ea7b7de97786ee2d2000000000000000100000000000000000000000000000020463fbc9d5384e010009b169ceb3ef07bf1aae15d890cb1f5c86ec0fc5db6441a000000000000000100000000000000010000000000000020b865081822324014a2ad2adb025c6233367d552e7b8d5c65dcb3c00b68fdb2770000000000000001000000000000000000000000000000208b04487c0e92a27b8ce6e22f25723473ab966eb251464fa6d919c39ac29a60ff000000000000002d00000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b32300000000000000060000000000000001000000000000000000000000000000208e707591cbd8abb67a7b380462059c139bdc0be5bcb14fb69250cae4986e8f1d0000000000000001000000000000000100000000000000205d08cb676e9a43f004ed3cd33feb328f0c147e417fe17f18a75f9973cd323f7d000000000000000100000000000000000000000000000020d88f0886a68098a59d72569dfe3299ad38edcc59bd11338a537a8bf7aded471a00000000000000010000000000000000000000000000002059e0cffb1b66783ce400ea9e93bbaeaf0fc9283c9cfd578c65daa4375f5e01900000000000000001000000000000000100000000000000201da2e84c157ae73f74b662421f72dc7af8ef5d8001e6e962a5538cb1a53a8321000000000000000100000000000000000000000000000020a00b07acea464ec37ab41d5472f9101cc13a3cdfaa5f141199b9dad4efa0ccc3000000000000002d000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000000000000000000020bef08993e8ee26516c875432116ff4c1b8b45a302d15bcd77bcf87a8759d243d0000000000000001000000000000000100000000000000205db7a80f55dd7bd507d1603151fee6c109db040c4b431da58fd33002603a4e4d00000000000000010000000000000000000000000000002006ed4e0ef5d3ce0c49b6e8950af99435b5bca3905a6502fd9190b6f084a505f5000000000000000100000000000000000000000000000020d2ace2c01e400a2af009a43598dd9e34d359aa6ac5e1e4e2607befbfd9a370180000000000000001000000000000000100000000000000209cabf053781e02384f83b3ede75bfaadda9578d1f80727f379b0adbcf4e706d200000000000000010000000000000000000000000000002078cb1457e1c5d6fa6b6138eeb2c7dfa980dd7fa53f0e6b7e1e5bdc43f459f12c000000000000000000000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e400000000000000060000000000000001000000000000000100000000000000203bb89953794cd2baa3f836dec812c4b99b814f7577347c1b0508ae76233baf47000000000000000100000000000000010000000000000020e20bc164a2d176267835b99bb085e70ee37e78ff353a422c984073114f616b4a000000000000000100000000000000010000000000000020036e643e48a301a7a94aed42e82912eaec80e90bccc88d3226560d84666629b00000000000000001000000000000000100000000000000206a3d92b216e8d40712b4abc94e0d246cf0b1c2a650d3b728de1e144f5f135dd1000000000000000100000000000000010000000000000020cf7596a2151e6ecd0152bcfa96e547a86c616698a13eb311a31678d998a719af0000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f0000000000000000000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000100000000000000203a66f41ebdb1cf249027d690746fb6e4c5816ecc627864f31cfe821cdd0df139000000000000000100000000000000010000000000000020b751ce72e98dccc2148ad757721ef6758c47d4aa7b0b42f5dec8be0e726cf8cb00000000000000010000000000000001000000000000002054be403ee6b8f8b6e7241a28dd4067a732c6494f9ca117cf49561797eed6d533000000000000000100000000000000010000000000000020012e51ceac3da1ee2785f84acb427d436432958c56fa02ff109defc16f64c3e100000000000000010000000000000001000000000000002031809213d4a7c0f0b7fbd21766c584377ac625d92403fd3c2e9421ca27c907db0000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000000000000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d0000000000000006000000000000000100000000000000010000000000000020bd730e5d7d21021a3b82c0debd626bb83120baa53da413056eb9f452064da95a0000000000000001000000000000000100000000000000204c709a8c4a4b20a4c4322b3ade4d3e9e2b2c7d4fc5883b395066ef3155908c7e00000000000000010000000000000001000000000000002070e7dcfc14e9faa78890ed551a4cf53d1af6bb685ff505bb76843215b07b7782000000000000000100000000000000010000000000000020c784e893e97965d1954bf00e2fab7b72fbb7d86352817409c7f61f9ee3d4be25000000000000000100000000000000010000000000000020ca05ed908befc970acc53cea33e55589e5965d8039c9e076f7ac7b36a36f6455000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000000000000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b3230000000000000006000000000000000100000000000000010000000000000020e376b6de662a2fd89dab347b0d7c90b07a3cad0dc3e2f162c99458908e27606800000000000000010000000000000001000000000000002075301234c565dac1ae84d09889d3f1d888ce8c86485e941d03e337e1ffbc2f0f00000000000000010000000000000001000000000000002063108f8d0ebc57e7d328e269e094211f951a8a50708c1b60724402499140bcbe000000000000000100000000000000010000000000000020429ead810e13405c3b60212aa5eafa299f1430976011b3956cf9ba62ffd1d91d0000000000000001000000000000000100000000000000206d6a12b490e789e5e3407255a61b3605485fc28f4ae6697fdbc41f4a62ac030e000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed0000000000000000000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b30000000000000006000000000000000100000000000000010000000000000020baf5f6d503b407d219fb1d31bf64c1689e66a5c830c810f50823a4b67bc9a4c600000000000000010000000000000001000000000000002088dfac425732a6e73e6bd9697ee39aa13bebcbfbd05a069dedfe620464f7420e000000000000000100000000000000010000000000000020cc627ebfb735c76ebe34f36ee0a06d28daf02822f990a9a92460f542562da42c000000000000000100000000000000010000000000000020a36932769c7f9a976b385d2c4064689e893729c460a7115012784ced44d4169f00000000000000010000000000000001000000000000002010edd26513dde9e2d4d9edde73c0914d7c3f4f5c44106edb1335190bd6a8675d00000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000002f00000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e40000000000000006000000000000000100000000000000000000000000000020d759e7e0c0fa96a5bbfca84b4dc1fd73baaa4252bd418254dd5a157336a596ac00000000000000010000000000000000000000000000002020cfa38e76c620e335a635dbf82e40ebdf68ad527fe5e7944efa65cd70acb4e8000000000000000100000000000000000000000000000020f3ad8fc6cfa3a99b28d096c90990f3c24ac076ab3cf689b7c267a1448cd773cb0000000000000001000000000000000000000000000000206c4baf98bc80c1abc6c59b8e82f4c2dc23405a6bc1abbc273de0e45984ffb9a00000000000000001000000000000000100000000000000201b96bf994f53f651394f15f5db116e896fa1ab44efe0a6262949e96de58bff090000000000000001000000000000000000000000000000202fa23e2d798b08467838b865973a53e4e19c5b2d80ade19cbb180aec56a9376e000000000000002f000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f4090000000000000006000000000000000100000000000000000000000000000020c9c6bbf782e36adc2ce58caec0a28797c616906d28693ae7d8fa8836086c08450000000000000001000000000000000000000000000000207f55f80d651144dca460e66b37a2533f9efd86b2044d033a8a5eeca8e67d1be6000000000000000100000000000000000000000000000020dd8b3cce2949cdb0d005dfcb4be92dddbcd03e8339b76662b640dd5480343878000000000000000100000000000000000000000000000020afbf1f71bc2124f671aca446e85c5b2a26b711122acb80fefe81dd090fdb8e9a00000000000000010000000000000001000000000000002046692d64e298cf42f3e0cf09149e8b1ba6093100c0f4d1501fee627da591f20e00000000000000010000000000000000000000000000002072c42711719626fc8bcaf082271589b458b73b63db94ea53c13e43ca03482214000000000000002f00000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d0000000000000006000000000000000100000000000000000000000000000020f8e4732d14ff9911d71b08e9ab9356e3757dcbcfcf498d45bf8842c519595d9900000000000000010000000000000000000000000000002072b550c74168f0a728985bbcb8f2cdd2bba61ab871852dbb35a88678d113d222000000000000000100000000000000000000000000000020bdc5f7058de4f0db1e5c2da6a8823447801030e8d5200d3ea7b7de97786ee2d2000000000000000100000000000000000000000000000020463fbc9d5384e010009b169ceb3ef07bf1aae15d890cb1f5c86ec0fc5db6441a000000000000000100000000000000010000000000000020b865081822324014a2ad2adb025c6233367d552e7b8d5c65dcb3c00b68fdb2770000000000000001000000000000000000000000000000208b04487c0e92a27b8ce6e22f25723473ab966eb251464fa6d919c39ac29a60ff000000000000002f00000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b32300000000000000060000000000000001000000000000000000000000000000201e87a16b7e97dc5568c507ee81a13788ab080551ff7825c86931f06bd913d5d9000000000000000100000000000000000000000000000020bb891ce3ccd2d3c3746b970108f3480b1f7db231cf78ce2b7b7247ae8bfef9d3000000000000000100000000000000000000000000000020d88f0886a68098a59d72569dfe3299ad38edcc59bd11338a537a8bf7aded471a00000000000000010000000000000000000000000000002059e0cffb1b66783ce400ea9e93bbaeaf0fc9283c9cfd578c65daa4375f5e01900000000000000001000000000000000100000000000000201da2e84c157ae73f74b662421f72dc7af8ef5d8001e6e962a5538cb1a53a8321000000000000000100000000000000000000000000000020a00b07acea464ec37ab41d5472f9101cc13a3cdfaa5f141199b9dad4efa0ccc3000000000000002f000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b300000000000000060000000000000001000000000000000000000000000000204f635a7b571f013735831c17a8d10e8b0b77a681fb94977b7241ec4a11e2d238000000000000000100000000000000000000000000000020f343e783b77e1c5d9c2b1a1afed07d74274605f0d80f9855757e6531c38ed81800000000000000010000000000000000000000000000002006ed4e0ef5d3ce0c49b6e8950af99435b5bca3905a6502fd9190b6f084a505f5000000000000000100000000000000000000000000000020d2ace2c01e400a2af009a43598dd9e34d359aa6ac5e1e4e2607befbfd9a370180000000000000001000000000000000100000000000000209cabf053781e02384f83b3ede75bfaadda9578d1f80727f379b0adbcf4e706d200000000000000010000000000000000000000000000002078cb1457e1c5d6fa6b6138eeb2c7dfa980dd7fa53f0e6b7e1e5bdc43f459f12c000000000000001c00000000000000209f33d9e94144d6049ade1b89f77bb01396b4edbe4bed8d37155af107388540e400000000000000060000000000000001000000000000000100000000000000200f143a16674958d9e28ba2f3c853a0649499d01da8145da611d76a546d68bef1000000000000000100000000000000010000000000000020f49c977f2b28edaece65e109dec4da08ee8eff546c65598210fdc1cb3fd9371d0000000000000001000000000000000000000000000000203c9b84ea790b2a2a39d9611d6fffe81b8f6a4780bc49ceef9d562efb8bb0e3c100000000000000010000000000000000000000000000002025970c30f2158b64f6db602006cf8ec3088a6951235f1463b4ec26472e7bf04e000000000000000100000000000000000000000000000020c0476d0bd1bba12844993b2b90c4d4e74f42cb95a863a33400c0b3ce5d7afb970000000000000001000000000000000100000000000000203097c45a6844a1d7ec335ea2a5eecbd04dc0a2bd7d48a84df60383680ed43f6f000000000000001c000000000000002080386366580ad5dcaa5ca855d22c6c01e5ca825edddaefd351cd521fd265f40900000000000000060000000000000001000000000000000100000000000000201cceaf7c47376237f108fb8705182e5a6095143f1424c853d1f89ca4d8bb08ea000000000000000100000000000000010000000000000020273c8c891ee07115e20bf18ab52966cd99ea87ede285698502fc4dab8458420000000000000000010000000000000000000000000000002023d97489db03b380974b7d10e10c0a8f85c4800f21e95c23e7827615a90c923c0000000000000001000000000000000000000000000000200c4338e456e8a386ea42ad72cd73d95178039fdb76ee7e286661fbbf95bb3b040000000000000001000000000000000000000000000000201f243121b9b86ee340c8e4e148b031fbfec331be88bb0e695bd3254fd9dedc460000000000000001000000000000000100000000000000207e542a13d5a064519c5a740525ae9cc01bd48ff44075f8318622edf44d7a6005000000000000001c00000000000000200368ff113434170fe801b0da1176003eed75ba12f167df4bd6bc071243cde89d00000000000000060000000000000001000000000000000100000000000000205b5deb0951110878cfa71a1f38b71299dc8a5cfea1c1885555b870f45e8eb67f000000000000000100000000000000010000000000000020d4bc73bbfb3732c9c2675cee6355f9cf43f14e3b5c653d8eeb18f8e3de4baaa400000000000000010000000000000000000000000000002083b89a63fb02770e2f72bbc11c0bfed0438afe2b97dafc63d6b272c56e3f2360000000000000000100000000000000000000000000000020a978e635bc01e37323e8daa22db845c6f4b65dbff8aec0ddee43de3cb433d5d80000000000000001000000000000000000000000000000207c9185dc31c96b43974def3ef513a5c2fa4019e8f4cd70c66e8489740340b2d7000000000000000100000000000000010000000000000020fb5db77f4551c24e0e1c3a2eb89c1718c2335e9c046368af66570a11591779ed000000000000001c00000000000000208d564461184244ba08c216f9e0a1e9dc16a0a850fb41147b4f3093e5b2b9b323000000000000000600000000000000010000000000000001000000000000002087ceeab2dcdbbd6564e193050b486fbaaa65eff65a8c2709c0cf05056435a63e000000000000000100000000000000010000000000000020a03ce711afd0464d0fe4a4b467dc0ff4cce8199435953d6464d6a43f2dd6bcd90000000000000001000000000000000000000000000000201480dd9071ccde4a4f721bb5a64cbd7ecff12cfd29018b3d672f16038683d05000000000000000010000000000000000000000000000002049d1d86419f38c5e84555595d210426f3d97ab19505fa1438516e93a0552e041000000000000000100000000000000000000000000000020c261b56a4b700b9884a920f66b25b3f4e5b6af88658d82bd2b16f6956d7a628f000000000000000100000000000000010000000000000020743b209e114a719639156869ce5e4151c3410620b4b9d31b6ba4f7b1885725ed000000000000001c000000000000002068af5cfb69476303e22aabced3e27e71889298219a0b0cb795df3f23fe6c65b3000000000000000600000000000000010000000000000001000000000000002007b2feeb68aada7c46af118d947b98785bf627ff74d8f09bd55efb66542602b20000000000000001000000000000000100000000000000202712fb7df6ea6c8cd188ee825119f43fcd845fc37e172448ff0b368cb4a2e894000000000000000100000000000000000000000000000020a4f30078f6c82eeb23635e8509271f741f7df1496de69591523572481398a01a0000000000000001000000000000000000000000000000207f6c04f2a2686f09f8ed1d6818a1534af529f47bed8bb55dbf5eafcc3ebff42400000000000000010000000000000000000000000000002031c46556a8536b0d3fe56fdfff2cfb21049ba3d5264152ba04673f2caa7e535700000000000000010000000000000001000000000000002073ad106f73dc46847ecd64301521b6400acc9cd88e0ca4ecd8c82d2df547d94f000000000000005000000000000000290000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b3910000000000000006000000000000000100000000000000000000000000000020c74c7a663f5e5556cce5e40dcc4723a254a1289f2fec0e4a804e4a8743f9321a0000000000000001000000000000000100000000000000207e96198588b2c98048a2a523e89e4582b6ba4e3f31bbe96b996cfa77624978a6000000000000000100000000000000010000000000000020e0b386f5c76734d1c967fbdfe75dd3aed64ba618fbde140922269e55946a6ee1000000000000000100000000000000000000000000000020b9a52c56713a9880951e923afbecfaf24a90d9fb2b5a1dfa8d58a63c297f272d000000000000000100000000000000010000000000000020aed17919db728953ffd39208c53f105905f6b720d15998100add061d340ab11500000000000000010000000000000000000000000000002058b95513f1be96a860c8424ca1a253ece0a4464984acd90966bc2d86ac3f41c600000000000000090000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b0000000000000005000000000000000100000000000000000000000000000020f05ff6c0a3cd855542797f70d666f43ab729fee49e40c812eaa976dbbe99f0c7000000000000000100000000000000010000000000000020ec8bba671b0af81e7985a0b506d811723d71eba204e732ee6741191816cb528d0000000000000001000000000000000100000000000000200b90fa6f44bcd299d11d2fbd1e7ed373cd3ee663de279edf9e8b2221da057719000000000000000100000000000000000000000000000020a453503d52eee70b784c636e310fe65429b75b64fd26a77c27c20dbe18d3d33d000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc54160000000000000000050000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b3910000000000000006000000000000000100000000000000000000000000000020d4197789987b69fcf99802348621e4436198b5640253e2cd83d8ec01fba126480000000000000001000000000000000100000000000000207c94362dea318750b8d161143387f8d45e222f18674512708117534b14f8a7c400000000000000010000000000000000000000000000002009a61b41773b6098274b4848407db82a0be8b3a1a113cdbae829775aa5584cfa000000000000000100000000000000010000000000000020b86670486fdb118522b061bdd79d473f7af94d2557070d82d7fd34c53b2d6aa8000000000000000100000000000000010000000000000020add0fe147d971c5a4b9d01cf95aee412eb47a9c7e6ad03f2699e74a92c0d94a90000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000050000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b0000000000000005000000000000000100000000000000000000000000000020a74b1275f4702f5d549baf404f01ecb1ba0fe310f1a2623b3c8e76e5b429d894000000000000000100000000000000010000000000000020d528f718897f707480ad00bbc680116a7d17108680cbb5d41a52900111da53f7000000000000000100000000000000000000000000000020faeab7138ec7ab5c1ccf63393ccccc81e7c7645d384c90bdbd423e8a9317742600000000000000010000000000000001000000000000002065c61d2e4d097c2a39e44bdcfa0978b3b7f05e0efb6c860f1f7a5ae6fe361a49000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc54160000000000000000300000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b3910000000000000006000000000000000100000000000000010000000000000020f2a211c250594e89168805f5cc22cf53dd7137b57f0d9552043be0ec05cf319600000000000000010000000000000001000000000000002068d22abb67b912d1b54611e8f5839a58bbbd0ace6b45dfba9ea2087b8b62b4af00000000000000010000000000000001000000000000002006a8481ebcc9c5f42f46d7e76afeedbb089966303f1ca1d6d883d68e24714deb000000000000000100000000000000010000000000000020fd892962fbc5a00afae097f51d03d30aa581fce1038ab8aa58ae53143ec3c1090000000000000001000000000000000000000000000000209d48beddc57723125a7aaad3f517a3c4ec3d45b0a1187071510c102724d6433700000000000000010000000000000000000000000000002058b95513f1be96a860c8424ca1a253ece0a4464984acd90966bc2d86ac3f41c600000000000000100000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b000000000000000500000000000000010000000000000001000000000000002057463e4bc98f6988a183742279a24cde20fc4b4906b3333bd36ebeaad99697e6000000000000000100000000000000010000000000000020f00d9a40350d0d1821907115a4055c94a6f94f27d29c8fc375b0472d5496f1d8000000000000000100000000000000010000000000000020db01eaa2af7ae21f8fb39daf7f243ab551beb20f7362f8d1a332acb21c8cdc480000000000000001000000000000000100000000000000208919b73726bdfea3549af72be23670eef63dda5e0ed664d8862588eccc2cd10900000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca005589600000000000000240000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000100000000000000207e5f9905e87647d5253cd03b9ed779b2acbad183b1c4dfd5a1a7fcfc4450c589000000000000000100000000000000010000000000000020c2d4360b6a1cbcc2931ba7691406828d44fcccd177e9a50fa50b8c84a131b63700000000000000010000000000000000000000000000002010ec51adb290f82dffd967d7e0346ffc3b34441d4c608b0d345c6bc95721ee23000000000000000100000000000000010000000000000020d3c4d6f1b3c5ed676621751ada57ff8394febc0261a6f6c423de3deebf1c8f78000000000000000100000000000000010000000000000020aed17919db728953ffd39208c53f105905f6b720d15998100add061d340ab11500000000000000010000000000000000000000000000002058b95513f1be96a860c8424ca1a253ece0a4464984acd90966bc2d86ac3f41c600000000000000040000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b00000000000000050000000000000001000000000000000100000000000000202f81accfa481b11b05882d87a1c8cd92297a4e034d53c4842993ee2681b4d9b8000000000000000100000000000000010000000000000020d528f718897f707480ad00bbc680116a7d17108680cbb5d41a52900111da53f7000000000000000100000000000000000000000000000020faeab7138ec7ab5c1ccf63393ccccc81e7c7645d384c90bdbd423e8a9317742600000000000000010000000000000001000000000000002065c61d2e4d097c2a39e44bdcfa0978b3b7f05e0efb6c860f1f7a5ae6fe361a49000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc54160000000000000000110000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b3910000000000000006000000000000000100000000000000000000000000000020e60ca060a73991c547d1f960f0552a41a32039edf5dbc43b5a58936a85314032000000000000000100000000000000010000000000000020b4551287f718db7952b41488c73a1badd6f381e5c94e633562458eaa6b733a50000000000000000100000000000000010000000000000020cb1b6254c7c4c0b479593daf718044a33a32238686a1fa080c2c3dbe0407a7570000000000000001000000000000000100000000000000205f0bb053e088ded68d0c1786c068b03ec58098a3cf6214d1be943d29ba6d13ce000000000000000100000000000000000000000000000020465a1f127ad8c1d5d50e2e78e1987f675b5271439752c54cb80ffdaba65e25710000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000110000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b00000000000000050000000000000001000000000000000000000000000000204cade97a5e3fe77f12382c70a6a44a307a0d06fd5b97ac0b8cd4407b4833e0a9000000000000000100000000000000010000000000000020f00d9a40350d0d1821907115a4055c94a6f94f27d29c8fc375b0472d5496f1d8000000000000000100000000000000010000000000000020db01eaa2af7ae21f8fb39daf7f243ab551beb20f7362f8d1a332acb21c8cdc480000000000000001000000000000000100000000000000208919b73726bdfea3549af72be23670eef63dda5e0ed664d8862588eccc2cd10900000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca0055896000000000000001f0000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b391000000000000000600000000000000010000000000000000000000000000002046f418562881b0dc0fea9378c3a7e6376f5135066c32f5c7cc9050bca15e176b00000000000000010000000000000000000000000000002033fc4f9fe456848952c680822df1d03e02d0b1f7d5fa1c16b5a070069d04cf6400000000000000010000000000000000000000000000002066a864c0fe566ba1ee83def8ca951e608663970417cc2e7a1f58a4adc21faa5a0000000000000001000000000000000000000000000000205fd7db198abca387face9964712817e444014bcac13ce87f7a7f3a063c4a2ad2000000000000000100000000000000000000000000000020465a1f127ad8c1d5d50e2e78e1987f675b5271439752c54cb80ffdaba65e25710000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c0000000000000001f0000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b000000000000000500000000000000010000000000000000000000000000002053a7027fc0088bab63b956d9d7e144dea74808a43c2fc52570a32a18801b721e000000000000000100000000000000000000000000000020748f8042bc3e72602c13b9fa3a996b6d9254e2592f3f1782cafd1f16ae4018d6000000000000000100000000000000000000000000000020861b40a8f6e23edef75ddeac66348157ecc011e3241fcd4ac976118b14d79496000000000000000100000000000000000000000000000020d84b9cdaddc17699c6b3180b4637dccfc18fbc002defc08b67518e24eae2cb9800000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca0055896000000000000002b0000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000000000000000000200a35f412203dde346201ea471cf6fc92107442a8271dad1f61b3b7fa5b49fdf000000000000000010000000000000000000000000000002045d59f62838ceb66a37f76629c2e74f25c5520ef3203f025ffd7fc99bba06595000000000000000100000000000000010000000000000020e0b386f5c76734d1c967fbdfe75dd3aed64ba618fbde140922269e55946a6ee1000000000000000100000000000000000000000000000020b9a52c56713a9880951e923afbecfaf24a90d9fb2b5a1dfa8d58a63c297f272d000000000000000100000000000000010000000000000020aed17919db728953ffd39208c53f105905f6b720d15998100add061d340ab11500000000000000010000000000000000000000000000002058b95513f1be96a860c8424ca1a253ece0a4464984acd90966bc2d86ac3f41c6000000000000000b0000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b000000000000000500000000000000010000000000000000000000000000002043dfcca3011ff7c74972dc3e73a355a8efbd0ca6f4fcd323e4d2ac31994d4c580000000000000001000000000000000000000000000000205977e289245df759de7b30bbfcf9656a3b69742deecc7c6507a53286a68742910000000000000001000000000000000100000000000000200b90fa6f44bcd299d11d2fbd1e7ed373cd3ee663de279edf9e8b2221da057719000000000000000100000000000000000000000000000020a453503d52eee70b784c636e310fe65429b75b64fd26a77c27c20dbe18d3d33d000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc54160000000000000000190000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b3910000000000000006000000000000000100000000000000000000000000000020a342fd6e5de6fde9dbf3ccd8811b5df2611002d7098c38ad1ce8d88d2076cba0000000000000000100000000000000010000000000000020b616e6c6257c1ecbe26dde52747a1c51a1745aacb23d7672268e509271ef4519000000000000000100000000000000010000000000000020e280e6850f7d8d816b520869fe7b7ecca3598c0a5bff6d46697059ae66f307380000000000000001000000000000000000000000000000205fd7db198abca387face9964712817e444014bcac13ce87f7a7f3a063c4a2ad2000000000000000100000000000000000000000000000020465a1f127ad8c1d5d50e2e78e1987f675b5271439752c54cb80ffdaba65e25710000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000190000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b0000000000000005000000000000000100000000000000000000000000000020c242036f64e68597ce39c5174ea1d2d29bd4aeff167f5640774c30c9698a7ded0000000000000001000000000000000100000000000000207849297d6f8e29cf9000349e60c864caad33836101970be7a7d6531eb7610c6200000000000000010000000000000001000000000000002075a90d3b1b3603a9a9a62a5fe9700d07935423a2a1172b3c72e49c473654926f000000000000000100000000000000000000000000000020d84b9cdaddc17699c6b3180b4637dccfc18fbc002defc08b67518e24eae2cb9800000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca005589600000000000000160000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b3910000000000000006000000000000000100000000000000010000000000000020fe760f0f89bf553c5bb34f1a9333c1e39a9488cdcb634fc251b58ac563d62460000000000000000100000000000000000000000000000020ace2dd92e70e444a3063ee8a9babe6e954e1ddd3fa0d3d10e1a064cbbf086b45000000000000000100000000000000000000000000000020fa1763ae3c7da1186b59048bfaa651cb2ff2f493d66eb9f05a17a84c5e550ea00000000000000001000000000000000100000000000000205f0bb053e088ded68d0c1786c068b03ec58098a3cf6214d1be943d29ba6d13ce000000000000000100000000000000000000000000000020465a1f127ad8c1d5d50e2e78e1987f675b5271439752c54cb80ffdaba65e25710000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000160000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b0000000000000005000000000000000100000000000000010000000000000020eac057d1dcf2c99c28bed59ad24fd99705ec9b14bd87cf6a74d00d5f71cf30490000000000000001000000000000000000000000000000208deaa512203693c6744f730decf5b92dafd7056c4ec7f22725a1452c198f35e700000000000000010000000000000000000000000000002004bd9fbf938149c0a9661af06d3f7ca6f961fedb0c14fec24cc007c30aa59c3f0000000000000001000000000000000100000000000000208919b73726bdfea3549af72be23670eef63dda5e0ed664d8862588eccc2cd10900000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca005589600000000000000070000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b3910000000000000006000000000000000100000000000000000000000000000020b6eb19074a445844f786b4311e73c70e4f05427127e27e2470c02fe14e3096750000000000000001000000000000000000000000000000208d3540b31bd171594c25bb948b166f209270bb7df14a76a6ad76f9465d82e2c700000000000000010000000000000000000000000000002009a61b41773b6098274b4848407db82a0be8b3a1a113cdbae829775aa5584cfa000000000000000100000000000000010000000000000020b86670486fdb118522b061bdd79d473f7af94d2557070d82d7fd34c53b2d6aa8000000000000000100000000000000010000000000000020add0fe147d971c5a4b9d01cf95aee412eb47a9c7e6ad03f2699e74a92c0d94a90000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000070000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b0000000000000005000000000000000100000000000000000000000000000020e1e3b27036ad5ec4ea4923e3f81a81a1320924f3b1d852a7a0882b9b2f8f1802000000000000000100000000000000000000000000000020f7d72bccc5a546f5ff54fe19a5ee45d9d2e1baa2b1f84e1f11b141d15d8c337a000000000000000100000000000000000000000000000020faeab7138ec7ab5c1ccf63393ccccc81e7c7645d384c90bdbd423e8a9317742600000000000000010000000000000001000000000000002065c61d2e4d097c2a39e44bdcfa0978b3b7f05e0efb6c860f1f7a5ae6fe361a49000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc541600000000000000001d0000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b3910000000000000006000000000000000100000000000000000000000000000020da96cf54e2670f1e805dd1c0b9a5a9c6fb4f36fc37c03017dfa8b71a5c47171f0000000000000001000000000000000100000000000000204fc126b58e8e2fb3b9b98416396dfd6d88c3d75c10b8071f18747bdb5dd6818700000000000000010000000000000000000000000000002066a864c0fe566ba1ee83def8ca951e608663970417cc2e7a1f58a4adc21faa5a0000000000000001000000000000000000000000000000205fd7db198abca387face9964712817e444014bcac13ce87f7a7f3a063c4a2ad2000000000000000100000000000000000000000000000020465a1f127ad8c1d5d50e2e78e1987f675b5271439752c54cb80ffdaba65e25710000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c0000000000000001d0000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b0000000000000005000000000000000100000000000000000000000000000020f3a26540d4a323004772b9b6b4f8526c2b7d6166c67a86f7e749e2cc0bb0c1d90000000000000001000000000000000100000000000000206559a1a6d6e3b5a8dd58020285068f8d6e894ff31b992d685ade2a3e405e902c000000000000000100000000000000000000000000000020861b40a8f6e23edef75ddeac66348157ecc011e3241fcd4ac976118b14d79496000000000000000100000000000000000000000000000020d84b9cdaddc17699c6b3180b4637dccfc18fbc002defc08b67518e24eae2cb9800000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca005589600000000000000150000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000000000000000000208bc16c2eb4be4c8773060a710b8597ca7975d4adab442b16a4318c3828da493e00000000000000010000000000000001000000000000002082a0491857c498403cd48f4eafe06722748bc8a4c9debf3995d089bd81fbc7e9000000000000000100000000000000000000000000000020fa1763ae3c7da1186b59048bfaa651cb2ff2f493d66eb9f05a17a84c5e550ea00000000000000001000000000000000100000000000000205f0bb053e088ded68d0c1786c068b03ec58098a3cf6214d1be943d29ba6d13ce000000000000000100000000000000000000000000000020465a1f127ad8c1d5d50e2e78e1987f675b5271439752c54cb80ffdaba65e25710000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000150000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b00000000000000050000000000000001000000000000000000000000000000201c1515f2bcc6fe1e4f8e94256b544834b3e63979bad5991ff3dc27b080b231a9000000000000000100000000000000010000000000000020d96e84f531c37e66d70a303a5230591625d1dce94090e3b264d8ee7fc9caa6eb00000000000000010000000000000000000000000000002004bd9fbf938149c0a9661af06d3f7ca6f961fedb0c14fec24cc007c30aa59c3f0000000000000001000000000000000100000000000000208919b73726bdfea3549af72be23670eef63dda5e0ed664d8862588eccc2cd10900000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca005589600000000000000000000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000100000000000000206b8334f7b4b9a952c778940780f6e588c538faaa95c1696e36b699473dbb124c000000000000000100000000000000010000000000000020f7a761c374d56dfabb889c74e1a5e23bbb7923bd0b757f65fa784fdec304ccec0000000000000001000000000000000100000000000000204178366b50f377f3dabf65ef62f6cf5a6578eec538e5250111a043a3e6a4d5bc000000000000000100000000000000010000000000000020b86670486fdb118522b061bdd79d473f7af94d2557070d82d7fd34c53b2d6aa8000000000000000100000000000000010000000000000020add0fe147d971c5a4b9d01cf95aee412eb47a9c7e6ad03f2699e74a92c0d94a90000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000000000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b00000000000000050000000000000001000000000000000100000000000000202ec1c011f939c6e7b30a5f8d99f5d463ef8740881f88ea0762b286d1f7e2c6b20000000000000001000000000000000100000000000000204e2d792b7b178afde2ff751bf479e60bdc0eec820c6ee8cabea8433bdc3e10fd0000000000000001000000000000000100000000000000203fa49582a3a2bcdb51ae48dfde5f30bdbaf3982f24dc1af42947edcb1c853c1d00000000000000010000000000000001000000000000002065c61d2e4d097c2a39e44bdcfa0978b3b7f05e0efb6c860f1f7a5ae6fe361a49000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc541600000000000000003c0000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000100000000000000207009d41d6d2bd85d7fc0b2461a08516b7a1c98bafc6c8723f1e7f11b3df653ed000000000000000100000000000000010000000000000020132eed022bede456fbaaf837ccc3aef8a38c8ae12305e37916f12bf38456649f000000000000000100000000000000000000000000000020c601415fa7fed73591cf116d299d8303adabc54534059d5f6a22e0f5a0b6dadf000000000000000100000000000000000000000000000020699ef5c84904acf24bba0fd0f058ad555b71c9227b1803e846a582ca4937698e0000000000000001000000000000000000000000000000209d48beddc57723125a7aaad3f517a3c4ec3d45b0a1187071510c102724d6433700000000000000010000000000000000000000000000002058b95513f1be96a860c8424ca1a253ece0a4464984acd90966bc2d86ac3f41c6000000000000001c0000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b000000000000000500000000000000010000000000000001000000000000002048c8aa4cab17389c454943264383f3b3b44eed5d670bb9efc54cfe142000afe30000000000000001000000000000000100000000000000206559a1a6d6e3b5a8dd58020285068f8d6e894ff31b992d685ade2a3e405e902c000000000000000100000000000000000000000000000020861b40a8f6e23edef75ddeac66348157ecc011e3241fcd4ac976118b14d79496000000000000000100000000000000000000000000000020d84b9cdaddc17699c6b3180b4637dccfc18fbc002defc08b67518e24eae2cb9800000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca0055896000000000000001f0000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b391000000000000000600000000000000010000000000000000000000000000002046f418562881b0dc0fea9378c3a7e6376f5135066c32f5c7cc9050bca15e176b00000000000000010000000000000000000000000000002033fc4f9fe456848952c680822df1d03e02d0b1f7d5fa1c16b5a070069d04cf6400000000000000010000000000000000000000000000002066a864c0fe566ba1ee83def8ca951e608663970417cc2e7a1f58a4adc21faa5a0000000000000001000000000000000000000000000000205fd7db198abca387face9964712817e444014bcac13ce87f7a7f3a063c4a2ad2000000000000000100000000000000000000000000000020465a1f127ad8c1d5d50e2e78e1987f675b5271439752c54cb80ffdaba65e25710000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c0000000000000001f0000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b000000000000000500000000000000010000000000000000000000000000002053a7027fc0088bab63b956d9d7e144dea74808a43c2fc52570a32a18801b721e000000000000000100000000000000000000000000000020748f8042bc3e72602c13b9fa3a996b6d9254e2592f3f1782cafd1f16ae4018d6000000000000000100000000000000000000000000000020861b40a8f6e23edef75ddeac66348157ecc011e3241fcd4ac976118b14d79496000000000000000100000000000000000000000000000020d84b9cdaddc17699c6b3180b4637dccfc18fbc002defc08b67518e24eae2cb9800000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca005589600000000000000260000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b391000000000000000600000000000000010000000000000001000000000000002096daf99a0bcfbcd2c108563a582d649feaf8947acba4f0695c393336c1536fe7000000000000000100000000000000000000000000000020ce97867ee74c91d4cbf3e7a25f3ce20adde49401b611d53276d0209ca3953ea000000000000000010000000000000000000000000000002010ec51adb290f82dffd967d7e0346ffc3b34441d4c608b0d345c6bc95721ee23000000000000000100000000000000010000000000000020d3c4d6f1b3c5ed676621751ada57ff8394febc0261a6f6c423de3deebf1c8f78000000000000000100000000000000010000000000000020aed17919db728953ffd39208c53f105905f6b720d15998100add061d340ab11500000000000000010000000000000000000000000000002058b95513f1be96a860c8424ca1a253ece0a4464984acd90966bc2d86ac3f41c600000000000000060000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b0000000000000005000000000000000100000000000000010000000000000020264ab9904eed26255e457442dc93e232afef405ae99c3902756e0c04e83293c3000000000000000100000000000000000000000000000020f7d72bccc5a546f5ff54fe19a5ee45d9d2e1baa2b1f84e1f11b141d15d8c337a000000000000000100000000000000000000000000000020faeab7138ec7ab5c1ccf63393ccccc81e7c7645d384c90bdbd423e8a9317742600000000000000010000000000000001000000000000002065c61d2e4d097c2a39e44bdcfa0978b3b7f05e0efb6c860f1f7a5ae6fe361a49000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc541600000000000000000d0000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b3910000000000000006000000000000000100000000000000000000000000000020cb54918dbbc507ac5fbd39c97d8c309e8dea155e42df93c9e1cff91b6adbbfc50000000000000001000000000000000100000000000000200d1abc6c39d76cbef561c951c922aeedd3cc9f9c0d0c8bde13748cd366037ec2000000000000000100000000000000000000000000000020683e2e270d08ffb602941a4a39ef8d01b48d71b05a4b5ad5d0a589f7be6c7ef3000000000000000100000000000000000000000000000020d2e6e41401fcbf02dc267a22f734eb06244520113bccb208ba8ccdb5a8becbd5000000000000000100000000000000010000000000000020add0fe147d971c5a4b9d01cf95aee412eb47a9c7e6ad03f2699e74a92c0d94a90000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c0000000000000000d0000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b00000000000000050000000000000001000000000000000000000000000000203bfa073912d0de7657ca22aff98bcfdbf76e5a0fd7fb7f5e27060e68af49372c000000000000000100000000000000010000000000000020cf0ac1a1730a66809ab42852765f05e2b0f5b8abf57a2cc8b8866895c4d9f7cb000000000000000100000000000000000000000000000020b697dd650079632ef8e3e1d9d7ec7961a2008591ef5687500603dbc263b690d8000000000000000100000000000000000000000000000020a453503d52eee70b784c636e310fe65429b75b64fd26a77c27c20dbe18d3d33d000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc541600000000000000001c0000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b391000000000000000600000000000000010000000000000001000000000000002018946b1e9559c96a3a09330c1884a0701d0febccc52f2c25e2757006cc2e5a260000000000000001000000000000000100000000000000204fc126b58e8e2fb3b9b98416396dfd6d88c3d75c10b8071f18747bdb5dd6818700000000000000010000000000000000000000000000002066a864c0fe566ba1ee83def8ca951e608663970417cc2e7a1f58a4adc21faa5a0000000000000001000000000000000000000000000000205fd7db198abca387face9964712817e444014bcac13ce87f7a7f3a063c4a2ad2000000000000000100000000000000000000000000000020465a1f127ad8c1d5d50e2e78e1987f675b5271439752c54cb80ffdaba65e25710000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c0000000000000001c0000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b000000000000000500000000000000010000000000000001000000000000002048c8aa4cab17389c454943264383f3b3b44eed5d670bb9efc54cfe142000afe30000000000000001000000000000000100000000000000206559a1a6d6e3b5a8dd58020285068f8d6e894ff31b992d685ade2a3e405e902c000000000000000100000000000000000000000000000020861b40a8f6e23edef75ddeac66348157ecc011e3241fcd4ac976118b14d79496000000000000000100000000000000000000000000000020d84b9cdaddc17699c6b3180b4637dccfc18fbc002defc08b67518e24eae2cb9800000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca0055896000000000000001f0000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b391000000000000000600000000000000010000000000000000000000000000002046f418562881b0dc0fea9378c3a7e6376f5135066c32f5c7cc9050bca15e176b00000000000000010000000000000000000000000000002033fc4f9fe456848952c680822df1d03e02d0b1f7d5fa1c16b5a070069d04cf6400000000000000010000000000000000000000000000002066a864c0fe566ba1ee83def8ca951e608663970417cc2e7a1f58a4adc21faa5a0000000000000001000000000000000000000000000000205fd7db198abca387face9964712817e444014bcac13ce87f7a7f3a063c4a2ad2000000000000000100000000000000000000000000000020465a1f127ad8c1d5d50e2e78e1987f675b5271439752c54cb80ffdaba65e25710000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c0000000000000001f0000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b000000000000000500000000000000010000000000000000000000000000002053a7027fc0088bab63b956d9d7e144dea74808a43c2fc52570a32a18801b721e000000000000000100000000000000000000000000000020748f8042bc3e72602c13b9fa3a996b6d9254e2592f3f1782cafd1f16ae4018d6000000000000000100000000000000000000000000000020861b40a8f6e23edef75ddeac66348157ecc011e3241fcd4ac976118b14d79496000000000000000100000000000000000000000000000020d84b9cdaddc17699c6b3180b4637dccfc18fbc002defc08b67518e24eae2cb9800000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca005589600000000000000150000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000000000000000000208bc16c2eb4be4c8773060a710b8597ca7975d4adab442b16a4318c3828da493e00000000000000010000000000000001000000000000002082a0491857c498403cd48f4eafe06722748bc8a4c9debf3995d089bd81fbc7e9000000000000000100000000000000000000000000000020fa1763ae3c7da1186b59048bfaa651cb2ff2f493d66eb9f05a17a84c5e550ea00000000000000001000000000000000100000000000000205f0bb053e088ded68d0c1786c068b03ec58098a3cf6214d1be943d29ba6d13ce000000000000000100000000000000000000000000000020465a1f127ad8c1d5d50e2e78e1987f675b5271439752c54cb80ffdaba65e25710000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000150000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b00000000000000050000000000000001000000000000000000000000000000201c1515f2bcc6fe1e4f8e94256b544834b3e63979bad5991ff3dc27b080b231a9000000000000000100000000000000010000000000000020d96e84f531c37e66d70a303a5230591625d1dce94090e3b264d8ee7fc9caa6eb00000000000000010000000000000000000000000000002004bd9fbf938149c0a9661af06d3f7ca6f961fedb0c14fec24cc007c30aa59c3f0000000000000001000000000000000100000000000000208919b73726bdfea3549af72be23670eef63dda5e0ed664d8862588eccc2cd10900000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca005589600000000000000010000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b3910000000000000006000000000000000100000000000000000000000000000020f3b7ae9dc5e701787cb17a20d2ada19d3d52b32b39b548804c4b8b7052f4eb96000000000000000100000000000000010000000000000020f7a761c374d56dfabb889c74e1a5e23bbb7923bd0b757f65fa784fdec304ccec0000000000000001000000000000000100000000000000204178366b50f377f3dabf65ef62f6cf5a6578eec538e5250111a043a3e6a4d5bc000000000000000100000000000000010000000000000020b86670486fdb118522b061bdd79d473f7af94d2557070d82d7fd34c53b2d6aa8000000000000000100000000000000010000000000000020add0fe147d971c5a4b9d01cf95aee412eb47a9c7e6ad03f2699e74a92c0d94a90000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000010000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b0000000000000005000000000000000100000000000000000000000000000020853857f3ddaccb3cdf6382cae031d6cee50274876c5bb6a708271fe271b5a1720000000000000001000000000000000100000000000000204e2d792b7b178afde2ff751bf479e60bdc0eec820c6ee8cabea8433bdc3e10fd0000000000000001000000000000000100000000000000203fa49582a3a2bcdb51ae48dfde5f30bdbaf3982f24dc1af42947edcb1c853c1d00000000000000010000000000000001000000000000002065c61d2e4d097c2a39e44bdcfa0978b3b7f05e0efb6c860f1f7a5ae6fe361a49000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc54160000000000000000000000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000100000000000000206b8334f7b4b9a952c778940780f6e588c538faaa95c1696e36b699473dbb124c000000000000000100000000000000010000000000000020f7a761c374d56dfabb889c74e1a5e23bbb7923bd0b757f65fa784fdec304ccec0000000000000001000000000000000100000000000000204178366b50f377f3dabf65ef62f6cf5a6578eec538e5250111a043a3e6a4d5bc000000000000000100000000000000010000000000000020b86670486fdb118522b061bdd79d473f7af94d2557070d82d7fd34c53b2d6aa8000000000000000100000000000000010000000000000020add0fe147d971c5a4b9d01cf95aee412eb47a9c7e6ad03f2699e74a92c0d94a90000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000000000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b00000000000000050000000000000001000000000000000100000000000000202ec1c011f939c6e7b30a5f8d99f5d463ef8740881f88ea0762b286d1f7e2c6b20000000000000001000000000000000100000000000000204e2d792b7b178afde2ff751bf479e60bdc0eec820c6ee8cabea8433bdc3e10fd0000000000000001000000000000000100000000000000203fa49582a3a2bcdb51ae48dfde5f30bdbaf3982f24dc1af42947edcb1c853c1d00000000000000010000000000000001000000000000002065c61d2e4d097c2a39e44bdcfa0978b3b7f05e0efb6c860f1f7a5ae6fe361a49000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc54160000000000000000050000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b3910000000000000006000000000000000100000000000000000000000000000020d4197789987b69fcf99802348621e4436198b5640253e2cd83d8ec01fba126480000000000000001000000000000000100000000000000207c94362dea318750b8d161143387f8d45e222f18674512708117534b14f8a7c400000000000000010000000000000000000000000000002009a61b41773b6098274b4848407db82a0be8b3a1a113cdbae829775aa5584cfa000000000000000100000000000000010000000000000020b86670486fdb118522b061bdd79d473f7af94d2557070d82d7fd34c53b2d6aa8000000000000000100000000000000010000000000000020add0fe147d971c5a4b9d01cf95aee412eb47a9c7e6ad03f2699e74a92c0d94a90000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000050000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b0000000000000005000000000000000100000000000000000000000000000020a74b1275f4702f5d549baf404f01ecb1ba0fe310f1a2623b3c8e76e5b429d894000000000000000100000000000000010000000000000020d528f718897f707480ad00bbc680116a7d17108680cbb5d41a52900111da53f7000000000000000100000000000000000000000000000020faeab7138ec7ab5c1ccf63393ccccc81e7c7645d384c90bdbd423e8a9317742600000000000000010000000000000001000000000000002065c61d2e4d097c2a39e44bdcfa0978b3b7f05e0efb6c860f1f7a5ae6fe361a49000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc541600000000000000000f0000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b3910000000000000006000000000000000100000000000000000000000000000020d6695de8505d291f53c161bd5f8bfd95a71a53a52e9b286ecbdbeb585c7200df00000000000000010000000000000000000000000000002081bd98723e752363b1191e42c49e17b82ed3e6fae79af415ea8d2fee58a977bc000000000000000100000000000000000000000000000020683e2e270d08ffb602941a4a39ef8d01b48d71b05a4b5ad5d0a589f7be6c7ef3000000000000000100000000000000000000000000000020d2e6e41401fcbf02dc267a22f734eb06244520113bccb208ba8ccdb5a8becbd5000000000000000100000000000000010000000000000020add0fe147d971c5a4b9d01cf95aee412eb47a9c7e6ad03f2699e74a92c0d94a90000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c0000000000000000f0000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b00000000000000050000000000000001000000000000000000000000000000205f16d24275599e549e2533fbac86e79499f9a329aebdeca82d02048c9b90940e0000000000000001000000000000000000000000000000206727d263de7719d1bcfa4f90c0c8dfa16f99f5f2b61f07d6702dfa60b8b8db66000000000000000100000000000000000000000000000020b697dd650079632ef8e3e1d9d7ec7961a2008591ef5687500603dbc263b690d8000000000000000100000000000000000000000000000020a453503d52eee70b784c636e310fe65429b75b64fd26a77c27c20dbe18d3d33d000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc54160000000000000000360000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000100000000000000204385c454a899e92ad0ac713360b89b23270ca148f4dcb3ef7c1e45069fa38da20000000000000001000000000000000000000000000000203053fe42bdc6048d4366f351cc3207673bba9a85fd31928ea44dadd0eea6990b0000000000000001000000000000000000000000000000200a8473f14e57ca87b9b1a0a05f81818389048f7186fdd7cff1e1bc8ee52a4f13000000000000000100000000000000010000000000000020fd892962fbc5a00afae097f51d03d30aa581fce1038ab8aa58ae53143ec3c1090000000000000001000000000000000000000000000000209d48beddc57723125a7aaad3f517a3c4ec3d45b0a1187071510c102724d6433700000000000000010000000000000000000000000000002058b95513f1be96a860c8424ca1a253ece0a4464984acd90966bc2d86ac3f41c600000000000000160000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b0000000000000005000000000000000100000000000000010000000000000020eac057d1dcf2c99c28bed59ad24fd99705ec9b14bd87cf6a74d00d5f71cf30490000000000000001000000000000000000000000000000208deaa512203693c6744f730decf5b92dafd7056c4ec7f22725a1452c198f35e700000000000000010000000000000000000000000000002004bd9fbf938149c0a9661af06d3f7ca6f961fedb0c14fec24cc007c30aa59c3f0000000000000001000000000000000100000000000000208919b73726bdfea3549af72be23670eef63dda5e0ed664d8862588eccc2cd10900000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca005589600000000000000020000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000100000000000000205ac012a171398444fbef66c778c9a112a09483f18aa5c95ea72a40811752b63b000000000000000100000000000000000000000000000020ba7391ca0111f4b6f54fa029ab9551ae929a5e22b1fb6e6b5bb32475bb0800250000000000000001000000000000000100000000000000204178366b50f377f3dabf65ef62f6cf5a6578eec538e5250111a043a3e6a4d5bc000000000000000100000000000000010000000000000020b86670486fdb118522b061bdd79d473f7af94d2557070d82d7fd34c53b2d6aa8000000000000000100000000000000010000000000000020add0fe147d971c5a4b9d01cf95aee412eb47a9c7e6ad03f2699e74a92c0d94a90000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000020000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b00000000000000050000000000000001000000000000000100000000000000205fc59be8c0e06d324b965bb78420d82793759dc285ceee2246c1f7283ad2befd0000000000000001000000000000000000000000000000208d832052373c63ee165d0c7da4f85560944f17ffcc0f2bf2b8528ab90d1a6ff90000000000000001000000000000000100000000000000203fa49582a3a2bcdb51ae48dfde5f30bdbaf3982f24dc1af42947edcb1c853c1d00000000000000010000000000000001000000000000002065c61d2e4d097c2a39e44bdcfa0978b3b7f05e0efb6c860f1f7a5ae6fe361a49000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc54160000000000000000020000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000100000000000000205ac012a171398444fbef66c778c9a112a09483f18aa5c95ea72a40811752b63b000000000000000100000000000000000000000000000020ba7391ca0111f4b6f54fa029ab9551ae929a5e22b1fb6e6b5bb32475bb0800250000000000000001000000000000000100000000000000204178366b50f377f3dabf65ef62f6cf5a6578eec538e5250111a043a3e6a4d5bc000000000000000100000000000000010000000000000020b86670486fdb118522b061bdd79d473f7af94d2557070d82d7fd34c53b2d6aa8000000000000000100000000000000010000000000000020add0fe147d971c5a4b9d01cf95aee412eb47a9c7e6ad03f2699e74a92c0d94a90000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000020000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b00000000000000050000000000000001000000000000000100000000000000205fc59be8c0e06d324b965bb78420d82793759dc285ceee2246c1f7283ad2befd0000000000000001000000000000000000000000000000208d832052373c63ee165d0c7da4f85560944f17ffcc0f2bf2b8528ab90d1a6ff90000000000000001000000000000000100000000000000203fa49582a3a2bcdb51ae48dfde5f30bdbaf3982f24dc1af42947edcb1c853c1d00000000000000010000000000000001000000000000002065c61d2e4d097c2a39e44bdcfa0978b3b7f05e0efb6c860f1f7a5ae6fe361a49000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc541600000000000000001c0000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b391000000000000000600000000000000010000000000000001000000000000002018946b1e9559c96a3a09330c1884a0701d0febccc52f2c25e2757006cc2e5a260000000000000001000000000000000100000000000000204fc126b58e8e2fb3b9b98416396dfd6d88c3d75c10b8071f18747bdb5dd6818700000000000000010000000000000000000000000000002066a864c0fe566ba1ee83def8ca951e608663970417cc2e7a1f58a4adc21faa5a0000000000000001000000000000000000000000000000205fd7db198abca387face9964712817e444014bcac13ce87f7a7f3a063c4a2ad2000000000000000100000000000000000000000000000020465a1f127ad8c1d5d50e2e78e1987f675b5271439752c54cb80ffdaba65e25710000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c0000000000000001c0000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b000000000000000500000000000000010000000000000001000000000000002048c8aa4cab17389c454943264383f3b3b44eed5d670bb9efc54cfe142000afe30000000000000001000000000000000100000000000000206559a1a6d6e3b5a8dd58020285068f8d6e894ff31b992d685ade2a3e405e902c000000000000000100000000000000000000000000000020861b40a8f6e23edef75ddeac66348157ecc011e3241fcd4ac976118b14d79496000000000000000100000000000000000000000000000020d84b9cdaddc17699c6b3180b4637dccfc18fbc002defc08b67518e24eae2cb9800000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca005589600000000000000000000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000100000000000000206b8334f7b4b9a952c778940780f6e588c538faaa95c1696e36b699473dbb124c000000000000000100000000000000010000000000000020f7a761c374d56dfabb889c74e1a5e23bbb7923bd0b757f65fa784fdec304ccec0000000000000001000000000000000100000000000000204178366b50f377f3dabf65ef62f6cf5a6578eec538e5250111a043a3e6a4d5bc000000000000000100000000000000010000000000000020b86670486fdb118522b061bdd79d473f7af94d2557070d82d7fd34c53b2d6aa8000000000000000100000000000000010000000000000020add0fe147d971c5a4b9d01cf95aee412eb47a9c7e6ad03f2699e74a92c0d94a90000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000000000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b00000000000000050000000000000001000000000000000100000000000000202ec1c011f939c6e7b30a5f8d99f5d463ef8740881f88ea0762b286d1f7e2c6b20000000000000001000000000000000100000000000000204e2d792b7b178afde2ff751bf479e60bdc0eec820c6ee8cabea8433bdc3e10fd0000000000000001000000000000000100000000000000203fa49582a3a2bcdb51ae48dfde5f30bdbaf3982f24dc1af42947edcb1c853c1d00000000000000010000000000000001000000000000002065c61d2e4d097c2a39e44bdcfa0978b3b7f05e0efb6c860f1f7a5ae6fe361a49000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc54160000000000000000150000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000000000000000000208bc16c2eb4be4c8773060a710b8597ca7975d4adab442b16a4318c3828da493e00000000000000010000000000000001000000000000002082a0491857c498403cd48f4eafe06722748bc8a4c9debf3995d089bd81fbc7e9000000000000000100000000000000000000000000000020fa1763ae3c7da1186b59048bfaa651cb2ff2f493d66eb9f05a17a84c5e550ea00000000000000001000000000000000100000000000000205f0bb053e088ded68d0c1786c068b03ec58098a3cf6214d1be943d29ba6d13ce000000000000000100000000000000000000000000000020465a1f127ad8c1d5d50e2e78e1987f675b5271439752c54cb80ffdaba65e25710000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000150000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b00000000000000050000000000000001000000000000000000000000000000201c1515f2bcc6fe1e4f8e94256b544834b3e63979bad5991ff3dc27b080b231a9000000000000000100000000000000010000000000000020d96e84f531c37e66d70a303a5230591625d1dce94090e3b264d8ee7fc9caa6eb00000000000000010000000000000000000000000000002004bd9fbf938149c0a9661af06d3f7ca6f961fedb0c14fec24cc007c30aa59c3f0000000000000001000000000000000100000000000000208919b73726bdfea3549af72be23670eef63dda5e0ed664d8862588eccc2cd10900000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca005589600000000000000160000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b3910000000000000006000000000000000100000000000000010000000000000020fe760f0f89bf553c5bb34f1a9333c1e39a9488cdcb634fc251b58ac563d62460000000000000000100000000000000000000000000000020ace2dd92e70e444a3063ee8a9babe6e954e1ddd3fa0d3d10e1a064cbbf086b45000000000000000100000000000000000000000000000020fa1763ae3c7da1186b59048bfaa651cb2ff2f493d66eb9f05a17a84c5e550ea00000000000000001000000000000000100000000000000205f0bb053e088ded68d0c1786c068b03ec58098a3cf6214d1be943d29ba6d13ce000000000000000100000000000000000000000000000020465a1f127ad8c1d5d50e2e78e1987f675b5271439752c54cb80ffdaba65e25710000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000160000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b0000000000000005000000000000000100000000000000010000000000000020eac057d1dcf2c99c28bed59ad24fd99705ec9b14bd87cf6a74d00d5f71cf30490000000000000001000000000000000000000000000000208deaa512203693c6744f730decf5b92dafd7056c4ec7f22725a1452c198f35e700000000000000010000000000000000000000000000002004bd9fbf938149c0a9661af06d3f7ca6f961fedb0c14fec24cc007c30aa59c3f0000000000000001000000000000000100000000000000208919b73726bdfea3549af72be23670eef63dda5e0ed664d8862588eccc2cd10900000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca005589600000000000000030000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000000000000000000205c5d43f1aa5b8158b31eea03af2382014605e17b6ce8b7609c9544deebdc67eb000000000000000100000000000000000000000000000020ba7391ca0111f4b6f54fa029ab9551ae929a5e22b1fb6e6b5bb32475bb0800250000000000000001000000000000000100000000000000204178366b50f377f3dabf65ef62f6cf5a6578eec538e5250111a043a3e6a4d5bc000000000000000100000000000000010000000000000020b86670486fdb118522b061bdd79d473f7af94d2557070d82d7fd34c53b2d6aa8000000000000000100000000000000010000000000000020add0fe147d971c5a4b9d01cf95aee412eb47a9c7e6ad03f2699e74a92c0d94a90000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000030000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b0000000000000005000000000000000100000000000000000000000000000020cc628e1e20eb26fc1e106fdffeec542b704565e1e644758b45aa93c125665ceb0000000000000001000000000000000000000000000000208d832052373c63ee165d0c7da4f85560944f17ffcc0f2bf2b8528ab90d1a6ff90000000000000001000000000000000100000000000000203fa49582a3a2bcdb51ae48dfde5f30bdbaf3982f24dc1af42947edcb1c853c1d00000000000000010000000000000001000000000000002065c61d2e4d097c2a39e44bdcfa0978b3b7f05e0efb6c860f1f7a5ae6fe361a49000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc541600000000000000002d0000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000000000000000000207c3ac2be74098d36a55dff61c1ff1201851a58632884eceecdc61c02c48bdf070000000000000001000000000000000100000000000000205349324d3cf7e3b462f9fa513629efd1fb3ea05324e1cbc73311c35de7be5dcd000000000000000100000000000000000000000000000020d821f73d7a3ee617719da0b26f94d60c9890893140ebf81bef8472f66dcaa25a000000000000000100000000000000000000000000000020b9a52c56713a9880951e923afbecfaf24a90d9fb2b5a1dfa8d58a63c297f272d000000000000000100000000000000010000000000000020aed17919db728953ffd39208c53f105905f6b720d15998100add061d340ab11500000000000000010000000000000000000000000000002058b95513f1be96a860c8424ca1a253ece0a4464984acd90966bc2d86ac3f41c6000000000000000d0000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b00000000000000050000000000000001000000000000000000000000000000203bfa073912d0de7657ca22aff98bcfdbf76e5a0fd7fb7f5e27060e68af49372c000000000000000100000000000000010000000000000020cf0ac1a1730a66809ab42852765f05e2b0f5b8abf57a2cc8b8866895c4d9f7cb000000000000000100000000000000000000000000000020b697dd650079632ef8e3e1d9d7ec7961a2008591ef5687500603dbc263b690d8000000000000000100000000000000000000000000000020a453503d52eee70b784c636e310fe65429b75b64fd26a77c27c20dbe18d3d33d000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc54160000000000000000160000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b3910000000000000006000000000000000100000000000000010000000000000020fe760f0f89bf553c5bb34f1a9333c1e39a9488cdcb634fc251b58ac563d62460000000000000000100000000000000000000000000000020ace2dd92e70e444a3063ee8a9babe6e954e1ddd3fa0d3d10e1a064cbbf086b45000000000000000100000000000000000000000000000020fa1763ae3c7da1186b59048bfaa651cb2ff2f493d66eb9f05a17a84c5e550ea00000000000000001000000000000000100000000000000205f0bb053e088ded68d0c1786c068b03ec58098a3cf6214d1be943d29ba6d13ce000000000000000100000000000000000000000000000020465a1f127ad8c1d5d50e2e78e1987f675b5271439752c54cb80ffdaba65e25710000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000160000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b0000000000000005000000000000000100000000000000010000000000000020eac057d1dcf2c99c28bed59ad24fd99705ec9b14bd87cf6a74d00d5f71cf30490000000000000001000000000000000000000000000000208deaa512203693c6744f730decf5b92dafd7056c4ec7f22725a1452c198f35e700000000000000010000000000000000000000000000002004bd9fbf938149c0a9661af06d3f7ca6f961fedb0c14fec24cc007c30aa59c3f0000000000000001000000000000000100000000000000208919b73726bdfea3549af72be23670eef63dda5e0ed664d8862588eccc2cd10900000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca005589600000000000000270000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000000000000000000204a5611cfbfcdcb281fb2befe3a274279d974a4d15622f5cb96f01b1bca3911f0000000000000000100000000000000000000000000000020ce97867ee74c91d4cbf3e7a25f3ce20adde49401b611d53276d0209ca3953ea000000000000000010000000000000000000000000000002010ec51adb290f82dffd967d7e0346ffc3b34441d4c608b0d345c6bc95721ee23000000000000000100000000000000010000000000000020d3c4d6f1b3c5ed676621751ada57ff8394febc0261a6f6c423de3deebf1c8f78000000000000000100000000000000010000000000000020aed17919db728953ffd39208c53f105905f6b720d15998100add061d340ab11500000000000000010000000000000000000000000000002058b95513f1be96a860c8424ca1a253ece0a4464984acd90966bc2d86ac3f41c600000000000000070000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b0000000000000005000000000000000100000000000000000000000000000020e1e3b27036ad5ec4ea4923e3f81a81a1320924f3b1d852a7a0882b9b2f8f1802000000000000000100000000000000000000000000000020f7d72bccc5a546f5ff54fe19a5ee45d9d2e1baa2b1f84e1f11b141d15d8c337a000000000000000100000000000000000000000000000020faeab7138ec7ab5c1ccf63393ccccc81e7c7645d384c90bdbd423e8a9317742600000000000000010000000000000001000000000000002065c61d2e4d097c2a39e44bdcfa0978b3b7f05e0efb6c860f1f7a5ae6fe361a49000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc54160000000000000000270000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000000000000000000204a5611cfbfcdcb281fb2befe3a274279d974a4d15622f5cb96f01b1bca3911f0000000000000000100000000000000000000000000000020ce97867ee74c91d4cbf3e7a25f3ce20adde49401b611d53276d0209ca3953ea000000000000000010000000000000000000000000000002010ec51adb290f82dffd967d7e0346ffc3b34441d4c608b0d345c6bc95721ee23000000000000000100000000000000010000000000000020d3c4d6f1b3c5ed676621751ada57ff8394febc0261a6f6c423de3deebf1c8f78000000000000000100000000000000010000000000000020aed17919db728953ffd39208c53f105905f6b720d15998100add061d340ab11500000000000000010000000000000000000000000000002058b95513f1be96a860c8424ca1a253ece0a4464984acd90966bc2d86ac3f41c600000000000000070000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b0000000000000005000000000000000100000000000000000000000000000020e1e3b27036ad5ec4ea4923e3f81a81a1320924f3b1d852a7a0882b9b2f8f1802000000000000000100000000000000000000000000000020f7d72bccc5a546f5ff54fe19a5ee45d9d2e1baa2b1f84e1f11b141d15d8c337a000000000000000100000000000000000000000000000020faeab7138ec7ab5c1ccf63393ccccc81e7c7645d384c90bdbd423e8a9317742600000000000000010000000000000001000000000000002065c61d2e4d097c2a39e44bdcfa0978b3b7f05e0efb6c860f1f7a5ae6fe361a49000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc541600000000000000002d0000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000000000000000000207c3ac2be74098d36a55dff61c1ff1201851a58632884eceecdc61c02c48bdf070000000000000001000000000000000100000000000000205349324d3cf7e3b462f9fa513629efd1fb3ea05324e1cbc73311c35de7be5dcd000000000000000100000000000000000000000000000020d821f73d7a3ee617719da0b26f94d60c9890893140ebf81bef8472f66dcaa25a000000000000000100000000000000000000000000000020b9a52c56713a9880951e923afbecfaf24a90d9fb2b5a1dfa8d58a63c297f272d000000000000000100000000000000010000000000000020aed17919db728953ffd39208c53f105905f6b720d15998100add061d340ab11500000000000000010000000000000000000000000000002058b95513f1be96a860c8424ca1a253ece0a4464984acd90966bc2d86ac3f41c6000000000000000d0000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b00000000000000050000000000000001000000000000000000000000000000203bfa073912d0de7657ca22aff98bcfdbf76e5a0fd7fb7f5e27060e68af49372c000000000000000100000000000000010000000000000020cf0ac1a1730a66809ab42852765f05e2b0f5b8abf57a2cc8b8866895c4d9f7cb000000000000000100000000000000000000000000000020b697dd650079632ef8e3e1d9d7ec7961a2008591ef5687500603dbc263b690d8000000000000000100000000000000000000000000000020a453503d52eee70b784c636e310fe65429b75b64fd26a77c27c20dbe18d3d33d000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc54160000000000000000000000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b39100000000000000060000000000000001000000000000000100000000000000206b8334f7b4b9a952c778940780f6e588c538faaa95c1696e36b699473dbb124c000000000000000100000000000000010000000000000020f7a761c374d56dfabb889c74e1a5e23bbb7923bd0b757f65fa784fdec304ccec0000000000000001000000000000000100000000000000204178366b50f377f3dabf65ef62f6cf5a6578eec538e5250111a043a3e6a4d5bc000000000000000100000000000000010000000000000020b86670486fdb118522b061bdd79d473f7af94d2557070d82d7fd34c53b2d6aa8000000000000000100000000000000010000000000000020add0fe147d971c5a4b9d01cf95aee412eb47a9c7e6ad03f2699e74a92c0d94a90000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c000000000000000000000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b00000000000000050000000000000001000000000000000100000000000000202ec1c011f939c6e7b30a5f8d99f5d463ef8740881f88ea0762b286d1f7e2c6b20000000000000001000000000000000100000000000000204e2d792b7b178afde2ff751bf479e60bdc0eec820c6ee8cabea8433bdc3e10fd0000000000000001000000000000000100000000000000203fa49582a3a2bcdb51ae48dfde5f30bdbaf3982f24dc1af42947edcb1c853c1d00000000000000010000000000000001000000000000002065c61d2e4d097c2a39e44bdcfa0978b3b7f05e0efb6c860f1f7a5ae6fe361a49000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc541600000000000000002f0000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b3910000000000000006000000000000000100000000000000000000000000000020856a968fd3cb5876dba5712a865b062b6f03422d4995f67af19e00f51a754003000000000000000100000000000000000000000000000020557656fbc0f1ee9ab02fac82889134c19e4aabe88f12a5014ff364bdb1fd8f71000000000000000100000000000000000000000000000020d821f73d7a3ee617719da0b26f94d60c9890893140ebf81bef8472f66dcaa25a000000000000000100000000000000000000000000000020b9a52c56713a9880951e923afbecfaf24a90d9fb2b5a1dfa8d58a63c297f272d000000000000000100000000000000010000000000000020aed17919db728953ffd39208c53f105905f6b720d15998100add061d340ab11500000000000000010000000000000000000000000000002058b95513f1be96a860c8424ca1a253ece0a4464984acd90966bc2d86ac3f41c6000000000000000f0000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b00000000000000050000000000000001000000000000000000000000000000205f16d24275599e549e2533fbac86e79499f9a329aebdeca82d02048c9b90940e0000000000000001000000000000000000000000000000206727d263de7719d1bcfa4f90c0c8dfa16f99f5f2b61f07d6702dfa60b8b8db66000000000000000100000000000000000000000000000020b697dd650079632ef8e3e1d9d7ec7961a2008591ef5687500603dbc263b690d8000000000000000100000000000000000000000000000020a453503d52eee70b784c636e310fe65429b75b64fd26a77c27c20dbe18d3d33d000000000000000100000000000000010000000000000020469b564e6141a59ad5c4bc709dc82636d514269295a241721602d485dc541600000000000000001c0000000000000020d81ae44d21947e85316e0153c5b90bec19607f6fa1521d655c15bd0e1a98b391000000000000000600000000000000010000000000000001000000000000002018946b1e9559c96a3a09330c1884a0701d0febccc52f2c25e2757006cc2e5a260000000000000001000000000000000100000000000000204fc126b58e8e2fb3b9b98416396dfd6d88c3d75c10b8071f18747bdb5dd6818700000000000000010000000000000000000000000000002066a864c0fe566ba1ee83def8ca951e608663970417cc2e7a1f58a4adc21faa5a0000000000000001000000000000000000000000000000205fd7db198abca387face9964712817e444014bcac13ce87f7a7f3a063c4a2ad2000000000000000100000000000000000000000000000020465a1f127ad8c1d5d50e2e78e1987f675b5271439752c54cb80ffdaba65e25710000000000000001000000000000000100000000000000207e22739278ce43b06f93a8e08c858a16284474ed09f403c4b7492fa0216a04c0000000000000001c0000000000000020dc86048a6184e9e33eea86320086680f2b3bec33b3c63910517505d31759837b000000000000000500000000000000010000000000000001000000000000002048c8aa4cab17389c454943264383f3b3b44eed5d670bb9efc54cfe142000afe30000000000000001000000000000000100000000000000206559a1a6d6e3b5a8dd58020285068f8d6e894ff31b992d685ade2a3e405e902c000000000000000100000000000000000000000000000020861b40a8f6e23edef75ddeac66348157ecc011e3241fcd4ac976118b14d79496000000000000000100000000000000000000000000000020d84b9cdaddc17699c6b3180b4637dccfc18fbc002defc08b67518e24eae2cb9800000000000000010000000000000000000000000000002088d442e406b064f3ad829eca0a480dde4c40ba63efde3b0664af439ca0055896000000000000000209730bfdcb271ca384f91ca5975c616ca2fd0fe1822531c794c4bcd489d3f30b32d2ff614ebfda46f6a48a5798cb4cfc84ff65ec16bd5b17ff229b089ee8aa06327b87bb \ No newline at end of file +0x0400000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d6000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f299941856000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f3293800000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f35b0f45589508478252e84f59c75045f361cbcd18e45c042935382e7bef544e7000000000000003735b0f45589508478252e84f59c75045f361cbcd18e45c042935382e7bef544e7343b8884869e63daf6dd0953387348368c7a4fe70ddf9f3c44b97c38fff8d0fe0c74c5abae929658b9e898cc0e4915db85754c27a228dcde7beccad2baca587f0529aa96a117f346d2512ea01a40691035492b93202a37bef2eaa968ffdc14f23e47dc5a68dcefbba18afbfc476d6d499b4a7cc62acc50586b9ff61da5f3ba7b19d054f12577c0621b95e92083420d510a6dd9dfa0d316babe954f0cff4c68ba37674dc40c50aeaa27b6ebed6523226f7f5a0beeb0c9ad4bb56b0ae03dc2a4630111a8b5bb56c1ea89ed8da2904a4294ef980f6611857f6e86902966fc7e0ba035b0f45589508478252e84f59c75045f361cbcd18e45c042935382e7bef544e7343b8884869e63daf6dd0953387348368c7a4fe70ddf9f3c44b97c38fff8d0fe0c74c5abae929658b9e898cc0e4915db85754c27a228dcde7beccad2baca587f0529aa96a117f346d2512ea01a40691035492b93202a37bef2eaa968ffdc14f23e47dc5a68dcefbba18afbfc476d6d499b4a7cc62acc50586b9ff61da5f3ba7b19d054f12577c0621b95e92083420d510a6dd9dfa0d316babe954f0cff4c68ba37674dc40c50aeaa27b6ebed6523226f7f5a0beeb0c9ad4bb56b0ae03dc2a4630111a8b5bb56c1ea89ed8da2904a4294ef980f6611857f6e86902966fc7e0ba000f91c6a9b196f2758554b28cfce9c4fc5b99f516a584a92673c6270b27c63490434da0a1e6aa85e9df5f05ed99e523e0a4d6b69ba2c7cd0c2439b0e8210f8b217751bf2a581542ee47b5ae7d4e0e02af7a71bc873c7f7385aba2bddea3a5ef61a96c1265e6fd1fce7f4d649a325e0535702631d747d9d4740ef4a140fd938773a6ab7648a2a850b7f48df0db54152ff4d48478c88c594101912a58ed6178a6e3dfbdbf08c58e4f3e916fa1a6f3e75208970c68882f242793123b14ab791cdf221068a24b09ebdfb8b9e22464fed6eed05196ac08e937ad22b6658422a585fe40369984a55d800e03417bc473d1e147000712bcc9be3966fc59b2c261352045e295b7fbed4e2420808d6b3101d2f0041fbb28c89a4e944619e14aae32632b0f22982aab9b585927e3f14b985f904622c92c1801f6035272e3e15dd81b6da46541cd1b01a9234159ceda831e7764f1caefacbff56d466fe016922bd33a84767320428994f647f501b7fa5a6746b98e0c986f9913eb8a053bc75ba3024743908f21cd1b01a9234159ceda831e7764f1caefacbff56d466fe016922bd33a847673219e6ed90a0526e61f50302c14419b2438ff644a944fb685d20b27f915c77be0b2810d8e2f6270a1cd3890c3c5e5c18991066713e9329e8403c9707e7899494b619e6ed90a0526e61f50302c14419b2438ff644a944fb685d20b27f915c77be0b3d0aef0e94c434b9a9f151793318c9a9630fcadac7a319832bdada96c3c819380a8934de66245079cab2dbcc48f1d119759451e3e57ba8e4d04f04d6e132a637203b4864e80c167d21bfee2eb36d311efb3d2b23704a94712ebde959bb996b902d84190e39619223887c598488c7e10b82ac1dc85d89981e13cedb079a6bb9e419e6ed90a0526e61f50302c14419b2438ff644a944fb685d20b27f915c77be0b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012e51459a658132a7f08e085236423193874800702e5dafe896cad9fbd6312834053981687ce7b96ac8299df817997a9c826e08d4f7f8834e7a9bed4b84e1ad4e2c5472ed9519cfe1a742d477767266b6c3d575e89190f5cf97af1cd52e0dea291a45aa62eaf0df7e96db983c1567f5d9f54949eab9f6f40d614ff1802a4a6574192ea31c79ee8db82785518bbd76c1e54f368a315ed82f4a2c3614b24cbe64e434879689e4d0613ae0d5f52ad43dd90e5ea7336e6414484bcb87f943201fcb960523a99c533aaeaf4065e3d2e62bb34c2f535effd232f1e9efd4973b6b984ea412e7e581436609f02a25faa41959029a50aedd0859bfd0b4fffeb2b5dc3ea3f31137ad4f1a87b75b557b600ff86867219f3ae040e32c96ca709b51366150f8a63bc940ca03b59002d895be5216b49e6906fb87bca82bb7f8f850493411047de736553157fae4c3191b3817e80467b1861ee9eebe695ea5c2787268c42fd12bec37fafdec9f245386daa66970c868ffc01d4e56430c1885cd81c6adf17fafa3950b12291cc2dc097712212be611cbb3e33a8810bfbc21ee37749c5adb9028e02a0bb7c43d455e6bf83fc69db2b49c9dff617f7a77479b149e5ac5bcc213589ce5000000000000000a000f0103020203060402000000000000001c02020202020202020303030303020301010102020101010101010303000000000000000200000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000002010100000000000008c03aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a061301911905583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee82546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d5791ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a883a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a623ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c31c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e3aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a061301911905583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee82546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d5791ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a883a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a623ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c31c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e3feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d0b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c365c6077ab0490bcaa9f5627c0f5cde99a59a31864ed553d57b8162b46e494bb3e4254bae5217d87eae55fff4904382ad728515da29225c1b52c2a7e458f79903cc40f2563957cd02b5394bc253c4d0448f634cd65e2e2c3d47c95b581077a621e6a494cbf36abaf8b8a6a8de1165276533eb64441a7a8777834e338713e3148017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e17f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a66373299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f100220b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c3feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d3e4254bae5217d87eae55fff4904382ad728515da29225c1b52c2a7e458f7990365c6077ab0490bcaa9f5627c0f5cde99a59a31864ed553d57b8162b46e494bb0b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c3feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010ca081f647c3a9cb55af2191e325034d8e2940d9b79efc1c18ee9f0c4138fea51de9b43833ee51c21ff92c81d6fd2f50c3802ad659cbc629141a343698505f8c0a8f8e62d2f1306bbf2d43e17c0517dcfd32d7a38db1caf43a9cbd1e94206cc1166f269f8e472b263338c159af33d7948f783bafbea141b1f184d144cada56c21d78b132bf84510b91d7d719fefa47b1b6050174a845e4a21a1948455ed4d670298d8696bb2005af943a452fd8c9a1980f1cb9ffa2b50b8ff004c5318e84da8b0fef6bffe733d3d4802d6157bcb75fb459a3fddd81f14279f85d0608e6259ac139fda498248c0ae6e88e00c5bb72499f01eed91fcf0a8f20b0102dddec385e0e20bad6e5ed7e32b427a948695375f7850ea214c1e2821b459f24701d11107c062c6bbab900f68a00c926bd02b763043eb93a1f8e4f8941ed81f2e4a26061919e3f91b24e70802320f126e25fdd38ddf95f74a462ed0a55f6fdbdf0495e42508223e5118034e43465b244ec6d1c1d68cb8b5e0b900de6a8fdd61cc01673e404d52250416b73f745f22bfe2d5ec50c202791db9ea95f6c3f8045349e515493acc72d1d361d159fe3d131a99fabe76fabef558ab13653ba938fef93e17ff11f6b0631183373aed342870969053de46eb2420ceca27eb0b66695b61c4c1f18aa7522022cffda2481eb068d3e4d4058a2500b01f7053d1590df008987dc090ed3023b1283ca168f30a596b046a343283cb8aba63becd34c87237579e4b78935596d621f39419cfcf4fde686d12bc819adc83e781ba39e40ae430178a878f7a089c00f12cf3b49a33500bcf5951796e4eafd130452457a50ba7038f18dad0c6c119bd12d30c4b65ccaff430a6ae8691b1502ed1df45381b89288e2a79f83e093ee64301e0c2870300903b0cbe975f27896f15ef354c2678a5738011e9730511c580b1421f3d78fcff6fc4f34168a0d87690ea12ef1d6947ef5c11a7a96009be3a7f4ed163cca30f02d1273fb8f4dbc5af2b6da7c1a9a0da11a25ce66998fbb8db8376229c335cf0fd2ed8c0470b243a50d4925a62bfeee6832d34d3293a1317247c89f2f2ff2f4b0e15c43e9cc84adc6bd92444a3e69481c35c3ec67d29dbcc49914e910d00d0b4f1ea3bc16337b5239426dbbd8082fb3ed17352f315a93303b66eb1812cf3b49a33500bcf5951796e4eafd130452457a50ba7038f18dad0c6c119bd12d30c4b65ccaff430a6ae8691b1502ed1df45381b89288e2a79f83e093ee64301e0c2870300903b0cbe975f27896f15ef354c2678a5738011e9730511c580b1421f3d78fcff6fc4f34168a0d87690ea12ef1d6947ef5c11a7a96009be3a7f4ed163cca30f02d1273fb8f4dbc5af2b6da7c1a9a0da11a25ce66998fbb8db8376229c335cf0fd2ed8c0470b243a50d4925a62bfeee6832d34d3293a1317247c89f2f2ff2f4b0e15c43e9cc84adc6bd92444a3e69481c35c3ec67d29dbcc49914e910d00d0b4f1ea3bc16337b5239426dbbd8082fb3ed17352f315a93303b66eb1830724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f62e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd606dddf9bcd0c2033836249932bf3ce970b3c1b1026f23e8e76c0903e838283321a92f6a61fce846b25c83d8fbcb76aa39feca1dc39a5ea305ae3ae246a618d053cab6d197f17180e56399a722450928f6d9116af63172aafb8dac171d79684af20f0072591fd810e96d65b79ca90d674ac9a437419480fec57f01490c6a71f531de7898ca0b76c5ccf8ea31d9866d81454a22428dfdbb89c3b361d9f92cb085725edd8763b0e9f24ec8bee196162f82280e8709816f727bdb7fdac9abcdb63e03c5f354a6809f5d8fc0d754f10b0845dec5a231524772141e6eba5461ed414fa0552acfb4136a8687c086867198f336159a70e0de3347500c25c57abf0d8fec12e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd630724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f61a92f6a61fce846b25c83d8fbcb76aa39feca1dc39a5ea305ae3ae246a618d0506dddf9bcd0c2033836249932bf3ce970b3c1b1026f23e8e76c0903e838283322e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd630724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013f04746b17ecc54f77bd72585a684e8fd03d61aafe9a442806af881b3210ae352b848eb10e9fdd59fd8c4de2526a6ca06d4ddc1141e84b695ae562ed60e64335025d6ea885215d0616c1ddbcc9104ddb5829422611d8c6bb4014f377b168c11110913e2f49daffcadbdd9040604f7943e36491ae951f3a1f3590c63cfe1b3bda1f15ab20061476ce9aa338bc3af0bdf901064f55847f47202dd4933248e9dfa506e0128752f4c77886ba5d531aef3d916a8c7f33926e7e7eaade0d218a0a580e289d5c26146efbb8b80b7c60c0616da75959fbd6f33b39a419d96ae3b60da6ad03ead49eeebaed8b0c8887189ed793cdd39cd1bf2f728e7cd0a4de0ac40cc21f18774eef9ada6ce3f881138985888be874da78a7926a3102ce2685f60f8c686a3a3ac4d0b3c443c86f7887a73230bb95f13b18138a2ac748c8a3dfadc3e8bc4704d882b645e0b51c301bbad7ce1792ca0af622b5c54b24d8709232705a9acfec31a581c646f4f1d9f4e275e595790818f819570447b99a4b0047f9064d1aa8fa1084487d01958b22500d5783ca00e6f1c5c7128548acb7043557fcce0e90a23e3ee92f0b88019ea10d9a7586e27ae525219f3d5a6a7a1c0bff7083033722758f3edab8a35df757cbd4bf9ac2f5119c89a1b215c871c13693296827575bded2031bb44fc94108eba44e98be22f7b693dd046de296c1fadb7659969a43894855f519a9ccc9665fb54d4f9fdce0598492b9c9d18b2d0c32a921fcb87014e0cad92b2c0c1664fc7fd450b1a01474530358a687391196c1a91cc37ca89931df0dc17f3eba218389931c1085d5c0807c3fe861039b4d0cde9c1394c0d3cc22092a60340145de7c766ce3ef7a2a3f7f83c0179f1eab4bef2ab0e586d85964caf6d59fcd39a2a791afdf8c529d2cc2826d3f89e488ee1d5033d87d795f6e38f62dd3e100065d586e502073ad62d33d7d92c0761b99587babd5747ba239bef7f6d22c1f01202d45d86f5dbd9d11dfcc8c223db176238c2ea0de068ef07872591ae52364fc1fd2ba2790a24262ee203373ddc24e89feba6a5b2b466a2b20bad7d21adc9b0520e25d3a2cd4b411595efebcab34774e6d2fb72c4386d87b27e15bac79b0f8ea1f1da2c5d32b4beea6a1014354cb88b1b516e1cfc5c620a0714bd540864f07173eba218389931c1085d5c0807c3fe861039b4d0cde9c1394c0d3cc22092a60340145de7c766ce3ef7a2a3f7f83c0179f1eab4bef2ab0e586d85964caf6d59fcd39a2a791afdf8c529d2cc2826d3f89e488ee1d5033d87d795f6e38f62dd3e100065d586e502073ad62d33d7d92c0761b99587babd5747ba239bef7f6d22c1f01202d45d86f5dbd9d11dfcc8c223db176238c2ea0de068ef07872591ae52364fc1fd2ba2790a24262ee203373ddc24e89feba6a5b2b466a2b20bad7d21adc9b0520e25d3a2cd4b411595efebcab34774e6d2fb72c4386d87b27e15bac79b0f8ea1f1da2c5d32b4beea6a1014354cb88b1b516e1cfc5c620a0714bd540864f07171daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff41b0c3367befdd9a23228379436fc2a4d6924fc2c37a8e525e8d89ba3eb52755414c0638803c42c3e8a992286d7a0db3f35b53d1ef9e28dd5cf90d2b16fe7461c3780608b24a9456ccb9f2045db37255b2c52432e9a501fe468cb58daa56815043e67bfa2358232f285f9c6aa48a670ae33bc882dc8695475516879500f531a3b1d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f31191ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a31870947f95bdea9c3c192cb3bbf7effe29d0fb7bf7284c1d7e0d66acf118ab01040c9277dc8c6351fd039b70656118046072e337c872d37814fdf794ba768ca328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff41daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f14c0638803c42c3e8a992286d7a0db3f35b53d1ef9e28dd5cf90d2b16fe7461c1b0c3367befdd9a23228379436fc2a4d6924fc2c37a8e525e8d89ba3eb527554328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff41daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001297a2925b86ebd281dd0242fd33fd7b431b7f63d6dc0b02deab5f4c74397d87724cefc30e5dd8624c3cbd01a99119d458c940f3e914a786ede765d6ff9a1250507e70f7da3875613b3f6aaf5a67988b08fa00fc8bc850e3fdfec3e38eb7fd44631fdaed1b0e13c8228b7001a4ee6a9b90d0c7d55e3f50cc9493ec43ad37ed874180c2787fda7438b2bbdaace6b7732f5818c7603906efd46347aa11cbf52fafc146c767d91de08ed68aff5bb76e22e34669207b4027748148fd2f460d93dbf253088351bb9cb73760969cae0772a22cb26799509a82193128592b4c48cd746203680d7ccca5b2160b3b1172d776ed871674c100e3fe5a86b8c702e46f30d43ab22dae2687aa531b16d537796f1bad9b85c03901f629972a2b05ec20b9077e2c6029f32f1f51afa93cf6a44ac7ace3c180315e052af956b7a98e470fdda389a7038c6488a4392b4cb74695b3a6e9a45e9709e8a7b9c126d54de2c4f2e935010fe035398fd74ddaba47b9c279635f7c4f088b2b1325b38c9e31bcceee583d685392d42ae22e26d0ac91e311119c8941d5a65d5b893524d753f997b17adf945b3e8222ac965a72a1efa3f76bbf0e3e7aebc8190974c60d95dd09b4d68234c6d63e5347fc70c0b90571f24f8addf4ac015375de58146ce807c5ad06d8b4b44137768152643b7b10d03d52adf0d751ba01e6a04f74f2e472baa328fea08a192c435e7389c4419858b12752ca473a33ca27494b7df76bf6f4f3c18c852f0dca6d06ac611bebeebfd945a733cfb112bfc5adccc71a90f719eaaa2e9e3c3ec251d8b498f1043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a1043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa126c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b3bede82a1ef51d40115086dd2213afb9fe7882b2741bc04a7341075fab56bcb4343eb86b56bb3939dafa46ac624a5b45ea704c4b192f810bfa86c6325ba37a541bbae18983592ea009d26ddcd2aae567ef8ab3ffcca434207997ebdc11a661320046ea7e137d4a3bf99df6b3c2c31ea4a10063e1a37556218da07592b2539d091883d6e1d3620a99d127d8cf8f9f75ddfae5984b4c8b4ceb80eeda5649fd19223ba6fdac0b77d30417b290295f5091155d781ed0d0a66a28e5a091ccf9031fab3319a2a83a6dd65b246c9f7d539b67b09c3b0afe9bcc31f641e4746e726732ac352254da5cad22b2bb31a255d43899f5be174c33d783688ffa31918b2d0e604e26c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa1343eb86b56bb3939dafa46ac624a5b45ea704c4b192f810bfa86c6325ba37a543bede82a1ef51d40115086dd2213afb9fe7882b2741bc04a7341075fab56bcb426c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012719559dffa53f78da0155bb28d1507a929316a24968e5eafa4268132d74a74e00a86bc3c3cea52cb0261a49a4ef43aa2d1634150ff783c9a7663d57ee93867f331b231586478b0586a67a461e4a7cefea358599dea3d418e1905b3134f173830c923ae78bdaff4be091fa9fd2dd45c775e3b1ec5d0531ececc3fa00cc1b3ddc170770535b42bb85d96215ae1f6448d54ccca1af0a59d3290eb1808e8b825d7135d96f5346c7fee33b88327de6933f2429e0857b3540bbd83b58d1db88704aa70cdbdd0c8d047325aec00d4172f3b2438d0ddde0f94caa553eda5ebb0b0af623082f7b63b92c90b858799612e668723c2316d9fd8f3783fcf50b4842891c8c5c2f8e1ba339d4c713d31edacc2f76bf1be30e0ac9ab0c6041a9cf700fafa2e34502f11c2b456fe3096c591ef984cd72c016218c456751f66fe836ca4e58b3b2ed38789db12f180832b126bc4920ba7242e25e848e244071f6a569ffb7149d906908763d308a0102ba98d2247b5a346e2788f99f98bb2fdedb41dc481c181edecc2b56c410770ec351114ad3e6aed505473faf7bb8d489226cda74e8fd56690e542416b378128866724c5cf923fda6c6cfa7b6d426de9db0a35a5396d3ef4a0979293bb73b2174b5123d59d7e5c4f378749de4afb88d17a6e110658c04f0d996ee1443d32dfae0e33534892eae94af2e2a0fa2ee914e0a81acc119e1305b9ad3fe26a165ef67211a5cad17c79063f35b92653a348cd64c85e8bd9f3c8af823692b3ab0e69fdedf4f3e21f3bb850642a553f331e2b6512a452a6c2583f0167c4748336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a0c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba0305e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df63a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b1d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce22724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a33336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a0c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba0305e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df63a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b1d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce22724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a330a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac629bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c3a1fd91331ac8e97af8356a18902d5d6cb9303a89611fe8d9d6f55ec0f200be1120d8f2f9cabf36cf829e0210d653a2833c4df016bdce7f4bb8826eb6390d7203cc6685db8543c231286b2845afb78b7ce5da7711fdf1afa1599b0f8a5e75f2d3b63fa20c08ef6946b68d1be6e6578e912c24f6d15ed51fa875cf830c4f8444e154726d1e457b749e5a32d9cb269c17087add08c554ac6163f1ba6dfbda977f43ebbdef2711d9803441a84e31a9d5ceddb174d378971a5aeaf3f8ea84a27c7941ec72c0c20573b5141e5d40e17d7293f3bb25cd5f92b26d68aa789660ac49eba06b8d7221f316ccd211c30eca2885f3786348b037a8ee4b5e05159fa94c46c3c29bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c0a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac6120d8f2f9cabf36cf829e0210d653a2833c4df016bdce7f4bb8826eb6390d7203a1fd91331ac8e97af8356a18902d5d6cb9303a89611fe8d9d6f55ec0f200be129bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c0a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012ee7cf40e9a75aa38cb64e66af9642a9169c9731eb57edb6b53369ec0446208c3b1e6a9982481bb6506650697a5dcd7822a320c657d46eb36ad741bbcadfabf11eccdedbc1a2134506b3b008b1992b2ad709e8cf9e180e564811ed9430647cee163f9bec6aa1ed6b98c97ed5c43deb881684b6a033004a73a655246bc4aa1d113206bfab9e791a088273c3ac3afd2e006f31ed3dbf2c54ecee900caa7a1a108020c70aea841759df5538b07c41016d329e965a95a9129f311d455f5e33d4d50b053a2d5104659714a47bfa3d4e0b1433021154efd45427a4590fe4e352ace9e7072e5903b5de133cadeeb465ab50a579fdbeab329bb363e0168f114701cad000277e93090ed9b5553571d0e7c5f3f44409e353f07b2402116c2ce4a9ea002cd400f43caf717d7ee4cedb6d07b1f157c7b54c4ea0e05e1721b14cc7e16548f90e12f4d2f5a47234506fdedc1cd8af6956bcd02fb698ab3ca4933a2d9e47a871fd3267d4e0c246875451ea6a2bc5e7eef5db3b4b37d1abb781485e78f398a6f6cc2d597b28717fcaa113b9e6328eb6b71ef9e0ea45b1890c30abc1e5dda62074002213fc6018175f2249ede6d81dc514f7ed85659a019dc6df890699f39f92a3cd1b538bc9c0abc6c5870fd9c5b7f0d839cce91198243bc8f966a9c8368c64cf7d39763f544375f7303d86992074646c787f09ee431a3a345f8d36cc3e6cecdbe51a0543ef5de1fa625abdd1f5defd3b7683ad368c2a8396501774e12f7420737223d0f543b2f69bd1cffecca6d09827df96554e5202157e090c6b17d32fed73463054c4fcf1c6656efbdf088592c1e3415b6c22c84fb1ee966e65bf8bd5bf46f20fab3b030e399a910420f77a6d3e1cbec6da7633b99b0a852ac771612a40b90f31a7d8f0b8dffb2aeb5b2a9bddc970466248e2f57292bd9d5c752af42cbc62b70e58270f472004d514a4d56422368fb9bffdb60696ba3b7e3cb805f8d3439d4a38473cb39c5fe7d698c7d50b54ef315f8498a3d720f6c8c002c243fddfaded9007b8c34c63a0182967382af4ab10cea09dadf524e856305b966aecef2052127119642f820ddf8730fbe72938a8abf6dd0de0cf437f9e0751a91690415e65a3cc269bd07df22078cf0418d6c7575409231465c9b889aef1c9f016a0aba19a5c353054c4fcf1c6656efbdf088592c1e3415b6c22c84fb1ee966e65bf8bd5bf46f20fab3b030e399a910420f77a6d3e1cbec6da7633b99b0a852ac771612a40b90f31a7d8f0b8dffb2aeb5b2a9bddc970466248e2f57292bd9d5c752af42cbc62b70e58270f472004d514a4d56422368fb9bffdb60696ba3b7e3cb805f8d3439d4a38473cb39c5fe7d698c7d50b54ef315f8498a3d720f6c8c002c243fddfaded9007b8c34c63a0182967382af4ab10cea09dadf524e856305b966aecef2052127119642f820ddf8730fbe72938a8abf6dd0de0cf437f9e0751a91690415e65a3cc269bd07df22078cf0418d6c7575409231465c9b889aef1c9f016a0aba19a5c35376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec2ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b203fc1dd0a13bd5456cb5eb5891a438e996ea04bfb6be14b9d3f424143cb7d10c619fecc3536a8d4db49740272e0dbbf7b6834c562baa120ecdc9ca4f1a53923322cc2720a52f1c8b3e645a5a14ab153afd19f76d4391f99ebffdf81ecf51e775d11f76b80533490007d130518a294847325d3679c416406b0948885d8d5135f3c2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd62dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a1aebe5602a8f012b625ab7294163b3f936535be6d1710961e568ba8e309576381b3b6514a5e576d3bf2166ce9c7de55051cce16420aa35ea7603aa0f35bf89c42ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec19fecc3536a8d4db49740272e0dbbf7b6834c562baa120ecdc9ca4f1a53923323fc1dd0a13bd5456cb5eb5891a438e996ea04bfb6be14b9d3f424143cb7d10c62ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000114748bc9e9a436ddb42ff39dd58dff74c3a95999948cf964fd8320e22ebd37f11d7c245924565ea63f328ec3cdc8a75fb5b8f40620db247169b30de13a5f67681ff71ff943b01723dbae8eb4270acf8754bedba40910c8f626d8bd567cbddd05043189efc387e02e23c581ef41179054ac9c8f8a1e00d9db2995d81eb60a46491f985c473c95a8599f8e5df94365ba8cff47d8d2fac9fc7d1f342862d6df20dd3d4eb3211b5fcafb155b272cdf111971823cdd68ed4e9b9487d36184d835635324448025650fa99db7ea47d6189c9dfb73fefec3390ce553547afc07a710e32836a5e982fa498942dd8813ae1f6b09318d10c4a993d4a3f860b62753e5623fff0baf3a21e8e7fcb337f89a48566c8f41c56ea46dc1f62d8f1ed07b3ef92da01e0c35773c0156b2e570d3a309c301f975de36543a62e72af4a27774a71d3be8521cad5f64396a57cbf6c140440b585cbadf7fac77a7d9be1b504b1024d305855b2ceb440dd0d4826adde4ce8a3e1f27096b514aed4a3a83e12640f8fa272596573182652ef4d3bc310e6a87fa34cafc35f83ea3b5356312605cf7c5cdbe9f10d91deb125994c36d924f3d451077b0cfe0ef27ac2a7dc3c0afd7d0ba03871406f4153ff2b7f4820a4e7bd3c8729539637ddfbc166805dce7616509a281759b5c3a20a2a06bd6ec70636fded53cb97a656c377f3f993fd5e5cfc27ef55a9d507d3e3893a3f47c8f4bb0393b432aa6425f95c9e02a189b1b4bfdbb8717a56d51345a094d094452ab7793ebb41687ae4ac74d8b09d563e7372d02ec7e074445ef9df0336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a0c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba0305e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df63a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b1d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce22724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a33336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a0c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba0305e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df63a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b1d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce22724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a330a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac629bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c3a1fd91331ac8e97af8356a18902d5d6cb9303a89611fe8d9d6f55ec0f200be1120d8f2f9cabf36cf829e0210d653a2833c4df016bdce7f4bb8826eb6390d7203cc6685db8543c231286b2845afb78b7ce5da7711fdf1afa1599b0f8a5e75f2d3b63fa20c08ef6946b68d1be6e6578e912c24f6d15ed51fa875cf830c4f8444e154726d1e457b749e5a32d9cb269c17087add08c554ac6163f1ba6dfbda977f43ebbdef2711d9803441a84e31a9d5ceddb174d378971a5aeaf3f8ea84a27c7941ec72c0c20573b5141e5d40e17d7293f3bb25cd5f92b26d68aa789660ac49eba06b8d7221f316ccd211c30eca2885f3786348b037a8ee4b5e05159fa94c46c3c29bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c0a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac6120d8f2f9cabf36cf829e0210d653a2833c4df016bdce7f4bb8826eb6390d7203a1fd91331ac8e97af8356a18902d5d6cb9303a89611fe8d9d6f55ec0f200be129bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c0a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012ee7cf40e9a75aa38cb64e66af9642a9169c9731eb57edb6b53369ec0446208c3b1e6a9982481bb6506650697a5dcd7822a320c657d46eb36ad741bbcadfabf11eccdedbc1a2134506b3b008b1992b2ad709e8cf9e180e564811ed9430647cee163f9bec6aa1ed6b98c97ed5c43deb881684b6a033004a73a655246bc4aa1d113206bfab9e791a088273c3ac3afd2e006f31ed3dbf2c54ecee900caa7a1a108020c70aea841759df5538b07c41016d329e965a95a9129f311d455f5e33d4d50b053a2d5104659714a47bfa3d4e0b1433021154efd45427a4590fe4e352ace9e7072e5903b5de133cadeeb465ab50a579fdbeab329bb363e0168f114701cad000277e93090ed9b5553571d0e7c5f3f44409e353f07b2402116c2ce4a9ea002cd400f43caf717d7ee4cedb6d07b1f157c7b54c4ea0e05e1721b14cc7e16548f90e12f4d2f5a47234506fdedc1cd8af6956bcd02fb698ab3ca4933a2d9e47a871fd3267d4e0c246875451ea6a2bc5e7eef5db3b4b37d1abb781485e78f398a6f6cc2d597b28717fcaa113b9e6328eb6b71ef9e0ea45b1890c30abc1e5dda62074002213fc6018175f2249ede6d81dc514f7ed85659a019dc6df890699f39f92a3cd1b538bc9c0abc6c5870fd9c5b7f0d839cce91198243bc8f966a9c8368c64cf7d39763f544375f7303d86992074646c787f09ee431a3a345f8d36cc3e6cecdbe51a0543ef5de1fa625abdd1f5defd3b7683ad368c2a8396501774e12f7420737223d0f543b2f69bd1cffecca6d09827df96554e5202157e090c6b17d32fed73460070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae02347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f3dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc620b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de6371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a8708e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae02347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f3dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc620b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de6371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a8708e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000123947f204892e06ab1520ebd3db2c70e7017ba6ef91f100c1a4d1e95983aed42000000000000000000000000000000000000000000000000000000000000000016eb661adc0bd75f8671b6b35469c6b19c01e509e4e8d2544302029a850f29c6250a17192d335c2019d33221571844872016cff5cbda9b820fca59e724d502bb02f6899e9600716cfa1adb1c190c3cad6138421c92ab4f52fda2bf971933c0090e7e2de006f09a30f68c90825ce6b9505e4bf1c5b114eb6c16da00e562a1b8eb19e3cd430a688219def940460d8111bbb2579d12e197eaabd9429f6778cb78c00533707a10866f6a7af9950cbbfcc54c913416c1107bba384d4d74e7c984e77c0ff4dea5b7c29830bf1466358164523b01a575a9cac775f63ac454df1212969c39f6275002d8763aead6f5952d84cad5529aba06196dc2e2f0d1eafece8740983589e18252a676761d1ab5cfc7bf5f6f671f5a81a6558c6e55f7de31bf12ae7e3db2422c6c457433785c245b74ac7b9a3b99c20dbff4688f941d40dd9db2a73606a51e2b010c99c67233702a0c078749652e49dbcccfb7c75ac87e3db2ff155108c8595d888a8ffceb745ce0a07444cd5ff16d07dd0a222d40d2d0a692b4027b16bf8c2515ddfdff1dc6c078c053f9fa1b99f542067455b006438339aa9ba43d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003b9e758ae3cf4a360111446f6309d4e0b97c76a054c3cef3055e7cbfbf7586fc04618a751c30b5c9feeebb909cf62b1f68ca225bb4892a2893ceb42d408a79052a184bb6730c730e0556562cef3128631653ed31829f2650b623ac0abd4ba2e815e7b4498cf38cf1faa9a9d310ced79d0bf2abca86add2cae30984e242b45d1912797a903f3e3f461aafaee0abf5c9ef08cfd7037134d440c32ac96eb27a2e852d86856fc0c1c0b9e550511f540a36111976c1f8981824dad602677e4d85d17c1c5f64d13c373c5e856e6a635bccf1ab09c89a152cbb2c2836a8be3c7c62e89823a09b2ec3c8c3a17a91959ca4330e55187dfee6dc91ccf3628472b0839d17693b9e758ae3cf4a360111446f6309d4e0b97c76a054c3cef3055e7cbfbf7586fc04618a751c30b5c9feeebb909cf62b1f68ca225bb4892a2893ceb42d408a79052a184bb6730c730e0556562cef3128631653ed31829f2650b623ac0abd4ba2e815e7b4498cf38cf1faa9a9d310ced79d0bf2abca86add2cae30984e242b45d1912797a903f3e3f461aafaee0abf5c9ef08cfd7037134d440c32ac96eb27a2e852d86856fc0c1c0b9e550511f540a36111976c1f8981824dad602677e4d85d17c1c5f64d13c373c5e856e6a635bccf1ab09c89a152cbb2c2836a8be3c7c62e89823a09b2ec3c8c3a17a91959ca4330e55187dfee6dc91ccf3628472b0839d176928a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e870b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc19dbc672f45c591d4620260144ca4c78e2a9b5b0c29f0483ee09c0cef1690f98325e65080be82714960db7414d9bb120e71d89a040970bc046d3e3bbea1285283f44c25fd17a50b971a117c3fa0049706d29179dae17d2e59e1ca03a77ab527d24b9719897af366a8aee83ab7091b28346d90278f468950f8d056030c45aaf4b3319a2a83a6dd65b246c9f7d539b67b09c3b0afe9bcc31f641e4746e726732ac352254da5cad22b2bb31a255d43899f5be174c33d783688ffa31918b2d0e604e26c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa10b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc28a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e87325e65080be82714960db7414d9bb120e71d89a040970bc046d3e3bbea12852819dbc672f45c591d4620260144ca4c78e2a9b5b0c29f0483ee09c0cef1690f980b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc28a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e870000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011e64d7a5f880404cb22a773b945eeae13c8b70aaf8ec5c4b5e65584021baa35413339dbd31dcb0a7a9f0eba7ac759fc74385f811bc41d0c2fdaa0e7736dd045a2ee6a038180908ec2df479ee5719e3b075a492c3fd80a9e68429546f8a605476227b4590f02a32cf52ee4a9a20a266436c771df82ed4c056d01bdd6d6690f7020aa851ff68746b44441c071546895fdb3ee01f0a7c51e7a1bf4ee89ccfb823b3071d0a3bdf38d7510a0406fbf430b88b14a8e7a87a4b84eeb942a643a8f54d1635a879ee2eee37c0a21b3dae8062887d3a8f4572faad99efc39be3599c12d1db079eacea32029f29e03dd87c5c9d180aff5acb150a90cb09fed898912ea661d036c61bf929a9a8675cda5e495a81be4ae6b77f0ecbe4882df100fd0fe9edc4c21efdf22d26ee79c6f694cf5e775d59788f9c685004330cda164fe249ad44338138e83df9d68064f8ffa7ef7331abefe4d3dd388e1d81ff16cd8fa02c805507090c3a4cb96642ca02f552b1b0426c6c9903c402bccec99417fbba0a1757f7f3cf3e10a1c27d1ca603bb8bf9437fc84516ec2e4da307c06c9d5c43673cf1b0fcbb115cd5c60c7a83bfa21bd3c72cb386fffb38023cab666672d885189454021b1238cac76bf1f0e87abc4ce24480eb0865f1a4f7d669b6bcec95e3d0d5ca931c2d0cc5a8d538d1934e0e99ab396e494390f97706fc15a577c836666d0b42d9592f006389aa17a3f9d64671b329480fcf341c1453110e3012d00a040257959115df0ab34cad6c641fd87f5c965d692792cb2a67972dd011fa9122cc47c1e6ae823d09c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b09c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b39ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e2e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae9682c52dbd4b3e6e09e1ee805e79005f0bc5d1ef5ded4e43494b88e3889b14b0e982b262cc5955e65935d7d23c1946687e15b1143b0d92ac231ce3dd27d0547e1a618c9d9804d1af74f9e6525b58fa140978c05cc06abfbd4d3afdd2faa1c9c215527f0fe2bdb474e59eadb6476d794884dafac34e825f9c1ef1ac1b293f21ba637125c534548436e43bf17fe0c04c54749cf0b77aa2d2eed5e1e60a2d2e8abc0510461dda8d89f9244340ca170b871686ead72c0f6aeea72a59dcc85f5bf2f6861063701d30cbb53d7978d008cd3615854317feab4f9fde2db6584c6b4ea9b95e5068b7cb70c4e968fe90a321a45ecb6c221e359af3f511fa60b4bca61ced1e0ae2e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae96839ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e2b262cc5955e65935d7d23c1946687e15b1143b0d92ac231ce3dd27d0547e1a62c52dbd4b3e6e09e1ee805e79005f0bc5d1ef5ded4e43494b88e3889b14b0e982e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae96839ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011e8194fcd5a97700e739a2f24cafd61b4491112661802452831399f4fe0c2c8304f1693e7f720fc0c3e18e66c0f74ed58aee9ea6d8ea1a90efa817954a6939683d467807ed19df7dcb1ceee2577eefd4e488a3c3c519bc76d0e4c2cb85206c0e2d6115c69853abf63db380f5e7d691c62c5a27f45b4c89b995ef9862f6785fb821940a88b1c2aabd86e2311d2f0f16003f34554a35b3cae9b830c25258d4bef21c7558cd368b780e43fbc21e63a2c0f9d6c3d00afbdacaf095ad69ad3c69e8a12ca6b7c480511320f61c38b01e256472115e384cb1544b7c6c2c1809fa6756d5305ca7610ebe8c0334c175749c19abf108e4a6592cab85d824bbab119e65411e3aa039b1d5849ce36dac25aedc8381f4062ac089c68ee62dd6428e1f0d566c3316ec15fcf1ac9caa211dd3405d08e01d84341f34d2680d29e84ee4680f0e4bfc050014b77c11e98c6a93b167065919941eb20a49513ac5583bb51cf96d9cee0b2af2f2dcb7cee2ab8e2a8bb6de75f04c1cf0f878528fc1ca448e58f9669fe8ff19973d43497a56cc8039c2fde9cefe0ca1897f3d9d53193ccd03467b4e269ac635d63a45401cd2f6dd6e0a0cc2acce0a45dcd0a215d3b9d367c53955f78c7d073e7305b385fdf1e74396fb4b21010478ea9706bfaa4809440d935417dbbc764d1b5056a52a88e47bb79c7bb73ad4e6877ad11d5462f9149f56ecb0ac0ae8d29e1858d0c3bb0ce172cbb5ba468bd5ab4a8293f62e449ac1f2153c56c6b9406ff1195b8d569bdad6892038a85deab533ace8629f62faa985bfeb64bd1fbf9848cc004ebed66970c16a21963c211e797937651cc016ab64496cde10a4ab01eef4183fb14129968f3e95de69c3dee18686c8bd29d8e55de8afaebb1c8c41fe110be90189ba300f33c712a7ef2ca5985f5e14f98fc07158f56f205653375709aac4783e7645cff0cc38ed5810d35a67a0a1eb28b6d88ab05789fb42d9f995f6553b8907b0a2f04c02e35d47abdf3bf9dcd668dfcec236bccb2ba1afa014b33055d658384f5d0fb3fd1ca2b85420c4062329974277d6c54c81cd79e98d1c39cfaa29a926732eb17c0e70d2665b5c2be150300c5f09cb11aff7da286e20677ff1ad2fb8198cd14e83f18f2d99a4a3d41eafcff3c33ccdea59551ef32b0cc96d0e52d049004ebed66970c16a21963c211e797937651cc016ab64496cde10a4ab01eef4183fb14129968f3e95de69c3dee18686c8bd29d8e55de8afaebb1c8c41fe110be90189ba300f33c712a7ef2ca5985f5e14f98fc07158f56f205653375709aac4783e7645cff0cc38ed5810d35a67a0a1eb28b6d88ab05789fb42d9f995f6553b8907b0a2f04c02e35d47abdf3bf9dcd668dfcec236bccb2ba1afa014b33055d658384f5d0fb3fd1ca2b85420c4062329974277d6c54c81cd79e98d1c39cfaa29a926732eb17c0e70d2665b5c2be150300c5f09cb11aff7da286e20677ff1ad2fb8198cd14e83f18f2d99a4a3d41eafcff3c33ccdea59551ef32b0cc96d0e52d049132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c83614840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d312621c309b8df1d6ee7cbca9bfcd74b2155283f7f40c031072555d9c4921004fa11368a5f1c57c90e2de4bea01fe3d14d78d2c113bea4189c5616e3288490080c960cf4d744869d6bb7ca44679edfd6ace4ee3f7c43864249b03768ed6a74a65a6a17dcd04956966bc87edd991719d6b3a0ba18caa2e4cd1d4bae3ffb819913f9ef299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f100220b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c3feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d14840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d3126132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c836368a5f1c57c90e2de4bea01fe3d14d78d2c113bea4189c5616e3288490080c9621c309b8df1d6ee7cbca9bfcd74b2155283f7f40c031072555d9c4921004fa1114840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d3126132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c8360000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010417ce60b81f5d93402842298d3a4a6f81c1913be3733ea19018c7baa6c7ad10141c2bceea5020ec0faf6fb722728727252d1b6d2a9b5882c5445c2b1c18291e0bdb8570501fe074ca6387e5bd21b8246e6e92a65925eff87061b365aeaf5573327a75568ca78b3dd093ffb70d52df0270e5999bac051ad7dcda13790024b4e60625955caad9277e35f9c24f94a96431973a4b777dd684425b75989b42c338bf185b760648e239a0477c370353807aa28d91386c22a8ae8b3cd5c7929a4605f22497328cda46113060b00d82ee5e798f4e6f4775f3fe35d1fa8d1af0d2e128fc16168a45cff1a50180ce167417c4d22bc8cb5ebcba31de763bba3fbddab6f9fb3ed181d6fffd854adb6bf948933971033cfb55fc8347e8ca7716b0a60027a1022217f868f67cdafb1ba2f0f07050ff04ed3a5295a04fec2718d8cf5e8ecf871d17258ee9660e8359d89793be1db90d1ebf4ff54a29542a528ed627a8f258e76a3db0c518f0257c6ab70441614045cd8629a8a17841bfa296dbd743c1838994702f8e0e0549806a0878a53203698d8b2f442fa42c9e53b49b5561ca5f6fcde31e1fdf69834016bfbae5029b0742ee40e7a336abb314d31e74df66b571d5e534af1e4fb56ce2983fd5ab6d85cbc0e3f944dd84badb100294c496a16b8f1a1e0ea5121d885aac16bce04234bf586a69e1b70d39d763e8780d56544c30c3efbc4f44116cff76456b56c9bcd034ca67b4b8ca64e547cf1807cf810117aeeb2f8c05ca0a0768d40b7432e712f46c67d1cf522273565c1c15b982099958bc415bcf18713ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f620591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f620591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd62dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a24814e4fc4db6a41252ae13b604cfd91c0e9402633f45edd20bf70694bb1ebd40077e5fb96e4c541295b118291d98c7c81fb25e82959ce50f0f6e2140dc9b6cf11a7ebcbd7de1a58204c5573477a531c0a59e21ef22ada2803ed9657cfe94bb02d11f1bece483e5c430c5546a5cb8506ed18fc518858c674907a716dfa488ae92ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec36bc066bad4f192cbdf19e4a06169f22f64d1f342a06c9e1b7b20cb69f53d57911d68caa2862c78883eaee78094d9fb69b4c1aed67ae908a1a76c75ec48901252dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd60077e5fb96e4c541295b118291d98c7c81fb25e82959ce50f0f6e2140dc9b6cf24814e4fc4db6a41252ae13b604cfd91c0e9402633f45edd20bf70694bb1ebd42dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011b3f7b2c59e296eb5771ffa8a0513670c6690ac15ce4874cb1abf8c59282e5931d178c1ffbd7b43f8baf55bb7e41601e1ba014390e719b1df7312f7020cff8242e76e28009775d9b6d5ba313168a7b8935322ab49e52559512a1d7970ba8dced0cedaf38d8e0aeeb91a810769f3d42999302e60ef8f74e093050ce4bc858c82c1fa84db60eb2fb58575c1a45e3bd90e14639cf4c5864d53629d1549af3fdc65a2229e52468b31a7d99e0083b3edbef91ef31731092ce6514102a8b5bd68a7bbe25a05d5faea5a36f679188b861652bf9610d2bc752bf34e6ae07bebe0ee5c73030e3b610b2f58efd8da09fb9278f817a483b8b974bd69150f2af938190ab93dd03d4ee64f52c84157a248d5128068a107e5f3913becc7fe3a84be0f20f85841430e993885c5e0aa66e6b0d9f2655fde2a0c478ccb1a38e63f44fe3b1adb816fa380893e29d53313ee150dcdcbd0b1f96215ecfe3d40f7216761a101ce268ddec194ae4c07ab0980760c1c97043d51df673480d3ec7f8b78b7afacdbd8f644bbc2a21d19bdeef8f408fa9033c6c8d3ede480455db80c251a531f654687e2e2b87254ba5ecaaa79a82cdfec9ce3fee8d389f61fa043264816b02d22b68c784ec463d8445151fc71c17374e3032a9232f12580e18f7adc6dfd93259f40111d572c2020190433d08b119e4710ce74050e6edf815392ae9062821d0d64f594aa456f107c8d2897952587d1eae593de311cc758fef1a9c935794268488d79503c807f90ac5867daa8910807c0c130b6de81a34953e7168725a9e1ae3fd82ddb4611a523054c4fcf1c6656efbdf088592c1e3415b6c22c84fb1ee966e65bf8bd5bf46f20fab3b030e399a910420f77a6d3e1cbec6da7633b99b0a852ac771612a40b90f31a7d8f0b8dffb2aeb5b2a9bddc970466248e2f57292bd9d5c752af42cbc62b70e58270f472004d514a4d56422368fb9bffdb60696ba3b7e3cb805f8d3439d4a38473cb39c5fe7d698c7d50b54ef315f8498a3d720f6c8c002c243fddfaded9007b8c34c63a0182967382af4ab10cea09dadf524e856305b966aecef2052127119642f820ddf8730fbe72938a8abf6dd0de0cf437f9e0751a91690415e65a3cc269bd07df22078cf0418d6c7575409231465c9b889aef1c9f016a0aba19a5c353054c4fcf1c6656efbdf088592c1e3415b6c22c84fb1ee966e65bf8bd5bf46f20fab3b030e399a910420f77a6d3e1cbec6da7633b99b0a852ac771612a40b90f31a7d8f0b8dffb2aeb5b2a9bddc970466248e2f57292bd9d5c752af42cbc62b70e58270f472004d514a4d56422368fb9bffdb60696ba3b7e3cb805f8d3439d4a38473cb39c5fe7d698c7d50b54ef315f8498a3d720f6c8c002c243fddfaded9007b8c34c63a0182967382af4ab10cea09dadf524e856305b966aecef2052127119642f820ddf8730fbe72938a8abf6dd0de0cf437f9e0751a91690415e65a3cc269bd07df22078cf0418d6c7575409231465c9b889aef1c9f016a0aba19a5c35376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec2ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b203fc1dd0a13bd5456cb5eb5891a438e996ea04bfb6be14b9d3f424143cb7d10c619fecc3536a8d4db49740272e0dbbf7b6834c562baa120ecdc9ca4f1a53923322cc2720a52f1c8b3e645a5a14ab153afd19f76d4391f99ebffdf81ecf51e775d11f76b80533490007d130518a294847325d3679c416406b0948885d8d5135f3c2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd62dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a1aebe5602a8f012b625ab7294163b3f936535be6d1710961e568ba8e309576381b3b6514a5e576d3bf2166ce9c7de55051cce16420aa35ea7603aa0f35bf89c42ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec19fecc3536a8d4db49740272e0dbbf7b6834c562baa120ecdc9ca4f1a53923323fc1dd0a13bd5456cb5eb5891a438e996ea04bfb6be14b9d3f424143cb7d10c62ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000114748bc9e9a436ddb42ff39dd58dff74c3a95999948cf964fd8320e22ebd37f11d7c245924565ea63f328ec3cdc8a75fb5b8f40620db247169b30de13a5f67681ff71ff943b01723dbae8eb4270acf8754bedba40910c8f626d8bd567cbddd05043189efc387e02e23c581ef41179054ac9c8f8a1e00d9db2995d81eb60a46491f985c473c95a8599f8e5df94365ba8cff47d8d2fac9fc7d1f342862d6df20dd3d4eb3211b5fcafb155b272cdf111971823cdd68ed4e9b9487d36184d835635324448025650fa99db7ea47d6189c9dfb73fefec3390ce553547afc07a710e32836a5e982fa498942dd8813ae1f6b09318d10c4a993d4a3f860b62753e5623fff0baf3a21e8e7fcb337f89a48566c8f41c56ea46dc1f62d8f1ed07b3ef92da01e0c35773c0156b2e570d3a309c301f975de36543a62e72af4a27774a71d3be8521cad5f64396a57cbf6c140440b585cbadf7fac77a7d9be1b504b1024d305855b2ceb440dd0d4826adde4ce8a3e1f27096b514aed4a3a83e12640f8fa272596573182652ef4d3bc310e6a87fa34cafc35f83ea3b5356312605cf7c5cdbe9f10d91deb125994c36d924f3d451077b0cfe0ef27ac2a7dc3c0afd7d0ba03871406f4153ff2b7f4820a4e7bd3c8729539637ddfbc166805dce7616509a281759b5c3a20a2a06bd6ec70636fded53cb97a656c377f3f993fd5e5cfc27ef55a9d507d3e3893a3f47c8f4bb0393b432aa6425f95c9e02a189b1b4bfdbb8717a56d51345a094d094452ab7793ebb41687ae4ac74d8b09d563e7372d02ec7e074445ef9df006d01f3ade4f2cfec3516f5ea8b8f750522715f3e10732041a048727b8b6a4db392fe0c521b0d3013cae90a1574708afd01f83082845c7177f28a9c547495b2622109c26578be0f9d0972cd94b9cd4919ac36dc36523fa148216a3c69b9138471def63d9a8741f062f68d326b4632b6e87832b38a428ff0717168d26646ec7ba2a530cbfb5bb64e112f3e03e7a1026d7c143f2d8e719f02f5816d10709d6196115acf3404a449b1eed0c1fc185efd9286102a623223308ec41165fe5f629e6a0139f3fbe8ca8f8655ec361386250c2365f7ff348679ac599ecea825c312e7ee22c60c0417357079aa13c9ec79daf3dc9c2c6a5b3a1b23381ac42ae90ced1811f06d01f3ade4f2cfec3516f5ea8b8f750522715f3e10732041a048727b8b6a4db392fe0c521b0d3013cae90a1574708afd01f83082845c7177f28a9c547495b2622109c26578be0f9d0972cd94b9cd4919ac36dc36523fa148216a3c69b9138471def63d9a8741f062f68d326b4632b6e87832b38a428ff0717168d26646ec7ba2a530cbfb5bb64e112f3e03e7a1026d7c143f2d8e719f02f5816d10709d6196115acf3404a449b1eed0c1fc185efd9286102a623223308ec41165fe5f629e6a0139f3fbe8ca8f8655ec361386250c2365f7ff348679ac599ecea825c312e7ee22c60c0417357079aa13c9ec79daf3dc9c2c6a5b3a1b23381ac42ae90ced1811f3d2ad1c5a84311902048eec5362fc54d0d1d9ccb0b08409046fae480f0b3a5db0c8e75409cfea4dee8d5ef0552162e0956ef2a6901d74c5dc30d8531f7fd750d18feb59e5cebd38751961ac5f4cefed536989e6b2d170dc6623897a3e613e6f61d48035b5dd27609a54b076f82eb0dd4a9e7cc58d8a35782c6196083313afe252b6cafcd3bc4e5b8c69471cd7bca04a4f717a6e20530fc461fa526b0175e2f412086b2eafdf76640fc5f5320e2730039d2f047b90cdd543c39fe58c2e01f06f731db538e220d9050deb695a20721092fd516be72dcbf54583fa16ac019dccee5387802b35ef46d465536c7a5125bfe9b85eeefae2986b2a5c1676fce05f4e000059566e6dec5172aa9a3d8a9347fd6550f6f1691a37f82eac53d94a6e7613a4813923ea18517c0e7c6fac4d117b9917c9f0728c9ec39dbb77de85b5c17f2c7f40c8e75409cfea4dee8d5ef0552162e0956ef2a6901d74c5dc30d8531f7fd750d3d2ad1c5a84311902048eec5362fc54d0d1d9ccb0b08409046fae480f0b3a5db1d48035b5dd27609a54b076f82eb0dd4a9e7cc58d8a35782c6196083313afe2518feb59e5cebd38751961ac5f4cefed536989e6b2d170dc6623897a3e613e6f60c8e75409cfea4dee8d5ef0552162e0956ef2a6901d74c5dc30d8531f7fd750d3d2ad1c5a84311902048eec5362fc54d0d1d9ccb0b08409046fae480f0b3a5db0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011ed202334f90f666ed0a8d4737350de57c42a5176e33ab573a104ad86be318a5071a30fa794ba702078665d0da48c1e018accf516f9736df63a2117c2aec1c2a29cb1588820fbd616563f974b0c2493f7f84b5386ff3f321002072cf03a3d6ba3630fb936564993605d834dcdc3612e2f35591ab1ad6941357061b3377fc334d3d2acaf23af01ef3f35590a84815d635abbb1f0fda56346179c0e512063255590cd81e6b35e9710078eabab682c25187713bd1d1ad2aba9a0fb742b26b79316b0c088c8bbf5e9b9d3cef640aa0a5f8510a57664a07bec449e55352fdc86bb36412af9d9b66aee4052ee899583cd80d662f8c59a398cf214bbe4d2f31a5a6d8123e341aa50eca492f9cc5be6fb34bc944d50997d185949ea7f72e8bee3209e557399580320f6738dfe790d5e9d29708f848eff029006a8726ed67e25ec177c8ea2901f969aa7b89cac166b30719ec0dc1fc0855ae70d9b977b4c67f75f05019413fb9852c38a87c712aeae60682e1ab7a4721008cfbad9dd1ceaf4c75d60377461d6bb872fe2aa95f1b6bcedebf520814ac4d2da58246bb31fca5486b809e60b73201bf158b6c8064423bfe2bed29c4023b19223a30e017de38233765c514b7162441da64fe05dd50898df5abd1b141918774580b03b3013a0b363617bffae4601e007165b8b4b16cfc1f995f42096304a5570b69043ca814795cfc54bd0585dc08053979b1b5ecd9656e37f2527be13ae4d242c328548cf10cca4a4d63c860112aac3a074cb3a9f9d9fbf8cdc30cca539ffaf89eb4ce7d4315e4051f2fe419ba09c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b09c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b39ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e2e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae9682c52dbd4b3e6e09e1ee805e79005f0bc5d1ef5ded4e43494b88e3889b14b0e982b262cc5955e65935d7d23c1946687e15b1143b0d92ac231ce3dd27d0547e1a618c9d9804d1af74f9e6525b58fa140978c05cc06abfbd4d3afdd2faa1c9c215527f0fe2bdb474e59eadb6476d794884dafac34e825f9c1ef1ac1b293f21ba637125c534548436e43bf17fe0c04c54749cf0b77aa2d2eed5e1e60a2d2e8abc0510461dda8d89f9244340ca170b871686ead72c0f6aeea72a59dcc85f5bf2f6861063701d30cbb53d7978d008cd3615854317feab4f9fde2db6584c6b4ea9b95e5068b7cb70c4e968fe90a321a45ecb6c221e359af3f511fa60b4bca61ced1e0ae2e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae96839ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e2b262cc5955e65935d7d23c1946687e15b1143b0d92ac231ce3dd27d0547e1a62c52dbd4b3e6e09e1ee805e79005f0bc5d1ef5ded4e43494b88e3889b14b0e982e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae96839ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011e8194fcd5a97700e739a2f24cafd61b4491112661802452831399f4fe0c2c8304f1693e7f720fc0c3e18e66c0f74ed58aee9ea6d8ea1a90efa817954a6939683d467807ed19df7dcb1ceee2577eefd4e488a3c3c519bc76d0e4c2cb85206c0e2d6115c69853abf63db380f5e7d691c62c5a27f45b4c89b995ef9862f6785fb821940a88b1c2aabd86e2311d2f0f16003f34554a35b3cae9b830c25258d4bef21c7558cd368b780e43fbc21e63a2c0f9d6c3d00afbdacaf095ad69ad3c69e8a12ca6b7c480511320f61c38b01e256472115e384cb1544b7c6c2c1809fa6756d5305ca7610ebe8c0334c175749c19abf108e4a6592cab85d824bbab119e65411e3aa039b1d5849ce36dac25aedc8381f4062ac089c68ee62dd6428e1f0d566c3316ec15fcf1ac9caa211dd3405d08e01d84341f34d2680d29e84ee4680f0e4bfc050014b77c11e98c6a93b167065919941eb20a49513ac5583bb51cf96d9cee0b2af2f2dcb7cee2ab8e2a8bb6de75f04c1cf0f878528fc1ca448e58f9669fe8ff19973d43497a56cc8039c2fde9cefe0ca1897f3d9d53193ccd03467b4e269ac635d63a45401cd2f6dd6e0a0cc2acce0a45dcd0a215d3b9d367c53955f78c7d073e7305b385fdf1e74396fb4b21010478ea9706bfaa4809440d935417dbbc764d1b5056a52a88e47bb79c7bb73ad4e6877ad11d5462f9149f56ecb0ac0ae8d29e1858d0c3bb0ce172cbb5ba468bd5ab4a8293f62e449ac1f2153c56c6b9406ff1195b8d569bdad6892038a85deab533ace8629f62faa985bfeb64bd1fbf9848cc05583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee83aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a06130191191ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a882546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d579059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a63a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b1c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e23ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c305583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee83aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a06130191191ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a882546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d579059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a63a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b1c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e23ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c30b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c3feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d3e4254bae5217d87eae55fff4904382ad728515da29225c1b52c2a7e458f7990365c6077ab0490bcaa9f5627c0f5cde99a59a31864ed553d57b8162b46e494bb1e6a494cbf36abaf8b8a6a8de1165276533eb64441a7a8777834e338713e31483cc40f2563957cd02b5394bc253c4d0448f634cd65e2e2c3d47c95b581077a6217f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a66373017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f10022299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c3feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d0b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c365c6077ab0490bcaa9f5627c0f5cde99a59a31864ed553d57b8162b46e494bb3e4254bae5217d87eae55fff4904382ad728515da29225c1b52c2a7e458f79903feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d0b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011de9b43833ee51c21ff92c81d6fd2f50c3802ad659cbc629141a343698505f8c0ca081f647c3a9cb55af2191e325034d8e2940d9b79efc1c18ee9f0c4138fea5166f269f8e472b263338c159af33d7948f783bafbea141b1f184d144cada56c20a8f8e62d2f1306bbf2d43e17c0517dcfd32d7a38db1caf43a9cbd1e94206cc1298d8696bb2005af943a452fd8c9a1980f1cb9ffa2b50b8ff004c5318e84da8b1d78b132bf84510b91d7d719fefa47b1b6050174a845e4a21a1948455ed4d67039fda498248c0ae6e88e00c5bb72499f01eed91fcf0a8f20b0102dddec385e0e0fef6bffe733d3d4802d6157bcb75fb459a3fddd81f14279f85d0608e6259ac12c6bbab900f68a00c926bd02b763043eb93a1f8e4f8941ed81f2e4a26061919e20bad6e5ed7e32b427a948695375f7850ea214c1e2821b459f24701d11107c0623e5118034e43465b244ec6d1c1d68cb8b5e0b900de6a8fdd61cc01673e404d53f91b24e70802320f126e25fdd38ddf95f74a462ed0a55f6fdbdf0495e4250822d1d361d159fe3d131a99fabe76fabef558ab13653ba938fef93e17ff11f6b062250416b73f745f22bfe2d5ec50c202791db9ea95f6c3f8045349e515493acc7022cffda2481eb068d3e4d4058a2500b01f7053d1590df008987dc090ed3023b31183373aed342870969053de46eb2420ceca27eb0b66695b61c4c1f18aa75221f39419cfcf4fde686d12bc819adc83e781ba39e40ae430178a878f7a089c00f1283ca168f30a596b046a343283cb8aba63becd34c87237579e4b78935596d6208ccf4d3a5e93ecf17c6dce5a8ee2a604a4de7693506ce6caa2463287a5d817937330b2c5a16c130e839231a5711d59fd7f8b192d4462aaeef08cdc485a27e882c00c8223d8e3a0b76e2507c4ca6d3e17385850e0922081f52b5efca63d3875d13ff37ddc271c5f4891daf83b3592c1eaec113ee002af0fc467741229c2c78a41c03e8ab33c72239526b926d7f422366dac7ce5211c33d49d2061c2cf321a4ce23fc1754cc38ddc6ad946d9280bddc99477ecaa9f789bbd1c72714c00cde5b330c138b5802e3ab1e9c19dc237c4ab1020159d5a246364039e7c42b06bfa8380433ec74a7fd1c54e163e623dc83b54efe20ecc359c316b8e1b16905e64057c7fd08ccf4d3a5e93ecf17c6dce5a8ee2a604a4de7693506ce6caa2463287a5d817937330b2c5a16c130e839231a5711d59fd7f8b192d4462aaeef08cdc485a27e882c00c8223d8e3a0b76e2507c4ca6d3e17385850e0922081f52b5efca63d3875d13ff37ddc271c5f4891daf83b3592c1eaec113ee002af0fc467741229c2c78a41c03e8ab33c72239526b926d7f422366dac7ce5211c33d49d2061c2cf321a4ce23fc1754cc38ddc6ad946d9280bddc99477ecaa9f789bbd1c72714c00cde5b330c138b5802e3ab1e9c19dc237c4ab1020159d5a246364039e7c42b06bfa8380433ec74a7fd1c54e163e623dc83b54efe20ecc359c316b8e1b16905e64057c7fd2c9c5447ae1258463f3aab447a9f9906b7afbc722f2eeaa83dc7e2d2b05d15550da9914a1efea3e5e652d1bebf32fb2c4a8339fdf7e114fbb9026c3948d1e57b2f88cd896630976eca8ac22f2adf184cc2b4645146ab150c6247ed9a6d5f932316314ce4ccbe6c650fe7c0cd9b4e53807fa5d736a4dedd86d9482533997172103e2fec4c22bc0606f517e84bdbc4fc4683af0d0cc8e9a0d899c86c7a92f2e02201ca60058835e4b33bb84051b36cb487a4c816ecb306e5b4b0d20bc0aaea31ba18016098aa02665e1acfd881bf89573a1e3d6325e54235c9d8ace9a6067e91ef2dbe6d83ddfab2bb8ed281dd777263c51dec4d6493a42f57b175e1d9c27561691b32ecdb06154ad4de0590c2867c0b6df9c5abeae1a5be2bd2c68bbf2f7682962ac0ac6f9b58736d8b9902a0567227960edc30fc3065398d32cc71a5620401190da9914a1efea3e5e652d1bebf32fb2c4a8339fdf7e114fbb9026c3948d1e57b2c9c5447ae1258463f3aab447a9f9906b7afbc722f2eeaa83dc7e2d2b05d155516314ce4ccbe6c650fe7c0cd9b4e53807fa5d736a4dedd86d9482533997172102f88cd896630976eca8ac22f2adf184cc2b4645146ab150c6247ed9a6d5f93230da9914a1efea3e5e652d1bebf32fb2c4a8339fdf7e114fbb9026c3948d1e57b2c9c5447ae1258463f3aab447a9f9906b7afbc722f2eeaa83dc7e2d2b05d15550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011430f4f801a8271eb3d73408f7da99fcefa922515e93a7b46eec28b8df0c6a8f14dcf979cbf287a5de45d2b8e5ae0226f308f7a4da8aed189e8e2c79f7c37a05047dbe3bbcd6b2f21f4d6858282144a53ea60f0c85d4d55137824e314e9a270b0d233107c4a669441e6c174d705eb6c57ca8daecadf48d72a3a356cf946f902d270bc520cf996d53f9c3b60f67ab76ad6f23376f0e971314c45c66ddcee2c3f703d73eec17d2cb25f31a9c58c7a30308877062344d73b617a9bca49a636f0e6a3c1a60aaa0583eadd829fc0c66189f6e7f579c282b5c4b52ca1064ec00b83ef1345b1db4a644a273d41fec5d3bda9a19a694982be329673355e56f577c2cb6cb045b087472d374ec5a29ca57394a9a6c3f49031ae34198eeeaa99de73989a99931963d1023a63ec5126e0105d659627ef77fb4ff80c450ef6577983a641fa57d136210c5afdc091226029252f09bbcb510e3f8206904003fab3c50a2464e304e2b563fc2fea288ccb1072e9d514e038b3742e1f6a2495713a7611fc7e941f1842337e99dc08c781ae730af600fdc2f42821f6149f4c2ffa2da45a2b2c4b5325e2c358deac90ab1a876771daa9c9f9cd46546ee95be63d36d5a82dd1e80fde56f38caad08441e7ba811a0c1e900aa42b23325d1b7ac30be6b952c013565d8938c3bcc808adcadeb7d1a2fe347c991bdd472816784d42fbf0c4dc50083ac31dd5b0c6dc22b433589dad88e97a81294de52a0963ab2171bd51d106a89cf43f2417a13d270024c8df8ddaf303cedaf5905f902fa0d0b2544a00c725e4109a436276e35eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5600a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa10da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c8525044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b61584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff772a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a35eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5600a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa10da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c8525044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b61584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff772a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a3ba6fdac0b77d30417b290295f5091155d781ed0d0a66a28e5a091ccf9031fab1883d6e1d3620a99d127d8cf8f9f75ddfae5984b4c8b4ceb80eeda5649fd192224ff23c9ef564404035232cfac86bff1f167a1fec94aa581f2811e5a255aa8c206d607a831cfde5e13d364376489391afac7d8dd2c1d95a0d949d75c97a51e741dc393bba5987af7a09770b5534817ad1166f535085b6aba31e508f8cc4d8ed43e3e384bf13dfde462d8f3db4225ec5fa16abba8710b18a36e808962f7ac6f68291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa126c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b28a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e870b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc1883d6e1d3620a99d127d8cf8f9f75ddfae5984b4c8b4ceb80eeda5649fd19223ba6fdac0b77d30417b290295f5091155d781ed0d0a66a28e5a091ccf9031fab06d607a831cfde5e13d364376489391afac7d8dd2c1d95a0d949d75c97a51e7424ff23c9ef564404035232cfac86bff1f167a1fec94aa581f2811e5a255aa8c21883d6e1d3620a99d127d8cf8f9f75ddfae5984b4c8b4ceb80eeda5649fd19223ba6fdac0b77d30417b290295f5091155d781ed0d0a66a28e5a091ccf9031fab0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013e0291ccacd9446592a86d83ad35a2e584dd80b93c7c13047545729b90000ac91fcfd3b8ce8ac4fb3a1c7982e94afdd34ff1d8b7d3954cb49a63baffd5a1313715422e46242c9621968b743a47e6491cf92718ca2afaf622f313493bfb9bf733202ade52e2e33316acd09801357525c995676e24fe74b19301b80c7f668582121d27b9c80cb76ab8ad3f758b265e529a94afb3f7f4ad3d954cc3ff0ec70fd5b7261c75df981710ba8623a2aa6de23de24cffb50b98ebf450d8586d2e423834d42c737958ff6172e4ee458359e80e8af09a93fe2c8270c137d2a2ec6e6059bf4e27ee37a8613e9c277b0a89c65b539265a8889c46918f6b1cbcf0a6a981256cbe1c49d015215fa8951c0073a984f7169b9ec28c2f53259684cade813083b582cf28d8c929ed5151a128b9e20a01f3842ce71d28d9e976feb1eab61f3435e39b0204e4e0d9324d66322a34b1c104ca66eb943deffea994720bc1adfa26ccc9e49f3ba6dc38207406cdeb6c552906aa3b4f9b1b932e677684422993b3ceb91889782a150e43f7d34b24aecbe4fb1dafb928d94e8cdc79891331c01d23df74e0e74c2558694491c3de9eaedbe80f8ecc12ee0e17c303399dbfde74ab5bf1d0d230812e46bacd58414ad8b2a3e30de22b19f21eea42561fe35319defdd02ab95b03f6316f53ea46798045a68ae26c8114e454dba54eff64ca5150927a6dc171864f701feca56e6a4535a4738165df67126e35bab5c0267454e90241a3eae046339f042db534d10342d77a68a80227dea0e1e3815a4c8e4b041be5a7b21be964f3296b09a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22309a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a223022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c167cfef734a5fd046d46933e9ef83d8ee4eb029f5a344e2d13fa045055f26b2e2295afaabac21f4e0a11ffb4e8de9e5bbb1afbdd358923103fc7ddd9e92eb6ee0b45f4fb3203a579f75898884ba773de8b74c16da0c98fb3b4a53a4a4f9c399a34819967d4332e1af1d8e800d34bbb8e694c88b8f1d5feb0267be1d368a9293e174fbaaf88be79d412b9672c9d372a7d2fa63a6f94bf935c8b22a38f99927d5421fb658f6072cee97b6dab3dcbac82009de512e271ab489886ab5369ed4941f1093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a2295afaabac21f4e0a11ffb4e8de9e5bbb1afbdd358923103fc7ddd9e92eb6ee167cfef734a5fd046d46933e9ef83d8ee4eb029f5a344e2d13fa045055f26b2e04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011768fc0352b6294a4028a8e8933a6818697a8e06b90608a8a9b97070b47e316c2eca2cee5c74c37dc5b2da2fdf4bcf613cf7eb1e53ac41ae072a5e3c720998003f6bdfc13942191f3ce7e6b989957c75c1dcd57a976945ce83059a39000965e5157697ba7f39e3dbff32124e746e41e0c23d8815e96c68fdcba5d8043abae52f18c60c94f266e95422b4706c6a2a19d26f4861557e3f98dce538905a7bf07d241765a35c4e1e696934bed075d98a901392b56aaa0d8d68c5ffc7262e4843009607fa65e8a39eab8d053af531f12f38263a44451f163897f9baf9dfb382a9dc3403d2aab9a5709245ab684689b1c51ea0b27da49e3c9eb487dc7b7a3059e1b9b435121a2f265584dfb25c583274650a297ed121461d5d233420ff9c6a7223fb251bff12826a8b9f1da550d7c380894ef69d8f027f19e1a2dd1016bc51f7be3f9f207d58af6067abb1563e52a04842a326de160139eb61c328f00641833d13666c088535a94101b098a570dcf169ccc23fdadcc528451f2b4c1673eb4207c671662bab8b85ea0398583c52a433039575f609c2d199225296a36d4258a12c96a24123c1ec029f93916b215528d7a8e65620dda37e4690d43c6cc7862730191c758c3599890be1cebec06bd47ed8181ea45d739ce5b53c6df1e7cff3e4edcb15790820a09b0c6eca9cb55beb302c017661522c4a30a15457e54a4019f2034c5a7bc81536057523636f287193253eeb2e8ba8e329cc0a2950fed13f25f33ca144312f249261294175ba9709894ea4f33944b6538a025f7bc0bc20ecc601fd27aaad12115d66ca497f22362f624a448983cf73313d94e49457c6f8cbfac6bb70a4b1292ea29935b680ddc9d09db5bb767c308cf109041774f53222cd326a318f5b4ed816d301f36f7bab0eeceb7356af930d3fd3ed4f7adc69e9c062b8b0bc333775cc292cfe0c908454f113148ca9506cf2c04e5949812ce30f5b36748030ccc88a35321f09c12d6a574aa09940b16ddf423f015bf46a44c497a6546e42c000154cfb0de0f63ed295a8b55f66bf4e9220bdc120eaa491c488617544beee2cffeab3063a9b30c5e313b47522fe4377255c4b3a9ff7fb1f3bf00aecda9fbaf9006a80e40564cf3a1cec4b8add01bc88daa3b4c5824e9ddccd5cee2ebe8d75f3ff957f1d115d66ca497f22362f624a448983cf73313d94e49457c6f8cbfac6bb70a4b1292ea29935b680ddc9d09db5bb767c308cf109041774f53222cd326a318f5b4ed816d301f36f7bab0eeceb7356af930d3fd3ed4f7adc69e9c062b8b0bc333775cc292cfe0c908454f113148ca9506cf2c04e5949812ce30f5b36748030ccc88a35321f09c12d6a574aa09940b16ddf423f015bf46a44c497a6546e42c000154cfb0de0f63ed295a8b55f66bf4e9220bdc120eaa491c488617544beee2cffeab3063a9b30c5e313b47522fe4377255c4b3a9ff7fb1f3bf00aecda9fbaf9006a80e40564cf3a1cec4b8add01bc88daa3b4c5824e9ddccd5cee2ebe8d75f3ff957f1d1de7898ca0b76c5ccf8ea31d9866d81454a22428dfdbb89c3b361d9f92cb085725edd8763b0e9f24ec8bee196162f82280e8709816f727bdb7fdac9abcdb63e0361129f14f4b1aefd01185a3fe0c49f013dd96fc53d5e0c426559301a04dc26c0619740bd4eed98e73d3e9250829e5d95b25063ac7f1311918d1049e100bd16017fc8f74b8d0ce7f16db6861c1b227711d06bf7f513dc311e352313df4a2358b059ee4ca5843ca9dd6348d8a2d2f4192dade01a821d47e6e944b73d7a99b6e762e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd630724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f61b9d5a2a50c6d8a61acdf312b101a31352f3356636139aeb9593bce4d5ce2092004c37cf170d22355a2c252313a00e318136f39a3ea0096dd1ef1c2bb8c26fb525edd8763b0e9f24ec8bee196162f82280e8709816f727bdb7fdac9abcdb63e01de7898ca0b76c5ccf8ea31d9866d81454a22428dfdbb89c3b361d9f92cb08570619740bd4eed98e73d3e9250829e5d95b25063ac7f1311918d1049e100bd160361129f14f4b1aefd01185a3fe0c49f013dd96fc53d5e0c426559301a04dc26c25edd8763b0e9f24ec8bee196162f82280e8709816f727bdb7fdac9abcdb63e01de7898ca0b76c5ccf8ea31d9866d81454a22428dfdbb89c3b361d9f92cb08570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012ff579f0bb88cfaf75b0f802d2077a76780fcb1499e5f3af9af524bc942b7436328dcb4e8a26de0e6a391fb41c8dc557bddea5659535af451a2f99aadd88dfad0be6ced5d5672a8919440af5a6e94bed533ee7154589f7e2681a495d8850a2d71873b10c54a22568a9ac8d715f662e638f91cbbb52dd8bace82f052f9a26919406274fdc79e8ca62631790d0d79ef67699c81f38b597ce5c56def747fd40a1782d16613becc47df0ad0e7e6275cf77adb35e8e078f4acc774b764cbcfd540f5827a1e6442a4558166dd01b02b9c31272a13313ef48f6adf04a17d57449fd5df504dec39cacc5b95c2b7a3fa2842f87d4185abad520b3493c9736571f4f145c0b12c9454f0f57ece7b62dd7d28bf9beb7fd66e38f073b7a1b8535cdda683c1e4d30874a7b797469d90a42c0f55f2e639d797f56ffd5c8acf8c4f235f9fb4ed2e224669a476f804f35f7aed0ef0072fc512eb40ba0b7b3e7b209216ca070e9adab06845db3766c41f13f6a7c606e642a2e4b8685649543da3434a8d998883ac3f5347f540fd5af4d3a500fdd5a83f88c0f9ac93b47b07e95a02571e858ec24ea021aee2378b3e7dc890d97efb0288340074c9d149802a83d700f569778598e2dcb1ef6c85ffa37bb9088068156cfa4fb6ee2c9df6437dda4fb235d27142e8e804d3b61ad13c4c6dd944c955d818b6a5dcb501752a537a356f7d0792f4606f80f7d33d73fe3935457f45159a611c6e9f8ae2b74149f6c91ccd715fb2c2d8289793125d4f826119d083c98be6b2fc177e0a358ee5e85fa42425622f027d0e1caddc21961932c86c70d27431b51514f0a4e8ee6d185fb5db2d86e2d066bab217aefa8269e6cd37938f2d8bce4aeaeb0f5b1713b751300ab9a20ad6c26c541de8510593ee7dfdea1e341c44f8896968b3388ca5fd104eccb31410b47f2e96aa766ae47011820215e1cbe3bb077696974cc7735c275940f3e1bb810513a4782589951ba3a875f59297048d58daaf0f0b801abf355fab4afd2c260ca0309cb614501675f0578a0a6d68fb72a72550f0f47fe540ccc4be44c368a98519623658bbafe98a224a4dcbdcf316c2bc456b4b398085bc024cb237ef897ff83aa7c3532590704d71b5b234230ce93d43ba94b4c67f7a43ffd7b757d10b4f997eeb0fbbaa6f8fb2a1961932c86c70d27431b51514f0a4e8ee6d185fb5db2d86e2d066bab217aefa8269e6cd37938f2d8bce4aeaeb0f5b1713b751300ab9a20ad6c26c541de8510593ee7dfdea1e341c44f8896968b3388ca5fd104eccb31410b47f2e96aa766ae47011820215e1cbe3bb077696974cc7735c275940f3e1bb810513a4782589951ba3a875f59297048d58daaf0f0b801abf355fab4afd2c260ca0309cb614501675f0578a0a6d68fb72a72550f0f47fe540ccc4be44c368a98519623658bbafe98a224a4dcbdcf316c2bc456b4b398085bc024cb237ef897ff83aa7c3532590704d71b5b234230ce93d43ba94b4c67f7a43ffd7b757d10b4f997eeb0fbbaa6f8fb2a1ec72c0c20573b5141e5d40e17d7293f3bb25cd5f92b26d68aa789660ac49eba06b8d7221f316ccd211c30eca2885f3786348b037a8ee4b5e05159fa94c46c3c3d59014f69be98d543ecc610bbc474da4a8b39c44545a65c5ee2e50b2743e32d1d26fb8256b8bf0c591134f489dc02af381b105a599a404e687e996e393311e0287bd883b55b35450ec49422bdfee8fdcdd3e4ecc788cc255aa02c2508ff39cf1f59c4fdd1c19803734be79a78a02561b7dfef291e91b238d3f0bd788c2122ba34ab22fea15d89c74a4ca0d1cbdd19b18c8dc4699b5e6d44a70b9e363033d8121dff3c5197fd00d1d0a0de7643244f7892ab4a9b26b3f4238af227929b22c0733ebbdef2711d9803441a84e31a9d5ceddb174d378971a5aeaf3f8ea84a27c794154726d1e457b749e5a32d9cb269c17087add08c554ac6163f1ba6dfbda977f406b8d7221f316ccd211c30eca2885f3786348b037a8ee4b5e05159fa94c46c3c1ec72c0c20573b5141e5d40e17d7293f3bb25cd5f92b26d68aa789660ac49eba1d26fb8256b8bf0c591134f489dc02af381b105a599a404e687e996e393311e03d59014f69be98d543ecc610bbc474da4a8b39c44545a65c5ee2e50b2743e32d06b8d7221f316ccd211c30eca2885f3786348b037a8ee4b5e05159fa94c46c3c1ec72c0c20573b5141e5d40e17d7293f3bb25cd5f92b26d68aa789660ac49eba00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000105b2b8cac3cb8cfbc14ff449881d981bb4b3fcfcbaea1fa63c75a212dd0b2388273cc86d024a00b9e3071db011fdfc788f98aea3da2022a9f6e9f41aca533aea08be0b715878d1726ea9013f66c498be9ab21316806ec537a6e58d451e1d64071952c9effbfd3114b461f7a06631b5c2a4dfe22355024ab76b489917b661f5093290bafbe8769e576919bafbf26e4c5a2216c342c615d04fecf3cfeeab0e90df2980953d958ab8caa309971169538b7826e921ed5e842cd9e39bae8a749f81e2294e0417c4edfb199149746a0485bb8d74ca9ab58cfcdee910bebab5523946181f20a35155c57048ad58fc698f6426343bcceed063be47ffe3384e221fa350bc3e36731d652282dfa0ceba9f7f935a1da1e93d6b7c8394ac65dc93d4225ae4103c0ee34d4e9ab49c206d22d3410d91eb3a2ee92c7b44bb62947a942f50839436373cef41aa80a5158c81d4e71e0c722fc7c88e2b3d7efc046ea9fb99fff04ed62e1090a8bc13dc1a1acd3fd53c23399284d384eb8021383fd29e8d08b620de313021b59b996ef2bfa601d9cf05d1bf710296a6bf495257b7b3a3f8d26f9086671f4bc1ecf0283703b7a5f33ba6aa0ca5e4cfa92069d47b58812486fed6229166382ed65cfddcfae8c856654c969163fe2db96d13a9c3ef71f77333a228f279540e4f0b016669607bb3b212e029f61a1d15f241ce45e712c66d47a95b30e65fed0e41aa4f5dae64783560862a74598e92a386434e8ba66d2b740f1fbf2a56ea432db6bdc8462d89954464c199addebdaecfbf583129840f03ab6fb95302ba6b9c10af26a590440962b4cea4ae015489f620f21bbd6dcaa8855c78e49560062fcd2f50d95a6fbbf69d4b315b51feab760a01547d3e9b8250963cb44c579ff9d034136bc13bd1542eed8809376606a6b1ce8273f1b71ba8517f352f45fde01eef002c943ec42eabd11277f6c899f9594e319fd2a744eda4a79c63fdeaef1fe11101211ac62b16a4eaa3a82e14fe2141790869fd1f9780fc9e6070bf2d08609aaaff1ee539d4e95b155c57d1eb01debe86f7b849796488505abb286e03e49f6555022585ded77138953248e668f6a6475d29cd646bfd725525ab01617f4fe30556f91a7a21288ec76acdb719970959b8a2d654e22cfe96f7d37097cbb19d1cfaa90810af26a590440962b4cea4ae015489f620f21bbd6dcaa8855c78e49560062fcd2f50d95a6fbbf69d4b315b51feab760a01547d3e9b8250963cb44c579ff9d034136bc13bd1542eed8809376606a6b1ce8273f1b71ba8517f352f45fde01eef002c943ec42eabd11277f6c899f9594e319fd2a744eda4a79c63fdeaef1fe11101211ac62b16a4eaa3a82e14fe2141790869fd1f9780fc9e6070bf2d08609aaaff1ee539d4e95b155c57d1eb01debe86f7b849796488505abb286e03e49f6555022585ded77138953248e668f6a6475d29cd646bfd725525ab01617f4fe30556f91a7a21288ec76acdb719970959b8a2d654e22cfe96f7d37097cbb19d1cfaa9081dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb0b0b59e3d76049a3cbcc543bafb2590ac18882a0454dfa958b5471d33d0dec0c0c2b75fbbe433ef24de4054a1dd9f66a53f2af49bd4023946d9757847ed174641c2e4ebab1756f0f23f502c605b001645fb9918dbd52634ba85793651b5f2f2c0a334d4c31960a61c9844aa2a55418924f410c8ce6bb75206c10b6ccadee8d3b2ffd27410ccdcfe329ef02841829f506167fb6b8093ab9645e6cf50c6372453900d80c97a5ca3f42024809990a5e4078724776135e9285751f43bb068f1f5ed12e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b33ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba0af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb1dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970c2b75fbbe433ef24de4054a1dd9f66a53f2af49bd4023946d9757847ed174640b0b59e3d76049a3cbcc543bafb2590ac18882a0454dfa958b5471d33d0dec0c0af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb1dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee19700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000103faa7143dfc81ea6c0725fbd6cc165760bcb5f95d58ab194f259f4c8ea0c6e12e7497a9a6b8da38b53da1e6b0e170f840f28fee3a3ba2fdb023793353b3b3592d98812b6b5c7d202fcaccec7b8efffe4fd6d2260ca4dacb8c14a992ec4e99a93523fff8f12408db029c43d72f02f48be49667ea942ca4d71348f4ff25ac5a5e3e244f7265f4f5a20b85d3ea3057a1396e973d7b526b008c89ac664a0deeb82914c67838700d39f2cbbce3e75aae415a2b04b8afcf0e882710684bc05f6f2579163d38107ac89366ef9376f7db904855d91ed7fe63834c5c36ab59ec99fd3d6225e315305c203defd506d80bd61c5734ef12318482a8f0d4276526d7efa118e51f2584d8f3888269774fbc5950bb158a246ecfb87855e87f9ce732532ece40283f63329cbdd5ec86fee116a15725aca1c85a34208a2539e419fd46198ad176b63dbe495a5f1befdf04a1b1c3d1d5a489b850a41981e61ba7ab4d8bdd4fb63aef14b7cee9a3976e0e32eb602445670d1287201a70f87e981671519120d5e9b789373858ca46f01f4394e5158a070d9c12ef2f9a77e73a8f611e7f2f318b149a1d18351ebe42a70a7fc8c2b780a56e3003f836b567cbec43af1649509fba9e7db0064cbf4b3016d0c25c7e2e6615c05c3eb192491b7357eb3474e117d946f69ef528964428b973dba2257c76cc921713e8e23d152b63b549bf21ed56300a3d8d2b376092171e922d60bc89ced9c627be04a1b82ee83f17a7a2b86e0ec9bd56ae161ea73aaa503384a817580357370eab6b7d3b6efbdb01a5b28d467541776a1856307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab21307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab211d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f31191ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a33e487bd6867df07d9ec1655272d545d836af65b6e200b39c8a448d47b53f7bd123701802f019376baeb767fee133c1f3dc99bb5c30df62439261b00de2d7c131fadffc2b1154b6729eb1fbe7e0fde2dae0bd0b60207b2e40ecc3f5492bd3c20163a206aa9162cf827adc731a5cdb7db8fbc61aa5764c85a123a61e921fdf31e328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff41daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f2e26f67ab7b96cbd66298cf342505f2dedb559fa4be2273dd01899d6c3abb17105f957432b4d66c307dd8d7a9f77a65b49b53376dadd9b2290ea826fd6568a541ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a1d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f3119123701802f019376baeb767fee133c1f3dc99bb5c30df62439261b00de2d7c1333e487bd6867df07d9ec1655272d545d836af65b6e200b39c8a448d47b53f7bd1ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a1d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f3119000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001129ad4057bde586d4b233c58ecfd98bc4cf60f80e032b1d8e3f160aadb80afa7322ba21b19df597346bab1b232449876bb877544fbd6f57eb66e0be2a1ddd6fc324e8bb5dde8126175b7fe32eb5f3a5736e311ed109f1292acb290d2b4c7451a3add579a45b98bcfee30a2b51a9b31719f22c19ecf86a7a93f59662fafe0884927843023c7959ddb9d9fa62fb78d13c0e4ccc18033bca5356f2a45574f618728068a412297b3e04c0fd5db5fc35b349eb80b47829f69150d4eb11ffe16e2cca523a54087288325c870fd71523d0540e5acc6ec843ec35cafb82abe9a08d418520ccfa34ba028202d654fa57d4b54f358b2d94da43329bdcdc2894affb0b715fb373cc4bf79036e40b10c3d05b43b8c0fafea7942426b5f56ffdf42d48447883b3019a6d3141507ba8209e62cd76a753cb43da13bbd815e5e0ff73d4677e3ad7329a6c580ebfc4ba615d758b53835690f42b7e31331e9e546365454722b038c100abd62f2a760a7af316240ac9599dd603fa6aa364199c26e0e61cb8590bcd5392b4d94fdb632873510ae475b6cb4b5cec5c33b52bd8d2cb475fb16712a05964f241fe28ad364a28e4cf985af3fc7164821a3148cf599a65bbecd69601bad817e3ee49991f5ca60bbc106de59c9b47af3e5699e14b851e33d272cf0b3d30aeb820d0b1cb26a947654ca74c13b63e1cbad3d9bc939d41ec1dd5ba448b51f0569b03269f17c53abec81b015ec02c5de398817db92db89b356e80ffaa379d672d24303eed6599963ce4ab7955bdc3c3a091cafacb2bb84595bc9d4e4ab7366a2467424fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a6021551b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a707121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a1ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec20f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f0463930c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c824fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a6021551b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a707121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a1ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec20f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f0463930c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c809e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f10022299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c37ecb8b7278ef89d6864ef9dbf9021f38c404e2dd31c721606d7a5bc8011efd5149786017ebe61cd3033d4fb7f00cfc465a497b1464343a1a46eb7f2ed9b5de00168feb3ec5487731f5a78c05dbf2354012ffa5efe36b383af6c5d5787f595aa2368a8d9f0df500d29c787f59bee3d31a7284c876cd8b378363c8b9485c4beaf132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c83614840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d3126017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e17f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a66373299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f10022149786017ebe61cd3033d4fb7f00cfc465a497b1464343a1a46eb7f2ed9b5de037ecb8b7278ef89d6864ef9dbf9021f38c404e2dd31c721606d7a5bc8011efd5299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f1002200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000127d9a11a1346b0c8207d8123e198121c7449ea9681d843e6f151d0dc93d2ff900f9a88c30f1b87df9ac76e59de024fe9ab35728181948abf2a96dd729623d06604fb6f4b9d1c6139dbaa8cb0683ae711f1613224da9c7c589efbb85ed84bdcdb045708edd29a5a59c410ae9d02ade76927c1218e07689725221d9a8edcde6e6c22b9055b4171a7c84688b08b47e7a480cb1cb24ba676788b4f0aa5d5f477a1690fd85d5b0459d2d8364dc03d9164d30fa26ceae5868285d65f012a8b7de34df92a329c0dd0152b92baf13e28276b29d1db4501433e788ddec920e166ec9ffee431787fd0aef86e99bc082cf8082a63f676d63f7ce65c473eea3aeac4a753ad332c66a37920ccb3e03e553d61f2dae9e9ae0d84fcf57f2ac35763bb340a064010170e682cadc511fd3763d6eacbba3e92451589ce14b2f4c824d13fe538f54e031e498a3bf3b4a5c65aca015a4f18ac9dd3bf8a126c13c2827acc82c1214d240d1c60709e89b8ec0d280a52ef346063d1226225d1daf9e9af56513f094d40286f387aa014d50f83870ac2d98843a1e74fae290a110fede75636b7abd7b78c1b2d16f2d773b487a63c52e4f38268d9e4c7393d45cea338ebb9fe10d3f98e26fca02d42a4b61cb41c0382fcfee97dffb49fc4565854b50a17deb5a9f9151f40ab1626f27d0ec5157f7ef8c87d8c2796d3cdf84cd7f45ff9a8b26164f57f8390c3f62a08f7ae479289bb3daddc32ba543552ea3720348a33f3af3c3764b32ba296a1202b428771f5a59cfa079644dffeb7d9b92dc35b61056335420d1b6fd3ca53072536d7ae9327c01d3159ed3ae3849187e4fded6c3b9bbd494a7b15ae78e51dfe1ac928516cd83fe2cea612c51c7b6e783d48ab8fcdb13bd24eb21b3e871ae2033a123668dfc6c091f6c1a2267196d7a7346871251770c037420d0a8e5c7995f405edc99720393f6e093e5dd98e692858edde27d6f1dc38e45720265ea3866a0d225b100c5ee1c2d9d1c82ac037f236437cefd1c94fffdca5e58c7113ce5fedc01da4eff3a11e3d262e37d53fc80dc9bca556c732b94d1c75b3a0bfd931a012412bc7503dda68ce4118e8d5c117bb0f512c21e6f67d655d064963d38907dfa4be1438afc2259731bee7172a3ee844f0aef624b2058be79c154fc95d63f8205b432536d7ae9327c01d3159ed3ae3849187e4fded6c3b9bbd494a7b15ae78e51dfe1ac928516cd83fe2cea612c51c7b6e783d48ab8fcdb13bd24eb21b3e871ae2033a123668dfc6c091f6c1a2267196d7a7346871251770c037420d0a8e5c7995f405edc99720393f6e093e5dd98e692858edde27d6f1dc38e45720265ea3866a0d225b100c5ee1c2d9d1c82ac037f236437cefd1c94fffdca5e58c7113ce5fedc01da4eff3a11e3d262e37d53fc80dc9bca556c732b94d1c75b3a0bfd931a012412bc7503dda68ce4118e8d5c117bb0f512c21e6f67d655d064963d38907dfa4be1438afc2259731bee7172a3ee844f0aef624b2058be79c154fc95d63f8205b43235b5f0d6a17565734c6c297adb20db96542cc678885f50ad8c48986405d7d6b047780b393c9324d25d3cf2c8399bf9cb8b67dbfc80f7d2ddb11c11af25663f7075b39653009afe58d1a961603a54b8d15568374b04917877bfd58681d935c2010d1e6d9d215c776184ad825cb0ee71ceef6cb60086e6f5b69598de3afb8c2800be4ad38b63252cf522e79cf1172ea5b6203471877c931e56d82a593fcfacd0d32513673718a90eea7455c1ff3810b1de027cadb97bf44267bda36f5bdeeb14704ed39a11be374a6c61c5e56b99bfcc18cf3844790a53d75fbd6e84fb2bdf573150a02f1be7f1ef6e5d539f61024406f5775519521d6cc7c9950525f5fa4aada0c42ba95e57d85e81e62e43ece358248321ec92aa5f4b75b78640b9689961a6a1d8394ba2e4adcaeaef721748559b459a82e03b51fc3c9ede424d047bd7ed5f2047780b393c9324d25d3cf2c8399bf9cb8b67dbfc80f7d2ddb11c11af25663f7235b5f0d6a17565734c6c297adb20db96542cc678885f50ad8c48986405d7d6b10d1e6d9d215c776184ad825cb0ee71ceef6cb60086e6f5b69598de3afb8c280075b39653009afe58d1a961603a54b8d15568374b04917877bfd58681d935c20047780b393c9324d25d3cf2c8399bf9cb8b67dbfc80f7d2ddb11c11af25663f7235b5f0d6a17565734c6c297adb20db96542cc678885f50ad8c48986405d7d6b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001201fa32b70a5354ac9ec742d499009f3300ae07180bf3fe7823a2ff1d3ed11cc1d73f6431154cc34ef67ccd2aebe8057d0a07d89c811a4f466f2e58bf5cca9280b9deb39e867659a048902f746a3d92f3e57fa372153b6541a013ebedd7ddf4a07bea451d610de24d841a81523abe9da9c3d1eec59cb21c472059ae0320d66c92664546f89a48810da601561987dbbc1ca3d75b6d6d2066cfa33f15e31ca1edd2da3bc938f5da0fc79b698efea8a3412a4f015065f32b6f74217dccb2f7d766d3a013818ed9db718b7138bdbb1d95cb602e761b035553e619b414e4b808e262922e0b56edced8b072b8f4d16396c0f3a62544d0ce094786cffc4d9bb63ee494510571165cce3c00e4ab15fde1ecaba27103c18aeeadee569ba3e8bf7042a0df2322ca10e6f564afd4d47d85bd7adb4ce5b97d122e6be3ff254e78582da043856355732d2afebf79b7cef9fe3fd85d82aef90ab3284acac1b0747f74973937e5d06f26679a38ea31b1d24d86f0936f55d39ea8972ebfbc1f591c29850ad1ae6b936c00d0e24a829b04a4a54e138a23a62a2feb06c0ff1c6b9ff6858f6c16220fb18ad6a7a64ef0013135d782973d991b444679f73a3350c56356026da8450f6d20d330e2a612e898bad579c42074294b6a6992ccdb3f335f326fbb4858feada252a4eae85a9de5e9a80884e1cf813ee0f5162831c9247e903a51f701ee5e316ef397ae214745c156d482a4e6c218a5d3a1f053534e766cd0843509df325862dc416db28a3eaa95adaff71688ed2182631416daa0fb4f2e3302d082e6283a1674d2f50d95a6fbbf69d4b315b51feab760a01547d3e9b8250963cb44c579ff9d03410af26a590440962b4cea4ae015489f620f21bbd6dcaa8855c78e49560062fcd2c943ec42eabd11277f6c899f9594e319fd2a744eda4a79c63fdeaef1fe11101136bc13bd1542eed8809376606a6b1ce8273f1b71ba8517f352f45fde01eef001ee539d4e95b155c57d1eb01debe86f7b849796488505abb286e03e49f655502211ac62b16a4eaa3a82e14fe2141790869fd1f9780fc9e6070bf2d08609aaaff1a7a21288ec76acdb719970959b8a2d654e22cfe96f7d37097cbb19d1cfaa9082585ded77138953248e668f6a6475d29cd646bfd725525ab01617f4fe30556f92f50d95a6fbbf69d4b315b51feab760a01547d3e9b8250963cb44c579ff9d03410af26a590440962b4cea4ae015489f620f21bbd6dcaa8855c78e49560062fcd2c943ec42eabd11277f6c899f9594e319fd2a744eda4a79c63fdeaef1fe11101136bc13bd1542eed8809376606a6b1ce8273f1b71ba8517f352f45fde01eef001ee539d4e95b155c57d1eb01debe86f7b849796488505abb286e03e49f655502211ac62b16a4eaa3a82e14fe2141790869fd1f9780fc9e6070bf2d08609aaaff1a7a21288ec76acdb719970959b8a2d654e22cfe96f7d37097cbb19d1cfaa9082585ded77138953248e668f6a6475d29cd646bfd725525ab01617f4fe30556f90af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb1dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970c2b75fbbe433ef24de4054a1dd9f66a53f2af49bd4023946d9757847ed174640b0b59e3d76049a3cbcc543bafb2590ac18882a0454dfa958b5471d33d0dec0c0a334d4c31960a61c9844aa2a55418924f410c8ce6bb75206c10b6ccadee8d3b1c2e4ebab1756f0f23f502c605b001645fb9918dbd52634ba85793651b5f2f2c00d80c97a5ca3f42024809990a5e4078724776135e9285751f43bb068f1f5ed12ffd27410ccdcfe329ef02841829f506167fb6b8093ab9645e6cf50c637245393ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba2e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b31dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb0b0b59e3d76049a3cbcc543bafb2590ac18882a0454dfa958b5471d33d0dec0c0c2b75fbbe433ef24de4054a1dd9f66a53f2af49bd4023946d9757847ed174641dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012e7497a9a6b8da38b53da1e6b0e170f840f28fee3a3ba2fdb023793353b3b35903faa7143dfc81ea6c0725fbd6cc165760bcb5f95d58ab194f259f4c8ea0c6e13523fff8f12408db029c43d72f02f48be49667ea942ca4d71348f4ff25ac5a5e2d98812b6b5c7d202fcaccec7b8efffe4fd6d2260ca4dacb8c14a992ec4e99a914c67838700d39f2cbbce3e75aae415a2b04b8afcf0e882710684bc05f6f25793e244f7265f4f5a20b85d3ea3057a1396e973d7b526b008c89ac664a0deeb82925e315305c203defd506d80bd61c5734ef12318482a8f0d4276526d7efa118e5163d38107ac89366ef9376f7db904855d91ed7fe63834c5c36ab59ec99fd3d623f63329cbdd5ec86fee116a15725aca1c85a34208a2539e419fd46198ad176b61f2584d8f3888269774fbc5950bb158a246ecfb87855e87f9ce732532ece402814b7cee9a3976e0e32eb602445670d1287201a70f87e981671519120d5e9b7893dbe495a5f1befdf04a1b1c3d1d5a489b850a41981e61ba7ab4d8bdd4fb63aef18351ebe42a70a7fc8c2b780a56e3003f836b567cbec43af1649509fba9e7db0373858ca46f01f4394e5158a070d9c12ef2f9a77e73a8f611e7f2f318b149a1d28964428b973dba2257c76cc921713e8e23d152b63b549bf21ed56300a3d8d2b064cbf4b3016d0c25c7e2e6615c05c3eb192491b7357eb3474e117d946f69ef51ea73aaa503384a817580357370eab6b7d3b6efbdb01a5b28d467541776a1856376092171e922d60bc89ced9c627be04a1b82ee83f17a7a2b86e0ec9bd56ae161a6142eabad9ac1231abb2237fe06e217b0cce090905d80c1b5ce78973f1c619259ebd15452653edce544ddc801f91dea739caf30047210f7dd049638c0e39e803e64e95a6405c5af85a7ab17f6226a722b2d4351a834605567623d543b8de7b3c19b16a59bfa3a507a5854e809dd958ff93c4c6eec9b31642b70d17bc472186137f88ec3f41cdc6d9c465777ceac143ad7e250984905e1ab04eb32a529c58672c807713c0be3239263b9a8883153ebc74c873f284bc9b00e8de7dc2ad63a79a217dac9d3c4904e240d5fb557095c652413020338d84dd69d85c4ee69d0dba021e825362c3b6fb1dbf2a04aa8f6a39ade11678c87bc81bb1c0d0e20662f245ff1a6142eabad9ac1231abb2237fe06e217b0cce090905d80c1b5ce78973f1c619259ebd15452653edce544ddc801f91dea739caf30047210f7dd049638c0e39e803e64e95a6405c5af85a7ab17f6226a722b2d4351a834605567623d543b8de7b3c19b16a59bfa3a507a5854e809dd958ff93c4c6eec9b31642b70d17bc472186137f88ec3f41cdc6d9c465777ceac143ad7e250984905e1ab04eb32a529c58672c807713c0be3239263b9a8883153ebc74c873f284bc9b00e8de7dc2ad63a79a217dac9d3c4904e240d5fb557095c652413020338d84dd69d85c4ee69d0dba021e825362c3b6fb1dbf2a04aa8f6a39ade11678c87bc81bb1c0d0e20662f245ff2d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a0b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4821da14ca1a199664fe96c00dfdadc6f774cb0099050339947762320acbda4f921298a8342161460a0a63944925900c28283b9c6ae2cb874a22758361d7811b5e63af4d6266fcb4016eda88f0b8382f0829b30347c5384622320af607712e403341ea98dd2ad29467824de238bd178f586fa625f611b07b7a7fd42b73123ce40682e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b33ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba0af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb1dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4822d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a298a8342161460a0a63944925900c28283b9c6ae2cb874a22758361d7811b5e61da14ca1a199664fe96c00dfdadc6f774cb0099050339947762320acbda4f9210b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4822d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011fa50446e895affd0c882ffff31e6a129f7497fa47c50d567465bb5befd0d9311a7f80a864a1db5e1e1817d3a45978ed1594c742ff1b0e87ba569baced13d53334053265fa7428b94f366826202e389c7d81035a35044d91b62acc62728eff210bcac40c467248b59e9d337db61e5db8b06a5e50a4bfb8d33f271f31bd332e22289139b492aea1152c45e2db3c3351edc39b126ca2fcda0968b9ed647987dd87174165f9a4ad6683cdbdf9ead43c1106981bb64c0703586797e455485d91b4283efda4a93da79866e0375520d44df8fe385b98e9f88964fe96c63b0c2e6555e20a548a884c6a1c01a6948d07121ca6ff38daf0c134ee162d4e1169a331d0edf90eaafc81c888770de760347d3b2523e747f1366dc7ec2342fb2a55dc52fa602724dde2bc5dab69ca1a4195896926ef3279e5b00eab69a3cdd973e6538c1a2fef002847ff9ea73b089e1e214cb762f65451013e9c7a29d6121e67466780287939345e18629a81357b28d58efe1f05f349baa04f9fd280f9843c365550cdf1c0542f8004e8de1bab07ad4741ab68273f2a3f82cd0b6ffbb85f3a7b33c67c2725711fed729fab7b7ebbb0608b5f44548ceca7e382d4432b1ab0fa4d4c0ac98bf25c1670fa54cb87976aee4ff43710d5e274cba69ff154acad34afa4b80faca8887c2eeb30abe3f935fe2871a65bfb56be6c63d6fc9b20a138a408d01f39c4f332e11fc34e82227bbee0824d3e890145c1852bde95ebfc50b1ca27225ae73e3026bf0f4f9323cea9f65187610adb5c151c24ae99cfe3e0b4f2e1ebd36f43bba6d8c107fc67f0d2530e47f91f36ded523f7e7013069392919e4978abc6e0f780c038c3803980f2dacf1b806e0c9212adc081921162fc2e03314840e70c2dd87f3fc7527ee07b41b9f4767dd9c125a29b3d78305f20e1dcd8176f5b5ae264d583c11bc1811f84be460b8982263eda5d64c287d1c548ade3bcb8225e37f0a9fa7c3ee4507a626848a1c6507540c5bc2d083358eb6e67ba0e7a06779c0df2cbbb92c58a93859d97b75e39af8abf3a43d2f7cca716b601d5b21ac91a1d84e043146d3a758263ec096b28df924a43dcace12900bc992806a2486220560c45bdfaa9dddbb4d19c13f694d7206db5bc23531ed6ff4368fc62ed7832af3bad4d15142622244b407fc67f0d2530e47f91f36ded523f7e7013069392919e4978abc6e0f780c038c3803980f2dacf1b806e0c9212adc081921162fc2e03314840e70c2dd87f3fc7527ee07b41b9f4767dd9c125a29b3d78305f20e1dcd8176f5b5ae264d583c11bc1811f84be460b8982263eda5d64c287d1c548ade3bcb8225e37f0a9fa7c3ee4507a626848a1c6507540c5bc2d083358eb6e67ba0e7a06779c0df2cbbb92c58a93859d97b75e39af8abf3a43d2f7cca716b601d5b21ac91a1d84e043146d3a758263ec096b28df924a43dcace12900bc992806a2486220560c45bdfaa9dddbb4d19c13f694d7206db5bc23531ed6ff4368fc62ed7832af3bad4d15142622244b4174fbaaf88be79d412b9672c9d372a7d2fa63a6f94bf935c8b22a38f99927d5421fb658f6072cee97b6dab3dcbac82009de512e271ab489886ab5369ed4941f1349a6923199a3b527343dd168fc0c3443c3898792a4ab48ef884d6895f3b63a4121a769dfd347beffe95107f075b903e3ac94c2ce1e461b32807945719e8dd1a0d59dd55308f221e8b7b9adc30ff608a8d3a58f05c6accbda67dc57cd7b9e0ae326db10dd5a7b1765db5e5acedf3cee26786f1363634c1a634a356a0e08b822a04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a0427665ed95b17a0576af512ebc575a225cca770747fc11a85e3405b33ad6bb002137e04dacf9afbc347f2bf066d88f624070fedb8de8410940ab528ab8fc49c21fb658f6072cee97b6dab3dcbac82009de512e271ab489886ab5369ed4941f1174fbaaf88be79d412b9672c9d372a7d2fa63a6f94bf935c8b22a38f99927d54121a769dfd347beffe95107f075b903e3ac94c2ce1e461b32807945719e8dd1a349a6923199a3b527343dd168fc0c3443c3898792a4ab48ef884d6895f3b63a421fb658f6072cee97b6dab3dcbac82009de512e271ab489886ab5369ed4941f1174fbaaf88be79d412b9672c9d372a7d2fa63a6f94bf935c8b22a38f99927d540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011bbf3756a9f9137394503221961b99e063883a1b8d8cf15eb126df0ab4b99b703b6b3db1313d01a06cbfcf2c961bb7725a04d6885e354779aea97b5820dd58a11bdabd6bf3eb9926845fd71b5a35af2bdc6c5000721b1a2344500a9a0dbc57c90c94349c8fb28e09647e7391f2d2535ced0e796b3988a2d336cfd0379fc604de3f13e25998af91a499210fb3af909b80bbbe28f97a8c2820b0bc1a3d2fe5de261a3e7522d105b19c6e63a3749a22130d9feab9d7f21636c0d853b06bddf5742f175c40f7543e9ee9a0bbcccd1ad15953fee4e303bfb7a55eeb45c5b114b63bbd3544718131ce48bc9ef81edf124a682dc92f7d080b15ac017c3850e090802fd63704349ab2f7238b51fac6fd5ce3aaab5fb4100ec041b475c1fb1005761bc8a330f3ee57361cc25a628a806cce8918ac6075cef08a0cc0d47a23fcf8e0ff6466060fb666f280ed2b28526b82efb680a5d8b72fce5833e351bf281e921e54da582d7156d67488d686560f4d8fffc51227b9beb7d98f82193cc40415be69d6a7f50c4980c4acb1fb2ee0028e1685cd66f2cf5171b1de3498929e89a0d62b0cda820323f6c3dce52e947da53ef426ae6523f5ce4531cba54161fd11ae0e1aa63d4a277fc0e234ad623a406a778cc3ba987d28d14dbb279d8aded15317d8f5b40e591270c6caa7c1c0d62149cb576c34a31592af30cd7405919bce022b14b3c424a1008d7e75d5aeda56ee67429e32f0bae244bdcc9573fcfe766039316f579203b80455d0cfb8fe2d22d6a4d1b48a76e9807ac65a1e245a103ad1a3e25399733bfb00a31cd9ef8679794deeb656fd6b01c97550149e556476b314244fb708d44fc33f5ce32610798686b21149a90294fe36acf6845db3e882688508e135f72bb03e032f9041ada05f5e85a98fb2f31708ef4a906717aaf6517f64b58e932c258ecf3cd06fbe525fa0a17a56704d0ce8f710d7b631e45e56a79c3477a259d3da71320fedd1486421dcd89c4fce7ebf732cac74d2037656cf977cf78bc8dfdcbbca0b30122eb79bde232763b03181408cd353ad749585b27d619ea1a1680d234435f60fa51669f4a9503b0d8f0879bd3fdf5e25d37853a8c0fc553c8dbb724faaf236305ae9960b56afc4f270f78642c020a1fc7320a8608bfcc65c9f757ab0550dcb00a31cd9ef8679794deeb656fd6b01c97550149e556476b314244fb708d44fc33f5ce32610798686b21149a90294fe36acf6845db3e882688508e135f72bb03e032f9041ada05f5e85a98fb2f31708ef4a906717aaf6517f64b58e932c258ecf3cd06fbe525fa0a17a56704d0ce8f710d7b631e45e56a79c3477a259d3da71320fedd1486421dcd89c4fce7ebf732cac74d2037656cf977cf78bc8dfdcbbca0b30122eb79bde232763b03181408cd353ad749585b27d619ea1a1680d234435f60fa51669f4a9503b0d8f0879bd3fdf5e25d37853a8c0fc553c8dbb724faaf236305ae9960b56afc4f270f78642c020a1fc7320a8608bfcc65c9f757ab0550dcb3ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba2e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b3170b49fa45ed99ffcaf8036f11a7da96f3eb56355a6bc1b4d4b673c252a8f14e3b674a1b1f59259eb7e969b60f76d978f3840665a081434844ed7e08ae52a3490dcea87c142cd7194c851c76df44aa147c540709bc62f27ba33ec049f82126cf0bcfbb7d08c7af75c601962075b73bf4f6f7f3d7a8dc2e33e18626713e911ccc2d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a0b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4822ffd27410ccdcfe329ef02841829f506167fb6b8093ab9645e6cf50c6372453900d80c97a5ca3f42024809990a5e4078724776135e9285751f43bb068f1f5ed12e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b33ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba3b674a1b1f59259eb7e969b60f76d978f3840665a081434844ed7e08ae52a349170b49fa45ed99ffcaf8036f11a7da96f3eb56355a6bc1b4d4b673c252a8f14e2e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b33ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013de055bf769969a0d87c3732e7fc15d1476bb72f2d745244a1708a43a12c4bd50d3cad54271aec049264abf74889272d7b788d9f14eb8b09c44d1797a5e238a40019e45972881cdc6e800be6e6880fef95827e3d3d827fb1920179c642db899a119eed0cfdd4fb6fceed08e05e02fff939da308463a1a37b8c9c06686a7560511584be5a4fceec1d27f3e16e127815a558dfd6fa21bb13ef11315d1aa840772437b3714110b268d7517dd82fcc4648b1684ecdc7ccdf0bda0df74c936e81201022416c2a4523bd0ae53d3e56b25dc9e04384f22f76a661a5f4d6f6c283bcddf01ea6970ce8a65d0e376df7f6963cc9c27bf99992ccfa7f8cce50f82669f488983f7ccf2034516165fb7c25c10fdc51d13201f615afdeed22218b19e171fe2945337e319a24af782e7134704cf00b6a588479bd183aa88ebde651c0d64830b8df12407cdfa540b790da4c69ecc3034bde4ae9ce95d11049290a9fa5b5dbcaf8de33bdf4da489f0af5ccff1a4a3333f128f4aa09554dd8351e2c82592dc2d171762b0e6e2eb0cee4c50c1aed1a2ef72ce050d83dcb43145ec67755ccb69a75d70b245f0959d8c844fe518cdff07d849f36968e121470127449bd72b31aab3d40c2159fb3998dabc633be095bc345029beb8f3afe61f0fecc404c57ecff4c37f87d18042836cfe6d7098376209694fd930a5b0a7088b9a99140ba8fc84cf29f2b000a9617799cf1ab708a0697a20039ecfdc32da3939ea64e16a0fe27cf4c48e0012d5cb2fc345a38db8e47dc9a763fdc1c510a8c09a047d27d81450b2096e016162d30c4b65ccaff430a6ae8691b1502ed1df45381b89288e2a79f83e093ee643012cf3b49a33500bcf5951796e4eafd130452457a50ba7038f18dad0c6c119bd121f3d78fcff6fc4f34168a0d87690ea12ef1d6947ef5c11a7a96009be3a7f4ed1e0c2870300903b0cbe975f27896f15ef354c2678a5738011e9730511c580b1429c335cf0fd2ed8c0470b243a50d4925a62bfeee6832d34d3293a1317247c89f163cca30f02d1273fb8f4dbc5af2b6da7c1a9a0da11a25ce66998fbb8db8376210d00d0b4f1ea3bc16337b5239426dbbd8082fb3ed17352f315a93303b66eb182f2ff2f4b0e15c43e9cc84adc6bd92444a3e69481c35c3ec67d29dbcc49914e92d30c4b65ccaff430a6ae8691b1502ed1df45381b89288e2a79f83e093ee643012cf3b49a33500bcf5951796e4eafd130452457a50ba7038f18dad0c6c119bd121f3d78fcff6fc4f34168a0d87690ea12ef1d6947ef5c11a7a96009be3a7f4ed1e0c2870300903b0cbe975f27896f15ef354c2678a5738011e9730511c580b1429c335cf0fd2ed8c0470b243a50d4925a62bfeee6832d34d3293a1317247c89f163cca30f02d1273fb8f4dbc5af2b6da7c1a9a0da11a25ce66998fbb8db8376210d00d0b4f1ea3bc16337b5239426dbbd8082fb3ed17352f315a93303b66eb182f2ff2f4b0e15c43e9cc84adc6bd92444a3e69481c35c3ec67d29dbcc49914e92e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd630724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f61a92f6a61fce846b25c83d8fbcb76aa39feca1dc39a5ea305ae3ae246a618d0506dddf9bcd0c2033836249932bf3ce970b3c1b1026f23e8e76c0903e8382833220f0072591fd810e96d65b79ca90d674ac9a437419480fec57f01490c6a71f533cab6d197f17180e56399a722450928f6d9116af63172aafb8dac171d79684af25edd8763b0e9f24ec8bee196162f82280e8709816f727bdb7fdac9abcdb63e01de7898ca0b76c5ccf8ea31d9866d81454a22428dfdbb89c3b361d9f92cb08570552acfb4136a8687c086867198f336159a70e0de3347500c25c57abf0d8fec13c5f354a6809f5d8fc0d754f10b0845dec5a231524772141e6eba5461ed414fa30724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f62e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd606dddf9bcd0c2033836249932bf3ce970b3c1b1026f23e8e76c0903e838283321a92f6a61fce846b25c83d8fbcb76aa39feca1dc39a5ea305ae3ae246a618d0530724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f62e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012b848eb10e9fdd59fd8c4de2526a6ca06d4ddc1141e84b695ae562ed60e643353f04746b17ecc54f77bd72585a684e8fd03d61aafe9a442806af881b3210ae3510913e2f49daffcadbdd9040604f7943e36491ae951f3a1f3590c63cfe1b3bda025d6ea885215d0616c1ddbcc9104ddb5829422611d8c6bb4014f377b168c11106e0128752f4c77886ba5d531aef3d916a8c7f33926e7e7eaade0d218a0a580e1f15ab20061476ce9aa338bc3af0bdf901064f55847f47202dd4933248e9dfa503ead49eeebaed8b0c8887189ed793cdd39cd1bf2f728e7cd0a4de0ac40cc21f289d5c26146efbb8b80b7c60c0616da75959fbd6f33b39a419d96ae3b60da6ad3a3ac4d0b3c443c86f7887a73230bb95f13b18138a2ac748c8a3dfadc3e8bc4718774eef9ada6ce3f881138985888be874da78a7926a3102ce2685f60f8c686a31a581c646f4f1d9f4e275e595790818f819570447b99a4b0047f9064d1aa8fa04d882b645e0b51c301bbad7ce1792ca0af622b5c54b24d8709232705a9acfec3ee92f0b88019ea10d9a7586e27ae525219f3d5a6a7a1c0bff7083033722758f1084487d01958b22500d5783ca00e6f1c5c7128548acb7043557fcce0e90a23e1bb44fc94108eba44e98be22f7b693dd046de296c1fadb7659969a43894855f53edab8a35df757cbd4bf9ac2f5119c89a1b215c871c13693296827575bded2032c0c1664fc7fd450b1a01474530358a687391196c1a91cc37ca89931df0dc17f19a9ccc9665fb54d4f9fdce0598492b9c9d18b2d0c32a921fcb87014e0cad92b3188e3736946f3bf517c077eb5300c2b271757a63931e99ac339705544006eeb0e771c8c96b90c40ae83f8814acff3d4fb2f4155d01b0f80d5f3c097bbff911637ac71410e62c2bc976c257989f03cd75ca0eb4b0212a4b304979ee354022a9408538ebef19d3d436893da86760fc328c5a5adb1073a546894959209abfdd56d165e364547edcdaef51cbb5fb1b13034460a3486e5295310b24156bca40ad4e029a1c9bab81232510ae344a04e4ecfcbdc3c64752423a60ae6ebda305bf52b212fd70f5a67a5046ac98fa8de7875f1053bec6da67081a637e21980c23436285f1028f0a5985afb9536705721878a0efae65a2b5598cb52e3b713b02acbc9d7a23188e3736946f3bf517c077eb5300c2b271757a63931e99ac339705544006eeb0e771c8c96b90c40ae83f8814acff3d4fb2f4155d01b0f80d5f3c097bbff911637ac71410e62c2bc976c257989f03cd75ca0eb4b0212a4b304979ee354022a9408538ebef19d3d436893da86760fc328c5a5adb1073a546894959209abfdd56d165e364547edcdaef51cbb5fb1b13034460a3486e5295310b24156bca40ad4e029a1c9bab81232510ae344a04e4ecfcbdc3c64752423a60ae6ebda305bf52b212fd70f5a67a5046ac98fa8de7875f1053bec6da67081a637e21980c23436285f1028f0a5985afb9536705721878a0efae65a2b5598cb52e3b713b02acbc9d7a2305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe2ae365370673405b45f215f38dce27567140ad8f6ba49ea88e18629f6325aa0d1b8ff0c9a7809eabeb8f51554571a7d5285ef1a041b40a55e30ed8a0c3d2236a197c72c4ccb103b028475e963f041edf0457e1b288d586454f04237818425ece26bbfed82d1828baee8720e0a208b1b44b74061ef724dd8e083522442f783e5d02137e04dacf9afbc347f2bf066d88f624070fedb8de8410940ab528ab8fc49c0427665ed95b17a0576af512ebc575a225cca770747fc11a85e3405b33ad6bb0174fbaaf88be79d412b9672c9d372a7d2fa63a6f94bf935c8b22a38f99927d5421fb658f6072cee97b6dab3dcbac82009de512e271ab489886ab5369ed4941f1093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e1b8ff0c9a7809eabeb8f51554571a7d5285ef1a041b40a55e30ed8a0c3d2236a2ae365370673405b45f215f38dce27567140ad8f6ba49ea88e18629f6325aa0d093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011dedcc54ff9f8351efcdaa6ec489fe96c3dfd774d79f53cb0cf4019f0a8aa2530532b24d144d3df8ba1b3af03d4544bd45781153ac42a63204ab27fe6b75a00f32f77ac8b25c5a40abe9015f4e298beaa5500c04ac5b94af13987f6f05c3e35a314112e60cfb9df3a1ad299faaf948b7b2f9b39ff94ecd90163180da74d3865012e8c149dd24425feebf10ae7968aac15f0b348ab8ddf709bd8cb8dfb5c6ca182b22c84b4f41cae2815a813ad1c73f058a8274b49453da18ba2f4d8c75e18d922eaa03e6ae752741fafd4b581f181c03b6d05f38ee6391a5420da11814542b1c1918f11340d76730a9abb40005d27c1b889b09dd70649e45ac4f2ecc301177ee380d11ff0fe1d542bf123d5cc6f81f59de67cff0125269a7ba1433c1184f8b2e250c8b52b1c867d674f992ae911430cb08730f4335bce338ff7184fa67ffb6e30f9d0dd6783ae08ca32eb09ae4b96cc929f35599a5443c89a6b1271d7096131228156a16eda045b4dc01c9ad93531d98eea8d6662f160abb10cd8a0790615163077a1a83de64a9cfa4041f94361de7b0fc8c9918d1e0059625274bc295e9355507f35d04ab327ff3b9a3ad76765de465c8931dcad7f9d45e76740321afc9e27733db4b3d90175611854ebe74518b437db8d9cfb5a17ce43676660c428005a4aa192ddde24ed13432c5427808c111ee6c91c29a45bb1a3171208d54df47fa99150eaa585b7adf0384f3f8be68382eea44f70e5f56aa36a7b1d1c3ecaa3e016d1d0d23e79fe87766c9f5e1592caa2041034a7b26b37dbafa16b37da0297edc4fa017e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d28193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e1110593943781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e20087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e1158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c2a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b69652bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef617e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d28193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e1110593943781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e20087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e1158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c2a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b69652bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef6288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc73502405abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b31a541dc9aede8050ad6648812a33cfcce3efbd5a696c6d22401470b7af361c4e377596ab5d4f14c7435038a9742be3e6d0ecea3606fad6a74a40d15db38cafde3aaa9a47453df473718afecd5a9f3c813f8ab265d7735b30cf3d9aa31345b8bf29f67f7b332db09cf5bad95713cd823005366f75182a210df2f8ccf2a0536bd63ccafc6418112053d1c539dc198ca765b3a8d0cc38d47492143067a7a046f720305d9e4e7bb0cfb3b7ab6f2a16664d9d00ffe6e15a8f452fe648d4b20ee2b079077596ab5d4f14c7435038a9742be3e6b737f77900011bd2975eecabf38cafdd2a541dc9aede8050ad6648812a33cfccec8163996bbfab69265fbcf2ef361c4e05abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b3288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc735024377596ab5d4f14c7435038a9742be3e6d0ecea3606fad6a74a40d15db38cafde1a541dc9aede8050ad6648812a33cfcce3efbd5a696c6d22401470b7af361c4e05abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b3288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc7350240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011b8c83f59739f174245a9d39c1564be6f697eaae027a246d6f62ef7eb25e2bed15a71fa3e4bd6b4d0784a8b7d6c10312d2bb140fd7bbef1c3569abecd12e7b7e128635c1e3f36fb3c558df18a08816d3cde40f45fad4a9a962b169100bcef4d80f93110bc1bf6acff6178d72f3fba2e90f0d836c58bdbe230f5c4e26963aa5e31d2bb2c46f7219e420184aedd9cad68c9eb7615fc4844a02cf82c2cdf6dee9940bf88c893574e850f325ba7b57b730492ea6f6e098adeb9a82817b4837f57683300f118bffede9bf6a1b089a082be5009bc462acb38cb10135c42d08344d26882ddb46107020150d7159dc61447f7450fefc207fbfed47993668257b816e89d024f6907b762d9cae49e30d91b048cc20309c649008ad73d20bbf2cef1b26f8421e75e1c64dcd3e7e8ccc77bf484aafc32a446b41c4b8fd22e43c01a948241b892466513b3aa77d71d02fa23fbf39de781c137bfdd3bee472236abb977470fde601a1f934f293de88492dbb217da681682a0af1135f254abc58a330d8e6511e0f29ad293d3d824fcb09f3b2bd2b2d751ab474a3d5e0e96a7b95d2a003562019a225c04e4b4c14d9f853b41a4d814e56fc32f1ac09d23d68949ef5dfcdef92fe2b14fcb1c7dca15f1080984165b3757c1b52e1e93b84ccc1a4827697eb0553f9a61518a235be48fe4064b068a1b9f2a8e2be3c2f949cebec7cb2dc82a523243b582a2367af9f6914f7c8f97657697fc994152320e65bdeb611e3ffdbabf6c21d1b0cb6110136e488aa295b43fb2c0debbf072d6f65b83bfde7c42bbd8ab8fe910f3f5ce32610798686b21149a90294fe36acf6845db3e882688508e135f72bb03e00a31cd9ef8679794deeb656fd6b01c97550149e556476b314244fb708d44fc33cd06fbe525fa0a17a56704d0ce8f710d7b631e45e56a79c3477a259d3da7132032f9041ada05f5e85a98fb2f31708ef4a906717aaf6517f64b58e932c258ecf30122eb79bde232763b03181408cd353ad749585b27d619ea1a1680d234435f60fedd1486421dcd89c4fce7ebf732cac74d2037656cf977cf78bc8dfdcbbca0b305ae9960b56afc4f270f78642c020a1fc7320a8608bfcc65c9f757ab0550dcb0fa51669f4a9503b0d8f0879bd3fdf5e25d37853a8c0fc553c8dbb724faaf2363f5ce32610798686b21149a90294fe36acf6845db3e882688508e135f72bb03e00a31cd9ef8679794deeb656fd6b01c97550149e556476b314244fb708d44fc33cd06fbe525fa0a17a56704d0ce8f710d7b631e45e56a79c3477a259d3da7132032f9041ada05f5e85a98fb2f31708ef4a906717aaf6517f64b58e932c258ecf30122eb79bde232763b03181408cd353ad749585b27d619ea1a1680d234435f60fedd1486421dcd89c4fce7ebf732cac74d2037656cf977cf78bc8dfdcbbca0b305ae9960b56afc4f270f78642c020a1fc7320a8608bfcc65c9f757ab0550dcb0fa51669f4a9503b0d8f0879bd3fdf5e25d37853a8c0fc553c8dbb724faaf2362e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b33ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba3b674a1b1f59259eb7e969b60f76d978f3840665a081434844ed7e08ae52a349170b49fa45ed99ffcaf8036f11a7da96f3eb56355a6bc1b4d4b673c252a8f14e0bcfbb7d08c7af75c601962075b73bf4f6f7f3d7a8dc2e33e18626713e911ccc0dcea87c142cd7194c851c76df44aa147c540709bc62f27ba33ec049f82126cf0b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4822d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a00d80c97a5ca3f42024809990a5e4078724776135e9285751f43bb068f1f5ed12ffd27410ccdcfe329ef02841829f506167fb6b8093ab9645e6cf50c637245393ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba2e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b3170b49fa45ed99ffcaf8036f11a7da96f3eb56355a6bc1b4d4b673c252a8f14e3b674a1b1f59259eb7e969b60f76d978f3840665a081434844ed7e08ae52a3493ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba2e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010d3cad54271aec049264abf74889272d7b788d9f14eb8b09c44d1797a5e238a43de055bf769969a0d87c3732e7fc15d1476bb72f2d745244a1708a43a12c4bd5119eed0cfdd4fb6fceed08e05e02fff939da308463a1a37b8c9c06686a7560510019e45972881cdc6e800be6e6880fef95827e3d3d827fb1920179c642db899a37b3714110b268d7517dd82fcc4648b1684ecdc7ccdf0bda0df74c936e8120101584be5a4fceec1d27f3e16e127815a558dfd6fa21bb13ef11315d1aa84077241ea6970ce8a65d0e376df7f6963cc9c27bf99992ccfa7f8cce50f82669f4889822416c2a4523bd0ae53d3e56b25dc9e04384f22f76a661a5f4d6f6c283bcddf0337e319a24af782e7134704cf00b6a588479bd183aa88ebde651c0d64830b8df3f7ccf2034516165fb7c25c10fdc51d13201f615afdeed22218b19e171fe294533bdf4da489f0af5ccff1a4a3333f128f4aa09554dd8351e2c82592dc2d1717612407cdfa540b790da4c69ecc3034bde4ae9ce95d11049290a9fa5b5dbcaf8de245f0959d8c844fe518cdff07d849f36968e121470127449bd72b31aab3d40c22b0e6e2eb0cee4c50c1aed1a2ef72ce050d83dcb43145ec67755ccb69a75d70b18042836cfe6d7098376209694fd930a5b0a7088b9a99140ba8fc84cf29f2b00159fb3998dabc633be095bc345029beb8f3afe61f0fecc404c57ecff4c37f87d2d5cb2fc345a38db8e47dc9a763fdc1c510a8c09a047d27d81450b2096e016160a9617799cf1ab708a0697a20039ecfdc32da3939ea64e16a0fe27cf4c48e001200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af2150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f3981eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c69269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f6196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af2150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f3981eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c69269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f6196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b305d9e4e7bb0cfb3b7ab6f2a16664d9d00ffe6e15a8f452fe648d4b20ee2b0793ccafc6418112053d1c539dc198ca765b3a8d0cc38d47492143067a7a046f7200cc3da9332bfc4c2de3e80fe3391c67cfd20927847a5a0e2f07a246a7573e31806138aba397e4b359850d5fb9c7b448092c3e7d23790979247670115db6275521d89216596cd5ffcdba10ea510a72867528d858a39e4f1abc51139fd0eef252f0717f85ce19e45138ba4c97f5dc59649cfed0354ac6b917763f7fcaba4a9ff65288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc73502405abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b33335039be7eedfac2e3ac623e673589a8852baecd7723f5e37deadf71fb908e23fa261b1844f304c485490d5e999b2633afba4d7b5b76ec065c640ecb11d4f893ccafc6418112053d1c539dc198ca765b3a8d0cc38d47492143067a7a046f720305d9e4e7bb0cfb3b7ab6f2a16664d9d00ffe6e15a8f452fe648d4b20ee2b07906138aba397e4b359850d5fb9c7b448092c3e7d23790979247670115db6275520cc3da9332bfc4c2de3e80fe3391c67cfd20927847a5a0e2f07a246a7573e3183ccafc6418112053d1c539dc198ca765b3a8d0cc38d47492143067a7a046f720305d9e4e7bb0cfb3b7ab6f2a16664d9d00ffe6e15a8f452fe648d4b20ee2b07900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000109fa99daa58230b33c76e5c73f7ee82fa9ebccf7e8600b7c0865b2b480b8a2951a4ef048fd214d3b1fd00ccb356cb23305b4b5f8c03f51e003da89e0e28345421cf8fa1b5a8723ebd96f7c2d70f0e28074d9f6154464c2e35fdc9d5599422fe608572a85af70524a81f485ac0ad877b0d9ef201aa803ef9c00b4dedf69b38acb33d72a2445768b2e1a74044287294267c504417ddd7953bba823fb953b8c75931e8e556ddaa53ed132e59ba876a18e7e2f4d5467e72ad3dd846e05e5aa96c301213163b020e9245fb704b71c11746e66206a26e9958d1c13b010bec4da282cb332a12444cb1cf554552cd4781050d5980f211f7bdcdf4d407d34a007fc3a245220ed2e93d0ffbf32e4388cba197268096a8b6714cd3d90f59df599196a426a3b3a5b3f1c279bc2572b87d9a22f93a64a9e63e05c73fdd3bd87f3ea0a071f2cde2a160a8d27d93908347270ea94deadd02188176c223f430e635343a3dc49850c1a98720428d8f9b5c4a9bb55adedd079f6f22273ae86a169e7f2efb235ee7b650f6336919514b003944e5494da84066ff9dd3222f6294ef56661206a308f7466000a40f6f48279bfc9597875d1f7c5a6cb4284c0b3b08aff353a2e7a1523a36607d8a8819df16d305cee6f12f5f1625e8f770da87ad09f04d1ec303d00cf12a30161402a5a3b0a7b8cd68bd0d65844ac88a17b23da42706bd49b64d3f6621d4f3998ef0d0bc1b06fc97b11854f0fe9513e8529fe496964346f634a2233e5bf68277d3947cafbf229a9586b083cc633367c3268e5896267421f330fa1ca6518221a6142eabad9ac1231abb2237fe06e217b0cce090905d80c1b5ce78973f1c619259ebd15452653edce544ddc801f91dea739caf30047210f7dd049638c0e39e803e64e95a6405c5af85a7ab17f6226a722b2d4351a834605567623d543b8de7b3c19b16a59bfa3a507a5854e809dd958ff93c4c6eec9b31642b70d17bc472186137f88ec3f41cdc6d9c465777ceac143ad7e250984905e1ab04eb32a529c58672c807713c0be3239263b9a8883153ebc74c873f284bc9b00e8de7dc2ad63a79a217dac9d3c4904e240d5fb557095c652413020338d84dd69d85c4ee69d0dba021e825362c3b6fb1dbf2a04aa8f6a39ade11678c87bc81bb1c0d0e20662f245ff1a6142eabad9ac1231abb2237fe06e217b0cce090905d80c1b5ce78973f1c619259ebd15452653edce544ddc801f91dea739caf30047210f7dd049638c0e39e803e64e95a6405c5af85a7ab17f6226a722b2d4351a834605567623d543b8de7b3c19b16a59bfa3a507a5854e809dd958ff93c4c6eec9b31642b70d17bc472186137f88ec3f41cdc6d9c465777ceac143ad7e250984905e1ab04eb32a529c58672c807713c0be3239263b9a8883153ebc74c873f284bc9b00e8de7dc2ad63a79a217dac9d3c4904e240d5fb557095c652413020338d84dd69d85c4ee69d0dba021e825362c3b6fb1dbf2a04aa8f6a39ade11678c87bc81bb1c0d0e20662f245ff2d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a0b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4821da14ca1a199664fe96c00dfdadc6f774cb0099050339947762320acbda4f921298a8342161460a0a63944925900c28283b9c6ae2cb874a22758361d7811b5e63af4d6266fcb4016eda88f0b8382f0829b30347c5384622320af607712e403341ea98dd2ad29467824de238bd178f586fa625f611b07b7a7fd42b73123ce40682e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b33ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba0af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb1dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4822d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a298a8342161460a0a63944925900c28283b9c6ae2cb874a22758361d7811b5e61da14ca1a199664fe96c00dfdadc6f774cb0099050339947762320acbda4f9210b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4822d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011fa50446e895affd0c882ffff31e6a129f7497fa47c50d567465bb5befd0d9311a7f80a864a1db5e1e1817d3a45978ed1594c742ff1b0e87ba569baced13d53334053265fa7428b94f366826202e389c7d81035a35044d91b62acc62728eff210bcac40c467248b59e9d337db61e5db8b06a5e50a4bfb8d33f271f31bd332e22289139b492aea1152c45e2db3c3351edc39b126ca2fcda0968b9ed647987dd87174165f9a4ad6683cdbdf9ead43c1106981bb64c0703586797e455485d91b4283efda4a93da79866e0375520d44df8fe385b98e9f88964fe96c63b0c2e6555e20a548a884c6a1c01a6948d07121ca6ff38daf0c134ee162d4e1169a331d0edf90eaafc81c888770de760347d3b2523e747f1366dc7ec2342fb2a55dc52fa602724dde2bc5dab69ca1a4195896926ef3279e5b00eab69a3cdd973e6538c1a2fef002847ff9ea73b089e1e214cb762f65451013e9c7a29d6121e67466780287939345e18629a81357b28d58efe1f05f349baa04f9fd280f9843c365550cdf1c0542f8004e8de1bab07ad4741ab68273f2a3f82cd0b6ffbb85f3a7b33c67c2725711fed729fab7b7ebbb0608b5f44548ceca7e382d4432b1ab0fa4d4c0ac98bf25c1670fa54cb87976aee4ff43710d5e274cba69ff154acad34afa4b80faca8887c2eeb30abe3f935fe2871a65bfb56be6c63d6fc9b20a138a408d01f39c4f332e11fc34e82227bbee0824d3e890145c1852bde95ebfc50b1ca27225ae73e3026bf0f4f9323cea9f65187610adb5c151c24ae99cfe3e0b4f2e1ebd36f43bba6d8c109c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b09c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b39ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e2e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae9682c52dbd4b3e6e09e1ee805e79005f0bc5d1ef5ded4e43494b88e3889b14b0e982b262cc5955e65935d7d23c1946687e15b1143b0d92ac231ce3dd27d0547e1a618c9d9804d1af74f9e6525b58fa140978c05cc06abfbd4d3afdd2faa1c9c215527f0fe2bdb474e59eadb6476d794884dafac34e825f9c1ef1ac1b293f21ba637125c534548436e43bf17fe0c04c54749cf0b77aa2d2eed5e1e60a2d2e8abc0510461dda8d89f9244340ca170b871686ead72c0f6aeea72a59dcc85f5bf2f6861063701d30cbb53d7978d008cd3615854317feab4f9fde2db6584c6b4ea9b95e5068b7cb70c4e968fe90a321a45ecb6c221e359af3f511fa60b4bca61ced1e0ae2e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae96839ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e2b262cc5955e65935d7d23c1946687e15b1143b0d92ac231ce3dd27d0547e1a62c52dbd4b3e6e09e1ee805e79005f0bc5d1ef5ded4e43494b88e3889b14b0e982e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae96839ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011e8194fcd5a97700e739a2f24cafd61b4491112661802452831399f4fe0c2c8304f1693e7f720fc0c3e18e66c0f74ed58aee9ea6d8ea1a90efa817954a6939683d467807ed19df7dcb1ceee2577eefd4e488a3c3c519bc76d0e4c2cb85206c0e2d6115c69853abf63db380f5e7d691c62c5a27f45b4c89b995ef9862f6785fb821940a88b1c2aabd86e2311d2f0f16003f34554a35b3cae9b830c25258d4bef21c7558cd368b780e43fbc21e63a2c0f9d6c3d00afbdacaf095ad69ad3c69e8a12ca6b7c480511320f61c38b01e256472115e384cb1544b7c6c2c1809fa6756d5305ca7610ebe8c0334c175749c19abf108e4a6592cab85d824bbab119e65411e3aa039b1d5849ce36dac25aedc8381f4062ac089c68ee62dd6428e1f0d566c3316ec15fcf1ac9caa211dd3405d08e01d84341f34d2680d29e84ee4680f0e4bfc050014b77c11e98c6a93b167065919941eb20a49513ac5583bb51cf96d9cee0b2af2f2dcb7cee2ab8e2a8bb6de75f04c1cf0f878528fc1ca448e58f9669fe8ff19973d43497a56cc8039c2fde9cefe0ca1897f3d9d53193ccd03467b4e269ac635d63a45401cd2f6dd6e0a0cc2acce0a45dcd0a215d3b9d367c53955f78c7d073e7305b385fdf1e74396fb4b21010478ea9706bfaa4809440d935417dbbc764d1b5056a52a88e47bb79c7bb73ad4e6877ad11d5462f9149f56ecb0ac0ae8d29e1858d0c3bb0ce172cbb5ba468bd5ab4a8293f62e449ac1f2153c56c6b9406ff1195b8d569bdad6892038a85deab533ace8629f62faa985bfeb64bd1fbf9848cc18a62107e04b5f9b19f1ae1f7823a61b01ced64411dfefbd3a1d74748adefb682759def81fb4a064e60e51e087dc59e52077c2b7f76d095e5f0fbc78752104993b3ea5276178de0781b8669d58b23e86e6c396585012b59689661559b65ae90704c15ad89e8721f87e479962a74dc1793b8302a3b93a43850fc71b9349a516fa283939c4e75c5625889a0112bb7b38a1f8b78bc96b29a7824a49a70c8fc68d1f17c6c63b18a3a9da7765feed4484c75e298f0d329e2351994ee389e0703972e2091e20d884cdaebbab02055da9681b2974c1effafbe95a38a7e8b077cee0c19836e1df277b32514454fdfaa25697e4d6ad84a9010d639ee2f1448075311f3e6918a62107e04b5f9b19f1ae1f7823a61b01ced64411dfefbd3a1d74748adefb682759def81fb4a064e60e51e087dc59e52077c2b7f76d095e5f0fbc78752104993b3ea5276178de0781b8669d58b23e86e6c396585012b59689661559b65ae90704c15ad89e8721f87e479962a74dc1793b8302a3b93a43850fc71b9349a516fa283939c4e75c5625889a0112bb7b38a1f8b78bc96b29a7824a49a70c8fc68d1f17c6c63b18a3a9da7765feed4484c75e298f0d329e2351994ee389e0703972e2091e20d884cdaebbab02055da9681b2974c1effafbe95a38a7e8b077cee0c19836e1df277b32514454fdfaa25697e4d6ad84a9010d639ee2f1448075311f3e69154726d1e457b749e5a32d9cb269c17087add08c554ac6163f1ba6dfbda977f43ebbdef2711d9803441a84e31a9d5ceddb174d378971a5aeaf3f8ea84a27c7942ecab19fa4984e587f65c960abe312a14911f43b6a89c4fc00189825fe5ed7753d32489c05f2625a56dc841f8715cf00bafcb8f4d2a0ba91dd13c518f9cfe90713724f0ac1b4c5188c3274dfe3b442f0a5f988438b3c9aff9885f6af3af876cb24b81373b72e6d9ef1bd0f62e5acaeb018dfd59ea142d8d96b43818d2fe72caf29bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c0a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac634ab22fea15d89c74a4ca0d1cbdd19b18c8dc4699b5e6d44a70b9e363033d8121dff3c5197fd00d1d0a0de7643244f7892ab4a9b26b3f4238af227929b22c0733ebbdef2711d9803441a84e31a9d5ceddb174d378971a5aeaf3f8ea84a27c794154726d1e457b749e5a32d9cb269c17087add08c554ac6163f1ba6dfbda977f43d32489c05f2625a56dc841f8715cf00bafcb8f4d2a0ba91dd13c518f9cfe9072ecab19fa4984e587f65c960abe312a14911f43b6a89c4fc00189825fe5ed7753ebbdef2711d9803441a84e31a9d5ceddb174d378971a5aeaf3f8ea84a27c794154726d1e457b749e5a32d9cb269c17087add08c554ac6163f1ba6dfbda977f4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001150346e04ef75c825ea58de669c4722fec4507fd927b6a9cc11c1d752c01a2082e289a36beec474521fbafe255a478d7708a2f26d4069a396be5f267e79fdc84271cc5dc2338990c25b0cf6bfd13fe9517aab83a9e9ca1298259bf10ad3f648321199c6076c599e6dd7524a7b93b6c38fe4194c45bf908e9ce0020fa4cf23d5b17f689467b40bf3f1e26b061288dec8a83eca77307e625bd3e5f424a2902bbad38db0ebf41f00b1e2430dac732b1f9538b660c4f5471df192133fa98d75ebe7d01171cc27b8cd4cfeaa00e4925b08b97455da8624287e3d6f045174f86e425f6277b0d7b0e129860ed31b803d00a5558a79e29ca6509c027a3b0212ca93f0fff32b5528a791c41a0138cac54d49496ae8deb725078083e61df30a59f7e5e827d0c56f4eed2aba9d8e66f938ba1cd90c25da6322dd1fd95df541b148ba1fb645e31e486ecd0c41f8576c64088be2d8a374bc1ce807827fd7f0f80701520796fc10a1b63b53e1df4daa23be2eb336b2549e999462f5d90cd788cfd453062de28073ddf2583b44797b135dbe028fe4ad956f72f9b0b52d0974c828b6e9f7656f735118e5204d54f921227cbece1ae30f2bff036b4d460563bc3b23d1131cf5c20983be7b3cc6d9fe66753b064a06b878aab2b657f34acb54deb8cb6acd44625bd2c23cbdebd866eb86c0fcee40911ca8a9603891ea4be3d47fca90ecefae60e63c131ee9f3e305cd0801e0804c8944789927dc060ebd54b5ddf2b9d44e6d8d7cd9c0b001cc4b9d7ca0f7c576c80e04bd258c29fdd5a8944d08704a475b9b389a0f80175af5850c48b5312811458ce6b91ca32d6cfe591513b4e62e362a21d6f8f153e8a50a7af3b74aced7eeba731946e35ef6fc91677fbbdcd3649ce4ae29070ec074c6cb993d6b89f5c8565bc0819d8f2fe320f7bd6962887ee70ed2a932dcb6938b393466c294760a37a9a43f7e6270d2414898032b6d093aabc43c26cd23498247e1f9fe3319b1cce9afcac28813cbef6fa4d6b30eecaa7a834a1d4dfe4f90d1b81e0601cce64e331650353d77ec3412b4c4b90d85e2e73f0f88f18201b06f436769e1f6ff807900906ef5cca862fba8e56511fe210030f16acc74e5f78dd3f098961e09007f86ff6f910a33579d04593f047dc273cf60c8280699ea08722c20175af5850c48b5312811458ce6b91ca32d6cfe591513b4e62e362a21d6f8f153e8a50a7af3b74aced7eeba731946e35ef6fc91677fbbdcd3649ce4ae29070ec074c6cb993d6b89f5c8565bc0819d8f2fe320f7bd6962887ee70ed2a932dcb6938b393466c294760a37a9a43f7e6270d2414898032b6d093aabc43c26cd23498247e1f9fe3319b1cce9afcac28813cbef6fa4d6b30eecaa7a834a1d4dfe4f90d1b81e0601cce64e331650353d77ec3412b4c4b90d85e2e73f0f88f18201b06f436769e1f6ff807900906ef5cca862fba8e56511fe210030f16acc74e5f78dd3f098961e09007f86ff6f910a33579d04593f047dc273cf60c8280699ea08722c23fa261b1844f304c485490d5e999b2633afba4d7b5b76ec065c640ecb11d4f893335039be7eedfac2e3ac623e673589a8852baecd7723f5e37deadf71fb908e209ec7545c681b4ca67af2a046384bb7f75cdbe6ccac2a6b49ee44b25649d8aaf033c256ccd403b3d21c17f01cc6e39830b7113c6baad9d63f5d127d0ca8c1ce918e807a31e61baec745b3680a23a69b641364929583aeb16689e9bcadb56009c0276de9a6932a003245ef15aef58d798be95c6f3cac18ae207855e797110dad22a541dc9aede8050ad6648812a33cfccec8163996bbfab69265fbcf2ef361c4e077596ab5d4f14c7435038a9742be3e6b737f77900011bd2975eecabf38cafdd288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc73502405abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b33335039be7eedfac2e3ac623e673589a8852baecd7723f5e37deadf71fb908e23fa261b1844f304c485490d5e999b2633afba4d7b5b76ec065c640ecb11d4f89033c256ccd403b3d21c17f01cc6e39830b7113c6baad9d63f5d127d0ca8c1ce909ec7545c681b4ca67af2a046384bb7f75cdbe6ccac2a6b49ee44b25649d8aaf3335039be7eedfac2e3ac623e673589a8852baecd7723f5e37deadf71fb908e23fa261b1844f304c485490d5e999b2633afba4d7b5b76ec065c640ecb11d4f8900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100606f0f394cdb14e52d7e42b8d96317ce5d15da7a97fa290fdf4d0f4fa8ecb010b4c57d90ebf79cc886a546aec72d1b2a25fedb5277408d0b54243bb1738f5d0f4c8401c7c910b2c903a54aa6696bf81c711454aa2412d751fb7e16b3d62cbe3344a123f27092e2d7f8b16c4f71b37c752d8a45c2d74905db8bbf4d332fdd4f1ebc29f59913939e26bcce6f4868bc687517ae32232098cca9420a7b6a45b98d18a3a053ac2467cc92e0baae90658c88f256b0fa5b75d7ad156df5d27f56ceca19b1662db41eb4a528ec1ce6e2f07605d386a1a4048778f3c10576f104620c6739d62957e6dc24551eaa9c8ad69da4dd875b47dce68745b99daee1a75059b8401eafef175bf83a01dcf5958f2ef414d820497704be3d015540d86135169516b615d5d7d7202bf182a4f50d9af66aefd17a65d13e61f63aeaab0fa365d258f0ff26b80ce967fee341e3391bd64a45ace7c77ac4c8798ab4b52049c799cc26cf4e1979eb0536388502a941649b177a1110a426583fd01dd7f708ccc105f6be339e1a9815ccb79a44f0e2a5d81401f901ac7b42f107cc4ef6eef6f6ba7f032b638334d561bbd1fce4d27b01f4f6aa82ca6a6c235ed7e6d7dc213dd1c5524287b44a1cb7b824a9db42173a460cba12f8fcb678332e85fd484a5154bb1c553851fdb03e954d0648466e5013db0256ae3219fd425d1ff3b2e9255d1b24f54c042217301b009713025f921af2801e957db4be3a60f481b8223f549057bb8176060986c22d1c4cd84325506112a2c5128ffe7455234742d0e2465182a7ebbbf66f8a2e082994104ae8e0b8c6b498ef4a340e1f5dca7130cbfc365dfcbac8513f99314e91166befb5171f47394b6710b5cbf1e0a257d568300d169b1ede64dfad66ceb1700fe451768c639be186fcac7304469cd48d622907d128ea9cda620376fdf688d2301bae89739c641e7903538cfbb9632b94e46ff438240e7ebecb2d760209772f0f759750bdf20b67a2ef5e3f15611026a0a4342b0c7f9bf4aabce065f5d0ac19308a68af420df4985d10a1c0ea9eefd981a264d0fccd5d26ee7050870a2f53e80d4bf493b5ba39062eacd73b6ae550c100ee6bdb353112abbc833110cd135c7c32b40b6c4a45c6f9d15328c4951aaf3f21582d20d41be66fdca9ffdc32eca3852994104ae8e0b8c6b498ef4a340e1f5dca7130cbfc365dfcbac8513f99314e91166befb5171f47394b6710b5cbf1e0a257d568300d169b1ede64dfad66ceb1700fe451768c639be186fcac7304469cd48d622907d128ea9cda620376fdf688d2301bae89739c641e7903538cfbb9632b94e46ff438240e7ebecb2d760209772f0f759750bdf20b67a2ef5e3f15611026a0a4342b0c7f9bf4aabce065f5d0ac19308a68af420df4985d10a1c0ea9eefd981a264d0fccd5d26ee7050870a2f53e80d4bf493b5ba39062eacd73b6ae550c100ee6bdb353112abbc833110cd135c7c32b40b6c4a45c6f9d15328c4951aaf3f21582d20d41be66fdca9ffdc32eca38522e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d570ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b03dae1cefa8b3e8651b5641fb8f11cb8a8245710ca4daeeb318975e771a9c6270944c8b525cef9aeb6196bfeccb204f8c0abd5e804a7bd874b22c345a0839749374a86518aad0cff9744827bab36a25272529f9a68b28b9c99ecea69bdbe3fe42179eb6829f66ce011798143af6163c3437fa534bd33624c60dcfeade441f79311fa42639b21ecaf1ed4e983217b62a6709fcf49a5422b064a6309c8e2c557662260f666d094d1a6403be2dc098fb8f586eb4ad8166745ba69d9a8268d67ce951663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac53a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f21620ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b22e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d570944c8b525cef9aeb6196bfeccb204f8c0abd5e804a7bd874b22c345a083974903dae1cefa8b3e8651b5641fb8f11cb8a8245710ca4daeeb318975e771a9c6270ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b22e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d57000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001220957af418cb9b6e475a0ffdf66127f6f7911b18ee0dbb53e69156b418700df3f0c640b60bcce9d9dacf3d347d8344c654e319fa4a5e454d031381ee7b55c67321fcde986b442860587e2eeca80a37cc409a3d4a7eef0ebae5b22c27156f97d08ebe50569cc1afc61cb59db2e80de17f5c38e61e266aa49d9a67c2c8393fa1d20aa93b49f4fbf793afd3a30019152584d4d9cce426dcd7c711cc712b3a2cf1d3485262a49bcd62b92a2cfca12984b17cb223b4cc92d409e4c585a91c8ec3f6421b5ca57e91b682d9b704ded7cb7fe9d2abf7b5144a389cd6d7f693aa8dfa4aa21109883bc7238c50da8f04cce374ac532a8091abd7fc08fbb493c9cfd6fbdf13bc17e7ade4f52988d3b2955268cc07449e47cbb0a9fc206fb74c38c22a5ed3b04d08ec323b93a949624451f0e5f9aadc3d62fb0e1f95686a45d57d01b4c84d9208255d86aa1c5664c3eae47414f0c280a23ad4757763c9dff03f72f42a0301d2b6ce68a650afebc294a04a72c5544596a8df40283efdd91d56f16d60aaa866108bb90ba84973052a3060b5705820b465eb85dfb4b7a4a690283fbd0cb2cc63106b1e6ce04fff970baa1c1b3a6f9c0d0666758e85e5f8f8b991753137a86519b38750511b3989a96394e9e0235e7cbdc616433ac9f6a3c57089c1fcc35ec0c010aa26faf70b587195d607880d11954be91bb16a057b29651b480558cb1aa40d32fce2bec747aae841a7824c4e3eb21758a4dfcdaad60acf70a3023e552f0bf1f3e196273ae7fee472292b95d36e0aff3b57be60f455e1ed5169f02b797646db81b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac24fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a60215507121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a7235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec21ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f30c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c80f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f046391b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac24fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a60215507121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a7235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec21ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f30c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c80f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f04639299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f10022149786017ebe61cd3033d4fb7f00cfc465a497b1464343a1a46eb7f2ed9b5de037ecb8b7278ef89d6864ef9dbf9021f38c404e2dd31c721606d7a5bc8011efd52368a8d9f0df500d29c787f59bee3d31a7284c876cd8b378363c8b9485c4beaf0168feb3ec5487731f5a78c05dbf2354012ffa5efe36b383af6c5d5787f595aa14840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d3126132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c83617f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a66373017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f10022299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c37ecb8b7278ef89d6864ef9dbf9021f38c404e2dd31c721606d7a5bc8011efd5149786017ebe61cd3033d4fb7f00cfc465a497b1464343a1a46eb7f2ed9b5de009e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f10022299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010f9a88c30f1b87df9ac76e59de024fe9ab35728181948abf2a96dd729623d06627d9a11a1346b0c8207d8123e198121c7449ea9681d843e6f151d0dc93d2ff90045708edd29a5a59c410ae9d02ade76927c1218e07689725221d9a8edcde6e6c04fb6f4b9d1c6139dbaa8cb0683ae711f1613224da9c7c589efbb85ed84bdcdb0fd85d5b0459d2d8364dc03d9164d30fa26ceae5868285d65f012a8b7de34df922b9055b4171a7c84688b08b47e7a480cb1cb24ba676788b4f0aa5d5f477a16931787fd0aef86e99bc082cf8082a63f676d63f7ce65c473eea3aeac4a753ad332a329c0dd0152b92baf13e28276b29d1db4501433e788ddec920e166ec9ffee4170e682cadc511fd3763d6eacbba3e92451589ce14b2f4c824d13fe538f54e032c66a37920ccb3e03e553d61f2dae9e9ae0d84fcf57f2ac35763bb340a0640101c60709e89b8ec0d280a52ef346063d1226225d1daf9e9af56513f094d40286f1e498a3bf3b4a5c65aca015a4f18ac9dd3bf8a126c13c2827acc82c1214d240d16f2d773b487a63c52e4f38268d9e4c7393d45cea338ebb9fe10d3f98e26fca0387aa014d50f83870ac2d98843a1e74fae290a110fede75636b7abd7b78c1b2d26f27d0ec5157f7ef8c87d8c2796d3cdf84cd7f45ff9a8b26164f57f8390c3f62d42a4b61cb41c0382fcfee97dffb49fc4565854b50a17deb5a9f9151f40ab16202b428771f5a59cfa079644dffeb7d9b92dc35b61056335420d1b6fd3ca53072a08f7ae479289bb3daddc32ba543552ea3720348a33f3af3c3764b32ba296a100000000000000a03bc351b1c4c3feb76cf38577f895a78cf981d374ef830e76a2aeacd8fe2e5df0325d2bff4c93e2e124c37a1cfcab013567656e570cff2674553e6ef4e0b5d6c61f9147954d57a6aed72b58b2cdba48c20432722dd0c7cc87f080f23dbefd72b1098b6a2d7ead0c312771f4b457fa2ec159bcf80b1d6cbb2b95f19d0621be60af3868f1fc4154ada4d89d01031f989ca739845260c59a5d76fa0a76fd12a885f613dddc3bc414dca0d05c78f14722bcf01b1794b46a71a8244d426d21300fe75a2905530de72e0fcf19466e4164a45f14cf5e3fd54aa79e63273aec686f437f1800175eb4e4d6a310e556df25c110186e8e912a63a38ce9505f37a2db717854481a8635031bf9ee44576390ac071f7672c1372b0801ea3399ec23f1c239d849a9154e659d10cb67735d98081af522b78d9193f816089a45029aa55f3c5070dec02ac29b3a2caec32c74dbad1a058829f8569919081c9336e9cdc471d37697a3d03e5a16889f55efb389c1a04d202c4d8b299cea2cdaee49e551db4e5d6a242f912ae80ca176cc7259f41b1d4a89cf3ca853f4a285f298b1b0b08fecb4efe5d24b1480bfb4177d46f36473f582664bbf3ded3bcdefbd5f096425d09f0ebe3943372bbd640075b27bddfe2306e543517bbf58e7b88df6319d7c030f0c3d8d49851e3d5f4dc256523702007a4681e262fbc4274e4aa7014fe3531c90b3f353724e43227a46d7526d8822a0c80982e3c39c2eacfa22f2063459c0c64a2431e9b39a4f28d8c0eef6e44ce7147cd48993a9db894e097469267715e47a641c92706499d91ddbdde635dd1d29298e4fecd5d5ec057b71b6435eb0e5073accddeee9fa79890b40d3dc962795b6d50efd7a4fde8b7de27db3f58f83a2ac4ba5b154f6c159d7361ebc55c9018a70848bbf7696b464b46ba0e4bffc5ed2f9aec0a09cdaaa66523ffc2552798ae1768f0d46ee8e010c9a74300e50a260a810d98fb73a7d8162f008956c6d6a2135cac6b4db4d3843dfca4b9a151efff7be3f516e5280cacec7982087455561e37d1537e87219ed7097b912555519ee3cc97435043cc315ed0bc8227a46d7526d8822a0c80982e3c39c2eacfa22f2063459c0c64a2431e9b39a4f28d8c0eef6e44ce7147cd48993a9db894e097469267715e47a641c92706499d91ddbdde635dd1d29298e4fecd5d5ec057b71b6435eb0e5073accddeee9fa79890b40d3dc962795b6d50efd7a4fde8b7de27db3f58f83a2ac4ba5b154f6c159d724cd3d73bcec04a086d943b11a50b9e5bf4c4ea3fd1411ae37b301cbf711d17b36a44512406db600148f1eb001ed71379753d51a901da1b816ac90e7d853b8f538fefc2de7e30a7e68bc498de164b442d2fafce6b4f37068349383204aba4a3f301db594e421a86195e103d9444fc340ad3b064e428e1066eb0c3d10960189220c894be0097594896891e5bfdba9363e21758f49fb9073f00b9f3c1d2dc734ab2a0e1a294738127745d3e2333cd3c31edd98b3eab8eb8e12b09c64869385ade13d5f4dc256523702007a4681e262fbc4274e4aa7014fe3531c90b3f353724e432bbd640075b27bddfe2306e543517bbf58e7b88df6319d7c030f0c3d8d49851e0837e1a9b0b428e63400481beaee9e5612ba535afb2ddee2612f0dbd343c23fe3372ebdfbea8ce399b737a865eacee23a5001068cdbdb38d21720e3ebe8cbbaf290df54e88e32cef331ddbd06752ed212279984ccd4574beffd4161812cddafd000ebc74432185f0cb7f7196be618a623b75d1ec20ef12f4869e792bcdedf8631dd6ba8a32a474f2cbb5161a007d059303a22ab12905e063b00298e0eda34a312a08fa239afb09c2a988c51112da46edfdfbe0294838a0e483d9a8a5a2e47928098b6a2d7ead0c312771f4b457fa2ec159bcf80b1d6cbb2b95f19d0621be60af1f9147954d57a6aed72b58b2cdba48c20432722dd0c7cc87f080f23dbefd72b13ffc2552798ae1768f0d46ee8e010c9a74300e50a260a810d98fb73a7d8162f0361ebc55c9018a70848bbf7696b464b46ba0e4bffc5ed2f9aec0a09cdaaa665208956c6d6a2135cac6b4db4d3843dfca4b9a151efff7be3f516e5280cacec7982087455561e37d1537e87219ed7097b912555519ee3cc97435043cc315ed0bc8361ebc55c9018a70848bbf7696b464b46ba0e4bffc5ed2f9aec0a09cdaaa66523ffc2552798ae1768f0d46ee8e010c9a74300e50a260a810d98fb73a7d8162f008956c6d6a2135cac6b4db4d3843dfca4b9a151efff7be3f516e5280cacec7982087455561e37d1537e87219ed7097b912555519ee3cc97435043cc315ed0bc82c473fd576be448a6add5680c72779f6ff12d6c95f585f21c0621343d3749ba03520541c90fcdf95d823782eb41b1dda87da802d96d0150c116bde29f26a8e9e2aad12c86d92187812490ac1ef04f4b4d3988f6ef5f60b3e58140d9f036f4b9d3e6f9efa5e729a67ec5442a536af82ceac9d73c6018b7590c78bb291dd4c87c40837e1a9b0b428e63400481beaee9e5612ba535afb2ddee2612f0dbd343c23fe3372ebdfbea8ce399b737a865eacee23a5001068cdbdb38d21720e3ebe8cbbaf290df54e88e32cef331ddbd06752ed212279984ccd4574beffd4161812cddafd000ebc74432185f0cb7f7196be618a623b75d1ec20ef12f4869e792bcdedf8633bc351b1c4c3feb76cf38577f895a78cf981d374ef830e76a2aeacd8fe2e5df0325d2bff4c93e2e124c37a1cfcab013567656e570cff2674553e6ef4e0b5d6c61f9147954d57a6aed72b58b2cdba48c20432722dd0c7cc87f080f23dbefd72b1098b6a2d7ead0c312771f4b457fa2ec159bcf80b1d6cbb2b95f19d0621be60af183622740a517b6d712ccc4180b56fccb474e54f2117b6501ddac1c9ee26e4c925ec30431abaf7e692098d5d7df2f3df203516b857d28f908ecdc54fcda0726b02cb2bc0a45fbdad7a39c64e537809c3b416fae89a0d8a1c582b2a8ab41438562651860227a4f53284638718d23c6dbfa9d86f505426fd972e4764b92ca79b0a1480bfb4177d46f36473f582664bbf3ded3bcdefbd5f096425d09f0ebe3943372ae80ca176cc7259f41b1d4a89cf3ca853f4a285f298b1b0b08fecb4efe5d24b2bbd640075b27bddfe2306e543517bbf58e7b88df6319d7c030f0c3d8d49851e3d5f4dc256523702007a4681e262fbc4274e4aa7014fe3531c90b3f353724e431540891272c824fb1e2c56ee54b95bf183eb29672173cfd84c803e1d7d20b17d038e1b5339850e19e2fc7911af89d082259638b3aae10185dcd6bb52e07137e7112929cb51eb80593e6c023a95db602854a404133b0f58e87eaf657b0856be6d17f387f77a193286c0314b2c8fd9175b094b6625b3252ecb07c329c8d86514f313dddc3bc414dca0d05c78f14722bcf01b1794b46a71a8244d426d21300fe75a3868f1fc4154ada4d89d01031f989ca739845260c59a5d76fa0a76fd12a885f62905530de72e0fcf19466e4164a45f14cf5e3fd54aa79e63273aec686f437f1800175eb4e4d6a310e556df25c110186e8e912a63a38ce9505f37a2db717854481d647b97770c00c07d845646c2c84adc20b603a4b421dc328d587bbabad02ddc0d48af011e998a83d42ba66cce6232af248518aa83a6713fc4956fe85a83960a0b40d3dc962795b6d50efd7a4fde8b7de27db3f58f83a2ac4ba5b154f6c159d71ddbdde635dd1d29298e4fecd5d5ec057b71b6435eb0e5073accddeee9fa798915988938a63e304c86c4701d0de48f1f626cc25520a23a339a2f011f44fb11442af302f56af9429b0a0c4a4489b0dfa9728f61ef279f74796adf511fea96138815305178ca22644fb423c8b6fd96feb152839780e9a8f4460e06449c11f3afd013ec604a01e24e904a7984b0281d78d20b6bd2b8048b936d786c4aa7cec82390154e659d10cb67735d98081af522b78d9193f816089a45029aa55f3c5070dec01a8635031bf9ee44576390ac071f7672c1372b0801ea3399ec23f1c239d849a92ac29b3a2caec32c74dbad1a058829f8569919081c9336e9cdc471d37697a3d03e5a16889f55efb389c1a04d202c4d8b299cea2cdaee49e551db4e5d6a242f912a08fa239afb09c2a988c51112da46edfdfbe0294838a0e483d9a8a5a2e479281dd6ba8a32a474f2cbb5161a007d059303a22ab12905e063b00298e0eda34a31098b6a2d7ead0c312771f4b457fa2ec159bcf80b1d6cbb2b95f19d0621be60af1f9147954d57a6aed72b58b2cdba48c20432722dd0c7cc87f080f23dbefd72b10adb5dec1e545be6efa40ec41f15f6315fc9b97c723490e6062511ed5810a971284cd649ef540f6801ed1879ea71e0ebb2eb820e40ad67524e74949d03be085329e92d96ecea737ff89a586d7b598d4906907c0c49287dd516821ec374443ced3f33842bdf1a3f600602f4f9aa5aea3a79a58728ae5902fa091da16d6c77967415988938a63e304c86c4701d0de48f1f626cc25520a23a339a2f011f44fb11442af302f56af9429b0a0c4a4489b0dfa9728f61ef279f74796adf511fea96138815305178ca22644fb423c8b6fd96feb152839780e9a8f4460e06449c11f3afd013ec604a01e24e904a7984b0281d78d20b6bd2b8048b936d786c4aa7cec82390223cb81ffbad18dacc73b19520996231a0b3d97c82370f62acc2aae30d0f10ea1337ee10d212d48ba9b06ec950692448ca8eb5e999faff07e0cb2f4532cbc25813ec604a01e24e904a7984b0281d78d20b6bd2b8048b936d786c4aa7cec8239015305178ca22644fb423c8b6fd96feb152839780e9a8f4460e06449c11f3afd0038e1b5339850e19e2fc7911af89d082259638b3aae10185dcd6bb52e07137e71540891272c824fb1e2c56ee54b95bf183eb29672173cfd84c803e1d7d20b17d112929cb51eb80593e6c023a95db602854a404133b0f58e87eaf657b0856be6d17f387f77a193286c0314b2c8fd9175b094b6625b3252ecb07c329c8d86514f31337ee10d212d48ba9b06ec950692448ca8eb5e999faff07e0cb2f4532cbc258223cb81ffbad18dacc73b19520996231a0b3d97c82370f62acc2aae30d0f10ea13ec604a01e24e904a7984b0281d78d20b6bd2b8048b936d786c4aa7cec8239015305178ca22644fb423c8b6fd96feb152839780e9a8f4460e06449c11f3afd03868f1fc4154ada4d89d01031f989ca739845260c59a5d76fa0a76fd12a885f613dddc3bc414dca0d05c78f14722bcf01b1794b46a71a8244d426d21300fe75a2905530de72e0fcf19466e4164a45f14cf5e3fd54aa79e63273aec686f437f1800175eb4e4d6a310e556df25c110186e8e912a63a38ce9505f37a2db71785448384ec62a428d3b92c23f95ed860ecd81f89b88c6f437ef76055ace077faf2c3824e2c7cef01cf1a6438c74d27e45fb4d9e21c8c8a3e6fc4363ea64ef922ae27217f387f77a193286c0314b2c8fd9175b094b6625b3252ecb07c329c8d86514f3112929cb51eb80593e6c023a95db602854a404133b0f58e87eaf657b0856be6d12f040c501ba43b57ea6f6eb3d2e877608e34cd16194c358aa96a6f6f3e297130f67e159915255f945b2e7ee050b70f915abcb465ab4202542c64ab1f528f09507d0e40e121f1f4e8986f7a480f5a0b08021963f96fe62fbe20ae41eda1286ec214bcdb4b9e59391751655c2a4bed6d2ddcdd3f9573624b7a467ab2506a94c741337ee10d212d48ba9b06ec950692448ca8eb5e999faff07e0cb2f4532cbc258223cb81ffbad18dacc73b19520996231a0b3d97c82370f62acc2aae30d0f10ea13ec604a01e24e904a7984b0281d78d20b6bd2b8048b936d786c4aa7cec8239015305178ca22644fb423c8b6fd96feb152839780e9a8f4460e06449c11f3afd00f67e159915255f945b2e7ee050b70f915abcb465ab4202542c64ab1f528f09512f040c501ba43b57ea6f6eb3d2e877608e34cd16194c358aa96a6f6f3e2971307d0e40e121f1f4e8986f7a480f5a0b08021963f96fe62fbe20ae41eda1286ec214bcdb4b9e59391751655c2a4bed6d2ddcdd3f9573624b7a467ab2506a94c74223cb81ffbad18dacc73b19520996231a0b3d97c82370f62acc2aae30d0f10ea1337ee10d212d48ba9b06ec950692448ca8eb5e999faff07e0cb2f4532cbc25813ec604a01e24e904a7984b0281d78d20b6bd2b8048b936d786c4aa7cec8239015305178ca22644fb423c8b6fd96feb152839780e9a8f4460e06449c11f3afd00837e1a9b0b428e63400481beaee9e5612ba535afb2ddee2612f0dbd343c23fe3372ebdfbea8ce399b737a865eacee23a5001068cdbdb38d21720e3ebe8cbbaf290df54e88e32cef331ddbd06752ed212279984ccd4574beffd4161812cddafd000ebc74432185f0cb7f7196be618a623b75d1ec20ef12f4869e792bcdedf86328d8c0eef6e44ce7147cd48993a9db894e097469267715e47a641c92706499d9227a46d7526d8822a0c80982e3c39c2eacfa22f2063459c0c64a2431e9b39a4f1ddbdde635dd1d29298e4fecd5d5ec057b71b6435eb0e5073accddeee9fa79890b40d3dc962795b6d50efd7a4fde8b7de27db3f58f83a2ac4ba5b154f6c159d73421652f80dfa1c471acc003a4e13536ab5fd0ea76b20c092e8986c28ff83b721f86ab10cb0b24dad0ee3be3217cc79d764fcaa83178cd9076b5b3fbf66834f4214bcdb4b9e59391751655c2a4bed6d2ddcdd3f9573624b7a467ab2506a94c7407d0e40e121f1f4e8986f7a480f5a0b08021963f96fe62fbe20ae41eda1286ec319abe9b685d329b315c1c7e71a7b703cf7f2b1517c6ca4a2a7460d30423cc56260fc33950306a005105c0d9bc887de9f26676d2a9f45f06b26f6356e74ef0621dbeb5b85635924604eced52f3004f0ebf7f13424a460dc509ac44ae5efde0c70b5dfc0a75cf2099f9b0601432b428749e7056f6a3ee79ee7cc64a9581bdf2992a08fa239afb09c2a988c51112da46edfdfbe0294838a0e483d9a8a5a2e479281dd6ba8a32a474f2cbb5161a007d059303a22ab12905e063b00298e0eda34a31098b6a2d7ead0c312771f4b457fa2ec159bcf80b1d6cbb2b95f19d0621be60af1f9147954d57a6aed72b58b2cdba48c20432722dd0c7cc87f080f23dbefd72b100000000000000c800000000000000390000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e00000000000000060000000000000001000000000000000000000000000000205a8a6d6822d757b39053f2d696b440911b98fb855bd584870549e7ded4c8f784000000000000000100000000000000010000000000000020ea132e6ad465bc3d576d24943e8eb110cbbe9e0822e43ab2b485cff78cfe7bbf0000000000000001000000000000000100000000000000206402373ddcb71c9fa2bfe1d2d9097bfb1e67c3a16c2603e6850eedece20f804700000000000000010000000000000000000000000000002093496aa9b95cdfb66da9c0d5bc5df817484a2a333e9349baecc93bd74a2ca4730000000000000001000000000000000000000000000000209fbca920ee0c87a956f99c4f1362a800f24be48892fb636d69c31e2a28f6ac89000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000003900000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000000000000000000020b9754dbc7d8d3eefeff2097a536bf8392001674a00a2100b0f5362195773d33800000000000000010000000000000001000000000000002087acc052c4befcbc863390a53bc9fe76ddf39509151f111da33e34eefa9c20bb000000000000000100000000000000010000000000000020ec80243d3ec903cb562c8eacb603f6c834430b23f15d562812829d19ab4c355c0000000000000001000000000000000000000000000000200c0b006e9ce5ab8dee54461051bb96c286fd71b34dc6edc2cc81ccb3100d316500000000000000010000000000000000000000000000002009d96f34c0d0d0c579558695e2590b6b8a00dc82f66b0ed035313048e74ae7cb000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000039000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000000000000000000201434b750fa4c79a6abbb555e49c6de275c5917f1a7745ce0f094cc6f45451d50000000000000000100000000000000010000000000000020e25b16e92ce565166fe90f1c3edb66f7f7a147fe1eb50d049a44d69786c76df90000000000000001000000000000000100000000000000208e2274770ab1400a8d4a14228b5b83fbbc2f8b567f0d93bae220f05170b20030000000000000000100000000000000000000000000000020a724c8ade8149e1cc611772680cb6d18385ad3f0e4e5bb60e4780827cedd136c0000000000000001000000000000000000000000000000209e4aa536330b2d7a31d018a0c66389dc79b3652f4ba9a731d52185c1d2764761000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000039000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020deed836067856071ea7a63330beedf7de96c65e2598acaca714fc1e308998f90000000000000000100000000000000010000000000000020f33d0621a9be5d0bc10fb9ba479d2c92b9442af4ac19c6bc422738323447ccbf0000000000000001000000000000000100000000000000204b85a596b27c62a80e804a5f440e38fd1798e192f2e4faf6c9d937e152644b4f000000000000000100000000000000000000000000000020488cdfd2909dddf32aafba620adfd844cf7f0e6eae4371d0ed616315e9b3d1e900000000000000010000000000000000000000000000002068e96971008bee2f90df118bffada99c074a0d2c49bfc1b99915b2dcf51048a20000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000003900000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000000000000000000202c3deceeaa53a4fd7cb0576d0c27372976b9f6f95317d05b21ccc995dfa7f60500000000000000010000000000000001000000000000002004eac4235e209d96bd17c310b61b8b64f2de73bff9eedc68f3d5329676b3529100000000000000010000000000000001000000000000002090d7b0bcec2a4257083160dd8ffbec8f4d56bdf900f2859e017373f837e3c55e0000000000000001000000000000000000000000000000200aeeef018d0928774997734b759241fff2f2f118735c3cc567f475600c93c6450000000000000001000000000000000000000000000000209c3cc5f2e03bbb6fbb6a00377debdbb0ff07e93db8e65b607e9ce577d2bff4060000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000260000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e000000000000000600000000000000010000000000000001000000000000002002264f66321999533318a66b630c922ed2c8afd79f75ad3ad7e2546988d2c229000000000000000100000000000000000000000000000020ce6cbec44c6750b87c769f2196e739261249641951d381617e8405bbf0202556000000000000000100000000000000000000000000000020e8b9aa258428d11be94220c2dd6dc9be6f7dfbf6c563495f34ac19fe54c7a02b000000000000000100000000000000010000000000000020acd5d62b97e6c33a02d4331e361fc284fac3d4751616f3f316c28ea08f63c5d000000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002600000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000100000000000000205e9bb0baae243491c7eb032dee99b7d36c82ec05b60e64eddd17c8be11cd6d5600000000000000010000000000000000000000000000002060fdc81936cb56fefc4ae765ed50a0407b33f19eff3eee870f07317cdb2ef330000000000000000100000000000000000000000000000020ed1cdc4693f53dc4db6ac19967a9854c6557cdba9dd1ef73aabe5680048340b900000000000000010000000000000001000000000000002039c719fa3f6fd86de45cdcbe116bc929d735098bfd57ba95c955727b3f86087f0000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000026000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000010000000000000020dc8aa5c3c55a97bdb7bd81ca0c78663eb6c0009ca983ed54c552867d176e3004000000000000000100000000000000000000000000000020a09e4a0cff4a2719030a0f657ce42c12a2cd4cc27b8cdfd21d1cbcf868b7190b00000000000000010000000000000000000000000000002057270586231d0130eb017de9b965c71be11d39fda49cb46ecc4fc4cf2baff38a000000000000000100000000000000010000000000000020a814a34f76af1733811481d105364da0ad5c6889b20ac62ec695d95bad6ccfa40000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000026000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000010000000000000020d9d44b09d08b8219649fee03bc1d8d6f144f9d725dc46d7d1cd32c7712d6cd30000000000000000100000000000000000000000000000020a9887501139d04ce4e8fa79b998c30f58c8d5ba78c911d4db7001a5436dc18fd0000000000000001000000000000000000000000000000208acf7b66bc86786435ec6708d199d5b065b2e43f560fdf2547c4cd28ea0352ab000000000000000100000000000000010000000000000020609f06fb0f917dd5aff48faaa7c9a26932b0164e4ceb2fcb49512a7126aed0240000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002600000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000010000000000000020884f313cc7a8412ea0712b8a5714e7da07720e79a0b4fd720bc61b0bf836cec400000000000000010000000000000000000000000000002032ce4870dfa2fb4284adb38aa43f49a3a3c28255497b93a85731134cd0486a2d000000000000000100000000000000000000000000000020d8d5941d890c32e24cc840a8ee7a932a739bad1dbbbe6985a9d3ea1a07252ddc000000000000000100000000000000010000000000000020581702be02dcae0d01501fe971bb01119d074a9fa43014b6ad4081e583d632e900000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000230000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000000000000000000020a9d3552f35a3b146b916ecafa15b906c5add1ec933ca9cba051f2f922830d2ae000000000000000100000000000000000000000000000020a1cf4fcf6b4c5272378721d94cae5230337db475b12639f089ecd14272235296000000000000000100000000000000010000000000000020bc7a78bb3c611e1b5f11dcbff023f3a085ed0bf8ecd7f9ece0c033dcabf6b6fc000000000000000100000000000000010000000000000020acd5d62b97e6c33a02d4331e361fc284fac3d4751616f3f316c28ea08f63c5d000000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002300000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000000000000000000020d546ef1f0e27c625cd1a42a9bd0e822dd1f8e2799bc24069109b0793320bbced0000000000000001000000000000000000000000000000207055df64fb4b8fa8d3782b1a47cb27ffdd974e7ce64f3d2e86c91905d32cf2e5000000000000000100000000000000010000000000000020b956db54d172694c1630b069cbb2710ecdaacf116a26dcabdef5e48e9f4e783c00000000000000010000000000000001000000000000002039c719fa3f6fd86de45cdcbe116bc929d735098bfd57ba95c955727b3f86087f0000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000023000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000000000000000000209200bfaa351e2967f2fc54764d972b7f8e00847d3f6e6fad04c1499eaaafa40d000000000000000100000000000000000000000000000020985c4188d8e7254f787ee9c79ad36055d80ccf27b4944a8eabbd5fe550b5c33500000000000000010000000000000001000000000000002087e4224ac05bf39143e5b2b8f31e6ff5c9879040db1e5c52a6074d35b63b457f000000000000000100000000000000010000000000000020a814a34f76af1733811481d105364da0ad5c6889b20ac62ec695d95bad6ccfa40000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000023000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f32938000000000000000600000000000000010000000000000000000000000000002072832eabee4d2394be19da019859394a2dece85dacf6dcf800f646033b065c04000000000000000100000000000000000000000000000020ca0664d700126a9fe07df61ee5ef4256a47f6538c636d54d6fa2789f4f9ed53d0000000000000001000000000000000100000000000000200998593abc6ae74ad4db1e3faee5a7426d83e0283ebfbba81490532b53fb3c67000000000000000100000000000000010000000000000020609f06fb0f917dd5aff48faaa7c9a26932b0164e4ceb2fcb49512a7126aed0240000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002300000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000000000000000000020c4cf0884a911747c8bdab3616e880562f218bb45ebca6b9b3466ee45050879e900000000000000010000000000000000000000000000002070b761bbe1a12b3e3924a1a4715dfefdbd10c1f0e149a866baff3973cb6aeffa000000000000000100000000000000010000000000000020d51dbff523abfb61534f3ecb97144bf53b03b4e9ba33067030fe9ec8101607cb000000000000000100000000000000010000000000000020581702be02dcae0d01501fe971bb01119d074a9fa43014b6ad4081e583d632e900000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000010000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000000000000000000020767a689909871821a06a373e9b587cc568cea87792317f5b3abb5ddd9ca6c359000000000000000100000000000000010000000000000020634594a54a3ecf1f4589730560dd9d0b8bc9e1561285bbfee3748d98ea0da35f0000000000000001000000000000000100000000000000209976a44019a2cc25e24d8e0128101ba53e738bdd0bad7d83caec1a8da22b1500000000000000000100000000000000010000000000000020407e1d016b2156134625c6c0acace3fca412163392f1c4920830c79723de997b000000000000000100000000000000010000000000000020659b6b070f44812ca2ffc215c67485587dd0d144e05eb3647148b4f5ca7360120000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000000100000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000000000000000000020756e52a4d940aed4b19471722db1b0f36cb3a58e6645651ae95985d0859986fe000000000000000100000000000000010000000000000020185f7f0d727176797003911a517f775becf44208e97882249031521efd13e60200000000000000010000000000000001000000000000002061c5b4eb1c0a7e74093fb022c5f5951fb2c504423b1f2e8e1f5cb5c30c6896090000000000000001000000000000000100000000000000204bc065f3dd3e3b30a0dac92ed91cf22f8259a480aa87d1c980b53b9a86e52a01000000000000000100000000000000010000000000000020dbce0776e37eb7c2a9e60b3254ce5ea6bed0db83c8c2e6b120494c0d9ed2a76b000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f0000000000000001000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000000000000000000206a21cf8dad19b95d6976b80a0ea46f71e5acaeb0d7ce0c952c612cb0e1b39b50000000000000000100000000000000010000000000000020038abde83aa667d0593b65b0be784caf2a567a1f56f609be7c79d4a4eca6556000000000000000010000000000000001000000000000002098c6a10d6e69554c9a66612e611bde1613925c85c294eac9ae4153c688311745000000000000000100000000000000010000000000000020a4de7176464be9124785e24d63c211255e653cd53798f2b73611e5f15feef7c70000000000000001000000000000000100000000000000207e13fb6690e345dd8bdf6ed863b9142988ca740ed6091c9fae658b221f7d7334000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a0000000000000001000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f3293800000000000000060000000000000001000000000000000000000000000000208254de19a26a51e2c3efe2de447c330663d42d71497f66d76cbae45a84e24a4c000000000000000100000000000000010000000000000020128769e0198c6ed1e41b6f18e1416c5d8447b78da326db64eb3a16e5ab5c7abc0000000000000001000000000000000100000000000000209ee50eb11a3de3483219cd22981a0f0b1d7086e1372d0840adab511808b3142a000000000000000100000000000000010000000000000020d2ac9a6c10a81d256c41bc67e07527d5a36e5dc54a2c6b984bb939fbc8ccd413000000000000000100000000000000010000000000000020cc3aa606fdcbf96592df9e3ecf28c535384ef37bff659d91d2f5982a3a391cb0000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000000100000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000000000000000000020205ab1166cdd5236fd2fc0f67bc609abb7292e61bd1a7c4785cc1b331f05a72f000000000000000100000000000000010000000000000020104351b77693ba3c1b45c85533542bc6dbd5726b5cf5447c12b9f193d2931fca000000000000000100000000000000010000000000000020e98f654c7d4a4d72873302de6fc89a06a256de8b10b07b607e786bfeb6213059000000000000000100000000000000010000000000000020482529a81b98175b81ad742dd6e90b5edefabf8d4cb4e27a6d7438b3191f6bad000000000000000100000000000000010000000000000020af9f96d3edd125bc1e0a105b9ffdc8e3024dc69325a78b2a02611964156a8e7a000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b9272000000000000001f0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000000000000000000020d8fd6c31b297b06ec8cedef4e547fc71427987a2c64e406b71148ddd42bb420a000000000000000100000000000000000000000000000020a6a1702db35b748e42f0f110ec40716f747145613b2b25986a5c3dc74e1ab13a000000000000000100000000000000000000000000000020ab170dad02da8e5a4c268e132c454adc4b6729b907eb3b0647e0b75ba06ca1ae000000000000000100000000000000000000000000000020261c2de001295b8ae6db8a3110d2d193b80167fee59f8f542a00ce1709747a6900000000000000010000000000000000000000000000002028d0668b3b0bb626ddb7371edbb5222936f68264e2cfb9376038323928d12a950000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000001f00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000205e6599843a8bfbe75ddeb3d418b0d88fc52aa4be4edbcf3d696e60c3f106e1080000000000000001000000000000000000000000000000203a2146e92a3ad3706b36813e4c45136f975811c6589e6331024a956042e7768c00000000000000010000000000000000000000000000002024299b0256071ee4c8943b75440fdb14cb0a87a9d470ca0d23930e470c29fd2d00000000000000010000000000000000000000000000002068af7e3f604105e672bb008f7f6497a71b4230ffaedefc6e201e3a965f80aad9000000000000000100000000000000000000000000000020d7f7d11996573b5da0d2cbe7d58b7d9ee40d6b31bbfd992e1387dae096d31597000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f000000000000001f000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f299941856000000000000000600000000000000010000000000000000000000000000002036561d9f344965bc8216ec0e2d9880e53598efc303d646a26e1a4dd53648983f000000000000000100000000000000000000000000000020d556e53e89946cc6a63053d2f237bd42df808fd51872fe3a16ac4cf4f89b865e0000000000000001000000000000000000000000000000201f0f92e1ba9dfc9c805ddaed879861bdc05c3a78b978e8bb3a8c041349d557fb0000000000000001000000000000000000000000000000202f82c0c1a186d9e1264fb0ac164a09274cdc7fa84262a440da9649a8aa36aaef000000000000000100000000000000000000000000000020824ce8426988565f955f44ee03d626fea805a15ec4db70b129a69a2d7b15a5aa000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a000000000000001f000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020183d0ffee9a19383e2806b2c6ed73c2eb138ef696f30de1a14a5afdab1d16abd0000000000000001000000000000000000000000000000207d27cce8e7d4819cb9c3a6e141c2d34d37acb8e1fc1075a3bb2d20b8408e984c0000000000000001000000000000000000000000000000208e9ca24717ee2452a64953880cd16ce2ed80e0ab655a248e3a0d70cb8d9ef4b8000000000000000100000000000000000000000000000020cbb94a1fa90daec34851502087bc06a9b8934f9e2e87d1242484cea77e968a42000000000000000100000000000000000000000000000020d488fb112c8e7e22dfab501043651ee3017cc449d7e2043156d45aaf96580343000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000001f00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f000000000000000600000000000000010000000000000000000000000000002072fee7ed27465e7307ca816750847f68b589444b0d01a065a5f23b352818d5b10000000000000001000000000000000000000000000000202671dd30be892f7113a73cf7f3a8445d53ddc40a8e9973ee587af2a0c1606cb80000000000000001000000000000000000000000000000201a61d9687a39c69fc39cbb583e8569c27f226321d4438d1f17092925ea3cf032000000000000000100000000000000000000000000000020c1e67f4fe465546990e3ad91e731dd95b1c88152d8ecc54d60d94cbfdca528650000000000000001000000000000000000000000000000200b1317ae38b570b4c049c419190fae276bb0ef81fc42fd65f1a137ebd541d9ae000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b9272000000000000003c0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000010000000000000020218082b41cfa41d4c64ce9224ed3833644389533fd9a858bc3f817ad52382529000000000000000100000000000000010000000000000020bcf05d3c5eb71fed288eb4b419a188c8860206b533025c802ed5cd504e55c1b00000000000000001000000000000000000000000000000207a1b3b2568d13a2eef371f9a6406e1e5ea8ea67cf4f7c3e9e841cfc385002de400000000000000010000000000000000000000000000002093496aa9b95cdfb66da9c0d5bc5df817484a2a333e9349baecc93bd74a2ca4730000000000000001000000000000000000000000000000209fbca920ee0c87a956f99c4f1362a800f24be48892fb636d69c31e2a28f6ac89000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000003c00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000100000000000000203a3eb56fb5169a0d4af4df327ff0e4fc2a92b36d4502ecf07be5de233a419fcd0000000000000001000000000000000100000000000000208b25ecd6ff537916132b0a2c9828a23713e826894f39c2af049fb06a056e2443000000000000000100000000000000000000000000000020ca4326b0ac9a40f7962046fbc2ae4a247b71dee20ff8514aa46bc9a7f710d2460000000000000001000000000000000000000000000000200c0b006e9ce5ab8dee54461051bb96c286fd71b34dc6edc2cc81ccb3100d316500000000000000010000000000000000000000000000002009d96f34c0d0d0c579558695e2590b6b8a00dc82f66b0ed035313048e74ae7cb000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc000000000000003c000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f299941856000000000000000600000000000000010000000000000001000000000000002047daa61a055f328185aaf797494e69028c4580769c701d9ced9ee62c93bb0cd900000000000000010000000000000001000000000000002070475275547a4e19ad5111cbc2761f67ebbb11db7b19d3e5da5b0a1829c4ec5a0000000000000001000000000000000000000000000000205863974ae834cb6f7cdda3179a5eb9db26199ae6501319daa7e9350565a01a52000000000000000100000000000000000000000000000020a724c8ade8149e1cc611772680cb6d18385ad3f0e4e5bb60e4780827cedd136c0000000000000001000000000000000000000000000000209e4aa536330b2d7a31d018a0c66389dc79b3652f4ba9a731d52185c1d2764761000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e000000000000003c000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000010000000000000020e7e880c0271d8bbb762151274053eb5387087ee11edf17aa5c2a62d86b1240de0000000000000001000000000000000100000000000000200bbb509da79f5f8b438035f866b33e7d35ea0d24c196577e58c711e996e9d67a000000000000000100000000000000000000000000000020e0d59165174c1b01a1778b0c00ea048f351711781eb9b7905bac635125041c7c000000000000000100000000000000000000000000000020488cdfd2909dddf32aafba620adfd844cf7f0e6eae4371d0ed616315e9b3d1e900000000000000010000000000000000000000000000002068e96971008bee2f90df118bffada99c074a0d2c49bfc1b99915b2dcf51048a20000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000003c00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f000000000000000600000000000000010000000000000001000000000000002074d82bac807ca26403177015863222205cef6dec7e0c4a7d3ac57d28e79987c6000000000000000100000000000000010000000000000020b2bd6c7bce44e8cb1dd2c1ada3f46a4ef84aa70a4f6d582427f82789c25091290000000000000001000000000000000000000000000000207307458ebfa1b463080bdf0c8b226e68af95d3ce03c81f574dc53886fc92c5510000000000000001000000000000000000000000000000200aeeef018d0928774997734b759241fff2f2f118735c3cc567f475600c93c6450000000000000001000000000000000000000000000000209c3cc5f2e03bbb6fbb6a00377debdbb0ff07e93db8e65b607e9ce577d2bff4060000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f8000000000000001f0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000000000000000000020d8fd6c31b297b06ec8cedef4e547fc71427987a2c64e406b71148ddd42bb420a000000000000000100000000000000000000000000000020a6a1702db35b748e42f0f110ec40716f747145613b2b25986a5c3dc74e1ab13a000000000000000100000000000000000000000000000020ab170dad02da8e5a4c268e132c454adc4b6729b907eb3b0647e0b75ba06ca1ae000000000000000100000000000000000000000000000020261c2de001295b8ae6db8a3110d2d193b80167fee59f8f542a00ce1709747a6900000000000000010000000000000000000000000000002028d0668b3b0bb626ddb7371edbb5222936f68264e2cfb9376038323928d12a950000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000001f00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000205e6599843a8bfbe75ddeb3d418b0d88fc52aa4be4edbcf3d696e60c3f106e1080000000000000001000000000000000000000000000000203a2146e92a3ad3706b36813e4c45136f975811c6589e6331024a956042e7768c00000000000000010000000000000000000000000000002024299b0256071ee4c8943b75440fdb14cb0a87a9d470ca0d23930e470c29fd2d00000000000000010000000000000000000000000000002068af7e3f604105e672bb008f7f6497a71b4230ffaedefc6e201e3a965f80aad9000000000000000100000000000000000000000000000020d7f7d11996573b5da0d2cbe7d58b7d9ee40d6b31bbfd992e1387dae096d31597000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f000000000000001f000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f299941856000000000000000600000000000000010000000000000000000000000000002036561d9f344965bc8216ec0e2d9880e53598efc303d646a26e1a4dd53648983f000000000000000100000000000000000000000000000020d556e53e89946cc6a63053d2f237bd42df808fd51872fe3a16ac4cf4f89b865e0000000000000001000000000000000000000000000000201f0f92e1ba9dfc9c805ddaed879861bdc05c3a78b978e8bb3a8c041349d557fb0000000000000001000000000000000000000000000000202f82c0c1a186d9e1264fb0ac164a09274cdc7fa84262a440da9649a8aa36aaef000000000000000100000000000000000000000000000020824ce8426988565f955f44ee03d626fea805a15ec4db70b129a69a2d7b15a5aa000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a000000000000001f000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020183d0ffee9a19383e2806b2c6ed73c2eb138ef696f30de1a14a5afdab1d16abd0000000000000001000000000000000000000000000000207d27cce8e7d4819cb9c3a6e141c2d34d37acb8e1fc1075a3bb2d20b8408e984c0000000000000001000000000000000000000000000000208e9ca24717ee2452a64953880cd16ce2ed80e0ab655a248e3a0d70cb8d9ef4b8000000000000000100000000000000000000000000000020cbb94a1fa90daec34851502087bc06a9b8934f9e2e87d1242484cea77e968a42000000000000000100000000000000000000000000000020d488fb112c8e7e22dfab501043651ee3017cc449d7e2043156d45aaf96580343000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000001f00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f000000000000000600000000000000010000000000000000000000000000002072fee7ed27465e7307ca816750847f68b589444b0d01a065a5f23b352818d5b10000000000000001000000000000000000000000000000202671dd30be892f7113a73cf7f3a8445d53ddc40a8e9973ee587af2a0c1606cb80000000000000001000000000000000000000000000000201a61d9687a39c69fc39cbb583e8569c27f226321d4438d1f17092925ea3cf032000000000000000100000000000000000000000000000020c1e67f4fe465546990e3ad91e731dd95b1c88152d8ecc54d60d94cbfdca528650000000000000001000000000000000000000000000000200b1317ae38b570b4c049c419190fae276bb0ef81fc42fd65f1a137ebd541d9ae000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b927200000000000000100000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e00000000000000060000000000000001000000000000000100000000000000209058d03acc19a8bc5340a3803edc6e374875e4317924b7874af789b8309248dc000000000000000100000000000000010000000000000020516f64bfc51bc004bb05716451c926f5dba83d635199714f6c0eadd58d93efd60000000000000001000000000000000100000000000000200c9de449bb53c4d3ff3de2e3de5583618b02e5f4d842cb51120fcb0705bce2050000000000000001000000000000000100000000000000201ec85a72ab785b7c48cb10710fca42c4de34b9d99094486a7cb14fb0a459812f00000000000000010000000000000000000000000000002028d0668b3b0bb626ddb7371edbb5222936f68264e2cfb9376038323928d12a950000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000001000000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000100000000000000209422eaba572d0230b9db8deeee6952d3bda2f4db8004c7c723b03d7a19252e2100000000000000010000000000000001000000000000002064692406dac2faece78ae6e7c3c9c555173148e15ceda94cc162ed9ce7b88ac50000000000000001000000000000000100000000000000208331eff39080c5e921f7c00619019db156a8598c1869a62be83587b5322ba54700000000000000010000000000000001000000000000002048060202f26e09afa01220fe2b845539f7f28e73ab6b16690996cf8c05046244000000000000000100000000000000000000000000000020d7f7d11996573b5da0d2cbe7d58b7d9ee40d6b31bbfd992e1387dae096d31597000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f0000000000000010000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000100000000000000201629ca3ff4a2ed91bb100ec345fe010146b9f4f0be75a77509ae16513dd4fe0d0000000000000001000000000000000100000000000000204b86bc2c3198c3bf594b472abd611a3235fa1a607f9fb736f1f08f1671b4730000000000000000010000000000000001000000000000002012512ccbf3baa32e59f7532d63c9d35c7b894cb9479c9edcbe5e610d613f92570000000000000001000000000000000100000000000000200aed2038bedd56c46aa92e044dbb04e9d6d047ddb3819c31056472a336358fb2000000000000000100000000000000000000000000000020824ce8426988565f955f44ee03d626fea805a15ec4db70b129a69a2d7b15a5aa000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a0000000000000010000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f3293800000000000000060000000000000001000000000000000100000000000000209a329f0413ac474176ecca4647f69df6c51fec62d899de69a02cce13c6c0e5000000000000000001000000000000000100000000000000200f549d309e2c4517d858da3f696bb6db8dd3ea8de89d64df7ef3b933546e88c2000000000000000100000000000000010000000000000020ecc01f0a50e51a5220ea92b3ffdb280ab65eb082fd2b9abb9493aba6e6bd8af00000000000000001000000000000000100000000000000204e291298e718e4215dade20a34700b89a0336d8bede04b427e3792a09b3a48cb000000000000000100000000000000000000000000000020d488fb112c8e7e22dfab501043651ee3017cc449d7e2043156d45aaf96580343000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000001000000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000100000000000000206c5c84d1c336ce7447c1cc239aa4e8667be8aec4a418e03dd409ed420dd75cc8000000000000000100000000000000010000000000000020af0ebc5c462c6289fc5ac745cee7ffa729b715fb9728148bdc7beb06509bb162000000000000000100000000000000010000000000000020a25d9f27f69d1fa72e34576a35a754dbd543ba6fc98029a6c29b58d62a739c3d000000000000000100000000000000010000000000000020b4bfefcc77fb1c06d34fae0ff743553b71633d0f2755a6c510a2a7a843af6fbe0000000000000001000000000000000000000000000000200b1317ae38b570b4c049c419190fae276bb0ef81fc42fd65f1a137ebd541d9ae000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b927200000000000000110000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e00000000000000060000000000000001000000000000000000000000000000208cb54734c4d7f5b9b1c960092a47e177b16eb9ff003c498efa1d9780d33c3d78000000000000000100000000000000010000000000000020516f64bfc51bc004bb05716451c926f5dba83d635199714f6c0eadd58d93efd60000000000000001000000000000000100000000000000200c9de449bb53c4d3ff3de2e3de5583618b02e5f4d842cb51120fcb0705bce2050000000000000001000000000000000100000000000000201ec85a72ab785b7c48cb10710fca42c4de34b9d99094486a7cb14fb0a459812f00000000000000010000000000000000000000000000002028d0668b3b0bb626ddb7371edbb5222936f68264e2cfb9376038323928d12a950000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000001100000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000201e990e27f0d7976bf2adbd60e20384da0125b76e2885a96aa707bcb054108b0d00000000000000010000000000000001000000000000002064692406dac2faece78ae6e7c3c9c555173148e15ceda94cc162ed9ce7b88ac50000000000000001000000000000000100000000000000208331eff39080c5e921f7c00619019db156a8598c1869a62be83587b5322ba54700000000000000010000000000000001000000000000002048060202f26e09afa01220fe2b845539f7f28e73ab6b16690996cf8c05046244000000000000000100000000000000000000000000000020d7f7d11996573b5da0d2cbe7d58b7d9ee40d6b31bbfd992e1387dae096d31597000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f0000000000000011000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000000000000000000200d73c1dad4ac3ed5fb3b2aac1d8c53d8e962a01cdb8353c33eea4fcef6ff28950000000000000001000000000000000100000000000000204b86bc2c3198c3bf594b472abd611a3235fa1a607f9fb736f1f08f1671b4730000000000000000010000000000000001000000000000002012512ccbf3baa32e59f7532d63c9d35c7b894cb9479c9edcbe5e610d613f92570000000000000001000000000000000100000000000000200aed2038bedd56c46aa92e044dbb04e9d6d047ddb3819c31056472a336358fb2000000000000000100000000000000000000000000000020824ce8426988565f955f44ee03d626fea805a15ec4db70b129a69a2d7b15a5aa000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a0000000000000011000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f32938000000000000000600000000000000010000000000000000000000000000002040371248d7160cc6c882cd07b45bab36da53eae866a0cdca536d440c12984ff30000000000000001000000000000000100000000000000200f549d309e2c4517d858da3f696bb6db8dd3ea8de89d64df7ef3b933546e88c2000000000000000100000000000000010000000000000020ecc01f0a50e51a5220ea92b3ffdb280ab65eb082fd2b9abb9493aba6e6bd8af00000000000000001000000000000000100000000000000204e291298e718e4215dade20a34700b89a0336d8bede04b427e3792a09b3a48cb000000000000000100000000000000000000000000000020d488fb112c8e7e22dfab501043651ee3017cc449d7e2043156d45aaf96580343000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000001100000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f000000000000000600000000000000010000000000000000000000000000002062e2d6891fe340ec212625ae8767e24e5155c550dc02ab23cc028b00636fcc66000000000000000100000000000000010000000000000020af0ebc5c462c6289fc5ac745cee7ffa729b715fb9728148bdc7beb06509bb162000000000000000100000000000000010000000000000020a25d9f27f69d1fa72e34576a35a754dbd543ba6fc98029a6c29b58d62a739c3d000000000000000100000000000000010000000000000020b4bfefcc77fb1c06d34fae0ff743553b71633d0f2755a6c510a2a7a843af6fbe0000000000000001000000000000000000000000000000200b1317ae38b570b4c049c419190fae276bb0ef81fc42fd65f1a137ebd541d9ae000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b9272000000000000001e0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000010000000000000020ba15f8caa378deb827f35ab84ee3c8ef16117ea97e57e0f20b14ae88d236b6ff000000000000000100000000000000000000000000000020a6a1702db35b748e42f0f110ec40716f747145613b2b25986a5c3dc74e1ab13a000000000000000100000000000000000000000000000020ab170dad02da8e5a4c268e132c454adc4b6729b907eb3b0647e0b75ba06ca1ae000000000000000100000000000000000000000000000020261c2de001295b8ae6db8a3110d2d193b80167fee59f8f542a00ce1709747a6900000000000000010000000000000000000000000000002028d0668b3b0bb626ddb7371edbb5222936f68264e2cfb9376038323928d12a950000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000001e00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d6000000000000000600000000000000010000000000000001000000000000002085351021aea650c4597031fb7dc932b99054b360e97ca572bb6bece35ae11bdf0000000000000001000000000000000000000000000000203a2146e92a3ad3706b36813e4c45136f975811c6589e6331024a956042e7768c00000000000000010000000000000000000000000000002024299b0256071ee4c8943b75440fdb14cb0a87a9d470ca0d23930e470c29fd2d00000000000000010000000000000000000000000000002068af7e3f604105e672bb008f7f6497a71b4230ffaedefc6e201e3a965f80aad9000000000000000100000000000000000000000000000020d7f7d11996573b5da0d2cbe7d58b7d9ee40d6b31bbfd992e1387dae096d31597000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f000000000000001e000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000010000000000000020f821bc8956540d674f85944695ec2cdab831a2a389a2d11a3d7cb0e72d70c402000000000000000100000000000000000000000000000020d556e53e89946cc6a63053d2f237bd42df808fd51872fe3a16ac4cf4f89b865e0000000000000001000000000000000000000000000000201f0f92e1ba9dfc9c805ddaed879861bdc05c3a78b978e8bb3a8c041349d557fb0000000000000001000000000000000000000000000000202f82c0c1a186d9e1264fb0ac164a09274cdc7fa84262a440da9649a8aa36aaef000000000000000100000000000000000000000000000020824ce8426988565f955f44ee03d626fea805a15ec4db70b129a69a2d7b15a5aa000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a000000000000001e000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f32938000000000000000600000000000000010000000000000001000000000000002030d6b49905be576af2c974f08de40dec367587e3f626cc9bc52f04670a7003580000000000000001000000000000000000000000000000207d27cce8e7d4819cb9c3a6e141c2d34d37acb8e1fc1075a3bb2d20b8408e984c0000000000000001000000000000000000000000000000208e9ca24717ee2452a64953880cd16ce2ed80e0ab655a248e3a0d70cb8d9ef4b8000000000000000100000000000000000000000000000020cbb94a1fa90daec34851502087bc06a9b8934f9e2e87d1242484cea77e968a42000000000000000100000000000000000000000000000020d488fb112c8e7e22dfab501043651ee3017cc449d7e2043156d45aaf96580343000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000001e00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000100000000000000208f526051780fa2a3d112fdedee88168162589e00a4943c032e8b91bc4c53d9840000000000000001000000000000000000000000000000202671dd30be892f7113a73cf7f3a8445d53ddc40a8e9973ee587af2a0c1606cb80000000000000001000000000000000000000000000000201a61d9687a39c69fc39cbb583e8569c27f226321d4438d1f17092925ea3cf032000000000000000100000000000000000000000000000020c1e67f4fe465546990e3ad91e731dd95b1c88152d8ecc54d60d94cbfdca528650000000000000001000000000000000000000000000000200b1317ae38b570b4c049c419190fae276bb0ef81fc42fd65f1a137ebd541d9ae000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b927200000000000000090000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000000000000000000020de69d45a7cfdd721b028a24fe71015f76f5aa7a273602588540d7177b2032e810000000000000001000000000000000100000000000000203b055f5ec21cdd2d321937c699cc5b005cfd392544e209343f6f4bc3609d50a8000000000000000100000000000000010000000000000020212011d70596d8f444a02b2551c63793bb6214725d0b1d4e2d024902a719d74d00000000000000010000000000000000000000000000002063b18099f915d818ff11dd06d2b4924e18e1b43d1a7d80c4018a6828759c3e2c000000000000000100000000000000010000000000000020659b6b070f44812ca2ffc215c67485587dd0d144e05eb3647148b4f5ca7360120000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000000900000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000208fb27fefef947575d8370fca7cbc77cc2ab56337c6ba1ef2b114401465fe10880000000000000001000000000000000100000000000000205c4181331efc246b6fd787984126b3c735f6b747840454826726ab672228df2000000000000000010000000000000001000000000000002008c5fc936786cf9d0af43c12be03cc772b25837622cd42f08df1c66e5e116a2a000000000000000100000000000000000000000000000020bd75800a626d45803e0ac76b5c093b70cab826c1e74d4cd0ce8e6c36106f95bc000000000000000100000000000000010000000000000020dbce0776e37eb7c2a9e60b3254ce5ea6bed0db83c8c2e6b120494c0d9ed2a76b000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f0000000000000009000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000000000000000000020572da483fb877b90672fbd6cd281dd1d8fc1e3519c9d5b6b2f16f62721a72816000000000000000100000000000000010000000000000020a7170bc0cfb0066ee2a6bc38ae323cf6155ef29a640796587131389fc7ddd196000000000000000100000000000000010000000000000020f87937c3d7f9ea889556bed01a00031a67448288e6ad311f669b4408eebc01ac000000000000000100000000000000000000000000000020842c39bed54d7be108142ed95a58b534014e03e9871691ec932be839f2294f4d0000000000000001000000000000000100000000000000207e13fb6690e345dd8bdf6ed863b9142988ca740ed6091c9fae658b221f7d7334000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a0000000000000009000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f3293800000000000000060000000000000001000000000000000000000000000000202a8823c954f6384a513c97041a12b9202fbc85be6b543238fa04ae9a70393fff00000000000000010000000000000001000000000000002076f0d827402b47129db7da8669550ecbc1c84eddedb8bef62b4d08efce600e37000000000000000100000000000000010000000000000020ad2c19c26d0488214886b03e7e4bc57d130a100d9e13ced4921d6472e2238a2e0000000000000001000000000000000000000000000000201de5bb3d887c07d54506473a20db02428ebc54d6a3c978c792d0e6f1f4de0511000000000000000100000000000000010000000000000020cc3aa606fdcbf96592df9e3ecf28c535384ef37bff659d91d2f5982a3a391cb0000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000000900000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000000000000000000020b266d01eb13c2bc656133dab42c1ec116ca3f28544f99eaba9cc7c89fe419fdd0000000000000001000000000000000100000000000000201df9ab42d54f8ea624eecc57fce828882c6b80c722d86bb88d11443ff87766af000000000000000100000000000000010000000000000020630f361882ada56a075e947b144639b306577494cfa2d14d2fd11f09586072a00000000000000001000000000000000000000000000000206e8232a0c61d237a50e6dcca4dcea8b407b71864d02b4c647447bc948ffe8ebc000000000000000100000000000000010000000000000020af9f96d3edd125bc1e0a105b9ffdc8e3024dc69325a78b2a02611964156a8e7a000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b9272000000000000001c0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000010000000000000020e3587c4b87cfa21fbef795afb84015f00eeec779982508e4e4777bb7c8c3e7ef00000000000000010000000000000001000000000000002012edb90efc6a65c82406e9e729c69705717bb9213763989a3e429db69b1fa1be000000000000000100000000000000000000000000000020ab170dad02da8e5a4c268e132c454adc4b6729b907eb3b0647e0b75ba06ca1ae000000000000000100000000000000000000000000000020261c2de001295b8ae6db8a3110d2d193b80167fee59f8f542a00ce1709747a6900000000000000010000000000000000000000000000002028d0668b3b0bb626ddb7371edbb5222936f68264e2cfb9376038323928d12a950000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000001c00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000010000000000000020cc15f3502bc1908d357811f4f0f1f25d88acdd0691457037a57c5191c683847b000000000000000100000000000000010000000000000020070faa4b0f39e22d43da05eaf01eaa74ae4dfa9cf3b4f146bc3076585fa9c02700000000000000010000000000000000000000000000002024299b0256071ee4c8943b75440fdb14cb0a87a9d470ca0d23930e470c29fd2d00000000000000010000000000000000000000000000002068af7e3f604105e672bb008f7f6497a71b4230ffaedefc6e201e3a965f80aad9000000000000000100000000000000000000000000000020d7f7d11996573b5da0d2cbe7d58b7d9ee40d6b31bbfd992e1387dae096d31597000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f000000000000001c000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000010000000000000020e45ea0ef92a87114b48b4dc2f56781fce286f690846172fedffd2cda9e29b6a50000000000000001000000000000000100000000000000201581a9112f15b5db73805221511d3b17bb0b44a8d5bdb5961d05b119e83069f80000000000000001000000000000000000000000000000201f0f92e1ba9dfc9c805ddaed879861bdc05c3a78b978e8bb3a8c041349d557fb0000000000000001000000000000000000000000000000202f82c0c1a186d9e1264fb0ac164a09274cdc7fa84262a440da9649a8aa36aaef000000000000000100000000000000000000000000000020824ce8426988565f955f44ee03d626fea805a15ec4db70b129a69a2d7b15a5aa000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a000000000000001c000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f32938000000000000000600000000000000010000000000000001000000000000002002bb23f385d33b1fdd83f3c47b2936586909c02ed6cfb9703e2e998321832e48000000000000000100000000000000010000000000000020ab7aae7bbf9e20bdeb1ab6bbe7a70c6cd858e5d76f9f05de9e38ec9f931a3ec50000000000000001000000000000000000000000000000208e9ca24717ee2452a64953880cd16ce2ed80e0ab655a248e3a0d70cb8d9ef4b8000000000000000100000000000000000000000000000020cbb94a1fa90daec34851502087bc06a9b8934f9e2e87d1242484cea77e968a42000000000000000100000000000000000000000000000020d488fb112c8e7e22dfab501043651ee3017cc449d7e2043156d45aaf96580343000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000001c00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000100000000000000200f375dbba5f3588b95d031e9297728953db05ef7da46e721b77d820ce428649a000000000000000100000000000000010000000000000020d5f15fb4972b5ea2159a542111a45a1ff217a413588328aa49a47ed613fc70570000000000000001000000000000000000000000000000201a61d9687a39c69fc39cbb583e8569c27f226321d4438d1f17092925ea3cf032000000000000000100000000000000000000000000000020c1e67f4fe465546990e3ad91e731dd95b1c88152d8ecc54d60d94cbfdca528650000000000000001000000000000000000000000000000200b1317ae38b570b4c049c419190fae276bb0ef81fc42fd65f1a137ebd541d9ae000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b9272000000000000003c0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000010000000000000020218082b41cfa41d4c64ce9224ed3833644389533fd9a858bc3f817ad52382529000000000000000100000000000000010000000000000020bcf05d3c5eb71fed288eb4b419a188c8860206b533025c802ed5cd504e55c1b00000000000000001000000000000000000000000000000207a1b3b2568d13a2eef371f9a6406e1e5ea8ea67cf4f7c3e9e841cfc385002de400000000000000010000000000000000000000000000002093496aa9b95cdfb66da9c0d5bc5df817484a2a333e9349baecc93bd74a2ca4730000000000000001000000000000000000000000000000209fbca920ee0c87a956f99c4f1362a800f24be48892fb636d69c31e2a28f6ac89000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000003c00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000100000000000000203a3eb56fb5169a0d4af4df327ff0e4fc2a92b36d4502ecf07be5de233a419fcd0000000000000001000000000000000100000000000000208b25ecd6ff537916132b0a2c9828a23713e826894f39c2af049fb06a056e2443000000000000000100000000000000000000000000000020ca4326b0ac9a40f7962046fbc2ae4a247b71dee20ff8514aa46bc9a7f710d2460000000000000001000000000000000000000000000000200c0b006e9ce5ab8dee54461051bb96c286fd71b34dc6edc2cc81ccb3100d316500000000000000010000000000000000000000000000002009d96f34c0d0d0c579558695e2590b6b8a00dc82f66b0ed035313048e74ae7cb000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc000000000000003c000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f299941856000000000000000600000000000000010000000000000001000000000000002047daa61a055f328185aaf797494e69028c4580769c701d9ced9ee62c93bb0cd900000000000000010000000000000001000000000000002070475275547a4e19ad5111cbc2761f67ebbb11db7b19d3e5da5b0a1829c4ec5a0000000000000001000000000000000000000000000000205863974ae834cb6f7cdda3179a5eb9db26199ae6501319daa7e9350565a01a52000000000000000100000000000000000000000000000020a724c8ade8149e1cc611772680cb6d18385ad3f0e4e5bb60e4780827cedd136c0000000000000001000000000000000000000000000000209e4aa536330b2d7a31d018a0c66389dc79b3652f4ba9a731d52185c1d2764761000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e000000000000003c000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000010000000000000020e7e880c0271d8bbb762151274053eb5387087ee11edf17aa5c2a62d86b1240de0000000000000001000000000000000100000000000000200bbb509da79f5f8b438035f866b33e7d35ea0d24c196577e58c711e996e9d67a000000000000000100000000000000000000000000000020e0d59165174c1b01a1778b0c00ea048f351711781eb9b7905bac635125041c7c000000000000000100000000000000000000000000000020488cdfd2909dddf32aafba620adfd844cf7f0e6eae4371d0ed616315e9b3d1e900000000000000010000000000000000000000000000002068e96971008bee2f90df118bffada99c074a0d2c49bfc1b99915b2dcf51048a20000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000003c00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f000000000000000600000000000000010000000000000001000000000000002074d82bac807ca26403177015863222205cef6dec7e0c4a7d3ac57d28e79987c6000000000000000100000000000000010000000000000020b2bd6c7bce44e8cb1dd2c1ada3f46a4ef84aa70a4f6d582427f82789c25091290000000000000001000000000000000000000000000000207307458ebfa1b463080bdf0c8b226e68af95d3ce03c81f574dc53886fc92c5510000000000000001000000000000000000000000000000200aeeef018d0928774997734b759241fff2f2f118735c3cc567f475600c93c6450000000000000001000000000000000000000000000000209c3cc5f2e03bbb6fbb6a00377debdbb0ff07e93db8e65b607e9ce577d2bff4060000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f8000000000000000a0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000010000000000000020fc983dd7daafc6f9bd09f56cfae3edef56984b36f007d57cca6deebaf9cb6b27000000000000000100000000000000000000000000000020f95f23851afcff04d1ad49b881508c3633308363c1babb0c2d30123584655b30000000000000000100000000000000010000000000000020212011d70596d8f444a02b2551c63793bb6214725d0b1d4e2d024902a719d74d00000000000000010000000000000000000000000000002063b18099f915d818ff11dd06d2b4924e18e1b43d1a7d80c4018a6828759c3e2c000000000000000100000000000000010000000000000020659b6b070f44812ca2ffc215c67485587dd0d144e05eb3647148b4f5ca7360120000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000000a00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000010000000000000020963ce7fa16a7bc2faf8b5a019fb2698e0bf100a32aad4b5a538b4dc1b308bbb6000000000000000100000000000000000000000000000020e13c705067783e7c197b6024479054eeb56690f491a37b0fd27a62af0a9483bb00000000000000010000000000000001000000000000002008c5fc936786cf9d0af43c12be03cc772b25837622cd42f08df1c66e5e116a2a000000000000000100000000000000000000000000000020bd75800a626d45803e0ac76b5c093b70cab826c1e74d4cd0ce8e6c36106f95bc000000000000000100000000000000010000000000000020dbce0776e37eb7c2a9e60b3254ce5ea6bed0db83c8c2e6b120494c0d9ed2a76b000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f000000000000000a000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f299941856000000000000000600000000000000010000000000000001000000000000002000e9a8116be3eaa04fd3a9b8fe498439df65050c6d2ba8297979c140197d72ee000000000000000100000000000000000000000000000020f79665195ed0ea8504d75eaff65e22a7a3deedec016d749801fc7edf8d55a3fe000000000000000100000000000000010000000000000020f87937c3d7f9ea889556bed01a00031a67448288e6ad311f669b4408eebc01ac000000000000000100000000000000000000000000000020842c39bed54d7be108142ed95a58b534014e03e9871691ec932be839f2294f4d0000000000000001000000000000000100000000000000207e13fb6690e345dd8bdf6ed863b9142988ca740ed6091c9fae658b221f7d7334000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a000000000000000a000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000010000000000000020b8271596523f0175c8f35996cef48923561a67284d14747b3a97002e7f568a50000000000000000100000000000000000000000000000020b35ae75cacfa782fb60ee04267aae26f074cefcea47f96b174716052e98d7657000000000000000100000000000000010000000000000020ad2c19c26d0488214886b03e7e4bc57d130a100d9e13ced4921d6472e2238a2e0000000000000001000000000000000000000000000000201de5bb3d887c07d54506473a20db02428ebc54d6a3c978c792d0e6f1f4de0511000000000000000100000000000000010000000000000020cc3aa606fdcbf96592df9e3ecf28c535384ef37bff659d91d2f5982a3a391cb0000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000000a00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000010000000000000020d1fb2c8ea549af99b4a3ecb033283f236df6907d524f78289927652d8c75ee710000000000000001000000000000000000000000000000208de78120231f2b5d2bd8a35ce33c53d3c7094f877ce43c2ba48f9fccc6e57305000000000000000100000000000000010000000000000020630f361882ada56a075e947b144639b306577494cfa2d14d2fd11f09586072a00000000000000001000000000000000000000000000000206e8232a0c61d237a50e6dcca4dcea8b407b71864d02b4c647447bc948ffe8ebc000000000000000100000000000000010000000000000020af9f96d3edd125bc1e0a105b9ffdc8e3024dc69325a78b2a02611964156a8e7a000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b9272000000000000001e0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000010000000000000020ba15f8caa378deb827f35ab84ee3c8ef16117ea97e57e0f20b14ae88d236b6ff000000000000000100000000000000000000000000000020a6a1702db35b748e42f0f110ec40716f747145613b2b25986a5c3dc74e1ab13a000000000000000100000000000000000000000000000020ab170dad02da8e5a4c268e132c454adc4b6729b907eb3b0647e0b75ba06ca1ae000000000000000100000000000000000000000000000020261c2de001295b8ae6db8a3110d2d193b80167fee59f8f542a00ce1709747a6900000000000000010000000000000000000000000000002028d0668b3b0bb626ddb7371edbb5222936f68264e2cfb9376038323928d12a950000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000001e00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d6000000000000000600000000000000010000000000000001000000000000002085351021aea650c4597031fb7dc932b99054b360e97ca572bb6bece35ae11bdf0000000000000001000000000000000000000000000000203a2146e92a3ad3706b36813e4c45136f975811c6589e6331024a956042e7768c00000000000000010000000000000000000000000000002024299b0256071ee4c8943b75440fdb14cb0a87a9d470ca0d23930e470c29fd2d00000000000000010000000000000000000000000000002068af7e3f604105e672bb008f7f6497a71b4230ffaedefc6e201e3a965f80aad9000000000000000100000000000000000000000000000020d7f7d11996573b5da0d2cbe7d58b7d9ee40d6b31bbfd992e1387dae096d31597000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f000000000000001e000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000010000000000000020f821bc8956540d674f85944695ec2cdab831a2a389a2d11a3d7cb0e72d70c402000000000000000100000000000000000000000000000020d556e53e89946cc6a63053d2f237bd42df808fd51872fe3a16ac4cf4f89b865e0000000000000001000000000000000000000000000000201f0f92e1ba9dfc9c805ddaed879861bdc05c3a78b978e8bb3a8c041349d557fb0000000000000001000000000000000000000000000000202f82c0c1a186d9e1264fb0ac164a09274cdc7fa84262a440da9649a8aa36aaef000000000000000100000000000000000000000000000020824ce8426988565f955f44ee03d626fea805a15ec4db70b129a69a2d7b15a5aa000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a000000000000001e000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f32938000000000000000600000000000000010000000000000001000000000000002030d6b49905be576af2c974f08de40dec367587e3f626cc9bc52f04670a7003580000000000000001000000000000000000000000000000207d27cce8e7d4819cb9c3a6e141c2d34d37acb8e1fc1075a3bb2d20b8408e984c0000000000000001000000000000000000000000000000208e9ca24717ee2452a64953880cd16ce2ed80e0ab655a248e3a0d70cb8d9ef4b8000000000000000100000000000000000000000000000020cbb94a1fa90daec34851502087bc06a9b8934f9e2e87d1242484cea77e968a42000000000000000100000000000000000000000000000020d488fb112c8e7e22dfab501043651ee3017cc449d7e2043156d45aaf96580343000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000001e00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000100000000000000208f526051780fa2a3d112fdedee88168162589e00a4943c032e8b91bc4c53d9840000000000000001000000000000000000000000000000202671dd30be892f7113a73cf7f3a8445d53ddc40a8e9973ee587af2a0c1606cb80000000000000001000000000000000000000000000000201a61d9687a39c69fc39cbb583e8569c27f226321d4438d1f17092925ea3cf032000000000000000100000000000000000000000000000020c1e67f4fe465546990e3ad91e731dd95b1c88152d8ecc54d60d94cbfdca528650000000000000001000000000000000000000000000000200b1317ae38b570b4c049c419190fae276bb0ef81fc42fd65f1a137ebd541d9ae000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b927200000000000000390000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e00000000000000060000000000000001000000000000000000000000000000205a8a6d6822d757b39053f2d696b440911b98fb855bd584870549e7ded4c8f784000000000000000100000000000000010000000000000020ea132e6ad465bc3d576d24943e8eb110cbbe9e0822e43ab2b485cff78cfe7bbf0000000000000001000000000000000100000000000000206402373ddcb71c9fa2bfe1d2d9097bfb1e67c3a16c2603e6850eedece20f804700000000000000010000000000000000000000000000002093496aa9b95cdfb66da9c0d5bc5df817484a2a333e9349baecc93bd74a2ca4730000000000000001000000000000000000000000000000209fbca920ee0c87a956f99c4f1362a800f24be48892fb636d69c31e2a28f6ac89000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000003900000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000000000000000000020b9754dbc7d8d3eefeff2097a536bf8392001674a00a2100b0f5362195773d33800000000000000010000000000000001000000000000002087acc052c4befcbc863390a53bc9fe76ddf39509151f111da33e34eefa9c20bb000000000000000100000000000000010000000000000020ec80243d3ec903cb562c8eacb603f6c834430b23f15d562812829d19ab4c355c0000000000000001000000000000000000000000000000200c0b006e9ce5ab8dee54461051bb96c286fd71b34dc6edc2cc81ccb3100d316500000000000000010000000000000000000000000000002009d96f34c0d0d0c579558695e2590b6b8a00dc82f66b0ed035313048e74ae7cb000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000039000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000000000000000000201434b750fa4c79a6abbb555e49c6de275c5917f1a7745ce0f094cc6f45451d50000000000000000100000000000000010000000000000020e25b16e92ce565166fe90f1c3edb66f7f7a147fe1eb50d049a44d69786c76df90000000000000001000000000000000100000000000000208e2274770ab1400a8d4a14228b5b83fbbc2f8b567f0d93bae220f05170b20030000000000000000100000000000000000000000000000020a724c8ade8149e1cc611772680cb6d18385ad3f0e4e5bb60e4780827cedd136c0000000000000001000000000000000000000000000000209e4aa536330b2d7a31d018a0c66389dc79b3652f4ba9a731d52185c1d2764761000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000039000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020deed836067856071ea7a63330beedf7de96c65e2598acaca714fc1e308998f90000000000000000100000000000000010000000000000020f33d0621a9be5d0bc10fb9ba479d2c92b9442af4ac19c6bc422738323447ccbf0000000000000001000000000000000100000000000000204b85a596b27c62a80e804a5f440e38fd1798e192f2e4faf6c9d937e152644b4f000000000000000100000000000000000000000000000020488cdfd2909dddf32aafba620adfd844cf7f0e6eae4371d0ed616315e9b3d1e900000000000000010000000000000000000000000000002068e96971008bee2f90df118bffada99c074a0d2c49bfc1b99915b2dcf51048a20000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000003900000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000000000000000000202c3deceeaa53a4fd7cb0576d0c27372976b9f6f95317d05b21ccc995dfa7f60500000000000000010000000000000001000000000000002004eac4235e209d96bd17c310b61b8b64f2de73bff9eedc68f3d5329676b3529100000000000000010000000000000001000000000000002090d7b0bcec2a4257083160dd8ffbec8f4d56bdf900f2859e017373f837e3c55e0000000000000001000000000000000000000000000000200aeeef018d0928774997734b759241fff2f2f118735c3cc567f475600c93c6450000000000000001000000000000000000000000000000209c3cc5f2e03bbb6fbb6a00377debdbb0ff07e93db8e65b607e9ce577d2bff4060000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000270000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e000000000000000600000000000000010000000000000000000000000000002082b4607dd2121124fe913ac73d6cfb7d23edb46c45a7c6c239e251b989b417ef000000000000000100000000000000000000000000000020ce6cbec44c6750b87c769f2196e739261249641951d381617e8405bbf0202556000000000000000100000000000000000000000000000020e8b9aa258428d11be94220c2dd6dc9be6f7dfbf6c563495f34ac19fe54c7a02b000000000000000100000000000000010000000000000020acd5d62b97e6c33a02d4331e361fc284fac3d4751616f3f316c28ea08f63c5d000000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002700000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000201aa4caab70d09b9a3b78992c54084bc326e346f6b26246624e3524dfbe50833200000000000000010000000000000000000000000000002060fdc81936cb56fefc4ae765ed50a0407b33f19eff3eee870f07317cdb2ef330000000000000000100000000000000000000000000000020ed1cdc4693f53dc4db6ac19967a9854c6557cdba9dd1ef73aabe5680048340b900000000000000010000000000000001000000000000002039c719fa3f6fd86de45cdcbe116bc929d735098bfd57ba95c955727b3f86087f0000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000027000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000000000000000000020f952df45f42865be94d69c9c7d21933b3e0ad8d0f63ee3775b0d79f285368945000000000000000100000000000000000000000000000020a09e4a0cff4a2719030a0f657ce42c12a2cd4cc27b8cdfd21d1cbcf868b7190b00000000000000010000000000000000000000000000002057270586231d0130eb017de9b965c71be11d39fda49cb46ecc4fc4cf2baff38a000000000000000100000000000000010000000000000020a814a34f76af1733811481d105364da0ad5c6889b20ac62ec695d95bad6ccfa40000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000027000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f32938000000000000000600000000000000010000000000000000000000000000002011bce33f5446454b228452a0d5cdaae5a71b16116ff1a05e37598b6a6304a5fb000000000000000100000000000000000000000000000020a9887501139d04ce4e8fa79b998c30f58c8d5ba78c911d4db7001a5436dc18fd0000000000000001000000000000000000000000000000208acf7b66bc86786435ec6708d199d5b065b2e43f560fdf2547c4cd28ea0352ab000000000000000100000000000000010000000000000020609f06fb0f917dd5aff48faaa7c9a26932b0164e4ceb2fcb49512a7126aed0240000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002700000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000000000000000000020e63e257a41621044bcf901c3ac3eb320a79baad09ea4c038e67f28ae28f16c3b00000000000000010000000000000000000000000000002032ce4870dfa2fb4284adb38aa43f49a3a3c28255497b93a85731134cd0486a2d000000000000000100000000000000000000000000000020d8d5941d890c32e24cc840a8ee7a932a739bad1dbbbe6985a9d3ea1a07252ddc000000000000000100000000000000010000000000000020581702be02dcae0d01501fe971bb01119d074a9fa43014b6ad4081e583d632e900000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000210000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e000000000000000600000000000000010000000000000000000000000000002066f812c8736a357f21436863a2199724f4144d4194234ebf039cc87839d8dde7000000000000000100000000000000010000000000000020af164518d52f638f864af4f96b17dfd11b54180898cac80dde9aad0b48c73071000000000000000100000000000000010000000000000020bc7a78bb3c611e1b5f11dcbff023f3a085ed0bf8ecd7f9ece0c033dcabf6b6fc000000000000000100000000000000010000000000000020acd5d62b97e6c33a02d4331e361fc284fac3d4751616f3f316c28ea08f63c5d000000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002100000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000201e990e27f0d7976bf2adbd60e20384da0125b76e2885a96aa707bcb054108b0d00000000000000010000000000000001000000000000002036011e620f239613805346976c01d6be477f0546303a35d8e91f936c5ab738e1000000000000000100000000000000010000000000000020b956db54d172694c1630b069cbb2710ecdaacf116a26dcabdef5e48e9f4e783c00000000000000010000000000000001000000000000002039c719fa3f6fd86de45cdcbe116bc929d735098bfd57ba95c955727b3f86087f0000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000021000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000000000000000000200d73c1dad4ac3ed5fb3b2aac1d8c53d8e962a01cdb8353c33eea4fcef6ff2895000000000000000100000000000000010000000000000020c820cc49df62aac9d357ded86aed16cba909fd75f816a8472db6832966708c8600000000000000010000000000000001000000000000002087e4224ac05bf39143e5b2b8f31e6ff5c9879040db1e5c52a6074d35b63b457f000000000000000100000000000000010000000000000020a814a34f76af1733811481d105364da0ad5c6889b20ac62ec695d95bad6ccfa40000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000021000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f32938000000000000000600000000000000010000000000000000000000000000002027192bb21c5c75b1e4d1bceb03a2c9ecf9d790b79d41e58c9d6359ce386f90dd0000000000000001000000000000000100000000000000201ff906e1ce9f3c5394fe409e7fef7a28a7d4469cb7e925e64acda39d98cc90870000000000000001000000000000000100000000000000200998593abc6ae74ad4db1e3faee5a7426d83e0283ebfbba81490532b53fb3c67000000000000000100000000000000010000000000000020609f06fb0f917dd5aff48faaa7c9a26932b0164e4ceb2fcb49512a7126aed0240000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002100000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000000000000000000020ca9c2c3725a394cda6baef5123dbe0ffd486e41377832cba5fdaa56ec79bdc3e00000000000000010000000000000001000000000000002078a9e98bb67d6a58ed5f47d03ff761fa75a0a090d14ed86341258ccae9faf3ee000000000000000100000000000000010000000000000020d51dbff523abfb61534f3ecb97144bf53b03b4e9ba33067030fe9ec8101607cb000000000000000100000000000000010000000000000020581702be02dcae0d01501fe971bb01119d074a9fa43014b6ad4081e583d632e900000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000240000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000010000000000000020a87e7ee5e09866aa006873cab1460c1595522fe9a3acc138dad90ccb048f09ec000000000000000100000000000000010000000000000020066b8498c9e05c82628c3565d3c18ea8674927640352cc9cf607415abf97f900000000000000000100000000000000000000000000000020e8b9aa258428d11be94220c2dd6dc9be6f7dfbf6c563495f34ac19fe54c7a02b000000000000000100000000000000010000000000000020acd5d62b97e6c33a02d4331e361fc284fac3d4751616f3f316c28ea08f63c5d000000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002400000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000010000000000000020880821cc48160488eb5d29feb2eead9cb25a07f610d5e1bca1435122b800416e000000000000000100000000000000010000000000000020e67415e2ce919b1302dfc211e39471d29a76795f1d4e6edbbdfc1856b5b2c153000000000000000100000000000000000000000000000020ed1cdc4693f53dc4db6ac19967a9854c6557cdba9dd1ef73aabe5680048340b900000000000000010000000000000001000000000000002039c719fa3f6fd86de45cdcbe116bc929d735098bfd57ba95c955727b3f86087f0000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000024000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000010000000000000020fa9aad6d2aace9a80704234a97da2dba93d14ea85b33d5c1a5b4f53de563f172000000000000000100000000000000010000000000000020bab7b86d13eda577e6efdf77bb504d22b0694d137022f14012aa8cd0fa75d1ee00000000000000010000000000000000000000000000002057270586231d0130eb017de9b965c71be11d39fda49cb46ecc4fc4cf2baff38a000000000000000100000000000000010000000000000020a814a34f76af1733811481d105364da0ad5c6889b20ac62ec695d95bad6ccfa40000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000024000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f3293800000000000000060000000000000001000000000000000100000000000000206434f87e734d29f9fd95399e82117674b990519a1379e6299d995792ed6d5633000000000000000100000000000000010000000000000020d7916d25af4bc31f4e809d04d5f70e0e2de17c037477afbb033a4ae7810e8b900000000000000001000000000000000000000000000000208acf7b66bc86786435ec6708d199d5b065b2e43f560fdf2547c4cd28ea0352ab000000000000000100000000000000010000000000000020609f06fb0f917dd5aff48faaa7c9a26932b0164e4ceb2fcb49512a7126aed0240000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002400000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000010000000000000020a7dfffac5fa2be54bfdaf88836fe9efe9e2f64482ae91878275e5ec2d36f450d00000000000000010000000000000001000000000000002000e0cc80f37570010eccdc5f1ef31956596028e3cc7f6e72de18bb35cd4650ce000000000000000100000000000000000000000000000020d8d5941d890c32e24cc840a8ee7a932a739bad1dbbbe6985a9d3ea1a07252ddc000000000000000100000000000000010000000000000020581702be02dcae0d01501fe971bb01119d074a9fa43014b6ad4081e583d632e900000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000060000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e00000000000000060000000000000001000000000000000100000000000000206068ff0ed4c4759abee34f335fafeb3a13303d5877af767f4d37506f840e35fd00000000000000010000000000000000000000000000002067ca165ae9157ffd65aedc2702decce7ef87efbecc65c1f23c346100aac99a2f000000000000000100000000000000000000000000000020c8a9706d43613feef1f7182c33ec47958f103c466f0a5c331ae15d21af056b2a000000000000000100000000000000010000000000000020407e1d016b2156134625c6c0acace3fca412163392f1c4920830c79723de997b000000000000000100000000000000010000000000000020659b6b070f44812ca2ffc215c67485587dd0d144e05eb3647148b4f5ca7360120000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000000600000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000010000000000000020fcd2644366aa4cae1f5315462954dec50920d49904205bac2012ebd91921cafc000000000000000100000000000000000000000000000020c2867e1f4cc937dde4acfa436b33c068e26654c057a2da6ff57d5a652187de31000000000000000100000000000000000000000000000020a83ce3f6822f2805da6f235cd57c1e49249433b8646938623efd0a040bb1ded60000000000000001000000000000000100000000000000204bc065f3dd3e3b30a0dac92ed91cf22f8259a480aa87d1c980b53b9a86e52a01000000000000000100000000000000010000000000000020dbce0776e37eb7c2a9e60b3254ce5ea6bed0db83c8c2e6b120494c0d9ed2a76b000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f0000000000000006000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000100000000000000207d8105c33b0d4263758d71e48168235f66e18ab7c8cc5fa652509c4e455b85b8000000000000000100000000000000000000000000000020656c686dc65309b719de95affaf2db67a6d00e7c86975a6214fd698dc72b431b00000000000000010000000000000000000000000000002057b19820ae67477ff0fc9a389396aeb670b7c8e05836cc5910b5ddb99ab4caf9000000000000000100000000000000010000000000000020a4de7176464be9124785e24d63c211255e653cd53798f2b73611e5f15feef7c70000000000000001000000000000000100000000000000207e13fb6690e345dd8bdf6ed863b9142988ca740ed6091c9fae658b221f7d7334000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a0000000000000006000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000010000000000000020ef7a130cfe37c0592cee783c87bcfa81f15f7d690e68179b0414f67da128a1a70000000000000001000000000000000000000000000000205b062cf5dbdcf741c88519621043425bdaff3163299494ea1e4e9aa1874fe4800000000000000001000000000000000000000000000000202ca61985fbc5910957e78a916da8508a3ead835fe2a43c85aafb20f5955f0ca0000000000000000100000000000000010000000000000020d2ac9a6c10a81d256c41bc67e07527d5a36e5dc54a2c6b984bb939fbc8ccd413000000000000000100000000000000010000000000000020cc3aa606fdcbf96592df9e3ecf28c535384ef37bff659d91d2f5982a3a391cb0000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000000600000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000010000000000000020ef8bf5707389ad5617236dd6d6c686a18f46eeb869921a2ad1e9a65fcfa6576d0000000000000001000000000000000000000000000000208dab85c8435dfd66280327b9cc5337f894bd670f9c80df0ba684f0a3f6ff807c0000000000000001000000000000000000000000000000206dd7a46816110430442508860c306738f4a9a0455d87cb1fe469f761064972aa000000000000000100000000000000010000000000000020482529a81b98175b81ad742dd6e90b5edefabf8d4cb4e27a6d7438b3191f6bad000000000000000100000000000000010000000000000020af9f96d3edd125bc1e0a105b9ffdc8e3024dc69325a78b2a02611964156a8e7a000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b9272000000000000000f0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000000000000000000020719a7a35adda0dd9428798c975730f35a62ffd9ee5f58d5ce5167156e67084f50000000000000001000000000000000000000000000000208035ed95221b11da3949bac40001ffa91e1aa82f0256b8cfe76c7f4bf0fd1c4e0000000000000001000000000000000000000000000000207c45dea365dfaace9be8fa260c352ec46e78980143459a4daee0f8ae4c5f9c3900000000000000010000000000000000000000000000002063b18099f915d818ff11dd06d2b4924e18e1b43d1a7d80c4018a6828759c3e2c000000000000000100000000000000010000000000000020659b6b070f44812ca2ffc215c67485587dd0d144e05eb3647148b4f5ca7360120000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000000f00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000000000000000000020b58422241e3aec6a19e7b35858365ab1aa6effa0786c660d8553d9a441f39bb1000000000000000100000000000000000000000000000020f29066e56b551bd94c1d9b20ea9837e3018816f6bbe6996254212afb712566ef000000000000000100000000000000000000000000000020a2765aabd8364f95fefd13729dd6fca6eac9c34f87cf4395c6b2b47a49a90ea9000000000000000100000000000000000000000000000020bd75800a626d45803e0ac76b5c093b70cab826c1e74d4cd0ce8e6c36106f95bc000000000000000100000000000000010000000000000020dbce0776e37eb7c2a9e60b3254ce5ea6bed0db83c8c2e6b120494c0d9ed2a76b000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f000000000000000f000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000000000000000000020abc4d89550572f555b5891e6efb7dbe2935c8f9ac12e51201cb0e7678ab7fcdf000000000000000100000000000000000000000000000020080a9a3f42f4a54cbb835bb52d64ef91d01db5403bdb3911d536aea3f9233f3a000000000000000100000000000000000000000000000020b4e9d6c8ba000d4455adade97f30d5cc513f15422d1dcec0ca5dd87320e49f8b000000000000000100000000000000000000000000000020842c39bed54d7be108142ed95a58b534014e03e9871691ec932be839f2294f4d0000000000000001000000000000000100000000000000207e13fb6690e345dd8bdf6ed863b9142988ca740ed6091c9fae658b221f7d7334000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a000000000000000f000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020a8006aa982f9039a3a2c8aa8579e3c1fc0fa64648c0ae719c2b447cc85aceabd00000000000000010000000000000000000000000000002090339d4d9d726a053742ce39f20998afadf10f29edee03a234c6eb48b105dc45000000000000000100000000000000000000000000000020b4f6da852bb23c13945601e08434ddf7c6c4e89b8d6af5158e57f6fb31c8153d0000000000000001000000000000000000000000000000201de5bb3d887c07d54506473a20db02428ebc54d6a3c978c792d0e6f1f4de0511000000000000000100000000000000010000000000000020cc3aa606fdcbf96592df9e3ecf28c535384ef37bff659d91d2f5982a3a391cb0000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000000f00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f000000000000000600000000000000010000000000000000000000000000002039e257cc4f35788ed43e34433cf2e200d063d51f68ce81ec9f272b948ece0cfd00000000000000010000000000000000000000000000002070919a53202cdeca4903368941c5d387f2cf9f35819747b391647c50e7a103630000000000000001000000000000000000000000000000204e2be0e6e47bf5def4c851e05d186e60b38edd78b0f533be635747623bfd38660000000000000001000000000000000000000000000000206e8232a0c61d237a50e6dcca4dcea8b407b71864d02b4c647447bc948ffe8ebc000000000000000100000000000000010000000000000020af9f96d3edd125bc1e0a105b9ffdc8e3024dc69325a78b2a02611964156a8e7a000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b9272000000000000002d0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e000000000000000600000000000000010000000000000000000000000000002075aefc18f34d0b9d24d3058dba57805ca214d7a2ef5015acfbd1d6dc24784f3a000000000000000100000000000000010000000000000020de539e059aab5793737ab7b6fdd8bd25a14d6221d0d1e94746b7eedd1a695c1b000000000000000100000000000000000000000000000020e8afd6f17c85f21e9f54e435f94a58f7a0002387aeb95b1f945e236e876fb79c000000000000000100000000000000000000000000000020bc2ec48a0ffda0d4d83b497975512e07ddaa2af9c054c3050454c1844d04b72f00000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002d00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000203f065963dc5f827189e63eb7d30fef121bf103875ef233f576ba79373f5e0d1a000000000000000100000000000000010000000000000020efebc253627a341429c9abadf466e6f234321ae2329a1eff0b4623090b8255fb000000000000000100000000000000000000000000000020a41aea614e3c42d5512e485f565d0b5cbdbe584b64aa66bcbcb365fe0aee5b920000000000000001000000000000000000000000000000201dbcfe2b985f1976717c36ba364b4855be4e3991bd1679509516db11cedec7830000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc000000000000002d000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000000000000000000020567491f6309e85f31072a8600cc25ad68a6cb210e9575af989900bca9accc061000000000000000100000000000000010000000000000020045cb3bae5c83f22f010f74c7d82e124ca984a74c53dec23f6011dd20fa1a7da000000000000000100000000000000000000000000000020c9e07df65a2734fdc8ada731511056ceb96e0401caf52c9ebc4e0cfa6a1d2cfa000000000000000100000000000000000000000000000020291814bb23ca041a829cd777ab17a74972cca1d409306698f066b2b12b5b7e450000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e000000000000002d000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020fb91b4582294afb1b43d2468cac5095e5d6fb16ef5bf595aa6b45e3dbc0256ad0000000000000001000000000000000100000000000000208c692dfb3b3d159d3dd5e5985d705f1093973f88ee5561519510e3a20bd734a400000000000000010000000000000000000000000000002034acd2eb98e0c00613dddfde79e2ed59b03091057dd67328a1f2a20fcc30be400000000000000001000000000000000000000000000000207afc3d3f377ea328d0a546da843425d8cd2f61d21026ec31c026288cb3d0698b0000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002d00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f000000000000000600000000000000010000000000000000000000000000002016a3ba51172d2f53ba9fad3c21587fe75b52d7e378cfcf01eb7fecf1d235a8ad000000000000000100000000000000010000000000000020bd73e161e1e45359b0e9c8889819790eabe432440193232b2131d1f1b779c3880000000000000001000000000000000000000000000000207d62274328992c25ecf4a1832951db6fc2f6220d551c0ba04cb7fb7ced5be8a8000000000000000100000000000000000000000000000020d3e115a5a233331eea0c9d1a61f910fb1ddbd717686aaafe4459fc88d54a083e00000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000030000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000000000000000000020e3eda4ff4131e9d50c4e1b30b3fdfbc7666cafe598b33ea7ec6a7dfc746882640000000000000001000000000000000000000000000000203613cb120b2f2975315e760505b179b65712ad13a44c120548e3994dea630cac0000000000000001000000000000000100000000000000209976a44019a2cc25e24d8e0128101ba53e738bdd0bad7d83caec1a8da22b1500000000000000000100000000000000010000000000000020407e1d016b2156134625c6c0acace3fca412163392f1c4920830c79723de997b000000000000000100000000000000010000000000000020659b6b070f44812ca2ffc215c67485587dd0d144e05eb3647148b4f5ca7360120000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000000300000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000000000000000000020ce5207c1efa11695498c32d3b02c09903ed2f951e404843f3480fcbbf7d9587b000000000000000100000000000000000000000000000020d33251146c9bd59a58c273ee3ca84520f45dc00b56606f29155743126e02603b00000000000000010000000000000001000000000000002061c5b4eb1c0a7e74093fb022c5f5951fb2c504423b1f2e8e1f5cb5c30c6896090000000000000001000000000000000100000000000000204bc065f3dd3e3b30a0dac92ed91cf22f8259a480aa87d1c980b53b9a86e52a01000000000000000100000000000000010000000000000020dbce0776e37eb7c2a9e60b3254ce5ea6bed0db83c8c2e6b120494c0d9ed2a76b000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f0000000000000003000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000000000000000000205e57791a50c984b6b9bb11df72fbe8ead7611d5fbbbb1fde2c9f6ca001e3dbf200000000000000010000000000000000000000000000002014004ab029eb12ac1bbfc12bfb4fb3112e55c46e90c1ee691ed8bc36417a2d9300000000000000010000000000000001000000000000002098c6a10d6e69554c9a66612e611bde1613925c85c294eac9ae4153c688311745000000000000000100000000000000010000000000000020a4de7176464be9124785e24d63c211255e653cd53798f2b73611e5f15feef7c70000000000000001000000000000000100000000000000207e13fb6690e345dd8bdf6ed863b9142988ca740ed6091c9fae658b221f7d7334000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a0000000000000003000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f32938000000000000000600000000000000010000000000000000000000000000002056eb38c40ce68d5cd8e95158a0028c5d89bc5658464fad550014da7006c79c93000000000000000100000000000000000000000000000020c15f16573a80f06e1daa20bcbf7091006df20f702348956739551ffe4c3868030000000000000001000000000000000100000000000000209ee50eb11a3de3483219cd22981a0f0b1d7086e1372d0840adab511808b3142a000000000000000100000000000000010000000000000020d2ac9a6c10a81d256c41bc67e07527d5a36e5dc54a2c6b984bb939fbc8ccd413000000000000000100000000000000010000000000000020cc3aa606fdcbf96592df9e3ecf28c535384ef37bff659d91d2f5982a3a391cb0000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000000300000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000000000000000000206e2343713e5ac93fb226ad8336de20b09df4879ab409d9bd31704260ecd2385000000000000000010000000000000000000000000000002051f6631c86c379672c14a62460decb29165cd65db29c3c813e2433ebe1acc94a000000000000000100000000000000010000000000000020e98f654c7d4a4d72873302de6fc89a06a256de8b10b07b607e786bfeb6213059000000000000000100000000000000010000000000000020482529a81b98175b81ad742dd6e90b5edefabf8d4cb4e27a6d7438b3191f6bad000000000000000100000000000000010000000000000020af9f96d3edd125bc1e0a105b9ffdc8e3024dc69325a78b2a02611964156a8e7a000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b927200000000000000290000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e00000000000000060000000000000001000000000000000000000000000000201b81605c89f82931ba1f9c40f6a11252716f4b02a1405f25e3c8d9342ae5141d000000000000000100000000000000010000000000000020a7ab07465b54611179f5d8b3f01dda40efa5ef6a7beb7ddea184943d0014654c0000000000000001000000000000000100000000000000201fc30593ec7d427903dd1f55256e3ffc19a85f70cf2a8e7c0acb4f0a53f1effe000000000000000100000000000000000000000000000020bc2ec48a0ffda0d4d83b497975512e07ddaa2af9c054c3050454c1844d04b72f00000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002900000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000202abc88d2e3de401ab2c938e2d0e3c6ace5b030a54d9aeff0e9218e717f5d843c0000000000000001000000000000000100000000000000206eda94265d040faabf44625d55ab8b4ec7a5f1ec78d8b49e877a868ec6619d3900000000000000010000000000000001000000000000002029ddc1ae85781550b5b8262839b67495818dab865d8bb41a08d9d715a8f5ad470000000000000001000000000000000000000000000000201dbcfe2b985f1976717c36ba364b4855be4e3991bd1679509516db11cedec7830000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000029000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000000000000000000020a99d428a8f4af26c826a4ed7482597440fc869f53f585c86c7250ec11b21a8d8000000000000000100000000000000010000000000000020f27a29d328bdc6caa0ee3f0f6f7c703890f1805c474144e4bcbc87eab56c5335000000000000000100000000000000010000000000000020b21fce2155f8766d6e3d49a87773c41a486b0eb7dabcbfc0cf2963f7b34ecd33000000000000000100000000000000000000000000000020291814bb23ca041a829cd777ab17a74972cca1d409306698f066b2b12b5b7e450000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000029000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f3293800000000000000060000000000000001000000000000000000000000000000206f1230ee39fa4b475a68ca2c21a0a52a3a2d008ace0147d9367ca0b19fbf44b300000000000000010000000000000001000000000000002054f128363693244ccfcb0f852cc53499930006a76f4f8ad53422282d7ba2b1a900000000000000010000000000000001000000000000002032906f8b355f4c2d6b639a6899bcadf4e2cb7fcba76d4ccb412d5c24053801490000000000000001000000000000000000000000000000207afc3d3f377ea328d0a546da843425d8cd2f61d21026ec31c026288cb3d0698b0000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002900000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000000000000000000203e4b5489c39040df94e04b61ae4144d75b3731c552cb2872ea3522b56365e3bb0000000000000001000000000000000100000000000000203b71c8650663ac45104b87aeb469737990a8040255ea025b39bbd29956133147000000000000000100000000000000010000000000000020bbdfd0dd1887a478722c75ca8033a8a2201ecbe77561ec5505c4f7fa0b2fc07f000000000000000100000000000000000000000000000020d3e115a5a233331eea0c9d1a61f910fb1ddbd717686aaafe4459fc88d54a083e00000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f8000000000000002b0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e000000000000000600000000000000010000000000000000000000000000002061cfcaf3abbfaf060d0b53beb3ff1eb4e9923e49873a62b8f2f787d8b5a899190000000000000001000000000000000000000000000000202126eaa429043d207bc31ac0492a95b87916ef3a837b0de7fe9e539054aad1fc0000000000000001000000000000000100000000000000201fc30593ec7d427903dd1f55256e3ffc19a85f70cf2a8e7c0acb4f0a53f1effe000000000000000100000000000000000000000000000020bc2ec48a0ffda0d4d83b497975512e07ddaa2af9c054c3050454c1844d04b72f00000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002b00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000206255d43873b7b75be7cd4e8b0b219cb154af5bb3311754d0462b22dc2b14067e000000000000000100000000000000000000000000000020bc71bb4cd134708a5c1ae6a9909a7062ea805c915ae91379dbc944a73895479f00000000000000010000000000000001000000000000002029ddc1ae85781550b5b8262839b67495818dab865d8bb41a08d9d715a8f5ad470000000000000001000000000000000000000000000000201dbcfe2b985f1976717c36ba364b4855be4e3991bd1679509516db11cedec7830000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc000000000000002b000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000000000000000000208d00adc26372a899eccef502932866d4f43fa5dc239f3670c3aa9a17c630c3e90000000000000001000000000000000000000000000000200d1596615dfc5a5b9db6a95acdad88935034862ea7d81602ed52beca7ddc10c1000000000000000100000000000000010000000000000020b21fce2155f8766d6e3d49a87773c41a486b0eb7dabcbfc0cf2963f7b34ecd33000000000000000100000000000000000000000000000020291814bb23ca041a829cd777ab17a74972cca1d409306698f066b2b12b5b7e450000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e000000000000002b000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020c2662e5a1722b6a5fb781e770e5ae202e52a072f1699d62023b34b97c3b7a664000000000000000100000000000000000000000000000020ede423867df6a5e010be077da1b68626a1fa76bb0e44bf0c569934de8bb4003500000000000000010000000000000001000000000000002032906f8b355f4c2d6b639a6899bcadf4e2cb7fcba76d4ccb412d5c24053801490000000000000001000000000000000000000000000000207afc3d3f377ea328d0a546da843425d8cd2f61d21026ec31c026288cb3d0698b0000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002b00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000000000000000000202882c2da6bbde8b5670630244874d1c7d8bd36d156328ddd10e8f16333966b0f000000000000000100000000000000000000000000000020af8a1f56cf96d57df78368effb90dfbcef3078b07d9d59e9fba5fb26a1a88112000000000000000100000000000000010000000000000020bbdfd0dd1887a478722c75ca8033a8a2201ecbe77561ec5505c4f7fa0b2fc07f000000000000000100000000000000000000000000000020d3e115a5a233331eea0c9d1a61f910fb1ddbd717686aaafe4459fc88d54a083e00000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f8000000000000002d0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e000000000000000600000000000000010000000000000000000000000000002075aefc18f34d0b9d24d3058dba57805ca214d7a2ef5015acfbd1d6dc24784f3a000000000000000100000000000000010000000000000020de539e059aab5793737ab7b6fdd8bd25a14d6221d0d1e94746b7eedd1a695c1b000000000000000100000000000000000000000000000020e8afd6f17c85f21e9f54e435f94a58f7a0002387aeb95b1f945e236e876fb79c000000000000000100000000000000000000000000000020bc2ec48a0ffda0d4d83b497975512e07ddaa2af9c054c3050454c1844d04b72f00000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002d00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000203f065963dc5f827189e63eb7d30fef121bf103875ef233f576ba79373f5e0d1a000000000000000100000000000000010000000000000020efebc253627a341429c9abadf466e6f234321ae2329a1eff0b4623090b8255fb000000000000000100000000000000000000000000000020a41aea614e3c42d5512e485f565d0b5cbdbe584b64aa66bcbcb365fe0aee5b920000000000000001000000000000000000000000000000201dbcfe2b985f1976717c36ba364b4855be4e3991bd1679509516db11cedec7830000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc000000000000002d000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000000000000000000020567491f6309e85f31072a8600cc25ad68a6cb210e9575af989900bca9accc061000000000000000100000000000000010000000000000020045cb3bae5c83f22f010f74c7d82e124ca984a74c53dec23f6011dd20fa1a7da000000000000000100000000000000000000000000000020c9e07df65a2734fdc8ada731511056ceb96e0401caf52c9ebc4e0cfa6a1d2cfa000000000000000100000000000000000000000000000020291814bb23ca041a829cd777ab17a74972cca1d409306698f066b2b12b5b7e450000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e000000000000002d000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020fb91b4582294afb1b43d2468cac5095e5d6fb16ef5bf595aa6b45e3dbc0256ad0000000000000001000000000000000100000000000000208c692dfb3b3d159d3dd5e5985d705f1093973f88ee5561519510e3a20bd734a400000000000000010000000000000000000000000000002034acd2eb98e0c00613dddfde79e2ed59b03091057dd67328a1f2a20fcc30be400000000000000001000000000000000000000000000000207afc3d3f377ea328d0a546da843425d8cd2f61d21026ec31c026288cb3d0698b0000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002d00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f000000000000000600000000000000010000000000000000000000000000002016a3ba51172d2f53ba9fad3c21587fe75b52d7e378cfcf01eb7fecf1d235a8ad000000000000000100000000000000010000000000000020bd73e161e1e45359b0e9c8889819790eabe432440193232b2131d1f1b779c3880000000000000001000000000000000000000000000000207d62274328992c25ecf4a1832951db6fc2f6220d551c0ba04cb7fb7ced5be8a8000000000000000100000000000000000000000000000020d3e115a5a233331eea0c9d1a61f910fb1ddbd717686aaafe4459fc88d54a083e00000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f8000000000000003d0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000000000000000000020ace9659a3eca3c2a1cccbc983ead796d78a748e3786946462f4d9d1fdc3e34ac000000000000000100000000000000010000000000000020bcf05d3c5eb71fed288eb4b419a188c8860206b533025c802ed5cd504e55c1b00000000000000001000000000000000000000000000000207a1b3b2568d13a2eef371f9a6406e1e5ea8ea67cf4f7c3e9e841cfc385002de400000000000000010000000000000000000000000000002093496aa9b95cdfb66da9c0d5bc5df817484a2a333e9349baecc93bd74a2ca4730000000000000001000000000000000000000000000000209fbca920ee0c87a956f99c4f1362a800f24be48892fb636d69c31e2a28f6ac89000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000003d00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000000000000000000020c15d51cf18b6ba8c12ed152e4a515b632b24633b5f6b22f7103649e18d6f1f9e0000000000000001000000000000000100000000000000208b25ecd6ff537916132b0a2c9828a23713e826894f39c2af049fb06a056e2443000000000000000100000000000000000000000000000020ca4326b0ac9a40f7962046fbc2ae4a247b71dee20ff8514aa46bc9a7f710d2460000000000000001000000000000000000000000000000200c0b006e9ce5ab8dee54461051bb96c286fd71b34dc6edc2cc81ccb3100d316500000000000000010000000000000000000000000000002009d96f34c0d0d0c579558695e2590b6b8a00dc82f66b0ed035313048e74ae7cb000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc000000000000003d000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000000000000000000020938fa0a6b1c2b75bdf6f4ba90387cbcf0b23762fb05befccb17d0cea24fe684000000000000000010000000000000001000000000000002070475275547a4e19ad5111cbc2761f67ebbb11db7b19d3e5da5b0a1829c4ec5a0000000000000001000000000000000000000000000000205863974ae834cb6f7cdda3179a5eb9db26199ae6501319daa7e9350565a01a52000000000000000100000000000000000000000000000020a724c8ade8149e1cc611772680cb6d18385ad3f0e4e5bb60e4780827cedd136c0000000000000001000000000000000000000000000000209e4aa536330b2d7a31d018a0c66389dc79b3652f4ba9a731d52185c1d2764761000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e000000000000003d000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020f6d0f9998a4caeaedf31272eebc9c4f6855dfc972528fca3c6aedb2b52959ee40000000000000001000000000000000100000000000000200bbb509da79f5f8b438035f866b33e7d35ea0d24c196577e58c711e996e9d67a000000000000000100000000000000000000000000000020e0d59165174c1b01a1778b0c00ea048f351711781eb9b7905bac635125041c7c000000000000000100000000000000000000000000000020488cdfd2909dddf32aafba620adfd844cf7f0e6eae4371d0ed616315e9b3d1e900000000000000010000000000000000000000000000002068e96971008bee2f90df118bffada99c074a0d2c49bfc1b99915b2dcf51048a20000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000003d00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f000000000000000600000000000000010000000000000000000000000000002078d73dc05e52ee7c8e19682c5f83941c32eccea8702643ba4954454340dd7d48000000000000000100000000000000010000000000000020b2bd6c7bce44e8cb1dd2c1ada3f46a4ef84aa70a4f6d582427f82789c25091290000000000000001000000000000000000000000000000207307458ebfa1b463080bdf0c8b226e68af95d3ce03c81f574dc53886fc92c5510000000000000001000000000000000000000000000000200aeeef018d0928774997734b759241fff2f2f118735c3cc567f475600c93c6450000000000000001000000000000000000000000000000209c3cc5f2e03bbb6fbb6a00377debdbb0ff07e93db8e65b607e9ce577d2bff4060000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000040000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e00000000000000060000000000000001000000000000000100000000000000209b78a7ddb1bdf726d695cf1b5960843be18843d5f9fcd02b2632d5c5a2dd6e330000000000000001000000000000000100000000000000202feb59037d37e58c7ae6981240627157e2d56c7ce73366769597e4a404b62e4c000000000000000100000000000000000000000000000020c8a9706d43613feef1f7182c33ec47958f103c466f0a5c331ae15d21af056b2a000000000000000100000000000000010000000000000020407e1d016b2156134625c6c0acace3fca412163392f1c4920830c79723de997b000000000000000100000000000000010000000000000020659b6b070f44812ca2ffc215c67485587dd0d144e05eb3647148b4f5ca7360120000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000000400000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000010000000000000020b715b8dc2b4f2279715881cde68ae43f478d157a6332f5469da1e301742325780000000000000001000000000000000100000000000000208c082649fedb2d6d1df100e532a8001567a341813a6a0fe1b04813431f53cd33000000000000000100000000000000000000000000000020a83ce3f6822f2805da6f235cd57c1e49249433b8646938623efd0a040bb1ded60000000000000001000000000000000100000000000000204bc065f3dd3e3b30a0dac92ed91cf22f8259a480aa87d1c980b53b9a86e52a01000000000000000100000000000000010000000000000020dbce0776e37eb7c2a9e60b3254ce5ea6bed0db83c8c2e6b120494c0d9ed2a76b000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f0000000000000004000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000010000000000000020d064e61c274d95bb5e9e0234973dcc2f97dfef3bb3efcb34c8d9a5cbf845a26c0000000000000001000000000000000100000000000000206c7de327c4cde9c353811da48a1929a019d15fb4d30226f8005d95a3a5043ff200000000000000010000000000000000000000000000002057b19820ae67477ff0fc9a389396aeb670b7c8e05836cc5910b5ddb99ab4caf9000000000000000100000000000000010000000000000020a4de7176464be9124785e24d63c211255e653cd53798f2b73611e5f15feef7c70000000000000001000000000000000100000000000000207e13fb6690e345dd8bdf6ed863b9142988ca740ed6091c9fae658b221f7d7334000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a0000000000000004000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f32938000000000000000600000000000000010000000000000001000000000000002037f3c3334c4ccdf4c7af03a4e98d09045fbf91bd4aeda27221f4074fc87ae2f40000000000000001000000000000000100000000000000200145bfa689a590a70838a593886aa43d2fcfc263d3156b731a198b5f60d17cb80000000000000001000000000000000000000000000000202ca61985fbc5910957e78a916da8508a3ead835fe2a43c85aafb20f5955f0ca0000000000000000100000000000000010000000000000020d2ac9a6c10a81d256c41bc67e07527d5a36e5dc54a2c6b984bb939fbc8ccd413000000000000000100000000000000010000000000000020cc3aa606fdcbf96592df9e3ecf28c535384ef37bff659d91d2f5982a3a391cb0000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000000400000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000010000000000000020acd025f157bb36e8a2a301e8d6d88f75bfd49283ffaf5d492c67b4a729a0984f0000000000000001000000000000000100000000000000202ff68e275e9f3c1b3b7f743a4782f617731151b00ff2a2b3c7ad2c740a85ee730000000000000001000000000000000000000000000000206dd7a46816110430442508860c306738f4a9a0455d87cb1fe469f761064972aa000000000000000100000000000000010000000000000020482529a81b98175b81ad742dd6e90b5edefabf8d4cb4e27a6d7438b3191f6bad000000000000000100000000000000010000000000000020af9f96d3edd125bc1e0a105b9ffdc8e3024dc69325a78b2a02611964156a8e7a000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b9272000000000000001d0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e000000000000000600000000000000010000000000000000000000000000002064c557d55375fb980243316cc094e1409b4134756a1742dc867410611a380c9300000000000000010000000000000001000000000000002012edb90efc6a65c82406e9e729c69705717bb9213763989a3e429db69b1fa1be000000000000000100000000000000000000000000000020ab170dad02da8e5a4c268e132c454adc4b6729b907eb3b0647e0b75ba06ca1ae000000000000000100000000000000000000000000000020261c2de001295b8ae6db8a3110d2d193b80167fee59f8f542a00ce1709747a6900000000000000010000000000000000000000000000002028d0668b3b0bb626ddb7371edbb5222936f68264e2cfb9376038323928d12a950000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000001d00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000209cd7e98a2d2e09ab57fbd65b8471e6f11d77a24e5ca150505ee781dbd33e9756000000000000000100000000000000010000000000000020070faa4b0f39e22d43da05eaf01eaa74ae4dfa9cf3b4f146bc3076585fa9c02700000000000000010000000000000000000000000000002024299b0256071ee4c8943b75440fdb14cb0a87a9d470ca0d23930e470c29fd2d00000000000000010000000000000000000000000000002068af7e3f604105e672bb008f7f6497a71b4230ffaedefc6e201e3a965f80aad9000000000000000100000000000000000000000000000020d7f7d11996573b5da0d2cbe7d58b7d9ee40d6b31bbfd992e1387dae096d31597000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f000000000000001d000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000000000000000000201d6a369b05cc67293f0393af51a7d4056bc52be5156909401e804d159169447b0000000000000001000000000000000100000000000000201581a9112f15b5db73805221511d3b17bb0b44a8d5bdb5961d05b119e83069f80000000000000001000000000000000000000000000000201f0f92e1ba9dfc9c805ddaed879861bdc05c3a78b978e8bb3a8c041349d557fb0000000000000001000000000000000000000000000000202f82c0c1a186d9e1264fb0ac164a09274cdc7fa84262a440da9649a8aa36aaef000000000000000100000000000000000000000000000020824ce8426988565f955f44ee03d626fea805a15ec4db70b129a69a2d7b15a5aa000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a000000000000001d000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020dbdb6a4cc8b17c5ea2d125c6af18f1a5a232cbda042546a5e8b8a220e858de5e000000000000000100000000000000010000000000000020ab7aae7bbf9e20bdeb1ab6bbe7a70c6cd858e5d76f9f05de9e38ec9f931a3ec50000000000000001000000000000000000000000000000208e9ca24717ee2452a64953880cd16ce2ed80e0ab655a248e3a0d70cb8d9ef4b8000000000000000100000000000000000000000000000020cbb94a1fa90daec34851502087bc06a9b8934f9e2e87d1242484cea77e968a42000000000000000100000000000000000000000000000020d488fb112c8e7e22dfab501043651ee3017cc449d7e2043156d45aaf96580343000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000001d00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000000000000000000207bebb1b5de11152457d291912534c5ffe07f4ef1797e65901fa68e2f90056fb7000000000000000100000000000000010000000000000020d5f15fb4972b5ea2159a542111a45a1ff217a413588328aa49a47ed613fc70570000000000000001000000000000000000000000000000201a61d9687a39c69fc39cbb583e8569c27f226321d4438d1f17092925ea3cf032000000000000000100000000000000000000000000000020c1e67f4fe465546990e3ad91e731dd95b1c88152d8ecc54d60d94cbfdca528650000000000000001000000000000000000000000000000200b1317ae38b570b4c049c419190fae276bb0ef81fc42fd65f1a137ebd541d9ae000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b927200000000000000260000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e000000000000000600000000000000010000000000000001000000000000002002264f66321999533318a66b630c922ed2c8afd79f75ad3ad7e2546988d2c229000000000000000100000000000000000000000000000020ce6cbec44c6750b87c769f2196e739261249641951d381617e8405bbf0202556000000000000000100000000000000000000000000000020e8b9aa258428d11be94220c2dd6dc9be6f7dfbf6c563495f34ac19fe54c7a02b000000000000000100000000000000010000000000000020acd5d62b97e6c33a02d4331e361fc284fac3d4751616f3f316c28ea08f63c5d000000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002600000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000100000000000000205e9bb0baae243491c7eb032dee99b7d36c82ec05b60e64eddd17c8be11cd6d5600000000000000010000000000000000000000000000002060fdc81936cb56fefc4ae765ed50a0407b33f19eff3eee870f07317cdb2ef330000000000000000100000000000000000000000000000020ed1cdc4693f53dc4db6ac19967a9854c6557cdba9dd1ef73aabe5680048340b900000000000000010000000000000001000000000000002039c719fa3f6fd86de45cdcbe116bc929d735098bfd57ba95c955727b3f86087f0000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000026000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000010000000000000020dc8aa5c3c55a97bdb7bd81ca0c78663eb6c0009ca983ed54c552867d176e3004000000000000000100000000000000000000000000000020a09e4a0cff4a2719030a0f657ce42c12a2cd4cc27b8cdfd21d1cbcf868b7190b00000000000000010000000000000000000000000000002057270586231d0130eb017de9b965c71be11d39fda49cb46ecc4fc4cf2baff38a000000000000000100000000000000010000000000000020a814a34f76af1733811481d105364da0ad5c6889b20ac62ec695d95bad6ccfa40000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000026000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000010000000000000020d9d44b09d08b8219649fee03bc1d8d6f144f9d725dc46d7d1cd32c7712d6cd30000000000000000100000000000000000000000000000020a9887501139d04ce4e8fa79b998c30f58c8d5ba78c911d4db7001a5436dc18fd0000000000000001000000000000000000000000000000208acf7b66bc86786435ec6708d199d5b065b2e43f560fdf2547c4cd28ea0352ab000000000000000100000000000000010000000000000020609f06fb0f917dd5aff48faaa7c9a26932b0164e4ceb2fcb49512a7126aed0240000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002600000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000010000000000000020884f313cc7a8412ea0712b8a5714e7da07720e79a0b4fd720bc61b0bf836cec400000000000000010000000000000000000000000000002032ce4870dfa2fb4284adb38aa43f49a3a3c28255497b93a85731134cd0486a2d000000000000000100000000000000000000000000000020d8d5941d890c32e24cc840a8ee7a932a739bad1dbbbe6985a9d3ea1a07252ddc000000000000000100000000000000010000000000000020581702be02dcae0d01501fe971bb01119d074a9fa43014b6ad4081e583d632e900000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000140000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000010000000000000020d13b1182595fb7c8fd9c38b06609e98ff298f43b1dfe5d8b5ca476009ca9b933000000000000000100000000000000010000000000000020c6b381e0454db795b5b8e2c00528e8909b1dd390294e937bf0b6fb4466a5dbee0000000000000001000000000000000000000000000000204ea8cf9cce17e7e1cd760ecafb340641ca9c38dc3307fbbd00021b4d76fbf0ae0000000000000001000000000000000100000000000000201ec85a72ab785b7c48cb10710fca42c4de34b9d99094486a7cb14fb0a459812f00000000000000010000000000000000000000000000002028d0668b3b0bb626ddb7371edbb5222936f68264e2cfb9376038323928d12a950000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000001400000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000010000000000000020892d112af16dd31aa00e78a4b486da7d03ccf553eeed08d731856f357b0d56730000000000000001000000000000000100000000000000204e89e96754b7e307d08e159877a517f8dae2dd670159ccae091ca417e29e0b160000000000000001000000000000000000000000000000205b81613de55d7495bc7e3454f119dc5ff6d98575a97ce0feed94a8a81ef4c58300000000000000010000000000000001000000000000002048060202f26e09afa01220fe2b845539f7f28e73ab6b16690996cf8c05046244000000000000000100000000000000000000000000000020d7f7d11996573b5da0d2cbe7d58b7d9ee40d6b31bbfd992e1387dae096d31597000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f0000000000000014000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000100000000000000203991f987ae43bdb2cb460f4b9117a831f120c1df621ef35f441c88f7b2fe768e00000000000000010000000000000001000000000000002041a778046c93dbd5892bb63389616c7fdabbff935eb68f5452f508f9f65f89050000000000000001000000000000000000000000000000202563891c5fdc655c709322f431d4685310ab6de8a04381b461a35a918206b74b0000000000000001000000000000000100000000000000200aed2038bedd56c46aa92e044dbb04e9d6d047ddb3819c31056472a336358fb2000000000000000100000000000000000000000000000020824ce8426988565f955f44ee03d626fea805a15ec4db70b129a69a2d7b15a5aa000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a0000000000000014000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000010000000000000020f065628a8cc1acb32c10fca6cce7ff62f54b3006f7fc53109fe3de9eb63070c7000000000000000100000000000000010000000000000020197823063594ed9cdc1422e186f0f109a3276a516115aaf6b8d28dafd7912882000000000000000100000000000000000000000000000020719cc0a76d30bc5fc3d188278907a26c1bb12d95f610d264295d81fa4961caf70000000000000001000000000000000100000000000000204e291298e718e4215dade20a34700b89a0336d8bede04b427e3792a09b3a48cb000000000000000100000000000000000000000000000020d488fb112c8e7e22dfab501043651ee3017cc449d7e2043156d45aaf96580343000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000001400000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000010000000000000020e6547ddea77102bb5b0769fa0ec49ae2993ebcb244cbd2d69f3bfd6fb3737cb90000000000000001000000000000000100000000000000200cbd009198ff0a8e110c81761a286e88fd0450ed686f921f3937fd0895542325000000000000000100000000000000000000000000000020b7d60652bb0211f3ad5aed0c840caa5d9da58707a326e5389e94ec43ff4bd2f1000000000000000100000000000000010000000000000020b4bfefcc77fb1c06d34fae0ff743553b71633d0f2755a6c510a2a7a843af6fbe0000000000000001000000000000000000000000000000200b1317ae38b570b4c049c419190fae276bb0ef81fc42fd65f1a137ebd541d9ae000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b927200000000000000280000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000010000000000000020e2efc0c8de247c9438c3cdc5219227339f21ddd9caa55bab11035618652dd797000000000000000100000000000000010000000000000020a7ab07465b54611179f5d8b3f01dda40efa5ef6a7beb7ddea184943d0014654c0000000000000001000000000000000100000000000000201fc30593ec7d427903dd1f55256e3ffc19a85f70cf2a8e7c0acb4f0a53f1effe000000000000000100000000000000000000000000000020bc2ec48a0ffda0d4d83b497975512e07ddaa2af9c054c3050454c1844d04b72f00000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002800000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000100000000000000208cfd329d11d0511e44efb6c45cb19bbd79f020872b1914221f03f74772df0f780000000000000001000000000000000100000000000000206eda94265d040faabf44625d55ab8b4ec7a5f1ec78d8b49e877a868ec6619d3900000000000000010000000000000001000000000000002029ddc1ae85781550b5b8262839b67495818dab865d8bb41a08d9d715a8f5ad470000000000000001000000000000000000000000000000201dbcfe2b985f1976717c36ba364b4855be4e3991bd1679509516db11cedec7830000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000028000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000010000000000000020189815d4b7880b6e5b19f3f1fc059d7abc004a1c7efbd8330127640e1d8d5c52000000000000000100000000000000010000000000000020f27a29d328bdc6caa0ee3f0f6f7c703890f1805c474144e4bcbc87eab56c5335000000000000000100000000000000010000000000000020b21fce2155f8766d6e3d49a87773c41a486b0eb7dabcbfc0cf2963f7b34ecd33000000000000000100000000000000000000000000000020291814bb23ca041a829cd777ab17a74972cca1d409306698f066b2b12b5b7e450000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000028000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f3293800000000000000060000000000000001000000000000000100000000000000208fcc56b1c6d457aa8bcf6531f86007bd0c1554aaeb03e10977438cba39aa920500000000000000010000000000000001000000000000002054f128363693244ccfcb0f852cc53499930006a76f4f8ad53422282d7ba2b1a900000000000000010000000000000001000000000000002032906f8b355f4c2d6b639a6899bcadf4e2cb7fcba76d4ccb412d5c24053801490000000000000001000000000000000000000000000000207afc3d3f377ea328d0a546da843425d8cd2f61d21026ec31c026288cb3d0698b0000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002800000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000010000000000000020f398ecc257c9c2a22b7cfdd2ee9df79a0764838bfc331ec8ea9acf0cad0b814f0000000000000001000000000000000100000000000000203b71c8650663ac45104b87aeb469737990a8040255ea025b39bbd29956133147000000000000000100000000000000010000000000000020bbdfd0dd1887a478722c75ca8033a8a2201ecbe77561ec5505c4f7fa0b2fc07f000000000000000100000000000000000000000000000020d3e115a5a233331eea0c9d1a61f910fb1ddbd717686aaafe4459fc88d54a083e00000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f8000000000000001d0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e000000000000000600000000000000010000000000000000000000000000002064c557d55375fb980243316cc094e1409b4134756a1742dc867410611a380c9300000000000000010000000000000001000000000000002012edb90efc6a65c82406e9e729c69705717bb9213763989a3e429db69b1fa1be000000000000000100000000000000000000000000000020ab170dad02da8e5a4c268e132c454adc4b6729b907eb3b0647e0b75ba06ca1ae000000000000000100000000000000000000000000000020261c2de001295b8ae6db8a3110d2d193b80167fee59f8f542a00ce1709747a6900000000000000010000000000000000000000000000002028d0668b3b0bb626ddb7371edbb5222936f68264e2cfb9376038323928d12a950000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000001d00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000209cd7e98a2d2e09ab57fbd65b8471e6f11d77a24e5ca150505ee781dbd33e9756000000000000000100000000000000010000000000000020070faa4b0f39e22d43da05eaf01eaa74ae4dfa9cf3b4f146bc3076585fa9c02700000000000000010000000000000000000000000000002024299b0256071ee4c8943b75440fdb14cb0a87a9d470ca0d23930e470c29fd2d00000000000000010000000000000000000000000000002068af7e3f604105e672bb008f7f6497a71b4230ffaedefc6e201e3a965f80aad9000000000000000100000000000000000000000000000020d7f7d11996573b5da0d2cbe7d58b7d9ee40d6b31bbfd992e1387dae096d31597000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f000000000000001d000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f29994185600000000000000060000000000000001000000000000000000000000000000201d6a369b05cc67293f0393af51a7d4056bc52be5156909401e804d159169447b0000000000000001000000000000000100000000000000201581a9112f15b5db73805221511d3b17bb0b44a8d5bdb5961d05b119e83069f80000000000000001000000000000000000000000000000201f0f92e1ba9dfc9c805ddaed879861bdc05c3a78b978e8bb3a8c041349d557fb0000000000000001000000000000000000000000000000202f82c0c1a186d9e1264fb0ac164a09274cdc7fa84262a440da9649a8aa36aaef000000000000000100000000000000000000000000000020824ce8426988565f955f44ee03d626fea805a15ec4db70b129a69a2d7b15a5aa000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a000000000000001d000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020dbdb6a4cc8b17c5ea2d125c6af18f1a5a232cbda042546a5e8b8a220e858de5e000000000000000100000000000000010000000000000020ab7aae7bbf9e20bdeb1ab6bbe7a70c6cd858e5d76f9f05de9e38ec9f931a3ec50000000000000001000000000000000000000000000000208e9ca24717ee2452a64953880cd16ce2ed80e0ab655a248e3a0d70cb8d9ef4b8000000000000000100000000000000000000000000000020cbb94a1fa90daec34851502087bc06a9b8934f9e2e87d1242484cea77e968a42000000000000000100000000000000000000000000000020d488fb112c8e7e22dfab501043651ee3017cc449d7e2043156d45aaf96580343000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000001d00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000000000000000000207bebb1b5de11152457d291912534c5ffe07f4ef1797e65901fa68e2f90056fb7000000000000000100000000000000010000000000000020d5f15fb4972b5ea2159a542111a45a1ff217a413588328aa49a47ed613fc70570000000000000001000000000000000000000000000000201a61d9687a39c69fc39cbb583e8569c27f226321d4438d1f17092925ea3cf032000000000000000100000000000000000000000000000020c1e67f4fe465546990e3ad91e731dd95b1c88152d8ecc54d60d94cbfdca528650000000000000001000000000000000000000000000000200b1317ae38b570b4c049c419190fae276bb0ef81fc42fd65f1a137ebd541d9ae000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b927200000000000000080000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000010000000000000020b2a09e1bba6978bd8c32031dac637f0f3d5206749723d885b5db7c283e254cac0000000000000001000000000000000100000000000000203b055f5ec21cdd2d321937c699cc5b005cfd392544e209343f6f4bc3609d50a8000000000000000100000000000000010000000000000020212011d70596d8f444a02b2551c63793bb6214725d0b1d4e2d024902a719d74d00000000000000010000000000000000000000000000002063b18099f915d818ff11dd06d2b4924e18e1b43d1a7d80c4018a6828759c3e2c000000000000000100000000000000010000000000000020659b6b070f44812ca2ffc215c67485587dd0d144e05eb3647148b4f5ca7360120000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000000800000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d6000000000000000600000000000000010000000000000001000000000000002025553f8f686626057f8d663cb54d66c5a84f60cbc033a86e180f41c8543523ce0000000000000001000000000000000100000000000000205c4181331efc246b6fd787984126b3c735f6b747840454826726ab672228df2000000000000000010000000000000001000000000000002008c5fc936786cf9d0af43c12be03cc772b25837622cd42f08df1c66e5e116a2a000000000000000100000000000000000000000000000020bd75800a626d45803e0ac76b5c093b70cab826c1e74d4cd0ce8e6c36106f95bc000000000000000100000000000000010000000000000020dbce0776e37eb7c2a9e60b3254ce5ea6bed0db83c8c2e6b120494c0d9ed2a76b000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f0000000000000008000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f299941856000000000000000600000000000000010000000000000001000000000000002028d53f53d8529a7e90d5ccae7564158bec1af6fa3a5a8ba8cbfb9aa9a6aa048c000000000000000100000000000000010000000000000020a7170bc0cfb0066ee2a6bc38ae323cf6155ef29a640796587131389fc7ddd196000000000000000100000000000000010000000000000020f87937c3d7f9ea889556bed01a00031a67448288e6ad311f669b4408eebc01ac000000000000000100000000000000000000000000000020842c39bed54d7be108142ed95a58b534014e03e9871691ec932be839f2294f4d0000000000000001000000000000000100000000000000207e13fb6690e345dd8bdf6ed863b9142988ca740ed6091c9fae658b221f7d7334000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a0000000000000008000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000010000000000000020b54a72cb89ccf52e566d99215fd66a8ab35c3e9c5fa456e5a43fc8eb9aa1832100000000000000010000000000000001000000000000002076f0d827402b47129db7da8669550ecbc1c84eddedb8bef62b4d08efce600e37000000000000000100000000000000010000000000000020ad2c19c26d0488214886b03e7e4bc57d130a100d9e13ced4921d6472e2238a2e0000000000000001000000000000000000000000000000201de5bb3d887c07d54506473a20db02428ebc54d6a3c978c792d0e6f1f4de0511000000000000000100000000000000010000000000000020cc3aa606fdcbf96592df9e3ecf28c535384ef37bff659d91d2f5982a3a391cb0000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000000800000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000010000000000000020bcf5094d09b6b17179ba3436f1b7be98ca6ba41a91456421e20664fb7f7443820000000000000001000000000000000100000000000000201df9ab42d54f8ea624eecc57fce828882c6b80c722d86bb88d11443ff87766af000000000000000100000000000000010000000000000020630f361882ada56a075e947b144639b306577494cfa2d14d2fd11f09586072a00000000000000001000000000000000000000000000000206e8232a0c61d237a50e6dcca4dcea8b407b71864d02b4c647447bc948ffe8ebc000000000000000100000000000000010000000000000020af9f96d3edd125bc1e0a105b9ffdc8e3024dc69325a78b2a02611964156a8e7a000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b9272000000000000003d0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000000000000000000020ace9659a3eca3c2a1cccbc983ead796d78a748e3786946462f4d9d1fdc3e34ac000000000000000100000000000000010000000000000020bcf05d3c5eb71fed288eb4b419a188c8860206b533025c802ed5cd504e55c1b00000000000000001000000000000000000000000000000207a1b3b2568d13a2eef371f9a6406e1e5ea8ea67cf4f7c3e9e841cfc385002de400000000000000010000000000000000000000000000002093496aa9b95cdfb66da9c0d5bc5df817484a2a333e9349baecc93bd74a2ca4730000000000000001000000000000000000000000000000209fbca920ee0c87a956f99c4f1362a800f24be48892fb636d69c31e2a28f6ac89000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000003d00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000000000000000000020c15d51cf18b6ba8c12ed152e4a515b632b24633b5f6b22f7103649e18d6f1f9e0000000000000001000000000000000100000000000000208b25ecd6ff537916132b0a2c9828a23713e826894f39c2af049fb06a056e2443000000000000000100000000000000000000000000000020ca4326b0ac9a40f7962046fbc2ae4a247b71dee20ff8514aa46bc9a7f710d2460000000000000001000000000000000000000000000000200c0b006e9ce5ab8dee54461051bb96c286fd71b34dc6edc2cc81ccb3100d316500000000000000010000000000000000000000000000002009d96f34c0d0d0c579558695e2590b6b8a00dc82f66b0ed035313048e74ae7cb000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc000000000000003d000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000000000000000000020938fa0a6b1c2b75bdf6f4ba90387cbcf0b23762fb05befccb17d0cea24fe684000000000000000010000000000000001000000000000002070475275547a4e19ad5111cbc2761f67ebbb11db7b19d3e5da5b0a1829c4ec5a0000000000000001000000000000000000000000000000205863974ae834cb6f7cdda3179a5eb9db26199ae6501319daa7e9350565a01a52000000000000000100000000000000000000000000000020a724c8ade8149e1cc611772680cb6d18385ad3f0e4e5bb60e4780827cedd136c0000000000000001000000000000000000000000000000209e4aa536330b2d7a31d018a0c66389dc79b3652f4ba9a731d52185c1d2764761000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e000000000000003d000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020f6d0f9998a4caeaedf31272eebc9c4f6855dfc972528fca3c6aedb2b52959ee40000000000000001000000000000000100000000000000200bbb509da79f5f8b438035f866b33e7d35ea0d24c196577e58c711e996e9d67a000000000000000100000000000000000000000000000020e0d59165174c1b01a1778b0c00ea048f351711781eb9b7905bac635125041c7c000000000000000100000000000000000000000000000020488cdfd2909dddf32aafba620adfd844cf7f0e6eae4371d0ed616315e9b3d1e900000000000000010000000000000000000000000000002068e96971008bee2f90df118bffada99c074a0d2c49bfc1b99915b2dcf51048a20000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000003d00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f000000000000000600000000000000010000000000000000000000000000002078d73dc05e52ee7c8e19682c5f83941c32eccea8702643ba4954454340dd7d48000000000000000100000000000000010000000000000020b2bd6c7bce44e8cb1dd2c1ada3f46a4ef84aa70a4f6d582427f82789c25091290000000000000001000000000000000000000000000000207307458ebfa1b463080bdf0c8b226e68af95d3ce03c81f574dc53886fc92c5510000000000000001000000000000000000000000000000200aeeef018d0928774997734b759241fff2f2f118735c3cc567f475600c93c6450000000000000001000000000000000000000000000000209c3cc5f2e03bbb6fbb6a00377debdbb0ff07e93db8e65b607e9ce577d2bff4060000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f8000000000000001e0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e0000000000000006000000000000000100000000000000010000000000000020ba15f8caa378deb827f35ab84ee3c8ef16117ea97e57e0f20b14ae88d236b6ff000000000000000100000000000000000000000000000020a6a1702db35b748e42f0f110ec40716f747145613b2b25986a5c3dc74e1ab13a000000000000000100000000000000000000000000000020ab170dad02da8e5a4c268e132c454adc4b6729b907eb3b0647e0b75ba06ca1ae000000000000000100000000000000000000000000000020261c2de001295b8ae6db8a3110d2d193b80167fee59f8f542a00ce1709747a6900000000000000010000000000000000000000000000002028d0668b3b0bb626ddb7371edbb5222936f68264e2cfb9376038323928d12a950000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000001e00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d6000000000000000600000000000000010000000000000001000000000000002085351021aea650c4597031fb7dc932b99054b360e97ca572bb6bece35ae11bdf0000000000000001000000000000000000000000000000203a2146e92a3ad3706b36813e4c45136f975811c6589e6331024a956042e7768c00000000000000010000000000000000000000000000002024299b0256071ee4c8943b75440fdb14cb0a87a9d470ca0d23930e470c29fd2d00000000000000010000000000000000000000000000002068af7e3f604105e672bb008f7f6497a71b4230ffaedefc6e201e3a965f80aad9000000000000000100000000000000000000000000000020d7f7d11996573b5da0d2cbe7d58b7d9ee40d6b31bbfd992e1387dae096d31597000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f000000000000001e000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000010000000000000020f821bc8956540d674f85944695ec2cdab831a2a389a2d11a3d7cb0e72d70c402000000000000000100000000000000000000000000000020d556e53e89946cc6a63053d2f237bd42df808fd51872fe3a16ac4cf4f89b865e0000000000000001000000000000000000000000000000201f0f92e1ba9dfc9c805ddaed879861bdc05c3a78b978e8bb3a8c041349d557fb0000000000000001000000000000000000000000000000202f82c0c1a186d9e1264fb0ac164a09274cdc7fa84262a440da9649a8aa36aaef000000000000000100000000000000000000000000000020824ce8426988565f955f44ee03d626fea805a15ec4db70b129a69a2d7b15a5aa000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a000000000000001e000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f32938000000000000000600000000000000010000000000000001000000000000002030d6b49905be576af2c974f08de40dec367587e3f626cc9bc52f04670a7003580000000000000001000000000000000000000000000000207d27cce8e7d4819cb9c3a6e141c2d34d37acb8e1fc1075a3bb2d20b8408e984c0000000000000001000000000000000000000000000000208e9ca24717ee2452a64953880cd16ce2ed80e0ab655a248e3a0d70cb8d9ef4b8000000000000000100000000000000000000000000000020cbb94a1fa90daec34851502087bc06a9b8934f9e2e87d1242484cea77e968a42000000000000000100000000000000000000000000000020d488fb112c8e7e22dfab501043651ee3017cc449d7e2043156d45aaf96580343000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000001e00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000100000000000000208f526051780fa2a3d112fdedee88168162589e00a4943c032e8b91bc4c53d9840000000000000001000000000000000000000000000000202671dd30be892f7113a73cf7f3a8445d53ddc40a8e9973ee587af2a0c1606cb80000000000000001000000000000000000000000000000201a61d9687a39c69fc39cbb583e8569c27f226321d4438d1f17092925ea3cf032000000000000000100000000000000000000000000000020c1e67f4fe465546990e3ad91e731dd95b1c88152d8ecc54d60d94cbfdca528650000000000000001000000000000000000000000000000200b1317ae38b570b4c049c419190fae276bb0ef81fc42fd65f1a137ebd541d9ae000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b9272000000000000003f0000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e00000000000000060000000000000001000000000000000000000000000000205d4c779ca056d5a43fdb294c291c55feb6effb474b2ffa15a47c7826b94cf035000000000000000100000000000000000000000000000020e847feaf559ce80754223c34cd9f84ef8630f27f2ec5da9b17c0184e56ac0bbe0000000000000001000000000000000000000000000000207a1b3b2568d13a2eef371f9a6406e1e5ea8ea67cf4f7c3e9e841cfc385002de400000000000000010000000000000000000000000000002093496aa9b95cdfb66da9c0d5bc5df817484a2a333e9349baecc93bd74a2ca4730000000000000001000000000000000000000000000000209fbca920ee0c87a956f99c4f1362a800f24be48892fb636d69c31e2a28f6ac89000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000003f00000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000000000000000000020837fe16eb995227a7f26513d8857ff01ce7279bd091bf82978429b062e6c7e0c000000000000000100000000000000000000000000000020133681acf78f078b649528d2bc4ebbf814409928ff3b11c5c2888bc599bdb55c000000000000000100000000000000000000000000000020ca4326b0ac9a40f7962046fbc2ae4a247b71dee20ff8514aa46bc9a7f710d2460000000000000001000000000000000000000000000000200c0b006e9ce5ab8dee54461051bb96c286fd71b34dc6edc2cc81ccb3100d316500000000000000010000000000000000000000000000002009d96f34c0d0d0c579558695e2590b6b8a00dc82f66b0ed035313048e74ae7cb000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc000000000000003f000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000000000000000000020d833267e4e1548dcec354bdd387dc676d52a3c6577c9bde310a8ea9b7d1462ae0000000000000001000000000000000000000000000000209ba171b4bbcf3a9c543a04d5d142e4e190ad4d81bcd4c08138e05f5dc9127d9e0000000000000001000000000000000000000000000000205863974ae834cb6f7cdda3179a5eb9db26199ae6501319daa7e9350565a01a52000000000000000100000000000000000000000000000020a724c8ade8149e1cc611772680cb6d18385ad3f0e4e5bb60e4780827cedd136c0000000000000001000000000000000000000000000000209e4aa536330b2d7a31d018a0c66389dc79b3652f4ba9a731d52185c1d2764761000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e000000000000003f000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020eca7ca33c2bb4170ac3f035f05468eeb2191e8082d35f89f81cd2a2b7468d41200000000000000010000000000000000000000000000002005ecb630e13c931db03887d2de361943a7433cd3a25d69061ef78222bc734cd6000000000000000100000000000000000000000000000020e0d59165174c1b01a1778b0c00ea048f351711781eb9b7905bac635125041c7c000000000000000100000000000000000000000000000020488cdfd2909dddf32aafba620adfd844cf7f0e6eae4371d0ed616315e9b3d1e900000000000000010000000000000000000000000000002068e96971008bee2f90df118bffada99c074a0d2c49bfc1b99915b2dcf51048a20000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000003f00000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f000000000000000600000000000000010000000000000000000000000000002016a091d31a88cdd9cdcf3c9cf1ef4ce3622029681073cb148d36577414b8df7d000000000000000100000000000000000000000000000020680c853dc6a0b371601382d940b4b0d046a42c04dba51c8b8801bcceaddb6f9f0000000000000001000000000000000000000000000000207307458ebfa1b463080bdf0c8b226e68af95d3ce03c81f574dc53886fc92c5510000000000000001000000000000000000000000000000200aeeef018d0928774997734b759241fff2f2f118735c3cc567f475600c93c6450000000000000001000000000000000000000000000000209c3cc5f2e03bbb6fbb6a00377debdbb0ff07e93db8e65b607e9ce577d2bff4060000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000380000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e000000000000000600000000000000010000000000000001000000000000002025fed04d69e49303c22cd2fadc0112c6978ec8f20f8fa8fe454102aaef8bd64a000000000000000100000000000000010000000000000020ea132e6ad465bc3d576d24943e8eb110cbbe9e0822e43ab2b485cff78cfe7bbf0000000000000001000000000000000100000000000000206402373ddcb71c9fa2bfe1d2d9097bfb1e67c3a16c2603e6850eedece20f804700000000000000010000000000000000000000000000002093496aa9b95cdfb66da9c0d5bc5df817484a2a333e9349baecc93bd74a2ca4730000000000000001000000000000000000000000000000209fbca920ee0c87a956f99c4f1362a800f24be48892fb636d69c31e2a28f6ac89000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000003800000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000100000000000000204ee0c0b2ff1aa3546421e9e97f4f6196aa1e08d2fe0cb62b9340e2067d59b73f00000000000000010000000000000001000000000000002087acc052c4befcbc863390a53bc9fe76ddf39509151f111da33e34eefa9c20bb000000000000000100000000000000010000000000000020ec80243d3ec903cb562c8eacb603f6c834430b23f15d562812829d19ab4c355c0000000000000001000000000000000000000000000000200c0b006e9ce5ab8dee54461051bb96c286fd71b34dc6edc2cc81ccb3100d316500000000000000010000000000000000000000000000002009d96f34c0d0d0c579558695e2590b6b8a00dc82f66b0ed035313048e74ae7cb000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000038000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f299941856000000000000000600000000000000010000000000000001000000000000002076cf6d425c75d99e7c14d61eac345baaa286bf62aa616e1b43f2880d426fa226000000000000000100000000000000010000000000000020e25b16e92ce565166fe90f1c3edb66f7f7a147fe1eb50d049a44d69786c76df90000000000000001000000000000000100000000000000208e2274770ab1400a8d4a14228b5b83fbbc2f8b567f0d93bae220f05170b20030000000000000000100000000000000000000000000000020a724c8ade8149e1cc611772680cb6d18385ad3f0e4e5bb60e4780827cedd136c0000000000000001000000000000000000000000000000209e4aa536330b2d7a31d018a0c66389dc79b3652f4ba9a731d52185c1d2764761000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000038000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f32938000000000000000600000000000000010000000000000001000000000000002079de3766568509821bc323df29732f79a7231f97a7156c07f5f9c900dd040a30000000000000000100000000000000010000000000000020f33d0621a9be5d0bc10fb9ba479d2c92b9442af4ac19c6bc422738323447ccbf0000000000000001000000000000000100000000000000204b85a596b27c62a80e804a5f440e38fd1798e192f2e4faf6c9d937e152644b4f000000000000000100000000000000000000000000000020488cdfd2909dddf32aafba620adfd844cf7f0e6eae4371d0ed616315e9b3d1e900000000000000010000000000000000000000000000002068e96971008bee2f90df118bffada99c074a0d2c49bfc1b99915b2dcf51048a20000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000003800000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000100000000000000200809765dfcbcb9e1615204c8e0c08810d94b3e8b1dcc5a958d5c4b63a0b152d000000000000000010000000000000001000000000000002004eac4235e209d96bd17c310b61b8b64f2de73bff9eedc68f3d5329676b3529100000000000000010000000000000001000000000000002090d7b0bcec2a4257083160dd8ffbec8f4d56bdf900f2859e017373f837e3c55e0000000000000001000000000000000000000000000000200aeeef018d0928774997734b759241fff2f2f118735c3cc567f475600c93c6450000000000000001000000000000000000000000000000209c3cc5f2e03bbb6fbb6a00377debdbb0ff07e93db8e65b607e9ce577d2bff4060000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f800000000000000050000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e000000000000000600000000000000010000000000000000000000000000002080605255e64754fe39bbae7765c123629a4c2da652e7b7a845d118f9eb022af90000000000000001000000000000000100000000000000202feb59037d37e58c7ae6981240627157e2d56c7ce73366769597e4a404b62e4c000000000000000100000000000000000000000000000020c8a9706d43613feef1f7182c33ec47958f103c466f0a5c331ae15d21af056b2a000000000000000100000000000000010000000000000020407e1d016b2156134625c6c0acace3fca412163392f1c4920830c79723de997b000000000000000100000000000000010000000000000020659b6b070f44812ca2ffc215c67485587dd0d144e05eb3647148b4f5ca7360120000000000000001000000000000000100000000000000204467ec51ac2678c4458d9a3edfbce4efd6f8e939774edd234b937a850f2d8011000000000000000500000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d60000000000000006000000000000000100000000000000000000000000000020deadcf14c5fb6c6e0ee09890e8998329b274d6fbc7b15f827288c5fddf2e888c0000000000000001000000000000000100000000000000208c082649fedb2d6d1df100e532a8001567a341813a6a0fe1b04813431f53cd33000000000000000100000000000000000000000000000020a83ce3f6822f2805da6f235cd57c1e49249433b8646938623efd0a040bb1ded60000000000000001000000000000000100000000000000204bc065f3dd3e3b30a0dac92ed91cf22f8259a480aa87d1c980b53b9a86e52a01000000000000000100000000000000010000000000000020dbce0776e37eb7c2a9e60b3254ce5ea6bed0db83c8c2e6b120494c0d9ed2a76b000000000000000100000000000000010000000000000020ba287c91e1837cf95a60466adf2e983d3e1bc1dd772a30f9d4ebf9a5c624a41f0000000000000005000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000000000000000000020669356750c87158b6d053a2ff3d07f379c15d4a67e1c0567f4312cd1b2060e510000000000000001000000000000000100000000000000206c7de327c4cde9c353811da48a1929a019d15fb4d30226f8005d95a3a5043ff200000000000000010000000000000000000000000000002057b19820ae67477ff0fc9a389396aeb670b7c8e05836cc5910b5ddb99ab4caf9000000000000000100000000000000010000000000000020a4de7176464be9124785e24d63c211255e653cd53798f2b73611e5f15feef7c70000000000000001000000000000000100000000000000207e13fb6690e345dd8bdf6ed863b9142988ca740ed6091c9fae658b221f7d7334000000000000000100000000000000010000000000000020702dffb1d8d06dc763dc02242ce0cf15f3d3925fdb092e9a44ae3810e5ccec4a0000000000000005000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f329380000000000000006000000000000000100000000000000000000000000000020aa21819af434e5f2fac4e429c98e35053be9498009d29363fe03ff776eeb0b9f0000000000000001000000000000000100000000000000200145bfa689a590a70838a593886aa43d2fcfc263d3156b731a198b5f60d17cb80000000000000001000000000000000000000000000000202ca61985fbc5910957e78a916da8508a3ead835fe2a43c85aafb20f5955f0ca0000000000000000100000000000000010000000000000020d2ac9a6c10a81d256c41bc67e07527d5a36e5dc54a2c6b984bb939fbc8ccd413000000000000000100000000000000010000000000000020cc3aa606fdcbf96592df9e3ecf28c535384ef37bff659d91d2f5982a3a391cb0000000000000000100000000000000010000000000000020cd2c9854af6bcc27986c3ca36244687b4759f938229e11ea0ba4cad174caf7dd000000000000000500000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f0000000000000006000000000000000100000000000000000000000000000020010bc528b5465e9f3de0de8b8d47925b1d3655bf436b91380249b00eeb8d94400000000000000001000000000000000100000000000000202ff68e275e9f3c1b3b7f743a4782f617731151b00ff2a2b3c7ad2c740a85ee730000000000000001000000000000000000000000000000206dd7a46816110430442508860c306738f4a9a0455d87cb1fe469f761064972aa000000000000000100000000000000010000000000000020482529a81b98175b81ad742dd6e90b5edefabf8d4cb4e27a6d7438b3191f6bad000000000000000100000000000000010000000000000020af9f96d3edd125bc1e0a105b9ffdc8e3024dc69325a78b2a02611964156a8e7a000000000000000100000000000000010000000000000020cf1233b1b52a86a3afbae1f2412f889b6c0cec637185984030c1666bd63b927200000000000000290000000000000020f7fb5af75b5d40139379a7c2b5c447c3e47a0b8ce22ac15c0f58af4fd764a54e00000000000000060000000000000001000000000000000000000000000000201b81605c89f82931ba1f9c40f6a11252716f4b02a1405f25e3c8d9342ae5141d000000000000000100000000000000010000000000000020a7ab07465b54611179f5d8b3f01dda40efa5ef6a7beb7ddea184943d0014654c0000000000000001000000000000000100000000000000201fc30593ec7d427903dd1f55256e3ffc19a85f70cf2a8e7c0acb4f0a53f1effe000000000000000100000000000000000000000000000020bc2ec48a0ffda0d4d83b497975512e07ddaa2af9c054c3050454c1844d04b72f00000000000000010000000000000001000000000000002058440bb3eca8231612be77b9c78c293b9f181c1881583a7586c86adb22fcb727000000000000000100000000000000000000000000000020075c1ed55e5306f0d731109ca3431886dfd25beae783b317683e26dea49828d5000000000000002900000000000000207f64eba0f313d01a78ca31f52c8245595d1a2376b249ef76eacc2d71ee6cd1d600000000000000060000000000000001000000000000000000000000000000202abc88d2e3de401ab2c938e2d0e3c6ace5b030a54d9aeff0e9218e717f5d843c0000000000000001000000000000000100000000000000206eda94265d040faabf44625d55ab8b4ec7a5f1ec78d8b49e877a868ec6619d3900000000000000010000000000000001000000000000002029ddc1ae85781550b5b8262839b67495818dab865d8bb41a08d9d715a8f5ad470000000000000001000000000000000000000000000000201dbcfe2b985f1976717c36ba364b4855be4e3991bd1679509516db11cedec7830000000000000001000000000000000100000000000000202aeb1a21a8a51e3838d3ca4c4d1d4e93311f3f6425f84b09420bece8ed7eb8aa000000000000000100000000000000000000000000000020a814307bb9ea05955b844f1c790b8529dbbbc77272478e9f525c0e755c4d2fdc0000000000000029000000000000002023ac6deee0d39c98e44e3ac6f68b091952157a46229a24bc313e68f2999418560000000000000006000000000000000100000000000000000000000000000020a99d428a8f4af26c826a4ed7482597440fc869f53f585c86c7250ec11b21a8d8000000000000000100000000000000010000000000000020f27a29d328bdc6caa0ee3f0f6f7c703890f1805c474144e4bcbc87eab56c5335000000000000000100000000000000010000000000000020b21fce2155f8766d6e3d49a87773c41a486b0eb7dabcbfc0cf2963f7b34ecd33000000000000000100000000000000000000000000000020291814bb23ca041a829cd777ab17a74972cca1d409306698f066b2b12b5b7e450000000000000001000000000000000100000000000000205fd15a34d885afcd9d8a737c1c795199d26167415933cd491cceee66e0dc2005000000000000000100000000000000000000000000000020a14ee6f9546cfb02ff78b709dabacd0a429ab43c6b6fd584555628e9aaf7108e0000000000000029000000000000002015428122db3c3c0fbf9fa59275573d91d1dc457f965544fc97026f3762f3293800000000000000060000000000000001000000000000000000000000000000206f1230ee39fa4b475a68ca2c21a0a52a3a2d008ace0147d9367ca0b19fbf44b300000000000000010000000000000001000000000000002054f128363693244ccfcb0f852cc53499930006a76f4f8ad53422282d7ba2b1a900000000000000010000000000000001000000000000002032906f8b355f4c2d6b639a6899bcadf4e2cb7fcba76d4ccb412d5c24053801490000000000000001000000000000000000000000000000207afc3d3f377ea328d0a546da843425d8cd2f61d21026ec31c026288cb3d0698b0000000000000001000000000000000100000000000000201e8494aa47cbe65ed5b4dd007d4a7604316f8e9ecc719b852b563b4dbbae60460000000000000001000000000000000000000000000000205c77ef5068a9cc47ae333c46d9faa915e49a6fed586bde0e6044f58513c7a20c000000000000002900000000000000203312c10ebb0a3ab4d985b795df5be5c06a3f5983f0850e8fd39ea1db2805bc3f00000000000000060000000000000001000000000000000000000000000000203e4b5489c39040df94e04b61ae4144d75b3731c552cb2872ea3522b56365e3bb0000000000000001000000000000000100000000000000203b71c8650663ac45104b87aeb469737990a8040255ea025b39bbd29956133147000000000000000100000000000000010000000000000020bbdfd0dd1887a478722c75ca8033a8a2201ecbe77561ec5505c4f7fa0b2fc07f000000000000000100000000000000000000000000000020d3e115a5a233331eea0c9d1a61f910fb1ddbd717686aaafe4459fc88d54a083e00000000000000010000000000000001000000000000002004a802d0ff4ecdc663d8407bd9f69541f08fb3a7e0f38cfd3d9972c90108df1a0000000000000001000000000000000000000000000000204ce5348eeeee9b7a32feabcbd0a916dbe05447c1e6022211a8046a1ef97b95f80000000000000050000000000000003900000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a00000000000000060000000000000001000000000000000000000000000000201d4e6c0712764147149ef25466d16fc7c33065b2c6565136c41c38fe01046650000000000000000100000000000000010000000000000020c9c0b321b083e72b287c1f5f27bd58c8853f81a58ea7aa78fc4880a0b3e1a20300000000000000010000000000000001000000000000002088d8b2c047feeef326c27ee57ed797854d67aa1709f8a7128818fa62e55a7001000000000000000100000000000000000000000000000020e66c07583081e267c33c835ae197bdafb24712978d6aac9d0f53e986147fea4200000000000000010000000000000000000000000000002024e7c960723bc5ff5c693ca69cc078c6710037929d28ae1a94c75c99daed9c020000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000190000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000000000000000000205de6a68433963cf0c7857d87422df14e10c32724c7cfd2bf5af7cd6a9a11536000000000000000010000000000000001000000000000002049b93df03a2d9f677c69e5781a260e352ca40353ad1badb8e1d6a023c5bcf21e0000000000000001000000000000000100000000000000209a1a091707d63ca2fc90adc03b3ff0bbe24e5d43365c4f0d46f796825fa264d0000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000002600000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020b2eed6e0a8e84ed3bbd514720df2e18dcd3a57a71ab7d4a45bc12f0759a67301000000000000000100000000000000000000000000000020700a3f92944e6a87bc423009506865591e99810e7ab4554df985ec922f18aea40000000000000001000000000000000000000000000000200fb793038444977c354fee118941457e8f5cc8bd6d0c982f4e159d367c2849e70000000000000001000000000000000100000000000000206325b9ede6b47ca05a9aef70d48140c5ba36217b5522573795eae3ae5ed72147000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000060000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000100000000000000201280f1bcea43a07ba8a787f1c57cacf0d325dbc28386d88b7ef10b15697e2beb00000000000000010000000000000000000000000000002085f465dc62741704ec2a6392ac90942a708a72037ede0e36ab09f775b3603c05000000000000000100000000000000000000000000000020c60fac2a2326940613ae844e1963c0b7722fb786b5c848e6e5cf4560b78ff515000000000000000100000000000000010000000000000020fb11825034e1e6f44af2363fb0e9dd5bb9f3a69d7ac16add55263b9f77626b880000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000002300000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a00000000000000060000000000000001000000000000000000000000000000208559f1fb8d215280bdc9e28ba319b8cc31b793b78c37e9fe1ebdff20e4bc69f100000000000000010000000000000000000000000000002012a0ef251e1c1d23cf149ec9cc670fbe5eeabf753d5a562eeff8a916060216930000000000000001000000000000000100000000000000204fd5e258ba7ff0f4bad07c49f2daf5f54e385148ca793245ffe062d67a02bbda0000000000000001000000000000000100000000000000206325b9ede6b47ca05a9aef70d48140c5ba36217b5522573795eae3ae5ed72147000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000030000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce25000000000000000500000000000000010000000000000000000000000000002094351d233e310dcc0ef8069de2cfa8b909f9e00bd6acf0b54ad1a43a7c1a5fec000000000000000100000000000000000000000000000020ec109daf6825ed91a9d90ad3b60af2ef73dd22a7eba66a8e0388fcbfe194b548000000000000000100000000000000010000000000000020d6eb504e9ef75a7779807884ffd88863c349a65c2d2bdb0014046feb1ccb2ded000000000000000100000000000000010000000000000020fb11825034e1e6f44af2363fb0e9dd5bb9f3a69d7ac16add55263b9f77626b880000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000000100000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020993f6747863d1184669b0175cc4b96dc9d1210e7cb7b97de894eee69c37a356a0000000000000001000000000000000100000000000000205e6da68da3ea9ad273f16ccdd48c3376274c734878296f6641f81e4d32b76656000000000000000100000000000000010000000000000020a7f7e46fa2884bc9ae411e1aeb83a2faf804a1d64b37e7b44cd72d7dd7a386270000000000000001000000000000000100000000000000203bab5ae19c3a6928a4468d0b856ea71595871c296f9e5ef991de19ee35356de0000000000000000100000000000000010000000000000020cab72ad06a11034c52eef8fc9375f208dcf827280d9757a6c0fa58f455a95b700000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b00000000000000010000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000000000000000000020da04e460913c32b9095fbe1a31f18a0841cf863632676c76517b769f1af8989200000000000000010000000000000001000000000000002075e379d2002547c4b271f443c8a80a0014464bb265311e488f1ed171187359eb000000000000000100000000000000010000000000000020d6eb504e9ef75a7779807884ffd88863c349a65c2d2bdb0014046feb1ccb2ded000000000000000100000000000000010000000000000020fb11825034e1e6f44af2363fb0e9dd5bb9f3a69d7ac16add55263b9f77626b880000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000001f00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a00000000000000060000000000000001000000000000000000000000000000201725838680c0bb2b54b3e60370c133a78a6621d7a69726dcdd173526c3e6b9ba0000000000000001000000000000000000000000000000205c83ece4383148347a1b938c80a649b18433f1e821241773a02351a95f6cf96c000000000000000100000000000000000000000000000020364ea361605912860ae69330ee197e81f5cf2aee5ee01238f89915c19e1b674f0000000000000001000000000000000000000000000000200178800a41369b66440e7a4d50b9cb10df27ae7b6096e93b35223a002189a50300000000000000010000000000000000000000000000002061bca55e64c007d6883994dba531cf815f2ac6477e2b8a7319ae51a4a14601ac0000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b000000000000001f0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce25000000000000000500000000000000010000000000000000000000000000002036e0725d8ea78d84622388e50be26e1800667f9718316fa6e5b5641327374dc70000000000000001000000000000000000000000000000204cd898605e569c9a3b4c9527c494b330f36420f151c4dc20e00933ca34fe5564000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000003c00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020c8349b495099bc7ff6e93c98c5758cb16d0fb610423adfee7b5ebae82d9bf08b0000000000000001000000000000000100000000000000202cd4647ce0dd828333f071d6897d8725115df161b3afee5fd00125b915a8e6cc000000000000000100000000000000000000000000000020897ff236f9146b3986820c1eab71fcb6935e6cf4a73d36131649a0459221c9d7000000000000000100000000000000000000000000000020e66c07583081e267c33c835ae197bdafb24712978d6aac9d0f53e986147fea4200000000000000010000000000000000000000000000002024e7c960723bc5ff5c693ca69cc078c6710037929d28ae1a94c75c99daed9c020000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a000000000000001c0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000100000000000000201d3adddcc76832796a7d70940da113cf90641a65120164763ef419c25e741b4e00000000000000010000000000000001000000000000002043952c83787323ed02967f6874b2568ab0c8c37159ec8878675f257f475a7c81000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000001f00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a00000000000000060000000000000001000000000000000000000000000000201725838680c0bb2b54b3e60370c133a78a6621d7a69726dcdd173526c3e6b9ba0000000000000001000000000000000000000000000000205c83ece4383148347a1b938c80a649b18433f1e821241773a02351a95f6cf96c000000000000000100000000000000000000000000000020364ea361605912860ae69330ee197e81f5cf2aee5ee01238f89915c19e1b674f0000000000000001000000000000000000000000000000200178800a41369b66440e7a4d50b9cb10df27ae7b6096e93b35223a002189a50300000000000000010000000000000000000000000000002061bca55e64c007d6883994dba531cf815f2ac6477e2b8a7319ae51a4a14601ac0000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b000000000000001f0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce25000000000000000500000000000000010000000000000000000000000000002036e0725d8ea78d84622388e50be26e1800667f9718316fa6e5b5641327374dc70000000000000001000000000000000000000000000000204cd898605e569c9a3b4c9527c494b330f36420f151c4dc20e00933ca34fe5564000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000001000000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020b660ee564c133a610165e48112fb0a175922f823f84f6282301659dc78edae0400000000000000010000000000000001000000000000002034bd988f572837b892d565ca36ec2229eebe7090d1d2a6223e05180a2397d49d000000000000000100000000000000010000000000000020126e43fc89be56f6dbf774b292faf494d961bf902703368c3f4d27760b5429a6000000000000000100000000000000010000000000000020eb4e0651e828a84fae3111cd7f737af87f306934914a308793a6b7f27908b58b00000000000000010000000000000000000000000000002061bca55e64c007d6883994dba531cf815f2ac6477e2b8a7319ae51a4a14601ac0000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b00000000000000100000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce25000000000000000500000000000000010000000000000001000000000000002093990098c78699790934bf5a0c6d3ac96c48795e4a954236f7b2b376929eba8e000000000000000100000000000000010000000000000020d5420860789793bbdf4b32db486f7422102cfca8d1c25ae72abfd1b0dbd9accb000000000000000100000000000000010000000000000020ff353585f4318a2bc8ec891d323f97568b7b25040c702374c551ef4e9a3b1b61000000000000000100000000000000010000000000000020bf60b679b8e9b0759c4d05cdd1cce271d5bfb1e58f558b4e85891de0e584c083000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000001100000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a000000000000000600000000000000010000000000000000000000000000002035d35851605b34059cfd1dfe469a96d5c39d7c6872ccd382aee93e24389b917c00000000000000010000000000000001000000000000002034bd988f572837b892d565ca36ec2229eebe7090d1d2a6223e05180a2397d49d000000000000000100000000000000010000000000000020126e43fc89be56f6dbf774b292faf494d961bf902703368c3f4d27760b5429a6000000000000000100000000000000010000000000000020eb4e0651e828a84fae3111cd7f737af87f306934914a308793a6b7f27908b58b00000000000000010000000000000000000000000000002061bca55e64c007d6883994dba531cf815f2ac6477e2b8a7319ae51a4a14601ac0000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b00000000000000110000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000000000000000000020e9ff178f86227be39b9b0d6381bf83f3c7ad683bc12c5f44db96f62adad40c1d000000000000000100000000000000010000000000000020d5420860789793bbdf4b32db486f7422102cfca8d1c25ae72abfd1b0dbd9accb000000000000000100000000000000010000000000000020ff353585f4318a2bc8ec891d323f97568b7b25040c702374c551ef4e9a3b1b61000000000000000100000000000000010000000000000020bf60b679b8e9b0759c4d05cdd1cce271d5bfb1e58f558b4e85891de0e584c083000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000001e00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020bed3d57f1a0f265d35c741f468fe5ae25b80a9d8cce0bb511ce6d02c5f45496a0000000000000001000000000000000000000000000000205c83ece4383148347a1b938c80a649b18433f1e821241773a02351a95f6cf96c000000000000000100000000000000000000000000000020364ea361605912860ae69330ee197e81f5cf2aee5ee01238f89915c19e1b674f0000000000000001000000000000000000000000000000200178800a41369b66440e7a4d50b9cb10df27ae7b6096e93b35223a002189a50300000000000000010000000000000000000000000000002061bca55e64c007d6883994dba531cf815f2ac6477e2b8a7319ae51a4a14601ac0000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b000000000000001e0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000010000000000000020bab8714776f13ede8b6c14d2f9fa1dbc18ce6f336b8b592c0ea67c23f48608820000000000000001000000000000000000000000000000204cd898605e569c9a3b4c9527c494b330f36420f151c4dc20e00933ca34fe5564000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000000900000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a00000000000000060000000000000001000000000000000000000000000000204be7f590eb9344dd875819add7cb8a42e2072589f30801dc3c1fc2a0ed3bdd7f0000000000000001000000000000000100000000000000207f1a19165bceb32d754c643a39696fac86e2414996354784c22f2e02c92f527c0000000000000001000000000000000100000000000000206b8664c253c857f4081b903f24cd144c3fecea41bad9c9bbc6dede7aec8206d200000000000000010000000000000000000000000000002032f5d2fcd66c6d1be270028a1b13801252fc376fa82b764868eec39365d7ad3d000000000000000100000000000000010000000000000020cab72ad06a11034c52eef8fc9375f208dcf827280d9757a6c0fa58f455a95b700000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b00000000000000090000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000000000000000000205c957fe18e200f67dcfdaff6ac0e79f330938d1f8ded2406740505d688bec0ad000000000000000100000000000000010000000000000020e1b6449da70162184206e3c54f8a1bc62dc59e315ed2d859457c4a36e0692d1200000000000000010000000000000001000000000000002012efdb19f3477e740c260ab39237e12947930f9d6371304227e0478ea58af45d00000000000000010000000000000000000000000000002016bfa36762c0536ae259ab6ab17bacf98951fc37dcb1f69229fd857fd86fb9110000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000001c00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020bd40693648bcf4063a2ce36449fb2340b0936108f3e17da0f35d0c1b9cfdc7ee00000000000000010000000000000001000000000000002031576616dfc8f01227203acd3c8aaf85a0fe1fadd2d720eccd06200027580a85000000000000000100000000000000000000000000000020364ea361605912860ae69330ee197e81f5cf2aee5ee01238f89915c19e1b674f0000000000000001000000000000000000000000000000200178800a41369b66440e7a4d50b9cb10df27ae7b6096e93b35223a002189a50300000000000000010000000000000000000000000000002061bca55e64c007d6883994dba531cf815f2ac6477e2b8a7319ae51a4a14601ac0000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b000000000000001c0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000100000000000000201d3adddcc76832796a7d70940da113cf90641a65120164763ef419c25e741b4e00000000000000010000000000000001000000000000002043952c83787323ed02967f6874b2568ab0c8c37159ec8878675f257f475a7c81000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000003c00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020c8349b495099bc7ff6e93c98c5758cb16d0fb610423adfee7b5ebae82d9bf08b0000000000000001000000000000000100000000000000202cd4647ce0dd828333f071d6897d8725115df161b3afee5fd00125b915a8e6cc000000000000000100000000000000000000000000000020897ff236f9146b3986820c1eab71fcb6935e6cf4a73d36131649a0459221c9d7000000000000000100000000000000000000000000000020e66c07583081e267c33c835ae197bdafb24712978d6aac9d0f53e986147fea4200000000000000010000000000000000000000000000002024e7c960723bc5ff5c693ca69cc078c6710037929d28ae1a94c75c99daed9c020000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a000000000000001c0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000100000000000000201d3adddcc76832796a7d70940da113cf90641a65120164763ef419c25e741b4e00000000000000010000000000000001000000000000002043952c83787323ed02967f6874b2568ab0c8c37159ec8878675f257f475a7c81000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000000a00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a000000000000000600000000000000010000000000000001000000000000002050df00aae0130b1180a1f07ed26c2af1dfdbcf8ffd76dfff27d68e8aa7264386000000000000000100000000000000000000000000000020796e91eaa6d396ab877ec7a84e1d8d084a69dda27b152a4575ba94f9231676720000000000000001000000000000000100000000000000206b8664c253c857f4081b903f24cd144c3fecea41bad9c9bbc6dede7aec8206d200000000000000010000000000000000000000000000002032f5d2fcd66c6d1be270028a1b13801252fc376fa82b764868eec39365d7ad3d000000000000000100000000000000010000000000000020cab72ad06a11034c52eef8fc9375f208dcf827280d9757a6c0fa58f455a95b700000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b000000000000000a0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000010000000000000020adcfc7399b7f54dffa210b62ef9f387bf9917135f9a0dd7cbeaed6332ddc96610000000000000001000000000000000000000000000000201b537d90761f18e0d990acfbad3607f40acbb8ff91ca128b4f6cf4f27d967f3500000000000000010000000000000001000000000000002012efdb19f3477e740c260ab39237e12947930f9d6371304227e0478ea58af45d00000000000000010000000000000000000000000000002016bfa36762c0536ae259ab6ab17bacf98951fc37dcb1f69229fd857fd86fb9110000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000001e00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020bed3d57f1a0f265d35c741f468fe5ae25b80a9d8cce0bb511ce6d02c5f45496a0000000000000001000000000000000000000000000000205c83ece4383148347a1b938c80a649b18433f1e821241773a02351a95f6cf96c000000000000000100000000000000000000000000000020364ea361605912860ae69330ee197e81f5cf2aee5ee01238f89915c19e1b674f0000000000000001000000000000000000000000000000200178800a41369b66440e7a4d50b9cb10df27ae7b6096e93b35223a002189a50300000000000000010000000000000000000000000000002061bca55e64c007d6883994dba531cf815f2ac6477e2b8a7319ae51a4a14601ac0000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b000000000000001e0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000010000000000000020bab8714776f13ede8b6c14d2f9fa1dbc18ce6f336b8b592c0ea67c23f48608820000000000000001000000000000000000000000000000204cd898605e569c9a3b4c9527c494b330f36420f151c4dc20e00933ca34fe5564000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000003900000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a00000000000000060000000000000001000000000000000000000000000000201d4e6c0712764147149ef25466d16fc7c33065b2c6565136c41c38fe01046650000000000000000100000000000000010000000000000020c9c0b321b083e72b287c1f5f27bd58c8853f81a58ea7aa78fc4880a0b3e1a20300000000000000010000000000000001000000000000002088d8b2c047feeef326c27ee57ed797854d67aa1709f8a7128818fa62e55a7001000000000000000100000000000000000000000000000020e66c07583081e267c33c835ae197bdafb24712978d6aac9d0f53e986147fea4200000000000000010000000000000000000000000000002024e7c960723bc5ff5c693ca69cc078c6710037929d28ae1a94c75c99daed9c020000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000190000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000000000000000000205de6a68433963cf0c7857d87422df14e10c32724c7cfd2bf5af7cd6a9a11536000000000000000010000000000000001000000000000002049b93df03a2d9f677c69e5781a260e352ca40353ad1badb8e1d6a023c5bcf21e0000000000000001000000000000000100000000000000209a1a091707d63ca2fc90adc03b3ff0bbe24e5d43365c4f0d46f796825fa264d0000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000002700000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020a32b8fa6da08fbe0b9cad3ce20107f7872df48a824f037353340421b38e7dbf4000000000000000100000000000000000000000000000020700a3f92944e6a87bc423009506865591e99810e7ab4554df985ec922f18aea40000000000000001000000000000000000000000000000200fb793038444977c354fee118941457e8f5cc8bd6d0c982f4e159d367c2849e70000000000000001000000000000000100000000000000206325b9ede6b47ca05a9aef70d48140c5ba36217b5522573795eae3ae5ed72147000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000070000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000000000000000000020100afdb629c627e0a376a74b7076687862ab1e2f5f03a2337e087be51135150c00000000000000010000000000000000000000000000002085f465dc62741704ec2a6392ac90942a708a72037ede0e36ab09f775b3603c05000000000000000100000000000000000000000000000020c60fac2a2326940613ae844e1963c0b7722fb786b5c848e6e5cf4560b78ff515000000000000000100000000000000010000000000000020fb11825034e1e6f44af2363fb0e9dd5bb9f3a69d7ac16add55263b9f77626b880000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000002100000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020a11ad082b9b214587c295afdda8c3320bc23eb59713044956d98f288c29bdbf1000000000000000100000000000000010000000000000020d793c571a44628031e4199c577e6651c7ede504551022e3ee6e9cf46b43d9b070000000000000001000000000000000100000000000000204fd5e258ba7ff0f4bad07c49f2daf5f54e385148ca793245ffe062d67a02bbda0000000000000001000000000000000100000000000000206325b9ede6b47ca05a9aef70d48140c5ba36217b5522573795eae3ae5ed72147000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000010000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000000000000000000020da04e460913c32b9095fbe1a31f18a0841cf863632676c76517b769f1af8989200000000000000010000000000000001000000000000002075e379d2002547c4b271f443c8a80a0014464bb265311e488f1ed171187359eb000000000000000100000000000000010000000000000020d6eb504e9ef75a7779807884ffd88863c349a65c2d2bdb0014046feb1ccb2ded000000000000000100000000000000010000000000000020fb11825034e1e6f44af2363fb0e9dd5bb9f3a69d7ac16add55263b9f77626b880000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000002400000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a00000000000000060000000000000001000000000000000100000000000000206c83b8e07133f63c38f013df39924d80cff3d1044f34cd1d9e3daa576d641c100000000000000001000000000000000100000000000000205714ca1ee71e5f917f25d92459ada5330a51f3117b7531c8d05e44e521816c960000000000000001000000000000000000000000000000200fb793038444977c354fee118941457e8f5cc8bd6d0c982f4e159d367c2849e70000000000000001000000000000000100000000000000206325b9ede6b47ca05a9aef70d48140c5ba36217b5522573795eae3ae5ed72147000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000040000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000010000000000000020b8800186623d507294b834b02e75760a085165c96bafd444ace1ec4f6726aacb0000000000000001000000000000000100000000000000209862d0445442827e216b27b80886d6d9907158f5890ffb1fd69a1a5a81af89fe000000000000000100000000000000000000000000000020c60fac2a2326940613ae844e1963c0b7722fb786b5c848e6e5cf4560b78ff515000000000000000100000000000000010000000000000020fb11825034e1e6f44af2363fb0e9dd5bb9f3a69d7ac16add55263b9f77626b880000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000000600000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a00000000000000060000000000000001000000000000000100000000000000207e8249ce76aad5f84cdabb9a63e8ad9aa22859f2208b75845adb814280e64b0e000000000000000100000000000000000000000000000020688e345058319870b596fba44541ab46847590cab8811e07afd920158832e9d7000000000000000100000000000000000000000000000020cb3c9625eb492289ae401c2efcfcf5d50feffee71cbcf4a0388efa7e8d2794470000000000000001000000000000000100000000000000203bab5ae19c3a6928a4468d0b856ea71595871c296f9e5ef991de19ee35356de0000000000000000100000000000000010000000000000020cab72ad06a11034c52eef8fc9375f208dcf827280d9757a6c0fa58f455a95b700000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b00000000000000060000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000100000000000000201280f1bcea43a07ba8a787f1c57cacf0d325dbc28386d88b7ef10b15697e2beb00000000000000010000000000000000000000000000002085f465dc62741704ec2a6392ac90942a708a72037ede0e36ab09f775b3603c05000000000000000100000000000000000000000000000020c60fac2a2326940613ae844e1963c0b7722fb786b5c848e6e5cf4560b78ff515000000000000000100000000000000010000000000000020fb11825034e1e6f44af2363fb0e9dd5bb9f3a69d7ac16add55263b9f77626b880000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000000f00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020a52d5a8887f55bfccb569c6671ed80b71f626fa840bb727e72e5f7f1201e5ba1000000000000000100000000000000000000000000000020c06b98b77be88b5057d5e9cc3c94fe1061f7c7a20250e17ba2b0ce8c1e9cb0270000000000000001000000000000000000000000000000208ba4b5db269e5f06cef1e69b14d5cd9ad9600d46ed13a0b48552d2cc8385b15200000000000000010000000000000000000000000000002032f5d2fcd66c6d1be270028a1b13801252fc376fa82b764868eec39365d7ad3d000000000000000100000000000000010000000000000020cab72ad06a11034c52eef8fc9375f208dcf827280d9757a6c0fa58f455a95b700000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b000000000000000f0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000000000000000000207c12d6d188e6d5d2df9286bf728211bd8607d6c266c3cb4411b8cb0639f1dad60000000000000001000000000000000000000000000000204a3936e2e522b670f552461431080ac7eb854242c1ff9742f92193781c20a5700000000000000001000000000000000000000000000000200e22d9749d60e0d540bb83ff2935afe6d6bd2f52cf199124a9320637f1e3df8300000000000000010000000000000000000000000000002016bfa36762c0536ae259ab6ab17bacf98951fc37dcb1f69229fd857fd86fb9110000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000002d00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a00000000000000060000000000000001000000000000000000000000000000200f072dbcc8a4e690a8a935b2f15ef06319eab4d457230ff7a31cf4e58084ec11000000000000000100000000000000010000000000000020e7c5e246a2b95e2edeee5f88b23ad6c80b8656b62fb64c213e3ef443860be5d400000000000000010000000000000000000000000000002089c932bfaee7d2bdaf7488749db3a6bf2763de81d20569f77b9fc12113731624000000000000000100000000000000000000000000000020a2331e4c69f49cc61b3158951e5e40e4c60ceac04b3caf1611d2a5eaf5f352fe000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a000000000000000d0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000000000000000000020eaceb0df2bd65e2b2fb0521ed1a45f240de92714c6007235da4479ce1c6e8367000000000000000100000000000000010000000000000020a1e8ee366ec4fb2e0704572f237151577cdd7c13611c3913441c718ffcf183090000000000000001000000000000000000000000000000200e22d9749d60e0d540bb83ff2935afe6d6bd2f52cf199124a9320637f1e3df8300000000000000010000000000000000000000000000002016bfa36762c0536ae259ab6ab17bacf98951fc37dcb1f69229fd857fd86fb9110000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000000300000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020ceb2525139b684fae176a32af4bac2bcc6596be509ee8bbd939db475a1cd5f3d0000000000000001000000000000000000000000000000206ac34deaf7ceb5abc2f720aae41f2875b6042f4b1cd4563463f7e992888903d4000000000000000100000000000000010000000000000020a7f7e46fa2884bc9ae411e1aeb83a2faf804a1d64b37e7b44cd72d7dd7a386270000000000000001000000000000000100000000000000203bab5ae19c3a6928a4468d0b856ea71595871c296f9e5ef991de19ee35356de0000000000000000100000000000000010000000000000020cab72ad06a11034c52eef8fc9375f208dcf827280d9757a6c0fa58f455a95b700000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b00000000000000030000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce25000000000000000500000000000000010000000000000000000000000000002094351d233e310dcc0ef8069de2cfa8b909f9e00bd6acf0b54ad1a43a7c1a5fec000000000000000100000000000000000000000000000020ec109daf6825ed91a9d90ad3b60af2ef73dd22a7eba66a8e0388fcbfe194b548000000000000000100000000000000010000000000000020d6eb504e9ef75a7779807884ffd88863c349a65c2d2bdb0014046feb1ccb2ded000000000000000100000000000000010000000000000020fb11825034e1e6f44af2363fb0e9dd5bb9f3a69d7ac16add55263b9f77626b880000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000002900000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020047c0517c3d760697c7bf2d1bf32625f639094b05944f018f5cfb19847ec2075000000000000000100000000000000010000000000000020a83483e2fc9d818b2c5091dca8c826d520c3d80dfab7bd073e2f69081526e21f000000000000000100000000000000010000000000000020a3698d2bb846956a4f0e328f7f58fe2d3de4dc78469c3520aa648af402bd431e000000000000000100000000000000000000000000000020a2331e4c69f49cc61b3158951e5e40e4c60ceac04b3caf1611d2a5eaf5f352fe000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000090000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000000000000000000205c957fe18e200f67dcfdaff6ac0e79f330938d1f8ded2406740505d688bec0ad000000000000000100000000000000010000000000000020e1b6449da70162184206e3c54f8a1bc62dc59e315ed2d859457c4a36e0692d1200000000000000010000000000000001000000000000002012efdb19f3477e740c260ab39237e12947930f9d6371304227e0478ea58af45d00000000000000010000000000000000000000000000002016bfa36762c0536ae259ab6ab17bacf98951fc37dcb1f69229fd857fd86fb9110000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000002b00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020e13f1dccb88d9ec20e9908b156f9ae0cb8e0348ad728aea906bec322e02961e80000000000000001000000000000000000000000000000209d33024f264e56892f94df99fa14e797a7839c1eae54741eb3b7f3470a35f648000000000000000100000000000000010000000000000020a3698d2bb846956a4f0e328f7f58fe2d3de4dc78469c3520aa648af402bd431e000000000000000100000000000000000000000000000020a2331e4c69f49cc61b3158951e5e40e4c60ceac04b3caf1611d2a5eaf5f352fe000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a000000000000000b0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce25000000000000000500000000000000010000000000000000000000000000002026ec57a2ddfb8e5c455799d78e5e1d5fa3c88905dbce6501061408cd9b48405f0000000000000001000000000000000000000000000000201b537d90761f18e0d990acfbad3607f40acbb8ff91ca128b4f6cf4f27d967f3500000000000000010000000000000001000000000000002012efdb19f3477e740c260ab39237e12947930f9d6371304227e0478ea58af45d00000000000000010000000000000000000000000000002016bfa36762c0536ae259ab6ab17bacf98951fc37dcb1f69229fd857fd86fb9110000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000002d00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a00000000000000060000000000000001000000000000000000000000000000200f072dbcc8a4e690a8a935b2f15ef06319eab4d457230ff7a31cf4e58084ec11000000000000000100000000000000010000000000000020e7c5e246a2b95e2edeee5f88b23ad6c80b8656b62fb64c213e3ef443860be5d400000000000000010000000000000000000000000000002089c932bfaee7d2bdaf7488749db3a6bf2763de81d20569f77b9fc12113731624000000000000000100000000000000000000000000000020a2331e4c69f49cc61b3158951e5e40e4c60ceac04b3caf1611d2a5eaf5f352fe000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a000000000000000d0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000000000000000000020eaceb0df2bd65e2b2fb0521ed1a45f240de92714c6007235da4479ce1c6e8367000000000000000100000000000000010000000000000020a1e8ee366ec4fb2e0704572f237151577cdd7c13611c3913441c718ffcf183090000000000000001000000000000000000000000000000200e22d9749d60e0d540bb83ff2935afe6d6bd2f52cf199124a9320637f1e3df8300000000000000010000000000000000000000000000002016bfa36762c0536ae259ab6ab17bacf98951fc37dcb1f69229fd857fd86fb9110000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000003d00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020b559b849ea63b933df931f5431732bd739b245bad9c12914eae279ddb28127a20000000000000001000000000000000100000000000000202cd4647ce0dd828333f071d6897d8725115df161b3afee5fd00125b915a8e6cc000000000000000100000000000000000000000000000020897ff236f9146b3986820c1eab71fcb6935e6cf4a73d36131649a0459221c9d7000000000000000100000000000000000000000000000020e66c07583081e267c33c835ae197bdafb24712978d6aac9d0f53e986147fea4200000000000000010000000000000000000000000000002024e7c960723bc5ff5c693ca69cc078c6710037929d28ae1a94c75c99daed9c020000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a000000000000001d0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000000000000000000020743d21415e8ded44dc758d10126165cc69a6c70dd61daf76d0afd6b4980d566c00000000000000010000000000000001000000000000002043952c83787323ed02967f6874b2568ab0c8c37159ec8878675f257f475a7c81000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000000400000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020340da0421914b7a05bc7a70a573bb95801337d759a5d4cf87479791f85f1e281000000000000000100000000000000010000000000000020f864bb060b739b82d8ffbf4ed8eb1cbc55e9055705b9ff946dde3ce7ed3f040c000000000000000100000000000000000000000000000020cb3c9625eb492289ae401c2efcfcf5d50feffee71cbcf4a0388efa7e8d2794470000000000000001000000000000000100000000000000203bab5ae19c3a6928a4468d0b856ea71595871c296f9e5ef991de19ee35356de0000000000000000100000000000000010000000000000020cab72ad06a11034c52eef8fc9375f208dcf827280d9757a6c0fa58f455a95b700000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b00000000000000040000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000010000000000000020b8800186623d507294b834b02e75760a085165c96bafd444ace1ec4f6726aacb0000000000000001000000000000000100000000000000209862d0445442827e216b27b80886d6d9907158f5890ffb1fd69a1a5a81af89fe000000000000000100000000000000000000000000000020c60fac2a2326940613ae844e1963c0b7722fb786b5c848e6e5cf4560b78ff515000000000000000100000000000000010000000000000020fb11825034e1e6f44af2363fb0e9dd5bb9f3a69d7ac16add55263b9f77626b880000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000001d00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020c6e9e8f5f183e6a18ae47b9c5d84289a45106548f52c0dafe560a7544dd072b000000000000000010000000000000001000000000000002031576616dfc8f01227203acd3c8aaf85a0fe1fadd2d720eccd06200027580a85000000000000000100000000000000000000000000000020364ea361605912860ae69330ee197e81f5cf2aee5ee01238f89915c19e1b674f0000000000000001000000000000000000000000000000200178800a41369b66440e7a4d50b9cb10df27ae7b6096e93b35223a002189a50300000000000000010000000000000000000000000000002061bca55e64c007d6883994dba531cf815f2ac6477e2b8a7319ae51a4a14601ac0000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b000000000000001d0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000000000000000000020743d21415e8ded44dc758d10126165cc69a6c70dd61daf76d0afd6b4980d566c00000000000000010000000000000001000000000000002043952c83787323ed02967f6874b2568ab0c8c37159ec8878675f257f475a7c81000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000002600000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020b2eed6e0a8e84ed3bbd514720df2e18dcd3a57a71ab7d4a45bc12f0759a67301000000000000000100000000000000000000000000000020700a3f92944e6a87bc423009506865591e99810e7ab4554df985ec922f18aea40000000000000001000000000000000000000000000000200fb793038444977c354fee118941457e8f5cc8bd6d0c982f4e159d367c2849e70000000000000001000000000000000100000000000000206325b9ede6b47ca05a9aef70d48140c5ba36217b5522573795eae3ae5ed72147000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000060000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000100000000000000201280f1bcea43a07ba8a787f1c57cacf0d325dbc28386d88b7ef10b15697e2beb00000000000000010000000000000000000000000000002085f465dc62741704ec2a6392ac90942a708a72037ede0e36ab09f775b3603c05000000000000000100000000000000000000000000000020c60fac2a2326940613ae844e1963c0b7722fb786b5c848e6e5cf4560b78ff515000000000000000100000000000000010000000000000020fb11825034e1e6f44af2363fb0e9dd5bb9f3a69d7ac16add55263b9f77626b880000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000001400000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a000000000000000600000000000000010000000000000001000000000000002015f13a63e6e66a0384ae3940b5c12b5b63b951ea2864fa11da141b2a045428d60000000000000001000000000000000100000000000000201cb670eb1278127a062270a9af0404d26d0e94a1d7bf7346cd1258e13e151ec200000000000000010000000000000000000000000000002075c82b16eeab40fac71fc7b5daaf20759128e3ae4a2440cc391c55dbfc4526ea000000000000000100000000000000010000000000000020eb4e0651e828a84fae3111cd7f737af87f306934914a308793a6b7f27908b58b00000000000000010000000000000000000000000000002061bca55e64c007d6883994dba531cf815f2ac6477e2b8a7319ae51a4a14601ac0000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b00000000000000140000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000010000000000000020c7993784b950ed07cfa4c762cb8f108f9fbc533be123f0aba562817367d1033a00000000000000010000000000000001000000000000002081274907689d7f4463b7ddd2ab484481450ccc3969be250f387c7c3772e8e77500000000000000010000000000000000000000000000002027c01932b99e3f386091bb61e047d2b80acbd0b3901b0a925079bd4e20713b3b000000000000000100000000000000010000000000000020bf60b679b8e9b0759c4d05cdd1cce271d5bfb1e58f558b4e85891de0e584c083000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000002800000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020d973699b0333cf6f884bd71773ea22bd4441f771d7e202b1c3d38ef3f0eabf3e000000000000000100000000000000010000000000000020a83483e2fc9d818b2c5091dca8c826d520c3d80dfab7bd073e2f69081526e21f000000000000000100000000000000010000000000000020a3698d2bb846956a4f0e328f7f58fe2d3de4dc78469c3520aa648af402bd431e000000000000000100000000000000000000000000000020a2331e4c69f49cc61b3158951e5e40e4c60ceac04b3caf1611d2a5eaf5f352fe000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000080000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000100000000000000201cbef5e48bae942923c6d18d7958197b9ce2e3235793bd9ffb86842783262211000000000000000100000000000000010000000000000020e1b6449da70162184206e3c54f8a1bc62dc59e315ed2d859457c4a36e0692d1200000000000000010000000000000001000000000000002012efdb19f3477e740c260ab39237e12947930f9d6371304227e0478ea58af45d00000000000000010000000000000000000000000000002016bfa36762c0536ae259ab6ab17bacf98951fc37dcb1f69229fd857fd86fb9110000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000001d00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020c6e9e8f5f183e6a18ae47b9c5d84289a45106548f52c0dafe560a7544dd072b000000000000000010000000000000001000000000000002031576616dfc8f01227203acd3c8aaf85a0fe1fadd2d720eccd06200027580a85000000000000000100000000000000000000000000000020364ea361605912860ae69330ee197e81f5cf2aee5ee01238f89915c19e1b674f0000000000000001000000000000000000000000000000200178800a41369b66440e7a4d50b9cb10df27ae7b6096e93b35223a002189a50300000000000000010000000000000000000000000000002061bca55e64c007d6883994dba531cf815f2ac6477e2b8a7319ae51a4a14601ac0000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b000000000000001d0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000000000000000000020743d21415e8ded44dc758d10126165cc69a6c70dd61daf76d0afd6b4980d566c00000000000000010000000000000001000000000000002043952c83787323ed02967f6874b2568ab0c8c37159ec8878675f257f475a7c81000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000000800000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020d8f57319c3c14a3763222369cc2ca1a759f1a115a09e22099ad1c3f30b968e1a0000000000000001000000000000000100000000000000207f1a19165bceb32d754c643a39696fac86e2414996354784c22f2e02c92f527c0000000000000001000000000000000100000000000000206b8664c253c857f4081b903f24cd144c3fecea41bad9c9bbc6dede7aec8206d200000000000000010000000000000000000000000000002032f5d2fcd66c6d1be270028a1b13801252fc376fa82b764868eec39365d7ad3d000000000000000100000000000000010000000000000020cab72ad06a11034c52eef8fc9375f208dcf827280d9757a6c0fa58f455a95b700000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b00000000000000080000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000100000000000000201cbef5e48bae942923c6d18d7958197b9ce2e3235793bd9ffb86842783262211000000000000000100000000000000010000000000000020e1b6449da70162184206e3c54f8a1bc62dc59e315ed2d859457c4a36e0692d1200000000000000010000000000000001000000000000002012efdb19f3477e740c260ab39237e12947930f9d6371304227e0478ea58af45d00000000000000010000000000000000000000000000002016bfa36762c0536ae259ab6ab17bacf98951fc37dcb1f69229fd857fd86fb9110000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000003d00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020b559b849ea63b933df931f5431732bd739b245bad9c12914eae279ddb28127a20000000000000001000000000000000100000000000000202cd4647ce0dd828333f071d6897d8725115df161b3afee5fd00125b915a8e6cc000000000000000100000000000000000000000000000020897ff236f9146b3986820c1eab71fcb6935e6cf4a73d36131649a0459221c9d7000000000000000100000000000000000000000000000020e66c07583081e267c33c835ae197bdafb24712978d6aac9d0f53e986147fea4200000000000000010000000000000000000000000000002024e7c960723bc5ff5c693ca69cc078c6710037929d28ae1a94c75c99daed9c020000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a000000000000001d0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000000000000000000020743d21415e8ded44dc758d10126165cc69a6c70dd61daf76d0afd6b4980d566c00000000000000010000000000000001000000000000002043952c83787323ed02967f6874b2568ab0c8c37159ec8878675f257f475a7c81000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000001e00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000010000000000000020bed3d57f1a0f265d35c741f468fe5ae25b80a9d8cce0bb511ce6d02c5f45496a0000000000000001000000000000000000000000000000205c83ece4383148347a1b938c80a649b18433f1e821241773a02351a95f6cf96c000000000000000100000000000000000000000000000020364ea361605912860ae69330ee197e81f5cf2aee5ee01238f89915c19e1b674f0000000000000001000000000000000000000000000000200178800a41369b66440e7a4d50b9cb10df27ae7b6096e93b35223a002189a50300000000000000010000000000000000000000000000002061bca55e64c007d6883994dba531cf815f2ac6477e2b8a7319ae51a4a14601ac0000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b000000000000001e0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce250000000000000005000000000000000100000000000000010000000000000020bab8714776f13ede8b6c14d2f9fa1dbc18ce6f336b8b592c0ea67c23f48608820000000000000001000000000000000000000000000000204cd898605e569c9a3b4c9527c494b330f36420f151c4dc20e00933ca34fe5564000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000003f00000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020a0c5f8d8f37c0396f9c73fb39e50b4569da374fac8b9deb71a8eb2d7c194356a0000000000000001000000000000000000000000000000207edb8977ea6e8b5aab8ac54c422e854a363cd7d64b2db12ea3a1c18f5ecf63c0000000000000000100000000000000000000000000000020897ff236f9146b3986820c1eab71fcb6935e6cf4a73d36131649a0459221c9d7000000000000000100000000000000000000000000000020e66c07583081e267c33c835ae197bdafb24712978d6aac9d0f53e986147fea4200000000000000010000000000000000000000000000002024e7c960723bc5ff5c693ca69cc078c6710037929d28ae1a94c75c99daed9c020000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a000000000000001f0000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce25000000000000000500000000000000010000000000000000000000000000002036e0725d8ea78d84622388e50be26e1800667f9718316fa6e5b5641327374dc70000000000000001000000000000000000000000000000204cd898605e569c9a3b4c9527c494b330f36420f151c4dc20e00933ca34fe5564000000000000000100000000000000000000000000000020d2e2852c778c4eae72fc1a705aec8d3b3c5bf078c5f02cef6222730394c3ae39000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000003800000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a000000000000000600000000000000010000000000000001000000000000002040aa7e5cffc72bb5c8fec8da28a63ff6f8500713c40bf5347c38161307d92a66000000000000000100000000000000010000000000000020c9c0b321b083e72b287c1f5f27bd58c8853f81a58ea7aa78fc4880a0b3e1a20300000000000000010000000000000001000000000000002088d8b2c047feeef326c27ee57ed797854d67aa1709f8a7128818fa62e55a7001000000000000000100000000000000000000000000000020e66c07583081e267c33c835ae197bdafb24712978d6aac9d0f53e986147fea4200000000000000010000000000000000000000000000002024e7c960723bc5ff5c693ca69cc078c6710037929d28ae1a94c75c99daed9c020000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000180000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000100000000000000206c7e55fc4f90a1593b82c2eeee1b68c1335e58b991f31e72c14171e9049acbc500000000000000010000000000000001000000000000002049b93df03a2d9f677c69e5781a260e352ca40353ad1badb8e1d6a023c5bcf21e0000000000000001000000000000000100000000000000209a1a091707d63ca2fc90adc03b3ff0bbe24e5d43365c4f0d46f796825fa264d0000000000000000100000000000000000000000000000020f4f25849bbf8cba836772db7dfd996f81624abfb24ccd21f150f88ff2ed96df8000000000000000100000000000000000000000000000020781b1b578c0c425664a7652fbe628133bfea300b8e42a45c8137f3db6738d937000000000000000500000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020e58f1d683e6449d3061adefe19ffa668e5062e5fdad3290408c2831c340fdbeb000000000000000100000000000000010000000000000020f864bb060b739b82d8ffbf4ed8eb1cbc55e9055705b9ff946dde3ce7ed3f040c000000000000000100000000000000000000000000000020cb3c9625eb492289ae401c2efcfcf5d50feffee71cbcf4a0388efa7e8d2794470000000000000001000000000000000100000000000000203bab5ae19c3a6928a4468d0b856ea71595871c296f9e5ef991de19ee35356de0000000000000000100000000000000010000000000000020cab72ad06a11034c52eef8fc9375f208dcf827280d9757a6c0fa58f455a95b700000000000000001000000000000000100000000000000202973b9b26275fc69265259026d439bdeef60d053f206a18e9769b07140f3f12b00000000000000050000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000000000000000000209f4055c1389510a1fd40b1a01c5849ccedde94acf1de1af219172f7e7bf78cd20000000000000001000000000000000100000000000000209862d0445442827e216b27b80886d6d9907158f5890ffb1fd69a1a5a81af89fe000000000000000100000000000000000000000000000020c60fac2a2326940613ae844e1963c0b7722fb786b5c848e6e5cf4560b78ff515000000000000000100000000000000010000000000000020fb11825034e1e6f44af2363fb0e9dd5bb9f3a69d7ac16add55263b9f77626b880000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e000000000000002900000000000000208f449f584cec5ea8631ceba32dfacecf555c8a857f50a95ebbb3d6e26986580a0000000000000006000000000000000100000000000000000000000000000020047c0517c3d760697c7bf2d1bf32625f639094b05944f018f5cfb19847ec2075000000000000000100000000000000010000000000000020a83483e2fc9d818b2c5091dca8c826d520c3d80dfab7bd073e2f69081526e21f000000000000000100000000000000010000000000000020a3698d2bb846956a4f0e328f7f58fe2d3de4dc78469c3520aa648af402bd431e000000000000000100000000000000000000000000000020a2331e4c69f49cc61b3158951e5e40e4c60ceac04b3caf1611d2a5eaf5f352fe000000000000000100000000000000010000000000000020e438f43ec9049b440f68114d5b5dcfa9add20368378dae8fa14773617ef3e6d40000000000000001000000000000000000000000000000205f20bf2c628106ffa854adc0bffa5f663c42714a4e527a0fa535dee5fa5ad97a00000000000000090000000000000020247b251caf5a44093f84c39365ada3c0dc4f7011af68ba5f1d77767acc86ce2500000000000000050000000000000001000000000000000000000000000000205c957fe18e200f67dcfdaff6ac0e79f330938d1f8ded2406740505d688bec0ad000000000000000100000000000000010000000000000020e1b6449da70162184206e3c54f8a1bc62dc59e315ed2d859457c4a36e0692d1200000000000000010000000000000001000000000000002012efdb19f3477e740c260ab39237e12947930f9d6371304227e0478ea58af45d00000000000000010000000000000000000000000000002016bfa36762c0536ae259ab6ab17bacf98951fc37dcb1f69229fd857fd86fb9110000000000000001000000000000000100000000000000207454450fba3b71f84bf23424885b671523760cde0ef7cd1d164aa89275a28b2e0000000000000002148e58e16602596fff4ea6b392da3bc1aef7b51c771a43d9c33947a1f05de9b01b8f5cb37e1f4ef196925d25b175877efe435131cb73cc8d27d2f56ea5a39f72327c0be9 \ No newline at end of file diff --git a/contracts/zkllvm/circuit4/commitment.sol b/contracts/zkllvm/circuit4/commitment.sol index 0273f8d..765948b 100644 --- a/contracts/zkllvm/circuit4/commitment.sol +++ b/contracts/zkllvm/circuit4/commitment.sol @@ -251,8 +251,8 @@ library modular_commitment_scheme_circuit4 { } function compute_combined_Q(bytes calldata blob,commitment_state memory state) internal view returns(uint256[2] memory y){ - for(uint256 p = 0; p < unique_points; ){ - uint256[2] memory tmp; + uint256[2][unique_points] memory values; + { uint256 offset = state.initial_data_offset - state.poly_num * 0x40; // Save initial data offset for future use; uint256 cur = 0; for(uint256 b = 0; b < batches_num;){ @@ -264,17 +264,21 @@ library modular_commitment_scheme_circuit4 { else if(b == 4) cur_point = lookup_point; else console.log("Wrong index"); - tmp[0] = mulmod(tmp[0], state.theta, modulus); - tmp[1] = mulmod(tmp[1], state.theta, modulus); - - if(cur_point == p){ - tmp[0] = addmod(tmp[0], basic_marshalling.get_uint256_be(blob, offset), modulus); - tmp[1] = addmod(tmp[1], basic_marshalling.get_uint256_be(blob, offset + 0x20), modulus); + for(uint256 k = 0; k < unique_points; ){ + values[k][0] = mulmod(values[k][0], state.theta, modulus); + values[k][1] = mulmod(values[k][1], state.theta, modulus); + unchecked{k++;} } + + values[cur_point][0] = addmod(values[cur_point][0], basic_marshalling.get_uint256_be(blob, offset), modulus); + values[cur_point][1] = addmod(values[cur_point][1], basic_marshalling.get_uint256_be(blob, offset + 0x20), modulus); unchecked{offset += 0x40;j++; cur++;} } unchecked{b++;} } + } + for(uint256 p = 0; p < unique_points; ){ + uint256[2] memory tmp = values[p]; tmp[0] = mulmod(tmp[0], state.factors[p], modulus); tmp[1] = mulmod(tmp[1], state.factors[p], modulus); uint256 s = state.x; @@ -421,6 +425,48 @@ library modular_commitment_scheme_circuit4 { types.transcript_data memory tr_state; tr_state.current_challenge = transcript_state; commitment_state memory state; + + { + uint256 poly_at_eta; + /* 1 - 2*permutation_size */ + poly_at_eta = basic_marshalling.get_uint256_be(blob, 40);// 0 + if(poly_at_eta != 0x2f5497c3241d226f7a598e125b70d4977a432d3256a5cca609eecd9708197ef7) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x68);// 0x1 + if(poly_at_eta != 0x2ca6f6cfb491ac2d63bfc65bc93426f4fc7c1707955613eb6622712c287f7ad0) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0xa8);// 0x2 + if(poly_at_eta != 0x1f42d20e86d85ce2f2bedfcaee04c2c88798a831cec778463324a315ca7d660d) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0xe8);// 0x3 + if(poly_at_eta != 0x1c4e1a48a239d06ebdba5ef6a617cdea616e1700f74b6727cd5ccd92f472fe3f) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x128);// 0x4 + if(poly_at_eta != 0x2f5497c3241d226f7a598e125b70d4977a432d3256a5cca609eecd9708197ef7) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x168);// 0x5 + if(poly_at_eta != 0x2ca6f6cfb491ac2d63bfc65bc93426f4fc7c1707955613eb6622712c287f7ad0) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x1a8);// 0x6 + if(poly_at_eta != 0x1f42d20e86d85ce2f2bedfcaee04c2c88798a831cec778463324a315ca7d660d) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x1e8);// 0x7 + if(poly_at_eta != 0x1c4e1a48a239d06ebdba5ef6a617cdea616e1700f74b6727cd5ccd92f472fe3f) return false; + /* 2 - special selectors */ + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x248);// 0x8 + if(poly_at_eta != 0x213512f755aea8bd75050bd7d649b6613b649871744b991958a487efc18cae33) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x2a8);// 0x9 + if(poly_at_eta != 0x1efa2279781ce1bd13c856bbc25d85030f7e4f6209ce07f8a25cc8572e6e973a) return false; + /* 3 - constant columns */ + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x308);// 0xa + if(poly_at_eta != 0x243c65637777d1ee46c13fa6d368a503c6ea125afaa809f6121faf4f7e8634ec) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x368);// 0xb + if(poly_at_eta != 0x10f4eb1c5290c61346203e82423cee59a6035bfd481bad6865fea0ccb30cc012) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x3c8);// 0xc + if(poly_at_eta != 0x3a73f59d35fce36e759ee3b753f2f4d97d01cf186f5e7c532c780e32ceef3b1d) return false; + /* 4 - selector columns */ + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x408);// 0xd + if(poly_at_eta != 0x294fd51015a092e0a6b142a1790ecb1bae622443b27626f464a54e0c2be735a0) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x448);// 0xe + if(poly_at_eta != 0x3fd0ca8f3234758577329d6c6758c49bf9aa4a2494805125375911931004ba96) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x4a8);// 0xf + if(poly_at_eta != 0x13cc23004f2aabbc9b7f05ca258e0b57a543e2bfb5ac023244bc9a46a0276b78) return false; + } + + { uint256 offset; diff --git a/contracts/zkllvm/circuit4/gate_0.sol b/contracts/zkllvm/circuit4/gate_0.sol deleted file mode 100644 index f67f64d..0000000 --- a/contracts/zkllvm/circuit4/gate_0.sol +++ /dev/null @@ -1,50 +0,0 @@ - -// SPDX-License-Identifier: Apache-2.0. -//---------------------------------------------------------------------------// -// Copyright (c) 2023 -- Generated by zkllvm-transpiler -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//---------------------------------------------------------------------------// -pragma solidity >=0.8.4; - -import "../../../contracts/basic_marshalling.sol"; - -library gate_circuit4_0{ - uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; - - function evaluate_gate_be( - bytes calldata blob, - uint256 theta, - uint256 theta_acc - ) external pure returns (uint256 F, uint256) { - uint256 sum; - uint256 gate; - uint256 prod; - - gate = 0; - sum = 0; - prod = 28948022309329048855892746252171976963363056481941560715954676764349967630336; - prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 576), modulus); - sum = addmod(sum, prod, modulus); - prod = basic_marshalling.get_uint256_be(blob, 512); - prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 544), modulus); - sum = addmod(sum, prod, modulus); - gate = addmod(gate, mulmod(theta_acc, sum, modulus), modulus); - theta_acc = mulmod(theta_acc, theta, modulus); - gate = mulmod(gate, basic_marshalling.get_uint256_be(blob, 352), modulus); - F = addmod(F, gate, modulus); - - return( F, theta_acc ); - } -} - \ No newline at end of file diff --git a/contracts/zkllvm/circuit4/gate_argument.sol b/contracts/zkllvm/circuit4/gate_argument.sol index 1812011..531a6a5 100644 --- a/contracts/zkllvm/circuit4/gate_argument.sol +++ b/contracts/zkllvm/circuit4/gate_argument.sol @@ -21,7 +21,6 @@ import "../../types.sol"; import "../../basic_marshalling.sol"; import "../../interfaces/modular_gate_argument.sol"; import "hardhat/console.sol"; -import "./gate_0.sol"; contract modular_gate_argument_circuit4 is IGateArgument{ @@ -34,8 +33,26 @@ contract modular_gate_argument_circuit4 is IGateArgument{ ) external view returns (uint256 F){ uint256 theta_acc = 1; uint256 eval; + uint256 x; - (eval, theta_acc) = gate_circuit4_0.evaluate_gate_be( blob, theta, theta_acc ); F = addmod(F, eval, modulus); + uint256 prod; + uint256 sum; + uint256 gate; +// gate === 0 === + gate = 0; +// constraint 0 + sum = 0; + prod = basic_marshalling.get_uint256_be(blob, 576); + prod = mulmod(prod, 28948022309329048855892746252171976963363056481941560715954676764349967630336, modulus); + sum = addmod(sum, prod, modulus); + prod = basic_marshalling.get_uint256_be(blob, 512); + prod = mulmod(prod, basic_marshalling.get_uint256_be(blob, 544), modulus); + sum = addmod(sum, prod, modulus); + sum = mulmod(sum, theta_acc, modulus); + theta_acc = mulmod(theta, theta_acc, modulus); + gate = addmod(gate, sum, modulus); + gate = mulmod(gate, basic_marshalling.get_uint256_be(blob, 352), modulus); + F = addmod(F, gate, modulus); } } \ No newline at end of file diff --git a/contracts/zkllvm/circuit4/gate_libs_list.json b/contracts/zkllvm/circuit4/gate_libs_list.json deleted file mode 100644 index ee835c4..0000000 --- a/contracts/zkllvm/circuit4/gate_libs_list.json +++ /dev/null @@ -1,3 +0,0 @@ -[ -"gate_circuit4_0" -] diff --git a/contracts/zkllvm/circuit4/lookup_0.sol b/contracts/zkllvm/circuit4/lookup_0.sol index c9537a6..bb11b2e 100644 --- a/contracts/zkllvm/circuit4/lookup_0.sol +++ b/contracts/zkllvm/circuit4/lookup_0.sol @@ -21,8 +21,9 @@ import "../../../contracts/basic_marshalling.sol"; library lookup_circuit4_0{ uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; - - function evaluate_gate_be( + + + function evaluate_lookup_0_be( bytes calldata blob, uint256 theta, uint256 theta_acc, @@ -34,8 +35,9 @@ library lookup_circuit4_0{ uint256 sum; uint256 prod; + g = 1; + selector_value=basic_marshalling.get_uint256_be(blob, 288); - g = 1; l = mulmod( 1,selector_value, modulus); theta_acc=theta; sum = 0; @@ -59,9 +61,12 @@ library lookup_circuit4_0{ l = addmod( l, mulmod( mulmod(theta_acc, selector_value, modulus), sum, modulus), modulus); theta_acc = mulmod(theta_acc, theta, modulus); - g = mulmod(g, mulmod(addmod(1, beta, modulus), addmod(l,gamma, modulus), modulus), modulus); + g = mulmod(g, mulmod(addmod(1, beta, modulus), addmod(l, gamma, modulus), modulus), modulus); + return( g, theta_acc ); } + + } \ No newline at end of file diff --git a/contracts/zkllvm/circuit4/lookup_argument.sol b/contracts/zkllvm/circuit4/lookup_argument.sol index 1ca76d9..82f2953 100644 --- a/contracts/zkllvm/circuit4/lookup_argument.sol +++ b/contracts/zkllvm/circuit4/lookup_argument.sol @@ -23,7 +23,7 @@ import "../../types.sol"; import "../../basic_marshalling.sol"; import "../../cryptography/transcript.sol"; import "../../interfaces/modular_lookup_argument.sol"; -import "./lookup_0.sol"; +import "./lookup_0.sol"; import "hardhat/console.sol"; @@ -89,25 +89,25 @@ contract modular_lookup_argument_circuit4 is ILookupArgument{ state.beta = transcript.get_field_challenge(tr_state, modulus); //beta state.gamma = transcript.get_field_challenge(tr_state, modulus); //gamma state.factor = mulmod(addmod(1, state.beta, modulus), state.gamma, modulus); - (l, state.theta_acc) = lookup_circuit4_0.evaluate_gate_be( blob, state.theta, state.theta_acc, state.beta, state.gamma ); + (l, state.theta_acc) = lookup_circuit4_0.evaluate_lookup_0_be( blob, state.theta, state.theta_acc, state.beta, state.gamma ); state.g = mulmod(state.g, l, modulus); - state.selector_value=basic_marshalling.get_uint256_be(blob, 416); - state.shifted_selector_value=basic_marshalling.get_uint256_be(blob, 448); - l= mulmod( 1, state.selector_value, modulus); + state.selector_value = basic_marshalling.get_uint256_be(blob, 416); + state.shifted_selector_value = basic_marshalling.get_uint256_be(blob, 448); + l = mulmod( 1, state.selector_value, modulus); state.l_shifted = mulmod( 1, state.shifted_selector_value, modulus); state.theta_acc=state.theta; - l= addmod( l, mulmod(state.selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 0), modulus), modulus), modulus); + l = addmod( l, mulmod(state.selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 0), modulus), modulus), modulus); state.l_shifted = addmod( state.l_shifted, mulmod(state.shifted_selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 32), modulus), modulus), modulus); state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); - l= addmod( l, mulmod(state.selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 96), modulus), modulus), modulus); + l = addmod( l, mulmod(state.selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 96), modulus), modulus), modulus); state.l_shifted = addmod( state.l_shifted, mulmod(state.shifted_selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 128), modulus), modulus), modulus); state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); - l= addmod( l, mulmod(state.selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 192), modulus), modulus), modulus); + l = addmod( l, mulmod(state.selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 192), modulus), modulus), modulus); state.l_shifted = addmod( state.l_shifted, mulmod(state.shifted_selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 224), modulus), modulus), modulus); state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); - l= mulmod( l, state.mask, modulus); + l = mulmod( l, state.mask, modulus); state.l_shifted = mulmod( state.l_shifted, state.shifted_mask, modulus); - state.g = mulmod(state.g, addmod( state.factor, addmod(l, mulmod(state.beta, state.l_shifted, modulus), modulus), modulus), modulus); + state.g = mulmod(state.g, addmod( state.factor, addmod(l, mulmod(state.beta, state.l_shifted, modulus), modulus), modulus), modulus); } @@ -179,5 +179,4 @@ contract modular_lookup_argument_circuit4 is ILookupArgument{ } tr_state_after = tr_state.current_challenge; } -} - \ No newline at end of file +} diff --git a/contracts/zkllvm/circuit4/modular_verifier.sol b/contracts/zkllvm/circuit4/modular_verifier.sol index 2b3ddc2..c37b62f 100644 --- a/contracts/zkllvm/circuit4/modular_verifier.sol +++ b/contracts/zkllvm/circuit4/modular_verifier.sol @@ -39,8 +39,8 @@ contract modular_verifier_circuit4 is IModularVerifier{ address _permutation_argument_address; address _lookup_argument_address; address _commitment_contract_address; - uint64 constant sorted_columns = 2; - uint64 constant f_parts = 9; + uint64 constant sorted_columns = 2; + uint64 constant f_parts = 8; // Individually on parts uint64 constant z_offset = 0xc9; uint64 constant table_offset = z_offset + 0x80 * 4 + 0xc0; uint64 constant table_end_offset = table_offset + 608; @@ -48,12 +48,10 @@ contract modular_verifier_circuit4 is IModularVerifier{ uint64 constant rows_amount = 8; uint256 constant omega = 199455130043951077247265858823823987229570523056509026484192158816218200659; uint256 constant special_selectors_offset = z_offset + 4 * 0x80; - - function initialize( // address permutation_argument_address, - address lookup_argument_address, + address lookup_argument_address, address gate_argument_address, address commitment_contract_address ) public{ @@ -82,7 +80,8 @@ contract modular_verifier_circuit4 is IModularVerifier{ bool b; } -function public_input_direct(bytes calldata blob, uint256[] calldata public_input, verifier_state memory state) internal view + // Public input columns + function public_input_direct(bytes calldata blob, uint256[] calldata public_input, verifier_state memory state) internal view returns (bool check){ check = true; @@ -99,51 +98,53 @@ function public_input_direct(bytes calldata blob, uint256[] calldata public_inpu ), modulus ); - + result = addmod( - result, + result, mulmod( public_input[i], L, modulus - ), + ), modulus ); } Omega = mulmod(Omega, omega, modulus); unchecked{i++;} } - result = mulmod(result, state.Z_at_xi, modulus); + result = mulmod( + result, addmod(field.pow_small(state.xi, rows_amount, modulus), modulus - 1, modulus), modulus + ); + result = mulmod(result, field.inverse_static(rows_amount, modulus), modulus); // Input is proof_map.eval_proof_combined_value_offset - if( result != mulmod(basic_marshalling.get_uint256_be(blob, 5464385338715482808), rows_amount, modulus)) check = false; + if( result != basic_marshalling.get_uint256_be( + blob, 512 + )) check = false; } - function verify( bytes calldata blob, uint256[] calldata public_input - ) public view{ + ) public view returns (bool result) { verifier_state memory state; state.b = true; state.gas = gasleft(); state.xi = basic_marshalling.get_uint256_be(blob, 0xa1); state.Z_at_xi = addmod(field.pow_small(state.xi, rows_amount, modulus), modulus-1, modulus); state.l0 = mulmod( - state.Z_at_xi, - field.inverse_static(mulmod(addmod(state.xi, modulus - 1, modulus), rows_amount, modulus), modulus), + state.Z_at_xi, + field.inverse_static(mulmod(addmod(state.xi, modulus - 1, modulus), rows_amount, modulus), modulus), modulus ); - - //Direct public input check + //0. Direct public input check if(public_input.length > 0) { if (!public_input_direct(blob[905:905+736], public_input, state)) { console.log("Wrong public input!"); state.b = false; } } - - //1. Init transcript + //1. Init transcript types.transcript_data memory tr_state; tr_state.current_challenge = transcript_state; @@ -153,8 +154,8 @@ function public_input_direct(bytes calldata blob, uint256[] calldata public_inpu //3. Permutation argument uint256[3] memory permutation_argument = modular_permutation_argument_circuit4.verify( - blob[0xc9:905+736], - transcript.get_field_challenge(tr_state, modulus), + blob[0xc9:905+736], + transcript.get_field_challenge(tr_state, modulus), transcript.get_field_challenge(tr_state, modulus), state.l0 ); @@ -163,16 +164,17 @@ function public_input_direct(bytes calldata blob, uint256[] calldata public_inpu state.F[2] = permutation_argument[2]; } + //4. Lookup library call { uint256 lookup_offset = table_offset + quotient_offset + uint256(uint8(blob[z_offset + basic_marshalling.get_length(blob, z_offset - 0x8) *0x20 + 0xf])) * 0x20; uint256[4] memory lookup_argument; + uint256 lookup_commitment = basic_marshalling.get_uint256_be(blob, 0x81); ILookupArgument lookup_contract = ILookupArgument(_lookup_argument_address); (lookup_argument, tr_state.current_challenge) = lookup_contract.verify( -// (lookup_argument, tr_state.current_challenge) = modular_lookup_argument_circuit4.verify( - blob[special_selectors_offset: table_offset + quotient_offset], - blob[lookup_offset:lookup_offset + sorted_columns * 0x60], - basic_marshalling.get_uint256_be(blob, 0x81), + blob[special_selectors_offset: table_offset + quotient_offset], + blob[lookup_offset:lookup_offset + sorted_columns * 0x60], + lookup_commitment, state.l0, tr_state.current_challenge ); @@ -190,13 +192,28 @@ function public_input_direct(bytes calldata blob, uint256[] calldata public_inpu //6. Gate argument IGateArgument modular_gate_argument = IGateArgument(_gate_argument_address); state.F[7] = modular_gate_argument.verify(blob[table_offset:table_end_offset], transcript.get_field_challenge(tr_state, modulus)); + state.F[7] = mulmod( + state.F[7], + addmod( + 1, + modulus - addmod( + basic_marshalling.get_uint256_be(blob, special_selectors_offset), + basic_marshalling.get_uint256_be(blob, special_selectors_offset + 0x60), + modulus + ), + modulus + ), + modulus + ); } - //No public input gate + + // No public input gate + uint256 F_consolidated; { //7. Push quotient to transcript for( uint8 i = 0; i < f_parts;){ - F_consolidated = addmod(F_consolidated, mulmod(state.F[i], transcript.get_field_challenge(tr_state, modulus), modulus), modulus); + F_consolidated = addmod(F_consolidated, mulmod(state.F[i],transcript.get_field_challenge(tr_state, modulus), modulus), modulus); unchecked{i++;} } uint256 points_num = basic_marshalling.get_length(blob, 0xa1 + 0x20); @@ -226,8 +243,8 @@ function public_input_direct(bytes calldata blob, uint256[] calldata public_inpu uint256 factor = 1; for(uint64 i = 0; i < uint64(uint8(blob[z_offset + basic_marshalling.get_length(blob, z_offset - 0x8) *0x20 + 0xf]));){ T_consolidated = addmod( - T_consolidated, - mulmod(basic_marshalling.get_uint256_be(blob, table_offset + quotient_offset + i *0x20), factor, modulus), + T_consolidated, + mulmod(basic_marshalling.get_uint256_be(blob, table_offset + quotient_offset + i *0x20), factor, modulus), modulus ); factor = mulmod(factor, state.Z_at_xi + 1, modulus); @@ -241,6 +258,7 @@ function public_input_direct(bytes calldata blob, uint256[] calldata public_inpu } console.log("Gas for verification:", state.gas-gasleft()); + result = state.b; } -} +} \ No newline at end of file diff --git a/contracts/zkllvm/circuit4/proof.bin b/contracts/zkllvm/circuit4/proof.bin index 8637101..8515b58 100644 --- a/contracts/zkllvm/circuit4/proof.bin +++ b/contracts/zkllvm/circuit4/proof.bin @@ -1 +1 @@ -0x040000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d14d00f79bc81c1dd0fca037f92863b3f254f04411e03cdea562d939454445042000000000000003914d00f79bc81c1dd0fca037f92863b3f254f04411e03cdea562d9394544450422f5497c3241d226f7a598e125b70d4977a432d3256a5cca609eecd9708197ef728104d60ae88c9514ef2117ddc9f283b98447c498cc60c7815b6b0f8a55591492ca6f6cfb491ac2d63bfc65bc93426f4fc7c1707955613eb6622712c287f7ad0085182e368abee968aba57754f1bc9299282a27ba3f75305a109e2143aabd66a1f42d20e86d85ce2f2bedfcaee04c2c88798a831cec778463324a315ca7d660d29978e710b5ba8f0b5a3b54a8b8aedcfdc8d2c6a33d49f1c25316a65255b30121c4e1a48a239d06ebdba5ef6a617cdea616e1700f74b6727cd5ccd92f472fe3f14d00f79bc81c1dd0fca037f92863b3f254f04411e03cdea562d9394544450422f5497c3241d226f7a598e125b70d4977a432d3256a5cca609eecd9708197ef728104d60ae88c9514ef2117ddc9f283b98447c498cc60c7815b6b0f8a55591492ca6f6cfb491ac2d63bfc65bc93426f4fc7c1707955613eb6622712c287f7ad0085182e368abee968aba57754f1bc9299282a27ba3f75305a109e2143aabd66a1f42d20e86d85ce2f2bedfcaee04c2c88798a831cec778463324a315ca7d660d29978e710b5ba8f0b5a3b54a8b8aedcfdc8d2c6a33d49f1c25316a65255b30121c4e1a48a239d06ebdba5ef6a617cdea616e1700f74b6727cd5ccd92f472fe3f3eec1b9ceca61f8dd9950e01395508578b413f8f82d642d7e01bce387ab1503c04ff53745b649ddcc9db85f82ebfe53d148de1e08f6c70696764b7d9bd0c1c8b213512f755aea8bd75050bd7d649b6613b649871744b991958a487efc18cae3328e786617b604d69b9b90ba7e8b402e89d9264da696fd9e45fcf7922ece6f79a1fe9de5af03c1a4d045bd508e4d47036d16e59f61e748ccb93c91c0d59d91b341efa2279781ce1bd13c856bbc25d85030f7e4f6209ce07f8a25cc8572e6e973a20a804d5012f029bbcb2d8c3c452d7895aa54bf4204ab60938ae179a2e4b9e09183004e03a865c7c1e3f38f4a5267d4205e540f3d743d1c60f2902b77d852e96243c65637777d1ee46c13fa6d368a503c6ea125afaa809f6121faf4f7e8634ec0186a6f3f0209599f5436c213e537032d45bb8c0d5d1fc8fa5445ad0c951c9a3076dacec8d305f44db93f9ba5427d2a306b39f24d22dd2b99989eceaa4d1772d10f4eb1c5290c61346203e82423cee59a6035bfd481bad6865fea0ccb30cc01204ff53745b649ddcc9db85f82ebfe53d148de1e08f6c70696764b7d9bd0c1c8b1ba8b160a5ca64bef2d752cb9592f24c46176a1390de459fd1495fc0713f817e3a73f59d35fce36e759ee3b753f2f4d97d01cf186f5e7c532c780e32ceef3b1d1ba50a82033d9b4b414a002dce6369ca5bebb6addfee4954b48f77878c220b15294fd51015a092e0a6b142a1790ecb1bae622443b27626f464a54e0c2be735a0182c5e0197f993086cb1e656ddf6f4c01bb98d8e2653d57af26f1a7e9867b82d3fd0ca8f3234758577329d6c6758c49bf9aa4a2494805125375911931004ba9608f453e07d50f4ded0d765db927b42d5db0f57e5a7ffcf493ece47bb6e2340d0132d0a8d3c94f52ba2d6605eaf370f83072babad96e765118b0a62a4db5b9ba213cc23004f2aabbc9b7f05ca258e0b57a543e2bfb5ac023244bc9a46a0276b783c138a515123ca3d2a20910f9e5bdee8a72330149c4f6a872f4360aa9dad75300d82254061776b1f18a64a1d136aae1fc18105fbdb644e9d6fad5cf72c5412fd214d037d5103c2649541c28237c1bff95ccff48b6c0bb0bea61c1f6ad5a6cc520000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000124156e7bb4a4b194a4781b5e3f572bc178873ad4b8b4db76ce7961e5669feb2f2a932f1bb020ec4dbbc3c8906df10ff26750a46dc68ffcbc9b8ef5f1cb2354691716febf65496c7aeb46468c0fde56ebb1adae76b33d43acd0ac430668980fc1107a097b93a98368661f1da034410c596ad9d979c86181adf70a9e0c802072ee198fa3ab1fcff2a9b922896c156beeb90b8974000a9ae3cc35a71f10225820fd016469e8626effe7229c2afb6ffa79bf7a77ee61256c905de16e6f08bf40a2c21bea431384cc63987fd9165daa4f5a69703759911f4cad330e404f435c41f1820d8cf1a37134901a3b7e563dd57c42cdca5260827249976a12488acf6a849b3528c05757dd187d55f55efadd1b2bca7fe75402440bdda7fc85de423c414272c223f4564ca3a06207c5be0b796369e71290ee5c1c3671a537e6d475f741f5a86206ccba1e5f28a491e774a491a7e497b122207d0dc62074e3eff3b926c36f27f32454f877ce957e94d3c0bb589092f98cd9d62e9a4a9f24eb08ed0e0f00f2497111111bffcab26ab4c1faf453e95bdf0595bd83e06d377034df2cf561c463fd3a067b90cec48c93264c4908bfc7b4c72d0de77804cefc48a06835025ec29fe7ee000000000000000a00100103020203060402000000000000001d020202020202020203030303030202030101010202010101010101030300000000000000020000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b500000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d37000000000000000201010000000000000910039438a7b08638840d185421f618150dc0370e0ff389061f5fa0a8c68a2d035b3c6bc7584f79c77bf2e7abde09e7eaf2620f8aec15c3f2fc398c882675d2fca611e51b46729f1a944179a4a9ce786944c113464fc1ad1e9cde234be0b2e110c72e1ae4b98d60e56bbe865b56318796bb613352ac479fda7ebb09e50c4d1eef3a197988603d1b84e547603751085a0e57a319c692bf149ff4bd834a767e6553e22686779fc2e47b1ab89fc8aef7a5f1a87f2cd2694a385926dba9e676819aac1f3f5fa9e13189987a64e1149529c247b60d3a47e1b21a26ac1a63436377faa36900a0561ece7667859b1eeb6ad63db84a150c511a5732d26f7ec9ed8988055c98039438a7b08638840d185421f618150dc0370e0ff389061f5fa0a8c68a2d035b3c6bc7584f79c77bf2e7abde09e7eaf2620f8aec15c3f2fc398c882675d2fca611e51b46729f1a944179a4a9ce786944c113464fc1ad1e9cde234be0b2e110c72e1ae4b98d60e56bbe865b56318796bb613352ac479fda7ebb09e50c4d1eef3a197988603d1b84e547603751085a0e57a319c692bf149ff4bd834a767e6553e22686779fc2e47b1ab89fc8aef7a5f1a87f2cd2694a385926dba9e676819aac1f3f5fa9e13189987a64e1149529c247b60d3a47e1b21a26ac1a63436377faa36900a0561ece7667859b1eeb6ad63db84a150c511a5732d26f7ec9ed8988055c982dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd6258c009b6c55c415c7005a595075d8836dee62fd6135be0aa4bb5872dd3440980945e93b1ef5f36d66097a6cc3cf18416f1c5ec2134a28f2aabbc65a15f2621012aac1a59c78a2b8a13ff2c356ff5ddb259d2538cc45ce530648a90a8728eaaf09bbdf8fe995ac146b6973388bc2ed59adf49fb0089ffd8ad272064a6e75e1572d11f1bece483e5c430c5546a5cb8506ed18fc518858c674907a716dfa488ae911a7ebcbd7de1a58204c5573477a531c0a59e21ef22ada2803ed9657cfe94bb01b3b6514a5e576d3bf2166ce9c7de55051cce16420aa35ea7603aa0f35bf89c41aebe5602a8f012b625ab7294163b3f936535be6d1710961e568ba8e309576381ad30130aabeb00b66c906be2e8d7d9ff285cfae1f385eb5c86e869d67d90cbc12c1b62e5003e73e78d68a779fefdcd02647cc774a7a7f465a023ad79a9f1ca42ca98ddad3217793eab3f53637db1d568dd1ea9b86e6ef3fe2e54dfc2c620de1097dbc99fd53006b36c828c1a6067bf2fa4e52af6b34500c788716a139f2f21c11bda87aa892766888593e0cf677695d577e8eb4b575e5ddfd7c936dfbcc97a92e425785576d899777a6c1f3098896a2cac80a4753d7133d9bb09d7f0433685908f75423fcb69e61229e0ff5a461159015399b25044d7721a2a50d4191606b2925e44d87dae27f93d4aa5ae82d8cebe2561871b32f8a610516f1c065b987809233c5ea00b854ab2c4395dba0352ae790e88662aa436f21f63cfba75b46eb66ad25543c0608822b2d33dca61e64c056c89bbee4ee30db33758f50cfc345694fbb3ae4ff0867b276608e16c9c309d777d0db604be0024bf69a2caf81ab5ae236e830765f806c36a858b39a54780bc7d6392b50b6a995947f3c61a4eae711ae2c26000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011912ecebf5217e0c6d9f7518674945110fb6d6976ba64ce8ee83d03cb0a2e1cc125bca78fd7909a5edf4be1f33d1f2827ee1469f8516770a67af2db06adbee270ae8dc44cf6e38e607a0c6dbd59bb41f119270f952a28c007b0f9a921f71013227ff657a6490d5fda2170b06e2a35af44115fc07b402d60697b80bacea73c33107f2e4ef587c38871543ec9add6c8dc257b437ac6f2ad8929db3260bbc8491d70bc4441178eed6cc071e397d219b382cddb91931d150030a7165dd5aff23898a12c1216682f5163e25920e1e420d3531f330e1b02d67e9211209de1437f072ab1a028bf59bd77d1ea90862312c54fe8ff294950f4af79dbcde05cdbcdb03312c3b53aa1b41675e685357987a36fc359bb134a5e243f1089a27b89839c7e1ac25121666a8dbf893b08c485b9947ddc3794222445bdaeb802f12dfc6c83973f248145b87198ea33c8407c5aea933a834d9838d07861d8150b5cafcf5f01c05f53a0932a961f729b82e0f7946882b3755baeee3be3d8a0bd6c0ed4686a42432bd0c0fb0c2fef857e855848da9e00a399a4d163689c913d082f6cdbdb383d62da6ad3ff9f38da8ed0767fd686e622f79ab7f09e15bcb56d6ed376074f449d201c0b939bcadd72f5ef4fb6b6816b14e4035be2aae2de9901484cf80a960ebed42844f01edb6abc4b955e8c3886e15e97e406e57f94857556c74ecaeab87dfa895d6fc120689b9611ed06ce67f4dc635b2680717a15ca33159cf53f19b46f32ac0d5d708e8b86c70ce37e6d9a373e6f4c937fd917b5415662631d68458c5fa2175ae3b09a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22309a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a223305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe2622cbee39cde689d2d8a050b771f7a2c3b1ba52e62b09b30c8e93c520f6ada1196338b4638e14cfd60159eba3a4b37353ad4a5d4d9e176d1f2d58b8452241f00440361a1ec224d7d8d5ea28a83a7d57f8b8b730acf476f957ec35112a3fa61608e7ffa7a6007171ca846ab5c221a555d35b9aacf9f95610076d0f3575dc681c197c72c4ccb103b028475e963f041edf0457e1b288d586454f04237818425ece26bbfed82d1828baee8720e0a208b1b44b74061ef724dd8e083522442f783e5d022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c12334659429b892780000594c3d097f40db55bed1a591791fa10890d107b17803b6eeac5e4cb11c87a80550d4b74dfa3eb8d23386b65868e6be730962988072429830108cb5a02fb92b96cc16107c2713d5b965caf18aaee85332c9caa0d94d41d6a5055453de0b1f5ee004b172161a4672b9d1ed3c3d60b5965531316d1491424c267bffeb4a92a1f9ff71e8aab92bd8fcca320299f15f903a95dc267de98681b3d9840014b56d5e06008e175546d429279f5dbdfade3229583d32a9821679a1d04c802c73bb5682da8ae046269d75e6d067a1ee1225b7c287c4b176cf2a6de32dc9e0425440fd13b49e72087bbfd0944c40d96f6411202ccae4631e46097ad10107710165bc0e1593682c1358f9dd773b9f523e8d4a9a061632ed053cc2be02a058eedbea0901751c3cb699500e5c6a9232dbca0bbf3319c64a76754fd1b940d4599ce45d427e2d631ad7a1bd61fe7e487b02b5406a1dc6f2d36652d5e606a1fe51a21e994ffe1e00a4dd29d4ffedb384f01abea3acf52bf2ea331a1a8f0dd000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012baadf51c0967e82e22afe99af216599c49553ad3266faf11e98c33dbf9e89da128dfe18ca83ba51b71d807d3f39d29517c08d3d418123651e9b22f3394d42630dc725a7df7ce225916abdab44aabd4af843573d6ecc65c70c2f958111c023d91d044a1ae5ffd633fc55a978e1788b5ca21cbac0c02fc85d55b9a8a99f8b45492d14c3db2d1d856d8a3369a812bf4af1aa5e00b0c9e81f869e5c7ccb2a0d9c4b389a767e9f39ce0e63246e2b4bfebede42cd2103003c05ac485c77c0e47443aa3242c742ea77b559a654a1038fca6ab5e901bcb7f2a2962c6c8f1f48565445a3158f38c7926451d4feb0d6c8965e39b074e54a82fe5e6e4bedfa441e64850ea80e4b8f78e621c090866c82dcb40a0fbd9935f5d90968e9e6fe1d949ccf2fae732de77298419249ac825157b9714cd5a5719adc16a64ac75d69f8ea6726063f0b247d7fab66df23bb452507802b7a484d0c27e331576117a392e8977a39741d9d0f35170bf7b1bcf30dbb02f2ae357e426937428db2652b1ba5cbb935811ce03c3590d15e659dd2d2ce5079e2847ad2367006a11c7e5c5da5dcf61989554e61e81a19e52e3ba71ceab3a59e5fb5387395b0114477ec4b1288513c8e4452e1057e2a1047c055fb549955e70886683925272d662119c22c1135efff8899b67124e9334803f84404b90ab676dfa456b284ed80587877bf072248690682481ade24b104410a6aa4538987ca1074bb7cd7c8fc4b693aad33f0284765747bca59c57a370e823a99584cfc1d14cd8b09d1e015502fb910fb5e9bd8f0bb04d689f19e97371ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c692150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f398196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f61ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c692150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f398196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f63335039be7eedfac2e3ac623e673589a8852baecd7723f5e37deadf71fb908e23fa261b1844f304c485490d5e999b2633afba4d7b5b76ec065c640ecb11d4f8912de871e518f6b896a160fd7b607ebe62cb7c5e1696b514fa8b5840bbba96c710d2178e1ae70947695e9f02849f81419e46b869c9b3b2b3e23e1146ac45693900440930f7560351b151572858db88b4c489a2f492f8897491262236693d3a6fc1ab1bc182a8f50046511b7ab409a1d69cb3ab17ebd01f77d737b60b7fe18ccc60276de9a6932a003245ef15aef58d798be95c6f3cac18ae207855e797110dad218e807a31e61baec745b3680a23a69b641364929583aeb16689e9bcadb56009c3ccafc6418112053d1c539dc198ca765b3a8d0cc38d47492143067a7a046f720305d9e4e7bb0cfb3b7ab6f2a16664d9d00ffe6e15a8f452fe648d4b20ee2b0793440930f7560351b151572858db88b4c624f22063682521dc544081853d3a6fd0ab1bc182a8f50046511b7ab409a1d69c2a90b3fbaaeb9368d30147cbe18ccc639ec7545c681b4ca67af2a046384bb7f8f82b129d1bc618951c62fd7249d8ab0333c256ccd403b3d21c17f01cc6e398325260683c1a75838a8b30c828a8c1cea098ed6f74ad0e516b003bada4d1e6de28e82ca48772d1c596b7d5b2515bada3736712908b52f1ae94ffc4525b2e1921d93c3ceb3921fdcc22dafd5c7ea4525cb1b8da1104295ba42e4c7df11238b2ba685bbadf6caeefd46ec6802ba43f32c470a9d2905c385fa6e80abdf643f5f069cd2d70fd883d5ae14267f9e45f180bad22e94cea0e2160822da091f0cd312cd35b7d9bf51af4b8ff33048fd8573b67a961f3bb0cd27bf0ef02d5acd7b01d1d563ca1925e5938b10ccae4668147c09af480916df5e2529a6702fb45803196dabe75127ee9fca694157de13742f99e36cb20d92625f97f8b1f9d99a2e94ca7f36640906d12ffc4ff22c2d048ed7375bd63a00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001273c5541df839c579932a2bcae67f86d156e7dde88bfe5824a3fb09c0e1450c426d09be32ec3b470410c2239d01d6b894da7cfb0e6814d22e7458b2eb347a92f10e4410771fd221feb3133b0fa8f20a4ca6d33dcd4947330beb47cfb5ee2fc32128100847e0bba2f75506ec83acf9a262015f1cdfc41b43222e219b0ce3a45690aeb2417abd0a8f753afef6c79a479d5a78ea8e1b676558c5e9574769527f00034eee1477c30db62d2630c91e031089edb7bf6891559c7dc4497e66ba85248fd3ee1b111d13679cdd1c34529c759b388245a8d614b56ec0a3fd1f87d26620a780bf1378353ab53fcaf53fb41eca35b648094f8a3f3cc1f715981817a14e6c717047936fe314cbfc4a7df0a263777cbd9b9302191a14a799dd19b44ae4e0c0fe23b8753d50b973129ed5601a4d639bddfe4fdc2e6401c1244da8a748e3ae110dc37e5c8d6d84ab42b987c6c3b64e89fc659d0bad530d71102f4b7e15f96b9fd5f1b6328c24f0fb08fce6f98559838a0901d6a5f2f8afeaca839cd9a5381ad745a2373042f3df45c9deed6b72d72100b8f38c0dc0f684e8124f860e1436e59d0f92c37b25d6350931f931f6114c7a33a3ce75709850258ef0935d1c68a39d5966d2d14f860a4008590ea30bb6767286517d2266c368c7f80262a2b99efc012ff2226bf7ae88ee570e821cdb304297b238708918decf47ede80a92a4a6abf97c704183a12d869d4fd9cea41aa27f8c40661838115a2ce097dfd7217ceefcd82846a2bab31dba34cba188370d8ae51c6bffcbbeffe0cb620fbb169f28add96dcdd82259ebd15452653edce544ddc801f91dea739caf30047210f7dd049638c0e39e81a6142eabad9ac1231abb2237fe06e217b0cce090905d80c1b5ce78973f1c6193c19b16a59bfa3a507a5854e809dd958ff93c4c6eec9b31642b70d17bc47218603e64e95a6405c5af85a7ab17f6226a722b2d4351a834605567623d543b8de7b2c807713c0be3239263b9a8883153ebc74c873f284bc9b00e8de7dc2ad63a79a137f88ec3f41cdc6d9c465777ceac143ad7e250984905e1ab04eb32a529c58671e825362c3b6fb1dbf2a04aa8f6a39ade11678c87bc81bb1c0d0e20662f245ff217dac9d3c4904e240d5fb557095c652413020338d84dd69d85c4ee69d0dba02259ebd15452653edce544ddc801f91dea739caf30047210f7dd049638c0e39e81a6142eabad9ac1231abb2237fe06e217b0cce090905d80c1b5ce78973f1c6193c19b16a59bfa3a507a5854e809dd958ff93c4c6eec9b31642b70d17bc47218603e64e95a6405c5af85a7ab17f6226a722b2d4351a834605567623d543b8de7b2c807713c0be3239263b9a8883153ebc74c873f284bc9b00e8de7dc2ad63a79a137f88ec3f41cdc6d9c465777ceac143ad7e250984905e1ab04eb32a529c58671e825362c3b6fb1dbf2a04aa8f6a39ade11678c87bc81bb1c0d0e20662f245ff217dac9d3c4904e240d5fb557095c652413020338d84dd69d85c4ee69d0dba020af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb1dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1971e92d45cb316f06ce27fb80aeda7c705ff0948e9e26ecbe36515cab2c89ff7eb3fcfcb669a3a5f19c6d5e6ed13c1ba68e6dbb93e9d0b60303151556f28f6178b0c139b14e2f029cc073e76e7a64edf1a6f3ad871102218f612740857a33733531d95c8e017fa1e6895534fc3485c246a6b691d17e40c111566ee81de19a3c1b20a334d4c31960a61c9844aa2a55418924f410c8ce6bb75206c10b6ccadee8d3b1c2e4ebab1756f0f23f502c605b001645fb9918dbd52634ba85793651b5f2f2c0b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4822d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a177dbdeef57b7f879538de199d9bc38d4c3f281ea768a2d9f8f49153ee17916333c90642b81d79265e0349994fa5be88ed0cfd39dfe54d551c613a99dd2d542f16757cbde9eb9f5f59c6bb6da6ff3d7d9e8cd24ddc94847971d4facf87ee4a1c225eb35e5e6699b01693ff2025239088d5968f6bb9195fd4230a1040425b06e128dcdb1edebf50d9ee626e2e76cd0e1949a36bee01c32cc869536dfdd1bccda3172324e12140af26119d91d18932f1e6d8a32d0e0789cc532fd9c2ef2e43325f19f34934d5acb7b094cdc4a1b47488f34b4db22fc0f71af71046928bd9865ab11fd93ed2275ff6e2f2793ec11a905dcde2ce60ced0d5d03ec84b2523e43da5cf228c8b119057e8dd4ba65c5fd492162e49aece836d8b6cdfe009a4abab82359a0ce0fdf185b0ad531f95a87db902249037e2f030c9b75615dd4beda73663bf65009b9410cb6b15e9fe1ff40c2652e425db6d9b2780de8f730ca42e8cd06baca72cb76783dec14e807bc01fc49c705097911dc230859cb4639a6a3769a3a9e760000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011bc1c7dc0930444ba048114eecf4367011e6bcd9b6384e16ca7466019e1849a52eadafb321bf21bfb42a1fa82f669b9389efa6bbe70e2b801f25418505e5d52501e1aaf5339c981f6cde89bfcd2a38ac6e32b274b75dc71a61ea4b590ae40dd5127e2e8a7f92dbd4c8539f52fa1ea2fb2f0fa45984936b089ef4aa431714704b3b1a9818041c0b3391416e8e2f569a22be4bb8bcdc250b6a443f70a9b0277b590f76a91cb27a9e13a51a7b9afcd3be3aa9e23cc76ae8bfbb543551c1162ea5401332ac15911de103305e7b4c99572289ad64528bba90a1a40548ddf7c9aaf14736094eef685f8418afa9ed45d67b2402a4ee7b15a9b377989ec9c9d80eb1b9c72ee168c2801bd86ca2fe0140f70e0cdae234cb822e746397301fc6f769a5383f03939286d00500cec49d7f276fb33e24dddcf1a7ab2fc55eed7d0bc00b77b9cd0d151b8874088d2d94bd96ec3914aed6e5fda566fbb92e0937d7d23172c78e57108451c33fecd1bea4d55637256b53f99b5eba0db86dcaac22845701e36c2e03335fa90c2f1d566d6f886d9c9f1862d1670c163d88a7f9dc8c4c2bd14f40ea7b1c4b0d8072279950126daaa59a9ae2fab90bcf56e1ff7651a1e67bfc58ee7ceb306e4f70b3e118434307bdc8d7f0fc43303e97b65cf28453bdfeea74f15a08243034488f8a0bad1e4db438093e3b9960c9556eb39815f80b6be56e0d5a4e5bca3cb09cdb311f9c8d73314834d9a9b23bbddeef4069a308b62768a2dc2165060402dab7a5deb0d8257412ba0f5e3792ff83551d85a0754a9fced076b279c7f00f1961932c86c70d27431b51514f0a4e8ee6d185fb5db2d86e2d066bab217aefa8269e6cd37938f2d8bce4aeaeb0f5b1713b751300ab9a20ad6c26c541de8510593ee7dfdea1e341c44f8896968b3388ca5fd104eccb31410b47f2e96aa766ae47011820215e1cbe3bb077696974cc7735c275940f3e1bb810513a4782589951ba3a875f59297048d58daaf0f0b801abf355fab4afd2c260ca0309cb614501675f0578a0a6d68fb72a72550f0f47fe540ccc4be44c368a98519623658bbafe98a224a4dcbdcf316c2bc456b4b398085bc024cb237ef897ff83aa7c3532590704d71b5b234230ce93d43ba94b4c67f7a43ffd7b757d10b4f997eeb0fbbaa6f8fb2a1961932c86c70d27431b51514f0a4e8ee6d185fb5db2d86e2d066bab217aefa8269e6cd37938f2d8bce4aeaeb0f5b1713b751300ab9a20ad6c26c541de8510593ee7dfdea1e341c44f8896968b3388ca5fd104eccb31410b47f2e96aa766ae47011820215e1cbe3bb077696974cc7735c275940f3e1bb810513a4782589951ba3a875f59297048d58daaf0f0b801abf355fab4afd2c260ca0309cb614501675f0578a0a6d68fb72a72550f0f47fe540ccc4be44c368a98519623658bbafe98a224a4dcbdcf316c2bc456b4b398085bc024cb237ef897ff83aa7c3532590704d71b5b234230ce93d43ba94b4c67f7a43ffd7b757d10b4f997eeb0fbbaa6f8fb2a154726d1e457b749e5a32d9cb269c17087add08c554ac6163f1ba6dfbda977f43ebbdef2711d9803441a84e31a9d5ceddb174d378971a5aeaf3f8ea84a27c7942811da7d8566e18b5e499874095ab369c2dd6937effae0461fc73e2b699a6b391e6b1c8fe59b270914f6b0116f3ea5c17f4a5c1ed97593bb526c3bb2ef0b4a4d0887259d6494d8930c8fe34dbb38b54f2e6ef48b37424d4d360826e2c99c10f510cb754e0c9b4d86aec4eaea68bec328b666a9a043d5d0d875267093633c170213724f0ac1b4c5188c3274dfe3b442f0a5f988438b3c9aff9885f6af3af876cb24b81373b72e6d9ef1bd0f62e5acaeb018dfd59ea142d8d96b43818d2fe72caf1ec72c0c20573b5141e5d40e17d7293f3bb25cd5f92b26d68aa789660ac49eba06b8d7221f316ccd211c30eca2885f3786348b037a8ee4b5e05159fa94c46c3c0dfbdbb1f4e3dd6371c6991d785e71746d7433ca31f5de962c6bde98a88844c404d9c82c114a4021d64dec9532ffadd857803e0688fec4a9a5bc6fec2baa2daf02a6feb09641672abc1339ef443b8b25d7bb5f37c40752bf3a4a4be1d8bc1cd522d9047da94740f3a6eecb0b7623fd50ea2b88a1afb2b8cd30ae977ec6ccee223bee278e770ffa5d9af70902a1b32bee73cd6d3052c56724f32622d443f7b09a0411d87188f005a26508f6fd5e4cd411ae792bcbb68791f6a6070e18bc084f681152aa7a998ab109bcc09147bb690d1218497922c90773f8c809e158a5244eac284b21b331d7fc2157a772c939aa498cd46f9ad063e07861ce3362fa7a7a4217207404e4b8acf4084c8271e49c83d0332e4914a597d009e9e6b75ed89e3567ac26b1c682f1fcc8c46a8e23af587126fbc4d65cde9e386ad694c439eb9ef95aaf1e687d58ad6bd6345644c9acecdc594983faf5ea07a4e101a0d5e874de3180a3300b7f3df6373e5e36bb90cc78361a58ca1d86713d9878eca0119ec346780132000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011b8dc89968d74e1bf261833db2b8ee1446f8344f4b7f13dfc4742f66ced3711a3aac9297494d0d5858c8fb500a013093b1891eee2d5b99012f3e41c619edff9a3ebfd82e38ce89e722bbe2dd904648319c2ad36e3dc39cdb6a55d432922cf7083a36b13e386c21fe694758883d6458895a21f3a60120813a0e891a311f1c4b312801d0bcb981cf480e8cd70b19bae8303e2d2ea8a4d83fc8eb0608ddf0a094fa0fdcadd892398aa23efc5601ec3e66255afb6930257b2950a81d196e66850a4a051892e8291875ccafb17dfe252f9b9d860290086abe6b73848a0424f59c91a625fb3a884ad43b7508e04c3c30d33f486404a82288e1b024a041f394d30402fd388acdb1293a4ca89194095268d70b8f6512f637a011ac454535c7f12bfb548d0cea398a96c7f98065ed9c7c4b90298cfcc29bd52a78ebeaac50022b45a9a5ee2c5409f0bf8d7bb555f7e8f1a8731dcfcd8041ae75ac95e444a638a914e0d849234a98835360f4b28303ec2a4276c9e228d68118bfeb16452aa01bc5b08d32e71932182ecd2c9f648e2950f7e394a29ad00e99f9ab9f220e34e2bd614a66ee6436789e5dd4185058f3ccc74a561ea33150094b9abf084e1ff94fea6c5dc879020ce25dbd20623e1f88c2a8884c7be19efa68969346cdc56d69a4f69b3fe4c1aa07f2b11fd75c616010258a2008097ff305ac41105cf052eacb2d3eaa496da0b02e373e6c5d1014560389103ea8f9131236cb9249636a48c2859c5da9d9c01b6a1450ae69f91f2efd1c6ed7375e24a1cbed3a09e63ef96503e232de651bd097eb233b71d5b1b9b94b37ea516b6d81d75713c2f380d31841dd7aeea14e31a9f1291cc48e2a4e4646b4c815ae94927e28a90e83a57b3634b73e1e3e8f9ece560ed83029392c78a09e7817939719238934b31e418f8c0cdf571c344ec4acf851b5cb0fd6c6d3875f6187e86c68e6dc76cb4d0405096ffc6da1ff64de6c4007ae4a3630ce1dde5b23185875e1f37db1ae077f307402c82475c83a3a024499d9988cf40f31e221a4dce7a78a1e0c824e51f880f1d29633e4d730e15f2aec532667730d34069557c7af79ba4d69c1747866257b8b7042f49a65fdd05683c43a3ffac0c10bf96aa838508645b2963e8b8799da8496d656076ee6fb4b42a96cb2c0053f40233b71d5b1b9b94b37ea516b6d81d75713c2f380d31841dd7aeea14e31a9f1291cc48e2a4e4646b4c815ae94927e28a90e83a57b3634b73e1e3e8f9ece560ed83029392c78a09e7817939719238934b31e418f8c0cdf571c344ec4acf851b5cb0fd6c6d3875f6187e86c68e6dc76cb4d0405096ffc6da1ff64de6c4007ae4a3630ce1dde5b23185875e1f37db1ae077f307402c82475c83a3a024499d9988cf40f31e221a4dce7a78a1e0c824e51f880f1d29633e4d730e15f2aec532667730d34069557c7af79ba4d69c1747866257b8b7042f49a65fdd05683c43a3ffac0c10bf96aa838508645b2963e8b8799da8496d656076ee6fb4b42a96cb2c0053f401d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f31191ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a23a3be95ea9f18d2ba1bdc9e20d742dd3d63c827f198de024754695b2fac8ef320aff83835a5b4ccf729e3b4b253bd1f7d7324fa0ce86a7dfa7275830f1bf16424100b05774826b954c1e98cabc2dcf1725adab78078c802023ab2171a81caa32deb307a3d1a7844d20e88da87b5ae0239b5c2e49342701737b9c664a4fd6d691fadffc2b1154b6729eb1fbe7e0fde2dae0bd0b60207b2e40ecc3f5492bd3c20163a206aa9162cf827adc731a5cdb7db8fbc61aa5764c85a123a61e921fdf31e31870947f95bdea9c3c192cb3bbf7effe29d0fb7bf7284c1d7e0d66acf118ab01040c9277dc8c6351fd039b70656118046072e337c872d37814fdf794ba768ca10f547f27e8c939e20c0942da06ea810edca7ce96c3f85ea1afab3e442288e863cb23cbf15913dc054ca1de6bfdee2e625b5cc8cb24762ca766016a63e8e29313f1c3e6d3646005b86ea2120e2bf073edb7fd6e3b821ad27eb134dbb05d43ff702ab940240dea4835ca7ab615f5689414d24670783d804d16e1d682914e4b3842edb7545b87d3a266719e769dc68f5be9578a8b03b9a7ff069c36e41ba2cd72d11248aba4782c5d998e6189623970a418ccdf04bcdb2792b2f69c2ab45d328d50fdbbf16201e2b7e24d31455600186627cdc68bf38594fb5eb8b03d379d818443d967b04dd949cb2ecb731cdc97b6e35f13711433f1753b02c1107ff351b889a2773b5ad7d2b090a09ffe4faa72bd5de4703574992ad1744c995de12627ad521083e79fc60e79fab809a7f5c728487406136c07b7bb86312f718fba4dec171d301a40fc986f5e508af31bfab40646b051423ecd55dc1683badbc83ed8173dcfa099c824c492194f65ae32b8b45476186f9502ad9c9f84b2a6482d38f9bab6cc90000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000127a4f9d6685fecf97d53a8f085597688770883222fe1164239468dfed7595818376c19be7028368ccb2f06c8e33e089cd0a01e6279c2b4377938b953e1c0d05b1ebf43097799114449d6d94b8f3da3f5c3c7395c128e6b1f3fde543b4e603ca00928c4cfd2b1bcab5fc034c822130b149bab0e646873ff883b1cccab5752d90130c03f23b86982feee2fa7017c5d31493befce3ac6fe2f752e49d2831efac9a600ebc5522cc043ee20c6e697b9746a0a2d5cf43d013d8e52a03b7e36e9dbad77196ad97a632be84e02346939fed354ddaf8c44ad1665639a62ccbf3b192d2ab0193cc39ecab1544515c0811be32cf039a8fc330414c142f983602927efe0907106d1c79450deac6f0efefca30f222ccb3ad70f94882bbe01b122a0ce0861c0ba3c483899dc3954a3ef751178a72a9c51ea4d23a4e3cea3a42f82d32c612f478817dc15fbc8badeec7e73586330e5a4d41ac84bc51727664d4d6e8564d11e5e33247ed126d5c76ce65c5be1d6d9eada9cbb042a91bb5cd9797e32f78dbc1704201c629fce4e6d8f4b17536c31055d4411f1c1a39a304eb740d08e5e2350a69b43334816be52d760726aa2ac11345601ba2e5641fa3a58b8ed5da449aa5788cc230800cc066c4d8d1b9ca821b6e824ba460ec9d4476bfea2b2a6a9ccd975c5adae09fe982a5677300c24045482cbcc4744d617ec0b7f052b2bcc305fe8338657513bde76e0cc154965d3e3c60e488ed1f78a53c6c7cdbfd913a83d629362567dfc3b7547978e246f4bd8ef072db9224ea37e4d3a0afa0d421c3e7f9ba79239be68307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab21307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab2105f957432b4d66c307dd8d7a9f77a65b49b53376dadd9b2290ea826fd6568a542e26f67ab7b96cbd66298cf342505f2dedb559fa4be2273dd01899d6c3abb1712deb307a3d1a7844d20e88da87b5ae0239b5c2e49342701737b9c664a4fd6d6924100b05774826b954c1e98cabc2dcf1725adab78078c802023ab2171a81caa30ec70c44d876c57b82bb950c382934e3ec0009a81f04f2b33ea650419990bbc82ce53ced07446ce4cbfeaaa0f4abcb1f9db63b2df513b703b1ed32ba27a6c3e40fc904ba5d072ee14ffa59026c6d13d5bb675dec29e5aa4d2a4c867015ef710c3a4edb1848cd58bf5e6cc00d6fb556214b5da1ab8f47ccabe7073a2c35555fb91d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f31191ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a1992768519abd8e8951392e968cf4db10f1dd7a0da26aaa1a62f0c6c393bc852101e972d11acba7992d63a5c908d275ef0ce68952f83c017a99d2f00c87c7f500c1b7842979820f82613e9aad8d2aba29edba2a09b2cede1d088e81884ac08452dc8fe7fd0fe6c894514898011ecc3e0e47cfd46463f02f7600715ec21d283ef2f77047d0e1c7a4879e578c0ea7cf20369732ea22bed5d313918c5c4a8acad2c1088fb82f1e385b7861a873f15830dfcb8d36a59dd5f9bea60146b28575352d62cd3801e3ea3e5113e3c569c78708d04a316b949a519756a8befdf7cfc1fa2fc0a2f4974493866cb99197e1ed23cea20adf3be785b8a16c65b5bf5b831ac99c0217deb8a8ced2f5f0796c5eaa9793e68cac29744c57f86eb3050f48112eb752f13d8b191aff11d04939023c28ddb3f1fb250fb2eb481b3415dd06977b68c6a5b0524eafdbcf2907225592563011429666a348a0ec94980212de254e0f48257c519ad682ab4850ec4a1450404d5e2c23b89c1ed9adcc433fcf9c5dc59b5f005fb000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013b73fa2eff661ed03bb36b377c3d98164213a994fec7de3634dc11ec2d401af30e7e71b62f28f467dcb1b250c1b2d94421e6892a5643080be2c7183cbfbe14702747cec38c8bc6a83b9ee8dd046554915a19051afe579a44e35c5659abea8da2159d83123b3d4a30710fc49e22071adcb2c9325d4075a7d7bd524d92a6a2885d1f972af88fb7bb2148014b6b9a3e7fa63f3450cb78925b04d96b26a76fe8575235ff94da8ddfb2bd6cb3d194569a9a32af2ae8cad2cf3be75de045b68395793422ae619fb7f64f4433f25ec5bd52fe77ee02bfdb7785cb44ddbe77320bdbba5b232c7d4dd98147b556ccf8eb07dc749a0a4e9724b86a4fb5fc6220582001631b3d83f9c1bdb873ba69d830ed6d4529b2499dcce13a0279b3a24b1c3cdb1024d231a0d30060237ea9d3abed6775ebc52d293c8e1d65b2ee358dde34150293b5bf28ed28e231ac12c97f358fd2a2a0a45ae48c17a56c6b445e70da83bd966f52852afbf733ccb6f9e2955c7039dc8e8f8bc618bffb3088af5c3d27ff12c28a1dc21c54c01bde569fde6316b1eb79269d154884cdb85fe7c7fb5f6d35618c6fe8493355f670c2ee4fdf1edf6656c08ca8b6d79317dc0abfa832cec5726c1bbf7f1d1b9c8d8581b09e28af83f1afb83da0151801c20f5b6d0342d2b15bc9df5c718920b478943926dab106ac62a11941cd8df13d24647577adce600d84e6e8eb051a3b7e370bed18db92b038ef718c913aa99b85e582e29a091c45d6be8c366c12342d2edc443b43a134ec9fa4d9e42d1f6c47f9b19fb15ae0e075708c217829566209c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b09c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b068b7cb70c4e968fe90a321a45ecb6c221e359af3f511fa60b4bca61ced1e0ae063701d30cbb53d7978d008cd3615854317feab4f9fde2db6584c6b4ea9b95e525c75f1da7984a0e35ddd3cd4a1939fa3b3b9c2f959314eead426e27e2792dea24ef2af288a311bbc5f02334c1052f8d299158fbdf2cdf5668b90bc81aac4bc10c92b2d6b47058a06fbcb270dfd3adfdc463f7d18316e233d08b9f3170c2b1cd0fec9db111a2bc701c877b6b49a793338e01242570cdb4629ba3d7dc2df4aef00c5c2e6ebc54236c27fc8b5428590d0438e98e29fe47dd99a493d90f276de6ae32e8f9e51b4996ea4ec2ea7f70712a16cff1a2df425c7ddac327a68cc9da51c939ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e2e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae9680150d0e603d5b11e21fffc0c6b34c7f9f61c2b730739d728c23e5590660931191077f591920208286e763acdb3280fb019c294548137c4442d22d87a3b88b5fb13ad242b4c191f61e117fa186ffa0f43c527a31d3468c486e09ef8634eb4f16a14d9d33a6aa19a6ca282dc3e6b99781ec735554b302236e9caef5e6ffab81e5c252607ef096f1abbc661b109b7fa4d9bc4ef5a30aa43b26d547108b9440a08031ad9f810f690e544399e4ef64805b2645d573ecb5f0946ae44bc2833bbf5f7ff2f54001cc08bdb63de0cfbbfc22b6423fdda3d8bf2383bc5295d4325287444e62f88dc5e4ea5642eccf818c32f8b161f1a364cc57f3341c184caf16b339352972ed1dee3ca3fec857296b3b29fb017abb43f17f590e377b90a1a029653dba3c21a3b76ed4926cd668e66a7960f9359e61a128be2217824f476fa8e2df022948f1ff6e78263c71a516be36315a67937c01b5d236621c075307328cc3a2b06b312189a1cb4646ee806fc9574f1f069b105345baeec8b6242a578800966a654500a000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010f289be9ca8a8d0edee6cdd9d86a2d1131b3a78bdc3ab5c81fe46743aa0d12d40d48c74f18cb38d4059436b8f8cd3331f84491d91ff6b08aaa67f480fb35c12f08776fcdf6c96f2a0d34d6ed7d0c83f996f02a5f080f1032e45817d421443a0d2923bdce327788d7d7764ff10ddfd2a88a081ac9a4bf181e62b907e74b7d3880280adb2095b8a32d0f1007453516acf1720522aaae717166a7b0c4d75843f0ca3cba87251a3884150994c4e182167aeb6c804cbd83d9d09d1d95a439956db2553cf996ac7886009f2ff2212bfc949df5b071b3bc744ab991d8832a9f3693ad6712ff597a13e2ee9152741a485848d30032c704ccfd9ff2e18e44725bff4fefcc1ab59ed070c06c6ac139095dcd5cc9e4d2f799826f4e4bc89809c4e71a452bb51dcc0de975482191fc71c68f2d9c043ffdd6e28a2d91e1d9bc3a909db7033580242c8ea6d8c6fdc8a19b6c242024d8fd7982c06b6c6bbfb50c20a7e9ae5781641de93d33098b646db587ddfd3f0f4cd04bde7a0c96d697b882fe58f55c4d88b835a0f167008c3a9499cf03c9401c7cd1c59d48e0583ed0c3e5a3571500ce019f1a09c525a0b8b528e8271478f996c8fa5a7a9cb412689f6a488f50b8a76165c712794fa7f3144ea64b6f052a9003728ec6bd7382363742c25802beb531045454105ee449421154e0b84ea2557dda98bb8af7b51acf589e340989dd3a5e9b368f23ec6a4442a2f57dd4b5ef4bde737b80f9da7a376cccb382184aba8866677d283915c396b02e51949eb7f630606a3953edcae2a5a9aa3cb7890410958cdf5aa609423384f0d74a20ce8bb048dcd97d6222ae78c1c3540d2ab8e53c646732492636bdcc7b0f28b5df31744fb72326829dff98203a45f8ebf0e047f48898cdb6db2e4b0198b43472a408ba716c503f72eaad685bc8d0a441d59c7a2df603fb6dbe11b4fe674bcb8d5bf7458e93afc08d1574de3d3338a8b745fcb302f6fc049243277707fb85063d342ba4371d913d3e94fc35fff7f74e5dd942db530713e924b31888f8047af9c2cbd45bc8e26ec2c16b2610990411fe9b425651dde5ec16db4e055327e9991f3204da351393d63238e8863a34e3b8a0e9eb82c10c5c638db77c3aacd81666e0cdfb25caec6c29cdc7179c0c641850ac0f30166c24909c72488509423384f0d74a20ce8bb048dcd97d6222ae78c1c3540d2ab8e53c646732492636bdcc7b0f28b5df31744fb72326829dff98203a45f8ebf0e047f48898cdb6db2e4b0198b43472a408ba716c503f72eaad685bc8d0a441d59c7a2df603fb6dbe11b4fe674bcb8d5bf7458e93afc08d1574de3d3338a8b745fcb302f6fc049243277707fb85063d342ba4371d913d3e94fc35fff7f74e5dd942db530713e924b31888f8047af9c2cbd45bc8e26ec2c16b2610990411fe9b425651dde5ec16db4e055327e9991f3204da351393d63238e8863a34e3b8a0e9eb82c10c5c638db77c3aacd81666e0cdfb25caec6c29cdc7179c0c641850ac0f30166c24909c7248850000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000daf6eaf5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c832f25e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab3c7b171c9fdff60000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000001a2fa8a6252351a23c57839ced0c21237b8e32aa9312b18475b8748a1f1197f718cbf80fa1fb7c52c731711fa3d79f1c8dcc600ce571404d4e0cdd8604f0bc2025b6b3b541e80cafddab92f4f6196f885a74afd77946978b2f45da0a5ef0fb0322b6d56a80d5ca64c34054f850df6a677aa6956446750e99fe6da63bbcca63060c26524ab36acc912e48d88bc8673fa28524232039b5414bf8736880667a8c7105a35db04a8a22339d2b243c9f532098852a81a975569f844c69e63bf65e59550692084c27403d2d054a974ad7196a32d6b51ca55e92677807847ad3e085702a06863210e8c92a4fe7013817682622a919dc5cf89f8ac34229f20c94e170c82a1765bbe1b9f3dc08c1021f06af4091b5a895828ac48c9a1605c72f913bd6a2f93bfd2f99cfb2bb01a8818c740aa5e04afa4a1a5bbf766e9cc1fd61f28e44c93f14057060f3deea36eae1e208e3e0b1f9658d93c174925bb17ba283ccdfd3b5ff27796db55b4c49c1793b7bf7fa6436670a29fe0096d39ea0302ae9189f341ade283148d745f8a5fc08ba9c4a3f4f0f6515ede793d3d3d18dfe07beb508fb4c880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000001a677e3364ef4e0c9908bb612bb8583a9294989fb02864d43959efd6baeed1702759def81fb4a064e60e51e087dc59e52077c2b7f76d095e5f0fbc787521049918a62107e04b5f9b19f1ae1f7823a61b01ced64411dfefbd3a1d74748adefb6804c15ad89e8721f87e479962a74dc1793b8302a3b93a43850fc71b9349a516fa3b3ea5276178de0781b8669d58b23e86e6c396585012b59689661559b65ae90717c6c63b18a3a9da7765feed4484c75e298f0d329e2351994ee389e0703972e2283939c4e75c5625889a0112bb7b38a1f8b78bc96b29a7824a49a70c8fc68d1f36e1df277b32514454fdfaa25697e4d6ad84a9010d639ee2f1448075311f3e69091e20d884cdaebbab02055da9681b2974c1effafbe95a38a7e8b077cee0c1982759def81fb4a064e60e51e087dc59e52077c2b7f76d095e5f0fbc787521049918a62107e04b5f9b19f1ae1f7823a61b01ced64411dfefbd3a1d74748adefb6804c15ad89e8721f87e479962a74dc1793b8302a3b93a43850fc71b9349a516fa3b3ea5276178de0781b8669d58b23e86e6c396585012b59689661559b65ae90717c6c63b18a3a9da7765feed4484c75e298f0d329e2351994ee389e0703972e2283939c4e75c5625889a0112bb7b38a1f8b78bc96b29a7824a49a70c8fc68d1f36e1df277b32514454fdfaa25697e4d6ad84a9010d639ee2f1448075311f3e69091e20d884cdaebbab02055da9681b2974c1effafbe95a38a7e8b077cee0c19834ab22fea15d89c74a4ca0d1cbdd19b18c8dc4699b5e6d44a70b9e363033d8121dff3c5197fd00d1d0a0de7643244f7892ab4a9b26b3f4238af227929b22c0730887259d6494d8930c8fe34dbb38b54f2e6ef48b37424d4d360826e2c99c10f510cb754e0c9b4d86aec4eaea68bec328b666a9a043d5d0d875267093633c17020574b614904f04d06536b5cfbd25bc253f053f3efab39148f663b7b5deec33cf340e52de04aef29b278901aaca40eaafc3602d624e75ececc9c33045c86e16ae08ce7d1e5e8778bcd1c33ee0e0d3c0dee902d2d8496b98b5aae77454189f72593f0720632895548bb04d3cdc55cb4d809cb1013d9caee5a883a975497c80ea303ebbdef2711d9803441a84e31a9d5ceddb174d378971a5aeaf3f8ea84a27c794154726d1e457b749e5a32d9cb269c17087add08c554ac6163f1ba6dfbda977f438bb19380ca3bcec1b7ac1e2b2b3cd0e595e5a6676b24b82c071862837b86c36277554cf172a1465b5f0275fb0bb614ee6780d0b60ac0da8edb3fb4a42c9b65202cdb763fa0d9da5a9237be078ea30ff6749e00736ac3e89bc196bd4063016fb11354e605b67b1a7809a369f541ced5ed934a4c09ec3341f991498c701a1288d2d86909215b5e65bc3804e43c6806f8f01e2a876eaae718f162af5e148869f0812796f6dea4a19a43c7fb1bc397f90712063f0851e9e878c83023b0bb77960fa020e374c6f0233b15766cc7ec727f49c8e2eb587852cb8d3d03033d6e7395c9427f3ad76d6fe5567cd5ff9f5a3152bf77d49c9ffc17416e6a828d1f05bc7cdcd2069ed1fb636691fead243b864219818a5f1cb94479bfa0f76a8a63375ac6e2d3ec38fbc0bd3eaa5293a811bda27f8e45fffc232211a8c618b67b2789a6b5a1e1f84c731bba07333a6189c23730e48ffd1a705d588a2213e1e958371e6294a403c1d73d3be3dd577aa4d76c5a7cf8ce2effdfd40d0b03e02f3c52b66a1302037000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010fecdbae950c124670743c80543af304ee59c24d0fe4f5da17e82768986dab8b231928ede12b62b0ff82da8e97913aa5396aa4867ac60b5505b50cd4e8c8fee33b4c12d0d00be17716c0ec893706f28cb3a5b15644a0a13f50ccad9df697733c3ca5c210bc84e5196dad9f4097850ed1090332f7339ee08963be3157318cfdf926e91a6546aaf2fc0e41b5ae385cc0870596d8a23172f22bfad69d8d2c895a793430abbc391b49329355427cc60c601086afbb66e742ad1c02728d5a2e7e97810ba013d0fafebeca5ec7c94bbc5142f3c3a45d4cdbd60c1eaf35dd90badca1fd3ef6cbc729d7fc478cc54b6ea48ddb147bbd12019ee889a04c55767b01800b2c30baa442d34859586b070f40628423b5d36cfd27e0a9128a88d9285976872f482e2965ad0899af2feb2d3bb9c1de9c1cc81f6329ddf4f69a91f1c8575397b8ad0a5c76397f5447ecdbb700511f4c775d4fa59bb9a090b65f5dd28c6f449f8f7b31042d0c7e516e2df84d2f82682d39469c652c94c870ca22c7ac470fbdf079e10092bf9231039a34af529cdf1b0579e6394054e551e419e501599ccdd53125200f17f6fa70415588d2a37b631eadcbe5c490f7b30f765d2d93abda12d2fe42453788398ff62d4e376d88285fc6b64a64b3587e2df655f36a7dc5bc397aabb50a39cf79aee9a7d42a7ad719c553f935f4c276f3ec53e5c4e419a6a70e60ae64fe280300c5c499ba409bf81dff9fb69b5c7a8e908a623ab4f12d30bcdb819877ea03cda650360bcab6979a7edadd19fdba369ff6268266d19148320967ee47773e199708d32e6449e450523f4e624c14d8be8baccc0b83f0e5bd5d9dfff78b4ffc2668f72cd19bb61bafadc0b19db3eb2763baec2ffdc90835dbcf92ed0874b0053ff32c1fe7f57175919b3c87eb7c683b9673c7003046bb6119a6e512d5b88feb000cd3e0180a8e8a6e64c378148397c48bd2d1fbd9063dba7f864bda2a4770163fbfdc9f87cb374bd8082ea7996e092967287f10cc2dc4771b8db5aa2c9acf93004023607834c8b427f7d1586691f6d6bb1e19eb3d1f34a47d9f7b42d365306e3ebf4f1da6f8147b3828e945ff262dce7ab01763d7b0f1e5250fc89edf060ddb0140b0e25907eb84c7d716ba00d9d231a7968198319c0736741d684e20f9f226199708d32e6449e450523f4e624c14d8be8baccc0b83f0e5bd5d9dfff78b4ffc2668f72cd19bb61bafadc0b19db3eb2763baec2ffdc90835dbcf92ed0874b0053ff32c1fe7f57175919b3c87eb7c683b9673c7003046bb6119a6e512d5b88feb000cd3e0180a8e8a6e64c378148397c48bd2d1fbd9063dba7f864bda2a4770163fbfdc9f87cb374bd8082ea7996e092967287f10cc2dc4771b8db5aa2c9acf93004023607834c8b427f7d1586691f6d6bb1e19eb3d1f34a47d9f7b42d365306e3ebf4f1da6f8147b3828e945ff262dce7ab01763d7b0f1e5250fc89edf060ddb0140b0e25907eb84c7d716ba00d9d231a7968198319c0736741d684e20f9f22630724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f62e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd62b4085717c45478d689456807af22b83da8f7ea5fa2b9cbe7a5a0446adb462a11a46bed708c16235cb9c186ca9175c721eb5ae41fb05e0c288f491f8b19f1d501e33c15bb7c48e9229bac840ac06e645d5d917c31e7bc20a0d2539cb4b8d780c018b32a08bd577cb0759e12c12649b35b1950d0243bdc98db464389292a984713cab6d197f17180e56399a722450928f6d9116af63172aafb8dac171d79684af20f0072591fd810e96d65b79ca90d674ac9a437419480fec57f01490c6a71f53004c37cf170d22355a2c252313a00e318136f39a3ea0096dd1ef1c2bb8c26fb51b9d5a2a50c6d8a61acdf312b101a31352f3356636139aeb9593bce4d5ce209227ee001d24a97247a1813c16a38047c166ea93e4cb42cafcd837ca103cc534733249af9699e9ea525b62fe68f6e1b1c46bcb95f0b45f3551185d73e8421e481c244d35678cb368209d8eb165b430cc1f30fe1dfde66cf32325f63e695b99496c379c5c91db2092bad76b66d01070e525c572a3fe9793aa51dab9cb9432f746dd08afdb3d3bec8f7a82c0be53032f290bde0ae897b05958379062818485cb28da375024c2c41370857d3f41acfcd0d6f4443bb06458f3a0e408caaf687a34d72829a6b6fd1e4b2d970c1258195b44124432685d05f08392c8a4bfbe5d8b0b1a8c09f4e8f63b5978e1d659c6a182f4705c57a03afae95badbd02d696e29d3cd5d42342e64643792d4751497b75661ebd1f456dc3c135cbc3656d4e315095180e172058bd4d199ab72467bfa23aa6d73a99aa0f5a137428b43bab594b65003db7830eda07e79b6eab3ac9bddd8abddee463ba4f538542bff1569a039b8e4d62c60e1fecdc74c9ddacd5c5107a5110f66b95504bc100494a6512687ad87a74aa8fe2000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010b6b6bfd3902bb74a5a93a4985bbb6e13f30f8e1bab771823385a3593b3237823fc7a7486493807b561c9c7ec983b0b615ccc19851691207e5e323f915d9ea7f1ee3b386297e66d4148c3ee3a378f6e0158ef6eae39b3f5ff9837b307ac313f71e23d455fe1f0bdd340176dd0d95b1b887f8f6a330cdb92d4a9c38d53625a8903f9f3d00e0cb5b82f066aa18d53787f42575bd494d71028708ab42670f7c5db02b253b2859f4ca1e3b2e35e83ed75dd4799c5c18e018c05f9a50681b9dcc442c0bfce717f46a907ec7ef16816870d95e524400e229c8b4cdc0af2ff7bbb9b2f10f51ce4d656ff7012f5c86240ecefa27a8365113c60be83b6f9593670206f7f415cd4f2e5dace37243bf61c172714f303afbf77264764242c1162292d846392a0f37029373f542fab28cd862805dbc4ea2559db3f681882aee0dda4ff488bb970cda574e5423318e4189e1520645fad121a68c896a7381bd9fe6c6a95838341433ff920173c93b175f75b8694c10f8359bbec4ece9f38b193274013935de5271309b986c0eb87b566c092912b463134efc644b692eaea82b132f1899754581f61f0f1e20928c746715ecef2f8550327d23b39a2b3bf8c8031b038f3432e9e5701ff7704f28b2c3f36fc9662b04cf4432552c9ac636675fc32e32dfe0def7788f0774607f5dabbcbfb70702fbe6404677112a2d6c9f41084e32a557d13033ccd0125e737a35b8da6773e35f85d913931c878316cba91b51970fb94eb49286aee41850c4d549fe6382b41b1dc1613cc0dd207ee84d097fb8e5d512bfbd4c8402a83fb14129968f3e95de69c3dee18686c8bd29d8e55de8afaebb1c8c41fe110be9004ebed66970c16a21963c211e797937651cc016ab64496cde10a4ab01eef4183e7645cff0cc38ed5810d35a67a0a1eb28b6d88ab05789fb42d9f995f6553b890189ba300f33c712a7ef2ca5985f5e14f98fc07158f56f205653375709aac478384f5d0fb3fd1ca2b85420c4062329974277d6c54c81cd79e98d1c39cfaa29a907b0a2f04c02e35d47abdf3bf9dcd668dfcec236bccb2ba1afa014b33055d658198cd14e83f18f2d99a4a3d41eafcff3c33ccdea59551ef32b0cc96d0e52d04926732eb17c0e70d2665b5c2be150300c5f09cb11aff7da286e20677ff1ad2fb83fb14129968f3e95de69c3dee18686c8bd29d8e55de8afaebb1c8c41fe110be9004ebed66970c16a21963c211e797937651cc016ab64496cde10a4ab01eef4183e7645cff0cc38ed5810d35a67a0a1eb28b6d88ab05789fb42d9f995f6553b890189ba300f33c712a7ef2ca5985f5e14f98fc07158f56f205653375709aac478384f5d0fb3fd1ca2b85420c4062329974277d6c54c81cd79e98d1c39cfaa29a907b0a2f04c02e35d47abdf3bf9dcd668dfcec236bccb2ba1afa014b33055d658198cd14e83f18f2d99a4a3d41eafcff3c33ccdea59551ef32b0cc96d0e52d04926732eb17c0e70d2665b5c2be150300c5f09cb11aff7da286e20677ff1ad2fb80b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c3feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d2b13cd6d52b7a32dda0c03c427c28bba72b3b40b5a8595a3c029cfe2dfe9b15a21d8509a7454e82c6c01ee7f9d53e927b541a171fea9969f871cfc034c9763952c762708227d8d9d5db25342038160352c32ee7a89896b63b01e4d1acff3949914accce313f5db11d06b277e45099796f2a6b9e284bbd31bd5b1ef642a2dc7641e6a494cbf36abaf8b8a6a8de1165276533eb64441a7a8777834e338713e31483cc40f2563957cd02b5394bc253c4d0448f634cd65e2e2c3d47c95b581077a6214840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d3126132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c8363f8f67741fafeeb2ce545cfa5eba44d303a5699b931d6c0773dd7044f906f34b34a76e6f4fb6eea219bb2b8224ba3e1737cc1b3c3492986bfd06622dd49953c60975a0e3a836f1d21b415fe01c2eb2874f85853d65345cc5824a08686ff7f36c1e3cf64720e291183435640328b4deaafa0719bb491bf1f643536c5aeffb05f13647199615cd17780a6803a4faed06170d5780e72674c5c32674deba0a522b3709b8e669ea32e887f597fc5b0512f9e914ef1814e2d8335872b85232f5add4cb285e555ab6d8ba93203502102492bd86d49972fc501592cb843a378f3aa52e542bc3108ffd0d085b814b44b3f0faf2047e4804348f99908d3cd663004bc9825b1f3163f13d85737fb86ee16339926dd220b1bd2cdd108e5400ea0618b9b872220e59681b126b5f69214be5e4f3ded147e020a5ac1cd868938d2e1cbdc2eefc9534bc4cad822d4f93dcf65f1272607b7fc1e2598364447fe8bc3209a1e85a280a35bff9de5fcaa2264c0038dc5840593451ea5f384bf256ea8cbfc33330ea5289000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012c990d111143ec5ae8b2fd5cfe95a081940e16508c8b08a4d563a88c6555cbd22af8a5358325f3aacbedcf1b3d72cd810b38f0b3c4095dba50b5b5c2c73008821675f7640706525c4595c7e6a77e09401a688fcad0ef67e1c70ece1d1e91d15c039f457ad9bf9d471c4bd0bda0b2c9d97e80c7c3f74a6f21cd5444e26f81c0c01e5495d541f5b8e99bdd7fa4da5aab729e508b3f7227ba4c840b70f4c19ff5d93f4ac9fe2cf45dc9989e719ffa9f09bda9b2e908b6e4428c803c9997a6ff5c361e0064cc9cd6d8aa5a3377a98c18e93e0ff731baf39ffd422defac29e869431a28ba57bcc7fb5f7ba8aa7d41e0dda2cfaa0b9194fd191de0477efa04948dc21a27b3d19b0b60fed53f9e42bce73564005381d319d0b1ccc4e590a4ed5debb3782283975c0a2074975e5debf3eaddd50ff2300b755c1a9cebb9eadef53bf5ae18304004473fc82c196f9eeffd1e12d32f461f5e5ca5a5d7b03fd28dfba4f164103a96b78c9605bc0f9c4ca9045c565a3ce2df7f60913a93bae4cec3c8c7b225800286122f059cb238b2bf5f38ba2a0a318ba7488aefe23358a5f152c6ec78827e0d24a45d9ba83d84cf36b9097f893b9a722a040d717843b9ef142419bbb6e4e72b3d348fc27029a1f88e4122f8e229e7d56620ee4c8317ab25b08ca05680a5552b7b3d7dcf3fc0df36f08d47b2bb3bb8cc58db29f4fc1c9a4a707c1d70fa0eb61336f2f7431eccb58cebb26efbc3726c769202c009ba0d97cbaf60354b63adb9193e8c99add4c3351515044e2ca243a9c8f4a6f14d18bc47bac7391b641d420318c9a65e9ae5bab13ad4f62d3fbee56ad22fa0754377246afce74eef4d0133c5273659a1651a454ec52b09d2c0411a955016f886c5d5d4b09c45e1fdb2fecc3c3bf03fd9067ca5762628cee23eba7b15f8a7894e4806bcfb575759bf810602d8040fc026f9835a89d9d7311dc14584ea299f0fadc1463c2041d5d72d7ef9fd292bb13f3d206f3b4ebecc0a6b39a4676d522b4a9742edcc7a4ffffd09851e0e34144ec0c2df90c4b14133f594c65b9892d01b4e64c65f2ca1492d33e37ae1f1cd1a763c31a22c2889b9fc3418203605223404aa0032be1310c4785e68999647012589c3ce5dd3d7764603cbe7dfc9faddee41eefbd68ee60ad4b4d2846669b90018c9a65e9ae5bab13ad4f62d3fbee56ad22fa0754377246afce74eef4d0133c5273659a1651a454ec52b09d2c0411a955016f886c5d5d4b09c45e1fdb2fecc3c3bf03fd9067ca5762628cee23eba7b15f8a7894e4806bcfb575759bf810602d8040fc026f9835a89d9d7311dc14584ea299f0fadc1463c2041d5d72d7ef9fd292bb13f3d206f3b4ebecc0a6b39a4676d522b4a9742edcc7a4ffffd09851e0e34144ec0c2df90c4b14133f594c65b9892d01b4e64c65f2ca1492d33e37ae1f1cd1a763c31a22c2889b9fc3418203605223404aa0032be1310c4785e68999647012589c3ce5dd3d7764603cbe7dfc9faddee41eefbd68ee60ad4b4d2846669b9001292d7ad405fa37806d82528bc3fe8435a85e151b1fdf1f84a5868f532008b7021658174cef8b7ca01d1325c91a7d18b8dc8db38e6a8a2490f75e8322349c589008b57e0805f4bb851eebf6269807c7c8bc1702f106a0fe1917f009e0d94070b34be1e0f4f65587db243499b8b6119fc53fecc9d8d6fee108adfe74bf5467f4d1893551854fec21b56a4fe98d8269f9e008b625f272cd03983e56987d34756360aed5a5fe4ee28d41d16d38afe5e1f30cf561aa5ee3b924ba91850578e01490f00e36f818aed72e9d9ce471abcc508f1cf43c096b753ff77aa8e927cf356a9b83e61b8d24cb0476c9cf12eb8dc052e293997707289505bfcbd2ced1efdf18ebf125c534548436e43bf17fe0c04c54749cf0b77aa2d2eed5e1e60a2d2e8abc0510461dda8d89f9244340ca170b871686ead72c0f6aeea72a59dcc85f5bf2f68613e5ab435fc970c298c82d266223fd9983bc6fe8ebcbfe5283127d7afb5c084202fdc85526d913a8fe306f6bfbf634ebdf8e773a1cd6871a211d15c1fa8ad94d02ce1d0723f4110cfa7391b74da3f9b403bff477b46e4f741bd55c759c06b6d8729dc607be1a1efb84beb8407e2f7147862c58a219e8161dd9804925be76fbb2d287ff2c966a17e8b732c7a0421ce32d18e8c868497fa849c1f894164013c052617800d36995e81748cd385fbde31cd2e93ba12777152747f79a3ef88fec3fadc1f91510ec6eb76d121edcdc0588234cb766490562efdd97194f39b898c23e4202bcb9008605ecd38436d5024a2365771ae9dd1bcbb0650dfe9ca8ad9c571a8d2078caf70af1b12b5e66faef300ef19583b8a20b6e5538ad9079e8b51e37487bb2c7839689d99667a8c349c9dc10e489663e4637e25da3ecb9bbcce1cfe7dc58b21d360d1f65200e87eb191af8efd34220d593361bbfde567ee157126aa31970c3ddd68c5cee4775c9e11cae233b6b0ed6600279df1b42be3a57c592bd84e97a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001353c92937c37763ec98d7ea0ea0f83e715cd971d9b25e3e93686981b1c47539b39d2269f04070261de91afd2f2fa1577efad1cade7613781727e0b08d32111bb1412a92afd63960195a29ead43df1942f5ab4ba35903e6a8803f778fceef6ae5009f8b888db070f67fd4f233e18da3cae07ca4ddc632f72fda406600543d893910684629314a3298d01f856f837b3f36bd81d2b7e8c6aecd97a0b886468dcb6d315adb75887f0ea5d8a884166acc0b78c9933aedc178b728458dbb7b55371db0246809d97aa1c318fb7fef4b392c6320777f0242c99b6ed59203daea5aedd6453aaf85eade63aff36e3be98eba871d5bc2bf50b38b302d0bd73aeb6f040c16ee330c7393a83f2ad779a0ce71b04f6f38419c59efcf353a81ce4c6a45ec4b120e09da1ede560299f348692cc51882b7caa5ae8701766fabf9f50571bdd482c0362360843b4463152da41b14b1d2c15121195e05a0031100d61ce8093d6a42b74d31c2b72f0e12059ab9e15fcf5ed69e41a7cdcea54ff2dbbe15b8ee6ca26b20d9225920c5dbafa448cfb68b0c5e2c3bbdca35721ab4457435b04f3e4fbe08b36c2d5195c6c5954b74b23f8d35db870a0e55e27379b661fbf87de3697dea26b3fa1d19c109fe9b405102d0c9e84ecc4bc65316b9fbfa8659ed90b31038b415ac9a22b1691f5afa61b1df3d0d5afd8a1d000fc12c1555b1600f24cba786d482a4a21889edc443c08f02ee63e98673cd877a31669abcbc0c1b91be91d0943123c4bc123e6dc8e3b19955799336a9e26a506d65d62fc535d1e792583417e8a454274e2077dea666d302e9680c24a43d9ce3ab1eae47ce663b20eb61b77c8bd965303b1f882159992cfd1697f3db5bc2631c550398512da311d8303775b461269acfc622575940021f0e8f083cb7353410725754da350fec8db261b63b0ce13ef9f1251da8a6bffde0f170f7c348cacbef8da8cd6c63ec1cbf46b9e2f2240bc1060edc2bb4be400a9b48cb292f940a04523bb463b5d7578c2a89b15cccde8c3ae1b5b7144b41bff564b734d6d06bf5fbadc44bbe90c1a47d226f6a3c605260c51e4a4a1a87b74035086bf7cdede432159b2a858bb969c1a0edc5240478c5f626688c90257848bfcaf7940832121bcdea64d57a968d2f3a685f33f794b46af6d99773712077dea666d302e9680c24a43d9ce3ab1eae47ce663b20eb61b77c8bd965303b1f882159992cfd1697f3db5bc2631c550398512da311d8303775b461269acfc622575940021f0e8f083cb7353410725754da350fec8db261b63b0ce13ef9f1251da8a6bffde0f170f7c348cacbef8da8cd6c63ec1cbf46b9e2f2240bc1060edc2bb4be400a9b48cb292f940a04523bb463b5d7578c2a89b15cccde8c3ae1b5b7144b41bff564b734d6d06bf5fbadc44bbe90c1a47d226f6a3c605260c51e4a4a1a87b74035086bf7cdede432159b2a858bb969c1a0edc5240478c5f626688c90257848bfcaf7940832121bcdea64d57a968d2f3a685f33f794b46af6d99773710a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac629bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c0574b614904f04d06536b5cfbd25bc253f053f3efab39148f663b7b5deec33cf340e52de04aef29b278901aaca40eaafc3602d624e75ececc9c33045c86e16ae334663237c54b81bb6440c12f58e10e91a591b277bfeba39ca0dce7258cc3867336701f1127b21ca8e6725b4e67a769f455e78a51b8319d7bd1dfbf17a5b9fa53cc6685db8543c231286b2845afb78b7ce5da7711fdf1afa1599b0f8a5e75f2d3b63fa20c08ef6946b68d1be6e6578e912c24f6d15ed51fa875cf830c4f8444e1dff3c5197fd00d1d0a0de7643244f7892ab4a9b26b3f4238af227929b22c07334ab22fea15d89c74a4ca0d1cbdd19b18c8dc4699b5e6d44a70b9e363033d81211b17fb361efdf24cb3abc2464ccb6aa775cde4a4c2754d9834cd93847d782b31b78dc6e97e20355ecb0be28efd52a08e5f548e10231010243b8092fe3f60add3078abbf82471a760d2090327ca3dfe9b30f3b2045527bb00df4629e529c216d2231b390b71370230dccef15925d89406c29d3e47cbfe5b82409632a78ba77193bcd88c0e0e990aec2d3ef60b0c6c63848c80fb2b34107870015f5552268495c0432773f1f166f513d2c109f4f3939c7d97e8949560bf19499173b97dd97b6a6087cb610c7823b76ff97a53a595ce2561388daa3bc8b864ed8dfcea877bc09b614f6fecdc87754e058c9079d017600e29771f24f4c00fc5ec7781e11572d4cb0122813f8abb2a1f1ace3ff353179811997fd6cd9b738c90cde6c29d48122a4b92a5892d79c583b12c974ab8c552c605d94810e9df083004a22b59e0e0b9926a72afad388852c9861f26a1ad221c574a81dac9f47095bcb1f32f39857b3cb72652e9bc65b04c70a75b75e0f6e3f2705364638713fb122736cd2d2102f208a1653000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011d502d5d8ebfb220ea69bc998a3f2a238555ea1ccb625bd7519459ef7bfed6db17575a77015d07ca0f7f939c07f9b0ee08088775915fb2c1b38000cbedc830ba3c33883e6c22d421a7f1e172097c874b787231451081ee0e8798671fec2e48052767404e173bde8049b2551e245956a15cc5f7a1dc1d192b15ece8dea759c5593147abe3977a51eef89875dd33d62d97e3605fc23ba58c7f774ca67c300bea6d05465350c4bc5b9d317e25b0ac5132b897aa9e2c98578e894645d7389980cda80a2bc89c7261729866c8d43fee7e74ea60e210491ab2a0d538289e779b5ff8443350391208dfc2b35b4905cff412bf1720a5bd0b3f8f261c435bf068018bf38d022a8cf52568d54f732dffbbc667dcc1f521d63a0730ccb804af8d9f66e10e69100c42b8f67689632bfcfd2aa2dfd5ebf684a6135ff40999f717dee41db5ff4b16ba7f1871b67f0405a7e6a14bcda4430ea2519fa9310e9516b4207f3ced08e6018addbd4f07ae7df13dc84000d98e66d1806e2eb862a8c41a0e760f22242f3a24028dd8505fd97356749c9ec0005e918e7bea7ecb9a7dfd587e59116bff7d212ba828b450e5164a2b817ba379b2e73a919bfb159f0cf230d5b44ebc3c2fea4507cac7cd7d7e58eb0ecad795684f8b7baa944cf2a324af8d8f33d8b8d68acf123d505141f79db12ceb57f37f9f78250e1adb36e5a6f8d3b1e7a5973d6fcbab19313edd3f79adc015b1ce2dd1bf395e199f02f0f3a38ab7b81155f22870e26b2f1403bf524a666c02099ef064cebe79c4bbd99a3bc2668ddf3eef8563624ba55417e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d28193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e1110593943781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e20087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e1158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c2a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b69652bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef617e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d28193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e1110593943781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e20087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e1158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c2a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b69652bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef62a541dc9aede8050ad6648812a33cfccec8163996bbfab69265fbcf2ef361c4e077596ab5d4f14c7435038a9742be3e6b737f77900011bd2975eecabf38cafdd3000000000000000000000000000000019b4f2bd06f9bad4b2e1e4b1c00000013000000000000000000000000000000019b4f2bd06f9bad4b2e1e4b1c00000011bbf6cf08a9fcae4eaea8d7a724774b3c8891d34d51de544ba34750fec2c5905054e43e7d570affb9aee4854bf65e29645e89aff47a48510591b37be81e7333b255565b8bac20b8c8e750132a560c37ef3df331436801a7896862ec06cba474336098084ccd24f630a4526a8ec327dd02e337604f5c9549b72cafc70dfac942c288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc73502405abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b328e0e5d239105f5b80d47da2bc3f88cdacf4a3d170591082de15897ab082ec95182ccb0627001b850504582c756dce7c72a060e0b10fd66001d0bbca3d909fac25abe23651217faf5299b77ed5cc30333e56dba19fe08bf95918c03550c9e3b4088a6954a2b0eb38bcafc7568bd41c195159aec6025222744eec5f8f4c7350242000000000000000000000000000000011234c7e04a67c8dcc969876800000012000000000000000000000000000000011234c7e04a67c8dcc969876800000010ac638a8cf8ea937a5cfd2dca9768e1e91fe046bbe2c220883ca8c33eee65e1223ea3210f0baf3d18e488ffeda72d1ed08283fff93761e18561d394428b76d9b3aeef6c630693d93fb6067e1d8d25b357b1be696bffdc11d34314f9a694cf4172850ba5536ba7642c5272fbfd65327d276a5b8fd336422cb3beee5b1199c3bba2e02372ed819e8b59bdd6f3191761e2c6482b87cfd81d4fe877ba8c5a68af88223f35650420d4301512ef7e3d889e3ca011820840ef356cdbc03611a0c5635d9000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013103173e02af76fe7bc01cca917b86174b47fdaaf691cd346f0c253577f0786522cd78f17f6d8c465091b7b0a204088a1e1ce8f5dcdf4df23e18eea57f29771503dff30ed4bfe2d4bb296220f3f7aebbb580faded744c81ea0609c96daca676f3f2897dd46f24017302a93e9a8477a721a53f3a987b1e349a714c59292dfe4e92e0130e4609e4a5f207f5279771f2b235aaab7efbfb5669cb2c32fbab20307411202fe3f48a90636391d2df50de506d7028f86e4b71fe2d3fc0603d09c17f35f2c7efebed0e46634548817edad3e11eefc659f95ea9f9397e1b7d3b0a9ced0fd36b9e9a4fa8d42d9cfaf325ef2fe632faacb6ff08f581fb4ddab283e99ffaeb325835cbe525fdbcf40b144f4c568fd72d0446f4b6815020e78dc2b25c3f87a3216c2e2174f049ed55afb2959828b35f6cf45c7bd6af632167786382f9a29d1f517ee70afb169f685e89b40e8c3029d8654573611c72df2eef9846237f2ce24923014812b48db8de104c6e95bc2b6da937f7a42ad448dda5bf48c2f8ec33bc3b730f0a144344f4295782e813fc0c8e76f65fd8387471362687ade7c5e3a314e321eba15486cf5ad2809c7970278ea5e5cba1a620d23940dc5b3542b6f6dfe19342ab1da45968df2538581430fcbd4f1de9ebde75007ad2f0c50fdb35d2562e8f02a68de31e6e82f780e0e468a1c6c12e27b01363b8fabfdbf99383913ee40330f006f8d6d35d713bccd649eabfa6cdf4482dab5eb981450f667029fc5280f20360375b746d74aa3f8a04de42a501de7199a4fc4c7e2c92f9cdbda891b3c5041b510af26a590440962b4cea4ae015489f620f21bbd6dcaa8855c78e49560062fcd2f50d95a6fbbf69d4b315b51feab760a01547d3e9b8250963cb44c579ff9d034136bc13bd1542eed8809376606a6b1ce8273f1b71ba8517f352f45fde01eef002c943ec42eabd11277f6c899f9594e319fd2a744eda4a79c63fdeaef1fe11101211ac62b16a4eaa3a82e14fe2141790869fd1f9780fc9e6070bf2d08609aaaff1ee539d4e95b155c57d1eb01debe86f7b849796488505abb286e03e49f6555022585ded77138953248e668f6a6475d29cd646bfd725525ab01617f4fe30556f91a7a21288ec76acdb719970959b8a2d654e22cfe96f7d37097cbb19d1cfaa90810af26a590440962b4cea4ae015489f620f21bbd6dcaa8855c78e49560062fcd2f50d95a6fbbf69d4b315b51feab760a01547d3e9b8250963cb44c579ff9d034136bc13bd1542eed8809376606a6b1ce8273f1b71ba8517f352f45fde01eef002c943ec42eabd11277f6c899f9594e319fd2a744eda4a79c63fdeaef1fe11101211ac62b16a4eaa3a82e14fe2141790869fd1f9780fc9e6070bf2d08609aaaff1ee539d4e95b155c57d1eb01debe86f7b849796488505abb286e03e49f6555022585ded77138953248e668f6a6475d29cd646bfd725525ab01617f4fe30556f91a7a21288ec76acdb719970959b8a2d654e22cfe96f7d37097cbb19d1cfaa9083ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba2e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b30c139b14e2f029cc073e76e7a64edf1a6f3ad871102218f612740857a33733531d95c8e017fa1e6895534fc3485c246a6b691d17e40c111566ee81de19a3c1b20b6a22da128b55bb8dfa6731f74ce472dd044fad974689e3e68088fc4ae05e1016333d62a0235abdc8aff9d607499a1e81a3e021fbd93c3fb572b8bbc389927d0dcea87c142cd7194c851c76df44aa147c540709bc62f27ba33ec049f82126cf0bcfbb7d08c7af75c601962075b73bf4f6f7f3d7a8dc2e33e18626713e911ccc1dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb04f77edb1bd1e6790a44a9403823b1ef4a3e5fa3bac44521af6bca0d5f7fcebd32fc7d6c9bf281cbafd3f11cd7c7c91d5c0c739eed7a50120c521e61f20f2ccd34f4a61c289fb65c3433abc4504da6f560be165bc3fefe860dd8bf19c2f213f633d48a0441bcc10db21bfab5e2260995ce53e9b24c0cd5872b95d968812e8b9e29fcf736c5a24628707a1f3ce4f4ab78dc0d989779b555c74b9653af138055fb160308c93a5db9d78f85e0c31b0b5487463900648f97a3544d96dd3dec7faa072a1ef3c3a043fd49fdd75b8847fca8d7be5bc0b3d26b8c26a2ee5e761ed8574923f774ed838f90b57abf43b0684bae3303b007d208749e32a7d8decce82935e7195adfb4fb811e3cbf62007de7306d17d24a79fbe515900721ba68f16597b17339581c22f12c79ce2411b819a164abf515bf3845a6c947f4856829b2992b48220f78d397a09b580efbe063db59a165576a63376720573afda1169634429c340e266d16ce3f037cf03107ef1d9e857f70e9456bc4f3ffda7d5468f275b2067b9a000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010ded7bd7c9bd81fb972ec53f33312ee0dd98131341bc43a8615b6f83cf21d344286df58a377fd6f9c7f2d2c8634d61b10285a99460b578cad6eb13c96e87fb721d1178c6deb1eb64194786bfe02bfb36f9f9ad37cd51426e4222822d8bdf2f3003749d6cf7b8ab784321e2a3dc817e6d932ae938c6474af1fd695eeff8cb3bf324f17e90072a15a0ccbe24ec4552d0077a70408d500545936f85878ed4daf2b423bacce439f458351198fc056c900c801e66f6e299c271749a4654b2668a9f39228b119ebe78c765588a25758f77ae52792f82c23613e96b1a1a8154a8fbc94f3ef55b4957253c22a74ea99ce45dada0e0719613d53b55c8d70309b7a6e745310f80c412366b03b509ca9e83116b10b5a10b88e878d32b38eb8abd2a45065025263eecd9bef4943255077dc00633158a6698af7a6f87bedd8c2aaf823e71d76d1facd614ac890064460062ac4dd3f4191f0a6fcaabdd07e138abda522626fc98278bc120eeda743c341fb41ea25ab2e149686ed0f3d11db215d4573b8bd3d69c246394969770ce0d7c6e7fd58d97a21f511d02a2edb02433e54939d84b4b6cbd2b4721f609d421b00587986cac1ba3accefae2f17cf74bfa48e96df55ce3faa91fd3d5d68ae553ce37cbdd3bf01eafa7fc4dd3e7acb87fcd332559ddc92fff070ad42819c15b1e4f3125a7b872f24e28e85d733abeb20cd618c63253f16db65127488da53493fceb93e5c7283157adef550673c9e97f7d088ab21fcead2ce9c20aee82546242619f26e49557986033ac05c3ec937335f8da9b9f63d1253d78350fc94b0a7e50117020a7e0a5edfe7dffe9c3832d1297b15b756b1fa3aff0be743036b4f581afee8fdf581f5a12018200388315cef6b547c023c21149500f418d0eee773477905730a347633da5f875ff6e8af6e553a97dadb1ea6d456fb3b843311188cb886fa8cf5cb89cc25a078a00b3bba216b5a37b6de742c3a7904c47be0aa8540655d1b3f33064f0343dda4dfd0670397e99027b48e066f16e2e82994e3557abf9aa2e4c0ccf9b0fcbc225b2031bd65f7d704a7dd2b8c63f7ed17d66b33549a41fad1883bff1f8b105354385f120311f78fd0c686c6202b726e88cfe860ab65be052e77c400e074efacabc7a0f021579830c4090af372a79c61773017b0fc94b0a7e50117020a7e0a5edfe7dffe9c3832d1297b15b756b1fa3aff0be743036b4f581afee8fdf581f5a12018200388315cef6b547c023c21149500f418d0eee773477905730a347633da5f875ff6e8af6e553a97dadb1ea6d456fb3b843311188cb886fa8cf5cb89cc25a078a00b3bba216b5a37b6de742c3a7904c47be0aa8540655d1b3f33064f0343dda4dfd0670397e99027b48e066f16e2e82994e3557abf9aa2e4c0ccf9b0fcbc225b2031bd65f7d704a7dd2b8c63f7ed17d66b33549a41fad1883bff1f8b105354385f120311f78fd0c686c6202b726e88cfe860ab65be052e77c400e074efacabc7a0f021579830c4090af372a79c61773017b132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c83614840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d312609d0f28df34f89daacb5b062f76ba5e1e124926c9ceb5a5f7656919f3a5e969e350c1986d63d0d76252cd4dcc0096252448ef72e67695958363393bbcb800d682b13cd6d52b7a32dda0c03c427c28bba72b3b40b5a8595a3c029cfe2dfe9b15a21d8509a7454e82c6c01ee7f9d53e927b541a171fea9969f871cfc034c9763950cf4d744869d6bb7ca44679edfd6ace4ee3f7c43864249b03768ed6a74a65a6a17dcd04956966bc87edd991719d6b3a0ba18caa2e4cd1d4bae3ffb819913f9ef017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e17f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a663731789f475753530cb37be57062b43ebef7ca00989dac207ebd71aec10afdd45f236851d7d884ac33e3c6d15fde25d80bea7e85b54836569bb5cceeb6776c52af9230086247a469bcb4270f361e752adaddcad693d24550e9e2dd444b25ffba12e366fd69bf31349f99c35c37b1c54b8ec1ae6392344ecda412b8bb3f63a32c1750b0e6ef98e78b6be235c07c80773323a95927c69010f61d84e5111bf8a553dbb34f1910671874941dca3f837f88ccdc58cb41c93083d97434adc1f2d75aac2470e994204c31d5f373bd9181cc0343b4e845c2fd879814d14cadf7f06b8d5a2f317af240798a5008543bfe0b9679e54225743718e9bb9930fea943816910cef970fe999ea78989dbb38d7cb5bb19f2520bcc75b371ca868d817301801e58dc1e019bac5d70ad5f06ea847e72e97e2f7f92decd8ccea10fe0953aacb5a049ed02f2fbf036e6b1dc06dcd150c7524c199a86531ae64a74c947e8a2383fba9dd9b873135cb9b5ec77506e1a03afc26ac2031ab00af04290a74ee96b1feaac8230b65000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013352e5072b72af703226597d122d7e3ed912fd5c29630e7bebff2540aabfbc7b272d21c93420d5f46428b4873508974aa0885880ffc205269e7b45224dc0f6280e0f101eabb056220f3dc408f98e581c3c1e3bed51b213f3ff0b02fa306e3dfa03e06be6b3e654db1fcfe721b4324deb6229090533dc9010ad0d49fc314374e73857793966bd7afaf0aa14b03533d3eaf15ebcb47e2a0dec88ce390dd2649e181c96b97ab758dc4ebc7de93530391099d05c1ea7c2ddc87c0dd68fb32b6fca053e6d9e032ae4ca7b650092ee3572a2a7407b9284831272e1eae56bfcd8f8ca65165f19428609e4771f2ee90e4b25244fe4485e0c8adf37cb3abe838e01d37cc628fc3170dc301f12682efb78b45788db51dff36cf912497b935fdb5555376dd53ec557971b5ebb941ca4de50712c07df3f8cfd70b81c2f38b720cd81f0c7ad592ac4cca44f3ba7a63abdbb3c785332bcfffbcca03ed6f29b1d34bf0e4ef4354f2d4c63a6a89a3d999bd58ecd725a0db24ad6427f472a209c0317a85fdf554dfa2107c294dbbee4c567865259d4c1ffbc34168ec442e4d324c37805cb8ad8943b2ea2f3f7c5860af81a6fc5e864f1460fec0156d027c29d096abaa2021d56d32b27df4264fee92b01e032e312d1dfc91aa6b438ba51735ca196c074b33b9586201a88f9b8568304a23418262de497712874cbb06e680171e55faa41d5409c1cd704e5af2b8bf3062c5d8a3809a489c7203588a718a1bde21c52f2d13584eee29e3af4271eaf61619994d793c93f7791eabda217ca0a238eedffccfdd9410e6e702ef652b3ae7c09697e77730e53638cdce761b53eaca34b8d647514d2ee86b9da1109ad4c5183f69681888cf1ac9c73233ae4e3bd5ca9ad8e34b81c1a117946272acf9d82686c2f0f78553f47a0f1c0501e14bf4543498e702ac1d557a8a1a13f1530627d9793d0f087aac0b85f0e3fb00431d9b6c6036aab6e6b5b95575e5ec2160e138c0a1ceb4d59aa3c6624b8c1902f93f1663488dcde0a4197ef4b28263829f1ec73f5e314b2a655c399db473e6ff2b2a795d4c41c3d8eeb98fdb4d7d9c92e4661bc32909882c0532dfeb79bc7d0cb9d1e02fd5f573a9a1ac6bf77c8bf1711b99e43cd6f677d3facd2014864382f56a97af90beda1e0ff126a2d883740ea2ef652b3ae7c09697e77730e53638cdce761b53eaca34b8d647514d2ee86b9da1109ad4c5183f69681888cf1ac9c73233ae4e3bd5ca9ad8e34b81c1a117946272acf9d82686c2f0f78553f47a0f1c0501e14bf4543498e702ac1d557a8a1a13f1530627d9793d0f087aac0b85f0e3fb00431d9b6c6036aab6e6b5b95575e5ec2160e138c0a1ceb4d59aa3c6624b8c1902f93f1663488dcde0a4197ef4b28263829f1ec73f5e314b2a655c399db473e6ff2b2a795d4c41c3d8eeb98fdb4d7d9c92e4661bc32909882c0532dfeb79bc7d0cb9d1e02fd5f573a9a1ac6bf77c8bf1711b99e43cd6f677d3facd2014864382f56a97af90beda1e0ff126a2d883740ea39ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e2e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae9680aed5a5fe4ee28d41d16d38afe5e1f30cf561aa5ee3b924ba91850578e01490f1893551854fec21b56a4fe98d8269f9e008b625f272cd03983e56987d347563624ef2af288a311bbc5f02334c1052f8d299158fbdf2cdf5668b90bc81aac4bc125c75f1da7984a0e35ddd3cd4a1939fa3b3b9c2f959314eead426e27e2792dea18c9d9804d1af74f9e6525b58fa140978c05cc06abfbd4d3afdd2faa1c9c215527f0fe2bdb474e59eadb6476d794884dafac34e825f9c1ef1ac1b293f21ba6371292d7ad405fa37806d82528bc3fe8435a85e151b1fdf1f84a5868f532008b7021658174cef8b7ca01d1325c91a7d18b8dc8db38e6a8a2490f75e8322349c58934dbc8a39a45ce2be2779ea00aacc2c0b7927d214ffa93b9045ce3a448a0fab1325a11f45c08a2aea59a863e29ece7f7ff9f940118a9f7227dce0d59533bdfb73b12ca76a70122037a049f2cde0e1b14e91267d649f8769469e1aa59333c909638e58eab6857393e8ea4b8586fd99eba2182edb057fb16c88919d7bb220dc06519ad4901d8086a3978336cd04c6649895b498c9d634fd44b5a6bc2270ff2cb0d2652b6fe27f795c687cc932fb399b676c6fd0c5ea5fd24d03ec16ec5f00d34f503e207b7a3c6be417c4dc02b20c3c0f0969f1d125737e5a0271f1a6ee2a91ca208711f008c0299d44d156e9916d4b1e3869a5c494c1a1ced4369c1b433cd6355339e1fdad3365d0b2ba6f29b5fc10886070f9c53246b1970a712324c5ec795481a7a7cfc196b836dedc2600aeee8e683e31623660fe37ddf759a448853ba06c31852ed3fe35236800006e814fa47665db4745513ce5bb46bd29c43fa970c1f4e08817dd01e763bc5bc2b31498ff7c288161efe3592a6110e577d49eef1fe1e2b000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011f9a46c5ff7dcc9261bc2e80b5fa3f72529b9ae7f11d58b0946a4dfd7a629b0226c447fa74789fe130254821001189e6baa27a5ba6642961de7d830c074a23bf07c14b8a3d836c9ae1a09a75634d69cb21cb5ab35dc236eed59aa64f657aa53b1b7a4bc81fcd86273bad73aaefb52c79390c5323ee1a38ae9b8a675947f46a2726f25e4a66087b4dc62359a680efea4fe266ee18b4bd181b60223581e3568b4e12a8ee76db0397d245a81e746cc467f696946ffade925b5be9c329eb2c436215363ae72587b93c89b552f9cb2ecbf6f64fecc8c1e136440c3bfcac324fec34d81b6caf3410b44ae201b7098ca906f4186f7b843c8cc1dd3055e092a7f9bf2c633d5397b832a20e5dc30a03b2b45683b64b9738fefef7607251647000772e5beb35e5fcf4f94cbdc431d62556ec4ec64acf5f9f9ba24f8fe557400779d7f7eb4139385951e143178679c0ff4dd9a7b25e6aa5e97a7da6e7ea13638ef31a4f2dcd02f14cc86b6d53aca1a045e19fdf822fb035c03d5d3766c70ff213e8c52ff6a81f47752c1656386f9317b8cc4e80977c2748181264a82948f12cff02ae454d1d306341608aeeb74deede5f75eb32ae4ff8cfcd8205ff46e53d05a8caf9ea1a49228d1091e7a6be1bb6773cf6ee7e29002c2cf71ba3fcda0eb3167f0a526961451aaa8cafd2de7060e226c734b54f9dab7aaf3a06aeb2c98ba04ab478dad3712020d733a026a66fb5b6a74aae37ddb4c0940fb2dc423f1e38b6a76380e717e9a50e667ceedfdec71c4cc8bbb08b0777141fe835a73ca5830527cea9c3b1d25b463395a5dd360e13de1d90628d3107ef8b4b55279b87bebf2e5cae67f17ea6ba930c6a5a22c9f1ec21e26f9d72cef81074d6f17160818e39ed3c7ec8fb8159456e01ec3d520e46635693d1ecc1f527adb7ef8f62198185d7796ab344037941a4db3e13c2adf1b99ca96c2e133e0ad8524832b736e287c721a22e79ece986be5b26099d329a475ff0b0e3199fc9c9c66497adccea7f879d355f158054115e4838473662cd65b8a00f4f1ce6603636399b687479ae7c81afc3bc83acdcdba1b7c7ba3011fd0364dfb3746f801ef0f0dff6f66500947da6120adb6b81a456d76919630fee02fc9b204c8b907fe10f0f200909bd46047e633aee402dab8c962896e69e3395a5dd360e13de1d90628d3107ef8b4b55279b87bebf2e5cae67f17ea6ba930c6a5a22c9f1ec21e26f9d72cef81074d6f17160818e39ed3c7ec8fb8159456e01ec3d520e46635693d1ecc1f527adb7ef8f62198185d7796ab344037941a4db3e13c2adf1b99ca96c2e133e0ad8524832b736e287c721a22e79ece986be5b26099d329a475ff0b0e3199fc9c9c66497adccea7f879d355f158054115e4838473662cd65b8a00f4f1ce6603636399b687479ae7c81afc3bc83acdcdba1b7c7ba3011fd0364dfb3746f801ef0f0dff6f66500947da6120adb6b81a456d76919630fee02fc9b204c8b907fe10f0f200909bd46047e633aee402dab8c962896e69e1daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff42ce53ced07446ce4cbfeaaa0f4abcb1f9db63b2df513b703b1ed32ba27a6c3e40ec70c44d876c57b82bb950c382934e3ec0009a81f04f2b33ea650419990bbc823395a400a684d94c6d78fbb9be15c3f755ec66343bd022f90dd2d33a0d5bb6d0acb6a404135136d1257fddd30a618cd231dcdf8bb21b7ee6788bc2a9fab0c8a3780608b24a9456ccb9f2045db37255b2c52432e9a501fe468cb58daa56815043e67bfa2358232f285f9c6aa48a670ae33bc882dc8695475516879500f531a3b05f957432b4d66c307dd8d7a9f77a65b49b53376dadd9b2290ea826fd6568a542e26f67ab7b96cbd66298cf342505f2dedb559fa4be2273dd01899d6c3abb17103e95278400e0261be0173704e35195ed08b526147587391f22271c9aff1acd02e6f28d62bd42c3fcc73da7b517d5baa60819620acba95f0aedd2585cf579b7d35705bc03969e10b81c3063b89f4985eb328621906caf853ca0348347f0337803eaff1fda99cf274ec44143257d36d2aa688c4542941c328302d04ff1aff04470749654581b0744e1b99794847a43930c573081ebae8d115f9eaae5dbb57860f38b69aba7e4f8bb1e46686b7b85bc6cf5cd390dd4e6428059f42828f44a879f32ae97dec5beded385fc5a0fbc4dbad157d00b9605a7af6d457ef6729bf577f581692321285153bfbd269c62de2a8b229adf2e7765fb13f6dfb9efe3f1b2d1a6613c2edca043bfbefe137a27b08a8997d6151e2cc09bc0d9dbeeab485e46e2284379704caf1a3956679f4fed0cc79f4a409c31f28f7570b1a33dbf528767a0e062f244c42c07aa2adb178d863c82e44f801963c1abefa4604560d9922872b221021670fa21cf311d03323710021d3b9af58b09f0e76a3999c34f7c17e93b32d270000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000105ef28bb37870e2956e0ca8373dfb53ca25283dc496523edd689fb24ce3d15160ffaf1fd37fa3a6e30758b55573b347318cc7de00e4814622011ba8c3e9ecfeb060ba42e1243891a809b0732ff351aaf60e21644cf0c0906086b373948a4aa1c256b277f440eb07133b4423b52bafa9e9dd45e131174042c11460abcc73778d505904adcdae87a17ffa72ad107d178f7218ca5501bb044fdf1123eb0240d0359380c425f4f59e42dd633480ee8b3d074dc50238106293d871975a2d50bfd34fc19269ec04345ecb1b01703ca40eddbe064d6588a2225d64e4b597313ecabbaa93281c89f95b4798d83161ed85339913ca2a26b67e4c00b38e7cdb240546c23211121e2dfffad26e1abdb004617e8a86cdfc23110b7b3eb15d8e6ba4ac208cc7c3314e2d3d37a79154e4c0667e9d35eab4b93fd465dcd270227e4c50356307ca61b0ccc75474575e42fcf2d4ed95c1a4c2acd36e268af6d9cd6a836a975a646052dc270fcf6540983a25c3adf5535e12bf378a54fc70a185a3a782c1184f2be3e074d101e473b0b60462be350c56c3939718990cb4a2db52b6c8d34ffe94bc485085da66e5a09e45d3bca34f174470c928c47bbcd172cc1e7287841e0bee3a2e03cf850aa9595be4878bd1cee2e3ac14946c856d6a49234233f265bbc83e8140a21510bc249bffe88fca3965d33f041df0278db90c7a354595af64d6bd64248f63a70721b2b8b32dd3c51cb0dcca9765da60fc6630119acabc9e7cb2df21bc693160658d4947e83dbf2406d62c6baf5c3f277f92548bb249da09d1b1ee212c0e2000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000224698fc094cf91b992d30ed00000000000000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000224698fc094cf91b992d30ecfffffffc000000000000000000000000000000000000000000000000000000000000001940000000000000000000000000000000224698fc094cf91b992d30ecffffffe8000000000000000000000000000000000000000000000000000000000000007d40000000000000000000000000000000224698fc094cf91b992d30ecffffff84000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000224698fc094cf91b992d30ed00000000000000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000224698fc094cf91b992d30ecfffffffc000000000000000000000000000000000000000000000000000000000000001940000000000000000000000000000000224698fc094cf91b992d30ecffffffe8000000000000000000000000000000000000000000000000000000000000007d40000000000000000000000000000000224698fc094cf91b992d30ecffffff84000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000108d08231907c9829eccd4a91309167414dd18d99fe4ccb30ac14d7d64946095433121625652e11a21e7979b447166a4723577bfe10d303e8d932f7555f2dc071299555c5f80cb880c0e55cc9f4ad000adb2f2ea89796f672b3e4abb84084d04d240afb496711fc160dabf896983fa5dc1c8c2cac9efa3c2f9131c07a00c5dc262c76b33738a71d38ca97ac66cd08bcbb18d2cb2e437ab1329b86cd1f8cef84a633bf7776898bdb7f2b2e547c77748540650dc075b4747836bc229cd4e1bbc9861731df6cf0f76824ca03275332a4c52a9300b42d2edc6f6278d852767311342404496398400381fd6222d32bfe88020bdbd62d29ff83048e8ac9b83f30cc1a4f014b4e37b6e87976d693e33f832d6141b6450ec73aea72126098dfb4f364386238a75c7e73aaa296a87588106e82ff0fe9fe25bf6956ab374695b2807dc4db7723867a288eab65bd9a02d6c718e304f09d4d3b80a564f2cf11256e1c6c12345317a2142bf415f9af34b8b5a0f8e29a87b71b1b2559891f64474c62429b3a88e03808a260ad2ef60e4d3d62a140d0ab4468fcca6f111e50c9e6e6458b0cf4de860000000000000000000000000000000000000000000000000000000000000000078124a217daabc494ca96b5b5f602362b9f5ee69503655320f03beaf7084df62d630b34b554215e425c4a4b695d3481ca06f5c34edf956de58d92d70dcff26700000000000000000000000000000000000000000000000000000000000000000070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae02347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f3dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc620b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de6371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a8708e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae02347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f3dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc620b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de6371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a8708e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001337c866282daa61ed5bc146cb87460a1095e7e5256c70505d32bea0344e50a5903a21794126a3368d4d03d3bc01eb270beb46fd17eb70e5a1a785af1b9b924e500561fe93582709370c4c2e53935a3e73062d0b900e4ec30d148d0815ca6c991247dad90bc9eb006a1d7519ba9412e47168d01c62f90a9c5872f617e6208a0af04daef5b9e4ce5326abad0b1c14ca91642cef5643d23f7b2a300a844a9ea581502c2b6bee0a4da1f242790eb3c70a597625a1ba85c6906df747fac8f44ef577c2c4f3844c63f2befb1874043e24560fed279166505a0eb482d279ab5e7c4b55d2c798b91a8fba19c4c33fe0122817c88430c766587e3bfef9bd4188adac71d4c10af8a9dc687a1f46442416e13853bb47a4a088adc0a2cd4c5ce224844ca31f53c7415c5a40827ce02ebc98c1693c910f2e02d2ff24ca032d8a8f1f37f574af501a2ab2e97cf9dbe7196565264434aa9f6584f21b6ec5c0426a1e4b8e4871ead0e080b5e097551ff105fc1efd56ffb220778fd76aa6e1b0e6e639227c3a848b800000000000000000000000000000000000000000000000000000000000000012d630b34b554215e425c4a4b695d3481ca06f5c34edf956de58d92d70dcff2672d630b34b554215e425c4a4b695d3481ca06f5c34edf956de58d92d70dcff2670000000000000000000000000000000000000000000000000000000000000000000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae0591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f62000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae0591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f6236bc066bad4f192cbdf19e4a06169f22f64d1f342a06c9e1b7b20cb69f53d57911d68caa2862c78883eaee78094d9fb69b4c1aed67ae908a1a76c75ec489012509bbdf8fe995ac146b6973388bc2ed59adf49fb0089ffd8ad272064a6e75e15712aac1a59c78a2b8a13ff2c356ff5ddb259d2538cc45ce530648a90a8728eaaf0905d69e666e3b2a0d6d173f142cef7678532cc741da81bb8790348d2c293b4d08283f8b0e460d52c58913fad78e1fc4cce8aa7552f29062c225dd92e0b0220d2539ce1ab71bf03b306a3c65323082b11c9d2833d618dd553afeba6647d312751c0c545aa2bdb7106c3d18e0e089a52c307d2b53c1fd744562f39fadedfb16f52dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd60818bd7372880ed9f4866288b3a4faf8aa3496432b0a99467ec41ef0a0cce8472caeb7807c1dead5d1c662b55553c90de9bc150c9e29a6158b6474c7766da90f3f881a04691b3abed6a4ee7d6e267383a04b7313dff32acaa8364ed8f23649331b7eb1b03b2495bedad51ec49fb3026e615d58d5d5589a3e786dc083b44e142e124bbfd985642e97737691abd7fc07b7e76f8b895524aaae324bfae7421b9d5d2db440267a9bd1688c896e542803f8483ad70d72b4284e6d66e13605bde462a53c8943c0a39158f51e40680a874299163668bbd926f545d823fec0430e33f3fa1ecdca360517b11deb43d1b505cb984c70874c0706c8dc87f32ebe838006452a072eb60535474aa2f2f13e18ecf985b3f33229a46462339af7b2cbcae7898d992c2b8b5b8fe96d1aac380ba1f2cb0f5bf1410e49dc5a16bf18fbcf26d6d039a13b7c55d0dcdc793010395c95d0383e62f330a66e10312e1eb3ea52b6a85e438b0f74b0e5df43d8781959bec0dea5d93324a8746805e56f0326503eb5df812511000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011873dee48cfd8b70817d00adffbdc1b4b8827295e52c3577a70caf0d4600731e38ad415ec9c18fe54e4e4168eb6ea05cf06ad84343dfeafd40250d8f04e81576023e2d4e55079082b1953528c231713f47fc1df8755f64677109c4ab52ee8bc3105e0d0f3e3c8c9e1694bc207ae0c4b8c9978814014c6af662ccf55ef7179b4b1e06de6e9396f55ac583fa13a442065d42b74fdfcc7db22f3f725238cdabab633a393d84fb9269ec5cf4b76050b5d76a62b3be27491c96037a0169480bbd07743bb1344411f1518793a21c8585730f74fef859f08ccc74f26bda0e9cf70560c73ea2a54ea7922641e36722f16a7e723b75a7101df5d26fd9bf2b71f2c9352b172178f2aeb9bbe3a50389c048a7ed740d43c0d467b3489555a0ceb2e35c9a78f434fbbfe1fa7f08d0130e267b191065a0d3d43b57fe1add6b4293b5ced99d01c513af320705bebd6d354b9340bf9411e15c8d2578d5045720f2dd181aec53258634fdc36476b89cfc19544e611924662e5999319d28979b158296c95fba8a201e047caa7ebc1a2aefa605e46a57207cc16af48487b14a546fc4eb5ddba8fd35390b2e0c0de52ac4cddbf033d7e292c90a92dcc810b01022a2d01a1904ff32322c193409c8de3ac84a395423df4ecd699de9f0cacbc8c3f116e63d7406f22a320f281d11304e8f73d908f9afe360b96000ad83eaee1ee0e8401dfacb13c510d8f110149ce710066a3b27e340ae613a1641c740e23880a2bf029e25e97567b33a423f9ac29e6ed7b983a51a753fc3319d27dab8f1c6701dba542171124f06374de01ac928516cd83fe2cea612c51c7b6e783d48ab8fcdb13bd24eb21b3e871ae2032536d7ae9327c01d3159ed3ae3849187e4fded6c3b9bbd494a7b15ae78e51dfe05edc99720393f6e093e5dd98e692858edde27d6f1dc38e45720265ea3866a0d3a123668dfc6c091f6c1a2267196d7a7346871251770c037420d0a8e5c7995f41da4eff3a11e3d262e37d53fc80dc9bca556c732b94d1c75b3a0bfd931a01241225b100c5ee1c2d9d1c82ac037f236437cefd1c94fffdca5e58c7113ce5fedc01438afc2259731bee7172a3ee844f0aef624b2058be79c154fc95d63f8205b432bc7503dda68ce4118e8d5c117bb0f512c21e6f67d655d064963d38907dfa4be1ac928516cd83fe2cea612c51c7b6e783d48ab8fcdb13bd24eb21b3e871ae2032536d7ae9327c01d3159ed3ae3849187e4fded6c3b9bbd494a7b15ae78e51dfe05edc99720393f6e093e5dd98e692858edde27d6f1dc38e45720265ea3866a0d3a123668dfc6c091f6c1a2267196d7a7346871251770c037420d0a8e5c7995f41da4eff3a11e3d262e37d53fc80dc9bca556c732b94d1c75b3a0bfd931a01241225b100c5ee1c2d9d1c82ac037f236437cefd1c94fffdca5e58c7113ce5fedc01438afc2259731bee7172a3ee844f0aef624b2058be79c154fc95d63f8205b432bc7503dda68ce4118e8d5c117bb0f512c21e6f67d655d064963d38907dfa4be0c42ba95e57d85e81e62e43ece358248321ec92aa5f4b75b78640b9689961a6a1d8394ba2e4adcaeaef721748559b459a82e03b51fc3c9ede424d047bd7ed5f2048f2c43ec98418df9e7f3e6fcd964d4bcd802356279b7fff0f5824d2622a81629d7a4ab01bed336de2374a17e4b97338f6f18bb99d246b53105b90d6014862f1945226cd708e68d1e2209d7f1c11660f0b044e6400af76672c727c8f2c63f4c22fd51b03acc233e68925827f0ef75cc95274a555a5a6f94cde32383b3c2300e198183a5524851440ba9092293be000c102bcf54e9e649aa7462137a51fb0ed1284898ae85facafdfae320ee674e0a7af23650af192b3280d49b71d5f31b72de047780b393c9324d25d3cf2c8399bf9cb8b67dbfc80f7d2ddb11c11af25663f7235b5f0d6a17565734c6c297adb20db96542cc678885f50ad8c48986405d7d6b1a2416346f6b199301dfede424ccd873dbda7c06df07bd43968350a9f0a292a833b78cf9b412db73acc90b9342beb7b17ffc913fc85ea41e2158f0352faeae6f2f2e19262dea3889e7b527da34f118e3334fcd9c00de89c02fd3a30950473d8238a4c69acff6501a72e569e9fc5ab4730cf015875903e1941d2fd884e26ca3e20bd2ba18c3d2e232b2ee6542873f0b29ce0d0134785894b5570f19830fe9c017342d45e73c2d1dcd4d119abd78c0f4d6543997c790f46466421e1769f0163feb3aaa0bc91b50f1a5fbfba8ff7a77ebcbbf8980375da512d27db7eb7a941fd43f310023df2f8c547f4cfd73353ae424c178bdfaaf5b8603db3df7d60ee7ba75383e03b4973c05198832b87e7c40d59330c8ef04d69a6e5a88de571e8ff23b9d4c3b1955aa3aa0dda9dbeda17afc46d5000de2114961f0105c8425ee297669b090315dea9c405d30508123e005725128dcd8d0afea1dce0691ed318cfc89ac12c01f6fa38efe1be20a6c320608b2c28cf397c06ed7fae85e181a485b699b97d3b3000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012de87aa31e0e4cbd34cf424a6f50f56d045c6e3af77c0b7536cb862629f468e70b77c1197c929d4b643081e0cab4c952eb0b5364911ba8091ed58e769f20638101b246401454e18fe9a073508729b4a35819db4d8ad89b522c0ce0838d1541fa2a59fd6b134365688110c917ff3bbed34a79c14bc9cc3c30adaa95285604ed2c25774cc43cf2a96474a927094e46dec8dcd2d6a427a287a7f9e849d5d75955d42314d565684591129b71aff6d377b1a999912506058c542dfab933b085b4c2e90fc58df81892ef1dcc9a6a234a27fb86eeabf230c2ca7525555a1956a83a8f1f334206e8ae89a9494fb4e7d4bdb407e28f9dde3b0715f25f95ea5eb26c9b996338fc8497281cea95a3bbef03b55f569d9c20e0f404e84557c395b4462f485d980c69c22249e02ee86a0d1bd0acf01a6c3d6fc2f780f6b3494a46f9c33a6fb8d536dae0aa2cd2207b2c1bfe8e4eb4e2cd907fe956d5caee7dd680038ae122884f068a1adabcee2c5e692b141914f9bf71852151e77172ebdb884581ee9f558ea113a961523582a5f682efec692b1c652428a3091dca425ae5e9a9efbb020bd8833c01553a6bc249c6ff062bd90e96e0a7f774dc76a06515484488b812a6238ee314eeacdc4d29e267bf0abe112abea2e7144e9838d7bf4e57ce8064106e317781057d07783d74265ca6ba341ffae177d844bf5c1799805249c6544d01a2a28efa261627d0a17e0ef8ab6be82f257ea3bfd80ccc88d46f68451d34fe163f063ef22b841a0ae7462125ed92ede4756adaf8b85e7145c5ec1e77948f5be653b78569000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000224698fc094cf91b992d30ed00000000000000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000224698fc094cf91b992d30ecfffffffc000000000000000000000000000000000000000000000000000000000000001940000000000000000000000000000000224698fc094cf91b992d30ecffffffe8000000000000000000000000000000000000000000000000000000000000007d40000000000000000000000000000000224698fc094cf91b992d30ecffffff84000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000224698fc094cf91b992d30ed00000000000000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000224698fc094cf91b992d30ecfffffffc000000000000000000000000000000000000000000000000000000000000001940000000000000000000000000000000224698fc094cf91b992d30ecffffffe8000000000000000000000000000000000000000000000000000000000000007d40000000000000000000000000000000224698fc094cf91b992d30ecffffff84000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000108d08231907c9829eccd4a91309167414dd18d99fe4ccb30ac14d7d64946095433121625652e11a21e7979b447166a4723577bfe10d303e8d932f7555f2dc071299555c5f80cb880c0e55cc9f4ad000adb2f2ea89796f672b3e4abb84084d04d240afb496711fc160dabf896983fa5dc1c8c2cac9efa3c2f9131c07a00c5dc262c76b33738a71d38ca97ac66cd08bcbb18d2cb2e437ab1329b86cd1f8cef84a633bf7776898bdb7f2b2e547c77748540650dc075b4747836bc229cd4e1bbc9861731df6cf0f76824ca03275332a4c52a9300b42d2edc6f6278d852767311342404496398400381fd6222d32bfe88020bdbd62d29ff83048e8ac9b83f30cc1a4f014b4e37b6e87976d693e33f832d6141b6450ec73aea72126098dfb4f364386238a75c7e73aaa296a87588106e82ff0fe9fe25bf6956ab374695b2807dc4db7723867a288eab65bd9a02d6c718e304f09d4d3b80a564f2cf11256e1c6c12345317a2142bf415f9af34b8b5a0f8e29a87b71b1b2559891f64474c62429b3a88e03808a260ad2ef60e4d3d62a140d0ab4468fcca6f111e50c9e6e6458b0cf4de860000000000000000000000000000000000000000000000000000000000000000078124a217daabc494ca96b5b5f602362b9f5ee69503655320f03beaf7084df62d630b34b554215e425c4a4b695d3481ca06f5c34edf956de58d92d70dcff2670000000000000000000000000000000000000000000000000000000000000000307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab21307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab2105f957432b4d66c307dd8d7a9f77a65b49b53376dadd9b2290ea826fd6568a542e26f67ab7b96cbd66298cf342505f2dedb559fa4be2273dd01899d6c3abb1712deb307a3d1a7844d20e88da87b5ae0239b5c2e49342701737b9c664a4fd6d6924100b05774826b954c1e98cabc2dcf1725adab78078c802023ab2171a81caa30ec70c44d876c57b82bb950c382934e3ec0009a81f04f2b33ea650419990bbc82ce53ced07446ce4cbfeaaa0f4abcb1f9db63b2df513b703b1ed32ba27a6c3e40fc904ba5d072ee14ffa59026c6d13d5bb675dec29e5aa4d2a4c867015ef710c3a4edb1848cd58bf5e6cc00d6fb556214b5da1ab8f47ccabe7073a2c35555fb91d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f31191ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a1992768519abd8e8951392e968cf4db10f1dd7a0da26aaa1a62f0c6c393bc852101e972d11acba7992d63a5c908d275ef0ce68952f83c017a99d2f00c87c7f500c1b7842979820f82613e9aad8d2aba29edba2a09b2cede1d088e81884ac08452dc8fe7fd0fe6c894514898011ecc3e0e47cfd46463f02f7600715ec21d283ef2f77047d0e1c7a4879e578c0ea7cf20369732ea22bed5d313918c5c4a8acad2c1088fb82f1e385b7861a873f15830dfcb8d36a59dd5f9bea60146b28575352d62cd3801e3ea3e5113e3c569c78708d04a316b949a519756a8befdf7cfc1fa2fc0a2f4974493866cb99197e1ed23cea20adf3be785b8a16c65b5bf5b831ac99c0217deb8a8ced2f5f0796c5eaa9793e68cac29744c57f86eb3050f48112eb752f13d8b191aff11d04939023c28ddb3f1fb250fb2eb481b3415dd06977b68c6a5b0524eafdbcf2907225592563011429666a348a0ec94980212de254e0f48257c519ad682ab4850ec4a1450404d5e2c23b89c1ed9adcc433fcf9c5dc59b5f005fb000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013b73fa2eff661ed03bb36b377c3d98164213a994fec7de3634dc11ec2d401af30e7e71b62f28f467dcb1b250c1b2d94421e6892a5643080be2c7183cbfbe14702747cec38c8bc6a83b9ee8dd046554915a19051afe579a44e35c5659abea8da2159d83123b3d4a30710fc49e22071adcb2c9325d4075a7d7bd524d92a6a2885d1f972af88fb7bb2148014b6b9a3e7fa63f3450cb78925b04d96b26a76fe8575235ff94da8ddfb2bd6cb3d194569a9a32af2ae8cad2cf3be75de045b68395793422ae619fb7f64f4433f25ec5bd52fe77ee02bfdb7785cb44ddbe77320bdbba5b232c7d4dd98147b556ccf8eb07dc749a0a4e9724b86a4fb5fc6220582001631b3d83f9c1bdb873ba69d830ed6d4529b2499dcce13a0279b3a24b1c3cdb1024d231a0d30060237ea9d3abed6775ebc52d293c8e1d65b2ee358dde34150293b5bf28ed28e231ac12c97f358fd2a2a0a45ae48c17a56c6b445e70da83bd966f52852afbf733ccb6f9e2955c7039dc8e8f8bc618bffb3088af5c3d27ff12c28a1dc21c54c01bde569fde6316b1eb79269d154884cdb85fe7c7fb5f6d35618c6fe8493355f670c2ee4fdf1edf6656c08ca8b6d79317dc0abfa832cec5726c1bbf7f1d1b9c8d8581b09e28af83f1afb83da0151801c20f5b6d0342d2b15bc9df5c718920b478943926dab106ac62a11941cd8df13d24647577adce600d84e6e8eb051a3b7e370bed18db92b038ef718c913aa99b85e582e29a091c45d6be8c366c12342d2edc443b43a134ec9fa4d9e42d1f6c47f9b19fb15ae0e075708c21782956623188e3736946f3bf517c077eb5300c2b271757a63931e99ac339705544006eeb0e771c8c96b90c40ae83f8814acff3d4fb2f4155d01b0f80d5f3c097bbff911637ac71410e62c2bc976c257989f03cd75ca0eb4b0212a4b304979ee354022a9408538ebef19d3d436893da86760fc328c5a5adb1073a546894959209abfdd56d165e364547edcdaef51cbb5fb1b13034460a3486e5295310b24156bca40ad4e029a1c9bab81232510ae344a04e4ecfcbdc3c64752423a60ae6ebda305bf52b212fd70f5a67a5046ac98fa8de7875f1053bec6da67081a637e21980c23436285f1028f0a5985afb9536705721878a0efae65a2b5598cb52e3b713b02acbc9d7a23188e3736946f3bf517c077eb5300c2b271757a63931e99ac339705544006eeb0e771c8c96b90c40ae83f8814acff3d4fb2f4155d01b0f80d5f3c097bbff911637ac71410e62c2bc976c257989f03cd75ca0eb4b0212a4b304979ee354022a9408538ebef19d3d436893da86760fc328c5a5adb1073a546894959209abfdd56d165e364547edcdaef51cbb5fb1b13034460a3486e5295310b24156bca40ad4e029a1c9bab81232510ae344a04e4ecfcbdc3c64752423a60ae6ebda305bf52b212fd70f5a67a5046ac98fa8de7875f1053bec6da67081a637e21980c23436285f1028f0a5985afb9536705721878a0efae65a2b5598cb52e3b713b02acbc9d7a221fb658f6072cee97b6dab3dcbac82009de512e271ab489886ab5369ed4941f1174fbaaf88be79d412b9672c9d372a7d2fa63a6f94bf935c8b22a38f99927d5408e7ffa7a6007171ca846ab5c221a555d35b9aacf9f95610076d0f3575dc681c0440361a1ec224d7d8d5ea28a83a7d57f8b8b730acf476f957ec35112a3fa6163286eb1e3ecaa056affbea5789533a4e1831888b716c307e647a2160b3ab9f080df3103f23d9644fa72a1b6c1b961a9c14fca4bc6d64a098a22453fbe63b716a326db10dd5a7b1765db5e5acedf3cee26786f1363634c1a634a356a0e08b822a0d59dd55308f221e8b7b9adc30ff608a8d3a58f05c6accbda67dc57cd7b9e0ae305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe13091cc41ebd24a8f6c5f74d6bc44fb38cfedb7ee4c9d662770a1924f14a91592048a8d77f2449b3bd05b997cec8e288d41affeb53192dab303b17f1088070e8151c9ac8f98cbfa4ba0dea0c7231d8a9b105eb6c9da85a730b14ce4d9cda55f524700f36587f61541470aeaaba8e582af9e7a75bc798eec5b61e584c3c2ddc980bea23d2a258b52685fd44432cf7edc1499839ecb5bd4ecfea7a492bf8cde0f73415dc2d5da74ad97a02bbbcd308123ed8ae5f0f538faa4baeb2e7c107321f0b295949c65e84e39ddd916d8a5eb750fe1e993a7f64c7233128fca72696ba4bd233d9b3b2e196273920302ab4f0cc0cb0efca1d0ae24d53b96320533f6895b38a2f7d84f11737ba9270f1f1c990421704366925b9a5bd3cab8186296cc03195b63f8e441b2dd7b0c75643db88acd6e00e408e58bb0220e0143d1376b25224be260454614e0b222282c7525f736d4e04be8d07e8cda947ff0a3a7fb8968b912569163572611ffe7135de40c785f343601756a68c35809fba7a0895e0632a9f3384000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013fa880f204b67659db88783f9fa7fe47e98e45422fc8c1590eec2a62b5084bd53a2ef45f46cf9632b07208d52b3da38505f2bc91200a94894e451f6456a1d7bc399c5af606d464fdda7b3aafd31bb5f3f0f7c95aa05f4f6a25c0b89f3e217a6a1e83341ea0a57f6fce4d1e05d3dfa020431e8f0e9ecf5536df531d53b4d8dcd42a0999fcf856df9f68b675a4383e159a8f15783d7e394b08f4f0c9f1a00e2450145367e56033d97da14170a9c8e11a3b8accbe43b65286adb9bae93728f7f9791c12493642e4bcca7b93aa524f1569b68175d08bef6bd37fd56cbdb58dbc235b118481812f5e0c89007e5ceff8e9724ee9b0990fd6fe01be85e42f2c0fffb1781021028a38bfcd90b8fb8677a5c828c554ce1649e0e74fdd95a1e2120163ac04264c8e30b3f9e9e26b4a05b8071e358bfa9fc1afff5a62508898b2ddd82cd0d82a345e0659918f8f292eecbc5460a45005e6ae5fae85e144562c0c777afa91ce0972901d50adf78eec986e1db2d7eef2c9c791a2cd4fb612fbab14886790ae1e3322e67f703bca976e6c2c0735571431d508f21e56e85cf1fdc6fe367a2476e11c87d00d310925261389ec3b045c319a4b0ef37613bf133c306ba9972e0af08505aaebe4adc4910c74e6ce36f6f3ff576509616816b38230139c17532b157f27386a56695695124fda400f28dcb52fe691786947b62b8e8c794184a753da42251051875e21345b4424b3d28a9430690846a80e029c7b9d5c6ffc385dbcfd2b0b1f8aaa7cb77946d704b25613b4eb803ca340d0dfe2aa3d8f5af96779e9904bb63188e3736946f3bf517c077eb5300c2b271757a63931e99ac339705544006eeb0e771c8c96b90c40ae83f8814acff3d4fb2f4155d01b0f80d5f3c097bbff911637ac71410e62c2bc976c257989f03cd75ca0eb4b0212a4b304979ee354022a9408538ebef19d3d436893da86760fc328c5a5adb1073a546894959209abfdd56d165e364547edcdaef51cbb5fb1b13034460a3486e5295310b24156bca40ad4e029a1c9bab81232510ae344a04e4ecfcbdc3c64752423a60ae6ebda305bf52b212fd70f5a67a5046ac98fa8de7875f1053bec6da67081a637e21980c23436285f1028f0a5985afb9536705721878a0efae65a2b5598cb52e3b713b02acbc9d7a23188e3736946f3bf517c077eb5300c2b271757a63931e99ac339705544006eeb0e771c8c96b90c40ae83f8814acff3d4fb2f4155d01b0f80d5f3c097bbff911637ac71410e62c2bc976c257989f03cd75ca0eb4b0212a4b304979ee354022a9408538ebef19d3d436893da86760fc328c5a5adb1073a546894959209abfdd56d165e364547edcdaef51cbb5fb1b13034460a3486e5295310b24156bca40ad4e029a1c9bab81232510ae344a04e4ecfcbdc3c64752423a60ae6ebda305bf52b212fd70f5a67a5046ac98fa8de7875f1053bec6da67081a637e21980c23436285f1028f0a5985afb9536705721878a0efae65a2b5598cb52e3b713b02acbc9d7a221fb658f6072cee97b6dab3dcbac82009de512e271ab489886ab5369ed4941f1174fbaaf88be79d412b9672c9d372a7d2fa63a6f94bf935c8b22a38f99927d5408e7ffa7a6007171ca846ab5c221a555d35b9aacf9f95610076d0f3575dc681c0440361a1ec224d7d8d5ea28a83a7d57f8b8b730acf476f957ec35112a3fa6163286eb1e3ecaa056affbea5789533a4e1831888b716c307e647a2160b3ab9f080df3103f23d9644fa72a1b6c1b961a9c14fca4bc6d64a098a22453fbe63b716a326db10dd5a7b1765db5e5acedf3cee26786f1363634c1a634a356a0e08b822a0d59dd55308f221e8b7b9adc30ff608a8d3a58f05c6accbda67dc57cd7b9e0ae305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe13091cc41ebd24a8f6c5f74d6bc44fb38cfedb7ee4c9d662770a1924f14a91592048a8d77f2449b3bd05b997cec8e288d41affeb53192dab303b17f1088070e8151c9ac8f98cbfa4ba0dea0c7231d8a9b105eb6c9da85a730b14ce4d9cda55f524700f36587f61541470aeaaba8e582af9e7a75bc798eec5b61e584c3c2ddc980bea23d2a258b52685fd44432cf7edc1499839ecb5bd4ecfea7a492bf8cde0f73415dc2d5da74ad97a02bbbcd308123ed8ae5f0f538faa4baeb2e7c107321f0b295949c65e84e39ddd916d8a5eb750fe1e993a7f64c7233128fca72696ba4bd233d9b3b2e196273920302ab4f0cc0cb0efca1d0ae24d53b96320533f6895b38a2f7d84f11737ba9270f1f1c990421704366925b9a5bd3cab8186296cc03195b63f8e441b2dd7b0c75643db88acd6e00e408e58bb0220e0143d1376b25224be260454614e0b222282c7525f736d4e04be8d07e8cda947ff0a3a7fb8968b912569163572611ffe7135de40c785f343601756a68c35809fba7a0895e0632a9f3384000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013fa880f204b67659db88783f9fa7fe47e98e45422fc8c1590eec2a62b5084bd53a2ef45f46cf9632b07208d52b3da38505f2bc91200a94894e451f6456a1d7bc399c5af606d464fdda7b3aafd31bb5f3f0f7c95aa05f4f6a25c0b89f3e217a6a1e83341ea0a57f6fce4d1e05d3dfa020431e8f0e9ecf5536df531d53b4d8dcd42a0999fcf856df9f68b675a4383e159a8f15783d7e394b08f4f0c9f1a00e2450145367e56033d97da14170a9c8e11a3b8accbe43b65286adb9bae93728f7f9791c12493642e4bcca7b93aa524f1569b68175d08bef6bd37fd56cbdb58dbc235b118481812f5e0c89007e5ceff8e9724ee9b0990fd6fe01be85e42f2c0fffb1781021028a38bfcd90b8fb8677a5c828c554ce1649e0e74fdd95a1e2120163ac04264c8e30b3f9e9e26b4a05b8071e358bfa9fc1afff5a62508898b2ddd82cd0d82a345e0659918f8f292eecbc5460a45005e6ae5fae85e144562c0c777afa91ce0972901d50adf78eec986e1db2d7eef2c9c791a2cd4fb612fbab14886790ae1e3322e67f703bca976e6c2c0735571431d508f21e56e85cf1fdc6fe367a2476e11c87d00d310925261389ec3b045c319a4b0ef37613bf133c306ba9972e0af08505aaebe4adc4910c74e6ce36f6f3ff576509616816b38230139c17532b157f27386a56695695124fda400f28dcb52fe691786947b62b8e8c794184a753da42251051875e21345b4424b3d28a9430690846a80e029c7b9d5c6ffc385dbcfd2b0b1f8aaa7cb77946d704b25613b4eb803ca340d0dfe2aa3d8f5af96779e9904bb61043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a1043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a352254da5cad22b2bb31a255d43899f5be174c33d783688ffa31918b2d0e604e3319a2a83a6dd65b246c9f7d539b67b09c3b0afe9bcc31f641e4746e726732ac06cb934fc247fa8d561ee4874ddb15c44061367e9c9857ba790f75d47e485c66012515c31c4d62deb68da72f0eaef3954e35414c7d634f15b8a251c3e93c47a811b3b2cdd522bbab58a1c1e190509f255ef725a55de7262c784576be6a96be2731e58121b4e86da8dee5935258eb584177732ffc36cb6ca749c9dad8b2f3761701964ace5f996e004463cc51a0e0974be4467bf3704d77d22853a8ba1554a8c22267e92a09901923b82bcf1dc9b164a7ad75052728e5f70769a126c426b15905291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa126c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b2b8e40f40da8d8261d87a0534e4cda684b2f16fa51f2e5013e2a80240aac2a2d101a49e89dccf3c20d53292a3e6513a4fca4c6dc28c40702523309daab596604041217d5e10ae2bfeeaf7922ddec504623ce1649953138d125ec298d54a9434e0bc14794a944c6c62505b9539db5a4ba37d64cb0f01d780f9ea66abaa45c85ae1d512c57e2f29ca04e363a2e738b7cb3d3d12ff33cf1abf2a1eb949626fb09f422aed3a81d0d635fb1c9c5d18c74834c4e756908cc5b4d28f7419c56d904f60e1d743cba4ef5c5c973f7e3f83310b6ab185f459309c48b788fd3c0818f13e4dd1dfbdfbfab900b06d703918742fee32becdcfa772262ee36132d747d639097a539e3e4d4c3e51db81cc112b334ae70ef09672755571cf841dd1148a80b0d0dd02ccff72041769e1ab5953cb5eb2a58f5b297dbd420f16b057d9adb419cf05201170358528f9ea89495fe9ff3291e85f0b45094571b098213b335449e48cdb05c289ff1919d70b54093801e384624a8e4b61f346fbff46972aaafdbb493b2f9040000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000128b78825e8832beebd7280e2cd23b67c7e5f077abb011c6f0a799e56edfba14d37a392654eb5f578529fadcbe2a4c2dc079acb4b754500861a959dafba2d729c2c19eb440a8bb008d92f4ab43276fa74882bfa3e8e2223ac8d045f79e7c710dc14b3c03d8e8cb9d42e00e04020cba3da9412a10a7234cd60a4f5dd4ce755d9f835c36373bfbd29965ecb1d0228294a727513394713cf6a35cc3954c798c012a914907fe178938da0c1b5e210d8c3884fe7c8b2d9239657ad2ac91f82fac26010119d0e1a69327e8ce78cb6fa2eed9d2c5a8d4f77c5a13c350ddb4170502c3ca331f6cbf07686631245d7fdbb35ba33900b199cc9533a51deed2e843f764ce1b2057ea1cecb6655061848284c59faf6d65096b828d5ea437958d4860d371c5996261e8f5cb4e8b064e054624cf949209b642013d600005127fd9665386b2d657928f09846e6fb415c35a7f4331cfd5115134dfc5c8ccb3614315a7223fbdbbffa29931425738248c9233a52e6971f90f1549b35af673cd84f9abdf1a9062bf8723962f6c2b2a5c21659925908a8a4de711e1141ae79967fe0bbc1845d028f46941647bfc9ee9f2da72863bf39910e675b0206a3e5f110f04d72712370a5a020d22ccd94ce600e847e0bcb21e96ec0ef85be79d202f62269bae6edbb8fc0342c8b1a5be043504bd70e4fd13d76dd4c1e9b99c961c2ba5bfa4bb061243a3349bef625968f23a5e94b9ba3c2bc2e43ad27f06c5b646f0660186aa270e002450d6d0f0098678d8dc0af9d7b2fde6742b8a43146f90d45feb29d550909e196d7f4e5ac0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae02347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f3dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc620b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de6371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a8708e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae02347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f3dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc620b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de6371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a8708e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001337c866282daa61ed5bc146cb87460a1095e7e5256c70505d32bea0344e50a5903a21794126a3368d4d03d3bc01eb270beb46fd17eb70e5a1a785af1b9b924e500561fe93582709370c4c2e53935a3e73062d0b900e4ec30d148d0815ca6c991247dad90bc9eb006a1d7519ba9412e47168d01c62f90a9c5872f617e6208a0af04daef5b9e4ce5326abad0b1c14ca91642cef5643d23f7b2a300a844a9ea581502c2b6bee0a4da1f242790eb3c70a597625a1ba85c6906df747fac8f44ef577c2c4f3844c63f2befb1874043e24560fed279166505a0eb482d279ab5e7c4b55d2c798b91a8fba19c4c33fe0122817c88430c766587e3bfef9bd4188adac71d4c10af8a9dc687a1f46442416e13853bb47a4a088adc0a2cd4c5ce224844ca31f53c7415c5a40827ce02ebc98c1693c910f2e02d2ff24ca032d8a8f1f37f574af501a2ab2e97cf9dbe7196565264434aa9f6584f21b6ec5c0426a1e4b8e4871ead0e080b5e097551ff105fc1efd56ffb220778fd76aa6e1b0e6e639227c3a848b800000000000000000000000000000000000000000000000000000000000000012d630b34b554215e425c4a4b695d3481ca06f5c34edf956de58d92d70dcff2672d630b34b554215e425c4a4b695d3481ca06f5c34edf956de58d92d70dcff2670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000224698fc094cf91b992d30ed00000000000000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000224698fc094cf91b992d30ecfffffffc000000000000000000000000000000000000000000000000000000000000001940000000000000000000000000000000224698fc094cf91b992d30ecffffffe8000000000000000000000000000000000000000000000000000000000000007d40000000000000000000000000000000224698fc094cf91b992d30ecffffff84000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000224698fc094cf91b992d30ed00000000000000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000224698fc094cf91b992d30ecfffffffc000000000000000000000000000000000000000000000000000000000000001940000000000000000000000000000000224698fc094cf91b992d30ecffffffe8000000000000000000000000000000000000000000000000000000000000007d40000000000000000000000000000000224698fc094cf91b992d30ecffffff84000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000108d08231907c9829eccd4a91309167414dd18d99fe4ccb30ac14d7d64946095433121625652e11a21e7979b447166a4723577bfe10d303e8d932f7555f2dc071299555c5f80cb880c0e55cc9f4ad000adb2f2ea89796f672b3e4abb84084d04d240afb496711fc160dabf896983fa5dc1c8c2cac9efa3c2f9131c07a00c5dc262c76b33738a71d38ca97ac66cd08bcbb18d2cb2e437ab1329b86cd1f8cef84a633bf7776898bdb7f2b2e547c77748540650dc075b4747836bc229cd4e1bbc9861731df6cf0f76824ca03275332a4c52a9300b42d2edc6f6278d852767311342404496398400381fd6222d32bfe88020bdbd62d29ff83048e8ac9b83f30cc1a4f014b4e37b6e87976d693e33f832d6141b6450ec73aea72126098dfb4f364386238a75c7e73aaa296a87588106e82ff0fe9fe25bf6956ab374695b2807dc4db7723867a288eab65bd9a02d6c718e304f09d4d3b80a564f2cf11256e1c6c12345317a2142bf415f9af34b8b5a0f8e29a87b71b1b2559891f64474c62429b3a88e03808a260ad2ef60e4d3d62a140d0ab4468fcca6f111e50c9e6e6458b0cf4de860000000000000000000000000000000000000000000000000000000000000000078124a217daabc494ca96b5b5f602362b9f5ee69503655320f03beaf7084df62d630b34b554215e425c4a4b695d3481ca06f5c34edf956de58d92d70dcff26700000000000000000000000000000000000000000000000000000000000000000f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d1116327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb03be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d3c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9412b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab212d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e00f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d1116327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb03be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d3c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9412b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab212d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e02e26f67ab7b96cbd66298cf342505f2dedb559fa4be2273dd01899d6c3abb17105f957432b4d66c307dd8d7a9f77a65b49b53376dadd9b2290ea826fd6568a5424100b05774826b954c1e98cabc2dcf1725adab78078c802023ab2171a81caa32deb307a3d1a7844d20e88da87b5ae0239b5c2e49342701737b9c664a4fd6d692ce53ced07446ce4cbfeaaa0f4abcb1f9db63b2df513b703b1ed32ba27a6c3e40ec70c44d876c57b82bb950c382934e3ec0009a81f04f2b33ea650419990bbc83a4edb1848cd58bf5e6cc00d6fb556214b5da1ab8f47ccabe7073a2c35555fb90fc904ba5d072ee14ffa59026c6d13d5bb675dec29e5aa4d2a4c867015ef710c1ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a1d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f3119101e972d11acba7992d63a5c908d275ef0ce68952f83c017a99d2f00c87c7f501992768519abd8e8951392e968cf4db10f1dd7a0da26aaa1a62f0c6c393bc8522dc8fe7fd0fe6c894514898011ecc3e0e47cfd46463f02f7600715ec21d283ef0c1b7842979820f82613e9aad8d2aba29edba2a09b2cede1d088e81884ac08451088fb82f1e385b7861a873f15830dfcb8d36a59dd5f9bea60146b28575352d62f77047d0e1c7a4879e578c0ea7cf20369732ea22bed5d313918c5c4a8acad2c0a2f4974493866cb99197e1ed23cea20adf3be785b8a16c65b5bf5b831ac99c02cd3801e3ea3e5113e3c569c78708d04a316b949a519756a8befdf7cfc1fa2fc13d8b191aff11d04939023c28ddb3f1fb250fb2eb481b3415dd06977b68c6a5b217deb8a8ced2f5f0796c5eaa9793e68cac29744c57f86eb3050f48112eb752f19ad682ab4850ec4a1450404d5e2c23b89c1ed9adcc433fcf9c5dc59b5f005fb0524eafdbcf2907225592563011429666a348a0ec94980212de254e0f48257c5000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010e7e71b62f28f467dcb1b250c1b2d94421e6892a5643080be2c7183cbfbe14703b73fa2eff661ed03bb36b377c3d98164213a994fec7de3634dc11ec2d401af3159d83123b3d4a30710fc49e22071adcb2c9325d4075a7d7bd524d92a6a2885d2747cec38c8bc6a83b9ee8dd046554915a19051afe579a44e35c5659abea8da235ff94da8ddfb2bd6cb3d194569a9a32af2ae8cad2cf3be75de045b6839579341f972af88fb7bb2148014b6b9a3e7fa63f3450cb78925b04d96b26a76fe85752232c7d4dd98147b556ccf8eb07dc749a0a4e9724b86a4fb5fc6220582001631b22ae619fb7f64f4433f25ec5bd52fe77ee02bfdb7785cb44ddbe77320bdbba5b31a0d30060237ea9d3abed6775ebc52d293c8e1d65b2ee358dde34150293b5bf3d83f9c1bdb873ba69d830ed6d4529b2499dcce13a0279b3a24b1c3cdb1024d22afbf733ccb6f9e2955c7039dc8e8f8bc618bffb3088af5c3d27ff12c28a1dc228ed28e231ac12c97f358fd2a2a0a45ae48c17a56c6b445e70da83bd966f52853355f670c2ee4fdf1edf6656c08ca8b6d79317dc0abfa832cec5726c1bbf7f1d1c54c01bde569fde6316b1eb79269d154884cdb85fe7c7fb5f6d35618c6fe84920b478943926dab106ac62a11941cd8df13d24647577adce600d84e6e8eb051a1b9c8d8581b09e28af83f1afb83da0151801c20f5b6d0342d2b15bc9df5c71892d2edc443b43a134ec9fa4d9e42d1f6c47f9b19fb15ae0e075708c21782956623b7e370bed18db92b038ef718c913aa99b85e582e29a091c45d6be8c366c12343f89350493448494ad087f0540faba6b5030e1451bb10882a8ab298bc2b299810076cafb6cbb7b6b52f780fabf054594d215b7b6ed9bf098f08207613d4d66803dae0916e05696e7612a7b1a44e5a41807da02696541461ee6a30c06cd7cff810251f6e91fa969189ed584e5bb1a5be81a6c9692a40bb2fcb28a24e63283008034662d7261b0f284e5d46783587c34779e27a81ed5127a2c1c7a786e0370fd810b99d28d9e4f0d7b1a2b987ca783cb88841ef0dd343a7eef7cb2b87efc8f028005fee33be874bc987d260590ba6d06558dabe4aa04287e6e29af96721134f3813a011cc4178b436782d9fa6f4592f9aa949ab45205247aad6f7d9a7aeecb0c803f89350493448494ad087f0540faba6b5030e1451bb10882a8ab298bc2b299810076cafb6cbb7b6b52f780fabf054594d215b7b6ed9bf098f08207613d4d66803dae0916e05696e7612a7b1a44e5a41807da02696541461ee6a30c06cd7cff810251f6e91fa969189ed584e5bb1a5be81a6c9692a40bb2fcb28a24e63283008034662d7261b0f284e5d46783587c34779e27a81ed5127a2c1c7a786e0370fd810b99d28d9e4f0d7b1a2b987ca783cb88841ef0dd343a7eef7cb2b87efc8f028005fee33be874bc987d260590ba6d06558dabe4aa04287e6e29af96721134f3813a011cc4178b436782d9fa6f4592f9aa949ab45205247aad6f7d9a7aeecb0c800461dda8d89f9244340ca170b871686ead72c0f6aeea72a59dcc85f5bf2f6861125c534548436e43bf17fe0c04c54749cf0b77aa2d2eed5e1e60a2d2e8abc0510fec9db111a2bc701c877b6b49a793338e01242570cdb4629ba3d7dc2df4aef00c92b2d6b47058a06fbcb270dfd3adfdc463f7d18316e233d08b9f3170c2b1cd008b57e0805f4bb851eebf6269807c7c8bc1702f106a0fe1917f009e0d94070b34be1e0f4f65587db243499b8b6119fc53fecc9d8d6fee108adfe74bf5467f4d191e54644cae3a07efe25743022c9f057c693b00f14f119e55a4335700d26c1e279c8347dbb40ba1995e32e9650929dfbf48c5ede0a6852474faaee70de55b6e068b7cb70c4e968fe90a321a45ecb6c221e359af3f511fa60b4bca61ced1e0ae063701d30cbb53d7978d008cd3615854317feab4f9fde2db6584c6b4ea9b95e5191eacf8d55e0dd3a893bdfb41a71c1a8c4cd28e3796e01b15646a25e0db5d413fab786f34538151cf5a1d2689bf392d2354e7437bab805c33f837a38347c85c2bb184a615bdb14baf6be323fde7045de6d2b3dfe994d2135fbcd31b12dbe8b12110f9e4034c391bd12b4f831b670ab88ed7298059072989aa40eee8a6918de4257a82d309025d7417dee2972a85ac09b552c92aef96ef37fa380c66284052cc1a857d2cf6fda28be8211d68d57a53f66cf3cfd119b609e39ef52486d7bfad36218d67d9a71c8d93daeb1bd9eeea5e8abe9b4875713f66b1340aa6214b55512327e5b3dbf29e96ba4b5182f9ed0e28217032b5bab532d357993ae67ccb8df5722e4a962106b31e0daa9cd6e581e51350a1feb7936556c4f936118d0e4a752865068a8e5dac8fce5cc8582f9abe302a258f35c496ce0521d2ed86d59ea54ba85c35d346a97e6cae1b28fda2dba6183d14463786df81bd7794ee3e8be943374d5e11168077f25e650195940f2c7611cc31b53d5c74e79fde3e785e8504fc83235c000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012c3d230e942cb3480c46148d0c00e41a75cb130ae45bdb94a2ff617bc9fb6c881492c85432a1eb53bb821fbaeb221f88e8c0ead283b32883c745ca28c649190e0f069925325221aca8a50f25d3de702911908900c668c2f4e58f2396fb2409650ab11c2fde75f36233c2132ac104a0241dc2c8485d85c452f8bef655182c590d0158c9faa3aab59ee355456987d1244ab8b80f2bfd1cc15ad0e0c5c9ae43500a2c3949e0aaded936a07d69fc2ac2b66d7355a3845c7f0e660c786fddee675d7413faa40f2faea82072af011a9255a9de81c5fd81d5059b7468cfadae69ff7cca01719b2e7c0f3f2be92ee876a0e2c1a61aa7faf61df8d8c4888977448fbe9c7f1f374985aef7e35b9a8ec121273e19aef105b54d12f6e88cc3d52dd74808de5b36ae4ced471da6f35514fe71068e095590da16b66eb2d1028f0fd5466b0c53283e95ecb7b4a17553041b7aa1c55ed9fbd227705391d3710cec09d23b2c3cf4aa1d17a268aa380ab1f6068db728b965defcd0e0394f30d22a21ebcfc457d4b516086ab9dce9be73c3d19acbf42331b1e6bd450af6394608004168904aad1aec02073ffcafb7867bf9b05b4c4e168193e5408c41a228146f12539ce695fb147b633f47ff72844cd2e3ec700e6bc4b05e29af65a03b2359dd7f163d9e858d19f6e115c13507ffa186386c4d4fa65ca09dd251ab3f9233f8ca07515b3bd132499afe3c6e005892214a6fa71dd32553effe519bc104bf68257abf8603d0211463e76b1c1ed880819cee2930d72c287e4062962f293a1c214ad760539ad6351b70978205583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee83aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a06130191191ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a882546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d579059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a63a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b1c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e23ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c305583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee83aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a06130191191ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a882546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d579059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a63a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b1c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e23ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c3299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f1002214accce313f5db11d06b277e45099796f2a6b9e284bbd31bd5b1ef642a2dc7642c762708227d8d9d5db25342038160352c32ee7a89896b63b01e4d1acff394991ffaa18c3bc1139049500403dfb0a68045256159afd6c550275472c9aa6b8c621319406bfd32611570a209b85b38e49dd7727b21099400a3c3bf232a29135eb22368a8d9f0df500d29c787f59bee3d31a7284c876cd8b378363c8b9485c4beaf0168feb3ec5487731f5a78c05dbf2354012ffa5efe36b383af6c5d5787f595aa0b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c3feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d29cb941a2f109d6af605b466d71c4c622649f3c64cc21faf9dab0468e4ca2300082559f2d36f6e8b95cede951b4246eff9bad95367b060e060c585f8f4936c1901bdab451ade8278151aa000b6fbc7d54b1e479e66bad359e401066eba70867209a39f8854fb6f435560a9d83f0a321687ecf5e3a45fa3de41751ac1b91b6b4701d2f226b015fbbcb551f2837d048fa7d82069cfa53362d415443ddff702eff63e2d0dd94fea04434aae0d7c82fb70584a262f2c6419964783e8f30d08fd100c0dba471319cd6c8df99741293f7f59cdcc086e13965a56ac88e9c7b6f617e0513c7b0f2af395ef9c3e7c5b2d86c2e0446c353379649fcb3de211a6d48dff70923d4c3743bd7fef78b8474d1f56403d39ef10f74a953d58889dd7ba652d9aa2263823171b6cceea4c6b397fbd2fac3cb257a690c13a3179c5ea8e50d996db174f138cfe690622fccbf1a5144046b8057ef6343f2e51fb274c481c8a4ebd5f00a2398409e28ccdc2d7e9ada0a51a4e665440c1e30a0ac2d7803f1d083d08d9252100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001121925e11377999ac089e5509b9fae1e0da5d9cbf3582eefdd0f4eb3d8f67a16344b9a77d753303645bb081baa70f16dcfb273f4e18f6826746332914c66b56d2c4d6bb06a7d10b4ce83575682a6ac2782ad5ac3e03987cae9d64f1abe611b1535f0d90b8d1acaa4272131ebde9a5621cfa97ae909e030ec1ae2aff1a1aceaa40fbe3be46fd1a59a9040b6e255d7e4766edc7691ea152e2964c0be5c40a84b733f2340c5e8c8ef7e86fad6e53d5b551df977487a51126ff4b0265c3a845f37531271b64059999e7fbc140afdf170215165a2d9494d68dbe562e00974b08477e93c883f89615e3b2d7eee88fa98ecfd4e2e4cd91881599f9e452f49ac865522d323b5c0efd4ff0bd61a2094db3a90bb538ebe6724ae0144769e02100ed1653c5c010bb189b7abb2c1e08df8e8cf4d9a478a59546d4f4b35416cb6ffdf8af1142f2fd85e6375eb3f423bf8eea1b8f93476ee07ef50403135fd216f31beacd45f850c71b917bc21d56080243e775ad3fabc8e29b9a7f3e6b67478a268e0456c14e320c1859c9196baca20afe06fece3c925ce47538b9876455354ffd602ace41df82ee930f00fae34f3614637d24ccf7ca651d09208d2312adad932d1cafb4b496e3726c4b3a89dc19e07ef9761b96e90ccb7c49c1480c0431cb5e2f5a2206eba8315340ded9229034636021ff9172b181ba12f7d80e057ed96a05a53c10a90a16137acf332e665f2900acc5ae66d661e0538aa6807ccf32511dad7585d7828fefd1043bfeaf8891514de36def343ae15ac530d00748f805d418a7d8c2e8a9873cd2994104ae8e0b8c6b498ef4a340e1f5dca7130cbfc365dfcbac8513f99314e91166befb5171f47394b6710b5cbf1e0a257d568300d169b1ede64dfad66ceb1700fe451768c639be186fcac7304469cd48d622907d128ea9cda620376fdf688d2301bae89739c641e7903538cfbb9632b94e46ff438240e7ebecb2d760209772f0f759750bdf20b67a2ef5e3f15611026a0a4342b0c7f9bf4aabce065f5d0ac19308a68af420df4985d10a1c0ea9eefd981a264d0fccd5d26ee7050870a2f53e80d4bf493b5ba39062eacd73b6ae550c100ee6bdb353112abbc833110cd135c7c32b40b6c4a45c6f9d15328c4951aaf3f21582d20d41be66fdca9ffdc32eca3852994104ae8e0b8c6b498ef4a340e1f5dca7130cbfc365dfcbac8513f99314e91166befb5171f47394b6710b5cbf1e0a257d568300d169b1ede64dfad66ceb1700fe451768c639be186fcac7304469cd48d622907d128ea9cda620376fdf688d2301bae89739c641e7903538cfbb9632b94e46ff438240e7ebecb2d760209772f0f759750bdf20b67a2ef5e3f15611026a0a4342b0c7f9bf4aabce065f5d0ac19308a68af420df4985d10a1c0ea9eefd981a264d0fccd5d26ee7050870a2f53e80d4bf493b5ba39062eacd73b6ae550c100ee6bdb353112abbc833110cd135c7c32b40b6c4a45c6f9d15328c4951aaf3f21582d20d41be66fdca9ffdc32eca3853a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f21621663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac509ae342a78dbce2f652ce83bc8df13cae92ffd4acd96c384d84b5b62829aa4c632e0e89af62d4b5e0a44b1fdae3b06376c9123be386de90ef339f6846a620c8503c88a181de5af86bd618c7ca6d2d1c6c23247c7fb1d7c35badde3a77e53e275374baf5ec512737c4b30713f1f990aee557a2b2289954c4678ebb40fec4e4b6d34dc26445dfc3d86f0c6ad853b8e90dc59275b991680e24ef59731a1d97c84bd325f6801ed604899667b4ebb69d9690e57da2a8bdf801b1adb26780d848343d022e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d570ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b2a2adbcd6a52d4ca8f75b25d259380a1098272a199bd1f2a1d40b13cab90e275145a40e4099c34ab09aab12529be4211daaf783bee3df5d9e430c580d2149a243c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db36bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b92c26ac95e8a94a86880b3000e6c5332ea933623775e674cff656eb1e973ac4a013d9536a1756b57977f4cfff193accd1791336c49366844ba2d645ce68c53b623964dcfc56c5aa7cffcebb8cd19e578dadf06b424364b3d74f499983307f128c397f861bf30d14bc54bd10d550d6206d46fe59f94c85e2fdf4358f440c824b1a0bb136dc421e7dc750855cf951fde0c09436e335d09bda551392f0d290e5af2935bd596c9b2ae909556bf04b32a63034bc8cd39fea8c460bed7ccef9520576252cf159565af759e9b439f0b428958e5879faccecb3d8b95c4d92fab4a1cd9cf530a19cdda9ef82a7008969622aa4f09a04654cafaafafa1fa28d11065ed6d113000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011e0743e56e71a36aff9f28654eeb8030d520a300414a7b5fa227d474e0035dab1432ca149237c258feaac194541ef39aa19ca3e5e875017a66b834c6c5caedb90a71eab065b9c1d5ddcef2bd1b0aa64576356dd16fefebd1e8a2567f69ba32b821a8e2251b1a94b1a52648f38a318650e5edfce507e0b49f9e09e66ec3cbe5a010d9c7fcf8baad946f7fff1dd1fff3465dcde12b5fdc16f9d6c6345bc9221cb9280ae3b05b1a35ff1de32fa833df4046bac51003fa860f7330638401512a96292837168504f3f1bd8ae89abfe989f2971f282688279284759f0a0411bea357ee130239b8f7fee47132573ec646024e73854d16a009287d79962010f52b24637209ee9ba9ef19816a6cb05f56974a6b200627c767b118f8764281d9427ce0cafb3098508783009f3ad14f288d95a6e2d5112cfc26044296f9587ba6ce5b328ff0284485e6f59286f30371e61fc3fe34f835fd3bcd65af2e168acdfd48472cf4d51904997016071d3ef5667a80c85cc7cc7fcadb4f3dc500dc9a2b16a8954ad3c81ae42a0190805844c482752e08f2673b468f52bdb3276a40a08d5f5ac5abe80034c68c8b10c49778bd73a31430c0de90d98892d6b78005ed8da54872e2837f661fdc5a1406be3b0a54a901eec489d4689df1ecabc7c114505106741f070a716539f8a32ea04060f7a60d7a5141140d7e384032298f71b53946365b6d1e7c384c2be1d91cc2806821444c578a9e45c73eaef4afeef24cd672b1466f7e98de85b51e55758d9bf57e390210647f4d206b1cade564ab62c3dba85fbd5b5eb82aa8780204b49a0d32048e2071504769351aacac54528b75b0155e3a707f3192cbde183dfb4b65f2cdfb71df8eafb896cae55375f24670939ce3bd5ebcb1bb6d3421e90a17870241fa16c6a23691650e09855f5da59cb94c706ad724327bf7ddfb567835e878fdbe05e9395dc96e9af1f67aa0c4a0fc42bcdc8e4474fab4f52204a9893275a30b49e271e12b10d6f9462f9adcd43c0f9e7e321633b4fc6bd755e8b0580d8a5cf4b61d8e1ed4ef2906b9d065234e0a895d8b1ae2e7e430c515aa174fa93c4c2f38716c3965d75432de5eee064fbe5883245b1383afbd66886dad8b71b503b3d0c78e93c69a28abcd21a111f9b063ee15d7ae39756bdbc6a87f52748e4c0204b49a0d32048e2071504769351aacac54528b75b0155e3a707f3192cbde183dfb4b65f2cdfb71df8eafb896cae55375f24670939ce3bd5ebcb1bb6d3421e90a17870241fa16c6a23691650e09855f5da59cb94c706ad724327bf7ddfb567835e878fdbe05e9395dc96e9af1f67aa0c4a0fc42bcdc8e4474fab4f52204a9893275a30b49e271e12b10d6f9462f9adcd43c0f9e7e321633b4fc6bd755e8b0580d8a5cf4b61d8e1ed4ef2906b9d065234e0a895d8b1ae2e7e430c515aa174fa93c4c2f38716c3965d75432de5eee064fbe5883245b1383afbd66886dad8b71b503b3d0c78e93c69a28abcd21a111f9b063ee15d7ae39756bdbc6a87f52748e4c07b0d5bcc9ec3b3519e1c387b96fd2b5b394f2a19894a21b9af910b00e9f70833756d5b8b269cb43b4e1645cd9b858f5a91fbb368bec1f0b8c14c58ce7233b722361b64dae7e512dbcdd173d2457cc67766e5bee3bb3835c089c11f69494135838e121bda4be2151157ea3e6b2aab629c6187ca7e01ff0f7a2d6a67dd12eee68092d97c34e376b63e44ee2fdb8edc57dd52d967f44e9ff11340a69a0945aacef2c797c664f8e13589e5ead5f295b5206dee5742872158b36e1ef11847e977ecb283ee68b27d40a5745056f2725b3db7ee753772eb05448cb014af6500dc9ff2b07c7d654ee7df77bc86af58efab033151a0a46cf625813d4ed0f1e3d8dfb7b783c45ae4868a6aa3509ead71f15fb75699d7ae17f13dc248de26c8da6687adeda286fce36c7c6dcd354f645d87fd9dc5a5263fc02d1038a65afc7a75c3bff737628f43bb2c868137aee268d33127ffacdae6ab4bc988caf66d6b9a59cb77d5bd63070006b8220f8c2c22b4805f8c69a260daeaf4d153958c4c6277eedf5b1ce2714ed73f58795739d2941253b223860e2f8434a6c3504d3a3f5980e465ccc7c270fc80889a8d8136b359ff7bc739cf0e0d554fa19a68de234036ef5cf47add6292c7da5bebfce96c9d44adf62a25e8488c825e7656d4e4259defd97d720cd08b213825a41403169362bb5209d5da17b775a20b1969bfeb6c1ba2f9915df32f75029a6d80771b663e4de64aa6b34df3c2033e1020db0fd93ba8e4f3209f7c1025e3492f8eaae5db1eb890a2064be48010597bbbbbabc1338a8f04d89852245ef24166d60eb4ecfc5ac8a37f7f38a2acad7abb940418b00036fed80e5ba3d34cc8225d2edfee774f844ae703a465c427b1afe0a66eb5ab1d97dce6d6e62ef472ac62ef771597d4eff7928b363d047d0af484a03786872e005a385fca36dca85dfca252d4e66fc137aecf09b82a21fe778001bd22a058f5eb691501577ce02af8c54000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013e8c89ebe8cf3aed9e7495fe5bc65b79c118c65888071ed5000074cbc4a3838e3739adbe15b4f00cf6566f9732867431b26b0f1cb1d85e48f5d91cc144abd9a43c5d6ba41d6e56ffce2008de64c267539e49c9ed0e3c37e6e687e774c940f7bb159d64841e7cd27e59ae3afb8627c866501b367b7f0c4a20ea32c3a0a3c5d26437e7d2625892eaac5387f6aedbb0cb88354df93f17bd32c79e9c63045be4df1e2c70199e02bb598aee433a348bd0ff8d414b96190841ec99f191b9e09a7840ee352b211cdfc7aecbd7c3c207a7bdfa9f9c2cad38e050c86c439b611be52e99f83a8b0b104a8eac62101b8442dd3c79a55d435812908cae9b4c6321c0b9bbf9ee011089440fc397bbede39a82fa91085c1ac27e919d9b9a86bda0d7710b6dcdfe3450581507b9568513d6e3a6a8990ac9e2e23f31f024303d6d0c07f60ed8aa30399161e66345800d58f35cba9ab9e4304a711a3038c3a5c97bc66ee87b4c83f23bae76b40e5df3560a55f4796ff8bb393bf0792cdf62e0f33876e3ec607e617a05acc0ec31914f687ed7bb09b99b38e6d688c266a07b70f4b48bf6c6a8a5836609fdf5a06fb3a055031e5d3880180ce527488a31c0df061de0798019ff89e3ff017eae07e58a70f419101c374f919abfb14c2636fa5751460288a13b67a8601e26a4765c5264dca5ff7318d6e58b733715efecc4d252fedf78e98a0c029f5e352523bdfb1a5358adf6dbeee1a6fb4b6abcc94cfcb4a11ffac27a6ba6ac06918a0b3993c23116236e359fdb56daf4bc4f51f653b043b0510c043b13229d0b929d0a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa135eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5603256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c85250da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b6044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b2a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a1584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff770a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa135eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5603256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c85250da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b6044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b2a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a1584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff7728a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e870b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc1e34c8c6e8e486192e6d95d7e579bb63a7782fdbfb459376a1965feef865efee19da8e2638861c7ac4e5de71bdfc3b42ec37f154f40bbed4c5e50965a0156c060b9d798a0dcfe0f4f594784ce33add8e74da0a4ddf0a85c629a61dd7bc644bcd30c952866824f5b6d2e4327f33892b0af948d2089edcd99d46a4f26b26117ff83f44c25fd17a50b971a117c3fa0049706d29179dae17d2e59e1ca03a77ab527d24b9719897af366a8aee83ab7091b28346d90278f468950f8d056030c45aaf4b1883d6e1d3620a99d127d8cf8f9f75ddfae5984b4c8b4ceb80eeda5649fd19223ba6fdac0b77d30417b290295f5091155d781ed0d0a66a28e5a091ccf9031fab12690cd9d017db824bb35cd43115f352b53b40cc7ba2dd80a2b593ac3aaca83331ee6849847258958971d9ae42381ea0477e13551c4028b2ff47442f0f4dc7a03929f857ce3021a1ec2c9bc89b76c6e5277ec01edd2f637abfe35990685ae18e1b00dc3610a9bbfbfcadcd305379400e30def6fd40025399a6ac1292daa557403d82faabc2b84e9dd47a0b9f3c2635cfec4d3a4a15d5f26d736ff8b06f57c1e4027d05543d47b1622b85f460c3d9ca3035f95eb1f37706ae25bd383c90a83e1e0a20f43070a7739f5f283ae39030222e09395edc7aa8ed87b6714a538d4dc889027a272eb0bef2388d30a17cdd6de681f0e9aafc077d44ea67fc21631f82962911b6bfa05d8fddb6074ceae031bc984669fbce304a8245faaaf6192dd00298c220bc14c2954208c50e7c6d47d5f93cbee0fee43eaa870008f61107b56423c16d2e2f3235bae6b7fe5554a741bfadc34c85a846cb69511797de7ee59c95e4918503510ce1535c27897292d3763b964374f0d57506b413b4961540ac251c4d0df3000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012b4cda99ffcbb50a9d8058938bf3e8becb1db6593e296cf21a1be88697ccd24c29a8467798d211200fafeb446bccf27dbdb090536d89c46c636088b5ed46e97833dc7ec80868b2460ef065bbbe2eeb01be8736231ea5744ed07a68e9f0e1b6c427334daed98a159e3a0a64dc774463139038474d50bc4c5fdc38cea02543121e3898e2e075df461e1091eebf1614216af95a6cc261cf7bbdc2f4ceec9d20e00838d06e65efce6cc6e885e95e1435ea4eb14b75687f57945133f08de44b099a2c08c7a2a4fe39b8369753a244014b123f56bbbf61cf5e318035b603786cb676a80480f909f4d2b703d65a932b1ef564232a7f0c780117a936dae2dfe7f3512ff12d2c5a50e21b1da9671b084f89d3f44e4ce9f2efc6f3f679aad0bb07090d230228631ffa72189e2a6ab999681f05b9c7001752edebefd6e738dadf5345c1cf153f8eaa90168f7958e6de3ecfe90a4e7b191b5bbca434302d393830de442b3f8c16722d7986a899623cb9e6d67568a2819ee1a0831eab0448b72d55de0f7116ae21b3905637664370d4c7d6eea6a0b81dd2e890dbd4437c8a73c222245d7f38db2df7263669deac4cad2e415393128dae4d2f54b89663f3a3ba7085a94ab02e8b374088dcf84a786ca55ddd2110a0e508efea7f35601fe5efae1aec768e97ed4825f075b0a9d629da622a04b201b85e7d13e7e7b0e9662bc36fa4af12c805770426d9e9a0ce9fcda633cbfc0d4379362225ac371563fe372f2133d1168879c5d73ac1a91617f9a68b88a66f09cb368a78a5e17e949f44066eeb6620eb2342ab460a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa135eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5603256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c85250da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b6044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b2a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a1584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff770a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa135eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5603256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c85250da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b6044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b2a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a1584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff7728a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e870b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc1e34c8c6e8e486192e6d95d7e579bb63a7782fdbfb459376a1965feef865efee19da8e2638861c7ac4e5de71bdfc3b42ec37f154f40bbed4c5e50965a0156c060b9d798a0dcfe0f4f594784ce33add8e74da0a4ddf0a85c629a61dd7bc644bcd30c952866824f5b6d2e4327f33892b0af948d2089edcd99d46a4f26b26117ff83f44c25fd17a50b971a117c3fa0049706d29179dae17d2e59e1ca03a77ab527d24b9719897af366a8aee83ab7091b28346d90278f468950f8d056030c45aaf4b1883d6e1d3620a99d127d8cf8f9f75ddfae5984b4c8b4ceb80eeda5649fd19223ba6fdac0b77d30417b290295f5091155d781ed0d0a66a28e5a091ccf9031fab12690cd9d017db824bb35cd43115f352b53b40cc7ba2dd80a2b593ac3aaca83331ee6849847258958971d9ae42381ea0477e13551c4028b2ff47442f0f4dc7a03929f857ce3021a1ec2c9bc89b76c6e5277ec01edd2f637abfe35990685ae18e1b00dc3610a9bbfbfcadcd305379400e30def6fd40025399a6ac1292daa557403d82faabc2b84e9dd47a0b9f3c2635cfec4d3a4a15d5f26d736ff8b06f57c1e4027d05543d47b1622b85f460c3d9ca3035f95eb1f37706ae25bd383c90a83e1e0a20f43070a7739f5f283ae39030222e09395edc7aa8ed87b6714a538d4dc889027a272eb0bef2388d30a17cdd6de681f0e9aafc077d44ea67fc21631f82962911b6bfa05d8fddb6074ceae031bc984669fbce304a8245faaaf6192dd00298c220bc14c2954208c50e7c6d47d5f93cbee0fee43eaa870008f61107b56423c16d2e2f3235bae6b7fe5554a741bfadc34c85a846cb69511797de7ee59c95e4918503510ce1535c27897292d3763b964374f0d57506b413b4961540ac251c4d0df3000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012b4cda99ffcbb50a9d8058938bf3e8becb1db6593e296cf21a1be88697ccd24c29a8467798d211200fafeb446bccf27dbdb090536d89c46c636088b5ed46e97833dc7ec80868b2460ef065bbbe2eeb01be8736231ea5744ed07a68e9f0e1b6c427334daed98a159e3a0a64dc774463139038474d50bc4c5fdc38cea02543121e3898e2e075df461e1091eebf1614216af95a6cc261cf7bbdc2f4ceec9d20e00838d06e65efce6cc6e885e95e1435ea4eb14b75687f57945133f08de44b099a2c08c7a2a4fe39b8369753a244014b123f56bbbf61cf5e318035b603786cb676a80480f909f4d2b703d65a932b1ef564232a7f0c780117a936dae2dfe7f3512ff12d2c5a50e21b1da9671b084f89d3f44e4ce9f2efc6f3f679aad0bb07090d230228631ffa72189e2a6ab999681f05b9c7001752edebefd6e738dadf5345c1cf153f8eaa90168f7958e6de3ecfe90a4e7b191b5bbca434302d393830de442b3f8c16722d7986a899623cb9e6d67568a2819ee1a0831eab0448b72d55de0f7116ae21b3905637664370d4c7d6eea6a0b81dd2e890dbd4437c8a73c222245d7f38db2df7263669deac4cad2e415393128dae4d2f54b89663f3a3ba7085a94ab02e8b374088dcf84a786ca55ddd2110a0e508efea7f35601fe5efae1aec768e97ed4825f075b0a9d629da622a04b201b85e7d13e7e7b0e9662bc36fa4af12c805770426d9e9a0ce9fcda633cbfc0d4379362225ac371563fe372f2133d1168879c5d73ac1a91617f9a68b88a66f09cb368a78a5e17e949f44066eeb6620eb2342ab463c10a0708141d6f1d8fbd1cbbb5cb256ee4eeddae80d4551f2d19dd7d0ea978403ef5f8f7ebe290e27042e3444a34da933f7ab21213fb3c9a65b93152f15687d2c532232864932b93ceb18faa8cf7bb21e704156630e762b596351831494f59013acddcd79b6cd46c314e7055730844e03d657a5a63e82f03fc9df69eb6b0a711d9faafc9f6dfd9e30977ce54c0d6a7a315d7bbbd3616385f36904c866e8cbcd2260550360920261cf68831ab3f29585f0e91d4035eb9595a5c42c2499173434141e56ef1d25f416f2f5707a7c431462b24638b30e4cff668eb2b610028bfaff2be1a910e2da0be90d0a8f8583bceb9d70006048fafff9b50a7a7adcfd7405023c10a0708141d6f1d8fbd1cbbb5cb256ee4eeddae80d4551f2d19dd7d0ea978403ef5f8f7ebe290e27042e3444a34da933f7ab21213fb3c9a65b93152f15687d2c532232864932b93ceb18faa8cf7bb21e704156630e762b596351831494f59013acddcd79b6cd46c314e7055730844e03d657a5a63e82f03fc9df69eb6b0a711d9faafc9f6dfd9e30977ce54c0d6a7a315d7bbbd3616385f36904c866e8cbcd2260550360920261cf68831ab3f29585f0e91d4035eb9595a5c42c2499173434141e56ef1d25f416f2f5707a7c431462b24638b30e4cff668eb2b610028bfaff2be1a910e2da0be90d0a8f8583bceb9d70006048fafff9b50a7a7adcfd74050214cda1b9433fb43ff84e3aab6e2756c437f9c72677fb7a3897b566ae006fdb553fa1f2a2d0b4cce733cb9590433d6813522b16e9db2173a58e4bcaea7364b2a410ba3b497946b8354436b36b51cf41e4ead546ea6e0434895375ccb17bec7e6100def3c798623305e3bde40c330bc212eb2a37209efcc5dd23bc28e0fddc535c328d97abecc9fba594cc5b6a957df4c8ffa3554a419a966a7d7522a71d2380cc112ff4370160fa8ee47f429587d17f09bf124d723699f4d1743af3e63c540fdd386561ff2896754e1a9bfc8dbdd64e28bcb81dfcaa5cc1877214dbe5a00228450964ba54afaca6f3ebf02d833d35bc5e45aa020758b4baa3d6e8a96aa514596a150a02f1be7f1ef6e5d539f61024406f5775519521d6cc7c9950525f5fa4aada04ed39a11be374a6c61c5e56b99bfcc18cf3844790a53d75fbd6e84fb2bdf573371cc3efd9623d338eb44f519257599dbc7b577fa4144e6a6e6aa4f4434628e23b0798e2031fcdc5c2a2b737061d163d4e81662dd06c3b86a540acf39c68960c1a7822fd4379938ac37b11e940096756ff778aeb234d4a59ae01fd8d83a3a64c3f7f199596e90012e876866389b6d5da0737e3ed987bb8b480526e0e8ebefa03158ae95c27961ee3fd5eb392866d6a95728406a392a80ce3b22b153dd0e5b0d92a7516a3d869e11c02a14c6d7992956aafc2925876a4ec37e7021baf2f1a4f29231f3907049791f551a95c9df8fbee2e89a97e9454868a43994240195e19d8b504434dc9619f3394aa0ecd6f8d6e4ebaaced7a336f03cded2128c8f19a33ad71268a7bdcd32887a8fa0d72f3d21ac157c394647eea250c62d3990d621e94379c1ee0b1f5d14bf78f536e3324f2c9924f46e6c0d9c967651a28a8ab8916ed0d8f0d7135a36b344163aa853d266c8382e1a58d76c2df9149ca1cd1c23003925edc110a769eac5d72cda6bdb4cd4590283039c5c5d674e57e313e3348bf7b6e234600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001133a774a19ab61b8109f64814c51f34780235fc7fd842509d94be8a4d2a68ee83355bafa976cca4b782e3bae3d9491f279df8ae93f4a2c1b3945a22c7410a8ba26144697e233251cbd001833b4ff9c092b52a5e2dfafc869d22730ec1b183c1d1bb04044c661d74554fef5f83f32e7648e82a77e7a15a971608dafc22d60ec3636b7382e0aa19b435ab531f1a6090f7c45bd8d11b014fe832464d6bed538dd312c9623b104da38f6799ab754ce8c39b5a7d83f126d1f27d9a3b08111dba03a422f7c397c1ed31393314f5857c8ae4e0af15701a12f60f6faa3fea6b2ef5bc94029f6fa63659d6da706c1645eeae20ddce0b244fb9bee14173af2e31b226607d522c9045498d573a52b887db4c342e20ef2961a2837bd158ff054c033f73ae6931b9be59407de6536533ff0e414ea4500b9dfe4d4e090b7077d257df5e05b52e1200eb020a2be2dc001fa7c1bcf8a07b2a950d809e29eee449310ca02bb28c9bf0b36900480c46fe47dbdf8fdddfb85778d0b04ee35554e178ba05057c07420371d8ede1aeec5815daa129f8589ec50b4c38ae0ae88608075ab34b621e3644bd3321bd871b27f6e5fd7e378bcafc6f5175c8d04e5e246efb882fdf1abc4cb1b93363735a35595151b34e047f8e4c7673734dad13558ee078841673efe6223ba26177e1db765a9cfe132cabee8141f26a9554c8bce64f153286328811a1b97ceb522a2b0e7e95ea5247188b6c05063a52007110f5a4485de2a2c613a971c7f418c138d96a4a8209a27d0dd78d8a9c868e3e765da3629738e76d9ef1f071981bdf13bbb8144d1f3f33c6d2d55c2595efb92a12475950f44e843d5930d7461f3eb3e04447ebb2e0c0cc392d2aa3da6a1046d81222366fa0810d7c39a23789e0c14c32aa9865819c3c02e21e2accbbedae9dc9c9be7f92724a4e4c72a7f91e9c39832155679a7e63c3fd1de1d53344125162385aab102e2285436d202b15b163c67cf154f9fb880d2c0e6a96d5ffaba46914ea837bce9a7d04d25184ceb1290d1f8f72ab060477f2d3f195692a00545b96eb17a0edc12617cabf680e045da6f2e070a2a8e1e9a841dc4814f22dfe5a360d68926d017943dc4889de053666fd419dcd21571e1657be23b7eb0dd201a5c9f2976fb768167cb88707db8d9ca7d2be6232f3bbb8144d1f3f33c6d2d55c2595efb92a12475950f44e843d5930d7461f3eb3e04447ebb2e0c0cc392d2aa3da6a1046d81222366fa0810d7c39a23789e0c14c32aa9865819c3c02e21e2accbbedae9dc9c9be7f92724a4e4c72a7f91e9c39832155679a7e63c3fd1de1d53344125162385aab102e2285436d202b15b163c67cf154f9fb880d2c0e6a96d5ffaba46914ea837bce9a7d04d25184ceb1290d1f8f72ab060477f2d3f195692a00545b96eb17a0edc12617cabf680e045da6f2e070a2a8e1e9a841dc4814f22dfe5a360d68926d017943dc4889de053666fd419dcd21571e1657be23b7eb0dd201a5c9f2976fb768167cb88707db8d9ca7d2be6232f286fce36c7c6dcd354f645d87fd9dc5a5263fc02d1038a65afc7a75c3bff73763c45ae4868a6aa3509ead71f15fb75699d7ae17f13dc248de26c8da6687adeda23500dfb71972b65effbfc64e970bf0af2f850e628644348aaf32e368c725bc32708dddaf0a355dd8d56733e344629709d81d66a333624a6716db87e609b78862361b64dae7e512dbcdd173d2457cc67766e5bee3bb3835c089c11f69494135838e121bda4be2151157ea3e6b2aab629c6187ca7e01ff0f7a2d6a67dd12eee680bba83ec51b371ba634a2b0e62f1486240166ac739a6a2eccd207ad851377bd8043ebf3397fa8c728f45703b7caaa909e0d27036bcf9f98eddb2a187130309870409ae2f87c7368549686786a98175ac8c817825a11200d132276a2842980b550ce7e97ae590c12eda640bdea2f2501459f94dfc3a5ad39eeacb0ce72bdfce162c8f4e10fcb5bc91a12bfa3add4591e54b9bf26d809d826d3ca67b9728eec047255a9e23f44c34a9b3dd5145dc06083082b757d448e88312eb9887154fc66d32344023cdc6a1f7c6bb0dbdc296b5649aff30e50f19322488d79f8c47378e30ca1cb173dca6b5ffed68beb5a2b5be612609907a0ecb87a902de801bb536e9a8a327583a52e1113697e0a9b1e3f3c31486a5379712ded750e9ecd47f600bae62b418a7c5ad1eeec9681f564e1c0c3ceb797d0f01e92a75a831ac58b18cf4519d4e3025e96e987bbe517e6e7e45998e0925a2ba6bedbaf663a2772b3235e15b1452295861febdb13e884270cc249cd5017cc24c2d298a8c79d89d8046a15ddc4df935e09ee0e9f409062f0884b5facb714555472635795f44356b684717b8e949bf19d06026e54eeb1af4d37141ea9131f646f67e8d4de86bd14a1fb5686849a2080e21798416f284a1fdd6e2034fd2ccee9e48c973d3c2982b67c301401fcb6668252330e81efff4fef97bd85a4e63ea2cd7f49937046c4c0192901603b3e2f294000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010d6530f64db33846ee66c26f14fe0fd764653940ef391d5f5f33f9e0c7d8bee73e40b4609cb98c148af74c0085b958dcb1d412305272fb43559ed5afbb76898a1ac9d7841bf5d7d05894d548f8e5b9c708744e1845af51b139b6674756f6958b1b16f38f66591a290e9b9ef65c524c5ae648d00fb662dbfe2fc369302795d75d24db59828dcc1a81607af7b3bfe1485de9648ef36b890ca8832e7cf6d93b90390ffa786ed78359aa8ec7a920045a70e6ae4611b9455dc55a2616dba1e0a2ebf3236defffc72875ba3bd325d1bfca62b20bc4870f6ab4d3b4aa0b38951cbd4d43077e05f704ffb39ced7c78cfc5ac42996f389662be177ff8fe2d86d2a4319697211fd64f283b5ecd706e46d1f7719ac52a41b3a6e76077af9a5489b5ab816e8231fec00a26a7b503258d776d41550f518a1f2775700a819b46fd6a46fbc3415f3278f0dbd68db99b9fb663123d9117becf31ba242b7797160c4535662220da8a072f55a9c9477841f104b63ca094ceb1d74b22568d62b26f33c77eecebe7e55d0f74ed16a52d2f9cbec062d4c0b01beaa02380f8c53cc97a790243603e477dea0035c975fc17c020c335b56d790329e15dadcb9f9c1dad981c03338069e7e97b031580908d5081af7cd07aefcc4300f3270e517eb86516be3d54c68ce62208b131a6403e766c4895df1e8f45626e2058a625a2ea1049ab67ee922ccb050886f535c06b08b8a08eae2054ec9919a7143c46d44715a5c5111d5f42fb326270800b2972078a38b52b01fa2a6b85c217e21e18b20e1159d155e0f60860260b104c583ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f620591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f620591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f11d68caa2862c78883eaee78094d9fb69b4c1aed67ae908a1a76c75ec489012536bc066bad4f192cbdf19e4a06169f22f64d1f342a06c9e1b7b20cb69f53d57912aac1a59c78a2b8a13ff2c356ff5ddb259d2538cc45ce530648a90a8728eaaf09bbdf8fe995ac146b6973388bc2ed59adf49fb0089ffd8ad272064a6e75e15708283f8b0e460d52c58913fad78e1fc4cce8aa7552f29062c225dd92e0b0220d0905d69e666e3b2a0d6d173f142cef7678532cc741da81bb8790348d2c293b4d1c0c545aa2bdb7106c3d18e0e089a52c307d2b53c1fd744562f39fadedfb16f52539ce1ab71bf03b306a3c65323082b11c9d2833d618dd553afeba6647d312752d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd62dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a2caeb7807c1dead5d1c662b55553c90de9bc150c9e29a6158b6474c7766da90f0818bd7372880ed9f4866288b3a4faf8aa3496432b0a99467ec41ef0a0cce8471b7eb1b03b2495bedad51ec49fb3026e615d58d5d5589a3e786dc083b44e142e3f881a04691b3abed6a4ee7d6e267383a04b7313dff32acaa8364ed8f23649332db440267a9bd1688c896e542803f8483ad70d72b4284e6d66e13605bde462a5124bbfd985642e97737691abd7fc07b7e76f8b895524aaae324bfae7421b9d5d1ecdca360517b11deb43d1b505cb984c70874c0706c8dc87f32ebe838006452a3c8943c0a39158f51e40680a874299163668bbd926f545d823fec0430e33f3fa2c2b8b5b8fe96d1aac380ba1f2cb0f5bf1410e49dc5a16bf18fbcf26d6d039a1072eb60535474aa2f2f13e18ecf985b3f33229a46462339af7b2cbcae7898d990f74b0e5df43d8781959bec0dea5d93324a8746805e56f0326503eb5df8125113b7c55d0dcdc793010395c95d0383e62f330a66e10312e1eb3ea52b6a85e438b0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000138ad415ec9c18fe54e4e4168eb6ea05cf06ad84343dfeafd40250d8f04e815761873dee48cfd8b70817d00adffbdc1b4b8827295e52c3577a70caf0d4600731e105e0d0f3e3c8c9e1694bc207ae0c4b8c9978814014c6af662ccf55ef7179b4b023e2d4e55079082b1953528c231713f47fc1df8755f64677109c4ab52ee8bc33a393d84fb9269ec5cf4b76050b5d76a62b3be27491c96037a0169480bbd07741e06de6e9396f55ac583fa13a442065d42b74fdfcc7db22f3f725238cdabab633ea2a54ea7922641e36722f16a7e723b75a7101df5d26fd9bf2b71f2c9352b173bb1344411f1518793a21c8585730f74fef859f08ccc74f26bda0e9cf70560c734fbbfe1fa7f08d0130e267b191065a0d3d43b57fe1add6b4293b5ced99d01c52178f2aeb9bbe3a50389c048a7ed740d43c0d467b3489555a0ceb2e35c9a78f434fdc36476b89cfc19544e611924662e5999319d28979b158296c95fba8a201e13af320705bebd6d354b9340bf9411e15c8d2578d5045720f2dd181aec5325860b2e0c0de52ac4cddbf033d7e292c90a92dcc810b01022a2d01a1904ff32322c047caa7ebc1a2aefa605e46a57207cc16af48487b14a546fc4eb5ddba8fd3539281d11304e8f73d908f9afe360b96000ad83eaee1ee0e8401dfacb13c510d8f1193409c8de3ac84a395423df4ecd699de9f0cacbc8c3f116e63d7406f22a320f3f9ac29e6ed7b983a51a753fc3319d27dab8f1c6701dba542171124f06374de010149ce710066a3b27e340ae613a1641c740e23880a2bf029e25e97567b33a4200000000000000a0178d37c6a861c42307fd1549c9037283e75570d8b1037889376749420f47d1d718ae0469789f296e742dd05ad8db93e9f4b216e00e0d4b26fd8de54624d8d4b705b33f0767d5394a3d8b5937922b8272e2164d0c3ec032a54991fed5147590301ef4c93044996e3eb128019e80f32ffa63124f5fd1e44a319e88db0d1270b1fb2c4e51881c65b83575da1a2e932a889a128e531fc7fa307185d754820eac8a3b36be8fdf09882c44683178296abce3ae06e70a1f63691ec9cb82c0586905ed4a0e65927e783067f05b692fd4cd11862349d0a46a9c9c5fcb023a2c4f3fb8f85d164275b9343e3f98934a2b01460d2c49fb57f80174081d0be5e0ad92e72d49ce0b52f378e2c8aa9af533baf9303f5ce2c3dbdbde6c8c82493a93a31108963cfe2329b0139eb03ab05f0d1becce05b894b798584676ef9e507d48c148a24068a71f78dfdfa7efc48f370b104c40ded54b6cd86c460507ee313f1d27bcdba215c7052f2858047ee2f9b7a84a89d23fdd21d85030260b9c8ea5a8fdb2254b442c6404656bb4fd3cf92de34d28fb85ecd15584451f58eafca0616699caa6579b24bf2038ff34b6910c04729a0fa522d7462d76cb4786a59d55dbd59a5bc37e7724231b46b80f1b687ccbc2b5856f70de05b4daf3c08c874dd0ab2c8707a0199982b60961502891062abd2bfdd566a240acb86a34dbdf8956ac2bbb93d2420d4cbf7527e7aede3c56c24c3ae168fcf037e10117b1bd68787c4dd88b72480c3c5e260d13119bb099655eb32676c8dffe0b449b15b5fc2f0877a9e5ca8835a5e8f312df3670135f7ca5a11a5e66647d7cb6fa3f6c6d623088e0663d4689579a3bec38a52e37f4d82fc9066e904cf6589667b82dfb01d33791110fb53abeb334eafa098729c56acaa91271b3afd566ac50ff6137a8977aabc5a0e667f1fcd89ba3fcf7f92a9d7c69d049233edc537ddf568fbd4da3286a9fdf89846c212ce7cc3b7090b32439226d9cc68edf215406ce8a9fb521bbe987e961db0120acf7e71b665fa411006ee5ca0fa818a9cd5f5407887efd4b893f1482aec97bb63b22f2c6c0869e1a16a6d84e2f29900849fcba78ea2ceceaed24506aad357fd3f8755120adfd5efd03263475a99ff611e8f66691e145220df7bd69a0c303d2b8d2d41d30a621f626006ee5ca0fa818a9cd5f5407887efd4b893f1482aec97bb63b22f2c6c0869e1a2439226d9cc68edf215406ce8a9fb521bbe987e961db0120acf7e71b665fa41129c3aacb3d6c85e65a68156719d012c92ff0101ac9f55799d5eca92ba2ef0d853578231026003eccfee04bb58e3a97db5f1954f8d367c87e7d10c4a07d39f1962c053b44289e3bf31e1a24ed55d82f5c183903249123ff04d36b1674385a929438a2ccf383d06b95d09935e8bd4683114f36324388cd76edaddcf45aee8baf9817157ed197ba39d419b6ffd111bc88ec00e626b7fbedf31b1a12880c440fec3203ec04efb569545310efda76b2ddf133a189ccaa13434f193252dfa790719614266e79e0e6200fcf8ee495d4c8fac88ff8e081a537605031cabefc5939fcb7053e398e56c64e97b95fcec5014a23e9dd6e8eb3c2e29125c0b6890e75ece98b273706d088c495ddbed8dacaa42a575fabee60d1de15f558be1882da902e0403093c2fd8e0b7d31c4e84e909155a66a836371facdd87c7660009230763e037a1db2e37f4d82fc9066e904cf6589667b82dfb01d33791110fb53abeb334eafa09873670135f7ca5a11a5e66647d7cb6fa3f6c6d623088e0663d4689579a3bec38a5059c2af2c4869c1e5dd35a194d8371f3dbab3706436b30544bda6d8d5d180f0e37ce19edaad178f45d82c9fc49ee900e7316c5f5a80e184ebd9658cc39d6c5913140b2e42f6c6ce673257c294f402fa95e16fb4b0d7c69ad11b38048d6d0ca22336755537d023aa27b8ddeacc3de82c409583a1d0c750c456f948a865015780a1bab5518b9f420ba01d0d3331c89d026c92caad9b5f5ca29ce038d28ce1daccb1a1a71410df0474564b8beedf4dbfcb258039299712866b48e4acd56493092240bc3b6f6d7cc87088c0a6a68f79936fea7d9d6564242c73259f518583d34628e18e45140d4a2208062a8f06d1b857b6e9d4ec615ce61b5a48e25c189e9b1df9d3578231026003eccfee04bb58e3a97db5f1954f8d367c87e7d10c4a07d39f19629c3aacb3d6c85e65a68156719d012c92ff0101ac9f55799d5eca92ba2ef0d852c053b44289e3bf31e1a24ed55d82f5c183903249123ff04d36b1674385a929438a2ccf383d06b95d09935e8bd4683114f36324388cd76edaddcf45aee8baf9813119bb099655eb32676c8dffe0b449b15b5fc2f0877a9e5ca8835a5e8f312df27e7aede3c56c24c3ae168fcf037e10117b1bd68787c4dd88b72480c3c5e260d3670135f7ca5a11a5e66647d7cb6fa3f6c6d623088e0663d4689579a3bec38a52e37f4d82fc9066e904cf6589667b82dfb01d33791110fb53abeb334eafa09872329b0139eb03ab05f0d1becce05b894b798584676ef9e507d48c148a24068a70b52f378e2c8aa9af533baf9303f5ce2c3dbdbde6c8c82493a93a31108963cfe1f78dfdfa7efc48f370b104c40ded54b6cd86c460507ee313f1d27bcdba215c7052f2858047ee2f9b7a84a89d23fdd21d85030260b9c8ea5a8fdb2254b442c64217776f02f6e47a8386ab7e38df17add4349e042416c3b51e69c1c6ccbb58546281a121e6ee8ce3230ca15123c4b9b1df2475835435d8bd1bba2ebe291c50fa70961502891062abd2bfdd566a240acb86a34dbdf8956ac2bbb93d2420d4cbf751b46b80f1b687ccbc2b5856f70de05b4daf3c08c874dd0ab2c8707a0199982b6105da07aab1b77538ff4f2aaef494aab568c665854951a998e935c2973501b40280c8d23df253bb9c89d80ca725215f9b8e4fb8b99b071e8f3917810a8ee83a018e45140d4a2208062a8f06d1b857b6e9d4ec615ce61b5a48e25c189e9b1df9d0bc3b6f6d7cc87088c0a6a68f79936fea7d9d6564242c73259f518583d34628e18b852ff16facbb38e81aeaa776b6d5ef1d85b05265790561b418209d6e76d8d363bd31dd7bd8aa5d751f5cf538b157ad206783a5afc060e09616fd03c7c712838a2ccf383d06b95d09935e8bd4683114f36324388cd76edaddcf45aee8baf982c053b44289e3bf31e1a24ed55d82f5c183903249123ff04d36b1674385a92942a9d7c69d049233edc537ddf568fbd4da3286a9fdf89846c212ce7cc3b7090b329c56acaa91271b3afd566ac50ff6137a8977aabc5a0e667f1fcd89ba3fcf7f92439226d9cc68edf215406ce8a9fb521bbe987e961db0120acf7e71b665fa411006ee5ca0fa818a9cd5f5407887efd4b893f1482aec97bb63b22f2c6c0869e1a03ec04efb569545310efda76b2ddf133a189ccaa13434f193252dfa79071961417157ed197ba39d419b6ffd111bc88ec00e626b7fbedf31b1a12880c440fec32266e79e0e6200fcf8ee495d4c8fac88ff8e081a537605031cabefc5939fcb7053e398e56c64e97b95fcec5014a23e9dd6e8eb3c2e29125c0b6890e75ece98b270525d1fcd1b82308b4b3386cc7069a57833a7a19d5913357ca1ba8e7196cf51a0e089e3a334969dcdfc1f2e1e7601906e8b098df27544eb92ec4ed31459e666e3e398e56c64e97b95fcec5014a23e9dd6e8eb3c2e29125c0b6890e75ece98b27266e79e0e6200fcf8ee495d4c8fac88ff8e081a537605031cabefc5939fcb7050617bd2704cb272ac64d5299ab8a21e18d7996ff60ce36b5d591ae6261769aea37dcfaa12c5906507ca3cd582598052ec720809ef584c2fad3ec51ce9df59c571ef4c93044996e3eb128019e80f32ffa63124f5fd1e44a319e88db0d1270b1fb05b33f0767d5394a3d8b5937922b8272e2164d0c3ec032a54991fed5147590300b17c83c813c79924a7fdb4f5d5774971d7f2483aad16edcddfcab8920307cfe298d7743df472d0e07ea05599c30f7110cca506620abf63c77c59e7fe1c8cd0934cfd44515a28bc77f3630a5ab2047b2c90c78fde1b0a84d010e0647e9b449d12fd833f296cc1bc16f7d2a3067fe6aba9e62bc6a3840cda5803a04873d31f85b03ec04efb569545310efda76b2ddf133a189ccaa13434f193252dfa79071961417157ed197ba39d419b6ffd111bc88ec00e626b7fbedf31b1a12880c440fec32266e79e0e6200fcf8ee495d4c8fac88ff8e081a537605031cabefc5939fcb7053e398e56c64e97b95fcec5014a23e9dd6e8eb3c2e29125c0b6890e75ece98b2716a6d84e2f29900849fcba78ea2ceceaed24506aad357fd3f8755120adfd5efd03263475a99ff611e8f66691e145220df7bd69a0c303d2b8d2d41d30a621f626006ee5ca0fa818a9cd5f5407887efd4b893f1482aec97bb63b22f2c6c0869e1a2439226d9cc68edf215406ce8a9fb521bbe987e961db0120acf7e71b665fa4113d9b542b2e3c8724b2ca03fbfd41f0635b723d3fd7f10598d89400df8318ce050d87be65fdfaaf6e2e466f4277d7d0d2de009dd41b5c61a84db249ec38c19846164275b9343e3f98934a2b01460d2c49fb57f80174081d0be5e0ad92e72d49ce0e65927e783067f05b692fd4cd11862349d0a46a9c9c5fcb023a2c4f3fb8f85d3d9b542b2e3c8724b2ca03fbfd41f0635b723d3fd7f10598d89400df8318ce050d87be65fdfaaf6e2e466f4277d7d0d2de009dd41b5c61a84db249ec38c19846164275b9343e3f98934a2b01460d2c49fb57f80174081d0be5e0ad92e72d49ce0e65927e783067f05b692fd4cd11862349d0a46a9c9c5fcb023a2c4f3fb8f85d39258cb3222aa49e434eeab81c190b2e8e0a7bbe66f1a237a0be182bea4dc05518ebf1b17ba5ad212a8baaa017569883ee56588ecb49bc401a777c3a73e7412b343f9f5dd0698e7a878f1f8ac7ab8250134a212f44362db3205c0c913651aae6306868d9dc05190e67243b4b4b73301d54251438d5bb483f60ebfe3df09497460525d1fcd1b82308b4b3386cc7069a57833a7a19d5913357ca1ba8e7196cf51a0e089e3a334969dcdfc1f2e1e7601906e8b098df27544eb92ec4ed31459e666e3e398e56c64e97b95fcec5014a23e9dd6e8eb3c2e29125c0b6890e75ece98b27266e79e0e6200fcf8ee495d4c8fac88ff8e081a537605031cabefc5939fcb70503ec04efb569545310efda76b2ddf133a189ccaa13434f193252dfa79071961417157ed197ba39d419b6ffd111bc88ec00e626b7fbedf31b1a12880c440fec32266e79e0e6200fcf8ee495d4c8fac88ff8e081a537605031cabefc5939fcb7053e398e56c64e97b95fcec5014a23e9dd6e8eb3c2e29125c0b6890e75ece98b2716a6d84e2f29900849fcba78ea2ceceaed24506aad357fd3f8755120adfd5efd03263475a99ff611e8f66691e145220df7bd69a0c303d2b8d2d41d30a621f626006ee5ca0fa818a9cd5f5407887efd4b893f1482aec97bb63b22f2c6c0869e1a2439226d9cc68edf215406ce8a9fb521bbe987e961db0120acf7e71b665fa411363bd31dd7bd8aa5d751f5cf538b157ad206783a5afc060e09616fd03c7c712818b852ff16facbb38e81aeaa776b6d5ef1d85b05265790561b418209d6e76d8d38a2ccf383d06b95d09935e8bd4683114f36324388cd76edaddcf45aee8baf982c053b44289e3bf31e1a24ed55d82f5c183903249123ff04d36b1674385a9294280c8d23df253bb9c89d80ca725215f9b8e4fb8b99b071e8f3917810a8ee83a0105da07aab1b77538ff4f2aaef494aab568c665854951a998e935c2973501b4018e45140d4a2208062a8f06d1b857b6e9d4ec615ce61b5a48e25c189e9b1df9d0bc3b6f6d7cc87088c0a6a68f79936fea7d9d6564242c73259f518583d34628e3450f250d72e23b9743a881ef4daf06db23a88385d23d1e78e741dc2281fdc453edc874c55d3277582883a6d0a883a69f995dce0b7f3c000938b5115bb06fd3e226708b400f0c78e35c5638064fe13b2444d054cad6b0071805f08c34cc0701a0240ff83ab7ddffab8edf755ae209ebb00db971f63397c6567bbd11eda25d2112913be03f51417cbe050548fe0bd3cdf06727249507a7331076dad4b8b4fb68508717783aca2da5ab84eb2061a5dc302ca8cc2d0ec1bdb3a48d3a7f6f973d63616029ef2a2726b609215fd287a88027866de7c220c2103daa199682a7b9fac9c0ea5694509fc3c285c9d5dad9896aff4de4a204a048378fc468171b7ab46958f18ebf1b17ba5ad212a8baaa017569883ee56588ecb49bc401a777c3a73e7412b39258cb3222aa49e434eeab81c190b2e8e0a7bbe66f1a237a0be182bea4dc055343f9f5dd0698e7a878f1f8ac7ab8250134a212f44362db3205c0c913651aae6306868d9dc05190e67243b4b4b73301d54251438d5bb483f60ebfe3df094974618ebf1b17ba5ad212a8baaa017569883ee56588ecb49bc401a777c3a73e7412b39258cb3222aa49e434eeab81c190b2e8e0a7bbe66f1a237a0be182bea4dc055343f9f5dd0698e7a878f1f8ac7ab8250134a212f44362db3205c0c913651aae6306868d9dc05190e67243b4b4b73301d54251438d5bb483f60ebfe3df0949746298d7743df472d0e07ea05599c30f7110cca506620abf63c77c59e7fe1c8cd090b17c83c813c79924a7fdb4f5d5774971d7f2483aad16edcddfcab8920307cfe34cfd44515a28bc77f3630a5ab2047b2c90c78fde1b0a84d010e0647e9b449d12fd833f296cc1bc16f7d2a3067fe6aba9e62bc6a3840cda5803a04873d31f85b334a7441d46dbe2329e310d4a3b55090342842bafda92c4b6cfa9884535f986e09604a2edc006ac2fc99ee2bd430dd0c2b7a2781db2442aa213740f25b69b8a60ea5694509fc3c285c9d5dad9896aff4de4a204a048378fc468171b7ab46958f16029ef2a2726b609215fd287a88027866de7c220c2103daa199682a7b9fac9c0617bd2704cb272ac64d5299ab8a21e18d7996ff60ce36b5d591ae6261769aea37dcfaa12c5906507ca3cd582598052ec720809ef584c2fad3ec51ce9df59c571ef4c93044996e3eb128019e80f32ffa63124f5fd1e44a319e88db0d1270b1fb05b33f0767d5394a3d8b5937922b8272e2164d0c3ec032a54991fed51475903000000000000000c8000000000000002c0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000201a8f717f191695bf4ab76675b7a3219d2f27fb20740f7fd1c8b4de4c3b8d3ad1000000000000000100000000000000010000000000000020953ad815a2963d664f0f467b59bd24c8e0fa06059f422523c2c9cc30e63622ef0000000000000001000000000000000000000000000000200ae4da6dd0ba3dba590cdc5b458241d43b05d834be20f06226ed69dfe3f4feff000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000002c0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000203339dbf171cef49d7978b44819e11c800293110002342a85ab135c22da55bb710000000000000001000000000000000100000000000000207bfd1e8b05c7d4db1ddb4abbc4ee4e2047ab1cea71eb4125c60d95dface639b80000000000000001000000000000000000000000000000202d5491c2b0a236a306dd587e3689fdac906752af96e9c92a11015dee02b355260000000000000001000000000000000000000000000000204c549c0a06011a5b940afdd9c949f7c54668b0449c63f74f64a3a00d1cc2a37800000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002c00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb626512000000000000000600000000000000010000000000000001000000000000002044db4d15123ad26a49ff6b38a7a5b0389ec52091267b667b032f706366b283690000000000000001000000000000000100000000000000206ed7f1a6c47a44f2b7011b57308b53c7e5c8addfd07d945a9042a02777a833ae000000000000000100000000000000000000000000000020762ae3247aa8d6ed9a4528261d063545224ee7eb9564b86d08fa8e6b77499d24000000000000000100000000000000000000000000000020d880ce6b358a2b77330b5a0f9481e98d6528b9d0ad6b480d03501c04a93a647f00000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002c00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c8000000000000000600000000000000010000000000000001000000000000002094f870ce086f592f029953d963ae0855451bf25718fb85c02b750b6da3bf470f000000000000000100000000000000010000000000000020083bb08400cc00f8741cc5a61d5cd377218c13bf2ad0c114737eb149440507640000000000000001000000000000000000000000000000209f8adadaa16ce5cac8b348c7f9490ed007a31dec8fabfc34360ee0a7a7567dad0000000000000001000000000000000000000000000000205fd7cad6c08ee7d72dab067a907a496543f8562d1aff5010789f4fe3432c874200000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e1000000000000002c0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020ca7925636d4cfc29c14d10e1029315edd7f1add3dbc87eb29ba115df22cd8fed000000000000000100000000000000010000000000000020bc50f558bf1c2801a35e0f3833a1192fa429fc028ec80669603d2c5da81d878f00000000000000010000000000000000000000000000002023ba7ff2b84d2058064e3dd64ff66a518516cb562d103469ed0615bb4c67d3f7000000000000000100000000000000000000000000000020896402e4d3f17887d11d2154920c6bff134c98834a80f987cc702496ef09c196000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000240000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020c24fc0a3e994aa4053143723d1ff953730e09d80308264f57f5e25286c7dcad00000000000000001000000000000000100000000000000204f58496d9785dbfafadd8f41e3167831200b5d8065731cf35b12e0f683eb6aba0000000000000001000000000000000000000000000000204cb7b4fa816710180675ddbc955531f8a709d427faf5200cdc6737874e060a55000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000240000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020a92607495561c9eeccd26d9cc9dfab304f5bdec362795340e1d8d93b162ff7f5000000000000000100000000000000010000000000000020056c9a4c4349cd5028c19714d82d2521d603233c99689f9551773f4c5a1bb87400000000000000010000000000000000000000000000002037a9c624bdb25b1ee261b13411e9d6acc0d0e8c738496cff14dc43abe65c9d1f000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002400000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000204be0b5c554d14ed3ecb1a4698c54f322ec73fcaf89c1a0d0f2287a93c2b4d62b0000000000000001000000000000000100000000000000203decfa57715a83c44aa9af101d28b91339338f8855c0070ab1a2c91f7f429ec30000000000000001000000000000000000000000000000205d6c3e37441823be85bdf046e1379fc5587812c68dc08d8750f2f6bd76bf08a100000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002400000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020b9bcab614083e91d90644c8bf147843d720ff77d9f63f4ec3cf28e93fd482b18000000000000000100000000000000010000000000000020c197f4a8824867039691d253f3aabc0aeadbd548577f61e901b469ba8e81b348000000000000000100000000000000000000000000000020580e91949e50afae5b838c9689875cb0378f05c69de9eb4bbdfa87dc8eff62000000000000000001000000000000000100000000000000209576be5e5da6b2eb368bfdcbab0970717630f25877a6b9664c345d452e1514d800000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000240000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000201dd42fc16aa12a31fa90168725c897d861f7e36b8c27441380a55b1025146bcc000000000000000100000000000000010000000000000020a80602202c5ebf9b0347c9106ef91bf2c358dd05edffa7aa90f9b9bd47fd10500000000000000001000000000000000000000000000000207f46e4b2eb51c53f78fb1f6b5310d84183eb4d3898e8ddf3b3eb940fc2ad8f4400000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000080000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000001000000000000002042339e5d10b0a87ad4fe4a5593bdc05cee398a4a18ea7f97778781f69ff9d23900000000000000010000000000000001000000000000002014aa8e29f77d6a5fb881904df608256632c6604fbfb5192158e0932c0baf514500000000000000010000000000000001000000000000002093c99af014a3514bdcc84cdf0e72d42f20038a64dcba4071efdcce4cf6a76949000000000000000100000000000000000000000000000020a07353c5029eac2f5fb14b7aaa839b9ff2b01dd6feeb51c341820462ab766306000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000080000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020993982938287a52eaa295a8259c93c48d22125e67d985917441309ed46f8d051000000000000000100000000000000010000000000000020ff5c9eed6e4075d1dc3dad1312c9f0e4bcc23270345f8eea8c11a5b3619b24aa000000000000000100000000000000010000000000000020e23783733f2d245e0738ed8503ab8c6aef3aa526888e6b8dc670bfe0e224b8ff000000000000000100000000000000000000000000000020a45ee5473875579efd498bb9c2b6715752587f3d8b2592b454ecfaa7a4333af7000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000800000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb626512000000000000000600000000000000010000000000000001000000000000002019898700bf26a87ccaa60ae2e22476343b05ba5277b4aabd5310269c5066b3a000000000000000010000000000000001000000000000002025a5c0035306c82abd392465404dd2a5af6ad78f6c662e811fb28ddd99a85857000000000000000100000000000000010000000000000020f0fde6ec22a87dce3563e4a3872da6fb65e744b1d395bcb2f83911d9ac21f1af00000000000000010000000000000000000000000000002017851b1e9a70cbcc32eb47f7ecfae668e5855348fa541f9cd9cc78455c2f52ed00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000800000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020efcb1dbccdbb697cca27430b84af3a0549dce6cb8b08308384060acd9584df25000000000000000100000000000000010000000000000020f7920379a56fc6ea52b03411a80201764cd5c9b889cce60510d3d289564f02a1000000000000000100000000000000010000000000000020b9f47dcff780b5d8194c00a89264a3eb8f7603479d71eafc29a9074cf428d552000000000000000100000000000000000000000000000020dab612d00eddc0f70596df141a7d854a89a2e881b62296a42c239a68553568e5000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000080000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000209b2ceda6345229ee35c8f1d1ec5f70384bb152c4b78dd25b3534efa444f07101000000000000000100000000000000010000000000000020f9459a5f7f85273cda341000cf6866270e90827995d041cbba1ac42de920723c00000000000000010000000000000001000000000000002045bb9d506f74a19123d41a442d1de0fdfbaca183dfb2af0cc5027621a991b2b2000000000000000100000000000000000000000000000020dd7d0f921f70b1c400e2053b21a89931a0d729e3164966f8cdf0a44bdd836801000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb81659000000000000003d0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020c04f1fa9f3f965d8bece2549a2d58325a1b2514fb4e532926bff9d2574b86fb5000000000000000100000000000000010000000000000020fa95b871dc336a316326fbcb301108e4f714f2bd6e602d361ed24b034855b7490000000000000001000000000000000000000000000000206d638b48c620681d9ca1f3ca0b9269a4c587a473d6a7f7a9b87cd38c6b341a88000000000000000100000000000000000000000000000020228ad46578c60a8ae293c5203eb65e05045bb3651cc7f9dca5fdd52a9c021f9f000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000003d0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e000000000000000600000000000000010000000000000000000000000000002066ff1ec38e93c279868838ceb073cc1099f22a587203cee6c2d30bd5308ac995000000000000000100000000000000010000000000000020be85ed65a5a68087be9d2be76ba091a1b670d33ace117026a041765c69a90fda00000000000000010000000000000000000000000000002066f2ddc800c59423dc3e6cb06ec895471d3ffafc6e3140cc34d397e66f29e633000000000000000100000000000000000000000000000020d3fe0ac3f0592a168395476738f2d379d0581dd02807271399e479432d094ace000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003d00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb626512000000000000000600000000000000010000000000000000000000000000002085b03c835a69668615c33d712d17ec16cc032859deb4ff24b8cf4e7e3a7eaaed00000000000000010000000000000001000000000000002008aa7b0ca169d528158edb0c24743f0b68eacab6edcaa15ac970d1c5072772c3000000000000000100000000000000000000000000000020a72b7e194afd50ecaf1e33d2066f71486bac78d487b7fa0426a92e4a9ea310c9000000000000000100000000000000000000000000000020762aa6b8eaa622a60e5d82075304926867e1bfd72e6c9bc93d7ed5c083f0de9d00000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003d00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c8000000000000000600000000000000010000000000000000000000000000002071fce3dab75e3a384e0b67c215f8bd36207acdbf78d8e365c288e5405edde450000000000000000100000000000000010000000000000020fc02de609e9efa8ac9b0ee2de75181f281895b4d78139f99a656f6b2a5a9162a0000000000000001000000000000000000000000000000206889701554ee61bb802ca84af6486ce5e81ccd8180328c57ab9d2341a8808cc900000000000000010000000000000000000000000000002000a85bf2f2d421229c03bce75acc24a6f0df564cb379ef0e908c83449ac1caf40000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e1000000000000003d0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020d2c0aabf9e7e7d77e39ff416427987107c746e98e5f0cbb5acf12b7b3b27b5a30000000000000001000000000000000100000000000000200b795fddac1038a433c2c495ff393bde6b796f79e6ab17e827c1139be158bd2f000000000000000100000000000000000000000000000020a85d79547366d8e08f2cd889f73768075efa9a82bdcfd8eca2a0d03ec1c600af000000000000000100000000000000000000000000000020e275f0cac8a965b7c2d52bccf2fc2a08ba897eccce8ac56d94090bd934b9477a0000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c00000000000000000f0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000209c582254bc38500951591dd249dc1333b27277b5c820ad0c401b7ceb1a299208000000000000000100000000000000000000000000000020b173e65d659cc1f471d2922de643652b703159ad657dfddbb87c03928e9ae2e9000000000000000100000000000000000000000000000020266533c386eaecf62505c82a33fc748ed3dfb0dd1f1c3b6ef1c350f30907840f000000000000000100000000000000000000000000000020a07353c5029eac2f5fb14b7aaa839b9ff2b01dd6feeb51c341820462ab766306000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000000f0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020591ea4747567d0b1f0b4e49e5c8df791e4cfab5aa15e02699e5bee9b591b4f340000000000000001000000000000000000000000000000200ec2f1acb3815310ab25abd524869226b606f750b7f8740504796e125d37e5a70000000000000001000000000000000000000000000000203e730a9762014a0bc462be90ae606e5d47c72eb18f70e7e52e6fdbf0e6f0ca51000000000000000100000000000000000000000000000020a45ee5473875579efd498bb9c2b6715752587f3d8b2592b454ecfaa7a4333af7000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000f00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020ef837ecb955c6a90fa409bb8a82719e8bd8ae7ec82823de48ba4ced0636873410000000000000001000000000000000000000000000000203518b558a475690b7827b1de96f55519d9245f9117ab4d6bd433dc371d07a1570000000000000001000000000000000000000000000000200f6629916e8ea9140c1e5fe82516b014e06c6a7ffb9a27dbe8073629cf7bcfd300000000000000010000000000000000000000000000002017851b1e9a70cbcc32eb47f7ecfae668e5855348fa541f9cd9cc78455c2f52ed00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000f00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000000000000000000209a3dd86712db94b71f3c7cea26d8055dda5543945d0d72f6cbf55865591894b3000000000000000100000000000000000000000000000020ec0426330c65734ade67d296a589bad25e2db729a351d7658be53ef6a7fb88f800000000000000010000000000000000000000000000002021e77df31f1eff95861984415a96b4b3e971e343430cde7965c4ffcd12acfcf9000000000000000100000000000000000000000000000020dab612d00eddc0f70596df141a7d854a89a2e881b62296a42c239a68553568e5000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e000000000000000f0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020a7b6a608d0d865607fb8dfa6a0d9215aa284c32e5f42891e25647fce98133aaa000000000000000100000000000000000000000000000020046adb4ccc3450e7cbbdce1e0e6f6b3e5d17259cae89e17246f83d54dd8edd200000000000000001000000000000000000000000000000204b3a8c95985e02c1091d8b74e359262a94d60b3baac08c1afc3d4c34b039a42b000000000000000100000000000000000000000000000020dd7d0f921f70b1c400e2053b21a89931a0d729e3164966f8cdf0a44bdd836801000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000130000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020a51adb0dd5ff6139015f567454f916303ab3f39c830603b281712da0359980d000000000000000010000000000000000000000000000002077c77d7b993f04ae31fa6b6da7dff3c353004c11a049302a478e5dac04d508cf00000000000000010000000000000001000000000000002038c257c4acc7ae148c5c9b4409c82130df8554a30c1e722962697197980c56fb000000000000000100000000000000010000000000000020f158609c6b12d3609bdf1c7797edb538f985fe8ac4171f066b1d7b9c43c7bc3b0000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000130000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020e4c375b6de0dcd2144dc015638119fac2dff51212295bd568d0f822953dbe353000000000000000100000000000000000000000000000020410a9806148029c00be1c6575ce39cab980947f62d7b8c905215b520e160aa17000000000000000100000000000000010000000000000020d42e2ebd255e4349a7739a43dd3c719944636248abdb0bced6a610501e96e1b50000000000000001000000000000000100000000000000204dffb3cd723081a5601c700b71267e003c6301f69868c0143c1c7fb7f95e7282000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001300000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020d5fd1e9ac010c629f9995228fd1ce86410206a754ce5277b31e14511bc4678d00000000000000001000000000000000000000000000000200d8eb352cc26ae30ac8e735bd07c4afc629f8b935a6281b4a5d795206646f134000000000000000100000000000000010000000000000020fe4fd380a7b985c22fbf7e428d0522af491d32b3707fdee9600cc7816056f1200000000000000001000000000000000100000000000000205d9455d420eacea118c8dd606eeb03972280069211e33523e74b32b8a0a96ea70000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001300000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000000000000000000208f172a29c3f7a4928e95a442bc56edefb65be8dfadcec91da6c77898dd047f300000000000000001000000000000000000000000000000208ca5f4e39ff8097b3311dc5c6b8ee0f25e73013b54075212e77ec6bbe41ea8e5000000000000000100000000000000010000000000000020acbb53eff19327fdfe068637b56e56cf2ed3ea11c5ac335cac2a4c9e1b4ba555000000000000000100000000000000010000000000000020770adc9f5a476741bb8349e40e9edfd96156aacd1c6d9e3a586653b654b6aa5b000000000000000100000000000000000000000000000020f66cbef6ba027ee51a683e2c6bfc0ba5a9c25509bcbd67fc8c6ed57fed75d4ad000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000130000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020043e05299a97cdfdad83e9c096b1f11c65ec4a2b99d554ba0940abdbd2e5842f0000000000000001000000000000000000000000000000201cc2cb225f6ceb4dc0af62c3e4cdbff8b47664cb0876a05b70204156dc6ba240000000000000000100000000000000010000000000000020113e52f83563f3c9a8ca73087daed63db6e020f9b1908dae270f2d864860470b0000000000000001000000000000000100000000000000207558d367d7cb8046d18c333db9b72e09bb6459368f028b50b23b205b8ad03c430000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000030000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000206ff0195a134c259fe7543028850c1e5cad27da7360a4eaae4414e0bfdccdba62000000000000000100000000000000000000000000000020bc0e1e4d069a85667d831c6131bf23b47a10f808276f2d639351a2b29c6601f100000000000000010000000000000001000000000000002049b18f4c7c36a3e31f7aea5854ff3a4295357e9b4683efeb0cc263602c4cd838000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000030000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e000000000000000600000000000000010000000000000000000000000000002086459a0212426dc2ac2a376c2d40c3d2b8ccb49ccb264ff41e000e8323be00dc000000000000000100000000000000000000000000000020dd758e7e903cea5d2b8d56cb7ec81903a5d208516bc65446aaab10a4c88881f6000000000000000100000000000000010000000000000020c8ae564fce614307d01ae4e7ca514b4d438c025236d2f7c225df0916122c407a000000000000000100000000000000010000000000000020a5ba1e43e43faaed55a5a360b6818e780f5c7442a5977ec37c50292584a00e03000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000300000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000202970d043e5027eaed94acbe63e1917b6a011fdd08a740ef6c1e0bb3c348c406d000000000000000100000000000000000000000000000020e921a3304310ce0c4ea3ff193bc2b8d3e37939557d88c4c9d8d9aa74dade5fce0000000000000001000000000000000100000000000000202d7e532bdad475f87cde4c2f0d86dfd080e22978cd3c4c8658c88cec2b0257b1000000000000000100000000000000010000000000000020dc0369b2684d24cbf4274ce023a89e3478b29bfaee34efd0a4da1dc660ba45de00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000300000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000000000000000000204a7773cd46d18c41025b8d2593ba8eddbf921c9c7e1ebc7309af39ba3f8340cf0000000000000001000000000000000000000000000000201dedea2ea2a45095babafaaceb602b439a7a8de613dab9659c28452f2b43ba230000000000000001000000000000000100000000000000202fae5685a1fb05d54b1bfdb2cba9f571c9a24db75580e22dffc6988ffc17820d000000000000000100000000000000010000000000000020e40fba18beb7a8bfcd3d0b191d6d10f4e3acec4778b08e3ae3c21ae92483fd86000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000030000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020058deca8926462de969a8f6c7186d43908f874ed995eb7603a319ae7aa8ff440000000000000000100000000000000000000000000000020898c87da14d35ffd206c40c659830a17aafcb7a087947604f6abe545e28b58840000000000000001000000000000000100000000000000206ba2588cc21b5cda24b2aa86f1ea326163ccc1d7e3f79cd11177546b0f9520e80000000000000001000000000000000100000000000000205a4b48d2d5c0deec9a967d4659defb7f8c12de581186bfae2c710f30835d378c000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb81659000000000000001e0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000205b22e826fa41eab497f0d44485ed30b89e70dc3b8991721ecacea7676a1160ba000000000000000100000000000000000000000000000020a99b7e2901520fe9aa438e0b1d9ff1d42abd1e4774fe50a7af9abfdd5aeb49f0000000000000000100000000000000000000000000000020cd05d024922075f0d2191dff6b6b8977913542096c687b1aa6a6880a30f4f1780000000000000001000000000000000000000000000000207a1424d413417eb28a018fd1d76958181366ee57c4d59ae0034a29ddbb1d2b590000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000001e0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000204770899cd3e2cc4095956d615386c336d78390d82891791393ec7efd021b50d20000000000000001000000000000000000000000000000202a2de0868c528815ae4a83f77bed5e4618dd7631755e6f37a518ff031e998dfa000000000000000100000000000000000000000000000020e216681d6f38da8409d5c77334f0f51de756720aaa028880c59d6a832095ad4f000000000000000100000000000000000000000000000020938375cf40ac56222ab4d00edc1add4f0c4d45658ef352f9c39d534a9202dcf7000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001e00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb626512000000000000000600000000000000010000000000000001000000000000002000ffd50a0e09d1a2c7e1ba81e46e042ec77aef694fa7378b10eb2ced2513005b0000000000000001000000000000000000000000000000208aa088e796768de7229e31b34fe788da7fe2fdb8df344b029935b9d2d8dbdf2100000000000000010000000000000000000000000000002053b3233efca5252e2055e75028fefee3391d25eb106840c102b53e90d3d1fdf6000000000000000100000000000000000000000000000020a084e70b3f9ebf137fa0b89422463d8a968230d1e0fbcf139db6e018b78315170000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001e00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020952f485a7107b171858c16e5666bd6fdd98f452291ce9b99a78e8352889a14d2000000000000000100000000000000000000000000000020fe99ab1dcd065f673dbed84d1d54217d2ff636b0b7019ea641b3ceafae0b69d4000000000000000100000000000000000000000000000020b7d7c4fcec9b03c74f701ed9b4eedf7ec3386233c472d6ae64f7cb0ca1f7a448000000000000000100000000000000000000000000000020ce498e000ddc8371c645a265d4b98546295ae06beeb91fa03885ec7c34dce7f9000000000000000100000000000000000000000000000020f66cbef6ba027ee51a683e2c6bfc0ba5a9c25509bcbd67fc8c6ed57fed75d4ad000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e000000000000001e0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000204458dc689a3c9b3f3ea909e7f56b0abdac7a2bbad18f0649bcf794edf6e4ed8d0000000000000001000000000000000000000000000000208404c4d1b9523cf7c9a5ef7c4369fa8ae85b8450e69f5170f221214e928df1140000000000000001000000000000000000000000000000207fe3562c7d01ca88eef4c66c817964ae9239a6df889ab475368bf430de96cdb20000000000000001000000000000000000000000000000205ef7704fa3778b449f726e5d0a98cf0942526fc336765751838fd6cbb761fb270000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000200000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000001000000000000002099c439552bc012b331f78711afcc02ab45f65be8ef9aef37b56c34fe5ec62561000000000000000100000000000000010000000000000020d3a8480b820bd6c782f5a7d8bc820d929996e9b8ab64d37789aa88140ba71654000000000000000100000000000000010000000000000020d80cc5cdbb0ec297cddfda4fd988de76b705f83576117fb5ed10b48a9b959bb0000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000200000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020c5aada7333905262bd985fbc023814f24628710fde74d7d1291fa54ca5cb94ba0000000000000001000000000000000100000000000000200c04f15905ef31c5e7f95badee6ef48214fcec9a48dff3643ba924349c73daaf00000000000000010000000000000001000000000000002072ecff12c730f10ff239ae5d5ec6e0ecd7a93d7c6f58e48faaf9efc69af68a03000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002000000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000201b07870ebb742c3884ed4ecbc4e8996b04e58ac19af265c1cfa8cb933bcc8d7f000000000000000100000000000000010000000000000020730dfd755e8bc4f3764cb6605b45ef36f2bf687e9a26d67efca88040d92455b70000000000000001000000000000000100000000000000209636be1e4b8abd68cb43b0274502fefa81dd44893b457dcd361701b81c119a5b00000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002000000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000100000000000000204ac84588272640a51806311e618175660448384fe988fd740fe2caea700bf8ae000000000000000100000000000000010000000000000020915a39315080ec6ed5cebeeb6b7dad131f8106659b1ee09e93e1bfae78eff704000000000000000100000000000000010000000000000020477f5dc159d908adca707dc48fabcb5e7760807f37a220b1e911898710933d820000000000000001000000000000000100000000000000209576be5e5da6b2eb368bfdcbab0970717630f25877a6b9664c345d452e1514d800000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000200000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020f51957a1ed7316fb19166bc621acef4f5f5368cd4eb556d050dbd81c88fa917b00000000000000010000000000000001000000000000002053d45841276f047a813d87d7cc211dcf1d7057a623db3785c133608ed6d4499b0000000000000001000000000000000100000000000000200df38a45fc387ce7388d7edbd245b965091614cd5a7aa1118bcbb22942e4bb9300000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c00000000000000003f0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020ae475446506dfaa59968c26931bee5eb87090ae33a057924eaef7eefd03110ad00000000000000010000000000000000000000000000002069a16d2b56ba3538a063eb8027cc1a4e3053ce82d49b49dbcb4419a7943fcccd0000000000000001000000000000000000000000000000206d638b48c620681d9ca1f3ca0b9269a4c587a473d6a7f7a9b87cd38c6b341a88000000000000000100000000000000000000000000000020228ad46578c60a8ae293c5203eb65e05045bb3651cc7f9dca5fdd52a9c021f9f000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000003f0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020c4446bba8c1b7fb429c7566fe2eb83cf8fc01f9962ea02859504fffbc0ccdb49000000000000000100000000000000000000000000000020eef65a3f592189d4459cd38a7fdc20e3c6e4585e0d3713da14da36b4b547a0a200000000000000010000000000000000000000000000002066f2ddc800c59423dc3e6cb06ec895471d3ffafc6e3140cc34d397e66f29e633000000000000000100000000000000000000000000000020d3fe0ac3f0592a168395476738f2d379d0581dd02807271399e479432d094ace000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003f00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020b6ca4da84f02aad90c581176daa3da05852b495655548ec26d1b19f76b322d320000000000000001000000000000000000000000000000201c170c2391b60742d4e50f166570297dd51524c3e9dfdde57583dbd0d59b98f0000000000000000100000000000000000000000000000020a72b7e194afd50ecaf1e33d2066f71486bac78d487b7fa0426a92e4a9ea310c9000000000000000100000000000000000000000000000020762aa6b8eaa622a60e5d82075304926867e1bfd72e6c9bc93d7ed5c083f0de9d00000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003f00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000000000000000000020ae7619fa0fc3e148815f5634731353e207a7c6409708ccece355065ef6880b09000000000000000100000000000000000000000000000020cdcf86385ef53b8ce97ccc6608b4101d620d5e47c63dacb968ff5e5a1512061d0000000000000001000000000000000000000000000000206889701554ee61bb802ca84af6486ce5e81ccd8180328c57ab9d2341a8808cc900000000000000010000000000000000000000000000002000a85bf2f2d421229c03bce75acc24a6f0df564cb379ef0e908c83449ac1caf40000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e1000000000000003f0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000000000000000000202df5948fb78d8e6f2f92a2ea101910a5ce745492735b256acd41c49158f2409c000000000000000100000000000000000000000000000020866bd428371641ca6284b28aa6547219a585a30105d51b7f4811297b39fc8a97000000000000000100000000000000000000000000000020a85d79547366d8e08f2cd889f73768075efa9a82bdcfd8eca2a0d03ec1c600af000000000000000100000000000000000000000000000020e275f0cac8a965b7c2d52bccf2fc2a08ba897eccce8ac56d94090bd934b9477a0000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000360000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020d6ab637747cd4cf07614af7517bc5b895262c631bcb8c17be442d7ffb446d0d1000000000000000100000000000000000000000000000020af10c5c4dbfe0ae7d40ae80cbb399ff0ef8a3020aceee74eebf5f5da0a49f123000000000000000100000000000000000000000000000020cacc7d788bbdb1c4d5dbf47f8afd9ed9b975d2203ba1769a80caa833f3fbb946000000000000000100000000000000010000000000000020f006cf8352bbf180ccb81999dec2d0377abf32ec1a119242758d07bf00181499000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000360000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020255e26c2f87b871f240220765d6e7b0fc4b286716c776731703a2bca61f1ea9d000000000000000100000000000000000000000000000020ccbcc62e2e45f858be8e923e16326816135ae07a8d494cad2676102933a0113100000000000000010000000000000000000000000000002073a7127e76a6c5c3b45234b5814ccbf96b9d757a279114bbd33a663bd26d006e0000000000000001000000000000000100000000000000208d5b321bbfd951f9cb7659d22f534c96ff102f4c76a497617e5abb9dfa82d388000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003600000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000010000000000000020497e00ebd4975ce3d6e3b7215d96c4464817dca7bc4643571817b9418cc927ec00000000000000010000000000000000000000000000002038f8eec7fcd75ff3dba3a31187a969317b6cffacc4e5a3318979beb4ebfaa783000000000000000100000000000000000000000000000020f4ad74e02cc77efb94d4fc24ec0d3cf9f818ea30d8cf64bbb281e90b63c46a2e00000000000000010000000000000001000000000000002077140c9519235b46e9281299155f5f67e417ff114e7ade36dfc35a5d9cd2e2d700000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003600000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020a206eede38cee8e56a2aefcddf0301665f7409adc6bcc39833889a38a10d162e000000000000000100000000000000000000000000000020b9fe74151d32fe3dc5006856fea86eb93dd3003305e3c591ae5f03d9baa178cc0000000000000001000000000000000000000000000000202a006a9ce5990c918a9042f52712f1deb0b3840b72b18b347088583ab1f5f8d300000000000000010000000000000001000000000000002048e1d107862aaa17d2844c76f1581f63cd00be4647fb6249784c8e84d204a7d30000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000360000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020315d37a4c786bfc7296ce7111ff7b5b096c49b0f122622d10fc8b088bcad3ec5000000000000000100000000000000000000000000000020635393df74f0f4451136383e4092cca86f3f7c607e0d2f714b090a80d8f7e6c8000000000000000100000000000000000000000000000020f8cfa931b1b7944fb737694c4d6fc033dc405917f38330a742d6f02d503c8a1b00000000000000010000000000000001000000000000002072bbfd71e002ce04de2fac87c41cdb38dc917d8c5386b1ebdd6e02865da280340000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000090000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000208e04b4c723612b4d1e333accc4e24a04d69c173578faf07c8d2b973c0be9fb4100000000000000010000000000000001000000000000002014aa8e29f77d6a5fb881904df608256632c6604fbfb5192158e0932c0baf514500000000000000010000000000000001000000000000002093c99af014a3514bdcc84cdf0e72d42f20038a64dcba4071efdcce4cf6a76949000000000000000100000000000000000000000000000020a07353c5029eac2f5fb14b7aaa839b9ff2b01dd6feeb51c341820462ab766306000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000090000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000000000000000000201e1426bc22e09b48e2f3902ae15397de929e0b50905519518b2ffd6ff87b0f8d000000000000000100000000000000010000000000000020ff5c9eed6e4075d1dc3dad1312c9f0e4bcc23270345f8eea8c11a5b3619b24aa000000000000000100000000000000010000000000000020e23783733f2d245e0738ed8503ab8c6aef3aa526888e6b8dc670bfe0e224b8ff000000000000000100000000000000000000000000000020a45ee5473875579efd498bb9c2b6715752587f3d8b2592b454ecfaa7a4333af7000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000900000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb626512000000000000000600000000000000010000000000000000000000000000002009e66b718cc1244864884c2e809453b63f5bdb1357b3b4cc341fe71f437dca2e00000000000000010000000000000001000000000000002025a5c0035306c82abd392465404dd2a5af6ad78f6c662e811fb28ddd99a85857000000000000000100000000000000010000000000000020f0fde6ec22a87dce3563e4a3872da6fb65e744b1d395bcb2f83911d9ac21f1af00000000000000010000000000000000000000000000002017851b1e9a70cbcc32eb47f7ecfae668e5855348fa541f9cd9cc78455c2f52ed00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000900000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000000000000000000203366300a5e555c582038bc0af48618d1c44ec5457efee567d5c266b9d86372ee000000000000000100000000000000010000000000000020f7920379a56fc6ea52b03411a80201764cd5c9b889cce60510d3d289564f02a1000000000000000100000000000000010000000000000020b9f47dcff780b5d8194c00a89264a3eb8f7603479d71eafc29a9074cf428d552000000000000000100000000000000000000000000000020dab612d00eddc0f70596df141a7d854a89a2e881b62296a42c239a68553568e5000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000090000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020e6608d6b21e9b4d6fdacc91ba204748c8cdadde68638156e633ef52ca68d58a6000000000000000100000000000000010000000000000020f9459a5f7f85273cda341000cf6866270e90827995d041cbba1ac42de920723c00000000000000010000000000000001000000000000002045bb9d506f74a19123d41a442d1de0fdfbaca183dfb2af0cc5027621a991b2b2000000000000000100000000000000000000000000000020dd7d0f921f70b1c400e2053b21a89931a0d729e3164966f8cdf0a44bdd836801000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb81659000000000000003e0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000208910319c4704675fb2e689fe85e65059409a009e9dc7f46029baed30c3f6050100000000000000010000000000000000000000000000002069a16d2b56ba3538a063eb8027cc1a4e3053ce82d49b49dbcb4419a7943fcccd0000000000000001000000000000000000000000000000206d638b48c620681d9ca1f3ca0b9269a4c587a473d6a7f7a9b87cd38c6b341a88000000000000000100000000000000000000000000000020228ad46578c60a8ae293c5203eb65e05045bb3651cc7f9dca5fdd52a9c021f9f000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000003e0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020191e3e906b69de629398f388037428d655068fb4f7201589352159a5d83ed8a5000000000000000100000000000000000000000000000020eef65a3f592189d4459cd38a7fdc20e3c6e4585e0d3713da14da36b4b547a0a200000000000000010000000000000000000000000000002066f2ddc800c59423dc3e6cb06ec895471d3ffafc6e3140cc34d397e66f29e633000000000000000100000000000000000000000000000020d3fe0ac3f0592a168395476738f2d379d0581dd02807271399e479432d094ace000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003e00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000010000000000000020717eb92b238367aa5b8d57e049cebd3624fa0fcbe6b53e3750f74c3c5edee9e20000000000000001000000000000000000000000000000201c170c2391b60742d4e50f166570297dd51524c3e9dfdde57583dbd0d59b98f0000000000000000100000000000000000000000000000020a72b7e194afd50ecaf1e33d2066f71486bac78d487b7fa0426a92e4a9ea310c9000000000000000100000000000000000000000000000020762aa6b8eaa622a60e5d82075304926867e1bfd72e6c9bc93d7ed5c083f0de9d00000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003e00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000100000000000000208537362dbc6b3aa76cf88ec42302f0a2cfddc88e92a0c151679ec1aa612782c4000000000000000100000000000000000000000000000020cdcf86385ef53b8ce97ccc6608b4101d620d5e47c63dacb968ff5e5a1512061d0000000000000001000000000000000000000000000000206889701554ee61bb802ca84af6486ce5e81ccd8180328c57ab9d2341a8808cc900000000000000010000000000000000000000000000002000a85bf2f2d421229c03bce75acc24a6f0df564cb379ef0e908c83449ac1caf40000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e1000000000000003e0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000208c22854966b4417b9c7cb65b4638e0cf5ff140c478d91859d71f24981c261bcd000000000000000100000000000000000000000000000020866bd428371641ca6284b28aa6547219a585a30105d51b7f4811297b39fc8a97000000000000000100000000000000000000000000000020a85d79547366d8e08f2cd889f73768075efa9a82bdcfd8eca2a0d03ec1c600af000000000000000100000000000000000000000000000020e275f0cac8a965b7c2d52bccf2fc2a08ba897eccce8ac56d94090bd934b9477a0000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c00000000000000002f0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020187d6fc731ee3b7c74d0699a8a6aa921686bda392d9dbe628763e70ea0a4b2d2000000000000000100000000000000000000000000000020295e30ac0c53913c15b9f6857b753d9130839813b975f8c117da751871679a2c0000000000000001000000000000000000000000000000200ae4da6dd0ba3dba590cdc5b458241d43b05d834be20f06226ed69dfe3f4feff000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000002f0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020fe65c53e177613195349d0b57d67d6a8530a6c6f2c28c83f37722c1cae176d9e0000000000000001000000000000000000000000000000203dd087c43b43947a3e1b3cda6da753c0e5efbfdd346a082fe6eeff1094afbc930000000000000001000000000000000000000000000000202d5491c2b0a236a306dd587e3689fdac906752af96e9c92a11015dee02b355260000000000000001000000000000000000000000000000204c549c0a06011a5b940afdd9c949f7c54668b0449c63f74f64a3a00d1cc2a37800000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002f00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020b56214c9f99991a58d8a45fd96ec715c32120b4c504e2435402810c61337003f000000000000000100000000000000000000000000000020f8877e7a53d670528f552bf338731c7df7e8c9b1c5ac2c935f84bec7a7f67883000000000000000100000000000000000000000000000020762ae3247aa8d6ed9a4528261d063545224ee7eb9564b86d08fa8e6b77499d24000000000000000100000000000000000000000000000020d880ce6b358a2b77330b5a0f9481e98d6528b9d0ad6b480d03501c04a93a647f00000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002f00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000000000000000000020802d97ad198945d3a42f59269f904797a09e41cf6bba201d2f50d48022a658e40000000000000001000000000000000000000000000000209177d86a35497ce00c2f930c7dbac287c3b80e4734e61068ceba8a5083f5f3e10000000000000001000000000000000000000000000000209f8adadaa16ce5cac8b348c7f9490ed007a31dec8fabfc34360ee0a7a7567dad0000000000000001000000000000000000000000000000205fd7cad6c08ee7d72dab067a907a496543f8562d1aff5010789f4fe3432c874200000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e1000000000000002f0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020501814ba67715cbbc290032602beca10dbbaddc03c76b602b55d8ed16cc0ef660000000000000001000000000000000000000000000000201888aca35c605c0aa63a5322f0dbfe7dff46f905fe0d6fbbed9bf0a4ae49a0dc00000000000000010000000000000000000000000000002023ba7ff2b84d2058064e3dd64ff66a518516cb562d103469ed0615bb4c67d3f7000000000000000100000000000000000000000000000020896402e4d3f17887d11d2154920c6bff134c98834a80f987cc702496ef09c196000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000280000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000203fc4f8175b9c92350566386ba4636deeb2ec6d4187f6d0d3208c3db577ee4c1a000000000000000100000000000000010000000000000020c600a084e5647679dce1e61667cd049aa01cd0b29e54cfef6b28350be80914810000000000000001000000000000000100000000000000200ebe305ff48b2729427a6d3d9c605f9d8749d8a7f371875c0845a2841f05d610000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000280000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020c6f1cc07680dcd75a8f53c63f310a6d897c61d167e7cf74e0c15cd99fc146e0f0000000000000001000000000000000100000000000000209fb59ccf252a0568bd152caf34d3269d3a2b9a39857511b0bd86c4af33ce8dee0000000000000001000000000000000100000000000000201cef524c4bbd4352e55a822f72b50f13a0d37a3b4bd840b09474319d06e88b350000000000000001000000000000000000000000000000204c549c0a06011a5b940afdd9c949f7c54668b0449c63f74f64a3a00d1cc2a37800000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002800000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000200669822d3814118c5bf694c1ff7d0ed5355d049614d73f0cd41e47c2ba90a4ec000000000000000100000000000000010000000000000020e967db82093a838375e88444bf31c8b9602b5b9abee7d1014d9faa70e9e2ee07000000000000000100000000000000010000000000000020b65635b650f7751f683d4fdd6f77a7bbbf3914c331798f8c0a5e9b5bdd294ca9000000000000000100000000000000000000000000000020d880ce6b358a2b77330b5a0f9481e98d6528b9d0ad6b480d03501c04a93a647f00000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002800000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020e7576b6112be4e002c520903f76fa89a98aead2ed95573d928ee6c27f6ae8b0b000000000000000100000000000000010000000000000020c126701ba56f4a93107ba6cf51214a089bf26114a1c268096b5827a6c692eb22000000000000000100000000000000010000000000000020f9261c602c28cce1a3d266cbce50544b70ad2373d928eb6befd894a8ffb129540000000000000001000000000000000000000000000000205fd7cad6c08ee7d72dab067a907a496543f8562d1aff5010789f4fe3432c874200000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000280000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d000000000000000600000000000000010000000000000001000000000000002029df8d814e6ad33e7598df99f56ae5a9d1e95069c3ba023194079a911304b748000000000000000100000000000000010000000000000020eb547fc519df191930772af4c7f9a223f448ea9b096d6bb0615a7ccf53da66a3000000000000000100000000000000010000000000000020a9fa262c6bfaa50ee132d4609ab35f935bfd510e97d33e942458c27041a0083a000000000000000100000000000000000000000000000020896402e4d3f17887d11d2154920c6bff134c98834a80f987cc702496ef09c196000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c00000000000000002d0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000000000000000000002053782b5983c3a3f41b87af8901b99235481c920bbe817dc8bb231466583d72b0000000000000000100000000000000010000000000000020953ad815a2963d664f0f467b59bd24c8e0fa06059f422523c2c9cc30e63622ef0000000000000001000000000000000000000000000000200ae4da6dd0ba3dba590cdc5b458241d43b05d834be20f06226ed69dfe3f4feff000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000002d0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000000000000000000203a54c6187a5d2d1d4fdfd7e6d830e00471dc777da45c92c200ff4be715489ec40000000000000001000000000000000100000000000000207bfd1e8b05c7d4db1ddb4abbc4ee4e2047ab1cea71eb4125c60d95dface639b80000000000000001000000000000000000000000000000202d5491c2b0a236a306dd587e3689fdac906752af96e9c92a11015dee02b355260000000000000001000000000000000000000000000000204c549c0a06011a5b940afdd9c949f7c54668b0449c63f74f64a3a00d1cc2a37800000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002d00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020763bf8fd5dbf7e26e508b1c752989720035769ec544fbfa3b5f634db87b0985c0000000000000001000000000000000100000000000000206ed7f1a6c47a44f2b7011b57308b53c7e5c8addfd07d945a9042a02777a833ae000000000000000100000000000000000000000000000020762ae3247aa8d6ed9a4528261d063545224ee7eb9564b86d08fa8e6b77499d24000000000000000100000000000000000000000000000020d880ce6b358a2b77330b5a0f9481e98d6528b9d0ad6b480d03501c04a93a647f00000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002d00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c8000000000000000600000000000000010000000000000000000000000000002020eab707c88c395501020600a1d50b1dc468718756fe508728371c0ffc40a7a2000000000000000100000000000000010000000000000020083bb08400cc00f8741cc5a61d5cd377218c13bf2ad0c114737eb149440507640000000000000001000000000000000000000000000000209f8adadaa16ce5cac8b348c7f9490ed007a31dec8fabfc34360ee0a7a7567dad0000000000000001000000000000000000000000000000205fd7cad6c08ee7d72dab067a907a496543f8562d1aff5010789f4fe3432c874200000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e1000000000000002d0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000000000000000000204ae7f953cf399a07a8ce89e8483573676dadd5736312e4cbbda64a605f0781d6000000000000000100000000000000010000000000000020bc50f558bf1c2801a35e0f3833a1192fa429fc028ec80669603d2c5da81d878f00000000000000010000000000000000000000000000002023ba7ff2b84d2058064e3dd64ff66a518516cb562d103469ed0615bb4c67d3f7000000000000000100000000000000000000000000000020896402e4d3f17887d11d2154920c6bff134c98834a80f987cc702496ef09c196000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000190000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020f878c3196a2404bcd842121562576c7d651583fe9d63c1aaa1b869d205e345230000000000000001000000000000000100000000000000204536f7493e46af7ae74c52f21d137b781ab41b8d1503fa4f2492f216257d0e4700000000000000010000000000000001000000000000002041b447898ab19c91b1dbde93ea50c40354c2647926dd2df1d267edeeb4fa5b900000000000000001000000000000000000000000000000207a1424d413417eb28a018fd1d76958181366ee57c4d59ae0034a29ddbb1d2b590000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000190000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020c4c0ee0f8712b96d147ac05da64c1b99a740846e9a50722ac61b17649b751bff0000000000000001000000000000000100000000000000202aede3564ebfa30e74b8e2011d40a14f2a016492169b85c1f9415a281dbc49f7000000000000000100000000000000010000000000000020376d244ad38898e5a2d4a5d1596faa89190bb6be0021523a316dc31147bdabe8000000000000000100000000000000000000000000000020938375cf40ac56222ab4d00edc1add4f0c4d45658ef352f9c39d534a9202dcf7000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001900000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020c7d221511f5b0778a109fa2e3c1c884ec175c20abd2d834b083b1c7c07e139ce0000000000000001000000000000000100000000000000200b06c28f51eebefba1b90a051ee1ef7a91769619ad2533abf955ef50586e382c0000000000000001000000000000000100000000000000202b1f2b796b4b368a82c2fd19089c52aa941915742b1944326d6efc9a8bedb715000000000000000100000000000000000000000000000020a084e70b3f9ebf137fa0b89422463d8a968230d1e0fbcf139db6e018b78315170000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001900000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c8000000000000000600000000000000010000000000000000000000000000002059065e50b3aaadc6ce1d277772ae8d3d94e018bc51e3ab809332afeafa4587c40000000000000001000000000000000100000000000000207f3073022c338edf973f6c62336af47d02e7ee8395bcd48e00dd7c21c2ed6eef00000000000000010000000000000001000000000000002013f4d1041297765ba5721ab41dc03763741f894140a3affa1cc437f3ed9269ad000000000000000100000000000000000000000000000020ce498e000ddc8371c645a265d4b98546295ae06beeb91fa03885ec7c34dce7f9000000000000000100000000000000000000000000000020f66cbef6ba027ee51a683e2c6bfc0ba5a9c25509bcbd67fc8c6ed57fed75d4ad000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000190000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020dfaa7a61177963231160e33a42fb89948d6fa2b6cda193578f1607317576bd7900000000000000010000000000000001000000000000002004230d91f96402c0e2b32b8591b01d0bf15a0337d50562837b09d42f470657ea000000000000000100000000000000010000000000000020b669e28a8c8f93a11d50fc751d11cbd5c19eef7f4f73ab6849b9e5fb805ced8b0000000000000001000000000000000000000000000000205ef7704fa3778b449f726e5d0a98cf0942526fc336765751838fd6cbb761fb270000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb81659000000000000002e0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020e760e670dc84ddaf2d3fed358b41e7ca6702b40f75477190495c3f1750431a01000000000000000100000000000000000000000000000020295e30ac0c53913c15b9f6857b753d9130839813b975f8c117da751871679a2c0000000000000001000000000000000000000000000000200ae4da6dd0ba3dba590cdc5b458241d43b05d834be20f06226ed69dfe3f4feff000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000002e0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000202837ca4828a06d6714ba1aed20c5dda0f997b58f9124b8e5a758a5c562df69c20000000000000001000000000000000000000000000000203dd087c43b43947a3e1b3cda6da753c0e5efbfdd346a082fe6eeff1094afbc930000000000000001000000000000000000000000000000202d5491c2b0a236a306dd587e3689fdac906752af96e9c92a11015dee02b355260000000000000001000000000000000000000000000000204c549c0a06011a5b940afdd9c949f7c54668b0449c63f74f64a3a00d1cc2a37800000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002e00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000010000000000000020a280f3216bbaa60fbb01b28c2c848a663b42254a4ddd68f524653aad5b86a941000000000000000100000000000000000000000000000020f8877e7a53d670528f552bf338731c7df7e8c9b1c5ac2c935f84bec7a7f67883000000000000000100000000000000000000000000000020762ae3247aa8d6ed9a4528261d063545224ee7eb9564b86d08fa8e6b77499d24000000000000000100000000000000000000000000000020d880ce6b358a2b77330b5a0f9481e98d6528b9d0ad6b480d03501c04a93a647f00000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002e00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020c5b330e2e15eaa59ab88913b737667d66ab6bb9dc5cc33e5efe88ddd9ab441c50000000000000001000000000000000000000000000000209177d86a35497ce00c2f930c7dbac287c3b80e4734e61068ceba8a5083f5f3e10000000000000001000000000000000000000000000000209f8adadaa16ce5cac8b348c7f9490ed007a31dec8fabfc34360ee0a7a7567dad0000000000000001000000000000000000000000000000205fd7cad6c08ee7d72dab067a907a496543f8562d1aff5010789f4fe3432c874200000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e1000000000000002e0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020b049b4767c228add6ed9aca521d8ae0f73f195581c4f3795a498d56516148c5d0000000000000001000000000000000000000000000000201888aca35c605c0aa63a5322f0dbfe7dff46f905fe0d6fbbed9bf0a4ae49a0dc00000000000000010000000000000000000000000000002023ba7ff2b84d2058064e3dd64ff66a518516cb562d103469ed0615bb4c67d3f7000000000000000100000000000000000000000000000020896402e4d3f17887d11d2154920c6bff134c98834a80f987cc702496ef09c196000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000330000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000207344f3e7f6af9883c597d6e1f3a288c3ffc6aceb35435477812a31e3317c741900000000000000010000000000000000000000000000002005bd0da2469f2c21b3a29c3fb9805e1c169b17d94f8f17fb27b467cf42de28db0000000000000001000000000000000100000000000000205f3c867463c166fd9c0125885c51251e20c9b8d44030db7f8c699a0f747c2522000000000000000100000000000000010000000000000020f006cf8352bbf180ccb81999dec2d0377abf32ec1a119242758d07bf00181499000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000330000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020e531ed69121bdf5b18ac52087e7e317b94e4f8c8b4269cef4cc727a80b662a5500000000000000010000000000000000000000000000002065f01400d8c5267b0c9e1b41ef2836adc1616da98100daa5b32b8ba39b374ee10000000000000001000000000000000100000000000000201005d0456ea86f38d81d86687e8f11923a23456f3c2f3ff55d7c8acb9de64d690000000000000001000000000000000100000000000000208d5b321bbfd951f9cb7659d22f534c96ff102f4c76a497617e5abb9dfa82d388000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003300000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000206c87f4016feeab616e7bf0a7df62142470188914fe59e59df595763e4d47b9fe0000000000000001000000000000000000000000000000204c94dd0a0f2cb0cb59dcc9b4beb35fd98efaa2cc92cf08466d21549d33875f98000000000000000100000000000000010000000000000020c777ac306a941e7299543eb8e965674fbfd21d8db21d4e6efb2f426e941de1bf00000000000000010000000000000001000000000000002077140c9519235b46e9281299155f5f67e417ff114e7ade36dfc35a5d9cd2e2d700000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003300000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000000000000000000209c7c6e613712463c1c51f6e2e822dfe9bc4ba090afaf5c8c729901b5787db32c000000000000000100000000000000000000000000000020ab4c3f636a88e514ddaec7c6e1d4c81514983302354e8efc52833d305719ec230000000000000001000000000000000100000000000000208a6064188f59e346913e199ebd880503e24248cdea6f67e70edbb84b538e36bf00000000000000010000000000000001000000000000002048e1d107862aaa17d2844c76f1581f63cd00be4647fb6249784c8e84d204a7d30000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000330000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000000000000000000209b701f655210684798519c7d21d381389c5327f76961549a9e47317288332b210000000000000001000000000000000000000000000000204214f1b616812c5b41ff45c0d2acddfd991317d68de3ff1ed1900ce663f1230e0000000000000001000000000000000100000000000000200c26f3577db6f6fc8ca13505100d7c1f5e90088ce53af1ae45ddb54d2ffe746d00000000000000010000000000000001000000000000002072bbfd71e002ce04de2fac87c41cdb38dc917d8c5386b1ebdd6e02865da280340000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000000000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000201d3d3f661a4d2cfb95d0b26d84d3ea673341d60652986be7bb0cd3a9e45f8d0a000000000000000100000000000000010000000000000020c74fc5b5363c08b2d56ef59ce1523608b22b04f93198fc444fbc86eb42093a0b00000000000000010000000000000001000000000000002049b18f4c7c36a3e31f7aea5854ff3a4295357e9b4683efeb0cc263602c4cd838000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000000000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020aded1c5f214b9e1b47fb9091b38bd2d8074447d80630f16b9e5d2b22d8e2f61e0000000000000001000000000000000100000000000000204e1424e71c26aac3d813020437cec6168eab7a8d75aad7109e865f34f3d82095000000000000000100000000000000010000000000000020c8ae564fce614307d01ae4e7ca514b4d438c025236d2f7c225df0916122c407a000000000000000100000000000000010000000000000020a5ba1e43e43faaed55a5a360b6818e780f5c7442a5977ec37c50292584a00e03000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000000000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb626512000000000000000600000000000000010000000000000001000000000000002034b7760fda4c0db88f24fbf6ad0456b83f2ad05b408d45188023bbb4e06121af000000000000000100000000000000010000000000000020f1a1a812bf619f73c9cbf250be6b6627953604a3e339c59bdccc474788fb370a0000000000000001000000000000000100000000000000202d7e532bdad475f87cde4c2f0d86dfd080e22978cd3c4c8658c88cec2b0257b1000000000000000100000000000000010000000000000020dc0369b2684d24cbf4274ce023a89e3478b29bfaee34efd0a4da1dc660ba45de00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000000000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020bf82e0796dd87762e7cc0dbf651adb2a593869683a0f0e68e62f61a2a42ee67600000000000000010000000000000001000000000000002051cddbbae06815e078a7cb86278880c9717f4dd37fcaae2d67a121881106aa820000000000000001000000000000000100000000000000202fae5685a1fb05d54b1bfdb2cba9f571c9a24db75580e22dffc6988ffc17820d000000000000000100000000000000010000000000000020e40fba18beb7a8bfcd3d0b191d6d10f4e3acec4778b08e3ae3c21ae92483fd86000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000000000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000201d430a616e26a451a9e0aaf7d120da5d3efaf6ff609f161eb7c3a2dd14d2c7e8000000000000000100000000000000010000000000000020365c28a658836edeb78b6dd3b52b7d3d3588d7c226920a4c1a92f410c24d31bd0000000000000001000000000000000100000000000000206ba2588cc21b5cda24b2aa86f1ea326163ccc1d7e3f79cd11177546b0f9520e80000000000000001000000000000000100000000000000205a4b48d2d5c0deec9a967d4659defb7f8c12de581186bfae2c710f30835d378c000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000100000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020c47d7bebc8c15f325d831bf339e2d3309c7c8d22969ec6186bc0568046427bd7000000000000000100000000000000010000000000000020640867ed08a3ecabe4859b1b36a9e35eed961ff22f4ecb3f19f23eafd153979300000000000000010000000000000001000000000000002038c257c4acc7ae148c5c9b4409c82130df8554a30c1e722962697197980c56fb000000000000000100000000000000010000000000000020f158609c6b12d3609bdf1c7797edb538f985fe8ac4171f066b1d7b9c43c7bc3b0000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000100000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000201ca4130b1b432206425cd549ec0a36397fe25e3902fc83e4fc886cd6f1950e7b000000000000000100000000000000010000000000000020630811e108ea35a320a27dbd41803a687d15b60a29050aeca50361d2714bf518000000000000000100000000000000010000000000000020d42e2ebd255e4349a7739a43dd3c719944636248abdb0bced6a610501e96e1b50000000000000001000000000000000100000000000000204dffb3cd723081a5601c700b71267e003c6301f69868c0143c1c7fb7f95e7282000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001000000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000202c428c9c3fa1a53d1b0e7ee50f01da261b77bab05c5f15d68ca27e3ad48349d5000000000000000100000000000000010000000000000020183a34534d82250369c5f2847e701d9341b41f119f4bfea1eb963c8a45731168000000000000000100000000000000010000000000000020fe4fd380a7b985c22fbf7e428d0522af491d32b3707fdee9600cc7816056f1200000000000000001000000000000000100000000000000205d9455d420eacea118c8dd606eeb03972280069211e33523e74b32b8a0a96ea70000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001000000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020985bb7ecbeb86f8f84bef68c141aefd03855e2e908da6ac0106ddcc00e15295d000000000000000100000000000000010000000000000020637b870a99da57ec6dae1de90c1943b37f34d8556acc557a05a65a8915fa9d88000000000000000100000000000000010000000000000020acbb53eff19327fdfe068637b56e56cf2ed3ea11c5ac335cac2a4c9e1b4ba555000000000000000100000000000000010000000000000020770adc9f5a476741bb8349e40e9edfd96156aacd1c6d9e3a586653b654b6aa5b000000000000000100000000000000000000000000000020f66cbef6ba027ee51a683e2c6bfc0ba5a9c25509bcbd67fc8c6ed57fed75d4ad000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000100000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020574ce443b2d1a579a226d2ef9963cddf83ae90ced338ea391881843fc95dddcc00000000000000010000000000000001000000000000002026c0e6ce4bf08b1f0ed800a51064fdf6f1f375dbc00c710881776df737596e59000000000000000100000000000000010000000000000020113e52f83563f3c9a8ca73087daed63db6e020f9b1908dae270f2d864860470b0000000000000001000000000000000100000000000000207558d367d7cb8046d18c333db9b72e09bb6459368f028b50b23b205b8ad03c430000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb81659000000000000001c0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020dc473fbc2982536b3551210ff22dbfb86908bbdebdf4f9fcee59b94ae742f3e7000000000000000100000000000000010000000000000020f09e0551c369e8794e51f609fb64bc262c407f13317ebef64c17a4fb128e2b29000000000000000100000000000000000000000000000020cd05d024922075f0d2191dff6b6b8977913542096c687b1aa6a6880a30f4f1780000000000000001000000000000000000000000000000207a1424d413417eb28a018fd1d76958181366ee57c4d59ae0034a29ddbb1d2b590000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000001c0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020e326c18eb9bc5c22eeb0104ad67db5825445f27758a763e7a15c98afa3c60ee90000000000000001000000000000000100000000000000206f5361d60e69e71d110471fa559e5f9e4f0cacff5c4d21eefb041e57495d1c6b000000000000000100000000000000000000000000000020e216681d6f38da8409d5c77334f0f51de756720aaa028880c59d6a832095ad4f000000000000000100000000000000000000000000000020938375cf40ac56222ab4d00edc1add4f0c4d45658ef352f9c39d534a9202dcf7000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001c00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000010000000000000020b78c2786fd393a8a189ea69596d8d08620268eb4bee8ba8309a80def966a7437000000000000000100000000000000010000000000000020a3471994e86c3ff9f0b757f440b5ded70f1e167a40e6eff28a571f2a79e14df600000000000000010000000000000000000000000000002053b3233efca5252e2055e75028fefee3391d25eb106840c102b53e90d3d1fdf6000000000000000100000000000000000000000000000020a084e70b3f9ebf137fa0b89422463d8a968230d1e0fbcf139db6e018b78315170000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001c00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000100000000000000208979eb386fe5abfa278825db28a10963b3073757f7728b555d9e144460a0efe800000000000000010000000000000001000000000000002000269e3b9f38ca4fe7f736b5a97e648fa365df34c5db35b02085b50be90a5010000000000000000100000000000000000000000000000020b7d7c4fcec9b03c74f701ed9b4eedf7ec3386233c472d6ae64f7cb0ca1f7a448000000000000000100000000000000000000000000000020ce498e000ddc8371c645a265d4b98546295ae06beeb91fa03885ec7c34dce7f9000000000000000100000000000000000000000000000020f66cbef6ba027ee51a683e2c6bfc0ba5a9c25509bcbd67fc8c6ed57fed75d4ad000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e000000000000001c0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020b2669c955a48dabaf2c213befede7e967ab990f1c9b03bd7a65450003d408508000000000000000100000000000000010000000000000020fb06fb7152ac1f9d2222ce222624aa555ffa17371dfad3a80a1bf178befe1e6b0000000000000001000000000000000000000000000000207fe3562c7d01ca88eef4c66c817964ae9239a6df889ab475368bf430de96cdb20000000000000001000000000000000000000000000000205ef7704fa3778b449f726e5d0a98cf0942526fc336765751838fd6cbb761fb270000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb81659000000000000002b0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000202cc0a05107243620d3b647e265e82b8acebe905524da6da10e8bac593830a70900000000000000010000000000000000000000000000002064f12c9571923baec5fcc14481a7dfea3e02c1bfc8c062111edc34018395b7160000000000000001000000000000000100000000000000200ebe305ff48b2729427a6d3d9c605f9d8749d8a7f371875c0845a2841f05d610000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000002b0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020449a30f4fedf230c522be5fd070605f8c9841aa6e05ecc8c29e9c0fdcb6e0734000000000000000100000000000000000000000000000020372b730b0fbf5e9e53c6d82f9ea174dfa93e2b45f3d0604b1487c24ff8cbe32c0000000000000001000000000000000100000000000000201cef524c4bbd4352e55a822f72b50f13a0d37a3b4bd840b09474319d06e88b350000000000000001000000000000000000000000000000204c549c0a06011a5b940afdd9c949f7c54668b0449c63f74f64a3a00d1cc2a37800000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002b00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020949208691c206267cc3f83f0c03ce97b7123fb6e5291ad80e84b0246ebcd7ca0000000000000000100000000000000000000000000000020c08b6a80530ce28ab631eb2d126ffb2acdf90182e03c3ef66853b7e4fb457d93000000000000000100000000000000010000000000000020b65635b650f7751f683d4fdd6f77a7bbbf3914c331798f8c0a5e9b5bdd294ca9000000000000000100000000000000000000000000000020d880ce6b358a2b77330b5a0f9481e98d6528b9d0ad6b480d03501c04a93a647f00000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002b00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000000000000000000205cfe7df8215e8200a55cc42f7b8576f75b382e2f7b90ebb17c11fb154b32750f00000000000000010000000000000000000000000000002013c394365ef4ea229b732c1f74b1cdefeb9d0d67b4660f421b2359d2cdedd3df000000000000000100000000000000010000000000000020f9261c602c28cce1a3d266cbce50544b70ad2373d928eb6befd894a8ffb129540000000000000001000000000000000000000000000000205fd7cad6c08ee7d72dab067a907a496543f8562d1aff5010789f4fe3432c874200000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e1000000000000002b0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000000000000000000206e80d8e8df8fcc98c25ad548d5465c15309cc9d0d3e0bd25f4378ce44b8b29570000000000000001000000000000000000000000000000200892a3f42888ca3862bea9ccf078bd63e0266f46f3fe49a9cca5cb8700d0934d000000000000000100000000000000010000000000000020a9fa262c6bfaa50ee132d4609ab35f935bfd510e97d33e942458c27041a0083a000000000000000100000000000000000000000000000020896402e4d3f17887d11d2154920c6bff134c98834a80f987cc702496ef09c196000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000000000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000201d3d3f661a4d2cfb95d0b26d84d3ea673341d60652986be7bb0cd3a9e45f8d0a000000000000000100000000000000010000000000000020c74fc5b5363c08b2d56ef59ce1523608b22b04f93198fc444fbc86eb42093a0b00000000000000010000000000000001000000000000002049b18f4c7c36a3e31f7aea5854ff3a4295357e9b4683efeb0cc263602c4cd838000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000000000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020aded1c5f214b9e1b47fb9091b38bd2d8074447d80630f16b9e5d2b22d8e2f61e0000000000000001000000000000000100000000000000204e1424e71c26aac3d813020437cec6168eab7a8d75aad7109e865f34f3d82095000000000000000100000000000000010000000000000020c8ae564fce614307d01ae4e7ca514b4d438c025236d2f7c225df0916122c407a000000000000000100000000000000010000000000000020a5ba1e43e43faaed55a5a360b6818e780f5c7442a5977ec37c50292584a00e03000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000000000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb626512000000000000000600000000000000010000000000000001000000000000002034b7760fda4c0db88f24fbf6ad0456b83f2ad05b408d45188023bbb4e06121af000000000000000100000000000000010000000000000020f1a1a812bf619f73c9cbf250be6b6627953604a3e339c59bdccc474788fb370a0000000000000001000000000000000100000000000000202d7e532bdad475f87cde4c2f0d86dfd080e22978cd3c4c8658c88cec2b0257b1000000000000000100000000000000010000000000000020dc0369b2684d24cbf4274ce023a89e3478b29bfaee34efd0a4da1dc660ba45de00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000000000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020bf82e0796dd87762e7cc0dbf651adb2a593869683a0f0e68e62f61a2a42ee67600000000000000010000000000000001000000000000002051cddbbae06815e078a7cb86278880c9717f4dd37fcaae2d67a121881106aa820000000000000001000000000000000100000000000000202fae5685a1fb05d54b1bfdb2cba9f571c9a24db75580e22dffc6988ffc17820d000000000000000100000000000000010000000000000020e40fba18beb7a8bfcd3d0b191d6d10f4e3acec4778b08e3ae3c21ae92483fd86000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000000000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000201d430a616e26a451a9e0aaf7d120da5d3efaf6ff609f161eb7c3a2dd14d2c7e8000000000000000100000000000000010000000000000020365c28a658836edeb78b6dd3b52b7d3d3588d7c226920a4c1a92f410c24d31bd0000000000000001000000000000000100000000000000206ba2588cc21b5cda24b2aa86f1ea326163ccc1d7e3f79cd11177546b0f9520e80000000000000001000000000000000100000000000000205a4b48d2d5c0deec9a967d4659defb7f8c12de581186bfae2c710f30835d378c000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000030000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000206ff0195a134c259fe7543028850c1e5cad27da7360a4eaae4414e0bfdccdba62000000000000000100000000000000000000000000000020bc0e1e4d069a85667d831c6131bf23b47a10f808276f2d639351a2b29c6601f100000000000000010000000000000001000000000000002049b18f4c7c36a3e31f7aea5854ff3a4295357e9b4683efeb0cc263602c4cd838000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000030000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e000000000000000600000000000000010000000000000000000000000000002086459a0212426dc2ac2a376c2d40c3d2b8ccb49ccb264ff41e000e8323be00dc000000000000000100000000000000000000000000000020dd758e7e903cea5d2b8d56cb7ec81903a5d208516bc65446aaab10a4c88881f6000000000000000100000000000000010000000000000020c8ae564fce614307d01ae4e7ca514b4d438c025236d2f7c225df0916122c407a000000000000000100000000000000010000000000000020a5ba1e43e43faaed55a5a360b6818e780f5c7442a5977ec37c50292584a00e03000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000300000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000202970d043e5027eaed94acbe63e1917b6a011fdd08a740ef6c1e0bb3c348c406d000000000000000100000000000000000000000000000020e921a3304310ce0c4ea3ff193bc2b8d3e37939557d88c4c9d8d9aa74dade5fce0000000000000001000000000000000100000000000000202d7e532bdad475f87cde4c2f0d86dfd080e22978cd3c4c8658c88cec2b0257b1000000000000000100000000000000010000000000000020dc0369b2684d24cbf4274ce023a89e3478b29bfaee34efd0a4da1dc660ba45de00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000300000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000000000000000000204a7773cd46d18c41025b8d2593ba8eddbf921c9c7e1ebc7309af39ba3f8340cf0000000000000001000000000000000000000000000000201dedea2ea2a45095babafaaceb602b439a7a8de613dab9659c28452f2b43ba230000000000000001000000000000000100000000000000202fae5685a1fb05d54b1bfdb2cba9f571c9a24db75580e22dffc6988ffc17820d000000000000000100000000000000010000000000000020e40fba18beb7a8bfcd3d0b191d6d10f4e3acec4778b08e3ae3c21ae92483fd86000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000030000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020058deca8926462de969a8f6c7186d43908f874ed995eb7603a319ae7aa8ff440000000000000000100000000000000000000000000000020898c87da14d35ffd206c40c659830a17aafcb7a087947604f6abe545e28b58840000000000000001000000000000000100000000000000206ba2588cc21b5cda24b2aa86f1ea326163ccc1d7e3f79cd11177546b0f9520e80000000000000001000000000000000100000000000000205a4b48d2d5c0deec9a967d4659defb7f8c12de581186bfae2c710f30835d378c000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000140000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000201db39b2b58f01b4266a2f3a089f4de0cf8c9d9cc1a52eaba7802162bba95ead2000000000000000100000000000000010000000000000020934ab4c6e53dcf48d451f6ed7e4af86b758dd8dba6533f4175725e2e5845afc500000000000000010000000000000000000000000000002026fce9aa21f1ef53b559859e81595b7ea9f4a7505a8a6c162b86994251034ce3000000000000000100000000000000010000000000000020f158609c6b12d3609bdf1c7797edb538f985fe8ac4171f066b1d7b9c43c7bc3b0000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000140000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020f02c12c9e1987155b3dfab880a6c3fd179a7c43b36e4b5ef01e1660bacefc47f0000000000000001000000000000000100000000000000202fdbde1dac25caf98829f59666c2f0534d2832bdb689d8ad96cbb9a3dbd4d45f0000000000000001000000000000000000000000000000205194f6462193600d656db86b96325bf516174c3105f29544d28f3b649cc7fa4c0000000000000001000000000000000100000000000000204dffb3cd723081a5601c700b71267e003c6301f69868c0143c1c7fb7f95e7282000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001400000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb626512000000000000000600000000000000010000000000000001000000000000002060c1a1b58116c922c95ebd362b2aca38239b074ba70838c441c7e00fed0a95e9000000000000000100000000000000010000000000000020114537cddbda837705b4879cd66f5f4d256930dfee3834780cb134d8960e1304000000000000000100000000000000000000000000000020b4e0bb7d9649c1fbb4614e3f293bccd257330f04e0c3c1c27c3a9a4dcdec30130000000000000001000000000000000100000000000000205d9455d420eacea118c8dd606eeb03972280069211e33523e74b32b8a0a96ea70000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001400000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000100000000000000203f124e95b7dec0ff8f7a86ae1aaff6955eea438f36cae6f84a09579c75e2134700000000000000010000000000000001000000000000002011099e538c8737a24d756c6724727c5da6d771131318d85b8986cd3bc79b592b000000000000000100000000000000000000000000000020c28743b9fb456f5dab01de38dce8d1e72a393e786e47b640f11ef5dac00847bb000000000000000100000000000000010000000000000020770adc9f5a476741bb8349e40e9edfd96156aacd1c6d9e3a586653b654b6aa5b000000000000000100000000000000000000000000000020f66cbef6ba027ee51a683e2c6bfc0ba5a9c25509bcbd67fc8c6ed57fed75d4ad000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000140000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020c8bfe267f4915fec41dd5cdc2991233c6867d80f482a2f5e54923aa7e593286d000000000000000100000000000000010000000000000020a8ed275fa0c7c748c26664fcd0da42650d5f6d40a8b66187b846df67bdc2a97f000000000000000100000000000000000000000000000020c9fa3b6551025a0b0a3ab22e52aa56603723150da92dcef931270f46982c5f720000000000000001000000000000000100000000000000207558d367d7cb8046d18c333db9b72e09bb6459368f028b50b23b205b8ad03c430000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000140000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000201db39b2b58f01b4266a2f3a089f4de0cf8c9d9cc1a52eaba7802162bba95ead2000000000000000100000000000000010000000000000020934ab4c6e53dcf48d451f6ed7e4af86b758dd8dba6533f4175725e2e5845afc500000000000000010000000000000000000000000000002026fce9aa21f1ef53b559859e81595b7ea9f4a7505a8a6c162b86994251034ce3000000000000000100000000000000010000000000000020f158609c6b12d3609bdf1c7797edb538f985fe8ac4171f066b1d7b9c43c7bc3b0000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000140000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020f02c12c9e1987155b3dfab880a6c3fd179a7c43b36e4b5ef01e1660bacefc47f0000000000000001000000000000000100000000000000202fdbde1dac25caf98829f59666c2f0534d2832bdb689d8ad96cbb9a3dbd4d45f0000000000000001000000000000000000000000000000205194f6462193600d656db86b96325bf516174c3105f29544d28f3b649cc7fa4c0000000000000001000000000000000100000000000000204dffb3cd723081a5601c700b71267e003c6301f69868c0143c1c7fb7f95e7282000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001400000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb626512000000000000000600000000000000010000000000000001000000000000002060c1a1b58116c922c95ebd362b2aca38239b074ba70838c441c7e00fed0a95e9000000000000000100000000000000010000000000000020114537cddbda837705b4879cd66f5f4d256930dfee3834780cb134d8960e1304000000000000000100000000000000000000000000000020b4e0bb7d9649c1fbb4614e3f293bccd257330f04e0c3c1c27c3a9a4dcdec30130000000000000001000000000000000100000000000000205d9455d420eacea118c8dd606eeb03972280069211e33523e74b32b8a0a96ea70000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001400000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000100000000000000203f124e95b7dec0ff8f7a86ae1aaff6955eea438f36cae6f84a09579c75e2134700000000000000010000000000000001000000000000002011099e538c8737a24d756c6724727c5da6d771131318d85b8986cd3bc79b592b000000000000000100000000000000000000000000000020c28743b9fb456f5dab01de38dce8d1e72a393e786e47b640f11ef5dac00847bb000000000000000100000000000000010000000000000020770adc9f5a476741bb8349e40e9edfd96156aacd1c6d9e3a586653b654b6aa5b000000000000000100000000000000000000000000000020f66cbef6ba027ee51a683e2c6bfc0ba5a9c25509bcbd67fc8c6ed57fed75d4ad000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000140000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020c8bfe267f4915fec41dd5cdc2991233c6867d80f482a2f5e54923aa7e593286d000000000000000100000000000000010000000000000020a8ed275fa0c7c748c26664fcd0da42650d5f6d40a8b66187b846df67bdc2a97f000000000000000100000000000000000000000000000020c9fa3b6551025a0b0a3ab22e52aa56603723150da92dcef931270f46982c5f720000000000000001000000000000000100000000000000207558d367d7cb8046d18c333db9b72e09bb6459368f028b50b23b205b8ad03c430000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000010000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000207a810149b56beb7c711c05676c1721fd4595513d55341729b655fdf6bc7c6e9d000000000000000100000000000000010000000000000020c74fc5b5363c08b2d56ef59ce1523608b22b04f93198fc444fbc86eb42093a0b00000000000000010000000000000001000000000000002049b18f4c7c36a3e31f7aea5854ff3a4295357e9b4683efeb0cc263602c4cd838000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000010000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020756e52a4d940aed4b19471722db1b0f36cb3a58e6645651ae95985d0859986fe0000000000000001000000000000000100000000000000204e1424e71c26aac3d813020437cec6168eab7a8d75aad7109e865f34f3d82095000000000000000100000000000000010000000000000020c8ae564fce614307d01ae4e7ca514b4d438c025236d2f7c225df0916122c407a000000000000000100000000000000010000000000000020a5ba1e43e43faaed55a5a360b6818e780f5c7442a5977ec37c50292584a00e03000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000100000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020b2b00908d9b736c01784519b0884f9d47ad5d0521fb013eadc54c72234e9a0cf000000000000000100000000000000010000000000000020f1a1a812bf619f73c9cbf250be6b6627953604a3e339c59bdccc474788fb370a0000000000000001000000000000000100000000000000202d7e532bdad475f87cde4c2f0d86dfd080e22978cd3c4c8658c88cec2b0257b1000000000000000100000000000000010000000000000020dc0369b2684d24cbf4274ce023a89e3478b29bfaee34efd0a4da1dc660ba45de00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000100000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000000000000000000202d703b0f2dac82babade787a44c24dee732455802079b3585a1954c0d9f0bab600000000000000010000000000000001000000000000002051cddbbae06815e078a7cb86278880c9717f4dd37fcaae2d67a121881106aa820000000000000001000000000000000100000000000000202fae5685a1fb05d54b1bfdb2cba9f571c9a24db75580e22dffc6988ffc17820d000000000000000100000000000000010000000000000020e40fba18beb7a8bfcd3d0b191d6d10f4e3acec4778b08e3ae3c21ae92483fd86000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000010000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020c015d0794461e01805baa7f6791e97f3676505ee9a4e0a5e97308682ebdb2af7000000000000000100000000000000010000000000000020365c28a658836edeb78b6dd3b52b7d3d3588d7c226920a4c1a92f410c24d31bd0000000000000001000000000000000100000000000000206ba2588cc21b5cda24b2aa86f1ea326163ccc1d7e3f79cd11177546b0f9520e80000000000000001000000000000000100000000000000205a4b48d2d5c0deec9a967d4659defb7f8c12de581186bfae2c710f30835d378c000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000100000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020c47d7bebc8c15f325d831bf339e2d3309c7c8d22969ec6186bc0568046427bd7000000000000000100000000000000010000000000000020640867ed08a3ecabe4859b1b36a9e35eed961ff22f4ecb3f19f23eafd153979300000000000000010000000000000001000000000000002038c257c4acc7ae148c5c9b4409c82130df8554a30c1e722962697197980c56fb000000000000000100000000000000010000000000000020f158609c6b12d3609bdf1c7797edb538f985fe8ac4171f066b1d7b9c43c7bc3b0000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000100000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000201ca4130b1b432206425cd549ec0a36397fe25e3902fc83e4fc886cd6f1950e7b000000000000000100000000000000010000000000000020630811e108ea35a320a27dbd41803a687d15b60a29050aeca50361d2714bf518000000000000000100000000000000010000000000000020d42e2ebd255e4349a7739a43dd3c719944636248abdb0bced6a610501e96e1b50000000000000001000000000000000100000000000000204dffb3cd723081a5601c700b71267e003c6301f69868c0143c1c7fb7f95e7282000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001000000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000202c428c9c3fa1a53d1b0e7ee50f01da261b77bab05c5f15d68ca27e3ad48349d5000000000000000100000000000000010000000000000020183a34534d82250369c5f2847e701d9341b41f119f4bfea1eb963c8a45731168000000000000000100000000000000010000000000000020fe4fd380a7b985c22fbf7e428d0522af491d32b3707fdee9600cc7816056f1200000000000000001000000000000000100000000000000205d9455d420eacea118c8dd606eeb03972280069211e33523e74b32b8a0a96ea70000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001000000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020985bb7ecbeb86f8f84bef68c141aefd03855e2e908da6ac0106ddcc00e15295d000000000000000100000000000000010000000000000020637b870a99da57ec6dae1de90c1943b37f34d8556acc557a05a65a8915fa9d88000000000000000100000000000000010000000000000020acbb53eff19327fdfe068637b56e56cf2ed3ea11c5ac335cac2a4c9e1b4ba555000000000000000100000000000000010000000000000020770adc9f5a476741bb8349e40e9edfd96156aacd1c6d9e3a586653b654b6aa5b000000000000000100000000000000000000000000000020f66cbef6ba027ee51a683e2c6bfc0ba5a9c25509bcbd67fc8c6ed57fed75d4ad000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000100000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020574ce443b2d1a579a226d2ef9963cddf83ae90ced338ea391881843fc95dddcc00000000000000010000000000000001000000000000002026c0e6ce4bf08b1f0ed800a51064fdf6f1f375dbc00c710881776df737596e59000000000000000100000000000000010000000000000020113e52f83563f3c9a8ca73087daed63db6e020f9b1908dae270f2d864860470b0000000000000001000000000000000100000000000000207558d367d7cb8046d18c333db9b72e09bb6459368f028b50b23b205b8ad03c430000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000000000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000201d3d3f661a4d2cfb95d0b26d84d3ea673341d60652986be7bb0cd3a9e45f8d0a000000000000000100000000000000010000000000000020c74fc5b5363c08b2d56ef59ce1523608b22b04f93198fc444fbc86eb42093a0b00000000000000010000000000000001000000000000002049b18f4c7c36a3e31f7aea5854ff3a4295357e9b4683efeb0cc263602c4cd838000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000000000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020aded1c5f214b9e1b47fb9091b38bd2d8074447d80630f16b9e5d2b22d8e2f61e0000000000000001000000000000000100000000000000204e1424e71c26aac3d813020437cec6168eab7a8d75aad7109e865f34f3d82095000000000000000100000000000000010000000000000020c8ae564fce614307d01ae4e7ca514b4d438c025236d2f7c225df0916122c407a000000000000000100000000000000010000000000000020a5ba1e43e43faaed55a5a360b6818e780f5c7442a5977ec37c50292584a00e03000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000000000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb626512000000000000000600000000000000010000000000000001000000000000002034b7760fda4c0db88f24fbf6ad0456b83f2ad05b408d45188023bbb4e06121af000000000000000100000000000000010000000000000020f1a1a812bf619f73c9cbf250be6b6627953604a3e339c59bdccc474788fb370a0000000000000001000000000000000100000000000000202d7e532bdad475f87cde4c2f0d86dfd080e22978cd3c4c8658c88cec2b0257b1000000000000000100000000000000010000000000000020dc0369b2684d24cbf4274ce023a89e3478b29bfaee34efd0a4da1dc660ba45de00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000000000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020bf82e0796dd87762e7cc0dbf651adb2a593869683a0f0e68e62f61a2a42ee67600000000000000010000000000000001000000000000002051cddbbae06815e078a7cb86278880c9717f4dd37fcaae2d67a121881106aa820000000000000001000000000000000100000000000000202fae5685a1fb05d54b1bfdb2cba9f571c9a24db75580e22dffc6988ffc17820d000000000000000100000000000000010000000000000020e40fba18beb7a8bfcd3d0b191d6d10f4e3acec4778b08e3ae3c21ae92483fd86000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000000000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000201d430a616e26a451a9e0aaf7d120da5d3efaf6ff609f161eb7c3a2dd14d2c7e8000000000000000100000000000000010000000000000020365c28a658836edeb78b6dd3b52b7d3d3588d7c226920a4c1a92f410c24d31bd0000000000000001000000000000000100000000000000206ba2588cc21b5cda24b2aa86f1ea326163ccc1d7e3f79cd11177546b0f9520e80000000000000001000000000000000100000000000000205a4b48d2d5c0deec9a967d4659defb7f8c12de581186bfae2c710f30835d378c000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000030000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000206ff0195a134c259fe7543028850c1e5cad27da7360a4eaae4414e0bfdccdba62000000000000000100000000000000000000000000000020bc0e1e4d069a85667d831c6131bf23b47a10f808276f2d639351a2b29c6601f100000000000000010000000000000001000000000000002049b18f4c7c36a3e31f7aea5854ff3a4295357e9b4683efeb0cc263602c4cd838000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000030000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e000000000000000600000000000000010000000000000000000000000000002086459a0212426dc2ac2a376c2d40c3d2b8ccb49ccb264ff41e000e8323be00dc000000000000000100000000000000000000000000000020dd758e7e903cea5d2b8d56cb7ec81903a5d208516bc65446aaab10a4c88881f6000000000000000100000000000000010000000000000020c8ae564fce614307d01ae4e7ca514b4d438c025236d2f7c225df0916122c407a000000000000000100000000000000010000000000000020a5ba1e43e43faaed55a5a360b6818e780f5c7442a5977ec37c50292584a00e03000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000300000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000202970d043e5027eaed94acbe63e1917b6a011fdd08a740ef6c1e0bb3c348c406d000000000000000100000000000000000000000000000020e921a3304310ce0c4ea3ff193bc2b8d3e37939557d88c4c9d8d9aa74dade5fce0000000000000001000000000000000100000000000000202d7e532bdad475f87cde4c2f0d86dfd080e22978cd3c4c8658c88cec2b0257b1000000000000000100000000000000010000000000000020dc0369b2684d24cbf4274ce023a89e3478b29bfaee34efd0a4da1dc660ba45de00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000300000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000000000000000000204a7773cd46d18c41025b8d2593ba8eddbf921c9c7e1ebc7309af39ba3f8340cf0000000000000001000000000000000000000000000000201dedea2ea2a45095babafaaceb602b439a7a8de613dab9659c28452f2b43ba230000000000000001000000000000000100000000000000202fae5685a1fb05d54b1bfdb2cba9f571c9a24db75580e22dffc6988ffc17820d000000000000000100000000000000010000000000000020e40fba18beb7a8bfcd3d0b191d6d10f4e3acec4778b08e3ae3c21ae92483fd86000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000030000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020058deca8926462de969a8f6c7186d43908f874ed995eb7603a319ae7aa8ff440000000000000000100000000000000000000000000000020898c87da14d35ffd206c40c659830a17aafcb7a087947604f6abe545e28b58840000000000000001000000000000000100000000000000206ba2588cc21b5cda24b2aa86f1ea326163ccc1d7e3f79cd11177546b0f9520e80000000000000001000000000000000100000000000000205a4b48d2d5c0deec9a967d4659defb7f8c12de581186bfae2c710f30835d378c000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb81659000000000000000e0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000207b45a6f74d21671255910e2383548d6998e7c1bc14666e7c2deb215ce2aa87d5000000000000000100000000000000000000000000000020b173e65d659cc1f471d2922de643652b703159ad657dfddbb87c03928e9ae2e9000000000000000100000000000000000000000000000020266533c386eaecf62505c82a33fc748ed3dfb0dd1f1c3b6ef1c350f30907840f000000000000000100000000000000000000000000000020a07353c5029eac2f5fb14b7aaa839b9ff2b01dd6feeb51c341820462ab766306000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000000e0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000208e8ff8b382716bdeb251c5b8b6f713714671db47dcfcdd7f94b1a3a588a0e7200000000000000001000000000000000000000000000000200ec2f1acb3815310ab25abd524869226b606f750b7f8740504796e125d37e5a70000000000000001000000000000000000000000000000203e730a9762014a0bc462be90ae606e5d47c72eb18f70e7e52e6fdbf0e6f0ca51000000000000000100000000000000000000000000000020a45ee5473875579efd498bb9c2b6715752587f3d8b2592b454ecfaa7a4333af7000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000e00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000010000000000000020304cfdda91b4fa28817368de7b16305b52d500aa9ec49ed0d0091a8eb1ab14000000000000000001000000000000000000000000000000203518b558a475690b7827b1de96f55519d9245f9117ab4d6bd433dc371d07a1570000000000000001000000000000000000000000000000200f6629916e8ea9140c1e5fe82516b014e06c6a7ffb9a27dbe8073629cf7bcfd300000000000000010000000000000000000000000000002017851b1e9a70cbcc32eb47f7ecfae668e5855348fa541f9cd9cc78455c2f52ed00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000e00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000010000000000000020cfcef89819fde19362c6b0890aade91cf4e79a14651647b6b74eba7921ac556a000000000000000100000000000000000000000000000020ec0426330c65734ade67d296a589bad25e2db729a351d7658be53ef6a7fb88f800000000000000010000000000000000000000000000002021e77df31f1eff95861984415a96b4b3e971e343430cde7965c4ffcd12acfcf9000000000000000100000000000000000000000000000020dab612d00eddc0f70596df141a7d854a89a2e881b62296a42c239a68553568e5000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e000000000000000e0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d000000000000000600000000000000010000000000000001000000000000002065d62fb8cce38d231801558e212c8ad5ff555832c7a008975af4a04fa19a3fe2000000000000000100000000000000000000000000000020046adb4ccc3450e7cbbdce1e0e6f6b3e5d17259cae89e17246f83d54dd8edd200000000000000001000000000000000000000000000000204b3a8c95985e02c1091d8b74e359262a94d60b3baac08c1afc3d4c34b039a42b000000000000000100000000000000000000000000000020dd7d0f921f70b1c400e2053b21a89931a0d729e3164966f8cdf0a44bdd836801000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000390000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020f5f51df4455ffd83739dfaccef923a70df7a7cf5ea75b0be8ac453ab1ea59cd8000000000000000100000000000000010000000000000020314e9a848ea1d25911258d74b19f092dd444faf4da08b8c00a4f09adb9d4c623000000000000000100000000000000010000000000000020f8aa5e6a5b89d4a39d02bfe4f6c3c38deda3ec6df5ade3707863ea2453f03b73000000000000000100000000000000000000000000000020228ad46578c60a8ae293c5203eb65e05045bb3651cc7f9dca5fdd52a9c021f9f000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000390000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020c0be60ecb9302afcaf7e0974c2439749f493468a83262da26a96f1cc4c55cc73000000000000000100000000000000010000000000000020d409436a38cce955294f3fbb27f4d65e7100e98f4d77022a741a6e99195a3afd0000000000000001000000000000000100000000000000206d13fd38b84ca4e30cf7ae1f472014bbebd3d7449bae674ad6a36fae582015a8000000000000000100000000000000000000000000000020d3fe0ac3f0592a168395476738f2d379d0581dd02807271399e479432d094ace000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003900000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000205ac05e975b42062c31f9ed21b3fe8a6ddc0b04176c23fbf2924ac02c9a0be9e70000000000000001000000000000000100000000000000206140589f65135d68e263ae292fc0c763647ece71ba96e1bb1950b05093e479eb000000000000000100000000000000010000000000000020b6e03aa8283e3b21b7e5347673309cfecce4aa3d8d546f0c5e5fbac4333ddb46000000000000000100000000000000000000000000000020762aa6b8eaa622a60e5d82075304926867e1bfd72e6c9bc93d7ed5c083f0de9d00000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003900000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000000000000000000020a1d50e36dcacbeab3151583c0a0de6fcf3b158bca938c33d17bc65105aa4836e00000000000000010000000000000001000000000000002025e3c91b984175d866c1a7a0ab532b735a2322b380d5176f3f2898cdf3415d9f000000000000000100000000000000010000000000000020eb8e2038c836a712421ce8263fd03d719840bae9cbc574a061e776d5ef3f390800000000000000010000000000000000000000000000002000a85bf2f2d421229c03bce75acc24a6f0df564cb379ef0e908c83449ac1caf40000000000000001000000000000000000000000000000209181a47dd32c8e31fdecb64226e0558508a8c5a0e4cb8b20239489303bc7ea92000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000390000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020741795e4cfecca0b0fcd745a3aa59aa1b3c46d8f74bb8a06128fbf82dc802df80000000000000001000000000000000100000000000000204759d348b50c669646f5f52d2f8caba0a0a3c3f6941e016904bddc6b141451910000000000000001000000000000000100000000000000200e45b6073a5229fe074383c2f531128eda5ffeefe8fde89eb48d7aa45a77a0f5000000000000000100000000000000000000000000000020e275f0cac8a965b7c2d52bccf2fc2a08ba897eccce8ac56d94090bd934b9477a0000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000050000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020df632d8f7473aa2a266c94e0516913189d640957a4f03bdfca986886fba478de000000000000000100000000000000010000000000000020358c6702aa7ce3c8bdcd46a395295b533449972ac93e65796c809d3843af3e0a0000000000000001000000000000000000000000000000205653a7aef6c658c2fe00a9e102931ec0732cfb210b3c0f9786685131d83170b8000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000050000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000000000000000000208b5e31b3b9693fd99f4af22f146c47a96be5f96f6e2d1de7723eb81b05ab4517000000000000000100000000000000010000000000000020d8a894c95f18b89fc6b1966cca0468fb346cb33bd7ed5949846cd49fadfb28c5000000000000000100000000000000000000000000000020dbb74f6060a2f8daea889924e7610165d94588183449ef4022cf18b3bdaaf8d4000000000000000100000000000000010000000000000020a5ba1e43e43faaed55a5a360b6818e780f5c7442a5977ec37c50292584a00e03000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000500000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020a56fecf58a1a4c072cb8cf67dd9e508770f735536f8cd2a7c1e1ef73333f32730000000000000001000000000000000100000000000000203d0c857c0178a4e206fc089efb3766ddb437e7a682bbeb9802198aa092a8cc08000000000000000100000000000000000000000000000020c358e6ecb6ab0ba0349b872be0aacb00d8660c507286f1680572dd7de7bbdb46000000000000000100000000000000010000000000000020dc0369b2684d24cbf4274ce023a89e3478b29bfaee34efd0a4da1dc660ba45de00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000500000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000000000000000000020763aab24ec6f8139b22cd47151b3ee9984aecfd01fa36f684224a9c9f86d1cd80000000000000001000000000000000100000000000000201c7a36516e9a052930373dcef0ce273c7649c024c7dd25a36bc87adf716bf4e800000000000000010000000000000000000000000000002017c85f2591fe6da29d118df27a1aef7ced0fb1a2b85b06c19337c12c92edb9cf000000000000000100000000000000010000000000000020e40fba18beb7a8bfcd3d0b191d6d10f4e3acec4778b08e3ae3c21ae92483fd86000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000050000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020686d0a06f4ae390f0f7c009a298fc5272f1d751bfc23c567191f5f4bf85d9d6f0000000000000001000000000000000100000000000000202ed66359469b6c278e6162debbe51b6122cbf7aa0d285a925131c0f1651813ad000000000000000100000000000000000000000000000020dea113f87fef53166cf17cc40d78ddf07d9d08926378c792877f7ff4d200a8ed0000000000000001000000000000000100000000000000205a4b48d2d5c0deec9a967d4659defb7f8c12de581186bfae2c710f30835d378c000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000120000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020ab63dfd21d91db64c30c6ff03a0ac64ef7387ace22e915709bee4b1cce4734ac00000000000000010000000000000000000000000000002077c77d7b993f04ae31fa6b6da7dff3c353004c11a049302a478e5dac04d508cf00000000000000010000000000000001000000000000002038c257c4acc7ae148c5c9b4409c82130df8554a30c1e722962697197980c56fb000000000000000100000000000000010000000000000020f158609c6b12d3609bdf1c7797edb538f985fe8ac4171f066b1d7b9c43c7bc3b0000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000120000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e000000000000000600000000000000010000000000000001000000000000002046817fed75d4f02d731e97cf463418460dc149d4119eb395174cdc29bc56e05c000000000000000100000000000000000000000000000020410a9806148029c00be1c6575ce39cab980947f62d7b8c905215b520e160aa17000000000000000100000000000000010000000000000020d42e2ebd255e4349a7739a43dd3c719944636248abdb0bced6a610501e96e1b50000000000000001000000000000000100000000000000204dffb3cd723081a5601c700b71267e003c6301f69868c0143c1c7fb7f95e7282000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001200000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000010000000000000020e494797516182db07045c44685dc909e4d27f6cb9bb45a2bd77f46ca3361da950000000000000001000000000000000000000000000000200d8eb352cc26ae30ac8e735bd07c4afc629f8b935a6281b4a5d795206646f134000000000000000100000000000000010000000000000020fe4fd380a7b985c22fbf7e428d0522af491d32b3707fdee9600cc7816056f1200000000000000001000000000000000100000000000000205d9455d420eacea118c8dd606eeb03972280069211e33523e74b32b8a0a96ea70000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001200000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c8000000000000000600000000000000010000000000000001000000000000002015e5806849295b2da45a3fd8ce7ab23c7fd55ea442e04c344f9472f75c13c6540000000000000001000000000000000000000000000000208ca5f4e39ff8097b3311dc5c6b8ee0f25e73013b54075212e77ec6bbe41ea8e5000000000000000100000000000000010000000000000020acbb53eff19327fdfe068637b56e56cf2ed3ea11c5ac335cac2a4c9e1b4ba555000000000000000100000000000000010000000000000020770adc9f5a476741bb8349e40e9edfd96156aacd1c6d9e3a586653b654b6aa5b000000000000000100000000000000000000000000000020f66cbef6ba027ee51a683e2c6bfc0ba5a9c25509bcbd67fc8c6ed57fed75d4ad000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e00000000000000120000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020ace56f983bb3454baa46bf315ca6356b2478c79693612cba0ec17f56ab0277cd0000000000000001000000000000000000000000000000201cc2cb225f6ceb4dc0af62c3e4cdbff8b47664cb0876a05b70204156dc6ba240000000000000000100000000000000010000000000000020113e52f83563f3c9a8ca73087daed63db6e020f9b1908dae270f2d864860470b0000000000000001000000000000000100000000000000207558d367d7cb8046d18c333db9b72e09bb6459368f028b50b23b205b8ad03c430000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000210000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000208ce1cc949d66e29c2c057237e5763104b0ae5ea1586e63baefa724176f8b6022000000000000000100000000000000010000000000000020d3a8480b820bd6c782f5a7d8bc820d929996e9b8ab64d37789aa88140ba71654000000000000000100000000000000010000000000000020d80cc5cdbb0ec297cddfda4fd988de76b705f83576117fb5ed10b48a9b959bb0000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000210000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020664e0e862b31c615e1e57d6dcded9bf393ebbaacc99d0254d87cdda7f877d2540000000000000001000000000000000100000000000000200c04f15905ef31c5e7f95badee6ef48214fcec9a48dff3643ba924349c73daaf00000000000000010000000000000001000000000000002072ecff12c730f10ff239ae5d5ec6e0ecd7a93d7c6f58e48faaf9efc69af68a03000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002100000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020b30c05a30bda76fc1bf437fc950c818b4d0bbb12dda331a149e84851a5b2512c000000000000000100000000000000010000000000000020730dfd755e8bc4f3764cb6605b45ef36f2bf687e9a26d67efca88040d92455b70000000000000001000000000000000100000000000000209636be1e4b8abd68cb43b0274502fefa81dd44893b457dcd361701b81c119a5b00000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002100000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c8000000000000000600000000000000010000000000000000000000000000002046fac6a73e8bccd0e5adf631aa1d059f3165a71695159b70d7e97f814f6fcd28000000000000000100000000000000010000000000000020915a39315080ec6ed5cebeeb6b7dad131f8106659b1ee09e93e1bfae78eff704000000000000000100000000000000010000000000000020477f5dc159d908adca707dc48fabcb5e7760807f37a220b1e911898710933d820000000000000001000000000000000100000000000000209576be5e5da6b2eb368bfdcbab0970717630f25877a6b9664c345d452e1514d800000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000210000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d000000000000000600000000000000010000000000000000000000000000002069280c0ca4e25652715e70e30e873d0cee391df4455276e4338db0638372d77b00000000000000010000000000000001000000000000002053d45841276f047a813d87d7cc211dcf1d7057a623db3785c133608ed6d4499b0000000000000001000000000000000100000000000000200df38a45fc387ce7388d7edbd245b965091614cd5a7aa1118bcbb22942e4bb9300000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000210000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000208ce1cc949d66e29c2c057237e5763104b0ae5ea1586e63baefa724176f8b6022000000000000000100000000000000010000000000000020d3a8480b820bd6c782f5a7d8bc820d929996e9b8ab64d37789aa88140ba71654000000000000000100000000000000010000000000000020d80cc5cdbb0ec297cddfda4fd988de76b705f83576117fb5ed10b48a9b959bb0000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000210000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020664e0e862b31c615e1e57d6dcded9bf393ebbaacc99d0254d87cdda7f877d2540000000000000001000000000000000100000000000000200c04f15905ef31c5e7f95badee6ef48214fcec9a48dff3643ba924349c73daaf00000000000000010000000000000001000000000000002072ecff12c730f10ff239ae5d5ec6e0ecd7a93d7c6f58e48faaf9efc69af68a03000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002100000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020b30c05a30bda76fc1bf437fc950c818b4d0bbb12dda331a149e84851a5b2512c000000000000000100000000000000010000000000000020730dfd755e8bc4f3764cb6605b45ef36f2bf687e9a26d67efca88040d92455b70000000000000001000000000000000100000000000000209636be1e4b8abd68cb43b0274502fefa81dd44893b457dcd361701b81c119a5b00000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002100000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c8000000000000000600000000000000010000000000000000000000000000002046fac6a73e8bccd0e5adf631aa1d059f3165a71695159b70d7e97f814f6fcd28000000000000000100000000000000010000000000000020915a39315080ec6ed5cebeeb6b7dad131f8106659b1ee09e93e1bfae78eff704000000000000000100000000000000010000000000000020477f5dc159d908adca707dc48fabcb5e7760807f37a220b1e911898710933d820000000000000001000000000000000100000000000000209576be5e5da6b2eb368bfdcbab0970717630f25877a6b9664c345d452e1514d800000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000210000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d000000000000000600000000000000010000000000000000000000000000002069280c0ca4e25652715e70e30e873d0cee391df4455276e4338db0638372d77b00000000000000010000000000000001000000000000002053d45841276f047a813d87d7cc211dcf1d7057a623db3785c133608ed6d4499b0000000000000001000000000000000100000000000000200df38a45fc387ce7388d7edbd245b965091614cd5a7aa1118bcbb22942e4bb9300000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c00000000000000000b0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000000000000000000002039b919da8460a7ced2f434d93e191c2e5f3ed6c16c5a563dde2d4088fe06329200000000000000010000000000000000000000000000002077631bed7d662ca95d374bb50963259dbae6fd85816b13bb5b057a5a051aa21b00000000000000010000000000000001000000000000002093c99af014a3514bdcc84cdf0e72d42f20038a64dcba4071efdcce4cf6a76949000000000000000100000000000000000000000000000020a07353c5029eac2f5fb14b7aaa839b9ff2b01dd6feeb51c341820462ab766306000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000000b0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000000000000000000205927b440119d91d39c3733f63f01775abc00426dddfe05736c43d2ec0905363a000000000000000100000000000000000000000000000020e36620d473cd1c4b96249370e894999a209a749fa70fb571d7cdc8d7dd5f2e54000000000000000100000000000000010000000000000020e23783733f2d245e0738ed8503ab8c6aef3aa526888e6b8dc670bfe0e224b8ff000000000000000100000000000000000000000000000020a45ee5473875579efd498bb9c2b6715752587f3d8b2592b454ecfaa7a4333af7000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000b00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000204882930d8658cd73eb924ef4d6ae5265e5f946d6d6e4198a4fa473b0c46262050000000000000001000000000000000000000000000000207ef9b1eced9bdd4e378e5106730b3ce6e1a70306d54252b4b0f320e029c8e300000000000000000100000000000000010000000000000020f0fde6ec22a87dce3563e4a3872da6fb65e744b1d395bcb2f83911d9ac21f1af00000000000000010000000000000000000000000000002017851b1e9a70cbcc32eb47f7ecfae668e5855348fa541f9cd9cc78455c2f52ed00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000b00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c80000000000000006000000000000000100000000000000000000000000000020b46f9374d4abefac0304eb77c7a7b3dcf0a10b2b88339f1d5c7facae494731af0000000000000001000000000000000000000000000000206a0132c6671ddf81a075e68fc636dda2913052e082ca48ba844539ede1ce7e47000000000000000100000000000000010000000000000020b9f47dcff780b5d8194c00a89264a3eb8f7603479d71eafc29a9074cf428d552000000000000000100000000000000000000000000000020dab612d00eddc0f70596df141a7d854a89a2e881b62296a42c239a68553568e5000000000000000100000000000000010000000000000020af432f62da03d6c11c3a74cb9e51ad7ca0f6619071e932aa2646111abd2fbc19000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e000000000000000b0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020dbe2f7949c2848e292bebf1a30a4e72f4262acd55370a4d9815d9aa7bcaa012000000000000000010000000000000000000000000000002016c3a237b73b54311219f282ce47e3b5a782e5274e048bda1d6866b9819192e300000000000000010000000000000001000000000000002045bb9d506f74a19123d41a442d1de0fdfbaca183dfb2af0cc5027621a991b2b2000000000000000100000000000000000000000000000020dd7d0f921f70b1c400e2053b21a89931a0d729e3164966f8cdf0a44bdd836801000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000220000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020edbe94d8e8de5db41d18ad91301afefc3b3b6d97bf6925be6996ce1550d25f9f0000000000000001000000000000000000000000000000204b06bb483c21112f9cdd7eff56256a5630233353d836a5d668685bfdc6a4041e000000000000000100000000000000010000000000000020d80cc5cdbb0ec297cddfda4fd988de76b705f83576117fb5ed10b48a9b959bb0000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000220000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e000000000000000600000000000000010000000000000001000000000000002031207018e5337547011f31a2cb9b9576fae9ef496ac1f65b332c737338573b5f000000000000000100000000000000000000000000000020393cccd066625747c7bb15e378554916665b267344c9bf3a1f1e239b4d3166fc00000000000000010000000000000001000000000000002072ecff12c730f10ff239ae5d5ec6e0ecd7a93d7c6f58e48faaf9efc69af68a03000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002200000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000010000000000000020a502afaa3bdb59ad846d02004e3f49dd5a5e428cdc9767660dbcc0195391e24a000000000000000100000000000000000000000000000020d2096ab2fdbc4ed9fcb3f176b5554a872f0e907766b3c2d7a358a3e01f8fde260000000000000001000000000000000100000000000000209636be1e4b8abd68cb43b0274502fefa81dd44893b457dcd361701b81c119a5b00000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002200000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000100000000000000204819052a8ccb76ad656730ae11bbcc18eb0f1b12a8aa023c2d5d1bfea8985ee90000000000000001000000000000000000000000000000203f56dd85e0a194ac8bc2d0dacc2bffefd23ba5e99d127148c082bdec01a7698d000000000000000100000000000000010000000000000020477f5dc159d908adca707dc48fabcb5e7760807f37a220b1e911898710933d820000000000000001000000000000000100000000000000209576be5e5da6b2eb368bfdcbab0970717630f25877a6b9664c345d452e1514d800000000000000010000000000000001000000000000002011e6361d94e29e602c179933f6b007a0f2376d7c6d924a82381aa636c3604600000000000000000100000000000000000000000000000020218202cea758f3df7f6d3b87d5a2fd0cbcb568db623eb6813d3ec1dd11ce39e100000000000000220000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d000000000000000600000000000000010000000000000001000000000000002063f325f5186e10e6614bb85c0bcb3ba848415c8cb1225f99c8929543d82f2c90000000000000000100000000000000000000000000000020a58adfd2e024e06c922fbd6f0c6e29c0aa467b652272a9cd35196719e496cfd60000000000000001000000000000000100000000000000200df38a45fc387ce7388d7edbd245b965091614cd5a7aa1118bcbb22942e4bb9300000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c00000000000000001c0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020dc473fbc2982536b3551210ff22dbfb86908bbdebdf4f9fcee59b94ae742f3e7000000000000000100000000000000010000000000000020f09e0551c369e8794e51f609fb64bc262c407f13317ebef64c17a4fb128e2b29000000000000000100000000000000000000000000000020cd05d024922075f0d2191dff6b6b8977913542096c687b1aa6a6880a30f4f1780000000000000001000000000000000000000000000000207a1424d413417eb28a018fd1d76958181366ee57c4d59ae0034a29ddbb1d2b590000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000001c0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020e326c18eb9bc5c22eeb0104ad67db5825445f27758a763e7a15c98afa3c60ee90000000000000001000000000000000100000000000000206f5361d60e69e71d110471fa559e5f9e4f0cacff5c4d21eefb041e57495d1c6b000000000000000100000000000000000000000000000020e216681d6f38da8409d5c77334f0f51de756720aaa028880c59d6a832095ad4f000000000000000100000000000000000000000000000020938375cf40ac56222ab4d00edc1add4f0c4d45658ef352f9c39d534a9202dcf7000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001c00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000010000000000000020b78c2786fd393a8a189ea69596d8d08620268eb4bee8ba8309a80def966a7437000000000000000100000000000000010000000000000020a3471994e86c3ff9f0b757f440b5ded70f1e167a40e6eff28a571f2a79e14df600000000000000010000000000000000000000000000002053b3233efca5252e2055e75028fefee3391d25eb106840c102b53e90d3d1fdf6000000000000000100000000000000000000000000000020a084e70b3f9ebf137fa0b89422463d8a968230d1e0fbcf139db6e018b78315170000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001c00000000000000201d20b49f411a23940e446e331c99e2a08eca87e38df4b3fd9c1427c0d21408c800000000000000060000000000000001000000000000000100000000000000208979eb386fe5abfa278825db28a10963b3073757f7728b555d9e144460a0efe800000000000000010000000000000001000000000000002000269e3b9f38ca4fe7f736b5a97e648fa365df34c5db35b02085b50be90a5010000000000000000100000000000000000000000000000020b7d7c4fcec9b03c74f701ed9b4eedf7ec3386233c472d6ae64f7cb0ca1f7a448000000000000000100000000000000000000000000000020ce498e000ddc8371c645a265d4b98546295ae06beeb91fa03885ec7c34dce7f9000000000000000100000000000000000000000000000020f66cbef6ba027ee51a683e2c6bfc0ba5a9c25509bcbd67fc8c6ed57fed75d4ad000000000000000100000000000000010000000000000020147536707d709612d7639d9df8933dce5f644bcf2c735a95652e0a274e983b4e000000000000001c0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020b2669c955a48dabaf2c213befede7e967ab990f1c9b03bd7a65450003d408508000000000000000100000000000000010000000000000020fb06fb7152ac1f9d2222ce222624aa555ffa17371dfad3a80a1bf178befe1e6b0000000000000001000000000000000000000000000000207fe3562c7d01ca88eef4c66c817964ae9239a6df889ab475368bf430de96cdb20000000000000001000000000000000000000000000000205ef7704fa3778b449f726e5d0a98cf0942526fc336765751838fd6cbb761fb270000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb816590000000000000050000000000000002c0000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000010000000000000020c2c07f3f276414e934062d4955aca8dc433b7b5b9ba6771d317103285875782f000000000000000100000000000000010000000000000020e729602d685c416c962467dbdf1b374fb2f89942497ae09c69465d542149427c00000000000000010000000000000000000000000000002032e8e35b6c4d05bda0aaab8695414091abb260f0f580caf07b72ff3b29986e7c0000000000000001000000000000000000000000000000208d18bfe654aea77b577e209a7121f19c73856373ca451d40b088cfae2bef19bb000000000000000100000000000000010000000000000020db06796a664833a518e2c00bf6346fb8db10b06ea8fb1307c8e7a7f19004f1390000000000000001000000000000000000000000000000204542a6a3c51453625650384282b528364f8869670db893316e927172ddfe2747000000000000000c00000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000010000000000000020ecfaa397abeca57b95fa264870e3b0d25b9e2a65247e42da70b53a719eb394650000000000000001000000000000000100000000000000200be9980c1163e18238277790cffcc071785ec9746963715e219a511418a28924000000000000000100000000000000000000000000000020a776a89bc4f2a786eba2c34381fe99ee2f8ceba73c8ad4c38ed66f45a43aeb3300000000000000010000000000000000000000000000002036c82a644c18b80bdac66d0d7a55af68bc85b40e8261a12a9ed9577dcee96073000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e00000000000000240000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000010000000000000020286877622c7dee3f9b726df8cf6b2f36647e673c66e154719c3f39a60aaf270e000000000000000100000000000000010000000000000020815caac7584b30c73a6edcb69fad0803b30dab6c0eeb1fdb3ef2708942f183f10000000000000001000000000000000000000000000000209ae1efacfad0e41a98733cb067fb80adca6409ed77a5b7a7a5e39a8646e69b04000000000000000100000000000000010000000000000020967128670c13aef78d9a62dafa580cce4ebfaac9d3d33e8c96ef7874404b54c0000000000000000100000000000000010000000000000020db06796a664833a518e2c00bf6346fb8db10b06ea8fb1307c8e7a7f19004f1390000000000000001000000000000000000000000000000204542a6a3c51453625650384282b528364f8869670db893316e927172ddfe2747000000000000000400000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000010000000000000020a373b19a9282c66292451aedb1a0a1a45ad7da43bd01139c25c9475c36a4265f0000000000000001000000000000000100000000000000206cdc48c8ce67892950287b173fd6fe41fce765ef313cd71b70b31229576c8a3a0000000000000001000000000000000000000000000000205ac3e0c0928dc1f95b3a0cb7133d4fe46d1c0cc3d390de16f8dd6b622d40dc60000000000000000100000000000000010000000000000020621827b451905551eaf829ea054aab3211c35ca76af183ffa5f553c2f9db00e0000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e00000000000000080000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000010000000000000020bab72fa698c597f9e88c8bacd17f2d13f2c1c2af659e8f40e12ed1b22006ef1c0000000000000001000000000000000100000000000000206f952d8693244d6b65b0c0fc47a539018d28006e9d5dbbac920ce0e650b0de4200000000000000010000000000000001000000000000002077a72d4a8be9a9cf3f2434bb4699c5623aec717f1270fe77f4a2731328ab348e0000000000000001000000000000000000000000000000209426233854beda52809595ae5fa911799a530fed0a60de3c7efbd8ff6606a6b1000000000000000100000000000000010000000000000020badc2e129abc53610f22682a1ffb0a74bda83f742dd0ecb0b08cfd6cbe03a6270000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000000800000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d3700000000000000050000000000000001000000000000000100000000000000206f2f80380cf7bf9835e1d622f10c98a08099210e4b35923ffd3ec7bb3a934d8800000000000000010000000000000001000000000000002076092798bbae11ffd473a8a7a133f039f6d1b11ce296efcd801a47be607d80a1000000000000000100000000000000010000000000000020699b396bee8bbb307d64d22163259543ac37ce00946fbcf73e966de05eef9c7300000000000000010000000000000000000000000000002036c82a644c18b80bdac66d0d7a55af68bc85b40e8261a12a9ed9577dcee96073000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e000000000000003d0000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b500000000000000060000000000000001000000000000000000000000000000209a87d435f3724833fa9d2d432215f94833003bcf7b3ae39c5329537a8126238f000000000000000100000000000000010000000000000020de9fcbbf0b4cf96f8c6252d1760932749b156fa676b593fc09fc9e1d7b9396c6000000000000000100000000000000000000000000000020ceb822d88639120d4a9efce455fe0cd62e453835b7604cb07103614d88e38d8b000000000000000100000000000000000000000000000020b135801365efafb9c75508970632fde9fd537c15321118fabd698ac97eb960e3000000000000000100000000000000000000000000000020c492c862eb7036072f242d732e2322b2f3aea9bf014f6366103d5b4c272a8b150000000000000001000000000000000000000000000000204542a6a3c51453625650384282b528364f8869670db893316e927172ddfe2747000000000000001d00000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d3700000000000000050000000000000001000000000000000000000000000000207c0025dd3474687c664e71232135ded3e659d7182171172777feb76b24315019000000000000000100000000000000010000000000000020305b6f32a8ad902134cb88e367d52b33870079a8ff6676b1bfa2a7b0e4907234000000000000000100000000000000000000000000000020d0934d8f0b87867233aedc2b55e8222542822036fda1786e06a9b62af2083fae000000000000000100000000000000000000000000000020bea715dcebfcd755fda508b5a6d96220a218c77f36045e2f9e03186ca85c1f8d000000000000000100000000000000000000000000000020fbaf96d5da18b3b058564a2b2e5276777b4e1a444a7e2a756a6cd7558a919b2b000000000000000f0000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000000000000000000020fab2b03990319acd99c0955097dda5bf73938bcb91fb021f6eeb0c25c26186f1000000000000000100000000000000000000000000000020658ccefa4c5eec6b0b7cf50f407db621e28f0890874affc1a0cb354761e5a4700000000000000001000000000000000000000000000000206d0190fa73226ecea58d4fa21f0307d7b3f9c9df4cf0a85eafe026290e095f980000000000000001000000000000000000000000000000209426233854beda52809595ae5fa911799a530fed0a60de3c7efbd8ff6606a6b1000000000000000100000000000000010000000000000020badc2e129abc53610f22682a1ffb0a74bda83f742dd0ecb0b08cfd6cbe03a6270000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000000f00000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d3700000000000000050000000000000001000000000000000000000000000000205c42ba249eb2e1822facfcfb612f056e719320e6698e294c79b1122ed64fb8fc0000000000000001000000000000000000000000000000203cd3df94a6963f46bdfe44751e6dc6ad5eb80b2b6041ba3da949b324db729c35000000000000000100000000000000000000000000000020a776a89bc4f2a786eba2c34381fe99ee2f8ceba73c8ad4c38ed66f45a43aeb3300000000000000010000000000000000000000000000002036c82a644c18b80bdac66d0d7a55af68bc85b40e8261a12a9ed9577dcee96073000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e00000000000000130000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b5000000000000000600000000000000010000000000000000000000000000002037af43bc36647adbcec0dccf071d6ec6300cc7f2b4e7ec6c23879a0126ee9284000000000000000100000000000000000000000000000020d067d64a08b6468ea39bf48520da7c019ee74a8065a4605a092c35ca515ea8c3000000000000000100000000000000010000000000000020e6861421be6a9fd34645f939609e4eb0ab267b7b82d254d5a511a655e073d81c00000000000000010000000000000001000000000000002074228cf6968b993babb2008379776ec0567e41667f5e4bc1bcdf4efeeb3e86e10000000000000001000000000000000000000000000000204f90cc70ed241fecba0e2e462d5fc9d01f44a8dd4483537b99c0454f1a4f7d180000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000001300000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000000000000000000020b63c454c722546dbcd496b3b283043b91d86608cf0a616343bd16691db411fc6000000000000000100000000000000000000000000000020f0ec652053e3b82e2a05505cbf5a8b6250ee4ccf2c6d6208c5afc5f67ee7676f000000000000000100000000000000010000000000000020403f8b1e8f4ead900bb367e27daa73e741f742a172366697f6271850f34d853700000000000000010000000000000001000000000000002025dba43c20154eb4e9183e191f0597c61034c6517b0a2a8f9a18ab98f482f7c5000000000000000100000000000000000000000000000020fbaf96d5da18b3b058564a2b2e5276777b4e1a444a7e2a756a6cd7558a919b2b00000000000000030000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b500000000000000060000000000000001000000000000000000000000000000202b8392032be94ab4c1ee7918de44801642659e7321adce3c0ccb560f1d673f98000000000000000100000000000000000000000000000020ac23e9a233518f7270f2910712fb77590ee8169c28fdce8b90feb16d54c7bf450000000000000001000000000000000100000000000000209f7e22c7d1dec7bd7360c0814267e1798fd769c8160bec810dc6bcf6fdc2d9f800000000000000010000000000000001000000000000002011420a4ee9a29da7ddae2bcd24e020edee7628cf483723930d352730ffc2789c000000000000000100000000000000010000000000000020badc2e129abc53610f22682a1ffb0a74bda83f742dd0ecb0b08cfd6cbe03a6270000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000000300000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d37000000000000000500000000000000010000000000000000000000000000002097faac4a0447ebc8cef844bce3f6743c966afb7d9c33dbe847002b5f2d1907be000000000000000100000000000000000000000000000020e04fd887c0f5fbb6db27f67bde93e088d30f04a45169d19816d7ac6701f57e0f000000000000000100000000000000010000000000000020601587465f813daa305f255198266f86d446e06b18fe6a38d22da16facdf643a000000000000000100000000000000010000000000000020621827b451905551eaf829ea054aab3211c35ca76af183ffa5f553c2f9db00e0000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e000000000000001e0000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000010000000000000020a924dbab7ef2bd52d3c47f11b030d7f1676cb65c0c7e465ab282666bcd6fa48a00000000000000010000000000000000000000000000002080eb0e1f22e3f4abcbe0a59bbba3f37580d80ed5c804773620c9cc1dde04486e0000000000000001000000000000000000000000000000203e6d9a000e282de64ca518d452164e1ee46e2b8594d53b6571bcd13e8c9e633e000000000000000100000000000000000000000000000020ddecb82087a47e9f37b5b8ef44a354d403416d4111650fc368c40ec20d6221d90000000000000001000000000000000000000000000000204f90cc70ed241fecba0e2e462d5fc9d01f44a8dd4483537b99c0454f1a4f7d180000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000001e00000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d3700000000000000050000000000000001000000000000000100000000000000201732611234cc439b0e1e1eb8e15a264061f5f345c1246482ff691c020f959fb800000000000000010000000000000000000000000000002000a83618f9e27263d0bdf24eae6ac440861a4bc74f98aa827aa7fb650ccc4ca8000000000000000100000000000000000000000000000020d0934d8f0b87867233aedc2b55e8222542822036fda1786e06a9b62af2083fae000000000000000100000000000000000000000000000020bea715dcebfcd755fda508b5a6d96220a218c77f36045e2f9e03186ca85c1f8d000000000000000100000000000000000000000000000020fbaf96d5da18b3b058564a2b2e5276777b4e1a444a7e2a756a6cd7558a919b2b00000000000000200000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000010000000000000020a0d976d4c7f8bea384fc177852387fd86e5662748415f3d19195ed8a700f32bb000000000000000100000000000000010000000000000020a7af022083c851de2c525ced8f9fd109351e953d42093d3e7890a9aec3b792ed0000000000000001000000000000000100000000000000209ecf5eb00ae02bc6c96683d195c3bcdc1abd10ee8958abdacae0a04c9fdea068000000000000000100000000000000010000000000000020967128670c13aef78d9a62dafa580cce4ebfaac9d3d33e8c96ef7874404b54c0000000000000000100000000000000010000000000000020db06796a664833a518e2c00bf6346fb8db10b06ea8fb1307c8e7a7f19004f1390000000000000001000000000000000000000000000000204542a6a3c51453625650384282b528364f8869670db893316e927172ddfe2747000000000000000000000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d37000000000000000500000000000000010000000000000001000000000000002068632f7198881a6101e366cd79d5974983362906a08365b044dddb7a454162040000000000000001000000000000000100000000000000206c6b0e0e89b0b49039c1a7adfc83697941ea7397b6981ba0bd48a1dfb41e5047000000000000000100000000000000010000000000000020601587465f813daa305f255198266f86d446e06b18fe6a38d22da16facdf643a000000000000000100000000000000010000000000000020621827b451905551eaf829ea054aab3211c35ca76af183ffa5f553c2f9db00e0000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e000000000000003f0000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b500000000000000060000000000000001000000000000000000000000000000203373f78a78202d7e6df091601779ff2a45dc4dc28d7c25e2b570bc963de53870000000000000000100000000000000000000000000000020b44997434effcfa4dc62c39dad5a5892b769fd927d8a9cbcdb69f6408278368f000000000000000100000000000000000000000000000020ceb822d88639120d4a9efce455fe0cd62e453835b7604cb07103614d88e38d8b000000000000000100000000000000000000000000000020b135801365efafb9c75508970632fde9fd537c15321118fabd698ac97eb960e3000000000000000100000000000000000000000000000020c492c862eb7036072f242d732e2322b2f3aea9bf014f6366103d5b4c272a8b150000000000000001000000000000000000000000000000204542a6a3c51453625650384282b528364f8869670db893316e927172ddfe2747000000000000001f00000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000000000000000000020229dbd2f0df8dca82fbe0a991399b322a6368fa8901907d5780c80921f3611f700000000000000010000000000000000000000000000002000a83618f9e27263d0bdf24eae6ac440861a4bc74f98aa827aa7fb650ccc4ca8000000000000000100000000000000000000000000000020d0934d8f0b87867233aedc2b55e8222542822036fda1786e06a9b62af2083fae000000000000000100000000000000000000000000000020bea715dcebfcd755fda508b5a6d96220a218c77f36045e2f9e03186ca85c1f8d000000000000000100000000000000000000000000000020fbaf96d5da18b3b058564a2b2e5276777b4e1a444a7e2a756a6cd7558a919b2b00000000000000360000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b500000000000000060000000000000001000000000000000100000000000000204b1b5c8573afde567a867833a96d3c9f4503b04d326fce228ee7931fe31a862700000000000000010000000000000000000000000000002039df29ad33ec98376e1c39358dada50dbed580582440c24d6550c1287d1c257b000000000000000100000000000000000000000000000020e8f75444f8e9d1862c495be040e24c2bc75ad0343247743671a10c971d478758000000000000000100000000000000010000000000000020f84397231cefa06e4be5bd6eda42b45e0d560cde33fa198edaf356e467a9d4f2000000000000000100000000000000000000000000000020c492c862eb7036072f242d732e2322b2f3aea9bf014f6366103d5b4c272a8b150000000000000001000000000000000000000000000000204542a6a3c51453625650384282b528364f8869670db893316e927172ddfe2747000000000000001600000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d3700000000000000050000000000000001000000000000000100000000000000205150809ffc7d7e8f1ec5f3e939eea11c77f109115cfaebdeed6d8a83c12e033e000000000000000100000000000000000000000000000020dcc973be1a6e187f63dfe83d032f028970a1ac0546f5b4fd5eb6beef8ea394d20000000000000001000000000000000000000000000000200363c105ec8d2707b1f0e2017bffda972db4e8da5174b96355a9d0fcfde90b2000000000000000010000000000000001000000000000002025dba43c20154eb4e9183e191f0597c61034c6517b0a2a8f9a18ab98f482f7c5000000000000000100000000000000000000000000000020fbaf96d5da18b3b058564a2b2e5276777b4e1a444a7e2a756a6cd7558a919b2b00000000000000090000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b500000000000000060000000000000001000000000000000000000000000000206de02f75c6c170d47e586dca99550bb8513f910f1df1d6d2ed90bda864cfc1dc0000000000000001000000000000000100000000000000206f952d8693244d6b65b0c0fc47a539018d28006e9d5dbbac920ce0e650b0de4200000000000000010000000000000001000000000000002077a72d4a8be9a9cf3f2434bb4699c5623aec717f1270fe77f4a2731328ab348e0000000000000001000000000000000000000000000000209426233854beda52809595ae5fa911799a530fed0a60de3c7efbd8ff6606a6b1000000000000000100000000000000010000000000000020badc2e129abc53610f22682a1ffb0a74bda83f742dd0ecb0b08cfd6cbe03a6270000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000000900000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d3700000000000000050000000000000001000000000000000000000000000000202997b274436da648df49d0cba61ace0ea7955255d950ceeed6de9f00e2590e7f00000000000000010000000000000001000000000000002076092798bbae11ffd473a8a7a133f039f6d1b11ce296efcd801a47be607d80a1000000000000000100000000000000010000000000000020699b396bee8bbb307d64d22163259543ac37ce00946fbcf73e966de05eef9c7300000000000000010000000000000000000000000000002036c82a644c18b80bdac66d0d7a55af68bc85b40e8261a12a9ed9577dcee96073000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e000000000000003e0000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000010000000000000020d2a56e338943f660e11a046bc1b675d80416e68612077a53bceafc0c9d3972cf000000000000000100000000000000000000000000000020b44997434effcfa4dc62c39dad5a5892b769fd927d8a9cbcdb69f6408278368f000000000000000100000000000000000000000000000020ceb822d88639120d4a9efce455fe0cd62e453835b7604cb07103614d88e38d8b000000000000000100000000000000000000000000000020b135801365efafb9c75508970632fde9fd537c15321118fabd698ac97eb960e3000000000000000100000000000000000000000000000020c492c862eb7036072f242d732e2322b2f3aea9bf014f6366103d5b4c272a8b150000000000000001000000000000000000000000000000204542a6a3c51453625650384282b528364f8869670db893316e927172ddfe2747000000000000001e00000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d3700000000000000050000000000000001000000000000000100000000000000201732611234cc439b0e1e1eb8e15a264061f5f345c1246482ff691c020f959fb800000000000000010000000000000000000000000000002000a83618f9e27263d0bdf24eae6ac440861a4bc74f98aa827aa7fb650ccc4ca8000000000000000100000000000000000000000000000020d0934d8f0b87867233aedc2b55e8222542822036fda1786e06a9b62af2083fae000000000000000100000000000000000000000000000020bea715dcebfcd755fda508b5a6d96220a218c77f36045e2f9e03186ca85c1f8d000000000000000100000000000000000000000000000020fbaf96d5da18b3b058564a2b2e5276777b4e1a444a7e2a756a6cd7558a919b2b000000000000002f0000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000000000000000000020fef0b99dfa683060ea46e917c4d75d1dc890f4f7f64302ef0c08f2fc58b3d8720000000000000001000000000000000000000000000000203e25bbd6aa6153faa8b97622023b206e12a613aaaeedf0c444a332dd9680ad7a00000000000000010000000000000000000000000000002032e8e35b6c4d05bda0aaab8695414091abb260f0f580caf07b72ff3b29986e7c0000000000000001000000000000000000000000000000208d18bfe654aea77b577e209a7121f19c73856373ca451d40b088cfae2bef19bb000000000000000100000000000000010000000000000020db06796a664833a518e2c00bf6346fb8db10b06ea8fb1307c8e7a7f19004f1390000000000000001000000000000000000000000000000204542a6a3c51453625650384282b528364f8869670db893316e927172ddfe2747000000000000000f00000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d3700000000000000050000000000000001000000000000000000000000000000205c42ba249eb2e1822facfcfb612f056e719320e6698e294c79b1122ed64fb8fc0000000000000001000000000000000000000000000000203cd3df94a6963f46bdfe44751e6dc6ad5eb80b2b6041ba3da949b324db729c35000000000000000100000000000000000000000000000020a776a89bc4f2a786eba2c34381fe99ee2f8ceba73c8ad4c38ed66f45a43aeb3300000000000000010000000000000000000000000000002036c82a644c18b80bdac66d0d7a55af68bc85b40e8261a12a9ed9577dcee96073000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e00000000000000280000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000010000000000000020a7e01b15d25b196f35c883f2a5bdb4161c019683f0f0e5a68aa7b3b39e8963fa00000000000000010000000000000001000000000000002040a57d1224104238995cb59f730356178a598d9367650309dad0f5e01202994500000000000000010000000000000001000000000000002015342a6f5f9edf147d8ced1ebdedf13746249ff32b7b21422eb32489f34820a20000000000000001000000000000000000000000000000208d18bfe654aea77b577e209a7121f19c73856373ca451d40b088cfae2bef19bb000000000000000100000000000000010000000000000020db06796a664833a518e2c00bf6346fb8db10b06ea8fb1307c8e7a7f19004f1390000000000000001000000000000000000000000000000204542a6a3c51453625650384282b528364f8869670db893316e927172ddfe2747000000000000000800000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d3700000000000000050000000000000001000000000000000100000000000000206f2f80380cf7bf9835e1d622f10c98a08099210e4b35923ffd3ec7bb3a934d8800000000000000010000000000000001000000000000002076092798bbae11ffd473a8a7a133f039f6d1b11ce296efcd801a47be607d80a1000000000000000100000000000000010000000000000020699b396bee8bbb307d64d22163259543ac37ce00946fbcf73e966de05eef9c7300000000000000010000000000000000000000000000002036c82a644c18b80bdac66d0d7a55af68bc85b40e8261a12a9ed9577dcee96073000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e000000000000002d0000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000000000000000000020335c83eb71bef4ff6d1780b97e88f07b15f33b84f55edf9ca782c83b89789fb7000000000000000100000000000000010000000000000020e729602d685c416c962467dbdf1b374fb2f89942497ae09c69465d542149427c00000000000000010000000000000000000000000000002032e8e35b6c4d05bda0aaab8695414091abb260f0f580caf07b72ff3b29986e7c0000000000000001000000000000000000000000000000208d18bfe654aea77b577e209a7121f19c73856373ca451d40b088cfae2bef19bb000000000000000100000000000000010000000000000020db06796a664833a518e2c00bf6346fb8db10b06ea8fb1307c8e7a7f19004f1390000000000000001000000000000000000000000000000204542a6a3c51453625650384282b528364f8869670db893316e927172ddfe2747000000000000000d00000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000000000000000000020442e9e3ed979fa14791ff4ee3864cfc712bf52ca822d156cdf131c5c1d2932f60000000000000001000000000000000100000000000000200be9980c1163e18238277790cffcc071785ec9746963715e219a511418a28924000000000000000100000000000000000000000000000020a776a89bc4f2a786eba2c34381fe99ee2f8ceba73c8ad4c38ed66f45a43aeb3300000000000000010000000000000000000000000000002036c82a644c18b80bdac66d0d7a55af68bc85b40e8261a12a9ed9577dcee96073000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e00000000000000190000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000000000000000000020d9a98d3747b6b90c3b32e2e06d22f2107f108062892c37dfe7493646c0056f45000000000000000100000000000000010000000000000020b3ba604d9c21cf7df802e28041ef5c11272860bf7d4d34385f1ffa34ae85d5840000000000000001000000000000000100000000000000206e66f55b5995a5ef59854a16beb1354fd005e344d9d57849b7d59a2306e3949e000000000000000100000000000000000000000000000020ddecb82087a47e9f37b5b8ef44a354d403416d4111650fc368c40ec20d6221d90000000000000001000000000000000000000000000000204f90cc70ed241fecba0e2e462d5fc9d01f44a8dd4483537b99c0454f1a4f7d180000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000001900000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d3700000000000000050000000000000001000000000000000000000000000000200dced4058ff4b92a15f33efa1070873d8d2365867bca476b260bc2f4afa9ae4d000000000000000100000000000000010000000000000020bfd362600dccae9031f70ffae7875813d37541f92f07a269b1b08afeac36d733000000000000000100000000000000010000000000000020c886027207546165dc36f9feb8449e2493f24eeb789c2d655e7b0d3e1ae16178000000000000000100000000000000000000000000000020bea715dcebfcd755fda508b5a6d96220a218c77f36045e2f9e03186ca85c1f8d000000000000000100000000000000000000000000000020fbaf96d5da18b3b058564a2b2e5276777b4e1a444a7e2a756a6cd7558a919b2b000000000000002e0000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b500000000000000060000000000000001000000000000000100000000000000205bac9264cd04a7367b65db9348ed64090646a5f1f5d3a9b618f2ef5e5efbcfaa0000000000000001000000000000000000000000000000203e25bbd6aa6153faa8b97622023b206e12a613aaaeedf0c444a332dd9680ad7a00000000000000010000000000000000000000000000002032e8e35b6c4d05bda0aaab8695414091abb260f0f580caf07b72ff3b29986e7c0000000000000001000000000000000000000000000000208d18bfe654aea77b577e209a7121f19c73856373ca451d40b088cfae2bef19bb000000000000000100000000000000010000000000000020db06796a664833a518e2c00bf6346fb8db10b06ea8fb1307c8e7a7f19004f1390000000000000001000000000000000000000000000000204542a6a3c51453625650384282b528364f8869670db893316e927172ddfe2747000000000000000e00000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d37000000000000000500000000000000010000000000000001000000000000002073ce048b3dd16c5e4de22971ae3058ad48ee51e4ad562f8879b49588e7a9909f0000000000000001000000000000000000000000000000203cd3df94a6963f46bdfe44751e6dc6ad5eb80b2b6041ba3da949b324db729c35000000000000000100000000000000000000000000000020a776a89bc4f2a786eba2c34381fe99ee2f8ceba73c8ad4c38ed66f45a43aeb3300000000000000010000000000000000000000000000002036c82a644c18b80bdac66d0d7a55af68bc85b40e8261a12a9ed9577dcee96073000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e00000000000000330000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b500000000000000060000000000000001000000000000000000000000000000203ff906a7deaafe3ef357a718311dc0f7f78fd8e88d924cba55cabd9cc97ecd4f00000000000000010000000000000000000000000000002056746c25ebe82cbe447039d3c47e332cc9608ab076e123cf73257f66b588609300000000000000010000000000000001000000000000002029d23a14c1825a8c3994b61aabc559c36aa999908df2d475a6af515455d5f628000000000000000100000000000000010000000000000020f84397231cefa06e4be5bd6eda42b45e0d560cde33fa198edaf356e467a9d4f2000000000000000100000000000000000000000000000020c492c862eb7036072f242d732e2322b2f3aea9bf014f6366103d5b4c272a8b150000000000000001000000000000000000000000000000204542a6a3c51453625650384282b528364f8869670db893316e927172ddfe2747000000000000001300000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000000000000000000020b63c454c722546dbcd496b3b283043b91d86608cf0a616343bd16691db411fc6000000000000000100000000000000000000000000000020f0ec652053e3b82e2a05505cbf5a8b6250ee4ccf2c6d6208c5afc5f67ee7676f000000000000000100000000000000010000000000000020403f8b1e8f4ead900bb367e27daa73e741f742a172366697f6271850f34d853700000000000000010000000000000001000000000000002025dba43c20154eb4e9183e191f0597c61034c6517b0a2a8f9a18ab98f482f7c5000000000000000100000000000000000000000000000020fbaf96d5da18b3b058564a2b2e5276777b4e1a444a7e2a756a6cd7558a919b2b00000000000000000000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b5000000000000000600000000000000010000000000000001000000000000002055f2f80cf32bc6f1f07362774e677791e8734fe30fc5ad449f4b774eaa49e74f000000000000000100000000000000010000000000000020a91f430325e85f2ffdbcb606ec266aa97007b05091da9344a82f1815850ce69b0000000000000001000000000000000100000000000000209f7e22c7d1dec7bd7360c0814267e1798fd769c8160bec810dc6bcf6fdc2d9f800000000000000010000000000000001000000000000002011420a4ee9a29da7ddae2bcd24e020edee7628cf483723930d352730ffc2789c000000000000000100000000000000010000000000000020badc2e129abc53610f22682a1ffb0a74bda83f742dd0ecb0b08cfd6cbe03a6270000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000000000000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d37000000000000000500000000000000010000000000000001000000000000002068632f7198881a6101e366cd79d5974983362906a08365b044dddb7a454162040000000000000001000000000000000100000000000000206c6b0e0e89b0b49039c1a7adfc83697941ea7397b6981ba0bd48a1dfb41e5047000000000000000100000000000000010000000000000020601587465f813daa305f255198266f86d446e06b18fe6a38d22da16facdf643a000000000000000100000000000000010000000000000020621827b451905551eaf829ea054aab3211c35ca76af183ffa5f553c2f9db00e0000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e00000000000000100000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b500000000000000060000000000000001000000000000000100000000000000207c1aa40ae97c97f452dea63398ce52a26a2db03daaeceb26f14b9ba21a85111900000000000000010000000000000001000000000000002057d2d9d03674b3e38a93b4406b4e1ffc878eccaf3461f1b576734c16afe22ae4000000000000000100000000000000010000000000000020e6861421be6a9fd34645f939609e4eb0ab267b7b82d254d5a511a655e073d81c00000000000000010000000000000001000000000000002074228cf6968b993babb2008379776ec0567e41667f5e4bc1bcdf4efeeb3e86e10000000000000001000000000000000000000000000000204f90cc70ed241fecba0e2e462d5fc9d01f44a8dd4483537b99c0454f1a4f7d180000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000001000000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000010000000000000020345fab90e725b27b13a4b4fbff5a81563e8390a9f9fa107825b2af11d2621764000000000000000100000000000000010000000000000020e8d78d98ab6f73caf41fe4be95ef5283fdc5337af173ba4ebdad0f294793efd3000000000000000100000000000000010000000000000020403f8b1e8f4ead900bb367e27daa73e741f742a172366697f6271850f34d853700000000000000010000000000000001000000000000002025dba43c20154eb4e9183e191f0597c61034c6517b0a2a8f9a18ab98f482f7c5000000000000000100000000000000000000000000000020fbaf96d5da18b3b058564a2b2e5276777b4e1a444a7e2a756a6cd7558a919b2b000000000000001c0000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b500000000000000060000000000000001000000000000000100000000000000206d9a358b33dcf96c3067538617c53b57dd6f2a00b55df5e16231d9886ef2309e000000000000000100000000000000010000000000000020b1b98dc4c3810469ed92d34af15b9dbb66a057d2970d5d34c334e5e997e66c530000000000000001000000000000000000000000000000203e6d9a000e282de64ca518d452164e1ee46e2b8594d53b6571bcd13e8c9e633e000000000000000100000000000000000000000000000020ddecb82087a47e9f37b5b8ef44a354d403416d4111650fc368c40ec20d6221d90000000000000001000000000000000000000000000000204f90cc70ed241fecba0e2e462d5fc9d01f44a8dd4483537b99c0454f1a4f7d180000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000001c00000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000010000000000000020ef6887e319d855b8560c7872c9f2b7503306572e9eb6b791fd550588a2802115000000000000000100000000000000010000000000000020305b6f32a8ad902134cb88e367d52b33870079a8ff6676b1bfa2a7b0e4907234000000000000000100000000000000000000000000000020d0934d8f0b87867233aedc2b55e8222542822036fda1786e06a9b62af2083fae000000000000000100000000000000000000000000000020bea715dcebfcd755fda508b5a6d96220a218c77f36045e2f9e03186ca85c1f8d000000000000000100000000000000000000000000000020fbaf96d5da18b3b058564a2b2e5276777b4e1a444a7e2a756a6cd7558a919b2b000000000000002b0000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b5000000000000000600000000000000010000000000000000000000000000002005378cbace6f0481acfbc59cfbdc5773df0a179feabacca027f711b03981521f000000000000000100000000000000000000000000000020ba798144c307a13d14d44367dc13adc60336eb9e88465586dd3410d3c3313d2a00000000000000010000000000000001000000000000002015342a6f5f9edf147d8ced1ebdedf13746249ff32b7b21422eb32489f34820a20000000000000001000000000000000000000000000000208d18bfe654aea77b577e209a7121f19c73856373ca451d40b088cfae2bef19bb000000000000000100000000000000010000000000000020db06796a664833a518e2c00bf6346fb8db10b06ea8fb1307c8e7a7f19004f1390000000000000001000000000000000000000000000000204542a6a3c51453625650384282b528364f8869670db893316e927172ddfe2747000000000000000b00000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000000000000000000020020fb0d418f335acb45648b34e1cfd88648c6a8edbbf0cfa344bf43c9d954d80000000000000000100000000000000000000000000000020f79785de95b5398ac0f3d55dd18140171b7f4ca125f9545b06e1e7691a33f527000000000000000100000000000000010000000000000020699b396bee8bbb307d64d22163259543ac37ce00946fbcf73e966de05eef9c7300000000000000010000000000000000000000000000002036c82a644c18b80bdac66d0d7a55af68bc85b40e8261a12a9ed9577dcee96073000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e00000000000000000000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b5000000000000000600000000000000010000000000000001000000000000002055f2f80cf32bc6f1f07362774e677791e8734fe30fc5ad449f4b774eaa49e74f000000000000000100000000000000010000000000000020a91f430325e85f2ffdbcb606ec266aa97007b05091da9344a82f1815850ce69b0000000000000001000000000000000100000000000000209f7e22c7d1dec7bd7360c0814267e1798fd769c8160bec810dc6bcf6fdc2d9f800000000000000010000000000000001000000000000002011420a4ee9a29da7ddae2bcd24e020edee7628cf483723930d352730ffc2789c000000000000000100000000000000010000000000000020badc2e129abc53610f22682a1ffb0a74bda83f742dd0ecb0b08cfd6cbe03a6270000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000000000000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d37000000000000000500000000000000010000000000000001000000000000002068632f7198881a6101e366cd79d5974983362906a08365b044dddb7a454162040000000000000001000000000000000100000000000000206c6b0e0e89b0b49039c1a7adfc83697941ea7397b6981ba0bd48a1dfb41e5047000000000000000100000000000000010000000000000020601587465f813daa305f255198266f86d446e06b18fe6a38d22da16facdf643a000000000000000100000000000000010000000000000020621827b451905551eaf829ea054aab3211c35ca76af183ffa5f553c2f9db00e0000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e00000000000000030000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b500000000000000060000000000000001000000000000000000000000000000202b8392032be94ab4c1ee7918de44801642659e7321adce3c0ccb560f1d673f98000000000000000100000000000000000000000000000020ac23e9a233518f7270f2910712fb77590ee8169c28fdce8b90feb16d54c7bf450000000000000001000000000000000100000000000000209f7e22c7d1dec7bd7360c0814267e1798fd769c8160bec810dc6bcf6fdc2d9f800000000000000010000000000000001000000000000002011420a4ee9a29da7ddae2bcd24e020edee7628cf483723930d352730ffc2789c000000000000000100000000000000010000000000000020badc2e129abc53610f22682a1ffb0a74bda83f742dd0ecb0b08cfd6cbe03a6270000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000000300000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d37000000000000000500000000000000010000000000000000000000000000002097faac4a0447ebc8cef844bce3f6743c966afb7d9c33dbe847002b5f2d1907be000000000000000100000000000000000000000000000020e04fd887c0f5fbb6db27f67bde93e088d30f04a45169d19816d7ac6701f57e0f000000000000000100000000000000010000000000000020601587465f813daa305f255198266f86d446e06b18fe6a38d22da16facdf643a000000000000000100000000000000010000000000000020621827b451905551eaf829ea054aab3211c35ca76af183ffa5f553c2f9db00e0000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e00000000000000140000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000010000000000000020b78d455913e68b69982340bbcb6104033b343408b8e5e640f14760d553b048540000000000000001000000000000000100000000000000204776aa059720654baf75a1ad8e00f1e1dd12f285013b20f4b915a40263de15b10000000000000001000000000000000000000000000000205f4204bdf3a6ccca7f4e9be82c06c99875a14166efe4fa79736c5692c5c2be1000000000000000010000000000000001000000000000002074228cf6968b993babb2008379776ec0567e41667f5e4bc1bcdf4efeeb3e86e10000000000000001000000000000000000000000000000204f90cc70ed241fecba0e2e462d5fc9d01f44a8dd4483537b99c0454f1a4f7d180000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000001400000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000010000000000000020fea7c7796ec1a524fda960f5bdaa97daf937c5c18d682ec8f5e4b21c229754bd000000000000000100000000000000010000000000000020ac5b61c439aab57ec726c496c23c345c11dafd38d070cb477dc1da638fe1345f0000000000000001000000000000000000000000000000200363c105ec8d2707b1f0e2017bffda972db4e8da5174b96355a9d0fcfde90b2000000000000000010000000000000001000000000000002025dba43c20154eb4e9183e191f0597c61034c6517b0a2a8f9a18ab98f482f7c5000000000000000100000000000000000000000000000020fbaf96d5da18b3b058564a2b2e5276777b4e1a444a7e2a756a6cd7558a919b2b00000000000000140000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000010000000000000020b78d455913e68b69982340bbcb6104033b343408b8e5e640f14760d553b048540000000000000001000000000000000100000000000000204776aa059720654baf75a1ad8e00f1e1dd12f285013b20f4b915a40263de15b10000000000000001000000000000000000000000000000205f4204bdf3a6ccca7f4e9be82c06c99875a14166efe4fa79736c5692c5c2be1000000000000000010000000000000001000000000000002074228cf6968b993babb2008379776ec0567e41667f5e4bc1bcdf4efeeb3e86e10000000000000001000000000000000000000000000000204f90cc70ed241fecba0e2e462d5fc9d01f44a8dd4483537b99c0454f1a4f7d180000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000001400000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000010000000000000020fea7c7796ec1a524fda960f5bdaa97daf937c5c18d682ec8f5e4b21c229754bd000000000000000100000000000000010000000000000020ac5b61c439aab57ec726c496c23c345c11dafd38d070cb477dc1da638fe1345f0000000000000001000000000000000000000000000000200363c105ec8d2707b1f0e2017bffda972db4e8da5174b96355a9d0fcfde90b2000000000000000010000000000000001000000000000002025dba43c20154eb4e9183e191f0597c61034c6517b0a2a8f9a18ab98f482f7c5000000000000000100000000000000000000000000000020fbaf96d5da18b3b058564a2b2e5276777b4e1a444a7e2a756a6cd7558a919b2b00000000000000010000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000000000000000000020602009b6cf354dddb43100b7e74cfa2f69df355c0f94fea1e2fb35618a3e1c10000000000000000100000000000000010000000000000020a91f430325e85f2ffdbcb606ec266aa97007b05091da9344a82f1815850ce69b0000000000000001000000000000000100000000000000209f7e22c7d1dec7bd7360c0814267e1798fd769c8160bec810dc6bcf6fdc2d9f800000000000000010000000000000001000000000000002011420a4ee9a29da7ddae2bcd24e020edee7628cf483723930d352730ffc2789c000000000000000100000000000000010000000000000020badc2e129abc53610f22682a1ffb0a74bda83f742dd0ecb0b08cfd6cbe03a6270000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000000100000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000000000000000000020d4456f8adde89e7acf7f03d7b1629ddd7cd809892557d27bb962be1d31e18cf20000000000000001000000000000000100000000000000206c6b0e0e89b0b49039c1a7adfc83697941ea7397b6981ba0bd48a1dfb41e5047000000000000000100000000000000010000000000000020601587465f813daa305f255198266f86d446e06b18fe6a38d22da16facdf643a000000000000000100000000000000010000000000000020621827b451905551eaf829ea054aab3211c35ca76af183ffa5f553c2f9db00e0000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e00000000000000100000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b500000000000000060000000000000001000000000000000100000000000000207c1aa40ae97c97f452dea63398ce52a26a2db03daaeceb26f14b9ba21a85111900000000000000010000000000000001000000000000002057d2d9d03674b3e38a93b4406b4e1ffc878eccaf3461f1b576734c16afe22ae4000000000000000100000000000000010000000000000020e6861421be6a9fd34645f939609e4eb0ab267b7b82d254d5a511a655e073d81c00000000000000010000000000000001000000000000002074228cf6968b993babb2008379776ec0567e41667f5e4bc1bcdf4efeeb3e86e10000000000000001000000000000000000000000000000204f90cc70ed241fecba0e2e462d5fc9d01f44a8dd4483537b99c0454f1a4f7d180000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000001000000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000010000000000000020345fab90e725b27b13a4b4fbff5a81563e8390a9f9fa107825b2af11d2621764000000000000000100000000000000010000000000000020e8d78d98ab6f73caf41fe4be95ef5283fdc5337af173ba4ebdad0f294793efd3000000000000000100000000000000010000000000000020403f8b1e8f4ead900bb367e27daa73e741f742a172366697f6271850f34d853700000000000000010000000000000001000000000000002025dba43c20154eb4e9183e191f0597c61034c6517b0a2a8f9a18ab98f482f7c5000000000000000100000000000000000000000000000020fbaf96d5da18b3b058564a2b2e5276777b4e1a444a7e2a756a6cd7558a919b2b00000000000000000000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b5000000000000000600000000000000010000000000000001000000000000002055f2f80cf32bc6f1f07362774e677791e8734fe30fc5ad449f4b774eaa49e74f000000000000000100000000000000010000000000000020a91f430325e85f2ffdbcb606ec266aa97007b05091da9344a82f1815850ce69b0000000000000001000000000000000100000000000000209f7e22c7d1dec7bd7360c0814267e1798fd769c8160bec810dc6bcf6fdc2d9f800000000000000010000000000000001000000000000002011420a4ee9a29da7ddae2bcd24e020edee7628cf483723930d352730ffc2789c000000000000000100000000000000010000000000000020badc2e129abc53610f22682a1ffb0a74bda83f742dd0ecb0b08cfd6cbe03a6270000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000000000000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d37000000000000000500000000000000010000000000000001000000000000002068632f7198881a6101e366cd79d5974983362906a08365b044dddb7a454162040000000000000001000000000000000100000000000000206c6b0e0e89b0b49039c1a7adfc83697941ea7397b6981ba0bd48a1dfb41e5047000000000000000100000000000000010000000000000020601587465f813daa305f255198266f86d446e06b18fe6a38d22da16facdf643a000000000000000100000000000000010000000000000020621827b451905551eaf829ea054aab3211c35ca76af183ffa5f553c2f9db00e0000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e00000000000000030000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b500000000000000060000000000000001000000000000000000000000000000202b8392032be94ab4c1ee7918de44801642659e7321adce3c0ccb560f1d673f98000000000000000100000000000000000000000000000020ac23e9a233518f7270f2910712fb77590ee8169c28fdce8b90feb16d54c7bf450000000000000001000000000000000100000000000000209f7e22c7d1dec7bd7360c0814267e1798fd769c8160bec810dc6bcf6fdc2d9f800000000000000010000000000000001000000000000002011420a4ee9a29da7ddae2bcd24e020edee7628cf483723930d352730ffc2789c000000000000000100000000000000010000000000000020badc2e129abc53610f22682a1ffb0a74bda83f742dd0ecb0b08cfd6cbe03a6270000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000000300000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d37000000000000000500000000000000010000000000000000000000000000002097faac4a0447ebc8cef844bce3f6743c966afb7d9c33dbe847002b5f2d1907be000000000000000100000000000000000000000000000020e04fd887c0f5fbb6db27f67bde93e088d30f04a45169d19816d7ac6701f57e0f000000000000000100000000000000010000000000000020601587465f813daa305f255198266f86d446e06b18fe6a38d22da16facdf643a000000000000000100000000000000010000000000000020621827b451905551eaf829ea054aab3211c35ca76af183ffa5f553c2f9db00e0000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e000000000000000e0000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b5000000000000000600000000000000010000000000000001000000000000002088b3b413b201a3914f1af1050f37ee5add3e3f762c993ed30765ba47bb34e949000000000000000100000000000000000000000000000020658ccefa4c5eec6b0b7cf50f407db621e28f0890874affc1a0cb354761e5a4700000000000000001000000000000000000000000000000206d0190fa73226ecea58d4fa21f0307d7b3f9c9df4cf0a85eafe026290e095f980000000000000001000000000000000000000000000000209426233854beda52809595ae5fa911799a530fed0a60de3c7efbd8ff6606a6b1000000000000000100000000000000010000000000000020badc2e129abc53610f22682a1ffb0a74bda83f742dd0ecb0b08cfd6cbe03a6270000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000000e00000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d37000000000000000500000000000000010000000000000001000000000000002073ce048b3dd16c5e4de22971ae3058ad48ee51e4ad562f8879b49588e7a9909f0000000000000001000000000000000000000000000000203cd3df94a6963f46bdfe44751e6dc6ad5eb80b2b6041ba3da949b324db729c35000000000000000100000000000000000000000000000020a776a89bc4f2a786eba2c34381fe99ee2f8ceba73c8ad4c38ed66f45a43aeb3300000000000000010000000000000000000000000000002036c82a644c18b80bdac66d0d7a55af68bc85b40e8261a12a9ed9577dcee96073000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e00000000000000390000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b5000000000000000600000000000000010000000000000000000000000000002016c8ba2af2a189e5311fa8a742a0c66832d7a11179bd78c369312b012bed1f3a000000000000000100000000000000010000000000000020fe378b2f853fd3258816909a28ae6e2fa1c36e7dfb7672a782396773e377d5c00000000000000001000000000000000100000000000000204587dabcb9a2173bd11f5e907bc63a061bd0259c303585553275acad80cbb75e000000000000000100000000000000000000000000000020b135801365efafb9c75508970632fde9fd537c15321118fabd698ac97eb960e3000000000000000100000000000000000000000000000020c492c862eb7036072f242d732e2322b2f3aea9bf014f6366103d5b4c272a8b150000000000000001000000000000000000000000000000204542a6a3c51453625650384282b528364f8869670db893316e927172ddfe2747000000000000001900000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d3700000000000000050000000000000001000000000000000000000000000000200dced4058ff4b92a15f33efa1070873d8d2365867bca476b260bc2f4afa9ae4d000000000000000100000000000000010000000000000020bfd362600dccae9031f70ffae7875813d37541f92f07a269b1b08afeac36d733000000000000000100000000000000010000000000000020c886027207546165dc36f9feb8449e2493f24eeb789c2d655e7b0d3e1ae16178000000000000000100000000000000000000000000000020bea715dcebfcd755fda508b5a6d96220a218c77f36045e2f9e03186ca85c1f8d000000000000000100000000000000000000000000000020fbaf96d5da18b3b058564a2b2e5276777b4e1a444a7e2a756a6cd7558a919b2b00000000000000050000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000000000000000000020850ff1a7549d9e13f85c404a63fd9b10ce96ddb00ac14e2902eac5862d049387000000000000000100000000000000010000000000000020a0288dda28990f85e476499229db158242c07c3c8a84a6f5abaa6a09507ff850000000000000000100000000000000000000000000000020902287d1561c5e2a9894b3b3f0d8566415fad06bb650fe2c25b82a51b546261c00000000000000010000000000000001000000000000002011420a4ee9a29da7ddae2bcd24e020edee7628cf483723930d352730ffc2789c000000000000000100000000000000010000000000000020badc2e129abc53610f22682a1ffb0a74bda83f742dd0ecb0b08cfd6cbe03a6270000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000000500000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d37000000000000000500000000000000010000000000000000000000000000002044ae6413dacf05820ed794f312ff025dbe07f64e0bccce21488305bac46622da0000000000000001000000000000000100000000000000206cdc48c8ce67892950287b173fd6fe41fce765ef313cd71b70b31229576c8a3a0000000000000001000000000000000000000000000000205ac3e0c0928dc1f95b3a0cb7133d4fe46d1c0cc3d390de16f8dd6b622d40dc60000000000000000100000000000000010000000000000020621827b451905551eaf829ea054aab3211c35ca76af183ffa5f553c2f9db00e0000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e00000000000000120000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b500000000000000060000000000000001000000000000000100000000000000208ff329b91578b948d8a81916c25d00afc345ca817221de89f21a45406d75434a000000000000000100000000000000000000000000000020d067d64a08b6468ea39bf48520da7c019ee74a8065a4605a092c35ca515ea8c3000000000000000100000000000000010000000000000020e6861421be6a9fd34645f939609e4eb0ab267b7b82d254d5a511a655e073d81c00000000000000010000000000000001000000000000002074228cf6968b993babb2008379776ec0567e41667f5e4bc1bcdf4efeeb3e86e10000000000000001000000000000000000000000000000204f90cc70ed241fecba0e2e462d5fc9d01f44a8dd4483537b99c0454f1a4f7d180000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000001200000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000010000000000000020f4e83e9a425241e39c73bdab9fea3afc510bf68e07c394713242850c9f3c90af000000000000000100000000000000000000000000000020f0ec652053e3b82e2a05505cbf5a8b6250ee4ccf2c6d6208c5afc5f67ee7676f000000000000000100000000000000010000000000000020403f8b1e8f4ead900bb367e27daa73e741f742a172366697f6271850f34d853700000000000000010000000000000001000000000000002025dba43c20154eb4e9183e191f0597c61034c6517b0a2a8f9a18ab98f482f7c5000000000000000100000000000000000000000000000020fbaf96d5da18b3b058564a2b2e5276777b4e1a444a7e2a756a6cd7558a919b2b00000000000000210000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000000000000000000020fb79384b9c177bced9bc175cdf404080a3171feffeb0eef20962d87ac45fae66000000000000000100000000000000010000000000000020a7af022083c851de2c525ced8f9fd109351e953d42093d3e7890a9aec3b792ed0000000000000001000000000000000100000000000000209ecf5eb00ae02bc6c96683d195c3bcdc1abd10ee8958abdacae0a04c9fdea068000000000000000100000000000000010000000000000020967128670c13aef78d9a62dafa580cce4ebfaac9d3d33e8c96ef7874404b54c0000000000000000100000000000000010000000000000020db06796a664833a518e2c00bf6346fb8db10b06ea8fb1307c8e7a7f19004f1390000000000000001000000000000000000000000000000204542a6a3c51453625650384282b528364f8869670db893316e927172ddfe2747000000000000000100000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000000000000000000020d4456f8adde89e7acf7f03d7b1629ddd7cd809892557d27bb962be1d31e18cf20000000000000001000000000000000100000000000000206c6b0e0e89b0b49039c1a7adfc83697941ea7397b6981ba0bd48a1dfb41e5047000000000000000100000000000000010000000000000020601587465f813daa305f255198266f86d446e06b18fe6a38d22da16facdf643a000000000000000100000000000000010000000000000020621827b451905551eaf829ea054aab3211c35ca76af183ffa5f553c2f9db00e0000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e00000000000000210000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000000000000000000020fb79384b9c177bced9bc175cdf404080a3171feffeb0eef20962d87ac45fae66000000000000000100000000000000010000000000000020a7af022083c851de2c525ced8f9fd109351e953d42093d3e7890a9aec3b792ed0000000000000001000000000000000100000000000000209ecf5eb00ae02bc6c96683d195c3bcdc1abd10ee8958abdacae0a04c9fdea068000000000000000100000000000000010000000000000020967128670c13aef78d9a62dafa580cce4ebfaac9d3d33e8c96ef7874404b54c0000000000000000100000000000000010000000000000020db06796a664833a518e2c00bf6346fb8db10b06ea8fb1307c8e7a7f19004f1390000000000000001000000000000000000000000000000204542a6a3c51453625650384282b528364f8869670db893316e927172ddfe2747000000000000000100000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000000000000000000020d4456f8adde89e7acf7f03d7b1629ddd7cd809892557d27bb962be1d31e18cf20000000000000001000000000000000100000000000000206c6b0e0e89b0b49039c1a7adfc83697941ea7397b6981ba0bd48a1dfb41e5047000000000000000100000000000000010000000000000020601587465f813daa305f255198266f86d446e06b18fe6a38d22da16facdf643a000000000000000100000000000000010000000000000020621827b451905551eaf829ea054aab3211c35ca76af183ffa5f553c2f9db00e0000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e000000000000000b0000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b50000000000000006000000000000000100000000000000000000000000000020bd511ba2cab651bf7d54911a9b47b203eed978a8f3913b54c3d3770eee8b4229000000000000000100000000000000000000000000000020e7e03ca6277364bc25585095cd4ebe22831f1a59b7907aa3edfc7647ef98563100000000000000010000000000000001000000000000002077a72d4a8be9a9cf3f2434bb4699c5623aec717f1270fe77f4a2731328ab348e0000000000000001000000000000000000000000000000209426233854beda52809595ae5fa911799a530fed0a60de3c7efbd8ff6606a6b1000000000000000100000000000000010000000000000020badc2e129abc53610f22682a1ffb0a74bda83f742dd0ecb0b08cfd6cbe03a6270000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000000b00000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000000000000000000020020fb0d418f335acb45648b34e1cfd88648c6a8edbbf0cfa344bf43c9d954d80000000000000000100000000000000000000000000000020f79785de95b5398ac0f3d55dd18140171b7f4ca125f9545b06e1e7691a33f527000000000000000100000000000000010000000000000020699b396bee8bbb307d64d22163259543ac37ce00946fbcf73e966de05eef9c7300000000000000010000000000000000000000000000002036c82a644c18b80bdac66d0d7a55af68bc85b40e8261a12a9ed9577dcee96073000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e00000000000000220000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b5000000000000000600000000000000010000000000000001000000000000002089c9989c008f16715e52ed7b89f7f0f72ba15c94afcf7c6c0c9f48c20c404f100000000000000001000000000000000000000000000000207efbe5c96cdcad9840a44e4808cc077f7f529568375073749896306d003942d70000000000000001000000000000000100000000000000209ecf5eb00ae02bc6c96683d195c3bcdc1abd10ee8958abdacae0a04c9fdea068000000000000000100000000000000010000000000000020967128670c13aef78d9a62dafa580cce4ebfaac9d3d33e8c96ef7874404b54c0000000000000000100000000000000010000000000000020db06796a664833a518e2c00bf6346fb8db10b06ea8fb1307c8e7a7f19004f1390000000000000001000000000000000000000000000000204542a6a3c51453625650384282b528364f8869670db893316e927172ddfe2747000000000000000200000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000010000000000000020ab69f2a64b9f895600d3f2076746a7d8e9298844e5bd60da61e26ebfcf238c5a000000000000000100000000000000000000000000000020e04fd887c0f5fbb6db27f67bde93e088d30f04a45169d19816d7ac6701f57e0f000000000000000100000000000000010000000000000020601587465f813daa305f255198266f86d446e06b18fe6a38d22da16facdf643a000000000000000100000000000000010000000000000020621827b451905551eaf829ea054aab3211c35ca76af183ffa5f553c2f9db00e0000000000000000100000000000000010000000000000020c84e25d50c3eca5d3b6cbcd7384cd1ba7968aafdb5e03c70282a6dc72d6e840e000000000000001c0000000000000020371ae42a8743e3dbb982a3c4cfdcd86835433fc6af9bb52bf8fc70bb044800b500000000000000060000000000000001000000000000000100000000000000206d9a358b33dcf96c3067538617c53b57dd6f2a00b55df5e16231d9886ef2309e000000000000000100000000000000010000000000000020b1b98dc4c3810469ed92d34af15b9dbb66a057d2970d5d34c334e5e997e66c530000000000000001000000000000000000000000000000203e6d9a000e282de64ca518d452164e1ee46e2b8594d53b6571bcd13e8c9e633e000000000000000100000000000000000000000000000020ddecb82087a47e9f37b5b8ef44a354d403416d4111650fc368c40ec20d6221d90000000000000001000000000000000000000000000000204f90cc70ed241fecba0e2e462d5fc9d01f44a8dd4483537b99c0454f1a4f7d180000000000000001000000000000000100000000000000206c70bb83dc97b22d71a10999fa7cba62981077552ab4fa74145fcf0dd126272b000000000000001c00000000000000202ca854e749ed16c7057a62929fbd7a161451e998c51e9c41ad0b0661fb066d370000000000000005000000000000000100000000000000010000000000000020ef6887e319d855b8560c7872c9f2b7503306572e9eb6b791fd550588a2802115000000000000000100000000000000010000000000000020305b6f32a8ad902134cb88e367d52b33870079a8ff6676b1bfa2a7b0e4907234000000000000000100000000000000000000000000000020d0934d8f0b87867233aedc2b55e8222542822036fda1786e06a9b62af2083fae000000000000000100000000000000000000000000000020bea715dcebfcd755fda508b5a6d96220a218c77f36045e2f9e03186ca85c1f8d000000000000000100000000000000000000000000000020fbaf96d5da18b3b058564a2b2e5276777b4e1a444a7e2a756a6cd7558a919b2b00000000000000023254041bd63753c47759ad6b098f5936b3b79ab40cf8baf940a4056793732116341a75c50fe8bc0b178ae869bf6b6f59676f7fed33b48e54234827dea68995f0643d78ea \ No newline at end of file +0x040000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde56120000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d2d93ad8ea6390a305bde3bdab5d2b3a4b00d85eac61d418fabe4551528f97b6800000000000000392d93ad8ea6390a305bde3bdab5d2b3a4b00d85eac61d418fabe4551528f97b682f5497c3241d226f7a598e125b70d4977a432d3256a5cca609eecd9708197ef723e263c93f1d32f1cb572b458d1d8237096fd2a1c2ab5c7b8fee16a2ccdf69052ca6f6cfb491ac2d63bfc65bc93426f4fc7c1707955613eb6622712c287f7ad0336bf2ee3b91feb8f8b3d85bc1938b12eaa1eb30babedc329d4c0f54005d0d171f42d20e86d85ce2f2bedfcaee04c2c88798a831cec778463324a315ca7d660d011bbea729d9f99cdb8339cac7e1b75e0c0f34038086688eadc788f001d1416f1c4e1a48a239d06ebdba5ef6a617cdea616e1700f74b6727cd5ccd92f472fe3f2d93ad8ea6390a305bde3bdab5d2b3a4b00d85eac61d418fabe4551528f97b682f5497c3241d226f7a598e125b70d4977a432d3256a5cca609eecd9708197ef723e263c93f1d32f1cb572b458d1d8237096fd2a1c2ab5c7b8fee16a2ccdf69052ca6f6cfb491ac2d63bfc65bc93426f4fc7c1707955613eb6622712c287f7ad0336bf2ee3b91feb8f8b3d85bc1938b12eaa1eb30babedc329d4c0f54005d0d171f42d20e86d85ce2f2bedfcaee04c2c88798a831cec778463324a315ca7d660d011bbea729d9f99cdb8339cac7e1b75e0c0f34038086688eadc788f001d1416f1c4e1a48a239d06ebdba5ef6a617cdea616e1700f74b6727cd5ccd92f472fe3f284fcc6a316df7d2ea625c3a2722b9ed390583ad99e4e9e2bd00babc12bfd4cb1f135d8656f2fbe6530bda9887206e7c8cf6f6b5b4b67c55c9b29872586ad1e3213512f755aea8bd75050bd7d649b6613b649871744b991958a487efc18cae3311a6a284909131f79e7334f630ae40dc03bb749cfa3f6ee824831192f77c40263d0d2369220fe4bbf4d0a1e0ad782ca2419657ba67d605c889a8aaabc99fe69e1efa2279781ce1bd13c856bbc25d85030f7e4f6209ce07f8a25cc8572e6e973a396d5640644c8b4534981a0d6e554584ae2ce72c82a67feb333e136f41d82b430c3f9c13e66fac6ffa0a346c308b8b1068fde6f506915f86f2e990581d1e25ba243c65637777d1ee46c13fa6d368a503c6ea125afaa809f6121faf4f7e8634ec10f900e0300918f76b89cf8fd0772284d4beed33ed57d8475310adcd8c1b9e3d1b40d88ed8f2ccab20106fc411c400d35e237b51f8ccd9a59ed42801f76c0b6b10f4eb1c5290c61346203e82423cee59a6035bfd481bad6865fea0ccb30cc0121f135d8656f2fbe6530bda9887206e7c8cf6f6b5b4b67c55c9b29872586ad1e31a59f8ba0d598f5ee18c3f74e734d7082135f076cdf00395698b7afce96d59603a73f59d35fce36e759ee3b753f2f4d97d01cf186f5e7c532c780e32ceef3b1d1423edb764eab9245eac79d85ed8512e9dbdaa333c87445f2e4b4f42c2131eb7294fd51015a092e0a6b142a1790ecb1bae622443b27626f464a54e0c2be735a0060991113e00d635772a6ecfa82f0536e585a0b17528a050b7a9649df5c3eb113fd0ca8f3234758577329d6c6758c49bf9aa4a2494805125375911931004ba962c39d96f08fbe5a28b9a3f53e23b235832e26885e624b1ecf1e4d5cf8387a9a826f6338ae70dda4f241e9437210e96ba7ad542f7c9bf1d168723fd189d59192f13cc23004f2aabbc9b7f05ca258e0b57a543e2bfb5ac023244bc9a46a0276b783dff7ce276a26b42b69e281d749800a56fad3006012a3d8afbe16c0ec5f4fe4800c9771071ab42b557edf605b62f6f6efa8aa624a9b16c9a05b170758fc86a9f21bb0fa3e66cfa1dafc7eaf3a576f1ccb1e4211bbf9af6cd4c6d611d0d603e030000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000122975e5333e8fbd80a26c60ae0e19e4b99730c7f3e5475c59f45e8a5268fd4b01468249d38233fe18ae488edb5465e74bc0d6d07cdb197019f36265e020a66d11debd8468a5cf7ef54767c21f349100b8bfc676a9d7c89fb65f946888de2165b365ae6896ccf5fbb5cd69b625d01efcd214c4936bfc299d705a640d12e2da65d3ce74c333eac65ce62caf933bf74f24993368f6fc33ed3cf7fc304e045b47e9f1af68d57fe5bea3fd932f3c55fe3fa5cb6093a4663010f03a89aa9cac7fb8e9c291e0e56ad46fc53a428d356099e98ca56e569695144c71b3f55b547ffd5ffd1118ecd1ef7c7d893df0899a8d7ff0b55d5f53c7d5599b512f47ff089a580f386063a1adbf29e6553bd21bddb8a90a88ad821898c854d5f9d60078b1e6a6c7bc3128a2da0da453174d473d9c8aed11a6c5f52b6f1d9488863e5624abe7da517d53847f0b8ef70b2144eccba2ca47d0d754601568bce5119b8f651819fe99180282b06e147394ce75c3af8a6765a76c2ceb6188572bcf630db55c9bf9a2477612322cfa6cc26271e30d0904d0f26449599d5cfa6ace5e1c6ab9e5cb2ac84f88c09023b9a0227019ffbfa95d2c748152e0ef7f5a75247544da0c88815524ffffd6c000000000000000a00100103020203060402000000000000001d020202020202020203030303030202030101010202010101010101030300000000000000020000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd9390000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef50000000000000002010100000000000009103bbb8144d1f3f33c6d2d55c2595efb92a12475950f44e843d5930d7461f3eb3e04447ebb2e0c0cc392d2aa3da6a1046d81222366fa0810d7c39a23789e0c14c32aa9865819c3c02e21e2accbbedae9dc9c9be7f92724a4e4c72a7f91e9c39832155679a7e63c3fd1de1d53344125162385aab102e2285436d202b15b163c67cf154f9fb880d2c0e6a96d5ffaba46914ea837bce9a7d04d25184ceb1290d1f8f72ab060477f2d3f195692a00545b96eb17a0edc12617cabf680e045da6f2e070a2a8e1e9a841dc4814f22dfe5a360d68926d017943dc4889de053666fd419dcd21571e1657be23b7eb0dd201a5c9f2976fb768167cb88707db8d9ca7d2be6232f3bbb8144d1f3f33c6d2d55c2595efb92a12475950f44e843d5930d7461f3eb3e04447ebb2e0c0cc392d2aa3da6a1046d81222366fa0810d7c39a23789e0c14c32aa9865819c3c02e21e2accbbedae9dc9c9be7f92724a4e4c72a7f91e9c39832155679a7e63c3fd1de1d53344125162385aab102e2285436d202b15b163c67cf154f9fb880d2c0e6a96d5ffaba46914ea837bce9a7d04d25184ceb1290d1f8f72ab060477f2d3f195692a00545b96eb17a0edc12617cabf680e045da6f2e070a2a8e1e9a841dc4814f22dfe5a360d68926d017943dc4889de053666fd419dcd21571e1657be23b7eb0dd201a5c9f2976fb768167cb88707db8d9ca7d2be6232f286fce36c7c6dcd354f645d87fd9dc5a5263fc02d1038a65afc7a75c3bff73763c45ae4868a6aa3509ead71f15fb75699d7ae17f13dc248de26c8da6687adeda23500dfb71972b65effbfc64e970bf0af2f850e628644348aaf32e368c725bc32708dddaf0a355dd8d56733e344629709d81d66a333624a6716db87e609b78862361b64dae7e512dbcdd173d2457cc67766e5bee3bb3835c089c11f69494135838e121bda4be2151157ea3e6b2aab629c6187ca7e01ff0f7a2d6a67dd12eee680bba83ec51b371ba634a2b0e62f1486240166ac739a6a2eccd207ad851377bd8043ebf3397fa8c728f45703b7caaa909e0d27036bcf9f98eddb2a187130309870409ae2f87c7368549686786a98175ac8c817825a11200d132276a2842980b550ce7e97ae590c12eda640bdea2f2501459f94dfc3a5ad39eeacb0ce72bdfce162c8f4e10fcb5bc91a12bfa3add4591e54b9bf26d809d826d3ca67b9728eec047255a9e23f44c34a9b3dd5145dc06083082b757d448e88312eb9887154fc66d32344023cdc6a1f7c6bb0dbdc296b5649aff30e50f19322488d79f8c47378e30ca1cb173dca6b5ffed68beb5a2b5be612609907a0ecb87a902de801bb536e9a8a327583a52e1113697e0a9b1e3f3c31486a5379712ded750e9ecd47f600bae62b418a7c5ad1eeec9681f564e1c0c3ceb797d0f01e92a75a831ac58b18cf4519d4e3025e96e987bbe517e6e7e45998e0925a2ba6bedbaf663a2772b3235e15b1452295861febdb13e884270cc249cd5017cc24c2d298a8c79d89d8046a15ddc4df935e09ee0e9f409062f0884b5facb714555472635795f44356b684717b8e949bf19d06026e54eeb1af4d37141ea9131f646f67e8d4de86bd14a1fb5686849a2080e21798416f284a1fdd6e2034fd2ccee9e48c973d3c2982b67c301401fcb6668252330e81efff4fef97bd85a4e63ea2cd7f49937046c4c0192901603b3e2f294000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010d6530f64db33846ee66c26f14fe0fd764653940ef391d5f5f33f9e0c7d8bee73e40b4609cb98c148af74c0085b958dcb1d412305272fb43559ed5afbb76898a14ff2eee72a99d9d77a14fe7887655d31468154f06e1b277d08797637496eeff27f482b865b612f1fd6832f436ed24c7a251818e8611644af46ee571198498e22e221f07396e6a8920160706cbe50ece209190c50e2775c09ed15c908178440a04ea6d4a07cb0c790caf69e5a3ec2650b96d09d9468c0064d47ffe18bc4994981ff1d310c4d25fe55d2b9be024360035c8a3be0706e409d5f79728df56e03ffe05b081f2d55b080580c8240c4b7fb4c2a808ecc3ed3abca18b18e81ad69c2c6d211fd64f283b5ecd706e46d1f7719ac52a41b3a6e76077af9a5489b5ab816e8231fec00a26a7b503258d776d41550f518a1f2775700a819b46fd6a46fbc3415f3278f0dbd68db99b9fb663123d9117becf31ba242b7797160c4535662220da8a072f55a9c9477841f104b63ca094ceb1d74b22568d62b26f33c77eecebe7e55d0f74ed16a52d2f9cbec062d4c0b01beaa02380f8c53cc97a790243603e477dea0035c975fc17c020c335b56d790329e15dadcb9f9c1dad981c03338069e7e97b031580908d5081af7cd07aefcc4300f3270e517eb86516be3d54c68ce62208b131a6403e766c4895df1e8f45626e2058a625a2ea1049ab67ee922ccb050886f535c06b08b8a08eae2054ec9919a7143c46d44715a5c5111d5f42fb326270800b2972078a38b52b01fa2a6b85c217e21e18b20e1159d155e0f60860260b104c5808ccf4d3a5e93ecf17c6dce5a8ee2a604a4de7693506ce6caa2463287a5d817937330b2c5a16c130e839231a5711d59fd7f8b192d4462aaeef08cdc485a27e882c00c8223d8e3a0b76e2507c4ca6d3e17385850e0922081f52b5efca63d3875d13ff37ddc271c5f4891daf83b3592c1eaec113ee002af0fc467741229c2c78a41c03e8ab33c72239526b926d7f422366dac7ce5211c33d49d2061c2cf321a4ce23fc1754cc38ddc6ad946d9280bddc99477ecaa9f789bbd1c72714c00cde5b330c138b5802e3ab1e9c19dc237c4ab1020159d5a246364039e7c42b06bfa8380433ec74a7fd1c54e163e623dc83b54efe20ecc359c316b8e1b16905e64057c7fd08ccf4d3a5e93ecf17c6dce5a8ee2a604a4de7693506ce6caa2463287a5d817937330b2c5a16c130e839231a5711d59fd7f8b192d4462aaeef08cdc485a27e882c00c8223d8e3a0b76e2507c4ca6d3e17385850e0922081f52b5efca63d3875d13ff37ddc271c5f4891daf83b3592c1eaec113ee002af0fc467741229c2c78a41c03e8ab33c72239526b926d7f422366dac7ce5211c33d49d2061c2cf321a4ce23fc1754cc38ddc6ad946d9280bddc99477ecaa9f789bbd1c72714c00cde5b330c138b5802e3ab1e9c19dc237c4ab1020159d5a246364039e7c42b06bfa8380433ec74a7fd1c54e163e623dc83b54efe20ecc359c316b8e1b16905e64057c7fd2ac0ac6f9b58736d8b9902a0567227960edc30fc3065398d32cc71a5620401191b32ecdb06154ad4de0590c2867c0b6df9c5abeae1a5be2bd2c68bbf2f76829604c82119cad824013ef1bf8ed46cf0b6b3d833551645db7f2f7b7bf50b5b920a3afe6009c6a9219031e2300b14d24812a826c447cc8618769faeca6169faef7b0f9953b8cab91378564d02cdcfe889df1f5284980d25d4396b9c92a113d972e024b344e00bdc152b96720f701c2d881e02b5b8ea83cfba3ed035374191b8161d049db4e05814bea45a0a83c63a28f040b3a6869c0b2427567d479b8bb6dba7433b67fecdfcf956a17525539c36a55ef1686f87628b8544536a784e130b4746e42c9c5447ae1258463f3aab447a9f9906b7afbc722f2eeaa83dc7e2d2b05d15550da9914a1efea3e5e652d1bebf32fb2c4a8339fdf7e114fbb9026c3948d1e57b3875d1ddefcd02331aa5654f15979079639b6a80e6aca760f7658a998c21daf13c1045975546e0df6145bd54ed3f48baa6fb0d5cda16e558a79c5acca4192c8a1077327699cf689135753dd0d520e7b35f9234aac2a1e40f36e5435292a06cdf29ceb31b3341939af0183f3264b1ac7fa2a0c1c5646e1b94bfe50bb9668e8df202cda12c7ad0c4ab4f226c1215edec87150efaaccac0cf137de2d71949ce87643d325ed3852f3b54b0dd93edea1213790d379e4f3e8c2a081b4a59d3b631789e37f2e5208c34ad64f2f232026274e3ad5f3c2468bb21c0d577f8fa4dd0573958367523ed5991ca9f478696e856af15610f624aa94d6bc08e5c213b06e02628fd1ba7ca113b0f7478d7fc6c6f164b0f787c96f727edbb3acef9f8c1af257a9c7f2360c14b8a91bbe15e3abf25bd7affe61e9f7cc3dd44196c2782bffb3e9d876a18721e0209fd7186c65a02ba3696ebc901cfcdfc4d1f91b0485dca66af687433041454542a0ecac2b8a2e92e155ea002c05248c440844188ea37f0eefac8c353000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011a84981eca93f884a2db4f38c3838701c2dde3d80aa2cbc2572d2f8d33f143fe3ac5af6d688906c0234d1eb31b88dd8e6c989f08e5890086ecbef1436a65462208d2964865ed44bf35f2177aed0825a54df4d296812ff2afa97fbc68b0b8879c35a9f0bcade6d5dda1dfa390a3779769c5588300bea5a045540d35a746d5967e2ecf9034a771d3903f5332188153e777174efc2be0a91a50196e83cd1484e16c3514b7c1de3ea96f67bffa775f2fee607993af08eb9c2cef7b5112ff4950bcd11a6a089c1aa5c4521617626c50d964be8aca7ca150449bf1f09ec1efd2063dbd0a205652f0f4b8a75f30153bf12ba92adbee9575be6e26234a4e0a541114ede637be856b3aa3ca0cd973e145dc2f6302b17aba0ba5560fcd334e0e1b0130462102c0f6330e321174f60608f72c1ebd76a47e07f12e5c348758fe5631419346ac232729a73ced6cdf91af471586bbdd24ae56025870b4eb3eeccd2fc808a503bf103a7c1276f5849b7e96bc5907ca9d823634262192dc9f67f945fe3ae5919c3b2a9943e12103b2deb549c1cf2d7b9673f0a5f8fc14c7f60751de7a97d5574d84251172ab80413cdeccac56730c37af582f71ec9855df7a26dc542d35d2d819e2085155c2842c025f60f559c18e7043656c1bf9483b4f335fea8fb8109d1ea51c160503543d79a1c933a7e3b3b375d3d138ecbf7f8a96769fd4482450f37a465b35b90e768d50f6e2578ba668b6f747eaf22a816276ce66cfe3853792cdc45ccf3fee04410e62f937db2e2dc882c7016a96f8a5d70c760b31b1f11d1984b270b6200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af2150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f3981eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c69269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f6196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af2150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f3981eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c69269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f6196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b3fa261b1844f304c485490d5e999b2633afba4d7b5b76ec065c640ecb11d4f893335039be7eedfac2e3ac623e673589a8852baecd7723f5e37deadf71fb908e20d2178e1ae70947695e9f02849f81419e46b869c9b3b2b3e23e1146ac456939012de871e518f6b896a160fd7b607ebe62cb7c5e1696b514fa8b5840bbba96c711ab1bc182a8f50046511b7ab409a1d69cb3ab17ebd01f77d737b60b7fe18ccc60440930f7560351b151572858db88b4c489a2f492f8897491262236693d3a6fc18e807a31e61baec745b3680a23a69b641364929583aeb16689e9bcadb56009c0276de9a6932a003245ef15aef58d798be95c6f3cac18ae207855e797110dad2305d9e4e7bb0cfb3b7ab6f2a16664d9d00ffe6e15a8f452fe648d4b20ee2b0793ccafc6418112053d1c539dc198ca765b3a8d0cc38d47492143067a7a046f7200ab1bc182a8f50046511b7ab409a1d69c2a90b3fbaaeb9368d30147cbe18ccc63440930f7560351b151572858db88b4c624f22063682521dc544081853d3a6fd333c256ccd403b3d21c17f01cc6e398325260683c1a75838a8b30c828a8c1cea39ec7545c681b4ca67af2a046384bb7f8f82b129d1bc618951c62fd7249d8ab036712908b52f1ae94ffc4525b2e1921d93c3ceb3921fdcc22dafd5c7ea4525cb098ed6f74ad0e516b003bada4d1e6de28e82ca48772d1c596b7d5b2515bada370a9d2905c385fa6e80abdf643f5f069cd2d70fd883d5ae14267f9e45f180bad21b8da1104295ba42e4c7df11238b2ba685bbadf6caeefd46ec6802ba43f32c471f3bb0cd27bf0ef02d5acd7b01d1d563ca1925e5938b10ccae4668147c09af482e94cea0e2160822da091f0cd312cd35b7d9bf51af4b8ff33048fd8573b67a960d92625f97f8b1f9d99a2e94ca7f36640906d12ffc4ff22c2d048ed7375bd63a0916df5e2529a6702fb45803196dabe75127ee9fca694157de13742f99e36cb20000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000126d09be32ec3b470410c2239d01d6b894da7cfb0e6814d22e7458b2eb347a92f273c5541df839c579932a2bcae67f86d156e7dde88bfe5824a3fb09c0e1450c43b477496f698f750f5c5702b3ac054c166987aa3698c5ece2ae68cefbfefe8af12743d13f1091e1ac65c5dee9781b7bf9352188eb5663b21514ac3bb9e6a94dc3566b4cd927cf5a480a00717c70d31244f4d6398c2b14e615d2ed382e2ee57de313d34a6810d5d30bb2a7a3e5396e0b85cb72122a7c01d2dded50c0f6d2cf12d22b2efeac4d1fc9980a1ff5905d67843e8879bbae276e76bd2135210e89514f116ffa4767cedc9998f1d901a5074b58aa64d306e793b5c782cfc1a240ed570a13b8753d50b973129ed5601a4d639bddfe4fdc2e6401c1244da8a748e3ae110dc047936fe314cbfc4a7df0a263777cbd9b9302191a14a799dd19b44ae4e0c0fe21b6328c24f0fb08fce6f98559838a0901d6a5f2f8afeaca839cd9a5381ad745a37e5c8d6d84ab42b987c6c3b64e89fc659d0bad530d71102f4b7e15f96b9fd5f2c37b25d6350931f931f6114c7a33a3ce75709850258ef0935d1c68a39d5966d2373042f3df45c9deed6b72d72100b8f38c0dc0f684e8124f860e1436e59d0f926bf7ae88ee570e821cdb304297b238708918decf47ede80a92a4a6abf97c7042d14f860a4008590ea30bb6767286517d2266c368c7f80262a2b99efc012ff222bab31dba34cba188370d8ae51c6bffcbbeffe0cb620fbb169f28add96dcdd82183a12d869d4fd9cea41aa27f8c40661838115a2ce097dfd7217ceefcd82846a28193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e11105939417e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e13781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e202a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b6965158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef62bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b28193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e11105939417e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e13781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e202a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b6965158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef62bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b077596ab5d4f14c7435038a9742be3e6b737f77900011bd2975eecabf38cafdd2a541dc9aede8050ad6648812a33cfccec8163996bbfab69265fbcf2ef361c4e3000000000000000000000000000000019b4f2bd06f9bad4b2e1e4b1c00000013000000000000000000000000000000019b4f2bd06f9bad4b2e1e4b1c0000001054e43e7d570affb9aee4854bf65e29645e89aff47a48510591b37be81e7333b1bbf6cf08a9fcae4eaea8d7a724774b3c8891d34d51de544ba34750fec2c590536098084ccd24f630a4526a8ec327dd02e337604f5c9549b72cafc70dfac942c255565b8bac20b8c8e750132a560c37ef3df331436801a7896862ec06cba474305abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b3288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc735024182ccb0627001b850504582c756dce7c72a060e0b10fd66001d0bbca3d909fac28e0e5d239105f5b80d47da2bc3f88cdacf4a3d170591082de15897ab082ec95088a6954a2b0eb38bcafc7568bd41c195159aec6025222744eec5f8f4c73502425abe23651217faf5299b77ed5cc30333e56dba19fe08bf95918c03550c9e3b42000000000000000000000000000000011234c7e04a67c8dcc969876800000012000000000000000000000000000000011234c7e04a67c8dcc9698768000000123ea3210f0baf3d18e488ffeda72d1ed08283fff93761e18561d394428b76d9b0ac638a8cf8ea937a5cfd2dca9768e1e91fe046bbe2c220883ca8c33eee65e122850ba5536ba7642c5272fbfd65327d276a5b8fd336422cb3beee5b1199c3bba3aeef6c630693d93fb6067e1d8d25b357b1be696bffdc11d34314f9a694cf41723f35650420d4301512ef7e3d889e3ca011820840ef356cdbc03611a0c5635d92e02372ed819e8b59bdd6f3191761e2c6482b87cfd81d4fe877ba8c5a68af8820000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000122cd78f17f6d8c465091b7b0a204088a1e1ce8f5dcdf4df23e18eea57f2977153103173e02af76fe7bc01cca917b86174b47fdaaf691cd346f0c253577f0786501a43379266a2eefb2924f175075e2713e19f8f54d9a2897d0e73ad2dfc57d280634737a52f7a02496315b2b674b1359b0f00bf718a7a12a4ac625086572e6d10cf70046716cc25a307ec231a93525384b7fca5e29eaaf6547576a31685f46aa298d9e330e9547a6e7e611571a38f7abeec37028021852768105f1f24bebcd04394a4c01f25197dd55e5e2f4af7fdccf1bce8e2f4d5814b9cf5a1bb080d2c3282e9e1104a4b5ab9cb219600596d0e0c86cddd64566d9ceb2690f8907853d8bd816c2e2174f049ed55afb2959828b35f6cf45c7bd6af632167786382f9a29d1f525835cbe525fdbcf40b144f4c568fd72d0446f4b6815020e78dc2b25c3f87a323014812b48db8de104c6e95bc2b6da937f7a42ad448dda5bf48c2f8ec33bc3b717ee70afb169f685e89b40e8c3029d8654573611c72df2eef9846237f2ce24921eba15486cf5ad2809c7970278ea5e5cba1a620d23940dc5b3542b6f6dfe193430f0a144344f4295782e813fc0c8e76f65fd8387471362687ade7c5e3a314e322a68de31e6e82f780e0e468a1c6c12e27b01363b8fabfdbf99383913ee40330f2ab1da45968df2538581430fcbd4f1de9ebde75007ad2f0c50fdb35d2562e8f00375b746d74aa3f8a04de42a501de7199a4fc4c7e2c92f9cdbda891b3c5041b5006f8d6d35d713bccd649eabfa6cdf4482dab5eb981450f667029fc5280f20362e1e44accb70a379e0aa7bbfa5861300e6c5a66e7b2e4f6ae1e8e0476d7f0b3b11e1bb53348f5c861f5584405a79ecff3b80f28d8e1ea9b0b74450a59280f4c62697575ff933316163546abe3b9e5f041b0875344c00a1c39e04ce9e237b38241968a8a006ccce9e9cab9541c461a0fc073e23c7bd4c5757fb28624edc84c7dd00f4b4dfddfff6e6f0a615b72a17db1420567f11601c3d7f4a90764fb16818b13f0b4b20220009190f59ea48d5e824ec01f019eaa930bb9c4e9cba9d4e97e75004c7885f55ffd282b33e6c93d2774764a1b07b56e08d337c74d24f8e77087b753b3877a0aa002d7d4cc1936c2d88b89b80961da528bfc59f245ae15e88f7848c2e1e44accb70a379e0aa7bbfa5861300e6c5a66e7b2e4f6ae1e8e0476d7f0b3b11e1bb53348f5c861f5584405a79ecff3b80f28d8e1ea9b0b74450a59280f4c62697575ff933316163546abe3b9e5f041b0875344c00a1c39e04ce9e237b38241968a8a006ccce9e9cab9541c461a0fc073e23c7bd4c5757fb28624edc84c7dd00f4b4dfddfff6e6f0a615b72a17db1420567f11601c3d7f4a90764fb16818b13f0b4b20220009190f59ea48d5e824ec01f019eaa930bb9c4e9cba9d4e97e75004c7885f55ffd282b33e6c93d2774764a1b07b56e08d337c74d24f8e77087b753b3877a0aa002d7d4cc1936c2d88b89b80961da528bfc59f245ae15e88f7848c0409ae2f87c7368549686786a98175ac8c817825a11200d132276a2842980b550ce7e97ae590c12eda640bdea2f2501459f94dfc3a5ad39eeacb0ce72bdfce161fc6a3ef7a30a81709d7aa355992354fd93d1e3d53a2b055a2af3bfc2322aee703f684053292e56a23cc9aa6cf6b481f2ec93b24a323cd8de4386d69771a4f5c2708dddaf0a355dd8d56733e344629709d81d66a333624a6716db87e609b788623500dfb71972b65effbfc64e970bf0af2f850e628644348aaf32e368c725bc31b9db6668f5dc4dd7d5f86d590d1cc2465212c4ba530adfd1fb40487ba76e6dc1469067986f43cf59010dde08f92426f9c3c91b26d7baea2cea61005e14e93c71f58081e26b71aa87374afb67ad656bae9ece3c89aa1828ad674a7ce51fc08032bf93842bf2d60223b1a98080fb866156c1f2eaba5c51d58b80b9996a54f20521fe9ff989561772ea2d51724e6f0df9a4153ba160a091c827b172e0f31ca66ed06b1c44920157c93acd913a20dc88b72472013d85acacd891a620f4021066f1a1c2fade0fe082163acbfee43fcec5503bc880299149847f4c4568ac89a4545c62f21927fe7dc596701cf597a8da267cc99840fdb2bce57eeca29b69c5d05e2903036759e3edac14171a5563bed33eeee72af6ce9782023b7a578221ef4f625750fc98a61c1253ebe8e5aa9c412cc1111af972c12912cd563f3b50ece0b09da8d3b9199cadd3d03ff6c78305d3da09035ed9eb38046286aca90940c7d19bf964817a3747acf162f38a350354b39b09b18f6969dcddaf1d26e479160ab64a296a7292500858dc4cbf6cb392ae7c2afbcb026857c51d3784ac80aa2f9f4c9b1fad020cd90831b33111a1207e29516e0656e61c6ac921f597591eff35fe8041867c321e8a79e1070bde4bc84e52025781872e9e57793af63dbdb77f231a651059720003b2eb2f19bfe5599844db38336b74f919697253931b2425d1bb448e236d72600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001223b2428aca3ddca50a4e6cee67482fa0dd86bd9d1689768254f10c1adc0312d25c363702d64ba5e934715df57ab4bba2cb17d8662b239dca50584d80cf020d416e2d9fba42d3bd37a7834156e6e061c5c722c6f31b3d5df1de40f4f25935bdd1a1595d143d11b47d4db164ef10250c5d5096d3e08ffb1154a9304d164264ffd33efa315b6cc8b92350e01630da2b8016db6fb7a889f1385c11651682123480611e4861e7721f0331eacb134490c8141a111c9743d4df9de32c207bce8f901e819b7c497da5170d91bfef97b0abcdd53ccc38762ac4ede70ce748a02151cf92a35a61c3890b22c6ffa43121ea2f855a10defbcd01efc2353bef2c02588beb8cc0bca143dc161946546b4c2709d5e5bf134f9c804146ce05df6f16f051be82a8338a5122dfd46182e42b471bbbc1157af1570e94cf3c8d2e4219be3c748b448852d9083f6e76122159ae39261b4ad5a642c7d8243079553b2ec6ba0e45b06b68e17c3a72ca2fec863ef5e78199a7b0668d878c01937ad35106e22804583b2b6c108133cf457fbd8705ad92fae803efd3821b259e52c3c86819dfb7b1ff8fda928079779984949174d271ce893b9744893dc1ef2b3351df090f709fbc0af31be3d386ef43105df9a355dbd5622ab5c9d99cc0ab7772aa434c9be44b3ec9e21089322295aea8e501ce4880020c2e1cd5409cd7d326d89a681ca6e3758d3dc1eb5713e0b1cbeed6a6f988f6636f8a2d09d07332ce9fc52adbe806ccc2598f6cb534d19621aebe16f83b61f83047b7054e7fb3cf59cb5bd55c3d684930f3888e14c64166befb5171f47394b6710b5cbf1e0a257d568300d169b1ede64dfad66ceb1702994104ae8e0b8c6b498ef4a340e1f5dca7130cbfc365dfcbac8513f99314e91301bae89739c641e7903538cfbb9632b94e46ff438240e7ebecb2d760209772f0fe451768c639be186fcac7304469cd48d622907d128ea9cda620376fdf688d2308a68af420df4985d10a1c0ea9eefd981a264d0fccd5d26ee7050870a2f53e80f759750bdf20b67a2ef5e3f15611026a0a4342b0c7f9bf4aabce065f5d0ac1932b40b6c4a45c6f9d15328c4951aaf3f21582d20d41be66fdca9ffdc32eca3850d4bf493b5ba39062eacd73b6ae550c100ee6bdb353112abbc833110cd135c7c166befb5171f47394b6710b5cbf1e0a257d568300d169b1ede64dfad66ceb1702994104ae8e0b8c6b498ef4a340e1f5dca7130cbfc365dfcbac8513f99314e91301bae89739c641e7903538cfbb9632b94e46ff438240e7ebecb2d760209772f0fe451768c639be186fcac7304469cd48d622907d128ea9cda620376fdf688d2308a68af420df4985d10a1c0ea9eefd981a264d0fccd5d26ee7050870a2f53e80f759750bdf20b67a2ef5e3f15611026a0a4342b0c7f9bf4aabce065f5d0ac1932b40b6c4a45c6f9d15328c4951aaf3f21582d20d41be66fdca9ffdc32eca3850d4bf493b5ba39062eacd73b6ae550c100ee6bdb353112abbc833110cd135c7c1663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac53a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f216232e0e89af62d4b5e0a44b1fdae3b06376c9123be386de90ef339f6846a620c8509ae342a78dbce2f652ce83bc8df13cae92ffd4acd96c384d84b5b62829aa4c6374baf5ec512737c4b30713f1f990aee557a2b2289954c4678ebb40fec4e4b6d03c88a181de5af86bd618c7ca6d2d1c6c23247c7fb1d7c35badde3a77e53e275325f6801ed604899667b4ebb69d9690e57da2a8bdf801b1adb26780d848343d034dc26445dfc3d86f0c6ad853b8e90dc59275b991680e24ef59731a1d97c84bd0ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b22e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d57145a40e4099c34ab09aab12529be4211daaf783bee3df5d9e430c580d2149a242a2adbcd6a52d4ca8f75b25d259380a1098272a199bd1f2a1d40b13cab90e27536bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b93c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db13d9536a1756b57977f4cfff193accd1791336c49366844ba2d645ce68c53b622c26ac95e8a94a86880b3000e6c5332ea933623775e674cff656eb1e973ac4a0397f861bf30d14bc54bd10d550d6206d46fe59f94c85e2fdf4358f440c824b1a3964dcfc56c5aa7cffcebb8cd19e578dadf06b424364b3d74f499983307f128c35bd596c9b2ae909556bf04b32a63034bc8cd39fea8c460bed7ccef9520576250bb136dc421e7dc750855cf951fde0c09436e335d09bda551392f0d290e5af2930a19cdda9ef82a7008969622aa4f09a04654cafaafafa1fa28d11065ed6d1132cf159565af759e9b439f0b428958e5879faccecb3d8b95c4d92fab4a1cd9cf5000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011432ca149237c258feaac194541ef39aa19ca3e5e875017a66b834c6c5caedb91e0743e56e71a36aff9f28654eeb8030d520a300414a7b5fa227d474e0035dab0dfd5efdc3f8e4c1c7f4a7cd2fdbfd0fb899e6527da664b7da4f11868ff913c33f78b0e02d9ec870de11a5217b4ff7b6b751b0d18c1504dbc32aa5eef465d1e5007f809e0872f824323290eddbf2e69e0444b475945f12f11ae1864235c0eac21b76b645d8f3b10946854658f785b108867d3b2533f44a20070cd5a8280e6c8c0e391ff2a1c7d23bfb397ea6f844315d46daefc4f03cd0c7d62fb2af7a60e0b52893620c5cd5e7adb3a0a12063bee363d7a3228a40a231612d684442d50b68ef3098508783009f3ad14f288d95a6e2d5112cfc26044296f9587ba6ce5b328ff009ee9ba9ef19816a6cb05f56974a6b200627c767b118f8764281d9427ce0cafb1904997016071d3ef5667a80c85cc7cc7fcadb4f3dc500dc9a2b16a8954ad3c8284485e6f59286f30371e61fc3fe34f835fd3bcd65af2e168acdfd48472cf4d534c68c8b10c49778bd73a31430c0de90d98892d6b78005ed8da54872e2837f661ae42a0190805844c482752e08f2673b468f52bdb3276a40a08d5f5ac5abe80039f8a32ea04060f7a60d7a5141140d7e384032298f71b53946365b6d1e7c384c1fdc5a1406be3b0a54a901eec489d4689df1ecabc7c114505106741f070a71651e55758d9bf57e390210647f4d206b1cade564ab62c3dba85fbd5b5eb82aa8782be1d91cc2806821444c578a9e45c73eaef4afeef24cd672b1466f7e98de85b53c10a0708141d6f1d8fbd1cbbb5cb256ee4eeddae80d4551f2d19dd7d0ea978403ef5f8f7ebe290e27042e3444a34da933f7ab21213fb3c9a65b93152f15687d2c532232864932b93ceb18faa8cf7bb21e704156630e762b596351831494f59013acddcd79b6cd46c314e7055730844e03d657a5a63e82f03fc9df69eb6b0a711d9faafc9f6dfd9e30977ce54c0d6a7a315d7bbbd3616385f36904c866e8cbcd2260550360920261cf68831ab3f29585f0e91d4035eb9595a5c42c2499173434141e56ef1d25f416f2f5707a7c431462b24638b30e4cff668eb2b610028bfaff2be1a910e2da0be90d0a8f8583bceb9d70006048fafff9b50a7a7adcfd7405023c10a0708141d6f1d8fbd1cbbb5cb256ee4eeddae80d4551f2d19dd7d0ea978403ef5f8f7ebe290e27042e3444a34da933f7ab21213fb3c9a65b93152f15687d2c532232864932b93ceb18faa8cf7bb21e704156630e762b596351831494f59013acddcd79b6cd46c314e7055730844e03d657a5a63e82f03fc9df69eb6b0a711d9faafc9f6dfd9e30977ce54c0d6a7a315d7bbbd3616385f36904c866e8cbcd2260550360920261cf68831ab3f29585f0e91d4035eb9595a5c42c2499173434141e56ef1d25f416f2f5707a7c431462b24638b30e4cff668eb2b610028bfaff2be1a910e2da0be90d0a8f8583bceb9d70006048fafff9b50a7a7adcfd74050214cda1b9433fb43ff84e3aab6e2756c437f9c72677fb7a3897b566ae006fdb553fa1f2a2d0b4cce733cb9590433d6813522b16e9db2173a58e4bcaea7364b2a410ba3b497946b8354436b36b51cf41e4ead546ea6e0434895375ccb17bec7e6100def3c798623305e3bde40c330bc212eb2a37209efcc5dd23bc28e0fddc535c328d97abecc9fba594cc5b6a957df4c8ffa3554a419a966a7d7522a71d2380cc112ff4370160fa8ee47f429587d17f09bf124d723699f4d1743af3e63c540fdd386561ff2896754e1a9bfc8dbdd64e28bcb81dfcaa5cc1877214dbe5a00228450964ba54afaca6f3ebf02d833d35bc5e45aa020758b4baa3d6e8a96aa514596a150a02f1be7f1ef6e5d539f61024406f5775519521d6cc7c9950525f5fa4aada04ed39a11be374a6c61c5e56b99bfcc18cf3844790a53d75fbd6e84fb2bdf573371cc3efd9623d338eb44f519257599dbc7b577fa4144e6a6e6aa4f4434628e23b0798e2031fcdc5c2a2b737061d163d4e81662dd06c3b86a540acf39c68960c1a7822fd4379938ac37b11e940096756ff778aeb234d4a59ae01fd8d83a3a64c3f7f199596e90012e876866389b6d5da0737e3ed987bb8b480526e0e8ebefa03158ae95c27961ee3fd5eb392866d6a95728406a392a80ce3b22b153dd0e5b0d92a7516a3d869e11c02a14c6d7992956aafc2925876a4ec37e7021baf2f1a4f29231f3907049791f551a95c9df8fbee2e89a97e9454868a43994240195e19d8b504434dc9619f3394aa0ecd6f8d6e4ebaaced7a336f03cded2128c8f19a33ad71268a7bdcd32887a8fa0d72f3d21ac157c394647eea250c62d3990d621e94379c1ee0b1f5d14bf78f536e3324f2c9924f46e6c0d9c967651a28a8ab8916ed0d8f0d7135a36b344163aa853d266c8382e1a58d76c2df9149ca1cd1c23003925edc110a769eac5d72cda6bdb4cd4590283039c5c5d674e57e313e3348bf7b6e234600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001133a774a19ab61b8109f64814c51f34780235fc7fd842509d94be8a4d2a68ee83355bafa976cca4b782e3bae3d9491f279df8ae93f4a2c1b3945a22c7410a8ba3dd1f3e49f7e113609009ddbc3a561d934e75ba083633d6b80f88c88418299511590677d410af07d8896b9c8903d0884ce8ec7ea23f1ebc08dc870acd2c30d22315b49d6ff2526ec4fd9cae7f30cc356436612577e020848692920fd9085260015c54222a532bd9b8e79e3bb2788f09f19b4f41f839babf9a34d90507c22d0f31d1a7a866d049bd0f02a39b96d04d460ea19c69dbdc07833b06900d80da5233d06e7b4b94a9bcfc9be4a742840db35d30c82d686d248548c74ede204dc81503722c9045498d573a52b887db4c342e20ef2961a2837bd158ff054c033f73ae6931b9be59407de6536533ff0e414ea4500b9dfe4d4e090b7077d257df5e05b52e1200eb020a2be2dc001fa7c1bcf8a07b2a950d809e29eee449310ca02bb28c9bf0b36900480c46fe47dbdf8fdddfb85778d0b04ee35554e178ba05057c07420371d8ede1aeec5815daa129f8589ec50b4c38ae0ae88608075ab34b621e3644bd3321bd871b27f6e5fd7e378bcafc6f5175c8d04e5e246efb882fdf1abc4cb1b93363735a35595151b34e047f8e4c7673734dad13558ee078841673efe6223ba26177e1db765a9cfe132cabee8141f26a9554c8bce64f153286328811a1b97ceb522a2b0e7e95ea5247188b6c05063a52007110f5a4485de2a2c613a971c7f418c138d96a4a8209a27d0dd78d8a9c868e3e765da3629738e76d9ef1f071981bdf12d30c4b65ccaff430a6ae8691b1502ed1df45381b89288e2a79f83e093ee643012cf3b49a33500bcf5951796e4eafd130452457a50ba7038f18dad0c6c119bd121f3d78fcff6fc4f34168a0d87690ea12ef1d6947ef5c11a7a96009be3a7f4ed1e0c2870300903b0cbe975f27896f15ef354c2678a5738011e9730511c580b1429c335cf0fd2ed8c0470b243a50d4925a62bfeee6832d34d3293a1317247c89f163cca30f02d1273fb8f4dbc5af2b6da7c1a9a0da11a25ce66998fbb8db8376210d00d0b4f1ea3bc16337b5239426dbbd8082fb3ed17352f315a93303b66eb182f2ff2f4b0e15c43e9cc84adc6bd92444a3e69481c35c3ec67d29dbcc49914e92d30c4b65ccaff430a6ae8691b1502ed1df45381b89288e2a79f83e093ee643012cf3b49a33500bcf5951796e4eafd130452457a50ba7038f18dad0c6c119bd121f3d78fcff6fc4f34168a0d87690ea12ef1d6947ef5c11a7a96009be3a7f4ed1e0c2870300903b0cbe975f27896f15ef354c2678a5738011e9730511c580b1429c335cf0fd2ed8c0470b243a50d4925a62bfeee6832d34d3293a1317247c89f163cca30f02d1273fb8f4dbc5af2b6da7c1a9a0da11a25ce66998fbb8db8376210d00d0b4f1ea3bc16337b5239426dbbd8082fb3ed17352f315a93303b66eb182f2ff2f4b0e15c43e9cc84adc6bd92444a3e69481c35c3ec67d29dbcc49914e93c5f354a6809f5d8fc0d754f10b0845dec5a231524772141e6eba5461ed414fa0552acfb4136a8687c086867198f336159a70e0de3347500c25c57abf0d8fec11e33c15bb7c48e9229bac840ac06e645d5d917c31e7bc20a0d2539cb4b8d780c018b32a08bd577cb0759e12c12649b35b1950d0243bdc98db464389292a9847109ba3ec16ce4e3b577c673d5f779617b91117c21acc708f2cb129044f137bc6730be7cf60e14728754091d3ce47d168eba3688ee70a16bc363f93b55af74c3ab140abd0d572caa3449846edca7dab68abf06b7538daa95c4ed7c7ffad844ffb50e59ceb397bebcaec96b9b376943e0716b5b2081089021d634130bdc897d5c4c2e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd630724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f63f7f30e3a522dc6fedabd456e1e59d3a23b81f83c1fce0491f79071ad8c30f1e1b3a96d7923c736fad0f134f3ba55954c26859c3027f01f0e736830ee9b27479256d0959e0317b94da37c2704348955c8259f71fcfa70eeb3e4982c8959e72fd3922206432f3dfcc7c9db66cd40c3169170a7debe25aba8d226ca0ae7c7d7cd034fac432e92a2b42e05aca56726b8cff6ba0fac7a6f2a5b1456c948b9eec1f080b053bcd16d5d4bd1fa535a98d947300b6a59e34625a536a53c09c616113e0fa1a2860d6799e7e8128c54e3756812bb83112475cde65eb68ed4524696648294d1acbeae826ae756b4fd92588190031879cd596490575d27d14629329ff7625c92e82e168b10984ebf3882af7c607017785483bca2939819d44e632e3b8ebf51c127157567c1b756d037771244847f987f11dd52364c7ce7d5742716e2eb606f112c3e655ddab7de8cb099b20822eca36512856454cbbb8b49966b76d6cb4d6c42f8b04a641f5bd9684e6c27e27603f178a74b98f35b6fd0218a9ee67420a6c9f000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012a138378678b9a9fa9f822caed56fceefea86209bd4021ba6bee573e3c901bb228c918ff0fa3a0c67bfb6b09e1e1955a75796a8302704342f297c61e7e1081c63a74d565cdc980ea6ae240b93a5eeb1cf5c4476b65c5bb5976091e2e3b83b4e409724080afb6b80e23451e0e31b32ec209d72e3e6f703c689d9466c0f819bec610bff26eb79ccc2698381c1e526c8e8cb81ba5da513c88a95d658706741d25391b5396ef89c9859185f9151eca021218fbe3e645a1fc14164059a32652b8cca537116fac156fe37d320c94709832c3f22e65f14c7ea2e46f49ab4ef770fb2139252df3bf9b3a43fc1c81f8d7197587f0711ea690f28a3b522d2efe8aa6d9fd30214e3a4e3e248494d38c08f1d5f7eba0c97998462ab93c1c6739d4e713a7bfcd2e3e162ffd97be3811337cae82bd1f822cc386b0dbe9975197b39c8f083b9a5e22b9de9a05cedd8225130d0caf51ab986662849eda2a51d47a9b045a9b1ad645120e7452eeccc843918d303bf6eea2d60b26712452de0050a4a46f5efc3a95ba298237ad97a925b7fb5f8fc518872edcc9ef6f7452d907d96b1f70a69e0e84a626287edf099bca058696887d212c16ef5628762017ce6854c31337270a20e2c03eaab85ccf078c24d4d49fd75524349b4a32bc61d43aa8f78a08534a1e7cafdf106d64d6e051bd4aa75782d3e051ec2d55a9fa53455bd1f4af3ebd2de24c32e1129415db32addd146daabee6f5ee6b77961e9789ad6a9d253cff105823ab8c7209b727b072fd9d39077a488d58ab0e7b60f7a3532ee5474d70e8e695a47a48f43395a5dd360e13de1d90628d3107ef8b4b55279b87bebf2e5cae67f17ea6ba930c6a5a22c9f1ec21e26f9d72cef81074d6f17160818e39ed3c7ec8fb8159456e01ec3d520e46635693d1ecc1f527adb7ef8f62198185d7796ab344037941a4db3e13c2adf1b99ca96c2e133e0ad8524832b736e287c721a22e79ece986be5b26099d329a475ff0b0e3199fc9c9c66497adccea7f879d355f158054115e4838473662cd65b8a00f4f1ce6603636399b687479ae7c81afc3bc83acdcdba1b7c7ba3011fd0364dfb3746f801ef0f0dff6f66500947da6120adb6b81a456d76919630fee02fc9b204c8b907fe10f0f200909bd46047e633aee402dab8c962896e69e3395a5dd360e13de1d90628d3107ef8b4b55279b87bebf2e5cae67f17ea6ba930c6a5a22c9f1ec21e26f9d72cef81074d6f17160818e39ed3c7ec8fb8159456e01ec3d520e46635693d1ecc1f527adb7ef8f62198185d7796ab344037941a4db3e13c2adf1b99ca96c2e133e0ad8524832b736e287c721a22e79ece986be5b26099d329a475ff0b0e3199fc9c9c66497adccea7f879d355f158054115e4838473662cd65b8a00f4f1ce6603636399b687479ae7c81afc3bc83acdcdba1b7c7ba3011fd0364dfb3746f801ef0f0dff6f66500947da6120adb6b81a456d76919630fee02fc9b204c8b907fe10f0f200909bd46047e633aee402dab8c962896e69e1daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff42ce53ced07446ce4cbfeaaa0f4abcb1f9db63b2df513b703b1ed32ba27a6c3e40ec70c44d876c57b82bb950c382934e3ec0009a81f04f2b33ea650419990bbc823395a400a684d94c6d78fbb9be15c3f755ec66343bd022f90dd2d33a0d5bb6d0acb6a404135136d1257fddd30a618cd231dcdf8bb21b7ee6788bc2a9fab0c8a3780608b24a9456ccb9f2045db37255b2c52432e9a501fe468cb58daa56815043e67bfa2358232f285f9c6aa48a670ae33bc882dc8695475516879500f531a3b05f957432b4d66c307dd8d7a9f77a65b49b53376dadd9b2290ea826fd6568a542e26f67ab7b96cbd66298cf342505f2dedb559fa4be2273dd01899d6c3abb17103e95278400e0261be0173704e35195ed08b526147587391f22271c9aff1acd02e6f28d62bd42c3fcc73da7b517d5baa60819620acba95f0aedd2585cf579b7d35705bc03969e10b81c3063b89f4985eb328621906caf853ca0348347f0337803eaff1fda99cf274ec44143257d36d2aa688c4542941c328302d04ff1aff04470749654581b0744e1b99794847a43930c573081ebae8d115f9eaae5dbb57860f38b69aba7e4f8bb1e46686b7b85bc6cf5cd390dd4e6428059f42828f44a879f32ae97dec5beded385fc5a0fbc4dbad157d00b9605a7af6d457ef6729bf577f581692321285153bfbd269c62de2a8b229adf2e7765fb13f6dfb9efe3f1b2d1a6613c2edca043bfbefe137a27b08a8997d6151e2cc09bc0d9dbeeab485e46e2284379704caf1a3956679f4fed0cc79f4a409c31f28f7570b1a33dbf528767a0e062f244c42c07aa2adb178d863c82e44f801963c1abefa4604560d9922872b221021670fa21cf311d03323710021d3b9af58b09f0e76a3999c34f7c17e93b32d270000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000105ef28bb37870e2956e0ca8373dfb53ca25283dc496523edd689fb24ce3d15160ffaf1fd37fa3a6e30758b55573b347318cc7de00e4814622011ba8c3e9ecfeb394031adcf3bddf1d5c2c65069a470a20ac215810b6c6dbbe8d2268312e726fd1b19b898e3bcc05c13513b750bb0d67a63bf272a0a00a0bccdd634138c161bd520852d9cd639680b2d4ba4cc4cbbf58055fa09b712543f327709ba3df9fccd1e06122ce578c8978f32cad194b99fab77d6fa5a084fe0a1542b807b59426d0f980afd2e808afca9e72d4acab191940964a8cf8de2f86e707f7e2839294c7974042ecd4cffcc97b64146e19c18c957da5dbfc6d2cd992f11bf80057f78591da5841121e2dfffad26e1abdb004617e8a86cdfc23110b7b3eb15d8e6ba4ac208cc7c3314e2d3d37a79154e4c0667e9d35eab4b93fd465dcd270227e4c50356307ca61b0ccc75474575e42fcf2d4ed95c1a4c2acd36e268af6d9cd6a836a975a646052dc270fcf6540983a25c3adf5535e12bf378a54fc70a185a3a782c1184f2be3e074d101e473b0b60462be350c56c3939718990cb4a2db52b6c8d34ffe94bc485085da66e5a09e45d3bca34f174470c928c47bbcd172cc1e7287841e0bee3a2e03cf850aa9595be4878bd1cee2e3ac14946c856d6a49234233f265bbc83e8140a21510bc249bffe88fca3965d33f041df0278db90c7a354595af64d6bd64248f63a70721b2b8b32dd3c51cb0dcca9765da60fc6630119acabc9e7cb2df21bc693160658d4947e83dbf2406d62c6baf5c3f277f92548bb249da09d1b1ee212c0e20204b49a0d32048e2071504769351aacac54528b75b0155e3a707f3192cbde183dfb4b65f2cdfb71df8eafb896cae55375f24670939ce3bd5ebcb1bb6d3421e90a17870241fa16c6a23691650e09855f5da59cb94c706ad724327bf7ddfb567835e878fdbe05e9395dc96e9af1f67aa0c4a0fc42bcdc8e4474fab4f52204a9893275a30b49e271e12b10d6f9462f9adcd43c0f9e7e321633b4fc6bd755e8b0580d8a5cf4b61d8e1ed4ef2906b9d065234e0a895d8b1ae2e7e430c515aa174fa93c4c2f38716c3965d75432de5eee064fbe5883245b1383afbd66886dad8b71b503b3d0c78e93c69a28abcd21a111f9b063ee15d7ae39756bdbc6a87f52748e4c0204b49a0d32048e2071504769351aacac54528b75b0155e3a707f3192cbde183dfb4b65f2cdfb71df8eafb896cae55375f24670939ce3bd5ebcb1bb6d3421e90a17870241fa16c6a23691650e09855f5da59cb94c706ad724327bf7ddfb567835e878fdbe05e9395dc96e9af1f67aa0c4a0fc42bcdc8e4474fab4f52204a9893275a30b49e271e12b10d6f9462f9adcd43c0f9e7e321633b4fc6bd755e8b0580d8a5cf4b61d8e1ed4ef2906b9d065234e0a895d8b1ae2e7e430c515aa174fa93c4c2f38716c3965d75432de5eee064fbe5883245b1383afbd66886dad8b71b503b3d0c78e93c69a28abcd21a111f9b063ee15d7ae39756bdbc6a87f52748e4c07b0d5bcc9ec3b3519e1c387b96fd2b5b394f2a19894a21b9af910b00e9f70833756d5b8b269cb43b4e1645cd9b858f5a91fbb368bec1f0b8c14c58ce7233b722361b64dae7e512dbcdd173d2457cc67766e5bee3bb3835c089c11f69494135838e121bda4be2151157ea3e6b2aab629c6187ca7e01ff0f7a2d6a67dd12eee68092d97c34e376b63e44ee2fdb8edc57dd52d967f44e9ff11340a69a0945aacef2c797c664f8e13589e5ead5f295b5206dee5742872158b36e1ef11847e977ecb283ee68b27d40a5745056f2725b3db7ee753772eb05448cb014af6500dc9ff2b07c7d654ee7df77bc86af58efab033151a0a46cf625813d4ed0f1e3d8dfb7b783c45ae4868a6aa3509ead71f15fb75699d7ae17f13dc248de26c8da6687adeda286fce36c7c6dcd354f645d87fd9dc5a5263fc02d1038a65afc7a75c3bff737628f43bb2c868137aee268d33127ffacdae6ab4bc988caf66d6b9a59cb77d5bd63070006b8220f8c2c22b4805f8c69a260daeaf4d153958c4c6277eedf5b1ce2714ed73f58795739d2941253b223860e2f8434a6c3504d3a3f5980e465ccc7c270fc80889a8d8136b359ff7bc739cf0e0d554fa19a68de234036ef5cf47add6292c7da5bebfce96c9d44adf62a25e8488c825e7656d4e4259defd97d720cd08b213825a41403169362bb5209d5da17b775a20b1969bfeb6c1ba2f9915df32f75029a6d80771b663e4de64aa6b34df3c2033e1020db0fd93ba8e4f3209f7c1025e3492f8eaae5db1eb890a2064be48010597bbbbbabc1338a8f04d89852245ef24166d60eb4ecfc5ac8a37f7f38a2acad7abb940418b00036fed80e5ba3d34cc8225d2edfee774f844ae703a465c427b1afe0a66eb5ab1d97dce6d6e62ef472ac62ef771597d4eff7928b363d047d0af484a03786872e005a385fca36dca85dfca252d4e66fc137aecf09b82a21fe778001bd22a058f5eb691501577ce02af8c54000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013e8c89ebe8cf3aed9e7495fe5bc65b79c118c65888071ed5000074cbc4a3838e3739adbe15b4f00cf6566f9732867431b26b0f1cb1d85e48f5d91cc144abd9a40366842c2f00ba675952c9653991199af8c6db6f04791061a013078c88770a3c1f883db1cce24eb132c41f3d98cbad9de44661799a02ba565b05f95fd20eb7f11115c4d8c38db99c5bb3f5a9cbb25d5301660cbd55f90be0d597e47964577ef604c8b6729ca2a763fdff8f1757a534c9f058b8bc0a7fadc90ac8c4f01533bf3814f4161e633a7c7444650285e2edb68d310a5640993e24a120ba5db51d85e79d1847950e0241e25627494b1dfec45f30f7c471756a0b841b292bb00510b79616011089440fc397bbede39a82fa91085c1ac27e919d9b9a86bda0d7710b6dcdfe3450581507b9568513d6e3a6a8990ac9e2e23f31f024303d6d0c07f60ed8aa30399161e66345800d58f35cba9ab9e4304a711a3038c3a5c97bc66ee87b4c83f23bae76b40e5df3560a55f4796ff8bb393bf0792cdf62e0f33876e3ec607e617a05acc0ec31914f687ed7bb09b99b38e6d688c266a07b70f4b48bf6c6a8a5836609fdf5a06fb3a055031e5d3880180ce527488a31c0df061de0798019ff89e3ff017eae07e58a70f419101c374f919abfb14c2636fa5751460288a13b67a8601e26a4765c5264dca5ff7318d6e58b733715efecc4d252fedf78e98a0c029f5e352523bdfb1a5358adf6dbeee1a6fb4b6abcc94cfcb4a11ffac27a6ba6ac06918a0b3993c23116236e359fdb56daf4bc4f51f653b043b0510c043b13229d0b929d2536d7ae9327c01d3159ed3ae3849187e4fded6c3b9bbd494a7b15ae78e51dfe1ac928516cd83fe2cea612c51c7b6e783d48ab8fcdb13bd24eb21b3e871ae2033a123668dfc6c091f6c1a2267196d7a7346871251770c037420d0a8e5c7995f405edc99720393f6e093e5dd98e692858edde27d6f1dc38e45720265ea3866a0d225b100c5ee1c2d9d1c82ac037f236437cefd1c94fffdca5e58c7113ce5fedc01da4eff3a11e3d262e37d53fc80dc9bca556c732b94d1c75b3a0bfd931a012412bc7503dda68ce4118e8d5c117bb0f512c21e6f67d655d064963d38907dfa4be1438afc2259731bee7172a3ee844f0aef624b2058be79c154fc95d63f8205b432536d7ae9327c01d3159ed3ae3849187e4fded6c3b9bbd494a7b15ae78e51dfe1ac928516cd83fe2cea612c51c7b6e783d48ab8fcdb13bd24eb21b3e871ae2033a123668dfc6c091f6c1a2267196d7a7346871251770c037420d0a8e5c7995f405edc99720393f6e093e5dd98e692858edde27d6f1dc38e45720265ea3866a0d225b100c5ee1c2d9d1c82ac037f236437cefd1c94fffdca5e58c7113ce5fedc01da4eff3a11e3d262e37d53fc80dc9bca556c732b94d1c75b3a0bfd931a012412bc7503dda68ce4118e8d5c117bb0f512c21e6f67d655d064963d38907dfa4be1438afc2259731bee7172a3ee844f0aef624b2058be79c154fc95d63f8205b431d8394ba2e4adcaeaef721748559b459a82e03b51fc3c9ede424d047bd7ed5f20c42ba95e57d85e81e62e43ece358248321ec92aa5f4b75b78640b9689961a6a29d7a4ab01bed336de2374a17e4b97338f6f18bb99d246b53105b90d6014862f048f2c43ec98418df9e7f3e6fcd964d4bcd802356279b7fff0f5824d2622a81622fd51b03acc233e68925827f0ef75cc95274a555a5a6f94cde32383b3c2300e1945226cd708e68d1e2209d7f1c11660f0b044e6400af76672c727c8f2c63f4c284898ae85facafdfae320ee674e0a7af23650af192b3280d49b71d5f31b72de198183a5524851440ba9092293be000c102bcf54e9e649aa7462137a51fb0ed1235b5f0d6a17565734c6c297adb20db96542cc678885f50ad8c48986405d7d6b047780b393c9324d25d3cf2c8399bf9cb8b67dbfc80f7d2ddb11c11af25663f733b78cf9b412db73acc90b9342beb7b17ffc913fc85ea41e2158f0352faeae6f1a2416346f6b199301dfede424ccd873dbda7c06df07bd43968350a9f0a292a838a4c69acff6501a72e569e9fc5ab4730cf015875903e1941d2fd884e26ca3e22f2e19262dea3889e7b527da34f118e3334fcd9c00de89c02fd3a30950473d82342d45e73c2d1dcd4d119abd78c0f4d6543997c790f46466421e1769f0163feb0bd2ba18c3d2e232b2ee6542873f0b29ce0d0134785894b5570f19830fe9c017310023df2f8c547f4cfd73353ae424c178bdfaaf5b8603db3df7d60ee7ba75383aaa0bc91b50f1a5fbfba8ff7a77ebcbbf8980375da512d27db7eb7a941fd43f3b1955aa3aa0dda9dbeda17afc46d5000de2114961f0105c8425ee297669b0903e03b4973c05198832b87e7c40d59330c8ef04d69a6e5a88de571e8ff23b9d4c1f6fa38efe1be20a6c320608b2c28cf397c06ed7fae85e181a485b699b97d3b3315dea9c405d30508123e005725128dcd8d0afea1dce0691ed318cfc89ac12c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010b77c1197c929d4b643081e0cab4c952eb0b5364911ba8091ed58e769f2063812de87aa31e0e4cbd34cf424a6f50f56d045c6e3af77c0b7536cb862629f468e736148bf59be93fa7ce84f85509152ef4ef98f277cb6787ab7c2cf2a05bdb2a912f05327bde01a18fe6a545b3f3de198de3a5a0049c66eaf0437f236d7744329209701ada6dadeef9fea0f1e4a1847f8b856aeeed22994a3ecc2184c4548054be3b2ce4bc3fc244dcd8855bf2ac4d0e391a0919afa4fc989cf4d88a06760e46ce012c32e9207b71229f1176a9e5cdc9dedc5e4a2bdf20b7b85cd27f3997f9ca280cbd09c44c1693a56bb962d67f6d672c4830836a3d2f0daddc24c7291f56ad8e0c69c22249e02ee86a0d1bd0acf01a6c3d6fc2f780f6b3494a46f9c33a6fb8d538fc8497281cea95a3bbef03b55f569d9c20e0f404e84557c395b4462f485d98068a1adabcee2c5e692b141914f9bf71852151e77172ebdb884581ee9f558ea136dae0aa2cd2207b2c1bfe8e4eb4e2cd907fe956d5caee7dd680038ae122884f3c01553a6bc249c6ff062bd90e96e0a7f774dc76a06515484488b812a6238ee313a961523582a5f682efec692b1c652428a3091dca425ae5e9a9efbb020bd883057d07783d74265ca6ba341ffae177d844bf5c1799805249c6544d01a2a28efa14eeacdc4d29e267bf0abe112abea2e7144e9838d7bf4e57ce8064106e3177812b841a0ae7462125ed92ede4756adaf8b85e7145c5ec1e77948f5be653b78569261627d0a17e0ef8ab6be82f257ea3bfd80ccc88d46f68451d34fe163f063ef2365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575109a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b00fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d430f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22334bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575109a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b00fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d430f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22334bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e196338b4638e14cfd60159eba3a4b37353ad4a5d4d9e176d1f2d58b8452241f02622cbee39cde689d2d8a050b771f7a2c3b1ba52e62b09b30c8e93c520f6ada108e7ffa7a6007171ca846ab5c221a555d35b9aacf9f95610076d0f3575dc681c0440361a1ec224d7d8d5ea28a83a7d57f8b8b730acf476f957ec35112a3fa61626bbfed82d1828baee8720e0a208b1b44b74061ef724dd8e083522442f783e5d197c72c4ccb103b028475e963f041edf0457e1b288d586454f04237818425ece04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a3b6eeac5e4cb11c87a80550d4b74dfa3eb8d23386b65868e6be730962988072412334659429b892780000594c3d097f40db55bed1a591791fa10890d107b17801d6a5055453de0b1f5ee004b172161a4672b9d1ed3c3d60b5965531316d1491429830108cb5a02fb92b96cc16107c2713d5b965caf18aaee85332c9caa0d94d41b3d9840014b56d5e06008e175546d429279f5dbdfade3229583d32a9821679a24c267bffeb4a92a1f9ff71e8aab92bd8fcca320299f15f903a95dc267de986832dc9e0425440fd13b49e72087bbfd0944c40d96f6411202ccae4631e46097ad1d04c802c73bb5682da8ae046269d75e6d067a1ee1225b7c287c4b176cf2a6de2a058eedbea0901751c3cb699500e5c6a9232dbca0bbf3319c64a76754fd1b9410107710165bc0e1593682c1358f9dd773b9f523e8d4a9a061632ed053cc2be01fe51a21e994ffe1e00a4dd29d4ffedb384f01abea3acf52bf2ea331a1a8f0dd0d4599ce45d427e2d631ad7a1bd61fe7e487b02b5406a1dc6f2d36652d5e606a00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001128dfe18ca83ba51b71d807d3f39d29517c08d3d418123651e9b22f3394d42632baadf51c0967e82e22afe99af216599c49553ad3266faf11e98c33dbf9e89da36633eb9d8f2850bb7cd39fd0e0b5b2309609cb0375c39f2c3be3973aa99c5c500e14e414857349d4fc03288c2355c778bb6d16474b68187f5b8a64395596e9c0d49b78ad17be3cc78167be936911e28187892bd920715bc9a8c2aa616b7557a0b679b62d8dd9652581ab85f89ca2af488879b966664a1da62d7f923f398335e2781031c6d2f8d3f2e4738867f390aa037f5f6d8f566eca62dc6006f27337c5c20d5c721d5dd51fd1a17dd6e9b34eb86551e0eaf46eefefc255d6140093063cc2de77298419249ac825157b9714cd5a5719adc16a64ac75d69f8ea6726063f0b0e4b8f78e621c090866c82dcb40a0fbd9935f5d90968e9e6fe1d949ccf2fae730f35170bf7b1bcf30dbb02f2ae357e426937428db2652b1ba5cbb935811ce03c247d7fab66df23bb452507802b7a484d0c27e331576117a392e8977a39741d9d1a19e52e3ba71ceab3a59e5fb5387395b0114477ec4b1288513c8e4452e1057e3590d15e659dd2d2ce5079e2847ad2367006a11c7e5c5da5dcf61989554e61e8334803f84404b90ab676dfa456b284ed80587877bf072248690682481ade24b12a1047c055fb549955e70886683925272d662119c22c1135efff8899b67124e90e823a99584cfc1d14cd8b09d1e015502fb910fb5e9bd8f0bb04d689f19e973704410a6aa4538987ca1074bb7cd7c8fc4b693aad33f0284765747bca59c57a372bd0405ab456f0bea331cde047bb2c125949cbc4a98bfd60a8e0118e69765e7a142fbfa54ba90f415cce321fb844d3edc8fccd375fc0fbbaf04d1f5e9689a1871b1141c585b2b3b92ff9056166a7dc5b579d2fe333d5079080d8c5010f4fd85f24eebe3a7a4d4c46d006fa9e995823a4caa96918d577f18b18546bebf0b027a2075648db9c7d829defdd1ae701474dc87184bd77f08f339b51e1772b4c8f39d938a9b72463827d621022e518feb8b237b0c1db8418bdc580474bb9c1b370c62824af6c4a0e738d15af518683066484ea3797b357b2cc0208996753d87ecc213d1b5093b5f18c72ea50ae797cf99b7b15eaaee5a45680f712ffc5dd148133dec42bd0405ab456f0bea331cde047bb2c125949cbc4a98bfd60a8e0118e69765e7a142fbfa54ba90f415cce321fb844d3edc8fccd375fc0fbbaf04d1f5e9689a1871b1141c585b2b3b92ff9056166a7dc5b579d2fe333d5079080d8c5010f4fd85f24eebe3a7a4d4c46d006fa9e995823a4caa96918d577f18b18546bebf0b027a2075648db9c7d829defdd1ae701474dc87184bd77f08f339b51e1772b4c8f39d938a9b72463827d621022e518feb8b237b0c1db8418bdc580474bb9c1b370c62824af6c4a0e738d15af518683066484ea3797b357b2cc0208996753d87ecc213d1b5093b5f18c72ea50ae797cf99b7b15eaaee5a45680f712ffc5dd148133dec4376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec2ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b200905d69e666e3b2a0d6d173f142cef7678532cc741da81bb8790348d2c293b4d08283f8b0e460d52c58913fad78e1fc4cce8aa7552f29062c225dd92e0b0220d3f12e6d50c19d3afe7194b499f780b8254280277f27d10a690611b5074a3acfb248677f56dd7dd830c3d4eba7dc5a9491cd36a974b3715b2c93e973495bd87022cc2720a52f1c8b3e645a5a14ab153afd19f76d4391f99ebffdf81ecf51e775d11f76b80533490007d130518a294847325d3679c416406b0948885d8d5135f3c11d68caa2862c78883eaee78094d9fb69b4c1aed67ae908a1a76c75ec489012536bc066bad4f192cbdf19e4a06169f22f64d1f342a06c9e1b7b20cb69f53d579249ee770786f97c5ae19a5a2efede4059fcfcc794a65d5959bef42d651d7ed922dcc61308ccdd0f07246c9274194c18a8befc9595e813ea573fa5d8eabafe9123f8accd0a2fe98f110745ccc315197fed62328601bd6def78157fd64826d63ca0907c64532b347c431682ff5de12a6dabb7611c175de7b7450d0d6b0e16f72d508cec664f5af7fc45282be822b3af8dbdfd6092bf1d01515c9a5f0ade3198e513731399b0a50803bad7d417dd4c5072442708fd0177ce405cf87403f1ce671b1179f18f4efb54da6f69117ab24cb085fe3e17331c405e0e6366678c7e80231511a9f5752226a546c94c74f74504497574c58734b471215c882ca0664875b02103e4b2492adf430a0e8a7a7195af426787038a07bb7fcfcc341310f29e13c28a53c6faa9f6dd6652a222e877eb1b1dde117cb58f0ae22b84f44b0b00ed111f57c0ef5d56097aacb5c3b09a0db63ef313f4a044b16b67dec81e6c650a89abf1ac71b8922ca8d5b7349006921bd3fa0c8999805bbbb209eaf81c6394ccfe6ced952000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013d95323c72ba34a7f1516223cf2cbf9109f1d9882d13d1c8d182552b65cdd17713bd2d46074d2c4ef0b7388c8e89bd3b1513427629edcea4f56ef30c2b01067d20756fca380009aa9c71630f3a9cd58b2d1b7636f8f629f01b22474dcd8d2296345ca7c49ac97f393e1c356c2be180db02941a2377d948bb499e87c79d2fc1680486fce4d180aa85666e1106bddc4a8dc6bec2bb764a211d25438c9ba9186a6d213a7f63819d0dc4af4a49c9b742416605e86549c3c182a847e0fa2f3a48483c03167d790bcf08a9e1f4fd88a83dabb3ffcd47287ae2d9e85c9793843933a7c80271ac5c3ae8f6a2c6a0a836257501a6305aca175e28b9d54bec63effaad7c4c14b4cc37ebd8f1e886f6b6ca23d96bc348707f917fe703606fba0b6341aeec97352d51f9d8788577206b2db2467dda613679306b3a6b4889d1c6591f170d4884001c45ea3de1326c146f30ccd93c6e707908733e8170d5279b03ee768a2214d5336c222f33bd6b9f84a2035f192a293dd63b30bd584482b65aee8b69d373d4e63c667559612466bb060a125a1e1b24510ddc47b9e6e9ba9cd4a5e4264a8069e813444133402089027bec05e81b98217b123b9dda83bdb591598cc3a75daefd7e17664c998bd5235fe71ebfb64def298a47abfcfbe4a54edd55ce62bf4d86d218394c36e878ceb56350cf5363179a4214ddef89720697b57ac1d87ad06fb278e60f6112a588513e482de5872e938c5f3cd186d3d747baa9d8edd41910ee5d99b41d7a349cc00528ceed5cbcd0d70d8d7ae1f809d31fcd4f3ebb1f5caf8e2aa61130b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b913383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d0c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d4019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d12407dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea51382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b030b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b913383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d0c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d4019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d12407dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea51382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b02260f666d094d1a6403be2dc098fb8f586eb4ad8166745ba69d9a8268d67ce9511fa42639b21ecaf1ed4e983217b62a6709fcf49a5422b064a6309c8e2c55766374baf5ec512737c4b30713f1f990aee557a2b2289954c4678ebb40fec4e4b6d03c88a181de5af86bd618c7ca6d2d1c6c23247c7fb1d7c35badde3a77e53e2751d0e91854489c12ebe7a3fe60a253723a77be6156df5a2af0472425de5c64eb8266251b54c6d2543d21425e07ec0aeda47502ad99e9fa2f46262cd952d3d00001b1353dbdcbacf05d7f8445e7cd1ac7ebae5ae3a8fe2a96f0215074076abd6803db11dddd7e8aad9d0c5bf60ddc65996faec969496034479f8b4e1d72b5460f73a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f21621663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac5056cb4030f4d5c2e8923e36a4a17988b6c366788df71a22da6be18e7fead30e202eff5c09eb16740fed884a0786270bd6ae9367ba870daf98c4d5f53a9b3eff526535a3a6a58badd7493abe4d6d73c1c6827bbfd729d60364f9505a38649e6012a3d338446f863ca23c98a0037b1cb92ef7481ea68ed51df93ec437c9ee6c6270fef7a203ab70c8cc8bef1e3b8603d5af1c670d79d1692a25e7f07f550285b3c301085dfc548f37337410e1c479fc2a5308028246c3666793aae28f7afd7a4c615c2fa3e41c489be4b82f6e4b3a7ce9cd1f313bf76ee9b065bf8679620a7f9510b3ebf5fb6480b30894371dba3a5fdbdd1b1b0fc6efc5b410a4aa2017f7ce63f25bc48f8eee95bee234994c721d6a872a35dbd73a770be9d5ced0c0702aa2e9100ceec7a2d04b43381f9bb53c95bc2ea0549de63bc0de1e33beed1f50f610ebf11856441a508a00582af0b0fd3035a2973748c851d8c298709e55cb2b32d70ce37dd43dc8a7697b1af2f9152ecdd753738a0c0deb79359e5b4c03d65a4cf912a0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000118a1d774bbadc7bf8d9f0e165d163aed99726cb1358331bc8815881d59b176b93fbde4d33f577cdc0b16ba95f3434a5912cca018368a8ec9b54797370ef40d51305b5872e768d49cd49220c23bda2c885176edeedbfc6eeae61cab51d6e9e29e2226d6873f3b80f7185d9fe9cd05bee0655bee027642be7ae9ce0f391cedba723685831fdf4233a0933e958e82a551917cb48be6d071c13e350b31be3f455e96389ff51c70c83643a0fddca11a87ed996afc5ecd8a811b3f8df39c09f4f748811e15065dcb934d61f7b06022584d8408e48db721e384dd1192d47521103265a808b9b00d18ebfa6b368322cd56f2a1c67c869fa96f6944b513e13b56b5211fe233a6e1c0b9e66da1270f563c654d65a057b0da2174829fc5257f7c433d05a7271f2aed6cd8f21cbc3307fd8132a7b6747bf206d51ed211520a99e84aed5de61b24db2c65d195325bb5cf468e366d298bbb60a1cf92b6918be9af697ce7584b2e0bcea397edd04341d3f4016a69b6dee45bc16d7c2fad358db5481ec3b60e88a01309e232d549a3b01d6819ac09fe6d3de6a6cdee1d09515b3daf4d2361bdfae53ca0d459cbfb4c0d648dfe962fb4d88e397117a64d9e1ed2f0835aaa46716c812c7d9b011a7bbb6df1305efce1da6300288de82c9f63fa627bf6b0ca8bdaca941184a8badf6da9f43fe202682ad25c851a03fec9e33fc8b7c714440e51a6b9d22f726e00485085aafca1e17ae2026351e8b7e4dbc96498204880fbd895c7330330ca71e693307609dd3239aea0796102e3e72e78af35e0c408ef573a638f44d32f712d9402cd551e2139b3bf60d1b084583955d2599440b2edcc989065d09091108ed26bfd32aae1dec64c409f2e4f7bca0d4329afb8b868ab60985c9a2f6f702d35e3e40e02a996a62082bce4187295524ae227a3fe582bd977680afd12d2d212ca1c1bf1fd566959df7d431be78d6acffbb6d4654ea0efbfb5c8e202ed2d2f220d7374460d4ff13ea28db0747a3cea34a29fd21810cd8873cd756ff15e1e171df28c8bb9f2b00ec15d724f8b85c315eda3f929f13c2b93255fbb7d0ea1e1ea2a4341455e428fb6392cc47246633092c29fed2265ba117310a8e955b6d6967115bcbebaa1bd7049c6d33b8db99ccf6d5fa6abd9a392e7a888844797492969902f712d9402cd551e2139b3bf60d1b084583955d2599440b2edcc989065d09091108ed26bfd32aae1dec64c409f2e4f7bca0d4329afb8b868ab60985c9a2f6f702d35e3e40e02a996a62082bce4187295524ae227a3fe582bd977680afd12d2d212ca1c1bf1fd566959df7d431be78d6acffbb6d4654ea0efbfb5c8e202ed2d2f220d7374460d4ff13ea28db0747a3cea34a29fd21810cd8873cd756ff15e1e171df28c8bb9f2b00ec15d724f8b85c315eda3f929f13c2b93255fbb7d0ea1e1ea2a4341455e428fb6392cc47246633092c29fed2265ba117310a8e955b6d6967115bcbebaa1bd7049c6d33b8db99ccf6d5fa6abd9a392e7a888844797492969900c8e75409cfea4dee8d5ef0552162e0956ef2a6901d74c5dc30d8531f7fd750d3d2ad1c5a84311902048eec5362fc54d0d1d9ccb0b08409046fae480f0b3a5db3770ba7500d2a77b885a6e4b3ba0df84e485d504803ed74304deff67013e092d0c0a4154e40c2e2e1c318c762a15901802af7f7c0c739541a6229a3d1de7a7f3056c76fcd7d4129f8a9b55f4dd156d58979175a140dd320ee4503c47ce211f0217b29c747f0d5edefba72ec64e6b377f9a78b5c73523d49800dbcbdc49d9c3dd2086b2eafdf76640fc5f5320e2730039d2f047b90cdd543c39fe58c2e01f06f72b6cafcd3bc4e5b8c69471cd7bca04a4f717a6e20530fc461fa526b0175e2f410cf4744978dfa55935648e4fcab96ebd33e91eef20a37884bc15fd66c82c3f0325d748e65cffce8e1cf09924474a2e4fe7a8905061b1795b5a6792092ffcf4f9286e91a8dd16f2bdc7d4ddde5a8f60f56a1109c0a449f2deec8581e4eed1b9d5313585fe94eba91719e1ac1b6b3ad4462550ff1f579e997a7fff4e750a0377ed3c00d04a622eb3a58ecfa2af7248f2720918328a9083ce966a6ddd4106c481c936caece573b0c041c38584c49fbaaa9b34c015b0fb1e1c65453ce31bf164b23516298764052ee51771df098b2afec422216fa23a2ed2553b10064b37d6c78cd029d6789bfad11ae88e20f674d5013bde00d6f6c1da7aa3e08926e5b52938733205c3ce00d97d1a64123fd5eab543eb726b16e34b10698a1142f28e38a05158063d1b533c071eff0e8560d09d97642290eb1f8fd80ddd6558bb85ac014d91d9b317990e3dbc0fc78209ca77e1163d4065477d71da19857da3953a8a5ead4d215b0bd1f93494209e2a97df9131bff86d0a9b403201f239c54d46ecf9f76761980e282fcc7090cb02c07e296905f1ce2033d981c6d9a5e03a630399e961e8034b961bab26913029cfa7e78f010ae8eea050067c35e61d7c2143f17f33319a4cbcbc0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000113f533382d76fe9b3561f550a2820d6b50b60112090a31b0c4c7edfd15b8cb8d1d35f25f681f99ed0de035703de30c4b3ec6ae01f963c9c10e79f7a494d50e2b27e9acd1b3ae6588fd64e4ce72182924f8b63457fed52132cc16482f4213441f0f01dc2f9bb6f9ff8bbf55a810e7e5819b48c9ab99b3350ced5343f46d8181e624f635a2ec36c51c5bd5e3227573210372cf12944ef65d0f1b83fc1b47ef6c03070a1da9181a8d43285cbbcf5a4f888f7af3280516e4a545171525ce2b733ceb28c1cf5079357d38b2c2c991a86ee2896b36754191b6371ca1d311c7c896a73f27a925a709c59403639980a9cca6ba1954bcc46d2380c2826a10b28446e98e860440e53adaefc23bf9dd9a02f9f90af9ab819a3ed2f69ae474a776fbd5942e6f254433e80a43b166c8a89190472037a0a51072426fe640a60fae7227b77cb33237339596e9a797af1a450559f61bdee1d36ed025e3e97e92bc3b236cfbf92e8e106b056b430ba665128aaf667fc5d1065ed16c79accbd5c5a03895496371f8e83db20668f952e9e38d8285012b019dff8fddbc6eaa5fb91f04f9e823ed8bc98a11f8b023a7f205d9f47393410eb1a7cc903a2925c047b70f2938bfa9baa39ddc005bab2d1781503d88aadfa3a51b3f656415aea6882a45317d349c4fa0872d1619fd4f554b51528c8cd385ba2527f90bc5b523faae5e9ec3c3b940b850348f7b0b92bfe621bc63e6289d47309bead6ba6f769f505f92323052b325b60128edc4045302f6c0089d4b109d325db5898772d2ceb92694f56cacfadfb32e3d540bd50fab3b030e399a910420f77a6d3e1cbec6da7633b99b0a852ac771612a40b90f3054c4fcf1c6656efbdf088592c1e3415b6c22c84fb1ee966e65bf8bd5bf46f20e58270f472004d514a4d56422368fb9bffdb60696ba3b7e3cb805f8d3439d4a31a7d8f0b8dffb2aeb5b2a9bddc970466248e2f57292bd9d5c752af42cbc62b707b8c34c63a0182967382af4ab10cea09dadf524e856305b966aecef2052127138473cb39c5fe7d698c7d50b54ef315f8498a3d720f6c8c002c243fddfaded90269bd07df22078cf0418d6c7575409231465c9b889aef1c9f016a0aba19a5c3519642f820ddf8730fbe72938a8abf6dd0de0cf437f9e0751a91690415e65a3cc0fab3b030e399a910420f77a6d3e1cbec6da7633b99b0a852ac771612a40b90f3054c4fcf1c6656efbdf088592c1e3415b6c22c84fb1ee966e65bf8bd5bf46f20e58270f472004d514a4d56422368fb9bffdb60696ba3b7e3cb805f8d3439d4a31a7d8f0b8dffb2aeb5b2a9bddc970466248e2f57292bd9d5c752af42cbc62b707b8c34c63a0182967382af4ab10cea09dadf524e856305b966aecef2052127138473cb39c5fe7d698c7d50b54ef315f8498a3d720f6c8c002c243fddfaded90269bd07df22078cf0418d6c7575409231465c9b889aef1c9f016a0aba19a5c3519642f820ddf8730fbe72938a8abf6dd0de0cf437f9e0751a91690415e65a3cc1aebe5602a8f012b625ab7294163b3f936535be6d1710961e568ba8e309576381b3b6514a5e576d3bf2166ce9c7de55051cce16420aa35ea7603aa0f35bf89c43f12e6d50c19d3afe7194b499f780b8254280277f27d10a690611b5074a3acfb248677f56dd7dd830c3d4eba7dc5a9491cd36a974b3715b2c93e973495bd8702258c009b6c55c415c7005a595075d8836dee62fd6135be0aa4bb5872dd3440980945e93b1ef5f36d66097a6cc3cf18416f1c5ec2134a28f2aabbc65a15f262101c9a6bb97f8f6f3f575a6c7fc20e4386c06e282861ac391597c30727344a1ca924abb6bbda4a380c454ce8c650abe4568cac2b5f366a1885062f52ed01840cc12ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec3836c24108ce66ce68404d1ca775365e938b88362d7b8c5dab04017d645d2b471301c8cb088b9f81d172eda54f92059b1d10fe721bea267d7d2dcca484684367260133cac9572b24b68bfd8d1f244084ba11d3994eabd82ebc908bfb5ac6dcd0003e22f5ec42aba934a14a76e5bc7166b3a64d009d6bad7e59eaefa93482ef3c2e91d739d2c3ff3fd46d719864a2c7f9e6418fc4a3103fc62c4b8d00095d7be5116e28c62d3c00c02b928e679b5d38063c050937663cb9556ce1a3ecf6a2841d1984cf160c6f1dde10f4aca42699b220ff6ada0742d766f37b74b02b7889bac42a0a1100612f180662e6479f055a7b5347338eb375ae8c455f4b47ef19edd7f71637c1c467bd91285f2ea15bd7887d5987d39f02a102294a862894bd881a1810229907a1f6704af57f5f6492a221aae432d0e4f672585f6714dc8e9b431c3e91376f0c8e0f6514af8b4d4995bfc17ba38e860e90a6fcce4f1b40277252aaed2e27c596073b8b3c49cdfbba3fd83124e41c46ca2a0270603f784facce53f7330b000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010821e65648a53500bf2ec40bba31e894ca58655a21ae76a4a6af8e08941d437c3caa790d9253109319ad09e5bd3fc7987a5a16e8ebd00c6da5786acd1b4909b9235e1776a2e8ee485538e431f237c62500a52ea7738a098a632fbdf0d9f20157113fd9a1ad3b8144b6473c25825223426880fb306426cf718d56b4dc26e130ce21fa4d958be07291420dd9e3656ff39041f5b32656695af083a9400ce244c3581a13e34485f3ca9f542e03349bdb9eb87908ec2e0837e98565f7b8ad5d191249032fd37a8cb0f96f6a4e314c4779389e635e372144f153bf211f878e605f4f591a8fede0e9e755c9a8a6d4508354bf9a957a5de85616f0b134d6a1407ff7094d0b69f674aec68ab86c79b4cd2ce2d3b7e9a09080d34dd3da0db023182e6c8ac9055c9250c19bc8925a253f9ebb2a758dbf332e249e48a99b0cc72be4d59bd31d07dd054c59e538ba583e08e9c706624df4eb71b58b117222c3e9fe9989eab1890d6fa932128942557374f84207668cf8bf0da47ef59ef004d91d0501ac4d1d4733a948170556d9f6d04b01181b2c1c5474d1fd98a946597c71bc58ea7a484e481c016e759bee15c6b1ab172a1e872977ab45e7fbc16116b1bc764ee32de7191e2c0c198dfeef001c890f3b36cf445420e1062c7bf5f0b087330babcbc6a00e6f3b2a134aa8b96d3ba4eb3a270340372d5e02d9b55ac3573cecf2e13433eb80ac134eabd1e0baaf3c658584fa6efbdf0d0235e8d40b00a7bb6809c4f5deb64a9524cc7e10baaa9c6fa8e1cac401adfa45dab26a8c0c93d24b9073f2e07c1df12109a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22309a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a223305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe2622cbee39cde689d2d8a050b771f7a2c3b1ba52e62b09b30c8e93c520f6ada1196338b4638e14cfd60159eba3a4b37353ad4a5d4d9e176d1f2d58b8452241f00440361a1ec224d7d8d5ea28a83a7d57f8b8b730acf476f957ec35112a3fa61608e7ffa7a6007171ca846ab5c221a555d35b9aacf9f95610076d0f3575dc681c197c72c4ccb103b028475e963f041edf0457e1b288d586454f04237818425ece26bbfed82d1828baee8720e0a208b1b44b74061ef724dd8e083522442f783e5d022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c12334659429b892780000594c3d097f40db55bed1a591791fa10890d107b17803b6eeac5e4cb11c87a80550d4b74dfa3eb8d23386b65868e6be730962988072429830108cb5a02fb92b96cc16107c2713d5b965caf18aaee85332c9caa0d94d41d6a5055453de0b1f5ee004b172161a4672b9d1ed3c3d60b5965531316d1491424c267bffeb4a92a1f9ff71e8aab92bd8fcca320299f15f903a95dc267de98681b3d9840014b56d5e06008e175546d429279f5dbdfade3229583d32a9821679a1d04c802c73bb5682da8ae046269d75e6d067a1ee1225b7c287c4b176cf2a6de32dc9e0425440fd13b49e72087bbfd0944c40d96f6411202ccae4631e46097ad10107710165bc0e1593682c1358f9dd773b9f523e8d4a9a061632ed053cc2be02a058eedbea0901751c3cb699500e5c6a9232dbca0bbf3319c64a76754fd1b940d4599ce45d427e2d631ad7a1bd61fe7e487b02b5406a1dc6f2d36652d5e606a1fe51a21e994ffe1e00a4dd29d4ffedb384f01abea3acf52bf2ea331a1a8f0dd000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012baadf51c0967e82e22afe99af216599c49553ad3266faf11e98c33dbf9e89da128dfe18ca83ba51b71d807d3f39d29517c08d3d418123651e9b22f3394d426300e14e414857349d4fc03288c2355c778bb6d16474b68187f5b8a64395596e9c36633eb9d8f2850bb7cd39fd0e0b5b2309609cb0375c39f2c3be3973aa99c5c50b679b62d8dd9652581ab85f89ca2af488879b966664a1da62d7f923f398335e0d49b78ad17be3cc78167be936911e28187892bd920715bc9a8c2aa616b7557a20d5c721d5dd51fd1a17dd6e9b34eb86551e0eaf46eefefc255d6140093063cc2781031c6d2f8d3f2e4738867f390aa037f5f6d8f566eca62dc6006f27337c5c0e4b8f78e621c090866c82dcb40a0fbd9935f5d90968e9e6fe1d949ccf2fae732de77298419249ac825157b9714cd5a5719adc16a64ac75d69f8ea6726063f0b247d7fab66df23bb452507802b7a484d0c27e331576117a392e8977a39741d9d0f35170bf7b1bcf30dbb02f2ae357e426937428db2652b1ba5cbb935811ce03c3590d15e659dd2d2ce5079e2847ad2367006a11c7e5c5da5dcf61989554e61e81a19e52e3ba71ceab3a59e5fb5387395b0114477ec4b1288513c8e4452e1057e2a1047c055fb549955e70886683925272d662119c22c1135efff8899b67124e9334803f84404b90ab676dfa456b284ed80587877bf072248690682481ade24b104410a6aa4538987ca1074bb7cd7c8fc4b693aad33f0284765747bca59c57a370e823a99584cfc1d14cd8b09d1e015502fb910fb5e9bd8f0bb04d689f19e97372f712d9402cd551e2139b3bf60d1b084583955d2599440b2edcc989065d09091108ed26bfd32aae1dec64c409f2e4f7bca0d4329afb8b868ab60985c9a2f6f702d35e3e40e02a996a62082bce4187295524ae227a3fe582bd977680afd12d2d212ca1c1bf1fd566959df7d431be78d6acffbb6d4654ea0efbfb5c8e202ed2d2f220d7374460d4ff13ea28db0747a3cea34a29fd21810cd8873cd756ff15e1e171df28c8bb9f2b00ec15d724f8b85c315eda3f929f13c2b93255fbb7d0ea1e1ea2a4341455e428fb6392cc47246633092c29fed2265ba117310a8e955b6d6967115bcbebaa1bd7049c6d33b8db99ccf6d5fa6abd9a392e7a888844797492969902f712d9402cd551e2139b3bf60d1b084583955d2599440b2edcc989065d09091108ed26bfd32aae1dec64c409f2e4f7bca0d4329afb8b868ab60985c9a2f6f702d35e3e40e02a996a62082bce4187295524ae227a3fe582bd977680afd12d2d212ca1c1bf1fd566959df7d431be78d6acffbb6d4654ea0efbfb5c8e202ed2d2f220d7374460d4ff13ea28db0747a3cea34a29fd21810cd8873cd756ff15e1e171df28c8bb9f2b00ec15d724f8b85c315eda3f929f13c2b93255fbb7d0ea1e1ea2a4341455e428fb6392cc47246633092c29fed2265ba117310a8e955b6d6967115bcbebaa1bd7049c6d33b8db99ccf6d5fa6abd9a392e7a888844797492969900c8e75409cfea4dee8d5ef0552162e0956ef2a6901d74c5dc30d8531f7fd750d3d2ad1c5a84311902048eec5362fc54d0d1d9ccb0b08409046fae480f0b3a5db3770ba7500d2a77b885a6e4b3ba0df84e485d504803ed74304deff67013e092d0c0a4154e40c2e2e1c318c762a15901802af7f7c0c739541a6229a3d1de7a7f3056c76fcd7d4129f8a9b55f4dd156d58979175a140dd320ee4503c47ce211f0217b29c747f0d5edefba72ec64e6b377f9a78b5c73523d49800dbcbdc49d9c3dd2086b2eafdf76640fc5f5320e2730039d2f047b90cdd543c39fe58c2e01f06f72b6cafcd3bc4e5b8c69471cd7bca04a4f717a6e20530fc461fa526b0175e2f410cf4744978dfa55935648e4fcab96ebd33e91eef20a37884bc15fd66c82c3f0325d748e65cffce8e1cf09924474a2e4fe7a8905061b1795b5a6792092ffcf4f9286e91a8dd16f2bdc7d4ddde5a8f60f56a1109c0a449f2deec8581e4eed1b9d5313585fe94eba91719e1ac1b6b3ad4462550ff1f579e997a7fff4e750a0377ed3c00d04a622eb3a58ecfa2af7248f2720918328a9083ce966a6ddd4106c481c936caece573b0c041c38584c49fbaaa9b34c015b0fb1e1c65453ce31bf164b23516298764052ee51771df098b2afec422216fa23a2ed2553b10064b37d6c78cd029d6789bfad11ae88e20f674d5013bde00d6f6c1da7aa3e08926e5b52938733205c3ce00d97d1a64123fd5eab543eb726b16e34b10698a1142f28e38a05158063d1b533c071eff0e8560d09d97642290eb1f8fd80ddd6558bb85ac014d91d9b317990e3dbc0fc78209ca77e1163d4065477d71da19857da3953a8a5ead4d215b0bd1f93494209e2a97df9131bff86d0a9b403201f239c54d46ecf9f76761980e282fcc7090cb02c07e296905f1ce2033d981c6d9a5e03a630399e961e8034b961bab26913029cfa7e78f010ae8eea050067c35e61d7c2143f17f33319a4cbcbc0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000113f533382d76fe9b3561f550a2820d6b50b60112090a31b0c4c7edfd15b8cb8d1d35f25f681f99ed0de035703de30c4b3ec6ae01f963c9c10e79f7a494d50e2b27e9acd1b3ae6588fd64e4ce72182924f8b63457fed52132cc16482f4213441f0f01dc2f9bb6f9ff8bbf55a810e7e5819b48c9ab99b3350ced5343f46d8181e624f635a2ec36c51c5bd5e3227573210372cf12944ef65d0f1b83fc1b47ef6c03070a1da9181a8d43285cbbcf5a4f888f7af3280516e4a545171525ce2b733ceb28c1cf5079357d38b2c2c991a86ee2896b36754191b6371ca1d311c7c896a73f27a925a709c59403639980a9cca6ba1954bcc46d2380c2826a10b28446e98e860440e53adaefc23bf9dd9a02f9f90af9ab819a3ed2f69ae474a776fbd5942e6f254433e80a43b166c8a89190472037a0a51072426fe640a60fae7227b77cb33237339596e9a797af1a450559f61bdee1d36ed025e3e97e92bc3b236cfbf92e8e106b056b430ba665128aaf667fc5d1065ed16c79accbd5c5a03895496371f8e83db20668f952e9e38d8285012b019dff8fddbc6eaa5fb91f04f9e823ed8bc98a11f8b023a7f205d9f47393410eb1a7cc903a2925c047b70f2938bfa9baa39ddc005bab2d1781503d88aadfa3a51b3f656415aea6882a45317d349c4fa0872d1619fd4f554b51528c8cd385ba2527f90bc5b523faae5e9ec3c3b940b850348f7b0b92bfe621bc63e6289d47309bead6ba6f769f505f92323052b325b60128edc4045302f6c0089d4b109d325db5898772d2ceb92694f56cacfadfb32e3d540bd525f3aeef0d6c759a265348b68fe00ca73c238dcc57c917f2bb931c54fb666f361a0c5110f2938a65d9acb749701ff358e6230b2fb183e128dd9a1498049990cb3dc26aab431e4c02bfa06b90cf603f43e8249305a453858677852bcee9002c0c023d9554bce1b3fd405f946f309fc0bc3a2205f664f9739521a8051e16ffd3f534cc15584f977c0dbe2219d40ce13c52ff9c7b2c106db731f0e517568d00dc380b33eaa7b06883f241dde62bf31ec3ad22aa1dcff8df41e9a848199672ff23c907fc6ab98df56c44b6aa812440662d9e74f403ec2cf0af8b4fc4b0fcc1044d1438039546720a93bb49557edbbf99d261ad52950fdc5c499049687ff03efbb2ed25f3aeef0d6c759a265348b68fe00ca73c238dcc57c917f2bb931c54fb666f361a0c5110f2938a65d9acb749701ff358e6230b2fb183e128dd9a1498049990cb3dc26aab431e4c02bfa06b90cf603f43e8249305a453858677852bcee9002c0c023d9554bce1b3fd405f946f309fc0bc3a2205f664f9739521a8051e16ffd3f534cc15584f977c0dbe2219d40ce13c52ff9c7b2c106db731f0e517568d00dc380b33eaa7b06883f241dde62bf31ec3ad22aa1dcff8df41e9a848199672ff23c907fc6ab98df56c44b6aa812440662d9e74f403ec2cf0af8b4fc4b0fcc1044d1438039546720a93bb49557edbbf99d261ad52950fdc5c499049687ff03efbb2ed1f58081e26b71aa87374afb67ad656bae9ece3c89aa1828ad674a7ce51fc08032bf93842bf2d60223b1a98080fb866156c1f2eaba5c51d58b80b9996a54f20522c797c664f8e13589e5ead5f295b5206dee5742872158b36e1ef11847e977ecb092d97c34e376b63e44ee2fdb8edc57dd52d967f44e9ff11340a69a0945aacef03f684053292e56a23cc9aa6cf6b481f2ec93b24a323cd8de4386d69771a4f5c1fc6a3ef7a30a81709d7aa355992354fd93d1e3d53a2b055a2af3bfc2322aee71498bf37af7cfc63f445cf665c6222ca0d8e409dd2ef75ba85c41d973a7f3e993b6083e83a3101c8fe49cbe38339cea235a1335c2cfe1fdcbe3c2fb529bb46c707b0d5bcc9ec3b3519e1c387b96fd2b5b394f2a19894a21b9af910b00e9f70833756d5b8b269cb43b4e1645cd9b858f5a91fbb368bec1f0b8c14c58ce7233b7227469200a42a10d013c8970bb8dc072a21c18c0acb8810d68f2b9ba0038cab1f06cf81ca6ad3fdf4972e1d738dd85ec054785bab7d8bdbe07aefc38d83be276c342e7b7b89bad1feee2ca2ea5bce573e7bbada0705e2e47579f6a8872f6c79350ad92ff9f29b3479e09684fa3759d46ce0f9d3d11e9ddcb1ad172db5c65632c13cd7a5c2d75106bb394b3e8d8215fe48f4e1b7cc8343be85870f13e748493dc403285a3d28aef944c6b4c1727dea01b72d64e12f86093a96121e1d05b7b6c23e3c42b40afeb3ef1b6347c6729acd4a3cd495aaff1fab8fd9ef72aaabb4fef4bc38d0214fdeb7cb0264a1beaac45742ace43942bb44745fb43c2ed9544e57758501310d9836b76a993fd88bb47941a22b1b9788c69bd173b54793c3a69a3a98b728eb136d1ac9064386623e9ce16452889f356655e997236ab1145594127f140a0b54ede1bc427e685f2cab8ac8d6cabe185d621cbc4fec47b7a6fbaf8c228ac30b1dd1a0925bd1563a2880d1888b871bf6e755059c93d08c19a9f9bfbc5d21d700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001096e09d6a35890b3be549b8ce5c2fe75a88b801a1ef4328942fcdde04b95780d3fd5e81e3807316035da31b00e88c11550b10eecb8fb677531ad57ec13b80e003e8f7ad7e2bac994e673c431708d80841ac5deecb220b96ed495bd0a8163431708670622ea16e0e5b1245b0bbe73f41e3eaac492406213f648049ea1407707f935c4769c45aca470c8f1d1f9fcae5e8966f8a397c105fe249e53df09bde9b2e906780ce9b0372c2843eed12a9aba6b586266029926bf5aa3f5bd29df99743f451994556b339db76bba262455fee1b2a24444ae6f7fcc097294c55ebb1f5fd1ed087d99eb58bde72d5ac2888b922619cb67ea394925a286b4654811f6f8be02a033395ccb3a13bae335c166703be7f8be64c029dc600bef01cae91934310c1aea3e5f6f62a7333fb00d57dcba20f3f891f3bf8d8eb80957b223aa6cbc3d1df6272f440677be34675ea8ae9755e2cb79944e66a44d817c4d319db0451cc298be480b8febc38644711da3adffd6dd9f295df025b28080691fb30682cff5efbddf8d0650dbe34f5a079da6bf4da5a381dc75c230c7fb63271417142515f5ea4cdc850959daa951eae81fdb36ca9c963169563ba0849cfe3362fb80e060eabde28ae03c9f0aeaacb37e7bfe048965dad816a4edced2beee44dba57fb5cba79356552d00cdf09d509f7fad7ef2a1725382ff2d40b35b95c7e1418e7e7a6a81a1cfdf39261c01e7a93e52ce908173b508d24a43d9fd56af759facb8cfba9f19cccfbdb0027c14ed7faf62ec306439d8b0844c1e455e7b88931edfa6930eb9288e6e39c5166befb5171f47394b6710b5cbf1e0a257d568300d169b1ede64dfad66ceb1702994104ae8e0b8c6b498ef4a340e1f5dca7130cbfc365dfcbac8513f99314e91301bae89739c641e7903538cfbb9632b94e46ff438240e7ebecb2d760209772f0fe451768c639be186fcac7304469cd48d622907d128ea9cda620376fdf688d2308a68af420df4985d10a1c0ea9eefd981a264d0fccd5d26ee7050870a2f53e80f759750bdf20b67a2ef5e3f15611026a0a4342b0c7f9bf4aabce065f5d0ac1932b40b6c4a45c6f9d15328c4951aaf3f21582d20d41be66fdca9ffdc32eca3850d4bf493b5ba39062eacd73b6ae550c100ee6bdb353112abbc833110cd135c7c166befb5171f47394b6710b5cbf1e0a257d568300d169b1ede64dfad66ceb1702994104ae8e0b8c6b498ef4a340e1f5dca7130cbfc365dfcbac8513f99314e91301bae89739c641e7903538cfbb9632b94e46ff438240e7ebecb2d760209772f0fe451768c639be186fcac7304469cd48d622907d128ea9cda620376fdf688d2308a68af420df4985d10a1c0ea9eefd981a264d0fccd5d26ee7050870a2f53e80f759750bdf20b67a2ef5e3f15611026a0a4342b0c7f9bf4aabce065f5d0ac1932b40b6c4a45c6f9d15328c4951aaf3f21582d20d41be66fdca9ffdc32eca3850d4bf493b5ba39062eacd73b6ae550c100ee6bdb353112abbc833110cd135c7c1663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac53a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f216232e0e89af62d4b5e0a44b1fdae3b06376c9123be386de90ef339f6846a620c8509ae342a78dbce2f652ce83bc8df13cae92ffd4acd96c384d84b5b62829aa4c6374baf5ec512737c4b30713f1f990aee557a2b2289954c4678ebb40fec4e4b6d03c88a181de5af86bd618c7ca6d2d1c6c23247c7fb1d7c35badde3a77e53e275325f6801ed604899667b4ebb69d9690e57da2a8bdf801b1adb26780d848343d034dc26445dfc3d86f0c6ad853b8e90dc59275b991680e24ef59731a1d97c84bd0ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b22e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d57145a40e4099c34ab09aab12529be4211daaf783bee3df5d9e430c580d2149a242a2adbcd6a52d4ca8f75b25d259380a1098272a199bd1f2a1d40b13cab90e27536bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b93c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db13d9536a1756b57977f4cfff193accd1791336c49366844ba2d645ce68c53b622c26ac95e8a94a86880b3000e6c5332ea933623775e674cff656eb1e973ac4a0397f861bf30d14bc54bd10d550d6206d46fe59f94c85e2fdf4358f440c824b1a3964dcfc56c5aa7cffcebb8cd19e578dadf06b424364b3d74f499983307f128c35bd596c9b2ae909556bf04b32a63034bc8cd39fea8c460bed7ccef9520576250bb136dc421e7dc750855cf951fde0c09436e335d09bda551392f0d290e5af2930a19cdda9ef82a7008969622aa4f09a04654cafaafafa1fa28d11065ed6d1132cf159565af759e9b439f0b428958e5879faccecb3d8b95c4d92fab4a1cd9cf5000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011432ca149237c258feaac194541ef39aa19ca3e5e875017a66b834c6c5caedb91e0743e56e71a36aff9f28654eeb8030d520a300414a7b5fa227d474e0035dab0dfd5efdc3f8e4c1c7f4a7cd2fdbfd0fb899e6527da664b7da4f11868ff913c33f78b0e02d9ec870de11a5217b4ff7b6b751b0d18c1504dbc32aa5eef465d1e5007f809e0872f824323290eddbf2e69e0444b475945f12f11ae1864235c0eac21b76b645d8f3b10946854658f785b108867d3b2533f44a20070cd5a8280e6c8c0e391ff2a1c7d23bfb397ea6f844315d46daefc4f03cd0c7d62fb2af7a60e0b52893620c5cd5e7adb3a0a12063bee363d7a3228a40a231612d684442d50b68ef3098508783009f3ad14f288d95a6e2d5112cfc26044296f9587ba6ce5b328ff009ee9ba9ef19816a6cb05f56974a6b200627c767b118f8764281d9427ce0cafb1904997016071d3ef5667a80c85cc7cc7fcadb4f3dc500dc9a2b16a8954ad3c8284485e6f59286f30371e61fc3fe34f835fd3bcd65af2e168acdfd48472cf4d534c68c8b10c49778bd73a31430c0de90d98892d6b78005ed8da54872e2837f661ae42a0190805844c482752e08f2673b468f52bdb3276a40a08d5f5ac5abe80039f8a32ea04060f7a60d7a5141140d7e384032298f71b53946365b6d1e7c384c1fdc5a1406be3b0a54a901eec489d4689df1ecabc7c114505106741f070a71651e55758d9bf57e390210647f4d206b1cade564ab62c3dba85fbd5b5eb82aa8782be1d91cc2806821444c578a9e45c73eaef4afeef24cd672b1466f7e98de85b50145de7c766ce3ef7a2a3f7f83c0179f1eab4bef2ab0e586d85964caf6d59fcd3eba218389931c1085d5c0807c3fe861039b4d0cde9c1394c0d3cc22092a6034065d586e502073ad62d33d7d92c0761b99587babd5747ba239bef7f6d22c1f0139a2a791afdf8c529d2cc2826d3f89e488ee1d5033d87d795f6e38f62dd3e1001fd2ba2790a24262ee203373ddc24e89feba6a5b2b466a2b20bad7d21adc9b05202d45d86f5dbd9d11dfcc8c223db176238c2ea0de068ef07872591ae52364fc1f1da2c5d32b4beea6a1014354cb88b1b516e1cfc5c620a0714bd540864f071720e25d3a2cd4b411595efebcab34774e6d2fb72c4386d87b27e15bac79b0f8ea0145de7c766ce3ef7a2a3f7f83c0179f1eab4bef2ab0e586d85964caf6d59fcd3eba218389931c1085d5c0807c3fe861039b4d0cde9c1394c0d3cc22092a6034065d586e502073ad62d33d7d92c0761b99587babd5747ba239bef7f6d22c1f0139a2a791afdf8c529d2cc2826d3f89e488ee1d5033d87d795f6e38f62dd3e1001fd2ba2790a24262ee203373ddc24e89feba6a5b2b466a2b20bad7d21adc9b05202d45d86f5dbd9d11dfcc8c223db176238c2ea0de068ef07872591ae52364fc1f1da2c5d32b4beea6a1014354cb88b1b516e1cfc5c620a0714bd540864f071720e25d3a2cd4b411595efebcab34774e6d2fb72c4386d87b27e15bac79b0f8ea31870947f95bdea9c3c192cb3bbf7effe29d0fb7bf7284c1d7e0d66acf118ab01040c9277dc8c6351fd039b70656118046072e337c872d37814fdf794ba768ca23395a400a684d94c6d78fbb9be15c3f755ec66343bd022f90dd2d33a0d5bb6d0acb6a404135136d1257fddd30a618cd231dcdf8bb21b7ee6788bc2a9fab0c8a20aff83835a5b4ccf729e3b4b253bd1f7d7324fa0ce86a7dfa7275830f1bf16423a3be95ea9f18d2ba1bdc9e20d742dd3d63c827f198de024754695b2fac8ef30f2d75830767eebf3d2ec7ab5e591790e76cd7fa3992cd0c5af72eed276f9b0d3aea6a4f9e6c98e1713851647dc952661f58279d7f9aa9ecb65c91af23d535b8328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff41daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f0e9b28b272c02d11c9386c8f3a096b2194e24ee296dde17998ff0afab4195ecc07b3c99b61e73f8c0eddc62acc9a1fce8d7809e368c4ace8b061ea854a2e59952b3f9c77fc3bd3c17566dd79285f24c0ec915bdd0f6a6b45c99c5e3b9018b9e624f3cc984102265dcdd7c86bc903d5b2b9219ccfd1a413f5b054954914ad8aae0d9535253cea21b1c3288e55a6ff883ef8e2c72bf8af28661332775036c2b547326acadac315de4e3cd771aa590077c12963d1d0109dd0b585fab99cc93d4abb2005f4f59c3c928ec3767307fe1673ed725e13a3f64d55664f83472ae6a2b5ae1a09575dfd31302f217a0aefe63ac1162caabdb0fca6292ec2bb36193d0fbdf53a117c06a995f4c30f7e58ac44e9bfa87a75d8350549f5048bcefd2e3904b99b158bc49e459984cd6f93b80394eed78f7e41df8d9670222d974ee5282991e1c0063cc7959032a8cf40b3e9d66afd820dfc06cd07462e7b298d0d20b5d59a95d43f24f74750d0897d09fcb8274e5dc71d0f1b936ad253290524ca09cf6495536c000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013cae966af414e5331e7a6afbfa56f6b27efa5df2817773abda389025fa7c1a54171265f133abe509df8b4fd9ef75f5bcb580cc5ea675ab30b5874443f92c268501e58b56bfe4b07572ef008901538385ca314b57132a46121a16f9a20e3638f939f2c8bc0861192a274e64cb37fb116afd9d07ff2326a1c9a6dbb939976f11a73f2a53a1b478af01987c8f5ffd40a21ea1002247644ec903fcbe62b2903c365d040fb2dbbc62fdcac560c2f48607557952fc0de71863393ed1d6f094c1ae4f542882d96a870870d2020cd7e46c6eb71f48da99c1234bfcfe06a29cb917b66a5d26375ab7577515c6cfc8cfe88c5e068509f744352e2da3c4d7cea192a4ec44ef3c668ab7fd5a3223d9ac025aad7aeb59466e383ba603e9b9828149ba55e9c9880bab4cefead8e3a6546d7e464987b7bf4b2d0cd13e40f8a47f041ecbdef9b6ab1602976ab66fed4103f081d0af2f2a5ae7d52ccd62affe6f82fe4272b232c6113ffa60694f62a30f0525e7e590aab06ee9d4b20b10470e01e5489873e7e913892fdb96c62d0e3bdb6edb6dd7e50d145c78bb99626bf9d840470cec4ad111e3951fcf1fc67436b3e2131aaa6a54a6316fa75c4c31fead97ede725bb82d71d83d12cfefca78c25e514ee8e8d5724d3d8dbae7d272ac7bd9adbab233cbd6e80514e1b4b6c77e416f53afc5ad5d412e3eb86769b1f450fee43cbe72c6e30ca9a167328a3cc98b18385adca63ed83e0a8986ee326fe2109e0de8d0b2ebae40a1ef4103679a97f40636cf5742883dd43ae9a37da822b1773cc23ef8acbdef6100a67333aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a061301911905583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee82546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d5791ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a883a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a623ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c31c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e3aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a061301911905583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee82546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d5791ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a883a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a623ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c31c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f10022299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c2c762708227d8d9d5db25342038160352c32ee7a89896b63b01e4d1acff3949914accce313f5db11d06b277e45099796f2a6b9e284bbd31bd5b1ef642a2dc7641319406bfd32611570a209b85b38e49dd7727b21099400a3c3bf232a29135eb21ffaa18c3bc1139049500403dfb0a68045256159afd6c550275472c9aa6b8c620168feb3ec5487731f5a78c05dbf2354012ffa5efe36b383af6c5d5787f595aa2368a8d9f0df500d29c787f59bee3d31a7284c876cd8b378363c8b9485c4beaf3feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d0b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c082559f2d36f6e8b95cede951b4246eff9bad95367b060e060c585f8f4936c1929cb941a2f109d6af605b466d71c4c622649f3c64cc21faf9dab0468e4ca230009a39f8854fb6f435560a9d83f0a321687ecf5e3a45fa3de41751ac1b91b6b4701bdab451ade8278151aa000b6fbc7d54b1e479e66bad359e401066eba7086723e2d0dd94fea04434aae0d7c82fb70584a262f2c6419964783e8f30d08fd100c01d2f226b015fbbcb551f2837d048fa7d82069cfa53362d415443ddff702eff63c7b0f2af395ef9c3e7c5b2d86c2e0446c353379649fcb3de211a6d48dff70920dba471319cd6c8df99741293f7f59cdcc086e13965a56ac88e9c7b6f617e0513823171b6cceea4c6b397fbd2fac3cb257a690c13a3179c5ea8e50d996db174f3d4c3743bd7fef78b8474d1f56403d39ef10f74a953d58889dd7ba652d9aa226398409e28ccdc2d7e9ada0a51a4e665440c1e30a0ac2d7803f1d083d08d92521138cfe690622fccbf1a5144046b8057ef6343f2e51fb274c481c8a4ebd5f00a200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001344b9a77d753303645bb081baa70f16dcfb273f4e18f6826746332914c66b56d121925e11377999ac089e5509b9fae1e0da5d9cbf3582eefdd0f4eb3d8f67a162248dea16134e278f39ce391e6c7cbe8f9327735ffc5733abf2a31194b14f2ae2c64e9c35d4e58ca619d3b27ce853328c1e79455296a1edc6a314ee5945b5f1f36056b42c3fb5e90c2c1c280ce9ea7e1d826156cf84d5d15fa9a59e36bd1f8fb18098b58015f2ed09fc40aa58bb341d4ee6ae7923e1a3a38f471433bd98d8b1b194e0f76b211b44676abebb8ff7c34c303ce76dcdaec7712bd4699eef57a59200a0ee8b9d53acd341976d3696fb63cf1a6da2eb7b03338c452d484ca41a4f437010bb189b7abb2c1e08df8e8cf4d9a478a59546d4f4b35416cb6ffdf8af1142f23b5c0efd4ff0bd61a2094db3a90bb538ebe6724ae0144769e02100ed1653c5c0c71b917bc21d56080243e775ad3fabc8e29b9a7f3e6b67478a268e0456c14e32fd85e6375eb3f423bf8eea1b8f93476ee07ef50403135fd216f31beacd45f852ee930f00fae34f3614637d24ccf7ca651d09208d2312adad932d1cafb4b496e20c1859c9196baca20afe06fece3c925ce47538b9876455354ffd602ace41df815340ded9229034636021ff9172b181ba12f7d80e057ed96a05a53c10a90a1613726c4b3a89dc19e07ef9761b96e90ccb7c49c1480c0431cb5e2f5a2206eba831043bfeaf8891514de36def343ae15ac530d00748f805d418a7d8c2e8a9873cd37acf332e665f2900acc5ae66d661e0538aa6807ccf32511dad7585d7828fefd09423384f0d74a20ce8bb048dcd97d6222ae78c1c3540d2ab8e53c646732492636bdcc7b0f28b5df31744fb72326829dff98203a45f8ebf0e047f48898cdb6db2e4b0198b43472a408ba716c503f72eaad685bc8d0a441d59c7a2df603fb6dbe11b4fe674bcb8d5bf7458e93afc08d1574de3d3338a8b745fcb302f6fc049243277707fb85063d342ba4371d913d3e94fc35fff7f74e5dd942db530713e924b31888f8047af9c2cbd45bc8e26ec2c16b2610990411fe9b425651dde5ec16db4e055327e9991f3204da351393d63238e8863a34e3b8a0e9eb82c10c5c638db77c3aacd81666e0cdfb25caec6c29cdc7179c0c641850ac0f30166c24909c72488509423384f0d74a20ce8bb048dcd97d6222ae78c1c3540d2ab8e53c646732492636bdcc7b0f28b5df31744fb72326829dff98203a45f8ebf0e047f48898cdb6db2e4b0198b43472a408ba716c503f72eaad685bc8d0a441d59c7a2df603fb6dbe11b4fe674bcb8d5bf7458e93afc08d1574de3d3338a8b745fcb302f6fc049243277707fb85063d342ba4371d913d3e94fc35fff7f74e5dd942db530713e924b31888f8047af9c2cbd45bc8e26ec2c16b2610990411fe9b425651dde5ec16db4e055327e9991f3204da351393d63238e8863a34e3b8a0e9eb82c10c5c638db77c3aacd81666e0cdfb25caec6c29cdc7179c0c641850ac0f30166c24909c7248850000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000daf6eaf5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c832f25e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab3c7b171c9fdff60000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000001a2fa8a6252351a23c57839ced0c21237b8e32aa9312b18475b8748a1f1197f7257c914c8a32180f5abc6614acca277b409a268fb564571b618d8f21b70e0f843808080e525765ce76aa1d5b1a8780f35491d4403fb233c128e7d60c6caf7821115d30c7848f774ea165704dabf30e7779d7c549ec9cd580b1013a0a6ec9262422d722fad327c81f46409c8d58f31c1347beafeec1d9118c80ef4f47502050130a4c69165e99d98d2b7b13f23b4cf429d32b8b40ff3bc1cf8655a0d1924242d31d8fe342f713e880545448e3221f7c573c44046a194ff41d1e93c8f7e9212f6b06863210e8c92a4fe7013817682622a919dc5cf89f8ac34229f20c94e170c82a1765bbe1b9f3dc08c1021f06af4091b5a895828ac48c9a1605c72f913bd6a2f93bfd2f99cfb2bb01a8818c740aa5e04afa4a1a5bbf766e9cc1fd61f28e44c93f14057060f3deea36eae1e208e3e0b1f9658d93c174925bb17ba283ccdfd3b5ff27796db55b4c49c1793b7bf7fa6436670a29fe0096d39ea0302ae9189f341ade283148d745f8a5fc08ba9c4a3f4f0f6515ede793d3d3d18dfe07beb508fb4c880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000001a677e3364ef4e0c9908bb612bb8583a9294989fb02864d43959efd6baeed170000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae0591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f62000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae0591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f6236bc066bad4f192cbdf19e4a06169f22f64d1f342a06c9e1b7b20cb69f53d57911d68caa2862c78883eaee78094d9fb69b4c1aed67ae908a1a76c75ec489012509bbdf8fe995ac146b6973388bc2ed59adf49fb0089ffd8ad272064a6e75e15712aac1a59c78a2b8a13ff2c356ff5ddb259d2538cc45ce530648a90a8728eaaf0905d69e666e3b2a0d6d173f142cef7678532cc741da81bb8790348d2c293b4d08283f8b0e460d52c58913fad78e1fc4cce8aa7552f29062c225dd92e0b0220d2539ce1ab71bf03b306a3c65323082b11c9d2833d618dd553afeba6647d312751c0c545aa2bdb7106c3d18e0e089a52c307d2b53c1fd744562f39fadedfb16f52dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd60818bd7372880ed9f4866288b3a4faf8aa3496432b0a99467ec41ef0a0cce8472caeb7807c1dead5d1c662b55553c90de9bc150c9e29a6158b6474c7766da90f3f881a04691b3abed6a4ee7d6e267383a04b7313dff32acaa8364ed8f23649331b7eb1b03b2495bedad51ec49fb3026e615d58d5d5589a3e786dc083b44e142e124bbfd985642e97737691abd7fc07b7e76f8b895524aaae324bfae7421b9d5d2db440267a9bd1688c896e542803f8483ad70d72b4284e6d66e13605bde462a53c8943c0a39158f51e40680a874299163668bbd926f545d823fec0430e33f3fa1ecdca360517b11deb43d1b505cb984c70874c0706c8dc87f32ebe838006452a072eb60535474aa2f2f13e18ecf985b3f33229a46462339af7b2cbcae7898d992c2b8b5b8fe96d1aac380ba1f2cb0f5bf1410e49dc5a16bf18fbcf26d6d039a13b7c55d0dcdc793010395c95d0383e62f330a66e10312e1eb3ea52b6a85e438b0f74b0e5df43d8781959bec0dea5d93324a8746805e56f0326503eb5df812511000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011873dee48cfd8b70817d00adffbdc1b4b8827295e52c3577a70caf0d4600731e38ad415ec9c18fe54e4e4168eb6ea05cf06ad84343dfeafd40250d8f04e8157633638286688e8bf987736c296aaa897fbf3ebce653eb3fea9249e53aaa954269204f2fe0bc18ff967acfb7c5dfa16db67669c0984474bf263b6cf15cd9b4503f1f11d7466863e359b28f06abfebabe4252920c8b41028da3cd0d206f002c9ddb35d49b37add4b6b989754f74646a4985f2a2eaa7a4e69404892f7d71411252640980e634299d6811d0b8d8ec82813f4f77dafe5739bbbdfabcff1fd76cddb7a9331624ca7773667c52ab8f37f209572238e5ab1956e01da8d75d61cbb1432b332178f2aeb9bbe3a50389c048a7ed740d43c0d467b3489555a0ceb2e35c9a78f434fbbfe1fa7f08d0130e267b191065a0d3d43b57fe1add6b4293b5ced99d01c513af320705bebd6d354b9340bf9411e15c8d2578d5045720f2dd181aec53258634fdc36476b89cfc19544e611924662e5999319d28979b158296c95fba8a201e047caa7ebc1a2aefa605e46a57207cc16af48487b14a546fc4eb5ddba8fd35390b2e0c0de52ac4cddbf033d7e292c90a92dcc810b01022a2d01a1904ff32322c193409c8de3ac84a395423df4ecd699de9f0cacbc8c3f116e63d7406f22a320f281d11304e8f73d908f9afe360b96000ad83eaee1ee0e8401dfacb13c510d8f110149ce710066a3b27e340ae613a1641c740e23880a2bf029e25e97567b33a423f9ac29e6ed7b983a51a753fc3319d27dab8f1c6701dba542171124f06374de009423384f0d74a20ce8bb048dcd97d6222ae78c1c3540d2ab8e53c646732492636bdcc7b0f28b5df31744fb72326829dff98203a45f8ebf0e047f48898cdb6db2e4b0198b43472a408ba716c503f72eaad685bc8d0a441d59c7a2df603fb6dbe11b4fe674bcb8d5bf7458e93afc08d1574de3d3338a8b745fcb302f6fc049243277707fb85063d342ba4371d913d3e94fc35fff7f74e5dd942db530713e924b31888f8047af9c2cbd45bc8e26ec2c16b2610990411fe9b425651dde5ec16db4e055327e9991f3204da351393d63238e8863a34e3b8a0e9eb82c10c5c638db77c3aacd81666e0cdfb25caec6c29cdc7179c0c641850ac0f30166c24909c72488509423384f0d74a20ce8bb048dcd97d6222ae78c1c3540d2ab8e53c646732492636bdcc7b0f28b5df31744fb72326829dff98203a45f8ebf0e047f48898cdb6db2e4b0198b43472a408ba716c503f72eaad685bc8d0a441d59c7a2df603fb6dbe11b4fe674bcb8d5bf7458e93afc08d1574de3d3338a8b745fcb302f6fc049243277707fb85063d342ba4371d913d3e94fc35fff7f74e5dd942db530713e924b31888f8047af9c2cbd45bc8e26ec2c16b2610990411fe9b425651dde5ec16db4e055327e9991f3204da351393d63238e8863a34e3b8a0e9eb82c10c5c638db77c3aacd81666e0cdfb25caec6c29cdc7179c0c641850ac0f30166c24909c7248850000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000daf6eaf5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c832f25e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab3c7b171c9fdff60000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000001a2fa8a6252351a23c57839ced0c21237b8e32aa9312b18475b8748a1f1197f7257c914c8a32180f5abc6614acca277b409a268fb564571b618d8f21b70e0f843808080e525765ce76aa1d5b1a8780f35491d4403fb233c128e7d60c6caf7821115d30c7848f774ea165704dabf30e7779d7c549ec9cd580b1013a0a6ec9262422d722fad327c81f46409c8d58f31c1347beafeec1d9118c80ef4f47502050130a4c69165e99d98d2b7b13f23b4cf429d32b8b40ff3bc1cf8655a0d1924242d31d8fe342f713e880545448e3221f7c573c44046a194ff41d1e93c8f7e9212f6b06863210e8c92a4fe7013817682622a919dc5cf89f8ac34229f20c94e170c82a1765bbe1b9f3dc08c1021f06af4091b5a895828ac48c9a1605c72f913bd6a2f93bfd2f99cfb2bb01a8818c740aa5e04afa4a1a5bbf766e9cc1fd61f28e44c93f14057060f3deea36eae1e208e3e0b1f9658d93c174925bb17ba283ccdfd3b5ff27796db55b4c49c1793b7bf7fa6436670a29fe0096d39ea0302ae9189f341ade283148d745f8a5fc08ba9c4a3f4f0f6515ede793d3d3d18dfe07beb508fb4c880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000001a677e3364ef4e0c9908bb612bb8583a9294989fb02864d43959efd6baeed17005583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee83aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a06130191191ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a882546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d579059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a63a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b1c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e23ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c305583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee83aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a06130191191ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a882546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d579059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a63a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b1c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e23ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c3299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f1002214accce313f5db11d06b277e45099796f2a6b9e284bbd31bd5b1ef642a2dc7642c762708227d8d9d5db25342038160352c32ee7a89896b63b01e4d1acff394991ffaa18c3bc1139049500403dfb0a68045256159afd6c550275472c9aa6b8c621319406bfd32611570a209b85b38e49dd7727b21099400a3c3bf232a29135eb22368a8d9f0df500d29c787f59bee3d31a7284c876cd8b378363c8b9485c4beaf0168feb3ec5487731f5a78c05dbf2354012ffa5efe36b383af6c5d5787f595aa0b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c3feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d29cb941a2f109d6af605b466d71c4c622649f3c64cc21faf9dab0468e4ca2300082559f2d36f6e8b95cede951b4246eff9bad95367b060e060c585f8f4936c1901bdab451ade8278151aa000b6fbc7d54b1e479e66bad359e401066eba70867209a39f8854fb6f435560a9d83f0a321687ecf5e3a45fa3de41751ac1b91b6b4701d2f226b015fbbcb551f2837d048fa7d82069cfa53362d415443ddff702eff63e2d0dd94fea04434aae0d7c82fb70584a262f2c6419964783e8f30d08fd100c0dba471319cd6c8df99741293f7f59cdcc086e13965a56ac88e9c7b6f617e0513c7b0f2af395ef9c3e7c5b2d86c2e0446c353379649fcb3de211a6d48dff70923d4c3743bd7fef78b8474d1f56403d39ef10f74a953d58889dd7ba652d9aa2263823171b6cceea4c6b397fbd2fac3cb257a690c13a3179c5ea8e50d996db174f138cfe690622fccbf1a5144046b8057ef6343f2e51fb274c481c8a4ebd5f00a2398409e28ccdc2d7e9ada0a51a4e665440c1e30a0ac2d7803f1d083d08d9252100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001121925e11377999ac089e5509b9fae1e0da5d9cbf3582eefdd0f4eb3d8f67a16344b9a77d753303645bb081baa70f16dcfb273f4e18f6826746332914c66b56d2c64e9c35d4e58ca619d3b27ce853328c1e79455296a1edc6a314ee5945b5f1f2248dea16134e278f39ce391e6c7cbe8f9327735ffc5733abf2a31194b14f2ae18098b58015f2ed09fc40aa58bb341d4ee6ae7923e1a3a38f471433bd98d8b1b36056b42c3fb5e90c2c1c280ce9ea7e1d826156cf84d5d15fa9a59e36bd1f8fb0a0ee8b9d53acd341976d3696fb63cf1a6da2eb7b03338c452d484ca41a4f437194e0f76b211b44676abebb8ff7c34c303ce76dcdaec7712bd4699eef57a592023b5c0efd4ff0bd61a2094db3a90bb538ebe6724ae0144769e02100ed1653c5c010bb189b7abb2c1e08df8e8cf4d9a478a59546d4f4b35416cb6ffdf8af1142f2fd85e6375eb3f423bf8eea1b8f93476ee07ef50403135fd216f31beacd45f850c71b917bc21d56080243e775ad3fabc8e29b9a7f3e6b67478a268e0456c14e320c1859c9196baca20afe06fece3c925ce47538b9876455354ffd602ace41df82ee930f00fae34f3614637d24ccf7ca651d09208d2312adad932d1cafb4b496e3726c4b3a89dc19e07ef9761b96e90ccb7c49c1480c0431cb5e2f5a2206eba8315340ded9229034636021ff9172b181ba12f7d80e057ed96a05a53c10a90a16137acf332e665f2900acc5ae66d661e0538aa6807ccf32511dad7585d7828fefd1043bfeaf8891514de36def343ae15ac530d00748f805d418a7d8c2e8a9873cd00a31cd9ef8679794deeb656fd6b01c97550149e556476b314244fb708d44fc33f5ce32610798686b21149a90294fe36acf6845db3e882688508e135f72bb03e032f9041ada05f5e85a98fb2f31708ef4a906717aaf6517f64b58e932c258ecf3cd06fbe525fa0a17a56704d0ce8f710d7b631e45e56a79c3477a259d3da71320fedd1486421dcd89c4fce7ebf732cac74d2037656cf977cf78bc8dfdcbbca0b30122eb79bde232763b03181408cd353ad749585b27d619ea1a1680d234435f60fa51669f4a9503b0d8f0879bd3fdf5e25d37853a8c0fc553c8dbb724faaf236305ae9960b56afc4f270f78642c020a1fc7320a8608bfcc65c9f757ab0550dcb00a31cd9ef8679794deeb656fd6b01c97550149e556476b314244fb708d44fc33f5ce32610798686b21149a90294fe36acf6845db3e882688508e135f72bb03e032f9041ada05f5e85a98fb2f31708ef4a906717aaf6517f64b58e932c258ecf3cd06fbe525fa0a17a56704d0ce8f710d7b631e45e56a79c3477a259d3da71320fedd1486421dcd89c4fce7ebf732cac74d2037656cf977cf78bc8dfdcbbca0b30122eb79bde232763b03181408cd353ad749585b27d619ea1a1680d234435f60fa51669f4a9503b0d8f0879bd3fdf5e25d37853a8c0fc553c8dbb724faaf236305ae9960b56afc4f270f78642c020a1fc7320a8608bfcc65c9f757ab0550dcb00d80c97a5ca3f42024809990a5e4078724776135e9285751f43bb068f1f5ed12ffd27410ccdcfe329ef02841829f506167fb6b8093ab9645e6cf50c6372453916333d62a0235abdc8aff9d607499a1e81a3e021fbd93c3fb572b8bbc389927d0b6a22da128b55bb8dfa6731f74ce472dd044fad974689e3e68088fc4ae05e101cc94009fbcf270de723f746d07e2efeda68937cf1a113d256df65a62e859a50398d5c01094690bd7c4a420e40d6cd7c8f80a8f22ccab459621871fe149f70ae2c90606dff9c6e5d2ff22a933995a954c97da98b194a326c1a8f273a5008353339d13b98e36f0b13bd8722d5716e70a207c38d8b94109f1b930653e4794587353ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba2e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b33b5c1466aee6177ac9a3af51be25f604d971dc66d40fdfb5bbf53058f725923b395d2767a380efd7432028fb549887e55415c934c0891b6dfa3c96803d95883828f4b605ba1266003507fc90ee5825692e5b42c6aee13766c476bd2aad570eb40498b5e4e0a6da6148169649f08926872ec2929668cbb5d3543fb2e451ad5cb93a5f08ea13c945767c77470a18da536945d1b094d5ad24e7bdcde78448295c0205a0f715ec36ba898388b8f5e725ac96dc74e867339fd433db5f4968b7d6a40003b95939f5eca67061dc7426f0275fd0df0b349ae7491187b1824f9546ffcc150278af4fb0c09b9bc0eb1e009df4b459e060e0ee115ec2b73c5a990dee811871089ba4369b421a55ddc7ba1ae7085af661e27efe87c2fb52f5030aeb227c090919a45305944254278b46eccd473ad4f6cb49d4e19b1b8dcd4e0286ff65033c350d291d9de58546a4373abb740353db34837ec7a9cf68b610bf6122dff562e1073f6d58f62d0ac08fe9eb8ca3270d63a720d67e2507c4792e77866f651bd02b6700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001163731e263a0614cf8cfba6ebf4cb68c64959f82332e161afd09621fc03b065101d98ff1b5e9780e66f8bb654b4deb10857085b94d89f5ed846818b5b2cb27a330aad9d10376bc950c9a125de6de46970723c27faca31a6c2fce020754186b7519277ca14ee34b9a95bb7f5a1da03dc3ffcf70602e49bb653e7446d5fb0abdb72ef7a6f4641b11ca35043d8e0aa778cecd69ea967a4b06448ccdb527809043a7005243cb90cc0cc23f3e4d57d072495000c8b611a29fd5d4e5fd62169d298feb32226a142640a9723129047bddb687e384494addd49d3dfd58817639fa6836f12f80e997f09ce4e7937c2ffc588b5fac719094e6a5bcd91e82f40f55eae7f2e104a54a178b98a004ce9836d66d0c63308c347a8ffc263c257cc45c4010271e98226ae18951659cafa4eba6b43db1b3aa25240bdb90638305303390bff74ea8060382b5fe6e2e045b8072331825dcff057341c5cde7a331a93bb876739e12d0d613c77f40cc24cad69cc4ae27129e5feb36a299598f80b5b307ee6c930e5e396622c3d25fec67dbad50866b37f6ba278d4902b439afd970f737c98b033c6067ca2ce6e42cb4dd1410316fad0a42f91e3ed715315abacdff36f6691cca6bceff9c3dc61ba6a2de53c1ceaebe655ff1ba32ea0a30bc9248d3667b998ca1cb50928d2d8c88754d425e5893ad51d3abe8aa458e40383519584884131a1de7167366d73cc717cc7e0ca228affd114792d31c92261671b05171c1266282414fdf31d2ff0b781d1a8c66588f4423f220ca612aef1797a8e8accadee15f5958bc4e5ffac63fb14129968f3e95de69c3dee18686c8bd29d8e55de8afaebb1c8c41fe110be9004ebed66970c16a21963c211e797937651cc016ab64496cde10a4ab01eef4183e7645cff0cc38ed5810d35a67a0a1eb28b6d88ab05789fb42d9f995f6553b890189ba300f33c712a7ef2ca5985f5e14f98fc07158f56f205653375709aac478384f5d0fb3fd1ca2b85420c4062329974277d6c54c81cd79e98d1c39cfaa29a907b0a2f04c02e35d47abdf3bf9dcd668dfcec236bccb2ba1afa014b33055d658198cd14e83f18f2d99a4a3d41eafcff3c33ccdea59551ef32b0cc96d0e52d04926732eb17c0e70d2665b5c2be150300c5f09cb11aff7da286e20677ff1ad2fb83fb14129968f3e95de69c3dee18686c8bd29d8e55de8afaebb1c8c41fe110be9004ebed66970c16a21963c211e797937651cc016ab64496cde10a4ab01eef4183e7645cff0cc38ed5810d35a67a0a1eb28b6d88ab05789fb42d9f995f6553b890189ba300f33c712a7ef2ca5985f5e14f98fc07158f56f205653375709aac478384f5d0fb3fd1ca2b85420c4062329974277d6c54c81cd79e98d1c39cfaa29a907b0a2f04c02e35d47abdf3bf9dcd668dfcec236bccb2ba1afa014b33055d658198cd14e83f18f2d99a4a3d41eafcff3c33ccdea59551ef32b0cc96d0e52d04926732eb17c0e70d2665b5c2be150300c5f09cb11aff7da286e20677ff1ad2fb80b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c3feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d2b13cd6d52b7a32dda0c03c427c28bba72b3b40b5a8595a3c029cfe2dfe9b15a21d8509a7454e82c6c01ee7f9d53e927b541a171fea9969f871cfc034c9763952c762708227d8d9d5db25342038160352c32ee7a89896b63b01e4d1acff3949914accce313f5db11d06b277e45099796f2a6b9e284bbd31bd5b1ef642a2dc7641e6a494cbf36abaf8b8a6a8de1165276533eb64441a7a8777834e338713e31483cc40f2563957cd02b5394bc253c4d0448f634cd65e2e2c3d47c95b581077a6214840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d3126132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c8363f8f67741fafeeb2ce545cfa5eba44d303a5699b931d6c0773dd7044f906f34b34a76e6f4fb6eea219bb2b8224ba3e1737cc1b3c3492986bfd06622dd49953c60975a0e3a836f1d21b415fe01c2eb2874f85853d65345cc5824a08686ff7f36c1e3cf64720e291183435640328b4deaafa0719bb491bf1f643536c5aeffb05f13647199615cd17780a6803a4faed06170d5780e72674c5c32674deba0a522b3709b8e669ea32e887f597fc5b0512f9e914ef1814e2d8335872b85232f5add4cb285e555ab6d8ba93203502102492bd86d49972fc501592cb843a378f3aa52e542bc3108ffd0d085b814b44b3f0faf2047e4804348f99908d3cd663004bc9825b1f3163f13d85737fb86ee16339926dd220b1bd2cdd108e5400ea0618b9b872220e59681b126b5f69214be5e4f3ded147e020a5ac1cd868938d2e1cbdc2eefc9534bc4cad822d4f93dcf65f1272607b7fc1e2598364447fe8bc3209a1e85a280a35bff9de5fcaa2264c0038dc5840593451ea5f384bf256ea8cbfc33330ea5289000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012c990d111143ec5ae8b2fd5cfe95a081940e16508c8b08a4d563a88c6555cbd22af8a5358325f3aacbedcf1b3d72cd810b38f0b3c4095dba50b5b5c2c73008821d91a69904c876a50ade9cebd9c271934f6aea57cedd8c8466350b723b9f276828cacfcda714b4a19f22d244e50a13869a62ef1b931e14debca3e860da7fb66b233bc045d6e7a928423d94e101cd89c2faf5544a1c736b7643967f2827064bc52df3e2b49727d395209d3437a0aaeeda3cb20eb72a3b5dd5e8112c6f4876e38611fd8b270a22c422ee8a8d683261a29a7e500e234b662775cf3e60a165f5972214e5b4b39072d2559dd4b922f67a7405fb2a448eedee5cd9f05ac3ae8818451f27b3d19b0b60fed53f9e42bce73564005381d319d0b1ccc4e590a4ed5debb3782283975c0a2074975e5debf3eaddd50ff2300b755c1a9cebb9eadef53bf5ae18304004473fc82c196f9eeffd1e12d32f461f5e5ca5a5d7b03fd28dfba4f164103a96b78c9605bc0f9c4ca9045c565a3ce2df7f60913a93bae4cec3c8c7b225800286122f059cb238b2bf5f38ba2a0a318ba7488aefe23358a5f152c6ec78827e0d24a45d9ba83d84cf36b9097f893b9a722a040d717843b9ef142419bbb6e4e72b3d348fc27029a1f88e4122f8e229e7d56620ee4c8317ab25b08ca05680a5552b7b3d7dcf3fc0df36f08d47b2bb3bb8cc58db29f4fc1c9a4a707c1d70fa0eb61336f2f7431eccb58cebb26efbc3726c769202c009ba0d97cbaf60354b63adb9193e8c99add4c3351515044e2ca243a9c8f4a6f14d18bc47bac7391b641d42033036b4f581afee8fdf581f5a12018200388315cef6b547c023c21149500f418d0fc94b0a7e50117020a7e0a5edfe7dffe9c3832d1297b15b756b1fa3aff0be74311188cb886fa8cf5cb89cc25a078a00b3bba216b5a37b6de742c3a7904c47be0eee773477905730a347633da5f875ff6e8af6e553a97dadb1ea6d456fb3b8433557abf9aa2e4c0ccf9b0fcbc225b2031bd65f7d704a7dd2b8c63f7ed17d66b30aa8540655d1b3f33064f0343dda4dfd0670397e99027b48e066f16e2e82994e0ab65be052e77c400e074efacabc7a0f021579830c4090af372a79c61773017b3549a41fad1883bff1f8b105354385f120311f78fd0c686c6202b726e88cfe863036b4f581afee8fdf581f5a12018200388315cef6b547c023c21149500f418d0fc94b0a7e50117020a7e0a5edfe7dffe9c3832d1297b15b756b1fa3aff0be74311188cb886fa8cf5cb89cc25a078a00b3bba216b5a37b6de742c3a7904c47be0eee773477905730a347633da5f875ff6e8af6e553a97dadb1ea6d456fb3b8433557abf9aa2e4c0ccf9b0fcbc225b2031bd65f7d704a7dd2b8c63f7ed17d66b30aa8540655d1b3f33064f0343dda4dfd0670397e99027b48e066f16e2e82994e0ab65be052e77c400e074efacabc7a0f021579830c4090af372a79c61773017b3549a41fad1883bff1f8b105354385f120311f78fd0c686c6202b726e88cfe8614840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d3126132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c836350c1986d63d0d76252cd4dcc0096252448ef72e67695958363393bbcb800d6809d0f28df34f89daacb5b062f76ba5e1e124926c9ceb5a5f7656919f3a5e969e21d8509a7454e82c6c01ee7f9d53e927b541a171fea9969f871cfc034c9763952b13cd6d52b7a32dda0c03c427c28bba72b3b40b5a8595a3c029cfe2dfe9b15a17dcd04956966bc87edd991719d6b3a0ba18caa2e4cd1d4bae3ffb819913f9ef0cf4d744869d6bb7ca44679edfd6ace4ee3f7c43864249b03768ed6a74a65a6a17f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a66373017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e36851d7d884ac33e3c6d15fde25d80bea7e85b54836569bb5cceeb6776c52af91789f475753530cb37be57062b43ebef7ca00989dac207ebd71aec10afdd45f2366fd69bf31349f99c35c37b1c54b8ec1ae6392344ecda412b8bb3f63a32c175230086247a469bcb4270f361e752adaddcad693d24550e9e2dd444b25ffba12e34f1910671874941dca3f837f88ccdc58cb41c93083d97434adc1f2d75aac2470b0e6ef98e78b6be235c07c80773323a95927c69010f61d84e5111bf8a553dbb17af240798a5008543bfe0b9679e54225743718e9bb9930fea943816910cef970e994204c31d5f373bd9181cc0343b4e845c2fd879814d14cadf7f06b8d5a2f319bac5d70ad5f06ea847e72e97e2f7f92decd8ccea10fe0953aacb5a049ed02f0fe999ea78989dbb38d7cb5bb19f2520bcc75b371ca868d817301801e58dc1e03135cb9b5ec77506e1a03afc26ac2031ab00af04290a74ee96b1feaac8230b652fbf036e6b1dc06dcd150c7524c199a86531ae64a74c947e8a2383fba9dd9b8700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001272d21c93420d5f46428b4873508974aa0885880ffc205269e7b45224dc0f6283352e5072b72af703226597d122d7e3ed912fd5c29630e7bebff2540aabfbc7b35dec7ecb47f0dd7db45e5f19949a82a750e49db2741e41f2211301e948baa87063033d8aa11c9dd48e391c216536a01a2305942eb8740f306d4d91a22cc8a6819f1f2a66a406350310babdc82d8b81d622489434df8445b45164e6b375981d505833d6bacadce3db72f55c62f55a0f50c1a9d983797931243b45a7e1e2eac9427058410d289a478ef2b2797136e228d61e14b9715ac60f927a80fa092a18f573920b616e693037d64d5841f1e8bc3b79d66fb4f2682c7a18f08437f9ad06f7a3ec557971b5ebb941ca4de50712c07df3f8cfd70b81c2f38b720cd81f0c7ad5928fc3170dc301f12682efb78b45788db51dff36cf912497b935fdb5555376dd52d4c63a6a89a3d999bd58ecd725a0db24ad6427f472a209c0317a85fdf554dfa2ac4cca44f3ba7a63abdbb3c785332bcfffbcca03ed6f29b1d34bf0e4ef4354f2ea2f3f7c5860af81a6fc5e864f1460fec0156d027c29d096abaa2021d56d32b2107c294dbbee4c567865259d4c1ffbc34168ec442e4d324c37805cb8ad8943b1a88f9b8568304a23418262de497712874cbb06e680171e55faa41d5409c1cd727df4264fee92b01e032e312d1dfc91aa6b438ba51735ca196c074b33b9586203af4271eaf61619994d793c93f7791eabda217ca0a238eedffccfdd9410e6e7004e5af2b8bf3062c5d8a3809a489c7203588a718a1bde21c52f2d13584eee29e3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f620591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f620591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f11d68caa2862c78883eaee78094d9fb69b4c1aed67ae908a1a76c75ec489012536bc066bad4f192cbdf19e4a06169f22f64d1f342a06c9e1b7b20cb69f53d57912aac1a59c78a2b8a13ff2c356ff5ddb259d2538cc45ce530648a90a8728eaaf09bbdf8fe995ac146b6973388bc2ed59adf49fb0089ffd8ad272064a6e75e15708283f8b0e460d52c58913fad78e1fc4cce8aa7552f29062c225dd92e0b0220d0905d69e666e3b2a0d6d173f142cef7678532cc741da81bb8790348d2c293b4d1c0c545aa2bdb7106c3d18e0e089a52c307d2b53c1fd744562f39fadedfb16f52539ce1ab71bf03b306a3c65323082b11c9d2833d618dd553afeba6647d312752d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd62dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a2caeb7807c1dead5d1c662b55553c90de9bc150c9e29a6158b6474c7766da90f0818bd7372880ed9f4866288b3a4faf8aa3496432b0a99467ec41ef0a0cce8471b7eb1b03b2495bedad51ec49fb3026e615d58d5d5589a3e786dc083b44e142e3f881a04691b3abed6a4ee7d6e267383a04b7313dff32acaa8364ed8f23649332db440267a9bd1688c896e542803f8483ad70d72b4284e6d66e13605bde462a5124bbfd985642e97737691abd7fc07b7e76f8b895524aaae324bfae7421b9d5d1ecdca360517b11deb43d1b505cb984c70874c0706c8dc87f32ebe838006452a3c8943c0a39158f51e40680a874299163668bbd926f545d823fec0430e33f3fa2c2b8b5b8fe96d1aac380ba1f2cb0f5bf1410e49dc5a16bf18fbcf26d6d039a1072eb60535474aa2f2f13e18ecf985b3f33229a46462339af7b2cbcae7898d990f74b0e5df43d8781959bec0dea5d93324a8746805e56f0326503eb5df8125113b7c55d0dcdc793010395c95d0383e62f330a66e10312e1eb3ea52b6a85e438b0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000138ad415ec9c18fe54e4e4168eb6ea05cf06ad84343dfeafd40250d8f04e815761873dee48cfd8b70817d00adffbdc1b4b8827295e52c3577a70caf0d4600731e204f2fe0bc18ff967acfb7c5dfa16db67669c0984474bf263b6cf15cd9b4503f33638286688e8bf987736c296aaa897fbf3ebce653eb3fea9249e53aaa95426935d49b37add4b6b989754f74646a4985f2a2eaa7a4e69404892f7d71411252641f11d7466863e359b28f06abfebabe4252920c8b41028da3cd0d206f002c9ddb331624ca7773667c52ab8f37f209572238e5ab1956e01da8d75d61cbb1432b330980e634299d6811d0b8d8ec82813f4f77dafe5739bbbdfabcff1fd76cddb7a934fbbfe1fa7f08d0130e267b191065a0d3d43b57fe1add6b4293b5ced99d01c52178f2aeb9bbe3a50389c048a7ed740d43c0d467b3489555a0ceb2e35c9a78f434fdc36476b89cfc19544e611924662e5999319d28979b158296c95fba8a201e13af320705bebd6d354b9340bf9411e15c8d2578d5045720f2dd181aec5325860b2e0c0de52ac4cddbf033d7e292c90a92dcc810b01022a2d01a1904ff32322c047caa7ebc1a2aefa605e46a57207cc16af48487b14a546fc4eb5ddba8fd3539281d11304e8f73d908f9afe360b96000ad83eaee1ee0e8401dfacb13c510d8f1193409c8de3ac84a395423df4ecd699de9f0cacbc8c3f116e63d7406f22a320f3f9ac29e6ed7b983a51a753fc3319d27dab8f1c6701dba542171124f06374de010149ce710066a3b27e340ae613a1641c740e23880a2bf029e25e97567b33a4224fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a6021551b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a707121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a1ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec20f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f0463930c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c824fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a6021551b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a707121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a1ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec20f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f0463930c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c817f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a66373017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e1ffaa18c3bc1139049500403dfb0a68045256159afd6c550275472c9aa6b8c621319406bfd32611570a209b85b38e49dd7727b21099400a3c3bf232a29135eb209d0f28df34f89daacb5b062f76ba5e1e124926c9ceb5a5f7656919f3a5e969e350c1986d63d0d76252cd4dcc0096252448ef72e67695958363393bbcb800d681d14c0bd1af0dd795dc65f20deb61a24d29b51f0237079f79c9c23abdc96c8583e1997b507db4b065917a029279c8555c9999921841a1143b015554215aee35209e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f10022299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c34e4bffb46072d0886c1b4271f2e319c53d84677f770f003368061821a4847f816e46a214a91f5a2912ec35c5d5d4b79d789ffa45cc5f6dc24235ed2181770fc08134748d8710762979b1062406fde0c96064ace3630870592558b307fee102d2b6879fe81419e32cfcc2b0480ff303bbca2014ac309b579f4be78fa1264a2221e7dbf71074564ec7d20d7e13c753d78d3cb4c4f21a72d7b4c088103648c5e022182408ef8ba9b1382df281ec38ac2874e7b4cace7a5cba04d24afe99b73a20021810827b881382fa38336b463fdbb493f6b7d10e52182be3e8fe3fcced72ae419dfd5a32a7348fb034fed5a985fcba8e2f02cba502e3c4844a51f7fb7b72bfb100493bc57946c399e195bf4e34d92349c5cda8dadf5c3a3fa910f29dd35e332235cf216aabd58ee838b5d5c1fd297abba7f6a79a72cf0b2e8caa319bfb354f6170b6807f02ae0e609779920124e5fad52aad2512ae5a87b0955b401a7855b3f10727a16d10738474389d29a769ca5f1fdc0f23e264f5602aec7d9af239d3d7b000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010a8c5e16f11be1aaf0bb54894087215a2886947714fb26bcdfb258eba14163e10fabbf07ce7538aca453c17e5199822c7c7bc1381aacd0136ec558b3baf763551b655d8f6263ec503517f9dccfed5f6cbbb27cc985da1af4616b83d1b9f0f3f02b52cc2c5dbd90ae8f8ed5a52c8e1793c920a5083e23bb6f07c81d9dcd5ce87a227f9cb0b2b7d2032e9f6197bf196c8bfb24ec7b599a8d3c8aa14a0f2026b07829c84dfec82c16b10ad951f0132ea26e5e8ef0dc0feac9d246a95b5eee3bc0ab1fb314d47f28efd85c6c0db0eb44678fb7b1fb36a5249ac2b98cda615f899ae23a34494f9ce152d5a7de06f6dad7f3ef6786fd04cba702b6ad4699f05f8aad5722ca6115f5f49c3634e239b687a38ee7dd2869053f8d8ca70cae4ce2450505f60502a4bd769f005711d7e3cb0923b3df654a749be153dc25788ef1a91315d8e80f937caf006f229348a407e881138d19c3b8d964472b2c81b82dcdd35aa525c3204abc35e0316397e362f41dfe745f70bca599c8da042e545bde1bbf931109731c0317b4efe7daa63b91770089aebd1e3561b73106c001f3d71632a36346473f33a79ed7b15d15174664a141b00488adeab62e6363e76e3a571c752a44e920271a3083818a528ec374d9f8811f1b7f1333d0d539b149a085cdb13f51dd90237135382b8920f95f55e0915979cd896ed934bce489fbc10b29e0b84a7ab89c6a0d0f2b7d2a92cc0d796a948feacf6a18945d52ed0ee834882c2985b71e7c0ba6440c298cac9683d206cecfbf049d45be11bfc1f7a2c000a8366eeb323e9d322dd73f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc6202347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de60b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b08e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a873f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc6202347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de60b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b08e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a870000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000127b506f940454ee116cd3e673a6fbd5e9b594e942d0b9e3d34ba603a4ea7272f1950ed6469e3d0559a6d82bcbac5c65cb3c5d645cfe9368bb2cdffe0cb74de5a37f75c16263a61e91d42ea8571474d853ff66720e6755b85f4502d35e3c7ecb12607cfd5cbe0b5989f87e48dd4e786a84fc879167792598b09c19ca0292ee2b40b3618d4492e0cc466bef6d5fa197b6b7e927087007cbe57864a0c7c2e4209313954d86d20e575f6774640b9234960999b488e0f56a151ee2412f73556d26af22c798b91a8fba19c4c33fe0122817c88430c766587e3bfef9bd4188adac71d4c2c4f3844c63f2befb1874043e24560fed279166505a0eb482d279ab5e7c4b55d3c7415c5a40827ce02ebc98c1693c910f2e02d2ff24ca032d8a8f1f37f574af510af8a9dc687a1f46442416e13853bb47a4a088adc0a2cd4c5ce224844ca31f50e080b5e097551ff105fc1efd56ffb220778fd76aa6e1b0e6e639227c3a848b801a2ab2e97cf9dbe7196565264434aa9f6584f21b6ec5c0426a1e4b8e4871ead2d630b34b554215e425c4a4b695d3481ca06f5c34edf956de58d92d70dcff267000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000002d630b34b554215e425c4a4b695d3481ca06f5c34edf956de58d92d70dcff2670a3c6892c6708b8cc90155c7c0c8ec5cc902a5371b9647667e34fc70bac3ed0c35c3976d398f747336feaa383f3713a35943f3c4edb6b1b51af8347c453c12f5332e0adde032b9bfed06ace6c3ec9dcfed0d3a1389ef65007708ee33a5d3a13c0cd1f5221fcd464012f953193c13623035395ee87f5d941b222442b95a2c5ec53fe6365560fda0bfa1216081d39f150f3a6e576d95c60daf87a5143b3d2226290019c9aa9f025f405ede9f7e2c60eaf0e7d8418e7386eb6c11881cb1c2ddd9d83f7f0faae4f423be25a6e289221b694b9b0d5133c7aa5fff4184a17431aabec90080f0551b0bdc41da591d76dde496b4873947c841a2991c57a88f78ce5541380a3c6892c6708b8cc90155c7c0c8ec5cc902a5371b9647667e34fc70bac3ed0c35c3976d398f747336feaa383f3713a35943f3c4edb6b1b51af8347c453c12f5332e0adde032b9bfed06ace6c3ec9dcfed0d3a1389ef65007708ee33a5d3a13c0cd1f5221fcd464012f953193c13623035395ee87f5d941b222442b95a2c5ec53fe6365560fda0bfa1216081d39f150f3a6e576d95c60daf87a5143b3d2226290019c9aa9f025f405ede9f7e2c60eaf0e7d8418e7386eb6c11881cb1c2ddd9d83f7f0faae4f423be25a6e289221b694b9b0d5133c7aa5fff4184a17431aabec90080f0551b0bdc41da591d76dde496b4873947c841a2991c57a88f78ce5541381de7898ca0b76c5ccf8ea31d9866d81454a22428dfdbb89c3b361d9f92cb085725edd8763b0e9f24ec8bee196162f82280e8709816f727bdb7fdac9abcdb63e030be7cf60e14728754091d3ce47d168eba3688ee70a16bc363f93b55af74c3ab09ba3ec16ce4e3b577c673d5f779617b91117c21acc708f2cb129044f137bc672a7c19e1842800e85905f612572842c62a7869d09b2a8f491c6a78a63a3db0cf35c4f222383df8ba75e56080ea6c3bbe92a6a3621535d756546676d5e78b52b717fc8f74b8d0ce7f16db6861c1b227711d06bf7f513dc311e352313df4a2358b059ee4ca5843ca9dd6348d8a2d2f4192dade01a821d47e6e944b73d7a99b6e763c5f354a6809f5d8fc0d754f10b0845dec5a231524772141e6eba5461ed414fa0552acfb4136a8687c086867198f336159a70e0de3347500c25c57abf0d8fec115bc9f53006d4875c19a4c92d21a6e49e2c14f7a8c0932ebfd974bffe7f2136f100bb0f940ff5af0418178ed938398308f15b8a806eebefd442dd7e1992a70063159f97d5134211bdc683fa5831c115d35b484e0c21ccdd7932b08e4bdc034011057e8c8580c7d259bad9e10a723a662104cac42458ec86b161cf40d51ecdfbb2c074c820ffd78b3605fd73e698cddfbdc0d76d2dee858d6d0ceb138cce7354013f8b37df002874c9fa028c196732204463922292a64a044c85e7fb43318cac21ab571582f0b95eace8e89a07d2164578639d9fa3e39169cf92cc3c0f7907d0708dcc8da67a621bd0038dad289b63e37aa61f3416453030716aa83a1b6b8b36134501473f241539987e2b402d32886733acf22c3296486a9fac834a42f77a836371a8eabdebe84d44f0e4ee58d15197b86a5507756816003446216fd7034bbba2896641f9bdd12a5e0b4478950d44af83006eda7970aee892c8483c9f84d4b712541a4ccbf464e3be0445246b929717f1f725b686fc986091bad3d6e6fd732050000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000116c4fe50f946b01fd1f8568483274b911647681bba178f4fb8b640ec9974af7d00b43d62dddb164c97c0559162982883324caede7042366b632e56afad4d31c80cbad5f23a5c4bfeb9c0594d8637322ee7c758009cd1fa6a486dc46de3eb47cd0a91b0fca2dc813793df839b6645d2e6c6e1acdc7448b2d28addd490e78f3b3527a554463e7929aa715138f165b41de22e53201577014226e628c2d874837f213655a2e65e398ef86cc4342406c4b10c247beb09f94c5426bd4b0d315a22122c1e1e8d8aa9b2d530e0264dd7116965c3c0b86402c6d99e98d60e6a2c2fc4d23011f7ed28b9c83e37687475500a9e3d7985242ce72c5dcb2c703bc16a282cfad135d876a8aa90a889fd622872cb605c8d7500b4ed254003aaae4d9d6f56d6f8513a3b8de7926a10f17eeb252b5a01195f931fb44773c4c3c6f3f91f8f9dfe2eac3850b91bc2fbebcd3ab8d5bbbddc148fff6bacd8fd935fba0ef0bd83a54ac8c20d317c76e842e929ef03492c955c19f49aec07474c79d0acd47e93fdf80547c307a2a85c2c37ee0309e65302fe5a0245ce2246d3f4ae4208904e20a7dd2fd90308080e30750d01ba780fc53f3b5943862faf05c46cac350a04b75638caff8e6206257433b31858032e253dbb077d0048cf48eea725fa4e14458c72dfac69a4b4301347759a05701c7372efb9e6d90ad33178ec56ccb4a3950c83cef1c279c849047cc7133c7169c2f452e23bb107a3f1cd35e4fdc94eb168ef3d61a01065c4f7189e8a055e1ac7bdbf13a629a9bd94d0e763aa4c831e3e5c4ade129bd94e4d54142fbfa54ba90f415cce321fb844d3edc8fccd375fc0fbbaf04d1f5e9689a1872bd0405ab456f0bea331cde047bb2c125949cbc4a98bfd60a8e0118e69765e7a24eebe3a7a4d4c46d006fa9e995823a4caa96918d577f18b18546bebf0b027a21b1141c585b2b3b92ff9056166a7dc5b579d2fe333d5079080d8c5010f4fd85f38a9b72463827d621022e518feb8b237b0c1db8418bdc580474bb9c1b370c628075648db9c7d829defdd1ae701474dc87184bd77f08f339b51e1772b4c8f39d91b5093b5f18c72ea50ae797cf99b7b15eaaee5a45680f712ffc5dd148133dec424af6c4a0e738d15af518683066484ea3797b357b2cc0208996753d87ecc213d142fbfa54ba90f415cce321fb844d3edc8fccd375fc0fbbaf04d1f5e9689a1872bd0405ab456f0bea331cde047bb2c125949cbc4a98bfd60a8e0118e69765e7a24eebe3a7a4d4c46d006fa9e995823a4caa96918d577f18b18546bebf0b027a21b1141c585b2b3b92ff9056166a7dc5b579d2fe333d5079080d8c5010f4fd85f38a9b72463827d621022e518feb8b237b0c1db8418bdc580474bb9c1b370c628075648db9c7d829defdd1ae701474dc87184bd77f08f339b51e1772b4c8f39d91b5093b5f18c72ea50ae797cf99b7b15eaaee5a45680f712ffc5dd148133dec424af6c4a0e738d15af518683066484ea3797b357b2cc0208996753d87ecc213d2ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec08283f8b0e460d52c58913fad78e1fc4cce8aa7552f29062c225dd92e0b0220d0905d69e666e3b2a0d6d173f142cef7678532cc741da81bb8790348d2c293b4d248677f56dd7dd830c3d4eba7dc5a9491cd36a974b3715b2c93e973495bd87023f12e6d50c19d3afe7194b499f780b8254280277f27d10a690611b5074a3acfb11f76b80533490007d130518a294847325d3679c416406b0948885d8d5135f3c2cc2720a52f1c8b3e645a5a14ab153afd19f76d4391f99ebffdf81ecf51e775d36bc066bad4f192cbdf19e4a06169f22f64d1f342a06c9e1b7b20cb69f53d57911d68caa2862c78883eaee78094d9fb69b4c1aed67ae908a1a76c75ec48901252dcc61308ccdd0f07246c9274194c18a8befc9595e813ea573fa5d8eabafe912249ee770786f97c5ae19a5a2efede4059fcfcc794a65d5959bef42d651d7ed920907c64532b347c431682ff5de12a6dabb7611c175de7b7450d0d6b0e16f72d53f8accd0a2fe98f110745ccc315197fed62328601bd6def78157fd64826d63ca3731399b0a50803bad7d417dd4c5072442708fd0177ce405cf87403f1ce671b108cec664f5af7fc45282be822b3af8dbdfd6092bf1d01515c9a5f0ade3198e511a9f5752226a546c94c74f74504497574c58734b471215c882ca0664875b0210179f18f4efb54da6f69117ab24cb085fe3e17331c405e0e6366678c7e80231513c6faa9f6dd6652a222e877eb1b1dde117cb58f0ae22b84f44b0b00ed111f57c3e4b2492adf430a0e8a7a7195af426787038a07bb7fcfcc341310f29e13c28a51b8922ca8d5b7349006921bd3fa0c8999805bbbb209eaf81c6394ccfe6ced9520ef5d56097aacb5c3b09a0db63ef313f4a044b16b67dec81e6c650a89abf1ac70000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000113bd2d46074d2c4ef0b7388c8e89bd3b1513427629edcea4f56ef30c2b01067d3d95323c72ba34a7f1516223cf2cbf9109f1d9882d13d1c8d182552b65cdd177345ca7c49ac97f393e1c356c2be180db02941a2377d948bb499e87c79d2fc16820756fca380009aa9c71630f3a9cd58b2d1b7636f8f629f01b22474dcd8d2296213a7f63819d0dc4af4a49c9b742416605e86549c3c182a847e0fa2f3a48483c0486fce4d180aa85666e1106bddc4a8dc6bec2bb764a211d25438c9ba9186a6d0271ac5c3ae8f6a2c6a0a836257501a6305aca175e28b9d54bec63effaad7c4c03167d790bcf08a9e1f4fd88a83dabb3ffcd47287ae2d9e85c9793843933a7c8352d51f9d8788577206b2db2467dda613679306b3a6b4889d1c6591f170d488414b4cc37ebd8f1e886f6b6ca23d96bc348707f917fe703606fba0b6341aeec97336c222f33bd6b9f84a2035f192a293dd63b30bd584482b65aee8b69d373d4e6001c45ea3de1326c146f30ccd93c6e707908733e8170d5279b03ee768a2214d513444133402089027bec05e81b98217b123b9dda83bdb591598cc3a75daefd7e3c667559612466bb060a125a1e1b24510ddc47b9e6e9ba9cd4a5e4264a8069e8394c36e878ceb56350cf5363179a4214ddef89720697b57ac1d87ad06fb278e617664c998bd5235fe71ebfb64def298a47abfcfbe4a54edd55ce62bf4d86d2181d7a349cc00528ceed5cbcd0d70d8d7ae1f809d31fcd4f3ebb1f5caf8e2aa6110f6112a588513e482de5872e938c5f3cd186d3d747baa9d8edd41910ee5d99b4004ebed66970c16a21963c211e797937651cc016ab64496cde10a4ab01eef4183fb14129968f3e95de69c3dee18686c8bd29d8e55de8afaebb1c8c41fe110be90189ba300f33c712a7ef2ca5985f5e14f98fc07158f56f205653375709aac4783e7645cff0cc38ed5810d35a67a0a1eb28b6d88ab05789fb42d9f995f6553b8907b0a2f04c02e35d47abdf3bf9dcd668dfcec236bccb2ba1afa014b33055d658384f5d0fb3fd1ca2b85420c4062329974277d6c54c81cd79e98d1c39cfaa29a926732eb17c0e70d2665b5c2be150300c5f09cb11aff7da286e20677ff1ad2fb8198cd14e83f18f2d99a4a3d41eafcff3c33ccdea59551ef32b0cc96d0e52d049004ebed66970c16a21963c211e797937651cc016ab64496cde10a4ab01eef4183fb14129968f3e95de69c3dee18686c8bd29d8e55de8afaebb1c8c41fe110be90189ba300f33c712a7ef2ca5985f5e14f98fc07158f56f205653375709aac4783e7645cff0cc38ed5810d35a67a0a1eb28b6d88ab05789fb42d9f995f6553b8907b0a2f04c02e35d47abdf3bf9dcd668dfcec236bccb2ba1afa014b33055d658384f5d0fb3fd1ca2b85420c4062329974277d6c54c81cd79e98d1c39cfaa29a926732eb17c0e70d2665b5c2be150300c5f09cb11aff7da286e20677ff1ad2fb8198cd14e83f18f2d99a4a3d41eafcff3c33ccdea59551ef32b0cc96d0e52d0493feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d0b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c21d8509a7454e82c6c01ee7f9d53e927b541a171fea9969f871cfc034c9763952b13cd6d52b7a32dda0c03c427c28bba72b3b40b5a8595a3c029cfe2dfe9b15a14accce313f5db11d06b277e45099796f2a6b9e284bbd31bd5b1ef642a2dc7642c762708227d8d9d5db25342038160352c32ee7a89896b63b01e4d1acff394993cc40f2563957cd02b5394bc253c4d0448f634cd65e2e2c3d47c95b581077a621e6a494cbf36abaf8b8a6a8de1165276533eb64441a7a8777834e338713e3148132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c83614840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d312634a76e6f4fb6eea219bb2b8224ba3e1737cc1b3c3492986bfd06622dd49953c63f8f67741fafeeb2ce545cfa5eba44d303a5699b931d6c0773dd7044f906f34b1e3cf64720e291183435640328b4deaafa0719bb491bf1f643536c5aeffb05f10975a0e3a836f1d21b415fe01c2eb2874f85853d65345cc5824a08686ff7f36c09b8e669ea32e887f597fc5b0512f9e914ef1814e2d8335872b85232f5add4cb3647199615cd17780a6803a4faed06170d5780e72674c5c32674deba0a522b372bc3108ffd0d085b814b44b3f0faf2047e4804348f99908d3cd663004bc9825b285e555ab6d8ba93203502102492bd86d49972fc501592cb843a378f3aa52e540e59681b126b5f69214be5e4f3ded147e020a5ac1cd868938d2e1cbdc2eefc951f3163f13d85737fb86ee16339926dd220b1bd2cdd108e5400ea0618b9b8722235bff9de5fcaa2264c0038dc5840593451ea5f384bf256ea8cbfc33330ea528934bc4cad822d4f93dcf65f1272607b7fc1e2598364447fe8bc3209a1e85a280a000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012af8a5358325f3aacbedcf1b3d72cd810b38f0b3c4095dba50b5b5c2c73008822c990d111143ec5ae8b2fd5cfe95a081940e16508c8b08a4d563a88c6555cbd228cacfcda714b4a19f22d244e50a13869a62ef1b931e14debca3e860da7fb66b1d91a69904c876a50ade9cebd9c271934f6aea57cedd8c8466350b723b9f27682df3e2b49727d395209d3437a0aaeeda3cb20eb72a3b5dd5e8112c6f4876e386233bc045d6e7a928423d94e101cd89c2faf5544a1c736b7643967f2827064bc514e5b4b39072d2559dd4b922f67a7405fb2a448eedee5cd9f05ac3ae8818451f11fd8b270a22c422ee8a8d683261a29a7e500e234b662775cf3e60a165f597222283975c0a2074975e5debf3eaddd50ff2300b755c1a9cebb9eadef53bf5ae1827b3d19b0b60fed53f9e42bce73564005381d319d0b1ccc4e590a4ed5debb3783a96b78c9605bc0f9c4ca9045c565a3ce2df7f60913a93bae4cec3c8c7b22580304004473fc82c196f9eeffd1e12d32f461f5e5ca5a5d7b03fd28dfba4f164100d24a45d9ba83d84cf36b9097f893b9a722a040d717843b9ef142419bbb6e4e70286122f059cb238b2bf5f38ba2a0a318ba7488aefe23358a5f152c6ec78827e2b7b3d7dcf3fc0df36f08d47b2bb3bb8cc58db29f4fc1c9a4a707c1d70fa0eb62b3d348fc27029a1f88e4122f8e229e7d56620ee4c8317ab25b08ca05680a555193e8c99add4c3351515044e2ca243a9c8f4a6f14d18bc47bac7391b641d42031336f2f7431eccb58cebb26efbc3726c769202c009ba0d97cbaf60354b63adb909a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22309a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a223305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe2622cbee39cde689d2d8a050b771f7a2c3b1ba52e62b09b30c8e93c520f6ada1196338b4638e14cfd60159eba3a4b37353ad4a5d4d9e176d1f2d58b8452241f00440361a1ec224d7d8d5ea28a83a7d57f8b8b730acf476f957ec35112a3fa61608e7ffa7a6007171ca846ab5c221a555d35b9aacf9f95610076d0f3575dc681c197c72c4ccb103b028475e963f041edf0457e1b288d586454f04237818425ece26bbfed82d1828baee8720e0a208b1b44b74061ef724dd8e083522442f783e5d022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c12334659429b892780000594c3d097f40db55bed1a591791fa10890d107b17803b6eeac5e4cb11c87a80550d4b74dfa3eb8d23386b65868e6be730962988072429830108cb5a02fb92b96cc16107c2713d5b965caf18aaee85332c9caa0d94d41d6a5055453de0b1f5ee004b172161a4672b9d1ed3c3d60b5965531316d1491424c267bffeb4a92a1f9ff71e8aab92bd8fcca320299f15f903a95dc267de98681b3d9840014b56d5e06008e175546d429279f5dbdfade3229583d32a9821679a1d04c802c73bb5682da8ae046269d75e6d067a1ee1225b7c287c4b176cf2a6de32dc9e0425440fd13b49e72087bbfd0944c40d96f6411202ccae4631e46097ad10107710165bc0e1593682c1358f9dd773b9f523e8d4a9a061632ed053cc2be02a058eedbea0901751c3cb699500e5c6a9232dbca0bbf3319c64a76754fd1b940d4599ce45d427e2d631ad7a1bd61fe7e487b02b5406a1dc6f2d36652d5e606a1fe51a21e994ffe1e00a4dd29d4ffedb384f01abea3acf52bf2ea331a1a8f0dd000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012baadf51c0967e82e22afe99af216599c49553ad3266faf11e98c33dbf9e89da128dfe18ca83ba51b71d807d3f39d29517c08d3d418123651e9b22f3394d426300e14e414857349d4fc03288c2355c778bb6d16474b68187f5b8a64395596e9c36633eb9d8f2850bb7cd39fd0e0b5b2309609cb0375c39f2c3be3973aa99c5c50b679b62d8dd9652581ab85f89ca2af488879b966664a1da62d7f923f398335e0d49b78ad17be3cc78167be936911e28187892bd920715bc9a8c2aa616b7557a20d5c721d5dd51fd1a17dd6e9b34eb86551e0eaf46eefefc255d6140093063cc2781031c6d2f8d3f2e4738867f390aa037f5f6d8f566eca62dc6006f27337c5c0e4b8f78e621c090866c82dcb40a0fbd9935f5d90968e9e6fe1d949ccf2fae732de77298419249ac825157b9714cd5a5719adc16a64ac75d69f8ea6726063f0b247d7fab66df23bb452507802b7a484d0c27e331576117a392e8977a39741d9d0f35170bf7b1bcf30dbb02f2ae357e426937428db2652b1ba5cbb935811ce03c3590d15e659dd2d2ce5079e2847ad2367006a11c7e5c5da5dcf61989554e61e81a19e52e3ba71ceab3a59e5fb5387395b0114477ec4b1288513c8e4452e1057e2a1047c055fb549955e70886683925272d662119c22c1135efff8899b67124e9334803f84404b90ab676dfa456b284ed80587877bf072248690682481ade24b104410a6aa4538987ca1074bb7cd7c8fc4b693aad33f0284765747bca59c57a370e823a99584cfc1d14cd8b09d1e015502fb910fb5e9bd8f0bb04d689f19e973703ef5f8f7ebe290e27042e3444a34da933f7ab21213fb3c9a65b93152f15687d3c10a0708141d6f1d8fbd1cbbb5cb256ee4eeddae80d4551f2d19dd7d0ea978413acddcd79b6cd46c314e7055730844e03d657a5a63e82f03fc9df69eb6b0a712c532232864932b93ceb18faa8cf7bb21e704156630e762b596351831494f5902260550360920261cf68831ab3f29585f0e91d4035eb9595a5c42c24991734341d9faafc9f6dfd9e30977ce54c0d6a7a315d7bbbd3616385f36904c866e8cbcd2be1a910e2da0be90d0a8f8583bceb9d70006048fafff9b50a7a7adcfd740502141e56ef1d25f416f2f5707a7c431462b24638b30e4cff668eb2b610028bfaff03ef5f8f7ebe290e27042e3444a34da933f7ab21213fb3c9a65b93152f15687d3c10a0708141d6f1d8fbd1cbbb5cb256ee4eeddae80d4551f2d19dd7d0ea978413acddcd79b6cd46c314e7055730844e03d657a5a63e82f03fc9df69eb6b0a712c532232864932b93ceb18faa8cf7bb21e704156630e762b596351831494f5902260550360920261cf68831ab3f29585f0e91d4035eb9595a5c42c24991734341d9faafc9f6dfd9e30977ce54c0d6a7a315d7bbbd3616385f36904c866e8cbcd2be1a910e2da0be90d0a8f8583bceb9d70006048fafff9b50a7a7adcfd740502141e56ef1d25f416f2f5707a7c431462b24638b30e4cff668eb2b610028bfaff3fa1f2a2d0b4cce733cb9590433d6813522b16e9db2173a58e4bcaea7364b2a414cda1b9433fb43ff84e3aab6e2756c437f9c72677fb7a3897b566ae006fdb5500def3c798623305e3bde40c330bc212eb2a37209efcc5dd23bc28e0fddc535c10ba3b497946b8354436b36b51cf41e4ead546ea6e0434895375ccb17bec7e61112ff4370160fa8ee47f429587d17f09bf124d723699f4d1743af3e63c540fdd328d97abecc9fba594cc5b6a957df4c8ffa3554a419a966a7d7522a71d2380cc0964ba54afaca6f3ebf02d833d35bc5e45aa020758b4baa3d6e8a96aa514596a386561ff2896754e1a9bfc8dbdd64e28bcb81dfcaa5cc1877214dbe5a002284504ed39a11be374a6c61c5e56b99bfcc18cf3844790a53d75fbd6e84fb2bdf573150a02f1be7f1ef6e5d539f61024406f5775519521d6cc7c9950525f5fa4aada3b0798e2031fcdc5c2a2b737061d163d4e81662dd06c3b86a540acf39c68960c371cc3efd9623d338eb44f519257599dbc7b577fa4144e6a6e6aa4f4434628e23f7f199596e90012e876866389b6d5da0737e3ed987bb8b480526e0e8ebefa031a7822fd4379938ac37b11e940096756ff778aeb234d4a59ae01fd8d83a3a64c2a7516a3d869e11c02a14c6d7992956aafc2925876a4ec37e7021baf2f1a4f29158ae95c27961ee3fd5eb392866d6a95728406a392a80ce3b22b153dd0e5b0d904434dc9619f3394aa0ecd6f8d6e4ebaaced7a336f03cded2128c8f19a33ad71231f3907049791f551a95c9df8fbee2e89a97e9454868a43994240195e19d8b51ee0b1f5d14bf78f536e3324f2c9924f46e6c0d9c967651a28a8ab8916ed0d8f268a7bdcd32887a8fa0d72f3d21ac157c394647eea250c62d3990d621e94379c110a769eac5d72cda6bdb4cd4590283039c5c5d674e57e313e3348bf7b6e23460d7135a36b344163aa853d266c8382e1a58d76c2df9149ca1cd1c23003925edc000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013355bafa976cca4b782e3bae3d9491f279df8ae93f4a2c1b3945a22c7410a8ba133a774a19ab61b8109f64814c51f34780235fc7fd842509d94be8a4d2a68ee81590677d410af07d8896b9c8903d0884ce8ec7ea23f1ebc08dc870acd2c30d223dd1f3e49f7e113609009ddbc3a561d934e75ba083633d6b80f88c884182995115c54222a532bd9b8e79e3bb2788f09f19b4f41f839babf9a34d90507c22d0f3315b49d6ff2526ec4fd9cae7f30cc356436612577e020848692920fd9085260006e7b4b94a9bcfc9be4a742840db35d30c82d686d248548c74ede204dc8150371d1a7a866d049bd0f02a39b96d04d460ea19c69dbdc07833b06900d80da5233d1b9be59407de6536533ff0e414ea4500b9dfe4d4e090b7077d257df5e05b52e122c9045498d573a52b887db4c342e20ef2961a2837bd158ff054c033f73ae6930b36900480c46fe47dbdf8fdddfb85778d0b04ee35554e178ba05057c0742037200eb020a2be2dc001fa7c1bcf8a07b2a950d809e29eee449310ca02bb28c9bf321bd871b27f6e5fd7e378bcafc6f5175c8d04e5e246efb882fdf1abc4cb1b931d8ede1aeec5815daa129f8589ec50b4c38ae0ae88608075ab34b621e3644bd3177e1db765a9cfe132cabee8141f26a9554c8bce64f153286328811a1b97ceb5363735a35595151b34e047f8e4c7673734dad13558ee078841673efe6223ba26138d96a4a8209a27d0dd78d8a9c868e3e765da3629738e76d9ef1f071981bdf122a2b0e7e95ea5247188b6c05063a52007110f5a4485de2a2c613a971c7f418c142fbfa54ba90f415cce321fb844d3edc8fccd375fc0fbbaf04d1f5e9689a1872bd0405ab456f0bea331cde047bb2c125949cbc4a98bfd60a8e0118e69765e7a24eebe3a7a4d4c46d006fa9e995823a4caa96918d577f18b18546bebf0b027a21b1141c585b2b3b92ff9056166a7dc5b579d2fe333d5079080d8c5010f4fd85f38a9b72463827d621022e518feb8b237b0c1db8418bdc580474bb9c1b370c628075648db9c7d829defdd1ae701474dc87184bd77f08f339b51e1772b4c8f39d91b5093b5f18c72ea50ae797cf99b7b15eaaee5a45680f712ffc5dd148133dec424af6c4a0e738d15af518683066484ea3797b357b2cc0208996753d87ecc213d142fbfa54ba90f415cce321fb844d3edc8fccd375fc0fbbaf04d1f5e9689a1872bd0405ab456f0bea331cde047bb2c125949cbc4a98bfd60a8e0118e69765e7a24eebe3a7a4d4c46d006fa9e995823a4caa96918d577f18b18546bebf0b027a21b1141c585b2b3b92ff9056166a7dc5b579d2fe333d5079080d8c5010f4fd85f38a9b72463827d621022e518feb8b237b0c1db8418bdc580474bb9c1b370c628075648db9c7d829defdd1ae701474dc87184bd77f08f339b51e1772b4c8f39d91b5093b5f18c72ea50ae797cf99b7b15eaaee5a45680f712ffc5dd148133dec424af6c4a0e738d15af518683066484ea3797b357b2cc0208996753d87ecc213d2ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec08283f8b0e460d52c58913fad78e1fc4cce8aa7552f29062c225dd92e0b0220d0905d69e666e3b2a0d6d173f142cef7678532cc741da81bb8790348d2c293b4d248677f56dd7dd830c3d4eba7dc5a9491cd36a974b3715b2c93e973495bd87023f12e6d50c19d3afe7194b499f780b8254280277f27d10a690611b5074a3acfb11f76b80533490007d130518a294847325d3679c416406b0948885d8d5135f3c2cc2720a52f1c8b3e645a5a14ab153afd19f76d4391f99ebffdf81ecf51e775d36bc066bad4f192cbdf19e4a06169f22f64d1f342a06c9e1b7b20cb69f53d57911d68caa2862c78883eaee78094d9fb69b4c1aed67ae908a1a76c75ec48901252dcc61308ccdd0f07246c9274194c18a8befc9595e813ea573fa5d8eabafe912249ee770786f97c5ae19a5a2efede4059fcfcc794a65d5959bef42d651d7ed920907c64532b347c431682ff5de12a6dabb7611c175de7b7450d0d6b0e16f72d53f8accd0a2fe98f110745ccc315197fed62328601bd6def78157fd64826d63ca3731399b0a50803bad7d417dd4c5072442708fd0177ce405cf87403f1ce671b108cec664f5af7fc45282be822b3af8dbdfd6092bf1d01515c9a5f0ade3198e511a9f5752226a546c94c74f74504497574c58734b471215c882ca0664875b0210179f18f4efb54da6f69117ab24cb085fe3e17331c405e0e6366678c7e80231513c6faa9f6dd6652a222e877eb1b1dde117cb58f0ae22b84f44b0b00ed111f57c3e4b2492adf430a0e8a7a7195af426787038a07bb7fcfcc341310f29e13c28a51b8922ca8d5b7349006921bd3fa0c8999805bbbb209eaf81c6394ccfe6ced9520ef5d56097aacb5c3b09a0db63ef313f4a044b16b67dec81e6c650a89abf1ac70000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000113bd2d46074d2c4ef0b7388c8e89bd3b1513427629edcea4f56ef30c2b01067d3d95323c72ba34a7f1516223cf2cbf9109f1d9882d13d1c8d182552b65cdd177345ca7c49ac97f393e1c356c2be180db02941a2377d948bb499e87c79d2fc16820756fca380009aa9c71630f3a9cd58b2d1b7636f8f629f01b22474dcd8d2296213a7f63819d0dc4af4a49c9b742416605e86549c3c182a847e0fa2f3a48483c0486fce4d180aa85666e1106bddc4a8dc6bec2bb764a211d25438c9ba9186a6d0271ac5c3ae8f6a2c6a0a836257501a6305aca175e28b9d54bec63effaad7c4c03167d790bcf08a9e1f4fd88a83dabb3ffcd47287ae2d9e85c9793843933a7c8352d51f9d8788577206b2db2467dda613679306b3a6b4889d1c6591f170d488414b4cc37ebd8f1e886f6b6ca23d96bc348707f917fe703606fba0b6341aeec97336c222f33bd6b9f84a2035f192a293dd63b30bd584482b65aee8b69d373d4e6001c45ea3de1326c146f30ccd93c6e707908733e8170d5279b03ee768a2214d513444133402089027bec05e81b98217b123b9dda83bdb591598cc3a75daefd7e3c667559612466bb060a125a1e1b24510ddc47b9e6e9ba9cd4a5e4264a8069e8394c36e878ceb56350cf5363179a4214ddef89720697b57ac1d87ad06fb278e617664c998bd5235fe71ebfb64def298a47abfcfbe4a54edd55ce62bf4d86d2181d7a349cc00528ceed5cbcd0d70d8d7ae1f809d31fcd4f3ebb1f5caf8e2aa6110f6112a588513e482de5872e938c5f3cd186d3d747baa9d8edd41910ee5d99b40145de7c766ce3ef7a2a3f7f83c0179f1eab4bef2ab0e586d85964caf6d59fcd3eba218389931c1085d5c0807c3fe861039b4d0cde9c1394c0d3cc22092a6034065d586e502073ad62d33d7d92c0761b99587babd5747ba239bef7f6d22c1f0139a2a791afdf8c529d2cc2826d3f89e488ee1d5033d87d795f6e38f62dd3e1001fd2ba2790a24262ee203373ddc24e89feba6a5b2b466a2b20bad7d21adc9b05202d45d86f5dbd9d11dfcc8c223db176238c2ea0de068ef07872591ae52364fc1f1da2c5d32b4beea6a1014354cb88b1b516e1cfc5c620a0714bd540864f071720e25d3a2cd4b411595efebcab34774e6d2fb72c4386d87b27e15bac79b0f8ea0145de7c766ce3ef7a2a3f7f83c0179f1eab4bef2ab0e586d85964caf6d59fcd3eba218389931c1085d5c0807c3fe861039b4d0cde9c1394c0d3cc22092a6034065d586e502073ad62d33d7d92c0761b99587babd5747ba239bef7f6d22c1f0139a2a791afdf8c529d2cc2826d3f89e488ee1d5033d87d795f6e38f62dd3e1001fd2ba2790a24262ee203373ddc24e89feba6a5b2b466a2b20bad7d21adc9b05202d45d86f5dbd9d11dfcc8c223db176238c2ea0de068ef07872591ae52364fc1f1da2c5d32b4beea6a1014354cb88b1b516e1cfc5c620a0714bd540864f071720e25d3a2cd4b411595efebcab34774e6d2fb72c4386d87b27e15bac79b0f8ea31870947f95bdea9c3c192cb3bbf7effe29d0fb7bf7284c1d7e0d66acf118ab01040c9277dc8c6351fd039b70656118046072e337c872d37814fdf794ba768ca23395a400a684d94c6d78fbb9be15c3f755ec66343bd022f90dd2d33a0d5bb6d0acb6a404135136d1257fddd30a618cd231dcdf8bb21b7ee6788bc2a9fab0c8a20aff83835a5b4ccf729e3b4b253bd1f7d7324fa0ce86a7dfa7275830f1bf16423a3be95ea9f18d2ba1bdc9e20d742dd3d63c827f198de024754695b2fac8ef30f2d75830767eebf3d2ec7ab5e591790e76cd7fa3992cd0c5af72eed276f9b0d3aea6a4f9e6c98e1713851647dc952661f58279d7f9aa9ecb65c91af23d535b8328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff41daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f0e9b28b272c02d11c9386c8f3a096b2194e24ee296dde17998ff0afab4195ecc07b3c99b61e73f8c0eddc62acc9a1fce8d7809e368c4ace8b061ea854a2e59952b3f9c77fc3bd3c17566dd79285f24c0ec915bdd0f6a6b45c99c5e3b9018b9e624f3cc984102265dcdd7c86bc903d5b2b9219ccfd1a413f5b054954914ad8aae0d9535253cea21b1c3288e55a6ff883ef8e2c72bf8af28661332775036c2b547326acadac315de4e3cd771aa590077c12963d1d0109dd0b585fab99cc93d4abb2005f4f59c3c928ec3767307fe1673ed725e13a3f64d55664f83472ae6a2b5ae1a09575dfd31302f217a0aefe63ac1162caabdb0fca6292ec2bb36193d0fbdf53a117c06a995f4c30f7e58ac44e9bfa87a75d8350549f5048bcefd2e3904b99b158bc49e459984cd6f93b80394eed78f7e41df8d9670222d974ee5282991e1c0063cc7959032a8cf40b3e9d66afd820dfc06cd07462e7b298d0d20b5d59a95d43f24f74750d0897d09fcb8274e5dc71d0f1b936ad253290524ca09cf6495536c000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013cae966af414e5331e7a6afbfa56f6b27efa5df2817773abda389025fa7c1a54171265f133abe509df8b4fd9ef75f5bcb580cc5ea675ab30b5874443f92c268501e58b56bfe4b07572ef008901538385ca314b57132a46121a16f9a20e3638f939f2c8bc0861192a274e64cb37fb116afd9d07ff2326a1c9a6dbb939976f11a73f2a53a1b478af01987c8f5ffd40a21ea1002247644ec903fcbe62b2903c365d040fb2dbbc62fdcac560c2f48607557952fc0de71863393ed1d6f094c1ae4f542882d96a870870d2020cd7e46c6eb71f48da99c1234bfcfe06a29cb917b66a5d26375ab7577515c6cfc8cfe88c5e068509f744352e2da3c4d7cea192a4ec44ef3c668ab7fd5a3223d9ac025aad7aeb59466e383ba603e9b9828149ba55e9c9880bab4cefead8e3a6546d7e464987b7bf4b2d0cd13e40f8a47f041ecbdef9b6ab1602976ab66fed4103f081d0af2f2a5ae7d52ccd62affe6f82fe4272b232c6113ffa60694f62a30f0525e7e590aab06ee9d4b20b10470e01e5489873e7e913892fdb96c62d0e3bdb6edb6dd7e50d145c78bb99626bf9d840470cec4ad111e3951fcf1fc67436b3e2131aaa6a54a6316fa75c4c31fead97ede725bb82d71d83d12cfefca78c25e514ee8e8d5724d3d8dbae7d272ac7bd9adbab233cbd6e80514e1b4b6c77e416f53afc5ad5d412e3eb86769b1f450fee43cbe72c6e30ca9a167328a3cc98b18385adca63ed83e0a8986ee326fe2109e0de8d0b2ebae40a1ef4103679a97f40636cf5742883dd43ae9a37da822b1773cc23ef8acbdef6100a673311e1bb53348f5c861f5584405a79ecff3b80f28d8e1ea9b0b74450a59280f4c62e1e44accb70a379e0aa7bbfa5861300e6c5a66e7b2e4f6ae1e8e0476d7f0b3b1968a8a006ccce9e9cab9541c461a0fc073e23c7bd4c5757fb28624edc84c7dd2697575ff933316163546abe3b9e5f041b0875344c00a1c39e04ce9e237b38243f0b4b20220009190f59ea48d5e824ec01f019eaa930bb9c4e9cba9d4e97e75000f4b4dfddfff6e6f0a615b72a17db1420567f11601c3d7f4a90764fb16818b13b3877a0aa002d7d4cc1936c2d88b89b80961da528bfc59f245ae15e88f7848c04c7885f55ffd282b33e6c93d2774764a1b07b56e08d337c74d24f8e77087b7511e1bb53348f5c861f5584405a79ecff3b80f28d8e1ea9b0b74450a59280f4c62e1e44accb70a379e0aa7bbfa5861300e6c5a66e7b2e4f6ae1e8e0476d7f0b3b1968a8a006ccce9e9cab9541c461a0fc073e23c7bd4c5757fb28624edc84c7dd2697575ff933316163546abe3b9e5f041b0875344c00a1c39e04ce9e237b38243f0b4b20220009190f59ea48d5e824ec01f019eaa930bb9c4e9cba9d4e97e75000f4b4dfddfff6e6f0a615b72a17db1420567f11601c3d7f4a90764fb16818b13b3877a0aa002d7d4cc1936c2d88b89b80961da528bfc59f245ae15e88f7848c04c7885f55ffd282b33e6c93d2774764a1b07b56e08d337c74d24f8e77087b750ce7e97ae590c12eda640bdea2f2501459f94dfc3a5ad39eeacb0ce72bdfce160409ae2f87c7368549686786a98175ac8c817825a11200d132276a2842980b5503f684053292e56a23cc9aa6cf6b481f2ec93b24a323cd8de4386d69771a4f5c1fc6a3ef7a30a81709d7aa355992354fd93d1e3d53a2b055a2af3bfc2322aee723500dfb71972b65effbfc64e970bf0af2f850e628644348aaf32e368c725bc32708dddaf0a355dd8d56733e344629709d81d66a333624a6716db87e609b78861469067986f43cf59010dde08f92426f9c3c91b26d7baea2cea61005e14e93c71b9db6668f5dc4dd7d5f86d590d1cc2465212c4ba530adfd1fb40487ba76e6dc2bf93842bf2d60223b1a98080fb866156c1f2eaba5c51d58b80b9996a54f20521f58081e26b71aa87374afb67ad656bae9ece3c89aa1828ad674a7ce51fc080306b1c44920157c93acd913a20dc88b72472013d85acacd891a620f4021066f1a1fe9ff989561772ea2d51724e6f0df9a4153ba160a091c827b172e0f31ca66ed2f21927fe7dc596701cf597a8da267cc99840fdb2bce57eeca29b69c5d05e2901c2fade0fe082163acbfee43fcec5503bc880299149847f4c4568ac89a4545c60fc98a61c1253ebe8e5aa9c412cc1111af972c12912cd563f3b50ece0b09da8d3036759e3edac14171a5563bed33eeee72af6ce9782023b7a578221ef4f6257517a3747acf162f38a350354b39b09b18f6969dcddaf1d26e479160ab64a296a73b9199cadd3d03ff6c78305d3da09035ed9eb38046286aca90940c7d19bf964820cd90831b33111a1207e29516e0656e61c6ac921f597591eff35fe8041867c3292500858dc4cbf6cb392ae7c2afbcb026857c51d3784ac80aa2f9f4c9b1fad0003b2eb2f19bfe5599844db38336b74f919697253931b2425d1bb448e236d72621e8a79e1070bde4bc84e52025781872e9e57793af63dbdb77f231a6510597200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000125c363702d64ba5e934715df57ab4bba2cb17d8662b239dca50584d80cf020d4223b2428aca3ddca50a4e6cee67482fa0dd86bd9d1689768254f10c1adc0312d1a1595d143d11b47d4db164ef10250c5d5096d3e08ffb1154a9304d164264ffd16e2d9fba42d3bd37a7834156e6e061c5c722c6f31b3d5df1de40f4f25935bdd11e4861e7721f0331eacb134490c8141a111c9743d4df9de32c207bce8f901e833efa315b6cc8b92350e01630da2b8016db6fb7a889f1385c11651682123480635a61c3890b22c6ffa43121ea2f855a10defbcd01efc2353bef2c02588beb8cc19b7c497da5170d91bfef97b0abcdd53ccc38762ac4ede70ce748a02151cf92a38a5122dfd46182e42b471bbbc1157af1570e94cf3c8d2e4219be3c748b448850bca143dc161946546b4c2709d5e5bf134f9c804146ce05df6f16f051be82a8317c3a72ca2fec863ef5e78199a7b0668d878c01937ad35106e22804583b2b6c12d9083f6e76122159ae39261b4ad5a642c7d8243079553b2ec6ba0e45b06b68e079779984949174d271ce893b9744893dc1ef2b3351df090f709fbc0af31be3d08133cf457fbd8705ad92fae803efd3821b259e52c3c86819dfb7b1ff8fda92822295aea8e501ce4880020c2e1cd5409cd7d326d89a681ca6e3758d3dc1eb571386ef43105df9a355dbd5622ab5c9d99cc0ab7772aa434c9be44b3ec9e21089319621aebe16f83b61f83047b7054e7fb3cf59cb5bd55c3d684930f3888e14c643e0b1cbeed6a6f988f6636f8a2d09d07332ce9fc52adbe806ccc2598f6cb534d00000000000000a0080f7de0bf31efb5b2c47eee5c937f66267b3811844a38824360cc21f390788636c3618a72da13ff78c21263b11fcdccae1e905f7203685e4a438cb11a318e2639b2bc6443979398a1707858c3fe594b4ffc9121a292564e5283683faa06eabd14fcb27b64b49484b55c21ce0d67fd3f9b8eef9d5565bd9900e33e36cf38009109cc41b5d14677db1dd6d5a6a5481057ccb807e75ff51f42c20095adfc4caa7d1f69cb56fd602cd503de374800d867d9f4878db487fb15669a38af13194b083b13cca270e3d859c3da00bb667c50d304818dd53f8e046b781f8477186b3f89593ae2cc6ec473ce597ccbdec05515838669fdab7f69f3a86f33e22f5e0dff61f53155d65a050f3d72c89f16a33dcaf2cbd1eb015e31bf45d61a81f751224a04081eba45bc79c878a10d25ea7cef2c2f2ce21ea9e17e131dafcaa323854ba0e8793067a0c4d6422ad8f2d599559bedd16d4f31a208fb26fb1a7fdf6165f8dc9cd11e47ce1ad209fd4463f700d13578851d9c59deb5fcd118ccd387451080624e7d1eba45bc79c878a10d25ea7cef2c2f2ce21ea9e17e131dafcaa323854ba0e8793155d65a050f3d72c89f16a33dcaf2cbd1eb015e31bf45d61a81f751224a04083067a0c4d6422ad8f2d599559bedd16d4f31a208fb26fb1a7fdf6165f8dc9cd11e47ce1ad209fd4463f700d13578851d9c59deb5fcd118ccd387451080624e7d34e1b0233be43daee5774e87712211513f82e4ef7041c041b91652e56970806637513f0eddda4eecf7a9d90b386dfff60a9d9df211d757713fbec0fd2624f20414fcb27b64b49484b55c21ce0d67fd3f9b8eef9d5565bd9900e33e36cf38009139b2bc6443979398a1707858c3fe594b4ffc9121a292564e5283683faa06eabd3df03998d083123372b5e5daf8ae3a1f69aa41b3fbe9a32e1ce6e6ee3b767c7428a4503a7e4cc009eb49fb6b8f9a90978bbfb8343effdbb4324e19e2e52295720e14ccda13a6fc58ee21044d250708cd32c5f8ba46485795c4c95bdce9283bc9009aa20594a52bc468ab95d9ac5f4dbd967eef08a862c335f57019ac9016af84340817c89d0d2cfb42596a584474c06cdd62bd80bd47859f8443957f9ee525e41f891c34602e760f56f02eb7457e7c8b72cded12729e441d90758b078d564695347caec906d89a88e030021b49512c91440f57e1fa4b4c6138efccbe596eeb591a32c016a1738d94769c980b881529f9a77c28dcfdacc7861a76d9b81fcffff504ae4cdf7f6bbcbf19d0978df15ba099a70674c5020c4f44e0b9654ddb271cac2afdf7d18e598c1a2359b72732af16c3fda6ab2d29816357b0955313ee87a2a7246e1a4ccd1537b0719e20849545a35a9b75e008d815ddb4c2d4ba3f1bc3a4092a415492db36f06ce52e79a23c20b3305015a0b61fe236329091ec375d7b47452e5501dfb8a233993a5b9044aa7e48da1167d7d0856d15f4104012353bb000e60f6235fa1185ec86900b13793bc1f553106d6540720a70d596b16cfa17e8d6bd0764e1225e874bb71999c6c8b4abf2c32af3355b960c7b8999f2cbe249f938dd074a8dbd49c4dc663d32d35e1cba63c79e51b267589e9f422046a9a72f45b27037513f0eddda4eecf7a9d90b386dfff60a9d9df211d757713fbec0fd2624f20434e1b0233be43daee5774e87712211513f82e4ef7041c041b91652e56970806614fcb27b64b49484b55c21ce0d67fd3f9b8eef9d5565bd9900e33e36cf38009139b2bc6443979398a1707858c3fe594b4ffc9121a292564e5283683faa06eabd1f891c34602e760f56f02eb7457e7c8b72cded12729e441d90758b078d564695340817c89d0d2cfb42596a584474c06cdd62bd80bd47859f8443957f9ee525e4347caec906d89a88e030021b49512c91440f57e1fa4b4c6138efccbe596eeb591a32c016a1738d94769c980b881529f9a77c28dcfdacc7861a76d9b81fcffff508743953edb311b595689246441fe46ef38fb2120a62984f49105fbc19b2e9af15b77f6407ecfb6767fcb5126e4f1db6af5a6aed840e017190d995a064a564633e2f42b5423ec9391883bb95e1113bffef09b0d32cd42ba62821a02d8d91e13710802c2a660d5ee43e48de90f0551a8afc81cfebcb23e8412b450648ebad0a1725fb2f35aa98ed806d3747982aaaeda77cb3f37245276a9c92cc382cffc49eb01c86f9487f4ac7d5b61debeb360253f212ace98fad0e97ab4f69b9ba52c5f8bb234b8212245f6496613b13d142576492a0ab668af2955631332705af4dc7345e2b63eccd83ecc386f59186558f0ef1f84ae01a340562bdb6203fa0c72b77b6f031181ae950d805780cc06eb7c812fb65bed68da9f7bbf5cc48363ff2d4b511b9135929e0ac22b89b9de768e666e7985d6a79c3c045c143e4ef0e2bf1a8095577009aa20594a52bc468ab95d9ac5f4dbd967eef08a862c335f57019ac9016af840e14ccda13a6fc58ee21044d250708cd32c5f8ba46485795c4c95bdce9283bc9078f880b3456ff651c74854b64ef466b0619f3c6b49c681f77e3e6a87cb8a7882c5ba14eea04152173475bf8777f3f91c06ce100794a995f40dca9eade2384910ff669ece8e5c627515165efe3870f347b3b928c56f84a8964ccd14023b963543eb904f2bf6661f6057b3436eddf4756704fee32a0ffc95dee99d536558587fa05c97e722889f9589e729bd5db37fd0ee749e725aff8f7085572983a12d62bf222ba27acf95ce1a246dfe98b7b5e1fd185c8ee2ecceac627b5a3b1a737f6b5b82b63eccd83ecc386f59186558f0ef1f84ae01a340562bdb6203fa0c72b77b6f0234b8212245f6496613b13d142576492a0ab668af2955631332705af4dc7345e08743953edb311b595689246441fe46ef38fb2120a62984f49105fbc19b2e9af15b77f6407ecfb6767fcb5126e4f1db6af5a6aed840e017190d995a064a564633e2f42b5423ec9391883bb95e1113bffef09b0d32cd42ba62821a02d8d91e13710802c2a660d5ee43e48de90f0551a8afc81cfebcb23e8412b450648ebad0a17078f880b3456ff651c74854b64ef466b0619f3c6b49c681f77e3e6a87cb8a7882c5ba14eea04152173475bf8777f3f91c06ce100794a995f40dca9eade2384910ff669ece8e5c627515165efe3870f347b3b928c56f84a8964ccd14023b963543eb904f2bf6661f6057b3436eddf4756704fee32a0ffc95dee99d536558587fa36c3618a72da13ff78c21263b11fcdccae1e905f7203685e4a438cb11a318e26080f7de0bf31efb5b2c47eee5c937f66267b3811844a38824360cc21f390788639b2bc6443979398a1707858c3fe594b4ffc9121a292564e5283683faa06eabd14fcb27b64b49484b55c21ce0d67fd3f9b8eef9d5565bd9900e33e36cf3800913df03998d083123372b5e5daf8ae3a1f69aa41b3fbe9a32e1ce6e6ee3b767c7428a4503a7e4cc009eb49fb6b8f9a90978bbfb8343effdbb4324e19e2e52295720e14ccda13a6fc58ee21044d250708cd32c5f8ba46485795c4c95bdce9283bc9009aa20594a52bc468ab95d9ac5f4dbd967eef08a862c335f57019ac9016af8439404db96b2d063952714c0a1072c6ba86fff42772cdfb4b18505bddc4a86346340e490a167569f7ebcfc91cc090599275e51a1a0e21367ec73791a885163e2d074a8dbd49c4dc663d32d35e1cba63c79e51b267589e9f422046a9a72f45b2700764e1225e874bb71999c6c8b4abf2c32af3355b960c7b8999f2cbe249f938dd38d55f89a15228409151f05e1d31132c0615d2d112aebbb2790fdd8b3a2605db0555da5dc0d41e4c8f86e3df1b4929eb9c992c8d24939e67e9c8437fb46c9efd02ffdd96f41087d3b97defc40610b76205b9437f3e73753241984be3f5f296040baf9148b43ba0499d4eaa62cb559f28c38ba443b037a59978a129a5834c55493e44354ea97499886a57d38a1c74840a7e9d3d0ab276a7f610b6030bf0bf90a50491db5c99ac710733bfaea8a36eb5e68bc6a93c553c012ffd8c280a64aabf17193528d7ad90a89f635d890a2433e0bd1f7755b800775568f51304ef1da9bbab357a4607fabb7f7df36f111cad3275cdcc142b06f780be7e5e53a1875b952fa322ba27acf95ce1a246dfe98b7b5e1fd185c8ee2ecceac627b5a3b1a737f6b5b805c97e722889f9589e729bd5db37fd0ee749e725aff8f7085572983a12d62bf22b63eccd83ecc386f59186558f0ef1f84ae01a340562bdb6203fa0c72b77b6f0234b8212245f6496613b13d142576492a0ab668af2955631332705af4dc7345e3e44354ea97499886a57d38a1c74840a7e9d3d0ab276a7f610b6030bf0bf90a50491db5c99ac710733bfaea8a36eb5e68bc6a93c553c012ffd8c280a64aabf17193528d7ad90a89f635d890a2433e0bd1f7755b800775568f51304ef1da9bbab357a4607fabb7f7df36f111cad3275cdcc142b06f780be7e5e53a1875b952fa338d55f89a15228409151f05e1d31132c0615d2d112aebbb2790fdd8b3a2605db0555da5dc0d41e4c8f86e3df1b4929eb9c992c8d24939e67e9c8437fb46c9efd02ffdd96f41087d3b97defc40610b76205b9437f3e73753241984be3f5f296040baf9148b43ba0499d4eaa62cb559f28c38ba443b037a59978a129a5834c5549397b26960faa188c976677e7a40ba19d90cd78a02b0bc94ca9279292ca3fb631160fa5a1b83d7743ec1200f9a85f18898812ef5c0498799a440c0fb6175f478a35e6da25cdf86ed8814dc01565f3f3a2f9109ff9c531b73c6f5840c5958aa6e818c894b9da53b944d57eda116b7262e7f27ae0c532c65caae40e65b0e3b444662701c32720667fe0a79592b975b6cd5932570163dc57cbf99ed9688cd37d836905d8d18ec93dc9e3403951ee09125409276db1945b7f9963eb9ab230db4750d40baf9148b43ba0499d4eaa62cb559f28c38ba443b037a59978a129a5834c554902ffdd96f41087d3b97defc40610b76205b9437f3e73753241984be3f5f296040555da5dc0d41e4c8f86e3df1b4929eb9c992c8d24939e67e9c8437fb46c9efd38d55f89a15228409151f05e1d31132c0615d2d112aebbb2790fdd8b3a2605db02ffdd96f41087d3b97defc40610b76205b9437f3e73753241984be3f5f296040baf9148b43ba0499d4eaa62cb559f28c38ba443b037a59978a129a5834c554922ba27acf95ce1a246dfe98b7b5e1fd185c8ee2ecceac627b5a3b1a737f6b5b805c97e722889f9589e729bd5db37fd0ee749e725aff8f7085572983a12d62bf22b63eccd83ecc386f59186558f0ef1f84ae01a340562bdb6203fa0c72b77b6f0234b8212245f6496613b13d142576492a0ab668af2955631332705af4dc7345e05d8d18ec93dc9e3403951ee09125409276db1945b7f9963eb9ab230db4750d42701c32720667fe0a79592b975b6cd5932570163dc57cbf99ed9688cd37d83690baf9148b43ba0499d4eaa62cb559f28c38ba443b037a59978a129a5834c554902ffdd96f41087d3b97defc40610b76205b9437f3e73753241984be3f5f296040a7b062400dbc05bb8eaff9a8e368e74532b5a9ed496fac05ea49d2f62492cbc1db4b7ce07cdc565b1a53717692996149ee4717092d01b9180657382e5a3fc9d357a4607fabb7f7df36f111cad3275cdcc142b06f780be7e5e53a1875b952fa3193528d7ad90a89f635d890a2433e0bd1f7755b800775568f51304ef1da9bbab20212d1586fd6d0693fc885b11407aeeefa1bd44e32a35894c147adc5c68c4161b385cd6b707da713780e1d481f82c2d6824d51f6061d7520fe9088a773ff5ac2a415492db36f06ce52e79a23c20b3305015a0b61fe236329091ec375d7b4745246e1a4ccd1537b0719e20849545a35a9b75e008d815ddb4c2d4ba3f1bc3a40925fb2f35aa98ed806d3747982aaaeda77cb3f37245276a9c92cc382cffc49eb01c86f9487f4ac7d5b61debeb360253f212ace98fad0e97ab4f69b9ba52c5f8bb234b8212245f6496613b13d142576492a0ab668af2955631332705af4dc7345e2b63eccd83ecc386f59186558f0ef1f84ae01a340562bdb6203fa0c72b77b6f02701c32720667fe0a79592b975b6cd5932570163dc57cbf99ed9688cd37d836905d8d18ec93dc9e3403951ee09125409276db1945b7f9963eb9ab230db4750d40baf9148b43ba0499d4eaa62cb559f28c38ba443b037a59978a129a5834c554902ffdd96f41087d3b97defc40610b76205b9437f3e73753241984be3f5f2960408743953edb311b595689246441fe46ef38fb2120a62984f49105fbc19b2e9af15b77f6407ecfb6767fcb5126e4f1db6af5a6aed840e017190d995a064a564633e2f42b5423ec9391883bb95e1113bffef09b0d32cd42ba62821a02d8d91e13710802c2a660d5ee43e48de90f0551a8afc81cfebcb23e8412b450648ebad0a17340817c89d0d2cfb42596a584474c06cdd62bd80bd47859f8443957f9ee525e41f891c34602e760f56f02eb7457e7c8b72cded12729e441d90758b078d564695347caec906d89a88e030021b49512c91440f57e1fa4b4c6138efccbe596eeb591a32c016a1738d94769c980b881529f9a77c28dcfdacc7861a76d9b81fcffff525fb2f35aa98ed806d3747982aaaeda77cb3f37245276a9c92cc382cffc49eb01c86f9487f4ac7d5b61debeb360253f212ace98fad0e97ab4f69b9ba52c5f8bb234b8212245f6496613b13d142576492a0ab668af2955631332705af4dc7345e2b63eccd83ecc386f59186558f0ef1f84ae01a340562bdb6203fa0c72b77b6f039404db96b2d063952714c0a1072c6ba86fff42772cdfb4b18505bddc4a86346340e490a167569f7ebcfc91cc090599275e51a1a0e21367ec73791a885163e2d074a8dbd49c4dc663d32d35e1cba63c79e51b267589e9f422046a9a72f45b2700764e1225e874bb71999c6c8b4abf2c32af3355b960c7b8999f2cbe249f938dd34e1b0233be43daee5774e87712211513f82e4ef7041c041b91652e56970806637513f0eddda4eecf7a9d90b386dfff60a9d9df211d757713fbec0fd2624f20414fcb27b64b49484b55c21ce0d67fd3f9b8eef9d5565bd9900e33e36cf38009139b2bc6443979398a1707858c3fe594b4ffc9121a292564e5283683faa06eabd00000000000000c800000000000000220000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020edbe94d8e8de5db41d18ad91301afefc3b3b6d97bf6925be6996ce1550d25f9f0000000000000001000000000000000000000000000000204b06bb483c21112f9cdd7eff56256a5630233353d836a5d668685bfdc6a4041e000000000000000100000000000000010000000000000020d80cc5cdbb0ec297cddfda4fd988de76b705f83576117fb5ed10b48a9b959bb0000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000220000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e000000000000000600000000000000010000000000000001000000000000002031207018e5337547011f31a2cb9b9576fae9ef496ac1f65b332c737338573b5f000000000000000100000000000000000000000000000020393cccd066625747c7bb15e378554916665b267344c9bf3a1f1e239b4d3166fc00000000000000010000000000000001000000000000002072ecff12c730f10ff239ae5d5ec6e0ecd7a93d7c6f58e48faaf9efc69af68a03000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002200000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000010000000000000020a502afaa3bdb59ad846d02004e3f49dd5a5e428cdc9767660dbcc0195391e24a000000000000000100000000000000000000000000000020d2096ab2fdbc4ed9fcb3f176b5554a872f0e907766b3c2d7a358a3e01f8fde260000000000000001000000000000000100000000000000209636be1e4b8abd68cb43b0274502fefa81dd44893b457dcd361701b81c119a5b00000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002200000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde56120000000000000006000000000000000100000000000000010000000000000020aaad17ed1dd803084c7e03d910bbe8a35e8d602a26609351bdf66100a23794cb000000000000000100000000000000000000000000000020fc18f1981d845ff496938d740e8859186fa60708758e2c4966cc30321ee5af9700000000000000010000000000000001000000000000002034d606e528ae97ba399a8765a39ca8182a9abb6191e6065fb37a87dffc92f9880000000000000001000000000000000100000000000000207794a6e7ab3a2607315a56d8ffe8999f9427ce2f2490356c082fa61238b586300000000000000001000000000000000100000000000000208b43e56d7018073c7ddbdcbb43e6f2b6fe723633f9f0413f2816154d995f9df50000000000000001000000000000000000000000000000202acbbe7e98cf5709c49c5060a40d850c367fa6b383f35b244367f148f5586f8e00000000000000220000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d000000000000000600000000000000010000000000000001000000000000002063f325f5186e10e6614bb85c0bcb3ba848415c8cb1225f99c8929543d82f2c90000000000000000100000000000000000000000000000020a58adfd2e024e06c922fbd6f0c6e29c0aa467b652272a9cd35196719e496cfd60000000000000001000000000000000100000000000000200df38a45fc387ce7388d7edbd245b965091614cd5a7aa1118bcbb22942e4bb9300000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000270000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020d2177cff3370731150de6ddcf6c893f5aec7252d0b7bd68caa69cf0af92a8edb000000000000000100000000000000000000000000000020ea0130bd476a2e99ed6edb948b6cb09cfecc8dd59caba4fc389609df359d15860000000000000001000000000000000000000000000000204cb7b4fa816710180675ddbc955531f8a709d427faf5200cdc6737874e060a55000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000270000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020b48dc2c77a67d852a5a1c89e57e8fa3cd275bd8e13e6fad63330fc34b32b72980000000000000001000000000000000000000000000000201e9235801c669c50c2b370f79c4c01eedac2bd811e7882f3c3ae07b72c66516100000000000000010000000000000000000000000000002037a9c624bdb25b1ee261b13411e9d6acc0d0e8c738496cff14dc43abe65c9d1f000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002700000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000208e708d32664cf9e3acd55714e1ebba48f1e2bbafa51332d5569992c483fc341e000000000000000100000000000000000000000000000020437286cce94ee481fb2d34b75a26a24d22661f691749677c792af071c156ccba0000000000000001000000000000000000000000000000205d6c3e37441823be85bdf046e1379fc5587812c68dc08d8750f2f6bd76bf08a100000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002700000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde561200000000000000060000000000000001000000000000000000000000000000205c177f2a7c5dd4a10967804e5cecdbe2a45b4f4b85c94574c66961249b750199000000000000000100000000000000000000000000000020c53bcd46d6bd106eb9fd8a01d0376b114ad193213375dc742f10e3d1c5de5dc4000000000000000100000000000000000000000000000020a3d9e1ced1896a9083f68bbabe3bb9574542b5eb5d38128a466f4b97c8a833410000000000000001000000000000000100000000000000207794a6e7ab3a2607315a56d8ffe8999f9427ce2f2490356c082fa61238b586300000000000000001000000000000000100000000000000208b43e56d7018073c7ddbdcbb43e6f2b6fe723633f9f0413f2816154d995f9df50000000000000001000000000000000000000000000000202acbbe7e98cf5709c49c5060a40d850c367fa6b383f35b244367f148f5586f8e00000000000000270000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000000000000000000200d223b5973ad045189a955bfd2f2dee5836de27b52beef52524919504211e9f40000000000000001000000000000000000000000000000207fc92ac8e569eed4ff8e3c4f82dd4cde5b6e4918cc3e7ab8884fb26fd7b0080e0000000000000001000000000000000000000000000000207f46e4b2eb51c53f78fb1f6b5310d84183eb4d3898e8ddf3b3eb940fc2ad8f4400000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000080000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000001000000000000002042339e5d10b0a87ad4fe4a5593bdc05cee398a4a18ea7f97778781f69ff9d23900000000000000010000000000000001000000000000002014aa8e29f77d6a5fb881904df608256632c6604fbfb5192158e0932c0baf514500000000000000010000000000000001000000000000002093c99af014a3514bdcc84cdf0e72d42f20038a64dcba4071efdcce4cf6a76949000000000000000100000000000000000000000000000020a07353c5029eac2f5fb14b7aaa839b9ff2b01dd6feeb51c341820462ab766306000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000080000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020993982938287a52eaa295a8259c93c48d22125e67d985917441309ed46f8d051000000000000000100000000000000010000000000000020ff5c9eed6e4075d1dc3dad1312c9f0e4bcc23270345f8eea8c11a5b3619b24aa000000000000000100000000000000010000000000000020e23783733f2d245e0738ed8503ab8c6aef3aa526888e6b8dc670bfe0e224b8ff000000000000000100000000000000000000000000000020a45ee5473875579efd498bb9c2b6715752587f3d8b2592b454ecfaa7a4333af7000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000800000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb626512000000000000000600000000000000010000000000000001000000000000002019898700bf26a87ccaa60ae2e22476343b05ba5277b4aabd5310269c5066b3a000000000000000010000000000000001000000000000002025a5c0035306c82abd392465404dd2a5af6ad78f6c662e811fb28ddd99a85857000000000000000100000000000000010000000000000020f0fde6ec22a87dce3563e4a3872da6fb65e744b1d395bcb2f83911d9ac21f1af00000000000000010000000000000000000000000000002017851b1e9a70cbcc32eb47f7ecfae668e5855348fa541f9cd9cc78455c2f52ed00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000800000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde56120000000000000006000000000000000100000000000000010000000000000020b34deae4f55a4304383d1815b4b246037a6d5665c7dc3a6d049f37b7e6ed110100000000000000010000000000000001000000000000002043cf5ab0e85678ac1f5e9bc7f073456a624fb85b0ed8a97a19debe99aee3ef3b0000000000000001000000000000000100000000000000204f1d90aecc22386cf8bd2d60c6a2d6d6c43c1918619306fffdbd5f5dfb68cd920000000000000001000000000000000000000000000000202cc11ee53cada1579b266c3b3e900aa197ce5a4bde333a64f8a5d1e71e5ec9c6000000000000000100000000000000010000000000000020dd1c1802ff1109af90e7501197f83b1086afac936987a7b7b940c7eea1eafa7e000000000000000100000000000000010000000000000020ee96f610e3f62ac6a3af8b09bdf54bff9f61482a5b4905803e9446aa9acb86e000000000000000080000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000209b2ceda6345229ee35c8f1d1ec5f70384bb152c4b78dd25b3534efa444f07101000000000000000100000000000000010000000000000020f9459a5f7f85273cda341000cf6866270e90827995d041cbba1ac42de920723c00000000000000010000000000000001000000000000002045bb9d506f74a19123d41a442d1de0fdfbaca183dfb2af0cc5027621a991b2b2000000000000000100000000000000000000000000000020dd7d0f921f70b1c400e2053b21a89931a0d729e3164966f8cdf0a44bdd836801000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000280000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000203fc4f8175b9c92350566386ba4636deeb2ec6d4187f6d0d3208c3db577ee4c1a000000000000000100000000000000010000000000000020c600a084e5647679dce1e61667cd049aa01cd0b29e54cfef6b28350be80914810000000000000001000000000000000100000000000000200ebe305ff48b2729427a6d3d9c605f9d8749d8a7f371875c0845a2841f05d610000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000280000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020c6f1cc07680dcd75a8f53c63f310a6d897c61d167e7cf74e0c15cd99fc146e0f0000000000000001000000000000000100000000000000209fb59ccf252a0568bd152caf34d3269d3a2b9a39857511b0bd86c4af33ce8dee0000000000000001000000000000000100000000000000201cef524c4bbd4352e55a822f72b50f13a0d37a3b4bd840b09474319d06e88b350000000000000001000000000000000000000000000000204c549c0a06011a5b940afdd9c949f7c54668b0449c63f74f64a3a00d1cc2a37800000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002800000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000200669822d3814118c5bf694c1ff7d0ed5355d049614d73f0cd41e47c2ba90a4ec000000000000000100000000000000010000000000000020e967db82093a838375e88444bf31c8b9602b5b9abee7d1014d9faa70e9e2ee07000000000000000100000000000000010000000000000020b65635b650f7751f683d4fdd6f77a7bbbf3914c331798f8c0a5e9b5bdd294ca9000000000000000100000000000000000000000000000020d880ce6b358a2b77330b5a0f9481e98d6528b9d0ad6b480d03501c04a93a647f00000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002800000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde56120000000000000006000000000000000100000000000000010000000000000020e5e45ef37559cefd4b7b859b43c99f93dea0082583489479c963bbe6850b6c72000000000000000100000000000000010000000000000020036e7df247ef476c62b0c60d8c733502d9c99e42211e6505526e56ba4d0eb688000000000000000100000000000000010000000000000020ec081a9e95c70f0fa23f8f9f16c399792701d8ccb5c6c2bd2fec49153d27321100000000000000010000000000000000000000000000002080b4067bde5f3114a4b55274822cf920b2a4ae2379db5763e4a3dabbb5558faf0000000000000001000000000000000100000000000000208b43e56d7018073c7ddbdcbb43e6f2b6fe723633f9f0413f2816154d995f9df50000000000000001000000000000000000000000000000202acbbe7e98cf5709c49c5060a40d850c367fa6b383f35b244367f148f5586f8e00000000000000280000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d000000000000000600000000000000010000000000000001000000000000002029df8d814e6ad33e7598df99f56ae5a9d1e95069c3ba023194079a911304b748000000000000000100000000000000010000000000000020eb547fc519df191930772af4c7f9a223f448ea9b096d6bb0615a7ccf53da66a3000000000000000100000000000000010000000000000020a9fa262c6bfaa50ee132d4609ab35f935bfd510e97d33e942458c27041a0083a000000000000000100000000000000000000000000000020896402e4d3f17887d11d2154920c6bff134c98834a80f987cc702496ef09c196000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000320000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020cead2a72fa7974c8cd84b21e2362159483af9bb8274514838dfb974484a1575000000000000000010000000000000000000000000000002005bd0da2469f2c21b3a29c3fb9805e1c169b17d94f8f17fb27b467cf42de28db0000000000000001000000000000000100000000000000205f3c867463c166fd9c0125885c51251e20c9b8d44030db7f8c699a0f747c2522000000000000000100000000000000010000000000000020f006cf8352bbf180ccb81999dec2d0377abf32ec1a119242758d07bf00181499000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000320000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000205171129cc905c8d4a2a5e72692fa2146a126401361ba92ac1f21e9fc301a8f5600000000000000010000000000000000000000000000002065f01400d8c5267b0c9e1b41ef2836adc1616da98100daa5b32b8ba39b374ee10000000000000001000000000000000100000000000000201005d0456ea86f38d81d86687e8f11923a23456f3c2f3ff55d7c8acb9de64d690000000000000001000000000000000100000000000000208d5b321bbfd951f9cb7659d22f534c96ff102f4c76a497617e5abb9dfa82d388000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003200000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000208f12edd561d40b61d3d50b9d6b8679c0a5358ccf17fef9bd9448e821759aae630000000000000001000000000000000000000000000000204c94dd0a0f2cb0cb59dcc9b4beb35fd98efaa2cc92cf08466d21549d33875f98000000000000000100000000000000010000000000000020c777ac306a941e7299543eb8e965674fbfd21d8db21d4e6efb2f426e941de1bf00000000000000010000000000000001000000000000002077140c9519235b46e9281299155f5f67e417ff114e7ade36dfc35a5d9cd2e2d700000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003200000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde561200000000000000060000000000000001000000000000000100000000000000201cf667c93218461cd715e63b61f883b6ac7ff0f91a4b86acc95ef8c3296717ec000000000000000100000000000000000000000000000020ed96c4ea6aa26447890bc48910f7d9f42a4fb3d8af08a3a74346b72167154a40000000000000000100000000000000010000000000000020390db850e000e33e00c0ae3ae80c19561aeab2d6f4dd64e8c024820f8d12d8d50000000000000001000000000000000100000000000000206e7dc7fda7866ca355c1f89e48853a86a9d9b363159deb6fb5ef53aeda9b1c2400000000000000010000000000000000000000000000002078cdee2ea5faba6663676c4f4610229cc5cd1c1c0cdc38f9b01331797fb30d310000000000000001000000000000000000000000000000202acbbe7e98cf5709c49c5060a40d850c367fa6b383f35b244367f148f5586f8e00000000000000320000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000205158bbe04522354f51ba354a6cc863746e521e6d494de5fa79dfe2a4e0a2524b0000000000000001000000000000000000000000000000204214f1b616812c5b41ff45c0d2acddfd991317d68de3ff1ed1900ce663f1230e0000000000000001000000000000000100000000000000200c26f3577db6f6fc8ca13505100d7c1f5e90088ce53af1ae45ddb54d2ffe746d00000000000000010000000000000001000000000000002072bbfd71e002ce04de2fac87c41cdb38dc917d8c5386b1ebdd6e02865da280340000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000050000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020df632d8f7473aa2a266c94e0516913189d640957a4f03bdfca986886fba478de000000000000000100000000000000010000000000000020358c6702aa7ce3c8bdcd46a395295b533449972ac93e65796c809d3843af3e0a0000000000000001000000000000000000000000000000205653a7aef6c658c2fe00a9e102931ec0732cfb210b3c0f9786685131d83170b8000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000050000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000000000000000000208b5e31b3b9693fd99f4af22f146c47a96be5f96f6e2d1de7723eb81b05ab4517000000000000000100000000000000010000000000000020d8a894c95f18b89fc6b1966cca0468fb346cb33bd7ed5949846cd49fadfb28c5000000000000000100000000000000000000000000000020dbb74f6060a2f8daea889924e7610165d94588183449ef4022cf18b3bdaaf8d4000000000000000100000000000000010000000000000020a5ba1e43e43faaed55a5a360b6818e780f5c7442a5977ec37c50292584a00e03000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000500000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020a56fecf58a1a4c072cb8cf67dd9e508770f735536f8cd2a7c1e1ef73333f32730000000000000001000000000000000100000000000000203d0c857c0178a4e206fc089efb3766ddb437e7a682bbeb9802198aa092a8cc08000000000000000100000000000000000000000000000020c358e6ecb6ab0ba0349b872be0aacb00d8660c507286f1680572dd7de7bbdb46000000000000000100000000000000010000000000000020dc0369b2684d24cbf4274ce023a89e3478b29bfaee34efd0a4da1dc660ba45de00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000500000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde5612000000000000000600000000000000010000000000000000000000000000002096f094a6602bd56e3fdd7454ff1de6f239ff9ba2160ed7e7dbd581c07e7298b3000000000000000100000000000000010000000000000020abfab965e1bf6cc3bfa115844249f4e149ced0f88305f6e235d5b0b6f7398198000000000000000100000000000000000000000000000020c62d3f9397d25d4182cc5fa403188738101f5716278eb7fc0fc099f997828801000000000000000100000000000000010000000000000020c688afd14b4c37a8a8e28ec89af67123a3f9061af3bde671dc85b8ea75d9c04d000000000000000100000000000000010000000000000020dd1c1802ff1109af90e7501197f83b1086afac936987a7b7b940c7eea1eafa7e000000000000000100000000000000010000000000000020ee96f610e3f62ac6a3af8b09bdf54bff9f61482a5b4905803e9446aa9acb86e000000000000000050000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020686d0a06f4ae390f0f7c009a298fc5272f1d751bfc23c567191f5f4bf85d9d6f0000000000000001000000000000000100000000000000202ed66359469b6c278e6162debbe51b6122cbf7aa0d285a925131c0f1651813ad000000000000000100000000000000000000000000000020dea113f87fef53166cf17cc40d78ddf07d9d08926378c792877f7ff4d200a8ed0000000000000001000000000000000100000000000000205a4b48d2d5c0deec9a967d4659defb7f8c12de581186bfae2c710f30835d378c000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb81659000000000000000b0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000000000000000000002039b919da8460a7ced2f434d93e191c2e5f3ed6c16c5a563dde2d4088fe06329200000000000000010000000000000000000000000000002077631bed7d662ca95d374bb50963259dbae6fd85816b13bb5b057a5a051aa21b00000000000000010000000000000001000000000000002093c99af014a3514bdcc84cdf0e72d42f20038a64dcba4071efdcce4cf6a76949000000000000000100000000000000000000000000000020a07353c5029eac2f5fb14b7aaa839b9ff2b01dd6feeb51c341820462ab766306000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000000b0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000000000000000000205927b440119d91d39c3733f63f01775abc00426dddfe05736c43d2ec0905363a000000000000000100000000000000000000000000000020e36620d473cd1c4b96249370e894999a209a749fa70fb571d7cdc8d7dd5f2e54000000000000000100000000000000010000000000000020e23783733f2d245e0738ed8503ab8c6aef3aa526888e6b8dc670bfe0e224b8ff000000000000000100000000000000000000000000000020a45ee5473875579efd498bb9c2b6715752587f3d8b2592b454ecfaa7a4333af7000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000b00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000204882930d8658cd73eb924ef4d6ae5265e5f946d6d6e4198a4fa473b0c46262050000000000000001000000000000000000000000000000207ef9b1eced9bdd4e378e5106730b3ce6e1a70306d54252b4b0f320e029c8e300000000000000000100000000000000010000000000000020f0fde6ec22a87dce3563e4a3872da6fb65e744b1d395bcb2f83911d9ac21f1af00000000000000010000000000000000000000000000002017851b1e9a70cbcc32eb47f7ecfae668e5855348fa541f9cd9cc78455c2f52ed00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000b00000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde561200000000000000060000000000000001000000000000000000000000000000206491a91ff0421451f2ef7fbe94620ba91944038a61de6868fa0a84fd19f722510000000000000001000000000000000000000000000000205dfcd91798a2e45492d1e43f02db0987d2a4638e5cf53f99282d826f22e208180000000000000001000000000000000100000000000000204f1d90aecc22386cf8bd2d60c6a2d6d6c43c1918619306fffdbd5f5dfb68cd920000000000000001000000000000000000000000000000202cc11ee53cada1579b266c3b3e900aa197ce5a4bde333a64f8a5d1e71e5ec9c6000000000000000100000000000000010000000000000020dd1c1802ff1109af90e7501197f83b1086afac936987a7b7b940c7eea1eafa7e000000000000000100000000000000010000000000000020ee96f610e3f62ac6a3af8b09bdf54bff9f61482a5b4905803e9446aa9acb86e0000000000000000b0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020dbe2f7949c2848e292bebf1a30a4e72f4262acd55370a4d9815d9aa7bcaa012000000000000000010000000000000000000000000000002016c3a237b73b54311219f282ce47e3b5a782e5274e048bda1d6866b9819192e300000000000000010000000000000001000000000000002045bb9d506f74a19123d41a442d1de0fdfbaca183dfb2af0cc5027621a991b2b2000000000000000100000000000000000000000000000020dd7d0f921f70b1c400e2053b21a89931a0d729e3164966f8cdf0a44bdd836801000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000260000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000205ad883312aa88562cf385178730267043900694b0b01c2234e202a67c428abaf000000000000000100000000000000000000000000000020ea0130bd476a2e99ed6edb948b6cb09cfecc8dd59caba4fc389609df359d15860000000000000001000000000000000000000000000000204cb7b4fa816710180675ddbc955531f8a709d427faf5200cdc6737874e060a55000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000260000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020414865cf4023e03fb5c98fc94f1afd26c3a460aca077222e25d930a4220f4db90000000000000001000000000000000000000000000000201e9235801c669c50c2b370f79c4c01eedac2bd811e7882f3c3ae07b72c66516100000000000000010000000000000000000000000000002037a9c624bdb25b1ee261b13411e9d6acc0d0e8c738496cff14dc43abe65c9d1f000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002600000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000010000000000000020cc2e00785e9824e205b01768c83ffa5c02315f61334fe0670ce06b07eae698d3000000000000000100000000000000000000000000000020437286cce94ee481fb2d34b75a26a24d22661f691749677c792af071c156ccba0000000000000001000000000000000000000000000000205d6c3e37441823be85bdf046e1379fc5587812c68dc08d8750f2f6bd76bf08a100000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002600000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde561200000000000000060000000000000001000000000000000100000000000000208fab59761e6aa7f43f44320108dd08532623f57759c14680b08b6ba696e7fcb5000000000000000100000000000000000000000000000020c53bcd46d6bd106eb9fd8a01d0376b114ad193213375dc742f10e3d1c5de5dc4000000000000000100000000000000000000000000000020a3d9e1ced1896a9083f68bbabe3bb9574542b5eb5d38128a466f4b97c8a833410000000000000001000000000000000100000000000000207794a6e7ab3a2607315a56d8ffe8999f9427ce2f2490356c082fa61238b586300000000000000001000000000000000100000000000000208b43e56d7018073c7ddbdcbb43e6f2b6fe723633f9f0413f2816154d995f9df50000000000000001000000000000000000000000000000202acbbe7e98cf5709c49c5060a40d850c367fa6b383f35b244367f148f5586f8e00000000000000260000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020dceccd7648b46c6136ae8027593d0005d441a51e50114030e8b908e8accac7100000000000000001000000000000000000000000000000207fc92ac8e569eed4ff8e3c4f82dd4cde5b6e4918cc3e7ab8884fb26fd7b0080e0000000000000001000000000000000000000000000000207f46e4b2eb51c53f78fb1f6b5310d84183eb4d3898e8ddf3b3eb940fc2ad8f4400000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000330000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000207344f3e7f6af9883c597d6e1f3a288c3ffc6aceb35435477812a31e3317c741900000000000000010000000000000000000000000000002005bd0da2469f2c21b3a29c3fb9805e1c169b17d94f8f17fb27b467cf42de28db0000000000000001000000000000000100000000000000205f3c867463c166fd9c0125885c51251e20c9b8d44030db7f8c699a0f747c2522000000000000000100000000000000010000000000000020f006cf8352bbf180ccb81999dec2d0377abf32ec1a119242758d07bf00181499000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000330000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020e531ed69121bdf5b18ac52087e7e317b94e4f8c8b4269cef4cc727a80b662a5500000000000000010000000000000000000000000000002065f01400d8c5267b0c9e1b41ef2836adc1616da98100daa5b32b8ba39b374ee10000000000000001000000000000000100000000000000201005d0456ea86f38d81d86687e8f11923a23456f3c2f3ff55d7c8acb9de64d690000000000000001000000000000000100000000000000208d5b321bbfd951f9cb7659d22f534c96ff102f4c76a497617e5abb9dfa82d388000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003300000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000206c87f4016feeab616e7bf0a7df62142470188914fe59e59df595763e4d47b9fe0000000000000001000000000000000000000000000000204c94dd0a0f2cb0cb59dcc9b4beb35fd98efaa2cc92cf08466d21549d33875f98000000000000000100000000000000010000000000000020c777ac306a941e7299543eb8e965674fbfd21d8db21d4e6efb2f426e941de1bf00000000000000010000000000000001000000000000002077140c9519235b46e9281299155f5f67e417ff114e7ade36dfc35a5d9cd2e2d700000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003300000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde5612000000000000000600000000000000010000000000000000000000000000002016aa670cb9c392a24457f41794374ee6da1e53744962cc0c6acbd050eb58bbe6000000000000000100000000000000000000000000000020ed96c4ea6aa26447890bc48910f7d9f42a4fb3d8af08a3a74346b72167154a40000000000000000100000000000000010000000000000020390db850e000e33e00c0ae3ae80c19561aeab2d6f4dd64e8c024820f8d12d8d50000000000000001000000000000000100000000000000206e7dc7fda7866ca355c1f89e48853a86a9d9b363159deb6fb5ef53aeda9b1c2400000000000000010000000000000000000000000000002078cdee2ea5faba6663676c4f4610229cc5cd1c1c0cdc38f9b01331797fb30d310000000000000001000000000000000000000000000000202acbbe7e98cf5709c49c5060a40d850c367fa6b383f35b244367f148f5586f8e00000000000000330000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000000000000000000209b701f655210684798519c7d21d381389c5327f76961549a9e47317288332b210000000000000001000000000000000000000000000000204214f1b616812c5b41ff45c0d2acddfd991317d68de3ff1ed1900ce663f1230e0000000000000001000000000000000100000000000000200c26f3577db6f6fc8ca13505100d7c1f5e90088ce53af1ae45ddb54d2ffe746d00000000000000010000000000000001000000000000002072bbfd71e002ce04de2fac87c41cdb38dc917d8c5386b1ebdd6e02865da280340000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000120000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020ab63dfd21d91db64c30c6ff03a0ac64ef7387ace22e915709bee4b1cce4734ac00000000000000010000000000000000000000000000002077c77d7b993f04ae31fa6b6da7dff3c353004c11a049302a478e5dac04d508cf00000000000000010000000000000001000000000000002038c257c4acc7ae148c5c9b4409c82130df8554a30c1e722962697197980c56fb000000000000000100000000000000010000000000000020f158609c6b12d3609bdf1c7797edb538f985fe8ac4171f066b1d7b9c43c7bc3b0000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000120000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e000000000000000600000000000000010000000000000001000000000000002046817fed75d4f02d731e97cf463418460dc149d4119eb395174cdc29bc56e05c000000000000000100000000000000000000000000000020410a9806148029c00be1c6575ce39cab980947f62d7b8c905215b520e160aa17000000000000000100000000000000010000000000000020d42e2ebd255e4349a7739a43dd3c719944636248abdb0bced6a610501e96e1b50000000000000001000000000000000100000000000000204dffb3cd723081a5601c700b71267e003c6301f69868c0143c1c7fb7f95e7282000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001200000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000010000000000000020e494797516182db07045c44685dc909e4d27f6cb9bb45a2bd77f46ca3361da950000000000000001000000000000000000000000000000200d8eb352cc26ae30ac8e735bd07c4afc629f8b935a6281b4a5d795206646f134000000000000000100000000000000010000000000000020fe4fd380a7b985c22fbf7e428d0522af491d32b3707fdee9600cc7816056f1200000000000000001000000000000000100000000000000205d9455d420eacea118c8dd606eeb03972280069211e33523e74b32b8a0a96ea70000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001200000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde5612000000000000000600000000000000010000000000000001000000000000002026e17b5593d9c9ab8c323e2573cf348fa9f24688ab28f6987794d8cb47cf2cbd0000000000000001000000000000000000000000000000208b2c6fb284495361570ac35906987ec69aac6f52d77a3365b4f5bb2c461481e5000000000000000100000000000000010000000000000020b1f416af255af2c4c5d556e92ec09f445ddc4c0c1d4ce617e48781cc7fbb0859000000000000000100000000000000010000000000000020edddd053de62a5ab03c84705265b32ce7f3371bbb58bce16ef49c97190097e6400000000000000010000000000000000000000000000002074f8c3f402afa3e5ed1c04f3f0696f861280031f4aed0bc006b8cc598b663150000000000000000100000000000000010000000000000020ee96f610e3f62ac6a3af8b09bdf54bff9f61482a5b4905803e9446aa9acb86e000000000000000120000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020ace56f983bb3454baa46bf315ca6356b2478c79693612cba0ec17f56ab0277cd0000000000000001000000000000000000000000000000201cc2cb225f6ceb4dc0af62c3e4cdbff8b47664cb0876a05b70204156dc6ba240000000000000000100000000000000010000000000000020113e52f83563f3c9a8ca73087daed63db6e020f9b1908dae270f2d864860470b0000000000000001000000000000000100000000000000207558d367d7cb8046d18c333db9b72e09bb6459368f028b50b23b205b8ad03c430000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb81659000000000000002b0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000202cc0a05107243620d3b647e265e82b8acebe905524da6da10e8bac593830a70900000000000000010000000000000000000000000000002064f12c9571923baec5fcc14481a7dfea3e02c1bfc8c062111edc34018395b7160000000000000001000000000000000100000000000000200ebe305ff48b2729427a6d3d9c605f9d8749d8a7f371875c0845a2841f05d610000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000002b0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020449a30f4fedf230c522be5fd070605f8c9841aa6e05ecc8c29e9c0fdcb6e0734000000000000000100000000000000000000000000000020372b730b0fbf5e9e53c6d82f9ea174dfa93e2b45f3d0604b1487c24ff8cbe32c0000000000000001000000000000000100000000000000201cef524c4bbd4352e55a822f72b50f13a0d37a3b4bd840b09474319d06e88b350000000000000001000000000000000000000000000000204c549c0a06011a5b940afdd9c949f7c54668b0449c63f74f64a3a00d1cc2a37800000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002b00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020949208691c206267cc3f83f0c03ce97b7123fb6e5291ad80e84b0246ebcd7ca0000000000000000100000000000000000000000000000020c08b6a80530ce28ab631eb2d126ffb2acdf90182e03c3ef66853b7e4fb457d93000000000000000100000000000000010000000000000020b65635b650f7751f683d4fdd6f77a7bbbf3914c331798f8c0a5e9b5bdd294ca9000000000000000100000000000000000000000000000020d880ce6b358a2b77330b5a0f9481e98d6528b9d0ad6b480d03501c04a93a647f00000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002b00000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde561200000000000000060000000000000001000000000000000000000000000000204a132d7cc07f5134489ab1f268a0a0fcb03923e8a54c3c8bc45ca30c35d8f53a000000000000000100000000000000000000000000000020a7ba13d535a98ec1b3455d6255386df5189a1072df21c71309d40ee1bf4c4b18000000000000000100000000000000010000000000000020ec081a9e95c70f0fa23f8f9f16c399792701d8ccb5c6c2bd2fec49153d27321100000000000000010000000000000000000000000000002080b4067bde5f3114a4b55274822cf920b2a4ae2379db5763e4a3dabbb5558faf0000000000000001000000000000000100000000000000208b43e56d7018073c7ddbdcbb43e6f2b6fe723633f9f0413f2816154d995f9df50000000000000001000000000000000000000000000000202acbbe7e98cf5709c49c5060a40d850c367fa6b383f35b244367f148f5586f8e000000000000002b0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000000000000000000206e80d8e8df8fcc98c25ad548d5465c15309cc9d0d3e0bd25f4378ce44b8b29570000000000000001000000000000000000000000000000200892a3f42888ca3862bea9ccf078bd63e0266f46f3fe49a9cca5cb8700d0934d000000000000000100000000000000010000000000000020a9fa262c6bfaa50ee132d4609ab35f935bfd510e97d33e942458c27041a0083a000000000000000100000000000000000000000000000020896402e4d3f17887d11d2154920c6bff134c98834a80f987cc702496ef09c196000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000240000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020c24fc0a3e994aa4053143723d1ff953730e09d80308264f57f5e25286c7dcad00000000000000001000000000000000100000000000000204f58496d9785dbfafadd8f41e3167831200b5d8065731cf35b12e0f683eb6aba0000000000000001000000000000000000000000000000204cb7b4fa816710180675ddbc955531f8a709d427faf5200cdc6737874e060a55000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000240000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020a92607495561c9eeccd26d9cc9dfab304f5bdec362795340e1d8d93b162ff7f5000000000000000100000000000000010000000000000020056c9a4c4349cd5028c19714d82d2521d603233c99689f9551773f4c5a1bb87400000000000000010000000000000000000000000000002037a9c624bdb25b1ee261b13411e9d6acc0d0e8c738496cff14dc43abe65c9d1f000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002400000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000204be0b5c554d14ed3ecb1a4698c54f322ec73fcaf89c1a0d0f2287a93c2b4d62b0000000000000001000000000000000100000000000000203decfa57715a83c44aa9af101d28b91339338f8855c0070ab1a2c91f7f429ec30000000000000001000000000000000000000000000000205d6c3e37441823be85bdf046e1379fc5587812c68dc08d8750f2f6bd76bf08a100000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002400000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde561200000000000000060000000000000001000000000000000100000000000000200370955e846619f8053e6518604dd4a3a3876d31542c70a179b9e62113e70de20000000000000001000000000000000100000000000000203b43d69496b15a1de8d88791e245f0f4c9ce3d08e47827d61f0ae96ed0fb8464000000000000000100000000000000000000000000000020a3d9e1ced1896a9083f68bbabe3bb9574542b5eb5d38128a466f4b97c8a833410000000000000001000000000000000100000000000000207794a6e7ab3a2607315a56d8ffe8999f9427ce2f2490356c082fa61238b586300000000000000001000000000000000100000000000000208b43e56d7018073c7ddbdcbb43e6f2b6fe723633f9f0413f2816154d995f9df50000000000000001000000000000000000000000000000202acbbe7e98cf5709c49c5060a40d850c367fa6b383f35b244367f148f5586f8e00000000000000240000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000201dd42fc16aa12a31fa90168725c897d861f7e36b8c27441380a55b1025146bcc000000000000000100000000000000010000000000000020a80602202c5ebf9b0347c9106ef91bf2c358dd05edffa7aa90f9b9bd47fd10500000000000000001000000000000000000000000000000207f46e4b2eb51c53f78fb1f6b5310d84183eb4d3898e8ddf3b3eb940fc2ad8f4400000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c00000000000000000c0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020724ffd0f25aa4e243d2c307552ed37381703107372320593eb3a4d313b319f910000000000000001000000000000000100000000000000207632194eaa79882c73a99557dd547ccd6fd120c5b43667fce4768d60ee466a6d000000000000000100000000000000000000000000000020266533c386eaecf62505c82a33fc748ed3dfb0dd1f1c3b6ef1c350f30907840f000000000000000100000000000000000000000000000020a07353c5029eac2f5fb14b7aaa839b9ff2b01dd6feeb51c341820462ab766306000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000000c0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000202ac7747cd68e0e8f386445c4b73e691738da5997681898b63d8a1fdd2f7318d500000000000000010000000000000001000000000000002048f8483f7e54318f5880730aa74c25c4d947a419c1457363fa11f33292ddacb10000000000000001000000000000000000000000000000203e730a9762014a0bc462be90ae606e5d47c72eb18f70e7e52e6fdbf0e6f0ca51000000000000000100000000000000000000000000000020a45ee5473875579efd498bb9c2b6715752587f3d8b2592b454ecfaa7a4333af7000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000c00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000204ac156fe78cb66cc11b0523329bdc9822cfc7ef36d86d1a58cac556bedacedaf00000000000000010000000000000001000000000000002010b0493443555dc67ee87c1bd8063b9e36aa14d724f309f7e8809f3a39a534e30000000000000001000000000000000000000000000000200f6629916e8ea9140c1e5fe82516b014e06c6a7ffb9a27dbe8073629cf7bcfd300000000000000010000000000000000000000000000002017851b1e9a70cbcc32eb47f7ecfae668e5855348fa541f9cd9cc78455c2f52ed00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000c00000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde561200000000000000060000000000000001000000000000000100000000000000201376c8ebc60bc7ac345e110600c578a9251d294fde213df2b39d2d10af7b72ab0000000000000001000000000000000100000000000000202278c1169f697b84d00147af89a2646538a6511cffad2faa7b319e55d636471d000000000000000100000000000000000000000000000020366469e7d59d6bc640bafe4261eac135e7f403c7d83905ecb45477e3f080df680000000000000001000000000000000000000000000000202cc11ee53cada1579b266c3b3e900aa197ce5a4bde333a64f8a5d1e71e5ec9c6000000000000000100000000000000010000000000000020dd1c1802ff1109af90e7501197f83b1086afac936987a7b7b940c7eea1eafa7e000000000000000100000000000000010000000000000020ee96f610e3f62ac6a3af8b09bdf54bff9f61482a5b4905803e9446aa9acb86e0000000000000000c0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020547e4936c71929988cb4f1df9bc7e773529a27708006dacd48b89d487eac4d8b00000000000000010000000000000001000000000000002021bc05aef3a17c8a1d63eb499367fa51cd6c2c3b2716d1cd6b8c11c4a3b3722a0000000000000001000000000000000000000000000000204b3a8c95985e02c1091d8b74e359262a94d60b3baac08c1afc3d4c34b039a42b000000000000000100000000000000000000000000000020dd7d0f921f70b1c400e2053b21a89931a0d729e3164966f8cdf0a44bdd836801000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000350000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000207c94017f1fb6147ba3e921f88be16fe2b5cefa8f7a8b23bc85945becaf18382a000000000000000100000000000000010000000000000020c362cab2e6c4dc6ea82bb6f4ded48e2f8eb7e24ef0fa0baea7e88c5951f51ecf000000000000000100000000000000000000000000000020cacc7d788bbdb1c4d5dbf47f8afd9ed9b975d2203ba1769a80caa833f3fbb946000000000000000100000000000000010000000000000020f006cf8352bbf180ccb81999dec2d0377abf32ec1a119242758d07bf00181499000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000350000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000000000000000000203e110ccc27f78d2053b055f013cd3746e7bb8e9db6260646682e83a67cf2080f0000000000000001000000000000000100000000000000204f8481d122e0655a5260d7d5ac27ab8f58be0e674599e596783b978e063f1e4d00000000000000010000000000000000000000000000002073a7127e76a6c5c3b45234b5814ccbf96b9d757a279114bbd33a663bd26d006e0000000000000001000000000000000100000000000000208d5b321bbfd951f9cb7659d22f534c96ff102f4c76a497617e5abb9dfa82d388000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003500000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000205c174de57ccd50a28402e5fe1ac358f81a0f7ae683941bf6d81ef41e7caf2cef000000000000000100000000000000010000000000000020121197ec56ab41beb7a2f051161dd268ccd5ab29e7d0b6fef8b7e1c7c912753d000000000000000100000000000000000000000000000020f4ad74e02cc77efb94d4fc24ec0d3cf9f818ea30d8cf64bbb281e90b63c46a2e00000000000000010000000000000001000000000000002077140c9519235b46e9281299155f5f67e417ff114e7ade36dfc35a5d9cd2e2d700000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003500000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde561200000000000000060000000000000001000000000000000000000000000000202fa4ac550529035814628c9da6d34b854e2a5083328271a82f751f264dbf6c1400000000000000010000000000000001000000000000002067226b90193009f7118b9957cd1068f23619b6391626b22bf9e3e5fb65d6de0c000000000000000100000000000000000000000000000020d768ed1004f4f79b0247ea83ba442c3f53078cd77f5117de4e9c23b0093631e50000000000000001000000000000000100000000000000206e7dc7fda7866ca355c1f89e48853a86a9d9b363159deb6fb5ef53aeda9b1c2400000000000000010000000000000000000000000000002078cdee2ea5faba6663676c4f4610229cc5cd1c1c0cdc38f9b01331797fb30d310000000000000001000000000000000000000000000000202acbbe7e98cf5709c49c5060a40d850c367fa6b383f35b244367f148f5586f8e00000000000000350000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000000000000000000208bfdca08db4332963e4f3e7a1f79f20c4c20d76672a80052bd13acab15a38546000000000000000100000000000000010000000000000020423d33b2be9113539696ac1ed9a134a1d7a1b4932f513b45a8fe1547e6621966000000000000000100000000000000000000000000000020f8cfa931b1b7944fb737694c4d6fc033dc405917f38330a742d6f02d503c8a1b00000000000000010000000000000001000000000000002072bbfd71e002ce04de2fac87c41cdb38dc917d8c5386b1ebdd6e02865da280340000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c00000000000000001a0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000001000000000000002009cefee4d021530099af80f0676e54eff00d072d7fd616fcdb2288ae33ddb24800000000000000010000000000000000000000000000002025869b3bfc83d2ac9e22b0435bc7b9eecebd9af67bb1ab70c73af73bbfb82aaa00000000000000010000000000000001000000000000002041b447898ab19c91b1dbde93ea50c40354c2647926dd2df1d267edeeb4fa5b900000000000000001000000000000000000000000000000207a1424d413417eb28a018fd1d76958181366ee57c4d59ae0034a29ddbb1d2b590000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000001a0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020f3e9b72a0041d0c66a3e6f6625fc04c5539313c511cdd6a586989afac9a1b0af00000000000000010000000000000000000000000000002041147c76c450b91332ff9d973d13a33037d91aaaca22c1d66385e4ed40e50191000000000000000100000000000000010000000000000020376d244ad38898e5a2d4a5d1596faa89190bb6be0021523a316dc31147bdabe8000000000000000100000000000000000000000000000020938375cf40ac56222ab4d00edc1add4f0c4d45658ef352f9c39d534a9202dcf7000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001a00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000010000000000000020ee12792c269ee62c96fd33207133457b00d6b8b273d00b455a63626a68f21e1d00000000000000010000000000000000000000000000002042f268227dd51fd9f23092f150e7151ec9f12d0eaf3f3116352ac137f19736370000000000000001000000000000000100000000000000202b1f2b796b4b368a82c2fd19089c52aa941915742b1944326d6efc9a8bedb715000000000000000100000000000000000000000000000020a084e70b3f9ebf137fa0b89422463d8a968230d1e0fbcf139db6e018b78315170000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001a00000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde56120000000000000006000000000000000100000000000000010000000000000020b55d267cfca83131fe62aa2caa4c0f53b0956f986c71ac1ecba8812f52def2dc000000000000000100000000000000000000000000000020d0711370d762ff69055e61e27a89196d1938f24b806ff70c0bad0e85936448ca000000000000000100000000000000010000000000000020fc8359a37b14fb43c09c48b566d14f74e47c7a14a37d07ece74a19f83c2fb3d90000000000000001000000000000000000000000000000201b22228829ef8466b89319e35bebfd9d707cdce2b965fa152aa852ec7bc0550b00000000000000010000000000000000000000000000002074f8c3f402afa3e5ed1c04f3f0696f861280031f4aed0bc006b8cc598b663150000000000000000100000000000000010000000000000020ee96f610e3f62ac6a3af8b09bdf54bff9f61482a5b4905803e9446aa9acb86e0000000000000001a0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020d4660d76c35c4c72ab942a343819d591a48890954c928b6afccd50470030149600000000000000010000000000000000000000000000002041ef9ef075bee5105dc3e8a7900702252e6ad08065d22b9ab3ca5355dd98330a000000000000000100000000000000010000000000000020b669e28a8c8f93a11d50fc751d11cbd5c19eef7f4f73ab6849b9e5fb805ced8b0000000000000001000000000000000000000000000000205ef7704fa3778b449f726e5d0a98cf0942526fc336765751838fd6cbb761fb270000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb81659000000000000003c0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020273f7475a15fd0396c47b30cd7561abb6e08ae76b45a1e0e408916144079e75d000000000000000100000000000000010000000000000020fa95b871dc336a316326fbcb301108e4f714f2bd6e602d361ed24b034855b7490000000000000001000000000000000000000000000000206d638b48c620681d9ca1f3ca0b9269a4c587a473d6a7f7a9b87cd38c6b341a88000000000000000100000000000000000000000000000020228ad46578c60a8ae293c5203eb65e05045bb3651cc7f9dca5fdd52a9c021f9f000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c7000000000000003c0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e000000000000000600000000000000010000000000000001000000000000002036962f5977ea5541488032e1cce4f44180c5480829010190ba9ae66a9ca2cd2d000000000000000100000000000000010000000000000020be85ed65a5a68087be9d2be76ba091a1b670d33ace117026a041765c69a90fda00000000000000010000000000000000000000000000002066f2ddc800c59423dc3e6cb06ec895471d3ffafc6e3140cc34d397e66f29e633000000000000000100000000000000000000000000000020d3fe0ac3f0592a168395476738f2d379d0581dd02807271399e479432d094ace000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003c00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000205a2fe717ccd1a37afc920d1f76fdde9b00b03821e87637dbc7ab2e32c4eb78da00000000000000010000000000000001000000000000002008aa7b0ca169d528158edb0c24743f0b68eacab6edcaa15ac970d1c5072772c3000000000000000100000000000000000000000000000020a72b7e194afd50ecaf1e33d2066f71486bac78d487b7fa0426a92e4a9ea310c9000000000000000100000000000000000000000000000020762aa6b8eaa622a60e5d82075304926867e1bfd72e6c9bc93d7ed5c083f0de9d00000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003c00000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde5612000000000000000600000000000000010000000000000001000000000000002033adac059474496d2f133c020b27a85a28c5b0ca697ba8f2839ec080abed8abf000000000000000100000000000000010000000000000020a433453c38c702abb120c533f3465b6a6b7e1db6d13e7092fc619f5c3419a92d000000000000000100000000000000000000000000000020a0b752832853381428dd39d3c505f530ad3b788eb8fb6bfbbd02830255826a670000000000000001000000000000000000000000000000204c0b855bed07188b0ec696adf334ba750b253be49e0d11744e67c1884683e5e500000000000000010000000000000000000000000000002078cdee2ea5faba6663676c4f4610229cc5cd1c1c0cdc38f9b01331797fb30d310000000000000001000000000000000000000000000000202acbbe7e98cf5709c49c5060a40d850c367fa6b383f35b244367f148f5586f8e000000000000003c0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000205b792c7369f97b8891deb0e8d0dbf32280fd9125a35c3bf0b3c02cb3b6090b630000000000000001000000000000000100000000000000200b795fddac1038a433c2c495ff393bde6b796f79e6ab17e827c1139be158bd2f000000000000000100000000000000000000000000000020a85d79547366d8e08f2cd889f73768075efa9a82bdcfd8eca2a0d03ec1c600af000000000000000100000000000000000000000000000020e275f0cac8a965b7c2d52bccf2fc2a08ba897eccce8ac56d94090bd934b9477a0000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000240000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020c24fc0a3e994aa4053143723d1ff953730e09d80308264f57f5e25286c7dcad00000000000000001000000000000000100000000000000204f58496d9785dbfafadd8f41e3167831200b5d8065731cf35b12e0f683eb6aba0000000000000001000000000000000000000000000000204cb7b4fa816710180675ddbc955531f8a709d427faf5200cdc6737874e060a55000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000240000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020a92607495561c9eeccd26d9cc9dfab304f5bdec362795340e1d8d93b162ff7f5000000000000000100000000000000010000000000000020056c9a4c4349cd5028c19714d82d2521d603233c99689f9551773f4c5a1bb87400000000000000010000000000000000000000000000002037a9c624bdb25b1ee261b13411e9d6acc0d0e8c738496cff14dc43abe65c9d1f000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002400000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000204be0b5c554d14ed3ecb1a4698c54f322ec73fcaf89c1a0d0f2287a93c2b4d62b0000000000000001000000000000000100000000000000203decfa57715a83c44aa9af101d28b91339338f8855c0070ab1a2c91f7f429ec30000000000000001000000000000000000000000000000205d6c3e37441823be85bdf046e1379fc5587812c68dc08d8750f2f6bd76bf08a100000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002400000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde561200000000000000060000000000000001000000000000000100000000000000200370955e846619f8053e6518604dd4a3a3876d31542c70a179b9e62113e70de20000000000000001000000000000000100000000000000203b43d69496b15a1de8d88791e245f0f4c9ce3d08e47827d61f0ae96ed0fb8464000000000000000100000000000000000000000000000020a3d9e1ced1896a9083f68bbabe3bb9574542b5eb5d38128a466f4b97c8a833410000000000000001000000000000000100000000000000207794a6e7ab3a2607315a56d8ffe8999f9427ce2f2490356c082fa61238b586300000000000000001000000000000000100000000000000208b43e56d7018073c7ddbdcbb43e6f2b6fe723633f9f0413f2816154d995f9df50000000000000001000000000000000000000000000000202acbbe7e98cf5709c49c5060a40d850c367fa6b383f35b244367f148f5586f8e00000000000000240000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000201dd42fc16aa12a31fa90168725c897d861f7e36b8c27441380a55b1025146bcc000000000000000100000000000000010000000000000020a80602202c5ebf9b0347c9106ef91bf2c358dd05edffa7aa90f9b9bd47fd10500000000000000001000000000000000000000000000000207f46e4b2eb51c53f78fb1f6b5310d84183eb4d3898e8ddf3b3eb940fc2ad8f4400000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c00000000000000001a0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000001000000000000002009cefee4d021530099af80f0676e54eff00d072d7fd616fcdb2288ae33ddb24800000000000000010000000000000000000000000000002025869b3bfc83d2ac9e22b0435bc7b9eecebd9af67bb1ab70c73af73bbfb82aaa00000000000000010000000000000001000000000000002041b447898ab19c91b1dbde93ea50c40354c2647926dd2df1d267edeeb4fa5b900000000000000001000000000000000000000000000000207a1424d413417eb28a018fd1d76958181366ee57c4d59ae0034a29ddbb1d2b590000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000001a0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020f3e9b72a0041d0c66a3e6f6625fc04c5539313c511cdd6a586989afac9a1b0af00000000000000010000000000000000000000000000002041147c76c450b91332ff9d973d13a33037d91aaaca22c1d66385e4ed40e50191000000000000000100000000000000010000000000000020376d244ad38898e5a2d4a5d1596faa89190bb6be0021523a316dc31147bdabe8000000000000000100000000000000000000000000000020938375cf40ac56222ab4d00edc1add4f0c4d45658ef352f9c39d534a9202dcf7000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001a00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000010000000000000020ee12792c269ee62c96fd33207133457b00d6b8b273d00b455a63626a68f21e1d00000000000000010000000000000000000000000000002042f268227dd51fd9f23092f150e7151ec9f12d0eaf3f3116352ac137f19736370000000000000001000000000000000100000000000000202b1f2b796b4b368a82c2fd19089c52aa941915742b1944326d6efc9a8bedb715000000000000000100000000000000000000000000000020a084e70b3f9ebf137fa0b89422463d8a968230d1e0fbcf139db6e018b78315170000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001a00000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde56120000000000000006000000000000000100000000000000010000000000000020b55d267cfca83131fe62aa2caa4c0f53b0956f986c71ac1ecba8812f52def2dc000000000000000100000000000000000000000000000020d0711370d762ff69055e61e27a89196d1938f24b806ff70c0bad0e85936448ca000000000000000100000000000000010000000000000020fc8359a37b14fb43c09c48b566d14f74e47c7a14a37d07ece74a19f83c2fb3d90000000000000001000000000000000000000000000000201b22228829ef8466b89319e35bebfd9d707cdce2b965fa152aa852ec7bc0550b00000000000000010000000000000000000000000000002074f8c3f402afa3e5ed1c04f3f0696f861280031f4aed0bc006b8cc598b663150000000000000000100000000000000010000000000000020ee96f610e3f62ac6a3af8b09bdf54bff9f61482a5b4905803e9446aa9acb86e0000000000000001a0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020d4660d76c35c4c72ab942a343819d591a48890954c928b6afccd50470030149600000000000000010000000000000000000000000000002041ef9ef075bee5105dc3e8a7900702252e6ad08065d22b9ab3ca5355dd98330a000000000000000100000000000000010000000000000020b669e28a8c8f93a11d50fc751d11cbd5c19eef7f4f73ab6849b9e5fb805ced8b0000000000000001000000000000000000000000000000205ef7704fa3778b449f726e5d0a98cf0942526fc336765751838fd6cbb761fb270000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000020000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000100000000000000204c4213b8ed6ea438e76fb7a3f0ddfebfefa23ab51e70c6c91df1ad3848bb66df000000000000000100000000000000000000000000000020bc0e1e4d069a85667d831c6131bf23b47a10f808276f2d639351a2b29c6601f100000000000000010000000000000001000000000000002049b18f4c7c36a3e31f7aea5854ff3a4295357e9b4683efeb0cc263602c4cd838000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000020000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000200e21bfcc5f0a260057485e5692c12e5a0fbaaa2135ceb2978d8b4a7e338a0a5b000000000000000100000000000000000000000000000020dd758e7e903cea5d2b8d56cb7ec81903a5d208516bc65446aaab10a4c88881f6000000000000000100000000000000010000000000000020c8ae564fce614307d01ae4e7ca514b4d438c025236d2f7c225df0916122c407a000000000000000100000000000000010000000000000020a5ba1e43e43faaed55a5a360b6818e780f5c7442a5977ec37c50292584a00e03000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000200000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000206b5e3dab572cbb0a42ab168e22bc95bd8355ba8b9677f3eb46a5b40933009120000000000000000100000000000000000000000000000020e921a3304310ce0c4ea3ff193bc2b8d3e37939557d88c4c9d8d9aa74dade5fce0000000000000001000000000000000100000000000000202d7e532bdad475f87cde4c2f0d86dfd080e22978cd3c4c8658c88cec2b0257b1000000000000000100000000000000010000000000000020dc0369b2684d24cbf4274ce023a89e3478b29bfaee34efd0a4da1dc660ba45de00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000200000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde56120000000000000006000000000000000100000000000000010000000000000020284c5ff80fb9809a8df3fcb0151023fd481b626d8191c2faf3cfde0c2b7cd375000000000000000100000000000000000000000000000020b744282bcca0328fe4d2e9489a2c025b97f14330407434a34cb1a2c08a12db6700000000000000010000000000000001000000000000002022908e8aa5e7ee0ba596d402b9b3acde0a7b078dd75472fcee67d43eac809840000000000000000100000000000000010000000000000020c688afd14b4c37a8a8e28ec89af67123a3f9061af3bde671dc85b8ea75d9c04d000000000000000100000000000000010000000000000020dd1c1802ff1109af90e7501197f83b1086afac936987a7b7b940c7eea1eafa7e000000000000000100000000000000010000000000000020ee96f610e3f62ac6a3af8b09bdf54bff9f61482a5b4905803e9446aa9acb86e000000000000000020000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000203c541654bc7b4627cfdb4febfef2e5c2d1ed3307ff77376b78ab5b907fb199a6000000000000000100000000000000000000000000000020898c87da14d35ffd206c40c659830a17aafcb7a087947604f6abe545e28b58840000000000000001000000000000000100000000000000206ba2588cc21b5cda24b2aa86f1ea326163ccc1d7e3f79cd11177546b0f9520e80000000000000001000000000000000100000000000000205a4b48d2d5c0deec9a967d4659defb7f8c12de581186bfae2c710f30835d378c000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000050000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020df632d8f7473aa2a266c94e0516913189d640957a4f03bdfca986886fba478de000000000000000100000000000000010000000000000020358c6702aa7ce3c8bdcd46a395295b533449972ac93e65796c809d3843af3e0a0000000000000001000000000000000000000000000000205653a7aef6c658c2fe00a9e102931ec0732cfb210b3c0f9786685131d83170b8000000000000000100000000000000010000000000000020a901868ca86673679ffebd60291109f11d3ce9b29c0651f0236ea581bf3b3e75000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000050000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000000000000000000208b5e31b3b9693fd99f4af22f146c47a96be5f96f6e2d1de7723eb81b05ab4517000000000000000100000000000000010000000000000020d8a894c95f18b89fc6b1966cca0468fb346cb33bd7ed5949846cd49fadfb28c5000000000000000100000000000000000000000000000020dbb74f6060a2f8daea889924e7610165d94588183449ef4022cf18b3bdaaf8d4000000000000000100000000000000010000000000000020a5ba1e43e43faaed55a5a360b6818e780f5c7442a5977ec37c50292584a00e03000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000500000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020a56fecf58a1a4c072cb8cf67dd9e508770f735536f8cd2a7c1e1ef73333f32730000000000000001000000000000000100000000000000203d0c857c0178a4e206fc089efb3766ddb437e7a682bbeb9802198aa092a8cc08000000000000000100000000000000000000000000000020c358e6ecb6ab0ba0349b872be0aacb00d8660c507286f1680572dd7de7bbdb46000000000000000100000000000000010000000000000020dc0369b2684d24cbf4274ce023a89e3478b29bfaee34efd0a4da1dc660ba45de00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000500000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde5612000000000000000600000000000000010000000000000000000000000000002096f094a6602bd56e3fdd7454ff1de6f239ff9ba2160ed7e7dbd581c07e7298b3000000000000000100000000000000010000000000000020abfab965e1bf6cc3bfa115844249f4e149ced0f88305f6e235d5b0b6f7398198000000000000000100000000000000000000000000000020c62d3f9397d25d4182cc5fa403188738101f5716278eb7fc0fc099f997828801000000000000000100000000000000010000000000000020c688afd14b4c37a8a8e28ec89af67123a3f9061af3bde671dc85b8ea75d9c04d000000000000000100000000000000010000000000000020dd1c1802ff1109af90e7501197f83b1086afac936987a7b7b940c7eea1eafa7e000000000000000100000000000000010000000000000020ee96f610e3f62ac6a3af8b09bdf54bff9f61482a5b4905803e9446aa9acb86e000000000000000050000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020686d0a06f4ae390f0f7c009a298fc5272f1d751bfc23c567191f5f4bf85d9d6f0000000000000001000000000000000100000000000000202ed66359469b6c278e6162debbe51b6122cbf7aa0d285a925131c0f1651813ad000000000000000100000000000000000000000000000020dea113f87fef53166cf17cc40d78ddf07d9d08926378c792877f7ff4d200a8ed0000000000000001000000000000000100000000000000205a4b48d2d5c0deec9a967d4659defb7f8c12de581186bfae2c710f30835d378c000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000230000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000000000000000000002024f3af1b1647bb312c015a48502bdcba582529e56718776c1cf05694f83b3cf10000000000000001000000000000000000000000000000204b06bb483c21112f9cdd7eff56256a5630233353d836a5d668685bfdc6a4041e000000000000000100000000000000010000000000000020d80cc5cdbb0ec297cddfda4fd988de76b705f83576117fb5ed10b48a9b959bb0000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000230000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e000000000000000600000000000000010000000000000000000000000000002026d903d0be54bf22c5189d1118bd93f6a98c383d8d88d66724bfe911e82b2b74000000000000000100000000000000000000000000000020393cccd066625747c7bb15e378554916665b267344c9bf3a1f1e239b4d3166fc00000000000000010000000000000001000000000000002072ecff12c730f10ff239ae5d5ec6e0ecd7a93d7c6f58e48faaf9efc69af68a03000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002300000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020315f848ff4d7d38fb384ae430ef99536792647667ccb2454dc022ec7a768aaf4000000000000000100000000000000000000000000000020d2096ab2fdbc4ed9fcb3f176b5554a872f0e907766b3c2d7a358a3e01f8fde260000000000000001000000000000000100000000000000209636be1e4b8abd68cb43b0274502fefa81dd44893b457dcd361701b81c119a5b00000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002300000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde56120000000000000006000000000000000100000000000000000000000000000020afe781427da25b2656f4afe658d7b09fdf74224657f244abf61f9cdedf9390a0000000000000000100000000000000000000000000000020fc18f1981d845ff496938d740e8859186fa60708758e2c4966cc30321ee5af9700000000000000010000000000000001000000000000002034d606e528ae97ba399a8765a39ca8182a9abb6191e6065fb37a87dffc92f9880000000000000001000000000000000100000000000000207794a6e7ab3a2607315a56d8ffe8999f9427ce2f2490356c082fa61238b586300000000000000001000000000000000100000000000000208b43e56d7018073c7ddbdcbb43e6f2b6fe723633f9f0413f2816154d995f9df50000000000000001000000000000000000000000000000202acbbe7e98cf5709c49c5060a40d850c367fa6b383f35b244367f148f5586f8e00000000000000230000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000000000000000000209622e98ec4df3449c67d9e48114f130f446fae93b72f4bf53789536c86b6d631000000000000000100000000000000000000000000000020a58adfd2e024e06c922fbd6f0c6e29c0aa467b652272a9cd35196719e496cfd60000000000000001000000000000000100000000000000200df38a45fc387ce7388d7edbd245b965091614cd5a7aa1118bcbb22942e4bb9300000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000390000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020f5f51df4455ffd83739dfaccef923a70df7a7cf5ea75b0be8ac453ab1ea59cd8000000000000000100000000000000010000000000000020314e9a848ea1d25911258d74b19f092dd444faf4da08b8c00a4f09adb9d4c623000000000000000100000000000000010000000000000020f8aa5e6a5b89d4a39d02bfe4f6c3c38deda3ec6df5ade3707863ea2453f03b73000000000000000100000000000000000000000000000020228ad46578c60a8ae293c5203eb65e05045bb3651cc7f9dca5fdd52a9c021f9f000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000390000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020c0be60ecb9302afcaf7e0974c2439749f493468a83262da26a96f1cc4c55cc73000000000000000100000000000000010000000000000020d409436a38cce955294f3fbb27f4d65e7100e98f4d77022a741a6e99195a3afd0000000000000001000000000000000100000000000000206d13fd38b84ca4e30cf7ae1f472014bbebd3d7449bae674ad6a36fae582015a8000000000000000100000000000000000000000000000020d3fe0ac3f0592a168395476738f2d379d0581dd02807271399e479432d094ace000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003900000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000205ac05e975b42062c31f9ed21b3fe8a6ddc0b04176c23fbf2924ac02c9a0be9e70000000000000001000000000000000100000000000000206140589f65135d68e263ae292fc0c763647ece71ba96e1bb1950b05093e479eb000000000000000100000000000000010000000000000020b6e03aa8283e3b21b7e5347673309cfecce4aa3d8d546f0c5e5fbac4333ddb46000000000000000100000000000000000000000000000020762aa6b8eaa622a60e5d82075304926867e1bfd72e6c9bc93d7ed5c083f0de9d00000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003900000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde56120000000000000006000000000000000100000000000000000000000000000020e35931219220590a59bcee5876c03a6d196dcd2db916ac8849d2a47e2a944d28000000000000000100000000000000010000000000000020b051864d1fbbff3990891ab949959bd602b0a56a571c9cc3731d5e6835b3e8fc000000000000000100000000000000010000000000000020e043ae0a6c793f91b6358e54bb8a4503bac61afdc008fbd23a04dea0c72211de0000000000000001000000000000000000000000000000204c0b855bed07188b0ec696adf334ba750b253be49e0d11744e67c1884683e5e500000000000000010000000000000000000000000000002078cdee2ea5faba6663676c4f4610229cc5cd1c1c0cdc38f9b01331797fb30d310000000000000001000000000000000000000000000000202acbbe7e98cf5709c49c5060a40d850c367fa6b383f35b244367f148f5586f8e00000000000000390000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020741795e4cfecca0b0fcd745a3aa59aa1b3c46d8f74bb8a06128fbf82dc802df80000000000000001000000000000000100000000000000204759d348b50c669646f5f52d2f8caba0a0a3c3f6941e016904bddc6b141451910000000000000001000000000000000100000000000000200e45b6073a5229fe074383c2f531128eda5ffeefe8fde89eb48d7aa45a77a0f5000000000000000100000000000000000000000000000020e275f0cac8a965b7c2d52bccf2fc2a08ba897eccce8ac56d94090bd934b9477a0000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000200000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000001000000000000002099c439552bc012b331f78711afcc02ab45f65be8ef9aef37b56c34fe5ec62561000000000000000100000000000000010000000000000020d3a8480b820bd6c782f5a7d8bc820d929996e9b8ab64d37789aa88140ba71654000000000000000100000000000000010000000000000020d80cc5cdbb0ec297cddfda4fd988de76b705f83576117fb5ed10b48a9b959bb0000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000200000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020c5aada7333905262bd985fbc023814f24628710fde74d7d1291fa54ca5cb94ba0000000000000001000000000000000100000000000000200c04f15905ef31c5e7f95badee6ef48214fcec9a48dff3643ba924349c73daaf00000000000000010000000000000001000000000000002072ecff12c730f10ff239ae5d5ec6e0ecd7a93d7c6f58e48faaf9efc69af68a03000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002000000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000201b07870ebb742c3884ed4ecbc4e8996b04e58ac19af265c1cfa8cb933bcc8d7f000000000000000100000000000000010000000000000020730dfd755e8bc4f3764cb6605b45ef36f2bf687e9a26d67efca88040d92455b70000000000000001000000000000000100000000000000209636be1e4b8abd68cb43b0274502fefa81dd44893b457dcd361701b81c119a5b00000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002000000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde561200000000000000060000000000000001000000000000000100000000000000209ea210402882794759c806907eb44d870d40a8cbf48f31d67ffc256650b6880b000000000000000100000000000000010000000000000020433d109a852edefe2a2d84010186cc783e15b0643ca68c917b680ea949a633e400000000000000010000000000000001000000000000002034d606e528ae97ba399a8765a39ca8182a9abb6191e6065fb37a87dffc92f9880000000000000001000000000000000100000000000000207794a6e7ab3a2607315a56d8ffe8999f9427ce2f2490356c082fa61238b586300000000000000001000000000000000100000000000000208b43e56d7018073c7ddbdcbb43e6f2b6fe723633f9f0413f2816154d995f9df50000000000000001000000000000000000000000000000202acbbe7e98cf5709c49c5060a40d850c367fa6b383f35b244367f148f5586f8e00000000000000200000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020f51957a1ed7316fb19166bc621acef4f5f5368cd4eb556d050dbd81c88fa917b00000000000000010000000000000001000000000000002053d45841276f047a813d87d7cc211dcf1d7057a623db3785c133608ed6d4499b0000000000000001000000000000000100000000000000200df38a45fc387ce7388d7edbd245b965091614cd5a7aa1118bcbb22942e4bb9300000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c00000000000000001c0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020dc473fbc2982536b3551210ff22dbfb86908bbdebdf4f9fcee59b94ae742f3e7000000000000000100000000000000010000000000000020f09e0551c369e8794e51f609fb64bc262c407f13317ebef64c17a4fb128e2b29000000000000000100000000000000000000000000000020cd05d024922075f0d2191dff6b6b8977913542096c687b1aa6a6880a30f4f1780000000000000001000000000000000000000000000000207a1424d413417eb28a018fd1d76958181366ee57c4d59ae0034a29ddbb1d2b590000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000001c0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020e326c18eb9bc5c22eeb0104ad67db5825445f27758a763e7a15c98afa3c60ee90000000000000001000000000000000100000000000000206f5361d60e69e71d110471fa559e5f9e4f0cacff5c4d21eefb041e57495d1c6b000000000000000100000000000000000000000000000020e216681d6f38da8409d5c77334f0f51de756720aaa028880c59d6a832095ad4f000000000000000100000000000000000000000000000020938375cf40ac56222ab4d00edc1add4f0c4d45658ef352f9c39d534a9202dcf7000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001c00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000010000000000000020b78c2786fd393a8a189ea69596d8d08620268eb4bee8ba8309a80def966a7437000000000000000100000000000000010000000000000020a3471994e86c3ff9f0b757f440b5ded70f1e167a40e6eff28a571f2a79e14df600000000000000010000000000000000000000000000002053b3233efca5252e2055e75028fefee3391d25eb106840c102b53e90d3d1fdf6000000000000000100000000000000000000000000000020a084e70b3f9ebf137fa0b89422463d8a968230d1e0fbcf139db6e018b78315170000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001c00000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde56120000000000000006000000000000000100000000000000010000000000000020cf4b99e5ddb7e9be43b53fd47fd6465b0b294da885c48f18999f18c508f50a63000000000000000100000000000000010000000000000020c39555378222a23b74a8ea5f1a947f7767b6678dc4c45b8391294e15f7096fa3000000000000000100000000000000000000000000000020c250999b34e17251431e337195cc0230ba7e98bff5e62a85f6fafeafe15fba4b0000000000000001000000000000000000000000000000201b22228829ef8466b89319e35bebfd9d707cdce2b965fa152aa852ec7bc0550b00000000000000010000000000000000000000000000002074f8c3f402afa3e5ed1c04f3f0696f861280031f4aed0bc006b8cc598b663150000000000000000100000000000000010000000000000020ee96f610e3f62ac6a3af8b09bdf54bff9f61482a5b4905803e9446aa9acb86e0000000000000001c0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020b2669c955a48dabaf2c213befede7e967ab990f1c9b03bd7a65450003d408508000000000000000100000000000000010000000000000020fb06fb7152ac1f9d2222ce222624aa555ffa17371dfad3a80a1bf178befe1e6b0000000000000001000000000000000000000000000000207fe3562c7d01ca88eef4c66c817964ae9239a6df889ab475368bf430de96cdb20000000000000001000000000000000000000000000000205ef7704fa3778b449f726e5d0a98cf0942526fc336765751838fd6cbb761fb270000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000200000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000001000000000000002099c439552bc012b331f78711afcc02ab45f65be8ef9aef37b56c34fe5ec62561000000000000000100000000000000010000000000000020d3a8480b820bd6c782f5a7d8bc820d929996e9b8ab64d37789aa88140ba71654000000000000000100000000000000010000000000000020d80cc5cdbb0ec297cddfda4fd988de76b705f83576117fb5ed10b48a9b959bb0000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000200000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020c5aada7333905262bd985fbc023814f24628710fde74d7d1291fa54ca5cb94ba0000000000000001000000000000000100000000000000200c04f15905ef31c5e7f95badee6ef48214fcec9a48dff3643ba924349c73daaf00000000000000010000000000000001000000000000002072ecff12c730f10ff239ae5d5ec6e0ecd7a93d7c6f58e48faaf9efc69af68a03000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002000000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000201b07870ebb742c3884ed4ecbc4e8996b04e58ac19af265c1cfa8cb933bcc8d7f000000000000000100000000000000010000000000000020730dfd755e8bc4f3764cb6605b45ef36f2bf687e9a26d67efca88040d92455b70000000000000001000000000000000100000000000000209636be1e4b8abd68cb43b0274502fefa81dd44893b457dcd361701b81c119a5b00000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002000000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde561200000000000000060000000000000001000000000000000100000000000000209ea210402882794759c806907eb44d870d40a8cbf48f31d67ffc256650b6880b000000000000000100000000000000010000000000000020433d109a852edefe2a2d84010186cc783e15b0643ca68c917b680ea949a633e400000000000000010000000000000001000000000000002034d606e528ae97ba399a8765a39ca8182a9abb6191e6065fb37a87dffc92f9880000000000000001000000000000000100000000000000207794a6e7ab3a2607315a56d8ffe8999f9427ce2f2490356c082fa61238b586300000000000000001000000000000000100000000000000208b43e56d7018073c7ddbdcbb43e6f2b6fe723633f9f0413f2816154d995f9df50000000000000001000000000000000000000000000000202acbbe7e98cf5709c49c5060a40d850c367fa6b383f35b244367f148f5586f8e00000000000000200000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020f51957a1ed7316fb19166bc621acef4f5f5368cd4eb556d050dbd81c88fa917b00000000000000010000000000000001000000000000002053d45841276f047a813d87d7cc211dcf1d7057a623db3785c133608ed6d4499b0000000000000001000000000000000100000000000000200df38a45fc387ce7388d7edbd245b965091614cd5a7aa1118bcbb22942e4bb9300000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000390000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020f5f51df4455ffd83739dfaccef923a70df7a7cf5ea75b0be8ac453ab1ea59cd8000000000000000100000000000000010000000000000020314e9a848ea1d25911258d74b19f092dd444faf4da08b8c00a4f09adb9d4c623000000000000000100000000000000010000000000000020f8aa5e6a5b89d4a39d02bfe4f6c3c38deda3ec6df5ade3707863ea2453f03b73000000000000000100000000000000000000000000000020228ad46578c60a8ae293c5203eb65e05045bb3651cc7f9dca5fdd52a9c021f9f000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000390000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020c0be60ecb9302afcaf7e0974c2439749f493468a83262da26a96f1cc4c55cc73000000000000000100000000000000010000000000000020d409436a38cce955294f3fbb27f4d65e7100e98f4d77022a741a6e99195a3afd0000000000000001000000000000000100000000000000206d13fd38b84ca4e30cf7ae1f472014bbebd3d7449bae674ad6a36fae582015a8000000000000000100000000000000000000000000000020d3fe0ac3f0592a168395476738f2d379d0581dd02807271399e479432d094ace000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003900000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000205ac05e975b42062c31f9ed21b3fe8a6ddc0b04176c23fbf2924ac02c9a0be9e70000000000000001000000000000000100000000000000206140589f65135d68e263ae292fc0c763647ece71ba96e1bb1950b05093e479eb000000000000000100000000000000010000000000000020b6e03aa8283e3b21b7e5347673309cfecce4aa3d8d546f0c5e5fbac4333ddb46000000000000000100000000000000000000000000000020762aa6b8eaa622a60e5d82075304926867e1bfd72e6c9bc93d7ed5c083f0de9d00000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003900000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde56120000000000000006000000000000000100000000000000000000000000000020e35931219220590a59bcee5876c03a6d196dcd2db916ac8849d2a47e2a944d28000000000000000100000000000000010000000000000020b051864d1fbbff3990891ab949959bd602b0a56a571c9cc3731d5e6835b3e8fc000000000000000100000000000000010000000000000020e043ae0a6c793f91b6358e54bb8a4503bac61afdc008fbd23a04dea0c72211de0000000000000001000000000000000000000000000000204c0b855bed07188b0ec696adf334ba750b253be49e0d11744e67c1884683e5e500000000000000010000000000000000000000000000002078cdee2ea5faba6663676c4f4610229cc5cd1c1c0cdc38f9b01331797fb30d310000000000000001000000000000000000000000000000202acbbe7e98cf5709c49c5060a40d850c367fa6b383f35b244367f148f5586f8e00000000000000390000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020741795e4cfecca0b0fcd745a3aa59aa1b3c46d8f74bb8a06128fbf82dc802df80000000000000001000000000000000100000000000000204759d348b50c669646f5f52d2f8caba0a0a3c3f6941e016904bddc6b141451910000000000000001000000000000000100000000000000200e45b6073a5229fe074383c2f531128eda5ffeefe8fde89eb48d7aa45a77a0f5000000000000000100000000000000000000000000000020e275f0cac8a965b7c2d52bccf2fc2a08ba897eccce8ac56d94090bd934b9477a0000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c00000000000000001d0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020c4ad1c6b77c38ccc45ff77c9a8d5af9c4401f987cecb2e061e9eddea1ae5abbc000000000000000100000000000000010000000000000020f09e0551c369e8794e51f609fb64bc262c407f13317ebef64c17a4fb128e2b29000000000000000100000000000000000000000000000020cd05d024922075f0d2191dff6b6b8977913542096c687b1aa6a6880a30f4f1780000000000000001000000000000000000000000000000207a1424d413417eb28a018fd1d76958181366ee57c4d59ae0034a29ddbb1d2b590000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000001d0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020e11de5b7f53111e778a56c72b01943849250cec0287b81018024c2d4c11d4d440000000000000001000000000000000100000000000000206f5361d60e69e71d110471fa559e5f9e4f0cacff5c4d21eefb041e57495d1c6b000000000000000100000000000000000000000000000020e216681d6f38da8409d5c77334f0f51de756720aaa028880c59d6a832095ad4f000000000000000100000000000000000000000000000020938375cf40ac56222ab4d00edc1add4f0c4d45658ef352f9c39d534a9202dcf7000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001d00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020a6362c89f99c1de735f87b87b4c2e91fef646162673c89f7a019ece7064a1425000000000000000100000000000000010000000000000020a3471994e86c3ff9f0b757f440b5ded70f1e167a40e6eff28a571f2a79e14df600000000000000010000000000000000000000000000002053b3233efca5252e2055e75028fefee3391d25eb106840c102b53e90d3d1fdf6000000000000000100000000000000000000000000000020a084e70b3f9ebf137fa0b89422463d8a968230d1e0fbcf139db6e018b78315170000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001d00000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde56120000000000000006000000000000000100000000000000000000000000000020c76cc230b8a042e130db9b9fe0260fab0f7020e16834b7373421ba7d43ef8565000000000000000100000000000000010000000000000020c39555378222a23b74a8ea5f1a947f7767b6678dc4c45b8391294e15f7096fa3000000000000000100000000000000000000000000000020c250999b34e17251431e337195cc0230ba7e98bff5e62a85f6fafeafe15fba4b0000000000000001000000000000000000000000000000201b22228829ef8466b89319e35bebfd9d707cdce2b965fa152aa852ec7bc0550b00000000000000010000000000000000000000000000002074f8c3f402afa3e5ed1c04f3f0696f861280031f4aed0bc006b8cc598b663150000000000000000100000000000000010000000000000020ee96f610e3f62ac6a3af8b09bdf54bff9f61482a5b4905803e9446aa9acb86e0000000000000001d0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020892a40df077de4ee7e7cf311374ce4464f3aeab8b2258871c3d163b037953e5a000000000000000100000000000000010000000000000020fb06fb7152ac1f9d2222ce222624aa555ffa17371dfad3a80a1bf178befe1e6b0000000000000001000000000000000000000000000000207fe3562c7d01ca88eef4c66c817964ae9239a6df889ab475368bf430de96cdb20000000000000001000000000000000000000000000000205ef7704fa3778b449f726e5d0a98cf0942526fc336765751838fd6cbb761fb270000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000090000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000208e04b4c723612b4d1e333accc4e24a04d69c173578faf07c8d2b973c0be9fb4100000000000000010000000000000001000000000000002014aa8e29f77d6a5fb881904df608256632c6604fbfb5192158e0932c0baf514500000000000000010000000000000001000000000000002093c99af014a3514bdcc84cdf0e72d42f20038a64dcba4071efdcce4cf6a76949000000000000000100000000000000000000000000000020a07353c5029eac2f5fb14b7aaa839b9ff2b01dd6feeb51c341820462ab766306000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000090000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000000000000000000201e1426bc22e09b48e2f3902ae15397de929e0b50905519518b2ffd6ff87b0f8d000000000000000100000000000000010000000000000020ff5c9eed6e4075d1dc3dad1312c9f0e4bcc23270345f8eea8c11a5b3619b24aa000000000000000100000000000000010000000000000020e23783733f2d245e0738ed8503ab8c6aef3aa526888e6b8dc670bfe0e224b8ff000000000000000100000000000000000000000000000020a45ee5473875579efd498bb9c2b6715752587f3d8b2592b454ecfaa7a4333af7000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000900000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb626512000000000000000600000000000000010000000000000000000000000000002009e66b718cc1244864884c2e809453b63f5bdb1357b3b4cc341fe71f437dca2e00000000000000010000000000000001000000000000002025a5c0035306c82abd392465404dd2a5af6ad78f6c662e811fb28ddd99a85857000000000000000100000000000000010000000000000020f0fde6ec22a87dce3563e4a3872da6fb65e744b1d395bcb2f83911d9ac21f1af00000000000000010000000000000000000000000000002017851b1e9a70cbcc32eb47f7ecfae668e5855348fa541f9cd9cc78455c2f52ed00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000900000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde561200000000000000060000000000000001000000000000000000000000000000200c84c33aa3ce019e2e9d8903cf8b2964b89fc01e164b954befc76a705e3620f100000000000000010000000000000001000000000000002043cf5ab0e85678ac1f5e9bc7f073456a624fb85b0ed8a97a19debe99aee3ef3b0000000000000001000000000000000100000000000000204f1d90aecc22386cf8bd2d60c6a2d6d6c43c1918619306fffdbd5f5dfb68cd920000000000000001000000000000000000000000000000202cc11ee53cada1579b266c3b3e900aa197ce5a4bde333a64f8a5d1e71e5ec9c6000000000000000100000000000000010000000000000020dd1c1802ff1109af90e7501197f83b1086afac936987a7b7b940c7eea1eafa7e000000000000000100000000000000010000000000000020ee96f610e3f62ac6a3af8b09bdf54bff9f61482a5b4905803e9446aa9acb86e000000000000000090000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020e6608d6b21e9b4d6fdacc91ba204748c8cdadde68638156e633ef52ca68d58a6000000000000000100000000000000010000000000000020f9459a5f7f85273cda341000cf6866270e90827995d041cbba1ac42de920723c00000000000000010000000000000001000000000000002045bb9d506f74a19123d41a442d1de0fdfbaca183dfb2af0cc5027621a991b2b2000000000000000100000000000000000000000000000020dd7d0f921f70b1c400e2053b21a89931a0d729e3164966f8cdf0a44bdd836801000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000190000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020f878c3196a2404bcd842121562576c7d651583fe9d63c1aaa1b869d205e345230000000000000001000000000000000100000000000000204536f7493e46af7ae74c52f21d137b781ab41b8d1503fa4f2492f216257d0e4700000000000000010000000000000001000000000000002041b447898ab19c91b1dbde93ea50c40354c2647926dd2df1d267edeeb4fa5b900000000000000001000000000000000000000000000000207a1424d413417eb28a018fd1d76958181366ee57c4d59ae0034a29ddbb1d2b590000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000190000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020c4c0ee0f8712b96d147ac05da64c1b99a740846e9a50722ac61b17649b751bff0000000000000001000000000000000100000000000000202aede3564ebfa30e74b8e2011d40a14f2a016492169b85c1f9415a281dbc49f7000000000000000100000000000000010000000000000020376d244ad38898e5a2d4a5d1596faa89190bb6be0021523a316dc31147bdabe8000000000000000100000000000000000000000000000020938375cf40ac56222ab4d00edc1add4f0c4d45658ef352f9c39d534a9202dcf7000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001900000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020c7d221511f5b0778a109fa2e3c1c884ec175c20abd2d834b083b1c7c07e139ce0000000000000001000000000000000100000000000000200b06c28f51eebefba1b90a051ee1ef7a91769619ad2533abf955ef50586e382c0000000000000001000000000000000100000000000000202b1f2b796b4b368a82c2fd19089c52aa941915742b1944326d6efc9a8bedb715000000000000000100000000000000000000000000000020a084e70b3f9ebf137fa0b89422463d8a968230d1e0fbcf139db6e018b78315170000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001900000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde561200000000000000060000000000000001000000000000000000000000000000208daf272c6a70af9b7b24ff8d36e5d28a5d61732ec6e5636a0cb174a11d76a79b00000000000000010000000000000001000000000000002000edd1136e3510a3d32537ab78ff753398636f0818095c7cc213fa7098d55ea6000000000000000100000000000000010000000000000020fc8359a37b14fb43c09c48b566d14f74e47c7a14a37d07ece74a19f83c2fb3d90000000000000001000000000000000000000000000000201b22228829ef8466b89319e35bebfd9d707cdce2b965fa152aa852ec7bc0550b00000000000000010000000000000000000000000000002074f8c3f402afa3e5ed1c04f3f0696f861280031f4aed0bc006b8cc598b663150000000000000000100000000000000010000000000000020ee96f610e3f62ac6a3af8b09bdf54bff9f61482a5b4905803e9446aa9acb86e000000000000000190000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020dfaa7a61177963231160e33a42fb89948d6fa2b6cda193578f1607317576bd7900000000000000010000000000000001000000000000002004230d91f96402c0e2b32b8591b01d0bf15a0337d50562837b09d42f470657ea000000000000000100000000000000010000000000000020b669e28a8c8f93a11d50fc751d11cbd5c19eef7f4f73ab6849b9e5fb805ced8b0000000000000001000000000000000000000000000000205ef7704fa3778b449f726e5d0a98cf0942526fc336765751838fd6cbb761fb270000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb81659000000000000001c0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020dc473fbc2982536b3551210ff22dbfb86908bbdebdf4f9fcee59b94ae742f3e7000000000000000100000000000000010000000000000020f09e0551c369e8794e51f609fb64bc262c407f13317ebef64c17a4fb128e2b29000000000000000100000000000000000000000000000020cd05d024922075f0d2191dff6b6b8977913542096c687b1aa6a6880a30f4f1780000000000000001000000000000000000000000000000207a1424d413417eb28a018fd1d76958181366ee57c4d59ae0034a29ddbb1d2b590000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000001c0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020e326c18eb9bc5c22eeb0104ad67db5825445f27758a763e7a15c98afa3c60ee90000000000000001000000000000000100000000000000206f5361d60e69e71d110471fa559e5f9e4f0cacff5c4d21eefb041e57495d1c6b000000000000000100000000000000000000000000000020e216681d6f38da8409d5c77334f0f51de756720aaa028880c59d6a832095ad4f000000000000000100000000000000000000000000000020938375cf40ac56222ab4d00edc1add4f0c4d45658ef352f9c39d534a9202dcf7000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001c00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000010000000000000020b78c2786fd393a8a189ea69596d8d08620268eb4bee8ba8309a80def966a7437000000000000000100000000000000010000000000000020a3471994e86c3ff9f0b757f440b5ded70f1e167a40e6eff28a571f2a79e14df600000000000000010000000000000000000000000000002053b3233efca5252e2055e75028fefee3391d25eb106840c102b53e90d3d1fdf6000000000000000100000000000000000000000000000020a084e70b3f9ebf137fa0b89422463d8a968230d1e0fbcf139db6e018b78315170000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001c00000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde56120000000000000006000000000000000100000000000000010000000000000020cf4b99e5ddb7e9be43b53fd47fd6465b0b294da885c48f18999f18c508f50a63000000000000000100000000000000010000000000000020c39555378222a23b74a8ea5f1a947f7767b6678dc4c45b8391294e15f7096fa3000000000000000100000000000000000000000000000020c250999b34e17251431e337195cc0230ba7e98bff5e62a85f6fafeafe15fba4b0000000000000001000000000000000000000000000000201b22228829ef8466b89319e35bebfd9d707cdce2b965fa152aa852ec7bc0550b00000000000000010000000000000000000000000000002074f8c3f402afa3e5ed1c04f3f0696f861280031f4aed0bc006b8cc598b663150000000000000000100000000000000010000000000000020ee96f610e3f62ac6a3af8b09bdf54bff9f61482a5b4905803e9446aa9acb86e0000000000000001c0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020b2669c955a48dabaf2c213befede7e967ab990f1c9b03bd7a65450003d408508000000000000000100000000000000010000000000000020fb06fb7152ac1f9d2222ce222624aa555ffa17371dfad3a80a1bf178befe1e6b0000000000000001000000000000000000000000000000207fe3562c7d01ca88eef4c66c817964ae9239a6df889ab475368bf430de96cdb20000000000000001000000000000000000000000000000205ef7704fa3778b449f726e5d0a98cf0942526fc336765751838fd6cbb761fb270000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000290000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000000000000000000020afda8f08f851e66f41a25326acc738e8538b2349a3b415bc8993aee72bcbde67000000000000000100000000000000010000000000000020c600a084e5647679dce1e61667cd049aa01cd0b29e54cfef6b28350be80914810000000000000001000000000000000100000000000000200ebe305ff48b2729427a6d3d9c605f9d8749d8a7f371875c0845a2841f05d610000000000000000100000000000000000000000000000020c5955793ab286002e2bc4ea091ab49e689f85a1a02effe9360301649450f713e0000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000290000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000000000000000000020ecb8fd0e3ff2c7994cd3f64eef857e523c5ad14a898efd04c68f4135120556030000000000000001000000000000000100000000000000209fb59ccf252a0568bd152caf34d3269d3a2b9a39857511b0bd86c4af33ce8dee0000000000000001000000000000000100000000000000201cef524c4bbd4352e55a822f72b50f13a0d37a3b4bd840b09474319d06e88b350000000000000001000000000000000000000000000000204c549c0a06011a5b940afdd9c949f7c54668b0449c63f74f64a3a00d1cc2a37800000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002900000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb626512000000000000000600000000000000010000000000000000000000000000002020a00217cf3c264736d6e57dc9ab3c182332796d1200da093356d79a4fbe3aa5000000000000000100000000000000010000000000000020e967db82093a838375e88444bf31c8b9602b5b9abee7d1014d9faa70e9e2ee07000000000000000100000000000000010000000000000020b65635b650f7751f683d4fdd6f77a7bbbf3914c331798f8c0a5e9b5bdd294ca9000000000000000100000000000000000000000000000020d880ce6b358a2b77330b5a0f9481e98d6528b9d0ad6b480d03501c04a93a647f00000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002900000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde56120000000000000006000000000000000100000000000000000000000000000020a0dd56e572e5076899043cf745b32bdeaabbdbe5dda885fed13b8cb026fc3360000000000000000100000000000000010000000000000020036e7df247ef476c62b0c60d8c733502d9c99e42211e6505526e56ba4d0eb688000000000000000100000000000000010000000000000020ec081a9e95c70f0fa23f8f9f16c399792701d8ccb5c6c2bd2fec49153d27321100000000000000010000000000000000000000000000002080b4067bde5f3114a4b55274822cf920b2a4ae2379db5763e4a3dabbb5558faf0000000000000001000000000000000100000000000000208b43e56d7018073c7ddbdcbb43e6f2b6fe723633f9f0413f2816154d995f9df50000000000000001000000000000000000000000000000202acbbe7e98cf5709c49c5060a40d850c367fa6b383f35b244367f148f5586f8e00000000000000290000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020546e8b9d3b8728dc2d9d345f9669a89da25d3aea625522d6a9d5f5029f00410f000000000000000100000000000000010000000000000020eb547fc519df191930772af4c7f9a223f448ea9b096d6bb0615a7ccf53da66a3000000000000000100000000000000010000000000000020a9fa262c6bfaa50ee132d4609ab35f935bfd510e97d33e942458c27041a0083a000000000000000100000000000000000000000000000020896402e4d3f17887d11d2154920c6bff134c98834a80f987cc702496ef09c196000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000100000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020c47d7bebc8c15f325d831bf339e2d3309c7c8d22969ec6186bc0568046427bd7000000000000000100000000000000010000000000000020640867ed08a3ecabe4859b1b36a9e35eed961ff22f4ecb3f19f23eafd153979300000000000000010000000000000001000000000000002038c257c4acc7ae148c5c9b4409c82130df8554a30c1e722962697197980c56fb000000000000000100000000000000010000000000000020f158609c6b12d3609bdf1c7797edb538f985fe8ac4171f066b1d7b9c43c7bc3b0000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000100000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000201ca4130b1b432206425cd549ec0a36397fe25e3902fc83e4fc886cd6f1950e7b000000000000000100000000000000010000000000000020630811e108ea35a320a27dbd41803a687d15b60a29050aeca50361d2714bf518000000000000000100000000000000010000000000000020d42e2ebd255e4349a7739a43dd3c719944636248abdb0bced6a610501e96e1b50000000000000001000000000000000100000000000000204dffb3cd723081a5601c700b71267e003c6301f69868c0143c1c7fb7f95e7282000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001000000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000202c428c9c3fa1a53d1b0e7ee50f01da261b77bab05c5f15d68ca27e3ad48349d5000000000000000100000000000000010000000000000020183a34534d82250369c5f2847e701d9341b41f119f4bfea1eb963c8a45731168000000000000000100000000000000010000000000000020fe4fd380a7b985c22fbf7e428d0522af491d32b3707fdee9600cc7816056f1200000000000000001000000000000000100000000000000205d9455d420eacea118c8dd606eeb03972280069211e33523e74b32b8a0a96ea70000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001000000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde561200000000000000060000000000000001000000000000000100000000000000208c7bb6c2674f5075c7c4766ecdacbb02946937d88b79eb8ade4ec4cdf030d6e300000000000000010000000000000001000000000000002036dabb6c4805f7564ffa9dd386ce2ac8fa1173a44b7e978962085ca284260c3c000000000000000100000000000000010000000000000020b1f416af255af2c4c5d556e92ec09f445ddc4c0c1d4ce617e48781cc7fbb0859000000000000000100000000000000010000000000000020edddd053de62a5ab03c84705265b32ce7f3371bbb58bce16ef49c97190097e6400000000000000010000000000000000000000000000002074f8c3f402afa3e5ed1c04f3f0696f861280031f4aed0bc006b8cc598b663150000000000000000100000000000000010000000000000020ee96f610e3f62ac6a3af8b09bdf54bff9f61482a5b4905803e9446aa9acb86e000000000000000100000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020574ce443b2d1a579a226d2ef9963cddf83ae90ced338ea391881843fc95dddcc00000000000000010000000000000001000000000000002026c0e6ce4bf08b1f0ed800a51064fdf6f1f375dbc00c710881776df737596e59000000000000000100000000000000010000000000000020113e52f83563f3c9a8ca73087daed63db6e020f9b1908dae270f2d864860470b0000000000000001000000000000000100000000000000207558d367d7cb8046d18c333db9b72e09bb6459368f028b50b23b205b8ad03c430000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000160000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020ec257b73d08ff50838c97be9c944bba03ce4c90cf40210d26417f516ea487763000000000000000100000000000000000000000000000020cb53c0317cf40b13e5ae5168d1ba5587610561a353ac259cb8aa35aa99893bb600000000000000010000000000000000000000000000002026fce9aa21f1ef53b559859e81595b7ea9f4a7505a8a6c162b86994251034ce3000000000000000100000000000000010000000000000020f158609c6b12d3609bdf1c7797edb538f985fe8ac4171f066b1d7b9c43c7bc3b0000000000000001000000000000000000000000000000205eab89a1beca51a5d8087eb08c31f8fffc3e667b4613214fd092e2afc25668d2000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000160000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020e15f010d561949bff9f8aa87141ac4a9322b1b3e0c2063378fff97ea88d657b5000000000000000100000000000000000000000000000020cab150ea22d5d417bbe85bd7c1d535731859aa1c0ab76010f834e9de414fc2f20000000000000001000000000000000000000000000000205194f6462193600d656db86b96325bf516174c3105f29544d28f3b649cc7fa4c0000000000000001000000000000000100000000000000204dffb3cd723081a5601c700b71267e003c6301f69868c0143c1c7fb7f95e7282000000000000000100000000000000000000000000000020df7a9e00f83416684b535d78323d0e42e5d14e9a640c91bb70630cefeae3ec5900000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000001600000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000209d497a85e9a14368f2a14742c7be38367d743d88e085a59837188dc74d07ee3e0000000000000001000000000000000000000000000000202b193884262af525412504739ca5ef7ab7e82d27baf389c289a31844e39475f0000000000000000100000000000000000000000000000020b4e0bb7d9649c1fbb4614e3f293bccd257330f04e0c3c1c27c3a9a4dcdec30130000000000000001000000000000000100000000000000205d9455d420eacea118c8dd606eeb03972280069211e33523e74b32b8a0a96ea70000000000000001000000000000000000000000000000209a0b4f81603784a7d4df2ce83a1ee0168b1800f5024310a25714db32d373f658000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000001600000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde561200000000000000060000000000000001000000000000000100000000000000205b4a5aaedb9ceea251799c7ff4ba0455d237ca33e569df50b294de780743e0280000000000000001000000000000000000000000000000207109d970e8fdf43e95befedaef0ed933720099ab64a80de5c62225adf2b0dc270000000000000001000000000000000000000000000000205a56911b2f94acc47475d8d5b4ced4b0eb184f2f1245202b8de7e3011e99a179000000000000000100000000000000010000000000000020edddd053de62a5ab03c84705265b32ce7f3371bbb58bce16ef49c97190097e6400000000000000010000000000000000000000000000002074f8c3f402afa3e5ed1c04f3f0696f861280031f4aed0bc006b8cc598b663150000000000000000100000000000000010000000000000020ee96f610e3f62ac6a3af8b09bdf54bff9f61482a5b4905803e9446aa9acb86e000000000000000160000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d000000000000000600000000000000010000000000000001000000000000002016f028a7a06c03a258cdc8cd8946d7632af792a0839387945d27535f16f1fca10000000000000001000000000000000000000000000000202687b1b5119760e0eb5f98fca70a184b73a4ad7701174748d26acb3ca64bab26000000000000000100000000000000000000000000000020c9fa3b6551025a0b0a3ab22e52aa56603723150da92dcef931270f46982c5f720000000000000001000000000000000100000000000000207558d367d7cb8046d18c333db9b72e09bb6459368f028b50b23b205b8ad03c430000000000000001000000000000000000000000000000206b715f745875262d7d7e69fd18f833d00decfb518c256553ef37da172f906ea400000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb81659000000000000000c0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020724ffd0f25aa4e243d2c307552ed37381703107372320593eb3a4d313b319f910000000000000001000000000000000100000000000000207632194eaa79882c73a99557dd547ccd6fd120c5b43667fce4768d60ee466a6d000000000000000100000000000000000000000000000020266533c386eaecf62505c82a33fc748ed3dfb0dd1f1c3b6ef1c350f30907840f000000000000000100000000000000000000000000000020a07353c5029eac2f5fb14b7aaa839b9ff2b01dd6feeb51c341820462ab766306000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000000c0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000202ac7747cd68e0e8f386445c4b73e691738da5997681898b63d8a1fdd2f7318d500000000000000010000000000000001000000000000002048f8483f7e54318f5880730aa74c25c4d947a419c1457363fa11f33292ddacb10000000000000001000000000000000000000000000000203e730a9762014a0bc462be90ae606e5d47c72eb18f70e7e52e6fdbf0e6f0ca51000000000000000100000000000000000000000000000020a45ee5473875579efd498bb9c2b6715752587f3d8b2592b454ecfaa7a4333af7000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000c00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000204ac156fe78cb66cc11b0523329bdc9822cfc7ef36d86d1a58cac556bedacedaf00000000000000010000000000000001000000000000002010b0493443555dc67ee87c1bd8063b9e36aa14d724f309f7e8809f3a39a534e30000000000000001000000000000000000000000000000200f6629916e8ea9140c1e5fe82516b014e06c6a7ffb9a27dbe8073629cf7bcfd300000000000000010000000000000000000000000000002017851b1e9a70cbcc32eb47f7ecfae668e5855348fa541f9cd9cc78455c2f52ed00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000c00000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde561200000000000000060000000000000001000000000000000100000000000000201376c8ebc60bc7ac345e110600c578a9251d294fde213df2b39d2d10af7b72ab0000000000000001000000000000000100000000000000202278c1169f697b84d00147af89a2646538a6511cffad2faa7b319e55d636471d000000000000000100000000000000000000000000000020366469e7d59d6bc640bafe4261eac135e7f403c7d83905ecb45477e3f080df680000000000000001000000000000000000000000000000202cc11ee53cada1579b266c3b3e900aa197ce5a4bde333a64f8a5d1e71e5ec9c6000000000000000100000000000000010000000000000020dd1c1802ff1109af90e7501197f83b1086afac936987a7b7b940c7eea1eafa7e000000000000000100000000000000010000000000000020ee96f610e3f62ac6a3af8b09bdf54bff9f61482a5b4905803e9446aa9acb86e0000000000000000c0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020547e4936c71929988cb4f1df9bc7e773529a27708006dacd48b89d487eac4d8b00000000000000010000000000000001000000000000002021bc05aef3a17c8a1d63eb499367fa51cd6c2c3b2716d1cd6b8c11c4a3b3722a0000000000000001000000000000000000000000000000204b3a8c95985e02c1091d8b74e359262a94d60b3baac08c1afc3d4c34b039a42b000000000000000100000000000000000000000000000020dd7d0f921f70b1c400e2053b21a89931a0d729e3164966f8cdf0a44bdd836801000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000090000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff100000000000000060000000000000001000000000000000000000000000000208e04b4c723612b4d1e333accc4e24a04d69c173578faf07c8d2b973c0be9fb4100000000000000010000000000000001000000000000002014aa8e29f77d6a5fb881904df608256632c6604fbfb5192158e0932c0baf514500000000000000010000000000000001000000000000002093c99af014a3514bdcc84cdf0e72d42f20038a64dcba4071efdcce4cf6a76949000000000000000100000000000000000000000000000020a07353c5029eac2f5fb14b7aaa839b9ff2b01dd6feeb51c341820462ab766306000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a00000000000000090000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000000000000000000201e1426bc22e09b48e2f3902ae15397de929e0b50905519518b2ffd6ff87b0f8d000000000000000100000000000000010000000000000020ff5c9eed6e4075d1dc3dad1312c9f0e4bcc23270345f8eea8c11a5b3619b24aa000000000000000100000000000000010000000000000020e23783733f2d245e0738ed8503ab8c6aef3aa526888e6b8dc670bfe0e224b8ff000000000000000100000000000000000000000000000020a45ee5473875579efd498bb9c2b6715752587f3d8b2592b454ecfaa7a4333af7000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000900000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb626512000000000000000600000000000000010000000000000000000000000000002009e66b718cc1244864884c2e809453b63f5bdb1357b3b4cc341fe71f437dca2e00000000000000010000000000000001000000000000002025a5c0035306c82abd392465404dd2a5af6ad78f6c662e811fb28ddd99a85857000000000000000100000000000000010000000000000020f0fde6ec22a87dce3563e4a3872da6fb65e744b1d395bcb2f83911d9ac21f1af00000000000000010000000000000000000000000000002017851b1e9a70cbcc32eb47f7ecfae668e5855348fa541f9cd9cc78455c2f52ed00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000900000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde561200000000000000060000000000000001000000000000000000000000000000200c84c33aa3ce019e2e9d8903cf8b2964b89fc01e164b954befc76a705e3620f100000000000000010000000000000001000000000000002043cf5ab0e85678ac1f5e9bc7f073456a624fb85b0ed8a97a19debe99aee3ef3b0000000000000001000000000000000100000000000000204f1d90aecc22386cf8bd2d60c6a2d6d6c43c1918619306fffdbd5f5dfb68cd920000000000000001000000000000000000000000000000202cc11ee53cada1579b266c3b3e900aa197ce5a4bde333a64f8a5d1e71e5ec9c6000000000000000100000000000000010000000000000020dd1c1802ff1109af90e7501197f83b1086afac936987a7b7b940c7eea1eafa7e000000000000000100000000000000010000000000000020ee96f610e3f62ac6a3af8b09bdf54bff9f61482a5b4905803e9446aa9acb86e000000000000000090000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020e6608d6b21e9b4d6fdacc91ba204748c8cdadde68638156e633ef52ca68d58a6000000000000000100000000000000010000000000000020f9459a5f7f85273cda341000cf6866270e90827995d041cbba1ac42de920723c00000000000000010000000000000001000000000000002045bb9d506f74a19123d41a442d1de0fdfbaca183dfb2af0cc5027621a991b2b2000000000000000100000000000000000000000000000020dd7d0f921f70b1c400e2053b21a89931a0d729e3164966f8cdf0a44bdd836801000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000240000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020c24fc0a3e994aa4053143723d1ff953730e09d80308264f57f5e25286c7dcad00000000000000001000000000000000100000000000000204f58496d9785dbfafadd8f41e3167831200b5d8065731cf35b12e0f683eb6aba0000000000000001000000000000000000000000000000204cb7b4fa816710180675ddbc955531f8a709d427faf5200cdc6737874e060a55000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000240000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e0000000000000006000000000000000100000000000000010000000000000020a92607495561c9eeccd26d9cc9dfab304f5bdec362795340e1d8d93b162ff7f5000000000000000100000000000000010000000000000020056c9a4c4349cd5028c19714d82d2521d603233c99689f9551773f4c5a1bb87400000000000000010000000000000000000000000000002037a9c624bdb25b1ee261b13411e9d6acc0d0e8c738496cff14dc43abe65c9d1f000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002400000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000204be0b5c554d14ed3ecb1a4698c54f322ec73fcaf89c1a0d0f2287a93c2b4d62b0000000000000001000000000000000100000000000000203decfa57715a83c44aa9af101d28b91339338f8855c0070ab1a2c91f7f429ec30000000000000001000000000000000000000000000000205d6c3e37441823be85bdf046e1379fc5587812c68dc08d8750f2f6bd76bf08a100000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002400000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde561200000000000000060000000000000001000000000000000100000000000000200370955e846619f8053e6518604dd4a3a3876d31542c70a179b9e62113e70de20000000000000001000000000000000100000000000000203b43d69496b15a1de8d88791e245f0f4c9ce3d08e47827d61f0ae96ed0fb8464000000000000000100000000000000000000000000000020a3d9e1ced1896a9083f68bbabe3bb9574542b5eb5d38128a466f4b97c8a833410000000000000001000000000000000100000000000000207794a6e7ab3a2607315a56d8ffe8999f9427ce2f2490356c082fa61238b586300000000000000001000000000000000100000000000000208b43e56d7018073c7ddbdcbb43e6f2b6fe723633f9f0413f2816154d995f9df50000000000000001000000000000000000000000000000202acbbe7e98cf5709c49c5060a40d850c367fa6b383f35b244367f148f5586f8e00000000000000240000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000201dd42fc16aa12a31fa90168725c897d861f7e36b8c27441380a55b1025146bcc000000000000000100000000000000010000000000000020a80602202c5ebf9b0347c9106ef91bf2c358dd05edffa7aa90f9b9bd47fd10500000000000000001000000000000000000000000000000207f46e4b2eb51c53f78fb1f6b5310d84183eb4d3898e8ddf3b3eb940fc2ad8f4400000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c00000000000000000b0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000000000000000000002039b919da8460a7ced2f434d93e191c2e5f3ed6c16c5a563dde2d4088fe06329200000000000000010000000000000000000000000000002077631bed7d662ca95d374bb50963259dbae6fd85816b13bb5b057a5a051aa21b00000000000000010000000000000001000000000000002093c99af014a3514bdcc84cdf0e72d42f20038a64dcba4071efdcce4cf6a76949000000000000000100000000000000000000000000000020a07353c5029eac2f5fb14b7aaa839b9ff2b01dd6feeb51c341820462ab766306000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000000b0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000000000000000000205927b440119d91d39c3733f63f01775abc00426dddfe05736c43d2ec0905363a000000000000000100000000000000000000000000000020e36620d473cd1c4b96249370e894999a209a749fa70fb571d7cdc8d7dd5f2e54000000000000000100000000000000010000000000000020e23783733f2d245e0738ed8503ab8c6aef3aa526888e6b8dc670bfe0e224b8ff000000000000000100000000000000000000000000000020a45ee5473875579efd498bb9c2b6715752587f3d8b2592b454ecfaa7a4333af7000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000b00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000000000000000000204882930d8658cd73eb924ef4d6ae5265e5f946d6d6e4198a4fa473b0c46262050000000000000001000000000000000000000000000000207ef9b1eced9bdd4e378e5106730b3ce6e1a70306d54252b4b0f320e029c8e300000000000000000100000000000000010000000000000020f0fde6ec22a87dce3563e4a3872da6fb65e744b1d395bcb2f83911d9ac21f1af00000000000000010000000000000000000000000000002017851b1e9a70cbcc32eb47f7ecfae668e5855348fa541f9cd9cc78455c2f52ed00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000b00000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde561200000000000000060000000000000001000000000000000000000000000000206491a91ff0421451f2ef7fbe94620ba91944038a61de6868fa0a84fd19f722510000000000000001000000000000000000000000000000205dfcd91798a2e45492d1e43f02db0987d2a4638e5cf53f99282d826f22e208180000000000000001000000000000000100000000000000204f1d90aecc22386cf8bd2d60c6a2d6d6c43c1918619306fffdbd5f5dfb68cd920000000000000001000000000000000000000000000000202cc11ee53cada1579b266c3b3e900aa197ce5a4bde333a64f8a5d1e71e5ec9c6000000000000000100000000000000010000000000000020dd1c1802ff1109af90e7501197f83b1086afac936987a7b7b940c7eea1eafa7e000000000000000100000000000000010000000000000020ee96f610e3f62ac6a3af8b09bdf54bff9f61482a5b4905803e9446aa9acb86e0000000000000000b0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000000000000000000020dbe2f7949c2848e292bebf1a30a4e72f4262acd55370a4d9815d9aa7bcaa012000000000000000010000000000000000000000000000002016c3a237b73b54311219f282ce47e3b5a782e5274e048bda1d6866b9819192e300000000000000010000000000000001000000000000002045bb9d506f74a19123d41a442d1de0fdfbaca183dfb2af0cc5027621a991b2b2000000000000000100000000000000000000000000000020dd7d0f921f70b1c400e2053b21a89931a0d729e3164966f8cdf0a44bdd836801000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb81659000000000000000c0000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020724ffd0f25aa4e243d2c307552ed37381703107372320593eb3a4d313b319f910000000000000001000000000000000100000000000000207632194eaa79882c73a99557dd547ccd6fd120c5b43667fce4768d60ee466a6d000000000000000100000000000000000000000000000020266533c386eaecf62505c82a33fc748ed3dfb0dd1f1c3b6ef1c350f30907840f000000000000000100000000000000000000000000000020a07353c5029eac2f5fb14b7aaa839b9ff2b01dd6feeb51c341820462ab766306000000000000000100000000000000010000000000000020c83fb7977aaee24d0d89212e2f1147bf9b405849963f175fe61a4d8858b02981000000000000000100000000000000010000000000000020b5bce503fbe3c862f5dee2b2178880e5138877654a6074060e791faca56b5b7a000000000000000c0000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000202ac7747cd68e0e8f386445c4b73e691738da5997681898b63d8a1fdd2f7318d500000000000000010000000000000001000000000000002048f8483f7e54318f5880730aa74c25c4d947a419c1457363fa11f33292ddacb10000000000000001000000000000000000000000000000203e730a9762014a0bc462be90ae606e5d47c72eb18f70e7e52e6fdbf0e6f0ca51000000000000000100000000000000000000000000000020a45ee5473875579efd498bb9c2b6715752587f3d8b2592b454ecfaa7a4333af7000000000000000100000000000000010000000000000020cf504b73a6895274c71dacf49d762356ec2bd03ce8fe5803674473ffb2f75dab00000000000000010000000000000001000000000000002020cfc65f4dd53a0e075d2b171d58f028ea93f9f06598ea66ab6576597c5e3adc000000000000000c00000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000204ac156fe78cb66cc11b0523329bdc9822cfc7ef36d86d1a58cac556bedacedaf00000000000000010000000000000001000000000000002010b0493443555dc67ee87c1bd8063b9e36aa14d724f309f7e8809f3a39a534e30000000000000001000000000000000000000000000000200f6629916e8ea9140c1e5fe82516b014e06c6a7ffb9a27dbe8073629cf7bcfd300000000000000010000000000000000000000000000002017851b1e9a70cbcc32eb47f7ecfae668e5855348fa541f9cd9cc78455c2f52ed00000000000000010000000000000001000000000000002053a154c078c66a5575d8a7f207001382fba159ce2679af84faeb3294f69fe9e4000000000000000100000000000000010000000000000020086d8c265926ade2c3c41e3d86ae3f446435a428d3fb807285198cd4d2554eb0000000000000000c00000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde561200000000000000060000000000000001000000000000000100000000000000201376c8ebc60bc7ac345e110600c578a9251d294fde213df2b39d2d10af7b72ab0000000000000001000000000000000100000000000000202278c1169f697b84d00147af89a2646538a6511cffad2faa7b319e55d636471d000000000000000100000000000000000000000000000020366469e7d59d6bc640bafe4261eac135e7f403c7d83905ecb45477e3f080df680000000000000001000000000000000000000000000000202cc11ee53cada1579b266c3b3e900aa197ce5a4bde333a64f8a5d1e71e5ec9c6000000000000000100000000000000010000000000000020dd1c1802ff1109af90e7501197f83b1086afac936987a7b7b940c7eea1eafa7e000000000000000100000000000000010000000000000020ee96f610e3f62ac6a3af8b09bdf54bff9f61482a5b4905803e9446aa9acb86e0000000000000000c0000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d0000000000000006000000000000000100000000000000010000000000000020547e4936c71929988cb4f1df9bc7e773529a27708006dacd48b89d487eac4d8b00000000000000010000000000000001000000000000002021bc05aef3a17c8a1d63eb499367fa51cd6c2c3b2716d1cd6b8c11c4a3b3722a0000000000000001000000000000000000000000000000204b3a8c95985e02c1091d8b74e359262a94d60b3baac08c1afc3d4c34b039a42b000000000000000100000000000000000000000000000020dd7d0f921f70b1c400e2053b21a89931a0d729e3164966f8cdf0a44bdd836801000000000000000100000000000000010000000000000020e5c759c937f7595058dd1127c1b7565d04c88fd6ce769fcdb1854234cc60382900000000000000010000000000000001000000000000002041f1deb9d44c749741ce0d46bc27277338301ab8efb39241180426727cb8165900000000000000230000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff1000000000000000600000000000000010000000000000000000000000000002024f3af1b1647bb312c015a48502bdcba582529e56718776c1cf05694f83b3cf10000000000000001000000000000000000000000000000204b06bb483c21112f9cdd7eff56256a5630233353d836a5d668685bfdc6a4041e000000000000000100000000000000010000000000000020d80cc5cdbb0ec297cddfda4fd988de76b705f83576117fb5ed10b48a9b959bb0000000000000000100000000000000010000000000000020de4e1fd1df8638226f88eb85cf1887650f7a999dde645ee6368965b2368898950000000000000001000000000000000100000000000000204f867a0948b81531d95731b53c192de3de5683271c9a1cc0ac14df220b41408c00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000230000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e000000000000000600000000000000010000000000000000000000000000002026d903d0be54bf22c5189d1118bd93f6a98c383d8d88d66724bfe911e82b2b74000000000000000100000000000000000000000000000020393cccd066625747c7bb15e378554916665b267344c9bf3a1f1e239b4d3166fc00000000000000010000000000000001000000000000002072ecff12c730f10ff239ae5d5ec6e0ecd7a93d7c6f58e48faaf9efc69af68a03000000000000000100000000000000010000000000000020ffa6fd6b2bb776f0017bd053d81f3be0123b5193aa2e9b7587911a48528b1f8900000000000000010000000000000001000000000000002076b338eb5ef4ecedf088a240d844ad8aa568c3fc1e06595dfc1bcf5c1d7eb5060000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000002300000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb6265120000000000000006000000000000000100000000000000000000000000000020315f848ff4d7d38fb384ae430ef99536792647667ccb2454dc022ec7a768aaf4000000000000000100000000000000000000000000000020d2096ab2fdbc4ed9fcb3f176b5554a872f0e907766b3c2d7a358a3e01f8fde260000000000000001000000000000000100000000000000209636be1e4b8abd68cb43b0274502fefa81dd44893b457dcd361701b81c119a5b00000000000000010000000000000001000000000000002040b7bd8d7fd394411a7adc3e3d132b959ede1749a823b0bbbf27df8c12b316b000000000000000010000000000000001000000000000002097542ac9e8339ff6159a0199fb858a99137bc6bbbe6dc3fa8311d3220b29cab700000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000002300000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde56120000000000000006000000000000000100000000000000000000000000000020afe781427da25b2656f4afe658d7b09fdf74224657f244abf61f9cdedf9390a0000000000000000100000000000000000000000000000020fc18f1981d845ff496938d740e8859186fa60708758e2c4966cc30321ee5af9700000000000000010000000000000001000000000000002034d606e528ae97ba399a8765a39ca8182a9abb6191e6065fb37a87dffc92f9880000000000000001000000000000000100000000000000207794a6e7ab3a2607315a56d8ffe8999f9427ce2f2490356c082fa61238b586300000000000000001000000000000000100000000000000208b43e56d7018073c7ddbdcbb43e6f2b6fe723633f9f0413f2816154d995f9df50000000000000001000000000000000000000000000000202acbbe7e98cf5709c49c5060a40d850c367fa6b383f35b244367f148f5586f8e00000000000000230000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000000000000000000209622e98ec4df3449c67d9e48114f130f446fae93b72f4bf53789536c86b6d631000000000000000100000000000000000000000000000020a58adfd2e024e06c922fbd6f0c6e29c0aa467b652272a9cd35196719e496cfd60000000000000001000000000000000100000000000000200df38a45fc387ce7388d7edbd245b965091614cd5a7aa1118bcbb22942e4bb9300000000000000010000000000000001000000000000002039c6e39fbf567d6f0eea96a1bf5ae89fbd6baa5901743903413a2a0f0e80cc37000000000000000100000000000000010000000000000020af5e2eee9acf70cad29c2ac15206180900bc7282a0186ad882e78e35bf977f5f000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c0000000000000000320000000000000020716cec0d47c884efe528c1932a8df60ddcb8c021da2c78b261cc7a8c86c0aff10000000000000006000000000000000100000000000000010000000000000020cead2a72fa7974c8cd84b21e2362159483af9bb8274514838dfb974484a1575000000000000000010000000000000000000000000000002005bd0da2469f2c21b3a29c3fb9805e1c169b17d94f8f17fb27b467cf42de28db0000000000000001000000000000000100000000000000205f3c867463c166fd9c0125885c51251e20c9b8d44030db7f8c699a0f747c2522000000000000000100000000000000010000000000000020f006cf8352bbf180ccb81999dec2d0377abf32ec1a119242758d07bf00181499000000000000000100000000000000000000000000000020e4a44c1e8331fb3764b3cb5e00b57b569a11545f1703737d2ec96bee3fe173ba00000000000000010000000000000000000000000000002010a4f3067afce9cadb49d5512675f4089fa47b1c6145520156a6296f4b6d44c700000000000000320000000000000020a096243b698e32dced2e8714c5b6dc3ca8323689d1f26d03beafb556fe77347e00000000000000060000000000000001000000000000000100000000000000205171129cc905c8d4a2a5e72692fa2146a126401361ba92ac1f21e9fc301a8f5600000000000000010000000000000000000000000000002065f01400d8c5267b0c9e1b41ef2836adc1616da98100daa5b32b8ba39b374ee10000000000000001000000000000000100000000000000201005d0456ea86f38d81d86687e8f11923a23456f3c2f3ff55d7c8acb9de64d690000000000000001000000000000000100000000000000208d5b321bbfd951f9cb7659d22f534c96ff102f4c76a497617e5abb9dfa82d388000000000000000100000000000000000000000000000020ed7f9b4d8c800daec29810e1d30c95a2ac4193892cdf48f11b9cece5a834b7870000000000000001000000000000000000000000000000208c7585be4baceec61dda46547d6059e9b46cb44423033513d943d1ef68e3248e000000000000003200000000000000201275a1e8c448b541848c55c9650bc43974a5c3f17f03ec53a707452feb62651200000000000000060000000000000001000000000000000100000000000000208f12edd561d40b61d3d50b9d6b8679c0a5358ccf17fef9bd9448e821759aae630000000000000001000000000000000000000000000000204c94dd0a0f2cb0cb59dcc9b4beb35fd98efaa2cc92cf08466d21549d33875f98000000000000000100000000000000010000000000000020c777ac306a941e7299543eb8e965674fbfd21d8db21d4e6efb2f426e941de1bf00000000000000010000000000000001000000000000002077140c9519235b46e9281299155f5f67e417ff114e7ade36dfc35a5d9cd2e2d700000000000000010000000000000000000000000000002051722b993fed9d1efd7b3a7e44ba845475b07cb9163bf3112ade9cbefff0647100000000000000010000000000000000000000000000002025128634b4af25381e0d5d1eb9f22d259e70898c17a942192d6d86985615fa2e000000000000003200000000000000201cb5f6f444b1c56a2a01ded4de69f4f899e483fab914634bf88268a63cde561200000000000000060000000000000001000000000000000100000000000000201cf667c93218461cd715e63b61f883b6ac7ff0f91a4b86acc95ef8c3296717ec000000000000000100000000000000000000000000000020ed96c4ea6aa26447890bc48910f7d9f42a4fb3d8af08a3a74346b72167154a40000000000000000100000000000000010000000000000020390db850e000e33e00c0ae3ae80c19561aeab2d6f4dd64e8c024820f8d12d8d50000000000000001000000000000000100000000000000206e7dc7fda7866ca355c1f89e48853a86a9d9b363159deb6fb5ef53aeda9b1c2400000000000000010000000000000000000000000000002078cdee2ea5faba6663676c4f4610229cc5cd1c1c0cdc38f9b01331797fb30d310000000000000001000000000000000000000000000000202acbbe7e98cf5709c49c5060a40d850c367fa6b383f35b244367f148f5586f8e00000000000000320000000000000020d7f386cc786ddbfcf6cf2a08a9e5b567ed987d1eb8e46673535ba4975169dc1d00000000000000060000000000000001000000000000000100000000000000205158bbe04522354f51ba354a6cc863746e521e6d494de5fa79dfe2a4e0a2524b0000000000000001000000000000000000000000000000204214f1b616812c5b41ff45c0d2acddfd991317d68de3ff1ed1900ce663f1230e0000000000000001000000000000000100000000000000200c26f3577db6f6fc8ca13505100d7c1f5e90088ce53af1ae45ddb54d2ffe746d00000000000000010000000000000001000000000000002072bbfd71e002ce04de2fac87c41cdb38dc917d8c5386b1ebdd6e02865da280340000000000000001000000000000000000000000000000205bc128850342562f315cbaa6f57fd6ac9fd3106aa09764f3ae77178216aeccbe000000000000000100000000000000000000000000000020dcc082775d37af166c7e41d8ee92e3a51e45b2c989f5c36ef0019f4402963c00000000000000005000000000000000220000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd9390000000000000006000000000000000100000000000000010000000000000020c6f7aa4930d9a8c251a4312639ae05682c54ff72fad1db5e4cb2410194e3c5910000000000000001000000000000000000000000000000204cb289dc9048d6c33309e5c602e250a6cb32025f0ff1381d8cd94a2e7065662a00000000000000010000000000000001000000000000002019e4a5fede7e19b687dfcb423f417d8b7b32b4b43f7b7c27efb040445dfd17b1000000000000000100000000000000010000000000000020733c2543bc11fd1162f30f9ecb93836d968dc9f08d2774fa5a282a89604493f800000000000000010000000000000001000000000000002068c3c8c60119e51e904832f3e8e693569b77d5e8243170c95d9d257ee208a03e000000000000000100000000000000000000000000000020e0725cc48b30467ecbe48556beb3caf31041c9c7ab294f7e8ef642b0215a1fe200000000000000020000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef50000000000000005000000000000000100000000000000010000000000000020df9a09bdecc3a0e79608329d7b4a657d0def510f87e0fdbdd095532e88dafb2900000000000000010000000000000000000000000000002016d682d36234c927920c9be2ef73d4aaa8b6e912ea4036ea103b48aced648e62000000000000000100000000000000010000000000000020ac276de3aa96ad1e64c43ac69575789fb35e8dd5d6f379518b7f2106bb5b7a4d000000000000000100000000000000010000000000000020f7d354561e9b2e7735ce60ef83ce2f2489593b421cb4642a172d19346d977eca000000000000000100000000000000010000000000000020c1a7e93ade1f97ccb8317d056d09c8fe77b2eaec2b4134ddc1a3b7b9206179c500000000000000270000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd9390000000000000006000000000000000100000000000000000000000000000020748048ac2297691ce7d5958b10b593ee34f60b9a0842a701c5d57681e32eef7b000000000000000100000000000000000000000000000020272cb7a0807a23e323a7c2dd5a9b977edbfba7c8f35fec272f666babeffb3bb40000000000000001000000000000000000000000000000203af36074ac02d520704d4024aa7f8edf35c6dbe9badc79747cb8a446ba559575000000000000000100000000000000010000000000000020733c2543bc11fd1162f30f9ecb93836d968dc9f08d2774fa5a282a89604493f800000000000000010000000000000001000000000000002068c3c8c60119e51e904832f3e8e693569b77d5e8243170c95d9d257ee208a03e000000000000000100000000000000000000000000000020e0725cc48b30467ecbe48556beb3caf31041c9c7ab294f7e8ef642b0215a1fe200000000000000070000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef50000000000000005000000000000000100000000000000000000000000000020e719bf214c2399159b9336938dffefa5f1de511c3bb5e3c02b2bdb62b9319b4d000000000000000100000000000000000000000000000020f4e3e97d431657c336423763cc1ad92306213f7cb6cf711a2b0b087510dec8ee000000000000000100000000000000000000000000000020cd4e0a0414c5364a3560de40c273fbbffb9bedd06078a3d6959d7a705bcde706000000000000000100000000000000010000000000000020f7d354561e9b2e7735ce60ef83ce2f2489593b421cb4642a172d19346d977eca000000000000000100000000000000010000000000000020c1a7e93ade1f97ccb8317d056d09c8fe77b2eaec2b4134ddc1a3b7b9206179c500000000000000080000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd93900000000000000060000000000000001000000000000000100000000000000206d0a3b2c933306c39aefe30ed68fe56af597128166e3fa9aa2f7b19fe5172b2d0000000000000001000000000000000100000000000000207925c8eb7eb252649496eaca35f1935ad35c0d1219a86e0840b81a3348f1b4de000000000000000100000000000000010000000000000020b14d20b4e51a485e637d358332632a6c29a8d14bf2bb09376b5361a37f836be80000000000000001000000000000000000000000000000207cf1aed28045afc9e81f498b811640bb174bb37565a6b8262e9e8a461209bd1f0000000000000001000000000000000100000000000000204cfc485308731dc426159458c85663e4badd44b549e8280122835a4b4cb281380000000000000001000000000000000100000000000000205bf10dc59a13b90e881abd949a341f5738d5642fdd7d1241bc2cb59ddb0e0bd500000000000000080000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef50000000000000005000000000000000100000000000000010000000000000020a08493497e503e6670abd6e92149b9b6c96b30eb83fb0bfa714137f4206289b3000000000000000100000000000000010000000000000020fa34f6949f8733eb9f6f868ade5c3be74dfc98265ba7185ff4b0cfe95ee75ad1000000000000000100000000000000010000000000000020a1c24adf981f0743238d97632635bb0553d0b99dcb33000fb088661180d96f730000000000000001000000000000000000000000000000206ed425d8b3c03ec9103a7ee7be6e4b55c554e2a9cda70235e93fe250e571139a000000000000000100000000000000010000000000000020c1a7e93ade1f97ccb8317d056d09c8fe77b2eaec2b4134ddc1a3b7b9206179c500000000000000280000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd9390000000000000006000000000000000100000000000000010000000000000020974ede7d5c76f5d895ddf7c3a15e944a2c520307533d6d73c2a764b4e5b015c80000000000000001000000000000000100000000000000209241dbebf40ae518870e159edcbc815e2e0d9e2b71a5e2252c4b06f0f88d97a20000000000000001000000000000000100000000000000206a953a26f814640662f3683f32561680d02f790320fa23a5c0648c7c91d856610000000000000001000000000000000000000000000000209c4b00c8496d131f492c88318e21e27cad9cce37b8f2ca1e1c4225d19e5f219b00000000000000010000000000000001000000000000002068c3c8c60119e51e904832f3e8e693569b77d5e8243170c95d9d257ee208a03e000000000000000100000000000000000000000000000020e0725cc48b30467ecbe48556beb3caf31041c9c7ab294f7e8ef642b0215a1fe200000000000000080000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef50000000000000005000000000000000100000000000000010000000000000020a08493497e503e6670abd6e92149b9b6c96b30eb83fb0bfa714137f4206289b3000000000000000100000000000000010000000000000020fa34f6949f8733eb9f6f868ade5c3be74dfc98265ba7185ff4b0cfe95ee75ad1000000000000000100000000000000010000000000000020a1c24adf981f0743238d97632635bb0553d0b99dcb33000fb088661180d96f730000000000000001000000000000000000000000000000206ed425d8b3c03ec9103a7ee7be6e4b55c554e2a9cda70235e93fe250e571139a000000000000000100000000000000010000000000000020c1a7e93ade1f97ccb8317d056d09c8fe77b2eaec2b4134ddc1a3b7b9206179c500000000000000320000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd9390000000000000006000000000000000100000000000000010000000000000020ba8eb783f8e9b9ec9a8be64428a6a46cb6eb0026c0b76449781ba483cced208600000000000000010000000000000000000000000000002024032ee71505748a24093a56d01e5d9a7af31aa527f7b91baf4eb4bd924f54c70000000000000001000000000000000100000000000000208c5f5a9ca92fa25b3cb2269109772cf046d141f2f266e6b00a51880f9b5e4c0c0000000000000001000000000000000100000000000000206734614ed77e53573ffbf86fbe44cbefe573d472aa76a42ac157c94157e83947000000000000000100000000000000000000000000000020cbfb778cde18e35ab0344f4b85b88df4f36cbf6d24c150ce600e67178b8827b5000000000000000100000000000000000000000000000020e0725cc48b30467ecbe48556beb3caf31041c9c7ab294f7e8ef642b0215a1fe200000000000000120000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef50000000000000005000000000000000100000000000000010000000000000020be918da74d3cad95d14002ba8c626bb2168af51f9eedf138c98d4ed279089176000000000000000100000000000000000000000000000020a198a7db0a8414188f7664a8c774263eb07f47bd62487a1a44d3a54ea68c07e00000000000000001000000000000000100000000000000209e52e0555c0963eb1c4fb49139486ee99362b6bb8847fea901b7b78e74bec727000000000000000100000000000000010000000000000020bd02b18b5162c5ac4761db5b593de2e4c18777a3069e98dc495d15a7aa70ffea0000000000000001000000000000000000000000000000203251395512b0308ae0e19ffc7814d52d6497585e03ae27623690a292dc32c32000000000000000050000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd9390000000000000006000000000000000100000000000000000000000000000020c132da55de0da88e9a5c77c1df68da65ef466b5158869ec62fe89455bc34f1b3000000000000000100000000000000010000000000000020b217496e0441a6eaeca0899f8bad1cb6dd37d8c230e0f79a209b346b99ac9a59000000000000000100000000000000000000000000000020d4f464b25f572efbda4e6ebee3c6e18d8d8b8b660489af4be21d41d42e1eb9ef0000000000000001000000000000000100000000000000206fa72c168a995814b90006c204f6749234c04087487ec39d56612aa3e890e90b0000000000000001000000000000000100000000000000204cfc485308731dc426159458c85663e4badd44b549e8280122835a4b4cb281380000000000000001000000000000000100000000000000205bf10dc59a13b90e881abd949a341f5738d5642fdd7d1241bc2cb59ddb0e0bd500000000000000050000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef500000000000000050000000000000001000000000000000000000000000000205440c83e7896b38eaa1b93701c961b2eef127a1bd890b41fe09e4a43e93de194000000000000000100000000000000010000000000000020c562e756fee19067cbdc57051d93b33a4668eafd9041e18f025c1fda76524937000000000000000100000000000000000000000000000020cd4e0a0414c5364a3560de40c273fbbffb9bedd06078a3d6959d7a705bcde706000000000000000100000000000000010000000000000020f7d354561e9b2e7735ce60ef83ce2f2489593b421cb4642a172d19346d977eca000000000000000100000000000000010000000000000020c1a7e93ade1f97ccb8317d056d09c8fe77b2eaec2b4134ddc1a3b7b9206179c5000000000000000b0000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd93900000000000000060000000000000001000000000000000000000000000000201c262123d783665f99dd549abc3ec9cf75f1a89bb82a26f44ef0c6c3912aec73000000000000000100000000000000000000000000000020ddc4fc64e8c9a53ea4cd7b045f6c576e6728115b82d3cc1cab1f2920cdddb337000000000000000100000000000000010000000000000020b14d20b4e51a485e637d358332632a6c29a8d14bf2bb09376b5361a37f836be80000000000000001000000000000000000000000000000207cf1aed28045afc9e81f498b811640bb174bb37565a6b8262e9e8a461209bd1f0000000000000001000000000000000100000000000000204cfc485308731dc426159458c85663e4badd44b549e8280122835a4b4cb281380000000000000001000000000000000100000000000000205bf10dc59a13b90e881abd949a341f5738d5642fdd7d1241bc2cb59ddb0e0bd5000000000000000b0000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef5000000000000000500000000000000010000000000000000000000000000002072f17ba755a635b76225ce8129df9554f68d2be1c9635f747514ebe588a91e480000000000000001000000000000000000000000000000206ab319f03d7349e32b9e5cdafd0353970678990579106ff246e94977eeb65183000000000000000100000000000000010000000000000020a1c24adf981f0743238d97632635bb0553d0b99dcb33000fb088661180d96f730000000000000001000000000000000000000000000000206ed425d8b3c03ec9103a7ee7be6e4b55c554e2a9cda70235e93fe250e571139a000000000000000100000000000000010000000000000020c1a7e93ade1f97ccb8317d056d09c8fe77b2eaec2b4134ddc1a3b7b9206179c500000000000000260000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd93900000000000000060000000000000001000000000000000100000000000000201c6e720a658279ba4c4e5f1d24996836addc0fa24585db0231dce13da0528994000000000000000100000000000000000000000000000020272cb7a0807a23e323a7c2dd5a9b977edbfba7c8f35fec272f666babeffb3bb40000000000000001000000000000000000000000000000203af36074ac02d520704d4024aa7f8edf35c6dbe9badc79747cb8a446ba559575000000000000000100000000000000010000000000000020733c2543bc11fd1162f30f9ecb93836d968dc9f08d2774fa5a282a89604493f800000000000000010000000000000001000000000000002068c3c8c60119e51e904832f3e8e693569b77d5e8243170c95d9d257ee208a03e000000000000000100000000000000000000000000000020e0725cc48b30467ecbe48556beb3caf31041c9c7ab294f7e8ef642b0215a1fe200000000000000060000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef50000000000000005000000000000000100000000000000010000000000000020b255a9cd1523a1e489a14cb4d343421e2fa6034b18b9733263939e0ceac19ec0000000000000000100000000000000000000000000000020f4e3e97d431657c336423763cc1ad92306213f7cb6cf711a2b0b087510dec8ee000000000000000100000000000000000000000000000020cd4e0a0414c5364a3560de40c273fbbffb9bedd06078a3d6959d7a705bcde706000000000000000100000000000000010000000000000020f7d354561e9b2e7735ce60ef83ce2f2489593b421cb4642a172d19346d977eca000000000000000100000000000000010000000000000020c1a7e93ade1f97ccb8317d056d09c8fe77b2eaec2b4134ddc1a3b7b9206179c500000000000000330000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd93900000000000000060000000000000001000000000000000000000000000000203469165caa5d7bcaad00626c0eeae8c040a0cd38acbfdbea3f5ec4e8fb5e2b7100000000000000010000000000000000000000000000002024032ee71505748a24093a56d01e5d9a7af31aa527f7b91baf4eb4bd924f54c70000000000000001000000000000000100000000000000208c5f5a9ca92fa25b3cb2269109772cf046d141f2f266e6b00a51880f9b5e4c0c0000000000000001000000000000000100000000000000206734614ed77e53573ffbf86fbe44cbefe573d472aa76a42ac157c94157e83947000000000000000100000000000000000000000000000020cbfb778cde18e35ab0344f4b85b88df4f36cbf6d24c150ce600e67178b8827b5000000000000000100000000000000000000000000000020e0725cc48b30467ecbe48556beb3caf31041c9c7ab294f7e8ef642b0215a1fe200000000000000130000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef500000000000000050000000000000001000000000000000000000000000000201f6c2a16d3a52b8a92c273c4e8406e5e46ae99a5c2feb335b743749c0cc5dd3b000000000000000100000000000000000000000000000020a198a7db0a8414188f7664a8c774263eb07f47bd62487a1a44d3a54ea68c07e00000000000000001000000000000000100000000000000209e52e0555c0963eb1c4fb49139486ee99362b6bb8847fea901b7b78e74bec727000000000000000100000000000000010000000000000020bd02b18b5162c5ac4761db5b593de2e4c18777a3069e98dc495d15a7aa70ffea0000000000000001000000000000000000000000000000203251395512b0308ae0e19ffc7814d52d6497585e03ae27623690a292dc32c32000000000000000120000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd939000000000000000600000000000000010000000000000001000000000000002035b6e487e20e64fdb2e6c7e88912dfc91acb5810e782743572e93726f3c60f2d000000000000000100000000000000000000000000000020f374142d6ecbece6d4a8c9b426347e00c8427e0f55d0ce67205828392302857700000000000000010000000000000001000000000000002091c3d5608b436e656c545379d9e5121724f1eb1e3da7c00a6edd742c0adbea9a000000000000000100000000000000010000000000000020d09f4cd6fb164d23ae42c6a0492914ba86bfda75dff9dcb23d67045f57f646eb0000000000000001000000000000000000000000000000206556d8f21f43cee879ff5ca698cb8aa8e65cd336d4ccf8e00c062fca0ab8ab5e0000000000000001000000000000000100000000000000205bf10dc59a13b90e881abd949a341f5738d5642fdd7d1241bc2cb59ddb0e0bd500000000000000120000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef50000000000000005000000000000000100000000000000010000000000000020be918da74d3cad95d14002ba8c626bb2168af51f9eedf138c98d4ed279089176000000000000000100000000000000000000000000000020a198a7db0a8414188f7664a8c774263eb07f47bd62487a1a44d3a54ea68c07e00000000000000001000000000000000100000000000000209e52e0555c0963eb1c4fb49139486ee99362b6bb8847fea901b7b78e74bec727000000000000000100000000000000010000000000000020bd02b18b5162c5ac4761db5b593de2e4c18777a3069e98dc495d15a7aa70ffea0000000000000001000000000000000000000000000000203251395512b0308ae0e19ffc7814d52d6497585e03ae27623690a292dc32c320000000000000002b0000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd939000000000000000600000000000000010000000000000000000000000000002069bd3d8b5553acade7249d0474b703e1d5c342b402d34af2671d3eb959997b61000000000000000100000000000000000000000000000020704f499ba4024299b4fbce58ed843a14fd7004bce10329e90c19f7dfe7dd3acf0000000000000001000000000000000100000000000000206a953a26f814640662f3683f32561680d02f790320fa23a5c0648c7c91d856610000000000000001000000000000000000000000000000209c4b00c8496d131f492c88318e21e27cad9cce37b8f2ca1e1c4225d19e5f219b00000000000000010000000000000001000000000000002068c3c8c60119e51e904832f3e8e693569b77d5e8243170c95d9d257ee208a03e000000000000000100000000000000000000000000000020e0725cc48b30467ecbe48556beb3caf31041c9c7ab294f7e8ef642b0215a1fe2000000000000000b0000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef5000000000000000500000000000000010000000000000000000000000000002072f17ba755a635b76225ce8129df9554f68d2be1c9635f747514ebe588a91e480000000000000001000000000000000000000000000000206ab319f03d7349e32b9e5cdafd0353970678990579106ff246e94977eeb65183000000000000000100000000000000010000000000000020a1c24adf981f0743238d97632635bb0553d0b99dcb33000fb088661180d96f730000000000000001000000000000000000000000000000206ed425d8b3c03ec9103a7ee7be6e4b55c554e2a9cda70235e93fe250e571139a000000000000000100000000000000010000000000000020c1a7e93ade1f97ccb8317d056d09c8fe77b2eaec2b4134ddc1a3b7b9206179c500000000000000240000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd9390000000000000006000000000000000100000000000000010000000000000020610490f9210f6482aafb2fd925448e00fd7a0b0d656da35b35974f0ed07353380000000000000001000000000000000100000000000000203a5827c2882befa4bc23410aab42a1065f7a14aa28427cb945a73ce92d84b8c00000000000000001000000000000000000000000000000203af36074ac02d520704d4024aa7f8edf35c6dbe9badc79747cb8a446ba559575000000000000000100000000000000010000000000000020733c2543bc11fd1162f30f9ecb93836d968dc9f08d2774fa5a282a89604493f800000000000000010000000000000001000000000000002068c3c8c60119e51e904832f3e8e693569b77d5e8243170c95d9d257ee208a03e000000000000000100000000000000000000000000000020e0725cc48b30467ecbe48556beb3caf31041c9c7ab294f7e8ef642b0215a1fe200000000000000040000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef500000000000000050000000000000001000000000000000100000000000000204aba3651601b5e61a29f5f6b4cc63305b28e9fcfc910ce88939407fd593b1f00000000000000000100000000000000010000000000000020c562e756fee19067cbdc57051d93b33a4668eafd9041e18f025c1fda76524937000000000000000100000000000000000000000000000020cd4e0a0414c5364a3560de40c273fbbffb9bedd06078a3d6959d7a705bcde706000000000000000100000000000000010000000000000020f7d354561e9b2e7735ce60ef83ce2f2489593b421cb4642a172d19346d977eca000000000000000100000000000000010000000000000020c1a7e93ade1f97ccb8317d056d09c8fe77b2eaec2b4134ddc1a3b7b9206179c5000000000000000c0000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd939000000000000000600000000000000010000000000000001000000000000002020b49f91c6c8ee14e484840427f5ab3bf2c26d83dbe8dce70c1e14bb9814e029000000000000000100000000000000010000000000000020dd7fa1eda7e8b74fadcaef802779eba900ce6a1cadebe870727a960f0ad96d19000000000000000100000000000000000000000000000020160c4df7d87c48492c8bbfcd357f8eee42f5146d564a06e1208402da964098ae0000000000000001000000000000000000000000000000207cf1aed28045afc9e81f498b811640bb174bb37565a6b8262e9e8a461209bd1f0000000000000001000000000000000100000000000000204cfc485308731dc426159458c85663e4badd44b549e8280122835a4b4cb281380000000000000001000000000000000100000000000000205bf10dc59a13b90e881abd949a341f5738d5642fdd7d1241bc2cb59ddb0e0bd5000000000000000c0000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef5000000000000000500000000000000010000000000000001000000000000002087fbd8eee0c1464079e6ffa5d38470360559ae03fa9c2f14e8a5eb6a74cfe17a000000000000000100000000000000010000000000000020c3d0bd8238559dd96928de090c5a0806056097009ef2ec8d21ace1fb38d369a4000000000000000100000000000000000000000000000020eed54270dbb003570d306705fdd7083a3d7a9636bb3bb6f191b2a30a577afb520000000000000001000000000000000000000000000000206ed425d8b3c03ec9103a7ee7be6e4b55c554e2a9cda70235e93fe250e571139a000000000000000100000000000000010000000000000020c1a7e93ade1f97ccb8317d056d09c8fe77b2eaec2b4134ddc1a3b7b9206179c500000000000000350000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd93900000000000000060000000000000001000000000000000000000000000000202c6c88e8f0c1cd662481635e712e05e68775311e7f8a63f5d8256da949c11364000000000000000100000000000000010000000000000020dec0f85242e87bcde79b8f8073e6532b0624ae519e39493cde9f0a63f649b678000000000000000100000000000000000000000000000020fb1faa5f95d893ba07a189cbce862ef411cc25da7b445accdb6293b794baf06b0000000000000001000000000000000100000000000000206734614ed77e53573ffbf86fbe44cbefe573d472aa76a42ac157c94157e83947000000000000000100000000000000000000000000000020cbfb778cde18e35ab0344f4b85b88df4f36cbf6d24c150ce600e67178b8827b5000000000000000100000000000000000000000000000020e0725cc48b30467ecbe48556beb3caf31041c9c7ab294f7e8ef642b0215a1fe200000000000000150000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef50000000000000005000000000000000100000000000000000000000000000020e9905150c1532980c4c75a7f13d5dddbc76af47c932cced40a2c81487e7489d0000000000000000100000000000000010000000000000020cbec1229f906105230cc17e835025d9d5519d1fbd664eb4ac98969a51aed603f000000000000000100000000000000000000000000000020b05361fd4c756db858c53221d927e22140f013ca63bf1fb3c9739df207d6d702000000000000000100000000000000010000000000000020bd02b18b5162c5ac4761db5b593de2e4c18777a3069e98dc495d15a7aa70ffea0000000000000001000000000000000000000000000000203251395512b0308ae0e19ffc7814d52d6497585e03ae27623690a292dc32c320000000000000001a0000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd93900000000000000060000000000000001000000000000000100000000000000201b3eab27c13370bf54fceb8b57a7a990335fcdccac21b19423077cf81573c8fb0000000000000001000000000000000000000000000000206c44b46cfc973d5eb8bde55847539df3dedf939bde18bd23ac617c1365eda35d000000000000000100000000000000010000000000000020f48f5d2471c48275aeeb25f0f5bdb50240a97dda12ea2e3df644a25efa1b74f5000000000000000100000000000000000000000000000020eca549bec44e65d3dfe608335df73376d2ef4d0d702df494d1de21a8fd31b1050000000000000001000000000000000000000000000000206556d8f21f43cee879ff5ca698cb8aa8e65cd336d4ccf8e00c062fca0ab8ab5e0000000000000001000000000000000100000000000000205bf10dc59a13b90e881abd949a341f5738d5642fdd7d1241bc2cb59ddb0e0bd5000000000000001a0000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef5000000000000000500000000000000010000000000000001000000000000002063d33d3f4bb0e1a5141947361f009459f1129eb1dc1430accee28379e42141ae00000000000000010000000000000000000000000000002053ee06c0af6e3d7f182e57cd0d726908dc38f21ca6466363d2aa9c07057d3791000000000000000100000000000000010000000000000020aa873ce4d7f4afd40edf1278d299c6c3f65447cffaa140939ba597cfbb17ae9400000000000000010000000000000000000000000000002048cbc9463f5228c72f218aa878865d5d6e914cdecf483c10e62362be71686ba10000000000000001000000000000000000000000000000203251395512b0308ae0e19ffc7814d52d6497585e03ae27623690a292dc32c320000000000000003c0000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd939000000000000000600000000000000010000000000000001000000000000002051980c291eac7e04250602f2b13239290dabd6c26c64f02d4e70c3215a715e46000000000000000100000000000000010000000000000020d1b332c3114ea1ecd8adee701317c900bd240d21bd31ad2f3239f9d395479f580000000000000001000000000000000000000000000000206e93d37cc6d24cdddc4ec518d10bbc52c57414746b8f37048e6f9dc8518d703f00000000000000010000000000000000000000000000002097464258faa4181c827a41114b2e43dfd2fdd56311dfff9d6bd37b81663db0b9000000000000000100000000000000000000000000000020cbfb778cde18e35ab0344f4b85b88df4f36cbf6d24c150ce600e67178b8827b5000000000000000100000000000000000000000000000020e0725cc48b30467ecbe48556beb3caf31041c9c7ab294f7e8ef642b0215a1fe2000000000000001c0000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef50000000000000005000000000000000100000000000000010000000000000020169ff7dea3b1b0e8d51b9113692619ef50f413dafb02f348d398f3a52e00b79c00000000000000010000000000000001000000000000002087b8fc880cee6f4187d88ae01444f3d977f39b6cb7138c8e28ccccb721e8dd97000000000000000100000000000000000000000000000020f02907b469a124ab2f4196e8a2ba5f102426a738fc3bc6221dea20aa46310f5000000000000000010000000000000000000000000000002048cbc9463f5228c72f218aa878865d5d6e914cdecf483c10e62362be71686ba10000000000000001000000000000000000000000000000203251395512b0308ae0e19ffc7814d52d6497585e03ae27623690a292dc32c32000000000000000240000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd9390000000000000006000000000000000100000000000000010000000000000020610490f9210f6482aafb2fd925448e00fd7a0b0d656da35b35974f0ed07353380000000000000001000000000000000100000000000000203a5827c2882befa4bc23410aab42a1065f7a14aa28427cb945a73ce92d84b8c00000000000000001000000000000000000000000000000203af36074ac02d520704d4024aa7f8edf35c6dbe9badc79747cb8a446ba559575000000000000000100000000000000010000000000000020733c2543bc11fd1162f30f9ecb93836d968dc9f08d2774fa5a282a89604493f800000000000000010000000000000001000000000000002068c3c8c60119e51e904832f3e8e693569b77d5e8243170c95d9d257ee208a03e000000000000000100000000000000000000000000000020e0725cc48b30467ecbe48556beb3caf31041c9c7ab294f7e8ef642b0215a1fe200000000000000040000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef500000000000000050000000000000001000000000000000100000000000000204aba3651601b5e61a29f5f6b4cc63305b28e9fcfc910ce88939407fd593b1f00000000000000000100000000000000010000000000000020c562e756fee19067cbdc57051d93b33a4668eafd9041e18f025c1fda76524937000000000000000100000000000000000000000000000020cd4e0a0414c5364a3560de40c273fbbffb9bedd06078a3d6959d7a705bcde706000000000000000100000000000000010000000000000020f7d354561e9b2e7735ce60ef83ce2f2489593b421cb4642a172d19346d977eca000000000000000100000000000000010000000000000020c1a7e93ade1f97ccb8317d056d09c8fe77b2eaec2b4134ddc1a3b7b9206179c5000000000000001a0000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd93900000000000000060000000000000001000000000000000100000000000000201b3eab27c13370bf54fceb8b57a7a990335fcdccac21b19423077cf81573c8fb0000000000000001000000000000000000000000000000206c44b46cfc973d5eb8bde55847539df3dedf939bde18bd23ac617c1365eda35d000000000000000100000000000000010000000000000020f48f5d2471c48275aeeb25f0f5bdb50240a97dda12ea2e3df644a25efa1b74f5000000000000000100000000000000000000000000000020eca549bec44e65d3dfe608335df73376d2ef4d0d702df494d1de21a8fd31b1050000000000000001000000000000000000000000000000206556d8f21f43cee879ff5ca698cb8aa8e65cd336d4ccf8e00c062fca0ab8ab5e0000000000000001000000000000000100000000000000205bf10dc59a13b90e881abd949a341f5738d5642fdd7d1241bc2cb59ddb0e0bd5000000000000001a0000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef5000000000000000500000000000000010000000000000001000000000000002063d33d3f4bb0e1a5141947361f009459f1129eb1dc1430accee28379e42141ae00000000000000010000000000000000000000000000002053ee06c0af6e3d7f182e57cd0d726908dc38f21ca6466363d2aa9c07057d3791000000000000000100000000000000010000000000000020aa873ce4d7f4afd40edf1278d299c6c3f65447cffaa140939ba597cfbb17ae9400000000000000010000000000000000000000000000002048cbc9463f5228c72f218aa878865d5d6e914cdecf483c10e62362be71686ba10000000000000001000000000000000000000000000000203251395512b0308ae0e19ffc7814d52d6497585e03ae27623690a292dc32c32000000000000000020000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd9390000000000000006000000000000000100000000000000010000000000000020b39029843c3d1bc7af2566145d482265884d1234dc81902c8b2b5ba00a6f89d60000000000000001000000000000000000000000000000204dc1ae24d15a1c66f0310264ed5ee327e6640d1ea637d3dc63a70838dffb50a1000000000000000100000000000000010000000000000020401e6d47c71559cff0584caa044bf75a327a87948b5cf6f8c8498f7c7f758f8c0000000000000001000000000000000100000000000000206fa72c168a995814b90006c204f6749234c04087487ec39d56612aa3e890e90b0000000000000001000000000000000100000000000000204cfc485308731dc426159458c85663e4badd44b549e8280122835a4b4cb281380000000000000001000000000000000100000000000000205bf10dc59a13b90e881abd949a341f5738d5642fdd7d1241bc2cb59ddb0e0bd500000000000000020000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef50000000000000005000000000000000100000000000000010000000000000020df9a09bdecc3a0e79608329d7b4a657d0def510f87e0fdbdd095532e88dafb2900000000000000010000000000000000000000000000002016d682d36234c927920c9be2ef73d4aaa8b6e912ea4036ea103b48aced648e62000000000000000100000000000000010000000000000020ac276de3aa96ad1e64c43ac69575789fb35e8dd5d6f379518b7f2106bb5b7a4d000000000000000100000000000000010000000000000020f7d354561e9b2e7735ce60ef83ce2f2489593b421cb4642a172d19346d977eca000000000000000100000000000000010000000000000020c1a7e93ade1f97ccb8317d056d09c8fe77b2eaec2b4134ddc1a3b7b9206179c500000000000000050000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd9390000000000000006000000000000000100000000000000000000000000000020c132da55de0da88e9a5c77c1df68da65ef466b5158869ec62fe89455bc34f1b3000000000000000100000000000000010000000000000020b217496e0441a6eaeca0899f8bad1cb6dd37d8c230e0f79a209b346b99ac9a59000000000000000100000000000000000000000000000020d4f464b25f572efbda4e6ebee3c6e18d8d8b8b660489af4be21d41d42e1eb9ef0000000000000001000000000000000100000000000000206fa72c168a995814b90006c204f6749234c04087487ec39d56612aa3e890e90b0000000000000001000000000000000100000000000000204cfc485308731dc426159458c85663e4badd44b549e8280122835a4b4cb281380000000000000001000000000000000100000000000000205bf10dc59a13b90e881abd949a341f5738d5642fdd7d1241bc2cb59ddb0e0bd500000000000000050000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef500000000000000050000000000000001000000000000000000000000000000205440c83e7896b38eaa1b93701c961b2eef127a1bd890b41fe09e4a43e93de194000000000000000100000000000000010000000000000020c562e756fee19067cbdc57051d93b33a4668eafd9041e18f025c1fda76524937000000000000000100000000000000000000000000000020cd4e0a0414c5364a3560de40c273fbbffb9bedd06078a3d6959d7a705bcde706000000000000000100000000000000010000000000000020f7d354561e9b2e7735ce60ef83ce2f2489593b421cb4642a172d19346d977eca000000000000000100000000000000010000000000000020c1a7e93ade1f97ccb8317d056d09c8fe77b2eaec2b4134ddc1a3b7b9206179c500000000000000230000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd939000000000000000600000000000000010000000000000000000000000000002035cdc59fd4e93fdddb4f8e372acd2f93ef1999ee3e39830f18287fd780b974110000000000000001000000000000000000000000000000204cb289dc9048d6c33309e5c602e250a6cb32025f0ff1381d8cd94a2e7065662a00000000000000010000000000000001000000000000002019e4a5fede7e19b687dfcb423f417d8b7b32b4b43f7b7c27efb040445dfd17b1000000000000000100000000000000010000000000000020733c2543bc11fd1162f30f9ecb93836d968dc9f08d2774fa5a282a89604493f800000000000000010000000000000001000000000000002068c3c8c60119e51e904832f3e8e693569b77d5e8243170c95d9d257ee208a03e000000000000000100000000000000000000000000000020e0725cc48b30467ecbe48556beb3caf31041c9c7ab294f7e8ef642b0215a1fe200000000000000030000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef500000000000000050000000000000001000000000000000000000000000000205c041797f461c4c8950d223686dddbe23ef4490e7eb38ecec461ec3a8e2802ab00000000000000010000000000000000000000000000002016d682d36234c927920c9be2ef73d4aaa8b6e912ea4036ea103b48aced648e62000000000000000100000000000000010000000000000020ac276de3aa96ad1e64c43ac69575789fb35e8dd5d6f379518b7f2106bb5b7a4d000000000000000100000000000000010000000000000020f7d354561e9b2e7735ce60ef83ce2f2489593b421cb4642a172d19346d977eca000000000000000100000000000000010000000000000020c1a7e93ade1f97ccb8317d056d09c8fe77b2eaec2b4134ddc1a3b7b9206179c500000000000000390000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd9390000000000000006000000000000000100000000000000000000000000000020351f8a0f29831d28f1e798741797efe02261d788051edc9a8dffe714b01a3b990000000000000001000000000000000100000000000000209a265a9518f38165fd912fd3266abb9502e52c0cd951cf2dd467d3199b58f7ab0000000000000001000000000000000100000000000000209311ed09c175c3c72ac8fe1d36824fd759f8184386bf35a81793adc9bb8b22a100000000000000010000000000000000000000000000002097464258faa4181c827a41114b2e43dfd2fdd56311dfff9d6bd37b81663db0b9000000000000000100000000000000000000000000000020cbfb778cde18e35ab0344f4b85b88df4f36cbf6d24c150ce600e67178b8827b5000000000000000100000000000000000000000000000020e0725cc48b30467ecbe48556beb3caf31041c9c7ab294f7e8ef642b0215a1fe200000000000000190000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef500000000000000050000000000000001000000000000000000000000000000209f168d553d7d0e076916cc6a15b5ef9458a75ff9688d258e9007b48a5480eda300000000000000010000000000000001000000000000002087a06c01f68ef71de3ddc1f535e0582954fee5d1e15379e0e9e8d4b1ef0978cf000000000000000100000000000000010000000000000020aa873ce4d7f4afd40edf1278d299c6c3f65447cffaa140939ba597cfbb17ae9400000000000000010000000000000000000000000000002048cbc9463f5228c72f218aa878865d5d6e914cdecf483c10e62362be71686ba10000000000000001000000000000000000000000000000203251395512b0308ae0e19ffc7814d52d6497585e03ae27623690a292dc32c32000000000000000200000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd93900000000000000060000000000000001000000000000000100000000000000201492e0e7654da6e5c41d51382a21180fa6775c94219a3701785768bf630241a5000000000000000100000000000000010000000000000020a356938ff75b271c06d43c1b588bc7dd48ba3d43e1c6ef9b7c9a79d1a6fb7d2600000000000000010000000000000001000000000000002019e4a5fede7e19b687dfcb423f417d8b7b32b4b43f7b7c27efb040445dfd17b1000000000000000100000000000000010000000000000020733c2543bc11fd1162f30f9ecb93836d968dc9f08d2774fa5a282a89604493f800000000000000010000000000000001000000000000002068c3c8c60119e51e904832f3e8e693569b77d5e8243170c95d9d257ee208a03e000000000000000100000000000000000000000000000020e0725cc48b30467ecbe48556beb3caf31041c9c7ab294f7e8ef642b0215a1fe200000000000000000000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef500000000000000050000000000000001000000000000000100000000000000207bb9f418d81018b9695f9699f74725ec60684a7badb849f7da9eb0e06726806c000000000000000100000000000000010000000000000020297c5ccbdf5391fe9a33982ff368c160bbea47f01264cd733be7a18cbf1a3a9a000000000000000100000000000000010000000000000020ac276de3aa96ad1e64c43ac69575789fb35e8dd5d6f379518b7f2106bb5b7a4d000000000000000100000000000000010000000000000020f7d354561e9b2e7735ce60ef83ce2f2489593b421cb4642a172d19346d977eca000000000000000100000000000000010000000000000020c1a7e93ade1f97ccb8317d056d09c8fe77b2eaec2b4134ddc1a3b7b9206179c5000000000000001c0000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd9390000000000000006000000000000000100000000000000010000000000000020974c981378a1906b5bc1ecc3b9e4dd1fdba8a7a6b05a98c839a6913b95fef77800000000000000010000000000000001000000000000002006b5b2dec59694db6074703df8d9f2d7a4b7972f7c568a4f036cebfe5036cf590000000000000001000000000000000000000000000000205e933bf79f8f670bebb642c877a9651153c0592112ec0c284c562e4db7f83827000000000000000100000000000000000000000000000020eca549bec44e65d3dfe608335df73376d2ef4d0d702df494d1de21a8fd31b1050000000000000001000000000000000000000000000000206556d8f21f43cee879ff5ca698cb8aa8e65cd336d4ccf8e00c062fca0ab8ab5e0000000000000001000000000000000100000000000000205bf10dc59a13b90e881abd949a341f5738d5642fdd7d1241bc2cb59ddb0e0bd5000000000000001c0000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef50000000000000005000000000000000100000000000000010000000000000020169ff7dea3b1b0e8d51b9113692619ef50f413dafb02f348d398f3a52e00b79c00000000000000010000000000000001000000000000002087b8fc880cee6f4187d88ae01444f3d977f39b6cb7138c8e28ccccb721e8dd97000000000000000100000000000000000000000000000020f02907b469a124ab2f4196e8a2ba5f102426a738fc3bc6221dea20aa46310f5000000000000000010000000000000000000000000000002048cbc9463f5228c72f218aa878865d5d6e914cdecf483c10e62362be71686ba10000000000000001000000000000000000000000000000203251395512b0308ae0e19ffc7814d52d6497585e03ae27623690a292dc32c32000000000000000200000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd93900000000000000060000000000000001000000000000000100000000000000201492e0e7654da6e5c41d51382a21180fa6775c94219a3701785768bf630241a5000000000000000100000000000000010000000000000020a356938ff75b271c06d43c1b588bc7dd48ba3d43e1c6ef9b7c9a79d1a6fb7d2600000000000000010000000000000001000000000000002019e4a5fede7e19b687dfcb423f417d8b7b32b4b43f7b7c27efb040445dfd17b1000000000000000100000000000000010000000000000020733c2543bc11fd1162f30f9ecb93836d968dc9f08d2774fa5a282a89604493f800000000000000010000000000000001000000000000002068c3c8c60119e51e904832f3e8e693569b77d5e8243170c95d9d257ee208a03e000000000000000100000000000000000000000000000020e0725cc48b30467ecbe48556beb3caf31041c9c7ab294f7e8ef642b0215a1fe200000000000000000000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef500000000000000050000000000000001000000000000000100000000000000207bb9f418d81018b9695f9699f74725ec60684a7badb849f7da9eb0e06726806c000000000000000100000000000000010000000000000020297c5ccbdf5391fe9a33982ff368c160bbea47f01264cd733be7a18cbf1a3a9a000000000000000100000000000000010000000000000020ac276de3aa96ad1e64c43ac69575789fb35e8dd5d6f379518b7f2106bb5b7a4d000000000000000100000000000000010000000000000020f7d354561e9b2e7735ce60ef83ce2f2489593b421cb4642a172d19346d977eca000000000000000100000000000000010000000000000020c1a7e93ade1f97ccb8317d056d09c8fe77b2eaec2b4134ddc1a3b7b9206179c500000000000000390000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd9390000000000000006000000000000000100000000000000000000000000000020351f8a0f29831d28f1e798741797efe02261d788051edc9a8dffe714b01a3b990000000000000001000000000000000100000000000000209a265a9518f38165fd912fd3266abb9502e52c0cd951cf2dd467d3199b58f7ab0000000000000001000000000000000100000000000000209311ed09c175c3c72ac8fe1d36824fd759f8184386bf35a81793adc9bb8b22a100000000000000010000000000000000000000000000002097464258faa4181c827a41114b2e43dfd2fdd56311dfff9d6bd37b81663db0b9000000000000000100000000000000000000000000000020cbfb778cde18e35ab0344f4b85b88df4f36cbf6d24c150ce600e67178b8827b5000000000000000100000000000000000000000000000020e0725cc48b30467ecbe48556beb3caf31041c9c7ab294f7e8ef642b0215a1fe200000000000000190000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef500000000000000050000000000000001000000000000000000000000000000209f168d553d7d0e076916cc6a15b5ef9458a75ff9688d258e9007b48a5480eda300000000000000010000000000000001000000000000002087a06c01f68ef71de3ddc1f535e0582954fee5d1e15379e0e9e8d4b1ef0978cf000000000000000100000000000000010000000000000020aa873ce4d7f4afd40edf1278d299c6c3f65447cffaa140939ba597cfbb17ae9400000000000000010000000000000000000000000000002048cbc9463f5228c72f218aa878865d5d6e914cdecf483c10e62362be71686ba10000000000000001000000000000000000000000000000203251395512b0308ae0e19ffc7814d52d6497585e03ae27623690a292dc32c320000000000000001d0000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd939000000000000000600000000000000010000000000000000000000000000002042cb0ce28f07e49e49e3ea5458ae4dabf5e849a7c93c9b7d9eaf8fe9ab4f1d0200000000000000010000000000000001000000000000002006b5b2dec59694db6074703df8d9f2d7a4b7972f7c568a4f036cebfe5036cf590000000000000001000000000000000000000000000000205e933bf79f8f670bebb642c877a9651153c0592112ec0c284c562e4db7f83827000000000000000100000000000000000000000000000020eca549bec44e65d3dfe608335df73376d2ef4d0d702df494d1de21a8fd31b1050000000000000001000000000000000000000000000000206556d8f21f43cee879ff5ca698cb8aa8e65cd336d4ccf8e00c062fca0ab8ab5e0000000000000001000000000000000100000000000000205bf10dc59a13b90e881abd949a341f5738d5642fdd7d1241bc2cb59ddb0e0bd5000000000000001d0000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef50000000000000005000000000000000100000000000000000000000000000020d399c9fdad128a4f941c9caf54414d13e651af187125a1f1c8524cd0ea38b14c00000000000000010000000000000001000000000000002087b8fc880cee6f4187d88ae01444f3d977f39b6cb7138c8e28ccccb721e8dd97000000000000000100000000000000000000000000000020f02907b469a124ab2f4196e8a2ba5f102426a738fc3bc6221dea20aa46310f5000000000000000010000000000000000000000000000002048cbc9463f5228c72f218aa878865d5d6e914cdecf483c10e62362be71686ba10000000000000001000000000000000000000000000000203251395512b0308ae0e19ffc7814d52d6497585e03ae27623690a292dc32c32000000000000000090000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd939000000000000000600000000000000010000000000000000000000000000002093049416e0400665b0a54a6d5758f2b5d0cf7e45f13b6ad74609ee9bfd76b9c00000000000000001000000000000000100000000000000207925c8eb7eb252649496eaca35f1935ad35c0d1219a86e0840b81a3348f1b4de000000000000000100000000000000010000000000000020b14d20b4e51a485e637d358332632a6c29a8d14bf2bb09376b5361a37f836be80000000000000001000000000000000000000000000000207cf1aed28045afc9e81f498b811640bb174bb37565a6b8262e9e8a461209bd1f0000000000000001000000000000000100000000000000204cfc485308731dc426159458c85663e4badd44b549e8280122835a4b4cb281380000000000000001000000000000000100000000000000205bf10dc59a13b90e881abd949a341f5738d5642fdd7d1241bc2cb59ddb0e0bd500000000000000090000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef500000000000000050000000000000001000000000000000000000000000000205cdba0dd7ba3efc22c0198563bef49c638343e0ede65575be06257d64a3fed72000000000000000100000000000000010000000000000020fa34f6949f8733eb9f6f868ade5c3be74dfc98265ba7185ff4b0cfe95ee75ad1000000000000000100000000000000010000000000000020a1c24adf981f0743238d97632635bb0553d0b99dcb33000fb088661180d96f730000000000000001000000000000000000000000000000206ed425d8b3c03ec9103a7ee7be6e4b55c554e2a9cda70235e93fe250e571139a000000000000000100000000000000010000000000000020c1a7e93ade1f97ccb8317d056d09c8fe77b2eaec2b4134ddc1a3b7b9206179c500000000000000190000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd9390000000000000006000000000000000100000000000000000000000000000020eb3f7ac21e6be27aa27e4a85e1a6e15bc2d4284553e806c67afaebe0a8f753a40000000000000001000000000000000100000000000000208ca228846359c4c3c61ce8a75fdcc1892a635968df327b70c543451ab5aa9e17000000000000000100000000000000010000000000000020f48f5d2471c48275aeeb25f0f5bdb50240a97dda12ea2e3df644a25efa1b74f5000000000000000100000000000000000000000000000020eca549bec44e65d3dfe608335df73376d2ef4d0d702df494d1de21a8fd31b1050000000000000001000000000000000000000000000000206556d8f21f43cee879ff5ca698cb8aa8e65cd336d4ccf8e00c062fca0ab8ab5e0000000000000001000000000000000100000000000000205bf10dc59a13b90e881abd949a341f5738d5642fdd7d1241bc2cb59ddb0e0bd500000000000000190000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef500000000000000050000000000000001000000000000000000000000000000209f168d553d7d0e076916cc6a15b5ef9458a75ff9688d258e9007b48a5480eda300000000000000010000000000000001000000000000002087a06c01f68ef71de3ddc1f535e0582954fee5d1e15379e0e9e8d4b1ef0978cf000000000000000100000000000000010000000000000020aa873ce4d7f4afd40edf1278d299c6c3f65447cffaa140939ba597cfbb17ae9400000000000000010000000000000000000000000000002048cbc9463f5228c72f218aa878865d5d6e914cdecf483c10e62362be71686ba10000000000000001000000000000000000000000000000203251395512b0308ae0e19ffc7814d52d6497585e03ae27623690a292dc32c320000000000000001c0000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd9390000000000000006000000000000000100000000000000010000000000000020974c981378a1906b5bc1ecc3b9e4dd1fdba8a7a6b05a98c839a6913b95fef77800000000000000010000000000000001000000000000002006b5b2dec59694db6074703df8d9f2d7a4b7972f7c568a4f036cebfe5036cf590000000000000001000000000000000000000000000000205e933bf79f8f670bebb642c877a9651153c0592112ec0c284c562e4db7f83827000000000000000100000000000000000000000000000020eca549bec44e65d3dfe608335df73376d2ef4d0d702df494d1de21a8fd31b1050000000000000001000000000000000000000000000000206556d8f21f43cee879ff5ca698cb8aa8e65cd336d4ccf8e00c062fca0ab8ab5e0000000000000001000000000000000100000000000000205bf10dc59a13b90e881abd949a341f5738d5642fdd7d1241bc2cb59ddb0e0bd5000000000000001c0000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef50000000000000005000000000000000100000000000000010000000000000020169ff7dea3b1b0e8d51b9113692619ef50f413dafb02f348d398f3a52e00b79c00000000000000010000000000000001000000000000002087b8fc880cee6f4187d88ae01444f3d977f39b6cb7138c8e28ccccb721e8dd97000000000000000100000000000000000000000000000020f02907b469a124ab2f4196e8a2ba5f102426a738fc3bc6221dea20aa46310f5000000000000000010000000000000000000000000000002048cbc9463f5228c72f218aa878865d5d6e914cdecf483c10e62362be71686ba10000000000000001000000000000000000000000000000203251395512b0308ae0e19ffc7814d52d6497585e03ae27623690a292dc32c32000000000000000290000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd939000000000000000600000000000000010000000000000000000000000000002031a12dd71c6b96f5a8194266f2afbc2e31945494aaeec3712c42e54b2819dd800000000000000001000000000000000100000000000000209241dbebf40ae518870e159edcbc815e2e0d9e2b71a5e2252c4b06f0f88d97a20000000000000001000000000000000100000000000000206a953a26f814640662f3683f32561680d02f790320fa23a5c0648c7c91d856610000000000000001000000000000000000000000000000209c4b00c8496d131f492c88318e21e27cad9cce37b8f2ca1e1c4225d19e5f219b00000000000000010000000000000001000000000000002068c3c8c60119e51e904832f3e8e693569b77d5e8243170c95d9d257ee208a03e000000000000000100000000000000000000000000000020e0725cc48b30467ecbe48556beb3caf31041c9c7ab294f7e8ef642b0215a1fe200000000000000090000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef500000000000000050000000000000001000000000000000000000000000000205cdba0dd7ba3efc22c0198563bef49c638343e0ede65575be06257d64a3fed72000000000000000100000000000000010000000000000020fa34f6949f8733eb9f6f868ade5c3be74dfc98265ba7185ff4b0cfe95ee75ad1000000000000000100000000000000010000000000000020a1c24adf981f0743238d97632635bb0553d0b99dcb33000fb088661180d96f730000000000000001000000000000000000000000000000206ed425d8b3c03ec9103a7ee7be6e4b55c554e2a9cda70235e93fe250e571139a000000000000000100000000000000010000000000000020c1a7e93ade1f97ccb8317d056d09c8fe77b2eaec2b4134ddc1a3b7b9206179c500000000000000100000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd939000000000000000600000000000000010000000000000001000000000000002070a91d5fca09298d7264ec7aee551a29734e99c8e8a266a9d9ab994b9719043a000000000000000100000000000000010000000000000020d69a66a010fe9f9ccfa2edf30d2a2a5644182a5ce4ec9318e8a6c5d32e2f6b7900000000000000010000000000000001000000000000002091c3d5608b436e656c545379d9e5121724f1eb1e3da7c00a6edd742c0adbea9a000000000000000100000000000000010000000000000020d09f4cd6fb164d23ae42c6a0492914ba86bfda75dff9dcb23d67045f57f646eb0000000000000001000000000000000000000000000000206556d8f21f43cee879ff5ca698cb8aa8e65cd336d4ccf8e00c062fca0ab8ab5e0000000000000001000000000000000100000000000000205bf10dc59a13b90e881abd949a341f5738d5642fdd7d1241bc2cb59ddb0e0bd500000000000000100000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef50000000000000005000000000000000100000000000000010000000000000020288524be9eeb76ec08cf8093d96b32dbd66fd5b0b6258f610786988d38424700000000000000000100000000000000010000000000000020853d37427e46cb215c06d743566796c32255e10836ff3e54bcf1e60318538e240000000000000001000000000000000100000000000000209e52e0555c0963eb1c4fb49139486ee99362b6bb8847fea901b7b78e74bec727000000000000000100000000000000010000000000000020bd02b18b5162c5ac4761db5b593de2e4c18777a3069e98dc495d15a7aa70ffea0000000000000001000000000000000000000000000000203251395512b0308ae0e19ffc7814d52d6497585e03ae27623690a292dc32c32000000000000000160000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd93900000000000000060000000000000001000000000000000100000000000000209aaba30f4c6e6cb80582ca62be57d21bd4c663071b07ea2dce299fef9b609cf700000000000000010000000000000000000000000000002074bb1cd63f8085aa6c735c078a485c1dc846d1156df6555e790682e3d3e10da1000000000000000100000000000000000000000000000020be3474f216defb30f109b94fbb52114ccc2025721aac0c9ffe6ed1b277a55f2f000000000000000100000000000000010000000000000020d09f4cd6fb164d23ae42c6a0492914ba86bfda75dff9dcb23d67045f57f646eb0000000000000001000000000000000000000000000000206556d8f21f43cee879ff5ca698cb8aa8e65cd336d4ccf8e00c062fca0ab8ab5e0000000000000001000000000000000100000000000000205bf10dc59a13b90e881abd949a341f5738d5642fdd7d1241bc2cb59ddb0e0bd500000000000000160000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef50000000000000005000000000000000100000000000000010000000000000020d412a5795bef186da88b4ad18ce39cff80ce5944fefad41f61ef16de93f4b7ed000000000000000100000000000000000000000000000020eb5a47c059592fe7a2ed52ded68810c2f6ecb2464cec6bf523f407e7ec50920f000000000000000100000000000000000000000000000020b05361fd4c756db858c53221d927e22140f013ca63bf1fb3c9739df207d6d702000000000000000100000000000000010000000000000020bd02b18b5162c5ac4761db5b593de2e4c18777a3069e98dc495d15a7aa70ffea0000000000000001000000000000000000000000000000203251395512b0308ae0e19ffc7814d52d6497585e03ae27623690a292dc32c320000000000000000c0000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd939000000000000000600000000000000010000000000000001000000000000002020b49f91c6c8ee14e484840427f5ab3bf2c26d83dbe8dce70c1e14bb9814e029000000000000000100000000000000010000000000000020dd7fa1eda7e8b74fadcaef802779eba900ce6a1cadebe870727a960f0ad96d19000000000000000100000000000000000000000000000020160c4df7d87c48492c8bbfcd357f8eee42f5146d564a06e1208402da964098ae0000000000000001000000000000000000000000000000207cf1aed28045afc9e81f498b811640bb174bb37565a6b8262e9e8a461209bd1f0000000000000001000000000000000100000000000000204cfc485308731dc426159458c85663e4badd44b549e8280122835a4b4cb281380000000000000001000000000000000100000000000000205bf10dc59a13b90e881abd949a341f5738d5642fdd7d1241bc2cb59ddb0e0bd5000000000000000c0000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef5000000000000000500000000000000010000000000000001000000000000002087fbd8eee0c1464079e6ffa5d38470360559ae03fa9c2f14e8a5eb6a74cfe17a000000000000000100000000000000010000000000000020c3d0bd8238559dd96928de090c5a0806056097009ef2ec8d21ace1fb38d369a4000000000000000100000000000000000000000000000020eed54270dbb003570d306705fdd7083a3d7a9636bb3bb6f191b2a30a577afb520000000000000001000000000000000000000000000000206ed425d8b3c03ec9103a7ee7be6e4b55c554e2a9cda70235e93fe250e571139a000000000000000100000000000000010000000000000020c1a7e93ade1f97ccb8317d056d09c8fe77b2eaec2b4134ddc1a3b7b9206179c500000000000000090000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd939000000000000000600000000000000010000000000000000000000000000002093049416e0400665b0a54a6d5758f2b5d0cf7e45f13b6ad74609ee9bfd76b9c00000000000000001000000000000000100000000000000207925c8eb7eb252649496eaca35f1935ad35c0d1219a86e0840b81a3348f1b4de000000000000000100000000000000010000000000000020b14d20b4e51a485e637d358332632a6c29a8d14bf2bb09376b5361a37f836be80000000000000001000000000000000000000000000000207cf1aed28045afc9e81f498b811640bb174bb37565a6b8262e9e8a461209bd1f0000000000000001000000000000000100000000000000204cfc485308731dc426159458c85663e4badd44b549e8280122835a4b4cb281380000000000000001000000000000000100000000000000205bf10dc59a13b90e881abd949a341f5738d5642fdd7d1241bc2cb59ddb0e0bd500000000000000090000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef500000000000000050000000000000001000000000000000000000000000000205cdba0dd7ba3efc22c0198563bef49c638343e0ede65575be06257d64a3fed72000000000000000100000000000000010000000000000020fa34f6949f8733eb9f6f868ade5c3be74dfc98265ba7185ff4b0cfe95ee75ad1000000000000000100000000000000010000000000000020a1c24adf981f0743238d97632635bb0553d0b99dcb33000fb088661180d96f730000000000000001000000000000000000000000000000206ed425d8b3c03ec9103a7ee7be6e4b55c554e2a9cda70235e93fe250e571139a000000000000000100000000000000010000000000000020c1a7e93ade1f97ccb8317d056d09c8fe77b2eaec2b4134ddc1a3b7b9206179c500000000000000240000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd9390000000000000006000000000000000100000000000000010000000000000020610490f9210f6482aafb2fd925448e00fd7a0b0d656da35b35974f0ed07353380000000000000001000000000000000100000000000000203a5827c2882befa4bc23410aab42a1065f7a14aa28427cb945a73ce92d84b8c00000000000000001000000000000000000000000000000203af36074ac02d520704d4024aa7f8edf35c6dbe9badc79747cb8a446ba559575000000000000000100000000000000010000000000000020733c2543bc11fd1162f30f9ecb93836d968dc9f08d2774fa5a282a89604493f800000000000000010000000000000001000000000000002068c3c8c60119e51e904832f3e8e693569b77d5e8243170c95d9d257ee208a03e000000000000000100000000000000000000000000000020e0725cc48b30467ecbe48556beb3caf31041c9c7ab294f7e8ef642b0215a1fe200000000000000040000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef500000000000000050000000000000001000000000000000100000000000000204aba3651601b5e61a29f5f6b4cc63305b28e9fcfc910ce88939407fd593b1f00000000000000000100000000000000010000000000000020c562e756fee19067cbdc57051d93b33a4668eafd9041e18f025c1fda76524937000000000000000100000000000000000000000000000020cd4e0a0414c5364a3560de40c273fbbffb9bedd06078a3d6959d7a705bcde706000000000000000100000000000000010000000000000020f7d354561e9b2e7735ce60ef83ce2f2489593b421cb4642a172d19346d977eca000000000000000100000000000000010000000000000020c1a7e93ade1f97ccb8317d056d09c8fe77b2eaec2b4134ddc1a3b7b9206179c5000000000000000b0000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd93900000000000000060000000000000001000000000000000000000000000000201c262123d783665f99dd549abc3ec9cf75f1a89bb82a26f44ef0c6c3912aec73000000000000000100000000000000000000000000000020ddc4fc64e8c9a53ea4cd7b045f6c576e6728115b82d3cc1cab1f2920cdddb337000000000000000100000000000000010000000000000020b14d20b4e51a485e637d358332632a6c29a8d14bf2bb09376b5361a37f836be80000000000000001000000000000000000000000000000207cf1aed28045afc9e81f498b811640bb174bb37565a6b8262e9e8a461209bd1f0000000000000001000000000000000100000000000000204cfc485308731dc426159458c85663e4badd44b549e8280122835a4b4cb281380000000000000001000000000000000100000000000000205bf10dc59a13b90e881abd949a341f5738d5642fdd7d1241bc2cb59ddb0e0bd5000000000000000b0000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef5000000000000000500000000000000010000000000000000000000000000002072f17ba755a635b76225ce8129df9554f68d2be1c9635f747514ebe588a91e480000000000000001000000000000000000000000000000206ab319f03d7349e32b9e5cdafd0353970678990579106ff246e94977eeb65183000000000000000100000000000000010000000000000020a1c24adf981f0743238d97632635bb0553d0b99dcb33000fb088661180d96f730000000000000001000000000000000000000000000000206ed425d8b3c03ec9103a7ee7be6e4b55c554e2a9cda70235e93fe250e571139a000000000000000100000000000000010000000000000020c1a7e93ade1f97ccb8317d056d09c8fe77b2eaec2b4134ddc1a3b7b9206179c5000000000000000c0000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd939000000000000000600000000000000010000000000000001000000000000002020b49f91c6c8ee14e484840427f5ab3bf2c26d83dbe8dce70c1e14bb9814e029000000000000000100000000000000010000000000000020dd7fa1eda7e8b74fadcaef802779eba900ce6a1cadebe870727a960f0ad96d19000000000000000100000000000000000000000000000020160c4df7d87c48492c8bbfcd357f8eee42f5146d564a06e1208402da964098ae0000000000000001000000000000000000000000000000207cf1aed28045afc9e81f498b811640bb174bb37565a6b8262e9e8a461209bd1f0000000000000001000000000000000100000000000000204cfc485308731dc426159458c85663e4badd44b549e8280122835a4b4cb281380000000000000001000000000000000100000000000000205bf10dc59a13b90e881abd949a341f5738d5642fdd7d1241bc2cb59ddb0e0bd5000000000000000c0000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef5000000000000000500000000000000010000000000000001000000000000002087fbd8eee0c1464079e6ffa5d38470360559ae03fa9c2f14e8a5eb6a74cfe17a000000000000000100000000000000010000000000000020c3d0bd8238559dd96928de090c5a0806056097009ef2ec8d21ace1fb38d369a4000000000000000100000000000000000000000000000020eed54270dbb003570d306705fdd7083a3d7a9636bb3bb6f191b2a30a577afb520000000000000001000000000000000000000000000000206ed425d8b3c03ec9103a7ee7be6e4b55c554e2a9cda70235e93fe250e571139a000000000000000100000000000000010000000000000020c1a7e93ade1f97ccb8317d056d09c8fe77b2eaec2b4134ddc1a3b7b9206179c500000000000000230000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd939000000000000000600000000000000010000000000000000000000000000002035cdc59fd4e93fdddb4f8e372acd2f93ef1999ee3e39830f18287fd780b974110000000000000001000000000000000000000000000000204cb289dc9048d6c33309e5c602e250a6cb32025f0ff1381d8cd94a2e7065662a00000000000000010000000000000001000000000000002019e4a5fede7e19b687dfcb423f417d8b7b32b4b43f7b7c27efb040445dfd17b1000000000000000100000000000000010000000000000020733c2543bc11fd1162f30f9ecb93836d968dc9f08d2774fa5a282a89604493f800000000000000010000000000000001000000000000002068c3c8c60119e51e904832f3e8e693569b77d5e8243170c95d9d257ee208a03e000000000000000100000000000000000000000000000020e0725cc48b30467ecbe48556beb3caf31041c9c7ab294f7e8ef642b0215a1fe200000000000000030000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef500000000000000050000000000000001000000000000000000000000000000205c041797f461c4c8950d223686dddbe23ef4490e7eb38ecec461ec3a8e2802ab00000000000000010000000000000000000000000000002016d682d36234c927920c9be2ef73d4aaa8b6e912ea4036ea103b48aced648e62000000000000000100000000000000010000000000000020ac276de3aa96ad1e64c43ac69575789fb35e8dd5d6f379518b7f2106bb5b7a4d000000000000000100000000000000010000000000000020f7d354561e9b2e7735ce60ef83ce2f2489593b421cb4642a172d19346d977eca000000000000000100000000000000010000000000000020c1a7e93ade1f97ccb8317d056d09c8fe77b2eaec2b4134ddc1a3b7b9206179c500000000000000320000000000000020d60d046ead5c6213aa1979284fe2bf3e0beb048baa58501aa347abeb0a1cd9390000000000000006000000000000000100000000000000010000000000000020ba8eb783f8e9b9ec9a8be64428a6a46cb6eb0026c0b76449781ba483cced208600000000000000010000000000000000000000000000002024032ee71505748a24093a56d01e5d9a7af31aa527f7b91baf4eb4bd924f54c70000000000000001000000000000000100000000000000208c5f5a9ca92fa25b3cb2269109772cf046d141f2f266e6b00a51880f9b5e4c0c0000000000000001000000000000000100000000000000206734614ed77e53573ffbf86fbe44cbefe573d472aa76a42ac157c94157e83947000000000000000100000000000000000000000000000020cbfb778cde18e35ab0344f4b85b88df4f36cbf6d24c150ce600e67178b8827b5000000000000000100000000000000000000000000000020e0725cc48b30467ecbe48556beb3caf31041c9c7ab294f7e8ef642b0215a1fe200000000000000120000000000000020dacede16d63a39ac39198fb54ea52b44d1b74720f13f4776317c3df20f1bbef50000000000000005000000000000000100000000000000010000000000000020be918da74d3cad95d14002ba8c626bb2168af51f9eedf138c98d4ed279089176000000000000000100000000000000000000000000000020a198a7db0a8414188f7664a8c774263eb07f47bd62487a1a44d3a54ea68c07e00000000000000001000000000000000100000000000000209e52e0555c0963eb1c4fb49139486ee99362b6bb8847fea901b7b78e74bec727000000000000000100000000000000010000000000000020bd02b18b5162c5ac4761db5b593de2e4c18777a3069e98dc495d15a7aa70ffea0000000000000001000000000000000000000000000000203251395512b0308ae0e19ffc7814d52d6497585e03ae27623690a292dc32c32000000000000000022757b76fd426140eab664d1368b32b4575c5c05f7bfc09f3a9b3533b3c9f75a731dd7167d96a9490b7f73bf6bb80b577cbf82e548dc84490e48ce2a0e10a4605643d55ef \ No newline at end of file diff --git a/contracts/zkllvm/circuit6/commitment.sol b/contracts/zkllvm/circuit6/commitment.sol index 100e30a..c453aab 100644 --- a/contracts/zkllvm/circuit6/commitment.sol +++ b/contracts/zkllvm/circuit6/commitment.sol @@ -254,8 +254,8 @@ library modular_commitment_scheme_circuit6 { } function compute_combined_Q(bytes calldata blob,commitment_state memory state) internal view returns(uint256[2] memory y){ - for(uint256 p = 0; p < unique_points; ){ - uint256[2] memory tmp; + uint256[2][unique_points] memory values; + { uint256 offset = state.initial_data_offset - state.poly_num * 0x40; // Save initial data offset for future use; uint256 cur = 0; for(uint256 b = 0; b < batches_num;){ @@ -267,17 +267,21 @@ library modular_commitment_scheme_circuit6 { else if(b == 4) cur_point = lookup_point; else console.log("Wrong index"); - tmp[0] = mulmod(tmp[0], state.theta, modulus); - tmp[1] = mulmod(tmp[1], state.theta, modulus); - - if(cur_point == p){ - tmp[0] = addmod(tmp[0], basic_marshalling.get_uint256_be(blob, offset), modulus); - tmp[1] = addmod(tmp[1], basic_marshalling.get_uint256_be(blob, offset + 0x20), modulus); + for(uint256 k = 0; k < unique_points; ){ + values[k][0] = mulmod(values[k][0], state.theta, modulus); + values[k][1] = mulmod(values[k][1], state.theta, modulus); + unchecked{k++;} } + + values[cur_point][0] = addmod(values[cur_point][0], basic_marshalling.get_uint256_be(blob, offset), modulus); + values[cur_point][1] = addmod(values[cur_point][1], basic_marshalling.get_uint256_be(blob, offset + 0x20), modulus); unchecked{offset += 0x40;j++; cur++;} } unchecked{b++;} } + } + for(uint256 p = 0; p < unique_points; ){ + uint256[2] memory tmp = values[p]; tmp[0] = mulmod(tmp[0], state.factors[p], modulus); tmp[1] = mulmod(tmp[1], state.factors[p], modulus); uint256 s = state.x; @@ -424,6 +428,48 @@ library modular_commitment_scheme_circuit6 { types.transcript_data memory tr_state; tr_state.current_challenge = transcript_state; commitment_state memory state; + + { + uint256 poly_at_eta; + /* 1 - 2*permutation_size */ + poly_at_eta = basic_marshalling.get_uint256_be(blob, 40);// 0 + if(poly_at_eta != 0xd48b9f9a1f52577da4d5cb94d65e04052d79db412bde4a0173fa42abd6d4a45) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x68);// 0x1 + if(poly_at_eta != 0x26ba1e029c9bb574382cf9e82fd61417bef7b8854687e04db1103e8b3227358) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0xa8);// 0x2 + if(poly_at_eta != 0xc1a2960d0f0a8b4518e0e188ef2e6476bad69a9a60a76184755138b7fac40b8) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0xe8);// 0x3 + if(poly_at_eta != 0x3c82cee414b34b8597c6467acabe7f651a6310503e344e7964a961b97e5d4398) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x128);// 0x4 + if(poly_at_eta != 0xd48b9f9a1f52577da4d5cb94d65e04052d79db412bde4a0173fa42abd6d4a45) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x168);// 0x5 + if(poly_at_eta != 0x26ba1e029c9bb574382cf9e82fd61417bef7b8854687e04db1103e8b3227358) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x1a8);// 0x6 + if(poly_at_eta != 0xc1a2960d0f0a8b4518e0e188ef2e6476bad69a9a60a76184755138b7fac40b8) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x1e8);// 0x7 + if(poly_at_eta != 0x3c82cee414b34b8597c6467acabe7f651a6310503e344e7964a961b97e5d4398) return false; + /* 2 - special selectors */ + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x248);// 0x8 + if(poly_at_eta != 0x38fb1266f415fbd2618cfb2426d85025c3e9ac6c13d4ce1cb5709b216b4da6b2) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x2a8);// 0x9 + if(poly_at_eta != 0x1af710639a33a9ee25a99551d3fd807e70499333913a0f7ce486c5d6cd45a1b6) return false; + /* 3 - constant columns */ + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x308);// 0xa + if(poly_at_eta != 0x378ae8b217281e98232cf4c6dc2b21498547a11fd3025f8ab5fc7ade97636da7) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x368);// 0xb + if(poly_at_eta != 0x2fb0a4b594cb133a84d3b178be4595d031abfaaf17d83f3aa7f7c86c6477497e) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x3c8);// 0xc + if(poly_at_eta != 0x39f429a1fa53e4b8ea5cf81151d917a9c6df281fe390dd60fc915b3d85c942d2) return false; + /* 4 - selector columns */ + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x428);// 0xd + if(poly_at_eta != 0x24d458cd7f86fdba1387bf56c6d2174e370b3a80acf28f008c4d6010f5d0c592) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x468);// 0xe + if(poly_at_eta != 0x2c0ddd3571b65a3f78c96f8a052a2f5c1059f2586d8b149d986300e1c76cb79b) return false; + poly_at_eta = basic_marshalling.get_uint256_be(blob, 0x4a8);// 0xf + if(poly_at_eta != 0x24d458cd7f86fdba1387bf56c6d2174e370b3a80acf28f008c4d6010f5d0c592) return false; + } + + { uint256 offset; diff --git a/contracts/zkllvm/circuit6/gate_argument.sol b/contracts/zkllvm/circuit6/gate_argument.sol index 0bc849a..6da383c 100644 --- a/contracts/zkllvm/circuit6/gate_argument.sol +++ b/contracts/zkllvm/circuit6/gate_argument.sol @@ -33,6 +33,7 @@ contract modular_gate_argument_circuit6 is IGateArgument{ ) external view returns (uint256 F){ uint256 theta_acc = 1; uint256 eval; + uint256 x; } diff --git a/contracts/zkllvm/circuit6/gate_libs_list.json b/contracts/zkllvm/circuit6/gate_libs_list.json deleted file mode 100644 index 0d4f101..0000000 --- a/contracts/zkllvm/circuit6/gate_libs_list.json +++ /dev/null @@ -1,2 +0,0 @@ -[ -] diff --git a/contracts/zkllvm/circuit6/lookup_0.sol b/contracts/zkllvm/circuit6/lookup_0.sol index f74f0c6..a392032 100644 --- a/contracts/zkllvm/circuit6/lookup_0.sol +++ b/contracts/zkllvm/circuit6/lookup_0.sol @@ -21,8 +21,9 @@ import "../../../contracts/basic_marshalling.sol"; library lookup_circuit6_0{ uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; - - function evaluate_gate_be( + + + function evaluate_lookup_0_be( bytes calldata blob, uint256 theta, uint256 theta_acc, @@ -34,8 +35,9 @@ library lookup_circuit6_0{ uint256 sum; uint256 prod; + g = 1; + selector_value=basic_marshalling.get_uint256_be(blob, 384); - g = 1; l = mulmod( 1,selector_value, modulus); theta_acc=theta; sum = 0; @@ -45,7 +47,7 @@ library lookup_circuit6_0{ l = addmod( l, mulmod( mulmod(theta_acc, selector_value, modulus), sum, modulus), modulus); theta_acc = mulmod(theta_acc, theta, modulus); - g = mulmod(g, mulmod(addmod(1, beta, modulus), addmod(l,gamma, modulus), modulus), modulus); + g = mulmod(g, mulmod(addmod(1, beta, modulus), addmod(l, gamma, modulus), modulus), modulus); l = mulmod( 2,selector_value, modulus); theta_acc=theta; sum = 0; @@ -55,9 +57,44 @@ library lookup_circuit6_0{ l = addmod( l, mulmod( mulmod(theta_acc, selector_value, modulus), sum, modulus), modulus); theta_acc = mulmod(theta_acc, theta, modulus); - g = mulmod(g, mulmod(addmod(1, beta, modulus), addmod(l,gamma, modulus), modulus), modulus); + g = mulmod(g, mulmod(addmod(1, beta, modulus), addmod(l, gamma, modulus), modulus), modulus); + return( g, theta_acc ); } + + function evaluate_lookup_1_be( + bytes calldata blob, + uint256 theta, + uint256 theta_acc, + uint256 beta, + uint256 gamma + ) external pure returns (uint256 g, uint256) { + uint256 l; + uint256 selector_value; + uint256 sum; + uint256 prod; + + g = 1; + + selector_value=basic_marshalling.get_uint256_be(blob, 448); + l = mulmod( 2,selector_value, modulus); + theta_acc=theta; + sum = 0; + prod = basic_marshalling.get_uint256_be(blob, 544); + sum = addmod(sum, prod, modulus); + prod = basic_marshalling.get_uint256_be(blob, 512); + sum = addmod(sum, prod, modulus); + + + l = addmod( l, mulmod( mulmod(theta_acc, selector_value, modulus), sum, modulus), modulus); + theta_acc = mulmod(theta_acc, theta, modulus); + g = mulmod(g, mulmod(addmod(1, beta, modulus), addmod(l, gamma, modulus), modulus), modulus); + + + return( g, theta_acc ); + } + + } \ No newline at end of file diff --git a/contracts/zkllvm/circuit6/lookup_1.sol b/contracts/zkllvm/circuit6/lookup_1.sol deleted file mode 100644 index d9af1a5..0000000 --- a/contracts/zkllvm/circuit6/lookup_1.sol +++ /dev/null @@ -1,55 +0,0 @@ - -// SPDX-License-Identifier: Apache-2.0. -//---------------------------------------------------------------------------// -// Copyright (c) 2023 -- Generated by zkllvm-transpiler -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -//---------------------------------------------------------------------------// -pragma solidity >=0.8.4; - -import "../../../contracts/basic_marshalling.sol"; - -library lookup_circuit6_1{ - uint256 constant modulus = 28948022309329048855892746252171976963363056481941560715954676764349967630337; - - function evaluate_gate_be( - bytes calldata blob, - uint256 theta, - uint256 theta_acc, - uint256 beta, - uint256 gamma - ) external pure returns (uint256 g, uint256) { - uint256 l; - uint256 selector_value; - uint256 sum; - uint256 prod; - - selector_value=basic_marshalling.get_uint256_be(blob, 448); - g = 1; - l = mulmod( 2,selector_value, modulus); - theta_acc=theta; - sum = 0; - prod = basic_marshalling.get_uint256_be(blob, 544); - sum = addmod(sum, prod, modulus); - prod = basic_marshalling.get_uint256_be(blob, 512); - sum = addmod(sum, prod, modulus); - - - l = addmod( l, mulmod( mulmod(theta_acc, selector_value, modulus), sum, modulus), modulus); - theta_acc = mulmod(theta_acc, theta, modulus); - g = mulmod(g, mulmod(addmod(1, beta, modulus), addmod(l,gamma, modulus), modulus), modulus); - - return( g, theta_acc ); - } -} - \ No newline at end of file diff --git a/contracts/zkllvm/circuit6/lookup_argument.sol b/contracts/zkllvm/circuit6/lookup_argument.sol index a0e9061..a4adf9f 100644 --- a/contracts/zkllvm/circuit6/lookup_argument.sol +++ b/contracts/zkllvm/circuit6/lookup_argument.sol @@ -23,8 +23,7 @@ import "../../types.sol"; import "../../basic_marshalling.sol"; import "../../cryptography/transcript.sol"; import "../../interfaces/modular_lookup_argument.sol"; -import "./lookup_0.sol"; -import "./lookup_1.sol"; +import "./lookup_0.sol"; import "hardhat/console.sol"; @@ -90,50 +89,50 @@ contract modular_lookup_argument_circuit6 is ILookupArgument{ state.beta = transcript.get_field_challenge(tr_state, modulus); //beta state.gamma = transcript.get_field_challenge(tr_state, modulus); //gamma state.factor = mulmod(addmod(1, state.beta, modulus), state.gamma, modulus); - (l, state.theta_acc) = lookup_circuit6_0.evaluate_gate_be( blob, state.theta, state.theta_acc, state.beta, state.gamma ); + (l, state.theta_acc) = lookup_circuit6_0.evaluate_lookup_0_be( blob, state.theta, state.theta_acc, state.beta, state.gamma ); state.g = mulmod(state.g, l, modulus); - (l, state.theta_acc) = lookup_circuit6_1.evaluate_gate_be( blob, state.theta, state.theta_acc, state.beta, state.gamma ); + (l, state.theta_acc) = lookup_circuit6_0.evaluate_lookup_1_be( blob, state.theta, state.theta_acc, state.beta, state.gamma ); state.g = mulmod(state.g, l, modulus); - state.selector_value=basic_marshalling.get_uint256_be(blob, 288); - state.shifted_selector_value=basic_marshalling.get_uint256_be(blob, 320); - l= mulmod( 1, state.selector_value, modulus); + state.selector_value = basic_marshalling.get_uint256_be(blob, 288); + state.shifted_selector_value = basic_marshalling.get_uint256_be(blob, 320); + l = mulmod( 1, state.selector_value, modulus); state.l_shifted = mulmod( 1, state.shifted_selector_value, modulus); state.theta_acc=state.theta; - l= addmod( l, mulmod(state.selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 0), modulus), modulus), modulus); + l = addmod( l, mulmod(state.selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 0), modulus), modulus), modulus); state.l_shifted = addmod( state.l_shifted, mulmod(state.shifted_selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 32), modulus), modulus), modulus); state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); - l= mulmod( l, state.mask, modulus); + l = mulmod( l, state.mask, modulus); state.l_shifted = mulmod( state.l_shifted, state.shifted_mask, modulus); - state.g = mulmod(state.g, addmod( state.factor, addmod(l, mulmod(state.beta, state.l_shifted, modulus), modulus), modulus), modulus); - state.selector_value=basic_marshalling.get_uint256_be(blob, 288); - state.shifted_selector_value=basic_marshalling.get_uint256_be(blob, 320); - l= mulmod( 2, state.selector_value, modulus); + state.g = mulmod(state.g, addmod( state.factor, addmod(l, mulmod(state.beta, state.l_shifted, modulus), modulus), modulus), modulus); + state.selector_value = basic_marshalling.get_uint256_be(blob, 288); + state.shifted_selector_value = basic_marshalling.get_uint256_be(blob, 320); + l = mulmod( 2, state.selector_value, modulus); state.l_shifted = mulmod( 2, state.shifted_selector_value, modulus); state.theta_acc=state.theta; - l= addmod( l, mulmod(state.selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 0), modulus), modulus), modulus); + l = addmod( l, mulmod(state.selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 0), modulus), modulus), modulus); state.l_shifted = addmod( state.l_shifted, mulmod(state.shifted_selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 32), modulus), modulus), modulus); state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); - l= mulmod( l, state.mask, modulus); + l = mulmod( l, state.mask, modulus); state.l_shifted = mulmod( state.l_shifted, state.shifted_mask, modulus); - state.g = mulmod(state.g, addmod( state.factor, addmod(l, mulmod(state.beta, state.l_shifted, modulus), modulus), modulus), modulus); - l= mulmod( 2, state.selector_value, modulus); + state.g = mulmod(state.g, addmod( state.factor, addmod(l, mulmod(state.beta, state.l_shifted, modulus), modulus), modulus), modulus); + l = mulmod( 2, state.selector_value, modulus); state.l_shifted = mulmod( 2, state.shifted_selector_value, modulus); state.theta_acc=state.theta; - l= addmod( l, mulmod(state.selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 96), modulus), modulus), modulus); + l = addmod( l, mulmod(state.selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 96), modulus), modulus), modulus); state.l_shifted = addmod( state.l_shifted, mulmod(state.shifted_selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 128), modulus), modulus), modulus); state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); - l= mulmod( l, state.mask, modulus); + l = mulmod( l, state.mask, modulus); state.l_shifted = mulmod( state.l_shifted, state.shifted_mask, modulus); - state.g = mulmod(state.g, addmod( state.factor, addmod(l, mulmod(state.beta, state.l_shifted, modulus), modulus), modulus), modulus); - l= mulmod( 2, state.selector_value, modulus); + state.g = mulmod(state.g, addmod( state.factor, addmod(l, mulmod(state.beta, state.l_shifted, modulus), modulus), modulus), modulus); + l = mulmod( 2, state.selector_value, modulus); state.l_shifted = mulmod( 2, state.shifted_selector_value, modulus); state.theta_acc=state.theta; - l= addmod( l, mulmod(state.selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 192), modulus), modulus), modulus); + l = addmod( l, mulmod(state.selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 192), modulus), modulus), modulus); state.l_shifted = addmod( state.l_shifted, mulmod(state.shifted_selector_value, mulmod( state.theta_acc, basic_marshalling.get_uint256_be(blob, 224), modulus), modulus), modulus); state.theta_acc = mulmod(state.theta_acc, state.theta, modulus); - l= mulmod( l, state.mask, modulus); + l = mulmod( l, state.mask, modulus); state.l_shifted = mulmod( state.l_shifted, state.shifted_mask, modulus); - state.g = mulmod(state.g, addmod( state.factor, addmod(l, mulmod(state.beta, state.l_shifted, modulus), modulus), modulus), modulus); + state.g = mulmod(state.g, addmod( state.factor, addmod(l, mulmod(state.beta, state.l_shifted, modulus), modulus), modulus), modulus); } @@ -205,5 +204,4 @@ contract modular_lookup_argument_circuit6 is ILookupArgument{ } tr_state_after = tr_state.current_challenge; } -} - \ No newline at end of file +} diff --git a/contracts/zkllvm/circuit6/lookup_libs_list.json b/contracts/zkllvm/circuit6/lookup_libs_list.json index b54a280..2b3e69d 100644 --- a/contracts/zkllvm/circuit6/lookup_libs_list.json +++ b/contracts/zkllvm/circuit6/lookup_libs_list.json @@ -1,4 +1,3 @@ [ -"lookup_circuit6_0", -"lookup_circuit6_1" +"lookup_circuit6_0" ] diff --git a/contracts/zkllvm/circuit6/modular_verifier.sol b/contracts/zkllvm/circuit6/modular_verifier.sol index c21356c..e8381db 100644 --- a/contracts/zkllvm/circuit6/modular_verifier.sol +++ b/contracts/zkllvm/circuit6/modular_verifier.sol @@ -39,8 +39,8 @@ contract modular_verifier_circuit6 is IModularVerifier{ address _permutation_argument_address; address _lookup_argument_address; address _commitment_contract_address; - uint64 constant sorted_columns = 7; - uint64 constant f_parts = 9; + uint64 constant sorted_columns = 7; + uint64 constant f_parts = 8; // Individually on parts uint64 constant z_offset = 0xc9; uint64 constant table_offset = z_offset + 0x80 * 4 + 0xc0; uint64 constant table_end_offset = table_offset + 608; @@ -48,12 +48,10 @@ contract modular_verifier_circuit6 is IModularVerifier{ uint64 constant rows_amount = 8; uint256 constant omega = 199455130043951077247265858823823987229570523056509026484192158816218200659; uint256 constant special_selectors_offset = z_offset + 4 * 0x80; - - function initialize( // address permutation_argument_address, - address lookup_argument_address, + address lookup_argument_address, address gate_argument_address, address commitment_contract_address ) public{ @@ -82,7 +80,8 @@ contract modular_verifier_circuit6 is IModularVerifier{ bool b; } -function public_input_direct(bytes calldata blob, uint256[] calldata public_input, verifier_state memory state) internal view + // Public input columns + function public_input_direct(bytes calldata blob, uint256[] calldata public_input, verifier_state memory state) internal view returns (bool check){ check = true; @@ -99,51 +98,53 @@ function public_input_direct(bytes calldata blob, uint256[] calldata public_inpu ), modulus ); - + result = addmod( - result, + result, mulmod( public_input[i], L, modulus - ), + ), modulus ); } Omega = mulmod(Omega, omega, modulus); unchecked{i++;} } - result = mulmod(result, state.Z_at_xi, modulus); + result = mulmod( + result, addmod(field.pow_small(state.xi, rows_amount, modulus), modulus - 1, modulus), modulus + ); + result = mulmod(result, field.inverse_static(rows_amount, modulus), modulus); // Input is proof_map.eval_proof_combined_value_offset - if( result != mulmod(basic_marshalling.get_uint256_be(blob, 16284747935102926605), rows_amount, modulus)) check = false; + if( result != basic_marshalling.get_uint256_be( + blob, 512 + )) check = false; } - function verify( bytes calldata blob, uint256[] calldata public_input - ) public view{ + ) public view returns (bool result) { verifier_state memory state; state.b = true; state.gas = gasleft(); state.xi = basic_marshalling.get_uint256_be(blob, 0xa1); state.Z_at_xi = addmod(field.pow_small(state.xi, rows_amount, modulus), modulus-1, modulus); state.l0 = mulmod( - state.Z_at_xi, - field.inverse_static(mulmod(addmod(state.xi, modulus - 1, modulus), rows_amount, modulus), modulus), + state.Z_at_xi, + field.inverse_static(mulmod(addmod(state.xi, modulus - 1, modulus), rows_amount, modulus), modulus), modulus ); - - //Direct public input check + //0. Direct public input check if(public_input.length > 0) { if (!public_input_direct(blob[905:905+736], public_input, state)) { console.log("Wrong public input!"); state.b = false; } } - - //1. Init transcript + //1. Init transcript types.transcript_data memory tr_state; tr_state.current_challenge = transcript_state; @@ -153,8 +154,8 @@ function public_input_direct(bytes calldata blob, uint256[] calldata public_inpu //3. Permutation argument uint256[3] memory permutation_argument = modular_permutation_argument_circuit6.verify( - blob[0xc9:905+736], - transcript.get_field_challenge(tr_state, modulus), + blob[0xc9:905+736], + transcript.get_field_challenge(tr_state, modulus), transcript.get_field_challenge(tr_state, modulus), state.l0 ); @@ -163,16 +164,17 @@ function public_input_direct(bytes calldata blob, uint256[] calldata public_inpu state.F[2] = permutation_argument[2]; } + //4. Lookup library call { uint256 lookup_offset = table_offset + quotient_offset + uint256(uint8(blob[z_offset + basic_marshalling.get_length(blob, z_offset - 0x8) *0x20 + 0xf])) * 0x20; uint256[4] memory lookup_argument; + uint256 lookup_commitment = basic_marshalling.get_uint256_be(blob, 0x81); ILookupArgument lookup_contract = ILookupArgument(_lookup_argument_address); (lookup_argument, tr_state.current_challenge) = lookup_contract.verify( -// (lookup_argument, tr_state.current_challenge) = modular_lookup_argument_circuit6.verify( - blob[special_selectors_offset: table_offset + quotient_offset], - blob[lookup_offset:lookup_offset + sorted_columns * 0x60], - basic_marshalling.get_uint256_be(blob, 0x81), + blob[special_selectors_offset: table_offset + quotient_offset], + blob[lookup_offset:lookup_offset + sorted_columns * 0x60], + lookup_commitment, state.l0, tr_state.current_challenge ); @@ -190,13 +192,28 @@ function public_input_direct(bytes calldata blob, uint256[] calldata public_inpu //6. Gate argument IGateArgument modular_gate_argument = IGateArgument(_gate_argument_address); state.F[7] = modular_gate_argument.verify(blob[table_offset:table_end_offset], transcript.get_field_challenge(tr_state, modulus)); + state.F[7] = mulmod( + state.F[7], + addmod( + 1, + modulus - addmod( + basic_marshalling.get_uint256_be(blob, special_selectors_offset), + basic_marshalling.get_uint256_be(blob, special_selectors_offset + 0x60), + modulus + ), + modulus + ), + modulus + ); } - //No public input gate + + // No public input gate + uint256 F_consolidated; { //7. Push quotient to transcript for( uint8 i = 0; i < f_parts;){ - F_consolidated = addmod(F_consolidated, mulmod(state.F[i], transcript.get_field_challenge(tr_state, modulus), modulus), modulus); + F_consolidated = addmod(F_consolidated, mulmod(state.F[i],transcript.get_field_challenge(tr_state, modulus), modulus), modulus); unchecked{i++;} } uint256 points_num = basic_marshalling.get_length(blob, 0xa1 + 0x20); @@ -226,8 +243,8 @@ function public_input_direct(bytes calldata blob, uint256[] calldata public_inpu uint256 factor = 1; for(uint64 i = 0; i < uint64(uint8(blob[z_offset + basic_marshalling.get_length(blob, z_offset - 0x8) *0x20 + 0xf]));){ T_consolidated = addmod( - T_consolidated, - mulmod(basic_marshalling.get_uint256_be(blob, table_offset + quotient_offset + i *0x20), factor, modulus), + T_consolidated, + mulmod(basic_marshalling.get_uint256_be(blob, table_offset + quotient_offset + i *0x20), factor, modulus), modulus ); factor = mulmod(factor, state.Z_at_xi + 1, modulus); @@ -241,6 +258,7 @@ function public_input_direct(bytes calldata blob, uint256[] calldata public_inpu } console.log("Gas for verification:", state.gas-gasleft()); + result = state.b; } -} +} \ No newline at end of file diff --git a/contracts/zkllvm/circuit6/proof.bin b/contracts/zkllvm/circuit6/proof.bin index 33f1581..dab61d5 100644 --- a/contracts/zkllvm/circuit6/proof.bin +++ b/contracts/zkllvm/circuit6/proof.bin @@ -1 +1 @@ -0x040000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec01a849ed073bfbbca9ae5a2a9c78d36e896cbb5259a558e0c49f3d49d038f208000000000000005301a849ed073bfbbca9ae5a2a9c78d36e896cbb5259a558e0c49f3d49d038f2080d48b9f9a1f52577da4d5cb94d65e04052d79db412bde4a0173fa42abd6d4a45084971a1242beaaf5067c2d50e5c2128af1fa89bc03abc63d71c3271111cba28026ba1e029c9bb574382cf9e82fd61417bef7b8854687e04db1103e8b3227358296f3825b4db956c9206ce2947cca5cb6b9e4b0ac125adf3338cfc35558fa2c80c1a2960d0f0a8b4518e0e188ef2e6476bad69a9a60a76184755138b7fac40b80f2c18bc8849eb1eda2206ce66ff3cf8b343ac41a9d57a6d36395a43abce2de53c82cee414b34b8597c6467acabe7f651a6310503e344e7964a961b97e5d439801a849ed073bfbbca9ae5a2a9c78d36e896cbb5259a558e0c49f3d49d038f2080d48b9f9a1f52577da4d5cb94d65e04052d79db412bde4a0173fa42abd6d4a45084971a1242beaaf5067c2d50e5c2128af1fa89bc03abc63d71c3271111cba28026ba1e029c9bb574382cf9e82fd61417bef7b8854687e04db1103e8b3227358296f3825b4db956c9206ce2947cca5cb6b9e4b0ac125adf3338cfc35558fa2c80c1a2960d0f0a8b4518e0e188ef2e6476bad69a9a60a76184755138b7fac40b80f2c18bc8849eb1eda2206ce66ff3cf8b343ac41a9d57a6d36395a43abce2de53c82cee414b34b8597c6467acabe7f651a6310503e344e7964a961b97e5d43983c77d0f9764fca6bb9bf9dc47709c031b8e3ef02a8c94aaa83090d797498d5a8346f5602dd83f4a5aa9348e0af9d08c05ef19dfe1634a57bfa4722ab9015110b38fb1266f415fbd2618cfb2426d85025c3e9ac6c13d4ce1cb5709b216b4da6b22f6c4e899e653044774a47b155569a31daee40ff72a092524622323eb76f878c3c77d0f9764fca6bb9bf9dc47709c031b8e3ef02a8c94aaa83090d797498d5a81af710639a33a9ee25a99551d3fd807e70499333913a0f7ce486c5d6cd45a1b61befddd4b82552d9396cfaa54940b25181b1a062fb4362f8370689eb8e4f6b372d81d53c3d9eec308dcef7a00b621059e4d64295a041b5ce0e423db645ae1929378ae8b217281e98232cf4c6dc2b21498547a11fd3025f8ab5fc7ade97636da721f40b4c04a9169c56fd1c6d805e21fd1bb211d95c183f090ebdc7d28e410d2d0be0899e82823f8343bd0fef9f6f20a7c252686517c4d6bd6b249cdf991af1ff2fb0a4b594cb133a84d3b178be4595d031abfaaf17d83f3aa7f7c86c6477497e1b3d39eb1e0909077a26b77a1de03f357875954e83db0ec78ac0d18cffdd84b53c167db8a554c7f9b4a1d3f2301f5a54c55ede82cce40cae631c50062e9ed53739f429a1fa53e4b8ea5cf81151d917a9c6df281fe390dd60fc915b3d85c942d2279a6f7e4280c0c09f8339f4d7d2afef335da5aee5bf27e0ba3fc355fffd20651fac8a7a0dc710aa2462d1a984029cdc740ffcf3ea4868da0815306343e291c524d458cd7f86fdba1387bf56c6d2174e370b3a80acf28f008c4d6010f5d0c592141be07ceb4b054fcef61a8a339fa59cb0bb01f5f730153a692f2221d3f7a2cf2c0ddd3571b65a3f78c96f8a052a2f5c1059f2586d8b149d986300e1c76cb79b279a6f7e4280c0c09f8339f4d7d2afef335da5aee5bf27e0ba3fc355fffd206524d458cd7f86fdba1387bf56c6d2174e370b3a80acf28f008c4d6010f5d0c59238c34db0c527641be1803b8e53eb167a6381d6c07b297529564de2a1784c663033eb321046273dcf0bc23dc5aa93d36afd73babf03316c3a2e295c3a6fb09c580763ece43fceb112211d687947ab49c42f170930ec76c6fb7cf0ff07a85787db000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010a212710eb0559e5e17c6bcc9b1d0a90f3bd6bff981d0b303ad64318b2f6593937ab0feebcc7152b2b0059b4303acd517559547c2d6b3623843e740a00379cc61ad217d7e94cb1a80d2232b8d8142bfd7a48d4bdc9aae26628045bf3052ac6441ecc316796c2c50c5b979f6c6c46b318021bf021eec393508aa1e2a5108946603bac730c5fb5f45d47dcee8e5cea73333d2e613c6dd583cba29583d3c25bc2ec22c85910373a895d5d7d637ba10f1fb285cd8a18e5b38ff590c961f203ea293b2d20ed334d06b5b61aaf0a3ca4aea13789830cde90ce8763755269fc57bfc9ff2f3b55bcc62d15928319eeeed8c046bcff44b8a578b58ac7acafd18bbca7c23936995cf673fd09fcede49b3c10546cb0993838dfd083c5549edcaf4dc8620e02286656664670671c2f4dc38ea57cefbb9c696e904193a8ddbd39f73740bbe87227488f5102ac9ddfd2cd38681512469f285090e1874958d4b9e7575d41ad621d0e4dcdeddf160001a8e9d46f7d8186e408ae41d6c80e4c674fc77334b37484ce1089ef44fd97c9fe8a6723e744a472f4889f7733ec0bc222b55be00e37a99e2d06c31e54830b6379a0e5da91a7aee0b77fb053027ebcff7d27208bb55bd346070630c7450ab3bcf7c7cce2a6f15b6c472ca9e1aac81d54a4224123128469f98037fec4d8157b438167c8fc17971bad67b55e7e5ce0fa2befc7286b7e9dc31ebc06ba7f038e815a764b4c0044e590a4f6ab50611869bece627f2e93137b025a301c4a86623e427fa7ca3ce11bb548daa094cf6f6835e6d08c545bf67a4114aa93399dfeb09e2f17c8d116529bce1fc926274eea527205de4c14bb8117ecf6ba841ace5468b73e87c0b38c3af0356f6ab752b1a6964031e78a037658f02a0496dd1a980cfa4c57410afdb84d762d83ecc5201be8863a0b788463f75a137c68fa6239aed4de1eb64ecdd519c1cc251ac01f5b17768a7657a68b5e24d185a8210fdc322d6826299941097a1d795100c252b9793837b227397f43239f91d2468ddabb0796c5633ae911e2e7eaeee7c0d7583af22df6a2144f6077f07ffc3fec98a1460bccca794b22c382ef2e401a93790779ea9ecd3f6cbaa3cc4a708812faeef999371c6839c1a7936cadb8b959987312ec2a32c2f58754ecd1d0eb3dc95e4533f00cb6b49c159219ab4f67879e558691ac9515c26c45000daf96e9ce9b1412b44b15beb3d3c21dcd8c5a0acd90c8a8c450ba086bd50cd153e14c7e54439d3ba4a11081ab4468bd9f718cdb0f401a1e3ea28e6ebed058932339c06188e9d2e30bf30e84874da2f02352278931713f051ee2e4cb4ec4c3f0ee2ef19be7e3aa31dbfc16a84e880bbf880f28b0b895102bb65ae0b6b2a2494446691dc41d7204de3d022f765dc204f1575ab645d6aa5ae1deb6eab0664a827139ae13a2f962d4c333fc3a8d60d7eb758a647b9370d1be0dc581a731ce4d0f0948bcb16dc2d461fafda91ecb9a7e742f6fac959222ecd3041fc8d317087004ecef824f5ea8925d2c614c330ede642e70d39c6e383f0538f15be2b6a01260abcdf727e0d25d5f78260b632c824fe3fffeac883d93a58d692c43fd520fb32c8c61d25fb71260120d2d58863dd2592f728c00d94e88059f93a930394cc3094dff9cd668ffb1c328c4fd8c033c77256fbd0f477e6f56afbc0b1377593e5d9ef51d35da46c3fe6e00c2f344010a4e94b685567c2ffafffe5b57f2abc18e3bc518fc7d391a5511cbf52fe53fa7031d91b4f4913ca332d8e76be267006d09fe74843f0b75139955016c09e528bb000000000000000a00100102020203110407000000000000002c020202020202020203030303030302020201020201010101010101010101010101010101010303030303030300000000000000020000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d0000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f22000000000000000201010000000000000dc02042ad6d44b85d8c2e6cf1da18bbb0083196e509bf2b27e7fb20497e0a4cbfab1fbd5292bb47a273d1930e25e7444ff7f0afb3f24a21d1339e0ce76ef5b34056214d63225799d3bce820b9427baa7028b3654738a93dd550b5470d9c337fbe551eb29cdda8662c4317df46bd84558fd76ee151c3600f23cae3e62350cc8041ac2682efabb60122b088a39e4c6a5430cb3c6d32233b9b385c5808e233017eb7a7197d105449fedd4f775c61b395abcf34e5d966d8cdb1c0bf41244eb9fe81485a008eae5a8e05ad72ab32177e13a4f3f7c74e2fbc0e212e7aeca4d838077996403f7151a571fa528d54cde881ec5b0c085af8693ffb2bcaa0ac8858b4f88669c12042ad6d44b85d8c2e6cf1da18bbb0083196e509bf2b27e7fb20497e0a4cbfab1fbd5292bb47a273d1930e25e7444ff7f0afb3f24a21d1339e0ce76ef5b34056214d63225799d3bce820b9427baa7028b3654738a93dd550b5470d9c337fbe551eb29cdda8662c4317df46bd84558fd76ee151c3600f23cae3e62350cc8041ac2682efabb60122b088a39e4c6a5430cb3c6d32233b9b385c5808e233017eb7a7197d105449fedd4f775c61b395abcf34e5d966d8cdb1c0bf41244eb9fe81485a008eae5a8e05ad72ab32177e13a4f3f7c74e2fbc0e212e7aeca4d838077996403f7151a571fa528d54cde881ec5b0c085af8693ffb2bcaa0ac8858b4f88669c11dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb3ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba2e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b3333a6c18bf778e668d61325e69e25d3175cee5aaec8d1f3ab9c818b7019ff2af38225810aa0ced9279f11d7bb6bd5fdb922d34fcb89ee3ac44c8fa2bd5f655bb1f13ecf097788ed6fe452dff23942fdd3aebe7d16e25130c9d72d7314d671511286dc7c63ba70a6f3ad2c69ff9b9934f66601e89f4eb87d44b977e5f7d9dc8451c70686c6ccf34410eeff581bdaac669356723247562a74c0d699d751c4452860d81d8e6f70b78783550c923d3f6e1e2e57f77b631c25142f146fe065f2b794c225eb35e5e6699b01693ff2025239088d5968f6bb9195fd4230a1040425b06e116757cbde9eb9f5f59c6bb6da6ff3d7d9e8cd24ddc94847971d4facf87ee4a1c2336bff60430d8f218dc08b92f81d10147de057f17abe549424dcb46d17a65b20672a3fef6b96f4283b5bdf1bf29328392c5f009dc8244c23714beeeeb608f54225eb35e5e6699b01693ff2025239088d5968f6bb9195fd4230a1040425b06e116757cbde9eb9f5f59c6bb6da6ff3d7d9e8cd24ddc94847971d4facf87ee4a1c3fa55a619d63d535c420e506d77f602bd8fdc2fea70d92ec808b1d33d3d955d304b98db9612503e92443ca7cf18ce40d2933312886b225ff2f4405a7ebd2f86820b6503a8bc3e9c20db16cc2ef7b7e2fb237deb7411e8df9523508d8144d455c0f055c09dc496b55e205929afa3083161367fe1f7f333ba229d0cb0c82f55147000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013fe09b2a7b9cbb636c3e1e8036bbf71c286bed82502c6a779d39c46e3e4398cd28e487b81ef2aa59cb55cb93375ecf3499cc12964e11847917e10cfa34b479e72481258db8323dfef2959a14f20a698ea5be08659071e32286dc1dbf76d2d7a60df177d352543d1e324da0b7b4debcdf1e8ca8c2fc2cf8c6006a13d9d6c9e60805aa9065091ce82966ebafdf61f58bd8ed6511ba7aa75d81c10cc225f7a5099f1c36fbfb00f2bf5b1963d92c31c94bc55f0f720ed5e9cbfb5b4431e601a82c5e0aa7ce671053eaac33001ce7bd4c77f27defba86cc0840215dc44ffe1354912a18973e4aa85b9efedfc1102516ec70a20ad50af95f87a69530993b537c067de01a92ce4798baa574c7bfbfea7bde8024dbca94fb85a08bf6ae99f566788d052c009032154aecbbb19e8444e316492893f5a9e6f773ff01c5dc73895e95f0d20702ea221a55e8a1784f03d48e3ca79ff4b6fa4287db15ae1623a025c31a1eb35509f4abb59da884fff9d09609b14ca72a5ed0808b28c02ce5f304d41099f2a7b823636db5703ab1dcd748411083287be900a02762e8a354eebe282467005dd82b3952b411e8671574f9c096b7b5ffa147b5d82e146d0d57dd187822c5c5fbfed70f1cddecf1d23ee920ee629c00b2a8aa4cc1d80284792274d80502a6af0415c53f76f15c754d0d00e9acf1d39d79d7c344c6f5eb92fe2ea044cdbc4b45d419ad3175a9a970dcf98610ce032e7b7501452fcce482eaa6ae8969d623a8b4a15bb7281efe5ce357c84999a9f5f22925e0cdb10ee12e64e89a8ee051561dbc90d2d6032282ae9aa6f2e9164b5fb86258f993a747b5a78c0a12caf7695e913b90219802468ec9b7750a9e304508aeadf3d15101a84852018d1a89b13ed20211db92e937b11f30ceb1914247799f1649b3ae04cf50aae2222eb355139d9a25515cddcf2fb47ac77571664eda291aa642dd392ccb29f9cd60e20cae42415e11f381c479367703b72014e7ae6c3407a2ea73ddbc35ace7280bf425cb18f23b15162b3fab1bc7ced06989bce94fb771a15690467dff88a1c122afd6c0b5d4177764039bd415cc6823cf0202eed28c577f713b6a4b2d6ffa5a25ef82ea7f0f0380cc98406a29e1c6ca3f676f5853b447695a956c6b6136e9319d2ebc7a8250001f8c159dc714c83453c2c8af778ce5a8d649d54bee481a83717f0f1cb012e024d947c4bf7524d1fafce0af398adceb4505c1268e4d1353fde9ba983f475f71073a032914be3f4a858bf6d93babe8a3996c77519dfe1b929812c0993026c55022b328481eb620190a77ce32b6a3be2e67b2441ccf39512495edb76fe94e5ef543df96aa79b73aba9d477dd4ef8da37dbf1613ea2be99c1338f759ec5d555a9f10afe65a12553dfab46ec40f69d02008288ec1be314a8bd60712436772b681cb8324ae8b29ec14391d672710359c0b8db0526198bbb746440139ea742bba1777bef0c637e5f738002451223bb3342b32cbbcb2862ed80b5fa89a466eeb164acb65c76f1f17c3246e8dd73a882666e8e16f822ede3aec72b050869e533696cab035ed85c1f7982b5b560714bb188a6cc63021b97a1280b5c05574bfa49fbeacdc0c83c0b5d5050841399e3fd3c4bbdb2f1e11cf304f6f4d1bc6d0e4fde150080ff7f396a79b9c311c50506b15dfb172a7fa4a4fee7f014bf4b5dcd7e16e74770161919a7d305615afa325ba6e002e14b3498549ce998a04223f1d27bd1bcc5783bf95401e8f86096a43f355d82d7614ce0e6df2d7972fe083a836361f96dc16c3a7fdadb929952b13ecd2393dce0b1fb57aa0c82ca6b16a01525444c9b6a20fd858db9f5575260d46187b1d95d413da017309b61eb6854a68b8bc86affd35c69f5d3ba00965963de82ffc1ec28af40f5dbb578c2500f23856efd6d2077174ceb49faf17ac1cf904e33ecf51fdecf36a3673cae0569e9b5e8ac9ddf37a71d369022b97bd692cfc0a13b05400945176bdd81cdbee19f8ca9817b3331fa408b1b82b59ae68a7f1421cccd40ca515de17f60941b8499a2d000700aa6a8d79874fb3202486c8ef790c12c08f19a8e5ce10f8a71c512a34accb2ebfdd7486eacf31da855a3a28b82cd01974a46bf035a081ac401b7bc0d438c138ab0b42109f065a2b65b4ae322200471721d9b8ddf81f743bf530c3c92566f6d06b5c43197cbad2f84e05b9421d132332dc171ad2023254abb71daf1e483983d3743c39be9a15bd0cb17f40bb82bdc10c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba03012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b05e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df622724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a331d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce0c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba03012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b05e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df622724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a331d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce154726d1e457b749e5a32d9cb269c17087add08c554ac6163f1ba6dfbda977f43ebbdef2711d9803441a84e31a9d5ceddb174d378971a5aeaf3f8ea84a27c7941dff3c5197fd00d1d0a0de7643244f7892ab4a9b26b3f4238af227929b22c07334ab22fea15d89c74a4ca0d1cbdd19b18c8dc4699b5e6d44a70b9e363033d81225bcbf352e713ef1b86fb85c844fefc903d503fdcb484921d323ce1fc3a082f81012df7cabe39036022d724c01bf03b4c3f033f62c418be42a9a3df04001865d32ffb8a81db842c764cfda08d979a7863a7de0149f6ce6ddf6974988ff4d13213e4ff5f0fa47d4f844d769855072f649123cad26882535aeeba8d19022022d051fd3f0470b10d600d0e6b73732ca85c61cc8769d3057e0f6bb7b8e9628d159fc222c35e3ef570b6bd331848989afdfca2c62d1ac0492d2f8b11ff463519b299202a6feb09641672abc1339ef443b8b25d7bb5f37c40752bf3a4a4be1d8bc1cd522d9047da94740f3a6eecb0b7623fd50ea2b88a1afb2b8cd30ae977ec6ccee220cb99cdc83ab47e449bbf3ed0a71ef1707ed7dd48d4e3ee1cf1f627aa733c79b0c98fe0eed84de357198da4b19858960dce82056edc9df43dc0f34fb85a4605d02a6feb09641672abc1339ef443b8b25d7bb5f37c40752bf3a4a4be1d8bc1cd522d9047da94740f3a6eecb0b7623fd50ea2b88a1afb2b8cd30ae977ec6ccee220065ae6aed6f15d7f50605401f337c3ff7ca9d27764389f52364064fbd2c3f80251001d0a425157b25743a0b0d071bc241473e526eff30792980e044ff103a4d16fdb19c15198228b4de779421645f9d26bdf93adc95a6bdc50bafffc3ad071c04479d5156cf78522038f25f90e52be2b7d28136f6e9ef9aec6a11b7fc317c0500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001388b0333da03374f9da2acd2136f4b7d88bdd35749e15808a64704e43de754dd090a3a3bbb5eb5167928ae828b166e81370a7342fad5731a55ed33d1784705a92781f343ec76148b7454891fe9444c8a2e10f7f88790d40cbf34dda89d33ba9c2a8bc53887742d71a89bbc3c2194748549444007da46c8d5b134fe54ebca754b2dc0f5389654a41d09d968af293434e6ffc97db65c5a227c55e42f102340ad1010fc59263e01be589e125af93ec1f1c3972d08b02328c0ae07034c80255793a30884825c2cb56eb151660b550b8f95bd0d8cf94c5f65c7c953fc5a4aa8edb38639efcdb6fad468b4d12c945ad611a77e893ce9f2893b1274855a00cb4f23341b1d71f4d444d4694ef37c68aa87ff05801edd71f131328c1d068557f90dbfa88c26358d6ea201b5eea34c3705aa8eedd7be17e2bb6eada4bdc3e1d74e7f2f718a361b4d2604e4a24b415d17caa58b57cdcac84f0e37b241c066e78854c1d556e92dee9c42126f2a104a4f2eb7ece763ffe970d9937c434ed2892491ce9cca07fe21490ef65ffbd3c61aaa38b589fe18945f7135c81cda5debffc16eeade02b3cd15db30b5e9c254b250319879409e41139c81fe75efe74059545246d5fc7611452665d50cb3613833ce7969d425a2a156c92b7eae6c9daa08288d710400f5f8b61b8ed75ead34786034e9bcf00d38da5404d971f53414a3804dd9b46036775bcd0a56bafb3a3a667f7a0963272665bc4c37d3d6ff8092479208aea2bab54f37822e94ef99e76160d9d1b049908fd9e62ad2df6a1fd8e8192b1845f95b0d84774c27d9d15b3176866b5aad640722526738505b412544167463038fb78b2268aece050bc8f9238ccfaf7eb890774fb55ef0aca46e6cd3d7e9ca9b6b6b9ee5db2da101c563cb9d9a7f1e8ef0721213ec32605d7698d7c57faa3213f1281583572bd0280608f5aadd3b022e6884004de6d2c362e8c01c0db39f68f515a154e98f7ef0229109c2dec6cf3c7c15ae9908d954724e57fb053cb2f3a0210007a0996d799a00a5463efa60612193b39e2ac53aa1810b1edd58ff876fa9d57500bd7c4430d403c712f50e41686dbc49641ef0352cd8fde7ad7b7ca0b684e1fe6b81edaa032423ab2bdc36a8e3d57bb79687afe480ba7358a9765291b394e7829d659fa45d983fc5a0bde5715a43764839499273851d7073fd0b29e1323e7a1cf2f508f6c4f80fbaa6ea9ff1f357b9943eda225518dd7d87e96820de245b2454ff461e121fbc283a217875bfd1e6bb1527dc9ca3ec5c8a2f12607891d4fa54fad09c2910747636acdf27bdf4abd5dc2877a1f085c40065d250478e696df36b71b5aaf079da082c241ac8755dcb5292471bd978ee86f1e081c8dc66437d2f66712f205d83898d2375b40379044b8be5958152ec34aeb2fdd41f803655dff3b4b9af032292711c0d3d386d3d957295b22bad96740932be953066cf8b4e95ebb78dca94d3b089ba30438fbbe1ea021c9361409083e9f51e832431ea376c5ae6b12d085922707fcd14307e53f0b7ea141f98243a2f8f90f05b6d6d867547cb251b6e75cb3c2a5c423e36dd4297da6a9c7436a8cbe3b444203ee8f681e12ceb49965b626839b1ae693b919521508d3d2e78d114072fceaa74b06e5a91ec5d064d0b46d03a86d6071d050736f42d6d95b7a31d50e66fb2e025384890142e2e478f7d8ec2b48d80121f3ae316041a4c37d4506da396f0d24d29eeed488315df43666f999553f8bbe81001b62b47c621ad369a4afa5ebddea27ff5e7bf7ac9a8ebf63610e2dc3c3d769d3913074b74a765a7082b2753b76fc74a4299ffe56f7b17436da3dd5c74615bc72cb932a1d85dda76d4e84cedfb2401ab90786ce997a6379ebccbeab56f84fb83137841e8ff5a77846dcf3dbde9caa99680aa61f87d3d0df09380da628bba66e00d90e455bd1e552c2ff431e72b51f4eb82a2de11dff4ed7748d07426d32879713a4e20230346c367e619985be1283b95eef2bc166deae71d93d7d2d668c93218084ce7b567f57f365af0c8fe030243d7cebe7af6320b94ea5d48eb7d72a1a7d1207f44e8c2548ceae32a983a06f9c873fac23fdb58f23bacdb077b785a579df61e37dd9388e52541fbd63823b52d5694ef13edce0a8ba60b3976b9023869ed82056db320d4f6d4e12994e576f3dd8375de4f49fc044e4776a603639e755c50a21cec7a6c4ef5caa07973ac1b16f04eb815f80fcdd5e0db38ebb26ac0420896262042ad6d44b85d8c2e6cf1da18bbb0083196e509bf2b27e7fb20497e0a4cbfab1fbd5292bb47a273d1930e25e7444ff7f0afb3f24a21d1339e0ce76ef5b34056214d63225799d3bce820b9427baa7028b3654738a93dd550b5470d9c337fbe551eb29cdda8662c4317df46bd84558fd76ee151c3600f23cae3e62350cc8041ac2682efabb60122b088a39e4c6a5430cb3c6d32233b9b385c5808e233017eb7a7197d105449fedd4f775c61b395abcf34e5d966d8cdb1c0bf41244eb9fe81485a008eae5a8e05ad72ab32177e13a4f3f7c74e2fbc0e212e7aeca4d838077996403f7151a571fa528d54cde881ec5b0c085af8693ffb2bcaa0ac8858b4f88669c12042ad6d44b85d8c2e6cf1da18bbb0083196e509bf2b27e7fb20497e0a4cbfab1fbd5292bb47a273d1930e25e7444ff7f0afb3f24a21d1339e0ce76ef5b34056214d63225799d3bce820b9427baa7028b3654738a93dd550b5470d9c337fbe551eb29cdda8662c4317df46bd84558fd76ee151c3600f23cae3e62350cc8041ac2682efabb60122b088a39e4c6a5430cb3c6d32233b9b385c5808e233017eb7a7197d105449fedd4f775c61b395abcf34e5d966d8cdb1c0bf41244eb9fe81485a008eae5a8e05ad72ab32177e13a4f3f7c74e2fbc0e212e7aeca4d838077996403f7151a571fa528d54cde881ec5b0c085af8693ffb2bcaa0ac8858b4f88669c11dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb3ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba2e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b3333a6c18bf778e668d61325e69e25d3175cee5aaec8d1f3ab9c818b7019ff2af38225810aa0ced9279f11d7bb6bd5fdb922d34fcb89ee3ac44c8fa2bd5f655bb1f13ecf097788ed6fe452dff23942fdd3aebe7d16e25130c9d72d7314d671511286dc7c63ba70a6f3ad2c69ff9b9934f66601e89f4eb87d44b977e5f7d9dc8451c70686c6ccf34410eeff581bdaac669356723247562a74c0d699d751c4452860d81d8e6f70b78783550c923d3f6e1e2e57f77b631c25142f146fe065f2b794c225eb35e5e6699b01693ff2025239088d5968f6bb9195fd4230a1040425b06e116757cbde9eb9f5f59c6bb6da6ff3d7d9e8cd24ddc94847971d4facf87ee4a1c2336bff60430d8f218dc08b92f81d10147de057f17abe549424dcb46d17a65b20672a3fef6b96f4283b5bdf1bf29328392c5f009dc8244c23714beeeeb608f54225eb35e5e6699b01693ff2025239088d5968f6bb9195fd4230a1040425b06e116757cbde9eb9f5f59c6bb6da6ff3d7d9e8cd24ddc94847971d4facf87ee4a1c3fa55a619d63d535c420e506d77f602bd8fdc2fea70d92ec808b1d33d3d955d304b98db9612503e92443ca7cf18ce40d2933312886b225ff2f4405a7ebd2f86820b6503a8bc3e9c20db16cc2ef7b7e2fb237deb7411e8df9523508d8144d455c0f055c09dc496b55e205929afa3083161367fe1f7f333ba229d0cb0c82f55147000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013fe09b2a7b9cbb636c3e1e8036bbf71c286bed82502c6a779d39c46e3e4398cd28e487b81ef2aa59cb55cb93375ecf3499cc12964e11847917e10cfa34b479e72481258db8323dfef2959a14f20a698ea5be08659071e32286dc1dbf76d2d7a60df177d352543d1e324da0b7b4debcdf1e8ca8c2fc2cf8c6006a13d9d6c9e60805aa9065091ce82966ebafdf61f58bd8ed6511ba7aa75d81c10cc225f7a5099f1c36fbfb00f2bf5b1963d92c31c94bc55f0f720ed5e9cbfb5b4431e601a82c5e0aa7ce671053eaac33001ce7bd4c77f27defba86cc0840215dc44ffe1354912a18973e4aa85b9efedfc1102516ec70a20ad50af95f87a69530993b537c067de01a92ce4798baa574c7bfbfea7bde8024dbca94fb85a08bf6ae99f566788d052c009032154aecbbb19e8444e316492893f5a9e6f773ff01c5dc73895e95f0d20702ea221a55e8a1784f03d48e3ca79ff4b6fa4287db15ae1623a025c31a1eb35509f4abb59da884fff9d09609b14ca72a5ed0808b28c02ce5f304d41099f2a7b823636db5703ab1dcd748411083287be900a02762e8a354eebe282467005dd82b3952b411e8671574f9c096b7b5ffa147b5d82e146d0d57dd187822c5c5fbfed70f1cddecf1d23ee920ee629c00b2a8aa4cc1d80284792274d80502a6af0415c53f76f15c754d0d00e9acf1d39d79d7c344c6f5eb92fe2ea044cdbc4b45d419ad3175a9a970dcf98610ce032e7b7501452fcce482eaa6ae8969d623a8b4a15bb7281efe5ce357c84999a9f5f22925e0cdb10ee12e64e89a8ee051561dbc90d2d6032282ae9aa6f2e9164b5fb86258f993a747b5a78c0a12caf7695e913b90219802468ec9b7750a9e304508aeadf3d15101a84852018d1a89b13ed20211db92e937b11f30ceb1914247799f1649b3ae04cf50aae2222eb355139d9a25515cddcf2fb47ac77571664eda291aa642dd392ccb29f9cd60e20cae42415e11f381c479367703b72014e7ae6c3407a2ea73ddbc35ace7280bf425cb18f23b15162b3fab1bc7ced06989bce94fb771a15690467dff88a1c122afd6c0b5d4177764039bd415cc6823cf0202eed28c577f713b6a4b2d6ffa5a25ef82ea7f0f0380cc98406a29e1c6ca3f676f5853b447695a956c6b6136e9319d2ebc7a8250001f8c159dc714c83453c2c8af778ce5a8d649d54bee481a83717f0f1cb012e024d947c4bf7524d1fafce0af398adceb4505c1268e4d1353fde9ba983f475f71073a032914be3f4a858bf6d93babe8a3996c77519dfe1b929812c0993026c55022b328481eb620190a77ce32b6a3be2e67b2441ccf39512495edb76fe94e5ef543df96aa79b73aba9d477dd4ef8da37dbf1613ea2be99c1338f759ec5d555a9f10afe65a12553dfab46ec40f69d02008288ec1be314a8bd60712436772b681cb8324ae8b29ec14391d672710359c0b8db0526198bbb746440139ea742bba1777bef0c637e5f738002451223bb3342b32cbbcb2862ed80b5fa89a466eeb164acb65c76f1f17c3246e8dd73a882666e8e16f822ede3aec72b050869e533696cab035ed85c1f7982b5b560714bb188a6cc63021b97a1280b5c05574bfa49fbeacdc0c83c0b5d5050841399e3fd3c4bbdb2f1e11cf304f6f4d1bc6d0e4fde150080ff7f396a79b9c311c50506b15dfb172a7fa4a4fee7f014bf4b5dcd7e16e74770161919a7d305615afa325ba6e002e14b3498549ce998a04223f1d27bd1bcc5783bf95401e8f86096a43f355d82d7614ce0e6df2d7972fe083a836361f96dc16c3a7fdadb929952b13ecd2393dce0b1fb57aa0c82ca6b16a01525444c9b6a20fd858db9f5575260d46187b1d95d413da017309b61eb6854a68b8bc86affd35c69f5d3ba00965963de82ffc1ec28af40f5dbb578c2500f23856efd6d2077174ceb49faf17ac1cf904e33ecf51fdecf36a3673cae0569e9b5e8ac9ddf37a71d369022b97bd692cfc0a13b05400945176bdd81cdbee19f8ca9817b3331fa408b1b82b59ae68a7f1421cccd40ca515de17f60941b8499a2d000700aa6a8d79874fb3202486c8ef790c12c08f19a8e5ce10f8a71c512a34accb2ebfdd7486eacf31da855a3a28b82cd01974a46bf035a081ac401b7bc0d438c138ab0b42109f065a2b65b4ae322200471721d9b8ddf81f743bf530c3c92566f6d06b5c43197cbad2f84e05b9421d132332dc171ad2023254abb71daf1e483983d3743c39be9a15bd0cb17f40bb82bdc11043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a1043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a3ba6fdac0b77d30417b290295f5091155d781ed0d0a66a28e5a091ccf9031fab1883d6e1d3620a99d127d8cf8f9f75ddfae5984b4c8b4ceb80eeda5649fd19220b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc28a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e871e6e0637fbd2eec7f53d9274a1ec6abff0bb5a737b45b8caa2d0031846ce7ac63e2a62af0c0ec157b4163e558a1589e5f2ba4a4494e1c6ac46d6793eed0d61503aaf8c3339f1ab672444e10a08c0dc0efc9e314ea9c148b218529c30eafd8e0a2b14b240c176e1fde32638dfea6520d5983e5f855c8c72873458769e662a2ceb1d6a0e5afb7cf7e470de56335d310ff0d4c2db1069fa5d8157b7ebacf070fb0905658bc419c6b4c20a8cbfb280bf03d8dbdbe0984d0a63bd1af5ba6f8911e8a8127381323f9fbf530967dc8447c416a96fa1e32b0b281b6702eff53454096a4115c87650577b39bad636654ee00feafcc869db0b5eda86039ff8dfd84b6c28b939346cb03db80572a9e11b78b224ea3be1e5627d6cb4a161201dbb1881b7a39c3edaea3ce3b29d21497258d0f1510c6ad41157af8be9aa05e08adf2916c3b85a127381323f9fbf530967dc8447c416a96fa1e32b0b281b6702eff53454096a4115c87650577b39bad636654ee00feafcc869db0b5eda86039ff8dfd84b6c28b90aba3c0ae3f5d44b2eaf76521f4a79bb1588c87035dc42cfc5acb78db015bf4f16336e223958af763698572cbb2d5db8372a6343c009f1ab4dd5e65908446cf61e224492f0ecd28f7e1ae56ccb5b965df65fa883d72bb44e8db5d426a899dbff1f63ce81344361519080b8dc3b1e35bb17828eec25950687d646152a439c2c5b0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000107cd991467d98ecc1f174f69b3cf8bf0b1976a8ea4e81104070b183741ea18a9177b9baae372d9712012fb537e9fdadf97cea8d618ef30458fc621655fcea19c0eabec8a14610c3856648a3897d69e0eb18307c4ae4cf817f17cedf7c5e4cc4f1f88050448226a97040f75754e25139bb0570d8e99af8eac208e84acc83a179d070b1d3037a8998b521c14d2a1d07f574413b06993e70eaadc2d95ce211d3dbb2777822f755ea05294d70ed7b1e66e7623c2d6aef461de92da5e2d26a7bfd3d00c834ab853614d17846ec48b4788755a7a3fb4ccd908ffd802465fc9ef4b80c627bb4b669f0c3f74e19118b70e9a8c5c7cfd5b445c1a5e4bf984d8846ee3309e2c0256abaff20e849f8e28fe8e78405369bac6ee4e4af3bea3388060dad1ef01132ff7407f317c67194eeef4e6f06ffb863ea1bfef1822c21a8dec69d1b30a350b5eadaa5d71cfc010951794a17606984a75fe920f4fd04b2eb8c97edcea0621142b4dfc0c27060ec48ccaa8c6aeafebcc4e78b9597c47eadfc16751aea555c02d873d6695efa3a93a852470debc527b02e0b56ae5a845e7b0e1a28e4270f8482b2356aa9f2c4e107c4082226888c155e061648bd4aad7047766daca7916121731c9a260c5eebb702bd9b707a0d331a13b9ba26b30a96e5ecf4e4d9609e29a2a07184a2826f745b37aaff3d111048ac514386316cd9b7554a900c4c089c7df2525d254bc7d742a082c49e4329a2f1fb98b45cc8474f076dc7f29b81c6faeb61e006a327739e8634a68044a97e38ccfa47d2c62f492be109cfdb36fa2e50498c806bdc2f66d59434df2bddf6154113e9d882953541aaab57a10903bfc9787117e331cecafab7c9037b4b82829d6811744d132c2b36c52a94f878dc49b3a3276412f8a528c4c27323ee24ca610384ed0116e93ec75d4d167e974ca3d327e9a2caa1f5453c9706a4a025229425ebd9492951cc48ee280919729bd85120d0411e4af0cf03eb1f74a7f111a7d41335f7afe88c3acd0a698584562ecf39a35066af6a52705e3c19f4cba43af91ead2da566f45b5439a5e4315b433d9a0537bf30052e521f3a508aa2a92778a66b50aa6ecc219df8c4e081bc32bfb1efa007d32f54b93338663d7480f6323c6af4a541b408fbabcf655c549db437fe3a006e5ea2616900b6d00e793bd8639360aaa5e93af62a62837fade57aa044435c73b08bdc6d5ef3d19837de103456d6c9ca8fe8ca15476f5bc8e645e93533b9e8cc1af889842563a7e1eec500462cd49dc6019e6f0ea97155fb61a6e13c0bb5c0c6747c6e47cfd0bc677608f8a59938e462678495e3104f0106d7c4c98e34af7dae75f8111aaee36cf28f487309ac7d025ae00a496aebb27fb8b9fa6c6ca549efcd3d07ed555b632b8e0e65632e5e563c8e1128c381a8f46b7e97a9ce30cf202c347fee9090f291306c8d52d1017fd96f78aa2bcd962cb2bf443001db53dcc10d06e80c4d749ec02294b70212e847623f4419352838b39dd682dfab88df5c65fbd306c42928a2c1b484ae52268df8a449e365ef86abab3e56ec4845701b32a21e8d5ceced66da92f9018badc0322a95be61ddf228951848a00d4179b72e9168969b8a2e7aa8b6933722c8bf2a85ab5294f55913d8f20c65c5bc0f3375ef3cbc7bf3fbd3bb307780417652f8b0b413a761ebe096def04f0e48030dff3fd94e662f8ed5d89a6399029ed6bb25ac21c417bcfe687ffd5ee748c8f69f36abf46c0861ecbab95b3eaf90000a4ad422bd2c7c7727c8fec5dab3769956033df1c40fb5a98f75bbe358a0d283e254cad7238fc7e2fe80df46539f941457df46ca2e6999bad8b756c8be5a51626aeeafeb81001936b6d0ba479319c73f1c4cae6632e229bdadaa6615a6d9738fc69db4646d84c91edab319fe360bb3acaf8835b08dcb38e5b4e862e25c8b011f29ddcd5397f0f801760416167871f3f3576afcbc9ab5dd0d28b3e64bb4966111df108ccb2859ed1f350974895024b5e2ebe74fa45e46f1da5eadc3bc78d290257920a7d1c296d175d0e80e61439db6ba1b942b170ae365460ca72d22c386f18639ed24240f76d15bb2e5e08799be36a705156178dd55c654947a7c6185fa424e725cfcf9eab025c3a75eeb1efa7481cb0c5575b037239a2291c62c651b9a61e56816992ddd56206d8aaea597da34c6e5007ff6ebcc913e67db65dffc279a71c632d3ee1e97561a2d55a63b3fbc02869b32856030bc899f3f50ab4e187e3481961932c86c70d27431b51514f0a4e8ee6d185fb5db2d86e2d066bab217aefa8269e6cd37938f2d8bce4aeaeb0f5b1713b751300ab9a20ad6c26c541de8510593ee7dfdea1e341c44f8896968b3388ca5fd104eccb31410b47f2e96aa766ae47011820215e1cbe3bb077696974cc7735c275940f3e1bb810513a4782589951ba3a875f59297048d58daaf0f0b801abf355fab4afd2c260ca0309cb614501675f0578a0a6d68fb72a72550f0f47fe540ccc4be44c368a98519623658bbafe98a224a4dcbdcf316c2bc456b4b398085bc024cb237ef897ff83aa7c3532590704d71b5b234230ce93d43ba94b4c67f7a43ffd7b757d10b4f997eeb0fbbaa6f8fb2a1961932c86c70d27431b51514f0a4e8ee6d185fb5db2d86e2d066bab217aefa8269e6cd37938f2d8bce4aeaeb0f5b1713b751300ab9a20ad6c26c541de8510593ee7dfdea1e341c44f8896968b3388ca5fd104eccb31410b47f2e96aa766ae47011820215e1cbe3bb077696974cc7735c275940f3e1bb810513a4782589951ba3a875f59297048d58daaf0f0b801abf355fab4afd2c260ca0309cb614501675f0578a0a6d68fb72a72550f0f47fe540ccc4be44c368a98519623658bbafe98a224a4dcbdcf316c2bc456b4b398085bc024cb237ef897ff83aa7c3532590704d71b5b234230ce93d43ba94b4c67f7a43ffd7b757d10b4f997eeb0fbbaa6f8fb2a1dff3c5197fd00d1d0a0de7643244f7892ab4a9b26b3f4238af227929b22c07334ab22fea15d89c74a4ca0d1cbdd19b18c8dc4699b5e6d44a70b9e363033d8120a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac629bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c1c07d24dd30cb6b53d135f2ccc068e0e8f6acb1479d8c3fb00d3afa7c818c99d06d9e8a188f6a404b1f7f08513740ab7153d20df8d8cb0ce8cdf805c2b5ea6f432125a2f9c132efac0167049709730e8ab2b69db8a5bcf7d650d7a9dd03e945d14de7d956b3ab840ffa95be77006ffb419ae81039ee9e97f395e9b804a4f19db0e7fac8448dc53da073a8f77f15b2071c7a3ee13553f8628616f968d138de69921a498afb8a363c3eda9ce85aafa4bf8d77680569012ee74d1310df04a4113c411354e605b67b1a7809a369f541ced5ed934a4c09ec3341f991498c701a1288d02cdb763fa0d9da5a9237be078ea30ff6749e00736ac3e89bc196bd4063016fb17ee25827a991e74a1b6678bf6a54c965f692fc4195218d57965f2c1966594c92194e3701a64d8f6eb094fee90c15a3ea2fc3cdd2fd7656046c0f53a10f4b5b511354e605b67b1a7809a369f541ced5ed934a4c09ec3341f991498c701a1288d02cdb763fa0d9da5a9237be078ea30ff6749e00736ac3e89bc196bd4063016fb380b1198b97b15df78b15606de08402caa294a8b00f103cac4a11e370d1297011a5ee87b8ca31b253365a7e839699982f339b529ce81573045358b607d8998791ed15569a2a2227b10567a5c1a89a71e9da700825df5c7790d8cde408c276863167a5f99ff7f69438acbd344dc62cb56821d522a6f950f2ff0cfca6df1ec37a70000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000112293d486832182eb2786718eac05daccbb8aadea7ce6656ba2024a8305e0441136235257695795b5a1a0982c5bc272fdbd736ab010b0f78fa33c861491121111b5e44144a8a595736152a2d42aab2e242f801bb2fc56753314920f64f4e06a839eba19b3bed4546db88e8edd741238dd418395a00591d790b6ddfbcd451544a2b2f7d984b6a2a053859ca3a463df8fad7f038a12bd57706004e02f6d9b27497107183b9ad496451d65be90714392e1dcb02bba1f7d86993c113f81140323baa2aa241c59f4952da4eb477f15e6e373ca6f3c2a19dbd4eb6a11e6fe6638b49350ac323942cc5d7f27a8cfcc16e9756d1bd05d0aeddf44e854403a83d84c8315a2100c1a2a9ea09da38977ff173b7c93a74903dfa165a9a0db495d9c8444d515d3065b9f6aa879c37222305f9ba2f87c3eb8bcca2ebf10f2aa5b84f48ca4148ad1c49ba1cfb8e7fd64ff3aba16d36bb5cb917f2c0621e7843aadcc401917b7dba2bac0721e0501b6df6cb375602d77d52eb0e5ff8f2b84f4bddf7c40ba6ceac6c3deeee8ab1d483350d9d697241108accf0ebb0f02d00cfa72814397b46070f252f7923addc6c46ee92f5a342dc9fe415f0434768511d556769776c57c1fa8dd01891a71c73c665a729a8017804c07cbf541fac2b904b7f34d5d395d193a2bb272b753e17d87d5616d5ab27322890b7f9026ac74fd5577f74d379251db0fe16351eab8391e8e37b8d64d9fd7595bd00bf57a7b4e5844311fb0b03497c11a8d57f28a3a439be10f9b222e861b49b124153b17ad2b481ff3d99cf561e293961792703769894d346776f6d8d3607e5f79e068405fe3821ee87a215f5e47f940f0592012940f549e6cca4b793c34d7b598bcd06fa26454daf5a08bd1c0993fafd7b161177149fee752d40a07f0c3b6c3ab0d4884c90b757450caf6771efc9f846056e308bd10d6654c54b451533065e8d95633740d04e4945319977fd198bc752eafb1c648954cea49473975592b6e13c5004db855d51f844fa58a3bb537f1f4caef110cbbfba5a562aee40ce4a63109d65d9b4322d8b2af57e0844e153f218edfab90fd49fece1131386886e02b0cc6b91fe60d532bf7e817ebd9b721a864f9daa8e18f3f69e70df7fe7de3c2e5dc5aacee9a393bbe19ae6c868fff89ad044ec195d281060fe9bde441c4e58c555ae53f49e65f3dcb477098461d641752e47f8d3021bd1eac6ac5ec905bb2e9aeb1a2979d2b6566d332a117fbfce95c933dbe6e5de0a9075ea0fe428710b1120ff4de407d6f01fd82132ab3fd343804705fb6150fe3f0293b9940ee12a248f867cf5483b22344847be46821fa01eca94918489e9fe3462ffecb7f1b2560ccc64336492cfead2759d1bce66ec2461aeb3ec2a8eb5df3731fdac99878213c91c2492acd0c0a48f93aa941a4ae9b8a1a2707ff075c26209e3cd90eaf7fd44b5c98e39a874d3de58c0b82948c8614e5ba9f29d893491e93e5620e0cfe39934467da747dc53f4756bda877e64610099ab3d60540105032e334dedbb7b75f4fddae98f210817f0de7439bbeb07d5010089b802b70d92a82013f80d72a12eeb1054f03256dbd8a69a8c99904f4495f2100af887beeb54c3182ad6b56dd2b7060c3a6300fdca7854d1f357269ac29d202bbe6f6b597d87e5b4192d558d7d36ae86e34f0a50d5959fec21d9ca77275e28ee34de7dda199db3143d250dfe8e7a464afc671c03822e4c97bc85f8164b481db3cc83880cea4ee2b612897d7e6bc1cee93ac37a343997ae1bb04c25d043f0c42afddd9c64c4667926275639216ebb7370e2609befac38eed12f54060b8d926d45abd9355510846f761ba952aefbcfaee338275fa7bf817e34e4dd1e5f5b21407d231ae196daae2a050943188105c39fc00ac7adea7d005b92c3d4c6ca94655764f9df4b7ae32449283b5cd71ff7fb455b59cb1d2dd2834507f4538bd4ee3d225b53fca17ef3b39196069e4774371188f95c7b9e6461829e37e8fb86543156e3312b57100228fb0c3b36a294e0dbb621ea8be72b12b15fdfa8d496419a273cba099f7f6212d583d453041e1ba9418df9bcfefc74fc07dd05ce5d4ef8bd8ff278648d5f8e95268826ec01f16e3bb98150061b2b7c7434da17e7398c722254968361896523b87f3d53d1052507a97ee886fae67251575ff2898f48603b9b17176967a94edb1b95832e4e0ebcf77fb24a27d960bf14c529fd5df6955ca3af8924f1877d2892f3a24d8ad41b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac24fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a60215507121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a7235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec21ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f30c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c80f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f046391b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac24fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a60215507121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a7235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec21ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f30c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c80f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f04639132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c83614840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d31263feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d0b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c342bed61af12a068269a5db3057451efde070145726d01d52f5bc67a7ec63d333d5eafbc96ee19566bf0f54485b4c58d8048d16c5850aafd92e5e7db1c530647232e8c181273ab6072cf1e9c8a11b654c69644830c2f5f9948f98b2f5eb063160d8de0c8564e8b3678fdc6ac135c62295b66f230827010b96ebe77093f50cd8b240649b5bb4f4d871d4b6896d7e024258a7958f57c2ed8c48ee412ce7fcb8e220d3e0f4f64e777b3528529c553f8ab0fec08b3cede187ffa0ec88648ba611172230086247a469bcb4270f361e752adaddcad693d24550e9e2dd444b25ffba12e366fd69bf31349f99c35c37b1c54b8ec1ae6392344ecda412b8bb3f63a32c1752ce6bf9402cd9eea8f5df647a4c71b624ad41ddaffb8f877d56e0dc2d6eca15020055e73c43eec6fb6affbfc204f597fdd2137a2597633cb71d8be23559473a0230086247a469bcb4270f361e752adaddcad693d24550e9e2dd444b25ffba12e366fd69bf31349f99c35c37b1c54b8ec1ae6392344ecda412b8bb3f63a32c17507b84ef2185dc20c88214b5382af44e5fbf1d259af3cbb7957c71a8caedf69af2ea5f052917a6daa99c6a0e6a946016449ffae0bda0c1278d5e5d6b2b63b693e09bdf445c2064d1b051a48e22cc01ed0e8b9cb8f277f5679dd28c73e6290594e1e2ae81d2dd29c5aaf58f64f8a5e3ef676fa559019ed3213e06b767c9da3bd17000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010fbdb94e47d80b00c39594e72690003494eda25bbf1b259e297c3742706923dd3ec7a54e87f6d50568da743b2c4630bd8d37bf500e872e4e1c275a79e69b89ec386197dcb5abdc2f0a67527782f03fdc53062b18c35cb4182378c1c127a89cd22d237a3a12b3630a0336dda2b8c52777ecaab5434fc58c004db30e9e613a09ef26f930d6f22fb7db9e570a574b2d0692afdd65666435859664f9c69f64a76b933d44b92237cdca4feb15aed4c26dca4f642f3e3a78ffaa9752a970472f77bfc304523907e3f052ae73478779ca0705438651f4406c1a62934b321e6e5abbb5e139c82d98b13a960dca7dbafd9506a4acb4d75a12f08966e24eac4de237593159132399a54ef4f4b95d86f91e3290b590b019198e9a1d7042c78e67af4619c5033cdf702839ef497009c404fe00b1b04536e527cb8df5a58b7c783afba0fb94a208a4fd8febcb74e1fca4cf006fc2199b6e9a578630861995b2b608f94fa81a793938127d1c0de81a774cd0a8086038fd4d9aff344a0bceacc2bafc8abe60cf811df9ba35c665b5624f17d8544a1b3dd57055dc290c4d6ece429dd8df0367a4f22a621f5e27783733d3e79a40d1000c7bc07387b437a126f627d5b9b7e64f3e0434b3e8a7b30a9d0f9aa8283af50e04b0dbaf2c2ff1c07bc026cad685fd666f4e16d5ecad89e6677f22dc4e94ca3b59280d630f5e0929d84e1f91fe69a698effc03be131f420526b5270946e40e0990c45b3d90c1a2a3fbd56b5d111135097ed037a95455f20157a377dd68b0f4225596bafb3e9104566ba819ab45e308e0c436282c90b1572d2c094c013d649814f46de72a76a306c4e1a0fe161dfbd5aec7223319f63243bc2280ef8c4636f0b535a2a9b1197a7158c173ee9bbe309e620668330771db22d8fbcadd9cefa3f70d4d61c40eb1869c5c56252ce3628f5dca086d02f413d9cfcb502f6f0a04ad70c6f466e3f3adc26eef29721855baa0bb486ba808ad0bb61c2db6e2d7b839d14b4fe346b53146b82dcdaef35390ae1f4d230fc213b4d4bb5d26920d6554dc8113cb30f6d80c5747a636488849db49368e30e3191a2ff394c241edf20eb016b8c51544f772c8d66d0e556983a2e2c40d8dc91f9a0de00ed42a34d2566cbc8a2215cb6c40f6d467bf10f12030999eab6167dd65653bd1dac68d0e555569e04f6f57d2b28e3574b944b46e892f19d50701f00a2c2d3990b0e60200f8c3bd9e02270df07e51bc4bcb2dd829ef77bb57c6ecc116455b1343ad3ad1f6ce72289a3f0cf1c19f3c08e99364788734b2b53346116ad0a0c7085824fa21447daeaa45cc7dca8fb70877bfc237686ec6c035b4c753ef1c45f428ca366175053001a2314d4669fd7c12b1076c99ab774b4a37104b7a05cb007e3490aab09acb3e0b82fa5c37195d33455240b2528d86835acac8ad29d7b0ff54104004715efb9d4981396663691f54e52da3d70afa1ddef3b11171d00f54bf8f18d8edd49a19b99b8d9a6db2bdc15f25241d9b2411caf4e7933578b9e4aaac43114b3c64383aebe32819127ef77682d2ceab66cd4261d1d868b7f94b550fdaf80d706dbc76175de04bbbb2495700b40b1e20f1a3b208a63cac303e1d8c136c6839a88a2023ca96a66d426ff71a60f5cda39d09e0e804aae9f746ae8c64e8616432b843c2b588742e3a7e22a5977930fa8958828f9d759676baa89d68c767f59c2ae506a9720c8de1491c119a398ead306c2ee68de1e617736abc83ea6062488b0bbfa7442859c2be019e1990a62b34054eb8204a700d6235f03c87f4b6d0d2ad38a91926e49caa10649300d14d1d6769f2e3943357a5e261f822fbcf78de897f02b2aa1ae57ae62fe1b96dee6ebb8fd6f5398fc9486a3fe942dbbb31847f285c2429350ab905a0ca7874231188eba1c63841f1a163b1bc8ca536dbb18e579ad40b27fc6af819ddfc35c520bf769e4e2a886de807fa3dead2338c6fd39790cfc53a1996abd5c4243e7a84d388334f33c304d85959e66675cd1ae9fabd8bae11f72ee18f8f4cbb7655c3a0d398c5940dd681448dedcc5661fe8424d8e59f5edd1a1bd6ec904b6203a9d754458c81ea5fc424c36bc1134825356be592bcc92145762b429b5002228d9f67112ec9adeec6b7b5f468b9edd1408cd2bf3ebc5a5c493b30bf77b4fcd6ea8270bf7e5582ccf9d6795128519d594c4e3bb972409576517c1e294ffe5baf63aa7558ff0dc158faf7a69ee6d7a219a9dc4e72f8e2cbb469d72bd0405ab456f0bea331cde047bb2c125949cbc4a98bfd60a8e0118e69765e7a142fbfa54ba90f415cce321fb844d3edc8fccd375fc0fbbaf04d1f5e9689a1871b1141c585b2b3b92ff9056166a7dc5b579d2fe333d5079080d8c5010f4fd85f24eebe3a7a4d4c46d006fa9e995823a4caa96918d577f18b18546bebf0b027a2075648db9c7d829defdd1ae701474dc87184bd77f08f339b51e1772b4c8f39d938a9b72463827d621022e518feb8b237b0c1db8418bdc580474bb9c1b370c62824af6c4a0e738d15af518683066484ea3797b357b2cc0208996753d87ecc213d1b5093b5f18c72ea50ae797cf99b7b15eaaee5a45680f712ffc5dd148133dec42bd0405ab456f0bea331cde047bb2c125949cbc4a98bfd60a8e0118e69765e7a142fbfa54ba90f415cce321fb844d3edc8fccd375fc0fbbaf04d1f5e9689a1871b1141c585b2b3b92ff9056166a7dc5b579d2fe333d5079080d8c5010f4fd85f24eebe3a7a4d4c46d006fa9e995823a4caa96918d577f18b18546bebf0b027a2075648db9c7d829defdd1ae701474dc87184bd77f08f339b51e1772b4c8f39d938a9b72463827d621022e518feb8b237b0c1db8418bdc580474bb9c1b370c62824af6c4a0e738d15af518683066484ea3797b357b2cc0208996753d87ecc213d1b5093b5f18c72ea50ae797cf99b7b15eaaee5a45680f712ffc5dd148133dec41b3b6514a5e576d3bf2166ce9c7de55051cce16420aa35ea7603aa0f35bf89c41aebe5602a8f012b625ab7294163b3f936535be6d1710961e568ba8e309576382dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd60921f7e41df776f9a63500f53f202facebeff31ff4c585a0e33131f38d1133752246abbfbdad4cf426e08de505e53d908fdc5a264898b9fbbb1eca3cad9dd35b0a58a6b1bb44d147ad5b7547bbce66ae6e2f742307dfe918a4c7e041939fdfa1204caeb5ac6124abb79c81a6a19a8027cb61b130b60d07929e69f35e7380236802e9a38713200bee778f7d92c4d550d06bcb9c07610c21ec37033bee762336d0080e6d81701605b88e8fe29d75b30637c8e7bc4b6ef3526fa68a394d415259b9003e22f5ec42aba934a14a76e5bc7166b3a64d009d6bad7e59eaefa93482ef3c260133cac9572b24b68bfd8d1f244084ba11d3994eabd82ebc908bfb5ac6dcd036fa29619991c4d5f292e8c0ebd31089a9f36c34c7727760119cfc5fd3d6c4b537d7c074f1b9f2ad3a76ec052871e03b555dee86b65a68b8d707535a1f4fddf5003e22f5ec42aba934a14a76e5bc7166b3a64d009d6bad7e59eaefa93482ef3c260133cac9572b24b68bfd8d1f244084ba11d3994eabd82ebc908bfb5ac6dcd0017eb022ccf8a7e9bf1d453aad9b22442187f3a6159b27b85bc599fc541811dd29fab68ecd506bf57d433b5d8ca666d6bd099c1e3de46fd7b74a3e22bac38a12281250890a9c11d86146b5db02d1d1e143d65a875f4317c53704048c4a77d6b52ecfb9cc6b51c5f4a82f59977c75247716878283319abf677a5bcfc2ff12cc0a0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000130a339b30b79ca90ee424468c83eaf5932d8cf4421ec0b26f06fbb51cdc430513baf48c2ba19db55d39308ec3c6a64273a4f7da9229ac1ba87c247798a8248743fe93f7ec5fce50165e2f967674a18d1b1896e1dc892546cfe5493c5bd4c780215442a3b118c78666ba49ae43512cebf9a65482b3a85e8a2dd47e7287f2ed84a371a35c94f34a6ce159a098d5881d0beec040d7d0f64412def8feca0100b471f23a4311e3e7f0c88e0d63fcb4738dc06c3f5b94affeb619d1c6d5b0315ed27eb2efa893a4c193d1fc84a965c486e71ad09fabeb20aee95d3440f22868cb38e7b29ee0a54f254d09cb53ec8277bf159f1e961d512cd684e42eadb1a98c1ec6f4e3be3ddeaa991e87fc2cb7aa6a61524e8c8e8b55a105a28e11e0a8936bfc308ff0372d2db4de5d94e2c8d1a59c17334dd1e04b3717ba7f88669e49988c6f23beb01a3c7f0184d8682e92af560ea52fdf6669324449b48211a64db9e8e4a1d9a2726c661d672cf403aa9a4dafcf32d991817fd7be1c9e161c10129a139c53b1a9d39e22597e8211960f56a66950593f439ce97c81da977747dd2d45b5f9a1ba3ba026e2dd782d1f2b8ab22478d350b59bf2c3ce3984e46a97e88dd4bca3d493f5114977b7d6c5c476e3729ab0b0bfd289dd87f8768dddc373dee0bd81adbc364f00750be9da4ffc4161188bce371e0af59fd97937655b1eee09f3bc57a4ad422c42ecb7c4009eabbca3bf50c75027149c5d0ef818c0858b04ab2783f4d1df7d33f2c45514fae8b5031ce5637caedaa5c39c2a5769128eeeef58544867b2d4e42e827314f959a496015e29a17867721b3ee59b08fa3f4de8ab909642d22837eb5f9361c14a1c6685f8de1123b41f59cff9d2e4ca173bf0b6a190c687f047ae64fbf2e774fe6bb63cdab911b90425cb63483ab277299ee2049546b9a2bae358a0772172c98e8d87183fca5d4504621cdd091fbddaf2de0ee630b14945fbdafe9ece51b70512fe43333c927bbc65c6879a0c88209c59173410e7fd036bad199b416e63927d2473da214f8a954ce563bd8d476e1d7733c831e241db6e8c4455760be320002d3bca1c05147db87a104c2798325b3500a6b037ba3bc9979734cb14bd04b265ff8da7b75a907010bc36004645f94d327fb22e487a3796eb5a1c94a2eee3b01bd64c6705c4b336cefbc36cb952890111066d4d34e16e6bbc6143d5cda9b301cf6458f1ef448d3f5ca384dd7e38ef12923d2db8600e8dee9beb8d81b35eb480d4c516e4792c46a5fd9ae81408aa2407f24e95a52b2d72e0aaeacdb6640f9bc1ce85a617bdb642d834bb19d1433172952a9a08120e06dae7515c719ac3eea533a0692bc9a3f0989802c617979cd8710201ea2bc1e1a8956bbc3cbcac5101216391cc6712c3cb7898a5dc6ea2e621b4a535b577007114b991bf86e68e9b750db22b6901dbdb1ad3bbe9b8ffefb3e7d8b3edd9461e84a25047c660a914538e7bd2cd986f91933e18bb22600ceb3a92b3a570735a482203a3d738276cb60cac920320f86753d89c58d943e6f670f32ec4642a48d247d7ded0fa2c9c9e4c74f33f826adad25e337111b339dbfeeb931ea95cfd4be1a7907af0d8183dd2faafbcea2260a454cfa7a556c9060f46bdc757a71e93432f2c863e2ea2f524aca4d20f003028d64e230eea51a0eca0538bf5a1cb18a4807411a992f420904a05a86e385e53d90af94e02a156d692f1bc9999979bee6afe09c7340109e71166a68179a2ab801987094a9bff5b049329a04710a118493df739737ab2e0379bbf8909f44dbae29ac9cf5aa49d06e2baa4a0b0c126b2efcb2a6b4c31755b8fa427ab014bdd8e208bda464280210c0e5cbe2424bfd74b5b67860369fcea3feef4ea0f74ce3cd5c178eb3fb15c60f1658383779766087e88d863eb0aa5d4bfb93ceb86f99ad2cb71b2bf0694058fcf04d2003ab77a8fd0feb75e1336141ae09c856fd11150b0b543a0efd6c22040b7a31f64cb4a708c4ec8b7d16aa65f26a78c60b0bcb9b09ca2e369a2246abf1f26a416f80157870efad6f50ab9861274552e5ebbbe8ccfa7bca2d8974773e0e1230457a89cd0db1499e12f3ed33018111b5485b29eae6f561f80448dd7f4d16dd14e623a43f502ecce277a5879778af64aab534ee51d8623f3e09a26e214eff071030060a2aa5aa3697b51d4f388df9f6ba7dbf55c8d6fa5e552479da04516f86bf9303569842aacf462cefa7152c5fc717aa557735cd465c670f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d1116327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb03be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d3c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9412b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab212d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e00f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d1116327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb03be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d3c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9412b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab212d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e0328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff41daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f31870947f95bdea9c3c192cb3bbf7effe29d0fb7bf7284c1d7e0d66acf118ab01040c9277dc8c6351fd039b70656118046072e337c872d37814fdf794ba768ca0a1512d88975ca686798718111f5436c9ac2d9b4ba608e39bb61ba7ec94fb5cc301d31d12dfe16fb786dc57c6e8747c7dbffd151ce61faae4cef5f41a07180ea0384ccccd98686b104ecd67cc9166541300db26d5a288078ae60ded9504acb2a3b4efc924d0f7c35013ce4a6204e41a0d2af57decb24efe2da4b04941b819666303f57e3f35b5d7b1330f25c1de91dfe5560a11d88c671b2ad2b21c643f4334901444d02b0f68c8a15244aca7777246f0f229f53f481e8d97c637933f42699f63eaff1fda99cf274ec44143257d36d2aa688c4542941c328302d04ff1aff044735705bc03969e10b81c3063b89f4985eb328621906caf853ca0348347f0337801beff4fa88b7d946ab3e1673543d230eafebbe4488d4311996f27ed5e57e355f1214cf85c2e587bb2df17725784a51fde890d617760a890461736a885b0292993eaff1fda99cf274ec44143257d36d2aa688c4542941c328302d04ff1aff044735705bc03969e10b81c3063b89f4985eb328621906caf853ca0348347f0337802592d74d6b734b6831cd72cb2971813a80c8eb30d48f2b1936168bc8afaadc740310e392b7bfc261d9d4450166493780a504deddcc6b22b0c0f59941b6e8983c211f595cdceeca42153099601ff147d071c1a2b0872c31fa7a494eef69cfc60401b6a62cfdb824ebd6775569f045fc1f088839689943ab9bebe6beee6684e561000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013b49c52a5fad048356d49bf9a0b056bf520be8edbcda73b5dbdfe93c28e6442f3d832d5751f38d2361a891dac2847eb390a392ad3a680ce7b277e521a48e02e302ef5a0c2ad4b0d970548d26d87d6353b221679190153c66cf05ee0c3bac423408ca65976458382e22a76042fb1f6a82ae686bb13d93837bc049ec2896a86ac90502d6682c21d67fd90176c66ea5460f34074809187fe09acc244ab1f7a04e220933843c157921d307f024dce0e8d968a632b164c70ffcaaebde5010aa215e0814cdc59c6c2557cb7244f7dd9728b147150d554399b2c089a4eecbd7e6e08f9437e5d479e7eef3c7ad6dd17bbb1cc6efd848dde8ec11bd3400e250c38e545f55162ee13c33b69bfff42a279db7db55e44c555f7ea1d182048305060448d3f8060c9725d3b7a60b9432c3aca3bf6ba34692dbb9d4446c6a6a5571bc64396b3d9d317986b64c95f04b5fc539f366ec24625d2752f76ed8a815c476e7ebe67fd02405c0dd532ae7b8295dfbde57ec930f63fd79c955453ea1e3715d81275959f3bb32d7d942f9ce7632f49b210eeed444205298e7f3f87b881127a0f6313c473fec37d571d180ed1d3464cd1044e2d28e29cbcbc65de0f55a7fade0bb4ee42d9f833a6505cf500be5d21da03dc1f5a913fa6e3af38901ddfbfafbddbd710ce3dee439e2d897a1b21575783c367761c56a361f5fbe2b3fb1bbcffde0f8ee710c1c3f3aab9682018a212897f017dcdfac5cc313a62d54b0d9f128de883aef62085ba92f1b2b67b761ccba01383ba12e9eb6ccb33a70b24d26de4678b568d71f03a6250a1873919d5622947f1bcd7cb769fc6b53810939dcac7c29bfb593f434eda8210ae15642cfd907a81e9c4d655f43b5f9c99c08ce8ba4e3bbcb64d95e7a6fa0da2294ee7ebe73e073be321087cae9aa48f5e07cdf03cd5cd3044dbe181a82f00c078de98bd2ac0489b0128cdfb2f21b0f9f976b8ab4f6b5616e5f4889597b0fb10e94c838a485ce7b04a81e882d135b86715f7ed27f923cd5f7c4720d8e8224dc2c94b57047a8110cfea361f2e078d8355ab6cb5644f361ec9d85d4f089880558380dcfb2df092211ef6efc72b6170aa6dacaff216443daa2933adb3b42c15c403c39010d0e5ca80b5acfc72edcc144b54c36b0b57c8aec130e9fd92e18e48d500cd1fd2355ace86f7d6450306e0a022dc607cd75100a659ee048bf893e449d9d0626f0bf01e6d053270e307205a8ea9f887f3ace9421b6b1eca6aa51152b041a245bdfa1041f78f109958e6aafebda3706f322417949591deef2be4cd8e8e9493468489ae215cd5f5fa9a6da9697ec94e5f1e5541ce6e02c7814251a00bc360818cfb4f5013b62a06d2b9cec8ef3f8db366a1b7fa1c8db216b7a92658642bd490890e102b7f312cbd513cc72e3375fa2ba010d2bfae0e07b392c9be8e0e9a05331138301b2aeb237776d12d18bd9c6b039c97a2b5feb20b9bcbe0e3fccc9b25c30fb6b51c9ce6a1d87fe201982b87ba35f2c4c101565a6807411aaf556f15b601ddb6d87dc323255a975c205f1773eb42a167f54cd1adc720eba18ba2fd1b1031d83f680d7f38be6f24b0bea509471808de1d4820d071252ea4bca973daac3323bf0f75d81b24d8ce266094e30386b17ee055bac325443421b09ef1a8f9e75c414e9d8f1edd4c0493b591abfd5d7c900b53b3e46faca612a81a7acb412096ed43e8e8e32355d70c1d84c88a2fac660ce618db4e31f3d1debb0b1b66e8410d7463d1284a9a4a46c8aa5122c4719d6539985eb2eefd25e31cf7b68c4cac305c5223bd99a16efacfea03b5f61a42dcf2f9ce11920e978cf72552e0feef0cb1009b806b1217095a59093685ea591242a9d21d90193fac197fe5aed4dd22a59614b080c0152f9011a05c39e3c32f5ee31bcc2ba93b8717621e07610d31682c11b326c0cb1a32e6b39090ba241a25d524ba4d9a7a5e5247a6ca616bdd6d9d15fb7211d1e87181643506ff74f917c55aa4dab4eade31eb8cca435d556208c97d5266961010ba34436c47d361a927f3819d850515dc5e6de9c9989a234c18435e1cb97530d0d5a7fda90c6d3ac56a5ce1f7a49629c63b9c846322a0ffb1ede0fa0a2ea2401f73b5a77865b4759fa089d025b70c7e75ebbb2b28090b91d6dbf26908dbe7f15bc770ad2b789c8c4496ea3ebfa5438089508f18b66c6fa3415134007211e6907be20a12a5f4baa852aa228ab93eedc4321c81a391906ffae06c6fd797e58a2028c44eab3b34e97394eaa8c25744fba55a775171d92b0fe098a524e6b9c52d13d73bb154c4cb168c6b15573da8bb045cc9f23e4ebba481d8fa2de9e9463ad300cbd5895828088f41e8954bcbb458ea3ac45497393dd74f62fb39b881a0d9e153342a76a7d7f770be176ab4344ba715c76014f88756f842569799564e5f261ec3fb2baeb8c82acc498aea7afa85bc9325d5a6f41e35348ceee8209a882441669004d4514737d533b6751585057a436cdc4ec29ba25f9b04caaab27447dbbe9983e7da699be8d5fd6fb69466e49caedfb49a9c8594b6c879c43d56c968b547009018259664172a0290496b991b6351204d89cd0a2bde0717f5557c45674ab8ff8028c44eab3b34e97394eaa8c25744fba55a775171d92b0fe098a524e6b9c52d13d73bb154c4cb168c6b15573da8bb045cc9f23e4ebba481d8fa2de9e9463ad300cbd5895828088f41e8954bcbb458ea3ac45497393dd74f62fb39b881a0d9e153342a76a7d7f770be176ab4344ba715c76014f88756f842569799564e5f261ec3fb2baeb8c82acc498aea7afa85bc9325d5a6f41e35348ceee8209a882441669004d4514737d533b6751585057a436cdc4ec29ba25f9b04caaab27447dbbe9983e7da699be8d5fd6fb69466e49caedfb49a9c8594b6c879c43d56c968b547009018259664172a0290496b991b6351204d89cd0a2bde0717f5557c45674ab8ff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000397a8de23f943fe84375116b76a48df8f6ea5b4c8ed72576c77c2cca319948ba3d485e1b69020be4f0703f0fd96ca0a8b43666312e8276cd8a7a1bcffaf1c2e02d451e8ec54c0cdd1728d2b226f4309ab4a8f5766a0ee077779ded76ac81513f2384b6580e42dff2f39b18fcce93f9a742fc9b561f3bc9dde422612f4b5421603d2b1f74c77730ff357879774a451f92cc83b959c56f5c6760fa70aa04721d3228467498cdb75c3f5264c644b151704577e55d6351841b8d3308854c4cf7028a3405a1897a11563b340ebd47d1dfd9078865d07cf1488fa7c8c0d35ef2a3cbf533ed7a4622228ff20972fb04a766aa94a897e6b4d03bc2a837200c5819a84fe116747f21fd869d7810c99560cf6d45f18f41f541ab9c7fbe8eddcbb7a5396d5a3b0e1cda859a8d83ff3a8cacdb81a50dacbb47f37a5f84c4c404a7af37254c931f872525e9e5a580089d587cb3dfc4a0771e5bf7cbb7e71e1fadeef552002aeb0c792f2fb935ed7c22ccddaadd879446aa0ad72e1264b41c89555dcc20a144d2213bd8ee889e0bae3a1b62acc11fd529089b8de20cdab4b0a6da30b072ab4b6c1662fbdb4898c5fe4547f274e04fbe137ddb23a3dd2367f18b7f333fe243ce881e27dd4cff015c430846910a99e3ef21bed8473b1782596b0732e157d4d63c863de44c6bd7175adb9f877895b626541d61286701392b28e940f55353f1a6960239168f10a79ce336cb01164ffde19aaf22a7e887d48d960a2d7e6a87503606ec197272acff6d516dc7329dd016cb960dbee5b7b9f7e05f7c3674c44676145172170664a2998bbd4b9995d4ba3bd24b1742eb695b84c9420d7adc39c60abae30606a3d94bd010ca60a5ea274a163d0b0006aa163d95c29921bba7fda496dcf72e07c96aeffd032cc5f717d11ccf71ee2278c9ddaa8f73974bdf6a96ea39d3586a24a2f4246ab2bf6a2201f1d133e240eea0a52a91684d208768987c10965e5a4d37303dff6d87cd6f0dfb792f77ad52fcddc2f79e24a46a0df5b0936d5255c8eb0f832e98ae88694a7c3c674786ee6e7db58d7689ba0d634e5ebc06de48248be23790db196b0a7c1a5de0fc45114b95392aed956849140ba1393dee699d887db0333031d821329471b6ac2f46432a5aa9a528debbfb0aadd1c51340110d02b2fb22dd73bff320190877dcbc80e633292f51fbf2df5cc53d9ebd5941c9bcb0808a3c835c2b533ed2d5adb65eebfef3ebd0c20802ac063c254e8e8b54954457506a27bfab302527007c52d7481a83ec9e3147a7d5c4016723a63ecaa60d3b0578f405c98caf150fbd3ede0ee99fd096e8cc3bcef231ae0e5737f891e1d69bce311c04d9585321d700e98ca44a7c43ee189cd89b44d9c45c9d315ef9c5adf2742eaf09f60ac9feb3d278589049a7e2fc3ac2b8474a1230290aecb26c41e1a43d71b53d0ea78d98b672250bdf05553a3ab2214149d2c9430445e20bbaa2dc700351893aa739f772d12d37977d7fe2630caa09b6e3b7eb9eaf1524ae4ea481a4de5bba1cff0d11c7e0c8a46241a539bc1625c398d2adfbe2eeeee1e5e82c1e876afb6c0000000000000000000000000000000000000000000000000000000000000000278f18e7a77366cd5d7abc1595ce47d9c798d9da33dbcc2c04076d3dca57c53000000000000000000000000000000000000000000000000000000000000000001743d42cc1c05600f121e423f9ad226ae07a5a6e503b038c4b439573a69248a400000000000000000000000000000000000000000000000000000000000000001f69768a3499de67274e501cc7bdb52254099a24420b67dc27a58158b87506eb00000000000000000000000000000000000000000000000000000000000000000f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5f000000000000000000000000000000000000000000000000000000000000000006f88f71dc0d453484c90c325d8bfcfbf95bdb026c9a3aec927fbda982cccc1900000000000000000000000000000000000000000000000000000000000000002e87a8598380ac01e243c847f35a44d5c0f4b4dca076071896872ae74d24914800000000000000000000000000000000000000000000000000000000000000001e3c639e9dcd9b3575eaf05657391f66d9d63570bcd53e78ddc3531d295f14bc1f882159992cfd1697f3db5bc2631c550398512da311d8303775b461269acfc62077dea666d302e9680c24a43d9ce3ab1eae47ce663b20eb61b77c8bd965303b1da8a6bffde0f170f7c348cacbef8da8cd6c63ec1cbf46b9e2f2240bc1060edc22575940021f0e8f083cb7353410725754da350fec8db261b63b0ce13ef9f125144b41bff564b734d6d06bf5fbadc44bbe90c1a47d226f6a3c605260c51e4a4a2bb4be400a9b48cb292f940a04523bb463b5d7578c2a89b15cccde8c3ae1b5b7257848bfcaf7940832121bcdea64d57a968d2f3a685f33f794b46af6d99773711a87b74035086bf7cdede432159b2a858bb969c1a0edc5240478c5f626688c901f882159992cfd1697f3db5bc2631c550398512da311d8303775b461269acfc62077dea666d302e9680c24a43d9ce3ab1eae47ce663b20eb61b77c8bd965303b1da8a6bffde0f170f7c348cacbef8da8cd6c63ec1cbf46b9e2f2240bc1060edc22575940021f0e8f083cb7353410725754da350fec8db261b63b0ce13ef9f125144b41bff564b734d6d06bf5fbadc44bbe90c1a47d226f6a3c605260c51e4a4a2bb4be400a9b48cb292f940a04523bb463b5d7578c2a89b15cccde8c3ae1b5b7257848bfcaf7940832121bcdea64d57a968d2f3a685f33f794b46af6d99773711a87b74035086bf7cdede432159b2a858bb969c1a0edc5240478c5f626688c901ec72c0c20573b5141e5d40e17d7293f3bb25cd5f92b26d68aa789660ac49eba06b8d7221f316ccd211c30eca2885f3786348b037a8ee4b5e05159fa94c46c3c154726d1e457b749e5a32d9cb269c17087add08c554ac6163f1ba6dfbda977f43ebbdef2711d9803441a84e31a9d5ceddb174d378971a5aeaf3f8ea84a27c7942516c5e8bd23c856c28b99e4ae16221700e7e1896d964f9b380b182fedeb9e46175df52e034c121156ab055e4ceb7ea10a6bb7e6078749c128fdcb7b731e63520ad2f9faadc80735e9ba393f6b1bff4e20561f7e5b92c0ef278f8683fc176aac34beb7ce0aed491ae91a54369fdd516fbbeda28747ae2e8713b31280277e27f7275d49c4a7f096e45e097e735f41461e1bdfefdf16d904f59a52f0ab5535ea900681d319abe950e3c5d7f06d93ddf9efee2466ed5d76c58c33b9131e4a7f718b2df270d063540c9307d61fdef29ac5d7ee81b9fa9d701126dda50a019c6f28e205e026ecce537168507ca95e76fd2a2956b39553733afa8dfbbddb00f0dff4210bf1ad21fb510d64d876fe5535bf15505ee66b99bad70c2ecf6a00a73791e9543a8b49eb6fb0fb2f9ac94a3042da43dae34159bd0e9967d2a2c979372113cc332df270d063540c9307d61fdef29ac5d7ee81b9fa9d701126dda50a019c6f28e205e026ecce537168507ca95e76fd2a2956b39553733afa8dfbbddb00f0dff4213bbc4b99a61a5f56e1525410224e4f94e185efb9a747317b6c9c9c73f92f4fdb2a041cd08caaa25bf08632438fa0c85c847da06bc85fd999bfb0940ae71424321d74a6b0997513bcbcd7fc5e7be3c2c34d6ad8aac3f0a7ef8a1712044728185904c07cd059bfc85e2e372938310cf5e5df5f1ef20e3a0a4ad0e4a04bfa255d4a000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013dbe423988e83108825bbfb00d1d7e04d63f21bb6be9f947808b21ffb281bee0344c53aee03fad78657129b6293499814b1a137ecb7ff92367fc8b00aeff05f42a21bd0f8d8bb623ae50c387e3706d14db9e16fc98071761e743cea4a1260381058a33cf44896784d9faaf2135b95318fe18d780c9c110a3bde2ea5a333f4f361117c3207b9a6c83fab3ee0c9c50c91e75780ebccbdc9d1586ace01321d15fa31d8a07f3a6627948736b3ff171e57cd2898702c8c51620f7c9be6f8f390a3733280481541c55f34f239586115503d05ea246efab8b8e66dee49f4648cdeb815d322f4778a6a77669a0c5d789b556463650638e06adaf5308aa08f6cc35ad08df13b9a5af8944e1f6562b96dc74f416105fb1635dabed7662256983764913674235fb3dfa78ab3502f6e4c0f1155a6b378eefbc6e579e64f1d08f3d6dbfd5dbdd14af0b179144eda5f2fb61d7939f5a9752d1a3a48d186a2c1df77709168aaff9047875de77d872aa6adcc4ccc01eaf5f9bd14914aabf352c135dfd0ef8da202629038e412dc750d36d540171ef42f75254ecac8008f7875ae8213b0a2952bad4091107fca0bcc5f6097ee777fd92ee355ab6835c1ee4e33ae2dc69ba9771835b308049890f6c5690c6693cf100414ad30cdbe30a1b1464eb50fe7734f6b7400629f2ce5059dc187abbe89889691ec1df7448da7fca61bad36e9def0a6174f1ca2c063842be9d3725b194f3128dfc319d20ff0b7132757a620edd843074eb15bf035eaaa1c830ca3392470a62b12a47b6aa83ed6b17df599b8015315e7d0538bb2093c59540a049729492710b9f73dd4af81d04896cadd3eb23ba4813a26b64cb26b72e8e7164881809f003bf747f53a6f50e25bc3ed0e30e2eaf6a8163188551061fe83987fea42973c39d3da8b853c072d13cae1163fe8e3ec4f8bb13e4679c22928c2137b1cbaf59d5dcce696c1118ba8f889f4dbd78de7f34e64dbbe1b0fc2fe79df98b9c3b8a7bade06993e4501e21849aed85b22cc7106d9ff00b6ef01b2398c2029fe94c24bad613a1d93b6b5bfd58ffe68b4b3cbefac10f8e738077d026aadaf8ae1463ce0128c043f66320f6455870deb7bf894ea50f2831e92744312caf502139232681abe5cf3e88336fe46f70ab44b1841d6b219583990be24b7e36cdc9fe12645d9f7cb97eb1e3afb6d263f107d037c742c12e20c8de0557078537e46a736f650af7a720a85dd8792e48bb59b905f597d72d2857c3b90c575f88306fa95ad82e12ea4c19046d17cf682f100d31a27449acb2ce0a2e7fabfe454b0cbb12a2343bbd1501d2a8232690055d22e4e0b8b7c91ee013dcdaeca68e10b111537385064f500381dd00d8db2b9f4db2cd63990b2586d71cd7c15a6d0b1eb43ac241825d38efd3f7a209fe69c5d3a8b0a8547610e8c24d38ea0d12708b5ca722e65f38aa8c400aac74ed2e0881b819cac6f6aa5616617620f1f79eebd1333633679df7710a264965f9d32f063901b0c08f20b9d922e85effd78948859779172c3c2de11017bc590139a8564fd00b5b9a36c38cbbcc4a8243504727927731192808df58c67a6129209acc0febf49879978f56a2598549d8ad17a1a8cdbc5f3d1e30dbc7539d21bd602e2791101b81e45a5387205db23a1bc163ab92adbf6c38147863f452cf5e179a900161114160eae746155c53e5e14e5764b2f31a224a900a1c95bd003036102564fd6a1a82b6cd4986013abc63bfc12e3a321c7b94d758082476d8aa111672b1ada2cb6871e96766058162fab95baa1f933525df3168fa2642afb24b3d3ecef0e8ea43bbe8deafe86c8c8ae241ad351dbcdf23e5f88e603cb1f103298c7aa9f4caf6788c2f6c624e2f2cfc627ce9894fd259222caa6864152d164bdd8407649e9eb8a8d0c253a3f809dd2455ca5d198568884d3e33a5e30b67ed239e97f3e9f78278c7947f2824454679ab5a4f9ba7362bcc6c972060371e46a7d6efd8b59a59af607045ff87be3ea0bbf7a7cf285a11d827dedb56bda00070706616914e863b3f4731f6d9a4a38963ca591b59c4bc1e6adb9ac4473cbe0ffaa089f39661850b64e177d1624015be776ebcfee53d681b4ff904f56594413c94522dccb83e1c8832f295f8b881ff6523229feb1ca0d9f49b3753cbb3efd43b78d10828ce58190f0beeeab42ed89e73dc8af01dbc3b2edf624596a874e6160bc171745c8c1879cf5d1c1b2eaef611a5b151ab3629533595471e9442feb62028193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e11105939417e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e13781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e202a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b6965158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef62bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b28193a8f8c87680c7a1876234385f642d2c3edbdf7ca4a4e184093e11105939417e6c570737897f385e789dcbc7a09bd4f82ab3e1182aecd80ec9d0beefa6c6d087e24cdbea5083e627a4eb0519dcf4db6ffd9c1bb0c8833adbb509e551be1e13781db32415af7c19d85b14fae6230b26b46bf3a4e4070e7eb71e04eaae41e202a76b804b9392937ec63897198150c8492ff40c8a73ea90264a89317a98b6965158947fb46c6d6c8139c768e67eaf37b8f475833620e501934849dd55674969c145198179e1dce179df1af37f8693e96782878f7285261b92bc34caf4fb90ef62bae67e861e231e8620e50c80796c169aa1e2004e0fa97626d69e43db046f10b3ccafc6418112053d1c539dc198ca765b3a8d0cc38d47492143067a7a046f720305d9e4e7bb0cfb3b7ab6f2a16664d9d00ffe6e15a8f452fe648d4b20ee2b0793335039be7eedfac2e3ac623e673589a8852baecd7723f5e37deadf71fb908e23fa261b1844f304c485490d5e999b2633afba4d7b5b76ec065c640ecb11d4f892d679058a78e2c05d4030b4b24059a64e30ddfdd7bcc0c90180dc70898c719d01accf253e938a33a74afcf2e87268bb36498c62a38b90beef34b91f0e057a31d32b381b17a1993ea2494269a68e10de6660268bc772b1b1f4051cdedda8689230e718744539124cdd7af39b45a299ab38b28a0b732e9fd1c1b0c17720c6630a2198310085fb4f95727c2a7f1720eaed0745900aff6c054c37f45e7226a983e613bf16574326e03c820cb660dfa6dbd9a26227c4ccbe1392c9c4084e8368953a7277596ab5d4f14c7435038a9742be3e6c85b43f704a7986063f58522738cafde0a541dc9aede8050ad6648812a33cfccdb5e171b67192edb59c9247c6f361c4e100000000000000000000000000000000891a63f02533e46e64b4c3b40000001100000000000000000000000000000000891a63f02533e46e64b4c3b40000001277596ab5d4f14c7435038a9742be3e6c85b43f704a7986063f58522738cafde0a541dc9aede8050ad6648812a33cfccdb5e171b67192edb59c9247c6f361c4e25524c2a032148a548910725eaf0933a72cb0c9d44ba9a0e08592d5295a8a46026c89db030902c81bb06cc1113550a7e336bf2dc31e6b55eded06238ab6d76ff0112801a427c8e5a2f0261a79d1dc91dd72da52cb60b902086b6420a18bedc61133cec6c81fbb60d1d484c090c53fab2d222ce5c6280e594397244a0a175fbe9000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012b32aee95c096d40266242271d799e7b87ef19099646a41f91921ab19f48a6c92a92538d376996fdcf4096c01cbe4952f5733b548548a67226545c41134845b91713608b28462d0122617bf990a5131d86f5963fcd6f92e248bdd03fe37effac00a731f8e52f90f6352a02b578d424046de2b7294bf344591205c4c590651cfc0efccb01849d54eaebdf28ff871a018dc6a84c82a2aba12d8ffb2dad135e9e3f3f2d0b6216e3c90475a967c7a0cdd40d38c79be37880d2cfdefa4b81e018e19c17ee10f846c7f858324776a13da376aefecff13836d8bc09896048db6835df061f032870ea42538f4903723192b73d1839c26467541127d842953500366fb85703d452a60f54d0ef1957a5a5b87bcaa082ff028fa2d88e37f6f8d255786dac6f00993dafed20a3bbeb46a79e84d502c7a98e2dd70d7ad782009ad036f50964eb12dd7d275912d0ef515ba1bed92abd361d2fded99018df3d0555838c5b5382501bcfebec9345e9bbafb7b98abf8596928c19aa165363485600567d9e24c521703cf682485c97672fc2c6421dcab0db8bc00041be7de44353a8c1f8e76bb9bb8a0496173dc2dcca49e160c09fc32f09a68bf56edebabe63a677beffc17a55533931c21ae58f8e0aff9eca357e0f8a87f6e607c21f7ba893221c2be3029c8dda0d11c1eb4d0e67b04a3a14f9b881ff6ae816042f4180f73262c73eb39852fb116b264ed1a31b16fc8835a773ad84710f76c89ea5f89c50252fa43efca48247b16f278bf01d47e567e9460648a8bf6c35f288d495d0a3402dd5d279fa34bae566cd03bfb72d4a23799f843eca9e714a0829eab135a2f15e2a7efb0d572e51daba452853f7141a5b20cf4536a7d7eca24eb8e459d9011598d55cbf9b2e4c95ecf9a604897853020259d0c908daeed47a9eb7bf5f86ab71ef1779ff851673bf8db265357c908734dc7f3046e0af34e755b2ad3ff7fe3e5554e7b88fb0f11e2ac0e6581ed8e6c7aa0be7c6e4cbd829b7d1bef55db1343c75c2e7648bb2f1d5662e5d6c000f717d0305920c4c36f0d1d7d053260815f183e63046688d42d4f3cebcb0830b21925b7772ad66e390b979d404b71f0464eab874246e04e0fe7ccedf284ec01c73c0842741a008bf1dd18406118d8632dba9d126cf967dc3a96ec36352d01d12d2c4f27101db0d25dbb6a0c620def652ea097fe8c1019e36b9354ac274f66b0c64239772a1b3302124b97042398702706ae49607264cbc6f8e118f420df54703722473e567ad6eb05a79c3ce98b92b39fe55a1ea3e2e824fd799e4cd061cbe09fc94966b0cf14570191819f7e56cde7d7f32341965be9db6df982ab2ae28ac234651c073f173bc87e9dcf3a4ab3eed84e9380992f97d618196e8d81c71742f0f12ed9e79431fd2bf7b14427650dbd3e8b92fb902518acb9f8f1b8b096cd1ef154797894062edf03ce5c544a14e207c0e31b64bf3a62206c29a7970ebd4a9b43e0a19e9d8a143635bd5926223389cdadcf00565375d33a3824c119daca6f80a10018d4456f3be5743d3e93f80a9da938b46e577542c9455d3a441c9b1b7beef342552d4b6474b5490fe2753e52ee59f82a5d559c0dc96d57b406a07efdbca0c2486a7d4a99193f673a1fcfbc27ae42be2b6f46094c7845cbd10791cd4684b5819325fde7a7798474942f1f98e38ee52152ab90a22f77e527c24a7196db8747711ad69b8e2c681ed544aa979fd826512e9465bff83114d1ceea9091be376e82b3ca59054ee617364d851d2968be81805f348bdb7e17cbf6fd8b49216f4f8c6f02927834152b6e0fa34adb9ec343ca80a635976185cec19360c607b270dffce401070e877e7ec9b282b48718f8fe36425859dad618d86cc6ed45c02386e10c3a03371487d84ce19940701a889bb4aec7d81e02d1c3476f93a3104b6284b28b22d05135174b77ba9ad14893845dfa303cdaa6de5aab9824af237fdbe4a85b7a50f2b009c72444df5000b249090209b5987ca67b8b827c90f56573e93108470e5073b6e1c542d459b1d595e27d82dec8b830cff56f6e88f2287ed953a26f61262cb110bdb274630d1d76718842379b6d29737e875cf58578e82398795f6488456ad0d60e0f7846abb618c231a453762d5d36e00c7b0bccf405743cb96ff250e1ec32b6924f67762bc4c08690d866e2afc2662a48929df77036a3a541fd99e8777d93860bb7dbc040d478f0a6fab42ce522ef38166b951641138c7b3f32e539c59c52994104ae8e0b8c6b498ef4a340e1f5dca7130cbfc365dfcbac8513f99314e91166befb5171f47394b6710b5cbf1e0a257d568300d169b1ede64dfad66ceb1700fe451768c639be186fcac7304469cd48d622907d128ea9cda620376fdf688d2301bae89739c641e7903538cfbb9632b94e46ff438240e7ebecb2d760209772f0f759750bdf20b67a2ef5e3f15611026a0a4342b0c7f9bf4aabce065f5d0ac19308a68af420df4985d10a1c0ea9eefd981a264d0fccd5d26ee7050870a2f53e80d4bf493b5ba39062eacd73b6ae550c100ee6bdb353112abbc833110cd135c7c32b40b6c4a45c6f9d15328c4951aaf3f21582d20d41be66fdca9ffdc32eca3852994104ae8e0b8c6b498ef4a340e1f5dca7130cbfc365dfcbac8513f99314e91166befb5171f47394b6710b5cbf1e0a257d568300d169b1ede64dfad66ceb1700fe451768c639be186fcac7304469cd48d622907d128ea9cda620376fdf688d2301bae89739c641e7903538cfbb9632b94e46ff438240e7ebecb2d760209772f0f759750bdf20b67a2ef5e3f15611026a0a4342b0c7f9bf4aabce065f5d0ac19308a68af420df4985d10a1c0ea9eefd981a264d0fccd5d26ee7050870a2f53e80d4bf493b5ba39062eacd73b6ae550c100ee6bdb353112abbc833110cd135c7c32b40b6c4a45c6f9d15328c4951aaf3f21582d20d41be66fdca9ffdc32eca3852260f666d094d1a6403be2dc098fb8f586eb4ad8166745ba69d9a8268d67ce9511fa42639b21ecaf1ed4e983217b62a6709fcf49a5422b064a6309c8e2c55766274d3dc3a846fc8924f1055fbf4f5ad5848b4b6ec07c76e6079ee428f532d63220e6a6375b0b5eaeeb6fc87a8cbfa390fbf15474932bbe08a8d6ecbb879cb51f31c6a57b7536d3ab06d30dd7f72ad0598766313fdb854fa4d6483d5e9ef49b2c0f00ae30c3fcb068f3c22d3e924b11160fdbb450ec1fb02cbb4c693e737392073167689f88f279fe4db56950295efce72959123efcb1456198a9c6c93e66192e2232afc626d6a35ba6b1df3fa8c40af4564e72f0dcdb5e37d36227e68df570c70be83abcfc28c26176ec0eba1216d153f1eea0fd1e45b2ca8abfed2f4b76c8053ade6a3353a4ad79ad7278029c558ae24987e818aa0506b9bed6d35c72d149cd26535a3a6a58badd7493abe4d6d73c1c6827bbfd729d60364f9505a38649e6012a3d338446f863ca23c98a0037b1cb92ef7481ea68ed51df93ec437c9ee6c6273651cbd5872431d09ad317c43720ec3539169bb13bb63596c0e1d58a7d655b3c0d1f176509d2b4a1f5bb4e0251c4f9c8b5b5753dd0df100ca5f33a68959df37d26535a3a6a58badd7493abe4d6d73c1c6827bbfd729d60364f9505a38649e6012a3d338446f863ca23c98a0037b1cb92ef7481ea68ed51df93ec437c9ee6c627356f5e163a373c41c1a90be284b17cccd1b89545e31b6a66da1283218e58baae187cf49cb450c5bff82c25681551260cfb8d7a9f70da0228117d0227e94615b926fa11ac1925fe3243fd8d8cab49be765ee80a766e81df9299274e0fbc9f004d27b994b30e9587e3706cded4782ec5d2e3595203a3cb93b24acface9cd67fd4c00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001365c78c5ec25aa773d902a14290caf5d0596404ea971360db20760eb3e0fb52b24f06cf7ca9fb5bf799fc69c9a8cfd5c3d606577ab2e523d766507e459ce69f81934a7a557126a505f055d96a0a3fd9ce159ca15e2b6316649a4030fade9ae5c1dd87e8e9d590796485e47c9c7f926d25d05b6e9d911fe6ea4beeb840600f1d0048a2ff4a1d7f46b2730b1a73bf0609acd3a8ec4125616b7e14f43ff9ac677b614a238515e3ec6b479c74ee09d689da812149a74127beacd024fbf78670323471f82555035413f876348c9a503d1b4cc75f1d9608be3bee50481cec2b463d75d037beabb22b94af8a8d5ac5e2cfc9840810836ce563fa95d7dbe60044a8a413b0ac6988fc6643a0fb694532ad7bf18f761a6a2ee38d2c2f463687b42fc06ff4b27810d1ac34a8de9bd2e23f732ade09e118f78b45ec5ef66c2844aac363a782c02ee9c13ebbf34fdcafb136e21c12d59a36713f9e03eb19ad9b09894cfa5c59c03ba1827ff4139dbfc3f24006bb3e8ba8ade3252f166ecd684717adb23e4f19a03f3cc3726e1536c5a872b419044209bdc299581c863035302a896acf643b2aa00786fff9157d41ee504fa74288cc7c63ad12161394ebeff88c1e3f91a8394992448d9e9d948d252d17657fb5bee54f12234b2e59b749293368c7636cb23aad021d47d281a2f5bf7ebcd1a4243bfc7b37714d2b745f3256dafad59e6fa18f0e30286554168aa564b04ab7ad54b5b7f102b006eb4ed864033b1403be530af89952fa4d13554dafdf6447275cf871a03429dfb2e9b2f0c66a9e51d6fff979fcc1d39c313705962abd10e7f9487f9d195f5b63362b9a3aa3f0bf6b8ca772ef6483702a8bad56c1637fe4f0e418ac011a1851a39f9118d97355d344f49530c4505c3250281719fd7653d2c7cd917a6498f4dec065cc5bffe734064b9827666614a2f0411526ee6ddb48185ea9eb6ca2dbba701dd367e50b3a923b7e32f45ab59206b1b13af6888b652d7ad6f0b8bb6ae99b753ab51fa6150d3cea4e985bcd8e1d2972e6ebaf2fb3f7cc69c8f95ec63764e073e605c79a6bb868499816c42fbd910e32668b11a0033430a06978337988534da6ad37ae2f57baa577c0a19403b48c26f178f1bb6d514fa7c64c873ba103d51ccf1a2e83c64f4fb81d47a2614f21f9eb714bdb9e4eb46978f3c1d0fd93aec4e40a18213e1744ac1a7d779e43f9db59ee60fd951149a506181ed2521f3389b93ea84605977eb477c7ecd757c561109234e11c3aca555e522a837bde2351ac5d0c7ca8177639fed47be9986f61d21afed6923b8cba25232f7822b5be6f19b49f7b1f28d49ac83992f9f5e543fd11a743f4f0704c9aaedcc4a4a091357d6f7c5ebac56f39451d4adbdf09d6a8879f61b1dd31a58ed1933196aa97b5150551c0da1a126af538bd4cccd5d0d38957b6d31bd3e17ac6dffb72b8d4783a0d922fff8958c12898900ad4eec350fcc55fe75f8b83e3db1f8c98a60789a5b2c66ffc9dbfff051d3ca7152c5f0a10e329199c5daff3037f45c26a595af1b775dada1918c412b47dd0842d63117093b23614206d351b81bb5f4528ea58ebd7c669462354c6217b48732229e102c6b3eeee93e853b369a21b7ec48a130bb335ae2708b808a4948ab8038b83add64bb622155f97fad87990b5e28a2194660a35f2e9f33153a19b5dddce1fdd126336098802731064370be0dd35b8683246f811d1b380096ab4255977654a9e19206784a1e183217e85ff920c7ad9279c3e98764db159da3af09081b541ff3cdcd79878cc946dccc2d34e40a9f98f5e386b98f9db5e99ab25f93e155440039388f2ec0f2dfddf7ecd897600744b8d8dac6b7d81a7d0aa25c24a1f407c13533624c5047a7902396ddc807012ab2ebff6e8239a75c3733aff723b496d17680b1fd76b54cd4f23c640f3ce9272facfa540315460a39a306eecbdb0eaed3a712fd8bbfaeb0a60d902e09637d342926133c69fe48bef3d51031b01bcc63f89e36b8fc66c8424aa3f4940f161c010f2764037287d0597ee65735781f13a1d3e4d2fd27a91e15e00dd3207a70db7f3c111b0aa6beb0d415aa7d71918b0257db59f6037f09f86e9fade33b01449cd20173d7648dcf828e1f1159e576cd8c8bc0cc34c5e53443caea2afb3730c3b3a13ab77d87e95523276d9a8b1c9f872b1bae8e33a46cd289f97836555c4cac5b9a39da7041fd6d2a1dc4489a930f191216dbddf77d18721e9ae2a0c0ef8436ee790175af5850c48b5312811458ce6b91ca32d6cfe591513b4e62e362a21d6f8f153e8a50a7af3b74aced7eeba731946e35ef6fc91677fbbdcd3649ce4ae29070ec074c6cb993d6b89f5c8565bc0819d8f2fe320f7bd6962887ee70ed2a932dcb6938b393466c294760a37a9a43f7e6270d2414898032b6d093aabc43c26cd23498247e1f9fe3319b1cce9afcac28813cbef6fa4d6b30eecaa7a834a1d4dfe4f90d1b81e0601cce64e331650353d77ec3412b4c4b90d85e2e73f0f88f18201b06f436769e1f6ff807900906ef5cca862fba8e56511fe210030f16acc74e5f78dd3f098961e09007f86ff6f910a33579d04593f047dc273cf60c8280699ea08722c20175af5850c48b5312811458ce6b91ca32d6cfe591513b4e62e362a21d6f8f153e8a50a7af3b74aced7eeba731946e35ef6fc91677fbbdcd3649ce4ae29070ec074c6cb993d6b89f5c8565bc0819d8f2fe320f7bd6962887ee70ed2a932dcb6938b393466c294760a37a9a43f7e6270d2414898032b6d093aabc43c26cd23498247e1f9fe3319b1cce9afcac28813cbef6fa4d6b30eecaa7a834a1d4dfe4f90d1b81e0601cce64e331650353d77ec3412b4c4b90d85e2e73f0f88f18201b06f436769e1f6ff807900906ef5cca862fba8e56511fe210030f16acc74e5f78dd3f098961e09007f86ff6f910a33579d04593f047dc273cf60c8280699ea08722c2077596ab5d4f14c7435038a9742be3e6b737f77900011bd2975eecabf38cafdd2a541dc9aede8050ad6648812a33cfccec8163996bbfab69265fbcf2ef361c4e3ccafc6418112053d1c539dc198ca765b3a8d0cc38d47492143067a7a046f720305d9e4e7bb0cfb3b7ab6f2a16664d9d00ffe6e15a8f452fe648d4b20ee2b07931badafdbd1585cbb98145ff82a67b2f4b94bd1185102716f6439295fc619aea082c04067244a0b5097d8b2535880d4cabeea64b093c8e2fbe2f9efa66a6c0b31c6ee9a4ea8a1de768f02ab03dcb07adc00e8df3875dda40e7b43f757aa22b9d04876f1607ec1f21a67e209f6284fe4c7ccd257f0cb85ebbb023cd3dfa983334267ceff7a04b06a8d83d580e8df1512faded984c128ca45819e749ca9567c1af040e9a8bcd91fc37df3499f205924265fc241caf3d6bbfeefcecac04c976ac69088a6954a2b0eb38bcafc7568bd41c195159aec6025222744eec5f8f4c73502425abe23651217faf5299b77ed5cc30333e56dba19fe08bf95918c03550c9e3b43bbf6cf08a9fcae4eaea8d7a724774b3d9ac69b2d9c461d286cb0d866c2c5906254e43e7d570affb9aee4854bf65e296570be77d4c4b019e25b1d03501e7333c088a6954a2b0eb38bcafc7568bd41c195159aec6025222744eec5f8f4c73502425abe23651217faf5299b77ed5cc30333e56dba19fe08bf95918c03550c9e3b4310fd23d32afa05224d6ff3cbc157be23a55630fd82183a3b2eeb340680c7a67270c074a19e0d608eef484c90c5a438d6a5dcac528ed52d17fbd08e48f2b9b44033fa136bdc30b50643704d5a158c18393f508a98745498a0b22cba9a7941a3c0ec31754be27918b72935054df458667c3b4568ff57c4ffaa9a1c031b2ac570a000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012b361203b6c88ed965a1e9ca25a491a063a4ffa7d70a2b25ab5fbb6bfa6382f235c88351452e25d6ece38c940f0f91b21bf719f781b6af2b9efaefe0923050742e412c8e5d5d346182e552eba7d750b5699becff24ac9987b7e2ea9c0c5270d41b9a93c702f355b18dacace4fb882661d433beea9a3c99d117c977f370f348c02412b8b9b3ce468b13e348fffc7ff5406c282e71d32f93a53c34b897274bf1dc0e031608ce4dc3f38320d96236577781cafa47daa0c6594749294a14d8132cd201f0943014fa296f1974bb55f0c5c09f8a5dbfe3d071bb5d7e505285bc44010713180cab478d94470db55e812d1b9285233898d1dd7f1f3de25190a5ff97798704ee5a4273bf7c3c53c0fee996792737c7cbbc07137549ce8cc56e8b3da06ae9024f677d7a3c8217988accf35e0887ffb85b1be6bdb1600db08f6b6a99ea1486395f6cea4489b9bb9ae52bf70e98fb86a57f507276182971a5c0956359360ce63f6c6769e946f256b71b923578c930734900559dfab96bab969d67acdef09d323beb07f902b820ede4c94a5312909394b8018f11f8b8591f803fd775bddb834523bced039d4955259e068a8e8e9bf608d7722533e3776b648f35af33f25b81a43bb00afbd8a2e7469bee8f055e55d1338157e81ff8fe7fded3cc07386b74c2010a80d621f6d63ef0fb9f65fa2410f1e4c31d71f55098642f0578359ce336a37d174d21f3c812f3743f3ec0bf89b53820b16d0019f077802a2fb9dd37b588ebac12352dd4f524609fb1093aef958ac3464070bd30e9acddd399b3407c01404d4715d82c213060c812cb31b5b589c5ce981d043bb1066f8dbca124e028f9094b32212890683e663987c92d2cba3a7b4dcc06ff09f25c76895ade4d84fa27a56368162b162067444abdf82a0d078473c364f2611b8b5b484a115b24fffb4ca346391530252c0dd58f3ad480808b30e4fd3022f381b86e2eb1caa4b97a9bc808392c335761944434dc407695b3bff43710be6a689b3d9b4336bc825cd83bc7548b98347f2bb09a5b9eb682aecd3c79891d968113c875ab2b035088e166122647ae7e0fa0251177315fbe203708a4eddd4fb8dc9bf733cb9471ec4753bdeac0ebfea234eb4a46d679ab0149ac2303b3d3e3a1f1852fa02f2f74800bdbcd2834d376fc0ef5a4cacefa93a294067ddb41bbed2a55225ae659f41b02f3a05bffd5b8a3780ac86ff871d0cdf3a6e8e1534f277212f50fcbe6726f3f8b55c5f214765f1bdc188b9b30ec0a5e0eaa1714ae355312e9455b03f20e52b48518779e39131f987b02a87660e6f845472a21bf927ce9eb9c1e730659222f2389515b26a670c68c720a25a244140848624ba58233c0d93231479441fdcac6d066570f0d015cad1075052735e8e28ddc32a775463484e080b750e3aacf3d65fc7edcc25c610fd1ad9d1cc1b13ed6519f8541e85b5effbccaa539e4f39d3d996d221861abb0709bcade054fb2bec102478858fbc73e88836f5440a37464023cfbe2d6bb7486c89f45cb10adc635486d136ebb6b9870237c8977fa4834155c6055c4bf95f94aa3261d023cf02dc67faa6ae089ad6cb06ca53cbafaece3242c322bc801743adcdc47fb4c00c96e23b98be91c6a93a2b3907892dc136b865e57988fe33977af4b747dc85b3a8d3737c1a13117a1a4776cd03cd8ea97f9c068f631225ecc9374913b05df6d1e5482251fc3f6a5d68a49c57bd1854eaff585d8df47f1d9121a55085fb0ab0a17645bfa5bf93b4a04229d193d29897c5ab16f94c309a8e0e2a3e9f4313a229e1456b2ab6a8abaad6d0fe410b2d79e8d26ad17963a7f27e878ce6510978ecb8a0aa1b0167c35a2215a63acb83110860ae0b03f5c81e9926eab6af89c7df6bb9b393bbf83f8d2bdc54a7b2ee3aebc0f5f2d52348bfeb0470e0a5589c0987b1358395eba04441ab26fb2decf60aba67ed26fb0b927a3faeb4e138fc8063d9add153e253e778cb9ff4e08f26deeda9837e72026ce9222c081786d5f5218ba5dd4f809e442b9b2e2f4248bb65426aa4e25c34abf20bd76ebc7557ed6c6c5a537fdab08ae113f9f85af01b66f4b88bb2c6a18a80483738ff6541369ad6f52e640d27a1ea140c608cf9d5640a274b060d5529c904c66814288691462f27d672cd81b2b3be95357ade555934d843bd702df78e792f8836ab23c62520101d411e2b8ba71203eda3145a4a6f6f36ea0dd02e1bdd34f77d24a2f8a7a2cff9eb072ebf5af2f0f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b9130b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d43383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d124019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b007dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea510f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b9130b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d43383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d124019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b007dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea5120e6a6375b0b5eaeeb6fc87a8cbfa390fbf15474932bbe08a8d6ecbb879cb51f274d3dc3a846fc8924f1055fbf4f5ad5848b4b6ec07c76e6079ee428f532d63222e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d570ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b16745b5d9e2068629c6da06d336b8c7be2eb1b5e5cbb7bf0f3471505361db6e20355318fbeb9546267d1f91a3b3aeb3c6b8d2038fde5d8e6452f982d32f801e120aa44ae8036c90e4adb768a40f346f55d29f398859575e48ebb1e27132ea3b93ee76432f734ab6194b820d904eabace6031ffb363742763636375f186c8d2f3188163288502819c09079b78ed45bf89f2306d58620b24af0eb015eadf5bd2041bc54654878e6a646bc1f8fd173f8bc473d96b6016316261019188f962c1f5c3020ac843606ae0225615f79f691b254b7ed95e72082b9863ebe401d3929cfc2b325070870b4bde3308fad4bfc1eff65078b1bbafb37dd85cc858b01bdd9029d13c3775e7e21a5079429e7383592d2e39601451340e2f7ce5de4f4d4581ac1d8d08b450a13aed8c83b4cf8ec0e066f511cccc6dd97fb7acd520417cdd13b1b495020ac843606ae0225615f79f691b254b7ed95e72082b9863ebe401d3929cfc2b325070870b4bde3308fad4bfc1eff65078b1bbafb37dd85cc858b01bdd9029d1127482c9b4815bb6bb68e678dd88650ad1f40e2fbec26dd5f6086dec509c6bf20fd5252d6c0946fc90fd8f343f19871fff59652da3eda531b3edea469962bd6a3510aeccb3b0d41a5cbfbf4055edbca9dd75e5877ca571c1f9e2471e06c7d50707028617c9b38b5df3e64ff4355aa739424fc96d40abf61ce88abe474c4d0d18000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011df6100841e4c45981deb94ba04cc531cd1ddd3e3fd0d81e36bddb4ce0f13bf31ab29e3d3d1d83eb85a0adee37327561774f53c5b80b2c4dd4617166060c8c0509b838f53772217db70211af5967df18bc04984d4cb65f43b231c88553f74a5d20d177e59c10ca9a48209c1416cc95b9c4f21b7d6c5fb1d12193a20527e9c1e6296800697b1b80e4d2805f42a976c46d33afaaac761fb40c0fd4087481db535a38e5205119abde37052eced7dcbc5920e50c544ecbb81c7b67270a27566b5e2820aa3829a5e87fd60708b951f74d6d694d70faeeeeacc846641419cbeacb759a35922b63fa5dbf1f1e16fb01a63d4c777bb7c6a4228d8f71d94064aa3e2b843e24f5836bc6096938c560454278d70cb4400980e883aaec29f755103f984cfb233ae937819d5fc526e9ada277bf13363fe1606f9ceddbd7c246740d8570444a4e13f2a474cc64d0842670065d60249e348f9daca7794090883a6f95fb904dfc6b1c8d8dd319d52b49bb42a071dcd4a70f8b37282798d3d504ff8a6c0558078f130c7459144ae1fa20828f9f7a46a7a1be1e816ae90169f5d40b73c0b565d128b60207d3a038713e6894ac189ce861f5580feeae085dea84cc3c4b22af8d58fb913d9814f773fea6e4766a7efcbcd81f8aee9ce2f14ec66288c3125786fe3f78862332555e2cf2bb06cdc786a4672c69a1ad62ce9d3a10f962b068e8324f6f0b6e0544269702f1da11e57e852f79ab0f5a5b1f4f0a87662d971e13a08ab2986eba0c7e3a0a9ba31f819f44ca2ec4f480b41e76001e05edfa78379152e092c00315243238aed1ddc8f3ae757ebef38740f2e96b9c85102d152a3dccfa9006a960b40c7e044c60980496d5c3b7280993cbc1ffe11fd974e4125f942b96f3d53b355d07661407b4dfa865343994adb88831cfc0f8bcbae8af15158291c760be3b23d60ce6363b55660a713891a3872ab0e439a05d8d07adcf35cb1e85f8070e1558942bb677810688364c9a7fd3f4e7a47b1979d037ef52413d891d73d0413dc1fc9c2cc82b6feb068fd212c4e5dcdf1c47555942d55c4af61b1dabd8237eca0a40b403dfcf1dfe3e965e2ca0818423f90fcf4af4e5690dccaa9c48c9ad0b8ebf017c2175a12bc91f3e8c15cacdb62e63783f053703626bb5d6ef6b4af021ccd27e4c284c28485b94f5555da407d50c2bca6ddf0388076055242ca949471dfe8999c4015db0d6e0141dfe706ee6cf24cbcbdae8bcbe6bc2c39dd0a02c4417713360c339c44bb43b67276d31bb6035b6db1af88b43bedc81d6c627a1b46fa4a531209a0d4ea350fafcc19a024a7e6662109d34eac2ebef9ce8cdeb07383d3a990cf1f01ddcb3a8767561d8bda4de7d7251e5f141c1409002ba5342f1379cd54001eed30497a8b88cf6eb7ae7ac51ebf13659b0d30144ac429c6449de9cf724593a3af2337f6c304e8bc704baf8a0c2a9f918b831f1afc88502745bd463c64c16637a321f27e9fc4e11b57ecf337d6e7fd3b682604537bca8efd8f790b8c80e384cd8cc25eafc0b739576db7f8e55e9b0fb73edf732eaafd56af332957e02deb182a3fe307330ae6c85228b7a36c0dc08bd288d98e89f9ba60450cb305217b63c42f85001ce421f04623148c2982659165bcd02cea41180852187d785194ad0db712bb828767c1115b977786e54490ff5f503322dda4f660723315801d4f710b7728c570548317d607974fed87161aac3b581e1e8e3796dbf530a30909b7d11f44e59b70efa89237dee0eb2e192baa1a7eeb902b5fb9896886a8d60a8e610534c4dd5650eaccf882f8577b60c2fc89c93c24502b04feb17fe302ada06e07fa460df67b3221442a3c2cd38f82e0293b632e40a3deec9a8029032502f836c42798ff5292034515fbde3af28e7075ae7c722afea6475dd822009a2ee79a75874e229537fbd2244f4cdfc67e0bd7bd354be4b14857883983f5782cc41be815e4ac445a3b0e8320548874a777e66ce5060784af49cc49db4eba87a7e6e2c679da063523e36cd3a260fe7e443a27d8c96f5b37e9249ea6faa0b343453c99585ec6ed8cfb008b60d26593904a3646f44d6b937fc7c6f5e03b4abdbc8df1fd44a535184e1f09f0e05055dbba90fdc786fe383af7f7f6f2581aeae4992c33bd28bf0979865d44564105a4ed9ca063972aea7cf76e73a2199d2514481faf92aa9608285113023d534041092a13c1176341252430183fb11ffe66abd93575a942ad0327e4c32dfb6060fab3b030e399a910420f77a6d3e1cbec6da7633b99b0a852ac771612a40b90f3054c4fcf1c6656efbdf088592c1e3415b6c22c84fb1ee966e65bf8bd5bf46f20e58270f472004d514a4d56422368fb9bffdb60696ba3b7e3cb805f8d3439d4a31a7d8f0b8dffb2aeb5b2a9bddc970466248e2f57292bd9d5c752af42cbc62b707b8c34c63a0182967382af4ab10cea09dadf524e856305b966aecef2052127138473cb39c5fe7d698c7d50b54ef315f8498a3d720f6c8c002c243fddfaded90269bd07df22078cf0418d6c7575409231465c9b889aef1c9f016a0aba19a5c3519642f820ddf8730fbe72938a8abf6dd0de0cf437f9e0751a91690415e65a3cc0fab3b030e399a910420f77a6d3e1cbec6da7633b99b0a852ac771612a40b90f3054c4fcf1c6656efbdf088592c1e3415b6c22c84fb1ee966e65bf8bd5bf46f20e58270f472004d514a4d56422368fb9bffdb60696ba3b7e3cb805f8d3439d4a31a7d8f0b8dffb2aeb5b2a9bddc970466248e2f57292bd9d5c752af42cbc62b707b8c34c63a0182967382af4ab10cea09dadf524e856305b966aecef2052127138473cb39c5fe7d698c7d50b54ef315f8498a3d720f6c8c002c243fddfaded90269bd07df22078cf0418d6c7575409231465c9b889aef1c9f016a0aba19a5c3519642f820ddf8730fbe72938a8abf6dd0de0cf437f9e0751a91690415e65a3cc2d3c5a2ae3b70c27632e5cd1962a6bcbb8dbe78a8ace801c75ea53f1b01aabd62dca7189c088c4564e4bb07077af0a2648cce45f2a7d44ecaab9bb6af669b18a11d68caa2862c78883eaee78094d9fb69b4c1aed67ae908a1a76c75ec489012536bc066bad4f192cbdf19e4a06169f22f64d1f342a06c9e1b7b20cb69f53d579265d7ba4fd1cfceedc564f5ab495bc5803613829245d8f789c633cc124ee5aee3d78393a560ee95de34d6346b9f7e4c766e878b6d18e35412df8910f5d2b13b015d22aa6efbbff06ee3f1b22f2b62816c4a23c9a3316269b5dd97cfa46ad15791cc7fe8075b63f4178d12d55d13f7777a2e7a9d04edcfd1237be53483b15591131e4d737dfe405069161e913c84dcf639965473cfd26c77a0d27dea1b763594f17f2a641e5919aef006f7e8a9e45600d93a2376a086b6e21d956206a1498a684097dbc99fd53006b36c828c1a6067bf2fa4e52af6b34500c788716a139f2f21c2ca98ddad3217793eab3f53637db1d568dd1ea9b86e6ef3fe2e54dfc2c620de100ed192af3e62c5018e6b4b66087f47dce1e968416cfe87508cc159c8b5c53071b79880a9228227cf3c2b145823a56b705732e64be15e368cfee99b86a427900097dbc99fd53006b36c828c1a6067bf2fa4e52af6b34500c788716a139f2f21c2ca98ddad3217793eab3f53637db1d568dd1ea9b86e6ef3fe2e54dfc2c620de130d8bd8024330a69ed4b9dc95c3c1653ab4724099c03dd213af469ec1a3503d825c3eb9f1916e75ee31cfe99ede632162a34519d8f90d5e6783e40c75ae17f0531b35fb1bea2759d0e5ebc1f176cf2d8d7e1ce53b2ccb94e49136e7f8412674108befe4cd1d3627881ad92e5a142f6b02356263b5c19cc3c0220a82a731d8a38000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010a17ce4de9a16d0fe71ebcce91723907510d15e9fe6474aa21277374dfc8b13210d5a9be7e14e0113d174b1bb11ee171313acab3c9224ed1c08d9df67421a5652bfaa295a93965dba6db581ed4d49813ec8c64f1c2949c1d514a95a9644f93bf28dee16d809d824035e336f343fe123a438738d82dacfe7db752940c3a5110de3972bfaae7d22290e41ba90d50394227c83affa2cb125f4d0b3bec9d45e323ee2b88d479e225289ea590b32ba124dfc9215b3985fce9d4747f08708389972b9539c19634cbe513f66be6b6bf175feedfa96edb6208c4b546a4cfa96d709eb4620800c432f0e742dd7921a6ea2de9c7fec6e4b7e3662b79dc21bb4e83b4db6164039d3eb3b5500bedadd94aada95bcf70ff94a96e1828fc80531cb6c73dbf9bf710eda4b63fd9f03e36af1150a7a12167aa3fed1ab3f5e42233c72629608f48a0339c6f9f7fb1babe2a9a1d53a7598f0c718b386e4123bb53f2d59c16e5506c6a0003418f07abd6b55b83e0f497eee399fdcc2c7540ca8a7c8e8ccc1323f79e52049b2738b90412fc3be621b5ad02df15caddd130a8f60dd91d9ef481f29edf2317273bab4abdb0e6000a93fe1819a802a44e355920e166359222fe1d3179dcfe09ecc2efaa41552f47b323463a1ec8ed5bf4a0287fc7e1d50cba323ea9f2be922c13d91ec709ac998bded4adfcc617ca20cd5983f2ee70dfde05f5afcede79482305c42c2f4279c98b6d5b6e1cde0715a4fcaf04b0a94e77998d9f05fc47754d3585af4fa94e7cbb1160d7d4aa12f560465d3bceacf55c7ed6a008c33dce89c10c89d5e3e2896fb509f2e5ef5b537902ff6b9c4de3078060caf728e197558d05184aee29d17bb614490e1c72b6e68743a434c7d139c120e7a82a98e6b232824013b9c107f8213d861023bd62f2ae6ca7858cf3d64bbf6bb85c99587b9d7c380a37e72b75fceebc5c9ab892c2d4d05d1d6632c49b6b646596100495169ebd64c62b6e3cc6832f9893c85d0445c8adea66af68b211537f490167aae395806534b538c55c41608fda4882c80d505f1660a180babfec87d042d5dbca30fa88266a1b386a3d4c8cf79445f096ac371469ea0324a3e170d85d23457141286aaffce00e3ac876de5c082e79b243604aad9557d1099ba2333818418abd08e647f9f0a1820d385db31dafd2896dda51f4c828e6e4727f4639ce4bb2410d15dda3c746c8e403e9af3bee4923f65864be11da44b4718316fd5fb89a37be8eb210a4cc10b12104821220b8a0b12addc10c05e7c88303031f1862ed2d876d1581a9d88d4ae2b413c58190cc292d867a86edbf5dfeca9a516b7ad7a8ca187177103af74f7d19e535576fe31bad7c51fd0c2060d4651dbf453b0e0d0ee22dee3ef2aaeee0e376de2588c5d51f338e89389240afed76df649387e8502aca23005faad46b649436f0169827bf3a37f1d85a0cbed3ada09ec9cd2a157349333ec75239a137b5d31f7224ac285dbab83c76e7a972c4ba6ba5becc347c42dbe07d6a48132024a8d47ea4215ef7acc71aeac4dbc09d8037541ad3e0a0e723d14f74797048b8ce621bf5f816c9e098c0c70f5b1632f0ce9735ed64ff13b58a44661899d6e700c7a9ac684f32815a6a32dc02028440ae32ccb09f2c3e340473fad13d2d0522d32dd24d9df205de7734a45c52698e554488c1aaf4024d8bcde424102185aec278cc4b2eebbe0d1a44f9c0de93088999a38b5ac597006c75e1317060d772ae424aa5d70fc3562d33ed71923292c80fdede46f514ba3b8bcfa970e12bc532704a0592e3632dba0894db7aa4aa1a5f0f0f602e835624601cb892d1bd0d7b034d91f7ca89147c701c8860201633f4d5d60ef8da186bddbba9ca5bb9d88f02fffa93ef889c633a17394fc1e6638df78e01ca478258695ff7e3876abf1b180050260dbdc7a01efaac3750c23133e83daac418a1c3733e85185e469a5c3f683d380e74c90b5cf33b16383fa452b9ffe74a9ac4f353f58ce4075da8653e493d5f68fbdf7325e6d491cd30ea6e9ee4c25895130376ebda5627afed22a5f87db2bd9f4d5c59cfde77cb342c05ed86003cded7bf6ffdea3afffbd5d83ca85f6755c3b5bb28bf9d974d35182d807b43d12b4ea9fd2b347e9f10399134a4c2423956db79a44c869914fb224e26537f29ec87b7e17d22183cea7b2c128543cccc0cd22209edf78850f1bae051255ead0276c7666df314d3df281c1d67c25442b5f624aecbf05f7e43b3414bdc30b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b913383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d0c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d4019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d12407dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea51382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b030b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b913383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d0c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d4019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d12407dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea51382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b0274d3dc3a846fc8924f1055fbf4f5ad5848b4b6ec07c76e6079ee428f532d63220e6a6375b0b5eaeeb6fc87a8cbfa390fbf15474932bbe08a8d6ecbb879cb51f0ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b22e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d570355318fbeb9546267d1f91a3b3aeb3c6b8d2038fde5d8e6452f982d32f801e116745b5d9e2068629c6da06d336b8c7be2eb1b5e5cbb7bf0f3471505361db6e23ee76432f734ab6194b820d904eabace6031ffb363742763636375f186c8d2f320aa44ae8036c90e4adb768a40f346f55d29f398859575e48ebb1e27132ea3b91bc54654878e6a646bc1f8fd173f8bc473d96b6016316261019188f962c1f5c3188163288502819c09079b78ed45bf89f2306d58620b24af0eb015eadf5bd204325070870b4bde3308fad4bfc1eff65078b1bbafb37dd85cc858b01bdd9029d1020ac843606ae0225615f79f691b254b7ed95e72082b9863ebe401d3929cfc2b08b450a13aed8c83b4cf8ec0e066f511cccc6dd97fb7acd520417cdd13b1b4953c3775e7e21a5079429e7383592d2e39601451340e2f7ce5de4f4d4581ac1d8d325070870b4bde3308fad4bfc1eff65078b1bbafb37dd85cc858b01bdd9029d1020ac843606ae0225615f79f691b254b7ed95e72082b9863ebe401d3929cfc2b0fd5252d6c0946fc90fd8f343f19871fff59652da3eda531b3edea469962bd6a127482c9b4815bb6bb68e678dd88650ad1f40e2fbec26dd5f6086dec509c6bf207028617c9b38b5df3e64ff4355aa739424fc96d40abf61ce88abe474c4d0d183510aeccb3b0d41a5cbfbf4055edbca9dd75e5877ca571c1f9e2471e06c7d507000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011ab29e3d3d1d83eb85a0adee37327561774f53c5b80b2c4dd4617166060c8c051df6100841e4c45981deb94ba04cc531cd1ddd3e3fd0d81e36bddb4ce0f13bf320d177e59c10ca9a48209c1416cc95b9c4f21b7d6c5fb1d12193a20527e9c1e609b838f53772217db70211af5967df18bc04984d4cb65f43b231c88553f74a5d38e5205119abde37052eced7dcbc5920e50c544ecbb81c7b67270a27566b5e28296800697b1b80e4d2805f42a976c46d33afaaac761fb40c0fd4087481db535a35922b63fa5dbf1f1e16fb01a63d4c777bb7c6a4228d8f71d94064aa3e2b843e20aa3829a5e87fd60708b951f74d6d694d70faeeeeacc846641419cbeacb759a3ae937819d5fc526e9ada277bf13363fe1606f9ceddbd7c246740d8570444a4e24f5836bc6096938c560454278d70cb4400980e883aaec29f755103f984cfb231c8d8dd319d52b49bb42a071dcd4a70f8b37282798d3d504ff8a6c0558078f1313f2a474cc64d0842670065d60249e348f9daca7794090883a6f95fb904dfc6b0207d3a038713e6894ac189ce861f5580feeae085dea84cc3c4b22af8d58fb910c7459144ae1fa20828f9f7a46a7a1be1e816ae90169f5d40b73c0b565d128b62332555e2cf2bb06cdc786a4672c69a1ad62ce9d3a10f962b068e8324f6f0b6e3d9814f773fea6e4766a7efcbcd81f8aee9ce2f14ec66288c3125786fe3f78860c7e3a0a9ba31f819f44ca2ec4f480b41e76001e05edfa78379152e092c003150544269702f1da11e57e852f79ab0f5a5b1f4f0a87662d971e13a08ab2986eba0c7e044c60980496d5c3b7280993cbc1ffe11fd974e4125f942b96f3d53b355d243238aed1ddc8f3ae757ebef38740f2e96b9c85102d152a3dccfa9006a960b40ce6363b55660a713891a3872ab0e439a05d8d07adcf35cb1e85f8070e15589407661407b4dfa865343994adb88831cfc0f8bcbae8af15158291c760be3b23d62cc82b6feb068fd212c4e5dcdf1c47555942d55c4af61b1dabd8237eca0a40b42bb677810688364c9a7fd3f4e7a47b1979d037ef52413d891d73d0413dc1fc9c2175a12bc91f3e8c15cacdb62e63783f053703626bb5d6ef6b4af021ccd27e4c03dfcf1dfe3e965e2ca0818423f90fcf4af4e5690dccaa9c48c9ad0b8ebf017c015db0d6e0141dfe706ee6cf24cbcbdae8bcbe6bc2c39dd0a02c4417713360c3284c28485b94f5555da407d50c2bca6ddf0388076055242ca949471dfe8999c40d4ea350fafcc19a024a7e6662109d34eac2ebef9ce8cdeb07383d3a990cf1f039c44bb43b67276d31bb6035b6db1af88b43bedc81d6c627a1b46fa4a531209a0497a8b88cf6eb7ae7ac51ebf13659b0d30144ac429c6449de9cf724593a3af21ddcb3a8767561d8bda4de7d7251e5f141c1409002ba5342f1379cd54001eed31f27e9fc4e11b57ecf337d6e7fd3b682604537bca8efd8f790b8c80e384cd8cc337f6c304e8bc704baf8a0c2a9f918b831f1afc88502745bd463c64c16637a32307330ae6c85228b7a36c0dc08bd288d98e89f9ba60450cb305217b63c42f85025eafc0b739576db7f8e55e9b0fb73edf732eaafd56af332957e02deb182a3fe28767c1115b977786e54490ff5f503322dda4f660723315801d4f710b7728c5701ce421f04623148c2982659165bcd02cea41180852187d785194ad0db712bb80efa89237dee0eb2e192baa1a7eeb902b5fb9896886a8d60a8e610534c4dd5650548317d607974fed87161aac3b581e1e8e3796dbf530a30909b7d11f44e59b7221442a3c2cd38f82e0293b632e40a3deec9a8029032502f836c42798ff529200eaccf882f8577b60c2fc89c93c24502b04feb17fe302ada06e07fa460df67b32244f4cdfc67e0bd7bd354be4b14857883983f5782cc41be815e4ac445a3b0e834515fbde3af28e7075ae7c722afea6475dd822009a2ee79a75874e229537fbd3a260fe7e443a27d8c96f5b37e9249ea6faa0b343453c99585ec6ed8cfb008b6320548874a777e66ce5060784af49cc49db4eba87a7e6e2c679da063523e36cd05055dbba90fdc786fe383af7f7f6f2581aeae4992c33bd28bf0979865d445640d26593904a3646f44d6b937fc7c6f5e03b4abdbc8df1fd44a535184e1f09f0e041092a13c1176341252430183fb11ffe66abd93575a942ad0327e4c32dfb606105a4ed9ca063972aea7cf76e73a2199d2514481faf92aa9608285113023d5343b9e758ae3cf4a360111446f6309d4e0b97c76a054c3cef3055e7cbfbf7586fc04618a751c30b5c9feeebb909cf62b1f68ca225bb4892a2893ceb42d408a79052a184bb6730c730e0556562cef3128631653ed31829f2650b623ac0abd4ba2e815e7b4498cf38cf1faa9a9d310ced79d0bf2abca86add2cae30984e242b45d1912797a903f3e3f461aafaee0abf5c9ef08cfd7037134d440c32ac96eb27a2e852d86856fc0c1c0b9e550511f540a36111976c1f8981824dad602677e4d85d17c1c5f64d13c373c5e856e6a635bccf1ab09c89a152cbb2c2836a8be3c7c62e89823a09b2ec3c8c3a17a91959ca4330e55187dfee6dc91ccf3628472b0839d17693b9e758ae3cf4a360111446f6309d4e0b97c76a054c3cef3055e7cbfbf7586fc04618a751c30b5c9feeebb909cf62b1f68ca225bb4892a2893ceb42d408a79052a184bb6730c730e0556562cef3128631653ed31829f2650b623ac0abd4ba2e815e7b4498cf38cf1faa9a9d310ced79d0bf2abca86add2cae30984e242b45d1912797a903f3e3f461aafaee0abf5c9ef08cfd7037134d440c32ac96eb27a2e852d86856fc0c1c0b9e550511f540a36111976c1f8981824dad602677e4d85d17c1c5f64d13c373c5e856e6a635bccf1ab09c89a152cbb2c2836a8be3c7c62e89823a09b2ec3c8c3a17a91959ca4330e55187dfee6dc91ccf3628472b0839d1769352254da5cad22b2bb31a255d43899f5be174c33d783688ffa31918b2d0e604e3319a2a83a6dd65b246c9f7d539b67b09c3b0afe9bcc31f641e4746e726732ac3ba6fdac0b77d30417b290295f5091155d781ed0d0a66a28e5a091ccf9031fab1883d6e1d3620a99d127d8cf8f9f75ddfae5984b4c8b4ceb80eeda5649fd19220a730c6daee74777213c7c88f0e5f2d69b5b8ac88a22e8a46d754cfabacfb59f00644e3ee2f7e56171cc2e3b4367e1eaf3a99c96272c224b663bbb7aae56469a1ecd839b141db536caa9da37468384354e61fa38741904ba2b121cbd621e06253b2ab426314fc7402ae8ccdd57f4198e0ad91c0ad7bf7a997f7bd11fe424e30030d91e068c82a0ff3039ada26713c349ada90b72fe4ea9cdc711f29ff7ef27a80d0f5af7ef395149bc44afeb6483b8ba597e66532ec7ae843d729ee5b4564426041217d5e10ae2bfeeaf7922ddec504623ce1649953138d125ec298d54a9434e0bc14794a944c6c62505b9539db5a4ba37d64cb0f01d780f9ea66abaa45c85ae0f36ad7997db0a492d1bcd80cc76d4f528fdc6f36a701f7e52883e81d9ee800a34628675f2301f0b0a6b87b31cc52271ad6c8eae2a4273556f871315439bb435041217d5e10ae2bfeeaf7922ddec504623ce1649953138d125ec298d54a9434e0bc14794a944c6c62505b9539db5a4ba37d64cb0f01d780f9ea66abaa45c85ae3737047dd2fe949e581e2c73cabdd7625337652d093ba62cac397e183cc0b3cb3eab818f21c9fefcc7ff88e077f3ed52b15ae61b9479e7da53778445ac6d749224910455af560f54dee8d1dcbc5443688cddda53d6f40e127f45cef46e4fe77e1c28dc63d751b11ed43d8e3bbaab560de472ff576ec391c8baef0af1e4043d1700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001226d68da6fbce6a65741d7e102bc0a70950b3da3f70a9447f3ad0048963b52c912482ef3a1e2ffd3d0616207722c7b13f0704335876fd580aad466f6a44330c10225e5891f5a1f6316081072f0a9b550ce2313b1b533a89b0d672c2ef21a2ecb3e35551b10f9b06592f017a55791d2702d923a6f0da573a3b9814eb0a7d00c601b390f408c2927a5074d5cedf4a40e824b4dec8072bc8ce4e2f648c453722f532b0035cfd6f4c9af564f864ac5894fe38d3d52b3e7509e5f24c800104a20c1ea057b65074ebfbc9a774e48931037e29d7af0a438d1646dc9a81b04812f671e6c3dba04e7c047877e93cedcfbcfa07829e959af6d3d9570142437dfe0b521f3301783735d2811889db913621b3ccf83217851f3dc522253c21a6f73e0f53467240d35a5c838bf26fcf2fa69a98307ea8f5832ac71d9946b80593b69aca29b419204b918af2541b36321b44e44b7ccf785ffa63a1abce74d015e87c4598846ccd4185b5c662c8045fb16f1909dd04c8282b2f4ae3b72b261adf49032781e0f794914b7f008193f453e38a1ffcbcad573ac4203863c7c6ca8842ee5b9572a3d511a106aa5a6318237c1f70d915eaa6abac008a5a8edeb76ebff0988d64aca36634d3733d94aea9eb63b770d360783edaf6746d4184b76b18bac5d282ba2d40d758a3bbe6a7f4ae8130ada352dd6a114270f07b3e8d7d4d4f29b616564f4e622a0900b4501be9b095fe9b2e0f504c20253306468777296da2939168919f8700fd74f18c64ae718faf0835f5580da5a53e9162fd62c9f8b2e1a5bd21c93058bc094ca02a1aa6bbb9156de10057ea13ae3d70312f40ff2fd4663f1f9d4ca6d7b0c4a470f239c871aa043b4524ad89b14d2cd79574a99b2d8dc9fd819dabc2e2885cfa9364d2518dcb0a89a19de29ca1e6c7c469cb690c5f54c237bacd9cd3d71af763d3524c1cbb54947345a1dcf59d01e2e401af093ae0d284722a31e6c6d599ce7ca1b9350c6bb06b28524fea0b5575315d7e24b55706b26fb031cea488f3fb8b6a303cea8c79c348af4f1208b5c3b36e17acde12d01e455535aa50e5ce2e32791e03311807846de72c3a6c87c02b9de0759443ab713f54006a91b33608a09b505c124e51fac31f8ed853f72b5b164ac899b7ab632d97fea84cd6e04d05ae2a7b40a06db5ce34e5868bb7aa612f76201fa0e99eaaac7deab944287fd43bea7cab03e2b0898d61b213eadcdf16d4075343ebd984ef43c6349faff6da058173001ab64089dec40384bc03dd24d05bb565a843bf0c6e5729e0ea933f912ce051b0d56eb3fb87df61acd1b2dd0a390fc4189832e345a5fcc074676120fee4827b4f824412bde73d50f64e32c7b872b9cc85dff1752c6c34388c05f261deea463f7589e900475305ab1fb756fffcfcead081e62eab8505d6b5e132017b41820991651ca4c1a181de716dd91da84143949ded0aabd0d06607d7b5e1cce742d91ea8e29d21518704adb89b018d486782682fe98acfbaa9da6cd2e1d68cffe1a521ed7e1fb663ce8166a6af5afcf4764578bade79397d2a6c46882002c85c4928cbb502d7c7c0c167060ec643c2d69c7e2d07468c980844e9a6f3ffad9f5d04f8ed6f378aea731dc6c182630ded41b8092c07b26b830de870fcb84d04b32e4f0ed5fb766863e3b865902425ef9608ecc47132d6cede8b7fa139b8f5c56d275d694b99785c80e2dfe0660abe82fdb3ef1c1605242173871322bbce0123d0c049449a5388082f82ea7cfe546c7a0247394bd16a19afbe0953e199825c65e59af8d557975ba5d390f9b606a793d250ce082461404f82cd314f10ef48084bbdc9ea87d08494e429e3e0eb41bffadf53f0c8c9f7b2b01e42092ac799cc2788a957f324ecd993b8575322c63d7ad481313430b32d383a2ebd84b1e6e88f65379251f49d66140747c8317da981f03bd8cf1da0e0ea547f42d8da5a72b6d175206d4809d4a2aac172f2021d7228085e7dc0d16d21d7ffe79c27cbf6bff3278da567b8eb9a644c9fc6d79017f0d2d46a845845f2dc7995a88880e01d9ce9071debcfdb11f02a467628198197149eb889dfb79262c590203ded4c706811c4b988a0e14ffb96fce515b04562c92b3013036a516b4fb24047063ef66c8139bb27fc6a6146911dce81a05b6450c447ca004e1fb2c15e1dc727d58da5aaf59251b20a06c844d9017580f54ef2c0c9ab464f2a8647f2b54e6c651a1ba21db190aaeb89590cb1ded111164639a423e46c73e7550160a5a0737d08b513beb5cff349ee09fb56142cae3e635fca8ab01b938c18aafe9f5a5f8c82f74aec414c547645d28ad43ba56624d06ca0357563761e4384a906e33c2241712b8962b9847e1a32a3deaa677e941afcb0def4b53089e1bc7b56f91cc3ddbe8ed4769d467da64f5d1cb6252a3afeb8121f210b4ae14e9751974d22702cab4735d9aeed9f8de4dcbe310615be92993ab4345ac789b2b168ae68b2dd8fd354b8ca26511260743f8cd18f8eb9d326f9985a9ba538766288f497f481ac30df58640d406aa41dc353e62734899d27236b527635c5e5b061770b680b7e53cf20a79bf2bf955be23ed083688c0b326a962780989a3a1a4fb3e46c73e7550160a5a0737d08b513beb5cff349ee09fb56142cae3e635fca8ab01b938c18aafe9f5a5f8c82f74aec414c547645d28ad43ba56624d06ca0357563761e4384a906e33c2241712b8962b9847e1a32a3deaa677e941afcb0def4b53089e1bc7b56f91cc3ddbe8ed4769d467da64f5d1cb6252a3afeb8121f210b4ae14e9751974d22702cab4735d9aeed9f8de4dcbe310615be92993ab4345ac789b2b168ae68b2dd8fd354b8ca26511260743f8cd18f8eb9d326f9985a9ba538766288f497f481ac30df58640d406aa41dc353e62734899d27236b527635c5e5b061770b680b7e53cf20a79bf2bf955be23ed083688c0b326a962780989a3a1a4fb22fcff711ca6bb32171257895548f0d889e96121e743e2acc701e0bb637c5d8c1709b395ecdd7145b01f3db15cfa8cf1b8327eec8beea5431732cb0848e630a22c9c5447ae1258463f3aab447a9f9906b7afbc722f2eeaa83dc7e2d2b05d15550da9914a1efea3e5e652d1bebf32fb2c4a8339fdf7e114fbb9026c3948d1e57b2f471ecd1901253cbe48eaa120449f9234db7f1c3147cc3c8e3fb3d6972ce32533a4ffe89edcd0f48aad7d03e65501a41b7d74f235434cbff622390271badfbd0b851e031aa982bf54cacf7a607f2848d70c572722c46bc9dae7622a49d99f51342607414525f0f244575c06b9051fe8d87579b36878d034c5195e9fabd1e44803c7fe1b372dad396937bed633bfae834ed80fe183ca0ee02804e6e1799e906b0135ab3b28af7ffa8a647da0600d1571c58671cfae1a084b8a512712f1d0d7b405a5ffd799ee791a1e19fa91d9a54e8af417e367cbc1eb54fac42ca68a228c090019ce44ee0e9fff8b885fcd5d566c7425cb3426a3d780b0f6316dec3ed1674f3066ac473546ec87a9b2fd323017762102f41463fc2724e22d909e4bec268d221b4cbb1ff423ead4698df08fe3d277e21f90e011857d3edcc8f7f9ab6e47e9e505a5ffd799ee791a1e19fa91d9a54e8af417e367cbc1eb54fac42ca68a228c090019ce44ee0e9fff8b885fcd5d566c7425cb3426a3d780b0f6316dec3ed1674f288be2360d28845380f3807149982cda50cb24832520b39611c73055697e2c051775be5f865df9de2a9796efc9661dcb0a38a608f05055ec9961ca28d6d1adcc31f659974de3bc152ffc1363499139fa7fbad5588cd0f2db3f50246c104129a530f765b3fd80b84dc4856ba2d006b1e1095b5045e5de3688570d91fe38f6730d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001192e9d8aa470b69c63dcd85d43198eb476cd4353e4526a14f0f0941bd3e348b135a2eecdea5a08c1046c9a40130f8e7ae963f6a8c759cfc15c5871dbaf1061fc04a83bb3accf4050cdc34f6a6ac84f2768e5afadf5daba8aa64efeef77010b20203dc0de49f6bf45e73b5c0d87556ba4ee19cce4e18ee893fcf78c8cd92a033e14c9d8213a15c517ade1c405bc74c19df222ce2b668356bd7d798f083f6838f73ab4ffe08a19851c3b4cd0b00c27a934d6e33bd84cac52af809c2453aac6e20a083a160fca31030cbdce33c40fa2fa9b50bbe5cc0daf98cefcd9af1a4e01e01533d6dda26cd7566db2516e48a162202786371ee872092cb513a8224afc10aede23c549455d396c2de4d686202aae068cfb696def99b750b6efaf87cfbeb2500a363c956fc1ed922ee4e3698b0e339af70821907122a5a6d8a558a91a15753a0c003e9968982043f30870a3475a4ebf6862675b807b5840d6d1e18d438dfe88300e6d09f18e87fecd25f1371d7ef4f3c78fa8d94bcf670f61241eb003f94fa8d824d3a7bd30d1cd89b363eab342390b12e5a3e1af53111142c1af748961e3ec191d60467dd3347d4511886a24bc932a75b5b343d68348f703318d379c1c8a4df83ce0bab6edc6865fe7fafc825bd4a3ed542c4645040539d698c460a4bd8664c6343988d5acc6f49d183dadd3cc57edcc4bfa1cd85030ac2071f0a5e0bac94e22287948f62f61184c3bef1ea89f4cf310787276c9ccd5ee7b90b885ff7c06b3243d1863193096b46a0a5d32882746dfa9d84d98a1476a9b4e09a9cbd4a812c7402dc903f94f55981747711121acc5a8f7bfa3c439a44265062aac1a931452acab2973e94cf348563dbcdd9dae06dbf1931156965b77345a006d67d809019a769b0ec40b598841c207420effb092664eb532024baaf823dd784607a3f2d0c234453ff5c50fff04b5b520aa226acb5b02f6ff6c2497b8d7de7b5c9d437879dc9eb53176422cb0ef2837a8102bf10e9db68bdadd872ccd0b26136511d8749f49cde90ea1a09d7b58ae0c44397ca9fc5fb804e20d67e55913c948fe4fe0138e3a325e013041f6c534852998c9c4d637e918ee6518cd171bf62811cdf4f21de001a43b3e01b88d9d10801cebf47d5a32c0385958c637c9ad993fe9db2d1d29afc5c5f31476a27dc62290acf80bb18f8f64191e1fe3cd0572a2cc1f65abba6dfb40935612acebac382d4cbe2819b1f09310b2673dcdf79ca070d6c282b4daa6d9e79d4c2da213602a92ff64919c58f3f7109a0a0930b6d4996837e6c001e4944d51bdde246b2f58a713f7e217837c508db7d1035fc38a2c5a103a8ec4cad26ed3e53841160ad7142c9d075b8d8f026165661c1dca0cf38761b4011778f7d399736598471dc25cdba86a89da7dceeb67983895bfc59e850a87c9fa6344ec23867115fc583611b9514e27345e1967d843e4ba8898b0e15d0ba5a65e15cbac5d6b25027c070f419f9d1c9ffe7e9c3d205eefdb542945d6456bfe02f0079d613219cdc2bfca37c1345995725f3fd49bb717082b997a125505a128c15dfd57eae030e13a1a1a3dff9f2f3144ad87ffe135f0a5772520d315375d68806a9f49e825d17b5a76b6126bb3469cf0f85ba2dbe485dd0c0046847e3d8f19dd4312e14924463d38f7162c19976bdfbdc8dd7f5e0c56ad228f2d339bf2c765f4df40886d70039fb59ab429ba47637a4f479448f577fb75d24c0732a1e71bd997dd56d5a540a4e3ff41c13bf77466aeb8a4c2beeea4d28437149fcd4a231e7f3d0ae82dd534f1d8b155bf322755456302f1dcaae49b989826a8eea4fd526ab2f1808a0249d13bc9b612772e8b965d6ad7a67e1db2b0d659875761553bc8ba4070cded9fa81e4b5847e18c32819dab094897d6a6fb6b2d49245c56686981387ab5a02e155d0f81dcec94ac124387f1b152f18f0ec6e2f02443c7812271ee6c4c741f218a1e435b115b529934bd2a609bc76c0765c8c43fa2df26cad770b5b9b22e9d7b4073e4f3d59e68fb2857dc3d1b2604b3592620bedb7bb552e503c985810179207ac654b876a865763888ca4dd85f8e466b9fa53db319ddf68d85f4d109b3c8bba3b6843646d11def09cd492ca7b48ee8ea50d2d5284c5b51919e687f7059b7fb7c0ab58c7c92340a28d77aa80aa4ea5bfda05e314919edfe2831e94c4628ceb356a61b145fde3c72154f38c9c99bdfde4c53c13079a7cbc7599964241267b7aa7a8011fdc317dddf365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575109a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b00fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d430f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22334bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575109a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b00fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d430f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22334bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde174fbaaf88be79d412b9672c9d372a7d2fa63a6f94bf935c8b22a38f99927d5421fb658f6072cee97b6dab3dcbac82009de512e271ab489886ab5369ed4941f102137e04dacf9afbc347f2bf066d88f624070fedb8de8410940ab528ab8fc49c0427665ed95b17a0576af512ebc575a225cca770747fc11a85e3405b33ad6bb02635f86d86e7f83f7cb3eac6b05058573f241e38075ba38ed35ba3f423be9bbb0d9ee0aee8af2693b7c6d2b811f5e292dcba481eee343b0632b3ec627a654d181c66447d4164dee3e2e7541c5518112db9d6980ed1716218966bcaaa50a3eab0372de69bc86ee4cb5a0c64f64cef1de32f914841f9310629d0eec2f98aa8fae03540b68c25f88ff0f5483000beac2202e9344265235d5a9ef25cfe04d226571a3d57416bb298fbb8b8a6f8955a5627f3e5733e2347fd5211b97218dc5a3c077924700f36587f61541470aeaaba8e582af9e7a75bc798eec5b61e584c3c2ddc98151c9ac8f98cbfa4ba0dea0c7231d8a9b105eb6c9da85a730b14ce4d9cda55f5269cc74b9c71eb3029fea6145c5b4c8cce994e9ebbaee1ae79ffd834baddbe1219dd3411c63219762d275faf488e085d5e94dea92321ef688c9e9d27df09526124700f36587f61541470aeaaba8e582af9e7a75bc798eec5b61e584c3c2ddc98151c9ac8f98cbfa4ba0dea0c7231d8a9b105eb6c9da85a730b14ce4d9cda55f5342f0b5472a17c01c6d806d03ccfd6d357e0d4554eeee519e3a817fa97394d553acfc35901a552582ed8d9519f2fb0790d4a39e21af232d1f8a16642eaf0c66820f8d84ca6b91c59f7a41134940b333c80043c39ba5c14304baca5ec9259295801dacf7d3d24d0d332878c6c0a3a8ef9bc78065c927af019645206cd8df4d3360000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000139876bbc4931fbd6addd6c0a78dab4aaa486421e6606dbb561c061836014d8b835f8158aa52f7d2ce4a03c6b5f52e1917f5dc0c650cfd6d8297117356e4d187e3480a7d3bcc2c3b50fa79c7552a0eff2cf6e55f74bef49f56ea0117ef32066b30e5682fdc13348a3d4e6967a7a3ce51a584008df9095b23fd9767b40824f3d261c510f1fbd8f9d8e4af572890ae3bc5d2a7f2fddbf00919186392d947e49f8c73793e1333e291fc40ad76356057b2222b1a038046d2c77f8b531ae00ab9a2fc63be14ea37a8d97507eeb1d774c18894176c0883be31c9cc663b9c4a87574e75c3ab59e83a74bf11f630617abe0fe3102c6fa4a037ac3b5c2571f09a014b3f8bd265ba8981b9e785b4e1b3320d8df7a113b5c236b39edcfbb14e103b0facc956722697dda0a49513d537d80d86bfa461b7e73d40e08d1339770cbb6a4ccbe00e71063f8811749f19936b687c44673882719fa4364522227a95cd7baad1a58eebc0ac3a2c8011d228a4ea0ebb278a873d3a3d9e010da2cff7cdf3331151757bef71e5efa653c42425efe8c37e0992c854943d4d533b8534d64229792de316beea10575d0e1cb7a3ce96ce38298b2379ad91400687ef0c8fec64043bf9f87072e933697165c37077acd10f6476b4990597a872942f371308036ae5673470b0ac7353188b458ba0045fd313cee5282a44de0281fdaa1c387e51013568fa5c96f2b0b2baa0df3f57ec469f4f3dc42b6802ecb6766b5852d0debd808e98f2aa2e992440bc3d4de73535bcca0633dff2e4be6603ae5eebaa27715bb172c5d0e15e93c8300d53887d6841a4513da72e197dd5a6f0021a46731ff9a3673d5822a0da5757f3f90db1e8497b34f1d36620fbaccda66d807cf776d350301747a559b479756f31f7a0cc27d12b651e7c0a5b0292d211b4dc7b6e6c0c0919f947350e80b8283962a464d9a1dd031d6567a32616c11d7a3bcd5ddb55954e185b2d63ea0c51238952523b351f23b1495fe963be32c764545008c0c39e2b7b09370dbf536640b8cb929f01a6996c5639cf3f021969fe42eb9994cdc242f4602b538694ca90550bb8b1729b70e3d7c5a836474632cb179d0f7386227b46ac8f166ce0ae4e7c29634d016cd6243002f6735741bf5a2e7bc320dec382539a70717bea51e378c08308dd8265c1a8da1f358b9b12e0eb9a7c1a64c0df5318e7df24338b7efbaeea35f42443352f2fcbb620e7f91832f755d63c33e0b119a233d208413d0f786e6cadb078103150329050119a300473cc6907708541f6cac9f1c45e1d412a8c93cff1155000c717db365c169efa9300d0f4429a56c0bf064924fc6d81340536c90f1332ec41f9fa3b245f67e784df30551366ebba33ade51e92ab5d7b5d1f5771ffed1b24c04d3679406d5f02cf30450acf7c4ec85be496a0ebd6413e1f83bdb3e2c1d115c23ccdfba924fb4a0a40d8106952f48cf7919759dc376422879b3a82748de5a502f13df1c123642933645f37e243de0b7d82419be2e998d9f61643679ddeb6e23079439dbd9feef594f71413c8cefd98b241258623f8148aec85735c772e2c6fe1c3840d83e6261fa80724677596bf3c335dcdea320e20430351033b6ea82930933dd22c0c0e3257569639bf3a95b38494681d76c752dffa3af6ddea20e5018892a1b9fde3055e26bd5f33f8b810d6c303485540c3659fcad69bd015ee5cceb9026aed6517fa9f4fca080c0be75525045c8cc113f3749928ca68b018fa0364ac12e1bf784c87630ac76543bb0777afa95d6fe3807828ff702d235d86c2e8742e30a35b7d1bae9284ec4887ed80cda743c223d1dd12695d68965097299ab0a57dd249f4391a9f570a174e3495bdb7818533a463f48d5a9a69044564b14fada9b9b14349e2d7eea7ba0cfe8224fc78bf5b8907b8743b5fbe870c9192b9aecba264028ed86e3685fa6963082661be2422853eac44be0403e74ab2aa75f413ecafba302c5f8ffb6eb3f61fbe03a4b8dc8877cf2849453bf51f5c4f096ba58343e7fdd08ee11d1253b10b3883d37ad2a75ed4ba48a352ebc7fa5566dd66a4a9cbe16081e4dbc6304f45f5f2388db2462b3dddcde05b5a4b94237695399ae08c28a5f252b75d523b5fb453bd1234e35e65816163f6ab4a819887ed66c8bf06659e91d321293fd45f3b680eabe5558c574ae62bf134374846804dbfaee25ade8b2234ec71ee8b21001cf5ffb72ce0d6bbe8d0c6dc0d50aa886e22c37f43128409ca4f7103ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f620591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f3ff498a355e3d57461a0513b1e63619c2ea7aef6ee9413fefc07bf897bba23b6000b675caa1c2a8b9e5faec4e19c9e63f39eea051ab8e51c9d2571638445dc4b3fc6fb30ad732b45e821962797f0e80c602c06e283b07f8c8771f9fb6aa2b28a003904cf528cd4ba17de69d8680f17f3c21a9219859c798f11bb36f1955d4d773ee2e7f3633fd85d88a7eec5f7b4883d57c1be7c6d3e995040851e35152d7cae011d180c9cc027a27758113a084b77c2ca84da7f9c0e5fcb58a812b7ead283533a6e87c0f03f39d3ab47a9ddd686a9322dae547dfd051a22dde4d35569e36f620591783f0fc0c62c54b85622297956cdf498447e0c47def8bb485d97961c909f376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec2ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b201b3b6514a5e576d3bf2166ce9c7de55051cce16420aa35ea7603aa0f35bf89c41aebe5602a8f012b625ab7294163b3f936535be6d1710961e568ba8e3095763832cc9fbaa6d221ba27e3b44f177f938d7cf171c02263a9cf8842e050c65a2734244521909e9b5acaa5db43f72f0a2bded449be25c8721acd65d44008e053c49930829fcdd5cb1e6f7a29844c0e178b8700403eb47f15271b1118dea6527d1a21116c00ea9c1bc19f9ce433c485676e245b517df10c7d8af760bb4090478102c13a8199c7a3ef2b4cc57459924fd31ff0909d51ace7c3bf6a7b2ec6871d20ad6d2c5d4b3e60675d3250e23f8668dfd240a7423c157d20d058309cdf5d913961fb3f8accd0a2fe98f110745ccc315197fed62328601bd6def78157fd64826d63ca0907c64532b347c431682ff5de12a6dabb7611c175de7b7450d0d6b0e16f72d52d553e5a63875d475ec00d3ca900a224fca973c33d072ac892e487e278d7155336442070166a53eb94968cc7743d12a67451f94c00acfb90c6bb2aa2918a1eab3f8accd0a2fe98f110745ccc315197fed62328601bd6def78157fd64826d63ca0907c64532b347c431682ff5de12a6dabb7611c175de7b7450d0d6b0e16f72d52c6e4191dc75e8ab002f05462dbfc0eba40394e9ed43f67564cefb876bef95ac3e3b37c44019ccd7cc0fb39c9ad81e8818287aee91d79a54b84b15b354c810ee2ab01aec2395d63a5d781415e35f2e61423cd3bd60ca6f2d939c3b19bacc76a2170b1fb53e675bcd3c859d132bc2707e869d3a08f68cf402453a94a0ac991bc30000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000101ca71c52dea46cf2c666886344219f271475f9e6f593eb1cf570b47c16d4e6c157719cbbf7e5f38b15e3a83e5fc3632d3ce346a20e5171b98c8e83bb292639915ae63890e000e8e6577fad01038e5761df2a563f0d23c855ecc997aaffdde3b0d33cd7b1242096d0ccde06619bfc70e27f5a479bc8b2752bb9bb654b9d24d190370a80c3c222d4f18efdffd0d969274880fdab00cf8e6409cc7f54d883908b430194465b888ad431da3a1dc152fb7447c38075c9554f78049b21543476063430acfe35ca40a91440f4ea106ad1bdf742520e80c0e9b91a26b503e8681b67e6d2a415858c6f98b74b30539271be8d5cb90835838fc4779ab30f126e6f28b4be304555e8e2cfd48a29c9562c02bb7c61560bdc7d370da1479e1c74deb5cc3c4ab01cabbd0d1aafd617cdd405e827d8e468a6e4b7ae8562b5c541ef529d72f0f0e1ff1fed1f10802ac4ea7978d4184b0bbec145bcba7b845fea0c44a143b6bb2463279715a91ecae523775a2a99ed395ea7f4137d1df83ee67db9f9e0ef644fe26303d45f48edd89fbfb6d05c34cd6d713b172b42dd875e772deed9cc9083d99192755c6e3cba2259b4cbcba2ba13e082ca7abc4fad41b9e3693d7f583912f0612072eeed61423e4be43fc5b2fc2d87da5eb09d76e5e7c33cc012aa0331071cbe927987facfb2d298d48b837ff5e337ea91ec4598a84f1b106533a730e8857aae6347e28f2be65e4981a4233877d54abdbc0c688a89f3afb91205d4323e444bcb534a9a3bfaf4cd10980d4e8f39a32d49ef7798ba9e087d1c2ef59813da40234c330e55047533a349285baf332c84ae8994285d9a385be9a44f53addc789ee7c1402687b60fea2ae523ac70dfb3013690929bc76fc796d9869ab62fb7c7ee6dc003b67cbd51ce99b2d8cd527a407aded38b61acf6ce9efd6d20f774859354909c1393cd167e2d82d3ce4c13c7c79e471745463cfab72f240749e2e9571e49e871b30e0c7e2f14539bfeb0f49dc96aae85a7c65259407d6b6690f610c9f11c060cf197e03f7854b1b6b9c3b63b8283d056999d3826061fac885533bdf0fad59a7bc04e6c52e579e9642aaf706c1370bd695436d8f368efd956b8515b044d2732e880cfffee4678268d5fee3d9d4d2dc39650b978fb4fea17f51a59001e685ce3df9201e2759f27a86cfa3f30a41b9b325f6e3f1689b5645f93ccc6d727094e315112df7a2242fa710b033c227eba18f1c04e99f7b89a6fcad7ea53c1680270647ca39d5d721068bc7e60deb531461c18498d93a3eb3ad77687cdb56bf050b3a8d8b13a89928832f3a3b48d2323cacba6e284703a65c92877671cd8d7f045c4ebe6b2b1a47b3199a50736c4efcef68db890f4fd9f023ac3f0a165d4d3704028061b40a4563699ef1ab78c59d65c2887059288b334151290d0da32ccf70ac0cbfe83a1cf3956a34f4f31296ca705233d0776d2c1a8698f6de20e0c4b38c57f2e25a0320f0a1d05e1af5225d57fb1a1424a3acd3c9c60dc4749dcfc17a06731e86649c12d7cade3e117fecc77603560e58218f9ec9603d114afdd3e590bc090ecd535028dc2a4d29e938ae83674a40dbfb2963cbd634376068ab79a94b5256d055d16f0aa63583f4585dd238a3ec9306bad2b3d2ee4ee049dfa45afff9e445f35074df33a743942ac98229cd3654f22c5471aaf81c6c5632d26176583717794e3a51012c9ffc8505559d07cb2989b05f217c59e840dc25d2df7640e517e6ebe3cd088e3b09383ff414d0d8d9bbfdabfd4065f4a4671d3d1e90ff7b1d1f33e40a8b74ef2492ded135c83dc5db6b6e48f72c5efec52e499b71d5eabe5c1277cd07ca229b1c3473de9eb22adddf706f7f45e125b9104277c535feaaad204e625591f4126011292a94c34687ac405f85d0509a358c59db5a1b0aa093d018bc4b3b01525502236b44641f1e2384f4718d72988301c67c15e334d6e89a44555ea092adc7561505bd174634d4cba283829021b22348ca341260b1204d6b21bb38d96892ee6f193f09d15ac795fcd9086f82b2f45afd28133712767a28d6ea48e6508fe14087c30351584dbdef6a15ff2ad480417ac7f8e15c0b66d6c81b18e295b9869a62dae91989eed44007d89d4a06e602a7889d6afaeff55d1bb32f2aba5f6d609b11d02f235c48c68db514f6ba1458c52c29c887101ab33368996e4418de20dde25391013de7973ca78b7d8ef734ed369eabe91292f0ff3c00d30f0f388e7288ba13c7a32042ad6d44b85d8c2e6cf1da18bbb0083196e509bf2b27e7fb20497e0a4cbfab1fbd5292bb47a273d1930e25e7444ff7f0afb3f24a21d1339e0ce76ef5b34056214d63225799d3bce820b9427baa7028b3654738a93dd550b5470d9c337fbe551eb29cdda8662c4317df46bd84558fd76ee151c3600f23cae3e62350cc8041ac2682efabb60122b088a39e4c6a5430cb3c6d32233b9b385c5808e233017eb7a7197d105449fedd4f775c61b395abcf34e5d966d8cdb1c0bf41244eb9fe81485a008eae5a8e05ad72ab32177e13a4f3f7c74e2fbc0e212e7aeca4d838077996403f7151a571fa528d54cde881ec5b0c085af8693ffb2bcaa0ac8858b4f88669c12042ad6d44b85d8c2e6cf1da18bbb0083196e509bf2b27e7fb20497e0a4cbfab1fbd5292bb47a273d1930e25e7444ff7f0afb3f24a21d1339e0ce76ef5b34056214d63225799d3bce820b9427baa7028b3654738a93dd550b5470d9c337fbe551eb29cdda8662c4317df46bd84558fd76ee151c3600f23cae3e62350cc8041ac2682efabb60122b088a39e4c6a5430cb3c6d32233b9b385c5808e233017eb7a7197d105449fedd4f775c61b395abcf34e5d966d8cdb1c0bf41244eb9fe81485a008eae5a8e05ad72ab32177e13a4f3f7c74e2fbc0e212e7aeca4d838077996403f7151a571fa528d54cde881ec5b0c085af8693ffb2bcaa0ac8858b4f88669c11dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb3ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba2e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b3333a6c18bf778e668d61325e69e25d3175cee5aaec8d1f3ab9c818b7019ff2af38225810aa0ced9279f11d7bb6bd5fdb922d34fcb89ee3ac44c8fa2bd5f655bb1f13ecf097788ed6fe452dff23942fdd3aebe7d16e25130c9d72d7314d671511286dc7c63ba70a6f3ad2c69ff9b9934f66601e89f4eb87d44b977e5f7d9dc8451c70686c6ccf34410eeff581bdaac669356723247562a74c0d699d751c4452860d81d8e6f70b78783550c923d3f6e1e2e57f77b631c25142f146fe065f2b794c225eb35e5e6699b01693ff2025239088d5968f6bb9195fd4230a1040425b06e116757cbde9eb9f5f59c6bb6da6ff3d7d9e8cd24ddc94847971d4facf87ee4a1c2336bff60430d8f218dc08b92f81d10147de057f17abe549424dcb46d17a65b20672a3fef6b96f4283b5bdf1bf29328392c5f009dc8244c23714beeeeb608f54225eb35e5e6699b01693ff2025239088d5968f6bb9195fd4230a1040425b06e116757cbde9eb9f5f59c6bb6da6ff3d7d9e8cd24ddc94847971d4facf87ee4a1c3fa55a619d63d535c420e506d77f602bd8fdc2fea70d92ec808b1d33d3d955d304b98db9612503e92443ca7cf18ce40d2933312886b225ff2f4405a7ebd2f86820b6503a8bc3e9c20db16cc2ef7b7e2fb237deb7411e8df9523508d8144d455c0f055c09dc496b55e205929afa3083161367fe1f7f333ba229d0cb0c82f55147000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013fe09b2a7b9cbb636c3e1e8036bbf71c286bed82502c6a779d39c46e3e4398cd28e487b81ef2aa59cb55cb93375ecf3499cc12964e11847917e10cfa34b479e72481258db8323dfef2959a14f20a698ea5be08659071e32286dc1dbf76d2d7a60df177d352543d1e324da0b7b4debcdf1e8ca8c2fc2cf8c6006a13d9d6c9e60805aa9065091ce82966ebafdf61f58bd8ed6511ba7aa75d81c10cc225f7a5099f1c36fbfb00f2bf5b1963d92c31c94bc55f0f720ed5e9cbfb5b4431e601a82c5e0aa7ce671053eaac33001ce7bd4c77f27defba86cc0840215dc44ffe1354912a18973e4aa85b9efedfc1102516ec70a20ad50af95f87a69530993b537c067de01a92ce4798baa574c7bfbfea7bde8024dbca94fb85a08bf6ae99f566788d052c009032154aecbbb19e8444e316492893f5a9e6f773ff01c5dc73895e95f0d20702ea221a55e8a1784f03d48e3ca79ff4b6fa4287db15ae1623a025c31a1eb35509f4abb59da884fff9d09609b14ca72a5ed0808b28c02ce5f304d41099f2a7b823636db5703ab1dcd748411083287be900a02762e8a354eebe282467005dd82b3952b411e8671574f9c096b7b5ffa147b5d82e146d0d57dd187822c5c5fbfed70f1cddecf1d23ee920ee629c00b2a8aa4cc1d80284792274d80502a6af0415c53f76f15c754d0d00e9acf1d39d79d7c344c6f5eb92fe2ea044cdbc4b45d419ad3175a9a970dcf98610ce032e7b7501452fcce482eaa6ae8969d623a8b4a15bb7281efe5ce357c84999a9f5f22925e0cdb10ee12e64e89a8ee051561dbc90d2d6032282ae9aa6f2e9164b5fb86258f993a747b5a78c0a12caf7695e913b90219802468ec9b7750a9e304508aeadf3d15101a84852018d1a89b13ed20211db92e937b11f30ceb1914247799f1649b3ae04cf50aae2222eb355139d9a25515cddcf2fb47ac77571664eda291aa642dd392ccb29f9cd60e20cae42415e11f381c479367703b72014e7ae6c3407a2ea73ddbc35ace7280bf425cb18f23b15162b3fab1bc7ced06989bce94fb771a15690467dff88a1c122afd6c0b5d4177764039bd415cc6823cf0202eed28c577f713b6a4b2d6ffa5a25ef82ea7f0f0380cc98406a29e1c6ca3f676f5853b447695a956c6b6136e9319d2ebc7a8250001f8c159dc714c83453c2c8af778ce5a8d649d54bee481a83717f0f1cb012e024d947c4bf7524d1fafce0af398adceb4505c1268e4d1353fde9ba983f475f71073a032914be3f4a858bf6d93babe8a3996c77519dfe1b929812c0993026c55022b328481eb620190a77ce32b6a3be2e67b2441ccf39512495edb76fe94e5ef543df96aa79b73aba9d477dd4ef8da37dbf1613ea2be99c1338f759ec5d555a9f10afe65a12553dfab46ec40f69d02008288ec1be314a8bd60712436772b681cb8324ae8b29ec14391d672710359c0b8db0526198bbb746440139ea742bba1777bef0c637e5f738002451223bb3342b32cbbcb2862ed80b5fa89a466eeb164acb65c76f1f17c3246e8dd73a882666e8e16f822ede3aec72b050869e533696cab035ed85c1f7982b5b560714bb188a6cc63021b97a1280b5c05574bfa49fbeacdc0c83c0b5d5050841399e3fd3c4bbdb2f1e11cf304f6f4d1bc6d0e4fde150080ff7f396a79b9c311c50506b15dfb172a7fa4a4fee7f014bf4b5dcd7e16e74770161919a7d305615afa325ba6e002e14b3498549ce998a04223f1d27bd1bcc5783bf95401e8f86096a43f355d82d7614ce0e6df2d7972fe083a836361f96dc16c3a7fdadb929952b13ecd2393dce0b1fb57aa0c82ca6b16a01525444c9b6a20fd858db9f5575260d46187b1d95d413da017309b61eb6854a68b8bc86affd35c69f5d3ba00965963de82ffc1ec28af40f5dbb578c2500f23856efd6d2077174ceb49faf17ac1cf904e33ecf51fdecf36a3673cae0569e9b5e8ac9ddf37a71d369022b97bd692cfc0a13b05400945176bdd81cdbee19f8ca9817b3331fa408b1b82b59ae68a7f1421cccd40ca515de17f60941b8499a2d000700aa6a8d79874fb3202486c8ef790c12c08f19a8e5ce10f8a71c512a34accb2ebfdd7486eacf31da855a3a28b82cd01974a46bf035a081ac401b7bc0d438c138ab0b42109f065a2b65b4ae322200471721d9b8ddf81f743bf530c3c92566f6d06b5c43197cbad2f84e05b9421d132332dc171ad2023254abb71daf1e483983d3743c39be9a15bd0cb17f40bb82bdc10070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae02347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f3dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc620b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de6371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a8708e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae02347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f3dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc620b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de6371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a8708e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001289653772664e5b0687671b6bf39d7359fb26e826dba5e1eb38a7e5233ce8de93ec6491753a6df9dd49388db1f1753ffdc69a266f0748b95abf20a8f65cc98142b1f7ac0060c8f935b9a328ffd8580f8af3732d9b1e774dae76956e5bf07120d155ff29f7d0992088c9b20b255a58866102fb254c5b20f82ff84bbfa157893462457c2be8825a49fce7d2fe697a07c834e1498a2ff2636a5e653e8b5efc346403ab7e0e2a2ad5b030ce3f960e10aa3dc9233db165cd5c5ba88137213ea653f0810fda5aba2d75ab166e0cca6c8c4ed479483bd7cd4f9db3ac2fdf7d7adb1c9500bf2d5e86ba4e45091aad8653583b89ae65d2931d7268adfe5cce3309bb9cccd083cbeec5e36de6f1a6470030880bdef9f26456b706a217813fb8bf4742020f4209b9c6de16feadea3cbdc9be6aa583c22765a600d194cd0186885816517bb6f3ce885e56bcbb6cefd35e6cc844861fb57e89766dc3b1a33201c82801f92f9d2337bf87b75540bbc0106c7074996ae1f14c1a5dbf89ef0941ef4cb729f7be01b09157e2d89205913d660f9152e494cb27b7a42b1292441c93f9c124aafcbf12c31ea65c4e9e714558acd2928da3d3675dfc9859551c535c081a81e79f163baf21513d7bf8fc2099863b97b5c05af50d4ca71eb13b6ccb5c815bd2bd83f4a0ff0293ff13332dbbb46d5613ec2484b2be2db4b22b31fce600d7d8f476f1d7526ec03ad1481b1a3c72c5736c382b3c04bcb2d1fb76fe935e37c3e130e70a50e6eca344b100f9ffff50223345ab458fcb028dd259864c2b9297ebcec62b5e8fe033f313a4b3154e4069adaecd8d03bf1b05e4e84b2c8fe6d28ff02f50c48bc01ea2c28753404c226483eaa05bd14aa4c69bbe15d937dbd2bfd61cf65df36f3b6f47634b1b6989ff53115569a27bcaf2df5a5ce24e1fd6a1de71ab52215d2492604b1202d2bc1ea579926677fd525d466ab4e90526da65e7975ae2458c0d59db6d06c104124bf579fa64ae96db0a0d5cf1eb4abfb3af7101b4ba1f2b8f9f85980a51119b0a870a9efa9b32e0ed0d073789fe0d4814ad6c0fbffa7dbb9ef4d4d0cd98d0e8ec97b0027960bbecd21346c6defe5f660b38dbe05ec072b7f145833b24d57151f0f65216996636648e72ccc7caf96813cb94c3a72e99654095c7c0210c1d03ac0c241ab7743d248a5d6c07fdb76b9e9fe2f62eca4a6e137c192078f1a9f0c3a60ca090e2aef847602f31970a055785c21fdddf5b8e4882af5d6baf7a2abe4243e807054c24a4e5c8590d5fb6c0ffe7ccd5129829c67636e5559755d69cdc434a11a37bf8651ea7467328346742b24cadd210bf96eb351dc21d7d55481960d0d8ef9df286fc3a7e42f5867cce8e2b201afc1f47eeaa928bf90c13a0608fdb915de826447ab5db14dc07da870987d8725078f6048ff976c83c95bd98fdf23a928695493d7ff52efb78cdb88959f994c0c0b74c13a8a00ef1974a07096a70bf42980d9b72f734e4ec0c9e0dbbf3ffac26f3bdca8db19d036caf234f2ac0f96882c89b461ec1f50ef1b247777597ae7273f9093e8c42f90f36a1a3b65b759e55f155acaa9bffb52c7acf71a95f8df3508239426b68deda949f5c777496e2b71702fb4bb451a4cef3393a7280e63deda913b28199025ac307be0695922dc3a83761f69768a3499de67274e501cc7bdb52254099a24420b67dc27a58158b87506ea1f69768a3499de67274e501cc7bdb52254099a24420b67dc27a58158b87506ea0f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5e2fb4bb451a4cef3393a7280e63deda913b28199025ac307be0695922dc3a83770f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5f0f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5f06f88f71dc0d453484c90c325d8bfcfbf95bdb026c9a3aec927fbda982cccc1906f88f71dc0d453484c90c325d8bfcfbf95bdb026c9a3aec927fbda982cccc193ed2ed146933bcce4e9ca0398f7b6a44a81334488416cfb84f4b02b170ea0dd42e87a8598380ac01e243c847f35a44d5c0f4b4dca076071896872ae74d24914800000000000000000000000000000000000000000000000000000000000000001e3c639e9dcd9b3575eaf05657391f66d9d63570bcd53e78ddc3531d295f14bc00000000000000000000000000000000000000000000000000000000000000002e1e44accb70a379e0aa7bbfa5861300e6c5a66e7b2e4f6ae1e8e0476d7f0b3b11e1bb53348f5c861f5584405a79ecff3b80f28d8e1ea9b0b74450a59280f4c62697575ff933316163546abe3b9e5f041b0875344c00a1c39e04ce9e237b38241968a8a006ccce9e9cab9541c461a0fc073e23c7bd4c5757fb28624edc84c7dd00f4b4dfddfff6e6f0a615b72a17db1420567f11601c3d7f4a90764fb16818b13f0b4b20220009190f59ea48d5e824ec01f019eaa930bb9c4e9cba9d4e97e75004c7885f55ffd282b33e6c93d2774764a1b07b56e08d337c74d24f8e77087b753b3877a0aa002d7d4cc1936c2d88b89b80961da528bfc59f245ae15e88f7848c2e1e44accb70a379e0aa7bbfa5861300e6c5a66e7b2e4f6ae1e8e0476d7f0b3b11e1bb53348f5c861f5584405a79ecff3b80f28d8e1ea9b0b74450a59280f4c62697575ff933316163546abe3b9e5f041b0875344c00a1c39e04ce9e237b38241968a8a006ccce9e9cab9541c461a0fc073e23c7bd4c5757fb28624edc84c7dd00f4b4dfddfff6e6f0a615b72a17db1420567f11601c3d7f4a90764fb16818b13f0b4b20220009190f59ea48d5e824ec01f019eaa930bb9c4e9cba9d4e97e75004c7885f55ffd282b33e6c93d2774764a1b07b56e08d337c74d24f8e77087b753b3877a0aa002d7d4cc1936c2d88b89b80961da528bfc59f245ae15e88f7848c286fce36c7c6dcd354f645d87fd9dc5a5263fc02d1038a65afc7a75c3bff73763c45ae4868a6aa3509ead71f15fb75699d7ae17f13dc248de26c8da6687adeda3756d5b8b269cb43b4e1645cd9b858f5a91fbb368bec1f0b8c14c58ce7233b7207b0d5bcc9ec3b3519e1c387b96fd2b5b394f2a19894a21b9af910b00e9f7083225672761d053a3b33c986f1cccebeed69b8b8e0a662584daee4a3ecf52a66cd080bb0154dd19857ab16716a59b9c322965f949922d7ea62c13144b31785d4e82797257afe2f111cdb0e3bbebe59b5f3dc92ce3bff292a8b804d9d9d0af15abb1782f3648f5f97fab6cffd97e671a8e081a4c4eb09e44539e7576d632a1620153301ada54f979d50c4a4e51f1080b742c1cf5bd8daa4f471b8e3db019aaa496f18516e57d087ff20e8f083a084ec8dc7c764bbc55bdb0e98701f57dd92f3e79f344023cdc6a1f7c6bb0dbdc296b5649aff30e50f19322488d79f8c47378e30ca1cb173dca6b5ffed68beb5a2b5be612609907a0ecb87a902de801bb536e9a8a320395c1085cf57e8f62855caa66dcab049097abeb5aa48c5f67df4f0dcdd511b3c097bfacd6d1a95dc3365593094b7e0f37d5dd766292b8db4f4c38388e5b0a6344023cdc6a1f7c6bb0dbdc296b5649aff30e50f19322488d79f8c47378e30ca1cb173dca6b5ffed68beb5a2b5be612609907a0ecb87a902de801bb536e9a8a32caf37acad6295155d4a9349d6e8209a59bf0f0aa3fc13c8845c48dfaf86abf9173e6940143b1fa8726a7ce1ab4558145e99f2cb41d624552cbdd0c06a77dc8906a5b1274f5db51109fd1be0553ec266a07122498bc0efe416f2a5c97139e13327aa1250dd16d23fa497eca753773857f5b9940a19fe91ce71102b89b574e303000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011d46046aad7f8eb0655671f76c864310e954b56e3ba19858417154143fba02ae2f0ca4454f36c4311e3c383c550b40d4e27ae08f1c301687e61129f695d764e737fd1c9954494c3abf458ece8faf50f26f0ff0d6acce417965b8e12adcc4f29b3dcaee70446cb0f7b8109fbeb215df4086da480e2a9ca98374f5c399ac6310e50932998b252ae5bccc6c0af9b5b3428073ba6ba2691fc44dfac8b701d933405e3dfe25ee7fa435722f96344e4ce128f7ea4b025a1ffd532f768d0da3621a76842a193a7d94c62620ab642445731300955c1b01455f1c7ba95b1ce8b01ecf678014b9b8e08a7f84bc887dd989e70fa5a4d063d64d335e669efe4815b76a9a3c8a2c51dc86de2ad5032dacfe540e34b5631a6f771bfdce90cb6dc320f9cc214e121e2ce9062d45aff052bf2da6bf696ee2609ef29c3f575656aae5da72817c68da18fa3753a719563812b2ccc172ca4732d2919747dcec1dc585f3f7a4abab74a63db31a72055a2380fcf77f83167636222de7ebe72b4d771c316945a8b5b607c1318039b8de15a8affdd17a778c30f0cf43e76d40f69d9521466c96d26880fe981b3677143f95a7b0826b9ebc39a2cbb8f0b542c2692286897956aa2d794ade872e29d1960ddfa6c4d4979266cb4ed02a7f64a814c611d3767fab9f7f92e416f41063c9d11e922cdd2f341e9ce1557531c20dddb552f9f620c7539ea965f7834f2375b16d7eddcffc1612e399d79bd91d539c154e071af0e39dd2c088ac822d873714b183f60cf436a096156193b821d77588f1f1007625a475ef2c0f7f1076d52e34dc18cf65f69f07ea623d505e1bfb3497bc28dda7639ab0931d94a3604dc227b3f7544dbb553a79b292ecb3b7aa93816080f8dbb308201f06bd239d3f89d834906a6727bb6e3c3d57f3f82e02357a7e9c006eb4a6f58155971b94de3c42f331de06a275f0b686dee724a63c5fa2d3f136224f1ecb1e9034168808e64494e739bf967ec78d3af8ee4b0d46762a6f5579c0a508e6c988b44dcc2ad128bd1862127c953e1ca108a4e7f498a3cd3f27af4728100002e4f521c5ea529a9cf662443a43c3a3b417cfe24893a0a2cc31591ba2321f9b330e85c927ed6aa6e96a81023c66101f65963993fb3c06e40dd3a0b2328422570c5b273af5cc953b30b08e3728a65165a3f1f648b7d7c77d3cd4f01afcf8cdf95a541b9baa5a12bcaea3dc8927c8bdfff29adc0dec8a404e520fcebb3bdcddd5fba65c474eb65d454627ae9007baf6b629153941ae93f77119ec560e84969252375a6554b7cda84894d74fdc321544ef30845766f4b2b149bba526363bb5f229677ba79e9d343fe0bd20cb681b646e2bda1605ea3fe26ae044272d1b33ae103c9a693b261007623c8f4ee2e33c1c8fd55193d4a7678d04b29fc8b0aff3eed19d0a07bbf33c6e5923931364c436fcf7d3dce833d557f4dd62114352a59b84adea1f435fcccca717740bee8aff3be89c19de868b328a904dc3a83ef7d1c73b96f29d9b384bb53295e395f1e0b9165bb454591c94aa57ee80c4d924411011d47939dd5b67d85258e1b3aba367f933b04500e3559febcc95ee6b89dfa7f2e2a078a28132810b27b9417efcda430f164924fc8084c582d401243721187dec38595765c674fc31a5dfe67ee350a4d10cb7a7824b57f6af559feb58ceca6a245b9d73f1982e0888acecf600e63c895b3251f6719e14efc5a8385dc084993dd4bfee64922df132c137dec03bad259ba204853d17421b05cb4317eba124dd04a64d656fa8e72c544d4326247556bbaa0d28388b9fa11ed37a9e349c452b50828f624e4a93dcf85bea3423222a08aaaea539fd428f0cdeddbf5b9b7b2b82f26c3c449385c720d44460f7110c2357d1d9de0425d10ae94579f9f4ecf945c3227badbe221e4b84b8d46408e3ed92a2b34a9a2e74a7c1db5545f7cc28118e99e72caec739c55509cfc47d5a4f1ccbe9d2d0d423e6e756eea62d8fa48de752930108e3d05915cecfae22c4d49b41f930d7874701f4e19b139aab11f8e1a3bf577c5323320d17d6f26189f6d0c046f26741e36508fb9c17d9efae483c28deb96689c9bee0ade65fcabe445f66faf72088e0691c3c7ed103eda108210c0127f35eda1e54aed3f8dccc754321174e3bb37396a8510087d48e8a9896b3d275828f549e0a74796b8836ff155e7488bc1d9350051c401a78d38c3a0153b56408efbd5037243a578af297ef9390b30303954ff9efe9191cc48e2a4e4646b4c815ae94927e28a90e83a57b3634b73e1e3e8f9ece560ed8233b71d5b1b9b94b37ea516b6d81d75713c2f380d31841dd7aeea14e31a9f1290fd6c6d3875f6187e86c68e6dc76cb4d0405096ffc6da1ff64de6c4007ae4a363029392c78a09e7817939719238934b31e418f8c0cdf571c344ec4acf851b5cb0f31e221a4dce7a78a1e0c824e51f880f1d29633e4d730e15f2aec532667730d30ce1dde5b23185875e1f37db1ae077f307402c82475c83a3a024499d9988cf40bf96aa838508645b2963e8b8799da8496d656076ee6fb4b42a96cb2c0053f4034069557c7af79ba4d69c1747866257b8b7042f49a65fdd05683c43a3ffac0c11cc48e2a4e4646b4c815ae94927e28a90e83a57b3634b73e1e3e8f9ece560ed8233b71d5b1b9b94b37ea516b6d81d75713c2f380d31841dd7aeea14e31a9f1290fd6c6d3875f6187e86c68e6dc76cb4d0405096ffc6da1ff64de6c4007ae4a363029392c78a09e7817939719238934b31e418f8c0cdf571c344ec4acf851b5cb0f31e221a4dce7a78a1e0c824e51f880f1d29633e4d730e15f2aec532667730d30ce1dde5b23185875e1f37db1ae077f307402c82475c83a3a024499d9988cf40bf96aa838508645b2963e8b8799da8496d656076ee6fb4b42a96cb2c0053f4034069557c7af79ba4d69c1747866257b8b7042f49a65fdd05683c43a3ffac0c12e26f67ab7b96cbd66298cf342505f2dedb559fa4be2273dd01899d6c3abb17105f957432b4d66c307dd8d7a9f77a65b49b53376dadd9b2290ea826fd6568a54328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff41daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f00344d74eb36915306adaf8e9269821e7f7d18fdbe18f81e064f72ed1f9b4231350512464b4176111b7ecf3178e1c6e6184b4c23c0e9cf8ce8968bfbfb15a651252145f4002eb00160145f0eec0955828f1a4069016d1ba01aeb4dc2c8b7d5d9318e6b93413a1ae9d9e25f87b4ff2113104ee04abf7d7bda6215e3899271cfa9256bedfdcbed166f3cf67200d7192e89a3a7176b008c5abbb6eb7fa995de2f2c1149a31f1b218ba1c8eef40229e00b9f2dbe6d8f3381345e94107f4c3810633a2dc8fe7fd0fe6c894514898011ecc3e0e47cfd46463f02f7600715ec21d283ef0c1b7842979820f82613e9aad8d2aba29edba2a09b2cede1d088e81884ac08451f5007c7ca5a4b3308d61c4b4dac42e0a4d37401fc648e9d9ebabb69f0e40e9e1c5c416a1560e72d45e42361df28bd22e4e2d0d417b41b1951d8c791d053710f2dc8fe7fd0fe6c894514898011ecc3e0e47cfd46463f02f7600715ec21d283ef0c1b7842979820f82613e9aad8d2aba29edba2a09b2cede1d088e81884ac08451df43507dea22f3a583eb27914338fd90d5e94b243086826d631eaa1fe63b6542a3a94618e653389c755739ca719ead12f269437235c37fb8f9d075b636c4b6c0332614ce7d08a2f70578ff2630152ffc6052c2897ef2f2e4c848f8f853d0a333a35c7d7bbaedff8d16914e3639770aeec01c8e6442b3f836f033069f743e00e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010da2fc30f5f1da78edfcd3338b6c83105390b140e43cfb43a5d1af52483e3b0629302da82482cb813c829229fc382f35abbacf7a85924e3c6390dfbe079dd7e53547343398ec0b810500359a12bd7785629707ea6eb263b608a4ef0a6caf11250adbef287e4208f7045556b18a42eb5417e4ab912396740c7049642de19f3532263e9e0b8bf9b9f1a757f687c9680b8f8af213433e00d7a89067a2c4db9e4de1348cd82ff10c1760f07e3dc9a80395ca6570142e4013029bbf3f8ce6aa810cb01e6f04b71c89f8e7826917560785cd88e4be148b5498614a6c1c2a687dd7e61911dd91a0123e06760481675cb9afeb8b64d372e4d45cf5f17bf2ea1a4084870a38ee07640f46c71664a859a87dcf81f6fa52ed0adb17d822a8458ea05005dedf15eb95ac73b1d85c6d7328443e8cf4762256306c64d20af914683f621d88283b1495c0a20c93fa6ba10f060d00da4454e81ea57201e8d588c5d9a25c2f4b7c763f9fa3d8bc1a9d07d6aa148456a6c489d4611a8e87f25990955318ad96dc775331d007ec2fd2f29200f10bfeedb8c7df886f3656c5852cd3ab58a4be694b017b1e7c7a36421b461f040d1faa3b6ba725924626c946bf940c171111c002c754b10740d19dfed2a4c63287768d738a3d4a1f116f8ca2d2a153ad0e23b219f504873e42c19c76463767af3a92f8c191df0b608f4fc25983a0d1b7927cdbf07edbe53844f67fe121c2924504f4fc87d4b85f0bbd0ba3ff13a50623537125170ffc23221a86d80123637f202e6d0c723ea132fc17cb74489bfe30e034de464f7401bd31b7c22c5b1fc4aa24101c7fadd49a3af1748f3d5bb4dc4a58f637a633eab78e3311452ace09b790e06cb0a9efa5d3288d4a47977cad80abccb2393846922c680259de44da58f7e9596ddb898ca45714d5544ef75917e520da2febc41d347a7422ef5938829f86d3e6920acc0afef66c46be344f1c905c09a5b4010849b1907c1db47217c00f55794941a86b11bc15b0c9f267757c45f3f6a1108b547e568b9e2078c2a720ff8f5f548975cb7af55990bd07fe04b9cebeaacb446c64303e45000d6bdaf9d70465bca58479379e7ccb7a82b2fd0336c3ee40ddc054485e3ef808042ea0f96cb858a8de2a7ea2f841c1976ed834db8f28fd4d12072bb3453ae4ae287dfcba1fa8736043ef524f4006628e464f89f4dfdfdc9abbd11670c380dcf83843a27a7be7c9abc4bff7fad92c4b1364a174b7b7ef70d973c982c21f3c710a3d0c359af13bfd9429290520a3b2b16bf5960a05d3532bb12f8e7e601e6036e323b4241f6a461db452977c31fbde52547d77103d014850d43e26fb27de96483217645fb8957970d792a5379fb1bcc85e15b5fda78d3c86d0649ac9abed7ff9c73b2214aa6ae258a5baca24ba8e2e1051e2b01d731b5ebdd9abcd0625c6ddeea02796019a40f8886702de808ca43e81ce321ee1ac90f1c873f3dfc4e09905221a3197dac8ef94b1127e3101b1ec0a795d91205f7761beb2bbc3bc49b8ba42a16311f305bf9aec636f5ff95b4b49901597de08615206713d5456fa2e0c63d9e9700df7af33054e4eeb9605e838bc8c88408d52ef5c96e7d896b56630265ca9ef8a045b7bc1c8cc4bdae9a6071e4963e3bea62eaba23e6e7302c3ccbbe1a29ccae1205d81c787cf89f7c8ed0283b41d51dc6cb84f63733062b0ed3cee609cc19b1833740d9c69b019c85bcb0c4eb097bc0608b14c587d64a29e7c3b441f5374eab93a5ff36f23dc582e7d56fe6e944a0736943c1e62d45dd7c9c33deff2d6b3705520a264de5ca066fbd42ecb90f6a8306519119b5080a9bd8230133317dda013d73dad4c91f34e2561c3f7dcc8addba06fc16a4963c6636e4c22c22739c245176e0eec0b901cb8800c0ccc9aea12458d0495da5f32d889199fddd93505aa9f2f5514e7a4e2f902daefd6fc630071cb5bc315773d745c91ae8c3809d5bc904a3a3834f318343d36b7701694fb1cc747fda5bb1d9172178119e09217e3a7d96ae2a31d75b9dc32be4dfdbf17b8c0d772c72aee4f8bcfd20d6f2eb6f2f2f4157512751f8abb29df275828c3ad25beeaf5728c8286c35f772cc635e4ae5c18f62cf93f0b02531973cd7007e6cc9f1c35fd94a0dad9840eba0bfb04bc6f8b9b7b1526ab166d4f7b846dd37cdd6de15d7cfbd74089ba6f679ce126c9e7fdc8ca30ca5ac70a45d3b1781f27cc9c58bf9cd66f92ddbf2039beed15f6a4f01559c8eb03ef7003ef5f8f7ebe290e27042e3444a34da933f7ab21213fb3c9a65b93152f15687d3c10a0708141d6f1d8fbd1cbbb5cb256ee4eeddae80d4551f2d19dd7d0ea978413acddcd79b6cd46c314e7055730844e03d657a5a63e82f03fc9df69eb6b0a712c532232864932b93ceb18faa8cf7bb21e704156630e762b596351831494f5902260550360920261cf68831ab3f29585f0e91d4035eb9595a5c42c24991734341d9faafc9f6dfd9e30977ce54c0d6a7a315d7bbbd3616385f36904c866e8cbcd2be1a910e2da0be90d0a8f8583bceb9d70006048fafff9b50a7a7adcfd740502141e56ef1d25f416f2f5707a7c431462b24638b30e4cff668eb2b610028bfaff03ef5f8f7ebe290e27042e3444a34da933f7ab21213fb3c9a65b93152f15687d3c10a0708141d6f1d8fbd1cbbb5cb256ee4eeddae80d4551f2d19dd7d0ea978413acddcd79b6cd46c314e7055730844e03d657a5a63e82f03fc9df69eb6b0a712c532232864932b93ceb18faa8cf7bb21e704156630e762b596351831494f5902260550360920261cf68831ab3f29585f0e91d4035eb9595a5c42c24991734341d9faafc9f6dfd9e30977ce54c0d6a7a315d7bbbd3616385f36904c866e8cbcd2be1a910e2da0be90d0a8f8583bceb9d70006048fafff9b50a7a7adcfd740502141e56ef1d25f416f2f5707a7c431462b24638b30e4cff668eb2b610028bfaff235b5f0d6a17565734c6c297adb20db96542cc678885f50ad8c48986405d7d6b047780b393c9324d25d3cf2c8399bf9cb8b67dbfc80f7d2ddb11c11af25663f71d8394ba2e4adcaeaef721748559b459a82e03b51fc3c9ede424d047bd7ed5f20c42ba95e57d85e81e62e43ece358248321ec92aa5f4b75b78640b9689961a6a3e7a7fdb477f2bb4f0f6ccead36e55ba20681c3394e062d6b2ed3399304d474705682e66e4d4e3e110c77a8c8a99157e458083d2f44607ed61b3bf227eb3af8810edae3c951891c5011736df837e492ef59109a2da0b80319adbfc445cc8503f1922e5d1fb020394dd2821c25180dc3e3321bdd10d90c028078e97f6955f6c6b39146f4fed7028268d1a97e4d9bfe1e58be6946724960155214c2d9c9df415893c2685010205e5af841b2ae776f910330df776943e8f859246497892d00292212a170946a91eae03366ce1fdbccffd7ddfa71046487966c1dc20b5aca27f01cc2a588b156ad5d323f5acee3df494c159aa7dcdca0aa3871c49e07bebd1558c2e3f210c38679dccfa1c421bf3ccf43ded371c61db6a50333e7571080c0223aca62f45c4b686b947cabbc94c94ae30be1b377152119b48c49245b7643b841381a12a170946a91eae03366ce1fdbccffd7ddfa71046487966c1dc20b5aca27f01cc2a588b156ad5d323f5acee3df494c159aa7dcdca0aa3871c49e07bebd1558c2e0e74ff4231a60da6a38b97c6afb96c86392f5ed96d1dedcb6bfc4388dbbc07b22c093a35741a01664e07cf304720d52e88eb1f433924061d5685c1e322cb5ea5279d393c460e06fd7cb241c5dc946aab84ba436eef470adc0a28ecd82cd3c09016c3ae7d8c0617a5769f6ca8784d4241810241b836d45ab533ccda6280b49c95000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012a16c339c0a37f6eedf93ac0c9e08da19fa1a5152ee9891ce9c7c5ada34373aa1213212681fce11f3157c2af9c953f72663bc0be9fa52575a1d941e93898ce4a23f1ea202623eec9e4ee0bd0785f8c23f8199b6c1e4aaffa332a9fcde3a2f50d36bcbf3b95916fb74c974db8baf264e19c691ed8064b5e89306bcac0d56a52383aca46b6a2a9a7c9cefb68c571b1274fcfe243b41622813c001cabcb5b62122a0e5a2e3157d615f9f2f9d8b3c1ccd25e19ccb9effb63db02be39bef3a89c6c971292c190012d28a1a9fde70d6a34ed5160c7e4ee90bb506ef67d5db89ea7966a3fb4b15035500f3fcafef0fda26639088a9887a3d300e27bdbd0eb34c595ec60009766f1f8ca67ce6f892ddc8753d79429d03efce1979ce21af1ac3757981b701e6497cecfaaff8c604e9a336e3da4e44feb65dddcc87f0d0534f1417d15446c221857c4f31cd42e1945b59986da30403507441b89971461e4e2293843e3807d0f68507cc0062fd44f4d2062e8057e8a1cf118216f3a1dbde6950d89965e84592687a113744caeffcee7d38c84e1cf793960669ab2e4aaff281867c7dd52149c3fdb697c550df2725374396b6cc663decb4b641d309da3caab28b77c43e2df3913760415c4553122ddd3f1cf251b3d9fba2f6b554357fdae25505cc9b12510263329bd0b0a7660f45c79d90d9fa236a79dc96216a75a1edf4fd9defda86750f636ceb590f85889d8bf477cff0e77b461bac38dd461fe9045f034e85353ae3433120b9b5dddd219865d323f62a44770b5c6e19d7c79a78326b880697398c5f89a1be160608436056b942a6ce87093cac1daf11abd74573574fbe57d26b2a3d1c50189eab428c0c764097b8991d49cf0d3e1fd5d5c63442a8a23bab08a26781a5c3852f518da4f19818c634f68012374d71cc2dffd796b7108581b03eea9685e7f152e189cf7781b3b34ceb827e6717a34aa4e6ad948310027b8e3050a376fe968313ff94f1827fe9589978cd79461288a6201e483d200bf4d8425f3234bb1020c25a927c380a780b33c716b01fe44faa0935f3468f7ec066383f7d712cec4508236d4d8002f369829b1af63b2078143bb6d1f3bccd3e4899f0c3bf5cacf9cc88f39053cf9a7dc50be7e570569a98a0210cd37cf2eb1f3cc747fe222f5ce0e7021306d228ea5533f4429bfb5d9ad388e4c8c332a2593284ffe7da2b79004b68f7833f7b089e2d0815c52878ddb8fd8b4f4c77d1cc6642e0ea11be106f3164007230f1205bdd7939178be3d114fd6054589f3eb50b185505d8170319d63ed644a9f2ae5c1d38eb70c33b86024dc49409ec0d0fbf4a7aa19be5eb5dbb012829af9fc0d9262b35065aed82dad66c14bd421f7bfde6e27645f2cbd2085bdb8a64e1b841b2511f53ec394660ad51489e26942072b2dde15c56d9c12fcdb65756ed047ed312f869d73b69e8c794952810bd21ebb93a59d8e7a2755a0092f40c8c256d902356b2255591ff8323cc4d12dcb24d33b7c27923fe13dc485e6c8804ab9d160c20b135581e0b85e827c7865e8aa27e0c6177b73a6e4d176811f9e3b3cb0c427a11620202fdb6bd45d216327af24b5257e49d44e0559c3a3823140c772037a3df139dd1afb91aab1aed7f8eb5f73939d6fa26b2595aaacfad1eef2d4247d542e7524fd66ec884ab7f6bd6d8f7f0fc3fabb21e019c453d3f02bcd6079fd02a59f7730bcac727771fdd5f19bf47e0313edeb9c7b03cf2e737a6c11058d4690faffa219618fcc03bc1bc66dec8c336501c7a611137bed899e5ab4ffaa560f5bf477e13846fbc614f8e861194d22b36ffb7aa436287ae9ca2a95b3d547b5272d21a8db2461a82e77ba697ef4f9a1da7bcf3b4ac16f624acfda29bdea941bf69e992157227c1ce0ae88bcd2f46fd147cb5539deb4a1149f503142c76228dd695aece750043be33b5046697c716f98b83ef78d2d00eef734a73235e5d8f4d3e2ff649251252072fd39cdbc7bed96b220b17a034b0059cba09c4ca9532359bf15f07ad2921d54980725de16076481b91d0ab0850ea2f75211311361105f6419f31b83ac992bea6721b44e3e6cbe35b2910448d60ea6190f1df1467ee62e965e9f79e08b4b2c471dfad112070bc50994f1ca233fd57c4df40d2d7e8abda3c855506917c22627eef360152094664a2079324aace4eb280ac020e18a3b2a49cd96a25b353a7436c1b10ad3cf7b1dc80179a6d1421f88474b371816c23ec8d9fdf649c24d8aeb3f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc6202347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de60b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b08e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a873f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc6202347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de60b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b08e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a87000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000b0000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013ec6491753a6df9dd49388db1f1753ffdc69a266f0748b95abf20a8f65cc9814289653772664e5b0687671b6bf39d7359fb26e826dba5e1eb38a7e5233ce8de9155ff29f7d0992088c9b20b255a58866102fb254c5b20f82ff84bbfa157893462b1f7ac0060c8f935b9a328ffd8580f8af3732d9b1e774dae76956e5bf07120d3ab7e0e2a2ad5b030ce3f960e10aa3dc9233db165cd5c5ba88137213ea653f082457c2be8825a49fce7d2fe697a07c834e1498a2ff2636a5e653e8b5efc346400bf2d5e86ba4e45091aad8653583b89ae65d2931d7268adfe5cce3309bb9cccd10fda5aba2d75ab166e0cca6c8c4ed479483bd7cd4f9db3ac2fdf7d7adb1c950209b9c6de16feadea3cbdc9be6aa583c22765a600d194cd0186885816517bb6f083cbeec5e36de6f1a6470030880bdef9f26456b706a217813fb8bf4742020f4337bf87b75540bbc0106c7074996ae1f14c1a5dbf89ef0941ef4cb729f7be01b3ce885e56bcbb6cefd35e6cc844861fb57e89766dc3b1a33201c82801f92f9d231ea65c4e9e714558acd2928da3d3675dfc9859551c535c081a81e79f163baf209157e2d89205913d660f9152e494cb27b7a42b1292441c93f9c124aafcbf12c293ff13332dbbb46d5613ec2484b2be2db4b22b31fce600d7d8f476f1d7526ec1513d7bf8fc2099863b97b5c05af50d4ca71eb13b6ccb5c815bd2bd83f4a0ff0344b100f9ffff50223345ab458fcb028dd259864c2b9297ebcec62b5e8fe033f03ad1481b1a3c72c5736c382b3c04bcb2d1fb76fe935e37c3e130e70a50e6eca28753404c226483eaa05bd14aa4c69bbe15d937dbd2bfd61cf65df36f3b6f476313a4b3154e4069adaecd8d03bf1b05e4e84b2c8fe6d28ff02f50c48bc01ea2c202d2bc1ea579926677fd525d466ab4e90526da65e7975ae2458c0d59db6d06c34b1b6989ff53115569a27bcaf2df5a5ce24e1fd6a1de71ab52215d2492604b119b0a870a9efa9b32e0ed0d073789fe0d4814ad6c0fbffa7dbb9ef4d4d0cd98d104124bf579fa64ae96db0a0d5cf1eb4abfb3af7101b4ba1f2b8f9f85980a511151f0f65216996636648e72ccc7caf96813cb94c3a72e99654095c7c0210c1d00e8ec97b0027960bbecd21346c6defe5f660b38dbe05ec072b7f145833b24d573a60ca090e2aef847602f31970a055785c21fdddf5b8e4882af5d6baf7a2abe43ac0c241ab7743d248a5d6c07fdb76b9e9fe2f62eca4a6e137c192078f1a9f0c34a11a37bf8651ea7467328346742b24cadd210bf96eb351dc21d7d55481960d243e807054c24a4e5c8590d5fb6c0ffe7ccd5129829c67636e5559755d69cdc415de826447ab5db14dc07da870987d8725078f6048ff976c83c95bd98fdf23a90d8ef9df286fc3a7e42f5867cce8e2b201afc1f47eeaa928bf90c13a0608fdb92980d9b72f734e4ec0c9e0dbbf3ffac26f3bdca8db19d036caf234f2ac0f968828695493d7ff52efb78cdb88959f994c0c0b74c13a8a00ef1974a07096a70bf4155acaa9bffb52c7acf71a95f8df3508239426b68deda949f5c777496e2b71702c89b461ec1f50ef1b247777597ae7273f9093e8c42f90f36a1a3b65b759e55f1f69768a3499de67274e501cc7bdb52254099a24420b67dc27a58158b87506ea2fb4bb451a4cef3393a7280e63deda913b28199025ac307be0695922dc3a83760f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5e1f69768a3499de67274e501cc7bdb52254099a24420b67dc27a58158b87506ea0f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5f2fb4bb451a4cef3393a7280e63deda913b28199025ac307be0695922dc3a837706f88f71dc0d453484c90c325d8bfcfbf95bdb026c9a3aec927fbda982cccc190f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5f3ed2ed146933bcce4e9ca0398f7b6a44a81334488416cfb84f4b02b170ea0dd406f88f71dc0d453484c90c325d8bfcfbf95bdb026c9a3aec927fbda982cccc1900000000000000000000000000000000000000000000000000000000000000002e87a8598380ac01e243c847f35a44d5c0f4b4dca076071896872ae74d24914800000000000000000000000000000000000000000000000000000000000000001e3c639e9dcd9b3575eaf05657391f66d9d63570bcd53e78ddc3531d295f14bc34016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe00bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f861250210407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c3bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a51423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d33524b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200634016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe00bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f861250210407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c3bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a51423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d33524b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f120063a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f21621663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac52260f666d094d1a6403be2dc098fb8f586eb4ad8166745ba69d9a8268d67ce9511fa42639b21ecaf1ed4e983217b62a6709fcf49a5422b064a6309c8e2c5576620de236c8d5a6a0e502a2e3ffe172e2714300642e4b9f8986569c7538a0b81fa224688bf433df1ae089e293b28e241cab5fcd9cd6a27caada7343d9684dde77a0d97ba61a8a2316eb79f39a161619e8bcb7a52eef1358e006dba79ce51baa33c33ee9d35863311447a1f0d41296828ef14e845415c2e1024c8b39e27624bf31311bd6a4c417911b42b7f4e8354b2a758409284328da8c61546bbaa13ac0ab63910c697823a4c4bcf76cef00e67a7c4573c7f2b17dabd0fdfacb93a9679d4e8a23c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db36bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b923725bf4adbbbe02d33ba140065e3e1cdc66f45df62ec7fad6156e418389100c17a1dd82353c650035565c7bc00d9e983b457e8c8e8400815db42975e7191dd73c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db36bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b91f9a4131e99449698ce8ce1eaa5edf794bef39d7950170d87650c3653eec76d516e08890aa848dc2cf6ebff393973a719895979a2e346a08da82cd7f791497512de546b81283d93d323202c8cc923733cabbcbd1b161d0388443c11d1282ebd00bba2f36522d59ab82ede2c4985d52a8c1af4cb45768d4d34000a3c4b4678bc90000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000110f91417ebc5fa0a82c0fc211c1ffd54bfedcb8a1eacc12001db3d3dfcf6410319855653a92b5b37bc84430dedfee92e5fa2a1627ef010cc358ffc7ca795f8ff132f24b896d0c5362ec7896ef900a2aba3d25adf53f77108f34a222c4498678236fcd7247b582bd4755c005b613b80ca2f8820cddcb43e242679713b9c095089111e3f7e1b77c40285c0545eb39b341c4a7f097d9bd852d41d534ba5324d57cc14299ad45294b6b41dddc527a1ae46013a4622388f6d3f7fbd08cb5da0b408e81b55c2439894e8561eecc4e7337a6c428414211cb9e391ff0d1e54a1dc849274066debc195b53304b7c8f3785ea52c698fab1c33036da1aadb1d57d46a57fa0b0e803f15245b8ee7e24b7a7c9b475907f23b775017e95e80844dc3591d4578e51382fb675176bbf903e404bdded09f4a79609c13f8dd0adc9bf398380d0643c01e1a563dba60b85dba030b80ae9ae90dfed627a0c3282e96dcc4f6f5795a0aea18f961d2961eace213ddef4c9fff847634c6aed28ea2b36c47e11aa8476227f606547e6644a457d54b633df37048afd98c0a7b53fe4373e2fe2654b7e11f7589303db71302220fdc36cb981571a7a39988356de91cbd34414c176a4cbfbd0b1620e9dfe79ff700f343168ec6a16ab1dfcbd35a3498546dbd3834c9a0c16f31870f4a5c550e927e552d2bdfb5ad5b579ec4d13e605ba0e8be836ec282edc0bc8c2d374dc211ef11c761695eab8bc0a9a0aab656a0122a5f78e1d299ba93419f1a22b5bf8602797964cfe223f7f39caed228cef4a518f6375ea58a12923cea8cd12e35b50d9687b4c7d820a14f2e63abb3597f2ad46eeef9d20d6372707e81089a0d1a3a23a33ac356a53f60b4d8d4635586b2e25f81d3fe22d36ae75e7cf442be2176aab83a16b5378cbd7456d7163bdaf3976424bdb7563de4371f703e5b6e3c184020a4fb3d8a714a4f626e3ea5bb356c6ef4c6747cb8aedb354a201f92f6e633935e3d12203a4564b3f7bd3e5188139552f235daee4ea1fdf45a819153416505a54c3ca90caaf0882824ecae0496d22fa11c473eb0fa671156a434544925590ce82eabb395d8486c049a6304082636414c908c415de6ca846f31620d3fe2590b88d5843256b8f16a31985616cb634b4a614bdb510b92f6e2c2d2268695cf211a435475fb6ab1e7162ed84df5693d343dec523b4069c64b9c89cd0df7fdfa6103aa258c4f5cf8008e3f972b21e33b538622309766d0a7dd0cef851a07dd74422bac1db6f1236abc4a0927a957c66dee1dec17d2890ebbec9617ce5b278162030bd0cc0e4bf690b74cccc9f4da3b379896be27c571590c67e76971b5caed42ba3cadec78445ae88b4e7beec24095bbdae8981bebc7a1b4ea4fbefe3effe7f40f03d3d397302499301ec0ff0a2f2a6171831491c3c698372840da2d0655b68ccf2f17598b444349e9adba8bb649ef188d910c0e3d0b79989f0f8604fcff06ffee02c35d2cc186cb97ee70cbab620a055322aae8a6337a853544e15a280f4a93972a0cf327b065fdc58065610095ec4a60fd601c623a664c5cbc801b45440faaac3220e40b6e3b8bd5b56e9d049c833f29339266b485253e9871760ec1a5c9b1522c4e2bbf32761299b938962a6b3e204de7e452718bd691428f31b78e05d97c3a201a60c7a9c8790d2e4b2ead49dbe70a7267da3683781a11f5f64e49c64a1b47240f99396e8262647d1ba5ebb951165380ed43913e404c2172eece648b8f431a3d732743c82f5d48ed9a893e0be8edbac1b2687ef0af6b353bf98639ede4427f3eea4050be3b1b13be6c78e3df2888e1650abab2218939e2b61702514684dca80e9d13f24d8f4cbadaa2dd0b29bc97e0bc6655051cd7ec595ba8de236553f1b606bd7b4e1dd77eb398b7f72bfd3e106249cb9737d11d912acff5585563a76e9907e123367bec5811decdc8d749c29c23b23750bfd52fb11e10c429b7d98d419a3655e9153f46b97ba2ad0a01a65b132807b0cff3264c4050421e3033d3e4307c1bfbb9289dd155b42171679d712ab8ff9c4333bbd29764c3031ef81e91eaceb23db2f9de3c0d7d640b53605e1cc84df1907e3ee914a236e7832439bad289fc5210c685bb1338e347aa2c5765e3d9ec3d3b00716a4ae009b3c2120d02fc58526d26660162bd1cb7ec1dfad6a884665218c6c67233f897f80a722d9017bbf94e093378d8b5238ab2438e658a8f45f4a8ec8f007da873d23e81eefea7862b977dbe039438a7b08638840d185421f618150dc0370e0ff389061f5fa0a8c68a2d035b3c6bc7584f79c77bf2e7abde09e7eaf2620f8aec15c3f2fc398c882675d2fca611e51b46729f1a944179a4a9ce786944c113464fc1ad1e9cde234be0b2e110c72e1ae4b98d60e56bbe865b56318796bb613352ac479fda7ebb09e50c4d1eef3a197988603d1b84e547603751085a0e57a319c692bf149ff4bd834a767e6553e22686779fc2e47b1ab89fc8aef7a5f1a87f2cd2694a385926dba9e676819aac1f3f5fa9e13189987a64e1149529c247b60d3a47e1b21a26ac1a63436377faa36900a0561ece7667859b1eeb6ad63db84a150c511a5732d26f7ec9ed8988055c98039438a7b08638840d185421f618150dc0370e0ff389061f5fa0a8c68a2d035b3c6bc7584f79c77bf2e7abde09e7eaf2620f8aec15c3f2fc398c882675d2fca611e51b46729f1a944179a4a9ce786944c113464fc1ad1e9cde234be0b2e110c72e1ae4b98d60e56bbe865b56318796bb613352ac479fda7ebb09e50c4d1eef3a197988603d1b84e547603751085a0e57a319c692bf149ff4bd834a767e6553e22686779fc2e47b1ab89fc8aef7a5f1a87f2cd2694a385926dba9e676819aac1f3f5fa9e13189987a64e1149529c247b60d3a47e1b21a26ac1a63436377faa36900a0561ece7667859b1eeb6ad63db84a150c511a5732d26f7ec9ed8988055c9836bc066bad4f192cbdf19e4a06169f22f64d1f342a06c9e1b7b20cb69f53d57911d68caa2862c78883eaee78094d9fb69b4c1aed67ae908a1a76c75ec48901252ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec08a16f39db930aa46c04d98a0ed3505cce76287f52f1f5bd01502952c6adb8cf110e76f7b02ece9c3982ecb3f70fe1da83530d64b42225be0ca1b006d5dbe60e0649f14fe91b305e9d3d81fd359391ee448e6af68430ee284c7dbeee81bd26c91a87ef68d7e5bb567fac868b158eee0225989799cc4336bf346c10bf5b624af23a613834ed46c0f20fbb2de129cd6a2a0a80d21a19174d504d9a97fc5a8b6e5909f05442c5b704f241fd71377c641d2be4ff2d19d1a65d63a743118b73a8f2233f881a04691b3abed6a4ee7d6e267383a04b7313dff32acaa8364ed8f23649331b7eb1b03b2495bedad51ec49fb3026e615d58d5d5589a3e786dc083b44e142e1a73ff6493aa3bea38ffa5a6af8a277cb45835fea8173b10f471d87a22cbbf6a36ba16c4e10a0c9299f685933c30e7beb32a3a39f602d028ee716a92ea0d9df23f881a04691b3abed6a4ee7d6e267383a04b7313dff32acaa8364ed8f23649331b7eb1b03b2495bedad51ec49fb3026e615d58d5d5589a3e786dc083b44e142e2949cd58fedd1464592a82c0a259555dbdf0ff8d00b7d2f85e6c24fc2514f30e29f6a9800d003070cdcda76110aaf9aa7d36e81b2f992f2fbc193b97964147a82fe08eb7aec94db1d8a0a61cdcd4d5001a189deb26a0b97b444cb0d94fa665d13d0fce52e8d5d063f3df4a42dc12ac3f72d87fa110c46427e42a8914083973c20000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000110710b41d3177ebea26696f874b807b7f63c97799b02175c3278e6a28729ae491e5e5ca3d6d68cc37d95be7f9ad216d6f9dfa3386728f9f6e61c9314cd2a739a38b756ec6d7a07c3c9abc26c0187e912fda4ff8ab1b94bd2928b1708549893682035414a5b1408f785a513a4101d25de8d35a1cf91967f570b494cf548b712cc0272298b3d7dbeaa10e0aa6b4e0c9a1df97f9874e6f99dc182bc4b035c6c0a30391b63e043f55a9e4dfa32dceacfd29ec1a46a74a5c060691cc4c916132d2159351698df5151ba7a4f92aab7db805f5e08ae55ce9f173d1647da725ef41a5b3402a71eb0e5d213893cebb782bc7ff542bf9f17e4d8c339426eadc4e62e6dbaa8347d387f0dc314078def1c5ceaa809a19bb56870bb9c06f60f0eaa644d8b4b3509212357deeea463d84634616b2e455c701c277b733ebb5f06c076071cbbfc7c19667bbe394a278e2c476d2fdcd51133050c72b0195114798cd82972a952603f2e522d2d3e90bda2d91629cadb8fdf5d3de408a79a5646bbbf4cb395474e13e609b11ffa9af7f5937ae0fbe962fdc6b87c1522efb571473adeda64cf8c4728db19c0421d72a90022a4ec52028dc8a65549639c675dd5bc013b46a1ebd1ef7e59217d296dcb681bb8bef0dc1fea3be8336d6c2296c26b242fbb545ffb6c76b6811e44c67e92d5adef8080670ac5417285b47ce544f191f8721149c48ce1ce3fcc1be458d64fe7a417dd51e1e4eb29a5b13005a05546dcabc2225384e6d5410e4306f85f66e3129b1925c803b3440dc51a33647a103d52647c9697712be32aa2432168de2a48c3ca413954d243b44c3ceb36bf9932ea6f618ff50b7b2a45f035e10adbcbe0d5fadc3e29fc66f172688120b8881f108dbaaacd6c0d42feab8cc73f1ded5e75ad3d41adee65fa47d01cda02b28d00b904e28dc84b0b68d2a5e3b7d821c2994e7d0db799844dee192bfe6c668efebb6b2b9c07ad45de1363eff5f1f12492fbd0b99f1bb08c37feb6cd2461d5765b957d7a71ca61101dd0ab63859c3616b1cfe0e18eb9972f25086d456b4b4979b594e0fd1954453bd7d1bf6798f0150b3c8dc9f2c8aefa5e1993d83b0751869846a068e389cc200f01f212ffe83bd41b06837f9c614ecd1ce30f5ea61ec3e8ea6f7abe63e266f32dd9ebdf9ce22f073b9912c3395ae8e1e194100b3ee4bd920fe43c65bf3331eef50a8fb536826823182d31e0993f65ab6232d5e9a5d46b4f943f7c7eb4ba5622559a3a23962a9add275455592b86188c5dd8a8dcfd52f0e1234ec03d4cdd60cb5b4865bfec14ca1135a804fc2242d1fd07eb65b582927e8d4f4621a6359b04a9b7e400d6bee5044a17c8d4ee077f90a817617fa9a674f2ac640d03bd9cd8f5e0f6d645f756ee4e6414bec47a8b355a78fe65fe9db9204c000e164111f01eda8be6f8f86ceaa380d007ba688a119fd96407f15bc478ca0ae4a50fbfa38bd6db9a2b67b1239e1e949000753b64d54528bee349d1a4eceb23f5002c8f12ebe652c81fa4823a7c7b766e0bc8332e37c8a1081d102be5fd16cb94cd41f80d36ad85bf28e75569f81300972d40cd354048941ae0095b66e149d1241b3a99d6ae68e5d677b07571fb530bec18ac9a7dbec42f785012585af2bd75836b68667ec4235fe1a57562fe205ee9db3569060a0c2d0a692932e24132ddcae677e5ecdbf472f2762e49f9966aa3efcd3ea88ff9f4bf08727c90c6edaeed8c9301d3215240eb267ff1146f86ed917d1a33f384163236e52a6fa73ee6425215d81bf12fb4c045ed696ed4c1d9ac1480142a966bc3537ae3aaa704887931bcd0b19022b2939a3c59b460ff50ebc55f4b072948471aa0c8e8ec27081d23afb4e1f554204cfe775d38c9bf33332e48c1d030053042527de7bbfc273bcad22e7692248b6a7896638194e277c29416a3c8d1fa2d4a0c59a5d418672e1ff69198450545f11210f4c39be3993587f81c59aad6d30e2f92eeba6f16a3dc63818b7f24db8de3dd01053d37a70fd28fc751cda945052b9156d0883e2e597576460c0fa250ecb176f934eb8f97229e58da9feec87b08027f069b45abae2527025d0be42b7f9ba7d4cbd85192ebdb8e4e558c9dee7f911c2fa4e08f20e99f88d061ba12dd46ac60bb78bb76eb1d29acf11dcd6c12c7de095f58e683b963a33e36c98625e01739c0cf459d0b77770438d1b6860959ae2532bc44dd584c65c32ad6554ec87b84d6f83c3f4f908fa793f680e3ebdfdd79fc0e771c8c96b90c40ae83f8814acff3d4fb2f4155d01b0f80d5f3c097bbff91163188e3736946f3bf517c077eb5300c2b271757a63931e99ac339705544006eeb08538ebef19d3d436893da86760fc328c5a5adb1073a546894959209abfdd56d37ac71410e62c2bc976c257989f03cd75ca0eb4b0212a4b304979ee354022a9429a1c9bab81232510ae344a04e4ecfcbdc3c64752423a60ae6ebda305bf52b21165e364547edcdaef51cbb5fb1b13034460a3486e5295310b24156bca40ad4e01028f0a5985afb9536705721878a0efae65a2b5598cb52e3b713b02acbc9d7a22fd70f5a67a5046ac98fa8de7875f1053bec6da67081a637e21980c23436285f0e771c8c96b90c40ae83f8814acff3d4fb2f4155d01b0f80d5f3c097bbff91163188e3736946f3bf517c077eb5300c2b271757a63931e99ac339705544006eeb08538ebef19d3d436893da86760fc328c5a5adb1073a546894959209abfdd56d37ac71410e62c2bc976c257989f03cd75ca0eb4b0212a4b304979ee354022a9429a1c9bab81232510ae344a04e4ecfcbdc3c64752423a60ae6ebda305bf52b21165e364547edcdaef51cbb5fb1b13034460a3486e5295310b24156bca40ad4e01028f0a5985afb9536705721878a0efae65a2b5598cb52e3b713b02acbc9d7a22fd70f5a67a5046ac98fa8de7875f1053bec6da67081a637e21980c23436285f02137e04dacf9afbc347f2bf066d88f624070fedb8de8410940ab528ab8fc49c0427665ed95b17a0576af512ebc575a225cca770747fc11a85e3405b33ad6bb0022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c1d4a164b68075b693e2db439bd86b92efd5b5b35359cf24326474ea04c03f18c3b34304bda9f35e9ae3a465520952b043317ea89000a964bfcae2b94c9360dc91646089be80432ccfdda62c8eec2e8da595ac4c7875b4fe6b063e1a56fdaff6120afdf35e898ca39b550f3d9fbcb59cd2f7006a49fe1a6e7cdb576ce47a9bc4d08c3125accc5382298d1a2f142f6d8ce841ad42a618144605589dad18937546626c27098218a30c011033a0ba7b53d15c7aad1d58e7f50088459cf9ec915a2d80b6596dce665c4ad8cbc22e9703f3cbbe60e0082df02448ca0a85a63a0c49c5e2de5896202cb8410016aef80f8a46fc1e77d4ccf2768976871259c95e61722e83bbfc9e5e13ddb28272a15d757c582a8298de1cb5c5882224140fbdbd5c059ec3718005859ff8e8e357b954a3dde5aaa4eeafe4f0f53a30b91c021b78a2397e60b6596dce665c4ad8cbc22e9703f3cbbe60e0082df02448ca0a85a63a0c49c5e2de5896202cb8410016aef80f8a46fc1e77d4ccf2768976871259c95e61722e8322204d59cb6ddbc607a8f33211f7e32a5ad37bd025bd16bc602b2a9187f278c04ada1a618404a7f8ef455a4ae015b691552321b7e85bfc2dcbcc69d6c2ea32e1a3aa5189f130745a328b2fd2275f773ace9083d962ad8ab97ce233abebe7bff351347fa588ab24938ae2c698ac6c65b1c430e5d171147f694b99f53db294e0f000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012d190ba5382f6c31778815364522878224af4161e59587610263c747f7fd22e9019df7293d86a46a9264394f565f5daca9ba9b71f72bef5bde9835ef9e5493f03f499838a660f8bfa5b754436e124ec6bbff3f4ea4faf897a26f2a3e7a8341370f53f3b7df9db111a06d0629ea0903e971e8f05ba76838550a4e630ea9ce80021512f8cf9db84d3dac121ab81241c1e89d400f43d37f1fff62741238cee89f6627b96a39d5ac2857d0137654c0927241959a3c49aac98813b66cb0871b3cf9ed1756c0456371aaa19faa6b2c4145e5cfd2b06f23eb4a4377d5162165e86db16927b72e57645ee9fc07f35979967c5c553f443f00833d5013081fc400d03a20da03b94034b93f551f6d63c77c9b34e6953aeb90b3adce0fc70db5ed94dd9cb33e11db4fbe018e220f8bc8cfc43d91387aafeba8d04123dd0c2684e5fe981912fe3979d00a5028f20106176c8bfe3768e282061588c9c28ab0e3576b2f1e6bfef60699fb87f635069e39b74702fa17b2afe52b59e8a0ec022662eb1c521b0a2e0a024c6407807018ffe6d7c504bd39fdd28053a9a1d2830f4a5d1780423638b5980305451768b2cb1ed83ef987331dadc85752bfa41f6a98601da057b34c2daa5d0bd01fb1e6028d1cba542432c0d7c1db0c18e09488f29fa5c943a820a2224aae14446321293e8b059e85cc7369635e0476ce54ff670e09a4d5cf03bad67ab7431b031bb9a38b34a04d462b45801967f78893de715d00fe35f72717e63e7df4231f5852e3f49676f5ef3448e458b96945e3ccd7489bc45d61f5d28571d88cd8620e467bc2002fc5173381483533d2039445872ce4c305f4caf221d4853e94a8590d6200acfd3630a96bde871e12cff4318153054afacf68b3e4972bbade3e6dbf1c64a1a762721cd2187580eccdad6197c8ca3cfabd35590be48671db8e2429eb28c92bffad1a947f3d0a5e4143ec1daa0bef4b826b5f5f89b23273f431c3ad582ed6df01d9c106cb987ab9f77e8734ee9dcabfdf5828d04777fd2a21d02b999a3053bdee9e38389a62c631c803379ea095486b4bfcde182583f3d51c552b5f0d2d1eb9e713dfd7ac2f2325a0cb80d1fc9b4fd4f2a7912bf54b035ad75e7e8603239956e1a43bad45c34b5358c2b9b05469651f0a604e7ddec26cf76834e29c5a2dcb6cb14e570ef6fb373af55de656c1a5c27acf5602b4a0d8da0c1aa6404a380a87ce3683bf8473f2eb587f3b7d775bc82afe4334d93fe583d8c13a2abcfbe7196b50383f43afe50b72f7103c1cf1ba31e3178e6b05f13db06bb27db2ee23470b7f720a36b7907a627016a7a08c6ad7f20968a0c0800138f619004c73e5163808c0b6b3250178abda63833769c70c608b9b6c89cfc1d3a115fb17b0212d60561f4dce3ea1059604d7ad61f766815ea8b528e181838f6d9c9329f980718d3a4405e056b4864cbb1993ba900072aafda82edef208b391c8be318e86d5cc4dbcc921686c92f4fecc7d748db702827c0df00def8d67c4f5d249fab3bf45a76ef2700935d0b476fd0fcf7d1134015c5a27168a1edfd11b9cee2a4bb92939deb8cabf0c9a7e42e462d5fe34a56f3a7b42953fd08d0561f0cc43dac167ab0d35f397e5120c59f6a59e257d1e20b1732c3267d4c67d0aed60eb117b5598b9d75a972814053f7bb6901504cde120132749bfa8fdfcf70b39283cdcb001ee1f3a65ed30810f74329b4d5325dfb73890ff58581c798e096c11be2c93ea297f247390e004a43a63f089841ff0d54ffbca7481451fe2b7e8fb01d3c3aeb827c871ffbe3482b915ac91e7c59ea0f5281005a2fe4295af43de58e5c767b346c60ba786b46b362f069d7aa826f5194f6a21b49116fa425f8dc4da06df2f922c28c0c442b34cd49023d5f788866649ef4be8031c0d1aaae2643d18467026a2daae5c6c317f71b633057e9bdd8aa14d5d5ae83586607880b97a41598eb06e8ccf9656d60886f2dc3e20a9ea1781f8e67dc84e15f82690bf9dca3fe613cd25d949e7331ede799fa1910d3a1c991e86858859bedd2f106139ed1204d31762f5f79815ce23aa22a2a09a00f6bed4653ed4182724ecf083e647df363f9a27b425e2c09c280492a067a629365678c8b59610bfdb97a168107aa69b9e5aa53176fc22f09292fde1354a53e6201ce8617718e9d1d43c8c2cdde6472f628a18b6d71b7db08fc1db134b0e10870934a9536e82efa526fcb10a2a27da202f5d55a966f804776523defed5c6796136bdcc7b0f28b5df31744fb72326829dff98203a45f8ebf0e047f48898cdb6db09423384f0d74a20ce8bb048dcd97d6222ae78c1c3540d2ab8e53c646732492611b4fe674bcb8d5bf7458e93afc08d1574de3d3338a8b745fcb302f6fc0492432e4b0198b43472a408ba716c503f72eaad685bc8d0a441d59c7a2df603fb6dbe1888f8047af9c2cbd45bc8e26ec2c16b2610990411fe9b425651dde5ec16db4e277707fb85063d342ba4371d913d3e94fc35fff7f74e5dd942db530713e924b33aacd81666e0cdfb25caec6c29cdc7179c0c641850ac0f30166c24909c724885055327e9991f3204da351393d63238e8863a34e3b8a0e9eb82c10c5c638db77c36bdcc7b0f28b5df31744fb72326829dff98203a45f8ebf0e047f48898cdb6db09423384f0d74a20ce8bb048dcd97d6222ae78c1c3540d2ab8e53c646732492611b4fe674bcb8d5bf7458e93afc08d1574de3d3338a8b745fcb302f6fc0492432e4b0198b43472a408ba716c503f72eaad685bc8d0a441d59c7a2df603fb6dbe1888f8047af9c2cbd45bc8e26ec2c16b2610990411fe9b425651dde5ec16db4e277707fb85063d342ba4371d913d3e94fc35fff7f74e5dd942db530713e924b33aacd81666e0cdfb25caec6c29cdc7179c0c641850ac0f30166c24909c724885055327e9991f3204da351393d63238e8863a34e3b8a0e9eb82c10c5c638db77c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000104f76403bf60615a60b90f6473eb481cf6da2c22d4594ce4afdbee7f237f41e0000000000000000000000000000000000000000000000000000000000000000122c5f554f55e1f6dec782a0be0543f4c7b71f8485a2e10391db44ebd31833ff03e92aa0756591803b616ea271a70651e7d44a52672d5fbca8fdd25dbe60153f914803586fe72a309548596d30bfffcdbf511f7a83d11433501fad6f0a0112fa819268ca41e96598a5bf44df952f5a40e60fed7c75dd31635181d04c0a385e58b1e5cce4deff9a1062fd3254d52043a0050968e019bd4f2913c411c1d46c3acd924d9a756ad18f420b8cfb08ebb78d0e0f005efa04ce9938df69d42917677a1cf2ba2411fe33dfa0cd3dacc7bb65f403845f5298a058be1088e664d8e35e28b3e3740cf01dd71ce350f17c67f6ab0118524b0d39877f3102f9eaa4bdd83b9e86c31b63e639e7c63bdb2566fb4bf6c4a4d47856a6e1e40b69f076a2987733f023538aa5d8a8c8ffcc90210d317d7a218f822ab186b05d3e754a2972260577fd5cb022d1e12632fcf13577760615c9228d54f95239d2e6af4e022a0f0e63c95f1b33449b39b4db203e12d02b250d4a37c45376d0b3cef7b238f444ca914db382f3332a00ff0c1f2a9994947ed8b953bd689d92d0dd0c8167669fd89bd0e4419e9660f4d3df90294087010c0bbc7ddb44465a3855066139de4a4ba5bb9f6e4b1f0722f6f0aac8b0fd732b645605b224be9b74aef4263407633737bedca382812e0b5301794149966b4642a1cadc30ecb49a523fb126470cf825604e33b538d47035815a820764e4778b26e0ac7eb4f30eed2b7745eaba300e232fdf38ab089544ff320970bc14627532c8bfe08072b11cba9f8ec7d317392b48bdf1ff843080787b82393fc84ac0bb9c0edb4d1a35957e02ada3722c56996742824f523449b55a7fa2df364a9b439f23a9070f858f2b427f71d641687063294d36197caf4e338193d38e29f3b3655597f9b6ceb034d24933eaa3a4255054f66a097d66d85e6d8af3839d07fbf7506aeff02e0fa8c479d035c0142326eaeb3c73b021978541d25353201d937ca6e8181422a95b3a03cbf404a03063240ebbbe9b912f21b3cf33c426612a65c7ac483cf32160294705ba461aa93043cb3a1d7ebb46b6694030146e5162d21637a983cf8fc40b47ae3d5cd2923950bb6dcb33134d388e47c4305e4f87f0f9a94cea1ab2c7aaca768c247ce4733c2090fc2878f79c5890e031758ff7832312d89b3c3a2f8ab20a41d59b6238a028c1b05d60387327db2d3cdc4b9f244ac051b58ac719787c9cfa4b09dacb90b750cb83283142507de06fab8f9282b5f690d7a073716774f9df7932c400369e53f19c761313c964714ef6c0dfca05e4ac335a7ab178202e6bbd3cfb19d644630b8569075c194874de5437a5cda3ec936812cd9efcf51a8443f80889d4ffff667d40acc81eadb064e6daa86d645283ae727215d571d6a754dff8a55feae655b6a5f23e40494c012359650fab34a4c1423573862a19944318981e595a81f7ac780e95422f879aeb14a506320057c5b0b25692e76ee78ce60e4a9e195c859ac5c4665aaba808a51d660c3bb574521a6fd29da2fb4bb451a4cef3393a7280e63deda913b28199025ac307be0695922dc3a83761f69768a3499de67274e501cc7bdb52254099a24420b67dc27a58158b87506ea1f69768a3499de67274e501cc7bdb52254099a24420b67dc27a58158b87506ea0000000000000000000000000000000000000000000000000000000000000000278f18e7a77366cd5d7abc1595ce47d9c798d9da33dbcc2c04076d3dca57c5310f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5f0f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5f06f88f71dc0d453484c90c325d8bfcfbf95bdb026c9a3aec927fbda982cccc1906f88f71dc0d453484c90c325d8bfcfbf95bdb026c9a3aec927fbda982cccc1936ad4ab6f65a346818703440c16ad78d3483f49292466b6872e916cc5f074f8e2e87a8598380ac01e243c847f35a44d5c0f4b4dca076071896872ae74d2491481e3c639e9dcd9b3575eaf05657391f66d9d63570bcd53e78ddc3531d295f14bc1e3c639e9dcd9b3575eaf05657391f66d9d63570bcd53e78ddc3531d295f14bc00000000000000000000000000000000000000000000000000000000000000000bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb0bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb1663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac53a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f216211fa42639b21ecaf1ed4e983217b62a6709fcf49a5422b064a6309c8e2c557662260f666d094d1a6403be2dc098fb8f586eb4ad8166745ba69d9a8268d67ce95224688bf433df1ae089e293b28e241cab5fcd9cd6a27caada7343d9684dde77a20de236c8d5a6a0e502a2e3ffe172e2714300642e4b9f8986569c7538a0b81fa33ee9d35863311447a1f0d41296828ef14e845415c2e1024c8b39e27624bf3130d97ba61a8a2316eb79f39a161619e8bcb7a52eef1358e006dba79ce51baa33c10c697823a4c4bcf76cef00e67a7c4573c7f2b17dabd0fdfacb93a9679d4e8a211bd6a4c417911b42b7f4e8354b2a758409284328da8c61546bbaa13ac0ab63936bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b93c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db17a1dd82353c650035565c7bc00d9e983b457e8c8e8400815db42975e7191dd723725bf4adbbbe02d33ba140065e3e1cdc66f45df62ec7fad6156e418389100c36bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b93c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db16e08890aa848dc2cf6ebff393973a719895979a2e346a08da82cd7f791497511f9a4131e99449698ce8ce1eaa5edf794bef39d7950170d87650c3653eec76d50bba2f36522d59ab82ede2c4985d52a8c1af4cb45768d4d34000a3c4b4678bc92de546b81283d93d323202c8cc923733cabbcbd1b161d0388443c11d1282ebd00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000119855653a92b5b37bc84430dedfee92e5fa2a1627ef010cc358ffc7ca795f8ff10f91417ebc5fa0a82c0fc211c1ffd54bfedcb8a1eacc12001db3d3dfcf6410336fcd7247b582bd4755c005b613b80ca2f8820cddcb43e242679713b9c095089132f24b896d0c5362ec7896ef900a2aba3d25adf53f77108f34a222c4498678214299ad45294b6b41dddc527a1ae46013a4622388f6d3f7fbd08cb5da0b408e8111e3f7e1b77c40285c0545eb39b341c4a7f097d9bd852d41d534ba5324d57cc066debc195b53304b7c8f3785ea52c698fab1c33036da1aadb1d57d46a57fa0b1b55c2439894e8561eecc4e7337a6c428414211cb9e391ff0d1e54a1dc8492741382fb675176bbf903e404bdded09f4a79609c13f8dd0adc9bf398380d0643c00e803f15245b8ee7e24b7a7c9b475907f23b775017e95e80844dc3591d4578e518f961d2961eace213ddef4c9fff847634c6aed28ea2b36c47e11aa8476227f61e1a563dba60b85dba030b80ae9ae90dfed627a0c3282e96dcc4f6f5795a0aea303db71302220fdc36cb981571a7a39988356de91cbd34414c176a4cbfbd0b1606547e6644a457d54b633df37048afd98c0a7b53fe4373e2fe2654b7e11f75890f4a5c550e927e552d2bdfb5ad5b579ec4d13e605ba0e8be836ec282edc0bc8c20e9dfe79ff700f343168ec6a16ab1dfcbd35a3498546dbd3834c9a0c16f318722b5bf8602797964cfe223f7f39caed228cef4a518f6375ea58a12923cea8cd12d374dc211ef11c761695eab8bc0a9a0aab656a0122a5f78e1d299ba93419f1a0d1a3a23a33ac356a53f60b4d8d4635586b2e25f81d3fe22d36ae75e7cf442be2e35b50d9687b4c7d820a14f2e63abb3597f2ad46eeef9d20d6372707e81089a184020a4fb3d8a714a4f626e3ea5bb356c6ef4c6747cb8aedb354a201f92f6e62176aab83a16b5378cbd7456d7163bdaf3976424bdb7563de4371f703e5b6e3c05a54c3ca90caaf0882824ecae0496d22fa11c473eb0fa671156a4345449255933935e3d12203a4564b3f7bd3e5188139552f235daee4ea1fdf45a81915341650b88d5843256b8f16a31985616cb634b4a614bdb510b92f6e2c2d2268695cf210ce82eabb395d8486c049a6304082636414c908c415de6ca846f31620d3fe25903aa258c4f5cf8008e3f972b21e33b538622309766d0a7dd0cef851a07dd74421a435475fb6ab1e7162ed84df5693d343dec523b4069c64b9c89cd0df7fdfa610bd0cc0e4bf690b74cccc9f4da3b379896be27c571590c67e76971b5caed42ba2bac1db6f1236abc4a0927a957c66dee1dec17d2890ebbec9617ce5b2781620303d3d397302499301ec0ff0a2f2a6171831491c3c698372840da2d0655b68ccf3cadec78445ae88b4e7beec24095bbdae8981bebc7a1b4ea4fbefe3effe7f40f02c35d2cc186cb97ee70cbab620a055322aae8a6337a853544e15a280f4a93972f17598b444349e9adba8bb649ef188d910c0e3d0b79989f0f8604fcff06ffee3220e40b6e3b8bd5b56e9d049c833f29339266b485253e9871760ec1a5c9b1522a0cf327b065fdc58065610095ec4a60fd601c623a664c5cbc801b45440faaac201a60c7a9c8790d2e4b2ead49dbe70a7267da3683781a11f5f64e49c64a1b472c4e2bbf32761299b938962a6b3e204de7e452718bd691428f31b78e05d97c3a3d732743c82f5d48ed9a893e0be8edbac1b2687ef0af6b353bf98639ede4427f240f99396e8262647d1ba5ebb951165380ed43913e404c2172eece648b8f431a0e9d13f24d8f4cbadaa2dd0b29bc97e0bc6655051cd7ec595ba8de236553f1b63eea4050be3b1b13be6c78e3df2888e1650abab2218939e2b61702514684dca807e123367bec5811decdc8d749c29c23b23750bfd52fb11e10c429b7d98d419a06bd7b4e1dd77eb398b7f72bfd3e106249cb9737d11d912acff5585563a76e991bfbb9289dd155b42171679d712ab8ff9c4333bbd29764c3031ef81e91eaceb23655e9153f46b97ba2ad0a01a65b132807b0cff3264c4050421e3033d3e4307c10c685bb1338e347aa2c5765e3d9ec3d3b00716a4ae009b3c2120d02fc58526d3db2f9de3c0d7d640b53605e1cc84df1907e3ee914a236e7832439bad289fc523378d8b5238ab2438e658a8f45f4a8ec8f007da873d23e81eefea7862b977dbe26660162bd1cb7ec1dfad6a884665218c6c67233f897f80a722d9017bbf94e0909423384f0d74a20ce8bb048dcd97d6222ae78c1c3540d2ab8e53c646732492636bdcc7b0f28b5df31744fb72326829dff98203a45f8ebf0e047f48898cdb6db2e4b0198b43472a408ba716c503f72eaad685bc8d0a441d59c7a2df603fb6dbe11b4fe674bcb8d5bf7458e93afc08d1574de3d3338a8b745fcb302f6fc049243277707fb85063d342ba4371d913d3e94fc35fff7f74e5dd942db530713e924b31888f8047af9c2cbd45bc8e26ec2c16b2610990411fe9b425651dde5ec16db4e055327e9991f3204da351393d63238e8863a34e3b8a0e9eb82c10c5c638db77c3aacd81666e0cdfb25caec6c29cdc7179c0c641850ac0f30166c24909c72488509423384f0d74a20ce8bb048dcd97d6222ae78c1c3540d2ab8e53c646732492636bdcc7b0f28b5df31744fb72326829dff98203a45f8ebf0e047f48898cdb6db2e4b0198b43472a408ba716c503f72eaad685bc8d0a441d59c7a2df603fb6dbe11b4fe674bcb8d5bf7458e93afc08d1574de3d3338a8b745fcb302f6fc049243277707fb85063d342ba4371d913d3e94fc35fff7f74e5dd942db530713e924b31888f8047af9c2cbd45bc8e26ec2c16b2610990411fe9b425651dde5ec16db4e055327e9991f3204da351393d63238e8863a34e3b8a0e9eb82c10c5c638db77c3aacd81666e0cdfb25caec6c29cdc7179c0c641850ac0f30166c24909c724885000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000104f76403bf60615a60b90f6473eb481cf6da2c22d4594ce4afdbee7f237f41e03e92aa0756591803b616ea271a70651e7d44a52672d5fbca8fdd25dbe60153f922c5f554f55e1f6dec782a0be0543f4c7b71f8485a2e10391db44ebd31833ff019268ca41e96598a5bf44df952f5a40e60fed7c75dd31635181d04c0a385e58b14803586fe72a309548596d30bfffcdbf511f7a83d11433501fad6f0a0112fa824d9a756ad18f420b8cfb08ebb78d0e0f005efa04ce9938df69d42917677a1cf1e5cce4deff9a1062fd3254d52043a0050968e019bd4f2913c411c1d46c3acd93740cf01dd71ce350f17c67f6ab0118524b0d39877f3102f9eaa4bdd83b9e86c2ba2411fe33dfa0cd3dacc7bb65f403845f5298a058be1088e664d8e35e28b3e38aa5d8a8c8ffcc90210d317d7a218f822ab186b05d3e754a2972260577fd5cb31b63e639e7c63bdb2566fb4bf6c4a4d47856a6e1e40b69f076a2987733f02353449b39b4db203e12d02b250d4a37c45376d0b3cef7b238f444ca914db382f33022d1e12632fcf13577760615c9228d54f95239d2e6af4e022a0f0e63c95f1b30f4d3df90294087010c0bbc7ddb44465a3855066139de4a4ba5bb9f6e4b1f07232a00ff0c1f2a9994947ed8b953bd689d92d0dd0c8167669fd89bd0e4419e966301794149966b4642a1cadc30ecb49a523fb126470cf825604e33b538d4703582f6f0aac8b0fd732b645605b224be9b74aef4263407633737bedca382812e0b520970bc14627532c8bfe08072b11cba9f8ec7d317392b48bdf1ff843080787b815a820764e4778b26e0ac7eb4f30eed2b7745eaba300e232fdf38ab089544ff32df364a9b439f23a9070f858f2b427f71d641687063294d36197caf4e338193d2393fc84ac0bb9c0edb4d1a35957e02ada3722c56996742824f523449b55a7fa39d07fbf7506aeff02e0fa8c479d035c0142326eaeb3c73b021978541d25353238e29f3b3655597f9b6ceb034d24933eaa3a4255054f66a097d66d85e6d8af3812a65c7ac483cf32160294705ba461aa93043cb3a1d7ebb46b6694030146e51601d937ca6e8181422a95b3a03cbf404a03063240ebbbe9b912f21b3cf33c42660f9a94cea1ab2c7aaca768c247ce4733c2090fc2878f79c5890e031758ff78322d21637a983cf8fc40b47ae3d5cd2923950bb6dcb33134d388e47c4305e4f87f051b58ac719787c9cfa4b09dacb90b750cb83283142507de06fab8f9282b5f69312d89b3c3a2f8ab20a41d59b6238a028c1b05d60387327db2d3cdc4b9f244ac35a7ab178202e6bbd3cfb19d644630b8569075c194874de5437a5cda3ec936810d7a073716774f9df7932c400369e53f19c761313c964714ef6c0dfca05e4ac3215d571d6a754dff8a55feae655b6a5f23e40494c012359650fab34a4c1423572cd9efcf51a8443f80889d4ffff667d40acc81eadb064e6daa86d645283ae7272e76ee78ce60e4a9e195c859ac5c4665aaba808a51d660c3bb574521a6fd29da3862a19944318981e595a81f7ac780e95422f879aeb14a506320057c5b0b25691f69768a3499de67274e501cc7bdb52254099a24420b67dc27a58158b87506ea2fb4bb451a4cef3393a7280e63deda913b28199025ac307be0695922dc3a837600000000000000000000000000000000000000000000000000000000000000001f69768a3499de67274e501cc7bdb52254099a24420b67dc27a58158b87506ea0f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5f278f18e7a77366cd5d7abc1595ce47d9c798d9da33dbcc2c04076d3dca57c53106f88f71dc0d453484c90c325d8bfcfbf95bdb026c9a3aec927fbda982cccc190f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5f36ad4ab6f65a346818703440c16ad78d3483f49292466b6872e916cc5f074f8e06f88f71dc0d453484c90c325d8bfcfbf95bdb026c9a3aec927fbda982cccc191e3c639e9dcd9b3575eaf05657391f66d9d63570bcd53e78ddc3531d295f14bc2e87a8598380ac01e243c847f35a44d5c0f4b4dca076071896872ae74d24914800000000000000000000000000000000000000000000000000000000000000001e3c639e9dcd9b3575eaf05657391f66d9d63570bcd53e78ddc3531d295f14bc1109ad4c5183f69681888cf1ac9c73233ae4e3bd5ca9ad8e34b81c1a117946272ef652b3ae7c09697e77730e53638cdce761b53eaca34b8d647514d2ee86b9da1530627d9793d0f087aac0b85f0e3fb00431d9b6c6036aab6e6b5b95575e5ec22acf9d82686c2f0f78553f47a0f1c0501e14bf4543498e702ac1d557a8a1a13f29f1ec73f5e314b2a655c399db473e6ff2b2a795d4c41c3d8eeb98fdb4d7d9c9160e138c0a1ceb4d59aa3c6624b8c1902f93f1663488dcde0a4197ef4b28263811b99e43cd6f677d3facd2014864382f56a97af90beda1e0ff126a2d883740ea2e4661bc32909882c0532dfeb79bc7d0cb9d1e02fd5f573a9a1ac6bf77c8bf171109ad4c5183f69681888cf1ac9c73233ae4e3bd5ca9ad8e34b81c1a117946272ef652b3ae7c09697e77730e53638cdce761b53eaca34b8d647514d2ee86b9da1530627d9793d0f087aac0b85f0e3fb00431d9b6c6036aab6e6b5b95575e5ec22acf9d82686c2f0f78553f47a0f1c0501e14bf4543498e702ac1d557a8a1a13f29f1ec73f5e314b2a655c399db473e6ff2b2a795d4c41c3d8eeb98fdb4d7d9c9160e138c0a1ceb4d59aa3c6624b8c1902f93f1663488dcde0a4197ef4b28263811b99e43cd6f677d3facd2014864382f56a97af90beda1e0ff126a2d883740ea2e4661bc32909882c0532dfeb79bc7d0cb9d1e02fd5f573a9a1ac6bf77c8bf17063701d30cbb53d7978d008cd3615854317feab4f9fde2db6584c6b4ea9b95e5068b7cb70c4e968fe90a321a45ecb6c221e359af3f511fa60b4bca61ced1e0ae125c534548436e43bf17fe0c04c54749cf0b77aa2d2eed5e1e60a2d2e8abc0510461dda8d89f9244340ca170b871686ead72c0f6aeea72a59dcc85f5bf2f6861174fd3cd0a6329e80675e8c922f8f31f9328a293d0aba8eaa2afd97ed729e45e3201e461c6d62e2c900795707feed522eea9853c0e3de460c22ce004ea67351e3f90f3f11f8b2e07330436013cf84bb954ecb40fb809c260002f80c1bcc27c291463993a4353cb15f57f77eaafd1217583e282d601afc8cbf2ed581b73efec2e3a35e6bcff933d179e2252ed0b31a170efac349225b3a7a2b7b0da78c0a16c4d2c1db207912d78968d1fb9253fb8b72cd707da6a59024affbbec11e0b07b50f514d9d33a6aa19a6ca282dc3e6b99781ec735554b302236e9caef5e6ffab81e5c13ad242b4c191f61e117fa186ffa0f43c527a31d3468c486e09ef8634eb4f16a276caae7ab013de4a95b016727d9606221bb369ce22028e21547c7652cb8a9cc3512a5a01b11d72be2e92c7501a1e0cf52f07e561b1166cff014e09571feb6f314d9d33a6aa19a6ca282dc3e6b99781ec735554b302236e9caef5e6ffab81e5c13ad242b4c191f61e117fa186ffa0f43c527a31d3468c486e09ef8634eb4f16a37fd4d9c0c09272e09dac7907aee6e40a0533ae3648ff919128189d40b1782de350a8a0c8137e5d2c487873d8c24be763ca1bc1f175a9ca9d17057a4697cbe7b39c6a1eccd6e7524bbc21130f4d7adac6cfe8ae825234d5559e372c0769432dd3c92edea910beff0a91dbbd6b523474ccf81faee2c63dc9d55bdf74ebf9127f7000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011c635a31419e8ee535c67cb18a30e056bf9d7d5bbc2ec77dd73bdf33a4396e9e3e834d8bd2bbb8fac2808a6263115fda804b06ac6eb51a377e0b7c7687e7647e175d9063bea1f224138af92b3cf420c3ba452cafab4095d20c75a19924e4411838d886a78d0e911d093f67752ee9c63269a66a17d5f4847bb38f7ce24319e8181c5339e8429116503ece7f9694066a289c34f04305e6873f3a912fb9ce89f6142dcb6577aacb8423df3e8d9706e6963ea80f6b376f01aab1c4ebbb4e7d7854860c5ce4290ea4c70357776c54f1abcf2ac05cff47968d842623d982dc386712fa0a05692590e81d7a1199f5c8f82fdca3a963d668e3f081be9692f86dc4e141ef02594ab30b692c2728cd3ef2f454b2b359f540ae29463292fc2f214e5c878ba736e67db2f02e04451f1ef3c6222d9de573cf774149b548a4b6f8dcfaadddc8c91de819500cdbe404882c2bb84a87fc383c11a04c5822f6679c0239982e08e92e3aa800397243ebbf6ba21821b352f09c9db3bf0970049b110aaae9901767ef1235626a189b74a81ce5494421d946f2498497d395e25328a17df5b432335ebed41dc92499408c71b903aef31edfe02f9a09526eac536f097c22bf1daf57c5237237bcb0c358460fe23f77e9055d6cddc87c9f01508c1a7d56072afd2db02331c43f1bef2a00f21119a8907a94f01ae68c68fc86e942782164e45bedcff3058d0f33be7264706c8b0a7927abfbc7340e8ff026e6a1516686e85bf2b7e7bee8fec1179b1a0c5c649351b644d53967beb36d78fc5eee55a7f8dfc0e54759c940dbed30745f57d80351d9256943d44ae92eefd1938653c55cd6003d1e7134c6fc5bce0573e264dd1fcba8b4edfcb4ec9c0b30ba8503a98b3ccdccc15b6d0337d34a0725081fde68a868a20e214ca2608d8b733a42debda35c2d81d151ffb569b0eb9f330bb5ebb59957cb6dcca0400c5b8592877aaee1d683082e8b446f83bfe400fd00286cf880bd6b33f58342b9da51a6b805191d8e9fe1e984627d09ec6bf6ba5d2bcf96f7c2acab8b191b7656b908df37b89b84f76e40d5b0a50bcb6e08f3cd4e10725f71833c91dd65904087d5d703d860bc5f22d9a17a40a8d4d7574e3c314212656494c6d49af5bf148ebc39110b546e8b9812f37984fdc62dd371e88a820d0d3821f33321263c182b31cd9d853c851f9d2b1f3b0a2be18efa6071d38dd3852c1fda7275acc456b0f9d2f3b633dbae0cbd00e94a41b6c5e5ddba6079baa7c53b53869bbeabc713a69360ebd48147b7570ec8e8e0add47e1955688e9425f4451107077b22c1ddce6b443317fecf21557833e0460f860182be16ffd2a7598dbe278adfa93585e0ccba19eb22a9b69b372dc76a512b12dbaa690e132d8d04767b05cc2d62b52a15d273446d211007703913d208a6933b922d93eb9ae968219b0d3069263667acc6fabd52cb1e3a468962606d3fa3adc16293ab710fd16fdd32b70b096c0d261d23205c9c5fe0dea0dac7b192f57eec47bac9ac8de00e45346eb003e23eb47fbff38d46a1696cfe2ec73f22636fbef27dd883d855f12cf8a9df9c3eb249a02dc55ed9aa60f71bf55ee4601e8ab9ca35ca412bebc089e36c5890091339c2ac300f4d4a53a9da129e5466599cda5cf7a4bc650f7aa1584b70fcbdfb0364ede3505c2976485f5edb9fc0ae8ae6fb89a7868976ce3ab7ee467c9a98bb219cf51bc0072c8432cf59d3925efb710c7e9d441cd5a27d42c478b858b3d19125e465182209658401df2804d51acdc351095cbd3976ad46fce0d367a32306983cc694dd8b3c36512a0bebf5f1e4ed0dcc09c024b3ddd332736d879a07bc81a6021c15d93654e41fe8842798da6198317726b3590e687320f5cb2c84d76ae5ed087638babde95df1d652fb849d6cd2058e876c5e3eeb15008cec33d75673df29380933a19b5408ce75339cf61a89bf498427b6dae6594eb7cae01fb88f87275302c05a00499d79ff065c89115c5412a390ba30e4992fe3520a5dd365b6428f3308a92c7d0688cbc26b2cf4d3b8d3b409dc85e4229fe3d8afaf0f9d510503951b3d1331dfd73730263ee55917a463ef65bd8ed613921438412e6f998b2298e45f16a9220abe0c53c0d1b375d2c5a181829e70edadcd210feaaca57b946434d2f2135e3ad6537866d85f40e6f638b84fdaa597d3d42fa00de76417cd7a274f52c112cca25736b43ce66cb381e50a7412e7c061f6f3ad20caed25d7a52324a646a818a62107e04b5f9b19f1ae1f7823a61b01ced64411dfefbd3a1d74748adefb682759def81fb4a064e60e51e087dc59e52077c2b7f76d095e5f0fbc78752104993b3ea5276178de0781b8669d58b23e86e6c396585012b59689661559b65ae90704c15ad89e8721f87e479962a74dc1793b8302a3b93a43850fc71b9349a516fa283939c4e75c5625889a0112bb7b38a1f8b78bc96b29a7824a49a70c8fc68d1f17c6c63b18a3a9da7765feed4484c75e298f0d329e2351994ee389e0703972e2091e20d884cdaebbab02055da9681b2974c1effafbe95a38a7e8b077cee0c19836e1df277b32514454fdfaa25697e4d6ad84a9010d639ee2f1448075311f3e6918a62107e04b5f9b19f1ae1f7823a61b01ced64411dfefbd3a1d74748adefb682759def81fb4a064e60e51e087dc59e52077c2b7f76d095e5f0fbc78752104993b3ea5276178de0781b8669d58b23e86e6c396585012b59689661559b65ae90704c15ad89e8721f87e479962a74dc1793b8302a3b93a43850fc71b9349a516fa283939c4e75c5625889a0112bb7b38a1f8b78bc96b29a7824a49a70c8fc68d1f17c6c63b18a3a9da7765feed4484c75e298f0d329e2351994ee389e0703972e2091e20d884cdaebbab02055da9681b2974c1effafbe95a38a7e8b077cee0c19836e1df277b32514454fdfaa25697e4d6ad84a9010d639ee2f1448075311f3e690a129e2bed69e0b98da8b9fdc63663f130321e9cc946ec2294d51698ce77aac629bff991443d9d41caaa0f3fa3618c10150330b147641f92448dce69bed7723c06b8d7221f316ccd211c30eca2885f3786348b037a8ee4b5e05159fa94c46c3c1ec72c0c20573b5141e5d40e17d7293f3bb25cd5f92b26d68aa789660ac49eba00120ee4967571f55c23da6ff0262095069566c72741b0cac7d213ce1f205c2c2ac7dc6372c289c0e0fd0bf2af4eb26fe87da6d58098575c173b5f3988bc286d326d69a221d8f6439dc6ab6c5f5980251f0dc37465f72fe842106e1ebc2d034a15c05e370623ba7025fdb75e8b2260b19e7aff57d470e8a1ffe2bc46e4607be705a80cfa1b553d889d86c25dd7ae7ef3303b64a6ec290a4844dde716df5191131a546ac894e941a4a59b3502dc626f04444e58cda130edfc1961806fa8bd95263078abbf82471a760d2090327ca3dfe9b30f3b2045527bb00df4629e529c216d2231b390b71370230dccef15925d89406c29d3e47cbfe5b82409632a78ba77192f348ab1f364b279513b151597413cd76bdfef5bc57728432406c0599cc3e9003778da629b6b276cf3701cb244c74ab0f3d7a470d20aabce63250a0a3663ef0d3078abbf82471a760d2090327ca3dfe9b30f3b2045527bb00df4629e529c216d2231b390b71370230dccef15925d89406c29d3e47cbfe5b82409632a78ba7719069728541b80cb1f1815c854e7c2261e8c56a297c2f5dc2ab74a3daf63980f5e1bc8c4f1da07d6d64f80741d22a2503ec04b56043de1e7c52a61c559754bd369305f2cf46b08f12b82f72d4f21f4ad9d3c6041055d672bc9d5609444525589a61cdaab9993b7ac8021bff58587e49bc4ff54c5334b4aa04ceb58e1cc2e6addba000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010760ad18c9ac26e70207c991cfbd27a32b5967936b2837b2683076a4e99127d52cc4fb1a1da32139d699ced91bf11ea892ddd05017a18589728968f9f9d536c4052c7a4b999a0c714fb3838e4fdaf335abf57722c199ef1e97fbad24161d43ff09a5ada1841f6385694f85f563040272166ccd992561d4be1905e4b04b1ba4e101718099010a3934cdc769d1425814428d4327f2c3c3b1ead774c8fd403734ba045fd98bddb7e2932302f5f9d9bfdd354e42feccfbd28c84a3b8d25c3715998724619d4621f61b24b8c0e95379e06ed01ba818214cd597b4616ffceec073bad1110ac5bcc4d5c83c48739d4437cd3baed88bc89fdf9ecbc999ae248566734c7e1b99e72ddd961baa5bca7a70d3e84caadf3b90a0d148578be66f8489a81913041d4341b1bd2dc476b92aed01fde4dbafc15ec4d07bc5e9798bc5274476be3aaa120e808fa0f84b166adc8e57354b975c6e1478348d478146082b80e7559ac7b91ef847e07001db5a0948c16229fbab1ae71733b6540fdf86fd8ed5ed3f08c32c235a8c84422e5f34fa6497ea43d306b4ecca18ce4d2fc04a6c615ae6a2fb6d5a191bb09cee240caec7ce12f8c5a16c98314f0e7a8acf25d81489087eace6d7fc0d164026318e13faaf0a78ae75df8c38f2bdb213ea64e8b011a526205cb088e112ed4af9a885f5e8b45798a545dfc6690865129f70cc1ec24142c187558c4c1b33bb0888ee61282bc99f91dd8279c41d3b07adf4b840cc64130fb438588056bd1c46082cf3f491356452de61551c6bc05df209222738ddfa3a0e89966dc014870fcc90837e6a376803ecc0324bc338ad97b30c7b36c66b7af34d894e670b17931917a572e2b2cbaf998a6cbc6afc69e45802fa4dd4ea79be39b3874e3e600b6a124e6d1ef3e389b8e08f55964572b6828317acf7948740bb51223b91d12e0aac1eca3666621c66fe750078393f7e0d3969dcd73f9992f827016f83cb03fb0d5d12e65990860c30655a032e7168dd75163127b25fc95010b2d7b0b40cb8ccc04507a2016d639f3e3ce6690ea707a37ec81c8d9ab766af13ee84dbac8bfe308c74213147c7b570cdb40c356f97aae83e63c26a91c91052219d67b0e3654e5f2ab70cf90de020fb82394c55c9e4183c6c3e9995cfc56b537a3f0ab96678353338652fd6b1fb0a83eb3a763e9efafed2bfe2950cf6ee07de8fbbf33245ff68ce32451fc64b8c3617c20570f87e3e4da00c4b276e642c42e70663a3016ccdce9929743344b8c61048c76885f1f4ee8b800fde926d69388c2ad57b64bd3c061cf35c4b140d8b192b61d5345d33054d8eb0f87601a97eea9ce8decaf8388700f8d5bf391c1dcba41a8810f7dc103d62737c53a6854236b3c81931996a0d471a6a84a8c10c88865a8eb216e3e487fc418bf83391705647fe57a96046fffa878b61db92db04f4b8f6ee2839007e0bb7db7942b693b5d391080fa9e34aa0c5445aeaf63b232fead59b61b0fceebf86bf5abfe4d6b2d8910f481d1381c7c36b4ead53f4928331dc25f501630d2e48eb8edf1dfc9737c6c9279b04d8c812dfaec6fff2eb44f325d4777c0b825f17d35e00c50ead1f2ad3d7b534af4831421d8d58598eba46f80de03bc54a5e2a8eeb2dd4938559fcbad37981b06187899e55d8d7bc718bd5ae283442dc2e0136f31153fabf9c8f50389a9a21381f808d092d67dd0dd92560a62f1ae53e1e1dae8469de5d62c86117214796456f495a1e208331146b0026ecef0618dccd5a5297257a23930af252bf858feb09566d4727edf81a8538bab48a55170cfb8424890bf12df93d1e16433920fd9fd3b9c02569e85b6ca3390b175db50960208b0504fdc274347b0795a75f303a2930eac6849b74a517d7a7422567ba39889d96906e7066b1cce979418b21540962fa7b70a876ec682ec5d0b694caf10aa32f3b2cf3a352ab23a36a5e1d5c8ce8c86ee964e2002cc4f02d5996b4359623bf8b5dd5c935db047f32c129024335ec6dca76ed45758bb3e7858db5b3e07d16087d3c519923bf3c1f0c41c7b9c5d7adf3b92095b4def697be454a2eb5c48e20acc0c159c508fd13a7eebf79f9beea130b5a9d499f779b9608b5f721c1e4ba14e04d83cef452b040d55522db09b9d5c4ffa0405a2e357c64032b9c8fb37c1f3e2b3ae4c5b5b81ba2679aaeac42446ba2e10fd8d24b11b56e59bfc4a6a832d61b8c480174d49106e28c144c903fd032d5027ea718db13bf52cd70214d89f8b708ccf4d3a5e93ecf17c6dce5a8ee2a604a4de7693506ce6caa2463287a5d817937330b2c5a16c130e839231a5711d59fd7f8b192d4462aaeef08cdc485a27e882c00c8223d8e3a0b76e2507c4ca6d3e17385850e0922081f52b5efca63d3875d13ff37ddc271c5f4891daf83b3592c1eaec113ee002af0fc467741229c2c78a41c03e8ab33c72239526b926d7f422366dac7ce5211c33d49d2061c2cf321a4ce23fc1754cc38ddc6ad946d9280bddc99477ecaa9f789bbd1c72714c00cde5b330c138b5802e3ab1e9c19dc237c4ab1020159d5a246364039e7c42b06bfa8380433ec74a7fd1c54e163e623dc83b54efe20ecc359c316b8e1b16905e64057c7fd08ccf4d3a5e93ecf17c6dce5a8ee2a604a4de7693506ce6caa2463287a5d817937330b2c5a16c130e839231a5711d59fd7f8b192d4462aaeef08cdc485a27e882c00c8223d8e3a0b76e2507c4ca6d3e17385850e0922081f52b5efca63d3875d13ff37ddc271c5f4891daf83b3592c1eaec113ee002af0fc467741229c2c78a41c03e8ab33c72239526b926d7f422366dac7ce5211c33d49d2061c2cf321a4ce23fc1754cc38ddc6ad946d9280bddc99477ecaa9f789bbd1c72714c00cde5b330c138b5802e3ab1e9c19dc237c4ab1020159d5a246364039e7c42b06bfa8380433ec74a7fd1c54e163e623dc83b54efe20ecc359c316b8e1b16905e64057c7fd2dbe6d83ddfab2bb8ed281dd777263c51dec4d6493a42f57b175e1d9c275616918016098aa02665e1acfd881bf89573a1e3d6325e54235c9d8ace9a6067e91ef1709b395ecdd7145b01f3db15cfa8cf1b8327eec8beea5431732cb0848e630a222fcff711ca6bb32171257895548f0d889e96121e743e2acc701e0bb637c5d8c29efa948873b237cea7f71480c82ca90ec78471eb81ce2d11c5c552cbe43a25d2264d357438fb89f37e5fee76a0cdab29544a76f2251ab429b0f912ab7e173d80db72d54f6093bf930289ac42a632f2216f5bd7b7aa729862b13fd3219604cca1c5f4dbffbe6576f0255b6599cd37534c848ebad823064851127b68e34295bd522aba35109eea12a40c9305d1480f15c9cd1440b7b609eab7ecde1880dde65d424bf8c2e873649f2b2a5b84546a972d22f75eaf8ed8750b595f7b412c3dfc6602d8e4d9c16293818dabb6eb26c60141d23eb2ba8fb2608a0b0af48beabd2887d18654bae8b4486298ee324b0708e1ee6e4b6b13e16e4ef1854e3b4a5e5a7fb333b37dee63527dbfec10e40712b930f496e6e65a6f3071d9c69b1b4f7f4a46df805019ff63956de6fce1dcff4eb2db7ed7a1fd4b43cc6e0a4f97e668b960510872d8e4d9c16293818dabb6eb26c60141d23eb2ba8fb2608a0b0af48beabd2887d18654bae8b4486298ee324b0708e1ee6e4b6b13e16e4ef1854e3b4a5e5a7fb332133e8bacbed959d0f40c7302a229f326305bf7160d27ab3e00dd72da02a7c61319845f37c72b97008aae355a947b5187f1014cd777173f3c381dae3c330e4ec0f2fc9e17b674ac793e1c82b647357e400120e0cded3ded8473b2daec2b1922b0ff0e16c97c3e061a66f5289e586a1aa1f3382c7c144ababe16608e016cee555000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012d2cedc84412c4a734bdce8d6dedbab0b55a5ddaadeb5f643f7f2c0485677c6d064174421ef1bb06548cf646f2699564fc42c0a26bbb353d3b8ed5152a28e21a23bdf36eca6f20c8d11fa624423cd141c56616c83f7e9ee4cf12e6f716569f8205f20ad1c18f5994eb0047710d836a4a62b50bdccdd9c54099311c1761389b8b38cf0f98b9f9b971afb3f1e36d611c1d55fbd054d47d476fc1dc94fb997cd62101771d48cc9f94c327721eb4f972d56533204dbf03b163ccc7f3352d8e3befb72163856419400c506ebfc41c85ef9057240a302dad62cc68ae56c183f5a8167c0e95bb81f6e9cbe0e60f55c9f10484afa8330713d5f646e665659ab3f8103408173d296b7e3fef5c4fd72dbb8fc10af345c7ec95830f089755bdc0f8236fdaeb1f562a99088b04a8e96b2206dcc6f81a6347f126a78a2ec78ec3c17a37989ae136c7b92c02ea68573d662308971a613b2fd84a7c5a6027e2168338ab796c299b1f8e776d934a1c023f47d122de7a50e9ad451816a6808f41f4c00281aca0219a20c906740bf2bab89e72e288adc7a24a54ce34ebfb576f790c8db068a4dd883516a87ed2c54f85f26a2d7263c4f659dadeba5c3a8b167b04edb8ebdce169715b0cd3140add2829119fdc1c746d769bd6e96908ec74e99a5496e81a9c633959cf095071ba003a5359e72d3894ddb998b6f461f84acbc38566d7f947df6e0a320d0ab019acd8522239f2adc5a4097e09052feaccfd8f6d38f39d080e80e5622c94353ea813543a561cca22c69994bbf21a927f280bf96c37e98393e0a55031bf5817d58e18f7077c4e6912e76989048873f2c72bf514637717eada865ef0668df504668c7eea107f0dc8a034ea611eb680cc277fe92e5edc1ae952646873fc1d1a14b1ccb571f04c522de9ced868e1b6f314d34d98353bec22ae8a5873d8a171292cc3b8eccba2a3d8634fdc3bb0e34ddee1108428a18e4f763b9bf1d3df5ddec71d51be2cf8dcb8274683acd95e11617e874d10dda269400b71194216ff31f29909e8a948c17d31f0f4d96a37f4fc72ab9c23aa550be37a730688f1c15c8032e62fa0372593215c1340f8825a7ed82d2afa683114dda86e30e89a5be5a7ee30a81c4acb9085c2fe5873ea8ff04a087011822ba1209c27e2b95cf8b89adfb4608607972ad3502ffa8746065f5e4922c26a51bbb5a49a396e5b0fe4e9bb32a76f8818228b818440336a325880c63d7dfe64c9dc15761dd89188b8eca2d278f27e1e0d1c7d7343fd295d4641eef5b460deb6b623e2dbeda5fb04e208e74b5bd878580247f3b925172f34abbefa1088f1364f75a60d8df370f3031d917fe9b7ef5fbd003d4bbfb09e14c3a88c717317af51767ce4d616a85d9944f4e171aead535358298a30ff0a1c3e4a9e90324b60c1bd467efb5de743641c64e8a39c46ca5157b10a3cfa46e16046107cda192bf8b3532ba93595b07e721c839a16abe2a1b5034d1f9b1cd925e0246a1c20d90f6d369de4b3ee1767e14fcaa23d68d792cdac98122b037aab52ea043b3705486250f0760ded1591b17d4d6bcf785d1a2cedbcc9410cce6cfd75e2008ddd6a52378dfc5da1eb64e811170e2339e057a9eaa0e1b87d01fe46e566422a243a96e518bf0e2309a05165654d845015a590397b09fe952009fee2d8544fc9169b3fcb67f4cfea409ff8f08d69befe69593861e11bc65f701d267a2cf7dce9274c9270ce1adf0583b555f4e6284505c37deeb0de4514ad401f0d3b3d0fa7c2622207f30cfd71550fca0a1e9ead2d3df34f8cfc29f386d2710728d584053ec577855336da9999c65f3ef4c1f1a35a459f6a9775e69a82f5971053281880561dab1eb7d0cca2293c1ed084effaa53834b937b2fc26bfb9b0f502a8753e119cca2e2097e8822d6a87008f7f8e36aa3c1dbb01028897e02d9d04083ac1625c1858a2acc925623db3860dc3e6288e72a531d2dbb09b27165bdee51ffbeb1936a93cf2779c8fd974b07f0a9c97d98fd5f557617fb89cd85d7effbb15fbc504406cc1686e8bcb241a9215810abb61045db97f69c650e1f5544fa1d8201ba9189247a5f3e2de308df0c9dcf927916ebc697432520c1e5286fd5aa3ad389a5ce8faa24ec9509988ffbff4c2207603a2709f8549c9622caad88f85459630d7cfdc69c27ddd879ecca9fd20fef284d4954c5231ed6b21766c35665fee150f6ae2a9697aaafc5ed8f10f46c5f8a77cdb52de217bd6efae45508c931906703f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc6202347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de60b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b08e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a873f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc6202347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de60b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b08e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a87000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000b0000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013ec6491753a6df9dd49388db1f1753ffdc69a266f0748b95abf20a8f65cc9814289653772664e5b0687671b6bf39d7359fb26e826dba5e1eb38a7e5233ce8de9155ff29f7d0992088c9b20b255a58866102fb254c5b20f82ff84bbfa157893462b1f7ac0060c8f935b9a328ffd8580f8af3732d9b1e774dae76956e5bf07120d3ab7e0e2a2ad5b030ce3f960e10aa3dc9233db165cd5c5ba88137213ea653f082457c2be8825a49fce7d2fe697a07c834e1498a2ff2636a5e653e8b5efc346400bf2d5e86ba4e45091aad8653583b89ae65d2931d7268adfe5cce3309bb9cccd10fda5aba2d75ab166e0cca6c8c4ed479483bd7cd4f9db3ac2fdf7d7adb1c950209b9c6de16feadea3cbdc9be6aa583c22765a600d194cd0186885816517bb6f083cbeec5e36de6f1a6470030880bdef9f26456b706a217813fb8bf4742020f4337bf87b75540bbc0106c7074996ae1f14c1a5dbf89ef0941ef4cb729f7be01b3ce885e56bcbb6cefd35e6cc844861fb57e89766dc3b1a33201c82801f92f9d231ea65c4e9e714558acd2928da3d3675dfc9859551c535c081a81e79f163baf209157e2d89205913d660f9152e494cb27b7a42b1292441c93f9c124aafcbf12c293ff13332dbbb46d5613ec2484b2be2db4b22b31fce600d7d8f476f1d7526ec1513d7bf8fc2099863b97b5c05af50d4ca71eb13b6ccb5c815bd2bd83f4a0ff0344b100f9ffff50223345ab458fcb028dd259864c2b9297ebcec62b5e8fe033f03ad1481b1a3c72c5736c382b3c04bcb2d1fb76fe935e37c3e130e70a50e6eca28753404c226483eaa05bd14aa4c69bbe15d937dbd2bfd61cf65df36f3b6f476313a4b3154e4069adaecd8d03bf1b05e4e84b2c8fe6d28ff02f50c48bc01ea2c202d2bc1ea579926677fd525d466ab4e90526da65e7975ae2458c0d59db6d06c34b1b6989ff53115569a27bcaf2df5a5ce24e1fd6a1de71ab52215d2492604b119b0a870a9efa9b32e0ed0d073789fe0d4814ad6c0fbffa7dbb9ef4d4d0cd98d104124bf579fa64ae96db0a0d5cf1eb4abfb3af7101b4ba1f2b8f9f85980a511151f0f65216996636648e72ccc7caf96813cb94c3a72e99654095c7c0210c1d00e8ec97b0027960bbecd21346c6defe5f660b38dbe05ec072b7f145833b24d573a60ca090e2aef847602f31970a055785c21fdddf5b8e4882af5d6baf7a2abe43ac0c241ab7743d248a5d6c07fdb76b9e9fe2f62eca4a6e137c192078f1a9f0c34a11a37bf8651ea7467328346742b24cadd210bf96eb351dc21d7d55481960d243e807054c24a4e5c8590d5fb6c0ffe7ccd5129829c67636e5559755d69cdc415de826447ab5db14dc07da870987d8725078f6048ff976c83c95bd98fdf23a90d8ef9df286fc3a7e42f5867cce8e2b201afc1f47eeaa928bf90c13a0608fdb92980d9b72f734e4ec0c9e0dbbf3ffac26f3bdca8db19d036caf234f2ac0f968828695493d7ff52efb78cdb88959f994c0c0b74c13a8a00ef1974a07096a70bf4155acaa9bffb52c7acf71a95f8df3508239426b68deda949f5c777496e2b71702c89b461ec1f50ef1b247777597ae7273f9093e8c42f90f36a1a3b65b759e55f1f69768a3499de67274e501cc7bdb52254099a24420b67dc27a58158b87506ea2fb4bb451a4cef3393a7280e63deda913b28199025ac307be0695922dc3a83760f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5e1f69768a3499de67274e501cc7bdb52254099a24420b67dc27a58158b87506ea0f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5f2fb4bb451a4cef3393a7280e63deda913b28199025ac307be0695922dc3a837706f88f71dc0d453484c90c325d8bfcfbf95bdb026c9a3aec927fbda982cccc190f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5f3ed2ed146933bcce4e9ca0398f7b6a44a81334488416cfb84f4b02b170ea0dd406f88f71dc0d453484c90c325d8bfcfbf95bdb026c9a3aec927fbda982cccc1900000000000000000000000000000000000000000000000000000000000000002e87a8598380ac01e243c847f35a44d5c0f4b4dca076071896872ae74d24914800000000000000000000000000000000000000000000000000000000000000001e3c639e9dcd9b3575eaf05657391f66d9d63570bcd53e78ddc3531d295f14bc24fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a6021551b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a707121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a1ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec20f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f0463930c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c824fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a6021551b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a707121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a1ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec20f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f0463930c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c814840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d3126132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c8360b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c3feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d3d5eafbc96ee19566bf0f54485b4c58d8048d16c5850aafd92e5e7db1c530647342bed61af12a068269a5db3057451efde070145726d01d52f5bc67a7ec63d330d8de0c8564e8b3678fdc6ac135c62295b66f230827010b96ebe77093f50cd8b232e8c181273ab6072cf1e9c8a11b654c69644830c2f5f9948f98b2f5eb063160d3e0f4f64e777b3528529c553f8ab0fec08b3cede187ffa0ec88648ba611172240649b5bb4f4d871d4b6896d7e024258a7958f57c2ed8c48ee412ce7fcb8e22366fd69bf31349f99c35c37b1c54b8ec1ae6392344ecda412b8bb3f63a32c175230086247a469bcb4270f361e752adaddcad693d24550e9e2dd444b25ffba12e20055e73c43eec6fb6affbfc204f597fdd2137a2597633cb71d8be23559473a02ce6bf9402cd9eea8f5df647a4c71b624ad41ddaffb8f877d56e0dc2d6eca150366fd69bf31349f99c35c37b1c54b8ec1ae6392344ecda412b8bb3f63a32c175230086247a469bcb4270f361e752adaddcad693d24550e9e2dd444b25ffba12e2ea5f052917a6daa99c6a0e6a946016449ffae0bda0c1278d5e5d6b2b63b693e07b84ef2185dc20c88214b5382af44e5fbf1d259af3cbb7957c71a8caedf69af1e2ae81d2dd29c5aaf58f64f8a5e3ef676fa559019ed3213e06b767c9da3bd1709bdf445c2064d1b051a48e22cc01ed0e8b9cb8f277f5679dd28c73e6290594e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013ec7a54e87f6d50568da743b2c4630bd8d37bf500e872e4e1c275a79e69b89ec0fbdb94e47d80b00c39594e72690003494eda25bbf1b259e297c3742706923dd2d237a3a12b3630a0336dda2b8c52777ecaab5434fc58c004db30e9e613a09ef386197dcb5abdc2f0a67527782f03fdc53062b18c35cb4182378c1c127a89cd23d44b92237cdca4feb15aed4c26dca4f642f3e3a78ffaa9752a970472f77bfc326f930d6f22fb7db9e570a574b2d0692afdd65666435859664f9c69f64a76b9339c82d98b13a960dca7dbafd9506a4acb4d75a12f08966e24eac4de23759315904523907e3f052ae73478779ca0705438651f4406c1a62934b321e6e5abbb5e13cdf702839ef497009c404fe00b1b04536e527cb8df5a58b7c783afba0fb94a2132399a54ef4f4b95d86f91e3290b590b019198e9a1d7042c78e67af4619c5033938127d1c0de81a774cd0a8086038fd4d9aff344a0bceacc2bafc8abe60cf8108a4fd8febcb74e1fca4cf006fc2199b6e9a578630861995b2b608f94fa81a792a621f5e27783733d3e79a40d1000c7bc07387b437a126f627d5b9b7e64f3e041df9ba35c665b5624f17d8544a1b3dd57055dc290c4d6ece429dd8df0367a4f216d5ecad89e6677f22dc4e94ca3b59280d630f5e0929d84e1f91fe69a698effc34b3e8a7b30a9d0f9aa8283af50e04b0dbaf2c2ff1c07bc026cad685fd666f4e37a95455f20157a377dd68b0f4225596bafb3e9104566ba819ab45e308e0c43603be131f420526b5270946e40e0990c45b3d90c1a2a3fbd56b5d111135097ed03319f63243bc2280ef8c4636f0b535a2a9b1197a7158c173ee9bbe309e620668282c90b1572d2c094c013d649814f46de72a76a306c4e1a0fe161dfbd5aec72202f413d9cfcb502f6f0a04ad70c6f466e3f3adc26eef29721855baa0bb486ba8330771db22d8fbcadd9cefa3f70d4d61c40eb1869c5c56252ce3628f5dca086d13b4d4bb5d26920d6554dc8113cb30f6d80c5747a636488849db49368e30e31908ad0bb61c2db6e2d7b839d14b4fe346b53146b82dcdaef35390ae1f4d230fc20de00ed42a34d2566cbc8a2215cb6c40f6d467bf10f12030999eab6167dd65651a2ff394c241edf20eb016b8c51544f772c8d66d0e556983a2e2c40d8dc91f9a3990b0e60200f8c3bd9e02270df07e51bc4bcb2dd829ef77bb57c6ecc116455b3bd1dac68d0e555569e04f6f57d2b28e3574b944b46e892f19d50701f00a2c2d085824fa21447daeaa45cc7dca8fb70877bfc237686ec6c035b4c753ef1c45f41343ad3ad1f6ce72289a3f0cf1c19f3c08e99364788734b2b53346116ad0a0c73490aab09acb3e0b82fa5c37195d33455240b2528d86835acac8ad29d7b0ff5428ca366175053001a2314d4669fd7c12b1076c99ab774b4a37104b7a05cb007e18d8edd49a19b99b8d9a6db2bdc15f25241d9b2411caf4e7933578b9e4aaac43104004715efb9d4981396663691f54e52da3d70afa1ddef3b11171d00f54bf8f0d706dbc76175de04bbbb2495700b40b1e20f1a3b208a63cac303e1d8c136c68114b3c64383aebe32819127ef77682d2ceab66cd4261d1d868b7f94b550fdaf832b843c2b588742e3a7e22a5977930fa8958828f9d759676baa89d68c767f59c39a88a2023ca96a66d426ff71a60f5cda39d09e0e804aae9f746ae8c64e861640bbfa7442859c2be019e1990a62b34054eb8204a700d6235f03c87f4b6d0d2ad2ae506a9720c8de1491c119a398ead306c2ee68de1e617736abc83ea6062488b02b2aa1ae57ae62fe1b96dee6ebb8fd6f5398fc9486a3fe942dbbb31847f285c38a91926e49caa10649300d14d1d6769f2e3943357a5e261f822fbcf78de897f0b27fc6af819ddfc35c520bf769e4e2a886de807fa3dead2338c6fd39790cfc52429350ab905a0ca7874231188eba1c63841f1a163b1bc8ca536dbb18e579ad42ee18f8f4cbb7655c3a0d398c5940dd681448dedcc5661fe8424d8e59f5edd1a3a1996abd5c4243e7a84d388334f33c304d85959e66675cd1ae9fabd8bae11f72b429b5002228d9f67112ec9adeec6b7b5f468b9edd1408cd2bf3ebc5a5c493b1bd6ec904b6203a9d754458c81ea5fc424c36bc1134825356be592bcc92145761e294ffe5baf63aa7558ff0dc158faf7a69ee6d7a219a9dc4e72f8e2cbb469d730bf77b4fcd6ea8270bf7e5582ccf9d6795128519d594c4e3bb972409576517c333cc7f239e90d1e250d652ea9f7cc12e697f5c2ca7e415f0989cd766d6487350cc3380dc616f2e1daf29ad1560833ed3baea3393eceb7bc8fa36376929b78cc002fe7bb218d4196b942f9e951d6fc5df7dd68ddcf43626ccafc3f9c22f6a4053fd01844de72be6946bd0616ae2903a22a69301e3a0996aece30f150dd095bfc00ef86a7a7c247f19e4ee18e9932edd5d7530c550c50ec1ff6ed3e0caed134193f107958583db80e61b11e7166cd122a4af38ca6fcfc0cfba23ff2e0512ecbe804ada14646cb67b8178a67c8fdfea52d349f3da93d949c9fd2a2363f6a16047d3b525eb9b9349847e875983702015ad2eda75b52cbb85c7bc68afaad95e9fb84333cc7f239e90d1e250d652ea9f7cc12e697f5c2ca7e415f0989cd766d6487350cc3380dc616f2e1daf29ad1560833ed3baea3393eceb7bc8fa36376929b78cc002fe7bb218d4196b942f9e951d6fc5df7dd68ddcf43626ccafc3f9c22f6a4053fd01844de72be6946bd0616ae2903a22a69301e3a0996aece30f150dd095bfc00ef86a7a7c247f19e4ee18e9932edd5d7530c550c50ec1ff6ed3e0caed134193f107958583db80e61b11e7166cd122a4af38ca6fcfc0cfba23ff2e0512ecbe804ada14646cb67b8178a67c8fdfea52d349f3da93d949c9fd2a2363f6a16047d3b525eb9b9349847e875983702015ad2eda75b52cbb85c7bc68afaad95e9fb84093276f657340a7e3410a5c94539eae8676db17fe7eb0ba3209a8521a40c74fe305a3308fad8167a9a6df2ede78645ec437fe1487d563d95a098a17834fbbd8e174fbaaf88be79d412b9672c9d372a7d2fa63a6f94bf935c8b22a38f99927d5421fb658f6072cee97b6dab3dcbac82009de512e271ab489886ab5369ed4941f10e9e371204e023d84fcbffc3c9e32ceb0e6f399a5fb326b02d035825e0f5085519c548ca9f9dfc811f060388dc34312ebbbfedf557f4edd6da91e2bc28bb6d0821b1c8bc5f1587521d72013b3d8a1520cdbc193c6fec62b1b9a395ab530b75b729544df698600b6afca5234fc15afd6487b612d0a789592ca90a2f047aff552920fbc3ff3ee6885787280385159093b42aaa6085bead2afe32ddf04411cf6ceb32240c69883823cae0b119108c5d1d4df05cdd73f40d336d0e29c0dcf8a2f9e91d6a5055453de0b1f5ee004b172161a4672b9d1ed3c3d60b5965531316d1491429830108cb5a02fb92b96cc16107c2713d5b965caf18aaee85332c9caa0d94d41f7dce5a200d7badb935f30a1d8eea9a8b32ad0c8ca25a1bed70083bc2610db02daa6767a4b51a9bea2461d44ccd381363283dcd23986c090b166cf7ddbb00841d6a5055453de0b1f5ee004b172161a4672b9d1ed3c3d60b5965531316d1491429830108cb5a02fb92b96cc16107c2713d5b965caf18aaee85332c9caa0d94d40154e8c614a87aaabea16988e9ce116e552634a75cc315254e6e66fa349fca3b07a2ff213c9730ae3b21322866044462e49baba6b4fae80fe9f33bdcfef7cdee048fa4630c8088aa96ed65de9a8b01b1ac8a0fc666cb409e2a977fa4f63da7702ccbc360e93d4307d1a7391f5b5eb2395766f817629ad11e155f5e14470a66160000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000112621b2e0f004f77e913d011d2a8bdc9856769796b2c3d959d32b08bfe0d5a843a06010a916f03be335e3c1b9f3f2c9c2b8681760b5b512a3a184c8115e25b7029bc6abd193f5894e41e8a99d8cdb2a2c0ce4efb1242fe2bae9832425963112825128cdad0c32f3335bfee5e4264862c929c9ed8de0f54cafff20fdd13890fd72130058c87e3a8b5247fa0f26085d0770b4ef7b8cd4721bebd29f1f08966d37b2b3e1130687fb136273eaf60928289853ae2253db2ef92102ee298e119c843a637aba0ff87963b1b465575d346c58d3cf65b54f2cbce00a56abffdac883842d73a991a3cee42b22f5dd47b9cf287adae5aa8ad4b00325f143b3277663b41d3ea381b944d4222dfe7f6c5ce750410d3c328defa42c106be4888d2cb2416d2ba4028fdab278e1a1594b94c5735869c4903409d09d4bfa2676b91492b984e411356371c30a4a605cc80df37bad9a499c1436ffd97db2f0a73441857fb79a746622e0f73c4bb787f33ca3dbf1f0b970954fed84943c5061b57530db9c6f7bb09787328f331e6cff5f3354ae6e037788b65bc98911183652bb13ef1eb7d4d19507caa0d674cab49a5cdff22455c988a0b1f0698f3fa0165b48821eaee0c1030ca59d20a6107866d52206c324b5e3b0702482e7aa3b211ea0936ad1e0e73faf91c26691b50f729103e45f8a8f347f78074e668d35325c873497a6f19e3fca4a82ffe5f2f0c3f951529f9b02955a2f4fa9b0e6b017c2db1fa2361fd84e3c26fc2f269a71dc40f9b396c3e8652b7f78bdcafa6e52d258fbcbee612846723f0fbdb8b634b311bc8489d743f8fb50d77ace6dfb8f4b91587d83c9c39237f11aed677880aef1b9ffc7a51b552085a29ae2fa1aad055f0bb9c7a01d30fbd7bd377a143cbade10b3b1d22925f96269448b9d712aa1bfe6d613545d522b3f9133662781176f5db3e9c28fc22fe64e088786b7050d692b101933e57aefc2c47c218416553553f730527017d7867b396fbd14c74c1ecf52480e6f15ed99540f9cfdde049fc6420b113b869f29107937dea9949a134819f42c31f8d99230a4400d370eaaaed50b00038e8d5e280940a991c83e51f11239133792411d6d8188fd8e26b757c7701d3ab39bd0d6cebf2815e5be7dffaf66fd546e9c3c7ff565586e0608e0a4bbd8810f9015d1ec612b211286ad8e26db0617af03aa337a9d53913c0b1bc2fe6f923842a380cac2de0871295adbe9373343bb668218d3035d4d8b7002b33006d11b64dd40c24f074e62f32fe9b94d6ed6da9024695c579502aa71d572f79a91428f86ea529206e8c34958acbabfc433114aa3ac5a3717fdf7e03bc1f6e21e219aca55a193f89912010091329c4e44f1d96a3b273e4d172d8829182f112ebe5d19b9c4a7706741a1752d3d0bf4d5b2aead505fb602ec41cabd8e1806d61d106407f9222dd2c87eb10e92b36460ed27cc615c1d2e8508f4cae67df78e1f7ad9daa08333d0d1a2fbb6ef3cf7f5f8aa84f8bca46429184794ca93eb82adf9571e58e9f2e9e020897898bd08c6d193e1771fdfbd8b42dc33ade92b63a64b462077e374788f0af03363ea900941e6fed7948c62ed8d8e0362440ae669011fca84b1edf4c4e34931fb891e31bd45911f08e802228f5708ce436a43589668c35f924b5a13a2604aa3fa8e326a4d2b10b28a0ef842283562daf1fd3328904ea22bb6ab906645cf25126df3e5f9b27d539df5a2d1c98fbb69bfcf94a66296e09f8eb0380c0c0ce6e8f02332e6ff1e93bc474e26bf2e9d8cf614bba4b8d682176e5f339a71e16324469099c1f7353b682e6e6bb0121fb61ca9a385b963db77fcb1c181df55ed8208f871e1810bf2afd12a8ece7a4d167c5c68c39f6c2c60bbaae686dbf57e084c9b9aa3e61ac1c8b93664052c208278a1acfc1b98d7a140b6f9478a8894fc387693b633d7eb38ddd3fe2dd0121bbbebd1721057fb356821004a779b560e0a31e5e13053c151947add8bc338a81165fb72196775f75574e80e303c771923aae5e62e3ca39616d55154a98a33da96f6e1f135a4d8a3cfd2b6996a4574c0b3df05976427e0b49bc43ffde2d44c1a6853602b3689f5f5a0aaeb06d23b0e92b2cc253dfd16838eaeae7d964570ef3f24d2238491c22599105efc1b2e8bb01cf0eecfdb0997f1aed6ccb34cfac55a5b618681d724dd5a87f54a01bab38f11d0d39058ad3dcd41a53fc59fe779381bcc22b068ddbe958342346402495040deb5a5a42bb3403870076cafb6cbb7b6b52f780fabf054594d215b7b6ed9bf098f08207613d4d66803f89350493448494ad087f0540faba6b5030e1451bb10882a8ab298bc2b299810251f6e91fa969189ed584e5bb1a5be81a6c9692a40bb2fcb28a24e6328300803dae0916e05696e7612a7b1a44e5a41807da02696541461ee6a30c06cd7cff810b99d28d9e4f0d7b1a2b987ca783cb88841ef0dd343a7eef7cb2b87efc8f028034662d7261b0f284e5d46783587c34779e27a81ed5127a2c1c7a786e0370fd813a011cc4178b436782d9fa6f4592f9aa949ab45205247aad6f7d9a7aeecb0c8005fee33be874bc987d260590ba6d06558dabe4aa04287e6e29af96721134f3810076cafb6cbb7b6b52f780fabf054594d215b7b6ed9bf098f08207613d4d66803f89350493448494ad087f0540faba6b5030e1451bb10882a8ab298bc2b299810251f6e91fa969189ed584e5bb1a5be81a6c9692a40bb2fcb28a24e6328300803dae0916e05696e7612a7b1a44e5a41807da02696541461ee6a30c06cd7cff810b99d28d9e4f0d7b1a2b987ca783cb88841ef0dd343a7eef7cb2b87efc8f028034662d7261b0f284e5d46783587c34779e27a81ed5127a2c1c7a786e0370fd813a011cc4178b436782d9fa6f4592f9aa949ab45205247aad6f7d9a7aeecb0c8005fee33be874bc987d260590ba6d06558dabe4aa04287e6e29af96721134f3811292d7ad405fa37806d82528bc3fe8435a85e151b1fdf1f84a5868f532008b7021658174cef8b7ca01d1325c91a7d18b8dc8db38e6a8a2490f75e8322349c58939ffdb297410b52868e48d482393c5ba8c24af7bda65e9571f6067293ec2265e2e871c3c42aa04a61ab6490eb7ffc1a8227ee1e893720b35255b20970aaae968344dad601a0e974b48b6f53a435fb17f925868d818d820d31a33d3ca1bf836563f753bc0732ef9f9fbc963da7ce162a9ecfb9a810182c69786b04034e797921114b6bf9b5653eb598cd47e82869db9c0353a6a50561d10ad682bf4d6de1159f510c31e2bdb58a8937762f801ebb4c90351bce938f4d5cb7d1a12584c6cc639ee1a95c55af70cc9bbd6ad497a3afb4701bdc291e70853ce38169bd0cd0509224c365485ce93973ca38f0a305ea394f5a3b1544aaf2cf5c6a1effa85d3d93cc6152ce1d0723f4110cfa7391b74da3f9b403bff477b46e4f741bd55c759c06b6d8729dc607be1a1efb84beb8407e2f7147862c58a219e8161dd9804925be76fbb2d336d4d294b8fa75f90434d8f202c52025de2a12a863616e7c8a191bb8f3d4e353013624eee5d438fe3788494b6586ccc944574d6987f44b8fd895910d20b51122ce1d0723f4110cfa7391b74da3f9b403bff477b46e4f741bd55c759c06b6d8729dc607be1a1efb84beb8407e2f7147862c58a219e8161dd9804925be76fbb2d10fdc50e60d1de7555c3fec661caeadddea3bd3e8acdbb14446a639639c77e4302b53af53a4f5a33651a3c97fe57b150a25fe5a9d48a3f073b6fce1c605c07fc2a53f7e19a5285ea7cdbcf726424f9f0fef5059e77169cd64ecb08acaf69e5141d21f1428e0c44038282c500bc3eb666df1c07a6f94f4b9438c60c17ee496991000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013b792ec8a62bd37bc66f6305f155d4ca5e6d68ee490e15e44e79f18a9a0699ba2c2f8f25fe909eba5a91a8f7a0fc0494ca4555dc766a69559f455038773571d3261f3fbd15e0f906f38336fb111a1c146b07af0afa592ebdb52acf335e100364149437cd3935a7277251460ed981a76b27f8979d8f44e47fc951653067d6e7ba3dfe78719ee04bcdeb08348329f751b45fa9b2768fb31c5100a58c719a98e7ba1e98ad767d063651b8c4192162d7a29d5aca54a628fe9f68bae095c3773ffc140a4b248c8318e51bee63539e0c4af35b6bc7ee3b6b123bfe7bdccbda444386b211e038e318b8abe672ce4f5baf0676d45a83f4c9a9420c21c25a3ad60c60951526d00ca3de21fd96f1cc31a2375cc154f2358bfcb3ab9ae94b4f13cfa22190d03238a2979919e3f33d69ad0d14dd6f75a0c342d37f45cd07767dc12d6088099d3b837c600fccefaf40c33381c54c57d211b24f6a6612f569c470ff6c4ed362b33f617fe0ea1d09d0b8421cb30ab54b7ff942aa6157b25e718768ccd937831bca233a4a144c136db546ff8bfa2d544e1d435d256c4d02c7e67a5a887e21cc567d26df25969daccdf13aff967bde9510f2f2f84470c7b84ee33289df9d69115fc20c70b21d4532aaa4fbc7be206544d6f013e8e02b48fd42ab34bde3387efe796b01baad81185ca62fe2affd93989a0aef8c241dcaa86e88db0f179f9a47cf87bb1e5399d235af9893f78072ae151aec503d73b6c98de19c1edc946b08ef4207da2d6607993efb69eb300e54e6f477c2ad5b0139d3d2cc4afdeb52ce2bd25e29ab00019f190b65ff6d05214cbc02a48eee51c6260bd9bdb4a2ff7aedfa25da50fd013f0736acb2612b30ee2064c41151fa34c96cb0b1a3543c1d4f3b7791490d681ee0d75bd9622ad28259b1381c21f2f6b5b43e86e6d5938bbd2b96ebf084e560284bf1063fcdcfcc48b58a131d5780a5454eb35b6b074cbf871a2ab406bb2fa11eb17e62a90e7cc5dad5ed61bf475a3755e0906fe328f2ccfaaaff445147feaa3d9d78c232c7266c4fa32529ed411cff9948e399a2c0798f0a1decfb32d7bd6628c7c32421f17b8a0d7ed2fe1a7489306308db294d5e67eaf3bb4da22e7de7bc25fcc9d7403399d2b23c3c4f9338e80f658eefc0ad8573fccc117e1884e2e47b24dd09968a4c3e1b11f5353ae227c689b36a0a6e8a53a7fa7b370cdd8ec987e327686aef5a244f08625a85d9f8e548784ddd2fc3bf2e35d757fbd2843289828c1186a453a7d66e06dc8d70d0a2a0eebcb3f234b2136dfea48d8c0b385861a035255fd953d28dbb40b9ccb749926c173dd1c57b98c28919bd12465911019fbe762ace747f18b671b0b89b78d5426a046d5709f6e279564302a15e00a8cefad2d92f726414d296a7c01f808979e796f230e7763c3c585c9163b1cf5054aa71e5f934df53770f395f2a63f6ff57dd597f760f40f75429204d29acdceefe0974bab42ac101c810bb88a9053c1b64ba57a8df76b85c3f119a63c72f1ae18679bd757508cea4eff118f1b4326265c035f385a4aed6cfa1209dd4458bb1e90910e6e785109cd71d52a1580a34cf4362b9f3ab83eccd40a90db3fef66bce8f26875962e41303caccc771e93acc65d875319fbf79ea5ad71c5b361a052aa4e3c7a16440dd0d0acf5aae7cd46cb00122dd51b6032ec65336d70bca758592eaec72d00bb7fc2e5541209b157a4f07db14c925ff34dfef7dd12b7860d65db3275e1946d9faf22816c5da3c46e70a01cefecd33fa64192e89a34d0f12b8c801629bf2bb3a17180260e7d6fd0fcdd56fb4d11bd771a4338f673411a2a5d2c90630a9feb824441a2cb507bff6d4d0321dc039a60aa9001adc183373a2ff6140ae45ad117dab488906e173d94221e9589d9fd1932d096eb043bff1c860e5570a1b3f696972c5b04e1dd412dade7b9051118d927acfc51c639f09946dac92b7be966484ba536b2a0e09106c4e01e729e480556b3eae02700bdf27c5fa1d820f6e24867dfaecaac9cb38b0a3417ea5d7f121399bbcb274e7e8293f788e95dec776fb06dd9b9a61c4d60af260200bd48ad129f695316bd1c3f743919edb6ed34a1db7eb08ccd91f21e92e6254df0baba1d47e1a4ee76c6ce809afc9ff645691deec57aa69e294c2018720ac05322dd47bc4fcb4512b3adf9c85209b458ebdaf78fec4c7533af5409a9e1580dc50624f51cd324b4edd09c20e386d19dcf9f1f5fe051efd3cf4b486c1441b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac24fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a60215507121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a7235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec21ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f30c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c80f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f046391b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac24fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a60215507121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a7235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec21ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f30c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c80f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f04639132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c83614840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d31263feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d0b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c342bed61af12a068269a5db3057451efde070145726d01d52f5bc67a7ec63d333d5eafbc96ee19566bf0f54485b4c58d8048d16c5850aafd92e5e7db1c530647232e8c181273ab6072cf1e9c8a11b654c69644830c2f5f9948f98b2f5eb063160d8de0c8564e8b3678fdc6ac135c62295b66f230827010b96ebe77093f50cd8b240649b5bb4f4d871d4b6896d7e024258a7958f57c2ed8c48ee412ce7fcb8e220d3e0f4f64e777b3528529c553f8ab0fec08b3cede187ffa0ec88648ba611172230086247a469bcb4270f361e752adaddcad693d24550e9e2dd444b25ffba12e366fd69bf31349f99c35c37b1c54b8ec1ae6392344ecda412b8bb3f63a32c1752ce6bf9402cd9eea8f5df647a4c71b624ad41ddaffb8f877d56e0dc2d6eca15020055e73c43eec6fb6affbfc204f597fdd2137a2597633cb71d8be23559473a0230086247a469bcb4270f361e752adaddcad693d24550e9e2dd444b25ffba12e366fd69bf31349f99c35c37b1c54b8ec1ae6392344ecda412b8bb3f63a32c17507b84ef2185dc20c88214b5382af44e5fbf1d259af3cbb7957c71a8caedf69af2ea5f052917a6daa99c6a0e6a946016449ffae0bda0c1278d5e5d6b2b63b693e09bdf445c2064d1b051a48e22cc01ed0e8b9cb8f277f5679dd28c73e6290594e1e2ae81d2dd29c5aaf58f64f8a5e3ef676fa559019ed3213e06b767c9da3bd17000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010fbdb94e47d80b00c39594e72690003494eda25bbf1b259e297c3742706923dd3ec7a54e87f6d50568da743b2c4630bd8d37bf500e872e4e1c275a79e69b89ec386197dcb5abdc2f0a67527782f03fdc53062b18c35cb4182378c1c127a89cd22d237a3a12b3630a0336dda2b8c52777ecaab5434fc58c004db30e9e613a09ef26f930d6f22fb7db9e570a574b2d0692afdd65666435859664f9c69f64a76b933d44b92237cdca4feb15aed4c26dca4f642f3e3a78ffaa9752a970472f77bfc304523907e3f052ae73478779ca0705438651f4406c1a62934b321e6e5abbb5e139c82d98b13a960dca7dbafd9506a4acb4d75a12f08966e24eac4de237593159132399a54ef4f4b95d86f91e3290b590b019198e9a1d7042c78e67af4619c5033cdf702839ef497009c404fe00b1b04536e527cb8df5a58b7c783afba0fb94a208a4fd8febcb74e1fca4cf006fc2199b6e9a578630861995b2b608f94fa81a793938127d1c0de81a774cd0a8086038fd4d9aff344a0bceacc2bafc8abe60cf811df9ba35c665b5624f17d8544a1b3dd57055dc290c4d6ece429dd8df0367a4f22a621f5e27783733d3e79a40d1000c7bc07387b437a126f627d5b9b7e64f3e0434b3e8a7b30a9d0f9aa8283af50e04b0dbaf2c2ff1c07bc026cad685fd666f4e16d5ecad89e6677f22dc4e94ca3b59280d630f5e0929d84e1f91fe69a698effc03be131f420526b5270946e40e0990c45b3d90c1a2a3fbd56b5d111135097ed037a95455f20157a377dd68b0f4225596bafb3e9104566ba819ab45e308e0c436282c90b1572d2c094c013d649814f46de72a76a306c4e1a0fe161dfbd5aec7223319f63243bc2280ef8c4636f0b535a2a9b1197a7158c173ee9bbe309e620668330771db22d8fbcadd9cefa3f70d4d61c40eb1869c5c56252ce3628f5dca086d02f413d9cfcb502f6f0a04ad70c6f466e3f3adc26eef29721855baa0bb486ba808ad0bb61c2db6e2d7b839d14b4fe346b53146b82dcdaef35390ae1f4d230fc213b4d4bb5d26920d6554dc8113cb30f6d80c5747a636488849db49368e30e3191a2ff394c241edf20eb016b8c51544f772c8d66d0e556983a2e2c40d8dc91f9a0de00ed42a34d2566cbc8a2215cb6c40f6d467bf10f12030999eab6167dd65653bd1dac68d0e555569e04f6f57d2b28e3574b944b46e892f19d50701f00a2c2d3990b0e60200f8c3bd9e02270df07e51bc4bcb2dd829ef77bb57c6ecc116455b1343ad3ad1f6ce72289a3f0cf1c19f3c08e99364788734b2b53346116ad0a0c7085824fa21447daeaa45cc7dca8fb70877bfc237686ec6c035b4c753ef1c45f428ca366175053001a2314d4669fd7c12b1076c99ab774b4a37104b7a05cb007e3490aab09acb3e0b82fa5c37195d33455240b2528d86835acac8ad29d7b0ff54104004715efb9d4981396663691f54e52da3d70afa1ddef3b11171d00f54bf8f18d8edd49a19b99b8d9a6db2bdc15f25241d9b2411caf4e7933578b9e4aaac43114b3c64383aebe32819127ef77682d2ceab66cd4261d1d868b7f94b550fdaf80d706dbc76175de04bbbb2495700b40b1e20f1a3b208a63cac303e1d8c136c6839a88a2023ca96a66d426ff71a60f5cda39d09e0e804aae9f746ae8c64e8616432b843c2b588742e3a7e22a5977930fa8958828f9d759676baa89d68c767f59c2ae506a9720c8de1491c119a398ead306c2ee68de1e617736abc83ea6062488b0bbfa7442859c2be019e1990a62b34054eb8204a700d6235f03c87f4b6d0d2ad38a91926e49caa10649300d14d1d6769f2e3943357a5e261f822fbcf78de897f02b2aa1ae57ae62fe1b96dee6ebb8fd6f5398fc9486a3fe942dbbb31847f285c2429350ab905a0ca7874231188eba1c63841f1a163b1bc8ca536dbb18e579ad40b27fc6af819ddfc35c520bf769e4e2a886de807fa3dead2338c6fd39790cfc53a1996abd5c4243e7a84d388334f33c304d85959e66675cd1ae9fabd8bae11f72ee18f8f4cbb7655c3a0d398c5940dd681448dedcc5661fe8424d8e59f5edd1a1bd6ec904b6203a9d754458c81ea5fc424c36bc1134825356be592bcc92145762b429b5002228d9f67112ec9adeec6b7b5f468b9edd1408cd2bf3ebc5a5c493b30bf77b4fcd6ea8270bf7e5582ccf9d6795128519d594c4e3bb972409576517c1e294ffe5baf63aa7558ff0dc158faf7a69ee6d7a219a9dc4e72f8e2cbb469d700000000000000a00ceeac090e4aed9c63f4aa95e7c3c59dbd48cff4fb4027160f3876c9414683e31422dc0eabf172ea41e36e4ce98112f6366e17b504a9b4d6eaf424dfa484dbe00a7300b160d980495e63a4794efd8ccb90c1dbb8e56f15387290721add720e812cfc58adb6767c3a27fae1c1aa027e2d0ef7be38bd4381c0c8bfb07e5fbcf61638185e242c5b9b638a0e6d6b46c95aad39f760a080daf61ffd3e86bd4763fcd22d7fb5f0078c9ebb0b041deb0334c87357f1a4cd4339c9f94341579d64fb0c070d54b6a24aaaaa9e45c25d7945ced2da7e13d5bddcf7ac8e1d5774afaec9e9be2a1aa2bccca551e5409c28c1b331381e21a5c433c5baea6b1df8ade98e651ad90ceeac090e4aed9c63f4aa95e7c3c59dbd48cff4fb4027160f3876c9414683e31422dc0eabf172ea41e36e4ce98112f6366e17b504a9b4d6eaf424dfa484dbe00a7300b160d980495e63a4794efd8ccb90c1dbb8e56f15387290721add720e812cfc58adb6767c3a27fae1c1aa027e2d0ef7be38bd4381c0c8bfb07e5fbcf61629b45556af7917c24aebbd8b412958233d574c98415bacb27f6e8dd7ded630d2241678da99960f76ca3b12ee3edb4c2c390aa003dbbc24a2cd82f6e3bf67af1a38f7e423f82c8f4aa3bafe6967a5c256c616f5a6f9dd61d5135da69852d1057e3e77753b1f236d38e2a387d1915a48a1fbe93d46b2222e3fc11facedea5dff1a3aeb603786d20695b7c8257629cc0fe8c91641990c76a719e47bb09be36fa968233d96a4577669331e6160d44caf56b9e44b257d11e1a2a21e6b1fa9eb2d10932a1aa2bccca551e5409c28c1b331381e21a5c433c5baea6b1df8ade98e651ad90d54b6a24aaaaa9e45c25d7945ced2da7e13d5bddcf7ac8e1d5774afaec9e9be02df8b981fcc7145707c08793b0828c6a3f06faa8798c78d640265fb92be70cc12163e6b4864f4013960616fcfb015eaa67e6cfae250bb88d4e5c6a741f94bd432406cbe974a88df71b18b5a811babf87b09d3fb4811577b53aeff489966d6dc052eeca0800573a414acfae077e45f0024afc5f65aa13f7de7a12350a3c82dbb3cc6291bef4d74e21d11e5d3d4c191a34349e52665d4616f548e6002c250a89e07fccf135a086ab1acda61eb1d70f69d8e316f37387fcde21d86d239dab117c52295bb64d2a13de614231b1a6adbd5b090d3af87dd9ae880d9325ce2962c690614d99dfa44aebe9d723b6b208e2435480ee5ea69c517ae78621dc5b6a7029b912272d5aa7b691a1e163d0c4150ed5959c44e0ebe43916d8a601f8972e0fda5b32038dede95005e45bfa19963311d8f09b1b1990a5da33929e3c44cc2a1e5385e31faa7d978de83395a34f50a8a96df0bb3421d049dcb0e2feef5a14b3648a7e70574b1859e71794a2c2991306e692becec777ced04e788c94c5a814e06e65cb0129173d33f1a8ede6f9da052a3d8a77765aff282cea8862b5c3971a8e63f7d733455a78076e0ae1a4e6ff61d782439d61321ad29e09f1c465eaff4e88eb30c9a0e7d8079a5fa5e5134ba3f2be09220f1b11141dd6fc75236cad580d885f7771028f1d8e571559e3251a4470f186dea06eea8581432eb44c2707aa1c0b7378d87233d96a4577669331e6160d44caf56b9e44b257d11e1a2a21e6b1fa9eb2d10933aeb603786d20695b7c8257629cc0fe8c91641990c76a719e47bb09be36fa9682a1aa2bccca551e5409c28c1b331381e21a5c433c5baea6b1df8ade98e651ad90d54b6a24aaaaa9e45c25d7945ced2da7e13d5bddcf7ac8e1d5774afaec9e9be1ab9625bcd06fce757b40005fac7b5d8ec99e0652adb9fb1b4bdf69d818400900376c40b8bde3deb482bd801fbe4d31166171932fe487dbcc452a6da928819f82f5e62ec5aab8f0cf858bdd252f9fa6f0c996ecb54b98574453dfee55b35dbc20810f672bca46d768e05c868a606108993202b264df91184f61223b3e1f928d51140b43b09811dc78f617faa7b682ef0889a8eec92ca509ac9c5d75b4d1dea323e877c97cec9695442eebdc9730a85587f236889a14428a1c39fac61bf50548228379c8e887b74ac0fc8a632f1ecaff32c6891e06cd0229430b87ea226ef3e650f37bcd08ed487d77695e00807135b057351081135e274650a97a3f7163fc6323a06847a9f6df7452019b769e953709fb6adbf8573996772e760161f9ab5d93f2b8a600e19dd77cfab42822ee079903913a51a6a3c628bd849c8ca1bcc39cf0c0810f672bca46d768e05c868a606108993202b264df91184f61223b3e1f928d52f5e62ec5aab8f0cf858bdd252f9fa6f0c996ecb54b98574453dfee55b35dbc20c85d215d1deadf053c2c66afe33c1bbd9594408ce3e52dda16d3eb34ea8b23027730807680774db45290dc1d3d313be3bec9808d6d3449f7b66bb431fe4d1ef0f37bcd08ed487d77695e00807135b057351081135e274650a97a3f7163fc63228379c8e887b74ac0fc8a632f1ecaff32c6891e06cd0229430b87ea226ef3e650cb4d80e3dda71901d5c24dbf0c209d88ccede9fc316138c09598a860007060932493ab28b0058c383f3a505dd84f7a9beb9a08a77b5cddc2ecac0f0ddf2fc6714d99dfa44aebe9d723b6b208e2435480ee5ea69c517ae78621dc5b6a7029b912295bb64d2a13de614231b1a6adbd5b090d3af87dd9ae880d9325ce2962c69060c85d215d1deadf053c2c66afe33c1bbd9594408ce3e52dda16d3eb34ea8b23027730807680774db45290dc1d3d313be3bec9808d6d3449f7b66bb431fe4d1ef0f37bcd08ed487d77695e00807135b057351081135e274650a97a3f7163fc63228379c8e887b74ac0fc8a632f1ecaff32c6891e06cd0229430b87ea226ef3e653ede4b82e20d30e60b8bb2269b61d72d46c24c6078c1b943b0f63e1ef5404fe73717f13be71451c84a898f00a5130e46822633874c937f3c457eebc5e77d93013e77753b1f236d38e2a387d1915a48a1fbe93d46b2222e3fc11facedea5dff1a38f7e423f82c8f4aa3bafe6967a5c256c616f5a6f9dd61d5135da69852d1057e353fe47d3ae28834800421cd043114d86bcef0026e4523eb728df28c818819be35f48fe02e251f37b85106a85c014207d93a197d1cca4859e6745215f03d16df14e9241f8c41082e90b6dbf772d49284cf0c037e46e6629128e5d3964c5a94ba2286353f8b0ef454f5a7aa43862b7873d0ad96735bcc3468126a4f02f0d46fdd1b4c3ab90dd5ea9d4f6d6c14db28a29c60a14a857d36a90ec46911f3511795c214bbf85cadc4e37dc42723144d19736dc557074674dbd11b645e596a3120240e0ef718040c695441666b9e99a6a4482869a8c87600e634e5267414b4b7cfb6d72878415b0ae6a8421ff2e7a1525bc2d03610d17ba1cc621414dc0de4855f4dc032493ab28b0058c383f3a505dd84f7a9beb9a08a77b5cddc2ecac0f0ddf2fc670cb4d80e3dda71901d5c24dbf0c209d88ccede9fc316138c09598a860007060914d99dfa44aebe9d723b6b208e2435480ee5ea69c517ae78621dc5b6a7029b912295bb64d2a13de614231b1a6adbd5b090d3af87dd9ae880d9325ce2962c69060ceeac090e4aed9c63f4aa95e7c3c59dbd48cff4fb4027160f3876c9414683e31422dc0eabf172ea41e36e4ce98112f6366e17b504a9b4d6eaf424dfa484dbe00a7300b160d980495e63a4794efd8ccb90c1dbb8e56f15387290721add720e812cfc58adb6767c3a27fae1c1aa027e2d0ef7be38bd4381c0c8bfb07e5fbcf6163455a78076e0ae1a4e6ff61d782439d61321ad29e09f1c465eaff4e88eb30c9a129173d33f1a8ede6f9da052a3d8a77765aff282cea8862b5c3971a8e63f7d730e7d8079a5fa5e5134ba3f2be09220f1b11141dd6fc75236cad580d885f7771028f1d8e571559e3251a4470f186dea06eea8581432eb44c2707aa1c0b7378d8704889b1c3c4749d810017f9a4921ca2b3abe1c7a065fbd59e71ce9d69b279ebf1397f2ec4cdbca2cfd13ab78e1a087beaef6b2b44d13a382053dad700cbab1f32b53d83946867cb5f682f3b3a7c991c6737dbf8225dc2a6dfe33d64d1897de090c1b8125d0c97fcd8fdb9287513679322c3bda6f7cd66c8b3d1c4c4c2497268e0ad76b7fdd1c3db6de7600e2160e72315b326c840972b993f72d19d7db0b4eac363deae724aaf3ccb6e76b1a28602f2e4bd1bf3b2e78b0716f288da61d0d96160574b1859e71794a2c2991306e692becec777ced04e788c94c5a814e06e65cb031faa7d978de83395a34f50a8a96df0bb3421d049dcb0e2feef5a14b3648a7e712903ac3c6885a24eee7a589ed94ab58e48180d8f467c69961f54f1cc6f0bb811051f0e40626545e0e63900d9b1b2fac5cd3aac59e6c34d2c06673e267af8b850b4ed7b8baaf8273f38b5298b410a775504025338b97f5bed1bb04ab29c19fc32c2081a65ca07a0f92d333a244ef63834f7974be171aa13a69951dee136d64d43455a78076e0ae1a4e6ff61d782439d61321ad29e09f1c465eaff4e88eb30c9a129173d33f1a8ede6f9da052a3d8a77765aff282cea8862b5c3971a8e63f7d730e7d8079a5fa5e5134ba3f2be09220f1b11141dd6fc75236cad580d885f7771028f1d8e571559e3251a4470f186dea06eea8581432eb44c2707aa1c0b7378d8727730807680774db45290dc1d3d313be3bec9808d6d3449f7b66bb431fe4d1ef0c85d215d1deadf053c2c66afe33c1bbd9594408ce3e52dda16d3eb34ea8b2300f37bcd08ed487d77695e00807135b057351081135e274650a97a3f7163fc63228379c8e887b74ac0fc8a632f1ecaff32c6891e06cd0229430b87ea226ef3e6507fccf135a086ab1acda61eb1d70f69d8e316f37387fcde21d86d239dab117c53cc6291bef4d74e21d11e5d3d4c191a34349e52665d4616f548e6002c250a89e2295bb64d2a13de614231b1a6adbd5b090d3af87dd9ae880d9325ce2962c690614d99dfa44aebe9d723b6b208e2435480ee5ea69c517ae78621dc5b6a7029b913d4a80a442b307f7786bdf4ce3f51b721cb694c39c3ca2fa5544af7c8f4765b7166e573613e2d3d4df3ba32ab4425846da54ecf84ad0f3952c2d62d9697ca34c2878415b0ae6a8421ff2e7a1525bc2d03610d17ba1cc621414dc0de4855f4dc00ef718040c695441666b9e99a6a4482869a8c87600e634e5267414b4b7cfb6d734fe695450c170f3ce3ae0e079f19f23ca3aef39a0715ebec05d08f3863de4c707db86480b73fbfadef39a502a8b0951d9f744a189670f892ef30e2e7fcb53ff28f1d8e571559e3251a4470f186dea06eea8581432eb44c2707aa1c0b7378d870e7d8079a5fa5e5134ba3f2be09220f1b11141dd6fc75236cad580d885f7771027730807680774db45290dc1d3d313be3bec9808d6d3449f7b66bb431fe4d1ef0c85d215d1deadf053c2c66afe33c1bbd9594408ce3e52dda16d3eb34ea8b2300f37bcd08ed487d77695e00807135b057351081135e274650a97a3f7163fc63228379c8e887b74ac0fc8a632f1ecaff32c6891e06cd0229430b87ea226ef3e6534fe695450c170f3ce3ae0e079f19f23ca3aef39a0715ebec05d08f3863de4c707db86480b73fbfadef39a502a8b0951d9f744a189670f892ef30e2e7fcb53ff28f1d8e571559e3251a4470f186dea06eea8581432eb44c2707aa1c0b7378d870e7d8079a5fa5e5134ba3f2be09220f1b11141dd6fc75236cad580d885f7771036274e719a2da824f12422a7496d85ffac92ca3063479c2382e5ee2d5880b25d18dcbf9606234c6b8b053fb8820857f83d22bc8eae52448373c3cc5965998aaa0a8edbbf99c2f158cee0a27c84c1785adff38c614b6b7e693353ac6abc3d57582ce07d9f7d8d0b2ab77de3be743e929dbfc60d905747189007fc762e80f1ad3f2d7fb5f0078c9ebb0b041deb0334c87357f1a4cd4339c9f94341579d64fb0c0738185e242c5b9b638a0e6d6b46c95aad39f760a080daf61ffd3e86bd4763fcd20d54b6a24aaaaa9e45c25d7945ced2da7e13d5bddcf7ac8e1d5774afaec9e9be2a1aa2bccca551e5409c28c1b331381e21a5c433c5baea6b1df8ade98e651ad9161c909db80e33f3c396a0dc2803f5f90a5721189e0218e7eea40fc02da15e6f027005f4f11ace876f50484f38433ce9cda3a8efb00e8b8c62932950db9533c72286353f8b0ef454f5a7aa43862b7873d0ad96735bcc3468126a4f02f0d46fdd14e9241f8c41082e90b6dbf772d49284cf0c037e46e6629128e5d3964c5a94ba3455a78076e0ae1a4e6ff61d782439d61321ad29e09f1c465eaff4e88eb30c9a129173d33f1a8ede6f9da052a3d8a77765aff282cea8862b5c3971a8e63f7d730e7d8079a5fa5e5134ba3f2be09220f1b11141dd6fc75236cad580d885f7771028f1d8e571559e3251a4470f186dea06eea8581432eb44c2707aa1c0b7378d8702df8b981fcc7145707c08793b0828c6a3f06faa8798c78d640265fb92be70cc12163e6b4864f4013960616fcfb015eaa67e6cfae250bb88d4e5c6a741f94bd432406cbe974a88df71b18b5a811babf87b09d3fb4811577b53aeff489966d6dc052eeca0800573a414acfae077e45f0024afc5f65aa13f7de7a12350a3c82dbb166e573613e2d3d4df3ba32ab4425846da54ecf84ad0f3952c2d62d9697ca34c3d4a80a442b307f7786bdf4ce3f51b721cb694c39c3ca2fa5544af7c8f4765b72878415b0ae6a8421ff2e7a1525bc2d03610d17ba1cc621414dc0de4855f4dc00ef718040c695441666b9e99a6a4482869a8c87600e634e5267414b4b7cfb6d718dcbf9606234c6b8b053fb8820857f83d22bc8eae52448373c3cc5965998aaa36274e719a2da824f12422a7496d85ffac92ca3063479c2382e5ee2d5880b25d0a8edbbf99c2f158cee0a27c84c1785adff38c614b6b7e693353ac6abc3d57582ce07d9f7d8d0b2ab77de3be743e929dbfc60d905747189007fc762e80f1ad3f02df8b981fcc7145707c08793b0828c6a3f06faa8798c78d640265fb92be70cc12163e6b4864f4013960616fcfb015eaa67e6cfae250bb88d4e5c6a741f94bd432406cbe974a88df71b18b5a811babf87b09d3fb4811577b53aeff489966d6dc052eeca0800573a414acfae077e45f0024afc5f65aa13f7de7a12350a3c82dbb00000000000000c8000000000000000d0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020b2bd9166fb292fd068715be077faabd5100a082db2ee30b660a7a840a453295e00000000000000010000000000000001000000000000002057d79dbf8ed8b8aa3585c69adf87ef75ce64bdf75ac79a37fcbc979ba37b0a3e000000000000000100000000000000000000000000000020e4531c0cf3964a849077d3f66aca1c780770dbd36f02f9e591cac1251871b88a0000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000000d0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000205e14be2c5de23e6ed70fd6d842a4c814558815484501d6531472c2a4b9b7c626000000000000000100000000000000010000000000000020c3bd632f94a0f936e286d09638e32d9a2fc3eea8f13d18b4ae707edd67fdf6740000000000000001000000000000000000000000000000204e242999845fcac82f38a2f8827ba9e31d01ad478796f9013f43e0bec62d088f000000000000000100000000000000000000000000000020d1816e01b598e08ee1c459e3283ac87d454a19f2e41f3f85158e9f10b9faef71000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000000d0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000000000000000000002090ff676b9c14f4671a0e91cf403a88fb0b22e7a8a8a370aba0a28e26bcea1ac300000000000000010000000000000001000000000000002020093024ea2eaeb3c5934a41935a11dab2086c3d0aab8084952a99d9f0d224c20000000000000001000000000000000000000000000000207e61af4d68362cc7280f55cf450babaa4c27e0d7b623080a1dc3e5db95a6761d000000000000000100000000000000000000000000000020dede73056e97d895ee544cd1f515e7f872b01d10ad51bde6457326fcf11c7b20000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000d00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000000000000000000002031239eb1c08af680c4f00771654ce894f0d3587f58ea53c47ed4a11c1fa85145000000000000000100000000000000010000000000000020a91a262b04c6a7139a4bd4ed8b0f30807db95327049cf2a6d7b25f8be94e37b90000000000000001000000000000000000000000000000208184ee99edcbc305656197375ced84668d6a6dfe60525a4437554af40db6661e000000000000000100000000000000000000000000000020d4666304bf2809e0fe3311603148aa6aef2cc88395ddc38a022a9c742dada87d0000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000000d0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020eb8d9836cb953c6437c496ece6cbdfdd7243ec51671ccb3af47a85fa778e312c00000000000000010000000000000001000000000000002018c3f53aac4183df50ec2d566e245042dd3e3d71adf78621df52d71069399b8400000000000000010000000000000000000000000000002047d66e60185c2492df2be91f5c8e879243c3ec6d4ebe0b5f2c37fcf0fff4d188000000000000000100000000000000000000000000000020c1a70db1dbbbf1d266cc63410c3e1f798fbc2f00cc35d561bc0706474f565a7d000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f000000000000001f0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000204887d5e2c6d2717d60c83accb5514a0f47e17910c8fc71f978c1948c709def1c000000000000000100000000000000000000000000000020a2502a6ae92a724a6e2a3a94ad93bd71bd29b046475706a32afa43f571c551f200000000000000010000000000000000000000000000002070f93532da12d95bd9b02b2acb02b74a3a532fbd8d1ec178ca7acf3e54865fb800000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001f0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000000000000000000020ebe4d8dc5157df91db0d0995b681cbbf37fbeb89712b703226fea4166f4a1be40000000000000001000000000000000000000000000000209556d77d8faa0780c175114ccc703ccef5e23f99123014f3cb64b72a60e79680000000000000000100000000000000000000000000000020635115868949cf601b309c4df546e182524084c9811bb9ee1fb0b250cc7303b00000000000000001000000000000000000000000000000201d592eaf7b775ac80f80f65ac71600e7b42e34c2b41369815d26559f705c392800000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000001f0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020413728e8c4f675e5ae69c204d5baf909547eab0d0db9a21f9e0c83a4af26c7a8000000000000000100000000000000000000000000000020b1f59360b8604b8aeb5462a45975637ec382c2d69e9898248c3ff0b5c0f84a490000000000000001000000000000000000000000000000201ee947871b7c23ff35900da33157b598a2a0de9b805ba0c5a66fd0f7a777b96e00000000000000010000000000000000000000000000002008ef744cc4c71b3dc0ad6709747a269607614084afb6b3ce67e9224db4721b010000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001f00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000208e23a76fd590b1f4b1a8ff7c9d4908df56bc09305057dc0722abd364823feacb0000000000000001000000000000000000000000000000203ba2c97654de7bfcc8d53977aba10d361172900252c2564628c1c4d0269897da000000000000000100000000000000000000000000000020f5ce7f2db68efde598b83474b5a87a6b370a42d4f72227049cb83d4df11bb6a10000000000000001000000000000000000000000000000204a15bacd4d08e8dc5188fa2617ce3f2048ab093a457dbb1568a132452c1264e70000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000001f0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020f9051b50a21ced87b20c943f4e2c2f753afa0b310bce31df963b96a0c87a200a000000000000000100000000000000000000000000000020c594fd6aef9bf0a9ad32de1c2b21fef40fc7cf55d5778a950bfba5bcec02647a000000000000000100000000000000000000000000000020b4a1b1f3f1cb855740daf8c4833a49820c58975955c04f60f0e741d105e354a6000000000000000100000000000000000000000000000020b705227efab8bbcce7e6efa6e6c2c8c24b0165a04b60ba4382b0c252dfa09b540000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f000000000000000d0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020b2bd9166fb292fd068715be077faabd5100a082db2ee30b660a7a840a453295e00000000000000010000000000000001000000000000002057d79dbf8ed8b8aa3585c69adf87ef75ce64bdf75ac79a37fcbc979ba37b0a3e000000000000000100000000000000000000000000000020e4531c0cf3964a849077d3f66aca1c780770dbd36f02f9e591cac1251871b88a0000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000000d0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000205e14be2c5de23e6ed70fd6d842a4c814558815484501d6531472c2a4b9b7c626000000000000000100000000000000010000000000000020c3bd632f94a0f936e286d09638e32d9a2fc3eea8f13d18b4ae707edd67fdf6740000000000000001000000000000000000000000000000204e242999845fcac82f38a2f8827ba9e31d01ad478796f9013f43e0bec62d088f000000000000000100000000000000000000000000000020d1816e01b598e08ee1c459e3283ac87d454a19f2e41f3f85158e9f10b9faef71000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000000d0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000000000000000000002090ff676b9c14f4671a0e91cf403a88fb0b22e7a8a8a370aba0a28e26bcea1ac300000000000000010000000000000001000000000000002020093024ea2eaeb3c5934a41935a11dab2086c3d0aab8084952a99d9f0d224c20000000000000001000000000000000000000000000000207e61af4d68362cc7280f55cf450babaa4c27e0d7b623080a1dc3e5db95a6761d000000000000000100000000000000000000000000000020dede73056e97d895ee544cd1f515e7f872b01d10ad51bde6457326fcf11c7b20000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000d00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000000000000000000002031239eb1c08af680c4f00771654ce894f0d3587f58ea53c47ed4a11c1fa85145000000000000000100000000000000010000000000000020a91a262b04c6a7139a4bd4ed8b0f30807db95327049cf2a6d7b25f8be94e37b90000000000000001000000000000000000000000000000208184ee99edcbc305656197375ced84668d6a6dfe60525a4437554af40db6661e000000000000000100000000000000000000000000000020d4666304bf2809e0fe3311603148aa6aef2cc88395ddc38a022a9c742dada87d0000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000000d0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020eb8d9836cb953c6437c496ece6cbdfdd7243ec51671ccb3af47a85fa778e312c00000000000000010000000000000001000000000000002018c3f53aac4183df50ec2d566e245042dd3e3d71adf78621df52d71069399b8400000000000000010000000000000000000000000000002047d66e60185c2492df2be91f5c8e879243c3ec6d4ebe0b5f2c37fcf0fff4d188000000000000000100000000000000000000000000000020c1a70db1dbbbf1d266cc63410c3e1f798fbc2f00cc35d561bc0706474f565a7d000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000010000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020ce2da5dd3f1d2499114e62007db0bc8b52860a97086c4d1d9b291f96e0ac9c2e000000000000000100000000000000010000000000000020fc1dbba6f9b455616fa548f07000bd186f0be1060371081b1c952c87cb2969850000000000000001000000000000000100000000000000205bc3e12c36d4a2e20b1b195ac346c64db1219ed22eb08085da4d26fcd4973a5e0000000000000001000000000000000100000000000000209dc48d41a2d4c25b90ae286b21502aabe4177429574808eac78aed0ba9b970ba00000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000010000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000000000000000000020bf352c60784b74b941824f2d63cf3836272db67d7aeeacad2aebe65815faf2a5000000000000000100000000000000010000000000000020426a93f6deffd2b075525a4dae94d94e1a8e6a36b7caff23457ae4cce303aa10000000000000000100000000000000010000000000000020e625f3331016e7cd88bea7a7b855bae1ee013995c9ef355b8748e4878dd9c543000000000000000100000000000000010000000000000020980805126f19ea693dca5bc5ccf2a5596180ccaa904f73633259ef7aabc46a94000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000010000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000000000000000000202b14082c23a02f1d9d6db9546bbf2312f865ca20039d204443ce8702eca55d60000000000000000100000000000000010000000000000020f020441b9681e335c14a2a6c21dd8510b27a0dae0eec61b72fa315a598c8b87f000000000000000100000000000000010000000000000020ddf36e15c6d2cad2a2d13ca341f8f429ea1de4012e969c8489e61f092d7f701d00000000000000010000000000000001000000000000002006ee5d52edd1f31a36e4a7048840c9439f8ef7333453a9f11e8679d7622f8558000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000100000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000200043a3e5aa00392afa1907a58865b4472da25d1bb465711605b4bce58b63030300000000000000010000000000000001000000000000002031a4776534529348397cae2c9d705a8eafe3961afed35fdad2915095b5efbf33000000000000000100000000000000010000000000000020886082a9355e3afea404279c3bebead20b99039dd4aa0b3d0dab726e1e29aff9000000000000000100000000000000010000000000000020a990e84ca9579c1d2e4df0c931557e80f89da355c549b820bd65c57780b190f50000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000010000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020c82ca78efe4b64d5751be30417b609833fac301f253ecbffe41e8e9bee96cff60000000000000001000000000000000100000000000000206ebbae03bedcb30a6ac53ee99b1ba731605aa9a26e3a2462ba854af10e81ed47000000000000000100000000000000010000000000000020e211041d56d70c70c0fe4028f21a169da1cd4ca4e960c648ebea202d6c43674c000000000000000100000000000000010000000000000020ffeab4f50dd382561e76011c806cd6dddf3c589391f5e48ba92af3fc97a82252000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f000000000000000f0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020301b4d516917696285e32354781ba454355eafff4bdecce666c60e53122e85360000000000000001000000000000000000000000000000204588bf4dc76f289ce58141eaaa216d8458cb8d1be94c124d08fddc13ae448698000000000000000100000000000000000000000000000020e4531c0cf3964a849077d3f66aca1c780770dbd36f02f9e591cac1251871b88a0000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000000f0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000000000000000000020f12fc226381ce8e3f502297de802f760cb0f32bb5d1b361e6f513ba8a95476060000000000000001000000000000000000000000000000209e5207dedcc1751d464d0ca5b0ec7453293485e46045e1d8d664665f599454ab0000000000000001000000000000000000000000000000204e242999845fcac82f38a2f8827ba9e31d01ad478796f9013f43e0bec62d088f000000000000000100000000000000000000000000000020d1816e01b598e08ee1c459e3283ac87d454a19f2e41f3f85158e9f10b9faef71000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000000f0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020b99f4182071387551529a9c385263632f437f3bc2b0c054b6a3d44555157ab03000000000000000100000000000000000000000000000020c8c3b0b7b843e6f5fda633ddb5b1cc221cb87cf202273d9001876d377f85a4440000000000000001000000000000000000000000000000207e61af4d68362cc7280f55cf450babaa4c27e0d7b623080a1dc3e5db95a6761d000000000000000100000000000000000000000000000020dede73056e97d895ee544cd1f515e7f872b01d10ad51bde6457326fcf11c7b20000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000f00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000000000000000000002052735365a691582208b58d5ecee8b9fe9b7d821ea55454eb0bf6fc9e1e3779a6000000000000000100000000000000000000000000000020b64d62e87ecb757a8ecbf5f123498416bdf3e454a4dc754743740ab117e026640000000000000001000000000000000000000000000000208184ee99edcbc305656197375ced84668d6a6dfe60525a4437554af40db6661e000000000000000100000000000000000000000000000020d4666304bf2809e0fe3311603148aa6aef2cc88395ddc38a022a9c742dada87d0000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000000f0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000000000000000000209915fbffdbe3d5e2fa4d3409a39045e76b7516f4933b106d291bebdcd63e5b4c000000000000000100000000000000000000000000000020948ce3c71f8a3e63738c63ad7f65e0bd1940222862e86527ec3ba97701942c9900000000000000010000000000000000000000000000002047d66e60185c2492df2be91f5c8e879243c3ec6d4ebe0b5f2c37fcf0fff4d188000000000000000100000000000000000000000000000020c1a70db1dbbbf1d266cc63410c3e1f798fbc2f00cc35d561bc0706474f565a7d000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000290000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000204b88604a6608c6eb9ba3bede044e248d62becadb080a456681805ab480b64a2400000000000000010000000000000001000000000000002092ff38622b2decefcf8307aa018adefdfdaa06fc5a520c0c3a04990f33027694000000000000000100000000000000010000000000000020a346fbbeee725da089a6715dac946ab17533f7a77d571694ca1f1b28abb7d944000000000000000100000000000000000000000000000020bc7cafa2d5bbcd43a2687bac1aaae39ea07c2b052355ee18f7bed28530381a1900000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000290000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000000000000000000002046b4103846ae2c10a547fe76a6b5a371acc433d524e7482d268b79767c7664dc000000000000000100000000000000010000000000000020a7171d4fa61fd12128f5c4965241652c8ddc0c46e8c7a964ffcf0984ffd7f89500000000000000010000000000000001000000000000002052ba89114da2853e8fa07d551806893e486429c35967e90f1364b3d437abdd22000000000000000100000000000000000000000000000020f69c63796b0fc3bb3288db5fc6b6321528bbbae678a35651696d958320b7b7430000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000290000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000000000000000000002070ac9c1a1cc0f370eef8792db4e8a07c0a2b92e6fe6e9e2b6988a0f7d968a20b000000000000000100000000000000010000000000000020c53a0cd0107f66cc790becb38f5fee3c0f9d025124f698f0f2467cde1fbb7f93000000000000000100000000000000010000000000000020512ede82de18eac361b0347346d45577998f11f0951205ca4172f9d850b9919b000000000000000100000000000000000000000000000020907caeb633215ff4129e7dab9f17c9025c93f92b16178fd8678a98fad237f0c60000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002900000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020b6e877a515adfcb592a770d462b43e449cee8c738d16f969724fb575ae8bb0b7000000000000000100000000000000010000000000000020580ef9da1ed5e2babc435eca9ea73f027bf97010b64a6f63c69c2aadf5386b910000000000000001000000000000000100000000000000200df33e0d9ca72d06a434af2c6b972a6b03667095ac1a683b86514e0012239182000000000000000100000000000000000000000000000020f873579facce3b51fb36341332ab2926a95297aa0acd0b4108cefea53d9e1c8a00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000290000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020b09d90014812ec62509979fb5d4af4e69400cc5cd308cd96ced13e9dd3199e310000000000000001000000000000000100000000000000200dbed97830aea5096cb060a71b37c812fde90fb3a125044efa801f95addf091d0000000000000001000000000000000100000000000000204b8c5f91ebd422cdb230fb374d30859759d449e266b2903f6b848cf8e5baf94f00000000000000010000000000000000000000000000002083502f4dae1d1e7cce3b35cd08cd8214523868a7bad81a68fd16bfd40a434166000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a6000000000000000c0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020c85af4484a55018f037779039e4af40967235a50df4e34940d889e279e7db7d800000000000000010000000000000001000000000000002057d79dbf8ed8b8aa3585c69adf87ef75ce64bdf75ac79a37fcbc979ba37b0a3e000000000000000100000000000000000000000000000020e4531c0cf3964a849077d3f66aca1c780770dbd36f02f9e591cac1251871b88a0000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000000c0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000100000000000000201190e2255ff642d9c04a819b8d08e7503ff296909b7b525ccfb3a72bef579c81000000000000000100000000000000010000000000000020c3bd632f94a0f936e286d09638e32d9a2fc3eea8f13d18b4ae707edd67fdf6740000000000000001000000000000000000000000000000204e242999845fcac82f38a2f8827ba9e31d01ad478796f9013f43e0bec62d088f000000000000000100000000000000000000000000000020d1816e01b598e08ee1c459e3283ac87d454a19f2e41f3f85158e9f10b9faef71000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000000c0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000010000000000000020a28d19e90d0c21695d1a99cd46401c2a3ea320aca26e6b627cf752164cf176ec00000000000000010000000000000001000000000000002020093024ea2eaeb3c5934a41935a11dab2086c3d0aab8084952a99d9f0d224c20000000000000001000000000000000000000000000000207e61af4d68362cc7280f55cf450babaa4c27e0d7b623080a1dc3e5db95a6761d000000000000000100000000000000000000000000000020dede73056e97d895ee544cd1f515e7f872b01d10ad51bde6457326fcf11c7b20000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000c00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000001000000000000002092134a195653536c63176080c856c53c435e8ca272feda5da160ef10361d2b8c000000000000000100000000000000010000000000000020a91a262b04c6a7139a4bd4ed8b0f30807db95327049cf2a6d7b25f8be94e37b90000000000000001000000000000000000000000000000208184ee99edcbc305656197375ced84668d6a6dfe60525a4437554af40db6661e000000000000000100000000000000000000000000000020d4666304bf2809e0fe3311603148aa6aef2cc88395ddc38a022a9c742dada87d0000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000000c0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000001000000000000002058f9707780fd27cdd0b9aebb6b75725bea560c2a875e748df961dc1e3240fbb800000000000000010000000000000001000000000000002018c3f53aac4183df50ec2d566e245042dd3e3d71adf78621df52d71069399b8400000000000000010000000000000000000000000000002047d66e60185c2492df2be91f5c8e879243c3ec6d4ebe0b5f2c37fcf0fff4d188000000000000000100000000000000000000000000000020c1a70db1dbbbf1d266cc63410c3e1f798fbc2f00cc35d561bc0706474f565a7d000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000030000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020b7c8e313feed160e8acf05ea4bfb6f176446c2ac0bc9f2abc9b686508ab52f6c0000000000000001000000000000000000000000000000209671522c78c40e86ef0e8a667a3e46003403098881dba6475154303e1c3e65ac0000000000000001000000000000000100000000000000205bc3e12c36d4a2e20b1b195ac346c64db1219ed22eb08085da4d26fcd4973a5e0000000000000001000000000000000100000000000000209dc48d41a2d4c25b90ae286b21502aabe4177429574808eac78aed0ba9b970ba00000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000030000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000000000000000000020c7c617fe5a8e3fcee395b25f5aad1075de8af4c63d02a7a5ccf0ebcc3757baa10000000000000001000000000000000000000000000000201fe587fe304db71b83584845c66187566a5fb7270585460d0475013af24044b6000000000000000100000000000000010000000000000020e625f3331016e7cd88bea7a7b855bae1ee013995c9ef355b8748e4878dd9c543000000000000000100000000000000010000000000000020980805126f19ea693dca5bc5ccf2a5596180ccaa904f73633259ef7aabc46a94000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000030000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020ce056a02bde877e3b53dd1faa6938832c1ed6fadac97fd1c0a924161b6298fa2000000000000000100000000000000000000000000000020254828136b43e34900d85850fa1210c25e9d1c343f57d660963534a5e494b204000000000000000100000000000000010000000000000020ddf36e15c6d2cad2a2d13ca341f8f429ea1de4012e969c8489e61f092d7f701d00000000000000010000000000000001000000000000002006ee5d52edd1f31a36e4a7048840c9439f8ef7333453a9f11e8679d7622f8558000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000300000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020c066efe3dfef71694149148ee6cb2872aefd1b4f2fc9862252abee42af30ed5a000000000000000100000000000000000000000000000020bb61afaca75702079a77cb4ffb618e76255194cb8ac3e09cf817da739cc0038d000000000000000100000000000000010000000000000020886082a9355e3afea404279c3bebead20b99039dd4aa0b3d0dab726e1e29aff9000000000000000100000000000000010000000000000020a990e84ca9579c1d2e4df0c931557e80f89da355c549b820bd65c57780b190f50000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000030000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000000000000000000002051a58812d4ed2697e8b31024f55f4062373f3388fd3d1701366bc11ac7a6b961000000000000000100000000000000000000000000000020e0698d131d704ec64db6c2ee76f3fff3800a90d403f81572de0ab695e257b3e9000000000000000100000000000000010000000000000020e211041d56d70c70c0fe4028f21a169da1cd4ca4e960c648ebea202d6c43674c000000000000000100000000000000010000000000000020ffeab4f50dd382561e76011c806cd6dddf3c589391f5e48ba92af3fc97a82252000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000300000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020dd4252bb6107e816486d4dcbde9497ac5b6d60be375f7c8da919b25a1ae2f30200000000000000010000000000000001000000000000002088b9c36ce6c205415134c822e13277bf26dc808cf4164d31fb3feb408d5a5e06000000000000000100000000000000010000000000000020d668a432d047c9e275f7c7d20e0a761a44ce7e63d76a8974123279ebd303ad5300000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000300000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000100000000000000206945e57e84c96b129297a93301811351561f3d2f8b631c113721e152dde14d58000000000000000100000000000000010000000000000020eee7a3b5bd32066ff6fae493f197ab42d452b72e6653f36c785e7ffcaaef4bdc000000000000000100000000000000010000000000000020a7afa996971e49948edcc6953b8e85b3a85abca1a8ca02bb441959ca7fbddc1e00000000000000010000000000000001000000000000002025513b7f08a347e3b4653b6a5b7b4504d17f3335eb68b911a07580668480ea5f000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000300000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000001000000000000002045af0be380c0e1e58d7424ab0c75e1ba0ee396f9e8e1fc5654fc95433d44e2dd0000000000000001000000000000000100000000000000200478375712328a539e0af75efba3145a5b83977f65fd6f26f2bef0e92f4cf47c000000000000000100000000000000010000000000000020f956d888804e64a270d247562d2e4df7cb3baaff4b906f94b4e64fcb67d3fb92000000000000000100000000000000010000000000000020a61e4bd78e6377780bb7580457ace8abedf45db5c6b1905e0fc76ee6b540ec6f000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003000000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000001000000000000002001c0a5a341fdffb1f03c9b9b9b36cae4916225720198476efd222612d31d43b3000000000000000100000000000000010000000000000020e4d3556944aef39dc24c83873c204349c90de3d0febf5e94f5d30752aacf58d1000000000000000100000000000000010000000000000020695844727e2fac06bb31a161155a39527775fb0591002573a9e4d4aee1e794880000000000000001000000000000000100000000000000201273eb79132092546fe9e443e04ce70d652607cb46845d8269cc51b07a5e2636000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000300000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000200ebaea229f668cb6e0046bdf430c8c0fdf3982fa590d45114806f8013f0d4518000000000000000100000000000000010000000000000020a834b11452e58e60e9d991391a3e2e59588fa25493c192ba98d1d33f296b4e32000000000000000100000000000000010000000000000020b4683887999b2d9372eba712b4bcbe56fe7c3bbf097eb71436f394f19c5e540e000000000000000100000000000000010000000000000020ca0bbcf3ba7d635c190762d1905f0cdb8d6b2af98d668d282ab970819d0796e0000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a6000000000000002f0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000206762968d2a038b693f39a5fafabb81fab3aa9f357a0350c916992948fd26e55000000000000000010000000000000000000000000000002039207a50ee132e79b7d0ce2800c532ee3a79757e9182e86f047b4749e0a8f553000000000000000100000000000000000000000000000020a99ec68e5e702c95d72c271dfc6b7fba83a95d182bfe10c3b55beafee6b02033000000000000000100000000000000000000000000000020bc7cafa2d5bbcd43a2687bac1aaae39ea07c2b052355ee18f7bed28530381a1900000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba3610000000000000002f0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000206a66eb0dfb8905926c23fa9e6367d1d376993dc9d50000669fb74f7cdf2a1ceb00000000000000010000000000000000000000000000002046c654f85322efa17d6f767fbdb262d58f272795ab09da595b797b6dbc104b67000000000000000100000000000000000000000000000020eb65f60cc50d4a78bbd6805dbdb2bf94cc2376e36aa8b971a31f71d4de0675d8000000000000000100000000000000000000000000000020f69c63796b0fc3bb3288db5fc6b6321528bbbae678a35651696d958320b7b7430000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb000000000000002f0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020ca065fdd78dac515b99610f258fe14968d10b9e20f8bb65813195429d99bdadf00000000000000010000000000000000000000000000002053f8d1326552cc01162d03184cb369965f4fe3b3f9288f37fb45fe4cb085e3d900000000000000010000000000000000000000000000002006426e33baa1776913fabf5a4a6b22a45faa4944ecb6ee3596d2a7f071dad382000000000000000100000000000000000000000000000020907caeb633215ff4129e7dab9f17c9025c93f92b16178fd8678a98fad237f0c60000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002f00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020873b792ec4e2410a853e85a77ade2297f0c5052debe2f4a72bc8be27e11aa763000000000000000100000000000000000000000000000020c2c3840e2225f4c86bdad2b4e2fdb543bbc7c0eff9166fd7bb13cfeeaac17bdb00000000000000010000000000000000000000000000002045de5171730c798b920963229c38e2585a2ba74ae374a05c055e8f9ca4de381a000000000000000100000000000000000000000000000020f873579facce3b51fb36341332ab2926a95297aa0acd0b4108cefea53d9e1c8a00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee2000000000000002f0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020363e68339dbddefd48c83175cca73c718742589e41321b9e3ba208909cfd915800000000000000010000000000000000000000000000002088652ad02d50d76bbfaa8b1856252bba2bace61a0c45f2856992f5b6a2c97595000000000000000100000000000000000000000000000020fce731c6ff148191e5989829d154266d461abbe1b87f3bf49e080e482df6295c00000000000000010000000000000000000000000000002083502f4dae1d1e7cce3b35cd08cd8214523868a7bad81a68fd16bfd40a434166000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000280000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020019303facd12ed364b60ea052721239b91d5a11b113641454778fe5b6eed20f500000000000000010000000000000001000000000000002092ff38622b2decefcf8307aa018adefdfdaa06fc5a520c0c3a04990f33027694000000000000000100000000000000010000000000000020a346fbbeee725da089a6715dac946ab17533f7a77d571694ca1f1b28abb7d944000000000000000100000000000000000000000000000020bc7cafa2d5bbcd43a2687bac1aaae39ea07c2b052355ee18f7bed28530381a1900000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000280000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020a1bc29549c1436976d32bde24352a6520ac184cd6c2191d3863c7eea66c808af000000000000000100000000000000010000000000000020a7171d4fa61fd12128f5c4965241652c8ddc0c46e8c7a964ffcf0984ffd7f89500000000000000010000000000000001000000000000002052ba89114da2853e8fa07d551806893e486429c35967e90f1364b3d437abdd22000000000000000100000000000000000000000000000020f69c63796b0fc3bb3288db5fc6b6321528bbbae678a35651696d958320b7b7430000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000280000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000100000000000000208479dbf19ba3d95758587a9b77fcc709fcc518203b11b572bde25687cbc1b7ae000000000000000100000000000000010000000000000020c53a0cd0107f66cc790becb38f5fee3c0f9d025124f698f0f2467cde1fbb7f93000000000000000100000000000000010000000000000020512ede82de18eac361b0347346d45577998f11f0951205ca4172f9d850b9919b000000000000000100000000000000000000000000000020907caeb633215ff4129e7dab9f17c9025c93f92b16178fd8678a98fad237f0c60000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002800000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000100000000000000208347afe8d28617b64b6361b5d4058415807e7dee926a89c1641831aaea7f873a000000000000000100000000000000010000000000000020580ef9da1ed5e2babc435eca9ea73f027bf97010b64a6f63c69c2aadf5386b910000000000000001000000000000000100000000000000200df33e0d9ca72d06a434af2c6b972a6b03667095ac1a683b86514e0012239182000000000000000100000000000000000000000000000020f873579facce3b51fb36341332ab2926a95297aa0acd0b4108cefea53d9e1c8a00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000280000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000201a6a9ef0b96675ec68fd7f287589e1c02658e278567bcad6f703cd378421f1480000000000000001000000000000000100000000000000200dbed97830aea5096cb060a71b37c812fde90fb3a125044efa801f95addf091d0000000000000001000000000000000100000000000000204b8c5f91ebd422cdb230fb374d30859759d449e266b2903f6b848cf8e5baf94f00000000000000010000000000000000000000000000002083502f4dae1d1e7cce3b35cd08cd8214523868a7bad81a68fd16bfd40a434166000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000050000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000202a807ea0bcdaf350e376b8250e11c8d9fb71f170bd45d5708a33d1ef37ccd14000000000000000010000000000000001000000000000002051eb7c5f8572912a00b4d921a0269e737f961978a81975a7117df74f933d6478000000000000000100000000000000000000000000000020e2c28e037d30a9b1cafa16794e336898558e512395cfcbdeb25f5f9c08dba0820000000000000001000000000000000100000000000000209dc48d41a2d4c25b90ae286b21502aabe4177429574808eac78aed0ba9b970ba00000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000050000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000000000000000000020e1753faf8c96a0c70493d4c1eace8f86cb12f9a7513245f0e9c9b29260a20a860000000000000001000000000000000100000000000000204349f09052a312f65934f4c9f6b26ec92ce76cb1f56e10a96c9d72781e25d27900000000000000010000000000000000000000000000002040a8544c04c63db69600b9141e0ac5c5c6f2f63672ad293fbf89e200ff76e373000000000000000100000000000000010000000000000020980805126f19ea693dca5bc5ccf2a5596180ccaa904f73633259ef7aabc46a94000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000050000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020569417ca435ceb040a38404de114ab843f8ef2d32e126d9db99f89a76a11c352000000000000000100000000000000010000000000000020f9f104f3003bafc209ba496c4e4a57286b7eec7b6758f569290514d520472dc800000000000000010000000000000000000000000000002009a92cdc4908f685ce6b1345b92ded1885178ef2a7aded52334aff5467d169d000000000000000010000000000000001000000000000002006ee5d52edd1f31a36e4a7048840c9439f8ef7333453a9f11e8679d7622f8558000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000500000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000204d22dbc9aead47c8c0979b5cfe3ab2d3b701951a48d8ece625026a7a670e54700000000000000001000000000000000100000000000000207138f271998a62fa2399a4e52560f50654a859dd08debe05942136ed27f256ab000000000000000100000000000000000000000000000020e371e374acaaf27337ab92c2b2c57caddfa4c8901247aecc181d0f2d03ab2034000000000000000100000000000000010000000000000020a990e84ca9579c1d2e4df0c931557e80f89da355c549b820bd65c57780b190f50000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000050000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020eb619bb9ad7813b14ca81b91cca3d418b424e22c020f0c9db78feda19bc3661700000000000000010000000000000001000000000000002030e531b71faff116b0a75ec94f7440094de074d30a3e02d6e8f07a57d3767f280000000000000001000000000000000000000000000000204f94e19275c3ad1b0968aa350973ee3c5947aff002b686efe6c16032d7650d02000000000000000100000000000000010000000000000020ffeab4f50dd382561e76011c806cd6dddf3c589391f5e48ba92af3fc97a82252000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000380000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020d5d9e84739c0813f71d0359e99b9765469d7a41ef279c691c2254c026b06582900000000000000010000000000000001000000000000002092254bddc93af51db85c84258645a7368b11c67713d9b7edb7798f818a67b7d100000000000000010000000000000001000000000000002013cba62cb82888bb083b50937d466b49f9391c00299bd77abb46de4352465093000000000000000100000000000000000000000000000020a3c68cdf76781d19db7aa603f4cd91ea38edfc0b5126585e0c4cc27eb1121e50000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000380000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000001000000000000002055d67c076c5d396d33996ca84ffc7f8d71fd9b1d73515cdaa4c72d0551f4e075000000000000000100000000000000010000000000000020659bdac5e12fafcfbfba4939413f2dbcb8f4622495fa9d7b4be9541e24bf3f5f000000000000000100000000000000010000000000000020d1b5b1709939c022502c02de40058bf39c150bc062b6e13ba9efa821c1b2284200000000000000010000000000000000000000000000002081d62fb6f8e3c63bb07414f173e2f1761186f3a609b96be8e54bf144e18bd1e9000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000380000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000010000000000000020e3f22df1ef809bdd780125e0869fc594b795001da2cb5255ac86c869e41bb3d100000000000000010000000000000001000000000000002042ccda5e4f3610e7833759239b87dcb5feb5654641bd57359476edc936a15e8e000000000000000100000000000000010000000000000020de3c1116c517fc559702c15da18fca7713ea045f49bee0d28a5b11b093f744f5000000000000000100000000000000000000000000000020c8c39661891e6889268d1a75425c16fa10b5ce02a5817678bfb61fd4d7ba745b000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003800000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020dcad9ad63ac90f36294e45ac4e2910b6be1ff4ab582ec77d94b36aee2aaec3b7000000000000000100000000000000010000000000000020fdf80980218da61f93fdbe491188fb7f3191a3b3bb5166ce6014e8f20d70673d00000000000000010000000000000001000000000000002096a037551b0b573c983aaa7a75192a672a3c09151e279ffd3c1e0e670d35fd370000000000000001000000000000000000000000000000208ef32cdd20ab9840d12ae9a0d741f7d3f389289d74ea182f48337a1058f3b15d000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000380000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000202317a666cb7ea69255e854e67aa19b531a4a222717cc9440e4546a3fab5d7ed80000000000000001000000000000000100000000000000209e11faaa3c075b6834d4668a36d21b8294c07a039a232c100665d90b3d03bf4500000000000000010000000000000001000000000000002080cf796e32484601f36528ae033f1d268f38cb3aa9d351ba1b0fcd4e2043d757000000000000000100000000000000000000000000000020a79432284160ffbe7605792344dd2c3b75b783de349a59eac5f705dbb10d4fec000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000350000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020940f95c06a507e6f7d898e90b69cf59c322cbc1bf161c7e7708a20e2008daae000000000000000010000000000000001000000000000002019594bf3fa8c4ace4d35341a4d29a3224bf349b4111630660fbc89ec6aac104c000000000000000100000000000000000000000000000020f4d1e64380a2c05ab0dc64ea31b5e288a4325921fa907811ded50419cc51d1ad00000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000350000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000000000000000000002053e10520c89a9d1c8bdf0299253b3e1ca6f732d90152e564751bae242a1ea2bf000000000000000100000000000000010000000000000020758d3cb1dae81bd7b5510b225e37ec1c33d27e558dbe4753d95613ab2950d5bb000000000000000100000000000000000000000000000020ecf960f1bd96e938be9efe0e8178c6faac8e4dade22047baafaa2cc5b776587a00000000000000010000000000000001000000000000002025513b7f08a347e3b4653b6a5b7b4504d17f3335eb68b911a07580668480ea5f000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000350000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020eae24cc712d4f1a65e36209bf029b296466b50798ad83a68022cdfe9d0a71b53000000000000000100000000000000010000000000000020d93941bd50076e052ac499d54a60936db5cc808ce93db11f3b5f2dbb9e84fdc900000000000000010000000000000000000000000000002057231a860f30ab1475bd8cdc0a3b4a8273fc215ab0540eb9f5f6b4129d47a3f6000000000000000100000000000000010000000000000020a61e4bd78e6377780bb7580457ace8abedf45db5c6b1905e0fc76ee6b540ec6f000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003500000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020a1c9ebb7e9894aaf5a518e2e5add167f6b300838e38da25e7147996653a3358800000000000000010000000000000001000000000000002018f7652e6b6650db62a7971a3982b0cb933246f7ee71973244096397d4069a48000000000000000100000000000000000000000000000020e07633752c9a7d0ab4d4825434743a1a21102cdb34ac00f9cb0067d34ffca5d90000000000000001000000000000000100000000000000201273eb79132092546fe9e443e04ce70d652607cb46845d8269cc51b07a5e2636000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000350000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020c0aebb3503b26954be7c1775bef21ec8009433f43163b9a737d5f6404505ab33000000000000000100000000000000010000000000000020f1df539161429e1cffb6b4435a018168f9836656cd0fc0043c6de7fa4ee6ca11000000000000000100000000000000000000000000000020f53683e29b7f89c0854446521e9f08cece64960ee2669247016ed70294c71940000000000000000100000000000000010000000000000020ca0bbcf3ba7d635c190762d1905f0cdb8d6b2af98d668d282ab970819d0796e0000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a6000000000000003c0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020472b2c232ee796bc1ef6d02e4eed1b1ae881f4da980066415be4678b0b9cad77000000000000000100000000000000010000000000000020a1c76d31ef82470da8e9580b7e9bf531be3ad85a99a81783aa23ffd4ca2b5a6d0000000000000001000000000000000000000000000000201d0f1670f4690edbf111d45e385b2241e1ec7c0d7e483f87ab326686bca0511f000000000000000100000000000000000000000000000020a3c68cdf76781d19db7aa603f4cd91ea38edfc0b5126585e0c4cc27eb1121e50000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba3610000000000000003c0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000001000000000000002058876a708a360c52c2d9739916a5864330c1951494fc274d830354de6c5caeb100000000000000010000000000000001000000000000002069875052c379268df062043b906d4b124f5727f9d842fd62c91d1f91cbedc32f0000000000000001000000000000000000000000000000207679149deecdb133a6fb94a0d7ff74465fc3c6693f57f8043b0630b94de2b59d00000000000000010000000000000000000000000000002081d62fb6f8e3c63bb07414f173e2f1761186f3a609b96be8e54bf144e18bd1e9000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb000000000000003c0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000010000000000000020df671214458725a5eaa07c9ba495d0a2d5246b3f96cc745314c646c677dcc934000000000000000100000000000000010000000000000020cde5b242518872447691300cad1ddad8fbc2b2146b8eeb6bb2195d09d32e640e000000000000000100000000000000000000000000000020c0d7bac2d29fe515550469b26c52547108748ccb8ea0ca9fccbce5734f5264e5000000000000000100000000000000000000000000000020c8c39661891e6889268d1a75425c16fa10b5ce02a5817678bfb61fd4d7ba745b000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003c00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000100000000000000205d63b0bbc53756988b4a08a2fb6ba0ce39a6a7f1867e038ab435b926bb3ebe9b000000000000000100000000000000010000000000000020fb24d677b5145543fa1d697af1be5a72082e6e5f210e424fed652e51a8296a1300000000000000010000000000000000000000000000002013cb09170444222793c8a76d1d3876b7475882d743c475bb142672de6a05a9f60000000000000001000000000000000000000000000000208ef32cdd20ab9840d12ae9a0d741f7d3f389289d74ea182f48337a1058f3b15d000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee2000000000000003c0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000209bc2c75454bcfc94ac270f961a31b5dbf809701331b09890ec02bca52668699f0000000000000001000000000000000100000000000000201d7316afec9f3ec58c2cac44ce02d87da3d376e4e35c6e213b47d33053367c03000000000000000100000000000000000000000000000020f724f9908f48731cc2db122190e08a30cf56ef00f006f8ac9b5475671045abf9000000000000000100000000000000000000000000000020a79432284160ffbe7605792344dd2c3b75b783de349a59eac5f705dbb10d4fec000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000350000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020940f95c06a507e6f7d898e90b69cf59c322cbc1bf161c7e7708a20e2008daae000000000000000010000000000000001000000000000002019594bf3fa8c4ace4d35341a4d29a3224bf349b4111630660fbc89ec6aac104c000000000000000100000000000000000000000000000020f4d1e64380a2c05ab0dc64ea31b5e288a4325921fa907811ded50419cc51d1ad00000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000350000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000000000000000000002053e10520c89a9d1c8bdf0299253b3e1ca6f732d90152e564751bae242a1ea2bf000000000000000100000000000000010000000000000020758d3cb1dae81bd7b5510b225e37ec1c33d27e558dbe4753d95613ab2950d5bb000000000000000100000000000000000000000000000020ecf960f1bd96e938be9efe0e8178c6faac8e4dade22047baafaa2cc5b776587a00000000000000010000000000000001000000000000002025513b7f08a347e3b4653b6a5b7b4504d17f3335eb68b911a07580668480ea5f000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000350000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020eae24cc712d4f1a65e36209bf029b296466b50798ad83a68022cdfe9d0a71b53000000000000000100000000000000010000000000000020d93941bd50076e052ac499d54a60936db5cc808ce93db11f3b5f2dbb9e84fdc900000000000000010000000000000000000000000000002057231a860f30ab1475bd8cdc0a3b4a8273fc215ab0540eb9f5f6b4129d47a3f6000000000000000100000000000000010000000000000020a61e4bd78e6377780bb7580457ace8abedf45db5c6b1905e0fc76ee6b540ec6f000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003500000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020a1c9ebb7e9894aaf5a518e2e5add167f6b300838e38da25e7147996653a3358800000000000000010000000000000001000000000000002018f7652e6b6650db62a7971a3982b0cb933246f7ee71973244096397d4069a48000000000000000100000000000000000000000000000020e07633752c9a7d0ab4d4825434743a1a21102cdb34ac00f9cb0067d34ffca5d90000000000000001000000000000000100000000000000201273eb79132092546fe9e443e04ce70d652607cb46845d8269cc51b07a5e2636000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000350000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020c0aebb3503b26954be7c1775bef21ec8009433f43163b9a737d5f6404505ab33000000000000000100000000000000010000000000000020f1df539161429e1cffb6b4435a018168f9836656cd0fc0043c6de7fa4ee6ca11000000000000000100000000000000000000000000000020f53683e29b7f89c0854446521e9f08cece64960ee2669247016ed70294c71940000000000000000100000000000000010000000000000020ca0bbcf3ba7d635c190762d1905f0cdb8d6b2af98d668d282ab970819d0796e0000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000110000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020aa280aedc2e8dfab0553724983ca17476bb280a4ebce83a2eb4b9b64f74ac88c00000000000000010000000000000001000000000000002025fba5ee32d0d9d008535ac6a7988f247a404065ee59ff9a7ab673fd8e76748e000000000000000100000000000000010000000000000020931fc0f60710e5550ab975b9da43260c532daa1aa0981b844a267625739ffb1b000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000110000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000205a9874caea8e9e7872541b46232a9d4ca3ec860a14af4e58996c80c5e6de6716000000000000000100000000000000010000000000000020533af2ef25021e15fe55aca5e4979523d6e65ecbcdb590a881474ec1388d0773000000000000000100000000000000010000000000000020db75f2f16c24e1f86b75a7358eb0bff98736d767e792ba6500dc20c7a0f5b35f0000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000110000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000000000000000000206749c92f83affaea1cc3c48d46c59c6e6d55476a9d2d45fc423f49f3ac4d54a6000000000000000100000000000000010000000000000020b8afb98b9198daa87dda8a04edc3349eaed9056af0fcedb7edebe0393976711f0000000000000001000000000000000100000000000000208eca8e88d782a2c50068f91856cdb198e83fe75b53d95126db0ce5ba952fe000000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001100000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020968fb6868e8e6ce1901bbc4a74360268a93d09d7ee7d0522de2875891fd1541a00000000000000010000000000000001000000000000002052d82acada3026c4c21ecc2d34974875b8167e5120f6dc4a3d2696a6c0e4f004000000000000000100000000000000010000000000000020ef20ce255fff4244508dc0bf36aba9eeda1f94ba8303d6b23520cd52b598e748000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000110000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020a101b2c1f509805a150824550aae8f773f226d7554a3bba7bdd098622cdff74f000000000000000100000000000000010000000000000020407f2fe6361457a84abe1bfbda60edd29b3305f1a37e916f7f923783f031398b00000000000000010000000000000001000000000000002003de737e05bbc77f493cd34846521552aa2f36e8056c458268b5b2cb15e5e244000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000170000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020a0c329674d73730336f6ce60133ccf4aac3865051d354d21037187f6396071b3000000000000000100000000000000000000000000000020864e47462260929d60876a0babd915b08229a85eed60fe22ac85ec61ee1e866e000000000000000100000000000000000000000000000020080b28b1dece6dde43a662bb2943cbbcfb4977254ddfb567d20ec3694d07decc000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000170000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000206ea536af2fd3bd821edd7c84bc064037e9a107cd5fd0d654bb372e1e4898378e0000000000000001000000000000000000000000000000206fd3b782e68eb5fac7cc20822b3858250b376d7e56a4db91bf0cb95ec3c4170b000000000000000100000000000000000000000000000020ace429d6a2e0ab83426a9b9ba04ca6bb90f71e7ceee02c278a82a7859d4bc1820000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000170000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020bb8af4f85876487eb137718690c11c37280284c2b151fac99b8f361ce8974a2b0000000000000001000000000000000000000000000000202141d6e5fd028bcf7861ef8a16b249210fe3d52dc20d20c123863cd1b492a65f00000000000000010000000000000000000000000000002005c7231b545188d801508269d5e616db314e98d0d1d96b4d859cba418919dce7000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001700000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000200db762ea054948c2ec8c739440bf53ea0418ca6842893f345bc8a494402956c2000000000000000100000000000000000000000000000020688ce44aebd966aaa0c0b45729d96bcbe7ef069f1dbd95b956527d6cbc0a81cf000000000000000100000000000000000000000000000020792b54430c2c7a5202334fa577281d00396a0c9d5a6149e8832c12c7a186e7b6000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000170000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000000000000000000002016f906be5610aa02020b6123c0a5b395a072dcbdc2714977f5f2615e64adc2a3000000000000000100000000000000000000000000000020484b1a9029b822ebc27ac439a0f45a04f55b9d4dedb7bacbc5e2a7b131bac56f0000000000000001000000000000000000000000000000208eb0d4e58e0649d2818142c4c7cefb08dd13094d3a575e5054570ef7155a1a53000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000240000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020362ac7a88313f3547caa33e18f1bf2d22be8defe6282b59d479c56f15d583bca00000000000000010000000000000001000000000000002089d1f5e7ddab385cee9ef3c6e039bf9dba4cd0c7bf5968af1e87a54f1c8b98f4000000000000000100000000000000000000000000000020254ad08d8f651887ccdedd4264cbe8ac8a820f273e7e6a6eec9571b2bee83fed00000000000000010000000000000001000000000000002020ca2ebe06b78b863c42ebd67e820162645990710fb2212c31964405270d49be00000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000240000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020d748a576eca49ddf992cba75efec0f1d12f629d58fcde8a33bb703dab645e37f00000000000000010000000000000001000000000000002048d27b60aa9bff8a3ad72fa50e506b89b2c70434429163e60518d3b54dd8d4f40000000000000001000000000000000000000000000000201e4829424cc3731a985d6b9986b78d322139a6d6965ff67e79bdb4abe7107c85000000000000000100000000000000010000000000000020cb0c915a2fbf42f67d8ddb4687cdb94a70ea6dba8c337fad662aef43a1ff09120000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000240000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000001000000000000002028cb827a61cf5bd7ce600cd7f3eab1c60ed4942811ac1915593695bb3dd953d80000000000000001000000000000000100000000000000207295a2c10b1acf16129d092a7b9af37c389c4566a2bf22d8c69e0cf9f8719868000000000000000100000000000000000000000000000020504c7cfdf9b9d8a744d6d07015dc694b3c1e96fa04d9711bca9e89e47aea70bd000000000000000100000000000000010000000000000020ec94ab368df3700c4e485459b45d7544203947bced6933b6d2419aa51552b1e70000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002400000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020e1479132f529d1d3199b01f807de0d91cf20dcad1e7b80585f280b09fbf3754b000000000000000100000000000000010000000000000020d8587c740444d396342bde08fcc2aa14d09b3841a86867a8968a39985c1aae5f0000000000000001000000000000000000000000000000201b51cd96b5e7d3c5907dc40ebc575470d0b53cb58c9a11acee482a80587db2ca000000000000000100000000000000010000000000000020ce508bfa21ae59f4e3a574d7cf9aa2266b30a92dca771c1fb0e1be0bca3e9fec00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000240000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000209c5dc119f411a0ef5642262c45fc391cfca0ded082e37ef7d49b5a2ed9518bfb000000000000000100000000000000010000000000000020dbb5f88bfd82f174b6b75b33b6e1b57f9e8c171e2884327da5b36cbefd7067110000000000000001000000000000000000000000000000202f7c3c123b082e8ba8e01175c4f6ae18dec43d9efebf55f2769ff4eef4d2582b000000000000000100000000000000010000000000000020c1bc4adb66edbd4e3dab7de23832af2889cdfe7d4f7313a79599994c65f1d267000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a6000000000000001c0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000001000000000000002037b6c67d542cc82de1bdb70e49b269e367dd16e912af30b78c822650621202e20000000000000001000000000000000100000000000000202ec5ed8b835c098bcf1fbaa0f4aab5053575fbe2dd675f6a8528d2ae539d073300000000000000010000000000000000000000000000002070f93532da12d95bd9b02b2acb02b74a3a532fbd8d1ec178ca7acf3e54865fb800000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001c0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020d4f690692d3e9a181339765b83955f457fa5d73471c81b01a24740e196531779000000000000000100000000000000010000000000000020e4b2b21638b26d0fbd21e1a61477670910de9d6a5a534cc89f2e66926c92590d000000000000000100000000000000000000000000000020635115868949cf601b309c4df546e182524084c9811bb9ee1fb0b250cc7303b00000000000000001000000000000000000000000000000201d592eaf7b775ac80f80f65ac71600e7b42e34c2b41369815d26559f705c392800000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000001c0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000100000000000000201066782497ccf705d900039fb3b7501efd8697f2a483b80f564d0e896b1215be000000000000000100000000000000010000000000000020197b3fade2da4dccae7c39182e13ca3c80d7ab354bd093846a22e052814766ac0000000000000001000000000000000000000000000000201ee947871b7c23ff35900da33157b598a2a0de9b805ba0c5a66fd0f7a777b96e00000000000000010000000000000000000000000000002008ef744cc4c71b3dc0ad6709747a269607614084afb6b3ce67e9224db4721b010000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001c00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020e9e57568a0eb81c0ea6d261029387a8c42c11b8e68c97a120de98697bd08fc83000000000000000100000000000000010000000000000020ea6edfa94c83df2c0120776cb5622744d2e6b641fe47e78813b62588fad5a6e8000000000000000100000000000000000000000000000020f5ce7f2db68efde598b83474b5a87a6b370a42d4f72227049cb83d4df11bb6a10000000000000001000000000000000000000000000000204a15bacd4d08e8dc5188fa2617ce3f2048ab093a457dbb1568a132452c1264e70000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000001c0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000001000000000000002029ba95cb86722cea31e94a7849e0f54af04c4e7e477f3499d9d82d65b310a447000000000000000100000000000000010000000000000020fd33a21eeff04663387fcf1c31e815a571114521fabf808a5505ae8eb3bc6104000000000000000100000000000000000000000000000020b4a1b1f3f1cb855740daf8c4833a49820c58975955c04f60f0e741d105e354a6000000000000000100000000000000000000000000000020b705227efab8bbcce7e6efa6e6c2c8c24b0165a04b60ba4382b0c252dfa09b540000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f000000000000000d0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020b2bd9166fb292fd068715be077faabd5100a082db2ee30b660a7a840a453295e00000000000000010000000000000001000000000000002057d79dbf8ed8b8aa3585c69adf87ef75ce64bdf75ac79a37fcbc979ba37b0a3e000000000000000100000000000000000000000000000020e4531c0cf3964a849077d3f66aca1c780770dbd36f02f9e591cac1251871b88a0000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000000d0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000205e14be2c5de23e6ed70fd6d842a4c814558815484501d6531472c2a4b9b7c626000000000000000100000000000000010000000000000020c3bd632f94a0f936e286d09638e32d9a2fc3eea8f13d18b4ae707edd67fdf6740000000000000001000000000000000000000000000000204e242999845fcac82f38a2f8827ba9e31d01ad478796f9013f43e0bec62d088f000000000000000100000000000000000000000000000020d1816e01b598e08ee1c459e3283ac87d454a19f2e41f3f85158e9f10b9faef71000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000000d0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000000000000000000002090ff676b9c14f4671a0e91cf403a88fb0b22e7a8a8a370aba0a28e26bcea1ac300000000000000010000000000000001000000000000002020093024ea2eaeb3c5934a41935a11dab2086c3d0aab8084952a99d9f0d224c20000000000000001000000000000000000000000000000207e61af4d68362cc7280f55cf450babaa4c27e0d7b623080a1dc3e5db95a6761d000000000000000100000000000000000000000000000020dede73056e97d895ee544cd1f515e7f872b01d10ad51bde6457326fcf11c7b20000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000d00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000000000000000000002031239eb1c08af680c4f00771654ce894f0d3587f58ea53c47ed4a11c1fa85145000000000000000100000000000000010000000000000020a91a262b04c6a7139a4bd4ed8b0f30807db95327049cf2a6d7b25f8be94e37b90000000000000001000000000000000000000000000000208184ee99edcbc305656197375ced84668d6a6dfe60525a4437554af40db6661e000000000000000100000000000000000000000000000020d4666304bf2809e0fe3311603148aa6aef2cc88395ddc38a022a9c742dada87d0000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000000d0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020eb8d9836cb953c6437c496ece6cbdfdd7243ec51671ccb3af47a85fa778e312c00000000000000010000000000000001000000000000002018c3f53aac4183df50ec2d566e245042dd3e3d71adf78621df52d71069399b8400000000000000010000000000000000000000000000002047d66e60185c2492df2be91f5c8e879243c3ec6d4ebe0b5f2c37fcf0fff4d188000000000000000100000000000000000000000000000020c1a70db1dbbbf1d266cc63410c3e1f798fbc2f00cc35d561bc0706474f565a7d000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000100000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020111b56eef069a81117bb82e07a549448811f7b498d0b8cbeaf3c460faf2448d100000000000000010000000000000001000000000000002025fba5ee32d0d9d008535ac6a7988f247a404065ee59ff9a7ab673fd8e76748e000000000000000100000000000000010000000000000020931fc0f60710e5550ab975b9da43260c532daa1aa0981b844a267625739ffb1b000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000100000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020bac9d793deaf5ca2cb626ce251dbd5baa016d0ecff6b13d4ef9cd35e7e50fc5e000000000000000100000000000000010000000000000020533af2ef25021e15fe55aca5e4979523d6e65ecbcdb590a881474ec1388d0773000000000000000100000000000000010000000000000020db75f2f16c24e1f86b75a7358eb0bff98736d767e792ba6500dc20c7a0f5b35f0000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000100000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000010000000000000020e6015a26b94bcdb79e6f934cfa346d3ee0e8daf62553fa64f1fd936655d5bd66000000000000000100000000000000010000000000000020b8afb98b9198daa87dda8a04edc3349eaed9056af0fcedb7edebe0393976711f0000000000000001000000000000000100000000000000208eca8e88d782a2c50068f91856cdb198e83fe75b53d95126db0ce5ba952fe000000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001000000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020855fd74a9c7da68d5343c0434ff683c9e73dc407ec49776b81e6584876f458cc00000000000000010000000000000001000000000000002052d82acada3026c4c21ecc2d34974875b8167e5120f6dc4a3d2696a6c0e4f004000000000000000100000000000000010000000000000020ef20ce255fff4244508dc0bf36aba9eeda1f94ba8303d6b23520cd52b598e748000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000100000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000001000000000000002038d9cc8443d7d65106239e86f0a2aa9c84d77501c33085e73594b698d102e803000000000000000100000000000000010000000000000020407f2fe6361457a84abe1bfbda60edd29b3305f1a37e916f7f923783f031398b00000000000000010000000000000001000000000000002003de737e05bbc77f493cd34846521552aa2f36e8056c458268b5b2cb15e5e244000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000320000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000100000000000000204551b7e47f6ca2d50d8dcfc72d7f82c5bf816540ff8972425307a26bbfcc903800000000000000010000000000000000000000000000002020357880fc8e6dd74df46742da252f118fdb87961923030914ba2e8adf16cb52000000000000000100000000000000010000000000000020d668a432d047c9e275f7c7d20e0a761a44ce7e63d76a8974123279ebd303ad5300000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000320000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000001000000000000002062fee7f2be76701c26cff7c1ab717bf1ca4084ca31e76a32ab71642ba634c735000000000000000100000000000000000000000000000020b36150103dfa24ee16b032ef9999b88d058ffbfb179c3608748ca0b3b79700ce000000000000000100000000000000010000000000000020a7afa996971e49948edcc6953b8e85b3a85abca1a8ca02bb441959ca7fbddc1e00000000000000010000000000000001000000000000002025513b7f08a347e3b4653b6a5b7b4504d17f3335eb68b911a07580668480ea5f000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000320000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000001000000000000002031162479f92c254feaaaca777ef6dd761c930c30b482aecbaaf17f69f110fd750000000000000001000000000000000000000000000000209f5a2e0d1d216a03f22617946d77aff086f5e10c79f90d4eafcbe495bb54cb7e000000000000000100000000000000010000000000000020f956d888804e64a270d247562d2e4df7cb3baaff4b906f94b4e64fcb67d3fb92000000000000000100000000000000010000000000000020a61e4bd78e6377780bb7580457ace8abedf45db5c6b1905e0fc76ee6b540ec6f000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003200000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000001000000000000002074850d3714892ae3c1155975b5ae3ff1e3cc3bf09e27ed58c1307f75be72257600000000000000010000000000000000000000000000002069b52e0358d48b02c58f9efb5a46719a68c0846a23a5cd0907fb795dbe8a38da000000000000000100000000000000010000000000000020695844727e2fac06bb31a161155a39527775fb0591002573a9e4d4aee1e794880000000000000001000000000000000100000000000000201273eb79132092546fe9e443e04ce70d652607cb46845d8269cc51b07a5e2636000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000320000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000010000000000000020c0df937f2aceb7764219a39c845fd1c9a31dc99746d96af47c7fc8a029fc87860000000000000001000000000000000000000000000000201c91dcf009aaa43325becc5afa841bc4e23160c3c4cb657fac24880e6a26d3d5000000000000000100000000000000010000000000000020b4683887999b2d9372eba712b4bcbe56fe7c3bbf097eb71436f394f19c5e540e000000000000000100000000000000010000000000000020ca0bbcf3ba7d635c190762d1905f0cdb8d6b2af98d668d282ab970819d0796e0000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000130000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000000000000000000002090b33c873032a5ec45b5f67351f43f1b225ffd1fb110a4b7260789aee51a15d00000000000000001000000000000000000000000000000200314646f9ee1f2da5ba523b66c95aea6a8139895748d499e7ea045d702e5076c000000000000000100000000000000010000000000000020931fc0f60710e5550ab975b9da43260c532daa1aa0981b844a267625739ffb1b000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000130000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000000000000000000002046fbba018a8a4a6e5e98ff98b6f815b2ded50ca9a7a90716180a022f9187825d00000000000000010000000000000000000000000000002028038eef8da57d82ce0de2ccd5f23763a39282ebbd5fb66a194bcecda2353b37000000000000000100000000000000010000000000000020db75f2f16c24e1f86b75a7358eb0bff98736d767e792ba6500dc20c7a0f5b35f0000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000130000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020d2ffec8fc1d53dec40b42a89c0cae0dc549a408cc92a2e1de6b140998dee7cc700000000000000010000000000000000000000000000002093ba70ed0c69d5b989f971113943ff263312cc3df6696a3a6c2f47a6d1d600a00000000000000001000000000000000100000000000000208eca8e88d782a2c50068f91856cdb198e83fe75b53d95126db0ce5ba952fe000000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001300000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000202c0f8e4c859a1b20d731414777322cb6bdf2e51a797b98f208ceff77a4018e8c000000000000000100000000000000000000000000000020fadaa9ce6822813c952cf021b4274e0bb104bcbd8836b7475735d844eea89533000000000000000100000000000000010000000000000020ef20ce255fff4244508dc0bf36aba9eeda1f94ba8303d6b23520cd52b598e748000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000130000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000000000000000000002014803cd2ff52736be7bae826f5a432e5b31ba001fda84d1a774978f7b7f4f6f70000000000000001000000000000000000000000000000205761fffcf89e32cefe31af94ba1a6ba27b6bcb99a3272756b2193dd132a912fb00000000000000010000000000000001000000000000002003de737e05bbc77f493cd34846521552aa2f36e8056c458268b5b2cb15e5e244000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f000000000000000b0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020ad82ea2a45d85b48e6c82ed5ce28deab27d4ccdf080aa1d4cce08b7c9106cc24000000000000000100000000000000000000000000000020dfa1f4a78895997367f9cc44c38621692b6fc048ae50b225156222237c41470e000000000000000100000000000000010000000000000020f7575ab7c2207c8a39c727bb104d9b7c0105c5ae631fc01ee25378fbc615b0d20000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000000b0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000203e023ca85a41eea127ce9823b7fd51057b69ed1d562fa1ae9bea0e3a120d71e5000000000000000100000000000000000000000000000020aa1f37e3209956f186a8818de28664641609ece32260276f3cd7bc90fd2eff250000000000000001000000000000000100000000000000205dc15f79b1aa0ed50e58e550fd41c07ace7cdd1101aa37ef4273ae5e9038146f000000000000000100000000000000000000000000000020d1816e01b598e08ee1c459e3283ac87d454a19f2e41f3f85158e9f10b9faef71000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000000b0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020e82250e386293f776323a285ccd6573a592c62a062333d54fee929c0ef13ed7500000000000000010000000000000000000000000000002070360d152385685b7e662a1e2a50c902712bfecfae32367357c1a56b444bbe8b000000000000000100000000000000010000000000000020abf88fdff603d4d880f1564dd8b5a9e24fd51a61c22d45624f73911e449bcf94000000000000000100000000000000000000000000000020dede73056e97d895ee544cd1f515e7f872b01d10ad51bde6457326fcf11c7b20000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000b00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000000000000000000002038c926f2197eabbe9b419500fdc266de56dc8d12378a0e4580631aba1a38fbc0000000000000000100000000000000000000000000000020930e0dd388f89437381d9fbfbd30a20cad6120bbd212c874b3c1322539175da500000000000000010000000000000001000000000000002009f1dd01603cfe8cb20303e6d66fb1ad83bdc7093f7a52699cb4afa68588b483000000000000000100000000000000000000000000000020d4666304bf2809e0fe3311603148aa6aef2cc88395ddc38a022a9c742dada87d0000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000000b0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020f9dfb0b946ae4771487128dd841a82abf366f779f33b704b2447e0dd843c7feb0000000000000001000000000000000000000000000000200b40b1436d0bc1adaefb89a6d250d74c85d9475ff40591b745878d6727b5078d0000000000000001000000000000000100000000000000203c7ec701f5e4b6f4992798f93bc359521c17689c879f0a4d5728d25a602fe261000000000000000100000000000000000000000000000020c1a70db1dbbbf1d266cc63410c3e1f798fbc2f00cc35d561bc0706474f565a7d000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000100000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020111b56eef069a81117bb82e07a549448811f7b498d0b8cbeaf3c460faf2448d100000000000000010000000000000001000000000000002025fba5ee32d0d9d008535ac6a7988f247a404065ee59ff9a7ab673fd8e76748e000000000000000100000000000000010000000000000020931fc0f60710e5550ab975b9da43260c532daa1aa0981b844a267625739ffb1b000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000100000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020bac9d793deaf5ca2cb626ce251dbd5baa016d0ecff6b13d4ef9cd35e7e50fc5e000000000000000100000000000000010000000000000020533af2ef25021e15fe55aca5e4979523d6e65ecbcdb590a881474ec1388d0773000000000000000100000000000000010000000000000020db75f2f16c24e1f86b75a7358eb0bff98736d767e792ba6500dc20c7a0f5b35f0000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000100000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000010000000000000020e6015a26b94bcdb79e6f934cfa346d3ee0e8daf62553fa64f1fd936655d5bd66000000000000000100000000000000010000000000000020b8afb98b9198daa87dda8a04edc3349eaed9056af0fcedb7edebe0393976711f0000000000000001000000000000000100000000000000208eca8e88d782a2c50068f91856cdb198e83fe75b53d95126db0ce5ba952fe000000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001000000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020855fd74a9c7da68d5343c0434ff683c9e73dc407ec49776b81e6584876f458cc00000000000000010000000000000001000000000000002052d82acada3026c4c21ecc2d34974875b8167e5120f6dc4a3d2696a6c0e4f004000000000000000100000000000000010000000000000020ef20ce255fff4244508dc0bf36aba9eeda1f94ba8303d6b23520cd52b598e748000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000100000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000001000000000000002038d9cc8443d7d65106239e86f0a2aa9c84d77501c33085e73594b698d102e803000000000000000100000000000000010000000000000020407f2fe6361457a84abe1bfbda60edd29b3305f1a37e916f7f923783f031398b00000000000000010000000000000001000000000000002003de737e05bbc77f493cd34846521552aa2f36e8056c458268b5b2cb15e5e244000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000150000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000209a7f6ee04285cc053d122b4d2dc01674868c1c4198d702144ec6673d4f1735470000000000000001000000000000000100000000000000209b10e94ccc495ed067a2c6b3180fdcfddf4c8bc779cdf7fc14dde8feb399309d000000000000000100000000000000000000000000000020080b28b1dece6dde43a662bb2943cbbcfb4977254ddfb567d20ec3694d07decc000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000150000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000203ac1614b3ebad34b37931ec463de127c8bb45876ebd8f753c177b3b708f2eccb000000000000000100000000000000010000000000000020576d77dac3a70e1802ac9cbaf6777f6090720d9e7fccb6078e57d4811b497ee2000000000000000100000000000000000000000000000020ace429d6a2e0ab83426a9b9ba04ca6bb90f71e7ceee02c278a82a7859d4bc1820000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000150000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020b315c72fa41b10fad5bfe97985d9d38cdfb966274cd890d82281a154ddf380870000000000000001000000000000000100000000000000209c160349b93bdba6b3a6c3afcd2503bc1a79db30aeb896003c136aefc2ff9b3a00000000000000010000000000000000000000000000002005c7231b545188d801508269d5e616db314e98d0d1d96b4d859cba418919dce7000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001500000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020dee119a0ca0d75cbae521579b9854eb21e572f571eb2bc9024914fdc09b7d6760000000000000001000000000000000100000000000000204d597031c84975b5e61070724ab3d606668a57320d7d99c5a77ab1a1d5221bb4000000000000000100000000000000000000000000000020792b54430c2c7a5202334fa577281d00396a0c9d5a6149e8832c12c7a186e7b6000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000150000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020fb6f21306c23be5f073086377b0217641f535be016cabf1ed1dc1319d6107c3000000000000000010000000000000001000000000000002064127693e8da9c8e8a48196327c3c787b11da3246b2e852de189d6ccb7f2da7a0000000000000001000000000000000000000000000000208eb0d4e58e0649d2818142c4c7cefb08dd13094d3a575e5054570ef7155a1a53000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f000000000000002c0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000100000000000000203143eaf6c1aa46c7aacd87875465de486e36c316b7a0b8bddd6c1517dc726d4d000000000000000100000000000000010000000000000020f10b3d1735c0e4a98365cd6a45c7b241ee1170e0a7ba2fc4a24bab4dfa03f86b000000000000000100000000000000000000000000000020a99ec68e5e702c95d72c271dfc6b7fba83a95d182bfe10c3b55beafee6b02033000000000000000100000000000000000000000000000020bc7cafa2d5bbcd43a2687bac1aaae39ea07c2b052355ee18f7bed28530381a1900000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba3610000000000000002c0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020325148bc2c92b4a9b7fbd60e3c2c802e14a460b09bb186e104c1c59b926381ac000000000000000100000000000000010000000000000020bcfd43a16b89cd418f8366dfd07ee2192ea7ffa028e030d1b656dc88979acb7c000000000000000100000000000000000000000000000020eb65f60cc50d4a78bbd6805dbdb2bf94cc2376e36aa8b971a31f71d4de0675d8000000000000000100000000000000000000000000000020f69c63796b0fc3bb3288db5fc6b6321528bbbae678a35651696d958320b7b7430000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb000000000000002c0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000100000000000000204f0fb56f75e03da7f2f554b9aab31d03c16451499c7e038f1b1254547541cefb000000000000000100000000000000010000000000000020392bbf45b43f0b143a079c45cdf97d23e309c818a7f50d8a138242f783f140e000000000000000010000000000000000000000000000002006426e33baa1776913fabf5a4a6b22a45faa4944ecb6ee3596d2a7f071dad382000000000000000100000000000000000000000000000020907caeb633215ff4129e7dab9f17c9025c93f92b16178fd8678a98fad237f0c60000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002c00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000100000000000000205d5491afbc2809464939001fd12ae88cb0a41ac4661174168145ed550bc70fd1000000000000000100000000000000010000000000000020facfada9baddf0e1d85bdc12bcb699700bc1eef3a5c1ac428f0a1b755f36b17400000000000000010000000000000000000000000000002045de5171730c798b920963229c38e2585a2ba74ae374a05c055e8f9ca4de381a000000000000000100000000000000000000000000000020f873579facce3b51fb36341332ab2926a95297aa0acd0b4108cefea53d9e1c8a00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee2000000000000002c0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000001000000000000002045f539421644e8c322c67c727085f4fa90364e2b03fedb21592e199092e759af00000000000000010000000000000001000000000000002045bc4c337b54e6e486f7686f4544d67b52d3d9407afb6f807b84c181ecad3077000000000000000100000000000000000000000000000020fce731c6ff148191e5989829d154266d461abbe1b87f3bf49e080e482df6295c00000000000000010000000000000000000000000000002083502f4dae1d1e7cce3b35cd08cd8214523868a7bad81a68fd16bfd40a434166000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000140000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000001000000000000002082733cd589abe0f03b4dffe58247afcd2988371e94575cc7b881fbe2971094360000000000000001000000000000000100000000000000209b10e94ccc495ed067a2c6b3180fdcfddf4c8bc779cdf7fc14dde8feb399309d000000000000000100000000000000000000000000000020080b28b1dece6dde43a662bb2943cbbcfb4977254ddfb567d20ec3694d07decc000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000140000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020ac03bba973f9db60405efd99de3388034a573b54a4261eb03c3e2c20b8bd8087000000000000000100000000000000010000000000000020576d77dac3a70e1802ac9cbaf6777f6090720d9e7fccb6078e57d4811b497ee2000000000000000100000000000000000000000000000020ace429d6a2e0ab83426a9b9ba04ca6bb90f71e7ceee02c278a82a7859d4bc1820000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000140000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000001000000000000002020c3867137bd66e5ae3cc59759dbb65bc16ccac01adc0650317f7aa6742d485a0000000000000001000000000000000100000000000000209c160349b93bdba6b3a6c3afcd2503bc1a79db30aeb896003c136aefc2ff9b3a00000000000000010000000000000000000000000000002005c7231b545188d801508269d5e616db314e98d0d1d96b4d859cba418919dce7000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001400000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000001000000000000002036af30d89ea435f7697c2571f0fd4b21940d3569d3b6aa5da5ab2a139ec941dc0000000000000001000000000000000100000000000000204d597031c84975b5e61070724ab3d606668a57320d7d99c5a77ab1a1d5221bb4000000000000000100000000000000000000000000000020792b54430c2c7a5202334fa577281d00396a0c9d5a6149e8832c12c7a186e7b6000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000140000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000010000000000000020e6129739f096f01e63ff5fd506580df7ed092542294fdec8b931b3ab9e3d289200000000000000010000000000000001000000000000002064127693e8da9c8e8a48196327c3c787b11da3246b2e852de189d6ccb7f2da7a0000000000000001000000000000000000000000000000208eb0d4e58e0649d2818142c4c7cefb08dd13094d3a575e5054570ef7155a1a53000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000200000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020209825fa6d197927a0715d3fab3f49b0ae6f3efd3002918c17dc046ee978861c000000000000000100000000000000010000000000000020d087600766bd1df7913f14ae88a2e9b5b651504535f46ee5da14954af94de668000000000000000100000000000000010000000000000020cd2cd9ad2c779aa3995be1014c80f94a5247dc5109218180e006fbbe588ce2d800000000000000010000000000000001000000000000002020ca2ebe06b78b863c42ebd67e820162645990710fb2212c31964405270d49be00000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000200000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000100000000000000209aaa5cb490c71c98b9c07167071ae295f65b0a068c84a1f8eb2bda1e9dc68c8200000000000000010000000000000001000000000000002005e8acde41240846b1b148e6f1731d982d9499b315b49571f3c4e12d88da5822000000000000000100000000000000010000000000000020dfd7eac1317ff666e7a446a260d70430c9aa0f0bfccfe2edf4ae24a5d163595d000000000000000100000000000000010000000000000020cb0c915a2fbf42f67d8ddb4687cdb94a70ea6dba8c337fad662aef43a1ff09120000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000200000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000100000000000000209f162f0f2e1022c5e53050c46473ed871f621c6d953e6b6adda61d3b41ae303600000000000000010000000000000001000000000000002064922111b65302bddd53948632f9de2e4135390b8620b248b8a335776dedfd030000000000000001000000000000000100000000000000205dea807bd3761c569e5d91569ff1a4d18ca2750ddf526909660f91b2f84080cf000000000000000100000000000000010000000000000020ec94ab368df3700c4e485459b45d7544203947bced6933b6d2419aa51552b1e70000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002000000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020a6ef89ab9286315344599180c41362feb0e0dfafcedeb8970cb5549a047ce2a2000000000000000100000000000000010000000000000020aa69a887755987122b41014784240cfa2ea17a4e9b3aeba12dc7762da7582ecc000000000000000100000000000000010000000000000020c802860c649238e4c1cbd0ff648821a708a95501e146298b5b303abf07320669000000000000000100000000000000010000000000000020ce508bfa21ae59f4e3a574d7cf9aa2266b30a92dca771c1fb0e1be0bca3e9fec00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000200000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000010000000000000020ed9a22f6279d115c66072ff65bbcf9f22659696c2f828e556ae86d9a52d8431800000000000000010000000000000001000000000000002001ae3a0c28f45072672fa1d9d722f50b96f496c2095844698ce94190b48086ca000000000000000100000000000000010000000000000020378b42427141ebdcf4a6aaa2ee39a4e2bd01cb4125d3f5ce563ae81c900aa929000000000000000100000000000000010000000000000020c1bc4adb66edbd4e3dab7de23832af2889cdfe7d4f7313a79599994c65f1d267000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000150000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000209a7f6ee04285cc053d122b4d2dc01674868c1c4198d702144ec6673d4f1735470000000000000001000000000000000100000000000000209b10e94ccc495ed067a2c6b3180fdcfddf4c8bc779cdf7fc14dde8feb399309d000000000000000100000000000000000000000000000020080b28b1dece6dde43a662bb2943cbbcfb4977254ddfb567d20ec3694d07decc000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000150000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000203ac1614b3ebad34b37931ec463de127c8bb45876ebd8f753c177b3b708f2eccb000000000000000100000000000000010000000000000020576d77dac3a70e1802ac9cbaf6777f6090720d9e7fccb6078e57d4811b497ee2000000000000000100000000000000000000000000000020ace429d6a2e0ab83426a9b9ba04ca6bb90f71e7ceee02c278a82a7859d4bc1820000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000150000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020b315c72fa41b10fad5bfe97985d9d38cdfb966274cd890d82281a154ddf380870000000000000001000000000000000100000000000000209c160349b93bdba6b3a6c3afcd2503bc1a79db30aeb896003c136aefc2ff9b3a00000000000000010000000000000000000000000000002005c7231b545188d801508269d5e616db314e98d0d1d96b4d859cba418919dce7000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001500000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020dee119a0ca0d75cbae521579b9854eb21e572f571eb2bc9024914fdc09b7d6760000000000000001000000000000000100000000000000204d597031c84975b5e61070724ab3d606668a57320d7d99c5a77ab1a1d5221bb4000000000000000100000000000000000000000000000020792b54430c2c7a5202334fa577281d00396a0c9d5a6149e8832c12c7a186e7b6000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000150000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020fb6f21306c23be5f073086377b0217641f535be016cabf1ed1dc1319d6107c3000000000000000010000000000000001000000000000002064127693e8da9c8e8a48196327c3c787b11da3246b2e852de189d6ccb7f2da7a0000000000000001000000000000000000000000000000208eb0d4e58e0649d2818142c4c7cefb08dd13094d3a575e5054570ef7155a1a53000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000200000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020209825fa6d197927a0715d3fab3f49b0ae6f3efd3002918c17dc046ee978861c000000000000000100000000000000010000000000000020d087600766bd1df7913f14ae88a2e9b5b651504535f46ee5da14954af94de668000000000000000100000000000000010000000000000020cd2cd9ad2c779aa3995be1014c80f94a5247dc5109218180e006fbbe588ce2d800000000000000010000000000000001000000000000002020ca2ebe06b78b863c42ebd67e820162645990710fb2212c31964405270d49be00000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000200000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000100000000000000209aaa5cb490c71c98b9c07167071ae295f65b0a068c84a1f8eb2bda1e9dc68c8200000000000000010000000000000001000000000000002005e8acde41240846b1b148e6f1731d982d9499b315b49571f3c4e12d88da5822000000000000000100000000000000010000000000000020dfd7eac1317ff666e7a446a260d70430c9aa0f0bfccfe2edf4ae24a5d163595d000000000000000100000000000000010000000000000020cb0c915a2fbf42f67d8ddb4687cdb94a70ea6dba8c337fad662aef43a1ff09120000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000200000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000100000000000000209f162f0f2e1022c5e53050c46473ed871f621c6d953e6b6adda61d3b41ae303600000000000000010000000000000001000000000000002064922111b65302bddd53948632f9de2e4135390b8620b248b8a335776dedfd030000000000000001000000000000000100000000000000205dea807bd3761c569e5d91569ff1a4d18ca2750ddf526909660f91b2f84080cf000000000000000100000000000000010000000000000020ec94ab368df3700c4e485459b45d7544203947bced6933b6d2419aa51552b1e70000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002000000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020a6ef89ab9286315344599180c41362feb0e0dfafcedeb8970cb5549a047ce2a2000000000000000100000000000000010000000000000020aa69a887755987122b41014784240cfa2ea17a4e9b3aeba12dc7762da7582ecc000000000000000100000000000000010000000000000020c802860c649238e4c1cbd0ff648821a708a95501e146298b5b303abf07320669000000000000000100000000000000010000000000000020ce508bfa21ae59f4e3a574d7cf9aa2266b30a92dca771c1fb0e1be0bca3e9fec00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000200000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000010000000000000020ed9a22f6279d115c66072ff65bbcf9f22659696c2f828e556ae86d9a52d8431800000000000000010000000000000001000000000000002001ae3a0c28f45072672fa1d9d722f50b96f496c2095844698ce94190b48086ca000000000000000100000000000000010000000000000020378b42427141ebdcf4a6aaa2ee39a4e2bd01cb4125d3f5ce563ae81c900aa929000000000000000100000000000000010000000000000020c1bc4adb66edbd4e3dab7de23832af2889cdfe7d4f7313a79599994c65f1d267000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a6000000000000002e0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020747bba5f58ec7a15c1d2a13deb552cedc032b4832e58b846730270e15dcf2df100000000000000010000000000000000000000000000002039207a50ee132e79b7d0ce2800c532ee3a79757e9182e86f047b4749e0a8f553000000000000000100000000000000000000000000000020a99ec68e5e702c95d72c271dfc6b7fba83a95d182bfe10c3b55beafee6b02033000000000000000100000000000000000000000000000020bc7cafa2d5bbcd43a2687bac1aaae39ea07c2b052355ee18f7bed28530381a1900000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba3610000000000000002e0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020ff1df323b8b672d14cec25facf3f20caf4e8864e2ba2a70a6760804db98f221400000000000000010000000000000000000000000000002046c654f85322efa17d6f767fbdb262d58f272795ab09da595b797b6dbc104b67000000000000000100000000000000000000000000000020eb65f60cc50d4a78bbd6805dbdb2bf94cc2376e36aa8b971a31f71d4de0675d8000000000000000100000000000000000000000000000020f69c63796b0fc3bb3288db5fc6b6321528bbbae678a35651696d958320b7b7430000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb000000000000002e0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000001000000000000002024b74684da23d10e0063b0b4bbe9aee2739c33c81812cfcba39431c71fbe479400000000000000010000000000000000000000000000002053f8d1326552cc01162d03184cb369965f4fe3b3f9288f37fb45fe4cb085e3d900000000000000010000000000000000000000000000002006426e33baa1776913fabf5a4a6b22a45faa4944ecb6ee3596d2a7f071dad382000000000000000100000000000000000000000000000020907caeb633215ff4129e7dab9f17c9025c93f92b16178fd8678a98fad237f0c60000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002e00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020e9ffc15fee06636ed209732ec8b265cb3a55d8baf5f49ed7837cd08dc0fd258c000000000000000100000000000000000000000000000020c2c3840e2225f4c86bdad2b4e2fdb543bbc7c0eff9166fd7bb13cfeeaac17bdb00000000000000010000000000000000000000000000002045de5171730c798b920963229c38e2585a2ba74ae374a05c055e8f9ca4de381a000000000000000100000000000000000000000000000020f873579facce3b51fb36341332ab2926a95297aa0acd0b4108cefea53d9e1c8a00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee2000000000000002e0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000202522143dac8360516902155543fb12271d3ff20bbcc39c22e41bcd14fc9e94a000000000000000010000000000000000000000000000002088652ad02d50d76bbfaa8b1856252bba2bace61a0c45f2856992f5b6a2c97595000000000000000100000000000000000000000000000020fce731c6ff148191e5989829d154266d461abbe1b87f3bf49e080e482df6295c00000000000000010000000000000000000000000000002083502f4dae1d1e7cce3b35cd08cd8214523868a7bad81a68fd16bfd40a434166000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a6000000000000003f0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020e806c4a23f82fc487b6c081e18e128bb84880b3267559d06a5125a57514d087a00000000000000010000000000000000000000000000002018b1612eb1dad97c59689c51b208232a96f3bc2f7825df0cd725412e93bc97040000000000000001000000000000000000000000000000201d0f1670f4690edbf111d45e385b2241e1ec7c0d7e483f87ab326686bca0511f000000000000000100000000000000000000000000000020a3c68cdf76781d19db7aa603f4cd91ea38edfc0b5126585e0c4cc27eb1121e50000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba3610000000000000003f0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000000000000000000020ac407f82c3e92e4a655f6761ed8966c5a93e922c80d4bcb5c21c6afa91a3953c0000000000000001000000000000000000000000000000204bce6dab5222a3748647067a231d54dada21e3699da6362c4bc94673296502790000000000000001000000000000000000000000000000207679149deecdb133a6fb94a0d7ff74465fc3c6693f57f8043b0630b94de2b59d00000000000000010000000000000000000000000000002081d62fb6f8e3c63bb07414f173e2f1761186f3a609b96be8e54bf144e18bd1e9000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb000000000000003f0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020ba5e552ddee84c30765283313ce11b3f24700287d6275e9c59f0d847cd797538000000000000000100000000000000000000000000000020da1aebdd346f93adfc944cc3f50de52bdeb469d89dd186d78310d7ff88911265000000000000000100000000000000000000000000000020c0d7bac2d29fe515550469b26c52547108748ccb8ea0ca9fccbce5734f5264e5000000000000000100000000000000000000000000000020c8c39661891e6889268d1a75425c16fa10b5ce02a5817678bfb61fd4d7ba745b000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003f00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000204b78de6c5e435f8135b1ece9de16360bea2e7357ecc9f035ec45d98e22083dca000000000000000100000000000000000000000000000020710760cf50139c3c5b476b52bfb6d60ac97ccb96e53b35bc985ad612f7f831f100000000000000010000000000000000000000000000002013cb09170444222793c8a76d1d3876b7475882d743c475bb142672de6a05a9f60000000000000001000000000000000000000000000000208ef32cdd20ab9840d12ae9a0d741f7d3f389289d74ea182f48337a1058f3b15d000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee2000000000000003f0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000000000000000000002032aad11c0a19636ed7ee369f66b72a54187794f22fb5434315b8160942bce1d0000000000000000100000000000000000000000000000020043442f334df2d17a911211f8f5e0538e4a3c0c68126a6326145d35aeebe9c1f000000000000000100000000000000000000000000000020f724f9908f48731cc2db122190e08a30cf56ef00f006f8ac9b5475671045abf9000000000000000100000000000000000000000000000020a79432284160ffbe7605792344dd2c3b75b783de349a59eac5f705dbb10d4fec000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000270000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000000000000000000002091e3e86f7478b8e521e57d423b2af9fe75190a6a6a852374d3745ce1b94b48f500000000000000010000000000000000000000000000002065495ff47c8a31364d3c3c58f071d7c1aa52f198d9059056dd041a1f272fa7d1000000000000000100000000000000000000000000000020254ad08d8f651887ccdedd4264cbe8ac8a820f273e7e6a6eec9571b2bee83fed00000000000000010000000000000001000000000000002020ca2ebe06b78b863c42ebd67e820162645990710fb2212c31964405270d49be00000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000270000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000000000000000000020b7033f8a4452886179c750dd54470427ba3e9fb615b48a5c1edd22956b26fd29000000000000000100000000000000000000000000000020fac7320aabb8fe2966c025202e7475a20483edb4654b4bde9447a78ac7df0e180000000000000001000000000000000000000000000000201e4829424cc3731a985d6b9986b78d322139a6d6965ff67e79bdb4abe7107c85000000000000000100000000000000010000000000000020cb0c915a2fbf42f67d8ddb4687cdb94a70ea6dba8c337fad662aef43a1ff09120000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000270000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020061757d29256647fdf28e74b6b15791216e6a4beb2bf142289551444d6cc4e1f000000000000000100000000000000000000000000000020ef97c873beb65dad829377e4465e11b59a8a88bc93509cff5716091f805681ea000000000000000100000000000000000000000000000020504c7cfdf9b9d8a744d6d07015dc694b3c1e96fa04d9711bca9e89e47aea70bd000000000000000100000000000000010000000000000020ec94ab368df3700c4e485459b45d7544203947bced6933b6d2419aa51552b1e70000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002700000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000000000000000000002030e1c5253b6d1976f3fb2681ccebc566ec38f5bfad5dc09d1d8e83450a6d2fcd000000000000000100000000000000000000000000000020ceed573e58e4a1a2786dfe9309ae6f6bf3ca00eb2be46bf2d1d42d91395bee860000000000000001000000000000000000000000000000201b51cd96b5e7d3c5907dc40ebc575470d0b53cb58c9a11acee482a80587db2ca000000000000000100000000000000010000000000000020ce508bfa21ae59f4e3a574d7cf9aa2266b30a92dca771c1fb0e1be0bca3e9fec00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000270000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000000000000000000203b1073654afe2f4b909602ea71d1713ab3344e2404fca1bcb91168bd1dd2d1290000000000000001000000000000000000000000000000202a33abf23f5055ddc1dfd07a07ea40dbaff78292a711b2f873efcea09d1764700000000000000001000000000000000000000000000000202f7c3c123b082e8ba8e01175c4f6ae18dec43d9efebf55f2769ff4eef4d2582b000000000000000100000000000000010000000000000020c1bc4adb66edbd4e3dab7de23832af2889cdfe7d4f7313a79599994c65f1d267000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000100000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020111b56eef069a81117bb82e07a549448811f7b498d0b8cbeaf3c460faf2448d100000000000000010000000000000001000000000000002025fba5ee32d0d9d008535ac6a7988f247a404065ee59ff9a7ab673fd8e76748e000000000000000100000000000000010000000000000020931fc0f60710e5550ab975b9da43260c532daa1aa0981b844a267625739ffb1b000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000100000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020bac9d793deaf5ca2cb626ce251dbd5baa016d0ecff6b13d4ef9cd35e7e50fc5e000000000000000100000000000000010000000000000020533af2ef25021e15fe55aca5e4979523d6e65ecbcdb590a881474ec1388d0773000000000000000100000000000000010000000000000020db75f2f16c24e1f86b75a7358eb0bff98736d767e792ba6500dc20c7a0f5b35f0000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000100000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000010000000000000020e6015a26b94bcdb79e6f934cfa346d3ee0e8daf62553fa64f1fd936655d5bd66000000000000000100000000000000010000000000000020b8afb98b9198daa87dda8a04edc3349eaed9056af0fcedb7edebe0393976711f0000000000000001000000000000000100000000000000208eca8e88d782a2c50068f91856cdb198e83fe75b53d95126db0ce5ba952fe000000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001000000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020855fd74a9c7da68d5343c0434ff683c9e73dc407ec49776b81e6584876f458cc00000000000000010000000000000001000000000000002052d82acada3026c4c21ecc2d34974875b8167e5120f6dc4a3d2696a6c0e4f004000000000000000100000000000000010000000000000020ef20ce255fff4244508dc0bf36aba9eeda1f94ba8303d6b23520cd52b598e748000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000100000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000001000000000000002038d9cc8443d7d65106239e86f0a2aa9c84d77501c33085e73594b698d102e803000000000000000100000000000000010000000000000020407f2fe6361457a84abe1bfbda60edd29b3305f1a37e916f7f923783f031398b00000000000000010000000000000001000000000000002003de737e05bbc77f493cd34846521552aa2f36e8056c458268b5b2cb15e5e244000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000290000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000204b88604a6608c6eb9ba3bede044e248d62becadb080a456681805ab480b64a2400000000000000010000000000000001000000000000002092ff38622b2decefcf8307aa018adefdfdaa06fc5a520c0c3a04990f33027694000000000000000100000000000000010000000000000020a346fbbeee725da089a6715dac946ab17533f7a77d571694ca1f1b28abb7d944000000000000000100000000000000000000000000000020bc7cafa2d5bbcd43a2687bac1aaae39ea07c2b052355ee18f7bed28530381a1900000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000290000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000000000000000000002046b4103846ae2c10a547fe76a6b5a371acc433d524e7482d268b79767c7664dc000000000000000100000000000000010000000000000020a7171d4fa61fd12128f5c4965241652c8ddc0c46e8c7a964ffcf0984ffd7f89500000000000000010000000000000001000000000000002052ba89114da2853e8fa07d551806893e486429c35967e90f1364b3d437abdd22000000000000000100000000000000000000000000000020f69c63796b0fc3bb3288db5fc6b6321528bbbae678a35651696d958320b7b7430000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000290000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000000000000000000002070ac9c1a1cc0f370eef8792db4e8a07c0a2b92e6fe6e9e2b6988a0f7d968a20b000000000000000100000000000000010000000000000020c53a0cd0107f66cc790becb38f5fee3c0f9d025124f698f0f2467cde1fbb7f93000000000000000100000000000000010000000000000020512ede82de18eac361b0347346d45577998f11f0951205ca4172f9d850b9919b000000000000000100000000000000000000000000000020907caeb633215ff4129e7dab9f17c9025c93f92b16178fd8678a98fad237f0c60000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002900000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020b6e877a515adfcb592a770d462b43e449cee8c738d16f969724fb575ae8bb0b7000000000000000100000000000000010000000000000020580ef9da1ed5e2babc435eca9ea73f027bf97010b64a6f63c69c2aadf5386b910000000000000001000000000000000100000000000000200df33e0d9ca72d06a434af2c6b972a6b03667095ac1a683b86514e0012239182000000000000000100000000000000000000000000000020f873579facce3b51fb36341332ab2926a95297aa0acd0b4108cefea53d9e1c8a00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000290000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020b09d90014812ec62509979fb5d4af4e69400cc5cd308cd96ced13e9dd3199e310000000000000001000000000000000100000000000000200dbed97830aea5096cb060a71b37c812fde90fb3a125044efa801f95addf091d0000000000000001000000000000000100000000000000204b8c5f91ebd422cdb230fb374d30859759d449e266b2903f6b848cf8e5baf94f00000000000000010000000000000000000000000000002083502f4dae1d1e7cce3b35cd08cd8214523868a7bad81a68fd16bfd40a434166000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000340000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020353923cb446bd5d538f5a935fecea5ee5c5ac14750aa609ff64d5b43ce7bfb2500000000000000010000000000000001000000000000002019594bf3fa8c4ace4d35341a4d29a3224bf349b4111630660fbc89ec6aac104c000000000000000100000000000000000000000000000020f4d1e64380a2c05ab0dc64ea31b5e288a4325921fa907811ded50419cc51d1ad00000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000340000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020b2a4327c83b14d1974375dae5dc3bd4410e1d159382d8f8212a0e84401e6d832000000000000000100000000000000010000000000000020758d3cb1dae81bd7b5510b225e37ec1c33d27e558dbe4753d95613ab2950d5bb000000000000000100000000000000000000000000000020ecf960f1bd96e938be9efe0e8178c6faac8e4dade22047baafaa2cc5b776587a00000000000000010000000000000001000000000000002025513b7f08a347e3b4653b6a5b7b4504d17f3335eb68b911a07580668480ea5f000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000340000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000100000000000000202624947e7c0865b70a434a4c35988e03a26d1e3b453460e9c7a20b194b120909000000000000000100000000000000010000000000000020d93941bd50076e052ac499d54a60936db5cc808ce93db11f3b5f2dbb9e84fdc900000000000000010000000000000000000000000000002057231a860f30ab1475bd8cdc0a3b4a8273fc215ab0540eb9f5f6b4129d47a3f6000000000000000100000000000000010000000000000020a61e4bd78e6377780bb7580457ace8abedf45db5c6b1905e0fc76ee6b540ec6f000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003400000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000100000000000000202f9b61ee3075d87acffcda0bdbcc7e81b586c9bf022685ac69056c0e30b10b8600000000000000010000000000000001000000000000002018f7652e6b6650db62a7971a3982b0cb933246f7ee71973244096397d4069a48000000000000000100000000000000000000000000000020e07633752c9a7d0ab4d4825434743a1a21102cdb34ac00f9cb0067d34ffca5d90000000000000001000000000000000100000000000000201273eb79132092546fe9e443e04ce70d652607cb46845d8269cc51b07a5e2636000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000340000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000010000000000000020ded4e8902dac5154193921dd660efe6de4b00616a646e884bdd96a2cff9894f8000000000000000100000000000000010000000000000020f1df539161429e1cffb6b4435a018168f9836656cd0fc0043c6de7fa4ee6ca11000000000000000100000000000000000000000000000020f53683e29b7f89c0854446521e9f08cece64960ee2669247016ed70294c71940000000000000000100000000000000010000000000000020ca0bbcf3ba7d635c190762d1905f0cdb8d6b2af98d668d282ab970819d0796e0000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a6000000000000000e0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020dc667fc52cadaed6930a933beb7e1ad3a2d93e2bcdd8aab777fdafa73de41b640000000000000001000000000000000000000000000000204588bf4dc76f289ce58141eaaa216d8458cb8d1be94c124d08fddc13ae448698000000000000000100000000000000000000000000000020e4531c0cf3964a849077d3f66aca1c780770dbd36f02f9e591cac1251871b88a0000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000000e0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000100000000000000201f9db38ea49d2abf509f0d450490944fc3f7059cdf6a488a15f4fbb624ac99910000000000000001000000000000000000000000000000209e5207dedcc1751d464d0ca5b0ec7453293485e46045e1d8d664665f599454ab0000000000000001000000000000000000000000000000204e242999845fcac82f38a2f8827ba9e31d01ad478796f9013f43e0bec62d088f000000000000000100000000000000000000000000000020d1816e01b598e08ee1c459e3283ac87d454a19f2e41f3f85158e9f10b9faef71000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000000e0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000001000000000000002073f62dcfe025252893d9e663ad4f79749cbd2aaaf1ad8affa46b9e03c6d026b8000000000000000100000000000000000000000000000020c8c3b0b7b843e6f5fda633ddb5b1cc221cb87cf202273d9001876d377f85a4440000000000000001000000000000000000000000000000207e61af4d68362cc7280f55cf450babaa4c27e0d7b623080a1dc3e5db95a6761d000000000000000100000000000000000000000000000020dede73056e97d895ee544cd1f515e7f872b01d10ad51bde6457326fcf11c7b20000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000e00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020a7d6f8d5cef626096acb2b445ec0d21b7624fe5c6a25ddb13a06ad35ca5f37c4000000000000000100000000000000000000000000000020b64d62e87ecb757a8ecbf5f123498416bdf3e454a4dc754743740ab117e026640000000000000001000000000000000000000000000000208184ee99edcbc305656197375ced84668d6a6dfe60525a4437554af40db6661e000000000000000100000000000000000000000000000020d4666304bf2809e0fe3311603148aa6aef2cc88395ddc38a022a9c742dada87d0000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000000e0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000010000000000000020ec28cf06733238cc03a9f055d2b8b5ce39beb257b4c29d281f681535c6b33ce9000000000000000100000000000000000000000000000020948ce3c71f8a3e63738c63ad7f65e0bd1940222862e86527ec3ba97701942c9900000000000000010000000000000000000000000000002047d66e60185c2492df2be91f5c8e879243c3ec6d4ebe0b5f2c37fcf0fff4d188000000000000000100000000000000000000000000000020c1a70db1dbbbf1d266cc63410c3e1f798fbc2f00cc35d561bc0706474f565a7d000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000290000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000204b88604a6608c6eb9ba3bede044e248d62becadb080a456681805ab480b64a2400000000000000010000000000000001000000000000002092ff38622b2decefcf8307aa018adefdfdaa06fc5a520c0c3a04990f33027694000000000000000100000000000000010000000000000020a346fbbeee725da089a6715dac946ab17533f7a77d571694ca1f1b28abb7d944000000000000000100000000000000000000000000000020bc7cafa2d5bbcd43a2687bac1aaae39ea07c2b052355ee18f7bed28530381a1900000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000290000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000000000000000000002046b4103846ae2c10a547fe76a6b5a371acc433d524e7482d268b79767c7664dc000000000000000100000000000000010000000000000020a7171d4fa61fd12128f5c4965241652c8ddc0c46e8c7a964ffcf0984ffd7f89500000000000000010000000000000001000000000000002052ba89114da2853e8fa07d551806893e486429c35967e90f1364b3d437abdd22000000000000000100000000000000000000000000000020f69c63796b0fc3bb3288db5fc6b6321528bbbae678a35651696d958320b7b7430000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000290000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000000000000000000002070ac9c1a1cc0f370eef8792db4e8a07c0a2b92e6fe6e9e2b6988a0f7d968a20b000000000000000100000000000000010000000000000020c53a0cd0107f66cc790becb38f5fee3c0f9d025124f698f0f2467cde1fbb7f93000000000000000100000000000000010000000000000020512ede82de18eac361b0347346d45577998f11f0951205ca4172f9d850b9919b000000000000000100000000000000000000000000000020907caeb633215ff4129e7dab9f17c9025c93f92b16178fd8678a98fad237f0c60000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002900000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020b6e877a515adfcb592a770d462b43e449cee8c738d16f969724fb575ae8bb0b7000000000000000100000000000000010000000000000020580ef9da1ed5e2babc435eca9ea73f027bf97010b64a6f63c69c2aadf5386b910000000000000001000000000000000100000000000000200df33e0d9ca72d06a434af2c6b972a6b03667095ac1a683b86514e0012239182000000000000000100000000000000000000000000000020f873579facce3b51fb36341332ab2926a95297aa0acd0b4108cefea53d9e1c8a00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000290000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020b09d90014812ec62509979fb5d4af4e69400cc5cd308cd96ced13e9dd3199e310000000000000001000000000000000100000000000000200dbed97830aea5096cb060a71b37c812fde90fb3a125044efa801f95addf091d0000000000000001000000000000000100000000000000204b8c5f91ebd422cdb230fb374d30859759d449e266b2903f6b848cf8e5baf94f00000000000000010000000000000000000000000000002083502f4dae1d1e7cce3b35cd08cd8214523868a7bad81a68fd16bfd40a434166000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a60000000000000050000000000000000d0000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000000000000000000020a46c48fdec84acc56577aefe7054e02bfc1856e40cfe70794aacf5dba47f5ac8000000000000000100000000000000010000000000000020513a244ed30bea03f955060e962514942238fca2eeab43d89fe954789416c2550000000000000001000000000000000000000000000000204ec4fbe14157b781bb37e9e7ee4b81b5d9722883a00cae3760d2952c34138407000000000000000100000000000000000000000000000020c9ba63ba09d11172eb9679477c02cdd4c8548636386b24d774960c00905b0712000000000000000100000000000000010000000000000020d3836a99589ef6589becf1d4e63f66d87835b816a66ad09a5c5ebf1042db1423000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e4000000000000000d000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f22000000000000000500000000000000010000000000000000000000000000002029954571d2c11b61867cd36d1239cd8a5e9b053779aadd08ed9fd002557266ef00000000000000010000000000000001000000000000002027ad7f2a3b2965ad47c5d13dd83f68c091154e23d58072c4d9db5500e2a82f7e0000000000000001000000000000000000000000000000205776bc63bc8e79c4d4e75b3a2615529a3a8c00c2dbf3e7bf6593a546aaf7ffa1000000000000000100000000000000000000000000000020bb0091c6616437edcbd8efccba7fb3b927f72c66ec3766297f35e4602cfd2178000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b48000000000000001f0000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000000000000000000020d0c0a08b03ab94543e650741667f7e053160684af954899c9656be1c9f71951d000000000000000100000000000000000000000000000020a219b2d8da3cdd63db4d93b046564f92c187682ba234f54928c806e15bf48b91000000000000000100000000000000000000000000000020c101bfd73a67c157e99ba91d8d5d299d14f17d7b9fa505488f852118f5cc694b0000000000000001000000000000000000000000000000207470cea585717c533257fc8f4b120ade8c86a10033ccb1c417a42dfddfd359f40000000000000001000000000000000000000000000000209465f9312245ecb16d74250a0d035d955d389ec7b69fa15f18764b6e2068a85f000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e4000000000000001f000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000000000000000000020249f70c83f02b7ab2a26987366fa4080bed68f0e2465133381926012c5d537460000000000000001000000000000000000000000000000202916348747e4a1886c8a06c53e34db0f89de76f193208ca20a769fbdfdbb7d7100000000000000010000000000000000000000000000002067555b03b5e50b46aae191ded9753ba10e19a72644ee97c779f38300e16408010000000000000001000000000000000000000000000000208e0b779ae73988997c60f43e98cb8a6a99bc4233a6006cca1aff6bfcde22a7750000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de000000000000000d0000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000000000000000000020a46c48fdec84acc56577aefe7054e02bfc1856e40cfe70794aacf5dba47f5ac8000000000000000100000000000000010000000000000020513a244ed30bea03f955060e962514942238fca2eeab43d89fe954789416c2550000000000000001000000000000000000000000000000204ec4fbe14157b781bb37e9e7ee4b81b5d9722883a00cae3760d2952c34138407000000000000000100000000000000000000000000000020c9ba63ba09d11172eb9679477c02cdd4c8548636386b24d774960c00905b0712000000000000000100000000000000010000000000000020d3836a99589ef6589becf1d4e63f66d87835b816a66ad09a5c5ebf1042db1423000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e4000000000000000d000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f22000000000000000500000000000000010000000000000000000000000000002029954571d2c11b61867cd36d1239cd8a5e9b053779aadd08ed9fd002557266ef00000000000000010000000000000001000000000000002027ad7f2a3b2965ad47c5d13dd83f68c091154e23d58072c4d9db5500e2a82f7e0000000000000001000000000000000000000000000000205776bc63bc8e79c4d4e75b3a2615529a3a8c00c2dbf3e7bf6593a546aaf7ffa1000000000000000100000000000000000000000000000020bb0091c6616437edcbd8efccba7fb3b927f72c66ec3766297f35e4602cfd2178000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b4800000000000000010000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d000000000000000060000000000000001000000000000000000000000000000209d2385e20c69ba1687d88bef23f3b1e87fbf459ecb62f88c78738a4c9c50fc8400000000000000010000000000000001000000000000002090d6188cae73dee15f293b173d2299d2756747ab789ceef25f9171b1c8ef505c00000000000000010000000000000001000000000000002054c97f8b2d76bfc52069915ecb77741656fcfe1b7faa5ee2eb910d01551cf33600000000000000010000000000000001000000000000002032d80a4e3696ae67351b732030c0b0a636c4cfb3af4671cd1af41941112b937d000000000000000100000000000000010000000000000020d3836a99589ef6589becf1d4e63f66d87835b816a66ad09a5c5ebf1042db1423000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e40000000000000001000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000000000000000000020bd0d17a83dfe2e522bec4cc424f7150cc7f467802ce19b6b7930c08768d9d3c5000000000000000100000000000000010000000000000020b8b5791a76ef66332e50c46b2b5647c4fd236315013539a7bf48cc374cf3c6f600000000000000010000000000000001000000000000002010ea51456d442e877ded1d0a577fc618c3f7dac6862c38170dec07ce169fd2eb000000000000000100000000000000010000000000000020c2d55771b44ed20c42ec47c4e40541639cf71f150d00ff2366e732dfb3ca4496000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b48000000000000000f0000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000000000000000000020fa8751dc47e1687a20d9f5ed8cb722d8aef884ffc743062c639d97d77a67d4c1000000000000000100000000000000000000000000000020709822e0b4ed9edf475f0023de91ba3d4868336c0c70ee665dd651c2aa2147e20000000000000001000000000000000000000000000000204ec4fbe14157b781bb37e9e7ee4b81b5d9722883a00cae3760d2952c34138407000000000000000100000000000000000000000000000020c9ba63ba09d11172eb9679477c02cdd4c8548636386b24d774960c00905b0712000000000000000100000000000000010000000000000020d3836a99589ef6589becf1d4e63f66d87835b816a66ad09a5c5ebf1042db1423000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e4000000000000000f000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f2200000000000000050000000000000001000000000000000000000000000000207ea54623abb2e221642f9e379fa0cd08bf4d718eb75a1ad677ea1272e1aa6d2e0000000000000001000000000000000000000000000000209d3ecfaabf2349b466e75f5d4d21d6bef1004d3ff8a3e35f6d25e0666d6d73470000000000000001000000000000000000000000000000205776bc63bc8e79c4d4e75b3a2615529a3a8c00c2dbf3e7bf6593a546aaf7ffa1000000000000000100000000000000000000000000000020bb0091c6616437edcbd8efccba7fb3b927f72c66ec3766297f35e4602cfd2178000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b4800000000000000290000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000000000000000000020575175cf206fcdabc4591de306abe1dfd23958c188be1065ce39f114072e1b3b000000000000000100000000000000010000000000000020269a4be1df6cd35893511c8c31a8ed43c5d35d850e300e9ab2f0adbbbbd83bce000000000000000100000000000000010000000000000020bba8a10d74ff3c54bfeecd7d2d784ae92cc9e785fcc43b81b5e8f48b43a38ff50000000000000001000000000000000000000000000000205f7d8f694d13a6ab2ad2fc661b08a8dd8d9db8ee3d0444be9f7345f75a594f30000000000000000100000000000000010000000000000020c7bf28ee73face5265fe79bb8a589a3f982ce2fc9a85952518a5c62d7b8b4c64000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac60000000000000009000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f22000000000000000500000000000000010000000000000000000000000000002019caecf361bc35f371daf2dcbd46d69a115c5ca4fecef1b3c66cbc581cf69390000000000000000100000000000000010000000000000020fb5c3fdcbf73601e13aea9c6240825f773e1ee25b768467052a7d1d64ddf741d00000000000000010000000000000001000000000000002043ae730be375d36839a01e6c35704f00c131d4d88f636ea06ef0371f726da4a3000000000000000100000000000000000000000000000020bb0091c6616437edcbd8efccba7fb3b927f72c66ec3766297f35e4602cfd2178000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b48000000000000000c0000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000010000000000000020268da1398c17c449f22641db02dcbae39a8b972b55a27a7b98b0f18dc11c923f000000000000000100000000000000010000000000000020513a244ed30bea03f955060e962514942238fca2eeab43d89fe954789416c2550000000000000001000000000000000000000000000000204ec4fbe14157b781bb37e9e7ee4b81b5d9722883a00cae3760d2952c34138407000000000000000100000000000000000000000000000020c9ba63ba09d11172eb9679477c02cdd4c8548636386b24d774960c00905b0712000000000000000100000000000000010000000000000020d3836a99589ef6589becf1d4e63f66d87835b816a66ad09a5c5ebf1042db1423000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e4000000000000000c000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000010000000000000020b0357e5505d6a180dd10e0a38fe72ffe9adb95b0f5ee53f7780fdd38a9ecb21000000000000000010000000000000001000000000000002027ad7f2a3b2965ad47c5d13dd83f68c091154e23d58072c4d9db5500e2a82f7e0000000000000001000000000000000000000000000000205776bc63bc8e79c4d4e75b3a2615529a3a8c00c2dbf3e7bf6593a546aaf7ffa1000000000000000100000000000000000000000000000020bb0091c6616437edcbd8efccba7fb3b927f72c66ec3766297f35e4602cfd2178000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b4800000000000000030000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d000000000000000060000000000000001000000000000000000000000000000207052fdb925fd766a821b8f3b018d555aa3d330a6152fe8aa01241906c087a6d6000000000000000100000000000000000000000000000020e8e206152891e9d09eed78597e8bd87e240e3978e62e9e41b117d7c7bafec35e00000000000000010000000000000001000000000000002054c97f8b2d76bfc52069915ecb77741656fcfe1b7faa5ee2eb910d01551cf33600000000000000010000000000000001000000000000002032d80a4e3696ae67351b732030c0b0a636c4cfb3af4671cd1af41941112b937d000000000000000100000000000000010000000000000020d3836a99589ef6589becf1d4e63f66d87835b816a66ad09a5c5ebf1042db1423000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e40000000000000003000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000000000000000000020dcb64ecaf148e18230d6c8faae0debfa25bacdf7c7c2c3bc88a7a303e26635f4000000000000000100000000000000000000000000000020338d0dfe6fc16a03a2c0b06f6f175854d77859b540f792fbe6337498388a470000000000000000010000000000000001000000000000002010ea51456d442e877ded1d0a577fc618c3f7dac6862c38170dec07ce169fd2eb000000000000000100000000000000010000000000000020c2d55771b44ed20c42ec47c4e40541639cf71f150d00ff2366e732dfb3ca4496000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b4800000000000000300000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000010000000000000020686078cbf217f56cc5d8eacf1d92664164b89809eabc7373a46a35efdb9b40960000000000000001000000000000000100000000000000201e2c86672bf8a6c42d0c138d2e10e0367c01872b5c4595fff8a8a1b20f548e40000000000000000100000000000000010000000000000020266e4605430c234e67dbb242a8e44e3780ff710465b34d6c2df0f8b00ff65986000000000000000100000000000000010000000000000020fc12c5a2aee6718fe266d2ad3deb393026c277d8f63fdb4468ca5f106e54081f000000000000000100000000000000000000000000000020035851a56b7064cdd51a4fbb03b1407948fca5abb5ea818749904591c0a56b79000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac60000000000000010000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f2200000000000000050000000000000001000000000000000100000000000000205a53f605494897b831ce4800c7816cdf85d67ad309a8c93b31507f5029cfe46a000000000000000100000000000000010000000000000020d84ef8b16e30c344e7cc3ad64f0d59b40f7e203717d3ee63e2a5ac4775980fe20000000000000001000000000000000100000000000000206877f0af54e1897bd18be8322d34c806e54d6050df1b5a284baabec781dcb09f000000000000000100000000000000010000000000000020f7704799215b573c2650c1c1f1602bdf4a4c859453e8e4822ba37b47b47583c90000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de000000000000002f0000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d000000000000000060000000000000001000000000000000000000000000000203e4d4d94f3412e0cbbc3a9de9fc8de80777fdc9432e99d2af30c152971b22fa60000000000000001000000000000000000000000000000207dfcb8c9f57ca5159b6b0f5da579050079f9b22c18be38b7405925544de7975a00000000000000010000000000000000000000000000002042006d6f57bb854e8bb72c4e98beb6a2aed05e72abe3aed0fe4ea958bf24592c0000000000000001000000000000000000000000000000205f7d8f694d13a6ab2ad2fc661b08a8dd8d9db8ee3d0444be9f7345f75a594f30000000000000000100000000000000010000000000000020c7bf28ee73face5265fe79bb8a589a3f982ce2fc9a85952518a5c62d7b8b4c64000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac6000000000000000f000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f2200000000000000050000000000000001000000000000000000000000000000207ea54623abb2e221642f9e379fa0cd08bf4d718eb75a1ad677ea1272e1aa6d2e0000000000000001000000000000000000000000000000209d3ecfaabf2349b466e75f5d4d21d6bef1004d3ff8a3e35f6d25e0666d6d73470000000000000001000000000000000000000000000000205776bc63bc8e79c4d4e75b3a2615529a3a8c00c2dbf3e7bf6593a546aaf7ffa1000000000000000100000000000000000000000000000020bb0091c6616437edcbd8efccba7fb3b927f72c66ec3766297f35e4602cfd2178000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b4800000000000000280000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d0000000000000000600000000000000010000000000000001000000000000002064acdf03a725f1f949605a27d0024ff749f4615f492846586ed305f967e40e16000000000000000100000000000000010000000000000020269a4be1df6cd35893511c8c31a8ed43c5d35d850e300e9ab2f0adbbbbd83bce000000000000000100000000000000010000000000000020bba8a10d74ff3c54bfeecd7d2d784ae92cc9e785fcc43b81b5e8f48b43a38ff50000000000000001000000000000000000000000000000205f7d8f694d13a6ab2ad2fc661b08a8dd8d9db8ee3d0444be9f7345f75a594f30000000000000000100000000000000010000000000000020c7bf28ee73face5265fe79bb8a589a3f982ce2fc9a85952518a5c62d7b8b4c64000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac60000000000000008000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f2200000000000000050000000000000001000000000000000100000000000000201d732b4d260973e6a2376385268d2f6c4a39203c77f054d9467d11b45c376a43000000000000000100000000000000010000000000000020fb5c3fdcbf73601e13aea9c6240825f773e1ee25b768467052a7d1d64ddf741d00000000000000010000000000000001000000000000002043ae730be375d36839a01e6c35704f00c131d4d88f636ea06ef0371f726da4a3000000000000000100000000000000000000000000000020bb0091c6616437edcbd8efccba7fb3b927f72c66ec3766297f35e4602cfd2178000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b4800000000000000050000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d000000000000000060000000000000001000000000000000000000000000000200dd9e75ebaf66f83c680fdd8cb1868e1a786161d3ac8e4f64bf582c30b2bed10000000000000000100000000000000010000000000000020231e64eb0a3dff549a75b06dde6aa3139c47c94ae74e7cfd5e9932a8c2532cfe000000000000000100000000000000000000000000000020798304ad302cc668b771aeb6f24c031cb9a774439bb7ef7240622f0cd209577a00000000000000010000000000000001000000000000002032d80a4e3696ae67351b732030c0b0a636c4cfb3af4671cd1af41941112b937d000000000000000100000000000000010000000000000020d3836a99589ef6589becf1d4e63f66d87835b816a66ad09a5c5ebf1042db1423000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e40000000000000005000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f2200000000000000050000000000000001000000000000000000000000000000202843f24a236ac5a65a843bd0bfcee637330ee76b5722f5bc5237b760e87a1a490000000000000001000000000000000100000000000000202dcc2566cdf3549ffca230a70ab0af2d282e8675207167d2de94b884c8838935000000000000000100000000000000000000000000000020773cb9dbf1ccad8eb8156e9a250210a545518f07508f01bbbcfb6de31681f54c000000000000000100000000000000010000000000000020c2d55771b44ed20c42ec47c4e40541639cf71f150d00ff2366e732dfb3ca4496000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b4800000000000000380000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d000000000000000060000000000000001000000000000000100000000000000200d2c25ff581183b1f1eee8f47fad8a8fc63bcb7089879b5fc12efaeb9b4ed7a7000000000000000100000000000000010000000000000020f51a1a0cb77d42ba97fdb0147c71e1c7ef7aae2ec96ad60196112997eae9ae6400000000000000010000000000000001000000000000002084e6c9c6f0749922eaa9791028d6573f819d5d241e7c81d4917ee819239542c100000000000000010000000000000000000000000000002090cc97417219408f556666854f319b8a85d02d829def6fdb6ad22e5c9ec340f2000000000000000100000000000000000000000000000020035851a56b7064cdd51a4fbb03b1407948fca5abb5ea818749904591c0a56b79000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac60000000000000018000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000010000000000000020f2d485461a1697bf42d91034e7d584f62a68f21ae74da1641966731fd26ed1110000000000000001000000000000000100000000000000208d6df75c78b7ca2d268f31cba04a920dc781ec492a35cfc1e95bf5e87dc65bb800000000000000010000000000000001000000000000002051cda1da388d30c4aca2471e988eb39f45c77eadfecddd87aa5ae68e63788ea90000000000000001000000000000000000000000000000208e0b779ae73988997c60f43e98cb8a6a99bc4233a6006cca1aff6bfcde22a7750000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de00000000000000350000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000000000000000000020cd7bea7aa06521205e9740430c6fffa3ad25f235309ddbd76a3a4c7293b38df50000000000000001000000000000000100000000000000204efbcbc5dac303e4094a1f4abd4ba72877f1eb11481aad2deda8db3839bc26ee0000000000000001000000000000000000000000000000203eb4c192d55cee6b45e35fbdb149bb4b0133d0c00b566475a6f0414ce7b905fe000000000000000100000000000000010000000000000020fc12c5a2aee6718fe266d2ad3deb393026c277d8f63fdb4468ca5f106e54081f000000000000000100000000000000000000000000000020035851a56b7064cdd51a4fbb03b1407948fca5abb5ea818749904591c0a56b79000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac60000000000000015000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000000000000000000020937f8edacb9e74910070dc910169105945b1e7f096cbd15d624add0cd218c7e70000000000000001000000000000000100000000000000206c4c67ebddd0aba228206ae542313971086f4df8f63de57637d9ddd7b0c833380000000000000001000000000000000000000000000000206bac2681822f454c32baa7eb2bba682b6bc2648d24ae75b227ddbbfc182acf34000000000000000100000000000000010000000000000020f7704799215b573c2650c1c1f1602bdf4a4c859453e8e4822ba37b47b47583c90000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de000000000000003c0000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000010000000000000020a46e8fe400bb0e24841710f8179b213555fe68cc65feec148307c8714302b637000000000000000100000000000000010000000000000020452727d60b9fbcd98c988faefff7f8852fdbedff43864ae33df0455d5c51d0d00000000000000001000000000000000000000000000000205206346f75b18d2c300ceaa3b5769985e3e1b1ed21d2ee1547545fc5175c6a1500000000000000010000000000000000000000000000002090cc97417219408f556666854f319b8a85d02d829def6fdb6ad22e5c9ec340f2000000000000000100000000000000000000000000000020035851a56b7064cdd51a4fbb03b1407948fca5abb5ea818749904591c0a56b79000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac6000000000000001c000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f2200000000000000050000000000000001000000000000000100000000000000200712d099bd11889fcfb541c0faea979c4eda5a32412201e7c3be5fbdfeff4821000000000000000100000000000000010000000000000020c48e403700560738f2ca421e2d6f37c042731c20f87bde6fec99b0aee67cef2700000000000000010000000000000000000000000000002067555b03b5e50b46aae191ded9753ba10e19a72644ee97c779f38300e16408010000000000000001000000000000000000000000000000208e0b779ae73988997c60f43e98cb8a6a99bc4233a6006cca1aff6bfcde22a7750000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de00000000000000350000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000000000000000000020cd7bea7aa06521205e9740430c6fffa3ad25f235309ddbd76a3a4c7293b38df50000000000000001000000000000000100000000000000204efbcbc5dac303e4094a1f4abd4ba72877f1eb11481aad2deda8db3839bc26ee0000000000000001000000000000000000000000000000203eb4c192d55cee6b45e35fbdb149bb4b0133d0c00b566475a6f0414ce7b905fe000000000000000100000000000000010000000000000020fc12c5a2aee6718fe266d2ad3deb393026c277d8f63fdb4468ca5f106e54081f000000000000000100000000000000000000000000000020035851a56b7064cdd51a4fbb03b1407948fca5abb5ea818749904591c0a56b79000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac60000000000000015000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000000000000000000020937f8edacb9e74910070dc910169105945b1e7f096cbd15d624add0cd218c7e70000000000000001000000000000000100000000000000206c4c67ebddd0aba228206ae542313971086f4df8f63de57637d9ddd7b0c833380000000000000001000000000000000000000000000000206bac2681822f454c32baa7eb2bba682b6bc2648d24ae75b227ddbbfc182acf34000000000000000100000000000000010000000000000020f7704799215b573c2650c1c1f1602bdf4a4c859453e8e4822ba37b47b47583c90000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de00000000000000110000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000000000000000000020c466adbb18bf6b0328e2856f960fe9a8dec531e4c729012fc99b886ae6e2b57a000000000000000100000000000000010000000000000020b134e1d4f75f877055e565c41463cfb0dfc902862d8a24b25304326a472c821a0000000000000001000000000000000100000000000000207cf2f6b647b8ceefb7bd84df3f0996d132dafc56d6dbea89eb9f73d7b8e4dbfc000000000000000100000000000000010000000000000020df2cab15903eaa73ce7464dfe5826b7721dc7f203f86ace6ef641307874ba0e20000000000000001000000000000000000000000000000209465f9312245ecb16d74250a0d035d955d389ec7b69fa15f18764b6e2068a85f000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e40000000000000011000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000000000000000000020b61e44417763ff99319f363363cf98fd46fb7be0c0f15919e9363261028983dd000000000000000100000000000000010000000000000020d84ef8b16e30c344e7cc3ad64f0d59b40f7e203717d3ee63e2a5ac4775980fe20000000000000001000000000000000100000000000000206877f0af54e1897bd18be8322d34c806e54d6050df1b5a284baabec781dcb09f000000000000000100000000000000010000000000000020f7704799215b573c2650c1c1f1602bdf4a4c859453e8e4822ba37b47b47583c90000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de00000000000000170000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000000000000000000020dfb7f3bb3492636e9d2f14bcf98dcc22d9437893c5196b544a4210ece12b3474000000000000000100000000000000000000000000000020bfc5ffb287440f21f937881d40a7c43d690b58a52eb954637d784781667f2c33000000000000000100000000000000000000000000000020be7b72f41360e813c4b7943eb7fcf810bfdb91cd6a54c9149c23e8ca4d09a16e000000000000000100000000000000010000000000000020df2cab15903eaa73ce7464dfe5826b7721dc7f203f86ace6ef641307874ba0e20000000000000001000000000000000000000000000000209465f9312245ecb16d74250a0d035d955d389ec7b69fa15f18764b6e2068a85f000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e40000000000000017000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000000000000000000020d6d6fd399b8aa505a8fffcda1b793e965194b48e677b727160ddf771527b06880000000000000001000000000000000000000000000000200286921f0441ed35616a8fc9b34eaab3ac25bbd32906964e19f89d4d334558480000000000000001000000000000000000000000000000206bac2681822f454c32baa7eb2bba682b6bc2648d24ae75b227ddbbfc182acf34000000000000000100000000000000010000000000000020f7704799215b573c2650c1c1f1602bdf4a4c859453e8e4822ba37b47b47583c90000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de00000000000000240000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000010000000000000020c7b6c312b26c0b124544cda7ecba30b852a9afa125c12884e9684c7fda957454000000000000000100000000000000010000000000000020d4cdb29a7be63029b677632534c52877d7e85b879e0c0e408b28ecbb0d031f0a000000000000000100000000000000000000000000000020c1e013d8ba86dee1e79fe4da35f79570511b59a83912aeb51c87be2dfcc3264d0000000000000001000000000000000100000000000000200d2d3cafbe675eebb53c04c5efdf84dcc1861855d328d30f484e0ab38e7b4ee9000000000000000100000000000000010000000000000020c7bf28ee73face5265fe79bb8a589a3f982ce2fc9a85952518a5c62d7b8b4c64000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac60000000000000004000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000010000000000000020374375974be3a1f6b4881605ec0160eb7eb65c075102e07f25873e4c46afc5c40000000000000001000000000000000100000000000000202dcc2566cdf3549ffca230a70ab0af2d282e8675207167d2de94b884c8838935000000000000000100000000000000000000000000000020773cb9dbf1ccad8eb8156e9a250210a545518f07508f01bbbcfb6de31681f54c000000000000000100000000000000010000000000000020c2d55771b44ed20c42ec47c4e40541639cf71f150d00ff2366e732dfb3ca4496000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b48000000000000001c0000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000010000000000000020c8d234dd73f2d05b06d5968260f14dcc027a6e6ed471a95c024ded563ef12d0e000000000000000100000000000000010000000000000020f36f9307adf7ae40e5080aaea3e879d040d8bc3bafdfe31ff6de8928d1e43541000000000000000100000000000000000000000000000020c101bfd73a67c157e99ba91d8d5d299d14f17d7b9fa505488f852118f5cc694b0000000000000001000000000000000000000000000000207470cea585717c533257fc8f4b120ade8c86a10033ccb1c417a42dfddfd359f40000000000000001000000000000000000000000000000209465f9312245ecb16d74250a0d035d955d389ec7b69fa15f18764b6e2068a85f000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e4000000000000001c000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f2200000000000000050000000000000001000000000000000100000000000000200712d099bd11889fcfb541c0faea979c4eda5a32412201e7c3be5fbdfeff4821000000000000000100000000000000010000000000000020c48e403700560738f2ca421e2d6f37c042731c20f87bde6fec99b0aee67cef2700000000000000010000000000000000000000000000002067555b03b5e50b46aae191ded9753ba10e19a72644ee97c779f38300e16408010000000000000001000000000000000000000000000000208e0b779ae73988997c60f43e98cb8a6a99bc4233a6006cca1aff6bfcde22a7750000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de000000000000000d0000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000000000000000000020a46c48fdec84acc56577aefe7054e02bfc1856e40cfe70794aacf5dba47f5ac8000000000000000100000000000000010000000000000020513a244ed30bea03f955060e962514942238fca2eeab43d89fe954789416c2550000000000000001000000000000000000000000000000204ec4fbe14157b781bb37e9e7ee4b81b5d9722883a00cae3760d2952c34138407000000000000000100000000000000000000000000000020c9ba63ba09d11172eb9679477c02cdd4c8548636386b24d774960c00905b0712000000000000000100000000000000010000000000000020d3836a99589ef6589becf1d4e63f66d87835b816a66ad09a5c5ebf1042db1423000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e4000000000000000d000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f22000000000000000500000000000000010000000000000000000000000000002029954571d2c11b61867cd36d1239cd8a5e9b053779aadd08ed9fd002557266ef00000000000000010000000000000001000000000000002027ad7f2a3b2965ad47c5d13dd83f68c091154e23d58072c4d9db5500e2a82f7e0000000000000001000000000000000000000000000000205776bc63bc8e79c4d4e75b3a2615529a3a8c00c2dbf3e7bf6593a546aaf7ffa1000000000000000100000000000000000000000000000020bb0091c6616437edcbd8efccba7fb3b927f72c66ec3766297f35e4602cfd2178000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b4800000000000000100000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d000000000000000060000000000000001000000000000000100000000000000208933f1db4cc8ba86bbbe1910b9a8b85feaca389d0253d1846ae5f7cbe7180746000000000000000100000000000000010000000000000020b134e1d4f75f877055e565c41463cfb0dfc902862d8a24b25304326a472c821a0000000000000001000000000000000100000000000000207cf2f6b647b8ceefb7bd84df3f0996d132dafc56d6dbea89eb9f73d7b8e4dbfc000000000000000100000000000000010000000000000020df2cab15903eaa73ce7464dfe5826b7721dc7f203f86ace6ef641307874ba0e20000000000000001000000000000000000000000000000209465f9312245ecb16d74250a0d035d955d389ec7b69fa15f18764b6e2068a85f000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e40000000000000010000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f2200000000000000050000000000000001000000000000000100000000000000205a53f605494897b831ce4800c7816cdf85d67ad309a8c93b31507f5029cfe46a000000000000000100000000000000010000000000000020d84ef8b16e30c344e7cc3ad64f0d59b40f7e203717d3ee63e2a5ac4775980fe20000000000000001000000000000000100000000000000206877f0af54e1897bd18be8322d34c806e54d6050df1b5a284baabec781dcb09f000000000000000100000000000000010000000000000020f7704799215b573c2650c1c1f1602bdf4a4c859453e8e4822ba37b47b47583c90000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de00000000000000320000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d000000000000000060000000000000001000000000000000100000000000000201a3ac3ba9da961e2aa56d8aa7ca86a0d07f02a388ac9d33ae9dd6470a7e35e1f0000000000000001000000000000000000000000000000208de34e4b40222ae65d6b7cd4cc33a5ad034ec9cfd1f24fc21116fcd83a435c24000000000000000100000000000000010000000000000020266e4605430c234e67dbb242a8e44e3780ff710465b34d6c2df0f8b00ff65986000000000000000100000000000000010000000000000020fc12c5a2aee6718fe266d2ad3deb393026c277d8f63fdb4468ca5f106e54081f000000000000000100000000000000000000000000000020035851a56b7064cdd51a4fbb03b1407948fca5abb5ea818749904591c0a56b79000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac60000000000000012000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f2200000000000000050000000000000001000000000000000100000000000000205b83836f7add7f1e39530638ac8deef5ed7d41b0a982030de18646dc70df390800000000000000010000000000000000000000000000002025ef29344c4329635be411d163d84595994f0c67c5b352c2a66d40632c7a58910000000000000001000000000000000100000000000000206877f0af54e1897bd18be8322d34c806e54d6050df1b5a284baabec781dcb09f000000000000000100000000000000010000000000000020f7704799215b573c2650c1c1f1602bdf4a4c859453e8e4822ba37b47b47583c90000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de00000000000000130000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d000000000000000060000000000000001000000000000000000000000000000205628b4b3f9d92ce95da23456b0bd4a2df3a9b76a08355f837a1cbe2ba5df5abf0000000000000001000000000000000000000000000000208ecb4ffe4281e1ef75948eeb519ae34b8613748612e1b584a21491dd241e5ffa0000000000000001000000000000000100000000000000207cf2f6b647b8ceefb7bd84df3f0996d132dafc56d6dbea89eb9f73d7b8e4dbfc000000000000000100000000000000010000000000000020df2cab15903eaa73ce7464dfe5826b7721dc7f203f86ace6ef641307874ba0e20000000000000001000000000000000000000000000000209465f9312245ecb16d74250a0d035d955d389ec7b69fa15f18764b6e2068a85f000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e40000000000000013000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000000000000000000020d18f506a6337cdb75dfc6f6c08fca9bb479865af3687f703dfcacc1c944092c600000000000000010000000000000000000000000000002025ef29344c4329635be411d163d84595994f0c67c5b352c2a66d40632c7a58910000000000000001000000000000000100000000000000206877f0af54e1897bd18be8322d34c806e54d6050df1b5a284baabec781dcb09f000000000000000100000000000000010000000000000020f7704799215b573c2650c1c1f1602bdf4a4c859453e8e4822ba37b47b47583c90000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de000000000000000b0000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000000000000000000020e241f17b1edaa193953b0c6256a394c99a102e2f27a318f303bb23cd910e43d1000000000000000100000000000000000000000000000020d2a1e56303ae7e862ed3bb7a015aee18560bc8eebcc6d405414dc0b560a13ae50000000000000001000000000000000100000000000000200f7c57bfd632a57c1093842d14319ab138e7de55470d78e62fe4a048b0346185000000000000000100000000000000000000000000000020c9ba63ba09d11172eb9679477c02cdd4c8548636386b24d774960c00905b0712000000000000000100000000000000010000000000000020d3836a99589ef6589becf1d4e63f66d87835b816a66ad09a5c5ebf1042db1423000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e4000000000000000b000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000000000000000000020db705ec832b590eb3514922b05203163213ca9886940c06a54a67431dfd8ab93000000000000000100000000000000000000000000000020c4808d4d78d09dead656ffb5c5bf211e6657f04e03b3cc5f75e0f9f2901a06af00000000000000010000000000000001000000000000002043ae730be375d36839a01e6c35704f00c131d4d88f636ea06ef0371f726da4a3000000000000000100000000000000000000000000000020bb0091c6616437edcbd8efccba7fb3b927f72c66ec3766297f35e4602cfd2178000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b4800000000000000100000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d000000000000000060000000000000001000000000000000100000000000000208933f1db4cc8ba86bbbe1910b9a8b85feaca389d0253d1846ae5f7cbe7180746000000000000000100000000000000010000000000000020b134e1d4f75f877055e565c41463cfb0dfc902862d8a24b25304326a472c821a0000000000000001000000000000000100000000000000207cf2f6b647b8ceefb7bd84df3f0996d132dafc56d6dbea89eb9f73d7b8e4dbfc000000000000000100000000000000010000000000000020df2cab15903eaa73ce7464dfe5826b7721dc7f203f86ace6ef641307874ba0e20000000000000001000000000000000000000000000000209465f9312245ecb16d74250a0d035d955d389ec7b69fa15f18764b6e2068a85f000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e40000000000000010000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f2200000000000000050000000000000001000000000000000100000000000000205a53f605494897b831ce4800c7816cdf85d67ad309a8c93b31507f5029cfe46a000000000000000100000000000000010000000000000020d84ef8b16e30c344e7cc3ad64f0d59b40f7e203717d3ee63e2a5ac4775980fe20000000000000001000000000000000100000000000000206877f0af54e1897bd18be8322d34c806e54d6050df1b5a284baabec781dcb09f000000000000000100000000000000010000000000000020f7704799215b573c2650c1c1f1602bdf4a4c859453e8e4822ba37b47b47583c90000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de00000000000000150000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000000000000000000020e13b5b8397ffca142248e988db22b3e5e6e83fbd2f1effb8f13ac055075e20aa00000000000000010000000000000001000000000000002025b17ff3c65b99b75d5e2bfdba2b8e3e17aa059d3809b54753c1320c7edb0f2b000000000000000100000000000000000000000000000020be7b72f41360e813c4b7943eb7fcf810bfdb91cd6a54c9149c23e8ca4d09a16e000000000000000100000000000000010000000000000020df2cab15903eaa73ce7464dfe5826b7721dc7f203f86ace6ef641307874ba0e20000000000000001000000000000000000000000000000209465f9312245ecb16d74250a0d035d955d389ec7b69fa15f18764b6e2068a85f000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e40000000000000015000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000000000000000000020937f8edacb9e74910070dc910169105945b1e7f096cbd15d624add0cd218c7e70000000000000001000000000000000100000000000000206c4c67ebddd0aba228206ae542313971086f4df8f63de57637d9ddd7b0c833380000000000000001000000000000000000000000000000206bac2681822f454c32baa7eb2bba682b6bc2648d24ae75b227ddbbfc182acf34000000000000000100000000000000010000000000000020f7704799215b573c2650c1c1f1602bdf4a4c859453e8e4822ba37b47b47583c90000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de000000000000002c0000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d0000000000000000600000000000000010000000000000001000000000000002033d912e54f79a98774bb7e1d1d1101fd6185c3be2724a7a595c88ef01b33bed2000000000000000100000000000000010000000000000020bef017a3d479a3a90681d443f0a2a0327c49bbf999892d9cdbb033275e8564d900000000000000010000000000000000000000000000002042006d6f57bb854e8bb72c4e98beb6a2aed05e72abe3aed0fe4ea958bf24592c0000000000000001000000000000000000000000000000205f7d8f694d13a6ab2ad2fc661b08a8dd8d9db8ee3d0444be9f7345f75a594f30000000000000000100000000000000010000000000000020c7bf28ee73face5265fe79bb8a589a3f982ce2fc9a85952518a5c62d7b8b4c64000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac6000000000000000c000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000010000000000000020b0357e5505d6a180dd10e0a38fe72ffe9adb95b0f5ee53f7780fdd38a9ecb21000000000000000010000000000000001000000000000002027ad7f2a3b2965ad47c5d13dd83f68c091154e23d58072c4d9db5500e2a82f7e0000000000000001000000000000000000000000000000205776bc63bc8e79c4d4e75b3a2615529a3a8c00c2dbf3e7bf6593a546aaf7ffa1000000000000000100000000000000000000000000000020bb0091c6616437edcbd8efccba7fb3b927f72c66ec3766297f35e4602cfd2178000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b4800000000000000140000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d0000000000000000600000000000000010000000000000001000000000000002004566fbf9c8f4f08fa61df40eab3e64bb0e2ff5798011b9b24c3601992b9bb6b00000000000000010000000000000001000000000000002025b17ff3c65b99b75d5e2bfdba2b8e3e17aa059d3809b54753c1320c7edb0f2b000000000000000100000000000000000000000000000020be7b72f41360e813c4b7943eb7fcf810bfdb91cd6a54c9149c23e8ca4d09a16e000000000000000100000000000000010000000000000020df2cab15903eaa73ce7464dfe5826b7721dc7f203f86ace6ef641307874ba0e20000000000000001000000000000000000000000000000209465f9312245ecb16d74250a0d035d955d389ec7b69fa15f18764b6e2068a85f000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e40000000000000014000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000010000000000000020a9a324bc7ece27e7c994ea1b7d4f2cf98a86c3b6c28e04c62f325df813ee95380000000000000001000000000000000100000000000000206c4c67ebddd0aba228206ae542313971086f4df8f63de57637d9ddd7b0c833380000000000000001000000000000000000000000000000206bac2681822f454c32baa7eb2bba682b6bc2648d24ae75b227ddbbfc182acf34000000000000000100000000000000010000000000000020f7704799215b573c2650c1c1f1602bdf4a4c859453e8e4822ba37b47b47583c90000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de00000000000000200000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d0000000000000000600000000000000010000000000000001000000000000002065d428600660c5551e82f8844e01cedf1971428ab526e652bfd2c7d0713e1d3600000000000000010000000000000001000000000000002083b30e2cc1942f709aff7eae195e5a54877b52b79f8283e64f512aacfc2c5719000000000000000100000000000000010000000000000020c1d1c50c3f6b5fd6d125cba173a28030dde3e8555d07a3e109c07122b1ee0d1b0000000000000001000000000000000100000000000000200d2d3cafbe675eebb53c04c5efdf84dcc1861855d328d30f484e0ab38e7b4ee9000000000000000100000000000000010000000000000020c7bf28ee73face5265fe79bb8a589a3f982ce2fc9a85952518a5c62d7b8b4c64000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac60000000000000000000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000010000000000000020c88413c981d0825483a68b70aeecc2f58c2cb7edad9ebf314a012e8430b5fa2c000000000000000100000000000000010000000000000020b8b5791a76ef66332e50c46b2b5647c4fd236315013539a7bf48cc374cf3c6f600000000000000010000000000000001000000000000002010ea51456d442e877ded1d0a577fc618c3f7dac6862c38170dec07ce169fd2eb000000000000000100000000000000010000000000000020c2d55771b44ed20c42ec47c4e40541639cf71f150d00ff2366e732dfb3ca4496000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b4800000000000000150000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000000000000000000020e13b5b8397ffca142248e988db22b3e5e6e83fbd2f1effb8f13ac055075e20aa00000000000000010000000000000001000000000000002025b17ff3c65b99b75d5e2bfdba2b8e3e17aa059d3809b54753c1320c7edb0f2b000000000000000100000000000000000000000000000020be7b72f41360e813c4b7943eb7fcf810bfdb91cd6a54c9149c23e8ca4d09a16e000000000000000100000000000000010000000000000020df2cab15903eaa73ce7464dfe5826b7721dc7f203f86ace6ef641307874ba0e20000000000000001000000000000000000000000000000209465f9312245ecb16d74250a0d035d955d389ec7b69fa15f18764b6e2068a85f000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e40000000000000015000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000000000000000000020937f8edacb9e74910070dc910169105945b1e7f096cbd15d624add0cd218c7e70000000000000001000000000000000100000000000000206c4c67ebddd0aba228206ae542313971086f4df8f63de57637d9ddd7b0c833380000000000000001000000000000000000000000000000206bac2681822f454c32baa7eb2bba682b6bc2648d24ae75b227ddbbfc182acf34000000000000000100000000000000010000000000000020f7704799215b573c2650c1c1f1602bdf4a4c859453e8e4822ba37b47b47583c90000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de00000000000000200000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d0000000000000000600000000000000010000000000000001000000000000002065d428600660c5551e82f8844e01cedf1971428ab526e652bfd2c7d0713e1d3600000000000000010000000000000001000000000000002083b30e2cc1942f709aff7eae195e5a54877b52b79f8283e64f512aacfc2c5719000000000000000100000000000000010000000000000020c1d1c50c3f6b5fd6d125cba173a28030dde3e8555d07a3e109c07122b1ee0d1b0000000000000001000000000000000100000000000000200d2d3cafbe675eebb53c04c5efdf84dcc1861855d328d30f484e0ab38e7b4ee9000000000000000100000000000000010000000000000020c7bf28ee73face5265fe79bb8a589a3f982ce2fc9a85952518a5c62d7b8b4c64000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac60000000000000000000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000010000000000000020c88413c981d0825483a68b70aeecc2f58c2cb7edad9ebf314a012e8430b5fa2c000000000000000100000000000000010000000000000020b8b5791a76ef66332e50c46b2b5647c4fd236315013539a7bf48cc374cf3c6f600000000000000010000000000000001000000000000002010ea51456d442e877ded1d0a577fc618c3f7dac6862c38170dec07ce169fd2eb000000000000000100000000000000010000000000000020c2d55771b44ed20c42ec47c4e40541639cf71f150d00ff2366e732dfb3ca4496000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b48000000000000002e0000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000010000000000000020182f82e7262eeacb438f51374a7004f300e44ef73c95a930aad6e27e862185c10000000000000001000000000000000000000000000000207dfcb8c9f57ca5159b6b0f5da579050079f9b22c18be38b7405925544de7975a00000000000000010000000000000000000000000000002042006d6f57bb854e8bb72c4e98beb6a2aed05e72abe3aed0fe4ea958bf24592c0000000000000001000000000000000000000000000000205f7d8f694d13a6ab2ad2fc661b08a8dd8d9db8ee3d0444be9f7345f75a594f30000000000000000100000000000000010000000000000020c7bf28ee73face5265fe79bb8a589a3f982ce2fc9a85952518a5c62d7b8b4c64000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac6000000000000000e000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000010000000000000020c8ed5356e52489778c54543a278d444efebc5f030be2e4c3da67d57fabfbc3390000000000000001000000000000000000000000000000209d3ecfaabf2349b466e75f5d4d21d6bef1004d3ff8a3e35f6d25e0666d6d73470000000000000001000000000000000000000000000000205776bc63bc8e79c4d4e75b3a2615529a3a8c00c2dbf3e7bf6593a546aaf7ffa1000000000000000100000000000000000000000000000020bb0091c6616437edcbd8efccba7fb3b927f72c66ec3766297f35e4602cfd2178000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b48000000000000003f0000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000000000000000000020aa91659e81a9e3beb2010d16c49d2db51657b89c9c28fbf36d62030345c6dd8c000000000000000100000000000000000000000000000020c42e0962a2206fc81f628b42c20604d0e662376d935441849b31562a20765abc0000000000000001000000000000000000000000000000205206346f75b18d2c300ceaa3b5769985e3e1b1ed21d2ee1547545fc5175c6a1500000000000000010000000000000000000000000000002090cc97417219408f556666854f319b8a85d02d829def6fdb6ad22e5c9ec340f2000000000000000100000000000000000000000000000020035851a56b7064cdd51a4fbb03b1407948fca5abb5ea818749904591c0a56b79000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac6000000000000001f000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000000000000000000020249f70c83f02b7ab2a26987366fa4080bed68f0e2465133381926012c5d537460000000000000001000000000000000000000000000000202916348747e4a1886c8a06c53e34db0f89de76f193208ca20a769fbdfdbb7d7100000000000000010000000000000000000000000000002067555b03b5e50b46aae191ded9753ba10e19a72644ee97c779f38300e16408010000000000000001000000000000000000000000000000208e0b779ae73988997c60f43e98cb8a6a99bc4233a6006cca1aff6bfcde22a7750000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de00000000000000270000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000000000000000000020fb429f1781c169be615a8d329685b7cab551a23557e69c54c8e6c0bda88d871a000000000000000100000000000000000000000000000020c95b9d9a3cd41a15d71a235836add0556e76bdb2384a45492c1b0af8f5e0cc89000000000000000100000000000000000000000000000020c1e013d8ba86dee1e79fe4da35f79570511b59a83912aeb51c87be2dfcc3264d0000000000000001000000000000000100000000000000200d2d3cafbe675eebb53c04c5efdf84dcc1861855d328d30f484e0ab38e7b4ee9000000000000000100000000000000010000000000000020c7bf28ee73face5265fe79bb8a589a3f982ce2fc9a85952518a5c62d7b8b4c64000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac60000000000000007000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f22000000000000000500000000000000010000000000000000000000000000002074ac1ff9212e5ecd566fb9c760faf214ccf5f8076fc44e3b97a40e2a8f2e5a3d0000000000000001000000000000000000000000000000200c5710198e2e5685360c556e3532d7b2aa35391509c057a0af539692558838e7000000000000000100000000000000000000000000000020773cb9dbf1ccad8eb8156e9a250210a545518f07508f01bbbcfb6de31681f54c000000000000000100000000000000010000000000000020c2d55771b44ed20c42ec47c4e40541639cf71f150d00ff2366e732dfb3ca4496000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b4800000000000000100000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d000000000000000060000000000000001000000000000000100000000000000208933f1db4cc8ba86bbbe1910b9a8b85feaca389d0253d1846ae5f7cbe7180746000000000000000100000000000000010000000000000020b134e1d4f75f877055e565c41463cfb0dfc902862d8a24b25304326a472c821a0000000000000001000000000000000100000000000000207cf2f6b647b8ceefb7bd84df3f0996d132dafc56d6dbea89eb9f73d7b8e4dbfc000000000000000100000000000000010000000000000020df2cab15903eaa73ce7464dfe5826b7721dc7f203f86ace6ef641307874ba0e20000000000000001000000000000000000000000000000209465f9312245ecb16d74250a0d035d955d389ec7b69fa15f18764b6e2068a85f000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e40000000000000010000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f2200000000000000050000000000000001000000000000000100000000000000205a53f605494897b831ce4800c7816cdf85d67ad309a8c93b31507f5029cfe46a000000000000000100000000000000010000000000000020d84ef8b16e30c344e7cc3ad64f0d59b40f7e203717d3ee63e2a5ac4775980fe20000000000000001000000000000000100000000000000206877f0af54e1897bd18be8322d34c806e54d6050df1b5a284baabec781dcb09f000000000000000100000000000000010000000000000020f7704799215b573c2650c1c1f1602bdf4a4c859453e8e4822ba37b47b47583c90000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de00000000000000290000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000000000000000000020575175cf206fcdabc4591de306abe1dfd23958c188be1065ce39f114072e1b3b000000000000000100000000000000010000000000000020269a4be1df6cd35893511c8c31a8ed43c5d35d850e300e9ab2f0adbbbbd83bce000000000000000100000000000000010000000000000020bba8a10d74ff3c54bfeecd7d2d784ae92cc9e785fcc43b81b5e8f48b43a38ff50000000000000001000000000000000000000000000000205f7d8f694d13a6ab2ad2fc661b08a8dd8d9db8ee3d0444be9f7345f75a594f30000000000000000100000000000000010000000000000020c7bf28ee73face5265fe79bb8a589a3f982ce2fc9a85952518a5c62d7b8b4c64000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac60000000000000009000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f22000000000000000500000000000000010000000000000000000000000000002019caecf361bc35f371daf2dcbd46d69a115c5ca4fecef1b3c66cbc581cf69390000000000000000100000000000000010000000000000020fb5c3fdcbf73601e13aea9c6240825f773e1ee25b768467052a7d1d64ddf741d00000000000000010000000000000001000000000000002043ae730be375d36839a01e6c35704f00c131d4d88f636ea06ef0371f726da4a3000000000000000100000000000000000000000000000020bb0091c6616437edcbd8efccba7fb3b927f72c66ec3766297f35e4602cfd2178000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b4800000000000000340000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000010000000000000020fffc24af5d4c94822c94141e57efe083d9a0665517b9c2fa43e3f704bfa3af560000000000000001000000000000000100000000000000204efbcbc5dac303e4094a1f4abd4ba72877f1eb11481aad2deda8db3839bc26ee0000000000000001000000000000000000000000000000203eb4c192d55cee6b45e35fbdb149bb4b0133d0c00b566475a6f0414ce7b905fe000000000000000100000000000000010000000000000020fc12c5a2aee6718fe266d2ad3deb393026c277d8f63fdb4468ca5f106e54081f000000000000000100000000000000000000000000000020035851a56b7064cdd51a4fbb03b1407948fca5abb5ea818749904591c0a56b79000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac60000000000000014000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000010000000000000020a9a324bc7ece27e7c994ea1b7d4f2cf98a86c3b6c28e04c62f325df813ee95380000000000000001000000000000000100000000000000206c4c67ebddd0aba228206ae542313971086f4df8f63de57637d9ddd7b0c833380000000000000001000000000000000000000000000000206bac2681822f454c32baa7eb2bba682b6bc2648d24ae75b227ddbbfc182acf34000000000000000100000000000000010000000000000020f7704799215b573c2650c1c1f1602bdf4a4c859453e8e4822ba37b47b47583c90000000000000001000000000000000000000000000000205eb2321486fa4ef31bfd8b8162dd71a3aeebd438b53b74e3b834d8fcaf9412de000000000000000e0000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d0000000000000000600000000000000010000000000000001000000000000002058f261dab560c2ec7776c311bfaa0fe7b7fcbc9f30f66b1171039ec68be7722d000000000000000100000000000000000000000000000020709822e0b4ed9edf475f0023de91ba3d4868336c0c70ee665dd651c2aa2147e20000000000000001000000000000000000000000000000204ec4fbe14157b781bb37e9e7ee4b81b5d9722883a00cae3760d2952c34138407000000000000000100000000000000000000000000000020c9ba63ba09d11172eb9679477c02cdd4c8548636386b24d774960c00905b0712000000000000000100000000000000010000000000000020d3836a99589ef6589becf1d4e63f66d87835b816a66ad09a5c5ebf1042db1423000000000000000100000000000000010000000000000020e1da2b66781d4b399d56d97814b957728159371d6fd938b4e21c733c3fbc40e4000000000000000e000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f220000000000000005000000000000000100000000000000010000000000000020c8ed5356e52489778c54543a278d444efebc5f030be2e4c3da67d57fabfbc3390000000000000001000000000000000000000000000000209d3ecfaabf2349b466e75f5d4d21d6bef1004d3ff8a3e35f6d25e0666d6d73470000000000000001000000000000000000000000000000205776bc63bc8e79c4d4e75b3a2615529a3a8c00c2dbf3e7bf6593a546aaf7ffa1000000000000000100000000000000000000000000000020bb0091c6616437edcbd8efccba7fb3b927f72c66ec3766297f35e4602cfd2178000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b4800000000000000290000000000000020b78ea16902b71f7599325afe318df0c13357140419832f03dd1e34fa98dff7d00000000000000006000000000000000100000000000000000000000000000020575175cf206fcdabc4591de306abe1dfd23958c188be1065ce39f114072e1b3b000000000000000100000000000000010000000000000020269a4be1df6cd35893511c8c31a8ed43c5d35d850e300e9ab2f0adbbbbd83bce000000000000000100000000000000010000000000000020bba8a10d74ff3c54bfeecd7d2d784ae92cc9e785fcc43b81b5e8f48b43a38ff50000000000000001000000000000000000000000000000205f7d8f694d13a6ab2ad2fc661b08a8dd8d9db8ee3d0444be9f7345f75a594f30000000000000000100000000000000010000000000000020c7bf28ee73face5265fe79bb8a589a3f982ce2fc9a85952518a5c62d7b8b4c64000000000000000100000000000000000000000000000020b916cfd9b2d76a5dc07362a1b18e659abb3708f38009226faf3e437fba145ac60000000000000009000000000000002060894c1fdc1cdf4859c5bd29c1a08cf49e4337bfc5dfc81e23921f8a119d1f22000000000000000500000000000000010000000000000000000000000000002019caecf361bc35f371daf2dcbd46d69a115c5ca4fecef1b3c66cbc581cf69390000000000000000100000000000000010000000000000020fb5c3fdcbf73601e13aea9c6240825f773e1ee25b768467052a7d1d64ddf741d00000000000000010000000000000001000000000000002043ae730be375d36839a01e6c35704f00c131d4d88f636ea06ef0371f726da4a3000000000000000100000000000000000000000000000020bb0091c6616437edcbd8efccba7fb3b927f72c66ec3766297f35e4602cfd2178000000000000000100000000000000010000000000000020d18ee067119d66b46ada8871f9ead5797b6c8f2347a3cb8a7228a098f3fe9b4800000000000000023bb7acaf8ba7fe41c32f431d7c80057c61001976d5ffc80a6a3ea9c31e97824c2d3a2c35e5ad9ff08e7503f19bede48aafeed799663875d39f6928ea98a00b3c6633cfbe \ No newline at end of file +0x040000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec3b8a6660e79ffa5bc1b3aeda35a0aeab6e7b408c29c83550df3bb166597efe6800000000000000533b8a6660e79ffa5bc1b3aeda35a0aeab6e7b408c29c83550df3bb166597efe680d48b9f9a1f52577da4d5cb94d65e04052d79db412bde4a0173fa42abd6d4a4529b3ffe4861fe3cac8826a430c2369589f4ddeccabb52625f775b34bbf7af804026ba1e029c9bb574382cf9e82fd61417bef7b8854687e04db1103e8b32273581083ff769e9f72f5ea8c134f3cb10ebab5b18f0b3ea2d36b09c4edb3bd66d8110c1a2960d0f0a8b4518e0e188ef2e6476bad69a9a60a76184755138b7fac40b81293fd51191d3ecd94bc608c2f7549a56a31323c2fe127fb97ab7395b30238543c82cee414b34b8597c6467acabe7f651a6310503e344e7964a961b97e5d43983b8a6660e79ffa5bc1b3aeda35a0aeab6e7b408c29c83550df3bb166597efe680d48b9f9a1f52577da4d5cb94d65e04052d79db412bde4a0173fa42abd6d4a4529b3ffe4861fe3cac8826a430c2369589f4ddeccabb52625f775b34bbf7af804026ba1e029c9bb574382cf9e82fd61417bef7b8854687e04db1103e8b32273581083ff769e9f72f5ea8c134f3cb10ebab5b18f0b3ea2d36b09c4edb3bd66d8110c1a2960d0f0a8b4518e0e188ef2e6476bad69a9a60a76184755138b7fac40b81293fd51191d3ecd94bc608c2f7549a56a31323c2fe127fb97ab7395b30238543c82cee414b34b8597c6467acabe7f651a6310503e344e7964a961b97e5d43981fcae388c10f0310e6552f841d230c8abbc5e3952fd6e048dbcb86da2bf4dac63e4a437fef1a8cbcc09bf7ef5cd0de7413278462f4a280672fe7fc60fbb24d1f38fb1266f415fbd2618cfb2426d85025c3e9ac6c13d4ce1cb5709b216b4da6b23ad5f1e1878da42a2ccdff2145677506b43c7f3953fd0fb5837646c7449552fa1fcae388c10f0310e6552f841d230c8abbc5e3952fd6e048dbcb86da2bf4dac61af710639a33a9ee25a99551d3fd807e70499333913a0f7ce486c5d6cd45a1b60e3b793fd5a68f9a482cf67859f3839a0135ebf429b91712d8b08c7fa3a7567c25783486835278b791d4f86fac81f6b5f44bd4014429fd274ea0d8ff2b30eabb378ae8b217281e98232cf4c6dc2b21498547a11fd3025f8ab5fc7ade97636da70b9c4039ea8b3beac33234743333ca87f5134f53de0e5205308912bb2f311cc028e0b7f36cbe74e06f193787efb9169bffc97bda59757876b0ee320f0e0284712fb0a4b594cb133a84d3b178be4595d031abfaaf17d83f3aa7f7c86c6477497e39b510be988b37278da62e5c6fcd77080526baae86e6536138ce73158217757114fad50563699062130a310707b77fc1bc087e3b682af35da42912bbed2a3db539f429a1fa53e4b8ea5cf81151d917a9c6df281fe390dd60fc915b3d85c942d23f79c1653760ef434bcdd9325ea674961fd9467593c46b4c11254bc5b581f4752714e715c848cc082c40d96b40a49ffae3a9e3c2a3707aed3c5dc8c493c3852524d458cd7f86fdba1387bf56c6d2174e370b3a80acf28f008c4d6010f5d0c592255f2a95b76358c4ecdcd15a9d757e6ed48acf298ec60238d31894388f75d2432c0ddd3571b65a3f78c96f8a052a2f5c1059f2586d8b149d986300e1c76cb79b3f79c1653760ef434bcdd9325ea674961fd9467593c46b4c11254bc5b581f47524d458cd7f86fdba1387bf56c6d2174e370b3a80acf28f008c4d6010f5d0c59235d6c0e2bc4bf9b3478b00e830212313714dbb35ed434ef0f81e1f97afa9dde0207754c58fa029b19d60823cb9b80600c65426bb7cd0f76bd4bb35a6ab228f6d093cfc0545994d8462194e84f773fb5e55e6f18257f6b4c0b7759840e0eae616000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011386e11508028bd92fcb743e3ceb317fe6f5df7f6f1d300aa7f809d449ea0c022e4dfe7d12164b6239e7c9eb2ebdca4cbcc6d444a2201b7c000b2ef4486f2e9301eb82bec9b8486ae3708fadc07941183b8fb79edf197285a2a872fdb26e9f49308d1e68759d249863813a3c914ced6451c4e9e114040b78d30b1753caf4562e1381845cd9d1929d28af991511cd6b73c337557dec89e983ec4ca6a61326d025104662ae04621992f1644ff6e07dbabf4fc02d8fb207b7d7a581b064f8a49618211033eb9c643f5aa17d6d6ca1bb6b7eafbc604d1357cc738f677838f84f699b2e5a3d96333ebff3ee0af36678a36a49a49b81dac445b83cfd9afafa3d1b765122742dea9cfabcd5006f3d3344fd28adb33119837314942138ce20930c14a3ef02642d30fb1a2590d0ff02320494e00adf51ccb1ed181c5985a32605c23c8e4c04060aa38c19f2e05ca7a9739317f6b800cb62fb5239e178153a818b4c56d2500eb257f27891f0ca13714e85da863122c32f475ac530ccaeeb609063d779997c2c540d28920a418db3a6fe15b4809af09d78b633ac8080e545dba5e0213495740ad6d6dd1167d144780a998114791307ca8d6b1ca4394812e2626e2bb0fa267539e43bc6c21a50a9f8a3fdaa801b11c295065e29310dd12d9dca0d29ba0c3ec4378ce952f611196c6e223a96364b0e815988e7195d6a1fe4739343f43891a05d0523a72265b1e1ba213d0539480b67cc811195501ca6efe7e67107a0dc596f6f3ef15adc4bf1cca3a0d046d0335a292ffaa53f387c1c6cf3021946253a125e8c1b6584e14daa5c859bda222ad588895a241f0e837a115d6a8dfbbeabf029804a08cb88878c651b92667a32bbcd6e579972825ff0330f1cd625bb36b5bda0a940253c4909ed3dfaa23ea5f69763398832bb1b29e242fdb37e42ae03817d76f26831d06a215bd7d99e225fb0e631e3cccef4daf6126e6438169ad736971bd733e60c2e5bfc1a4f690282180993a161dc042d6bc330b9d726aaef5476d772153a2b3316f51d7f572789ff802a0ab7ea5a94820235a8e4a479befdd609b0e39b911716bf4f3d0177c64e2a1e5806404df80697708d5955c4506b023c764d8566128b118bd25cd4a88e33805f8b08bafb39a45de3d3b9ef1fe0d8dda473a3381a952b33d23ac99eb5e027d7f8b3ac77261c44217a8df7cf370485223a1991d22dbe7e2f92c088ce97cfc0af663c5a49a20aa3a911020ac06609cf037b26026da6f43d3c85b46332cda28f4c9a1d257ce7b66c404ff57c3ad427693e3320e5a08da3ab3184098bcd5e02c70ae14e1ef4961d49b2d955779a7f67196a834e0b98c93ec41ee89881b9bca881ba7c672deb97409af7d2c942480213e6c407fdf32966b4c806b2624e45eeb55e757026af6b0de308efd88a2a8f5b95d6f536fbbb89c036f41463da7e94e3f3c10299bd1c2b60d8c9d5530eed1292a4fc5d472eabf191dc92224c25c11f608b7574a554eb06636054d8ba984845e7f1f2393da13aa3db4c4518525e3d2ff319d7ec1e5de34a5e5abd048b28a36d173bfbaba0dafab00a56882e3ce1069ab30c677937f40ec2cc289905bec7b29d0141ee6c0d8449c71561200951110389a4d974683608aadbaac0b5cd9ef1e88b6ed648ac7bf530321e2feb178f6389ae42eddc7b9a4073bbd19cd0d1903da304e2079bef3e4e68fedc349e3a2d32c27d6c01b6f7bb149b2e591fa1958325ac84fcfb89d2fd23544096d77903d705e49c48196ba36aa0458c744e62e738feecc9abb9734a89bb3278e4aaa8000000000000000a00100102020203110407000000000000002c0202020202020202030303030303020202010202010101010101010101010101010101010103030303030303000000000000000200000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff259000000000000000201010000000000000dc00a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa135eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5603256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c85250da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b6044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b2a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a1584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff770a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa135eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5603256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c85250da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b6044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b2a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a1584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff77291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa126c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b352254da5cad22b2bb31a255d43899f5be174c33d783688ffa31918b2d0e604e3319a2a83a6dd65b246c9f7d539b67b09c3b0afe9bcc31f641e4746e726732ac054d2413280ec17c6620f5d9331f6279010efdd8b39bd72e8d5068ef8a9e85020e21a3242b6971d3fe4ccb9ef696b9135da7bcf4fca2d262a5eaa074516d97dc040243d4624103ea078037d2db2be41cd84ba35cf91ab2d2197a06bed39137111249a9fbefe0ae6d10083758728c436f632e70c3dee37c0fa87bf17cbf10fe1d09b2b29c8babd2a0b67e37f0c6846a560b6c78a30f0ca75ad56ceaedaf1344f12393439f711e2b08f75b68f05cb3b276815f865555ed2e10a9d53c730721c2362624398d0ba3a6e2b9dfd9febb35b3873f9ce34b46adf497ab23701e0e96f06a0da19af7f417d8eb69f248beb2644edf3b290f5bc8b5ed5b52594d3115ed7ada21cb3739171b79e6d1926a281a86449c7ace69200e0765a4f796d0fe079a1014262571d9c779e3853b1a218e4203c4bd360ea7a715413a46d34827875fea93fc2624398d0ba3a6e2b9dfd9febb35b3873f9ce34b46adf497ab23701e0e96f06a0da19af7f417d8eb69f248beb2644edf3b290f5bc8b5ed5b52594d3115ed7ada27177fb2c298c3e589cfb206d276b9d07679c8d79643496a368a65eef2d2fb491bf90a1889423f7d0d781be9bda36aaff0d5258b1656ea0fe114fc9590d8da451ad4c5a96eb27d29759dd9ea539f7bde9c2c9e9e0317560410399d89568fb04f3baa8b5930a0b9898617b57e6630c42e29d90a9259c187073aa0ce5f0928421d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001215ebba77b4db36265d82f216ebe040b8e43301151f85e4da04175b72540d2b4093344aa5551c9d5f5e550ed013a08dfbd10410b94fdc010412822d567e884b92bd42515e3b696dd829d945b17c664461221a67dbbecc87c05d9d07f5f0a71853dbed5249e75063b30ad99d106d9530cc22653c567b0f4e01557b039211155c617da6479265927e185d2d73d372bff4f2e873a95359b8b6a0f37ad0179950c34200d21315a898ee21cc4662f5ffc477ab2baaa06ae28764c04764f2aa609fd1418a741d5987f7763923aa3a9e4d825a3c611007d2d1a3fe1c6dc3b4f6301313525cef83c7d3327068ecd76d87c5c57d360343b129e81ea96cca82a2e75b4d5f205a6e70ca2ab65100f014f978e9796945da1c77551e3f0a9dd6e3fe21abf9143108255465a529a572ae1b1b54394dad36846488042a56ec14c6fe952d18df069355b2b6332619f6e17c56f48b51e1ec19c549258d3efbf5371381317cb587cbf2f1b50bd9b18486bc4d1ad07b8f37ba24a5eb2749bdab1f57267741639252447170f6423726cf447b56acc165c82efb98dc57b8417f3660477fde88802ece7581c120860c5b2f4dd377e5bb6c685c77ab528d9a3c8445a577b48155d621c6c512d00fa2f4cfdd0530e324ccc8d77190144133bfb458fee8ce0e5815f1958afaf3aabc6d365494c3fe7a8b4b601d7609bc1d7197ad8ea2883b415324b5011208f08b38855ec1ef24871d5e05e65b5151207792f3d2d606d35a27411cafe2a00f016f8dd3503b8f3a886f6381060bcbc3f08922007b5bcdfbde3a85380fa7a39b71ea68aa63202dabb517b741ead5ebc7419f2f5f139d5498aa4d31ce2c27363260306246aae23311b3d68ec6e942727bd2eecdd2f46c917a2f188697e15467b1819ddae318bf4dcd55b17f3fa4e4d99ece632e45bff54b54e313e4ec274c10c0c2b92d8f8fb08ed61065655fc37c98dbf66bc23cfd92a39d6452ec97465132f562ec078961936ee31a1f5c4f08b6f7808883adc2b1dc794be6eef4b647de38e580f3cec39d5447ba79dcd3f56481d4476689f13e26a03dfa79e41551822693b4131fc43cb87d7eedffac21f8ce47604d5b52b6f28a05bc408c76d759890a0228920cd61561e622fbf4729eef4a6b6262af44089635c720e09d25fb6260a60a0271a7a8e3eefe81bd012c1fcba3907be1af3eb3798a5351c2f22196f01520756063505db2eaca7cb6c118a0773a439208666a25ebc401aed8634853835bca17ccf179d60261259eae4300e1035a637144d282b386114aa91cd89a1ea421aa9b0be3f791c9a36cd2080991066a02005ce3bd9e9f0adc2ed35646d789f172e81892225ca0650c0869e913ee053a594ba70e27f14edfacd1fe986f6450333a380f3033edb9eb85b150517c9774aecaecafb4257e4501c81c4a7bbabde2660e5ea3ae807121e6171151738ff202a2644f5fd60e1b6ea1710bb69bebe72a1d228cf17891d575cd005ed347d37490087b7337d03814da192397db0618d95092f4370928d061f655fbbc7963ae95add872fba10115aee62ad7162c4d708207857af60d7733cfcc337e7958d062f5ed29dcec2feb3009681f2ca026a5512013888cfa97bad17616564587c5586670c03e25e4876314d5e8d82710537d261878f98e7f2037f27c25397202a42f211f61cc3b7a43ba4c8900e38ff31a3ff7fd68b05b1bc0b093a96b2855133dbb7ad638dd547d4c769b5dbc814147f8977e09f3caa55b3d95f2a8885194bdcf7f5d6079d10bea0d29a9635ed4cd029d8434a775c821a4e16da05a21c604c153979d4d5b4169bc22e5da3e920853c172c36774e5abe1b2aad2007b1dc16bc129755a8ea24021754ec94a5fabca5cdf72b34a66ced589fe4fdc117c3f1468f9773097839a306a1e1e8dd6d6e0213cdcb86851a96088ba8cb7a840281fa11cec3160470754e0f11984bab0e0a38283e1e63ea8fac5f63707f543e3cf2c34064b11fabd018c452a280ab136da447d4adae8629dd21611d8f56f6953a49d1d59f338127fda5bf82217f116db50d0be89b62d5dc5b85e022cfa092d810f4df5397033e67469c4a07ac1a5e2e7c2d269c004fe4688e0de28dc37503b11321004ffa7604461606ad6cae91468b08bd4a3bb88dd90406214dd855fe13a63292e1f572c5d814410be7311ecf189116e8baa3a73167b838da308efb62ad05281314f0ad7c196b92dc983413b825753eba9d072f5e8ee73470b2612ba69b3c0a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa135eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5603256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c85250da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b6044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b2a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a1584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff770a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa135eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5603256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c85250da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b6044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b2a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a1584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff77291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa126c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b352254da5cad22b2bb31a255d43899f5be174c33d783688ffa31918b2d0e604e3319a2a83a6dd65b246c9f7d539b67b09c3b0afe9bcc31f641e4746e726732ac054d2413280ec17c6620f5d9331f6279010efdd8b39bd72e8d5068ef8a9e85020e21a3242b6971d3fe4ccb9ef696b9135da7bcf4fca2d262a5eaa074516d97dc040243d4624103ea078037d2db2be41cd84ba35cf91ab2d2197a06bed39137111249a9fbefe0ae6d10083758728c436f632e70c3dee37c0fa87bf17cbf10fe1d09b2b29c8babd2a0b67e37f0c6846a560b6c78a30f0ca75ad56ceaedaf1344f12393439f711e2b08f75b68f05cb3b276815f865555ed2e10a9d53c730721c2362624398d0ba3a6e2b9dfd9febb35b3873f9ce34b46adf497ab23701e0e96f06a0da19af7f417d8eb69f248beb2644edf3b290f5bc8b5ed5b52594d3115ed7ada21cb3739171b79e6d1926a281a86449c7ace69200e0765a4f796d0fe079a1014262571d9c779e3853b1a218e4203c4bd360ea7a715413a46d34827875fea93fc2624398d0ba3a6e2b9dfd9febb35b3873f9ce34b46adf497ab23701e0e96f06a0da19af7f417d8eb69f248beb2644edf3b290f5bc8b5ed5b52594d3115ed7ada27177fb2c298c3e589cfb206d276b9d07679c8d79643496a368a65eef2d2fb491bf90a1889423f7d0d781be9bda36aaff0d5258b1656ea0fe114fc9590d8da451ad4c5a96eb27d29759dd9ea539f7bde9c2c9e9e0317560410399d89568fb04f3baa8b5930a0b9898617b57e6630c42e29d90a9259c187073aa0ce5f0928421d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001215ebba77b4db36265d82f216ebe040b8e43301151f85e4da04175b72540d2b4093344aa5551c9d5f5e550ed013a08dfbd10410b94fdc010412822d567e884b92bd42515e3b696dd829d945b17c664461221a67dbbecc87c05d9d07f5f0a71853dbed5249e75063b30ad99d106d9530cc22653c567b0f4e01557b039211155c617da6479265927e185d2d73d372bff4f2e873a95359b8b6a0f37ad0179950c34200d21315a898ee21cc4662f5ffc477ab2baaa06ae28764c04764f2aa609fd1418a741d5987f7763923aa3a9e4d825a3c611007d2d1a3fe1c6dc3b4f6301313525cef83c7d3327068ecd76d87c5c57d360343b129e81ea96cca82a2e75b4d5f205a6e70ca2ab65100f014f978e9796945da1c77551e3f0a9dd6e3fe21abf9143108255465a529a572ae1b1b54394dad36846488042a56ec14c6fe952d18df069355b2b6332619f6e17c56f48b51e1ec19c549258d3efbf5371381317cb587cbf2f1b50bd9b18486bc4d1ad07b8f37ba24a5eb2749bdab1f57267741639252447170f6423726cf447b56acc165c82efb98dc57b8417f3660477fde88802ece7581c120860c5b2f4dd377e5bb6c685c77ab528d9a3c8445a577b48155d621c6c512d00fa2f4cfdd0530e324ccc8d77190144133bfb458fee8ce0e5815f1958afaf3aabc6d365494c3fe7a8b4b601d7609bc1d7197ad8ea2883b415324b5011208f08b38855ec1ef24871d5e05e65b5151207792f3d2d606d35a27411cafe2a00f016f8dd3503b8f3a886f6381060bcbc3f08922007b5bcdfbde3a85380fa7a39b71ea68aa63202dabb517b741ead5ebc7419f2f5f139d5498aa4d31ce2c27363260306246aae23311b3d68ec6e942727bd2eecdd2f46c917a2f188697e15467b1819ddae318bf4dcd55b17f3fa4e4d99ece632e45bff54b54e313e4ec274c10c0c2b92d8f8fb08ed61065655fc37c98dbf66bc23cfd92a39d6452ec97465132f562ec078961936ee31a1f5c4f08b6f7808883adc2b1dc794be6eef4b647de38e580f3cec39d5447ba79dcd3f56481d4476689f13e26a03dfa79e41551822693b4131fc43cb87d7eedffac21f8ce47604d5b52b6f28a05bc408c76d759890a0228920cd61561e622fbf4729eef4a6b6262af44089635c720e09d25fb6260a60a0271a7a8e3eefe81bd012c1fcba3907be1af3eb3798a5351c2f22196f01520756063505db2eaca7cb6c118a0773a439208666a25ebc401aed8634853835bca17ccf179d60261259eae4300e1035a637144d282b386114aa91cd89a1ea421aa9b0be3f791c9a36cd2080991066a02005ce3bd9e9f0adc2ed35646d789f172e81892225ca0650c0869e913ee053a594ba70e27f14edfacd1fe986f6450333a380f3033edb9eb85b150517c9774aecaecafb4257e4501c81c4a7bbabde2660e5ea3ae807121e6171151738ff202a2644f5fd60e1b6ea1710bb69bebe72a1d228cf17891d575cd005ed347d37490087b7337d03814da192397db0618d95092f4370928d061f655fbbc7963ae95add872fba10115aee62ad7162c4d708207857af60d7733cfcc337e7958d062f5ed29dcec2feb3009681f2ca026a5512013888cfa97bad17616564587c5586670c03e25e4876314d5e8d82710537d261878f98e7f2037f27c25397202a42f211f61cc3b7a43ba4c8900e38ff31a3ff7fd68b05b1bc0b093a96b2855133dbb7ad638dd547d4c769b5dbc814147f8977e09f3caa55b3d95f2a8885194bdcf7f5d6079d10bea0d29a9635ed4cd029d8434a775c821a4e16da05a21c604c153979d4d5b4169bc22e5da3e920853c172c36774e5abe1b2aad2007b1dc16bc129755a8ea24021754ec94a5fabca5cdf72b34a66ced589fe4fdc117c3f1468f9773097839a306a1e1e8dd6d6e0213cdcb86851a96088ba8cb7a840281fa11cec3160470754e0f11984bab0e0a38283e1e63ea8fac5f63707f543e3cf2c34064b11fabd018c452a280ab136da447d4adae8629dd21611d8f56f6953a49d1d59f338127fda5bf82217f116db50d0be89b62d5dc5b85e022cfa092d810f4df5397033e67469c4a07ac1a5e2e7c2d269c004fe4688e0de28dc37503b11321004ffa7604461606ad6cae91468b08bd4a3bb88dd90406214dd855fe13a63292e1f572c5d814410be7311ecf189116e8baa3a73167b838da308efb62ad05281314f0ad7c196b92dc983413b825753eba9d072f5e8ee73470b2612ba69b3c199708d32e6449e450523f4e624c14d8be8baccc0b83f0e5bd5d9dfff78b4ffc2668f72cd19bb61bafadc0b19db3eb2763baec2ffdc90835dbcf92ed0874b0053ff32c1fe7f57175919b3c87eb7c683b9673c7003046bb6119a6e512d5b88feb000cd3e0180a8e8a6e64c378148397c48bd2d1fbd9063dba7f864bda2a4770163fbfdc9f87cb374bd8082ea7996e092967287f10cc2dc4771b8db5aa2c9acf93004023607834c8b427f7d1586691f6d6bb1e19eb3d1f34a47d9f7b42d365306e3ebf4f1da6f8147b3828e945ff262dce7ab01763d7b0f1e5250fc89edf060ddb0140b0e25907eb84c7d716ba00d9d231a7968198319c0736741d684e20f9f226199708d32e6449e450523f4e624c14d8be8baccc0b83f0e5bd5d9dfff78b4ffc2668f72cd19bb61bafadc0b19db3eb2763baec2ffdc90835dbcf92ed0874b0053ff32c1fe7f57175919b3c87eb7c683b9673c7003046bb6119a6e512d5b88feb000cd3e0180a8e8a6e64c378148397c48bd2d1fbd9063dba7f864bda2a4770163fbfdc9f87cb374bd8082ea7996e092967287f10cc2dc4771b8db5aa2c9acf93004023607834c8b427f7d1586691f6d6bb1e19eb3d1f34a47d9f7b42d365306e3ebf4f1da6f8147b3828e945ff262dce7ab01763d7b0f1e5250fc89edf060ddb0140b0e25907eb84c7d716ba00d9d231a7968198319c0736741d684e20f9f2260552acfb4136a8687c086867198f336159a70e0de3347500c25c57abf0d8fec13c5f354a6809f5d8fc0d754f10b0845dec5a231524772141e6eba5461ed414fa25edd8763b0e9f24ec8bee196162f82280e8709816f727bdb7fdac9abcdb63e01de7898ca0b76c5ccf8ea31d9866d81454a22428dfdbb89c3b361d9f92cb08572d20453530a536138a5e783467eae3615daf0175f4fbd68ec917cd7f4275be3927541176da83940bcddba5bf8fca313a0cf166a61adf78fb1346d8c784dd7d830acae72a2f689511f97308548c27da6e25827a2532409dc67754fc46b0e92e44227540383b7afdf410f271f0e0351c0831df6f510d3bd8407f2ed3eb70f5bc712d9984b2636e7d95d7648d19f09250ebbdbbed363f3f0389a1539eebd5e1d9b6011c70368251cafa3a9d1d43276700552c4966997ab9e345bb35caec036d63d53922206432f3dfcc7c9db66cd40c3169170a7debe25aba8d226ca0ae7c7d7cd0256d0959e0317b94da37c2704348955c8259f71fcfa70eeb3e4982c8959e72fd14bf7a8e83bab872976ba97f850dd47c47b71a560f215c5d1ed32ca6524b9d6125b94128f73e9dca3463e79356e8a38e0390eaba0e47185910389ef44e60e2b23922206432f3dfcc7c9db66cd40c3169170a7debe25aba8d226ca0ae7c7d7cd0256d0959e0317b94da37c2704348955c8259f71fcfa70eeb3e4982c8959e72fd09f67cd79f6c9ea55552cf333eabf41a64ebd2fb578364a8c11b8073f59370eb36d0d7bea811feabb88bcb8754ef126671f65ad6cfe084bd4307db1effeda6bd045f67fec76c6d85e7cdc28969f10237420cfca3bc3e07141c0a988ad89ad17910dc43438b3af9ea7e4af625215f18e4bae8675268673fa4921d0774e43981e9000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013d3de6486ea971e50e75884a9177159143d0cd294c08e36805cb1fa24ebfb94e3bf16a8543794442cb993557b7032a37963f85fe4384f8e3366c2f0bb2faa6a735e4af2a577d6f40a1f3d713adbfd3da76edf72f93ad1227f59cf7020e5f10a83fbbd36c32898729ebcb44b74874bba5c64e8a6f27daf1a97ddc56d91efd21f41594e65a3cd5945700c12dde5ac376ecde82270fe68374444f02a0511ce3629f2697b139bb344dc5e672c8d8f08c4ce75b7ff44d43d339f7c43a915c329089c22b6819b640bffb1cdcebab5f60a8ad2c5d6308d69da6c3e724df6ce1f4227852378834af039048762d4b0efe360368a170b576ca2a9934551e236b6e160ba56e177e9c4311e1a0d463957ed804b7fa61cf3f2faa91e8a43fe5ade8fd10e9399a3de47bc85a5237d403f9e3af00592cf78cf6cd62d0a4f6c5c7dc1087b2dcc60f199f4941e69d97e8ca4d120c7638e45ab58dac8c7a22db382f2eb6e9fe2a601b1dccdff2c9aa0020cb99701236e192b2475c4c90c4d5ca8f9465e0b261ec08573a8f77d5d8c9c456eb6710f2d55ab11e35e89506820c7b7974471fd70689069a27d792960c260c938dd0790075e1cce774ad0c0e1c4af6b2e8a7205b9dd065692824277b4ad60ff928394024f0f4d3efc182dca78ead45b8897938e7350efa282587502eaf5323b28ab2ab776a503c5845f10fb0572b01bba0a8ada4421d901b1ec1a81cb12ff6a37c161b3194175a3a6cf04a29af7e2bd74caacd8481c36533129b293648015cc76c01cab02dbba55629cc736a8f20aa1b91e5054f266d31970c44573cfa444774f81a9c028adfe9368364a9f7b0e93b920a2392ff6a0ac2511d7e2a444603bf318f740226b80761a9ca6a486e2c31c2fc309e1162d6d9f49a2550f00423bd6a1fee8eade0d897e165a13e3f5d9fa23a1db78d1c678aed58cd20ed395e194da53e7994c5d9e3ef8d6b6b7e7e23bbb105a21d769c9bbf8e5af7220e478e02a2bf8de1dc4bb2218f8f64b81c7236e106664182a612eee0c824783366e5d145199a821f568849eb9be15230efa8fa28dbf9b97ab1058c019ef10b28ba5ec667fd38647402432a7f73e02e446f81193ecad00a78da0453ee89a76028aad27892f15b4d25ae07daac1e2a7194eafc560be1a86789e7cf29a296ec1d1962909c34ccce87f1eaddcd023370a023c82c812d173d77a00270b61b5df8883f517e00f2942bb82fd457ece279df4686ca472f3e42afbed451e5e02628d51219c506b3aa6d1038ff3c9750b149865e5e59358faac5347acbb7cee1c18df93d24ed4f1d9cd3d3ab6997f67d244301b7cf895495ad826352cdbc47996697497b110a9498497230750931bd53008acc60a903bb540596f4fa36ee65f596146ae22c9068efb5ae069eafbe26584e355b7505c096a3424c0be84d8bf25a70f56b110bce18c4a2852667fd3e69f63c1373e3f450521b4b436c17f6b533efea835c5e3b43a780a0476d55cffa68bed9efcf6c0f7e421b0dc10865ce2995f058967c9b2b82595072eb5a00dbd494c6038b578224bde13de6f39188f7a4fe389b5748570e763d61bb5146d898a9b5734297dd15793fb6506ad680e3eacebe3f1133a3cc363248cc0b417f88cb687c9bf93f8a13c40e5898d5654df942ab50998a5f70f72b9c5e50bbcf4970120ae84d8fb6897e49592f63aeab663d400167813bde570d0dac2408b59f92f485bb6956e1c39a8599ba8020dd79b9c4ba6c43ee348428ef3a69173ba8ad9ebeab82a208e4260a6530e6e46f2e90cb93e50375a530b5ff561c13510367f56d0447f1e3992c01825febc301d6f3f88470a4b815511abcdbf3352d6e7759e4d2edbd058c166bf8e889af28c30b7c04090142d1f3ca25e58bc401e8fb73adb5e8b1430dfa710ee1418b3071a626764092ba403776cb55e9165f0a5e7e2bac28cc18b2dd40223e3bff546731078259051337869aeabd29f1796b1f1165690a6de088780a66f6fe3d045bbf581dacf7d54bb72caf7e289b2e8d5a01894dc5790e5d722b3089187c9471ad2fa83bd7201fcae54371be94e483ee282f826e9ac8f410e07e55ff410bb545a545e57eb482270a457e2277b55e81dcb23b37f1a8402e68ae077fa8480174a8f8e037ee53932b2c53dad9a3f5e7e28275059749ccbb38e8d4c892305b6a4782735923772cc8ea3148e3622bbc849ad7c02b165048e960d45e6cd292222436f3167f7b999f08e4d547ca58d5d9d61bbb831ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c692150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f398196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f61ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c692150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f398196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f6288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc73502405abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b32a541dc9aede8050ad6648812a33cfccec8163996bbfab69265fbcf2ef361c4e077596ab5d4f14c7435038a9742be3e6b737f77900011bd2975eecabf38cafdd1153c84f592e126fc3f1f0f20bbadd94f35f1eb7f65990d2549a7aba8284127f38fc1c0df7b9b2919072952602cbf7174ee45ebbee63633b443106eed2c1c2ec01270d2f56ecea3e1b2a75e90d93be05ba29bbd650f57dde8784b3a68dc781f7075dd1b117312a9d8a06c31011344d9a01dfa69bf89621b429bb8f33dbae0d86192e3ee660fd39226aee0bea6ad54ddb98f9abab4929986c135f5323816ea52108ea80bab1eb868323ca07cb55c73606bee844de917a21bfbfa6dc19489d7fda3cc3da9332bfc4c2de3e80fe3391c67d16d585354e9f5bb7a35c091c3573e31936138aba397e4b359850d5fb9c7b4480ac78da8f3e8a5266fa48e5c79b6275532d2178e1ae70947695e9f02849f81419f58ed31a9fe1a7cbf077ace14456939132de871e518f6b896a160fd7b607ebe63ddb125f6e11cddd754c1c823ba96c723cc3da9332bfc4c2de3e80fe3391c67d16d585354e9f5bb7a35c091c3573e31936138aba397e4b359850d5fb9c7b4480ac78da8f3e8a5266fa48e5c79b6275530c625bb64ab2b757e5284ac022d5876bd6a163865cca8c33d1906267b895b0c202e1a0ad09302e70affa09e470781c2aa53a461958dd93735097393e52bb0f591148c5f0078079278f0071002b6a0b381757985374deeda3f8434a2ca9b57c9a084b1ad09d4a31a25a8669bc766a6d0a8480f5c41c392cf52982a235b6e118eb000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013d9ba56a20ebf966144e9b57a8eb956f338749c55b81838fe3c6802201fb6f84319158984f800818b8dc621c8b6de6de564390e0af79033ed30d33eac409a05617c38fbecad253a41da5e0b7b3224a0e914897fe0bc9e7206484766ef9597a0005c43187dd83b9ff4c5dc0e43a1194b52bb768b0d9aa89c5796f5a7ee99d0c6429d046df41a1d723923b344a4a33e191089ac7549fc9259c2f0e1cad0c0144070d1e7f2e0415b0b0911dd4655390bcddde29a06493bd2fb6469895c6eace7094108d2c3c7416e9333963126d143e609bdac300b17b1f12cf538520ba8c89f2ba3bc607a23e56cfc0fc6ef3d645576e54616d56f8a6e7c2a8a0398afc0847f9d616068f3cbca5c44bf0fd38bc6b658c6024ec821bc803bfe980b5bac296956152340bad9806b42d9054d88184b02dea8d92260c8f6dd23deb76bd0eaf3cc3db6a1489077f79d9a39e61e3c852835137caaf01d68fdf2224c669e41d2153bc8fa83b6046b76399e360c7b370cb5b82da8e7d512977baf726151c187588ae1dbcae28d356df4b6ae98e81752984502997165cd2c4062bcdc259615a016c3a93345220d9d89cf8e9a7b1e093ac45f8443d653aa5f84996a1ccc178471a53b7182a862346199401f400fa598fc60bdd8fa464a6459191b1112f0f865d39d1dcbf450529eb3df50e2d9d1483c04b7073b2f0663c54b40786024508a7a4e3f0576f4ab334f332497af673c656398346b0b4b53f7c467e0d1de7fe145dba6f798e50f04911acb02e546ef6ae608ac6da5d124fe9dfcdf9ea17d63cde2f35db46e1422ce93c0d8428cb9f6adcac3a829c14f461ab04fb9401bbac5e1490a845cdda35d5cd0c982502ebc94445d22b726c61eaf8d6a57e991506dab5db04c7d060666c487335d347b2fe6a7af1aef8b9facd2531b0c68365e380504133bb03f5599580a7ad3a15b070a6fae36f514a1e57a78ec403f7c14fbdb1fd51c788ecbc65d7adc64f1063a867e20a9c9bc3f53506d2cc6867874cba4ee9bcddc16a05f3b1aab2eecd0e6a9a9aeb645a509e5e96639ffe121a8280c2107b72125adba0453601d4d2511414f57c0b834872381154d15ed479b91a24d78f742cf92339ec426f33960d2024970fb294195240b0e274c811f3e63529ac015a78c7f4ba59ecd8a6a2efd2af2a40465f19008b8918645b814279d1c88f1b179b09dccf7631d3c076fafd68a82cfc8cccb748b78afccf881a0879ed4368411ce3b8d60dc4f0ce7da72df3194011c6cc3b12b60d746ad0cd3fff60dca9d469eae207902a5207be011af4ee0fce34bae4db68539e20e4416218f9855bf2a9aa6fab403a0e371616b30eb7f7111f0187cc4b674c2c51718f2687906cd308866268a419f79c23436e57b98f41a2cf37cfc028a170389a4f418596f3b77189c89f93ce8bdebf1619b5616afae1c3bd132db7816998f30f4b766b0dc7608c4992222460d99b43f5b02119af9057319538f63df414640beec935f678c8e800bf2c7a01d31e82e9193f0794d8c8064ceb3073c5ac8b33937f30a990fb3dc3119c62a373d7415eda72fb00400a8c3006b53488be8c296b67d30c025026adfbf58f553fec767d500edc3324a88e13288114216ee5170bcb78e2f86a3b4a0fa17a44e369fa1df9c43cdc0153e6d0bb02ce4017855decc6858f4763210a0161158aca7b7ee605ea1024f8d18d40b261e3c18133e1618f64beb5a16cb0db50d737ce2bac26238ca4bbbaddda3902759bfd6c8b1b96f4391a0d6ea97cc2d9a112c143984901e6f34082bbc06b1af3a312027952340e57b36eed5f486af653e8410590ae107d3b7668737e8039e448a53b5b79e10095f991ded6909625a967c5455b335108ec1097dcebcdb5d209aeeb4c8192eb3f29310ab81f56a0f65855ba9f17a1b41b22c0976e343921ece09b9e8aed3e402d8728138571c687e8d0c5fe7abf8a63d04e6f0cdfdbee4e4cba628f505e4b5d102b8c8f5fcb744b41e0ab029f96813b0251f5cff4db33fb86bacf704d42875c0ce8f89d097f3bdbcdeb80364cba43b4b771f07a3b83bba6c6be688fb1c5b55f16a1df07e5433bd567f382202d8fda03127403a4dedfcb9f42dfa2bdee9118e8058025a18a0ff3721199aa85c26ca5116243584a34e62f173e86d46bd3e0ef0429e2292e975bac6f85e17094ea27ee591f99d85e431b24e0ad5f84bf90fe1f7b058ca254ff9c5b0bdff70b8eea25a96d40d3f082bc8013ea1595777187c12abc3fb14129968f3e95de69c3dee18686c8bd29d8e55de8afaebb1c8c41fe110be9004ebed66970c16a21963c211e797937651cc016ab64496cde10a4ab01eef4183e7645cff0cc38ed5810d35a67a0a1eb28b6d88ab05789fb42d9f995f6553b890189ba300f33c712a7ef2ca5985f5e14f98fc07158f56f205653375709aac478384f5d0fb3fd1ca2b85420c4062329974277d6c54c81cd79e98d1c39cfaa29a907b0a2f04c02e35d47abdf3bf9dcd668dfcec236bccb2ba1afa014b33055d658198cd14e83f18f2d99a4a3d41eafcff3c33ccdea59551ef32b0cc96d0e52d04926732eb17c0e70d2665b5c2be150300c5f09cb11aff7da286e20677ff1ad2fb83fb14129968f3e95de69c3dee18686c8bd29d8e55de8afaebb1c8c41fe110be9004ebed66970c16a21963c211e797937651cc016ab64496cde10a4ab01eef4183e7645cff0cc38ed5810d35a67a0a1eb28b6d88ab05789fb42d9f995f6553b890189ba300f33c712a7ef2ca5985f5e14f98fc07158f56f205653375709aac478384f5d0fb3fd1ca2b85420c4062329974277d6c54c81cd79e98d1c39cfaa29a907b0a2f04c02e35d47abdf3bf9dcd668dfcec236bccb2ba1afa014b33055d658198cd14e83f18f2d99a4a3d41eafcff3c33ccdea59551ef32b0cc96d0e52d04926732eb17c0e70d2665b5c2be150300c5f09cb11aff7da286e20677ff1ad2fb8299587d7d12ba2761a7a388103faa093e481977b1dd652a5df7a3b1a1b61b22c09e6396f8887031f4ced02e5bd746db46e26b49ddb63e9d9a799c91076f10022017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e17f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a6637328ac34a34e3477da9beec282464ba9847d896f4b35e24e84c8fe8af8467fd44c390fcc75e09a2c67f60ded5e1540c114e7ce7298b4ea99b3a4909b4f555039a731608cfcd48d04330573e285d93690aef520d56337886f463d03ab21eab274862941ea1f898358b8a0f13e975073bb856d28a70ee17bd3ef52acf02af2d9520914e4073d426e1da0fd3f800893cd5dff856b5b6cd0c1e836b00c4d30bd464d5833ab7a63fbc937280087f622f47a590e3cd4edafab2eb54f78501027ad49075301bdab451ade8278151aa000b6fbc7d54b1e479e66bad359e401066eba70867209a39f8854fb6f435560a9d83f0a321687ecf5e3a45fa3de41751ac1b91b6b4714ec3292ad485cd225f3fc3bd83d7445af92e4f0aec76377d903610a20164ea81e27af658bab17d393fe118062ac16d86d04f78a0aa3627c121034e9b3689c6d01bdab451ade8278151aa000b6fbc7d54b1e479e66bad359e401066eba70867209a39f8854fb6f435560a9d83f0a321687ecf5e3a45fa3de41751ac1b91b6b473acf06347cdff8730f42a4f5df5d257f7d329bb24630d13283bd06f771db93b62a0112f8fc14005585b36e19fb0033b0fb5767f5e15de5323474b1a41b4f45130862f007a9b13d21cc1167741a5912ed7c6c413c08096ec310cb02372103a3b13e292a3efe115fe95ae15b7c1b90b0dc1ce87257f7b83da2e29b7ad207f74309000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011e3b1d4a3b6cd26f58ee36192224bd63e9efadd106c65ef6ea6602afe748a70c05345d627fc87959dfdb3c4e9ccdad9003126e5f5521563ec5e83471ff91201b1826f6f09825796877107882ad16d20c76f09758a13bc447e77383e54a62bba52a1ea8a559f566522640927b850b0b80575e26670eeb843e8018161afcfc518a3ee437ade46152d608ef3b717768446d21f179e219b1bcec40f2e8b2067945bf054752bb90f310cb227c8d1c1e6698719dcfee785ad9406fc9baa569141654d22d1af9af2c01d82de3344cdc357543ba065120096097595d4595f71714f8172700d0a4f00c9d6d91705ef0a1a12437426d6fa115560e25a1c3f995e915f11f042598821001a22d25beaeaa3dcdb7c11b10dc7827da46bf86c4ad0d8cec4fae153759100cf64012bcb6d298b5a35f3fa7a57c7e10293855ed93a36195c94c504d20f3efec87a618d2852ce5d8cbac4832aa46107cba82f4f91b5f709708486b87001df58d043d1b24e10a7e7ff5aa411399891250ed584e4c8179131e882e965f2cb0183da19fe408d6659e94bd618ed9a5f9f8890e0038beee54aa494f80f7fc3cd147b98986c2eac3fecf700b325b2e0edf8addbd2e6cc3a8c2aca46b813889227de42edd13f3ece5e1c97988802ea53268f7c546271aaed7e194cdbffb76232681351333cd5668150a0df45446261a201c5ab7e3883e372bf70057ef23f112172b475d33c11b93f6f85b821fe63eb76f7544b156f84392672de200ff17756a34b026c3efa6e759715d92ccc7b5481aaf42cd3065903ac12fce74908f5ebed00514e6904ac24679618f754456760799c507fa250e72c7b87bcae1276b1cbc8c03d52b3c92a7bf03233e7d6f192f0c0a420c2cb8f9c41c5c86d2665e5672ef6a07536f2be513e040fa3bf31e77ab0e27536c4b0f02f810c5910e820ddc1c57143608bbdcf0601a222fc4f8165c4c6850b306969f86d58a19e4b31f6d19948fb721b7356727000f021ac4b93fd6605fa02760cf528af97f0f71cadd248d592d5e03a4fd8e46a75f8fb7c1f438ab930cd443e78bb13156ea6d1b09092cd8fd574102505f7217d1d5bac4f5323d08d399219a216adc0c33db03ed8caccd9e72497d079d3114954ce1b33fb2f2d2fbe7803351eefee0942a87a721737a9950561dc917e72e6ddb816f1b214b862b638a340913fba9977f6e5d75af30b362f8776e6c032f04d158a8c8d309914b39f3db7e41f3b811a7cd4df00549d2240910e7dbb809ebc296401fa2e388f8fce96cf63e7ef0c9b5f3b1df53df78a447e0e4b1a2ca13beb8089c9bcc2d5072ed11fa34fc0d32fe177b291056b871432e7f6ace08930503373e179b32a4af9807c94e5b616f4d9b74b4e7cdadd9ceaf94b22af901423e5a680f641e10932646ab096c4444a258861286bcf0fbc95033fc4f3d182bf5323f624e10d5f3b2c3be08aea034eeddd3e898a558772bbec88bc4baf05ce466039076912aead66b3682211c5e7c3938d08bbf95d9a2d65eb868e074baccf93f2b7c10cb83936b53ce34327f1870deb4a4b356722472012a1a2ef78248c0a41c0439d05a19f4297e3b2cb83357a41d700d5e2ac2e3229e05783a2ae96b23e45b385622b62e9830d445330426446754544546818c2a4087a655efe00ecf8a249b11f65a1dee6ef8bf2b7c9d7dcb295c7106d5188df52594989d644ca2632cd3f613528676835b00b38b816b536a7e2d0bc632a379780f3a71f8c1d0e218b0b3383c663a00f8ce74aab5476729af208ffbbbca28d48e2266a355adde9ca84c0af4122c9445622578a824c5fe68872bb03e48052b5697efd885ac07bfcffd978dd40f902859cef30a579a9de0b5fb9209eed99e295ad1d40ec73308790d6577d6241aa0af672f733d0034b311f0a6ff9154068fd1cdc4a3ab8186d479fcb7531f0e1b431233994824a317c7a6c70e3b9b1e2e38fdf810291fa0a9d87c31cef05731043e858f0f130653c6221c6e085e675da54eca4207bdaed91987217618e8362b1157821baaddd77900b869c2f36d425699ca85f3ee132b3aaf36c83df351dc643f0216681a18b694896d2d642ecf0bf7f3302ce36aac8365825507e80854a89737224b0d2dcfda9905a7f0d4925c1b6f31c3017f36c073b03c743e8f9527a5b21355fd9eac0a53714f3d350d3d22d28d2ac502bfec6306eda65b949e9ee077f109bf5c5dacf1b60b82dc5dffa6002291aea9faab207a902ec4bdbd73819253f209a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22309a34f1bba67af009244016bf35ac10b2e69f4d0ccd1d4dc3224a0eb1b74a8b0365cb0e4459850ff6dbbfe940ca53ef4f3dca42b3c7b243f67089001e48b575130308b8aa4066b02db54071bc0c5c537e811c8140019284cfab7249789474b700fcf74755bf994fd24abf8e43f3a3ac83a34d0e80933d0ce9e760c5576b8b49130f2b9b53420170e48a4238ac3dcda1721851d6fe496de2e1a0c242eae64792d0f0d464acbdfe8f1b75bdc753c2325e900c17b8c24b61aed7f210cbe519b86d434bda08a04a073476b34b1b5d350427340c5c83b5b0b6b93b6b5222267f65dde0b425f75fb5f8cb894cb4e4a2cafbd8ce180d0c0ae418d87e2780eca9809a22321fb658f6072cee97b6dab3dcbac82009de512e271ab489886ab5369ed4941f1174fbaaf88be79d412b9672c9d372a7d2fa63a6f94bf935c8b22a38f99927d540427665ed95b17a0576af512ebc575a225cca770747fc11a85e3405b33ad6bb002137e04dacf9afbc347f2bf066d88f624070fedb8de8410940ab528ab8fc49c0d9ee0aee8af2693b7c6d2b811f5e292dcba481eee343b0632b3ec627a654d182635f86d86e7f83f7cb3eac6b05058573f241e38075ba38ed35ba3f423be9bbb372de69bc86ee4cb5a0c64f64cef1de32f914841f9310629d0eec2f98aa8fae01c66447d4164dee3e2e7541c5518112db9d6980ed1716218966bcaaa50a3eab03d57416bb298fbb8b8a6f8955a5627f3e5733e2347fd5211b97218dc5a3c07793540b68c25f88ff0f5483000beac2202e9344265235d5a9ef25cfe04d226571a151c9ac8f98cbfa4ba0dea0c7231d8a9b105eb6c9da85a730b14ce4d9cda55f524700f36587f61541470aeaaba8e582af9e7a75bc798eec5b61e584c3c2ddc9819dd3411c63219762d275faf488e085d5e94dea92321ef688c9e9d27df095261269cc74b9c71eb3029fea6145c5b4c8cce994e9ebbaee1ae79ffd834baddbe12151c9ac8f98cbfa4ba0dea0c7231d8a9b105eb6c9da85a730b14ce4d9cda55f524700f36587f61541470aeaaba8e582af9e7a75bc798eec5b61e584c3c2ddc983acfc35901a552582ed8d9519f2fb0790d4a39e21af232d1f8a16642eaf0c668342f0b5472a17c01c6d806d03ccfd6d357e0d4554eeee519e3a817fa97394d5501dacf7d3d24d0d332878c6c0a3a8ef9bc78065c927af019645206cd8df4d33620f8d84ca6b91c59f7a41134940b333c80043c39ba5c14304baca5ec925929580000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000135f8158aa52f7d2ce4a03c6b5f52e1917f5dc0c650cfd6d8297117356e4d187e39876bbc4931fbd6addd6c0a78dab4aaa486421e6606dbb561c061836014d8b80e5682fdc13348a3d4e6967a7a3ce51a584008df9095b23fd9767b40824f3d263480a7d3bcc2c3b50fa79c7552a0eff2cf6e55f74bef49f56ea0117ef32066b33793e1333e291fc40ad76356057b2222b1a038046d2c77f8b531ae00ab9a2fc61c510f1fbd8f9d8e4af572890ae3bc5d2a7f2fddbf00919186392d947e49f8c73ab59e83a74bf11f630617abe0fe3102c6fa4a037ac3b5c2571f09a014b3f8bd3be14ea37a8d97507eeb1d774c18894176c0883be31c9cc663b9c4a87574e75c22697dda0a49513d537d80d86bfa461b7e73d40e08d1339770cbb6a4ccbe00e7265ba8981b9e785b4e1b3320d8df7a113b5c236b39edcfbb14e103b0facc95670ac3a2c8011d228a4ea0ebb278a873d3a3d9e010da2cff7cdf3331151757bef71063f8811749f19936b687c44673882719fa4364522227a95cd7baad1a58eebc0575d0e1cb7a3ce96ce38298b2379ad91400687ef0c8fec64043bf9f87072e931e5efa653c42425efe8c37e0992c854943d4d533b8534d64229792de316beea13188b458ba0045fd313cee5282a44de0281fdaa1c387e51013568fa5c96f2b0b3697165c37077acd10f6476b4990597a872942f371308036ae5673470b0ac7350bc3d4de73535bcca0633dff2e4be6603ae5eebaa27715bb172c5d0e15e93c832baa0df3f57ec469f4f3dc42b6802ecb6766b5852d0debd808e98f2aa2e992443f90db1e8497b34f1d36620fbaccda66d807cf776d350301747a559b479756f300d53887d6841a4513da72e197dd5a6f0021a46731ff9a3673d5822a0da5757f2a464d9a1dd031d6567a32616c11d7a3bcd5ddb55954e185b2d63ea0c51238951f7a0cc27d12b651e7c0a5b0292d211b4dc7b6e6c0c0919f947350e80b82839629f01a6996c5639cf3f021969fe42eb9994cdc242f4602b538694ca90550bb8b2523b351f23b1495fe963be32c764545008c0c39e2b7b09370dbf536640b8cb916cd6243002f6735741bf5a2e7bc320dec382539a70717bea51e378c08308dd81729b70e3d7c5a836474632cb179d0f7386227b46ac8f166ce0ae4e7c29634d03352f2fcbb620e7f91832f755d63c33e0b119a233d208413d0f786e6cadb0781265c1a8da1f358b9b12e0eb9a7c1a64c0df5318e7df24338b7efbaeea35f42440c717db365c169efa9300d0f4429a56c0bf064924fc6d81340536c90f1332ec403150329050119a300473cc6907708541f6cac9f1c45e1d412a8c93cff11550004d3679406d5f02cf30450acf7c4ec85be496a0ebd6413e1f83bdb3e2c1d115c1f9fa3b245f67e784df30551366ebba33ade51e92ab5d7b5d1f5771ffed1b24c2f13df1c123642933645f37e243de0b7d82419be2e998d9f61643679ddeb6e2323ccdfba924fb4a0a40d8106952f48cf7919759dc376422879b3a82748de5a501c3840d83e6261fa80724677596bf3c335dcdea320e20430351033b6ea829309079439dbd9feef594f71413c8cefd98b241258623f8148aec85735c772e2c6fe2a1b9fde3055e26bd5f33f8b810d6c303485540c3659fcad69bd015ee5cceb9033dd22c0c0e3257569639bf3a95b38494681d76c752dffa3af6ddea20e5018892e1bf784c87630ac76543bb0777afa95d6fe3807828ff702d235d86c2e8742e326aed6517fa9f4fca080c0be75525045c8cc113f3749928ca68b018fa0364ac1249f4391a9f570a174e3495bdb7818533a463f48d5a9a69044564b14fada9b9b0a35b7d1bae9284ec4887ed80cda743c223d1dd12695d68965097299ab0a57dd28ed86e3685fa6963082661be2422853eac44be0403e74ab2aa75f413ecafba314349e2d7eea7ba0cfe8224fc78bf5b8907b8743b5fbe870c9192b9aecba264008ee11d1253b10b3883d37ad2a75ed4ba48a352ebc7fa5566dd66a4a9cbe160802c5f8ffb6eb3f61fbe03a4b8dc8877cf2849453bf51f5c4f096ba58343e7fdd2b75d523b5fb453bd1234e35e65816163f6ab4a819887ed66c8bf06659e91d321e4dbc6304f45f5f2388db2462b3dddcde05b5a4b94237695399ae08c28a5f251ee8b21001cf5ffb72ce0d6bbe8d0c6dc0d50aa886e22c37f43128409ca4f7101293fd45f3b680eabe5558c574ae62bf134374846804dbfaee25ade8b2234ec73aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a061301911905583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee82546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d5791ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a883a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a623ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c31c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e3aa7c39e650abd81e7d50dba9a436b0627ba83a1537bb440518b3a061301911905583c619af5427e182af24565bc94f9fa8c155ab5d144db47a1f6e6ecfe6ee82546d217f935b389872944a50351171e3d8a2e367c36a0d333035e6a5f07d5791ab92de806ca4c7678d6bb5afcaee8e1e4bc6ac58d1658486629d282a0f82a883a621a77de0c81afa3ce573910957396ef25b5185a7731e8ccb67639db272b5b059de58821f37e505c31a8c6ef6a8c693320e3e3aed5c732cc76bab324d8d4a623ea8457563e886e3307b41d52eb41f222a225899f20151d9adb8b6d47c3d8c31c157ba8a9c17791ccf84be2ad14be0dffa473726a2ce3fdfe51a57fb83c273e17f2172aebcde50d1f14eb99dfdf7b73471aecd42345acc5df8332f2d5a66373017e4595818c00b7bf91cb4323c7eb268e321c903caf42fde0af94c8c487ff2e14840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d3126132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c8361f5af3dbb9b764e06388b88c8ae25f7a7275bfb8e202712160cfad61b5bc73ef2084ff4eaf933d6bc5e8c80a6d386cf8915c72d09b721619ee695ae36cebe46207bb5847f3ec89cd59900a77cd11b5b93e4e9cc3e7a81b21a34e34673562c4cf398f614735db5469d4e59f20f2345e22d9b2ae524ebbb628ea9a24fec8e30f0920e7576a254c589f1b44c49b053e6896e604e8ae80f95b2742d55558ff28c21b08e5b7ee0f136a61bd9204360bf642cbc56347a0da0cb8daaf842450dcb7999008134748d8710762979b1062406fde0c96064ace3630870592558b307fee102d2b6879fe81419e32cfcc2b0480ff303bbca2014ac309b579f4be78fa1264a2221389d8f7dd827262a24dacbdfc7e9fcaf613aa817fc38db7e90ee3d2300c6b692b53331cec0a24ee2f94d881baf668692f9fdf19849125ffc37b4188d5d2389e08134748d8710762979b1062406fde0c96064ace3630870592558b307fee102d2b6879fe81419e32cfcc2b0480ff303bbca2014ac309b579f4be78fa1264a2221201404b9118789ee6e3c7cc266561200731412207e697b129f03118c7666b500d8982f95c998465292000d2ef16ab93e858287d8a1eeae2b889ec302280e45f135e5aa9aaf3c8fae644b82ac49ac30be8fe1a4af456aab9601c10ec8c1691910c0c5bc5ac08d6555330910b48fc161ae816e8e211d665fa3869e3b48079166e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011e8211f6215d3f294dd80b0cc1951e3048971276fd79940514b019ca4d2d8ee42e9a0d4ff7d0ef6c39a0eeb6a75eab621b80f91b32cf528655086f798e9b79db0a411141710abe9a66f2a2672c7ccb52c30b6578878d8bfa7dd820f46c4354913bbadbc2fa4e935b2b65f20da325dba3eedd6d852ebb5c1ab8140c7636587a5d09ec192b96080adff5f979629e777996a5b93a626afa260cc62321104bafc1d6169e375fdc798c9866f8aee0b7d0719f794b6b0dc8586850dbaf3b00d9c8dc631b3635d1173873d148912d6452594dbfac5953ad47f7be1e4c57d1f99ae7fb8f0b75099f466f0e9079fe4dcc935f79194fbada452ec854ed15cf4b300a34be691ea5e15d441c009d35f44955679168420cd65f3f3977eca810abd18313707dfb26d4e8916062abd84e7e38ea36649a45ec2e134014ba96d129d6f37872b1d57f1e04e952902cc3726ecd1aa1603b742acfc0e3f1e94556b45139e27d6c1084ca20d504f93c106ce262d7aaf6b1af2ea686837277d93811525e2e1c0d1854740a3587f318303707661da0685c626eb54f898aafdab7e3bdd3c2cb7c4c4668f8f827f688b224a460740920ed7e71368fbca0fd5cd5c409552a0e73fbaf4c4c815c30d9c99f82a90a6027c91897a2ea30fa8e63f2684b4137ffda8f246c9fd71abb2976a697bb0345ee6c37e2cdc5ccdfe091f741c7c2c38686a4210fc1c2f2a55829535485eb49c59524c254021aecff3f5f7d161f44b4c92bdedbe87ca1bc23d52f24f95171dc0cfe1aa1fae9fe7623498ed0f9421b5d7ba3f44b6c5fdc2311e70717af79452ef31b08e9c7e062b7353f10ae2e9cf403783c07e6b3625797af2f3853cadc15aeb61aa60ee21e0a057dd2bef3a5465ae32f35f5f5cdf7207fb1bb29220126098d211bceb0b2abde6d3daacab9bce22db2451131291c9e47cc7bd70fbc9450dedaf563513106fd968e20ed28e3953236024291211816f775f6ca89326efce07a711bed0515a6938092bcfdbb9c57ab63bcca79675222c83d1e11fe153922c9ac0b1b5efbd72815e5291abe0959bd3648e74c824e020043efc6a4b71e573786669a55ab7a5808e5939d2f29f5c2f2922970f54b347e5b8b2c887577012e27761fd000209a57aba3106559982569d4f26213b8689ecd3d3510bdccf43cdf491b9743512850222a7ac234d06cc5ba3019dcce11f26367cff209ffe60c2f8b56cf5644536ef30609a97892f7ad0686cd862b4061743705fca7cf0a626723bc9a302ebc18ea5f971dd9b09b96104535acc0871dca9e2b30565457b518d9385344768516c2cd8e93ec22d1227836db9eb6eca4f329641b65929225d549db09ccfc2f086c96c46b2dbec2173af03cd5b446611455066fff6e4e970474a5bb1a606e51ed8aff5afc22d0a335856a79a7eb17da205e1b41c4afe732bd4c3a3a0e4acb8feba77e7a590edb92a2912e8f11afdd5a7b7fcead3a67026d2831c5b92764083f2f8cba59e2ee10fc5994ecf947d9ee07aea9b9714932ba0a8f50fc5a3b6747210dded8a57c534c4790f444fbc6528e2e26e5c6903817ec2e0f3e4e4e269ef60355a1acd7cdcfefb5c36354cad977971664aa57aca735593020017e3d239a46101b406c4c270587316bca5e7d8394f7ad46693b7991423054a4edd7b61b1ff84ec641c10a11b301c29c9646c15d4816c6e7de5b70effff8ab70c0579e08bd8d26b3cdefa8f2f75ca34d9e263e39b980c92b898ed1b0a4f8cb549a6299313df5d2fb267b0318a3a6400bb23ccdff9f70d456bfd2327e64f8451dfe376c3089e2ff68e1bc8f3b430057abd9f8bb13e4366e1224c962ed2c04300fc303f139782905a6f4185f1657e7b3764bd5c9d76d78ab259727a7b85b32f5fd66dfa510ae20e2f80e5a0292463b006caa17279e877bddf8a97b14bc843e5bfa6581201adb5e5546a169b9663aca708895d62c515ba7c290579923142432ab3b3df9ee26c556b54102bf24cefe9c6901414a31c67017d369c53bee10b544fca659cdc53cc8aca8990ca75003429f0b044cb06152ac83f97a00039d84062666fcca2dc52b5af8408269a6c1856e44a44b7fb6b8d0b963e9167b98040cc27b1951c4d1250641a44bb7869e35a067dd0c9661360e105764ae9e443e485fd98ffa0cbacd3935a060125926efeba4853790c285e2e252707d985473ab32aed1eb24f36f7a8e052b16ffcd23d4c90a46b7731fe5fa632a3664e59490ad8c7fd433f693e379100bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb0bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb1663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac53a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f216211fa42639b21ecaf1ed4e983217b62a6709fcf49a5422b064a6309c8e2c557662260f666d094d1a6403be2dc098fb8f586eb4ad8166745ba69d9a8268d67ce95224688bf433df1ae089e293b28e241cab5fcd9cd6a27caada7343d9684dde77a20de236c8d5a6a0e502a2e3ffe172e2714300642e4b9f8986569c7538a0b81fa33ee9d35863311447a1f0d41296828ef14e845415c2e1024c8b39e27624bf3130d97ba61a8a2316eb79f39a161619e8bcb7a52eef1358e006dba79ce51baa33c10c697823a4c4bcf76cef00e67a7c4573c7f2b17dabd0fdfacb93a9679d4e8a211bd6a4c417911b42b7f4e8354b2a758409284328da8c61546bbaa13ac0ab63936bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b93c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db17a1dd82353c650035565c7bc00d9e983b457e8c8e8400815db42975e7191dd723725bf4adbbbe02d33ba140065e3e1cdc66f45df62ec7fad6156e418389100c36bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b93c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db16e08890aa848dc2cf6ebff393973a719895979a2e346a08da82cd7f791497511f9a4131e99449698ce8ce1eaa5edf794bef39d7950170d87650c3653eec76d50bba2f36522d59ab82ede2c4985d52a8c1af4cb45768d4d34000a3c4b4678bc92de546b81283d93d323202c8cc923733cabbcbd1b161d0388443c11d1282ebd00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000119855653a92b5b37bc84430dedfee92e5fa2a1627ef010cc358ffc7ca795f8ff10f91417ebc5fa0a82c0fc211c1ffd54bfedcb8a1eacc12001db3d3dfcf6410336fcd7247b582bd4755c005b613b80ca2f8820cddcb43e242679713b9c095089132f24b896d0c5362ec7896ef900a2aba3d25adf53f77108f34a222c4498678214299ad45294b6b41dddc527a1ae46013a4622388f6d3f7fbd08cb5da0b408e8111e3f7e1b77c40285c0545eb39b341c4a7f097d9bd852d41d534ba5324d57cc066debc195b53304b7c8f3785ea52c698fab1c33036da1aadb1d57d46a57fa0b1b55c2439894e8561eecc4e7337a6c428414211cb9e391ff0d1e54a1dc8492741382fb675176bbf903e404bdded09f4a79609c13f8dd0adc9bf398380d0643c00e803f15245b8ee7e24b7a7c9b475907f23b775017e95e80844dc3591d4578e518f961d2961eace213ddef4c9fff847634c6aed28ea2b36c47e11aa8476227f61e1a563dba60b85dba030b80ae9ae90dfed627a0c3282e96dcc4f6f5795a0aea303db71302220fdc36cb981571a7a39988356de91cbd34414c176a4cbfbd0b1606547e6644a457d54b633df37048afd98c0a7b53fe4373e2fe2654b7e11f75890f4a5c550e927e552d2bdfb5ad5b579ec4d13e605ba0e8be836ec282edc0bc8c20e9dfe79ff700f343168ec6a16ab1dfcbd35a3498546dbd3834c9a0c16f318722b5bf8602797964cfe223f7f39caed228cef4a518f6375ea58a12923cea8cd12d374dc211ef11c761695eab8bc0a9a0aab656a0122a5f78e1d299ba93419f1a0d1a3a23a33ac356a53f60b4d8d4635586b2e25f81d3fe22d36ae75e7cf442be2e35b50d9687b4c7d820a14f2e63abb3597f2ad46eeef9d20d6372707e81089a184020a4fb3d8a714a4f626e3ea5bb356c6ef4c6747cb8aedb354a201f92f6e62176aab83a16b5378cbd7456d7163bdaf3976424bdb7563de4371f703e5b6e3c05a54c3ca90caaf0882824ecae0496d22fa11c473eb0fa671156a4345449255933935e3d12203a4564b3f7bd3e5188139552f235daee4ea1fdf45a81915341650b88d5843256b8f16a31985616cb634b4a614bdb510b92f6e2c2d2268695cf210ce82eabb395d8486c049a6304082636414c908c415de6ca846f31620d3fe25903aa258c4f5cf8008e3f972b21e33b538622309766d0a7dd0cef851a07dd74421a435475fb6ab1e7162ed84df5693d343dec523b4069c64b9c89cd0df7fdfa610bd0cc0e4bf690b74cccc9f4da3b379896be27c571590c67e76971b5caed42ba2bac1db6f1236abc4a0927a957c66dee1dec17d2890ebbec9617ce5b2781620303d3d397302499301ec0ff0a2f2a6171831491c3c698372840da2d0655b68ccf3cadec78445ae88b4e7beec24095bbdae8981bebc7a1b4ea4fbefe3effe7f40f02c35d2cc186cb97ee70cbab620a055322aae8a6337a853544e15a280f4a93972f17598b444349e9adba8bb649ef188d910c0e3d0b79989f0f8604fcff06ffee3220e40b6e3b8bd5b56e9d049c833f29339266b485253e9871760ec1a5c9b1522a0cf327b065fdc58065610095ec4a60fd601c623a664c5cbc801b45440faaac201a60c7a9c8790d2e4b2ead49dbe70a7267da3683781a11f5f64e49c64a1b472c4e2bbf32761299b938962a6b3e204de7e452718bd691428f31b78e05d97c3a3d732743c82f5d48ed9a893e0be8edbac1b2687ef0af6b353bf98639ede4427f240f99396e8262647d1ba5ebb951165380ed43913e404c2172eece648b8f431a0e9d13f24d8f4cbadaa2dd0b29bc97e0bc6655051cd7ec595ba8de236553f1b63eea4050be3b1b13be6c78e3df2888e1650abab2218939e2b61702514684dca807e123367bec5811decdc8d749c29c23b23750bfd52fb11e10c429b7d98d419a06bd7b4e1dd77eb398b7f72bfd3e106249cb9737d11d912acff5585563a76e991bfbb9289dd155b42171679d712ab8ff9c4333bbd29764c3031ef81e91eaceb23655e9153f46b97ba2ad0a01a65b132807b0cff3264c4050421e3033d3e4307c10c685bb1338e347aa2c5765e3d9ec3d3b00716a4ae009b3c2120d02fc58526d3db2f9de3c0d7d640b53605e1cc84df1907e3ee914a236e7832439bad289fc523378d8b5238ab2438e658a8f45f4a8ec8f007da873d23e81eefea7862b977dbe26660162bd1cb7ec1dfad6a884665218c6c67233f897f80a722d9017bbf94e090bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb0bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb1663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac53a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f216211fa42639b21ecaf1ed4e983217b62a6709fcf49a5422b064a6309c8e2c557662260f666d094d1a6403be2dc098fb8f586eb4ad8166745ba69d9a8268d67ce95224688bf433df1ae089e293b28e241cab5fcd9cd6a27caada7343d9684dde77a20de236c8d5a6a0e502a2e3ffe172e2714300642e4b9f8986569c7538a0b81fa33ee9d35863311447a1f0d41296828ef14e845415c2e1024c8b39e27624bf3130d97ba61a8a2316eb79f39a161619e8bcb7a52eef1358e006dba79ce51baa33c10c697823a4c4bcf76cef00e67a7c4573c7f2b17dabd0fdfacb93a9679d4e8a211bd6a4c417911b42b7f4e8354b2a758409284328da8c61546bbaa13ac0ab63936bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b93c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db17a1dd82353c650035565c7bc00d9e983b457e8c8e8400815db42975e7191dd723725bf4adbbbe02d33ba140065e3e1cdc66f45df62ec7fad6156e418389100c36bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b93c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db16e08890aa848dc2cf6ebff393973a719895979a2e346a08da82cd7f791497511f9a4131e99449698ce8ce1eaa5edf794bef39d7950170d87650c3653eec76d50bba2f36522d59ab82ede2c4985d52a8c1af4cb45768d4d34000a3c4b4678bc92de546b81283d93d323202c8cc923733cabbcbd1b161d0388443c11d1282ebd00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000119855653a92b5b37bc84430dedfee92e5fa2a1627ef010cc358ffc7ca795f8ff10f91417ebc5fa0a82c0fc211c1ffd54bfedcb8a1eacc12001db3d3dfcf6410336fcd7247b582bd4755c005b613b80ca2f8820cddcb43e242679713b9c095089132f24b896d0c5362ec7896ef900a2aba3d25adf53f77108f34a222c4498678214299ad45294b6b41dddc527a1ae46013a4622388f6d3f7fbd08cb5da0b408e8111e3f7e1b77c40285c0545eb39b341c4a7f097d9bd852d41d534ba5324d57cc066debc195b53304b7c8f3785ea52c698fab1c33036da1aadb1d57d46a57fa0b1b55c2439894e8561eecc4e7337a6c428414211cb9e391ff0d1e54a1dc8492741382fb675176bbf903e404bdded09f4a79609c13f8dd0adc9bf398380d0643c00e803f15245b8ee7e24b7a7c9b475907f23b775017e95e80844dc3591d4578e518f961d2961eace213ddef4c9fff847634c6aed28ea2b36c47e11aa8476227f61e1a563dba60b85dba030b80ae9ae90dfed627a0c3282e96dcc4f6f5795a0aea303db71302220fdc36cb981571a7a39988356de91cbd34414c176a4cbfbd0b1606547e6644a457d54b633df37048afd98c0a7b53fe4373e2fe2654b7e11f75890f4a5c550e927e552d2bdfb5ad5b579ec4d13e605ba0e8be836ec282edc0bc8c20e9dfe79ff700f343168ec6a16ab1dfcbd35a3498546dbd3834c9a0c16f318722b5bf8602797964cfe223f7f39caed228cef4a518f6375ea58a12923cea8cd12d374dc211ef11c761695eab8bc0a9a0aab656a0122a5f78e1d299ba93419f1a0d1a3a23a33ac356a53f60b4d8d4635586b2e25f81d3fe22d36ae75e7cf442be2e35b50d9687b4c7d820a14f2e63abb3597f2ad46eeef9d20d6372707e81089a184020a4fb3d8a714a4f626e3ea5bb356c6ef4c6747cb8aedb354a201f92f6e62176aab83a16b5378cbd7456d7163bdaf3976424bdb7563de4371f703e5b6e3c05a54c3ca90caaf0882824ecae0496d22fa11c473eb0fa671156a4345449255933935e3d12203a4564b3f7bd3e5188139552f235daee4ea1fdf45a81915341650b88d5843256b8f16a31985616cb634b4a614bdb510b92f6e2c2d2268695cf210ce82eabb395d8486c049a6304082636414c908c415de6ca846f31620d3fe25903aa258c4f5cf8008e3f972b21e33b538622309766d0a7dd0cef851a07dd74421a435475fb6ab1e7162ed84df5693d343dec523b4069c64b9c89cd0df7fdfa610bd0cc0e4bf690b74cccc9f4da3b379896be27c571590c67e76971b5caed42ba2bac1db6f1236abc4a0927a957c66dee1dec17d2890ebbec9617ce5b2781620303d3d397302499301ec0ff0a2f2a6171831491c3c698372840da2d0655b68ccf3cadec78445ae88b4e7beec24095bbdae8981bebc7a1b4ea4fbefe3effe7f40f02c35d2cc186cb97ee70cbab620a055322aae8a6337a853544e15a280f4a93972f17598b444349e9adba8bb649ef188d910c0e3d0b79989f0f8604fcff06ffee3220e40b6e3b8bd5b56e9d049c833f29339266b485253e9871760ec1a5c9b1522a0cf327b065fdc58065610095ec4a60fd601c623a664c5cbc801b45440faaac201a60c7a9c8790d2e4b2ead49dbe70a7267da3683781a11f5f64e49c64a1b472c4e2bbf32761299b938962a6b3e204de7e452718bd691428f31b78e05d97c3a3d732743c82f5d48ed9a893e0be8edbac1b2687ef0af6b353bf98639ede4427f240f99396e8262647d1ba5ebb951165380ed43913e404c2172eece648b8f431a0e9d13f24d8f4cbadaa2dd0b29bc97e0bc6655051cd7ec595ba8de236553f1b63eea4050be3b1b13be6c78e3df2888e1650abab2218939e2b61702514684dca807e123367bec5811decdc8d749c29c23b23750bfd52fb11e10c429b7d98d419a06bd7b4e1dd77eb398b7f72bfd3e106249cb9737d11d912acff5585563a76e991bfbb9289dd155b42171679d712ab8ff9c4333bbd29764c3031ef81e91eaceb23655e9153f46b97ba2ad0a01a65b132807b0cff3264c4050421e3033d3e4307c10c685bb1338e347aa2c5765e3d9ec3d3b00716a4ae009b3c2120d02fc58526d3db2f9de3c0d7d640b53605e1cc84df1907e3ee914a236e7832439bad289fc523378d8b5238ab2438e658a8f45f4a8ec8f007da873d23e81eefea7862b977dbe26660162bd1cb7ec1dfad6a884665218c6c67233f897f80a722d9017bbf94e0909423384f0d74a20ce8bb048dcd97d6222ae78c1c3540d2ab8e53c646732492636bdcc7b0f28b5df31744fb72326829dff98203a45f8ebf0e047f48898cdb6db2e4b0198b43472a408ba716c503f72eaad685bc8d0a441d59c7a2df603fb6dbe11b4fe674bcb8d5bf7458e93afc08d1574de3d3338a8b745fcb302f6fc049243277707fb85063d342ba4371d913d3e94fc35fff7f74e5dd942db530713e924b31888f8047af9c2cbd45bc8e26ec2c16b2610990411fe9b425651dde5ec16db4e055327e9991f3204da351393d63238e8863a34e3b8a0e9eb82c10c5c638db77c3aacd81666e0cdfb25caec6c29cdc7179c0c641850ac0f30166c24909c72488509423384f0d74a20ce8bb048dcd97d6222ae78c1c3540d2ab8e53c646732492636bdcc7b0f28b5df31744fb72326829dff98203a45f8ebf0e047f48898cdb6db2e4b0198b43472a408ba716c503f72eaad685bc8d0a441d59c7a2df603fb6dbe11b4fe674bcb8d5bf7458e93afc08d1574de3d3338a8b745fcb302f6fc049243277707fb85063d342ba4371d913d3e94fc35fff7f74e5dd942db530713e924b31888f8047af9c2cbd45bc8e26ec2c16b2610990411fe9b425651dde5ec16db4e055327e9991f3204da351393d63238e8863a34e3b8a0e9eb82c10c5c638db77c3aacd81666e0cdfb25caec6c29cdc7179c0c641850ac0f30166c24909c724885000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000104f76403bf60615a60b90f6473eb481cf6da2c22d4594ce4afdbee7f237f41e03e92aa0756591803b616ea271a70651e7d44a52672d5fbca8fdd25dbe60153f922c5f554f55e1f6dec782a0be0543f4c7b71f8485a2e10391db44ebd31833ff019268ca41e96598a5bf44df952f5a40e60fed7c75dd31635181d04c0a385e58b14803586fe72a309548596d30bfffcdbf511f7a83d11433501fad6f0a0112fa824d9a756ad18f420b8cfb08ebb78d0e0f005efa04ce9938df69d42917677a1cf1e5cce4deff9a1062fd3254d52043a0050968e019bd4f2913c411c1d46c3acd93740cf01dd71ce350f17c67f6ab0118524b0d39877f3102f9eaa4bdd83b9e86c2ba2411fe33dfa0cd3dacc7bb65f403845f5298a058be1088e664d8e35e28b3e38aa5d8a8c8ffcc90210d317d7a218f822ab186b05d3e754a2972260577fd5cb31b63e639e7c63bdb2566fb4bf6c4a4d47856a6e1e40b69f076a2987733f02353449b39b4db203e12d02b250d4a37c45376d0b3cef7b238f444ca914db382f33022d1e12632fcf13577760615c9228d54f95239d2e6af4e022a0f0e63c95f1b30f4d3df90294087010c0bbc7ddb44465a3855066139de4a4ba5bb9f6e4b1f07232a00ff0c1f2a9994947ed8b953bd689d92d0dd0c8167669fd89bd0e4419e966301794149966b4642a1cadc30ecb49a523fb126470cf825604e33b538d4703582f6f0aac8b0fd732b645605b224be9b74aef4263407633737bedca382812e0b520970bc14627532c8bfe08072b11cba9f8ec7d317392b48bdf1ff843080787b815a820764e4778b26e0ac7eb4f30eed2b7745eaba300e232fdf38ab089544ff32df364a9b439f23a9070f858f2b427f71d641687063294d36197caf4e338193d2393fc84ac0bb9c0edb4d1a35957e02ada3722c56996742824f523449b55a7fa39d07fbf7506aeff02e0fa8c479d035c0142326eaeb3c73b021978541d25353238e29f3b3655597f9b6ceb034d24933eaa3a4255054f66a097d66d85e6d8af3812a65c7ac483cf32160294705ba461aa93043cb3a1d7ebb46b6694030146e51601d937ca6e8181422a95b3a03cbf404a03063240ebbbe9b912f21b3cf33c42660f9a94cea1ab2c7aaca768c247ce4733c2090fc2878f79c5890e031758ff78322d21637a983cf8fc40b47ae3d5cd2923950bb6dcb33134d388e47c4305e4f87f051b58ac719787c9cfa4b09dacb90b750cb83283142507de06fab8f9282b5f69312d89b3c3a2f8ab20a41d59b6238a028c1b05d60387327db2d3cdc4b9f244ac35a7ab178202e6bbd3cfb19d644630b8569075c194874de5437a5cda3ec936810d7a073716774f9df7932c400369e53f19c761313c964714ef6c0dfca05e4ac3215d571d6a754dff8a55feae655b6a5f23e40494c012359650fab34a4c1423572cd9efcf51a8443f80889d4ffff667d40acc81eadb064e6daa86d645283ae7272e76ee78ce60e4a9e195c859ac5c4665aaba808a51d660c3bb574521a6fd29da3862a19944318981e595a81f7ac780e95422f879aeb14a506320057c5b0b25691f69768a3499de67274e501cc7bdb52254099a24420b67dc27a58158b87506ea2fb4bb451a4cef3393a7280e63deda913b28199025ac307be0695922dc3a837600000000000000000000000000000000000000000000000000000000000000001f69768a3499de67274e501cc7bdb52254099a24420b67dc27a58158b87506ea0f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5f278f18e7a77366cd5d7abc1595ce47d9c798d9da33dbcc2c04076d3dca57c53106f88f71dc0d453484c90c325d8bfcfbf95bdb026c9a3aec927fbda982cccc190f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5f36ad4ab6f65a346818703440c16ad78d3483f49292466b6872e916cc5f074f8e06f88f71dc0d453484c90c325d8bfcfbf95bdb026c9a3aec927fbda982cccc191e3c639e9dcd9b3575eaf05657391f66d9d63570bcd53e78ddc3531d295f14bc2e87a8598380ac01e243c847f35a44d5c0f4b4dca076071896872ae74d24914800000000000000000000000000000000000000000000000000000000000000001e3c639e9dcd9b3575eaf05657391f66d9d63570bcd53e78ddc3531d295f14bc35c3976d398f747336feaa383f3713a35943f3c4edb6b1b51af8347c453c12f50a3c6892c6708b8cc90155c7c0c8ec5cc902a5371b9647667e34fc70bac3ed0c0cd1f5221fcd464012f953193c13623035395ee87f5d941b222442b95a2c5ec5332e0adde032b9bfed06ace6c3ec9dcfed0d3a1389ef65007708ee33a5d3a13c0019c9aa9f025f405ede9f7e2c60eaf0e7d8418e7386eb6c11881cb1c2ddd9d83fe6365560fda0bfa1216081d39f150f3a6e576d95c60daf87a5143b3d2226290080f0551b0bdc41da591d76dde496b4873947c841a2991c57a88f78ce5541383f7f0faae4f423be25a6e289221b694b9b0d5133c7aa5fff4184a17431aabec935c3976d398f747336feaa383f3713a35943f3c4edb6b1b51af8347c453c12f50a3c6892c6708b8cc90155c7c0c8ec5cc902a5371b9647667e34fc70bac3ed0c0cd1f5221fcd464012f953193c13623035395ee87f5d941b222442b95a2c5ec5332e0adde032b9bfed06ace6c3ec9dcfed0d3a1389ef65007708ee33a5d3a13c0019c9aa9f025f405ede9f7e2c60eaf0e7d8418e7386eb6c11881cb1c2ddd9d83fe6365560fda0bfa1216081d39f150f3a6e576d95c60daf87a5143b3d2226290080f0551b0bdc41da591d76dde496b4873947c841a2991c57a88f78ce5541383f7f0faae4f423be25a6e289221b694b9b0d5133c7aa5fff4184a17431aabec91b9d5a2a50c6d8a61acdf312b101a31352f3356636139aeb9593bce4d5ce2092004c37cf170d22355a2c252313a00e318136f39a3ea0096dd1ef1c2bb8c26fb52e1ce4971c1e0b0f5cf880c34677be686064dfb780006722ceac044d1b699bd630724526f7075051f9dcf819d0dd085d38ff955432016255920a1f29f6b253f63cad42d00b1c85898c8734a7773fcde6e6af3362fc537e8d1fe577eb4c0800a338709587a5684be366fed5b4d585796e7a7e5ccf560909712327421873ae33ae1e2dfe94e27245c14963a6ee4e6e50a81ef6143d149d890fa3d060d4fbcce9c82a1ac3d118f0c53456a73980df4807bea044cdd1d80f8a0ac83026c45229679b36ce8f7204cdcd52921112439e0939cffed0e736b34ba50a088e2a713f722f8e373208b0487abcc23f2dbc50176c88c08aa57f0078482afdc8ee361b7c5ae30739e68bf42b1126718c2c16daf7d61a26c72192c1415bc802805c2c4eeff42ea209eed60eb0b4e5102fee7a5c01f3b6100e6901ffb577185772d79deb5fb23d963645c13e931b1c4a88398c2a08869e8491351cda5c85f028ce1aa0a80ec8439b0f418309f1eb8d78abf6e2c31b82e9716810100d98ab8d583533f597508b3c5739e68bf42b1126718c2c16daf7d61a26c72192c1415bc802805c2c4eeff42ea209eed60eb0b4e5102fee7a5c01f3b6100e6901ffb577185772d79deb5fb23d962626a20c33c3a27336b57989aabf81883b76d3d0498da0a016c11e0834a825e736ad7d9c95d25958a87be1a7b086e0fb2a18f17d14baa9b18f138d547414667f37ecdff67eabaabe09513ef1756b02481adee2767f8b5a5adf3dce04b680b2201a051809fb6f227ac966269c32a0a790675141111e7f85bdd7493581b1f20e95000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010ef1aed1e99d35333aefb565fce63e1f87ef05633d9d5433c044940ca903df933b515c8d933e52a9f4e25c2951d411084a0317b852cf4aa10b55f555fd9e77c1061b6dd0393ad8b0d79ae5356d1e12bf764ea121e407e8ffe834f52a58cf8b8937f86ce6f44285ad08aa2e2db9152390896a1314bf0efbad0fb91c2cdfac755e19885eb943206dd7003add9b4925c6a74f601bcaa42b6d5ab8185f7e357c6e700ac7e9e0839a3bc4da2fbd5d627611afb4ef28927076f95112d7464f7e7d5b9d16677da981820c0d3eb8e84bedf01d153eff9795cc821c32eb58f32eccca22082e9e46f5d3129d4ada6467e4e2eee6246c8fb1308908e92c76edb08adefb35b515f2c9a15cf8aa3eed7158eb888b55e2f91a6239d7dc8d07b429aa54f04a6e12097d60155e15cbb4a0534e68e562fcb8b56ef096fc1236b202092ba7a816a5fb3d116770b74f0e9f87a66224aaa8babe24d26840515ab2356116d9e0c27659f4094f2ec0d4360f8560e677d2088409a5a641206e524401a35429c88c321a66123082a82bc61e459f3753188c44e0d5579c22ac574ddca6b3f81c80f67925dd5010689ead8168faba155d6790261d42ceac8ee9b9ba239c685d1d9e07e3ac3f8a2ec752eaa54990a8639bc0d5c6eae9334c7344b2bdf0edcd343b270715f1511b06a4f340ff9372b09ed71be1b1921ce1c2f63146cc4cda9946b8face352051c0241d51f973ec8aab3bc0bd141361ba811826064418bfbcd50030a2d270276d623c5fe4bea3668ab379728f856431503573394681aa6801eeb6c5507afc3b91e51bd2c9bab6d812e0247f93890b784f671df3ed1a6afb0577b4025a12dbcc33aa14bb72cdeb75063bd9e167ab9514f46ec56148b74506045515b4d89e6bf6e034214253cb08e2ca8d3317e1a60b2ad00d6758d41dc87e78fa016a945330c165f32606b3c701efbe3d79f6e21f76d933a0bfb29a41b15647743bd8c81d2e2ad40535f942b0b9ce3ff60178a0e7a559c811a46e5dd66741c045a1913396552f73cb2951d87f933a62fcaa043793e9446e565cc8bc81aea656d8106b0c1559ddb2fc1f8884b52931b5d8ffb43fecf35c15c4c9289366cfb1c31fafdb9ce248f84e263427773a1352493de4bdc538d0dcaeb8f3948baa4bfe8b5b1472fbe724d2133d013794c48f22e05a0f4741ab678b7f38a39bec722ca897559a3b4ac851254f7b2ee6efe9b669a8df1a22f7ee3846bb06a939ac5bf8e67e7131a6fb28186194352225da593e63f90b1e67c212a09d6cdd7c486f19efaaf91d1fb3ada181bebd74315e8ced145d45552753e0c36d74a393761e01c6c825192cccaffe0f7557d3a712383550e52fb3f15ec09038331bea0ad5b7a68e1dfc835917793c5d3b941df23e26832180d1ee0e0b863411129b2e1f52082087a0208631f69f6d69328c664617103ffcda66f4f2f185dae86fd53c3d7ceb9be7ab8b149978874746bffcfbd32b57a865fdd5207ddb77dfe83e74cff193a6506843b8a9b67a17b4ae47284efa2e091835a3caef20ad21959f18f0100774e0d7fc4a01f311679d7a42292af16f2ff2016a7b2c5acc3177b5c557ecb5d24a3de2d2b67aded0d71ccf5f06f684230837f390e3078b515a3b393787fe51ef23dcc60f7f1d8c28344459801be141bc0ca6b0094c41e01de0c1961fb076720c25863f82986524255525361e7ce845d01365a59a5a547f22994b91b4a696bd455e99ddae2c2e08e12e58b8ad6adb89c01ba41855a71f6e48b51b5fec2037b341f5a02d4b64dad53b376753ddac81cd390d9dd072d36c533c8bd6b9f3c8303e499a625e4aa34b5bcb3453978de23aa11f1cb6da54d386cdcf8c9e2589b7ad19d110831cba6caf8eee46a339b3f4c0c149039d7ed98a9616c2872b6d34e58ea2bda3bf573f4fbc5b15f13f6f3989add9a7154ffa97956614dd7d9d54c0821938c597d00b8b0a6d785db8314004a2a3776636983cfa735e0b52dc617363c8c174366a55847f987b4545418b3766c8151cd1262c1edc789c474650b7bc5de73dda7a1383228b67ba7cd52dc04b7d24322b2b1d3db38069b1fb7a25c08b1fc92ca68127deba11ca59ae1656508c2ea388c6d30e5856f5917cc70dffc048d112b4a05d7099919af1e51f59e45cd24d6604579e3c27bf2e50e25a0f368854220de77ab707f943391ac0d1180a4a968ea0fed7033af07e4e2a46f4164710eeed7386f644388b1013bba4b99c45c3fc5828fc47663395a5dd360e13de1d90628d3107ef8b4b55279b87bebf2e5cae67f17ea6ba930c6a5a22c9f1ec21e26f9d72cef81074d6f17160818e39ed3c7ec8fb8159456e01ec3d520e46635693d1ecc1f527adb7ef8f62198185d7796ab344037941a4db3e13c2adf1b99ca96c2e133e0ad8524832b736e287c721a22e79ece986be5b26099d329a475ff0b0e3199fc9c9c66497adccea7f879d355f158054115e4838473662cd65b8a00f4f1ce6603636399b687479ae7c81afc3bc83acdcdba1b7c7ba3011fd0364dfb3746f801ef0f0dff6f66500947da6120adb6b81a456d76919630fee02fc9b204c8b907fe10f0f200909bd46047e633aee402dab8c962896e69e3395a5dd360e13de1d90628d3107ef8b4b55279b87bebf2e5cae67f17ea6ba930c6a5a22c9f1ec21e26f9d72cef81074d6f17160818e39ed3c7ec8fb8159456e01ec3d520e46635693d1ecc1f527adb7ef8f62198185d7796ab344037941a4db3e13c2adf1b99ca96c2e133e0ad8524832b736e287c721a22e79ece986be5b26099d329a475ff0b0e3199fc9c9c66497adccea7f879d355f158054115e4838473662cd65b8a00f4f1ce6603636399b687479ae7c81afc3bc83acdcdba1b7c7ba3011fd0364dfb3746f801ef0f0dff6f66500947da6120adb6b81a456d76919630fee02fc9b204c8b907fe10f0f200909bd46047e633aee402dab8c962896e69e1040c9277dc8c6351fd039b70656118046072e337c872d37814fdf794ba768ca31870947f95bdea9c3c192cb3bbf7effe29d0fb7bf7284c1d7e0d66acf118ab01ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a1d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f31193e844b86b8c4f590bdf70d22aa7ffb46cef2f868facb733f6021b5cd75c6b3b234a1d408a815218dd978d85cbabe63906fcb6edc584daec2c3ecebe09c9ba6e637474a7ffdcfb565c32df73d979327c405c73d83f718ebb906410d73dd2a69150cdfe26095404455247b2bba849a1b548587d63d802de2b14f45ff566d1748603b6d97230c19cc65a61d650d6c2e045fdfebc3d59be318deace7d9def822802206fb559fd2cded1180d261ade475b90a049b867c6e953e68a9eae362c128b6c024f3cc984102265dcdd7c86bc903d5b2b9219ccfd1a413f5b054954914ad8aae2b3f9c77fc3bd3c17566dd79285f24c0ec915bdd0f6a6b45c99c5e3b9018b9e6131ac312f8bb931b3401555f0b5434e084905dce14394217e73ffe32d8593c1e3138f3bb27893a847d446af3c7d6cb1c36468f53ea4806685a86e0ab666f443a24f3cc984102265dcdd7c86bc903d5b2b9219ccfd1a413f5b054954914ad8aae2b3f9c77fc3bd3c17566dd79285f24c0ec915bdd0f6a6b45c99c5e3b9018b9e61ab6d33a256f9ad9258d987fc73942cbf04716c5e24983a94667648133a2579013028389c7b47ac20c77285aa156d89333428bad1a0b508e0dfd7bac1f48d5fa3b81313d00adce58bbecb348378aeb69c112565a7b6ba2dfb2c61918559cf740255e45164d505e610d87f31196438ecc7eef1a61cab55a3e2c8037d60fb090e100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001073b4a1eb8fe17b673990fa342e545e24dfb8685f4210b39223ef563a79db2c129ed5e43b8bd8aafe2a130c52a1cdf5b99ae1ffe96194dad9da08ea193ff17b6198b4a05c5b94ec13631b16713c23eb403f6b9e369c19b239ea2ebb612b32e73161fbbda3f40e71973b503a1395f71fa4fcb43b0ea068c3eccf4bd9aa8cb62bd018f2232c024a3d15bc3c9722138cecc5513aa81f29fbcd2a97989fe824f71473a8f50d944a9ac248e6770fcd64c081213cf506149cc2f953a004c56a9dcba680a84c77abefb37c669bbc12d0b6a7eb69e7d887607a84358e885c87f88098afb1a315b13c35185a7d6d5dd6d6938ea943a82c1f6189dfaf30b7f507eea06e1710835da4e579dfe8bda8459a51c1b43c8207f2641354401dc13412bad779521131bc000af4bb3f5d0225fb0f2d05d82c4cad7b4c068776e0da431d4e631d6afe91bebf8084e2c27e38019186c7bb801a99388d4aa03a4ab1c3b1d4c75f2ae8ea831dfef699cc11334256a51b70c962c8ba0906081987be73b25205bf87e9c57210c0fbc5522022c83ae635c6b0e421efd868aef1b16d230732b248f0f4b90e84d37b1d5bb083c15571301a3183bead41b1eb5bc4499c6d3d816e954b1e134aaf22021d23c1073689414fa1843893ff47e7247a15e7587c8147c7debc123e4a90e021405eab26fc6d428e2203a2ecae62a60f79a2e7a5ef26ae7f92a440c801b2c14f5e9ec431386bd2eaf5368a704e71d5b9c5659312634947f4aaff4f5b2581b15186484bd03fddb13a6ac062b99a7ec01d793066d24781c2bf7be0b5a3b51bf2201cb98d6fe299c6637d98221a9cc402d909e1643b44edea8a30c71ef24fb263f951ab541067b9b81a3ec7ea1adf3dbd337ecb893e70d5d55dc33992beef97630209b797e6d29c9f7e8926c58384c4ce180d56748f95b9c1b6e35f266df2cfc23edfb065a24470fc84700185e9a910b1727e51c9517b51dd673176457319063192a27015103d510a8827a90f59a17381873469330073218a7daa0cf7e324c9f1b0ca38c8833d206868983f400476bfcff0ee127b68ddb17477b3e56788b3ecc115b95c6235a3d610ebe714c86bf9f4ebf93b83a9b4414173c997cdd417b96d23d78bce8ae81b920ef4b7903d9c08cd872703c6b4f66d479273dd8917ae9845a0676ba9e7b3c07c5a72a7b38063045e1fd246ef22ab2302f7c955cc3e0dcdb3f1d27eaf4d7888d0a0d9a9d67c7dd73411d91d34dbba3131a66e9d47916d936d91462a1507f707ec51d5fbdd99de869bc2b6bd47576570de760085da7a8b8e12a316d243a37743924532886c296f1b75b7eb61926680886b0c713337c5c599abe30b9e705df3127c54212d7bd8edf76919ebe0c8defe0ee15971fcc51a9bc80f92dc5f034dea36a0cb2d675938b2ab53528a3716eb206e71d7c44abeeb4fe627318f1ca3e68c0bcf4c032ec309195131fc1a8ac23e6944121d9e83408db3f6c4a3c895a8a7aee43f0012314a91d01584c6bbdfe92ec5031c40d7df80bfafb94bc074cadecb23eadc033a99788919a86341dec11e186cb285baa7a8213110e7feb19f7e46777360d87f158535207543d165b7e494642329ee38be36be6b879180b085b61fb02349dbe19b984935f6fdf4a40f8d9c80b2cff9feba62f83ff926f9a0998eb32a389c0d74c23a60b6479c2a7e0a41fc4d57a9614d6393d06201679fc11a7c27fa5f4f5fcdf75148432691a24f42642d2a29faef2b49e55aee4184a750cf9dc975fb46b7656e0fab9563f4e8c37c4a5485865eff94e159c1b6fba166c3d8b94a4e41b774fcf776a635bc137890d98df0a5f2d1abdcd92fc98afec331a350cd650cdd9f4b99628027b95ee8daf4e4fe7878cedb817fa7825d0c505f2603651891a3141e4cc81635c07785493a066fa230855c255c36dc7360531e951d20b0fb98332dda0a19587a296b85f9ffae32ce9bfa7df549185c600ec3f5925791a63b835bb765beee4abbd64941f7edbf29bb92406f1b4408e5ce862a1d1558f1676a52a3a934b5f6074a8c55b5e273a513d242d8953521fa5465cdcfd29a9cb25ba85b701fe31c68b9001a0fb746fa1322688ce73db4c460d31588de18cb15311c92dff67b240aaab4bfb8d0e868423564221b0dadf19da4b19e4d23891a21e367e12dd6e679106257a7c79ba353e987d305f681a8367b0ab4a5aed2c6feae6011e2639dd83ca031ee96e66626b8a0d2b91c85ba68feb6123b7f43ef8c7babf2f712d9402cd551e2139b3bf60d1b084583955d2599440b2edcc989065d09091108ed26bfd32aae1dec64c409f2e4f7bca0d4329afb8b868ab60985c9a2f6f702d35e3e40e02a996a62082bce4187295524ae227a3fe582bd977680afd12d2d212ca1c1bf1fd566959df7d431be78d6acffbb6d4654ea0efbfb5c8e202ed2d2f220d7374460d4ff13ea28db0747a3cea34a29fd21810cd8873cd756ff15e1e171df28c8bb9f2b00ec15d724f8b85c315eda3f929f13c2b93255fbb7d0ea1e1ea2a4341455e428fb6392cc47246633092c29fed2265ba117310a8e955b6d6967115bcbebaa1bd7049c6d33b8db99ccf6d5fa6abd9a392e7a888844797492969902f712d9402cd551e2139b3bf60d1b084583955d2599440b2edcc989065d09091108ed26bfd32aae1dec64c409f2e4f7bca0d4329afb8b868ab60985c9a2f6f702d35e3e40e02a996a62082bce4187295524ae227a3fe582bd977680afd12d2d212ca1c1bf1fd566959df7d431be78d6acffbb6d4654ea0efbfb5c8e202ed2d2f220d7374460d4ff13ea28db0747a3cea34a29fd21810cd8873cd756ff15e1e171df28c8bb9f2b00ec15d724f8b85c315eda3f929f13c2b93255fbb7d0ea1e1ea2a4341455e428fb6392cc47246633092c29fed2265ba117310a8e955b6d6967115bcbebaa1bd7049c6d33b8db99ccf6d5fa6abd9a392e7a88884479749296990059566e6dec5172aa9a3d8a9347fd6550f6f1691a37f82eac53d94a6e7613a4813923ea18517c0e7c6fac4d117b9917c9f0728c9ec39dbb77de85b5c17f2c7f431db538e220d9050deb695a20721092fd516be72dcbf54583fa16ac019dccee5387802b35ef46d465536c7a5125bfe9b85eeefae2986b2a5c1676fce05f4e00023096f3065f532e86a57ac40df2077670a0043ede4ae3acb82a22513f9e11ce71d7fc490211442a89bda54e307c18b2d6a33e4d61c37a7bc14225d70a1b8807910a15e6790d8e4b82fe087135089323ffd067829bc177774d67da45e03ba2635208638785079210403ebcf053fb691039dc5feb64d5e55135b61c9172354fdb2209fd7b79a22778c407ba6c5dcfb5a08d6ca01be1025bc844dde9f67b13c1656140f7c93a4f215a82cf6beb8864c0e021c398fe6116c383d633ad8f237112c8922b7fca4a22d89f65ab4f8907d14f22b785ecca330a9a198d313d069cec501dd27014a61a3142c78ae69e53a0b31012aebadfa90dc35eb5536f4994919ec190c088f458aff2d588477a591b4c45f207b3dc0c3f7890e21d8944e3185fec1f6d533f5beab1bf3d1d1e3ce7389d5ea6fe81f97197ffcd963d9f30a96afe218580f22b7fca4a22d89f65ab4f8907d14f22b785ecca330a9a198d313d069cec501dd27014a61a3142c78ae69e53a0b31012aebadfa90dc35eb5536f4994919ec190c0d3f2980d086bfb2e58ba6ce5ac11b7bd0731a80dc6b6c793fe46e38ee655f9519e781dadf3ba4e72988916863b109d130a72d53323930274c4836483e1199181c29cf91f965479c756d730c77c70021fb3acc627abea6dad9ce7d0b1124fff70b860f8a3d66928e9fd8c64e2d8d27bf57cd0b398b7edf31aff5790db6eb96150000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000123f35faee494ebb4c59eafb62b0df636b312cc70a4e5329719ddbaad43bbb9b80583766f430c6f91c97bc97657653637e79c84d16fce01910ad73a1d7420d32527cc9f3aebff16a8c5b46486ef959fd8fa21a285c505f467355b3e0dbb9d3c982e8d96db2821d25e24703ae370b04a39bdf60e36cf5467872870ce76b50a5dce0e2fa435410a8c1c4626c3a2399ef4f3e7f49b00809672c0cc797ef0bbe4f46b0eb6584f1bee2e847cf46d0e0f28826524128b718e01e1f12d80d3bd64a881b509c01fba9adadfb72f80b0fb0ecd6d8df38b165dd837e7db926352d9b2459bf72a99211336806a80603683b6e59d9899be1bbd0135526d57afb817c5dafcaec8367dc56b395f205f463ff9fdcd89b715f5dfba6fbb54b5581e3225ec18afb8c62f02aa3f189dddffcb605bcd45d8ec26b3cd713922b962ab1546fb27f9d8dbb70ee7784cb73aa5746ac9b0fc196c03caedce74f78ea31fe717a3ba8f94f1d9002efb4e132456ac608b2b0bd2e4dc1326976b07b3fadd6fcc9660d1c7612bd70c343726fe838f3a3c9c765b38f6f28559aeeeed73492af3ac96c6f32a36558f0b242d9d391304f380882e63c6cf4eda0cf23ddba9061221f4117f214bce80dd540c9f6c9ece2744ed3ace154f099e84203e1b8f23d10b36e131086e296ac985a326d44e92cdecb938d560ff7b2ae6f49c238ec90baf2661430860cbe493af63c71a64bf86d4425f7de5ec5950b2b5d48c28c01230b9761773a24575911a56b872177a79d6111fb1236952250654d0c6bf71b4862ebd290fb13743ce91e77c56be0f84e56d31327343b976b067f1457edcb90ddf61741850d6e21df900256d2a6419d3f9e52edbd3c7f83aa742c64ec7abde3893a2f3661c3ec681f8d024bacba606be0542bfeff4c62143ea64dbf81858fccf8a615bb55fa06fe6faee822718c82534e42e71395236f660fbe71479c08c79ce06ca0ae084dde004234fec323088058bf245d9276a6979300a8cf8100285ade835ab97c030243d0f1b9c263f6dce0cd23ee40190f5eefd890d85d2c5f546996e1a4cd42538feb7f1bdd7f8980fc02ad26bd5eaa123f4af116900287b4da58571bc2e4071bd64f684d2525384d1ee21c271db5433c0a973724a26a3532ce46013147b7ce371b52f086c851dd62dd238e3d4a1730e3b62fa6f6b4c94628d6a35ae06903b091f56ae8d40d4dd0b8b123bae78c33ad4e44922ec766fbaf320ca1c1042048e62823f552e69b209fc018c3b27e6c44bd2a53cf48d9c7f56201f125b3024f0a3c68c3f6bc4830f874568ca279dde32f0eed025ecc50fd4dc654ef1f63f06e970c170ef01df318220075f821adfcc5b4692853c651d8f926b2c7154a9cd16d2ccb1d9c1cf56d75b06a2815c1426daa572bc47f0c86027fc0d683f9cc28adc49d864169d6297053cb989bef029b837c61533b35147be518f7a1ec5ac20c1b869795298af7fcb4525316fa069269f5af4a904c6931da7efdb70da7285e27d11a086095a60c830d468ed87a10b2dc71069b5708d3f6d841adbe0745f1e252c202d24425afe18442fee071ed5b73cf8c3567d099d289397d68a11b8add8c9e74261bc7cc1a3179d7c42796eb8e802e737223015faf51bef402211804a8826f9d4745a168c00bc2060d8948a086e2d1de66acd4d22e67f2343647b35aade163c0fc427d9b278f936ffe1214b6a883badafd4e75fe8f6fde0ec1bb0158a418eab6b2cd2ae4c4e5eab957d28d12179287616dbbe7e6493eb0fd9424bf29484c88ce2ecb09ca703b1604c7ca348b86204b2b95241c7e60e94cc491ef52a9c905811ffa0841ff0783fb38fce7f0036d11c1d40f722ec39fc3bcdbe21dc7fd9cef439a940d0787ed87a4a52789dd73a221e26a207066cade8de3d1db06f90a14ab79673d49433453328f60366d015184c0e6aa11a8349f0a7ee8602c0b55364f8831bcd8d526766f6300a3654f213532b0f0dbccd4776c81a75a28c5765ccfeac8d5c22177a88ee05de350f41900b5b4d058522493228b84de2db5f6e1424cde7fcd9c372c58c179fc9f41e5525b593312027f6ecbb9f2a9ac0568b6fc779dfb771ee58979de0a61c0c0f2a5dd68adb541c8239e652a81b4de18c39dd0ccd5439d4fb63ebf9f0773ea5fdebe8f614ec93288c9e5e5b12fd993aec4254bdcbb3839978078453a017675330b60cc5fb60570447a26efa6892213635e4d73e9772c98cd6028fa21472a0f3cbe54a5c4890ca0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae02347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f3dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc620b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de6371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a8708e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a0070e339f39258d62d9cfeedc219a1265b0a9daaed5ad56f7c18299e8f753a533f8f1cc60c6da729d26301123de65ed9c73bfb511bf223ac1d15074e708ac5ae02347021c1dbbc2ee410faa4ca8025bfc7351456a2c62b2d6c78d018cd4a239f3dcb8fde3e2443d11bef055b357fda405b1184a56686cdee2cb460d432b5dc620b0630a8c94aacea7454e537f480bcbee40965b12dded7e31e5c107c0272b21b34f9cf5736b553158bab1ac80b7f43413e3d334adb6e21387ad12070fd8d4de6371ef34bee75609445a87a17c683afba742efc75e55a376f97cc526c0c3d7a8708e10cb4118a9f6bba5785e8397c5045ae179c8623f2c1ac0160de80f3c2857a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001289653772664e5b0687671b6bf39d7359fb26e826dba5e1eb38a7e5233ce8de93ec6491753a6df9dd49388db1f1753ffdc69a266f0748b95abf20a8f65cc98142b1f7ac0060c8f935b9a328ffd8580f8af3732d9b1e774dae76956e5bf07120d155ff29f7d0992088c9b20b255a58866102fb254c5b20f82ff84bbfa157893462457c2be8825a49fce7d2fe697a07c834e1498a2ff2636a5e653e8b5efc346403ab7e0e2a2ad5b030ce3f960e10aa3dc9233db165cd5c5ba88137213ea653f0810fda5aba2d75ab166e0cca6c8c4ed479483bd7cd4f9db3ac2fdf7d7adb1c9500bf2d5e86ba4e45091aad8653583b89ae65d2931d7268adfe5cce3309bb9cccd083cbeec5e36de6f1a6470030880bdef9f26456b706a217813fb8bf4742020f4209b9c6de16feadea3cbdc9be6aa583c22765a600d194cd0186885816517bb6f3ce885e56bcbb6cefd35e6cc844861fb57e89766dc3b1a33201c82801f92f9d2337bf87b75540bbc0106c7074996ae1f14c1a5dbf89ef0941ef4cb729f7be01b09157e2d89205913d660f9152e494cb27b7a42b1292441c93f9c124aafcbf12c31ea65c4e9e714558acd2928da3d3675dfc9859551c535c081a81e79f163baf21513d7bf8fc2099863b97b5c05af50d4ca71eb13b6ccb5c815bd2bd83f4a0ff0293ff13332dbbb46d5613ec2484b2be2db4b22b31fce600d7d8f476f1d7526ec03ad1481b1a3c72c5736c382b3c04bcb2d1fb76fe935e37c3e130e70a50e6eca344b100f9ffff50223345ab458fcb028dd259864c2b9297ebcec62b5e8fe033f313a4b3154e4069adaecd8d03bf1b05e4e84b2c8fe6d28ff02f50c48bc01ea2c28753404c226483eaa05bd14aa4c69bbe15d937dbd2bfd61cf65df36f3b6f47634b1b6989ff53115569a27bcaf2df5a5ce24e1fd6a1de71ab52215d2492604b1202d2bc1ea579926677fd525d466ab4e90526da65e7975ae2458c0d59db6d06c104124bf579fa64ae96db0a0d5cf1eb4abfb3af7101b4ba1f2b8f9f85980a51119b0a870a9efa9b32e0ed0d073789fe0d4814ad6c0fbffa7dbb9ef4d4d0cd98d0e8ec97b0027960bbecd21346c6defe5f660b38dbe05ec072b7f145833b24d57151f0f65216996636648e72ccc7caf96813cb94c3a72e99654095c7c0210c1d03ac0c241ab7743d248a5d6c07fdb76b9e9fe2f62eca4a6e137c192078f1a9f0c3a60ca090e2aef847602f31970a055785c21fdddf5b8e4882af5d6baf7a2abe4243e807054c24a4e5c8590d5fb6c0ffe7ccd5129829c67636e5559755d69cdc434a11a37bf8651ea7467328346742b24cadd210bf96eb351dc21d7d55481960d0d8ef9df286fc3a7e42f5867cce8e2b201afc1f47eeaa928bf90c13a0608fdb915de826447ab5db14dc07da870987d8725078f6048ff976c83c95bd98fdf23a928695493d7ff52efb78cdb88959f994c0c0b74c13a8a00ef1974a07096a70bf42980d9b72f734e4ec0c9e0dbbf3ffac26f3bdca8db19d036caf234f2ac0f96882c89b461ec1f50ef1b247777597ae7273f9093e8c42f90f36a1a3b65b759e55f155acaa9bffb52c7acf71a95f8df3508239426b68deda949f5c777496e2b71702fb4bb451a4cef3393a7280e63deda913b28199025ac307be0695922dc3a83761f69768a3499de67274e501cc7bdb52254099a24420b67dc27a58158b87506ea1f69768a3499de67274e501cc7bdb52254099a24420b67dc27a58158b87506ea0f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5e2fb4bb451a4cef3393a7280e63deda913b28199025ac307be0695922dc3a83770f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5f0f1e31cf4ee6cd9abaf5782b2b9c8fb36ceb1ab85e6a9f3c6ee1a98e94af8a5f06f88f71dc0d453484c90c325d8bfcfbf95bdb026c9a3aec927fbda982cccc1906f88f71dc0d453484c90c325d8bfcfbf95bdb026c9a3aec927fbda982cccc193ed2ed146933bcce4e9ca0398f7b6a44a81334488416cfb84f4b02b170ea0dd42e87a8598380ac01e243c847f35a44d5c0f4b4dca076071896872ae74d24914800000000000000000000000000000000000000000000000000000000000000001e3c639e9dcd9b3575eaf05657391f66d9d63570bcd53e78ddc3531d295f14bc00000000000000000000000000000000000000000000000000000000000000000c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba03012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b05e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df622724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a331d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce0c904640edf19166641db2c1117917b8ef2bca0f0943cdd57cd144a5eb855867336fb9bf120e6e999be24d3eee86e847331aceed00092b461c5bec47147aa79a3ed15f44a5b7d6fff4947dc5575d769cabdaf24b2e53052b7016573d999aba03012ea0bb5a4829000b6b823aa8a28963766ba6b0daf9f3f02916d9af666545fe3a16dc573c9732ffc6e674dab4d3510ed22c5787c26b356acbbaf0800005a20b05e923a8c368cd0039198b254b2caef1501a417446e1c3b0cd72406cfffa5df622724db42ef3fefee28048458820954991c351b6a6e426a795f1eecc001c2a331d8db24bd10c01011d7fb7ba77df6ab6908347456268d274033b4220ffe3d5ce154726d1e457b749e5a32d9cb269c17087add08c554ac6163f1ba6dfbda977f43ebbdef2711d9803441a84e31a9d5ceddb174d378971a5aeaf3f8ea84a27c7941dff3c5197fd00d1d0a0de7643244f7892ab4a9b26b3f4238af227929b22c07334ab22fea15d89c74a4ca0d1cbdd19b18c8dc4699b5e6d44a70b9e363033d81225bcbf352e713ef1b86fb85c844fefc903d503fdcb484921d323ce1fc3a082f81012df7cabe39036022d724c01bf03b4c3f033f62c418be42a9a3df04001865d32ffb8a81db842c764cfda08d979a7863a7de0149f6ce6ddf6974988ff4d13213e4ff5f0fa47d4f844d769855072f649123cad26882535aeeba8d19022022d051fd3f0470b10d600d0e6b73732ca85c61cc8769d3057e0f6bb7b8e9628d159fc222c35e3ef570b6bd331848989afdfca2c62d1ac0492d2f8b11ff463519b299202a6feb09641672abc1339ef443b8b25d7bb5f37c40752bf3a4a4be1d8bc1cd522d9047da94740f3a6eecb0b7623fd50ea2b88a1afb2b8cd30ae977ec6ccee220cb99cdc83ab47e449bbf3ed0a71ef1707ed7dd48d4e3ee1cf1f627aa733c79b0c98fe0eed84de357198da4b19858960dce82056edc9df43dc0f34fb85a4605d02a6feb09641672abc1339ef443b8b25d7bb5f37c40752bf3a4a4be1d8bc1cd522d9047da94740f3a6eecb0b7623fd50ea2b88a1afb2b8cd30ae977ec6ccee220065ae6aed6f15d7f50605401f337c3ff7ca9d27764389f52364064fbd2c3f80251001d0a425157b25743a0b0d071bc241473e526eff30792980e044ff103a4d16fdb19c15198228b4de779421645f9d26bdf93adc95a6bdc50bafffc3ad071c04479d5156cf78522038f25f90e52be2b7d28136f6e9ef9aec6a11b7fc317c0500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001388b0333da03374f9da2acd2136f4b7d88bdd35749e15808a64704e43de754dd090a3a3bbb5eb5167928ae828b166e81370a7342fad5731a55ed33d1784705a92781f343ec76148b7454891fe9444c8a2e10f7f88790d40cbf34dda89d33ba9c2a8bc53887742d71a89bbc3c2194748549444007da46c8d5b134fe54ebca754b2dc0f5389654a41d09d968af293434e6ffc97db65c5a227c55e42f102340ad1010fc59263e01be589e125af93ec1f1c3972d08b02328c0ae07034c80255793a30884825c2cb56eb151660b550b8f95bd0d8cf94c5f65c7c953fc5a4aa8edb38639efcdb6fad468b4d12c945ad611a77e893ce9f2893b1274855a00cb4f23341b1d71f4d444d4694ef37c68aa87ff05801edd71f131328c1d068557f90dbfa88c26358d6ea201b5eea34c3705aa8eedd7be17e2bb6eada4bdc3e1d74e7f2f718a361b4d2604e4a24b415d17caa58b57cdcac84f0e37b241c066e78854c1d556e92dee9c42126f2a104a4f2eb7ece763ffe970d9937c434ed2892491ce9cca07fe21490ef65ffbd3c61aaa38b589fe18945f7135c81cda5debffc16eeade02b3cd15db30b5e9c254b250319879409e41139c81fe75efe74059545246d5fc7611452665d50cb3613833ce7969d425a2a156c92b7eae6c9daa08288d710400f5f8b61b8ed75ead34786034e9bcf00d38da5404d971f53414a3804dd9b46036775bcd0a56bafb3a3a667f7a0963272665bc4c37d3d6ff8092479208aea2bab54f37822e94ef99e76160d9d1b049908fd9e62ad2df6a1fd8e8192b1845f95b0d84774c27d9d15b3176866b5aad640722526738505b412544167463038fb78b2268aece050bc8f9238ccfaf7eb890774fb55ef0aca46e6cd3d7e9ca9b6b6b9ee5db2da101c563cb9d9a7f1e8ef0721213ec32605d7698d7c57faa3213f1281583572bd0280608f5aadd3b022e6884004de6d2c362e8c01c0db39f68f515a154e98f7ef0229109c2dec6cf3c7c15ae9908d954724e57fb053cb2f3a0210007a0996d799a00a5463efa60612193b39e2ac53aa1810b1edd58ff876fa9d57500bd7c4430d403c712f50e41686dbc49641ef0352cd8fde7ad7b7ca0b684e1fe6b81edaa032423ab2bdc36a8e3d57bb79687afe480ba7358a9765291b394e7829d659fa45d983fc5a0bde5715a43764839499273851d7073fd0b29e1323e7a1cf2f508f6c4f80fbaa6ea9ff1f357b9943eda225518dd7d87e96820de245b2454ff461e121fbc283a217875bfd1e6bb1527dc9ca3ec5c8a2f12607891d4fa54fad09c2910747636acdf27bdf4abd5dc2877a1f085c40065d250478e696df36b71b5aaf079da082c241ac8755dcb5292471bd978ee86f1e081c8dc66437d2f66712f205d83898d2375b40379044b8be5958152ec34aeb2fdd41f803655dff3b4b9af032292711c0d3d386d3d957295b22bad96740932be953066cf8b4e95ebb78dca94d3b089ba30438fbbe1ea021c9361409083e9f51e832431ea376c5ae6b12d085922707fcd14307e53f0b7ea141f98243a2f8f90f05b6d6d867547cb251b6e75cb3c2a5c423e36dd4297da6a9c7436a8cbe3b444203ee8f681e12ceb49965b626839b1ae693b919521508d3d2e78d114072fceaa74b06e5a91ec5d064d0b46d03a86d6071d050736f42d6d95b7a31d50e66fb2e025384890142e2e478f7d8ec2b48d80121f3ae316041a4c37d4506da396f0d24d29eeed488315df43666f999553f8bbe81001b62b47c621ad369a4afa5ebddea27ff5e7bf7ac9a8ebf63610e2dc3c3d769d3913074b74a765a7082b2753b76fc74a4299ffe56f7b17436da3dd5c74615bc72cb932a1d85dda76d4e84cedfb2401ab90786ce997a6379ebccbeab56f84fb83137841e8ff5a77846dcf3dbde9caa99680aa61f87d3d0df09380da628bba66e00d90e455bd1e552c2ff431e72b51f4eb82a2de11dff4ed7748d07426d32879713a4e20230346c367e619985be1283b95eef2bc166deae71d93d7d2d668c93218084ce7b567f57f365af0c8fe030243d7cebe7af6320b94ea5d48eb7d72a1a7d1207f44e8c2548ceae32a983a06f9c873fac23fdb58f23bacdb077b785a579df61e37dd9388e52541fbd63823b52d5694ef13edce0a8ba60b3976b9023869ed82056db320d4f6d4e12994e576f3dd8375de4f49fc044e4776a603639e755c50a21cec7a6c4ef5caa07973ac1b16f04eb815f80fcdd5e0db38ebb26ac0420896263188e3736946f3bf517c077eb5300c2b271757a63931e99ac339705544006eeb0e771c8c96b90c40ae83f8814acff3d4fb2f4155d01b0f80d5f3c097bbff911637ac71410e62c2bc976c257989f03cd75ca0eb4b0212a4b304979ee354022a9408538ebef19d3d436893da86760fc328c5a5adb1073a546894959209abfdd56d165e364547edcdaef51cbb5fb1b13034460a3486e5295310b24156bca40ad4e029a1c9bab81232510ae344a04e4ecfcbdc3c64752423a60ae6ebda305bf52b212fd70f5a67a5046ac98fa8de7875f1053bec6da67081a637e21980c23436285f1028f0a5985afb9536705721878a0efae65a2b5598cb52e3b713b02acbc9d7a23188e3736946f3bf517c077eb5300c2b271757a63931e99ac339705544006eeb0e771c8c96b90c40ae83f8814acff3d4fb2f4155d01b0f80d5f3c097bbff911637ac71410e62c2bc976c257989f03cd75ca0eb4b0212a4b304979ee354022a9408538ebef19d3d436893da86760fc328c5a5adb1073a546894959209abfdd56d165e364547edcdaef51cbb5fb1b13034460a3486e5295310b24156bca40ad4e029a1c9bab81232510ae344a04e4ecfcbdc3c64752423a60ae6ebda305bf52b212fd70f5a67a5046ac98fa8de7875f1053bec6da67081a637e21980c23436285f1028f0a5985afb9536705721878a0efae65a2b5598cb52e3b713b02acbc9d7a20427665ed95b17a0576af512ebc575a225cca770747fc11a85e3405b33ad6bb002137e04dacf9afbc347f2bf066d88f624070fedb8de8410940ab528ab8fc49c04c09948cca559d1731975a2d65c2fb3ad8ef33c857994f58189ceda422efc6c022cb81543f289dc158df769a1ccf461d4b1a742f415f2e8c3e17fe87eafe17a3b34304bda9f35e9ae3a465520952b043317ea89000a964bfcae2b94c9360dc91d4a164b68075b693e2db439bd86b92efd5b5b35359cf24326474ea04c03f18c20afdf35e898ca39b550f3d9fbcb59cd2f7006a49fe1a6e7cdb576ce47a9bc4d1646089be80432ccfdda62c8eec2e8da595ac4c7875b4fe6b063e1a56fdaff6126c27098218a30c011033a0ba7b53d15c7aad1d58e7f50088459cf9ec915a2d808c3125accc5382298d1a2f142f6d8ce841ad42a618144605589dad1893754662de5896202cb8410016aef80f8a46fc1e77d4ccf2768976871259c95e61722e80b6596dce665c4ad8cbc22e9703f3cbbe60e0082df02448ca0a85a63a0c49c5e3718005859ff8e8e357b954a3dde5aaa4eeafe4f0f53a30b91c021b78a2397e63bbfc9e5e13ddb28272a15d757c582a8298de1cb5c5882224140fbdbd5c059ec2de5896202cb8410016aef80f8a46fc1e77d4ccf2768976871259c95e61722e80b6596dce665c4ad8cbc22e9703f3cbbe60e0082df02448ca0a85a63a0c49c5e04ada1a618404a7f8ef455a4ae015b691552321b7e85bfc2dcbcc69d6c2ea32e322204d59cb6ddbc607a8f33211f7e32a5ad37bd025bd16bc602b2a9187f278c351347fa588ab24938ae2c698ac6c65b1c430e5d171147f694b99f53db294e0f1a3aa5189f130745a328b2fd2275f773ace9083d962ad8ab97ce233abebe7bff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001019df7293d86a46a9264394f565f5daca9ba9b71f72bef5bde9835ef9e5493f02d190ba5382f6c31778815364522878224af4161e59587610263c747f7fd22e90f53f3b7df9db111a06d0629ea0903e971e8f05ba76838550a4e630ea9ce80023f499838a660f8bfa5b754436e124ec6bbff3f4ea4faf897a26f2a3e7a83413727b96a39d5ac2857d0137654c0927241959a3c49aac98813b66cb0871b3cf9ed1512f8cf9db84d3dac121ab81241c1e89d400f43d37f1fff62741238cee89f6627b72e57645ee9fc07f35979967c5c553f443f00833d5013081fc400d03a20da1756c0456371aaa19faa6b2c4145e5cfd2b06f23eb4a4377d5162165e86db16911db4fbe018e220f8bc8cfc43d91387aafeba8d04123dd0c2684e5fe981912fe03b94034b93f551f6d63c77c9b34e6953aeb90b3adce0fc70db5ed94dd9cb33e0699fb87f635069e39b74702fa17b2afe52b59e8a0ec022662eb1c521b0a2e0a3979d00a5028f20106176c8bfe3768e282061588c9c28ab0e3576b2f1e6bfef60305451768b2cb1ed83ef987331dadc85752bfa41f6a98601da057b34c2daa5d024c6407807018ffe6d7c504bd39fdd28053a9a1d2830f4a5d1780423638b59814446321293e8b059e85cc7369635e0476ce54ff670e09a4d5cf03bad67ab7430bd01fb1e6028d1cba542432c0d7c1db0c18e09488f29fa5c943a820a2224aae1f5852e3f49676f5ef3448e458b96945e3ccd7489bc45d61f5d28571d88cd8621b031bb9a38b34a04d462b45801967f78893de715d00fe35f72717e63e7df4230d6200acfd3630a96bde871e12cff4318153054afacf68b3e4972bbade3e6dbf0e467bc2002fc5173381483533d2039445872ce4c305f4caf221d4853e94a85928c92bffad1a947f3d0a5e4143ec1daa0bef4b826b5f5f89b23273f431c3ad581c64a1a762721cd2187580eccdad6197c8ca3cfabd35590be48671db8e2429eb3053bdee9e38389a62c631c803379ea095486b4bfcde182583f3d51c552b5f0d2ed6df01d9c106cb987ab9f77e8734ee9dcabfdf5828d04777fd2a21d02b999a239956e1a43bad45c34b5358c2b9b05469651f0a604e7ddec26cf76834e29c5a2d1eb9e713dfd7ac2f2325a0cb80d1fc9b4fd4f2a7912bf54b035ad75e7e86030a87ce3683bf8473f2eb587f3b7d775bc82afe4334d93fe583d8c13a2abcfbe72dcb6cb14e570ef6fb373af55de656c1a5c27acf5602b4a0d8da0c1aa6404a380b7f720a36b7907a627016a7a08c6ad7f20968a0c0800138f619004c73e51638196b50383f43afe50b72f7103c1cf1ba31e3178e6b05f13db06bb27db2ee23471f4dce3ea1059604d7ad61f766815ea8b528e181838f6d9c9329f980718d3a4408c0b6b3250178abda63833769c70c608b9b6c89cfc1d3a115fb17b0212d605621686c92f4fecc7d748db702827c0df00def8d67c4f5d249fab3bf45a76ef27005e056b4864cbb1993ba900072aafda82edef208b391c8be318e86d5cc4dbcc90c9a7e42e462d5fe34a56f3a7b42953fd08d0561f0cc43dac167ab0d35f397e50935d0b476fd0fcf7d1134015c5a27168a1edfd11b9cee2a4bb92939deb8cabf053f7bb6901504cde120132749bfa8fdfcf70b39283cdcb001ee1f3a65ed3081120c59f6a59e257d1e20b1732c3267d4c67d0aed60eb117b5598b9d75a9728143a63f089841ff0d54ffbca7481451fe2b7e8fb01d3c3aeb827c871ffbe3482b90f74329b4d5325dfb73890ff58581c798e096c11be2c93ea297f247390e004a4069d7aa826f5194f6a21b49116fa425f8dc4da06df2f922c28c0c442b34cd49015ac91e7c59ea0f5281005a2fe4295af43de58e5c767b346c60ba786b46b362f057e9bdd8aa14d5d5ae83586607880b97a41598eb06e8ccf9656d60886f2dc3e23d5f788866649ef4be8031c0d1aaae2643d18467026a2daae5c6c317f71b6330d3a1c991e86858859bedd2f106139ed1204d31762f5f79815ce23aa22a2a09a20a9ea1781f8e67dc84e15f82690bf9dca3fe613cd25d949e7331ede799fa191365678c8b59610bfdb97a168107aa69b9e5aa53176fc22f09292fde1354a53e600f6bed4653ed4182724ecf083e647df363f9a27b425e2c09c280492a067a6290934a9536e82efa526fcb10a2a27da202f5d55a966f804776523defed5c67961201ce8617718e9d1d43c8c2cdde6472f628a18b6d71b7db08fc1db134b0e10871f882159992cfd1697f3db5bc2631c550398512da311d8303775b461269acfc62077dea666d302e9680c24a43d9ce3ab1eae47ce663b20eb61b77c8bd965303b1da8a6bffde0f170f7c348cacbef8da8cd6c63ec1cbf46b9e2f2240bc1060edc22575940021f0e8f083cb7353410725754da350fec8db261b63b0ce13ef9f125144b41bff564b734d6d06bf5fbadc44bbe90c1a47d226f6a3c605260c51e4a4a2bb4be400a9b48cb292f940a04523bb463b5d7578c2a89b15cccde8c3ae1b5b7257848bfcaf7940832121bcdea64d57a968d2f3a685f33f794b46af6d99773711a87b74035086bf7cdede432159b2a858bb969c1a0edc5240478c5f626688c901f882159992cfd1697f3db5bc2631c550398512da311d8303775b461269acfc62077dea666d302e9680c24a43d9ce3ab1eae47ce663b20eb61b77c8bd965303b1da8a6bffde0f170f7c348cacbef8da8cd6c63ec1cbf46b9e2f2240bc1060edc22575940021f0e8f083cb7353410725754da350fec8db261b63b0ce13ef9f125144b41bff564b734d6d06bf5fbadc44bbe90c1a47d226f6a3c605260c51e4a4a2bb4be400a9b48cb292f940a04523bb463b5d7578c2a89b15cccde8c3ae1b5b7257848bfcaf7940832121bcdea64d57a968d2f3a685f33f794b46af6d99773711a87b74035086bf7cdede432159b2a858bb969c1a0edc5240478c5f626688c901ec72c0c20573b5141e5d40e17d7293f3bb25cd5f92b26d68aa789660ac49eba06b8d7221f316ccd211c30eca2885f3786348b037a8ee4b5e05159fa94c46c3c154726d1e457b749e5a32d9cb269c17087add08c554ac6163f1ba6dfbda977f43ebbdef2711d9803441a84e31a9d5ceddb174d378971a5aeaf3f8ea84a27c7942516c5e8bd23c856c28b99e4ae16221700e7e1896d964f9b380b182fedeb9e46175df52e034c121156ab055e4ceb7ea10a6bb7e6078749c128fdcb7b731e63520ad2f9faadc80735e9ba393f6b1bff4e20561f7e5b92c0ef278f8683fc176aac34beb7ce0aed491ae91a54369fdd516fbbeda28747ae2e8713b31280277e27f7275d49c4a7f096e45e097e735f41461e1bdfefdf16d904f59a52f0ab5535ea900681d319abe950e3c5d7f06d93ddf9efee2466ed5d76c58c33b9131e4a7f718b2df270d063540c9307d61fdef29ac5d7ee81b9fa9d701126dda50a019c6f28e205e026ecce537168507ca95e76fd2a2956b39553733afa8dfbbddb00f0dff4210bf1ad21fb510d64d876fe5535bf15505ee66b99bad70c2ecf6a00a73791e9543a8b49eb6fb0fb2f9ac94a3042da43dae34159bd0e9967d2a2c979372113cc332df270d063540c9307d61fdef29ac5d7ee81b9fa9d701126dda50a019c6f28e205e026ecce537168507ca95e76fd2a2956b39553733afa8dfbbddb00f0dff4213bbc4b99a61a5f56e1525410224e4f94e185efb9a747317b6c9c9c73f92f4fdb2a041cd08caaa25bf08632438fa0c85c847da06bc85fd999bfb0940ae71424321d74a6b0997513bcbcd7fc5e7be3c2c34d6ad8aac3f0a7ef8a1712044728185904c07cd059bfc85e2e372938310cf5e5df5f1ef20e3a0a4ad0e4a04bfa255d4a000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013dbe423988e83108825bbfb00d1d7e04d63f21bb6be9f947808b21ffb281bee0344c53aee03fad78657129b6293499814b1a137ecb7ff92367fc8b00aeff05f42a21bd0f8d8bb623ae50c387e3706d14db9e16fc98071761e743cea4a1260381058a33cf44896784d9faaf2135b95318fe18d780c9c110a3bde2ea5a333f4f361117c3207b9a6c83fab3ee0c9c50c91e75780ebccbdc9d1586ace01321d15fa31d8a07f3a6627948736b3ff171e57cd2898702c8c51620f7c9be6f8f390a3733280481541c55f34f239586115503d05ea246efab8b8e66dee49f4648cdeb815d322f4778a6a77669a0c5d789b556463650638e06adaf5308aa08f6cc35ad08df13b9a5af8944e1f6562b96dc74f416105fb1635dabed7662256983764913674235fb3dfa78ab3502f6e4c0f1155a6b378eefbc6e579e64f1d08f3d6dbfd5dbdd14af0b179144eda5f2fb61d7939f5a9752d1a3a48d186a2c1df77709168aaff9047875de77d872aa6adcc4ccc01eaf5f9bd14914aabf352c135dfd0ef8da202629038e412dc750d36d540171ef42f75254ecac8008f7875ae8213b0a2952bad4091107fca0bcc5f6097ee777fd92ee355ab6835c1ee4e33ae2dc69ba9771835b308049890f6c5690c6693cf100414ad30cdbe30a1b1464eb50fe7734f6b7400629f2ce5059dc187abbe89889691ec1df7448da7fca61bad36e9def0a6174f1ca2c063842be9d3725b194f3128dfc319d20ff0b7132757a620edd843074eb15bf035eaaa1c830ca3392470a62b12a47b6aa83ed6b17df599b8015315e7d0538bb2093c59540a049729492710b9f73dd4af81d04896cadd3eb23ba4813a26b64cb26b72e8e7164881809f003bf747f53a6f50e25bc3ed0e30e2eaf6a8163188551061fe83987fea42973c39d3da8b853c072d13cae1163fe8e3ec4f8bb13e4679c22928c2137b1cbaf59d5dcce696c1118ba8f889f4dbd78de7f34e64dbbe1b0fc2fe79df98b9c3b8a7bade06993e4501e21849aed85b22cc7106d9ff00b6ef01b2398c2029fe94c24bad613a1d93b6b5bfd58ffe68b4b3cbefac10f8e738077d026aadaf8ae1463ce0128c043f66320f6455870deb7bf894ea50f2831e92744312caf502139232681abe5cf3e88336fe46f70ab44b1841d6b219583990be24b7e36cdc9fe12645d9f7cb97eb1e3afb6d263f107d037c742c12e20c8de0557078537e46a736f650af7a720a85dd8792e48bb59b905f597d72d2857c3b90c575f88306fa95ad82e12ea4c19046d17cf682f100d31a27449acb2ce0a2e7fabfe454b0cbb12a2343bbd1501d2a8232690055d22e4e0b8b7c91ee013dcdaeca68e10b111537385064f500381dd00d8db2b9f4db2cd63990b2586d71cd7c15a6d0b1eb43ac241825d38efd3f7a209fe69c5d3a8b0a8547610e8c24d38ea0d12708b5ca722e65f38aa8c400aac74ed2e0881b819cac6f6aa5616617620f1f79eebd1333633679df7710a264965f9d32f063901b0c08f20b9d922e85effd78948859779172c3c2de11017bc590139a8564fd00b5b9a36c38cbbcc4a8243504727927731192808df58c67a6129209acc0febf49879978f56a2598549d8ad17a1a8cdbc5f3d1e30dbc7539d21bd602e2791101b81e45a5387205db23a1bc163ab92adbf6c38147863f452cf5e179a900161114160eae746155c53e5e14e5764b2f31a224a900a1c95bd003036102564fd6a1a82b6cd4986013abc63bfc12e3a321c7b94d758082476d8aa111672b1ada2cb6871e96766058162fab95baa1f933525df3168fa2642afb24b3d3ecef0e8ea43bbe8deafe86c8c8ae241ad351dbcdf23e5f88e603cb1f103298c7aa9f4caf6788c2f6c624e2f2cfc627ce9894fd259222caa6864152d164bdd8407649e9eb8a8d0c253a3f809dd2455ca5d198568884d3e33a5e30b67ed239e97f3e9f78278c7947f2824454679ab5a4f9ba7362bcc6c972060371e46a7d6efd8b59a59af607045ff87be3ea0bbf7a7cf285a11d827dedb56bda00070706616914e863b3f4731f6d9a4a38963ca591b59c4bc1e6adb9ac4473cbe0ffaa089f39661850b64e177d1624015be776ebcfee53d681b4ff904f56594413c94522dccb83e1c8832f295f8b881ff6523229feb1ca0d9f49b3753cbb3efd43b78d10828ce58190f0beeeab42ed89e73dc8af01dbc3b2edf624596a874e6160bc171745c8c1879cf5d1c1b2eaef611a5b151ab3629533595471e9442feb6200145de7c766ce3ef7a2a3f7f83c0179f1eab4bef2ab0e586d85964caf6d59fcd3eba218389931c1085d5c0807c3fe861039b4d0cde9c1394c0d3cc22092a6034065d586e502073ad62d33d7d92c0761b99587babd5747ba239bef7f6d22c1f0139a2a791afdf8c529d2cc2826d3f89e488ee1d5033d87d795f6e38f62dd3e1001fd2ba2790a24262ee203373ddc24e89feba6a5b2b466a2b20bad7d21adc9b05202d45d86f5dbd9d11dfcc8c223db176238c2ea0de068ef07872591ae52364fc1f1da2c5d32b4beea6a1014354cb88b1b516e1cfc5c620a0714bd540864f071720e25d3a2cd4b411595efebcab34774e6d2fb72c4386d87b27e15bac79b0f8ea0145de7c766ce3ef7a2a3f7f83c0179f1eab4bef2ab0e586d85964caf6d59fcd3eba218389931c1085d5c0807c3fe861039b4d0cde9c1394c0d3cc22092a6034065d586e502073ad62d33d7d92c0761b99587babd5747ba239bef7f6d22c1f0139a2a791afdf8c529d2cc2826d3f89e488ee1d5033d87d795f6e38f62dd3e1001fd2ba2790a24262ee203373ddc24e89feba6a5b2b466a2b20bad7d21adc9b05202d45d86f5dbd9d11dfcc8c223db176238c2ea0de068ef07872591ae52364fc1f1da2c5d32b4beea6a1014354cb88b1b516e1cfc5c620a0714bd540864f071720e25d3a2cd4b411595efebcab34774e6d2fb72c4386d87b27e15bac79b0f8ea1d4002fcdf1ae6d1befa0240fc69b5e42ba992ec68df670cfff2aac3ca7f31191ca473c5897ba6afac2e70e9ee55b99f57af0cfa788c89cc309d5340dbff5b1a05f957432b4d66c307dd8d7a9f77a65b49b53376dadd9b2290ea826fd6568a542e26f67ab7b96cbd66298cf342505f2dedb559fa4be2273dd01899d6c3abb17114e207edc4aed3b7485d1c83777c9c4c561f78ac89a338b9ee76e9868d96287d088c341dec8b2c621e00483f977d30a3e5b173d640b2391f5af81fd5db955dcb106f400fd40cd580eaefc227e537c085f43dae32f3cabcf787f5798caabb684b15e6182930e462f2ed46a126742ddeea676776fbd3ea5136818b28a3440cdf5f3552ed1e8b48044a52f98d8aa0f456f0d0f57fd83b4569af6ff68a9545f2ff89200af01b0a6fb62857dc0890780e6f0f9db4d45a2e2039d12960e1ecfab86a303f1c3e6d3646005b86ea2120e2bf073edb7fd6e3b821ad27eb134dbb05d43ff702ab940240dea4835ca7ab615f5689414d24670783d804d16e1d682914e4b3841cc6a5bff597b26b39287044641ea3c0ace7d298c58ff6ec085003b95f2a4495353495bfbecaec92eda80222cf59e732ff28cb034e2b412d31a474c26054f3783f1c3e6d3646005b86ea2120e2bf073edb7fd6e3b821ad27eb134dbb05d43ff702ab940240dea4835ca7ab615f5689414d24670783d804d16e1d682914e4b3842999f372dbdae7508001930a7d02bd263520eeae778c7065165377a747cd5c0737da317fa6c6928622c3ce38cf64f415ce1cdfd6a9f3b1e59d2154d79ce4001a3d53abdf6d93c81ee435e68bbdc13a245ba0686a732affcd62ab641af8408ebb018eb51ec647b1d124ecdf7a9da04407c127b9a16f5d9b3b010b40d3559c53ad00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001045246bcd44fba1018badf3e93bf8e0b92efd6838c0c27e304bf1f13210ea3512835e27eb280107a91da9ae8856761aaea541be3306ba5b21770b1d7fa88db801d90efd612016ccf0ebea59080c2faa7d6cb1fee4123895adff0a8320e96ce060cbcde422cd9ce111ae60055b24b714f02a56911dc8fcc13165577a6f78373e500f41229f9fa64564daf2211756cccd9b6936088f4e6bab5df7eee3a9ac043dd08bd1ed4105f746f64e8d83dbed020a22a5c36a364c361991f3fd29645d7dfc40e31a328d6f4b281520b51172c5691df1f520d4902d4cdd011904784ed7720e91791eb17c144946c7829c0d7b6395fe8902129b4eee2baae1b9c0f3477cb0a593c0e91cf1a8954ae4421af2d721f96690f7aa3b1b54bc55cb0cd99a8a14fa93c05fbf978abcb2c581979d4e82a55216ab35a860d7049f87ff650697688b58df7121eabf39a8c0cade49afd6e7b8510ef8888bec07a70bb7bce2680eb57bf21fb0ad3982347a466b2e4d0056906b2c521c86b43c5cd779161f08b1fa66be624a50728cf83f95f032d8ab577a3e168af02cbcb28d75d1d9bd6e3950ef0f94a4d330d32f678c68e642899f39d8cb8363df500b8a412974ed07973f9090d4089cf7f164bee843e1f81ab0866240092ef7e18fa808614bc45b3a9347e1234e49171510e24fc4c885c5cb82a895bfeadc71c6fc5dbb3b75cea0b4a3ae3af12e91d1b913cc83c7d552c8e248ec4469792d86f9ce00da169ff140048e86fdb247520d3a214a3fbcb413ed0a275d47e088ff621f38e6211bfafc908298213ebaf19703a0929ccbc2059c6062b70158e71f99ad1bbb929f76bb548bcabdb0824187f1b71bd1c8e2a5e7d2f1cf6405a530f2cf111e0539fcbfe83bdf87e9987f3f47e35d6e8394758386c96815813d1c4117ec7a3ea0e3cc079959ae65c3d03a17b7615ccf228d76c0e7fb1b75043d0a2dc7896dfd50418b5cc682de6d970b8bfd2c26436cd3f519fd666bcc9166763fa1369056b120bd583d8a27f069f19c928b6170a6ba61190373f0a21b1832756c3b7a469c9e6019f88ec260ffdbad53baa40af7216da317fe991aca15cb92ad80a5a00b051d9aa8171a63ca801aa8972476edda4c63e0b89cd2aa4e0de30ad75448ce923ef89b3a7143f08c25073b83c1391014a6fc325ef4fd9f4c687b2f400cef048639302fa354740b6c6b61ae68502477f3aefca146942e255565e42ee8d6a30e28ad71f931b89e2784db568370cd795e6e06ebd0ce38eb371766006e3623ca90cd055121bcb977906988812ff7ae972b36e9d3420bf33ebb5a97a6abf04b5ea01272880b592d618858b4fbf664156cc72ae4378150adf991ba8e7efe73c39b49c1cd0067d3cda25a74abe8eea321f995f9640000879123cb995fa501c081dae52af936749b731e9295780e09272d8bb6b35c0711fa7409367c39521bfff921975460b6f3a3037eb9f2a184eeedce330a7589ffd2089124a4d4dbb999005131f01e682e755253f0ffb182d1ecf1a93a83c17a6562d46c894c00a0dcec27e87ad6ceada99bcbd0713f885c5b073f82c59e79e7cf91bcd8d8b4acf84d888860e8c11a0dacfc9886e8820b9b3585207ad217176300412998b7ca9259b5a7518a67de3edc03250014deb7d7eccf7780da26c60dc3c641338eeeaddad8b37859869b4d76ce3426388a5aff0f5f31ff757097e5c832e94185277c85a7e576155d77b48675526e84c836103b4eb1a1fdeab205e6a98bb51335370a335a58453fa497aa35ea359fb206c9192fbcae1bd1e8c3dedc9a65e791fcb93b1151567d999087ea31049689afc01690dc4f380a84d5b1d942dbf510038ef16e3b99c362a44f06daa19da4df88b6e1f299207a1df7d0b67a6c7f0b67a2ddaec23e4f87eab58fc5c510349acb1a6babbc056e66a453440adef1f9f5d1f1ea710c5288f52ef6139cae470fe0e14ec845018eb4781af0685a3706bba303030ab4421a6f9f1f24e276eb061e1a772a51036f8cace2f3a2e382d6056c00ea004d9d61824c2bf612be18d30706224c43fa9d1bf90cddcba0217a4b0c264561a18cc5378f2224cb7fc63f83f9d14b2c16386525d293c16d1af71eb69e89705593d0102112e724dc9fd33710a2e240fb5af456afe33f46fe273d24b0005edc9cc399530b3aaac2575e57c75d13cd39fc2fcd80b6e9d4b5f32c9c49028f9ef0f9227cecd7524c8b6cf607b9f376faf87672949f6cb0ca193ca9b07f4591346f1342d73402dfcfd34ba16150a91430dc4beb3f7a008f69778a18a461b50462a0e16128cbfd20302cb45e9eaf56ebcf23b416e4ef8f312b5807a0ee7159cb9d5f1eb234040e5f0f207a26e6934d64f44d7b91d025538b50e6fd4e7d6f5ca5ed2466b1cbfbf1a0f0df85d9196cb29b0bb2847054443c3543e8946b1563b22a12db9963041447db4ba262c280e082f8c58369d4c7e782376ae3cf154d86b19da1b60150fbebb824b45d9d3d7f1f7d073a7c962d5c820d8929ebc2a4454c5d325e49fec3146567487a2bedcc84628edbdb9111217a48dbd35804563dcb284ba4288e0660eb9a98b785d412337b9d7124246eeee0aa20b3ed3ccb3b7bc7aac32bd771f9b2d73402dfcfd34ba16150a91430dc4beb3f7a008f69778a18a461b50462a0e16128cbfd20302cb45e9eaf56ebcf23b416e4ef8f312b5807a0ee7159cb9d5f1eb234040e5f0f207a26e6934d64f44d7b91d025538b50e6fd4e7d6f5ca5ed2466b1cbfbf1a0f0df85d9196cb29b0bb2847054443c3543e8946b1563b22a12db9963041447db4ba262c280e082f8c58369d4c7e782376ae3cf154d86b19da1b60150fbebb824b45d9d3d7f1f7d073a7c962d5c820d8929ebc2a4454c5d325e49fec3146567487a2bedcc84628edbdb9111217a48dbd35804563dcb284ba4288e0660eb9a98b785d412337b9d7124246eeee0aa20b3ed3ccb3b7bc7aac32bd771f9b1d8394ba2e4adcaeaef721748559b459a82e03b51fc3c9ede424d047bd7ed5f20c42ba95e57d85e81e62e43ece358248321ec92aa5f4b75b78640b9689961a6a150a02f1be7f1ef6e5d539f61024406f5775519521d6cc7c9950525f5fa4aada04ed39a11be374a6c61c5e56b99bfcc18cf3844790a53d75fbd6e84fb2bdf57313ba0f2bd7accf7cfee43fcfbaa353d00184443feba854ca882abd9d0f8f5aa5363ab4e4200171a4ca45d1c9686169bde1abc395d177ee75de4c60c7e7ffc8822ef1f031e77c60013d5f5161a868da0eb91a4bf48387d840b56534817bae8e0b222132a305948c5650cf990c7116e62d592063b1b09cbac868b9cc427963fc0827b94f41bf8bc13d62c0f6f7d4407563447f087fcf2cd7dd627a3cf89d17ae8e36292dca26faa676dc7dde3a7b4d2aa55588db6fc006ac2574821d07c356e21038a4c69acff6501a72e569e9fc5ab4730cf015875903e1941d2fd884e26ca3e22f2e19262dea3889e7b527da34f118e3334fcd9c00de89c02fd3a30950473d820d7268541336045a6b33a4956a820b3722a343b1c7b262b11bb80e45e2dc7f362ed00bc8fe9f05711b80bd6a782e80f663344b89d2b3044a24f23d06c3abf02538a4c69acff6501a72e569e9fc5ab4730cf015875903e1941d2fd884e26ca3e22f2e19262dea3889e7b527da34f118e3334fcd9c00de89c02fd3a30950473d822e2e6b755576a27d644f8bab0e9a8f2f602e884b3d2e83a4b47c897cb45aa8d036bfcb9a3af8e619b9395d7f19f2f47ac7ca2119056a8464a55a171ef3b5b56203a3cb30d827dff092d5d3f5f5cb12d8fe9371e99111eea58fd8eb67cefd4aa22b3f2feeaff5e9c853dd26cd55c72e5ec8080d585c0d6a6cfe1a71bed0a236b500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001361c448f7ee1d45f605cf0f21f363e73000a908ae26b77c3fe16e9f5f918c59d0611920d47f26e4736f4ebe1dc3292f1aa8aca5c40b9a4b9f80617941e8b19163a408c0a4ca174f5882b1df0d7f896b9a61000a33e141eaf42e12983ff8013d30fe89210c75098cf37c6febafa31f11c979ff9b71276b0fdb7221d81a8845987250508d90cda637a8d9be2a6f535843832b7169d78283e79c54f19f2d7fd53aa2e41609c93c1a22056e1d69233b664b70b4d34bf7f580bd1e2f4d980e76a311d15778af37abfdbfd68e86ab730a8a70c94703355cc0d385b1fc7f19ed75700cf2fe6c15ff2f828bdc1915b0f5c8e66220d1af1e3782c37a3a696d36c0140469d2d4fc887753024a68ff99bb5133b167d2048a835aacee7a4114a0355260cdde6202eff54e77c63f56d6905933d73f0cba1ee5409a713e36d040db574d60d52d1148da9ede12ec609ee540da6284be2a5a17dad3223e1426f8796b0a35f5bb291352961739a387ca456a9b27645fefca1537d403378c9641a7d0bed83ef6ab18503e2e4f9cc8fead18d7a9d27f2f51d939eb4dc0b1b3090393a0ba8ef58a21f73008e0dd695c64bdff5c824c74c581a8ed1ba5713902ebe2acc0484cc60caf0a93d635513b5e3a0c800676b0204875fbbcebb777a15205050901f507a2fd1b55708b1a0fb95bfbca0caa08fa08e1014aeed630479180dbe5e07c0050e51cc8f6e13a72558138cb4cc4a20f9b6e6b386d2a506bd5f727075b52d1a546ad1aa08ce1c62874839a58835f8e8289a796db021a783e66d074b7929451a17d6ecd63684061eff0276eb8707e194b5cfe5b611ed734849d8c4866890fdf53bc4c03d1a690f535e11f50b6eded5be9b16982d9742f92e5d1e413f1051dfe5b44378ec772832f6602609ac4055c2e03cfa00bf7bdddd7982ae7e14587e0cd9278e20ae1365037112c7f58b6aa79a6ab4bc1e72bda2c8e91139307452f2549170624b0917261bae1c0992baf6755b3c639bda232b3c6cf1d03154ae2db55007607aea299afc230252a33cf670499f27a808a9bbf4cf5a5b5ce424649d4399b939ee67864d323378ebd642ff9526013d50433a96fb6c9427c0b02b506c9f357161b5096afcca2ec0b3bc97df38096242b53b3eb3cb4b5909906e0c7e13b916b420a78c305fba096fbe634bfbb35052e91a5329a794573e32823e3436fb2e01b3ad28ec0e905316355d864036704ce833f2bf2aa277b8ff9c0e28780f3c7dbf2cc4a4ab6729122cb6f19ce78f2f4c54d4dd7238e6811fec41083ae47620eda7b930fb6e412c3c2c6012e473b9b47b7abcf0f516cc718d0b7f11d4c54fe8e80081a54314d2d49e3fb80337b719c915c7b08a71a2b115102449882039677398425730976b6c0e2d3b5b9aaf22eee860f3b75cffd8817b8aa2735f56f8e317e1ae7cb954573b338334dc51cad0123937d6ed41389783f8a47ec784240e4380cc555e4044259150312e5d9a3f80f1d129fb20f2285a6eca31c37294a94d922eaf6d0d7fb212e2da8c0247834b58bb9f06632ccc69e1efcbfdb0c8a01d5cc5e488523ad27d086c3eb039a9d0348ffd1705d1bb396c7df8a5ae94b316d820b43678bdb41157762e7b101da88cb51d6301fececeb42530660ba61c5370d86ba293b1f6da4d27d2b77c0403cdf777b1eb52b3888bb3efcd3eb7538b47d9d02416e6984ecaa9a15b3056e43dea0d342c00344e99762e59d02af22d5849e79f1adc31b77aecbb481049458124deed3268506c69bcace4285eb94af7b397c10960f1e3b5854103d013849788316f96d21e758abf19432e82bce8a6aeafce049a1e86a16f5858ed698182395f1e15ed1686013c1efd10cb357a3eea499b49395b27585cb3227e66c348edeaa9308c9d52d06dd584ab4913c6c823b0e1eecac75bb78d6a6c8c1616adfa80b2cf1fcfd46d803f7f6df40f6de5d424521ec48451dfda9e19192066c33104915c55018814c6eced74f1dcf15389b9faa911808f71591d3a483dc09a0ed9e24b5e952c682bf0267c8afd26952eecc6c98db26cd65300efe6e37c10c7d94100a12641027d02f60896b5a61618742144e81a8afc90714959e5e3bc0d5d8a2ba40c87510bc743c760ac6002eebb003908b7982cc9d118fa44db4cb08d11ea46a6edb1bd1e9ca129f6a653a7ff63790cdaf7536b95acdf19b42e416816debef4d04c007418fc96547db88d56b8a5e40e792121c5b47502dc34903c63468d726df39fe4fb1dcb6a7e37beb060963ff69ec240c9dbacbf88d2179940f941cc64926ad0c37622349581c8414f9f69c009613dbf362475871029f1b3b8225760cc5a952f3c8b14f9147716b971e2ef3fd119cb43f14a1b307a22636452a716a395021613d14c2b06eb88e9468e1d10c02ee634bc0eb607161ed9a5e8a67482899beae9ec2eb528dd6653719f396eac3f1580f853b67265abc9afe7a8a427d804b81d6e63167b172299ac8e60c69153c0ea7f07ac498dbc9acf4c21a454f3c12878cf919ce9860c52ffa1381c1f295d3b6b84d9a2903b9587257b6a6449746c9005cc27ef706433ad005ec7e3e0d6a2c4947b265d6fc48cbf73809ee8afa72c9d2b20d8108f9d1dcb6a7e37beb060963ff69ec240c9dbacbf88d2179940f941cc64926ad0c37622349581c8414f9f69c009613dbf362475871029f1b3b8225760cc5a952f3c8b14f9147716b971e2ef3fd119cb43f14a1b307a22636452a716a395021613d14c2b06eb88e9468e1d10c02ee634bc0eb607161ed9a5e8a67482899beae9ec2eb528dd6653719f396eac3f1580f853b67265abc9afe7a8a427d804b81d6e63167b172299ac8e60c69153c0ea7f07ac498dbc9acf4c21a454f3c12878cf919ce9860c52ffa1381c1f295d3b6b84d9a2903b9587257b6a6449746c9005cc27ef706433ad005ec7e3e0d6a2c4947b265d6fc48cbf73809ee8afa72c9d2b20d8108f9d28a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e870b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa126c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b0656a0cf4c32a485099d4b8e3389c827090d82d1172db3667feac40730816f133ecad465c6944b325598776b427052e58c94c13e930403f45b0a408f56709bd724287a8653234caea67c56793cdbaaa0456cdf7b43e6c05ddaa6c0253a47d6d505cf217419e4f71e44fd795ce3ce932c1a1bc93cb728baa1d0df0aa69bab50142df7a41daa41939712174d67499152bc832f079a0136eead02e44982e442929e040a5288c7f4cfcfd8259e43e9af00a99f1296f2d19b0da9d22eea413fc016fb3929f857ce3021a1ec2c9bc89b76c6e5277ec01edd2f637abfe35990685ae18e1b00dc3610a9bbfbfcadcd305379400e30def6fd40025399a6ac1292daa557402e4c4d322add4454a75e3e1e6faf60dac34f7356ab65d2ef20e7ba2e956941db0e1a7ede4b179257211a6cada714a7beaad368ffd2818c744f6356144d0c89eb3929f857ce3021a1ec2c9bc89b76c6e5277ec01edd2f637abfe35990685ae18e1b00dc3610a9bbfbfcadcd305379400e30def6fd40025399a6ac1292daa5574021100de44a90c742e7239c06a9ea36ec9ec3477fa9a1765acc534ee4953fa74e050f3816577d1dfdfc2f1335a8d2086b31c2b7113b5c78176d8e7206458c2e9d33c712de6dace1a342255ed1feadcc51b04401ff72de0eeda55ba84253c2ac583779a8514727f35500631363ca088e12b5e440a11c5196df6f7b1d3f0dfb347d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001140c5a7692c13bf29fccd79fc7b59c241d9b36c2138c8451721e79d56ee3dff93ab3c6a304539caf8174716d91fd0748ecd1c02867a2a9bc51c1ce339c402e0f1501629162ca64dee0f707aaa90c7d5630aad867eb70aebec0df2a9e8ddafcd338b22df9786325aad82e7706fae9df40ea43092bca22f78ee771bf95ac3be33c25f521f30eb5199257632af18058066eba6082f631bd65426a04f3b41cdbae831c38e8dc2e0bf6d8d7009571c756ebc05ab11e0c052f39e2471296d791ba9b791b1a3483515a690a9322491cedc5b8ca58505d85ac2eb2808d23919586d52c0a3675729934e077328c1c9224e5b8f99e0784d8360e1c7be45f78bdff68a0fd8a3ef233635e87dcac82ba936d53be6b9c25a0354ab9efbf996a9e31cf6796a4df1e99339dec81a5cf32006c696165f2f4fdffed4e31e608892dc7eec12b057c7524d8c73f137cf21e26e922f5445367962e2e7d9edf3a9d99dfc99732844f06b930403ff170f8453b93209f7212e30e64bdecf1f13a90827f8af5271a803f9a5417b2883cf87686ba01aa44b95631e5814ab0a6ab9ffcbdc888d1f88d166178440a7606c3266196b06f6bcd6ca8d7426ccd0da5cadf02eb5cbb8b2f63c7bb5ad811e4315bf57734cd08d875e9d166dadb8b98f5c714d29f1d7b659d4171d25e041b0d11e7260ac976f1eab0194dbd2862933e2d75d331545584286b4d5d606f010963d8cba260134c0c873ed541ad2f9ba37daf7c67838a3baee19647679d34600c48b3cb341b205699727da85b9a6129e38b746802999a390a83c4ee15498d2a251e4c427a5152a0114236c44f600f8a7c07a91f2e1fcdeee3d1606a8dabb0c80f49ac0c3bd3a2429093997492dcd565dc5ec93132dd4a5acb7d6670678e397b24e63f99330d2cb016186b40067d8d254a2b6d4996634022db437e13c224f55220f21650aa5baa46a61de66652adb1f204b520344cd991715763b3cae77d2bb81e94e1525b3b070973a066bbca258fab3e293b13ac0480c935ec5f9cfec9c2050e84f1e6dfc9fe5fcb4b97e73380a9defda1328e41b72cae7b232ca9c876eb11126580bb604c6c0fb0313e8183042fbe1d97413705c6d8214de25979fbbcf04f3f1f873ce2e8d95b7ad6769d85030c70a8892dbf02c040e85cd3583ffa3e48872aeb5ca5afb2895dd83e3c55333e671d9c27b9110d3797041767ebc21dfebe481cdb853465888cea5cac08957ddb880c7ce23ba26ff78a325ed0138d492b5b553b2aaab104f6a221fba503b915c766c85a59a8cdbc20fb5e6a38390ba511bdea0c1ae22b9ef6aea0b81855ee84aefcdf54724253e1949c5da3590718fb92601913c3a6cb190ffa51dadc8b2c77bbd9df2257045332aa63ffc4d517764e34a08f1da5d98c792e3bb6f562b751fe604f1226528e9a150fc23e03867dcaf7e88dac26bb9fd357878b46601a75f300b9b22088a3993b35d8446b99bdc2fc5439ff873e0aaa508874894f35d98e97daf4c4ff27bb59efc2bdf0c992d417ee02becd6007887ea83f631f68cc1ffc026db83015a119266db552e323667f7d84f631f28927276fc450288daccb3c57c6b6291e9682470bc3bddd8907da1b617ce13928452ef0466440c54d709d37091e8a0e5b618d8ed232433aaa2f235ba755c5a3433c1a5a3f384d050ec2d0ec514e8ec8d612550130f14d79116b27204f374a77be090de4a7370b5abe0b2678f3b109a6b29f888ee2469b55c80749a23fb2bb24b81f1a24d5eec5523baa3d4ac4aab7f267d029c4e92016191eecc8bf936fcc0574912d82cede978c24bd540f0cb28d0bccfde338849465b6fc0d3b8ee6f21821eee82547d26e911eccc7af03e9470955b4e5a9708959ac27f0fe1f9d003cab56f7df25c229a6d54b464d8e9a3f18ba29cfe000b98eff019d2675c348a01d5376763d356bcd72f389fa174f007bf72f04331d264019762cc6c52d3f6db1f76c29bef932f2c78c5af6f059b467f597f5ac87cf74e95c0d7926402a3d88874168940f26375ff5a13695e9721d8353d7e34a67bbdd3eac99ef5311a7a8fe08ed57130ca527b5d62c5d8a56312e6528e621f40fbb5470a93fc5a1f574c44ed0035e02a21837c835ff75991b61091898106cb0bbc56f8cd4fcd5c1b35305ab78773bd55dd02b872fe0d0a5ea9243aad32f68db51897ed60756f633d76b612f87ede72d661c3d67eba4b7ca818a4b1e96943c4715814ecd7e0aab01cd8b72c0ad116ba1d2f430b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b913383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d0c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d4019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d12407dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea51382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b030b3f71e7257dbc15d48d1a1dd9b655b6e8ac51b3643da16287432b78486c4700f4c08e18da8243ea2b72e5e22649aa4b3bbd3e0d3091f0570b8fe357b793b913383d3983bb74ac6d26c18295408fac8c1e20e93f36c571bfebd6ace96a1d62d0c7c2c67c448b5392d93e7d6abf7053760648a6815e0a1ff9a6fc61e695e29d4019321f92a9475e21c1c78cea42ce5eb404fe4f39be9cf1d94fe5254f1292edd3e6cde06d56b8a1de3e387315bd31a14e1f6b4086d6329fe042ede980ed6d12407dfa9ddd4e64d6a8c8e5c0934e07d98418f78c20b910b93e8f79ba8b5cdea51382056222b19b2957371a3f6cb1f8267e0b72039fdbbed87b03595444a3215b0274d3dc3a846fc8924f1055fbf4f5ad5848b4b6ec07c76e6079ee428f532d63220e6a6375b0b5eaeeb6fc87a8cbfa390fbf15474932bbe08a8d6ecbb879cb51f0ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b22e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d570355318fbeb9546267d1f91a3b3aeb3c6b8d2038fde5d8e6452f982d32f801e116745b5d9e2068629c6da06d336b8c7be2eb1b5e5cbb7bf0f3471505361db6e23ee76432f734ab6194b820d904eabace6031ffb363742763636375f186c8d2f320aa44ae8036c90e4adb768a40f346f55d29f398859575e48ebb1e27132ea3b91bc54654878e6a646bc1f8fd173f8bc473d96b6016316261019188f962c1f5c3188163288502819c09079b78ed45bf89f2306d58620b24af0eb015eadf5bd204325070870b4bde3308fad4bfc1eff65078b1bbafb37dd85cc858b01bdd9029d1020ac843606ae0225615f79f691b254b7ed95e72082b9863ebe401d3929cfc2b08b450a13aed8c83b4cf8ec0e066f511cccc6dd97fb7acd520417cdd13b1b4953c3775e7e21a5079429e7383592d2e39601451340e2f7ce5de4f4d4581ac1d8d325070870b4bde3308fad4bfc1eff65078b1bbafb37dd85cc858b01bdd9029d1020ac843606ae0225615f79f691b254b7ed95e72082b9863ebe401d3929cfc2b0fd5252d6c0946fc90fd8f343f19871fff59652da3eda531b3edea469962bd6a127482c9b4815bb6bb68e678dd88650ad1f40e2fbec26dd5f6086dec509c6bf207028617c9b38b5df3e64ff4355aa739424fc96d40abf61ce88abe474c4d0d183510aeccb3b0d41a5cbfbf4055edbca9dd75e5877ca571c1f9e2471e06c7d507000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011ab29e3d3d1d83eb85a0adee37327561774f53c5b80b2c4dd4617166060c8c051df6100841e4c45981deb94ba04cc531cd1ddd3e3fd0d81e36bddb4ce0f13bf320d177e59c10ca9a48209c1416cc95b9c4f21b7d6c5fb1d12193a20527e9c1e609b838f53772217db70211af5967df18bc04984d4cb65f43b231c88553f74a5d38e5205119abde37052eced7dcbc5920e50c544ecbb81c7b67270a27566b5e28296800697b1b80e4d2805f42a976c46d33afaaac761fb40c0fd4087481db535a35922b63fa5dbf1f1e16fb01a63d4c777bb7c6a4228d8f71d94064aa3e2b843e20aa3829a5e87fd60708b951f74d6d694d70faeeeeacc846641419cbeacb759a3ae937819d5fc526e9ada277bf13363fe1606f9ceddbd7c246740d8570444a4e24f5836bc6096938c560454278d70cb4400980e883aaec29f755103f984cfb231c8d8dd319d52b49bb42a071dcd4a70f8b37282798d3d504ff8a6c0558078f1313f2a474cc64d0842670065d60249e348f9daca7794090883a6f95fb904dfc6b0207d3a038713e6894ac189ce861f5580feeae085dea84cc3c4b22af8d58fb910c7459144ae1fa20828f9f7a46a7a1be1e816ae90169f5d40b73c0b565d128b62332555e2cf2bb06cdc786a4672c69a1ad62ce9d3a10f962b068e8324f6f0b6e3d9814f773fea6e4766a7efcbcd81f8aee9ce2f14ec66288c3125786fe3f78860c7e3a0a9ba31f819f44ca2ec4f480b41e76001e05edfa78379152e092c003150544269702f1da11e57e852f79ab0f5a5b1f4f0a87662d971e13a08ab2986eba0c7e044c60980496d5c3b7280993cbc1ffe11fd974e4125f942b96f3d53b355d243238aed1ddc8f3ae757ebef38740f2e96b9c85102d152a3dccfa9006a960b40ce6363b55660a713891a3872ab0e439a05d8d07adcf35cb1e85f8070e15589407661407b4dfa865343994adb88831cfc0f8bcbae8af15158291c760be3b23d62cc82b6feb068fd212c4e5dcdf1c47555942d55c4af61b1dabd8237eca0a40b42bb677810688364c9a7fd3f4e7a47b1979d037ef52413d891d73d0413dc1fc9c2175a12bc91f3e8c15cacdb62e63783f053703626bb5d6ef6b4af021ccd27e4c03dfcf1dfe3e965e2ca0818423f90fcf4af4e5690dccaa9c48c9ad0b8ebf017c015db0d6e0141dfe706ee6cf24cbcbdae8bcbe6bc2c39dd0a02c4417713360c3284c28485b94f5555da407d50c2bca6ddf0388076055242ca949471dfe8999c40d4ea350fafcc19a024a7e6662109d34eac2ebef9ce8cdeb07383d3a990cf1f039c44bb43b67276d31bb6035b6db1af88b43bedc81d6c627a1b46fa4a531209a0497a8b88cf6eb7ae7ac51ebf13659b0d30144ac429c6449de9cf724593a3af21ddcb3a8767561d8bda4de7d7251e5f141c1409002ba5342f1379cd54001eed31f27e9fc4e11b57ecf337d6e7fd3b682604537bca8efd8f790b8c80e384cd8cc337f6c304e8bc704baf8a0c2a9f918b831f1afc88502745bd463c64c16637a32307330ae6c85228b7a36c0dc08bd288d98e89f9ba60450cb305217b63c42f85025eafc0b739576db7f8e55e9b0fb73edf732eaafd56af332957e02deb182a3fe28767c1115b977786e54490ff5f503322dda4f660723315801d4f710b7728c5701ce421f04623148c2982659165bcd02cea41180852187d785194ad0db712bb80efa89237dee0eb2e192baa1a7eeb902b5fb9896886a8d60a8e610534c4dd5650548317d607974fed87161aac3b581e1e8e3796dbf530a30909b7d11f44e59b7221442a3c2cd38f82e0293b632e40a3deec9a8029032502f836c42798ff529200eaccf882f8577b60c2fc89c93c24502b04feb17fe302ada06e07fa460df67b32244f4cdfc67e0bd7bd354be4b14857883983f5782cc41be815e4ac445a3b0e834515fbde3af28e7075ae7c722afea6475dd822009a2ee79a75874e229537fbd3a260fe7e443a27d8c96f5b37e9249ea6faa0b343453c99585ec6ed8cfb008b6320548874a777e66ce5060784af49cc49db4eba87a7e6e2c679da063523e36cd05055dbba90fdc786fe383af7f7f6f2581aeae4992c33bd28bf0979865d445640d26593904a3646f44d6b937fc7c6f5e03b4abdbc8df1fd44a535184e1f09f0e041092a13c1176341252430183fb11ffe66abd93575a942ad0327e4c32dfb606105a4ed9ca063972aea7cf76e73a2199d2514481faf92aa9608285113023d5343e8a50a7af3b74aced7eeba731946e35ef6fc91677fbbdcd3649ce4ae29070ec0175af5850c48b5312811458ce6b91ca32d6cfe591513b4e62e362a21d6f8f1538b393466c294760a37a9a43f7e6270d2414898032b6d093aabc43c26cd23498074c6cb993d6b89f5c8565bc0819d8f2fe320f7bd6962887ee70ed2a932dcb691b81e0601cce64e331650353d77ec3412b4c4b90d85e2e73f0f88f18201b06f4247e1f9fe3319b1cce9afcac28813cbef6fa4d6b30eecaa7a834a1d4dfe4f90d098961e09007f86ff6f910a33579d04593f047dc273cf60c8280699ea08722c236769e1f6ff807900906ef5cca862fba8e56511fe210030f16acc74e5f78dd3f3e8a50a7af3b74aced7eeba731946e35ef6fc91677fbbdcd3649ce4ae29070ec0175af5850c48b5312811458ce6b91ca32d6cfe591513b4e62e362a21d6f8f1538b393466c294760a37a9a43f7e6270d2414898032b6d093aabc43c26cd23498074c6cb993d6b89f5c8565bc0819d8f2fe320f7bd6962887ee70ed2a932dcb691b81e0601cce64e331650353d77ec3412b4c4b90d85e2e73f0f88f18201b06f4247e1f9fe3319b1cce9afcac28813cbef6fa4d6b30eecaa7a834a1d4dfe4f90d098961e09007f86ff6f910a33579d04593f047dc273cf60c8280699ea08722c236769e1f6ff807900906ef5cca862fba8e56511fe210030f16acc74e5f78dd3f2a541dc9aede8050ad6648812a33cfccec8163996bbfab69265fbcf2ef361c4e077596ab5d4f14c7435038a9742be3e6b737f77900011bd2975eecabf38cafdd305d9e4e7bb0cfb3b7ab6f2a16664d9d00ffe6e15a8f452fe648d4b20ee2b0793ccafc6418112053d1c539dc198ca765b3a8d0cc38d47492143067a7a046f720082c04067244a0b5097d8b2535880d4cabeea64b093c8e2fbe2f9efa66a6c0b331badafdbd1585cbb98145ff82a67b2f4b94bd1185102716f6439295fc619aea04876f1607ec1f21a67e209f6284fe4c7ccd257f0cb85ebbb023cd3dfa9833341c6ee9a4ea8a1de768f02ab03dcb07adc00e8df3875dda40e7b43f757aa22b9d040e9a8bcd91fc37df3499f205924265fc241caf3d6bbfeefcecac04c976ac69267ceff7a04b06a8d83d580e8df1512faded984c128ca45819e749ca9567c1af25abe23651217faf5299b77ed5cc30333e56dba19fe08bf95918c03550c9e3b4088a6954a2b0eb38bcafc7568bd41c195159aec6025222744eec5f8f4c735024254e43e7d570affb9aee4854bf65e296570be77d4c4b019e25b1d03501e7333c3bbf6cf08a9fcae4eaea8d7a724774b3d9ac69b2d9c461d286cb0d866c2c590625abe23651217faf5299b77ed5cc30333e56dba19fe08bf95918c03550c9e3b4088a6954a2b0eb38bcafc7568bd41c195159aec6025222744eec5f8f4c735024270c074a19e0d608eef484c90c5a438d6a5dcac528ed52d17fbd08e48f2b9b44310fd23d32afa05224d6ff3cbc157be23a55630fd82183a3b2eeb340680c7a670ec31754be27918b72935054df458667c3b4568ff57c4ffaa9a1c031b2ac570a033fa136bdc30b50643704d5a158c18393f508a98745498a0b22cba9a7941a3c0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000135c88351452e25d6ece38c940f0f91b21bf719f781b6af2b9efaefe0923050742b361203b6c88ed965a1e9ca25a491a063a4ffa7d70a2b25ab5fbb6bfa6382f21b9a93c702f355b18dacace4fb882661d433beea9a3c99d117c977f370f348c02e412c8e5d5d346182e552eba7d750b5699becff24ac9987b7e2ea9c0c5270d40e031608ce4dc3f38320d96236577781cafa47daa0c6594749294a14d8132cd22412b8b9b3ce468b13e348fffc7ff5406c282e71d32f93a53c34b897274bf1dc13180cab478d94470db55e812d1b9285233898d1dd7f1f3de25190a5ff97798701f0943014fa296f1974bb55f0c5c09f8a5dbfe3d071bb5d7e505285bc440107024f677d7a3c8217988accf35e0887ffb85b1be6bdb1600db08f6b6a99ea148604ee5a4273bf7c3c53c0fee996792737c7cbbc07137549ce8cc56e8b3da06ae93f6c6769e946f256b71b923578c930734900559dfab96bab969d67acdef09d32395f6cea4489b9bb9ae52bf70e98fb86a57f507276182971a5c0956359360ce623bced039d4955259e068a8e8e9bf608d7722533e3776b648f35af33f25b81a43beb07f902b820ede4c94a5312909394b8018f11f8b8591f803fd775bddb83450a80d621f6d63ef0fb9f65fa2410f1e4c31d71f55098642f0578359ce336a37d3bb00afbd8a2e7469bee8f055e55d1338157e81ff8fe7fded3cc07386b74c20112352dd4f524609fb1093aef958ac3464070bd30e9acddd399b3407c01404d47174d21f3c812f3743f3ec0bf89b53820b16d0019f077802a2fb9dd37b588ebac212890683e663987c92d2cba3a7b4dcc06ff09f25c76895ade4d84fa27a5636815d82c213060c812cb31b5b589c5ce981d043bb1066f8dbca124e028f9094b321530252c0dd58f3ad480808b30e4fd3022f381b86e2eb1caa4b97a9bc808392c162b162067444abdf82a0d078473c364f2611b8b5b484a115b24fffb4ca34639347f2bb09a5b9eb682aecd3c79891d968113c875ab2b035088e166122647ae7e335761944434dc407695b3bff43710be6a689b3d9b4336bc825cd83bc7548b9834eb4a46d679ab0149ac2303b3d3e3a1f1852fa02f2f74800bdbcd2834d376fc0fa0251177315fbe203708a4eddd4fb8dc9bf733cb9471ec4753bdeac0ebfea20ac86ff871d0cdf3a6e8e1534f277212f50fcbe6726f3f8b55c5f214765f1bdc0ef5a4cacefa93a294067ddb41bbed2a55225ae659f41b02f3a05bffd5b8a37802a87660e6f845472a21bf927ce9eb9c1e730659222f2389515b26a670c68c72188b9b30ec0a5e0eaa1714ae355312e9455b03f20e52b48518779e39131f987b052735e8e28ddc32a775463484e080b750e3aacf3d65fc7edcc25c610fd1ad9d0a25a244140848624ba58233c0d93231479441fdcac6d066570f0d015cad1075054fb2bec102478858fbc73e88836f5440a37464023cfbe2d6bb7486c89f45cb1cc1b13ed6519f8541e85b5effbccaa539e4f39d3d996d221861abb0709bcade3cf02dc67faa6ae089ad6cb06ca53cbafaece3242c322bc801743adcdc47fb4c10adc635486d136ebb6b9870237c8977fa4834155c6055c4bf95f94aa3261d023a8d3737c1a13117a1a4776cd03cd8ea97f9c068f631225ecc9374913b05df6d00c96e23b98be91c6a93a2b3907892dc136b865e57988fe33977af4b747dc85b17645bfa5bf93b4a04229d193d29897c5ab16f94c309a8e0e2a3e9f4313a229e1e5482251fc3f6a5d68a49c57bd1854eaff585d8df47f1d9121a55085fb0ab0a0aa1b0167c35a2215a63acb83110860ae0b03f5c81e9926eab6af89c7df6bb9b1456b2ab6a8abaad6d0fe410b2d79e8d26ad17963a7f27e878ce6510978ecb8a395eba04441ab26fb2decf60aba67ed26fb0b927a3faeb4e138fc8063d9add15393bbf83f8d2bdc54a7b2ee3aebc0f5f2d52348bfeb0470e0a5589c0987b135809e442b9b2e2f4248bb65426aa4e25c34abf20bd76ebc7557ed6c6c5a537fdab3e253e778cb9ff4e08f26deeda9837e72026ce9222c081786d5f5218ba5dd4f81ea140c608cf9d5640a274b060d5529c904c66814288691462f27d672cd81b2b08ae113f9f85af01b66f4b88bb2c6a18a80483738ff6541369ad6f52e640d27a203eda3145a4a6f6f36ea0dd02e1bdd34f77d24a2f8a7a2cff9eb072ebf5af2f3be95357ade555934d843bd702df78e792f8836ab23c62520101d411e2b8ba71392fe0c521b0d3013cae90a1574708afd01f83082845c7177f28a9c547495b2606d01f3ade4f2cfec3516f5ea8b8f750522715f3e10732041a048727b8b6a4db1def63d9a8741f062f68d326b4632b6e87832b38a428ff0717168d26646ec7ba22109c26578be0f9d0972cd94b9cd4919ac36dc36523fa148216a3c69b91384715acf3404a449b1eed0c1fc185efd9286102a623223308ec41165fe5f629e6a02a530cbfb5bb64e112f3e03e7a1026d7c143f2d8e719f02f5816d10709d619612c60c0417357079aa13c9ec79daf3dc9c2c6a5b3a1b23381ac42ae90ced1811f139f3fbe8ca8f8655ec361386250c2365f7ff348679ac599ecea825c312e7ee2392fe0c521b0d3013cae90a1574708afd01f83082845c7177f28a9c547495b2606d01f3ade4f2cfec3516f5ea8b8f750522715f3e10732041a048727b8b6a4db1def63d9a8741f062f68d326b4632b6e87832b38a428ff0717168d26646ec7ba22109c26578be0f9d0972cd94b9cd4919ac36dc36523fa148216a3c69b91384715acf3404a449b1eed0c1fc185efd9286102a623223308ec41165fe5f629e6a02a530cbfb5bb64e112f3e03e7a1026d7c143f2d8e719f02f5816d10709d619612c60c0417357079aa13c9ec79daf3dc9c2c6a5b3a1b23381ac42ae90ced1811f139f3fbe8ca8f8655ec361386250c2365f7ff348679ac599ecea825c312e7ee231db538e220d9050deb695a20721092fd516be72dcbf54583fa16ac019dccee5387802b35ef46d465536c7a5125bfe9b85eeefae2986b2a5c1676fce05f4e00025d748e65cffce8e1cf09924474a2e4fe7a8905061b1795b5a6792092ffcf4f90cf4744978dfa55935648e4fcab96ebd33e91eef20a37884bc15fd66c82c3f0324a70a2f54232261e930d8e266dac5ed0364fae58746633ea1321cffa6afd2e01f5d7cb6ff8ff6bfae7b1d8a38d3c4e4bf7b1b9bbe389d3a746532311f7fa2173c53e30c8f90f0365d804528cfd3d5eead638cee8784c9366a3d01a881ecc2540576df83b77261476d44c4a74cf9bbfb393e946479ff1e36c8bd9bbd40e6bdd2059ed546283abacab0be9d75c8bc266a495db0e592be93d634c2ca71415f0b7c283ced1e861f661296b0c445c9f4b7695b12e37504bdf7568c4fb1feb6910f5c2b2291c5d8af8f90e40fe2747b6503339cf6df65d26ddd0eea83b17cc572964b2e0513c28b2d48818c8ebb05d0d4649e33c5f8f1c6987aaef1cf6f7339e16bf3284d638b80f2a1210458d139b194c88087cde334d429248398516510b6263c253a938903282bed607564aa0b22ea92a78ab5235ac86fc70cb4dcf4a531dee1002b2291c5d8af8f90e40fe2747b6503339cf6df65d26ddd0eea83b17cc572964b2e0513c28b2d48818c8ebb05d0d4649e33c5f8f1c6987aaef1cf6f7339e16bf33ee534c74a7da73f32e714c882265fb514f5ba5260d5d2075c7f3679ff101f29002ea89c121a830a800326dcf8093aa2234edcd8776972ad89b03dccb005efab115b03fb0d13632efd1ec53a5bc161bbd0fbccde6fefdf08961a3b1cf1059fc731bd604ea337e03c4d776cd7be1cc36d07e247d1a4816d09cc7f576d843fe403000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010c5dd275295a380cbf61a6cb19daea54a210848aeab0b5a88e2f2e2fd023e6b626c1e5aeea2363f56863e2c671a8d8ab9d6ca55346562056218992f7b7e50c6b3b4d4e9685b1f5b28867379aa7d509579a87c788e4ac37959fa3c80bb70774700b3d08f6bb0ab4c986247ee6818a72bf22df05809585958a9c2720936e93fcb93790c2816c1d27d4cfba63dfb3ddfd005d0727df8112b92b7953580e4bea0dea2909f7707e387dca2c453c167d9ab5e98757de40f68661f63d98002e6763b4f738fffb46b08bfea9ff3f1809764137cbb28b10a17f63ce3ef972ba3f1cc1179032892e358dead99bdedcd78b7c5cb03d28636f4f2237f22811249281e7b9e2122cd568e02726cf8bd158e2b5b56cf510be3d04de916b5db18ff09347a9dc9dcb23e4e6fb273254cdde13e680429d0c0f9c1bc137939b8ecde29a5eda1cf0f371326abf66b1befe3e0b48419e59d32c9d44224be4ada3e1327b52c0e6f49a929b29e6410c9b63bd8dc3fe0109dba8191f78f970222b910eb6d30ec5492fb68cf2317aa7280bb52f1b3c3391f26512c613afed003ba91194bbc1402cc16e0ecb7e147d4f095bd53f082c93a11bf71355d6f1943e6f8ae5550ec0e4303938515a3835238f4ce26749ccc160aeecc0d9708be3b7f97c39cfb877542f7da5c7998cb62acf1a23ec3c887047190ff520ef1bff63234f12b8f82f32a0f6c19dd37c21a904e9c14a161ce1be3cb5e53954d2c1c859037073e26cd0038b7f8eee5a10da133970bf4f99af78a122f80dab28c18d349837d111414a1b364ffdaaa4a86a2a19032c242e6df093962c7163067acd24e9f93fc999840bcc336972007956b4b982343ec188dff9848fa549be8a13eb4c39badef74630ac7f8d0e256cd8fe9151e31451ffb76b824812a937b7d1bec4facd6d5ea0666215220870044dac6f435c423e6e1805f99ebde39fa4f9db3e458482705749dfae66cc9584b019261ddf99b43a26b20a58ca051f7b0467adfe4ed7d88e199699d2d1f73370bca5f65fa91c15198655a913d62b3fa1611221975b81f3ff62f846cab696632acd9dea989bcc76248121a20ea93bca7ef92374f59e0f8e52473dca6b224aa8d05ff8efe63fb8f230ff81087a76fe685c93b14cd8a39c53b69846d83523363a3e4c8d220fe6976f2cb50a179aab31de6796dec08d8e4e55587ed6c5d9d7a73b00dc26e689d852703c5e8db029f8f1623d3e8db3edb19d13075da29b75e92549869f3e560033d8f71ee5c7d59a8e467b6fa5a339df0032df893d81ed3433c6d563ccd5cd7c20f4d73c48dfdc51cee2e325a21ffaf79c2324ec53c24b7b4671a8ddb35df23338f3bd012cb1c092d14141e8c8169b4207b3f849bd3a4e33be0b3097c8d0493596f2f516486e6569503e8803fa9227f768411e18dbcfba0e67a7a1c7614136bad15888330d920bdc8a9b9b7c20558b5e0e42af0298a1214752cc6246a4ed5c9c7449772df1c1f37efc98590bf15e7c418cfd2c7420c08817fc074896a83d701c9ada92032453e3d6ce223ef52e6f1212e9fe865417949f6fd6f87ee1e038df8ab1b067242159d968bf357ac1253b6b6f1e7d29744dfb8e7563e93df31ecb2fc2c0a8760feb1a6d19555152e140e851c8a6b1460ac56235023324fc101094ee519cde9005326938cdfa6eb8a128db967edb6c74da06103fe81d9eb42b9539b7899cdece01f2b935cd5bb1a5674441c4e62112b23b0bc0150cf3d4fda4c084d5525dd5ca299737a1aafda2c148b28a9e1b04de1cd46bb9a39d1089a68fe345596b19a3e8024bdad25fb9cb73c2c3f092e8c2ba97d011697b6b7e2f45e4639e3671f2d7ee3529fa5b02faa16c1ca19f760e9b87ab601ab49095219b86c20d78cdd02e6d7632100b630531193edcddf33be74e2aff631e3af1ff2f420dc0338a49e7931ea430dc20e4e7c2e809a81698efc10a87e2a62b37509a6f1522078896d474c9c91e3c78421673d4059987cf2cbec042366f819834e396d7ad5b7f3b0cf5ceac60a41f3af07aad1d7fce56bbd67315d874ceedb830e563c5d986096c0e8ad3c255d82c11ce1328a9e35ec497515bef939bb61b1d058763455206b04479e7a10a9eb0143d441e9039dd2140934ae548dcedb21baf45445dab534fcfca9652c596274b3ed71003620192f1e2754ba04563a2b236cdda01411cacb6ee9acbdff9e8c2803fc626a5ec37f54ec385346ec8821cea4579d0db2ca58d6ca8e1ddee5ab40c1909c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b09c5e5d7f6711a139110a85a0a1571eace507230e3aafa33497bfb86bd6babad363a1a28098ee5ec6eef57a5f5ea8e1553f626cb25a1fee84fb135664294545430dd7d37d0358261d55349c2326b399607923af47256e3006f6be9a1b31a5a610f2282c82fca7d9e2aacb63dcd94c66a1ab45e0796f6161b29c1474b4ce5a5a034537217110b8be92aa070cafc181fedbf075bd21fcb83af6193fd617f83c3e20bac8de8eef47416d55f8f3503e7e012633f3d29e981756c3799338b807c3c1f05a13a735539bb8dd52233f6ec789fa4320a672a79c5adfe832f2f337d92d3663a5ec58caac644722addcc091387605bf03c31d18f874b1d15fe01b9826d2c9b0461dda8d89f9244340ca170b871686ead72c0f6aeea72a59dcc85f5bf2f6861125c534548436e43bf17fe0c04c54749cf0b77aa2d2eed5e1e60a2d2e8abc05121658174cef8b7ca01d1325c91a7d18b8dc8db38e6a8a2490f75e8322349c5891292d7ad405fa37806d82528bc3fe8435a85e151b1fdf1f84a5868f532008b701712904481ea91840a767ee6fb814cc3d2571a51c249d288fff9855569f29e602dc0305b7814d160885c828f8813c73f8b14b706ab63d2e9b2a9ed101d552303318a2782ee9f07fe7791ee9af1046298eda0d2bd364b019713221215c83e29d2131511cf8891eeeb9e35101f1116fcd9ee74bb944ca0b7473a6704d45e2ce8740c5237c904e44f8c390ea5afe6d43465bfaba69ea892100bb3705ddce24ee8440ccbb6b02792ad4dce07ba2548d480a5e46e5c1bf4881bce63fc0d59ced2a6aa2bb184a615bdb14baf6be323fde7045de6d2b3dfe994d2135fbcd31b12dbe8b12110f9e4034c391bd12b4f831b670ab88ed7298059072989aa40eee8a6918de41a38a0e25867b5f1ca222c32b5e6c605e70afccc73b9e42cebeac2c51d86d2181b10d50d775cee443a0fdccb3efad072f8b540002a2019c530742524e553b4412bb184a615bdb14baf6be323fde7045de6d2b3dfe994d2135fbcd31b12dbe8b12110f9e4034c391bd12b4f831b670ab88ed7298059072989aa40eee8a6918de40a9ccbc9ecc16a1f555fca2117935cc0d720603be643101832dfd64bc5225cf62f5ad83b4caa5a9c2aacdd733971989b085fc5498fd9c89362a287375520910e3e9c297edb5164abd2511940eb41e071ae05ccdb5257c7c19268b17dca62aee3002e3b265819c2f4408e8fc9e95828ed6c9f91068825bd411c8fed7dd72800830000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000138af5d8a5c9c8237c4bf92cbc14c14327c69870db8769623a1165e7879cdffb7022bb6a96467f4a082f2ec08a72d18e4524f10920db8819ee074dd8cbb955f2637185f96f3942596f1f5f5a0af86ae2fb9fc731ef6adc74829e006378e880c88126470a120588fb32517b5a92ef7e5320af2efcd3fd90fcccf053f528da95d292da24288bbc9ac99d1fa2c8e1b16b65a4fb2e812b89b645137e8670f9ea7d0f01c35176c396dbf9cf9a37b678a590fd67c56450f5cbe7235ac39da5d7b71c1ae34e6e6d9d0f0a2b9082cd73ca1b721ca2d39158f5421100f89a24ee3194e2fc229d2d43ef9d5c87e6836b0f68f679b59164aadd7186413c247e4d81ce78ec0b011bc1793d5f3038a47ad6f9a894acdfee6f1f70ead1f9d995d74c3ec818aa3bc03004180fce8ced30ce02fe114c71dd208576a213ec72faa729cb229eeb3ddb60769a1da7fb6115d82d044ee6699988fab6f68e9bc79e2a60f111f374be60ccf05d1e6e7beee05342dd3dd7bc6585706ae26ec7ab07b06036261d7da0094e9922446dc67671da8b7acbc07bfbd58f597e17f816d1805cfb646529df281695b5539d0420b0c27fdae916e09b8d7f4e60e126e2e3af0e6f18399906421a793b38d28d93646960b635bc30ac1362a1e66af0c8c8c7df134666277c865dcbf586c140a58011db163424184c8b2d37258aaa705ddb883453d26bdfef94c913bdd51310446926984360f138201638cffd70906ede8c938685624e9b67e9dbedff3fcc70cdbe4588825732b39449fab4f2fa301c0a6522a2dad742bf00bf5d3427f4bfd30cf2df8999021bbfca195585fc3eb4d026d70c322bdddb3f05ffcbc10581d360c132600463f15a48669b0f07292dfde295215aafe804edcf8cbf67aaa0e1c541ff480fb82c3f90052f99f9981b4b3288e991e26af38b4731bc7b644ca5e33653b4dfd2dee3364179fdf3c46975c0bc2ab4723651d14e69dcce85de1259f72930d7e38952b81cf9897fb9757658cb85e91fc43717edab8027a428ce171571b40230083e608b9bce9ba49f5021f43bc48fce80ded93c64646677c99f5b5fbc7860a23a25f05b2d5d61fc25b2de5be218d7ff02e6b45ae6e0eac3504030ff7a478042f24058c21681190095fe27319e2f84d22fc58db9c0f67c99d3508c8f3a1e60bebeaaf27108d87fcc57f800f756593df91e0a2868f3dda27ea9aac8d54c0a23e629317ceb4ca358edf224fd83797d189df38c6b2ff4c87efc3003a59ce75d2354237211767fa0edb47309527dbcd2edb26792aab1977da2ac085bbc965c0be34b613970b0fc5c0e25cc8b5c504e8958be8dd278457f43c515c8d656cdf9ecc01d2654b58f1db54e974e2fef0c3d2960d5f6665036bd8e67cc94a0385c54d2302515b528e951771a94b5d0461cb662a906d747faa8c8b69e1793cfc8793de270c2257ea5a8b33ae171b5e34dc19a64611c02f24963908221ca98292f3b6c38f24a012e500f7bab589fa492979fab0155c13abd55a8d4172b291970ba8c7ae0337cedeabbf05f8e23a1bf9cb80fe70c8ea8ed5c5bb454b0068b6b5eb9180a37412ade19c54dbdac6756bddeedbfba99e6ba646a067c731e12ef11c69f06a007634723ced1541a294df2eb55f96c5ece2a50debc0734261bd53ed0901ba5dd0860c01f103a703ad1a31f2014f12a05268a4ce2eccffc5474dfe7b1346c0982bbf02afe18085b3af2a17d503a87f7e6bd98bd77bfb285b38e8b1136c13cdef636902e4745a778adc6df8c8cdf1d5439e3555ae4da79df5926a0cd3ca1d62d5131b0091485d3f5206a43775cb776b8c4c30cacc5c7377248231357f34c9a00b9d133d0656d438fabe87b6a4313e0bafef9d4448b27819251e9f5a07a4e89268c4cc33bfa06564ad7bf61b756b0721ca7846b329f43f063d401bc5eac0847a4cba011ef4dd57077ecd63716f6527f0086e86052a716de78a94b12e92fe7ceb66712320e5ad617c7e377fcc27994123a5da4298a731391da2c06de846f9f3881716dd10d603f71183b8b7c9f61a0226098f920272a3629d68a35724577c8d80af63820941ec7bba58aa6589649f9b2f438ef5fad9f80e04634e71e3cd5a688e6d8acb1230fc5c222929afe214aff5bed29f0f57835ce696877d343d3b4efbb1c0d6f13245bbfd9be9db2ef9f5d6195c413d72183a2e218bb2fd265225c2a507340b6a25b19c7cd3e4850ab4b64bf1c4e75dd7c84b37a2057a301876daac96290bfb980bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb0bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb1663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac53a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f216211fa42639b21ecaf1ed4e983217b62a6709fcf49a5422b064a6309c8e2c557662260f666d094d1a6403be2dc098fb8f586eb4ad8166745ba69d9a8268d67ce95224688bf433df1ae089e293b28e241cab5fcd9cd6a27caada7343d9684dde77a20de236c8d5a6a0e502a2e3ffe172e2714300642e4b9f8986569c7538a0b81fa33ee9d35863311447a1f0d41296828ef14e845415c2e1024c8b39e27624bf3130d97ba61a8a2316eb79f39a161619e8bcb7a52eef1358e006dba79ce51baa33c10c697823a4c4bcf76cef00e67a7c4573c7f2b17dabd0fdfacb93a9679d4e8a211bd6a4c417911b42b7f4e8354b2a758409284328da8c61546bbaa13ac0ab63936bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b93c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db17a1dd82353c650035565c7bc00d9e983b457e8c8e8400815db42975e7191dd723725bf4adbbbe02d33ba140065e3e1cdc66f45df62ec7fad6156e418389100c36bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b93c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db16e08890aa848dc2cf6ebff393973a719895979a2e346a08da82cd7f791497511f9a4131e99449698ce8ce1eaa5edf794bef39d7950170d87650c3653eec76d50bba2f36522d59ab82ede2c4985d52a8c1af4cb45768d4d34000a3c4b4678bc92de546b81283d93d323202c8cc923733cabbcbd1b161d0388443c11d1282ebd00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000119855653a92b5b37bc84430dedfee92e5fa2a1627ef010cc358ffc7ca795f8ff10f91417ebc5fa0a82c0fc211c1ffd54bfedcb8a1eacc12001db3d3dfcf6410336fcd7247b582bd4755c005b613b80ca2f8820cddcb43e242679713b9c095089132f24b896d0c5362ec7896ef900a2aba3d25adf53f77108f34a222c4498678214299ad45294b6b41dddc527a1ae46013a4622388f6d3f7fbd08cb5da0b408e8111e3f7e1b77c40285c0545eb39b341c4a7f097d9bd852d41d534ba5324d57cc066debc195b53304b7c8f3785ea52c698fab1c33036da1aadb1d57d46a57fa0b1b55c2439894e8561eecc4e7337a6c428414211cb9e391ff0d1e54a1dc8492741382fb675176bbf903e404bdded09f4a79609c13f8dd0adc9bf398380d0643c00e803f15245b8ee7e24b7a7c9b475907f23b775017e95e80844dc3591d4578e518f961d2961eace213ddef4c9fff847634c6aed28ea2b36c47e11aa8476227f61e1a563dba60b85dba030b80ae9ae90dfed627a0c3282e96dcc4f6f5795a0aea303db71302220fdc36cb981571a7a39988356de91cbd34414c176a4cbfbd0b1606547e6644a457d54b633df37048afd98c0a7b53fe4373e2fe2654b7e11f75890f4a5c550e927e552d2bdfb5ad5b579ec4d13e605ba0e8be836ec282edc0bc8c20e9dfe79ff700f343168ec6a16ab1dfcbd35a3498546dbd3834c9a0c16f318722b5bf8602797964cfe223f7f39caed228cef4a518f6375ea58a12923cea8cd12d374dc211ef11c761695eab8bc0a9a0aab656a0122a5f78e1d299ba93419f1a0d1a3a23a33ac356a53f60b4d8d4635586b2e25f81d3fe22d36ae75e7cf442be2e35b50d9687b4c7d820a14f2e63abb3597f2ad46eeef9d20d6372707e81089a184020a4fb3d8a714a4f626e3ea5bb356c6ef4c6747cb8aedb354a201f92f6e62176aab83a16b5378cbd7456d7163bdaf3976424bdb7563de4371f703e5b6e3c05a54c3ca90caaf0882824ecae0496d22fa11c473eb0fa671156a4345449255933935e3d12203a4564b3f7bd3e5188139552f235daee4ea1fdf45a81915341650b88d5843256b8f16a31985616cb634b4a614bdb510b92f6e2c2d2268695cf210ce82eabb395d8486c049a6304082636414c908c415de6ca846f31620d3fe25903aa258c4f5cf8008e3f972b21e33b538622309766d0a7dd0cef851a07dd74421a435475fb6ab1e7162ed84df5693d343dec523b4069c64b9c89cd0df7fdfa610bd0cc0e4bf690b74cccc9f4da3b379896be27c571590c67e76971b5caed42ba2bac1db6f1236abc4a0927a957c66dee1dec17d2890ebbec9617ce5b2781620303d3d397302499301ec0ff0a2f2a6171831491c3c698372840da2d0655b68ccf3cadec78445ae88b4e7beec24095bbdae8981bebc7a1b4ea4fbefe3effe7f40f02c35d2cc186cb97ee70cbab620a055322aae8a6337a853544e15a280f4a93972f17598b444349e9adba8bb649ef188d910c0e3d0b79989f0f8604fcff06ffee3220e40b6e3b8bd5b56e9d049c833f29339266b485253e9871760ec1a5c9b1522a0cf327b065fdc58065610095ec4a60fd601c623a664c5cbc801b45440faaac201a60c7a9c8790d2e4b2ead49dbe70a7267da3683781a11f5f64e49c64a1b472c4e2bbf32761299b938962a6b3e204de7e452718bd691428f31b78e05d97c3a3d732743c82f5d48ed9a893e0be8edbac1b2687ef0af6b353bf98639ede4427f240f99396e8262647d1ba5ebb951165380ed43913e404c2172eece648b8f431a0e9d13f24d8f4cbadaa2dd0b29bc97e0bc6655051cd7ec595ba8de236553f1b63eea4050be3b1b13be6c78e3df2888e1650abab2218939e2b61702514684dca807e123367bec5811decdc8d749c29c23b23750bfd52fb11e10c429b7d98d419a06bd7b4e1dd77eb398b7f72bfd3e106249cb9737d11d912acff5585563a76e991bfbb9289dd155b42171679d712ab8ff9c4333bbd29764c3031ef81e91eaceb23655e9153f46b97ba2ad0a01a65b132807b0cff3264c4050421e3033d3e4307c10c685bb1338e347aa2c5765e3d9ec3d3b00716a4ae009b3c2120d02fc58526d3db2f9de3c0d7d640b53605e1cc84df1907e3ee914a236e7832439bad289fc523378d8b5238ab2438e658a8f45f4a8ec8f007da873d23e81eefea7862b977dbe26660162bd1cb7ec1dfad6a884665218c6c67233f897f80a722d9017bbf94e090087ae544ea93498c65afeaf9509667beb82df3516b3d44d414281f416174e503f7851abb156cb6739a501506af6998436c3b9c6f29924ce57eaaef8e9e8b1b102a667a5894e06fbdfc6f96de92f006b998e5c0971832582464c89c46e7487903d59985a76b1f9042039069216d0ff9488b83cf297c9d39952e0a728918b78710d40063bae8622eb5ee2df258deb0219ffc7cc2f378fbb8b5f7eb0d62846a5d032bff9c45179dd14a11d20da7214fde6227eccccd1bd3d9039ae8016d7b95a3102401f2a689eae98da6e5bbbc5970a81dca063f00c81b09d444c4341c9613d0f3dbfe0d5976151672591a4443a68f57e45a6350bfccb487e54e0edab369ec2f20087ae544ea93498c65afeaf9509667beb82df3516b3d44d414281f416174e503f7851abb156cb6739a501506af6998436c3b9c6f29924ce57eaaef8e9e8b1b102a667a5894e06fbdfc6f96de92f006b998e5c0971832582464c89c46e7487903d59985a76b1f9042039069216d0ff9488b83cf297c9d39952e0a728918b78710d40063bae8622eb5ee2df258deb0219ffc7cc2f378fbb8b5f7eb0d62846a5d032bff9c45179dd14a11d20da7214fde6227eccccd1bd3d9039ae8016d7b95a3102401f2a689eae98da6e5bbbc5970a81dca063f00c81b09d444c4341c9613d0f3dbfe0d5976151672591a4443a68f57e45a6350bfccb487e54e0edab369ec2f20da9914a1efea3e5e652d1bebf32fb2c4a8339fdf7e114fbb9026c3948d1e57b2c9c5447ae1258463f3aab447a9f9906b7afbc722f2eeaa83dc7e2d2b05d15551b32ecdb06154ad4de0590c2867c0b6df9c5abeae1a5be2bd2c68bbf2f7682962ac0ac6f9b58736d8b9902a0567227960edc30fc3065398d32cc71a56204011925c4068e93fc72390510b6dcf7548b9fe416a538e12783a0801a41c7e1d00a490dd0ae184d005c939bca7b69cee29254f77bca2721921649c08956f39f7f26f8216eacd9888cc8bca9478fcddd3ab67aa2d834db55bb347387aece5067ed2853344786f08804e466db8b8c9e644ddc6cfa2b36dcc7c728b7ab476189774ecfd535998f1a4af402d58a1d3bdbc15b9a0d1f4a581b877c3b1611c4e89b0eac481902b6d53a273e12c7cc35c2e499ce4b6ca3422eb981e069145cef3b4f05f262113f22214230e9aae720d7c4fcfac7a22be206e8e953d0e945cde4803b813906033ae491c4d89a8190a659d03db77bdb9e825b902128ae97c5a97d5c752b29882d172381dadaec11453ba79d7eba50f965ddfdb3132fc625f40d6438f487b797f128a2ff48b695344c352c521b2eee3f637e014489b305ce01c1c60d61ed9ee9953f22214230e9aae720d7c4fcfac7a22be206e8e953d0e945cde4803b813906033ae491c4d89a8190a659d03db77bdb9e825b902128ae97c5a97d5c752b29882d12231646f213859320989493a10bbf7640ba070b8ee78c8f375bb5dc8926614a1b166eb91a9a40a596ab9848fc583b711b8ccbb038cae98ea601b29dd5a12b9c0e968dca49b9a68c9787830d6141ed42c931b1f31b939e598cb93a6f6c3e56f91237abdca3f0ee78c097dc1602592b994c60f72ca58b7892f81a95d973d8672d000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011dc4797cd50639f39c3f34ef7810c3b7c7257214aad6854b2137a6fd72d5a90b175f23f6556b0cabc02ce6e1fccc7a3e498c9d027647c8133b68f35c7fb93bcd2d82432244777e2efaa9c4edb325942f6f36c5086409a6571a58c671d416d978314b14fd64651cfe79e100493969e59cd108a415d3b625cd3cace16a7d5109ca1ceb3e9fea25ca8c979df9acb0f3fed3b765bc5bc3cffd49617da66c30d1730327c6b1b8cdeb55bbc7ec5eda6e07f3b9f4e850b9607d7cb70a5eaa5098854fb73258845db47032802d93b668bcd91609d20ec10b48e80a664ad046e97f6f96ff34a9ee97affd509c6c064c8d24cedf9c1063ade15105bcb9db0542c6d0b65a7e0eeff6dd112e801da783c04575f8066954951299747c33890166c36d0290072a07cf65d7454f5170576bd2b1482f71fa9cd9a1ec558e680d3eae8f30fc1b084b2afefd14ba08b2449f6b810fa740fff9088e3c135ede11c583aa686bbb3662291c06878d9f6fd731d4329fead761ab1247ace036e7920c294a192eab3c069a07359a2794023f44668dbe7b560320e71b338e557d219c86f02307366a73a7c083377152da278e88cea3bf0c0809482975d672fdc1c345052a473bf0e6d806e3bb3e5b4fa6c296873fe8316cfe0f0b90930eb2f5333c66c845fa00c15ede4038700509246b6d31e6782e9648929744edc4e894e31bca7a3b4bdb744be64bb2d2a61a5ceac187d72d81acc0341bd96ec0acb31a51f0b9ac17855c1bc1277d5be4a93905c8c6b5f3a53e3a0e60e5a53fa5e5685b1804efdcda4f902f8b92fabfb3791f9f3121f079e75590882dbdd5613220f3a7adc0b8ef4b14a718459614a44ded3c8bb66083ce2e95c6cb7ab17e5b7851113eacc3e43af40ccf5405daf51b1a070a0a59929f82b6b6e58ef1caf246b2e7a155c7ab90fcbaff3abd0e3c61230caa313f6c985dd93d39c7ded1fb53f8d380c2f7b9e12cb45e3ec093ca97c07c9c0f09c26ec92534bf1ec5320b07cef15fed49cebbf8545ff499ea6a42ca1fadb63522a8929c46234c715f2dd6c4dd0b5be57744d3609f4038ef7a4d218c0db4404e0c12b5c0d1f56add6d0defa435b92c14fc4f9fff8b7fc2ded5db83b0f678369f34eed586532a6af17f174fc7ab3956f89661b3f833cb48abe681967243cb84ea290687b47c9558cef2d227a891f23bed95ba6255bd559d8fafc947e100a44edd010f983d905078a1c1a4a4844742f545ed89890e7bb0a43118b7ae9d4b2b13e537d3759338aa84d1f1f00844233b23cf2ab9d85d136234f95b8d1cbda50ded2a133938aab9a6f04b12af64b10b31859118d3425967a97eaa3176d415c54bcef72406d1b89bb1eba9454d47c1b8686fcdfd044c02f422780022d2c18afdc43a2d190bf1afc203821fdbac49b707820b0147d4726618890cf968fb21ff5d3db1fb31179bc0ad934631257fc9627b1eaa57dff968ff6dc984b8646e184c6f6ebbaa0ba9459ddbdf5eba4a9fa5700066eaf607a6e97c57b6d6b1117f9b213c178c0a186988fa35e573a7539241faf775223dade866310293e1a93c495c2f855399040cdaa876badb1097b8b03f87c81a531b949950778ce40e3f9d001f736053f4b23d3cfa66702ff7b5db5dc529bcc4e0266b495ea6947c663f8a8f0ec73d2229f52d732692cb984977673bbe9650c7ea1cab36d8f54fd3afc582be9d95fc20310b1ef342ae7f8a882d64c8274f88b08e8cdcc8816d637700bf474fcab770aa2657159c58bda25169b53096f8c70d5cd6b1f7ddddfe64a74c5422c60b030984cd721caff27d6b0d3fc97face67f3b0e7fc931265fd3a4af1fe299a95141d22b19a41420cae4e4ec4176f10b53245dbaebfc78948e5d886e8a2a289c6cd87ed0217618842bc89dd2fe3d0093d2bb12c4a976853e274e6f7e74ca71fe989ae20d3d8901cd90a76e52bf5c2cbf1be936e265ddfa8e325f9d0fb50d2191546cd395276518b2cef8826e1e42a917f710bc00fb57c1aa427c00d85045e9d07e4dc26058db266651bfb0e979dbe2af5926d639ae305e58cffd144ea917ca6f049c8dfdbb7a37f994fbee372e3049401c4323c1828d09bf08f6525a869686fb9773135a1eb61b2a459145612f2357da92ca380208498d3a2323d4a3e03ca5d0fda896eba10b0b15dc385f7b11c71a649b8aac603265747c2e37fde1b6af7037920cfe2074262d8dac1d0183dd67426b1be88fbb8c5f0681f39c5c0e5f3c75fe6446ea7f6a7a35fdacfe5d9d523654e968cee4801bda3a702c8d324eb684cb8f198e119c1ed40a025301a262adc9ab1697311b7fe425e7d66c6ed6fe4296cd9e175eee63e12d0df460f7d4129b0fa88f0c0a76808b429b167ad1d655ac299516bc12580c9a20320b9f082bed64f05770f3f5897f74bd87301e2a32f74cf2041674daa7f365e105c5e4d7245d074e4acb3c345082b84ce529cd1d265f63b450447b6eb83f029f3a3a1b28dba2f8b1b534c3cbaf7d47b33d1ccbdee2ed956748e8b57e47c0fd621cdd7833b5d1248775f82d05928d998079d10191bfdcf28591566929993b0d1b232287cc4a2edb788a07d2fa6d72667fa875976a4970069607d6c7c366c4f2e635fdacfe5d9d523654e968cee4801bda3a702c8d324eb684cb8f198e119c1ed40a025301a262adc9ab1697311b7fe425e7d66c6ed6fe4296cd9e175eee63e12d0df460f7d4129b0fa88f0c0a76808b429b167ad1d655ac299516bc12580c9a20320b9f082bed64f05770f3f5897f74bd87301e2a32f74cf2041674daa7f365e105c5e4d7245d074e4acb3c345082b84ce529cd1d265f63b450447b6eb83f029f3a3a1b28dba2f8b1b534c3cbaf7d47b33d1ccbdee2ed956748e8b57e47c0fd621cdd7833b5d1248775f82d05928d998079d10191bfdcf28591566929993b0d1b232287cc4a2edb788a07d2fa6d72667fa875976a4970069607d6c7c366c4f2e622e1e3e0c2da50d7d1f1c4021a132e35e8878c4f713eb748ab3427d8f6b72d570ffe719b1ccb76f3263f6bdf6049b018d0eedfb3c918d560714ccfe6f71b753b3a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f21621663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac5377081ff8f64eeb38aba78d10d3e83a080413ad79e951fcf6038959643c52ada2ad9f13b09f574b71da85b15d3abb34658f227e01576acb02dd2d56431d385d43a42da6325cc108a912bcb06aab5d323439e43203745734a369ef5a103de9863110b0cbe842a1af8691b0e23b27f5bc34a5ca91fe7418b3932aa6441e1c7d0df06c5a0ef02911e040f765ee71384bed36e78e0ae3b40c85a028f4ce699d6a07c1ba90ed5254b289cb51347547d2f2df8d9c8d92d37b90c6f7bab01c63fe3e74f00907813eae16d2b0149dd3dec4b0fe6f3df680e84f010b22ae146688cd1e2b507a36be71870ee0d0f16f09c5fc3ee7f6a569ed8c56b2b20ec67598eeffda89c22f16e7abb763ed14185c019f5dac8dc7acab2e69b57566c94baee8f1a39b14a199dae4ab392dabc2debda1f813f5125daf66e226aad562736ca6357d2c3000200907813eae16d2b0149dd3dec4b0fe6f3df680e84f010b22ae146688cd1e2b507a36be71870ee0d0f16f09c5fc3ee7f6a569ed8c56b2b20ec67598eeffda89c397e08619c655f78605c17faf4ad123b4f78f9cd1eddca9a21a1834116aa43a91fd13331c06f24a63d10b2fb16b844d5b689156e8c7abf5c5cb9d211cfb6b4892eefd583669a38c5c24df6a11f480751df43634c58e9ba096b7380f1358316340ca9d94a8f94aec38381a83bcd0786a5bb64dcaef3e0aa356e98dd82267692aa00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001026032bdd7d9b7ffdb83b66776e0f195bafcedc76ed876981d2503b5867429a70c7cbccc220deed40a54004054e9dd47c2b0cac74586224252808e7ecaa858801990b1ce63d4909ffe9a3bf868c77f101386c395765a90b6ab1f98eab1b2fdcc2082323dac448e912698bbbd54f8118d84473241bed58cc37c3da213201b642a2f5e99d300159c74fb2963525eecbfd57a48fff09c7f9911c684b5005c2f5b6f1eb177c3cac8c0f9fe1c5937d8f92f683f9bf810ce97bbea8794b06a2b644d6a0eee515e7828881edc016f3d93851bec7837cae25d48d89d8d33f7c93c0318f21d8d3e3ffeaee25dcd6ea6a176b0d0d773416212b2bfcf817a0d4f59601f3bd922caf69aa34014ba5104e49e7f6163bab1caecc34ac7dbf4e23832fd08552f8b00ab78b6d1d16674f984222680c05561f7ff2f3b84cb41b78d8621db55ca9bd41be2e022eb09e09ab8bd2dedef3e2996a92a40b5de61f38420d2f046f1f562922c0e755600863dde74dd98dead3f4e78540648be04c785a6392e24daac600bea3e741acc1252cb988448da854fa62e21d981d1e83d2102e88d677801b64c04ad0b286c13422fe1eae734e355c52620523324c6c9bef939d5545e6cd29806f4b43a7d039aee8e07e40e19ab27c674a0bc8929389c00c01fb4efc1904a103c529f2ed93359beb4cdde6898a4b9ac5ebfab740676fbf154e261c64b32e2b41fcc530b603bff0a03f69520fa77e7794d9701b177b42bd66886dea86c741dfd9a1f1d2065f59bb72d27bd25233f07f40b8be58e7df3c6d4ce48ef22660670eaa0a4a80935ccfe056b1e32501f50f099808e0370b8a8a79de8c7c69881bfe806ad5af93012d6884e3627268b3a309f4654e2447c82d015030a79781454465728fcdfd52f4bbd872e0d110ff686fafb6b52ec7a6575bcffb14818fc724bedd1472e9b541f36c346be95efeed94ffb6beef12f67858c108c764ca9050994a8a04e46e4502b3d6fb9c3691371c8371c92d983b28ffe8870d1d43fb84a71287bcae2e0a3be37f82c8b233857acb286c67af6cedf8771b342101fe8a7bbf0fcc17fded4dd78080370d3a2470a62b4d445a5f3049829095c9c4652bb1c3a4d40d4354f3f8fdd0dfda4002fa70be16b6f36286af41998227f65b00b1f3d5a4bc1ceb92e64f52c0b796145b31f7f71c363e4773e17362f40075c5ebb0c08a8f4e1de7ef77f46e31a0a0605d0de3ad5e54da84c8bfe96898d7fee596326a880d7adc0c87e27ee161faa67c3d1927c27503929236c412304118072545c765453ed372f7a657444291940514a3293792779c02b42bba82004bfebc64132de0105bce6ab0c2f85d2d10ef35fb22e49eec9ca6a1d9c93cc6a7710610c7d0f68616a3ba8b05c82a8615a1ca3a0848582402f267f866f40046baf466d0d8f220e8b766531b037704142d11fd71ac7cc3f5e41e2c50cc72c1dddf920008ed2ab47afd434084a1b661f90bd1730b3e79597b145a9eb98bef8e5d6b12c5ecf68b39809cfe9111a9c31b8e9e31be3ab015be7357c0d936ed20dd35501e3f2b9ef643558e85858b815ab2aad5c23890207f9d0282fd0d5cce79ecea876c62ba58a58e0cbdf6ded23a141c4642a3afb82dcfd0f689fd01dff2c258a78be1dbee198b204f019c02750f5f2a4b82f0e9bb2ef3ed3aff18e412556061bfbd0afae913fdd8adc4e514d7998e6719f0a18b13cc12f40f9064c4cd27dde7f7a25fb5162eb114249fb80076aac1d45953e16aada71bc18f6fde9fa593e5e675cc2491961aaa53059d1f9cbf1c93de5934f0c29593b4578ccc390abebc67ff9b65019d7025d66adfa5dbb2bd7ad54192c890fd771095404cef6635c7675b447bd36d9b442d1da568bdd4374b47b739182db10af14d333dfb9e7ea0e7ed83292a33f5e0d89852f73d4d80231db5458c61dbb3a25f7e9d463a6d07acb4311bf33b5de14942536835f32c7256bcaba3ac55cc32ea9c8e875e9f424ba462bf48466480a275a80defd7ed0e7feebab8b8737a51232e6ca2f4d8d0debb2f2b64f96f457d77d05b5ba8802b8fd0dd5b5c5c5757e9f3e16d862332f3bc7feed9cfd89096b94e53e0676c8a66dab47f4a5fa8a64aa862aa1abfeca99e681435a70be09fc6468cc578206f71a1bcce11f7559d801bcfa064069818e794c024eb8474e264a2f58ef3f0b4ccfa907e8875b25924d9cb8b62e11df3ab90954ed5fa0d101a9a301d7fd8e14cbaf1884b613178a9265c70de422349581c8414f9f69c009613dbf362475871029f1b3b8225760cc5a952f3c8b1dcb6a7e37beb060963ff69ec240c9dbacbf88d2179940f941cc64926ad0c3762b06eb88e9468e1d10c02ee634bc0eb607161ed9a5e8a67482899beae9ec2eb514f9147716b971e2ef3fd119cb43f14a1b307a22636452a716a395021613d14c172299ac8e60c69153c0ea7f07ac498dbc9acf4c21a454f3c12878cf919ce98628dd6653719f396eac3f1580f853b67265abc9afe7a8a427d804b81d6e63167b33ad005ec7e3e0d6a2c4947b265d6fc48cbf73809ee8afa72c9d2b20d8108f9d0c52ffa1381c1f295d3b6b84d9a2903b9587257b6a6449746c9005cc27ef706422349581c8414f9f69c009613dbf362475871029f1b3b8225760cc5a952f3c8b1dcb6a7e37beb060963ff69ec240c9dbacbf88d2179940f941cc64926ad0c3762b06eb88e9468e1d10c02ee634bc0eb607161ed9a5e8a67482899beae9ec2eb514f9147716b971e2ef3fd119cb43f14a1b307a22636452a716a395021613d14c172299ac8e60c69153c0ea7f07ac498dbc9acf4c21a454f3c12878cf919ce98628dd6653719f396eac3f1580f853b67265abc9afe7a8a427d804b81d6e63167b33ad005ec7e3e0d6a2c4947b265d6fc48cbf73809ee8afa72c9d2b20d8108f9d0c52ffa1381c1f295d3b6b84d9a2903b9587257b6a6449746c9005cc27ef70640b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc28a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e8726c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa13ecad465c6944b325598776b427052e58c94c13e930403f45b0a408f56709bd70656a0cf4c32a485099d4b8e3389c827090d82d1172db3667feac40730816f1305cf217419e4f71e44fd795ce3ce932c1a1bc93cb728baa1d0df0aa69bab501424287a8653234caea67c56793cdbaaa0456cdf7b43e6c05ddaa6c0253a47d6d5040a5288c7f4cfcfd8259e43e9af00a99f1296f2d19b0da9d22eea413fc016fb2df7a41daa41939712174d67499152bc832f079a0136eead02e44982e442929e1b00dc3610a9bbfbfcadcd305379400e30def6fd40025399a6ac1292daa557403929f857ce3021a1ec2c9bc89b76c6e5277ec01edd2f637abfe35990685ae18e0e1a7ede4b179257211a6cada714a7beaad368ffd2818c744f6356144d0c89eb2e4c4d322add4454a75e3e1e6faf60dac34f7356ab65d2ef20e7ba2e956941db1b00dc3610a9bbfbfcadcd305379400e30def6fd40025399a6ac1292daa557403929f857ce3021a1ec2c9bc89b76c6e5277ec01edd2f637abfe35990685ae18e050f3816577d1dfdfc2f1335a8d2086b31c2b7113b5c78176d8e7206458c2e9d21100de44a90c742e7239c06a9ea36ec9ec3477fa9a1765acc534ee4953fa74e3779a8514727f35500631363ca088e12b5e440a11c5196df6f7b1d3f0dfb347d33c712de6dace1a342255ed1feadcc51b04401ff72de0eeda55ba84253c2ac58000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013ab3c6a304539caf8174716d91fd0748ecd1c02867a2a9bc51c1ce339c402e0f140c5a7692c13bf29fccd79fc7b59c241d9b36c2138c8451721e79d56ee3dff938b22df9786325aad82e7706fae9df40ea43092bca22f78ee771bf95ac3be33c1501629162ca64dee0f707aaa90c7d5630aad867eb70aebec0df2a9e8ddafcd31c38e8dc2e0bf6d8d7009571c756ebc05ab11e0c052f39e2471296d791ba9b7925f521f30eb5199257632af18058066eba6082f631bd65426a04f3b41cdbae833675729934e077328c1c9224e5b8f99e0784d8360e1c7be45f78bdff68a0fd8a1b1a3483515a690a9322491cedc5b8ca58505d85ac2eb2808d23919586d52c0a1e99339dec81a5cf32006c696165f2f4fdffed4e31e608892dc7eec12b057c753ef233635e87dcac82ba936d53be6b9c25a0354ab9efbf996a9e31cf6796a4df30403ff170f8453b93209f7212e30e64bdecf1f13a90827f8af5271a803f9a5424d8c73f137cf21e26e922f5445367962e2e7d9edf3a9d99dfc99732844f06b90a7606c3266196b06f6bcd6ca8d7426ccd0da5cadf02eb5cbb8b2f63c7bb5ad817b2883cf87686ba01aa44b95631e5814ab0a6ab9ffcbdc888d1f88d166178441b0d11e7260ac976f1eab0194dbd2862933e2d75d331545584286b4d5d606f0111e4315bf57734cd08d875e9d166dadb8b98f5c714d29f1d7b659d4171d25e040c48b3cb341b205699727da85b9a6129e38b746802999a390a83c4ee15498d2a0963d8cba260134c0c873ed541ad2f9ba37daf7c67838a3baee19647679d34600f49ac0c3bd3a2429093997492dcd565dc5ec93132dd4a5acb7d6670678e397b251e4c427a5152a0114236c44f600f8a7c07a91f2e1fcdeee3d1606a8dabb0c820f21650aa5baa46a61de66652adb1f204b520344cd991715763b3cae77d2bb824e63f99330d2cb016186b40067d8d254a2b6d4996634022db437e13c224f5520e84f1e6dfc9fe5fcb4b97e73380a9defda1328e41b72cae7b232ca9c876eb111e94e1525b3b070973a066bbca258fab3e293b13ac0480c935ec5f9cfec9c2053f1f873ce2e8d95b7ad6769d85030c70a8892dbf02c040e85cd3583ffa3e4887126580bb604c6c0fb0313e8183042fbe1d97413705c6d8214de25979fbbcf04f1cdb853465888cea5cac08957ddb880c7ce23ba26ff78a325ed0138d492b5b552aeb5ca5afb2895dd83e3c55333e671d9c27b9110d3797041767ebc21dfebe480c1ae22b9ef6aea0b81855ee84aefcdf54724253e1949c5da3590718fb9260193b2aaab104f6a221fba503b915c766c85a59a8cdbc20fb5e6a38390ba511bdea1da5d98c792e3bb6f562b751fe604f1226528e9a150fc23e03867dcaf7e88dac13c3a6cb190ffa51dadc8b2c77bbd9df2257045332aa63ffc4d517764e34a08f3e0aaa508874894f35d98e97daf4c4ff27bb59efc2bdf0c992d417ee02becd6026bb9fd357878b46601a75f300b9b22088a3993b35d8446b99bdc2fc5439ff8727276fc450288daccb3c57c6b6291e9682470bc3bddd8907da1b617ce139284507887ea83f631f68cc1ffc026db83015a119266db552e323667f7d84f631f2891a5a3f384d050ec2d0ec514e8ec8d612550130f14d79116b27204f374a77be092ef0466440c54d709d37091e8a0e5b618d8ed232433aaa2f235ba755c5a3433c1a24d5eec5523baa3d4ac4aab7f267d029c4e92016191eecc8bf936fcc0574910de4a7370b5abe0b2678f3b109a6b29f888ee2469b55c80749a23fb2bb24b81f2547d26e911eccc7af03e9470955b4e5a9708959ac27f0fe1f9d003cab56f7df2d82cede978c24bd540f0cb28d0bccfde338849465b6fc0d3b8ee6f21821eee8356bcd72f389fa174f007bf72f04331d264019762cc6c52d3f6db1f76c29bef925c229a6d54b464d8e9a3f18ba29cfe000b98eff019d2675c348a01d5376763d375ff5a13695e9721d8353d7e34a67bbdd3eac99ef5311a7a8fe08ed57130ca532f2c78c5af6f059b467f597f5ac87cf74e95c0d7926402a3d88874168940f2637c835ff75991b61091898106cb0bbc56f8cd4fcd5c1b35305ab78773bd55dd027b5d62c5d8a56312e6528e621f40fbb5470a93fc5a1f574c44ed0035e02a2183d67eba4b7ca818a4b1e96943c4715814ecd7e0aab01cd8b72c0ad116ba1d2f42b872fe0d0a5ea9243aad32f68db51897ed60756f633d76b612f87ede72d661c00a31cd9ef8679794deeb656fd6b01c97550149e556476b314244fb708d44fc33f5ce32610798686b21149a90294fe36acf6845db3e882688508e135f72bb03e032f9041ada05f5e85a98fb2f31708ef4a906717aaf6517f64b58e932c258ecf3cd06fbe525fa0a17a56704d0ce8f710d7b631e45e56a79c3477a259d3da71320fedd1486421dcd89c4fce7ebf732cac74d2037656cf977cf78bc8dfdcbbca0b30122eb79bde232763b03181408cd353ad749585b27d619ea1a1680d234435f60fa51669f4a9503b0d8f0879bd3fdf5e25d37853a8c0fc553c8dbb724faaf236305ae9960b56afc4f270f78642c020a1fc7320a8608bfcc65c9f757ab0550dcb00a31cd9ef8679794deeb656fd6b01c97550149e556476b314244fb708d44fc33f5ce32610798686b21149a90294fe36acf6845db3e882688508e135f72bb03e032f9041ada05f5e85a98fb2f31708ef4a906717aaf6517f64b58e932c258ecf3cd06fbe525fa0a17a56704d0ce8f710d7b631e45e56a79c3477a259d3da71320fedd1486421dcd89c4fce7ebf732cac74d2037656cf977cf78bc8dfdcbbca0b30122eb79bde232763b03181408cd353ad749585b27d619ea1a1680d234435f60fa51669f4a9503b0d8f0879bd3fdf5e25d37853a8c0fc553c8dbb724faaf236305ae9960b56afc4f270f78642c020a1fc7320a8608bfcc65c9f757ab0550dcb0b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4822d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a0af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb1dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1971ff13de4018ac2f204d8e0cb4a7c30f750cb2b2ec36ed94c33f890ef98225aba181ccd4d1b3c80f4b8c727f6526322ec76bec9aa4b2b38cf1447328166df4fe00804a96ca16c5a8c7e9573fafa97145f3de7ef8b9a2c4f92876ec904cc8e00d4243364fff85335141c1dd1584ef14afcac6b8156563c1859d08fa716ef4bddf906950214b2ea38a5f0f7c7a5a6a6ee9328253d0e0cad482ac7e284531768c1d903696c13ac367d18219cc9b7f7bb935a0cb57b9e7d3ce80eb9cf043b476aeea23b371581b99384b87ebf50a3233893e1b81926a8343faa5cdd11a28ad748bad3359e1e56f9048a6cad77bb79ff4fa19cf2f49f1f3cda8d9839cc3e751b48e93929ccc29d5fdca54237500629f8b665e1a0a2b8da0d73bcdbe3ba78313c766d853495dd25ed74aa44720598ce08b31b8d4542494e72066f37b2aca7f0b51fa1f23b371581b99384b87ebf50a3233893e1b81926a8343faa5cdd11a28ad748bad3359e1e56f9048a6cad77bb79ff4fa19cf2f49f1f3cda8d9839cc3e751b48e9393d42f9edaf7b353d72b4f5705136b9544064463b70cee08fb306697083486b4f1b8a58b763a9292e92394598721020cf3d45bd1dc23574467f0f344bad60376f0a58380a94981b87a2e450aa1b995b9557c678c3630cc221dc505112261580c2068325cb9b5386cb1fa9f320448cd271a8e04d76cbf7b2986baaae410994cc94000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011cc51988adfa9bddbf04825e0364b0d6f78985a7302ca7f0f40abf0f0e194c9419c740145c297d228294e49ab0a74dcdac5107ab7147aea9b9666cb7818888050f23e6f32d636615bf3ed80f5d52b390300856755b4435d1228378aaa53af5d117945fa7911b5084fbfd1cbdfb91bd187259f5c50b13c21ca5f0d6d33761d4ad245ef57a3800023656419f40762d7ef573f8b632116ce4752fd67c2b30ebdec106ecbd33771d748e21ac89f798906235cf547a88bd0d15c6221cf1da6dbce806185437524ed7a9e5a54cb9da9f4be9be8ef8817e38dacc4aca8fbb32974b5487011dc8efba17b47935a9f10b93f7f876fcef86d2f70becc610f80e40201e619a3f530f091a8d214c3c29cce1c905fc3f09cae923cfdb4e05b20ee4a1f16724b309ae5be93a7679e40e9f0e0cfbbf123a2b04674b54fda7764ed3e1900588d3510caef3124b9e6c78e982f2b8ea2ab2ed955c4eacce0ceaff2a6d0904778bebf83e6b3bb7b3f865b5c8eee07f2c07977845441ee4110ae576cc3286d0bd9ae4071935a2fad27af26f8f8c0867034137f81634a36e5b935117c4ccebaaf5d736440e845fa7cc6ee2706090567921ee47a6bf9f871f68bbfabcf5caf023ca66928b1f7f253cb6289b9d463b12db4e3777b354c00131672784a8327041ccff367c471a50ae75b7ac42282c922e51b7f319ac23b9ad6f3aba4775e2cbc9baab95eb1f2f0cbb0abd9719d8bba3d99486596344f522850be36e4b4cb2aaa9f9e462ec8b177ca00447e5bb513462e473011263ef82bb902d23f5902efc86bae6c3ac8e7338039db99a20cba12fecb88aa3441f43b2056c77d815eb848ee15a1f309e02f939fa82249f2b298caa9f5558a812dc4adbb50cdd2455f7a26f4b3223f8ea6d4e1d52b98d0b4d83e6b738a4adc5782a37e20310873eb6b807cbc330abc93709203e919578faa754cd2659c4487762a0d367bd09f5e2f3c777b2495b78b67ad75f2407966530071cb09b047c9e476000ef7628b62fdb301f891e0c40cb5cc5e3bf1877ee09939876de919946af38b39633a65754fdd482995490ed826de848e2c31fd9336d69019fda986c1ca431e889e2a082505bc557fbd43b799d00dcdf670037d087c964537c7f4c6c24bea0f21f46f105246cb418f96eebe7559a190c9dd43d6aa1ca48475f7a7ecca33c8eaed0f24d6a443deef2c127666a466967b87c7223633e49e295a253db94b12b9fadcfa5456c4c69009332b3a35be6b44f65876e369349534cf6df747b73d50158a38aeb7f477cb866acad5277cbc578eac412d32bf0cd032c2d8e149f5303d345ae831b60e2bafc61efac80f52d7e689e52e8c70857a39242466c4058487f8df987a06d1abc6cfc08d01927e765085eaf47e1c206881c03c1f3cef4999d4305df16971770c08af7b9b66debc25a88215635370c26786fd3db8825bc338b280d453faa87ab32e075da25f6b5bffb777f881faa5a2d2f621f1ccfb40b6a58e08505ab504bdbc677bae9a7ccc141af2c47065bba91138637211487e10d96fb6d68a8813794e10aee194ba2f044c63a763e315e24742319c90ee3ad05b475c1f8cde24d41202fd1525a7849536aed8e6232c68f51de281805deaacb59e1ad5a66cde72835ec1287ff5347f11b774c1d792705a1642c3dfff2d62b613ab66a9a14a34c6347c440cf5ff629d2d91d3de8280974cda6f726c9d34677212e7db0a583a55ad83f819c71dadcc959e6294523b8309f1f0f431fb0c80810344c9e92ef891fa947bfcb1c5c0bf95e195caf51dc38e8a47a1b280cbd6854c1a4d2e84aef8f8d979fd10c54622679a5b77a214decc08c70cdcaf40ee420fb9486f4630464a102d312fb3fdefadfa41c9426038118f13aaa38fe86341139c9939fe2b466aa3900cfd9c4354133c19a3d1fc72fdf58d29e3ab8504909be8b92d4a8e8587de1661c7c4347f0fb3472a3fe9d31827e278b83608f364a13ad4b1c2ef1cdbbb11936639f789a64f5b65b3f8e6df8d9365847bb5956f1331acdfc34cab7cfbbc3655ba0a379c9560f174bfdfc84fcd725cc378c9010d97139663de3a45c5c3c390a8fdbbdd7dc07bbb3201bbf9b95aabe5f033f005497da061c3d7f82e4975084a58e038daa12460b882f722b102aad0ba0cff471d6530a036d57db9d851fe86e85d2af13db67e635574767cf710aed89bc7d8bd0191ffc094ade89e36dca61f77200d6e24d389b2bbd94be91295dd2564cc924300413663f5ce32610798686b21149a90294fe36acf6845db3e882688508e135f72bb03e00a31cd9ef8679794deeb656fd6b01c97550149e556476b314244fb708d44fc33cd06fbe525fa0a17a56704d0ce8f710d7b631e45e56a79c3477a259d3da7132032f9041ada05f5e85a98fb2f31708ef4a906717aaf6517f64b58e932c258ecf30122eb79bde232763b03181408cd353ad749585b27d619ea1a1680d234435f60fedd1486421dcd89c4fce7ebf732cac74d2037656cf977cf78bc8dfdcbbca0b305ae9960b56afc4f270f78642c020a1fc7320a8608bfcc65c9f757ab0550dcb0fa51669f4a9503b0d8f0879bd3fdf5e25d37853a8c0fc553c8dbb724faaf2363f5ce32610798686b21149a90294fe36acf6845db3e882688508e135f72bb03e00a31cd9ef8679794deeb656fd6b01c97550149e556476b314244fb708d44fc33cd06fbe525fa0a17a56704d0ce8f710d7b631e45e56a79c3477a259d3da7132032f9041ada05f5e85a98fb2f31708ef4a906717aaf6517f64b58e932c258ecf30122eb79bde232763b03181408cd353ad749585b27d619ea1a1680d234435f60fedd1486421dcd89c4fce7ebf732cac74d2037656cf977cf78bc8dfdcbbca0b305ae9960b56afc4f270f78642c020a1fc7320a8608bfcc65c9f757ab0550dcb0fa51669f4a9503b0d8f0879bd3fdf5e25d37853a8c0fc553c8dbb724faaf2362d98a19f0b2c4e856b644d3f30322f64772fff5be41e50cca1aebdbeb6317c7a0b3b8e7d3d25ea8a04f66d4e9bf09ea1fcf3625db18f9380f3304d511417d4821dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb181ccd4d1b3c80f4b8c727f6526322ec76bec9aa4b2b38cf1447328166df4fe01ff13de4018ac2f204d8e0cb4a7c30f750cb2b2ec36ed94c33f890ef98225aba243364fff85335141c1dd1584ef14afcac6b8156563c1859d08fa716ef4bddf90804a96ca16c5a8c7e9573fafa97145f3de7ef8b9a2c4f92876ec904cc8e00d403696c13ac367d18219cc9b7f7bb935a0cb57b9e7d3ce80eb9cf043b476aeea206950214b2ea38a5f0f7c7a5a6a6ee9328253d0e0cad482ac7e284531768c1d9359e1e56f9048a6cad77bb79ff4fa19cf2f49f1f3cda8d9839cc3e751b48e9393b371581b99384b87ebf50a3233893e1b81926a8343faa5cdd11a28ad748bad33495dd25ed74aa44720598ce08b31b8d4542494e72066f37b2aca7f0b51fa1f229ccc29d5fdca54237500629f8b665e1a0a2b8da0d73bcdbe3ba78313c766d85359e1e56f9048a6cad77bb79ff4fa19cf2f49f1f3cda8d9839cc3e751b48e9393b371581b99384b87ebf50a3233893e1b81926a8343faa5cdd11a28ad748bad31b8a58b763a9292e92394598721020cf3d45bd1dc23574467f0f344bad60376f3d42f9edaf7b353d72b4f5705136b9544064463b70cee08fb306697083486b4f068325cb9b5386cb1fa9f320448cd271a8e04d76cbf7b2986baaae410994cc940a58380a94981b87a2e450aa1b995b9557c678c3630cc221dc505112261580c20000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000119c740145c297d228294e49ab0a74dcdac5107ab7147aea9b9666cb7818888051cc51988adfa9bddbf04825e0364b0d6f78985a7302ca7f0f40abf0f0e194c9417945fa7911b5084fbfd1cbdfb91bd187259f5c50b13c21ca5f0d6d33761d4ad0f23e6f32d636615bf3ed80f5d52b390300856755b4435d1228378aaa53af5d106ecbd33771d748e21ac89f798906235cf547a88bd0d15c6221cf1da6dbce806245ef57a3800023656419f40762d7ef573f8b632116ce4752fd67c2b30ebdec1011dc8efba17b47935a9f10b93f7f876fcef86d2f70becc610f80e40201e619a185437524ed7a9e5a54cb9da9f4be9be8ef8817e38dacc4aca8fbb32974b548709ae5be93a7679e40e9f0e0cfbbf123a2b04674b54fda7764ed3e1900588d3513f530f091a8d214c3c29cce1c905fc3f09cae923cfdb4e05b20ee4a1f16724b33e6b3bb7b3f865b5c8eee07f2c07977845441ee4110ae576cc3286d0bd9ae4070caef3124b9e6c78e982f2b8ea2ab2ed955c4eacce0ceaff2a6d0904778bebf80e845fa7cc6ee2706090567921ee47a6bf9f871f68bbfabcf5caf023ca66928b1935a2fad27af26f8f8c0867034137f81634a36e5b935117c4ccebaaf5d736441a50ae75b7ac42282c922e51b7f319ac23b9ad6f3aba4775e2cbc9baab95eb1f1f7f253cb6289b9d463b12db4e3777b354c00131672784a8327041ccff367c47177ca00447e5bb513462e473011263ef82bb902d23f5902efc86bae6c3ac8e732f0cbb0abd9719d8bba3d99486596344f522850be36e4b4cb2aaa9f9e462ec8b39fa82249f2b298caa9f5558a812dc4adbb50cdd2455f7a26f4b3223f8ea6d4e38039db99a20cba12fecb88aa3441f43b2056c77d815eb848ee15a1f309e02f93e919578faa754cd2659c4487762a0d367bd09f5e2f3c777b2495b78b67ad75f1d52b98d0b4d83e6b738a4adc5782a37e20310873eb6b807cbc330abc93709201877ee09939876de919946af38b39633a65754fdd482995490ed826de848e2c32407966530071cb09b047c9e476000ef7628b62fdb301f891e0c40cb5cc5e3bf37d087c964537c7f4c6c24bea0f21f46f105246cb418f96eebe7559a190c9dd41fd9336d69019fda986c1ca431e889e2a082505bc557fbd43b799d00dcdf670023633e49e295a253db94b12b9fadcfa5456c4c69009332b3a35be6b44f65876e3d6aa1ca48475f7a7ecca33c8eaed0f24d6a443deef2c127666a466967b87c722bf0cd032c2d8e149f5303d345ae831b60e2bafc61efac80f52d7e689e52e8c7369349534cf6df747b73d50158a38aeb7f477cb866acad5277cbc578eac412d306881c03c1f3cef4999d4305df16971770c08af7b9b66debc25a88215635370c0857a39242466c4058487f8df987a06d1abc6cfc08d01927e765085eaf47e1c22d2f621f1ccfb40b6a58e08505ab504bdbc677bae9a7ccc141af2c47065bba9126786fd3db8825bc338b280d453faa87ab32e075da25f6b5bffb777f881faa5a2319c90ee3ad05b475c1f8cde24d41202fd1525a7849536aed8e6232c68f51de138637211487e10d96fb6d68a8813794e10aee194ba2f044c63a763e315e24743dfff2d62b613ab66a9a14a34c6347c440cf5ff629d2d91d3de8280974cda6f7281805deaacb59e1ad5a66cde72835ec1287ff5347f11b774c1d792705a1642c1fb0c80810344c9e92ef891fa947bfcb1c5c0bf95e195caf51dc38e8a47a1b2826c9d34677212e7db0a583a55ad83f819c71dadcc959e6294523b8309f1f0f430ee420fb9486f4630464a102d312fb3fdefadfa41c9426038118f13aaa38fe860cbd6854c1a4d2e84aef8f8d979fd10c54622679a5b77a214decc08c70cdcaf409be8b92d4a8e8587de1661c7c4347f0fb3472a3fe9d31827e278b83608f364a341139c9939fe2b466aa3900cfd9c4354133c19a3d1fc72fdf58d29e3ab850491acdfc34cab7cfbbc3655ba0a379c9560f174bfdfc84fcd725cc378c9010d97113ad4b1c2ef1cdbbb11936639f789a64f5b65b3f8e6df8d9365847bb5956f133061c3d7f82e4975084a58e038daa12460b882f722b102aad0ba0cff471d6530a39663de3a45c5c3c390a8fdbbdd7dc07bbb3201bbf9b95aabe5f033f005497da094ade89e36dca61f77200d6e24d389b2bbd94be91295dd2564cc92430041366036d57db9d851fe86e85d2af13db67e635574767cf710aed89bc7d8bd0191ffc1043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a1043c1060e0b904d84046899e774702473f9eb889953e9ca842ac3dcb8fba3be2fbc3ef9f1f46fb27bfb9766188b8fdbae4cad736ff90f5115026d1047045c431152c51e4639d18394160b01854630b6219b00aef55697d8fba8a2629cea32b52ead3ae1b9c62e7c6be9f4fe7ab9cf4a00ab984d13f661429d848e8a6315cd4c169dd9975f211791e46e37079a5ef38e85c06a6ec163fe21511dfb001092fd8829622668a0dee86e1b91c8f865a10c719c862e8d47e8fafa480f35ecef6d027931153ff4dba575d97627132603dac1c87a7b7b2dbda6fd8afc68b61352def3a70eeac00b245a8a2689d8ecd9fc253e37a7cb1dce4ba5fb909cc47ad9ad210c5a3ba6fdac0b77d30417b290295f5091155d781ed0d0a66a28e5a091ccf9031fab1883d6e1d3620a99d127d8cf8f9f75ddfae5984b4c8b4ceb80eeda5649fd19220b2495a3b6d027893e6c545dee8a84af052fb0a9d53ee6ad2c9c14f485453cbc28a13ee148eb5844e565ce5f7f0f7db7759641fd3a24fb45d0e0a85a9f3f2e871e6e0637fbd2eec7f53d9274a1ec6abff0bb5a737b45b8caa2d0031846ce7ac63e2a62af0c0ec157b4163e558a1589e5f2ba4a4494e1c6ac46d6793eed0d61503aaf8c3339f1ab672444e10a08c0dc0efc9e314ea9c148b218529c30eafd8e0a2b14b240c176e1fde32638dfea6520d5983e5f855c8c72873458769e662a2ceb1d6a0e5afb7cf7e470de56335d310ff0d4c2db1069fa5d8157b7ebacf070fb0905658bc419c6b4c20a8cbfb280bf03d8dbdbe0984d0a63bd1af5ba6f8911e8a8127381323f9fbf530967dc8447c416a96fa1e32b0b281b6702eff53454096a4115c87650577b39bad636654ee00feafcc869db0b5eda86039ff8dfd84b6c28b939346cb03db80572a9e11b78b224ea3be1e5627d6cb4a161201dbb1881b7a39c3edaea3ce3b29d21497258d0f1510c6ad41157af8be9aa05e08adf2916c3b85a127381323f9fbf530967dc8447c416a96fa1e32b0b281b6702eff53454096a4115c87650577b39bad636654ee00feafcc869db0b5eda86039ff8dfd84b6c28b90aba3c0ae3f5d44b2eaf76521f4a79bb1588c87035dc42cfc5acb78db015bf4f16336e223958af763698572cbb2d5db8372a6343c009f1ab4dd5e65908446cf61e224492f0ecd28f7e1ae56ccb5b965df65fa883d72bb44e8db5d426a899dbff1f63ce81344361519080b8dc3b1e35bb17828eec25950687d646152a439c2c5b0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000107cd991467d98ecc1f174f69b3cf8bf0b1976a8ea4e81104070b183741ea18a9177b9baae372d9712012fb537e9fdadf97cea8d618ef30458fc621655fcea19c0eabec8a14610c3856648a3897d69e0eb18307c4ae4cf817f17cedf7c5e4cc4f1f88050448226a97040f75754e25139bb0570d8e99af8eac208e84acc83a179d070b1d3037a8998b521c14d2a1d07f574413b06993e70eaadc2d95ce211d3dbb2777822f755ea05294d70ed7b1e66e7623c2d6aef461de92da5e2d26a7bfd3d00c834ab853614d17846ec48b4788755a7a3fb4ccd908ffd802465fc9ef4b80c627bb4b669f0c3f74e19118b70e9a8c5c7cfd5b445c1a5e4bf984d8846ee3309e2c0256abaff20e849f8e28fe8e78405369bac6ee4e4af3bea3388060dad1ef01132ff7407f317c67194eeef4e6f06ffb863ea1bfef1822c21a8dec69d1b30a350b5eadaa5d71cfc010951794a17606984a75fe920f4fd04b2eb8c97edcea0621142b4dfc0c27060ec48ccaa8c6aeafebcc4e78b9597c47eadfc16751aea555c02d873d6695efa3a93a852470debc527b02e0b56ae5a845e7b0e1a28e4270f8482b2356aa9f2c4e107c4082226888c155e061648bd4aad7047766daca7916121731c9a260c5eebb702bd9b707a0d331a13b9ba26b30a96e5ecf4e4d9609e29a2a07184a2826f745b37aaff3d111048ac514386316cd9b7554a900c4c089c7df2525d254bc7d742a082c49e4329a2f1fb98b45cc8474f076dc7f29b81c6faeb61e006a327739e8634a68044a97e38ccfa47d2c62f492be109cfdb36fa2e50498c806bdc2f66d59434df2bddf6154113e9d882953541aaab57a10903bfc9787117e331cecafab7c9037b4b82829d6811744d132c2b36c52a94f878dc49b3a3276412f8a528c4c27323ee24ca610384ed0116e93ec75d4d167e974ca3d327e9a2caa1f5453c9706a4a025229425ebd9492951cc48ee280919729bd85120d0411e4af0cf03eb1f74a7f111a7d41335f7afe88c3acd0a698584562ecf39a35066af6a52705e3c19f4cba43af91ead2da566f45b5439a5e4315b433d9a0537bf30052e521f3a508aa2a92778a66b50aa6ecc219df8c4e081bc32bfb1efa007d32f54b93338663d7480f6323c6af4a541b408fbabcf655c549db437fe3a006e5ea2616900b6d00e793bd8639360aaa5e93af62a62837fade57aa044435c73b08bdc6d5ef3d19837de103456d6c9ca8fe8ca15476f5bc8e645e93533b9e8cc1af889842563a7e1eec500462cd49dc6019e6f0ea97155fb61a6e13c0bb5c0c6747c6e47cfd0bc677608f8a59938e462678495e3104f0106d7c4c98e34af7dae75f8111aaee36cf28f487309ac7d025ae00a496aebb27fb8b9fa6c6ca549efcd3d07ed555b632b8e0e65632e5e563c8e1128c381a8f46b7e97a9ce30cf202c347fee9090f291306c8d52d1017fd96f78aa2bcd962cb2bf443001db53dcc10d06e80c4d749ec02294b70212e847623f4419352838b39dd682dfab88df5c65fbd306c42928a2c1b484ae52268df8a449e365ef86abab3e56ec4845701b32a21e8d5ceced66da92f9018badc0322a95be61ddf228951848a00d4179b72e9168969b8a2e7aa8b6933722c8bf2a85ab5294f55913d8f20c65c5bc0f3375ef3cbc7bf3fbd3bb307780417652f8b0b413a761ebe096def04f0e48030dff3fd94e662f8ed5d89a6399029ed6bb25ac21c417bcfe687ffd5ee748c8f69f36abf46c0861ecbab95b3eaf90000a4ad422bd2c7c7727c8fec5dab3769956033df1c40fb5a98f75bbe358a0d283e254cad7238fc7e2fe80df46539f941457df46ca2e6999bad8b756c8be5a51626aeeafeb81001936b6d0ba479319c73f1c4cae6632e229bdadaa6615a6d9738fc69db4646d84c91edab319fe360bb3acaf8835b08dcb38e5b4e862e25c8b011f29ddcd5397f0f801760416167871f3f3576afcbc9ab5dd0d28b3e64bb4966111df108ccb2859ed1f350974895024b5e2ebe74fa45e46f1da5eadc3bc78d290257920a7d1c296d175d0e80e61439db6ba1b942b170ae365460ca72d22c386f18639ed24240f76d15bb2e5e08799be36a705156178dd55c654947a7c6185fa424e725cfcf9eab025c3a75eeb1efa7481cb0c5575b037239a2291c62c651b9a61e56816992ddd56206d8aaea597da34c6e5007ff6ebcc913e67db65dffc279a71c632d3ee1e97561a2d55a63b3fbc02869b32856030bc899f3f50ab4e187e348307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab21307d80c9ac50813ae0d14a35e3f0eeb11ce22834eb28d15731630b30ac86fc960f827f3653af7ec51f2eb5ca1c0f114f056470c71e2427c467ca25bc5379036b327383f05d9286266416730d73b4a9752996fe147be52b612b67a52c5ea2eeeb0d8c7c0fa26d79d99be98cf28c4b568af8af9ae78d67cdba6dc58bc0a15d11163c4193b1d3dc9ebff4703f4342874f49691f2b724f92ed930d7ea716d92eaa9403be6c4e2c2361400b8fc0bcbd78b0b6b9276d89b9ba0b888bae89d626d1556d2d47e279234f19bfc6313c504ca48c6e8481754b68aabf70dec47fbe3de954e012b81d86dcb0e64039cec3afb35b73919dc523b0a0a239aaba68b12ec216ab211daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff41040c9277dc8c6351fd039b70656118046072e337c872d37814fdf794ba768ca31870947f95bdea9c3c192cb3bbf7effe29d0fb7bf7284c1d7e0d66acf118ab0301d31d12dfe16fb786dc57c6e8747c7dbffd151ce61faae4cef5f41a07180ea0a1512d88975ca686798718111f5436c9ac2d9b4ba608e39bb61ba7ec94fb5cc3b4efc924d0f7c35013ce4a6204e41a0d2af57decb24efe2da4b04941b8196660384ccccd98686b104ecd67cc9166541300db26d5a288078ae60ded9504acb2a01444d02b0f68c8a15244aca7777246f0f229f53f481e8d97c637933f42699f6303f57e3f35b5d7b1330f25c1de91dfe5560a11d88c671b2ad2b21c643f4334935705bc03969e10b81c3063b89f4985eb328621906caf853ca0348347f0337803eaff1fda99cf274ec44143257d36d2aa688c4542941c328302d04ff1aff04471214cf85c2e587bb2df17725784a51fde890d617760a890461736a885b0292991beff4fa88b7d946ab3e1673543d230eafebbe4488d4311996f27ed5e57e355f35705bc03969e10b81c3063b89f4985eb328621906caf853ca0348347f0337803eaff1fda99cf274ec44143257d36d2aa688c4542941c328302d04ff1aff04470310e392b7bfc261d9d4450166493780a504deddcc6b22b0c0f59941b6e8983c2592d74d6b734b6831cd72cb2971813a80c8eb30d48f2b1936168bc8afaadc7401b6a62cfdb824ebd6775569f045fc1f088839689943ab9bebe6beee6684e561211f595cdceeca42153099601ff147d071c1a2b0872c31fa7a494eef69cfc604000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013d832d5751f38d2361a891dac2847eb390a392ad3a680ce7b277e521a48e02e33b49c52a5fad048356d49bf9a0b056bf520be8edbcda73b5dbdfe93c28e6442f08ca65976458382e22a76042fb1f6a82ae686bb13d93837bc049ec2896a86ac902ef5a0c2ad4b0d970548d26d87d6353b221679190153c66cf05ee0c3bac42340933843c157921d307f024dce0e8d968a632b164c70ffcaaebde5010aa215e080502d6682c21d67fd90176c66ea5460f34074809187fe09acc244ab1f7a04e2237e5d479e7eef3c7ad6dd17bbb1cc6efd848dde8ec11bd3400e250c38e545f5514cdc59c6c2557cb7244f7dd9728b147150d554399b2c089a4eecbd7e6e08f940c9725d3b7a60b9432c3aca3bf6ba34692dbb9d4446c6a6a5571bc64396b3d9d162ee13c33b69bfff42a279db7db55e44c555f7ea1d182048305060448d3f80605c0dd532ae7b8295dfbde57ec930f63fd79c955453ea1e3715d81275959f3bb317986b64c95f04b5fc539f366ec24625d2752f76ed8a815c476e7ebe67fd02437d571d180ed1d3464cd1044e2d28e29cbcbc65de0f55a7fade0bb4ee42d9f8332d7d942f9ce7632f49b210eeed444205298e7f3f87b881127a0f6313c473fec39e2d897a1b21575783c367761c56a361f5fbe2b3fb1bbcffde0f8ee710c1c3f3a6505cf500be5d21da03dc1f5a913fa6e3af38901ddfbfafbddbd710ce3dee42f1b2b67b761ccba01383ba12e9eb6ccb33a70b24d26de4678b568d71f03a6253aab9682018a212897f017dcdfac5cc313a62d54b0d9f128de883aef62085ba90ae15642cfd907a81e9c4d655f43b5f9c99c08ce8ba4e3bbcb64d95e7a6fa0da0a1873919d5622947f1bcd7cb769fc6b53810939dcac7c29bfb593f434eda821078de98bd2ac0489b0128cdfb2f21b0f9f976b8ab4f6b5616e5f4889597b0fb12294ee7ebe73e073be321087cae9aa48f5e07cdf03cd5cd3044dbe181a82f00c2c94b57047a8110cfea361f2e078d8355ab6cb5644f361ec9d85d4f0898805580e94c838a485ce7b04a81e882d135b86715f7ed27f923cd5f7c4720d8e8224dc3c39010d0e5ca80b5acfc72edcc144b54c36b0b57c8aec130e9fd92e18e48d50380dcfb2df092211ef6efc72b6170aa6dacaff216443daa2933adb3b42c15c400626f0bf01e6d053270e307205a8ea9f887f3ace9421b6b1eca6aa51152b041a0cd1fd2355ace86f7d6450306e0a022dc607cd75100a659ee048bf893e449d9d3468489ae215cd5f5fa9a6da9697ec94e5f1e5541ce6e02c7814251a00bc3608245bdfa1041f78f109958e6aafebda3706f322417949591deef2be4cd8e8e9490890e102b7f312cbd513cc72e3375fa2ba010d2bfae0e07b392c9be8e0e9a05318cfb4f5013b62a06d2b9cec8ef3f8db366a1b7fa1c8db216b7a92658642bd4930fb6b51c9ce6a1d87fe201982b87ba35f2c4c101565a6807411aaf556f15b6031138301b2aeb237776d12d18bd9c6b039c97a2b5feb20b9bcbe0e3fccc9b25c1d83f680d7f38be6f24b0bea509471808de1d4820d071252ea4bca973daac3321ddb6d87dc323255a975c205f1773eb42a167f54cd1adc720eba18ba2fd1b10314e9d8f1edd4c0493b591abfd5d7c900b53b3e46faca612a81a7acb412096ed43bf0f75d81b24d8ce266094e30386b17ee055bac325443421b09ef1a8f9e75c43d1284a9a4a46c8aa5122c4719d6539985eb2eefd25e31cf7b68c4cac305c5223e8e8e32355d70c1d84c88a2fac660ce618db4e31f3d1debb0b1b66e8410d74606b1217095a59093685ea591242a9d21d90193fac197fe5aed4dd22a59614b083bd99a16efacfea03b5f61a42dcf2f9ce11920e978cf72552e0feef0cb1009b80cb1a32e6b39090ba241a25d524ba4d9a7a5e5247a6ca616bdd6d9d15fb7211d0c0152f9011a05c39e3c32f5ee31bcc2ba93b8717621e07610d31682c11b326c010ba34436c47d361a927f3819d850515dc5e6de9c9989a234c18435e1cb97531e87181643506ff74f917c55aa4dab4eade31eb8cca435d556208c97d526696101f73b5a77865b4759fa089d025b70c7e75ebbb2b28090b91d6dbf26908dbe7f0d0d5a7fda90c6d3ac56a5ce1f7a49629c63b9c846322a0ffb1ede0fa0a2ea2407be20a12a5f4baa852aa228ab93eedc4321c81a391906ffae06c6fd797e58a215bc770ad2b789c8c4496ea3ebfa5438089508f18b66c6fa3415134007211e691ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c692150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f398196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f61ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd200d79c02ca403a61ae0c96c40c81d27e074e3001c0bc0244386f82e378af5441fbc9f3f20cbedc1799c10e2bc176e39048b5bf38fac2a9d79e4b9dfea4935af204360c0df34123e8663ef1d43e891c71dbb3d0879a0ce7e1f48770d15b6ca521eaf1c3ba3fba4c7600c546dac75271cd22b99c9bbc2e2dc2f1d3f85936e0c692150e3c45c045b389ff3ab92538ad8e3501aff324d8a163f6a0ff1676c91f398196b8d2a33ea37e4e03da6245e49c38fd64ccef898347c15b937dbc1e1263e0b269472d5cc15c81b1fc259dba1b63c704bf9ca0371187d05dff5552b1ed9c1f6288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc73502405abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b32a541dc9aede8050ad6648812a33cfccec8163996bbfab69265fbcf2ef361c4e077596ab5d4f14c7435038a9742be3e6b737f77900011bd2975eecabf38cafdd1153c84f592e126fc3f1f0f20bbadd94f35f1eb7f65990d2549a7aba8284127f38fc1c0df7b9b2919072952602cbf7174ee45ebbee63633b443106eed2c1c2ec01270d2f56ecea3e1b2a75e90d93be05ba29bbd650f57dde8784b3a68dc781f7075dd1b117312a9d8a06c31011344d9a01dfa69bf89621b429bb8f33dbae0d86192e3ee660fd39226aee0bea6ad54ddb98f9abab4929986c135f5323816ea52108ea80bab1eb868323ca07cb55c73606bee844de917a21bfbfa6dc19489d7fda3cc3da9332bfc4c2de3e80fe3391c67d16d585354e9f5bb7a35c091c3573e31936138aba397e4b359850d5fb9c7b4480ac78da8f3e8a5266fa48e5c79b6275532d2178e1ae70947695e9f02849f81419f58ed31a9fe1a7cbf077ace14456939132de871e518f6b896a160fd7b607ebe63ddb125f6e11cddd754c1c823ba96c723cc3da9332bfc4c2de3e80fe3391c67d16d585354e9f5bb7a35c091c3573e31936138aba397e4b359850d5fb9c7b4480ac78da8f3e8a5266fa48e5c79b6275530c625bb64ab2b757e5284ac022d5876bd6a163865cca8c33d1906267b895b0c202e1a0ad09302e70affa09e470781c2aa53a461958dd93735097393e52bb0f591148c5f0078079278f0071002b6a0b381757985374deeda3f8434a2ca9b57c9a084b1ad09d4a31a25a8669bc766a6d0a8480f5c41c392cf52982a235b6e118eb000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013d9ba56a20ebf966144e9b57a8eb956f338749c55b81838fe3c6802201fb6f84319158984f800818b8dc621c8b6de6de564390e0af79033ed30d33eac409a05617c38fbecad253a41da5e0b7b3224a0e914897fe0bc9e7206484766ef9597a0005c43187dd83b9ff4c5dc0e43a1194b52bb768b0d9aa89c5796f5a7ee99d0c6429d046df41a1d723923b344a4a33e191089ac7549fc9259c2f0e1cad0c0144070d1e7f2e0415b0b0911dd4655390bcddde29a06493bd2fb6469895c6eace7094108d2c3c7416e9333963126d143e609bdac300b17b1f12cf538520ba8c89f2ba3bc607a23e56cfc0fc6ef3d645576e54616d56f8a6e7c2a8a0398afc0847f9d616068f3cbca5c44bf0fd38bc6b658c6024ec821bc803bfe980b5bac296956152340bad9806b42d9054d88184b02dea8d92260c8f6dd23deb76bd0eaf3cc3db6a1489077f79d9a39e61e3c852835137caaf01d68fdf2224c669e41d2153bc8fa83b6046b76399e360c7b370cb5b82da8e7d512977baf726151c187588ae1dbcae28d356df4b6ae98e81752984502997165cd2c4062bcdc259615a016c3a93345220d9d89cf8e9a7b1e093ac45f8443d653aa5f84996a1ccc178471a53b7182a862346199401f400fa598fc60bdd8fa464a6459191b1112f0f865d39d1dcbf450529eb3df50e2d9d1483c04b7073b2f0663c54b40786024508a7a4e3f0576f4ab334f332497af673c656398346b0b4b53f7c467e0d1de7fe145dba6f798e50f04911acb02e546ef6ae608ac6da5d124fe9dfcdf9ea17d63cde2f35db46e1422ce93c0d8428cb9f6adcac3a829c14f461ab04fb9401bbac5e1490a845cdda35d5cd0c982502ebc94445d22b726c61eaf8d6a57e991506dab5db04c7d060666c487335d347b2fe6a7af1aef8b9facd2531b0c68365e380504133bb03f5599580a7ad3a15b070a6fae36f514a1e57a78ec403f7c14fbdb1fd51c788ecbc65d7adc64f1063a867e20a9c9bc3f53506d2cc6867874cba4ee9bcddc16a05f3b1aab2eecd0e6a9a9aeb645a509e5e96639ffe121a8280c2107b72125adba0453601d4d2511414f57c0b834872381154d15ed479b91a24d78f742cf92339ec426f33960d2024970fb294195240b0e274c811f3e63529ac015a78c7f4ba59ecd8a6a2efd2af2a40465f19008b8918645b814279d1c88f1b179b09dccf7631d3c076fafd68a82cfc8cccb748b78afccf881a0879ed4368411ce3b8d60dc4f0ce7da72df3194011c6cc3b12b60d746ad0cd3fff60dca9d469eae207902a5207be011af4ee0fce34bae4db68539e20e4416218f9855bf2a9aa6fab403a0e371616b30eb7f7111f0187cc4b674c2c51718f2687906cd308866268a419f79c23436e57b98f41a2cf37cfc028a170389a4f418596f3b77189c89f93ce8bdebf1619b5616afae1c3bd132db7816998f30f4b766b0dc7608c4992222460d99b43f5b02119af9057319538f63df414640beec935f678c8e800bf2c7a01d31e82e9193f0794d8c8064ceb3073c5ac8b33937f30a990fb3dc3119c62a373d7415eda72fb00400a8c3006b53488be8c296b67d30c025026adfbf58f553fec767d500edc3324a88e13288114216ee5170bcb78e2f86a3b4a0fa17a44e369fa1df9c43cdc0153e6d0bb02ce4017855decc6858f4763210a0161158aca7b7ee605ea1024f8d18d40b261e3c18133e1618f64beb5a16cb0db50d737ce2bac26238ca4bbbaddda3902759bfd6c8b1b96f4391a0d6ea97cc2d9a112c143984901e6f34082bbc06b1af3a312027952340e57b36eed5f486af653e8410590ae107d3b7668737e8039e448a53b5b79e10095f991ded6909625a967c5455b335108ec1097dcebcdb5d209aeeb4c8192eb3f29310ab81f56a0f65855ba9f17a1b41b22c0976e343921ece09b9e8aed3e402d8728138571c687e8d0c5fe7abf8a63d04e6f0cdfdbee4e4cba628f505e4b5d102b8c8f5fcb744b41e0ab029f96813b0251f5cff4db33fb86bacf704d42875c0ce8f89d097f3bdbcdeb80364cba43b4b771f07a3b83bba6c6be688fb1c5b55f16a1df07e5433bd567f382202d8fda03127403a4dedfcb9f42dfa2bdee9118e8058025a18a0ff3721199aa85c26ca5116243584a34e62f173e86d46bd3e0ef0429e2292e975bac6f85e17094ea27ee591f99d85e431b24e0ad5f84bf90fe1f7b058ca254ff9c5b0bdff70b8eea25a96d40d3f082bc8013ea1595777187c12abc1b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac24fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a60215507121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a7235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec21ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f30c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c80f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f046391b039f6083a3eb391590f50b21b260f1dcae2b9149806d955ecfb02b959fdeac24fc609f7c5c14c6ea6f0af4de4d9f0e45986d6abfcc8b863a5d80c16a60215507121ce29233981d6bd4c937a87be4b90ad9a7de5ce831b3a7b40effec1f595a38ede31d6dcc67e2942b36c857841b47176cf11dac64c767f17921ed13e0a6a7235a906cdb01f8931b27ee164a6b779d36404757d088f88246844aff9c9cbec21ca56f9324fe076ce4d811e9b5948862ec0651a438c4009952a8e5ed6363413f30c4d2204709dadf87c7a66f74195611cab432bf0012e8542e3b15240f0fb9c80f3b2ddfb8f62520783859908be6a9ee5792663d093a10c76af21bc8f0f04639132e874d9269da5a10d95c3b2141ac7064749d52480c901df5025a9b65a5c83614840fdd36afa8903e9d67a823a1e4c1e51801a66643be9dd09b1a27fa4d31263feab91e6ac886bb5fc8ad7d39f7382d954476cacad469a167e9f97bc36d967d0b7691af05116b000ab29c5bbc0ec1be600d5fb3499306b256b958a1b01e5b3c342bed61af12a068269a5db3057451efde070145726d01d52f5bc67a7ec63d333d5eafbc96ee19566bf0f54485b4c58d8048d16c5850aafd92e5e7db1c530647232e8c181273ab6072cf1e9c8a11b654c69644830c2f5f9948f98b2f5eb063160d8de0c8564e8b3678fdc6ac135c62295b66f230827010b96ebe77093f50cd8b240649b5bb4f4d871d4b6896d7e024258a7958f57c2ed8c48ee412ce7fcb8e220d3e0f4f64e777b3528529c553f8ab0fec08b3cede187ffa0ec88648ba611172230086247a469bcb4270f361e752adaddcad693d24550e9e2dd444b25ffba12e366fd69bf31349f99c35c37b1c54b8ec1ae6392344ecda412b8bb3f63a32c1752ce6bf9402cd9eea8f5df647a4c71b624ad41ddaffb8f877d56e0dc2d6eca15020055e73c43eec6fb6affbfc204f597fdd2137a2597633cb71d8be23559473a0230086247a469bcb4270f361e752adaddcad693d24550e9e2dd444b25ffba12e366fd69bf31349f99c35c37b1c54b8ec1ae6392344ecda412b8bb3f63a32c17507b84ef2185dc20c88214b5382af44e5fbf1d259af3cbb7957c71a8caedf69af2ea5f052917a6daa99c6a0e6a946016449ffae0bda0c1278d5e5d6b2b63b693e09bdf445c2064d1b051a48e22cc01ed0e8b9cb8f277f5679dd28c73e6290594e1e2ae81d2dd29c5aaf58f64f8a5e3ef676fa559019ed3213e06b767c9da3bd17000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010fbdb94e47d80b00c39594e72690003494eda25bbf1b259e297c3742706923dd3ec7a54e87f6d50568da743b2c4630bd8d37bf500e872e4e1c275a79e69b89ec386197dcb5abdc2f0a67527782f03fdc53062b18c35cb4182378c1c127a89cd22d237a3a12b3630a0336dda2b8c52777ecaab5434fc58c004db30e9e613a09ef26f930d6f22fb7db9e570a574b2d0692afdd65666435859664f9c69f64a76b933d44b92237cdca4feb15aed4c26dca4f642f3e3a78ffaa9752a970472f77bfc304523907e3f052ae73478779ca0705438651f4406c1a62934b321e6e5abbb5e139c82d98b13a960dca7dbafd9506a4acb4d75a12f08966e24eac4de237593159132399a54ef4f4b95d86f91e3290b590b019198e9a1d7042c78e67af4619c5033cdf702839ef497009c404fe00b1b04536e527cb8df5a58b7c783afba0fb94a208a4fd8febcb74e1fca4cf006fc2199b6e9a578630861995b2b608f94fa81a793938127d1c0de81a774cd0a8086038fd4d9aff344a0bceacc2bafc8abe60cf811df9ba35c665b5624f17d8544a1b3dd57055dc290c4d6ece429dd8df0367a4f22a621f5e27783733d3e79a40d1000c7bc07387b437a126f627d5b9b7e64f3e0434b3e8a7b30a9d0f9aa8283af50e04b0dbaf2c2ff1c07bc026cad685fd666f4e16d5ecad89e6677f22dc4e94ca3b59280d630f5e0929d84e1f91fe69a698effc03be131f420526b5270946e40e0990c45b3d90c1a2a3fbd56b5d111135097ed037a95455f20157a377dd68b0f4225596bafb3e9104566ba819ab45e308e0c436282c90b1572d2c094c013d649814f46de72a76a306c4e1a0fe161dfbd5aec7223319f63243bc2280ef8c4636f0b535a2a9b1197a7158c173ee9bbe309e620668330771db22d8fbcadd9cefa3f70d4d61c40eb1869c5c56252ce3628f5dca086d02f413d9cfcb502f6f0a04ad70c6f466e3f3adc26eef29721855baa0bb486ba808ad0bb61c2db6e2d7b839d14b4fe346b53146b82dcdaef35390ae1f4d230fc213b4d4bb5d26920d6554dc8113cb30f6d80c5747a636488849db49368e30e3191a2ff394c241edf20eb016b8c51544f772c8d66d0e556983a2e2c40d8dc91f9a0de00ed42a34d2566cbc8a2215cb6c40f6d467bf10f12030999eab6167dd65653bd1dac68d0e555569e04f6f57d2b28e3574b944b46e892f19d50701f00a2c2d3990b0e60200f8c3bd9e02270df07e51bc4bcb2dd829ef77bb57c6ecc116455b1343ad3ad1f6ce72289a3f0cf1c19f3c08e99364788734b2b53346116ad0a0c7085824fa21447daeaa45cc7dca8fb70877bfc237686ec6c035b4c753ef1c45f428ca366175053001a2314d4669fd7c12b1076c99ab774b4a37104b7a05cb007e3490aab09acb3e0b82fa5c37195d33455240b2528d86835acac8ad29d7b0ff54104004715efb9d4981396663691f54e52da3d70afa1ddef3b11171d00f54bf8f18d8edd49a19b99b8d9a6db2bdc15f25241d9b2411caf4e7933578b9e4aaac43114b3c64383aebe32819127ef77682d2ceab66cd4261d1d868b7f94b550fdaf80d706dbc76175de04bbbb2495700b40b1e20f1a3b208a63cac303e1d8c136c6839a88a2023ca96a66d426ff71a60f5cda39d09e0e804aae9f746ae8c64e8616432b843c2b588742e3a7e22a5977930fa8958828f9d759676baa89d68c767f59c2ae506a9720c8de1491c119a398ead306c2ee68de1e617736abc83ea6062488b0bbfa7442859c2be019e1990a62b34054eb8204a700d6235f03c87f4b6d0d2ad38a91926e49caa10649300d14d1d6769f2e3943357a5e261f822fbcf78de897f02b2aa1ae57ae62fe1b96dee6ebb8fd6f5398fc9486a3fe942dbbb31847f285c2429350ab905a0ca7874231188eba1c63841f1a163b1bc8ca536dbb18e579ad40b27fc6af819ddfc35c520bf769e4e2a886de807fa3dead2338c6fd39790cfc53a1996abd5c4243e7a84d388334f33c304d85959e66675cd1ae9fabd8bae11f72ee18f8f4cbb7655c3a0d398c5940dd681448dedcc5661fe8424d8e59f5edd1a1bd6ec904b6203a9d754458c81ea5fc424c36bc1134825356be592bcc92145762b429b5002228d9f67112ec9adeec6b7b5f468b9edd1408cd2bf3ebc5a5c493b30bf77b4fcd6ea8270bf7e5582ccf9d6795128519d594c4e3bb972409576517c1e294ffe5baf63aa7558ff0dc158faf7a69ee6d7a219a9dc4e72f8e2cbb469d72042ad6d44b85d8c2e6cf1da18bbb0083196e509bf2b27e7fb20497e0a4cbfab1fbd5292bb47a273d1930e25e7444ff7f0afb3f24a21d1339e0ce76ef5b34056214d63225799d3bce820b9427baa7028b3654738a93dd550b5470d9c337fbe551eb29cdda8662c4317df46bd84558fd76ee151c3600f23cae3e62350cc8041ac2682efabb60122b088a39e4c6a5430cb3c6d32233b9b385c5808e233017eb7a7197d105449fedd4f775c61b395abcf34e5d966d8cdb1c0bf41244eb9fe81485a008eae5a8e05ad72ab32177e13a4f3f7c74e2fbc0e212e7aeca4d838077996403f7151a571fa528d54cde881ec5b0c085af8693ffb2bcaa0ac8858b4f88669c12042ad6d44b85d8c2e6cf1da18bbb0083196e509bf2b27e7fb20497e0a4cbfab1fbd5292bb47a273d1930e25e7444ff7f0afb3f24a21d1339e0ce76ef5b34056214d63225799d3bce820b9427baa7028b3654738a93dd550b5470d9c337fbe551eb29cdda8662c4317df46bd84558fd76ee151c3600f23cae3e62350cc8041ac2682efabb60122b088a39e4c6a5430cb3c6d32233b9b385c5808e233017eb7a7197d105449fedd4f775c61b395abcf34e5d966d8cdb1c0bf41244eb9fe81485a008eae5a8e05ad72ab32177e13a4f3f7c74e2fbc0e212e7aeca4d838077996403f7151a571fa528d54cde881ec5b0c085af8693ffb2bcaa0ac8858b4f88669c11dd1813b075f0736229619f2c71ab50e881ae94dbc753232ddfefc2a94aee1970af7aee562fd7033c3b98c876b58fb7c84b07dc44a49a8bec2426b6aaf71bdfb3ef7becef4701fd7c48ddd54096379f07494432b3e78dabb120d9a6899d6b8ba2e95ad1ba6492089b890b586d57dd2000ad02b2de2810b9a9fd60693652db2b3333a6c18bf778e668d61325e69e25d3175cee5aaec8d1f3ab9c818b7019ff2af38225810aa0ced9279f11d7bb6bd5fdb922d34fcb89ee3ac44c8fa2bd5f655bb1f13ecf097788ed6fe452dff23942fdd3aebe7d16e25130c9d72d7314d671511286dc7c63ba70a6f3ad2c69ff9b9934f66601e89f4eb87d44b977e5f7d9dc8451c70686c6ccf34410eeff581bdaac669356723247562a74c0d699d751c4452860d81d8e6f70b78783550c923d3f6e1e2e57f77b631c25142f146fe065f2b794c225eb35e5e6699b01693ff2025239088d5968f6bb9195fd4230a1040425b06e116757cbde9eb9f5f59c6bb6da6ff3d7d9e8cd24ddc94847971d4facf87ee4a1c2336bff60430d8f218dc08b92f81d10147de057f17abe549424dcb46d17a65b20672a3fef6b96f4283b5bdf1bf29328392c5f009dc8244c23714beeeeb608f54225eb35e5e6699b01693ff2025239088d5968f6bb9195fd4230a1040425b06e116757cbde9eb9f5f59c6bb6da6ff3d7d9e8cd24ddc94847971d4facf87ee4a1c3fa55a619d63d535c420e506d77f602bd8fdc2fea70d92ec808b1d33d3d955d304b98db9612503e92443ca7cf18ce40d2933312886b225ff2f4405a7ebd2f86820b6503a8bc3e9c20db16cc2ef7b7e2fb237deb7411e8df9523508d8144d455c0f055c09dc496b55e205929afa3083161367fe1f7f333ba229d0cb0c82f55147000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000013fe09b2a7b9cbb636c3e1e8036bbf71c286bed82502c6a779d39c46e3e4398cd28e487b81ef2aa59cb55cb93375ecf3499cc12964e11847917e10cfa34b479e72481258db8323dfef2959a14f20a698ea5be08659071e32286dc1dbf76d2d7a60df177d352543d1e324da0b7b4debcdf1e8ca8c2fc2cf8c6006a13d9d6c9e60805aa9065091ce82966ebafdf61f58bd8ed6511ba7aa75d81c10cc225f7a5099f1c36fbfb00f2bf5b1963d92c31c94bc55f0f720ed5e9cbfb5b4431e601a82c5e0aa7ce671053eaac33001ce7bd4c77f27defba86cc0840215dc44ffe1354912a18973e4aa85b9efedfc1102516ec70a20ad50af95f87a69530993b537c067de01a92ce4798baa574c7bfbfea7bde8024dbca94fb85a08bf6ae99f566788d052c009032154aecbbb19e8444e316492893f5a9e6f773ff01c5dc73895e95f0d20702ea221a55e8a1784f03d48e3ca79ff4b6fa4287db15ae1623a025c31a1eb35509f4abb59da884fff9d09609b14ca72a5ed0808b28c02ce5f304d41099f2a7b823636db5703ab1dcd748411083287be900a02762e8a354eebe282467005dd82b3952b411e8671574f9c096b7b5ffa147b5d82e146d0d57dd187822c5c5fbfed70f1cddecf1d23ee920ee629c00b2a8aa4cc1d80284792274d80502a6af0415c53f76f15c754d0d00e9acf1d39d79d7c344c6f5eb92fe2ea044cdbc4b45d419ad3175a9a970dcf98610ce032e7b7501452fcce482eaa6ae8969d623a8b4a15bb7281efe5ce357c84999a9f5f22925e0cdb10ee12e64e89a8ee051561dbc90d2d6032282ae9aa6f2e9164b5fb86258f993a747b5a78c0a12caf7695e913b90219802468ec9b7750a9e304508aeadf3d15101a84852018d1a89b13ed20211db92e937b11f30ceb1914247799f1649b3ae04cf50aae2222eb355139d9a25515cddcf2fb47ac77571664eda291aa642dd392ccb29f9cd60e20cae42415e11f381c479367703b72014e7ae6c3407a2ea73ddbc35ace7280bf425cb18f23b15162b3fab1bc7ced06989bce94fb771a15690467dff88a1c122afd6c0b5d4177764039bd415cc6823cf0202eed28c577f713b6a4b2d6ffa5a25ef82ea7f0f0380cc98406a29e1c6ca3f676f5853b447695a956c6b6136e9319d2ebc7a8250001f8c159dc714c83453c2c8af778ce5a8d649d54bee481a83717f0f1cb012e024d947c4bf7524d1fafce0af398adceb4505c1268e4d1353fde9ba983f475f71073a032914be3f4a858bf6d93babe8a3996c77519dfe1b929812c0993026c55022b328481eb620190a77ce32b6a3be2e67b2441ccf39512495edb76fe94e5ef543df96aa79b73aba9d477dd4ef8da37dbf1613ea2be99c1338f759ec5d555a9f10afe65a12553dfab46ec40f69d02008288ec1be314a8bd60712436772b681cb8324ae8b29ec14391d672710359c0b8db0526198bbb746440139ea742bba1777bef0c637e5f738002451223bb3342b32cbbcb2862ed80b5fa89a466eeb164acb65c76f1f17c3246e8dd73a882666e8e16f822ede3aec72b050869e533696cab035ed85c1f7982b5b560714bb188a6cc63021b97a1280b5c05574bfa49fbeacdc0c83c0b5d5050841399e3fd3c4bbdb2f1e11cf304f6f4d1bc6d0e4fde150080ff7f396a79b9c311c50506b15dfb172a7fa4a4fee7f014bf4b5dcd7e16e74770161919a7d305615afa325ba6e002e14b3498549ce998a04223f1d27bd1bcc5783bf95401e8f86096a43f355d82d7614ce0e6df2d7972fe083a836361f96dc16c3a7fdadb929952b13ecd2393dce0b1fb57aa0c82ca6b16a01525444c9b6a20fd858db9f5575260d46187b1d95d413da017309b61eb6854a68b8bc86affd35c69f5d3ba00965963de82ffc1ec28af40f5dbb578c2500f23856efd6d2077174ceb49faf17ac1cf904e33ecf51fdecf36a3673cae0569e9b5e8ac9ddf37a71d369022b97bd692cfc0a13b05400945176bdd81cdbee19f8ca9817b3331fa408b1b82b59ae68a7f1421cccd40ca515de17f60941b8499a2d000700aa6a8d79874fb3202486c8ef790c12c08f19a8e5ce10f8a71c512a34accb2ebfdd7486eacf31da855a3a28b82cd01974a46bf035a081ac401b7bc0d438c138ab0b42109f065a2b65b4ae322200471721d9b8ddf81f743bf530c3c92566f6d06b5c43197cbad2f84e05b9421d132332dc171ad2023254abb71daf1e483983d3743c39be9a15bd0cb17f40bb82bdc13c6bc7584f79c77bf2e7abde09e7eaf2620f8aec15c3f2fc398c882675d2fca6039438a7b08638840d185421f618150dc0370e0ff389061f5fa0a8c68a2d035b2e1ae4b98d60e56bbe865b56318796bb613352ac479fda7ebb09e50c4d1eef3a11e51b46729f1a944179a4a9ce786944c113464fc1ad1e9cde234be0b2e110c72686779fc2e47b1ab89fc8aef7a5f1a87f2cd2694a385926dba9e676819aac1f197988603d1b84e547603751085a0e57a319c692bf149ff4bd834a767e6553e200a0561ece7667859b1eeb6ad63db84a150c511a5732d26f7ec9ed8988055c983f5fa9e13189987a64e1149529c247b60d3a47e1b21a26ac1a63436377faa3693c6bc7584f79c77bf2e7abde09e7eaf2620f8aec15c3f2fc398c882675d2fca6039438a7b08638840d185421f618150dc0370e0ff389061f5fa0a8c68a2d035b2e1ae4b98d60e56bbe865b56318796bb613352ac479fda7ebb09e50c4d1eef3a11e51b46729f1a944179a4a9ce786944c113464fc1ad1e9cde234be0b2e110c72686779fc2e47b1ab89fc8aef7a5f1a87f2cd2694a385926dba9e676819aac1f197988603d1b84e547603751085a0e57a319c692bf149ff4bd834a767e6553e200a0561ece7667859b1eeb6ad63db84a150c511a5732d26f7ec9ed8988055c983f5fa9e13189987a64e1149529c247b60d3a47e1b21a26ac1a63436377faa36911d68caa2862c78883eaee78094d9fb69b4c1aed67ae908a1a76c75ec489012536bc066bad4f192cbdf19e4a06169f22f64d1f342a06c9e1b7b20cb69f53d579376f5c90f6932be4e21e8bf4ba81788af616dcd0b4e8918429722fe8516960ec2ecffa2fbf06aae9090ebc0f4a5f396099e7dcc5407bed4486367ca93de06b20110e76f7b02ece9c3982ecb3f70fe1da83530d64b42225be0ca1b006d5dbe60e08a16f39db930aa46c04d98a0ed3505cce76287f52f1f5bd01502952c6adb8cf1a87ef68d7e5bb567fac868b158eee0225989799cc4336bf346c10bf5b624af20649f14fe91b305e9d3d81fd359391ee448e6af68430ee284c7dbeee81bd26c909f05442c5b704f241fd71377c641d2be4ff2d19d1a65d63a743118b73a8f2233a613834ed46c0f20fbb2de129cd6a2a0a80d21a19174d504d9a97fc5a8b6e591b7eb1b03b2495bedad51ec49fb3026e615d58d5d5589a3e786dc083b44e142e3f881a04691b3abed6a4ee7d6e267383a04b7313dff32acaa8364ed8f236493336ba16c4e10a0c9299f685933c30e7beb32a3a39f602d028ee716a92ea0d9df21a73ff6493aa3bea38ffa5a6af8a277cb45835fea8173b10f471d87a22cbbf6a1b7eb1b03b2495bedad51ec49fb3026e615d58d5d5589a3e786dc083b44e142e3f881a04691b3abed6a4ee7d6e267383a04b7313dff32acaa8364ed8f236493329f6a9800d003070cdcda76110aaf9aa7d36e81b2f992f2fbc193b97964147a82949cd58fedd1464592a82c0a259555dbdf0ff8d00b7d2f85e6c24fc2514f30e3d0fce52e8d5d063f3df4a42dc12ac3f72d87fa110c46427e42a8914083973c22fe08eb7aec94db1d8a0a61cdcd4d5001a189deb26a0b97b444cb0d94fa665d1000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011e5e5ca3d6d68cc37d95be7f9ad216d6f9dfa3386728f9f6e61c9314cd2a739a10710b41d3177ebea26696f874b807b7f63c97799b02175c3278e6a28729ae492035414a5b1408f785a513a4101d25de8d35a1cf91967f570b494cf548b712cc38b756ec6d7a07c3c9abc26c0187e912fda4ff8ab1b94bd2928b170854989368391b63e043f55a9e4dfa32dceacfd29ec1a46a74a5c060691cc4c916132d21590272298b3d7dbeaa10e0aa6b4e0c9a1df97f9874e6f99dc182bc4b035c6c0a3002a71eb0e5d213893cebb782bc7ff542bf9f17e4d8c339426eadc4e62e6dbaa8351698df5151ba7a4f92aab7db805f5e08ae55ce9f173d1647da725ef41a5b3409212357deeea463d84634616b2e455c701c277b733ebb5f06c076071cbbfc7c347d387f0dc314078def1c5ceaa809a19bb56870bb9c06f60f0eaa644d8b4b352e522d2d3e90bda2d91629cadb8fdf5d3de408a79a5646bbbf4cb395474e13e619667bbe394a278e2c476d2fdcd51133050c72b0195114798cd82972a952603f19c0421d72a90022a4ec52028dc8a65549639c675dd5bc013b46a1ebd1ef7e5909b11ffa9af7f5937ae0fbe962fdc6b87c1522efb571473adeda64cf8c4728db1e44c67e92d5adef8080670ac5417285b47ce544f191f8721149c48ce1ce3fcc217d296dcb681bb8bef0dc1fea3be8336d6c2296c26b242fbb545ffb6c76b68106f85f66e3129b1925c803b3440dc51a33647a103d52647c9697712be32aa2431be458d64fe7a417dd51e1e4eb29a5b13005a05546dcabc2225384e6d5410e430adbcbe0d5fadc3e29fc66f172688120b8881f108dbaaacd6c0d42feab8cc73f2168de2a48c3ca413954d243b44c3ceb36bf9932ea6f618ff50b7b2a45f035e121c2994e7d0db799844dee192bfe6c668efebb6b2b9c07ad45de1363eff5f1f11ded5e75ad3d41adee65fa47d01cda02b28d00b904e28dc84b0b68d2a5e3b7d816b1cfe0e18eb9972f25086d456b4b4979b594e0fd1954453bd7d1bf6798f0152492fbd0b99f1bb08c37feb6cd2461d5765b957d7a71ca61101dd0ab63859c361b06837f9c614ecd1ce30f5ea61ec3e8ea6f7abe63e266f32dd9ebdf9ce22f070b3c8dc9f2c8aefa5e1993d83b0751869846a068e389cc200f01f212ffe83bd4182d31e0993f65ab6232d5e9a5d46b4f943f7c7eb4ba5622559a3a23962a9add3b9912c3395ae8e1e194100b3ee4bd920fe43c65bf3331eef50a8fb53682682335a804fc2242d1fd07eb65b582927e8d4f4621a6359b04a9b7e400d6bee5044a275455592b86188c5dd8a8dcfd52f0e1234ec03d4cdd60cb5b4865bfec14ca1114bec47a8b355a78fe65fe9db9204c000e164111f01eda8be6f8f86ceaa380d017c8d4ee077f90a817617fa9a674f2ac640d03bd9cd8f5e0f6d645f756ee4e6400753b64d54528bee349d1a4eceb23f5002c8f12ebe652c81fa4823a7c7b766e07ba688a119fd96407f15bc478ca0ae4a50fbfa38bd6db9a2b67b1239e1e94902d40cd354048941ae0095b66e149d1241b3a99d6ae68e5d677b07571fb530bec0bc8332e37c8a1081d102be5fd16cb94cd41f80d36ad85bf28e75569f81300973569060a0c2d0a692932e24132ddcae677e5ecdbf472f2762e49f9966aa3efcd18ac9a7dbec42f785012585af2bd75836b68667ec4235fe1a57562fe205ee9db33f384163236e52a6fa73ee6425215d81bf12fb4c045ed696ed4c1d9ac1480143ea88ff9f4bf08727c90c6edaeed8c9301d3215240eb267ff1146f86ed917d1a2948471aa0c8e8ec27081d23afb4e1f554204cfe775d38c9bf33332e48c1d0302a966bc3537ae3aaa704887931bcd0b19022b2939a3c59b460ff50ebc55f4b072d4a0c59a5d418672e1ff69198450545f11210f4c39be3993587f81c59aad6d3053042527de7bbfc273bcad22e7692248b6a7896638194e277c29416a3c8d1fa2b9156d0883e2e597576460c0fa250ecb176f934eb8f97229e58da9feec87b080e2f92eeba6f16a3dc63818b7f24db8de3dd01053d37a70fd28fc751cda945051c2fa4e08f20e99f88d061ba12dd46ac60bb78bb76eb1d29acf11dcd6c12c7de027f069b45abae2527025d0be42b7f9ba7d4cbd85192ebdb8e4e558c9dee7f9132bc44dd584c65c32ad6554ec87b84d6f83c3f4f908fa793f680e3ebdfdd79fc095f58e683b963a33e36c98625e01739c0cf459d0b77770438d1b6860959ae253b36e87e22293239da1febd7ddc2d207efc9824ee6248300ef3b4a2b3c7b480104c91781ddd6cdc625e01428223d2df8327d16ad2328761aa9f1e6c1c384b80028128a76aacdfb21429f9b3754ce1a2725d5279a5982aa964773af242e68680117ed7589553204debd6064c8ab31e5d8fc717161afca4e8551b981c8d1979800085cb4515605e7a64d1e0814a80682c35655fb0fa3a6699c99bad8ede80a080237a34baea9fa1859b2e1f7eb57f97d3ccbf09dec65a68f7eff7257ff17f5f7ff29cf8596ae1d863f8196286748208dd0afade74e3240100f00a63ca58832280a16307a6951e279c07e69d798b7df722f7298b1add70ce90c9886f44777cdd7f73b36e87e22293239da1febd7ddc2d207efc9824ee6248300ef3b4a2b3c7b480104c91781ddd6cdc625e01428223d2df8327d16ad2328761aa9f1e6c1c384b80028128a76aacdfb21429f9b3754ce1a2725d5279a5982aa964773af242e68680117ed7589553204debd6064c8ab31e5d8fc717161afca4e8551b981c8d1979800085cb4515605e7a64d1e0814a80682c35655fb0fa3a6699c99bad8ede80a080237a34baea9fa1859b2e1f7eb57f97d3ccbf09dec65a68f7eff7257ff17f5f7ff29cf8596ae1d863f8196286748208dd0afade74e3240100f00a63ca58832280a16307a6951e279c07e69d798b7df722f7298b1add70ce90c9886f44777cdd7f73fa261b1844f304c485490d5e999b2633afba4d7b5b76ec065c640ecb11d4f893335039be7eedfac2e3ac623e673589a8852baecd7723f5e37deadf71fb908e205abe23651217faf5299b77ed5cc30332d338f239b3a0f6b8c8227bed0c9e3b3288a6954a2b0eb38bcafc7568bd41c19627cfb4406f89f021b82f805cc7350242b34f3b5c32fec58d1fde9006f2ca9ad4ee7bcedcbc67bf20323b940d6e4f9c4085fc63c2bc758e4cdebe5491ef1d312b8c5202a31dea6a908f8fe3ff7ae185f2b61aed5c571148a7ac564096d53c93c7f8b79906ed7509ee9ee34198ba18a5229fe10990c4fe0d8d457b75f10897c8ffd38320b2558a9e93d2329bfaec1cdcb26d1c1199f02c6dd9511f415952ab224894ced50c02360af85cdddc97e915aef37157f454e14797cdc35f834aa38c9f9635e541d77d2d75bd98654d3b7628036333c256ccd403b3d21c17f01cc6e398325260683c1a75838a8b30c828a8c1cea39ec7545c681b4ca67af2a046384bb7f8f82b129d1bc618951c62fd7249d8ab03ab1bc182a8f50046511b7ab409a1d69dc5dfdfcc1a8740b4011f92e7e18ccc72440930f7560351b151572858db88b4c59bd7bc7342f13d6def8bbdd13d3a6fd333c256ccd403b3d21c17f01cc6e398325260683c1a75838a8b30c828a8c1cea39ec7545c681b4ca67af2a046384bb7f8f82b129d1bc618951c62fd7249d8ab03da25df0442be8b3b878f477fe003148b647cc696260b5bf4f48d490dcfafca40ee2e24ae7af46019b015fa6a7fccdf90c0cc098957ae925d96f07ccdf661252191678764b6e33b0806843555161cad4caa518cba775e1b2013942e7e3ac3e63270381b6cf64404272fbdf12e2b9b12cdd15b85244bde6b29a6e2009a747e2b5000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010d1d003f32b0328e66cd74f1227438545fc219bc2a122603998a572a1d2e40531a4357eb921ab79667ab8c16ab48dcea82a3cbde07b417ffba57b5d5522c9331337bba61307c48821f3c40efd004ed4bde2007a52541fe9f74548fd9f2fda8e4333be876a397d00a7e7f739886bbd30c5cb6a4a7f7b793778690cf271b1dc0ec292d18346086432f85cbf906f769f61a7657bb68e57641a600d320a4e94037160e75f18209edfeef73d94fd2fccdae45a306ca1654e7c17a1842438d61becbd215d69d9d3e242b76e4391c2a414e84106dcff26ff4f0ff5a590a76de01197d7b1956357c1f3e6143f4e3d37de18e32712f32439770e5087435b11d3a1a7777c43e42f620a5fb98afdb43eab4d1a54e80d92f32ef0afffa53255c925521a3d158039f855a8434bede418526c49d85abea4ac9d8a01ddbfc7708d08ae7893fa60e2ec8f92cf08accc2367d525cc348e11cb695f24539cb6135e5f9a2481ef0890910026f41252233e1f13ffae6f356cdb343c28bae0315e8a19b1d6add61e7c0db39d2d866797ed09d18c6e387b6a6f360af643d9e818372eebb3e26eaae9ed6762e628ede598c6bdea2ade0bfb075eab3aadebde63b429fa005ded2adbc909c933210afaa6b3c4ab81a5ffbca49932223dfc54b1ed16d34ba45e89832cbd6d4b1377b461507691af8804d04bfd685a2d1c03ca32a01921a199acbd5c2483d774d1a72a524e8dc8c653047a917ff120f325d67cb79566aab33a21f6a0e23d932f827312cd5593e47f3f248ce578dd5388f7b853c27e3ad978468292dbd3eac15d9171870e189c9f8ebb6c30e5d3b010bc9f838b17a78d1508f910d298a06b3b75b1ee2192070da2ab9a7833741c9fde9edf1666b41a2d359b42a0cdb05f27332110f4aa9804cacfa7e5cb011cf1efcd2d32049406786953d0a881b5f2b169d8c0d2104848414e701638c8f7b57bed6996ec94e8443c0a8663a370e0eff4ea8b9a00577a9d2f24cdd4a2c58011d109623ae4e93817c0ff980096c2d5a39d578c5dd136a81abcbf51d10a5ea44821ccb7c89ac1cc3d788e791d270c527addf5139bc311c68133bcc0aaf12d9d9fe779376196aee8a797328a9d008701141e79eddb53bd626a48cb8bc5d9be59a750fc7fbf0f4983d7fe0fb6a55a30741d6a414c5742c15b6f134eee641fbd923bd1aaea6d1521be34531be6a960560267a593d6110156a3dfc665e576ab1784615870192a14a7fedaca0a927d7e5eb14a0c135d25a1c2318fba516e267c5fe6677595144c260ff2d4c00abd030d3011ec26e20391b21af7571dc2423ecee31f1d85df3c7489c8631134619621acdda029ce32b36991e02dc0c5a4d0c6718de0f9ba8c64df818a84ffa9c5b4865176200f827b4129116ea535f05c9898473adf5152d4c602de71b93d8ced8a31ce26e15e600dcac923d04100da26039d18722fd89181b25a7d563292cbef6ee790f732b27d941d8d7125d27697515563dc26681e7cf738d40fd011d02a9ec276ac1fcb4d92d580ed33d4edf7a57e9c475d27b00b8012a24cbfe65c7c60bb2495a903f88a9115122941192c9a7a6d376c3d8b49afa7cbf1463ae25ad23045557cd65cb19987ef1467e0bdcb09b1535ee9fd97ebc72d635d6543afcd591fba260eada976cc6285151a12f79f4c065f72b9432b95dad8a7f957270687135522751572b73b71687325627017d33c805104954d52d30569b012ed17b42737fc6d83bed8ba350ca54c205ed3ebb39ac2c99f78a170d7c98e0bf94bfa35a031f32d611fe453ead628d3409933ecfb0982159cb32fc540195ed116f5adb4359a1fc6659ace19cf20566eb9a412028b229c566919bcb1f8f32f6d6b53d4e60964cc94f59c5dbc99c94ae99ece5194d3cc41e76b81a7eacff222d314718bd5e2a5bccaf1ca0425c106ceb0af836194d3cc41e76b81a7eacff222d314718bd5e2a5bccaf1ca0425c106ceb0af8361336cb3c1f89c18a0ecad5a7d8f4884cec7f9da4fd1f60bae1772e33664b9e1e39977aa471cb55fbe73796178beea2cc175f1ef1707788ed7112e35e1e8464931139aeea0b74266bc7b4c686ee7e6b1899a72bc880f8e847e02ee51f28fb678e13caeba64198c7fab5ae87ef6c6628466d77dc9b502500bcf08451cf3efd18932d6ac108893cf4bb445b3cc0aa391511bf10f50fa3f375f9e6ad65a3201a80273a62578fcdde45b6cafc9ee57edc6b1a4fedd29f15e083c8740d38f7d52f621335eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5600a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa10da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c8525044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b61584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff772a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a35eea181928f3140f34f1c63b78d648798bd81d2d822d00e3493cdedaec3e5600a115e7e6d70cebf0cb0e39c48729b7889891729312a290d649962ff513c1aa10da92787dccbf644c08b8df295c2f6a57299252e137a2bd8a22e41f069d37adc3256d878233409bb3f74720d6a3d095aafad73cdf5d2cd42f6feeefc962c8525044dc5a74ffbcf57c2b9c5bcecced13b1ab720ea5815e21f91ba18c51121664b3bb23a58b00430a83d463a4313312ec5078f7811b13716fc07731827eede99b61584dc448feb0cb6cda0dcb0a00a16278593a493b86d6a9dd8a27bd955a6ff772a7b23bb7014f349325f234f5ff5e9d89cb2f46850df8e7dc08ab513aa59008a26c0eb7dfe18461fa0793ef46a60d39272437f52618c85fa1d2dc5e42dae395b291273ec8c376366733bf3821141216e0ba77ca42d0f24024091ff50cb578fa13319a2a83a6dd65b246c9f7d539b67b09c3b0afe9bcc31f641e4746e726732ac352254da5cad22b2bb31a255d43899f5be174c33d783688ffa31918b2d0e604e0e21a3242b6971d3fe4ccb9ef696b9135da7bcf4fca2d262a5eaa074516d97dc054d2413280ec17c6620f5d9331f6279010efdd8b39bd72e8d5068ef8a9e85021249a9fbefe0ae6d10083758728c436f632e70c3dee37c0fa87bf17cbf10fe1d040243d4624103ea078037d2db2be41cd84ba35cf91ab2d2197a06bed39137112393439f711e2b08f75b68f05cb3b276815f865555ed2e10a9d53c730721c23609b2b29c8babd2a0b67e37f0c6846a560b6c78a30f0ca75ad56ceaedaf1344f10da19af7f417d8eb69f248beb2644edf3b290f5bc8b5ed5b52594d3115ed7ada2624398d0ba3a6e2b9dfd9febb35b3873f9ce34b46adf497ab23701e0e96f06a262571d9c779e3853b1a218e4203c4bd360ea7a715413a46d34827875fea93fc21cb3739171b79e6d1926a281a86449c7ace69200e0765a4f796d0fe079a10140da19af7f417d8eb69f248beb2644edf3b290f5bc8b5ed5b52594d3115ed7ada2624398d0ba3a6e2b9dfd9febb35b3873f9ce34b46adf497ab23701e0e96f06a1bf90a1889423f7d0d781be9bda36aaff0d5258b1656ea0fe114fc9590d8da4527177fb2c298c3e589cfb206d276b9d07679c8d79643496a368a65eef2d2fb493baa8b5930a0b9898617b57e6630c42e29d90a9259c187073aa0ce5f0928421d1ad4c5a96eb27d29759dd9ea539f7bde9c2c9e9e0317560410399d89568fb04f00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001093344aa5551c9d5f5e550ed013a08dfbd10410b94fdc010412822d567e884b9215ebba77b4db36265d82f216ebe040b8e43301151f85e4da04175b72540d2b43dbed5249e75063b30ad99d106d9530cc22653c567b0f4e01557b039211155c62bd42515e3b696dd829d945b17c664461221a67dbbecc87c05d9d07f5f0a7185200d21315a898ee21cc4662f5ffc477ab2baaa06ae28764c04764f2aa609fd1417da6479265927e185d2d73d372bff4f2e873a95359b8b6a0f37ad0179950c3425cef83c7d3327068ecd76d87c5c57d360343b129e81ea96cca82a2e75b4d5f218a741d5987f7763923aa3a9e4d825a3c611007d2d1a3fe1c6dc3b4f63013135108255465a529a572ae1b1b54394dad36846488042a56ec14c6fe952d18df06905a6e70ca2ab65100f014f978e9796945da1c77551e3f0a9dd6e3fe21abf91432f1b50bd9b18486bc4d1ad07b8f37ba24a5eb2749bdab1f57267741639252447355b2b6332619f6e17c56f48b51e1ec19c549258d3efbf5371381317cb587cbf1c120860c5b2f4dd377e5bb6c685c77ab528d9a3c8445a577b48155d621c6c51170f6423726cf447b56acc165c82efb98dc57b8417f3660477fde88802ece7583aabc6d365494c3fe7a8b4b601d7609bc1d7197ad8ea2883b415324b5011208f2d00fa2f4cfdd0530e324ccc8d77190144133bfb458fee8ce0e5815f1958afaf16f8dd3503b8f3a886f6381060bcbc3f08922007b5bcdfbde3a85380fa7a39b708b38855ec1ef24871d5e05e65b5151207792f3d2d606d35a27411cafe2a00f00306246aae23311b3d68ec6e942727bd2eecdd2f46c917a2f188697e15467b181ea68aa63202dabb517b741ead5ebc7419f2f5f139d5498aa4d31ce2c27363262b92d8f8fb08ed61065655fc37c98dbf66bc23cfd92a39d6452ec97465132f5619ddae318bf4dcd55b17f3fa4e4d99ece632e45bff54b54e313e4ec274c10c0c0f3cec39d5447ba79dcd3f56481d4476689f13e26a03dfa79e41551822693b412ec078961936ee31a1f5c4f08b6f7808883adc2b1dc794be6eef4b647de38e5820cd61561e622fbf4729eef4a6b6262af44089635c720e09d25fb6260a60a02731fc43cb87d7eedffac21f8ce47604d5b52b6f28a05bc408c76d759890a022893505db2eaca7cb6c118a0773a439208666a25ebc401aed8634853835bca17ccf1a7a8e3eefe81bd012c1fcba3907be1af3eb3798a5351c2f22196f01520756063f791c9a36cd2080991066a02005ce3bd9e9f0adc2ed35646d789f172e818922179d60261259eae4300e1035a637144d282b386114aa91cd89a1ea421aa9b0be3edb9eb85b150517c9774aecaecafb4257e4501c81c4a7bbabde2660e5ea3ae825ca0650c0869e913ee053a594ba70e27f14edfacd1fe986f6450333a380f3031d575cd005ed347d37490087b7337d03814da192397db0618d95092f4370928d07121e6171151738ff202a2644f5fd60e1b6ea1710bb69bebe72a1d228cf17893cfcc337e7958d062f5ed29dcec2feb3009681f2ca026a5512013888cfa97bad061f655fbbc7963ae95add872fba10115aee62ad7162c4d708207857af60d77327c25397202a42f211f61cc3b7a43ba4c8900e38ff31a3ff7fd68b05b1bc0b0917616564587c5586670c03e25e4876314d5e8d82710537d261878f98e7f2037f2a8885194bdcf7f5d6079d10bea0d29a9635ed4cd029d8434a775c821a4e16da3a96b2855133dbb7ad638dd547d4c769b5dbc814147f8977e09f3caa55b3d95f07b1dc16bc129755a8ea24021754ec94a5fabca5cdf72b34a66ced589fe4fdc105a21c604c153979d4d5b4169bc22e5da3e920853c172c36774e5abe1b2aad200281fa11cec3160470754e0f11984bab0e0a38283e1e63ea8fac5f63707f543e17c3f1468f9773097839a306a1e1e8dd6d6e0213cdcb86851a96088ba8cb7a843a49d1d59f338127fda5bf82217f116db50d0be89b62d5dc5b85e022cfa092d83cf2c34064b11fabd018c452a280ab136da447d4adae8629dd21611d8f56f6951321004ffa7604461606ad6cae91468b08bd4a3bb88dd90406214dd855fe13a610f4df5397033e67469c4a07ac1a5e2e7c2d269c004fe4688e0de28dc37503b1281314f0ad7c196b92dc983413b825753eba9d072f5e8ee73470b2612ba69b3c3292e1f572c5d814410be7311ecf189116e8baa3a73167b838da308efb62ad051cc48e2a4e4646b4c815ae94927e28a90e83a57b3634b73e1e3e8f9ece560ed8233b71d5b1b9b94b37ea516b6d81d75713c2f380d31841dd7aeea14e31a9f1290fd6c6d3875f6187e86c68e6dc76cb4d0405096ffc6da1ff64de6c4007ae4a363029392c78a09e7817939719238934b31e418f8c0cdf571c344ec4acf851b5cb0f31e221a4dce7a78a1e0c824e51f880f1d29633e4d730e15f2aec532667730d30ce1dde5b23185875e1f37db1ae077f307402c82475c83a3a024499d9988cf40bf96aa838508645b2963e8b8799da8496d656076ee6fb4b42a96cb2c0053f4034069557c7af79ba4d69c1747866257b8b7042f49a65fdd05683c43a3ffac0c11cc48e2a4e4646b4c815ae94927e28a90e83a57b3634b73e1e3e8f9ece560ed8233b71d5b1b9b94b37ea516b6d81d75713c2f380d31841dd7aeea14e31a9f1290fd6c6d3875f6187e86c68e6dc76cb4d0405096ffc6da1ff64de6c4007ae4a363029392c78a09e7817939719238934b31e418f8c0cdf571c344ec4acf851b5cb0f31e221a4dce7a78a1e0c824e51f880f1d29633e4d730e15f2aec532667730d30ce1dde5b23185875e1f37db1ae077f307402c82475c83a3a024499d9988cf40bf96aa838508645b2963e8b8799da8496d656076ee6fb4b42a96cb2c0053f4034069557c7af79ba4d69c1747866257b8b7042f49a65fdd05683c43a3ffac0c12e26f67ab7b96cbd66298cf342505f2dedb559fa4be2273dd01899d6c3abb17105f957432b4d66c307dd8d7a9f77a65b49b53376dadd9b2290ea826fd6568a54328901bd7dec480f910056c170035df1b20463fbca533c5bc3870c994b703ff41daa6752bf51b20fb23e4f23815f9c81f3ae94b116bb42dfb669e6eb5956049f00344d74eb36915306adaf8e9269821e7f7d18fdbe18f81e064f72ed1f9b4231350512464b4176111b7ecf3178e1c6e6184b4c23c0e9cf8ce8968bfbfb15a651252145f4002eb00160145f0eec0955828f1a4069016d1ba01aeb4dc2c8b7d5d9318e6b93413a1ae9d9e25f87b4ff2113104ee04abf7d7bda6215e3899271cfa9256bedfdcbed166f3cf67200d7192e89a3a7176b008c5abbb6eb7fa995de2f2c1149a31f1b218ba1c8eef40229e00b9f2dbe6d8f3381345e94107f4c3810633a2dc8fe7fd0fe6c894514898011ecc3e0e47cfd46463f02f7600715ec21d283ef0c1b7842979820f82613e9aad8d2aba29edba2a09b2cede1d088e81884ac08451f5007c7ca5a4b3308d61c4b4dac42e0a4d37401fc648e9d9ebabb69f0e40e9e1c5c416a1560e72d45e42361df28bd22e4e2d0d417b41b1951d8c791d053710f2dc8fe7fd0fe6c894514898011ecc3e0e47cfd46463f02f7600715ec21d283ef0c1b7842979820f82613e9aad8d2aba29edba2a09b2cede1d088e81884ac08451df43507dea22f3a583eb27914338fd90d5e94b243086826d631eaa1fe63b6542a3a94618e653389c755739ca719ead12f269437235c37fb8f9d075b636c4b6c0332614ce7d08a2f70578ff2630152ffc6052c2897ef2f2e4c848f8f853d0a333a35c7d7bbaedff8d16914e3639770aeec01c8e6442b3f836f033069f743e00e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010da2fc30f5f1da78edfcd3338b6c83105390b140e43cfb43a5d1af52483e3b0629302da82482cb813c829229fc382f35abbacf7a85924e3c6390dfbe079dd7e53547343398ec0b810500359a12bd7785629707ea6eb263b608a4ef0a6caf11250adbef287e4208f7045556b18a42eb5417e4ab912396740c7049642de19f3532263e9e0b8bf9b9f1a757f687c9680b8f8af213433e00d7a89067a2c4db9e4de1348cd82ff10c1760f07e3dc9a80395ca6570142e4013029bbf3f8ce6aa810cb01e6f04b71c89f8e7826917560785cd88e4be148b5498614a6c1c2a687dd7e61911dd91a0123e06760481675cb9afeb8b64d372e4d45cf5f17bf2ea1a4084870a38ee07640f46c71664a859a87dcf81f6fa52ed0adb17d822a8458ea05005dedf15eb95ac73b1d85c6d7328443e8cf4762256306c64d20af914683f621d88283b1495c0a20c93fa6ba10f060d00da4454e81ea57201e8d588c5d9a25c2f4b7c763f9fa3d8bc1a9d07d6aa148456a6c489d4611a8e87f25990955318ad96dc775331d007ec2fd2f29200f10bfeedb8c7df886f3656c5852cd3ab58a4be694b017b1e7c7a36421b461f040d1faa3b6ba725924626c946bf940c171111c002c754b10740d19dfed2a4c63287768d738a3d4a1f116f8ca2d2a153ad0e23b219f504873e42c19c76463767af3a92f8c191df0b608f4fc25983a0d1b7927cdbf07edbe53844f67fe121c2924504f4fc87d4b85f0bbd0ba3ff13a50623537125170ffc23221a86d80123637f202e6d0c723ea132fc17cb74489bfe30e034de464f7401bd31b7c22c5b1fc4aa24101c7fadd49a3af1748f3d5bb4dc4a58f637a633eab78e3311452ace09b790e06cb0a9efa5d3288d4a47977cad80abccb2393846922c680259de44da58f7e9596ddb898ca45714d5544ef75917e520da2febc41d347a7422ef5938829f86d3e6920acc0afef66c46be344f1c905c09a5b4010849b1907c1db47217c00f55794941a86b11bc15b0c9f267757c45f3f6a1108b547e568b9e2078c2a720ff8f5f548975cb7af55990bd07fe04b9cebeaacb446c64303e45000d6bdaf9d70465bca58479379e7ccb7a82b2fd0336c3ee40ddc054485e3ef808042ea0f96cb858a8de2a7ea2f841c1976ed834db8f28fd4d12072bb3453ae4ae287dfcba1fa8736043ef524f4006628e464f89f4dfdfdc9abbd11670c380dcf83843a27a7be7c9abc4bff7fad92c4b1364a174b7b7ef70d973c982c21f3c710a3d0c359af13bfd9429290520a3b2b16bf5960a05d3532bb12f8e7e601e6036e323b4241f6a461db452977c31fbde52547d77103d014850d43e26fb27de96483217645fb8957970d792a5379fb1bcc85e15b5fda78d3c86d0649ac9abed7ff9c73b2214aa6ae258a5baca24ba8e2e1051e2b01d731b5ebdd9abcd0625c6ddeea02796019a40f8886702de808ca43e81ce321ee1ac90f1c873f3dfc4e09905221a3197dac8ef94b1127e3101b1ec0a795d91205f7761beb2bbc3bc49b8ba42a16311f305bf9aec636f5ff95b4b49901597de08615206713d5456fa2e0c63d9e9700df7af33054e4eeb9605e838bc8c88408d52ef5c96e7d896b56630265ca9ef8a045b7bc1c8cc4bdae9a6071e4963e3bea62eaba23e6e7302c3ccbbe1a29ccae1205d81c787cf89f7c8ed0283b41d51dc6cb84f63733062b0ed3cee609cc19b1833740d9c69b019c85bcb0c4eb097bc0608b14c587d64a29e7c3b441f5374eab93a5ff36f23dc582e7d56fe6e944a0736943c1e62d45dd7c9c33deff2d6b3705520a264de5ca066fbd42ecb90f6a8306519119b5080a9bd8230133317dda013d73dad4c91f34e2561c3f7dcc8addba06fc16a4963c6636e4c22c22739c245176e0eec0b901cb8800c0ccc9aea12458d0495da5f32d889199fddd93505aa9f2f5514e7a4e2f902daefd6fc630071cb5bc315773d745c91ae8c3809d5bc904a3a3834f318343d36b7701694fb1cc747fda5bb1d9172178119e09217e3a7d96ae2a31d75b9dc32be4dfdbf17b8c0d772c72aee4f8bcfd20d6f2eb6f2f2f4157512751f8abb29df275828c3ad25beeaf5728c8286c35f772cc635e4ae5c18f62cf93f0b02531973cd7007e6cc9f1c35fd94a0dad9840eba0bfb04bc6f8b9b7b1526ab166d4f7b846dd37cdd6de15d7cfbd74089ba6f679ce126c9e7fdc8ca30ca5ac70a45d3b1781f27cc9c58bf9cd66f92ddbf2039beed15f6a4f01559c8eb03ef700bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb0bfe91fd2023cd804d84a4c24cd1b51bcc3a6ce55575dc402480ff4f8612502134016e02dfdc327fb27b5b3db32e4ae4560c2c16b3d71cdb74ac319d79edafe03bf8d9f1a0b30381839737cb8018898afd24207aab4d4d40b684fc8d9e5b90a50407260e5f4cfc7e7c68c8347fe77675252278815dffabdae2a8345f61a46f5c2bdc41b8237f118791f416f9807aafb6689a3e75334e9dd52be42b1017c9d3351423be47dc80ee786e0be9067f855049b9ac5a86d5fe5b466d4905dce8362ccc1b4d4898b17b57a5d9c472df82656e8fa42f6d55e4a229d70fed448976f1200624b2b7674e84a85a263b8d207d9a91707e172ba624aacf44893fec63890edffb1663e01a2fa1ae50abd4ba011e76fec176614b25d586cd93f115fdae36218ac53a2cada481af7056ec887be3f01208ede13af2c20603e481f26b4b71ef0f216211fa42639b21ecaf1ed4e983217b62a6709fcf49a5422b064a6309c8e2c557662260f666d094d1a6403be2dc098fb8f586eb4ad8166745ba69d9a8268d67ce95224688bf433df1ae089e293b28e241cab5fcd9cd6a27caada7343d9684dde77a20de236c8d5a6a0e502a2e3ffe172e2714300642e4b9f8986569c7538a0b81fa33ee9d35863311447a1f0d41296828ef14e845415c2e1024c8b39e27624bf3130d97ba61a8a2316eb79f39a161619e8bcb7a52eef1358e006dba79ce51baa33c10c697823a4c4bcf76cef00e67a7c4573c7f2b17dabd0fdfacb93a9679d4e8a211bd6a4c417911b42b7f4e8354b2a758409284328da8c61546bbaa13ac0ab63936bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b93c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db17a1dd82353c650035565c7bc00d9e983b457e8c8e8400815db42975e7191dd723725bf4adbbbe02d33ba140065e3e1cdc66f45df62ec7fad6156e418389100c36bb374ada31065149e69401334dfb07619ac31404a53b944e0a6da75f7c68b93c251e310574c179ae4a9be0470ee3477a2241eb3eff4a3067a3bb058e5639db16e08890aa848dc2cf6ebff393973a719895979a2e346a08da82cd7f791497511f9a4131e99449698ce8ce1eaa5edf794bef39d7950170d87650c3653eec76d50bba2f36522d59ab82ede2c4985d52a8c1af4cb45768d4d34000a3c4b4678bc92de546b81283d93d323202c8cc923733cabbcbd1b161d0388443c11d1282ebd00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000119855653a92b5b37bc84430dedfee92e5fa2a1627ef010cc358ffc7ca795f8ff10f91417ebc5fa0a82c0fc211c1ffd54bfedcb8a1eacc12001db3d3dfcf6410336fcd7247b582bd4755c005b613b80ca2f8820cddcb43e242679713b9c095089132f24b896d0c5362ec7896ef900a2aba3d25adf53f77108f34a222c4498678214299ad45294b6b41dddc527a1ae46013a4622388f6d3f7fbd08cb5da0b408e8111e3f7e1b77c40285c0545eb39b341c4a7f097d9bd852d41d534ba5324d57cc066debc195b53304b7c8f3785ea52c698fab1c33036da1aadb1d57d46a57fa0b1b55c2439894e8561eecc4e7337a6c428414211cb9e391ff0d1e54a1dc8492741382fb675176bbf903e404bdded09f4a79609c13f8dd0adc9bf398380d0643c00e803f15245b8ee7e24b7a7c9b475907f23b775017e95e80844dc3591d4578e518f961d2961eace213ddef4c9fff847634c6aed28ea2b36c47e11aa8476227f61e1a563dba60b85dba030b80ae9ae90dfed627a0c3282e96dcc4f6f5795a0aea303db71302220fdc36cb981571a7a39988356de91cbd34414c176a4cbfbd0b1606547e6644a457d54b633df37048afd98c0a7b53fe4373e2fe2654b7e11f75890f4a5c550e927e552d2bdfb5ad5b579ec4d13e605ba0e8be836ec282edc0bc8c20e9dfe79ff700f343168ec6a16ab1dfcbd35a3498546dbd3834c9a0c16f318722b5bf8602797964cfe223f7f39caed228cef4a518f6375ea58a12923cea8cd12d374dc211ef11c761695eab8bc0a9a0aab656a0122a5f78e1d299ba93419f1a0d1a3a23a33ac356a53f60b4d8d4635586b2e25f81d3fe22d36ae75e7cf442be2e35b50d9687b4c7d820a14f2e63abb3597f2ad46eeef9d20d6372707e81089a184020a4fb3d8a714a4f626e3ea5bb356c6ef4c6747cb8aedb354a201f92f6e62176aab83a16b5378cbd7456d7163bdaf3976424bdb7563de4371f703e5b6e3c05a54c3ca90caaf0882824ecae0496d22fa11c473eb0fa671156a4345449255933935e3d12203a4564b3f7bd3e5188139552f235daee4ea1fdf45a81915341650b88d5843256b8f16a31985616cb634b4a614bdb510b92f6e2c2d2268695cf210ce82eabb395d8486c049a6304082636414c908c415de6ca846f31620d3fe25903aa258c4f5cf8008e3f972b21e33b538622309766d0a7dd0cef851a07dd74421a435475fb6ab1e7162ed84df5693d343dec523b4069c64b9c89cd0df7fdfa610bd0cc0e4bf690b74cccc9f4da3b379896be27c571590c67e76971b5caed42ba2bac1db6f1236abc4a0927a957c66dee1dec17d2890ebbec9617ce5b2781620303d3d397302499301ec0ff0a2f2a6171831491c3c698372840da2d0655b68ccf3cadec78445ae88b4e7beec24095bbdae8981bebc7a1b4ea4fbefe3effe7f40f02c35d2cc186cb97ee70cbab620a055322aae8a6337a853544e15a280f4a93972f17598b444349e9adba8bb649ef188d910c0e3d0b79989f0f8604fcff06ffee3220e40b6e3b8bd5b56e9d049c833f29339266b485253e9871760ec1a5c9b1522a0cf327b065fdc58065610095ec4a60fd601c623a664c5cbc801b45440faaac201a60c7a9c8790d2e4b2ead49dbe70a7267da3683781a11f5f64e49c64a1b472c4e2bbf32761299b938962a6b3e204de7e452718bd691428f31b78e05d97c3a3d732743c82f5d48ed9a893e0be8edbac1b2687ef0af6b353bf98639ede4427f240f99396e8262647d1ba5ebb951165380ed43913e404c2172eece648b8f431a0e9d13f24d8f4cbadaa2dd0b29bc97e0bc6655051cd7ec595ba8de236553f1b63eea4050be3b1b13be6c78e3df2888e1650abab2218939e2b61702514684dca807e123367bec5811decdc8d749c29c23b23750bfd52fb11e10c429b7d98d419a06bd7b4e1dd77eb398b7f72bfd3e106249cb9737d11d912acff5585563a76e991bfbb9289dd155b42171679d712ab8ff9c4333bbd29764c3031ef81e91eaceb23655e9153f46b97ba2ad0a01a65b132807b0cff3264c4050421e3033d3e4307c10c685bb1338e347aa2c5765e3d9ec3d3b00716a4ae009b3c2120d02fc58526d3db2f9de3c0d7d640b53605e1cc84df1907e3ee914a236e7832439bad289fc523378d8b5238ab2438e658a8f45f4a8ec8f007da873d23e81eefea7862b977dbe26660162bd1cb7ec1dfad6a884665218c6c67233f897f80a722d9017bbf94e0900000000000000a012759c0215a1a86702a2500237030a7e03d85fe9d051c66296b7e3a93b6477a3049d2c7dd3c3702c25deaed9a5c26aa3cace293c144ba9fedccd9d695fb5c6fd1a7e99fbd4f431e180a0d561519c950249514312d1a144922021cadfdcc7771435c685de832aee99ad4ad16e045196e91c27e77c6562d73408655f1ae8dcea0612759c0215a1a86702a2500237030a7e03d85fe9d051c66296b7e3a93b6477a3049d2c7dd3c3702c25deaed9a5c26aa3cace293c144ba9fedccd9d695fb5c6fd1a7e99fbd4f431e180a0d561519c950249514312d1a144922021cadfdcc7771435c685de832aee99ad4ad16e045196e91c27e77c6562d73408655f1ae8dcea062a0356a4972f0421effb68d4d5f6f5c3bcbe7e912063ea82541e548f2076393f13918014f2a51b817d20796e29149f424ebd328958ffbc5a54b6f83420764b9a3721ae20720e35dde1611b5221e5d51c2766d5642f5c20aed5e2833b77e216bf192371b9e610ea9d4c8a8b7d340856cf3e12552b07a7fb1752a4a6bf4dc24a5b266dc96aaeb153895cbd2cae918ce0ba2625002923160c55f43297beb9fe1c5408a36e3187e124a289371d2a7ce9833f837369f6cffdfb17914199a72f6c4c403d2b7280faa8aec9196a423095f6cbbaa781ef4c9ef7d7cf8c845f2bb4c45b7f1319ad595d7671b21481649ebff76030bdf73b42980c43f69c02cacf10e0059b2af4bd3e350157c6dc4ad17d71d9d09f0365bbf4068e4fc1c65be7804e9bea392cc1385dfc4d334710cd10d84ec95a56d670743278a526281835a48e83c7bc16198ebce1e2b0b9e60b09b7445ce129128b765f67c20dab54dd7b0ec250963e1536b662f8756e669522e1ef8af90d02d8da02cb2774f670714b0c1b38750e230519f7996275ceb858f86846647bacafe3dc452c066e49770eaaf3570abb42bfb33f97adcf90b2e05fe074ffea7791ab775345e1b1f316e44041af4994f1c01eaf2357efb434a2fde9aeede8771e6cbb28df384a5238457f134f9d721b19da57292ced3026237c22917efdbe58378170c28640e03cfebe9cb2d8e9b7dfabca09f124e385070545ca9c812a55aa1ac11c99ae6d5d0ea07fc9e3c3e8cda29fcf1cee3e8fe80e82c9ceda4c6b9c9fd182a30a8332ecbd2a678670ef1f01f5d30b38ab36b662f8756e669522e1ef8af90d02d8da02cb2774f670714b0c1b38750e2305198ebce1e2b0b9e60b09b7445ce129128b765f67c20dab54dd7b0ec250963e150b981816a940df8ab3aeb045431c8e77922a3de0a2667242b4f5b4649926663108778f2f4bfc62db9739a4bdd5aff1ee913927e51313f78b76c04e60a62cfea5390c1e3b11c180dd00aa36dfc93ff970c62b664ff9d598b3877f8f82c71510b91739019f465d9f9e2d416fef8cae327a9f4dc43f3d2e8312a1079a77fe8f50610b981816a940df8ab3aeb045431c8e77922a3de0a2667242b4f5b4649926663108778f2f4bfc62db9739a4bdd5aff1ee913927e51313f78b76c04e60a62cfea5390c1e3b11c180dd00aa36dfc93ff970c62b664ff9d598b3877f8f82c71510b91739019f465d9f9e2d416fef8cae327a9f4dc43f3d2e8312a1079a77fe8f50611477735ec4434b59005bcea40822ec5db8cd6e1559b47efec9eda5670f59608a373f4b7e989755551406ac5cf738e8a87b1007ac673e5ff469d05dc761865ed514a0e10566701e8d6f1ddb86c994ce9401f40322dd1827ccb0efbd610a9591fc3ba43ed4f1af01edbecdcb488c595d576385276c59ebf3f977976c99bb0ecf1e13918014f2a51b817d20796e29149f424ebd328958ffbc5a54b6f83420764b9a2a0356a4972f0421effb68d4d5f6f5c3bcbe7e912063ea82541e548f2076393f3721ae20720e35dde1611b5221e5d51c2766d5642f5c20aed5e2833b77e216bf192371b9e610ea9d4c8a8b7d340856cf3e12552b07a7fb1752a4a6bf4dc24a5b289c84dc117c8e14414cd7755a9d79743cc41808276b14dee965bf166f0bd82208c4aa0a17623fe4335ee49bc2bf96977f9aa13ff9704a3b619880177765bde635267a1432074b6ae08d4daaf3299ddc5a0f8254fc14bb86e7e37316178f8cb71b1ea5c62617d5104d5e592462c48e0f0b69a83a3aef603f40a3b6e4ae14d46326c6ee19977fddf8caa5f645a697eb0a8e14609c7306b4da8ef83393403b2e1a292cd9d9b0f1ce4ae1de94853f43093be2801d236860816c5b9c443e7b5a0ae6033ec7580d6414554b1cf18685d99bc8981a1758631eef6433533d652ae693920d0658824abb0c25e2ceb548d0149022ab187a3aca9833465c06bba89abdcd871c8f802af927bc9e83701a248880c3577cb2e584558b882c5c90c9c48ad5a22112e323a9635bc73822db3f7a250a523c389f85b02a4f6603681d5dc749889a673ba43ed4f1af01edbecdcb488c595d576385276c59ebf3f977976c99bb0ecf1e14a0e10566701e8d6f1ddb86c994ce9401f40322dd1827ccb0efbd610a9591fc08cb9e62053a24cef26be596b4b7a9694d5277bf9c18d301fe074d62e51a75a433db95fd1b3bf2bf3fef6a7887cfd16de64c9bea757c219043f9662e633661b63620fd11220b311ab70496f4548c486df9e084a4fa2e6c52300e17177e8a8e531a2422c93613ef6076e70fdb0161e37d6b98a5ea3cd5af73f87912e34719d2c721e9956eb80c7652957af5da3f8b7c196bda3f3323076028cde0a33b8e69885c3fb08610fad015794c5598767a1d132570112d06c5b30ac6d71617cc09d1952a2ced3026237c22917efdbe58378170c28640e03cfebe9cb2d8e9b7dfabca09f12357efb434a2fde9aeede8771e6cbb28df384a5238457f134f9d721b19da5729041cfe2c86efe3847f1adf1eae867f3c6a0ee184e2f260219d94f9f096fb35fa3a65302611f829720937a571c1d8f0864b81ebc74c46786f18d67d3865f1ee931a2422c93613ef6076e70fdb0161e37d6b98a5ea3cd5af73f87912e34719d2c73620fd11220b311ab70496f4548c486df9e084a4fa2e6c52300e17177e8a8e5312ef1e7dddc34de23b4855bdf0f32e11492eff625322a346879e6d19d4afce8536d9154db2bc08aa0ab9c2d09e96ac7ce3a2284bcccfcac225cf7e728a1c975a1b1ea5c62617d5104d5e592462c48e0f0b69a83a3aef603f40a3b6e4ae14d46335267a1432074b6ae08d4daaf3299ddc5a0f8254fc14bb86e7e37316178f8cb7361eebedd397316f4a9f704b42880811ce4e2d3521bec84ce4c720a20a48b0332ce4abdc3944e4dc6dcc0cbbb6cd1b8eb7ba055a1f87c988ccb1f2f410c6ff3726ce83f33034969929d12797406b017d3fcc69efdde1b7854b3dd23f13a8285729769be727ea89e2041a7f3815832a6e25acc09f59226440dd4957bbb1fc38c334cb825923f5d4f4e17c7b161afca5f1903c77c9df4a9fabadd7118dbf35c18c2f4b17d8ac0336fcb0b05aadb524cf868a4ce0067ce5bd15d70f9819eaedfbbb35c685de832aee99ad4ad16e045196e91c27e77c6562d73408655f1ae8dcea061a7e99fbd4f431e180a0d561519c950249514312d1a144922021cadfdcc7771408778f2f4bfc62db9739a4bdd5aff1ee913927e51313f78b76c04e60a62cfea50b981816a940df8ab3aeb045431c8e77922a3de0a2667242b4f5b46499266631390c1e3b11c180dd00aa36dfc93ff970c62b664ff9d598b3877f8f82c71510b91739019f465d9f9e2d416fef8cae327a9f4dc43f3d2e8312a1079a77fe8f5061383c00920bb719499f368278bdd05cc8604fc66af40277748b17a1492c0aa72613dc2a837714930f3583084de0a029d7df47b06b59b74e40e7e0580b2fc8ec2d1319ad595d7671b21481649ebff76030bdf73b42980c43f69c02cacf10e0059b3d2b7280faa8aec9196a423095f6cbbaa781ef4c9ef7d7cf8c845f2bb4c45b7f0553049f03e13cc6764c4f07f085e5e5d329c2319466a145451088f98224098825e2961f6d0b3b7a97dcfaccd686106da571a104d0fff596c8c729ef0784b95f0d0658824abb0c25e2ceb548d0149022ab187a3aca9833465c06bba89abdcd87033ec7580d6414554b1cf18685d99bc8981a1758631eef6433533d652ae69392113d3479bf81c081aadcab8d86c1e0d018b8b8c63a79256aad04e75f50c25c262c4cbd11c2c355cf1c8ac3d0a3828be6430c7c2ea545e399207f1c2abfa1e32f3be4dc30e784e37c6b98e7b2181f10c731bdb24fec890edb6fa636d9af02308f146043a9709a3cfec252bf1d3dcf1b2433bb783f4a7b0ceab8e0f32116a2308b0b981816a940df8ab3aeb045431c8e77922a3de0a2667242b4f5b4649926663108778f2f4bfc62db9739a4bdd5aff1ee913927e51313f78b76c04e60a62cfea5390c1e3b11c180dd00aa36dfc93ff970c62b664ff9d598b3877f8f82c71510b91739019f465d9f9e2d416fef8cae327a9f4dc43f3d2e8312a1079a77fe8f506131e8f52123f63e60d9a7797f28509c1eaa3c0cbb7d474715075ff36e781586ea074f2aacb98d4ac71105d6e3a7a62fcc955ce91c60962cc9adf017c2b19a1d0d09de9e84f3633649af21ba800ec78d2857419f7ffe7a8082e165167adc42264d0666815564bbea317ec9ec4f47269ec2ebf0f2132f3ca227adf4e292e9623acc0c42022362c171542728c385974c9ead0602c821d8e6e467f7f6236d5616ce161ad7b948615f70ca489cbc16fccdcb869d831a12a91f85d13b92d39aafd3c8fa1739019f465d9f9e2d416fef8cae327a9f4dc43f3d2e8312a1079a77fe8f5061390c1e3b11c180dd00aa36dfc93ff970c62b664ff9d598b3877f8f82c71510b934cb825923f5d4f4e17c7b161afca5f1903c77c9df4a9fabadd7118dbf35c18c2f4b17d8ac0336fcb0b05aadb524cf868a4ce0067ce5bd15d70f9819eaedfbbb35c685de832aee99ad4ad16e045196e91c27e77c6562d73408655f1ae8dcea061a7e99fbd4f431e180a0d561519c950249514312d1a144922021cadfdcc777140873e05790b82c8f9fe464835722a2b6a6f0f25aa6b0b2f116dad0b9ab66214f0b37864fb85b65cea3903c4e797d18140d40d628fa8698a02462233343317e8b2b415e8104aed64ee15ea2fbed9cc6db366c99f5eeebf4409604abbfe43c11342503c15953704a2c4c8d03d3685165102f0c90994818278592827e3ae1684fe60873e05790b82c8f9fe464835722a2b6a6f0f25aa6b0b2f116dad0b9ab66214f0b37864fb85b65cea3903c4e797d18140d40d628fa8698a02462233343317e8b2b415e8104aed64ee15ea2fbed9cc6db366c99f5eeebf4409604abbfe43c11342503c15953704a2c4c8d03d3685165102f0c90994818278592827e3ae1684fe6049d2c7dd3c3702c25deaed9a5c26aa3cace293c144ba9fedccd9d695fb5c6fd12759c0215a1a86702a2500237030a7e03d85fe9d051c66296b7e3a93b6477a31a7e99fbd4f431e180a0d561519c950249514312d1a144922021cadfdcc7771435c685de832aee99ad4ad16e045196e91c27e77c6562d73408655f1ae8dcea0636d9154db2bc08aa0ab9c2d09e96ac7ce3a2284bcccfcac225cf7e728a1c975a12ef1e7dddc34de23b4855bdf0f32e11492eff625322a346879e6d19d4afce851b1ea5c62617d5104d5e592462c48e0f0b69a83a3aef603f40a3b6e4ae14d46335267a1432074b6ae08d4daaf3299ddc5a0f8254fc14bb86e7e37316178f8cb7266dc96aaeb153895cbd2cae918ce0ba2625002923160c55f43297beb9fe1c5408a36e3187e124a289371d2a7ce9833f837369f6cffdfb17914199a72f6c4c403d2b7280faa8aec9196a423095f6cbbaa781ef4c9ef7d7cf8c845f2bb4c45b7f1319ad595d7671b21481649ebff76030bdf73b42980c43f69c02cacf10e0059b2cc1385dfc4d334710cd10d84ec95a56d670743278a526281835a48e83c7bc162af4bd3e350157c6dc4ad17d71d9d09f0365bbf4068e4fc1c65be7804e9bea39198ebce1e2b0b9e60b09b7445ce129128b765f67c20dab54dd7b0ec250963e1536b662f8756e669522e1ef8af90d02d8da02cb2774f670714b0c1b38750e23053f2a32a8f84122d2924e0142e794000d42ad24e90c5a1d5e07957c890bc920932853c96178096f53e4eb328af4b32fc1f250f389933c6433b599ba444add3b7a2503c15953704a2c4c8d03d3685165102f0c90994818278592827e3ae1684fe62b415e8104aed64ee15ea2fbed9cc6db366c99f5eeebf4409604abbfe43c11343ad27b7818115430e0511e71f2ef6faccefce48d246229ba6deae61888a43f7e1b606c6d3f92951d658c49cf9c241e318a3cfb3d9a23a839201f24be2bcc57172b0fb5b790cae5da3370e475482680941ee43b054dfb1a11d6fea8dc66dca23525356a22c7543aa0fa7ac25a0dc7ab574694ef89e90901b45188811e5ec7bee513dc2a837714930f3583084de0a029d7df47b06b59b74e40e7e0580b2fc8ec2d383c00920bb719499f368278bdd05cc8604fc66af40277748b17a1492c0aa7261319ad595d7671b21481649ebff76030bdf73b42980c43f69c02cacf10e0059b3d2b7280faa8aec9196a423095f6cbbaa781ef4c9ef7d7cf8c845f2bb4c45b7f12759c0215a1a86702a2500237030a7e03d85fe9d051c66296b7e3a93b6477a3049d2c7dd3c3702c25deaed9a5c26aa3cace293c144ba9fedccd9d695fb5c6fd1a7e99fbd4f431e180a0d561519c950249514312d1a144922021cadfdcc7771435c685de832aee99ad4ad16e045196e91c27e77c6562d73408655f1ae8dcea0608c4aa0a17623fe4335ee49bc2bf96977f9aa13ff9704a3b619880177765bde6289c84dc117c8e14414cd7755a9d79743cc41808276b14dee965bf166f0bd82235267a1432074b6ae08d4daaf3299ddc5a0f8254fc14bb86e7e37316178f8cb71b1ea5c62617d5104d5e592462c48e0f0b69a83a3aef603f40a3b6e4ae14d4630b981816a940df8ab3aeb045431c8e77922a3de0a2667242b4f5b4649926663108778f2f4bfc62db9739a4bdd5aff1ee913927e51313f78b76c04e60a62cfea5390c1e3b11c180dd00aa36dfc93ff970c62b664ff9d598b3877f8f82c71510b91739019f465d9f9e2d416fef8cae327a9f4dc43f3d2e8312a1079a77fe8f506100000000000000c800000000000000210000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020b0ab6e706afe61983c5bf1d6e3d09621da7d9cd32bdd7e2130b81dcc46ef5802000000000000000100000000000000010000000000000020d087600766bd1df7913f14ae88a2e9b5b651504535f46ee5da14954af94de668000000000000000100000000000000010000000000000020cd2cd9ad2c779aa3995be1014c80f94a5247dc5109218180e006fbbe588ce2d800000000000000010000000000000001000000000000002020ca2ebe06b78b863c42ebd67e820162645990710fb2212c31964405270d49be00000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000210000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000000000000000000002086cb5263dbaf418e96721addfd841cb67f9896781c9e8093170a2bebd35c8a0d00000000000000010000000000000001000000000000002005e8acde41240846b1b148e6f1731d982d9499b315b49571f3c4e12d88da5822000000000000000100000000000000010000000000000020dfd7eac1317ff666e7a446a260d70430c9aa0f0bfccfe2edf4ae24a5d163595d000000000000000100000000000000010000000000000020cb0c915a2fbf42f67d8ddb4687cdb94a70ea6dba8c337fad662aef43a1ff09120000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000210000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020d7e7c468e06a8e592edbe1f9eff3164f0499e8ad0072da91fd4fa087ea820a1000000000000000010000000000000001000000000000002064922111b65302bddd53948632f9de2e4135390b8620b248b8a335776dedfd030000000000000001000000000000000100000000000000205dea807bd3761c569e5d91569ff1a4d18ca2750ddf526909660f91b2f84080cf000000000000000100000000000000010000000000000020ec94ab368df3700c4e485459b45d7544203947bced6933b6d2419aa51552b1e70000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002100000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000206394d562d30d4d72e250c260ecbf498fb3d176889437362e030db290cfd3b22b000000000000000100000000000000010000000000000020aa69a887755987122b41014784240cfa2ea17a4e9b3aeba12dc7762da7582ecc000000000000000100000000000000010000000000000020c802860c649238e4c1cbd0ff648821a708a95501e146298b5b303abf07320669000000000000000100000000000000010000000000000020ce508bfa21ae59f4e3a574d7cf9aa2266b30a92dca771c1fb0e1be0bca3e9fec00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000210000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020af5fad30063ecb19951eac8cf60da4f79cdbb44b8297f1e89b410ad48971a7a700000000000000010000000000000001000000000000002001ae3a0c28f45072672fa1d9d722f50b96f496c2095844698ce94190b48086ca000000000000000100000000000000010000000000000020378b42427141ebdcf4a6aaa2ee39a4e2bd01cb4125d3f5ce563ae81c900aa929000000000000000100000000000000010000000000000020c1bc4adb66edbd4e3dab7de23832af2889cdfe7d4f7313a79599994c65f1d267000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000210000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020b0ab6e706afe61983c5bf1d6e3d09621da7d9cd32bdd7e2130b81dcc46ef5802000000000000000100000000000000010000000000000020d087600766bd1df7913f14ae88a2e9b5b651504535f46ee5da14954af94de668000000000000000100000000000000010000000000000020cd2cd9ad2c779aa3995be1014c80f94a5247dc5109218180e006fbbe588ce2d800000000000000010000000000000001000000000000002020ca2ebe06b78b863c42ebd67e820162645990710fb2212c31964405270d49be00000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000210000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000000000000000000002086cb5263dbaf418e96721addfd841cb67f9896781c9e8093170a2bebd35c8a0d00000000000000010000000000000001000000000000002005e8acde41240846b1b148e6f1731d982d9499b315b49571f3c4e12d88da5822000000000000000100000000000000010000000000000020dfd7eac1317ff666e7a446a260d70430c9aa0f0bfccfe2edf4ae24a5d163595d000000000000000100000000000000010000000000000020cb0c915a2fbf42f67d8ddb4687cdb94a70ea6dba8c337fad662aef43a1ff09120000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000210000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020d7e7c468e06a8e592edbe1f9eff3164f0499e8ad0072da91fd4fa087ea820a1000000000000000010000000000000001000000000000002064922111b65302bddd53948632f9de2e4135390b8620b248b8a335776dedfd030000000000000001000000000000000100000000000000205dea807bd3761c569e5d91569ff1a4d18ca2750ddf526909660f91b2f84080cf000000000000000100000000000000010000000000000020ec94ab368df3700c4e485459b45d7544203947bced6933b6d2419aa51552b1e70000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002100000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000206394d562d30d4d72e250c260ecbf498fb3d176889437362e030db290cfd3b22b000000000000000100000000000000010000000000000020aa69a887755987122b41014784240cfa2ea17a4e9b3aeba12dc7762da7582ecc000000000000000100000000000000010000000000000020c802860c649238e4c1cbd0ff648821a708a95501e146298b5b303abf07320669000000000000000100000000000000010000000000000020ce508bfa21ae59f4e3a574d7cf9aa2266b30a92dca771c1fb0e1be0bca3e9fec00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000210000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020af5fad30063ecb19951eac8cf60da4f79cdbb44b8297f1e89b410ad48971a7a700000000000000010000000000000001000000000000002001ae3a0c28f45072672fa1d9d722f50b96f496c2095844698ce94190b48086ca000000000000000100000000000000010000000000000020378b42427141ebdcf4a6aaa2ee39a4e2bd01cb4125d3f5ce563ae81c900aa929000000000000000100000000000000010000000000000020c1bc4adb66edbd4e3dab7de23832af2889cdfe7d4f7313a79599994c65f1d267000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000360000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020c3a4db706c3c3b07e0984d10824acb5797a59a8b4d40d709cfa0452e6ee0f23400000000000000010000000000000000000000000000002015ad821dcbca21c0f24f28f58131f9ab7767c0d6fbf621d34a2c84ab7b24c75e000000000000000100000000000000000000000000000020f4d1e64380a2c05ab0dc64ea31b5e288a4325921fa907811ded50419cc51d1ad00000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000360000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020cb1624e04edb0a38a5aa48ab98ce3b4498ce06e3501400449d8c60820ae716c30000000000000001000000000000000000000000000000207abb1eeebe74b58b73790fca56a415654e76bfd897d0c45e5884d0e78242d270000000000000000100000000000000000000000000000020ecf960f1bd96e938be9efe0e8178c6faac8e4dade22047baafaa2cc5b776587a00000000000000010000000000000001000000000000002025513b7f08a347e3b4653b6a5b7b4504d17f3335eb68b911a07580668480ea5f000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000360000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000100000000000000204e3e5050a68c19a9070116bf52c252ea80b09fe3aeba37912ec913755fd6f20f000000000000000100000000000000000000000000000020741327993888baf18dec79d5c37eb2b44abfbb9eccb3d86290a10c24f9dfac2600000000000000010000000000000000000000000000002057231a860f30ab1475bd8cdc0a3b4a8273fc215ab0540eb9f5f6b4129d47a3f6000000000000000100000000000000010000000000000020a61e4bd78e6377780bb7580457ace8abedf45db5c6b1905e0fc76ee6b540ec6f000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003600000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000100000000000000204f2c258eed013e0c55e57bb7b25f90a885545ce90dc6ab98cbcab8b42618b739000000000000000100000000000000000000000000000020f44b12df590997e771be2d8ca025bc1169a99fd2640c935a548d3f72f53e1905000000000000000100000000000000000000000000000020e07633752c9a7d0ab4d4825434743a1a21102cdb34ac00f9cb0067d34ffca5d90000000000000001000000000000000100000000000000201273eb79132092546fe9e443e04ce70d652607cb46845d8269cc51b07a5e2636000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000360000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000200dab1cfdca431b0959f28b363ee2140ddc896a2331b81f80be5d7d672807597900000000000000010000000000000000000000000000002052ba876dcdee686e84a449cad07b633edb67153d5f14f385fb256af53ea89d65000000000000000100000000000000000000000000000020f53683e29b7f89c0854446521e9f08cece64960ee2669247016ed70294c71940000000000000000100000000000000010000000000000020ca0bbcf3ba7d635c190762d1905f0cdb8d6b2af98d668d282ab970819d0796e0000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000080000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020657f400c23f985ef1ba27d0e61eec710dc328bb9ca9d9fcbbed56910fe31e4490000000000000001000000000000000100000000000000204e8bc169e0bffb7af86e442b025c73a9c0e2c8fcbfdcbdbfd7d568446045f1ae000000000000000100000000000000010000000000000020f7575ab7c2207c8a39c727bb104d9b7c0105c5ae631fc01ee25378fbc615b0d20000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000080000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020325051efdb8424e62d624b11d6b7eeb927253341aa3927034fbb0c8bf76c12ff000000000000000100000000000000010000000000000020785181f64823ec7b563f1cdf18df75b075d0a5963a0db15b3a9e3b0b42f36f1b0000000000000001000000000000000100000000000000205dc15f79b1aa0ed50e58e550fd41c07ace7cdd1101aa37ef4273ae5e9038146f000000000000000100000000000000000000000000000020d1816e01b598e08ee1c459e3283ac87d454a19f2e41f3f85158e9f10b9faef71000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000080000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000100000000000000202eeead91b20ab57873ca7c783915a4212ed0dc2f7961aab41598ea0bc8a47329000000000000000100000000000000010000000000000020a6ac2199362ac987e04ad05199fe7f8be4b60786974730c5353094867d88f34f000000000000000100000000000000010000000000000020abf88fdff603d4d880f1564dd8b5a9e24fd51a61c22d45624f73911e449bcf94000000000000000100000000000000000000000000000020dede73056e97d895ee544cd1f515e7f872b01d10ad51bde6457326fcf11c7b20000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000800000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020920e2801b283c6626363cc9ab21f52393946e3a96b1195de32cbde245b3fa8d8000000000000000100000000000000010000000000000020cf8a0f1ddefe7b4046369acf63949764e63161ba93c9f157762361c30aae1fc100000000000000010000000000000001000000000000002009f1dd01603cfe8cb20303e6d66fb1ad83bdc7093f7a52699cb4afa68588b483000000000000000100000000000000000000000000000020d4666304bf2809e0fe3311603148aa6aef2cc88395ddc38a022a9c742dada87d0000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000080000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000207835bfb9721cf146284a361fac9b687f1d55206c50ec6b050d1a1c0f1283c2f50000000000000001000000000000000100000000000000207a3fa367a923e5d12e87ccdb6cd209b3bc3cc0afde4ed5f86101656aafd030520000000000000001000000000000000100000000000000203c7ec701f5e4b6f4992798f93bc359521c17689c879f0a4d5728d25a602fe261000000000000000100000000000000000000000000000020c1a70db1dbbbf1d266cc63410c3e1f798fbc2f00cc35d561bc0706474f565a7d000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000090000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000000000000000000002066ef082a7312ec8003c37280968e36b4beb91918666462610d2e0f921d66262e0000000000000001000000000000000100000000000000204e8bc169e0bffb7af86e442b025c73a9c0e2c8fcbfdcbdbfd7d568446045f1ae000000000000000100000000000000010000000000000020f7575ab7c2207c8a39c727bb104d9b7c0105c5ae631fc01ee25378fbc615b0d20000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000090000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000000000000000000020cd5f59c76bc5632df1e3b8c11713a7a553a405f716f3f73d6b2ab918bf5d2833000000000000000100000000000000010000000000000020785181f64823ec7b563f1cdf18df75b075d0a5963a0db15b3a9e3b0b42f36f1b0000000000000001000000000000000100000000000000205dc15f79b1aa0ed50e58e550fd41c07ace7cdd1101aa37ef4273ae5e9038146f000000000000000100000000000000000000000000000020d1816e01b598e08ee1c459e3283ac87d454a19f2e41f3f85158e9f10b9faef71000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000090000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020255d2bd3266375246a076280b11aeceeeb5621a497d1636ce377cd490e6bd1f9000000000000000100000000000000010000000000000020a6ac2199362ac987e04ad05199fe7f8be4b60786974730c5353094867d88f34f000000000000000100000000000000010000000000000020abf88fdff603d4d880f1564dd8b5a9e24fd51a61c22d45624f73911e449bcf94000000000000000100000000000000000000000000000020dede73056e97d895ee544cd1f515e7f872b01d10ad51bde6457326fcf11c7b20000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000900000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020a0d79cccb761943b5256e1394b1226a2e684690943fb852321ae8d060722506b000000000000000100000000000000010000000000000020cf8a0f1ddefe7b4046369acf63949764e63161ba93c9f157762361c30aae1fc100000000000000010000000000000001000000000000002009f1dd01603cfe8cb20303e6d66fb1ad83bdc7093f7a52699cb4afa68588b483000000000000000100000000000000000000000000000020d4666304bf2809e0fe3311603148aa6aef2cc88395ddc38a022a9c742dada87d0000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000090000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000000000000000000200952292f8d6e229e47b3e346ef0d04cbe603ce81219126946b961ca91912577d0000000000000001000000000000000100000000000000207a3fa367a923e5d12e87ccdb6cd209b3bc3cc0afde4ed5f86101656aafd030520000000000000001000000000000000100000000000000203c7ec701f5e4b6f4992798f93bc359521c17689c879f0a4d5728d25a602fe261000000000000000100000000000000000000000000000020c1a70db1dbbbf1d266cc63410c3e1f798fbc2f00cc35d561bc0706474f565a7d000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000240000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020362ac7a88313f3547caa33e18f1bf2d22be8defe6282b59d479c56f15d583bca00000000000000010000000000000001000000000000002089d1f5e7ddab385cee9ef3c6e039bf9dba4cd0c7bf5968af1e87a54f1c8b98f4000000000000000100000000000000000000000000000020254ad08d8f651887ccdedd4264cbe8ac8a820f273e7e6a6eec9571b2bee83fed00000000000000010000000000000001000000000000002020ca2ebe06b78b863c42ebd67e820162645990710fb2212c31964405270d49be00000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000240000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020d748a576eca49ddf992cba75efec0f1d12f629d58fcde8a33bb703dab645e37f00000000000000010000000000000001000000000000002048d27b60aa9bff8a3ad72fa50e506b89b2c70434429163e60518d3b54dd8d4f40000000000000001000000000000000000000000000000201e4829424cc3731a985d6b9986b78d322139a6d6965ff67e79bdb4abe7107c85000000000000000100000000000000010000000000000020cb0c915a2fbf42f67d8ddb4687cdb94a70ea6dba8c337fad662aef43a1ff09120000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000240000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000001000000000000002028cb827a61cf5bd7ce600cd7f3eab1c60ed4942811ac1915593695bb3dd953d80000000000000001000000000000000100000000000000207295a2c10b1acf16129d092a7b9af37c389c4566a2bf22d8c69e0cf9f8719868000000000000000100000000000000000000000000000020504c7cfdf9b9d8a744d6d07015dc694b3c1e96fa04d9711bca9e89e47aea70bd000000000000000100000000000000010000000000000020ec94ab368df3700c4e485459b45d7544203947bced6933b6d2419aa51552b1e70000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002400000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020e1479132f529d1d3199b01f807de0d91cf20dcad1e7b80585f280b09fbf3754b000000000000000100000000000000010000000000000020d8587c740444d396342bde08fcc2aa14d09b3841a86867a8968a39985c1aae5f0000000000000001000000000000000000000000000000201b51cd96b5e7d3c5907dc40ebc575470d0b53cb58c9a11acee482a80587db2ca000000000000000100000000000000010000000000000020ce508bfa21ae59f4e3a574d7cf9aa2266b30a92dca771c1fb0e1be0bca3e9fec00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000240000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000209c5dc119f411a0ef5642262c45fc391cfca0ded082e37ef7d49b5a2ed9518bfb000000000000000100000000000000010000000000000020dbb5f88bfd82f174b6b75b33b6e1b57f9e8c171e2884327da5b36cbefd7067110000000000000001000000000000000000000000000000202f7c3c123b082e8ba8e01175c4f6ae18dec43d9efebf55f2769ff4eef4d2582b000000000000000100000000000000010000000000000020c1bc4adb66edbd4e3dab7de23832af2889cdfe7d4f7313a79599994c65f1d267000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000390000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020c5bfbba30acd27adf9049b86e741c9aed9f0aa634f4c011c25fe4d6bc0e6e2ec00000000000000010000000000000001000000000000002092254bddc93af51db85c84258645a7368b11c67713d9b7edb7798f818a67b7d100000000000000010000000000000001000000000000002013cba62cb82888bb083b50937d466b49f9391c00299bd77abb46de4352465093000000000000000100000000000000000000000000000020a3c68cdf76781d19db7aa603f4cd91ea38edfc0b5126585e0c4cc27eb1121e50000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000390000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000000000000000000002057eeed9c417c56a554abbabe201f1b8f7419e6c4f9c588b7cd73e53049aec360000000000000000100000000000000010000000000000020659bdac5e12fafcfbfba4939413f2dbcb8f4622495fa9d7b4be9541e24bf3f5f000000000000000100000000000000010000000000000020d1b5b1709939c022502c02de40058bf39c150bc062b6e13ba9efa821c1b2284200000000000000010000000000000000000000000000002081d62fb6f8e3c63bb07414f173e2f1761186f3a609b96be8e54bf144e18bd1e9000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000390000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000000000000000000204ae66da4ec6e996543c99f2e603b4283208ae6528b924ce9946629501ef0edd600000000000000010000000000000001000000000000002042ccda5e4f3610e7833759239b87dcb5feb5654641bd57359476edc936a15e8e000000000000000100000000000000010000000000000020de3c1116c517fc559702c15da18fca7713ea045f49bee0d28a5b11b093f744f5000000000000000100000000000000000000000000000020c8c39661891e6889268d1a75425c16fa10b5ce02a5817678bfb61fd4d7ba745b000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003900000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000000000000000000002028fa0341159216430f3cec85a0e258c1c6780b325aa638c561f0c89609574b68000000000000000100000000000000010000000000000020fdf80980218da61f93fdbe491188fb7f3191a3b3bb5166ce6014e8f20d70673d00000000000000010000000000000001000000000000002096a037551b0b573c983aaa7a75192a672a3c09151e279ffd3c1e0e670d35fd370000000000000001000000000000000000000000000000208ef32cdd20ab9840d12ae9a0d741f7d3f389289d74ea182f48337a1058f3b15d000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000390000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000000000000000000209c451188f9bea2f2b6d07b3db3ceaaa498f80506d191610f9d61974099dbe5e80000000000000001000000000000000100000000000000209e11faaa3c075b6834d4668a36d21b8294c07a039a232c100665d90b3d03bf4500000000000000010000000000000001000000000000002080cf796e32484601f36528ae033f1d268f38cb3aa9d351ba1b0fcd4e2043d757000000000000000100000000000000000000000000000020a79432284160ffbe7605792344dd2c3b75b783de349a59eac5f705dbb10d4fec000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000150000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000209a7f6ee04285cc053d122b4d2dc01674868c1c4198d702144ec6673d4f1735470000000000000001000000000000000100000000000000209b10e94ccc495ed067a2c6b3180fdcfddf4c8bc779cdf7fc14dde8feb399309d000000000000000100000000000000000000000000000020080b28b1dece6dde43a662bb2943cbbcfb4977254ddfb567d20ec3694d07decc000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000150000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000203ac1614b3ebad34b37931ec463de127c8bb45876ebd8f753c177b3b708f2eccb000000000000000100000000000000010000000000000020576d77dac3a70e1802ac9cbaf6777f6090720d9e7fccb6078e57d4811b497ee2000000000000000100000000000000000000000000000020ace429d6a2e0ab83426a9b9ba04ca6bb90f71e7ceee02c278a82a7859d4bc1820000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000150000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020b315c72fa41b10fad5bfe97985d9d38cdfb966274cd890d82281a154ddf380870000000000000001000000000000000100000000000000209c160349b93bdba6b3a6c3afcd2503bc1a79db30aeb896003c136aefc2ff9b3a00000000000000010000000000000000000000000000002005c7231b545188d801508269d5e616db314e98d0d1d96b4d859cba418919dce7000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001500000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020dee119a0ca0d75cbae521579b9854eb21e572f571eb2bc9024914fdc09b7d6760000000000000001000000000000000100000000000000204d597031c84975b5e61070724ab3d606668a57320d7d99c5a77ab1a1d5221bb4000000000000000100000000000000000000000000000020792b54430c2c7a5202334fa577281d00396a0c9d5a6149e8832c12c7a186e7b6000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000150000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020fb6f21306c23be5f073086377b0217641f535be016cabf1ed1dc1319d6107c3000000000000000010000000000000001000000000000002064127693e8da9c8e8a48196327c3c787b11da3246b2e852de189d6ccb7f2da7a0000000000000001000000000000000000000000000000208eb0d4e58e0649d2818142c4c7cefb08dd13094d3a575e5054570ef7155a1a53000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000150000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000209a7f6ee04285cc053d122b4d2dc01674868c1c4198d702144ec6673d4f1735470000000000000001000000000000000100000000000000209b10e94ccc495ed067a2c6b3180fdcfddf4c8bc779cdf7fc14dde8feb399309d000000000000000100000000000000000000000000000020080b28b1dece6dde43a662bb2943cbbcfb4977254ddfb567d20ec3694d07decc000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000150000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000203ac1614b3ebad34b37931ec463de127c8bb45876ebd8f753c177b3b708f2eccb000000000000000100000000000000010000000000000020576d77dac3a70e1802ac9cbaf6777f6090720d9e7fccb6078e57d4811b497ee2000000000000000100000000000000000000000000000020ace429d6a2e0ab83426a9b9ba04ca6bb90f71e7ceee02c278a82a7859d4bc1820000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000150000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020b315c72fa41b10fad5bfe97985d9d38cdfb966274cd890d82281a154ddf380870000000000000001000000000000000100000000000000209c160349b93bdba6b3a6c3afcd2503bc1a79db30aeb896003c136aefc2ff9b3a00000000000000010000000000000000000000000000002005c7231b545188d801508269d5e616db314e98d0d1d96b4d859cba418919dce7000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001500000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020dee119a0ca0d75cbae521579b9854eb21e572f571eb2bc9024914fdc09b7d6760000000000000001000000000000000100000000000000204d597031c84975b5e61070724ab3d606668a57320d7d99c5a77ab1a1d5221bb4000000000000000100000000000000000000000000000020792b54430c2c7a5202334fa577281d00396a0c9d5a6149e8832c12c7a186e7b6000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000150000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020fb6f21306c23be5f073086377b0217641f535be016cabf1ed1dc1319d6107c3000000000000000010000000000000001000000000000002064127693e8da9c8e8a48196327c3c787b11da3246b2e852de189d6ccb7f2da7a0000000000000001000000000000000000000000000000208eb0d4e58e0649d2818142c4c7cefb08dd13094d3a575e5054570ef7155a1a53000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000200000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020209825fa6d197927a0715d3fab3f49b0ae6f3efd3002918c17dc046ee978861c000000000000000100000000000000010000000000000020d087600766bd1df7913f14ae88a2e9b5b651504535f46ee5da14954af94de668000000000000000100000000000000010000000000000020cd2cd9ad2c779aa3995be1014c80f94a5247dc5109218180e006fbbe588ce2d800000000000000010000000000000001000000000000002020ca2ebe06b78b863c42ebd67e820162645990710fb2212c31964405270d49be00000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000200000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000100000000000000209aaa5cb490c71c98b9c07167071ae295f65b0a068c84a1f8eb2bda1e9dc68c8200000000000000010000000000000001000000000000002005e8acde41240846b1b148e6f1731d982d9499b315b49571f3c4e12d88da5822000000000000000100000000000000010000000000000020dfd7eac1317ff666e7a446a260d70430c9aa0f0bfccfe2edf4ae24a5d163595d000000000000000100000000000000010000000000000020cb0c915a2fbf42f67d8ddb4687cdb94a70ea6dba8c337fad662aef43a1ff09120000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000200000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000100000000000000209f162f0f2e1022c5e53050c46473ed871f621c6d953e6b6adda61d3b41ae303600000000000000010000000000000001000000000000002064922111b65302bddd53948632f9de2e4135390b8620b248b8a335776dedfd030000000000000001000000000000000100000000000000205dea807bd3761c569e5d91569ff1a4d18ca2750ddf526909660f91b2f84080cf000000000000000100000000000000010000000000000020ec94ab368df3700c4e485459b45d7544203947bced6933b6d2419aa51552b1e70000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002000000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020a6ef89ab9286315344599180c41362feb0e0dfafcedeb8970cb5549a047ce2a2000000000000000100000000000000010000000000000020aa69a887755987122b41014784240cfa2ea17a4e9b3aeba12dc7762da7582ecc000000000000000100000000000000010000000000000020c802860c649238e4c1cbd0ff648821a708a95501e146298b5b303abf07320669000000000000000100000000000000010000000000000020ce508bfa21ae59f4e3a574d7cf9aa2266b30a92dca771c1fb0e1be0bca3e9fec00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000200000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000010000000000000020ed9a22f6279d115c66072ff65bbcf9f22659696c2f828e556ae86d9a52d8431800000000000000010000000000000001000000000000002001ae3a0c28f45072672fa1d9d722f50b96f496c2095844698ce94190b48086ca000000000000000100000000000000010000000000000020378b42427141ebdcf4a6aaa2ee39a4e2bd01cb4125d3f5ce563ae81c900aa929000000000000000100000000000000010000000000000020c1bc4adb66edbd4e3dab7de23832af2889cdfe7d4f7313a79599994c65f1d267000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000160000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000001000000000000002042cb2165201ab8ea41affe9fbc23ef70f009dba666b45581fe56a336d6b425f7000000000000000100000000000000000000000000000020864e47462260929d60876a0babd915b08229a85eed60fe22ac85ec61ee1e866e000000000000000100000000000000000000000000000020080b28b1dece6dde43a662bb2943cbbcfb4977254ddfb567d20ec3694d07decc000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000160000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000001000000000000002063b397895a79ef39803fdb53e29d3e65bbfcff9fe06ef6fe7f9f0037e1e039660000000000000001000000000000000000000000000000206fd3b782e68eb5fac7cc20822b3858250b376d7e56a4db91bf0cb95ec3c4170b000000000000000100000000000000000000000000000020ace429d6a2e0ab83426a9b9ba04ca6bb90f71e7ceee02c278a82a7859d4bc1820000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000160000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000100000000000000205ecaaefbe239613fa89a9f1621b62fb6559f9289d5ec382aa2a032bb7a47a5700000000000000001000000000000000000000000000000202141d6e5fd028bcf7861ef8a16b249210fe3d52dc20d20c123863cd1b492a65f00000000000000010000000000000000000000000000002005c7231b545188d801508269d5e616db314e98d0d1d96b4d859cba418919dce7000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001600000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020dad428dcf0f2d1a3daeae2b619eccf0d064f6e5614b842c1b9daee22a6900e24000000000000000100000000000000000000000000000020688ce44aebd966aaa0c0b45729d96bcbe7ef069f1dbd95b956527d6cbc0a81cf000000000000000100000000000000000000000000000020792b54430c2c7a5202334fa577281d00396a0c9d5a6149e8832c12c7a186e7b6000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000160000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000001000000000000002005d3170f1b1685aeb531ffa7cef87ca50cb7887f2e0d9c871c7a07db84ea38bb000000000000000100000000000000000000000000000020484b1a9029b822ebc27ac439a0f45a04f55b9d4dedb7bacbc5e2a7b131bac56f0000000000000001000000000000000000000000000000208eb0d4e58e0649d2818142c4c7cefb08dd13094d3a575e5054570ef7155a1a53000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000330000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020729f9a4842e47471ec9eb0fc15695f30feec4440cdeba085eca4d8ffa6fca96500000000000000010000000000000000000000000000002020357880fc8e6dd74df46742da252f118fdb87961923030914ba2e8adf16cb52000000000000000100000000000000010000000000000020d668a432d047c9e275f7c7d20e0a761a44ce7e63d76a8974123279ebd303ad5300000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000330000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000205e2f9379af38ba02e299363f94ff2613db345709ae3930ec78e9d34cb8dc5808000000000000000100000000000000000000000000000020b36150103dfa24ee16b032ef9999b88d058ffbfb179c3608748ca0b3b79700ce000000000000000100000000000000010000000000000020a7afa996971e49948edcc6953b8e85b3a85abca1a8ca02bb441959ca7fbddc1e00000000000000010000000000000001000000000000002025513b7f08a347e3b4653b6a5b7b4504d17f3335eb68b911a07580668480ea5f000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000330000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020d74139170c3e989869dece6d59cd5c6a0d47fc349b6efd8fb24bf4f29e61dd410000000000000001000000000000000000000000000000209f5a2e0d1d216a03f22617946d77aff086f5e10c79f90d4eafcbe495bb54cb7e000000000000000100000000000000010000000000000020f956d888804e64a270d247562d2e4df7cb3baaff4b906f94b4e64fcb67d3fb92000000000000000100000000000000010000000000000020a61e4bd78e6377780bb7580457ace8abedf45db5c6b1905e0fc76ee6b540ec6f000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003300000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020d767ea564249bee1f3ae16b3f3dcecec061c22846a13b0e468a24bd36a75064900000000000000010000000000000000000000000000002069b52e0358d48b02c58f9efb5a46719a68c0846a23a5cd0907fb795dbe8a38da000000000000000100000000000000010000000000000020695844727e2fac06bb31a161155a39527775fb0591002573a9e4d4aee1e794880000000000000001000000000000000100000000000000201273eb79132092546fe9e443e04ce70d652607cb46845d8269cc51b07a5e2636000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000330000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000000000000000000002013db7d66d0dcb7034e195d6ffe9b124b9be9f43675296335fa70a1629fc586c50000000000000001000000000000000000000000000000201c91dcf009aaa43325becc5afa841bc4e23160c3c4cb657fac24880e6a26d3d5000000000000000100000000000000010000000000000020b4683887999b2d9372eba712b4bcbe56fe7c3bbf097eb71436f394f19c5e540e000000000000000100000000000000010000000000000020ca0bbcf3ba7d635c190762d1905f0cdb8d6b2af98d668d282ab970819d0796e0000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a6000000000000001a0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020867f4e7838d3464819f68d32891adc5d0d944835deee9dfab0413a6187f910fc0000000000000001000000000000000000000000000000208cdaf05b84ace4e1b630d731222e016e66fbb851f5088ed3b8479b35f2e863df000000000000000100000000000000010000000000000020087a599f409cb7bacc0662f1cbc4762c6f1a1276b1ec901eff46c07ae65a8c6900000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001a0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020d2b499fcc9331b1e24804113044924d390b6850d5bc89e618066edca59d1ed13000000000000000100000000000000000000000000000020d9a7882e1b23bd0c798af89adfff13ddc6504fb40d7de05d8d9b5e18a0c070a3000000000000000100000000000000010000000000000020c6bf6988a3e7187fae893c7eac58fd5d4e190f4f27238b2c7529d1f3965c96c30000000000000001000000000000000000000000000000201d592eaf7b775ac80f80f65ac71600e7b42e34c2b41369815d26559f705c392800000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000001a0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000010000000000000020a79ae30a48c139549d208cf89a135461b28439fd8919e5c233ca5b3e33aeceea00000000000000010000000000000000000000000000002098e0c7b3feeb36a5a88273df56a05597fc09a092f707963f75f04f69677c717e0000000000000001000000000000000100000000000000203ef5c9702626ef1d8658d6fd366e6eccf85b6bc4df13c0bb45cf2cd03ed14cdb00000000000000010000000000000000000000000000002008ef744cc4c71b3dc0ad6709747a269607614084afb6b3ce67e9224db4721b010000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001a00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000001000000000000002006cd2449db56d43a2c3e2dded95bfa66bd4cf5400f78048722d40908fa75fedb0000000000000001000000000000000000000000000000207ec39b6a5dc9b329823099187a25fa0797a534ea7de2324e8a8ac23d9de81f570000000000000001000000000000000100000000000000203e2095fe80077dc9629cd9c8a40245961543a9420478c0c9442afc86a4142c350000000000000001000000000000000000000000000000204a15bacd4d08e8dc5188fa2617ce3f2048ab093a457dbb1568a132452c1264e70000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000001a0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000206f2b697aeae6d5a5e69fdfc864eb42fb46914825f75d057503ccc7c0278fbb8c000000000000000100000000000000000000000000000020a60503c7177b62afb9c55a941b3a16a6533e3e51d6b343ef1576611e39f1ea93000000000000000100000000000000010000000000000020375d4ed2adacd2b33684527fb299ea4f3b26ea60a3e425eec8be3753fb113dad000000000000000100000000000000000000000000000020b705227efab8bbcce7e6efa6e6c2c8c24b0165a04b60ba4382b0c252dfa09b540000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000100000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020111b56eef069a81117bb82e07a549448811f7b498d0b8cbeaf3c460faf2448d100000000000000010000000000000001000000000000002025fba5ee32d0d9d008535ac6a7988f247a404065ee59ff9a7ab673fd8e76748e000000000000000100000000000000010000000000000020931fc0f60710e5550ab975b9da43260c532daa1aa0981b844a267625739ffb1b000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000100000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020bac9d793deaf5ca2cb626ce251dbd5baa016d0ecff6b13d4ef9cd35e7e50fc5e000000000000000100000000000000010000000000000020533af2ef25021e15fe55aca5e4979523d6e65ecbcdb590a881474ec1388d0773000000000000000100000000000000010000000000000020db75f2f16c24e1f86b75a7358eb0bff98736d767e792ba6500dc20c7a0f5b35f0000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000100000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000010000000000000020e6015a26b94bcdb79e6f934cfa346d3ee0e8daf62553fa64f1fd936655d5bd66000000000000000100000000000000010000000000000020b8afb98b9198daa87dda8a04edc3349eaed9056af0fcedb7edebe0393976711f0000000000000001000000000000000100000000000000208eca8e88d782a2c50068f91856cdb198e83fe75b53d95126db0ce5ba952fe000000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001000000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020855fd74a9c7da68d5343c0434ff683c9e73dc407ec49776b81e6584876f458cc00000000000000010000000000000001000000000000002052d82acada3026c4c21ecc2d34974875b8167e5120f6dc4a3d2696a6c0e4f004000000000000000100000000000000010000000000000020ef20ce255fff4244508dc0bf36aba9eeda1f94ba8303d6b23520cd52b598e748000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000100000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000001000000000000002038d9cc8443d7d65106239e86f0a2aa9c84d77501c33085e73594b698d102e803000000000000000100000000000000010000000000000020407f2fe6361457a84abe1bfbda60edd29b3305f1a37e916f7f923783f031398b00000000000000010000000000000001000000000000002003de737e05bbc77f493cd34846521552aa2f36e8056c458268b5b2cb15e5e244000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f000000000000001f0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000204887d5e2c6d2717d60c83accb5514a0f47e17910c8fc71f978c1948c709def1c000000000000000100000000000000000000000000000020a2502a6ae92a724a6e2a3a94ad93bd71bd29b046475706a32afa43f571c551f200000000000000010000000000000000000000000000002070f93532da12d95bd9b02b2acb02b74a3a532fbd8d1ec178ca7acf3e54865fb800000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001f0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000000000000000000020ebe4d8dc5157df91db0d0995b681cbbf37fbeb89712b703226fea4166f4a1be40000000000000001000000000000000000000000000000209556d77d8faa0780c175114ccc703ccef5e23f99123014f3cb64b72a60e79680000000000000000100000000000000000000000000000020635115868949cf601b309c4df546e182524084c9811bb9ee1fb0b250cc7303b00000000000000001000000000000000000000000000000201d592eaf7b775ac80f80f65ac71600e7b42e34c2b41369815d26559f705c392800000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000001f0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020413728e8c4f675e5ae69c204d5baf909547eab0d0db9a21f9e0c83a4af26c7a8000000000000000100000000000000000000000000000020b1f59360b8604b8aeb5462a45975637ec382c2d69e9898248c3ff0b5c0f84a490000000000000001000000000000000000000000000000201ee947871b7c23ff35900da33157b598a2a0de9b805ba0c5a66fd0f7a777b96e00000000000000010000000000000000000000000000002008ef744cc4c71b3dc0ad6709747a269607614084afb6b3ce67e9224db4721b010000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001f00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000208e23a76fd590b1f4b1a8ff7c9d4908df56bc09305057dc0722abd364823feacb0000000000000001000000000000000000000000000000203ba2c97654de7bfcc8d53977aba10d361172900252c2564628c1c4d0269897da000000000000000100000000000000000000000000000020f5ce7f2db68efde598b83474b5a87a6b370a42d4f72227049cb83d4df11bb6a10000000000000001000000000000000000000000000000204a15bacd4d08e8dc5188fa2617ce3f2048ab093a457dbb1568a132452c1264e70000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000001f0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020f9051b50a21ced87b20c943f4e2c2f753afa0b310bce31df963b96a0c87a200a000000000000000100000000000000000000000000000020c594fd6aef9bf0a9ad32de1c2b21fef40fc7cf55d5778a950bfba5bcec02647a000000000000000100000000000000000000000000000020b4a1b1f3f1cb855740daf8c4833a49820c58975955c04f60f0e741d105e354a6000000000000000100000000000000000000000000000020b705227efab8bbcce7e6efa6e6c2c8c24b0165a04b60ba4382b0c252dfa09b540000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000140000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000001000000000000002082733cd589abe0f03b4dffe58247afcd2988371e94575cc7b881fbe2971094360000000000000001000000000000000100000000000000209b10e94ccc495ed067a2c6b3180fdcfddf4c8bc779cdf7fc14dde8feb399309d000000000000000100000000000000000000000000000020080b28b1dece6dde43a662bb2943cbbcfb4977254ddfb567d20ec3694d07decc000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000140000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020ac03bba973f9db60405efd99de3388034a573b54a4261eb03c3e2c20b8bd8087000000000000000100000000000000010000000000000020576d77dac3a70e1802ac9cbaf6777f6090720d9e7fccb6078e57d4811b497ee2000000000000000100000000000000000000000000000020ace429d6a2e0ab83426a9b9ba04ca6bb90f71e7ceee02c278a82a7859d4bc1820000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000140000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000001000000000000002020c3867137bd66e5ae3cc59759dbb65bc16ccac01adc0650317f7aa6742d485a0000000000000001000000000000000100000000000000209c160349b93bdba6b3a6c3afcd2503bc1a79db30aeb896003c136aefc2ff9b3a00000000000000010000000000000000000000000000002005c7231b545188d801508269d5e616db314e98d0d1d96b4d859cba418919dce7000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001400000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000001000000000000002036af30d89ea435f7697c2571f0fd4b21940d3569d3b6aa5da5ab2a139ec941dc0000000000000001000000000000000100000000000000204d597031c84975b5e61070724ab3d606668a57320d7d99c5a77ab1a1d5221bb4000000000000000100000000000000000000000000000020792b54430c2c7a5202334fa577281d00396a0c9d5a6149e8832c12c7a186e7b6000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000140000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000010000000000000020e6129739f096f01e63ff5fd506580df7ed092542294fdec8b931b3ab9e3d289200000000000000010000000000000001000000000000002064127693e8da9c8e8a48196327c3c787b11da3246b2e852de189d6ccb7f2da7a0000000000000001000000000000000000000000000000208eb0d4e58e0649d2818142c4c7cefb08dd13094d3a575e5054570ef7155a1a53000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f000000000000002f0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000206762968d2a038b693f39a5fafabb81fab3aa9f357a0350c916992948fd26e55000000000000000010000000000000000000000000000002039207a50ee132e79b7d0ce2800c532ee3a79757e9182e86f047b4749e0a8f553000000000000000100000000000000000000000000000020a99ec68e5e702c95d72c271dfc6b7fba83a95d182bfe10c3b55beafee6b02033000000000000000100000000000000000000000000000020bc7cafa2d5bbcd43a2687bac1aaae39ea07c2b052355ee18f7bed28530381a1900000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba3610000000000000002f0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000206a66eb0dfb8905926c23fa9e6367d1d376993dc9d50000669fb74f7cdf2a1ceb00000000000000010000000000000000000000000000002046c654f85322efa17d6f767fbdb262d58f272795ab09da595b797b6dbc104b67000000000000000100000000000000000000000000000020eb65f60cc50d4a78bbd6805dbdb2bf94cc2376e36aa8b971a31f71d4de0675d8000000000000000100000000000000000000000000000020f69c63796b0fc3bb3288db5fc6b6321528bbbae678a35651696d958320b7b7430000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb000000000000002f0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020ca065fdd78dac515b99610f258fe14968d10b9e20f8bb65813195429d99bdadf00000000000000010000000000000000000000000000002053f8d1326552cc01162d03184cb369965f4fe3b3f9288f37fb45fe4cb085e3d900000000000000010000000000000000000000000000002006426e33baa1776913fabf5a4a6b22a45faa4944ecb6ee3596d2a7f071dad382000000000000000100000000000000000000000000000020907caeb633215ff4129e7dab9f17c9025c93f92b16178fd8678a98fad237f0c60000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002f00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020873b792ec4e2410a853e85a77ade2297f0c5052debe2f4a72bc8be27e11aa763000000000000000100000000000000000000000000000020c2c3840e2225f4c86bdad2b4e2fdb543bbc7c0eff9166fd7bb13cfeeaac17bdb00000000000000010000000000000000000000000000002045de5171730c798b920963229c38e2585a2ba74ae374a05c055e8f9ca4de381a000000000000000100000000000000000000000000000020f873579facce3b51fb36341332ab2926a95297aa0acd0b4108cefea53d9e1c8a00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee2000000000000002f0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020363e68339dbddefd48c83175cca73c718742589e41321b9e3ba208909cfd915800000000000000010000000000000000000000000000002088652ad02d50d76bbfaa8b1856252bba2bace61a0c45f2856992f5b6a2c97595000000000000000100000000000000000000000000000020fce731c6ff148191e5989829d154266d461abbe1b87f3bf49e080e482df6295c00000000000000010000000000000000000000000000002083502f4dae1d1e7cce3b35cd08cd8214523868a7bad81a68fd16bfd40a434166000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000230000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000201aeff246b42ff765abb4a54feaaa121e65140f197557feb8bf84c12e9f9cc26c000000000000000100000000000000000000000000000020c1d918bfc6a90fe225a1ed5b38fd5f39628d83f18dd4387d4b4ab6a9b10e1767000000000000000100000000000000010000000000000020cd2cd9ad2c779aa3995be1014c80f94a5247dc5109218180e006fbbe588ce2d800000000000000010000000000000001000000000000002020ca2ebe06b78b863c42ebd67e820162645990710fb2212c31964405270d49be00000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000230000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000204f31ffbfd0e93845466096a7290c6e796da7b8eef869fcf2e22c31915eeda6e10000000000000001000000000000000000000000000000203ed38b1bd3bc3ddd75d04c4629fd665a304c5dab0b4910b39bfffbe10171a7f6000000000000000100000000000000010000000000000020dfd7eac1317ff666e7a446a260d70430c9aa0f0bfccfe2edf4ae24a5d163595d000000000000000100000000000000010000000000000020cb0c915a2fbf42f67d8ddb4687cdb94a70ea6dba8c337fad662aef43a1ff09120000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000230000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000000000000000000200f140f9e31aac227063bc01121f02c025b3285deb2e8fc7ef121fedf9f1736e000000000000000010000000000000000000000000000002086e7040a0774570f9960fe464fb83c42abc7b879f0dfe879f0de85735aec02ad0000000000000001000000000000000100000000000000205dea807bd3761c569e5d91569ff1a4d18ca2750ddf526909660f91b2f84080cf000000000000000100000000000000010000000000000020ec94ab368df3700c4e485459b45d7544203947bced6933b6d2419aa51552b1e70000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002300000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000204754d4a00b78e831b7681bf22ec5a300527459ecea067b4ce92022571531057e000000000000000100000000000000000000000000000020efd9f706f3b59a5d1d59f20f48b351840e733afcd7bb618967149f2aa78ed243000000000000000100000000000000010000000000000020c802860c649238e4c1cbd0ff648821a708a95501e146298b5b303abf07320669000000000000000100000000000000010000000000000020ce508bfa21ae59f4e3a574d7cf9aa2266b30a92dca771c1fb0e1be0bca3e9fec00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000230000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020c154628481f4f2e5a3c3b45b667c4176aa437bf02ff4087354250339bb4fe09600000000000000010000000000000000000000000000002018bb48cc6fa644a9082407ccc46de0476228f9478d12605334faca8cc021fef9000000000000000100000000000000010000000000000020378b42427141ebdcf4a6aaa2ee39a4e2bd01cb4125d3f5ce563ae81c900aa929000000000000000100000000000000010000000000000020c1bc4adb66edbd4e3dab7de23832af2889cdfe7d4f7313a79599994c65f1d267000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a6000000000000003b0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020c1934ee86183446a30ea734b2dfd4b55040db13048b55756e26319ef2bf41196000000000000000100000000000000000000000000000020d6ba9716b244280517fc338189ee3d18ef53ca399f72746f13fab57a2218a56500000000000000010000000000000001000000000000002013cba62cb82888bb083b50937d466b49f9391c00299bd77abb46de4352465093000000000000000100000000000000000000000000000020a3c68cdf76781d19db7aa603f4cd91ea38edfc0b5126585e0c4cc27eb1121e50000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba3610000000000000003b0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000203dbad06c47412cde657291699361e7df3f49410981533a5b98eb5a7b822b79e800000000000000010000000000000000000000000000002017de19751749ce0d54847a722097b43c34cac652dc95e009a1582a98f79e57e1000000000000000100000000000000010000000000000020d1b5b1709939c022502c02de40058bf39c150bc062b6e13ba9efa821c1b2284200000000000000010000000000000000000000000000002081d62fb6f8e3c63bb07414f173e2f1761186f3a609b96be8e54bf144e18bd1e9000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb000000000000003b0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020e8780357828dfcc1dea266c0702c4256387aad7a3ec5bead3d5db0c5c4a4ca7d0000000000000001000000000000000000000000000000209f234605cf01ef33d332204251222525c89be80ab747123af25517094cb7af9d000000000000000100000000000000010000000000000020de3c1116c517fc559702c15da18fca7713ea045f49bee0d28a5b11b093f744f5000000000000000100000000000000000000000000000020c8c39661891e6889268d1a75425c16fa10b5ce02a5817678bfb61fd4d7ba745b000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003b00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020cb90048f4882d47276cf3683ae16a70258671d78dd923e6201215df11e3778560000000000000001000000000000000000000000000000208d08c383a659604b451ffe2487072ec95148a1d9b296a7c3b24165cd2e9af15400000000000000010000000000000001000000000000002096a037551b0b573c983aaa7a75192a672a3c09151e279ffd3c1e0e670d35fd370000000000000001000000000000000000000000000000208ef32cdd20ab9840d12ae9a0d741f7d3f389289d74ea182f48337a1058f3b15d000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee2000000000000003b0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020eda4a40d9789e39711c1618a46fd381d5cdec0b84999d1d7954531cc90a2a7110000000000000001000000000000000000000000000000208481796e2bcdf1b590dbf05053d7cd86a4031b1a280958468d49c2edd113db8f00000000000000010000000000000001000000000000002080cf796e32484601f36528ae033f1d268f38cb3aa9d351ba1b0fcd4e2043d757000000000000000100000000000000000000000000000020a79432284160ffbe7605792344dd2c3b75b783de349a59eac5f705dbb10d4fec000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000310000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020e7cde93b02f69b3bdfec265c0a80e30146008063d4d41d7952e09fef525ba56900000000000000010000000000000001000000000000002088b9c36ce6c205415134c822e13277bf26dc808cf4164d31fb3feb408d5a5e06000000000000000100000000000000010000000000000020d668a432d047c9e275f7c7d20e0a761a44ce7e63d76a8974123279ebd303ad5300000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000310000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000209a08d4167dd497190fd45acf9002d380b4bccfa4516d724073519f6dcaa34ff3000000000000000100000000000000010000000000000020eee7a3b5bd32066ff6fae493f197ab42d452b72e6653f36c785e7ffcaaef4bdc000000000000000100000000000000010000000000000020a7afa996971e49948edcc6953b8e85b3a85abca1a8ca02bb441959ca7fbddc1e00000000000000010000000000000001000000000000002025513b7f08a347e3b4653b6a5b7b4504d17f3335eb68b911a07580668480ea5f000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000310000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000000000000000000002055ec1c4f82144f667ff57b0b35d09d06d151bcd64d77112ba763dbb421ec0f560000000000000001000000000000000100000000000000200478375712328a539e0af75efba3145a5b83977f65fd6f26f2bef0e92f4cf47c000000000000000100000000000000010000000000000020f956d888804e64a270d247562d2e4df7cb3baaff4b906f94b4e64fcb67d3fb92000000000000000100000000000000010000000000000020a61e4bd78e6377780bb7580457ace8abedf45db5c6b1905e0fc76ee6b540ec6f000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003100000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000200bc04b47f026e77bdba7fa5067531c8b573f79f8515535e0a7f6cc54758ce5f5000000000000000100000000000000010000000000000020e4d3556944aef39dc24c83873c204349c90de3d0febf5e94f5d30752aacf58d1000000000000000100000000000000010000000000000020695844727e2fac06bb31a161155a39527775fb0591002573a9e4d4aee1e794880000000000000001000000000000000100000000000000201273eb79132092546fe9e443e04ce70d652607cb46845d8269cc51b07a5e2636000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000310000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020907d7781ed9c8c3275965d95e3143f70ea11068a85f6abc38fa31a0fbdfe2c26000000000000000100000000000000010000000000000020a834b11452e58e60e9d991391a3e2e59588fa25493c192ba98d1d33f296b4e32000000000000000100000000000000010000000000000020b4683887999b2d9372eba712b4bcbe56fe7c3bbf097eb71436f394f19c5e540e000000000000000100000000000000010000000000000020ca0bbcf3ba7d635c190762d1905f0cdb8d6b2af98d668d282ab970819d0796e0000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000350000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020940f95c06a507e6f7d898e90b69cf59c322cbc1bf161c7e7708a20e2008daae000000000000000010000000000000001000000000000002019594bf3fa8c4ace4d35341a4d29a3224bf349b4111630660fbc89ec6aac104c000000000000000100000000000000000000000000000020f4d1e64380a2c05ab0dc64ea31b5e288a4325921fa907811ded50419cc51d1ad00000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000350000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000000000000000000002053e10520c89a9d1c8bdf0299253b3e1ca6f732d90152e564751bae242a1ea2bf000000000000000100000000000000010000000000000020758d3cb1dae81bd7b5510b225e37ec1c33d27e558dbe4753d95613ab2950d5bb000000000000000100000000000000000000000000000020ecf960f1bd96e938be9efe0e8178c6faac8e4dade22047baafaa2cc5b776587a00000000000000010000000000000001000000000000002025513b7f08a347e3b4653b6a5b7b4504d17f3335eb68b911a07580668480ea5f000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000350000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020eae24cc712d4f1a65e36209bf029b296466b50798ad83a68022cdfe9d0a71b53000000000000000100000000000000010000000000000020d93941bd50076e052ac499d54a60936db5cc808ce93db11f3b5f2dbb9e84fdc900000000000000010000000000000000000000000000002057231a860f30ab1475bd8cdc0a3b4a8273fc215ab0540eb9f5f6b4129d47a3f6000000000000000100000000000000010000000000000020a61e4bd78e6377780bb7580457ace8abedf45db5c6b1905e0fc76ee6b540ec6f000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003500000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020a1c9ebb7e9894aaf5a518e2e5add167f6b300838e38da25e7147996653a3358800000000000000010000000000000001000000000000002018f7652e6b6650db62a7971a3982b0cb933246f7ee71973244096397d4069a48000000000000000100000000000000000000000000000020e07633752c9a7d0ab4d4825434743a1a21102cdb34ac00f9cb0067d34ffca5d90000000000000001000000000000000100000000000000201273eb79132092546fe9e443e04ce70d652607cb46845d8269cc51b07a5e2636000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000350000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020c0aebb3503b26954be7c1775bef21ec8009433f43163b9a737d5f6404505ab33000000000000000100000000000000010000000000000020f1df539161429e1cffb6b4435a018168f9836656cd0fc0043c6de7fa4ee6ca11000000000000000100000000000000000000000000000020f53683e29b7f89c0854446521e9f08cece64960ee2669247016ed70294c71940000000000000000100000000000000010000000000000020ca0bbcf3ba7d635c190762d1905f0cdb8d6b2af98d668d282ab970819d0796e0000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000380000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020d5d9e84739c0813f71d0359e99b9765469d7a41ef279c691c2254c026b06582900000000000000010000000000000001000000000000002092254bddc93af51db85c84258645a7368b11c67713d9b7edb7798f818a67b7d100000000000000010000000000000001000000000000002013cba62cb82888bb083b50937d466b49f9391c00299bd77abb46de4352465093000000000000000100000000000000000000000000000020a3c68cdf76781d19db7aa603f4cd91ea38edfc0b5126585e0c4cc27eb1121e50000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000380000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000001000000000000002055d67c076c5d396d33996ca84ffc7f8d71fd9b1d73515cdaa4c72d0551f4e075000000000000000100000000000000010000000000000020659bdac5e12fafcfbfba4939413f2dbcb8f4622495fa9d7b4be9541e24bf3f5f000000000000000100000000000000010000000000000020d1b5b1709939c022502c02de40058bf39c150bc062b6e13ba9efa821c1b2284200000000000000010000000000000000000000000000002081d62fb6f8e3c63bb07414f173e2f1761186f3a609b96be8e54bf144e18bd1e9000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000380000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000010000000000000020e3f22df1ef809bdd780125e0869fc594b795001da2cb5255ac86c869e41bb3d100000000000000010000000000000001000000000000002042ccda5e4f3610e7833759239b87dcb5feb5654641bd57359476edc936a15e8e000000000000000100000000000000010000000000000020de3c1116c517fc559702c15da18fca7713ea045f49bee0d28a5b11b093f744f5000000000000000100000000000000000000000000000020c8c39661891e6889268d1a75425c16fa10b5ce02a5817678bfb61fd4d7ba745b000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003800000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020dcad9ad63ac90f36294e45ac4e2910b6be1ff4ab582ec77d94b36aee2aaec3b7000000000000000100000000000000010000000000000020fdf80980218da61f93fdbe491188fb7f3191a3b3bb5166ce6014e8f20d70673d00000000000000010000000000000001000000000000002096a037551b0b573c983aaa7a75192a672a3c09151e279ffd3c1e0e670d35fd370000000000000001000000000000000000000000000000208ef32cdd20ab9840d12ae9a0d741f7d3f389289d74ea182f48337a1058f3b15d000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000380000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000202317a666cb7ea69255e854e67aa19b531a4a222717cc9440e4546a3fab5d7ed80000000000000001000000000000000100000000000000209e11faaa3c075b6834d4668a36d21b8294c07a039a232c100665d90b3d03bf4500000000000000010000000000000001000000000000002080cf796e32484601f36528ae033f1d268f38cb3aa9d351ba1b0fcd4e2043d757000000000000000100000000000000000000000000000020a79432284160ffbe7605792344dd2c3b75b783de349a59eac5f705dbb10d4fec000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a6000000000000000a0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020476556fd01eea8de8589b358ad655136b4529120df47439f805a84b80db3f0d4000000000000000100000000000000000000000000000020dfa1f4a78895997367f9cc44c38621692b6fc048ae50b225156222237c41470e000000000000000100000000000000010000000000000020f7575ab7c2207c8a39c727bb104d9b7c0105c5ae631fc01ee25378fbc615b0d20000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000000a0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020e3b0a77cc98e77fc6fdd13ed8259ab6d4de79d49242c183c0de0d56ef4309378000000000000000100000000000000000000000000000020aa1f37e3209956f186a8818de28664641609ece32260276f3cd7bc90fd2eff250000000000000001000000000000000100000000000000205dc15f79b1aa0ed50e58e550fd41c07ace7cdd1101aa37ef4273ae5e9038146f000000000000000100000000000000000000000000000020d1816e01b598e08ee1c459e3283ac87d454a19f2e41f3f85158e9f10b9faef71000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000000a0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000010000000000000020d0c6ac0a7420d305c0b0db904bd7753c10e5ad7e852b470a6ff6c97163a1d16c00000000000000010000000000000000000000000000002070360d152385685b7e662a1e2a50c902712bfecfae32367357c1a56b444bbe8b000000000000000100000000000000010000000000000020abf88fdff603d4d880f1564dd8b5a9e24fd51a61c22d45624f73911e449bcf94000000000000000100000000000000000000000000000020dede73056e97d895ee544cd1f515e7f872b01d10ad51bde6457326fcf11c7b20000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000a00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000001000000000000002027f3bc54e0caa3cf10949e5571695f1c1507a702c9659e3798e08a9c705770cf000000000000000100000000000000000000000000000020930e0dd388f89437381d9fbfbd30a20cad6120bbd212c874b3c1322539175da500000000000000010000000000000001000000000000002009f1dd01603cfe8cb20303e6d66fb1ad83bdc7093f7a52699cb4afa68588b483000000000000000100000000000000000000000000000020d4666304bf2809e0fe3311603148aa6aef2cc88395ddc38a022a9c742dada87d0000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000000a0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000209a4f190afc1d5b77cff588fa4251a0c9a43a7844bb96ea2e5800bc106f21c0b70000000000000001000000000000000000000000000000200b40b1436d0bc1adaefb89a6d250d74c85d9475ff40591b745878d6727b5078d0000000000000001000000000000000100000000000000203c7ec701f5e4b6f4992798f93bc359521c17689c879f0a4d5728d25a602fe261000000000000000100000000000000000000000000000020c1a70db1dbbbf1d266cc63410c3e1f798fbc2f00cc35d561bc0706474f565a7d000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f000000000000001e0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000001000000000000002017458b640f162e7d2ffc58f6689da16dfa3d46aee041a56d60baba3307c3c593000000000000000100000000000000000000000000000020a2502a6ae92a724a6e2a3a94ad93bd71bd29b046475706a32afa43f571c551f200000000000000010000000000000000000000000000002070f93532da12d95bd9b02b2acb02b74a3a532fbd8d1ec178ca7acf3e54865fb800000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001e0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020ead80559e72048aad5e5aee9cf2d51cd297f81e63afc70a01bc77e252efdd4830000000000000001000000000000000000000000000000209556d77d8faa0780c175114ccc703ccef5e23f99123014f3cb64b72a60e79680000000000000000100000000000000000000000000000020635115868949cf601b309c4df546e182524084c9811bb9ee1fb0b250cc7303b00000000000000001000000000000000000000000000000201d592eaf7b775ac80f80f65ac71600e7b42e34c2b41369815d26559f705c392800000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000001e0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000001000000000000002015c175fafb17797c6df0b95eb3e0e3b53d779fa8704c43da7ecffc8f14d2cdec000000000000000100000000000000000000000000000020b1f59360b8604b8aeb5462a45975637ec382c2d69e9898248c3ff0b5c0f84a490000000000000001000000000000000000000000000000201ee947871b7c23ff35900da33157b598a2a0de9b805ba0c5a66fd0f7a777b96e00000000000000010000000000000000000000000000002008ef744cc4c71b3dc0ad6709747a269607614084afb6b3ce67e9224db4721b010000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001e00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000001000000000000002052bbf92873b320b044fee87d383170b9570274940c7da766e23b6f77aa71011d0000000000000001000000000000000000000000000000203ba2c97654de7bfcc8d53977aba10d361172900252c2564628c1c4d0269897da000000000000000100000000000000000000000000000020f5ce7f2db68efde598b83474b5a87a6b370a42d4f72227049cb83d4df11bb6a10000000000000001000000000000000000000000000000204a15bacd4d08e8dc5188fa2617ce3f2048ab093a457dbb1568a132452c1264e70000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000001e0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000200c76146bd78d259f950c8d58437a5baf9a6bb130c93e14380f25bd735a47e106000000000000000100000000000000000000000000000020c594fd6aef9bf0a9ad32de1c2b21fef40fc7cf55d5778a950bfba5bcec02647a000000000000000100000000000000000000000000000020b4a1b1f3f1cb855740daf8c4833a49820c58975955c04f60f0e741d105e354a6000000000000000100000000000000000000000000000020b705227efab8bbcce7e6efa6e6c2c8c24b0165a04b60ba4382b0c252dfa09b540000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000150000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000209a7f6ee04285cc053d122b4d2dc01674868c1c4198d702144ec6673d4f1735470000000000000001000000000000000100000000000000209b10e94ccc495ed067a2c6b3180fdcfddf4c8bc779cdf7fc14dde8feb399309d000000000000000100000000000000000000000000000020080b28b1dece6dde43a662bb2943cbbcfb4977254ddfb567d20ec3694d07decc000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000150000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000203ac1614b3ebad34b37931ec463de127c8bb45876ebd8f753c177b3b708f2eccb000000000000000100000000000000010000000000000020576d77dac3a70e1802ac9cbaf6777f6090720d9e7fccb6078e57d4811b497ee2000000000000000100000000000000000000000000000020ace429d6a2e0ab83426a9b9ba04ca6bb90f71e7ceee02c278a82a7859d4bc1820000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000150000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020b315c72fa41b10fad5bfe97985d9d38cdfb966274cd890d82281a154ddf380870000000000000001000000000000000100000000000000209c160349b93bdba6b3a6c3afcd2503bc1a79db30aeb896003c136aefc2ff9b3a00000000000000010000000000000000000000000000002005c7231b545188d801508269d5e616db314e98d0d1d96b4d859cba418919dce7000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001500000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020dee119a0ca0d75cbae521579b9854eb21e572f571eb2bc9024914fdc09b7d6760000000000000001000000000000000100000000000000204d597031c84975b5e61070724ab3d606668a57320d7d99c5a77ab1a1d5221bb4000000000000000100000000000000000000000000000020792b54430c2c7a5202334fa577281d00396a0c9d5a6149e8832c12c7a186e7b6000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000150000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020fb6f21306c23be5f073086377b0217641f535be016cabf1ed1dc1319d6107c3000000000000000010000000000000001000000000000002064127693e8da9c8e8a48196327c3c787b11da3246b2e852de189d6ccb7f2da7a0000000000000001000000000000000000000000000000208eb0d4e58e0649d2818142c4c7cefb08dd13094d3a575e5054570ef7155a1a53000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000070000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020c999afc4670b92c57b5bdc1307bc519e96e3f6ce67a073eed8ce5ef11f19e6e90000000000000001000000000000000000000000000000209f204347ecc49a4dd4d3f69e4b19d6830b85a828d152c59461d5362f5cb21db2000000000000000100000000000000000000000000000020e2c28e037d30a9b1cafa16794e336898558e512395cfcbdeb25f5f9c08dba0820000000000000001000000000000000100000000000000209dc48d41a2d4c25b90ae286b21502aabe4177429574808eac78aed0ba9b970ba00000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000070000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000000000000000000020586da498cb5e8901c3ec5d5508acf316da62a500cdb2968accfb203b1bea9070000000000000000100000000000000000000000000000020b145ff653878ffcbd547f41efb06850149e78220022ff24e962b02ea4e2f228900000000000000010000000000000000000000000000002040a8544c04c63db69600b9141e0ac5c5c6f2f63672ad293fbf89e200ff76e373000000000000000100000000000000010000000000000020980805126f19ea693dca5bc5ccf2a5596180ccaa904f73633259ef7aabc46a94000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000070000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000000000000000000202ef43b85290f15bd3d8362bd3a87c43882d99278fde40955f79539a250ddcfe5000000000000000100000000000000000000000000000020eb8edb8d4ad346a6f22f37ed4739e1db15924952e1f20fa8193f29d46a4bc88100000000000000010000000000000000000000000000002009a92cdc4908f685ce6b1345b92ded1885178ef2a7aded52334aff5467d169d000000000000000010000000000000001000000000000002006ee5d52edd1f31a36e4a7048840c9439f8ef7333453a9f11e8679d7622f8558000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000700000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020e567f0c95d913448523311549b056d21dfa31416ea385df80191fca7982aa46f000000000000000100000000000000000000000000000020b175634046bfa2f2b9b36cdb156d3733a331af1ccbc15e26288e9c28db4926d0000000000000000100000000000000000000000000000020e371e374acaaf27337ab92c2b2c57caddfa4c8901247aecc181d0f2d03ab2034000000000000000100000000000000010000000000000020a990e84ca9579c1d2e4df0c931557e80f89da355c549b820bd65c57780b190f50000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000070000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000000000000000000209472ffaa4bf8f28e6b02bce59e72f9ef36670aac23b3ce8d524cf6c94d853e3300000000000000010000000000000000000000000000002050248d415788337ff59a4c34ebfd10ed22ae84b98064ecf23658f168d00faceb0000000000000001000000000000000000000000000000204f94e19275c3ad1b0968aa350973ee3c5947aff002b686efe6c16032d7650d02000000000000000100000000000000010000000000000020ffeab4f50dd382561e76011c806cd6dddf3c589391f5e48ba92af3fc97a82252000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000250000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020630872b42a7ea5d62dfc2184c80e80a41c4d9f74c4b045dc408ae07cd64da6c900000000000000010000000000000001000000000000002089d1f5e7ddab385cee9ef3c6e039bf9dba4cd0c7bf5968af1e87a54f1c8b98f4000000000000000100000000000000000000000000000020254ad08d8f651887ccdedd4264cbe8ac8a820f273e7e6a6eec9571b2bee83fed00000000000000010000000000000001000000000000002020ca2ebe06b78b863c42ebd67e820162645990710fb2212c31964405270d49be00000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000250000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000207f982963152f03dde7968faf90b0d81ff99227c62e69923666ebc8173d6462eb00000000000000010000000000000001000000000000002048d27b60aa9bff8a3ad72fa50e506b89b2c70434429163e60518d3b54dd8d4f40000000000000001000000000000000000000000000000201e4829424cc3731a985d6b9986b78d322139a6d6965ff67e79bdb4abe7107c85000000000000000100000000000000010000000000000020cb0c915a2fbf42f67d8ddb4687cdb94a70ea6dba8c337fad662aef43a1ff09120000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000250000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020b123420fcecb372d37588afff58d72c753d9db2472c3503179752ce3dd8e91030000000000000001000000000000000100000000000000207295a2c10b1acf16129d092a7b9af37c389c4566a2bf22d8c69e0cf9f8719868000000000000000100000000000000000000000000000020504c7cfdf9b9d8a744d6d07015dc694b3c1e96fa04d9711bca9e89e47aea70bd000000000000000100000000000000010000000000000020ec94ab368df3700c4e485459b45d7544203947bced6933b6d2419aa51552b1e70000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002500000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000207ed847cad377a356eb74ddd306fd60d367e6c53509cf6d4d21669a79b2262fba000000000000000100000000000000010000000000000020d8587c740444d396342bde08fcc2aa14d09b3841a86867a8968a39985c1aae5f0000000000000001000000000000000000000000000000201b51cd96b5e7d3c5907dc40ebc575470d0b53cb58c9a11acee482a80587db2ca000000000000000100000000000000010000000000000020ce508bfa21ae59f4e3a574d7cf9aa2266b30a92dca771c1fb0e1be0bca3e9fec00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000250000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020cb6ec0139eb350e0de5a5a6e174e0cb4917a55d918936048b34724b384826deb000000000000000100000000000000010000000000000020dbb5f88bfd82f174b6b75b33b6e1b57f9e8c171e2884327da5b36cbefd7067110000000000000001000000000000000000000000000000202f7c3c123b082e8ba8e01175c4f6ae18dec43d9efebf55f2769ff4eef4d2582b000000000000000100000000000000010000000000000020c1bc4adb66edbd4e3dab7de23832af2889cdfe7d4f7313a79599994c65f1d267000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000310000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020e7cde93b02f69b3bdfec265c0a80e30146008063d4d41d7952e09fef525ba56900000000000000010000000000000001000000000000002088b9c36ce6c205415134c822e13277bf26dc808cf4164d31fb3feb408d5a5e06000000000000000100000000000000010000000000000020d668a432d047c9e275f7c7d20e0a761a44ce7e63d76a8974123279ebd303ad5300000000000000010000000000000001000000000000002046b3efbf9fe849057eed4011be8c3b38efe26eb8878cde78eb8294097925f1bb000000000000000100000000000000000000000000000020c4c2ba348af38d67dfd9cc164022cddac1d46506afbe47309984a11a22e5cf580000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000310000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000209a08d4167dd497190fd45acf9002d380b4bccfa4516d724073519f6dcaa34ff3000000000000000100000000000000010000000000000020eee7a3b5bd32066ff6fae493f197ab42d452b72e6653f36c785e7ffcaaef4bdc000000000000000100000000000000010000000000000020a7afa996971e49948edcc6953b8e85b3a85abca1a8ca02bb441959ca7fbddc1e00000000000000010000000000000001000000000000002025513b7f08a347e3b4653b6a5b7b4504d17f3335eb68b911a07580668480ea5f000000000000000100000000000000000000000000000020837109d660d62526cc52bbdafedbe03f6a2107d9cd4046ff4fe632edc8a10104000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000310000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000000000000000000002055ec1c4f82144f667ff57b0b35d09d06d151bcd64d77112ba763dbb421ec0f560000000000000001000000000000000100000000000000200478375712328a539e0af75efba3145a5b83977f65fd6f26f2bef0e92f4cf47c000000000000000100000000000000010000000000000020f956d888804e64a270d247562d2e4df7cb3baaff4b906f94b4e64fcb67d3fb92000000000000000100000000000000010000000000000020a61e4bd78e6377780bb7580457ace8abedf45db5c6b1905e0fc76ee6b540ec6f000000000000000100000000000000000000000000000020c351835d8f9fd571ded642d2ea409183952c3bfe9929b3438e7b686e6fb16578000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000003100000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000200bc04b47f026e77bdba7fa5067531c8b573f79f8515535e0a7f6cc54758ce5f5000000000000000100000000000000010000000000000020e4d3556944aef39dc24c83873c204349c90de3d0febf5e94f5d30752aacf58d1000000000000000100000000000000010000000000000020695844727e2fac06bb31a161155a39527775fb0591002573a9e4d4aee1e794880000000000000001000000000000000100000000000000201273eb79132092546fe9e443e04ce70d652607cb46845d8269cc51b07a5e2636000000000000000100000000000000000000000000000020175403d89e7c3ac80084ed2065e7901cb7bcdd03d95963ebd8da3d7b01656980000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000310000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020907d7781ed9c8c3275965d95e3143f70ea11068a85f6abc38fa31a0fbdfe2c26000000000000000100000000000000010000000000000020a834b11452e58e60e9d991391a3e2e59588fa25493c192ba98d1d33f296b4e32000000000000000100000000000000010000000000000020b4683887999b2d9372eba712b4bcbe56fe7c3bbf097eb71436f394f19c5e540e000000000000000100000000000000010000000000000020ca0bbcf3ba7d635c190762d1905f0cdb8d6b2af98d668d282ab970819d0796e0000000000000000100000000000000000000000000000020e71820b42e57fb95a3bc83b976f4fbd6a1d38465ef6c1e538fa87e39976b419e00000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a6000000000000001d0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020a89096b06ea97fc764549f477ec35dc13b208ea05aea251072e9bc82b6f3a78e0000000000000001000000000000000100000000000000202ec5ed8b835c098bcf1fbaa0f4aab5053575fbe2dd675f6a8528d2ae539d073300000000000000010000000000000000000000000000002070f93532da12d95bd9b02b2acb02b74a3a532fbd8d1ec178ca7acf3e54865fb800000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001d0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000206838e20cdd11196c2c33d5322dd690e81a3eee788ea691ed628a7ef36ca21b6b000000000000000100000000000000010000000000000020e4b2b21638b26d0fbd21e1a61477670910de9d6a5a534cc89f2e66926c92590d000000000000000100000000000000000000000000000020635115868949cf601b309c4df546e182524084c9811bb9ee1fb0b250cc7303b00000000000000001000000000000000000000000000000201d592eaf7b775ac80f80f65ac71600e7b42e34c2b41369815d26559f705c392800000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000001d0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020d0fd57f00841b509d4c6d2212ccb38587bbc741e02dedf856402a2bdd12ad0ad000000000000000100000000000000010000000000000020197b3fade2da4dccae7c39182e13ca3c80d7ab354bd093846a22e052814766ac0000000000000001000000000000000000000000000000201ee947871b7c23ff35900da33157b598a2a0de9b805ba0c5a66fd0f7a777b96e00000000000000010000000000000000000000000000002008ef744cc4c71b3dc0ad6709747a269607614084afb6b3ce67e9224db4721b010000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001d00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020e167853023255bc66f0953cc3ff2785ec81d96ef333e5412c12995ee607e79f2000000000000000100000000000000010000000000000020ea6edfa94c83df2c0120776cb5622744d2e6b641fe47e78813b62588fad5a6e8000000000000000100000000000000000000000000000020f5ce7f2db68efde598b83474b5a87a6b370a42d4f72227049cb83d4df11bb6a10000000000000001000000000000000000000000000000204a15bacd4d08e8dc5188fa2617ce3f2048ab093a457dbb1568a132452c1264e70000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000001d0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020977dcc0f390edc4c8e7c60ca37d139fd8af75cdd07d7f51df6f4a33958ded816000000000000000100000000000000010000000000000020fd33a21eeff04663387fcf1c31e815a571114521fabf808a5505ae8eb3bc6104000000000000000100000000000000000000000000000020b4a1b1f3f1cb855740daf8c4833a49820c58975955c04f60f0e741d105e354a6000000000000000100000000000000000000000000000020b705227efab8bbcce7e6efa6e6c2c8c24b0165a04b60ba4382b0c252dfa09b540000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f000000000000001d0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020a89096b06ea97fc764549f477ec35dc13b208ea05aea251072e9bc82b6f3a78e0000000000000001000000000000000100000000000000202ec5ed8b835c098bcf1fbaa0f4aab5053575fbe2dd675f6a8528d2ae539d073300000000000000010000000000000000000000000000002070f93532da12d95bd9b02b2acb02b74a3a532fbd8d1ec178ca7acf3e54865fb800000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000001d0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000206838e20cdd11196c2c33d5322dd690e81a3eee788ea691ed628a7ef36ca21b6b000000000000000100000000000000010000000000000020e4b2b21638b26d0fbd21e1a61477670910de9d6a5a534cc89f2e66926c92590d000000000000000100000000000000000000000000000020635115868949cf601b309c4df546e182524084c9811bb9ee1fb0b250cc7303b00000000000000001000000000000000000000000000000201d592eaf7b775ac80f80f65ac71600e7b42e34c2b41369815d26559f705c392800000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000001d0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020d0fd57f00841b509d4c6d2212ccb38587bbc741e02dedf856402a2bdd12ad0ad000000000000000100000000000000010000000000000020197b3fade2da4dccae7c39182e13ca3c80d7ab354bd093846a22e052814766ac0000000000000001000000000000000000000000000000201ee947871b7c23ff35900da33157b598a2a0de9b805ba0c5a66fd0f7a777b96e00000000000000010000000000000000000000000000002008ef744cc4c71b3dc0ad6709747a269607614084afb6b3ce67e9224db4721b010000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001d00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020e167853023255bc66f0953cc3ff2785ec81d96ef333e5412c12995ee607e79f2000000000000000100000000000000010000000000000020ea6edfa94c83df2c0120776cb5622744d2e6b641fe47e78813b62588fad5a6e8000000000000000100000000000000000000000000000020f5ce7f2db68efde598b83474b5a87a6b370a42d4f72227049cb83d4df11bb6a10000000000000001000000000000000000000000000000204a15bacd4d08e8dc5188fa2617ce3f2048ab093a457dbb1568a132452c1264e70000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000001d0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020977dcc0f390edc4c8e7c60ca37d139fd8af75cdd07d7f51df6f4a33958ded816000000000000000100000000000000010000000000000020fd33a21eeff04663387fcf1c31e815a571114521fabf808a5505ae8eb3bc6104000000000000000100000000000000000000000000000020b4a1b1f3f1cb855740daf8c4833a49820c58975955c04f60f0e741d105e354a6000000000000000100000000000000000000000000000020b705227efab8bbcce7e6efa6e6c2c8c24b0165a04b60ba4382b0c252dfa09b540000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000010000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020ce2da5dd3f1d2499114e62007db0bc8b52860a97086c4d1d9b291f96e0ac9c2e000000000000000100000000000000010000000000000020fc1dbba6f9b455616fa548f07000bd186f0be1060371081b1c952c87cb2969850000000000000001000000000000000100000000000000205bc3e12c36d4a2e20b1b195ac346c64db1219ed22eb08085da4d26fcd4973a5e0000000000000001000000000000000100000000000000209dc48d41a2d4c25b90ae286b21502aabe4177429574808eac78aed0ba9b970ba00000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000010000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000000000000000000020bf352c60784b74b941824f2d63cf3836272db67d7aeeacad2aebe65815faf2a5000000000000000100000000000000010000000000000020426a93f6deffd2b075525a4dae94d94e1a8e6a36b7caff23457ae4cce303aa10000000000000000100000000000000010000000000000020e625f3331016e7cd88bea7a7b855bae1ee013995c9ef355b8748e4878dd9c543000000000000000100000000000000010000000000000020980805126f19ea693dca5bc5ccf2a5596180ccaa904f73633259ef7aabc46a94000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000010000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000000000000000000202b14082c23a02f1d9d6db9546bbf2312f865ca20039d204443ce8702eca55d60000000000000000100000000000000010000000000000020f020441b9681e335c14a2a6c21dd8510b27a0dae0eec61b72fa315a598c8b87f000000000000000100000000000000010000000000000020ddf36e15c6d2cad2a2d13ca341f8f429ea1de4012e969c8489e61f092d7f701d00000000000000010000000000000001000000000000002006ee5d52edd1f31a36e4a7048840c9439f8ef7333453a9f11e8679d7622f8558000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000100000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000200043a3e5aa00392afa1907a58865b4472da25d1bb465711605b4bce58b63030300000000000000010000000000000001000000000000002031a4776534529348397cae2c9d705a8eafe3961afed35fdad2915095b5efbf33000000000000000100000000000000010000000000000020886082a9355e3afea404279c3bebead20b99039dd4aa0b3d0dab726e1e29aff9000000000000000100000000000000010000000000000020a990e84ca9579c1d2e4df0c931557e80f89da355c549b820bd65c57780b190f50000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000010000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020c82ca78efe4b64d5751be30417b609833fac301f253ecbffe41e8e9bee96cff60000000000000001000000000000000100000000000000206ebbae03bedcb30a6ac53ee99b1ba731605aa9a26e3a2462ba854af10e81ed47000000000000000100000000000000010000000000000020e211041d56d70c70c0fe4028f21a169da1cd4ca4e960c648ebea202d6c43674c000000000000000100000000000000010000000000000020ffeab4f50dd382561e76011c806cd6dddf3c589391f5e48ba92af3fc97a82252000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000030000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020b7c8e313feed160e8acf05ea4bfb6f176446c2ac0bc9f2abc9b686508ab52f6c0000000000000001000000000000000000000000000000209671522c78c40e86ef0e8a667a3e46003403098881dba6475154303e1c3e65ac0000000000000001000000000000000100000000000000205bc3e12c36d4a2e20b1b195ac346c64db1219ed22eb08085da4d26fcd4973a5e0000000000000001000000000000000100000000000000209dc48d41a2d4c25b90ae286b21502aabe4177429574808eac78aed0ba9b970ba00000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000030000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000000000000000000020c7c617fe5a8e3fcee395b25f5aad1075de8af4c63d02a7a5ccf0ebcc3757baa10000000000000001000000000000000000000000000000201fe587fe304db71b83584845c66187566a5fb7270585460d0475013af24044b6000000000000000100000000000000010000000000000020e625f3331016e7cd88bea7a7b855bae1ee013995c9ef355b8748e4878dd9c543000000000000000100000000000000010000000000000020980805126f19ea693dca5bc5ccf2a5596180ccaa904f73633259ef7aabc46a94000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000030000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020ce056a02bde877e3b53dd1faa6938832c1ed6fadac97fd1c0a924161b6298fa2000000000000000100000000000000000000000000000020254828136b43e34900d85850fa1210c25e9d1c343f57d660963534a5e494b204000000000000000100000000000000010000000000000020ddf36e15c6d2cad2a2d13ca341f8f429ea1de4012e969c8489e61f092d7f701d00000000000000010000000000000001000000000000002006ee5d52edd1f31a36e4a7048840c9439f8ef7333453a9f11e8679d7622f8558000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000300000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020c066efe3dfef71694149148ee6cb2872aefd1b4f2fc9862252abee42af30ed5a000000000000000100000000000000000000000000000020bb61afaca75702079a77cb4ffb618e76255194cb8ac3e09cf817da739cc0038d000000000000000100000000000000010000000000000020886082a9355e3afea404279c3bebead20b99039dd4aa0b3d0dab726e1e29aff9000000000000000100000000000000010000000000000020a990e84ca9579c1d2e4df0c931557e80f89da355c549b820bd65c57780b190f50000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000030000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000000000000000000002051a58812d4ed2697e8b31024f55f4062373f3388fd3d1701366bc11ac7a6b961000000000000000100000000000000000000000000000020e0698d131d704ec64db6c2ee76f3fff3800a90d403f81572de0ab695e257b3e9000000000000000100000000000000010000000000000020e211041d56d70c70c0fe4028f21a169da1cd4ca4e960c648ebea202d6c43674c000000000000000100000000000000010000000000000020ffeab4f50dd382561e76011c806cd6dddf3c589391f5e48ba92af3fc97a82252000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000080000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020657f400c23f985ef1ba27d0e61eec710dc328bb9ca9d9fcbbed56910fe31e4490000000000000001000000000000000100000000000000204e8bc169e0bffb7af86e442b025c73a9c0e2c8fcbfdcbdbfd7d568446045f1ae000000000000000100000000000000010000000000000020f7575ab7c2207c8a39c727bb104d9b7c0105c5ae631fc01ee25378fbc615b0d20000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000080000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020325051efdb8424e62d624b11d6b7eeb927253341aa3927034fbb0c8bf76c12ff000000000000000100000000000000010000000000000020785181f64823ec7b563f1cdf18df75b075d0a5963a0db15b3a9e3b0b42f36f1b0000000000000001000000000000000100000000000000205dc15f79b1aa0ed50e58e550fd41c07ace7cdd1101aa37ef4273ae5e9038146f000000000000000100000000000000000000000000000020d1816e01b598e08ee1c459e3283ac87d454a19f2e41f3f85158e9f10b9faef71000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000080000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000100000000000000202eeead91b20ab57873ca7c783915a4212ed0dc2f7961aab41598ea0bc8a47329000000000000000100000000000000010000000000000020a6ac2199362ac987e04ad05199fe7f8be4b60786974730c5353094867d88f34f000000000000000100000000000000010000000000000020abf88fdff603d4d880f1564dd8b5a9e24fd51a61c22d45624f73911e449bcf94000000000000000100000000000000000000000000000020dede73056e97d895ee544cd1f515e7f872b01d10ad51bde6457326fcf11c7b20000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000800000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020920e2801b283c6626363cc9ab21f52393946e3a96b1195de32cbde245b3fa8d8000000000000000100000000000000010000000000000020cf8a0f1ddefe7b4046369acf63949764e63161ba93c9f157762361c30aae1fc100000000000000010000000000000001000000000000002009f1dd01603cfe8cb20303e6d66fb1ad83bdc7093f7a52699cb4afa68588b483000000000000000100000000000000000000000000000020d4666304bf2809e0fe3311603148aa6aef2cc88395ddc38a022a9c742dada87d0000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000080000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000207835bfb9721cf146284a361fac9b687f1d55206c50ec6b050d1a1c0f1283c2f50000000000000001000000000000000100000000000000207a3fa367a923e5d12e87ccdb6cd209b3bc3cc0afde4ed5f86101656aafd030520000000000000001000000000000000100000000000000203c7ec701f5e4b6f4992798f93bc359521c17689c879f0a4d5728d25a602fe261000000000000000100000000000000000000000000000020c1a70db1dbbbf1d266cc63410c3e1f798fbc2f00cc35d561bc0706474f565a7d000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000290000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000204b88604a6608c6eb9ba3bede044e248d62becadb080a456681805ab480b64a2400000000000000010000000000000001000000000000002092ff38622b2decefcf8307aa018adefdfdaa06fc5a520c0c3a04990f33027694000000000000000100000000000000010000000000000020a346fbbeee725da089a6715dac946ab17533f7a77d571694ca1f1b28abb7d944000000000000000100000000000000000000000000000020bc7cafa2d5bbcd43a2687bac1aaae39ea07c2b052355ee18f7bed28530381a1900000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000290000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000000000000000000002046b4103846ae2c10a547fe76a6b5a371acc433d524e7482d268b79767c7664dc000000000000000100000000000000010000000000000020a7171d4fa61fd12128f5c4965241652c8ddc0c46e8c7a964ffcf0984ffd7f89500000000000000010000000000000001000000000000002052ba89114da2853e8fa07d551806893e486429c35967e90f1364b3d437abdd22000000000000000100000000000000000000000000000020f69c63796b0fc3bb3288db5fc6b6321528bbbae678a35651696d958320b7b7430000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000290000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000000000000000000002070ac9c1a1cc0f370eef8792db4e8a07c0a2b92e6fe6e9e2b6988a0f7d968a20b000000000000000100000000000000010000000000000020c53a0cd0107f66cc790becb38f5fee3c0f9d025124f698f0f2467cde1fbb7f93000000000000000100000000000000010000000000000020512ede82de18eac361b0347346d45577998f11f0951205ca4172f9d850b9919b000000000000000100000000000000000000000000000020907caeb633215ff4129e7dab9f17c9025c93f92b16178fd8678a98fad237f0c60000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002900000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020b6e877a515adfcb592a770d462b43e449cee8c738d16f969724fb575ae8bb0b7000000000000000100000000000000010000000000000020580ef9da1ed5e2babc435eca9ea73f027bf97010b64a6f63c69c2aadf5386b910000000000000001000000000000000100000000000000200df33e0d9ca72d06a434af2c6b972a6b03667095ac1a683b86514e0012239182000000000000000100000000000000000000000000000020f873579facce3b51fb36341332ab2926a95297aa0acd0b4108cefea53d9e1c8a00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000290000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020b09d90014812ec62509979fb5d4af4e69400cc5cd308cd96ced13e9dd3199e310000000000000001000000000000000100000000000000200dbed97830aea5096cb060a71b37c812fde90fb3a125044efa801f95addf091d0000000000000001000000000000000100000000000000204b8c5f91ebd422cdb230fb374d30859759d449e266b2903f6b848cf8e5baf94f00000000000000010000000000000000000000000000002083502f4dae1d1e7cce3b35cd08cd8214523868a7bad81a68fd16bfd40a434166000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a6000000000000000d0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020b2bd9166fb292fd068715be077faabd5100a082db2ee30b660a7a840a453295e00000000000000010000000000000001000000000000002057d79dbf8ed8b8aa3585c69adf87ef75ce64bdf75ac79a37fcbc979ba37b0a3e000000000000000100000000000000000000000000000020e4531c0cf3964a849077d3f66aca1c780770dbd36f02f9e591cac1251871b88a0000000000000001000000000000000000000000000000201fd5498b5606acaaede0db59eb7b7e660b4fbc8eb9fa1d0c6c2adb48d75d615300000000000000010000000000000001000000000000002036b32a939da9ce0665c0dc8758cd436bdbdcd123f116687574dc656492688fd200000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada97000000000000000d0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000205e14be2c5de23e6ed70fd6d842a4c814558815484501d6531472c2a4b9b7c626000000000000000100000000000000010000000000000020c3bd632f94a0f936e286d09638e32d9a2fc3eea8f13d18b4ae707edd67fdf6740000000000000001000000000000000000000000000000204e242999845fcac82f38a2f8827ba9e31d01ad478796f9013f43e0bec62d088f000000000000000100000000000000000000000000000020d1816e01b598e08ee1c459e3283ac87d454a19f2e41f3f85158e9f10b9faef71000000000000000100000000000000010000000000000020866ee41d6aa0ca3b1e6551db1dcd72ba03b3f98c048ffd0a3d7da73285a2f4680000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea000000000000000d0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000000000000000000002090ff676b9c14f4671a0e91cf403a88fb0b22e7a8a8a370aba0a28e26bcea1ac300000000000000010000000000000001000000000000002020093024ea2eaeb3c5934a41935a11dab2086c3d0aab8084952a99d9f0d224c20000000000000001000000000000000000000000000000207e61af4d68362cc7280f55cf450babaa4c27e0d7b623080a1dc3e5db95a6761d000000000000000100000000000000000000000000000020dede73056e97d895ee544cd1f515e7f872b01d10ad51bde6457326fcf11c7b20000000000000000100000000000000010000000000000020e42c454c3993826e0a6d48b07c4411d80845494641e8b21eb0ae999474091fd5000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000000d00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a4000000000000000600000000000000010000000000000000000000000000002031239eb1c08af680c4f00771654ce894f0d3587f58ea53c47ed4a11c1fa85145000000000000000100000000000000010000000000000020a91a262b04c6a7139a4bd4ed8b0f30807db95327049cf2a6d7b25f8be94e37b90000000000000001000000000000000000000000000000208184ee99edcbc305656197375ced84668d6a6dfe60525a4437554af40db6661e000000000000000100000000000000000000000000000020d4666304bf2809e0fe3311603148aa6aef2cc88395ddc38a022a9c742dada87d0000000000000001000000000000000100000000000000209d162dc7e8528b52a0a0cf62fcb14ba0e7e39ef07651c6f28418b9f4611eb9f800000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b000000000000000d0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020eb8d9836cb953c6437c496ece6cbdfdd7243ec51671ccb3af47a85fa778e312c00000000000000010000000000000001000000000000002018c3f53aac4183df50ec2d566e245042dd3e3d71adf78621df52d71069399b8400000000000000010000000000000000000000000000002047d66e60185c2492df2be91f5c8e879243c3ec6d4ebe0b5f2c37fcf0fff4d188000000000000000100000000000000000000000000000020c1a70db1dbbbf1d266cc63410c3e1f798fbc2f00cc35d561bc0706474f565a7d000000000000000100000000000000010000000000000020c500325dcbc68fbe8447a4b559f0e00f813f0f811d1383f87dd85e9a2f6b4ef1000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f000000000000002c0000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000100000000000000203143eaf6c1aa46c7aacd87875465de486e36c316b7a0b8bddd6c1517dc726d4d000000000000000100000000000000010000000000000020f10b3d1735c0e4a98365cd6a45c7b241ee1170e0a7ba2fc4a24bab4dfa03f86b000000000000000100000000000000000000000000000020a99ec68e5e702c95d72c271dfc6b7fba83a95d182bfe10c3b55beafee6b02033000000000000000100000000000000000000000000000020bc7cafa2d5bbcd43a2687bac1aaae39ea07c2b052355ee18f7bed28530381a1900000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba3610000000000000002c0000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020325148bc2c92b4a9b7fbd60e3c2c802e14a460b09bb186e104c1c59b926381ac000000000000000100000000000000010000000000000020bcfd43a16b89cd418f8366dfd07ee2192ea7ffa028e030d1b656dc88979acb7c000000000000000100000000000000000000000000000020eb65f60cc50d4a78bbd6805dbdb2bf94cc2376e36aa8b971a31f71d4de0675d8000000000000000100000000000000000000000000000020f69c63796b0fc3bb3288db5fc6b6321528bbbae678a35651696d958320b7b7430000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb000000000000002c0000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a00000000000000060000000000000001000000000000000100000000000000204f0fb56f75e03da7f2f554b9aab31d03c16451499c7e038f1b1254547541cefb000000000000000100000000000000010000000000000020392bbf45b43f0b143a079c45cdf97d23e309c818a7f50d8a138242f783f140e000000000000000010000000000000000000000000000002006426e33baa1776913fabf5a4a6b22a45faa4944ecb6ee3596d2a7f071dad382000000000000000100000000000000000000000000000020907caeb633215ff4129e7dab9f17c9025c93f92b16178fd8678a98fad237f0c60000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002c00000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000100000000000000205d5491afbc2809464939001fd12ae88cb0a41ac4661174168145ed550bc70fd1000000000000000100000000000000010000000000000020facfada9baddf0e1d85bdc12bcb699700bc1eef3a5c1ac428f0a1b755f36b17400000000000000010000000000000000000000000000002045de5171730c798b920963229c38e2585a2ba74ae374a05c055e8f9ca4de381a000000000000000100000000000000000000000000000020f873579facce3b51fb36341332ab2926a95297aa0acd0b4108cefea53d9e1c8a00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee2000000000000002c0000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000001000000000000002045f539421644e8c322c67c727085f4fa90364e2b03fedb21592e199092e759af00000000000000010000000000000001000000000000002045bc4c337b54e6e486f7686f4544d67b52d3d9407afb6f807b84c181ecad3077000000000000000100000000000000000000000000000020fce731c6ff148191e5989829d154266d461abbe1b87f3bf49e080e482df6295c00000000000000010000000000000000000000000000002083502f4dae1d1e7cce3b35cd08cd8214523868a7bad81a68fd16bfd40a434166000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000180000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000010000000000000020e37ac79746bf4ccddc8c206c6aed5212120d8eb3fc8f9deefaecc4cb8cee272600000000000000010000000000000001000000000000002064e8ee4e1f10a0c37b320e29748186b9e21c030e00ccb00c88b21962c5f0f301000000000000000100000000000000010000000000000020087a599f409cb7bacc0662f1cbc4762c6f1a1276b1ec901eff46c07ae65a8c6900000000000000010000000000000000000000000000002069689184b6eb1ae40e108c1a961e1f8973f9d7b7c50392b41d11c8cbe2dc0314000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000180000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d90000000000000006000000000000000100000000000000010000000000000020cc0712b34302d3e6312f8647a0a6fa2b486544a0d2e848deaf69f02cb204a167000000000000000100000000000000010000000000000020b8f1edd8329da4a7d85eebc33d21ba29663838aa392d4b38abe6c3a3fc8039ba000000000000000100000000000000010000000000000020c6bf6988a3e7187fae893c7eac58fd5d4e190f4f27238b2c7529d1f3965c96c30000000000000001000000000000000000000000000000201d592eaf7b775ac80f80f65ac71600e7b42e34c2b41369815d26559f705c392800000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000180000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a000000000000000600000000000000010000000000000001000000000000002096aa3031b3fe3f10a3f58af8d0bdb75f0e49a9ba47f632761dcbaa87e948d0960000000000000001000000000000000100000000000000208654ba3f3a471881a1ca07ad0134da045fba51136fc896da6ec67bfcd91573740000000000000001000000000000000100000000000000203ef5c9702626ef1d8658d6fd366e6eccf85b6bc4df13c0bb45cf2cd03ed14cdb00000000000000010000000000000000000000000000002008ef744cc4c71b3dc0ad6709747a269607614084afb6b3ce67e9224db4721b010000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001800000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000010000000000000020c30eef258145d30eda1c64b433b7e983e0045f54639e7f4262d7f3c9a5ad2e8c000000000000000100000000000000010000000000000020095442c6eb9b5d21a073d82e33b0a318459f5eba2be957b08f2effbf317f97c50000000000000001000000000000000100000000000000203e2095fe80077dc9629cd9c8a40245961543a9420478c0c9442afc86a4142c350000000000000001000000000000000000000000000000204a15bacd4d08e8dc5188fa2617ce3f2048ab093a457dbb1568a132452c1264e70000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000180000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec00000000000000060000000000000001000000000000000100000000000000202303afb97227519b0d04097e4e48bcfc01846cc471033f9c5f9860318330912a000000000000000100000000000000010000000000000020887135bbc11bb37e81167b1bd7f635abd792ae414769e49a3d7009ecd03a6a9f000000000000000100000000000000010000000000000020375d4ed2adacd2b33684527fb299ea4f3b26ea60a3e425eec8be3753fb113dad000000000000000100000000000000000000000000000020b705227efab8bbcce7e6efa6e6c2c8c24b0165a04b60ba4382b0c252dfa09b540000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000210000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd70000000000000006000000000000000100000000000000000000000000000020b0ab6e706afe61983c5bf1d6e3d09621da7d9cd32bdd7e2130b81dcc46ef5802000000000000000100000000000000010000000000000020d087600766bd1df7913f14ae88a2e9b5b651504535f46ee5da14954af94de668000000000000000100000000000000010000000000000020cd2cd9ad2c779aa3995be1014c80f94a5247dc5109218180e006fbbe588ce2d800000000000000010000000000000001000000000000002020ca2ebe06b78b863c42ebd67e820162645990710fb2212c31964405270d49be00000000000000010000000000000001000000000000002051e2ab3fc87fd45a6f0510b6dab089a4a35340b297cad824c3c231bcc90b6ff50000000000000001000000000000000000000000000000205e0b72ae4cea1696148d617da3c751d3e724d8e66216104d01f22c824dba361000000000000000210000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000000000000000000002086cb5263dbaf418e96721addfd841cb67f9896781c9e8093170a2bebd35c8a0d00000000000000010000000000000001000000000000002005e8acde41240846b1b148e6f1731d982d9499b315b49571f3c4e12d88da5822000000000000000100000000000000010000000000000020dfd7eac1317ff666e7a446a260d70430c9aa0f0bfccfe2edf4ae24a5d163595d000000000000000100000000000000010000000000000020cb0c915a2fbf42f67d8ddb4687cdb94a70ea6dba8c337fad662aef43a1ff09120000000000000001000000000000000100000000000000206c83da9d4b1e81a733151667cd61d33d2b4a9f94fa20db81f27fc77d908957ac000000000000000100000000000000000000000000000020eb884da0b5f6bc9a0b0af3a84975956cc545900f5fba8134962c1953f3494bfb00000000000000210000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020d7e7c468e06a8e592edbe1f9eff3164f0499e8ad0072da91fd4fa087ea820a1000000000000000010000000000000001000000000000002064922111b65302bddd53948632f9de2e4135390b8620b248b8a335776dedfd030000000000000001000000000000000100000000000000205dea807bd3761c569e5d91569ff1a4d18ca2750ddf526909660f91b2f84080cf000000000000000100000000000000010000000000000020ec94ab368df3700c4e485459b45d7544203947bced6933b6d2419aa51552b1e70000000000000001000000000000000100000000000000207acd065872a4395005f197c72b5e526fa218af19e2f3c61a7dcc6cdfbeee5a92000000000000000100000000000000000000000000000020f43e35ad1b4fdfb7c951570c54faba8daa953eafe29f8406d54006d5dcc070c1000000000000002100000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000206394d562d30d4d72e250c260ecbf498fb3d176889437362e030db290cfd3b22b000000000000000100000000000000010000000000000020aa69a887755987122b41014784240cfa2ea17a4e9b3aeba12dc7762da7582ecc000000000000000100000000000000010000000000000020c802860c649238e4c1cbd0ff648821a708a95501e146298b5b303abf07320669000000000000000100000000000000010000000000000020ce508bfa21ae59f4e3a574d7cf9aa2266b30a92dca771c1fb0e1be0bca3e9fec00000000000000010000000000000001000000000000002069f10c0def6dec102dea5fc481b64f3b770e7c9079b21ba4bb39924b49e5c5b4000000000000000100000000000000000000000000000020d480f8a11392332b11a486a7556907fdc2afb4d11df22f7c05a3e264dd2b8ee200000000000000210000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020af5fad30063ecb19951eac8cf60da4f79cdbb44b8297f1e89b410ad48971a7a700000000000000010000000000000001000000000000002001ae3a0c28f45072672fa1d9d722f50b96f496c2095844698ce94190b48086ca000000000000000100000000000000010000000000000020378b42427141ebdcf4a6aaa2ee39a4e2bd01cb4125d3f5ce563ae81c900aa929000000000000000100000000000000010000000000000020c1bc4adb66edbd4e3dab7de23832af2889cdfe7d4f7313a79599994c65f1d267000000000000000100000000000000010000000000000020dd99331c57e5bbdeacb1ec460129aa93aaedc92d262f25d199bc1fc1867f740300000000000000010000000000000000000000000000002003a481a44bf9c2c28d4f1884d0f5e5f504a0cc1f71bcc0a2817101bb12fb80a600000000000000130000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd7000000000000000600000000000000010000000000000000000000000000002090b33c873032a5ec45b5f67351f43f1b225ffd1fb110a4b7260789aee51a15d00000000000000001000000000000000000000000000000200314646f9ee1f2da5ba523b66c95aea6a8139895748d499e7ea045d702e5076c000000000000000100000000000000010000000000000020931fc0f60710e5550ab975b9da43260c532daa1aa0981b844a267625739ffb1b000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000130000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d9000000000000000600000000000000010000000000000000000000000000002046fbba018a8a4a6e5e98ff98b6f815b2ded50ca9a7a90716180a022f9187825d00000000000000010000000000000000000000000000002028038eef8da57d82ce0de2ccd5f23763a39282ebbd5fb66a194bcecda2353b37000000000000000100000000000000010000000000000020db75f2f16c24e1f86b75a7358eb0bff98736d767e792ba6500dc20c7a0f5b35f0000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000130000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020d2ffec8fc1d53dec40b42a89c0cae0dc549a408cc92a2e1de6b140998dee7cc700000000000000010000000000000000000000000000002093ba70ed0c69d5b989f971113943ff263312cc3df6696a3a6c2f47a6d1d600a00000000000000001000000000000000100000000000000208eca8e88d782a2c50068f91856cdb198e83fe75b53d95126db0ce5ba952fe000000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001300000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a400000000000000060000000000000001000000000000000000000000000000202c0f8e4c859a1b20d731414777322cb6bdf2e51a797b98f208ceff77a4018e8c000000000000000100000000000000000000000000000020fadaa9ce6822813c952cf021b4274e0bb104bcbd8836b7475735d844eea89533000000000000000100000000000000010000000000000020ef20ce255fff4244508dc0bf36aba9eeda1f94ba8303d6b23520cd52b598e748000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000130000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec000000000000000600000000000000010000000000000000000000000000002014803cd2ff52736be7bae826f5a432e5b31ba001fda84d1a774978f7b7f4f6f70000000000000001000000000000000000000000000000205761fffcf89e32cefe31af94ba1a6ba27b6bcb99a3272756b2193dd132a912fb00000000000000010000000000000001000000000000002003de737e05bbc77f493cd34846521552aa2f36e8056c458268b5b2cb15e5e244000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f00000000000000150000000000000020f3734d9198dd0c50151dab1fd6c015aea84429f69a6cb747110987cbe064ecd700000000000000060000000000000001000000000000000000000000000000209a7f6ee04285cc053d122b4d2dc01674868c1c4198d702144ec6673d4f1735470000000000000001000000000000000100000000000000209b10e94ccc495ed067a2c6b3180fdcfddf4c8bc779cdf7fc14dde8feb399309d000000000000000100000000000000000000000000000020080b28b1dece6dde43a662bb2943cbbcfb4977254ddfb567d20ec3694d07decc000000000000000100000000000000010000000000000020c64a168e6267d7b2e47dc0d09c805506aedd3c989278dc9afade3f67fdd80f45000000000000000100000000000000000000000000000020255823583a8da3833baa001f65dbebf3728b54f28cc6fcb3ddae62fff839715d00000000000000010000000000000001000000000000002001cf3ab44e71e590c71a2337eb83194821b251b19102d37952f3d2dddf6ada9700000000000000150000000000000020adfc46ea6e322679f1591a13b596b5a62d14c6178287c24cddbd4a9a7ff544d900000000000000060000000000000001000000000000000000000000000000203ac1614b3ebad34b37931ec463de127c8bb45876ebd8f753c177b3b708f2eccb000000000000000100000000000000010000000000000020576d77dac3a70e1802ac9cbaf6777f6090720d9e7fccb6078e57d4811b497ee2000000000000000100000000000000000000000000000020ace429d6a2e0ab83426a9b9ba04ca6bb90f71e7ceee02c278a82a7859d4bc1820000000000000001000000000000000100000000000000201601b7440b7229d62abcc5ba78cddc9bb0a4c27074daebf0310b226def6729f700000000000000010000000000000000000000000000002087cb0a92005238b6b0b4a100fc908564d8668772c89559db15a10674bdf8026d0000000000000001000000000000000100000000000000200e5894a0631c2b9eac69c26438ad9c40d328f80bf7733ab9f9ec548759fe5bea00000000000000150000000000000020236707f470cd90d5f7c1c9251c8f401a06e9e3169e3293c0553340aef8ccec8a0000000000000006000000000000000100000000000000000000000000000020b315c72fa41b10fad5bfe97985d9d38cdfb966274cd890d82281a154ddf380870000000000000001000000000000000100000000000000209c160349b93bdba6b3a6c3afcd2503bc1a79db30aeb896003c136aefc2ff9b3a00000000000000010000000000000000000000000000002005c7231b545188d801508269d5e616db314e98d0d1d96b4d859cba418919dce7000000000000000100000000000000010000000000000020e244d765ee74a8e1195e608c835af92a0b58fd698b292ad96f3d7190a45e6ed10000000000000001000000000000000000000000000000205e50941481bcd2462204a0c20c3d5e974ee471629e7a792a6bddb05dafcc4f93000000000000000100000000000000010000000000000020f9fbc61789ad4c7cf54c080eeef810d7db9b623f6b97e6a4d8ae1e9e4f04ff3d000000000000001500000000000000202dd599bb12d713d25ec662d72e1dc110459fbe5dd67c927e685c6b91802f73a40000000000000006000000000000000100000000000000000000000000000020dee119a0ca0d75cbae521579b9854eb21e572f571eb2bc9024914fdc09b7d6760000000000000001000000000000000100000000000000204d597031c84975b5e61070724ab3d606668a57320d7d99c5a77ab1a1d5221bb4000000000000000100000000000000000000000000000020792b54430c2c7a5202334fa577281d00396a0c9d5a6149e8832c12c7a186e7b6000000000000000100000000000000010000000000000020e2ec8e41c658860a5120137d5022ca3b005b7c38b9b4c1fe85db17458f923ec00000000000000001000000000000000000000000000000200e2f8c3e72ae276f36ad209c7a462ca801d0ef591a1ec611891c7405b76e862600000000000000010000000000000001000000000000002031b9c4fcfd5324de5e1fe8bba78f27b182911ddc18a428bb0c57212f7952279b00000000000000150000000000000020cf0dc83bb769670d401b6755f73c77a2f9dc0258034cf478f151bc21a9cb10ec0000000000000006000000000000000100000000000000000000000000000020fb6f21306c23be5f073086377b0217641f535be016cabf1ed1dc1319d6107c3000000000000000010000000000000001000000000000002064127693e8da9c8e8a48196327c3c787b11da3246b2e852de189d6ccb7f2da7a0000000000000001000000000000000000000000000000208eb0d4e58e0649d2818142c4c7cefb08dd13094d3a575e5054570ef7155a1a53000000000000000100000000000000010000000000000020c943282c0b36802764270508011e7a71f7b567969f94deb79d566b1037d9f7010000000000000001000000000000000000000000000000204f751f4808ddae7476b60af0c16f15d0f7caa508098e66cf117327b2e805808b000000000000000100000000000000010000000000000020490b41ec8f2b962c9f42721ed8e8e158976f2b2a3e5821529e7f930841cc5e6f0000000000000050000000000000002100000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000207ed7024cfb851e729174b4bebcb3b43b7e74c7bf66e598fab0fe7503c28e28b9000000000000000100000000000000010000000000000020eaac2ba91abd5bedfb2645fd52534b0616c14c1d5a3ca5c8b57f170ce3a0123c0000000000000001000000000000000100000000000000201fbe6a1d0ec9dde7d25203e3597b6c9a6d52920b54bd402cbb49f44f820ecf2c0000000000000001000000000000000100000000000000205af8bd106a023dca58d9a2c1bf942eb3d9260592c7e617bf3803dc794a32ef1000000000000000010000000000000001000000000000002022bf8b04326101ffd27638a46eb4cb6dede7d786c49f4991191e5801277902d400000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000010000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000000000000000000204ffcc22c01ec89a91054ab22f4a6d8c255900fc815ae761f6b79cbe12ddc5505000000000000000100000000000000010000000000000020e435bd09932a6fdfff43746acb12d98720259cdc5ccdd25434bebb30b64793c9000000000000000100000000000000010000000000000020a379eef4ebc6c053f9ebce7246a926491170464546aad4ee25049465b0409d3b000000000000000100000000000000010000000000000020b8b8d6428fc5a3713842905985e54c13a460d972a6fedc366bd72b9cf28b4717000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000002100000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000207ed7024cfb851e729174b4bebcb3b43b7e74c7bf66e598fab0fe7503c28e28b9000000000000000100000000000000010000000000000020eaac2ba91abd5bedfb2645fd52534b0616c14c1d5a3ca5c8b57f170ce3a0123c0000000000000001000000000000000100000000000000201fbe6a1d0ec9dde7d25203e3597b6c9a6d52920b54bd402cbb49f44f820ecf2c0000000000000001000000000000000100000000000000205af8bd106a023dca58d9a2c1bf942eb3d9260592c7e617bf3803dc794a32ef1000000000000000010000000000000001000000000000002022bf8b04326101ffd27638a46eb4cb6dede7d786c49f4991191e5801277902d400000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000010000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000000000000000000204ffcc22c01ec89a91054ab22f4a6d8c255900fc815ae761f6b79cbe12ddc5505000000000000000100000000000000010000000000000020e435bd09932a6fdfff43746acb12d98720259cdc5ccdd25434bebb30b64793c9000000000000000100000000000000010000000000000020a379eef4ebc6c053f9ebce7246a926491170464546aad4ee25049465b0409d3b000000000000000100000000000000010000000000000020b8b8d6428fc5a3713842905985e54c13a460d972a6fedc366bd72b9cf28b4717000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000003600000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000010000000000000020849f2b1f21df2ce4e701e935453d3a0e4115b6a2a8d075608035a88159cd9bf200000000000000010000000000000000000000000000002044077fb626c21b86b05e6607087853c88990ce85f620523b57ded4d77fa00deb0000000000000001000000000000000000000000000000203e91cf9fe968f301931a38865a0ef8edba05ddd912d2579a948fe706de6f6ec20000000000000001000000000000000100000000000000200247efeb8213912082e29ea2ef805a95ec45bbf7e81039cae60e1e2cc9f70398000000000000000100000000000000000000000000000020341d651035e8af56ef3eb04b8092ff8a9e98be3fc659ac423cd204e9e75c5bdc00000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000160000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000010000000000000020c68f67732b556dafe5e6cc710dcf62a4f48d186e1177070f41403a3ea73eda7f00000000000000010000000000000000000000000000002034e8bb0c47b5f4c22eaf01dde0989cbdb99d29897ff4d4ce2af0816deae250d300000000000000010000000000000000000000000000002078033d92f40a38ac4cc7886e9667aaded348dd6ee664101a06b369949493fbb900000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000000800000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000100000000000000208f4914df53c50f650eaeb1e2644816a4d6571c8eadc34d0851795c3f6011fdb00000000000000001000000000000000100000000000000206f6f08120957917775f7e12d4d9fd5057d4ceeffb3313e9087de7e748a235134000000000000000100000000000000010000000000000020f0c276f87c11a544c7dff23228f592c3b45684bf70982045e5db020d2ee3ff180000000000000001000000000000000000000000000000200da9d11aaea100332a200903d50e52aa35159a71dc619287204508beb8f25033000000000000000100000000000000010000000000000020abc911f24faf622896006bddac6f447414b585d2ae78c0de86550319adfa6ba100000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000080000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000010000000000000020fdfdce8038e314379ee4ef9d7435ac3bb67f81a42222ada24ec0b5edc53504e4000000000000000100000000000000010000000000000020ccea233de53953c0a0be4befba3181d87583ecf3ee74bc0c1b609c57583968bf0000000000000001000000000000000100000000000000201e7f0e6313dd3a48bccca00c1b7955c16cb8be0aef8b3ed3dc6c35130ff160af000000000000000100000000000000000000000000000020c6ac9586a5a315e9ce7efb473123de78e6943be10030817ad46f29947c4f461f000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000000900000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000000000000000000020b4b77abaefede57853903c9155b4817fcdab1186aa4d78f63abb195247b0ba190000000000000001000000000000000100000000000000206f6f08120957917775f7e12d4d9fd5057d4ceeffb3313e9087de7e748a235134000000000000000100000000000000010000000000000020f0c276f87c11a544c7dff23228f592c3b45684bf70982045e5db020d2ee3ff180000000000000001000000000000000000000000000000200da9d11aaea100332a200903d50e52aa35159a71dc619287204508beb8f25033000000000000000100000000000000010000000000000020abc911f24faf622896006bddac6f447414b585d2ae78c0de86550319adfa6ba100000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000090000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000000000000000000020e1c255daaa951116cdbc9d3e573d3cc9d0809bc3de7dbfc5e1243febc3afb770000000000000000100000000000000010000000000000020ccea233de53953c0a0be4befba3181d87583ecf3ee74bc0c1b609c57583968bf0000000000000001000000000000000100000000000000201e7f0e6313dd3a48bccca00c1b7955c16cb8be0aef8b3ed3dc6c35130ff160af000000000000000100000000000000000000000000000020c6ac9586a5a315e9ce7efb473123de78e6943be10030817ad46f29947c4f461f000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000002400000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000100000000000000200a02cb614bf9361920cbe4da3b2aa0e5c76b4a05ee7685fbe7fe220b69b26a31000000000000000100000000000000010000000000000020266177fdcc4d675568f2cf052c7330dd20c5ba8ea8ed31a8f8ca6b52ba5126bb00000000000000010000000000000000000000000000002037aee6114b0e64049396c6974301981cc460b03b844091c0c8331ea0fd369b4f0000000000000001000000000000000100000000000000205af8bd106a023dca58d9a2c1bf942eb3d9260592c7e617bf3803dc794a32ef1000000000000000010000000000000001000000000000002022bf8b04326101ffd27638a46eb4cb6dede7d786c49f4991191e5801277902d400000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000040000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000010000000000000020f9cc1a2a80f33c6788bbb46711c7348050019176cd19f0b641afa766ba2eccb60000000000000001000000000000000100000000000000207c89f71843664bf97f22261fc06f08da09e4584d95f32099263db21dece008f10000000000000001000000000000000000000000000000207ef776b622132973cde5e96a32f68fa0775ac3f4a7ac0d1cb6b14e7458c2c3a0000000000000000100000000000000010000000000000020b8b8d6428fc5a3713842905985e54c13a460d972a6fedc366bd72b9cf28b4717000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000003900000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000000000000000000020d487f7402c94e3aedfab01d6fdd66ba63ac7b0b39528b423a602d6a66c3a54970000000000000001000000000000000100000000000000202556b21fc161effaf655242fbec58230efd9a1ffaddb2e9252e9ca8c72b7a93000000000000000010000000000000001000000000000002049771951b4589a4f75df5ea08351bc0a5eccbbebfaa0b96a63026f42394809930000000000000001000000000000000000000000000000207f787b1eba07ba8e040c4ee51aec45ceca0b33082ebfdcb8e257ebb4a9dfd4cb000000000000000100000000000000000000000000000020341d651035e8af56ef3eb04b8092ff8a9e98be3fc659ac423cd204e9e75c5bdc00000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000190000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000000000000000000201dcf0c90a040b7d44aeece89de2caddf8d4241cd6302789300a382098b2275ed00000000000000010000000000000001000000000000002027f6be963ba9a68fb0cc1fa6dda0da09202e16643a07fa47b9e138f9c1c1c4d70000000000000001000000000000000100000000000000209161c5f561c46c1f9278bc201a1baad2f908ac10490c37cb8e0cd2207c0cd8690000000000000001000000000000000000000000000000205a0ee6b1b5a7910e92c7a5e35549a549beb666c8dc6cdb9739435f82bdcf952d00000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000001500000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000204bd56642aaf3c573e5cd15126fb7e1312436ca036171e0a975756f614b9206ac0000000000000001000000000000000100000000000000209e0ce15915d4ea607803d57136fe385cce0e7cb13820a1be73c873adb2e8c7f200000000000000010000000000000000000000000000002001b76aa22668890adea47c01aecbb7765240964a9d6de3b23a711d1271a0b80100000000000000010000000000000001000000000000002081c445d198d3219e5606d548b6529d92cf1f29c4b029656318db8e3c519d4b42000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000150000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff259000000000000000500000000000000010000000000000000000000000000002061040707b37eebcd03ebc1f93a574d2b169116e92f5267dba73fd8e4f762e26e0000000000000001000000000000000100000000000000204b88a4d6281a737d17ce6ddb1a0fb418eb07a0ed9a80d6f472307649d6f1f7d000000000000000010000000000000000000000000000002078033d92f40a38ac4cc7886e9667aaded348dd6ee664101a06b369949493fbb900000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000001500000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000204bd56642aaf3c573e5cd15126fb7e1312436ca036171e0a975756f614b9206ac0000000000000001000000000000000100000000000000209e0ce15915d4ea607803d57136fe385cce0e7cb13820a1be73c873adb2e8c7f200000000000000010000000000000000000000000000002001b76aa22668890adea47c01aecbb7765240964a9d6de3b23a711d1271a0b80100000000000000010000000000000001000000000000002081c445d198d3219e5606d548b6529d92cf1f29c4b029656318db8e3c519d4b42000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000150000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff259000000000000000500000000000000010000000000000000000000000000002061040707b37eebcd03ebc1f93a574d2b169116e92f5267dba73fd8e4f762e26e0000000000000001000000000000000100000000000000204b88a4d6281a737d17ce6ddb1a0fb418eb07a0ed9a80d6f472307649d6f1f7d000000000000000010000000000000000000000000000002078033d92f40a38ac4cc7886e9667aaded348dd6ee664101a06b369949493fbb900000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000002000000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000010000000000000020f4f54b18608f86b37f6a4fce419e18c64d9843b26ed1139133beed327349997f000000000000000100000000000000010000000000000020eaac2ba91abd5bedfb2645fd52534b0616c14c1d5a3ca5c8b57f170ce3a0123c0000000000000001000000000000000100000000000000201fbe6a1d0ec9dde7d25203e3597b6c9a6d52920b54bd402cbb49f44f820ecf2c0000000000000001000000000000000100000000000000205af8bd106a023dca58d9a2c1bf942eb3d9260592c7e617bf3803dc794a32ef1000000000000000010000000000000001000000000000002022bf8b04326101ffd27638a46eb4cb6dede7d786c49f4991191e5801277902d400000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000000000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000010000000000000020ebb76c613ec2138cc765f6029dd676279ca18928eacb0ca66a73239b16ebd3fc000000000000000100000000000000010000000000000020e435bd09932a6fdfff43746acb12d98720259cdc5ccdd25434bebb30b64793c9000000000000000100000000000000010000000000000020a379eef4ebc6c053f9ebce7246a926491170464546aad4ee25049465b0409d3b000000000000000100000000000000010000000000000020b8b8d6428fc5a3713842905985e54c13a460d972a6fedc366bd72b9cf28b4717000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000001600000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000100000000000000205db25233e9e5bb53c0da3d320e373b024bf6bcd66fbde02c2bb035190a54dc2c00000000000000010000000000000000000000000000002032db83af7e8a03af6c4d6db50e40b3606ac274cd836c2557af03817657239bc200000000000000010000000000000000000000000000002001b76aa22668890adea47c01aecbb7765240964a9d6de3b23a711d1271a0b80100000000000000010000000000000001000000000000002081c445d198d3219e5606d548b6529d92cf1f29c4b029656318db8e3c519d4b42000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000160000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000010000000000000020c68f67732b556dafe5e6cc710dcf62a4f48d186e1177070f41403a3ea73eda7f00000000000000010000000000000000000000000000002034e8bb0c47b5f4c22eaf01dde0989cbdb99d29897ff4d4ce2af0816deae250d300000000000000010000000000000000000000000000002078033d92f40a38ac4cc7886e9667aaded348dd6ee664101a06b369949493fbb900000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000003300000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e9000000000000000600000000000000010000000000000000000000000000002061da684bf608d9580c0cc2133031db2a991bfa9e757d3c3e5e3b691d844523660000000000000001000000000000000000000000000000204646c98ef994930122f932e1bd39e2f66f536e8fa208d8193f7bdcf8e1f3af85000000000000000100000000000000010000000000000020aa484e5c5ecfcf8fb6454c4562f9b8bac41d0f819a7adf9df986cd01feaf6d0b0000000000000001000000000000000100000000000000200247efeb8213912082e29ea2ef805a95ec45bbf7e81039cae60e1e2cc9f70398000000000000000100000000000000000000000000000020341d651035e8af56ef3eb04b8092ff8a9e98be3fc659ac423cd204e9e75c5bdc00000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000130000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000000000000000000020003c5181d177130a079dd07db243c1bffde9bba5d53b47eacfed53b2ce9c3681000000000000000100000000000000000000000000000020381d36f286eae8d50f3531344d0a48579eaf3200ed3706a450bb4146875685a1000000000000000100000000000000010000000000000020b3916ac3752cae2d46d7dcb3fc70a902dfce1044031504a7edcd60ef7d716cd200000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000001a00000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000010000000000000020ecfc09a1aa8d9ee5a8eb3132bd716973bc22a5e61e30e1cce19092f97e105bb500000000000000010000000000000000000000000000002053628602ff2c02ce8ad8fbebd918e7d3cafbdaddd3b7268770e57808957f1232000000000000000100000000000000010000000000000020decbd49a114a2ff486ec9d9a796b2980384089cf58329ce34c5e84e86d802607000000000000000100000000000000000000000000000020c70900e7458ba5ffca08cee0b301ca2a12c146e8d38de8b98842090913f710f5000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de4000000000000001a0000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000010000000000000020246ad833f257c0db5c611060ffd92b752323e555a9d3ce9241552b2ca48a1bc20000000000000001000000000000000000000000000000204efc73fd363945dfd0ec858227d4dabefc07b3b9a677a8b8b83cb33e300ca6be0000000000000001000000000000000100000000000000209161c5f561c46c1f9278bc201a1baad2f908ac10490c37cb8e0cd2207c0cd8690000000000000001000000000000000000000000000000205a0ee6b1b5a7910e92c7a5e35549a549beb666c8dc6cdb9739435f82bdcf952d00000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000001000000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e9000000000000000600000000000000010000000000000001000000000000002015bfea6ff8fca02fe6793892b620093f76fdb61a7ae895af3ea034f0854923a6000000000000000100000000000000010000000000000020876b4a50c733ecf3750fffe1cca0eae370bd8cfd58e91a3cbe7739d0c66b0618000000000000000100000000000000010000000000000020f89fd4c78cc2c9dbc27d0fb1fd81eb8f093a104c5e427e12ad01a2838309868500000000000000010000000000000001000000000000002081c445d198d3219e5606d548b6529d92cf1f29c4b029656318db8e3c519d4b42000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000100000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000010000000000000020569d6d364fc742b43f44eaeb7f2eb7676c465bde82753ed68594a01654718419000000000000000100000000000000010000000000000020275586ebf233ef8f7846a29d521dcacb6ca189a9efd2f0be606a28aa8fd399ac000000000000000100000000000000010000000000000020b3916ac3752cae2d46d7dcb3fc70a902dfce1044031504a7edcd60ef7d716cd200000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000001f00000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e9000000000000000600000000000000010000000000000000000000000000002031b2732ef75d00a6a7c27ebeff1cd0d03f346720e4f4d828a34b8fa4f458f713000000000000000100000000000000000000000000000020f3d1cefaa411f3b25de14a2e127376387097ceead58b7e50b1af55f56df6d098000000000000000100000000000000000000000000000020b05d29b90323e11d1d321ebe0887a78c97dd38e44c2a432ee388b16d804a569a000000000000000100000000000000000000000000000020c70900e7458ba5ffca08cee0b301ca2a12c146e8d38de8b98842090913f710f5000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de4000000000000001f0000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000000000000000000020e410c26e823abe624be41eebe8e629b245ede97bdb7fdf6533f5c763055809d60000000000000001000000000000000000000000000000203f4b9ec9d01b32cc29af1299c145fb4383f202af59554929cf1d3b1287509e71000000000000000100000000000000000000000000000020b5529a20d217fadab6e859d7dab84da86df6c50f6e0c8c43db6e0bb4ebe47cf70000000000000001000000000000000000000000000000205a0ee6b1b5a7910e92c7a5e35549a549beb666c8dc6cdb9739435f82bdcf952d00000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000001400000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000010000000000000020389c3ba00dfbcc90788c828e8faca19a83ccf2aa514c170a0288d97cd0ccfca30000000000000001000000000000000100000000000000209e0ce15915d4ea607803d57136fe385cce0e7cb13820a1be73c873adb2e8c7f200000000000000010000000000000000000000000000002001b76aa22668890adea47c01aecbb7765240964a9d6de3b23a711d1271a0b80100000000000000010000000000000001000000000000002081c445d198d3219e5606d548b6529d92cf1f29c4b029656318db8e3c519d4b42000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000140000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000010000000000000020c6ced8f29f221765860c4186984364c584f9025debf27105743b23409833ac510000000000000001000000000000000100000000000000204b88a4d6281a737d17ce6ddb1a0fb418eb07a0ed9a80d6f472307649d6f1f7d000000000000000010000000000000000000000000000002078033d92f40a38ac4cc7886e9667aaded348dd6ee664101a06b369949493fbb900000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000002f00000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e9000000000000000600000000000000010000000000000000000000000000002089196285e51aec79c8c2915494e037406a6e0fe2cefb471c5d42076be26d98d80000000000000001000000000000000000000000000000205dc6f165eebd96352a4cb969a5dcfee0e66cc7785e9dbf852898a0a6da3154a3000000000000000100000000000000000000000000000020dae97944862e3b39439dbbafe16fec39dcfc3ef2523acc7c32e0c79e841986fe000000000000000100000000000000000000000000000020c719af11451e09db51b0e7e95bbcb366f977fe49929d06a1eb1dbba9ade869f200000000000000010000000000000001000000000000002022bf8b04326101ffd27638a46eb4cb6dede7d786c49f4991191e5801277902d400000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be7000000000000000f0000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff259000000000000000500000000000000010000000000000000000000000000002035afcffd3e00318f678e350839d8b13b237a5c7251993091b28eb4d099034f2e0000000000000001000000000000000000000000000000205527bb338af53baea8cfccdd4caf87562d405c126925d5cf98425363c9497def00000000000000010000000000000000000000000000002057f7424c876eadf4612cc90ceb28d3c5c5cf304d091a0d7d1b90d874d9fa6f8e000000000000000100000000000000000000000000000020c6ac9586a5a315e9ce7efb473123de78e6943be10030817ad46f29947c4f461f000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000002300000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000209876c7a7a7134b6f1445fb927fb6dac60b40dcbe3218ffbd304107df4fe4c0f90000000000000001000000000000000000000000000000203f2276f0dc08f8fb8b5640ce5560df918698947c0e2f9884cc7d91c2174663080000000000000001000000000000000100000000000000201fbe6a1d0ec9dde7d25203e3597b6c9a6d52920b54bd402cbb49f44f820ecf2c0000000000000001000000000000000100000000000000205af8bd106a023dca58d9a2c1bf942eb3d9260592c7e617bf3803dc794a32ef1000000000000000010000000000000001000000000000002022bf8b04326101ffd27638a46eb4cb6dede7d786c49f4991191e5801277902d400000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000030000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff259000000000000000500000000000000010000000000000000000000000000002002e34643c2144471f9f6145ad57f70ee183d493b2dc578179078c28be9ffec3b000000000000000100000000000000000000000000000020b43d7064ea2d8208d7be4788658e4735a84f9ec43344ef22d85e927a3e9a17f1000000000000000100000000000000010000000000000020a379eef4ebc6c053f9ebce7246a926491170464546aad4ee25049465b0409d3b000000000000000100000000000000010000000000000020b8b8d6428fc5a3713842905985e54c13a460d972a6fedc366bd72b9cf28b4717000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000003b00000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000201f56c1c2bb2a840a87ef49cdffa74be6e5022f1360438f218ca799e75d58a16c000000000000000100000000000000000000000000000020477206f63bbd21ec0c4004c23263e3fb437d7cde780b644d6fdd403b70224a4300000000000000010000000000000001000000000000002049771951b4589a4f75df5ea08351bc0a5eccbbebfaa0b96a63026f42394809930000000000000001000000000000000000000000000000207f787b1eba07ba8e040c4ee51aec45ceca0b33082ebfdcb8e257ebb4a9dfd4cb000000000000000100000000000000000000000000000020341d651035e8af56ef3eb04b8092ff8a9e98be3fc659ac423cd204e9e75c5bdc00000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be7000000000000001b0000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000000000000000000205ac89c286b6f05cfaa11bf95f89f76175e3face799d5d16abb799e5995dbb30d0000000000000001000000000000000000000000000000204efc73fd363945dfd0ec858227d4dabefc07b3b9a677a8b8b83cb33e300ca6be0000000000000001000000000000000100000000000000209161c5f561c46c1f9278bc201a1baad2f908ac10490c37cb8e0cd2207c0cd8690000000000000001000000000000000000000000000000205a0ee6b1b5a7910e92c7a5e35549a549beb666c8dc6cdb9739435f82bdcf952d00000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000003100000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000000000000000000020e6688cecf8d676d3e9ed1b38f506d2d3ee6a1e7f7bf9b9b27c7c8ebbbbfbc3fe000000000000000100000000000000010000000000000020336878fe322f6d830c68420e0dc1b35d5a0c11b162dc5251cb07896d43953c40000000000000000100000000000000010000000000000020aa484e5c5ecfcf8fb6454c4562f9b8bac41d0f819a7adf9df986cd01feaf6d0b0000000000000001000000000000000100000000000000200247efeb8213912082e29ea2ef805a95ec45bbf7e81039cae60e1e2cc9f70398000000000000000100000000000000000000000000000020341d651035e8af56ef3eb04b8092ff8a9e98be3fc659ac423cd204e9e75c5bdc00000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000110000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000000000000000000020ac6f02bfb2a76e494be82303631f5a999bd5a24943e56d5b8f152aa677de2f64000000000000000100000000000000010000000000000020275586ebf233ef8f7846a29d521dcacb6ca189a9efd2f0be606a28aa8fd399ac000000000000000100000000000000010000000000000020b3916ac3752cae2d46d7dcb3fc70a902dfce1044031504a7edcd60ef7d716cd200000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000003500000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000000000000000000020bbac30f26337d4923268a0bd7464bf9a67e22440161c9b69a21ae02b18d453990000000000000001000000000000000100000000000000200d9355c2e1d6759eaeaadf6b2d2b204ab011124cade48173b71f15910bd0c5950000000000000001000000000000000000000000000000203e91cf9fe968f301931a38865a0ef8edba05ddd912d2579a948fe706de6f6ec20000000000000001000000000000000100000000000000200247efeb8213912082e29ea2ef805a95ec45bbf7e81039cae60e1e2cc9f70398000000000000000100000000000000000000000000000020341d651035e8af56ef3eb04b8092ff8a9e98be3fc659ac423cd204e9e75c5bdc00000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000150000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff259000000000000000500000000000000010000000000000000000000000000002061040707b37eebcd03ebc1f93a574d2b169116e92f5267dba73fd8e4f762e26e0000000000000001000000000000000100000000000000204b88a4d6281a737d17ce6ddb1a0fb418eb07a0ed9a80d6f472307649d6f1f7d000000000000000010000000000000000000000000000002078033d92f40a38ac4cc7886e9667aaded348dd6ee664101a06b369949493fbb900000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000003800000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e9000000000000000600000000000000010000000000000001000000000000002080db3e7e35fdc05c23f3f40679877aa15d35090e3f76f4bb40e0fabfb286c3ac0000000000000001000000000000000100000000000000202556b21fc161effaf655242fbec58230efd9a1ffaddb2e9252e9ca8c72b7a93000000000000000010000000000000001000000000000002049771951b4589a4f75df5ea08351bc0a5eccbbebfaa0b96a63026f42394809930000000000000001000000000000000000000000000000207f787b1eba07ba8e040c4ee51aec45ceca0b33082ebfdcb8e257ebb4a9dfd4cb000000000000000100000000000000000000000000000020341d651035e8af56ef3eb04b8092ff8a9e98be3fc659ac423cd204e9e75c5bdc00000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000180000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000100000000000000205ae3d4135b3f2d058460864483f1cbe5f3b6bdc632e4e17a6c02125ee273a2ce00000000000000010000000000000001000000000000002027f6be963ba9a68fb0cc1fa6dda0da09202e16643a07fa47b9e138f9c1c1c4d70000000000000001000000000000000100000000000000209161c5f561c46c1f9278bc201a1baad2f908ac10490c37cb8e0cd2207c0cd8690000000000000001000000000000000000000000000000205a0ee6b1b5a7910e92c7a5e35549a549beb666c8dc6cdb9739435f82bdcf952d00000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000000a00000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000100000000000000202e106a939c39ddc4226fb2936bac6f3356bb937b34f0463a1f2a1b809991fd91000000000000000100000000000000000000000000000020629bae8d629c777b0fecdcdf854d2b4aebf90e5dc949e41530065e7fa1960390000000000000000100000000000000010000000000000020f0c276f87c11a544c7dff23228f592c3b45684bf70982045e5db020d2ee3ff180000000000000001000000000000000000000000000000200da9d11aaea100332a200903d50e52aa35159a71dc619287204508beb8f25033000000000000000100000000000000010000000000000020abc911f24faf622896006bddac6f447414b585d2ae78c0de86550319adfa6ba100000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de4000000000000000a0000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff259000000000000000500000000000000010000000000000001000000000000002023f2d7fdc7350dfefeca95e26a82ff86528d3b529d1899610c41522623ac9013000000000000000100000000000000000000000000000020bce3f006a8c4a90d1a2289eb8bd2a0b518768a264917075f53da7847511688fb0000000000000001000000000000000100000000000000201e7f0e6313dd3a48bccca00c1b7955c16cb8be0aef8b3ed3dc6c35130ff160af000000000000000100000000000000000000000000000020c6ac9586a5a315e9ce7efb473123de78e6943be10030817ad46f29947c4f461f000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000001e00000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000010000000000000020687a94d7253329d11552525353081457c3572af75a1d92bf530351e890a28b07000000000000000100000000000000000000000000000020f3d1cefaa411f3b25de14a2e127376387097ceead58b7e50b1af55f56df6d098000000000000000100000000000000000000000000000020b05d29b90323e11d1d321ebe0887a78c97dd38e44c2a432ee388b16d804a569a000000000000000100000000000000000000000000000020c70900e7458ba5ffca08cee0b301ca2a12c146e8d38de8b98842090913f710f5000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de4000000000000001e0000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff259000000000000000500000000000000010000000000000001000000000000002023e228d10c03f0dc24434a1c56874a28f2ee29e2a622efb9de8af20a1143dded0000000000000001000000000000000000000000000000203f4b9ec9d01b32cc29af1299c145fb4383f202af59554929cf1d3b1287509e71000000000000000100000000000000000000000000000020b5529a20d217fadab6e859d7dab84da86df6c50f6e0c8c43db6e0bb4ebe47cf70000000000000001000000000000000000000000000000205a0ee6b1b5a7910e92c7a5e35549a549beb666c8dc6cdb9739435f82bdcf952d00000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000001500000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000204bd56642aaf3c573e5cd15126fb7e1312436ca036171e0a975756f614b9206ac0000000000000001000000000000000100000000000000209e0ce15915d4ea607803d57136fe385cce0e7cb13820a1be73c873adb2e8c7f200000000000000010000000000000000000000000000002001b76aa22668890adea47c01aecbb7765240964a9d6de3b23a711d1271a0b80100000000000000010000000000000001000000000000002081c445d198d3219e5606d548b6529d92cf1f29c4b029656318db8e3c519d4b42000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000150000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff259000000000000000500000000000000010000000000000000000000000000002061040707b37eebcd03ebc1f93a574d2b169116e92f5267dba73fd8e4f762e26e0000000000000001000000000000000100000000000000204b88a4d6281a737d17ce6ddb1a0fb418eb07a0ed9a80d6f472307649d6f1f7d000000000000000010000000000000000000000000000002078033d92f40a38ac4cc7886e9667aaded348dd6ee664101a06b369949493fbb900000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000000700000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000000000000000000020a05a3df24e3db240ce5264d833c60775f5cd42a9af73b33bda22444fc7cfe5240000000000000001000000000000000000000000000000202479d55ac3ebcfce8bcef04f25a66095f0e177d75de948b79a974e89ce18122500000000000000010000000000000000000000000000002062d1c5e4b7ac49ee1c7713f61bbadf7e25b2f04bd22ca8f4e9ae534b27d49e6e000000000000000100000000000000010000000000000020c4604cb8be32d18b87b7ba1b59170cd0016943ec460edd6ef1ac5700279c55ac000000000000000100000000000000010000000000000020abc911f24faf622896006bddac6f447414b585d2ae78c0de86550319adfa6ba100000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000070000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000000000000000000020111d546f48ae7364248b22c362b27b2d74053554905fcea72cb00eb4bfe3e4620000000000000001000000000000000000000000000000203a5792f3983b8a669190dca7e5659ab8b5822c3fa8a58a541a5cb3562d616bd60000000000000001000000000000000000000000000000207ef776b622132973cde5e96a32f68fa0775ac3f4a7ac0d1cb6b14e7458c2c3a0000000000000000100000000000000010000000000000020b8b8d6428fc5a3713842905985e54c13a460d972a6fedc366bd72b9cf28b4717000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000002500000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000000000000000000020d8ba2670290c2b526ed7c2b0e5b76fc8ea9fe53387368f8df6f91c79dea821ab000000000000000100000000000000010000000000000020266177fdcc4d675568f2cf052c7330dd20c5ba8ea8ed31a8f8ca6b52ba5126bb00000000000000010000000000000000000000000000002037aee6114b0e64049396c6974301981cc460b03b844091c0c8331ea0fd369b4f0000000000000001000000000000000100000000000000205af8bd106a023dca58d9a2c1bf942eb3d9260592c7e617bf3803dc794a32ef1000000000000000010000000000000001000000000000002022bf8b04326101ffd27638a46eb4cb6dede7d786c49f4991191e5801277902d400000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000050000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000000000000000000020297b949a7036ae60c54a97ea10d725842cd327dd5fc484af898fb0e154085b490000000000000001000000000000000100000000000000207c89f71843664bf97f22261fc06f08da09e4584d95f32099263db21dece008f10000000000000001000000000000000000000000000000207ef776b622132973cde5e96a32f68fa0775ac3f4a7ac0d1cb6b14e7458c2c3a0000000000000000100000000000000010000000000000020b8b8d6428fc5a3713842905985e54c13a460d972a6fedc366bd72b9cf28b4717000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000003100000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000000000000000000020e6688cecf8d676d3e9ed1b38f506d2d3ee6a1e7f7bf9b9b27c7c8ebbbbfbc3fe000000000000000100000000000000010000000000000020336878fe322f6d830c68420e0dc1b35d5a0c11b162dc5251cb07896d43953c40000000000000000100000000000000010000000000000020aa484e5c5ecfcf8fb6454c4562f9b8bac41d0f819a7adf9df986cd01feaf6d0b0000000000000001000000000000000100000000000000200247efeb8213912082e29ea2ef805a95ec45bbf7e81039cae60e1e2cc9f70398000000000000000100000000000000000000000000000020341d651035e8af56ef3eb04b8092ff8a9e98be3fc659ac423cd204e9e75c5bdc00000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000110000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000000000000000000020ac6f02bfb2a76e494be82303631f5a999bd5a24943e56d5b8f152aa677de2f64000000000000000100000000000000010000000000000020275586ebf233ef8f7846a29d521dcacb6ca189a9efd2f0be606a28aa8fd399ac000000000000000100000000000000010000000000000020b3916ac3752cae2d46d7dcb3fc70a902dfce1044031504a7edcd60ef7d716cd200000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000001d00000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000206f2cfaabd2028464e29f5299792065dc5db1d213db1f4011753464da9c630937000000000000000100000000000000010000000000000020e196d6324776c8342202907ff780e58c7cefbd2a85e2f70cfd5770f202307d97000000000000000100000000000000000000000000000020b05d29b90323e11d1d321ebe0887a78c97dd38e44c2a432ee388b16d804a569a000000000000000100000000000000000000000000000020c70900e7458ba5ffca08cee0b301ca2a12c146e8d38de8b98842090913f710f5000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de4000000000000001d0000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000000000000000000209f865945db83e4b37fb2c6b6337a566479d6573bcce817b7669722e615fa5bf50000000000000001000000000000000100000000000000203cedf7f5a6e7e2a5ace8729fabf1d7933b10f8a0ad1e5e2ea8831795cf5ebefb000000000000000100000000000000000000000000000020b5529a20d217fadab6e859d7dab84da86df6c50f6e0c8c43db6e0bb4ebe47cf70000000000000001000000000000000000000000000000205a0ee6b1b5a7910e92c7a5e35549a549beb666c8dc6cdb9739435f82bdcf952d00000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000001d00000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000206f2cfaabd2028464e29f5299792065dc5db1d213db1f4011753464da9c630937000000000000000100000000000000010000000000000020e196d6324776c8342202907ff780e58c7cefbd2a85e2f70cfd5770f202307d97000000000000000100000000000000000000000000000020b05d29b90323e11d1d321ebe0887a78c97dd38e44c2a432ee388b16d804a569a000000000000000100000000000000000000000000000020c70900e7458ba5ffca08cee0b301ca2a12c146e8d38de8b98842090913f710f5000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de4000000000000001d0000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000000000000000000209f865945db83e4b37fb2c6b6337a566479d6573bcce817b7669722e615fa5bf50000000000000001000000000000000100000000000000203cedf7f5a6e7e2a5ace8729fabf1d7933b10f8a0ad1e5e2ea8831795cf5ebefb000000000000000100000000000000000000000000000020b5529a20d217fadab6e859d7dab84da86df6c50f6e0c8c43db6e0bb4ebe47cf70000000000000001000000000000000000000000000000205a0ee6b1b5a7910e92c7a5e35549a549beb666c8dc6cdb9739435f82bdcf952d00000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000000100000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000202909624f315a60a3ec233407bbae0b08731680fb803e3811cf43ad5565f5ed220000000000000001000000000000000100000000000000207d794f712ac6e85c0a1f085d46b6957a222bf1367977dd1ba8fdccef925944af000000000000000100000000000000010000000000000020ae2da6c12c5d162a3ef339a55f47d09290d11febadeb8a3f8a5eac666d7553d0000000000000000100000000000000010000000000000020c4604cb8be32d18b87b7ba1b59170cd0016943ec460edd6ef1ac5700279c55ac000000000000000100000000000000010000000000000020abc911f24faf622896006bddac6f447414b585d2ae78c0de86550319adfa6ba100000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000010000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000000000000000000204ffcc22c01ec89a91054ab22f4a6d8c255900fc815ae761f6b79cbe12ddc5505000000000000000100000000000000010000000000000020e435bd09932a6fdfff43746acb12d98720259cdc5ccdd25434bebb30b64793c9000000000000000100000000000000010000000000000020a379eef4ebc6c053f9ebce7246a926491170464546aad4ee25049465b0409d3b000000000000000100000000000000010000000000000020b8b8d6428fc5a3713842905985e54c13a460d972a6fedc366bd72b9cf28b4717000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000000300000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000000000000000000020e7d128862aadbe4f99d50b9c5db8ffad7d032842f105055b53d275a596ccc65e00000000000000010000000000000000000000000000002013512b8bba2360869ac557865e2084fb0e839c7c241e547ea36a08da5afc0323000000000000000100000000000000010000000000000020ae2da6c12c5d162a3ef339a55f47d09290d11febadeb8a3f8a5eac666d7553d0000000000000000100000000000000010000000000000020c4604cb8be32d18b87b7ba1b59170cd0016943ec460edd6ef1ac5700279c55ac000000000000000100000000000000010000000000000020abc911f24faf622896006bddac6f447414b585d2ae78c0de86550319adfa6ba100000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000030000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff259000000000000000500000000000000010000000000000000000000000000002002e34643c2144471f9f6145ad57f70ee183d493b2dc578179078c28be9ffec3b000000000000000100000000000000000000000000000020b43d7064ea2d8208d7be4788658e4735a84f9ec43344ef22d85e927a3e9a17f1000000000000000100000000000000010000000000000020a379eef4ebc6c053f9ebce7246a926491170464546aad4ee25049465b0409d3b000000000000000100000000000000010000000000000020b8b8d6428fc5a3713842905985e54c13a460d972a6fedc366bd72b9cf28b4717000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000000800000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000100000000000000208f4914df53c50f650eaeb1e2644816a4d6571c8eadc34d0851795c3f6011fdb00000000000000001000000000000000100000000000000206f6f08120957917775f7e12d4d9fd5057d4ceeffb3313e9087de7e748a235134000000000000000100000000000000010000000000000020f0c276f87c11a544c7dff23228f592c3b45684bf70982045e5db020d2ee3ff180000000000000001000000000000000000000000000000200da9d11aaea100332a200903d50e52aa35159a71dc619287204508beb8f25033000000000000000100000000000000010000000000000020abc911f24faf622896006bddac6f447414b585d2ae78c0de86550319adfa6ba100000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000080000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000010000000000000020fdfdce8038e314379ee4ef9d7435ac3bb67f81a42222ada24ec0b5edc53504e4000000000000000100000000000000010000000000000020ccea233de53953c0a0be4befba3181d87583ecf3ee74bc0c1b609c57583968bf0000000000000001000000000000000100000000000000201e7f0e6313dd3a48bccca00c1b7955c16cb8be0aef8b3ed3dc6c35130ff160af000000000000000100000000000000000000000000000020c6ac9586a5a315e9ce7efb473123de78e6943be10030817ad46f29947c4f461f000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000002900000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e9000000000000000600000000000000010000000000000000000000000000002071d75f39458987845dcf942a0501e1d0a428e36ebd7c9f38bc602456582efb3b0000000000000001000000000000000100000000000000206201f5e1adb7b50a1b3c6acc1b1392317c003234b4583e38e50f392b58216883000000000000000100000000000000010000000000000020a5e13859e3a8080939d0a2a7780843b0f6be0d291fdd0c09d166df1c8435fd34000000000000000100000000000000000000000000000020c719af11451e09db51b0e7e95bbcb366f977fe49929d06a1eb1dbba9ade869f200000000000000010000000000000001000000000000002022bf8b04326101ffd27638a46eb4cb6dede7d786c49f4991191e5801277902d400000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000090000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000000000000000000020e1c255daaa951116cdbc9d3e573d3cc9d0809bc3de7dbfc5e1243febc3afb770000000000000000100000000000000010000000000000020ccea233de53953c0a0be4befba3181d87583ecf3ee74bc0c1b609c57583968bf0000000000000001000000000000000100000000000000201e7f0e6313dd3a48bccca00c1b7955c16cb8be0aef8b3ed3dc6c35130ff160af000000000000000100000000000000000000000000000020c6ac9586a5a315e9ce7efb473123de78e6943be10030817ad46f29947c4f461f000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000000d00000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000000000000000000020e19d985edcf88f77b87ff3034ac9e781e3bba2e8cdaae6105322f29f7cd26b7800000000000000010000000000000001000000000000002052bb7866ef5b2878c3a72eaa9b66f9a42101fee01719ad0257cfd4155c4fd67d000000000000000100000000000000000000000000000020a6fbf8b597859fe7801b57d7295b57ab889b52c97b4a3e8ba1fe46be478d7ca60000000000000001000000000000000000000000000000200da9d11aaea100332a200903d50e52aa35159a71dc619287204508beb8f25033000000000000000100000000000000010000000000000020abc911f24faf622896006bddac6f447414b585d2ae78c0de86550319adfa6ba100000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de4000000000000000d0000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000000000000000000208ca9ad4c8f2b48c0e78e288cad4a1e1e118896618e60e116cac861bda85047c40000000000000001000000000000000100000000000000200b3f292d9180e48caf9240831d1b97177d9961550cf42b9a4d497a935b987f8800000000000000010000000000000000000000000000002057f7424c876eadf4612cc90ceb28d3c5c5cf304d091a0d7d1b90d874d9fa6f8e000000000000000100000000000000000000000000000020c6ac9586a5a315e9ce7efb473123de78e6943be10030817ad46f29947c4f461f000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000002c00000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000010000000000000020990a05747f2b2a9f2bad4e43c29f7d54c683bfddcc1dca0fe45fdee1bc36c906000000000000000100000000000000010000000000000020518fb00e146a7b75e04903228f53bc837ff1750989635ede283c0901589a9d84000000000000000100000000000000000000000000000020dae97944862e3b39439dbbafe16fec39dcfc3ef2523acc7c32e0c79e841986fe000000000000000100000000000000000000000000000020c719af11451e09db51b0e7e95bbcb366f977fe49929d06a1eb1dbba9ade869f200000000000000010000000000000001000000000000002022bf8b04326101ffd27638a46eb4cb6dede7d786c49f4991191e5801277902d400000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be7000000000000000c0000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000100000000000000205ce7bfbb83bd467dfa4292d88c84d9118a0a3eec8c8a3ce9189fede5772914af0000000000000001000000000000000100000000000000200b3f292d9180e48caf9240831d1b97177d9961550cf42b9a4d497a935b987f8800000000000000010000000000000000000000000000002057f7424c876eadf4612cc90ceb28d3c5c5cf304d091a0d7d1b90d874d9fa6f8e000000000000000100000000000000000000000000000020c6ac9586a5a315e9ce7efb473123de78e6943be10030817ad46f29947c4f461f000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000001800000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e90000000000000006000000000000000100000000000000010000000000000020cf915e8779c55df2a5aba19dc39cf7fa44f7bfa6115db7c874f75102f5109c32000000000000000100000000000000010000000000000020b4ca5f93e3e6b332af3c77c76080f161aaf53c14dec5c04e1f4fe43375a6d58d000000000000000100000000000000010000000000000020decbd49a114a2ff486ec9d9a796b2980384089cf58329ce34c5e84e86d802607000000000000000100000000000000000000000000000020c70900e7458ba5ffca08cee0b301ca2a12c146e8d38de8b98842090913f710f5000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000180000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000100000000000000205ae3d4135b3f2d058460864483f1cbe5f3b6bdc632e4e17a6c02125ee273a2ce00000000000000010000000000000001000000000000002027f6be963ba9a68fb0cc1fa6dda0da09202e16643a07fa47b9e138f9c1c1c4d70000000000000001000000000000000100000000000000209161c5f561c46c1f9278bc201a1baad2f908ac10490c37cb8e0cd2207c0cd8690000000000000001000000000000000000000000000000205a0ee6b1b5a7910e92c7a5e35549a549beb666c8dc6cdb9739435f82bdcf952d00000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000002100000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000207ed7024cfb851e729174b4bebcb3b43b7e74c7bf66e598fab0fe7503c28e28b9000000000000000100000000000000010000000000000020eaac2ba91abd5bedfb2645fd52534b0616c14c1d5a3ca5c8b57f170ce3a0123c0000000000000001000000000000000100000000000000201fbe6a1d0ec9dde7d25203e3597b6c9a6d52920b54bd402cbb49f44f820ecf2c0000000000000001000000000000000100000000000000205af8bd106a023dca58d9a2c1bf942eb3d9260592c7e617bf3803dc794a32ef1000000000000000010000000000000001000000000000002022bf8b04326101ffd27638a46eb4cb6dede7d786c49f4991191e5801277902d400000000000000010000000000000000000000000000002048e3f0e8c1c6a12ab7f2c7cc84d305e3dd1184779a7bf9e67edf014ce1888be700000000000000010000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff25900000000000000050000000000000001000000000000000000000000000000204ffcc22c01ec89a91054ab22f4a6d8c255900fc815ae761f6b79cbe12ddc5505000000000000000100000000000000010000000000000020e435bd09932a6fdfff43746acb12d98720259cdc5ccdd25434bebb30b64793c9000000000000000100000000000000010000000000000020a379eef4ebc6c053f9ebce7246a926491170464546aad4ee25049465b0409d3b000000000000000100000000000000010000000000000020b8b8d6428fc5a3713842905985e54c13a460d972a6fedc366bd72b9cf28b4717000000000000000100000000000000010000000000000020d20af35878f408dd2bc1cea17dbc1762b709d597db0248b2075e7fc4e78f42c3000000000000001300000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e9000000000000000600000000000000010000000000000000000000000000002088f5c5d2fda12d4c8cf34cdb62aa095eb07a8da108b2ba4e7e4dd07f871b636f000000000000000100000000000000000000000000000020635cb57885dbdeabbc4503774433cce56d21f7bdaa7ef016bf082b6dca48b58f000000000000000100000000000000010000000000000020f89fd4c78cc2c9dbc27d0fb1fd81eb8f093a104c5e427e12ad01a2838309868500000000000000010000000000000001000000000000002081c445d198d3219e5606d548b6529d92cf1f29c4b029656318db8e3c519d4b42000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000130000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff2590000000000000005000000000000000100000000000000000000000000000020003c5181d177130a079dd07db243c1bffde9bba5d53b47eacfed53b2ce9c3681000000000000000100000000000000000000000000000020381d36f286eae8d50f3531344d0a48579eaf3200ed3706a450bb4146875685a1000000000000000100000000000000010000000000000020b3916ac3752cae2d46d7dcb3fc70a902dfce1044031504a7edcd60ef7d716cd200000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000001500000000000000200fa4fd2d752a88dd7848e6c4af9b8212776b146568160ab2061a3ea17c30a8e900000000000000060000000000000001000000000000000000000000000000204bd56642aaf3c573e5cd15126fb7e1312436ca036171e0a975756f614b9206ac0000000000000001000000000000000100000000000000209e0ce15915d4ea607803d57136fe385cce0e7cb13820a1be73c873adb2e8c7f200000000000000010000000000000000000000000000002001b76aa22668890adea47c01aecbb7765240964a9d6de3b23a711d1271a0b80100000000000000010000000000000001000000000000002081c445d198d3219e5606d548b6529d92cf1f29c4b029656318db8e3c519d4b42000000000000000100000000000000000000000000000020634a35930e45cc65ead1f9a5a97571f7b9cb8cb7dd174df5a673ab15cfe278f500000000000000010000000000000001000000000000002042e2802a35ec36934e3ef20aef9f6dbc0546c0e7f57d5176ebdf552842d65de400000000000000150000000000000020e4d9f8bef785faa96bbd4295787302dbe7e6793cc43a3ecbfacff7b6886ff259000000000000000500000000000000010000000000000000000000000000002061040707b37eebcd03ebc1f93a574d2b169116e92f5267dba73fd8e4f762e26e0000000000000001000000000000000100000000000000204b88a4d6281a737d17ce6ddb1a0fb418eb07a0ed9a80d6f472307649d6f1f7d000000000000000010000000000000000000000000000002078033d92f40a38ac4cc7886e9667aaded348dd6ee664101a06b369949493fbb900000000000000010000000000000001000000000000002076f8285d5798d04f943c108e25e2494e308558ffb1d5278aa98230ea5a32bc1800000000000000010000000000000000000000000000002007acb72256ce201d4bbe651bb30cb8a9b126a9e358fb10f1e15a44d7a1b7454e000000000000000228228fed2c0f903d96f5d367aaf715f5b2bc95479b820de3144394fd62d2308d2c7e51183a608e4fd828081f1e9db89e717e06d74ae3130535d95950a7c3617066348cbc \ No newline at end of file From aa908fa8a745a96d22f98234958c6ec866fd35dd Mon Sep 17 00:00:00 2001 From: Vasiliy Olekhov <145333445+vo-nil@users.noreply.github.com> Date: Fri, 10 Nov 2023 09:07:12 +0300 Subject: [PATCH 10/10] add grinding checks #84 (#85) * add grinding checks #84 * circuit2 update #84 * Revert "circuit2 update #84" This reverts commit 843616de714980f3999b8b016d975e2b48d83dae. * added example of custom mask #84 NilFoundation/crypto3-zk-marshalling#53 NilFoundation/zkllvm-transpiler#49 * Interface update #81 nil-foundation/zkllvm-transpiler#45 (#82) * Interface update #81 nil-foundation/zkllvm-transpiler#45 * updated example circuits to new interface #81 * cleanup #81 NilFoundation/zkllvm-transpiler#45 * modular_verifier interface update, added eta value checks #81 NilFoundation/zkllvm-transpiler#46 * added example of custom mask #84 NilFoundation/crypto3-zk-marshalling#53 NilFoundation/zkllvm-transpiler#49 --- contracts/zkllvm/circuit1/commitment.sol | 202 ++++++++++++----------- contracts/zkllvm/circuit1/params.json | 2 +- contracts/zkllvm/circuit2/commitment.sol | 197 +++++++++++----------- contracts/zkllvm/circuit2/proof.bin | 2 +- contracts/zkllvm/circuit3/commitment.sol | 202 ++++++++++++----------- contracts/zkllvm/circuit4/commitment.sol | 202 ++++++++++++----------- contracts/zkllvm/circuit6/commitment.sol | 202 ++++++++++++----------- 7 files changed, 529 insertions(+), 480 deletions(-) diff --git a/contracts/zkllvm/circuit1/commitment.sol b/contracts/zkllvm/circuit1/commitment.sol index 3aae944..f16048c 100644 --- a/contracts/zkllvm/circuit1/commitment.sol +++ b/contracts/zkllvm/circuit1/commitment.sol @@ -69,17 +69,20 @@ library modular_commitment_scheme_circuit1 { uint256 offset; } - function calculate_2points_interpolation(uint256[] memory xi, uint256[2] memory z, uint256 modulus) + function calculate_2points_interpolation(uint256[] memory xi, uint256[2] memory z) internal pure returns(uint256[2] memory U){ // require( xi.length == 2 ); +unchecked { U[0] = addmod(mulmod(z[0], xi[1], modulus),modulus - mulmod(z[1], xi[0], modulus), modulus); U[1] = addmod(z[1], modulus - z[0], modulus); +} } // coeffs for zs on each degree can be precomputed if necessary - function calculate_3points_interpolation(uint256[] memory xi, uint256[3] memory z, uint256 modulus) + function calculate_3points_interpolation(uint256[] memory xi, uint256[3] memory z) internal pure returns(uint256[3] memory U){ // require( xi.length == 3 ); +unchecked { z[0] = mulmod(z[0], addmod(xi[1], modulus - xi[2], modulus), modulus); z[1] = mulmod(z[1], addmod(xi[2], modulus - xi[0], modulus), modulus); z[2] = mulmod(z[2], addmod(xi[0], modulus - xi[1], modulus), modulus); @@ -93,6 +96,7 @@ library modular_commitment_scheme_circuit1 { U[1] = addmod(U[1], modulus - mulmod(z[2], addmod(xi[0], xi[1], modulus), modulus), modulus); U[2] = addmod(z[0], addmod(z[1], z[2], modulus), modulus); +} } function prepare_eval_points(uint256[][unique_points] memory result, uint256 xi) internal view { @@ -112,7 +116,9 @@ library modular_commitment_scheme_circuit1 { } - function prepare_U_V(bytes calldata blob, commitment_state memory state, uint256 xi) internal view returns(bool result){ + function prepare_U_V(bytes calldata blob, commitment_state memory state, uint256 xi) internal view returns(bool result){ + +unchecked { result = true; uint64 ind = 0; prepare_eval_points(state.unique_eval_points, xi); @@ -123,24 +129,24 @@ library modular_commitment_scheme_circuit1 { state.factors[ind] = 1; state.denominators[ind][0] = modulus - state.unique_eval_points[ind][0]; state.denominators[ind][1] = 1; - } else + } else if( state.unique_eval_points[ind].length == 2 ){ // xi1 - xi0 - state.factors[ind] = + state.factors[ind] = addmod(state.unique_eval_points[ind][1], modulus - state.unique_eval_points[ind][0], modulus); state.denominators[ind][2] = 1; - state.denominators[ind][1] = + state.denominators[ind][1] = modulus - addmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][1], modulus); - state.denominators[ind][0] = + state.denominators[ind][0] = mulmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][1], modulus); state.denominators[ind][0] = mulmod(state.denominators[ind][0], state.factors[ind], modulus); state.denominators[ind][1] = mulmod(state.denominators[ind][1], state.factors[ind], modulus); state.denominators[ind][2] = mulmod(state.denominators[ind][2], state.factors[ind], modulus); - } else + } else if( state.unique_eval_points[ind].length == 3 ){ - state.factors[ind] = modulus - + state.factors[ind] = modulus - mulmod( mulmod( addmod(state.unique_eval_points[ind][0], modulus - state.unique_eval_points[ind][1], modulus), @@ -153,24 +159,24 @@ library modular_commitment_scheme_circuit1 { state.denominators[ind][3] = 1; state.denominators[ind][2] = modulus - addmod( - state.unique_eval_points[ind][0], - addmod(state.unique_eval_points[ind][1],state.unique_eval_points[ind][2], modulus), + state.unique_eval_points[ind][0], + addmod(state.unique_eval_points[ind][1],state.unique_eval_points[ind][2], modulus), modulus ); - state.denominators[ind][1] = + state.denominators[ind][1] = addmod( mulmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][1], modulus), addmod( mulmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][2], modulus), mulmod(state.unique_eval_points[ind][1], state.unique_eval_points[ind][2], modulus), modulus - ), + ), modulus ); - state.denominators[ind][0] = + state.denominators[ind][0] = modulus - mulmod( - state.unique_eval_points[ind][0], - mulmod(state.unique_eval_points[ind][1],state.unique_eval_points[ind][2], modulus), + state.unique_eval_points[ind][0], + mulmod(state.unique_eval_points[ind][1],state.unique_eval_points[ind][2], modulus), modulus ); state.denominators[ind][0] = mulmod(state.denominators[ind][0], state.factors[ind], modulus); @@ -181,7 +187,7 @@ library modular_commitment_scheme_circuit1 { console.log("UNPROCESSED number of evaluation points"); return false; } - unchecked{ind++;} + ind++; } // Prepare combined U @@ -191,7 +197,7 @@ library modular_commitment_scheme_circuit1 { uint64 cur = 0; uint256 offset = 0x8; for( uint256 k = 0; k < batches_num;){ - for( uint256 i = 0; i < state.batch_sizes[k];){ + for( uint256 i = 0; i < state.batch_sizes[k];){ uint256 cur_point = 0; if(cur < points_ids.length ) cur_point = uint8(points_ids[cur]); else if(k == 2) cur_point = permutation_point; @@ -200,53 +206,54 @@ library modular_commitment_scheme_circuit1 { else console.log("Wrong index"); polynomial.multiply_poly_on_coeff( - state.combined_U[ind], - state.theta, + state.combined_U[ind], + state.theta, modulus ); if( cur_point == ind ){ if( point.length == 1 ){ state.combined_U[ind][0] = addmod( state.combined_U[ind][0], - basic_marshalling.get_uint256_be(blob, offset), + basic_marshalling.get_uint256_be(blob, offset), modulus ); - } else + } else if( point.length == 2 ){ uint256[2] memory tmp; tmp[0] = basic_marshalling.get_uint256_be(blob, offset); tmp[1] = basic_marshalling.get_uint256_be(blob, offset + 0x20); tmp = calculate_2points_interpolation( - point, tmp, modulus - ); + point, tmp); state.combined_U[ind][0] = addmod(state.combined_U[ind][0], tmp[0], modulus); state.combined_U[ind][1] = addmod(state.combined_U[ind][1], tmp[1], modulus); - } else + } else if( point.length == 3){ uint256[3] memory tmp; tmp[0] = basic_marshalling.get_uint256_be(blob, offset); tmp[1] = basic_marshalling.get_uint256_be(blob, offset + 0x20); tmp[2] = basic_marshalling.get_uint256_be(blob, offset + 0x40); tmp = calculate_3points_interpolation( - point, tmp, modulus - ); + point, tmp); state.combined_U[ind][0] = addmod(state.combined_U[ind][0], tmp[0], modulus); state.combined_U[ind][1] = addmod(state.combined_U[ind][1], tmp[1], modulus); state.combined_U[ind][2] = addmod(state.combined_U[ind][2], tmp[2], modulus); } else { return false; } - } + } offset += state.unique_eval_points[cur_point].length * 0x20; - unchecked{i++;cur++;} + i++;cur++; } - unchecked{k++;} + k++; } - unchecked{ind++;} + ind++; } +} } function compute_combined_Q(bytes calldata blob,commitment_state memory state) internal view returns(uint256[2] memory y){ + +unchecked { uint256[2][unique_points] memory values; { uint256 offset = state.initial_data_offset - state.poly_num * 0x40; // Save initial data offset for future use; @@ -263,14 +270,14 @@ library modular_commitment_scheme_circuit1 { for(uint256 k = 0; k < unique_points; ){ values[k][0] = mulmod(values[k][0], state.theta, modulus); values[k][1] = mulmod(values[k][1], state.theta, modulus); - unchecked{k++;} + k++; } values[cur_point][0] = addmod(values[cur_point][0], basic_marshalling.get_uint256_be(blob, offset), modulus); values[cur_point][1] = addmod(values[cur_point][1], basic_marshalling.get_uint256_be(blob, offset + 0x20), modulus); - unchecked{offset += 0x40;j++; cur++;} + offset += 0x40;j++; cur++; } - unchecked{b++;} + b++; } } for(uint256 p = 0; p < unique_points; ){ @@ -284,8 +291,9 @@ library modular_commitment_scheme_circuit1 { tmp[1] = mulmod(tmp[1], field.inverse_static(polynomial.evaluate(state.denominators[p], modulus - s, modulus), modulus), modulus); y[0] = addmod(y[0], tmp[0], modulus); y[1] = addmod(y[1], tmp[1], modulus); - unchecked{p++;} + p++; } +} } function initialize( @@ -298,17 +306,17 @@ library modular_commitment_scheme_circuit1 { tr_state_after = tr_state.current_challenge; } - function copy_memory_pair_and_check(bytes calldata blob, uint256 proof_offset, bytes memory leaf, uint256[2] memory pair) + function copy_memory_pair_and_check(bytes calldata blob, uint256 proof_offset, bytes memory leaf, uint256[2] memory pair) internal pure returns(bool b){ uint256 c = pair[0]; uint256 d = pair[1]; assembly{ mstore( - add(leaf, 0x20), + add(leaf, 0x20), c ) mstore( - add(leaf, 0x40), + add(leaf, 0x40), d ) } @@ -319,17 +327,17 @@ library modular_commitment_scheme_circuit1 { } } - function copy_reverted_memory_pair_and_check(bytes calldata blob, uint256 proof_offset, bytes memory leaf, uint256[2] memory pair) + function copy_reverted_memory_pair_and_check(bytes calldata blob, uint256 proof_offset, bytes memory leaf, uint256[2] memory pair) internal pure returns(bool b){ uint256 c = pair[0]; uint256 d = pair[1]; assembly{ mstore( - add(leaf, 0x20), + add(leaf, 0x20), d ) mstore( - add(leaf, 0x40), + add(leaf, 0x40), c ) } @@ -340,65 +348,67 @@ library modular_commitment_scheme_circuit1 { } } - function copy_pairs_and_check(bytes calldata blob, uint256 offset, bytes memory leaf, uint256 size, uint256 proof_offset) + function copy_pairs_and_check(bytes calldata blob, uint256 offset, bytes memory leaf, uint256 size, uint256 proof_offset) internal pure returns(bool b){ +unchecked { uint256 offset2 = 0x20; for(uint256 k = 0; k < size;){ assembly{ mstore( - add(leaf, offset2), + add(leaf, offset2), calldataload(add(blob.offset, offset)) ) mstore( - add(leaf, add(offset2, 0x20)), + add(leaf, add(offset2, 0x20)), calldataload(add(blob.offset, add(offset, 0x20))) ) } - unchecked{ - k++; offset2 += 0x40; offset += 0x40; - } + k++; offset2 += 0x40; offset += 0x40; } if( !merkle_verifier.parse_verify_merkle_proof_bytes_be(blob, proof_offset, leaf, offset2 - 0x20 )){ return false; } else { return true; } +} } - function copy_reverted_pairs_and_check(bytes calldata blob, uint256 offset, bytes memory leaf, uint256 size, uint256 proof_offset) + function copy_reverted_pairs_and_check(bytes calldata blob, uint256 offset, bytes memory leaf, uint256 size, uint256 proof_offset) internal pure returns(bool){ +unchecked { uint256 offset2 = 0x20; for(uint256 k = 0; k < size;){ assembly{ mstore( - add(leaf, offset2), + add(leaf, offset2), calldataload(add(blob.offset, add(offset, 0x20))) ) mstore( - add(leaf, add(offset2, 0x20)), + add(leaf, add(offset2, 0x20)), calldataload(add(blob.offset, offset)) ) } - unchecked{ - k++; offset2 += 0x40; offset += 0x40; - } + k++; offset2 += 0x40; offset += 0x40; } if( !merkle_verifier.parse_verify_merkle_proof_bytes_be(blob, proof_offset, leaf, offset2 - 0x20 )){ return false; } else { return true; } +} } function colinear_check(uint256 x, uint256[2] memory y, uint256 alpha, uint256 colinear_value) internal pure returns(bool){ + +unchecked { uint256 tmp; tmp = addmod(y[0], y[1], modulus); tmp = mulmod(tmp, x, modulus); tmp = addmod( - tmp, + tmp, mulmod( alpha, - addmod(y[0], modulus-y[1], modulus), + addmod(y[0], modulus-y[1], modulus), modulus ), modulus @@ -410,14 +420,17 @@ library modular_commitment_scheme_circuit1 { return false; } return true; +} } function verify_eval( bytes calldata blob, - uint256[5] memory commitments, + uint256[5] memory commitments, uint256 challenge, bytes32 transcript_state ) internal view returns (bool){ + +unchecked { types.transcript_data memory tr_state; tr_state.current_challenge = transcript_state; commitment_state memory state; @@ -462,75 +475,71 @@ library modular_commitment_scheme_circuit1 { for(uint8 i = 0; i < batches_num;){ transcript.update_transcript_b32(tr_state, bytes32(commitments[i])); - unchecked{i++;} + i++; } state.theta = transcript.get_field_challenge(tr_state, modulus); state.points_num = basic_marshalling.get_length(blob, 0x0); - unchecked{ - offset = 0x8 + state.points_num*0x20 + 0x8; - } + offset = 0x8 + state.points_num*0x20 + 0x8; for(uint8 i = 0; i < batches_num;){ state.batch_sizes[i] = uint64(uint8(blob[offset + 0x1])); if( state.batch_sizes[i] > state.max_batch ) state.max_batch = state.batch_sizes[i]; state.poly_num += state.batch_sizes[i]; - unchecked { i++; offset +=2;} - } - unchecked{ - offset += 0x8; - offset += state.poly_num; - state.roots_offset = offset + 0x8; - offset += 0x8; + i++; offset +=2; } + + offset += 0x8; + offset += state.poly_num; + state.roots_offset = offset + 0x8; + offset += 0x8; + for( uint8 i = 0; i < r;){ transcript.update_transcript_b32(tr_state, bytes32(basic_marshalling.get_uint256_be(blob, offset + 0x8))); state.alphas[i] = transcript.get_field_challenge(tr_state, modulus); - unchecked{i++; offset +=40; } + i++; offset +=40; } bytes calldata proof_of_work = blob[blob.length - 4:]; transcript.update_transcript(tr_state, proof_of_work); - transcript.get_integral_challenge_be(tr_state, 4); - - - unchecked{ - offset += 0x8 + r; - state.initial_data_offset = offset + 0x8; - offset += 0x8 + 0x20*basic_marshalling.get_length(blob, offset); - } + uint256 p_o_w = transcript.get_integral_challenge_be(tr_state, 4); + if (p_o_w & 0xffff8000 != 0) return false; - unchecked{ - state.round_data_offset = offset + 0x8; - offset += 0x8 + 0x20*basic_marshalling.get_length(blob, offset); - offset += 0x8; - } - state.initial_proof_offset = offset; + + offset += 0x8 + r; + state.initial_data_offset = offset + 0x8; + offset += 0x8 + 0x20*basic_marshalling.get_length(blob, offset); + + state.round_data_offset = offset + 0x8; + offset += 0x8 + 0x20*basic_marshalling.get_length(blob, offset); + offset += 0x8; + + state.initial_proof_offset = offset; for(uint8 i = 0; i < lambda;){ for(uint j = 0; j < batches_num;){ if(basic_marshalling.get_uint256_be(blob, offset + 0x10) != commitments[j] ) return false; offset = merkle_verifier.skip_merkle_proof_be(blob, offset); - unchecked{j++;} + j++; } - unchecked{i++;} + i++; } offset += 0x8; state.round_proof_offset = offset; for(uint256 i = 0; i < lambda;){ for(uint256 j = 0; j < r;){ - if(basic_marshalling.get_uint256_be(blob, offset + 0x10) != basic_marshalling.get_uint256_be(blob, state.roots_offset + j * 40 + 0x8) ) return false; + if(basic_marshalling.get_uint256_be(blob, offset + 0x10) != basic_marshalling.get_uint256_be(blob, state.roots_offset + j * 40 + 0x8) ) return false; offset = merkle_verifier.skip_merkle_proof_be(blob, offset); - unchecked{j++;} + j++; } - unchecked{i++;} + i++; } state.final_polynomial = new uint256[](basic_marshalling.get_length(blob, offset)); - unchecked{offset += 0x8;} + offset += 0x8; for (uint256 i = 0; i < state.final_polynomial.length;) { state.final_polynomial[i] = basic_marshalling.get_uint256_be(blob, offset); - unchecked{ i++; offset+=0x20;} + i++; offset+=0x20; } } if( state.final_polynomial.length > (( 1 << (field.log2(max_degree + 1) - r + 1) ) ) ){ @@ -561,7 +570,7 @@ library modular_commitment_scheme_circuit1 { state.leaf_length = state.batch_sizes[j] * 0x40; state.initial_data_offset += state.batch_sizes[j] * 0x40; state.initial_proof_offset = merkle_verifier.skip_merkle_proof_be(blob, state.initial_proof_offset); - unchecked{j++;} + j++; } { state.y = compute_combined_Q(blob, state); @@ -584,9 +593,9 @@ library modular_commitment_scheme_circuit1 { state.round_proof_offset = merkle_verifier.skip_merkle_proof_be(blob, state.round_proof_offset); for(state.j = 1; state.j < r;){ - state.x_index %= state.domain_size; + state.x_index %= state.domain_size; state.x = mulmod(state.x, state.x, modulus); - state.domain_size >>= 1; + state.domain_size >>= 1; if( state.x_index < state.domain_size ){ if(!copy_pairs_and_check(blob, state.round_data_offset, state.leaf_data, 1, state.round_proof_offset)) { console.log("Error in round mekle proof"); @@ -604,7 +613,7 @@ library modular_commitment_scheme_circuit1 { console.log("Round colinear check failed"); return false; } - unchecked{state.j++; state.round_data_offset += 0x40;} + state.j++; state.round_data_offset += 0x40; state.round_proof_offset = merkle_verifier.skip_merkle_proof_be(blob, state.round_proof_offset); } @@ -618,10 +627,11 @@ library modular_commitment_scheme_circuit1 { return false; } state.round_data_offset += 0x40; - - unchecked{i++;} + + i++; } return true; +} } -} +} \ No newline at end of file diff --git a/contracts/zkllvm/circuit1/params.json b/contracts/zkllvm/circuit1/params.json index 1ee69fe..2c7ed2e 100644 --- a/contracts/zkllvm/circuit1/params.json +++ b/contracts/zkllvm/circuit1/params.json @@ -48,7 +48,7 @@ "17166126583027276163107155648953851600645935739886150467584901586847365754678" ], "grinding_params": { - "mask": "4294901760" + "mask": "4294934528" } } } diff --git a/contracts/zkllvm/circuit2/commitment.sol b/contracts/zkllvm/circuit2/commitment.sol index 1dfdb2f..ecb2969 100644 --- a/contracts/zkllvm/circuit2/commitment.sol +++ b/contracts/zkllvm/circuit2/commitment.sol @@ -69,17 +69,20 @@ library modular_commitment_scheme_circuit2 { uint256 offset; } - function calculate_2points_interpolation(uint256[] memory xi, uint256[2] memory z, uint256 modulus) + function calculate_2points_interpolation(uint256[] memory xi, uint256[2] memory z) internal pure returns(uint256[2] memory U){ // require( xi.length == 2 ); +unchecked { U[0] = addmod(mulmod(z[0], xi[1], modulus),modulus - mulmod(z[1], xi[0], modulus), modulus); U[1] = addmod(z[1], modulus - z[0], modulus); +} } // coeffs for zs on each degree can be precomputed if necessary - function calculate_3points_interpolation(uint256[] memory xi, uint256[3] memory z, uint256 modulus) + function calculate_3points_interpolation(uint256[] memory xi, uint256[3] memory z) internal pure returns(uint256[3] memory U){ // require( xi.length == 3 ); +unchecked { z[0] = mulmod(z[0], addmod(xi[1], modulus - xi[2], modulus), modulus); z[1] = mulmod(z[1], addmod(xi[2], modulus - xi[0], modulus), modulus); z[2] = mulmod(z[2], addmod(xi[0], modulus - xi[1], modulus), modulus); @@ -93,6 +96,7 @@ library modular_commitment_scheme_circuit2 { U[1] = addmod(U[1], modulus - mulmod(z[2], addmod(xi[0], xi[1], modulus), modulus), modulus); U[2] = addmod(z[0], addmod(z[1], z[2], modulus), modulus); +} } function prepare_eval_points(uint256[][unique_points] memory result, uint256 xi) internal view { @@ -115,7 +119,9 @@ library modular_commitment_scheme_circuit2 { } - function prepare_U_V(bytes calldata blob, commitment_state memory state, uint256 xi) internal view returns(bool result){ + function prepare_U_V(bytes calldata blob, commitment_state memory state, uint256 xi) internal view returns(bool result){ + +unchecked { result = true; uint64 ind = 0; prepare_eval_points(state.unique_eval_points, xi); @@ -126,24 +132,24 @@ library modular_commitment_scheme_circuit2 { state.factors[ind] = 1; state.denominators[ind][0] = modulus - state.unique_eval_points[ind][0]; state.denominators[ind][1] = 1; - } else + } else if( state.unique_eval_points[ind].length == 2 ){ // xi1 - xi0 - state.factors[ind] = + state.factors[ind] = addmod(state.unique_eval_points[ind][1], modulus - state.unique_eval_points[ind][0], modulus); state.denominators[ind][2] = 1; - state.denominators[ind][1] = + state.denominators[ind][1] = modulus - addmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][1], modulus); - state.denominators[ind][0] = + state.denominators[ind][0] = mulmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][1], modulus); state.denominators[ind][0] = mulmod(state.denominators[ind][0], state.factors[ind], modulus); state.denominators[ind][1] = mulmod(state.denominators[ind][1], state.factors[ind], modulus); state.denominators[ind][2] = mulmod(state.denominators[ind][2], state.factors[ind], modulus); - } else + } else if( state.unique_eval_points[ind].length == 3 ){ - state.factors[ind] = modulus - + state.factors[ind] = modulus - mulmod( mulmod( addmod(state.unique_eval_points[ind][0], modulus - state.unique_eval_points[ind][1], modulus), @@ -156,24 +162,24 @@ library modular_commitment_scheme_circuit2 { state.denominators[ind][3] = 1; state.denominators[ind][2] = modulus - addmod( - state.unique_eval_points[ind][0], - addmod(state.unique_eval_points[ind][1],state.unique_eval_points[ind][2], modulus), + state.unique_eval_points[ind][0], + addmod(state.unique_eval_points[ind][1],state.unique_eval_points[ind][2], modulus), modulus ); - state.denominators[ind][1] = + state.denominators[ind][1] = addmod( mulmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][1], modulus), addmod( mulmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][2], modulus), mulmod(state.unique_eval_points[ind][1], state.unique_eval_points[ind][2], modulus), modulus - ), + ), modulus ); - state.denominators[ind][0] = + state.denominators[ind][0] = modulus - mulmod( - state.unique_eval_points[ind][0], - mulmod(state.unique_eval_points[ind][1],state.unique_eval_points[ind][2], modulus), + state.unique_eval_points[ind][0], + mulmod(state.unique_eval_points[ind][1],state.unique_eval_points[ind][2], modulus), modulus ); state.denominators[ind][0] = mulmod(state.denominators[ind][0], state.factors[ind], modulus); @@ -184,7 +190,7 @@ library modular_commitment_scheme_circuit2 { console.log("UNPROCESSED number of evaluation points"); return false; } - unchecked{ind++;} + ind++; } // Prepare combined U @@ -194,7 +200,7 @@ library modular_commitment_scheme_circuit2 { uint64 cur = 0; uint256 offset = 0x8; for( uint256 k = 0; k < batches_num;){ - for( uint256 i = 0; i < state.batch_sizes[k];){ + for( uint256 i = 0; i < state.batch_sizes[k];){ uint256 cur_point = 0; if(cur < points_ids.length ) cur_point = uint8(points_ids[cur]); else if(k == 2) cur_point = permutation_point; @@ -203,53 +209,54 @@ library modular_commitment_scheme_circuit2 { else console.log("Wrong index"); polynomial.multiply_poly_on_coeff( - state.combined_U[ind], - state.theta, + state.combined_U[ind], + state.theta, modulus ); if( cur_point == ind ){ if( point.length == 1 ){ state.combined_U[ind][0] = addmod( state.combined_U[ind][0], - basic_marshalling.get_uint256_be(blob, offset), + basic_marshalling.get_uint256_be(blob, offset), modulus ); - } else + } else if( point.length == 2 ){ uint256[2] memory tmp; tmp[0] = basic_marshalling.get_uint256_be(blob, offset); tmp[1] = basic_marshalling.get_uint256_be(blob, offset + 0x20); tmp = calculate_2points_interpolation( - point, tmp, modulus - ); + point, tmp); state.combined_U[ind][0] = addmod(state.combined_U[ind][0], tmp[0], modulus); state.combined_U[ind][1] = addmod(state.combined_U[ind][1], tmp[1], modulus); - } else + } else if( point.length == 3){ uint256[3] memory tmp; tmp[0] = basic_marshalling.get_uint256_be(blob, offset); tmp[1] = basic_marshalling.get_uint256_be(blob, offset + 0x20); tmp[2] = basic_marshalling.get_uint256_be(blob, offset + 0x40); tmp = calculate_3points_interpolation( - point, tmp, modulus - ); + point, tmp); state.combined_U[ind][0] = addmod(state.combined_U[ind][0], tmp[0], modulus); state.combined_U[ind][1] = addmod(state.combined_U[ind][1], tmp[1], modulus); state.combined_U[ind][2] = addmod(state.combined_U[ind][2], tmp[2], modulus); } else { return false; } - } + } offset += state.unique_eval_points[cur_point].length * 0x20; - unchecked{i++;cur++;} + i++;cur++; } - unchecked{k++;} + k++; } - unchecked{ind++;} + ind++; } +} } function compute_combined_Q(bytes calldata blob,commitment_state memory state) internal view returns(uint256[2] memory y){ + +unchecked { uint256[2][unique_points] memory values; { uint256 offset = state.initial_data_offset - state.poly_num * 0x40; // Save initial data offset for future use; @@ -266,14 +273,14 @@ library modular_commitment_scheme_circuit2 { for(uint256 k = 0; k < unique_points; ){ values[k][0] = mulmod(values[k][0], state.theta, modulus); values[k][1] = mulmod(values[k][1], state.theta, modulus); - unchecked{k++;} + k++; } values[cur_point][0] = addmod(values[cur_point][0], basic_marshalling.get_uint256_be(blob, offset), modulus); values[cur_point][1] = addmod(values[cur_point][1], basic_marshalling.get_uint256_be(blob, offset + 0x20), modulus); - unchecked{offset += 0x40;j++; cur++;} + offset += 0x40;j++; cur++; } - unchecked{b++;} + b++; } } for(uint256 p = 0; p < unique_points; ){ @@ -287,8 +294,9 @@ library modular_commitment_scheme_circuit2 { tmp[1] = mulmod(tmp[1], field.inverse_static(polynomial.evaluate(state.denominators[p], modulus - s, modulus), modulus), modulus); y[0] = addmod(y[0], tmp[0], modulus); y[1] = addmod(y[1], tmp[1], modulus); - unchecked{p++;} + p++; } +} } function initialize( @@ -301,17 +309,17 @@ library modular_commitment_scheme_circuit2 { tr_state_after = tr_state.current_challenge; } - function copy_memory_pair_and_check(bytes calldata blob, uint256 proof_offset, bytes memory leaf, uint256[2] memory pair) + function copy_memory_pair_and_check(bytes calldata blob, uint256 proof_offset, bytes memory leaf, uint256[2] memory pair) internal pure returns(bool b){ uint256 c = pair[0]; uint256 d = pair[1]; assembly{ mstore( - add(leaf, 0x20), + add(leaf, 0x20), c ) mstore( - add(leaf, 0x40), + add(leaf, 0x40), d ) } @@ -322,17 +330,17 @@ library modular_commitment_scheme_circuit2 { } } - function copy_reverted_memory_pair_and_check(bytes calldata blob, uint256 proof_offset, bytes memory leaf, uint256[2] memory pair) + function copy_reverted_memory_pair_and_check(bytes calldata blob, uint256 proof_offset, bytes memory leaf, uint256[2] memory pair) internal pure returns(bool b){ uint256 c = pair[0]; uint256 d = pair[1]; assembly{ mstore( - add(leaf, 0x20), + add(leaf, 0x20), d ) mstore( - add(leaf, 0x40), + add(leaf, 0x40), c ) } @@ -343,65 +351,67 @@ library modular_commitment_scheme_circuit2 { } } - function copy_pairs_and_check(bytes calldata blob, uint256 offset, bytes memory leaf, uint256 size, uint256 proof_offset) + function copy_pairs_and_check(bytes calldata blob, uint256 offset, bytes memory leaf, uint256 size, uint256 proof_offset) internal pure returns(bool b){ +unchecked { uint256 offset2 = 0x20; for(uint256 k = 0; k < size;){ assembly{ mstore( - add(leaf, offset2), + add(leaf, offset2), calldataload(add(blob.offset, offset)) ) mstore( - add(leaf, add(offset2, 0x20)), + add(leaf, add(offset2, 0x20)), calldataload(add(blob.offset, add(offset, 0x20))) ) } - unchecked{ - k++; offset2 += 0x40; offset += 0x40; - } + k++; offset2 += 0x40; offset += 0x40; } if( !merkle_verifier.parse_verify_merkle_proof_bytes_be(blob, proof_offset, leaf, offset2 - 0x20 )){ return false; } else { return true; } +} } - function copy_reverted_pairs_and_check(bytes calldata blob, uint256 offset, bytes memory leaf, uint256 size, uint256 proof_offset) + function copy_reverted_pairs_and_check(bytes calldata blob, uint256 offset, bytes memory leaf, uint256 size, uint256 proof_offset) internal pure returns(bool){ +unchecked { uint256 offset2 = 0x20; for(uint256 k = 0; k < size;){ assembly{ mstore( - add(leaf, offset2), + add(leaf, offset2), calldataload(add(blob.offset, add(offset, 0x20))) ) mstore( - add(leaf, add(offset2, 0x20)), + add(leaf, add(offset2, 0x20)), calldataload(add(blob.offset, offset)) ) } - unchecked{ - k++; offset2 += 0x40; offset += 0x40; - } + k++; offset2 += 0x40; offset += 0x40; } if( !merkle_verifier.parse_verify_merkle_proof_bytes_be(blob, proof_offset, leaf, offset2 - 0x20 )){ return false; } else { return true; } +} } function colinear_check(uint256 x, uint256[2] memory y, uint256 alpha, uint256 colinear_value) internal pure returns(bool){ + +unchecked { uint256 tmp; tmp = addmod(y[0], y[1], modulus); tmp = mulmod(tmp, x, modulus); tmp = addmod( - tmp, + tmp, mulmod( alpha, - addmod(y[0], modulus-y[1], modulus), + addmod(y[0], modulus-y[1], modulus), modulus ), modulus @@ -413,14 +423,17 @@ library modular_commitment_scheme_circuit2 { return false; } return true; +} } function verify_eval( bytes calldata blob, - uint256[5] memory commitments, + uint256[5] memory commitments, uint256 challenge, bytes32 transcript_state ) internal view returns (bool){ + +unchecked { types.transcript_data memory tr_state; tr_state.current_challenge = transcript_state; commitment_state memory state; @@ -465,71 +478,66 @@ library modular_commitment_scheme_circuit2 { for(uint8 i = 0; i < batches_num;){ transcript.update_transcript_b32(tr_state, bytes32(commitments[i])); - unchecked{i++;} + i++; } state.theta = transcript.get_field_challenge(tr_state, modulus); state.points_num = basic_marshalling.get_length(blob, 0x0); - unchecked{ - offset = 0x8 + state.points_num*0x20 + 0x8; - } + offset = 0x8 + state.points_num*0x20 + 0x8; for(uint8 i = 0; i < batches_num;){ state.batch_sizes[i] = uint64(uint8(blob[offset + 0x1])); if( state.batch_sizes[i] > state.max_batch ) state.max_batch = state.batch_sizes[i]; state.poly_num += state.batch_sizes[i]; - unchecked { i++; offset +=2;} - } - unchecked{ - offset += 0x8; - offset += state.poly_num; - state.roots_offset = offset + 0x8; - offset += 0x8; + i++; offset +=2; } + + offset += 0x8; + offset += state.poly_num; + state.roots_offset = offset + 0x8; + offset += 0x8; + for( uint8 i = 0; i < r;){ transcript.update_transcript_b32(tr_state, bytes32(basic_marshalling.get_uint256_be(blob, offset + 0x8))); state.alphas[i] = transcript.get_field_challenge(tr_state, modulus); - unchecked{i++; offset +=40; } + i++; offset +=40; } - - unchecked{ - offset += 0x8 + r; - state.initial_data_offset = offset + 0x8; - offset += 0x8 + 0x20*basic_marshalling.get_length(blob, offset); - } - unchecked{ - state.round_data_offset = offset + 0x8; - offset += 0x8 + 0x20*basic_marshalling.get_length(blob, offset); - offset += 0x8; - } - state.initial_proof_offset = offset; + offset += 0x8 + r; + state.initial_data_offset = offset + 0x8; + offset += 0x8 + 0x20*basic_marshalling.get_length(blob, offset); + + state.round_data_offset = offset + 0x8; + offset += 0x8 + 0x20*basic_marshalling.get_length(blob, offset); + offset += 0x8; + + state.initial_proof_offset = offset; for(uint8 i = 0; i < lambda;){ for(uint j = 0; j < batches_num;){ if(basic_marshalling.get_uint256_be(blob, offset + 0x10) != commitments[j] ) return false; offset = merkle_verifier.skip_merkle_proof_be(blob, offset); - unchecked{j++;} + j++; } - unchecked{i++;} + i++; } offset += 0x8; state.round_proof_offset = offset; for(uint256 i = 0; i < lambda;){ for(uint256 j = 0; j < r;){ - if(basic_marshalling.get_uint256_be(blob, offset + 0x10) != basic_marshalling.get_uint256_be(blob, state.roots_offset + j * 40 + 0x8) ) return false; + if(basic_marshalling.get_uint256_be(blob, offset + 0x10) != basic_marshalling.get_uint256_be(blob, state.roots_offset + j * 40 + 0x8) ) return false; offset = merkle_verifier.skip_merkle_proof_be(blob, offset); - unchecked{j++;} + j++; } - unchecked{i++;} + i++; } state.final_polynomial = new uint256[](basic_marshalling.get_length(blob, offset)); - unchecked{offset += 0x8;} + offset += 0x8; for (uint256 i = 0; i < state.final_polynomial.length;) { state.final_polynomial[i] = basic_marshalling.get_uint256_be(blob, offset); - unchecked{ i++; offset+=0x20;} + i++; offset+=0x20; } } if( state.final_polynomial.length > (( 1 << (field.log2(max_degree + 1) - r + 1) ) ) ){ @@ -560,7 +568,7 @@ library modular_commitment_scheme_circuit2 { state.leaf_length = state.batch_sizes[j] * 0x40; state.initial_data_offset += state.batch_sizes[j] * 0x40; state.initial_proof_offset = merkle_verifier.skip_merkle_proof_be(blob, state.initial_proof_offset); - unchecked{j++;} + j++; } { state.y = compute_combined_Q(blob, state); @@ -583,9 +591,9 @@ library modular_commitment_scheme_circuit2 { state.round_proof_offset = merkle_verifier.skip_merkle_proof_be(blob, state.round_proof_offset); for(state.j = 1; state.j < r;){ - state.x_index %= state.domain_size; + state.x_index %= state.domain_size; state.x = mulmod(state.x, state.x, modulus); - state.domain_size >>= 1; + state.domain_size >>= 1; if( state.x_index < state.domain_size ){ if(!copy_pairs_and_check(blob, state.round_data_offset, state.leaf_data, 1, state.round_proof_offset)) { console.log("Error in round mekle proof"); @@ -603,7 +611,7 @@ library modular_commitment_scheme_circuit2 { console.log("Round colinear check failed"); return false; } - unchecked{state.j++; state.round_data_offset += 0x40;} + state.j++; state.round_data_offset += 0x40; state.round_proof_offset = merkle_verifier.skip_merkle_proof_be(blob, state.round_proof_offset); } @@ -617,10 +625,11 @@ library modular_commitment_scheme_circuit2 { return false; } state.round_data_offset += 0x40; - - unchecked{i++;} + + i++; } return true; +} } -} +} \ No newline at end of file diff --git a/contracts/zkllvm/circuit2/proof.bin b/contracts/zkllvm/circuit2/proof.bin index 205a5ca..43c934c 100644 --- a/contracts/zkllvm/circuit2/proof.bin +++ b/contracts/zkllvm/circuit2/proof.bin @@ -1 +1 @@ -0x030000000000000020d277592a1f41b99afa485f4c42a3654b8fd6d352aa9d23d7834df9300fad277c00000000000000207d96695d6e5e034ed9a9e3558e19054b1529f8f3126e78cd8dc5c86e18e21f51000000000000002011e3a60f680d7c94b700843923562bb14e24721da40a305210b05f9bc1c7af6a076d02cdb87fd35597401fcf7fbab994092a7da914d1d101d26e7629b3e904530000000000000026076d02cdb87fd35597401fcf7fbab994092a7da914d1d101d26e7629b3e904531b02b1d914ea72056989679d7826ca1f9adbc9880002cf6daffb7f1fa3b332cd33fb13a00b7ec75722c0deac7e1b130c40296f9f91bcb70cc1053b23eb5f1e454925359c68cba0ddaf87fd463f6daed7e844deb500155000cfe079de79e6639a10149366d39efb8959988e9f55d7fd45c5e92153fc2ded5c47249dfe6f99d3e0304dd9fa371b70eeffd08ccb957867d20aeb86e7009bc009af235519554cb932709007cfc958e0c1732be65b58e7ece8695fe94be5417d85f20051f50d34cb206a45a7312e851bf898402981030726b3a4f5684b04458845c9f753b35519105c076d02cdb87fd35597401fcf7fbab994092a7da914d1d101d26e7629b3e904531b02b1d914ea72056989679d7826ca1f9adbc9880002cf6daffb7f1fa3b332cd65476cfed5ce98501e1bdca980884f702a00c9a8bbc5e882f3c1f670b57cd4bf3d9bd931d08eee60195862ede438d303f80e10fc9093f2a0920d1f3d2bed12c90b735fee7da58662cfc3ba77b94ba0ab2a3c5799f504d9905f8069ef3f7e87b35d118568c35ccff0c8e14aeb77fcd0a05ba585f78d646348b66c554b10625e6008979b31b607fa74f2688372f0d85a0f5d63d995f280047d29a59d81b3a990003a68771f10abc9d88dbdf7ce531cd3044141f573048011fdb1b76e4ec34435a6073fa327c7433f2cdd0c48b8f980d4d6affc65a9871bb8d353c6d352a6c451a93cfe135937821cafcca2836afecc23591cbafa1dac1e4ae3fb231824a3d3efbc3f1b4adcabfaa14cf2ee7ec3990f58d91ae75bfaaefe1327313d89eb23baf96f5c0e50763d61ec184d141366d8a7fa9505750a949981ddd43a02ff770689bb263ace92c4a76af1ddc4fc1c0bcbf88b0e402f30c0a6e62f251e90de388ad707cd662761bdeda7376d374c58b68475ecfa30064120c27daa97edfbda94eecaeaff55a18419f251e638338e1e39442c76b877e374bf3e1c0c03eb18e268869c915a369369e984155e5f975bd41103c801ea569e500244152d768985604be0800b06048df221d88ffcb1dc6531accce4ddd82bdfa74c7a075cc5b8fc1ec5a2353a943cd3d24de7686966f8fa3577ea539d516c0a16d46d0e2c283db58b157952ca53690aa55054de8a559e504341fa260cb71c175ff43113a0e28857bf1c90e817616d146822c1d922be356b38568404f082a9db122c065141ef8eada46febb654c6706bb2efe091991659a0e776933a9bae820861d210beb210e9eb7d4e0584942c1fd83c0eed5b2480034d71765c23a1d836fc02e9f76083b563b79b2ccfe8f0f75e9fb5520e0421f66d463aee771a3c3488f0d1089ea4bb7eb73e8ba7748e49f50bef2f17eb488cc17e059e3aa13955a4dc478a9a3c33538917c6871299f47fdd3a9b02b405e054a10e6727163a5f24d7c9654359dcddc5d093cd60bba2aeed36692bcacb008ad9f0d0a4d2e5587ebff607cf94ce8e71de2b5655db57e75ee8ec319973133213ac9fe701c96f3f26814b440faea09970b14574699bbd32e511b16c0d83e4a97ca400ff607a5a96f28638202237e99d5e470ff44d3a4b7806c2ba05ba30277dc6901464a56bdfaf74c286dfa37bd359c1a6c8ce7fb253705cfc1d2c8a6f868f2b666b645788277a20e6950a99948d0980e0f95796fd212b16b97a0000000000000008000c01040201030500000000000000160202020202020202030302020201010102010101010100000000000000030000000000000020078b78b592bdb8f457bf244a5a635c504244e5a06f53b97441427099c31ab900000000000000002052ebb33c7fc6f0dd4f952423bd0ca1fa05e9bf499f5d8f3b1e5c933c2e4777990000000000000020f79a7b60ee4a1dd245cd500cdea7390c3328a08241131c5f775fd6a10e1148e30000000000000003010101000000000000002c1579b9c6e6797777851425ea12dcacdae7452d43f6d5756f51cb57e0e3035d155e73ed8c432405d0ae25b21df6c52b2a6c7876bf0928e68fae34a81e1cfca2ec22666d1d23b4c6fc7053315e7a66e1f6ff2698d8bfd7da0c3c8f672735178b9251873a3605e8b64bc2e6a6a98f3af60e54970b2a402681f2c37098d7cae8746f08f1ad25a6b67656abd2a985458c7db65292e5e73eea3e57a7ebd21473a4d0fc6afbfa2d82e706f187672e82c4155a4f012abe1bc1141da758142dea8c5b2f053e9bbc078efd3c5eb2c2a2a4e6d76ffc42044952b867b4659772be8f2981b6e43551eb4b9aa040e98077356322ca680911b95ab04796a799688d416fd67e491d1579b9c6e6797777851425ea12dcacdae7452d43f6d5756f51cb57e0e3035d155e73ed8c432405d0ae25b21df6c52b2a6c7876bf0928e68fae34a81e1cfca2ec6ee0f834b4e3ef490530f4731544cc4f2eec013dbfbb3865aec04a5d79a2a46214b98871a3ce712a71155e86c89e4c09dac93a29ee76c9c92fbc76120b0b9d0a1fcf9f19999a8dba2075e601c9bdf0426d92d6be0f72d90b976a5f4ea951693714b532ef52bcae268021ff90a973b3073a01ec4a871c0bd7f0a160b4ef84ccd22be95a869432b943891463e4d68abe29a5fd68026839bc7983667ea59947390030051c7754aed2969f4d3fbbca2474681ccf43097c60e129bfc6fde1a39aeb844227cbd99b2ecee534e9669a440ed244c575d98dfc27206aa29a559de9e4bcb80e6af3b407f1355bbec47503d2d7faea57574c39274ec0bf273241d5b8cc770369c8afa9359e9d04251bd8c1e86e242f3a7d004eb07aa97a92f9a218a1a9f1a31a8e8ee19165c0db45d82575022a7662822cfba9d02980d2e7354fe8116dce8807c9ddcc248e75fec47b5457b78a35d7f1524f718c772499ab12ba55de74545466ffff1f65045ce8e5dd63808165fdf950ee528a0328bd5a0cbc17d30aa5e05038d544b23adf9e5977815307cf825a06d6d01b9cb0de774622bd129b903c31cb1e1cf8cc24567f9caeea0efe37b707fd27fe1f658f204db91d42ed63afc3ce36046e58eab3cea24cbb386f6a8b55120c328af118b9fd4d887048889d38f73a2114ed56232af1afbcdd3a6d4b12b15516440bf0606e1666353c2e8690633355681a09e69a43e6efaeaa3917085f54906168c4791f0ce2a101ae88e0c44eff427b4095101a56a7426925eb4cdc14872b7ad4c74fd38fe9414825381f04bf689b812d1fe302c5117b97edacbb93ab8b1a6a65b3444b9141d8e441713d7996a4723a6a7001e3344e174a34a0a2ef121bf605011fd45c29c5c25679c2e6ebb83f8f932c91ada67aeb5503ae4df6efe904666837f5ed1ef98b3084b860f01fb727cb8e096060fd4e54e423391853296bdf9457ffb958a87bcc8009cbcfdaa8f215d3c82e36aa50b7590b9390f5b453da96acc50f44cc309cb437a889dfad2afb70e4900e1d3a58957b6b0b699070377983fb1109cb73201aeae9653bf3dd1c2023562418158774e2c132d0f5c28d31c2a2129375d74b7a7c0ebca47f5388a3f85b7e9e1145974343a4e38ba3a1165e535049d5274c6075e8e26a8fda43d2deafdbcdc837e29159e5412adaa42a3569b6c3936f01732482556f4e28fca2a477828dc5540741c29e3447993e885c9f2724625465f785c07acbaf22967572437089ce16da4c7571e6f871fca120ee78c7707ce7b19e2fec8c2640a9fa57d8c4c78dc8e763266c7b0274a5f75e3cdc7c626903a9ea87d672b66530ba6b70ede2f1fea5b0b84d9d9f5de42a17b21174de237d6ddd2fd2469ccc899269cd2b114edf3d5d44825b6e87a73f8369fdcd01f568812560c57fc8c1f1d7c45896162448ffa41c342353be8da658e482f99b2ad45ac442526db559032950e0c396e5a18014bd40879965dde288db3da85358d5e8b525bc6dbcc286b4b4d9f6a566fcc9f781342c5a06000000000000000641b94983b007a27fcf472b5fb60675c2ba0f4154606da8f64d715e0cf9f98b5251763bfe745396f42bc05d7c126029300efa63cdb30391efee2910679916f92b548cb28d10cd2aad73d18e2c192de754f5db877df8d0170f810a644b1c5881cd0c9b34281a61309b3bce0afafa46cfd2457916c168f90078895e0489c92769ec22c75c3aee1e41fec8b0f6205aa90edbce3204adf01faf3ac0e4f14ad3523f553a584f42d67ff3b1f8429e5169987ed69ad9882ced0daed8f25e43838c91f7f5000000000000000400000000000000780000000000000020b024bd12fb5b07a167bc8a510f274a06946eac1240e823dd682ec71d18e04b4e0000000000000007000000000000000100000000000000010000000000000020864a6e5d3d12e5cd66b162014caa0a4d94d0f51d49aa266a97c50b480954eb05000000000000000100000000000000010000000000000020ea221d3445345bd1be5a21fbac1a25c1e4267f9f9b6b8151995674710f05350000000000000000010000000000000001000000000000002066101c789379fe04ae3e26dfe714e0f2a3f93efd154755598204d9e9afda167a0000000000000001000000000000000000000000000000209dc5b73860f1d5fcb4a1bb5fb66ffa37cb3e8fe2d1e91e35ceca9c4273579697000000000000000100000000000000000000000000000020b99b720f65fd2ca634f2e27add86b91881c22c9433b4c0b417df0f2e4db672b40000000000000001000000000000000000000000000000207669c0f3ad1aac4960d43e15fb3c7bdd96a6dd1a4a347da03a0d1619b59396e0000000000000000100000000000000000000000000000020a5791a4d1fb68b8c5de94b338a0e0ba2ce64eca86311b65648af6a74b0fb4d9100000000000000780000000000000020d277592a1f41b99afa485f4c42a3654b8fd6d352aa9d23d7834df9300fad277c00000000000000070000000000000001000000000000000100000000000000204e3bac65748504e1cfef37773f4270a8c1a80ac447caba7fa24fa19284b0c9a20000000000000001000000000000000100000000000000209eb1f87ef00af91d95cbceecfbd32705c4839e84ac1a5c9b7009c417b212d7680000000000000001000000000000000100000000000000208f7561dc689b2191860892b67e9a81d71bbb65d7a1c2ce6d137df706f5d59cd90000000000000001000000000000000000000000000000208eee847d70f6bca0ad5e2754ca732fcd32f4663971ffd9e4060bfac131d203c20000000000000001000000000000000000000000000000207324fb6c688150ff564c10de1750f77712744326e833cd62a76e5b36513b5dce000000000000000100000000000000000000000000000020e1d6ab31258fd6120a7abfd477253a4c2d5e151b7859538ca39f9e1605827810000000000000000100000000000000000000000000000020fdb6149e9c105ea392137b7b84f9830ff470ca39c248f0087f5f4c1ef0ff358b000000000000007800000000000000207d96695d6e5e034ed9a9e3558e19054b1529f8f3126e78cd8dc5c86e18e21f51000000000000000700000000000000010000000000000001000000000000002074faa270f04371dd70dc87a6b1b7dec7c1066f4dce9fb9ef55dcd663648ad43900000000000000010000000000000001000000000000002037de1147a06ae1cab60aff8d762fee3ab9957e9168354a3bc630d58607d4f5f2000000000000000100000000000000010000000000000020bbbf5dd53474978976a2b6db05ec115d5a915375c096fc49b3ed4df54f47cced0000000000000001000000000000000000000000000000207df3314a967746ab2847b207fc171fa110f6853922414bca0b1bdd7742d633fd00000000000000010000000000000000000000000000002091a66d066c7f8edbec732f712edd3659def818fe1dc0c090a95e59919582241800000000000000010000000000000000000000000000002033492e2b310b06849628e1bd4ad584f3dad137e0935268d921b25b24f08f5398000000000000000100000000000000000000000000000020a8c63237e987ee62978847e5234c0599bcd717b51b8105e754466f7226fc50ef0000000000000078000000000000002011e3a60f680d7c94b700843923562bb14e24721da40a305210b05f9bc1c7af6a0000000000000007000000000000000100000000000000010000000000000020d4b336d38f73d3ba1d499b528a94938235b8cae5790ae8fe35ca7516b6d1d5020000000000000001000000000000000100000000000000202c54bd9e3c12161c4309ddb3ad77f3c74d9a10a812261271e6f797128177be55000000000000000100000000000000010000000000000020c1471e7d143c415e6c54c0a4c79b5cf6fac93f3a413fd3452304f4c34c78a5360000000000000001000000000000000000000000000000200a4a2eba1cc63493bb902795b510b4f0e0146b1c8e72b0b0766cbe2577ae8b5600000000000000010000000000000000000000000000002049b53301733436287abca28c39a2cfbdf4c32db43e369dcd6a7354e0c154827900000000000000010000000000000000000000000000002050526717e4101b69991228baf573fbd0e37da1eeda9d9b7c9a9ff210e58a1b4c000000000000000100000000000000000000000000000020c95b77e10bca22732015b42ce22589d7c645d2ded00b509bec1a9ea3eb566bd0000000000000000300000000000000780000000000000020078b78b592bdb8f457bf244a5a635c504244e5a06f53b97441427099c31ab9000000000000000007000000000000000100000000000000010000000000000020f54f1017adcc892da476a817de3a724e58430b55d223df9d6fb92a27eabf444b000000000000000100000000000000010000000000000020ca713d28b5b43e7aa5a4684792de03ec334a0668e9d0e140070168fc41a9fe2f0000000000000001000000000000000100000000000000202ab677a9de5c479d957d4c1ec09b2d18493f1f13a59a7b1580468a39dcb20a9f00000000000000010000000000000000000000000000002026a07dda84c4fd9397449c4645d09377bec7413b9559103a078c3da80f78502e0000000000000001000000000000000000000000000000206459b2465bb1010fba6212e3f8bbe29de777350075bfda82ef2d7a7595a05e490000000000000001000000000000000000000000000000201b055b2c54a1a8955d6adeb9528fbe7055cb358ae8ea257af639724cdd80338c000000000000000100000000000000000000000000000020702383032ae6477bce2d5a0be8ef9dedec6616c9ba60d56b89c5388ff1334fc90000000000000038000000000000002052ebb33c7fc6f0dd4f952423bd0ca1fa05e9bf499f5d8f3b1e5c933c2e477799000000000000000600000000000000010000000000000001000000000000002022922c20e0c5b7d22e9a652dc6aa9118c2e1a9cac3f76888d6c57b96da837e33000000000000000100000000000000010000000000000020d439166c4040bb0a3bf207b329edb6d32dafede3afba35d0381dee5f8341db71000000000000000100000000000000010000000000000020db8856fdd8822c3d121cd8de41b6755ac4ca8fa6451daad979dca9d70ee137a40000000000000001000000000000000000000000000000207a41b9b6808d6909e7d2931629061986744e45fb3a5e51555a57a7ccd0ffe8c900000000000000010000000000000000000000000000002087bb6cfe2a09c35e307dd60482764ee9a05cbd57a44274c68770fdd5bc2fb1370000000000000001000000000000000000000000000000201a47bcb958b30168051b2cb2893cda6347694c2a359c50ef1bb3b36dd73f284800000000000000180000000000000020f79a7b60ee4a1dd245cd500cdea7390c3328a08241131c5f775fd6a10e1148e300000000000000050000000000000001000000000000000100000000000000204502c24583839e205de7298aaa1ef69bb549107644e6a03ad6fea1cdf6fcf5940000000000000001000000000000000100000000000000207951e0fd764a504201dd52f7c8d4bfa57a2fbae05813cf04e5951fb463707094000000000000000100000000000000010000000000000020f4081ce31b80a37168b695ec5d0cb2a04d6d5a396b0ec1e304a1f4f438ed93890000000000000001000000000000000000000000000000205a5dd7b64d5735b118f90d264766ba51fb82265921d017e03d20cf7503b01d9700000000000000010000000000000000000000000000002030fcc65290cd0ba63959759688cb9ac09f7397ac407c921370c4091b88ff0a3d00000000000000022e8fd5bee24f1ad86079ca38e220c6d93485c66d6e96af09d9a19a672ff21ba570ba016d109fbb18e6b55aa88caa054418f9a9d45edeba0266992ca9e2315137 \ No newline at end of file +0x030000000000000020a9481a88dcb5222d52c68d295634ced8129a4b0711c426f5678d89772d477fe20000000000000020b512d5e1723b60d350f2c83179c1051dd01f0b1943c891a50969051c0bd88d6f000000000000002053c60cb628b515e490aa568f3cc8ca29891d9563b6cff13539314b5a7221711908983eda4d8c83f5c823195a9411f4dbc344aac7a8f33438d5f95aaac4be82f6000000000000002608983eda4d8c83f5c823195a9411f4dbc344aac7a8f33438d5f95aaac4be82f61b02b1d914ea72056989679d7826ca1f9adbc9880002cf6daffb7f1fa3b332cd3c29b7f81ed79bb878f5b17a0c7db20256e0ab759ea66d8dd9d17aab613594ba4925359c68cba0ddaf87fd463f6daed7e844deb500155000cfe079de79e6639a495b11cf5b0cca32b50a523e3a8a560064ebc42e5691eae3f4ba5ab2a8771113304dd9fa371b70eeffd08ccb957867d20aeb86e7009bc009af235519554cb93231c6df5ed6e392422660df937340f9ed737bcd385e03fc3fb1187ae69b4177816a45a7312e851bf898402981030726b3a4f5684b04458845c9f753b35519105c08983eda4d8c83f5c823195a9411f4dbc344aac7a8f33438d5f95aaac4be82f61b02b1d914ea72056989679d7826ca1f9adbc9880002cf6daffb7f1fa3b332cd3745efb7711754e6ed9337ec04c2dd1815ce41161d436ea45e5a0afe5352c63f3d9bd931d08eee60195862ede438d303f80e10fc9093f2a0920d1f3d2bed12c96898431c9ad254bd3e90b476871f8ed9097874da3b106727ea8e8af99a03ce305d118568c35ccff0c8e14aeb77fcd0a05ba585f78d646348b66c554b10625e60016f044ce3e3a2a1a4b9d3c122bc19247968c293a38cb8deb4d3c106af899e353a68771f10abc9d88dbdf7ce531cd3044141f573048011fdb1b76e4ec34435a61a49c21704e3faf3eebdbf7ca1bd95ce85bd034affa8f64d10657a048cc796c6012e0229800e317b4f95a23a9a5570a962fcb11f71fe5ac85106392f406eb9963f1b4adcabfaa14cf2ee7ec3990f58d91ae75bfaaefe1327313d89eb23baf96f4cf918e356aa96392c52753f8b866058054d9c843a86ad32b6f3cc45de86fd4401270624e54f5b858244ebdb4f7802a52d24992f47d11e9c86e0d4a67349e020662761bdeda7376d374c58b68475ecfa30064120c27daa97edfbda94eecaeaff5e5819220d06fcbde0018a1c97afa52d813d66c1e37b28146760ed7609dae194369369e984155e5f975bd41103c801ea569e500244152d768985604be0800b064ecd57045a9bc747a663a29b2862beb17075a302671266069ac62a09c7801d483cd3d24de7686966f8fa3577ea539d516c0a16d46d0e2c283db58b157952ca5330d0e87d5a90d42985d4b5da16c96ca2d6a70107fce35e91f6b3669d57f828e428b5b07e8d7fabe4f0671904e44e7095caad0ce87e4a1206ab02fcd1ee5f48122ff922d702799a98e2808d0412a6eb1d611c54f95c78b8dbd113d4785b8e49593af08b2d7d92860abc5dce65f91188b7a77bf1d3fb566ff578c99748a7b82e1e11993a80a285b2e1d39c24c7f1cbc8359af114243a13dd7cec7a76c6cec4bb5151d7fbdf97b80f63f2a13b7362e2b6eaa1716deeb1f5a9803382281ea63d658434724c28b78ae43ce6d61acb240e7fc29289b3a31071e8238b4307d7a2cf0ba43136a39f18e36cea081aa558e434e71274837f29bf43047f1ddd21edb9a66f6c672a0116495522c66ac4d368ec44e0e3f066b6e2f52828257441989076a0dd8b17128482ac08ae5cda683b00898bd8c8ad88d21dd9078558818303520c9474d454ba6455d2eb12b7092bfa2ecd2052ae85ced69033e7c5c4c483c55759f8a3fb35b23e240948c295f8005f8c45d58947237e7e8eeb8c10d4be76605a049477f20000000000000008000c010402010305000000000000001602020202020202020303020202010101020101010101000000000000000300000000000000207c555c3aa09898bcabb7854d82e0e828bc28d322bfc54e61f9d395928622c489000000000000002023b69f8f92ba3ead285acc6a688d8b22c3f3600fde34c782fe9d09b52f3f9bc900000000000000208f4176a895e1ccac9040370bc31ff98d07fe56a85183b1067a9198863bbeb9de0000000000000003010101000000000000002c1aa909b8f9797bc1d44db4c7e28c3f15cbfd4ee83f1b2499dbe21753938adf7459449d9a302401865eec2340271598ef87c0551ac0e33765241de8ab6c75208d46b19cbba8b4e5049ae6196f2833e193402f8456b9bfa436032ea34a08cc1c2b2d3c0a9780e898439853be98e16df672138e1fac463eb7c8fcd15cb4f733e3d61f24abd4f67c4dff6f6351e9f2e3caf172560e5314440d7e1646770a3d94c52954c8fb7e33212f48c3d6861e16be0d13e16795afebba4e80e9b988f4c26b3ad866130b7f93c8a4b3d87d655d9a98b494cc9cc0428dde02739bed4148af11641e0dda9bd395d4d8945abc72aa6f0923708720e3c07220598b6412beb650ee9be31aa909b8f9797bc1d44db4c7e28c3f15cbfd4ee83f1b2499dbe21753938adf7459449d9a302401865eec2340271598ef87c0551ac0e33765241de8ab6c75208d52061e3efce7d6a31c13adb6d32058c5e6f146e48bb62cc073c87c31947d2c57098075adfcf1b7a6c99a4162b11dc83f281d406cf941f0b333df0ea0d41918f819165cb1bef36c435f3cc0ce1670f796dc30fbf37d725244b35ed0068bf3eb0b6e6edc17ff8312bbea15c0acd860433b08b0780611745e64de96ca9086f2591f2b60a5c08b07811425a960d4011f29545b141179d7070f55c000de45e86a555f3e5f05bcd475ab6f415ff6d5973865f5a782325e0fc5100bc78b7faa51e9c95c678164c95551eb09e79cdd1a2bd563208567ddec90035da244ec56869a86018d0f72324e4b0ebd9cf57c82079cc9eca04ee13a23d09856ada685567c3b8d302a5dafb266d3e9f628388ec0e8d99c4c84fa35fa528304e52afc5445f3bb5bb1ba60a41dafb4b73a0bd7cf7b9dc0e4d2a518a76b75942c5fa7d3fb5e2ab95696d7474527427adda5b16a94aa3ab7f3a60a7ce8b9200bec2685dfaeb4f256a16e185b770570665379e8ca0bae6815730dfde681d04f8d5222554baec904fa3225e5497e0ae517d1c167367c08a568a0a10610d1878571cc356b84c1ca831ef6828271ebfbb2f6e61d05e865543c5b587058cd4896a3844a0f86249225bf862dbabc6231baa24a585f3ec6427708472393ae586f99809ce30fabefe085169832d4ce2093930948482e7fe2750237f8f0d5fbe138643c19ecc6f3c4274b467e4824c71cecd50528fd6bee44f7a8cfabe259b740d7433bafcc877efc371cb6e6d7a71d64e8715fdad47383c6c0aafc63ae2c34430eb8fc4b9d12cbd0dad78cbd7d5d4a365636099a836a818a413a4d94913253b90bf26b1cef39ac28f1accc37efc200586f114d9bbeedf7c1a160b43b3a7974ae7c95d96dfc72ac15a8db43ae8b2820035fc5992668f0fd135c7bec1eeb31ce142558a12f837fe3384964501a03e6975afb9166c9239109c54c9dfeb858bd92e6c0f779781cc60e829549d2aa5475176769fc26458d31307192b17e9274f06bdd7c5c775f69730b7438081c9137ef6c442f0503a6842f0e1d3cfb0bdb85575baa67641c7973ad3d3d5430c5b99717323a428252f15e396191a0b4405391d7205a9224fbdde8fc3651363b8ae315f2704fa488c95dc95c2c959e0b23630b9bc4f5464387f473b0e725223218238541fa2a43a522da4a4da3ca2b25c96fe1d9091f8d06e4ee2d4aac523735a48054cddd303a80bfb4e612e97a184be942d81845d65f6b4d11e46bdfd7312a96118eed83584d0ea09122cec8b47863d0f99f46ec0e8b718c9e303a1a5c60b08ed70cbb4d225e119a61042bbb62aa00bcc69395211ca74a228297d039506494dd1b681b930e07849f3844790937bf09ca0c62a81d9b4ea31f59a79333be368bec8f0a9fe32f1c5fcd5245decf7ac1a62550f09b790d3b488f30d7c3a34d36c01bbcac28ff6bc2970801a9ce846a02ef052a714e13f5d7fcf28a755a17c62aff3c5abb55914d83b80a61936198766d7184378ff7cc19b7f548182e6256f1316c1238c2e15a00000000000000064b9d7b4de6229a3032ab8366026dd422f2be937c1e6b6541e1d43693fd41d65b4b5392a75af0104d5564b00bc03c3be2460035dc21b5e3e65c2ce4c6539b3f8465ffdf7e7fd4f2d184d00c57cc64367d229b66cb784fad0d352ddccf4309ce9707e9e04f6affee8ac168d9b30d0303c3839fd321d4c1585272f359b05281f7d726c22f5e395d6029bfbc25977ceae65962fb21c3ba4ddc2ad8988c1b3672745c40095cb626202f85b75174525da458777823e9826cfef7b852066a18a12d85bd0000000000000004000000000000005a0000000000000020b024bd12fb5b07a167bc8a510f274a06946eac1240e823dd682ec71d18e04b4e00000000000000070000000000000001000000000000000100000000000000201dba87b548f296ea9efc52957e260ea1a785dd708b0458ff7f1ed74a3263a86d0000000000000001000000000000000000000000000000200670200ce8840d42c287eb3020f13a6f38a3edcce46c10cf3525c1dcb96d3f820000000000000001000000000000000100000000000000209dae199a4e50f8ed1b4aac58675d7c022a948d70707593b776f9ea726e1937230000000000000001000000000000000000000000000000208b4cfcd55a35f9bf1484306fbe9ca3c7d8eff4fdb35bf57fdbc04d2881ba460b00000000000000010000000000000000000000000000002089519a6d88a150b09627d8adb69500fcbed330b3fcd7c922d9d68ccafe3d00db000000000000000100000000000000010000000000000020c32a0d03207fdc70dd7f1a4f65654f7f921570d423753644507fb723e9043ef2000000000000000100000000000000000000000000000020a5791a4d1fb68b8c5de94b338a0e0ba2ce64eca86311b65648af6a74b0fb4d91000000000000005a0000000000000020a9481a88dcb5222d52c68d295634ced8129a4b0711c426f5678d89772d477fe2000000000000000700000000000000010000000000000001000000000000002057e970db724219567ba2cdc6e40d3680a038af0093b42a725998a6da508cfcbb000000000000000100000000000000000000000000000020d0b5511ef3caac40ccf24ed247fa21350b215940f877064ee479150c3683b6f9000000000000000100000000000000010000000000000020c8081ea46294607972fc8c86596d930de29118414bb71be4fd9ce2747216b8e70000000000000001000000000000000000000000000000209e872f337db431084da913380af75a1936330ca65781aa90bb01e69488f13b43000000000000000100000000000000000000000000000020ba6adcfeefd05bfff7195b821c0ce0c1077f3e96d104bfd13b71b98862f7f87d00000000000000010000000000000001000000000000002015438a12e36743f20ecc136a4275907220dadfc513469f7edc2a77ef3abc22d500000000000000010000000000000000000000000000002033d6144b36ca45503092f451d8ebc685cad2f8c90c97338dd2073fd2b54451be000000000000005a0000000000000020b512d5e1723b60d350f2c83179c1051dd01f0b1943c891a50969051c0bd88d6f0000000000000007000000000000000100000000000000010000000000000020bf4668138b85d2f7cd61d513e6b836bf0c91f937fb195e9b21ed307f3f0e2f3d000000000000000100000000000000000000000000000020b506484d8c0a32b2902c97440868b6fcf621f97ec3e5bc2db5e819ffed2a63ac0000000000000001000000000000000100000000000000207956fb7563d1d8edc1c31b0507a45ca963842945223b2968f306594124227d620000000000000001000000000000000000000000000000200f0911ff40841595361c7f29d46e3a2e6eef09a5e708506ca877eb6163630bf3000000000000000100000000000000000000000000000020d8e25d820866f2beb13183fff051de8ceae433e7812c5af04a607e1130331ed20000000000000001000000000000000100000000000000200bfd6d89c20023ffb75aca9182c12c60ff50a65edb29afd0302d0490c668264a000000000000000100000000000000000000000000000020bbd90a9748c45aeb7976c50f9539e6baebdee7c29eea9e71d3ad7ebeacb50710000000000000005a000000000000002053c60cb628b515e490aa568f3cc8ca29891d9563b6cff13539314b5a722171190000000000000007000000000000000100000000000000010000000000000020243dbc1ab00a1ab1191f8210672e7b79aac1565b35a6a6c860eb89e641d0e85d000000000000000100000000000000000000000000000020e2b8adf48734bbac00476e92b353eab57c23e6fb0876d7e9f99c9ef2f21ddee9000000000000000100000000000000010000000000000020d55dd3f7ae65c487983905054e9a5294f8f4e02f778e48ec14f4ed1e06a87be30000000000000001000000000000000000000000000000200aa814ddb3b1b15e14ba702f08a240dcc7293359374cbe0e8188bf67f7870f840000000000000001000000000000000000000000000000204eb0f206d6a791451818a1a49e295eece7842a33e540ecc18486e83537c399b0000000000000000100000000000000010000000000000020be12d559953f04b14fb4a5f2e37b32a6949f6e8508b4a7d711e178ff766d5dd10000000000000001000000000000000000000000000000201546a6e10b577d90c02af66694813cf010175cb9045f737037f8a14ddfe068260000000000000003000000000000005a00000000000000207c555c3aa09898bcabb7854d82e0e828bc28d322bfc54e61f9d395928622c4890000000000000007000000000000000100000000000000010000000000000020abc9732304eb58807e4a487dab4276b9ab3dbe3bb7499ee864f92aa08afea68d0000000000000001000000000000000000000000000000201e46badcd57f2392eeda85b567a9192e6e1a9bc66468e60315a2f75ddebea349000000000000000100000000000000010000000000000020a6c9ee8840d773f8b437a5223c886c3b7b55dc3a321ab6f661d6b2fcce55118400000000000000010000000000000000000000000000002075f02074ca216af09dd0367a42fea2bd162b137430e34607c0035f56d6986bb700000000000000010000000000000000000000000000002088dce71d2079b2b0950a4e3c3c0edc9db575729cec32f37684db1da0379727da000000000000000100000000000000010000000000000020e57828f96f3b73b9428a3c63af5a46099e67e84bf35ed87b3d55c2c7da46a61e0000000000000001000000000000000000000000000000203fac52a7d82b9409a1814d1265269607ef9c8d2077877dae9afbb42c5c0be8de000000000000001a000000000000002023b69f8f92ba3ead285acc6a688d8b22c3f3600fde34c782fe9d09b52f3f9bc90000000000000006000000000000000100000000000000010000000000000020a5bb91d42b166ed50abe53ab6b726ecfe9f66983d86acb5b99bcb2c4fa9116e6000000000000000100000000000000000000000000000020a1bf8d3962d804bbf9b6836530b939022e87b97ddacf718e1bffe99b5ba4fcf10000000000000001000000000000000100000000000000207274e676b35699e3fcbf016fc212b73430068ac868b0acd0dad2cb90142dcdf6000000000000000100000000000000000000000000000020cc3d62b02f3ad0810ece4920fbf5ad5452577124ebb6be1c31d3d7ec79b6e3eb00000000000000010000000000000000000000000000002018d9bdcd4619139084ac887d24402cf61913a18ac9c823e282227fc8c27349d6000000000000000100000000000000010000000000000020e075fd2c31e99181114bfb41171f749f0b62f75692b44ebbf7923bdb5f51b314000000000000001a00000000000000208f4176a895e1ccac9040370bc31ff98d07fe56a85183b1067a9198863bbeb9de0000000000000005000000000000000100000000000000010000000000000020d67042edbfbc11c2c791fe0a2ee1823064aeb1e7975853f5cc08513dfd4dc05500000000000000010000000000000000000000000000002031b4dbeed998c874bdee96dbb0edab3b842540b06380a5044c87c735dbac2972000000000000000100000000000000010000000000000020be0c6eac24c8089685c6c05d562e2546d0ec7ef7487cf2893903d4b6b86b0fef000000000000000100000000000000000000000000000020a4a120d887a780dc758f3b10fbc671fc563be5de180f9f7105091f664971150b000000000000000100000000000000000000000000000020097d565685c064f43d07e0e26545a84555d4027ccf4a558520d124c6b9c4327e00000000000000026d5c99b3c48d867bd523b8f8f2188b6b176e57a493a597f1154f7b196bcffd0d3ef3e4413ba5971273cd5d8815d104d647068755b951a1033a734e720c501996 \ No newline at end of file diff --git a/contracts/zkllvm/circuit3/commitment.sol b/contracts/zkllvm/circuit3/commitment.sol index f010741..78b0a5e 100644 --- a/contracts/zkllvm/circuit3/commitment.sol +++ b/contracts/zkllvm/circuit3/commitment.sol @@ -69,17 +69,20 @@ library modular_commitment_scheme_circuit3 { uint256 offset; } - function calculate_2points_interpolation(uint256[] memory xi, uint256[2] memory z, uint256 modulus) + function calculate_2points_interpolation(uint256[] memory xi, uint256[2] memory z) internal pure returns(uint256[2] memory U){ // require( xi.length == 2 ); +unchecked { U[0] = addmod(mulmod(z[0], xi[1], modulus),modulus - mulmod(z[1], xi[0], modulus), modulus); U[1] = addmod(z[1], modulus - z[0], modulus); +} } // coeffs for zs on each degree can be precomputed if necessary - function calculate_3points_interpolation(uint256[] memory xi, uint256[3] memory z, uint256 modulus) + function calculate_3points_interpolation(uint256[] memory xi, uint256[3] memory z) internal pure returns(uint256[3] memory U){ // require( xi.length == 3 ); +unchecked { z[0] = mulmod(z[0], addmod(xi[1], modulus - xi[2], modulus), modulus); z[1] = mulmod(z[1], addmod(xi[2], modulus - xi[0], modulus), modulus); z[2] = mulmod(z[2], addmod(xi[0], modulus - xi[1], modulus), modulus); @@ -93,6 +96,7 @@ library modular_commitment_scheme_circuit3 { U[1] = addmod(U[1], modulus - mulmod(z[2], addmod(xi[0], xi[1], modulus), modulus), modulus); U[2] = addmod(z[0], addmod(z[1], z[2], modulus), modulus); +} } function prepare_eval_points(uint256[][unique_points] memory result, uint256 xi) internal view { @@ -116,7 +120,9 @@ library modular_commitment_scheme_circuit3 { } - function prepare_U_V(bytes calldata blob, commitment_state memory state, uint256 xi) internal view returns(bool result){ + function prepare_U_V(bytes calldata blob, commitment_state memory state, uint256 xi) internal view returns(bool result){ + +unchecked { result = true; uint64 ind = 0; prepare_eval_points(state.unique_eval_points, xi); @@ -127,24 +133,24 @@ library modular_commitment_scheme_circuit3 { state.factors[ind] = 1; state.denominators[ind][0] = modulus - state.unique_eval_points[ind][0]; state.denominators[ind][1] = 1; - } else + } else if( state.unique_eval_points[ind].length == 2 ){ // xi1 - xi0 - state.factors[ind] = + state.factors[ind] = addmod(state.unique_eval_points[ind][1], modulus - state.unique_eval_points[ind][0], modulus); state.denominators[ind][2] = 1; - state.denominators[ind][1] = + state.denominators[ind][1] = modulus - addmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][1], modulus); - state.denominators[ind][0] = + state.denominators[ind][0] = mulmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][1], modulus); state.denominators[ind][0] = mulmod(state.denominators[ind][0], state.factors[ind], modulus); state.denominators[ind][1] = mulmod(state.denominators[ind][1], state.factors[ind], modulus); state.denominators[ind][2] = mulmod(state.denominators[ind][2], state.factors[ind], modulus); - } else + } else if( state.unique_eval_points[ind].length == 3 ){ - state.factors[ind] = modulus - + state.factors[ind] = modulus - mulmod( mulmod( addmod(state.unique_eval_points[ind][0], modulus - state.unique_eval_points[ind][1], modulus), @@ -157,24 +163,24 @@ library modular_commitment_scheme_circuit3 { state.denominators[ind][3] = 1; state.denominators[ind][2] = modulus - addmod( - state.unique_eval_points[ind][0], - addmod(state.unique_eval_points[ind][1],state.unique_eval_points[ind][2], modulus), + state.unique_eval_points[ind][0], + addmod(state.unique_eval_points[ind][1],state.unique_eval_points[ind][2], modulus), modulus ); - state.denominators[ind][1] = + state.denominators[ind][1] = addmod( mulmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][1], modulus), addmod( mulmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][2], modulus), mulmod(state.unique_eval_points[ind][1], state.unique_eval_points[ind][2], modulus), modulus - ), + ), modulus ); - state.denominators[ind][0] = + state.denominators[ind][0] = modulus - mulmod( - state.unique_eval_points[ind][0], - mulmod(state.unique_eval_points[ind][1],state.unique_eval_points[ind][2], modulus), + state.unique_eval_points[ind][0], + mulmod(state.unique_eval_points[ind][1],state.unique_eval_points[ind][2], modulus), modulus ); state.denominators[ind][0] = mulmod(state.denominators[ind][0], state.factors[ind], modulus); @@ -185,7 +191,7 @@ library modular_commitment_scheme_circuit3 { console.log("UNPROCESSED number of evaluation points"); return false; } - unchecked{ind++;} + ind++; } // Prepare combined U @@ -195,7 +201,7 @@ library modular_commitment_scheme_circuit3 { uint64 cur = 0; uint256 offset = 0x8; for( uint256 k = 0; k < batches_num;){ - for( uint256 i = 0; i < state.batch_sizes[k];){ + for( uint256 i = 0; i < state.batch_sizes[k];){ uint256 cur_point = 0; if(cur < points_ids.length ) cur_point = uint8(points_ids[cur]); else if(k == 2) cur_point = permutation_point; @@ -204,53 +210,54 @@ library modular_commitment_scheme_circuit3 { else console.log("Wrong index"); polynomial.multiply_poly_on_coeff( - state.combined_U[ind], - state.theta, + state.combined_U[ind], + state.theta, modulus ); if( cur_point == ind ){ if( point.length == 1 ){ state.combined_U[ind][0] = addmod( state.combined_U[ind][0], - basic_marshalling.get_uint256_be(blob, offset), + basic_marshalling.get_uint256_be(blob, offset), modulus ); - } else + } else if( point.length == 2 ){ uint256[2] memory tmp; tmp[0] = basic_marshalling.get_uint256_be(blob, offset); tmp[1] = basic_marshalling.get_uint256_be(blob, offset + 0x20); tmp = calculate_2points_interpolation( - point, tmp, modulus - ); + point, tmp); state.combined_U[ind][0] = addmod(state.combined_U[ind][0], tmp[0], modulus); state.combined_U[ind][1] = addmod(state.combined_U[ind][1], tmp[1], modulus); - } else + } else if( point.length == 3){ uint256[3] memory tmp; tmp[0] = basic_marshalling.get_uint256_be(blob, offset); tmp[1] = basic_marshalling.get_uint256_be(blob, offset + 0x20); tmp[2] = basic_marshalling.get_uint256_be(blob, offset + 0x40); tmp = calculate_3points_interpolation( - point, tmp, modulus - ); + point, tmp); state.combined_U[ind][0] = addmod(state.combined_U[ind][0], tmp[0], modulus); state.combined_U[ind][1] = addmod(state.combined_U[ind][1], tmp[1], modulus); state.combined_U[ind][2] = addmod(state.combined_U[ind][2], tmp[2], modulus); } else { return false; } - } + } offset += state.unique_eval_points[cur_point].length * 0x20; - unchecked{i++;cur++;} + i++;cur++; } - unchecked{k++;} + k++; } - unchecked{ind++;} + ind++; } +} } function compute_combined_Q(bytes calldata blob,commitment_state memory state) internal view returns(uint256[2] memory y){ + +unchecked { uint256[2][unique_points] memory values; { uint256 offset = state.initial_data_offset - state.poly_num * 0x40; // Save initial data offset for future use; @@ -267,14 +274,14 @@ library modular_commitment_scheme_circuit3 { for(uint256 k = 0; k < unique_points; ){ values[k][0] = mulmod(values[k][0], state.theta, modulus); values[k][1] = mulmod(values[k][1], state.theta, modulus); - unchecked{k++;} + k++; } values[cur_point][0] = addmod(values[cur_point][0], basic_marshalling.get_uint256_be(blob, offset), modulus); values[cur_point][1] = addmod(values[cur_point][1], basic_marshalling.get_uint256_be(blob, offset + 0x20), modulus); - unchecked{offset += 0x40;j++; cur++;} + offset += 0x40;j++; cur++; } - unchecked{b++;} + b++; } } for(uint256 p = 0; p < unique_points; ){ @@ -288,8 +295,9 @@ library modular_commitment_scheme_circuit3 { tmp[1] = mulmod(tmp[1], field.inverse_static(polynomial.evaluate(state.denominators[p], modulus - s, modulus), modulus), modulus); y[0] = addmod(y[0], tmp[0], modulus); y[1] = addmod(y[1], tmp[1], modulus); - unchecked{p++;} + p++; } +} } function initialize( @@ -302,17 +310,17 @@ library modular_commitment_scheme_circuit3 { tr_state_after = tr_state.current_challenge; } - function copy_memory_pair_and_check(bytes calldata blob, uint256 proof_offset, bytes memory leaf, uint256[2] memory pair) + function copy_memory_pair_and_check(bytes calldata blob, uint256 proof_offset, bytes memory leaf, uint256[2] memory pair) internal pure returns(bool b){ uint256 c = pair[0]; uint256 d = pair[1]; assembly{ mstore( - add(leaf, 0x20), + add(leaf, 0x20), c ) mstore( - add(leaf, 0x40), + add(leaf, 0x40), d ) } @@ -323,17 +331,17 @@ library modular_commitment_scheme_circuit3 { } } - function copy_reverted_memory_pair_and_check(bytes calldata blob, uint256 proof_offset, bytes memory leaf, uint256[2] memory pair) + function copy_reverted_memory_pair_and_check(bytes calldata blob, uint256 proof_offset, bytes memory leaf, uint256[2] memory pair) internal pure returns(bool b){ uint256 c = pair[0]; uint256 d = pair[1]; assembly{ mstore( - add(leaf, 0x20), + add(leaf, 0x20), d ) mstore( - add(leaf, 0x40), + add(leaf, 0x40), c ) } @@ -344,65 +352,67 @@ library modular_commitment_scheme_circuit3 { } } - function copy_pairs_and_check(bytes calldata blob, uint256 offset, bytes memory leaf, uint256 size, uint256 proof_offset) + function copy_pairs_and_check(bytes calldata blob, uint256 offset, bytes memory leaf, uint256 size, uint256 proof_offset) internal pure returns(bool b){ +unchecked { uint256 offset2 = 0x20; for(uint256 k = 0; k < size;){ assembly{ mstore( - add(leaf, offset2), + add(leaf, offset2), calldataload(add(blob.offset, offset)) ) mstore( - add(leaf, add(offset2, 0x20)), + add(leaf, add(offset2, 0x20)), calldataload(add(blob.offset, add(offset, 0x20))) ) } - unchecked{ - k++; offset2 += 0x40; offset += 0x40; - } + k++; offset2 += 0x40; offset += 0x40; } if( !merkle_verifier.parse_verify_merkle_proof_bytes_be(blob, proof_offset, leaf, offset2 - 0x20 )){ return false; } else { return true; } +} } - function copy_reverted_pairs_and_check(bytes calldata blob, uint256 offset, bytes memory leaf, uint256 size, uint256 proof_offset) + function copy_reverted_pairs_and_check(bytes calldata blob, uint256 offset, bytes memory leaf, uint256 size, uint256 proof_offset) internal pure returns(bool){ +unchecked { uint256 offset2 = 0x20; for(uint256 k = 0; k < size;){ assembly{ mstore( - add(leaf, offset2), + add(leaf, offset2), calldataload(add(blob.offset, add(offset, 0x20))) ) mstore( - add(leaf, add(offset2, 0x20)), + add(leaf, add(offset2, 0x20)), calldataload(add(blob.offset, offset)) ) } - unchecked{ - k++; offset2 += 0x40; offset += 0x40; - } + k++; offset2 += 0x40; offset += 0x40; } if( !merkle_verifier.parse_verify_merkle_proof_bytes_be(blob, proof_offset, leaf, offset2 - 0x20 )){ return false; } else { return true; } +} } function colinear_check(uint256 x, uint256[2] memory y, uint256 alpha, uint256 colinear_value) internal pure returns(bool){ + +unchecked { uint256 tmp; tmp = addmod(y[0], y[1], modulus); tmp = mulmod(tmp, x, modulus); tmp = addmod( - tmp, + tmp, mulmod( alpha, - addmod(y[0], modulus-y[1], modulus), + addmod(y[0], modulus-y[1], modulus), modulus ), modulus @@ -414,14 +424,17 @@ library modular_commitment_scheme_circuit3 { return false; } return true; +} } function verify_eval( bytes calldata blob, - uint256[5] memory commitments, + uint256[5] memory commitments, uint256 challenge, bytes32 transcript_state ) internal view returns (bool){ + +unchecked { types.transcript_data memory tr_state; tr_state.current_challenge = transcript_state; commitment_state memory state; @@ -472,75 +485,71 @@ library modular_commitment_scheme_circuit3 { for(uint8 i = 0; i < batches_num;){ transcript.update_transcript_b32(tr_state, bytes32(commitments[i])); - unchecked{i++;} + i++; } state.theta = transcript.get_field_challenge(tr_state, modulus); state.points_num = basic_marshalling.get_length(blob, 0x0); - unchecked{ - offset = 0x8 + state.points_num*0x20 + 0x8; - } + offset = 0x8 + state.points_num*0x20 + 0x8; for(uint8 i = 0; i < batches_num;){ state.batch_sizes[i] = uint64(uint8(blob[offset + 0x1])); if( state.batch_sizes[i] > state.max_batch ) state.max_batch = state.batch_sizes[i]; state.poly_num += state.batch_sizes[i]; - unchecked { i++; offset +=2;} - } - unchecked{ - offset += 0x8; - offset += state.poly_num; - state.roots_offset = offset + 0x8; - offset += 0x8; + i++; offset +=2; } + + offset += 0x8; + offset += state.poly_num; + state.roots_offset = offset + 0x8; + offset += 0x8; + for( uint8 i = 0; i < r;){ transcript.update_transcript_b32(tr_state, bytes32(basic_marshalling.get_uint256_be(blob, offset + 0x8))); state.alphas[i] = transcript.get_field_challenge(tr_state, modulus); - unchecked{i++; offset +=40; } + i++; offset +=40; } bytes calldata proof_of_work = blob[blob.length - 4:]; transcript.update_transcript(tr_state, proof_of_work); - transcript.get_integral_challenge_be(tr_state, 4); - - - unchecked{ - offset += 0x8 + r; - state.initial_data_offset = offset + 0x8; - offset += 0x8 + 0x20*basic_marshalling.get_length(blob, offset); - } + uint256 p_o_w = transcript.get_integral_challenge_be(tr_state, 4); + if (p_o_w & 0xffff0000 != 0) return false; - unchecked{ - state.round_data_offset = offset + 0x8; - offset += 0x8 + 0x20*basic_marshalling.get_length(blob, offset); - offset += 0x8; - } - state.initial_proof_offset = offset; + + offset += 0x8 + r; + state.initial_data_offset = offset + 0x8; + offset += 0x8 + 0x20*basic_marshalling.get_length(blob, offset); + + state.round_data_offset = offset + 0x8; + offset += 0x8 + 0x20*basic_marshalling.get_length(blob, offset); + offset += 0x8; + + state.initial_proof_offset = offset; for(uint8 i = 0; i < lambda;){ for(uint j = 0; j < batches_num;){ if(basic_marshalling.get_uint256_be(blob, offset + 0x10) != commitments[j] ) return false; offset = merkle_verifier.skip_merkle_proof_be(blob, offset); - unchecked{j++;} + j++; } - unchecked{i++;} + i++; } offset += 0x8; state.round_proof_offset = offset; for(uint256 i = 0; i < lambda;){ for(uint256 j = 0; j < r;){ - if(basic_marshalling.get_uint256_be(blob, offset + 0x10) != basic_marshalling.get_uint256_be(blob, state.roots_offset + j * 40 + 0x8) ) return false; + if(basic_marshalling.get_uint256_be(blob, offset + 0x10) != basic_marshalling.get_uint256_be(blob, state.roots_offset + j * 40 + 0x8) ) return false; offset = merkle_verifier.skip_merkle_proof_be(blob, offset); - unchecked{j++;} + j++; } - unchecked{i++;} + i++; } state.final_polynomial = new uint256[](basic_marshalling.get_length(blob, offset)); - unchecked{offset += 0x8;} + offset += 0x8; for (uint256 i = 0; i < state.final_polynomial.length;) { state.final_polynomial[i] = basic_marshalling.get_uint256_be(blob, offset); - unchecked{ i++; offset+=0x20;} + i++; offset+=0x20; } } if( state.final_polynomial.length > (( 1 << (field.log2(max_degree + 1) - r + 1) ) ) ){ @@ -571,7 +580,7 @@ library modular_commitment_scheme_circuit3 { state.leaf_length = state.batch_sizes[j] * 0x40; state.initial_data_offset += state.batch_sizes[j] * 0x40; state.initial_proof_offset = merkle_verifier.skip_merkle_proof_be(blob, state.initial_proof_offset); - unchecked{j++;} + j++; } { state.y = compute_combined_Q(blob, state); @@ -594,9 +603,9 @@ library modular_commitment_scheme_circuit3 { state.round_proof_offset = merkle_verifier.skip_merkle_proof_be(blob, state.round_proof_offset); for(state.j = 1; state.j < r;){ - state.x_index %= state.domain_size; + state.x_index %= state.domain_size; state.x = mulmod(state.x, state.x, modulus); - state.domain_size >>= 1; + state.domain_size >>= 1; if( state.x_index < state.domain_size ){ if(!copy_pairs_and_check(blob, state.round_data_offset, state.leaf_data, 1, state.round_proof_offset)) { console.log("Error in round mekle proof"); @@ -614,7 +623,7 @@ library modular_commitment_scheme_circuit3 { console.log("Round colinear check failed"); return false; } - unchecked{state.j++; state.round_data_offset += 0x40;} + state.j++; state.round_data_offset += 0x40; state.round_proof_offset = merkle_verifier.skip_merkle_proof_be(blob, state.round_proof_offset); } @@ -628,10 +637,11 @@ library modular_commitment_scheme_circuit3 { return false; } state.round_data_offset += 0x40; - - unchecked{i++;} + + i++; } return true; +} } -} +} \ No newline at end of file diff --git a/contracts/zkllvm/circuit4/commitment.sol b/contracts/zkllvm/circuit4/commitment.sol index 765948b..1aeaed8 100644 --- a/contracts/zkllvm/circuit4/commitment.sol +++ b/contracts/zkllvm/circuit4/commitment.sol @@ -69,17 +69,20 @@ library modular_commitment_scheme_circuit4 { uint256 offset; } - function calculate_2points_interpolation(uint256[] memory xi, uint256[2] memory z, uint256 modulus) + function calculate_2points_interpolation(uint256[] memory xi, uint256[2] memory z) internal pure returns(uint256[2] memory U){ // require( xi.length == 2 ); +unchecked { U[0] = addmod(mulmod(z[0], xi[1], modulus),modulus - mulmod(z[1], xi[0], modulus), modulus); U[1] = addmod(z[1], modulus - z[0], modulus); +} } // coeffs for zs on each degree can be precomputed if necessary - function calculate_3points_interpolation(uint256[] memory xi, uint256[3] memory z, uint256 modulus) + function calculate_3points_interpolation(uint256[] memory xi, uint256[3] memory z) internal pure returns(uint256[3] memory U){ // require( xi.length == 3 ); +unchecked { z[0] = mulmod(z[0], addmod(xi[1], modulus - xi[2], modulus), modulus); z[1] = mulmod(z[1], addmod(xi[2], modulus - xi[0], modulus), modulus); z[2] = mulmod(z[2], addmod(xi[0], modulus - xi[1], modulus), modulus); @@ -93,6 +96,7 @@ library modular_commitment_scheme_circuit4 { U[1] = addmod(U[1], modulus - mulmod(z[2], addmod(xi[0], xi[1], modulus), modulus), modulus); U[2] = addmod(z[0], addmod(z[1], z[2], modulus), modulus); +} } function prepare_eval_points(uint256[][unique_points] memory result, uint256 xi) internal view { @@ -116,7 +120,9 @@ library modular_commitment_scheme_circuit4 { } - function prepare_U_V(bytes calldata blob, commitment_state memory state, uint256 xi) internal view returns(bool result){ + function prepare_U_V(bytes calldata blob, commitment_state memory state, uint256 xi) internal view returns(bool result){ + +unchecked { result = true; uint64 ind = 0; prepare_eval_points(state.unique_eval_points, xi); @@ -127,24 +133,24 @@ library modular_commitment_scheme_circuit4 { state.factors[ind] = 1; state.denominators[ind][0] = modulus - state.unique_eval_points[ind][0]; state.denominators[ind][1] = 1; - } else + } else if( state.unique_eval_points[ind].length == 2 ){ // xi1 - xi0 - state.factors[ind] = + state.factors[ind] = addmod(state.unique_eval_points[ind][1], modulus - state.unique_eval_points[ind][0], modulus); state.denominators[ind][2] = 1; - state.denominators[ind][1] = + state.denominators[ind][1] = modulus - addmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][1], modulus); - state.denominators[ind][0] = + state.denominators[ind][0] = mulmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][1], modulus); state.denominators[ind][0] = mulmod(state.denominators[ind][0], state.factors[ind], modulus); state.denominators[ind][1] = mulmod(state.denominators[ind][1], state.factors[ind], modulus); state.denominators[ind][2] = mulmod(state.denominators[ind][2], state.factors[ind], modulus); - } else + } else if( state.unique_eval_points[ind].length == 3 ){ - state.factors[ind] = modulus - + state.factors[ind] = modulus - mulmod( mulmod( addmod(state.unique_eval_points[ind][0], modulus - state.unique_eval_points[ind][1], modulus), @@ -157,24 +163,24 @@ library modular_commitment_scheme_circuit4 { state.denominators[ind][3] = 1; state.denominators[ind][2] = modulus - addmod( - state.unique_eval_points[ind][0], - addmod(state.unique_eval_points[ind][1],state.unique_eval_points[ind][2], modulus), + state.unique_eval_points[ind][0], + addmod(state.unique_eval_points[ind][1],state.unique_eval_points[ind][2], modulus), modulus ); - state.denominators[ind][1] = + state.denominators[ind][1] = addmod( mulmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][1], modulus), addmod( mulmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][2], modulus), mulmod(state.unique_eval_points[ind][1], state.unique_eval_points[ind][2], modulus), modulus - ), + ), modulus ); - state.denominators[ind][0] = + state.denominators[ind][0] = modulus - mulmod( - state.unique_eval_points[ind][0], - mulmod(state.unique_eval_points[ind][1],state.unique_eval_points[ind][2], modulus), + state.unique_eval_points[ind][0], + mulmod(state.unique_eval_points[ind][1],state.unique_eval_points[ind][2], modulus), modulus ); state.denominators[ind][0] = mulmod(state.denominators[ind][0], state.factors[ind], modulus); @@ -185,7 +191,7 @@ library modular_commitment_scheme_circuit4 { console.log("UNPROCESSED number of evaluation points"); return false; } - unchecked{ind++;} + ind++; } // Prepare combined U @@ -195,7 +201,7 @@ library modular_commitment_scheme_circuit4 { uint64 cur = 0; uint256 offset = 0x8; for( uint256 k = 0; k < batches_num;){ - for( uint256 i = 0; i < state.batch_sizes[k];){ + for( uint256 i = 0; i < state.batch_sizes[k];){ uint256 cur_point = 0; if(cur < points_ids.length ) cur_point = uint8(points_ids[cur]); else if(k == 2) cur_point = permutation_point; @@ -204,53 +210,54 @@ library modular_commitment_scheme_circuit4 { else console.log("Wrong index"); polynomial.multiply_poly_on_coeff( - state.combined_U[ind], - state.theta, + state.combined_U[ind], + state.theta, modulus ); if( cur_point == ind ){ if( point.length == 1 ){ state.combined_U[ind][0] = addmod( state.combined_U[ind][0], - basic_marshalling.get_uint256_be(blob, offset), + basic_marshalling.get_uint256_be(blob, offset), modulus ); - } else + } else if( point.length == 2 ){ uint256[2] memory tmp; tmp[0] = basic_marshalling.get_uint256_be(blob, offset); tmp[1] = basic_marshalling.get_uint256_be(blob, offset + 0x20); tmp = calculate_2points_interpolation( - point, tmp, modulus - ); + point, tmp); state.combined_U[ind][0] = addmod(state.combined_U[ind][0], tmp[0], modulus); state.combined_U[ind][1] = addmod(state.combined_U[ind][1], tmp[1], modulus); - } else + } else if( point.length == 3){ uint256[3] memory tmp; tmp[0] = basic_marshalling.get_uint256_be(blob, offset); tmp[1] = basic_marshalling.get_uint256_be(blob, offset + 0x20); tmp[2] = basic_marshalling.get_uint256_be(blob, offset + 0x40); tmp = calculate_3points_interpolation( - point, tmp, modulus - ); + point, tmp); state.combined_U[ind][0] = addmod(state.combined_U[ind][0], tmp[0], modulus); state.combined_U[ind][1] = addmod(state.combined_U[ind][1], tmp[1], modulus); state.combined_U[ind][2] = addmod(state.combined_U[ind][2], tmp[2], modulus); } else { return false; } - } + } offset += state.unique_eval_points[cur_point].length * 0x20; - unchecked{i++;cur++;} + i++;cur++; } - unchecked{k++;} + k++; } - unchecked{ind++;} + ind++; } +} } function compute_combined_Q(bytes calldata blob,commitment_state memory state) internal view returns(uint256[2] memory y){ + +unchecked { uint256[2][unique_points] memory values; { uint256 offset = state.initial_data_offset - state.poly_num * 0x40; // Save initial data offset for future use; @@ -267,14 +274,14 @@ library modular_commitment_scheme_circuit4 { for(uint256 k = 0; k < unique_points; ){ values[k][0] = mulmod(values[k][0], state.theta, modulus); values[k][1] = mulmod(values[k][1], state.theta, modulus); - unchecked{k++;} + k++; } values[cur_point][0] = addmod(values[cur_point][0], basic_marshalling.get_uint256_be(blob, offset), modulus); values[cur_point][1] = addmod(values[cur_point][1], basic_marshalling.get_uint256_be(blob, offset + 0x20), modulus); - unchecked{offset += 0x40;j++; cur++;} + offset += 0x40;j++; cur++; } - unchecked{b++;} + b++; } } for(uint256 p = 0; p < unique_points; ){ @@ -288,8 +295,9 @@ library modular_commitment_scheme_circuit4 { tmp[1] = mulmod(tmp[1], field.inverse_static(polynomial.evaluate(state.denominators[p], modulus - s, modulus), modulus), modulus); y[0] = addmod(y[0], tmp[0], modulus); y[1] = addmod(y[1], tmp[1], modulus); - unchecked{p++;} + p++; } +} } function initialize( @@ -302,17 +310,17 @@ library modular_commitment_scheme_circuit4 { tr_state_after = tr_state.current_challenge; } - function copy_memory_pair_and_check(bytes calldata blob, uint256 proof_offset, bytes memory leaf, uint256[2] memory pair) + function copy_memory_pair_and_check(bytes calldata blob, uint256 proof_offset, bytes memory leaf, uint256[2] memory pair) internal pure returns(bool b){ uint256 c = pair[0]; uint256 d = pair[1]; assembly{ mstore( - add(leaf, 0x20), + add(leaf, 0x20), c ) mstore( - add(leaf, 0x40), + add(leaf, 0x40), d ) } @@ -323,17 +331,17 @@ library modular_commitment_scheme_circuit4 { } } - function copy_reverted_memory_pair_and_check(bytes calldata blob, uint256 proof_offset, bytes memory leaf, uint256[2] memory pair) + function copy_reverted_memory_pair_and_check(bytes calldata blob, uint256 proof_offset, bytes memory leaf, uint256[2] memory pair) internal pure returns(bool b){ uint256 c = pair[0]; uint256 d = pair[1]; assembly{ mstore( - add(leaf, 0x20), + add(leaf, 0x20), d ) mstore( - add(leaf, 0x40), + add(leaf, 0x40), c ) } @@ -344,65 +352,67 @@ library modular_commitment_scheme_circuit4 { } } - function copy_pairs_and_check(bytes calldata blob, uint256 offset, bytes memory leaf, uint256 size, uint256 proof_offset) + function copy_pairs_and_check(bytes calldata blob, uint256 offset, bytes memory leaf, uint256 size, uint256 proof_offset) internal pure returns(bool b){ +unchecked { uint256 offset2 = 0x20; for(uint256 k = 0; k < size;){ assembly{ mstore( - add(leaf, offset2), + add(leaf, offset2), calldataload(add(blob.offset, offset)) ) mstore( - add(leaf, add(offset2, 0x20)), + add(leaf, add(offset2, 0x20)), calldataload(add(blob.offset, add(offset, 0x20))) ) } - unchecked{ - k++; offset2 += 0x40; offset += 0x40; - } + k++; offset2 += 0x40; offset += 0x40; } if( !merkle_verifier.parse_verify_merkle_proof_bytes_be(blob, proof_offset, leaf, offset2 - 0x20 )){ return false; } else { return true; } +} } - function copy_reverted_pairs_and_check(bytes calldata blob, uint256 offset, bytes memory leaf, uint256 size, uint256 proof_offset) + function copy_reverted_pairs_and_check(bytes calldata blob, uint256 offset, bytes memory leaf, uint256 size, uint256 proof_offset) internal pure returns(bool){ +unchecked { uint256 offset2 = 0x20; for(uint256 k = 0; k < size;){ assembly{ mstore( - add(leaf, offset2), + add(leaf, offset2), calldataload(add(blob.offset, add(offset, 0x20))) ) mstore( - add(leaf, add(offset2, 0x20)), + add(leaf, add(offset2, 0x20)), calldataload(add(blob.offset, offset)) ) } - unchecked{ - k++; offset2 += 0x40; offset += 0x40; - } + k++; offset2 += 0x40; offset += 0x40; } if( !merkle_verifier.parse_verify_merkle_proof_bytes_be(blob, proof_offset, leaf, offset2 - 0x20 )){ return false; } else { return true; } +} } function colinear_check(uint256 x, uint256[2] memory y, uint256 alpha, uint256 colinear_value) internal pure returns(bool){ + +unchecked { uint256 tmp; tmp = addmod(y[0], y[1], modulus); tmp = mulmod(tmp, x, modulus); tmp = addmod( - tmp, + tmp, mulmod( alpha, - addmod(y[0], modulus-y[1], modulus), + addmod(y[0], modulus-y[1], modulus), modulus ), modulus @@ -414,14 +424,17 @@ library modular_commitment_scheme_circuit4 { return false; } return true; +} } function verify_eval( bytes calldata blob, - uint256[5] memory commitments, + uint256[5] memory commitments, uint256 challenge, bytes32 transcript_state ) internal view returns (bool){ + +unchecked { types.transcript_data memory tr_state; tr_state.current_challenge = transcript_state; commitment_state memory state; @@ -474,75 +487,71 @@ library modular_commitment_scheme_circuit4 { for(uint8 i = 0; i < batches_num;){ transcript.update_transcript_b32(tr_state, bytes32(commitments[i])); - unchecked{i++;} + i++; } state.theta = transcript.get_field_challenge(tr_state, modulus); state.points_num = basic_marshalling.get_length(blob, 0x0); - unchecked{ - offset = 0x8 + state.points_num*0x20 + 0x8; - } + offset = 0x8 + state.points_num*0x20 + 0x8; for(uint8 i = 0; i < batches_num;){ state.batch_sizes[i] = uint64(uint8(blob[offset + 0x1])); if( state.batch_sizes[i] > state.max_batch ) state.max_batch = state.batch_sizes[i]; state.poly_num += state.batch_sizes[i]; - unchecked { i++; offset +=2;} - } - unchecked{ - offset += 0x8; - offset += state.poly_num; - state.roots_offset = offset + 0x8; - offset += 0x8; + i++; offset +=2; } + + offset += 0x8; + offset += state.poly_num; + state.roots_offset = offset + 0x8; + offset += 0x8; + for( uint8 i = 0; i < r;){ transcript.update_transcript_b32(tr_state, bytes32(basic_marshalling.get_uint256_be(blob, offset + 0x8))); state.alphas[i] = transcript.get_field_challenge(tr_state, modulus); - unchecked{i++; offset +=40; } + i++; offset +=40; } bytes calldata proof_of_work = blob[blob.length - 4:]; transcript.update_transcript(tr_state, proof_of_work); - transcript.get_integral_challenge_be(tr_state, 4); - - - unchecked{ - offset += 0x8 + r; - state.initial_data_offset = offset + 0x8; - offset += 0x8 + 0x20*basic_marshalling.get_length(blob, offset); - } + uint256 p_o_w = transcript.get_integral_challenge_be(tr_state, 4); + if (p_o_w & 0xffff0000 != 0) return false; - unchecked{ - state.round_data_offset = offset + 0x8; - offset += 0x8 + 0x20*basic_marshalling.get_length(blob, offset); - offset += 0x8; - } - state.initial_proof_offset = offset; + + offset += 0x8 + r; + state.initial_data_offset = offset + 0x8; + offset += 0x8 + 0x20*basic_marshalling.get_length(blob, offset); + + state.round_data_offset = offset + 0x8; + offset += 0x8 + 0x20*basic_marshalling.get_length(blob, offset); + offset += 0x8; + + state.initial_proof_offset = offset; for(uint8 i = 0; i < lambda;){ for(uint j = 0; j < batches_num;){ if(basic_marshalling.get_uint256_be(blob, offset + 0x10) != commitments[j] ) return false; offset = merkle_verifier.skip_merkle_proof_be(blob, offset); - unchecked{j++;} + j++; } - unchecked{i++;} + i++; } offset += 0x8; state.round_proof_offset = offset; for(uint256 i = 0; i < lambda;){ for(uint256 j = 0; j < r;){ - if(basic_marshalling.get_uint256_be(blob, offset + 0x10) != basic_marshalling.get_uint256_be(blob, state.roots_offset + j * 40 + 0x8) ) return false; + if(basic_marshalling.get_uint256_be(blob, offset + 0x10) != basic_marshalling.get_uint256_be(blob, state.roots_offset + j * 40 + 0x8) ) return false; offset = merkle_verifier.skip_merkle_proof_be(blob, offset); - unchecked{j++;} + j++; } - unchecked{i++;} + i++; } state.final_polynomial = new uint256[](basic_marshalling.get_length(blob, offset)); - unchecked{offset += 0x8;} + offset += 0x8; for (uint256 i = 0; i < state.final_polynomial.length;) { state.final_polynomial[i] = basic_marshalling.get_uint256_be(blob, offset); - unchecked{ i++; offset+=0x20;} + i++; offset+=0x20; } } if( state.final_polynomial.length > (( 1 << (field.log2(max_degree + 1) - r + 1) ) ) ){ @@ -573,7 +582,7 @@ library modular_commitment_scheme_circuit4 { state.leaf_length = state.batch_sizes[j] * 0x40; state.initial_data_offset += state.batch_sizes[j] * 0x40; state.initial_proof_offset = merkle_verifier.skip_merkle_proof_be(blob, state.initial_proof_offset); - unchecked{j++;} + j++; } { state.y = compute_combined_Q(blob, state); @@ -596,9 +605,9 @@ library modular_commitment_scheme_circuit4 { state.round_proof_offset = merkle_verifier.skip_merkle_proof_be(blob, state.round_proof_offset); for(state.j = 1; state.j < r;){ - state.x_index %= state.domain_size; + state.x_index %= state.domain_size; state.x = mulmod(state.x, state.x, modulus); - state.domain_size >>= 1; + state.domain_size >>= 1; if( state.x_index < state.domain_size ){ if(!copy_pairs_and_check(blob, state.round_data_offset, state.leaf_data, 1, state.round_proof_offset)) { console.log("Error in round mekle proof"); @@ -616,7 +625,7 @@ library modular_commitment_scheme_circuit4 { console.log("Round colinear check failed"); return false; } - unchecked{state.j++; state.round_data_offset += 0x40;} + state.j++; state.round_data_offset += 0x40; state.round_proof_offset = merkle_verifier.skip_merkle_proof_be(blob, state.round_proof_offset); } @@ -630,10 +639,11 @@ library modular_commitment_scheme_circuit4 { return false; } state.round_data_offset += 0x40; - - unchecked{i++;} + + i++; } return true; +} } -} +} \ No newline at end of file diff --git a/contracts/zkllvm/circuit6/commitment.sol b/contracts/zkllvm/circuit6/commitment.sol index c453aab..b0b3da4 100644 --- a/contracts/zkllvm/circuit6/commitment.sol +++ b/contracts/zkllvm/circuit6/commitment.sol @@ -69,17 +69,20 @@ library modular_commitment_scheme_circuit6 { uint256 offset; } - function calculate_2points_interpolation(uint256[] memory xi, uint256[2] memory z, uint256 modulus) + function calculate_2points_interpolation(uint256[] memory xi, uint256[2] memory z) internal pure returns(uint256[2] memory U){ // require( xi.length == 2 ); +unchecked { U[0] = addmod(mulmod(z[0], xi[1], modulus),modulus - mulmod(z[1], xi[0], modulus), modulus); U[1] = addmod(z[1], modulus - z[0], modulus); +} } // coeffs for zs on each degree can be precomputed if necessary - function calculate_3points_interpolation(uint256[] memory xi, uint256[3] memory z, uint256 modulus) + function calculate_3points_interpolation(uint256[] memory xi, uint256[3] memory z) internal pure returns(uint256[3] memory U){ // require( xi.length == 3 ); +unchecked { z[0] = mulmod(z[0], addmod(xi[1], modulus - xi[2], modulus), modulus); z[1] = mulmod(z[1], addmod(xi[2], modulus - xi[0], modulus), modulus); z[2] = mulmod(z[2], addmod(xi[0], modulus - xi[1], modulus), modulus); @@ -93,6 +96,7 @@ library modular_commitment_scheme_circuit6 { U[1] = addmod(U[1], modulus - mulmod(z[2], addmod(xi[0], xi[1], modulus), modulus), modulus); U[2] = addmod(z[0], addmod(z[1], z[2], modulus), modulus); +} } function prepare_eval_points(uint256[][unique_points] memory result, uint256 xi) internal view { @@ -119,7 +123,9 @@ library modular_commitment_scheme_circuit6 { } - function prepare_U_V(bytes calldata blob, commitment_state memory state, uint256 xi) internal view returns(bool result){ + function prepare_U_V(bytes calldata blob, commitment_state memory state, uint256 xi) internal view returns(bool result){ + +unchecked { result = true; uint64 ind = 0; prepare_eval_points(state.unique_eval_points, xi); @@ -130,24 +136,24 @@ library modular_commitment_scheme_circuit6 { state.factors[ind] = 1; state.denominators[ind][0] = modulus - state.unique_eval_points[ind][0]; state.denominators[ind][1] = 1; - } else + } else if( state.unique_eval_points[ind].length == 2 ){ // xi1 - xi0 - state.factors[ind] = + state.factors[ind] = addmod(state.unique_eval_points[ind][1], modulus - state.unique_eval_points[ind][0], modulus); state.denominators[ind][2] = 1; - state.denominators[ind][1] = + state.denominators[ind][1] = modulus - addmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][1], modulus); - state.denominators[ind][0] = + state.denominators[ind][0] = mulmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][1], modulus); state.denominators[ind][0] = mulmod(state.denominators[ind][0], state.factors[ind], modulus); state.denominators[ind][1] = mulmod(state.denominators[ind][1], state.factors[ind], modulus); state.denominators[ind][2] = mulmod(state.denominators[ind][2], state.factors[ind], modulus); - } else + } else if( state.unique_eval_points[ind].length == 3 ){ - state.factors[ind] = modulus - + state.factors[ind] = modulus - mulmod( mulmod( addmod(state.unique_eval_points[ind][0], modulus - state.unique_eval_points[ind][1], modulus), @@ -160,24 +166,24 @@ library modular_commitment_scheme_circuit6 { state.denominators[ind][3] = 1; state.denominators[ind][2] = modulus - addmod( - state.unique_eval_points[ind][0], - addmod(state.unique_eval_points[ind][1],state.unique_eval_points[ind][2], modulus), + state.unique_eval_points[ind][0], + addmod(state.unique_eval_points[ind][1],state.unique_eval_points[ind][2], modulus), modulus ); - state.denominators[ind][1] = + state.denominators[ind][1] = addmod( mulmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][1], modulus), addmod( mulmod(state.unique_eval_points[ind][0], state.unique_eval_points[ind][2], modulus), mulmod(state.unique_eval_points[ind][1], state.unique_eval_points[ind][2], modulus), modulus - ), + ), modulus ); - state.denominators[ind][0] = + state.denominators[ind][0] = modulus - mulmod( - state.unique_eval_points[ind][0], - mulmod(state.unique_eval_points[ind][1],state.unique_eval_points[ind][2], modulus), + state.unique_eval_points[ind][0], + mulmod(state.unique_eval_points[ind][1],state.unique_eval_points[ind][2], modulus), modulus ); state.denominators[ind][0] = mulmod(state.denominators[ind][0], state.factors[ind], modulus); @@ -188,7 +194,7 @@ library modular_commitment_scheme_circuit6 { console.log("UNPROCESSED number of evaluation points"); return false; } - unchecked{ind++;} + ind++; } // Prepare combined U @@ -198,7 +204,7 @@ library modular_commitment_scheme_circuit6 { uint64 cur = 0; uint256 offset = 0x8; for( uint256 k = 0; k < batches_num;){ - for( uint256 i = 0; i < state.batch_sizes[k];){ + for( uint256 i = 0; i < state.batch_sizes[k];){ uint256 cur_point = 0; if(cur < points_ids.length ) cur_point = uint8(points_ids[cur]); else if(k == 2) cur_point = permutation_point; @@ -207,53 +213,54 @@ library modular_commitment_scheme_circuit6 { else console.log("Wrong index"); polynomial.multiply_poly_on_coeff( - state.combined_U[ind], - state.theta, + state.combined_U[ind], + state.theta, modulus ); if( cur_point == ind ){ if( point.length == 1 ){ state.combined_U[ind][0] = addmod( state.combined_U[ind][0], - basic_marshalling.get_uint256_be(blob, offset), + basic_marshalling.get_uint256_be(blob, offset), modulus ); - } else + } else if( point.length == 2 ){ uint256[2] memory tmp; tmp[0] = basic_marshalling.get_uint256_be(blob, offset); tmp[1] = basic_marshalling.get_uint256_be(blob, offset + 0x20); tmp = calculate_2points_interpolation( - point, tmp, modulus - ); + point, tmp); state.combined_U[ind][0] = addmod(state.combined_U[ind][0], tmp[0], modulus); state.combined_U[ind][1] = addmod(state.combined_U[ind][1], tmp[1], modulus); - } else + } else if( point.length == 3){ uint256[3] memory tmp; tmp[0] = basic_marshalling.get_uint256_be(blob, offset); tmp[1] = basic_marshalling.get_uint256_be(blob, offset + 0x20); tmp[2] = basic_marshalling.get_uint256_be(blob, offset + 0x40); tmp = calculate_3points_interpolation( - point, tmp, modulus - ); + point, tmp); state.combined_U[ind][0] = addmod(state.combined_U[ind][0], tmp[0], modulus); state.combined_U[ind][1] = addmod(state.combined_U[ind][1], tmp[1], modulus); state.combined_U[ind][2] = addmod(state.combined_U[ind][2], tmp[2], modulus); } else { return false; } - } + } offset += state.unique_eval_points[cur_point].length * 0x20; - unchecked{i++;cur++;} + i++;cur++; } - unchecked{k++;} + k++; } - unchecked{ind++;} + ind++; } +} } function compute_combined_Q(bytes calldata blob,commitment_state memory state) internal view returns(uint256[2] memory y){ + +unchecked { uint256[2][unique_points] memory values; { uint256 offset = state.initial_data_offset - state.poly_num * 0x40; // Save initial data offset for future use; @@ -270,14 +277,14 @@ library modular_commitment_scheme_circuit6 { for(uint256 k = 0; k < unique_points; ){ values[k][0] = mulmod(values[k][0], state.theta, modulus); values[k][1] = mulmod(values[k][1], state.theta, modulus); - unchecked{k++;} + k++; } values[cur_point][0] = addmod(values[cur_point][0], basic_marshalling.get_uint256_be(blob, offset), modulus); values[cur_point][1] = addmod(values[cur_point][1], basic_marshalling.get_uint256_be(blob, offset + 0x20), modulus); - unchecked{offset += 0x40;j++; cur++;} + offset += 0x40;j++; cur++; } - unchecked{b++;} + b++; } } for(uint256 p = 0; p < unique_points; ){ @@ -291,8 +298,9 @@ library modular_commitment_scheme_circuit6 { tmp[1] = mulmod(tmp[1], field.inverse_static(polynomial.evaluate(state.denominators[p], modulus - s, modulus), modulus), modulus); y[0] = addmod(y[0], tmp[0], modulus); y[1] = addmod(y[1], tmp[1], modulus); - unchecked{p++;} + p++; } +} } function initialize( @@ -305,17 +313,17 @@ library modular_commitment_scheme_circuit6 { tr_state_after = tr_state.current_challenge; } - function copy_memory_pair_and_check(bytes calldata blob, uint256 proof_offset, bytes memory leaf, uint256[2] memory pair) + function copy_memory_pair_and_check(bytes calldata blob, uint256 proof_offset, bytes memory leaf, uint256[2] memory pair) internal pure returns(bool b){ uint256 c = pair[0]; uint256 d = pair[1]; assembly{ mstore( - add(leaf, 0x20), + add(leaf, 0x20), c ) mstore( - add(leaf, 0x40), + add(leaf, 0x40), d ) } @@ -326,17 +334,17 @@ library modular_commitment_scheme_circuit6 { } } - function copy_reverted_memory_pair_and_check(bytes calldata blob, uint256 proof_offset, bytes memory leaf, uint256[2] memory pair) + function copy_reverted_memory_pair_and_check(bytes calldata blob, uint256 proof_offset, bytes memory leaf, uint256[2] memory pair) internal pure returns(bool b){ uint256 c = pair[0]; uint256 d = pair[1]; assembly{ mstore( - add(leaf, 0x20), + add(leaf, 0x20), d ) mstore( - add(leaf, 0x40), + add(leaf, 0x40), c ) } @@ -347,65 +355,67 @@ library modular_commitment_scheme_circuit6 { } } - function copy_pairs_and_check(bytes calldata blob, uint256 offset, bytes memory leaf, uint256 size, uint256 proof_offset) + function copy_pairs_and_check(bytes calldata blob, uint256 offset, bytes memory leaf, uint256 size, uint256 proof_offset) internal pure returns(bool b){ +unchecked { uint256 offset2 = 0x20; for(uint256 k = 0; k < size;){ assembly{ mstore( - add(leaf, offset2), + add(leaf, offset2), calldataload(add(blob.offset, offset)) ) mstore( - add(leaf, add(offset2, 0x20)), + add(leaf, add(offset2, 0x20)), calldataload(add(blob.offset, add(offset, 0x20))) ) } - unchecked{ - k++; offset2 += 0x40; offset += 0x40; - } + k++; offset2 += 0x40; offset += 0x40; } if( !merkle_verifier.parse_verify_merkle_proof_bytes_be(blob, proof_offset, leaf, offset2 - 0x20 )){ return false; } else { return true; } +} } - function copy_reverted_pairs_and_check(bytes calldata blob, uint256 offset, bytes memory leaf, uint256 size, uint256 proof_offset) + function copy_reverted_pairs_and_check(bytes calldata blob, uint256 offset, bytes memory leaf, uint256 size, uint256 proof_offset) internal pure returns(bool){ +unchecked { uint256 offset2 = 0x20; for(uint256 k = 0; k < size;){ assembly{ mstore( - add(leaf, offset2), + add(leaf, offset2), calldataload(add(blob.offset, add(offset, 0x20))) ) mstore( - add(leaf, add(offset2, 0x20)), + add(leaf, add(offset2, 0x20)), calldataload(add(blob.offset, offset)) ) } - unchecked{ - k++; offset2 += 0x40; offset += 0x40; - } + k++; offset2 += 0x40; offset += 0x40; } if( !merkle_verifier.parse_verify_merkle_proof_bytes_be(blob, proof_offset, leaf, offset2 - 0x20 )){ return false; } else { return true; } +} } function colinear_check(uint256 x, uint256[2] memory y, uint256 alpha, uint256 colinear_value) internal pure returns(bool){ + +unchecked { uint256 tmp; tmp = addmod(y[0], y[1], modulus); tmp = mulmod(tmp, x, modulus); tmp = addmod( - tmp, + tmp, mulmod( alpha, - addmod(y[0], modulus-y[1], modulus), + addmod(y[0], modulus-y[1], modulus), modulus ), modulus @@ -417,14 +427,17 @@ library modular_commitment_scheme_circuit6 { return false; } return true; +} } function verify_eval( bytes calldata blob, - uint256[5] memory commitments, + uint256[5] memory commitments, uint256 challenge, bytes32 transcript_state ) internal view returns (bool){ + +unchecked { types.transcript_data memory tr_state; tr_state.current_challenge = transcript_state; commitment_state memory state; @@ -477,75 +490,71 @@ library modular_commitment_scheme_circuit6 { for(uint8 i = 0; i < batches_num;){ transcript.update_transcript_b32(tr_state, bytes32(commitments[i])); - unchecked{i++;} + i++; } state.theta = transcript.get_field_challenge(tr_state, modulus); state.points_num = basic_marshalling.get_length(blob, 0x0); - unchecked{ - offset = 0x8 + state.points_num*0x20 + 0x8; - } + offset = 0x8 + state.points_num*0x20 + 0x8; for(uint8 i = 0; i < batches_num;){ state.batch_sizes[i] = uint64(uint8(blob[offset + 0x1])); if( state.batch_sizes[i] > state.max_batch ) state.max_batch = state.batch_sizes[i]; state.poly_num += state.batch_sizes[i]; - unchecked { i++; offset +=2;} - } - unchecked{ - offset += 0x8; - offset += state.poly_num; - state.roots_offset = offset + 0x8; - offset += 0x8; + i++; offset +=2; } + + offset += 0x8; + offset += state.poly_num; + state.roots_offset = offset + 0x8; + offset += 0x8; + for( uint8 i = 0; i < r;){ transcript.update_transcript_b32(tr_state, bytes32(basic_marshalling.get_uint256_be(blob, offset + 0x8))); state.alphas[i] = transcript.get_field_challenge(tr_state, modulus); - unchecked{i++; offset +=40; } + i++; offset +=40; } bytes calldata proof_of_work = blob[blob.length - 4:]; transcript.update_transcript(tr_state, proof_of_work); - transcript.get_integral_challenge_be(tr_state, 4); - - - unchecked{ - offset += 0x8 + r; - state.initial_data_offset = offset + 0x8; - offset += 0x8 + 0x20*basic_marshalling.get_length(blob, offset); - } + uint256 p_o_w = transcript.get_integral_challenge_be(tr_state, 4); + if (p_o_w & 0xffff0000 != 0) return false; - unchecked{ - state.round_data_offset = offset + 0x8; - offset += 0x8 + 0x20*basic_marshalling.get_length(blob, offset); - offset += 0x8; - } - state.initial_proof_offset = offset; + + offset += 0x8 + r; + state.initial_data_offset = offset + 0x8; + offset += 0x8 + 0x20*basic_marshalling.get_length(blob, offset); + + state.round_data_offset = offset + 0x8; + offset += 0x8 + 0x20*basic_marshalling.get_length(blob, offset); + offset += 0x8; + + state.initial_proof_offset = offset; for(uint8 i = 0; i < lambda;){ for(uint j = 0; j < batches_num;){ if(basic_marshalling.get_uint256_be(blob, offset + 0x10) != commitments[j] ) return false; offset = merkle_verifier.skip_merkle_proof_be(blob, offset); - unchecked{j++;} + j++; } - unchecked{i++;} + i++; } offset += 0x8; state.round_proof_offset = offset; for(uint256 i = 0; i < lambda;){ for(uint256 j = 0; j < r;){ - if(basic_marshalling.get_uint256_be(blob, offset + 0x10) != basic_marshalling.get_uint256_be(blob, state.roots_offset + j * 40 + 0x8) ) return false; + if(basic_marshalling.get_uint256_be(blob, offset + 0x10) != basic_marshalling.get_uint256_be(blob, state.roots_offset + j * 40 + 0x8) ) return false; offset = merkle_verifier.skip_merkle_proof_be(blob, offset); - unchecked{j++;} + j++; } - unchecked{i++;} + i++; } state.final_polynomial = new uint256[](basic_marshalling.get_length(blob, offset)); - unchecked{offset += 0x8;} + offset += 0x8; for (uint256 i = 0; i < state.final_polynomial.length;) { state.final_polynomial[i] = basic_marshalling.get_uint256_be(blob, offset); - unchecked{ i++; offset+=0x20;} + i++; offset+=0x20; } } if( state.final_polynomial.length > (( 1 << (field.log2(max_degree + 1) - r + 1) ) ) ){ @@ -576,7 +585,7 @@ library modular_commitment_scheme_circuit6 { state.leaf_length = state.batch_sizes[j] * 0x40; state.initial_data_offset += state.batch_sizes[j] * 0x40; state.initial_proof_offset = merkle_verifier.skip_merkle_proof_be(blob, state.initial_proof_offset); - unchecked{j++;} + j++; } { state.y = compute_combined_Q(blob, state); @@ -599,9 +608,9 @@ library modular_commitment_scheme_circuit6 { state.round_proof_offset = merkle_verifier.skip_merkle_proof_be(blob, state.round_proof_offset); for(state.j = 1; state.j < r;){ - state.x_index %= state.domain_size; + state.x_index %= state.domain_size; state.x = mulmod(state.x, state.x, modulus); - state.domain_size >>= 1; + state.domain_size >>= 1; if( state.x_index < state.domain_size ){ if(!copy_pairs_and_check(blob, state.round_data_offset, state.leaf_data, 1, state.round_proof_offset)) { console.log("Error in round mekle proof"); @@ -619,7 +628,7 @@ library modular_commitment_scheme_circuit6 { console.log("Round colinear check failed"); return false; } - unchecked{state.j++; state.round_data_offset += 0x40;} + state.j++; state.round_data_offset += 0x40; state.round_proof_offset = merkle_verifier.skip_merkle_proof_be(blob, state.round_proof_offset); } @@ -633,10 +642,11 @@ library modular_commitment_scheme_circuit6 { return false; } state.round_data_offset += 0x40; - - unchecked{i++;} + + i++; } return true; +} } -} +} \ No newline at end of file